PKx"T=Ilvirtualenv/__init__.pyfrom __future__ import absolute_import, unicode_literals from .run import cli_run, session_via_cli from .version import __version__ __all__ = ( "__version__", "cli_run", "session_via_cli", ) PKx"TAT T virtualenv/__main__.pyfrom __future__ import absolute_import, print_function, unicode_literals import logging import os import sys from datetime import datetime def run(args=None, options=None, env=None): env = os.environ if env is None else env start = datetime.now() from virtualenv.run import cli_run from virtualenv.util.error import ProcessCallFailed if args is None: args = sys.argv[1:] try: session = cli_run(args, options, env) logging.warning(LogSession(session, start)) except ProcessCallFailed as exception: print("subprocess call failed for {} with code {}".format(exception.cmd, exception.code)) print(exception.out, file=sys.stdout, end="") print(exception.err, file=sys.stderr, end="") raise SystemExit(exception.code) class LogSession(object): def __init__(self, session, start): self.session = session self.start = start def __str__(self): from virtualenv.util.six import ensure_text spec = self.session.creator.interpreter.spec elapsed = (datetime.now() - self.start).total_seconds() * 1000 lines = [ "created virtual environment {} in {:.0f}ms".format(spec, elapsed), " creator {}".format(ensure_text(str(self.session.creator))), ] if self.session.seeder.enabled: lines += ( " seeder {}".format(ensure_text(str(self.session.seeder))), " added seed packages: {}".format( ", ".join( sorted( "==".join(i.stem.split("-")) for i in self.session.creator.purelib.iterdir() if i.suffix == ".dist-info" ), ), ), ) if self.session.activators: lines.append(" activators {}".format(",".join(i.__class__.__name__ for i in self.session.activators))) return "\n".join(lines) def run_with_catch(args=None, env=None): from virtualenv.config.cli.parser import VirtualEnvOptions env = os.environ if env is None else env options = VirtualEnvOptions() try: run(args, options, env) except (KeyboardInterrupt, SystemExit, Exception) as exception: try: if getattr(options, "with_traceback", False): raise else: if not (isinstance(exception, SystemExit) and exception.code == 0): logging.error("%s: %s", type(exception).__name__, exception) code = exception.code if isinstance(exception, SystemExit) else 1 sys.exit(code) finally: logging.shutdown() # force flush of log messages before the trace is printed if __name__ == "__main__": # pragma: no cov run_with_catch() # pragma: no cov PKx"Tfvirtualenv/info.pyfrom __future__ import absolute_import, unicode_literals import logging import os import platform import sys import tempfile IMPLEMENTATION = platform.python_implementation() IS_PYPY = IMPLEMENTATION == "PyPy" IS_CPYTHON = IMPLEMENTATION == "CPython" PY3 = sys.version_info[0] == 3 PY2 = sys.version_info[0] == 2 IS_WIN = sys.platform == "win32" IS_MAC_ARM64 = sys.platform == "darwin" and platform.machine() == "arm64" ROOT = os.path.realpath(os.path.join(os.path.abspath(__file__), os.path.pardir, os.path.pardir)) IS_ZIPAPP = os.path.isfile(ROOT) WIN_CPYTHON_2 = IS_CPYTHON and IS_WIN and PY2 _CAN_SYMLINK = _FS_CASE_SENSITIVE = _CFG_DIR = _DATA_DIR = None def fs_is_case_sensitive(): global _FS_CASE_SENSITIVE if _FS_CASE_SENSITIVE is None: with tempfile.NamedTemporaryFile(prefix="TmP") as tmp_file: _FS_CASE_SENSITIVE = not os.path.exists(tmp_file.name.lower()) logging.debug("filesystem is %scase-sensitive", "" if _FS_CASE_SENSITIVE else "not ") return _FS_CASE_SENSITIVE def fs_supports_symlink(): global _CAN_SYMLINK if _CAN_SYMLINK is None: can = False if hasattr(os, "symlink"): if IS_WIN: with tempfile.NamedTemporaryFile(prefix="TmP") as tmp_file: temp_dir = os.path.dirname(tmp_file.name) dest = os.path.join(temp_dir, "{}-{}".format(tmp_file.name, "b")) try: os.symlink(tmp_file.name, dest) can = True except (OSError, NotImplementedError): pass logging.debug("symlink on filesystem does%s work", "" if can else " not") else: can = True _CAN_SYMLINK = can return _CAN_SYMLINK __all__ = ( "IS_PYPY", "IS_CPYTHON", "PY3", "PY2", "IS_WIN", "fs_is_case_sensitive", "fs_supports_symlink", "ROOT", "IS_ZIPAPP", "WIN_CPYTHON_2", ) PKx"TNbvirtualenv/report.pyfrom __future__ import absolute_import, unicode_literals import logging import sys from virtualenv.util.six import ensure_str LEVELS = { 0: logging.CRITICAL, 1: logging.ERROR, 2: logging.WARNING, 3: logging.INFO, 4: logging.DEBUG, 5: logging.NOTSET, } MAX_LEVEL = max(LEVELS.keys()) LOGGER = logging.getLogger() def setup_report(verbosity, show_pid=False): _clean_handlers(LOGGER) if verbosity > MAX_LEVEL: verbosity = MAX_LEVEL # pragma: no cover level = LEVELS[verbosity] msg_format = "%(message)s" if level <= logging.DEBUG: locate = "module" msg_format = "%(relativeCreated)d {} [%(levelname)s %({})s:%(lineno)d]".format(msg_format, locate) if show_pid: msg_format = "[%(process)d] " + msg_format formatter = logging.Formatter(ensure_str(msg_format)) stream_handler = logging.StreamHandler(stream=sys.stdout) stream_handler.setLevel(level) LOGGER.setLevel(logging.NOTSET) stream_handler.setFormatter(formatter) LOGGER.addHandler(stream_handler) level_name = logging.getLevelName(level) logging.debug("setup logging to %s", level_name) logging.getLogger("distlib").setLevel(logging.ERROR) return verbosity def _clean_handlers(log): for log_handler in list(log.handlers): # remove handlers of libraries log.removeHandler(log_handler) __all__ = ( "LEVELS", "MAX_LEVEL", "setup_report", ) PKx"TO"jBBvirtualenv/version.pyfrom __future__ import unicode_literals __version__ = "20.13.0" PKx"TDF]!virtualenv/activation/__init__.pyfrom __future__ import absolute_import, unicode_literals from .bash import BashActivator from .batch import BatchActivator from .cshell import CShellActivator from .fish import FishActivator from .nushell import NushellActivator from .powershell import PowerShellActivator from .python import PythonActivator __all__ = [ "BashActivator", "PowerShellActivator", "CShellActivator", "PythonActivator", "BatchActivator", "FishActivator", "NushellActivator", ] PKx"T*R{"virtualenv/activation/activator.pyfrom __future__ import absolute_import, unicode_literals import os from abc import ABCMeta, abstractmethod from six import add_metaclass @add_metaclass(ABCMeta) class Activator(object): """Generates an activate script for the virtual environment""" def __init__(self, options): """Create a new activator generator. :param options: the parsed options as defined within :meth:`add_parser_arguments` """ self.flag_prompt = os.path.basename(os.getcwd()) if options.prompt == "." else options.prompt @classmethod def supports(cls, interpreter): """Check if the activation script is supported in the given interpreter. :param interpreter: the interpreter we need to support :return: ``True`` if supported, ``False`` otherwise """ return True @classmethod def add_parser_arguments(cls, parser, interpreter): """ Add CLI arguments for this activation script. :param parser: the CLI parser :param interpreter: the interpreter this virtual environment is based of """ @abstractmethod def generate(self, creator): """Generate the activate script for the given creator. :param creator: the creator (based of :class:`virtualenv.create.creator.Creator`) we used to create this \ virtual environment """ raise NotImplementedError PKx"TKOr1D D %virtualenv/activation/via_template.pyfrom __future__ import absolute_import, unicode_literals import os import sys from abc import ABCMeta, abstractmethod from six import add_metaclass from virtualenv.util.six import ensure_text from .activator import Activator if sys.version_info >= (3, 7): from importlib.resources import read_binary else: from importlib_resources import read_binary @add_metaclass(ABCMeta) class ViaTemplateActivator(Activator): @abstractmethod def templates(self): raise NotImplementedError def generate(self, creator): dest_folder = creator.bin_dir replacements = self.replacements(creator, dest_folder) generated = self._generate(replacements, self.templates(), dest_folder, creator) if self.flag_prompt is not None: creator.pyenv_cfg["prompt"] = self.flag_prompt return generated def replacements(self, creator, dest_folder): return { "__VIRTUAL_PROMPT__": "" if self.flag_prompt is None else self.flag_prompt, "__VIRTUAL_ENV__": ensure_text(str(creator.dest)), "__VIRTUAL_NAME__": creator.env_name, "__BIN_NAME__": ensure_text(str(creator.bin_dir.relative_to(creator.dest))), "__PATH_SEP__": ensure_text(os.pathsep), } def _generate(self, replacements, templates, to_folder, creator): generated = [] for template in templates: text = self.instantiate_template(replacements, template, creator) dest = to_folder / self.as_name(template) # use write_bytes to avoid platform specific line normalization (\n -> \r\n) dest.write_bytes(text.encode("utf-8")) generated.append(dest) return generated def as_name(self, template): return template.name def instantiate_template(self, replacements, template, creator): # read content as binary to avoid platform specific line normalization (\n -> \r\n) binary = read_binary(self.__module__, str(template)) text = binary.decode("utf-8", errors="strict") for key, value in replacements.items(): value = self._repr_unicode(creator, value) text = text.replace(key, value) return text @staticmethod def _repr_unicode(creator, value): # by default we just let it be unicode return value PKx"TηY88&virtualenv/activation/bash/__init__.pyfrom __future__ import absolute_import, unicode_literals from virtualenv.util.path import Path from ..via_template import ViaTemplateActivator class BashActivator(ViaTemplateActivator): def templates(self): yield Path("activate.sh") def as_name(self, template): return template.stem PKx"T&virtualenv/activation/bash/activate.sh# This file must be used with "source bin/activate" *from bash* # you cannot run it directly if [ "${BASH_SOURCE-}" = "$0" ]; then echo "You must source this script: \$ source $0" >&2 exit 33 fi deactivate () { unset -f pydoc >/dev/null 2>&1 || true # reset old environment variables # ! [ -z ${VAR+_} ] returns true if VAR is declared at all if ! [ -z "${_OLD_VIRTUAL_PATH:+_}" ] ; then PATH="$_OLD_VIRTUAL_PATH" export PATH unset _OLD_VIRTUAL_PATH fi if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME" export PYTHONHOME unset _OLD_VIRTUAL_PYTHONHOME fi # The hash command must be called to get it to forget past # commands. Without forgetting past commands the $PATH changes # we made may not be respected hash -r 2>/dev/null if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then PS1="$_OLD_VIRTUAL_PS1" export PS1 unset _OLD_VIRTUAL_PS1 fi unset VIRTUAL_ENV if [ ! "${1-}" = "nondestructive" ] ; then # Self destruct! unset -f deactivate fi } # unset irrelevant variables deactivate nondestructive VIRTUAL_ENV='__VIRTUAL_ENV__' if ([ "$OSTYPE" = "cygwin" ] || [ "$OSTYPE" = "msys" ]) && $(command -v cygpath &> /dev/null) ; then VIRTUAL_ENV=$(cygpath -u "$VIRTUAL_ENV") fi export VIRTUAL_ENV _OLD_VIRTUAL_PATH="$PATH" PATH="$VIRTUAL_ENV/__BIN_NAME__:$PATH" export PATH # unset PYTHONHOME if set if ! [ -z "${PYTHONHOME+_}" ] ; then _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME" unset PYTHONHOME fi if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then _OLD_VIRTUAL_PS1="${PS1-}" if [ "x__VIRTUAL_PROMPT__" != x ] ; then PS1="(__VIRTUAL_PROMPT__) ${PS1-}" else PS1="(`basename \"$VIRTUAL_ENV\"`) ${PS1-}" fi export PS1 fi # Make sure to unalias pydoc if it's already there alias pydoc 2>/dev/null >/dev/null && unalias pydoc || true pydoc () { python -m pydoc "$@" } # The hash command must be called to get it to forget past # commands. Without forgetting past commands the $PATH changes # we made may not be respected hash -r 2>/dev/null PKx"T|'virtualenv/activation/batch/__init__.pyfrom __future__ import absolute_import, unicode_literals import os from virtualenv.util.path import Path from ..via_template import ViaTemplateActivator class BatchActivator(ViaTemplateActivator): @classmethod def supports(cls, interpreter): return interpreter.os == "nt" def templates(self): yield Path("activate.bat") yield Path("deactivate.bat") yield Path("pydoc.bat") def instantiate_template(self, replacements, template, creator): # ensure the text has all newlines as \r\n - required by batch base = super(BatchActivator, self).instantiate_template(replacements, template, creator) return base.replace(os.linesep, "\n").replace("\n", os.linesep) PKx"T=(virtualenv/activation/batch/activate.bat@echo off set "VIRTUAL_ENV=__VIRTUAL_ENV__" if defined _OLD_VIRTUAL_PROMPT ( set "PROMPT=%_OLD_VIRTUAL_PROMPT%" ) else ( if not defined PROMPT ( set "PROMPT=$P$G" ) if not defined VIRTUAL_ENV_DISABLE_PROMPT ( set "_OLD_VIRTUAL_PROMPT=%PROMPT%" ) ) if not defined VIRTUAL_ENV_DISABLE_PROMPT ( if "__VIRTUAL_PROMPT__" NEQ "" ( set "PROMPT=(__VIRTUAL_PROMPT__) %PROMPT%" ) else ( for %%d in ("%VIRTUAL_ENV%") do set "PROMPT=(%%~nxd) %PROMPT%" ) ) REM Don't use () to avoid problems with them in %PATH% if defined _OLD_VIRTUAL_PYTHONHOME goto ENDIFVHOME set "_OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%" :ENDIFVHOME set PYTHONHOME= REM if defined _OLD_VIRTUAL_PATH ( if not defined _OLD_VIRTUAL_PATH goto ENDIFVPATH1 set "PATH=%_OLD_VIRTUAL_PATH%" :ENDIFVPATH1 REM ) else ( if defined _OLD_VIRTUAL_PATH goto ENDIFVPATH2 set "_OLD_VIRTUAL_PATH=%PATH%" :ENDIFVPATH2 set "PATH=%VIRTUAL_ENV%\__BIN_NAME__;%PATH%" PKx"Tjߋ*virtualenv/activation/batch/deactivate.bat@echo off set VIRTUAL_ENV= REM Don't use () to avoid problems with them in %PATH% if not defined _OLD_VIRTUAL_PROMPT goto ENDIFVPROMPT set "PROMPT=%_OLD_VIRTUAL_PROMPT%" set _OLD_VIRTUAL_PROMPT= :ENDIFVPROMPT if not defined _OLD_VIRTUAL_PYTHONHOME goto ENDIFVHOME set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%" set _OLD_VIRTUAL_PYTHONHOME= :ENDIFVHOME if not defined _OLD_VIRTUAL_PATH goto ENDIFVPATH set "PATH=%_OLD_VIRTUAL_PATH%" set _OLD_VIRTUAL_PATH= :ENDIFVPATH PKx"T@%virtualenv/activation/batch/pydoc.batpython.exe -m pydoc %* PKx"T! XX(virtualenv/activation/cshell/__init__.pyfrom __future__ import absolute_import, unicode_literals from virtualenv.util.path import Path from ..via_template import ViaTemplateActivator class CShellActivator(ViaTemplateActivator): @classmethod def supports(cls, interpreter): return interpreter.os != "nt" def templates(self): yield Path("activate.csh") PKx"T)virtualenv/activation/cshell/activate.csh# This file must be used with "source bin/activate.csh" *from csh*. # You cannot run it directly. # Created by Davide Di Blasi . set newline='\ ' alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH:q" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT:q" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate && unalias pydoc' # Unset irrelevant variables. deactivate nondestructive setenv VIRTUAL_ENV '__VIRTUAL_ENV__' set _OLD_VIRTUAL_PATH="$PATH:q" setenv PATH "$VIRTUAL_ENV:q/__BIN_NAME__:$PATH:q" if ('__VIRTUAL_PROMPT__' != "") then set env_name = '(__VIRTUAL_PROMPT__) ' else set env_name = '('"$VIRTUAL_ENV:t:q"') ' endif if ( $?VIRTUAL_ENV_DISABLE_PROMPT ) then if ( $VIRTUAL_ENV_DISABLE_PROMPT == "" ) then set do_prompt = "1" else set do_prompt = "0" endif else set do_prompt = "1" endif if ( $do_prompt == "1" ) then # Could be in a non-interactive environment, # in which case, $prompt is undefined and we wouldn't # care about the prompt anyway. if ( $?prompt ) then set _OLD_VIRTUAL_PROMPT="$prompt:q" if ( "$prompt:q" =~ *"$newline:q"* ) then : else set prompt = "$env_name:q$prompt:q" endif endif endif unset env_name unset do_prompt alias pydoc python -m pydoc rehash PKx"TL'L&virtualenv/activation/fish/__init__.pyfrom __future__ import absolute_import, unicode_literals from virtualenv.util.path import Path from ..via_template import ViaTemplateActivator class FishActivator(ViaTemplateActivator): def templates(self): yield Path("activate.fish") PKx"TP҄ (virtualenv/activation/fish/activate.fish# This file must be used using `source bin/activate.fish` *within a running fish ( http://fishshell.com ) session*. # Do not run it directly. function _bashify_path -d "Converts a fish path to something bash can recognize" set fishy_path $argv set bashy_path $fishy_path[1] for path_part in $fishy_path[2..-1] set bashy_path "$bashy_path:$path_part" end echo $bashy_path end function _fishify_path -d "Converts a bash path to something fish can recognize" echo $argv | tr ':' '\n' end function deactivate -d 'Exit virtualenv mode and return to the normal environment.' # reset old environment variables if test -n "$_OLD_VIRTUAL_PATH" # https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling if test (echo $FISH_VERSION | head -c 1) -lt 3 set -gx PATH (_fishify_path "$_OLD_VIRTUAL_PATH") else set -gx PATH $_OLD_VIRTUAL_PATH end set -e _OLD_VIRTUAL_PATH end if test -n "$_OLD_VIRTUAL_PYTHONHOME" set -gx PYTHONHOME "$_OLD_VIRTUAL_PYTHONHOME" set -e _OLD_VIRTUAL_PYTHONHOME end if test -n "$_OLD_FISH_PROMPT_OVERRIDE" and functions -q _old_fish_prompt # Set an empty local `$fish_function_path` to allow the removal of `fish_prompt` using `functions -e`. set -l fish_function_path # Erase virtualenv's `fish_prompt` and restore the original. functions -e fish_prompt functions -c _old_fish_prompt fish_prompt functions -e _old_fish_prompt set -e _OLD_FISH_PROMPT_OVERRIDE end set -e VIRTUAL_ENV if test "$argv[1]" != 'nondestructive' # Self-destruct! functions -e pydoc functions -e deactivate functions -e _bashify_path functions -e _fishify_path end end # Unset irrelevant variables. deactivate nondestructive set -gx VIRTUAL_ENV '__VIRTUAL_ENV__' # https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling if test (echo $FISH_VERSION | head -c 1) -lt 3 set -gx _OLD_VIRTUAL_PATH (_bashify_path $PATH) else set -gx _OLD_VIRTUAL_PATH $PATH end set -gx PATH "$VIRTUAL_ENV"'/__BIN_NAME__' $PATH # Unset `$PYTHONHOME` if set. if set -q PYTHONHOME set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME set -e PYTHONHOME end function pydoc python -m pydoc $argv end if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" # Copy the current `fish_prompt` function as `_old_fish_prompt`. functions -c fish_prompt _old_fish_prompt function fish_prompt # Run the user's prompt first; it might depend on (pipe)status. set -l prompt (_old_fish_prompt) # Prompt override provided? # If not, just prepend the environment name. if test -n '__VIRTUAL_PROMPT__' printf '(%s) ' '__VIRTUAL_PROMPT__' else printf '(%s) ' (basename "$VIRTUAL_ENV") end string join -- \n $prompt # handle multi-line prompts end set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" end PKx"TLC66)virtualenv/activation/nushell/__init__.pyfrom __future__ import absolute_import, unicode_literals import os from virtualenv.util.path import Path from virtualenv.util.six import ensure_text from ..via_template import ViaTemplateActivator class NushellActivator(ViaTemplateActivator): def templates(self): yield Path("activate.nu") yield Path("deactivate.nu") def replacements(self, creator, dest_folder): # Due to nushell scoping, it isn't easy to create a function that will # deactivate the environment. For that reason a __DEACTIVATE_PATH__ # replacement pointing to the deactivate.nu file is created return { "__VIRTUAL_PROMPT__": "" if self.flag_prompt is None else self.flag_prompt, "__VIRTUAL_ENV__": ensure_text(str(creator.dest)), "__VIRTUAL_NAME__": creator.env_name, "__BIN_NAME__": ensure_text(str(creator.bin_dir.relative_to(creator.dest))), "__PATH_SEP__": ensure_text(os.pathsep), "__DEACTIVATE_PATH__": ensure_text(str(Path(dest_folder) / "deactivate.nu")), } PKx"Tܮx)virtualenv/activation/nushell/activate.nu# Setting all environment variables for the venv let path-name = (if ((sys).host.name == "Windows") { "Path" } { "PATH" }) let virtual-env = "__VIRTUAL_ENV__" let bin = "__BIN_NAME__" let path-sep = "__PATH_SEP__" let old-path = ($nu.path | str collect ($path-sep)) let venv-path = ([$virtual-env $bin] | path join) let new-path = ($nu.path | prepend $venv-path | str collect ($path-sep)) # environment variables that will be batched loaded to the virtual env let new-env = ([ [name, value]; [$path-name $new-path] [_OLD_VIRTUAL_PATH $old-path] [VIRTUAL_ENV $virtual-env] ]) load-env $new-env # Creating the new prompt for the session let virtual_prompt = (if ("__VIRTUAL_PROMPT__" != "") { "(__VIRTUAL_PROMPT__) " } { (build-string '(' ($virtual-env | path basename) ') ') } ) # If there is no default prompt, then only the env is printed in the prompt let new_prompt = (if ( config | select prompt | empty? ) { ($"build-string '($virtual_prompt)'") } { ($"build-string '($virtual_prompt)' (config get prompt | str find-replace "build-string" "")") }) let-env PROMPT_COMMAND = $new_prompt # We are using alias as the function definitions because only aliases can be # removed from the scope alias pydoc = python -m pydoc alias deactivate = source "__DEACTIVATE_PATH__" PKx"Ts~1MM+virtualenv/activation/nushell/deactivate.nu# Setting the old path let path-name = (if ((sys).host.name == "Windows") { "Path" } { "PATH" }) let-env $path-name = $nu.env._OLD_VIRTUAL_PATH # Unleting the environment variables that were created when activating the env unlet-env VIRTUAL_ENV unlet-env _OLD_VIRTUAL_PATH unlet-env PROMPT_COMMAND unalias pydoc unalias deactivate PKx"T,virtualenv/activation/powershell/__init__.pyfrom __future__ import absolute_import, unicode_literals from virtualenv.util.path import Path from ..via_template import ViaTemplateActivator class PowerShellActivator(ViaTemplateActivator): def templates(self): yield Path("activate.ps1") PKx"T-virtualenv/activation/powershell/activate.ps1$script:THIS_PATH = $myinvocation.mycommand.path $script:BASE_DIR = Split-Path (Resolve-Path "$THIS_PATH/..") -Parent function global:deactivate([switch] $NonDestructive) { if (Test-Path variable:_OLD_VIRTUAL_PATH) { $env:PATH = $variable:_OLD_VIRTUAL_PATH Remove-Variable "_OLD_VIRTUAL_PATH" -Scope global } if (Test-Path function:_old_virtual_prompt) { $function:prompt = $function:_old_virtual_prompt Remove-Item function:\_old_virtual_prompt } if ($env:VIRTUAL_ENV) { Remove-Item env:VIRTUAL_ENV -ErrorAction SilentlyContinue } if (!$NonDestructive) { # Self destruct! Remove-Item function:deactivate Remove-Item function:pydoc } } function global:pydoc { python -m pydoc $args } # unset irrelevant variables deactivate -nondestructive $VIRTUAL_ENV = $BASE_DIR $env:VIRTUAL_ENV = $VIRTUAL_ENV New-Variable -Scope global -Name _OLD_VIRTUAL_PATH -Value $env:PATH $env:PATH = "$env:VIRTUAL_ENV/__BIN_NAME____PATH_SEP__" + $env:PATH if (!$env:VIRTUAL_ENV_DISABLE_PROMPT) { function global:_old_virtual_prompt { "" } $function:_old_virtual_prompt = $function:prompt if ("__VIRTUAL_PROMPT__" -ne "") { function global:prompt { # Add the custom prefix to the existing prompt $previous_prompt_value = & $function:_old_virtual_prompt ("(__VIRTUAL_PROMPT__) " + $previous_prompt_value) } } else { function global:prompt { # Add a prefix to the current prompt, but don't discard it. $previous_prompt_value = & $function:_old_virtual_prompt $new_prompt_value = "($( Split-Path $env:VIRTUAL_ENV -Leaf )) " ($new_prompt_value + $previous_prompt_value) } } } PKx"TĨ++(virtualenv/activation/python/__init__.pyfrom __future__ import absolute_import, unicode_literals import os import sys from collections import OrderedDict from virtualenv.util.path import Path from virtualenv.util.six import ensure_text from ..via_template import ViaTemplateActivator class PythonActivator(ViaTemplateActivator): def templates(self): yield Path("activate_this.py") def replacements(self, creator, dest_folder): replacements = super(PythonActivator, self).replacements(creator, dest_folder) lib_folders = OrderedDict((os.path.relpath(str(i), str(dest_folder)), None) for i in creator.libs) win_py2 = creator.interpreter.platform == "win32" and creator.interpreter.version_info.major == 2 replacements.update( { "__LIB_FOLDERS__": ensure_text(os.pathsep.join(lib_folders.keys())), "__DECODE_PATH__": ("yes" if win_py2 else ""), }, ) return replacements @staticmethod def _repr_unicode(creator, value): py2 = creator.interpreter.version_info.major == 2 if py2: # on Python 2 we need to encode this into explicit utf-8, py3 supports unicode literals start = 2 if sys.version_info[0] == 3 else 1 value = ensure_text(repr(value.encode("utf-8"))[start:-1]) return value PKx"T;-virtualenv/activation/python/activate_this.py# -*- coding: utf-8 -*- """Activate virtualenv for current interpreter: Use exec(open(this_file).read(), {'__file__': this_file}). This can be used when you must use an existing Python interpreter, not the virtualenv bin/python. """ import os import site import sys try: abs_file = os.path.abspath(__file__) except NameError: raise AssertionError("You must use exec(open(this_file).read(), {'__file__': this_file}))") bin_dir = os.path.dirname(abs_file) base = bin_dir[: -len("__BIN_NAME__") - 1] # strip away the bin part from the __file__, plus the path separator # prepend bin to PATH (this file is inside the bin directory) os.environ["PATH"] = os.pathsep.join([bin_dir] + os.environ.get("PATH", "").split(os.pathsep)) os.environ["VIRTUAL_ENV"] = base # virtual env is right above bin directory # add the virtual environments libraries to the host python import mechanism prev_length = len(sys.path) for lib in "__LIB_FOLDERS__".split(os.pathsep): path = os.path.realpath(os.path.join(bin_dir, lib)) site.addsitedir(path.decode("utf-8") if "__DECODE_PATH__" else path) sys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length] sys.real_prefix = sys.prefix sys.prefix = base PKx"TZļvirtualenv/app_data/__init__.py""" Application data stored by virtualenv. """ from __future__ import absolute_import, unicode_literals import logging import os from platformdirs import user_data_dir from .na import AppDataDisabled from .read_only import ReadOnlyAppData from .via_disk_folder import AppDataDiskFolder from .via_tempdir import TempAppData def _default_app_data_dir(env): key = str("VIRTUALENV_OVERRIDE_APP_DATA") if key in env: return env[key] else: return user_data_dir(appname="virtualenv", appauthor="pypa") def make_app_data(folder, **kwargs): read_only = kwargs.pop("read_only") env = kwargs.pop("env") if kwargs: # py3+ kwonly raise TypeError("unexpected keywords: {}") if folder is None: folder = _default_app_data_dir(env) folder = os.path.abspath(folder) if read_only: return ReadOnlyAppData(folder) if not os.path.isdir(folder): try: os.makedirs(folder) logging.debug("created app data folder %s", folder) except OSError as exception: logging.info("could not create app data folder %s due to %r", folder, exception) if os.access(folder, os.W_OK): return AppDataDiskFolder(folder) else: logging.debug("app data folder %s has no write access", folder) return TempAppData() __all__ = ( "AppDataDisabled", "AppDataDiskFolder", "ReadOnlyAppData", "TempAppData", "make_app_data", ) PKx"TC?$>QQvirtualenv/app_data/base.py""" Application data stored by virtualenv. """ from __future__ import absolute_import, unicode_literals from abc import ABCMeta, abstractmethod from contextlib import contextmanager import six from virtualenv.info import IS_ZIPAPP @six.add_metaclass(ABCMeta) class AppData(object): """Abstract storage interface for the virtualenv application""" @abstractmethod def close(self): """called before virtualenv exits""" @abstractmethod def reset(self): """called when the user passes in the reset app data""" @abstractmethod def py_info(self, path): raise NotImplementedError @abstractmethod def py_info_clear(self): raise NotImplementedError @property def can_update(self): raise NotImplementedError @abstractmethod def embed_update_log(self, distribution, for_py_version): raise NotImplementedError @property def house(self): raise NotImplementedError @property def transient(self): raise NotImplementedError @abstractmethod def wheel_image(self, for_py_version, name): raise NotImplementedError @contextmanager def ensure_extracted(self, path, to_folder=None): """Some paths might be within the zipapp, unzip these to a path on the disk""" if IS_ZIPAPP: with self.extract(path, to_folder) as result: yield result else: yield path @abstractmethod @contextmanager def extract(self, path, to_folder): raise NotImplementedError @abstractmethod @contextmanager def locked(self, path): raise NotImplementedError @six.add_metaclass(ABCMeta) class ContentStore(object): @abstractmethod def exists(self): raise NotImplementedError @abstractmethod def read(self): raise NotImplementedError @abstractmethod def write(self, content): raise NotImplementedError @abstractmethod def remove(self): raise NotImplementedError @abstractmethod @contextmanager def locked(self): pass PKx"Tvirtualenv/app_data/na.pyfrom __future__ import absolute_import, unicode_literals from contextlib import contextmanager from .base import AppData, ContentStore class AppDataDisabled(AppData): """No application cache available (most likely as we don't have write permissions)""" transient = True can_update = False def __init__(self): pass error = RuntimeError("no app data folder available, probably no write access to the folder") def close(self): """do nothing""" def reset(self): """do nothing""" def py_info(self, path): return ContentStoreNA() def embed_update_log(self, distribution, for_py_version): return ContentStoreNA() def extract(self, path, to_folder): raise self.error @contextmanager def locked(self, path): """do nothing""" yield @property def house(self): raise self.error def wheel_image(self, for_py_version, name): raise self.error def py_info_clear(self): """ """ class ContentStoreNA(ContentStore): def exists(self): return False def read(self): """ """ return None def write(self, content): """ """ def remove(self): """ """ @contextmanager def locked(self): yield PKx"T_ virtualenv/app_data/read_only.pyimport os.path from virtualenv.util.lock import NoOpFileLock from .via_disk_folder import AppDataDiskFolder, PyInfoStoreDisk class ReadOnlyAppData(AppDataDiskFolder): can_update = False def __init__(self, folder): # type: (str) -> None if not os.path.isdir(folder): raise RuntimeError("read-only app data directory {} does not exist".format(folder)) self.lock = NoOpFileLock(folder) def reset(self): # type: () -> None raise RuntimeError("read-only app data does not support reset") def py_info_clear(self): # type: () -> None raise NotImplementedError def py_info(self, path): return _PyInfoStoreDiskReadOnly(self.py_info_at, path) def embed_update_log(self, distribution, for_py_version): raise NotImplementedError class _PyInfoStoreDiskReadOnly(PyInfoStoreDisk): def write(self, content): raise RuntimeError("read-only app data python info cannot be updated") __all__ = ("ReadOnlyAppData",) PKx"T&virtualenv/app_data/via_disk_folder.py# -*- coding: utf-8 -*- """ A rough layout of the current storage goes as: virtualenv-app-data ├── py - │   └── *.json/lock ├── wheel │   ├── house │ │ └── *.whl │ └── -> 3.9 │ ├── img- │ │ └── image │ │ └── -> CopyPipInstall / SymlinkPipInstall │ │ └── -> pip-20.1.1-py2.py3-none-any │ └── embed │ └── 3 -> json format versioning │ └── *.json -> for every distribution contains data about newer embed versions and releases └─── unzip └── ├── py_info.py ├── debug.py └── _virtualenv.py """ from __future__ import absolute_import, unicode_literals import json import logging from abc import ABCMeta from contextlib import contextmanager from hashlib import sha256 import six from virtualenv.util.lock import ReentrantFileLock from virtualenv.util.path import safe_delete from virtualenv.util.six import ensure_text from virtualenv.util.zipapp import extract from virtualenv.version import __version__ from .base import AppData, ContentStore class AppDataDiskFolder(AppData): """ Store the application data on the disk within a folder layout. """ transient = False can_update = True def __init__(self, folder): self.lock = ReentrantFileLock(folder) def __repr__(self): return "{}({})".format(type(self).__name__, self.lock.path) def __str__(self): return str(self.lock.path) def reset(self): logging.debug("reset app data folder %s", self.lock.path) safe_delete(self.lock.path) def close(self): """do nothing""" @contextmanager def locked(self, path): path_lock = self.lock / path with path_lock: yield path_lock.path @contextmanager def extract(self, path, to_folder): if to_folder is not None: root = ReentrantFileLock(to_folder()) else: root = self.lock / "unzip" / __version__ with root.lock_for_key(path.name): dest = root.path / path.name if not dest.exists(): extract(path, dest) yield dest @property def py_info_at(self): return self.lock / "py_info" / "1" def py_info(self, path): return PyInfoStoreDisk(self.py_info_at, path) def py_info_clear(self): """ """ py_info_folder = self.py_info_at with py_info_folder: for filename in py_info_folder.path.iterdir(): if filename.suffix == ".json": with py_info_folder.lock_for_key(filename.stem): if filename.exists(): filename.unlink() def embed_update_log(self, distribution, for_py_version): return EmbedDistributionUpdateStoreDisk(self.lock / "wheel" / for_py_version / "embed" / "3", distribution) @property def house(self): path = self.lock.path / "wheel" / "house" path.mkdir(parents=True, exist_ok=True) return path def wheel_image(self, for_py_version, name): return self.lock.path / "wheel" / for_py_version / "image" / "1" / name @six.add_metaclass(ABCMeta) class JSONStoreDisk(ContentStore): def __init__(self, in_folder, key, msg, msg_args): self.in_folder = in_folder self.key = key self.msg = msg self.msg_args = msg_args + (self.file,) @property def file(self): return self.in_folder.path / "{}.json".format(self.key) def exists(self): return self.file.exists() def read(self): data, bad_format = None, False try: data = json.loads(self.file.read_text()) logging.debug("got {} from %s".format(self.msg), *self.msg_args) return data except ValueError: bad_format = True except Exception: # noqa pass if bad_format: try: self.remove() except OSError: # reading and writing on the same file may cause race on multiple processes pass return None def remove(self): self.file.unlink() logging.debug("removed {} at %s".format(self.msg), *self.msg_args) @contextmanager def locked(self): with self.in_folder.lock_for_key(self.key): yield def write(self, content): folder = self.file.parent folder.mkdir(parents=True, exist_ok=True) self.file.write_text(ensure_text(json.dumps(content, sort_keys=True, indent=2))) logging.debug("wrote {} at %s".format(self.msg), *self.msg_args) class PyInfoStoreDisk(JSONStoreDisk): def __init__(self, in_folder, path): key = sha256(str(path).encode("utf-8") if six.PY3 else str(path)).hexdigest() super(PyInfoStoreDisk, self).__init__(in_folder, key, "python info of %s", (path,)) class EmbedDistributionUpdateStoreDisk(JSONStoreDisk): def __init__(self, in_folder, distribution): super(EmbedDistributionUpdateStoreDisk, self).__init__( in_folder, distribution, "embed update of distribution %s", (distribution,), ) PKx"T)~)"virtualenv/app_data/via_tempdir.pyfrom __future__ import absolute_import, unicode_literals import logging from tempfile import mkdtemp from virtualenv.util.path import safe_delete from .via_disk_folder import AppDataDiskFolder class TempAppData(AppDataDiskFolder): transient = True can_update = False def __init__(self): super(TempAppData, self).__init__(folder=mkdtemp()) logging.debug("created temporary app data folder %s", self.lock.path) def reset(self): """this is a temporary folder, is already empty to start with""" def close(self): logging.debug("remove temporary app data folder %s", self.lock.path) safe_delete(self.lock.path) def embed_update_log(self, distribution, for_py_version): raise NotImplementedError PKx"T4T99virtualenv/config/__init__.pyfrom __future__ import absolute_import, unicode_literals PKx"T& virtualenv/config/convert.pyfrom __future__ import absolute_import, unicode_literals import logging import os class TypeData(object): def __init__(self, default_type, as_type): self.default_type = default_type self.as_type = as_type def __repr__(self): return "{}(base={}, as={})".format(self.__class__.__name__, self.default_type, self.as_type) def convert(self, value): return self.default_type(value) class BoolType(TypeData): BOOLEAN_STATES = { "1": True, "yes": True, "true": True, "on": True, "0": False, "no": False, "false": False, "off": False, } def convert(self, value): if value.lower() not in self.BOOLEAN_STATES: raise ValueError("Not a boolean: %s" % value) return self.BOOLEAN_STATES[value.lower()] class NoneType(TypeData): def convert(self, value): if not value: return None return str(value) class ListType(TypeData): def _validate(self): """ """ def convert(self, value, flatten=True): values = self.split_values(value) result = [] for value in values: sub_values = value.split(os.pathsep) result.extend(sub_values) converted = [self.as_type(i) for i in result] return converted def split_values(self, value): """Split the provided value into a list. First this is done by newlines. If there were no newlines in the text, then we next try to split by comma. """ if isinstance(value, (str, bytes)): # Use `splitlines` rather than a custom check for whether there is # more than one line. This ensures that the full `splitlines()` # logic is supported here. values = value.splitlines() if len(values) <= 1: values = value.split(",") values = filter(None, [x.strip() for x in values]) else: values = list(value) return values def convert(value, as_type, source): """Convert the value as a given type where the value comes from the given source""" try: return as_type.convert(value) except Exception as exception: logging.warning("%s failed to convert %r as %r because %r", source, value, as_type, exception) raise _CONVERT = {bool: BoolType, type(None): NoneType, list: ListType} def get_type(action): default_type = type(action.default) as_type = default_type if action.type is None else action.type return _CONVERT.get(default_type, TypeData)(default_type, as_type) __all__ = ( "convert", "get_type", ) PKx"T0eevirtualenv/config/env_var.pyfrom __future__ import absolute_import, unicode_literals from virtualenv.util.six import ensure_str, ensure_text from .convert import convert def get_env_var(key, as_type, env): """Get the environment variable option. :param key: the config key requested :param as_type: the type we would like to convert it to :param env: environment variables to use :return: """ environ_key = ensure_str("VIRTUALENV_{}".format(key.upper())) if env.get(environ_key): value = env[environ_key] # noinspection PyBroadException try: source = "env var {}".format(ensure_text(environ_key)) as_type = convert(value, as_type, source) return as_type, source except Exception: # note the converter already logs a warning when failures happen pass __all__ = ("get_env_var",) PKx"TC   virtualenv/config/ini.pyfrom __future__ import absolute_import, unicode_literals import logging import os from platformdirs import user_config_dir from virtualenv.info import PY3 from virtualenv.util import ConfigParser from virtualenv.util.path import Path from virtualenv.util.six import ensure_str from .convert import convert class IniConfig(object): VIRTUALENV_CONFIG_FILE_ENV_VAR = ensure_str("VIRTUALENV_CONFIG_FILE") STATE = {None: "failed to parse", True: "active", False: "missing"} section = "virtualenv" def __init__(self, env=None): env = os.environ if env is None else env config_file = env.get(self.VIRTUALENV_CONFIG_FILE_ENV_VAR, None) self.is_env_var = config_file is not None config_file = ( Path(config_file) if config_file is not None else Path(user_config_dir(appname="virtualenv", appauthor="pypa")) / "virtualenv.ini" ) self.config_file = config_file self._cache = {} exception = None self.has_config_file = None try: self.has_config_file = self.config_file.exists() except OSError as exc: exception = exc else: if self.has_config_file: self.config_file = self.config_file.resolve() self.config_parser = ConfigParser.ConfigParser() try: self._load() self.has_virtualenv_section = self.config_parser.has_section(self.section) except Exception as exc: exception = exc if exception is not None: logging.error("failed to read config file %s because %r", config_file, exception) def _load(self): with self.config_file.open("rt") as file_handler: reader = getattr(self.config_parser, "read_file" if PY3 else "readfp") reader(file_handler) def get(self, key, as_type): cache_key = key, as_type if cache_key in self._cache: return self._cache[cache_key] # noinspection PyBroadException try: source = "file" raw_value = self.config_parser.get(self.section, key.lower()) value = convert(raw_value, as_type, source) result = value, source except Exception: result = None self._cache[cache_key] = result return result def __bool__(self): return bool(self.has_config_file) and bool(self.has_virtualenv_section) @property def epilog(self): msg = "{}config file {} {} (change{} via env var {})" return msg.format( "\n", self.config_file, self.STATE[self.has_config_file], "d" if self.is_env_var else "", self.VIRTUALENV_CONFIG_FILE_ENV_VAR, ) PKx"T4T99!virtualenv/config/cli/__init__.pyfrom __future__ import absolute_import, unicode_literals PKx"T <::virtualenv/config/cli/parser.pyfrom __future__ import absolute_import, unicode_literals import os from argparse import SUPPRESS, ArgumentDefaultsHelpFormatter, ArgumentParser, Namespace from collections import OrderedDict from virtualenv.config.convert import get_type from ..env_var import get_env_var from ..ini import IniConfig class VirtualEnvOptions(Namespace): def __init__(self, **kwargs): super(VirtualEnvOptions, self).__init__(**kwargs) self._src = None self._sources = {} def set_src(self, key, value, src): setattr(self, key, value) if src.startswith("env var"): src = "env var" self._sources[key] = src def __setattr__(self, key, value): if getattr(self, "_src", None) is not None: self._sources[key] = self._src super(VirtualEnvOptions, self).__setattr__(key, value) def get_source(self, key): return self._sources.get(key) @property def verbosity(self): if not hasattr(self, "verbose") and not hasattr(self, "quiet"): return None return max(self.verbose - self.quiet, 0) def __repr__(self): return "{}({})".format( type(self).__name__, ", ".join("{}={}".format(k, v) for k, v in vars(self).items() if not k.startswith("_")), ) class VirtualEnvConfigParser(ArgumentParser): """ Custom option parser which updates its defaults by checking the configuration files and environmental variables """ def __init__(self, options=None, env=None, *args, **kwargs): env = os.environ if env is None else env self.file_config = IniConfig(env) self.epilog_list = [] self.env = env kwargs["epilog"] = self.file_config.epilog kwargs["add_help"] = False kwargs["formatter_class"] = HelpFormatter kwargs["prog"] = "virtualenv" super(VirtualEnvConfigParser, self).__init__(*args, **kwargs) self._fixed = set() if options is not None and not isinstance(options, VirtualEnvOptions): raise TypeError("options must be of type VirtualEnvOptions") self.options = VirtualEnvOptions() if options is None else options self._interpreter = None self._app_data = None def _fix_defaults(self): for action in self._actions: action_id = id(action) if action_id not in self._fixed: self._fix_default(action) self._fixed.add(action_id) def _fix_default(self, action): if hasattr(action, "default") and hasattr(action, "dest") and action.default != SUPPRESS: as_type = get_type(action) names = OrderedDict((i.lstrip("-").replace("-", "_"), None) for i in action.option_strings) outcome = None for name in names: outcome = get_env_var(name, as_type, self.env) if outcome is not None: break if outcome is None and self.file_config: for name in names: outcome = self.file_config.get(name, as_type) if outcome is not None: break if outcome is not None: action.default, action.default_source = outcome else: outcome = action.default, "default" self.options.set_src(action.dest, *outcome) def enable_help(self): self._fix_defaults() self.add_argument("-h", "--help", action="help", default=SUPPRESS, help="show this help message and exit") def parse_known_args(self, args=None, namespace=None): if namespace is None: namespace = self.options elif namespace is not self.options: raise ValueError("can only pass in parser.options") self._fix_defaults() self.options._src = "cli" try: namespace.env = self.env return super(VirtualEnvConfigParser, self).parse_known_args(args, namespace=namespace) finally: self.options._src = None class HelpFormatter(ArgumentDefaultsHelpFormatter): def __init__(self, prog): super(HelpFormatter, self).__init__(prog, max_help_position=32, width=240) def _get_help_string(self, action): # noinspection PyProtectedMember text = super(HelpFormatter, self)._get_help_string(action) if hasattr(action, "default_source"): default = " (default: %(default)s)" if text.endswith(default): text = "{} (default: %(default)s -> from %(default_source)s)".format(text[: -len(default)]) return text PKx"T4T99virtualenv/create/__init__.pyfrom __future__ import absolute_import, unicode_literals PKx"TJ;""virtualenv/create/creator.pyfrom __future__ import absolute_import, print_function, unicode_literals import json import logging import os import sys from abc import ABCMeta, abstractmethod from argparse import ArgumentTypeError from ast import literal_eval from collections import OrderedDict from textwrap import dedent from six import add_metaclass from virtualenv.discovery.cached_py_info import LogCmd from virtualenv.info import WIN_CPYTHON_2 from virtualenv.util.path import Path, safe_delete from virtualenv.util.six import ensure_str, ensure_text from virtualenv.util.subprocess import run_cmd from virtualenv.version import __version__ from .pyenv_cfg import PyEnvCfg HERE = Path(os.path.abspath(__file__)).parent DEBUG_SCRIPT = HERE / "debug.py" class CreatorMeta(object): def __init__(self): self.error = None @add_metaclass(ABCMeta) class Creator(object): """A class that given a python Interpreter creates a virtual environment""" def __init__(self, options, interpreter): """Construct a new virtual environment creator. :param options: the CLI option as parsed from :meth:`add_parser_arguments` :param interpreter: the interpreter to create virtual environment from """ self.interpreter = interpreter self._debug = None self.dest = Path(options.dest) self.clear = options.clear self.no_vcs_ignore = options.no_vcs_ignore self.pyenv_cfg = PyEnvCfg.from_folder(self.dest) self.app_data = options.app_data self.env = options.env def __repr__(self): return ensure_str(self.__unicode__()) def __unicode__(self): return "{}({})".format(self.__class__.__name__, ", ".join("{}={}".format(k, v) for k, v in self._args())) def _args(self): return [ ("dest", ensure_text(str(self.dest))), ("clear", self.clear), ("no_vcs_ignore", self.no_vcs_ignore), ] @classmethod def can_create(cls, interpreter): """Determine if we can create a virtual environment. :param interpreter: the interpreter in question :return: ``None`` if we can't create, any other object otherwise that will be forwarded to \ :meth:`add_parser_arguments` """ return True @classmethod def add_parser_arguments(cls, parser, interpreter, meta, app_data): """Add CLI arguments for the creator. :param parser: the CLI parser :param app_data: the application data folder :param interpreter: the interpreter we're asked to create virtual environment for :param meta: value as returned by :meth:`can_create` """ parser.add_argument( "dest", help="directory to create virtualenv at", type=cls.validate_dest, ) parser.add_argument( "--clear", dest="clear", action="store_true", help="remove the destination directory if exist before starting (will overwrite files otherwise)", default=False, ) parser.add_argument( "--no-vcs-ignore", dest="no_vcs_ignore", action="store_true", help="don't create VCS ignore directive in the destination directory", default=False, ) @abstractmethod def create(self): """Perform the virtual environment creation.""" raise NotImplementedError @classmethod def validate_dest(cls, raw_value): """No path separator in the path, valid chars and must be write-able""" def non_write_able(dest, value): common = Path(*os.path.commonprefix([value.parts, dest.parts])) raise ArgumentTypeError( "the destination {} is not write-able at {}".format(dest.relative_to(common), common), ) # the file system must be able to encode # note in newer CPython this is always utf-8 https://www.python.org/dev/peps/pep-0529/ encoding = sys.getfilesystemencoding() refused = OrderedDict() kwargs = {"errors": "ignore"} if encoding != "mbcs" else {} for char in ensure_text(raw_value): try: trip = char.encode(encoding, **kwargs).decode(encoding) if trip == char: continue raise ValueError(trip) except ValueError: refused[char] = None if refused: raise ArgumentTypeError( "the file system codec ({}) cannot handle characters {!r} within {!r}".format( encoding, "".join(refused.keys()), raw_value, ), ) if os.pathsep in raw_value: raise ArgumentTypeError( "destination {!r} must not contain the path separator ({}) as this would break " "the activation scripts".format(raw_value, os.pathsep), ) value = Path(raw_value) if value.exists() and value.is_file(): raise ArgumentTypeError("the destination {} already exists and is a file".format(value)) if (3, 3) <= sys.version_info <= (3, 6): # pre 3.6 resolve is always strict, aka must exists, sidestep by using os.path operation dest = Path(os.path.realpath(raw_value)) else: dest = Path(os.path.abspath(str(value))).resolve() # on Windows absolute does not imply resolve so use both value = dest while dest: if dest.exists(): if os.access(ensure_text(str(dest)), os.W_OK): break else: non_write_able(dest, value) base, _ = dest.parent, dest.name if base == dest: non_write_able(dest, value) # pragma: no cover dest = base return str(value) def run(self): if self.dest.exists() and self.clear: logging.debug("delete %s", self.dest) safe_delete(self.dest) self.create() self.set_pyenv_cfg() if not self.no_vcs_ignore: self.setup_ignore_vcs() def set_pyenv_cfg(self): self.pyenv_cfg.content = OrderedDict() self.pyenv_cfg["home"] = self.interpreter.system_exec_prefix self.pyenv_cfg["implementation"] = self.interpreter.implementation self.pyenv_cfg["version_info"] = ".".join(str(i) for i in self.interpreter.version_info) self.pyenv_cfg["virtualenv"] = __version__ def setup_ignore_vcs(self): """Generate ignore instructions for version control systems.""" # mark this folder to be ignored by VCS, handle https://www.python.org/dev/peps/pep-0610/#registered-vcs git_ignore = self.dest / ".gitignore" if not git_ignore.exists(): git_ignore.write_text( dedent( """ # created by virtualenv automatically * """, ).lstrip(), ) # Mercurial - does not support the .hgignore file inside a subdirectory directly, but only if included via the # subinclude directive from root, at which point on might as well ignore the directory itself, see # https://www.selenic.com/mercurial/hgignore.5.html for more details # Bazaar - does not support ignore files in sub-directories, only at root level via .bzrignore # Subversion - does not support ignore files, requires direct manipulation with the svn tool @property def debug(self): """ :return: debug information about the virtual environment (only valid after :meth:`create` has run) """ if self._debug is None and self.exe is not None: self._debug = get_env_debug_info(self.exe, self.debug_script(), self.app_data, self.env) return self._debug # noinspection PyMethodMayBeStatic def debug_script(self): return DEBUG_SCRIPT def get_env_debug_info(env_exe, debug_script, app_data, env): env = env.copy() env.pop(str("PYTHONPATH"), None) with app_data.ensure_extracted(debug_script) as debug_script: cmd = [str(env_exe), str(debug_script)] if WIN_CPYTHON_2: cmd = [ensure_text(i) for i in cmd] logging.debug(str("debug via %r"), LogCmd(cmd)) code, out, err = run_cmd(cmd) # noinspection PyBroadException try: if code != 0: result = literal_eval(out) else: result = json.loads(out) if err: result["err"] = err except Exception as exception: return {"out": out, "err": err, "returncode": code, "exception": repr(exception)} if "sys" in result and "path" in result["sys"]: del result["sys"]["path"][0] return result PKx"T[  virtualenv/create/debug.py"""Inspect a target Python interpreter virtual environment wise""" import sys # built-in PYPY2_WIN = hasattr(sys, "pypy_version_info") and sys.platform != "win32" and sys.version_info[0] == 2 def encode_path(value): if value is None: return None if not isinstance(value, (str, bytes)): if isinstance(value, type): value = repr(value) else: value = repr(type(value)) if isinstance(value, bytes) and not PYPY2_WIN: value = value.decode(sys.getfilesystemencoding()) return value def encode_list_path(value): return [encode_path(i) for i in value] def run(): """print debug data about the virtual environment""" try: from collections import OrderedDict except ImportError: # pragma: no cover # this is possible if the standard library cannot be accessed # noinspection PyPep8Naming OrderedDict = dict # pragma: no cover result = OrderedDict([("sys", OrderedDict())]) path_keys = ( "executable", "_base_executable", "prefix", "base_prefix", "real_prefix", "exec_prefix", "base_exec_prefix", "path", "meta_path", ) for key in path_keys: value = getattr(sys, key, None) if isinstance(value, list): value = encode_list_path(value) else: value = encode_path(value) result["sys"][key] = value result["sys"]["fs_encoding"] = sys.getfilesystemencoding() result["sys"]["io_encoding"] = getattr(sys.stdout, "encoding", None) result["version"] = sys.version try: import sysconfig # https://bugs.python.org/issue22199 makefile = getattr(sysconfig, "get_makefile_filename", getattr(sysconfig, "_get_makefile_filename", None)) result["makefile_filename"] = encode_path(makefile()) except ImportError: pass import os # landmark result["os"] = repr(os) try: # noinspection PyUnresolvedReferences import site # site result["site"] = repr(site) except ImportError as exception: # pragma: no cover result["site"] = repr(exception) # pragma: no cover try: # noinspection PyUnresolvedReferences import datetime # site result["datetime"] = repr(datetime) except ImportError as exception: # pragma: no cover result["datetime"] = repr(exception) # pragma: no cover try: # noinspection PyUnresolvedReferences import math # site result["math"] = repr(math) except ImportError as exception: # pragma: no cover result["math"] = repr(exception) # pragma: no cover # try to print out, this will validate if other core modules are available (json in this case) try: import json result["json"] = repr(json) except ImportError as exception: result["json"] = repr(exception) else: try: content = json.dumps(result, indent=2) sys.stdout.write(content) except (ValueError, TypeError) as exception: # pragma: no cover sys.stderr.write(repr(exception)) sys.stdout.write(repr(result)) # pragma: no cover raise SystemExit(1) # pragma: no cover if __name__ == "__main__": run() PKx"Tg virtualenv/create/describe.pyfrom __future__ import absolute_import, print_function, unicode_literals from abc import ABCMeta from collections import OrderedDict from six import add_metaclass from virtualenv.info import IS_WIN from virtualenv.util.path import Path from virtualenv.util.six import ensure_text @add_metaclass(ABCMeta) class Describe(object): """Given a host interpreter tell us information about what the created interpreter might look like""" suffix = ".exe" if IS_WIN else "" def __init__(self, dest, interpreter): self.interpreter = interpreter self.dest = dest self._stdlib = None self._stdlib_platform = None self._system_stdlib = None self._conf_vars = None @property def bin_dir(self): return self.script_dir @property def script_dir(self): return self.dest / self.interpreter.install_path("scripts") @property def purelib(self): return self.dest / self.interpreter.install_path("purelib") @property def platlib(self): return self.dest / self.interpreter.install_path("platlib") @property def libs(self): return list(OrderedDict(((self.platlib, None), (self.purelib, None))).keys()) @property def stdlib(self): if self._stdlib is None: self._stdlib = Path(self.interpreter.sysconfig_path("stdlib", config_var=self._config_vars)) return self._stdlib @property def stdlib_platform(self): if self._stdlib_platform is None: self._stdlib_platform = Path(self.interpreter.sysconfig_path("platstdlib", config_var=self._config_vars)) return self._stdlib_platform @property def _config_vars(self): if self._conf_vars is None: self._conf_vars = self._calc_config_vars(ensure_text(str(self.dest))) return self._conf_vars def _calc_config_vars(self, to): return { k: (to if v.startswith(self.interpreter.prefix) else v) for k, v in self.interpreter.sysconfig_vars.items() } @classmethod def can_describe(cls, interpreter): """Knows means it knows how the output will look""" return True @property def env_name(self): return ensure_text(self.dest.parts[-1]) @property def exe(self): return self.bin_dir / "{}{}".format(self.exe_stem(), self.suffix) @classmethod def exe_stem(cls): """executable name without suffix - there seems to be no standard way to get this without creating it""" raise NotImplementedError def script(self, name): return self.script_dir / "{}{}".format(name, self.suffix) @add_metaclass(ABCMeta) class Python2Supports(Describe): @classmethod def can_describe(cls, interpreter): return interpreter.version_info.major == 2 and super(Python2Supports, cls).can_describe(interpreter) @add_metaclass(ABCMeta) class Python3Supports(Describe): @classmethod def can_describe(cls, interpreter): return interpreter.version_info.major == 3 and super(Python3Supports, cls).can_describe(interpreter) @add_metaclass(ABCMeta) class PosixSupports(Describe): @classmethod def can_describe(cls, interpreter): return interpreter.os == "posix" and super(PosixSupports, cls).can_describe(interpreter) @add_metaclass(ABCMeta) class WindowsSupports(Describe): @classmethod def can_describe(cls, interpreter): return interpreter.os == "nt" and super(WindowsSupports, cls).can_describe(interpreter) PKx"TUvirtualenv/create/pyenv_cfg.pyfrom __future__ import absolute_import, unicode_literals import logging from collections import OrderedDict from virtualenv.util.six import ensure_text class PyEnvCfg(object): def __init__(self, content, path): self.content = content self.path = path @classmethod def from_folder(cls, folder): return cls.from_file(folder / "pyvenv.cfg") @classmethod def from_file(cls, path): content = cls._read_values(path) if path.exists() else OrderedDict() return PyEnvCfg(content, path) @staticmethod def _read_values(path): content = OrderedDict() for line in path.read_text(encoding="utf-8").splitlines(): equals_at = line.index("=") key = line[:equals_at].strip() value = line[equals_at + 1 :].strip() content[key] = value return content def write(self): logging.debug("write %s", ensure_text(str(self.path))) text = "" for key, value in self.content.items(): line = "{} = {}".format(key, value) logging.debug("\t%s", line) text += line text += "\n" self.path.write_text(text, encoding="utf-8") def refresh(self): self.content = self._read_values(self.path) return self.content def __setitem__(self, key, value): self.content[key] = value def __getitem__(self, key): return self.content[key] def __contains__(self, item): return item in self.content def update(self, other): self.content.update(other) return self def __repr__(self): return "{}(path={})".format(self.__class__.__name__, self.path) PKx"T,virtualenv/create/via_global_ref/__init__.pyPKx"T' /virtualenv/create/via_global_ref/_virtualenv.py"""Patches that are applied at runtime to the virtual environment""" # -*- coding: utf-8 -*- import os import sys VIRTUALENV_PATCH_FILE = os.path.join(__file__) def patch_dist(dist): """ Distutils allows user to configure some arguments via a configuration file: https://docs.python.org/3/install/index.html#distutils-configuration-files Some of this arguments though don't make sense in context of the virtual environment files, let's fix them up. """ # we cannot allow some install config as that would get packages installed outside of the virtual environment old_parse_config_files = dist.Distribution.parse_config_files def parse_config_files(self, *args, **kwargs): result = old_parse_config_files(self, *args, **kwargs) install = self.get_option_dict("install") if "prefix" in install: # the prefix governs where to install the libraries install["prefix"] = VIRTUALENV_PATCH_FILE, os.path.abspath(sys.prefix) for base in ("purelib", "platlib", "headers", "scripts", "data"): key = "install_{}".format(base) if key in install: # do not allow global configs to hijack venv paths install.pop(key, None) return result dist.Distribution.parse_config_files = parse_config_files # Import hook that patches some modules to ignore configuration values that break package installation in case # of virtual environments. _DISTUTILS_PATCH = "distutils.dist", "setuptools.dist" if sys.version_info > (3, 4): # https://docs.python.org/3/library/importlib.html#setting-up-an-importer from functools import partial from importlib.abc import MetaPathFinder from importlib.util import find_spec class _Finder(MetaPathFinder): """A meta path finder that allows patching the imported distutils modules""" fullname = None # lock[0] is threading.Lock(), but initialized lazily to avoid importing threading very early at startup, # because there are gevent-based applications that need to be first to import threading by themselves. # See https://github.com/pypa/virtualenv/issues/1895 for details. lock = [] def find_spec(self, fullname, path, target=None): if fullname in _DISTUTILS_PATCH and self.fullname is None: # initialize lock[0] lazily if len(self.lock) == 0: import threading lock = threading.Lock() # there is possibility that two threads T1 and T2 are simultaneously running into find_spec, # observing .lock as empty, and further going into hereby initialization. However due to the GIL, # list.append() operation is atomic and this way only one of the threads will "win" to put the lock # - that every thread will use - into .lock[0]. # https://docs.python.org/3/faq/library.html#what-kinds-of-global-value-mutation-are-thread-safe self.lock.append(lock) with self.lock[0]: self.fullname = fullname try: spec = find_spec(fullname, path) if spec is not None: # https://www.python.org/dev/peps/pep-0451/#how-loading-will-work is_new_api = hasattr(spec.loader, "exec_module") func_name = "exec_module" if is_new_api else "load_module" old = getattr(spec.loader, func_name) func = self.exec_module if is_new_api else self.load_module if old is not func: try: setattr(spec.loader, func_name, partial(func, old)) except AttributeError: pass # C-Extension loaders are r/o such as zipimporter with 4 and parts[-4] == "Microsoft" and parts[-3] == "WindowsApps" and parts[-2].startswith("PythonSoftwareFoundation.Python.3.") and parts[-1].startswith("python") ) __all__ = ( "handle_store_python", "is_store_python", ) PKx"Tr ʋ (virtualenv/create/via_global_ref/venv.pyfrom __future__ import absolute_import, unicode_literals import logging from copy import copy from virtualenv.create.via_global_ref.store import handle_store_python from virtualenv.discovery.py_info import PythonInfo from virtualenv.util.error import ProcessCallFailed from virtualenv.util.path import ensure_dir from virtualenv.util.subprocess import run_cmd from .api import ViaGlobalRefApi, ViaGlobalRefMeta class Venv(ViaGlobalRefApi): def __init__(self, options, interpreter): self.describe = options.describe super(Venv, self).__init__(options, interpreter) self.can_be_inline = ( interpreter is PythonInfo.current() and interpreter.executable == interpreter.system_executable ) self._context = None def _args(self): return super(Venv, self)._args() + ([("describe", self.describe.__class__.__name__)] if self.describe else []) @classmethod def can_create(cls, interpreter): if interpreter.has_venv: meta = ViaGlobalRefMeta() if interpreter.platform == "win32" and interpreter.version_info.major == 3: meta = handle_store_python(meta, interpreter) return meta return None def create(self): if self.can_be_inline: self.create_inline() else: self.create_via_sub_process() for lib in self.libs: ensure_dir(lib) super(Venv, self).create() def create_inline(self): from venv import EnvBuilder builder = EnvBuilder( system_site_packages=self.enable_system_site_package, clear=False, symlinks=self.symlinks, with_pip=False, ) builder.create(str(self.dest)) def create_via_sub_process(self): cmd = self.get_host_create_cmd() logging.info("using host built-in venv to create via %s", " ".join(cmd)) code, out, err = run_cmd(cmd) if code != 0: raise ProcessCallFailed(code, out, err, cmd) def get_host_create_cmd(self): cmd = [self.interpreter.system_executable, "-m", "venv", "--without-pip"] if self.enable_system_site_package: cmd.append("--system-site-packages") cmd.append("--symlinks" if self.symlinks else "--copies") cmd.append(str(self.dest)) return cmd def set_pyenv_cfg(self): # prefer venv options over ours, but keep our extra venv_content = copy(self.pyenv_cfg.refresh()) super(Venv, self).set_pyenv_cfg() self.pyenv_cfg.update(venv_content) def __getattribute__(self, item): describe = object.__getattribute__(self, "describe") if describe is not None and hasattr(describe, item): element = getattr(describe, item) if not callable(element) or item in ("script",): return element return object.__getattribute__(self, item) PKx"T4virtualenv/create/via_global_ref/builtin/__init__.pyPKx"T""7virtualenv/create/via_global_ref/builtin/builtin_way.pyfrom __future__ import absolute_import, unicode_literals from abc import ABCMeta from six import add_metaclass from virtualenv.create.creator import Creator from virtualenv.create.describe import Describe @add_metaclass(ABCMeta) class VirtualenvBuiltin(Creator, Describe): """A creator that does operations itself without delegation, if we can create it we can also describe it""" def __init__(self, options, interpreter): Creator.__init__(self, options, interpreter) Describe.__init__(self, self.dest, interpreter) PKx"TPee/virtualenv/create/via_global_ref/builtin/ref.py""" Virtual environments in the traditional sense are built as reference to the host python. This file allows declarative references to elements on the file system, allowing our system to automatically detect what modes it can support given the constraints: e.g. can the file system symlink, can the files be read, executed, etc. """ from __future__ import absolute_import, unicode_literals import os from abc import ABCMeta, abstractmethod from collections import OrderedDict from stat import S_IXGRP, S_IXOTH, S_IXUSR from six import add_metaclass from virtualenv.info import fs_is_case_sensitive, fs_supports_symlink from virtualenv.util.path import copy, make_exe, symlink from virtualenv.util.six import ensure_text class RefMust(object): NA = "NA" COPY = "copy" SYMLINK = "symlink" class RefWhen(object): ANY = "ANY" COPY = "copy" SYMLINK = "symlink" @add_metaclass(ABCMeta) class PathRef(object): """Base class that checks if a file reference can be symlink/copied""" FS_SUPPORTS_SYMLINK = fs_supports_symlink() FS_CASE_SENSITIVE = fs_is_case_sensitive() def __init__(self, src, must=RefMust.NA, when=RefWhen.ANY): self.must = must self.when = when self.src = src try: self.exists = src.exists() except OSError: self.exists = False self._can_read = None if self.exists else False self._can_copy = None if self.exists else False self._can_symlink = None if self.exists else False def __repr__(self): return "{}(src={})".format(self.__class__.__name__, self.src) @property def can_read(self): if self._can_read is None: if self.src.is_file(): try: with self.src.open("rb"): self._can_read = True except OSError: self._can_read = False else: self._can_read = os.access(ensure_text(str(self.src)), os.R_OK) return self._can_read @property def can_copy(self): if self._can_copy is None: if self.must == RefMust.SYMLINK: self._can_copy = self.can_symlink else: self._can_copy = self.can_read return self._can_copy @property def can_symlink(self): if self._can_symlink is None: if self.must == RefMust.COPY: self._can_symlink = self.can_copy else: self._can_symlink = self.FS_SUPPORTS_SYMLINK and self.can_read return self._can_symlink @abstractmethod def run(self, creator, symlinks): raise NotImplementedError def method(self, symlinks): if self.must == RefMust.SYMLINK: return symlink if self.must == RefMust.COPY: return copy return symlink if symlinks else copy @add_metaclass(ABCMeta) class ExePathRef(PathRef): """Base class that checks if a executable can be references via symlink/copy""" def __init__(self, src, must=RefMust.NA, when=RefWhen.ANY): super(ExePathRef, self).__init__(src, must, when) self._can_run = None @property def can_symlink(self): if self.FS_SUPPORTS_SYMLINK: return self.can_run return False @property def can_run(self): if self._can_run is None: mode = self.src.stat().st_mode for key in [S_IXUSR, S_IXGRP, S_IXOTH]: if mode & key: self._can_run = True break else: self._can_run = False return self._can_run class PathRefToDest(PathRef): """Link a path on the file system""" def __init__(self, src, dest, must=RefMust.NA, when=RefWhen.ANY): super(PathRefToDest, self).__init__(src, must, when) self.dest = dest def run(self, creator, symlinks): dest = self.dest(creator, self.src) method = self.method(symlinks) dest_iterable = dest if isinstance(dest, list) else (dest,) if not dest.parent.exists(): dest.parent.mkdir(parents=True, exist_ok=True) for dst in dest_iterable: method(self.src, dst) class ExePathRefToDest(PathRefToDest, ExePathRef): """Link a exe path on the file system""" def __init__(self, src, targets, dest, must=RefMust.NA, when=RefWhen.ANY): ExePathRef.__init__(self, src, must, when) PathRefToDest.__init__(self, src, dest, must, when) if not self.FS_CASE_SENSITIVE: targets = list(OrderedDict((i.lower(), None) for i in targets).keys()) self.base = targets[0] self.aliases = targets[1:] self.dest = dest def run(self, creator, symlinks): bin_dir = self.dest(creator, self.src).parent dest = bin_dir / self.base method = self.method(symlinks) method(self.src, dest) if not symlinks: make_exe(dest) for extra in self.aliases: link_file = bin_dir / extra if link_file.exists(): link_file.unlink() if symlinks: link_file.symlink_to(self.base) else: copy(self.src, link_file) if not symlinks: make_exe(link_file) def __repr__(self): return "{}(src={}, alias={})".format(self.__class__.__name__, self.src, self.aliases) PKx"TrFc,>virtualenv/create/via_global_ref/builtin/via_global_self_do.pyfrom __future__ import absolute_import, unicode_literals from abc import ABCMeta from six import add_metaclass from virtualenv.create.via_global_ref.builtin.ref import ExePathRefToDest, RefMust, RefWhen from virtualenv.util.path import ensure_dir from ..api import ViaGlobalRefApi, ViaGlobalRefMeta from .builtin_way import VirtualenvBuiltin class BuiltinViaGlobalRefMeta(ViaGlobalRefMeta): def __init__(self): super(BuiltinViaGlobalRefMeta, self).__init__() self.sources = [] @add_metaclass(ABCMeta) class ViaGlobalRefVirtualenvBuiltin(ViaGlobalRefApi, VirtualenvBuiltin): def __init__(self, options, interpreter): super(ViaGlobalRefVirtualenvBuiltin, self).__init__(options, interpreter) self._sources = getattr(options.meta, "sources", None) # if we're created as a describer this might be missing @classmethod def can_create(cls, interpreter): """By default all built-in methods assume that if we can describe it we can create it""" # first we must be able to describe it if not cls.can_describe(interpreter): return None meta = cls.setup_meta(interpreter) if meta is not None and meta: cls._sources_can_be_applied(interpreter, meta) return meta @classmethod def _sources_can_be_applied(cls, interpreter, meta): for src in cls.sources(interpreter): if src.exists: if meta.can_copy and not src.can_copy: meta.copy_error = "cannot copy {}".format(src) if meta.can_symlink and not src.can_symlink: meta.symlink_error = "cannot symlink {}".format(src) else: msg = "missing required file {}".format(src) if src.when == RefMust.NA: meta.error = msg elif src.when == RefMust.COPY: meta.copy_error = msg elif src.when == RefMust.SYMLINK: meta.symlink_error = msg if not meta.can_copy and not meta.can_symlink: meta.error = "neither copy or symlink supported, copy: {} symlink: {}".format( meta.copy_error, meta.symlink_error, ) if meta.error: break meta.sources.append(src) @classmethod def setup_meta(cls, interpreter): return BuiltinViaGlobalRefMeta() @classmethod def sources(cls, interpreter): for host_exe, targets, must, when in cls._executables(interpreter): yield ExePathRefToDest(host_exe, dest=cls.to_bin, targets=targets, must=must, when=when) def to_bin(self, src): return self.bin_dir / src.name @classmethod def _executables(cls, interpreter): raise NotImplementedError def create(self): dirs = self.ensure_directories() for directory in list(dirs): if any(i for i in dirs if i is not directory and directory.parts == i.parts[: len(directory.parts)]): dirs.remove(directory) for directory in sorted(dirs): ensure_dir(directory) self.set_pyenv_cfg() self.pyenv_cfg.write() true_system_site = self.enable_system_site_package try: self.enable_system_site_package = False for src in self._sources: if ( src.when == RefWhen.ANY or (src.when == RefWhen.SYMLINK and self.symlinks is True) or (src.when == RefWhen.COPY and self.symlinks is False) ): src.run(self, self.symlinks) finally: if true_system_site != self.enable_system_site_package: self.enable_system_site_package = true_system_site super(ViaGlobalRefVirtualenvBuiltin, self).create() def ensure_directories(self): return {self.dest, self.bin_dir, self.script_dir, self.stdlib} | set(self.libs) def set_pyenv_cfg(self): """ We directly inject the base prefix and base exec prefix to avoid site.py needing to discover these from home (which usually is done within the interpreter itself) """ super(ViaGlobalRefVirtualenvBuiltin, self).set_pyenv_cfg() self.pyenv_cfg["base-prefix"] = self.interpreter.system_prefix self.pyenv_cfg["base-exec-prefix"] = self.interpreter.system_exec_prefix self.pyenv_cfg["base-executable"] = self.interpreter.system_executable PKx"T4T99<virtualenv/create/via_global_ref/builtin/cpython/__init__.pyfrom __future__ import absolute_import, unicode_literals PKx"TYO%%X X :virtualenv/create/via_global_ref/builtin/cpython/common.pyfrom __future__ import absolute_import, unicode_literals from abc import ABCMeta from collections import OrderedDict from six import add_metaclass from virtualenv.create.describe import PosixSupports, WindowsSupports from virtualenv.create.via_global_ref.builtin.ref import RefMust, RefWhen from virtualenv.util.path import Path from ..via_global_self_do import ViaGlobalRefVirtualenvBuiltin @add_metaclass(ABCMeta) class CPython(ViaGlobalRefVirtualenvBuiltin): @classmethod def can_describe(cls, interpreter): return interpreter.implementation == "CPython" and super(CPython, cls).can_describe(interpreter) @classmethod def exe_stem(cls): return "python" @add_metaclass(ABCMeta) class CPythonPosix(CPython, PosixSupports): """Create a CPython virtual environment on POSIX platforms""" @classmethod def _executables(cls, interpreter): host_exe = Path(interpreter.system_executable) major, minor = interpreter.version_info.major, interpreter.version_info.minor targets = OrderedDict( (i, None) for i in ["python", "python{}".format(major), "python{}.{}".format(major, minor), host_exe.name] ) must = RefMust.COPY if interpreter.version_info.major == 2 else RefMust.NA yield host_exe, list(targets.keys()), must, RefWhen.ANY @add_metaclass(ABCMeta) class CPythonWindows(CPython, WindowsSupports): @classmethod def _executables(cls, interpreter): # symlink of the python executables does not work reliably, copy always instead # - https://bugs.python.org/issue42013 # - venv host = cls.host_python(interpreter) for path in (host.parent / n for n in {"python.exe", host.name}): yield host, [path.name], RefMust.COPY, RefWhen.ANY # for more info on pythonw.exe see https://stackoverflow.com/a/30313091 python_w = host.parent / "pythonw.exe" yield python_w, [python_w.name], RefMust.COPY, RefWhen.ANY @classmethod def host_python(cls, interpreter): return Path(interpreter.system_executable) def is_mac_os_framework(interpreter): if interpreter.platform == "darwin": framework_var = interpreter.sysconfig_vars.get("PYTHONFRAMEWORK") value = "Python3" if interpreter.version_info.major == 3 else "Python" return framework_var == value return False PKx"T7C<virtualenv/create/via_global_ref/builtin/cpython/cpython2.pyfrom __future__ import absolute_import, unicode_literals import abc import logging from six import add_metaclass from virtualenv.create.via_global_ref.builtin.ref import PathRefToDest from virtualenv.util.path import Path from ..python2.python2 import Python2 from .common import CPython, CPythonPosix, CPythonWindows, is_mac_os_framework @add_metaclass(abc.ABCMeta) class CPython2(CPython, Python2): """Create a CPython version 2 virtual environment""" @classmethod def sources(cls, interpreter): for src in super(CPython2, cls).sources(interpreter): yield src # include folder needed on Python 2 as we don't have pyenv.cfg host_include_marker = cls.host_include_marker(interpreter) if host_include_marker.exists(): yield PathRefToDest(host_include_marker.parent, dest=lambda self, _: self.include) @classmethod def needs_stdlib_py_module(cls): return False @classmethod def host_include_marker(cls, interpreter): return Path(interpreter.system_include) / "Python.h" @property def include(self): # the pattern include the distribution name too at the end, remove that via the parent call return (self.dest / self.interpreter.install_path("headers")).parent @classmethod def modules(cls): return [ "os", # landmark to set sys.prefix ] def ensure_directories(self): dirs = super(CPython2, self).ensure_directories() host_include_marker = self.host_include_marker(self.interpreter) if host_include_marker.exists(): dirs.add(self.include.parent) else: logging.debug("no include folders as can't find include marker %s", host_include_marker) return dirs @add_metaclass(abc.ABCMeta) class CPython2PosixBase(CPython2, CPythonPosix): """common to macOs framework builds and other posix CPython2""" @classmethod def sources(cls, interpreter): for src in super(CPython2PosixBase, cls).sources(interpreter): yield src # check if the makefile exists and if so make it available under the virtual environment make_file = Path(interpreter.sysconfig["makefile_filename"]) if make_file.exists() and str(make_file).startswith(interpreter.prefix): under_prefix = make_file.relative_to(Path(interpreter.prefix)) yield PathRefToDest(make_file, dest=lambda self, s: self.dest / under_prefix) class CPython2Posix(CPython2PosixBase): """CPython 2 on POSIX (excluding macOs framework builds)""" @classmethod def can_describe(cls, interpreter): return is_mac_os_framework(interpreter) is False and super(CPython2Posix, cls).can_describe(interpreter) @classmethod def sources(cls, interpreter): for src in super(CPython2Posix, cls).sources(interpreter): yield src # landmark for exec_prefix exec_marker_file, to_path, _ = cls.from_stdlib(cls.mappings(interpreter), "lib-dynload") yield PathRefToDest(exec_marker_file, dest=to_path) class CPython2Windows(CPython2, CPythonWindows): """CPython 2 on Windows""" @classmethod def sources(cls, interpreter): for src in super(CPython2Windows, cls).sources(interpreter): yield src py27_dll = Path(interpreter.system_executable).parent / "python27.dll" if py27_dll.exists(): # this might be global in the Windows folder in which case it's alright to be missing yield PathRefToDest(py27_dll, dest=cls.to_bin) libs = Path(interpreter.system_prefix) / "libs" if libs.exists(): yield PathRefToDest(libs, dest=lambda self, s: self.dest / s.name) PKx"T <virtualenv/create/via_global_ref/builtin/cpython/cpython3.pyfrom __future__ import absolute_import, unicode_literals import abc from textwrap import dedent from six import add_metaclass from virtualenv.create.describe import Python3Supports from virtualenv.create.via_global_ref.builtin.ref import PathRefToDest from virtualenv.create.via_global_ref.store import is_store_python from virtualenv.util.path import Path from .common import CPython, CPythonPosix, CPythonWindows, is_mac_os_framework @add_metaclass(abc.ABCMeta) class CPython3(CPython, Python3Supports): """ """ class CPython3Posix(CPythonPosix, CPython3): @classmethod def can_describe(cls, interpreter): return is_mac_os_framework(interpreter) is False and super(CPython3Posix, cls).can_describe(interpreter) def env_patch_text(self): text = super(CPython3Posix, self).env_patch_text() if self.pyvenv_launch_patch_active(self.interpreter): text += dedent( """ # for https://github.com/python/cpython/pull/9516, see https://github.com/pypa/virtualenv/issues/1704 import os if "__PYVENV_LAUNCHER__" in os.environ: del os.environ["__PYVENV_LAUNCHER__"] """, ) return text @classmethod def pyvenv_launch_patch_active(cls, interpreter): ver = interpreter.version_info return interpreter.platform == "darwin" and ((3, 7, 8) > ver >= (3, 7) or (3, 8, 3) > ver >= (3, 8)) class CPython3Windows(CPythonWindows, CPython3): """ """ @classmethod def setup_meta(cls, interpreter): if is_store_python(interpreter): # store python is not supported here return None return super(CPython3Windows, cls).setup_meta(interpreter) @classmethod def sources(cls, interpreter): for src in super(CPython3Windows, cls).sources(interpreter): yield src if not cls.has_shim(interpreter): for src in cls.include_dll_and_pyd(interpreter): yield src @classmethod def has_shim(cls, interpreter): return interpreter.version_info.minor >= 7 and cls.shim(interpreter) is not None @classmethod def shim(cls, interpreter): shim = Path(interpreter.system_stdlib) / "venv" / "scripts" / "nt" / "python.exe" if shim.exists(): return shim return None @classmethod def host_python(cls, interpreter): if cls.has_shim(interpreter): # starting with CPython 3.7 Windows ships with a venvlauncher.exe that avoids the need for dll/pyd copies # it also means the wrapper must be copied to avoid bugs such as https://bugs.python.org/issue42013 return cls.shim(interpreter) return super(CPython3Windows, cls).host_python(interpreter) @classmethod def include_dll_and_pyd(cls, interpreter): dll_folder = Path(interpreter.system_prefix) / "DLLs" host_exe_folder = Path(interpreter.system_executable).parent for folder in [host_exe_folder, dll_folder]: for file in folder.iterdir(): if file.suffix in (".pyd", ".dll"): yield PathRefToDest(file, dest=cls.to_dll_and_pyd) def to_dll_and_pyd(self, src): return self.bin_dir / src.name PKx"T77:virtualenv/create/via_global_ref/builtin/cpython/mac_os.py# -*- coding: utf-8 -*- """The Apple Framework builds require their own customization""" import logging import os import struct import subprocess from abc import ABCMeta, abstractmethod from textwrap import dedent from six import add_metaclass from virtualenv.create.via_global_ref.builtin.ref import ExePathRefToDest, PathRefToDest, RefMust from virtualenv.info import IS_MAC_ARM64 from virtualenv.util.path import Path from virtualenv.util.six import ensure_text from .common import CPython, CPythonPosix, is_mac_os_framework from .cpython2 import CPython2PosixBase from .cpython3 import CPython3 @add_metaclass(ABCMeta) class CPythonmacOsFramework(CPython): @classmethod def can_describe(cls, interpreter): return is_mac_os_framework(interpreter) and super(CPythonmacOsFramework, cls).can_describe(interpreter) @classmethod def sources(cls, interpreter): for src in super(CPythonmacOsFramework, cls).sources(interpreter): yield src # add a symlink to the host python image exe = cls.image_ref(interpreter) ref = PathRefToDest(exe, dest=lambda self, _: self.dest / ".Python", must=RefMust.SYMLINK) yield ref def create(self): super(CPythonmacOsFramework, self).create() # change the install_name of the copied python executables target = "@executable_path/../.Python" current = self.current_mach_o_image_path() for src in self._sources: if isinstance(src, ExePathRefToDest): if src.must == RefMust.COPY or not self.symlinks: exes = [self.bin_dir / src.base] if not self.symlinks: exes.extend(self.bin_dir / a for a in src.aliases) for exe in exes: fix_mach_o(str(exe), current, target, self.interpreter.max_size) @classmethod def _executables(cls, interpreter): for _, targets, must, when in super(CPythonmacOsFramework, cls)._executables(interpreter): # Make sure we use the embedded interpreter inside the framework, even if sys.executable points to the # stub executable in ${sys.prefix}/bin. # See http://groups.google.com/group/python-virtualenv/browse_thread/thread/17cab2f85da75951 fixed_host_exe = Path(interpreter.prefix) / "Resources" / "Python.app" / "Contents" / "MacOS" / "Python" yield fixed_host_exe, targets, must, when @abstractmethod def current_mach_o_image_path(self): raise NotImplementedError @classmethod def image_ref(cls, interpreter): raise NotImplementedError class CPython2macOsFramework(CPythonmacOsFramework, CPython2PosixBase): @classmethod def can_create(cls, interpreter): if not IS_MAC_ARM64 and super(CPython2macOsFramework, cls).can_describe(interpreter): return super(CPython2macOsFramework, cls).can_create(interpreter) return False @classmethod def image_ref(cls, interpreter): return Path(interpreter.prefix) / "Python" def current_mach_o_image_path(self): return os.path.join(self.interpreter.prefix, "Python") @classmethod def sources(cls, interpreter): for src in super(CPython2macOsFramework, cls).sources(interpreter): yield src # landmark for exec_prefix exec_marker_file, to_path, _ = cls.from_stdlib(cls.mappings(interpreter), "lib-dynload") yield PathRefToDest(exec_marker_file, dest=to_path) @property def reload_code(self): result = super(CPython2macOsFramework, self).reload_code result = dedent( """ # the bundled site.py always adds the global site package if we're on python framework build, escape this import sysconfig config = sysconfig.get_config_vars() before = config["PYTHONFRAMEWORK"] try: config["PYTHONFRAMEWORK"] = "" {} finally: config["PYTHONFRAMEWORK"] = before """.format( result, ), ) return result class CPython2macOsArmFramework(CPython2macOsFramework, CPythonmacOsFramework, CPython2PosixBase): @classmethod def can_create(cls, interpreter): if IS_MAC_ARM64 and super(CPythonmacOsFramework, cls).can_describe(interpreter): return super(CPythonmacOsFramework, cls).can_create(interpreter) return False def create(self): super(CPython2macOsFramework, self).create() self.fix_signature() def fix_signature(self): """ On Apple M1 machines (arm64 chips), rewriting the python executable invalidates its signature. In python2 this results in a unusable python exe which just dies. As a temporary workaround we can codesign the python exe during the creation process. """ exe = self.exe try: logging.debug("Changing signature of copied python exe %s", exe) bak_dir = exe.parent / "bk" # Reset the signing on Darwin since the exe has been modified. # Note codesign fails on the original exe, it needs to be copied and moved back. bak_dir.mkdir(parents=True, exist_ok=True) subprocess.check_call(["cp", exe, bak_dir]) subprocess.check_call(["mv", bak_dir / exe.name, exe]) bak_dir.rmdir() cmd = ["codesign", "-s", "-", "--preserve-metadata=identifier,entitlements,flags,runtime", "-f", exe] logging.debug("Changing Signature: %s", cmd) subprocess.check_call(cmd) except Exception: logging.fatal("Could not change MacOS code signing on copied python exe at %s", exe) raise class CPython3macOsFramework(CPythonmacOsFramework, CPython3, CPythonPosix): @classmethod def image_ref(cls, interpreter): return Path(interpreter.prefix) / "Python3" def current_mach_o_image_path(self): return "@executable_path/../../../../Python3" @property def reload_code(self): result = super(CPython3macOsFramework, self).reload_code result = dedent( """ # the bundled site.py always adds the global site package if we're on python framework build, escape this import sys before = sys._framework try: sys._framework = None {} finally: sys._framework = before """.format( result, ), ) return result def fix_mach_o(exe, current, new, max_size): """ https://en.wikipedia.org/wiki/Mach-O Mach-O, short for Mach object file format, is a file format for executables, object code, shared libraries, dynamically-loaded code, and core dumps. A replacement for the a.out format, Mach-O offers more extensibility and faster access to information in the symbol table. Each Mach-O file is made up of one Mach-O header, followed by a series of load commands, followed by one or more segments, each of which contains between 0 and 255 sections. Mach-O uses the REL relocation format to handle references to symbols. When looking up symbols Mach-O uses a two-level namespace that encodes each symbol into an 'object/symbol name' pair that is then linearly searched for by first the object and then the symbol name. The basic structure—a list of variable-length "load commands" that reference pages of data elsewhere in the file—was also used in the executable file format for Accent. The Accent file format was in turn, based on an idea from Spice Lisp. With the introduction of Mac OS X 10.6 platform the Mach-O file underwent a significant modification that causes binaries compiled on a computer running 10.6 or later to be (by default) executable only on computers running Mac OS X 10.6 or later. The difference stems from load commands that the dynamic linker, in previous Mac OS X versions, does not understand. Another significant change to the Mach-O format is the change in how the Link Edit tables (found in the __LINKEDIT section) function. In 10.6 these new Link Edit tables are compressed by removing unused and unneeded bits of information, however Mac OS X 10.5 and earlier cannot read this new Link Edit table format. """ try: logging.debug(u"change Mach-O for %s from %s to %s", ensure_text(exe), current, ensure_text(new)) _builtin_change_mach_o(max_size)(exe, current, new) except Exception as e: logging.warning("Could not call _builtin_change_mac_o: %s. " "Trying to call install_name_tool instead.", e) try: cmd = ["install_name_tool", "-change", current, new, exe] subprocess.check_call(cmd) except Exception: logging.fatal("Could not call install_name_tool -- you must " "have Apple's development tools installed") raise def _builtin_change_mach_o(maxint): MH_MAGIC = 0xFEEDFACE MH_CIGAM = 0xCEFAEDFE MH_MAGIC_64 = 0xFEEDFACF MH_CIGAM_64 = 0xCFFAEDFE FAT_MAGIC = 0xCAFEBABE BIG_ENDIAN = ">" LITTLE_ENDIAN = "<" LC_LOAD_DYLIB = 0xC class FileView(object): """A proxy for file-like objects that exposes a given view of a file. Modified from macholib.""" def __init__(self, file_obj, start=0, size=maxint): if isinstance(file_obj, FileView): self._file_obj = file_obj._file_obj else: self._file_obj = file_obj self._start = start self._end = start + size self._pos = 0 def __repr__(self): return "".format(self._start, self._end, self._file_obj) def tell(self): return self._pos def _checkwindow(self, seek_to, op): if not (self._start <= seek_to <= self._end): msg = "{} to offset {:d} is outside window [{:d}, {:d}]".format(op, seek_to, self._start, self._end) raise IOError(msg) def seek(self, offset, whence=0): seek_to = offset if whence == os.SEEK_SET: seek_to += self._start elif whence == os.SEEK_CUR: seek_to += self._start + self._pos elif whence == os.SEEK_END: seek_to += self._end else: raise IOError("Invalid whence argument to seek: {!r}".format(whence)) self._checkwindow(seek_to, "seek") self._file_obj.seek(seek_to) self._pos = seek_to - self._start def write(self, content): here = self._start + self._pos self._checkwindow(here, "write") self._checkwindow(here + len(content), "write") self._file_obj.seek(here, os.SEEK_SET) self._file_obj.write(content) self._pos += len(content) def read(self, size=maxint): assert size >= 0 here = self._start + self._pos self._checkwindow(here, "read") size = min(size, self._end - here) self._file_obj.seek(here, os.SEEK_SET) read_bytes = self._file_obj.read(size) self._pos += len(read_bytes) return read_bytes def read_data(file, endian, num=1): """Read a given number of 32-bits unsigned integers from the given file with the given endianness.""" res = struct.unpack(endian + "L" * num, file.read(num * 4)) if len(res) == 1: return res[0] return res def mach_o_change(at_path, what, value): """Replace a given name (what) in any LC_LOAD_DYLIB command found in the given binary with a new name (value), provided it's shorter.""" def do_macho(file, bits, endian): # Read Mach-O header (the magic number is assumed read by the caller) cpu_type, cpu_sub_type, file_type, n_commands, size_of_commands, flags = read_data(file, endian, 6) # 64-bits header has one more field. if bits == 64: read_data(file, endian) # The header is followed by n commands for _ in range(n_commands): where = file.tell() # Read command header cmd, cmd_size = read_data(file, endian, 2) if cmd == LC_LOAD_DYLIB: # The first data field in LC_LOAD_DYLIB commands is the offset of the name, starting from the # beginning of the command. name_offset = read_data(file, endian) file.seek(where + name_offset, os.SEEK_SET) # Read the NUL terminated string load = file.read(cmd_size - name_offset).decode() load = load[: load.index("\0")] # If the string is what is being replaced, overwrite it. if load == what: file.seek(where + name_offset, os.SEEK_SET) file.write(value.encode() + b"\0") # Seek to the next command file.seek(where + cmd_size, os.SEEK_SET) def do_file(file, offset=0, size=maxint): file = FileView(file, offset, size) # Read magic number magic = read_data(file, BIG_ENDIAN) if magic == FAT_MAGIC: # Fat binaries contain nfat_arch Mach-O binaries n_fat_arch = read_data(file, BIG_ENDIAN) for _ in range(n_fat_arch): # Read arch header cpu_type, cpu_sub_type, offset, size, align = read_data(file, BIG_ENDIAN, 5) do_file(file, offset, size) elif magic == MH_MAGIC: do_macho(file, 32, BIG_ENDIAN) elif magic == MH_CIGAM: do_macho(file, 32, LITTLE_ENDIAN) elif magic == MH_MAGIC_64: do_macho(file, 64, BIG_ENDIAN) elif magic == MH_CIGAM_64: do_macho(file, 64, LITTLE_ENDIAN) assert len(what) >= len(value) with open(at_path, "r+b") as f: do_file(f) return mach_o_change PKx"T9virtualenv/create/via_global_ref/builtin/pypy/__init__.pyPKx"T(6e7virtualenv/create/via_global_ref/builtin/pypy/common.pyfrom __future__ import absolute_import, unicode_literals import abc from six import add_metaclass from virtualenv.create.via_global_ref.builtin.ref import PathRefToDest, RefMust, RefWhen from virtualenv.util.path import Path from ..via_global_self_do import ViaGlobalRefVirtualenvBuiltin @add_metaclass(abc.ABCMeta) class PyPy(ViaGlobalRefVirtualenvBuiltin): @classmethod def can_describe(cls, interpreter): return interpreter.implementation == "PyPy" and super(PyPy, cls).can_describe(interpreter) @classmethod def _executables(cls, interpreter): host = Path(interpreter.system_executable) targets = sorted("{}{}".format(name, PyPy.suffix) for name in cls.exe_names(interpreter)) must = RefMust.COPY if interpreter.version_info.major == 2 else RefMust.NA yield host, targets, must, RefWhen.ANY @classmethod def exe_names(cls, interpreter): return { cls.exe_stem(), "python", "python{}".format(interpreter.version_info.major), "python{}.{}".format(*interpreter.version_info), } @classmethod def sources(cls, interpreter): for src in super(PyPy, cls).sources(interpreter): yield src for host in cls._add_shared_libs(interpreter): yield PathRefToDest(host, dest=lambda self, s: self.bin_dir / s.name) @classmethod def _add_shared_libs(cls, interpreter): # https://bitbucket.org/pypy/pypy/issue/1922/future-proofing-virtualenv python_dir = Path(interpreter.system_executable).resolve().parent for src in cls._shared_libs(python_dir): yield src @classmethod def _shared_libs(cls, python_dir): raise NotImplementedError PKx"T&6virtualenv/create/via_global_ref/builtin/pypy/pypy2.pyfrom __future__ import absolute_import, unicode_literals import abc import logging import os from six import add_metaclass from virtualenv.create.describe import PosixSupports, WindowsSupports from virtualenv.create.via_global_ref.builtin.ref import PathRefToDest from virtualenv.util.path import Path from ..python2.python2 import Python2 from .common import PyPy @add_metaclass(abc.ABCMeta) class PyPy2(PyPy, Python2): """ """ @classmethod def exe_stem(cls): return "pypy" @classmethod def sources(cls, interpreter): for src in super(PyPy2, cls).sources(interpreter): yield src # include folder needed on Python 2 as we don't have pyenv.cfg host_include_marker = cls.host_include_marker(interpreter) if host_include_marker.exists(): yield PathRefToDest(host_include_marker.parent, dest=lambda self, _: self.include) @classmethod def needs_stdlib_py_module(cls): return True @classmethod def host_include_marker(cls, interpreter): return Path(interpreter.system_include) / "PyPy.h" @property def include(self): return self.dest / self.interpreter.install_path("headers") @classmethod def modules(cls): # pypy2 uses some modules before the site.py loads, so we need to include these too return super(PyPy2, cls).modules() + [ "os", "copy_reg", "genericpath", "linecache", "stat", "UserDict", "warnings", ] @property def lib_pypy(self): return self.dest / "lib_pypy" def ensure_directories(self): dirs = super(PyPy2, self).ensure_directories() dirs.add(self.lib_pypy) host_include_marker = self.host_include_marker(self.interpreter) if host_include_marker.exists(): dirs.add(self.include.parent) else: logging.debug("no include folders as can't find include marker %s", host_include_marker) return dirs @property def skip_rewrite(self): """ PyPy2 built-in imports are handled by this path entry, don't overwrite to not disable it see: https://github.com/pypa/virtualenv/issues/1652 """ return 'or path.endswith("lib_pypy{}__extensions__") # PyPy2 built-in import marker'.format(os.sep) class PyPy2Posix(PyPy2, PosixSupports): """PyPy 2 on POSIX""" @classmethod def modules(cls): return super(PyPy2Posix, cls).modules() + ["posixpath"] @classmethod def _shared_libs(cls, python_dir): return python_dir.glob("libpypy*.*") @property def lib(self): return self.dest / "lib" @classmethod def sources(cls, interpreter): for src in super(PyPy2Posix, cls).sources(interpreter): yield src host_lib = Path(interpreter.system_prefix) / "lib" if host_lib.exists(): yield PathRefToDest(host_lib, dest=lambda self, _: self.lib) class Pypy2Windows(PyPy2, WindowsSupports): """PyPy 2 on Windows""" @classmethod def modules(cls): return super(Pypy2Windows, cls).modules() + ["ntpath"] @classmethod def _shared_libs(cls, python_dir): # No glob in python2 PathLib for candidate in ["libpypy-c.dll", "libffi-7.dll", "libffi-8.dll"]: dll = python_dir / candidate if dll.exists(): yield dll @classmethod def sources(cls, interpreter): for src in super(Pypy2Windows, cls).sources(interpreter): yield src yield PathRefToDest(Path(interpreter.system_prefix) / "libs", dest=lambda self, s: self.dest / s.name) PKx"T4 6virtualenv/create/via_global_ref/builtin/pypy/pypy3.pyfrom __future__ import absolute_import, unicode_literals import abc from six import add_metaclass from virtualenv.create.describe import PosixSupports, Python3Supports, WindowsSupports from virtualenv.create.via_global_ref.builtin.ref import PathRefToDest from virtualenv.util.path import Path from .common import PyPy @add_metaclass(abc.ABCMeta) class PyPy3(PyPy, Python3Supports): @classmethod def exe_stem(cls): return "pypy3" @classmethod def exe_names(cls, interpreter): return super(PyPy3, cls).exe_names(interpreter) | {"pypy"} class PyPy3Posix(PyPy3, PosixSupports): """PyPy 3 on POSIX""" @property def stdlib(self): """PyPy3 respects sysconfig only for the host python, virtual envs is instead lib/pythonx.y/site-packages""" return self.dest / "lib" / "pypy{}".format(self.interpreter.version_release_str) / "site-packages" @classmethod def _shared_libs(cls, python_dir): # glob for libpypy3-c.so, libpypy3-c.dylib, libpypy3.9-c.so ... return python_dir.glob("libpypy3*.*") def to_lib(self, src): return self.dest / "lib" / src.name @classmethod def sources(cls, interpreter): for src in super(PyPy3Posix, cls).sources(interpreter): yield src # Also copy/symlink anything under prefix/lib, which, for "portable" # PyPy builds, includes the tk,tcl runtime and a number of shared # objects. In distro-specific builds or on conda this should be empty # (on PyPy3.8+ it will, like on CPython, hold the stdlib). host_lib = Path(interpreter.system_prefix) / "lib" stdlib = Path(interpreter.system_stdlib) if host_lib.exists() and host_lib.is_dir(): for path in host_lib.iterdir(): if stdlib == path: # For PyPy3.8+ the stdlib lives in lib/pypy3.8 # We need to avoid creating a symlink to it since that # will defeat the purpose of a virtualenv continue yield PathRefToDest(path, dest=cls.to_lib) class Pypy3Windows(PyPy3, WindowsSupports): """PyPy 3 on Windows""" @property def stdlib(self): """PyPy3 respects sysconfig only for the host python, virtual envs is instead Lib/site-packages""" return self.dest / "Lib" / "site-packages" @property def bin_dir(self): """PyPy3 needs to fallback to pypy definition""" return self.dest / "Scripts" @classmethod def _shared_libs(cls, python_dir): # glob for libpypy*.dll and libffi*.dll for pattern in ["libpypy*.dll", "libffi*.dll"]: srcs = python_dir.glob(pattern) for src in srcs: yield src PKx"T<virtualenv/create/via_global_ref/builtin/python2/__init__.pyPKx"T$,;virtualenv/create/via_global_ref/builtin/python2/python2.pyfrom __future__ import absolute_import, unicode_literals import abc import json import os from six import add_metaclass from virtualenv.create.describe import Python2Supports from virtualenv.create.via_global_ref.builtin.ref import PathRefToDest from virtualenv.info import IS_ZIPAPP from virtualenv.util.path import Path from virtualenv.util.six import ensure_text from virtualenv.util.zipapp import read as read_from_zipapp from ..via_global_self_do import ViaGlobalRefVirtualenvBuiltin HERE = Path(os.path.abspath(__file__)).parent @add_metaclass(abc.ABCMeta) class Python2(ViaGlobalRefVirtualenvBuiltin, Python2Supports): def create(self): """Perform operations needed to make the created environment work on Python 2""" super(Python2, self).create() # install a patched site-package, the default Python 2 site.py is not smart enough to understand pyvenv.cfg, # so we inject a small shim that can do this, the location of this depends where it's on host sys_std_plat = Path(self.interpreter.system_stdlib_platform) site_py_in = ( self.stdlib_platform if ((sys_std_plat / "site.py").exists() or (sys_std_plat / "site.pyc").exists()) else self.stdlib ) site_py = site_py_in / "site.py" custom_site = get_custom_site() if IS_ZIPAPP: custom_site_text = read_from_zipapp(custom_site) else: custom_site_text = custom_site.read_text() expected = json.dumps([os.path.relpath(ensure_text(str(i)), ensure_text(str(site_py))) for i in self.libs]) custom_site_text = custom_site_text.replace("___EXPECTED_SITE_PACKAGES___", expected) reload_code = os.linesep.join(" {}".format(i) for i in self.reload_code.splitlines()).lstrip() custom_site_text = custom_site_text.replace("# ___RELOAD_CODE___", reload_code) skip_rewrite = os.linesep.join(" {}".format(i) for i in self.skip_rewrite.splitlines()).lstrip() custom_site_text = custom_site_text.replace("# ___SKIP_REWRITE____", skip_rewrite) site_py.write_text(custom_site_text) @property def reload_code(self): return 'reload(sys.modules["site"]) # noqa # call system site.py to setup import libraries' @property def skip_rewrite(self): return "" @classmethod def sources(cls, interpreter): for src in super(Python2, cls).sources(interpreter): yield src # install files needed to run site.py, either from stdlib or stdlib_platform, at least pyc, but both if exists # if neither exists return the module file to trigger failure mappings, needs_py_module = ( cls.mappings(interpreter), cls.needs_stdlib_py_module(), ) for req in cls.modules(): module_file, to_module, module_exists = cls.from_stdlib(mappings, "{}.py".format(req)) compiled_file, to_compiled, compiled_exists = cls.from_stdlib(mappings, "{}.pyc".format(req)) if needs_py_module or module_exists or not compiled_exists: yield PathRefToDest(module_file, dest=to_module) if compiled_exists: yield PathRefToDest(compiled_file, dest=to_compiled) @staticmethod def from_stdlib(mappings, name): for from_std, to_std in mappings: src = from_std / name if src.exists(): return src, to_std, True # if not exists, fallback to first in list return mappings[0][0] / name, mappings[0][1], False @classmethod def mappings(cls, interpreter): mappings = [(Path(interpreter.system_stdlib_platform), cls.to_stdlib_platform)] if interpreter.system_stdlib_platform != interpreter.system_stdlib: mappings.append((Path(interpreter.system_stdlib), cls.to_stdlib)) return mappings def to_stdlib(self, src): return self.stdlib / src.name def to_stdlib_platform(self, src): return self.stdlib_platform / src.name @classmethod def needs_stdlib_py_module(cls): raise NotImplementedError @classmethod def modules(cls): return [] def get_custom_site(): return HERE / "site.py" PKx"TV8virtualenv/create/via_global_ref/builtin/python2/site.py# -*- coding: utf-8 -*- """ A simple shim module to fix up things on Python 2 only. Note: until we setup correctly the paths we can only import built-ins. """ import sys def main(): """Patch what needed, and invoke the original site.py""" here = __file__ # the distutils.install patterns will be injected relative to this site.py, save it here config = read_pyvenv() sys.real_prefix = sys.base_prefix = config["base-prefix"] sys.base_exec_prefix = config["base-exec-prefix"] sys.base_executable = config["base-executable"] global_site_package_enabled = config.get("include-system-site-packages", False) == "true" rewrite_standard_library_sys_path() disable_user_site_package() load_host_site(here) if global_site_package_enabled: add_global_site_package() rewrite_getsitepackages(here) def load_host_site(here): """trigger reload of site.py - now it will use the standard library instance that will take care of init""" # we have a duality here, we generate the platform and pure library path based on what distutils.install specifies # because this is what pip will be using; the host site.py though may contain it's own pattern for where the # platform and pure library paths should exist # notably on Ubuntu there's a patch for getsitepackages to point to # - prefix + local/lib/pythonx.y/dist-packages # - prefix + lib/pythonx.y/dist-packages # while distutils.install.cmd still points both of these to # - prefix + lib/python2.7/site-packages # to facilitate when the two match, or not we first reload the site.py, now triggering the import of host site.py, # as this will ensure that initialization code within host site.py runs # ___RELOAD_CODE___ # and then if the distutils site packages are not on the sys.path we add them via add_site_dir; note we must add # them by invoking add_site_dir to trigger the processing of pth files add_site_dir = sys.modules["site"].addsitedir for path in get_site_packages_dirs(here): add_site_dir(path) def get_site_packages_dirs(here): import json import os site_packages = r""" ___EXPECTED_SITE_PACKAGES___ """ for path in json.loads(site_packages): yield os.path.abspath(os.path.join(here, path.encode("utf-8"))) sep = "\\" if sys.platform == "win32" else "/" # no os module here yet - poor mans version def read_pyvenv(): """read pyvenv.cfg""" config_file = "{}{}pyvenv.cfg".format(sys.prefix, sep) with open(config_file) as file_handler: lines = file_handler.readlines() config = {} for line in lines: try: split_at = line.index("=") except ValueError: continue # ignore bad/empty lines else: config[line[:split_at].strip()] = line[split_at + 1 :].strip() return config def rewrite_standard_library_sys_path(): """Once this site file is loaded the standard library paths have already been set, fix them up""" exe, prefix, exec_prefix = get_exe_prefixes(base=False) base_exe, base_prefix, base_exec = get_exe_prefixes(base=True) exe_dir = exe[: exe.rfind(sep)] for at, path in enumerate(sys.path): path = abs_path(path) # replace old sys prefix path starts with new skip_rewrite = path == exe_dir # don't fix the current executable location, notably on Windows this gets added skip_rewrite = skip_rewrite # ___SKIP_REWRITE____ if not skip_rewrite: sys.path[at] = map_path(path, base_exe, exe_dir, exec_prefix, base_prefix, prefix, base_exec) # the rewrite above may have changed elements from PYTHONPATH, revert these if on if sys.flags.ignore_environment: return import os python_paths = [] if "PYTHONPATH" in os.environ and os.environ["PYTHONPATH"]: for path in os.environ["PYTHONPATH"].split(os.pathsep): if path not in python_paths: python_paths.append(path) sys.path[: len(python_paths)] = python_paths def get_exe_prefixes(base=False): return tuple(abs_path(getattr(sys, ("base_" if base else "") + i)) for i in ("executable", "prefix", "exec_prefix")) def abs_path(value): values, keep = value.split(sep), [] at = len(values) - 1 while at >= 0: if values[at] == "..": at -= 1 else: keep.append(values[at]) at -= 1 return sep.join(keep[::-1]) def map_path(path, base_executable, exe_dir, exec_prefix, base_prefix, prefix, base_exec_prefix): if path_starts_with(path, exe_dir): # content inside the exe folder needs to remap to original executables folder orig_exe_folder = base_executable[: base_executable.rfind(sep)] return "{}{}".format(orig_exe_folder, path[len(exe_dir) :]) elif path_starts_with(path, prefix): return "{}{}".format(base_prefix, path[len(prefix) :]) elif path_starts_with(path, exec_prefix): return "{}{}".format(base_exec_prefix, path[len(exec_prefix) :]) return path def path_starts_with(directory, value): return directory.startswith(value if value[-1] == sep else value + sep) def disable_user_site_package(): """Flip the switch on enable user site package""" # sys.flags is a c-extension type, so we cannot monkeypatch it, replace it with a python class to flip it sys.original_flags = sys.flags class Flags(object): def __init__(self): self.__dict__ = {key: getattr(sys.flags, key) for key in dir(sys.flags) if not key.startswith("_")} sys.flags = Flags() sys.flags.no_user_site = 1 def add_global_site_package(): """add the global site package""" import site # add user site package sys.flags = sys.original_flags # restore original site.ENABLE_USER_SITE = None # reset user site check # add the global site package to the path - use new prefix and delegate to site.py orig_prefixes = None try: orig_prefixes = site.PREFIXES site.PREFIXES = [sys.base_prefix, sys.base_exec_prefix] site.main() finally: site.PREFIXES = orig_prefixes + site.PREFIXES # Debian and it's derivatives patch this function. We undo the damage def rewrite_getsitepackages(here): site = sys.modules["site"] site_package_dirs = get_site_packages_dirs(here) orig_getsitepackages = site.getsitepackages def getsitepackages(): sitepackages = orig_getsitepackages() if sys.prefix not in site.PREFIXES or sys.exec_prefix not in site.PREFIXES: # Someone messed with the prefixes, so we stop patching return sitepackages for path in site_package_dirs: if path not in sitepackages: sitepackages.insert(0, path) return sitepackages site.getsitepackages = getsitepackages main() PKx"T4T99 virtualenv/discovery/__init__.pyfrom __future__ import absolute_import, unicode_literals PKx"TR3virtualenv/discovery/builtin.pyfrom __future__ import absolute_import, unicode_literals import logging import os import sys from virtualenv.info import IS_WIN from virtualenv.util.six import ensure_str, ensure_text from .discover import Discover from .py_info import PythonInfo from .py_spec import PythonSpec class Builtin(Discover): def __init__(self, options): super(Builtin, self).__init__(options) self.python_spec = options.python if options.python else [sys.executable] self.app_data = options.app_data self.try_first_with = options.try_first_with @classmethod def add_parser_arguments(cls, parser): parser.add_argument( "-p", "--python", dest="python", metavar="py", type=str, action="append", default=[], help="interpreter based on what to create environment (path/identifier) " "- by default use the interpreter where the tool is installed - first found wins", ) parser.add_argument( "--try-first-with", dest="try_first_with", metavar="py_exe", type=str, action="append", default=[], help="try first these interpreters before starting the discovery", ) def run(self): for python_spec in self.python_spec: result = get_interpreter(python_spec, self.try_first_with, self.app_data, self._env) if result is not None: return result return None def __repr__(self): return ensure_str(self.__unicode__()) def __unicode__(self): spec = self.python_spec[0] if len(self.python_spec) == 1 else self.python_spec return "{} discover of python_spec={!r}".format(self.__class__.__name__, spec) def get_interpreter(key, try_first_with, app_data=None, env=None): spec = PythonSpec.from_string_spec(key) logging.info("find interpreter for spec %r", spec) proposed_paths = set() env = os.environ if env is None else env for interpreter, impl_must_match in propose_interpreters(spec, try_first_with, app_data, env): key = interpreter.system_executable, impl_must_match if key in proposed_paths: continue logging.info("proposed %s", interpreter) if interpreter.satisfies(spec, impl_must_match): logging.debug("accepted %s", interpreter) return interpreter proposed_paths.add(key) def propose_interpreters(spec, try_first_with, app_data, env=None): # 0. try with first env = os.environ if env is None else env for py_exe in try_first_with: path = os.path.abspath(py_exe) try: os.lstat(path) # Windows Store Python does not work with os.path.exists, but does for os.lstat except OSError: pass else: yield PythonInfo.from_exe(os.path.abspath(path), app_data, env=env), True # 1. if it's a path and exists if spec.path is not None: try: os.lstat(spec.path) # Windows Store Python does not work with os.path.exists, but does for os.lstat except OSError: if spec.is_abs: raise else: yield PythonInfo.from_exe(os.path.abspath(spec.path), app_data, env=env), True if spec.is_abs: return else: # 2. otherwise try with the current yield PythonInfo.current_system(app_data), True # 3. otherwise fallback to platform default logic if IS_WIN: from .windows import propose_interpreters for interpreter in propose_interpreters(spec, app_data, env): yield interpreter, True # finally just find on path, the path order matters (as the candidates are less easy to control by end user) paths = get_paths(env) tested_exes = set() for pos, path in enumerate(paths): path = ensure_text(path) logging.debug(LazyPathDump(pos, path, env)) for candidate, match in possible_specs(spec): found = check_path(candidate, path) if found is not None: exe = os.path.abspath(found) if exe not in tested_exes: tested_exes.add(exe) interpreter = PathPythonInfo.from_exe(exe, app_data, raise_on_error=False, env=env) if interpreter is not None: yield interpreter, match def get_paths(env): path = env.get(str("PATH"), None) if path is None: try: path = os.confstr("CS_PATH") except (AttributeError, ValueError): path = os.defpath if not path: paths = [] else: paths = [p for p in path.split(os.pathsep) if os.path.exists(p)] return paths class LazyPathDump(object): def __init__(self, pos, path, env): self.pos = pos self.path = path self.env = env def __repr__(self): return ensure_str(self.__unicode__()) def __unicode__(self): content = "discover PATH[{}]={}".format(self.pos, self.path) if self.env.get(str("_VIRTUALENV_DEBUG")): # this is the over the board debug content += " with =>" for file_name in os.listdir(self.path): try: file_path = os.path.join(self.path, file_name) if os.path.isdir(file_path) or not os.access(file_path, os.X_OK): continue except OSError: pass content += " " content += file_name return content def check_path(candidate, path): _, ext = os.path.splitext(candidate) if sys.platform == "win32" and ext != ".exe": candidate = candidate + ".exe" if os.path.isfile(candidate): return candidate candidate = os.path.join(path, candidate) if os.path.isfile(candidate): return candidate return None def possible_specs(spec): # 4. then maybe it's something exact on PATH - if it was direct lookup implementation no longer counts yield spec.str_spec, False # 5. or from the spec we can deduce a name on path that matches for exe, match in spec.generate_names(): yield exe, match class PathPythonInfo(PythonInfo): """ """ PKx"TaM&virtualenv/discovery/cached_py_info.py""" We acquire the python information by running an interrogation script via subprocess trigger. This operation is not cheap, especially not on Windows. To not have to pay this hefty cost every time we apply multiple levels of caching. """ from __future__ import absolute_import, unicode_literals import logging import os import pipes import sys from collections import OrderedDict from virtualenv.app_data import AppDataDisabled from virtualenv.discovery.py_info import PythonInfo from virtualenv.info import PY2 from virtualenv.util.path import Path from virtualenv.util.six import ensure_text from virtualenv.util.subprocess import Popen, subprocess _CACHE = OrderedDict() _CACHE[Path(sys.executable)] = PythonInfo() def from_exe(cls, app_data, exe, env=None, raise_on_error=True, ignore_cache=False): env = os.environ if env is None else env result = _get_from_cache(cls, app_data, exe, env, ignore_cache=ignore_cache) if isinstance(result, Exception): if raise_on_error: raise result else: logging.info("%s", str(result)) result = None return result def _get_from_cache(cls, app_data, exe, env, ignore_cache=True): # note here we cannot resolve symlinks, as the symlink may trigger different prefix information if there's a # pyenv.cfg somewhere alongside on python3.5+ exe_path = Path(exe) if not ignore_cache and exe_path in _CACHE: # check in the in-memory cache result = _CACHE[exe_path] else: # otherwise go through the app data cache py_info = _get_via_file_cache(cls, app_data, exe_path, exe, env) result = _CACHE[exe_path] = py_info # independent if it was from the file or in-memory cache fix the original executable location if isinstance(result, PythonInfo): result.executable = exe return result def _get_via_file_cache(cls, app_data, path, exe, env): path_text = ensure_text(str(path)) try: path_modified = path.stat().st_mtime except OSError: path_modified = -1 if app_data is None: app_data = AppDataDisabled() py_info, py_info_store = None, app_data.py_info(path) with py_info_store.locked(): if py_info_store.exists(): # if exists and matches load data = py_info_store.read() of_path, of_st_mtime, of_content = data["path"], data["st_mtime"], data["content"] if of_path == path_text and of_st_mtime == path_modified: py_info = cls._from_dict({k: v for k, v in of_content.items()}) sys_exe = py_info.system_executable if sys_exe is not None and not os.path.exists(sys_exe): py_info_store.remove() py_info = None else: py_info_store.remove() if py_info is None: # if not loaded run and save failure, py_info = _run_subprocess(cls, exe, app_data, env) if failure is None: data = {"st_mtime": path_modified, "path": path_text, "content": py_info._to_dict()} py_info_store.write(data) else: py_info = failure return py_info def _run_subprocess(cls, exe, app_data, env): py_info_script = Path(os.path.abspath(__file__)).parent / "py_info.py" with app_data.ensure_extracted(py_info_script) as py_info_script: cmd = [exe, str(py_info_script)] # prevent sys.prefix from leaking into the child process - see https://bugs.python.org/issue22490 env = env.copy() env.pop("__PYVENV_LAUNCHER__", None) logging.debug("get interpreter info via cmd: %s", LogCmd(cmd)) try: process = Popen( cmd, universal_newlines=True, stdin=subprocess.PIPE, stderr=subprocess.PIPE, stdout=subprocess.PIPE, env=env, ) out, err = process.communicate() code = process.returncode except OSError as os_error: out, err, code = "", os_error.strerror, os_error.errno result, failure = None, None if code == 0: result = cls._from_json(out) result.executable = exe # keep original executable as this may contain initialization code else: msg = "failed to query {} with code {}{}{}".format( exe, code, " out: {!r}".format(out) if out else "", " err: {!r}".format(err) if err else "", ) failure = RuntimeError(msg) return failure, result class LogCmd(object): def __init__(self, cmd, env=None): self.cmd = cmd self.env = env def __repr__(self): def e(v): return v.decode("utf-8") if isinstance(v, bytes) else v cmd_repr = e(" ").join(pipes.quote(e(c)) for c in self.cmd) if self.env is not None: cmd_repr += e(" env of {!r}").format(self.env) if PY2: return cmd_repr.encode("utf-8") return cmd_repr def __unicode__(self): raw = repr(self) if PY2: return raw.decode("utf-8") return raw def clear(app_data): app_data.py_info_clear() _CACHE.clear() ___all___ = ( "from_exe", "clear", "LogCmd", ) PKx"TT virtualenv/discovery/discover.pyfrom __future__ import absolute_import, unicode_literals from abc import ABCMeta, abstractmethod from six import add_metaclass @add_metaclass(ABCMeta) class Discover(object): """Discover and provide the requested Python interpreter""" @classmethod def add_parser_arguments(cls, parser): """Add CLI arguments for this discovery mechanisms. :param parser: the CLI parser """ raise NotImplementedError # noinspection PyUnusedLocal def __init__(self, options): """Create a new discovery mechanism. :param options: the parsed options as defined within :meth:`add_parser_arguments` """ self._has_run = False self._interpreter = None self._env = options.env @abstractmethod def run(self): """Discovers an interpreter. :return: the interpreter ready to use for virtual environment creation """ raise NotImplementedError @property def interpreter(self): """ :return: the interpreter as returned by :meth:`run`, cached """ if self._has_run is False: self._interpreter = self.run() self._has_run = True return self._interpreter PKx"ToV[V[virtualenv/discovery/py_info.py""" The PythonInfo contains information about a concrete instance of a Python interpreter Note: this file is also used to query target interpreters, so can only use standard library methods """ from __future__ import absolute_import, print_function import json import logging import os import platform import re import sys import sysconfig import warnings from collections import OrderedDict, namedtuple from string import digits VersionInfo = namedtuple("VersionInfo", ["major", "minor", "micro", "releaselevel", "serial"]) def _get_path_extensions(): return list(OrderedDict.fromkeys([""] + os.environ.get("PATHEXT", "").lower().split(os.pathsep))) EXTENSIONS = _get_path_extensions() _CONF_VAR_RE = re.compile(r"\{\w+\}") class PythonInfo(object): """Contains information for a Python interpreter""" def __init__(self): def u(v): return v.decode("utf-8") if isinstance(v, bytes) else v def abs_path(v): return None if v is None else os.path.abspath(v) # unroll relative elements from path (e.g. ..) # qualifies the python self.platform = u(sys.platform) self.implementation = u(platform.python_implementation()) if self.implementation == "PyPy": self.pypy_version_info = tuple(u(i) for i in sys.pypy_version_info) # this is a tuple in earlier, struct later, unify to our own named tuple self.version_info = VersionInfo(*list(u(i) for i in sys.version_info)) self.architecture = 64 if sys.maxsize > 2 ** 32 else 32 self.version = u(sys.version) self.os = u(os.name) # information about the prefix - determines python home self.prefix = u(abs_path(getattr(sys, "prefix", None))) # prefix we think self.base_prefix = u(abs_path(getattr(sys, "base_prefix", None))) # venv self.real_prefix = u(abs_path(getattr(sys, "real_prefix", None))) # old virtualenv # information about the exec prefix - dynamic stdlib modules self.base_exec_prefix = u(abs_path(getattr(sys, "base_exec_prefix", None))) self.exec_prefix = u(abs_path(getattr(sys, "exec_prefix", None))) self.executable = u(abs_path(sys.executable)) # the executable we were invoked via self.original_executable = u(abs_path(self.executable)) # the executable as known by the interpreter self.system_executable = self._fast_get_system_executable() # the executable we are based of (if available) try: __import__("venv") has = True except ImportError: has = False self.has_venv = has self.path = [u(i) for i in sys.path] self.file_system_encoding = u(sys.getfilesystemencoding()) self.stdout_encoding = u(getattr(sys.stdout, "encoding", None)) if "venv" in sysconfig.get_scheme_names(): self.sysconfig_scheme = "venv" self.sysconfig_paths = { u(i): u(sysconfig.get_path(i, expand=False, scheme="venv")) for i in sysconfig.get_path_names() } # we cannot use distutils at all if "venv" exists, distutils don't know it self.distutils_install = {} else: self.sysconfig_scheme = None self.sysconfig_paths = {u(i): u(sysconfig.get_path(i, expand=False)) for i in sysconfig.get_path_names()} self.distutils_install = {u(k): u(v) for k, v in self._distutils_install().items()} # https://bugs.python.org/issue22199 makefile = getattr(sysconfig, "get_makefile_filename", getattr(sysconfig, "_get_makefile_filename", None)) self.sysconfig = { u(k): u(v) for k, v in [ # a list of content to store from sysconfig ("makefile_filename", makefile()), ] if k is not None } config_var_keys = set() for element in self.sysconfig_paths.values(): for k in _CONF_VAR_RE.findall(element): config_var_keys.add(u(k[1:-1])) config_var_keys.add("PYTHONFRAMEWORK") self.sysconfig_vars = {u(i): u(sysconfig.get_config_var(i) or "") for i in config_var_keys} if self.implementation == "PyPy" and sys.version_info.major == 2: self.sysconfig_vars[u"implementation_lower"] = u"python" confs = {k: (self.system_prefix if v.startswith(self.prefix) else v) for k, v in self.sysconfig_vars.items()} self.system_stdlib = self.sysconfig_path("stdlib", confs) self.system_stdlib_platform = self.sysconfig_path("platstdlib", confs) self.max_size = getattr(sys, "maxsize", getattr(sys, "maxint", None)) self._creators = None def _fast_get_system_executable(self): """Try to get the system executable by just looking at properties""" if self.real_prefix or ( self.base_prefix is not None and self.base_prefix != self.prefix ): # if this is a virtual environment if self.real_prefix is None: base_executable = getattr(sys, "_base_executable", None) # some platforms may set this to help us if base_executable is not None: # use the saved system executable if present if sys.executable != base_executable: # we know we're in a virtual environment, cannot be us return base_executable return None # in this case we just can't tell easily without poking around FS and calling them, bail # if we're not in a virtual environment, this is already a system python, so return the original executable # note we must choose the original and not the pure executable as shim scripts might throw us off return self.original_executable def install_path(self, key): result = self.distutils_install.get(key) if result is None: # use sysconfig if sysconfig_scheme is set or distutils is unavailable # set prefixes to empty => result is relative from cwd prefixes = self.prefix, self.exec_prefix, self.base_prefix, self.base_exec_prefix config_var = {k: "" if v in prefixes else v for k, v in self.sysconfig_vars.items()} result = self.sysconfig_path(key, config_var=config_var).lstrip(os.sep) return result @staticmethod def _distutils_install(): # use distutils primarily because that's what pip does # https://github.com/pypa/pip/blob/main/src/pip/_internal/locations.py#L95 # note here we don't import Distribution directly to allow setuptools to patch it with warnings.catch_warnings(): # disable warning for PEP-632 warnings.simplefilter("ignore") try: from distutils import dist from distutils.command.install import SCHEME_KEYS except ImportError: # if removed or not installed ignore return {} d = dist.Distribution({"script_args": "--no-user-cfg"}) # conf files not parsed so they do not hijack paths if hasattr(sys, "_framework"): sys._framework = None # disable macOS static paths for framework with warnings.catch_warnings(): # disable warning for PEP-632 warnings.simplefilter("ignore") i = d.get_command_obj("install", create=True) i.prefix = os.sep # paths generated are relative to prefix that contains the path sep, this makes it relative i.finalize_options() result = {key: (getattr(i, "install_{}".format(key))[1:]).lstrip(os.sep) for key in SCHEME_KEYS} return result @property def version_str(self): return ".".join(str(i) for i in self.version_info[0:3]) @property def version_release_str(self): return ".".join(str(i) for i in self.version_info[0:2]) @property def python_name(self): version_info = self.version_info return "python{}.{}".format(version_info.major, version_info.minor) @property def is_old_virtualenv(self): return self.real_prefix is not None @property def is_venv(self): return self.base_prefix is not None and self.version_info.major == 3 def sysconfig_path(self, key, config_var=None, sep=os.sep): pattern = self.sysconfig_paths[key] if config_var is None: config_var = self.sysconfig_vars else: base = {k: v for k, v in self.sysconfig_vars.items()} base.update(config_var) config_var = base return pattern.format(**config_var).replace(u"/", sep) def creators(self, refresh=False): if self._creators is None or refresh is True: from virtualenv.run.plugin.creators import CreatorSelector self._creators = CreatorSelector.for_interpreter(self) return self._creators @property def system_include(self): path = self.sysconfig_path( "include", {k: (self.system_prefix if v.startswith(self.prefix) else v) for k, v in self.sysconfig_vars.items()}, ) if not os.path.exists(path): # some broken packaging don't respect the sysconfig, fallback to distutils path # the pattern include the distribution name too at the end, remove that via the parent call fallback = os.path.join(self.prefix, os.path.dirname(self.install_path("headers"))) if os.path.exists(fallback): path = fallback return path @property def system_prefix(self): return self.real_prefix or self.base_prefix or self.prefix @property def system_exec_prefix(self): return self.real_prefix or self.base_exec_prefix or self.exec_prefix def __unicode__(self): content = repr(self) if sys.version_info == 2: content = content.decode("utf-8") return content def __repr__(self): return "{}({!r})".format( self.__class__.__name__, {k: v for k, v in self.__dict__.items() if not k.startswith("_")}, ) def __str__(self): content = "{}({})".format( self.__class__.__name__, ", ".join( "{}={}".format(k, v) for k, v in ( ("spec", self.spec), ( "system" if self.system_executable is not None and self.system_executable != self.executable else None, self.system_executable, ), ( "original" if ( self.original_executable != self.system_executable and self.original_executable != self.executable ) else None, self.original_executable, ), ("exe", self.executable), ("platform", self.platform), ("version", repr(self.version)), ("encoding_fs_io", "{}-{}".format(self.file_system_encoding, self.stdout_encoding)), ) if k is not None ), ) return content @property def spec(self): return "{}{}-{}".format(self.implementation, ".".join(str(i) for i in self.version_info), self.architecture) @classmethod def clear_cache(cls, app_data): # this method is not used by itself, so here and called functions can import stuff locally from virtualenv.discovery.cached_py_info import clear clear(app_data) cls._cache_exe_discovery.clear() def satisfies(self, spec, impl_must_match): """check if a given specification can be satisfied by the this python interpreter instance""" if spec.path: if self.executable == os.path.abspath(spec.path): return True # if the path is a our own executable path we're done if not spec.is_abs: # if path set, and is not our original executable name, this does not match basename = os.path.basename(self.original_executable) spec_path = spec.path if sys.platform == "win32": basename, suffix = os.path.splitext(basename) if spec_path.endswith(suffix): spec_path = spec_path[: -len(suffix)] if basename != spec_path: return False if impl_must_match: if spec.implementation is not None and spec.implementation.lower() != self.implementation.lower(): return False if spec.architecture is not None and spec.architecture != self.architecture: return False for our, req in zip(self.version_info[0:3], (spec.major, spec.minor, spec.micro)): if req is not None and our is not None and our != req: return False return True _current_system = None _current = None @classmethod def current(cls, app_data=None): """ This locates the current host interpreter information. This might be different than what we run into in case the host python has been upgraded from underneath us. """ if cls._current is None: cls._current = cls.from_exe(sys.executable, app_data, raise_on_error=True, resolve_to_host=False) return cls._current @classmethod def current_system(cls, app_data=None): """ This locates the current host interpreter information. This might be different than what we run into in case the host python has been upgraded from underneath us. """ if cls._current_system is None: cls._current_system = cls.from_exe(sys.executable, app_data, raise_on_error=True, resolve_to_host=True) return cls._current_system def _to_json(self): # don't save calculated paths, as these are non primitive types return json.dumps(self._to_dict(), indent=2) def _to_dict(self): data = {var: (getattr(self, var) if var not in ("_creators",) else None) for var in vars(self)} # noinspection PyProtectedMember data["version_info"] = data["version_info"]._asdict() # namedtuple to dictionary return data @classmethod def from_exe(cls, exe, app_data=None, raise_on_error=True, ignore_cache=False, resolve_to_host=True, env=None): """Given a path to an executable get the python information""" # this method is not used by itself, so here and called functions can import stuff locally from virtualenv.discovery.cached_py_info import from_exe env = os.environ if env is None else env proposed = from_exe(cls, app_data, exe, env=env, raise_on_error=raise_on_error, ignore_cache=ignore_cache) # noinspection PyProtectedMember if isinstance(proposed, PythonInfo) and resolve_to_host: try: proposed = proposed._resolve_to_system(app_data, proposed) except Exception as exception: if raise_on_error: raise exception logging.info("ignore %s due cannot resolve system due to %r", proposed.original_executable, exception) proposed = None return proposed @classmethod def _from_json(cls, payload): # the dictionary unroll here is to protect against pypy bug of interpreter crashing raw = json.loads(payload) return cls._from_dict({k: v for k, v in raw.items()}) @classmethod def _from_dict(cls, data): data["version_info"] = VersionInfo(**data["version_info"]) # restore this to a named tuple structure result = cls() result.__dict__ = {k: v for k, v in data.items()} return result @classmethod def _resolve_to_system(cls, app_data, target): start_executable = target.executable prefixes = OrderedDict() while target.system_executable is None: prefix = target.real_prefix or target.base_prefix or target.prefix if prefix in prefixes: if len(prefixes) == 1: # if we're linking back to ourselves accept ourselves with a WARNING logging.info("%r links back to itself via prefixes", target) target.system_executable = target.executable break for at, (p, t) in enumerate(prefixes.items(), start=1): logging.error("%d: prefix=%s, info=%r", at, p, t) logging.error("%d: prefix=%s, info=%r", len(prefixes) + 1, prefix, target) raise RuntimeError("prefixes are causing a circle {}".format("|".join(prefixes.keys()))) prefixes[prefix] = target target = target.discover_exe(app_data, prefix=prefix, exact=False) if target.executable != target.system_executable: target = cls.from_exe(target.system_executable, app_data) target.executable = start_executable return target _cache_exe_discovery = {} def discover_exe(self, app_data, prefix, exact=True, env=None): key = prefix, exact if key in self._cache_exe_discovery and prefix: logging.debug("discover exe from cache %s - exact %s: %r", prefix, exact, self._cache_exe_discovery[key]) return self._cache_exe_discovery[key] logging.debug("discover exe for %s in %s", self, prefix) # we don't know explicitly here, do some guess work - our executable name should tell possible_names = self._find_possible_exe_names() possible_folders = self._find_possible_folders(prefix) discovered = [] env = os.environ if env is None else env for folder in possible_folders: for name in possible_names: info = self._check_exe(app_data, folder, name, exact, discovered, env) if info is not None: self._cache_exe_discovery[key] = info return info if exact is False and discovered: info = self._select_most_likely(discovered, self) folders = os.pathsep.join(possible_folders) self._cache_exe_discovery[key] = info logging.debug("no exact match found, chosen most similar of %s within base folders %s", info, folders) return info msg = "failed to detect {} in {}".format("|".join(possible_names), os.pathsep.join(possible_folders)) raise RuntimeError(msg) def _check_exe(self, app_data, folder, name, exact, discovered, env): exe_path = os.path.join(folder, name) if not os.path.exists(exe_path): return None info = self.from_exe(exe_path, app_data, resolve_to_host=False, raise_on_error=False, env=env) if info is None: # ignore if for some reason we can't query return None for item in ["implementation", "architecture", "version_info"]: found = getattr(info, item) searched = getattr(self, item) if found != searched: if item == "version_info": found, searched = ".".join(str(i) for i in found), ".".join(str(i) for i in searched) executable = info.executable logging.debug("refused interpreter %s because %s differs %s != %s", executable, item, found, searched) if exact is False: discovered.append(info) break else: return info return None @staticmethod def _select_most_likely(discovered, target): # no exact match found, start relaxing our requirements then to facilitate system package upgrades that # could cause this (when using copy strategy of the host python) def sort_by(info): # we need to setup some priority of traits, this is as follows: # implementation, major, minor, micro, architecture, tag, serial matches = [ info.implementation == target.implementation, info.version_info.major == target.version_info.major, info.version_info.minor == target.version_info.minor, info.architecture == target.architecture, info.version_info.micro == target.version_info.micro, info.version_info.releaselevel == target.version_info.releaselevel, info.version_info.serial == target.version_info.serial, ] priority = sum((1 << pos if match else 0) for pos, match in enumerate(reversed(matches))) return priority sorted_discovered = sorted(discovered, key=sort_by, reverse=True) # sort by priority in decreasing order most_likely = sorted_discovered[0] return most_likely def _find_possible_folders(self, inside_folder): candidate_folder = OrderedDict() executables = OrderedDict() executables[os.path.realpath(self.executable)] = None executables[self.executable] = None executables[os.path.realpath(self.original_executable)] = None executables[self.original_executable] = None for exe in executables.keys(): base = os.path.dirname(exe) # following path pattern of the current if base.startswith(self.prefix): relative = base[len(self.prefix) :] candidate_folder["{}{}".format(inside_folder, relative)] = None # or at root level candidate_folder[inside_folder] = None return list(i for i in candidate_folder.keys() if os.path.exists(i)) def _find_possible_exe_names(self): name_candidate = OrderedDict() for name in self._possible_base(): for at in (3, 2, 1, 0): version = ".".join(str(i) for i in self.version_info[:at]) for arch in ["-{}".format(self.architecture), ""]: for ext in EXTENSIONS: candidate = "{}{}{}{}".format(name, version, arch, ext) name_candidate[candidate] = None return list(name_candidate.keys()) def _possible_base(self): possible_base = OrderedDict() basename = os.path.splitext(os.path.basename(self.executable))[0].rstrip(digits) possible_base[basename] = None possible_base[self.implementation] = None # python is always the final option as in practice is used by multiple implementation as exe name if "python" in possible_base: del possible_base["python"] possible_base["python"] = None for base in possible_base: lower = base.lower() yield lower from virtualenv.info import fs_is_case_sensitive if fs_is_case_sensitive(): if base != lower: yield base upper = base.upper() if upper != base: yield upper if __name__ == "__main__": # dump a JSON representation of the current python # noinspection PyProtectedMember print(PythonInfo()._to_json()) PKx"Tvirtualenv/discovery/py_spec.py"""A Python specification is an abstract requirement definition of a interpreter""" from __future__ import absolute_import, unicode_literals import os import re import sys from collections import OrderedDict from virtualenv.info import fs_is_case_sensitive from virtualenv.util.six import ensure_str PATTERN = re.compile(r"^(?P[a-zA-Z]+)?(?P[0-9.]+)?(?:-(?P32|64))?$") IS_WIN = sys.platform == "win32" class PythonSpec(object): """Contains specification about a Python Interpreter""" def __init__(self, str_spec, implementation, major, minor, micro, architecture, path): self.str_spec = str_spec self.implementation = implementation self.major = major self.minor = minor self.micro = micro self.architecture = architecture self.path = path @classmethod def from_string_spec(cls, string_spec): impl, major, minor, micro, arch, path = None, None, None, None, None, None if os.path.isabs(string_spec): path = string_spec else: ok = False match = re.match(PATTERN, string_spec) if match: def _int_or_none(val): return None if val is None else int(val) try: groups = match.groupdict() version = groups["version"] if version is not None: versions = tuple(int(i) for i in version.split(".") if i) if len(versions) > 3: raise ValueError if len(versions) == 3: major, minor, micro = versions elif len(versions) == 2: major, minor = versions elif len(versions) == 1: version_data = versions[0] major = int(str(version_data)[0]) # first digit major if version_data > 9: minor = int(str(version_data)[1:]) ok = True except ValueError: pass else: impl = groups["impl"] if impl == "py" or impl == "python": impl = "CPython" arch = _int_or_none(groups["arch"]) if not ok: path = string_spec return cls(string_spec, impl, major, minor, micro, arch, path) def generate_names(self): impls = OrderedDict() if self.implementation: # first consider implementation as it is impls[self.implementation] = False if fs_is_case_sensitive(): # for case sensitive file systems consider lower and upper case versions too # trivia: MacBooks and all pre 2018 Windows-es were case insensitive by default impls[self.implementation.lower()] = False impls[self.implementation.upper()] = False impls["python"] = True # finally consider python as alias, implementation must match now version = self.major, self.minor, self.micro try: version = version[: version.index(None)] except ValueError: pass for impl, match in impls.items(): for at in range(len(version), -1, -1): cur_ver = version[0:at] spec = "{}{}".format(impl, ".".join(str(i) for i in cur_ver)) yield spec, match @property def is_abs(self): return self.path is not None and os.path.isabs(self.path) def satisfies(self, spec): """called when there's a candidate metadata spec to see if compatible - e.g. PEP-514 on Windows""" if spec.is_abs and self.is_abs and self.path != spec.path: return False if spec.implementation is not None and spec.implementation.lower() != self.implementation.lower(): return False if spec.architecture is not None and spec.architecture != self.architecture: return False for our, req in zip((self.major, self.minor, self.micro), (spec.major, spec.minor, spec.micro)): if req is not None and our is not None and our != req: return False return True def __unicode__(self): return "{}({})".format( type(self).__name__, ", ".join( "{}={}".format(k, getattr(self, k)) for k in ("implementation", "major", "minor", "micro", "architecture", "path") if getattr(self, k) is not None ), ) def __repr__(self): return ensure_str(self.__unicode__()) PKx"TJ(virtualenv/discovery/windows/__init__.pyfrom __future__ import absolute_import, unicode_literals from ..py_info import PythonInfo from ..py_spec import PythonSpec from .pep514 import discover_pythons class Pep514PythonInfo(PythonInfo): """ """ def propose_interpreters(spec, cache_dir, env): # see if PEP-514 entries are good # start with higher python versions in an effort to use the latest version available # and prefer PythonCore over conda pythons (as virtualenv is mostly used by non conda tools) existing = list(discover_pythons()) existing.sort( key=lambda i: tuple(-1 if j is None else j for j in i[1:4]) + (1 if i[0] == "PythonCore" else 0,), reverse=True ) for name, major, minor, arch, exe, _ in existing: # pre-filter if name in ("PythonCore", "ContinuumAnalytics"): name = "CPython" registry_spec = PythonSpec(None, name, major, minor, None, arch, exe) if registry_spec.satisfies(spec): interpreter = Pep514PythonInfo.from_exe(exe, cache_dir, env=env, raise_on_error=False) if interpreter is not None: if interpreter.satisfies(spec, impl_must_match=True): yield interpreter PKx"TKK&virtualenv/discovery/windows/pep514.py"""Implement https://www.python.org/dev/peps/pep-0514/ to discover interpreters - Windows only""" from __future__ import absolute_import, print_function, unicode_literals import os import re from logging import basicConfig, getLogger import six if six.PY3: import winreg else: # noinspection PyUnresolvedReferences import _winreg as winreg LOGGER = getLogger(__name__) def enum_keys(key): at = 0 while True: try: yield winreg.EnumKey(key, at) except OSError: break at += 1 def get_value(key, value_name): try: return winreg.QueryValueEx(key, value_name)[0] except OSError: return None def discover_pythons(): for hive, hive_name, key, flags, default_arch in [ (winreg.HKEY_CURRENT_USER, "HKEY_CURRENT_USER", r"Software\Python", 0, 64), (winreg.HKEY_LOCAL_MACHINE, "HKEY_LOCAL_MACHINE", r"Software\Python", winreg.KEY_WOW64_64KEY, 64), (winreg.HKEY_LOCAL_MACHINE, "HKEY_LOCAL_MACHINE", r"Software\Python", winreg.KEY_WOW64_32KEY, 32), ]: for spec in process_set(hive, hive_name, key, flags, default_arch): yield spec def process_set(hive, hive_name, key, flags, default_arch): try: with winreg.OpenKeyEx(hive, key, 0, winreg.KEY_READ | flags) as root_key: for company in enum_keys(root_key): if company == "PyLauncher": # reserved continue for spec in process_company(hive_name, company, root_key, default_arch): yield spec except OSError: pass def process_company(hive_name, company, root_key, default_arch): with winreg.OpenKeyEx(root_key, company) as company_key: for tag in enum_keys(company_key): spec = process_tag(hive_name, company, company_key, tag, default_arch) if spec is not None: yield spec def process_tag(hive_name, company, company_key, tag, default_arch): with winreg.OpenKeyEx(company_key, tag) as tag_key: version = load_version_data(hive_name, company, tag, tag_key) if version is not None: # if failed to get version bail major, minor, _ = version arch = load_arch_data(hive_name, company, tag, tag_key, default_arch) if arch is not None: exe_data = load_exe(hive_name, company, company_key, tag) if exe_data is not None: exe, args = exe_data return company, major, minor, arch, exe, args def load_exe(hive_name, company, company_key, tag): key_path = "{}/{}/{}".format(hive_name, company, tag) try: with winreg.OpenKeyEx(company_key, r"{}\InstallPath".format(tag)) as ip_key: with ip_key: exe = get_value(ip_key, "ExecutablePath") if exe is None: ip = get_value(ip_key, None) if ip is None: msg(key_path, "no ExecutablePath or default for it") else: exe = os.path.join(ip, str("python.exe")) if exe is not None and os.path.exists(exe): args = get_value(ip_key, "ExecutableArguments") return exe, args else: msg(key_path, "could not load exe with value {}".format(exe)) except OSError: msg("{}/{}".format(key_path, "InstallPath"), "missing") return None def load_arch_data(hive_name, company, tag, tag_key, default_arch): arch_str = get_value(tag_key, "SysArchitecture") if arch_str is not None: key_path = "{}/{}/{}/SysArchitecture".format(hive_name, company, tag) try: return parse_arch(arch_str) except ValueError as sys_arch: msg(key_path, sys_arch) return default_arch def parse_arch(arch_str): if isinstance(arch_str, six.string_types): match = re.match(r"^(\d+)bit$", arch_str) if match: return int(next(iter(match.groups()))) error = "invalid format {}".format(arch_str) else: error = "arch is not string: {}".format(repr(arch_str)) raise ValueError(error) def load_version_data(hive_name, company, tag, tag_key): for candidate, key_path in [ (get_value(tag_key, "SysVersion"), "{}/{}/{}/SysVersion".format(hive_name, company, tag)), (tag, "{}/{}/{}".format(hive_name, company, tag)), ]: if candidate is not None: try: return parse_version(candidate) except ValueError as sys_version: msg(key_path, sys_version) return None def parse_version(version_str): if isinstance(version_str, six.string_types): match = re.match(r"^(\d+)(?:\.(\d+))?(?:\.(\d+))?$", version_str) if match: return tuple(int(i) if i is not None else None for i in match.groups()) error = "invalid format {}".format(version_str) else: error = "version is not string: {}".format(repr(version_str)) raise ValueError(error) def msg(path, what): LOGGER.warning("PEP-514 violation in Windows Registry at {} error: {}".format(path, what)) def _run(): basicConfig() interpreters = [] for spec in discover_pythons(): interpreters.append(repr(spec)) print("\n".join(sorted(interpreters))) if __name__ == "__main__": _run() PKx"T1=virtualenv/run/__init__.pyfrom __future__ import absolute_import, unicode_literals import logging import os from functools import partial from ..app_data import make_app_data from ..config.cli.parser import VirtualEnvConfigParser from ..report import LEVELS, setup_report from ..run.session import Session from ..seed.wheels.periodic_update import manual_upgrade from ..version import __version__ from .plugin.activators import ActivationSelector from .plugin.creators import CreatorSelector from .plugin.discovery import get_discover from .plugin.seeders import SeederSelector def cli_run(args, options=None, setup_logging=True, env=None): """ Create a virtual environment given some command line interface arguments. :param args: the command line arguments :param options: passing in a ``VirtualEnvOptions`` object allows return of the parsed options :param setup_logging: ``True`` if setup logging handlers, ``False`` to use handlers already registered :param env: environment variables to use :return: the session object of the creation (its structure for now is experimental and might change on short notice) """ env = os.environ if env is None else env of_session = session_via_cli(args, options, setup_logging, env) with of_session: of_session.run() return of_session def session_via_cli(args, options=None, setup_logging=True, env=None): """ Create a virtualenv session (same as cli_run, but this does not perform the creation). Use this if you just want to query what the virtual environment would look like, but not actually create it. :param args: the command line arguments :param options: passing in a ``VirtualEnvOptions`` object allows return of the parsed options :param setup_logging: ``True`` if setup logging handlers, ``False`` to use handlers already registered :param env: environment variables to use :return: the session object of the creation (its structure for now is experimental and might change on short notice) """ env = os.environ if env is None else env parser, elements = build_parser(args, options, setup_logging, env) options = parser.parse_args(args) creator, seeder, activators = tuple(e.create(options) for e in elements) # create types of_session = Session(options.verbosity, options.app_data, parser._interpreter, creator, seeder, activators) # noqa return of_session def build_parser(args=None, options=None, setup_logging=True, env=None): parser = VirtualEnvConfigParser(options, os.environ if env is None else env) add_version_flag(parser) parser.add_argument( "--with-traceback", dest="with_traceback", action="store_true", default=False, help="on failure also display the stacktrace internals of virtualenv", ) _do_report_setup(parser, args, setup_logging) options = load_app_data(args, parser, options) handle_extra_commands(options) discover = get_discover(parser, args) parser._interpreter = interpreter = discover.interpreter if interpreter is None: raise RuntimeError("failed to find interpreter for {}".format(discover)) elements = [ CreatorSelector(interpreter, parser), SeederSelector(interpreter, parser), ActivationSelector(interpreter, parser), ] options, _ = parser.parse_known_args(args) for element in elements: element.handle_selected_arg_parse(options) parser.enable_help() return parser, elements def build_parser_only(args=None): """Used to provide a parser for the doc generation""" return build_parser(args)[0] def handle_extra_commands(options): if options.upgrade_embed_wheels: result = manual_upgrade(options.app_data, options.env) raise SystemExit(result) def load_app_data(args, parser, options): parser.add_argument( "--read-only-app-data", action="store_true", help="use app data folder in read-only mode (write operations will fail with error)", ) options, _ = parser.parse_known_args(args, namespace=options) # here we need a write-able application data (e.g. the zipapp might need this for discovery cache) parser.add_argument( "--app-data", help="a data folder used as cache by the virtualenv", type=partial(make_app_data, read_only=options.read_only_app_data, env=options.env), default=make_app_data(None, read_only=options.read_only_app_data, env=options.env), ) parser.add_argument( "--reset-app-data", action="store_true", help="start with empty app data folder", ) parser.add_argument( "--upgrade-embed-wheels", action="store_true", help="trigger a manual update of the embedded wheels", ) options, _ = parser.parse_known_args(args, namespace=options) if options.reset_app_data: options.app_data.reset() return options def add_version_flag(parser): import virtualenv parser.add_argument( "--version", action="version", version="%(prog)s {} from {}".format(__version__, virtualenv.__file__), help="display the version of the virtualenv package and its location, then exit", ) def _do_report_setup(parser, args, setup_logging): level_map = ", ".join("{}={}".format(logging.getLevelName(l), c) for c, l in sorted(list(LEVELS.items()))) msg = "verbosity = verbose - quiet, default {}, mapping => {}" verbosity_group = parser.add_argument_group( title="verbosity", description=msg.format(logging.getLevelName(LEVELS[3]), level_map), ) verbosity = verbosity_group.add_mutually_exclusive_group() verbosity.add_argument("-v", "--verbose", action="count", dest="verbose", help="increase verbosity", default=2) verbosity.add_argument("-q", "--quiet", action="count", dest="quiet", help="decrease verbosity", default=0) option, _ = parser.parse_known_args(args) if setup_logging: setup_report(option.verbosity) __all__ = ( "cli_run", "session_via_cli", ) PKx"T|  virtualenv/run/session.pyfrom __future__ import absolute_import, unicode_literals import json import logging from virtualenv.util.six import ensure_text class Session(object): """Represents a virtual environment creation session""" def __init__(self, verbosity, app_data, interpreter, creator, seeder, activators): self._verbosity = verbosity self._app_data = app_data self._interpreter = interpreter self._creator = creator self._seeder = seeder self._activators = activators @property def verbosity(self): """The verbosity of the run""" return self._verbosity @property def interpreter(self): """Create a virtual environment based on this reference interpreter""" return self._interpreter @property def creator(self): """The creator used to build the virtual environment (must be compatible with the interpreter)""" return self._creator @property def seeder(self): """The mechanism used to provide the seed packages (pip, setuptools, wheel)""" return self._seeder @property def activators(self): """Activators used to generate activations scripts""" return self._activators def run(self): self._create() self._seed() self._activate() self.creator.pyenv_cfg.write() def _create(self): logging.info("create virtual environment via %s", ensure_text(str(self.creator))) self.creator.run() logging.debug(_DEBUG_MARKER) logging.debug("%s", _Debug(self.creator)) def _seed(self): if self.seeder is not None and self.seeder.enabled: logging.info("add seed packages via %s", self.seeder) self.seeder.run(self.creator) def _activate(self): if self.activators: logging.info( "add activators for %s", ", ".join(type(i).__name__.replace("Activator", "") for i in self.activators), ) for activator in self.activators: activator.generate(self.creator) def __enter__(self): return self def __exit__(self, exc_type, exc_val, exc_tb): self._app_data.close() _DEBUG_MARKER = "=" * 30 + " target debug " + "=" * 30 class _Debug(object): """lazily populate debug""" def __init__(self, creator): self.creator = creator def __unicode__(self): return ensure_text(repr(self)) def __repr__(self): return json.dumps(self.creator.debug, indent=2) PKx"T!virtualenv/run/plugin/__init__.pyPKx"T #virtualenv/run/plugin/activators.pyfrom __future__ import absolute_import, unicode_literals from argparse import ArgumentTypeError from collections import OrderedDict from .base import ComponentBuilder class ActivationSelector(ComponentBuilder): def __init__(self, interpreter, parser): self.default = None possible = OrderedDict( (k, v) for k, v in self.options("virtualenv.activate").items() if v.supports(interpreter) ) super(ActivationSelector, self).__init__(interpreter, parser, "activators", possible) self.parser.description = "options for activation scripts" self.active = None def add_selector_arg_parse(self, name, choices): self.default = ",".join(choices) self.parser.add_argument( "--{}".format(name), default=self.default, metavar="comma_sep_list", required=False, help="activators to generate - default is all supported", type=self._extract_activators, ) def _extract_activators(self, entered_str): elements = [e.strip() for e in entered_str.split(",") if e.strip()] missing = [e for e in elements if e not in self.possible] if missing: raise ArgumentTypeError("the following activators are not available {}".format(",".join(missing))) return elements def handle_selected_arg_parse(self, options): selected_activators = ( self._extract_activators(self.default) if options.activators is self.default else options.activators ) self.active = {k: v for k, v in self.possible.items() if k in selected_activators} self.parser.add_argument( "--prompt", dest="prompt", metavar="prompt", help=( "provides an alternative prompt prefix for this environment " "(value of . means name of the current working directory)" ), default=None, ) for activator in self.active.values(): activator.add_parser_arguments(self.parser, self.interpreter) def create(self, options): return [activator_class(options) for activator_class in self.active.values()] PKx"T6=zvirtualenv/run/plugin/base.pyfrom __future__ import absolute_import, unicode_literals import sys from collections import OrderedDict if sys.version_info >= (3, 8): from importlib.metadata import entry_points importlib_metadata_version = () else: from importlib_metadata import entry_points, version importlib_metadata_version = tuple(int(i) for i in version("importlib_metadata").split(".")[:2]) class PluginLoader(object): _OPTIONS = None _ENTRY_POINTS = None @classmethod def entry_points_for(cls, key): if sys.version_info >= (3, 10) or importlib_metadata_version >= (3, 6): return OrderedDict((e.name, e.load()) for e in cls.entry_points().select(group=key)) else: return OrderedDict((e.name, e.load()) for e in cls.entry_points().get(key, {})) @staticmethod def entry_points(): if PluginLoader._ENTRY_POINTS is None: PluginLoader._ENTRY_POINTS = entry_points() return PluginLoader._ENTRY_POINTS class ComponentBuilder(PluginLoader): def __init__(self, interpreter, parser, name, possible): self.interpreter = interpreter self.name = name self._impl_class = None self.possible = possible self.parser = parser.add_argument_group(title=name) self.add_selector_arg_parse(name, list(self.possible)) @classmethod def options(cls, key): if cls._OPTIONS is None: cls._OPTIONS = cls.entry_points_for(key) return cls._OPTIONS def add_selector_arg_parse(self, name, choices): raise NotImplementedError def handle_selected_arg_parse(self, options): selected = getattr(options, self.name) if selected not in self.possible: raise RuntimeError("No implementation for {}".format(self.interpreter)) self._impl_class = self.possible[selected] self.populate_selected_argparse(selected, options.app_data) return selected def populate_selected_argparse(self, selected, app_data): self.parser.description = "options for {} {}".format(self.name, selected) self._impl_class.add_parser_arguments(self.parser, self.interpreter, app_data) def create(self, options): return self._impl_class(options, self.interpreter) PKx"TQ !virtualenv/run/plugin/creators.pyfrom __future__ import absolute_import, unicode_literals from collections import OrderedDict, defaultdict, namedtuple from virtualenv.create.describe import Describe from virtualenv.create.via_global_ref.builtin.builtin_way import VirtualenvBuiltin from .base import ComponentBuilder CreatorInfo = namedtuple("CreatorInfo", ["key_to_class", "key_to_meta", "describe", "builtin_key"]) class CreatorSelector(ComponentBuilder): def __init__(self, interpreter, parser): creators, self.key_to_meta, self.describe, self.builtin_key = self.for_interpreter(interpreter) super(CreatorSelector, self).__init__(interpreter, parser, "creator", creators) @classmethod def for_interpreter(cls, interpreter): key_to_class, key_to_meta, builtin_key, describe = OrderedDict(), {}, None, None errors = defaultdict(list) for key, creator_class in cls.options("virtualenv.create").items(): if key == "builtin": raise RuntimeError("builtin creator is a reserved name") meta = creator_class.can_create(interpreter) if meta: if meta.error: errors[meta.error].append(creator_class) else: if "builtin" not in key_to_class and issubclass(creator_class, VirtualenvBuiltin): builtin_key = key key_to_class["builtin"] = creator_class key_to_meta["builtin"] = meta key_to_class[key] = creator_class key_to_meta[key] = meta if describe is None and issubclass(creator_class, Describe) and creator_class.can_describe(interpreter): describe = creator_class if not key_to_meta: if errors: rows = ["{} for creators {}".format(k, ", ".join(i.__name__ for i in v)) for k, v in errors.items()] raise RuntimeError("\n".join(rows)) else: raise RuntimeError("No virtualenv implementation for {}".format(interpreter)) return CreatorInfo( key_to_class=key_to_class, key_to_meta=key_to_meta, describe=describe, builtin_key=builtin_key, ) def add_selector_arg_parse(self, name, choices): # prefer the built-in venv if present, otherwise fallback to first defined type choices = sorted(choices, key=lambda a: 0 if a == "builtin" else 1) default_value = self._get_default(choices) self.parser.add_argument( "--{}".format(name), choices=choices, default=default_value, required=False, help="create environment via{}".format( "" if self.builtin_key is None else " (builtin = {})".format(self.builtin_key), ), ) @staticmethod def _get_default(choices): return next(iter(choices)) def populate_selected_argparse(self, selected, app_data): self.parser.description = "options for {} {}".format(self.name, selected) self._impl_class.add_parser_arguments(self.parser, self.interpreter, self.key_to_meta[selected], app_data) def create(self, options): options.meta = self.key_to_meta[getattr(options, self.name)] if not issubclass(self._impl_class, Describe): options.describe = self.describe(options, self.interpreter) return super(CreatorSelector, self).create(options) PKx"Tb;"virtualenv/run/plugin/discovery.pyfrom __future__ import absolute_import, unicode_literals from .base import PluginLoader class Discovery(PluginLoader): """ """ def get_discover(parser, args): discover_types = Discovery.entry_points_for("virtualenv.discovery") discovery_parser = parser.add_argument_group( title="discovery", description="discover and provide a target interpreter", ) choices = _get_default_discovery(discover_types) # prefer the builtin if present, otherwise fallback to first defined type choices = sorted(choices, key=lambda a: 0 if a == "builtin" else 1) discovery_parser.add_argument( "--discovery", choices=choices, default=next(iter(choices)), required=False, help="interpreter discovery method", ) options, _ = parser.parse_known_args(args) discover_class = discover_types[options.discovery] discover_class.add_parser_arguments(discovery_parser) options, _ = parser.parse_known_args(args, namespace=options) discover = discover_class(options) return discover def _get_default_discovery(discover_types): return list(discover_types.keys()) PKx"TrR122 virtualenv/run/plugin/seeders.pyfrom __future__ import absolute_import, unicode_literals from .base import ComponentBuilder class SeederSelector(ComponentBuilder): def __init__(self, interpreter, parser): possible = self.options("virtualenv.seed") super(SeederSelector, self).__init__(interpreter, parser, "seeder", possible) def add_selector_arg_parse(self, name, choices): self.parser.add_argument( "--{}".format(name), choices=choices, default=self._get_default(), required=False, help="seed packages install method", ) self.parser.add_argument( "--no-seed", "--without-pip", help="do not install seed packages", action="store_true", dest="no_seed", ) @staticmethod def _get_default(): return "app-data" def handle_selected_arg_parse(self, options): return super(SeederSelector, self).handle_selected_arg_parse(options) def create(self, options): return self._impl_class(options) PKx"T4T99virtualenv/seed/__init__.pyfrom __future__ import absolute_import, unicode_literals PKx"T:Cvirtualenv/seed/seeder.pyfrom __future__ import absolute_import, unicode_literals from abc import ABCMeta, abstractmethod from six import add_metaclass @add_metaclass(ABCMeta) class Seeder(object): """A seeder will install some seed packages into a virtual environment.""" # noinspection PyUnusedLocal def __init__(self, options, enabled): """ :param options: the parsed options as defined within :meth:`add_parser_arguments` :param enabled: a flag weather the seeder is enabled or not """ self.enabled = enabled self.env = options.env @classmethod def add_parser_arguments(cls, parser, interpreter, app_data): """ Add CLI arguments for this seed mechanisms. :param parser: the CLI parser :param app_data: the CLI parser :param interpreter: the interpreter this virtual environment is based of """ raise NotImplementedError @abstractmethod def run(self, creator): """Perform the seed operation. :param creator: the creator (based of :class:`virtualenv.create.creator.Creator`) we used to create this \ virtual environment """ raise NotImplementedError PKx"T!virtualenv/seed/embed/__init__.pyPKx"TԅVV#virtualenv/seed/embed/base_embed.pyfrom __future__ import absolute_import, unicode_literals from abc import ABCMeta from six import add_metaclass from virtualenv.util.path import Path from virtualenv.util.six import ensure_str, ensure_text from ..seeder import Seeder from ..wheels import Version PERIODIC_UPDATE_ON_BY_DEFAULT = True @add_metaclass(ABCMeta) class BaseEmbed(Seeder): def __init__(self, options): super(BaseEmbed, self).__init__(options, enabled=options.no_seed is False) self.download = options.download self.extra_search_dir = [i.resolve() for i in options.extra_search_dir if i.exists()] self.pip_version = options.pip self.setuptools_version = options.setuptools self.wheel_version = options.wheel self.no_pip = options.no_pip self.no_setuptools = options.no_setuptools self.no_wheel = options.no_wheel self.app_data = options.app_data self.periodic_update = not options.no_periodic_update if not self.distribution_to_versions(): self.enabled = False @classmethod def distributions(cls): return { "pip": Version.bundle, "setuptools": Version.bundle, "wheel": Version.bundle, } def distribution_to_versions(self): return { distribution: getattr(self, "{}_version".format(distribution)) for distribution in self.distributions() if getattr(self, "no_{}".format(distribution)) is False } @classmethod def add_parser_arguments(cls, parser, interpreter, app_data): group = parser.add_mutually_exclusive_group() group.add_argument( "--no-download", "--never-download", dest="download", action="store_false", help="pass to disable download of the latest {} from PyPI".format("/".join(cls.distributions())), default=True, ) group.add_argument( "--download", dest="download", action="store_true", help="pass to enable download of the latest {} from PyPI".format("/".join(cls.distributions())), default=False, ) parser.add_argument( "--extra-search-dir", metavar="d", type=Path, nargs="+", help="a path containing wheels to extend the internal wheel list (can be set 1+ times)", default=[], ) for distribution, default in cls.distributions().items(): parser.add_argument( "--{}".format(distribution), dest=distribution, metavar="version", help="version of {} to install as seed: embed, bundle or exact version".format(distribution), default=default, ) for distribution in cls.distributions(): parser.add_argument( "--no-{}".format(distribution), dest="no_{}".format(distribution), action="store_true", help="do not install {}".format(distribution), default=False, ) parser.add_argument( "--no-periodic-update", dest="no_periodic_update", action="store_true", help="disable the periodic (once every 14 days) update of the embedded wheels", default=not PERIODIC_UPDATE_ON_BY_DEFAULT, ) def __unicode__(self): result = self.__class__.__name__ result += "(" if self.extra_search_dir: result += "extra_search_dir={},".format(", ".join(ensure_text(str(i)) for i in self.extra_search_dir)) result += "download={},".format(self.download) for distribution in self.distributions(): if getattr(self, "no_{}".format(distribution)): continue result += " {}{},".format( distribution, "={}".format(getattr(self, "{}_version".format(distribution), None) or "latest"), ) return result[:-1] + ")" def __repr__(self): return ensure_str(self.__unicode__()) PKx"TMww#virtualenv/seed/embed/pip_invoke.pyfrom __future__ import absolute_import, unicode_literals import logging from contextlib import contextmanager from virtualenv.discovery.cached_py_info import LogCmd from virtualenv.seed.embed.base_embed import BaseEmbed from virtualenv.util.subprocess import Popen from ..wheels import Version, get_wheel, pip_wheel_env_run class PipInvoke(BaseEmbed): def __init__(self, options): super(PipInvoke, self).__init__(options) def run(self, creator): if not self.enabled: return for_py_version = creator.interpreter.version_release_str with self.get_pip_install_cmd(creator.exe, for_py_version) as cmd: env = pip_wheel_env_run(self.extra_search_dir, self.app_data, self.env) self._execute(cmd, env) @staticmethod def _execute(cmd, env): logging.debug("pip seed by running: %s", LogCmd(cmd, env)) process = Popen(cmd, env=env) process.communicate() if process.returncode != 0: raise RuntimeError("failed seed with code {}".format(process.returncode)) return process @contextmanager def get_pip_install_cmd(self, exe, for_py_version): cmd = [str(exe), "-m", "pip", "-q", "install", "--only-binary", ":all:", "--disable-pip-version-check"] if not self.download: cmd.append("--no-index") folders = set() for dist, version in self.distribution_to_versions().items(): wheel = get_wheel( distribution=dist, version=version, for_py_version=for_py_version, search_dirs=self.extra_search_dir, download=False, app_data=self.app_data, do_periodic_update=self.periodic_update, env=self.env, ) if wheel is None: raise RuntimeError("could not get wheel for distribution {}".format(dist)) folders.add(str(wheel.path.parent)) cmd.append(Version.as_pip_req(dist, wheel.version)) for folder in sorted(folders): cmd.extend(["--find-links", str(folder)]) yield cmd PKx"T.virtualenv/seed/embed/via_app_data/__init__.pyPKx"Td2virtualenv/seed/embed/via_app_data/via_app_data.py"""Bootstrap""" from __future__ import absolute_import, unicode_literals import logging import sys import traceback from contextlib import contextmanager from subprocess import CalledProcessError from threading import Lock, Thread from virtualenv.info import fs_supports_symlink from virtualenv.seed.embed.base_embed import BaseEmbed from virtualenv.seed.wheels import get_wheel from virtualenv.util.path import Path from .pip_install.copy import CopyPipInstall from .pip_install.symlink import SymlinkPipInstall class FromAppData(BaseEmbed): def __init__(self, options): super(FromAppData, self).__init__(options) self.symlinks = options.symlink_app_data @classmethod def add_parser_arguments(cls, parser, interpreter, app_data): super(FromAppData, cls).add_parser_arguments(parser, interpreter, app_data) can_symlink = app_data.transient is False and fs_supports_symlink() parser.add_argument( "--symlink-app-data", dest="symlink_app_data", action="store_true" if can_symlink else "store_false", help="{} symlink the python packages from the app-data folder (requires seed pip>=19.3)".format( "" if can_symlink else "not supported - ", ), default=False, ) def run(self, creator): if not self.enabled: return with self._get_seed_wheels(creator) as name_to_whl: pip_version = name_to_whl["pip"].version_tuple if "pip" in name_to_whl else None installer_class = self.installer_class(pip_version) exceptions = {} def _install(name, wheel): try: logging.debug("install %s from wheel %s via %s", name, wheel, installer_class.__name__) key = Path(installer_class.__name__) / wheel.path.stem wheel_img = self.app_data.wheel_image(creator.interpreter.version_release_str, key) installer = installer_class(wheel.path, creator, wheel_img) parent = self.app_data.lock / wheel_img.parent with parent.non_reentrant_lock_for_key(wheel_img.name): if not installer.has_image(): installer.build_image() installer.install(creator.interpreter.version_info) except Exception: # noqa exceptions[name] = sys.exc_info() threads = list(Thread(target=_install, args=(n, w)) for n, w in name_to_whl.items()) for thread in threads: thread.start() for thread in threads: thread.join() if exceptions: messages = ["failed to build image {} because:".format(", ".join(exceptions.keys()))] for value in exceptions.values(): exc_type, exc_value, exc_traceback = value messages.append("".join(traceback.format_exception(exc_type, exc_value, exc_traceback))) raise RuntimeError("\n".join(messages)) @contextmanager def _get_seed_wheels(self, creator): name_to_whl, lock, fail = {}, Lock(), {} def _get(distribution, version): for_py_version = creator.interpreter.version_release_str failure, result = None, None # fallback to download in case the exact version is not available for download in [True] if self.download else [False, True]: failure = None try: result = get_wheel( distribution=distribution, version=version, for_py_version=for_py_version, search_dirs=self.extra_search_dir, download=download, app_data=self.app_data, do_periodic_update=self.periodic_update, env=self.env, ) if result is not None: break except Exception as exception: # noqa logging.exception("fail") failure = exception if failure: if isinstance(failure, CalledProcessError): msg = "failed to download {}".format(distribution) if version is not None: msg += " version {}".format(version) msg += ", pip download exit code {}".format(failure.returncode) output = failure.output if sys.version_info < (3, 5) else (failure.output + failure.stderr) if output: msg += "\n" msg += output else: msg = repr(failure) logging.error(msg) with lock: fail[distribution] = version else: with lock: name_to_whl[distribution] = result threads = list( Thread(target=_get, args=(distribution, version)) for distribution, version in self.distribution_to_versions().items() ) for thread in threads: thread.start() for thread in threads: thread.join() if fail: raise RuntimeError("seed failed due to failing to download wheels {}".format(", ".join(fail.keys()))) yield name_to_whl def installer_class(self, pip_version_tuple): if self.symlinks and pip_version_tuple: # symlink support requires pip 19.3+ if pip_version_tuple >= (19, 3): return SymlinkPipInstall return CopyPipInstall def __unicode__(self): base = super(FromAppData, self).__unicode__() msg = ", via={}, app_data_dir={}".format("symlink" if self.symlinks else "copy", self.app_data) return base[:-1] + msg + base[-1] PKx"T:virtualenv/seed/embed/via_app_data/pip_install/__init__.pyPKx"TEY!!!!6virtualenv/seed/embed/via_app_data/pip_install/base.pyfrom __future__ import absolute_import, unicode_literals import logging import os import re import zipfile from abc import ABCMeta, abstractmethod from itertools import chain from tempfile import mkdtemp from distlib.scripts import ScriptMaker, enquote_executable from six import PY3, add_metaclass from virtualenv.util import ConfigParser from virtualenv.util.path import Path, safe_delete from virtualenv.util.six import ensure_text @add_metaclass(ABCMeta) class PipInstall(object): def __init__(self, wheel, creator, image_folder): self._wheel = wheel self._creator = creator self._image_dir = image_folder self._extracted = False self.__dist_info = None self._console_entry_points = None @abstractmethod def _sync(self, src, dst): raise NotImplementedError def install(self, version_info): self._extracted = True self._uninstall_previous_version() # sync image for filename in self._image_dir.iterdir(): into = self._creator.purelib / filename.name self._sync(filename, into) # generate console executables consoles = set() script_dir = self._creator.script_dir for name, module in self._console_scripts.items(): consoles.update(self._create_console_entry_point(name, module, script_dir, version_info)) logging.debug("generated console scripts %s", " ".join(i.name for i in consoles)) def build_image(self): # 1. first extract the wheel logging.debug("build install image for %s to %s", self._wheel.name, self._image_dir) with zipfile.ZipFile(str(self._wheel)) as zip_ref: self._shorten_path_if_needed(zip_ref) zip_ref.extractall(str(self._image_dir)) self._extracted = True # 2. now add additional files not present in the distribution new_files = self._generate_new_files() # 3. finally fix the records file self._fix_records(new_files) def _shorten_path_if_needed(self, zip_ref): if os.name == "nt": to_folder = str(self._image_dir) # https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation zip_max_len = max(len(i) for i in zip_ref.namelist()) path_len = zip_max_len + len(to_folder) if path_len > 260: self._image_dir.mkdir(exist_ok=True) # to get a short path must exist from virtualenv.util.path import get_short_path_name to_folder = get_short_path_name(to_folder) self._image_dir = Path(to_folder) def _records_text(self, files): record_data = "\n".join( "{},,".format(os.path.relpath(ensure_text(str(rec)), ensure_text(str(self._image_dir)))) for rec in files ) return record_data def _generate_new_files(self): new_files = set() installer = self._dist_info / "INSTALLER" installer.write_text("pip\n") new_files.add(installer) # inject a no-op root element, as workaround for bug in https://github.com/pypa/pip/issues/7226 marker = self._image_dir / "{}.virtualenv".format(self._dist_info.stem) marker.write_text("") new_files.add(marker) folder = mkdtemp() try: to_folder = Path(folder) rel = os.path.relpath(ensure_text(str(self._creator.script_dir)), ensure_text(str(self._creator.purelib))) version_info = self._creator.interpreter.version_info for name, module in self._console_scripts.items(): new_files.update( Path(os.path.normpath(ensure_text(str(self._image_dir / rel / i.name)))) for i in self._create_console_entry_point(name, module, to_folder, version_info) ) finally: safe_delete(folder) return new_files @property def _dist_info(self): if self._extracted is False: return None # pragma: no cover if self.__dist_info is None: files = [] for filename in self._image_dir.iterdir(): files.append(filename.name) if filename.suffix == ".dist-info": self.__dist_info = filename break else: msg = "no .dist-info at {}, has {}".format(self._image_dir, ", ".join(files)) # pragma: no cover raise RuntimeError(msg) # pragma: no cover return self.__dist_info @abstractmethod def _fix_records(self, extra_record_data): raise NotImplementedError @property def _console_scripts(self): if self._extracted is False: return None # pragma: no cover if self._console_entry_points is None: self._console_entry_points = {} entry_points = self._dist_info / "entry_points.txt" if entry_points.exists(): parser = ConfigParser.ConfigParser() with entry_points.open() as file_handler: reader = getattr(parser, "read_file" if PY3 else "readfp") reader(file_handler) if "console_scripts" in parser.sections(): for name, value in parser.items("console_scripts"): match = re.match(r"(.*?)-?\d\.?\d*", name) if match: name = match.groups(1)[0] self._console_entry_points[name] = value return self._console_entry_points def _create_console_entry_point(self, name, value, to_folder, version_info): result = [] maker = ScriptMakerCustom(to_folder, version_info, self._creator.exe, name) specification = "{} = {}".format(name, value) new_files = maker.make(specification) result.extend(Path(i) for i in new_files) return result def _uninstall_previous_version(self): dist_name = self._dist_info.stem.split("-")[0] in_folders = chain.from_iterable([i.iterdir() for i in {self._creator.purelib, self._creator.platlib}]) paths = (p for p in in_folders if p.stem.split("-")[0] == dist_name and p.suffix == ".dist-info" and p.is_dir()) existing_dist = next(paths, None) if existing_dist is not None: self._uninstall_dist(existing_dist) @staticmethod def _uninstall_dist(dist): dist_base = dist.parent logging.debug("uninstall existing distribution %s from %s", dist.stem, dist_base) top_txt = dist / "top_level.txt" # add top level packages at folder level paths = {dist.parent / i.strip() for i in top_txt.read_text().splitlines()} if top_txt.exists() else set() paths.add(dist) # add the dist-info folder itself base_dirs, record = paths.copy(), dist / "RECORD" # collect entries in record that we did not register yet for name in (i.split(",")[0] for i in record.read_text().splitlines()) if record.exists() else (): path = dist_base / name if not any(p in base_dirs for p in path.parents): # only add if not already added as a base dir paths.add(path) for path in sorted(paths): # actually remove stuff in a stable order if path.exists(): if path.is_dir() and not path.is_symlink(): safe_delete(path) else: path.unlink() def clear(self): if self._image_dir.exists(): safe_delete(self._image_dir) def has_image(self): return self._image_dir.exists() and next(self._image_dir.iterdir()) is not None class ScriptMakerCustom(ScriptMaker): def __init__(self, target_dir, version_info, executable, name): super(ScriptMakerCustom, self).__init__(None, str(target_dir)) self.clobber = True # overwrite self.set_mode = True # ensure they are executable self.executable = enquote_executable(str(executable)) self.version_info = version_info.major, version_info.minor self.variants = {"", "X", "X.Y"} self._name = name def _write_script(self, names, shebang, script_bytes, filenames, ext): names.add("{}{}.{}".format(self._name, *self.version_info)) super(ScriptMakerCustom, self)._write_script(names, shebang, script_bytes, filenames, ext) PKx"T& ?6virtualenv/seed/embed/via_app_data/pip_install/copy.pyfrom __future__ import absolute_import, unicode_literals import os from virtualenv.util.path import Path, copy from virtualenv.util.six import ensure_text from .base import PipInstall class CopyPipInstall(PipInstall): def _sync(self, src, dst): copy(src, dst) def _generate_new_files(self): # create the pyc files new_files = super(CopyPipInstall, self)._generate_new_files() new_files.update(self._cache_files()) return new_files def _cache_files(self): version = self._creator.interpreter.version_info py_c_ext = ".{}-{}{}.pyc".format(self._creator.interpreter.implementation.lower(), version.major, version.minor) for root, dirs, files in os.walk(ensure_text(str(self._image_dir)), topdown=True): root_path = Path(root) for name in files: if name.endswith(".py"): yield root_path / "{}{}".format(name[:-3], py_c_ext) for name in dirs: yield root_path / name / "__pycache__" def _fix_records(self, new_files): extra_record_data_str = self._records_text(new_files) with open(ensure_text(str(self._dist_info / "RECORD")), "ab") as file_handler: file_handler.write(extra_record_data_str.encode("utf-8")) PKx"T): : 9virtualenv/seed/embed/via_app_data/pip_install/symlink.pyfrom __future__ import absolute_import, unicode_literals import os import subprocess from stat import S_IREAD, S_IRGRP, S_IROTH from virtualenv.util.path import safe_delete, set_tree from virtualenv.util.six import ensure_text from virtualenv.util.subprocess import Popen from .base import PipInstall class SymlinkPipInstall(PipInstall): def _sync(self, src, dst): src_str = ensure_text(str(src)) dest_str = ensure_text(str(dst)) os.symlink(src_str, dest_str) def _generate_new_files(self): # create the pyc files, as the build image will be R/O process = Popen( [ensure_text(str(self._creator.exe)), "-m", "compileall", ensure_text(str(self._image_dir))], stdout=subprocess.PIPE, stderr=subprocess.PIPE, ) process.communicate() # the root pyc is shared, so we'll not symlink that - but still add the pyc files to the RECORD for close root_py_cache = self._image_dir / "__pycache__" new_files = set() if root_py_cache.exists(): new_files.update(root_py_cache.iterdir()) new_files.add(root_py_cache) safe_delete(root_py_cache) core_new_files = super(SymlinkPipInstall, self)._generate_new_files() # remove files that are within the image folder deeper than one level (as these will be not linked directly) for file in core_new_files: try: rel = file.relative_to(self._image_dir) if len(rel.parts) > 1: continue except ValueError: pass new_files.add(file) return new_files def _fix_records(self, new_files): new_files.update(i for i in self._image_dir.iterdir()) extra_record_data_str = self._records_text(sorted(new_files, key=str)) with open(ensure_text(str(self._dist_info / "RECORD")), "wb") as file_handler: file_handler.write(extra_record_data_str.encode("utf-8")) def build_image(self): super(SymlinkPipInstall, self).build_image() # protect the image by making it read only set_tree(self._image_dir, S_IREAD | S_IRGRP | S_IROTH) def clear(self): if self._image_dir.exists(): safe_delete(self._image_dir) super(SymlinkPipInstall, self).clear() PKx"T"virtualenv/seed/wheels/__init__.pyfrom __future__ import absolute_import, unicode_literals from .acquire import get_wheel, pip_wheel_env_run from .util import Version, Wheel __all__ = ( "get_wheel", "pip_wheel_env_run", "Version", "Wheel", ) PKx"TĽj!virtualenv/seed/wheels/acquire.py"""Bootstrap""" from __future__ import absolute_import, unicode_literals import logging import sys from operator import eq, lt from virtualenv.util.path import Path from virtualenv.util.six import ensure_str from virtualenv.util.subprocess import Popen, subprocess from .bundle import from_bundle from .periodic_update import add_wheel_to_update_log from .util import Version, Wheel, discover_wheels def get_wheel(distribution, version, for_py_version, search_dirs, download, app_data, do_periodic_update, env): """ Get a wheel with the given distribution-version-for_py_version trio, by using the extra search dir + download """ # not all wheels are compatible with all python versions, so we need to py version qualify it wheel = None if not download or version != Version.bundle: # 1. acquire from bundle wheel = from_bundle(distribution, version, for_py_version, search_dirs, app_data, do_periodic_update, env) if download and wheel is None and version != Version.embed: # 2. download from the internet wheel = download_wheel( distribution=distribution, version_spec=Version.as_version_spec(version), for_py_version=for_py_version, search_dirs=search_dirs, app_data=app_data, to_folder=app_data.house, env=env, ) if wheel is not None and app_data.can_update: add_wheel_to_update_log(wheel, for_py_version, app_data) return wheel def download_wheel(distribution, version_spec, for_py_version, search_dirs, app_data, to_folder, env): to_download = "{}{}".format(distribution, version_spec or "") logging.debug("download wheel %s %s to %s", to_download, for_py_version, to_folder) cmd = [ sys.executable, "-m", "pip", "download", "--progress-bar", "off", "--disable-pip-version-check", "--only-binary=:all:", "--no-deps", "--python-version", for_py_version, "-d", str(to_folder), to_download, ] # pip has no interface in python - must be a new sub-process env = pip_wheel_env_run(search_dirs, app_data, env) process = Popen(cmd, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) out, err = process.communicate() if process.returncode != 0: kwargs = {"output": out} if sys.version_info < (3, 5): kwargs["output"] += err else: kwargs["stderr"] = err raise subprocess.CalledProcessError(process.returncode, cmd, **kwargs) result = _find_downloaded_wheel(distribution, version_spec, for_py_version, to_folder, out) logging.debug("downloaded wheel %s", result.name) return result def _find_downloaded_wheel(distribution, version_spec, for_py_version, to_folder, out): for line in out.splitlines(): line = line.lstrip() for marker in ("Saved ", "File was already downloaded "): if line.startswith(marker): return Wheel(Path(line[len(marker) :]).absolute()) # if for some reason the output does not match fallback to latest version with that spec return find_compatible_in_house(distribution, version_spec, for_py_version, to_folder) def find_compatible_in_house(distribution, version_spec, for_py_version, in_folder): wheels = discover_wheels(in_folder, distribution, None, for_py_version) start, end = 0, len(wheels) if version_spec is not None: if version_spec.startswith("<"): from_pos, op = 1, lt elif version_spec.startswith("=="): from_pos, op = 2, eq else: raise ValueError(version_spec) version = Wheel.as_version_tuple(version_spec[from_pos:]) start = next((at for at, w in enumerate(wheels) if op(w.version_tuple, version)), len(wheels)) return None if start == end else wheels[start] def pip_wheel_env_run(search_dirs, app_data, env): for_py_version = "{}.{}".format(*sys.version_info[0:2]) env = env.copy() env.update( { ensure_str(k): str(v) # python 2 requires these to be string only (non-unicode) for k, v in {"PIP_USE_WHEEL": "1", "PIP_USER": "0", "PIP_NO_INPUT": "1"}.items() }, ) wheel = get_wheel( distribution="pip", version=None, for_py_version=for_py_version, search_dirs=search_dirs, download=False, app_data=app_data, do_periodic_update=False, env=env, ) if wheel is None: raise RuntimeError("could not find the embedded pip") env[str("PYTHONPATH")] = str(wheel.path) return env PKx"TN__ virtualenv/seed/wheels/bundle.pyfrom __future__ import absolute_import, unicode_literals from ..wheels.embed import get_embed_wheel from .periodic_update import periodic_update from .util import Version, Wheel, discover_wheels def from_bundle(distribution, version, for_py_version, search_dirs, app_data, do_periodic_update, env): """ Load the bundled wheel to a cache directory. """ of_version = Version.of_version(version) wheel = load_embed_wheel(app_data, distribution, for_py_version, of_version) if version != Version.embed: # 2. check if we have upgraded embed if app_data.can_update: wheel = periodic_update( distribution, of_version, for_py_version, wheel, search_dirs, app_data, do_periodic_update, env ) # 3. acquire from extra search dir found_wheel = from_dir(distribution, of_version, for_py_version, search_dirs) if found_wheel is not None: if wheel is None: wheel = found_wheel elif found_wheel.version_tuple > wheel.version_tuple: wheel = found_wheel return wheel def load_embed_wheel(app_data, distribution, for_py_version, version): wheel = get_embed_wheel(distribution, for_py_version) if wheel is not None: version_match = version == wheel.version if version is None or version_match: with app_data.ensure_extracted(wheel.path, lambda: app_data.house) as wheel_path: wheel = Wheel(wheel_path) else: # if version does not match ignore wheel = None return wheel def from_dir(distribution, version, for_py_version, directories): """ Load a compatible wheel from a given folder. """ for folder in directories: for wheel in discover_wheels(folder, distribution, version, for_py_version): return wheel return None PKx"Ts<<)virtualenv/seed/wheels/periodic_update.py""" Periodically update bundled versions. """ from __future__ import absolute_import, unicode_literals import json import logging import os import ssl import subprocess import sys from datetime import datetime, timedelta from itertools import groupby from shutil import copy2 from textwrap import dedent from threading import Thread from six.moves.urllib.error import URLError from six.moves.urllib.request import urlopen from virtualenv.app_data import AppDataDiskFolder from virtualenv.info import PY2 from virtualenv.util.path import Path from virtualenv.util.subprocess import CREATE_NO_WINDOW, Popen from ..wheels.embed import BUNDLE_SUPPORT from ..wheels.util import Wheel if PY2: # on Python 2 datetime.strptime throws the error below if the import did not trigger on main thread # Failed to import _strptime because the import lock is held by try: import _strptime # noqa except ImportError: # pragma: no cov pass # pragma: no cov GRACE_PERIOD_CI = timedelta(hours=1) # prevent version switch in the middle of a CI run GRACE_PERIOD_MINOR = timedelta(days=28) UPDATE_PERIOD = timedelta(days=14) UPDATE_ABORTED_DELAY = timedelta(hours=1) def periodic_update(distribution, of_version, for_py_version, wheel, search_dirs, app_data, do_periodic_update, env): if do_periodic_update: handle_auto_update(distribution, for_py_version, wheel, search_dirs, app_data, env) now = datetime.now() def _update_wheel(ver): updated_wheel = Wheel(app_data.house / ver.filename) logging.debug("using %supdated wheel %s", "periodically " if updated_wheel else "", updated_wheel) return updated_wheel u_log = UpdateLog.from_app_data(app_data, distribution, for_py_version) if of_version is None: for _, group in groupby(u_log.versions, key=lambda v: v.wheel.version_tuple[0:2]): # use only latest patch version per minor, earlier assumed to be buggy all_patches = list(group) ignore_grace_period_minor = any(version for version in all_patches if version.use(now)) for version in all_patches: if wheel is not None and Path(version.filename).name == wheel.name: return wheel if version.use(now, ignore_grace_period_minor): return _update_wheel(version) else: for version in u_log.versions: if version.wheel.version == of_version: return _update_wheel(version) return wheel def handle_auto_update(distribution, for_py_version, wheel, search_dirs, app_data, env): embed_update_log = app_data.embed_update_log(distribution, for_py_version) u_log = UpdateLog.from_dict(embed_update_log.read()) if u_log.needs_update: u_log.periodic = True u_log.started = datetime.now() embed_update_log.write(u_log.to_dict()) trigger_update(distribution, for_py_version, wheel, search_dirs, app_data, periodic=True, env=env) def add_wheel_to_update_log(wheel, for_py_version, app_data): embed_update_log = app_data.embed_update_log(wheel.distribution, for_py_version) logging.debug("adding %s information to %s", wheel.name, embed_update_log.file) u_log = UpdateLog.from_dict(embed_update_log.read()) if any(version.filename == wheel.name for version in u_log.versions): logging.warning("%s already present in %s", wheel.name, embed_update_log.file) return # we don't need a release date for sources other than "periodic" version = NewVersion(wheel.name, datetime.now(), None, "download") u_log.versions.append(version) # always write at the end for proper updates embed_update_log.write(u_log.to_dict()) DATETIME_FMT = "%Y-%m-%dT%H:%M:%S.%fZ" def dump_datetime(value): return None if value is None else value.strftime(DATETIME_FMT) def load_datetime(value): return None if value is None else datetime.strptime(value, DATETIME_FMT) class NewVersion(object): def __init__(self, filename, found_date, release_date, source): self.filename = filename self.found_date = found_date self.release_date = release_date self.source = source @classmethod def from_dict(cls, dictionary): return cls( filename=dictionary["filename"], found_date=load_datetime(dictionary["found_date"]), release_date=load_datetime(dictionary["release_date"]), source=dictionary["source"], ) def to_dict(self): return { "filename": self.filename, "release_date": dump_datetime(self.release_date), "found_date": dump_datetime(self.found_date), "source": self.source, } def use(self, now, ignore_grace_period_minor=False, ignore_grace_period_ci=False): if self.source == "manual": return True elif self.source == "periodic": if self.found_date < now - GRACE_PERIOD_CI or ignore_grace_period_ci: if not ignore_grace_period_minor: compare_from = self.release_date or self.found_date return now - compare_from >= GRACE_PERIOD_MINOR return True return False def __repr__(self): return "{}(filename={}), found_date={}, release_date={}, source={})".format( self.__class__.__name__, self.filename, self.found_date, self.release_date, self.source, ) def __eq__(self, other): return type(self) == type(other) and all( getattr(self, k) == getattr(other, k) for k in ["filename", "release_date", "found_date", "source"] ) def __ne__(self, other): return not (self == other) @property def wheel(self): return Wheel(Path(self.filename)) class UpdateLog(object): def __init__(self, started, completed, versions, periodic): self.started = started self.completed = completed self.versions = versions self.periodic = periodic @classmethod def from_dict(cls, dictionary): if dictionary is None: dictionary = {} return cls( load_datetime(dictionary.get("started")), load_datetime(dictionary.get("completed")), [NewVersion.from_dict(v) for v in dictionary.get("versions", [])], dictionary.get("periodic"), ) @classmethod def from_app_data(cls, app_data, distribution, for_py_version): raw_json = app_data.embed_update_log(distribution, for_py_version).read() return cls.from_dict(raw_json) def to_dict(self): return { "started": dump_datetime(self.started), "completed": dump_datetime(self.completed), "periodic": self.periodic, "versions": [r.to_dict() for r in self.versions], } @property def needs_update(self): now = datetime.now() if self.completed is None: # never completed return self._check_start(now) else: if now - self.completed <= UPDATE_PERIOD: return False return self._check_start(now) def _check_start(self, now): return self.started is None or now - self.started > UPDATE_ABORTED_DELAY def trigger_update(distribution, for_py_version, wheel, search_dirs, app_data, env, periodic): wheel_path = None if wheel is None else str(wheel.path) cmd = [ sys.executable, "-c", dedent( """ from virtualenv.report import setup_report, MAX_LEVEL from virtualenv.seed.wheels.periodic_update import do_update setup_report(MAX_LEVEL, show_pid=True) do_update({!r}, {!r}, {!r}, {!r}, {!r}, {!r}) """, ) .strip() .format(distribution, for_py_version, wheel_path, str(app_data), [str(p) for p in search_dirs], periodic), ] debug = env.get(str("_VIRTUALENV_PERIODIC_UPDATE_INLINE")) == str("1") pipe = None if debug else subprocess.PIPE kwargs = {"stdout": pipe, "stderr": pipe} if not debug and sys.platform == "win32": kwargs["creationflags"] = CREATE_NO_WINDOW process = Popen(cmd, **kwargs) logging.info( "triggered periodic upgrade of %s%s (for python %s) via background process having PID %d", distribution, "" if wheel is None else "=={}".format(wheel.version), for_py_version, process.pid, ) if debug: process.communicate() # on purpose not called to make it a background process def do_update(distribution, for_py_version, embed_filename, app_data, search_dirs, periodic): versions = None try: versions = _run_do_update(app_data, distribution, embed_filename, for_py_version, periodic, search_dirs) finally: logging.debug("done %s %s with %s", distribution, for_py_version, versions) return versions def _run_do_update(app_data, distribution, embed_filename, for_py_version, periodic, search_dirs): from virtualenv.seed.wheels import acquire wheel_filename = None if embed_filename is None else Path(embed_filename) embed_version = None if wheel_filename is None else Wheel(wheel_filename).version_tuple app_data = AppDataDiskFolder(app_data) if isinstance(app_data, str) else app_data search_dirs = [Path(p) if isinstance(p, str) else p for p in search_dirs] wheelhouse = app_data.house embed_update_log = app_data.embed_update_log(distribution, for_py_version) u_log = UpdateLog.from_dict(embed_update_log.read()) now = datetime.now() update_versions, other_versions = [], [] for version in u_log.versions: if version.source in {"periodic", "manual"}: update_versions.append(version) else: other_versions.append(version) if periodic: source = "periodic" else: source = "manual" # mark the most recent one as source "manual" if update_versions: update_versions[0].source = source if wheel_filename is not None: dest = wheelhouse / wheel_filename.name if not dest.exists(): copy2(str(wheel_filename), str(wheelhouse)) last, last_version, versions, filenames = None, None, [], set() while last is None or not last.use(now, ignore_grace_period_ci=True): download_time = datetime.now() dest = acquire.download_wheel( distribution=distribution, version_spec=None if last_version is None else "<{}".format(last_version), for_py_version=for_py_version, search_dirs=search_dirs, app_data=app_data, to_folder=wheelhouse, env=os.environ, ) if dest is None or (update_versions and update_versions[0].filename == dest.name): break release_date = release_date_for_wheel_path(dest.path) last = NewVersion(filename=dest.path.name, release_date=release_date, found_date=download_time, source=source) logging.info("detected %s in %s", last, datetime.now() - download_time) versions.append(last) filenames.add(last.filename) last_wheel = last.wheel last_version = last_wheel.version if embed_version is not None: if embed_version >= last_wheel.version_tuple: # stop download if we reach the embed version break u_log.periodic = periodic if not u_log.periodic: u_log.started = now # update other_versions by removing version we just found other_versions = [version for version in other_versions if version.filename not in filenames] u_log.versions = versions + update_versions + other_versions u_log.completed = datetime.now() embed_update_log.write(u_log.to_dict()) return versions def release_date_for_wheel_path(dest): wheel = Wheel(dest) # the most accurate is to ask PyPi - e.g. https://pypi.org/pypi/pip/json, # see https://warehouse.pypa.io/api-reference/json/ for more details content = _pypi_get_distribution_info_cached(wheel.distribution) if content is not None: try: upload_time = content["releases"][wheel.version][0]["upload_time"] return datetime.strptime(upload_time, "%Y-%m-%dT%H:%M:%S") except Exception as exception: logging.error("could not load release date %s because %r", content, exception) return None def _request_context(): yield None # fallback to non verified HTTPS (the information we request is not sensitive, so fallback) yield ssl._create_unverified_context() # noqa _PYPI_CACHE = {} def _pypi_get_distribution_info_cached(distribution): if distribution not in _PYPI_CACHE: _PYPI_CACHE[distribution] = _pypi_get_distribution_info(distribution) return _PYPI_CACHE[distribution] def _pypi_get_distribution_info(distribution): content, url = None, "https://pypi.org/pypi/{}/json".format(distribution) try: for context in _request_context(): try: with urlopen(url, context=context) as file_handler: content = json.load(file_handler) break except URLError as exception: logging.error("failed to access %s because %r", url, exception) except Exception as exception: logging.error("failed to access %s because %r", url, exception) return content def manual_upgrade(app_data, env): threads = [] for for_py_version, distribution_to_package in BUNDLE_SUPPORT.items(): # load extra search dir for the given for_py for distribution in distribution_to_package.keys(): thread = Thread(target=_run_manual_upgrade, args=(app_data, distribution, for_py_version, env)) thread.start() threads.append(thread) for thread in threads: thread.join() def _run_manual_upgrade(app_data, distribution, for_py_version, env): start = datetime.now() from .bundle import from_bundle current = from_bundle( distribution=distribution, version=None, for_py_version=for_py_version, search_dirs=[], app_data=app_data, do_periodic_update=False, env=env, ) logging.warning( "upgrade %s for python %s with current %s", distribution, for_py_version, "" if current is None else current.name, ) versions = do_update( distribution=distribution, for_py_version=for_py_version, embed_filename=current.path, app_data=app_data, search_dirs=[], periodic=False, ) msg = "upgraded %s for python %s in %s {}".format( "new entries found:\n%s" if versions else "no new versions found", ) args = [ distribution, for_py_version, datetime.now() - start, ] if versions: args.append("\n".join("\t{}".format(v) for v in versions)) logging.warning(msg, *args) __all__ = ( "add_wheel_to_update_log", "periodic_update", "do_update", "manual_upgrade", "NewVersion", "UpdateLog", "load_datetime", "dump_datetime", "trigger_update", "release_date_for_wheel_path", ) PKx"T6Mxxvirtualenv/seed/wheels/util.pyfrom __future__ import absolute_import, unicode_literals from operator import attrgetter from zipfile import ZipFile from virtualenv.util.six import ensure_text class Wheel(object): def __init__(self, path): # https://www.python.org/dev/peps/pep-0427/#file-name-convention # The wheel filename is {distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl self.path = path self._parts = path.stem.split("-") @classmethod def from_path(cls, path): if path is not None and path.suffix == ".whl" and len(path.stem.split("-")) >= 5: return cls(path) return None @property def distribution(self): return self._parts[0] @property def version(self): return self._parts[1] @property def version_tuple(self): return self.as_version_tuple(self.version) @staticmethod def as_version_tuple(version): result = [] for part in version.split(".")[0:3]: try: result.append(int(part)) except ValueError: break if not result: raise ValueError(version) return tuple(result) @property def name(self): return self.path.name def support_py(self, py_version): name = "{}.dist-info/METADATA".format("-".join(self.path.stem.split("-")[0:2])) with ZipFile(ensure_text(str(self.path)), "r") as zip_file: metadata = zip_file.read(name).decode("utf-8") marker = "Requires-Python:" requires = next((i[len(marker) :] for i in metadata.splitlines() if i.startswith(marker)), None) if requires is None: # if it does not specify a python requires the assumption is compatible return True py_version_int = tuple(int(i) for i in py_version.split(".")) for require in (i.strip() for i in requires.split(",")): # https://www.python.org/dev/peps/pep-0345/#version-specifiers for operator, check in [ ("!=", lambda v: py_version_int != v), ("==", lambda v: py_version_int == v), ("<=", lambda v: py_version_int <= v), (">=", lambda v: py_version_int >= v), ("<", lambda v: py_version_int < v), (">", lambda v: py_version_int > v), ]: if require.startswith(operator): ver_str = require[len(operator) :].strip() version = tuple((int(i) if i != "*" else None) for i in ver_str.split("."))[0:2] if not check(version): return False break return True def __repr__(self): return "{}({})".format(self.__class__.__name__, self.path) def __str__(self): return str(self.path) def discover_wheels(from_folder, distribution, version, for_py_version): wheels = [] for filename in from_folder.iterdir(): wheel = Wheel.from_path(filename) if wheel and wheel.distribution == distribution: if version is None or wheel.version == version: if wheel.support_py(for_py_version): wheels.append(wheel) return sorted(wheels, key=attrgetter("version_tuple", "distribution"), reverse=True) class Version: #: the version bundled with virtualenv bundle = "bundle" embed = "embed" #: custom version handlers non_version = ( bundle, embed, ) @staticmethod def of_version(value): return None if value in Version.non_version else value @staticmethod def as_pip_req(distribution, version): return "{}{}".format(distribution, Version.as_version_spec(version)) @staticmethod def as_version_spec(version): of_version = Version.of_version(version) return "" if of_version is None else "=={}".format(of_version) PKx"TW(virtualenv/seed/wheels/embed/__init__.pyfrom __future__ import absolute_import, unicode_literals from virtualenv.seed.wheels.util import Wheel from virtualenv.util.path import Path BUNDLE_FOLDER = Path(__file__).absolute().parent BUNDLE_SUPPORT = { "3.11": { "pip": "pip-21.3.1-py3-none-any.whl", "setuptools": "setuptools-60.2.0-py3-none-any.whl", "wheel": "wheel-0.37.1-py2.py3-none-any.whl", }, "3.10": { "pip": "pip-21.3.1-py3-none-any.whl", "setuptools": "setuptools-60.2.0-py3-none-any.whl", "wheel": "wheel-0.37.1-py2.py3-none-any.whl", }, "3.9": { "pip": "pip-21.3.1-py3-none-any.whl", "setuptools": "setuptools-60.2.0-py3-none-any.whl", "wheel": "wheel-0.37.1-py2.py3-none-any.whl", }, "3.8": { "pip": "pip-21.3.1-py3-none-any.whl", "setuptools": "setuptools-60.2.0-py3-none-any.whl", "wheel": "wheel-0.37.1-py2.py3-none-any.whl", }, "3.7": { "pip": "pip-21.3.1-py3-none-any.whl", "setuptools": "setuptools-60.2.0-py3-none-any.whl", "wheel": "wheel-0.37.1-py2.py3-none-any.whl", }, "3.6": { "pip": "pip-21.3.1-py3-none-any.whl", "setuptools": "setuptools-59.6.0-py3-none-any.whl", "wheel": "wheel-0.37.1-py2.py3-none-any.whl", }, "3.5": { "pip": "pip-20.3.4-py2.py3-none-any.whl", "setuptools": "setuptools-50.3.2-py3-none-any.whl", "wheel": "wheel-0.37.1-py2.py3-none-any.whl", }, "2.7": { "pip": "pip-20.3.4-py2.py3-none-any.whl", "setuptools": "setuptools-44.1.1-py2.py3-none-any.whl", "wheel": "wheel-0.37.1-py2.py3-none-any.whl", }, } MAX = "3.11" def get_embed_wheel(distribution, for_py_version): path = BUNDLE_FOLDER / (BUNDLE_SUPPORT.get(for_py_version, {}) or BUNDLE_SUPPORT[MAX]).get(distribution) return Wheel.from_path(path) __all__ = ( "get_embed_wheel", "BUNDLE_SUPPORT", "MAX", "BUNDLE_FOLDER", ) PKx"T^ѵ99<virtualenv/seed/wheels/embed/pip-20.3.4-py2.py3-none-any.whlPKg7RG#pip/__init__.pymoK0STt&P!b$䮎~{Ӎ*B㹻oT2KY)Ir݂ BM^'+˦ٳ8S7C\C\P$ī-t| Ζ T-CԄnZnoa,6x&)XB"=tkxWUoN#35D5Rz3dNiGˡ.ԙSp% I}PKg7Rh<pip/__main__.py]R0 T,;Ug{]VUQIkg[Nı{~/}3(/i9@$?- \{G p7:0K>]Mq^xҀH )n<{jNC y7o;XHpxTZlÊ#B\ZȑEnl{`tRYH_P>0=}GUD+y\8ʓl2}yVj)Նm~;=#!m |?/ LIL ] &©߇dtzo[v;eܟo/Mb]>Sun2'bVYL';!-qF= aޣ8l+T2/PKg7RbzW)pip/_internal/__init__.pymQMK@K 5jA//*RJ&f$]g&Jۄ*B=,yY!PH2rlJ$>0L0o~5%(O@n4(?^Vz񐽾/[c< ӫWx$<%M1Xr;\zӁ<3qz]f3+IhV@Q3;5LA:^ []Cr7Q P * 4ݑV6}.4VH^'u+r|DS6!J/w55?PKg7R4Q s pip/_internal/build_env.pyYs۸_:$$飦q.'vh8 8S Pu 뽵z.㷋ݞU%LzG%-Ɇ ${-%-Y#<...f3khIŷ[\3\_ls{y3#*ZxI ({V۷))xa[Km֜G^g[ki}3Mа&.Hm&{QN{&(!&P!AKYJ1O`=m{y36YFrY ;gcVTyKe6ufxFpP+-5YɄe|`krq X& ~]~G|Fࣤ"/:/`գqv uEc W1Ha;%+F紁-Hc;A-fdxNDZeuG٬rBv'=%X, %61AEzQI([״{,)r忐7C^Ϛ*aGn2Eb("A%{eJ{\ŷ`K̕R1CYpV^:hBʱ`3v98rԜa8=$ܝNPtmu"r` iv|^PാJDZCтmXP^6zԋ $;=V b$l4 08?-V2U]wz׿ t_ y]]^CoSΑalHotSCJ Ţ*T/1V| 2mFcr9E9Nb6C p+guhuNu: eE;*XM bWd?PQ姠FdV]ڷpxuҶV*p҇gC^ u yVj6[ c a!{Z sq,%` TIuD|xBQ $!PwUTS:ACkv92~9_j~ɍ J`hOe>Mo=j5(; ?*aф2YtNi<%ڊI# cј#&xOE*cQĆ'}B2:7|r_SnA;RSA׭#*3ZhCؔ{u@[ VU[mW1e/櫞q־)hKsoOx@:ݜoIsR;/>hUAE{ wP" W+1oǽ6k)ti:8nugDB$w 11^ڍ`xD? Kr%vZc5>Xv Ja|{_< )̰K ߐ\(c婌@܎IyVu-װpcZo~J؁} O+Ng l})eBgi dEy LƣFJL3Rg)8 ,[*ͥ ;*[ɏ#ʽ6 +gZ݀GB\N](K䫋[òRckN?\Eu1/ ^@b7EfeN~/ߨ>>J6B` ݩ0kL,W-^fP`$5O`~:kjr3#lg\m68?Opo[? }ϾAv<$2 ^ 581I]ҼRI<ƃMzy@ WA<A EVG0[0p/QNj E 57ꄋ afO j5.@-LQո vH{ v3݇S `Q  ^7 /pip/_internal/cache.py۶w!Ca\ M/M$-+phȢJJE(,/][ÝM=/)'< W|#vjfQfrW+ݰ-7Rld*3ڱZiATiO U#t*IAh#[,l9T%s^ /S1ux)n(RN4i)= ~Dٟ%S:+_/y>a {Y,x7eO]ާRahw @ g,/u `D5e%Q¢E4OLEM.%>m4&U#:V|,F&Fczq t>nV!VkA€a(:`o: …2`h v ZEwJ`^҉`;wd3 Jȕ@SՂEf 0 vka,@J{' vߨV~hA*} BQ+̼W &l,6\'NHFɘN-#,f|\Ӂp /*82)ƓT0xr1u <~9@xx$ 8=Zq6QNYUY F?ٝ$m+p87g O26^d|)=jJHenIFsm-ZӀ3 ydw# "sQ,h?jhJ[,, I}f oUNp'E\j [nN UozH;Jdf!BRlSz>ݕT"Tsq * L Մ4C) NQä!ASKmgĔҔ5d8ZF*D8ly@4yɢ{r2i50`bP˒YKdbqɵψh&K 4Aوo~UC݆@@S^ `qXbgz-4$AĪq߃ !r'ɢ]d#lS7J|e9ND;εV_fGˤFI&PbVQTCeZmCHӮ/=}lr|8N:ݏGǣ㶫KՉpŹcG v4H+QLb_97@1đ:Op2.wp'+ֵAѾy*H6%J,PU+4Ci~ϕxTwzPˢwW.QH4 GJ=ۦlA?@yz<:hГBƋhtnv:LsPIOءұDcW{SҦ<#QijN"aDsI5BmQQ5M4aƝy?xOÆNh4מv T| ESS:WI_GWS߅Ux4G{<,%DWc_5pSPv2Q*Jʟ/:S٭ =Tq:PGYc1O.!R]]\Z+ Mp(S(Ȗ+QT꧒(vCÉ%ikł'cuH!8^=:%4M0]?H`n bՕ%;8X1F?W= *]鎪=;#]@ 5`8oLdȍw%E 5WQTٌkAQP6!ITPY؟,OWۧ msË=~eOzͳg/'<) ʏ}7 ȸ':z?$T8"÷Iޞf+PoNTG"Je8 ݏ[뤲 +5Xij\6Xo4ź=+Ex2aF574PCqiV-֗\2DR7;8C˵ᥟty!xi 댥ld=XPNV,jD^GZO`#2FFo`r;e57twJ ."mb[rqMԽTB!4/ǯ4M@34#O>–`Wxc9D;DFS) x"ފ=(lOpf2Q7PKg7R=͒>P6pip/_internal/configuration.py[mo8_UQX:voq 6n7hI_ZŢcndI $ ofHJ$;pF93C6WEkT*ɓky`pQ8\Ȋ`Ɋ;TN99!W M5Db.NTKh"{o`~ՕQ 01'B%Y#.EWS"8+dRRkvX_rÚ#G̱2q,V * Y'o~]_IPڨ'RQ|󴐑Ѫ劙a2KwAyE~K䮞3 W:KE?)ou%z,S!q(L*;Ř25eԕPs;j-y k|>ڔ93'PϢ>Ʉ͘y5fǰPr1; ~OM ?OII6f%h'wZg3v0jf\\h[0,;3U`tMdzn( !93)d1&\*`hK`{0XPb۾BwH$zD[ۇAz}^|.bNޜtxr\gU })Q'w]~Z'ٌM[!G6zIgg㓉<<)Ļ.#889??>ħGs"_( bzW\z(>9=XNwRz]rMFKR:(Kɯ,TsBH FKd(+`H2K<1 pDV A8܃g"6|"  !E$23HW`1j@0b\-ti5\q 1H]A -߰AU-Dʎ6A$AF,IqLJ6ŚA)vvHJ4G-Dn RT*9ˑ)o셛@+%q#^-_ CII^,*~+D1kEf{gCPS&E,u|b5v7 ު#44qe dE1: GM>nF/49"`G0a+E<ԤPߧqk(}v=#)uަF9}ÌIB` v֌Qrd[a:->4(_ 4s0Rx n5ώ! *X/tgUU!9%x ;[b uB M౫.IZ;%9D@@ *`%1]j[}3gO05!%d2_$j*[!րЃǪ?!$Hv7*Ɣڹ ̀v139aȔ[yxCWj"SG,ΓiE>i]ƺVC@QNkKd7n Gsc}Ρ,rx\1O8ybjiX?tc f[= ]23{ 4aM̑[81o݆գ]iQgcw׀V3ȊyNR/g; AR&?!vwU*Q$JWz7GF;5gO's}}RrB{+؇@% @ DԮۆPuC9ORhDR 곅n>!fH;+_Nh{H:ɚj,ӢUPp[!̴ Ϥi2Ya/rUE`1a." ;AcFI)-,áwcKsUWpS0n1iReiрB =XYCcldO-,5\D M7bc%5r鏥kc!߬r+VǏ7m;O#x b(K7(XOrl[S*^ɷZN0*vj}uYq. }p,m݆ō(`E95M7QNm=TC@pذ *뵍a.l ﷎8A>pś 6:XKD$s}W݄dzs,5[H_uEoX󚋖oZ#yZjES>WCֽjdع1<0:o[ j{r[Ή7T> 3XDž()!ߥa qCrhӶ$NC!@>|t֯ĉ\-nDgLIuȟx/F|X;E\NdG`m/JNfJRF-]7F&c%JmE>L(J'ɺbs]lE+]c4]YsH9C aQAXgТϕ[j4Ή5\n8ƢG 2öi65RPaZcZMr1/R~fsRxq hk}7^2yQPjՋ~_P~!{U9W#/@sixYDvr2)| Ol8t{Y6=ۏ_޴=zFs/W*>Qza;-b804L Zs[ukbjU&…SvP0IQLڔt gX3NɴjM&^/<+w_8,S bc#I`;Σ%o/ny5&gAYg,_}f\1g& a|}8!ICޕ%Qd: ~HHL_?w@44~Rnm`˾6\9pW$+^w\ *OA{~ڹ;@E@$bڱ\wx799gºXZsYM9Ԩs$WP֢aLwATۢz(zjl;筷\1%JJ%Cs3kˉ˅Яfr%{xeS9o6gx}NI}{OJpD S:(q .t;\_8ss VJbW,wZ7{/띛*rwd!S}me]Ox١=51p$vqNiv~{sq?؛샇8PDLU81aܹ1PKg7R2pip/_internal/exceptions.pyZs6~_S$Hn|3cǞƎq"! 5Ei[@e;ɽEXo]ݧb]JUVrUXdkz{{sVl:Wetjt̨*>vT*7Y^6#Zpz-V҉ W&l& yR27IYb{~{{rd +#F-#v%aupT *zɯ wwJ$+FW|1k0hwͤRUb͵Z0/~0%s>+Q8uaV%7\| 3n\4ư >ZAC+%7G>zҢ+5"^Bh7,\PJ*Mt/䷈]U!D3^]b%wKQ03;;:xupucJůǧo{ld9Imٟ"(2u>"}?hx pu+@Di!':bFdu ۅ׋&&K&wt:0"XF|%+@(6:b}Ym3W$|Xvh v 15Yfg )Z ~)/Nɢ"*ۧ/yA9T+,iK/hy})}ac BJR bl9)JEWJih[5S.oɽڠ_reE4>.aPAwY` 'vXBGGQ^oUy3lTߣMkD(3 7R7BḺ5Ϟ#Vi XE^l" gk\ m"뀼pt7 ZK54ۊ{.Ĥa܊ˏCZ=1esQp& ǡ֊n4JQsEE GVʼdC jșBP,SzE&Q)}D =`2 $G>1G ~5k(~ cK˿Ŏ5;Y.!hѯ `ԮkA#! hzO׵fAnln|@'8>,@ja9G'[+BUlrԞ / !8? bx "GpDp ]{\"'IAHIe "<& lBt*!3\alMnGn X;؄ DH,As`lC_%".IT0h D ˜lb/^$ 6'p=F-^_K w` _#)lDhWvyvDpI6/`'~Acv9Ám @>ރ)ނ@oz^((pCpIֻj 쓤@7. 윃+yĪV)@I HyrIŪ!\7On=G","^CIK?? ]eVץHohja+а- j]Ikݡ֢cO65KX7-r2+-iNn۔gR?5fϧf^CNRꞏ8aV7x@a hkp#69_2@H΄nk&3Ui—BI)Y{:m_#K@M6: x.MO`61mE?Sb@m-.T)eϔۂP)%y:6c{NV4p+)y_`p.MBvO[9zhHG'k+E4) @$9Q,aQӔL`#4u>e,~ ^gk_FQQ_eBH8!<71Հ}Eӭ ?Uc;[jyVbL%Ző`W/|nMdyxX\tpuq/JڛcO)v YWT,`?H(C<h5m;FkAH.ʝ+1ZOQfQ=j:C qX*(xT1Cj0yg@mN Of–LƘ j<90gwB%䘓,ˡCLg!G).GR@&2ŕT hZ}E-Z&jeuDO[dZ!tRLҁ**hnAPKgQtk}?D%q]lI]戮:UCUٹ*_7*/C77e wyvJR4 *{)Ά˅6w.gј;fQ n{b`;QГjںJ[##};Iʲ?w >C״h4Bz>?$(2\@0%(ZM| ׺EE PKg7RMؤ Kpip/_internal/locations.pyX[o8~ ][`g/ӦEӢ[@KF$e[}Ë,9qw$ks+Uen-`;JRij)Wfde,/Kfl\Ny$Yj'o6̬USl!Tj%.+f`c-RԵT/R 2;˘J[F ¼2QZsu-o#h{zŅV3n٩c))WEu\EkΘbRZ c#LfL^-KVh5ݨB&u]HmN#fիOo9a>gP?.~{VjRTHC7UYSBgu8 coHW$iU\s})^'5vO`@AK{ȭR`/{uGe$92|("T!l%l_6Γm6 <{glO07KKb1u4X-vYhXVH*$N0OIڻG{_үÔ3L]+yVkF=exא/F#b¯Lۆcw"د~s1gwBDrX+\Ԏ$|`aV#p- {9sQ[BkeEA#z)}G.Z۳5q*A$ Š!#fuClQ>Ľ# N#RqAG`4у=Έ5 NQѵVlg̛]'lFY5i;QXwt0؅V(a!:EتT ^2y~W}fn 9s7&5*\)1o}Ʌpls$ R͊<~h:% )ń!ptmmm3nM~'l 4f׿ˬ11SYJLYz$QRHӔl,W6R4p[FAh9K𱎞(^[,T5ژ:cS$R-%I̫ 5`dBi "*,h!`-/Ae%40m75.)-dKO\ BH N> WB{ᮐ:ײ& :@i/}t ^$B583lCIVAGJ+\HX3,vrLW{g␝K~_) )fѳp*.BZjRJ@Ei(:RfZCwҮ]~ Qُ'Fi):/@YB˭h`a&w~Z%$*o-U'ۓG=voo[䡥 %4i_|U"v@[`}Zw#ǷuIJO$i:t&\Ԫ*ҥUY޶N{i:ꎶ&ƻ;oRolHAɄ^ѵ?Bn3^?4J=wL:w(>bsh/`Gx΍(s-AS0%]θy 3wJXSNԲ>n-5ST|F)/Zʐr+=(JUP.ut,yZEoPa6{Xj6@|CGWOj Fc(xAKgF#YGb- 4|'`%<#u7>'׀vKnA:}PKg7Rr{4pip/_internal/main.pymOK@)zi&A-5C)%lI2.3%mJ{o$'ζIJC Wu}/*˞c:!/ S];ނ!Ƙ+,Zn2pvX>o~w# o!6'gCFA* ķR0j@Z!0VXr#M,%D ШYiM]`ӈ0%%JpNy>r PQ{vjf~PKg7RyY pip/_internal/pyproject.pyYm۸U>Xl!=h4]$9b!m3+Hy̐H[-Fp8+D7EQŰy)Yw V.淼-͘YdpC*a&v[bw^+1(I>{UfǍY&FV6GfZQɍu1PJ䝮8뙙roPM$TPtHȒ}qF[$LA R7U> ?QƄѮȰ? G 9s$h <"$nY\V9J-8DD7P`dt,2}KέPiE#*pZaNZg,(9_ g:2`v,yh"*vąZKCM \'RxR*?Ŗ :m]Cof>PKNa:ҽq}i1u*l Pq# R%dpFȳTi~TuYB|eDR%^ FVI{ JtjPz;6q9^ET In:[[؆(qs?1 ` -x |xwdaQq9fdo(78S/Yq>>pK85j-ဨ;]2xԊ}z+M 5#2 c@t<* YD;ي  ã2[E}; 3-a9LEX ;֚i(A).5TZXj6fpg+@<(88Vc; _LBzzi^ zbg^j\}GCN,Z[R%<4"ftw^ &` .ǀPREjA_ƃ$q 6Wa|-4G* =6  +0I#= v;!x4\$mMVh0Xp490} &s)6@M? GeWy])^g E}JN@o\\-@ïҕuYf ]hƣeM &q#LPi,58L2Z)[|a6r𳶇N(4@e{ 1uX.An;Ņ7h㾡B@3p0cƃ"NTXPɾ,|Y9̯49Fc+;^F,\8>R,3l} :ds¥9‹&}0i}\V`ίMa.bf'~M D.LdC\0Ajџxzf:ɱ2q1|,"2NIk:bt-t=7TwM|vǔvF7yz̞5 x}Z~.fr;;à& ʟO.L\62^yZ;Ly,_[ՉEэ λ{W{@;ɡ1&?.kRQB4QmIU_g!/؛)MQ0\D"Ľ%$Fhا!ƑNGb&WtJ.$B=r@Ȼb{7]IH P i0INg"‚,HSkvؽ[ઘjkzh2oPc2=E**B8h&alV@V[*klh6OЙqV,mq◀|yغ*4%I5q9a2uEq PTx,< gҬGuXX14:gqLD) 7>c/m@ M-rYʼo]}ip0nGjI B qS*d2[K;@!T`,a }s37 %֕{X,(Jرe+y{Q-@}P$١g'ʥ+ 7rĽ뷻)`0-r dh=ڣ@Nh?ȣ ەk^uk ^=tBġQĎǧfҵ+jN ?kN]6qu a7-\≚eٻlZ4K\)Q[!eQ$d*l.sT_$2Q6P7_Jso>d47IwnN7y#}#>>$%+g{~6"G gsn\̘քJ1isC:jzWruTa0ȿY7Xϫy1v%!G2.S\kUaA~ʾa/_]䑥>#G'*1Sy$@RMF\9Q*3)KzȆu|UC;0B>|C<23w;'꾧yفQvS֏*+A4|Sctz>zu4\~w6O'3PJwICYŎ^ǏGc=ykYx|/;xOiOM t?^es'B3xA5E!x/qx7&F056td =4|0Ď劉mN7~f _gC,5蔛M{]:W׶nnMU\V|CWj~(׻O6Ej[4&T۞F.4\D]0}l~{$/[]Aפ~euR,sTQ|5iJ 1nݺۣqq95ߑIiTZɤǠ3[VΚFR$((3݄i?0wP#s=l4 O沫p=v15O!68w4A{d.\AJr0v#DR *4.OPKg7R')zt (.pip/_internal/wheel_builder.pykoF~VA!yu @9I= J".iG)of]+p"-wfZjx]TlM%id+!2Ufgy]MZkhˢYV,d~2*y2?+aUS5-i&F#:L(yRT=1i9ϋ<,*✯_L|>`<4VV w˸hNAt- Lעy/sQS9(S`^q1Mυz2k]$(K;-|߱Thn[ԏ4F|bZKQ<8L,|3J=BE A4ObXN JIZMيUv6eǧʠEuSEɘ7Ny&xj)wjn˪q,9vy;h-%a?sp7#w->7!7t.bX&@w1D%!Ts{(| hC>͔H- oo) ٔ}hJ7OĜC0Wmg3zx7XIs^m^eY H jՂ,}Л)3Q/lkpnۓKTCY[Z bqFX.EźG Ipx8!Lnm 3j|]tlQ+ rV|eZJdւK 3)ܣLn e(#ʼ\ݥ%%@Y%xm)(M{Xaj CT=ciFQiEM?uP53vJaoJV қC4&x^uӵgpΖRe())*@rcPL:9XտMIʳP nl} qhD]1s$o:h372> nd@J"EO *MvV4&tN; =LK_4W6Y+#K٬)믄}T׌@CS~$&|%$"#'FT.aʍ"0?0]B1JB{]m\3TjiMQt#Sl" rP6 S3 6 KRB^(ȵ,sw rgby>6iC3Յa-Gw_j 7eְ.2aH@yHQn4ꓧL['D6ەNϴ-@שD}FW $iHLBtCjTwHţw=CUu."7n <+鞆mƧa'.x(ɀAUԃYd=kQ lA Ma2l #;HBM|v~zzn0UAV|HU06(4G7A j&B @jpd &cZ. qZzCMb]*95H1]l"'cjD =4}SpilƼMGFF.EfÝJvrzFeB/%*@`/#̮]G<_BV>= [Ej(G6?i9C=<!3unbg^3u1e="ۃ;tv 3z[b\Q-B?ʤ:ӆVDݐK`1VbYsT) q=1 /|Z8-;P,s_3;hL&5NxWx4F q}dAN-^|#IP|{6;UpxW bM.ņJM w8+g;kX[S2:E ۴Fs;_~ ͡*Ǧ6O΋+~^22O@4pDof>"C_BƝ 5,|GHo~}3?(-zm'~d1"@BJx[)ikNJu8s7[le $[OiPRrbX<-ϝ^wnԢf'BcN)ٸl=gS3ɉ6/dDC8i S@#\طfV/KOདྷ6k-0}V^xGdr6C6zҫ&IsOOj݇S?D?6_D;GPKg7Rw4hpip/_internal/cli/__init__.py%1! {^"E|b>HigFs~Ǡr(nAbb'H0d<潓UC,x6*Ju),4g!n{Eu^0H>>[yPKg7R%#pip/_internal/cli/autocompletion.pyXmo6_$W(` 5A_0 !)2msE/)Y:ml=wܝ...>-ڕ INۚ*ʺkrw$EѲ E...f3oP-oɣmPגؕjWffAz4eU5k? hhL}٬5wfJtJ@X-=*9R v!ulYu"W>_|7n3x>#RC cJAEyWӔ|[[l6[ӍB'F C$N;7T?]5J- { DDvw-t39 V;N աvw0*.tlXM$8^?qUD !2<0c~Uh ۷PH͗_FL5Sq|=_ 'Uw>ΪT ri\F,=TUYÕ\L~j#{1Ա=8ezv,W3HPޔ{ [1p16`0h}c` -y7֧5`}r_g &uP +kRvn#_*" QX#&Y!R H'Ԉ 5vK]Q@4[$eRDhE1!#S8s\¸j,.ql@4 n59ohd[VWFڭ9* Dp**0*+ۖ6 Bx? ƫrk䆜x d4ܜ<ݐ"QaGE!d2c|l)g`E4d_~547D5o9|y!+~2 +]ֱM)2l| j-G>0IkF{2|(Yuc'h%˟WڰCCIRʣD_ z=@ծ&Lsu5m& HݽsVVk 7dX'ޙBAJ,4q[ rѓl:A'v`"-Z).Հ2E5ToH;Ѕh yx$-l܏N¦ρ@5$9#Kw4KC [3L|,2gҚ,y$9Jc:yu+'nYaᾸ8B/2P3fŠCkvXu7l6wc,LpmVTRg~i`aAFzQnm+x {:T6P8:=SeI9'~X>2Yor_.{G6Pϳ5~~iBr4dOrC;(-GDok:8J u&g{5fHgUhD%&_lԹG2{?^7:fɳfbN^6=%?}fyx}".Ld.57ۮHu5hf c K/T$5] :w< <6 rOf^l lFk1f{ Uʛ)C\T﷯oP e,${yBĚq†bZ"8uK~0 WpW6[sWC ߍkg;OVi0y&3| 7HT$τ6's+u% 7@s1K ğzanľr3̟S$ &;*A3洓^U3'L"!?p^+yIáo$q PKg7RcC y$!pip/_internal/cli/base_command.pyZm6_AxqܳE/i&^cM/hYRIi!EYmz3X&3yyfHm߿ZtI˜k=bDse"tV*ݲ XyD0R3i\"G,S2AL^Z&O?LF,ϸҢSVںz_M劇bϥQ$Q|-u()Tc?# 4!5 v.r}+)f감g̈=d7bŋ8ߋ8{lN9 "s𹽿ûa&هُfë7n{݌z.%S(xTZDz,**;2M| bqmx&]>B[ss%eZBэTDk?!v!^@ b[F %ݞkw TY$NYy.sNJ:fkJ#P?tz5BrK4k K7Z\j{a!a6ξ;QHjU$p:(H0\Yu41`;,q0U7؈l-,Ò/1z,0Djg⾴M!^/@ 8(SeףjL*܄ߘ1/ cq`K1@Om&3dP5bG?Pyk4i"B]̃"^!·|IJQ@̃3!V"V02+Ê΢kyF30{\1jP`~˯_@m [VY+yP`1OdbX9tkͶ J h:=(~L,HG_͉қ+e]t4﫯* [ڨr.?2SEe`h7iG ee%gyoFSUK1hr|+QWPy&spZ$ UCCtpy/3\$ԋ<"ǧUs%ZsY /ƥ>gR_p0K KW ܠvKc}fG5s*Qm&`dD˕`f1^ЙngsuZH}ZTn$` NRBgEBzx/Qn݇WN?34ƛP4bk`)Svo(NdR @~2.w>']Lw%6 j'v>cK,,ɞ0tBGybJiY[o? aR(_4,shiqlN_PQuueKBU˞ F"M&Y7|:fwt6X >AŠxBnn,wŻbz7Lw۰S`㖆J)db5NS!4581V, É,yķjj]*!up]hrQVS£lsZ1umnZlOӥI;"9*RqDz6,DZ \g\ԡC& z@tZKx9 eQ'3kt?PH _޵ 9sj+6W7&'ڈO!-DX(!0"JG= M ?h6bN#_WȘzHg1" y+j8q~:M&xy> { I2BNUC`0~#' oF~G#rlz:zaOlv~3?_ܾ㙕KK#WktJжⴤkce,PCb//CuA?7

OLHkb!i.M"˱mǼh(ҼnIFf%׃%Y{Vɤ.r1i~zLH$LRP̓WVFfy2eRղD곸k97q1M^l͠LjĞGzu#g|YYV<@<@38y^5­xJ|b -1@I$fSv U鼙Iv$`cn"]EՈdV٦1 ֟yRLЬiҬ 84Ŭ(2n=x˫c&A~1o!@65S`m?UT&=L8$@:<'YOZ]5yFeUW੻z8pD輪GVOW$j,} B#EN Ò?3~w/Gr{ymTUmVTzxIz%\o޿{=~OOlK\ ӏk 9w.޽]<5K|TImw8u2PZaiLـ=bDXȗ齋`0($e7(/R!XG>6cա[ %n`b搀7jLXZ.-ckbS.ЎpysNz;Ftn%&-zJh-' Z?GV<&L3]4M5 X2jCZ "`OTGwzIXvi&G #|4Y'U*ȴ6R1 YPl` K-]D"T/&2Dz >QTP02 [Qh`hYMٳ9k5YAFqC !ӜUzS7WfIVQW.p5!|*@YhYѢѫL.. ɴ RqAѺ,6m{5*=Oj$d%{м$py/pG(c`AUv/JGgEX X %RAM5ԾJ4)>ԥt8g5-S@7 4`mrpm WEIYk<_G 7bzdT?l^h>ɄEqEd]C mc$= _ڀdJg2ɋ LObF;0a8!q3mZ4web !%-(7QM[>ƹEZM!1: m:ʭw;F8(ɑi"BBV1HJ[Dcx@58`a4%L&V ]lv:a(2-!ذ8\ăU?Ev[nT#a3#<ϼ烕  0}'+0@e8V\ݜHsǓzUH;Ŧ)7MdB"m=}1<#_>J4)Qx̦ T>HͼOeEp ~!.X=58FD cm1γ;ET8%"K,XRKGɱc mO"˅,Ob8/*`WY :(_N09WW`cTۅC>^=5> zdta8&rUsiRd` M<p4 i̧- Dj0@Pv @x'j7i4NIg A#8dfR_:MЉ2Y,q/!ZI (} 0SG&s~&a8$ |Դam˵y vi 04D[xr;z|XTa5jgfMW7űdv!)ފWtY%Ŗ[80'&GûZ6)x3w.|&uo_vQB_󴓞Ӷ cWc1LGO߳xpx3LF3Z<2fKy'r&"bٖSYKgtHqv*f|Ǽ=A5ٶ4šd z',J=H\3MsF'uv4p(WXj5/6 >5Đ!YQ|FL,?LA A钴d `鈒b$ΗTHXATŪYgG(* hY(%|>,h | .t!!IU*:!XB [N?'<1/qb,:0g7l0S1!&{ug5Y΁xpE0KK %;Ft"`2}} cR},D9*//pQ ~%ҦCE @­}zn9z:W/ :dPS${00">Wػ5A:Og1*+Wy!`!;C?u ܁#I&Q?` uד 5}>4Jx.8O %FL|\Rh# ǫ]Eub:S] r>:q&oa2:yLf5~ؤVC*}A堨d>p>4bfs:yK;7 sgh{VL?GGRl&n#1۸y6^d!hML| x,Ds0{3$ uz]sн!q}$ZAE+3-#JQ둮3S~eA hNzһxxYAByABy$qhjIt.eX&&+mcAvt#|81;ƨՁpƛIf7v>jj!=zĵN42AL1jrJN uB3nBp3#ƹOcL ( Ud` (Gڧϝ;cҟ3N #XT(e `u6<$:ي%@;9v8VZUB_݅(No#ޒMd\%x =2n xy&qʎb4SԺ9nv:(&Щj ΝߺcD FۼS&wxm3۱pؔCWz`Oַ/@PPCMDLČ%EQ(8 GuBM4FraR7yL_nbN<`EGKt7PR-Lts*Cݝ6씱+<M@+&x} ҆ lNmg7 7*q/189у~:XWz9NRZ-v~wo&6`I6ggfOk!=zu+2YҜ>8YO'KS[owR N캄⥪si LDV wa¯PFxg*zƦ|f)dE.3B%jJ/Jjc6 `cu{UWGt㎎OTy6Xk߿M l?{@GaZPZ ԑ w*PHx ecGJX! 0l.MamcD,;Fh9f6| ?,c6,I-=`%OԴFnE/u)@ma,WuszṰBRNH>UKD@a4JܻB k*-{ ^7[6͈=-}jk Ε4uo lq5.)jw tG},N4+a}F}MG Yduljw ()h7Jϑ~U=N?%AEv@;@) 'G<&1[_!uj']^j*j]X6i$x4 z3yQgO ou\VkYpB\ݣiʈL|̹#zϸn=Ņ]u~C%lҁsa19b  6";poQkF)T{095g˩9ryq{oeW){}3s"4 .gH>ӄs<1Pn|7xhSQמL3twJg"ښ{=mje1rR1׊4C1{LK?DcwbØ;>e[IJ̙^a-ikvqњa!}DŽ*IeCdXtmZVx&,6 G*fV):״靂xo2&va4ˊ.%-fXgL;.F?ԓ=j{67tb->=l)Њ6։ߐL{ 8lK3y̷VC FƁ?nD_JCG'{F뢾CƂw]/k [wercLJ0>j3-cS,-1?[`*-Ss,)(l&ZI7R.(Q{t!\ҷIauɁW_vO<AƧ%G;AL&GؙWz4<Ԧd5fjgX="}29b|vL4V@Uد NK΄o;)* ,7~hCHSR-eT]cHba17qI; Ǝ9A|kظIJ<}Fּ8Hg:/([ZV2ߌ7|Dpxȓ 쾘.{zU`8p ruUL] !Q2dJ Z}oA>}f7ލ5cX+j˃Y@᩻}l>h\Dϋ$^ ИD3L^%_}vy |kAN;0I` t],qF1W yH.yw{7XƆFBcA'kjrŰ3qԹ$pӐ]*0¿.߱@gcwn,8,ɝ 3_$ 7 )Hu\^;\VVzֵZGYZahm-&/;{E-}?9fdr C \_)09Dg\N3^%0ZzsWX.ٛK=V_rpm/;\46Ѻ`!#1ocXi@;Fq?XH+ Nպ~r`˒ХSjg%j?/qݧ̻Ny0P)OLTS,8RX w^f'ɽ> lߩ+~]fjf/`t}{vε%)^|9sc%=uv9~'{ү m_t|R}[I:B^5S.Z_0 PKg7RǓSv$pip/_internal/cli/command_context.pySj0}WP meT6:i͹s΍9Nаלm0 T-(2 +XT4rff{5M~<4e낉X,_d<(GOl=FTed,:<7_Z.vx:ވģ8QŨГXU#N0u~.KЃ ZRv3h F*S yr[|ฑy/CHNs+{z J %ߵ-~g˟U.^73_D}p|X1e.WTTyeى cá'$ ($O⫏aK(/dԖ0=G?r_zx˭N0l;: ?B<{i:{,o䃃"ךâmA".kɇFM8Re+eV58\dxI{k$(ZHΦagg,a?R32g>x]Ս)^n]A''9)8 EjЀ[2KOr l{;F{-5$]N:5jUR~B$\'cw &b!)IK>3 #ǥn b1gYs8yzyHeJm" gǞkYY\MG=?ȭU K2 BzIQg, c}+gj~w$3gRKO V,߇闢'[ͨy"82|omTxX%zVYŴ;b nBrAn8 CVL(7Uj~S)I&.~$&hpkiNz؇ٕV/sAV3̳3όy[ Na/F!s0BǔFa2 {%x5Z&Rp]ʦle.䣳𹫘Y/~{+U MC\T4)h .* ޗ8p97Jɓ{ÅKasO&!yd|9t#/ޜU||yyq'5b695{W}'0`B.,2mt1!L!tO0aN1o )_|8 tN$s^Q]tTI54{<;_kVc[Wmdv(YU7$b0R[&4.<^ZddղѨfbѲ"oz\^p˗ӥsVqͮê`qF r&آbZ+U?qְ[WJ]00!y}mLV%\g =ҠY? h\XUK8ш~/ae{:c TgB8IhƧL7ژ|;z+y/ޏ˯atW[O];nݪ&Cm~) aT ;M}j0{:q;HiOHНyNZt0hM^WW,( idM7}YC%Er$eo~R8}=}lz}R(~&Fbk Bʗi ź#tFj:ﻴٌrvR1}3m*b)j2ɓ)|6PL5v ﹙uD }s]@ۭqJw+Խx:~DٜX|C_,Y-4eYh@=X2 k%#kt6WU9BNi˧8zj$R- 9ߌvZ*FDHOb(~Z_lEۊ[H-ibhrňdqBaPy=HVñ?nHERgC=kU?VRUvOU~Ԅ^)UɉonG_:*Q;}+io9yJ(-uy_V7k,k!_}3.^2 h+ ɂh[-/zPU-ƏoݿV>|x!Qt[$5Zs~WR d%jAЎ TݿUIZWt 7TiνJƌUh899[y/_X$j{ŖL5t9!$=L>kA3+`n=~m46xuU劵5ʝO>f/7? J+Ж:p[#p גOiYفUHTKٷ Yb7ző|3nzX#$h\`RYWn dGp;ݞ@EsX ۃ>w| sQ{j=TB bcHhא8d$mxCDі⥍QkXV6$ζx3{sxN4 p~n~2.븸=ʜŬ&]%{ur-UW~"qV:\ =y;\:]5S m_l_]BT{(wT"8s,+i/= (ٙ9ޙ,iodO]>(c|lL+"m+o,>p ^i$ D2$}D \?5.TGs{5Y 8-D *F B%(h ''ZBINQTAM3ȁ.7>-b- q]h  sN-kD=F=SHn]@xH-slV<sјiK|-M.4gx>OL(6RS:9@8g˓.]ZOrS씑!Qk7.gg!0|vox9Oʆd? n#ҡ*ƴ ;NNAYdoC{ d۸@>ք![+̡!L_J8OS,'Xܩ&كT|D7ms6j-Ќg6Kb{ gY ڂM hN\<JhfGP7->~x-W4jTQŚH! 9\#甼n*Y[ʔp߰r^5Z l~t$Ó=;(LkB]KLXZ'fp$;BpCþRI1ΜxsPu NKg܍Jv/R9hļU#>f}V3obC*fh)F3lGK(G h$gm 8X#f\6$Н.Fb3>Dg=BcCb˻Kl8yYd|iO7oޏi]zJ+GRY}2!uu7\m8?ׅ1Np( e+?ZhYvULfj25;1H.+XjwOftᒸ&fC%5Fp! m8e+XTgXuDm֕ ԂMQf5XY&V)Bh6tewD*y,kL]+h 2jy R)y/bsjv \fZ,n># 'mcl%WFJ+YN<%|,xTJ0( M հK'k$02&3e9#j3)W$b1gxGx #IW(Rp jX%RvB3@BBtl.GvİK)C.R\^hw1cPX0f wX 1WLq &](ɏg!+kY-=o5cRD ; %sLzV/!z [vOL +3MtIJ@CMݘWlE#%/f+vePQ`s3 k FqQð]0Ck5Eq-<*PO _7^Aj[~ȑgrA >3gϱь63Ux ua\Rn5|pB{[lP80PowB)aļis ӭQ^"x^=U<%f8 k+=b1j0g-zq탁^d3~[!.[/ B~d9 Q=_ D#gB '|<}~es3gZ{nN3K2/k Av6i_ Utt7c_)'PKg7Rd-,0 #"pip/_internal/cli/progress_bars.pyZoF]BA1Uh'AԀIkA36,wiI-7CGWDrgv2R-d2LUɄeJRy'T`oH#JT уk9y.~|;f*3ɂi&ʱ_:pt,ɝSUb-;TRhOyW2d>?e mo]I)"7<^y.j~W-%+#3'jYpֿ_/| $R{R'h%7- ̦hˇ&?U0KDs$g3VmpSDy{f3')v$wvwddFV&魙2NdmՑN-JF(Q(rBʗv^g2-vV44L^JxΞf~ut#] \C/5># C DQ}ϥ^"@Jn݊T؇=b8oɤXV!3SMY E2,Dt,=` *5lF vN[r)3^֖69ౠXF M+Gw0>r0{?;Dhg$f/q.KScSDzϞg)s|lG|AeȄƑ>TVyX Qf8ytg:2YbXpLE7(o .~@9eNU^wi*F6#7!O|Ƣ̳RtS#AE F9]ǵ(if2C^Q>]ѯRFܸ^vtm& }/BD I]HNBgm{laLOjJ]QALGM9HB={&SUpnTmFq}PU6*ǁҽo*`74 .pG SqXlZy޿C:-`͆t}9n?~w[v/ cT?Qz+ _Ֆ؉Fa٨Cu=ixeM-6>̦6@hDzAEx&$z7}b.ė~)D4ǻ);篖VCR1;#=\87S  c'(OLVVsK>,9\S.[7R Y;ODaM rm6PgŖFzsﳣYoGj>#ݦS!5֑?WHcO9=sߔ`Z-LRhpLE58Bi\]^]0:!-~vPI/fWʟbqb7`W<(yۃJ7l' uti5kG^-fy [(MMugU ?u퐸y ڣ;Qr GWBi8uH۳":z\Umؑ1X\1кP=I[ɟoA0 {{55M{rv*Ipɭe2tpf?C-H[7/UZe=)㺒LU;ܵKg Maz 'z\giF8}4gj3KQZ=F3aLs٧>q64 2Ȇ#HGίzUPpP ez#l7ԅwgBHm.CiIyڤ2ni"͚Ke[MaӱAO=8|JM|񲯆&plM4!>_('zvX"{xh׿k|^/VJ_\C:m_SVn踔èxg~s'X֕7D77ֶ mG|IqᄑlNhMk 0%j <K>o;Yr tJ4B w(),A}7#<PKg7R˟G@ pip/_internal/cli/req_command.py[_6 [nIl[A m+K*)w!)&[gHt:=+:brOY'Jq|,e.E+%"Lv];Q@Sؾ̚Dr|0ūD&5/TI}/Ŋgز-2vɖ'K&UЦ8YS*F/!bU8Iĕv&ocĆK m) ՄQYq@= .N+RM/% UZ6(vԳ T8*FN9__#`gxo5p@#ؐȹYyPİBl @u떁bz}% [ 1ij]}g m| ( mZ C^~{0 SqեZ?'yj=<+ @GR$_#i3/;3|2܀Nquwv%=ip`I_[cPKNk+f*C2W7a,\=)26 ~P-Q=.IS{J@5=4W< 905萆*خ+uVԻfKP 5&4d`z"EȖװCEO H+!_!ŞC0Aw`{pzcP2[A~ `x *Y٠kI-t^fh5Xů(=MC˱ B^s V9ԼlYޮ4lSb40zSG58 h r 0Ew~+!Xk[Q`ܦN߾} ~\M`Bl@-kZ]î}_~ɼCmϾ1>B Tm0'|'xp>ևS"Lo;s~&.hȢ2RڞKyg"M31aTܭ4vD/P5eSơP:H کabhrZQ;H @@%!J${U*U(>-,ޙI%x]ۺa%Ƅxuex 6Т<5ZB,Kh&KnC]⢒J9咏 j11Ni(?;鉣tB9 EJOU1 p+[~"Qs[pPM"rH X7;۠LdZ;r7SM…!#Ͼ}y_]<&zwy (ozm.ٟ[ ǞShm<)wŀOi1+5/`(6,-?#b ?ƒi rP| *b-6ЯiHv I[+]#D󮂖#"u9Aw0CD3.#p'ge6`0)X4 |cg oTHڠCxAh*xv_,OА nxx*C 1a0Nm^bv1et:ad=DjFlvyd`Q3XQ %ey9 z&m}&)/J"zS.@yu-R Vo;s!#?k+xq`?Xbymv D_CfA-E mNlu%1Je/:RLto\q׿=uTijsXb=] c +W_qIE}wBm KрAcv?x=&`t9CĜMcF^C2{"kMO Yk#?!`²;ۃCEg %R&l}CҲ-*0jSAOkdpGQR+:i%]6Xs$t ٭x?!hO\_9?ћ5ݫֆYxF?lG`HroG=~nAgzFI678 ڞҷCNNرè<{t#,@^p|  ς{{m_rvXkSuԽnGay<{F%$]$ֱV8ۂylteN _K{g␠;4$C|v34lxu8ٷ v`V Lz 0B؋ $뺩~&~n,Zc{BiwPeJ+3JwGN'zǁ#k{_ԏߕ 7Kj? ('~:~gܠd13nF_Ho GǙHkLtvf>Pkxn01Np>,{߁:mpkk<^'Jiϴq E^`{vrF\+k Yӱh;}fJT,/k}M5 OdUZVtASEӶinjEu +X^lߵ{9zDž6q2k9G}#gk]5tXuds> 瓆͑R<'BFdYI/) g!h)WGq_/mJ@XS0ުOMңZHSvCkLU뤨; {lw_w&?8h 9*%o (oCR\}V FyNjG T`%t 7#עHm=SJCJWloaVmϓw;-wPKg7R!8pip/_internal/cli/spinners.pyXk_A8&i`YLF6b'A Zmv(R!qR%ˏdA"/܇V,MWHS&XUy'уAȌ'Y^Xor͂2;^b0XRI$tnlRZ¹FW/nӗo߽Ww{TB J*/K2S7 /ϓGȅܓg]9w.}雷|ܴ:|=` \9&l ;V²ƃ zFiyLq|sRp312̏kYX1jR@\јM_betK~^Jpo5v ϕm p:8rd8oSL-3/D4s7cg[>MV" ɞWن[w3{pWz2J&sV9͜@蘖8>[M^9&s7ϓ?Ho+e?vY2Hߗ`-.>P0sS۸Oގ%{,x#3"/rbۯ/g-$ +sp81!{և1b>]$lq+sm5:30i{>蜿@nxZ[xؒg% o&„jb[nD+'aQ9=a!}{6SpݒyC՛㎢ %{7I0ΖG'u yLeˌqg([XOP̥" ]ݥn#wQ5]U@,Gpo򭭐\@˫bvYOe[\PG)F %` R)VZhJ3YƩFFg m>{b#ռRHހ!# (\dً1%h/)RXS@ԬeE<9=RzNb>Ryٙq6d!vABiH~0zeF5 '+ZljOSQ>եւ] ]p?zL4n4rQ ݣ& }3xn:V|i!#so)܄1`By=k#_,a+oG$,RP)EGtGGތSY+څf03TM j -c ^כP6s]&lY'q*B]TlnD$ؽB T|<[q=P!Sn }`%!0q;AJ+k-2Ut"0dh Z&v'k j956^zzx0 ݵ'cfJ:L᭩\DUkS&JϾ6mU#͒·GǤBct݆yr\=Bgqj?D#%" Ш7,@ *b01sZ~8̅kIr*cyvoM_zB mm}l" d"ճbf Xވ&aUA>L "V\5J ^xKw=_]rWY)˙tn_>4!^3(lr2A 2L9PKg7R۬w}!pip/_internal/cli/status_codes.py=A 0EsA[.j1Xg$Ђ`74+G)u|ҫQ~s^m8Gn-0n(@.p7Hz9Z:-Anv$.'עi PKg7RB "pip/_internal/commands/__init__.pyWmo6_Ad2lȀ.]`k"Z,"T<9rZhnX$wx[ Z-JVjK,p.y~RfG*c6*FN4Ic4F.5sػ4vJi9:۷d̡k;Q?)go ׅKR!h#|PR4MXGIRtli[QJH=&xIj0JB3n4;6H#+58h`Mڇ8$q/;?oU4܍_M $-W(U-Oƅ\IvDl m8ovFri{K;,q3ʂe*5ܧbgIKO_:- Ȟy#7fZv2K Ռwk{zz<l Y³BY>XIπHǺFNymt[<xT̬+O30״y?2(Vk*g]≧bi1c{؛YjnOKI_;[(:1ıBoMO۠Qxb8oK-aYc%wRE-KA&t?gYq.rOB;E&zX1f  %Vwv:ѳvzA 9;Cb_e{% .jMڡJ[Io6om2ItOԇ+,@YdG^*Sz+[NӭBe)|4Rlth:E|n|۶n|ߏXY;&_|ͲHX&>ÄF1gnI|G*D>S>yYːrb4!!ˀV9W(pB0)j pa@V7fMDY0"fLaэG^!IYçnI7RMn;. ۚ?c6hQS0cPhבnaW\*'0X%R) 03ptDqr3KpDj)_5w< w-s]ҙdN8Qi# <6 mMTYgr_XT?bh_eD'f&Eo L$g_ZĜ^M o7.h{_@PuqϠ`Km*{emaRhlw]$ Q QUJ(zeNSǰPО]+UĒ`ɄJnA˞D~1?hK+Zg==ǡ ReFK a'X5f_uxf.!uQȃww`76Ӣ*)˂uP+@luϊ!^ɕ2ppS>rsܒ7HhF=rTL j#sǧsPK.XUBs)W7*c/]J,A>6|'7: vM V==Á:Q' 19OZ:MKzA:Niz;+,^c H'M躯pPõS s~uq?XJTXmZj O\s4ZeU<?5lUgSezN۪7uQ(0^j\x=[ܵPz>SA%@I 8iX3h䲚ntotn?bkZ5^?>$x jezÚv!& !+A*Ţ9(Jh'':&¿dO-LÙ=|i $|A+uZ Ujgñ j&@^w zzzr6VG{Hc}0+Q Po}b8ro(ʷs`__( D``I1POL]PKg7RhˮUpip/_internal/commands/check.pyUk0(}.t0Lƺl$PB0svؒ'-wK2Dݽ숪VBBȂ\ jQǩe"rit?A1ڡ 2CWKHUV(ila@ hGiͳ/05hX#蟧.5e%e5V&Ɇ2/ZP"غXYϧ42Oˇ3cOp7h۳ M%0MCD~|Jjk\*=As$ ccYɍշ).l6{D-#&A=Fnԉme&ĄdmP0ItЮZD5p3F0`G_Guaz:nszNfeM6!H<-cR!BC\"лA }x+ Tfm+RQIJ%ZMLphK?NOrpvێhn^d{Ɉg >hy|6W,ndJ*fhmҶn GtWR芖L~j'?=Sme/48 x2[(ju@7ԅF PKg7Rrp  $pip/_internal/commands/completion.pyVmoFί"=hRmٖ%"8ۮ.ٖ{g0on3<3;L ~˜R.!x)%o(VT|< #V\&$`nȨf$Q;)>ϩ\RDDL)\R& a%&x>/-M֕ŝ?}:/ogoj|b{l.f2 ˉ@~\Mzzs5x+D4Ppᢶl#0jI0yrjX\7/=````rq0 #d1 +[U>q%~ ؁2¡2' i]Ius`9)BE>V ,.-N5U2#҄npk E8]v)r/dGByE+m tk(zl6 f !m*K:RJj;ÇDJbՇgCUj]VF|,śu |4ڲ@⬨)+<38o4` R[R%L& ,RO&̚$ NCӐ$!cuhOeqqʍ dKpxT:BZ!W`G޲njS)ɡLAUD>*Z)[ǖ04y&~dd4fM89gpYkxE&˟J D I'URaF/ au>  40Pve I4% 9ͷʏz!N.!d9Tu48CFgcQYMh'W4fbTި(s/?^~#!!%kt }& ,id#׷ NSprI$sҋk"ws ('?&"?Np&a C)\Lm:_y2)VL;V6.t!5!QS}2C.QtgbvJc -ʎW )ʆ킠$id=!W%T} fvw` "eLI#/b:ԃXg/#F5Bp?0.!%YWB}I주Cwe1{Fd)QV匿G/n7^(\@^e.bn&ZD = i@}G]{M?]Un:nyY8X)h>Ml=)NzӁk+XGU WS@hxPB"EJs7)8#4"MQ@N utbN+;dqO3kf&(Xe}ez_!|c*$*2$uaq̳yFavMQhyŢbBUp*O;B)pw+)~[>{`#ef'Yvz;;\Ɉe3 fh-o%K<ɭQgL|ݚ~%VOϑ 2%ӳ.'@ Aց?TTstg%5 ;j7? ɡd8N&Z(TOza萎rpO L9mN =~s3j.)]z-W>rMsC"SZ n+V*ĥcJ ߬!>hU}ï`)!L8YOBlY'Fl{ebLeX`$"K'Sڲ=TXX,j!z'ڟƊ9zrBrmh |-țB)Fk}B^lEb:h-lʆ!|;⁻LO’AvL3cTD+dWbI\hضR#6 ]-qrFczot? > !Jq簇'C;d,_L%:,TW6l P<X d#<*.Qd|bC|H y Ot+yjDuQh\>18߈'( )a-ugy{; @.ٔJ@fnJVv$˽%,8\CirgIzU+Q"g>b`+`T%w]UŴ5fk@As- qyVxM?\>!")_MXez4D'9QB6[jEHKA!Y<|PfP]mk(%;+7o}DɇYTb(ž|!ũ~I JDq`#䦃m*V•z&(A2TXnxS$fq럭?GRcP,0dg  Q_[9H-"fV`̪JQh rCt61+jɾe Id7\r!i7G{Knn ? Qq{,Fg[|녲Zi`FaWxؽd|0D%:~yr^#k4n5`.+' R|'aP=!̍.[Z=ɞVߜ )a?"#b?O8Ѕ;u. T2hG!_9߱=ڒ|fZ7oBdq^ަҊAT]u;ɴ)7'7!B:pƜ |ϟWbyKr W2Ûa::ʑO* CEdV0)IݍEqǹ}!duQn8h6Oc%^Q;s;s0j yL.DY7jN?s'0O-"CGk-ccw픋C %C=_y)s?ZH+]\ce;mc_9Vɾ߮ 8}'`Q}k¼Wlt/A0)OǑGZ(W; 9*D",S3iKG(BbYoKF'uʆ|CX&jۃVe 8U=TDPc-TBQr$ ux^f#S89Uopq&0Jm%<|{5;Mq*iwDX$ #ٍ_7 ~x; áC2ǽ_w<]_^]닳O nPBI2Dq/+*%8&og,/@1ٹSsLg!^S&ɀ?#'PKg7Rs.7"pip/_internal/commands/download.pyXmo6_Ax(,}U0 ^.(@,-,6SH`[ޝ+YJ4 (%2=/{!{^GJyS^Pq* (-3Y.+}0(5Lк5N*JSY Ju!4>%Jf2}}vwv{PUYM sÅKӁ*mq!T%_53AqlLݘ $痨Kjj`kk47ou?y|ArRт5Sh@OF%Sk.b%zXiM^ʇJH6ͼY.w` 5ZѨV %o74_7khgCkHyAgp}Kj% Qb|ZL+Y*A/-ugIhV#W9aYF{H{6"9d{End㒥IѲxM2N S X}\5\d6XIA}~{!wLWL2J rP2k^߅@ 8T ;vtı`nL z/?z!sZmli/ʻ,M2-uA B%+&e[`Q'a_eA `y.#X"mdoA!q6Xz.w@w? N4B.[pLwO&dܰet2W e:hTEr6>ێbk@vܽ[{#ufl6>yݧYJ Hmp8b8<'=qgw}~iF JxtܺSb[ (%#D7gĻ?S%Bcx1JHnK)~8&r s#!Bnpݺ?ZRby4֯.,efG : B1[&&zlG. dLI2Wz2)+Ǫ|p(jpзmh`4oݵk7c%3틢@QP#.oeu 8MD*kn4Ÿ["=DiۻUE*ցMPKg7R6^ pip/_internal/commands/freeze.pyW[o6~ׯ < ;[07vi,,hBI%͊R[4CbtsUdIҴM M ++ ;-ym mA;XLP87yƬeexG5,K*r/mhCMQ(E/ۓ9 JjPJ%;urNZV .iN6 O5[]Z]ghDrdΚW0F#f*&^O?Nogg^˓7IB"\P+#%3maBӭoѷ >u0U#5#}joHZS_lt/ ]m1r!'ͮކ]LA hD7XEFQ(0֨ fZH*wݏZ ̿ !?VJeW>E٣|6O0QQZnɡ 4Vg--Wr&t$cyYQuD}µ\{` I>#YIH D>.hMry5/`F2U1R6<Ǡ# kxX gaĬd,ft?LAv0֘ %:*hX :8}+ExDL\lt}h_|x;%BY Ʋe[\-Hp Rb~;.ˌYH( m$/q.yDN)0)LM9 jrG9@#$B6mfozڑSNb1C~( ~5R dͮ5ƒ96!Z>?_$nDSb8 fMhl8ᚏCc3kk. MoD'1~9!g&}qeJaz'x۱*}=硰Tl2tWgSpCo6h,Czn6m8pP]cxpC;&ZW1,uNڬIoێLFz Kޢw:K_$m^ojq;&Z5Qˏ9{zz!Eϲ봫^<vaKl^VKZ3FX' ƂX`U2}괨Z]*Za7KW+eҁ] rr[9/6=w,1EU |MWcCQT0n⋵F!X31^E] 2T`)(b||aK.mJ]%8 E8T1K5d99WeoB"s Dxd) 9tB_d??gfIB=:ܰVK~!C&=nJ) l9qo*aH:hrg^f=Q?A Gx1,OPKg7R +*pip/_internal/commands/help.pyuSۊ0}W YȚ>/} P_D!Ջ,Ϝ3gFQ 0Vz 28[j$)<-t΄th$]--vi,v;o T |XAm %e!Q Y̗/lbߞ˧$w Xv=S<ᳰdSdf>'j (\]|.ͮ%vwiEӷ9V.2D,QguSyV:eΪ$/[Ϋ |lZ}s)ZL4L}v.koyݶ4oﳺН.{,mW<(e]/Z "oqs"lۦ]75 У3FQ8 }RWm;Cph\Nʼ R{% S] č!ځu*L6&Ow06e^t^Ƕup p_\w_0ZC9)@uڦ|æMQnJ3 dE&dHhA{%FU$x0L|B]q|nc'JIc9qf {)Cy aq4{}!kW+hW jPa@_'ltx~0Y-лn:0*?'GE?4nemvYJ0`5d*>j`1䇓8ovx\s^_rz-afL1a gEm@)pu@Q4}.vhLܡwK{T{gUg ^_]}W?Ɓ?!PQvwxMޣSF̓.ߦ߼~w6=NDo+6m- s~Rm԰*;d-lc[emjְLKm(=^=7AW} TzٹOMA 0 ,Fp6>8$[ 77dܰXlBFCu/RzG$;zO`hJf;*; +֋aW!p{{[򁟗2.¸A0F<$9R߁7YEU4?U˙(?vq h?b5Y73F6+9YNz5p_qd]EccAoqPg*_-'Vߠ_ f+OsסX*UgT^4|J8U^L|9 徠zqr;BUbWc\RIVF A* / ? [=bI BSIRgc(,||$H l1Ivj|@`e}7<2])2^;ꄸbÈZBv++/0sn߷*d%Cwwey`^I$GX -Q9fĒ#tK^Jԗ)qP@C؎ ~0fzޕozbf{ЩuQ 0p]^7g-30j@o-h1W_Z 쒣H*$zۦH{!݉c:C_8*'+-'̎"vji )X1 !&Hcs7pƝ``jجzPE$=aA݁=HdpcQQa4I WW RƂ`-XԔu<=ٱ"gt$O# Op h@fa ($* ۶Mŝ -^otAx8!7c,s,֟60f 7lcJ-o QΡ4kA+隝6.Q4#.GIWmk En F=6}hQXBǬ~+SnCmꙣru^kuիl ڰJ}3k$ڧɱh- GC@\_ l؂-~=_VMb)B4mW[}0"u:Hg-ihyH|*מ lE^شw$9E{ǻء|B')[|+}7ɺiv%=Ģ5Ը85,YiU0:x]%ӑ5&~bAmHq7sbfbqO,n."Hfd;\1E`c;LHOPa*cǏ9҇-[bܔT[9ƌdI^}XgYSsP;vJfpx;xBGZk0!  =zžH:ӆM^ v^'Aow){.Վ,h 3-F\s5T [6 OPv~Fʪt3&H`Kwȧ>Oϱ!q88,T ݣXi)xloZ )ǜit[d(ă.:H.`ybvotAOιY:=Nn4g؂v PNzߪfᷓOvEe^#|4qmk/b>txn3ʞ cZg,LӁ0(A^^.<*+l&0oexv[@KX0C`/h;qAħ`ϗ_P?ʤ<#"iU@9Z (h0R0gޯWx%½.a!@ 9[I?%dǣd031XD/EUw'?0A@yC4:nJUk!g(#Xt wN7S>*ZG›^`I+s l=ucDR$Lc[Th}LS*Y j]ncúbtdgXp0A~;m$s-V:Jrcv%UKqȸ:*8gۮۉ[p:Wwv]vϨ8 ͯ\ P$:-mJߩ:e!zk![f4sL< 츄6se?] hwI kK+vȀ3"[;ԡSeO\').$Bk Hɰ@'eK57_"I nRF2{ ;~fRf`mϋZl"+{.a7\9 @@E=/tT#LGg6uO1gRÒ(M\2z5$EwP"ÛK@4 [J9x{; c2ٛ ɚte[;W}: 5UgbE@uD>s/ '5q2*́KuYa|/<,Y0wVM%k3u /톳0fKj&J֨1-2mD=VeG?X)ǫa q착$ 7J~WS" 0lʸ`uyh2'T.x1Œ-MJTC)0h y̧SZCl̖lQ2lAkȴIyq=4NA:jҠh8E^ZF-IģmM#Q*G@(LZzRY5\nP4ȡ>)JDJ  h:]8SfFTcSWme}Lԣln .Bbubk#߸0ΝY *QwoC@MҾ],R5s`2uT 6jwH(uCC] KC7WɇK:g2k{)mv5[_K ^x`I]يv'y! _۷o/- &+nqho30ؑjWQcה|68RU|z+rMP4l^ƙXwAoh-J*;@Xf̔"D/]jsgYo 8ZZ^v 55$g%XL +%ZqǙ6`Cq-}۪Pqdx}N `de#-1qGT ˊ"58V~ɢ%xd AU<Y\ԋNQ' "?-00:f`Ye,H{ɄvЮikj?P j30OUҲγk-7qlDhwvb۲^g%ܱYUnl2bpep).'6Y6wUyd:8 ^@P(2.Z~ u_SE# njgg`ddXXTFKI`MLHM(G >PЎWDR $`Nie`#j:zJ4Q 6~y-%Ky;=e$`i [h+6Q1Ckg ifHkV.+ Ĥ¡DP8df.GmRX`0Czq?ݞ amtP?ڞZ@~$9v(78rki M,e1=,cCnԷYChƄE'[]vK-@{N=_H&4(sP#ʺ=Q<X@lH(Ӓnm0Zv O1gmy5:&Z~I{Tux+r)ؚdvl]i:`=+\ 4E󫇅Q/T!nC"?&w$fae_Ӿ1a z=<f-!kKh-qeR_PKg7R/U pip/_internal/commands/search.pyXoFb Rhn޶PbBi(9a_*8s垤V`iJ*",ZUf*JY>HPL4O4BYb$XX0YKȋ%TKnMN/?ܞtHb1&=fU{.D)8+ /n>L=kbly^=4r[Rs H%{ѦDs ,{.3_ӚK%PUU`/כ_SwWW YM0xԲR&eҼk0gcrZ;>q -IxՎؔb?qEv8E.Q7;OAA,+&!ġy/a\hK )MSd92lg#4㱄 ''':L)T.PFP E9D@k l`(.D%$ʱ8S,h~W#fFm]SJoq5'=* l!e5LZǦ<SÌrΞ)zO<|1`:Ws2 Z]˫yBjN>ZQѤ{> |+{t+ʺ O.Q dL,1b+p5QnH!Wu7)p@T%(̴^#[%pR'G@PfQJ†>a5qsV%U.?5oHpmj_t N S5TK!H0ZZ@qp{Bȷ9D~3Qra4уs$@mW6.u}Uk3F7f@c%VVιӘHVظk6a6vN8WgIL@]gnDC|n(Ef,^+GX*f.0i0f$]#0 9$gyob{ B%?_#4LW]cd/ٸlZUp WLC0-y Y4c x+^|9|ӂ>wB2|޺cGi܋6ghHuWȦX3,\}a6Atq;/AW;* ~:t FdN1\vYzR9@/le0[C{i0>PAcԫ*w)}}Ђ*v x5/ x, |/eߑtc$LI='yOޞI:9ͽF{YBW:6D 0 {C#?ǫV '-o4<OV15< s#H'p7o29n!6!ݪb{3C;@4CwzaBs@G=LyīQOWg$a |cg?%ݞԙ5Cn3CT_:8&)=Aܬϊ{?}DGBݟBuՕцڱ9Ƙl6x*PKg7RQ=GTpip/_internal/commands/show.pyY[o~ ($ NZ0 h,4[wf(J$;ݷc,b!wWGEKELߪ<+ɤO^f{ #iXRҘ"y*dF/"KVxGPy]B `qdV̳<1O7e( dV2i2r%8?yKxJEU(%z ϗ׏c_x*6:uUiꭀΗ_~.)Z|{^L|j^Twc֐;Õ݂ˀIŪBᖦ^Tw4G(M&8JCogڟtJ(d#d , i*k,T8!ݧQҘglus9 Yg xja;5H/P!Oڰ43~ba1-o y*k&bxD_tDf`?{}a|$Uv6V?|wP^$VKo Sz_jyS%WKjUAwuUSZ7(&h_u $̺uF X؀r2qVUTrjEadyEN+/3r^T=0NjL&8GPmc4%/EA+G8|R/J)jT]X6*UDY6 )`/Jl~͠!tym[2k$90T(C_Ku s R4!L#<&,!Pm͚W`i"^WfXYyHKd~4h ῅N?Kߚku5/UWV}=",l3T-E49B_HE 5{t\Q 0& yG 9HYJf.}H"u, 2+3m`Wkj7?tFLxn݊y$]HMluvV$)ƅId8 y=dg7+ ;Y4fҢW Z;" .Lt0 3Q[dN}kHp iD\17Q ٰ4n&o`.quѶt#0j+go2RQX A[W0v $ve[oVח_WWC^ .KBI,z\EFA7~Rif(ES; tlQVdgsZ=W!ִ₃3QahǮPk "p64/b,} 5[Eb_q~,0SHk:m#^ܟ,)!xMI ~<%4's- hr?nc֎͈=𞳷Oww׫=IfBo?"DaVR޶ _'ȔCm;M5Pq'_\,1K$߾S'bG 4`VS86 3{lyx[ j>!?yYEY^C8ekNwHX1_:S:[q/fvo*JH7&UVv AY舌nVCӠ%H_ʰ/z4}ZQr40Pw㴁 bvG1j9acf4g ,.;tCms(9jzw ǖHld}{^=J>/fp@7kЧ|l۱S3 mV- [w8R5yw}9u\Sc^Q:d)ǹ\oH`~/盋p)ٛ[dӍT[7M5N'PKg7R?.v #pip/_internal/commands/uninstall.pyWmo6_q0H**_`+Ų @fMT"5;R/,{1("幻wtUiZ4ј Zi ŨUjQ2W鬤N9-xyUWUdT,f6%VrQP])U@k͞j"CotCW+Q,,_PUU[Ao^6hS C\e%7da>R [ P"X W)cc~VR%5^Ʈ0 u{^z{n+ mS l1"{{% 2 Thy-wXsT Q#`gZ51XzeC?`  #qjOM3"+2WލϋGG9b{56 8/x&KgoJ<=O]\'Bgeg_3JLHԤa`b9bm*\&JQ5XE(E/*bRszjszT)41޸OJ4g(jЕoZёͱDVShFm?ix`tn^etwfm}z6Is7):>mڱ$<פV mvpq!dMdy3831BE7+pZhF 9gzf| 3I}=1.yN:gkv~seITd_x[TwKI֥s. <#jѰv h̤7 Wo@evv(`)970MEax׬i,^Dw8kGYV ;w>iUb<Ӽ!]urMEL|aOpocP6aˁK9PKg7R pip/_internal/commands/wheel.pyYmo6_(,}6U14mb]7{A-l.& đȻ#O%)D%iu֌L&[U[ yNضRRr>q.k^ Ojjƽ5ij <-h 2#b[F3QOy![ZW2 [Y;7ymsJT _]a p{ ~R 9Ɓ{Ւ t.{cyUeP+㳒Rzs_ö1Ao W/ z=0~3W-Aa@n2&YrBcWBd4TUPނ:}" ĀUBwv,n1~ɤT)tP2i3NPYl!{J҃"%4PP TTs 筑A(5)[OTHE4#-wֆ@Tm ĶaϮDR x[ p+4h@AVu*)E.FF]^\148-LL\@}/.=s!6Z^do&N#G ~pՓ@^c`z ɴp@EEKceK 6n2YGB6Rɵ]7yyD5P|A4=qxz ήP'X&g@<4/:%T2^ypI9Y E nΐ JB:yy7[:b9l0ulpvQ+r 44od"ԡqy/fHZA&4>S\A$ yk 7?oC}LkXM>(j$k#S9G\[QW ;ݰ:XǦ̦vx9NY2 3hUQ3`ækϟA#Ě$g}beYG4sL{>vÙO:2\ qWsAiMˇ2W w#cG Fÿ&E_{ƻC&c; ƃmbJ$N%Rc뒢P®ld \c.q}s6 onQ؋$ǛtgzKJr{'HAY}'<Їo-pМ^Zݰ[GEagj_2)d;0U#p,9ʞnxF(AG^ߌ%_<|8ƑbSe aۅ'9}Sn.%u 6;9WMgCKq!0ܯ,#Hڋ}{'0\]wT֬^'yqEj*bp%>167 C`$Fo cCĔsEFŪCզo RQ w.F>J^u?PKg7Rg'pip/_internal/distributions/__init__.pyS_O0笠d`b梋q1{"v ރ؄ksR)|ʋ:CA(ֳu q&_"(#Kx>PsUN:ϻם|\-f<ABi D k},x(` !"!_837ٱ+ p! nnL&[t$OF=溅 BϨqJYYl3p/ﱂCfMa" TPW!4(48c`K:&꼦^%aTLȈ$+Z/ksu>|λj8#d5G_+S9 RPKg7R-GZ#pip/_internal/distributions/base.pyn0 Dw1H6-vQ [tUTIۏl'n΀/$~(Wu5δ`-ja\!@bJi.Hlގ˛v;٬7_L6GWӻ~ gCB{e\~|>8YuQR7J-𩴼[dM\*~7e~_kRxI-ee9u@mrsNJm[E XSֈ9Gv1tvVbbʛpLSy#؃:(9L`2!(2{7:uz$m 4kxy5-g R 2dC"x8)͢ UUSw ׳Y#l2,8. 唫؋C > 4N9|}gĄfוùiǿ!)qIWdcºŅsCK`FƶMTTIoaxgR^7-PKg7RΎn(pip/_internal/distributions/installed.pymQn0+VpTJjM vm*_'!ݙٝr\(\ʪ <@Jg},!ǻ^+3$@Nm7Ym~,bȘ*.g kX C 7i=wls 韹]e$p$;U[}h\c0!$K癴F5dL TG]{۩Ҧ `(59@uf w*La}beDr[*䝕VJR[bp8OH wU'B3OGSXy5O^yHCHp6.FYQRD)L!BwځA\iZx]ZCn"dPKg7RA%$pip/_internal/distributions/sdist.pyWmo6_A8"~(V˺`m4݇(XZ:l$R#$F#)dxj /ywϽ=wm'!n.%[\P5MMA/j_[hA9k7\ ] OXe~ni :'$/6i}yTsbѥםQXBw{hmy5f7AOW?I?uyyqvg 5p 3| nTBA*05ܗn#*(ow/6B-w]F`-P㵪ak&Ɛͥ0N/С X0]!q9އ; xc%hHE5i&F58E[\2uAzᅕo`˪=] lčZ^ lhih6sb g$ɋӤ+ *tK۸;Y~0c)lħ 5)$G )R n&T4m Z.79B=j]kP!R0x-b/sIqnэ`W@E=W`Ich`](xkTR@NQW2'!iR8f-JDMM4uNb42: a;+H!oWTA~$#:KЮhMv ׮G0Y+J.uL Qผ i|O!&d!Ik P֌հiZ]! %wh(i־gW;nE+ ΘFꍬ40|~|5}׹M`93[b:)g3~sÖu:O]Ē7,~rH-W=viP!\\*IńֳwSrΧx.r䣸-F39Fs"PKg7R_$pip/_internal/distributions/wheel.pyS0+F˥BNJ TejXxZv_8&iZ7{f{fxAFi:#|WEѤSDu%U^ XfI)PŽSf3~yyW]}V+w["=Ǎlk b*N4֋>(Ts>G'2j8zn7$tM~5I{qeVzqqqKӖ,nHꍍ`$:C.P51:=t&5@836yt[j:πGLXsFlQ["JM/&Zhs/<vaĚp5FB_,{<}ڷ>8~cZ6b2`Aڝ'MҶF-p<c{ݩ~_ q|G8lE2bVΡ ,{:e_i8lHY Bq[f+8}\are َ-~PKg7RC?K pip/_internal/index/__init__.pySRRKIP+I-JL.SHOIRRRPKg7R8Yu6V pip/_internal/index/collector.py\ms6_kԅIJw˔3In2qeMm\2MB3mm.ۯ_){6ٱDFtlvrbQR4kmK%vMWR-MUɼk4o x̀I7m'Mi72Nޅlzc~ʝ{i7[+Omz첩з~l 2NѾܧ{YMkm]UU%@^NE:hkl/ T>rmD 15R}[Ȧ>kA|yE?!)kX:&'kuȾ "+"Ψ*O4U2kJ^.{4ճfvҾ++cJMR]j#uVjUɑúX MR{{JkX#*\nn®+X4`dw޼xO aTצzL\ ~q"ࣛ?@}Vu%w;5a}ǚ-@ TcJ&`տ뇾?d{8\;+q'ԹC߻ Na=l6iJuܿ+jApwjo^f`p:0? ZBmsӍҵx\`'\.`>x1(ŜWWM.D dV46oi>؜oi`[0;"RND@wM ꃞ L|DpԌ" S=.+ЀIU`4N=6s6dm E4OK|O+-02]Ư"$rj+Yj*uBZ*̇]ӲiLD{\O=240 蒺 Aeܟ~C4te[BڒƭVPBUrv19)40ĉk8Q9tJj2S$N |9k[ 3^(Xs@_0]S:9C 7U )@mS}N-Kжk $!{0"߿~%^$]]JfͲ$AF- 7 z D!mv}UvdI&hc=v>JU   CKy+Z^ACD;Q;QWDŰRU]ZeF +V mX]p ,*Ssf|7TXH/UuUA\m]-Y| juvߔ(jM&Y!nL % 50jT; `Įeaxeg xWy׃6X$ +b { TB1/Se QRl4;z)q 툔mqwm YZMe`@wpH_he?_XR}7['^S ~SGxjwj//Q,:uZY(z *a: `ōRj@Q̽f]@{A_l PYV{up|S'!NP@ W4l6bv@@H&_\%b 5a&Cp]x&K6nΈ^Ba$ :dH(5lh0 j&l.sU7 di6S D ؄Hp,gyM_rX xpe!@H ˝M⻦E +cY”a~{vkqm*Yvќ ߧ}l_58?fR LȇiAfvvBIV3k3M59 +t@ }z cGMY{N.U Օ;FKdXsD eZBٺK]u`?W\z~ 6{,zPqY6\-0>tR:8cO}wpS>h0p7eJHFwI q = ]:IM|:ͣDn9{Tj"d-{! =&a~{䯷6ixTAu A6Y (P]ɹ3&o|,G\ɷIe^E#yDz< 7g,ul˜Ȃjz)mMQδ._XWdYnoMU1ަ.F4x9F׶XKs$%H/<&JN* y9/P^ô.V{fJ$&2&>B, 3t- K4Qo=h*(tƟ?\t S7hz wWS"PA)ӞAA !77-`DJMUvw +΀tOūJ5  (r4N]v&+Zp܊r[l*QGȏŸ1 Xh_pPi:YI! y8*KKsPS}9:2rX#7bE ~Rq0oo{O/^=1'g $kf^_hA>OŬPMgjQKY)t^$@g# NDpU3D{1K:]򄘈 iq4|G0S:l;/eK9Eg>ilha\X5`mM:}c8Z* c?AM=I(8g_e9ȟp/M5}m1q-46O[d9B[_8>IM3sNZ;?)zjtgbL2qV+& ƽ4MѸ3')nJ7ZK߆uyJ)%Y'I8Ē c戍W!*U5!Dp+4MH |7 AfG3uͦ 9.TF]8B |} >+NݍFpzk@~fgD 3}KhTqX=d9 Đ :P /Ev Ƿ{7LJ-ْH.pTKz:V,J2%GehFay ]r 7P*86{pHޞZX*e+)ڞ8dЌ~Be`A4HTtX]G)%m]j#J'5Atq)Cą=瘰b-Zמ 3%fn[a標(#2;@hL2tʕ#0 )'Fd"e|[AY&sv, &Eܢ<넦 ~5 (}PŻQvZ>: &F1 U;>-y:oDĦ,gWt8Ó0@-b.1B(U\].sbҁM)?ǧY`YǼ}S;mg!B, (bxz̫r'A liL֩=p3NO!g,u&WOLL,7 pk-laVIW`xZECX )<@"cn0ݦm=@Qxl+T e5د)BR4cY"ff"6X #TMV,iQEL?O)3D)ETi*Lt(1Ii{#c&66Ñ9ղD]6i6M[o̲?qS#"N}Oؗ1%T!IXAM}F=X 3c'*JQ)^%=|AO ?q|pﰐ[B6quU_ejYLJ,h>َӉhhǃH/uEnmeʫ7i{h%ɎN%ݙLȳs==tgzV%kKφDDgc6Sl`:.Ԥ½;/3p$3,gq*X1яT;*)끘 Q K7Ś22dgO`T84A Sh 1*m2Ob0cOjٞ kƦZxbѻpɎx<'-+Wjz+~[Z"2U㤙q}7H$qgZ9$,W$cG]kG2H `>MsΥ7E׼PKg7Rp]B"N%pip/_internal/index/package_finder.py=kƑWLVq8I]Ldyb*KN.كp P1o @RJd.8ӯi캪Jr]vr)F}|&z)Ku|||ttObլMU_EȺ٭RBMHm*Ewݮ9noOjѝ4ۮjr=V<:ZF. QmMۉR5]' H?_7WW56/zٴ\-rQ*٪9dLEY7u(Oˍ äLm*)J_ (I@\_H"8;ROɺyr5Bz^{j`gZ"mqɿΎ)\tM̪XW[irr۲ZSn}j~jMfm{zD{f<:]m/ȴ@*1gϳ&9vqA({З7~N3;[qlO&G\O8 ڭ;|VU>i'l9oYVV8RDhyfL{%,>^5 "쪫>Ue~{<<# { *D-@ђrU ²,M+tEI3(Ipc4rT<t8YѬpY#q#*40)ִ'mc]!KO lXai&DuI(hܵX w[0PĜd;OK>kmycϗrw"qIE˜{^"3u<;`;b=Dt!NfbOBmm'$tt3l4Lpo 6ȲZ: K#cJY;#![H>vә^W69i艽nw0źTDҬ #`9C$ǙNKTܻj[ض r{H mvwz1'jP\Tb[SⶬP)`bԦ|+KOHP_Z5 UͰ׀Ppv#BWB.sOA;,w9(AS^@0LM uóeczkme2paFc{!!(ir+NgLcHGljڛYFjf49j(}`̼bZ+iOZ /j4Wk4N rm5}$<%,w+М]WJq琴> ~=!a?]rW3Rt^'=crYe{;u])B?2rt\P6:V0İd{[VDrCGXTF_0t@2ʽFK\0g2 {[^ 01UYy"~zKr{~@"qxmK\rmEHƫ?Dx8\林pzKGPA7SUd:E+b'SXky -ɒvS$D[ᢷRfݕx JFu]o>(os󉙔L(BȆw-T`o&(@Y2)-xa1B)>$!Z#RZN V2j2EU5ROJA5GqVʔTpXGr:C4eW>ueVOLgۢ,+f Lf[S!qٯ][P0 _vW{]86 rAox P`w[e¯df`t`i'lHޞPComԩQGiy..;%'к ;߅vKPY"jI/B{ 1w,+1;_Q#[ +ϒYVVuUظ_Mظpe2)C6 (BAbH㌃ %re2*wO@r:fzEAsPiC\6&?kwt|GkΧi?3&C96Gz*(u)K Q}Ǭᔏn@(73;T%Szs}TWE+ucEf pt]_Y)oqZ*RBX@a;t벾J͆ˤ`~kX&]n;xd`}EsS:X0qcωbǵ!Y!덟Y{+C{P*Ԙ[VY@')3WM|CaT/b=5pJN6(6-Mh~T\m&ԡo`(,`bs4"mK] Nj=UG@ WpnՔusU-X!B}eofɮӮrqMjQebH}Ga)ORV1}ҬMȻnENGuK@ZnJ&'L~p Z8՚3y' h|EvO!.rN>X|%YJ *v8 3]m 9>|7!ڟdj!mN=Ѱq\Iwd2Y;,דY OSA* N ;?A?z^8X΢k 铴vK?dzdƓb0C37B}Zb1^3oYacը١j7Cz$]uaFQC qH,?pV,Dy D<'ŔXN<f9oQC/)g,Ps 4+HIR)2I~co >` kzomHjK BJ% ا3>6s%;^lt^ZϾm6 А-⺮~IPxm} `SeO/H 辇-l+9J%%1K%.\F%? glXhCy0M-']R>0s,0Mb`u $:1]W"7]炚T2+E J–/Zsfhm(?v͔!'H$lZjƍOO F_@,X 3@IbE_ww)~Pr pE4]vΕ C_z<&'DrA`hPV^0jsԢ94~ E%gAdac3t@rҘt_̝0']Zr:TKM'>y̐F1$#ϑV6L ?$$'値XMt{smaCE11QcøcwoC[ݭodU;'Ј~IBӽ5 UG{i)Dd%9Fuh\v?b79Nct`l4)s -m-̐]]}Jb5>~ ~p%El1XHCOA78%>J033Lqz jݧ'S`^ + F"VKᰔJdW)X ӡC@Nlĥ{Blne@ w;h/c153t4Kty{D'':FYeSⷷ/G$|lh|o^XTO`1 0`UpOGt>p{^uMІxU+a| ?ޛ-YypxjuFK H6TrwƷmմXI\~„=-Ms^;wU}{z>EY :Ga#4^`y="k/ Kl K'z.)j!{2JIw+cF nn?d {·bSjm:R4*Rcw;|Fϯ1K۵[+}x2U[.ǮZzo+Qn-T~㉳[0bNQ (c" #=?_VQqox G%_O|#O`9Ԗo9gm/y.GKYXc!ȼc΂>j=e4Jy*Q?JW9DBPvBNE@MavzwòB#hX!l;ViGw&5[!"~ e3k)cIJޕ@.T0'aYUp"h^I@ 8p]Oy/}#D)xzqPg%Kj+hSie jxX@ԋ3ZzkAi¨B9{ i` NN*.9k/w2,.ڗs۰`Nvĕ7oc4?'WW?RzEӯ4 0{cEK"ÐL\E?gEnG΀8Ԩɓ91>47}/NDZ?XM1-Tz8YYma1=A8v]sNˋ}O~`ʶBoS `i@; CW/H,;pe)C8ZHK5&O0;XBV!%IZET[i t%c=&4"DVE$uk{ keRhVBwy| cF@qlZ#jr3Ϲ>"A/:6NIt/ vFiPKtx4E!LPX˟(w9: Ou}ǏkVMSe{00-z}&wf5{_l _Toɍ i0raWZXZs cEmSԨn״κnJ˘kXC)v)+݆![yjFd'Qܼ+oK4O zFĪs:r"Ox9ҥ2_azo/\]~= y<&%A;g ly}!8CG}2#(gb9O-_xtnA7uV`s-o/@k18QAPKg7R{(;? pip/_internal/models/__init__.pySRRrT(HLNLOU(H,QH+I+VOI)(qfIfjPKg7R]O!pip/_internal/models/candidate.pyRj0}WLՇؠB. ih! z%!iC6=ȃg3yۃS'4A'AYwGp@LYBAH͏Q{ۢ3Odvc/e'(ػobzs+o7τn%t$2%0upa}M1!depcBZ˘liU+#Vkzǀ&lLnS5#Q!1 FHI_3_8%2* Q`03|C^Bg0\Ys `k ܌^F,ri[ZLbcsWγV󢷀9੩ ilJff/7@s=yf`hd<ƣ7@?o;|WEe\B7q y2xPKg7R+m'"pip/_internal/models/direct_url.pyY[o6~>H"{j4^ɂ йHtF4Rv;)R)usᥞ瑳 y^ͫ( =כrN*VEYI3'\h^.<ٵ^\%\PȱeHhQ\Dbō>y>~͟^M7{~R+aPBr:$Ǡ(iHjVΐVU/=)kD{#/zG7]|2 A|:8J/cu ^FG7Yu,h#s45$R6Q9` i:c@ +[yoiMI %|E"#KteZ#?r>R5aɔe^B-JEdc`hv*szЊtgd%E!a7E uh V:)RK3:Q,e5f̰F '>d E@|Cve4vrV=wԄX2[9wgK#'{79Q1Ossf ۄ̅vgop \ ,X<䡿H^:M] `\_.ۮ"٢Req)ZF̣RDc\{EwGE9!mګu b- mNu*rPiHo aD/P۳O(XI.^e1j&kC e_=yn%*/hoveK!1MވZ|QKz͔sorݣ䫧w n_,o}۝dQ Ze*)`̴x=.x7VM@o"Z! #6D]Q#QAEH^VֵD` 7gYΜfnX-i屏`f5F^?Ub2م:OP`4-3!T _'ESw$́tRtt?!iiKθJV$wsf6ߗo{۳M9S99CpA f ? SOSOe^r}yczn[naoigB}Dӡ6'Ⱥ\2Gٷh/\4ǎ;/R/I :}-Nm) Q}Z &$'_^׾ӿBA o*}y4#A WմMR*Vjw"ٟ FF"7Eڽ}m-FtE#]oU h?ۛ C|ޑ G#WV؆ wѴHwKVCY(:Vhg7+G~ _i:dc@}~U.L8%̈0}Ė(41nˆqw~>^:1n]{`44RğKY|5j똃9lX7Qw>x̎|)2\H5M˩WPKg7RR pip/_internal/models/index.pySMo0+FRrVU+ˁul3dÿ1$4&`߼zn?B0R'tsu'֚c!H`VeD~f kZ1"av OAd0kJ oʔRd=R\א;dddlQ]dF>JFGm\{ `+3TAhu| w\.<BA OpP0 AT*Tt2O$)XÅ;VB]qi`OF>pJrӉ#y1VfϘ=a|?8bm-%~ؿ0Y:Sw2 όiZ 0';RA zã%_V}gҀ;7Y4fN2dT|ÈGT?&W=\p;@&M}Un$λcyVfH}Tmz~/PKg7R!U/pip/_internal/models/link.pyY{o6?R*b>\Ũ^۪%z Z)Ebkyf83M.&BMR >T&y3ML̲TT*F"v92]k&9B i.gק~ܤ* d uD -FYLg"vޱL=D²_T؀]q^p/嫊/Doޞ1pqqvqN_5Z\|6Q3㛑SS*rN"X@>pX4LmsR0Yb-d%Kbcl֋5U&oͷdgT)r;oOzpppprZj+!Y\ ghT2F>\W_Q2U91+M=Xl2JH(w V2/bYڙ%ؚrȫ˖ 6eM>*nLgPutDԂcLl̯ej"3eB0 }r=Au  B8D,^3PB &pB ZB0JJiН+M9H B]3j~ҸOX ]g佡\SHxD]t 4eʲ$\^ߜz*;r]K%(2КEn P"X5]ZRbo 8yz+}feMG(c&׻*{ֆDcPI6Bb0qCq#Lج߽3Yfj 픕{C@:@ؤm YoXOhS5˓\.ψx4`KY+ƙYݳ~S7@`"=PLURe+{mYBeUIjMڛ>SlÃzBM;ݙ1(X^!5[DS.!0UjB u3UN,)lkw_ر6czSuMԩ@]4KFcd Hj}w+r&=uۿc0 "qi~nzPǽގC7{pԴOwχ0jgAx0ٟxCRA4dN{8]Mt!9~L<oPsN ^L~E{jp@xV<*7to\'/U=GGmPlPn%cJlG7EbQ-6P 4JЖD`g#Vc+G{(Iy0@݁%Ys؍[!;By4gO ʡҚ. ?B35B@-D0S8OuL"?㴐1N"X%}H/)l-DM+QP㞓ynYhiq$-YLةq| ۘnR R Sl7]|yg_Z'ֱ2?2 bO݌pz-LWQ&WP*  &w0z`?P2+ p8pjU;M8rخ޼j$sׯ/8܎@ @u Z*Fevze5C(rBB x{ ql%q S8 ԃc᷋};ҍ 8f!Dž x{̏dzїLcvZS/9o^-T )iלbбyS#N(e:q岇TiVP5p+}xC X0{VBo>SNjͨzu \lKb2.$rwHxu1ksӂZL:έ4axL#Bw*'k9P>?4 ]#w\OAC%B@=iL,2{1ٺQabPVLyʟPKg7RKq pip/_internal/models/scheme.pyuOK1C{B& \z>k0Khߒz}5Ug ck #:jtChL~JS鮢#v"оPu*4]Q_w:šqoQY?OPKg7R@J$pip/_internal/models/search_scope.pyXmo6_lc.u(ȰbY$- TZ-6oXw0`B_,x|UVzcjAN4_ƩBt6ZB<<1"KcGX&WO"cMKKԪN2X*Nv\|Wdw<6Q˦E?))¹YuBbͬLD#Q4"=m `T//_]|ulg3'X[Pf3 켎I֖Q=VpHa&6\,l0/XK|*a6^ހNƔcɷjW s,o Q.ۻ!|!^V?3SDnYl%XwzbKkq#GP9oovbFXrW]+z^ Z&H&k(t|#ct9!gLL]3+Ok2āmddžӰ%RU{I,5dpg7y{zڱ"O%ӔD: 慨N*Ui>P8i;jz8OC<DS4@}B PQ"%rek,#I$M6;B>m"@.=صOKZ]a8NByY[0NOm(Փ`G.|Ada2-58g?$zE,D 殟)H209i4Tyӏx /;<(M$6aS8?g-Nȕ Izc I: T+?D8mh>Xn%,Ts(n wz؎-JSt z6`6m͉os> ׺_DM`;1nDJ- BU>ڍ \\=Vi_Bj_ӡWG["%,ԙ$)3ʊ:zwCk_@F)LiY%-ގK(n j#vB7,KZx`Jh's4+=x;4#;RIb:t],(j)U˔^%̡S'6蔱-~-%ӯ~ͺzHF0%8]OYpД]jJ V(''ȇXQQ/QxzB?TVEr#-ec?NjpD k*yr/;<UWE\K/.!)Hw{+.v9j٫.SMϏ>*[,t:|: ep|է)4˂`юn5%yĐ [_2E؜F%z0VYLZ{uLgJckm`ǁ8wh^쎔 &0aDL? < [XF,{#S j@dQk̲W4~7L'~@{0W \DSs *-wi">  -Ϩ]uqaD)}FW {<5*K%ZM`T;TvB= Lm$Fze,1t d SAh.|7`ngPKg7R:'pip/_internal/models/selection_prefs.pyuUQo0~ϯ8D3iĤ4mTUUdK0g;m;I)}wwwQ;\d"o6w{#V]rV]..?gO2Q?gv*$ZsE3Jt7t,+~҇]Ѡ,N/^D"(|_˒iЂ LVW]Ї(@4RR(VQ!1!|b5h&( +Esz.LnO}ς 2_I!V#b%3{2Xp{Qr+zqķM@5k'&`ǶT +7T!@S hui#U7NU60G%ބF&z/۶'ָ$QL  Ҩ@EТG% uKbד]{\i8Rb`3rs.i7K%it.@'~$ QӒQ%pip/_internal/models/target_python.pyWQ6 ~]0v=t"\Qɐ;xEH)-۹v/CbGHXi66IvF˥r(^ҲB+F5{ 2m]ѽf$ZNNJo{8#)mrY5T?o~}{ﻻw&M,/ˣH2xW94 I'}xj xx$I[Cs߸V|/ՕUl]r',J'QCHh? J𵲎~V ֚7ynKlV~ſwWMiϸRrSгc$!OOȉiyv;܅Ty[Q:օ.E%}eY;ؙ+LNCxQ|ѪR`~Rw"]~"D_iTBVpSB onM6gsQđ;\4",n'vYpZ reESR1x@ĴsduˆjT0[I7cv.6 i }J8" yb,cA&#cj?aaaC$pj+ l#-,{8`R;d|͓xD ~ ^ip:2>jf6v*8 ~_nrYN,=rv)g>ehE=MwZƃkM:b9EVEӣ9Γ36cTW)0ZX-nq/~EXˮ{ Dv떖u %{`]8Bӣ{h|iciv55-LLR1=WB Z(ƴ^lلl~0z|ö|$Id6BQ4ϙKtVly6B^F3(ݏbE՞RW'`*t_3_f,)g!3ų N >tlax-'>l(CoᇛUAԢEIq+N̬+)ѱ&D5pl}؈M3qFCG iOD^qOko/a5gZa Y `bGl% '=f/01AfuFu15IW ㈮S+%6>)ZKπvL Pib6_2,\/PKg7R%sٞ9 pip/_internal/models/wheel.pyVmo6_A,o6-0KH`kd[IZ:leQ v;z =8oN(]b EeF瀖,7/AlfD,F9-FZ>(/jbBFqGzU녅([d27VV*‰jե[B.kS֞WF:D/ruW1՛7鋟._q}}ucy4 h( 0C!bu^Ji) ΐU g]rq={~|>\ FJ6ֺdjh5KU(ou;]krn_!Q~풗"EڵOA1q 0v(ڔP[*P}}%kШ*5ݛ:4*Ti\)-})o7u1/oc8>bJD@ݨBd, D҃#~|j ].֬d@PZ@!d H ƃae[@1G|ȝDZ@!`TtD\Drdr=#O}&xR'ӂx=@ Fp(Kܠ=1tefi@-v~oPyW߁.vgjOE5?䛶9 rv:[,ȫX/fikQ<^h^uUwL/ Zt+$ωsZQ`?uYՁf`y' OH>T+$/o9g\O+S;["鹚XhcO! "al$$zF*2u5mlR\V )0%z(P<=Agdm%!O|k}&7r%( A*oA7Zfcwl[uvX bj P3'7 )"~=Q@>wƏV;*4PPRzCo"B(-ZSklPt(@~8drUbɮ[Ÿzr7?V ;mī@ig N7sXŏ?ygJXMRy{m$xZ~_BQvpfj~GA7#fq7.l|ЏaN%~pmgp)~WL aq=G_zFuh@ )%FD:Nwjjہn)q(˝߬Q"Exz vjGD|@Q/Z_)a*F 5,"A>A麅z *%ZP@Z)ؑ(<*%M9@ij8֌ [A] ^Nr-2٤|gb [*͙f K"RpO.J>-y{p@0wb*'efiHh>$~ J#2Y% lۯM.i f-}Ipk sc~@Pʨ}թd($&ӆWRsą(LatYYtYlpԕ` C -ҙzM^@*F]pA]Ō]˃HnEu |1./t)Y4i,5 4{y-^A^#}Њ,SVdC1i 61(oTE!bW3nxv ! ^`SnBNmv֭eѢHѽ R0НgMQ.rJ]l/nX0%"F t6D )I reb{aE~Ivz)Hcևr;(d_WA6TPRRͤ0x2.57Q HgSL#/Tz gmJS%KaӰ=2-zG2wB,`" )GQDbx.%;{"5Wq9ݷBBi+֙|T^_5r=1uAyZ0*k"N2%L Ρ.+kz72ψs%Tƫ]z(v 0-ZQ5VH_&LAkѓ^S /k{D,,2'zV{ȪCxe(@O,1bIX _Mڷ/_݁Trrogwr}M\HCNXHGW8y2QּFg UY(srRorEO+=`3?qہ n 1lQ굙\IUse#ȋFs_9k`'^q1-K |e6M-'74Hyr-4-w-B(X:, w#%㙛QқX\,x4|"`ZE&I/EM9 JáҠ9KsAqa zk^(QבP A% lXJt㇦.XB(XtIOJ6C(-A P~J{"F(؍e1֓۹ktXK[1wd=t;-j2lo)rME9M'o.),lwIlQ@:0bG;g@*]FL 4LlTSlrc;K|׉w=\aVo^Qو6byMϫRDWyxM"#|/ʃ̛=}TN=z-̪ٽ0L_i\/gDMU9᫘;{ :ڮnDxE>[UTPKg7Rjs pip/_internal/network/cache.pyUMo6W ԃT.qc$=!PȢM*If}v7%HK<{vϟ?@ANhŒ4MqmCïN N\h)l+wmXQFKS$9ZSY:zݠ\2>-NPFqF'e-ڃuIy5Q~(vIkQza9 0aqˇ/wWoc"z1 sMw!I4؂/zO/ uWa۠G$_8$i\R& G8 hK4F < BY=S \Ѻ6<ց}Cp`ω&'K؞[W6Rs( 88> U2Lr\etVFM]$DVWNg[}9;>}Q3K-eȦцXno`B\Զ UMp05^0 7Čj,xh#v' #%Q¥1 M0&(25@. tDZ8$7jT_Au9?"gCW;JQ$ 4Ռ]e͙߬LA T(-fӗ%9N~@E<5xtX80M@*Sv~~ҝ=n8@B\ Ϙ),a wӭD;43Qpg\þ?5&O3c\|}F>U@U2+`8zD6iHvCKujRvֆ/|Y'>L8Ӫ?ҴZx9ІϖO nPKg7RgΌ #pip/_internal/network/lazy_wheel.pyYS8_b8.Gnu;I\$g@[-;N; ݿn5GGG_}cٗh0C$a&l6ć\ĽO)tM2ҼgX"\&|^ e >a ET0[eW_rZpB\TɆ+9UM|{o̹W:/7O|9,<ȍ:ؤHtE|~{3_>\%DM\O%4 B62\]\?@ i'BgѺT% m&ժǟwʗ翇nno~OIU221\TZtv0 ?&P-eg2_d^ϾkfȚ'>fTѭlODKvbكy2 kw ndbzS>O>r-OMq<0F ({Qb=jCl%ct-5+A24|ʊ*ٲ(5qR.䃕̥„؈Ǽ>Q 5"t8/Re D\0v( ,, xP0E&&&.Ww.x<&G "dF)C o b@$eƏ)yY&bL^imMꄿVZ#6.SZ[D饍THڥdOZR&zEi q*YH+oA}ڄ! COdنQ[ |N7rE|LBT5y4bj ?\Ol5i}l^CF`|a&q} M :ZsKWnP+ ZJZֈ$+GR[s9 H"^Ne&Eg׼sF7B.Ck^7<)5| ` |lQ̒>MPWE&t;ւ/!>ZfF( (D(w 5Bi26~bǧ쁂 rX^&X1N$uŽ089eeCodV+R%]LCQp[nPTp*`t"s߸?jL?BG;XDDS0ү-miA9eI~-kl_`nJɱ#Tv(m\3\q b pao{t.b}}ԋx-/]x~:S[] :?Ț1CgX+o3T3LyQyM|ۼ0`I٫?[ȀN7!nX)m{2J%2O:G! urЙ?6!{6&B.LEM1;i if\@JHw @3Ozi@:jObtzqvC{86FDA/q ].E%﷉;(9D԰gW}vEE5NyVEM'YSfcߛ5QRJ÷.x :2j*Diu ^ Ex8=_ /z'6=eg1E;QNQѤ+q-1g˾.`#NpJt1b#U_0?zh q8ɱ]oz7`8B*mSt+e|;H@;3bQ2lQ {D\ǎִp`jEjwLM*OY]|7m UpUuQ-JaRd%kWB;+æ C5c VO+;.P%~9AD44)i%_TpV$P;yWLIanTI`=`u1I-Y:= ' <`UTIRgȪ÷R5ZI2pRHxJ]kQ|UĊ@wHсX?˿^]=ps3y{x&( W` đ\ 9'r@yQ]KUM;RAN]]8?d>jh S=Z/H{ߕ\i`d=Ǣ':h4B&Je<[ܾ 2Q4wK~wY &WU8^.\Va_$Hc+x%y  ]\]~o@=e^qClH![Lˆ |4. BMU秧 /'-c/dj:tHPW?g_|  tgQ^f$.qNs,GfwE ٓ,v'^Jw.豅\IP \qoV=LjLW.0d, ­ƒ8  + YVo[uKsA*8 @kqIHFkL#rT',C/҇4@p!.!}?UWsZ\ |Ϥb{)6)>Qݢ>q]"`^껖զ~@?~Z ~ NT*Fur]|߾.xq; +0*v;y 6z~篏6Md`A(>=zKYư ܘb* Ph]+!SЪa^hWE*c`ؐԴ 拈f?("e097YvVR3Ɯ$C(%T.*XgǭCT q./gUgסBS0H"kG{JM0 dY5QʌfH'WXjlӥBF("|H׬d`Me G+9RySMٞ*qC9>gHM.ヒgy!/l7PMyGP|npm{1LUž.ϓHi"h OuϿ_63!F"?İq8f˜+x< 1+UVrP ^s0@JMcث%: tM$n^:^EC9{z}"0q ^.n4Xf]T{);F Q|8㑩hM]ydr! 8RT(W1A@ЩIdF ,)AQM#=ƞ 8pF5`dYxxHrTSp 䉧Ov0 QHXugp23ļ^M0N="&1W[ E+v "?&"\ޣ.?ڍ&,?O<u`xXg:S9ß0 Q`<?ANe=!K8NR3 o&89YF-%QS^G y4e܊J%i6 PX>f(9qߪ6LU",Wgg~7fr **| ,-FeWe-->~8?;_6y"WR$8-$ -JgVZ ytRXhL#pڎ}GZqZiD;݀Pu +}D !-ZQa9JvhGw{FyN] t  3\'m3qu>3xxgJNcr.T6x2'LƉ[1U&r8%영C݈ىEhzK{AV0b<|Pib; MpXWtRbq#t_8qK<#\mHf/Ԁnj)X^H@+:g ͧufE:A 1&БK(5$$t Sb͈O*?T*6SD;@>OzUo T$PX2vHRH32mF(0uۀ 5?j)e߱7:U'!_bT ]ӑ7_|rΏ[7,I/" ="ٹ)gz=p Eo{)ğoW* 38~ql= 2,S֦/[yiօ?q2j'%z5k!x'ED˰҃Cw"S iIoV~iԡ4Ek(M#Vשgs#}Q+0c}fDFAu!X:{F=7wU؛ ^+nn`LH7alk>kT>Q\Uh>wY#>0` ?y~3d/q_YV'7O':^_k|uaطJ:*1:LSereyaChw6k_#viD.܄h2i-i^Ѥ ғpC8LIgO'LKzӏ+ΏD))+XޜᚭY|S.(|Hls`eJ'MсV gyMэMߴЁ0d* ԁD$X!ݺ6b;GUc%q8!nI[0 7y}Z~j|.z%*ϙ+ԩs9)2{ЌJih^Tvq)nѬP.PKg7RKLpip/_internal/network/utils.pyWmo6_qhP8lM&1]5A1hR ]1t9ˢFRqa}w^,naآsO|8},Vz5å15 ~g"njAE%ܙhUV, 5TCĬ÷ Tkb&dw >I5 riXUUe*m\>T.9DOܪ"+4 /pI8\FsE4prIMY,pF>u7IVB$g7Cx4s԰#ܑObN=2.!2WeSdh͇{zWE7O3)X{4@ ipJ| [Cn#? +a5`L|CU(pGAI%ib~ĈV sk.mP޴,Ny-|o>SC~ou=\IϮw?{m9;k siAY sH+Ýi~ jS4N[k䫟VO-~V'nT%;7my;?>. ZIV N%d}#oWߠ)`+~!|^._`zNEB]`)H͘Z};P/ ap}Ja[5~[1nό/-Nvm.8+7OH-]i,-Z O(lWr6bDV-9[u/&1m!Km1A YJ]ۂXp;jZ"覠_^($ivE `R`^RIPԬ]x{֖ʜf 428nmܤ?PKg7RTq[pip/_internal/network/xmlrpc.pyU]o0}ϯRU v/ i-CZMk ؙm4IHBi{=p pg3sͥ)DE9H˭P20pejrgde~="w d0D*Kĕ[H 0)sC$o/.W˫٦"NgXIͨ uZi 86߃^H Z.©u0UDI ;ZSXYFҵ0J3J)P, ;Rglrs=Mwۣ v3 \ 5՘(;A8&,tEIc} 3nC>fuز_2F7δڈCNȿd# m8>DjCe , re,2-hv 0 U$hp+r{jEAKY(* G]`!pip/_internal/operations/check.pyXn6 \ !݊it,h9KFRͼsxIe I?z^N[^SEODCj6f}řtj^VԤwFTmYvв=3aS~`!77$S^ca%"fe"uabW(0͏dz}b:-,9blz!Սټ7^z9Y5ɽ頨%_M%X{\+HĬ/"<3PX]2@ & @ʸm G0aӢ)?Ȯ?iLl 6OB V4b/,(0&Ӕ@'JD" Sj0c,63O;4Fy~j,ODp jn5ѩĸP>3z&.Nppi3$4 T(Bb, ai;eЭy4 ,llY[Sr+bOiZȠj`o8xQG &@W*0yǎO86qDZJANZA0 W[C-Zt=bYRĐ 1L 8r3-Z9dnS0Ҏd''pMՉ;/ Hm}UR"h6_ R"w|u=q_nY8"[5R4Qxؔ? E~V=>Qӓ}{)o;Uȹ9eKOY ) 4_Mc¹Al>3pe°M׿?XE4~Ƌ0wè:4Pj7`ltxD^26 J0>;q+"3y-jqʡ*Vme00+U> )(]8X(nv|G\ H|ڗ/ z4vRGFIXd.H)ԕw欔}~t}qiSZ*˿sb͹sA8zr׭9d]l!o$ տPKg7R=` ("pip/_internal/operations/freeze.pyk۸odC?,CMM6Aip:Z׺E 3$EzRncpV=ImҔ EFQ,5g3;d*x%۩mlHN{V\Xe8XKjQĐ4(e ъWEF K+g#;nS$oDܾsSgzGd/'-Z/~O|A^URѲ`ps%Lq30()nNY^()b|,*XOኒ\}u-$Qd*mDXY>:i_9m`Uf [n}!0"`y4F&QEwzqǫWW5ݎL_h5K^)  7T]Kf^ݷZh|`uS>VlgG'}$NvN>+/q{^U[NVΛM ^/Ȇrel6C >"[TtmPƾ0s!C`ͱ 'gQh?w%ߒ|Z 'Lڝ|fN*O{HM"`?V69s5]*w+N5v5NdN9U7Pv/oV3N .?IܒߢT3#5z@ahF_ U&vST@NMܧ(k,O,(?p;+1Ql<*q=<|LՎVz"]<(ٰ_zxf&zTP=ܧvJeqw{?0C 08A@{#@MLJz ТD ހ Mn$TT;7W/;SVu3qAh1P 9X gNfbBv `ntfҦP"נV0k0ksF@UBQRĊpj3$?thPh A C:AD4$ϒc@hTG$%y`bc \-Q |ڿap=ܧaAGo"i$[OufpV| As>mE3Laߣ .Cs[ܣReOHn5'$ITDI"^F@ % ̘4h-1_8 5`U;s10+NE=eu;F;F-} >,KHfGu{Υ?whē m6 KNOU]=.!m?iӲ4@(~$ri\j)\ ;YG"r(V|>ZVRՈI`P5 VT}0}pB6}5!$ SWhɴ,,{:9&kIKp/!4U4}"IM.6Y6tSp@a|"9&.$QMiđSl} ^`ey^y&.=;M HgVB5y:R<참@I9gwǮ0!S\'g߿ֹ=/#x_lJ2MNÌ~M:m:ǎ>H{s ]_9]qna?;wT]bk(dOmXKnisX 56ޏWfLcy:]i3Ph0X;BS;iˏv>pp<☺*?xMR҈"F[z~<‘WN!<('$@7*,Qm'\%b$E_ElXjmnƫRxvX$! [_b9Y<&bKNJ%g c2K7{39(q4Dcɋ*\@cmmh ^[sr k ,JD:oDpk]Զ|ѭ]0SkBZӲaO79%QU2E6< xcx/YicGF5|h3/nTۧ1T{20ĴvT9ZIa MvoVy>#d\&hI>HW#N {Oϼ=W슫r݂]X[t < 5IA0]1^JǞ紆M 'qG?+>n Xl[ʽ^uy gE{]c xIЯ!עU3hy7"E8B\~pwO'뷁>8ߢ}F~1͛U2ko;4o !x S9R; vtLeq҈BňwC83[vb( 4]$!4:L϶@nFCS99%9 _)2ɞy&hS'),O71M#O?Fp4NxKK{@eV-#O>kog n)2Jm 2xelfV=4ztI%H@<45cNFLqQ߽xGώ[ & 8t(ǩ` z?fևUG8OxC0v Mլ'"^&FTgm,'0x@e~/mSKYZGsx_/DK#H,C+[Cc9 A77BPKg7R&W?=W#pip/_internal/operations/prepare.pyRUNm^.}Q'C2?6K뭻d|.KΊ}S(?^uFiv l<;۶^4EwmD Œ_˪,U^ɽ';轼U&Lyy(E!ff ~i|>Ul+9^wu{Ж/PC&u[O>TMQUvK+oۺoTw_jAP{d1v}Qo*~c+L﫲ƃ}g6S`J1Vf|zNV;t7'4G<;??mQ*}ԝ;V76n_IF쬢Wtzʾk;֔7IMQt:TUj(ѭ|vlݿ?kÛ7/ezBM9"lڡzڎ,wIΞJ./*~̑嗊C᠎էNU+ЁՏ TԌg@aD9>-?}N-{ߧ[JRELM-Z5R<cf^)cbg䍦`3bvŲ'bg/_쪺UKf?u}@H/ Vu]#?Fo@wp\ԆP7uƎq h|.? gGv{Eϒ|<%N fÖ}Y8AЋvCM:i菄麆Hܱ-^-to486ד7\N`f9cbW+c=.</O~Qb[[(E,[%7G7B-xתom޿ ?8F^Qiɹ9 ?-4L5}j0[:F(0KO vc#s Y\]  "{n󌂲D'Y[RƇeeCi-hcT)8Aw-@']9 ׺ۃ^ Fڰt6y) Ub}-0` "``}&n05Sdm9X;%TAvv+iթ`cyAX*".\BIA& ]cIps TvkvY\8,k 8oU`_EpN4 ȧ?mO}Hg]iyVb,! 1*Pt'ׇ37`#iC qx^#?|)8Jt 30lD0Ҍecv%iZvz& y碠 !#pe%_@VQ>,U1Whu'PY{>FIkN8|c挑K~7k\m011-ɷԴV 2|jZNwz,tQhp iF-?q)GࢫJm0))NamO 1 ms.Mn$31#GFVG3Ǣ@XûW6!P{ W]A}X-o̒,0xj0 ˃'5;Ǿ)8_mdwGqNƌ{V- MdEG\9a;U $9Hp. ǚFuhֵ=a2:T2& -(^j7ou-sQ 8iS"f.HL$zNPVjSt,3kiɤ HFTiS %A;+&^Y}*0ّ(Ԏ䅙{0UT(BWJG93v=rAdqIXE hA{P;ంi~ָPV/r-PZ߃soE1Q3T[0IHL>`#ߊu^ޒ,Ke屝4`Cˆ;6t]Q\MID$nד3?\!C9u[ ,i*MZw^0!VcB_[Irl9FoguYb4wSMy /ˇi?/.6푓:>:W6bxDV~,/mnS4=Tށ!3_$CR䡫yU*݀?A2, %S<{̐ojĮF'B`1pA,@jrHH,v=%IaneQԷ5zϟ_`=ٵ8'Bu ̐U¦sHݟRd&bpZ*&kECa:C&YK/ +Mꩈ/pKz 6 Rh ?.EֵǾg a+Q EݓCe!\\,\)(7c@GH|axAIlo+/vujzH=r3y}Sd$X5f12RUarL>ڰ񞥯),}MHH0\Btc1('*LٛAS"zcHPca¿2'@~ (u L5Y8Pu4=**alK܎l,5GJS@pyea~:m@eim}݅=N1Dp8}P&Zlvil\Nhv#`V1 x ~5DS '+̨6~Hmck<K >1ztM5k@{O1=hk +r^k9MKTQ^I!:_Z'n絸\SC:;+/.mk -rI2sOMMeִbɪ/"#px~a?.K淫ُU|ABܻ EKL3R/c[+[M Y|w͟B5y1{RRy8 J"Wd@ar9!sU̓XR̭BCƜPaD.~ 9`FNlY`"co_,9 rB0J)@ǴKNicׂkԠ|qOd6{Eh>SS4zJ@(яV~ F CC>N@[Z|>[^]RxA]DZeo~,BE6;4 L JҀMFWj6{_AjBpF36 sڕ#cps.0&r') sw@L]+H[ Pε'Y߿<.0HFr1' n}&G+YۮuRLE聝pn%#H; 7= hchRH=U?s'B5Z);'(\RhY;l0My <'U092݀"O>#-Ww1P&`Q>ؓ] ~pG[lLJkƗ=8;B67dM5Vh3iE9h?bmLEϢ_!Za:{mi{Wu,o)l v6 3^}E]/~;A0$=bB-'z%ԽC6^5KN>VX0}W9܅R*q-+(ۊ"h_U-XEBTEXkUuWu1}IKÿ(єt%PKg7R*pip/_internal/operations/build/__init__.pyPKg7R 0*pip/_internal/operations/build/metadata.pyTM0W Cmz(@zhvKaOFƱ[4#+v>b{3FI<{[ThZAZ[p[Y!r$ c3zЎ4y!Gx/:W8H᧣8iߏ>wM qRÝԊԺ)!5TX;S:#w4I4Idj|H%UM膴L*FM:^ס1 Â\:k˖EFPUZjMeI-[ K@`~;A2!Mx@Yn>-;z~]\,.Hfy R 5汀ke!`\QKC?_oJh[L1 |AL)HVȱVϠvr_t߹y0@}݊R N>>n`vlGNRw 5Gν6݁Ki5RbtUۋ5t_ێH߀ْ[ z<6C@WȎE>wa3T;'i~j'6LˋG^9'mH2z3Vw~cwwuhLJEiY0ЪU1nA(;Y#YL-vV>z-lj92I^PKg7RCf'pip/_internal/operations/build/wheel.py}To0~_qBIx61jB\S6Cw#i,/i}绊F+VU%dEDTQ h)ҡ]ih-t馕 eVs^igV=ׇ]g_f9Od3 .N;|2QPwtgh ,cZk4CU XΘ 2VBJuv[Ě%<YNu&W|Ti :^rY) 2s\=ۣw#f9lt ]$PN)-`߀ʀ7:^VAk%-rHR݌tZ#-hD߰m!m>";fvzL[ZWw Rb36*5 ʶ:d1sh2y62Rǩ2vHBv =ٸT Zmv8Cgϕj< #WI@dEG8áOw|Jp’36%g<'wc4c/_j, B*!n PKg7R DD .pip/_internal/operations/build/wheel_legacy.pyV[o6~ׯ\ PG^ M, ZHB(+E $wx%tI~9M+FL5uDݯPiuUR4m)Dj)D*˷cxL)S"kLUGYٟn/7K4ެ a8nJQ$<|uj0 Eb%dk\yiM͢5/[\>DN,ϝ15԰0gT|QdJA$5Kc`DQT0ITǴ@Boi2&Ot鑘$qkq xݘL&ց^yd`$O?$_@xzN>ic s>Ev ;Ԋ:\ELUE Mɒ<'>ƫ7ߡS]\<Rky)28~Jx6T) AU>(=,Fl@Vɭ>EHf΋㶧"瑨Iʑ@3sxA&e gm|c2[prga!GI4SդC $Hdc2Q5HK[o_T?c'C$9(ut 1v7 aA\rJ =%ù=k>~`دOȍPuX[Uװk!iJ'ٜ S6?xu~DUv vk{j_t gZ3>I\zMʄTO}x_װ` k;q9xA2(|\ #Vu9݃: *9wǾ; k*0AbA0{!r;Mu3~qgwLa|m98#UعNP 9{b0q16FΘrR+BI44N:x~B_CAQE V7Fy;\%A m͍[{|-@[xoMFxn){RXD $`>3A)m~r`ygAOFW$V4 )C۔{ Uuc" \ws`ϲ8u;wK+Uḷsex,JruS2햗iVhSqwY&ȪgUʪ8 y lTV*S8X-jȧyz%>8sB6|Y4KeoM㓟΅,2W5ӼjLɹWI xS^K<@;">A]y,.eE"cЦz[^.ӠN|Z&+ײV~8+ _ šO_=9K^>y~tɋϏ)}]SKqGϏt:yb FnZ.sI|rx6eմµ~ʶ,e.5*!.ЀtSsz/_|7޳-Px˶qj&UWsz&k."an_(N LqN2YuhxR孂6r6D`Y& $ Ʊ%=hiZ+Уyf\nuhj In+^+I*u٪Y -HT[4FS2বL__BT|@#%Z2d % I.@׭EQ耈rG; %7i.uB8m;~9[ .p4{- {BޜM܃U=9˦==9ăyV> "Q-r1Jnv;E3_MTxWrY֫sšq4uOޖd[Uy݈}\Rш f^PRiB K CvYI 7v{eeZ\UZZFJk93=+Z5ay==$ @DUDl{W*{'vJ} '#=w$YvBE.rF#QU O.Ӈz i!oi 06뽯4uۄMV8hYQ#v?c6 4>o}~u!yVM&Uft?;嫧$Yo< D_HV j R:"ΔxB zZ/3&xގF{ơ~2]-šoU1zQԐcQ+OЖ/A]mU쬝X$| ũ|h6EidwJV$U,<EX϶G75ng6BK#dI] ؽlRwNmń>Hh 8}=b`{U%`vcS%"FÀHE`GcmG|ÔLV)P^jrf -:[r2e[eN*yvUmAZRqO}_ Ю"5, G=)o\62Y ^@mZ8PsEP7"+ 7`Aȣ;p†`cdMUjMuKQ?6.5I[_iShkz=l$m.ӕe9_q{nsh*#jݠA7zjo&I!L@+'؝<>kuWqo8ML TӴ IkI؉y_boS.Zi ހ2%v7r^YdWmeGZlI 6[ZPH#ی}\lѵyXO=i:ΝCF%U$c <)?M{<#jyfn?HDnRX+B<@5~ f -"WQ7(0WEf:YCG' (Nf9Fδ*k m9eu.pvVb\%;A0oq_ۀB)Rk49^hG δ 8x? KV29@4b ?! h`VǗ^f.gFlF]$dᡌx5cyzv\Ycδ="1|sl0pƢ WBkLfR mxu,?\ 'gpEOo o@< :[=>;hlT5J ]&'Lh>\h7Jl1b6  mv@Vonsт.+=|t31~=xK|`BۘDkP4 :_#4GX[R2J,_3br6~X IQBR#D'B@|@Q؛,KA>@[RB_" &ݒ.Vr@1@<ۃ'ԳqN1n)AXbHF^\N j4=.oT&} !I0&|gf$/,,1O3LВ mȓ`= $uU׈/lsFˍ%G=2eh~`8fARGUepX*8 3Ќ?+'G'??ˇ֦!]mFhdt 6-$l74ٱ&53*h5ä|$X紩 :i@ d>\r ed#x{[!,N~] ,loX U.a]&3]+sKI S3"bh6 vӠVGv[ExXTcBnz,i?_a]A$1B:HWh+X)t˦hvmWYϑ?}+_h3jȥ#/Z(Ll9PM Ao%wVCZku;4eVG\2TT.s12^_K _c"[r֭XKv;jĕ CV`˖әBp.d^䬲50Kyy{Qq+5dӾ.ac? Ɂ޴٪Z;lkr|Ȏ,O X;T39UYOB&Ma8ye'!%1 g^s7±63/2_Wb]dC4g^ܺ.d3h:Fy`7̾W;]q̈Ott cmgzyA)McnNdɀ&ڒ_ٙ p(K -x8߈/µX[| <2@1O5f+=@layH˛,MC\U:f:pfy g&maL-aI>xӡ!ӐaO(%n9LQЋY?@"znV׳a^!#]Y]dx}dApsNNÈwWA&'Q\H?'-~@P eP,M͏AtX,4 !S2@7m\'*a|(6,m=@0á/ `{'[:Dl?=*8752Jv5($D˄¼ -.9k5Z-a\ڹ+|۸EkhL,00˧ xF} nŷ-[G#0MP Ib zJm^鶙XRq] 8-F[iRψe 4SDAYXW±`.DKP6 =7ap3kpV)Sozɴ`Yy2C7F6Ȃ/>1{[]A;sw5&m!40@rXsWjvifq0#~޲B"֢ub!6MA^{N)@Yk,N9L Y9AfXYįĨI~HPapad=Ns7TfJ[ #ХK^8ϗT߃&V[~XyY^2 _^~utr|<9;~_Cn:#`]Y&9sg6 ynPx/1Dn鿇AGGţq%A%yg+A`]t>O=~7ܡt.P<ggh&OsC訍oSFx oh]&?13u[p`D{yivz| đzrgzaLD~{ԋȺ.Dq9I͆Gv@k$9SHp_:{`Jd9++ #<1` ~^E??f@tf.f{3ȎO#s:"~tJl_\,%$X]Yau|O B QD{?XX, |(jgCXlC ȘW˷ rSZͭDZu$\, :}$aY$T ?]IP@^]G':O9lp@I9$bꢎgLTѝE#i<'$՘mibM?O6WH%{% γeրղ$Gg焘 g=X"O \MΏǮ'[iynKOcӕ|zKm`LU_Pҟ>ckOc!߭o{?{4ЯGS+O@SM6 ;%!<d>jjQXv|O0;c;-j;t_o^vt7Dmc=gcxhRrTg `c8QXnڒ)vػNƺܫ?`>AvD܃zϜdwD}Kc:A%W^tI0aߧйgHS1̸bmYl\*?Yd1{+\ܽ;Z]m&xkcϐQQN b'h4\>5BcV'V\&bkti􀎅)k\Xoo)}v2lnb3SN{ uc&{U> IZ25ճz sDʨkl}00Om24e@y-:C F6JoM{]蘾\w"Kڑo+40E-r ;t퀧iȬCĺW.\ȺR;㈼%흳x8:R붬:~S籩^]0FLVU*6D ͬH9*@g޻ɜ\q AzWm]xMtϛq;TG=Dީ[jhk6A]إ|95ǣEc 'T}+ yZ N)~8u+^蹞s蔘xq n~4jB.ixpk9'yfy`xxLBg#XHsv֊=t IR6e;*pd.9X%w7eы2^V76]c đj(7$yWծv 6t(lW L'>W(iTΡa15ZcXxk%!X0:9p݆?s{*U??P(}SU]`4-D=ﰏqo|ԛ &HȻG6)a M[l]_s獷8HTLleiz#m?E٫]ӋXuxyyI&aBoŜ/7wuUW{N7xu1$Z:/T'P&3va[ ٮUaGSL97PDgHG]^~zקt\thsɲ]znSs-)"߽0s~3ud>0ܿ @i(vOu)!ԣcf`OG9p^!&? 9OX:gv $Q_Ļ]~6Tql͍!Lg? U+;+EQOTeª(qG"`zؽx=[| #f#1FiŕK8Cv~V(X&DU2p'PNdhQX$Sq /5,Wp%_!It>SJ5_e)Fx~4ΎliHw_g[:0:ֶ5fa)8װ}e8 Bʽۭ0׿]gI4TDb\ZW17;'Ŵ #@ooҚ#&,`N]D1afR6JANfk/t};? y ` Iuo)锯\{%8f? ?W|W^]ÛV5^kJnxyi}bXw34'BojTy(Fr;>>1,M9 P6ELj 3k5:OF;vnUx?lRl=43}'4gQtt:v #^(;yE3ϯzNW"s)8G\Ne~Z#ƧR_ݿﰉyXV|v0-b_N}^OCinkwEWTA/ՖRC/f.dC$&`9f8Zݕ>dT}kh}R;4<Vw1!z7]@sFx7s猑u:d /嫰?,d;Bl:E:4Ȝ Ljz@,03VnnS%ԷĀu1|w̭8D#E,oGd r[?nP[C{3FN{\lCiGiyeu8e % Z2ONb{gxRR!]p j&W97=~qz^Ma%H4rց >?? G;; AGvc\gyo'W8th] FV/Wu&;aph9͚#0o iz3Эe m#k޻ҜKs'(ҿw'-Xy-U?zV%1|)FZ T%uܟ]L[vX.n-!7/Nر -4(`-z^&iߌm+ &ψa@ ٣:qQZ;.]o-eG: 3#,t&7^FH-B‹G_ uXw\7tCa-<|7>kƬ>vb~Wc6PKg7R== pip/_internal/req/__init__.pyVm8_K9^.mǶ,A(8QH$gJ{GֆraI"=33m:Jv(%*m %: $yr%x$~>ImA%Eg0ŀ}sYO76xOW/n҆ -(v\ØȥL{րqR4B7 /b^*؜o] |ZIB){,#orYs=v)=?txlĵ4FzSg)Q Y$`ƌb=NT> >RMN=/\Q\A֙$Ճט? N7Pr*Tٹ.dQl:Ev'&x첒iһOkú/d;q-^QJ84s)A2KOXuAP7xMDxoCiRoeq6/ae%q{v,ggjllo!LKj*[*`G45B О+ulqq=|N4a9Q6 @o!Io+T4X$vr&zBڝ˚tel&[ĵjڭe(4ʦόV#zragUp٨t:tՐc?G#ʗ9*>+.9N&Ͳ9&?{`7 Ká2&42, sP`ZjrE(Z,C'G([yJL-,d'Dua*%GAR,V!닜(ɒbv*^T7S9,($躊w7\Xr}) W *h-y?ɺ//MR+L*KLWU5J'{3q3VOL!n9!ԿbdJ3nt|Ds6͖s1 ֶ 4Ӵ34 PKg7RT?!pip/_internal/req/constructors.py[mܶ5[+v&uh"\+Vڈҝ7{g/"rwEo%Crf8 7쪨JUۢئnسJ,__Pku'YVCkemN"D$kwHj/rٞٮX&/_BKqY@bx3u¼`ȋ@Uk%,Yɥ\Dy6JZhXW墁髜hX#d+68ll/xk: ӋRM)Y[2,MA,zYYoeXKŦH8Mp(bd8ctك >]^R=0}m(9/./O/.߇KtLt0y] zܫC*QթOMG3j\p %:܈kANZ43(=Uu+KFGPLcN5o@qxk&2_Pn%#-W$m!G=pᶢn 煙VЯw=P?Nwm{8uwF\v׼9__/ 5X5@J U/-\ph]Jm]h>BN!28'4Œљ@!>E?+^ݪe% DgVBY)d+#.h0wCκ’"~§ hM .ӫ92^ce Ǵ Gq+oZc;pc> VvNyQE߀7DޗҢ.lݵ=;"J%uMǢmj@/ϤI}wfИ(s #N=C+s jue5"< cgT#sQ5 Lꮄi, '(?oH)Z s!ɖl[n aks'CwԴ=$OG%{?4ÝdMkP #Mn3U5JX`s뱫R t4H) zlk.&-~,@otRBa,Zťa|x׌11E*<&C*hQh`592@,N:] R8Zq&i..)6]n஗D^2=*hVR'5ZH ( Y. ;'牒ơrfJC x9h܌0%V׍+ڄ`R+^٢(SuLPqjd`Y`uk&48\ټՃq@8xty聮0H|SE-r] t.DQ3AS) `w %>e=TFV)g5`RKʧޔi%AOdu]4KLR}*W4K ӿ*MuKPlEӅe6)"˲~x,$c1`$kGS14Uv6ґXo=,8GѿF\IK9-oޜF׾|qDeLPMפl»ܶ|vb;.wӤE 2C8 Ϸfۤ}YW2- L]aŠ,όej 1JnvV,X3 I&+(Ae+3ځE^AUd NAP%{ N ,'0@Nh*ʒA@UQuU ,_ `h,ґAcN,[xiu UlJ9Np6xOkj9`|MIdanEdH%<~^qS9dZ>0t^1*3E"&H6j$5L)MemeziuU@hfWjQtUF[!> v}M )TZ`Ҫ^'YGv?tsbbj,GTK)@E6'ql.%۴)xrSǶ7h'|' ݖ>c*z EP\[d0oknLqx2rR'u ,~T8_KAp Ei`1BO{V#Qw U05.(QAV5;<cvQ]H4lϞNްH鄇:$tD7".ad?,Oa9ddx>\_枀Q\C*ҤqkD!=zpP" WЇGB{5Er|"\pib =a ].DM. Xj1v1:Ki TwI<]q[]O /}m}햙HB{ڠ'h!P""2 鰩V@r.9Åsd!PwoZV rkD_HrOQA-bOUYKoC3oNC&޸<յg 8nFfRSWU8ZZȅ̚bM72xRN4A7g9x \7t#u)pDQp|9*Eäߙ:%%PMԐfM~QP[=YeNe~{+AiX2Qvf3ALa R0tFRW7xLukΏe>xTW {ОT0fV t I=x[DUx$'Bw[eoCZ?]9~fw0}Q @TJOV甙_zCƱ*-6uϽg;w.o&8l 7@!6y>%{Wn#8Hwҽ)~ 2m L_} ]tw^ɪ PKg7RЌzHpip/_internal/req/req_file.pyFJlyWwd/M`4(Gn Pp,%@wꫯ&E˯y .JΚEu9 Z'붾fYYƊn;_;D}s.o&6%o^BMMjU(ާ iߖeq%,L~\x[e, =hyeu%b%Q%,sxضu;g.Np^jWydbY7\>o)6m^}Wf=m^6uu} jY`.]8|&u_9|_^:z fALc0x 칰jj;7/Oq.Jn<+};N5&c⋼_{gYfZTE&_^嗰jLNq 嘱Es*ȩE3_`{N<hsZ۷;#.n&9uKE/M 8`Sگub ]Na_fOe}vduo l1c˗"F|3I(^`)ںyM]mA{zYQ^~|qۢ۰nƪ%?prYfuUnY4]%bVeZnfSy -lS˲o Z튭8p_ib;Z9Nʱ*3vEy6: &B…DƜ2tl[rZFZB+|kί )#t&B3 uG*J@fԟ)xzZȈģ7Xmqn'KpwfUH< 7U̸crnt%(Ψp@Gl@@%GB#o1rT ۪'Dϙ`5h^,(ё?Y&#i\ HJA5A˛ q IܸSoiS`v ^s_k,@bm`Iu% r 0pGo tQI.$9fmw?(yLgaⲂ0gF;; Pn2#g[8\"=2EY!ط1)BFBS&,P/@ ZUCb81B Gwk6q lMޱim;@G;a|;R4SC,[A8eg8g0E9і~<5UҊjG#29hF0x]qtx|gDZ'a.ۼ] t0ŷmࠏ`Cd+VI k k(`cMΞ4ӖZN0 '4NR"͒Dn[@94q.sNJˋ]у+:hА=?CŎ=X P`=8o NJTT35r+7yi. X꼡9#Qnul;yUߪ)ΙDj6"u\P.EG'}A"XXRz\`bk:^g_zx>%Bk:BíW̝2@8 [giyw៰;u!Aa M'Y]ĝI$ݣ`Su(wآu.ܤN[xfC7U0Y/Y7/wfv_!>[9p<*!aSVMtP&;7-̦j @Ț&pl `XM~ZkX [.XD+`[H3n͎)gCeVn8T@;-*J∮jr_Fw*y[9a-Y=rj鈮^)hdݦ/7  C #Ey/|5;+AOr3%*=lݝ 2hR}*XIսXZXMnJ? q4yV(JUBG~HSy=$u*ffZl+ &D- Xv#,;K5+cΌrHQ^HW.$V/(b# TsB1N9qgԡ%`t$6y j]9;l8bGVxbD|!t|0KԹÆa -(a|}37U#R67&F:sP6cf6+UDmcaL0\&/ O[/ pS 9) 嚎qc Q<  [0Nݠ%<_91Grļ;2vLi`G*UVAr#YdG X\@+Lyw#=CN Lqtl7P2"u[Nn3 _W}Gsy}'hV輸JmEV`Q@w,y8glK_нf Acwm{@ʽ&dw:B)69!,{!DeX*s8|Pk)Og y{Dn7H6zI˺mFe$M.vj;9rl:hɰ [*I"_&}J(@qHlz->f/CAP7~M;)HJO !wyNiMEX/lqe$B6lǔ~O9F@K ҙH壓$Q%*K<| YA0MEb֍5ԙ%zfL0B8NE4fl)1?ȒSM+F?$.Pf ɹGE!yq^Ö?M|c*8:Y˅pwq)`E!E΅{ [yI BF-zPKg7RV{:" pip/_internal/req/req_install.py=kƑWr䳓pbNtz$ө ,0K" 8~=\%J+r03܋lXt5Mw][NѸvMh`UQݖE}W&lvKOE}?i맺k&{Z4#;9mvG)*ǮM,ONDyӭ0qFګ]]E^O+V /n7lLUM,pwW+JjUmʢں,WŖjyņ0(CF#_`^EC%uaLX~6绺r^Vt/I{U]G5dKF{֎tT`aP+ ՚MXnKU}UӦn/e=Ts|RMEUL,%oغ(X|kUT7,اJإ[v펞/OYD9D^HhXN!r*\Smh[\2/M Z9 ,x -_ V'wX@3J0֘;xff+p8b0'5_[k 6~MXڴYМ}iLۮawU}S쩢*x>ְk8;dh7"X"ݔ㓡>!zuXVIvm!UH $WL6!6›MlKǴݰO"| OK@}OOG/!jz8K HFKne lfhc";U qע2ŪmT%QX5Ke H}`:py9ؐ´'5.쯛O=c1 oNQw)}8I&bp)8";G WufћzZR% CmY3PHn`^|2Dh"9|bfl^wC 40IQhaί$gB^puzh^[(]= {?%K[حUH4Ģ^t+Uj-gP)9|`)5(VT;+;+zq^6z2gF:m ag+ko&.m|%Lr WEp`#ذU,t̮ej+^mmQF*cpT +HRŀ lMԞ9/@DnD FCu$6.?ȇ-Glv@'rk,DKMQwm+УЂ"-BrpDېl 9) 1IbopX$9vW&Dv$d>ByYO8#6G\{RAAԁGϟǒ[B>;&%4St3t5 iqtv/Ô'[iE|+hU+MJ) &A%IK>7ՠ mihJ_Zz>n }R7KP#==0%:ıD9qg"hԠN݌+g-|/-B`O@bce£8߹a Cu]S$47ȀS1 z놽 I$$gdا58mFMrDi?]9v;w^ȷAo*¿@My8TBqя\^"P§ -+e-CEkAY8]cޝ|3nZ6$\4+üD[Q}%|)odicaBA*X96ͦjϽ^@yc| PS}uiSR25Ϣ%wy|Z3SVҽN>govH|wK3F*te M4}cfH0T;d\*勤|\kc}\O-[AMiy@i,hЪix¡>[6ʝ擰gΠ_jpTVYrxywX,~h9cׂiHf pəqvݫb8s 1bnxK7c#fqhö;[zՃ usCin(2X"lDo]{9 $B@M o\$,ٴW8L*NasY`\DjTg ffS}yz*),XOznyKm? ;JÌ6e(aJ*)Q 4@@X۽@)s0SJ++uhcfVu?}q"_̑*\1XQ7|"+ ϋ}SLLF{*WwRQ=(9\-e'942vP '5'ҮUG6Z젂}Va~۷H0W4Q~E[ 5oP( $.9hCa)NhVoS~2IBRMJ7 =Ex8QPBRLcQW3a H9;E 9L盧q|$tqiISCxd4 , d0_kR2=ȝyl^0K\ՎܝT)C㣄p H( N9ǥC^ k]\k";,My\Ln4>ۏ.[ 1g&r8@Y  [v pHc*?N5$!q5+Y1Ghߕ1 qycֶeЌ[Dug#2_ӒuifҺn!ܲf\j\Oj]ЮtI+Ӭͻ6֣sV!Lߝ>g(-z ~\e ,c`䴭p`3<[8@pѰDJ"w E\TWz'ۑUn]+ Ea 0=*=^g_-T;.؀D?1Hj哵 (J@ qP(ji2t5hSVz (y;M]Nڲ'M&HD&dSfs 80jFf3N=x&9* V`G~O{fN*GۓH`):q]~kZ`q45W7<[x&0P@C~j1 r(jPrq,C\[3Z?@. `A!V^PTp=C)Qz,QK6J1³KnVozрWn[eטT *2hp mtQvSk1S '=CT/~P냺/$S;'cXFW) 8f0Xr)Q-1mK5D,dFFd,Y 8VBJtuk,ȧT]|O87<2Nl~]J}Fx00q}K,*B*$EXtHJvT<)@Zqkf? jcIkD[1<g&j0w\~uin>uh5繬9᥋/.1!AڶŮ-),HSME+}cRJ^,^ˣ|=WS!oI PCnY[0G(~=q"Sd? jRHl & zl#8䊎@A$gWn=1fY:1(kB-ڌNI>7m`G>2lL@A2OdJQ_;~(1aײf&OؐՐ&QS {p\{l1]9RQDqIghvNsShRwZ }^fݑ7(Qm;x[ 4d=~|`z),)eҥpjA1~TF&Ӌ ;HaТK >”^s#A+=& ܲrsȉZՑ ]%cy\MGHGZBQ(X0Sgjdd:T)U1k!o/DR\5X:`#߅rx{:\rGi̜ѹú 7 =n;)5RiWqoP8 :e!{ĺ;Ph&@;FTEHA݀cĿ+ಖ96xݤÜfh1`ߍ5)2ߛ%ѸTK{kH3!9:qSx"x̣)vK},t0~R9$ֳ{/Z#TI6LZ.΋* by/n16^IKu AIl2&-"D2Zx^{ }g)X_i"΍L9Lum,K}B[ XMyJ4[_ AT Ap]Os% LS?}04MCQ$l;h٩{QXML' ) ǩ^˜Db!րEk?XoƆ+0rNZ۹_ S^Մh{eca&TՇ(XɃ$@'˷-tJ<0F!+\gD2> b IB3a+oqwP䗡b%ZL[i"[ÌvQ7G*miöjޞ0q}>3k+;Mt &>etMFSe- 03w'Hr`X)0r uʿ<-dj{ʝ؃΀vގg=> 6 Z&׫-0>_[R:k;}/k<~O\y:',OBo(^t䈺cïy}]7(t`ϵ^5>4fBYt!lšcr̴Gĸ#R\Yab=FskԍۅR̤VU~z}{u76V?nˎRy,T3x{{jq,$bCf~N8?v1- Ioy >s]{8|p>gp ޫ`) D&}5{ӱ9Kǧ\ ;S|4p!I 2W}>Y͹C`f뮐l Kjܦ[/#>j<}<jc|3!ij[[Wv_)(Bd LfO[9/z g/" /D͋H0?ݯ SFr/ ϻxQL)2G2TΩf(xϓy щQ,nE6 F6u+n'-t 'ZDh zyQStz̞Cv)zxjU'bK a+w9A,f,n>[ԁn~;q;ԼlWZ$,}eY v< FJL" Brց7,N d |[`xϣQns $' ?1K:1ݷt1ﮠ9}='=+1u+=!K~@T5c"!\2NŨG+VA|ّ?f7S%#<[Dŵxp71:1f7ǣ%WdfR.$LBea :Fv&4o2Ǔkx@FEY=1yjL`wUWY|@i `!PM׮ke*I9zF'ٵ ,A +U`?$(!VVo.F d 5r ~ug( ʓPKg7R7pip/_internal/req/req_set.pyYm۸`骪ևriHr8 6nΐz!%IM,3gf}N,m֐eL*U7ﴒm}Ku8p'\I y#T{u5?i̦JTie='mr^R\CVl.Lcwu.%Z!*@ {_!K*R4H6 )~^7?\ \1>2`® F.$ie cVp}tEm{צh~28#bܖK5sHB{Hh, ˏg|(2}W[󂔇 vJɘ;vJWxOH=WM;5jfGn$`;V|^?ÚAᅉpmI-wdۀPQ!kKaer6F2}"LsS\9tژb(cw]ift^J_QdkN+QFLvJ -lD+w `ay29HfޟSڲyvtaOB?'_ᐭ4̋,K{44o% ]'_ƙQȣ(@th=O9֠HIp3ntEgRZQf8%evZ_cWW_6A^#7oe_% "\y@cVQ_s %$MSSo:qW µ zq7?Xtt-OSlػ#0vg ~9;@~K\ H/4k5nA VS+V`]Nxy<*'14$=!,…Q o$VQ4G&J,(O^[ *Ѣ.(n|M%5땾Q X&RPd N7zVH-c{ a0zmCE#yn@ ndO(DJalFW=(\B{L# nr?m+bb&HGgc0ԬkokܝʬPF,pPG^];゠!:~?*X4=s.V~A5^Tȿ֛AzbNJvVmo8MA:Hl8dܦEl2cnnTل՜hJ·G&{ \#11َkŰs: r?y!9^$ߒEwi r <߻V$X17} my`[;VF3":˯ylȤl" %.$5<#bO"DlG!7 P_n O;b^b0@x-$8rm>]&Œ8~—{eރwMSJ?#C%.->؁#/#F. [j/aiR^ uaoB MIړ)MĴM 5qy<؏p6~Q"_~EY=֧~$^Š|tnAÜ/1JVa5ۋgW`}3:lYڝ {ģo0sNnՌSHj̃kRIzR <KPΒ\qv!%5\+BAVFDv~E5M 5z? kݞLZÚꉙ?3GXZ; Xt@zV8DO'ypUceTP3di c?gASX'h.^+j[jVb}3[ȵn>Nj4c7Ht>+\5*:DKuJ`(7DЛ02zokI*HF^(FlXYdCCZvz'4x|̔&fy3NSH$=D'w pQZp֡{k dXԙK JVZåuK<͘ǠIU\bڤfKtE> 5mC̀ t4Lw`%YVb|孭 vL$ @CZۆ>s`v!+R` -Ei##{)q@Fű eSӤkޠui.uA Xk&%{2Ooo^_LBR?Hɡ:MXv1tWΠ,RY]x/b%")ɽTQ]!ϔ:K;L'v_iPyrJ:)r'dlU.7__{jo(#غа -W@ίBag5K݆ݓTwvb33|&1Y1pp<`1J1pu=CA2c``h^H(*7:d+3{)ēs!~K5$$b j. >T&9+rA0;o!6'4SuIhLb'>Q^ÿ ڐ:ja8h?PKg7R'\"pip/_internal/req/req_uninstall.py/~F~)JgjE*2$B%fUe}ҶP7.N cw&H͊wů ?/;Lx?vl}ˏd߳7?~#-A!HB87?!/-5e\+@N-m8V?o}%gYG>RO04a\rإtP,p۲ |2ʶV1C3iٗ$`3w>w <OZ4]ӐdyY-~7K^05k XXu.H?'`k8dSQ؇)xAl  JAháu۞uZ4p}M|_1~[H% yFӧ7 nPЄ%v$ 0[#M~ui^3 K^d gU&"\1*6ܟA2ga\>7/Pf/VPYRMK3-Պy8g@/#u_섍Y-SGȞ:ü3 28h ԣ j pRPzd;EhAO%$;$b&TbQQste:h8HMI}+ֺv&mU3 )t[Wod.!ۀSZ!5㐤!q% B7qg`55whb `DCu qMgh,J@ͅsvÏMsq6%Cءjg$1p]D;,I% PZ]\TZ|qFⰲ $x"T2^VNX j M0T00ᒫPm)h.?1Vվxrg|Yt+[0~;A烢 78fFrMM$I(%j`)x[$.5sb@%*5`WOoj:I,CY` #t<@obo*PSN*d?[ahq2 I\I< Lv,9O$'ʶ9pe\<Aaȱe>nI"}~ [:$ ԰0,̓[0|fw-bEhY \Ӄ3 Y74{pи -#jTΙHzsT}B|@g 4$*D$Q:Ι~4r"iOrLҌf87 hA)5qzn;b z[5"-a[lkPm_B1`@]c"\3r@#F 8mL&H7 H w7oEr`6Tz+<`, DG2rOkX--y9tCLq](Vh[^h'+_bD+^X-Ae)Ѣ "%u9аkD)ʝ 6W7\2O}I :F2>`$MR Den&RP5PQLJVֳ>"R5Kn00 k8?R%#ĔK!Z_L۹³+(ɡ%T qZ`;tTZ dъ&eAP*r$\C̸+7۞mlK:]V֍,#310mrPNYQÄpz4xa<0_t\0٭R g1*rRw \Ry0:0*[r>(F:qq<0aZU9p>[^YYT (\?@Ei1CDg9v)Ofc@+CPG)R1.a ~Z|d2A8妐! E4Օ>7,$a >F<D+L?YhR&b竦-X+9D\L-BUd9$s_8[G)8>4P}Z1d0M,P7^⵿c$A\;6eeAs]b8W!-{ThsQ15${*`2ʘ:zgvj0r5d= kHɉ''WL9*-1-Q†@M԰>5euQud}ށ'X wۺt[YD>CרDA7Vݖq>!G8J Q,+G3c Ag֥اvdcG%zQ65YiYeM)J5⮃^$9 _^yCQpр\@)F=k0xBxT,>` ThHJ~` ¹]?'C;-oJ)GƵŃͨ=:tYi%1KnDx^Y.X^ծkjn䑥`]3SϤVM@>k.&suꍝYM[~3mpυu:&FAj%-jY<8+oJO4Pe= $sw8Qr3́I:B h1qDr 5d-G+yXM*l9,I.M~)&VU,4by΂5rk:g_?{K4,[u!b0H.im}WsLF>-&\{y2x_d9ʼGf*2qd&u-sCmppC)܈ʝUq.u\&N[28A:GJ?8crTZ5yR0s:9gڹXacXA1rBAP 9 0g)"Pu# w'Y2Zdf?Cg0A.&:ΜJl߲|gpSEJ^,KSTxŞGխ]NqWTkA5EϺב"E@eM3"q)5dq=#$wuA)l'Wzƪ(>(i(1HH9MF%9ݲ\QSzod"5u%V>|`xԔN-|7s{Zw,3yQ9SpRX9$1 "=,X^х dTK 3 6T'ők)Eq ߰3[UL{멌\'Ț%|Aj1Ud% Tu̙[x1Lɰ SlQ'luHs#FW yUhyRPu`;> ,iqMe_zRL&)LdMr$H]*1La~ LvG*f`xŌ 18 qX ƽ# :1${@&\̦?Jf:/pf#$!/87jjlWit24rרnz 8<ƘC) ? 4HLO!Ljp$ !aRbIDM;N&L`0#ݪH<l:nj& A2{]7@߁bo#()  fJ<"&#|OAD]T{Hr!G Y˒* sXV)-\%@~?q.qȑ4̀ri4LGs'/r9ID?1{ 8 ?IF7zGN @ƏޏSiN݈Xٴ t/H&7)TO8M(}pgĽ|b]5PSd2r=S[;2rFuRX ]-Y*S5tN,Cd =0Y Z#8$6\{Ar]܌Coxh#̥ 9[=g!MoZ^B P`Imz'RxW@uZ; G>Kpj QA+z 7ASb+GGdS+%[MI{gB-4Cn\Pl E#0Tmzӥ&aS`t"+lf#Eu RgmRg܍eXWO%C+?4ye˼[+ X7o²F/ TwgٷӠO#[A/Le B!V)_u1BM*'Y {YO[U:ծ{u^X 6< EmuW)A_}FxUD<(;Ե;Dn-=Dr^ɑZ}EFEP/G$*nI)R5k|sIK-iW񀖂9Ǘ^r@:~;OԉSƓʖz+&Pv3Ӄ6Ɇ2f00x :M6}߽F{F zd| W wdZLR8/逽Ǘ {lz#Jøp] Z|um_5 4&~$<05ldgpV`zn[KˀQ:G4? Nj% =U_QR3pc"~TmL@I{5>ǐn1}ռ0o[DGe0 .{޻\^ c!2-*לb6! ԉp}Kn:`F/PKg7R+pip/_internal/resolution/legacy/__init__.pyPKg7RUv:G+pip/_internal/resolution/legacy/resolver.py\۸ 6`ھޢnK4Hw(r -6oeI'JqofHJ$Ey7.pD(E2;BUEʪ>ˇWMɒղfRZ49qUQTj6gM!E3d#Nl%,`8=V7/"k0Jjϲ2kᗆU%ڣhy^uBKΙZo\ȜSaid[vþ:7@ e3FAjΖ-+s8,k#|>͞1d,pԱꊜ0'"V'J{wm׈Ȝ&m*:0/oxD6X\NWfLiYQ:پNY;ͻaE=FiGdG.A%L&yvq;@h;*8F˰$U`yQ woKE$rdG{]oHD\_7M*Ru5$s{Jzmp~{^<G~6>f`f_dѠi0P (\[li=M{&L0 cgI6SNRe})dp+` oBWuA";<;I"z=X7r9ps}R~@ҳ,yIF$ vmI5UE|}DNIT̘5HbI ACddNC\{>x}b c풗9> s9x( 4fw%zL4J2r%,6na;yR9gb! )਑009}`vUG =늋u \2!l3rtŖ@'axB4grحtU&m &{h;ϸ{^UXsSfEWur=}d&:d)OH\%h o"6tw^tMNO! xݣ d=A8(3K .uUG1sۈQ^4"A¨6U䶓VXlY?L颎|I ܧ3]->gOXn=HznDBm`Lc!}}}JחY6'.\\SCݏr%0 huHxEg. zm B2GCzg3r:6S/Fkˈ-Ƽ(DР1^zaW 1%Ү܃6Q#$ʻm=}tv|i~A޶#ڎ'|C>'߀C|^h(xDQ tN4 /5hRX&Y=P)t[dSC`)F z D]I!n]P^oG'kB`y}O4EA&D'A96X'μ# x[=HHCO?lϾM-#=o4MDY=r-#kĽm?K SeR.> 4Cob6l[Hu?Rcj7( m 8;<ğuOWKOOed}YٻĞWaVw5Hx5I 9uRP^k@;=R(†* k1""'w5 }a^cEs"C5J$i,_{b1rvvߍ$f_)K}KQ6 DeIf.r=uMLk1je:5iӮF'.{lܡCMX+'@Mac*ao8[l\55z bz%W gs&wpTdf*$$pU$zֿa%zE»  8SX98K` X 3nskOwLؾ=l5!s'}[=^r51NGE̎"Ʊfv 1|^5 *t!Q'Vv~@dr@i6r` E2Eiܒn| X(6N3ccSBMm 6auS@ȲBR`*7e=X$ү $tJNSS_ 9?Lԣ*xI+fppXo}ƖLIU_Tz j9s4ׄ~M.6qF@8 ,N-}Tr9QbLŃ:LKYx#,v%΍!_6Q$Mϫgm QhΥG! !z=TxAehC8bGddqǿ- @*Tuw 5|ݙ{jG~rij(ѝa,)a?*?/ 4"\+W}iI4d~@8g7{Ģ=]nTUs#v8ֹ;DszВG? qOG[}# BwG AH,'/U#$>2Z`X o1ƾ.;e= Ƈ ~Oy \b{?(7\$!(ĊlC/3DRfύsܟs ]E3z/ X?v`{.]Yc*r([İ.{@mwCNlp ONLt̔cU?u^f7;OG_"x3ܒ~`Xvfc=$9pbPI [V񆗭뚎u~"+im>^\ov#/!ກVv @_t0S#Co ,ώRPm##KFx4t+8Kyvvzd-Ç?uSÉ !z!#$Ep<o'F^g+W7P6?^=>w돩XE mQd&G8KdǁɤRqN%@L?FQ=H;!IQ _S/B$^HUxn8V-F4U:ʺ#DkM~}6OΑ$K/]/9՚KGQI*/wS`)T3vUF⍖TvIaU8R{o#oˌ7 RV+NK0x0.1t;Z5m3Ժ3baYyĿ{8Ij z]1]Jbcfsq۳/1p7&(|~2(!uJ-;2=tɮj87w>NqwyGΌ&Ӆi˵g6fC VhZ_Z?.4Ao %s U )ZMH A8NBnԌ#1PٚH]$6Vi1(āh#aNK) rӠYхja(QFm7XPfKxWw_$V⥉N E?|. Фbuba%'IDCtdF.F^ѾX<\C6 Ef]"8A241*%U]0*H>wPQ0^3ֈ?O-9bxJ4le>:Hs#]Tl?s㷧+0EXpw~}9O'tzP׻uP_g|0ӫT՗q4~huyw㖺wX7=0GP1c?¼*~pSqQ<\k3w, 6^-S!dv)EʟՖ_PKg7R!sCN1pip/_internal/resolution/resolvelib/candidates.pykoFņF` `yMS4mI$WPښ"Y.eG5of͇bvݝ,-6MvOOEuz OްF4ivΫn&_8- _dzţ$\ǚ|XJ^@ِG{̙2 ;8@<{,l_AZ- :f[t~=ubkYZ@( %˙i9(ˎ]nͺ5g]B8F}1UësHw* ɺk <@"sR5N/#:eY ٦a.)۳/NBqij !vހ58Rj;І1/A4_A cq0K&;ОM]@mhE'L%Y> AEeDq[8I-j[ F_#$lՉ4CtlP3h۲`M kX-H(iԳ,$ Tw2$r-R#Jefe :J_ .˜Ր\%ń8~zl.ZXLA=3h*Jz+LBf_?L N.LSjuiwF(ҬIiݯ< zѡ] Gt4@Y8bra@84\0xH<2L c f;m7F''ʍW=Dhp 4bz};GՖ3$KM*:66''|\!1'Q 6 Ej0Վ-t:c@Z,ˣϗB'z=&3wd5R{e/my{Wx.u Kt},>O35hNHJ?Ϗo.`ѷ$^~5L^WXjLxZ(uք$8'x 6 l)sKzl ҕqAK.{_Shp9e M>4@+V& rCCyG-6jP {APGƞqъC[& sOD^˳l~,w mc Pu'Fl`D&F6o莊zV9] WF&'é>MSƼz|$ 11kw!QcU([?r,$-wȞ9Vޖ;j`حs#n3Ne7=@$Q8;#A 8`EmB."E(P5Je`qtju4IE%ˍ  ]h'eQH-+xZPaW#s tvԡ Fe ^؃~9AWK="f,zw[ Sl"z?ݕQE5ҋ@6b 4lԞ?sʮm9OE[wKm۱cIFb(A``Haf'xYJȂvx*0ޡ(+qWfu. 9(me@Mʇ)v&YFP9Ze7\錪Z7m(y1;R4^Jt43UJWoە&{ b(Jp݅C=PM&̐vtFpӺ%aaҀNC1mͷYZ`_0~LUgOνŰ`FnZc\Pju{/Ï9OhJ` (ztjC}^]iϨL8햻]-@Y:)l396K 0# &8Hǂ% 5_h{$WvUee!x&\kz_7//}u/M18߬q5F2{&6z1y'pЪ5Hzدx©ǵcL'.@lvMoѥ[筴U삊笨!{d. p-,p^߅ |Sex$XpBT{9^XA @D!516m^pNM3d+P1OhF#&m̩*fz5un`]ő.b40O ZԨޠ|Lc݄ ^pع47֪1w&>\et8Cw.J6QD.xYqA8YWW8~agul|-֡C@xJf[^{s iN&nv[طvqmXzb`@'bl +INl^)m+d履;8aP@=@aف2l(8BP .r [?ṪL8?ljl`""lYh_@[%rEĚ\uڿ ?/9jC.d"v6F}]:ۂ6 A18Ccp{:]l(VJiAbhѡPfozyjJL=sKg~ݕe@GwQ :B);>zg?:xBcٯ'%=!~1Ei*X/wQ ](5|Z!ʽaW°l[2ag#H+O:)Ǣ+ ׵$**d@V uT;#!A$RC]:$#Wc") _US ^݊ Ӏ&LVԶ[yUxOW}SA?(l9xgg ܚhѿ4ɤ_Dma4qgBA+)PKg7R]J.pip/_internal/resolution/resolvelib/factory.pyv5鿧U q_%OU]t}8v(n/.v}wv}~,X7Ղlʦ, ҺeߖM.?T8]keä́^unj+zƲiJ|>~3m}Wa`&r[˶lGvܾ>q/eXr趲;bBS{+ u{ySypMkKk9yrKk5?Pϡ-fC=BɀVޫi@BR"^r[ll^T)ꁼ5VW ޣaVY^C^䏢apnN#kNFǛKI|B7y@W'jV $4|U{5 %vVgj%sKQ"A3: %]c='[Q~ݐÿ>1rRU&p 㞩cVI*IJ\-[) ^2+S,oU!K鋰8Rʽ)]N%1|T͚ek4Ô4Q?0Ily ?K6 ɬ0 8X1v⺾%?[2@ ^\|-{)ewH :]"0H2? L*;r⇜  1njA{2Au4tG;#|Ki(?Qaų^ZM H+ 2y/B;ސrK`P^6ް~OrYql>|1I{=%$k$Y[McB֜91eܞl">`c1GrHАj>%DS,KDF{^ &EC {9<lHklo@ԕQM ٕhTSžle.t*k дPNj}Vb!>M}< ^.KZMߵ냐4H+1thqzLUɏgѢy86S'W$FC4 u;ZfbT a/i߬~KDŽB)Q@ѻ|&OlX #z3)/Jt LuhܥOT O#Wzbq2?'ʶ;%ba-uogHT|A̾bY6M=Ќ S͗7Df5NÛNML,4JQ8q\FS9pD\lhzK4w\15opyJI$!? gLfO:;lz'Lf"|Ψ#>QQPǏH̀؜ʗ((9a^L 96KvI6JWb9I. ltS3&TGco ѵe3UǹxRqXnlokE,NWGu.LUx1S'"W0P *ת&swu#UO!FrDyXhԍ2B>96H^|dV),PYת0 Cr&{RNb 257,\>:JTey(k$VLc՘̇b0'=E X||p2n$-ooYx.(}Ux-5YV7 b*S sp@yCxGY"9ƐփP=땐5&m V7"a ڡ0 S%o,?ȁ  cڦ+X'u[(Oǫ}ݩ $JԣK8P+(GnC lV22ۺepIGEDR7Lc}Yp&[P哄cLyF;Ic +L7LwO`esC+7}j6/{ӣlb_,꺎rgg 9܏˪EPDux޽=2خ7WFwM)]9݆VSOJma_c2P XO6:?Gn%0jW%X j/I{)b`_{cTQ_ n /|\pjjD9rlPr4̆w۪nj͸a+sŰ/. ~#wdﺞעꮾ`.$vn=} - mIS$uI'?@)翑14=biv ϠB8>DpP 0Q,&}8:}iW $&^ }&>j(YT_\| 'FtM^7nIk%NMS!HKv!;+.S@&-CE']s*KVw~:Y9Xj GDAyUשN0 ,%\IuSN/'yw7]tj;Y"  CF3rOf+Q󢸇6L835ûèzP7xCW^ -ވR9Byص5P6Xgym~\0F9}6U5R"Y±SRзCz&Ҁ[SL1Tt,Ed2J~>~Z>6vEe]zQ5> JA2{+jɜEe FN`¿sU'Ncr䶅P.zrL+)_BN!HшxestBbk x7W*0.U*|* e9()^,'_ _j@6קJNoiTuK2@^1)yiBKAlՕf)if!P)!ؓ`URxƴ!$x~2o{gy-nliUF?zT1?VCjl^mN(Wt,{*ۧ S*Z]OV> =^>a:(> PKg7RCs7>7pip/_internal/resolution/resolvelib/found_candidates.pyWMo6WCwhAS#in&@ÐK"U}Ck?^_vWyo^,*("Xwt$ i* WULg(s7YP?_<۽mK^2e~ -ׂe[%57ت Fx۹ 9U`U6# hd:InQm!ɮDp$`ᣑ$.=Q# Kf'CG}4k`$`r;Uʀx@1DUll RPt[2cL7<'d[dlXdjZ] >buZʺܫK5\"_M)ď"Z:Π: :GEK۴H]WEsqǛ?.~Gg_M_ukw˩HMNFz|dYVQ-ѣZm-,į.1tf%^:<@WnoYE[pT y?2ȳb@X]{dj01^Q>2= 8n蜁(CUVRgImue95%cf:΀>ϨgmN|LKk:p|4t ' Ky-,IV#%$CѿzCe Qp(GX=60H.?GxE<0[=%Z7g]"]"el(ЭSR!G1 ԝuΧ  {Nu; '&LQs )<˞eދ.fbAQ? i ˯uAA~o:&t⃋uy[CE#ju;f0yFшtPЛa>c!"˒ õ'Q;L ^.a^G M?N`1T1=LR*}81U(JO^(I6iP䤾2{X$#<( 7~XM8?!dst>le4PAcRW62.iMΦ0q1}yۅG>J1Dl,t[t Pscu?Se Tj{N*+f8g-S-JmWԗT}gC蠗!+jrϱ< -! x!軚' O&:Gr+Y^t3޴ف9!6Zx7_6ɫ/tjV/Y*8־wN?f@$EaB0d`>}:?KPKg7R?j /pip/_internal/resolution/resolvelib/provider.pyXm_A>5EbQXlfquqC,2-6#9ϐz!e{!QygdK3-^D%7YՋ,6L-yav.k+tͫ2=5?p_lÍTMi6 nf b>쟲)|SRAG|iE]OmC?<Yƺ%R^#~P9aٽ`ZT0{ٰG!޹W-eK`S3=*#L6{O/& ]aI;Lm;}z6fVuX/`F?=NG25;*̎YHՉ.g<0al&^5PPZI)HqJڣ"[JaݧщBdZEɤ)ťlZ&yAOw*{Na$׬ʢ8` e~඀kZ zf+EoNkR,\YKѠSɓ3dq*"ƙ u, 0H-Q)|!:8,v*)mO}V8;MdU3Gbe~0>.ʌNxs3K1m@x^d̅=ȦGd MqK2.C%X?7.;47rˁ|a')%z'<^FɈe+p!YXQܰl/ ^/Zެ1i^bwqYFD )ŅA"=x;ի:xMSD:A-HT:%>l>~IGTt׀ !q3OD+4htOÝ Anҩ:d#"4AIe U0QW#&tɽ4=ވ@w+P}{J\٠钋Q:"ѓs^ VˌvM Mcʵs짜QKdJ9x:k6;0  '*[t Pt٣ZCnKRuFm͌ȩ4^OjJMŝ:峟Ц*HBSdJx;D2Zs}ʕ CJҲf[(hm"'gQm@j5@qJD1ao4c8"Hˌ=4MݠyBFqFcPYvYI{ZdaarO Erf$T'(FXd^~9e,F\t cm1c>7~TAon9WO/q2b⸈_/Jƕ)8G3Ϧz!mM'J0* l:1^n klRt05gφ:tDLjO?bzO3;#!9$k*/ (.L5DWyGƟ6\۟\;W|?[6Qyr@5\_ aslw/)]Dǹfx u{c@ky/W8bjvsb&=rxFM b7l]kN<)1ϑҭYop3/-}C5r1Jq߂U[i5ZӀuh0"뇀.+ NFY-U;}bׅFEq/[/hHjd4SBw'zhw LkxAC#?|IKa rr+z1VJ>#8{%V<=(z ɼS lkžQgZ&^`",.Wnx' . &_pw=N4*a@ٺPo.ax*)0b1O9B?86GNNhC(.(gA.|M&9`9m)-ڍkn 9J?d"c'D:+^7 d=`.+dIhSށ@o-nҜ4Hr YmwqQp1XLD5jw%a̜K 8Vr(OFv&zq~ml U~dRn*Q^gS_܃,.UO OJ}eɄXdie|BE4L:eXдdP+50kZ?tlؗ:QN `~kq_K4R\_[MxD1_i?PKg7R{) /pip/_internal/resolution/resolvelib/reporter.pyVj:}L a vKhϴ!b4XDTI߻4} 3c]ZFU)!0s\I 8ȱ`p9ܢk{ti͢\'eLb*q@wӯF3dV.i@2Ԏ w:ݼ}y^}n/o ^ A#.ژ.|LdGu&s31\ךPh1UJVaF4 f-|亏m5 4Z|TH)TteQQ+?Ob\*ga$S~%nlgR%1&Xgb/9jZdSҁ` sFfYR[ uSTǵ@8PɛvR|6N>VKge3Ui`+A*0clfo-rpyd|c^[='iE#Jw%Pۚ'\*/H:CB)jPM2;Bg zZ2x: ™Z:^aI`;vNKf.#ɚmh㌀sVQ Twޔ@)l Pbi AW:;>jpujks= oG.o,#rc#7d[ <=)(Kr?2,]m䨡ҫC4\#{k Z-/?.,en5=H_nn\i?:t*@xQ@Āt6ccebp+et>5-N'Ws<>1Ѳܱnmwu(NLNƃBoG6F'#1hf;j=,-sJ )#^6#hN) ==PKg7RcQ3pip/_internal/resolution/resolvelib/requirements.pyWmo6__,Lگ\ 6}Pd@Kg5E*$ wdli2{wgJbU݀(J+/霉yZ5ae%!9Rr2AKf^ JPވfUZwoN~:??;ۊSa=\LA $d&UIMͶ@~fl@y>W> Ľ .hC9_˞5?#'T7)u5rN&o*rfq70#L5YbϠlsцc2brK~N0t@@6մ ޡFK>~*5wr0CMzt'Μ,kV2|Y!'}]?WJV{ _ o{τTf1 "+Logh4kL[RR==xAd~g]>oXN45L#tzJɇ* {.d2 ڤMBA͘f"L,!!G "!B|lI)HHk!~f=#s9#,TqW:((00Nߤ2eI/c!Չ76sYHCE^AB OFKB4M)%oCIzi,)3 HK*WZ)(!,dmU *8oRv!wY!N.P-ckT7@M/:gl]#* X/}8VqfQW^4bbU/TF2/ʸ/FeT~<>zyHN §fP ~c]?{ډ-5{tKΖ nCȍF$ qnX ΀0oJ۬H=CH49 7) ,VvƦ:;[Y¥;1zQ 6-hQ&&@pj2z /\ CBE3)0vRxGQwy'Kk i ewޭmYު+ώKHG&EũVi7c{Ȯw׏}XC$t?tk7l_\~tȫ(6N#mwxmmɆ'O=A;>ue b שZAY _8ykAo(OYp'mۯ1v_ќ?D%2a*:\/PKg7R+b r-/pip/_internal/resolution/resolvelib/resolver.pyZmܶYթv0㸇 $.qZq-Rw1;3$%RW] <38eٶo+-eV츒 oĕzO@lRy XW/!ռk&w? eӔE.&O<*7κ@J*ӣԋxqrnɮJŝ}Xb˲c'oD͇M}#o죇+8ʎJ_vDތ6y`ӟyHx$ޘ7JhYA4p \a#l+zDEaUS*5_sƀ)- ;ᑳk)[˶9Yyk| _*D:~or2!ʟ-zE *~n)p~1r9Xw'+^]9 VvfmPk23x{.ʮVҰʚ;qhܺS.;2-ۨO.)˲Ҹ܂C%)d `j-d ܙ;a9+ ^9`S38=|>VAamOϠ>Xe|LoM lXi(6E>CJ(c‚qpMBf(uRjT0t'q/rRnwn1D_F/]U >7uS\m Eda'|7Yҧl5|m|U=d[0]ښQ1r& 5(W: 63aMUROPTa+5-Pj_lZ=k}p~ύRu.P1Gg*rj0 q% j,ۚu㴹:2biYHI*X vdFGwJREAYYyDKi,blf+-5G3OOO؄~(Oϒyg,e?oo_?_-~|Çk 2ވNSh=zzlD`RH~o3uw 'Ey#O 6jwcGY 5]ɾU5=b$ц 6Y&HӘs@bF%T.#ƦMhLʸgk䓄ēuÃlS`;֜$G<^ghވ'  &I8U )%x=ǵs<*V6/kȵ-z:"00 qeȒmrG~a5;ʹ-Y|LNt6ո Il۩% -{|J' 63=>˾N@6 T -4lTO^q{BfpQݖ́3ZlVc8KG˼`N{qIHeVP?UF"7b Vhصh8DX8qdyD 9j"m.Vx酟Oi[#9Age}6;Ό}P8 Gȡ( 6][y}88U!2?qO#嵂]VYsN;cq;0A2F"YgexjemmYKc;Z,f8FNQ.5ۗ7xL.{B=4 ķ*ҦW;eȽ;PBofO,z/O.V.gG$pxPgtkZXS^z)!Xj~@j_vPSNز7.Q|0|C}@jhc4g,n╶*ky6q*.h>go/˗Emfѝ_6jU&g/s%/-ǭ]N|VŇ9/$,Xb?tICz6k[M`'Qebر&Mzu㫕 H][}QAvRq]]&b;ft5KCe$:ո"$ey0HȎ߳Sz=,1[prnO} Յ}2qnE 9d)ml؟S7F@Eu@c̟IUf) L[`“eVMR(3;q$^cN#-\PcHm tZĜlAeq^Pb ^D}ص6á՞~?6dXGѷ6BAJl0Cyrbնt3c'D)Z(hA?%pS d/t/RӥqMp2T力)p#oarg6찃P;LhЩB( ~X\GE=Ph'u7Zav 0_drAXypȓ&Vא-m/ޅB~5F Rȍ]L׍ JH)fUS*]\V]JٓQ}y/*P% RJB;##gH5:ʰ ~xW uV蓹R6եML fr9_F`Sky?{LviD_*#,t_@4 On KXPNWK?B8c";Ǐ &!>ޖs!6P?\B)aJ FXr6WN58teao!/oqc/\n"0)ɮ PKg7Rpip/_internal/utils/__init__.pyPKg7RbqEpip/_internal/utils/appdirs.pyTMo0 W! zP,¶bCbӶVYDY.l?G:M䡕6NX"< tB>8 B$tVxfXm\*s=Xi kA%AjGhp? 37NTA(='h]br2YEܑL([$ړڙ\ Aɨޓdnh ኲb>fl (cpiॢoZد>) og=e"e&\,e-: W1o`J-? I.c"ָ{g'IeswFts% sXN8WrL!xt=mcpSӣM63I1G|Ia尨k:g|29q科O5g^n~*Ie K@5GeJ8m뽥q9ü.(/cèͻ԰Lٽ|+^/Ef5/#vOW8 4WPP3Av K$7EY4씝tiɵfgySlh6^&IEGltqr.+iArλ ޟ[3onNo#vz;x;fC1"EN)F#6v 箢Y#ڰ)h;:;b:E%OуqQ4ŏ:OzӋ_#f-ݖs׺-b4J?Cqƍ:75=HL?Ƒ&Y&M(m'݂\Oή/Y=b!qfPKQ[$H rzˤ{{h٨TkVu~m,Z 2)4a*$Vվcwpa yش+ՈC;`wvDN|ƦGˈyzJ@U 3:uS(/ Ӹun@-l2Xuż%6'eЅi8"EƖ+*ArKz^2R!2hUBڶ/!EU ꡗd1b9Y榸%BP6+~T ^x9K\`C@IÌdUHRe<$V-T׊5q3T`/c4fڶPXU"0V :Ti1V'FO.K $g;:1B2Q1ED%N1;Y`Mmj>iT |٨֠ 0h l \ 2n8*~n=@ᆢێz܀(["?F{9oW`7UK|lsfF1@ŋY>*L"lLݘ츆4ZUuŤӘKUB"TT5ye!jU8,`+|]9"b:yS ;gةu`f)*hit%R Vf@ mA3d^Jxljp}y^5稦T"  pqk V95!qh"WqjV+ KA;L8LekMpn#9cek܈촐ӤgJñb>NM>1ת0PUUu1}܂xQThy~XoϬgZ5Zm7 z}5<-ZCֵF6tw`= cJ6GrTY9tne.W{,^uN HZe|ozOo\)k튑ıhӢw~-9nLj}.ȸ.`w9/P48^yY}~B%$ֈm[gB?XzKCprءGW;|;I.riM9[o$B,CN5ƫٵ_c]rMR1Z@@"7ݦmx&sia-E . ^T=ډ0h"Z)iAfC  X^T8H]}WjD #%U%  >CG & Bl4l% hPȋP蕅x4nO0m^ȠwkuǛ۾}PXŐV)"Ub1?Xb< &n&1+HТH Rr*2kb<вA9zy J9,tLfb՞~ЦwÁcrϕ&g߾ڐ#}ܭ g)+1dʤ=( q/bLgwoel#z\4Ǐ\- J_kM4 ,-yU_G6y0П3IZt /?#ʺG+b>7 %H%/5:V~b}humy3]i]ݙa/#"|Իƣ;(ܹu XA6ߛj_p;/Yɞ :j+Jo^ w3> ͂mB<) o"BcKQ,&t&oyU]Ǐ*C87ďv5hW!SS&?\ ΰAݻ2S=KIӝ[>;5n*"~>Y.'H,"\|5B"=w/_Mw:ąXE;DמvxKݨ wzqb eN񮾏yOƑ:˳ ]O?n'?_&|o=kzwNghNSFPKg7RL @:)pip/_internal/utils/compatibility_tags.pyXmo6_qS>HF%N۴5[1t4gDj$Q8F;Ro弴[>8E>{Q/֢uVp8y D3_I6-?pg0X" X,x@P.HJs?TqRq}jͱy/b|5/ɛ m &6ў4ݲqyܡy~⌚9'Wz' mLJ< cCe-~>T6o:^6с(a2,Fv~ԚrҜ~ !L Z&PLכ^[n:ؖ$>h}5"̞шvV MXUJ=e64@W_{f`X9OyWAKK@\"} /viJka콶~ԾLץ~vů;݃6~u۴s୯O QnkmPKg7R0'pip/_internal/utils/datetime.pyeA0Es9.FSdВ2h d5D,{nx 7˷2Z#Ĉ&QYZ cL^Q]ro͢ݤG-ba+ 'Bdyi%4!v8SuZgz GNOPKg7R]$6 "pip/_internal/utils/deprecation.pyV]o6}ׯPfc1 ik"E msEE%@1#-Rs?4MigFK[Ij-w1ZU| oHt²#2RV+S,Ia0yF[Ik9"itI+IV^$Fa_Uo`fwWT*'ESc-ˋRN&ښy'IfHcwN,˪46EY^Zuka{8-y@GEc--VBgWesZy_w}}b*!|թ긠w5C$I^ܾ~{wUwӒ!lIs^/~ y[EȍUH=d$3F&Q¢ &W JcKtNl䂀EnJC;A2qeRsKQe|7O͟&Qǧ<=FAZ>KmVB#tVSYvw&Lq>rf\ig-R/'PKg7Rٲ?T2)pip/_internal/utils/direct_url_helpers.pyWmO6_a͊mTU )!ZZ^N yﮏf8q `{f˜'ԔB u2q)볈XFW\ZAoAũ&x2U!ДإLkmV/jh5s.}$nd 30 M#lp*0}RH)NJM:Q,hy:hBZLM/_6=IKfp:SVUcw^-LgSϚ/bq(Ő ؘ5:gډӯJȤSYik-C*:X zrĀ%](ɧ0@t伤9˗<q]9>C}OLҕhW>>4iH>B3?dP-lG(:5;}2H7Rf YPXgX=[yVe6n]RdT: <o>7H $0ӄj0 +d& kd΁xc&Xi#}gzJ%+Τ #]ZՖJF@"D Ս˂Hk>20\nT7h\4Z{ca37t v MxAtH5=pP:0\F` Aa\VxߛSY-=̓VE("_`ΠM:TkF׉G(uCZulԱ䠘wAڣp(;ݒͺmMv0@m2{CMH? mt$[28H_CY>ځg{%Wa `C^1s] 6hTk,hu:io-ƭ3v 6b'rc oߟ;c(}{9 '~@ih2mz+qۇ{QbgKи= pe/&B8@{[ ;福N@ĥp+^37RhxgtYKhUi 0L㸹+VLd_<ΗoqTZ}=ۦR>.1?PKg7R>F%pip/_internal/utils/distutils_args.pyTQk@ ~p ƶP(!-Ƿ9wNnI,?}ҹ$B{nX>E"KYb< /llvә>if0Qu#uڬ̗ۻ&ty|.a+sYE|[[a 0q#,f'0IWvGxVu}Tt@X PHdL'VlLC\I;>Jd-u4о>BWX@aћ i5ƹg0r\Ȏʚri=0nI-_=2PhXSq/mҏ 8{׍UO38oC2pdu!If}ܐ s OR r.Zq^Ҩ_ @{: KCKXYsf:}1y&Gwp}?Pji=ZS o+-j Cx%TA;| !V[xg\Z%qm0W\A޽^w\Z ''pqZh<%>2G[|⚌)MU(ƶ4%dG9Y\m s`;LW%L8!dJU@%Z5'uL d~la;P`v'Z*SX X5+ÚY|ad8Tběfߘ4+]9" #PV{Qrb606jkvnB}nhfk-=4n:Z(k.j|5w*ݒnT0^e%Qz֑2<*cè.6b7G45KoTQӖߴ+FEgQ@Myz@?zmk!u@E/PKg7R8e6k"pip/_internal/utils/entrypoints.pymTj@}W Cbp<$BJSں&F2n/gΜˬ #(EѰ P(7"3,!4ե߯q vگ݇ϛէǢQ_"|! "yRE llB@>7+p>Ix dž$pm.f" ,h<!5RNqy:?:ZHlްKrbY՜Kٝn6o`]^ݝbF8jΤeJ;NdL*6 xiN&ǧGӣ1[/dE ֋ [Ös`n!h5.s U,AM(l=寂2+ןN  b/bSWs%d%kҦՊ\pfbbеu?]J~=?{ܼǘܺ@;>:rި͘,8j.`Kߤuc^I8-;|#pQ%cRG23DMdEfF4bGUL)A`R҅HyZ cXKΐEr#2-`9%DId:ä1NQAZ }]Y%;R$+dii 8-. l:ek^0m(8rLaZ쮌bwf%_`cф},-Yo 4AeSv@I/zF Y+# xlIim3=۰teP@Ћ&]^m)R -،Ldޣ)y :(:pſ̮2-ʱ_Y^y[ 颯Gs0n;gT]ݞnoyaEoB L/7,1LCrѳ{x@:n[}z:檸BY$"Iǐ%cVsッ$ 4_.aX-m:̐1Ld,C<>ndƜ+g9Q6(^N&qՠ1-\Do^몝6NXO([|SmN)̳>kp`zC@4.!8R.]?(w݉s+ 1.1C\?<P:} F(dzUB!Ao۫wPGغd3^oQ4ܑg_y 7q˒~C J>_*x]9Q!;BRȃASMqR7O'!\YHhbCq,gr&8-ޗa5Y`GuUD{@ڇ=./bqD@ ]9 &3Tr)"NBAe8:nFLHՐCY3(wUӆ1c Wf9=aF}Y+F" <(f91y"/Vvus1FGp+gSL1#x2@gzr2" tk+i=0ګWլﮭҀR3-\u:hRg8{ʈ+%? ɤ7e`"tcBh+fitnX"ElA# ̊Zo˨5[ -o֐#Olۋ@!A%&?Hh׶ltz@" "N=Fg>]6ɉ1Ss[![_X<}غ\P38=oJ<RI 4NBҒgWLqQh[ڏQ+JbQE$2J!\%7|ag7ogZNjUI7! 8Z%DjEcLMvomۭbw}Cػіwxysvv~ ûRPH9VE_󉃥 9_[)dfH25ȏuܖU "QkY+ByV"VG92|p{{Dy#hbuOֻ[ 6R&'|LibE ߫FgiЩj?dTesTeWx}^SVϬ.VEX|+`b@r0x"h.. u;L̼гJ59AWk̒qLR\~ ɶ1G(ai>j O񕋠5.?CK CI4"96Է !nVZԥѬ_o[n>P/'d ~QF ).Az0mOFI.)PKg7RO pip/_internal/utils/filetypes.py}R]O0}ﯸc#&HuG(A]_o!Ks=XfꟘTL ,B,*A8hd,ҐĜi 9=uzbpY9)9E/;]o}l6z׏၉Wln HShi$Zc;>R䲪Xm@e+ (V{VEY1h$c7ULNQ<7s.k*.~BɤT4i j2@3-EkX'.u;v7!)psۏoW7k,G'?Mp{Fߓ<{4~Lm.N<ȉE`'0G7 CdRV ZhuƙWn i.h8F ([+:2,U59BsB\'%>0q%xH/Zl\zjm:*ٍx5lٓZ\ՆUbe `J`}b4|qo3Z4z٢U\fr\/,O%[g9]egņg(t'ٳfԝ@/BOבgK!fTq8M_oߧ뗗釫7( HTH8Vp YrK[sgA9>tF ˂9Q2 cG hkUȩ>SSd,$t֬!&pE/!kA ׇ:ou>9sBC!O܋d;:)bLcS}aaqejTkx=(DQ|ޫ.ڕ8-nj۲k´5b*Fk[L=mQ9P/2-XDmgKxNVd;LI l[*nԊ`)*lf:dY"8k/n;4(z*%h|9X ׳-= G0b1]o텇,!]f+_(sckCJ=eqa4RX8$4;BL&PKg7R#pip/_internal/utils/hashes.pyXmo6_A,0xȰ,kRidZl6Tݑ%KFPl6z9= JJ(J*S" UƗZ כT.GTjX/F/]ދzi%t{qP<Ƣ0Rr JqoN|Y OSe!3Zc)*7U~/0lK~z):8|]*ij]ͮJ5nT?+u#|Wpw^ ؇KkYSFIT'dqFF[2@!VJkT 1!;|-lx% @iP$T`[O *x+ RgofKv&zßiBx&4}AptLez#''^Qv1b tWe ΤFVlpRAbRRh\_&?^|r~)ךR[hO-?6VmK^'XV2]iUE*X_Fg*!e'kV@gD@DEN023yaɯ 4~M ^靲3&n, (\m(6m#(|2zbLj _se7Q% -&s ]a[~ K -* Pxd`K1]:{]!,) DSAFCqGmHvl`)  %u0 2Ml 5ko0!QA?fsKd)Yx2!@ [t!bHmX֖nA 3Hݡ4>&5mVjl"G\@o1Ρ0sfp.@K5q$IfÚwSԱ*Dr@HPU$$hqt|KoEә]XU4_\uy=|nzC}HMb-u*/hHVBp/ #k7 y!9T*m5;#K90" VQR:NP ZZTPv'W͐3_{9*f+{5b]hLpLqp6qUn8V]{x՛Ђw-6Kkѫΰ{̔~5y Ǎ-!f`'b})7`@/]C%9 &r dƧ$c: Q<^J{ҐP2 HہVmwuxB۴nN i.$nkڢ8@203ј]MJn93i/pIN OR ݱuɵ6p˴kso87lx97Pwy+q.`e0ˉ#=;:-J冰~F;LF2QAj߅uۧVQӝnzAsl3XFN.q0?szNͶ$^ @xo02zɷTt$[f>Ѭþ=S7Ws?ۊ ̯U݂>9}``Yg.q:R_nd?oߍ2|{4쇭}PIƯVbźS;TU%KpEq>6! oi> } (b7{=QBW0a{0V~0_;^0~;E[cPKg7Rz3*-pip/_internal/utils/inject_securetransport.pyn0 z ν@*8ۭ@ C:{^ ŢgQrҼhɺ&)JJ3th$-BT~bT،[R. Ob@h5w**)|fgqz_#PN|Ȼ'802P|!Tj#C->.dPמs<]bvzՔՊMEk˗ 0op<}_ˏR$I"ĩcBhl:DDfWx]@<xi7P|rB$W.i'y9X[O=|D+:NFrb#N[nyz_t<`<23S)P?n_o7ps :s`l0A{tړZ$"ݹUG+(9~##'3.zqN3~= PKg7R`+sg%3pip/_internal/utils/logging.pyZ{o6?!#rܣ]Ź.؁^0zH*J|KVkb=p7Oj\Y<w! Ql\6ȜeCQ0R yI6m͒)zJ2.)of]l?cKyM&Z$M4%D:"o<_aM R؛\ǃdE,gυkY0Coyް:&7976VJ[VfN$?xay6< ȯIggo?^nf pQ9oN>\>/ߥpv$ .v.+%6㰇^O'~]Pb~uo`:u \Bv*vJM)jPjA2Xʀ*d\Դ5 @9mO#DsGLoܫx1 RP&CwLR$)dzԹ|h"yU T=\ wqnw# NQJ]->DU:/(WLc\,-GT40[٣XL0=*Lўb2 K&<;u~|)}sL`&l:scB\1c!S#mVu2;iN>>XB!F&o44^~O^~M쐔T"2_pT6PuS/ 3ݠ $zARUn!tγё NTN Uestcj!q~o;JJ2 mQm)~S×Ӱ;&K>`w돊1hy9:q PgQQLt4]_hVLTKL7>܊>!, q.rTp2WW%|-2Ga',p.mmE$<|hQATa Y4Ky"БgUv0P/5FITL'aGvFkrmKȀ{Ҿ4QAO7wzwc3 PVIy(Nrr, -|r(HRD]?Dsb[ Dۢ9ZZ,l%!#Fr!w[Knr!>;)I7ٔŸJEwz}т2EB:sRHbգQYn!67_ B֪}84:=j#f{fcD& ꦱxf)$ZFS}޽ hMWJUc16oԤT/FfVB ,Qr`NLg??+eWϾ>{?}vD6__L rUbZRQ4=DmCAex=sޛy*_@F.[~fMR]=w5=umcB^VRLapܵS.uΒ˓pdH.Y,Tsr ;TCò Gh)g+zsd)t@!^t#Ru/Vf w meS8RxxkxqOx|q#~<9==O4R-v;5M#ŐԭQ$fZtTI#GN:C{%yuzC!m9@QsDSߊ t7 ?FƖ+$2K GtU351Z7Tްp3K*N}&{Jԡ!܊A¨,qɈݠhi4S*i5 $xK2Ux{(:W~Fb 0`i .g"kGB&(1D1$2U!zl5=j!ϰȷG؎}6\G氩 mPZ>2чlDR5Hk!-Zوont|˥ᧁ{ M7dT9r{W󆅪˷[˲Wq U\F1N,IxQ#G IpDc YNFP+abagj{e=Hx%}(ήfoC7v #ڌ l=.a_F5#ނv( k*ڬ.iaJI?[=?E՟'!eۊ7y4MsncV>9Z#|i:=K͠v]Ȯk%:>Gi'* &#qfCJy@ф ɛux_"`]'(iMH]Q3tf5@!34u_6 EpK DyeZ.P3q;0 07'.0%Co:pdyFg|3^x}1>>j =7rQҲ-W%TF$n0vow!t;-:N28Ay0NjKHJ#H !$1!Z.UZcssС?@c֜\NmĘ~[ ~٨Yr%j*4vY ]!'e2_O֖ c\guEf*'ڲ5f"H<2!c9]:m{'SUlR+.Ir~ >}X y_eζmrn?PKg7R8{D"mpip/_internal/utils/misc.py=ks8+ՉȌSM&̺n6I%|. cdҲ&~@եRDFw_hZee6Wb^l62ZM3)*)nB$HQ)OsQcǦn*]UW>):-$>K2%E])' TѲ*6"btSU-*1?:E^˻:Kg扬0_V.uNԶˊ mGYLyMf[N1s ԕA!7ߦZiiŷ2_yYެJRZEe2I I^-+}uhxn/c\`Ւcf@DAt˦MRoigE>.j Dz&DJ㘾{4& F?iE4b@V`En.KO"NӪ*Y1OZMkQś` BI5Uφ F@`o/뱐vR"Pfn?\#;/>}7ϟ_#\"G^ E`+qpwՒfrgP~"rW}"fdRcw>=- B#Dd x߻Tt>߰&}QcSQ,zC품 ;1ˏA!>6;9oj]-֥Q]k6ڒx3&C?^uG|(psa$B ş-. ~DSx)T]0x!OBL5X;~uz?Hs,@p:,c1loq6"ӻ)ĉx,A @{XI/r AU(ERa,N<ہW^@'sC0uBٌA@P-[T.HIQ$FFƴE)M/0OFZrQa O)EcvV1 )u|SO/j%Gc7-5J.ʶe)>2 u4@[V. ZxuaRגLdڜ!z_ _2.N7hLpEՃa5;05=0fVi\~As*/C &D`(^ڑ`BAܹNn6Hl@ Qj:]-҂z`Zj@Ίz݁e] Kۇ-aށH` -g [I)ϰ#Z~(>h5R>{5"Gٷg?47]*i:: h^;%M<&La}2牻u ۮJ-?(EhPZ"Pk%bRa@'Lf[ ۅUOR)A( S^T, SY2p5 IkMDU+tHpFh\NX2a=F\a '..'v$87.JY+pI! N(0!01ݽT ;I= sݙV@?JL3=ۮS =gİjׇ`rAiZr#JV`xwJ RBqKօ9NGi ^^)|?~ry9Y#p41?8r0&ar OBO6Դa ̱xxq)fxnEx#Cs"xͥWr~m `aʿ ?Ta">|N?3e'fe>! _@&JP8ǨD*a< y9d:_c>|Щ*0Bw6Gg̰O/ES!\!R`"F}pGMCX9_'5Bgd! 0G|pW^ .r8vZYa4DPNzpsE' ,fSFwR]YGuU ݲTup:Dlv #3v.ALUCXcy@:07Q`7*@`iZD?>}ϗo={*~}O,/L%Z[$u; e\O(xI&L<},īEB` Ϡ#'o g>jԬh1LѪ"mf?El%vS'_gsi$*Ր'vVyٝ#"'Gr/2rs@w{q+)Ȗ[0YMMUDmVLaH H&eRD~Q CZSXX mK^t]wN\steszr,2vQBPd\nƭnXb(aLP b!oSXsv%h666+ HW 4kXYc r*mC@l:l\5CMlPݲW,zwDZ} h9L;2i'8kl,lSE_cЁ )v+G YhLJk L.n1NJJ1y4NI|l91l1^CtM*LN}Q+^Wc|$uMRк r uVQ}8u \SK$hČwYByT35;gd@{Y۱&rgFO}J~Ww>/g($Z|EGԜNn $6tȳX m!.DҺIVrfx.|v~¡dPH05mY]>sh!ˋ>y} 5T ^pHŨQ`ɾwF}!ՠX,hJw؉Ƙ1 6ցXk,6^ MA kqxQch,IS࢓sD(CnƧ&`3j_kaP^&m(rhD;C۟B/]5BjIF O)>OiXB*4WgE)ͳ"j96SJf4۽=լI :^e=M vIk$fvE_Vu:X ;k l'd\ K' m3Gx2\lj d}<}q;}:A}'$MMFNG.gIG߼PAkhNFx4}f=R/Y?v6hSA86 ^QF& T%Y[^է'5Lv)6|$Fߣ0_X7)(qtJV79R9yM$Mي,5⮾)2ݔ5&m&,Oڦk49l_a'<"e?vkOnTS3& ܙ^%_fdmc ?Guu+:V 8tPp>T}w<O1:ATo1 p'{w!$S1ݞv,>ˬp[<Í,fvm)}YdM8gaFo`JrRg`N͇ 15kUZ44Mc>ڗKFh-$@i Ik/JnJq#` V?1|bæ? ̨\}:d$}sgtfh!'JP56Faؼlקp[В}: #a=BEu..KF81>~6u.\Nzǿ#7N^V y(Tóir;)>wl#ҹa&i$-ġ:5RhmZZ&vꠍ>`–!hq麮nob:}Hu8Xfk~Cu #Ɠ˖8#3Չ)8zo9 fZ= ,3B=KOuE2KV`jEJ΋UNT>ʼȧw9UZù c,1F7D.2Njm'okI&gKM+rcf᠘nT23`;BfJGw/f/-mކ v1Cw(ÄVz$|d\eS;wTb24وJ/F&B7o]I //C;uQ؁DE$qkxԥVĔ筿m-t%y7OQ'I{lڋ_Lh<չ)LVE !8O+5L$-(Vr]u=+fnw } 4\HEYLBmS,e1=ǿCMXosAM^IA/`VYWj{ݦ8PŞV<Gg)yoߩ}5cчнշsZsirnU؞77]<R#J],R5o2EL~m9[Q+ϥ:=;xi22jn/6Νernxx'+m;<`o9g -ytnѺ,4p2>(Gu>0+O8.unLC×Xwn.6Z_Lbo{5A7QV%j[;_"O{ SM{y=>ɇN/urAlRb~*N+9k%='lD;Vp`6^Ro(g=S+ZgZnvx+`d:w75ՠ%.[J=R5A^婹o.UCJ)fq}Lx (WMCG`tZ`O!@B9|zHO_ۣN{i0mSS-}e\]]^/NSKhrN˱' 4\opKN4y'47}uNI@=; O@T/[F3P|%{69flfmLyxPKg7R0-pip/_internal/utils/models.pyN0 y 6n$$@P5^Hd@g[*K(dI#l)ƭH( qO rZʥC 66}ŋZ2\7R.1k &Z|Z+/o(q-bP*FJEZ|VB_lhI2&|3B ۽$QJ[F{IߙV= Be\OiaH 'np+ aIKzEYN08&0W48X7^cfQSqbT g6h 0~=/!:_DN LJ)f[I<=(ky@;ȸ y1HW4c3*^G49IoKqC[TE,vZ=-Ƀ0ni C8v4C:mMa;+/Dr,gHDi,RCg:,˼>Γ 2aĺB 8vv"v_no?қ`?f\KҚhV܍f:\HXV̯O;#0٤kIh=DT۸暡=iએa U݉g)$yveO}tF1`w`GCTq[JO`Aw`En/HvٵM*?K9]JrY±RO28If#BIRB>T\WGgs+"*iCAgH?4b;R~(TYoL7'c~,/Cp]+@[|;1x s8htTPKg7Rm L pip/_internal/utils/parallel.pyWmO#7b>$¶GEꉆ6:tJ;a}x= ~}gMY(UUTΪFyIrt+EQpMBC6m|B.hQ0z!G_baF2p +9X(LGh4۴ƌ6F9KSސs1p^6wTE !kK lB5!xWdVHիRl)A [ӻ4 IeT,#4W],(,\B#JhqO)7NU$@8'UhjշLQef4, :RQs/ֿNO_γˋӫٟӗN>oBzV7. nTyZRԯΕn.oߧߒD._RB;o昪4YV'oZӘ&I@(JnuʒIn W: ws&{pVSe̚ƃ*35Ifw!&Âڝ{,UDf}S{gsYZkltqྚesN6r#LS:\U;^V&264&:.$IKohhL!Wo4cF{\e<375ֆ#j-~1"gH;ffgKjYITE$5 gJo&md(F,0q6$E$ARCe'+1 ƻBԗÊ`3"lwأw}Cu{{uGCt ߭|S3fj"hm(-D: (̨98P H3fq)mHt#iиp03f/>Qd7#ˡ-T1o"ayg1qBwfQIπVX/>6W8QozIY7MwlEGn<ɴfǼNynkY;&,s|,'yo]ۣ矬9_vw%o?zAJW_pȮPKg7R@$pip/_internal/utils/pkg_resources.pyQk@ )Dн2C THR3wNRllI\AMu^Ek7\jZBk%UB:iNdmR&COO7q/dU>_gNupGe<2 ,JE:6:o~b{d2-_ CxlPL#4E= Vbm5t]*i6,5ijHf޳tzx!6v] ;#1[ IGqV1y!_K<:*;L{fϠp} J&qƦ)1`ԋ;pO7!WIrKζ3&c}~L';o\:1Obc:>k{ZI]ޯvbUQdAu!.̠/PKg7RK"+5'pip/_internal/utils/setuptools_build.pyXQo6~ׯ)1K -&Eb(@M&5r ;,nm}|Ho޾9mCǗz?_B@I2Y>_eqc>*P.qc7iLR<5lLǩu|Mۭ[M&a0 \}kHB_j%)vkQ]uujD*ΚA5&m*) $U2LPJ,5f*mQZ '^Jͳq~4lg2d Jkj 99yg^jqPLMB3b^ !Nu~3)˸RϪ_JTH'[ 4P6+u:wDC5JWǽ;B`JvB0X~OaTQs7̎{>_o>Ha4_;մ-+Tt4Q-K.L.+f$׃) ..gp%Lqќ&^YH EsBQiu287Jv$Jɣs-,i$k:︤CDh(SF} `GnaID}R Ԝ/5; *aKNK'FaGǃ9k ;Nd HaAg*D֦|~ƱoU=rGş*$BӰv.4ҼPp۸79 S ^d2Kx:62, /hN"ȯ[Ӟy54N7ErۆU[&}KoH5Qt{_w<Ίh z̸u'7a>4JgdAJG~ʌo)jSwĉ; | ̪ħ5 D"C-}!#|> ]"ӥO>~6iX }hmjuxܨhqeZrNv_PKg7Rew r*!pip/_internal/utils/subprocess.pyoÀ`pK`%Zi%f#({DJrrf M=>/zS=˲M۴2&Fm#2̭zjj?v]:Ɯmg%4;U:5Sa̬;jALE@@V{d!9%&ˑF%Ld R^ក~o` y# "XzEp.^`VsUUV`ivOMFe\A.[)L=<5;4RóZ`- p:&;^#uXrpBDZ$Z(ʞn UX0¤$lJ:k 2PB+ZLz/ؖ# {pXgQZ>Cm$dj~\6"cFP0)<6UdM*%[,Y(gaeS>zzIfJ4$>:oZ@NφJӔԁ{'s|+e{`ozfk r?xD/ Huq+q[.k ;w. B.'p2A ^ GX4MAX01>a`X#v1Ò XRSv,3G 62g> 0 B.s!1#apN(T.L{i#fs eؒLنRquWQ-[HyNï)0 Y"WᄑiCkosEkLs}HHZχ`IJ[3G)#t<;]?u/ -m1DQM# ; u^pk6Fu^KZW|//j %,w}J'G5iZdcnWs};  ԵOY`=vB,muKϘ~hCܜGrL' t+6N"^* wrDtX) ޾QGi|?~m|~PeBUG Jݤ6i-(vm(|'bIk59:Eضaؿn$c^Yֿew봬DH4BDj!$+T@P'u#GȎZ vX" )F)b#`*T ,F'M#5ߞ|I5[HDf0/PBC u.ooo+liPȟNv\2i,ndazQT^ T@fۡ)cQ.zajSݘA #ARZa ;ϭUov؃4;٤]5 ^h+bd H\ciq>b8oim8, v Pa "( ,P7Hy!zzrdXU M7f0&u'u,k>CVd$p* *:.v"[vkS?@Kd$ڋUV'7ɍScB2#*r!%!PdB}a&a gq"Hv3]̱K?iza1|y /:5co`h$>mF3~oطv#"Ki^BLzJ )WfATzv͠ `f gx p0qb#ƍ 4 NX@dv:ᣋ"װq wHUz "6U]~s6($i^x1Q!A_m{p+|ȏ\6Z=zZh }1Yy|Rk'ZI P[PFEEp4.ޏo}lRDvXd8B +(D} # Q^a {Ew~!VlPgt)%{ׁ5=6ʪ1U(bpS*9f¨0HyvWFwdK5 +HDs&O tnӓ5RM%3=w#>܁=Ȭ#Y(Z8[𹄋/3 *T7 3F`ў~_^ _Xpv< 1Uip>he\Xϕ4\NǑjRQ@`(cqw,3@&Xi}cc2L:5z-F >e8q98U}~'pSk3{.c\0.q9~<@"?Ϲa7{ U/, ? 劽7sl*AR:8"҇^|.⻤ά^![]|",ԅ$𗍝ibJBmb~t 9Z@ew4FMawkdY7.VVajIV+<%)L.r*! QLU0[s-T ^s}n;!xe18W^foNb3[ Qr_QyF` ofZ_gX=!U|խ, 83)<'(A m l &SE|\EhFM0>(^}ȉ,9yha zXD8tx `RvB A5,apփ碬n+yHUL޼>nkpm.ݥ.o9?p iKZ #*p?2wF=Z-P֐TѱyrG ("/VH^4bVL͇fL`B+=SxKLF/*"uWxN!ay=`KCI":^gFI`574"b9Nz%4mtf t ؂V Ow5,tl9`]\;hn+2JݥMA, x1$%̝Dá|Vk&T1+n@y@2PTauoL-r5F]颐/J(HR0JPfF~i@)Z ߁Q@5dn%`̾ h1x"_sNyWdprթ3J\ZCeT"8NO/J1M&pEL<υiX>yB lٿSb#DȆ/UPBjO.,KC+$uEsήwv=G}Ӈ$o fCtDAj6l%@{@겭%Y )`HskI۟׀1 .X''㑦jbx8/i;Bf``e P;Z2gD6n|.?| 죐M/b25 !jDUAYN`ңV@J^1T=l/ wa!M'Py.|\zIFrbx ֔Oٗ.Hϟ_r Pb`qmqxb`1Q`Xkb&S0%`#(d ٫T{kؔ:\u*!&nr14;:9?g]qGWG.X6 3M:%/vPzG*h/nJmQ ;pf# }J1-7QݎIDDu+6B3@EFXJ]C=x c?>d|Mxs[v=b85'!4MrvGz*BD*Fh E%|BgxԟbKKw2L(\ܖ]|[:再~4+5<ݼ6|n0]jxy;tBTL+&vw,`@.ԯ7 i=*Uʺ̢M X?r3k`L)v4;"dU,FX^p&/ΎO/e'Ϗ__Rgx_&M%E߱դf /q[]8s灏q T@HQ!F8zek\_bp(*lf;Ѱgg4r{*kuV:tJtSҗ t늏=|cZwqhtw|EeWgt*f`'pj+¼w3@X HܧE!=;zUt}HPwW?)>bͳh)2> K'vPKg7RGʥypip/_internal/utils/typing.py}TMk1W !-k@JhPBH99ݕ}i&i1f3zf+nu; m!Yq`гt؍FHwp ȑ8c}HO{;֨!՜@ͮM3Mi>1*Hxa0sMv8[saCҐ4`^xj!d8h&6E@ ?>=3u>3JtQ~OrQq?vݗ rp|N8ڊ'}M'Zqj+ҀshnLY/LsnŠz6Ȋ 0M)@lԃg}/Yrz^V갎S/M2 \ai1*?QIṕRo|/Ȁ^'NYuScYR>زъ^msRSVA6ibl[b >'+D_el -в @0Ė-ı ɵoʢEi=:/VQyhBG\*.CX))Rޭ:ֺvy9wo_/^vFhUB'HM-v&!˝M&or([W6LqyqfJ[>WR!cR'kƻ)|K;l{=MNrh]LW~8Ir$~5Uq4m+!z{2}XMi5%$@MSPKg7R͋ % pip/_internal/utils/unpacking.pyZmo8_Kеtu]@EݦEvh[YҊTRwo̐IIιw@?{{{ZRKX-rEx=[kh4KyZ)5SUx^.XRojR}׼\ϲ[r%$uD|J˲PNX 9 uY*Az]61Az.鍽}zw:/jB]faAPPxg?yC(|>0|Drא)p\L؏R {Ej]OpYQi1/GW:Y#EiZH /_~{O?@*(z4l.<}Vr{cđvJL- W#}i|Uf S\樦qɲ^˚^eYûIv"(s6kZ:mV\}b'8bv Qn)#*v%L.s@d K((eN07 3"<8Ocnd̪ԓgCTqN^ڸ}"?*?@@&S`熘/ ,2b 1T h;˥}hE IEĄ"}qn%yqW(Kz&Q]l7YgZs7bn5Et u02&bD$&E G9MȚ))f8 Wb硳r*\~8: i%HQ<%) $[BV9(}@6 -`!qWt%dc8o`kwM[F i]?d `{>A1Z@'p˜UQ9F6Jڍ&#Q 8~n-\h ,g3֝x|L(t X7e OxrHQ0G{li%(UwJahѬ!(<%E]6MY癉$bw?Ŧ++EP7U*S&rAD/?~̾a/v<<<]y Ȟvao#Ѓ|( Z}p2|H{=#,M-Q.6 ȬS+گbg*Zd[,`K@+ڤ R&=iJь,sx998 iVbxlɋQX{1Bq3I`M9Ԃ Tq=Ev6̵>(y.E<&X{qʕ0E_-5cK,f~X O`¼ǽQW+QȮn?swR_E&dCQwECE5`ݗ{% F{|miw!b{0tl<̪lql!ܔOdӧ{#5J{n"|s^lrWSټHD)T>"(//|V 7Ͼ/tIgG~]ʌw'(:4L,G-#bHaz  @]m9' ߿(K@`C0 ^OF/C_!PU2K%>^r?(#)=y)7bj o*/A/^W\xʋʚ()(Tls-s4N7v ; 9}M&w|kOnx]j7~ Lh!BDg" QI+ԤsFcwt>| dD"{@ڈa#-34gK+utp5ShLb*H6O.Es;⬝6Ci¾R 5V`e0Km_WΝHС.zz5a+Rdr>_g(=It{& e0WFQ<˩. ,1!1mp<N ޷֙&.=m0)Ġ| ?]m̴hG'f+)\BMoO4IږWqWN/8Rh4 ߩVk9NWu͟J[-kGZBM鏵vl܉ βA`?#1/1M酤3hC/i(b]BPI /q܏%}1v|~4rjiPX?fj+{U:?\miIOэah% m)e(}_O?z rJ&)u(tdB7{"XS5M'ArںqfU|i '3TXVn v6mYCJMo$ws#Ի 6H Ϧm`7VKN GoqrAO.k<7F+8Žڜ`?3t+W ]GnmZ{;'msGwoPKg7R%vz!pip/_internal/utils/virtualenv.pyWmo6_qs?Xl6AA4 +XZl4)]ciYdmh=Ͻf` 2;j/X|Oݺ4͓2ԋոɊI>o]tY%I\ee~[!Vs뷗oًKvu{qq~/{OzJ:?7/I2VX6Vg _1W(agn7f.O^>]`EU%Hv uBLE/VzR#_~_\⩷ʉ %IRFX aZu:= #<1*,?:ٜ;*+J .u}̒pf),q.gӣQkki}ڻ0+P( 0{S;bQ+^ǻw+j|G}9K7C ۯ!GOQYra1k~DW|A Hd!wl3Rv#Wy`에ЉjKGY^.Z~|Gy}/ݪ߇3C̠h1Nw L nbLђԪm@!s`p\> NޠY/ik$Z$aoKS/l+ pe#T~"5LQ\m8lcۛg'AXTܡPcE \;aJCKdC Y c2k70e`-#o#3]#WAZ4J U£p$hPݧE!c)6=fm%DK8ۗz7UhB?08 ,Ͻ\ N=Z?st:eq^Q{ %==--a( bޔHe:N k*t ao VwޟE%o6v>X8MiCVm;JR1s$S` z!pEƉs"뮠?/&Mؕ%!0Ӛ&ٴy >N61 ދHI fqzdJڰ*ihǥfCכCjga+Ia Ji;x:l:Aptמh_bH QP#;vR.C6TV,PKg7R % pip/_internal/utils/wheel.pyYo6s0Dɧ!C t]kҢ]DldI^}wLJDَh=x=jj4eeU*6[YJ[-(LB%x<͚jtix𩪊VHHd:xF@m t6`` N Nɠjâ x6QAIp.P'R~pO8ɵ[M% x3su4oBDgoNf M?tƯIf<ڜՄ6-MkM0 k;$=F_*A/1{;%5q Z%rd+]gCE&^VЫ@m}2^)xxk7 O_uۢlxkXzcϷT^P hF08Vɾ&;`QO_B1Ga*wtf zoBfsj$dF_jN[v2ɠbL[):5uyjb)P?4%hNfsO;[{ڗKݬ2nd3ኢAopR40gUӴIVa)-01J-\nw Cj#O ~::YW_JPVEN@ƒlMhhx*G7A[dcw<VK Ok\pS7߾fǟBm7 cX@=o m%Aw aW᠏  ^ Td5]ոKSF ,aώM]wXG B*̛șv]Qܲi8Ś9$3%Yhv3+;km]y`[rYL$oЭAӥ#FUz0߸BP䋷pc] [tu_JTm3 1Z:"SZbu&q3/Z;wv+/vHp 1+NLx5CXR%5P sXiLp! b2&ވ^U I(`B IFoX6hĆ/T|P]=M$9;IcǿRiCimH.b{T%RB0%#''a8`u#Da)ij  4-~1?,Qşr@!-7Vw|'tK@iaxNF-%'@BZ&%L`b8 5#',5ܢFBh(^DT?!p%h[dֵe GKK鿨`RcBԟIYm{xz~c=}Iu%%SК?)S^\ʟZ5ku2\ҌƮm8o6rh8X0_y|<mfgyFtA=5w0)ʧ#R&?b3Š])fL<pf֌۬[ U`P\PKg7RIapip/_internal/vcs/bazaar.pyWmo6_A4($7 .b]6"Z:YD)R%);)ɒ_b@y]4J+홫L f6k(ESk}'ַ 2ujm(tW `6+Qs&Xz}6֕Y0ոB#AfN>fZ\6a0X\}9Beety94JlQW fkoNkvXs~->'.N!onnqZSr<}ŽvLal Is5W7^CI</wт@延Q oeQGJt[_ӥY[X05 XvwM>kQcQ,W "Mc$fB~--4V輊.ix_/Uc K_GᩒZzS\®._ $#y6( Zg1Ֆi45[_~19i$ +鰘L5l2L1`* j3؏XFMi8^Z"BnQkd #OʇWɼ̧pE|)p kN0rdL*{PwQ&ԫ kd\y`ů!Aٳg`:0p,ehH'["j@?-=QT7ӠK4,Bw 2ְr=! .)nw6bRn)3EX&-j])ꞄӉ1=I!+oJ?/&p xGGW\æ*ơoh1n.j/n#a2ȤSx OD{;s,Ota1NSJ~>"ܾo'Q%f`:tCy/_]QH̅:.&\<^NSKTkrxucyu:S8ba9͸ L2&o披;B쉃[jMJjO!HO+tSLUClF؛z$;i㙒Ed{%8TG +\wX aR2(yQY4KXs8aD_)=p݄6}2D1a@O5Zh}mz[%c̐Vt?"N!, [ȼ-0j#8:q>h:D$}-vctGPKg7R/A<pip/_internal/vcs/git.py[s۸*DU748q{ٌnq\"!5EjPN/;s#~xnׂ-lE:MR_\,7,͘8ff[JByEl~\`Ig-kS:l;QANHc˥+%OT9y-zMsL>\*G{ Y<հ>ӗ ^Px̱Õ"Q,W&S##'l"VP"6AĉYqZlqI7~ʤHt)'~vW/ݻ %9) -܍|n@sxWeUī = zieVĜX8%j[Ʋ,sNƠˁE %\i{??8y>a6ͭ=&,MEq+>ccsEoe9NT!lȵc8>:hBBkJ-oāQg/>\7Wo ]Wm\tb?/`wp@|PqZjdž# (\*A4oQ>gX+VJHehX*E AJGd!^MhKI&h z-L#(и!JBŎZm`!=ǎj:ѝe;`{J͇?߿unaZ˪p ')ArhO+.0踥+Zs UvYv>;F)<A¾-PrIre rXstٶ䌚 d ^xr(AZ ,aU4ftݠu!|'V$W aMO^Ѩ~c=A#~qU#0ҙvM$*Uh4zQTSu,gZXSv#4BGV%5pˈfg 5 En%q0a4Ƥ%}mcL ۙ#j%~_S0en?ZbkcniĔc}0oxQP'62"(_jnAA[Yʵ6N "'!uiM!3/tV@aw*$@΍٪(ጶ4Yse bȳfۓxTرR-%qF$#+A>sqI^PBPio ^`eY,5U6( A+Y&PQ䨀ͺ *jAw5Ͽ0ƞw\qyv͛Fc$MRfZDߪ׹ Ric0 i[h{w5 ƣ*w]۸`RS+6x)xOVex#dLu ۚyq xwǾrSƟ)6:$3=مmb e_\4&6bK24`'BLܛtXmMίTؒ!<$r,BC@'PD*I)A"Is X$;X-&Wb#/ S)Ul c[){#tUiA{. sgT 65-ºUJ@Ib՘.GH!K֦c>{9yGԃv;Nܸ/m[a$<€y'E4E1;r͋hp*oq.t!i^Ā4n_^TH{|t5qϕQ*<ٚND̈pWH^ Կ9`J^(r;sPc6 7^lU<=}2ֿdŲ ΐߨo9zvumvVjNZVj tc'E ɖTO-7銰w4G$Ңӎ> w 7lӦ;@GI M9-θDx*nt`;@~N'٤`3~T">3l)[Ԥ>G:e{cۿ\WEm`n);ڨXuhH]x8DzXf+[##Eb`cD ;Oi7~]Ɵt"ipfB@0~ba+ř"Bou[/T0凅m`Afc_ GUfX2\`f_s+'1P{du[ERVx;I5,yAF.PlTIK"X!Lpg3i2IS{ فj{K˖1 q5tf=hRk{6pG} .\׹q+~`v+InNZC` Y3Ǧ #C׿1.Y!|&С'^5}'\Ap=M'7e.A#E[=뇈6 G0!~ Ղq-69/l@~*f{7qkt }*hؑ( =zm{LaO+mW ^ ' z󞮺 jQbXg^Tu;JgAgx[yVks->\tĐ]:IK`^dZ#]EGθ1/kl^F[|i5_6gViÉ1GQ!ϝ1boa6,VqȢZy]!]zYF.7|1/b /.iض 0s! Ү ~|E ZZC1M]yfSFFKavţ{+>h`H u&v <a#z/X#?$xW7 _аY0pmv7kC͖C;1og!Ug.|k Ϟ{`g~ ox$ z$|hM A'eѠ+] +NU . @*<!KLj5(mniI\7@8k%OWOM<h:".zSh~%r2s_$&k8̋/ȩ PF!D'$^VVFkH G IU̪stHm*a?I2>ʏE@/⫑R2,PKg7R7$pip/_internal/vcs/mercurial.pyXo6~_A8($c=-bkZـ" Z-c;R?-9Nx8٨P%} w{9z˽ w!V}3U2fmR:O.]e# i9H]j_͏sb;j^EwAYy}߮9OscLجC' A tH/*x8BAtn*Vc.k[b@L=-P\.a#ѹ\ݚ6Q@Ϲp'c(nvl>:#jdLn9piTYk ${R3YkyX@ _:ǎ /PtVl$3>%,,kA#,(>t.g򋱑*p'Ո KEJ$Vgf<"mLu*}N~Xkf ܮӶ@3]FTvG`)xx ?5ȄP߀ w6Y8r>pU0}Me '\!N6akmm$`kawTI5g9bT8aZжsEJRH 4eТ 7Lm7jOpn6'mkrBƒK"\%S| k'2(jd;s>^6p;kC*]rѱ|dJyJ0?PKg7Riu41pip/_internal/vcs/subversion.pyZ{o>VAҾOlˉc؍im%i ܻcWE{gfw$I ܝofy.ւ-$ɷqba"\ukJ1y*X>X .?9d-XKfuV "gx"d,Z,NyRW"PϓO X24JC ?nDį8^eY `t4N1W)2 j5x#Ի2Jú x]/Dt^EBJDoDY:ͷo)8rJ#J*ĬIQS3'@n6MLR3q"\˿\=O.f0t0qUA{X)2]~E]9_鼄W{*0刨;WW?lAu53o,BVwjRr%-ݯ`y ) 6{B JTјOQ8a&vSr@ 8]J37( ku^IxL.GRuUóRm*u)6RǭGQB"(Jo0S fi`XEq )cex= KAfA;.tf;mVA.AA7qZ̬]2l f/Y ! T֐%zރ8)COQ9@XӬ|Ҍ"()($K˓wtV r,;O[\\WqV u,sdR0ݹ6~@&CZ>q_:LLRBK<9 Ӄwȇ:Uvfe%ݖ7kFV]U`>wm(L*W9dt}[]'T۶{kۃkqgh9E֝ĸd+-}InH$DQ&Wg΢ Zцe}ǙاqqN`Yޙ @ݔ}I P)t;?AMu2 M( 0%0d$Ś%OL] ׀e&Unh=%F' 67]Ol~8y8zbZ3lw؟>&G XߵNg~89Y<}fa|YQ㆘\_DFV˓ӟ-5tνy;6zs5,khC&.X˯P\ڲ]b1ЧrkFf;z \`ߪ6Vyȩ8bof!w~mC{97 $Xb ,8ŶJ JNX8IL'u {Cr~kf$':~o72;,9ŢZ]Ѧ|oڣg ,2X+Ugߋey*AJ%5QoTꎌ ?P1%% +՝ͲqXaCT)&U*ccPx먮0ekV){{;cްuo."NJQŰZ-T#}~7.1ey6ݨ .vЂkKHK;~ϮwhXNQ˱.=zB|l6YnKc_g@2/>H! 6O!d [#כ҂l+oa v5MwaQ{LU%kvE\1a;KʥP88kg}7`?|dϧx t ¤v/๒z)3G@t$EKMt$:+]([uAnuv;)Ʋ6hN@4*0ſyj}6,! %*Tn2(m6%LzIL0ZfM6+fUB0:%}ms6{{FףåUǞ/h)PyQ\gسď;{^yi3BRޘk GGbCx#F8 \W_2$g*h,e{ޡCMGwUAdx65mLlX O,gYj-ly&&@mN٦[i"ub?)e:W_&b#X_" ~>]DNқ PKg7Rsb\#pip/_internal/vcs/versioncontrol.pyxV}=!qG"ON]v_;~)<;!"0i ivF~m6iƧI;5f͕Tk}ѵWbjm.Vyqpp$HO ?_drP8i)ڿgQ=I9 å#D:?aY/[WUAP9HMPS k q K'HjcFBUOz 7joB*$} ضmX1/ / ^W u7%/jx] nV _5ȐS\>C p tX PY fU˩V[{Vr^ ,UDp2Kk/[³V~u}*ADmx|=>>u"vLh.cO`?оj&(s8` wBi*#b)" {$A[b4a\/z$Ol⸫B|wJ\\CR pT7K"E#Pn`NeYl k2!YՈ,J/o1V2ƕJiG+Q:p_˥E|vr j`ߙ4ͫe`۟9v&E U)pS!= PCl{GqߦM m"ꊜAJdQX$a\.Wf:KWcXmE=MzX/GRv 3@FjE:%3ziT=Y 7a(mG/K^B%둬y&6"CI% e ABgMxKjԲлF20u8Rv]֗eAeق(KmXbXld -_s\ !7cن04IA[Mw A|/F8& J$S补ZW!;:Ax@5Ab9l0M8tؽ$)HO-*CkF[콵?Fzx 0|&[; -O>hwѱ6~@͛v/K_ObQ*Qc,No]0im'>n ia6l~$G{G BQQmρ1h'hN%ǡNyjjj'duX&^欬xq铫%ޱ(-#66c#Z쇔}T5V+Zec}h3KGi0)v80R  [ek&ߨpս8 v̗S!RY#GY-xk(Qޔ%+O3=4:U @HOF7i#NAI[I.Z| 8?,ٳSe+U+.E˶`2lӤW(2\~M۶ܩN^{O/ִ_@G _=.~wD|imO[q?⤂!񍱮F!OqF-'}m\/8=Dx[T6u8 quG4Te68",/^hFY!C cZeJ p[)_ڬb51C6|Nm 8j޻sߣeh9_wV#tHIĮWfzwNуQ#*7=~2AkM0;GkM)g#C)4RJ~䏓M[ * X%5|%nxi. ғ?9oEwIn2O<'Oo8NGBz,Ie!)c"m0~ ڐ6rGl[Uр_)qd``QB am٭ p06@ НJtPR Qp٪6y/iqr0Xijj$ CǐKn1Nu.}P^k?-x9CP@$ПʶN"Qc&q_KSa@ T-蝱6P!oO3y? "="yRB5rD?%;skCev9$O( =IRMU N='k\TuC])z{L='=)9yN):L$T ϑ^ -'b J9WX `:te$BL, G.QW~>/ MJc*oZd=Vrȱn>LAƏgOL$V^IꊴW KJP Ci0!Y_0m5}#U ֚B&} Mv]u6, _9x&w [p' sZxl%'A~^v`Xܦ{U)LaUegz!H .=|C+ni45Z6Eq Ƙ WFE^|YըfՔ*͚HVG&<=UfK ' ir-'u <0yI'_DNƚd6Gzߗ-'٧*a*4$= Z/1#NP9wĺ;9]6S#BÇo$5N蒿'@E,tl% ݛڸFjXmj ÊR (Rcje*HRibI69%J%5$Y?i4VS=#cEޣ6Gҙդ-&G+mc?'32FUbsz)P+q C ;T3iReҿou,t'ȱR nQ3VHn:7"aX*F =:mF0:ɖaS [ lnj{?hG%v˰JO!:K7^'0ȐCdvbfgoz*G@ E?y80Sm0=xӖŀW BV>]Ǜan R%=imɢO).h;GᛪYv '*tz P[r#Ϟ| lVYU<;9>z>[RTJޔOZcxrE]Iwm?n}G(HeҴnŞ.ϟZ22@<&43nP)P 8}:P:m D ϣIctC Sd|W{kF~ Ƹ Fs x˹k\ꡦF( >w>~+(Yf[,#S˲tO sp#pu2:8T&z=`ó d$|z6}rVzg8E  k\j?i%qIVtmM k5 C0A%Suu('=ho5:fZ;/'rf8d3=& {ջ;iΣSEv#!Qs1Yz؜cJ!F 6bdqҙFHz=w]Es9fa3`?mgҗq4:hQGŜ5G~35*ko+hlE rV\ eFO/f'fwbC=]♖/-U萮؈]5SԚ[32:T_i?F^jt&1ܥrjuV('SUwI1nm8,l `|y^^R%KӖq Cs/-pJGtH @c6*guy,㏇OP p"B1DC";-B:`d3-U/5 H{pMHBAWWIυJ 쪜zv^q[R%GxP:xNж}gCvqĢGF"xVM WϙU[@ 4n]iΰ0pkRC6qG}SzzAs0K [ ެjp;\Nb1*Lۺq݆s ?E..DlP É`E*iX֦wA8!p16o śkA7}5Rt9rVG$Xч;yyA0hU *ha`cÉ~jM\ݵbX`t5_/6ITт817q9W h8UVF >NqMǝwz,<~ob'O}G*m 5c*N@#37v k`aD"ߩbywƜzr\O/|5l8et1о{<#L,q.ע=濁{ 3Õ+1Ud ,N֗<&r]5at޶!}S`K9ZA~(Ip0!5BUPQIv㧀j}ߥ tr+%@K4p$†fQO:Xe‡$€v^yxZ x;u8k I xyYrQFiktn/_}*BM^@ ө+3]-"1SolijL5Ln'ijnh3,pVgSZ|=G!!QLy_|Axo;jx}\IJX)Yh}}#jT5Cpϣ`UXt90W=KPSU8xCz܅.As籿I!}7$Gҁަ0 5^v4VB/-ݔ+ہ+C57uQ8XzLy c;g$)hEXd[}@d_cq#R\?Xjjh=/.v[4!L-d9 ݃bPKg7RI7|<pip/_vendor/__init__.pyWM6Wʡvhi94  !mChiil1K,I}CJAvmrf8| 7*[ 7խEMyaV"a&f%ka:MK-uRYZiDQW5 v'KjڶrIHLLz[#sK+3d[d9rՇQY"5.F=ˆ6񅕡ϲlt@ ղyiTՈFp[]15p|RTxyw^!kp]7PF U$"^huC"s>RgWեx)^#"ݕuXm ҫ FH "s4ZbmI#R9%U1#(#XE0d6.uxqF]k$Rd772ƌ%7D:uI`/Ù _]-/߼c -CTyD+H["7-j\xVgjM hEVqigˀHt&@)2ĺnp@7A&_\\UheQّ ^8'x:;v2 _d?Nk)k׼έ wr!|6rhײ<8d͙ _>Gg\ Mrθ}=T,{t9 H *b6#WGDJQ+}t pFA!U-IHShdCCH| *uϠ޾BOh{e,0ڞ]/MLmp - {-݈StGqq.1;۬SUpG=˥c>^ɪ!ѧEZu1[yf x2NOO8rZ=?ά%ww;2ӉՍh}N1I3?j8{ w2v7J1pC~k79'/AyTL< =_rP*etW< RvYm{=Y@Х448mH>ą4I1Hy!mԼZQLN(ٯ@~lf7>]  쬀Yǧ ]yX 1@ I*_oiG ٍ1ʧ PsfC=F\KVYMcjSS,$X֯x{Nx48&o=0>4%i8A:Y|/;^ttVY)Fp: %Q-¹[5_cvs?j^6)3KӃp!&~ .y<8q11c" c*-*kYS&eҥ=}Da )ÏqZW΁%QEe4I85!~e%FO';\(L'兀'ݔ7N6PkO(j?}RdH6Zy\ׅn@50 #uo!sw_IJY-O$fFr;W`I%DZ?d|c ɐ ;0% h7HH*!)ys8X$cuжmEzv?D (+e |wHa&:S fIKT֓~8KnKP8D{aj^LLP!%hdB( =1bGCZdj4tjgyDh34<-X q?n1 ֛,[Svd7h{:~ZK?a,C$|>x:uyzkV:FDk:B?T]j0ݯjX]'`SST,I5؍4 b5ۓ㓟vء 3BdisEhI/8%߲`MC7oNOr-? Vlc\ǴRRH C+VtR֌W{&Lܔߝw*WMK[%m5mdO3%N1Yf-j~3L[mOOO!"+j4CܖR\p拏U7no /-zPVtsOMhL%vljs4PUͶ%5C+?ƕ2ʂXЯX[e~!$L<QU۪R]c(p$6ٷαբw'OlϢGB?> G< i(60,gkdǖ~Y ~H .O#iKRw!kޛ ލxhAn Ro8\#|J<>9(yFugqc9=޷gwvϏ: 'BpDHXmn/COWjttDJkP 7)׏?B-e~3"sbe>S+RRqy 5`PQſZ;i-0Q4mZcPen:>uCsk##U3IWl)j-׎k;evqh5޺g^t {f攔>0IlZod9~])'Q̖Es*Å)03[7s-l?:Vz̽4̙94|t2:5-CF]Mk/hckkΓ׽aZ1_U\~aKP[-h;O R]WXۻ@8w g D|`sZY]?fޛBd j]:}݄q8m2GrSyjͱ?!:mY±7邥[a'@$0k]SmȠ`r/=إꪏ3@4W9Qd+[+m;vUSz"XGuɧV:O g.oNλ:Go y/И /.n&HxrAM)저 xu ܒ3LA<}t[vP +}qsw2%:t,] #%lHx"~:~Zoi 1OPRskzqݥn+ Exㆥą}IztS Ԟ?;F\4 7L5[hiCq96h0`#Q8”#?);{Pz>_2/ˁux0GƳg{Eb.R" E3"kSdzGeKizgKi>%6[$to.{`pe {7c{$"ek;e|rA`٘+T1}F ֓[S֏s_/J8/kBמ^7Vwscұmx roHӠ tQ3?bh);eGʭQRDv[[Arq h5<ŐZHPnWlϧ.ϱ?$k,TT׫̙kX ve;7I:{ޛݳWlmYMxs(ʍzPo\IuCtO!3M)pfzt\*rj=i=Ddz,ы8Jm{8A5ݷl,Q'B$Zo.pQ 0ek|(^ qM.n4O:S_ cOZRCPwcLa+[3[@'ה"BLknHsݴ/ ˺I3siV_kuKkC:EgAl}~_?tCŜ9 )f-/7scmY脨rz Uom ?l6 Mj6]/e+ͅE8K\Z@F|]PKg7R|Bpip/_vendor/contextlib2.py;ks8+PK>EٛWqf\U\\,)KUW߷ RI/4eB_glfw2gܦewd͖n=ɼ-t:Lwtٟ}ZUM-w(xY*f-o7m5RݾN+5$IZIް]Z.4+gY0]NXozVMfͥ~,2/Li# Ճh6hmsQ)jr6kڭڪRӛdG*mZ98 4H3agYxw9d Xr#aoْ߰Z O`=0c/M:?'K6)ŒIB6*IN|ETVJL?˧I7,1]-K\h _2Q玱5oںjV/ndUSnwp;w䤃l'R"SVI]VP?BzNoCQS:D|*W hZۆ_յ-M[|Xn" xk+2i.2 &(K_lw> Vk޹>żVL _i#N%h^Pa"`Ɣ3GO:IE,1;;k+Y2Z Vdݖ9sI#:q>gT9fu(i׿ӢpLPyݰTv;4Haik"UAvm]D Xqk_Vc>=$#jׇ%J W8j³QZr9\RZi;od-i('eU-,̭Vtt"cX6*r6{?_HrDVmd3 +{gԻ@Л-ӻX+xb:e篼@ȪÈaEJDr4D-/!:F -`^E?q5 Ogg૶d{+ۦJQ(38Bǹ><&߅C#4 ] !!(uӖa j\rU4pK=qM /~A+ Md({Gu1ںl}@ϸ|8^R: e,T4BF%[x4?[|Wt_+˚wIVsW7O!~z`-Қ{VٖQh8t`[=p:17ȍX&^\>dhS Hd;$GYvbIOAENI#X$B:#uzbE6m3my)zz@n"n˴hJoIOCCmăkvڥ 85o2 LD#̮lH茥',8_wzD_*Kb v).O鏒;8#> !KKQ~ZZWow.KDp|#J ]A*GNQF'_ۈt#CbJ{Tv'"ufTҖ$Ʋ^7vi.5^΀ YH^j`p'`R pJ ٝQK JSCrG֝+Y2/w0\9* lCJt"^J@Mn;72?Sk찶Ո/MDiשmN=D%' 7I tx\@W-I(z9 :$pH;:6%v RO1&Kkp`A'|щ>#U늨<' _E&\{uU@.qh$b u"0v1pξ J 'f<4'Kv??Xmt\% g45AioX=i]z G.,0Sچ,<lhkDMZws C]zv{Ҋ{aR'L ;ɍ 劉;cOw'3=naIV %:wFf`.,m6u=92NeM*f.)5Q# }tU!lio!0O[)j` ea):5ŎxBRC eto%h+ݕ1ubhcqZ@,a)(CCWAzpC5dtUؘ2w#+ױy|^7FlEQsi-RkN ga$M^9 Mλ;1IbR2@Ի:^wMstNK#@\Z%ѰS Ait+{}A= MIo.Mlp :;ъ%Ԓ4ًŃNgh^ep3 іB-A%JHk_3T$#`& {ᠾA$(^"kTꪎ)"΍lkM[D%*óbC'Y`U!DSQ}r&glZt'z3@:,Uziybq%eँ3f\Yn F[R<ԃ5w hu(XoRbp3 ӮazTGnD(5gW]P5dZЄ bZF Cr"u/=XC#,zX7p"o,E!aBeR:(gL?,ɡLw"3.PiJ!/uxe7R BUw:%&* _{þӻ͠r(łxpV7aa{@1 q `%'Kp~b7螗ԝi0i%<͜ELm)=v6;wLS}<ӒºT6t"z?u0܂(y*rx.ji`<-I3H/-Ȋם{Iit,֝z~:l=-Z- YARȣf[Hr@gi7VsǶD {{L3=jgu!FXtm05i^EcݝܵGVsf k-I-YP\CR䌲F%A4o[iײ8%F,H;4rpu9BVK=mE`qtVYd+M ÚCrFZ=Y&Mo 5ߏq<[U(M22#c2iྣ[LB;}v3nsA#`=>̀brbXY~@=ϽMI(pW‹CHxE Nvv؃(9%lLUG\m ,G$TYO ðh"{yzuN;3uS UXz.u յ!Hfi},%>zZy2w*$i-S0z~^.& /'{5eT#3m!1~!ҳ*\R8HM. ##CDyirɒ<ĭqV#V{}|>!!0w5<`ӎ 4xdɱԅ~cۼ,Hd-t3'/$49%?p]q@YLO8oTQTϰ#^_wTi݈  ]Raou"9YSa;_VYBNФFR+ZL~5Pm3u= pv6X[: zCV7 0R[&PKg7Rt'lpip/_vendor/distro.py=w69wOR*3~n׍֯gK2-2cmm (ɉ;$`f0 Y1[O?j8LKx)t,s%1YRY<]*-r4z,X`S , + R%.L y;JYXf4@M(ΫJP~On9WeUͶ=bB4*ɣ GoT F'oUޔi擡PEu$|^5e0Tq.6wOɦqd0zpo⯻ǻ'X<;:;8=8:į{C!LЌ? " e:EODIq-#f d4޴:mllnnn›3]qv&WSS4ߊ=C <N6L=J7UH+Q"Ǘ" @)0=V)ㄘȘpirP!R0N%7gYx=~s1u}z+'HI)C}1"iX@ k3-W[7} 뿴-7WFd]N@W7P%Bv~jP/ಌ4!=iRSUhօLZ{`+% 66,k!5vN˹l4TcR"lxe"TdlWs@`ӄZzH|5X ]RX` gg0T.0<SQ#$Gh2ޤ^Yj<ѝ |N3圪+ڂ2MQ_~ccq(P9[:!D:"j>CB)q J1/ezy v3IGۯ!Nrc2^Q; Bd262Bh]5ֈeʪtLҊ YϬ_)à6DEM]h ]rp}q%^+Tp$H<X*oFpV.W^|>=@flťO0ഫb[[Ք&ivFGqq I0I1 4:whm֍5< -(|BJ)B9zJ'|I yT¦u2uC+U6t2AZ\H_"-=.i%?gύ<O='os1pP3x<:O2~yi䷓}m;8f1}+#V4gQwe]$pۅFb@B1]b c]- ~i(OG34P%> .I`2OxlSW.̨g<yNkG)O7_GOLf?/ͣ6x2yZjԱ~#ks}@8b @Gsp#WfN#E_ȓsǓ=$ee?]R:~Gm&9|Mfe|-Q8DjU^pj=PIBa(Glb]F}EkS$ UkIlȥѿfaC0T M\ ?8~|&.SY^̀ÇzJKU|AyMZMz:L4G0@"ӌE%jag9kz#@)E[?]}K(йS*DïẗH"S+tgRҟc=P `[KuG"u1ssZ],!-h4;Mbk,6dHy"3=l7QGlfrV!iMٰ4\(7R h(߆'iobFqAێ=Pu^[km }4w[͌᥵U{ć(w_[&"Av+ (Kxo T2 ZmpdGJ;(M~B#`) `Y]dƢ0pUjl@@Y]C&z9Cx_JRjϺrTg`͋8I1^JGl8VX^.ק6V72G0FYnms=*zD@J,h i L+D 48x d=|pi cѤŗbL  )DIAEӔDK=Ւ̥$/@YfhrȒ) '@5kM"L % ^sijzNc.IJpHi,-5e-.MK **̊f**%8i.Y1 wX53Ys ˛F趪Meui(/s>OdĴ\gݍj\RZ: Uw] QOj1P( ^zc 4ZTn6 ,vYA;O0]a>c1q&}oN@w1і|Z6ƠD_h G$ؤd3ևx:.FhpplT`14%@jzC3*KQ.hvSMnǵPQg &(tҤ?m~1qWzL,!{+Z M_ EA8GKP@fik>rJeV4HE@hɎ6ϱ kz]@fl}3::.qA(6m,{kl^|؆ad rRja̭Č G"hh"(1YzcM:(#*eX: 1AXb3#w00L7yyPxj-,U$OH@=4ͫHǪq%d#aҽ]Pn]GUy , ƻWam)U&񸕱E,&}L#F4ro~D6,?GnjGTkw Ʀ(ǀޒ35Ɋ8ݶʌ= ctoiEy+qe-uj"KZ`qAQ Qδ#T4AP ꍻ41(@$2T֧ lӽPg`3ӥT_ܶN9*hw7IW'.mY" 6]+g TGdFB&0ͯ+FSD:HKec6{6O@NJFvzo?u4 H)}[VĸfͿ]zlvn g;v_s*PЙmlklxW:RKTX@ķQf0 El $_Xb]N+55M%fV8^(P̀C.6jsmDMxb0P5wKj4;A})ivu>/Ⓐ0޼yT,`_t!L[,УI%>e(;$C|4Ė)|؇ f^NhN̛ ca[x{c^]뢘QKk:kC/@TS6*u+C&q6,b]Th^7G L)t4s6=Bv5Xb%ٳ\CaKڅ4q&cq:kfeEܓUlVlc~5.k741k16zv6{=gtj'h^WECcX _;ABjC#,ȔR:ͪr]M.7MV.W\:;"Uv !Ϭ24'-4#vP j+#lC{010j36P޿jϨ-ɪ7/B3p[̩AIYˆv>R9l>Ri{k{[qwdXbo|=W6l.s|G ΰ kb+A6@h SPе0E+^ `ꔎ P--ؔ9|l,tN`!Y >^#@Fm< +k'/wk2jO>b|䏁MZI{ ZFjVfe{vc_SUxw zy.s AxzuÛ];r25"}kET=mkApث#U:lLw@ !;J{bo66pGOﵧN]wAo7&u%P_&@!wU(/o8[^װ_#֬PUM_xo57[F>^\ % kZkϮwmS,8v˦/&;M=wޢ,Ϫbh"aTڙauvjc*  T\$h~5³u)'[D>`TmQz]62:Ղ3{> :Դ ,[sS/u(VYh"aZl"ե&Q=1͐,D=TEl)bR5ea W-d}u"LdZJ8'qJSƸ'wW:oc?eՑo)KsyPsI ljK/lU~(!ȋR*.oP/'xb@}.ӧ.$NC@ZX$ ߷zU<,Kp.H8c1C1O|Ι|Ʒ?-'FJa>LxX+ȼ-FϜ魷IţKhY?,Vwߗ3}۲TL0QD ^chL XJZH:o2eF,G&xwcNg\zed?T[~տo=;eKi}4`SpcN:tOڬPZ}層ulny 0I}="t"h(̽*6@V;(r**P6Hop|d5$(Oy@7QB黼p2GJ2DM"L;N%nѲYՐFYEL6ssϥ@ vHαtG}rTK!8an4KөNwMnwN)H_fZ.oh{pPf3,)q4;ФʧO\C$m۝nH61'-ݨ'%b:w{kӳjXWCq i>T'RLۛ֊d{r@WT6ѥ8|pG]K^};u 2e `2oIԷU)>R ){В>F ݑn΅7*s6k]GǙjV9f~"|ΐ|7d=}ȉkI/kPU%q!_r3LG&պ(3;1圆R1ڢސg:خZ2Z-og/^5VZEoѻ50 qҒk`5TUީx'ГЄU^-b]Lc*ʋKt 7{cPO{ C]Z{29 ozM %4bW=@DEU gph|5bjKɲ(4կ^Bz D]>ycșs3S ߀g9-\12^wc >U @7BS+uTS5ټUEmf#z[O>L̜i>jZZԷ7w]# Kh Zʴ{u DڥTB|:M4|ҬkSg՛/`_N^G7ЙiF C'Sԩ` %0,x%\fN^u6 hskש{uF`^'zUӄ/gW×-# m{8t3BŬUJ[6TE#"6C!>%|svַ=R^j=v{̇c e|#5p,á2 Ӳz 5gyxic<9lRW|k{lJ]Pܐ?{f^:eC_Hlo;00\9]Z즞/!UzѽlZ)@ 홨я;kɬDW mb-A?WLx3^o7öty.(և7bs&4f6G/wOOuk;e#.[In(qV1W0*U-hӂ .@<,Pfk-чAːNb7I!Gx^Yx)*>O3pDb ArwP^gY%x`FgACqTcx!x^xz$9e&t>ճ[ΖN'[6v_Uڅ uxeqd^]|Od>t [ Rm\ś#|eqݡh<+lQGaXnrKχGv ^&KfǴDLQ,;Ʀ:fxð0c{BcsNNXK1hwֽ$wC Uht-o|6,N8#d}Zah鈅PygZXItkf!? j Ϟ7Dc O@Q@{K9qulEh t76Bm6h?u hv'S^X-Kwݘ턤ǻGwb>z={DgGO~LؗF:hY!&.cmɥyxo@GӅ뭯s)<݊{@ĉ^moo=qi>B63ZV\lfkMQ$NoXB'訩yQQlÈѮNQ_c'v6MqA4`m82z@7oK>CʫTuxa࣪K4Qߙ+#ħ濦EEĶ3竦y iH^)f3bf7Gi379'-,;n)@bE skS1;K'=~L&qSVdo:+AX%u*qZtvvvwwO,ʋ6#ѫHtyt "JzIB*Zݰ$e?Y >\$!gkdGE|>HLYNQUq_qq>眯*[h.֫x4bb S2ɦh*;;;2J|.U]*'t;HUXB Pau:; 0JbT,5N0a,=oדxY"~Ze+^kO8ڢk%5'} l|S7O=1d1 HLr?g2et mZybۉy<5|h:tM>7Ǎohq 9Qɠ槰Q5t ̥O Mn}R-tD)h ' {MWr):51`'i^D$n/۾bJ& vbO W+L bPrTQ4Nϋ >SF cbe-G=^.9 ͠Hzg "*Ψݖ+AGjho۽A}{0PXxG_߲ɹ{gVxJB:cQL q4ae7f?Г,m8g"^d(Y|E)Z7 Yb$P8{dt&:--{pQ4АZVN7&LUAS Q˓=;R:T]]$'eP[7|)K:''Dڟ́,}ȊhnK9Nf6Ghף_a=PeRYSk4_sW*:B;n(hVJl%:sd"?߅lI(d9m55g$ ``Q$(qK>ƌ7y:7fhcNIq&И쳫d>7茑4Ovs)Ŧn|e+)@?I..+!*+vcQ/ 1@H߁#vaY4=mfAU6xЁ~Eoq5V@8Z RquX&7ٚC+&niUT[ Y#X9f #vBc`ڎэ9g*PKвi:)N>ow--A疆Ac{aVn}E 9,MmX+؆uF#j#ࣦͫ];4a-Cwi&i݉}ycvԟ?K" -k3Xy!LX5.5>ER6LTNChL1K#,g| ʆ`W%"LXmj/<6b*gq%@ (eK\4?21a JpJxOt2;1 Uc"lYc^f?n] M 0`x1{5(cl;)YNe EɕJǿc~׊Gsy>?Y^gah} 7hDETqǚKViCB(mkRdSr{Q#C iRϝy5k&s]QXHPU<.i1,#g5+m.$}A:=I^,EKPTڒWn7ϧEK$L3$FŃ:PɶŜ aUnS/=RNq9B}|-sP9!eK yQBzm!td<&UP:7h'~Y[(N٣Ҳ*\)>q}mxi @~VbPFk~S aT2qߑ?eחId4ikrjnM$9 ieKtuZC)Lf̊V"Jސ-]İlD@~c>4C:3T~Yf˦֎| K^%(u s"v*,KYilMQ7[$m {$aǓ5U4Y%80N>Ed LgrYns\W8l&7bP[L5x|ݔ&o^ ^|i"/Ul;hm k 5Me ^:UM'./9!?wIֳ_ Զ\=`_RVTȆTmFJ"bHSf5{4~؁H H -'̬7 螋=6--Rfp -O2!O2yhYA#{~꒷8z&;.?+mɐn I+, >-Jb뽷AtLdo6ql)3d!03Ek#x&Yxr1$Cy4O12V8-3n{Z4l,wljv^n8Y*I;j5j6v{x8PwƝ)FC)˰2cP:XBAZ丗o<|fJse `,74thɏ!D"0 2njo̠gGޭT}Z1#W1bߗM6)0 ſajND䍶=ꌾ{ϧ?;^_W^4ˆ?45KծgXƛ,eD,4\Y{, 80ԯ{FVLLXaaVsʣ.i4)ZQ+еyKRK%_]XћYilt1w8Zu1LRAYPc,UfB}_rF*S܎-ޓ4A4b~b_O:z"u 3YӋ[:iFvDӈ^8[TM1%&Rs+1Iy %qu\(" rY,BY-di})TZ5=g:*J"Ѻ;(/b4Xͼf'^^iA S@roKWwbGRކ#~CiLPЪ ]7\NE/m"nx!!8YVmSr dd-l@@ *t+}AHOS%52|?^C4UZpMi$l 5MǠ G>r>Ҡ7mW+G^-dJPpT']AnYk@K=1͢-᪼n@\c7#=@60p$8tѷmN%G' Sz 1܁;O# q}ʁOK#)~`"y*]RjYuKro%dz=: O7VQz]0@AYCγ>KSQ|@Ǻ!ik4GGkmyӷ m8gWH G _(r)]``WLHLP\4ɋ(Do\a2j942zЗ9pՕÝ` 8v| cHnpIUaDP?IUi:aAþzw [mFFtNȦzlʫnd{ByWQ(xm!IAp1!ɨs1=7s!5)\ryn|\Q@wDT l7;UwT5Gv2)eat 0|k=d\$1J .X vO]n@ D尸zkq]EhFU23*C%e*o'.,ʌz.UaHN 5qzȝ'fOÇ a>= E*Ւxɺc~IU'N%#E_nVQO!{SL t#yANEt èV3#pu?&r9VMaԻ2ؔ$۶D<>cwphd$ fC\x]aj: .iEƄȅTp)[ Sv9X tY'x ²9G+s>By晴k%JRikeKk W7}ꕪ\ש˧*ٺT`%2  !^f޵iߤ9,O{Lޜ}ՑblJBTFZ<^]|WF!ìm3|J8@;2z>o^C<#&I]#ߎ)`p_IxhOHvEm6ʒc%%Yk[-gq==GURmgI)Sd RPg7ȟDUB3pwI. Nr?AĦ7u(]]h)ٞޕ##mɓy_aͩo0AIF(t1 : HHʄ|KHngd*Γva  V#n)3ݱ-+VmJ."=-D}j= ^4OG5Wy#_ޯvRD~>ԴR<ܣq-BWeZb[ \6*JD<LTd`NdqY iKݳJ2˖heޗ3b4ϧYWlɃ$~/΄l,| 9ItE%Q !"*!z@#8<:HfG{\ǹ}X!.H_~|?hI߯[eD$GOώˤ=@T|{ @?ysu&PM(h~>GG8:?G=z}I0`LPO [=xgxLxo @]U(YA@}cs"$QPD˳8"hun[AXSz5+ [v̕PcG #k%(1^;(Dxݷ-㤲1%'P})L/f$6C081U*YJp|h44]fE[dj;߷: ;"9f:"_jƳ 5\z"z̞XxpZӌT|-̹(ŏ׭ jL=~3Y@ ;Tj˜1&YXPࡓ W%D8Dʤ%,DoafTޏqŲ1(A/5+ނ%[d;k#v& cDrfziH4W܏-% K{[4@=G]fiB5 ͚3> Lx\AC/`SO݉P)cN)[F/>j.Z`,D [o7ICfz=."O~ћ- ?Ug")b9shI U&`w'Uwcf٩X.lk>4|nDX R 0tU8Ix*o|4){r8-$ˡ1*'9ˀw,qK>18&qRk0$itM4|>Ci\c Ĥ&8nmx4ÙCTf:AnZa_V?Mƹ,́ѽ{ɞ ȸmJa7n|Yxˡs#@`Çj_,{{Ɏ<PGƝj̀Ip]1+j\[̘uO4Ǎo"Ь~X RaœÆ^ڊU"uX%ȕggeT܋hPDha]Di\HoF0.{qwFWq45LT0Eߤk:ʦX0OA5>67 4Cߍ#jr2mUDT4q90ٱu(u5!(r|{H̲;xW8ns;eB|^} } [pet $OC{I,:E5>l`/l{>#d6,3=s"sJ ]%"ܣjܰJ܃ְG3<2:xDg6VV "G;c_[ %Aт anEp/07m6zp2]n|@Ib؍[&q O:[R"} yByba2C;E~6ᯄ쒇B,wٌYx;z%-X)D!f5<]> 楽Pw:1Q=}RԡPTg䑩ޡit{rh \Vwiȼ@STc(ۺJjz]3f *U8ly3y:;e2oG[E%q%+d7fzAZ4㣎?2L!f?2M o1r޵u@̈́pEo~s"~|Ұy\s뇇|e*vV~݌q,xM+P{7:,j~3s춓4T+L@xRc+({FTJ{S=~ h#ɭvWnEM´y >{%+%s<݇` [׫7DǪJVD%puTVBw5p^"f_8b,+ v^_^J܆Bg]7* ~RO+K=up*wbG]4ee ^^f+N ıRʎuxݘƠ^cp x/B8'WX9@<)Ed#S\>{a+ ͛z4z Di(5%&2홽_Y Cy8b\YSIEMt_PEzKYP7C];}W$+q& qSy _ *nvĞ Z"'C#DNjub8X︢~Ѽܛ}B&=NlZ JЭۃ́x8:wMLGbGa\$ɞ`eK/&V!N=%Qfu"+j! n)\^'L\ deDpPz;b{KKwtpOYHx:XmN+ WJdP3rC{tW(~4=P>V v&娚iayIPADICk9<ȞC9&I-Vjvwe,$pwWޘAjMfBKIęBAɅxLx=Frd$)$-W^,S`*ȧ0m F,5 204[1pFK=n ?#ЋUUi]GԁL(7}O"U2jI-9^Cy_w.TC_.?}s 9<.pc Mwv8xU0U3~;^.W,ѓ`HMC*1{b,p@i?`|l4>lpw@Σa앚pzHZ446@u9ܛ5N_n ik\bd#yZ?t]].C1ƵKKʴ Nk:oӋ"HMo5utLE#X5'4&)v찏gv7{&gэaJ o[<)z/G]S|\o(VZ/z! oq1+힗5n zyQW힝PfoVɿi^qer5%N󈕗]> DKO{p iOjWjLf1wR1J _.+oUe \» Map>vTbA EoO;?pp7dbJ-+<-0 ?F@`x}?yaR[VEc.OyRx!O{rA He0P&zhZ`f `uͲ&Ȏ֜'nm7{XCAbGԍU \#׿̱w[ 2$ 2}iHt-!}Coa "|5ED-kn/mP2FfL&1Ná[¡#;3á?8:``B;dׂC/XL(A3K-AImpezE[% FQqw*l⢄ Z8tq5*Iu1QY$8ͧqVE8IҸ DVQ$*K|^E\VE2B(](4Jc,&D%0kLoL͇iR^w8AyK|<3"/2NS@iĺT 3Dm%Em]S{<ɼȠxLuxT104!B8q{461 =+1gc'Y*#؃ב1{QV@ L,/Qw=wGg;z}:hV7(_N^#Yp>8zu78:yu룓oP<8>z{t`OI o߿<:>:G7xst~P؃W}!t5>9:y9|{xr#ip7}wp|L|cxO}|u%a]S),аظ?b8 Vv %M&:ObZ(PrLBEI w $QZ?D v L,AOjP?sďX܍03ʧ 66+Y:t?KʄءbIX\Ǟz逛aT6e3!K$- R6*YpBc>H *=I#:Lp~T8x.#Cb,e@"<~:QQ:Em q@ "Zf|ĕ ;iNnoNoOWm,M*R8ICWO]#S]5(t(5<@~NFqՄs1lLjGGN#)Jя~}48۬5VG1sPFO T@#qpАm$0u$XYg׬qƍ;5_F:U3'!_G*>Pzx:7yoK@ݖmR#UTBU”]O(7HE~T\>.ɪ IQ^Ūd#(?j·ZǰбK<׶PvU/T^?%Kөv ׼X믳}TZL+gVm5kUh2g.)-3;iDDDsN@uw4Vrc2苢ؘ$ăsP{5TYc;E&"?Y.ơu}icqΌo2$#_G@'yu/!W///i Uxů 4V2~"^nwШ!Lb?.G+T1X0C7x ^tZkV3ztMz` 3WT r1~ËmօƛkfL3WUVd+DT3 ҿYh52GMDC a,,DQ$'.PH/lK/6PDU_}?!dpxL^#ֆ:@ 3*x >NgCKp}ȓ,"DtKC>B{[㥶v!Bg8EW>^5uui(%5ރn@3x)ղ喼WL10@\Y9G0BW(F=B D*TPy Uw#DoE)@hL (oP}KLqb5ZSJ^pěnU[9#mx\FwaOӼz*lИ̃8ц-9oSl$*VfT: &UZ7AuH>"AGj +$Lkw/VaIz7cpx6°vJD>`R_hR^>= @WrM?*1e83vk 0b#1aB蹔N+6vU+R&DI1 %gIzL(+E@]z|oyfh<z"FPiF0m9Gҩ -Fb~)̾8!i ۞tCbhXcU/ pS'Мq<ォ%!@P/d) v,K[u L]WKuelW'S]dnZkmA|ʦF̹O{*& BJDf;(,gH)ͱsWk;aq/HUj&WGӺxp#2srHܐKÁ`cd1BメIBF4F)vYps0#,nh@잩f2].iiݠv& X=+Y<^O֎q@>U1Ky&F \x1.ǡhb`9]S8\l]n_QzŴ74m| RsP6tEfʥ2l=I*]4 Ru"7@`^4vRD2di_a.{@@?hT;(h?S}Ptޗ֚`??U:z#5q7EDdb-j_Q If27Fq&x c&_$G4[ſF7t:7:9+Qʄ߯p'v|VZd:.NɎ-F3 xef9zؘ[ C B.>Π"뫟/@Al H$q̂7 yW7sJ@M2{aZ8[agkơ )f` IMnYG֡ g sP hzRkCy:W8j  {h2sp&#y1ncXʗ6GB)Rl=8 P@Ls8 c N9UQK`8k2Hh oReZA1tah껐qpya1'BZ74èM?39+kuVj;{eK&%r23N&(²͒h7moY5=4duzRp\UƗu[!3{jTB֦!bVtǍBhϚi X:炵[~Z-;AG2hKR4}r0!-tM4*` )Өu}Cݨ^Pt E-:~a_ȘgAS)ןP-Z,$':m`{p8_ jpÀj(b*8(TPP -e/w6Uh1qiu|%a…(B i/9kӛ6!Ǩ_:dhE<%@G3%ed,촺fҁ9F7ݾt& MWqs=^\6~,|DmX&b/6P. x =)H Glv(x_w}F.J}Ml9.Z5/E suWWW)DŸ=~gh.%~#&?Em@깘 (&x4v>=?-BCD=+BG[#k@qq׶G*S[Lto{6T@L8'5n-Ohi2BDrƇ5+,AMZZ2잝xUلT0Dh!CE.^%B7F%| }˪ov AIMVPi/.]::T3rRkռ ؼʾM gF q4cM-YeIMQM u i,\׺CMx!aGxNb<ڄt!UH5(Wv.רr0hbsşj".nQD&qkCClt۵ePV; [R0gtt<'aa!Ժ5U7KՙPĭ%4[\A6.efޔj(N[hR S8}u2]tMl#5A{d!q$46dMvXZY6xWęV 6Uv.;fz\:| s&=Q6v;*R6:I>g9 a*OQhRH'yqt[i KQSj_>^VekvpfuM&FoUߤn [cٿ"H! =aespG,t/JuTלnВuL-,5v뻝廎 9wZ&t\p^! vVoqeIj)C/3D16hC{Gxdi&dH}$iaϻc(Uɏdpթx\̭ZF-iY? u~=,hmi֋A꬜dwE{YݬU<{!G .+A-%O}]gL@,o^Ѧ 5y~þl r{Conj(G~[, )z7w=PD@DХ4J4*6خUXSs; ?xirF; 0H8$kOD7kqJU٠.@Kf$kI~M3 T6УLP[SY>fBI" Zi;Y_lAY Y@r6l?mggF}pj#uvy- L//:;jTAcKI6l5MU}4㟤 ]u,7Ə5]#F{:Ze?G`vSյ%q:%z#D kܲP 1̪K@*T]MBVe Cߥh'KfQ+t|!HK\seu>"$cI>ݨ;)L;?贍¤5g#őݵpvB({΃:AJ'S(~R;C}O BrDƘt:mG( klz e ^`gYFxW-S?oc6u韵ͫ@+"UI7W̻'įu8pW Rmu{d05eq1ߢFO NWsDkv!YNڴYG` M\y.˾bOuɆR`3̇K ):4FkhV圵0*6q Lu\L=1!\n "T4f~vQy ?i]5s9zE6׊ ++㔈^\GC"fX1Г4 N^`۷}p@ȫ up̆H0^Ftsɸǟ ^Y6#2th:b _gVRG$)T?ND.\cx{-=G Ax씘c NVZ݀>š _cX=JY.B7zfhBJMPFİv[ޞdh1OjbJ:7u$NS}l%cu%ӗgA `ch y%JQj]1"r`*0f j7ԲcW[ g։fxD]ѾtM.NL+6 \\RuOfUI(qxR`z*EːE`?!{%5-[owLH,l#5.5C5qM'ĈdSz}7}BρĊ45m$Rz8Kp Eg>pt %.?K<.U }q \Ý~f.qf0/v.Wq/jlMcIRAuKofsiS]·rߒiچ},o7 UDsW٤,0EaNAbA 5+D#`8Lb+#czd4GeQ2@k8mB Ne۲QI* #?ED52R뱝7R >/ud(?s*fjAH֌>O/o/}$~8Ps)&pA`Å"-L[,d+ Vl^ZKp6gX֑1CZ||_E^GjGk(iO#b4eI G/G׼%|"ƷSYt/wZlRŘc~!:sWآdf_Qٛ//"MET,jNA[< 9Kv*N뛉+_t^=*cא͆a/Ԩg'8&Py5vN03XIA;Dj@i{>.>N$X]S$ab3RBGPaEAvI6 Fqwgkj@w՗[k@YBڣ==hcS00?E4DnodQ-!œU2Ic^<54Wq) MEMlKqQ a5p5)Ԯ˘`Tp@s~PTtu#:AQf>qb2f#;3j^Pm> vanr1~0)GhfYT'A*ŊMNN鲜bh ia.NgWkKGL8G Q\ܺ6)"q*EcFLNH yFwL84.m2D6ZA,6bHvX/a朲xg P7%^bZbZί w%;&T kd%M;cU]=B@+l ,ERN^ ͏W)R0j9_CGLygqlF6WXOV7`WrAuz3S^? 5#>?O~kކvdz+ Sّ >IaGk5 - ǀn@?bWŚ<;4](J^Xe:.D[=.5Tdq!e+AGu7RzK-uAE6rD1f.yX;HGbuNV.gcu/p|#|A!V4i(k8!|H6Ԅɵ_ "T^ { ~s%>5ٹU@C~1 FlGLzg䗙G/-cCҤEiZb 8 C(TǴ ҌZHLT"D#bbW밌,x8bAq*)((QOpMU -!݉J(Y#:(Z#^+ȮcNV%s1 6߻n׭@u ik'}97aMEl=E$bxP $4n"),71lVgXe(% EmR=fRTquGR8uu,_q@0 AaPEn{;e+c%!Љ`,nJL1PdSLL 摿gހpxۥ[0.NU,[[ذҌZj0IA:.ЪNFzւH ̗_K;LW2yF;R80YEi+E]n_yZ4s&88Ga껃oϺO9<,8}<>8+"/8R'?굀_O^G'gG޽;|5:zy=G?AA'v߻6w:fQGO4hQP t p>}0<`dFdNvj,"d^hrc#t_2e#fZ5>Rs%!^?%țD -eQEq0`џ"/OZMB".l|nO)9Z'!me((# `v_YXj %8頃)*Qׇo?>ax3Doccce@e\Y4AWYȹJ 57Nw̠ޫkK8N"ǥźS IcUȤ݀tKҘ%s4aS?fWI&mQC]7xH=d)On.Q*K&(lv_,݀qʹ̘K?%.{ni6`788%2oiJo0TTZ0L+I1ϸLIR,HVAW?wMJC7Ө--phLT$M(i4J6;L>TBK,h?LxRq+bDm@miʀR3<&eyeu 2j 47^ =@q1'LjJ:Q\HxIPh=-')UBPsXBy H+txP,%>=Nǹn-xV4w=WkOi[w_u>;:Wko[kxT}j믾|/w yrH82m`7ZDm~ зbF3\fع^\[gWv7j3L/yʻ#v+EJå*rdyv%.] Ym^yN# Pu$|cy{^RPfa/z lG`km's0ֺgIv-r/_Z"j*mft m4)<#Ƹo8{ K Ú=ʽrA@ M Ȫiq[+uBp^q4ԷAi=^0x 'v)}}cli =us'2)iG JFrrJi+B3*b KT<0S`#S'F E|Pl,ԵFFN0iθy;* E"Ϫ:ATnj̃i"QKkխ1$ Q}Z,emi?|Mgn.RK$۰Ml0=n=ceā6l^)F gߤѕ'b[edhx(J4F pbir! mH6ai{:pPb ]qLr8)?LiOC.f֩E :L\DqX"bOCj"8YAzI$.'ԓ p ^ЄAa rygք_ߟt)ޘvvs ZYoJyڅ7$[(dF tEl߇ -?XLqEwU$d8Tdp6wgdGJX 25i,3'NCa84cWݷJjcJ9c@@J򀙹j8а@jOgw6Xht]1BIc:bP`,'izɂmxGFW1qi~ sw"̉41 ْ|oeFN3.2cvюE0SݳFHtI)!GfRivI&"(Q,1NteLN웆&334m"Aadb۾ʤfIQ e]јìF)ꅰ`"#:k& `6HNy4O |Ctn+YWZu.L"RL(Sej4~*~:s,z`X4@3ewF6+eaC(l+|2s wa6tGSt ܮpe"3N޵\B(9!/a @KZ e5G {#ȡ  HV! N|cX-^v7*hEd%|dю8a .4(m=Na`7 2_ ykj~"⹛wJR=$/-oOJ*` rjlowu_᭽fv&")?(IsīY[pI[2ᅦkaQ)mnJqׂ<ËI dL#Z3l NnFp!ux^wEgpq7nJfmc:b@wxPx:[ [ K1GF [u5\u]wV֝snD\aZQ^@hm>:0b ##RF,cp`Y6MGK#VY/U0XC+g|vͼ{{[0g:䭋^?t78[$cu 77oȊ]fȈ8&Ԟ+fC^{7"אʰw m@fS9rMe4@rmqUW, (&')#D,TäRBFY^V3#;9?M2+I"lZ䯢uC 8nwa\;N`W$N!)pj.\`-tA=x{]<բL{RC& ֫;ܰbW״83F-U#K^i,5NW456cP\K[nbVZۼJ[?4וki}|uGǤ@90J;lڹj^bεPq{.o׌1,[I:TRu>kS=GN| Bq+ /JDVJI%w TڊnKF^RrIF]=(.-K5K%~PWx-?P'S[_7|庳W.MY{OǏk:RM^Xx[>~~f}_>'G+#x ?m7췵#t<և-xuէbR u.M+GEդZvMWmy[VM)ajXR#э*`ޮ{*4+@B]Q*da>4 m:͏Z`EWc5 ]h(p{R1D2Pk-M]{`S (!nPٔ5KB=N챥)ZzwxN,**4_%zX=^QZWsZ" H͂\$R%]_y~09Fd۾r1&Q>ۄ+&tO8f C΍VP)*U0VTXyUjU\Uޫj~ٛ?I(M(OXqxq)ي^՚UuqD.[Wv GYK}ת{?9xy]k"1ȷd(nݰIyϯ4dt(tYBWQ@' [k+oT1nb6! 7 dc WГ]_dBxU[o-$RlU})LE=[]Mxɣ-v2i"U727hQزw&սZ2M{ą1` ++ЫC;,4`xbQn6de-z%&`ʰSc&c խxEkv[5e!=mI!,St?R}Nv [$ROD` Q D16E?yZZeqPn,OI"S_l|4N4CD+nk gUUD>lDLFˋʱ)aiGUsi`hT<]piI:nF$M%G1D'H DYA$3'CfWp=HSE5g Ce)eAg̉RR3 l$$)s6+H:8J(!D!+wEV o\e`;Uh1BDAHWǰ)aӤ 2lÇ_?͇r2زrpe$AlPP \=χigA!ۤm  O#s!(=^Q~ ՇLoPaNNrJOW b7+"{'JTv՟[=\@C:^֘ꕥou`#tl]r*ܸ4\np$$Vgt4@1\Bc-د[@!L3t`[[4؅r e#ܨ0WQa(2 SDR/'ǨDiOSi:"K mI*yLu LJ6@RZU93))D ]fEӋDeyz ux 1UP**O$@)QQ bq3J7P Y:dXY2 OKRQ*8t@ (D!&vP5NJTqp* ~``+rN!jyq[#A wTRdIp q{/|7pA`{Յ e)-y fEB Uqv)@h/8`+6PRջ#i޸`QhΦtEOP&nz$(xrI, i6Jz}-[SЌb"DIfI сtWBDKFXT[#( ͒*JWCo0%\2 Ą9&q_dgml} .o@f0 %( xh;|Q[ܡs;3zu\Czaܢ3TDU^,mTLZaFֽfm@ R%y85rpmȦ$ cRݒwڀM_R=7%c\FT8bƑ4jC3N(Miubr ķҥRL?k`jA/OO<-Pi?IF(Z%89+ -.I} Muo]_F~? V 8TggтT:)dAC'F* _-&%L1$:|P"Vj"*b2u V?Ԯc6;3ϵ[^s AmZ%z5m[ =B?|f& z0c\y5}Tg7<F2=}&AX_xm ,a(lQY<~J䚚q ?0Qr񛖃 e T2I%h|Y#NCD6&6S 0A^ }1(ŬWɍԬ-X i.*nᗰ*(Q*S^-b3 XoEE9?p]6Nw:>dZ3`\u5sQ%k.?8"?ьXjD-JÇSУRD-N9>t6t:YǼ\~O[DL- קgn2-VxuY[ ,ä%mS ~&;(hJ)PWs,hD{U!q[<"&6ŘPdha>14.S P_q YDzOX?%bxtIå I)ł+hly ?U Oƭl/q GAde(%XW>YGS3d-kbMJ7뷿8{6Χk) h4/) ErazW$k =PT< Ǝ^ JCzr}B ClBX{\\+!8rEmZ$hwaNH$cW#ڻ5v)mӅ~. T:W?bИ%=Z0X`4d.f~`wǦTlyavGYE4lP<--GWof-\\t}6c]z7՛N=9{W?XĴf٪  UY$c^F yRb$J0 SU>QI02ʆ9gibZ &4nôs -)xC(cKZZ*k%W+o.%b nE<stpzB x0^V ֺQ]ibfFJ4o1  wE>N @ }K: b魾QZ !@T\ef o`X+_2 GO)I60P`'\`g龖g"#(~#yןz(/|hֿOM/˶lKeC>6{vT?a[i"\ҵepا[CGsvPNQq^guteB4QGEF9Nql;&Ukc*$.Uq6)))Bc¾ 7[e>*Q;Z ʍjtN?%|>Lr<ek|>eS &s!bi/jQ:G5ri\nou+#1pp ܶlh9rga`Du Qm`VhGG ғf1h)qjY[زv=9 2j҃,d,s?jIgwtWR>DUـS!3{|Z^TQ0kN-f5l]FezrJs0 ~A*BSОʉJgCS%h(0* Ygjrb#Vx> }H1q $A8Ë@49j<{\|tvQEoN-c -( (¼tjE 4|TuAZ|;**1O$YHW m~z2H{V,]O輿*b~2NMq4FY rQW?թ4EH3NF -UV`˥FzR\cp+0-8b}HLX'ـn-&NL$ܜP)9ؠ"c]ɱ P?(5LУޑe}-১g _dځ4<<ݍ@bcv|V4;ſ?y-K`nw;x|Re9@/mڃS祖׺v W`tC@mN}_?BZk$F@eg0ۻkf+lOiZ_TrOJu~q"#67^f'2f0.:9C2<74f1 !mHC^3/1/:-C;~߈(~J= Rq 5UYSΚ٘[SCZQ%凎\ϧQabtNh ,&ez%(qT&(""F&噮I%ŨW~#!#5P%HIIHa/ *SMnRYs (!HN =&krgMݼ猡y& ZPBpl?&O_9Y|*LD`gN ž`HrJP'uIMtya^vsV_V#ZX+zlQB#\$@pjg?*  C-(Q2bT Q,wQfŁ㹨W,U:OVM7$"r05 ccO&*Ʉo^p +/-XMQ`ғV?{A.3,QCˁ- e$WYi㤱#~`C̮d\(L$[~bw%B3ul[rZܴ4Op=Ĝx,+o\Ԥ,%_2*r@|hms|ucqyb_0̛H6⏜&{Jw+惽U& !'e'aN8nf|+[酋9 yaQQ!Z[[ _5>_c,ciu s{lд xׯ,?NKDyQ>aL&M0:KK*P,/9z2c>@DUR J [ i" "]3 Ƃ3oZt Ep-L-@7Z2*OI(ôs@yuVKemH-p$'#N$ȋimM8cIZzwf$57`/U aje>f?i*lbIM)55=jx/ުq>@K%Iܫle,H X- Wq6`xG-R,oUVT:(L2}+-j_ Tʶ*>#_E)W$f! Dc`4gJs*dV)4C N EY4{0P+Ց14{Ƥ2"Ӥ 5:ē :`` XHիxn_9s섾أɡ9zڲf zjk۞4)0 GL_URIBWoi矎*GqVm>9;g~:3+ݔUx>3 5ByQV}C[ +mw]q!$ w 1,Zj?h6)V.7eЌK*!ѝJ~GWD4,%嵋vѪF]$P (L6{ ;c }IRW[G-t]GHo-pL/=^ %%s+ۍ:XO4ܒ.?fNT3ːHz!H03''ӷsq>'zNP8 5MĢJe=?WJ[tƊ%'-,$ I6>5B]C!pmDYJz K-9oFD퉑wl5v©|^L$H5g#h͎k^ {\ US>U+MKf$`A+|sp~pi9w ,uӪ4H~M⇮%gqy7]A;xEF-69e_}b3Uj-048*gg {oHML7o|]~U(Nv~U.h>tw'>DvPM}7 ٵeq){/F;& X5FYy['u\ I'D<kQaOw1z=ᡔM8t<0"eMVG̦$t,8F:In#`rM?9&2ѥKr~]sq {8Uh -2 ٷW]t %M ɒ#sm mّsO;*vBiOBG)XRݾq֓O՛3Uv/vӭM or\#:VR8 r I녭K,OsX; c'd o'֗YBU"N,e?+sf}-}| ꢨ'3z$U h5@/tdC7ir,^CƸ6FUL/G̊ ^pvEqwѢݷO*f*8a ;~hW6k# EП ҔINõΤaf1 y(ESZE⢘h>-ռ,` ^^eNe!j.ƙs t7TVjm84L!5~^_uAv&ZGJbjޠF(*M@rԕ|KV꒽b)(_! rQP %pXэԏ㙏VFq#dAl bV,.r!yKEuo8ڧfֈ D` S'%E"hP-K1.kkx/[j>/[H۱3";MFӰHT8\ó,$xt#C51{2Yzlhf' c-bS^az]Ul=<ٚ3QCI&g鬘 ʴR S6QljQ1Z򛮲"D8#9 Q7.,6lrO;@`C9ʘ#vvRW{ti-۔[Z> xOaxiөM)kk%繕LZZF{I`N&m &Oi.]OCq Z;lnwp,--F8ePiV Kh3s"<9&1ԣ0l9ֈF`eX!8Q+AWD:ʠE2X5 ?Z[#cD0yDbY\f(qjMW\P a>[m.IEٹ)ȶo&*"Wc%-+q߹`$%MS RŮzY{~ǝG|F&%:}]A!=@Ak+:HLF|ul%,rEΗ)1K Wz̳,WКJ|+g{:^MPޯ4ጎL-#mL2li.,u'N¦kB(-׶Nf^^Dٺ"y,<;^_l\~u3p8WU_8 ]g9c]sF{@ץ (Ͷ\ P_!N;1;cEŃMqHg jyJ erBXшdLҳ6sزk1JrbXi->{~P(!8vB6[mt*$a5S1X Sw<XDQ Ң J*H _Z?*wŞEr:O+Rw&ȏ媱*ajdr Wc?% Q\yÚmNsBqn$"H\5-'Rm#݃oU ؐT I=5_n#xZ5GUo1l8v@Mj'ml3%9(*Q!Bd;/܁^})#Z<0\4:=oO;5zlU3읞^ț iD-\.U >#ucgLuVUhg[BB^bIpֶz"\> ڃ) QHq~O|%11>vv3,Fش|Bk:p5fA ˠrc2e}yrZK5qG҆CTZk(j#:**R"5pUb?\"vrZ(]L(yo G) :4u[ޮE!wojYNJBskq~697w"JݣMx">5:vR8CAhgaJ-x( tWSQ! GwW9y `hq^Fc˿~Re+.@%QVɽ\>Za2dKa@a⍸`=eC%^UlϹnu zE׆3G"zi[ ^1fyCR;C湘fgA% w M8B(hػ؞E]y(ѕ6mny+y 3h=bn}KnՌŮs({ık]q᡽E.9ޕȿ8ώ}`Kv_=ߗuPiRνeH|8H$u׳kHh-J5iO٨×Ó(ȱiԽ~ _j Kۆ [Hds Tm|_|Y!`zʄ ^6i=Ҷxn:P/l:FHh O)܍/dю6Mk~2 E$ t t3^@.evKD Z2;0FEW$p~e?>yiG3, g]SH> 7nz3R3nQ{nW,=56 &b%5P+k3Eas\Gaor`i{qS"o_s7ƷwρG#󻤘1M0= wҐ4f/ 6RMi#jD]+{uH }p mpB?ppJ2#C@MsT9IN lJA"u8M:| 5TI-ó-ycg-_!뱤Ǯ; *{eke !Kvо|Ɗ.5b˒pXk2V=Y[ۑKL3{Z92pf/iDj#RFB؋қf-H s.z#T4@ w#9F=V]>i-?uѸR!e-%Mz ,J$4 @MTǘ+y1 %\(׳E̤ Vzg\W]{0VVXH]4l9.MZkSE{t0qfgΧ !H NU `y0WΪmkqikvM7Hp^i {| z79^"4CD` %#s9I 4 qw^}_!w槳o,b7`p P(XOT/D =cO@wO9r&{@\`;@/n; 7eOZ072眿/Csx5?襗Sֹ n&fm6=/pCya7MZMm^I&b6eM7ݚ.hxx[5[?>y_o_;=#kD-!{Bq@9y{yn-nOGֆ8oiPym'IKƈZR57X#X7`fȩGtCpw~t"*ߪuZDz(h2|x7QT/ZEi%ˉ`:ĴQ$sD%448K-\J3r^`W>0!쯰S|+T qQ^&̧E9? Ъ7ݙHFxi$oQlo$m =LYK5 q찑6f#Z̀(M]%̬΅n gHexj>^]i)1)~N$XP9`O߭G:-qEMҭ./u_Hm&' KG:yFFF )"1o2@IX:M|D\&mF݇/&PR ~k$:e$;6wڥ)It~F{4{%SKaEo#F*Of}eQI|,Zu;M*ⰒOUu=u" kv ;NEoŎ?b`doW+sR1[R0srV GGee JHwL`ȊŖ?# ɦͻ+1T4.Rp6㽒8E.`P30hSa_^. ;ȶwV+HWBɁ650OqsܐG22WBsT? Q喪P6nWKE\WtK艑,_(%rt=OC%Jf?^3mw_ 8ﷃ}.=KomJ,𤨈~'(g'ObCV䵯7y'U#fnjU W]32,iT?SU%+"xԶޮKvBKrkI{+x76nAkLe!culCy =J덤٦5z58-0w'WIfPdj%s"V&u=_^dnsfZRAwr"!zw?+2Sjkޞzc1ҟ# ׂ &z3T}/ı&SjavX6f ҵlQg[#_S~Y쨝2F+n-}c_K7 [(&e]X ..4BӒBEs㋼KGHFW~i43mzbSORu&R(~4rlSKYA"n9nJfzHҾ+/} % Xr'O8y) 8o Izl<]+:ҏ}-]`R#Z 5\G?ơAn}g7Y#x `2y!Q1@Ђ6lƬI;&bO^Y)NPP@A6(H本;l m o ޛNy{#>h߯,ЊV+7Du>H( ux!/MQ9th2}k+/nQp_QJף KvX(q54(K"0į3F\I ͭW/v)C1ɸ[O񟒼Dݭo:zo_?_>ݧW/vo_Qϟ}?j݃/ zY>oe7L}W}w//^6J~F%_ r_ ٣wK~y]*"|awe7U[6ۧO/ۗ/Tl2"߆}<]|ybYp(IS);U:X⅖yGC~. _akAqé ;aAr;%]$T`rZu]D`؁FGp)BcdWH{J^\yfQN tG#1GNɌZv4n8^PZ}mҸ .oɜMUC[)x$-Co4_AS|WMfqH+g tr-z79J[ف,jI@*7DhC16>>UKJO{4A*c7Po`sugl*g̼ 杏 +h VRW#IҠR+h>v0Ω[ͤgead`\k1}AV whɀ|֟|䊲~cI$-b5,-,KzKoq+Y+зrRta!)P JfPѼ2)+sЮkz5ݬ%0QB"Ǟwq\,Yf'P$;O1i$:%16l> Jj@IH03!hPLMsLr\(cTѩTȵHvhdXL[h 緿K3snI1n1U^h0~~ _DqjV$K6eY9L.o5dO當-X,nϥŭ[K6X&yt-Ws[koՍNtٿL#ey,c^ [6]MSЖ=+JE3V{|~aT;eQݳd:Tn5KJfﰰpAϸ3V:g,*+-Gi@WjOγ$؀#I֘|FLl-ї#@V~unr\ cl DhNؘJpļtC#-1|*>1#N frPRdi˃&.CzKjt0x1X *I6ZsKP1 dF<2qͅw` B;,AKBe1!ch{+fvZw%޻y ܂K(^Y/FFj>A5[Q8f!!~fe<8|6G5;RVTte$Xz˝-XVrIPƺz'kigJРo]e+F eF;UsçS,7xR3p`Z GaaCx`,a)!i? c{728*C&%/0 6|0VLHYwUƮ!*,|ii.bV {T)iɯOo:'Tp} NT7Mg[<|v)1&ꎝXmy+a%*\AZȪ'o\'@N/E_bqy xLjLTڛ 9ů?ⲉZg0B埦յ*ʞV.*$.l"bhz  6L%/Rl'GSiT6rD Z߫N_-#Sd,_Lѕsl ymShA_rWF'"tzßo.[X h9c(LoeU{z5{@'99.%SYãYo8'61e 綽Ƀ\zpҌ%8{ӟ@43&}䰏GF8Qs㚃\Uaja%a֔8],bb-C8X.w#@2[Eĸ#rs1OT.%zQ?O&Bi ׍m,▊ᕌa>݊nxGg$,E^^OF5H]4 hBZ[FUBkM㒩L9 K.;7d#F-鶼Fn`FE^&$+ѝn ~\['vbᓛG]Pc]jpӬi:@x>%k U4sty|= /aZ" c ˄6moO 3#1ՠc>T,Œ^jYaY ]]5؄> [?)n>uPB&2rה۽T]n:ظ) .ڊF6pXh@-GY;ʍ?o˒4Fvm:! W+kKI zi|"tx'P֒aaž ŃGgEqVO$Yz祲1D_/~Ej%bVfQu EZ$͇SXX]WxġbTgY]Jmv1ַlF`)ys3??2I&;TϪX9UFiO U]Q.ODY %4Ga+9Ug_|(aV/!Gf;x,E,]O(s}۠ކ_Xx\Qq5y[tĹ-PoA1Fd$K}+lGOtMgQ=4,g`R˰$ɸC֋R*t6(ȁh@(+)R uDfa|f0v"bv&xp) oypHsD xm-{ahz9Ʒa р[>6'qr:Rhyoy $ofre}Ʀ[ٶY㙽*"^aD!VX{ ̂C(hP͇aۅ%Obdk@.Ƿm#hR߅lH30[d/بW*+(#Iˉ3X@ W&YPĚZHv(%f$GqW@%?nބ$d;Qw8> R0}tox@^DhlO,7rʤ?ϛT(}tnb>[jQس31 []a~|cp|t[ :M,Ugupz>.tq.|6]ۙoR!cG>Q_1"bHSbⲊQdlp8g>&m UZz rx0Z1mXeN2B=G>&ߤ'IsWI #Ho=Sq`1TGRE@=VdFq,{eՅ}.LDb;΀9(6QY7DH.AQWB-@wU1 A QsJ`+7W$_I"L${,vUvJQ eǂ+9Pe_W`cQc nOk{/w}ޓ'H},y/_<كﻏP@?UPZw.PmT%H=5,~60C# j( AASI+e3HL(<GyRIpjs6^;=@Dm/ZțS*BN&WuXD: UP [cX#Jdu+ Ac ؆ո2i  BԹV|a+ɓH3\"Sː9]5}&&OMFpN ]ڹ'Fk7kE O)4ً;D6Tb~+N[ɫZyihjnβѬ: G@1%4b*0 pIfMh3yHU9߰!Atj+פÕTO>tx$$H'&Ɠ^dȤ6&wdHVjAiƶ"Wr(G7GZOb6Ǯ}o5\f(xi[Ú&~##j jM_Ok VUzz7SE]17k]pB Jc6cۛ6.mH(WV'saTl-a.>Bc4[yY`d᥿'/cpMz=Tf$0c||c1waw][IE0Kٴ7ǹs9w\K& ŴRtp^BЮ&H0MóMLp`c]7 2]$B_dwn ւ ғl`#Dgl2$Mw ;0`s.Ql \Y?!ߞs5'PyBZ!g6.@pTI mQһT)tVlџ{Vh&!x|XpF;lGVJm\:lnhRA636&bB9:JU +i%iafvnY QO ң%~s[ƞd@Jd]⹲iIbC { e&#V̠0g׷PeO`_23KNh(Le(z46Ye,F>[7贠 K uMHK1Ds:qTdpZeRjƇ܋-d+ ΞnRU<yYmdD̓a'~r'BFJ4Mde-qgGme;:|5؇i|v9Ȁ+10$pߩ0(HTnMRv-a{_peiԖPv60jZ'VXSEU'W1)§umF6q^bI-[aHנa=F(K38 򲼱l;KEлU1yҎX*3pKWVܴĠZFA>n=' \Iv2~KbuJ t-uKT+q#y 4=9X  g)2K@/8Bstm)Aװ{lnBƬdb',zx8F[76!|%3"ITToUn"ZިC_E,Z1W&b4H9 (+ y,e[ptL 0QdݛXyǘr_Yn)5>߷m;xrWԘWu q#:m>8kL]Axj :yFQ $ u/0~6JVjB#;\h4Yh۾3Uvo|&M# JWNa3 j\F`aƂ |x%l;:ڶ+ b5l"P\,.+Z;e3{V$Kr6MD>N"~J%MG(1]i٫^(ɶmb<Y@L1 %w^ k^Dbd}1yX06YgthR ,2yY>aWV|}AK-gj~QV=n"sk]<DO'}-+lD%qYiнeM6?o:tgO{[ӅfGl hcN]IWsio܆:.g2cukrJ768 O*¤2| }RY+$Z/*|8%yuҘJ:2> D1< 뤌s6v7l@!9} SHz<&d?1=M5G}]ei(gԢrϲaҝyY0/Pnwdbu Vޏ_ۧ}.\w.GssRRȉ'*W@|2/jpUm2=Ynhԇe.g$'D*([ZRnd$ 9~E `: XF"‡IMB`WIHhVXeJ"|Q6dhWAIU-T=ROI pMfM.]] Mu`qAck<{{ 5lz7FFlސqxӉVmw*qY*r|YU޴TۼIk`Zv60dk[|oZңꮐ^YJ?*$AY)1_ 1>//TK?Q*RqJ(|ePbU|e82ͤ吳ڒBAv Xh%O?V"˜zd$$+9>\ ./"pM-KX@3|fC K`| &h '|G 5J h\Z襙UcRteѮFM/z ^R]]EH- 0Luam'm,;EQ \ڢn`)qBFKYx-N=׳Vɼ? :i *d9:}bg MȰ$BQ/Qюs)EQU+BL/RuPIDyŻP"Œq R2_ Ctj>Y tI<VA]N|QC5Zn*h|a pބH%u WD[[Og sm*b63 B-:@TA^Jd>A29P3u):ʴZP9u''ߒje`N2 &dQ \R= ni6 d_"=. U$_F9w3f74 VV6D f.xS1s_⶛hkĘ" "J:?aHC3QYUvMhG%+KARF4)q@E⽒jaOgP9u!M4*8614.xb!Cpb,fhKŃ^/UGE`,Y n6.[l^1>$ 0 EJ>m( W zI(0a=#ʊQxKppy[/>7~n't< O53U膓4^&7|u Jss4ep |B'r:SZN=_tVO 4xnW)P*ؐ33x4|hk7IcǶb$:-.Pgn 8-;?CH LoP :Q'Ó#\beuWu ӾZLEyߗݠzH}Vq4  1A'Kcpf",t ģhilqky 1%'aB. 5=>; n17؀"o41T[yJIX4o? ƧE ;n QXL9>-[M5`_u*h Y)A2:Y8ίTUPZ:`'y sT5ḗYՀ__$+3NRI7ORhLj%)~m+Q*ugƒ5j6t>kUdw+4֢Gި' u?J\=s|Ե? DSdcU?(I40nNQSrK:8iaO>+a_:z0i#wGf?WYuJ{]%UGrcReS|T 5N0X)"c wALz^,=/;M'WMB8vIw<G5F$7]d{BNJPq>*' T}Q%N(p@`1lA05wP}" 6+FMjgʅhx̉"x$?gwepr 7SWQƓ4Xؒ;p6[K#cZj^DwԻp?W~x<_MPWff?3M; z~s7uCa!*GiFbWwtI5e5 DVR?G\9O+<\2t(n-V?^SBf af V)3^LjՑ!E2ԈA4wĴHފT'R(d)2u @FZS÷ p^҉.U`dTKڮ`Y$E1ŁRu%]CnREϏZmbwsy>>stW0{Q  UJɠ.$pld0r@!`مp;Aa7=KPְ}o=(k^}$Γ#ʻTX+qjpItӔ}\&oPtQ>Jn\_nfq ^]jB<8n_$@͝U3ZHۓQq&m8fY+wγ G0[Xz2-I}ulgNggL,kZ-6+H %~|\A) #D&lI$o>i$[Zd'Py;1Ί;FJ;Cу];^-9ȔRm|B4 hI}9SjRm>8Nlqd\ thWcI=\NH(Nm$'?)ieS2vZA sBBHjRAO_(+8ty[[ƺ2ރ2Nz3ȕzޞkހJ#ITjA3ҽ'nH 6c2 ~1[ee$o&vRl)4/uc^9&;R-'f6cE3SAD%$Ԩ0h.]UCkI &&NfL X#>.Rda 0 i&?`&, #:{."rdG*ҭMrNn$I%i][M{a0 KFt>ޚO`hˆSmWMy-ְ7 ԸУ1)tu]-peXgrPGq)rN[ ^_5Mhhۢ j,z#ϴFсEG~|;q%wyҍ/Ef%pRL N }s䛶1 0` }"=&uO*LW6ͬրǮ''[oRQsQR$j~RgТg\Kl}5oQHvS|/xK6ΚK{i?;ͺEf B: D@"辗[4@:εXn2wNGMS :ңؠ00gfǕf| rzGHY7e>s&Iu6ΎRQmp[_NPc%6e9FtbT(*= J%vDL9[qnf{*oKҸ_ҌfuХ񫲲K(l,d)mL K ;h6^HO(#5g6hD3֔# +^ + m_PGQKߚ@t)HWX+ҳMT ֔F>&Pf`s&&N #|W$.;s2@^3*ڔXrpf[mݵ]TYYj.nb1Ӎ?tN ;{9}W .˜rfϦ(PǴV ^봠wI$`lD%*G1fzƯgo,' 0O1;t&v.' Y/(>'B&9 :e2 c@C3s-X.UF3giҗfK_]fpi JH;[P?s^a)DA+ۼcm1dIo$744K6. vY`d[LҀJ)b]?"!^A wn}Qͷ7KSMn0!t3I4BEMpt)-HT5hwƤX#30[ܳ&AZtx*p9z.* wyza//Tv"@?vls0N#hG,گUGx-o*I.+*ՠ iphw lΊzyRTa"q8޲-$l" 0%q@0lEZ Rip┢i1d 6m#V>LiyE<ltR;4G|]$(11ƆF`# 6c]38phD[|]n90QdƗNߠAGȎe`4&TMs(ĭ:#.k͟buH *]d<"egG6҇QilHWoUAvA%@q0"q{P[25zK"}T7Xy6O8.oNigWp[-P6QuDڴ&'9;:ߌb-ci @Jdd(aհ Cܑ l*1 <}¡@J\izA=AZ.I,P %rF@X1!^؜2uL^㍍M*“1DŽ&c$ ֐Kl,c'eJTj\)ok.}gEANOkj_tބO̯dZ&Ҙΰ*^MGufU)W,];ܻ "N.n9*l`Xtg21f/R), 8(h hCS04f`P${3^X^ي|z˴yh|Okl5w:P"2>ΊB_&_xfI8b}Bg{~T5mlItsJ/SiNPo4{Mf _%1VFP!*(Ƭ੺kSVl\rbEk+33Eib[cޝ Kf׉χt|!xY\OQՃtt6|xwK_:XwqͿt*r搜 ;Fĸ"6qaPiRJR^Ȅ.S#3= E6',ێ}3S)iRk&;ALM1>:>GgAW_:H5nydRT5PnvUMFc,w3AFPg?utܝAW,瀞Zs4Q-d I1}4{ͺ-Kq Q-DK]!6V/F4CǮJ+L6Sw0 r!ݺ]'o*W8BSޭp$"N=b;OpBcXveScwh< . rEL໇i?UKJkWD$e陡Dٴz?F$-ba9ŃL(-l;= y|O 3af SJanEP'vlpI4 IC\Ѫ'(^[<9Ni++ˆeN0Cㄡm=(uh&v,F&yk8;վp|%}`o<A_ Qx F͗/L~M;Y>2 C[hPp j.LLr1gEM'.HSB9ʞ.I{  :9 7eO]XRU{.s҄:\R nhA<zǼBJt lˊO)TELj{{<3Ɂa /}-IᩛzFJb}:6);(vjFD]J)50t0U //Y(3 -$fR#r0!E;oDS-8(q$}WK'c#xC]ah|t峼VVp}=i$MoIdSL](FD]*YpN/4>\cA뵰slE; co˻;r;=aO2<2%|>B1 D^oJYT-HԹ?o$x?~A3E|oϾ})~K2{՞v(8$jl*iܣS>d+ U/(Svx#-542q2x*VY6taLЫ&Muq2B- RTUx:ԋc$uk>AHedug h=dac'1&09fblrŧTw.[n;OIN?&z*G'0v5Wpz4wAjYSmU louJq&_˹e3.c>=}1OŋKD Y.l-ԃ(#Ƈr` )zG/è_47ݭ*4{!F5_)+1er4S3k2ZV"dУⰢUXxIGSx`ڽWicnb=0WUKR66"A r {iͷqav'q{%pR2MШ qL*ٝtza6w)u'AՎn6)|Ž@Ŏo57F޳ $O^QqZ^o1'H6t pRp7є' =0˾{1ĚΨEyu$JU^vw (8}˥k%ID'WfpcJAyZE2ADWT#ZLL[9GD,ŷџfەlo޻wO` YE}Wv{N`Ke[ 'n cCB@79 ԖIa׋7ٕ]Ewcs:4X[7DzcA0p| 2UϷ{kwVIm%.F ԭ=W1-;"JORMOs'ªi!fS+nI-sEikL1j86riJ.A MB$bɵ9NB+o*9>:M?4>H /r=S~`ںXvΒ/{٭;w?v0(6U>J/ vCl9BQWB>лֵ!嚸:h7{ ^Fە)WpK%\8{G=(w/0ח̬]q);vH1{ 7@)GxƝ\ 7UTlɶrDkQ慄,dF&ÇW@c#hE4>Sfsc X1g.R4]3"?e= V &Fe:&tPËa)r3k`,΋ ?{scZ0.:}zZnIB5Vv{ &xB9]9{v YOֽp:9ҍnKP2ocX9~dey 2 {@ك/T2#-v f-JYpd1m 1طn<gi}-<ɏxbg4{R&0m25"tAPX tH+ĖCm*Hŗ(u5F|@G7/6[ŧ&R%i +yyX{H޲&Q:|wѩN?\wSs$Ѫ$IR)fעk}(@GXVZ7]09&*T/Jja,b$U6mq)QC(ܮVS ](3}v#ұo8PB#DY8O/z~/N$t;GRbԋC[J__f_ÑJ.=x94[&$eYQܡM L,U 0d hFdM~wP _HبWS{<< YSYZ_lglɁ1N#H|b`q=ٕûvyKul1:$zaqOA[ J6Q6*k^w8$ ,s7{H-`F,eI$s!3-ͬ X0$fzSdjBP*#sNy2X2 iazWO~8 z,ì{h@p2EK-I[1C4#OxU:ykS*@C LYkfu<2?|aTTWAOhپ͇tӪ}kvdf\gSl9†1+JhW,슥声 iaIfx_ +yoq: pc> ^8&Md#%#Dsc~o`BޯZH6 ̋jl_ChÕWRx-i./|T ӵw?GYslGU ~:@Ég?PF?m$5~z|vtl"\ W!IGSmf+P4̽q&)0Ɓ' P>ÒO:<9J`@ۇO3u| 󡜮4%QW=HD(֤ 3~|T%OjD֨.-i둎?&@dnHuZZ1̈́ yI~y1,g 6O spГ-8Yd9boo/c8'|"ߩ2E(b-o0C,Ŷcm '9>'0ms#s-eP N1òќ1aEi`Zbi<+gf. Tx3CubDyR_uV<璎~I>/Zm pClnu-obH&XFl1ZNSFA/_WW%脿Ҟ2KJOCEj K˺vfV.גJehW}bS[4{CԒ{SD*?lsrb-iDtDϴJZa{k+ڒ/ Kqݝ nռ*QL]n+"4p*@*8F$,q(nĤ: =?|e,eכ~}~U*u5ywv]O[T zU2E,?[җJZTA[}/?<ё kdx CL{Yaĝ'ꜺyPI OE.=XK8\vV1+uJ~Nu,y۱vW macS%AH]K+vr EٴM(W}iW:dQnb̡3vWm~ # D' 6δR)wt%_45V ԋh]$^{FӐe^f ؽ*S@$'"F^x!س^ t4^纯ɤJRg hqjp!* d&1)HEczɦD-#CJR7jȻ {>%H.643X#DBFV39>/ݝr.LA^8?"59I[[IdAG1=SUN${nwL\v9FvA. ts[u@}H^¿d2NdRkIVglWtl"1yۅvф`b! {|cZ@i PΥnY#lulB{8wNW3qnZK”~G7$99A\ր LYHXL8,_AQaJ> 1N)]ܐU"9R|rIieg#6F!5ǪuxQ@usx2w1a";0\ͧhƖ_QDl<qLg4>e[95Gҫ,ﲋ)&.Dc1X?]H ٭1ڨ2v'“ ]qxa-m4^S궸n- NNv`#|}d=:[wX{׸ /(Y`A>xM%Llr_DV~q.%0Ě`EQ^ptQˌ͊ߌQш$۷S}}]sԸ&Ho@yC\8dmm%5 F{ UrLS/iԟlU{U9 bdw0swuX5aeƢ􋰦RЍ?>gއ8B:QÇna=cj]fTJX)wIFH7S}d$Hbcy\2 {$aƀL0|ɅݎTd ǥ4jwϳY6S>?MF?p>#DITRO7GY\?<|뜥s00@KwHz5?)JHX24NոrhшI|<ߏeʡٚ>I}PFLJWbZOG,N. ka6DVUz&{&٦|*ɥ/.ӋImdF|oYϼ~(ЛHR ٓR}`ᩊ ,h;H}a}B%m$' 7ަRpb̽;'<5M163_kIw& Szzjm,sr5?ҟc[Q ʈUfY˧$_ݟdi8IF'9'SH8pl5"$/ Φ2T^꽤o.©Կ6O"XSNf8QT\S'Ծ BvHeh{=ksGr+`TC=LQR]VLr2/\ `IٹU%\8s%uW*ݗMUN\T2= 9"~ttKpuwh\!g6)C]瞌\*8 8'>6Oʪ.v8T9} p;l8ح,R"|ˊK+?.#+Id\@ +KyaaaA!H/R⃽ҕJޡSDF<c**\n@l=4++w?so@ )(++34 R[&8]$5~> &z-/ T Cb Ϛ ]&i ,yɨD`V0CiL/zF{]q1%!xi͞HùXNON9g:d2v &pkdhD41w.$Lȗ7 \(IB:Q(.^kĬoj m=)+3iQ"-,@=g|K>*z ?\pŦ-Kp5 W`#zpGlvy@9YQ-ye0z1I6Rħ,V7@3 ӚIoX5a-]O7Unn;EaY,p_U"=0nEՂen_de>U/Ync ŰeD~8&Z"Ԩ~cgb/h_׵:z( ՚4 1{YxPʭGШ !QΝ.N&Q;eTdM/ʣuSW(7{-yਘÜxMP3Hϑ|HyϘ}|#g\-|[-P޼e1O0ɂdW[mlejfB+50Lls6,W_y|rr\ <" ,$\VV܋ybTBdԃ`ل̄[Am!c?$WK&e>8QB:C`<s^LWhUVǂ5~u1/x$&xaz4maO6 Pi=Ե^ꆺ+UoZ$b2^Ka(\V]/gy誣$4a] otsH׃uv0_FjO'ZE:FqrP*ݑHY-eJKZT:i(\@ -1FP,!RuS^J$$@m2KC a+ݩ1ԦC\i\9h/wZ Ϥ%b 2q: $]32ذp[G+:{Z[ɤ( Uf;vokjfT6Vpa܁tkm_F~)V!8mnf%*sco( +I!2ɴOzdtt ?ݢA*gia ij$6À'#RKr;Ѱ%^oE &/*WM[)n&6΢#7Fybxv{W|_ۋa0Ğ«$.ҎXpG!3^$#9xR?:s P3`4nJR>7HZph4%C ʪ'x뺊`mJkFZh_ %8]ߏjn^}Xg`S/sJ,\Owxr}Hc2֥@;` Q_70씊02Yr6uqb Kp9eLRq_l1f ^9u]vA1eJ5M0LrEx6ҘYEȧDc6:j21A󬅉,qS̩L5pf>q^\.ӕ2&:ʡmRghR}۫4D! kfԣ7vviEÇ&"CΕE@Wh w(b7>femYN58rJd=aJWil$&#*Q29XB+ZĽ]~Dp $kcTTgvxf&^\ztRn3qcMgC!dEn$\U {۩ec#aq(l":u7a\x\Vf+jX6[,CX~(5OSnЩr=șLfL]aM䓈K;Ay61S2Mͩ"A@_c{7lK!Rۚ8jZ =|NXKDR;zȤIXҘ0ss2m,jQMuR,Cv=mAh-npYޢRj3r&vJ܁'wU\frPbWoX#4tRQ/'tpgCu6 XLo0a ` NcJ<|h}wN+WNJ0%~ԏƾtL :p雅|?5PU4GBȂ8y,\\`(y rBzVv_7]!6eB 1D8l GZK mN}5 |^n)n$=G*ӣP ,LLDuRCIƶwHl%٪-P&n?YB)i`3};'GR÷ȎH4) {W]b+E*x* *OBhS0[}XVބ\XN-7L±rޕ#q80Ľ $ba[J XoÀboOFEj\q_E Z2YJSZ^B+9髫Kb8glE%@oPݦNe;ě΋bVֶv+vH'=OSeI֨Eh_Z:M[Ml7f dH*^ʶ笔4UK **mD Xle*U6^/x_C(^e}B @ ֮+We6K E;Q37E*mZ__ I0 {Yc+vcR65 (uqjچ(]%mQ:z; J7xMQc,6׶ڡW6% Hs]4SIk݆şD(iʒ6*t$jXn=Zk֞疜u.묻L >/ouUdIPB=4+M~Qu67`<ߍk(8 qpŭQ+ 2H/Lo8K]wx4<ԉw^5&^DΖѼ5' g,=-f >qjRkkDb/ cIKڛMguEtj,orPwzKbE#k8R%Pw-p` n$k*h&hg4gk#+طJD7V7y͔ZNf%jMHǵ>L F3wzcn2x+H.hJMO*!Wԝy9%L si/`/>O 3)|}_|w&yw:xW?Ffϟ;ϟ>%O3g?xK?=g=ųX;?}~?"W~Տ~_?k+! Syj`f\p$iIh?~_|9Sj6C~?~3+D>MxዧY4 'xO>y__<œ;Vjt- Hpi.m|v`;2,jP).~؇K7.=tG  ?8m(yA2sMGWaVCވGz.Lczl5'pnUke/*:0l﷣8}nLѾpY&2J3{91=8X!l6"G}8Ǻ MvR/C>D5•^8_2|X.ylݢ")Sc~^,E}/ X<nIq)xBޅoGq<.!o(hV"$Y ]]_ӲQ܁ 8|H25:(燆ԣlSGA7TO:'9~(dα xDRSr4-]D`oQz?zkMzO B4C>w1 !>fa ږfyTcf(vxϩ`Ĉ`ٖGrO4gφ<4[ 吱EL5v10I ێzճ!Ec0qZi֦8U!aՔv*\Yw-q$yZ+/Eb䪱kbP0N#uXH4Є2,xmƴU8`7ъ("6M3`C@r^#Ħz<вAw)VV3)wVV\Ӊm?׹0$qJ0 j&lҳ[3]8x„v˜k<ɮ,@7 *[0;¶טDu-tLᠯ5ԙ.3Y@HW Ѷ8@޼\بm&%vN..(f _'YuYrc؄ RRAbYfL~9t˓?E$AD002kR(=Dǡbh6.v]ޓr'_bޭIo\˜]-8P)#$2B-#-IҁY2EPsϤU? xUG}>ww1 td0eǓa7e&4Ί#8xߛK=Aڡd#hE1 ?ì5Fԇ͠2ݔ}0|jple_n2Sɤgnrlw/ջD V:d0F6\-^9fxIF9c cr|J%K)*Ah GGhǧ7.S 5&ѣr),R R{,LMv>%@J|ٳ?.s[ɭoZ "z9kt3G*ojYP!57a3['RK)`pC'K2M!gPk{ƪ߆7`߫Ḷ14We-IB_8rL.&S2f.$:S-LfbN}٢5/EHgyp ;^}BM-(I^=.xmA_>hIc0<yjv \di #gxS Ӓ$[)@7F7LKLcUelKU" :X^r`׏VK5Leeku!ra 1ESVOL{֠;(ɒp|~M@)&؄*#4.sKť"np~d, ~d%?$ZqSz96.F uM @ٹZv}Éq٤ǩ s@a)knH/]wBZa$O Pۈ nON6cy+R \>=oRdѣE#W ^) PKg7R!{ &pip/_vendor/retrying.pyZo09S\\4K`m2$io N4ct/Dٹ"qX}||tDN"g7`-ݑ,abrtȏ0P<2Fdb%zT d|UzhW8B("LRQlH0zd0%iɟJW7.hV4T}BP§U2PSŤ6-Bي'+ !@3ՆJJiiJvN>ݶw "`ƪ]Wiѯ`F$4 0WI/)Xh fd 6kbefcm6adA sV  D sLdIǍ[Zys0 Q :seZ3ܭje iK igB9N(q( $@P"UQ.6-|EUmJfAet7F ?d/Gц疠(}ڻ`m`^(ęmBYY2űL ԡOmT>8߁}O!|p[| U# 0 (_c]tŽqѦwŒ\ LѬAt P5<&!ҧp8h3@ir>tNGtg[r!r=64^^(||ltf a.uͻBhТvdY1x!ELt5%F4>(vX!ywPԛ^xq,Вw ,afPRk ]>x4|V J^A74v\thԺY}N̸o^Ɍu 7x/[/c쯧 ri T/^?&3Kز#eϮzXv^{SpvլA'̑Nm +Wxiyff[@О4j>tgh`vPILO9פ9{z~@w,n_uXAdo0җ'P T-FZ'tz\ckqrl4ʾ>߫V)A}mOzWi>ѡ3/L5{9x/AAB 6T(AM(N$k{Ay 8= p+AH$7Η٠ xt1zIo?:{i~͐w25I';AP|Ӯf1h4{Ksje=zB}E1Y:&X {MNg3w{|Jnʳ8Ѝ慼 Z1icoaG,3e lߵm ezV:-ρVuQe9tKqt0|-kpMe g9q5hH}8E}3 XrF4k t^F, VC% p YYy7pP빫&0_㴷96( w ,s>cj`Q]yO۸GYBmyM%KdU)|yM%24dOQ2Xw~s)D!ZO7;t~|^^1%7xFbCNjiU_cb^c%Zzʼnp ^yEyyi 4EǴS]1H(t/0F*jՅ:4k uDN^6OuUq%I%p!+\ } hLvQGf;5(^8Ly$nJVk5Ek8fֿ/᭧Ъղy]=xߠœ͋ZHmdnNo+^3%Ҥޞy~1AgU ?,>έhy<;Вt'?DVx V:<->5v<'-~N)f^3c~: ?<ڟԑZjg(\ Iq.{I';)(jbu>G Ī<\3-v"Zr{N_v6T74a>/PKg7Rr( opip/_vendor/six.py=s6)1O%vڻԝ:>Nvyh,a[@OrnΓH`w],/Q\%<7{߼~zx/?E $;/%YiđR1mFGbH)nr+G"ĒE< [ JŕPϲ7 7Mc/pc/_(s3,q2V6bp0C*Ɨn]ՙ!qDYxHe@^ȇE@tG pB=ۑX~0_I[0H#H|gb'#ĂkT{q!Aa9KlDb<^Tk O19<]g>oKq>bӋ1ώN>"89/~3|"j|p".>O./@l|q]P._E\~:<9€gGOƿ|O>Cc1U;:9ć_ ` y_>c"ygX x$'K)V 8D0ώ ϗI]"2WT;;s`q`30} BK,Ebnwvf ,O`v!4.wvT,,T'* 1ʼn~OWEVZtgqH1hV&EsG.3Q2SiJNWJ3Nbv>_rGljꦒڙ;Gd%Guyepg2t3d)v {! U}G*tT) e?( +9,D.x\4.8p_QE9tAYj%̾H(p$'LL&b|i Tè6S5>MeX[^!,|1()˽w!͙(5 ,eĨ:הZmJ p\RAk?SʶuY$kׁ€X(x = FTc.~&긺uf |JHaГ$46 ^WZX `98xmoE[G,M:Kj"@@jaޠSլ&`7v2m^_Ku~׺t:3 ZC r<؅9`@b-es5@h$փ4x4Ta3%ꊹ\@ %R1__ $ 0t Pa$^ &y) k RzqE0~QF Pbuz"T."nc6Z0p RjnO+`ZlRגտ=5. D! * if2PeȚYfU9Ft]e!dw˺jX]Z R)Q5)|04#*@Q̟F.6@WA)&,xjV3>̚zq4 nVDN/N諯6B sHUR_YrH68pn#GccRxTipJjw|X9<.y{?RC\ö7ϲ%t] p<̶5R/>֐E>+z_AUH'Ҽ>]\o5f> qӆ)n:b \CJOǧ+)dBG(IDZ&Yi3hkFqA.5*fU%P!Kܳ 4SH)8e\Eh$pIQ}-m"8 0Ԇg.s/zhI2Q60i,-ynF dxQ`W77(Tq{UI#50}R/fz޵jr^d%wl'M*p}+ڋXڇ;mJYWMLp3 Ph75 ogwGrS_f6+5rD)ZG}Eҿhv,#ő2Əœ"wgu^S~WɀVݺ}wnI~~ '$h&xY^Bn}zzLiOU1fz\3B NPA ?usL.ʎN*kG!!)`xXQmO]a|[soz%Q.;;k׻.^V;74//}lf6/JF^H3h]=mgWt  w\`h"Ac6mfiADU0jT |F\z`N_ 3}n 2@*qoD#-QM(-q9%eScWYyt<ڲPb,vhl|7#v+BFtH}0 JV[fEcy*f^yJPD BuOx$,]lӱܐܯmn=\KPҽv/_;}>xMXn5>\:s[ WaY pq~_l5n؊4ˠ~wgV"u}J~\r6ߎ_>N(? y\>>W7*& m!zOPygQsx >nh= HƝ~3qtWY$no4S"패k^SkzT] Nq g5zdͩ NŬU6 ^rжpsp#-tj[F^:|z{ ^"|IhBDR횅WmecHF6Zt06vfW[^O6>S\]kUMt[gނ%ͤpF_zKgT.}~(6@yY J.mR6qކxzFT?!f1.7 @إ6%PU-JY}u0vGbLsIm5+V˺un,(y.#DNA' pR;bB9\ ,)>%Rj9ؚ_#P^8_Q^0kroNtGd Ta~h7Y~98# 8 1$@gᩚI sS7T !UVǮ m5(^PI訃]vaJܹg?ѧޏَRh?7*dMgd6;DX&>֏=kY,T:NG; _*>㯩#:@"3Nzy4w5Jh22Xum9K}aa.1Թ:^6K,F 0խka+np_:U-aL3QJu-ÝpږS,}pӒ4`XHrH_VZ1`RWN(H!O, 54Z".pbhccoA4P ݨ ӺS^=;D=cX(nj eeʎm-;0ob U^)$TئFF7$u0M! J)@qZ0XYą|Ձϧ̺}&fi %UuSѴ=}d=}e֯{hz6olo)z91`)AJ%LJQGH/~0q@J M4D\|PV#_>Ҟ=`!Zeӛ!b[Q{9V;xUA!F4[>Zx ;wB'L|, AKPne>:R=cC6b , j݆)'wn!ɉ)Z !|mCJN2t=i%H< i(82ܥ')?:(-ĉ___>ukF"@g_a/qwmZ㗛bQi F#)N6AFxolOOG?cDH7)?䫉ZQ,/6j1hChC])ːօ4֕r6(AkfB4rNP>J1N9,}th/4YeeKեD6՘"\Γ8FD"n?tn>*LixV67@Y=U☞SZs$Y@/8JuܢƞzLt Hy&r<徜͓.YΈzSpLgvuK:^'1e3YŨ1*= ā%LV I;W j$(Oбx] cXsז* ;YcäŊ U݀ZP%uY! Q, s,@H>JU(8-Ÿg_i8%ʄepEUf~g4Vin]!C[R "pR2Pr8"3uピFoȥ)5RMJjE>fD2:㜰ZBNyɨ*q_5G kߺDrÚ# j-jLIɴx99kX%NrK1D0OTMޙv3 < "& khPmh_c6KHPhilMsJX-&ڄg#W ("i]I|{ɻj]9/}\{HR&7\izc#ewnnEwMnntY7j5SMeE(Aq@xsZ_Umøm5`o+y; 3~ҋ{0*XS,ut*9e4A4MI '4)d1]m+ bpi‡0rbGYnD#?4ŏDK?G K#>3g!]6խS6W3,gscj$2c/698B}4mWAHR?dxf K3׵C>,6qWHf19J kH~ܽYidft_z1/bâEF]/vMG{S,WF0*O:e«Cht]#?]WzӒ ~|i(y6@Z!r[B)dh+)wVт*u2޳VÐ 5Rx9"*w6BS JGŜn^9ɜ]>cg||7* >SZč]ވW?3J) !8No]ҤEk5~'zFn05 Dv-6p&{69s5&(AW3txMw.IM|aU8sӗV#P* _29a"K*~DżUϚOl2%>tV@[xU+ھi /xm5G>Mh|ca6WT3z DRp%/-Udߙb=ÑΞ'niQ0x?cD#ux!_*n$ OJ-4F@kiDc DS /UV^E"jL.4_B6UCx!MA =2JaՂ^ʒAr'ݴ(!Q%>(8X,l_6nA c;>2RAp_衽R-!ڪ7ĠWЋC"x0 b)?+Ԓ"W[\oozEijeЙmg Zo+ƲyFTTנ:v,hltucry%yg`T ɐ}tPKg7R~lpip/_vendor/vendor.txt5PAr fzg )QmJZI˺R|jV-w0Gk:%njns B}xnTɵiCeQ3SjjG(H%/s-]tV▯>=~5Z3(Pf}fw"/YWqX,? U [t>&K=4kG(xW#}kd1sRkLK _MBK9i:>T)7HK^;PKg7RZ.$pip/_vendor/cachecontrol/__init__.pymA 0E9ŐuNP AP8m&LR7)?Z mK$܃KO$ Z2J=#p J#=:nr/$5o)w|S_b(%7&ڡ3'z`KQq+Cq{Tar͖~{>,Y8 (D-lQdnr_·XfLA̞,4 dƊ2I蝙̿`Fo ۳0f𭝧n%tu>E@N t'^@]Ka:;4o3- 'N܎9ЗǶ~*)DmF'D]EҮZMxьlGN|o޷7q 3Bf']и&]ǰ렧o4؉FXq~nqs7ErqLL[*1ӽzs|z’{XyI(B{9[+UebqlUBsɪVO~x Cj%e^uKrq BW<; #/(M-B78`y%.HS]W󂉂*xd߱r>bg<: * % S7jLaE2p 7:^Pߊ ]eSIۉX%k\sPUB̻9._v׷($dPuer+OT'WȺ2N8S%l5 (U2C(\Ba++ɳTϻ,s纁'fTj<)S.3Ti^vVNpb%Égyhdpa`slhʧ/2>wA-OONlD }t:+:LNYgF +h?~|zLjL^K]ZS3  );u%ˎc+%" >ن YfBUk{NSI18ofA߃T]>n_Y@9;dn l\!~ Xb0_R]/`2vF鬄VkHz$Ui0# ULv {ؐ(~ j]_L/ԛ[OX՛ԦR02)M{y?M]Q* WC06<}uL\`v=ffyLa nьCkLۨPE!GFEh;OI}($ nwO' zjI}V-`}?"V:WޞA 7s{0zl4>j2H^CuK͝(돚Rl?䭪zME(W+^?uZ@`E#]YޑW(Ѵ#OʰKZBfe}ue؍;K:v3`X: Cls7zWmA^Pcܴ!\/̞Q9][;d.}=Z ae\I[> @:3&#` G=T;Ֆ "`X1{{Xstt$.0B@ehYY."8Le! A.nYk<3,`&{ޅ(svp.[ 8R(eG]KqƢ08Ntԫ/0 ꜌8l9pnËv8^:áLBo'0Vs+uJYla{ע"%;dh B g6`L"(PnGF| nt*Ռ2ޗpJ1DPXRs{/),M&7ma,C#ΐyGN;VLI&̌Ou&ٳ0`nYnG1msy8i1|N ^/kba R/Vxj׽ubeFű݇+Gq=#TcɁBTKT3Ё sCLމ 8'ʃ]>iO^ ~b͈۶pU2pӧr BVQd0Y6\2 HﴱoLI _eo1?vcJW+|gp?O@>x4om0:ƏV0:Out78ޱ :3t{giMvJ뎞j-6 QuZXP[{v/em?b?Űg#5Y:U!HjKdV&dMIrJ3A݁˻AD4RJ<ԍ%Y=>+fk$o-A݇U#V`_=h+>m8KC -<ʀ3GZJE;+0EW>i#]\l@Aݫ趡qkZ M>;WEGqG`|}Ծ\Hhχ=3i9.CIw:XA JR}@v-~n[g9ʪ?>ha=ڀai jf8j!z9swsuTؒ$HUSTU)5#H{Iw|,3߳EFEQDUn]\%)\?5ne{G+b3GQ`ڻ.E͈3*`*`Df3H: gf0Vs:G PCC(PD૲\EnE3I*M ΨHU?@ b>4Τ\E=T8I^(K(@sWh_On'y'!8QpY;hv s7v*Tj萵xc.dLD1""2 9QetU%۟ {A?a8erf0Ba*lY{C3M쑘k0q3V9( iYy9Z3W &"%h.)aE9a'4o }E:{4'&;D./ Υļ=W8S6V ˇK]DzNj)4馉8={/ҌC;ub"iVM{ẆǗzklNl#(Vge#qJ}Uo8T TҕyꜮIcg* µz%y*TJqM3!-ŒwWMFyuce*D瑐Z,yh6 o*8:h& A1)4)l޶"אE%eѽZ=N'h{>iZ|~Uڅ[cŠZ8PFo!l"8p5[h,*#H Bj?E/9ͷ06X%j[Q(q;V@\#[Mq%>Wk恅4QFqͻV^%aGiRr}Lq!ŲI-2g^{88Ƚf|5i&ߗJW T.Yd&yI{r2p>wjzC0aWK`^_E󉝴YU'Ӂc?áxuж8u,a e۠Tp-&ZgNim0C_EV1qnx$' T'+px+!J=}

6]6, ˳ DA$&Lۨ)cDSTş*>[.M ?K N+R$DoaNj 3%>|,~{i]\p3i4Tי*GZFcIV"N`J~Ѭd̻d:Bsn>9tb.xb0&9\F\Mɱ7ddNӉ h|V\;DѼ>k6^ #"i 82 d2h!pO~4]¦-t8\¾68H\{}PKg7RȽZ %pip/_vendor/cachecontrol/serialize.pyY[o~_(,10^}&h̓a)p-H$9HvhGɏ~3oZiSžp铒?V|:ِD);Vquמ)2}ǔ?n}/k~`oxY!j_77?VЋ5wԲfSov%+dvI3cpp\f QUp% )&d3u*E~f5u?B{ʾi08A4iA 殷$ݞђulmۖl^`A?fe;eX-L;Z+|5J&zSy)=p@aϞyOJ)5#491M$m'l4*^к> Y%Wp{u*^cGۖuk@_t0ۀ U- RDj ,!p_~BVV*'O(pFFTg=b 7Lqa(k (G{B8f1.h}'uAZrVBxwQ`# ~t >lLsW`\f? 1F"&y, \#0>W 2>t{)7gbĺ4` n 0gK,8Pq yy5k+pe 1v p .yU9Q0}d@AHXX@DʺҜ .iRG*%S辏Bge g Gʓx䠧|INC*p>1>&]ϖ2,W"*(1.v'S*>$ @Sr@7k֨8Y&ku 0^PRݫlIs=AP2oNJxf2=f| l54}G;'щ1܂`-C %P'>N3$l |pGښ8J:Qv/6Ż^#vV@Me1"51mY. RA{zh.،*kSUdҾ"p׹im;ܷfg=j8`]E '3-Ya5,yg:JҔѧȯ_,eS5{Ʌ>SaY[mCpaM"N$m6h 2`89%H+8s2hݫ[8[7l%mqlz7_86Y(l`09L̈́ςtq{}/.nN%˹(8Sxg$5 9K `L 1@:@D:kn #9ꝋ~??W{Ť,ԫ3rkȁZ# C@ITMV۝ο j0>C3C έՑBdZܬ!8kΠ_mO [!zq{^Z{. .$@A2(ie \q&diF5T걯RkY5ƺ:Z,Mdhيe8vhpiDW$ݏfHae脒BIHک )`pTrD9˨ˠ \q6z,,uXQQ +U i@ePM {An|mjBxCenîEi4l%32C"6laVJ4dzMNQFS>j R;dSZ*dߴNB]QwS fנ!M;n̗[&4Tz/Q<>⥁2"LOӑv:0AYB;_aFz-%u;8ʁ6;F '/E .i+qk@U@ݦtuӎ&wJqE>pnnJ<C4o>V3vXk"Wo?;-8i`~Ԏ]܏ZgR4rd|ulE. y(0 %snʷ©.+9\<J7q(Elj OcT)Nfիߣ8l],2FAGezsSz~Q>OU\>< {T n]<XammNN-  Yc>qLO1 7;5 A:j/r}_7jnK)`}(`*r$Vtn" bg^4sDh}puy*>3c',A>?-~f~mt0ԗ7CXO~Exj^ISt:"m.#M+ӟg6Da[d#d$J~FU ş.,i-#l"$&>)E7 {?x|"|mnPKg7RAgX.pip/_vendor/cachecontrol/caches/redis_cache.pyun {J5Ua9%(K Sj6DBn2,dEivp~27z5oI/YZYs ܴo| YdY{EE,5m[]Ԏ-zFkU_nge<4f۽0A\yX ҘWEgc{b+j vUԚwLO# 8!F;~grfB:nPKg7R3n@>pip/_vendor/certifi/__init__.pyK+UK/JU-/*QH+I+)Q(H-J⊏/K-*ϋWUP2202343PPKg7R/ pip/_vendor/certifi/__main__.pyM 0E)Pn "!)Rc[@Kܤ*Bb#-513Va|A $8ů3,{~i^pe[soJK4Cܐ\o0@b,X (FNaNXJ]罁'ÿ^߅PKg7R#WjULLpip/_vendor/certifi/cacert.pem̽ٲX%zS8nvjo7 $ z $?-/3OTqxŒg9i~Qv/rFa})m_x}dZ~2ncsvEq#(C)' HaqF/Rq7,Ď@wt"vLMPfG4{q P;.wcp;&.Y ht{ .wQ댩bfb Cuupӻܑx/%v1v1hx]@-eE‹H ZEH,gk4gGcsȱ?d?Ñ0FC(!YC8E*4K~l7̐`Xl*0qXBI+.3(p-ӤxVԷJ48d|wB7y)2=(FGqL.sُ.sk_YR2Xh,,|Q"L0D5lNٵfB(*c!:ܕV| CgofdaCOܰA8ܡi/3֞ݷ|4)-%BST_2*}Bܮۊt F.::TtG.xܴf[c̾UQȤe{f<(3\iUN?q1Տg"_:y*dz,9֣IjnSW GUybm|E\-\T"BjM7wf[™5$˥QGe&(rG+lM.EX5[?qf~h7q`q.v0չz\BfFw,/ ηLdPXAQ %Ə`4M1h1iZ.I;nՠ*CQEr3d~%6$5FYlM35!c4֩y&|8BÒ 9^U%P3F4\U)G.iuմ0Ou 6xv@jmbeƑDiweo39{,+s+b.g?4QAC/?q_n["i |1`w"dv ي  _K]h!v.j @l$@`!CTo+WJ wzū#wh˘]P+QȊ!ް` ߑَv Y+.I^%O%~C/D;Og7Ro-*o{ù]*'ߡJJP7 >@%ф ;kY)ˠo%iv"ϔ|C&?^ li|\U;p _+:?ՁuQ4Y40Z|CtVYrsl趱~:ŹD^~P{H1f >{h\:ܛp,'nקmYcC {p؀Fgh,n^'uꄬ#o15ݟ!n)#YJ~ yRh1; zd@1}|Ɩ,1(f"9񌵥!<\|LO"WClٽRLi,"E{¾׶+B_o oJ(6Rⶻחhҥ}hg.?a&ipy}K|yIW>OBIdP8߁LI2jt=Ċ;\-P .PάcJ ⥒/IdC~d3RJE8`VOx]v pJ[bzU &`L]:1i ;}RCs;o&M]y6<ef=P|?|aKҘuKPABK 5E3W;>_XM?ndwaiGX7l~ϮG9ܿUy8ͱ`H``k_G⃬Aˮ򟾥\ny@9&t+=%FzOU~Q qʟH F4 LA_RacGjts˧>* [ڎ:0Hڇť=ﷵ)P|Gv+>ww=9f)biX5b6j^yyVs9. _/vlc |IvI~84lHXg-x<3q$Mʒ۳wLߘE!xɯ{xO.72 ڷAZgHiڅlŇjۍYG1nZWm LpCmr-ϙIuB}EeUe+屿b› *0Nx^3q3n6>q" tķlm0N-d!_O h 3tLm֊Q&xP"q:}3hO7P&$Law"[KWlPQ]4o%<,KDǒCf>>DDcz)G< ƑW2& tI|J w'8WyG(sEr;(0yA9tf:Y4-H~Z1CGO{0IJ|HՐ1֨oC/`@p%JtW -(Zkk>tP# s9 <-(8:& KQp':篥9@…^ȥ %Xs$tJ -qE5%S5w?~)~q2?On`cPLjMQUDȎ a|h%RT|F9؉"END%*vaP3]a[牮^9ORu-]F!,TAa;PYÏ#+}eUQƽFtry)*@ NƯ 4?̊+āLp)󇛀5xI!3f(*R5=1 j1$q0. Z 1Rڿ5>¢ﶗ9|IȫT q/}s|LO'K?J0'|cW#Q.m&0RYy^km ka@C)e4}ErW c!cO!q` ̷d*m@U,)ԛR8cie)×-X;C[[`lB~M~伨O&O9\)DUO%WoD7(~?W&_%hڥ8} O/? kEq5? \ $N0Rc4YݰIaxufbVMe*+#FV'(_OVE >kV7)lE.hi"Z 5J@M]JAU;3tŚojO rmJ,zEmƧU!~Vm PZz%JZ#r˩b` } B"Ox'K'*V3Ъ'9/`Reʷ2Hޅc?kLO!!yN"Wp@ ǯG :g|`u]y*07**dֻ-o+P,7Ziߢg4ͼQBpS-8γM< `Xzmo-W"~8/(ͱSCQu^m5_XXQ3"=25[4E&sC`~ՠvZ%v=#_ t_!l(% 5O-7C&)p{"&fC˃/lTOV."钜.uz>V"ߘWߣ3w2m ̃\oR5u!bp G9[ x'I%Zh͍bCT뿙?3wiVTr~?,?>Nx'R0dm1fJoPu2oC`Z*kb` .46.MXYr4/\xeA_9ipr^q0-|,Y@j.ϡ+ Sks exw|5΃7yB' Q.sD]Gj)3eTi?sJ,bƛ$bQٱ@}JT1M(T0n }!5bosgl1fްG£"ZZ+5z5upT [(}y>ִXH)Ϭ}"o9.Qܿ^h2N{oM!b!\vX_^OY /uS/I@F(b(Pj)v0޾akm@ 9#ff@9ECjG3*i.ߐ0 M:Mv(RBOU o h z%o hŬv ] 5k\Wu.O DOre>%]g`ga+n)&*+9{؋juuO DW}Ч~ h?"0ť\H(8J*mr6w"y ]iNxʖ C~vI̷7Z˂mB7ˢ 9xGG₲i>–Qeo8ѓk>t* sk@cFXF+!{q[lSCl1uزjڜxnTFz~2)=zYLbanֱYss"~9"c*4m]H;mӐhmA*-J$qCi֟be="'W?/=i.R  j+d}oƍ{}d5{}CH,@2 ShZ]hUI!bSNK6JCBh~~3*)_W߁/*|g /iԳ{Y~\{ϐS=4r M'!'vy: >%c!r6 ʫ%˂^XtY6ϋ3H?xh.DrCag!@mm@1|۳1Ȧ^Y׋КPL>vK1@Bak]!wuzٚ(4k_H= p&b7ژϝl"F-*J@X:s^ƒ{qgت{3#!*gRD\ -@>K :ZQ5bB0u:=,=jN~ ̢{&P"?Liߦж\gZn=e5IYx] 3|(CPЋz,nutuB fEqa~6ԨKܠtp5CŗAWVhm+w^KPXst=*R%h\s=j60e-hB s{2mfG1S&?1.4OHp5b /;hLgR!BEL!Q7LrXt>u霻w28fM!x̝A9o; d]F7RR+EO,bJ._/R& _=%'Wʤ1]à^C<~I֌p3S4;!dބ*^lS2o{<es#.zklZ}8}Q`&*[SP5zKEoRLL2#ҿR&/)jX@x/+uՏe_ο|@~<)k8ґ-jFy }HiH2=Bʏd:mzx%'OXirȦ>k5J^}3Z4Fv"bxI§2*-gː$m[A^u}|5rTF 'O 4kAc8fʸk%Pc3H=N1LVm4g,9آFk҈w< t3OV'Z`sɍa3U? |On`G#n* ޶ I=mNU$޽dJji/3bʈ[nfv6F$q/d/xAGE`G3CE3)>rLυZeβH*zhHv3 )'2=t(6MtN6}v=[F0XW]T_Z(̷ٰQFwvxCs&"m3%pؤ9p&l}W)Qq }7ջL4PK~hd<V^%T,knU&@gbӝxXV @Xѧh ׷Te~Xf#KzǓJ1 ~t vD+Kښz<Ь܇>7D[MGl0 !2<b{fk=#8x.T*F;iv:9AƪVW ,x4Sl<j d4i בqD6,]G}=`@|۴I_gîk[_2(y5/Vc`Bar5>^ch5%O+zc \b)_q㸷 f 5.'h(PsxӲ rzh(YhK[:1`o;z&ݴ/| mdns"#IVZW3^!=)>=QsylI )Q d_9|NBr<,J"}@vQ,Ƈ'Ao8i\wi M;73muz+5a?KS2,c``H'6X˺DW=Qq޿ϛ(]ȃg,`憢gT.#~jt-`xnUxPҥuưh&֐>6Q>=5Apoq?% S3<@cC4e܌`V8Ț|=Kgf-_f~4`?>/?Ч"wzd+/J"`pm n #<&6ϖ@aIޗA}s.W`EɠF]~O2 WI]v_s_~'?8'4ŏ|4$0|k\/,kxH_FG̰/%rHHSIP$y 1t.&ڈEN'7^D/"Mo%>݆H"kU{/rp#*su->%I hlB5~5; o > _9w_Oڠ̯+$/,w-6ٛc c_1x|C]X0D@^gqJUeYNS<|e1ϖ<7Mn:k5%ڛ-`<;X^}&W(t$rTe;P?ofsF0kj&[v,PsaO0+X** ʆ{E;+c-?x*IH` 2$nXWR}+5߈;x>%78yR̂Q%HXcl3M_4yyxb?;Z;,wv&skww&sk;SW!3~#T< Qps?RAMKn3I07N^'>jb<޿VwN81ZҼ \2xzt]8zeq@PYrbÄUrFRSfPz{KK!y^#/ : :]ˍ⽗>G3׋e j ,V^o)L|}ɓ.gv/=P ivZ0\h,>7We_|8Ѝ[8hX|e$?۹1Ҽu^f'Ϋ_3}݅ҿn*Z3P2zM\Ij k8ʸ 0$,\M+qFoY慠 O^(`6Y27܍&VcM>!aʏXN,Y&9f‰w(\DQC %Zkdl[\QsF#8Na6wm?N̵jc @f}+{/Mg?Z?ľ@?M|X0{ iw +7q]I6@l\Nzhܒ:HCN<E68]4mZmIc*Kk pKܗFU=Ww}}<>2QLtj V)җ8"꺘[|خ^r֓e/kcrjJ:;k:HغC\m㩅x!͒1ؔS*u`?6dTҋ}eQ-yT' =&ciuG83#InMObR?DsK5mH9̑r͓71:^lgϾvCdqbO>lQp&JX{F|Mv"x !R/O–GO9]NWj{5u_;WכЙajyzjؤRtkAڟlU1|>s̫tc6R١EŢc0l̺QSΨӼ/7>qNyi9>MG#5~U>q\TòB,mSÅU_4֖Ի7n0;̷ VTկIq`[u𰍼 $ O»2 )rmoGkF?6|=cy0[7R9+ʍ gzם{Bo;Z&SrؽLp Q o}n?{P0H~,7Ã{KH6h k|ب!g C7w[e`ʸEDN+G˹"3~/ߺdm J챥sv/"F 'H㢜I"|x XŔFNkMȲ;_ MxUӬ2/~yxIWya{ 67Qg)9CS>nJf+15'#@Ueg{rLn e* ~O?NJ|kLE߶w A[ 'dDY3[ z'\o^<6YAynNKiY"ƃ=NDJA~ 7hoa?Q/ށC؛1z+ͬY6);Df'*~IːlA7#W*L$E4w`}:hwno[E)c1BZIP?vDZdM*lu!kF-os-l#-XTLL V\G]F?[VJm8͌>ѹFG$<\uh`ݠfpm9)$xD.~`O }ltÆj`FktKInj'9r;+x:6xE2m)*%]`CQF'O[9{:8褯E`i|yb0hpTLU6]Edֵ<8]PnJ؋(9f}(>9ZP$<Ð:O@n C?HB/G$ܶeJiNjk2%+VvMNEhrX-PZs)ùuމYᐔ1dI MKq yHnZ9S5NBk+AyI!梫3鷏N?GTxa_%g`{[`3 }_ 䏣e4oո\U/;:~Ȗ N~g E"(.xV ǬhGώD0h$hm *,ڷ776P8Bm밼ӷ0b#+rEL=~8q:vYDp2f^YVO=؛Ŕ\P뼖rA[G ,}©ЊG@\kG ؤcUA-Ek2Qj o$3G͌Ib}(p3̷M}W.ʳrO_'¿ W~hdD!ZZdG;G F?4ZIoƬ1Lߡ]@MFǫVz5[t` 3wb[0nƋ1k:$USʼչ 7:6]ƪQc< 3~T IzaG`8w;TģyDX#o[ĞP! _`XxQXT#2-ue_@?H[E'j h G Ojkbdt6 ݟnn>g/ߧ~gw,E.v))<@%+3/M8ߝF|?\/UMFn{eԫMO SgC1o*ԧxI쫠#gqO9ZR/N=[6^Gg*rn`J=Ӧx2(0ބ,Ԡ%#ب/G ݧR`^c>> M9'3}x}{qB+Z{WǢ]n模A5}9gABA.jsiL`PPK`D<Q#ofS/>țmOV> _VBtӠI7lc<@'lkHV?3\U4Z, kkx ެU~箶%2xadoq%:2^bT>)G`miWU%Yxiۂ?&nO-r&mX(Ofl W7zF=N(e 6@@T;fHMAXUy.12Py'^ w )v؂Nŵn-0spծJNUMf\J #.p|QPrfۉ=)[9qu#ba P:,?Br΍;Þ YB<ږsws#vxѴdc~$዗;,dP?EEyFk){bVdI:;\~SbIsA([Ko̿>_.e]ٲK i &83An  FifO O>9w|bBӯY;}#,O'5PG\rM|ȘX%M1|8u|bg 1Tjy`=0*2ao/~fEX.4H"m4]ЁH煮ݴ901%%b"HȋQÉ_a碤\Gwˍ-kX30|HhHx8(nhVoTv ";Dz~Wz C$ Q4DQJ0#g1Z^؛8\ /ddc,4jPk (?ous]` ֆ ZU<ߚs&&~7*]9WډZDo 봍Dx dE2*^ ^֨@:ۃ ѠEPקRO` _"O&֫Uw+6O,],i7uc%}ӈܽr<&xo#]ODê w 33ۼ~fûyT\{ggOmY|a|<>ߟ|<>ߟ|<󹐜L@Tm91]K /ـcC.]3fa'd^ @sg HW1\4ɸ=%PIU5̣RƥM#rTY~\xY>N^}-Y/PwP8APvRdߘNf{e?4ĉJk^n <:J ڀbc:>8XVcJ 8!M㦉DP`64K^#巑z٩iN4K;)jȃaNVNueeXWEDe+$*^i׮@0måIHn\!uM\#0notQx 礫dyqb&irĕZØRZ-2:xw`@%26P;Y![džCh<8^Cnfgxf0!4v=JsYUS_J)^ j gǝVr ٠ʫ,z"Iεܖ%b|5g(pAܫS :88;*;FɦMt'% gȐvN@JB"H \ 5^C8)*2b}~= )v5h|y eL琑Y@s;1ƾ2/h#igLl]~٪1M0];Vm}OLӉN}%$uGA $w@HⒽJAY0,Q=lG:m)Br{"8]x b4 Q#2e!MYWU͂o`~x?q2^2÷{4{#EVgxa^d17觌-z&t"Ui \@oZ^Bҧaû:9߽l;=)s譽Fbf<.qJgsV% #9,+ǟ%XR+^(Eqb9s`v+H:IEܖ0Y?ʺu"MufFKVqFkTϨ]ԟ-JKܚH w#1 b-iY4:*mEa4 ǫ VLoMͺ k]Rt :Fw sj[N떐X%!u]oVpf6Ռ5Z)"b!c' Ж^FK\m7n>ryEOضc[ pзĬJ@‰7J?m~ӥۥ/ϻ%H}7+Hxbndzpr^]f.HgQYY]J3^?>h:4`,b61ERlÕx%4^6xtǗ,M={$>]1}*mȣ(ó 1$l522\礊{>ME'*5= ?xAHM ƃ`4SKQΥш#2PWɃծܵ}SL. &UY~.A<23.9#Jg-,$,o_@쟭 !kP}>jcI{ ZTY43X{MTIS?FWfxxw vP$&gH P|yv{qhixrz8r:I< !z$T:uR>ӌJn6Xճ=2, N@xΆ6nήEXx>gE~ZsC޺N?DY^.4WgO=yՔ/bƿe#Mw?%e[l"3_D?IHQ F ") 1 x۪dN1zM& 69Za66 %lC>t C!50H3kDo`{n倅/ybq-W':I0,xE&u ^/D!8&k)?7lC~,Ǎ7z⌻<%ۿP!f{{FON-VM 9]q,8y>7uRf9 ?nFhe^5?Yׄ/5d;pxGQ$=lC2֔uM?/9.^:7Kxf\>{~.GoNj¡@HSԚEIJ$0"lwLkѝs(W'S{*{ݪ@މ9@MHLZ`ynMo+^{ʯJx%l_dIeSFD~Ïơ;{OG)7JX?8h @'L7;|w3"}G.1\2QJkn?Xġ1 v Ae~ef/vmQ ;M1ږW_$u NyYñn Jm*1[w]ܷ2 Jv 1B\ގ*6$v#,G}mFw^ϊ 0EpV"b:>C!:`e4&tSu*upAEɳ# !OUc7t] Qq<6j9gLL 4?},g7$+q^O&3H|F|ЭOwObOTQj򕽖M?_mM}R ?-meoW BQcl 䶥e!Y芲N P+$_>Sxv{g*jʡ.Gd-1 Ȃ2?('wlu:3?Q74 R5taPԝyͰ;IZeh-uQ=D2ľ vv\)B;43(/G^ef֚ngr#rsN BO{~ =8GNU>v?,:w2aծQ%N댾1͢fd5}^bK\; ^K+.'K{~Vdh\לcWQs!=#erAc6 WiX#ZYB-le|^)7X{%-VǗimc]wIZz|qoO9;8DvT=aVgLdQ'F_E.5,kQ BAVeK'(}O#TmGEL_WnO7.a-"r;kϢ˗ߜgɼbܢPBu^g"9Hz~ΏG\cCjD ?J/o./߀9ߞ38bC aD0HCI ^ޢlJͅ8]xj6VC.*|5Q|\X)rVFzqzE0Ykd+.g]8$-BZ/P6al&^8r1RdX))͊Xrtk6k4ZÁpYL*MLaZ^#@XGv==J|md?.&/Y1L#Z~;'>7y|gOۆnce1Ǩ-3&^I8(pN*_,~6&   ~b&f5Rq\ m u=p_M1t3`<<΍7f!v=ݶ%7tҜnk=,T\u`f}rhHɃGZbW.̼kRd)owm4yZ%%;xG INpẻebR0X$Ɂ"7W 5"(юr]ey v$IsNY&lόaė|a>7_pU^^g']cnVQs8?op+ռ|X~d:BT#\a;D I00AsuXYYZ~Um#R,N Kve=zz8a&} My| ; !N&/3Z,gu^4JًҀg}ёaP9t8^{urh!>gO?«:hیI-ɆZ[ѠjxJv/' ؋MmR\8~{όU {mf'qr qRz9޺7d?<4-OVF~|0e%9U BSўXw՝ǧ1V.xOccݭ/u'nwf{vL*)?j]wj_`ȿYkpoYW6<7}pD[,e.%H̯ۇ7R.% 7(*$UxruhIO!0Kܰ?.n֏SWi6{ ^wBSX>%)iZ~) ;b~^:ڟwpB A =׫a I/q|mOGx '!PGai'ЯbOLVm0;V.u̶0\oJi6QZ][5Z[e+Ϡ5ϽĆr71[M’uOa[X}c( YkjZC8^Wk9=[%&"q)-瘭_ć9l}M=6)%6R(1׼}'3( XGJof,Sgn[m`$m~Z?mM,JajcSv+DGJ8䌯a~IAcKF8JO <<*7vc^,,3}Et[d|#M]wv ќv#\nxW$QFwԪW tcd,h_ۢy^(hp;HsPk>J@9:@0ցDB[LWvuup,n_بtni4y't4TQc;q#/%,izMw#V",."rgBe^o"QbOY1%'(9uȫz=¾LⴌuW)*z85AԆ͟9<|ajד ;0qX)s?FCQ2 Y85f(T>_t._ҮKcض}Sq}2zܛ/S2_O%KmMEjrh{nyWfzU8WỦx<bͨ7k?Q;<:Û|;|>6` 6]Du:⡽[Kվ"n,)SCt{ږ`tᇕVK((a]Y|yiW$={ K(/:?+,ǔ ;7+I#7Sa{wMQ]"a{BXI cA!|/h!ݩg⥕J_1VUXfq΍=<=g*0iz$ ICֲ~aI{% Ku؇XP@hܖo w7ei; ۝E&ս|YY"ąH*K [H 9IzeT{8t'O$t{)mxK)Ϯ0}?As~:4y['M+Ƚ|H$=5{%WpR[O`ZvRl_Ekv@vtPw ^ߟ7.̥:1('L9k'a+◪X+sJ isD DՆr`O䝥0Or~p.϶@8ϽŴyœE>quUP)~h@HB% E0F)P_Kl[c#y.Xj ǪvBkc0@0.K.P 2$FB}IqL+uՎ2xsAU$tsz]gkvoM+A /0J#$E0Bc } Bnqͅ:7pΐZ+ׂ8 7E<(QkY d|MPZ~W[' `oAxYƖ=!5W`+Jiz DzFzC,_a[ [+uTlI6'&3 N|D[slHF{ bF Bi;+^Ȳ*`߬RfqIPű*zL&WOb Bl%}nQm6 zUeoFr?ߔ{Ooʿ'7Og9|̓k5-g 'BtJtyPL+Ev!vP0z#t"}x-rslLX^Edj,e& * kk 'lWv^LIR\h1iiRֹa2q2ؓ1fkb>S7Fj i͉@("$[saMOeR0/q  IW~g&kGϣ ҅3cCcyi]Wy!1&y2~7kJxb] 9QH#O[@P/wf!/'Jj|}gD!C%N!y)ɸlzS|cqg t?顐W;&Dlq_1:grIE4i >6-.?gt wFR{a 6AYaE@ ;Wm%Lv@--W> 7a ow} <PZpbI-fr17Nex{W3Q:ȼhSn螡4 HL^h!5GlB]^]M*ͩ4H葕-Nub:1ڜD8=x0-^EpCRۖ^.Eo 53xp _ ] iUfF~ʉn_Ay@LȍhbbVfEYH[۸84# CfaigaơDRESⷒ袛n$45!5H6o,d@f5[KjnλU\xނM[ڲm36glsXxɒ;=̝<&wPK}m(UX^{-f.xAo(4*́>pi?1WW38\g jU/վ[4=lWoϺax%|kRWW^eΜy^&9zX]82:{@Uۤ@P8c`ƐD=v״D-b="t킆bg(W;ލcG ;=f2uxNF({D"rKz5zr _i(MC+&dRR`uNxH>CEۣTȦ7QT#".w@ci ;BrU7蕳&@fឯ–SbWglЧ ƒaީ;Q[[] 螑?&0O~oT_Ⱦo]'&wY,5hv]͝>30jS߬ NoƗw{_̚7x[3CHVD!1zpAe5̗f ϩ]4n}+x@5Ϡwםq:O啿:yP)~FJv/h/_ܑwn}FzEr0K+5|1 j'L_$!q@aHj,|t$vH̊ ;q=͝Fj6}HSQ 4 ȫ/mi˿C??k5 .U]47f2uۯ  {,U)?ך{ W{Yդ튀'+7Y^3I!N#nhP8#p1v (sۧmjTϰpļS9[*)eLf9H"ix !K]Fzt7(E_pmQ}ag޵EA떪'nd1ؕ"\ky/5}b.w2pNiwT}~X8gYMNaͰj*/wrqt!3\e|GE$?%}@K̥ëElׇsn+WvRs|(%q+G@lw^Z`UʂG g^"=Y*lT9eǙ-o\mFaMZH/U\).QY&v Fj0HʨyrPԇڋl7\@FAwVݲ;t=N\hV!l:w/jј̊$—xO˖V+@ơ/NHgi~l= bs)Enp|`qx.]M<3=rk϶v}M1QGbLJu mv K!NE~Ȕ<0dIJdbT1 r'0fMjY;<6n1evA!f f$72"3d橺e"5RH۷]0F/Tni0?3Lb$N83C%t&`zAc8NK 2rcPpf ^|ؑDί HTgL1,[y=&< f4RS? bG0ubߓ+@ztaـ+F@F-l1*B%Rab ]ZMF41N+~R{O׾Qq{3%881K|ܨ+.*A<A u.7˄[e4U/_o;yw\Ft-{hJP]^%p 9so8UC_,H^^.鶅m*v(g {Ob_CYAf $=d4ܑۼT{&K?_E]"0<[ rc1XzH++N9Vj-WTC"I"EuLT lS\~,}ayrl^V!{cx DTzm",~Vlz{樆b֑ahV+ h&73i#t${C}7i]!"{> Y5J9{]v0M)pCg'ҷ2d/Sc,:1a@S;7>\6mjkyv^F.>}E͋(A]oY(6Q8Njlg+^$D Q9?M}9ILܰ]9GN y\~{K/%;OHHk'cD{C+Gr|> gĶt&t:gkxV{zݨqcG_C'=^C֘mU_ŀÐ4mb|!m{/{J h܄tдuʙH=jCw^D8yt5Wwľ# $W$rF-s|ttλK}[qi9QrnQJǣsꍙCm_v[j@4?>R_GyO3e ȝ1"IAqo,BtpfqHT=O{HEVſ.bğ"ڃrO>"4s't!`cy>ު*k-Nn=ds㧶LN_1CzߧR Bںɨw<5olSݨt6< SQX~v;m}$Sެ|J2S8XM,n~ o >\Ntp{T8{ >m']pQPj3;}^8{Tw~47$2=Jwuˆi̬ 8H:4KEqzʒP^Ph MkĵGiNCxpZa|N\ز,tӖuƸHrn7;;f-n6%h݌FnS.yg8;Ԋ֝J'pp47Zu51&L=atzK+ޢG%Ϩc߱Ri}:R>.3R0=0:-CE$F1 3_*Àb 4h{Q{!"Ϭ9l<3 Q x3=&e\h:]|AdEƠkgFp@taT:ˠY(B.2u Iiԯ@?VKtQqU68aF`[[.g-=(Mũ~SCW׻?$atf+(`$P_Ko(DKP A੄2X Z%j L rH oghd($/'ċ|0`JdWh+Z)ur^B zb Hc/= 7mCgͯ+#6 vݞA?r`~otښVb(Wg𠏢u?:VFCS 4^ч݋ )V(@w6"¬K?]ߦblFymVW"p-"]U SOύuѢrJVp G&Qlyd{C| ' єԯmb(*9BGV>{d8GRCY_cH4&Tw햜{K\Q*5M܅Hɸr*37b3QP1竾B!{tDZjf=!Дowjnoc״l QO J b H dCϯw8:WNIfY&w,$?۾|'@cc(ECΜpȯ )f@S`[M2K~RJ%X. 2 c-7Ak5г |g">yCf܌)~ؘnj6n$T4𢀉/B)0 zx- mwڼ q_57=̘ģνUĪ@ӆpOBo*|It" 3q6o!zo!r?U,3(kz# ?ocaD|EVLyHk"$F)$l3n'i=Y-S#$`i4eFxZ,_aBdԨ<I0Ϩ'h|ͼMe(lOF˷՘zcf{R=tzv"ăzjh&&{* e3OO7삽p}t~ pZcu({nLc </{\^U髺^ƖJKgO+7D ĮzUי$'WT1$}I^h12Wiߥ }!iG5r^Q+JJځ;|^'>5e+YFdڄb[1\,2 7Q W^B5lϨeof$Sǃm{"ä]2p7t4"O>vG`TDs>D ~ݽY M$P`3*€K30z{jso>d,F~>Ԏ3.v4d7 c#iV7j6XLWp$~⃗9Y_<ȥ |<16\!nm 1 \ӭnP5t=7y19im .߿f_F*V}]{_>#24C0MϠHaB3$AL̫1߀R$S_J9v8"X$`P;:08+6 [@J6Y/g̝⌳Ċ3 '0ÀOR C@'ڔJrHAMg6sډ . w~ fX!BOL&qGDۖnr7\oyR#ʇD $6Aܓ>A=~ߘ%۾F(6|~Z&/Mkt k:>@*=@ h8"~NJXg:Z"8 ԐS'bͩ=bI! &M'~bٵXAĻ^ s ]JzԻ䪖2q'_AYwǛڰt*gRkeCmQk{)$to3 ><2I؅ z[б#{U$$xO3T J8=ƈ~{xLt`C~T>Ȃn4:ņ0Mv>u;Yf+ݍ,}s4ʦ:$87gI5قx_n `6|څYB}nIie]G8Lwh,I^#]lHX8cC^k+{}w!_AVc#9E\OCg rՑ7>g1ze4+6lq`U ]Io¶2)t7r诋NI Uʦ.vۣJjth|ċ\?LjI#S79bF:#htjmNhwoѤ~|sb;>Jݸu)H)bO9c6^SRrPACe{W Z^Eyg L͜W'|}ߦ/]Vgcy39KuM* !K{RLGgG"gn6LBU@6(#5IDJYo6Kn7RNk-:ʣ~=4u 5 S=I5aL׭щQY ARyENdžfpCíuk1ȼ1r2[ozd7{pqw/F}r $JJ@ zpu n'e-w{ԕՅG7ɳ(Tkjwo&wmߺ1W2냕۶)VX0|LEXȬ:yWqdoTvzSu>$ʑtr$M;cIj6_[hY1qsjK4bbKļ_Ej `qub+dESdw6.M26k+sxC"k 8 /NB'H Eg~`w6K3VAI[)[1:on}R"6ܚ1ΪfaO]?KdSѻةqjCxQ p왟_dؙ+U=`v wy#[7R@mUށ-a8/Wω(( B|B|ylb^Y^D-XFb$5K5$0& f@-^*IԒGq gESJSA!RHEt-R(FJ#$8LY0^U(I ]→fVn/%X"2]RsJ-6{#Aw^#?ɡ`R N-JݸW-wzB99UvjP%-D+uV`e2 [eX=d)J&>mFz:ZF(K#NV`FgޡiwR#>9>٨z7$% FM{$X5oI(vDy6!V%`aap,7xfʎcF~*sĊ DeAV-fh&3VJ~WB#Uh 7GT8! ϴ5ju{pN)HiST#owtZ7kp iHחaQ`,6L;ᅁ'B;9gbcIoKƾ7NDߵ8=/\a d&H`8L(0A|iI0Xa y Ԓ@}@#='3c.Fe+&84 0Z ([<^ 2Y0 бt@~yfHX$R9qse~-($) rh댕d_BhjD8+~cNeCh2'Sk nU&UʫƌpSuIfsr_u%z(uDu BZ/o|a)e|tgdGv1T `~%yؽO3<ÃYsBЛGnKW*eOOt:ԛXZ?D-yD]sCPa츉ykP\t*:evo|)*YKJge1&SI~&GK@P@OKF?~bGodrWn݊#:FFeLƫv1kcdʩU֕XKbO;۱/$N,ktd5Hg|OWs'1wFj!u:.VLjynwBOW8AO-ْ뉲;tJ׺B߾˶v4$i@o+W*꓉;BA-;npnɗk;`hQLF"b={QEd/T((I%t~`L?U!`pxuz?D FlsPLp tf|v~\T\m -^ˋ>\8J_>byt:O6{ okL+t#_H@J+TE*iXl^Cr>؍ĄȪ -Tb}oԅ?v!BfPP%pIY3L&>I`v_xe3*c8)/vZ6^ː {QA<Ál~$L/.ƒ303řy͂2 "U,[ÐeʀĘ [M_6!v~ΆE>39di+{M` #2z#w`G*_I$~ a8!XOડ=`&>yo"a[m\}{x|m{AKJ>FKS U_pYqܽ&TV"\C\e f&cyغ)It}E"Q#Kx\sڪ5>CoÝWA{u(Y{_+@~PrVg&Vlڭ'-<\Q}}"؝&;:; ǥDɬ{aܝiO 0h_Io\㚭^[ a>n7WFwR#luuzGr?'[eII~ b<O͵$>1@}"BP0AIaf ْM$`}x1ËQ$o՗Z!`l/KP2cr^ZO#X!2IF--Ӆ|t)()X^꣠/k+z> #K7zIL(d~9)摕78lΆ[i\v_b޽~ bl{I/|@ jb|ؼA$*77uIjZ&M3)6}&`h?hGJ$Ui~Pw<6ui ;4xr|x%_9{MحiLRO% osVyMݝ2 m"֬2(BVdoOhNك٘,ZakV؉1E{ˊ)GGԶ9uG6MsU5cЛ'5R!BL'z\Eyv MYG qp<:o,O=m5;CGlD3F2~3g0 p?TW%M[ɮSԏ~J- >Gj 8hXu-u9[MR}o=_wf0xd`$9XV]I#lHGşVѿ)ReIYa&ga4`lw0M$ K/ $:Zˈ  Kۀkd6\)HJ/ r|D @HP1> \R8p) "X'P;ON›b@unˬ|.&Mbd&<EC7)oK: l>\黙y_2?()2ZRIIT *P9[lO%y7#cI?,)fZKۢZR%H/9qϫl8u8q,{bQ8$ 3nNvՆX<'؞3/=]iRqe=ޞD5۴(>VI [0Y|myQQf~YyK,/ a6p3^Vx+#Y]6y]}?Z>!rPű>q}Sigف&U70*6yGX= wxiU4&jȿww7f3O3m.cW?Oq#yix oqi?e}!$(p af"1@I1BIk5Y@<3[\9V^׾$bP`Av>3$@irq8I* PC7QCL%z0D^   ʀ^Ɖ"f֌L)ub3Y{Ţ֯UELa78sQS:{$2_s5{ޒFG? U؁T%/ߑ;~Kwhwdz{0}- :n'd5R%H$5kuGU$A;L5Mo1yPƒ)әϦ:#ۑW/Ӧ{_3UIV]{=M#R|OM]]:Xz'rR MP&Kx t9 чPRJw%vJCKPkp-ZQR<^NEssm.t#Ǖ1ASl沶zp1Paoθ_y"ŝAn>\Bq Fe@GBqC xZ?1-1q~@w44}FU,L#Qokp=B*9wY׏c-WsU-^o t?f"NW8w?P _ @s!8ƽq!0&I D$ծ ؼJ;4-?i|I)d1oQP87l$`ga&11f# z?u hT'4:6-,`/^,es㋚mW,-t( .bސQN+(KÅ3j01ijB`sxToп~| !z{nB˹aWFeֹRC2V5ۨZ8 a(K{;Da?o\婫`=R(Ӷ+^jxG[XHP!,!Núiwz ԃJ@=Dt:gRSMlJ G B"_ bb סFle.QAu1,ZM-׌ĂrH_JB #x֝_w>*̏}]\Gm4R ]p&,2 $'QDMՅt]ŗ-nǽ6e6cGfqq-SmMt,bL-[oAg}7sR A_ܖm0GcKx^J7H KCpPWk@E[=3q7ۼVYEdLD'@7 ^KeZq5ӛY72돇bd󢊑t>x_uO Jc")+G0Sq:/l+%#tTItIclz) krdD;9Rtlz o(ߤ[~%]u Bλ%Taz7`1=y,R%3gZl\y}C],xڒ!UKlR{w]*&}Jx+J|i%5S Y|OGͭ[\ ]*I}%/&be=i-8Q4 j;IVEȶH W[ߐ[UQ_ďN:x3 v FyhUŦ5.,nlޏpK9@${wpUa@n)(Ňhwȼ'ϺEӷp%-\xvә=}l3!J%<~  _{ %{q>{ 9߮x9jj~SbjnO{Ul;8+bodۊh;:a/ ^Wx,e3C ch|I=!ew<=/tӮVHlT9|z{::wxL%뽤vԖRdýz) (8uJQ뵸:8~bf&xO7S:ȈY궰E 4|iF3Sb~N { y%6z]@Wµ(LȸˑdzmZ<GxyE ^|4sԩ`4?ʗ#⢅֙.  uX蒀N~ݳ3b2PhPuiܘx1_il\$#Ȼ؏#ho)cL 3 !?fQV-nx@dO$-@g)A:(E~( oջvc6;~nݺA:~kZ>Zxe:׾y`}-. PU퀦p> k Coԥ}bv?l_=f;ޘ [rh9֯=[׶ֲ!^9tBZ Edjgie]VNrXǵ<3uXI8 ~1{dӶ9A ~6Z1})Mb3l\O76,h2X4YΡUq3I!_Yp1Қ~~I$9nZ&c&Tt>N^"uJ >/FaٞmFx5>lPi.X)N{_R-L@cvjU=M»#ebHy c"UVUhFPM)-f׵Ϟm#O͊[ߪ^eeyVÃTg7b%R6z J*aTrFTr2dcTJv< Z}OqiW?iu00`e0 p)(asVg% C88-2Z Ņ\f׭3%hz`# /Ђ/,Y4[#Æ F@+ )4^ղ,3aFRg-3 t#/a-HJ#}2˰&:I.$5Yerٽ8?>,+G̀py:OUaGLD|CN ʾ˃˃˃/׻K2rC焬7SpwCWG*A"f _Jg+s+NX9>o1GMH6kgmDWWP--籯݋ z|!O/r;q{Tlr](Sy#(6b7&qMl5Hn[26Hs=w0鐨kޞG]+"w(q+gt 9i=QƤE<433fDwzߩhʻb&Lt !{*/D$?N&\@}~0\V?E/3eYhey;bF!7zp(ق. }/4s.Q<~@~|3nDz z`V.>u8j$QNPM."2s'xJv{<hkOv@[zK(_|%<} GpM~6By:kCؿ|#vۘVs7rm}^$ut#S@!mrF&]]M2q_&2aǃL!w έyg.:Ҟ"t{bSLSܸOI+ka4V'~KΥl4yB*2r^M2 OmWdНzNu_ Cw:̛ha1`5Q?|>p$tk)/>A_bOpD]6j!잻3bj#<1 X݃uN\rkٍ>f(oxz֏:j&SFc4t"Xw(G~R'0:Dێ/Q[=3߷>Mn1Upq>=p9n$Ԏ\!b$vh4p8]™tM<@ufiNyЯg|Vzw#N}T鉎J`3muo&mo7+b_7$z;zD' P.ە.W8q"R1ޤq3E]T,Rׅ69 ^DAwDNEv#Y!>OgpnI+I5{QuMY;K8EC AJOsL a$BbM"!JQۓ{SI!/Q;PІh;;>d޵blsېwwЦ Msj\pi l?EB{jHq)Evs M71#ڿk]ŠLu|2'_-~ZFtwz{`Wtrz }8 ~,?^G4Sa1ZRj r)A-x}4ù`oSstW̏I}frKqEޥZ)& b.֍eRA՜2\?v_=eۀ?D%I ɴx ^ajb5NpsrT`=rҟaS4KEo 1MÞv/ؙLj[d7ܤ9Y{ QԌ/~<ԧh2W*={<1ԪL0& xlA&MdAYa =%KbwQ%RIX۹>e3ˆ BHƵ T>>Y$CdA}Ag9#6 ^,Qt47D@C5&m ::W4bBUc93b'H+@AKM&Ev*>t dWru $Ӝ]fbur, |&׵[W-ha$8Qf<6GF xnۓO"'ڝՍ[ZTw:9!;u]c&ަ-#_ICA+榋ݺ4"lt0 8Y7|Ŋ;9M\5[! uw9e@SA~.ݹ}V""ݼ=wmJjgW`#=XN,Eڧg5Iѩ yՕz{_NͳN qQ/]@#(=H 26cH ט 8m@7B(//? -v< ڨ#=BJ g_1?=a_ |i "pPF0q%i6^vF"wJ}nΧlYosJS{r|,-]:ޫ{Woj 78MM7۞!{%#NKn~Wb{h{S}n^Jơ{s!r5xnn9/KtW{^f{ѩYQMPй&ǧ)ux/ƪ~`?q+0_yv٩Xt Y:I w`Zt#U{3`;k4{˸գwOOUU Or`<܏񀔍u (RTOLb^kԠQ,a%d@k]p](m9^F"ROE%nkg6fcoytT5l4bݟR99qI: j |{OYA" vGU(+a,®g[( |k_PTi)'o)kzv2OWF|g~6:xAgfn2j /dnMܣPl&jbZ$p= :DNv^ea6kTv}%%L{r-cZg;=l>7kt⟤a]{/4i{P /.ܾŽ(zoy}(ۄ(6HاoxLw8<7Rߎ+޻a;>e{Ȼ}KnXF趋 tE/9= ng.dnCv&w{5Kmnn[B 3~eg8IC9U ?ΟGׅ-#v Sݡ xGfr9ށdt¼s*T;μݻ "_n$~x\kWQJ34`9znuK[; ^) X j/WPmq.6>W@jId9=rO/FrP!4 D9~:W?w% Cjq&XJّؠѺ"/c:"њ Oe}yd?`P,vRi/1e徆)JT3;7R%ۻrxcNӱQ{OE$P)2~o <| pM;W&q[[.4nJ(8.i1ΐt4 κ4t W˜˜'9K P{M*\FZQKH61#r>^mQBX R  t3^DUX '0( pD9cSq<տ,r,0ߎ##o-0+?]`W?0tq8+JB>e/6j3wwf7)B,4/% 5^ESʳ24mjJ$Y&8 #a2! l4p%.|~Sչ>sxrM:=FDžA)O%tŃS&*R(ФKD9i:lKh$=fy|tU08g"чr,f :x. HS2 B'PK4ﺧdygV'cN`g`NܫC?x^<=KY#+VW5y'@6Hܹ*J!;4;hFSL JK4<kU=th+om2!c~u@Y thB Y[gMŌ:哓Sk}}hn~RS +nuIm  iH7ʣu8ri`sokfI=]IhW{ϕŃ{Zs9Lj]IҀR^9 Jv+v~q a$Qx07w}^$;P=唾27oCԧ۱ix N)zX{Qw!+{v ݙ^&nVab4$l,zZ~1NEem(=0ݛ7~ր! ܑa¡qf8 X6K}6DBU~' O7ߗ=G_w)5Q +2p` H֞*sdp:*m(ʇs/+4u-od2<ņǮ I7^ $"5ܩYxLKr} v6VX,i@Bֹ8_5\Qk7X1;Y;׳2#,|*)W"$ə=+KpiXƯFޔ#-]p=F)"yd"*6qdd1&r?J9NّdZZO/'HB%A݉~^80ȹO]>b7$XJ0 |{EEGMH-tƦ5G!l4 H*\vabc1L Mmy$[](-tRuCy*2hxHY~9uqlzНH[%$6F\Վb67>r9uan|ρjL}s:/"q.~0:RaKu)9%ȁ~OxJlnOaK_,uS[cīɀV7-</l-6?~q`5 oùS^ 髂9Ytw:ɀ:Z%t;T)y*(83yuM?_>?)ʧխ 8{yfˆw#<<(UUZDR{/&%̏\1='OCWJ+-2*?R.|Z5MnznԞNF'>WM0$ /ɰvC 3ZUdtЋPϮ&cꐢwEX]FK<FV D.E-)f;YCg;㇫nQs)/lUGzYZHwYG)C'mGtC5]MYZq)@~ᣯxD!(^κWu}|@{6E'%2'9A(ݤL.Gjϊfnc\昉:=,AEQJ탘5]k-v$);OFz:ݣe;'~S<Fkތ%Eo3>%4rYhG(峗F˳0ēΧu g6b:gh" "2ҳh(7|ؿO$Y~6O?ɛܛ6>B^ |j1i4Kx'{A}Oww8z6^h*A>fB}|gn;Ȼn׈k_~Z{^^ˈ#l'aޝ#47oM.ҷ c6䷼'I%y{B3F]FpQFňUD;K%sZ$7weKc&R ;$3cȌus3c1AT)aw 'K *FuZ5hfvo&ffn!T}4R 4F׼yTͅJGHT=aΌ=]'}7#A]Ua{Y|YIV :ajɕX$(k< ј6@d.G?Y$vZ>әndIZŜ|I0ѰL/(d:kS[Tl-(1yp?c7~u"waږMIFuJ FIcIniG`cA;%'YdָfLَnb D~3, BBuŗK._p85ciΉk DFh>_9Qu =dTuF>I_=d@ Gk.`U7K렁*x\t@&W!DeV6c*х1,wz%E8,I䬚F{z`,GD.e=&K=D'@;3sD>NQ p;dZ첽LtP䁼jKT cD=h X'^ۯ܄N]p{#$pлnFл%_6qifd}9N`%iW!|Y$.{X7{Լ1Eo{K?Kh +_;)WxDͪ:ܓ%|܍ۑI+xp oޢd)~N}VƱeї63 츯{F~{xh5KMVN*k咢IĿ;}T4^B0ZN5yŖ.aQMܹ|{эKbBY؃L iRctޣ99S3&R(ZMXQS ^p rTX5;IMUgYoZ_A';ESŽVgy"TZT\c}f,7D;DPjp-=xaq\gyQ8 pJh9#sZޅC弲v@o߈F e_7ۛ=)<&>=PI&0x VmG;o?mVKa_Z8C6-M1|L:ޥfƶ $[tטܕnNP1?nz9?y=ڡ}o~c?v@77N{c9[tH$h,m_O],'wbݓ}~l ,`_#޷ToP>@c;s?N;] `uٛɓ`!jڠ }.y6e*fL"u<LHR>/rh\EZfK swxzzT?kD!$R(03|(=in5SrbZ$SgM&J6W16; Ry] ,+NjP;u&|Yj†E~{4/zq+Ӥ7~sS0J.#KMjrѣG,QmbC<oV WX&}f3ahXSBk,:k ga`L*M3)A CKoÙ'y}҉r^p'o $gHjzn=?bhD)BHdS'IS=k$l6uTo ~%iMeK{[:JSwuV{{ǯ㷵/m=m{>؁'v2vJwJ: o!(gd;f{?CL&PZƆ>O߆oa|HbޏC̏wO fP]W[}*Wqjy%W 'ήcق|CB/B*: ;aẸƫ ,B|18h=ѵugG8kTIXkoo(0uO G1W_f5mi)سDgt0h)myVs<"%[ܔ%# .bBc`>g&4LIooј<" v|LW>PX0a5F42⒍.v$İ5=5c#,?oR_" FC5õ>C?>SQd'`+∉ 9SxvɂT*mnA!@Y^ ǭz/B3QWlXƒ"#}LƔTK׾[jTLȩZ~?DFiѩҼI.]DN| D}f<@7pZUFyb=߽{+7bTd`T냆9؊:>wȩH^f`0oz9Ti2-901.mno˯ \=;@$86ؾ>CoBw^|7S\$[렻0InS n@wÃq y˜:ȯ ?E1(G5nz[m 7l׀nC=,$}7G{l3Ww[LxEZX{!h!!Kt\,,w_YObƍ7o8!\?Pow}T./]( KD߈½C :LaSZ* oh#cD'GEck8\ / \4+ّ{syn9j4Wu%o{wejg7}1j!_tQNijؕoXinf=z\ꢂGG 5q\6y$'Hq@H{(궈/Mn/m鬽eK'Nf&uGB&$@B$rDz.\0 j|˘}Uĭ-fٞ! _'{XB>x*pJGZ@"$ il'(5iCAMer Zf:1Wf@gkuFHQu[[=2FbQC7N$)W,:* #xWu纜X}75T#W}u:YF2-<GJYt_!|P av\̋35nsMXܸ/9{{: MB2;D BHnL#"Pzo XPԴmTPYB>K ;bG`pB`'7i&obR}bŬPΊ0 *,ooM͍^9{m ~w {Gѯ:}qIkPbql> >>yo87-óS2.;7 ;j{:ZQ>s OAZrW,$*C 6(V:nT-~O(@Vt+\xpe-L> Ώ+~S 9U6騧?)Ja[1G|9vۚ:3ރ{Ɨ'g#kWfu+|"$MbN7o+]nĠNS_z21bw'.n+Rt?Mn"p~; ÏL2wMjcG e^HG콚ѻ` Cw$I{@ 7jnw{TRkoy}<+8̧SO~5Lʷڋ.ָ64ay`[H|{M_A$뱯R_UʞS/'c{v#|[Heq4VR,PM瘯{㏴hSJ|qhu9}:#Km)rAxs}?>Vd+A)@_NbGbyUT28 K>4=ɀ݃?6kD9(A% zi!u6>blm/])%4p." GL[֭Ot,TRUr< w#Hd7gΞ x1fRĊ'I|ՕS3Rn%Ǫ2!;(trU.j#ru@gOxIEF?9(9>dnWܣ00D޺M&/U/v4O L+lqgT TU 90 |Vz i  ˅SM-@%1ڝ\a:)'B[ĻiBP8(>x UO~]:v ֝ƆBj3o/ 4^2V1lWTzlG3JvX& +qa hэ*S+ݍ5>ْ4(9~Ϋ8&v'vg`P E=mV&g|k?W}˔w9?ViOYPa'2}Pu ~O6sgC_~BioOې}76{DD,pJ}ok7 CȽA2Aߤ?ޫ 6ܘ|77\ƨ_$'Jv`}GM ;.`"z}!ݻKw枳Eɞ[dLwdlN I~B[j AIs~go Xv`P d¨-Zf nr-_YM^x7e{0'n sBd "|tSҵG¼Vȸ(gP{* ۢ~d]" G%rCz칸/Aӱ"YlL^ae^L_C"%ʚz7f./\ۚ.}"bQ9ۚdQۏ@F#Y!UWb0wzľ)BG6/Ye~S>0o"0gCIݢ3Xt\ml]\ЩՁ~ĕɰk{F _K5g)efp>֧;6{F&IyG#Ea:h9 $Ž1L 8yN5,vW>jFtr|+1m$rIbpXL :brʮo—\෠=Kh9%o[n;0W&PsS}'2.g5I۱%NȢf*JJ92ZQdޱ Vp/۬֊I^03ğ)=n ,G*_cQlrS԰; o F `  7,A0>VKGH(r &ݚ$J-~?$rX+f?kCj-IvBeojmBuϪه]%9 i噻>U<4_cpk?}U&(I$4L,f<\™'@{+r|0n|(qu+47$VGg67~BiKj)*eK+ڍ~7o`w[nuC]㛴la7"9p{9C^=9:EM gB>sZ-K?S+_жˬ~8sHVaꩧU3([hP> 8YOJ%#dٽ#rj9&`' 9qCUĸjar}n;ueh)-*]ud}WYjj+-ҹc2 (v)0JŔ^)]s-aLrL |Rt'V2wN}h9]6dIݠ՞.tV!=+wk@{C D}\#A9"_UMȭc.>˯gp"\{ZOк]7a &M2%Qui8&ʀ#WE++Q9!CSfݑpt/u-/2 8'\K':@SV>ďL} %@,ϓc q C 9HHԺ\_/pN ODhddw#F)~x?>nnڗΚ*<쾽7;虔~E迄%~7,arl9|b2vY y]aHfgN!Lz&>lHOuUq!Q"usV9Qx `ah;/*yHp~ 5Jb=ݯNy8zR2PE];JnH#0U?8 <9~mjrgk #wbʬGtZQG tsu]d1mT=|E/L SYe أNedbug5Gq'dvI5ɕB wb'F{LEkDnZhYq,1Roa4 E+)Dq=|"M ˉ6?*%*1Pk|&W~ذZsZᵜ9ȉ0z< 97 ond2`'QJVt y0iˡ>)<Ӫ6!jB'r{J.t R.%áI5Y=ZIH:Yz@oǶq =2C(U15ԉEMf_3W\5 ޓGL\+à?5qI]܊::˖ U6Y3|\~P)X BX_нb:(f7Uc |rO.KmVƼx"r@&e‘SfMN :-lVm (<ͫP=c9O\*}1}^D$Mg; q<7jPIf>muS_IEo-s6,=bϞԤs"gD#,qF|M.)q\z< ĥ6&G|P/ى}J{j* PÄs>#{=eoFt&jR^S8pMl Z3+D 1 # U(C*_ $o] ʱᠢ}1]B^Lq%= Rᾌq䱫ºH3ryz-ٍ2Ov)} Ԁ_^WMO{ jPqSw"hV [˩n,}_uuI vݡ:}gb<UĺubW`_RdU Ciٻ.!_aPyS\SqP Uoh^~1ͯux@9!w&}--U\.;DpέM$`@@Fz:']Kv=)l,"V1 GGm!nh[@tEk4JIw5K’2P܃_9D$ufYLJn=Cö@8F=wƗfA,zXtY|7c\a)F^ JH;2GFĚ`1pC?(| ȓTR ?trNT4OF}gKmj= 5HpNj?ػPPU%l@A}e\,2IhU> ŨJI2Z}Bf5.,zkHiK:,G,?lF#d#mc4GNQ]@]z[^\$g;zr*` S}zF&18rAkyPV%ڠYS]pTmE8=5<uh%/R{%Mp?!8!8 "PnЍ"I0! Ð!8}SyboI?/73g&{Q>H\&k%·a8L58:,C d]@cdG1Zt}~ug_kF|h\~f{7-Buh;kkX~ Y6K>Z,Yȷ@c銮;@<+PBO|>{ -IfGr(N=Ұ$6b "ѹK5iy}m %QWVΫRpM}ƹCgjLX߬;Ew%ŴMNOxRy/>6A+q)J FwWk=-Kc|Tw@%opp>ՙS]QOXUw7\ïJͪxKvSڛ>23vO(p JZ8`--bqBqm_`pn|} 5%qtI~ݢ aB?d=;vrR4FHoE.ed{ l"nO Fu5lKtE{hToS3|rnV>#D9-tZJcrCw,$ P`)B,/d!xstFy| P۷.}OhNuʊb:fP~NkD3.]?Ms"Gǐ?>V~J+1|7|ʷ5}1(@:oݎEw@ 7˔iW6łS~ah_lG ޺1HSvݷ<鞍 ҷ&{Mz Je0/{jnrOuwQw1}Xk28:R e>S׀Z w EҨ}|mMFҙ?Y6bm'difS]_9~WAqS%3 e#P+) Ey )n DŽ>)T@˹܊\*Qzqk#V+'m'uI%(#Manzp> ld;y䨿\7\}C{9.5)xv:,N2zOcy.z -&7)0,j6L̲h0H i3R7?}Z0IeGrU7+|Ź=kIVXhk(/&Mnx?U9hzϏX~$DD,o{T\wB3CK\1!0nzH4 (<5sqZm =1r3-C c^A0^wLgTwFjv0]k+*JO?&;M. &Elx̍>Jv5)m0j5FIT|'@[8랎Y16h ]۱JV(gt9qN2Pű=j5[K^t2*2-p忍hw:=0խU![W`|Dh %@ŏɨO*+SLs2A1K]'Ǭf76>IrʫLG)ܴc|'fH6ZN|a;9zbVО&c#@}R!h>n0˘D(q6Pd\t)s1Va˓3gޓtL v0#U)D˴@s|*ב{$QYdKH#D$rGyoQr3W b^ilasI@{S7`osmb*)e^5y{j#{{l..rbǿdK@|!tٖm]|M˺_WvYAPxP=0D7Ѡo {*X[ݯhWnoMeOoҵ :X`I#s/axd64 ^[e2Bu nSR(jq0n(ݍHཤW oNT$ٮly4>}ȘFsRvUY_QMh= kq =9Sw$weH17~/AW >r356UaэdLa.CP7:}^ %S%ϴ1Y*EwDZד; z*y$xN0 ~AQ'U{z> V̯j;Fr&06NW9b%b^(XLDkS&D|EµVK5/0 ײ' a ݾ2W[$iZUnK[,##HʮP p΂&";e~5!Z;,'ty] Ə.,2v0f\u8yXt PA㊋$y'*hҚ|jsg@8sA`r)XY Xgi2ܹz4h=ձFEx"<쓾MS,,brz@X *"g}Z<#>2M3H^nQQi'hq<#.S|u V^,V YvBSN o6{h~`$Z/>TQk;؜-TI}HµQ.sv&q2/$CV L8QQT"+э99,Fŧty@8W^w 'XqbQϩoڌasۀN:1V:‰k'.KGBMǰI5xׇ^5R,RUp?'\jt澽ͷ;>9"-JCs *%+D5QH(t8:@j#ɫ^[Zj0Ĵ!Όe#0Njh*#%K1'~ ;~c FI/:+6ߟc.*>8@,zά[qs=JI,S$!rG! -+[ܨ)aj~"9yL: 5f!Ӏu%t&P}1q:^\"Q<1à9U۵5wY]Jt<)1sk\K,]_TF8's)/|iFoY ☆#]mĞN |\|>ډ)ec_B 糪JRBZY<_(GHҽN!yeXzt2g9.Z.&eQۙkk=h؍Qyܣs{FD#Nrz B8wTqT5E -'3-=kS7A=_Ml/Oks?X쟲#o6-͠oݹp軌[96G2v[ 37ۙo~ */T1fG~PvnO-J⻉R{gNo>2`UI ݭoҷ%'b[^O-@s\6ܿam/v' 6;3WSδ%gOcu@45^įV*Ɋk!S%cԎރͰ8HS, r MSb;68(qaلA*W鈲4B5%q޻ >jV2U#SSa-&:kB64"T|8`.ULΎt.=_tE AU]ħT &{0J[q^8ػAѾ@ +d\>;(NLRa$ 8rp X&v8!y,?8/!IHck1 /(}"@1pA,Yn=)EavP1"cYN ֮9y5 Am#6ﯗk1')VqͲ~'uzrc}k5Qa+ [>~g?W#)<חWڵpc)?0[1cr[QkωD(p0Jn7Ѥ8 bfTQe0DsI0^O yԐǔbOϊ`SHqM6SfQ7^z`:BV>4\&jAEz4s<}7ØnuQ/Zq߅A A!af7w7ěx b˺E,I-7|fLݷ|rgPvg}wO`W ޽w4z>rz?+ w&,({onC =y{/)-Bk_ee[}ǩύ%>4 tU(cnK.7mm…)F7~铺,<#*ZNlyvW# o.J_(M^*֘;m羣nuwLtϴ[F I{=f+"f#{㼻WՒͦ; 1;!F<{>At vLICU>yW" uG'/U4SlC ]g7U<<|ȝ"3bLOpsGN /gX&ܡas] ,P! #:ߦc7e׾ LֹEY "?X>Hj, ܯ⒜a6 _ ֥2ǰްK9~BV$6\I 橸a$t::> )(wAriT_K&&&U4FxfF āĞRȐ+Ome 6D! " s!f&Hk& w-c!.$t;297W[\rG5pyɊ5(sJqT(":Q4} oRLzi)]Gj50y(:L&'01!ܫ~,SZ . Vx͞y `NOK8-!xѴ"' blX>f7cVv|CtU,w{6ձd=jF_H T;%#χ˵Q;QFd%:1+X-#9*yYT.YޗVgޝNnq^"13@ì2:=Q>z6} wʩf7G?=+7Q߅+H JN?%\ I߰H0sB; ! aXHQno|TPQ;x ~93Y{IVH'vlQ{U6ܓow=' 8o@{b՛"v>r_# \Y.N~o M?vSy@O3.z8^; a9`X~,pbF/ Rp?Ud5D[U44W>##N цe/+6N,g/mcS#)._wb&s{5Y[1wNt[xd]mHCevD|&s1&Y pL<<Δ^h G?`U;W]A[\6QU5RG㮧ef-5$No~Tw4PKs-0ߤ @R.f?Vf\{/~ElZ<Zc$";='pI/?pZt&hVO & &#kam"2f8L=r(O{=ڶcU $ORxFm2E()<˸ae2 XZ4soNHē(y?nM}Zz]Lo%TkKPǩ2 Hw%YT84mAnƵ#lc28djpG.6vZ0KِcHi#NՂXU$E0t-6#-jTmjWbej=%+ɪά}>ó1AU78يIz'e]ɔ[ P`':Å? x v Wx{ R*]zVۤ~% .5cȠƐ _ĔJ1 [\8;%q"k `X2uc>b\ 4&]%;^^V~ѤڹbOuS_m *=ɡ|oC},mӴe1-Yt<1 -pKZhr_ )}@tс!=91#Ҵ[l' tZi;n4`MHBHpbjZD`俽 EiE vJ{Dm6ml'"[}>>vDJ Xi.5iuiޥ~~ -h+)L4Dh)ӉAhitZl?ĕcb[$;AARzŝ}xsܷMx doarv^>mQz{e| vEcD{0@2,4i?e ZDK r2ݱ9zlVcNm8vzJ q4٥ oSLܽBFj mHͳ"tQsUr`u  QBq`{WwYjw\Wҽ7/r=neڑW|mspQ<)QLDR Q#jaGESW*f,E o04;N*dY{kfHC c;ki] ^uEo+'Stȉ0OAIUJY2V&ЙŚP5Q%Kt|8x:<*4 GA7UWU'}DZ? DKfM _(plRH&{X%wbNAJml3ro^ҝc~?8+G_=j ,0ela|ee9)E'$3u6={s@R\A-5v&>,+rOHx 雾/ȕk2Ȭ] x3 ^&Sv)-,F`/bxXw*X_]迊w Ĥ|ܶ%bz#qFgvڽ` yi)>զӜc J ^^^R?KYVs 'ˁ|j^۶8({<Gl"^l hh.xo0i(e,5B2;|<;#fn[%`=zu Q|$*J8륽H'B<#J-U(KO TZrl7\yJyrϰmEQÈ&mE+.#Z#^0=l^O}HC㐭:Rzؔbw#+>*n(n[-Ib/y d<sj&n ،4Mۧc 7A<[j%Ǧ*O~kTí8ennW-!d*G $?@y!{Gͬ[_QD11 3H73B(Yv:lW}u;"~מւ9<ٕ_d;%yYNV*?DB_O=֗E*pTň+y[s+sԘXYv|Y z_kI`R4SRo!ǂ"qe ݟE{Y ,ܜ>Sz[iϱԢaI7O3@n}Ŗp>mw倍a‘-/6|Fy茍G/\<7P& W6}K_8hI.L]3v:aKsa5zgF1/;J%8 ]٤4%X7"kU5Ow|yXI.4yc,X+ST K0XM ͰErx-*#+ nUu>FB(j0t~ }جߥ&'<ŹPȄˆle(JIr_Ds|!_,H-ֶq[7x{L*2dۣXo)/x!LFR)hW-^jKe!$2 œ[o@(JU)y#&S4pxqUSQ8d,Pm\l=LVƤUڔ!eG*7C25MCL Iؾ H&I |'G!"9O`?SDz*GXzȇ_bsH?KTG8^p<ΈG8H-DmA!uh1 . P?ԑsRXϿ#Q|PxrZGKT%g@xWc_1!{4Hl _7x#O*(SseIA5˜_{PXrk[?!"kXY-^֣Y[h'ԋmf3q7Qf=+?.OϙAEs(6\0am",bɾa;ɣ|{&$ab? wW\py~ W&!IW;1!-2`\ C&8UAAz,tκhJ]QTkm%xfr"5oRrYH9Ou|gwG8Ʒ~<\cj9=3NZyGD.wr:q'Vu ե]DNYi\m5@lgYb%8E-YnOt&: Iӫgv qTҷ)%DI '+&|kةU>:ɭkБZ8?%e[qB-ɬiܐ< sn!o;po\=ĕy*=AUM"XLbL7[[Z ٺ$unӘ!8)݃ C~W^c"SkY \`"nR腫/jf@1sw%Qj[[{$CY&Dm]dnQ#z6 44B#A+`bgX/q/CnoY7-ߢ;u@ 8#$}V?h!p*<vKz|?郏&ӧ~ɉ~cߑd$D>sɧcq_~};E3e~\ }tу8 ?G?=ϐhEvZa F+'ߕGAlͤ?=sgv*$;1qr'O Q=;G6!;lqz,/D\vVM ]-J_W0j{>([)c_QU 'DZz ?pG'wR_ 7f YC_8 86~l+W<_=|[r=ճgI8bW)/!U)Vd־:dC0֓{&!- ʫ un;Mp4}L6݌CY`/}TwF4*=jieA7cY_1gN4Y-Խ;0uLărҷ@e") &3.s9-Sd_|ebm0MIGg6knWh0D5sw3>^oyK<yP^Wscg?$NeSx-6uRRh[n8lgуesoS u9uAuAiɁ\,co'@/lq>{/7"9:\ړWn x/ʼ@*d)cvPx&xrˈƺ3;a2ƣI͙ԇӘWBrDjVdI`!Y#F5sXzIJCve.5_`K/$I^N=7xD-'ڶa(|"ŵT]s3G{a}jWpn5#c<@&"]ؤ1@٢ ҳ4qd_Z\wf×d+_ I0M>B|.Fko޸ H!q֥.\୸lKPܴQi'Hw橙0*vu2g(|*PTjl瘅dRE[8{gE{4?,@f9j{a(>eU5rkE47NM.z `J#(%BB{[?T0ElUq/;6_b(S+^d9`L*+hQ:! J.N*De$y4 7yퟘuΨ(1 Ua+K:ѕ<'SALH+ߠTG1+&OltlS_!c6"&8%H"1#ɧnJm[xzM$@EjCB}9̘;%uѦhzQ890(Fm{ê a-_&{C3 u4.:k(nZۤ_PջvvRdc.y|'#6@ @IZo5\g@x8}`1 {B zYum(!j]&κ`m eBkH-[ֳ Z׽EphtfL_c(x.hDE#S6)No3#;PJ[rTuuf^˛9f!ͭ t,/&jݦU3Jv߃yфP43z/ ޶vcp)2f]S< 5zl˾Lz(7283x4TDI0 iHY}~hn.CN %faPl=BĈr8xfܗֻH>^M6Ec:ks8MXY~Cgw2Q*6 iDl{^OJ4BlzVn9`5'eg'}>?!w6"~7.A`(EMR0c)LĩS CORvw(:w,O$KW87?*a3yT0±dA~W(Ұ32ppqgV"jPU6(<|5u)fݷc5?%8CK6nS}29ǧ;hjERvݘD"oI~VE}@ιNsOs7/R߸W"T˿55E_48Vjܾ=y mo)^f9u2X[2jƌ:{}tVd /vU:V4Ѿ4@VP3:´[mˢQdk?mьkI}>+#B;G˵')zYnAA!?!QDz#C9=8 AV? @1D|GǏ?"W>KL?CUه9:ءg Gy%@裚pH]G{~;HL}J31c;pLQ%Đ">H`m5;UDUWŵM=uUUC鯌U@uQl'B6ntB.y+ùVW`1>WÂD0!-[ڃON ѢWRۂ$kKX& <蓞+4Ƙ6ē=T|[{!vrAvxqbL@ 6ŇCZFŗ/T]*]^&Ƶ_z:' R^_"t=Z|ƐO4qa@ Vdo4G Sq]8V| =+&ei)^,g֖wяiuOUnoXw$ (wnsc{qʣm^nCS :(/>#KR4Vd4 PͧYU3SLw%@ɺo`k8}3ຒFVҎ,E>7. 9p9x淨M80`d65ͺ4oYI*8 yتTF+ouP9E=!Aq*L#k}+0Z|>\j5[@GU过~~OQDC$$é#5EpI! Qhq IrKzKe>Q_h tx:Pח^ԧviM_P裂Ic8-CPJ} dԑM#'HeC<O'}}ș1Uo?bʲCמ QvX@UP!|m/*om1OAI;|\~ MNKsH:C_.!ܤ'ǹqCeJ_!']6\ <4o-U{tPܰ5qؤCNnye>?$vAW-.;M}XO)%BWuK(W;ȏ`sp!D鑇ꐭtzsGAEuAbj3PN$3V ߲!sMʐ'vPFt>A{t[Qsӟ{.CjU_kHfMPFM6Z!TI2jHhη cW+[ _qPgF+!b,oY#ckbJqQiH̉7,aHS1[)t/$d ;(-bES_38# h"d TjcEȑȞjmLggHn,LO"1 BF&j &&/ouKTTO6Vq2e;RUqVx!?IJwER<,W}6\ .wļz KgB]fBO(LqDm'],Y,K,>565v2 lv_6{:11.zJ#ߡh}f6i9yWE/tpKdNS"N QMi'MKM"u;$[z_ݢx[u,Mȁ׉V2>RCnnG6r^w.1;^\ܷo2':x5n bKD6 9v"=KpͥV:uC,# Xeڱ- 缼|ʰkbq;3奧$=oĪt-WQP`#JYq8gZYZ<7b/Am4AqhЎP0y'  AeIM1nTMU^^/4nm!#C}]t';ZyZӅF,ĺwOlMpO_B%׉e+(Niю]=%FAN|*ױhr f1e񔚷O W_')o2_x˿Vr}b%ɾIDQ G1 & vE01:uϠG*B"1Drbg|BT }` pgGFhxd0wAI(x }pOGLm7c}a_[UG3ct( b~ 2aCetO;]#~E_tb'n6w鞻j_zK MĦ ݣm~G! ׯ8hC?c̲1q2׭k+O+1|]h۶mgٿhZ wV׭\oTl5#OB_@Fˆtzb [qv=.̲=üE L8R4މ@^R gLAt|mBLЉQY;VOK=èL|٣e -kρ5{~~ e$ {E5 -{h?_8rޏu~c0^Ƚ}3ոZ?Ń2I6N Uݦ*% ]n>2_iXurVmU#:ƀZtvqt6g?tM?uxK7рD4[Cs}z^u5d^!O)oGŔ˓u[e㖡e%lz!<2UJ;Z)^Ehz\=cBH}=P+ ̪ؕ@WK NlpmE0GuvV_|>ebUy'йr<h5llK 71[BRȋrB!zf;Nߗ+x:'~U0Ol"3s$^3Ohi3 >sJBhݦ1ȔȅEҷG-q͟)œS5+9MD8J0P(;q !"ܽ *>_QA_h9Fqpg2(?b` u?oewjIIPݝ (?q_*8ػF$8ѹGMG*?q؇=cNB@)+v$9޿g/OY!82CdTe!7MFa;N%Ӷvx飗L}O( |k wX'sdiw#z`{,֥L3 VNq)N|k7$' &Mn&ǎM2^/; G^bw*"=v7tpiL=w/zìiGF=ȡ C5 4yÅvS^QruksNé U}֤qǑJurzjd94=̺ںvhhq^[  [O{\7[ (wN+ւbn)!#hr(qE _0b%£pcGS;ZGR'G~Z14 !0 {D$z8 #BĀs?y=ŏFf?>A?[q$=,l^?I"ĿT<(GٟF'Pf[L^D{̎8Ho(5T:r_}:+f7_T6Ms~oD҇>G h9&4!Z'!JM AA.+m `?;|m R*5  ڐF# <^zqא 6,B4)|y)NKWFӤؤ=zfWJ:",PF؏;OyKWZ]5W )oAZ9tM-_hu I[]Ȏ3-pd⻴%WwiKT\-=/M]2'eaR!wU.B2=i jE/*!l* /fv%V2-!]L\V*RvPxmC͓g| ?|\+ rpL.tXL:e%+eȋ4MfZE}Pt'kmD?6I_E%~B"4L{"0x8q#م#Z;Wđ]g&ywA}8=}|zˆqTGs'AÃ:9'owvg~mwgZh`(=֌"D(cQ }he$@Mf?;X}oCI{΅g4pC ;'~p{{&n鰇[px9-gx4/쉝OM-~ҥQ g/|XǦ$yH&d9$Zj$U 1G}rOWNi(u`'7bIʗ^Kl)&w\B寮v>`Nǝ6O?VY!m)f&xV $i`;#Wͭ=gЛeTD\<;T}9w7Q7_GZ)?֙`6;&88E$JB$In7u2&C']ϜO|(ّ#L}!v@?MӒ䰷yrwӴ GCqd:=?/ |@~tDYKL~GɎ0:xp: +~ /)_;C>qMBQR} hOy#'W3{4a>b3_>56w.+ח|4|18z#K+PN}~}'["f U_h0,dn] ƅ:r,=vDMOQyzM0gjNy3(J՜#<`ZRg,, l|OIa ׷QȨl6}Kvl_փ+_C3E@&=~:^+ ^ h%MOve4 LdW gQdKKXL0nSC1rc&45|zڡsƟm~Z!Z^z5M }) a\|1m\zLWž2\mپ2=/8+6Dl}Ihe8 Ȭ՛*GR2;^%1韟, Vy+*ͬxGYk x](F̅)ebtun#Hzg' 7hqpVr$t"::)2e  #2RϪ|R4t;LD}il$Q >R`Qh&Ē.7q_ڨSRa7 © loy^88Tm _{5ͰPbZ>N~t!gX[_vp)Of &}dwQ@&Jn]}y)>.>W iZ+gUˈp~rn&ՉΝ(â\aphW8OTMm3sYc,3bp= kiI`V\!m ͨppuFZP%dXٖ'w>Eevdlh9|)9:ɅKIt?=7&e쮩y#EոP+jQ-o@a&ٗYmKK:D#8VDž<]8ݚ-{<Mu"b;%Rp+wJn`vnpv}:8 +!"ff%fPˠ|ծ ۯ;4' ~W*`w$N!G(`Q8CᏌ`0+v؃~RZ-h8 >[YKo~@jRP:_eG>CE;dh !Aw~3Ž|d$-HI+>OuG_!?Z ;舍w8G蟏#lei"h˫!;8À;' qc_¿dA;9M9PBÃ+L2>ͳ 8L ǥw.o4ĮlXUDpEZnCt`⊔'Z݇E Xтsfk[̸$Ņg=g -Ƕ[L$3 TXrrzٽ_#`H7oS'MgRHʷ-Kz=߈M+J8A 2L&$eRb,H.JUX3阡ӷM`)$@mfEn$=]Kycnn35=zi;ϩ 1z_>3{E63qygiQأcB2gBpH@+̵Ҋ0A3h6Gqzl6sjZ"{[y /&׶0M䖋%'Eϕ?jdFN 6E ň݊en';.ѭB=CGbh;L+%ND6JJ@ yZU.wN,Ut'*X9_`şLw^^&;g/|4߸^< }ΏGg t1𨝣# gӐR<24 p*ԇ1P^1]dVj 'qM$"ty>-J1`@eBkWkF[v/O4(j:T ;m[?8-r3猿0$(880r:0鈌e܉0ҤlD5ekQ"2ƹNwv"fRVW࣠lf0tu6e)Z$|,di'Ͼy{ |Z)/,[S%%+gDu= )ʲ"2.Ԣq ϖp,8B`L iKt;ԙ{WYoBN+@d$PsƒY$KR4lG//;̹V8Ê7ovN/F]9"b\o[HLv Qm&,#ER,n*󽟓i,0m bݥVJ3%P6QIY~ߦ)銆Cr'\^4Xi^]]Ô{Rz1;X6[frJPTD_KG*0+)E/ѽު"ib|"ЃZ>.v mCVo}Hg}Q' )a GQ$1 ahn-rO^.࿨t/$mSاB9n^#wYpu I6o8HYE7Gٖ"ݫ0x^F>mb4`3UdAh~O .!nAźZʛ*cl_5{(aɓ7@c?V؂qNw]cD4Πfio~p ĉ.d98sc61U>9Ns4zsҡ]Mms/~QkpfAb JJq[?a& jţA~6_d6q$+fPx Ij~WVkj)! ΏƃF;x}Y)J,hwYS,x<>׼Yn G/$LO S6Nrॠ,룊1]!lz-j/-"laƶ ӷ+lA-wX%][kԯHA!OCm(O g4z@2{9wV Cܽg1U R|{rIz-jo}l㞂Dy5Wi*u΂ yZA"gn6#Lﱨ4 "C|b ,ukV#ZQJ*TA8rOC ROYv[xO3'jwZv(Hn-M/h5х>/5L&oqh-y]+"W|_g/%mj{4[.Z[ڄ[v6'uR$F Jvdp(7& ![͠WKl1O1ǭaq7}5:݈:xZ)K37dpbp"5"y (QI:8VqRQk [*}pn:\nk=P(/CtƓϹ E1‹U'7VW|NK5Iv,f|ޱ=ۛ]O,PtH} mkJAΚ]9s/Oe%}"Iu-2s&Eȷ@ xxCcxr:rH)r5݀ľItFOx/dt(+3r kdR%;NW9r|C TU9Y=q^4ռLCT!Sc2F ^ 26cm+{j@*+|^&Ǎ<Թn!/}î;v;-yWGF ayd7O,,ߤwC"_ !w5S:uєbP;A'%=ɄWzǂ` T)]7KaZꅝjjK^,pԘhR<_U&!/' vn4ľ*Eh?u `tbF$'~i]x'y 4](<\CnR?^,md ]h-TSprcx ŹQPf:[XzMcxYJfy^Sx7ț DM,!}ك/I o\h]I:꒜';=R@gnsӚҤs%˧2?Y@+qyN#jy }֓Br4 ' 8'53;%3=p*r4OBK..ʱ}%ŵL>gk}9r6a I@~H OզW_7V]'Jw dAtL±`|?"4q@Nrb*(:lWye M.KK[T})cДb BS]u/dd }8c\x1SB!&U5HMG sn ȓ̳dX#)dԓ~(xt ڼmܶ[ߢz5Dyic>y=:R;'=NZ֧KCv*VO{@'~4>1nEq<%u2tKe 5¤5kw@38dE[dWobZ : %WzWi0gf#` ]H*'L"/ӃيN|aZ\ݲ.]j\G P(Cȗ]߯Avx Oo]K|VЅ|lh!m,6mj;bu[AZ?7> mg)[_OZqe8ۀLNp M(hqhs(l[ոI\jET+Z!W`M p;BědglC,M !QWWuu&e@]Q"UrsCvxLmwI&|nimp7w~~TŸol-ZpY.]bM(vb:m ĻbHUkX]QKEĂ2@Kչ L=x\!ӽ(yoB%cd`ef^gaH #PLxͱ.;Js+QDXؽիͻ{>\:J|(\Ϣ5gƨp$CLQj-_Z̜j.60!5P&)z~&r'ɞС$ \$t 8QFIҏ ^5(TO'{8l(iWeVcN5)/erb9t\0%CZFRSOu%zhў+Ϻ%ѾL?Au -y4!S ÃMlvgxiKLx/'?onQ;_m̞Vؠ-LQDN 5ٚswNu"o:A V^2zŠ YT-ib{#+Nƃeׂ"!K|f;2p&?fLR°5Ȑ?f#snŎf<-8i;K5+ -TփiE1|bX?!NqG;7| Lg-津Q-j o>SI H[]W^ /3b3>u@vZODmt%=1J gg Pm$F]h;򈪶uoAb؝ 6b3%=p CB޽Þz"#ߞ0Pgy#DD]eKrVy;B6ăݥsd¦! cCmA4Y, bLׂegi2tmpR9#K3ekK ) {Mxs^Y4<991⹒-qOă[^a'B{oK9ݚ `tI_a*H@PAa1x"7ED(@lf޳[Q7%S_A(1j$>W#fQEVнa"mr߽6l~HF( ~4n]Tu;C75I}?ۚn_$n@=f+Z ]m(~&[lA\yھ'1tRĵ5j?ߘ0YZ\9nYF5gW|"y%W+F+].fgFA. u~sU1#{&Ksc̑c&D.a}S KRqtCvMq96Jbt1ʸ"O%~.yG{fܑ|"`5zVdOdYSK}@qk麚:Rd}WO7^>5 1AtbY.5Ӷk:᱀܌>ǃbe~NK9a퍔Q{gdB.FB沼qaӷ`nǞWcWl1YFpp4ѝpG)&Nr^OnЦavtӞ ./tFA"P(Tk5 i^M?4FJ=˜6+tHST>,3uc߸t-= k~k|HJCoIxN6eA/Co±;k.-TS\HՆz^M0N]Yu:s 27;1y{2ʄ(LKSELMFϨEq4OҸZ!Ta(.L [w0])h>EI{G$mpx}Pr9Y:$g'",AoU]8Lyh0IMps]œx5]mQhQ5MR{ C"7WX*pWi.&.k%6)MӖ~yt<Wen}!.'Jׅzw^g`SR^_~sNO ^Pt"g2Nn9+]]K>v罻=El U2 -` h^hCz #UD#}:x-n&>(x[Bó{D,=gKbEFӒ9|f3auT0|\!>AE =9K|Lq D\4eį".d$!]KsKv (!%)(s9ҀjE`Id/ѻ x.0cK}qNg4L , {Fy=8t8Znyk^IKIHySw$ッk{zj>o4w/ϻZaz>x6΂W,6+)0賚5t"BpSւsLJ9;ҝz{#]9!畟 }a*􎯒sayNIsDnp61B(I}̛ S`#"ONf癞!~DAh56NBs7gKPGć<ڹPJ\̰'Pi a!B^(M׶hԢ: OMyAdcP%zΓ#,\wpyUTpk a:ràƄE^z]0<*ZC #ķ`X ʑ䨪A\wd.vy+e`]/o]rgMrۻҀX%O"q^/6l`,W,ҷl;'z,%].A?񾷱X &> ĚD.5 =/Hw6r~0_??.{cYǦx}zl8Y5d]Aꏯ?WE.dcqo$>oY.tECh jw70 b>ڍ1]THgn цp|JjX(-XQݏPd@ؙ+\vMnY%VJSZ9]t 6>WUh維kȷHP!PekCSo[6$Tʹޘ~Tc0b͇xuh` iC|ŢiHmDYDVMGc2Mw]MZH͑C-b볍}B[{XݷoW' |ha~,ewFV(:ゟMey;Ǫa{} 'o/go+4[_O cwhO+=t:_󠇎`h ,Hn4fMGޜ$wx܃˦Y(rjKm+}\If <Ey1"]Y/]hW=9! 0%c=.f3_X\7 L?`L6c 1|h3C!e'#|t<:;]~|1ͩ{-HgT 5GC; PEWp{PF+iT$ׅuEHy\ݣYlR6n :G7;s"XT ݱQo#CrOZiSy=ȺB }(Q P!d۴nW=}ԛ ٷN>:[R_?ECxY&rw_aP㺾>aUi5:emߪru:8$-.;IYy-~,I ,0c mpe qibbR]s /n8|ysǸY ~!,'AC}|+vMlZ45^b}R-Km1֮޾ͅ"֯(_.fio;iqcD3ȬIhXtcW f1qBZBsiK~?1g 3=PM}SCkpas"$&՟Poe9%,&9F'sNinpyP|3pBkjE&]m$ ޢ f^Fq_!=jq<>1k}$1|L(ڰƕ5!/9] 9d.Wt##*; 0MZѢvgr |m^䋶_.]H`߷@-5 7I4[D[IB&lGg*HOCm ޽-DɮAI4-$vtOv?nԻZBɮ}m>ib{GiQm &‹|}חc.t8Ic"nkGլxYQO_L8~sm.=B#PӶ׃ h?V_VjZ!-U9߿t#sk=7aGC~Q 5Ś^"6 )F @4ⱏm;(Gz~FjQ7|~B]ÕFz "Jиy2e?gLA0NL߯l (K#?؜}9Ix5 OBR }ΪS7W=.KK而 o :"Դ/a=ԣGLk(?:8LYgKJeARt' m;ĉnQ\GPU0%R0 RTXaY|B .ٵ5s_"IF>nIBb{v@jqqD΅O?O(Ac-#p!sheTZr}jc+Eഁ8U`z5=IUC_s˖HUؔcwYas R{Y=5e@I&Uѳ52<;PEKu }.C\&WDE@X T}6%X[ESKRu yrL߷`wBèLĿsЬ/ͫ9g8GT2 ;?/0z~t#uͰH#d W4850ʬN/{&$fsX+6½c/ A//\%T9>gIR1Qo N&b{5/gj}^-ʙ‘{ ud' M84#EݡnvQLFlIw01QPe}ѣwPѡ,m\;s,<FWKɬŪ CGy>5O 8IxD^8 u>5Ba)`V]Xu?_gSԙ<Mi-zp 4Z-߼2D&f7_KϛN.;Ss')@a5S.&rǂ]s;iJ!q~\d;SkBXck}lOPo{jڢ p[$ ( C$:ÿKBvgx-⡍ }P]<ZybOw$G]vܕn0AW# +֨<'">Apl#l+CDC|G+Ơ}cڹ'>i1ſMnQ>Y/:V&o),]֬^f {f˓Ly=Z6#1⍡QnSs{=\ÆD'Nh}cA 3H'])0XãiFu-`Oq_ep _^Urg9/ +֚W~4zC K+32!V"پf 2ģY#R1 㨭 /}&@ȝWB  p; ^x)i5v ~Df[[. Ɣ;BSMCR5__OyôP;PI2Ucg4 n8xdL+ `@,3";B7<ghѰ ܄_u Y2'Zc_bh67hDOtWB]T=+xG(";f"p!>T*+М)p"td (5Ϳ/pUJgWfgv+z8r/lpB)Yb6|vjȠ*zb1=c)YєB$ D)'<>#ўUGd cqQ 룢]ȄdO, 'Y+>'ț?ZI [IrZ/  ["Xz«]Tݧy5k-u,Y[nI/#_F("(b.  H!qE0pn?v&Q"7u]~L6b^3&㒭iGR1"T1˟O{R\sܚݙ8~ S/Cnx \%gd߷_O-]jpͶݜ4lF,eL~|HH7 ؟.7h4 sOݾk8JaGk>@}tq `IctC-)wO86b.{1M{TN@}|5͖m񍙙5޸ {ϭgay .sg_b*ʐN O9p5*h>EmqplUW9&wTU]q-Ntc_38'&)Œ96&)Y҈uݱݗp#EVA,0Wm- t8<l}gTYl@灲ĦJrk2zm/i3-8#n{<4d٧3\8ζ@³LSYf5b&/陛Ъ._?$" wIs*rȯUb2Gy(MH{f}ogIk~4#\Q"UFt8m2 MG =nj#| hNު'sI^ֿ1#8bNh78ZSp~ڣJIZ2_an3ph7wE' җߢc^5kˉG5]vgYĸGpͯMv=g"|^a{Cҩ} ,?u]~pz]rtL:_c)&J^A!2Lm_[$-ldɵ=m%Ss>_|vWXJQƦ%Hms `©?ٴY/ߵ`oMʶkvj[@lWqflF&rk\ Kx؞l l.R4.S'ۙn?BEzO^F oem6o~k_[ڲ2#%3r+96_UFɊת ޚ^Gd^k-[2l,khMy( F#𹶌wmdSskg:05G.6'"OrGW,ZqoiBWMocR_侦Q07֒0}V3Ɯ*]ߙ9 ۜ/簿,>MWX[} YW4R!BW(6\hz/ꞥ~CJjc1cXp86&۷x(qX۾?HߦG.=xd;[{>tz̙ 1ar2eT0uXcu`r4^ 3w08DW'HqVac2HB@um<߆JTG}l'CT&Ii*8rl ՟м=ztclwȕTJQjإ `ەz Asm70x 2/P! \з&Z2׎#(yGE2\*GdNM$Ok/g.MLݥ|KHOQlR'c$,`G@h1;2\;0Be&rRJX7uR-xV8s)/$"u*p^ɦ*&<ߦĺެc(zG-’.On;%6qE'cCyVe^7~%RDji˩5KcL14@X oPybKbB{%GѥK{NbY_3H1  @OYYQU}Ye@L!}}Zn k:|DP`~m;?d@3D,Q1Aγz,!Gc',H-ua$3Iqmᙫ ;eлm&W-ʓ鞢|ssH[' 7bĄp#3zT4{{NNFosz"Mb.&/8`'dz(첦@ɏ7/qgK I׹kZzN7uNiar{..v98z/>foȍ b47w$`{P\^#bva|=JqWש 2iR*`J.Զ5> ,!Ք^{ =tMU$_F+ Dpԝ|+/. |blPxxOh+>e0VdE[X"Q+zo5񚝅v!Ʊ+Yb.ftyȒ/%aLA-P~5n߽K9~#.z6|w#;`X{qVřԊZG\_^9mN q&spR:k7.Ҭ^Dm YHߔvqnxW6CPrןBS CQ'S7p &18w!$M@9BLD,`n߳ }Gmãضe~5,Fgl;/ w\ :8S&'{2*{< fE@{{tdy }J?'Ɍʿ* Kf~X $JăqP>HKal,Bk )Z'_$2ᆪ4{d@n-u6&RԱ6xZ`2:tA!.j]k"C]CJ6Q^o3u7(1V<ȿ<ȿ<ȿ<ȏB-dX$eNpq1|lQ1axwv:;1״`ak5͡JtܯpRZV~'J\U*FeOE '3 nh ;l&֥,iA[\wS_ VA]JC;5.f9dwq%1I &?97P{ =E-Pq4O_ǿi 6&N>tNlna(f.I_ȾmM F7\`-1C< Tp8J,7N@8$M`g`/_863GX@/ c߇A{^Dp A.=s'd133(ɜm5޽Lw2O֛ aT@fkpj\"+\| ϚkT2>n|E܀5WL#P./0c rf.=jW !y]a#BU8F{T)Uϫwٜpg8`Szy-D>o{oxwLq9L:_<|4s*B+u_ߙȚ4oߒխ-Tñ՟drhb(D/ewv\N*Ĩ[t,'()y.bKLDhˡ-P kզ ),8Wae~섳_˱Վ٣F5ң}w?*ia(c(Y)"(Db E/qmGm}O4he)R h_'5N, !oR%2g%)L6}Kʳ3Xw{먂^7tٰdg[N{,}`IsK<_lV>~x_wCH># XÐ-PLЖz^=̯;RٸL/"=n'3 Xix'D篆$zMeLcx O=>~V1ޔR|p!V;r"ɑ[U!5V= Ȼ7ajrW4UKByG\LƻV|%7F cBR)<2ٗf6b(Sq ޫ !юo_>?5CWW,\ ߸)fwMxOH˃>3YDP'\7I%q5%,)gapR<'a4oE'*{\}K1R6!Yd y%ӈ4㪇(:dd$*BZj>qػ\}a>{gH8!/x/m`Qͨ8.ÒaC ⢌B7ZJ_vk#Vuފ3P/:G\QR{O u]/n(^l' qA`@-#zgz\@р:YŶ&9uݾ4+ةo4b+k f>^^[{]vUכD'XlغJ$,0;=U<hR)QdA8m(2R#򜧎ieII(gW3A8iW!-_-دSg>S=j(p,:K!TP9&E7 Ik;uvy!Z]f|,jh)O\:z-{xHG\EwqSz%#32]9TC}MEC9.jFLᎁ,if!I9'P8Om-r=0*$y21vJd+8^;Xa_!*tevKYi)s1v#"bcFCtMQ=qPcKS|Ҟϫ[5۪CI]99]/M\zxWԹyH:m\I&~kolUvX6\P2>2IH&?-[0SN #=?ӯYĐ M!Ӗ`^䗼  H^@@I] @ҹy;FR6CXhn9C:dMݐ݆7 xq gk *ȻChi0X!} ٷV^?W:.4[90ztr0ï@7>+WH t_ݻ!4oe-3MTsӛM;AYݶ{{s;&q;/ ??;89N\Q4Zys9RЃ܄T~v:v~z,)ܳ9uST9鶞/\(o_Dk?"PHĢTP(m+{AgYLƓG7!4$[I?q,BR} ̩XDh%=E%d67N3$ ,OhM?A ۳O!&*2~cTƍs.O_-J ݄0AHkKY8GWD*`cԽ^ /N_)s%gQopf>c0RwjP?o/g/5H'c EgCC螡jGa3܊`ܗ?x.{#dȃ1ϖ+*)Mt9^K`\bH~"k`%o N)R8ŜKe(PV gޛ98lon`m]*Yo X]*d@>@!T deodu'y V놜nEnhr[K!i#X>Qz/ Fw Ber5x3n!KsMGO,SVnǦ?R`@o">eh qRD`o'3 n .\h\"~nG!V^uqFPEUtEE"62kO~\'IQͲ$DLHx 8(޳8NgJ C #ip&g8PEt^;OQj<$ۄ9Fs ԁ cмy]?c8 heѶE&>oSzě]rNn$v[DHfn!t\VcL)i5WXYwq>>.k^WР7)5۹=n =NYbov7ɻ4A{z4g6dS%9֍M&731ꂹ-Ksw<8挊Fz&l1 zxW@;>Ĺj-P'4M̜¶G[ٻBrP2 ߕ TV/z L.h1oh Eo}6oezIs嘷u-)pG7h>7k"]u$vj*/t]m$"V3Zd ;m?KO gY*7sX{\}|t:kewJ:cp?w%&`Y`m1GW,ky$b#PXXZ))c1֖kvxWY|)Eazhs.g|ȴAHv3_'[$J>i^RDNuյv4'oqM~EL{EkTEM%\4Qa# S52阯]gG%L \J4Ï$am_:briuUj#bIg%^$"NH'WYa%wfZ T]B}(K˾ p٨Uk&YhrU3J#+ iآsq|LA7QHwnUބta{ȓ!UB$^nxã}֫쥨cj5BgoLw(D?/+cWڟp{9zg{d)">sƁx,|Bn- e$S=ɑDѸN&j_XŃHcPհ-k:\+Qf<>آ Yo;+.}jp<-uS"݀̀}PaHIeP'P$b$lf{c;$6'H-A@LE'`{BF reNotLݠ߿bb3:$IrP -,I@A㷹 nZ' PȻl w6E-gpp# Z@qQL'e9 -Rv*o>P@mRvnW,qn]/dbճ{F)U! ([:Kqagv("nrBgdWǫdpcÔ^la0,IxNpFqoΛ֗+Zl7j­dR{TvT/t;Z|`ѢNOVvM|?Tn`63H;\{هɮ;0'Z"d]i0jѲSx-i4J6h1h:0'XQvgɠN( ʨӮ"I!g2%";,';'%!H#.j RSXLxgyG|9Hcwoa~*gRDv__=V +V:[\}UJz{A1"y!cv!ǻ9Igx/ \k8>&};>ܡ o2HtjW:9[>s|(8?⻅wN)oRb٩>dx600w~v7%9UٹY8 u/ ,7lXPG8ZGW+ZPͲl.v 3b ŁFSĵ' Xu0$k2y_[SjFXn7R 㱃iꖘ}u9Ѝ4w!ũ$NbuVÀѤ"xqNȹڪy ֹi16CqwP交VVr;u>4͟/M7SiCxuаu6P<6>6,*bDR]ٺVt`U:ޛ\CfD?!OE`kov;H+˃VsC|X`69/OܛOYݚ[w|ӽM2]7?N.ZV{O,X¡&i!upjI7kuT%FZ2lJyh)UxhJ/ʂkQ4Y֍LJ(~T)KviipzS$x & b+?wM]Kkqd8yO=H*抽Hm{3r"NHX_MQKtzKvK$I0iTR#-z&%0'Mdo6p$D(cQ Z"ԟi_sѷ[:y:(vJ`7$>)#8 _ ~ߟ~AŹM;See^OSJȯ6)>?@Ao ⷝj-9Dxܙl+/ڶz*GsjM.A yBlfx/Ǣm(m?emTI/煿c/H<) :HH̿0y+[yv%ë>>$q'@NCIBc8XBMVWlK '&3/_xo.X<& mM zhS-yO 0gߣ`[xۇxw۞94=S d7wzB" oyٶ1(ھxl+B8 g@ 3lr'$yw% df[-WKH0->_ð~/en 0weeH4_Bl\,Jptd2}=]' fxx]8;&^dp^Wvzi a[cȸlfMϫTЗ_TiX^:^FG>U߯!yu%ؼFu;S$ B^_3$ܒ#OÓ~2=u* w܁}z>Db(r gz6^4=K;jgxߴ~sGMn`r.h(ۺwcr~˺lf7 S߸G4壉~[g8z$ߏnK=n  >Wtm?-_-i70[&om5uې҆6LƾkH[&8o`p##,Wg5+-} -my'M}׵6HE'4@86Ҡ!,d}J5ȯa@˰%I렽*8C`\~I_ܡbֱc/ I\^q=0u7I/ W-vM[⥕9eb(kV>*YF8UWS23g-wP(/D=?`xJt Ȟc e:up:\48S#rSM;-'ڟeCw'],Lѻ.23dPȫV=]4_!70/qB]kȃZ'gc\^rR9(O_*ee>H# ,GVrH9H66&Y]|t'S9U8F,sŨǣ !|~կy/=E!*+ 34 _+gOWգ?op֣6Vrމ+ą9#UO ~.&Dw✨C=CȡOZ#ا ?ߙ+.im qM&wLC[Ά@{ jbߒ6Wym۷0|C~%z?_ۗ(WC)x;]g(Tbe9|EŊBr?lN])wJ]kjў=aǀ*I>~F]s*8&P '0B%ʤ|gI?ڤDa~fu5m ӑnsIXw'u ӣd$͈/םOJ!|Lwgyfҍn#UO]f{,WI*$*b"KG#rm&U;o$eTIr6/['_=bSf~^}qC˨>ϝe3s㶏2s|<\f6 /MMu5xeD'^N§y}2ԧc#T0gu6YY5w3G>rs4d'(Uw:Y$Kp2N ~1!1 dPA(ZxC[$zo om,FA pi0L_s04% l #CAn mBOJZ6܎ő` bٷ(qD`Gpۙ!RGB x}(o7_z uu3GscDtS@ڽC=%O-/ ۚZLpaH 3㬇ׯTd]o<NIzgRk')po cWn ~us;xHtxm*j>P| ,1p ]~g0=W~b $,q=&]4>ocRُ^J1t{?⇚[t;Uv>.OLB}K+[UѦ,){ٓ#*pT)&xr/Su~ ɣþ^RwF|d%R5DNMQOܭA->Ǫwg'>4d=R[\jOބޓR7 Pء4 cW/D= =zo2UixI8%zퟢoSi5ڼZ˂*ҒyhLC@Wv)@t_\t؆ypFN~rޏ N|Ϗt5Đs8CEŪIÚ=wr_J?yTvQ=gE3mՆōwLf,vے$|gG PU:`$h ɇ}'c{H60IڑEpoR'>~"|ˣe꧊=-Ur~W]svI }A6Gz͏Wȹ1HQZhyOcoBk׶FazwCl]jQ*eG8nЦTZ\BO,o9h~sZQO[\s74[$SfҺ\ഗY&w|#Bjk8]|?EO ?Q1E) Qe~nqmHrMq*5_WgM>Q p@A1 c;UFevv@]ԅ6e>z 6o}muoS'!N<_/A{-G| b%ԶF1~ dO~H3z?D 7{ oE'W}?׿X,[97aT0w{ (lY ֯Fe~˼Q0U ۯO 8<o"т֫tywzFCA;8bUZ QYb: 1-]׻82W/+ÀԷ/5k]$vV~y6gOV Ծ@j W]ʻ: nUX0M;˫qlw 4_1]\r^gK.|{1r~!,üff*#-IqYsOK8F*w/pyhOC&O?P69H}F{ug+v` \`Jm'7F֋jr\6PZZk?ST{7֧)aW1KڏOCdd A5RepewMbݓ$q_ic]''9Cm:j5 cnc%33b;e M= \Z5ñvQqiV9\=Qxz&ŒKlx0ehPp~C"[(6qJJcV9`Yaz+>o01([3e0ߦҷAB9߂ ـsB#w7$dߔe*]!CeIJ%$_ KRUT¦ѴČ2OegzQ]gk8_/}BO>Jqs`CK8ѸYi6LTE[tNw:چ]S wHsػA|r.wTjh"Efkl%=xjiYC]1|\_`Hw pXM 3WQI v^/,A%7C8ڜӷZܑUuy˅RQlה+>ZhO}xb7J4q5SrU]mJNJ=lOGs٢xycey8U(BPXcm/~Q; }IjP}M6QQqr`^`9_§}&iPR>ۭвXM:h7kohf$Ĵn狋Al PL?k]Ƹf1긆q[==^̉ EEH\ϧ:/kͥH6]w k)L^(W68/aDSue2l8%WL|gxۇ~D*rzmJx 5^jxwYDF8߿0=:m#zE>j7si݅''+o_[Tf;{w+ 7cgc "%{@Gwr0qGk) \ =bAޡ<A )V>@)N= |eO$TH@&"P2 =g/ : QYEg`;J&Gh9{lׁo؂K&ޙR1Dq}YXcg|ovI˰>;z[@؂heHrtg޴S1tg4½A~ o+bhl`(}' 4ύƿ29u\sS&eulE0j,r"I+;"Ϗ\Er%8Pۋ|rp7FB'U7#rBeSCkm ;DR QBb4ْ~DPYVZLO4v-cONX~ݑ#@BC>Îy$G|';W;R-'ǐgA;G)7#TCfhHu{8oF=2y?K!_ЎxEooɽR4+]ґ=~!;ɞ~Gܯ G#{ gLn ޡ}}1պo'~_A^yy{}jgsD4w]t^z# PY"V,tFЪ(^0w{w,Z2{»3Ɠ:CKؤPPt9}Q6#y$ W X$vNgTyЯW:Y_/kOnKf`3*gr4[,4gZS~OC>NK{ dkŚA(/e=S9QKCmiT Y*:"{ԡ1DtPpBDZNʔjo@:}SPhSLh3/9za@Hc/liܜx:CrNDU!bLWzu[&7U.0oq ey^!Nzcم;^aR/_LC:f%VZcuD84"p#4ٴ4綘Ef>ޓ"z/sl./\kK.Ȣ-|SS=q2֢QuD*%]d I/,~ Vp_ymCٞimw?.Gn!dC`x?:b]`H`z" dP;(`tvH)"~AUIùfx+h$E๎T쪍WTDnD?TZ]LSTPiu&>&"B>WI [NV~yC]$B%=푶1$JJM^1M> (W)Tߓ[hrm00l,7̨s]ޭn~#9˞R|Nx[S3vebK ί 6yr)ح@4kˣ){ уFPCֲ&8\=Z~7TO4}SV?S9dy_(|;+9Ơ@|S|F}Fi Z7Yȑ(_ToCsEiO1#.Lۜ^gBlZ Fӊ]S/Ww~ba",|hZBYE萗Oc8l]O??|a#{$8Pp#N(A>+g>c x5?aHC?ōX|A@>@Gi9:(O2qMc9*:`rhq$%;n-:wt De'wAI%oAͨWR6vi{FisoI`ŞoT R+@U}Ob4pN 1b:eq\G5\?SɭjD2#E8eR~1h]X*DΜYA֥-ۂSUvlNH]y}15 ݿP/<0AkԀ ȏtߥOH3ڃk;x<5W#M]5=-֗o|eoXxS燑Oq*"Қ@mKJ|JBsj6S. gAl%6I^h(l2?bRď:~~0I4bFJ{PP&`GɟzdGHIqϟLA!Ncso >'0Um#~Pv*,Gv,@:<1 #~CX"&@w ?F n34 #WZo|G_:,o6tQ_Ur!W'c]!cߢ1{<ໃ&3oR_K"F]bnM9NTLԪWձw/accǁԭmoݍu oXnd1Lv%Ŭ#4\MD zZ,6y~&>,w \h[J*|lU OBU9Tz6׷`@Mz^6rj䗚nqxTyɩ&Rv}3t-dJS\3c'$\bC]pMAJ^&904 C{zUvsRfJg`̇(jPQ:VLޥ}YJ1itZm!\wH>^<3( ťQ8i_#Y\tֳ́HO+hE7|cS܅W ~CGvvUs)u1` ;"7(;e*+ELmmܻoњKC[n:3X8k&b.A*Z|BdZxw̙ 4Rc{S@3"+?V?{Vr+)+es{Z/ wnN9MGрndν|f?CF n]LMJ(3vc0Þ 1ZHKNe5jI1"Hـ?Á7M'=z{ |\}0h)  Z]QJJ̞>i$Cا4=?-R*mBT:I;mX4o]rc0d✂ybx3 aqΘP]*NؿP^4Um@v+DѪ dXva$q_XCX_^2l"/pbNk^΋oo1uaar$۶yiEm_G$.>QRn%lVdMSz;+м}N7\5S!:]| d>ל@œ!ˤYHV% Uu]7z8YGUS뀊bk&jpP'xB;/lHVml;!pȳb^ KzWzG8W:1c~ЇVG'1^";j7<;h(B厝e!dQ@O._ɐ#} ğDD?PQxHt WZrg4_^`U3a jՆwi.{󿂧4ߐMI[,MUXY;5V_1-TGaMCBztD=FH|Ņm?n&+D3;Sqjg9*Mۂ7}+'wUџό/8W/W|f8sl}V[\rJ <ΊCƮ,(sDJt*yۇHߡG?ty4+c# qv7lW_Mb,.mJo|7ʮeJZ_![v:,업r<*2ܥYaJ2Z$ȧ= ׋bϵe3( }g#yuj{UzI$7Ke I9 S|-ɔ&G [K}rl_šq̍ }7q#8GQ߾ /S$LSI JBO/a'{cvTwjIG!DE}8h҇@J+zX|1s]_| +~Ï,Qm0z n_93wR}$C#zH*GM>ڜgt(.r[tX3Ҝ<IzG<+E@YY_!g΋ ܷ%@q_h][U=r x;u7?~m9߯8E$:P}pl//;Try(CآN/XdcC'^e>L!9s 4]wm nYT>̛z29?%ͮf+V/F>1pfI.U3=W+)@.̆ih+t5jL6SNaJ4ybCU:sZto۬,̼b9-f喊*mH/d헯X<4rg z-o=O5 z vN[6qqRmFo8 b)ػQll[;/1xfd=:t3KPDγAS79Qt0bu`'Fm%Cc3^P+jS2'I Bն=%)<4b}.7AL4LG4Lw='O1:]gAwSmF3 _= 2Cdw S%7|/,pzJkK~wR?5Qw#uįSʻ¤͠ޔT[,e/]0%Inj[Ugwl *N>jWט/Q@ktr]0(le64F" é}f7,7lxHfn&^ܰ 1^)hC.r [Kgp^\D,m@0oo[S xar_h  OnMU1:r/$Y"tBxB̂p#a2r-1.R+BBbTC4y`lunKC{ rOBt_µw~7xhӥ7ы|^d79 =?_[@vxPeEXwlhNkXM7A0Ϸjwannڸd] 0ƍܩnV:W9<+5#qm>hM_ycyZj[ݰd6hCӜJ?ߴd3zx'W%muOC#*\~#_]g 8 mF(E8 tÎj(+D}tt0=OqMkGE?N;:rđ? ϧ#o_A19y"gvr~U= x߷OTGSXjXMj{[Btlγk{<[$+@[_2xS}K}gO˨!,͑5ʹ@.fp'0Q"R_R9\./ @LMh oZEJ)+ FCb :{zyL&k1z׼ vZI\ gNs.dˌ^ 8Mӵ*»+ySo u @N&S 6=@N @Ăg*UlaPgMHwJT"ah8Rda,nt: Nx:t 6GnB_ܳ NkOr5 JLhZmaviU4YpGϑ=E.UQ-QC#ǷIigd]@#a P$-+t R*$0(K#YYۜIа*,`,l{M|m{;G@gôBɆ;yO7#a\/d>Tu$>y5r[>] ";cNv&kZat֮(2 Y)&rl^T¨tȴף%Xs̥HwbډdUWY3:[:T>TxJtӥAG5L(^ؕ}i&oȐ<컒p]H]WR^x1/RUON y8~ac<3Za ”?v8UNO E%hP"?˟g0ã#'a-GE!<83N89DN'I^b!n4:pajB+ezCPa?"j|:>!qamvҏgHG >B@MbY;>Q|<_9 N:īwwD?4(5LQ4 h:{Iy{ ln?\+Y.k{}+]pςL4arRL.'x?m ѝ뒕A2.D!w Y3be.-_L׸ 쮆qEg+aWK3u{?ƁY Co8?uی~;k#ם_ȸӄ*:p\7d(oT%  ÿYDc\3 SpHjR_^]t=j ҏn*3(|U_O(a{ 1){ 6M )Xt&#s=89>{A#|.8 o䈅{D9ӣy_)&(k!X`1#HZ(77H3w$r ޹mFsZ~M9&7 |-.^1-vYU|)f+ ~|Rؐض (>C̠_ 'fPYEkzhؗUayj6D߆/hY{·yP==|L> j̨N+/ft3)4 q͂}_D+éc|fȠ;aVg^4ívVm\-2`sn`cw'ܯ}$iޑJb0,1I P!jhB}ԾrO(G(2:~F;1Le~HCy({EĢ?tH|رʡCEh>~g%G#ABv=jk%E,/yTnk]Tn cWécZSr\|Sx_ C}&}*Iåu_ZH;|7\Zkj6m(mH2He}ckѥ֦ u%@no9;H{R GUmЩ7p.e+W~Fl|X#9IV{H_!H1z92(RiZtZpć=sC`RE/ԥ s6*&טcƀГ8}wNYqfAɢnb:**~N-BXgܦ| p') 2%J*ӕ*9],zrC*}M*\4*Ղ)hzsOD0un5瞓j|2>i%$wOP|^W{sA=_ 1<vV.X(u-Ɨ544V~"0Ѫg}O{qHs k#{Kiݙǃ_|&]m>镕f9J]bo\dhL<ɷ)p{TV"6:-߿r))c]#T&LiGeRT|!oLE9m5LV]ɾ?crIUcB*$/=`Ux^%ȃ&"/h6[p|RPG#xՖ`zHJMSm!=y0٩*#iW7 4W>TeByMy4<׺!޼FY~)[ֲ<u9MzIz?4G\L8hbJ԰̶Įf,jڵ1Xq|'q34_W bgC`2rϽR{1?0ؼ|eյ38eMh6{5h4ȗ:ISm+%rww'%Yl"jŌzz}i 5 [Eg 0;^Z.cTȡNYTc!o b3zb`i#PAJ'ͳ|Ztbs\D:VC^5"bp9S `a]T"Xt<=-@o3o7 bb|n'U=\6~9,~>Ye0O&EOBSd`* HJR͉@5x4с'3TpWQ<6h<۸ Iuy?a kTE%1j@LItdBM#N<|,t?n+dtbNxxA[~>A"RCps74QusW (aӸGE p%1FZΟ%6Ѕ5x;* Z_%*uOiӪsה7.j0_S/xxLߋՁ11bLs敺40g¯>!mR2cPnb<[nxKw:mV7д ]_mYv]t3yr Z;['TsQ^+2v|JI=z?Ԧۦ=DJnW|i2,Ǹ΂ڗյ*xvv{vgH U.!m 7Q|NEs>_eqeᦥZ."@A>(zw~ S[jC.4N.פd!yXt1 4 SW|b9{bBz''C4r@#LXd1IEZP}M(A{#EY+kqAG^JABm0ߖ[-,ү\,`!ȴ}&'|)7v^ da\ҳ[Y+C N[wCD+x=7nE{ƥrWk2CL(-Z0k|;!IVWU: KZDK(:_B"' QN\k =|hoX]N2+Ee&b 5?v{:"ȜV@kfɳC~Ӓeɽ$ Cf::87Dj[Mk@??hHcNI J>/-_ir߮]r_OϢ8AwT a?㣉't]f!y4}8ɧ+ nT?\Y#MsЋCnJEſ!GZHsQr4Oo>鳏~2 GGn1uI>BWHuW{U3etuE~~ᓭ?pz \7uV1sr&8a87Y\Zzd<5`z1l ;y#ɶ+T!6:|<M|rUӞߪei,ϩCQH1EiUw~nj̳m\}d^9^7=*OKOɖlg&p+9lĎ $7 C4,T,M.0RC[ z_zR0ܒ穆epjT@&::@4jǮMdXEWbtJO]y0ʼG|;L6*EdIRߘHHj[|{Ĭ s_`U^?3Ορ/Tep|#(V!°GWӅ RN*`en/@Oh46j.z \ Vu6E@IBs_ ~ AJ+bhdKQƢץ^*?Oҝ~ ^[g6weuˆiwz)myTD/1s#-gl #}}'YӇdAvE%Dt/D7[rIExMC3@b$y @8_R%SU})S `&ݗ/_sF#߈RBu&\D {pWGQ7y]4=k 9q7PՓ{ҷkDp{2g5[>W'l-\[\wp?M8#0BPL N +\](tC)6 b9 \ Ij_؇E $N tsFgqK_%荇M%l+$p|hi~:o0-&d@M޼dU&S@nO'dAz ʾr `gݿ/CA^,?V7x Pボ]R|{(Y~q`}{?>=+~Wvxs;θ~lצ-\-fׇ䍏9%hnꇱ@MAfRy),% nebd/F޳ ϸ=rGgr#/^lTࠥJSWZo[mS/= 8<'}-qN8W;ݳKKƆ= 9M;er^ &`:icq=sSBxOQxXYtĊ8~npE_ f}!$ AħlD(jV( ڟ l\ x|-ml6f@A mBH ('&p5,$JU(L&Fr],slUQoԁp[@kHB Eo¢SָbGJ4|MrCYn6]0}=廹սǣNvb !6?j㦠{ri|qmC诶W;~w{T .]:/4f CXzqٷ|u t!OUF'"Pd5iQn^&wx{B; (k@GzHW3սQ򲻲A[p3L*l\Qw.PI9vDNX]=H˽ݟ $L >'KcGvA.C^pW@%gKKr~EY0I] ]s`W+T)ɾ4{Y}ߍc;<#P<#KR Jr.^IKOCSӃgV)"ou΂|י3Ѧ)hOGb$[O.gwU=بsU/#o8t؈3GكFu}_G`{1Ve|Zsv0q $j9Cob^zI6j]f]@*/ TW RQ#!Ồ; m' biP*` 6ܺL3QsK7ςs 0/ѽ|WI1-s:+Fơc-7C [B9<0jgߵ-s ?](m+roɁ& V5d̨2ڻ:FN "&>Ba7`LAMjhTerk:YjYV)Ѿ~ /,P04C!M4 (C1NQJ0CWd Ht rb.\zˊ3#m06k & -hDa-?JA~ 2" +oQ+d'Mˀ]29ܫ-G-i H%w?sQQ_b ی+XL)^y%? pq;WϤKKe"6lM r J\M=WDbt{`{KuYܲ*a чkhO~^M'pzO MaxҗзC<p]c_\8^j.;!5Q~EuU]lf}ҳЎ@pFɆCn}KzaD[^M>ޱA]>NKw<l 𚂩.L;h];yDy\b{(x@@L9g\j뚖ޑte>jVn磁77tB( L/$`Z*洷Bw>ЈOY.sNe4pE?COÓyqeFe9E`ʽnt|J^Etk5ƚv%VJF pLu\ (Ny{}Zo1w˳>fDxa؍*KN>G_9?ihϵEͅ%}-j?(ٞy5t67FIE٠:_<0J>–bNEc"uRGd|>y:s?Okvr)מiEI; [n9g:ooQj֏sD9T3gBd۽"+If)3#e1Kz9JujxF)ߓ0\2r'4d4:n/~ G|$z 0;C;1#t3&3y3\<aC0i1"q1%#eJat;] N)2ɜtʈ|Z7= #xKq|a/$G{c*\"^}q.QV /H6O8զ, ]75޴_C덥0^5z.bUh-!ɅA8>ϻwO?zgO)Oī_p] ٣\u r^NWGK< ^=ڿVYMx$J};~.ENDI8lJ>.eyԃ ٣׿wu/y\)rbQt{+.`T?=G2ҁzVuyq b&ҟcXpcsu&}Cغàf G‡==ݽ/Bbt. mqJa̴Y!z&p'A]{49Őq EnOx6ɍ?_F{?7_<}ͧ}q_S~@aǏpoǂ34&W 0FCIR$9Uަ ׁ [m"Ԋ@SAN%,3 jdD P'E(7 }:'^Hh /75>`@Nk@A }|ˠݕMsAC\kpVs.'=(?Z #Rr b[n^oƋBF Vk5=. F4'M;d1z}%,l/%ѷr*u̬ߦQx,{Zuōry}}P=2&Sgkߦ `bn׬-iݿ>{}~A 73QW c=a41ѹ$cBD` rA{NbLNAՙLıd,{_ĝ%ʼX-!oWr)asƲ+ȍ`xoF]ߞz"(r\DxlE$ɐ|erU &EU'+puu:l3\$ -k1j5!ȁ? xU {e\4p>|k켧o0&?urzq0 }̬h&iE혫X[ I'>L[0b`7G?'tԲSF5|O;uW YLv,.Tp[KNUD7#Nƒ܆ًWRCT4K\^FRrL.1a"Bw9>ۑoITNXrHGlּFG$Nepq\H~=QC:3.ެu9RJ^.i+D!ڽ,6ImZkd}?j{z,./M( _??HKa+Y09o6GOZa:;RSh#bQPھS3HdA-N=LDF%j;v$Z{,+ RBCF%G\ȍi7OJ]uTHZ\ika1oICtNowPB 50-[9 W׳cX=tjP<%qЂ/ⓜ{9z=:@Egmdݱa5Lqn!H/-+fT6Cm +(FO"Y=; $Rya@1.$[Fc>܂ [QDMHEz\Ng?M5A- ~t.MF;`eQ㌇Q;BSf/j;cv\q)b?5?Z1Q(&Q)!I ܮ?$ F?ŷVT3pm8*bC @iTr )e64Л@Ay)UfɠW".(Lm2oVʊ .C16j6@mj V[Ç`W̯2wkJ}2 OkL/7Gv2¶I;fI$[qܳ}КzFVlӭW8YZP__g~٘/9"_gkEɂ˶5l]Cζ?hg3 08uW|#>.D:"Ctrw#SyabIicOɦݮ{"{Jq:@u#M-Ou>|Y~IY*:JX:'ݽ0Y8ΕȞU 2z=+p-pg ¡-Nӑgh-d{o9&2u4vt AM`5tbXxBr/&;5sPȎѨ#\_s0E1T}3S ;.?n5 z?`"p %q!&3ΐ_2اʂPlC/ I[[Ao:1(S}bZaC|5XV1L_:6_c5f`Pđ H1FoXm.PJE 6 yqlv:qc0HX=c 1 +}y2,%yeg30I~i&oW& i?ZbO4f/?[bu m}CMuk#1o!WvY#_̮NՐkn'G6N[='Lňy#?P f\Ͷh8#U5G}h"oǑ:vģKw?V$]zV8,9DE!A6?:'FO\E 6-t:F^Jt+ErJޤBiPM4ٽ.<Z@ihP#v$M|`rC׺oʝ Q1J gA3,}) “u.QZfU޸ cGZ erG/ehy=b:ǎk-SX*o^LS60XNf\DFR5L˪3pH"x I{Ek{k:7NvlAD m_}܏n !_:XȀpDxoӺ<)'?6{a0]s}pW$Mx8Jב*k|qw҂rϻ#%fKBid]j\'NQsu7/z{R5:urچ>?-ƋQ5zⓔ^?D >q ?V{)J\tʓ4 &__2^"3 X.v2+فOYi(4$i PࡐOILV)H C4ԦIl-ު5Ͷ%58[3N&)7 Ь8 e_Tu]&֘MA'7RUP&7$ }6hrغ@H΀2b9IIK1"8pfR´bG'No**|'lgS&|Y' S d4ew%Zb GҷҰ釦݀ i 6 .*qkn,w ?9,/"3`~VǥrZLO];G#r^!h WqFݒ 2{xtߝ%7|v o]t> y_?#Q1GX*p|rv~iJ#\wǽ'7*2[~I⑈P4E~[(գ`ܒ{i2~Y3=o{|硝"h OG]UƖ5ܾulJF7yѯOaJ#`kL$# ?zo#)t_90  Ixa֯P4 0 sɦo9гe|j'c|Ehz}VxZmz}f@5!7J~ -$99 j⑅ %[5~V[1şM^Lˏ$8px5k84/!)bͦp~ٞKa~?,ֿ l]G/fW0{`({~ A9ZbVɭL(Wv ;өgN$cVag+ SV0KE0"&sN kU>h =ꄫ]q{%n2Ac)ă;W;wg{"oPݠMiWY\Rjc:1[8~DP:~n>x'0DǨJ=Ŗc6ݠqoy7^u=%ΝAyuuaY5v봫id 崗M-۰-EeCzC0 Fnȏ2C IH쵴g3ׇ+\K .f.&tĄi ^qBCͳ(̎SME#w7ZsSr8˭RT=VlMey̽O׉'#Lz2:^.xT`-/v_ur ~i䋵]\}:|\ {I;Uۑoh:j *=E->EI" *dz\[0t ͙ҟUn9N;ls/{>c2݀ؗ#z< /'} c& 'mvK۸:k?Vcw=캒R);'+_=F  txbOM˼'*^tIw#)gs^=a"!h@Ѩ>Oڸ2nfðlsLQJrdޚ,G(.V[^W6EW?gwҷي /b?C-WEc(RF^PAQD?Z $Ql}icn+rdlsU,lXP2| 5\c>@ʯ &fIa)XAMb(W<6| Û>z $'l \@/ M"ԮFgĸpK ү{C Qůt9v;ՃtxoH@U:,C%4r95Aߗuk:F5trOQ }47|Cg¦}kcBs?;&;cB#m滕qr>phZ?X.RԪeSu\.eCDq={d[BBBCH8ąWjo\dH֠S5TݱuNӭr".Vv[ɷ޹(#Nsjje_DC$+L9X3"{[|Uqח{&/1c80*{*{r&y3p=/s=+=܃1&[f@UhwqE(ic+# ,!~Zt`թCÃ`w6M'iwy8ho3uX`e 3f wu*y0ϊ74^;|Q t)}޽F13rh"^ÖʄBiVgR#J(cX˄>H]jMIviyP'bhQ3;򔧺;|Gcgǁ-E;PF)CsΣWj'%O:)1y-K WX:@ F +$>ؗo4"KINuZI+")P2 &p@QMN"ɷA$ +r(4X;@z_I뀂uQ"`E R CmФuP1ޚͣ[u&9o?o[)$N1ٿ*TYXGř Px IBѨXOP"V{@+DLTn׾?G>2w?5"BQ}np̜yV>%~t֭0g0g殮m$ܔE-c Gk{Cw pܯj W2,/Tf9aQk{uˆLװ<4/ pؗê%|$?hdgx|jUV K3|:LQ:IbX5{S'2F[?YvB bP1CH hFHt^K[EnsV#`寡vdO:)P݈MTZr)6WsIfVL2IoElRvCH~]1OnA jB X (h[ %=,ruoV7PEH#]6SgQ+[oQK~۵+s}"@p1!u齞>ˣMb.U>;ՎTfQ^Y"K|eERGKؖK]`6L$AA?WB%ƫ)p3S 8?HY b#8ڮ?s! };!szuv 3.B&H:3G2yz3=5ݹ/S7 V w2?|SnNDxeѓrPKg7R: pip/_vendor/certifi/core.pyuVMo6W :K-C,\v"@{fB9=wuR|3̣`j #u?e(ʲ,;] S^];4zR(΂qMzq4J{p4h -*< EA~\?w= F`k0(ڃ C}ͩ&|"ԏ_~_/YX~~xk^-vpܣ}@;_0z'3zkp ۑpT5!3righ2'y- Q ~!4ђ6\s ÌĐƄ9%OdqSG%,`I:V?lP,r;IM jgV8(T-[yLDeOw"ItzUmZƼFO+^YBcPqVHuuE4g$ԡ|`Fr$؊N0eQ} yetERvZR^"VO -ޥ֔2# (Ч9R:: a |l5kսH8 %?0{)yLoG5š+h݅–L쳭(.h1"bri&*YløF\zSAU}@:_e#.P-_AWLtp~_,`W@ΧiSqoU ?:D{֘ uk^e~H9Ĭd[c0FK 6TL|*j[/{A{g{r7dV/e@pu- \>XnU֐ *Rh]]%17]-Zr/}*RJXe;}Įi*; q;d8^N;th~!]j3b۴t+ܪW3ѿ6v]~QHw%= TJPKg7RSpip/_vendor/chardet/__init__.pySMs0+v!0!^IL)5 6paZ[r%9ޕ1P1۷nWm(ȇ+vS5L!yb /$L”k2g_ȔgݪD *4Ȭs`Z- T,IyBOPh{z)7F %3åtn~DiNVnj@'5mnE#%&A*9*Y;@X,/ý7za< YK:G(9 SU SqO] [ (x Li\F&d.@؆VȻ3,$%a<כ^M G e_=̥xh%> ixRf%}D:e@ &~ԂC0R9p%oqONO,_FdJ&(mߋR*Cga%%SʸͶ7AK؎l [,ڍ4 !ݜbު6ywQmDf=p;kvŃi(%Sݣ*RjϬ %`ri7ri'us\ܴ0RߕVkb&/&RRb6־^w: 9\ǿOt fzVhߎ~\㡯- . t70gwq3]C\j$_PKg7R99zpip/_vendor/chardet/big5freq.py]%EWZ--%ѽ3SZآШUI*~y,j{a].xkw?/ϟ|_}?yn~=no>yxyݿ_zǟ_߿xq{E烛w}}|Ow{7ڌq͋?_?~|DWǻo^njQi_Q?[9#ͷ}ٞ޽{'>s 7CmyoWx=|}ؾTwwۛۋ篷ǻo/?|x_y/c8o៿fMtW?E|wml?ڛ1Sёl=D;xewOZb{ju{c/6C} @ ھ~~sϯnxO˗<>ۿ~G_<1Xlǟ_n1O%>O>'Ͼ믷Ͼ|}}gO>n_}/m35g&||y79zw/âE~k _=㍏cB~x{xV7Zކѿv%%:>go޼(>RK˶}u}şn6aϿ{E_@=N&6W?>؇?~q*~x?|/˟?x/ضm:KT|XQ껗Vϗ^qKGO^>Y4{4o+_~i`tFi#7ү??=]PScyf?l?SӁy77?_zG'_?{o=o~!XO~xaQz!*?'Sּg_~OǷ_>ӧO݄,mtyܖm6zƏۼ}{m֣n2oQz|VW\۰`ZgX9v.\m9ZM[xzm[Z8-Xc8nŝV~</Oo%z4vk[<_ᛣ'#&g}ɸڝ&k w->;ormćob{3s6Sy5~ÈY~Yt5ZcFJewgz"0Ah7Xc'}#:w졸Fh|y=nbzzO8m?͎I{o r1hϷigqnJtGP?Îӈa;)Q'lFSQ&lЩ+9Mh%fO=ºK=cnig7j=mѷnŒnl1XRb~ce- >ob[cVW1xc4MwTka{ktj (nK.;5ߘXk+k1U0lq>ųʁg1oY4ڍnӝ`ZX>AW [9<;g+[gC.ɚ]ij04&9v;4ŋh7j8n D <~h(C)|'nll9YP<5<=mFc,,ř]y`mT4hnßUKL^%4V+1ѱxLky.e t\ˍs/Z7-Mw1XXGkxLP[<< pmL]n:-:}ӈ;8N˷o/0aK"b:IJupf_8g Ǣ2щpH. *6C c5u,T2XE'[хLj@tgGc⊩7Zt0:οn/AJ$cm,&+P}Ln- &T ;uΧ[(A5X2s0=SÀ}4&ǣc 8Lʆ [vT[c@aD }t50qC<>I,bVck.\=%1,=. 0pCupo0HWo`n"-Vf #w GLf#a. [ak\5sU=d1N/ijbGFX؈CþV .)tfJN> Q0ޮy\Rb?tly&`T6 [Aߍ\91V@ ;OOm^" $Iw6PV^9fvINؽIv K 0vp5/g-ǰX{!dZZ(ۭ}|.iWOV+:<]-Y݅ݞ:C' !pI&xT6:M6@4cjwOcӧVf)|7aHܥ)s$NlU C.mA Pe5p}%`&U*1D0d?u'|LBt1 B5%~8%l#V&/>$60ğ 8:0i70,Q=,RXmAwvRM!|LJ2ü+2.li^y _'omĨ.c9`@ ĦN6BgFd(i ,x2nE sYqs}lhݛ~]OdF= \aϞ8-d ˇvmde'#&-ym62𧮹vćY%%#(|L(+hRwXMAd pUu']ǽ5ir2 ɗU Ezt|KI Y7:$9nd. /1 [9 wtVOJ Mtv $49_&Faڠ3p=-M!|'reB>6{$8X#p d +.y(nM*,(Lm莶R5<.JlAHA3aBAy,ӀڅwH"nb&:f@r8A.Qji`i~c`d״.$/۬KL3J2œno ,2}3qF=uNCAzDj1R4eFɬ&āG@{Xj*_p޹\uw ‹5K ܢe,$[\񥳄$cF'U$^'ڮ \R/-#o^pX[@p^.[%70,ilp<7C1{7W[ \R Xmj\T.4">nH ةlW*J qm?7&X zc0f-t%]K<6d-Z.ͳnYWe'TJJijAqoCF6iR!ἲI|6Nc ]2YRE#q$#J ܋OC* #jÍRhYK`bc@e`&țҒ%utSbM&Tr\;'A@`$`\Ukve՟Dg%pDpѐ"N03/ogiQEY \R#2Ll#gcna=S/':|Ia|b؊%%{끉7A)"|Ә)nWY#dpL&i"1I\Yx,'3q|p YZ9l8\ S(l sUs-HvA/2 .T0@Api ѽ9doJxpўv6W\ EVPb 'PTbHs FjxOv'2ECKԂPş-MϺLwőRcW3ziLOBTؗ-a}  \Ҭݚ sj3ϥ1G] K BQ~DKrbtb x`)ӡ$۝;v8y3 */g M9%uqVpXAbV/3>"kOX*F0].H@niSbS ;SE@ƽ\—ȌSadpc `N\YϢo)g5R$u'!c(C h nj ެ 7Oh7CU_Cܽ W7WjG:`Q83?%fk,D"!HZ@2 R;M[IFE+^,8@Q o^Z,>=[N[P+$$X>ҞD].)v`RgeG3ȊǬ{3~|;4%u~Du5fK:x  P*R;W ~hƴ쐓CKw: ~]X4GD:v <ԭs9Y h3|ʨ`{46&ƄKJXl3S2 HªGi{"=+N<:xW'^`pp#G ytHp}ΩwM`WPl.7u ᰨd@CrZE:4]{MN''+T Y~".AP?t˂:X( Bnj 5*:/!98[Xޑ2"'=I[`0_ #7<;4A: =4t0봿k \tzcBA8TKlc @{]  _3&:o5G0v—g]䑢q/80ͣ8KalcK ?%S*,Հ.NX3J ai@wӉ=c"X Kr`fQ02ڸu`ݘ{/YꂊHlZ`ﱑ 42#%m. M?5IOړD5NL\Z .LK:b@*9 X ( АֽOfjvսVձ8)FP2pah E24]&YϼuPy7} -&iWRsCwbm7%!=Idѩ!!xc?VHE+[@KiI+bVvߺe]%n~Ys(8X/plB aj.~ZE~`~F86qaΡ B)`+*rWK mE¡k ġQ]ݘvUbYXL I5 ̖aY(t0iU,\_ҥO9\d?`A*j17`M'VI3n5 ^ |ue"Oo"ᢅ.$J|kz,Ƃ+nnk uz,<-Jo h HGtQR kG1[ LQ7hѽRrM2>^QFcNvvެWKθQÕu.*n.5r3Ō1k]YPUJTz-5YHVzBHGM>R3u`e(65]d vCEKE [ 110A kTs:-zN .h3/yP:1IJѥԬxS ^e^f"1 Gcޱ5-E1ThZ䄫 (pICd|i ePOe >d"q@ I?n}؋6ZY6+']xt+OD1,`߬6)y6A>tu>ÛtWtmfkԇȻeaPyC\HvKNi'[&PSeH),}_8ǸY54ʼnc.(Y,v}tLj3^GJ2MDŽeYE:Z5 Pؕ0͢^ĐS"yp薈u ֨ X//Rgh\GӍgݿ{mPEsu{DSP-Gh*׭;U~sT#?⟚G/mRΐvٔ۫(Dm_Z+*Z T"€Qxv4uHJXhnM̩41$2Gr3S~5vE_YT"5X$zn#((0=NR,E=$|KEZ,5ԍ.TQFA촖M[u 5z5"rVHVrd]'?[l(Z+A U8ْCnqPPY;<o(^Խ*f++ \u>4 mdAgRl\fC3MI~~L{njNJp.޳{=h&<I_SH>%2%71A kʃX1j2&y4 Acm' Ġ+=\7u ,qK|6-Ԕc~sciBdHSV!&h_jv<{8 ?R#b޿Aute#4 $!A{Օr4"v]HILa w3TpKMM-X7wY0e7ac(e>2w.(-aGSGo6I0$]uQW7u;cM1Q!ӕ{ M%zW9,^s# )!X7U^ w iSY&OQIA=΀}O"Q,DY!ο\$済v{F 4nc;V碼aD)ϋ4t$fX0Z K<<vRyt]:yZF !JjQtH7(!n^ys**ܼt̓WEP$WO=1βPGJ ,V9S>V5^5uҞ˓ )$Uj=O*_ͳà5qV)9YM58>i`yQ6eT5uU~B'pG7]eM 8SQ35u)TfHT&p{S O2߯vїS`Han(U" auzB0pQju3ۻ S]FGn9Y4ty>ݜ3vaHS RQ2"Һ:-{,XLH&b} =[݃߄%.of5#;<֣ܩ}S- B׉L#cuU]N/|֮udVRAXrYI #گyܺ{2r$F)jЇw HoYy`!K6O Jaumi^@'Hݫ%^4f2۬㫅=x _e6t@5klJV~4QPݷt7ʱkЗ(螲8dYC-:,'M YI{@:l̺J/7ɀWdW'˼lϹ)5uyۀ'݃:h Y=zh cIf4%VI{+^b.jncV L,_]p T[lth㪇@4(@Y+μ#BVЊjX9DHu$"qsFo2̔3r {̦Āl7xDW~9 -0X!ը ]'û6KN IbT]`SuuLDN*Q^% ƌ]f8@0Q -gyy5]|r j3{ю|Y0QdY>)<}C!ka+E_ƒǗ:oE#oI'o9bܲ58<ӄ\_:um+Á@ (-9R&M>*~/uoS}@.OՇs5<:kLvp[r_tuzXom RW'v1tF k@M0]:%qSW32,qKWTY 欆дCLYGZs FWv e)߬e|XU{\0jP@e!e+HZKp`$+^gH{^bz4a3n{@ȅ* f&;x,tx=F^.8̣\^4RtiietyCWño٢VB4U\rti TF/J б|BwKo%"Gѽd%yt t bZх1vRѽVdH[Y|qHUz@n乃괄mZ9ѽ]a +Jt|y/ 1P C3k"*׺qNduD^ͶK GQmxo~/:׆yl0CzKzF\B[Vt䀡\Ǽk'7deڕ- !E70c}6\S~/ @X7J6Ms*Z<צ) @%$Fۅwнzu:ܰW 6᝷gM N|x=lx9"(6]w P52譲]KZ)6j}+=UNR_%5uo{zĿ^G{utd= 53܆k$H(U)w4o:y27w@P-CF廪r B ߵ3Ӎ8Qxޣ{ey̸l y1'HO.9pI=x;<O %@ĺy,p vH"싒rՂg.pRix惔{eik 1#czëMe8)gT@Cyd讨@<3/dƉSSG'! Gfx;o݃tG$Eye=Em,:vz7qT| ~ {m3w~nBazcMRpl:n=KOW@p^Ka. >y+Ur[Adx}6o iXzFAEAӞp7xqȗ.O\Q)wӼ|4"er}K`82{9z!gk$J(ƹdKR)ANF%nݸW %˜ "hzPsIg׺A0fW^6x qcyPR%Gs7^kMXL"};Eo9J@-{>+Vgއѽ6i= wSBm|Aԫ]J‘ܦx.|.zZ<dlAS ~Q2\ѽ6m3dy]TQy;$ڣ[7A5s?{m<8{$D*V᝗*0c,IpWWMO0zJ~gn~ت%iEXa{]i'/cTH8 ׽_.o9ш ëao9Z]%hw=I){34zE8䆁үm7Uȯ8GnxJ@.[`—,?}cOvM{!e,̮Nq/u\Y9"AnkjIhWdH>7Q(OgwPxxzqK=jp M!l^OXWb1zToJ@r6¼Ϋ]U,ŵ aYF@EU@g RiCRwzjf7݅/?;y_@#y^ݤ!P C5T>r5#C-Gqe]WD峼g\l^L[=x:8O yID`kձj'kbdbޞ%Js~ # ˨T< !LƝ8oΔup%&].{s%>+Xt}sjCޕEo 3lGr2h<$8G~u$ZMgXUBLذk+]fLޡ0#:RmkFG7wx )t+Hv B5S8/U ȥrA~Fy4Y$ '܅>zrs&aUι<|_%x5T jeXV+Z+{Zg6 S9VBͭ }}JrWxRoTᡛ+- ~_e_ZM7᪛kJM)6WqMPKg7RY(== $'pip/_vendor/chardet/chardistribution.pyYmsH_-8q^ RJHL"$V3~ \jTlfz~e4[tۼum_}-G jr$}ۣ$Kϳ}2ұuIkr S>Z.mRK_LEHt&[B+Ǟ |4}FN(l-\, bV2tUcM"U/.^"WL5ϣ*%¯Nr:YPW!/t/Q('tBء&B?>?LAh 0T0sl5-9OpaM!OW<4]wE8QK޴t+vJ7!Ns?x[_ MyLזjFFX5 yU #tV.ň% ÛS^XĦre9듺$}; q9hEA3%3f]ߣZ>:Z4fINK8Uhz޹zmo4{zKvjt_WZv^& 413+9 `IWh[z*:ܫAϥU͎`b/z?2ŒA_C }eHK !],o!^% fѻVΪIyJbdۇ'&㣣aL,f#(~cqG Xm;N8nuh'|o^nfi^{v%M;f%>=\Px)X>Hmy"WxHQşJ}ǵ:V"c;^C g*vu]լ޻N}{MoZ9;7~n=Ի/.cT]ռeyW ɲ$je~ gөDk{ 㷙ˁ1S P0IBemeZ:ՊR+ņق"g.E2I(5I8J#Wۛ 3*ھg=2g\^J@B؞3C}at(]BDy:!>zt>'QR4 T;k1#BcKXO,r8z1EYnViTmhOTq.܊633j'@ pH9гGP^ Gwi6Sdh\973V @4lO6JP m͆" 7@Al2̈́|pވ$.(܅(gl_Yx(kL\2*-OirQ!sj'.+z^1x@D@:;,4"jYϥJ-#FZ' ׼]vRM;6JKgƹV@njr&Ҋbax~ٚ~5ʮulu /= D)  _tap+]z'x*KX/F0jv>a/ph!e&E~)K/Vljx[f4n@_̦NPȂdY],nnEeϲ&>yxp52A8`Ϲ""STNj)6@[f<ʶMA[X VD.'P|:#edIsyOHy*6+gQ&+7 J#ӜiE Q|jbrQ2r S1Qېe{qM):=JxIۙs\di9ޖpn5TepUh&ו7 Ļk}'VՂ ]2^,W˟]n87}{4`]w3>YΓQ:Մ e4(W7NNs(RJ~]͑FF5Gw2#˸̣C%,jue`6e-OkS2]'d:MH-Ok'3Z[l;KF|IhS z>R*{<ԗ؇zc.^g V0;|* R4$1/d)_4BԪ}!q@4\ы ې-`t(xW y.? *%Cb3"jfbc뵯< +{_}coa]DFy/h{4Y@, ) b6Ƶ)1oS.iI˗9D(iWh里^A >z(]G&dsg o"vgчXIާT>_MwV?&(nOwo)PKg7RY$r)pip/_vendor/chardet/charsetgroupprober.pyUmkF_1s8Gu;g/Fr]JPT~)ȳ3>̋x? 0yFP{ոaK&BnYͅ`{%UQZkC-G|EvAE`+0l\IC?NThdCX%)UL;]BWm,4{й *= 3k`+Y&=%櫘lwr| 7@ -Xn'_iZȾ;HT 1&'!,04oUȣębR:E5O%SxB+ A`vf6RGd"T;@NWԆ,-Z7u;xMT ]Dze !)7j+X!X|pu\@wߺYwx#_RN~C46!ܟRDa8.^p10̠ l1-GLd戅N*GUdqa_6r(`4" %iR z<l 4ޡ;.mQ^ ~`N@([u]mt7,uǏ\*WF<12U͍T빥&σ NHܯG9ijl4`']v ,5OY=$ I 1Kqicee|.`kqy{!3=ړ~{cUx9LM&"E(Y(a&_FJy)%|+(GȼtF1ߒgۜ~Vjl!Vjxt' .}4 5?>h)(OEG-h,}/.oԟ~/٬?]|} YH$7I$QiOelpx|N?[nng7 <*71Dx2Jm_FG4] I_aO*@ߒ IYD<_dZӢ߻C|$CEq[1N3mMiwtn89O2+4jޞ/!5P^ggg~ \d|'t#^=#nbpp!L>{8^"$וm" [\rC~Oc% 8nơ/jOq_v PYlbpf=eƷQq> bN9ѨzL1PV$"ηX+'7]\q¿\ҏ* ;+1RY뽽[|뵻w56V[7Bd]@ݶXn!:GjxyCBqV SP,4:!{+T#VMl&0/jt8hF BnnO(#SCc1_)xT^^n UV'(S㖼F"όC޶צ,lofzF)眡QGis`x0IN ~`\GE"=7\Np^9,ǩoKpCvx\m_ 0lʀqOpյ[/Q뮞y+\ӉLT Y;69Ȕ>s%cȘs$,ͽL]DU"t='8w/XX}Ԯo[ 5sx SGF)XW D#0B_}{QH_;A?zިn@ F΀wnD4d)d"yEq LɄʖ? fbhsE+2_*OCYzN2\=u(0qԢpw ~-S@_+M.u6>I9j4).JOF#5:]݊x&s: Uш^ [uԓ8vI$y&!}(+<3KL;e$%.0k$o&1@(.zUӶVs2&~41"vp XiEL)| QdQx&)#g7&b,+47$hu@zƲ~+.{$9vm:h$)9k UB?nU <1xL4eR-Ixf $45A& M NҫxiUydؖ%=^)``}1z}Zyc+9C;פiĘgC_OR.\qT&)IDex|ݸHY>ZV;P [ 5NqZ~[k(^纚Ccg5z,Uppڇ["h`QX#4.w{”pJOiY-Y%^e*xYv˜jNйp^Мs`h&ؚq.2O# 'UqUuGA19pcEQugi/oĆ#^rRil)-/!(ksَo8v^Oܳ_϶Zr[ӪGx͓bv;]LVf7箾c%t^ [<1{&J:(YaoiL_S#gB#?Az]|5[SȲi].WOv`ʃq?_cFq4Y3%sdNî d7m$'!^=Iw:?W.93qgS0EDʜ쵩@L m{j8s> y ~H |$rP֦O:: 4 X.v:鎙@aC+#Ğ,vDûP[0nKwB2=LO )62 n㧥tr<7nQ{Ok#u2]OII%17y6 l FNY{˼cK;>p}U`쾞1+v~iϑ5WC?9}hM;9@97\c)w'zÿj4ٺ(hԵbUT]i]^]bLmK~ƻf/PKg7RD}pip/_vendor/chardet/enums.pyMo0 *VH+5@.!A$S0vw@(~?Ṹp\!@l73J^oU!=)r]R\,ZvbF1!< K"6lȼAnͬӣ @Ѥ}Ze._);v~̂Qp 7q29o O7/"`[ 4Y|,5,&W2E?FoS4vVJJ%W%8Fn~x <fY74Ʊʽ f4s2+d5VE2[)  ZxɜrmC:W_nI.ۛU M- $ Vk4Sˋ =U V2Wͦ*@mǻ~ijJyFT!Q{Cz`xI؊䈞&зM>]]㭕vPKg7R=5n pip/_vendor/chardet/escprober.pyVmoFί%RBJͥJoNiUY=U.]r~8ܵ<;3//syS{Cwp7 ?%,3W\2F63OSHlNt7< SE2ӀAS4:b[$f5e Pje# F`֦S#HP$#I7O4Y闷] [ءR7T4RPU울/H>`Ә.!/|g L tJˑfrfO)bp獽ţ~-nh |@XRll"@qBILhOu^#WSi k9) vM=LXeRHE 4]xVC;.T# ?ɉRjA@#(RuNjc]']7z},p\"Vh͔FUrIS gґA!}mXI`O&IbGsRxX G<%vaTh*u7eta0 '{wL pzj0l-hx ji jkhX3MҺt ^T^&QR'Fy4H U̖)TQKYMgG{ (]Z$D"~%ö40t;w/ 8c -[MRv|?3|ps\!QS+>S!5[8]a>2WZTm#E`ڝJ!Sk^bv+5*sW53C'26:23mHQv߮d~#:y +4;%\u`w%%C'vkF'( S]qYϹ>1xƫ׫Ob.zdʳ:7ɯ&AR3R9U /fBӔM="฾?ϥr2#F7:7[7z=-9q`ƙ=y,ē”쾐h0@}>uʨ :=?PKg7R `)pip/_vendor/chardet/escsm.pymSH)jp׺ȢT ֖DRj_7$ ] Zt{fzWyՅvM8oא{:XBO+hx# /qDS`b[6\;|7 < &web*i2)s}WM=CSvSI 狈] EsjIZCY;.}h9O#ν'ay0p*%KI g?q`g0f` 2<&"'ȶ4sG8u ďrxٽqp)]p6бMmSÔ*S4#\x~36ک|l-z #Sp"?攄898*Rff:]c ffN#/|k z7wo[]bъ뷌dOqVJ:Mqy/Zn0ࢧCu}jܴ:o~hf )S2$J!'fr$a;r그>Xry[^~9J,M +e\5::amWnT]mpʧs7+'.WI8[lk˓.qN#Nux]t^W$]IWu%ҕx]t%^W&]וIWuU"]Ki-bdZmjFNN!醼nH!3Ig:t&nF:I:$$Hg:t:]Fc84k LǚQB9횖!&2x l4j(ыbl7,.Vg.JjQJ\rH꣚4#?>\F}p }ܥ*BF ~nv?M:Cx;~չ4߿ БǟaY Y^%LRt+oz48ƀ 3Αnب75秫Vk6=97(K<'j=-i _8P/*#[Xt^Y[X9[TY[X9[TY[X9[TY[X9[TY[X9[TY[X9[TY[X9[TY۪¯er.h)"c{YWK!ޫ'l8Q\p@4{Pw:ݓ# .JZco؏.i"CaFw#I/PEz L}Ir^%ZAzl?Lzo{o|ʜwF|B:k>AwV~Q&^_C {u\ v'@1 Y ]ض@F3ny{"ߎHx?|,V1_c)fxIP~|xb@tˆڸ D\;EϒmK,> s3lLs{ַkOIPKg7R 7*"pip/_vendor/chardet/eucjpprober.pyVoHO1jTt N&_FUTEbثE[ljE }f/.N?t۽ kw^n:\4b)$朄&5^RFeIa#Ԃ ܚm8XY(J9Ͷ +f W+Kvo &kh |fVj1US р4R5]"dvd?L3u*-4d~A`7U1LsaRzaJ~buK#zmv=\#qX}yI3+s.C_i$hⷧ~?Lxwswh2' JQn]~?KYO7Y,5Z=^UPKg7RAya4 pip/_vendor/chardet/euckrfreq.pykGH/FjʨK+Ok0 h8i{_<Jf]$TeFFK[W?Iy|ONnwq<8ݕuˋçñnʛsԳ>guwy;ûr 9"?\]I<;oZ?Rown$9nwyY{]w׻㯻Nnןr]|SOg_NIo͡<|pe)3R{woSysqU| \\?}է?\O^ǻs7>ܿɏovW׻rq]>z#Ͽ0RMj_(w7r8~y"coJSG̍fU^ʧݻOI!ǖӗ/ʽ'?;?ؔt~Mm> -d< _sƽg^ ^7_y#:I/PV\F1_7y6Se/S 9#'fgXKspw;{uf[c?^.._m8G_7JXRwn@< yU4ɿoK/w>Lܓ/Ջ=g_WIi;>_=?>W IsϧG宜~N3zt_==yN:C>b8cOK[i]jG+ceie7莋R$),8֚b9'_IzV>L&XdJqP0 s]sIenf_PòvD˵B[X&**Y "{]J:]}-dΖWLW=D4,GSZTAkXbu# K`iIHC9zRh̡M݈ u63+aw0 L$A`,8ĊglneTJil3&XpZ( [QG9"ڲ1.sr|'X=b6Dt86ki:&,V&M +[^uuO b:@bfgDZ y!cV0sA &L<\C^WoM'TO8F 6@ڢRlR~hC@"%&Ue bPleEV"` S cp(Hh "\DK8# ~do*0(VZ,*.se Pա;BNeёjm knYnN-WWqTYJUݲreԗ!\nWq3B2A"@7֦ )$!~t3o꨾Cl#ƣa0qa Ci28pNW>c`wCph8$5H>n1o𙊻{g6و]Q6~TA_njmY7Fd- :Z/ >󝄳+|L5rݯR`2ћXjoHe=V}& *:Pn~kjf^`Č?t v;' U\d2spNJ:ag-Gua03,n@nص'l̹"!i"lǗOI"4g3wdN:g%IUӺj%>/- X_XNAe@:A!p LkQFMu۪m 30#+(US Y`ٲHeN"a%+,y*FnO?eg x4teh;`Z7h_Pؒ\0oUtbևرqw2ӦИ[*u+}PE"3877&  `0"\Bs`>H(˻UV 1>#Gl@IXMjt6F29 :`@u5(HUu = .IQ/?$K&9:?RlpB2̧amTi Ϙ+a4lA 6#aŋ2|UW}PoT5fa#H cg`l`"$ ", Lˑkw5)U>oE"=b-Ov6/' la)@V5ԣ<ɝ,tB$(ʺ)edZ =f2"AlR4o-eL!n' k3+a+3FLigTe"9"(j"+XQ8ͬ| }x j!2S׃//?@ݿ.i'F՗q|@2:+9*"a=E,4FfdI$N bu&!xh!"B<*0 = mY'N) iQc.Xpabr>fiӶe=hJ> n\,#ABBf4lK cŦŊ)ج=QO. F4d9A\L3'#9.,RQ\pVڥ"2U9r*qMnA_ƢΟ`[KS`HYQ-#d>@eSŕ-xU ]#F,s ##;'fhr b6;VXQDhrqMmgdhMFMP׶}4DA고 0C#ڇtG2\|2p$82Ha8Tdg'ۈ1`A=B>h-Lj@};xρ]PŸN\=9`5@Șc(;Q9.5h:'>e%hdcng+(X{q;&V"x;M ȱ "$'?m1& vg^k#>ʡQDnJZχiǮ\CO"iG2'1LT 5妄#Lm8Q뙽fcQِyjf&Jg:͋e$" VfX_D0*3Ffdv z>ڶ<_DWpZ/[!p,Ldg {TDs9%Ku'GOG8Q ’DBDp>9KѨO2q-!8rNH3g*[y`'fUۘfZETB\QcTm΃Hqp܉,2ow|ah"*=m Ve`LxM(J=QDUq JK;2܄ʇ9$JG3aE;Ox&{10kf0XF;GuT;=_dNfqʔpno3\&um((M%Nv`o~:N X8*`Bݝ_~}/E*@/xj0w SZP˾nps|s B j37PKg7RI3:{ pip/_vendor/chardet/euctwfreq.pyݎ&ŵ*RBgeD-5[4<'.LM1b~D$ EW}]ۇgۧO?/?>c/}wwë}|sŻ7ﶗq7׭Oܿ;p?=nnŘqgw޾|5Ûo_<<ο|{ώϏzX?~1Ŀ3}={{WM>zx5׿l۟^ͫ<Ƌb}s_qoO>'Ϟ=_~Jǧs|[=xx 𧏟}qǓ~_'O_n|l{}}g_=/?`۾WC~+݋o%mLm~yw=|毾ov}NH?n R\^|rm 뇇ÇOO=ʞ//ǟѨwGFwo^XԴ LJoڶ$=qӋ7= P(ɋǘqw|}履~Տ#7ƳSԜh|42*7u??}ub%L7Jz}@,fc6U{z?M 0^|zߐ5z{xZ/۾ ke ;nnܗ勧=?<~}IoCc?#2?jɇ~O̿=?gϯ? n6&nS-6O12:n{I{|{\r8v6=.N|oJ/-~+Ŗǯ=z^_)n=a9z--uZm$&We%On%&3ӻM`5mͧ§K3?⮒m:wxc'ƌk\عޖ+Xvse=5Dx7FծGgǻj2s[Gx񷔝3ks7&6-Fj;oxb֓H1XW,8+2#>=\136%~t=vde x.`otV+QJϒQM,q;31Rj[exZ.6>6dz}?clu{gH$Z Pz7Ë2lg$BbBxŌ{fų;H@uϥ2)mIM,/[{J,v(3kv^lHaWۘzbsM GH ƭc$<[ˆ-i܄, Q;y>jwfr0)Of>yb X");gnsjz{RWlw!̱jVq`SbckĻ3pfsqJ;* e[{Nqq.-Vxκ SXuN1\94xȹ_R"` PDdc2 CO3+nOU-9 !U-`5* #F(L٥YpL?HkX [oeik ~Dy= %\%JT:DRD;=6ETP/*IR'!NYG=D-a0B#b=1Av݊7l؏ AŴn84/)TZ+ _xDž1|!3ɖkTuWc9TXhh3ȅi8NxG~1 6b"`!N=!Iͤ$,&?bă<;^%6a\$Dr KVOfRk4?Ďi<-ctXr | 0|~QNf=Kxw>xڔ AkX*q@> )t D#, wedq ׀ZX"`S )z؆nDE*áX2b0Q;kAМ'"`)p0|{2p; %/3- YDl-~PPd1IJbA.BbJX"ǁX%nH݄ b6XG {ܕ/|{1t&aXaQRh5+!6BMKA]|M&;V||BNNfTmō#A޻)"B`B]AA+ʪ؊/v,if?-JωkR`dN4!fBNb`BHL'HGlz)((95c'AI/}P'{Iw\F(̈6vxo$ HJ6SYb(y@1 >Ɗŏ_ЃhbZ웩/n,E,]_{ w*Ȅ9na)U#2e{ ܄I<KHrKYYӔ-z0HxL1^:L!/RK' Sꏻb3 &>0͞`uaS\%G1ք'x-&z$!cL"JSLNK5? /prcpr iA(]&Z*)L0d srTЃ1F/n=ot$W,H D 20rFPUH:&%'KlIᒋgfY8*  4`Ffܨ*T}C˂R(}_a੬UUVo20(BT!SY Snb=>#`A WI7!u6L$D:n 5/[FV8y J2`CI+:bu@¡JZO몎M79M דLRdhRlxHǸmcͫn]; -C&a8s|{6A sԯjw8YV5p,ax;c%J复̠tETHJTN,EgB˪92W <>c5 Y6#n$5ϫ>0I> q$-U$i7CUqZ_3\H3~%\ AMuP2, _:{?$JByyNEub`K͘J ؀۴Bu-3dS4t(:aLT&y".+һiɪe `Ekr,Ng j$̳P(Y7b^ÿ2P $klEseR7bsctC8lA)k+#˘wltofulxZ!3ŐM Rtfl93 N&K3 F*U^b-*R;%BO ځ8"T!`7f݌e=t) դ K}"娌Hߐ2m K>-#OHe'*@Z koM4rTXc%XcIO< vCznVc(C&D\ƅ؄L$X6n2yN1Dߖ!&/yYB[)Jjvi:A{t2]K zC|_BMeLIO9Fa5=V g8Y}+eYe> /iFd}r UNf|0Hjtbڂ3e5k6yE4*C,& 4yD XiºOֵn uKTy ^vÜtjbbl&8\YL Ʈhk,_Vjx$c,EUgw+ȿͭ<mơa+ X8p,FHeΔܳ*K  E Vo7,"|R$ǻXaĽq"ƌo` 6;;A#&cQҁ) YjyyZVnQn2An(W lIHFvӐϟU:ʿ/(.p_v,AH_ d7D:ƿ5]҄qCQGKk`8,#j1|uo|Z,GYX"LjMA>IY,u+MĊ/2p5[r|PRf;J 80X6M W{zRԛ'QVx,3E*ǩ[)%tB\;KP$D]t\k|hxYS|wT-pm*RQM.@C:qf] ObvڎyONJ(XpDt|E)cyي vz16L,4Z@Ğj1A6IqMydnn0cP `2b8Bԕ)>H9NgK! #ꤻ< &U2|3ړ՗ A"X~B?E 4$f!Urv'be)a D,{iN b](Bzn./,%بFd_@ԧ"U0;s\ m*wY -x+V)DdM圤JɎ6mQeYx'=X}Ŧ"QS1Oa05p,i*b6 pmjd$ten3d731 RM*vDHUstV蕎AMHz-y%>A$ w(?AGγWӦK"TAf6 Lg2d4Dnhl3PMe IC.hBMkfxhI(Sd0E6YX ⮁!жBdx?&R-"dK 7YW\6 U!%MÆ$U&[VDƗqjNo~ܮAXT:p7x"QӊF\ȋ3`btu@)=AeEDPX`f>9,FX{I_q(-K.#?aI:ɦpVk2\HM-[vۤXS +YGRO;-^vhgsb!r |R=^MT͢@ȣʔlpM#FE}, - Y(9LQtgٌGf42t-w{  4 e4Dv'DIt0E@jn Rp\Nl]| ^)%f05iذ RR3肌y-МB#(G &N4tƢ%E?l}e?k. v!E; ϊ\j2&KTzZHv)0V$&x݋1 mlIں'EvXAX g2SȲs L)']JH8 OKhX'e]0j @SYm0j3p_30x) 2KzIy"kC}3~ڴiye]AD!+ø79tAMYpI/%DyPnafQM MAȒQI8/ftK)n=*I)vg<4DfW*H8vlE$`Ds)v5B$8마*vP Kx7Hٌ'z͜(#++%Fߺ^50RJޘ1%nu@]ȟ“t'QH\.[hsְIXcj.Ȯu}&[ڵTiGT~޷C]ix )BcY+`ɶ6v Kz~_65HH26URiHqӁfC*4:SkNa5QP&CM4epLUW*W (dIRu0  B%91Rj| 4Q)ObYnsĮXy^t[,Xf V0;YY2vUkjn j:ܖդd^TSN !EIO]M!咊fB6Ŗv, 'Xa92R(6d mn+](ZkM|5MB}6V؃(Z ilEXbO/!!iI4"_9)t;W_tm08bxnPt[D=!s}bFzk"%B䡝2ݡ5l)["LJx:H(?]mG"fzmYMҭe6--&kUYhCq+U @cKS4"6H~_ XedI$fEl`OƐn)M)ƙ-UNypFY)wI y0&:`9qZ2ѵ: n$Aö%9nvF~zH.bbb_ Uw:ѻMPzWeVD* ^.t[X{,l!.iwD{KIB:իt[E=j7S͌ P:PmK$ne 2nIH[C SNK`y&R#P6s=XO,ut/kX2q^n<`Zn:D'.v a8,VYE|.{|H5wBIc,30ʺ6`G5-ıa=ցi`eCw W+97 ]da%ss@P Ȓ÷^piQ/.S<)Ob&ymny{#>gR-/ǁDPmɒQr;mWuȂ#Jʖlh- NӗX`x %b,WWӣnK]f\N{ HIpF:J@ѷ.bLd ̮Db;Ym>\l-Ox[F pe3 #6 F¿I{7,KL?J9Y$㒄D49&(M}=Tmб'/kve+ v loiJͨ~=sE(3uCxŖ;s6pHV{b7HIC|Y2@'{4v;c[Yca.O4_Ӝ N[3a<>r vMGH= zdJ,]JīnU0j^4P,<](J~.5:ྴ/ty!Bh[K%zӷn8jM\Vbn7|^X;y#Rk itZZcCiD854 ? oT"?fɽeghyiHyᇤl-/1ٞ;i;hs I:I:7rbM/wX̭O<>c1>?jY;} }w&N&*6γ1/6ɑϷ,S&T)K.n@ vAҜ^va|$_@F qV':14< Z2)S>& S*v켆)*Eۗ}[sEn jbE!J/ļV1mK 3գς#Ϯ2Mv`":$~ r-KO@A3YM!7Bzǐn7y:DnujM:ܱN2fՊ8>Kbii - :u l< ^ݐ]o{*`@.K*%!B쑤ѷ Ij>z[R\)/$26xdL #eH=SRvQu_uHVV}"wWkԘj7h"p]Ecl~VCͪgٲ[w-G^閳zmv?=dw1L>X<#á\duIwuLePg?i %U<%D1lk)N9,&1hiELx rEAn$-s39$I혋Ŝ ޝHMO&a2$:zZ`mg8SoĶf`m]u!{JZKȊVZ@x,7I:{%(RX/DOG/)`(OW\[$·tȼ"D}|.Tt[=#X0A6=upJQ%Dc$EzSms>.uiۺ豼f+ )ۣ!=I< TG@ӞzD3@%KI@ *P\Qf}.鶫GO<.'c`QAW4m_|rxԟJ}k]egTynht ˦s<@r/*I:ܣ5D\1c^k2Lb]?xwZ v57b=376]L$ckEqAUvI/RM hyImӦ> ޯ{nĒbIHi$[z. "1r=DyBO.8-G $GY殘2XV+~$A]kP4ԣe9")5~&%k04ž7W=tT;m&s[Q&6™f'  -J)u"nqZ,*Q6{4{r=s*@/~ma+<ÈQ7T`%Λd e1B ?8B%Zy' iGY$)͕kW' p7e;\0bvPtjNc{%7Z H]\U0)@DšuaXǛ4S1댱:I#mÃ+cڙ][Ƭ+3@D`,Ǟand~to-$д5c8,ݲ<0X @S,g[un-ߏkXnaC6S흵|Dl[%;秇 R״xi,,[6y\eq٘&KrHjb`YY*Y4m4IF4uݣ@UT0I '|( )Kaލz茬aBa=s "cA $[O/.SC49|͸y)pnj19Wã6Ӽp(l$!9OF${ YsG<ݫJH5< \ƌ=Q<ы?Xxp F[ញHWf Jw @Gl>tL)P'HŲ2n@xDDq7*XIIfB"۫D݂@=rf(ȶvw n4G7#؆ O`T518%H<̞kUNt8,W ?R[A*ATB/ 9,ZkC[]*];Gf!&t <r=0hgIpʚ_-[fymVl~aK&xvؙI2~nndb~PwWy B, g=/M^;3'F:Uȟj?l+4dݺbm} Lb()Zg[eeY\cHna&NGgi/*<ĉ|=]rz ;[>Q5vl!1lDR$2)yGgk^T+ԛmH1y_F119E~z- $-@i%Ǻ>"7 7aW8pu#I Jgo~}sPKg7RA8"pip/_vendor/chardet/euctwprober.pyT]oH|W /ۋVZ@_FQ`akfg6 -OUS]t}ChJQ4gѿtjSeYZ(L$TJn(E,hKGZzG~eeJdr8P?eRQ2BEQi /viKcw?@LscԲѺ1 WY㩭NtKϟBh:Zcپhov?MNs6VtGP~kX [7.喙=Pm*J&˙t{zIc/L& U:C;j϶pGKRzb̫)cvLQ԰Ѐ~DyC>k.Kfo!&i#2hӌn=ahT9+jy|- /.4yy@-F3ɢT kdGQҨ i8[PHp8\|A@3-n̼d{!۷:Tm+c)Kl Eflɜ]ze`9ϷO.CF>9ۥq)z1">4>#nrk uֱ/Y̯M*e! jHR2q3GhN{0XFDsT;<犟Wd5=ƭVs^`n\  FNY:U~7WtQuiWZ$& ˅;?K}J4_qEbtS(c}e5୻zSUx"7PKg7REc'P!pip/_vendor/chardet/gb2312freq.pymoeUvW, ] $Cn+ (:@ E/T.+LlӭʯyV"5>9k9s̹ӧzUgOz|ןso_n^ݖ^_?ۛWWw*׏>{{xO~~ۻݏw~|xuC~_2p~;GG]37>*< o<-yCy~p}s%ݽ},ÇoRʟ|ss%3|,wwo޾_wڏǿeb,~)ޖ7slczwOwo~|ǟ~y:a֏?=CfZt>no^_޼~p]o;y~"勻 \uOO{?eYxs?2w6q'?-m[}0 [̪p]~yˌ}eyw_<䫗1N՜槟cKVu]&gO<ٗ^~x/^/~^o<o||o~R^\_lmnǫۇr9W7r o#m͏eMl'wQ~;O.Z󦫷v#xqc|z[$]Zǵ/o_/WA僋 O[-_/w+l ׿V.黟ʛ3QcY>O~P6޿p/Ԟ2__8޿ly!C' <{} tjxs}Ç?~9qL?6a(}](#>}ρ}8B[V5v6?˫7MpM =<_~ͳϞ|^|o_>?||_<OYξ-J/OyEzYq^1e۸g?Dz׾k-oVYc{5kmY//2BlqYƞp[r9mg>m?cd|~:3J?Fˀ9rlhR9w޳\t[' ';˚i_e%c9//JWR=ZкdeG%ӹyceKFk5F2a߲GVێ-\3šy޲W2L#{1~=Liσk^eٯlh2’=- #E/g>pF=r(nGqYٺ槲2 Ζgfc9M3̖}-ʡY7f0 ,fMa唷1W֝j,WϏYN;3M|&[j ,&YOUue|>i9#/O!Tz`duپ873mc 9.?aẂ52a<0F8<1ˉq`)Kˀ0T0r8w a_iƭbBWqi3KmTQCbU٤Z9"fV3#ċ ;b&HIsB^ (c9@5Io8y53VZ.fIV]Y +9v@c2U 6)0SPBXʂIY4ňEh Hzny80?O@F0HxI\jLCd< 3f68^:/7pz@B0˓BiXCղcؕQe&* ÞX1Kyp=F( 6ˀH`ZMRNo&R8!G8ڊSd*2=N5pA56c-` /N d)lX7ı71ba\}` ibB'2P-cPA77FVܶ|'5I8X %uk]tJ`|,FS֔Sl8V%"0C#Y.ee'D{c1|n:/^v]lÄV6$BeQ@0R:'vhl+8y<7rafdPG.d/*&c! b\7+ 50! a`wŨrB AJ{.Sк7؀&BI>0e  G11gBHvGJZW 5~/&ChCvXvWr!r!{b5e*t6eYA-`92|blBW5֑o"MN|&N_B`>}# h|Rsp.p&4& L.1g;NsG8`rG y&#.7Iڪ0OɡB2vnAaxC:`}Cd Y=yO; ]𐌻=0-}ka#]+Nφq0 e9-g /"BBd z'BC* +u+h75@;ʼn#w}7dtzUv4Uaa62LP\rqHއPPCA8ʃIiwal.E27ؙR!Mr-% Ć+no7/{ؖդ9Ɋ#Ģ VbH<~YI'* vg=N le#}_[%֕3%8<`tG#`7>VEֹa;H IA 7"L?dU@HDrҚ{H4fV.F$@t6JLD*&0R!d|ugP=Zb ] ċ4s&+&(l"yX^v˝#׃(?;n,Ŧ%^>z@#qo2EGIXUpMJ04iFG~JH9tNlЩu {=4HXAPFfbߞ`QI@F͠@r 2ALf2Tt848chɻK fagzNozVv"aAU)Թdg/:B6މoqTYbBf=V=%3E#x9:$|d_Vn*~eYk2Lffygi8*MT}-rB+ `rsJB|u(9#J0]kˆ<(1L|5SSqkDB6Պ!@Gjs y3m E 4A.7 & @@z*o^4z,: E5!T8;V\:uBE=4+ =$Pρ5` lLb3r9(aU o{WHbl vP;cXq(UUe,(\R&Y& A&dR!\7S1+>n FSSϦ,Ch47B *TeQ^b6qVojtL:ۂAcb̢ʭzaOiEh3ˢS 2tI'@1{v4qaHXY` >ԉ\b%?u@#ǻJ" bb"R?O{E(h 6јu$OGF4Nk{fM33/+4}rW@Oᨭ-6 4xV &,B!TI0Lp r(44iC V:(얨lqJv.eivnvko3{صHN -J=xo2ٕz 4PJz1XxϨۯ {[Ag(vP8X mRiV5d%$, }y,FClULi6 8I A؉JJ|&y6|#dƽ0$=&S-63**!jPV!l=w:v[?B 6j9/:9ao{"u7)F?/ LXPe95K 7;9UwK궢A/dd5X]U N/6Նml!>Vj—E1Z `OC,ձٶYe0#,Ԧ\V73Vt_56C>#Ŝp73jX%DPP@͞GHZ M;ޏR`wZFeKnhrQΙk

^i0ẑ6G0,'ŴAW+&_^Aavf++^Jz;; D 80QJh\1mBCş.Y"@ 叶߫C$>C iI+^q̶E:oH@!%& (CN< J\QTg^S,^stS:le+L,eCL!v7!QHMvM cZd1YE&vbdmաK63GhB`&06jFvґb*|hnyV鴐JaVҳԧV\<K&iH>D6yk`3׃[" cl̹Z-X26\[Fؙz!b_ t-6j; vU1d+B*o*re5Eo-^DD.=*>RU]6d&XST8KC5Bz(f _%;-e(/ɤpmE1m,^QF!#Hky4.s=i w ]&kRHkUJ-$̷TxE#/zTބz `>e^+$IgB=} ܅%{qevnB3v۳(p͂%ξ,)ayNM5HȟUcCMӫ^ǰ;@#@zP:YCxYr?fUyd^mK!$gRVU#۬;ȣ8! PAx^$6Jsj$ټeYF%Vpa4‡!ԨXq&g2q7ɡ$Yߋ0Lz*ݼ3 l2ݥ, ^GS,}Q;&gFV`b VIi7b޾˵a^Ul#R!,ʝ.sۼb_*,U#j`,s.,vpA$ Hq[ ]kZ5ŔfH vL겆 4yj8ꂒߪ] ʨ7cxWUlLd^7SʁkCV7j;҈J }o! MC^W`'X4T.[)vsIgc[<~j_ޮ'Rmn/UEEw/Q, S!zT +@qN[GB⡰6a$ ,z (<@Z;y5xe!xe{ћ^.SwQF>qX i.~lǖ-|8 NM\Um5t,IMfTݯ YfEtf<'0U*iӡ)ŗW<:`%l;`4X |Cgn,{{2UDujS(/Ƙd.1;Pjڼz΢]s삱 oX:mٶr=vNZ jIgJIh@b7e/ PnkæyH}^S6զ/6JD d`ԩVJ`5Wɘ1VX, < SjCݼ^u^_[;NQj>CzQ $yb%TY\fy0Aw} *T"JJm4R<٦зnJ( ǴWRKbAI V,`6PkithMfDkWsa1 k\YaRaə?CզLhK1䲨C9 ==|/hJ5[t3VJfe1 GsS $=;b|xCncA? kIa.Zp4'wx/ DX#Z1UJZ>,{<j4ߞI[%Aоpz+qw0`>)'3id1g4]̦GL>Y\4p2g/r1^*xb9c"ȶ_3TFwr6dA6=[1]gQ>tP$e2ƶk؛N]Mh"ևzxDFaMIQ6:[kV Q֞dS]uz’]& >swaL{T;ܢ>˗h9Fs^ct lGA˥Y.[UqpZ/ڴ+Ns1#BWj__ڱ_,y}bS.(u}e5]zB Mxt|PKg7R )Ӳ6#pip/_vendor/chardet/hebrewprober.py[s۸?XJkkUqDs챝f2y3$#H+_gwh'wy=ӞM.x.Ƨg3ڃu0HISuF%V]ITYh 7B֔*6ʼPT4U7֪cMhba4"Vg^1kxPI:/Re7"ϜPPL ]lHWeYc?M^Hg0qb<.?/8mQ.M^e&ԅT3) u5M/d(mՊEsb1sפҟI&cz1<9}tIx+x7*5 sةFX%]@!ΤFU̪ X>_}S'qts3} kiR\ CBg{_>:Q#u=~ݨ7WgCx1^Ť.%*2&:I `0B?92XiDjlٜŖF?duw};ƾ}8}4쫗'X&di}&%-a񋓓'J}œ~wY/eUO!=G!tn*8[@ol~[9qnlvJ醔ϳ?!3WznOSZ-LJY":Vʹ0kKevtR.[}Bt!gT |GnU+bCS^ ~?#+ν$x\$jh +:,oZ[Y~W~3CYɛIr胊rd=Է er#sfؕx2|:9&c*؜%M*<T|.BP)dx<8sJ6_LlDcH^ R_&ؕpљD ?8DTx~Ak\IåeK3p#3YGNX-ԔY$kj(Q_>UP%YV13c^5$Ηx7 R6RdǼtO-O i_btZBJ+2J5ʹ'/Pߩ4XJlzC%"$4kVoony,Cj1>rB-UZά% na&Qf5o('U0%jS=Haa+AFlDy@0T#٭q%BUŠ?^䩑מ5Qxumu|hop8T>S$B2ܝesbcQ伀\X6W΋hsi]~vl>9ry3UHKN oykI ®Rqhf]@8 /ŵ(#1~D-ju~wA8R'ŒN9Z RFP uZ=/XSBk#e69F"#G;6zHk[5Hl8QԖZqr;+@/2QإzPh%=je)8FcNp4!sȥkVI+IW}gUPq &Pe(jRt/ a%rp C} v!SKxbhC8-A`43SB$ru%inc:@Gpőwp/\)"B &/ ajk7ؚgԾ mΚ U7 :V+( @U`C;@VP %#]ғ%dڗBfr56g#DN#dV r>CHw oywm S 6RxC"RQIΑCi>(Hb@-x$f݌"T=CsW# 7eEN\wl>;%SqQ"T|[RJ_*-?M2AW,A=G% փx܊p] z%u8Cgk9(a* cT(R#NRf6RIjNzE< @d l{;Qd.oOYmPD5kmo$gDUO G5-$ 5w*Ilvp<r3r}!H쿩y47wJ˭/hHj45nӵPQɭ`:PK h*mFMŤBf,z[+m2ޑO'EoF߅&` 5 G|XdU]h2m\,RQcyDb*%lrȔΠbح0Ն4cQ$_z^!6SWYh$AUZɰ>, E*yP3&@UB>2+^նѫ=B9T'PiM'b'_F:j4?\\O˳KyK&X:0p:;^ɳ•ៃw#e6x=K %Z02= Zk\$ DCݹ|09ѧkGɑ&6O?%H҅OEۻ䔄~mC22͂}˫g!H'Ʒ 77g'Kz4z7>]֊e[̸dX8jSgS<޻t/*|&(OzUaL Ryfg%5g M kɃm}K߭fey6#I H:/I9oX[7 bPK&]"(zR@M,AL @=w.MSmCu,5M:knhC=ls9ZUߣ%ҢVuZC!冭Ċ7Qp<>3ͺ~H "9v'Xt}K,ϞdM\Puguxˣa |u(;PG #nE _A[,xQT C\T&)w'.ԕJS.Lgr\6@>'pq]x?]и#UX鞆˨ PΈ}T?B3U/uf 4Ծu0MZȻWyQKinSxH9/ˊ֓x>I7CrtJLʊ׭PlP^hkivXc BC挻 ܊~\8a4`]fTtvO{~gWf#)o۶ ޿N|ACWl71rTh 3ݍw'Ĭv<:!~ͤP~xE,0w_>N^3TJ=I}_ν  wKK3t~hRkqB\'r1zV]?8zޓTBE| z }1wRjj:5d/HNW.wfsl+dYv'I& u4bSjVW|{vwvz7) Ԙ iL= :P~+wS~vchUR1y&ޗ$M탺4l5Md7wXjpT2cjy_;awz%|̠9.!j4oEýAphĂ9j3+l= TqMXrS ˂qZ͔n?hcXo~Csbou|~Ca|FG tҟ}&x"J+yvƔ7te1,`u=-oiCR/Oi. ܒ&PKg7R9a0dpip/_vendor/chardet/jisfreq.py_ǑS$ ,`-MED]cdC,iI "[VcZݜO?;Y\/` T˛YU'#NO>/yo?'?_onrswu[{]n˟*?7WOSycw7O7wP*O2f7Waoû}ȁw7WOoˏ4?^ꁱ}KT~֚9į䷏_'y7_w7y|V}wTpY<ߕ˛pqTCO|Ǐso/__?杖?\]?|ۛ77w걼ǟ>S_q#)_ߕwj爗%7WO;:~7j<|NߟmӰ?9`>V9Bˋ˳o\˗Ͼyos_sH7K-TWwOs?=?gg_?s_xWW߾,w^~_?{Yw߾zy)?N1kɷOW77x|\77r[݇57}BWn~*wOo7D?nLп4]m.O9W'~gp3JU~WGEʧr# ǟro>&FܾOpϗ}Nrn_޽lOo~]]$Mջa_}4msA&1CϹ_Ygr|>Ʊj~jaG~?~GW#'GZ5L5`d8Xi~oyÚIǾw#n);;㷳_~m.]2yq?g_^|_|/r`ꁹN,۷2^C#sUi&RiNz[E~K;JdfT|A9iys 47mۡ9;ya9n~TF42WLڎ\X<Ѹȯ!בS3m 5k-8;S󑼯%y_||N3|ҚȟzƭNP5ysMkvkܯHbuʆ]\\\ȢǢG.h17tA3i431R5݌nF7=n9tw' Aa6pz=Apø=͂AϠg3\ңңңdsFF\\27777777.ƲN^+׍ =;=;=;====iBaQcuv9y8c^Ky3rX ĵ 6[ Jsc1"׸^/-cX9 ؕ7XV.׃-ٮ9 lo wg`jczӺ1FeG 'lĺ533+I\0ǀ,L"ןн16Bvs__2`m }ڻaliCM^xF_8N<̅;Gt<ݷ3:QD0l B5ˆ Yl:P&/t=b;=:%l/%+M<P1"0~FHn!keLmL(v VQYz8ko8`ah8`Y&f~:yk6 8`c'nqccukhq@fCOCװ z =58 (u#h4K$09 &,1@טƜgC@[-e.q1c<x>d<.\L-d(P @1b08q֓zVz 0`$H#F`Բ׭'/il V`$H#F7|gC׭7 ]WErf4Ru6AxS۞uxbYVkb(PĨe#73 $H' 6i(VX"\0FiͶ;#yI~'@ƚ =df'P7fLzT ML~Fi`z&/+ 4V#l Fi`F.6zVfFi`F X40Hk{f@OJl50H# dõH#lFZ6% 4Jl50H# 40H#40bKXi` *zF`40H# :\7xI+tұ'5pCjH@MjJS|NxeA]wK:0v0H#eõH#t0Hn ^J+tI#t0H#XlF:`, /`V:Ft0H#|SXV:X`cO:`F:`F:`~ ^J+% q.zip[м=7"&RH#3ZV:X`2q4 IC02qaF nm # 02# 02# 02xゕVXؓF`dFA=H02#=.dVX# 02# 02#{\x+ 2' #zF`dF`dM^ VXؓF`d손`C " BiF: ^ = 02#L02#hD4N3hd V&Xؓ F&`d F&`!.z F%!gCO2'iQ F&`d F&`d F%f V&X`ebO&!Ά`d F&`d F&K&XAB̆ؓ F&`dl`d F&K&XAh('`d F&`d F< ^2+L#L02#H'u^7,+ {# ,0# ,0#9dVXYTl FK4o0ob y9dVXYؓF'Y`dFY`dF%VXY`eaOY`dl FY`dFYKXY`e=ARΆ`dFY`dFY`ds% ,ž,0# ,0#)떼$?8MTFiͤgbeCye8=FOtz:=k9=NGcp< z=AϠg3YYYVGGGG%x[ٸVGGGG%iΎӳӳӳӳssssspAAAAAK,wsssssssssqEEEEEub== 2dGhZ9#guhEd:tGdѺ$N"Hs™ O-;DKg7%:N =-䋊EV= _a!60p Hvd <9zTw/ n1>NZ 1%3/qϢ2$kFqxLʌH.+IBә'"3c !l!4Q4n8*jkA`3Q*èP.s@qse y7gh%2\f4,w@iH 2Upp݂X#8Rnkqp^F2@*t$14N\bN,XQGXsCEӸKCa6Tv_V胎Dlh= K iB$W07Tr '7N}Ͱ0\*tH&w'|y9y97EёW#zv` 1c]]^+ۼΐnq:4yGA@eŠ.։\tߚq#[ &9Fn*t =,=ȯz8đq;yBnWvpF4BNFэPKC++ znNp2Ď55B$ uFfՕp;UN"dyGq}'ZTC٦otj"dl&EӕN! %hJ 0nԐ7)AIw%R}qrJh42m+ǼvBP. -\a=1:xah%[pj  - arXF2eTDh3;v1l[V ̑Y-Ju 8W࢐q%fFq'cY25_7-Vw -7C ½-7Ʌ+l?opbs~ y E-'͘Cnf|0a79`Ivj7 l!/R!r8@!١q8@4ج.!Yg'd D,5\̑k2>=9K"| I-c qu␐QcVVFnxqXl!Us!)DhNH:BA42Fl"5~NK U;pYZNAvQS7!8c\KQMX1Q/X~ Q1T{&%M s͑m-71RN+IBJA> ]ޝucVq-\bQ= ›6V =$2e 8;u(F֯ Ji\x !,uAŊvd~MzWUp!k P6h bRE956T Y{"VŇhAJAS|)G7yIED2)$T I:E&/qY,RFocP02[:HKZd*0Nz}I~ƒU @0728I%P8QS1 Yv[]9aZܦt+LD / c+ V¤3h UH7!8u8%I.d_( łFPP+(<7w+OO22Pp\E:l\6)z Y ~?!Rjϋ7]\fPSX(] YRRz3&ԡ:en1uξpؕHLlWL {nF*PxOm'|'rCt%WSD0M!ψg  22:FeJ+|ˍvԽ~ M,Y'i]JGX2*d1.#JuNzNTf@VJ)RDKc ukصhKT-`I*si@(Z3Uk}L>oQS65/#RlT>$ɚo݈-"4*JySզLu̱zcC'8faKՂ 2ycKJ:u%D 䧸] l1geN#T`V:u&CiLr2rDE&P8xGH~ٔAjaP̡CbD:C)E9o8D>ԽHer~0fAeHYXe*#Sf/u&0WN-$ZFxU㸔HQ<q v*uNݫ VD0Q9H6)6dnu;W6E{ݨ{-DiQ|&ZvE0&D?<r^ ue&_NYY2R4w;#g [H_; ϸ{*/R]R$7%U{ gL)S R_ ѕ2T*K]G ~_ꝴw=mPd+]x"!Y`;㆐-@G4$R} &vԽgQt%LWȪ $“*uH!ߋKe_)}h0:-vU{ CVdME3¿Rɔ~WO.*gd Y%&PZoFQ3Tq^~l)^62@W(*WR^yTPj4X(Q^j:8sl+"= rmRR4  ȯ)S&"eIK{W$PCzX#B'k \!*iǹ{-ʿq֖H"v C PufUG_N8`iש{u%)Lp*K黢*aB0rR :b$4([w{*HkDTĶўի@ Bwu5XQ/ՕIe,DG<\wWǮM"3b@EoxګM5z Z.F% ;qDH\?AӸr}Dm:>,DW_;ɶJHh0FRI<*=+Uī`)(ګ{\^MQbrl ^KzJSav F8Hb*p$վ'BI٩ӵ$XqM8^2RW,k *=!v\uAM*S@~%@E7To@7ĭ8**}^qPKg7Ry%jNLpip/_vendor/chardet/jpcntx.py\mSHί8J/{󲳱 1p8:DָXIm[oOeLč Rde>dVJٳgձObKg;mu[Z5RTxo^ݦEߴbʺs`]O몯TrܗhS?+n^ܗlت;oZE ,.eї qhFOUzG5ժG{B~jpm'.ˮl? f}h?j}Vwb_( {7_5[RպiQkmٖeN<61/jі+EmZYTG}hS/r}uዳ7U)Iŋ.[ͺίyYw(:qu+ԉ "N5wy=DzHFnk5u=%X+ky0ZBTvt>BM)6]ܬ#5j+~>~yZ?^^]NUVgHݽBUE?*/^?:~?9>;'P\^^yux).\^_qUPV攒jȻFirQE*vJB2D\ln[^ՅnH<ŽBȺjo@??D.UV&ROd4m$~h^7}}ƉLc)ě+ud?q|3I-B$Uъצj5ZM((ibR-[壵ժ7e=*ۦ}>9R#j-bwg7+%cr/ML}KIͷT}Ԝr ܌$HƎdNY}YlL [[ eۮ#7ɍƠ/h C2[[;N51IvܼQk Jim9i^9tt c1Gr7Cq!YJ1FIPb5Ia^t런"Mٟv/Fac-a8K`RLO~27U,)4J$ӒS T?G2}L ?aBU'K-:Iissy4"~#SImC04'uL+Dz28+q>CK䄏t@ɸFIGG`L"H< .XC$( ^UE0QQg5y?fm0(Y'4]=sӅMNqT}ۆ;=4JY$Bd<A@t%Q#-D\QI<!RLےc+bmB%̉Y>Ǿ%PmesS zɈB(#sy] )P= >ز!_&^E29Q;tG6iG)<'{@I­]w({B)%%$C,Foȯ3q)lǿ},6'A#];2QP( dLo1Me`Ror&0{14ny/̂3Ǔ|zx8!y% +#$uҘ:gPN"mR9ydJ\anDTKzfJGa _|E#xiX<{%>M J? fERdU5xt8x'q,@$.}FIOaL tCCMD~8Ottd)5 (e8!cKFIs($2\"Rtpv=t8Τ7Nӯ*@"k|ǍK#TXHy3-9$ʆCVFci \O)bSn Q)A3.:@I2JqҰ3`x~K+ḋIPsA  $~h/y-s"ANJ[1`T8 !Q óؑ~xF&T2̣,">4fQ8<~qw´ ]`Lԟ&c,.(;"`xyJ1 B=<1">Shie s[tWAL#5Jfrx127åEE]izF|4M08B}](OgOF-Xp(qq;jjxt,#ƌ=[drɩB qq[&sta+{=+% |R^z¯$]pFhquBR Xv`TAGFeJ9;צ.ikqv qx3)nyqz~\ŠsΓ sWkdC?p%F?̐F%dD;yx-4QPƣញSxĠ&p!ؘ#, g\b96|]t/+snu~n{[9zȾ4߼x9<~5~yy|suVƱ9ιgTَ9(b6ꪟvrtob=k˵t:1늻u9}.˅c}gyYn&MlP&g=Z=5B<='C}g!F1o6ʬmG+V kw4DU Oh]^=1@Z q؛盶wlK$f;5fRfmU -J∍P mꇺy+O ~>vϴlIK-~Qr޷ǪtF\&>`\zʤZvSF^Ph FQ/%zc^,kH$, z"Y׷~ufT ,Ca-M[0ɔ nɔX~X\DfnJG)J0O5+;37fw N4$$5FòW}0L bm^b6^GIe*@K|4yV֯40~hP]$1~g4JOw>SENv:wŇRmK/*Ѭ⾪o(\k$F^um>lM49/? {Oxo]Tmƙ"#l-{yJHձ}RǶyɓQB%S44-{'V=w-c*dC(OD9dM["ɻw:xz?m0oʺܮf/A65M3lhVjp82_6;j**{z+6C~,u? =o)'Ӧ)rhe{ù`c`s0ԑ0>M/#ee^xz5In'Íb݉1##ށH,c5.4zyzr=S}eOEj{< 6en?3iLRT r1=p(_˪u>Vy8~؍Zoߜ?zO?9 ɐw(O?k<&MzL0"a1[+J cٞrYNҩ4^-BIUG xXbΔcIo~r{cp'ǟr }ggERSi56g< ϝPKg7Rh '2)pip/_vendor/chardet/langbulgarianmodel.pyZ]OH}(Mkݒqл4 3hi@@kO$Xct)-а> I\Us͛Sqr|pxzy(>C }WZ]F8Zą+N4Geysq1$$[\dщ,R3qx̗Y^=@8z| qXi욊rҵ|R;x/l6;b?I-ą.tM/jO|WÈwq'wy > ,E>K$ɣX͵Ev[~1[y\/V"J"}U;Ca88_tsxsI9ON -B,iL5qA}Gc̓o:/0"Ԏ4}XJh.I=@?ȍN/ӅJ=(ߑVFUoW X+~;˕?*~ۿ?k4fZSD .ʣ|p(|xq+$?_}%GWB/'Z>o! ]FqRԮEx L>湎Q"B,$K*!b ([f/1r׉.H/!Q| GI%-@I|a rqx-xWU}Gs$OQ'ªXEI(.A@PP0:\i5z-W\EuV7"}E%DJ u\Xy$zjAIOURD*{J5V]l)irT0ThБp/]=_'#RTAߢ$^x oQw!joR#IM&5({XMXg IwqK<L%'X;³Ԍ%LO1E"#_` SA45 ,M $X gujB5P-vefBh`=#b}upV!4PCVW (pH X0{{V)pހˁBI,'RI,X:u )SuW " " " "!h'!B !x'ևJM5X*T`WL w>x# JR%HS#|a  !(H&9JG0%)P$߁N p )H-H , RJ;E7+Jp&P`  +N@r>A~L#l7uFjnmlv?wviImdC1]bL2UK[Vj+M.;R&N7j:QՕfu?Xw]7E$!U+BTg]Jl˛͍橹!ys[Ns?)knuW A&|8D+u_0~8Ds,);N0S5f(;jVK6`'7-$Jj-?|RG4j[V@ivG>\^eLw.^|LxA%}jM%5~m.hG0̼ZI Uѫ@"P[䁱\.;55ā|)A>+jyǤڔ>gF5l[r_1Hu"ײu~2&[plU }n\s/}s@:~0Q{jPkjtkւ4l,K6TvUc;[ s#ATQd}y6WF+C=A P_2f:\Nl:!Ȧݾ+oڅvW2~0;]f't׊6]vۍgA6TcG#>~un0 4d_La 1;_v͞|{twufױ7;DfS9[ Lڳ^K:`)}3_1{(p\lmc?txgjLUAi?vJC<<[+Q3m/I|NO_oCU e_&`Lw{ޛ7M̻ xK^uFox]?D˷{b>-M2XjiQr̊^`g62Uk~9EI}u=hLt|ya:>\Ew4Qy^i{'`T PKg7RV F(pip/_vendor/chardet/langcyrillicmodel.py\mO:_a]j+yi(zQyPULC2$0e. rI0Ɔ}wvvهOl솷obv'IN6YR?l.M&Ql2Kdlzj~ Fg4@}?9>ʾln}YDwZSr; ^QZp(8=#?%Ϗv)f'ۧ;OӓMX r+i\Fɬ]0p6e7i "~βCt@߳䊥Yy}BίO6} ERp{TͲ,ه(Ipc}>CϢ{#IeÃOLz}]DŽxFvфpt >.g;^Lp.qqٿkOD5? bK 1%#sX5fؚ!Ò1C| KƘy c89s4Ps Z>Ԍrqqqqqqq1@1HKK$H t!@uT j߂đ|K$_"ɗHD%/|+,KXF\H [0G`5Ì 9C *5L(%T\04Ċ!& 1 oRU P1N01 a ExVCM@b4f8b@6 5~4 [RsŽ7#IBH/TdЪD--)u]>TwPr54;=:qYh⧱>,⩇hO] $%b###8 V7Ȓ$ __^z9џFd^Hf$W/@s?GPqRd?—M *QRպ6HԵE,GELG%6QQɐTT Ux&W(jVE]ꨊu+ qHUh.qQW0kM da1 Q56Q6Ep >q́H#֪x┰4!~ ^_~˓_`,6!]J jYX.N'q@U%!{`/2ft?qۼUMx4{lM9ƟEQz]K`o4pp0upR)沲,C|ţeb dX#(t2u[ VV@<% :#7+f94+ 0DGbmzq(^ tԙUc7W~ HGO G p .MEӣjA4֬h(Yt4ZJH\1 jTyWg?QG\\gύ,i׸Xx3gO{IBٵ dklЯyjպItb`Vd@ZmtUgtXǁ^jN0>F%T^DcӂGLUƃ4x0,xN l] kȂlW0XO#QuaکPF㺐hsu_Ń}?2TPS1XSՑ@obSO,OzY+ջB5z:'*m uU<` *$5}@g]Xv3ΐQ }ARUu,PT:5u7~ˉ[s:_ttrߴzz׶(4jDꝩY #`@udi[l(piZ KLdŌ' 4"ƁM:<]+ĭzwAƌN'ZVj_2df^,tq1Nޝs) $13c fet}v_u:aU25p`3;.'^ͧȫqq-tWkn]]LeO"uӳt7&'u#b@6ۨ'qLX7}5B@J m s#?~r逹{2'@]W,kc˕QϴxW-O9p^6e$+}&}=zpdAXsv[hWlzi-FWAV-`q.%2BPO$Ƴ=۞Iઋ~@+ ~޳} ;|qw_)xydo$cUZޱoW@^)}]e *~L<+E@o-J[/^eًfE+󊸼H7~R^UFƄW?R M߅>a4Q% }Ph?;~;[K~ /oGR}98[?Q~\ PKg7R)j 1%pip/_vendor/chardet/langgreekmodel.pyZmo8_1bP"evfni$)~ I*O"u-H&9<3҆^wOޝI=s_8/^YޅqAf!GE>?\0QįD H45 Ë? 곴.h/>_NjK!j%]$7! aFx3->*Q`,OawQ$w1 ;ȾVt";.&!Qx (IR%Y.~؇0cD/GoYT^8^Ȃƙ+yMfbbhWN =4Y3@l PvѤFB }f6.+w5@|ܕ )Jgd0Γv#a&|: ̬ͼse22 :o4A?W# 'ظ` LgjA#).sG~RM#I*F2Jh#R>ɜp.o,&@O3h3g%7 X10́,sCN%UNÝ˩hLBZZO>*`!iЙ&h\jgM$T>i(׎ =? ς_P9.Hi7Ey _L}%`+o1lçcƱ G3b8E執Nj8w30F_8"9 TY)=y0H<\u5^xq k|+ݍJSF7Jh ]xz]K`Dl%j=Pkb=5]QxD3r3+XA;SX+(:=gDk +c^y:5+sBw&* 6'ZP^$Y^H ͚מԫ]uu<"pmlcE^z3e{qm ksm散^F_i585zH?7򆉺bV\CҘ 󼢢PztՃzNp5f Ouc:-PbXSLTQj=mNcA]+a5*jiɩI;Է8z-QfB=_Pހ0B}nDAf@$kz8aX˂L0>k (}׬Cv8:zR0- u-$QKkDuJWÈjU٤f+^0^ ^e~yn=BW=g#>.'CdM5t1W =-f{Z[.A{.[$Lt+fјkPp&e:j 2k;`Sdt;t:vgV ʃM޷Aqy vhapпt:&{B{VYtGC}ƁkY`ov@6gAwwy-ɦ/#5O+[s9ݎ:Wޒn<10*l]} ʛ43IweA_*_y^;իŻ { t^^zG}R`)5^ȗЕ7<22Bu=z;| E嵈+בsbQe­D~_Ndz7_:W{Yu8ֶ%0m0-@?<OG> 48b&c%> Dw7i Ke}h g@E34 _P/  Y~ 8ծxɰ}D|3Ϝ4DK*1*ld<" c|? ^O@ R8#%2sre[F)#0~dz݃eyF :<'Ulk L[mp<܏_GW_ILt#BdHȤE˫cJ^& H9gk>R|]D`'lBYW[A[B&Y4 r+HY0e*  4IzHd[X: RRD)z oHff Hh^h a-kHKkbb@lV*&lrM\v-r!H۴q j{#vD}6u  S!2" ē׭**f S' ('Q-YW{aNrUt. rβ ^Z=åoXW+VV!l E~Tɠ)A9}0^ Y/w"F>+WQ,<{KM!Tk/%Y"27#ҫ|E+4jlZis}׿}3yBIPQX%ڊ/eVgvfti> =vFP_2lXVq(y4蘌+QT 6ItV-bZJ1tn;@M30?y{$Z3Hb5*{!ȏUW^|Z_%TP0ۚQ坺,6r7]K{Z4W/i?=)6XO*"*4Ĕׁ,7.g/:l Y &aRAPÖvW=v[F*/[=Zzt T^ޙi?y$^}Sk@P)٠5l@zP@6(fɮ] X)[MnAAF+qn^(AQzruiGڐ;SJ.;@,`,Nqdq| ՚]vl U6U"ᚊTlڛ7ڝߤ 'sbzǟOܻ>M=5O oFq0 ‰ G/tAE߄}yCBϧF rQȟ:uRӑ[͑X 9uHH#yQUD"N {{_PKg7RU 01)pip/_vendor/chardet/langhungarianmodel.pyZ]o:}ׯ-撔?SCI((6WԻ(8^.5TKpx̙+?pNOή_i]?H:8:f>g$"Q4Mb4^qcL)g,\Zn,-pϳ|uti.Rv]*ʕK=-d ^=:HT]B嬊0K<] 7}!E## ,bY>di?J<ʗ\J* 2[4J)܃t[cc6"!c9xNeQ2G4$bi\SOώ%]|8:#RSP|2 [`2D2(B̗/ax1;JGOy @}‹oha$Hwp}dYޣYQ*'r;[6W`*,CGS(Q,iBHtdVC8]r>[}3_rU]n\)gb*yjHD~8~j=6،s&`O EsQ{I_ $lym 44J+˱^ß|7玨yQMֵq `?8VAZn {6wkJY֋ |&n w77UDAuE^Z|zR \:EfX,~mϛVY&`۫scVe֓IZr6 /~2ukA4FD°]сasvWa {f]蠺ataMDh\ddA?ګo tN4#[!3 mn/MW^ h169gV^qÚi4ڍP?\g]Q6.ց"^,vt~SsaYkD#0]!0:0d=;;}%e}[ʬIƍvֈvFzUb!Ȭ֕&Zcd@MMn~:0ˁ.#6'h4:W3CXYuv#?5n=o 56Ha;,WD,ޮF'Q+ku K~zlTi8NZu-ؼoʂ\PgA Gٍ,?ߕu: ݞhs`K+0~MObL5ImB7U ܖ t8ЀɆ{|<ػv-,W;XS jΚ]nx:7JnrjMl-Y8=p[F?g# W]B]L]ݲzЭj4);NaMtv; *ksJc[:jdU@Ba]ytZۚ٨#W[BF؁rw?"pQ9YpnwF݇wg%̈́&ۊ{RqngBGЄNwcwV_9z-{ߟE}6|z-nT]-ns9_0|y6fI[ޖAfg~~7kMdͬhz6 SߙzsGPKg7R"? ,$pip/_vendor/chardet/langthaimodel.pyZmoHίh4xƱC&F7%SDNN)j's~z"ûwħϧX|:<0N>iqǏq%(iuTꙸ_UUE9Z;GBN&;| D\B\B(K<_̝b-BG*Nx.> ,EU*(_k֢QF,.j Q:515-!ԥq usXsO)&SZDXP[d:! 7 qA|Gco:/"@mD_;QIMHR`-8>{@ Z, L|HX_nW׏ Ւ!8*rp~|};f~:=;JONo/on8W׷G_՗˛7Z>[ rə.8)jӿ½&3}pTLj(a,Vab (f/1bѷ]HӁ/$E \p'D$YSV4s%eA Z6mTye%bSԁ,Q,(  Y!$q2O@=,\FuV["}Y5Q+y5!K{Q.IY9RbDz!jcz,"ġ;|w@uH}ݞތT@ݷe~ws{/<BLIb$ 9I"1,&}`s33 qYbBߧ}qSVb'ѼI \S%JHp# }1V81\=KGѾ/}TR(]UbF'&# #41А1„a8`37c vbp#`*D P(Im+W<&&*LT4C( 1)cB(  &V\Q)p ' L@v(bƾ'h (a;@v"S"H ҄FIH1BN҉>Ihn#\G!=I(҆s6p BF܀!xPjH(@Z Bĉ pI 9Ɛ@`DdQd&cUB0B[ +iVKiuUbR JR.u:L 8GjݓM`l?x|*Bݩ~DG`B-RY>H)!9#hl]Y5Ts S^B6SkavjhUiU{l$ÌT Ah얍սbͯ$I!U?~ѩe+FrΙLg>°uRc,Eao#6qӚ`u#Q1re#F5MgWԮe;uu&ޥcq-<ld!g8 7Ɓm?H N2_3K ص9*l5'u=+{ϕkLzF l>fEِݬNjnMYD#>c{-`I %h J .,VpmhS+../d |-l̽c#O]6en:gdp{m  nDMuF}ǥg>+Byuh+RB%M5tkk])FYyނ+l5JDDmiW!;Ǧlףl,zfif/cY{yFGvX}fݯ\v^+s^or-v†8uI5.։ߊ^f& hI*ۉ[!0+j/6i\[NrpkOŞ-z"vX֗ڬV6>WlJ;%շ,x%==JfkU=:ۻ~Cþqһ{bO/Pq$ݍXi\kݪFˁi+ژdOޮ-J;ʳL8d'f>kke>`/SX]_\^P~Ҟ/luLMocpSѧ+WRJ/Y/B^+%$DŽ# ~e+C68e{cc?Zm^}du. <#o != EvwByj_Nԛ8x-/xa׾5eѧ 泄{BO.~˧ oF;`d?h0ءU4JY7w' &>FN]Rr% Bwi4>/Ug:PKg7R2d ^+'pip/_vendor/chardet/langturkishmodel.pyZnH) Ca7-Yrcgqlv0ɠM&JYk{}o_Slv5řӆE6mf"PB8;EB/ Kz?WW7@aS{)~ZsWy+~Ō÷g7'7trqEtyxusz.?\]^\]+e `@|O2bGɜ aX}W ,} )J1v -6>2dH@(J?%5P}dY۬(C Ap_@/<(:fQ@bMedELAR_MMR}-+ {ЀPȺTj8OajL;FC?,Ovgkd0v7N= =tb-p~Ō9s\^2@9-ࢁB7aom]-(d*~,v[廳Ӷŷ5H0%D6$ț&.6 ژ6;A]X/,3;:dv&^V-0u6rEc\XF‰BRgTV 05Fٱ} oz16pM7L!6lm( D^,@٩ap䲑7z&$,3>gx٭Hd"1ds:q`[6\hE^t^ :ˈ&Zݐh3v}w}h?tVTݷ!3#Y]uGϼmOv,pW٬1qۣmns(e[-gu7Q% 7m<]مmri]MWl 6$c3Q~܅DA?G[ګT:2K2/n'_OZ蟸U:SQWLj,Wx%~ `wiPI}RjqDʵ||cb4zRbg2Mw?UϓxPKg7R#pip/_vendor/chardet/latin1prober.pyXmoH_1*_HK($$͝tVQTYY`K"ߌy س3okvR*@ۇ^{7-i%Xx` £ 〿17weLbFɧhhPc .FM(9NėOIӦ7M5y,xz L "aȂ6}@+< Mah+M?xS(Ef6Ѭ$Qlu9%W|)۸ÅO"V=on7| YF}K½%%ȰDԁPG )*5|afrʅjV5<~>N||u⫟W'| k F; ᮈ*;<wM|{wM|]wC|7)߇G|7ٸ&5I|B|~Zqw/b)EG|1_Nq_bt]D"E|>M|_cb^ 3'K#>#2 !=t_Bu'K#Ngef@L3?䳶44 3 fO:>iu2:!B#UH7~Z]A~ˎ^j/D~D.*ǿLq["5ѣz-j5녿%TvԷϣE?-*w .H|V,oq#x8 :N9d4'\TX.@R2.T$U[/9XEpM> çBۙ`۽i>~g(3U /Qs֙g vP2|ݥ f+wvħ<S&ZU TaFOA;49,јg34 j͝Rn>i=F?{7)bRx.gNv}dƱ/&9ێ>+Kվ5r;;WmF7|)jnv#Ho$ϰ<LN`9f"Z񤄭Zw#(ŪD$j-[d~ȎP>7~N[֏ '^G_L%A[B&AvlTH_B72XJ.$W몶ׇgt\APKg7R6uMU &pip/_vendor/chardet/mbcharsetprober.pyVoF_1:P9 T%TSd{ 3hΕր ؤVݙ7WWc {OwIo`{U"w4b)SOL"'CıOs)^Y' VNPȆ40mC)=r6IEd*a?fq^RJ&xTy7b!Cbm2T5ҼE8&&pFE ~'DOFS/X'B֬,f-~X{ Zh4MTαXh_ofDE;V4"% 2MiU(=Je,Wzi Ki.by$ ƞ%B߁MdO YMnml8Vm؄T= $5j ! P1| ~GO҂)M8J&`K_dRwL_7E}pz "q<#d]rCyzqD˥;VIRlz5n{}nhoӃZz>V% yɺփJƳkI헂ƾ4w9)9Os)y^\TiWB}_hE4\}z_&ͱ2C^Rk}6so. a)1zn8 ?+.*^'()3qNjDUB^_~WlI,:5j7I4U8^)%|;93@]Т:`2{C?sފI_B -͇x+lv` YT=y6s8NR :/?ӃHǺ|J//I~>f Ke<*]<|;[XmY ?w9'ۛ2?1ٷ[XlR-(,yxڿPKg7Rr&pip/_vendor/chardet/mbcsgroupprober.pyU]8}W\i^@VjwH2%hB&qcG31*u#!%{|9P0Oi2x@,Ah43b-蔓 )-x"lQO6ڪJ8W¥ι!A ;#J$ ,>Mj'3SZ;류\y6Av7-IIZ慧ImoDyPȵ[zGБnoJ>)F,B&IAg)VK̽b{*uA Sdx*)爩6Td*~VM4ш+nSXHP< WݜFC#4ԠyrO\ {:M@u|/l$<4&MI{V ˳B6,=f9O؋tt,A6Ę0J4A|CE?Ox>1 g(Eq" Q8-8Qb/-$@P' i?^eJasqRb6y>$ӓۙN2 w -;_>mZ,! HT;99c٨Gߘbj7εY.;9!븮UkfCZz9{~x<`3u!v99/1n܊MqCYnLȂܽ\ ž!|*kr{QL?)Z_qi JgCӸ$hY9 Yٖ>uB=4D,o/??uf 4PQaچ_.ـPR{<\'cy 9Bv'›UKc[#<!5Fz$ފDl (p6Y'`U)s8h{2>@7b!'?/~0|}'srn\2Z-ix'0O''hĎχ] 'G!^uFM,je [Zr#qCYpzC(;e7=lsz[lu]߻ U~dΌy~Tc}z_B.[NokmN `cgYءFb 5] EgK"Jeν9e8k9:Q|x]#EnjZRO j=О;m L!r7׳j~C]5. 5)M5)MoԲURۂVۂV;Q;Qߥ]J~|T{S{KG[ߤpfJ|"5"5|[ͷV?U?Us5 >Wg?z lV rCJ?kF~*cmoTuM*t2]7--%IU!Hm^ gW 80/[^`]+ "kwTcjq3?ɞ3}BQln1ٍ\9SYbwuB.z^obyT#)y#5N_qjۂ U.%FYjؕ&{c%,K 8uT:$ "H-J ̇4J|$&$ K)zB0YʋB)=zA H)#y$PS|reMCnrӒt+7A~ŗ?Ő)q_/O-iSȢנEGIzũzh>SZ2ySWN\w>)ȹ韷/$g=Rj_ҩ:^eDP~m4Bm60gh^Ya&R"Q )/ l^d")J")P88P88P88PJ0f$8VBqQMX=+ P88P8b%$b%z-JHJ(Jh;+ ȟf\6IH"!CHn\;=5e4d|ѓ^BԒzqXmZffյ6Kq-c:%AzuTUi V0XR!OS(;G±C q(;G±C q(đCpH9C mRr[PbtOB`(>P|,0$±o(<4 X`xPđf7y\_MClZO0SUO_n.@;Etn7Cg{V:-rhU@+_tS7ΫK{f`12@R֢ie6FR۲7XL3V*epj~?QOP󱗡peHy ^đpeHy ^đpeHy ^&L2"<ݟbA&gSY53J.g&} Sec_?l{xEF؈ v`7\5ĢXt88X[w r&/5xádE.9j9N~'+D8DFy%J_d»[GvدTRA~zz^W68^WeR|$±8^ KH{)k/#p$W8VAG*HXI c$qU_icKc^07-nTw˹[K?EJ[sޔ Bdc#ܨLB˰)GшL717W֌aYAboV*Y7 ~qCvf0sG<[Yo@Ԯ!{R̦qUt3lzl nQmult(%'1P8 GE RL,˧S;-Hř0?Ԓ̧|2?#A_x_'&z +‘02߼05jF[\ 1x<.@Hʪao"~z nd0m삚ۼ굒TQL=|j^uv^M)^5y>ZjZk~ӥ7%ֵJO?Z]ykuLuћZw[kjq ۵k枷ijI!{VZStLzt]y MLmszUm]Y65{u󫚫_oW7M(c+c4={c滿+PKg7Ru&pip/_vendor/chardet/sbcharsetprober.pyXoJbRMOm/OGG^sg{Uz>ƆKuwHIgf>;ۋݘ>?67N'd/*4Y1|}ۣpqI_l;$ e!sBz%y!v^'6, 4,aXZ#;vȅ/5؈@a ^wf̥N[,efV!:j40Q*^HJ1ɂWƑt|!G;x!_{!p%|-1^c{B} @y`;"`X[xv"")`.@*$w?kN-ExUX! 2??w%#[F;8qkWgcZfzZb@TC?ҽQpzGR}mvD[E-"π`:vhFd "%xU`9<@}u'Oot7QѤۙ#NGج#+0@Cɵh{2 psie2a*lTfS9B7 Eh6g!rȯp]5!d/R0_'D`Ѝ}lCj6M+>doH>"@nb=c,Y8ԋ #}FvPiR;0+R#bzy|%[TϖƐ.dcjo R~LkISxc=k02-'"B޺_li]TVw;Ig:7_X߼ok\UdY4gY5ɼy*M slOo|>KTk'`1HOCţ0T 66^͑49ebGr+IJI5 9\ё 0v$ -ZL!w/AweD(BSrgU#qz;-"+zt~2ǩ8xPB/;S /Jճf }F_s5ZC_)UkT)#9 _>6Ccޱ<"YށRU܃(};kjgC.彩<&=<Җ*+69bM!d@炾jF хM?Eh"-%j01`-;]x TŽd| p >;:~zN{b F(nM1EQ,s04c "G  |mIA2!ujvKf3@#I0Q~pxeU+fo53xUS3@Qf/˅+d>8%-' =_ZS _13s)s-XK,?W'$$6ʍjqr/.!*ZpUEb:{RbU+CyPѨUٹpEVY1%sH[;}3E:Ψߚ3~Kp,< }S5V3cQ،VrǙvrehYywICq~`o֪qmd9$5A?`ڿf QyTWH̙'x,18qSqkV;Y5սWoOt>h8 퇺R>>,4aGZH)+%o5flyw`*W_Vg$>c 70\Q/_*PKg7RO &pip/_vendor/chardet/sbcsgroupprober.pyWmo8ί_@9`E~ -ZD@UZ!8`vrI(;K0.8 1-)!/#[w:N1xxLޟKZ,pVkΐRDG~{zEDu'Nw2h.tch1t[^c x4t]m2)W3CBIX^rdCũ`jȥX"d'`iʰU {ȲosPK"p)URko RV+o*Eɹ]('=[J뵒sLZ 5.5/V35)DSPebi324Ef@ǬLQߘV[e~Jb0~D'^V%Mwz|xH^?J!,|m/:C qQotjVg[[u˰UpYfuj Mt6c_c͡}b=L>$$lj6[AsOo[W01f=:enp+9|f#s 5 |ٱx/sC}e{a:D?wƭ,nT -F:oC_uĐO|9] }/b%PKg7R֑g2 !pip/_vendor/chardet/sjisprober.pyVoHO1jt*Rtm =~ UQY^`fOomc0T:R̛yofǾ~?p폝>'ݿE5+.2d5mE~Kj{ׁóǞY$L\[f KSmJ~R@1߰4,vTkCnJufWӌiY2Ja_Fn|h䫯4J ]*4d$Mwf-ED||*-c|Ca71 BSxaoR!~#CYS,BбU6zxNCQ)3LEyfkZ^JBOԽ!qns?3aV{-ClTTQn}dRiH\$kh?0F`k&KdRgH;Yg>JKfq١p":} qqn2M;3wН;3gӉo9%bVKFBɐG:j0"WdFR)!$!M)t(Eդp-p~ǗTMXQWeUhr%rQ-Pk־l\?g/( ũ49b]XiQ &'='sgg: p> ^6il4m 9 7e?yI?RX\J/r/L).ϘM' ;N8[<bso>[_7KĽEoKvKqtq1QϽJntp@ZrIr/qt`[l2;L!D "^ +)&x]8{<9}R %ٛYL&Fu5 O\o?X끕E%uuFw %wފaHNA^vNCZns]BR/'$|mǾwO=OJ:*^e1X U-J2SkxdzzHP*I]oCRTb|nR`|x}ի_I1!7__146'R,yDgZ0ݹ>~ {|[šKᨊɞ(n1#"yt8 U˵4PKg7RuG=p 0(pip/_vendor/chardet/universaldetector.pyZms_1 $v 0eJ.o3nW'v{fz~7?}io_}6svl΄doumv{H8s;a㕒> SCV==`F Fr.!Zn=蝜^qU0viwZ@,Xa! }v 羧(]tJCRW;XvL+V~c燦Bf{DLW*&/m+B&J>ݲ .v=`h ̖lI+e\`ֲlʪvHq/^1$QN'LxJ? }1gȭAhه>77ǽǷQ`%]plߜI;Htv:W7] 7߶p'*&ex •zq t'lnsUfB'{3_d }Ĕy~XcqmOMΪ W;S6@[$K99.X[:̘Ar&%?q{b~\ iN19\{0$z(pYdxG#.LF^giK'0@x"zW [iXi}L/fKU+)Oal4Z#h1 {+R˲alyy@a!!xlY)AUx^ژc"sL<0<%D dRtL3(HcM9T ;*;/yIP:W\v{M P'Y{>-_,˫ʧ_4ꟿv:_*zvt#us_ =NOnjHl "_OfU>o?zUT?CzÏ%] oJ v1TbxyXM[΄OpH=V%w5l8UaE5 cH|4DIi'xc;!±mCIk&&ji*0U"C4:X :z6|}xPwn46x$HI$KeᆸO 'a]rc۹m*Job:?"t;%V3Ր+=w<DˆGY- 18M%3DNrF{%r9*]jrLh`ە[,4\>IM BO-v9TntlJ*!$*<%#l0ԁ}G;ĕ$IK8G"2~]~r$/cxJ~KGa~4"dIpw本Bm7 ` Q*r"Q HFl*q2s!]T')QHQ %ɂh Bu65 %'#O`'SED=SElEA^XzTbBz 쿉oѶF$.!oQ%|-!d c!ǹ)W(0\*1G ͱ8 K-Lqeg@PV+D zpNMX8 `7%]YvrN:ߤSn0'MNW* ݰ[ËΙg}`]:mh?*.so"lϨN8m\(\AѦ*F_YC:(dR`×:z뺒^'(-ihMuf-ƢlmZ͗߫%Rޑyʯd[2WF3$r9F)[$ւt*9NׄS*yĠ,HvB==eX*%bj#nxDw.ꜛ )O'̅|C~dzŒH$S?n_g(!.NrySM|]l^bͣ/%{Ч.,`Z*)DuNR$U9u\W0.g.<ӵTHrsCh>a. VL6Q7/ŕ19l2)*x0qW!SSn80T`jM|\Άsm\K/OCgO9ßSٓ&"=˞CҪU-\2l.1}BRxҖ.]Ir? WPv䣀-p֢Ne5tu&9˧ t%#M;mrU(1p7/sKNFbLtyzMPQ! [pak')C[t]_d%6EGOMG`_?/yUpvpk ۯ.]Yͮcܛe/ߪxnZt9HO1}.)I8ɎY[E?H,r{V`x[ He\ z+71z'ZN }vvjƐ#PKg7R=E !pip/_vendor/chardet/utf8prober.pyV[oF~WH NKSIPFQ,ca.]' p D=!x'L'Cmx?%kWLL8,VjB'F#|G.7@`pPFɔe`qd^Fa.UeFXnKT*6[J6vwwKg-p^CFenj=Yfz9+2RhHoZ~j gKmѥT! a9đ =5@$"|&n S.*PmPezggSԤQjSMaCƅcIew4YՌ] ڑ)47CijζPiLk=AT,riλ@u+|x ^(:M^_IJ gDLUH- ' _1xL'k~< az0 &t|]߶|]fk)Qf:U4^Myi12(lh\UY/A } LXV)(oF|Rs)U6El@M߻,||팾\ZX:RF%UO+>!}4Xi7m2L`Fta*5dXlƷ? gȞyuid"9ױCZ4/{P~ a ˮܑT~#B3q2|cM*lJU E &W.r^^|#ʣէC)bRu` d}(8^;U6v۲=me۰7g bIo +K> |cwIѧ vH+”KQ;#ܜ4GZ)Ex%T#E1B*zpgtZ{e>p kuwwRt1M5:рעV}~EqPKg7RGǐ׹pip/_vendor/chardet/version.pyM=KAD$w F(.;w9N0֚/1-0GVVhFV"|4C=̥JNH-\' j#E$TֶeJ~fΘ#5D ~0Gn֦]{[w֠j !KIwP݂u QUL[_*䂮F*ax+O F_#jX+Kr@h7%FZGPO[dpPE,qNK>R>hg^PoFҨ9 kˣ{_~FLB!hνcLtj!gg`טW2bѺ#V,\{CM ld74;譨d `شBi{JmBlCFؾqGk4`Q8?V ax|ussJ*o(ۃPSO/)f\7?h[|'|D 뎼JkT J&Yxk8#a]ےN"BsAT55*^T E|znZ/uV(v~mv1&^0z$okñ*qB',4Dam6nPKg7RR٭ pip/_vendor/colorama/ansi.pyV8+T5C-$Iq̐0&Kc7X#{%ߖT{n"~$|8U %S@R!L'~0[dRZm[I] dU p(F *#`\1H B|8MeZܐDxwϾbF\յ AF4P, ^m[`jVY1M-B]lU"x P;H% [JPbبtZ{gYS"-l zMii?اܔqUG}QJ%oeO@J Cƙ Öt]uETD\ K)R=1%DC|}gX<'KEȩbڃN7R#8QșN4ы)dTbv>Swꨵ(E[) %t;@m@麌^p{ŞΙ#Z]?3〔j)xrbw ƵD5"fug/t:2Cp&~xVS/&)]:2Y%Ov=hkDzLS<τcJ@'ٺGؘnez[WEn^ (ze9R ^i W{U1^W1F4 ^5yk ^&/xM^~\ i4u :Mp&KNKuHXhbe"=ᴌ3Swı,1AԶ1cȶejx}P˗CPKg7Rq )#pip/_vendor/colorama/ansitowin32.pyZms۸_?J%ijRYNvMmS3E0z]ui=_v..)O6i\IThLh*#!G#rr}Jӈf( X,؀tvy=#0bpT+EdDct?OZn"xh~NfF9%KV6ovST])BЊ<KЗLȝ9&<F\; I3 B)۔& K=3 d_z=/D(Q,X*~30^#Jd qJhbIlȂFRc& *yI9 %=wHΜElI% R57c$q3=g aJܜH`uKLj xRRB`${ #b*W$k 'D؆Pyu#߷Rc+_0fC@Dž ;K&qa4q1e2KcbFڅc79.yzƫRD‚Fv#Οgof=X# SPF :TEh<nɟHc|@7c)D_FwxfEftSxvS#}K%6agi2Gb87ba=Cqq& 63Qs4H~o*f`X+:V-9(Z 5Ĝ? lP0!sh Ui V>Ѕ vR 2$ɤ4, 5Hn vTĉ%"d@uځFSw5X '^?:w{wt}8|Q26sgLz9΃w{cS%!w FHuk=pKp\ X &*KtSi^5DrV^j;X2ի[OV< UQ&% ^pffkĐYe#vG rE0t,0BaWFΗa}ʣVm1gǤ˞c-浐hO,G>[`*Vt*$3#A0DU%,Fs@<6Ztɍ AH8`M({@RU˛ϙ(֢oDUZ8QÅt^9WpF1ܪYY7yarp2r}Ej⑾ŝ~С{ruQ!NO>M.:bb2 ,ԁ=ѯfKlvٮ^w]\|m﻽2rˬKf`0_'!]ڷg7@vO,z&J WfXU4HN,x%JN,%%ΞN8-%f+A2$V'3RY<|7=#ޭI闹MJM.nR5ntrM5[Ii׹M MnRUnG䕹IwiqSSڼ|TO-)DkM %V#75'ߖunjH-!1~6;mk5Mleϫw=Cskϊlұr"i᭍yS0@WiwM޺7 ׾-~5 uyt9σP|˙3=ߣF 8ގUm=KړT,pCԪA j8F{ǥ *i_T7@seG pBR'嘤)bZG$OG@=H jjj`A(2%*qB* #Q#0o`Qy]n#]+fW-{a |u.T &xLO_EhUk~."39@h)\zJTm\ӸSXz7BYМu_Ďɳ?۷P mXJE<+-L1!>v1@QovmuI!Gd&`U|bl.CZi1$eО sҩ&.R s< S܇9Es 70^ڛ0Hܩ)>ޠPvg|yh @]1WAlh;F?5RX<ë[\spT᪓E; oP< ֋ j6B к2$)M.x-#ӆuP`s^P6Ê%by` ?l5ZiyL/PKg7RoEr{"pip/_vendor/colorama/initialise.pyTM0Wæ R$eWpTͤ58v5v(ΗҍT՞ߛyԱ&?$3&##)+* 4"|]Ppiˣ"_nNI7o;uJHܨhA}s(&W ބD):;1D0>21ʱBfÄNjp Rf3պBy;NCmAW/HipKnbV]A2na۵=P@Avv`2:'SY~Gve5'ܱ*=qspYA0{LA [FI unٌM[gVbwm鞗%<9LJ~q]N#de<5zACܙ#?<:t{అ h '!ݼ:qÑaVCuzyA4A['43z;ti,d{$v"VsvNt׿OnQpt.1T j"K[Օ&rΤy^&ޠ ]ڈtM&I{;e~5'N>J7m7BSlCPKg7R Ppip/_vendor/colorama/win32.pyW[oF~%5t]yxpf8_3 \I[iQd3mɈnv,~|H`GO.lrܒQeHr h[|=hg%^gk%B58$*0dh|?sH>&+VaZsy^&xpЩB p>nIS! Aׇԅl2@B<1UpDZU XRH.m)`{Ie"ʔSiEae#^gqZ.7Y!mw5eP.U]t3 f>!^5oD]"5|]\zY_:p(v'I!7&#;/]`~UJ"{}N1Z}iw^7·n Y.: ]i4 gDybٰ̒g\Og]АJ_x(MBY9\yΨ#3IHpkj|3ԆoZA]457zFڍB]eu3}IwwxHB[XW]eͩн4ʸZLOM5fa|S*$$"9fА0/}BJR*8}K8,+rJ0KcNjۺ5׹y};a_jrd9=7X6«-9 LԹMeƋ3krxkY/f% ۈY:v|7H)%h?ǰ7!'g}(:(\k $WS^|,8B xLeFebl29HNj{!ЫFHD1>zO-8oZQfYeC+4[[ iT/-EDtC4ɔQK&Av[Gٟ[jK}VnCK2d >=$*hm[)n3/$7Qa=bWhhZc`ӝ0 "f@Z,+؋ih29'{?陏WdX8SZԲ}. \RhjoC{3ȷ^=75.eZX83+s7^Y2 J&1SQN&w Ge`+bWc}AֆYFH\E+SK vilSS֗Da瞴Qo qډcqLRUƇsE]^C˒is٨c"z R6UZwbR[`nwEZ&a);h64=$$IRD2ΒMm-Ys`̩|[]j@FK5\[Mܮªo>I ]\K1fD͏-sg`U*[ ҤCptj7b'?[fa-ɇ8Rju_d"$>Z[$0u2"<vG-t([);*Tm<%Z5czlnNun?Ggs&TӜs `Ns'1%O%ly˟U9ѦjK~m쇴ѾA?M-2)3`|@x=Y]?]k3F0 @K?d-; Br#B^6*#,}};PxT#W*Ii$4 fcR7 8V9zko0u5 +RB ;RyTF~dq7( HβPKg7R+6+pip/_vendor/distlib/compat.py}z6=Ԟb9%ڲsveڑ厦cIvu"Y#Yr'߷OVo9p_<<qd͑h޾8.W*mDp<O>=>eE*fdqZi"R4xnnB>Rl$j2 >`)M˴hyoNO^ͻFDE"^^>s-r)E۴U:l*+h~]yۤs'/kJէz]5hOwqj)rRUeu$ľXU2:E M+L,Z 0yV,Wp9Т9=SH<}7UZPQOSzܤz"F`$FXge}>n '_jqY,WQU#k#|_np~wAmkV9uR)~jeVЇzg|L-`yv@JB[K[649}POVQs[D˔IS-@)NA([%SA 1'{'IXpmW0#C,&PW$ (WDfz̑|mA,ah \*|\<Q WDhv~" i  jEY|kĨ^ B|UQ } QuZV,<e&yA]16-wt#-x(YSb2C X8H&O%AR˿W. ,CqXYs)@ KtVG; L$ƨ?!M= O^61 o1;So[*[q7!6|(mb.#A 0tx`zq8/㻴 olD3P ,.'~N9Bɵ9JcQQ)B&‚cT8tTwM 2> XI*3AE[Zwh^&\p? Ft:D ȂaBJR "Hor|b~oޜ>y>DPzSVZtP1hȟAg>˛:0t.]O[$ ./$ ؂ XyCKn{f3U\Ej_,5x' r9D $E99 +7Ȣ4?gk?i?q U" Q"yT=,;pڃš m 6FGO(RdZM?s;ҋo%2tԊ[7~ .lCczɤ?0k0 ,!`OUA@'7< 4zidޭMs og!&HH] J63qXg@kɲ͛ E]ј2^GMip>O*Re\mTHC͌=ɧ21 ^ceV_|Ro]"p>HzvDa9&\) E`TV*("2LF B {iB"ebﶆfUY!^ aQAW{ @P4 z{d4q D?= 6=wި39) Q""@@۠A<ϊOF>oGwDw(5]"K }LaV=v= #$HSd_r!1LGhXzT@f;]1f$ieu?\Doi-6kpY*M98hpW=*Qk^Frj&JB)Nk Տrڒ-d9GvzM2$KɴyvjIC hKE K@.;3-漁u)~ЄlCI*lA&F)ƺ5fgZ/h59թ`)Qe J@X"EƋGGwQ< ߎIkk'5daF^ֵ;Cy-\3 !{\^leWTG+Je_Q5MC,5cRǓawUAY@wcwqCk`72l %='^b*a%,W[\I )0@(c2 m)ƀ083?*X!l0C6"n룃!$[n])llv@;{E2S[*krsVFoǯ֯cR]EWٲhڐ:_v0HAXv]sЇaBTꆉcߙF Jl). u!eCJ F&F@Wq(n@ypɴs2v=j~ _MFv" E*n LmOb= xGc$tx0BّOLBBHKBUB:).-i5Ir0`sSuoo.^|ΩveJt$KU쥏ˣՏȐ9,9JQN *Am?to$tS_qhg@hclD*/tFl M(\>ұh1q0rNq&FFht B#R8hV/o!)M΁ h sE `a#tu)jMST2 )6^y@b̉&KgPY|Bj^7*pPo'W˙e/n4`\vȊd8k}\jZDg$e)-MŎ>Q=\)=ja<;?>=%+8eUUNJ ~b9)w >-k8R^f5M/$]=n}Oկ㐫x4Ր)T.ΊØuO:>0 ˾h-"qz%œ\;d*re7fr':f`O,f@7N$mL]Qw{G##ב3ltDĿ]([tJ[JG,?i9T%"܍11ǚӥ<>f{!6{(>Ʉ_-l!G3h><0pL `Ì^TSZ(/ٛ= Mp)li rD0M=}f[va ϰ>ɏp_xr??|)9ZH8ty<Bk>bw#PɜK ө@Dnm܍̰ FYmDַA Vz Z:bqyA--ޝ?q.pru}PC0tc[{?D!1K) =1XRvQcxB<\ `W쬪yzih߶a%fJY 7 غUiW(ڏ!{}L ֢ Vmh -mFN8TFĎ#XL'& 8%ei^i' Lo!hGޢɫF>aps#nJT]Ò[Y-Sp =sFYCo%JE~3VoLtWBUci@-\d L,3Ģ/x *΀vf齑/^Kgu8b,x:bFEZ 6iTS"G&4}PM\'=B7A+I…]r}%>h+&Ƹbz,lF2u@9U4âq~8 Vi6o @.ar7V Gvjz0zb(aٴzO'׻8Wy1| _':NI+wFʠ' V& 0fyj|֠j_*=\yH&z0nBí\}L;Zt P;7mbYkRMN%@p')6^E*Zw79)ױw2)y򬸫9uN5\xA %tʑ5HAGu`w(r ?%}* Ak-QQPu5b9&o !W !ڨb;ħxݡDuUvjj2;Wn3$PG@B#].Thϯ8;Z<}g 1֔E5QrhlOl*KQ&lmUsʗCb M8gQ˟hq oTl[pd{}kě$AIZ<)ˣZI ǗW]ZŶ9Y>zɶ~CH,9/(^w`1h֯\?͔?;8 eF+ {$KP·L&KY~C[19*Un$jw/rz|xΰBs^ɦYmL/i޳}|k Ӕ8^{(=lӹ?~gE a׭`dCvyԟ#͝wֽ%RmkSR3,k;k@hBwm'.H-0t̼_ b_9}q\̰۝/LZ1'dNJ:y-ܖ(G"*]'6K=ą.CyȾ݂&FxLo`=gOfBnC;4f&%_X!+E͘b{QҀbgTE%,2&ho޳rF5s :8e+oT Qݤ= nqlGDqP-t q0$\i{lyLl7Db7XTH4z7 O +xC/=H2K/Cqt+%Թ)]0eɝi݃vKIY}:hgdN$=R469XںP$<†QBcd;l{T Vy{ pH $\Q5$I:y:sNW!ӏBKbfF}_|eJݧ@r|$zDuQ+iұb6B$nǧ/_Lΰ̸g{97.cbUmFUK^ֻy)+P5 U fR LoB@QZ2H&N`nSBr\~;U1BwMUYޗvu, ۿyEVy-/O!oh[&ʁ? Ɲy!F3CޯbNŁVS]K njr2v=bOf䭢Cs}teI3IbA{_B[VXS.#[HX1wEMˆ':#{ճ/K :ݗs^}29zZ_'3O]~ 08O&lxCӗO~uiϧL>CB:Wog|ڍmNjj{j&O2; pd/C,LT0ϋw(,]pc{PKcaߦ{ͭu/%Swt@&dFfXU5|78t*(7٣i{Yu7"g4%Ҧc+){ el` +u2W{;XlvGnO6MuhC\)^S,?5S`t_^5o}*xj wqKSEq/K((F.u ^em8E2.|sHPC},*b *uKYEdN=c9|0)(]hT#`ǕH%&Jl Zh WL n1o#J$3L L /l@ mrY2[qێH蹅ݞ}hy ]6LhytQ!PTEov(Z<,~GkS)6O&JWJmfn댐H.G_ll[!hώ[="UYUYYQ6oe}umgzۖW}6z6ξ/?>\n}Vd6zQeSO{!/~6ٳ7?{?yv=z{6dj]{Omfߴb66Mg YU-@>,:Ww[݋*//Ewm}+@+E~_5%';Us|^v8\qA]i碓- F>m+Ϻ5g}_w5*Vgm۴JCz^&٫O?ξ}髳Iÿw30o#V)[I6/`ٺm֢J̀Ffr[Q,faw쮅7_;x.Z|؎frN-/7$ zh!C{<&Ϯ^f-PP愄&Z)Km4cT`g?}{bh x$W=yhKU5=xj8}]ٳ7繿7=;{IC~y}3;qJS,0yUt]6{2j.~|Lc!+OSQ*k^.la@[%.lԉj)( H \L +n6kj-60i8;B_ϸW} O+QCky ZpXﲒ2{cSp;d`bAЎ%Xd8k3c+ŊZpKjȯϵYձCs#, ]mXku?@ʢ^Џc}| wb +άYD$ Fv]ΉjA1''s^m@iL#̓A"1V⪘o3BJEFf7 )2#2o:XCs-Qn4{b^.KHC9dq la~h70n]vweU$hnu kam-qs' +Thӥx[%R+2L-'-p݉h`};2?Qa{, 7ˊ8Od6[3hryTQt@smEFtQ(춨6IϟZ14RFD'aǞ;HG,}@R0ԸD0[xږZ*bs[ $<~Y-)`v<#w"0ihu>+*TM_y|N,=^l$WS~\\EMo`g[wcD0(`Xِo_`J'ٲQߖmS= ?Aimr>I!,)zSig~DL(1@p8ܑyriRQb ($dAک^;)ruߢ`>!x|4gN ELZW4T5q|0jx IUh#Oʾ[]m8(iMYNamV6ig +{hŧ7%3ס0`EƤy8;3%]Ƥ-_o1)la Lt H]Ոi8N%竌KAw! _7_wAu kh(ϑp@RθhjnHJpd9't[jv$"` O4fW z{˯9H̯ɳ8:1ovg_LϣIt<{\[ɵL l/Q^@7 5@m5 Jmq['/ Ϣ]V04N4Nl( Hs?WwAjBgraG XxW%D׎С:T( MIXmya>1Tm0" >_#IBi: zǖA' !\o]&<qtEOuK5%)P9ݬ  ,=&Ʃ3B\$h0-c/p!.G=12 `(EۗMUx PpG:Qk}~g5 KMHl5$d %Rck{8#m'o>K( #jUBI)4H8yX{rKwmfhP*B2n8&(ȅd ˬ{Eg%+6]b. |%;"b'^K?$fαjK//FHzձc `C-q`KZ0#YG;%0o.d>q(vZ釗 Jƕk`e?R}$ĺו[ ։&XP 7T0 ERVD]_c/JP#4C[BjF?rd e`$_LD_{Ʌy-ZX S $cNubqT`V$mZ Ч2i:7=?89=(&M:Վe[# )xJk (-7(_U7&UC xƪLd)rQk`H!2Ä%SAW(TvnO1.Mgǐqc=| ;jk3ObQ5<25Q<b\DyL>Z5 VbMX$]mH1-7wOZ@S9Hdc Gj9Ï?)85D{)_^!0ੌbbUYv)4'٫_ǹ HP\ttLx{IbS+p=fKs_ 2X. 0D(nT':OrvmnO'2 oH# o_y0@D+uUP`M3d;њ7q}m/J͸]R.JXNg-y=A򢛗e$I# :&$Yp|&$/#P_GF po,V.P@W7x|AIX 2D8q~86MEr jG؏g:'&3/ύ+;D34MY':E;9zDrzSEYa+a+ Ku~=eL\8l]!zΩGt`RS)0/;4ROn8 RD{D Z*lŗJ"0'D9*~tQ HO&K;Tmw'%z*c* wֱPE|,@AJ$)v8Ekf 5\uxy߬g֕{@F7Z{>ڱf-i/sڝe$|7Y,FFQ1jye y!diO D"pa,!QY 2 b[8TF[BRs / Tw G`PBy+ f[P/za;CӉO˦B`r\ɯ81Flyq6mb;_ёm@ zSsib*Yd]]^tw.*pʽJU~KՀ.U޹(eh~p.LI!e% YmwQm*QН)%|8;Kӷ/8VZu-KF1>+F'dL7YY6&͂p(LkJ%sh.u 3xev LHJj_I,OY?>xdF4$gqEDLI{&]+/}RYGRf%A!Q=V [e?..Fj!dyIn [˹1q9CM=XޖLcK>sa\6z-wƄ$/vѝk,\G/j @]`kuS^ie,RQVuHu)`/ӌ̄ 5xm "$tmns*Vku,(-n!+p|Uq) a哦d0 Lvtjǭs,s6oECzӳɉvR}o)n(5@10 1509|)+v~u_U$B˵EkwҤ,E#Bp|SE;]ĀTQ 6lvR1/>5 8! OMbf}VXOc+ Vsb cB7 !)ؓ;hRkZ<.Qd۠c%}ﴰBLvldP4;C+ҕ|utF+d9ח#<+PY6ZԹ dFAԬbe"De9S >W)r~K/DXxxѼs^!éRMJ]ge3TY J8rpia&% X2v-l cQt&VE'd"قVg#i'9ͮqO' eD$EqDXJx!N~һH=`1v8k #ߑ0:E,r[!sV$|Z^"_(DҚy5Y'zMs:9gbJ+F4-T&+% [Z /;;$'e@ljx.tBBAM 3ʲ7esCv5HGhή6\6f/jf(!h Ф(߹# 4= UTʾ,\88:Xjq>hFNE;wR,LeV~-qfI1q:({ނ׺MXM;Q7 fDWsAoX ч-pߘU,**g9i4f<8D̳{i9+=4 v;E3@fc} uaT2W:*/ɟ~ 8Ѿ=ڵyS8O<D~7D6KcgVKeI%KVxuMJk0vg8Mu0VFёpv-GfdI6xn*G;tK6GO,mLs5 |Xֽ0Z,dXDgr*F!'rXUSvGF½U}OQstH0Ljm#<_hF7&;"`0llUސQM+0i~qq$+ ]`V2ޟc#  /]~1#V3LG#!N:M<\p28N|x,GYf+?nn@u&J/$Ͼ"\ iJaD&%8?8~2iqRѽ]WvH!.E՘Xl*_i ")R"gt)5%vp~MMu,*CICٝqv`ܭ/^6K(wݚ֦]EsdM+\Ԭ wӾ0kA &:^CMRoЉY9*ݢq~su߯>MY6SБEc"P0JA|5Q !^^ 3 `F qq?;·~rDJ/ւj FVN ,% a'dMF⛠VdV$_b8?՚'^kuK@3X}P0Uh(~/|^S ysU*kKЛa[YJqP[$KZĆwKU"O) {}bHAƥ؞Ȥ'uўE*M hjQ"fW;r%vq_rO0{h&&/ke"vKc҉-Yś}j%I)!TН|j؋L*zkcEEDc*51'/U;ۦHW٠g*UsCa<ξ}3E۩D-Y.70~m"QsCC}&oBu;)Z; y$d(\^G6~$Dwg+#kIV|89x9b|"܁ߤ,"y$C' 9dRLO=L: ''M< 9/=uFy9=3cqc-<67kzLXf}D(TexH{E/rj dy~Y0Ml;̜({ K 4ō nl_qIk8wTQ `DmR+vKďm cYPS"wYbɣGZ~䋌.Ee|C Hb^ &3FcXIywKh >I~AwwX/nmx%AZ9SQN$Q(O89=2†tID*`X\F~`^&Ka`7@EhiƺЫmQwK3* fo4 w'5#]B2k""pHfݔky/MO&e%?Kr ;r(^?M;2ep a"?e(L-8$$sT Yd}Mߵ:w*d}fv]V⼗Ac*n:p<.ל fhi96XGfX3r_Y!O@ngU\ YfЀˊe'{CbqEv.QCҫW1- H,5 =岜"@HE5rT[wv(zaG9kZz ~KE >Ok^ vjÓKzkQK 72Ղk[s[M|3Bv%r>:IF87x)و3zhb,V_gڥY/njǙ͈<6):/rlOeCɡZj+I鱎_-SdVT$VA. >1•. !ܞHo?w *%rneFAlѯwǮD h ] ݸyH=Aб=aƨ9$ym".I MŻVVRpb?+C;1*cΘiݣ !]t$b]}Ezcv|ke{Y(E bʹ9w"JA7ХG[%'6EaxI}yd|q?QqlOab{k[/|cgb. +*qckJd7Ͷni;$TVu pDK>(6ynU^ћgef1*Ok|E&NtRYUQԓ6;uݝT, ?2ICf] e Fn'G-/!R!4 45faD+$3EԬѿ =AX#HAۆ ]yZ hVWt1x%%`Uf1: !ig̿+X!AcC:j*'Hh_]yTz\-$B=kLOVKf&/LI o6G+@PKg7R.3JRpip/_vendor/distlib/index.pyH^hUHI!U v"d8I9HBup;{S*1w;8b J1>"Y'E*iF`2ᆥiQ bOF"÷#zFx:a2\s+^ w 0 xPRgʊDO\jh<h}~qsg4"fë;e€@O*'Up.€Bemxӟ# hBK8$ԘxׅʤuϾW(%$&090!hFba04,ª FhUoQRЊ3|bވ'JmNn3Xɳ@%ոPyL#?I‘C!v1ABl%߲eӡҌ"sGeb F4pXTU1X%P0Uju &&ų$NDA-!4ri ΕD7-wNb,8&72Rl6k,5>١ {j Tɘ:]< Y^cxLؼ=֖ t{N`P 8 x;5<".Ⱥ!>=$[[+vOorhw⽟8}QE(яC*gv&AWPK!H8/F0ֻB-qvk0n=0iL7TmqC7`E?`If}JMT,0::h뜖tXO $+:{+nCS (b9|`WZ,P;jyW i;-#h1Zg;υKr T(FEN!2de&V}|"(rz:F 8ח/fPeU`!h!rB h, _|BA@bZ H[Ȍ@n_I7LUO[;44\h<_@"uo".~c iRlHPGw1m ]:z[5e7`n^#Σ75vtCN4O UUdؼaGV(`BԙX`aw6$M@ϝ>>k3^ZA,BJ m0?: HZbxخ^Tmd\crx*xOUo_ t_נ^P϶ZkA? 9ƂE Ԙtj0~C5p>$0B\%u`}a*zg.꼭/R<s\uݐr'9d;d.>~}➕ {5Miq&j ,Sz*!*t$VJbG anb+ =7iGۥI'MQo@mk!nm\fi{W"9x r6ifDb~M)l]k%o%$\7[tG!0,+* *[ף)kҚvøPK``IlE $eOiBh"] yShZr`S(4* ϻތZULHE1&=\O' ^P] k׸Er>6Jb=gF:6e_9Nn9{N%`jп>:wgV9n9v]f8S7gկaM25;}:RF1z23w/Aغ)cP-㇏-*7m %x?@ܾ$sxx vQcK~H[P:o(Bvē5l{h4gV6(w"v_w%$'-Gkc/9ڵL.ӥ'Dkjc)YDgIH)S'ea csxJ QuKd=_VlW2G-pּ}eC{y]fM]E4֫4 WOmy<_—P [eyY߶uZ=QgUX,`kQOޮJ(Ӄ܎xU}U1 };Ku?-ˢQ.*yIKrY "+mMx4MV)(g z r"G|XeҧM|> OzD}l=n uSX=OYOZuZ&[&biׯ_LLgw0K*[\QPoke ݪ%^~Ox MFַQI*c Gӳ&^f *RO,]d]^z94% ˦L'2ˬ̳eSHkO@ׄPK@ WBh"DJK,B\~ RV {PȰ7?A6MLl^FQUlLp!]8N=~ӗE˔P_7xÃ'=~ko+DD 0??w~lדS)UZ033bfކW鷏o Wu,*}$P/DviE0כ2R`V Rpy0 2`o#4ɏWk`˰TbN,Uq8Xh,0vcկlavXS < ,oe ?cbS}=RQ|>J9Ydzx(sI˥Qˆٲ`UvB+r8 n:Kh Ŧ2zD[2ptP5Uq2]6HT hћ4&1O2 Y}d\Ps$ `-di:7*렊ux0H}iςe 87gsUlIfyPIM$7M5".ʪjG'|M4pLRd&OUu#RHY VeUA峢I]nVeʀVbOa|(`P~z #g%,yzˤAŪ;,e=M ȊҳqF9ThnqXjb9sI?+hW!b=QZB_" -*2tg߸GFvo&]Vi'B6+ K}Iگ>jP]'8UGQ3$~%\ a,G>:$bSthuh.8T}wUfۀo "ܶोLߦj)@_n*d> V X0:{ͮw`[lU\Ϯ"b: TGz /,jbF+Y}uh+0 [ /-X"p'^&M1yh!SXEt~e&~0qu=I`J¡$w˵aoy.)hdwLQ🸆;DsU nķ&#Lni6IDz pu6Mʮ7bjV+wʣNL_ "V-zAEvs /A@& zMPj9tm5 0м;7lMO$V\yfJU8b͋7m\"ljRh@ MNrtjj9)0ۦ VcE y 2ěQ*[s4OfDrgR+SRebc!nj^d ؑe**k?2A15;X"uLvmjtdԸ8Z ܤc_50armV$ax^R͊2%{ e?k4c'BH]L)J~t5MʓtFXv<ڨ49gN^uߛ҆u. ɜUvgi д%ixttB#ElS˩=T-%7XK4NrX<b2Q g#ɑƀxm:=.Mf4n 4Ц ,fZK%[Bj `1Ttt!^ҧX_1<:ylG WiMlģū$nUi,k`-lBAc8 [1:_^Pk)~i_x TieIjybp3k h v=w6~>(Ȅ7 r0 \wRp2 ,Gm\>T88߲bck ݕɣ"gHţ 5ݪikJ[ v t [< wp7/Cl;(pT5pz?"ٙDHdQa=g Y+#٩P1䭶wtP߳'GݬJ7c/Iu ֹӤZFƉϝ'>G°Pd}Zr-nVav[l[U+Qnz[a'NK9\' ay۱ 5)6Yޫ8Bٔm5t$pք(lV2 _@0r!RE$P'ݶawDxx5❰JWK綴-s=5!mH(TK^UU(bF `x9]v:_3P4 xcJl W4GBǢ44C*+tuqG):.Zc-{O\_j0n+cKqa)j"OڨUKS\tkL |lb]; hUkO*pnGG3|B6[o(}[gUK'|Q7!NKWChX^kS,$-?k^%dZM['/N0dǦs)ufPMs^>Na#YD׆%/MO<͆f.6_epgŅ`#D-)BFtc/ua#eUx/ _ˡV=G~uW~}PAuֶ0uXK:)Eʓ&3@Y>>THT*::hߓ ХZ-1!Y=V/eHAD3QAo=|vQzWK<( t~lJ,Shy;I <_!*irNKJ ꛤa{XFb$L-912V"5~]C0_G^țSx37wx>|<[is66<s{ zs;̴>4:v:nШ8[;|tڝ!v3?jxzck4Phғ'Difkp.wmAN\' ';_/уg_Gttoͻ : QO }Lhº.mz!_dP<-6JCLd *˛E!80DR)SgK-AOŶК7)-gj0 "x5Mb޽{oы6tV34+tq[+OI]AW+cPMIxV͑p^VXe88^`jzf{+ڷz%[X yU5:Teni!-[j.rJR> =K "nOr֨mTȏEQFz mo`n{K&԰Tb=+e+I/eu;~srlEJV$5!l )3V5>oVD{FȲ(jwG-&kʗ3J<̴FQk~gLRTQ'&HNJ+:Z2l ^L1<ך\x@@Rյwަۚ?ĥnT8q!V5ġ$S&k{K)n,lR\p(a\t"uc/1u8_HTA!lk*/a >+Vj>}"m-C~3NZ"*Ҭ6> Ces-M T`aak\]9kk-rGeOcT6GDN]\w떃['&*U<+$Lm 9'37} ұ>줯`̴^(7̀rFΞ*UNʩ6YM!:I ǛL`䥥|R=̴8jh27DLY|XJ@\Ѥ骅@߀G5: jIڎYR/חWvpɃNs?ҬDN>n451k|wD $yɴ)(n0tpu]JyK'dnd,iӱd ٓSm>6ɧ)@+>xA6,㖏ȪJL:l^K:8'ĎZSIˤ2nf|Q"mR}/D%F@̜NC|gWJ :sUR$:#=Ӌ>k@gY"e @h<EB:x2tC)-B vomݡ~X4 ֬`wJ2 #Ueyf*]`9̟߰9x7?1VjH"wxBa7+Q9>h Ž9b1b2pjhyWH X}<FN)~V;!w]2ڢ(Ȱ:uf^& C%eAG)=:*0G|u?-HIWv^\G~r j :`{8 d7's1FL'p 0oBU858Lrr$wOaoDyXc &gэ$>(wEgpNr77`ཚ@Q܏bf ;xRIbpt.V8*F7831&#t֊Ù`67-ԶG䘤V[<[VmQMQ 7 rE&wqfIU+1\um򞏑sJ%*_M콘nUpK0鈽R-P 3GV{=HRY\C]%EyNTGͪa'l$ &;_ـnuhͶÀYNnoMM|DvXG ~՜z8zv\ Am3r&=k3f)'_F[(ӽU%ڹ[9OY ޏ }s?Y;z1/ hSI^"s~d>Qjzˍ%JXK^Z}P3}UyKPn Zy_~"IƵQ-Mf2ngL!#nhm-< :u (teTFt:DB@ ͝ ;x^ T5RʳbܛcQ3Б ntՒ E5Y![ͬ5INɼϭxb.{MOWHғ)6#;$<\inЗD03nNF #o$?MٗT7]emוw$Kc0[+y S..xAH{%2PQE9 ?2]δgyP\ؕ\Q$X9SaİOP cBL1[D ϳ@Ex 潮N2sIc{M0^{ o jw7Ypm2o$$a:Lci)3J۹tQvOxdlӑ9^G j3PZ”b^Gl(^It&_PHu?NgVf1.l%WuOlˁ kvtIA>CjUm ;oӆ l8͊!Frnl#f? *ߩ(]Hhyd=mߣIC ֝m7 n]32jޡfl3o)>KPS~[fu(a#I݈n'?uw^ӃBx{I>) tF;ޢhuJĒ“zvgsy/ɣ @U96Q u_4ԩ-z kѷ)of3mx3 _et +V{w" Scqvww/\mJ&^;{N*gm SNz0n w10r)Ui!oyHI70}Pf-vNcS1) K1S-]:Wh٣Vg/9Id/2er-#LrQnx1W˟Csa1bL}붪>bzV{\ڳ0; H<сyEG?PSQnIxD²ڶ f#qUjlT.d-e1)O*G0`G'rσӇс\^1:~$U|Z#շ,*\!zg0z].)ܐz&Pz?O_z˧Iv73Na&/C> JaSiQ$]אYW*]2Fo]Wt OК%FEzAc$qخƏׁIDu$o4G;J()krMޝDW-DBfv&8.NN63&\*#>zWM[OKܔ;K`LGհUW3[^u#*µ7' H`Α?W(RM74|ݡ 2]wGz{I\Nw]59|8X;*!xӜM{r+LѦ= -h#yN.e-_(G+)%[xbC.ڔj i.tԼonu \Dž0U;**AD?0weKm4.bmPs+Jg zM?yN,+<+*Q:* dyao|YdY8l'cC*Ȑ&BGeZDS2conدAsm2*x蝼!Ά ${s  η+` 1 6od̉/@w"[-R${no)#˦/P쎦^ㆴKdJMμ-(lߋ#*f3P5&׶1 пՎ$ϥf;AJ6yli0::z,b5ֶIF;szȀ3FkP4Dd<[~ UX5Z# vג>ܸ}c"S@De`Zz9՟N'>r99i < 1㖺@ Q@1wq:&[+NU!-=4I\^T"R{ڥӽ)-8<{Am%Hu"dcB_ _[213]bFen(ss7J.~ii9 5\^ya./ k9tyIlH3#D9bO ^s81KuQK;|*μUWA _^6y-W @On`.duM=N!XWEwloayr5y~'Nowzb`M&ck Cl qP6! I639t. 02cތ1r jIsa۰>nkyyq2R*бAk+7#=cEs;Ш3'e߄s=rI rFpi")%̬f)Bl9",g ӻjIݡ7Hpk / Z'/T&fn4|X/=tٕp =%'!\$Sb+e9m1iM.K/oTZI#ʼn(>*VUGM閳"B^ET鍛uU3Uc\ONӯ9{vQ\ *i=OFfB;۲3-kz UQT Uf[ %]IΔf<ڏ5.7D1|DzfJ [TcS$}1GOGv |»tm{'Nzl#r=@x".3! ۜ~GU52h=cvi],(f=[Ƨ-)y=ާ'WGD{W Gab?Yn{?xKTQcS(> TؚE|p8=l(*ځJ }ʮ$5U>F025Ex7Q0-eQūBlPPKg7Rx5gl9pip/_vendor/distlib/manifest.pyis6~o+13dgi|;P$$ -k?~{HmLLû/@;l;bl6fe1 v;@,y2=޷/FKv."cbZœHDê هÓC/X??^_K7x d9_\X1,MdĔMKd,d1ʓIv^&wa kX!hFR \=d0z)-s1IBoXƳEXDs5` irnZ\,w]L#Dp$˰02dY3E 4 Ϯ0K\`^k,/>;7pCvͦ"MŊlVe'ao.'40puڽΜ!>pak}y\gO/d zWr7NS@eZe)P"3g1@Aa &StmA5h*r{H^{}=p6E:jf| ;.?= ~:<8:E& 7 l*{ xTx(ۖjO$-hؑ/S, "Xrq]' &dZAVV0A`@1N p%O`.'"Y3<$9EE0^y 8cv (|x) 9oswDƧ`>ڄN$uL zA@d0b&(p,P\opD0:%}\h S$Y9I=;ү+#*(J@ ~(n؈}hpXBeQ|@㗵NMsHrK\=|8a;M5+\//zR,q:\/%Y\j槵;rƀb hsAc=D@+iJ4VD!-jTN$1=&'h~+dЄX Aav֢|ҁDKik|r 6^gb_SڙL]YK5޼;ީQ%9ѫvD[UƱvR m &E`lepG!壌Ƈ "pr'^P4"\P^U@-qf[*t Yq4ɯ_[LrblOZ L9&HLTRNWHĸюUa*7űs4:7V_ sэFCo ϸi*yc>)ga ,tPS?,fO,ڵ=CXz$iR$%b5JW3: Rt<ñP[T.Ol 1rjTuDҰBӖ{8O;Z:\5,q\; uJ BzqMwSko0=%$FSNLC@]m@i<9S31 Gs1Qy&$~9. qVY]'T!QMr.4FwD$T͖@Ёu%`rťd@ 5|̋b9~<g+hϥ(w^,m,{9fOUqdrM\L@"WΤ A~ZS~V9aլKtm0HI<$\ŸL: ܂Ss/f "Jx p0R6 )|% dW)o:(Ck9dIh4XS +[[`V *&a<#Y zgx %B5P$%T|6 dNRTz0e<5}$Y1wwlvdu:RӰ=Q/rS6C&T :F=,N%EKZTAԦF45!?]4;Mh}/c,0}Mmhmg{uaKW A^'T_\|URhqE-|6uSo*4|-T" քXuԳɣ~u+X~Ӣ5 { D˨R)eL2/5(jţ(zO v65ا2gp $Ag喌"0yv/K" 9B N XqFy\6 >Gr;TBjH% =_m<ҝlv'AZ`BnQi"U[k1}8/7J_(dyBOAqS4C~rq~M1eX'4ΧB}9G nor;hZg@ʱ,u bMcZ \zڌW]TgZ۔u3gB=jKG':2nw*uh`x]=cҎWӕ}lMnu+/77ף} YR8&=ćɬ' oF&5-jz0 2["V, }P?&2S\pl2,d.ދ)$]SKG-:uסPP#hF~̒,L(rxzfr/B9age@*<+ԕ r//D\ 8YcD6DIhC;,TTYlaۑc&Pα=}r-U IݚIwNXw4!0b+(@S13׊FjVsp)at_s_5Tz$hTplt@C6iJnmѡr 5" &&<4*XnRV2TGl]P:`⼖`X7iLf{/I.Dt T%a PzL5R[v9DU ,shzE~9 YȤ{1Hsjw~ ݗDZD+/OYu[G2} Â'a Ó EtN(mK&o@oتBukS˸a@OEHz9m;wkc8z:NszVcu3SӪ"(Kn8^o]nH  *^o_,UvsJIvxzwvo|MҮ݇C|(`cjBT# $Qj]RRoT)6G:|5!ŏ"z'o/@r v#;rT][(dk_Bx!Y iCaL:pibUC!3RGWNy^)tVݸyV) .n+:Ky0;+wu;]P`(\u鶉U.C4DґdtDwoE}]icEzP]k ( :5hTٚb%5Qk *xFU֧J//7R7ୱ؅yٌMTة( YSXK-@&eU0`nTx8]"[ ;l[5j,KmvnЩ5ah}}tU5A|c8F#/~}&o t4]rys]PjhڞrWPKg7Rf#pip/_vendor/distlib/markers.pyWmo6_&(d+Vu-sE40 TFm62TbcX"SN,R9 i-$19VʐYF^|u~!rA~udB91#W[\˅ysو95)B]k\\rtt\QxL]1N`2>.fL ^1>"ؘc7Hj1x6!,H0 v5ghD9Il^~i!^)tJ‹J %_;=1q"u%@[˻A^<`c/ugO f$oڈ!yS(\s} 0es(橬ӻ}C%;Z-c]2^eugn=Uowr%ߴ;/Vn {% U$,@3Wڹ}vXRA"l ^d2ej&J Ӣ^i= LSy+u&8Ppg̡'c_ܠ7NϕMs _ (mvWNzb=EސpMjCf 4F? w:F]5;eY(V$ mc;8N{h#Sv?&|T<L=3h/X[n mSm3GfqR1uΔPKg7RA`ߥ$2pip/_vendor/distlib/metadata.py=wƑ@tHZbVmNte?IN + 0(YM7vRJw|E󵳻[(iV\b_dckc+xV. g`3 NX殹*฼hn/e&MVctXx:n>6ARׇ'G_=y}t|9+A_&pIpQVE2N.YŢ:H< 6]Ԛ'5ղzX#^/Y%&>0dMLD#Y׳+!ӧwӣׇtc{ͪ`Ov _ҳ(dt!fyR׊^eu eUUVQ*ݍ>0@ğYR Yym6geqgf%aE4%4pm`\ƅ0I>ج,;NUH-V))_,6sP$yKdxU,Н`H2]k1L>-{i( Aۯ9MKϰiEPaq(Z#\7vH"+$T+v*AqM`$ bt)#M0=H$j:~̚bp"-:@(hn*fYSkFҕ 6?$F[;_&S!qɳ8(g%Zeq GVqqpPe[@&gp6T[Q/PDh1Kŗ2g@ G`B :9.8؜9-`/5r5kl\Xd5Xx! =}wrΊmUa~D鏛g 6 [B%et&Ux"BY{d=njT[VE`P^ܩ㩥Uk⫥挠CzI(LE$jIURՍ$=3<Q0kha9T ߣQt艐o UR܃%ZMp~H9~ךs@]:SRPZ6^$y6)ElCLp я1y82 o_c|Xl`#m&8Y Ր͢v3IB{ȹuُvږ\ual H|`"6hEj#|eH4lR%1@"/pzcy=ؼaXeyce˥zn)t ["d$HHj) Z$'k"9YICg $?H~&?z-n϶twqZ`sgbL\\$(aOH%#+d)9MI!I*u_?- wuY9X P 8 )w}F _`p=֥P5T\TҸ(X#`N 47 $ ͸~JWqrN#i&npu hX`Gu.5xu.XlzX ${{q R&Ưop(<|1E@k*_߲*!&]C(3&?kVe뚖nh)˼ 7tSff`>&"8l |VuP $iq AhcAn(̋%ωsbc@$<-bIq 62=bRțnSnWfbL(hn?٦8TO5QqK;pĊ;h 9*jExAqY]>I͓[h瓭,8''GR909&pEjHy2chslƛ]zOF&}AˍO#H i*ᗡgB@Zy~ldjɜp?=‘],,bq|b2lv//Z7#Ve1C_`hU9"j}rjl$ӗWÓc|o~nH;D bYyGV#e Ccxةq,|?oD.IMHXXZ^Ja“,j0ұpVA ?R }rB6v],Oo 'N``Ãlqvh XGR > m W:/_3qWř`|aOxԺ8 5rf=yo-̜Y%T'olq -p]DrҘ gR{Ʌmf<~.{y]",O9r2+LqV[5а.LԦXL&ZCZ&sYmOYzh{Z) |Q$ ȓE$LG=٣ڦBȭ_,Ƴiꦍr꼾:۞&: eFO+VPwxâzC"j7MzLL,$VbwiY j 18Oz)$(OA}|U]vr00C/s`V)D{\/؊!8DL~΋9FX RxJHD(~&!nzy_U?L/ewJ(;̳e!g@Jn,OsS|a&\dOM#ȵA/RWh^!yQAcm*+c优u `آ@]gX,CrA-jo jGEF׀fg EC 6D tcD[V+[*Z `9w1=F<"f??ʬseo?rYO-{z+-E;i {/|@H*~]kh:! 5fdyZ%LJ?MږǦ<61 wǬY\@> W+vGVRY?`U>좫"plLu Q1/KZH\@3~C]g7Z+PSड|+*`۷Jj8-q%ʎZ#אFNnA;0CJc Hk]!HC8"߉l6-)IwSĜ=Z1R|t#-L(;HX$N&g}1  UP؄ M' *!0*(jj>١(GT 5Z gY|)h&a>LeYC7iތ"rUILs-uPl|v/9i,}QV׭| lޗk3Ud]hשyo1]koI(3T$]2wY8+1 xVE7N}r,(Qg9lp(_ܪ$`hPs8xj7W rmrHB$BpYs:( fW|GuC68F=#.-$m("cJXv$?>H]),x-+GQ XwKU=c+گnmZxe&ydj%,$۶W\&hQ쾃fIa_#==5[0l䮢񧭌GGym'ڒthv`6V5 ys6=xros^hf3u1Yd=#]ؑ SlR4ctA9|NkPd\B#tZ=h'XAݻwA}Ja:#+hST 8-O@M{{\&sT #+BИ҅xY ٠N(K8ОO(b|+:ZtǷ ݵ-1MS,iC:syۖ> Jᔈg.\e[qzl* 7mp.Qg:CDֲVU=UMSϨϒ=.%?0ZÒOpgn?71̊ ?YCR҂(ܓ!֒pjD_}#9 rk1 ʊ(i[sgC.h<Ph83 +7GB`\omHfg]P(M)ԝ4{:oEƀNn?ośg4(wJ'kY 0-cLn3'<=49Saِi,4vya>rSy 35xڡ&U8'=e:$7h'1ϜYd^qri"~5[ bhgBYYyؠHk VhZwD3+ӝ:D[,s~W *w1?-Z b˰fj'e퇔H= 2?҇~hZq?ԈB:_fyZM]LDjblmwk1+n2Inpx.ntkva .Ĝ2C:8bpUkF:/1 X,Ka,R>PhYbˠogU,,\m2hcYaD99IbDF3UHYuVF-Z)%/FE\E~ ue8җ`4)6}yjxNd@Zn-JBǩ[|GI]go|߆ /Y)+YOU§|:B90񎐇$})d6dr]M(3:= $ 鄟-`AZ2PM0))wM7D$p)b<lOlhCs#NQXIWlFb:Y 4ۤ³!JÔ\ s\Oe@c~P1""Xa7Qy _s}Xq⬴)Šo/1p_/Q'a~2MA2'h"m R튦Tg")QƲ0;p3pshDAO:)2][$Akm։)mDrYQqd~Զ})>I27zlMČL-+9EBc*_&)-k4^ 0mo>̯M$Z* kH@((2jG:[4w<5Jk͆΅4dU\) ߫ o_Cơ9+ \cڤݹ|b0L%O/)G@#AU!#[5jʳvSww{w;t?nQ<e1k6S'5"ݭ(D+CzpUuN(Ҳ=S8I@aǠZmQN䫕 aU11~WE":R̤#zGtR!?Vu=Ѧm/HU+D@Ch>:(»-r~os*6QV1'Di ֔Yeh"׹}vl_`i)FֵaNCo ;"=uL,g+pk"2s:)M65Sܳu=2GWTU4w,~ Ra.Kg=x+3RXនkRITE'zk ~H&*\[HUzg)YHzjtDcZ곝V*goԇ̭{ʹIFth}`6% ToHhj!+~i[fWuǷ1cC1Q|#5yOYH`/jlPPR.?cϻJ`B](02 L49plWn3QP zd7sR0Gq'o4֛DucK8 Fx*NGP>|T r~UW0fY#q Fܐg߂M pr4S;shL?HR!ϸfMVEݤb)*`Co`p1! uQB@]Mz$߼ko 38U g. '  bϼGDG.j5+Qm%/9-+L χtAu@ <+cfL  O8gtD-pIOQi8l=2Vqr`"J6pSuwO+Ra(~Ht;Ǵo{+Lڧ&m3=M`QqL€JuR9%g{gm _V^nl͈ p*?vUEϼ^3:Vh k]g;㌭o΢8E@xc`mDi:h]혴b|W)[cb hWk»jy~*A`X'7 +(($챣W?ܵ^05@/I]Z3C78(9d[+gL͛&emVҌiJZS[LҾۚ+K^v݊Jv%BW|O V~Z_g\Qak2շNtۼ (RFqtT!OU֘;[)C[ >kбRMNy}עϡ!$|r`Y=#yu#\]c?Lxe~ێ?Aly7-W3g[HJ鷩uId8-DTwB{#f}K1M{pPv ˹Nje]cT5!r,M١Drj,Th= /kGqqWxPY!Xqc+L_)>w*AemKH%$%IFCTh#B}?6$A`Qf,=_ܬK;Q\MVgX 5'0JauZOq6e5,%jj 릊z^ll+xk|zj#~B?!>FUtJr G1=/d*c#ә/ K[cA<D=tW,q 2(AWM om g|kgbЈM6 0fRsaO+1, 0.jV%U&鸅|[ h%j޹~FqrYzٻ~gLhQAoG03;y]bɼnU!qnW.w㨭!ܪ(q\ Qs̽5΢;M'?tۍmvL6rRc%XˊI=2b![\|ڛgpQ>מ2cM[֭y6ۇ:c؁kA3r$MC&;(Z2t,zV]yu(k- P*?1^3O90tح=mD/[+Lbd-ۘ mխPa桜8/X} }U C>kYiGY+f@Q-stPKg7R݄ * pip/_vendor/distlib/resources.pyZ{۸ߟq|K_0m4)!h C-, {gzxw53<$5f_u|;g3>Gc(^O_\b9?k~#˵k2U0ǣ9.6W-yʕgp!*a\UruPm+!"W(Z7A1?{OFس$ԡI,*%LE$TY=+YwWYmQ۫v{P2.;::u,&K}5 VZera-J4y2-ɚw"Mʪ(E3*ɊbJv*̳TV3/G#&,J@hD@ߘ+8~'r 2^쓨C4FDO#KL/s$E1  =fz/*Xȷ>)pQ391/@ rBM!(]4Ѥ2sw `(3ܦ*;Z:τ1ٳg]M=Al)϶`IK^{3gzNNe+6QQ%͈WАV$y[ Ȯ@w6OIwc gҤ>pU WسEc=X2Y)R10C{ a 9u}5JlXo$Ÿ Zo(-?)CtAʠc]iRJM&q3O"=PH s He 4@jGuJxJ[ۑt]@_t䓓E\·Rue}mduTXZG-5%NGν .Enf9cdx6QidwLwO4WXA CxZn$w`E}4:#G FͧLVBՏC/J[Uޡ}8bA\̐E&iByQyMPZ5hA |'vyK MU¨{.u8 !.s2[-W0@Qi !J96EcTBߓ'N /n1 3 E0.1 <[ u蠰\M@fJʡ ;/FѪё `{۬XLg_>]VOBI]mgzLAJrhZoL i٠KVP8# Uw1ZueƖ1F v%_7y82qq,@j,_neYDŃM@A%':smHY G_/2 &DKP|BضȡD)׍<9ԪIH6a` n Cˤxau hpnWdJU(d_Ldmb1i?k98d) e9k ]WMN 7MӔ$⺄ Ӑ0!-YXS?E{0rAm-gJmޓFPT'YH&)EN+ %}B73PnG4Kll,8ZhOy҂ƑPPդM䎨lF`I`T30}0pK`z˲^ѦZ4ba mR%ОR@iq.4Iu-6*fA- q2+YDSϐ&.t# (i/}Ep_'_5D%h4vKU[Xe 䴪 A\et9&c;=%c Fw,<' "UB_ E SH/mt]` rΰ "K|:"He Ag i\tyMpM{b-׎FmWxssklaes[Wlxdi!|p.5b=X "Gwp= ɴ 49'TljQ 3eh"SH%=]'-W͗%PT0V׋Hx r7< !p4U(:+OogPUЫ]ȥ t!*zKImЪ߆\ )N갍&9`tξDiD>a>Eu4'09+k~bw)Hl0 yi#<p$n<C"~ ò< Zg8s(GY@0C?%uv_ӻ|J)XOn)Wn}9X {D,^ͼbB6$3|\NIHqo\CJ' C g?yH-+&AlaF"} )!xpfEG#71hkw^A[o"OL_iI :u gxf9Lr[Z&󷍵l&S]zoS^^4\hty>c/Eн9`tQCzȂG KYv~0]6D=g3uz麷0i>6g?*z ޞUD msĉ,N0zO,b찷 hb"+ֈےa]iݙ~~u9&KΖ\=4 &vVQ6͏%+|'A|:e߱O]0v֩ q-)cJ YB,^'tҜ<1Cksd{a{?,5mݽ1o>dAח7&\Ƈ05R4Vr1q\~ʟ(r^ sYڊuHV\rB.\Ny5`egQ\SnV-d/\u<ؒ{|e u8_EȖ"l>#]n6Mx'!S[ hSEs\2(Rl8D@^${|A)A=B*@\XO91IrϊdA,8n<vd.=fJQP0ER#Af$"hWp ]}dQlfz>8;9 Μ8x/ >w/pw۫Pm%&m;tiXܫtU7+ՁAuJ4uI˻>]b;s g??tg`* >('\롖z!_^H%7حo=(a r&@ن3`3p<W3/`Q!,JF0Ga+,7_y}@!B[9?LMmV) lD4ȥ@hcxǖygfPgM.tz,&z JTN"Hs+u^Um]d|-34Yz-_RaiDr:ub>iuڊM^i^$3401O1o{P> ؃,` #A=2$$%ϓv[Jx4H bD:"BTxc,(=`d4L@ E iﲭxE!:BS:q k|IU+ף; .R ڲo&@ 0,q"pV@1H4Юkq!׆Ϛbn>xBw9HYވ\d zElr}d x&9 X娈;E|2\6cT2kJ[w-o#F*& S/<,%2' gQر褲*43klJг 41Xeɱb0G'UbNMfD. W}BT+ :kեcg/m8v uN?뿀p +\F wדˋH EϔN-I+ٲͿ};5ch#?bQ *Hb==[)='RI4c㍕is9`@ M"0:ArL<`zZn@"* i%A]yD |t3qfc${{eloG3j6WxID&rBHP̥|ۘf7VW AKRfDgH*Y86=UND`:Z\=CUF^Ni!gc,Ҽl D\w>H<`ljI)G0:a 3CRsGN V|h^"?Ö uZG @Aۧ^cj&Y3+co-@`US:$+= D17nel%{Q6  δ}wh4RX5ݱ 1 5.DۧJ3Z=pC hE-F}tRc%H͎~ :w5q8=E >f㥝)>fu(33Ȫ01>k [WظM\ǥ1^`@9cRUl~ )\fs+VH:8P_6t !RqwYYY;AQ:@g&TN9cN HcRs ;rUH*aF _a=Ǣz4B_#jϖž VBlOSyo,C^HARG;(^X-/ja?UYGFEyxj9l9mm;jfv}G [}( @S|3M8SMl_3fl$̣=*G4j( YdF1;ڣ2+ !d5SZ R]0tm@S7ۛ3߰ʰ6&W<=s灁jG,Y"!l;,F1;ѪJZ)خiwku~)(lt"vͶJ Adž̭<LG12Rn4}6HA3 sl(!ܫR۬٬)pR Xt?90z)CHlp@E,P ljvIRủ S̓FN>kuף2Պmꔊc4ᶼ_~\ 12Oj sXgrbWd!B4P5'\o:$ցcMOOzUO–JjOZġ>ylI e{Dm z:D+a7 TMMn rD[`L#qҢReRzc;a";N;m|RՖQ.u :{J:#Y [qwɏ5=p΄oL>ZQ Ac7HWW՟2"Zzu; ѐ/T ۄ7`TYk~ЀĢaUvW#{3Y|U1켮%ErVoV;EHpGc8s%aG1}σx._6ޟ -FӇ@ot^w p9s{tvׅ;[ʃ9*CH 3ƅmL4u;~w&b4kjIyͦ@?V1h?u<f QP^c + Y06]ZG<$ _)YՄ-Rj3 kgvovaIBryr{E7h("`(!26R<Sݥg4ݺZ-N$RYa't D֙%5oFB59kG ʕ -86Z ^)r[_Ż;8؋2OXi-u'RPZ*US~Rb.beqv.~QSÆ@M}&l~+ jU$a* oR=x!xY'4<SPKg7Rzpip/_vendor/distlib/t32.exe|8<+$ A.(q nL6D%K-f+ j[R}.٠B5T:<JH29wf7 >}hv{s={9Sy60Ta3?'끿ie1{~wȺ }=࣏~ѼG+*;]zNffz^]˙?mx~P63F fF铝;xw4] siU?o{yȇ]fa,̖k/Hu3FC!aN ZfDl`0@O@wl|&_aY ̋o@jA31{7g=Fe ?_z0yЪ9 q}i4뜣1oLp%\hNú L }fgsV.~ဖfavL/aoIAeWes5WU <‡&YoAz Cąnr ~8r.L#&?i`tM$j6bMLC9P)Q\zj|0FsBW1JNsQ+ - Z,A<; "5J=~ ^d~WɹIIٛ0K.bRUpT}VrF8ր}fR{y?aRb{:9K-],"zj|+Xosc۟Vjmk rn2nPU"{)DҜ 9})_VĹ^7QgO=U"j_F٠ Z|%4'Zb%n 9hY \՜2 s1l <4JͱA#*k(C4l>ݻ da"򱈖nF $j,?j']Tp [{2[݇.a!ڦ0~KasNYT4~/ [}L= 41>gd+j!SevV 7$8!sU>-ЖܾTp.V0.P{6=b*F|l)׋3r??ۗ mz4X_"|'t ]VX:rQUs0ٟXŐfjNa4p"@fJ~pQս}CuԘA\<~ٴb|γҞdFD(?/#𬗬wkK)3]Pd?E XF~ѵ.mLӥLt)O-qt4|sul#m{^`༧bq^ͥ<r<4k0SMMp>닶#IK JKS0"yOWj)!ԏsDB\[r+͢/` HIDq Y>l} cs˫f|T΢puFM />ceto[\&VPVu^7!fS W"3iIn()x_hmY1d.:{d`hqH KN$ J=_O;dJ\rJ+a bN1zH6:IX_/,DiXT6x}8 eO) QXEfP$Gb]gRS6U=\ =|B̏=<JF } *ZODy=F9a}C#-CAWۇ!FM˷ &D]($ GA*8r-$Iv%Ġ0bbUJ4C?RI?B1 b`y [x #cqx{l<qMU B$*Q Pn>@!G2Urk CxǁJWdOON{<$WZGe]ѣNQ'i]DZ]|PAX'RHU6[PB]W,Fd\u!ĩWUlgEt=8śH*\Uo+2#l2p95JLr@@ɮ"ErD)6+a"Gr]E)%ޘ*''6jSf4HtT?qY]~U,Zhjy!s&` p"M ʗϧ?O@A*:y3inw4_\ 6Jxú ^Gi<Խa^AGE ۖe ӼQ+ 9/ t;oCCMs}O7+pA+JH{o7ޱ"a$B$f]A;uUq|bB٨k0Ʌp !Ofdg6P `]/ܽs7W/QI(W= `ʯzD tǟ wF"U@neiy!WA]7VJ>XX-;Kωqcí4 v,#O2G*c$j$DEćb]3IkNb*On-fzյ٤d.rLE^mLQč͹sU$ܧFn> :u=ȝ Vy 9JY0.B6d55IgAF|\Е,Jf|FudUP>p?+(6@T;kD1Ap8;ɜp'DYo ~ȕjq@U~!+*5lwcv C*5ȟ\+zԨl[p+Z`tsb`ACW]!NV,f6 O_8(7mX!62Wqawq}z尒*G0)8duѵ(G q@ΠݕP@&t]T= +{E~: ꊷ{w szA \C4ZU%W-!CcO#k-/b-ZM9 2e88$L`o,닄\Z:"ZMڱ8zrj2w|DGȰMSh<=ͯb)fSqs-6%Ty#@2Enԩ1T⌽EZ*tFR#%EV]/)KG$1>"XgħŸᲥX^[_I:2]fSL:l1݉-<՞fx d4=(zITzK9(^/&t?X#u Q@<{h%lu&ZM(6][?WiRe]G%Նh<J7*YSd0C0/Ns} ![=rqhCh D!b ֋ET9/ ̷݄1fL 5X\Yd*`O:d,Mi$p+pE+͍&ioV ˗#m¢Y[ !9U (2A_N"IeSR?,fs1G:t[`(q/L#.(ƯH-hgkZ^kսxAt(<`c&Zk!߈"Nk%ɋ`ebMJZtX'8YOqb?Og^[POEI 6k_0.I^K+Z< 9kr ֡<SzNYtX09dMVr`,M{ԟԏ\k7(G/9WijyU^)?53Rmj UT3!; ?e&ug%:猒@$Z޾>-:Cvh*L5VYg;Gdj噍鲫5Wuu+c]Ef:DD , 9ܙzl=$cݰk/`spVA T'[`E&y*U Ԛ=K8fElU&'CP.0GN ?]%?4_Oꀾ!-mai! 6Ͽ4蹮%>̕LRb?R/e!,&6қA;RDmbȽBHvX]˭D('-/*dy @R_mcjh0h @B7ڿd " ܼcūTjͅᴸgGv<*ϐYt>L=FӈHDMD-F%;[ &h>CE;B=QKs0o E-sJ+  ˎV< A5 ER[eԜ,x^B~g V &.ecg  /kr') R4>ׅON=pϯ>YAR> x@ed`Y wևS LsP PJ%W l_91 m[c@6JzQQrp䅿h; o$oQHt}^6=yV2dUFohQ{ȍHTJ6 ~\xs/ِ\f~8r2Uf[gЕ%L"DԠee9.X}*^7)imENf:/7e6iM-U/\j50Q%W|V#\N^5,0Đg hӐA~E˕qW'[OY\Bx?L-r-@@/RI Hx| u8?^ҥݎ$ $ϕ峫:UXm CCʘ+^͎>69Z,>af>zy_^eQv]y@f5S f?v;zW-rյVu !Ra&媏"9:!3SV_q{]U-99 S]R tU G=^?sϳ,%a^-g]dϐ^>$5\T:Wh6P*Kߝ=V@}_XR .sog^G1Aȫ"/.`y(R2 'xHmsUE>oc,SO7BΉx?,zn:‚ERk#jJr8"4v OyFdէ@7no']w?=d!E۱z@.u<*%.vS|`eq?˲ZY{g;TڍMH{B>z1l sf10Jb;r^~)yKL見A omb!}2rc.[D3 "(@Agco$d{42n9xMA^x0[ J-%A-Cݟۡtnߑ`۩=V/aϘM]p^Z0BB콢H|}j{Ÿ/k\DlS b!+\Ft^,MtI2iToՋs\ݬgoJf_Yv f %pIaVq-#\.2Pwh`#2q-x i0d4-J rKTo!k Л&Qf6 c "\b8/JI ([SPé1Q:ȉcgᵟe!b, U4!U K > 7JߌgBƎPH'{%p{iKi!=Bk^ *m~ϛ:c!4_R_zhkDkfDk*WhޞL)";Z(bn>GߢBݺ%{S'Z/4 B룴Ō/YM0bװͽ Çy&9 :>G~nALAkQZQ3sOP??&g!~ i:$p[M&_ W!K"[oHɸ5jA)%JYmy9ABNt hDڹ,F& BFT^ZDÛS4Li%ͷ{hL{-G'86r.%]+3BP6L^4(uN+ mJ+p)g)rraIWOxxrȄ)"y:lMMu$D^q0F\6b)h@;c&=/u\#[kq-sŀyײ ˀx"(Z $آ!:d6d X4p!/ A[42pa<> 4)p|U@@^7KKŢ) "5kr  ! Hl_ D*7/S)i\)T);ZV3|2N /xKl‰B۰1ƛ7(Y ,PRvl^M-v׼@:paXoVs^.K}\ҮP@# ۿN0 tt޽ko[A[BIhi >7ԍn#WiCe,d/d"҉S sbEo[]XM_g5-Nbkjb1}a#QynMA)?ʽab~u4,?,L6u&lHoZ5\d&lk^piwM13L&ީ3ϣA/Z 5 oжHn'N3 zI8G/'zԜ]rCH%|؉$-:)Y8a*-(FZА05j j5g74vweaHrJ6<Ƽ+NyB{ټQ[Vz(KVԲOcl!KѮ'01{h!kykvChOyJ.da=艺՜W(u+D,qC>;p ZTM'q45~ E~\_-Ҏr)GbfF <|H$tF)h+7$ۻT P42(Ͱ_܈VM Nuumbr-#SRkBA7KbOG(2WY>,~3h,vew R3rUbyƪ@VG<g.p_;t"dDVvdk N4]qyƜ<[.QjZ8y0mhˈr|ϙ`J_gPL R\x$ ,#y&yJ.ƙ~W@Ԃ^,5 O)s>}Zw.=$-zyq^fAS!41mqּk0!%huֵJgmlN6|QlR?Jh#NBh8\"L1 yZ*RX ."oMba2հ# teЍ3<<^'fMɍ/G2%4\鎺X䛟4٤O PjNGlj%+@IÂEBu%l^T!Yu˩;V~#~n|Жx$6 "r'koW876 ^E&@N~Qa## o i S~0݀SM$Y_AM#թ;a~j#?-hTSl9/p۽DơHܢ!q ȀFVcEfQiQc&V4bG.t|ǩk$ 25n^[ћ:]IlCK 6|-HnaL v *pY:-5Rj̨9xFsd`ZaFԜfuo$ LR%$@_";`qz$)fbca.Ȥv,g}/QU xChl _OZiw.-!c[OG GZ`Ӭ| ف~ y5D$9סЃx4amP=0fZ6&3F:ͣA*FćaN'fYR4D!5x-(qP:)"x1ѸꯐJ/mq)GM#ŕ~~-ޞޜ[V5ho*mE1FTa fxG8j>RCչ73?|QL-,U:\?r2y["9E&5[ɏIlhF^Fme /zl&|t/eڋ!=)##i?^,.&nbq A\Y8Zt(uԦNȝZ(=i@[_"0<zRQXmjꍥu2\ U;ԏΝY]矱Iz.MQZ<{JZFWTVjZ7gѢk]#OYz)$~5XfxqsfM!j1e{pChQϖ:J]A V7{KɆ, y3ZH̯T/ u i7/Aб_npB{dt H/%+,s 4l=,z!mV!nF-i9nr)M 9 {zLl7;k9e6z>Or5`T .S71~C+yC AS#891C gu$,&f9K|XcYr1]g@ E[ag\_hJxn,$%vN>u^ 8: %~ecnrEU-J^b62 T- ?C$_q{+Cb%A_v5ڭZz׆Cr%밾r$Aor_B<_yUOHPckYSDnW%USY3D;bHA~ jR*h Ŀ֛qοׯqFߋA~硹%:4Q(CJ㭉DvaЪ(.drG{~ӱP@+wyek~PxI݃]ɸg|<[ 5WuU/8LUsP)q/Tj.jjawE<,;7 * [k[85Ksy)k"Whse t }q2sah?힟×-2mwd'zXNy##ރn'\ïк[ĐEPNI*LƤ;{kō !З^rlR,S#ixy f{-Yp 滋o{}N嬓K--5aTQq;'yaz>_'3FdwHՃ \־XT c.UGT@2F=I0@$x,]Al $T` 0Iv&P <iВL /Gx>jMNa+,N>.."S@<_:'U$AN1Nl6^/Yx ?lPl)J4 R0?v1}k?\\e>M"th  d,xdEb![K686h*owQQv@ٛe6q q*{`)Bo~&&5'pujҾ ] FA%Chʪ2y?6jATt;F 5Fbۥ)ߦ $G| p4^-]U![}%=ьT{ BT9F;όT/2RLB3]R w23SMHǂf|S .kùї|C3']T걩2| v.+Z>N2e@[78rDVO2:.KX{H mlr>^/o% %fגE!A[qr-Mt+ R$ ~dgUUKɇ>qW]τZ*VVNj5ixRJIT6Od..Yw\W |O#i=؁&`}oo2sJK)Z ׂtxXTn{(9Zx jx\@N2]tOA<֬ԑ4Ttmfj-`7FJ۠oY3P"e)T춉![ ߀a.7Y,?LrAL"A:|/I@BX$)JJ՘ ZB׼-A띜 rqB3B6}fӻ̊lٰDu|ݢ \ZymePg5 U5 !K>߉SBːTmk{Z0i5}7I ":FJ#`\Ї[TSJXwH9 :25Xb'T5 }Ye^_Bkt1o kJ[SӚ!sRnK^eI2׶8k&(9j@g 3)5:f'@̤]gd)t-sSԜ^]khf8µ~JUj &O\ nAMtĚSSހ\ۃ'"R-,U.N\QHp؊bYŁe lr,p'. S;7&jO*G{.l AAJ;DFωїq]K0d+@KŢt!% Q vٌ:у?JT2^lg.LH)q \L9,tzT 8@Ig^x"XO 'h"|/ (˨ˌ,-CUi:G;Hrοu[̏"K;\~ >V ѓ\@lE|`;!`׿3#^SY iH:L*>ёSefk.\I!' bft$o "J:W aU4ȗd}QZz:HV]VnֲUIJj}(r4ėDuIVvچlXpA}}@i!BHnW*(nm&Kov Iw_Ca_uYK}C?~Y*Q/ߊ6a#P[Y>7_B!K,^B`AwE?xkT1jcOw0>lx[)3)_5/*X_s<=2|zyc<ըȥnenQS;M+kqGh*^={APPI(MHb=e1|q->!6NR~m}+m9ε<0>i;ZA@nh[uG:xkUeU 9eUf'#mVa={(&P ALbhWuvU]@ d}2lUa1d1&CR®Z* 1 O cS#( 5#(t;2{gz׌.b)bi@rE/Y,N钏/km d&UQsƗhPE+[6~[d8/,L n6=a@kQ۔̻`)K-!Vq-|kYr-S,lZ2e*nAzm03=&R-tWO8H PTvu}x]`F*h}Z,KX_/W@:VTpAn: ^nktPC*fHsfƟfF& I2U˫9hþSs-C *ʹ;tS;zbGQA)&O=[>Ӣmѫ 4;.=R˨-i +jVw ѷg6'i=r̺T15iԍLfj-7j95[Cxj F4z@ `Yy @eэVfCQ2BKhVf VQ \Aݢ:e@+Zo)~aLӥ(:N"F|6SB eZ@j0o(E9aNEۃiT̩.T-3U JѨb_ c)vu)梦TQTMIK,xjT؏X9ч\ \O-6ӤeHK fOEiGG͞foQ XsQTXjN8e<5w;Tsj5hHSQӍF҅nLEԠp^[dTʠFZRa5KuK*4T͒uQ%D3K{t5zPTn}|%cqe{a4E'F&C@8Цpicu27ŊGcS|tTe5(yr#P5 o0};tq [:Ev JM+}Vޖm# Bm;yv4Г֠yn_ jF m@9 TosOmC %L?]%QBdYI9wZ^n+jLh9XDsp[7jUk!non%ӲJvB sf+hLjT ~,v! oU5/t݋>)PFxxy_b sX:@6sbp('ՏtbAMQ׀qB׍hR'7$ʝ9^ܬ>,}X=‡Raaqtԇk1>,bFxxռo&ԋ[s , {}G[ASoR~+b$+53{"jX {jLgE*YCY_Yq@Yq:}>+@%{MRJ IsZ9iE4i+4>ӊwpZ3uZ1<'% НVt|ӊקrZ7n5_֜Vͱ=#|> :/j^*ԪƯX4UKE| VE^*J^*'T=TPVmOxkBJzyP EHzםVPMN+F0+V'yӊuB͸^&C_CYX<܈V w<)Y҈O hh;Qg (;} QܽSEӨmdVNfEy b7N~Eg;rx h3BFHN6)fo!t)CT'!УO琧an ݪտ@_4NTق>W|C1lk7ލ_l;_lur[A(lIpezڷG>O7{Wb+Bdt)4ux(_rWUU_7kQ q_UoA`zAsf&m̡Na'zvX/| RYgv&ʶA9>^yk|y1U͋:L4~@oRyF?och"]I gwjL#"σ:8Zv5WETMBaJI v459GQ{q~"EY:p(/G]#QZFi#]6GWlXȇb؆+m&7~O,eUmେ)GL3iO^/n|ٙ]g>j|dOGj1| XөCfw3N}q6r-7bdF9-R_뽎hWa 3ki Ex(vF4c;`TUrҒ@/\gk+UE,CXy&$EWwes{3?ZLW+Q?,)&;^VR0ކS gWozFڼJI.ŗ뷵Ir쀊L" "/_1f)9/( KcT<(*!nЄ f2Cѻy`Փ_Ĩttr e/~{  kg/&ʕ*{#QԄfpX4u~35ܳr@MumKi5!U[ۦr{#r2Nzs[} _TZRTP@u-~4[҄_@I;T tk1/ ҄r4S_=.6`?UK/bkrCYQ2ѵ0t:}8Ev이r;CGsA&ܽ _8sCnAThlKiSS{d  Tm-yP?ΧfŲ2غ K5[4I(Ot݆Sh`b~DHҊ;s$ Ճx*K#.*Zo_wLC?7͜#py:=i\NP?"OCI>鉥X`P}]_ P,~)xŝ*GrjbC;?Mn}AxAAz XOjҗ<4=`JF;dA̳E(Cjqum%9_X +cf §w/(=C5'! څ a{fώO}̱"8ԃ@Ɋ-p^c1Lۖ#Q'yX 5g Y&sٚM=RmJzuޒUnҵH"Cُ+M{| 0*:ZJTT  @( DBa+[Y7u1JK4D}9g8 uk>k}ӥ(?faM_ϋ]Q~oRr(EDۂmR:Lvu1 V}%<^JQGd%{FVntN75v' | uW Dė,bA#[0M#OLE! j$TM6idvEL&E/"23yQEnMj3*y BߘYļ9oWT vJwnvD-ҡ%{(wT%_{8_Z=[l m6|?K{rOJ@p;J@U͒רnw.Y{]*GM .LGwvۃt>K,03)Ž>❮m]SO~W|_t=9~j4`_z)寠w T?.KKRxDE|0u91ݲ8u]XP,jjxn/XQl,HCaHU5]wzĿPH=,"(cG::([-:Юe"D/qXPzQ@SY}AX: KE] ƒ[q0X:Q5UTg6mWC/nLƒX,:r<_)5cI8a"0bIhIᩳoS@ZFAp8a|0S%{9܍%S`{;T YG @IɨkcBr~BxI qkRQ 59˃~ҍv@%r}bY\"G j⻝(g/ U._qT,RpGE ͅ~U~'})jaqU`)z%PU"ʱņ=bѓ,p7[/DWB= N誨Gq Λ͇z?.ҫZᮏ4TĩoGRL_8:kI!a {]Sow;HmP{ 0S' Bؾ +fױOt-7>tivJkOhCEB (aO=QX)[PX dݗ+S@C{ ԓkCBr:mnߑq[ (ʥx:LHϊ%.!+EBL7znIm{|\i]]h_ek++cAϬ~({-!w笧d 3 sjC>HpߎHTe>vQ4s7 }Al+h Щiؑ/|7 qIPG&ѡg706CM},wbBvK>?WBDWBD#c%3~-C]E^. ep p, m&[`eC \qVffnlbbI h+*˄z`sMuM `{ *']36Ņ68#|'OH2uit/Yd}L]3/0 MRK/Wu}a|ڐyFCޭa,$ z%IȮ;>7tX\n ,a,.W>ܧj'tjÄ>tB:c3"͚^$d\%tѬ/]Ӆ,/i0ШU=#,/ۋ2 Aϥ8PMebu- 8l O'ROHj'saIDQ[X.z9Qu/6i*Ip"r|GIgf,mS ʛ Ok5.'>Jĭ}0mҝAhC6 ܲs#!ɬqU^J#ݮ0=U#trgOPաc~8tK]5#wLnj4Q؂VGIC@6KG/qe]]_ kX1^܃ׇ16ٴ~ѱWD(‡.6TtJLqj*Gݬf!XНH΋#dHY90 ST;bQo %͇J[]/ Ψ b_qrA܀(+<5FlD&vdŃbV^Jm8E #MQ|**5]Ya^gb ]w'(hn,j4P;ꕘ6#OLI69uRQ,9΅bIljұ~LehAnn b 4cEpA7-tpAG~\ \@,#|>T[޻_W|GJ*ӏNb]b%nCD7Rjaq+yMQ+ +PVbF)IQQ:+z R)0H7 Wj-L?C_\Rx fF^$fi0K*-nfaJ/ s~`hfipV 3ZZ&8X aN9Eti0gIS&%3Cfdf*L4X a.^zt\_~#".sŠ];ae阰>ºַ9X)a}NXfZJa`%9}@XUS~)Ex`(MVťa=]Š^F VlKIA J.g*6k? ~a PewLX:&V,K+Ho*(Cuv1a%8}) kva 5KX`MNPXPXCu$AjFzF꣢9HGa:#:: 9b:9,TKIJ|&KBYq2䕡d aepi]c}M^J!rJ~&hť]M^ ˕y¥kR%(..&K+Oq,Y^v1(..&EKm*V\.qa% SԻGMbrP]g|IX}ʈdr'wک3npPܻ&%+C ;FƮ_Qe=6N&v~>)P@/m"H} !wDާ)[ oD39i#)ܱ]cI:(U^.f=VJ{""]X u'QQLS~ɐIu\C;M Zu0/;$'97:3L{Ue f.AKNJ*7ma[tT魾y`iWi^XGޫ|^WO|-[>փ]6ñӱK$ϝ8թ;sp@CP]:.Ӧq-,#|~Z"|bjug*LWG)fRtT hwE8y:ǥK/U5` j}Cd8UEQ-:B՘⨒ZqzGjOJO5ɏ~C(>4UZ 8_T\Gw *6{$ }CZ9QBNoN}|@& 6d"ܣQ_.h2ї!_OW-b޸ubN9XRzhZ[Lv6rKUJIYcT45d/ '@ G]% [{~ ډ{gk^"=A}0l##ANn㊗6UƅEXT9Zhw/4 T; Y~][-c,U.(v[: (gO>L7?1=m1xђTLYndI)R#T+K>Pztf&iQ}!l8IDu?Sr)ԭ^*12e& bWF+I\"SXH_ӝ5XyTڎ;I<'#NA!Su.'6_tr=y'vi)7.H6 Q&nJ=q}=ןN@ζtbwVI{kaihϦ:>z|1\zb9na^zfNN?++v`o)ޥ5*eQC8Y]UB+_oFhR73/)u.lTW\=%2t4}|>)y~(* S]zb;K'#w0uWqCں*U'EEzZbY7<{/ s@JsYh-a*#tGKɋS#OWu/FlF\;KGv IҊ5 %kbXP',cYi4>ZC}\x8׵JgQh9o@X;;E""([g|>2 D*)7Υ>ry@rk*v;➻ B&_XcV(. w߫HH2p!ཞ~$Cv|^(+< uR$*V.K%H4a7^WYfB |&yM2AmBpt( @Ƨ" Y,mED㊋$]Џ&MOtgԅ ~UDDHq&"}.R1:~q[H5* (x8>grVNMz75t($ci z(xnj;%) ]־9 9 )O7®~ʒ^hn:H hYߐom$kfi4|(MM4 !(Y48 Fz"FﰜbbYrڰK}im-}#T\~7.U`,f^)dqZk%_ViSZM~UWkx%mB{r dZM*ZM,nƐQS U5(EM(EM0EMEMeEMew:Ehs

Ҳ M؍VQ4<if; z2 ~"?qߒ>xwK{vjHmm9KYur0PYYuFպh!aqO5&UE]ϫcA 3Z2w;KZ%Hb|ydmۍa$r0t&]JwP:,Owv(^tZ}H|R6RL,\5̑&qC4Mnh4Ψ';Ks/g*px5:W"{o^'h@@HpZ' '"m1]⚢/ H^>npSW阔Le0U. V5J!\#َۇ)7bh!1!IzwH̺PmH31"4 8>n!Ӫo[ܤY |xiDW\kb9:{m~16CL3X8|yHyu'47_e)/mOS?4K "U O/Y?3yKowI`g~p6Te?6ѨӢX}MWH ^!\Q{e$X `te'$:gOV {S[ǰRco0U)@tX G&HٵFR5Mkntw#bPbmqa4c|M_nm]p NIkG7> mR&tqmyY$՟ڦŕZٛo\mЕu+6; [kgTz\:t߫kd#UR:Pmqa>V 엒YiBr^ZI`:NX'N9BsQ^0rptl)$2}edJj5d׶ !a=ˆ䕇{^[Kéz6$'k 1 l!?͘,LӍ2\^f;]Ri)Q!M$m;&ށ}`?FoƗu_^DW\b,oRde7$f:Aх\<% iQ^ ҈RwK%K+n0=\MȞ2tg/t ɼt7:/pnPW͔`*&uQ{0oyk6:AOV4 .U(VLU0(Y;a^qq](9pa}^ILNcI*r\W~=g䓄Gz =?Z7*h?F7O|]OX2Iם0ܞuSzG)z=CM~ߩeQ~柘[yurwI]inጒ3XtDфy(!m8\\㲝O: ېH$NPuJ2.!Bo0 `3$Bj8|Q"U窱pL\d|R؆E Ss?GUqm0 * J$BmUuv8>5])e_b}'ջT%`&r.PΨ۝/@mR;yiҽeބko5J :& I:?U^&u%֊`@d %CK;$2/LfG].o_͒uWk躴Cj8U_Tݶާgq)l3ч3LsQ\9:ݥ!| h;DA|د7a5QҷT7E{NjN)K}Onn]鋛[@)q6iK}oB|PQP 뼇fž(u(oطS"MԳmaHwWwDZ:d"fIN6bqU M@LvBK9NUcT{=)KdDeLH>!l&CL!t6ssH- a3wqy̅ t>Т2Xo(c!h+)+++򋵟u4iXakyKYHc?CO[+;.~i̔oa3`\7/E$m?? g'?!fi赎e[,]F'Y D펅V;q:45u{ N%߉=1j%}%xA!O°lA0ؕ}/ܕޝa3 @xR2wNf.#IVdA~IR8U m&JLUυ^%f-}Ms}[Zc׺۱Sإ{ķ=<ld9ℽ `<g [+l qǥ/\ j#[AD3F@@Z 6_l(>O Uq~mvC[ntrKtR:-l;yxy>k(>/<;HO7حwD`#{G jXG@UN$x`#m!('8BPCOn'^+ ԙ %0L$IMA $8N#AA.:֗` ] V##$J0`"Ae\XLteEw]̞I09,cW}]kDejG gs/'Il,B5!l8cQ""x)\oG#(~gvY1>HR\K1BY(kn\Vm*jjr> yy TJN~iJ [׸%S:izIJO8h$ ܴ既9?55m5=55>7oD`4zBzX|A E& T9y-r-pϱšhɳ|$lF=GTdx5Sau?l=*IV#]Ҡx #.Tݚ*kIvklI˱(/->7G8$3Ն0gwSHE-.GA]:kX`&ZlIvaggQۼSchպovF7u[;wڭ=zاon?`C:la#L#G5>&"2jػ0abIS;m)RgI̺/{^Nn|`iQ"kZiKα!ްX4j** ϰ&L1;NNB @1ìY0 o= |@| ]M5_I C,nOԸs}fOsFzw~~u?IVn~E\Ê,u>2r׊ZGcYēO=g֭vs텍/?7-[_ƛoλ_^r;w}?:pLJ?Ϗ|q/o=u索dz5~:狗j/r5o/L4pC o_j6J؝zƎ TaƾJc_YcDcǥd}e1qu,93'-w~-ՖY9\<,ljKͷϱeXryM~ab\˘l2K+x?X1\Zˋ$R*T/4!,k4 xY1b$edd > 5ðspptr2f 5lcseul-5;bZ2sS9s2,}EX9GlKZ-7 7ϒ`Y`c"XNG(/nkړPQf6&戵|&|3~TOlS_s-6*L[4K@nz@;P̱=A"M+Eʃ%yrjrPZ楒j%Do c?3,S1;3Bud32m9to=:hvf KNA?5b#~D39,96wF Xe椊JX,TǍj {X;\ w4ϴe mVe3ASۙ6a,ʵ|5yקۯwT{pJ_~D[vv|$؍ѹ>NYQA)2,l ok9R Ӥb%@eXQ,r Y/r&ܰ(!11ebbdۖ5 zIIfoA1H$ԅi?=?s^^%EGeۦB6[Ǫ06Q'g^48HTt5n-O۲~-вA- nO3bHCr5>H#Nn{8I~j-2[g9fJO[\ԲZs3͗k:{]Yږ1p[ol厖+;~w#/>t"{vG}:κԐlܩ)r>ǚ|{?s֨NUG#X2O@ NHe$M;!IV,dEV+ jɩDȳ-Jܹ2b9ٖ5;bc7̹9J rd3uc"yH:zk|n=2${R! 7I\x{-sBeRnrf%"#XNESafȢ0=alJLC$%D58Ӳs1D'  $$(]J1Dn6##$lE~dQ9$EX3mHv"Q& 󌳤XsϔiRMZ\l/H!`zʰrX?9'C`%!6wŚ`Q!tS3hxxNZb^fND@4CZMCҼ'ڲ'琠 Z:Y5tBϒ3j'ZN ؝(Q&:4$Y]ƛN msVQz@'e`.CS(e!<-*jW2`04c Pl $P$dvۼO̶Xϸxb ?<'&"3`U@^TKGQƛ`oB{ xRU֟` 6͙#IY?T&eιO~oa2oR&/JlaC2Jmc5պpXD\OG#^ּ!T2ɺ $6ƞN;c4}H,:ւj]1jyVܓ[S~ILLcY6>]X)`Mܺ(smr?cݦN>,u;7qtw_~T^TL'}uw&bVhnV4*)n8rp喝SÕ=A3QqOTd%Jي<.6ΑLU[ _D1*ſDIg5N^Uy_ 6,2>~>@LٿͶ]uPY!9g-]esnbannh&%dӬ[o0|bN<{.ҳӚOza@Ȅ3YG>#_ؐrLϏ" # B  &" '%` Dpq#$G`A9;[6#X_EFM0`AA?AA+}O~FP{j$# x`A1A6AtIq# '$FБ'J8;|`#%y &ԝ3 |[/'?]ǮW+F]86 pƕeO^ܚ[[ݛ?ṿ>ޥR:҅E53T0"~zz^إ~0Er{%~߾;eK"Ns:MY/[nEkPlJ޽ Q>#X,G:l;;@!V u/>1$T kxDX k)X ?0i_m݁rW'_['ʷZ.E# IFxg-̰LydoVףghb$3itJ8m@/f:O#A>Sx|С,>>%&&xZg[lEW'W)诧q~%pɓ'7%2S<[SbgMNaE|['#7W""u&&O-уSa|022rjyO>,88 <5Qv&L`IIIlԩlƌlqX6w\͛ǬV? zh&V gOZ%#?cKfmk·f7ǂvΆlΆ}ȏ8O8(g,`7M9'8}%K0V^qvZSOuֱ^M֭[E_;Õsm>`{agb| ;z(/G8;y*v˜԰K. ^1ƇƼi kM|ӆ{;j&6al+})H{QŏS)\g)S_N?4R|3ſ(J"NQ#+-ůg)EMA}KOMW۴/ҘVI?u??fU/jw(`ŏVM&_HS)?)~'#r ZQ|WpwQ8ڱv ٞl f; ίa1!yOxb|kC_kP?Ϧ (JLߣ(>8?MkS wS CJ$PӞpvagj.ٕC+@GS/(Z7o(q_oPJJ{R?ſOSo}T"?Z1c>=O`^}ǹ}DFF2 _>VS!o!KddJm0n\;=&ojchbXV!3in|JDhc'گ}X|8cG or3$[J?1&j؈FޚhbG4f FޜG A犚&eb6<ײs'Nb8‚ز(,bXM2sџs,3, cO>${s='d͛7 y§/'IDŽ;G}$dS|;v)V]]Μ9~:wV?3z*[}WM?;IUsh[H4[wag4~hӀ@3<lW)Ri~FPqr[.JХKuYv3h ХkVνgP{?mmKQ~= fz4{A)@moֳOР6nUnd0Qnj׶-jc0n{Em 0ȯG'OAxB7{t6[jLgȗtw?[~ MU=}jϞN]XTz& Dy}hAZgoQtxkK=[G(: g}[jE=PL%%TPO!a%G=J73$Ӹٳg_… gi^zڵ˥G9H_IGRPPo۷oo2QVn0iF]?i}sOg}*_ss /%I"ZO~(3fL Gpnazm 鎰 q;Sy68iy}%o ?oO>Ϳ;~A~!qHF)̫Zm۶B٢ȕ+W&\ p<([n q:q(; [?<'Yfu޽Qxyy8 'Տ'NcǎwФ<$pܹZ+/~~~5uG #V"oş)hPuWP*4E Tnк~+{O۷ GupI& 6P0Qoh;w^??G=\vkzBu6|oŋ!}~ossN2h(Ǟ={ݻwra oh'#[r>#·|GOS[[V#~%AE\AÎꫯ2Gy_h(g8sǜp~>Cv ;8h.|q-S_ூZ*vv~IqG84P DC_<soM.]/ EPcStQ# .B 4D0⛼#29|Gn7?\4q@:Q劺_7T:g{ Dx{X4:y~o<ߎ?ū3a%7_(c\@<3'Q%1DCѰ_FsO4˗93 4T4EǕ+W7/O??kH瓿| AJ{&=r{F==xGnkCEy 4|nLJ x|-#( xfTq>U!k/44(y $SPԓhܷҳ){1_WhԺ@{J~?_Z8m(,4р'Dc72 j{ j{F4d{%緁*7| ڜJJ hxo[Wd''dr>h8O>-gI3hP3hP3E2v,7TQi(hqP0\aD=*9'gOG4~~IOaÆ"_  yTZV2D?D;ksU7TNBk*1/BW ܀J ~נX {KCD#E&2и=e17Er^ Zc"c4? xNxu>^+ceww7-DgBZU!k (hHӢ x'>hg` ظq#饗8"uR;z*?T^ḓhhҞ'şE4Zbz>)\#cln*L-[MCc:Z:~ #49'L|p̔i#d ^{Og9'L!pE{DXxA_V'0Ѧϱz>[@{.SsEQ_d 4DGKu}Җ7О&(UVUPSRR?1.sWX!_~)BM16,y~xc=}Q4`,8ҁ9 h@ >XT=2:χoxa͚5իҥK{yvv(wW ^ hƴ` 0c4 #0d$hi!/2?Lmw]^^ӟdh* ~;?ڎJ/0Fwڹ7m/YXh"Q3O2E@ Ab.|E_r^ џ{lX ƞO~hu'6]dΟ~ KGI>d, ^$o{J'Z(LZ'9?p;D?w7Pt~S{ͷ0L߈}.`Mk^O7ҥKS}$ 1, 9~&bXkc@s/d{s/h:ܤ}_v~ʶ4t9ۈDڳ1ߕ5?ڽ&ebC{|ɹ8he4DFt"']6Iă6bk¯?{?¹puHkC~6 .)**,`}{MPτP#P͑ᱥx/0b {EXڸʏX &aX8 ?װ!9ԧz* m} `~!Sb /)k( h^a%]x}4nP`^}OMs6}&OVG#;_]{\UU(d4jd$k}{sE1(7A#,h!ӐYڔN֤%MV>1ZY}~9垳>k]}Aaatѡ/5̈́1_56hHɫV!q^\q /;lX4{!yl k?cO6mc=|Xp{hQ(Ha'>yt ÿ}).+\0onp.^[9>Ϳ&Nx2=y;q1##c,rH`7׊"WE{ƃ9!Cq.v^|[#[uGSG6"?s(KǺG:^cA^ n#f8_y啅Vp0yC0v`.] prK-1[.}3cƌ?ɣGˆ#3 yx_ƚ p+~zW$egg؀kU"1СC~&m>q7o\#6bɫ)B.}_%_G81q`['KiOɁ" <^O~igMu-|jQT\-zf᳻+_F^u`#cKJJ uzڵK֭[w>6l ]fM|qqqƍl3{ zڮ]0-Q wccM nOܮ*\i<)IJ??}c`D }Su1pWecb{˥Yuaʥ G_1VX@ kQ],`8^a܇q q'0Sa ▥>/`c6 o gq-C_}]7Vu#Ɓ7l0΍|޳:vIoǸci\> _/_Fj8(/Ww~zov+삋[X-Ŷ9_>cY9oQQNq.qKs[뫪\_[>iñh?Ϳ& B;a}#.8ny"'٘Ok1F۽gϞˮŖߤ,&_KG&__dd;pF>gwpWb{C'iWΌtYҙ.kM|VrNNZ)33QyENJzZfrN@JvVN֘n)Y"9'$<>0&-'whZvN kE(ټid}']W椥er\ NTRicrlue{0IiӎJΉ?)k\ZvTd^ &_#aGIIV\=WnlVV21&1&66~@K\gMI RCΓڙ0Φ7Y3YMWRږEhօQf06ϒdV R,+fV#Vþ`9p&ZV]ԘKЧj}fƸ`C3`3wߘ%| \75?ӚnyQ.HkPQ7R-Ѽ3)x,OO|bí}VeMY7bGvJR9U~.Ü\g|:҄8I4NTb^^2^%O;fce_Ֆ gjw0ޣާPj:MO/ogUEZвYJ5[?F+et6zaD#H62lt1Xxm7GFQ j65[{p~+y Ϗ^F-z>"Q<$txBc a&FYlknn}kwqvL2^f\9{iΓN󞃛0@ڐ$@3 ӛȧ4@j8:.-0=FC-VցYMIT*ʍjԑbYw[4^Fyh'*qniw_ڣal4n+Ifj:S2J٩PP\W o+У4r\'C򔌀àGI;%kj.cq?Ϳ?7.Y^#+NG9;gQս3&1d ,nTZ*TeGR]PXN'U1g47An4c1Fs;_om)"K R{;ʾ2Q9P\tI&+fRIt%mz0uƎ^|R{qj.wc y3ڿƲ[r m\*<#CNc rrқv4)>N Z شrzX( cX6Ζ"Vֳ2;:+DQSJ$(O)+bTYV, uR-Q+ԏ3j72` ̛y'^&??io"|Bv|X !QU@vWWAڛR56hoh H+*d\xn-siM"k8`@Rt<v]+ 8Ty״ZVZPk}^kmas4 _(b(폶Xv y+*yRnu|u} ȞvXM FqD=L4NΤ/ӝt<,E4sZ9NWGu,'Ip;ÝT'e|Z\[,r|!$#dYv h'@t:$ @ZzyNb`يNV|`"]X^ xPobV42FNf'ޕr['X8Vg0O(sd>|/|إb^2^_/N9ȫy `I^\>*D3.Z6g$ "TdK"N$rIb%RED.XiqB|ɟ28<՟W5 퓡2L6Ვl#HAҒ=e e.e sd9Mșr2ޮzޮe?PKg7Ry!spip/_vendor/distlib/t64.exey|U0ܝN'MYhQ0$6htKt$*h h0P-0"$VL;=3<:3–Dq@H{ι՝fqy>~g*wb2OMzWhT:qP߇칤sɼ%pVV-ǜvP\(/.rjnLW!4-R JL}A&n½]63E /s9uǵa LV xy%Jpm#R?:5.] ýxbCzfFuHI'Ҹi+ k|_J_R&Z`g#5ۂQGZlރS.'l6˺ ?pqsYTO3ec':u5P:l҄HK7\}5nz*7* AkS4\WoiK9)<vjָJ0[ 0q`rU;9)dejduD}~yÔU.!< wz7̺cԊL<|-egLLKyS[H܌i܂9ā3*Tz*nWˇ0o!=ӀtieP7Gd*2ރٕ$#{f}S%q2yPV&)MIbR+ OxDr<Ϥր .Zr󥁩R)JdԌc5)-I=7`!5PMT3X߱g"!˻9+Hyb&Y*`_HK-f͈c8y-\aU 폼KG^#Rr} HRBEAlRvIiH%}^'RaC L[P,IFèC}ʎ$N AV"ۙy!C]שpͧp#)`Z#WWkjM%$5 Dۋp`@tZ1 S 4IoܭU_kP>)q@A79gM0MѳLZ9kT( T5%9%28,;v!+7TI4[Pff{l[`Si%TqĬ)HAic*R X^gk\lo1Jc>‹#`En[|H!&f3Ύ:#K;G15!p3r}I8yMԏbTFķ87HMRY`+${tD &56)I8R>D6z>ϒ4RKG_̖ pnN"Bf9G2Y'z&֏L? _-H{hؿ abɝ2`IF]$o= 56迁# &ak^ͥoBm³ (Mglk$h Q0< W0sϙTG[!UKIjQ0x)$oؐנMŋH\q^MDT!B Dc;%>#PM"gMWS$ JSBy_nmH{نT _R I Ij.2ѱ'֙iK`*A]!܌|Ol{1 ;QcՇ<^LSV}Ąe Gnr7U(Ū4werDSR?%58ȅ+]rv-0+70@AR?YEv(Xj7 r)ѓ<)rX\8'gF$!>MlN?{zK>J{'1~._9 u#QQ5:jPNQ)J)ے|z+ S.mrZpJ`AcKr{.${̴RNYN>]w:5|LEöxcLA農L¡lN"VM!#R W!zG<7+jLH}&Y6`Moij=*4I7I孛[!zƋ@m}H)!{| xZ?1$qY5)<,)rs$} :2k_"B8N738 l Nߪ|:ǒIKJl٧ҁ+WN b)-IOo}z[_Pm)SnT=s&Us vL"hq ~M0IN 9 )gwHj<H`9fW `,h:2TIw?ZkȧG(vu%nxC.Dm ;SwZWN6?rv&/z^p6BueP6)lM'?Li-E Ʀ݅&Adj_ _ ?]?zh2;$bU 7J1nL#\@yML n Q;?0H[7UXʊqHn&yeJEUtd@7 'Lsb^U<]`jX0JҟTU:]9RD$w4G~=K;)y\`-w?z~$NB飏pYZ9m050 CH`8r-! .)2 XէgCh0  V 2XA+yȎ:NPD '[P R_' կzWb`cGБ|Hzgp/R4.)Ie6:cq-D(d\c\š1q"p$+VhP &Ղ L[ɩ2v?kD%dR! W>c7?雝A&x\"nU%!X \f$J6oW.jQsf~wCw}󻠺+m"k^"娒9UzPH9R1xe>Z a=.m^vL;a'|}=cZ޺yǠzC^9ظM_VQOFjϓK[].҄ Ќ^K yD?! /G*n(sRG0 }!k@Y\=?% ;Jx蔟}> \ґ4?ۖש X0:Aïv5nOOM|A@n|OCQ)Z$rHi%_Jl13$>,KŨU&);uP'F"?]79=K = 'q9YZ^U(om*B'KD5NZA}lR>(-,YF9 = n.Ԯj 2_Z(bPk>KFC_-Pމ}ݫÆ{QnC(]EцHq QSp#\si#ZGB LzD8{rڄdIp~hȮzX.j`ƬB]cL9ο7@1!#zf$ ?1ϑ]c6N[0Fq7#,GKB],EF\Ө_|r*wc3d_8'xELasAKO"xxʆtdbv{":Vu; { -g5G'ّ@%G479K, $Л8K׀٪@NҪI x9(8# v:e^:BMa 5Hw󔽘.fZ9,xRcFvnL"]:Bh:WZrc #C2PaEY693e {V"+73' Pf/xnHb#] ՈOסKT`wXi7ox(}.[%mxY$EWs'x jEdWgŒya/zOE.W.]@vf/Fۡēj8_b,n\lL,,誘.^h 1I<͊)>T.9_ R;cQb%<1B"Ґa)pA0p^9On1Bj'2xӨ"Xbu,_X)b^S!՘-[MHk|=Q4D&iTY?I*[DT&H(u*}eߗ X&*xeic&<~mPQ|0*ȅ SZyBn@s4Cv,7ȺڇƧl(9M9mGj(W} q"m';g]~9BP!;ȓ oD9~K@F[kˇIؿ^ecsp݂yo#;'@J2c̀ FR@²iHϪ+t;☲wS*@C|*GAҞZ)<9sȚpg?fKEqk.|R[nU(PJ̸"eQ0;XU")räIi ЛttbV4t޼N?ké<"ٰ߆ ls!VQ3K6 V$}g L{ʢ= 6Z8Үt~zcF([--b"ߨ.6W;[[IsB5 9SiC˧,06H~ /~)Y&G}k](7OdF;dQ_|/YSw@˗ʭm;x4Yb$*e(( }rHp#<Uh/Uf:'MIUvɴi<뮌iLeDzY0+Zdz~<~ږW|m/.ϒv=z퍰G|3N=u>j$Yq.J[1VlORM&z$ '\X(Ug~s40Xm4Wָ M$)/D$ܶC][qDD1l7-Ts$svA{雇]4Uy8HfI+"h,Lfh@#bY̏{˃Dͧ@]ڥ a یJ XYZ Q7 z=$I65Xs[X33xK~q_;oCKwT]fxPf~o/4^D۽DHa1[m+fәcs٧~vHbW+sOHpVI濬%=3BVVt_#l?;9 >Czgi; ûrӦu|ԬN[}q~0Oq$9"P]36ew&ˋiJ`=?"=YtO ]Ɏ#C0[F6μ#紼yN̵1Ppy2C"KDpK/e-<̛>v߰b7I%'[>k+{CGdǝ#O3m&`q0w1w3[liX׫QP2KCp]h)% 3qsuQ 7~\^1n {: {9W鯒')+괔8l%ֵ( ,2E6 hC('a}"B Rf]ruGŜv!˳6&%%_D1'eJ= MjP!)K[I'/(ISJ( T"Z'UChd 0bZxasU;Tlzzm̀&Xa~-LSP2TE$Ƀ3 {`5Xo![]' M)+L!W( &N@4ftcvdFYlFO>gCaZdYIYPol(dOA□~T#v*U@Y>dѭ'Ftd=@C;b)\s%rB||lnށtdtTrgQd6 4^ʌ\!4[f@ #*\&+LcwDA,?pX;'JJmzKt5 rS)n vVJֱ`U~w50AbOQk'մOؖ:m\PꎭېJgKԝ񧑍B6j=P 0$=/2Oc8l"ip|.ݱ#qz_BxzfE8sSr?RbsCpRPjw=U^C1Z„P6wPă<+t}-NlF y kNynԑ3IR%EdQ.ic|, 5PYSdËkd% 35\"Un@hʢNu-trW cH8YgvigtsNS tX8髤j|sXúRF . q(83?uu aףJu)$L|wU9]bޗ<ՓAyhW"cXB/;%Nx+z&Ty"jɯPBip7tw4a֭|*hʷImRQIC22T2DirmBp~k.%r$ PtCaR"iI6?_9+#w"r6#snRcBWx#:q) II7śF[zdaNL -Jv,!ྃͲPu<.~Xbdէ)!0d=PM8Uޜ>ON gZv3ČYƉ4@<4wZ1MeڔK*= "E-ꥯ}@bEևck}$Wݳr5԰v2i+{1] ,gqL=צE٫6@GV"U]u)Ub|^ѴD|I/ƴo4 2IN%Jh2BJrjKzT@X`wHEFL=bFr0m6PR_UIRdJ+3^^-G ?*<(#"ֈt< )5N &'rS=GzrTC4m0ܦH$PD P[؊Y#uP6bW&T,VMN0%&QMz^LWL|Dw|?IfS_IFRB6mV׬"j3!I ϯŎVOH^ m8L28Fu#G^hz{Xa(& *J}ڕk%$D 2i،|29ёˤX7R#pXyRf g)㴸 ]7ok|xx كܪW[ o5t hŵNMȕc_5MaG"xrrm`!?\ps9D ^vyЌKe"OȜX&OxA? Rd歽h%yv}D$U@KH6 O.5^\#mYKWWqF5Wn,%(%]\JxxwU֚hTubuW3p N4K*l66xVs5'N.LZln U.5-dE3ө=JBdcwe@ZV˸?66SS|S}|cW`!) (=輡-ۄ l:};t OAYzt` "^V=}XTYo qTKq\|hVzNuTL~(1]IwZw&j^ rL`$j-V&komr Lȅ5%:[1Շ*X?zJ-$`͋?|!xQn0;֪hE=J0&]w,_ coG,jzMߟ)Xr ^_L_j󅍒}r#!:T쳼8I~Vm)r˄MPAlw1E9M%>ن)|K'\a,mRd0&͑%fA:$шU{9qN=?N7~/$s#+>*g1W  Ecd-fbnwǓ/L[C_[0o5а$dɔطC{-?g?L7t>'o7% a3yd;*to@`],rYiZa`&5oN] /Վ : Q[úEB0Səzᘷ+O'A>?U, X7`UYE#Lԣ 3|ݸ8У[zO[B\zoi1-`NdxQr2@;+x?bM>W9e}!<8چCʴ i-.L8[?FC>as~=pCטC]y; 8Ӫi&>FR>vZ%=юr$Iʪ~}%' ݣWmY=Gl1IY2<{:9ѻ w%w/3=#ogs- jЛR$W2Q~LbJ(@}W0xGF$#өOWyٷxģ˙8+#! <2@Y_k@V>EDSK kP-j (=Drie GF⟠A>[ \ &^+|4~/o%'$[w^W~m(9GҨCS_ &Rz?b\?S]bmwK0I.@RB'$aߚl#ČȻRe4IXwI8F>`Hf9ܫ#;dE]K.{w"ٿ,3 mL0p\uO x&FJ`]sxvh2hYqe>57Eaya6@VX \ Pk4mbV:* gބO^\C$>enJ,pw)yt|*4 (Jȭ}ҵe~j6Ux d׃BZbr*ηL 6$EAr"?| SL9^PvL8n⺁B"%^]}Ns:zagۘc6֢oRX  ]Sfty ^^,ߋ[`etG/iyoɎĮDMw(_LDPiRre%0ދlkkA&ϛ>e}zM˾%6sk u 4= UݶhDž6 z8Mi<(]CM1΢D|gn?)UjiJ%`{naZltswI٥d5v43 ?Q" /mBKqd3wAG0<C6)1f^PQ1Dd(>,ZZ;Qccb<@*/]: }R$8ߞȋ}HCOC'Έ3ЉC/sQ>a\ťQ ^Kث;^EI ;Vt?+D| PGngK/=ޙ%vD3'D[~†/PzdY]A" -xζ2~H*?}k̐!/:g'rҥf:d~J=`ys=l`%&I1ehL,lEM'owԙ#Ȭ{n_׸Ar5}fV?L"?Fi֍Dv1.%5*3M[YCoבj|2iD90\ a-$wi㼡#Q% Vq ) 3f:F~՞A)ZaHn8k<|J(/"beq;MAZ"}3eL*o8YdT *U"RX?#zބpӮ5m{PoU\΢$f `ry͌ gL a4bm("l+ns Ewa~8xqG`b:U'SI#B R[Y̅*5Gܖ=.OK୦b,b2kVoYNcTA}3 T`)Qﲋ L3(~!T/ 2}Ჳ&-EgLקX2()[+)ƙ8ٞ A3c3>ܐ0W ?`ױ\VtuId<ИTF4+v@Na#jxdey ֛5~[՝N&' &H}+)F)l,Ŭէtk C*5Cmu.L =roJBקy//֣a7qV>HoGW?;-2ߧ.Q#؃dX'5@XXPmQ nnaȳzrރ!⍭BG&ҷ1dX;4VFTv_.7S e 6-^o"X@Y⪄27bl(3f /pbcA!4c:iu0zԢ5_5]LKH&  X>tk& &?)Vߔj\[f^k;+c}f)U)X8^g(1Vb%r&݄Ѿ׌R0f(VYldЌXcZݱtWQ0AIK䉞I{Kk=Ӈhn@:X-iZh0;uLj};벀; P~LɀmMLlW6炆a9_V?,%PIkC/&USFC惘C}2+&sac,aKЌOwB=UvԪ7A$KpCSʩ5[bs)K.mO w~g9S=lW1kFV0d9D|b"!: ؂n Fg g[krBs3nN9B,orCI_P&“ ѽ]Qh! BvX̤{`Nj6?68lR #߄$Asʙr>itBzoW- bekިkExv,Բ i @a4z N-2biǞ"dnK/ |JrІD0(vm>~[X5ia X+M1J-VgQ z,>^yj^јƅe{7}F\xGkE$o򓊎mh-R-N1D/{g m W~և A] |^:%;mʧf$yhPSKō6#;hi3v:>(\w.';]G:w:Y럚P9G/tN^a*zCѽ /Z~GiO{֘!?zs*W[Ulu g^1q'{!E$ydrFn@xiCi%؆XȺe:t+_'`1sv%I jJg[ݾ;-%! x;cdv{@\P/ܲOo[ݯ+-aw=lЕ^,2w^oO3/5黍z*ܓehP_,x[hPIN '̆w6)ߜi6@ˆ7k]ݾL؊o_pyŲ7s(5Pݻ=۷PHM:kݵ%aXX,\ū~f^~(fM*:1s1P_g[} 4D󡏐 j@GtnQ\OH4-{xmg%Ot t9H J*!_}*[+<F_iL|#Ԝ08 VO092u,gFKb( ۛ=\1rZvmn9Bo<&T[{D);4JrcCy.R>2VZFo z4wSZ4='?aiT_Ӣ04 ?3F4!8?UU,/lFOn.Vy8PPB+0U(2lyghD~a\tnͻM ; xӟ"3j~ Հp rԣYyzȧQI3 1-}{;;*KJ ʄMղHEԻ,!' $85A|JOb4+}1읿8 ;})\bz,M>h:%y!}mĎ{46Q_ooѨ{ WAМBmc|\*Gv;ϬЦ 1[QcS':@_ G;hYF*DP%̩϶aIXhI]%BX!w4a?>8ND5ۑH]D P>2"!`y:Y H#>gh3뤐Xzf\pի}R0#&@ x_(rU- L@I+B(lMHIUʼE߭c.S` KbWWj?j|FdfJUc>Qd!8PNMMO_^l=WY16ڐ<3CRziRK݋hmVg27V,'~,Tm$Di**/~ K_z Y 18@!Q걿DžT0&, aiz;m{M{שּׁB|ώlnZ]CV%]גؗ"Pʳȷo䕋ٵUHvc*;gQ9çiE$tb7}QeGp(+#7L.Wu<)]ChZP%pA3g̨?Ǜzp"T%7)ɐl 쓌o_oxS^vv"G񄇛4({mx"_4)_$6iQd?(Y0C?K3bc4OIVS[ ؈=orq2m ^V Ph#l^qk 2pzזFr{ҿUBQ Q 26*{ MD!= 0F Hu@漨@fcg0$ I } O!!!hDOǣوGcmEzH&$FQ]Ѩ}Qje:1ţQxq!bSD*:uAT2OQT$],* X?d6,A2HT*> |;CR-:'$Ս.jI9!4(;ѡP(5?(]GcΆ:W-T 2:V/"(Hm,,՝FXa.pkfD.}͈i5PU⡪R+Tf#TfBUm4PU0jPUO UPU 0BUCZCUDuEr0URta"ƹQh)J2(U$34+qA,nRu;ET(U*/jYg*JCdly!qBmr pmFږJX9V֬1JGqĆ@j^CT5-a(R+/S>p`Ri.y_TDQgy𳼍r3}ҭ!Qa{AlS8)U7wҙ/|)9o/vڅÎذpۧD=d>(%2Lg[ sxj ls+64 ({tHbh8z鎿By?dZ%vڋ!Y6g@R`n9mx!ұHfyjj9RqWU 7 @~b{IĻCo 2l\Ts(eӑ&~q ItUVd,#`PPx$xad7:DT<500x I$&1ͮ#xT4&!f1sF q|V]]]}UЧj9{ͱī՛Mqܞ82+>0vJM#Ҿ3_ >%CF.zyޘ*~U>6r+!îkX-3m-Z^4}30-Xɀ74;([/ Z2&ShV"d,eH"<%[3XGo’ [_w]/+]so3يx;L=O-T4߸v{ѿ).E#_o: ]K MzjxĮJC@lݴJSoaTOiv麃WPW4[)תS[uT~nV_V)̒Gۖ4Ҟ%)C&SN#U}MꊿϤ&KbHuy{ҵVOטa0Hu|; - qPz~?)D :Hq)*] 2A)L!qk޲s!5\ :MT>N JKIoXuLn e{h8Q J"'^PͱyZp4bDfT"#RbK#f|KJ}a:=^##i4,%gLvKHn:Ut QFi-5un(]tfL,uۊvs &fS &f8o)Gr,*ЛP7NpJm - %`#P4mej:ɻS"^.;/qP"_ɮnzfNxj{;v路T?,ĖKo+.Tں h1K= ">ˬ6mCC^U>Ty-8UF0_އwm_DrYQnJt, şA5Vi4\x-بoc9ʋ{}~g9%Q%^GPGI9u6{tqEMb_j_ǓǷrB8j2>'HkKes3Loޔ%bfy|qG&Pɏ/#銛Rgr YY,Dg79t ɾb<dj6z7JQ.vێ!i0 /ӟn*ю@9p;VKp ! *xB2O_{Lci5?~)KV`am %Rzb\ v;S}."eS _CsWv_㾅KiB쥼%B/\V!vVu}T6s^AaAK8_ݨrSIwz)2du7)Rь%/z `G BMQ0R8}JYc&N%d(lrI'F `j@elltz<#_V`0ۗqSLca7yMJ~Ȧ%\~H]xcnT}M$GWӗZW}#g^Jhb~M }u1U`X rwZܽ%@G3u(%EoznBn Vכ+'C:5 mƀm9a8\cI3Ns3O\V Y"-&iN%xCZިܨbxB0J!Rh_L^.J0Khv^ 4k_ 'bo1.(D)%:W%aVBS.nۦEBɦƄdSq_Tbm1mW9VHA4w(zc-*]tNgRbRΛP'#D(}`bوE' aajxz>QqB!t!H pa[IBtܣ0;j0ߨ}V%oIP;$Q-\u_e%MyF~THWBw,7DR)yncQ1Tih z_NS搚%`riFnf&&߸*\ؖP/FQwJ u9P釀㧠) S*AC̨%t%m ໍcLV/rja-Y_Gz xrSyɦj}h!UQN\19B{0;bG$5A«5#/}1N\d-P "*Zi)޶CJ-N`b{J&w SI\Nt)b_ԂMx8MqXlkY/zJ+ P>P\ߓ4Ra~h+AB[EtJfRWJ;nBier<-fIC׎e6v1 'Mv ^ G؛(xy'^rΩzR[fŖkܤUKxR!L1q1jXt:~8Q9shEn:ӑX\j1N ]72SKZ_t.@p-30-?=L  dGXdՒJ~RUt*k#H2trVPníu<2遡BKG*5Wl Ɓl.+x`T24J\9<뇻82|OH)KCCf񎰤=D;NI/nqEZ4T*N2g9(UAJTkhNyO$3f*mwq> $!> .#wψp luET˭@{V|lݨ@-Bc𡸾؞sM:]a}޽ը{Qv/U}$.鋋Zqy.Ζ,{jMÎûOP]x|/]=ޠ? D~uzZOc·L`}\p4J{G9QjE ғG9 M5,J|Ini90J2Z"爿6%Hz49u :jsrHo*qBl( fQVzyOF LJ|<0?*wR>`ĒY1 NL "]l7!Q<8ۿ?"Ucab`^ wW^sNvj9#c L1CpAa*w)8ˤj5_Ǵ Wܵ: w'LL q _xb-to$1t/_8V/ד 4I%tSfs1\V@wPN~ it<>B#$jKkPTCyMNqG3`,/0- 7b6$A4MJ|Tű|bڽo!? mL>'2g)޶`R\NF?5揄𜏨(茸yJ+m6AfA J\uBsiDYZ ܜ&qPMb_QPj@[_vm0 [rP>$$b'yy4%JI.%H-%a|Iz,Uq11T>݈at8T.]!ՙ$:U$hÉIQ]ϘzVOpnZlE@_\ND'=gZF qԨb+z FyPN.ʧߡt-NUO>A*lcA[ˡW_{Y#27?C?L'-ɧqh]lKjL]!.t4b& { m&ZE̱kǩ\e|HpkUjTNb7p ;ܸG̸a&K 6L3 C6. cOKϢ?kA;Va`4]n8jAzўeLFF @-TM!fi9Jۡ=;VSVPVIN$*A4ӴU ֏ɯK1c9'mp!,RxVOҡ~ůeu^M~*C }NF;vhWv/ZCX}sОUVs Nq<m::yR SR%aH#a8>#g8}wx]\pm #F;p+-/bx>9eG3|x??x"e8Ό䖥_`8Z^YAxU~\20] oA|q[Ag8>. B[< UN&|urT`f< &Ƀ/N9ܟZB)QMo2!~>zs#1hΖP1vآ%kB2!o⫵A&RQ< F1 yDNԳmbM^xLQB ̨!W)'}3&z;VbEEgN ./^ъ> m:Ӧ EOG:IUH^"JAljR`:w$9{VǞtvjž0ZGCTmp|O^}Kx rg<{(GJyqR ~+eƗ&@FsѼqhׂ~ZY+ڃϗr1>tͨt vqi,T(BixZ]DN*g+tJvG1ʷR;<~N/\T7o}\k9ε#%Uryѽ?@_hgs )vTG9uvT>¨P0s̽>IuJuo{7.+amց.=μ+媿[QR=|sES^^abg[˗ !4lKF%T;1Nq!$4A-tHW1tX:'| W9Lq෡N@#M)k0{衄r:zE=uwH<dLfO|LpBB y8(Y2X,\y I^|l˞Wf1x$bkwrw _9>7`{΃p%G l'd?A4 xYQj[uN|G ԯy myj{ˠ.NCs}9[uB|NA|J#ǥB<<-qu:b(=<+a:=Q`q^( {]+;]b蠳KEjaSlWz>ņ>x0*1$}djl20F^ik{ 4^፝PcU/c1<JYd.cpOhmo5_TIu ?bl2u10.Z܃?w^f;L?kEi؎zTch@5^D DL(G3"t'jH .l Nb+H]ĬlJ7xi;Bb 7)U 3s<7y&D}QGV: ʍܼO«qrXQXrMRM\^ ILw7c+6|l%uJ36lD7B[.S~^km~7w('zqDKqx`OFPtaprd[O+ۼ-@;.AoQI6ô+&i`B_ ɪjyU,"!QHJӎґ4s@}qZ(\*XW:<F0ԯUxdxScV,K|%,Ju o\[X,aFw|~-L[F/QpF=  ~~ҵWhlͶjl6l!~8PT8R5# -X$+yJw #}E Й"*PG+屭[;Ab7܂Ptcl~'NŊ~vI/,敮ZSW~߆q~fz֊}f!zJy*A .X :2ĉMh,x)ÔdK S>wKqD9r_Ʒ;|[_09ætYtY5ulg5T7XLInﶺ}sٴ!}jQ2mNsdAE;ϪHƵz_ߡ]3WV.xVO׿^[ YdN_4N0+xEs9,⊠{A?zuwz 5:Eש"vgWWߩ"ANEз")w΁J"h>"L 7E3A/ۦ\G4ecHUAHIEЛ(,HPrwkA9O߭7:ݕ"Z(v߭.CDLUd kEvr캊~sEMn4Fߥ =o! A>bh$&D_O1zb2$R#Na-u"!!r 'PL7tǺ7⪡r7q=jn\57W :Q 洢t7:'W4=z ܊L`jwNwsTCӎSUL+~U5t/\5j/TTCVUCW_O54+ @нDgsw7ߧj1s!G\,XԡH$}&X z:`ԃA\ʡF:Uʘ:o12p?~^n59{|sMY`#BE~f/u=rЊFT)}D/x]H`0]U|8:8{A+\'|@3MǮظ[vнsh"6po&ˀ~BDQk%QsO-B4!Ğ1_9}G)p'^ZӐ%|aM]^G/5*W|fGs&T _n"N-2fw[vvݨ3Jhe_ Eucu͟ߣ Y+3>&6y7 i@-ͺMLAso@cֵeks](:s~؍wƨ.+Psya 3VLQ+E0VD,)+;H K}h\?z%^Y! A^wնT'~m靨K*7}`b*0&JW?Q$PӗJ<^~(]62C}]>ȵ͛;֊IB7׍/Z4 &-T[Jb 'QPpp(qzd1%8ݠ/K)ӿ7oBC6c=>g;U 1DOߤoLҧdv7oUb:?呔r)Y.cWIJ}T/y@i"vRU/TP}*m;kyͨo-%6ݧs]rS ? i`"*O@UY<#dzVo YbF4n*$ŨY%ĎL\4,w1:\RRӢ?+|y*IBEgs%>T癤~oPuBɸޫ4ˀ^Wьq? \GlˏO4#ݧ w\*idgJÜl\569 tYC0OǙUhC!Hމ||Ԗ-zMxI:+kb_$o2O/z?mb@&Ǩ0T"ZTyw`2~+fADW 쟈F *REςTRG \ 5w Dܙ[Vggv!'wgrB/XJ"%KpkW-KgxVwe-Kl)o)GE̴Sj _f Dm*TxK߬e\9vpOP-s-8 f3/E2l'>gϗ,?:[NYɈ1dI:/*蛯`cE΀z' a #Vpgl,1X)=vw{hrйU `^th2˵7+PEӡ81P>G]a(F]rPe8 f%¤0p+XXQ^va,,Y\&a09n(:?QQtt;d)BE Jy@"R|x q늿$'>u7@&Ԫ [[śT)c ZT&>0m j^鑨U@% ~o^29"AA&m\;jn{T4iΦ}Uj(wV%9(M^KvL 8qRCVf( U'? D^-Own3G&z9 h|}MPM Q="Njl(!Lg8~ԟ>m>H*-r081 fdek%.PɔvݥUec雂-C .q&v^A?zrTT]ȁ,f]˭ ʐҐ[ь_|у'4C/=\"K. $! wk;`lpH4:iI'}(|AstD{_ΜYN4TS{u-maV$izJ-k9Cj-_LQI mqŊxژ;֯&XA!uMD pS4AP~| \pCuRRܱ*%"'uVKtb`g11'.+N翲:vP,9䰞9`?c8L0Í8I@X&;R9!͕'wzvJG 6i^Bh̢Xc]!D9Z+HaxسҪ5\VQԝ+um[$\s)m;#"]PүwA 8h /T5O8&!צsg5v*`$mŨJќLXsj-^1du;RݱW\Cz /ߞ0W6*Qyqc|~%ռ̢-NcOwLG)Sv([;EZR>NL:6lm%]HƣXY4nwds^'5g:bX60g ttQ;5aaү)AlSٗY A؍ss7@ff7f7W3M<7Pcf7|3Sͪ<qUnf[|9};KPX@8׋'gn/QZÙZ<ϭF?B&yV.\ ƷrZ* 1W+HOj$!9Ǒ 7 xzo mBBEB\GG&DF.L(R2S|uŇkuO_Q'}in=V?SwmfwsF8@qmZ/Mn7\d^-o[;!]Ef[viGo-v>v=ȣ{=O>3_x|O_y?p7zC>vݚ'O՞>?sϿob?_KO/tsC 4N߾@ֵ [{fw̮,{;:`f|Z3M@>aUf箝'Y9h??j|5M4dWS<p41k5)氹$B̩+rױ<QR/{xyDW\\ Oa1I A^.) oˇPĺLgͶfFÝpl*[&I]Qs<=UL6X\!+ǐI˴'QOv1אki1uys2? 3Rm1:tTvkj!ÞBhĽ!#L/HH,frȟ w9Y9+ 4c׸YE͙Pt-;+P]sbtT:tg"c4&Gʲ: a];nm_aY!-7j0ԵvkmYivi*\%Aa1xWN j)d6 {by`c2Y5ϖf5fVahG}֜505eYmUmXrRi%CAw9rExC4ez5mc]?h-ߺIKp|[*ip[ږm]Kҳ%Q~wp@zDs1l~_/?I7sp-3-4%$`|n"s\~4~owdѓb7+= (?w##wEk__C$?'!cl>)IH#0ݗ֑sCkռ쿙TGo?/oZX91!u2>\Oɾ?l^z-GXF' M.|H4,ٟAYv/xt :n=\(MNo,ߣ2q\[Կ/O: &C1C2_cڞ!6M/]O%w# kYi&z(ʢۖ|auTBy= ~h׼M9ԃ|jsǃh o$ (؀r;ҟ ~ &] iѾ&5rSWM$ `J'JW59M5t6Im)`x!oR-`䇱6!V*o-&$﹟Oeڠ1V OХma4ݵ{t ~ICʛUp??VmuB^J%d$H7}雜DF&}53 h[{~/M#l^K T:H_ < .ׄXۇ|NäkxaE!ow_?CnЗO˖P6Hwt^{K=՗R#׃1¸wlFFsf y-?|}\ Cyàa`u`|lKQ{I"W7W +4 _ZFVPGP׽]<8؛CmaiaC l\Ի·i?$s~6ma=kCʻۂS:5?C:=Yn`k:cj_SX۴{4=>v_޻V[ADFkg QE!\7ٿync"UsGؑfVB;d8^~ +@knFcTՄ8FȬ۬[:q y,7A;߿޷֧˦MLTi{?}Mggc/w^>!!W>l:6~dcS:Mwt:6U{J_˗dr[d^ LH|Ѵw6rWl }Sl)I_3Cj7%u!o5 ^{A;8jrmUy];GSxujP>飉Ԩoe5@d@zQ72m|Kd@2TJ_!C&C5?P,2h ږ#$nL vy[bnvs+h܏qjfXx6Lz!γ^Rl*l/+gE] >svm k !=1//kE!9-IN3n!ͯ0M,P|nu6&;ӳFyNKɹ ҭv /˟U<1]΃8'R+!H1b1vrKsTӬ%XƎJV"Hչkh٬i Ifhf($n962O,4&i=km {F\6!ߓjgyP"\R'k56VV;]zIFϴs2i֥YmBگ }t4癬+VXIvkP\1{A]tfY\vUtG. %>&:]uH 8=9P lIgʉu@p-)7 F3n)e۷gf ;Q~G ,^bst˷s^vȯPZ ܿǯ?SاΏ|8K g2*;WPۛ'xϮ[/x>}}q77<,B=79C~79x~ y󴳹j'ˇgh<>s[{!w/:<87? O9n$w0Z41wC{[~]b]:DR%w>yzIdZ%kKkwxty;9Trގ7)?p]ڿn/x1cQZyFfyyK*R3Q" Ƒ" %7kHz ~vՃ BA{S{8 &67!,o `M~ $o8nJ\?x X;A\e'C]pG3|?BA3}x?ndW*޷74|9Uy#XDC ?#gA!{~IH&76|SA ?qee 5 $UѬe$UA.WCc o`g Lx5಩P3r+!U_.ZpM+K98!.!p9`|u _X N*$m,~_d?@lF[s?o?҂ )yoB^0Ep;?K p=|6/hXg aaRB7 sC ݌>"˻mo;~_҄:,qg '8~aS@xi7J`YP,Kd#s'#5N | x@^V{*{y_מ_:OxU }aq0u?J!">zxpg ߀HqfpF|G`Чpx+*U}8qs|#>$qC'md"N1SW~&u Gx86|x7`mMsdu pW`PW'~m2k?2%2'BM d@S\yp2A] 0:/1ى|q3~<C?rDț@A/q|/@fH ,hfOwr5sna@B<ma&r?89{# p<;?pzGx8#`W,np 8W8$wcw=p`n6χS=OpFP<}E𔏓0wޔ:sNέjua 绰߅}uu]˝:l 랂~19Y y^f.?6W}H#0}m4Tj.jnA|q47Я5̘1,\dee**?]v{8p?dO=MޚZ5R.^vƍRsR U`ց"ڵhOP3࿋ vcV*y)] ȸ[ͩSU|gU4CWg S̢gfH_QS55]=u<Н5Wk04]bW!~0{y,5H]K=.xl؁]}1158̠?Pd=kɧkZ/O)/iJ?зawB)1 9t9iޘ3m?L(R+>M>aMswk|> Pσ8GGGD2o!#}O?ECC7 ill$͔W1Ƈ$Bite Cc ؠt'S1d2W"k_Yڟ?GB)o+ :%l! |9?p ?A;  _ i_? "or ?z(!IF 7vo 9i0Qn Q>C+Gƿ-|ǵH?'Bx\ӀoA?C $h66|!@~Н(S!?_] |M?jhKr?-~ÏgY W1z{8_W8$?> ߄[0|g ?W1?/٬je2Ìfgsƍ|}ts^5Y""f`0-6mܨ[rs_l7 ݺyk-p7 aFk иv="2h1&^ZX"i)Vx7xb0X |vC+6YOթSO.plHF8Ƿ>:uzt7|o2ZA 1[ ^Kyԭ~Ò둢%n n X"#Jכ6E-ȮO{>݀ZTMb 5k0n'o9YnD$u(P]֩Sop^Ow*PnUVPp9KѠNF3kU 4X#οlajf xĭF/xa6:[;Wͭvw(FZ Hw; lSrDESr۶&VkwU&+F0ߝj-;?Qj( u,5{[Mάk_mkw42#t1Y\;1u(yY̊ޮe̚c'ˊdtL7V'y'RJ/5KQ .\y'n㽤eVlhIY?-\]t(\äDQs$>.\PYtl2%##CYb֭['?P Sr˹B~~_왓ʙ3gg*/^T~GϗEnp Ν;J/}t~6]tlqȁnUJmZJ_*PFSFǕ5t<>O`;÷gP0@3~ïen3O3O0{zzXOӣq@@Os/5f=׸qk5{=}6mv W6 hP#6P'/~Ok_x{5Vq?iOxzmXj5WxZ<yԳyǪ^OVu֠z7Ju챆5WgiT|A9_M7ey}}_qLg(q݃`?,n.Vɟ } >W7ſnݺmfϞ=g-΁#lmX Em@8Bn|Ȑ Ooqm͛aHPPP1:ꫯh֭2'Ι .:p/((r4@`'pQQ"Dm?' 'Q<~ݸym=1}F>%!h9 z ϐ'Dg#Q~{:|IԦi'j44CDo㩊ϾفR?/ϟ vtX zi?Lt6ѐ}D۝ /@iƗuah`9=k6Poƿ1D!k'MBF۴0+? ]e"|,W Ilz]#D * ]uJ!m."?ƍc9[J^~8}:6 %`™KT3%e믿Ǚ4.(M&q-ڷed% pT@bD}GQ$hFg֙`iϟ dj-6N,g9m۶/zJzJ=:zzoB0eB&^>'z2Nݿ3h||ͪo64}}}1q"HYp.i(dL&t!Ӱi@f"ПiϠA3|RϘ5 -lbKßTC9I4 [~rT#֙LCXD/_d?3|]{ ҞAg$b_\!pAvW:JI ڦ)iNjgz?i߅n\@Si2 3 :{hl,T}RWj|>)pk~Ivr2/ y$-VexÔ1#aLöţ*l~`:X&AҞ񇿐ߩS&W ܀M*6ӂh Ӱ!NL՞>)-HsGѬXMj)4g:qxAcrg/I Ga[>^#FdzB#a3Ӱ~2{ 6 A09ib4N'?|bիWn'EeRܹsM;wmSuL='e ecBhQćҼF44Lc&3 h9? K?uA? 믓TI `]3:PӰi4'I{NgJo1 LL?YƘIF]bKܹsf͚hs6޹>kӃhfkuBaFÿXRGivJ18>켈_(l si}G@rrA_ )5Vip~3ǀ=ٳK+7}!zE\f4~x' QL'WRLY4;iӦdZiʕHcǎs oA.T- Q`{Vۿz#sӞeXl ۶m8Ŀe˖ ?xGl6ݛ}Yz7i…`4  NH: CB̑?L7iwsj{OZ 9úv6lp _$b C|\!#WRu:r.VDy:v`bskL)))E 6f͚w +-)96|W^m &P:FyF!˻-3f\KKKiӦ0`9RוB@t7J ѰG`#Avz<'$$|~?iICi„ BroG|Glj}KSN=;X,4i$!¨{4k1{#tu 9g_F_~|Ezls 5ƺ҂#_|Ez~.;.Aqe}ecO*1t~:#=ƍiɒ%B n7 Y?`^ʕܝ>6===].ڀ/t H9?] ۗ3f%"n+#C3`IBLk4Q0 g8`qA{&ZkCj-#z?~n:'$}D~>j5Pc>9?}Ե\rDxu? 48@\ѠLhR:)zQz<07G4۰7pϚ߈0.]6WL81~ʔ)W} 5ek>ԙ }D Z}i /+pnu~Zk 9 ]aO{R/ jƥ?ypW1W7>v͞=;wމ-btnzUr@}”hzڭ^a[j<>uv |xqVQ'tBg3dS4Є>/r?KI3!r~}E_U3*V7qHj̙F6|xu|nxGmΫwm4}Z9IgΜ>̛7O=]>]OgХ3&\qY++o~s`OICWc0}ǯ$珊:m0ľ+jӱop@JVtA[ųRm'ųljBBBڄNɣ^yiĈb855U]ȵx#/m?\c2nl9{DG]%γh]e#|s9Z"#""+p=z;H{R8N9rPDΑnﵦ )j<أ@}㲳^K=ψ#ǪߘXy}~IQq%1r;{A쥣 ~>xرcRsFgddD57 JԫW/!%]6CQ iL>}8Þ|j /1.p/x x/ix>vﺇߓ@<3f xVU+B^5O.,,\us1KCk֬e˖bF9ɚ-<2B@a{. cq`iӦM9IE@g \%lE?yІߚ?`}˿n{N-~NQWweЫk˗l7GrZq8yQYYY{̈B2AlӇܹxSaXC_sx 19(Kψ6Ix F'iSe5ִD~ c.ؚ\sKx?77}m+(mNX?b*VZx֊59pc#Ds`Kc`-~XaN0ȩ70{C.Rt59!gP.-{k"zl1^un0T~mL"֓ݑc݀nbgOf,]TxFu5⚋ݙ+Ƀ97q\~ 59>߾Ȟn_mϵo {GvQpx; Ge0G#ɑXHwv:6;#S"GCɮ={sl9rsV0-}ܔ|H%Rllmlն\f[ٮ؊3=23232 >9,3!3)3%,gkPKg7RR(g?pip/_vendor/distlib/util.py}}6l9RL;[M]wkb.KK͚"K_?x$ӯu$ `0 c_ߴA7^zdc{Siuާu|[-iUC, C4;:<;9)>rl^m0٤ٸ|/l@fYWl/Փ掫^եӏ vY<䷟ߋ:/ϪɤBaPoM5ڍ~#7F0mp@O뺪w`3, :rT *;y]MF;91Q <@>6x,bYڧaTkiBQ'iY3.a,ڼuz|S*{p4$$d 4բE]T/?U9|i9`5 fE=W?۳EV&۫ʫzQmO"Vfe ʷi^b Uu>AϿW L =Er`cY8/YEIR,I&LPykxbc8sq|PvóoOpb.DuC4>?.^Λ`Ӄde/J{Gߜ'GnG_?~㓋w'ZXmkkU{޼KŰ/o0!޾](:?;wdboݿ ?~?Ͽ8_ 4ʒYZ€? OgϞѿX0H.pu.^MsiH*üCœ@E!+c<φyF-=UU,)ڬeZD/ ^ F:Aà6qFb.ʦP; 8 }2c +B Z(0e:-!aJp} SwyzYd X54Ag1P%tÁ ˡu@b!3*>&fOHjEᢄE Ђ* Q4Mfha |$`xYAyI2Xy S!?yN0{k ӳm{-xDqfQT韏bS2n;yC#nCz@P?t>G>#m3dhth|3$\51bz/EZ_P.Y4Sw+` iX'` H2s>ƺk( ܃2oL vְb%^6ւ_h#J 벤+*ao,[ $㷆~}hzDYGAFjOI5q3=]bL!=U)y+Aކ(>^?{W%4Bۯ4IAE4}Ay,@ 8?NaЀ|Οim"9/s0'4ir^myWCg;ʚ2}tdxkB]^Tbij`dݐ g7(Q7XMm\fmQMk A*+t`:k)##+Qo w`*Wuub ސ2?-#!,Eur1Ɲ -/ jذXV㌖D2 pu`BL" TOęYgO7/˽"Itzie=mZb%= 1 qx5/۹3ϰda5 7E5Q] zBspi볰u+k$I}z>oHq~;wBbEP΢A:lFHM`??2G`4}n# E@qDKLC М;ط:XEFTTӓ)yڂI0񫱣])3MS@jldObioȢqPFh[|ęvuita\iؖ>Qh@иJ~M(mLe`\*R9"}Gyk(%Ƴ Au!I)!Y7Y]g 1U5 aMo"=HuԐEf]Ɓ e[?C;i1<2𧬍+v:*I֧~kVll$h%BS]F KPʻH,P&m5RCS.E .@6ػB#}7I!Añ5tV IC6YܤP$9O޽pv$I`)'ksGs,,?!m&aٴˠH4fY)d]qT(zmX]NS\"42$CUI@{?txdf98Fq9p٘Gf}c"orX@q"BA[IBi5C'05$rRU h0\~|7dHh-ef]ϼL9EkY*4XàKCq2vשV5A$Ptҙ&mrf= $D b!3P)X7 -P(.O} cxBxJ_|@h*P;09Kg]W:qU(Ъ=EL#Rx~&-ѽju{@6 `UmQ¥ߧG 8trbȮ#RLB|@-G"X16!(w*?? _cbPqJRËq8'|,ȉOWCY"qHCc9$qf&b0N*WaE5=.#! =YB?NCȍojrVD]_@ na3|V~M`XRU!U@u$h53ʮ%_U ~Ll݅ZOR,$yH|->` 2M ^*bP0 cj,Cwz50L,R2IW$Qb `Po4kU-oi8Yq崅1owJ-W cjGb]b#PQ3TNNv@ѭii)b56%敕\us X7CUGWEzQc$7>ZUkY207rbNdm|BYZ`H'≬i^KS|J+NO=Y1 x`IYN+ S~8*|!/e)?F8[,|Z.CbhU9mF>„RP}eylE/{5)@)*skQu+9.iI= EmBt2TDˏj!&ɬ. kZM! Y:Tv5$!I"\ 1 !lm^lF]P00$XCԲ*K8&x )In\ V.%?tG9PEB(߄QDpPUM4Z耹سDPۭ#X9hx[Qk >\PT<,jtYRN֪ܭBMҊ ]ͤA5Ae,`}(A7#t b ]E5I e Gg=O#x x -I|4  n=ifH!<<mM)2Dqx=A[~L~$J\ݠ{|/EV PVe׶5u2zF\BvPlbf` S\z -" T4`/l Z.큢Q+N*T|3fo lZ6!U a~A;geDJ<zQMA'ex>3_u)ɖV%7.bXn_PBZ,p$yio($PJZ 3CI2X:wXfj{UCe~'.O\lQ5S,as4'k4rv_jkb`s `6 P@ر '\*VC:SJсLpeU1>h?c@?E,cXRG0-m׏[(`ѝƍ41.)QG dO F#9 l9Ű8;\bYD=]˛"/o=Q/9G̰SZ! ܓ74OU:^iMه 6uʎ_!.ȓPB1t!( HBBw@_>T9[K4Ԙ:+'& M !2J珳la&_5`3D*5<~OAl@Fcm=Sd143LRzHnX[}Z<}:RXc_$"]Naقwv>lTA6FұdҊRس n1*:+ְ1CbW'4OEo{b'QZҘ fkgQ3a]0Z >F` ethJ^j1 7-LjQ(hEH>vBM8#ƃz9ϫ4/-ԥ-P>2&ؕ =( Dx5j.&q=g]"ji@fY` 8Pd$@vxpdG !Łb3 KcyWr),nզ$ }8Hrވ,<]/a#+^譑mv0$e) [.v q'u6Ei5EK%3 snGx>`䁻HhTb3UO\P4^1 L"+jI[J]W7IМL '0N'9q-a/_[ˋ˾͋U&Pƈ^y|^,Em} |?|Pu/~~Ie/l[8 71nv/@!-:tsreFy*9)q T;!'co-BࣞLE knhdT$;;W}[~TɕV\AU(i^ֻ=8:ZVwtU+P_}zAa8pD,Sz'^ұ;oJKD9G#=>&8s aSC<Лp8Јpf*0r4!>>VD^q cH( @2[^N{0Kػ7 "dw>L! oŌ#,@6lrIyG)$IĎNε+K:lJ]K["TOv>4xGIDEZíD針6Bm2 s E_V)̂VqC~ ;To;-o::CЬgt$]Z7Q'~+NC k{|`Չ!_Պ uO  )t!K)~P)d/OK0$)X"1 `YhhVyIz 5Q/~D7oD4BEI.6Ӿ&ɝ@Ko3t Ψ&G|x( s:䀡SFjS{ȥ8Bf*!(P x[ eʼnMVbuQ 檲pfVRe+^hr(-+``Op36=f GPN~QiD"3/V( yu GOhg9ByALX\3u_ȐMƄa%;Uy&Àe鐹Pr)x E_gy (\>b/۞ [i07`HnbN(옲 W$ ?G}kU}drߖGqu;Yv#͵:%Ym U͉˜"H gK5'kGJJiڡb,Y`[;(s`΋-;$lQKPVjRIwRYfA$E]P^pOľo@ī@qiF'ȌriE ^J^Q,,-fc%hX`FW KWƐ,$TAh&EHO>86!!3҂6 iA&5ֹ-'&KL1ݸspivE0c5!/ۭ3Bͽv5>cloc$] U(v3uR8H&2QDR؀i"pI*d=FIjt٢ #fh$:-WI4>H 0ȼ6?O8fw{0ݚTG`{8Ϸր)[YѤ ϛmO dL궘y}"(2zp 38BfJ_Ko=oVt;{DGa{Ìt%.@@ϿXʒьy R@$%`VEũ! JHR1|pZڗFEYO9Po"&w"tbMyJ>ƜPYtAmXe kP+u b`"Rl''nvƏu}L!)ѝf _uTwzwRgT#u~ qAѓoų ;In݆[cɎ}]1UKPKaI|ih*XRڛ;9[ Pk',@Uck{ҍjGd2G ÏqoC0!TE"FX+Ea֘ЯGLSt0_\¸l7KLds){-!8DկUUemwE«9=g.+DfWWZal+h)j݂{ aC #h 4{7 ''yN[a)-&yN' +,i R)y X'ɘP^WԜqb|HJ7Z焉WdWQW=lé'~YW ,!<4,Q;%0e1RzIzM}/3-tEuidApp6ҕT:%UpO40T &qxDN1} p}Ro{1A& W6c,-sSbc38eFl]cBA:9:SஜE fJ#}z9"P<πld !.y@vAL9N64S,pZkPHkBwo8$8T,|\&;2QI56*gqɄ#iS"p;0 Ʒmlӣ#>L<:d>[,RFXfS`j݃wH%Zj"=*ړQuP` s4D׉eeeUy"ֲA.nmo@EjD}Qw^JA˰gPd8s.W7*ǝB1`<; b$lJHR2TePޖ})ucThie>i2OJ,&T>,14qM>g[Z|7BuM TxI^Yܒz^Tt#OîzGO}IV fVqS$+=Չ*-^A$r K),.WX/W$dܲ$v^VNڰN5CWŏGɴ<PKo3'FrN<6m] п0X&nnoC7|M4m}?p8UUK9TYP%|fEb\P#[[5n V<+ 0j|!:OÃgdiw'<#[aKu&z Χo?\|kFzW^j:\.mIn<[V7E/[71[Cw8e$A\D>8v{Owf$ґ]!몼N1j :`In Vz/Q7V" wMwʙ]ϯ>; -+Zծt ͋!{ff w8aŠTS&CŹ"K>Ta$mZP0_-) FX\aDأ n:hd7˗!-cfT?{7 <J@NƝ}`)Na,8xe}QzP N>iE 1'JZ7%<WY˯Nt=">-n.I}( ;2cٮNNo.,#&pyw=EPq\5*XG;5gqB,* i>~wxð7tF|G;,qw=HPO  tx&0ŃB)48feE:oݎb 7v;ͮgD?2N.u[!eFDatޛ"@[hZ¦ ڦI9)Z2]:Sr/v9Uak _p'>8\F[[gN!׺Jl1ɰmgaE,ԱJO oJD~j5B\0ykW7KNwP wA7[j @QWO-r UXwJxIơ0ʟ&"g'Mn}]#&ѶkJ?iVڥѶK i+>?\ӅU2ٛJ% w R bu\4O/ {tqҠk VDj.ftىo=_k4~v|jڕZ(j;@%NY OӚjmeε>z:uDvԔ9yZIrs2Q:Em~:Ί ǚRE$Eu<9{_]{2'HU}~>_?3ht̮_.^/T*p'^:BJǗWT&$!y>-Ry(3=m/n B"x^BOУg/^< fMJ F6߅p   )-|:z=\bTp>ICVvcgČeWC]UCֲ0%i/W=a~APC8*/};A).qDCN{Fm4g݆u4HIȳ$p xBWP = '.l]Q| N<^U\2"<眝"Ojvέa7 }af*76p}mDQ%9DoΎOz|6 -}>MՐsI=ǜ`\ܞ \e5lIW٦ᴚW> P:E~[5LdqyRe\K"e ;yݕȞZFJ}*")yeSz)M/aW Yr{0U%4E ? 8Ac%3 wEm ͤ0iY`m+T3/ EVdpʻEwn%| u༑:g;J#K7ErJppS/ãu:Ox"G mW7~ϴehԷ e&b{|rtvw.a{C12br1W2vlyt)m11b\QVs-f?[cUM*wco۩ LGytBIh"ˆ^T oNÃ%b$8P]());NK(H_<._!~̅5R5IOokTdFY@)KzҠhΧ}`ovGh0ȠqtD9n^ȁ˹}?6!ӢsǾW3d& )F f䚘$D917F>-ʭlK|O (B>e%E])%觤Gxva`(b#25۳dt G@0脉ECD'/Jɤ*LME~:%Fh⢰jTFlPշ /o`)XK[(.y1%P4&Z[tAm=ZɅhZ+.RfdfȂG(w R) dQ[v;^ur'rH9L>Tb)*QV/ȑao rmg6_Ehm7dj fY Fvm|{^Y8פ1EU@(*?G#?8G91|=̊z>Ag Vū(u_FzM[m蠵` \tS7FZ7 >/V,E&2esI~ -%Q4]YTܬ\:mxp!K졙wvZ :˞HWmR:_TRϗ ̶ÙLg=4T^,qH𲶋EzD;밺1BdXoݑӫ^+݋=ɭ?kM+.TcT7=ڋ:.\߸$ST꺵7[<㳆!&L΋cmDK800oBx&2)믠[,l'!N֘-Mh) BJXųkHCkXm; Gݹ2kSL>_07iDY4MvC2?V!ỏ;҂UdQnԴ'{G'gRC3_|a{Ug_f2 :yz:0K^YKtt s{ uU)z4J|i-Ȼze8>}Nr(Yi)RMӬg-%'3 e_(I_2pjϨu*nHW (ԛXab]xyMPp{{69M,ROd@=F7cɽҀs]4-pG4ȩNe=qшLQbFC5.ƠK~ j+7 IB7}MIeBJCLd}nP -Q٣OЦ\ЦĂ,_^-*(/+niXtv?{L^:Jr wm5XdvH/Ȇ+/B%Uޓ9T6H.#{e)DWťVuɵ*/Rd2v!5& LEt%/9w:+#Lokupx M> J&z3x-APtO"H,'CZ*A_un*JB:Ow<0!є!Iվv^;Ç/y|FX>'2Hh5ŢZbďq݁L/ۺJK&M%ź?m 1KOPWN" v>f3ЯZ2tmϳyvj|Eia64,n+/^"otPKg7Rh(,N_[pip/_vendor/distlib/version.py,q:ɲ$Î ^LݭILCRʅo̞NcoɧSl T/ZqztF,U3lUuS "a%P;B Maөhe,qba9kj;F֫TJkkU[@Úyܦ]LFǢ^~DYmyaiR{{P ưoՌc9)aZ9PR+hs+(MBڇiqҺ ujMǏ¼@Cv#  9.f\Чl%h8$)$ <k1>f#0I]ڥ}y;/aK DH.]:ZEBgE%]b!N]_8`K Њ yBTHf A7tE[ 2@ߴ(!UHvoZ{7ģ WD-'ϸWWҨp"5';]X7z~r4fmd '!¦@\Pq- Wʟ-r%ϺÈ7,=`C2JU" Zzs!F#"_ҿWK_}.\֜^W"\CH%at5z ּ9\ R63dms*PW\y ʬy2GeX"XۥxLˮ(uv1 ش#^g-vd!-64b*j9a0Dg^wHSY:O|jZ> KGʁƷpOVB_j~簃>xOsvrvtԟpw'hrk28x҅Ƕ٭;;m̂v*]=A8^^DG{s^&:<`5l%JTpM[mSkVH6 r%YQb2^;(DK6nFaִ%7tC ƽ7WB_B#Ӕ'U{&`'*1:UȖ]V Q£BH"TG/&uU? Ey`VW5,݈KB_cw1߀h\lVvТTEN\P%d| J5gEvynXG}5n{`C ųWz&G"?Yd^ .Py$ jpv%% heU# aCѮ6oɰ'8BA%4m@̣vFwB$VYFlw#$/Una=Me0c&Kh{g(ԗ ٜSQoTZ]VA |q1PQ8z%WwAI}BA=hn[k*79] =i* y[4@#/.\2Qw#ޚTt-VzG nQB-:Ijnw?Ƽ@kad*o;Vݣn, kOnh<[2jɊ:iU-զGl+o"E `L-Kjr jG땰9:`KD(>,RC}jp yk,#59P_>hk\-+Ӈ{)2ň] o8Q;e$"dN"VUX`U/S}@paJM~1%Vŝ?y$5_>7hkc 1oBz4)}ltՂ6/r*VԾ鲍b^Ef߈yn97,:eQJ0qT nWn=n*fE $oiKzUЙXkUZj]faԼ^U X?Y*UeKJEy^#)i#3>yG\GXPf{ʱ,߯VJTzZ8iC Zqܭ5}7(a+<2: " ^twGg%"TjeW+iwj1:쌸 7 NjiU N'ҫce=}uƜ=F YmҠ'2)YhA_/Ҷ5I&0}Sӟ˯ҧn~KϣF[mPth»+Nu&9 <"%"X1W{f…d= AP0^ܘ!)"Iq6Ю̳3aЦtӅy)8vZj{+׼re|OPݜm\MQ]D c(c;u@k1$ژX#ک$I8q7G]^TUCzx`N%iE b]6^,ٺ*Gϙy0 P9{粯 ǂ2.Bl^.;~cX~v8|,ZҨP/gD:g歊zL֦1?*_r@ƪ:_ 4Y5Hu|rIvXo+g0FrSYvUE8H yXBȁŶ,=%酙SƁԴA)g,DcAYm[$C@e:$wa۪犾)MJ:8tuLjx ZJ(~kt)4ʡKÑ։AZ .a3~`ڃL|?AHVܛ{ރb0Ҙ?oDW] _v80 w{ m/{R8pl.Cs6 Sz0^v|xwd; ?2=6-abϟ3;2}91׏.gt"NAv.$=\v^~$\eSۂ>߅-b*H2Um#!'[Z+[^hྶ-t3da>) kDw0S-Q  1@K?$=P&W^hRmR;|@@b,rw BZLM(rH!QӭhOs3JVfOL#|_-,#ofܶʲ Zao|8V LzLڸɐm`E*hΘR>侬9hC>ƲF)šPo.¢lcvW3PʆA(3r}<냔;)Lo{lpITm!fkyF1}P D1?[*C(!t)i8`v| [ g$UmcӋ(r쩋afn}Pf#58P4;yeOR6}:)=0|c!#U 9ЯSy~}-L A MLR)Qa3|Qe0zFR[V/;%Nh,/QݚZN+Z<Wꤠi.JcVXp00!|^Xqy^L!';`i^w:ʉ *+Ah8 J+Mn7*tw\^z??)Ryet8hUBC. &Pȏ#&oJFB5Rdt xLr8"HR X[tQJuTP[u O}V9}ίb´~~CvqXr4eoZZz2Ktj,;:& s- >[v5}CBDl$v_JOB-?}.?x@ǁ~Cykg}{4grC`ܑ9(o\g]v@[Mo~yW p}Z et7ֶh?;2q%w5mN$h,a)؄ n]5`'Uǖ0"UF㉴wGGP"W;c B][:V_/`aͤPKg7R7`pip/_vendor/distlib/w32.exe}xE8󑤓L$# jt$A  ̐ qt]6t;iQw/zz,]| 0I5 YAnVk@BwNu$}yyyHwWթSUN:TMdL ØOU s0>˞l7>hX+}n4?e}~@֭!++@Gş3?=σ >?ߥ7{~9=O0}>we]NYjHa6]nh4d0̫xV+VԩFIa 4=f($;) &ggy D}L}7~Oza zopP 6h8?\膆 ߇oVh3#߀a?@&JeooɿUrǷ3.t0r.~b&&*HU[K'f2Y}bV3jVj#_Ge, M7ͽfavŌ59,60/贺T OCwb]de`*d am9YUaM$RGPv}!XN~WSz|", :#EARA@s(KۄS6PaP֬۴z>57r0~g<ʥ殤<0 Xr ȧ/6hC= OCK7McRKAb9^T^0U]t .xmqj<2qkuH5h jc(4'@Nj _^y^2JF/#;?vA:l5l^l+-Gw=Zbx?&Z>D yTuAY9溼^`7WRjn٣BFbؕ˃; mrׇ;Qt3|Ay/"Z1F./(pPs ‼=Uե" z\zCUuǡC7ɥ*rO";,RS]4C'YYHL@( nKy1jupzVF'qR1DTX_*|'$ `mz)RF3`J͟pi"^3k hk0jxjmF1b 97Čz3b6]5kG1+o&"3 ZTvZ"fs`Q9:V5C7׋ ff)5]d9ч6S 8,!&,9>P<+; 0JV4o?D(?[GnxKڴa AtQq5A oػ6t14]P96hAmo0Ֆ/v *l!y3sԺEL55}/y_I^Z`KӅOi7Uy7:+?!4ijGB\ےREh}Y_. X'>־12@wnKT!@mG0ЋREΥ LprBߺ&X"Y`!#Agˇ!㯦 a:QQI:_g)D@&"TX "r#|mJAm *3OF liv5ŀR@^/(lu~Y0 W7jh*g:xzBl3KCoIb7*qP`T q&h Rt%hVAݐvx[4* :F\?WI) l>w8d-6Z.,d)#o@-%v>!".5jJ]f5AV0LIw,Rol QR(Jj )%.>vJ.UT~u {q2cV>:wRݣ@c|hhekո܍̢)γ)Fmk DE{ZOdcNĢFg1'z!e(5>5E^|ɨ񚒞!ӧ jʟZ`ا`!~\Fa@+qQ%*ϵUXkUUKrOZfY-~! B3R =eK:$N!S2%ހx;`rĪ F(Ġd,`v1fF#@5oʵ@ϓI$@"@%/WFX\!wl6i5FTKZo#a NsSqj 3ss[aqxφKkt$D>t-[ڌ "*`Rg*ߗ- p>.<-ʾEТNk- ANb:°2h5In7K!D2dEy6Hf9be-(pRWR|Lʧ"Jx&45/T?7#!6r|?[,nvf]Oܑ!5 +|&sx<+k_VӇʔى!|&3loQGF.TQsGw˷~R8fO |5m#ky>VP"a>T g<(5a| <(7_XO+ŨٝlCx9]+jOiTpy!_/Qͩ$O-(vU`T,o"uͿvỤ8Jv33V ic[vr91nl%XΖayF~j9Y"O QQ!Xr ,R:1#Y˱^uC<:-ǹ)!~AOu5 ιIFn F[{H]SfqHdZS )WԱ?CrF㩴ɢ?& ǍV T; jؘ9\EMqy*D0YQbUgΦ!`K5pl1gb.yVȓJZُ@|9m g)%J!{WTaW «G\ x6a1^!kƾX w ?eTlJÃBV~D *Tٻ69y =!;;HО0r*v]V  =P,r0-ƪz%c@zJ+c_W" S`u9ב?:bej~CɺpzX <\vZqef|]]P-t&G (`qq^~n,lhE>jC8\/0R0w`3;pfnأk303fN)tMahHpaxkJhsxm]RX0$a%~/@C(%CAK֚MZ!"^DB&-4f×&]j-S䜧 '3Ÿln鄽sUkn`(~+ȃ.Lf-'|A'{- Tc^{LqYMGC)PRp3X&XZ>Hg5A)˕ YS޴ C0Na7T&z>`Lr) (f|e `'$WтT3(aJ-;M:ԉ`=#q+ `z6\oMvL'G;FG PvKɁ$滽3~;k=RmߖE׊JK+} rQE:ND7) D꭛v[j|+OݚpXjm{dmjuϖ 0^ZTg2 ]nRrN(fbzMO$NM&S@m.ʷpτDbU7aj~ٴ_+"> 4^ Vd昌~ T9M 2O01>",!bQ f d-|I rW.JK $0T&6=wȵ+O6Q/e#Ns/6f"@WZjGx²G{9*Ty#􎭣d/ap<,U3tmE`SVr蛈:Lp3L Tۄ~po2r98Zb1"w7`q)0{; |*hsɟQa[ȆJGHukTCAvʬ.Uu-'Sqy-?zTDfx5Pxi{|sT|4:+k}MWfu^x"ed'{.}w 1{:.]{.)L73hJGm)Yv,|?.@@hQ .]$i"x qkd o+` ǭ:4)4m7.jv?w 7{bL#_VMHO^]FˈWIم(4qIbfg:|4O3Ÿ4X`0tdBdZ[.B$hYS).@ [KXYL6*h} 3G6@ٛ'o/ar yi(b[> _Y,Ɖb"kP:-U<>wiYFsЖ:|Eݮah(ETAkyEr'yh%3],fl'ݨv/VťU} wE<{"1#)Iiwm 5}Aɲ J+Fu,ĵmewsO+lmI>2WTe"IH\`U88N585wT8hF}{&t:13 5E8#I"YO$ټ I*t), ؛GPlc~&;;}p"fg\ wVtf[bJډ\,5&k~)Y&SVU .>b[(` $!>Z 0J3)9K&[1(3i|]2yؖf T,l<ǔd32T_]ӳCnrR_L,rEbH[XiTJWV_Nun@i;CwA8ЍHFũN |yoI Qz.,V\0.ҥZeg":o܂+54,8@U0yF򚶧lIb$A۠5ժW}/[ȅHT[Jn~'6~b U/ۜZ f~s{.kУoVX Nԃq!D԰y*]^.ajW-%7|MvN-F1*_` _arsKZOT!Sg>:|o5kqIoy'.Y[mNd!+|lzfY@~!{E`3vs&߃,F^qh_\C`#VهM]EA@hc{]hhԨ2|zyӫU.LЯ. \?KU|_&?s*ЧVL 1bNUJV[>(ߴh:"ZZ|@*xD;mZT},$Htc[Y`ΑZZli:iEj&,oċ#6U΄π(cNy9P{EbFypsxBlW=DnN2TۣdJ4/y\WkդƎAe"d]d&Rt::<)c n"]jTҠS2L~)4}:h$A# I9ރw1u@ 7`1 ,h{[C}S5[goLd #m^A'5P)hיsXSg -AB f\] 0Vq>Uwnk7r\o ԸAոRT^>uڅeal.|(uui 㦪[HȋA%4pAC,-S!0EnTy7 ;I՝urV;x98|hl$,T%cUY}Rj+su3eSnBg 9:^]^q3QT)U eW/Fjqh́] Oug,)Մ=IK0Vمm.3 vY*ӳێE68ۋ4)8Mk\grmi▵=rpAYD,rM>5$:c7bGq=t+! o[t?v Չ@P@_ Ȕ!M#/zB9NaNJe# JWM`GTꉏP/N2** tuێa:6]H3t% qPZ}-4O jrh?jr-BG U݄`뭋zo|GM8 bYAּ7Fz^zGmCY^:KTNڝ ox+#7W%RUdg}/^o ѾUXfCt2ﮍxbt}O{cq}U4Ю4@X\b7Ybq+FpdQp4DS0㫷ܱ[B8 w#k 3y\i%"n? .rTոM642ȋЕߗK}4jĨ.O󯾛]S_xn sn%hnބ>i~{:r+b {UD {ƪ a#=ѓEK;O Y!v7U+8>V.{=껻ie,xмH`3/K d?o5Y:y/a@|hSlyTB#*ꞃ}0>ɺʈsj*ɱ)ң :ᓵue?}Y߀+)P Mt5 I}=*yT>zYR1Zhj,q{?NYə"7Z*BC:h؇2nCs%jhėdl]ݻ^vԀ%^ᗶjUPZ Jh).eߕa2cS6$؜QFWm'q#D[>F!X嵾@\f8Ć)Iͯ]>Aw#z=]Lt ؇h,\Bz@ J" h v@ xyI ܳ@ht==s8ጜŌ]{Wt`oq{ȆD>ޒXBi޹@XMy];QP7qJ}N8X-̪}dq?YC'07L}F+~M=]pj_gq3 a=ލN@HTl}Z<|䎡<~v(TfF~|f|jxʒPXjԀ`\?S$f*d*d Edž#ǙS7X}ǃS.Dh6YY3m/\*u31Zw G!14e`B5NMlhxr6nh2q6;uأ ;h[#[B|Q/ 77O, ;\Y_A׎(3cKH8 ݵ O.C&(e#z[!o2 r`x,:9 пScN,f l೛Nx,*F>1 >SZA?G@_(:S dc3|qh挦ӬJxqf ˻[ xvC[b->NoE+Mz~~JZj>quR-ڋ6uト~' =b>ɞ1∦*z I>BC6>~\z.Z3za<##h ~@vwުBq0~,H(gđaa<9̣1̛&;.mI_˖-Tu$CȖ#O8mp f lJdz$?Œ=boiY%P٬跏nrE꥔Z< ${tP`-(q˦z\AʓCfid19|J/vdtp-m8k쯀{ qQ$ ?_"F脎Sb 04(-Z MTJ]PjD߫o0s.S3/5M3;M~p<,2^IJ%LA*Y$mduPT).)~+q!]MN t Ɓ0=*Y%x}N~N^fZ0F\ Z* ec!!^E1Hٍ33v,6>JRmHꛨZri;Ug*6g/GK+=1̻sp)cwѷex tT1hY%hBhJ)2Ac֎yS[[7aBLK+%Lk>QMV{ɊWNJO8nbDqhAelF!-\ȪOHY\͠3i]%_"x)a3~:'?V0pplॱh uPIOE(Gj5+S]:=k@rjQ@q2t3G Э'?U<{#U"^n܏Hfy2UNPSt4j#!-c9dtȏ8]dȏva/HFu꡾D:lh$˔c61AOoKqFqrT"*Tv/WG0ZRF=];2#9^iPGC>EL Nt&(FtM ί@'=5!m671z,z6 ܃̉%̊qmElCjTM\6s =Z+؛\ˣ_^^2Ԏ+PB.44Xu^0i^;KAY?ܶN} ?W~8t%?jx\Ůp-'_+ț~Am]7fk\s uH&Orqr=u7QdaYr$`\ll.s8q]o7h}kƿa.79[uc?7$>B S`["mg6y)S2>ºP_%ц#_ mxʚLfp%3}>H l4L)<;@WK᜶<-l?L)؟\xE+ԓ^04T7q 2ԍй{|y;X寠1:6de="eK ۍ R xHK.tB>BN>! OYM`%/D~YyQ e Kefжi^z@.j=JEPT~xa(ŔpwLZ()۳3s>7I1gQ< <JQͶDZ1X\ܛ(qOh]8M%>L2Hd#r-_0H^.)|zClGwsvr5Υ@TuSuiԏZׂntaԕ*, =ia"0A!WC OR@2tQtJYi\‡4tˇ9dg͸ mVRk~bU Yӡg<;U^EǽdVCL!w̑IvVlȍwlle-Pنd8.$ 9& 44͋']iORw,-25* Ȭ"޾yTokI$`rKоZ _ꌷ:Gá*TN#*+GxYOXayB+Ix?y̗ Rn0INn;#Gl ^ e6-37)?n07nXd覬ʥ1EUo~7Y7lE0šd`OkuB} 5j8dWjnw4@R]Vh*Bƈ q(9$gw.r)U '^4jV_EYѩ1w4;cE+E$|enYmj`d}wUPNBP犤pX|etn>9ez1D'`}r >K|CR&~^wQ-.9B wQ\xu1B6\qAӒl+%-+\sc_}L>/g>賟>^D1$a$dRP愪6 A ^;9`\%#y>NnxOs-MctY+9Ƕۺw(io)S\ҹ-Eg\'0ަ4,>߈#D bsM?ޮ1')Nǭ"Dba>\`?C.o߆w3Y#$X>ŋ 2D`E@IJi} rS ,&v}x)^Jb#cZK@}C\8hJ!˻~a jWlؿ'cSib|0^n')g~qz<⑲؝4uRA?ZJǏyCZ e&X͵L-8V)Ei/-)֗7{MF<;bDn <*V`i\#0fţQMIjXk#xﻥC};p,&=nMXU Xt t0;ČMx- v$׺^^3,=r-(q]fYLTه=>ڳ#&4?EvޮO톊 6>vΚC?P)7IZ^$ӟHXdH@E~:Hpl ,%#XEu jnnJ}8ziZ#5>֣cTڱidEv0R.<:s&dN:>K4t_MNonKci?Ub6KH$CE xՓ,"yRRοFBR/ QXS2EP4' $hZm䲸ƃո^aojAnoSn m!/)Gu,帒!ÌI#IL.;G;]݇#;|Tןd R)'S~"W4Fy:lMMx+!$Dӭ Uj424KH6r- Soj8-E+;Lw5/-p-[уlq$C!=ņ ( 0<:ڇC)V܁᧕4 -ozʓO ~Vs q`x|ozOBO]M)hE*hhTC"Q!j: 9)h{*B˔ Opy. I<⅒m 5{r(@DmzP4}:t8ۚn_r&ژ"e!|%>:; j T|!Mmxt4h8`B%uKY|'B*0 Q=PL&%6+Iv|eZÛ}G>z):kȣ_%o>52-E/pˑ;+,MO~NLg#SƿL'$st Ae-hn+P=G)KG#~U5B{ -XhE*DhѨUj_7k$_I2J#Rm)Qڈm@ hhQg_ _} ݤG# v۽;:^57Mlg. G×W^Tz]2ykQj'v_qZȈ;RjYS{ٮIɺF٪MR3+,x&uv=쪙BU-_7Zv~13'$O?/d^@3#kl'oV ''UXƹ{ VۤFVA6EnԓS,JpBi=zr>ZH$a؍Gm5qǛdYkm ?6 21`rE-K5Ь0d|u^ WmKB<T3)DGa{BF_NP:NUli+mWr;Gیwxh;w;.<`Eo* ra*na3UbhSFoS:U.S&IsdvF-o˿xꇇ1Dn!mFZ`WZ{U[͝xUbPtlga9}X\r)..[}"bE^[jt|*]~U00 X%^dtuv 0jEVx׆daдJY _\%7ӭi#@z R!ȇW1~wO$Yțw*,#8o(R u6~2,&r<"Ufm]DwS)~u0lϿ~q"%<*]\m`" I,kƼѵk"n유~2z ({]tij 4! LkꀣOIVz(:?]rn8 ݪ{^UV^df*oܰBfԮ[}y Y{?p ]kr!lI0(-UzBM(Q8doX  _z=Zt_'Xr9Um F*URy0$uI(9):-_٥3V8ۥCLxBO]@ <]vkewl+!KeϱGhӯFv=U ]l$_a/n7b=4 ---lBp_P#oK\W‚~ji]fmJgXD%)4UJ5ƫ\eD] EO$¸PDx3 K_pqMݴϪ'km@.@kL~z< gR|L?tn 7-!`肅3t[G@v `Hwv=X;VWa•2,')qXɱM0zAhϨE0< P~Fep[/HxdVH3g>*Ũt݅UR^&w!TפצWW/n[#_ʫ,Q+8tN,M٠iLtq&3T3 4Fy,;s# 24\ڲ#UuZZ Pr^KBP>4.`2ݦ28¡\KahBjr~WЩOPAVAj)k~*7-6fл~- CӂYSh4p"s%p]A:sA~# Uca:_8×rC.E^Mkd֎Th85mJt$@*KẼvI> 05MAc ,G0zYd۳O鿖rxd<:m$ Y^*f`ƵyIUøvI8T)^.vľnM?5͜=0E <4 K U{,&Z6ꉙ6`@ĦόEX$yR+ޟF<'㑜V/pf*IǃJ**% ‰@v3*pg<Ũ_ͅ; 8e4ȲOZ eV §v ݔlaWs">'h^C9l}A!Y -k(nkfDf<-c)Q݄ 򳸾jwJR7O,9^dbJHtG$OW@@#ZjW8_vx-wM?H%UG迥]v2I1YYGy!5{xR Qw>t>h2)8@֣-}1ujG.U9QgD9DYy-[8x\ݏսp77ӵtVcӴlğxC*tw*cJy[rZ $<݀mi<]no hy ~=-oIxUݲOdҚ՛"݉|Ł?t%[Iݺ1 | ۍGg5Gj5P= ݒ*w3Fo5GoҚ֥F!9Xn,hojԴRUk*l7q-{xso݀ć -P.H/U5R.]0NƮ9 LLyܣԓr>iB ρ}^h8yvVTHI*tpVKkKx V9G J .HgTd˵HOB=RcxF󃣂aVǵvwB)?7L{cܔ-͛ x X=#6k*.P[uc,RIL3ǽ4g3uh{ky7LAgS:ոM{/67|FXzw{^miىҹ\dj`"ghKҨ3}JG!LP&I]HB<VxFi}?Y磠Q/<(dMkHa,/\}xl ґ|m(\=" iYC5}=KL++\M̅ɌZ.s$F%ɖM E l0wrQTDI:c2Po-$|x|l ϗ *A$s6UU\'=$_N+xtunoBʳ{[ ~JY'J0rfoѮpKcV m䮸c/AnFA %^4sJ5#K ^VHV砿 ]*~fV(xQ".nO[B*ӟ&KA9Mܹp}o7ӫ誆md7욳Bv 98_ /+/rG|OW]+k9xwZUT;_0wydnA][WG,a8MjGBdn~ЌurRRh"XaW2˺}U]kjk53jg_"1598ȼh{~aɍO#X{{f@f ^)'~G );0`TN8f?6؆k?Saz=I'"nb6gt%ۧա u8Ů]u\dN9tat%q1v~9u%`/?:NȴP^yZG&R]~M/qZs{%Vp S3/3!$: A(k(Ȕ] |̛saowcLFISEQrUKS>㤚*[eؑIsk {~ޱ_:w 9RӪd &Dmiɋuf\9f^f0갩Ǧ$ IXT J{6WLlT|ldU.˜nV P6*ټ]9fr>6)el(lZ -rEy5lUbsRfR(ec;㕩lޣXLS&9EffæMLn [a+ˎJK[q~rXe+b( [W%[W![º`}8zu*e[R)f+nP{@C+UJ{`ԭSJ[Q,l҇ {|NGKV1l=zg+æʗl"![MXCǕ7*"[[º`]V|7 |:]ab+.URk[{z[C`5>lzm֡Q7oH"Xq$R1bxXXZ:üec,OF}C5NVqx1NWfz3'b) N"ofZܱo|/iaq\WzBoHZRėQ7.Əըx{\o uNnTnNOn*WG[cvU8vz6>iIٮemwgdZ-r'Z)D EN,|6;1CtʅkS2tT:X;[fxIzll]2?vl~?RwI?5PD="lrUn_܅5~گm_m_]z뗴`q+ aߝD7qb }U嗽Ox{mCܝ (BR1sEJP;[ MӠT4lZlK_6/ߵ3[BD/شDXmen++E"2_28c[ +7-0>n,Ck gql{eCj2`xewx7.{셿fݱS-|gAu6`B/8w>}}`۵}`;@\;]EK%,:)_k][toYV0 XX(͑FjV<_n'y\x[o{+.w-n+n O",NiSQvSQ73ME`1{ b/egr=P/*0upJ*~'D[-UV)m+o-oJRmoJ#j*~ƋMi/P@1Q޸Uڽq5?6wna2qtm8{@-J5*[QgAx` ͫX=#Td:Z=3%'(m;^bѐ-NG5G5[,djn ж+wh ЋkkqFiWcpykX_T]&a]m&[þa\U^m-K+lQ O'j&8$7A0ZKkT1nNڢ [Ŝp\,%6]vLh^'QUw;kW/-慿MORCَmD0qbls3Q79%k/8yNm^ߒBx.).BS܌ZWwmh1ζVl8;Θjl' O7faߌ ԍ)БXa|JqW{l@P)5^g,4j!;PEsĞb܌c :UE\м\ΗmT/`d6zee # f@m.ӪSe=]8e,t2TˀtHn;@,_Y kgX,9*UR*\'HNd1G{~ρ,/Vvom'B{Yx*c! ujuPQ`P#U[`64Wj!;krֱSwr^ػl2ߩ`xkk۠9p`΄X+h]zRېOek5i`T:W;o۸T f/.;͹Ye2޲LҘsB8+Λ7]mu18f>gر*;:n@YF@8ơcfx{iDnՈkߜ564D e{mE Y(%l\Y/:Tg[`1WVnuӴf'YW[Z"x`7Acr"N. ׶¡;*g5v})J<vu@Ee6 V\ar4?(dž7W~[o'pu~ZG|f[7%(/~ #B& )$7c(p/lo,_n^.瑊uL0/m3En+*Bi8/Uf  8fۓfu6Su/JFl|ĕù%mrm_8GW">kOk\S: 9<7v?+Kpb].QszW.'Sx/Я%k(ͅ[ͫW7{gD&$Ż&gKIy>i2E{H$evJ }< MEqGH-YCRh\M'8=doOfx?Bd aLE 8 |GY‘JoSbMtB;n9>H.L&4)|1%^8_Cv.P#+RGp%l'SPҡ$#R6-Q ALRdzƟVZ0#}YZlu!B3g jD9No #;K!-%Ő͈hZ|6Џ !M|W螘sMk%2GDH7My/FSWn6pw-8q/ JJpd7ew+brz3T|8Qw OۭM$HPsz QlQ 5Qf%Ѧ3$M!!uZ 2Cھ4UI 'ٺI~/| BiP HETdZoMT< -]-YF e.cpnz0 ! eaɅHxIpW1"ۻ|ik <>Pwm6̦KZ9cf${왷 ˠ?KYەաl(Cuv$;kKx3FV!׹{|ҚD5H3ԠOJ2)@ YZdy,OH`yQhi'2$A`،a_Wvhx' 41q܌w+U:f!渵wp"Ym-Pub=z/DStƱ0 /4( ~;?@=bk!dDRSo [1/Hq zdb-4W0^񺖝:2,ȰkRn#XkBqG%8ս#wo$[ٜ^̎g6u6N7{eSCOn7Ud+$_eύ Qm#6["̶C'Cn2al,eؽT:f5iK3 exM[yNspNԼ6:ΑįIdzlqg3a%r/(_̨w|5"pNe8Tt?7 ?V O 𙕲z uW9Kl W}B 9ͱck&w@>nRfƷTx'Q|Lfsׅ4rp'JaWw6o?wᬳBq8Yg  $ZN6_]8vp< ܽ_.N?V#Pnu@cLha~C6[$fM#1<OI;q7(ړ.vܵAZ2f k8$:1j$mAg7g6ϛze<.&uZJ)v E\dE!IWn8K8k4ABU3CEkծ9x=s}=0TxQ vk{%+h\遣V#VXz_J7ҴMT qT:s:)Z#ks4*嗽ǽ~77H ~s~rKK0=~C[?rf(Cߘl;?/[Һ43~q潰uPorc಑#ogq(%; V6ׇSm]ˠUAuq-շuշ7]VkPmfD%KY=3Q9pa&KzRڭ{_:YD͹)@JvU1Mqc_9Ti]7JypCpSґh¬^c*7,+n5_Q*| vNof kk>P<>q B"*u/y1yXچ9=-PadLPc)/jsUp}_qq92kFN:p~Т'fU2a_٬HKdž]6",=t;yUӯҗf=\#B~=!5_d;[lÕ2p(r"1co驼[WqҶc%A~{ Z^j%AN>\5ۤSY D]6-6!p7}~sF,vi;8Z`XkRU =Y)ʣMK- ud.ܯ'+O WjmH/; ,IBO/Iw5wBR*(<w7ZUww5 b7X|kH2RR'RmM@*TőZa_M_'*rpq.UbrçȾ%|/44Txwk1Z+88K㻸WiĶ9Um3-}agM|[$'fR#:wt͵4b%Q5uK J)n1]ٍ ӻA' zT5nP \geo|?]@R{X-i){k.k%~( 0U)u%<4U)5v;$ڧVV\xe6TE%4m/S_;@&9ٝa 0=}@agq鰞~3]+v_{RYPٴƧbv>a.0(jZڈYvWoΎ/PX {X2cDAw>6kw*U&NUNW9wC!W24rI'+'4q%r̀V[ʟ_5qmN/-q0hTnk꼡鞥T{_swʄ]ob5?P#;7,+j?;u7}zSu5/r_0֦$#?ڐl_;cZ ʧ ;k3QMWsSҦ Ra0+O#SK6+֦ zO9K{\F$&'eƷX2'ywe?S1 {϶ĭ .9.g*UKD{)?bR*Ls?yB~c&.۽+ :ϴnqzOCYu}y$}zǏok!"L^IyEl"8@ y B@Е `"~Ep` v8 _A/h162x>\(<-BBMZ`T!{c℞>¥$jy)7;3ù/\1O,S:\!tUA09D*eΧnLxAaYt=5R)z98Bz&q1.ybF3N7\/^Φ6ldL9RIZgR3Ѻ~GQ:rsa^;.A.:ttGAZm۹D'j\we}%^՗_߿4/Ǖ_.ҝN(Өu&E=N*f2=4RPrz)^OzΡܬj} Ngi?rl$, 3Wo{tj\׸מn*NzWoN2Pk{4s.ycI ]Zv·+1,b̰G-4 i>dlKO,Q7Ýd,2>M,27y 5r1"3FA[z%L] #D nbk|Bߐd5U{H^ Mb\5N;Vjן'7f,O{voYƊjFs-V.P< ut%\"Yj܎6aˎvC;5,$0LYOy5.*::^:>:zzj>\yy T1=QqּC{@|[2הl tQ@MDʴi񱻮ԩY8OYii=fq& TI֩\swNh͵鎑|?88{6ddn^aj$.?<{j&5GHi!Af! G\6{^Z*18/m5dkZU{eWm9hT"#_{xzy6jįi3ZӶM77ҡc@]z[ݺ+wBBa3xظ;3aQnjk wܓ:qR5}{fN˷٧Ϙ9gϙ[ ?+o(0W+vy?k3Ɵos?= +t]SKjܯFD?Zҟw$kt~Vzk·lyE,XXȹtez+]zc] O>3>^|i˯-[_ͷ޶}GY]ٳww;Gώ}ŗ_}}7ߞ{.՗.rGpCM4;WK&Zx=5;.K 2};. vHM?bœ3rf$RmC|kޝ3l9yS#Y3,59ɖ1ݚke7]MFSrf&ѤbfxW1U}϶geV܀5b-=cbb C~AA >ݘD{C3sgK!%×|t>x>P82x-(b*„…kBO$$ 6s…KP6SL;#7VXN5|j'FꞖEJt _FeLm%clrd?G㚢R1yy9ylT{)VěNȲm9\k::nKt6,K3fSs)PO&ϚfN˙J9x ƛDPu Bi|˙HQk7> h\vCèJ7y&Z&ڦ$ifݐ6xD7|3,cbfQڬPNٞG]ۯɩ9y5gY&SlkŎɲFbkQ)Z rjw f5yQbfjN9i,`eNE'=F@Ӯ,[ƠY6먜4kԔRkIjQ[F;O!Ɠ坓7؊C.nS {z:iX/jguF2R4p-)5/Ôd!c6Ҫ d.tkfUj4|0H;^9R覺ҡ=uҹ߅ [tL)+\ 8>BFXkbA Ӥ믹{4-{=R{8#5DL坥OWpj8C/YNǴu>ܷj}QyLҽ!?!GjmE\ {oFixQZox.($x~黁:{ϚתI՜q-d _zsλ|#5s ?'ڈSO(Ok86:>f)22_Us՘oDkx`Z+$XLPD0 `cRZ|H1K1{)͛'JJJ#<"V\)V^-֮]+|I.M6͛7s[o#6?IJwyG߿_⣏>ǎ_~8s8'N`|'U*q<=H›wInPeoF,dO1N4B.#yXoOEK߁QK'SXDWS)~4L-.oK('?LR(⟡ {t,4\\fbC>K}.6hO!!iB~\Ȫ WN)A)dP (')ݔ J?)Or)~}YKWŏ#)$?/+)S5_PJC|_SߙNR1_L;(1COE%1춮:t<9(.66::.*""2:[.]: QO!:?,)"!f?.>*&.r;t?6EW ?۶1{w5;A|J?..6".[?B#"9*.mU1ur}-9-fďo$[ a!?<..&. hok7 9?JM)`bcc @]nGGZڵ0Y\K G~ϰxbq|L\<9'S{ZBf-ZPJ_K`8kFMbk{CG _ې>&6oW-eYESaqR$}W+u)>7rHGZtg 3bĊ(ѹ>)Iߨ:L2~aj*fn:a^}U|M>.{Z"}c w|'Z|7ɓR|ΰn/K.xnhg{`CJ?^.D,RGh._=v1B\~!^2ħ1F.GQi_C_)~M?=?zzJ hӦ /Y6:'1iӪ-ofvԥS[{[:vBa#Pp[75ќ4kvtڣI7kfszu8^׬iV7֣oF^^~Lm}`* ;7jԈZ>8GQKa-]k {dw:s̿~|?"sΝq/{:{h4')ßu;wH&x7n\D_zO?]JhcyiIO0A%kIo AR?(D?A ΍BD\kI> aN|kǿ5 H_~7ސ|SN_СCqHGI/;Ǐ9&HadO?twJS?|?~oR}C8,A??S_РDӡuK ]`twڵʱDhعs'8v'8NPfȑ# ((7y!r|4>;Wßp?%uC,!!!!˷zKRKҙ(3}q]9z(A mQJ1)#>~){1^&w|?J?ۗ!~ (+AYwQ_}9 |!x('2)-JvP~ G466);)/^g_,t+CJ14P}O^DCR2A]Kׄ  ˋ;,*+h.#X;x2@ҘsAI9pO4!=qDʀ:qS!O-]W Ӂ:9ܣ^&R'H04Q]}]wy-^ީS>TKPжGd!~TGA×R 1DæHG)haBf@t2΀Pen|hxhxhx{eP(WF-riVt  9D:Go??uhyƍkCqïʝEdh@&΋Z?%D"h/6)ҠcZYu … ]4ԥj\T-O?*Y%w8B[Z}~P7h4hђ{#eIJ1F4+(s1".;;]:0w\(_T&0Qꎱ{>K@}.sG: }Yֽ˔ӧhW+-[N٥K"|I~9??_l6xb_~%;Ѕxo@[](xP>eտxctW}uZ}^FuM֭[촴JjGx ywDYZZ*~a2>_ЀN0)}!팖> w7L1:3ڤGg?σ/q͛7o:,OΜ9SRx;XGxwX;pErae:XSl}zkW\ [˲xʎ;[oUn͸ #Lim}DvgU@(m5?XB]|?/wubӸe 4^N:҂9Ð{Ѩ+8nБPv+ 2ݵ_grr2Nm&g̘>C_&C>8Y7-?Һy}z'gϞA1cet c1א{ 2ڌ -G@@@^{m)&f/9vQQQbݻs9qQluC7!Gh WhQvk]`}@<,B}޶m`ސӐ* Ʋaaިh]uu &/S:EZP?{nEk>>׊?5?:_/*[I*@-IXGz}>(xW^/"/O mM$B]ߠo0 uuSrJu75o]QP/Q&d>;E<ПvqwoU e.‚ $YO⠝A[1sk,.u]v>:oAw829}eXׁCsԡFGQK Ḻ?^>#,Fp%:w}}5%KACGv˖-Gey0tsЛ|㿂 chavZ_NТNSQޯPbH]}S_C 堯ɡa-kPS*},u2~X@`ٳ]QH73Oj'\?}'G;c9{>r;|hhLDߍ;ٽ7$ƶ !$GIGPЯqǃHn7wQ=:3fT y9bƌBDT&fC34SM[ jf߁fJtLLf,Ln0k1 UtE'8_gwԝlA^H >?j }?||Πs_/ r(oƆ`)%gj8v^^^hl7EgsBmKSt'H${zt }:B~tVʃ?I*Dmzq=]D?tg=BHkXo:W0'؏IykZmvz>`pGVC?Sj ƃNic}sXc11h62=ƹz4xy7uZ]ZkUM]zԑCo_?:&v$<mpR|&~CXg '2} _SIM2~ \r*ρa>szS=xT]kkTX:8>=4Ϟ3gNq[gaB~qn%b>:hhև5&c6}c\+\l'OWcϝN6Ǥ:kXgqRʕ+x o9Lm?/N`}khhu˦?S_c;mxqNL^'&m~}N`ɩh8ay||qvg,Ƶ;֌|XVWD8 w:=Xֆ}\7< GÃ﫩ɣAmcϞ=;{SKrv}YD5H'T'cVkjO<tc.뮅exgy:<'5hUs"zJ]?))DDDϻbm:##C.ZwIo ޜU+pD<>1k|\Yy )lXfsL8qoPP{yxɒ%F9ɓ'@9|pMׇr.W^_Cޜ?Dp82„ xa/e@o'V]ם2I?ߪ(/tM>rS2oP[}x:/,׬Ysh1礯)ż9%Ы{$paO[nտy迖9P3hPΛ6m@(_}/o > #{ =ƽxB}}C~$Q?kOvڵ_x.OC9Sig8Nwcc4I\*UpR[ 3zB[R~HjMオc>yc".:/[6W}ǡ79n8I;a+ Xi%ᅵVɁ;>;7u4[uNMcq0øwBNnM4O0fPNoPz -{kBxcNcoر΍6 |8{R8Ǔݡc܀#k)!ZA|#u5%䥮.~|s&tn~-/܁GCgpx {h!(ˑ#G2ON,|es;o>۷og]M6t.S#./7?O"G' m㣝HZhB$8}ݻk3gc?@\0>&|ϧ=57o8o]\\<NZAAj넓ּf>g[ iS|Dxj~uĬYSteϟ4:55ԌIy99nrO͟}z橩|[5/?#'{@݃: ll֕kL-XG1yY;Y)kZB^,dk×"ìӭY,萚==^k^=#r.!=5+a`x"dޣ{5hzs`BdBdtt!ch}x5 .}P KPBAiA ** ZlA]sTO[=_F=WثQ6L ;wR޳{KէK>cLS}^FOsgf}o&}}+&_A52< daҐ !;B4:0%:ԿCX¦ %·o :|Ԁr7`=pz@- m`@7 |~; 0 [" ܕ4&hVFJޫ8~]g-?".xCT/Ã^ ,H Ԩ=ֳOO qnqχ{;ߧ3_ZJlPGe0ٟg]44&ƢE J jFL!LJ&`X10N¤hD!)A q\;s_{ygϽVLB~Wn\kq=n­q/ o2"dqȃG$$ɋ|!r 4: &)C~Nd pgƭqW+ρ6{Q+Tw˛,S#2C>!F-)v|^m=G6yl6eMs4nsɌ;mMF~|Z*j<:NթwqZo%hZѳCQ.*w$PdZR`^_ү]:`MKmͳo?fho3$| $Zԍnux3~@fOYD&i$R^Ox!gb+?7a<{)lR'ӡȠL(dx4.z|V术 ݕjo]el1!x{]#7 #6H'Fu:ev^rDX'f8#.BzA-O^K9~Uw=cPϲvbKv;dGmd ׍+s*:΅vӯY(m@u0jC#h2 }o,l{avky;]Ir.հ,RUR}DO?|~?fI7f9j~s a3jCԔ2[]Wi;`vGV :XE(ehڈж1'BˏP;:zPƠ!=d8?!\K^1jZJQO h=C?cnv`S}bUw\-e̓BA^nEԳj_H1-&wf|>əNoxAnt}6t <ztL&8'D=5y]9_z2lrBlkT~eIa ˓Y Kei,d,%TrY!+edA6f*vܻYyOPS2T4h Tǁ'TPg,` !$E)(@ZSNիդ:vա:U:N:CJ:]tn֭1_mMI5iɇn "SlJL]xxx?ƿPKg7Rgpip/_vendor/distlib/w64.exe{|8>M67f,K`EFKfȮF@@QAhJ+4VIlmjk[o-I@!! ! Y4($.9݄}?>dg4#N>6!33mˮnmlz ?MsM_ҳUx?MSkZ)*s=~"/>Axd!xͅa&{!Wq{ XG}R$LZ؜oB^#MD|Ykޘ27O(t[AXrМV(AC8vy`B mN!/W'lB\ ti KxF#UȀ|J; ̍po= X sEcx|{&E i/ f:g/m 3Q&AvoC\ܶg.̒W7c/c Π\GcY|8>=K24>4e'X\M).zɬnZYr @xyqch4CJ6~@vJ_?LqɬAfs]9O;Y2vc4K-'/nAEî;$:\s=-=,u"d_V OJrѢprG@qxU(~m([2m~조@lڴ/v(le&8^ls.sLn4daZ.4 \%mX^ga޴w0N;+BKڋк>ji\Cc(4 pי}'(Hf5i'&z7LV$'x蠵}`m_q셚.12$^cE]?p0 1<\"囕\Ďђ-u?{(ϖSKKo04>\8̍{!Z{MNQRT^&uM:,l;ޱ&eʬp|~cӹH}7XGUf8Qvf+d n9|oN po'Ud`jc8@S5Yu˸G5[*,?QJa1lWPy{puj L_JVB~cA1JtL!'Ćc0{ϝ5!ouj G +kCf\%di0 %uP8iڋӁNtQP d6 f=\E]{ WWR" Ld.`z{IWam[o*,.-'%U:X!o#zXH(0>"7bmBc̢5WV ǽH2XejC mZ$ `y~:fYKVWW'g5M#>Pl[:řb4$[M.=yGّP2Ki%#}KnSVV'4 ϙ8ƈ&Lbbxhar!|'jcZmeR<~W:u4_fx.LD-lt71]AƵ{F!: <v˺iM!:GXabUck!r/AZișf:pwVGD+wq@G`؋qa8OV-{zJhq5?%e&T]C)ރ5HdLx ZMy/a37f/o`IF%UP21 ZL,Lagdp]@%X;z3qkOò"szPBΞe΅L(q¶l u' A釄r L-$A PK+Ǽj kn𴿫+@kg#.&UJx1 ̓`ZU=BT>!l"ob`mLj^Nx >϶=Ė*"j@&Nj4tT,voÒ({ꗧ5eH6se0rmS@"jiFG$|1n&nFNڵ/Lg"60!Yx@qZ$CX*=C{lxbR|l+h՞? \ED;i(\1XA+``1;by}x8QsQE jAL<% l+OҦ1 0* C~X8M! Y^WKfPHfۊXw2ȡY%Ê\EkE8 9:NXPX~j:4/VV{ `='r3dc/G~]S2H@Օd/ғ% i HH#R/*;b*3>3iz ]- vMbثM6`/99{*>Vh|0-NtmoSz̶zW7= _=}oz'pUw\ǚ}@wUQCyA?" ]ZD=T&hIf"\Js2r%Lxfb‘fhUx dQe9圏aAh:q?k CNH %,?;ExlE`YBNp5ޣ=m_{n Z ~vOlOCNAjz= % {͛euD4@<x(j@h)p%9M"V[djR`С-ȏb5$bu8Ct>T@X+"Nk&a"[̆2*Y>ɼ: B@buR:hv*/BK˙T.HmhpyrHNĐt6|3Oِ6`9%Y[ln63k rXcdJO@BI`_DߩE+@Ue/Fצoh*Lļ,KK絗L-_mqt?{hq~T.p@>g?t2Q8EC 4L9Wb' bVȱD,k@>h; %~uX};*랼2ހٲ;I4 _*ts!>,ཡBW= $~|$,eI,J*0{u-"@=dQ#Q{:z4T>8d; =:L )$qҔBn[,,D6K[>#/FeMnNc/ڡ)k/yǃ3)V\RcMNur_mǷTTM{i}d%u&G#N*ܡ[ JP2 8lMfT{Ikp?ƲбB=fTfn-aOӲSN|rRPܴAu2*] {W$IEwEqnm C0N>^Hw}Yb yVwIDP|693p-0O⒌WGMFpPL!a^,r@;rA\Ȳ֏w41 2x Nm?Rd~; 4-j]R r+-A%e_5gK!ISR۵mF[v#M0cjt@SaӴ'qɽd]PLc9Q(jG.mBrb)ٿ!JׇACICBmaCуtQ^~O>([m|2x6= a!~R_ xzO I[3M ī!{4вdz&Hh= kDŽ:筧m[}Ԧ-KJʍW+B+-">W6KWXNkIPEE|;Fb(]n}LA ʷJq8wpȽ$kc3QZ:31C|7[+?}HrוGH [\ALNbֶ ^^$LPl oY:yZz-F13YMPk-nnTPdݒP.Of(Ǘd'54IcP' &ܶtl4,0+< 3Tgm鍾ʓQnqGF`q02Iw 3[dnxKSÅT2QCṴ}_a-gbVa'X)$VOh#YBM@9]6ɶabO(R3 2j:iL F dֿ]y|a=xi Wی_ "vPG KnBP>GB٤QT9tu+/(2pz:nFOP Wurn\,mr}p]{@H\xk:'=a@Q:j3ߏjtFK1jt2DܫSfLHmS*Uw&a}k;bEĢHtku='H9ĊT$]b(w,5 U-|(_cm.{OX|)HMb%buWAd jWBtRpeyuW} T|* XR~Dh:l{ڝ,VXj }r|Y\OP6grf@NQ_f,Jln>Kbs#*KL}-̄?^x4 ϓԐ7s$V.) oRVnh\4å,XD;d@5%%i~~QWnPD)hBگq,՚HHd(@( mqe#\܋qEOPxI{YE~Ϥɹ&A wrD1CPJdf,R  jԾfʬ\mOԳAW|Q,bo!ImFSId3ZO[U27ݼu qj-[) *(Q,k8'yԝF-FJ:d#b a 4Q02 W ModJL_ 1#<1Xnp hFpŽGy[I9";7DEpO6xO@aзLTZs\2F<ю | UڰJ^s<&,`K`9+3gLcrl8Ac49Vb-jM6i|!Ia٤DB~~Wc%'eI6|(8wZϴvt]@67~iA8gH+G]ޫd3 3.yҔonSK K'h5ȑ{` )jI]u [\h9)T<`czzQzF<ʼn< -LF8sL=3_ a<%)0.{ho+Bh/_!b ,Xy.һM3:NpWWōA42'R2EQ6W6s-nW߂FJۀ&:$[`CWҷmr,`2sd`XOL|ģkO}p8.;{5M%Ԗ@0p|˳+xJ4J럱0[3lױ%s4حgHD!{5oZ\~/Ͱ!A~u`-Qvf55a"j??$\д7A#'3=Y Ik.k,o%g?689<īC@ ڙ̶_,p~jp:`<ny9=W]'o, ]}& >! z=[&=%V av9,VfYB9,VB^F.\T}YipZD^ye.NBEێ6m9D퀜? ,'Jīk! "9n7w izwB9Γ.4I#i1\Gacy>+'jiU0bWCIAɡ u?3S ̇Tb +8~0p \w kN 2xJ9ƺwPDd1MI׵&{m?1UR2Csxh-a<2xh+!:vGpůu&!CߔItVqsD#yڤ dΝW*s;UTrPE: < ZIVSrl'VujױypPϺHIhy|u5-L/7̿/ `$p[ y#|hQv-'iwgi7QcH*5\'#2&nW`û9ADb#"#D?X-3=NT5Kgh76&{Jcn`܇<8$sʞ}~LˑD0QRF8T; fu5OB`ڨ/>ܹ鱎}x]W'ͶбDŖ{+-&hz G(0g? JIM1/'fw]y>dg&3m(&ƥzI.$Y>MGϞ4&̛nd=~->} z?n'h? SCetQN{CT!RBAVFuGL1RAM l}m.ҏTv5:2[gZ%z3 ka]wXO:;V+2!7jzf5XY9f~U@\H(7W+jH6_~ӱ;84тA&L3XI %7C+/렆G,͘Wi D'.I7S'@R-i{2{g&qf`P|ص(1yPac?8;g HRj^zHƨ5t$@>y_.UJJc3Ϟ)-w]n9ӸXnܕ 19Tr% W<>y1Yͨv^eV'"phs 13Z@r%las31y0S sZJ _~u_>ÏgFfZzĎ>B?:B cPGlNk ޮeԋѼP:w˞&縨c8Af3>܅&kF"jȩUϝBMq!aU_JHF(x2+f- cܷ!Qhdn528H߼3JfmĊLܼo>!uj4RnhF m57~W7;QC,r+E3׈Y'aC-3Q꼹ysL8q]N6y;rvAeC,~^XR^V9|Zāe6߼=@ˢ W#h(֠Xf>2j,6TP oĦCj;`d\0Lnpe 6/8~??>iauv?k0)׋$mP7eKk̒yd3alym 49WlE9'`ʿơaO1euL |h6mrtCgS+;>V"L؊?goA, 2yi ӴB__KmX0hf?jظB^vSh\Y6{/>mj(c>@E3Κ1 RcQ~vhW(;%'76i)dd۝Z-YZBV/(%#d}_/v @ zֺ!oS%RB^t/aO~L/?j dY:brU~;e8jU]k*"Nh?s#k)#!݄C9%ㆡCaG#W˸>PaFfO<:ir:૥7Y7ā$r Y$3ar}aiTL;ɱ#OPefG=ȑ$+z@X-Fs}ɯ.tYRa[Ys/ ezYx2݋mk@'|FÙO!a+?B5OΕoQ.JA@,W1J>ll2$aDyv066٥mqM<o} b'\4Li~L") 3O}̞?C 3,"q,Vm6S"x(ɉFuB62| +6&R`AzVnCC$Cxz;ޥzK޻t }t1ӵ'Hedd%x~Z*A=k0KGQ7UM,,Dq4Q.Qԣ%!_{y]Y*tq牄SD)_Us6>O{GZ]\qpps+ZeXQ'p"Qd#_="X`yD,#+ e髵EX;Doe;zC 5(p8k+ט"pgŜ!M,\Kk~@g)_ej mHTۼCz5> eV&^Vm@7D 0賶o/=s>B\hƉD |N`D N/{?*vUl{*zМy'z Hûzf3A +8Z)Ur$p[~4Ts!Qg+ZgO~@nDFvb9fq'tl#kƕsJ6v8 5f/ }*!-lTGJ\ <[MngTpE_n3$A>/[MUTg eF!*-Q|P66C(ɗ.dCexn(en/K \d7ҽcO ų?jM6mgBdSP_`Zw+,xsph1 cklVHJz+_uE;(YVjN2[5&^ߜ*$Ak9Mb6C6S0jUVEo]P)&>@շ>_Iz* ˎr([$VN <NsA!/!E!л,3O{OX 3q]dqc CEl?B= jy6Cśes>@SU٤טsճecM9@*ޣZgR'5/k-bM~Txapԩ}gNcwAe@~0u@|g,2WlT2K @> t[B٢c E `L*ɷS!@&Q/v 5ŀ ~c3L\gnnť@ѕnW 5x[k|efޮAkIh~,ܴi @3`+yà?<{)dnW >| 9h"y(6?gW {Gh)Gk|ݴ7Nm#~>BR ՇiK4ޢCrD2^bc5{\ܭHދPvKz0!m|<  .x!W xLe.ؐM=jR(F%ⴶJp ^ͤuB]wh}/^tQ:T7僄Zw1Z#I&'zet3F=;h Y&x%dܭ7'":@|PIjƍU[eϹXdd_}ous^;䶈g@A3ۡM L;QN>DGt* #C>Yݜ*ww%M !*5 BZ14[UZ(3ﱀyW[Y&@S\7&AgI$x(vn@$^d)2%l~~2>M>kBQ$VudA0$PWs|FPs9Ǿ .ID~N(ie,Rx@c{NoV Il/$"k;{Nj#c`oƤ}0`Œmq=q?kǫ~bVޞAnIF=Wn@X*bU{ 5w_~UuS,* g1ƾ WWPwMBu pC N-Ls]pPD0]3kF2׮L/y Bϲk u]}Sxttu育ZۆltNԵ_e{4LiyD;i8:_VX=Nb{|쬏m f_I*W4< ?|4P0Di_̶%' ؎GE,m ^:?e6)U^].<9W6KFT1+X6gAa؝\H}Eؔk :(Sm.s* O위%l?k8R-*V:Fπ/~|z=u[Ouc?;E+UuvvC'*]_H|dެ#}=S @1/%l:u4ߪFt5H)]LK"/u5\Pz$%>e4eaaBF5# H)J$5`xHX(>Hj;xS"5$ Ɇր\0D"ةoX>cu{Mb#cf0d:CىI TYt؄^)Q/FJ,&GZXG}~.@3hjǘL^pFz1kJ5:F6/ؘe/PMUwI/OnO*b?3v%!:E6*F6(Ze \[Jp7o6qEl"fEKpK\4q(BwKX;SX2\&1) U\I;$:Une9Oachf"fm0^YaVEݓzB0KO۝tdw$ɡ`z+[r <<=bEIӉ|@'w-٬%^+GɺEܝn`MZGau]N{> $(>b ޭN<"(fd*COԒLgG7[+4)cFhޥG48$)vm(ODA̡u } N"K-b6t#N#i}4ʁ ̈́H9v6% cc"Q?W.o4[[;~  5LsΉՖQ޺_zrF.^e;A\o?-i驯nI DBbYAAoںJ|1M^7pl;z֍16'#eN|؉[cv -"^:ү22'xZQhO_MA^ <iy}N[x]<divu n^@,ͿrH{70Mc)&r5>Cևz5s Cz& rW4|+2]>Dd65rqQHx{*}.~[;}$=4Y"Bmzǜ tAx0^Dc8rWQ`W嫜&x5T x,8kc'2DP"^({ pQ@D U S0mi`vg2D˜oXH]cMEZwW졾ۊFr·X(c;Ln gܵ$]1&:edi빚nְk d L+co(Q?7Hkxt-vzl&%KwB% æõ`E ڄkTFËM!3]׆Q^uLCf4 ~%/*TG+,9 OQGI2I() |`ׯ3vſ}7[:5Z "?_g0Q"4/@Orf3$}:gB-j fB~.8Ofa~Svޢ[BƇ&Vv\j]NP )*fW~Y3Acvؤ/%F fTO_gzIy~O3woyġ~Gy/juI3Z}py4;!z7(DOÉb~ !q%oy~}# T{rfɢ\Z7~J3:V:ץk#DD_6sE5\^&u3:.;hDb8.81A"5/&k@& {!cca;SRR$Z44FDﺹzC{hYHl!oV+ s*L@*OigqT>ND xf!" F27x)ITbY+') iۧK; *ANP&/ZǨw7d D.w_E_.Y" >d8}]]. 3]qǚ xBw@kmkqsrձ7\wMz}?nOk/f^mv=tM*:,zKL)'$ω`sztQWodquKt|@엍5|xסvt9_:} "|cO\ ; (k^̠^| 8-yN< g2;ZfwMᾝٲ)ޙ3LpC_Ր ~2{FxIcck\Ò zL.o=*.2:Hbm9 35Gu$w/_ܑ暴Km?R?&%(Π^G_(qiWRߕ)\CK%FHO!;t4[A2:X%֡ih* ~޸ޭX_ư\=WGm"Khw~ϲ<9 C)zk蚘:!Gr{ݼ(!/U-RL:~/.7<6u4=(#8)JnbGw#>a uRJvo/z6xc\ݤrk*b6w95abM=[C@ Wt.e(B ZD"Sw "q`4azVEIG H'@Y ģ'Ohdt"! [KL1=frmr,)<6M|k.T9~rf5Y\d`D!vqD {BH01˓ENfD[,mI,{#+.Sɵ9K-)cB)dizDdy&x7fַ- z@+#^@֊B _!iZ@Mz)gBD1$~fZ(ǘ7Qf'\n">:/RM~y42Q>(rbSW>Y2=o rBPȭ܎[%D7-9e|^MX4P}\a*ĽO8>n׵?4M_syL^z] ZQVkz?2^dBwe#Wd:1MDv M^45TVcʦ'H:NJQbj4W 69߮.Cl!0_FH.s|rz7o@<^&&E<8K-TSt1ۄ2;Ņ&zf~亙GF.Tڄתqmĕ>j}GԣMysc%t&ƋEpvȕ 1AjDjL ('r߈ d (u A'7<uP{9}ky{~߷+]<6w>I+f IM;:KUZA_80dWb⛨[2IrQiBE_0&*#~h-aVxއ$Na4G%ZWjZDqU﹊Qc.dKy,op/h\h)A`,yvJ=z͔5c)Mq;}p;ԘMo*ЗrzP9kQW/9h;0dRJ~mٳ%l3⥑VDxgS~!mc1yo-ֱ碪_ġy߼)|uC4jcImؾ;6<ţTFMκ;xAnvh!qGx DC6B'ey$Z+Y]ňH *Dz~zl˒-VyE{]k37Yc,ڋD$}Ԙtyeamؽ1*s|&Qvg-uT zeBY0*O Q0 Q~' I=T 4\2aVabe0,VfC) $ eJ2e0mQ)J7a&(e>%ťLlSzR)DŽڒrPKJ05)ʳLgxL=ELQ\)-|fځU*9̕fRqX)㖶*KZڪ.^I+idXSf>%vʷR]E22/ڵa&ie0o$aL'y1d$ȼNiZ2;@Ί+iHdaV@.hA.Å1sݲ #C?OYVq0P7rݗ$ ?B}eZB\"?TgPazwzc{D[Rk!P^BFPbshu,S+azV[ li4MW7_V(o=ڞ@5S_i[u^3 wPh(OʂiI. ~O6o~$$xyj?3ەO5!K{LU4`V.Tc+17{ Yʀ;SY5] CBwIwi5DF?BH lzlZVMf}ÁiR0\CHۀZ|6՛VsڹMCf ^Zjakh(pSW315T9]#{yMdvy}k\JWP=k$\/;L/2/j7goYú; .axyDX^!^k dx2:% !DŽP9y-zDzH%"ae'93H-KgeqVOѤiKҤ{ iuKݹz&NBfM A$qAGAiG6dE"{Kv?H̼lt: ŐU- > F3K;|yQzK/ iPSkL`aTf{16%e&|sQ`ihRYڦ2-RY: ךd{um&8x hՑB-%BA7qZbÖ2C 1hV 4[^>5ɽ3֛SfB}kiЄ!p A㳓H{9~w&}fy%ML V*tI{+FP}&~]yv+6Q}ynrݓ[QTQܭ-o2"g5cm#n8uΔ0{tB{W2}ەD򑢦j6snҷTy u|Z$$IW<&5ѕ(SEtMT;VF֨$۽jPD/b:!э$inR84='Ҷ>Ky/ Aju -mf!!˝_GR07io !v0RϨڱE;-o*ݜpM8ϿIqOR=B!} U7(TZrPLg_ѹȒSjፆk1z6s$fN҄DG2* Q|~}Zxջbty$sB3ckQ*lZZ ƶU(WY+(NڊcOcwHjxwUƸ߮KvwoܩFqHw䞏 >^E*Mƕ*;GgbhLʡzl2<P-qH 9ʤ(qO ]lqJi *xh=(5w1ps* ~y67i885o8;5E.~_Lp0WW&rCPIa5G0=p hAp~K|F G@7;[i)Mw?"Un;Ss3s7ʰJM>{)qԷw #0B1%$zo>UEB)W䴧w+OֳBmCO^%薦DZŗn~nuz5[$]KFNl깺=^JIх\+_{oMYK4RIqTNMqOp|0'yZ)JWy)KQyZq;P]>&-t`Sg}IdmsM]8'-lZåK\F<٠7"15?jzR4*+x4jDҤ gmkPouSH-tos7$a0lڣܟ$$B**iM)807-,WYCU%zjχ6 7*Vtf.z{ֺ\tËfЂwx8udbUޢ3Q1+φɣxO*x GxcyI%~{HV!՘Ppjʩ.bVDMS?]Ui"~Z!My=:ȨuTvn´AZQgsJ@y͡]>]ti6-cK ##{ ߍn|vy .7L0=trTq^*ɔՊRs TgU-i {w:R)t.;1ܾ&ZC+O.n2Rb(h0S#'c RcL`(]8@S9Uf0G# 1 8}W+.~=x];fsqrQjGw#iFLQw$S+K7mp7;;r"ג Y )t֣ݭ[t־g~{'tޖCIi!is݄{.~`bXu}DN`?r!nW*VD b:pŚNk(NJE@Ƚwy1TįCYs(cVC$&JBMzڼYgmGi!u]~k|bŨN w3(7|( H'OBJ:9'u;{I*JݘHKNU$)_`\Ƭ)*)¸/ph>?(*7VhJKHCM^H6\uypzwJ]p \H5ZC}o Vڇ;U_ o*"-aļ`|qWupwC֚ny7KM5K8Nlk 8`z 2HRq`f8a΂$y4=X-JU=H`MA;;FBic"Chh\U)'>̽Y6Mf<.g ED4W-wBtT73CξI=ޓyM:I1wwN:2Z}ҿ{pQvߢ]S滋DyŪ1s9hՁ޷ #{R4 W$MH-5(Ľ3 ;F+~uI=,+&|Bޣ@ڹGaӟRI_d+i TqfpoEpHw]g[hfZsų_y뗤=BwBҳѡJ,Z '|{2R1\e19Sn ,˄5]֊C*r'5*w>67sAo!PIIkӾ#ZT빏[U{} )O,`i iS+gp>&~dсo~ʐǿ2=M\o֥L2};9\b-)v~XJռKcc ,+ꙕ;fy0х*DbnI٩2~L!W$:}Z<#Qi{Ko{D_fAX@|W*m:Wu{!y߉$ 1a'z }> % w*\윊W ijB7^qt| %U@׮{=rO.~Ouku e,&RU1Klo:4Z3[Ǖj+3gr&[=WP(~s$fg'Ҽ4z!oVM7n EE/:1ԁ31gߜ(.ϟYr$)y̸yOOߩS@W! $b(Y2vl$)#8;Ȣn$Gnm vkfRc@g0ңo/N>u9rG{QjQ֤3VkT_ǵKOEFdEH[+۫ʹ W,l*V&1( AɌȄ͏oi=E&LQOSb(m^v}Cn,HS6n`û$|H¿JX/*^KK)| Q _ ? $"u,KUMJC½6HxBo%/`O H8SI6HH5P@)Z%-apI%lC ?[ Y^pi aKI?IX+q ?II0K_HX,Z ?P{d̖l=#EnT ~mg{܃OKކ.:pA8-elgI%dv gUCIfOAp8[VC+./>WnJnh)\>~]iDjnHJ~bs).k)S[WN"<%7\)L rnxx\ƧaK8_r=xfq|K8;G[%Ѥw/4ҾNjvoLㇴ/ғ5|#쪴voN>/l>i^:K%}2 IDPWn(k¾\"ổ׀ekqٗa/+ xP>gFrǸ{"wO.(>gQ|̼NꁴPrtHon>ѓ>-v/jZ]E~45z5:54z4:Dz}thkj\>:yJ$N}ͬ(TipsxPgX>338\/_ç^Y[R_3hc$ršp   lҵ[Uc{ջO_c;_x񥿿n_ơG<{{GO?S>>ŗ_}ͷߝ=r;5 O:ܱ p ?P67~o}mt6vNkZu]08d W0*;.Ş(.(q.s$g喺Ly¥sns"Ē2sfhx8VYg_u.^.*h؉u X,NSٵIIsC0\yv9s`A(ãGz=mYƓNw)Gw߹[p0RBA'%gC!S#>&!!ŋ!e2 ]&v7:j"0k%ԁd$TtWO΂؃\,׎r]EFY4ryo[Xd7J%{^fsri+Yd!1ؘ@|ġU zxpN{nY1hly. cfB^vENvϛ|0O|0;jg4OؿR&Ti;[@,afm ]Ƽ|о3}9~'BJK V`%K„R#΁]t}a. vgBԑg7NDw3qaaqx`-rZ(5,t/؝K sycm݈o=ǁ|ɮgY3/Yk1URW%W<2L;'ڡ?+oU?]J͚9iXJ3x`cբ6)\`䱨d!ueyAs.rSؗ),0ڗ8\˯ʔ B<̙ľDnmqcl U&>1vG*_i~|JF!-1KEEߜ_XꚿlLpGB3UϺGtCCdmdػ؇1;FWuXI:C3$wb^aWJz9cjХ6ן%a+ =fɰ;cj{ wŹ:/F9;55`pHÂXǡ ױp\-uK6n#;7F4!9)HRԀ~MCJH"cV0 cA{,舝. ұ ݭ떯=!D_F2Ver5ܣ ȏ1Lo u|~IOᡬw^;y{uprn y `!y|g1.!,]}S'1&<~$0{`r$>kstck0XQA+Lxa`~o2N u'SϱYq6/o7~uedLc׆Z6kn`l؉*cfǰp?fqSY.e@J{$>XgYgX6%B|dؿh mHc۽ߨ] CZ8WfѝX4Ҍyy>BKO@t;p p=GcZ>cn>sz^-n!ZWX}UЎ6Q0܃ݳ9n]9QټO4OmA߀7BSGiR Hr߰HK_Wԫh(5aN AH/A3 wS]Guvg@4x9u >&ڡW k, :DG:Xu:u~e_&8PW>c܏㫩glW~ze}@gGyFqD:1/ 1\9P0շF/1fh3bރ0ioK៥GۨM}0kSTQ'0'i r}YqwΚy; `:G+ΎȜl]\ 6 )RеiO_]շV":1]nĄf= $n:^s]֎Ha=]ɺɣt=uI:mE+͏B]M{\.A߳A ݷW";n;[,o3c9Zm׬?Ϲu[?^lw%pVsXB ;mea`߭,Y(vpb$ݞUI_tim뗱}R]KM<'59xQ]bZv'b]" 5]L%%|$NDR||JEIErP'`y+ \3K:ٯd}pp[?ڛ}lA |'|7`H%e\`r,t^TR٦X`v~=k}IR{fp9^Cbf3YsL; ](ve]jQ ܢzg8 Kܠ ɿހ7&sv6l34ۍdEUN|󫏯ʙig=|KEq9HW"/{lTRn{- ǟMY1MS-62G@ea>oh,10+݆dxBN]uR] Iȟl"/YZ7^tIޡ-5%Qv'gIq I,̻UR.may˾>ĘJy^`bA3v[31/chY/|DnFɺKPDt:>)gf: it;Sn#W˟Z JgZ@> (Q{$Msؕvv# }o6)8jDYZGjk@ɇdd3Û$|=r##:ƿan ϴ8nd r|a~0w˘0gHs9i x:[G.ѱdO( a<_= =@5@LJĘ@x$1c)t*V0c(܏7Jп ɨp 8Z=phrO¬q0WZAf)Hxu3|:[$M-q)L4fS+& Dg`L?C'oܖ.lfWEZI36g`/ax^vxkALN<9I=ɨp,h >q(;nB)')"^,M ۀzB酢< =O3+DZ)»i5\x\ IKd%NNp ] b/"|3RaS.WW.\' OpZgີ".AW0[+A.U NV8뗂os?(F-DY\Pv09im|Z|[i&#AItԈLpݢK {DL#ȻXp/ ̋|x>+ӽl0l[6?z s<D=Ø# AE4>80|Q2~ pV+{ ?/+/M"071v\MM)pp(wG?`N\g?#QgߊSw>}]n 0<"-SY> S2:Ip/`6V. oJQ5oS 8n=$phpw8^Lpƛ_2C{8ꘘX#(P}z`L}_0}nDp pwa0ES ޭ0? vIr$$}#L֡.WJwKwK3Lki&yB 0i&.t)kVi&X'J_2D'At'f:gi&W㏐i1=-rFN|N Ğ +u@fUN 7AA W0IK>Zq{HWSW:p܁wt^߁ܕvi{1Fy'0y&Wu_[b ny[ `jGV{:J[?ұC3#._gllΜ9nQP/g7ofO<۹s'ety`X>X -;ĭ//G\\l z!9x]˗ edW@]U=x׼Y jEvEWs1^o_5*~„ D̎=ʎ?>cͯUzľsy577sBO@"ITLM8{g4`څWGy4\mVaϩOa?e?'!xB◩l=oA"~-A~!~߄.Ŀ 0CoB/_AX_Pױ6Hkջ;uJ4#L=6Lcۘ=Lm~gwC# 񁫹#zuO#MفPC|?͘Ĩ.L#gY66ۏmd hc!f蛘:iw2-Li>U7"B_w! ⿌i>Bf_0 09Ze_PٷTv6GeRU_8:!R_EYߍ}K ~CA?Go@@4!Df2gR\lÇ L1!sA=bCdA "g.ڵ47 1ݺv2H)~|M߭k)k(_0d!3Ӓ'!۽U({^`-L| ?fδ̶I}zaYLOIh\[0Hq#Rm`͒i)h #҈L9iR׮]`Li$pLIO7R:'Y26pyR_ޓdp424am-"ilHO Az2&Qth+($mPZM׎N L4MM<=ܚt 2552 $'fV*XZxt mRQ/kTX |&f kGf\-Q3,k0]ƛe^xjCFL$j5ل6hӧ*d㉲ٺB LgϮm[Ůǜ>! exG}y>|\'ol\a޽7s'>b'N`'Od^>}}՗|nw߱~sNeO~{~6:v1r twc{EϲlZnSdﳧSwMk`q(A4Dy@ⷎsguiٳg?="Ȟƞ=c{oT}Pz2pQ#ao71!1͐a92O~$ #!$C.#{v&1\ `ԩ5a7&D?ޡ؀ M@70.|7H?W~MBB|BB^xLe~VGphTbdsx?D:2$&zL߾}ʿAYUΟ@O4@7g'H~ƝO08s)/.=?~NK7n\SC"ćT40w4h@U7v޼y9w޹hu׮]g}bsC.i'scc{q;I{1uۯ{T.\~߼[;?䓏y |އ64EqQ1|/ѯ2^_ˇf޶y^{Qߝ={l@9G<޽O >cn'M soA*7j;^S5:*4k֚%_f=gD T@T6ĆI A!H H (oIR@@FQ/DZLj {=ᦨ<5_?}/3gΈ!#7"L?plݺU1a~߿Lh߷oѕ* =Gж{ODbcH"iK7E^Z3UW .w1u5/T{ ? eW h1?|0|L}&ݸ#mtZ-nkW>qj9 Ɓ#8,d9 R:1JYh" 4إ`p6Im j[1:?<c|zQ` VImL?z8f`tbalYO"ǺŐMN<&0D1QvϸSMS /)ؤhY-cdAZM9 0]1LQ /CWY0r'xB X8;ebت>+l"I2bdaz< Ó*GӒzBIqBߵkf͚U!G}X~|{-!;gDVG׻yai±q2;9ab }u.߷iiioB+ nj'ѩ+h&@r9h@?ի|kך؋Xfْ]>Mڐ}V !L]Ӽyv픛nI "VrffL0A ^ l(}~wuU ov>cT۶migK۶m;92mĈߩ5|())x@/O=L5Vs ?C6?3J>}k9}EI~~Oϗӧ4h}׼ pB8P#htzy$#; 8Yu(==t0Ltb[dĉ [۱8m͗܀#vϞˬ[ȿRi>@O#'O6|w] vb=trD-b*>֭[wڰa\r+d"Kԛy 9geeѣJv xsq-a+1 v[c~]ЩSp|yCP`HLL}Zrfy ׉Mbm@'.6XioٲedϞ=՞@ϧycg]wcI=[؂>(E>=z"v=_^|>~ߜ^>Um{T}dU}m'hlo?Bo~*&HMM5Uu7l m=@/ rx\FI{ nYu˰[ \0sLQe{@1r"&kŊ˥~~P8oln' S5}C?1}YbѡE^~c#}l0, .4w;?qvC;US\alȍݴi,Yȳa&mmȌ,mڴ?B{ naܱM};*+"~wSDM Nr?w=|]sl>;9k(M٭Ow-}[`]Zy_ϫL;d {*?+y\vNx\.Lx98꣫|l8GU:6 kDc1tkqbW>P|]Z?H_jýYw?kbNAOjs| 3H 5qjQVӧ'.X u|X8xxbNjwckh}rA4_c{\%fOlC}+p2T8$f}<'_"3MЩ;.2Xohkp#!QzL§hqn> O -SM z05y>/}OmF6z<#=*z eNgǏk6eʔ1~g9[r{Z"\?$N^=&`'qJ¨p@=ԉc24 AL;8ԧ3kxx7sdoJ *t{/kC'w'4iRԩSǸ{@݄`P_T3QE1ۘ&'7&!* NWԳfnM-c=۱'T3LtS__ Ls>TG]w~6?C}w}jgtUЫWr^k\bXΜ9?|̝;=.,"k{N@=:$)q5ǧP砦_.҃{a7b~r] qi@㿌1uWzO-7?U"gę{zo@|=}zKg#CèQ[of~?k//qŞ@Иagƌc5y|>6£>jzeKLO]1,kak cW{ nlW_f}Q[c(:l /MHpm>X,KB2F͛}Wv @3>\QQ׽ Ot]W8ѯ[|#Mj}wvݭ9r NzONJ+6QU^zu-SVVvB1^0gz{(//7> >NrO?mY5BɍW ? ңR|&)lِo9F؃f-tDX0x %nM&Z;*p'w"$%W W\iEڑ]8?iT^~}䝑wSA7vACҳ5sur6>=[[{zĚĺefksR:M>S,|؝iJ=f_}YtGD^c&2&FO[RƋrAPM6럲G)|衇̞bWKd{s7_);vXޏ&S7-<Ɨ[{~G \|4ts^ԓ8<߽gϞZ2rŵiLO=~3&枰מŵ&[F r)ODD:Kk͜OYaW֚{33RL IMI%s̶3e9q]3Se<2)n᷵ ic#!p4<+#y$繾4>KWI/#9;9%iTRf͛S}RR-<1wZIaYqׂG&d&GG䋋{hj_ZG/_\Ϟ'!yMQHIuɒ%--kʶ+*.;[vmy6G*_T|Kc^#(tMiE]J+KJVEٱz~?PF^%O3OTתЫU5OrUߵ0__/K r|yE"_oooW;y[[mH???ڟgk-]}Jگ@bGPShKQUQ^.*;^e¼mXo/o?oww7]qPKg7Rh'pip/_vendor/distlib/wheel.py}sF+h]m ~7Z>ٖ}Jݕ0H%D$@׏yE%Ikzv{d~h{_vvwvE&^gO~cS,%+c(&)Z'ȃb,JE>I ~ Rh/olh vU 1y΄azfb_0t;=9<}#wyE0ĕ/c{!xZx-=C &EE $"C5T1 X٭HQI :COOVɫ~-n'Q8t_yzma|(9;Q8|aAƿYQ5]%g;;&GPo0 w=s>{;{6pO#rr#9C a+% w;8wO^axlgzoُG/itT뇻\c1|}#}{o/} GQp; _|ox5?;o!kQ;}jd[h~PXK_@f9D@,-F1n5Ib6 ~a_D*ht߃\#Ʉ@ q# ܵ^q 0MnD12*1vjTBA".2t-0 ܂2|H,닛K4'ɼ,f b6c!:(BX݀T5mV^QC=:尕6Y?bJ/ąyeJ3I# 8uf(Uk t(ĉƑ23Ⱥ/> q QV$|`U]A36ੇ2ߠNR'}\ Sqo/vfK2VN**3?b >zT =}F/QY_]hHeHz $ɩ5laL̕=yڌ#UlݕZWUM65:ns N͜FfVYuJpFrOPdC͚5\y{ے~z#'YjD!fpW{& ܧnO\ւ7dӼaYEHAŠI:L˃d,.B8t)vL:iSNݲj액GܞdSG{jس͒ss$h#k,V ue6 ,*ekҒ(ap|eQX@c&2uY e.B9f iI͢t/M+ۖnD]RzΓ`JE[~~~97U=2NSB.M/D5_T!.nМ2aQ">UT56+If,ʦb?`EtJ+ AҶUEeYt⠤PZ q"5Wo#Ɂ<\f-7ht?Xcb iy&&M^6ݙruٓRnYra~[BiKHЩ16(ͯ,VP3yQ[nuL<]+ȶ$6R 7}u.~{8~ ;+LB*">CW U{Be'9g-d]^ $\ɢt ldo1t|6VIMN5Rbopʹ]zD5JܑUyF{4TUKUM%C Pdz T ʠggB1-T6iU }myqtoXki0f[ж7?b P 1)Æcg3 Yq 9HgWEvB4oe,uyqTfu:"M*°Ap(:( ze]X3%$ԯꃌA!yz#(Ҭ\ q/iƭDA-#UbFVnvʽ_Ŝpt vڌHNA]H(quKpDLw׊L`%v% !HxBV#<\NriRk?Yށ Q1 wǧξ"_(sg5ɐ5<=zN=g)EPQl^)MU#LD9Y/i'-ayȸo'~sx~+m;E7`;U\|/Pn xiUԾHbGu^]x{( EJ1Φnn5K~%6kzY>0PMa9zc&F_Ȋ>ḤrA&Ï+XB<0Z:A@`lb–h"Ǽ]z IψQqk=Zl¨ vzpO)6p-a!whnԁV ǀn{' ]X]&=t-=zUy?N ^gqf1:Ccr8G)&4BB55~ 5u;Cr0>>MD\cAo,-#Ae:髧Jc_ qP=Y;7=km$9q5PC<ȓo}"oSN GDS |gўgk٧z2oiJbzۣ6\nZegW0(k9nwVu%T1%Ì#ٶYh*8g?lhsn2[|ӰNoAۆ]QtC.vi&7HD ˋwYg8N/xAo^;r{6f[&Ⱥ^z-i] yzGW)MQ@ !-)M w`.z2&&YC{3 XOE8.*ͼ\{((vVk_m&h=qpX0%HSV"FtQmȋյYL֟\wֹm# ߝyst_~<<=%K-8ﶶ毹YQç㊽p $~0!I g*i:p="SR4X>`V99w\/+Ht׾}N׹ 3g'`|uϻ rpW5^"q'-ݠc ke<4o[$0.3ɃG' Kd'r^V]IL+YAg)*8@gUǭ *Ax3`X._uhY F\eL>Y _PFyeZcNN '~jP凨` c'RR)[fӑn8( $P2rZ@S%zJSNӠ9hDhɈIl*M0Ji>^bzmaK4!9Meφ dX4& GT Ϋ` i },MR~Zf+y$~.FxKzm0-PEۈѪ!IbdCYle] OFA4c܌@3w Z#D/eg kĄZKăO|?y |N@o3?}*HF\8ǩB O\kjT  hik^lT-A*~ǁ(}ڪn Ά?ҫ6mvTXO{M[bw4O9>mmڭ)#r~sxY5!u ;u7[pHq6]88]vmԩ+n.noڳĚȽa*聳D5hJxtC1|P%mӡ˺ݥI^N?wO'Bֱp@!,XJ [P'-j"d-1i羉v v]QL`(7RRU(P(%c"J-x&aQ UйV 7.8^\REJpQajK0ՉzPⱊ哎[gYT7Tx~3-' A4A[@;ϠtTLLE>%TfuUOJKodyKN_,Ӓ-Eϴ36AAרr48?$%;*2N(> w>.ҏO_!HͳBwi *>!ˇ*t K,䆃`?t`icmt&C֍;nd6p=Z}%|݀#MYߘie"n R>6}nL]aY] h}s7A)OB*0W.7Ӷ#tSE+6"ٕ8uctymmX;Cٯ2fؚieJR2C&a;M\6VТ 䱗8 Adkб ^h#c6QYz`E\́fٖߋ'ђooYˢ6,W¤zOaՁ*F==6._ٴ(@=[i67d\ð1G봬+l,ƴӖql7 }`+f>yyG|"D|3=@,HJ+c@y'V29_ aS)RqONsIGF9G&\c<$3AR¯M){&>=sߘQ Hvj~iYۏ1̴.f-Wln am#{QLv2EΎj Mʓ;|kھI,dnKm\Vb|׋)|B6:tQx8KN c$\*jݿX$۴:&c:r,ksx(0PTZ3#(}ݖc-|g((lRҮaf#(G:fX_ugmz'$UC)l  z0׃ ]9Zד_,&A6CfrHBa=P`mG6}ؼtѭAo'i)lHܒ5#3oV6M'>2t{Qyim=Z=T=߉W6TNW{EeO[%\8CM 8WV!i~%(‚~ l}X"Q!SkNɀA5(s3YҠF2WOdz: $o:7G mjl^Uvb?R  +d|_U i{q#mPq5o*!=Ɋ)NhwXy|y]͊Q:㛊C@>e -&P :s~'3 W}'FOC{GR4:>ыpyN`p`9.=HtSD9^{9g>.UX. g7D&)?TX_@PׂuS:'˩ Msy :CS˭1''3eV'|b6MneS}'\[c lZxw|1J3 u葆{>+05uNri'!(Ek!ek'ɎLGC4cI)-[0tf{2c)h~V7<`th˫1\_`̋Ze[x=rJ TbmOrSU|6Ts{W[PC軮KT!J`7BUQ}% ]G?x%ļ-r~դZbX'z@ull\&s[w &V K,T癯ܙ41-dA6ydc*}i=| |?u1'28L9p px`YG RdL,O8.W7٬ Q:)(iD (C.(OILIz}a2QwstUj+h߇]Fuo}|Ff6p\GeUhoz,{$dg y1An&e =>f0)RaixqLW1%NPC&=LxIcdI+s>7b&jxK7ݥ 9sbh+UKbV*QE>RVnL$yP>U1:!}ym *f]pGv1h+ISjk0_ 9TńRg=Dd.`\t i4c?$ }ݖduf+X"nh1'0OlV%HGҽ=+Uv.-S}l*}5, ?0rdOj6QU )P |i]fdDVi<*]|.O4 {^<|5ȵdTnFb,p@gq*`IJ%(?J5TEYaTI79߹Ѐ+ sfVJ.ՠOygzdRXSB?_o@}q/7PKg7R#g)pip/_vendor/distlib/_backport/__init__.py%N1 DQ= (xS=.͌<G+S:ö.8A-Kͣ2`'}hHnJҎY*rU}X.yyzƂ\~}XYKξ*j/VXGn|(x_6 A{Ja[6LnV囊)n;J!PKg7R/e%pip/_vendor/distlib/_backport/misc.py}Sn0 +-19AҡIO 2hS$C'QtM==>SX[2;h^|6eSX٦sp$W3Gop_lk*Aʚ"vuZowTz7O]L>6LXGj@JVU+4H-Gc틀`L"O$]=7ͪZ_NNON͋juk3spmC{]}ioښWUW6&?[k޽o޽ad2E̦+W81\@&f:6yamvVMzrO?bεU9m iimW1Pfg l|T~jc'tFdMI[9(,f˕}E,ּ_uUOLﶮˊKuLN!]Y V"(/?ەn垀9u v7{prW}ErnQojDo>jmYvZfryr*1DU%茷t#t`Ʈ-VQi+0 &379XjctĦT &+`(}GAx083 AvIf󽝑t{jXvhVUWi5t~ֿ r)՚UV D0q7%%C'oshqH noh?T !p7pݘ@ǓMSfnڹ)lmϟ~'g "A.l N}\7a Xြ <}tcm+"^}n,'7\"&0r.bu0D9Em\2RY*W'f03cնR\:\׍=z>ءq/MF̬ꆂ\RL@QR0$UXx_Dn63BjfX~ F Cd\=jH1-7D<%x3gS4-lZC Y)cU0%+PUX7MفM keC 7YnlAS.Mg,_~7 F.g=ނY7F>#kX|5+z9!UQd[: Ȍ@Ґc2o;6౺)NGs?eR7&T9vtMeG܀Yml̎Q8NCBT)/qpV1j|"QH`IyvJ:4WbTGEJPo"߾jƚߜs)Tы̝V9>$(Smڼxc0|f(Qk70(-Z%FE% XNB9¡6{%.H5csbJ2wp@?ĦHRa&ȭ&YL@é#!lΖC|-=M A렿Eݚn`>OȒ&`#Z/wL5/} 'k+.S:B H뺄Fm, x$ꦁ99슼i)` j`iB -$XeuVnv Hgr.(z#:]4`Y!C_o”K=I%AOA@bRYEp XQbg!,lYٲ҃@Qenq o\U%Ȋeq^AVv*e%WʄH )zZc+p,ڞ& GlvLK!N3q PHxDŽ&Puee7@7ڈ8I!lsgAƌl0嫘@4JbF#ưu6Y+ѶlA'JP;f<<ǧ*H7sW`)RKe5sA*!Hx59Zd( X@)Pخ52+s<}ZyGrmU;ѵ.]c3$%Ey%,lk %K38tz5< U (BU%uX_.PEVmPhWahR: L\"DbnY6qo|fXk*Px{z@\k w=7[Q:ڟS>@KE2s(]8@oܓh~2XVt֧gB0GwHrAhYv$X v zh`4br2 as%dlX:пS5G}A%H@ά8 ;HVSk8-dC.4&s=+U; LNb0`0P^_tlN͏b SW:#aoQDS62e,+8G5XL1TJ Vdk] `ۡ<|K6O.9zx? lGpc<̚I^,XX(*vuK nG{Ƈzkw+ ex+הc>yL̐\cZ,?$4)wʊsŷDzכ.2\]GdNBgq k؟4Xu&AUčQX`OAuy9t|vwF.iE6ҤIXppvFfs1,QB p  6Ja\8,Dpzu;|ݓt'lkfEzrM]".مI/y:.eyH/AkWXAq`. hQJ nE؁?笟 ,"!JHU&`5Nम6O5 ź2q4TXL)\E(+8fMU&eI{Z4`^ov^nqCqԨpi:p.A!/-gȯ >Y˱=&6h͎Z'*ȂQy)`qoX\7aO I~¦jW)X?^a۝nD@)8nuTB5I%9K]u{ %p{-@^c?CO$3߸C..OxytR. z-ܼc d -!I6.8aLPK 8e'FaQw%|[8L>vkTEH%v=nʅ?ʵ*T*)+घ ۦLل~DL SSac DL/w8^aȩڐ4|`0}]}k-g@x'(YLsKq 8 1|_t5=u;nO)/̲IrZ7TZb[U`E<>nYt ס ! xՊk?/WҞO/|<:ѨIB}HrÓLDte9:lI?SȠௐ\K|ɊN-N8zM Q>v?Qc3_&)KmjdN@(q({! )Ad=6|X)\dv~#Ƕlm' #0 Acg8hdsgnd%2`6'3qU6`dQAY-<`*F|DG(3R^*͛i$ gsYR+l(}?|yGy zxMP!|5 #0VY=B4ce΂ lmv{y9PO67q3WwX3TLtܓks)'k6DqwDkB X26RЗaF?'<.})?/=("bbrN;0YP.o Uj b;OAjhB <[@wgzC'kh=y9յ6X3Ā_`% d+U-poMNfY!Uq=ѧX91;+(B1T#(q"Mp->`2__YethIej*tm.IB n9Ip+=2Rz G+@d?*4t[Ki*yWS#`м<LtƮp= @@V@H ER!CW"M˻fo`ޙE{/׌fxo%F^76z).;}Oճhx>Bh,`j[~9:=_1ŘY}EizpF ؁Zd ui2DZxF)/{3\C)9;zRNqr7}"WU ySq Ά)`o퀔+»2 3(flBdf3%_+(|;A+7G/ʆZu8Zx^a?R%Ec?J96ʕ'L]׼dnNas$! c|Vwk >hD  vHMyV={L}Y(kkIǓ ag4ʻD,'(Iްx| 8qBµ5Oh>a[n=\\9-b+nWs`.Dﻏݬ?9/9ɛ" 5 ߀fa¦UV1>/^\%PĔ͖ar w"` eb2W t.4 Nev3axc%Eei0 lz"'MFo*FDxo?(gkJ/_85q}y/najDr_dHhF$lDl10B-ސ_q: ޠN=(9E>1p 0$Om?}>lAkeMCE'yժzS`ZOEAs9(-Q2M>a8 /9$EGސSW& t_&APÍFs)'B !77;D+:Ig6t`^-2_ Lʰ&="d9[{j5/(D>r}P=<j,/|VLC_uڈfHxb$1u;ty0KWNg? $f <&`/akТnMꈗxP@{U8QW*e1 o-j~Su%Nt; 6l!hJ"jơᠷ֌\bфkVrJ$֔N&LgF*t>, :-ԫy4+|ՈAD9ޘ=[/}2O9h?+,ۭ$ \94f{a $ J[yՖMf2a@*ld|x6{*Ǟ , z)gۯ.OG'( ǐɇy S62^`u`hN૽=74k_'ڔ'ڤ/ DŽz CO>cQ{g PA~KOdzTyfs=@[? Ceq`+c=د=%jLT"@ yriR77t4t\mH?߁pd#T i5 IP:gplMԬ s56!i!?Xfm6 Yánw#Z&e ML¬_.DP|jzsZdw??2t3V?:Gv)!z⋰u0DN1QC]$@Lm|x9 ֈXoyJH`Ie=zpy"8tf' ɛerXe?,ÂӴ, "#pu@FY;V{|{0Lrыwn4nGj#;82S+S(J#a~%tW[$sx{ף{W[v{q-нHBaaiw XӧǞ4?.;޳6.mthꠇR_K4!"rXޫ#Q܁NDuLpX)0JТ@Rfa$u F„H2D;X*d\mŖhS@5Ѷ$m=,cw\<g;?x6P$Nɹhq%@u `(9տ2\e"H3h(c,[D _.Âs1 3ޣ͢F!gqXP~ȶD'ۧ=yeTC> W)@}c U6C-m&^kL>䉇ρg>TW+VTPP'fH!{B1\|82!)Es]Qf_;2QX41h,'@{! @ZKʭQG#[i!E;44WJj3W/Fl(za ,A/ѫ Q@LT=C= hȳa'\RZP4P"8cZO/''\nol>{*H#֮%(+"9/F9LF>,z fB#eAk #i> todv3r2]SgG n%9Zݛ5{_z>J᧡J x%*ECc Z7F#|*rY4dSpo<Yp\S0HuL[QN^=o٠D;5vemO<3:Si ;{|(<&fw_?6,K7o/Ey `SWpmVEo};vS|UZ,kNߪ#r iKm4ΕWWMPpyZG*=fzg${UC: ̺-y `W)S8kʚ#qh T%h̲ +IZi`1ԓF Y-`kdn`[Dh\òW`Usj)i*}29əX;$exͿ5@!VI7&̹*Ԅan'{m :pIT^:)(_9󔴔4Uvt4V!{]Kj C5=l\tGl r[Q_~Z& !3U(.=eHMky95BZ(y^ nVD&fRSѬl:& t[(Y<]G% T42qz#E ^CA5/D^DIJwWF1Vj0}Kɪ+ߓx<7_ &Ӷ% srp*(Z} w&.W2_‘9n+Dߌc?7 l^buy|\ Ipa]DZȌ^5@~CGь)/&1G*0{9KH_Vuy[h`>WZwޙ e'pmNJ{t#"wҟe; I خ`ipеQm:4\PY'M|׾\Bmhz4!|xX+X :Q\C(lldW47``LT;rgT̆{" 0Si 搁?B0#SEȉ*&-?] X[,hPV(#w;>+NbK4",[EN%]c1ޱ,DOH8E|ق"Pʻ0,K e)D$< >h1{$Ty om4ۙ@q I!ݜ栧C Az5AXb]0kbm(*i!bx0/6-|oHEf#&FL%Qa9(I^`.FB&ї(jQ43LҡuCt3B[޺oJA\5@ Uxh ~&#U|1-0XjB]/H}MGF IL-u4_'0 <,v42D^o5EkxDMab$t}} ]^ hTL0 =mp\=jmXLYXO^g < $0U t(Y԰>c8Y-Nlʝ@g-Ihef/mw\ Xvݒ@gw*PMƌ$獛k^<@٨j*ϙUw.\Ƀ_u3Doiz;/4凮_`L+Ќ}w?LCHDӘ}n3{^~wFaY*4 ~HG)ũۨ Y$<3=Ji<,G$Gm7YN 1kk̽wq%HA 5?:=VU:`|e,ysj|P]OXf]y <*%~<\DkүPW5GTb}R"}Wa=z 9c$PZo.'.SdMs[Ao<{jcS{fQ" {*">;@ru{z0y>l|YY$ O{$pXxNQMZ,Bc6*r}`O~(Z̬C*0:Vj:;3:jCa S !RCqޤ1W'?7c\ryhD0\5`^O&J_?PKg7RDBCbYi(pip/_vendor/distlib/_backport/tarfile.pyݽ}{68?W>9Yk9/M}$N꧎v6馹*%272CRqw⍔nc`0 f6UqqΓvc<_쪊{ntejYVq2Ns_3{0M~zyDʨHʤLMR\eYe]%E2fEUɴEEDQ~Mb*8IQUfi6(X<^_V7q`ie>IcM:ɪJ 4߭l\uz^4M9`!\(qF7iu/+=tXv2_N+U$)(`dHeߏizb9U?xYN aQ #(y{ ˛k8+"`ܨ+s8#TzMxd{[\_@xNLFQW g1cwU /U@J_1\V0Qvq-ӗߎ^:?=8}»C90^BK8P 2({~{_q< q/ rY-d4khQYO3ZN,Gʼ)*A" $^\UsRhTQ?Β)x'o"Ԉ O5u 鞱]DO>~=oàj'e1xE~9N:M>~;Gg)rit˦Ms9 *͇2gm4ZIQdQI]XNt1dE{llT< `7Ӎ$YTaQc(4Ki~S"*z2؉8-q@Lp#Ru-"G݃J8?*j7U"`9Nm`'G:7SyHo98ǀڛ" 2KOJ?MT=5'ub 6g:ZsBjZω>t.%._Hj bB;DFe:R\qɏr6 7|'MTm-Ag*  u^W~ Lj{םNludKeaƓ*)6>Pp7Pid wEOAɧr ^ƫ]$Nގ`9zN"_)y8,DlIcIw+e>"//fōÓW?N^#Ýzym I|l ]V@U^nW `?yXW>cK|~z}Ǭ|ux{~qp6)sO.~ētak5VR5nv؋×o/u߾6l' #vrDu_.$m}t#skMKHX($RZj#%H8CZmB^Rho2lچoH>kR{M"k"FQYN"YD J9:<~Atqu*L'i;:e:ŷ3DHpŗaƷմL*GFwh-M#p'+GUkĂK)H}F4*h/q#ՙ]8M@6hh #u>Ms<_&4doi|tŝ|Ra͊m!K;vIK*‚\ "`A`_\]/0-.`X=H\xhF)dcы(vLtI7·%_ɒ t@W~] C2o^h<"TL -`xP!`dQsݴULZ&h1꼪Y"2+Jֈ6 ֈ<@D< 2(i FD5@|MmbRzXy%n'yNs~x̬CI7^?K*2ߖJ&9Z份oy\#e6&ic\ϺYG >w:y['Ѧ].T}b_I"&I})GYC`Hec-aq|Χ]%KU `\xՂi -x xxT&HA0ޜzxlZ,>) UQ8TT]|k.di_ӲaH뽠(G+_ؤ^/'b()|{i$/?>_bz^ s± Wu:i20ޓy\CDRXv.!B}B!(P5WIp*8V W@,5<`-34C)/5*;蕲.s 'h`(?^ ^N&sX|(3i=O?%T5{IzQݚ`MH!CvzG]5m MF2%jwM~vMu;I`Ƞe@%h68̑>lOQs|-vQ<N]uE mQKk#tt[=Q޾;÷ѿsT/ԏ'z }4nѳ_:&NkarZ^ .52gnCTŸ{Ic3XZݎ)qf;q3 ^-]c}a5m;| ;kaqƇG{p RH nՉr֩swGsʆ!н2k<"QL[8y ;2Ms@໲T|s#&sهŐx0Nvp*?k@k8Q:Fu6xї$ evr}ŋ×/wώ.`owS9:ʕU6O~/<zuw3:wu, 8[ؽ{L퇵|>nTƷ%\/ %to)K@7NĽ>!jZd1ћUǁޑ{JułF*6b.%e_uf_*vydW Ls)roϒMRVoEf@nYaJfhD}/ةA7t8fVr[|\NixWƘLA>GX %7q1-W`WHfYtEP(º/˫no3iw_o⇯g@BȔg}pw-ըTBxYᬾaGJNtVNRVϠ὘^tǪqmԙ'Q9k& ZȈ&|H!}44  9OA/>=_^e_ݏ~7VJc`Iha~%)CDm|zp3r)^0 K?[Pt X"9“RVNڄh NX4ML *$8;!n[{J2i !;u J=n1ww{{jaYìXg$!xFI  O!$u9gx Zmz{-=b葍՗9 iZm n遀)э6Z#$0]a=>˫>BI^U2VkhoZ$&uG o+g|np~ S-dm=Qzf@51@ 2Sz%Md;QWzokDm->]I0*yQtSahrv˥Pd);^b_}pyoVgPh/Kp|OeB"l҆%ׯA[NjĘ>&]:^%e3tg+_|#cY*wk;gƸ(Ns!jrx) A\B=4cEG]C !r`>pf 9ͪ5Xd[t=E-`= 1Unְ}:$;)G<\L.m ,eA:XG`M9x9HޕI9j-Uj]~cXys&=}4'vC c\:ͺLc@<ĔXj?6"v/.^ze|G B@0b\\VN`9lUi<Іu.̚gGy'ź0nNoMwKfT _plF/=)t{?WƴxƆ*?OI|e[给%"4n_ f8Rݞ}[TVH_pOmcLMV@# i@vջ# S (ޢM2* z8hs};hSܬ7b|5.i,- m~vͭ(뼬GD;9Or9[sYJ<W8Ky!Rzj8je٠e2~ ֽgVP̷͌ЂjafmeOyC`%9uqtɁ% GD\iLBS= E4KL(}$Vo!{ssH;V_9$L.Sѡm-5NXE[<ɵbvLU:ZFC}*l7Knx0,`;y޼NS,Y+'Ot ;DiY#iLiHZˑ 6F_-5D3G )b^ߨk+|x!J򲤃h"oF<[]uA[c#T!eBWP !uR={ abHd0r=؈E∲PU0Rsʍ|UD.9 ^Qء/i.ɹ-1,nͪ(ud} v RY_W4Mޥ >+|/; ! btsSW5E/]ME 58@QP呸7ԕeGfmZ8UgSmCP3S]#UYQGQ)EvtLRxR~7.L?5v rzBiT`~m .@/8,(V]f_3Tx!Y:`,0z޷0yOý2W):3!2і?7b4l)0OIJ׮Y Rֹg8rO4T ;)kϞ_'6mF÷,^o)1JH~]·/ɹ2"Ev `Eu"zɚ}weTg@1XlfKR)$#*D*q f94@ O2 FbIU2 `S. ʤċ`e1;l=%}8I`ie\0tf*, (l ]H9a+uCux̲W6Rgz[H9MV!S NCrER AɣJK$2rZA.G`\5zBl9ɌXn4h'ÛSq I ΙSuő۝Jp Ή΄ӗ IqmJw7RZ؛ft.%Y Y^|$WS2@8̽mOEϏ=V8Q3gn~jۏ4׏!Lh,od6.9 |T /c}#0:B?2[ EC9<6E"!DHdUoKRk|A\&ӢzȲ4ޤKfuoDʓC„J\ ywri.6!SX2+T_FEjEIJcya'^, 2ဧeJ {'IJyT&(%ڜ-:x%$/mV{m9;|y| &6= z]; ۃ5vPpth/Y KVAo3Oi73'ɞ55U^›yFTip'W)tV ~<̡IŢl@.bOjՖ^mtB֚czgw,/!VUCmUJn)p4d,grgÔBמ$Mݕ-ٵgwmqGl@VD#k$R^=m ayEj`(>"SNmλ ' )-tz0-C1K8:"}}g=i}k7j:xmd-7n+ڛL~WП6gJkS!s,/i3/o ^ώ,eC@ ;nz?8F ˬbķ ' `Og2#PeUJzӽ'-4e*$ M$0PJXc_Ug=hbպ y)3 w9e)U}7|Rި'*UW)Oӱd>pSevܪZ:v<~u[~ၪ=|G8GVЀ{ t;6Cآ [6KESL֑c )+(@ ୨C˘xqp^#JOdHRuȾǾD]~{+l L¼c?J<ՠ$ T( ٹçOK9G^\a':Tc+ oR hїXT8:R["lIu\H$dWJ֒sS(;|Ӈ{IuD7k֪%<vD FiN\uruUe2!&ؖG!#PHgQڬշtm╊]eKSEWٸ4վEX]6Hެ7-y^2W5b1̫-Sg6!),LTFђ7B_MSt]Yξm5GU=JKhBד$7oN._6M1? Ø|0bʹ7ԉ6GС5 I:[&;1MQ'JB>X'vL5DF6f+e"vɴE@Ϗ%L[VAȥ69'S%Ba1Ηc>,K{E[Dh(utHhFe|f#LaXyZa^o0_!tl/wؚyGY]us eZ&c1_RpB5ĽÄfr, 8*OIÆ^ܪ(iE[ҕ<\@9@=uY--ȅU ŏOT8tkO0hwW= mlZ Yjg-g BMrRc4a([}pRMyCGqyzbI+IQQqZ"fWInD#.m޳Ӑy!& +h7v74SyH]F2}ޜ+x󼾃vu\߼sOf-0Bk o/^n?+%SL81IlʲHko#Y\_#Qc&qt7h.2rAcSqP&;.:NN ϯ_YK @#{&R{"t5SqBM *0ʓ#y]*:,6*R/ ުߊB\1)Ώ΢ΓGO"ho Xoyso1Rhu!t_-KҨ3`hI1#p)w`4a7Jx/`}dz7ЗXMRuKiV|Iȓ/'3,8 Й0u"ܸ@3۰v#Q`ta"X3ds&GzIbi.%i e=vF^KO*[9ˠpP٥8{»` vd^sWR}WYų)Ίx9TQ"`ӹFc.6o,(#؏݇HbQlWne}qRbaw*v`@)*0~lWj GvVRāvI9Fc؂ԍJ{F1Ie"dO՜@;ߠLݤ'^Ȃ1*ȣG/e-zmE{:mUHoܘe>*7Oǫ2oa ">Tʈf:WD7 VKPe^#^;.}jL'@ngv|DF1$k4 EuB8tn6\k`!SUjxy7;ڤ=xAKc; yt$rKl>;};KX /OϨ'V:ߗ;yT8k8M>6H@W}P+qŮ"n?6L[ #x V 15KJ 5V='Z+7 m(*ai3_Њ*J4tN 1yvM;l8}T}k%_=?vx>~aooc_0_mC1l!5a!cWFʽ۸͝2hߏnIQ.pU~I9]8b:]\F\]>w2m9[.Ed4݉Y}?~Q$|i]2kE^ )G͸0ĆGj(W[H 0[߈hMJg@G}Yc4G,u#q_0lȏZ1w}tKSX ݄A֩Bi^OfV4zBŨPv K-uͯt;v[L͡/^S;4TVv˜:tЕ}K[un`R 6 #8e0eg% ΢RbxcEfӌ*2u9+{aE0V/|&ʫLn9z<|L;۸ *qQ΀IgY^$# QE@t`fDTԶ,Γ ^(1IwcDgg 1 0bWaN{wGl Ooe\*xSj b;S :TIQpՇ*١z1)]=JxhW):q*E@q tAc.ckW}%CķoeX/2p&M@h@Ң<â3֮<1<ҁ}hM-H4@E7z JwIy)gr7A 4D[ #e @m[tɂH]v08rC&*a; %L*5 Ќ斱Vo2AJFC=\lv|ׄ'MI`2tWGϸn$вp]Wq679s=oҍ10$SmUO sɳq\1_?;ӿS- ~wKad8&vR_u-3-ZUipR$-嘣hwo mrh3U8TAؙUD'yn2&e Hѷ&Ck\@tE5~Etao4Nh3,"?KǏE>(jzL(Ԭ!PN:@.D1hs;WDrmprZ^yOBgD83n@HSݚiKϒy~CF2maTbX)*Y%nujS+8//߫sվ:@Z,t%J%",l&&eS %E/k;kS tB7>[βT5:*ʧoOF/~kxZIN%2C!R^0!h^cmt3hVO"D9"Psq`ޘ6.t .vWT!SG]ag%ggO^p@?Ŭ Y5,+Sx*tVbR|Q86AZL q*GP?.oQ7-2 'P 9Pgk67[M[mP} b쇮_[+uo3F,(5j4qr0܄=g2g,1 5IKTzC&0xchx4s`8c;5eSݎ4CX!3͉l[+b"KWY '{';e\f2EY/h{_6O }7Ep,}WlHsw_>c&.ݭ*R[_#B+lqӛW[D殖zғ^}ҨZҾyXy:{-_ qDH |~|9A|گi%q?Sud+[@ l8D-%?/*YM^k/ ?Wx\||]4 {%p6&|'.@k'_/K>i7 [b7 Cc,EjGǃrM(KָD=6N TGb9TѬa$rZc1A#'FbѢDXOp53[ӕ<9Pڃ9F׎݇=|o ^?/M&@# /Hknn(ܳ0'ZasM iT*RCjUOᅀiTgQUڌs(9Z ,dUք!AL]|;?4C>]׀dwFhRŲo1(;r3Ұl:YvJAt'I6KKp9qc-,ڿS`͙8 Ify;pFu8o査EiSQ/1rzu6mߘQ(lMN^xw@cot`-۟[O JLysgssZN*+W_sCe'S+9"qD.nO~ܔ :O(JJmfpPyVL1A6 x>K 8,yy:5*ߞuR #QV~Tr7fl#B Vn 0#r%8(bOrsfT"ucnys iǚ$,S/R΂ sDaPeFCD ϏtrkТm c)黶Cnj_l ;+\ GHŹgy9 X AKDfsizykuJÙS"V|0o)9qMg+*$LrbV@wm邗VJUq!_e:סᨬlM=EaBbHŻY y0.⨒\U1\K2a^rZjZ|1ӕ5K˷PjɢYqpϒWCXy]u9 QjՈכ41{ 'Vl_o1+F+oVYW1G!65Uv=Ctzu OGOpƪ 6kS4IYnzs岺o Yn8jp>::?;|n؁^ x7aNȈ99^2v|gFW[xbq(o@>!Qt@N~I "q TV+ M[c̈ztd_vaC|d(+kIo2J$??~jePIf/Bdi ;-~mk1 >ںgޱ>;nCмfuQ/[ Ao#ػZNk/;Ni0xfF!3^DXls*<&;G>SfU R_ͮ-nNXJv3Eq~q5K5lT:̊QI-3+f>Ǜ~?^۫06~ ;ed6@_ݰ?dr#Ief!76CoVu-߬=P熒h}NR-p,}^e]J2EN^ g+0#"A[1>S}jؗS~䜢:%nuvHيIL>{ XUAcYnϋ:I+ _[@lHsR IEi4TadikH!S^ӧ L'+6œ+|] xM־0.fKʓYGb sYU#J'|' -ЯS}5$C ?d>b`l瀛@gmM=ngY˕8SYYϦh d}<hO}*Ωy?d;De*N; ToNOɺ$_W }B-]rS ɶxgX-ln1^˷:[.&2"nv>%PwKoծh˔~%{gӉ 378֮M@h8WvSұUS{&N:.Ph7EB8O P'U4c h4CIx͖nIl\;];jwef,l)1߭`iHd.jj};!(> SL$E8!j:Ȓiƺ`cHZǛh= &jf ё~mj jo;5߭٣^?^M'N,{-&4ro=kkg4o\ USDI" N}XdKO &Ԏ? 0M/JqAT $.% hG]@G;&ۦe=5cB!|MMRYF 5*"SsM^5->JAw< *p`L C+mk2Qe9[')Qλ)l<\L߁7§|@7 NGSe";rcZi*hqu[x+ajmTXfY=F|*J3Թ8`2M;층#yRm(KUB ˊ<& B*77!Osn̺TWi x'ӢC ~ ݛC>Q) M)A lv-ɁcB1xDg ն\Ͳkffo+;LG͘˻@[ϳF6|'wrymE7 ʪ6>&iXB }5Ú׍?;nmMGx@zwxR{gDY(r W($n+X:B-"鵤ߌr+xVFPe{~ LPko1vx trqsDP0{6|矄#i,_i x2dEo xzňE)e1weܠ2cUhu<̬H*8X5 +@i NH7E\7OXjT6>V7|,kbZ*`v7s ȿam1% k1¥jG-^=iq>IrQt6m,vH*1HzNz0}F\5U5,D@}}u[+e))OJŨ%{@y9*O3-PĆR;%]kQ$ Q0}gu꺋[t"2D nt -RE/J$&Cy2o | 8tG~~fvyiIvbZdJ}l/0sX?tN\F93߆@ɭk iU Cl|],tm3N <\^XpzvԿe:ۍ@3K;.#z99E gVO̼ P${3{, &˯C`i \AS2']+?m|Л(.0^K :-X'qGڷWٶ!QrPda枆ڑL!OF35"07 +5o:PvodaTL}=e56uΟdɣlzŰ/v|C[:8apU2#939xt\u\b"f:`6VT ]~Q'Kޜ)nVMb%-k`0 I3*#ܴ{cGLr~{|p0ۈZQ4F+UvROST: gtm_mGv˹.yuWel:l_ǟU*Ѹr2<Be+3/c=7.%߭h[hUNm#k2-K6R '|j8e!@<u}vHъd: vo`Դ]˷{Mdn{Kw+u,F09חQS:pC!Ќ^, .o o>x 6HX(JbXWia'&o矴Dz Rh`oALad;o#1`Mps t"ذ!NA4V{ yk-rgS:`R+" n0F Ic4SuL'79hVEO[36e;X\U.f':\WĘoSb+_l,0fF\CN5vji{L%kssg/Q0dmS۲eΧM`2y"Z$5!5nHsrQGi\x`o؇ˠ{Z*xHC@]S"k=52jDeW$".gv-c(<^fc֒hI7+~WqQOF90~ rk.4v4uU%D?Lt1)MsNqk:g-kll-/⁢\)ˆrFzQ7nKe FOE#+x#J?jXDWWUL#3Wˊt;c6 .z@_PKg7RoD pip/_vendor/html5lib/__init__.py}T;o0+̒ Y@6 d( N=R_E"{9g/`I݁vp؀{WHH7b-[Y /f{GWVS/væaMg#1Zt TF$}p'Jkn@T Fj`BledDk"䅑C4hu4HTTL}ى(1fQyEݐY1CHEKDnFԷ|ؗCG πۊ߁p oȒjݶw=Fm4I5f@,.T(eX;-tdmu.lE]'Tsװ؟)Fu*VCyn (bBߤw0NR+ʲ >X,˥rFΠ[hF3ZRIV(w8Oe^KY'.G/3ipswAw+K}/NTvX<ƍK3<;N=AD/nQiR*|xUnQed7}q?ȥ즀tB PQ;)a'EgPKg7Rʧ--XA!pip/_vendor/html5lib/_ihatexml.py[ks䶱_%O(ٛY*$$hFRik|h4 Ipιqw_/qCS][yX-u+nAl?9l.bF6uJy^_ V_I{ڙL&'/]7O^;?:Dĉ-'w)")p*!=ȩ碗{) FD$' '/\éHs=̽XC虧d89,%?~w$5MOJ4/?K=_`,C)Յ\ʱPZO9Gzn \ $ʄ$xF=A<&Nb9q"(3$dhރiNÞ0Ծ!Zab)![XkN4GOM^QLLw1QGv"=*Ԩp42QŨE&$XBIn98-cg)lfZ8̊0 f2Hr+\'`X:7aXSNrHoOclNC*JnIaadZ8)02Z0S3ͬ Y3"sfXPz2B,k0#2h"boP"q虯BLnBXFdIj9XѠlc;[r#kQ4ƜQf}W/Գzj|zt÷Oow ler!r=Bz0BYrZW(;Z?x8zTlmQ'JjK2+={%q|@, 6虁f,)5g %z[gY .hX,7 f0=`\ }<0za+uNꏃ) zД40 if4)Y2ä^x*O{ Ssr" ۤJs3DFI̤d4)Y`@9 lH6gVGbh,.z,7hd9 YNYLAN6VEiS`4"s oRybB+'Ss{djn%'Ssj^<`.eTl.,\X xU)ujԊߤ%MS|YWFv)i)3<ŸCaO,ĺt=V*cr+6&JRcUF X gc0lIC-=ccW<1ظ{xx86>FmGskd*#_8IDSI#!d$Y=I&zrғ[d Keh^/Pf"M<b՚SMs?/\] h,>Jzcf|:K}u)L/ L/ɞ3V L߮~kxl׳_ap[qwb'S5eJD3En$9[twVrSywTN/o7?ҵ٬zvFw=s^vñh<%g@no6@wÕ+mݡyߋ3eɎ MKbmfgzVbinlf%Ơ;lV੪گ7hhR-֧%p)Ttr!.Jo=s[Gr\lͺRvUNJZ^ϸ2~tئѷmK`&(vT]/zwBN_x! &nr;uE9GtO]o©z>;-jիC} 7ʶ4Hk8 t}|qu1| {ܙCe ^-֊FCncF/n'虁Gx&pl˲p#' u\؆(8E.Δr")R?("?M&7T"׊T%6$2ZX'껻2SK`M->i髋?^]]]]}?WW?]=֑BwW]|z ?>hJ2EN&@C(ytETQsС~g*5W0--U:U(CT"IZ1Z B-hUArr2 Q&D@U8hK5}(Ja0-4hP_!0 kh~¤FE͕p%UKR " EԘf`As F#O,_3* ~dJjXeP),Wf/F1rgÔ12)c Y֢M-dQ]ԧJZSE2ϕG~ +9ᾲ1@U8(! p<qǓ085d)8@* rSTck^-P5^d퇠*j:]5ܮ:D0 vhDŔh4ŰQ C%1dc0"v%eT jèORݐw]u#/:؄3k`UP@K4̺*h %@K@-@2]APOP !uIڂ@рD@ Pi6TA =;w5GTݖ*U+rCИ* J ڡ̔BwU(I&`w}X*,DEŰ5U e%+V6 N]:sj~6~Ku_ӳa4[LnrP6E[ 6cKi+9NI*4]ry$_!ş)B>}*؀ a/I>.!I>*:̘>mg^Vp$@\c{"xrv6Q)]{<۬WyVV|0dP;1Du{- (VgS+?ƗØd1;둺tQou4u-O|20߈a})S!N=UpXΟȔbu֘ȰoGKULdG760e9/=}GDڠn,}sT}xs0T3Fp̈́NswU5}p.C`Ka:t2S@⤇~j缒f>2tv,bHAKgSeenJ&¶#/Ư)y\8s:֌i}#&[: ؚ#Jovk7Qߚu퟊ZOx IxSQƝ#|'/8l gHnEYvo=] 6>58~G YOR9I-6o]l&~ߩT'")`} ;NX\&eZѧJBmivPKg7R6=a~$pip/_vendor/html5lib/_inputstream.py=ioǒ+:1H-X^XB,Bah83C{VUPc@.|ŦES7%NY*fѬӦS}MR%y6dMOӤeV[[ Q$xzóy^N]= 5^7R}꺘i3)4mmg8e\oj}ͫs]&'-xB~YUGYq94b~|Q k,$kۗeU W^DeOb^@BQ?o>HR зb ,X}YQ.TTYljL @|-shW4 PCs.[5 ̙f!&JT,VMY˨w^ѿG)5MߗLNNvGS2ҿ_ }W}ݶ۞궧n{۞n{^궗n{^׺n{ێtۑn;mǺDSv&mvU51Ͳl!9g\52R5MVl1XU*IcdHes7nJp<5p ` M:M"KҔ/TBP|-& Ċ4p*XQ*zW #Ƕ8%k^.!\ n]_YMVľ"Iy8)}ڜFv .Of)?#`㊶xZ?$YMgba"O28߽#2W-xz <5;N%bB nY>)WU1FKq+5\` |3I!mr \x%_E$C7 ys9{Ia\h}<.?+GF[[;y~ $$cOp`B y+ hٓzCOLȗ$|DZ7恻7:)oP.,ҮY#ֶ;[On=9g \zc8 ȵ9hj%{mT.n5J쾾5K(y+w<˄?800u0c˟08ْ'``'##6ٯ*z]Z`Xn4'@¡e#CSYw fh,oxQAZ ذ>d(KK) cFɢkaXc-=D#ߡݍV@{`U裡8=J*S=~8ʄ}RcTAX*Rs\ZNπpdQyrP:ft2I2%mx-T<9B=ϯy trTm5#- ރ9)"b"q^b|dڨ70a2]ЍY0Rd8'LAEMZl۱!LC$KGu`޲yxoN"Ԣ`yvJh:r'P:b 0?FbAuqRS8R<.=͜F諷[qܽU&L ?cqqd*z>f=x>EC1`%~b`iheTS^Q գO ix9b`c.(DȰQ6P)7d6ӵCŸ\(E1x/l'ƶ9ʘ 2c湈ps4Xzm W6Icgkowe}[8rK '!V$x25,[=ͩ:guS~W=Zk0fz߂.gl!Μy/68Dp&R@f+_\agf)0@8(M79<جwPTZ -d93'86K DzWaBTE!*3C[1*A{,*F[dnj?ɅJU&)7r8hm cA2řk`'pFldSuCB"jRBI:֏2uިY&Hvf;C!a8ig`F;"$5?FyDl[m[R7w)!-yh C<#g%g,˼:~ lbХOD\U>#\#\`r0wsSJ9a Knx2{(S1"jMQ~d'ة&w,()=zN&)Hrsoy7ehcws7<}`MT__Mfy&\r^6" n)~5XeKާĉW0F JS11mI#]Cn?J+"Qܖ9x02-tc @hK뤰b|j٫5`;0Yd ߲%$oѬe7E`3ӊUuH3GZa GYQV ;K>>+x%b0%re@(2x T舂1y~ڃ,Z_/>z!2EطJRnp2z v/@ǠNY[XV(˥O 2!MY¸֑3;ZM![i# dZ ̿(cwXDT ;I|.jذrL򹓺U$lH(&Go %ԡ K{ )wΛUsTߓYND$Hv0\m_{ܼݒ*=v;a|'Ȑ +Lҫ'oȃLqͼIb%_$6+zг=Z@=JF gQ o9Z ,oڊ+m1u a>3 <cS1 %Z0,KU\ZW!"h@lIEpBF6\vKxМ 8ZEIY:22|9PXF.;AnB#:,6VOB];yy^L1nY,OSg;sCK ,(t7DPYfUӼLI6%ͅ&d_u~[(1 2!!LK諿AEL&lGĒ-*Y' M7Sn* z e/2%2Ú }ԩZ%)6*AkE7 L"r͊Jښ ?s`liB3A}~EEb{Xe6{/`hZ#ht?8vݕcu4 ASG!ct9E+e[V-,YEW5xWWWc<,+і-Q";XWd>2,шU!}kNVJՎطnPF-',;4c>GL0I?Fc5Qc6x2;kbϸ}u:1x]o+|oq) vjB{c~+ZroW H:\\^OjE}N|ﲂ3R: .ڀk@V!~qu UhDu-'xQku,AڠN'JUT9w y?ޛI1(}D>#B(?~ ӰAD#*h}aWri<Fۉ7jSd/Ro8 ^U^= \ ]ƴP¦N4)wԽOQPP`^쨮;Cl22vVvX`{9L@pM/&`"TbTzH)`j poVgLfKjWn%$|lma6vѡ=t <2qU-k1TIK탩n.˄1n}hXھZf Ni -]IkΨ~O \h)!k5v#yk*j-am%r(v㢚2o+ d?JPH@mQ`rt1o8r{嫓$(-]aɫC'sgދSOpvООA@aY?H^i ru8s\Tz&1DHMFF@$ 1Ԥܮ1kŒ^y[5?L"*^:\;L=1!T)KKy-XeWu>mk+浒ZnnBx!u(!=(l WY~exwq8S3a&Nn0XY&P9ψ}T10$gAt|p6z,jx= qkh h.*1ob .&*鮘x]?Td7P*%:J2CaJԈJ@G~Όt(ByɠP/?q !ʾi 8wfElMQT. /)Y$w@E\x#'FJX+zG\{U^h{Ve8WC( Dx.`SUuT5S6Ô 772d=@70V3VcHY:|,p\zW<\d Iچ&E% 5+J\,K͌-[`&4X=md8]m 1L:ZFb:$(?R54`+W,9g ӵ|QҪ6PWX;`F[r^$w. #]oCGL'C"ʠ׋yQeb>cn:5UlDE aֽ>4XoX qZ; a=O*oF|+#仲LyfU^W[#L0Bq u]IKk N K_ƚTACK}iid)Utw9uǺXҧp AJ@ E>tH~PTf8\=6h; S\`Oo=J8\CַQO1)?WT6V_r/?۽@W eBn0E "&dm$O= @t2dWM!Ż[D.4ad4zkk97ѫ$Duc ˟4vˋ 3"0xj~l'΅S{ڵ]zAŒbJKd gi\EY-W{LNw_ɢLq/TiwXppҨ ߩ/`켛"~ { Nw÷"^M/;&hW#aq#|a/8Th07W9@:Y;pR"NER#؟'~Y` <@4O#ȧg*{,YmH ٚaL]Hm6Lм'~mgVp?h8Ƶքd ;]0Bԑq3QjDj!^D}QCEJ~5irAXjYD%srzCR9xPۮh)ҍ#Lu2̴P -㼤ݬsa I?1|(2ີ;KAG,7>Mϥ xU-~oG^'D{ k{mNz,Jy D_y2wV7W9|vS¢f߄φւ0Z-6|ykڶI-Ԛ-$([ )C/%eemhL%m 2:y| 8{OoS^?L'dvFԥq0=`Xf% >bԪVr31-xRn⣒oHp+_  }ZG:@~`.̚IUm:4: b\H{" ?zm+,3Xtc{!ðs/lC}&Ԣ>h@#X5׬O6=hHptkF~г>e_͑m/(m:߰MC<{zȮ9ok#&ϗ.Uw<F "ŃF9Ԏo1]JBƣ(8jXqDTї@PFnO@Ǜ|ÐJ wnqutOë13^ B2$_ʥF@!턬 4eD{`^F4w~4z50f=Czۄ6sQљjO8)߉b'gIQSA ٭yO0u첁$#HaW*%)yO;܇_U,);FQ͟v'PP?xJ0|,!Tm-aP!_ PKg7R5mO,"pip/_vendor/html5lib/_tokenizer.py]{s6?gjT'#[{ljif48w$$H m=$Dbr:,y,љ B-gGiT᧋ׯ^qQ߳hT>?z"G^G(}r|Dzwxt(ހgPDQQ寲=2l1Q>~ܛ@;BښK-ϺG;,1'1|ī|EGC#<˿''6ƄI E9Hlei H  1$<5`s |!CDP{Z(hF$L:˿!>d{zGo\髯nuòaCDnik PO|Hwf/K#@yq!% }Fm} F2s7PʎHSwEm^@7C o}jȊĐIP>u0tm(PSZO@*c aät 0,mPPaqsL-uL{ (/YA@|/1mJFr? HI 6/Џ~"CHg>44ky4@)qл:V?8UфnL)kĽe`j MD D`mם 0|J-$~GRs=.`쟚 =R{t>PDpzzL1$hӑ/+):`Jꝡ cǴrw!#l6"EntV"'1aM648P=G؟- K6sˀu{?4*,8}8*W)OiT9l>nB(tD&1lL (cB&"?>[Di3}Z -P}-5(@@eξO&v7TQlw1Fg ;Q0@+̓xcs xͧ74MToE)G5h}}]SZE5h}}CSZ?D5O"Z'7ϛz|z}sڔiT,u}sޔyM1hWYHgaݣ&˷sqߛ 3Do5hЙjbO9aXE DnFwoJ 7^ ;?{}Gdpe}Ezwԃ8E˗2Rϩ!Ggx-Fd">O L0Y>8,,r 0r"_al.9Fڮe4KU} h,rSԤ+ 1 :;jG|+Yy)0 ()8Q"`c"!":Ǡ|8 _j|8~%+ /3fҳ8vYbI4@Q|K'cf@YӲa/]3"|(S?GpS4l>,HXIOk71-ʶ3HDx#BÑ0Y |{<-> *CE( 抡TNr`"c!lw~œ{-P'ABl`"ͨH`2^ qo~Qz3?P1:(x<]Dsk#E2_dHCr-a%CJc۽m߀h"v{JQFJ$pv3lDsx\ q,_J&F g~N/cKqFaLȺ JÉήo]˼0ad}TdXmO!/xja™ Nm%dS}.8%L1$Ql#+N6Iy<-up+Cd%pNsk iE{o@+xR {T(g^yS_Qg :uzI#_t^zWXA*!|&EBYO=d8r< R`*I̸WWUJ^iM"_/S54E+2D W+|S<{vU'X>K~^R{y0(B|yR - .+ C)La1ҥ"L/@GieQ 瓴@"|OBជpS GHs|^+YNυY9; 4*@V$}ź< wta+iC`c@:(na:$R]\0f=xa?QRip=dP\ZFᆄ.<1h+e_",MHqOmMuX 0̳rStGG){.v7OO+_C!yR)}-19j)D3ٖ{Gv@78{֔a03Sgbj rQR)#IMA`YM$cF11R{ ŝ"[2ln`. F>ʱt)U#)#L Xv/j܃1,LToBe+lRG8yΏt?ʈ` qDq${˹mL7"y]<<ۈV.| Df&-_%Ѭpў/v#a0?0_:QqÌ\LfxWNnNdfPק|IJ_ q{L2AFx^b@aHzc%5'Cr<!'&6tƜHҤCLiJ7^*2tgN~b0`p c$ʆF!/=h nIR -ٓ(5 YUD|ǒq߰EA=?eKj|Ӑ< %P1|;wic8^"eMƮ?pl= x\4Q?|ˀ(Ę|78`/)e{~" YnϚ/hFWֺh>TF5b6 U׋qK F'ep؈f;!amc}Q[RTqWt\ƻBwGJYz!asv'2X|䵨b%wϛ s3\w҅%SQLل}·p۸?E:c^1-Xj\nrT"͟?fIST$EHKh-|,*TZ. BE~(tX0ϝyUb4BT^JﭸGhey0hO9"6 o yk- IDv2&v@G%r?w-,YL]`N LdYuz@\i;I&%9H knGe6ՙ]ݱj)taN.ªe9ԅUk LD\`5h?,ߜlR˛nq>n8-yq̙4y{$$ٽDRM_"{edK+gcinidr c[YvdrGlsm悁x(L?ۏ[1O~VgkLiCS$eOƦ;_B 7o;iE%w"%$kN/b)?=%Gx(Bj;nn4V+q-$uӚFA%,)\M_.Y -uU!S;orTMaG2jCX8aفKi Ҏ`g,L@MZ֏ju|5)gNNW۞K#]R-jaڃI 5UmU~DC2% Ӯx֏Bk}߬R,())|YzH2$ c6Vʳ WhJ͗o6 :wa_x#|U"O9$wj9"ߟrcYgQ N~q'_Rd|qNLȞ3&m;Oh&;㍢e(EEv*'ĶXeY Q'O 68v%-ÈO]x{^?kӷ5Ӟ0Qcy&l,F@Z !&,ƽ 5O H΍4+/F_JSc_W4fvv3M_ c\R;OƋ)^7 ߆ =NwJ,±ܤninm)2ջ9[V#ru:RUvJ\gז6GKh?s,!)*F*yRC 7(uG Dm+v'_?,䘸-I7-b/^OzSݷ ,]Ǜ{,XeNaQgљ >y~ % &%y5Ŏyi4g1-w#V,eL6 ~.ãcpAcPcW[RTn)5loN)["`B \8ŠLb\"Dbuj1+}RKֈ-.{wC3L LT8޾4~?=?}|A?ǂfL~$"n1DQsŒ8oFQ%55j|Vx͂2^PPí5FxƸI˽]E &Bf7\i%&n~gqo»h`,q]|oƆLwbUZ|Ѫriz9ƕ!V% T6%/gNg:c EކwU\궨.{PqG.A&n,޶PTew] s*KvToo9*^Ƥvph'>eBoRժujuc]T69M1U.)uO~ׯ nnsϯ]4  BSŧZUî7̀M7.n^ħܛpE8(zT{bɜiW'}۴)>C;SI( \$Ѓ#_ɽ83CRq2_4b>ލ>u2x|hi1CLj=U/3_ze3`Db-j^7mC0&ͬ4>ՙwM+V6`_ۆO74%㍭l[mkĖ.j[W۔v!-H ęty-VXk]nw1G.i#pLUk/Uzu.uPAIV%%&`R ~>R wJQˋrFkҧ(|d s\r"G2ưd=6WZ:»!߳3!t'W$T~3q3U=FExgW=G .KԴo DUmܞa|QP p= d)mroM&ԣ]>Dw׸Ľq=, ??⫋R=&⋂؄⒊VS?^֦PI4ׁ[PKg7RӉICpip/_vendor/html5lib/_utils.pyW{o6_⠠)ʣŰ5vV) TZc62)Tw, "~~htYJ4.F!%cTBXYa`IvSrӰUyUK< 7#TQ"I"kXY y^WZ+wu(E\J'F7D۔ݿς@,kup9O^|ͥ |ɪ¦2ឯj'H 3u 4eE<܅1o]0%يk:}"V4w.0إv2~lI %yڂ U=wKPcȡ#S򗓓#|f A2V],,6`W uQ66+af&7Pֲ2$gĦclxbb,[!!٠Ge ހ!/NI@\A5ˉBs <[1) ֔eXvf{ ?eE4=>@)0x0lQ)2O 4ɌG}̤KAr~vU֣m+kEum/IJ_ c*~vl#34nZ+^Mؗ X \V0(=K|n:SL`JZ)BaB Y4rM6|-/|¥R,Ls|| Oj܅GiV-c*G’w4bm.pH%=D#iD{Ѥ)EDU{$[ʠyQrG*Kޅ//I!lS5Mp|"bLl]"/HQ&#'Z,td*& Ƥ[2sERv4w2B2T ÔoÿP̷2uV `7utf%Vİ>.:Fg}ݪ=kysIn& \e&)X%7{3pE7U&'3k4 = 1H#>9Zts[/F$]ou[ X=rxZLhà8N27Ǐe螇ku#^q#!6m]Ǥw\\Éz>hS E%?BH^Qz:Ed;^uFJz~r5ߧprO[W~bp"fx}+p1)'JO='i T9g@FAHدȧް[knlRA5Vn8 Eh/P˸ɎycקFa^G}rt"MiZoװv{Ů@2Mcx5*OLZkĶz x JHƁ--tԃ^{~9\fZyn.(iZ>"8chmiT%/kHQ If?lmE[<2=#`Cw{[{G Fm[c*ߓ+A0|*)]V+7kGiZDhIVŻs|үb⪝mKInc`y~PKg7R[2&@HF!pip/_vendor/html5lib/constants.py}w9+8cxXY%ꖏ庺jkI2KL*}<}Iׯ,F@ E{(2 7iVyeV~ (yL"? 3/=jE%G޿.MB?'e+/|U¼SDSVy/ 7A6*VիFɍGiFI5ȞAj?Ͳ/((sS =YJTygIxGIx&ETKˏWٽx8\zmm~0*H*r\ϕry"v|/QMPEw5[IћbHiS$?OggE=%%,Տ%F o ܁iZyV!N Q%0iF쉩6(PJg?Wu/ L;jnKNEošȼ`_;X%j:i[$Mu $;94y2F0?UOpZE OJ5_n{\YE-RSVutnUgrUĹ e;kkխ"~]yˮR7o/zAz8i Z6Yy[](+}VVBb hyvte;8ڔw;_&^zO?;tզ5{-} ~XV}U 0Oi޳5zָFjB Uu3Z"YgfVt5f\60e]Ό9(7q{NtQl2&ΆGJiRS/Z!@uG gU?Y'uX=er]V'=m /+[5z h*m.8{d7S۱ߞi9ÃJ_;zOyl_+hz.)dlVK::h??բ\GWvmKqUV{F5m,?6T5֠{WmV_C1*p-)o{[ε.KVzOMɵG_1_! Z{5Z뾂{=X-_,`\oM&3mYdLX&H$GW4fm_u6tπzUsKPnFGqgѦ__oUd+j2 1t]n(0:4lpyqebVi\u}6HjyhUhM'#vRC y_u.A6ngQߪF3Y?uiҀ=Lp%zH, jUBҿwԼXkLi݅jQk4ͷ|s{{v"͖ 7w=o*?o/2]`؆NM]Tx?Y1}"I c-O7j6ڨ/aӿU=(V=lbe=A{U4w7QN]a(4$؃_9TF{)ҽn1E{DYm1˹ IPDE=>{HEC:{{rm ׻ evSŠtpk!)jOGMWgՀjUG;0߇%/ hr#h~Ne?~-/sQ(N:z7أsjP3RpOc~G2K>'`>,GhOf{%\==YDaf"ZuZ16~9=d/˫p~?ރ뜪ڇtEbDYh-Þrlg+ V]{<%M%$Ine鲅_=W^Tۑ9w9ӝի:_CGj+r(޳W*+Y(=Ka1VIsGl2nOߚgЩ){ &d }!=CZDq{7@# na^[~{ٍ cN=vϣ[5rusˬ}1<ԩe XufR?;mze^|yA)sAQWc6ÕgoRj7LtҀW@T,C y3q4ZVhQ,bLA>W֭~wK͓MaLDE,b(wA e j(`s/YjG6-"n[ٔVRYXh%ȧ)7,\htGw˼ R/2/+[/ Т6ޕN+̢;MT~[48Lʮ:]E 3/yMtlO/hm n0_>4:R7+ < ~#V o߂Ȱ)$XnLꧡȯ5̪-D/ZBW׳cTsb3Ӏ]4(r q ܮVWWTV8)~~a_#nB/ެTJFjAc6%* ѯ"z&m)o`? OB?_V?EPf[[mxX^3@-l S {Z226-̶-<ۨ%iZU]ߘIN~[niQuXT'OCMT95Ipj~WZD~ekZ*Tni"\ʄzm h! ]WTU?l^c4D7Qx;O:ߥw+k篔S;R5S kh[hmj\$~sday\Ezʬ:NjǦڽt9IՁط_M y=|gilo(,Ty{َ҆"UO͏jG[o?(| gT咽yVϹ*kF&= 71RYx}*5m6ۋ-R14AQKm/4JyEc8k:֩2իQPK\=KofV˙TVMXO^ UI^5^_{^OUTx4zP |~wzi]pplu Nzw/z8˓zoO>*wbu.LU EEcU77ir84M6Mz?oʍrIOU.O.zg>jہ& g[!9jH<㪿×ҷO_^6}y緯.~일|yiOvF Քј{R voùhڧZ/O>645 }44py؍X L10Yq-r0,hj}g+jԠX0Ȧ&6 7á~M6ii1CFF3E6A6$CHx{kDDI 6s\Wr xDI5Se(`/uq3wsTT%ӞehzfxU\ơE14J()s`'!fX"^`ѨN]#"-&$PD,?ޥl YZ8pS;:"YfeHcRpAgfƩBY>*P$~K2Ks#yPUl١kR*Eʼ1sSӿ@O?1`\F :8_16C{jM2 !A؂6(V,1?t`J*;up¶q!%VB]O$N'&Β2V1􉃴8_J}\[H:w569ɲt_S\¢w)>Kv.et;Z -.l*\$U;=4߇YO@]~:tE\.DR8#r+dMdӄ6$7fz* oO'ed33\y$@&6Yi?1x(,w$V)_dH(YTh+ph~n4 ;9f~>o6S*$M+V3^a6_?_l@:(H XWBZF2/59d$Aox-c1c_NM!C x6@M aC#X^±6#tY='Ig2v/B`n*ت"i1Z#K k3P۴2zsͲ1WW @30c&J?dgI"¶r'U'Y!ޔ}c|hs^Fb%4@Bg0κPbά<`iK^j#tJ95x_Gu8 jPʚ _kQ}[^Vp؟:"ҟ:# qn۟C:5XsV\8g CHb}nf6/b'1ŶF'tl0cM"esz*V=6QEj4z rfщvzmZ^TkL!ZĐ/-9]fQu>q%+\0QG=l>1L}Ia ."/vq -/>myi_Iv#erXN)zmSL,"J =\G™AUXƻwGL"0A=(@R,Q`: &cv̩ p (|N^sht_v-58xxK+oBRNp0V[l Z:Wgb̬bo%Y;5\Ix'WRcq .\z*KlTȿzQFG:vE7ϬlC.ܞxgQww+,4Pj'<"M&vpp`>AgCFӼI@a u"SFJ[޷QvO+RE4>;$\g]dhХpD:llՑm2J28%j'-рNM@ (72ٲP9B c_Bwc&NJkXw*ۨ(C! +v{; @t5Y}Q6֔aMZE֟yU:6ePRZUm{0P*E[ }`5ܮ -vՖ9Y`,uh暼jw.ghAYq;$09_FߟqNű{TlS8>h8~o+`u"~z2#:3>3k܎0ٞw,a!Pq:Yc:s)\! :@eI8>0Q ԞU#>R)gLfT?jfT#n} UK4Ļy%i 7! P@k=lx=m"+xBPV^`M7i&I@7أ}= W*c,=FCt0{8<{lB:0ń(Bs9"FS?2nfyL%| @oaʶyes`}8Ȧ>}5Jfg|*idDgE8FXQu咃-#*";V>B!WV|."=QV{bm;/v'tFq8-;h:BR5;%0bPZu(<+T!NSӯ0qd0]F޵`c>u3 ,i֕T '%De C dwL57ӟEŨZvVN*sGqS$RU)W5|م3@`5gv lM`U3T'4@g T1mYVOmaʬF;qr}~u\ ',C? {weIBp7?k6!:P}L] 3]iokFm^Z .1Bl_I}H8Ζ9s1^qVa,dκ&#tDLƂ Mee qMΔ]%pc κ`NX08U #s3C'F)2YJc$YYʈ3Y:EGQcYƑMBe`AXA$"Ym$Dih8oQ: 5C pueJXv ]_},NHTnZq{c,'rij|l|e9d} * 8VmdK}O#1߇9|3 ܉2l93?6S/  -ewz m 33HC67RƦOò[a1ąhgtG?4b,䏝FXď4Oˌ?4~:`) TO/~ OfƍR̎rۈs🥋Ӧfi+><{y <7[/2n2x?#huGp 9d\rz0԰=${yV:P#Szó&';AE~@'P WO`< cOHkކ 4PPQ>80Evc(=DHYAMSld Ps -,bWX[PZZP BqEoOO7~R#ڋ> mhF8:(ѱhr04cKé[N΄=ؙx_>g8i L}? N4z>w|EͮhY;x(ǰX7F<F$&$& Ҿ!5b-!5b!vg7l;&a[Wg7uJdzY1pvޚoqrbЙ|.eکۘ0 ׉Bo>v Ufܒ P&6FZpX܎T#OJg0H zBoQ=*5Yr)^w &7"+ƌިpW>~y@=# cs'ևDKX! pGXel#;<`Q{(aC܄O;wR-*O3sRctGi7fܘwMGHAeqZpbZE vQHC"p&B*ݤi"L?rPHKYQ&nA1pf :˔P;  ^HTx( g&01ƃFWL39AbznE}hI_%G O),d2κ_ @]hB<{!!x8Bg0!YNj1z;k߆ !!i˅r,.1$((o5w=B{ fZ )cjtLP(*/0Hyȫsq"`d~qUC D e~"b&L/?CP$\58m{(8{'sc0"ᵈ)[5GP񬢂"sdR_#Db!0WqKh9g8%\}ݢb3h./u`HĘ3lf@>Qx״HDp KU&m']pg&`k&B T7A xb& @ *ل-| 6.cIڮ}u5< abC<ȝϹ (vy`X܂Μ`c{B!%tQX &@L9#С@PFZNC 9Tˑ@CoTc'T!+ط>ͧ%F=o\\/;-1D6z>-\H\Zo{,ZO֛G$DM#\{Z ck+QT"&!HˊjD `&}IJҶ ΍,RmJ⑎؅c(hr{&P0fUc0v HYv6ˮ|e5}puK>p;Mik 37k),v8 md. zV>=:ƱvLm duDH6E0[& K%x#T"W"l4{EoQ< Eg^y(F|g+/!UÁC+nj{h.Qw%La4`*B, |07WaӎmPU@JJEL[CȾJӫSX4(WAem>t`]yt_݋\^oVHトcE:`ch}Bu-8H̶I@Dd4#/D ;D-!(Y > >tFaQ n9IQSc }4C]ʜMIl=xct\M @XԚIDCD+8%NFI^%1ʣ0'/y~xU\nkVf!8Px6J) m)ѶuY:;f ÑUdmv 1cl bĈW~C,^ £J8bgz&*&wh2ZZ,ћb+ۄl'qv쐚PcH5 vwf!8͘"3aLxMBH^*E@JldA7[ ▐f0ڸ1&~ ,҇?PXiUPѠ|Xt`psv ˯A`/^%|UBr J/bSK-$Dz|lVr1t|s|8?e5/U1G B&ΒSeG-PÔ@Ǖ&q!!-_Po;qq(*2լ;G8p{XdEJ5Q=`3ZypݧAFr[{쒐v9??o!`8L i:pr0NևK7Yy%3 bU.&6SZ;+&T/+58d8jY KP2mw7-WAnX5'q z7l@N# ^CzL`8VBJՇMAκPzmiDΓ6 s!PHBg]0I#@Q{WzuX"JB}4W$jl_>\WI:$b㪨ch1z0u u'9iD|I%HQAV\N|sRj@d}Q-q?'!`қ#aKىC h<֔>!ݫ₫`I(8bIye273l:`b_݈۠D/ :B=pyoa8ټCy`BiK!%Mq!ܯ&Lfs>gTBfCp}I35cf5DbHN8-LwUIP;X[4sE YIAiE7l)EDtaԁ 2Ò S]2C &ҕŵV;NKܧa^ą'BpP{}.~bE+ ߩ%o[&B)5&&Qs+Z %Z-x1%J?ExD,l 5,mXqkHOUP$`0+7.j 魎nLX(- YG#:68EI"Jz_xdh5pr-sL~ԡ_;آ5?A0ąQ !  6xl,YxW{wrw3%HSD p }ˊ>̍,.&,`vۉ w(;ppRA#UYbͮc\װͺhYѐ`FYc[W3zη#]űκ`\F)`>8CFxtڅ:#DքO:& Äa3P\-?LG#8o mj*!EMf ǽnK !#}cV07N$_Ayy`V:[`^M`DF:HYSU>).R@ "D;&p]B9Ptoye*HLȘh jѭLO<1~t,h%b(?d"O"7f@OnyA#Brj+NJ6!ÍlcBe74JƸv2MfOJ6S\+}Za)%N!x; t)R)(dC υ0L)ֹO[C@yGsL`^}' b]7T o&f6r5PbC,jr FRs9[jcF* kK<9bج l>$4D. zy0aT!;~bn-Ԉtf'W,SB jGh3_4%=4 b(7NTdXzpz7d0}OpzF+`0\49r:$| rr=_ڥk/_R`GiXGvN=RHg0]6 <](2|CD!9ڏ (4aTP1u|_p1 78t_SCȆY84R+Y(''xX Q9|뻢_t=cծo[8CM~VC̫R w(&`l;TBc)EL0 / 0tNmxs]sJ%4Qn(JWݝA_S DS$jKs8qDXƈ'pb"P[RwHMЂ_nϧ 9CQ1lbIz3)dy,N;bcYi?nkwSI6rƲx '&1c}R,+7Q"x~٨ky9ݬyɃ w(4/.XeFТ$ a=lGM`_ު3%D?ºVxxnlm@.3¿3*W8)˜`G8O.ݓ*BE!Z*"o?xw,=@8eߘ;XFw(@\q'յ4k`*̑ΜP%.(i=%He\i3ttʋ[ J@aϭ`(6-ҜxhY`+*`[ űo+AؒM!oD4EeN iVC:t(v %VF0 xS"ۄ_"#\;(:ۀ)nADB>Qg!UtzZhnSw)NwI U Uې!i_RRF\g](\ɸYsDhZ]4i[[pKh/ gи|ɘR'fy(0,ˎe5sX8Eq޸>4Gm'>!g5|Lp3<:BIi˹D7:&/(1`  ̆Tc0}[×Xh`:1M) >f;cTo3|Gr4ؑZ7r@$"QH .$PI=zs9w8G#>aa*>ćt3E~(GC$Fm;:Tw/ dB^SQP^U*(9C$a)^!oB!XaA IVu FGt <,V'ʎZj` ;hp%Z~\rխ8Em#H S "q[{  9kj"'6 @tȘ;>y`r'j?vq,z(񎾬h],*9\TFi$zgN`ޓ :  `FhR[3 Dl0jncN=i=~}M{ЍӶ$V{e`~頕1`F~e:jaN󴕟ɌRV~&;6턠 |jGF~Ѓv\p^&>>MBAz+~(a)|郅Q:Kp4n[Iz.)Ȥ|P>}x6ϣ_oy,/2: ]8y o(в=zEtW Uof罛^oZ(ge (6~ы4[~3Nyܦ?o/}X5^N»HT0k~m-Ǐ?zQUY+0Ey_=e0p.J6e TjӴ*'<Íմ]_PKg7RD#pip/_vendor/html5lib/html5parser.py}k6w FS{ٕWv۱?ʞ}Tqr$HԒJ*I=Q< 4Fhtϋ|պ ggQ\Ee+r~YrIuL9KqZޛU]l2"llIxe9$=^ڮ0&YUY$^dO0+|3R>MG$۸!Dg2ͳo")W񔼼xJOG$jE?Rx12MUJE$%٢~0U\,zEU8,^}Q-7YEE\љ'YU7ezBT2%k]V$yU9mR ~=?!Vx}$(ɫ/Sn;wތ#|<ӑ:>yI&Ţ<h}狪Z=xl&'Xc rW$OϟUr eX<߿׷ޝo>]\+! lF9:u6m/|} D >,#! QBDɟ|L+|nbɽ'%ݺބ OrhTO21%CY{$k>n8C޳*^j}LZ%>YУI8yاC! +j %T8)Hl! cϣ*/ELzsJaþ$cKZ=8}39C6t;5H1ι|TPl(L dt# #t_(K,EBg%[Hz K⸆E5cNE01BEj~͝_C1JFl,HIb [a]ѭ:jF cᵲ!Hڰ`\2NbΙ"}SXyFw50|\5S뤸,уh&KJqHy9U\qQK+&(6{ X6ułj@%#(Q@233'xA b?xZ=>Rroђ`")NJmSWn lBAV+0{:8'?ӭwS r]\o$]@*sb.QjKh _ӭ)5Wq1t4al*KU /V>U0A*`{U+db`4@i@Aya" dY]㒱#*~6c=|fU ' p3B/іbN@Q:~dy_}C xf4tu9}y[|(ô^paU?E@qFT(Pjf-i<|:`gpć0&ŊѨp]noqVty}e>?F+4RafVi2E0K;MUHC і/3vYҍv})y >@y d^yp:*~gQ+sYSfRe1;^)ϧd]+0*I@rߪL$z,sVb`[Tj[{Q.YY :g]WVˡgNǏ>K1z]͍ eC{->6)myc,9TIgyT ZS,_PU qb- S x{-x{K rxVhLSiл0`C15:iTO@2ϸO$-nt-f"[%8iB\s䥇>[ 'P :j1h1 Nrގ-;)E[2C=?P ^ U *փP(7ATm=Z7t:};5(=d;5J:}UԤ*/hWW4M6~H.X/ӼD»ށs{j=^f&%Y*|mzQVx'1`+S%CqlM覍??3wu1_U[DߔJќճ~zZQ8~v.^Hbc¢bHXaB&͆5 ICmO1J~ڰ$s_{K Ժˢ{Z  O!i:fG}ʁ<|Am,*sngp~NIN'H8 $z,eooQŽC3tWTBDCep0 0~q}Cm:>GըuF ?#6Xڪ>b5ZkCa5`kJ#Aqi:q[gt#$A?Ô~]oKD!2/tч)N' tsٙW23ov1CZA5rnPT$']j޾]}7+{@ i&<ϫ2OO,"_x<]/ 4hJ=j[qJ'О,Ps5tFd>+g7e<qa/tfx&~n|8Qkj Pdz2 Yy"_3r_n V<>xXź)510/aT1#Ej 8dkhvu TӤq*|l=!҆a` ooAB3Ԩ;}iD>?y󿟼 n IrbYklx`xMkphyO\'Y `0 ~EoNQ( p>ؖri=f&KioD O*./p XC泒;͊T`J`< UQtI{QϐȣbYSrS?qZ|ŀv &J0J< pDϢZ(B9>9)>eϿUV1^RH!~w|k] XkֺZaγ3tŧ mW:N'/ `㮓xqN5 C%czQZQsO- p+T>2~yyXvH `L p >1; F,yE8WPUnvvVyEɑ.9Baw =?yIGϭ؃Cd@v_бHJ73蜮+2Z# C)G]^&3T@[eCu[T I ރ4߀H5nL΂ Ž~x} ʯHQ$&n rB =~CIpTBZXP~[ZQ"C͛ <]rSZbSJ|gT݊p)s`I-2*WSxCqk1 4)4.9-Q ʱmF#ZAHW.@"Cb"aЇ/?liQdaKJ `ۂUT̅WV3'V!hM}>QdDѡM/V J)CUUl[![@,H~Jq5AӑPf G`IXgW\|-aQ p︭0KtSR8`:jI( ĮN!7ӽ):tJ ;neF@"FM%nX/9$W J*O閮l/nهm7H߼~=;NNNVj`&q'R47rgĔW+կ Μ-54,Awt_r'W跍Ƣm[RbA؋[PiۉֱLu S߰[_LFs՚*,]EanO V?V_uѯtNBy1p[C-(VL']n}%hpQnmeԲ@bR1:+h\e%%)JH02P$*7ʬc+9ⲎԙrΈlSz q<(tI wtx(zw<|уM~*.9Ld2"hH^$+S@)"i0&oǽX4إ}tGCO&9N^s 6_՗T}|Yv cEU;/ L #1 L2* G4`{~/|ؓFHir r9Ya5BX|%$=*n`p՗ i%.޿1EJ3Wpbd?M?=|ttT)`Ҕy P- P @`&ݤrElqPjԜW@r ԉ7Oݹ.NfE<9v@ƪأJٯ"Aا.jGI莦ׇ"?=Qk@D< &\&nyEB-_i]Z1WbA#Jo' sbܓ"GP#7U JE8cEJΗ:@\=z>ě[j&u1FfFUO{p=m|;؁0v!eT4CF4f-F}]掹HgtvpM/j ʁ#욆űqZ]1:wIz\ŋ6{uI;7HsV~Vc0/Rqs Ȃe Vvw1߈`Z1o n`op8f?fB!|X=nlj|c,h+t. Aҁ^k犛OVxF2F8c40i}{,If*pr[S4{F&\cNߘw&ʆ'jgL֠Nԥr820ȭ q5s(Tw[s tV32WiL>=5=lPl g;]kcrSQ,T`98Ϭ=c]g{g*G5`[4-*ut %b~ĦXh~늝!_tM A* qx 2q[ 9qh61x_WRWyW) Nq[v.%Dn͔0OgEeYLy% !I0gCtBQDΝYoc?R ƍ¨MdƏZz͸\Lmɋri[ъ2:aMR}5%74 7hd*j]z8IR!q_m]΢{|+,A)X*D^DڔQQu/wVUGj׳ۺVnЏ6jOԆۚG-33ZpAq/UMbpa&H=%qaYʔk!C0{_qSgyD E"a. Nd%mĦoUvχ7vVO(p0K%:vT Rй X-{VOr$D]ӝ/JB_SV >8!)Y+C59Wh =(RWtz1guY8P!K"HQ MfأܥT$=!p&ئ3&Rn2PM)\'i$豭!VƬOyKkKFޗ>g`n\AQ z^͢`P8rr3mO:էPKs5]aT ,ZP=2,*yXPgEp[j$z/{!qT_nnjx'|[wt5CЂqN/1|xl[Þ%ˤ mĞ͉7QKΠ^Kk#T t>rgUcr BXg-W|5KBػlW[;4FqY`*#HbP1:<],xNcNLu(P۱hZ?m%N!PB6s6`#סJ|8PD  8`sXQH|.>U1$kHT؟ǞTXDX'4{\Uuuc3?l8 Xr4Zv>%:&+۸4M K6KiqM#\6!e:GOҐ@YǓb"gBdAp;⣴S_)x3_]EԄS$fK*WGϸ2/#A.];"sAS{BS1|w^?WJ( 9WȆJ8>"r*$m`bm F4)1'pBӮ=|zI ḉ3Lp7ӥ'Uƺ!q!Oܮ;1(3l྾-$V>2:Е >:<ydYYibQ澅UocU}ц;*~H?U徒n*.N7ĀQNS&@0oʼnmDh;Ex\J2Φ6z1aQrx nj2 3A%3g鵘[ALӦ1bg;B k `j1myCʐ1$`fCqj 3çf͏C77y'3s:F~rCt U.IvSBݧЯrZ\y3OM>,p2sSr\ێ(BӔjU\$T<uT-33}+4 ;ooRCNqtg J4םk'PM.7zNg)8zqg$uv}9^LmoiBg|nV%%b6k/?3 Z^j9~ ZAv˻CԶ1DL 1ޤ'(?a]߅юE0Nid"|@ͬ6 lV@&A䊙\ZGݭ]XZwVꗐ1wW w6{wnKu]bO[H؇T7LE<'_91xAA-|~ w\fb >z6Q.~گ;Qwkw.։ov9蚈Zk4TuֻggfpE>-=}?wJr^ ܫe( se1–Wꋶ9F`qiyEm\{M{{Cm̡‰,WwKJ]4^?ذ_avҲo(bE,˓͈zz?q7`}>0 Δf))$ .?`1/1+rRfE'=AP,?|ߔoxFVt1K&88H4>'QFc>'Zk&6\U!J! YJt7<# J{%nbVRbI^zBSS|?iX!PT^mmJM~'3jmPxiQ h5srAʪ^Чevͫ8r-6qVo/X15׹`}ZxUY4i]-`6\w|0$/D!p$#t axbH0:!z Axn8-._!~l-Z隬I>Q]04˘َPt~(jGH8&vw'8ͮc"iJ̀e51|#i*v>[Xt{c3FXl=ݽu2x?>^`hC$Yd EbEIӗuZʻ ,Hz A{ 8:.0ds}\ȿLMu M[յ5nʫotM6)W)He*=Fus2p/H 1K^W$5pd>'s H`~?~QO S.1`ԔY?4b#d~յ{۷: vW2G=QgG#b~s„gG  ٕoq/G3Ϫ j|P.M} ΖK黱$5aگ>64|q 5n3Ը0 ˂@%B ]߁sAJjk\ByCJ)!-/n-y@JW4>..i)Ǿ\bDW4:R!0ȊLVFx(^Xm*aW6C㚵DȟK<()(!Sn\q#pO|=c{ Vgֺeq;8֗pOR<H7eH-9H徣U9IH ?3oo,bYJ{xvo6 cXvkvڌ}* mpXcf0Ku7=6П֩Z]w̝3'7Q2M3r9vg z 1 C$^@-bٓo#4nڮ#uH axN'R4ΘŔ(NyTK0'㥖W/uCYUdz܁A-URB+|o F5DK*.^pt'*i5c^k.*w @Cz;n)"H#WO-c]M5%["s̗nC4[s㶛ND{[H' H?oγٔ"6o(82Q(u'H%(L[A 8Kfdkp8sXIP ':iz$'Дo+ɪB:'t^'pM*frvEdGx9/?w 0 cVUn\Ֆ Lo ؇ϸl+Chqv VhprpqVOcHӧX.?Դnr\;6fc$4S;qHwI9{j5 QKT:_OS8pekk?}$0CI6w%"Sbs;#l$i#XR=1P8|ZlpM H/,(RHq9G .Tb~E!,xL_աB%?†"f:J:+u޻:8B.Bxq]{K=e\, Eh4$ uڎzE={gg/&7wܪbӶvjn}[ܼ@7E߮Z{|m}f٘odƄcnq6UC\[*ntz-?\Ԅ}ejJYʖ4NE!hggeW%T|d6"5p!$P-\jQdV E˴#xj[ EG)HG:ߡǗ??y% ȃw\H-&d[Y=d  %DqG£4YW#mt&vgOh"OHmc:&c݋}w{)&$u؟|n'/$m6BnJ4fAQ ?D NUFh~u'9ve^Y #gZ,2<*d4\R+n}d3+>PXoG+Aj9.\"5D̟XEIuaeoV3LM,0'w 5vC. 93|>T5R#hDSx+H'fD5_jk%u=u"%G Gz3o|]k9z):N0)SѼ{&1eH_5J|xkKQRE! bCr:U!W:rfNl"iTՖ&#W$^رz`1%6.2poέĢ1n{]sz7UB>IVv2" sQgŕ<ȌZ4*H$ʹx:PaP ue1n`rZaN-Z otiOҔ;/{ FeLRpUęLy&%1JE1>I;kc @Yn:keG=UsNy w8n IV͍BSd۵Cv=,h醼y׏=4X!v{;1ugB?^ʌK8҄beRv.NܓX(D;ʷmGa{<&˩$uoN>̦۫\[A?ؾmۏ1YyNDϳ-/(Ϣ|f⒒ ςb?i׸Q5@3J $n0!\*;J+pvӜ.ږkZ}qwl{9]1yhvCV/>$s}G;Q[kCt1Kn:QZ(*л;`K-4ƚ ?#1t[U݋xc0ؙ|䚎EkL(M?KB4 xAڞZEO?֯Ŭhy(L; ]==4L@|C~!ܤ !T oZE7q=vS:xۘZ}̽v{I7V:tf)iCl`>TJNNWx][XewBVZL&.ٵtf.3`D}*qs^Oٻ!e%)VC?m7gjGaϮob7eK;bpYym93Y$k2I h:_V¼'ðk> _Ivׄ(h^рt@cnw !&>=0@YdX5Sw-o0·˾/c5 qg{e$UwWcn_kU(cI7lle#0H]mQ>aƝ &j %6A(ܬ7-Q'DJ.ڠlX~g{iitBvLӷGz07*,vC0kOQyk, rN+B:h(EJ3);8KNMoS9yDv.X0%ERW=` {\IEwK4ZfM YLTQV=ы5$F*[d&=ho칏Wj HO#Lb3yMxe*gQ<UzTɦ+sE$T&dۓ*٧ݘ,4c ͜mu9ڍ)0]r-Õ0iJle8e8pg^Kj=Xqg;f "6oߑ{$ >T<!}E\5<#ɮ9cɴueYM}= yfkGO2DUJyL2iH P{sGeڸZ{ҖYքjU>Z7KqEyX~.sf(Eak'Y i(OD<(ͨ3' THzA@*(qBO0H%g ]ck  ={xe۸mQ3(s/<ןyi5~mΦ1A>q^xVcQ!FQ^c˒ʈW?yOZXBx_jG֚ysU߭u{ r)T9iNi\ Uv*]r$8_S9mu {{6no]1M2"%@M>S>{ZlEbo7rOTh3 ]„ŏҧKOƋEׯ#rPUHUzϹ5 MYM𽙯j,CE?x?ځk2d[is`]K-r8Ua*T>!srI0?Teb"Oug.jJ+I9KOfAvv&RoukUw-%C<\зnЩTwGp҆c&!D񄱝BJGy:2 qfs*v'83^Z46o+&{kW֕!vjxz< m#N۠܆fM6#_(f0GzxgoUmI~XߐIz+޿Ldm;Jwbn؊"7'T\3ؚԏ-DWM甾akw<<>U*PީZ{;N*F?X24^StG=ea?1Y@"rb7Nc6H6t Nv%zi4aV1L- 7#lB9*8XkqPTp(7?nWNd5]C H G_ˤ@"7r,PSNܴK`ZoɈ=ЭHﭓ Ң8QZwCu0o >^5e]#2zfmBT\ By eoZ:v[v4X J웄 h\tp &<>[,],h87S wPuֲ*Q@"~rͶM~ آ:wןnK^fnQYf+LbgklM5KjhO {ϱڝ\ZTif Ŗdw۞尰;͚d"o,Ȼ-b_ &$iޓyiUG$u.)b\Tl[R%qJ}CNW|pN[hb^b@a _fQL<0>my1K_]E>vM.ߛboOrhzY @P9gQHD/؉iî84t aKaBU([%'(BgT$LLP߯c>7xC҂<$ i좑a&"T#$F~ 22!A:߶7VЍT|FX8OIq&IWit!2%"ITKϟ?O2-<0ռ/@;l:0Z]_W(v0fsbd0YͶa3p>JjU9`|Hh#lЅs粍&XӸIۋeT)m 1 xyfF0c2hnLDl>Zltmif'șPU32Y`H)Af!9!MFec֖bƯz<:q&"dqL#&EgK:cA/ rŃ+T`Y]*V M?:|M!u<9)ցebkY!e?6h]h`@x`s̬~Q@@ MQڄdHrlUdzAPAUXYn"OHC{Q j;gú=Qy`Ĩ )oPqdG20LZ\eA4Oޅ :c0`lٕ'$C8HVP*ttn]7WLNbc% x.z(bpL.Nj1Fe~|a { ;qI+:Api5ƢңR09*`B>kDP2XXIp(^K6iYS^A(g[NGXN*gfKe9c9t)?c "(fLc&cu&? '92ae:ֽ0 -d^'vj%,8( !l%NW2x! [CAS PuJ"%).X=6t G\T7 q\-ɵ&İ9lԲF& Ag¿5ƶYVؠ[C]xlPeH qe.%KZU5;$p1uZ;EG8 Eyi@t/ng*(7_SnWٵU[j;}ޚqPAe)FTY Q?JB4hB, X]4tWhu:JQFo:-eb7uk]3+0"Z*d*l+?yM-r2#_+srP=!˵:=z0 ]!GQpPLXP`+YC,`ŵs7Y̔xPBt"WϿz$/5m-QDVbyݾS2 ??#4D ,n( D^G'?PM~k0 .$.#LsT/7bY՘H'cQƱ[ tg(m2 r7u6ہ~[6'7Z ^ŕ#fY̹-;w_Yo[ s :1ea)JxkMpuT⢩{.]Ie%UOtvtۡ95hzzDI::z!.囪UIx3xgс>kV*rrviS Fp[ݫ_`kjýٺ4;vsQr)e}%чb"4Ǒh8Ock_q8;:g^O+ru8̍0$7:dzrO9}Pw9tnyqP/'Ǧ-XQ] զ v#]ޘspVCΞ-;!G57>L./˫{IvygC"΁g=SdG*44'6w1*^3v],mRh~y"zkU_l?PKg7R]TZm&pip/_vendor/html5lib/_trie/__init__.py5A 0 }E,_x)S;(utUcIt;(ڜPl^1ŴU{"zlI6ۙT*{ǐ?\(>57PKg7R灦#pip/_vendor/html5lib/_trie/_base.pySKk0W MRXC ҐCn!j%3#'kJ{%˛>Bu1k;R'̮@mP{y3lw-Jk,Da% o-6!byKuqDV74wu*9ULcM,5RMZ1BFjO"c]5Ɓ F+ٯÉ)k\XUmqhmHDkC* q5J4zÐjƧp7s8U0eH_rP݄m˿ǘ[2Ae\?=K#6'dԣ'wE63L=^$Gֻ rëqʤRQ;/pw0_Vԅ܈T&O5?}WiYh;E^79ԁT1uE|nPKg7RKOn pip/_vendor/html5lib/_trie/py.pyUn0+>Q :E{ɷ hi/JI%wEN@Q,pf9[gO eۇޡ@κ񻀆ɓ5j۠)6RtԕMc]<<^;ƲyÌ_Rc&q_,jŴem [иcٙւQEcu[W/".X4s։ݽ+{#wyviJI7_g؈Ma#\:K&D.f ')jk\G%&rL܌XL0;-:#!b9v8ó& /; X&fpݮ:kJT̞rIjwɖxDV%rsrY(_1=$b]FU >meF JFpe"BFrd^voGIb/Ĝ=ȜHRSV3^<Fl dLoZpߔk t#0-srSy#3 #fۘ)ֳ\ ȶ>ef[Ú[)W>*uY/V>GbG o7r4vWbnZFCȃSA gW3^U1/<5_ P ^j{Raz5\M-=PW][wXQ9j[x?=ܞDT^f w7B9oP%-/PKg7R"ĕ$pip/_vendor/html5lib/filters/base.pyeA 0 ~ >k!G*U,CL1toՎB[_UR5k^`+K^f&6*>s.$ ON͙d}Qi'P%POrc7Vq3<6w2oV~?ѷFJ_u_PKg7R? 3pip/_vendor/html5lib/filters/inject_meta_charset.pyVr0:Ì&I'2bԀDВԓɿW+d 6&NݷV*X5DE*d^F)KēB)UQ.*kK cq<ϋs5 ݬهs 1j\47~, eR.@8 (АSU]0e O!W.zQGЌ;n^qΫs3Lq,v7!͓`F ; [Sz;kA[|8NFKSTJ6>:JU-=(aPt[9\R3HKbd|z=:C ocl 1ճY>23(q ʜ~r}ΞfX|[!׌(C,#xS+D.W  ) t hNk9 73SB0{V mElҲ'n&'.Iq𞂻= ^Nm5Bֽobxx @_nSSǻ o0]2Z1\"PwpU]4~ͰȿOUqϼ9CJ:BjX ygؙtX:sa:&I伟ףӭNk*~y^d!!ǝv֌&G.J<K@bКWy}ဦ&mnV2R#uن٦xD9}W87`rl:? 6xIO{CScͽPKg7Rdl;$pip/_vendor/html5lib/filters/lint.pyVj0S ~@.FBanJpUjK$F}G(Zn"Kt2 㬲8QJ[FŸC*JΡ"Q)ƹyn s(etdkKdv[bڃnي%ҚPM4sxV"]X oxkZ&}~(!,$i#tEz~/ɲPyҀZ+ .ٜ6?9h. >2%> ZI?Ō"q̳9Ug%(TFG66DNϾ0UIt*`;we<;Wk`#SO&m OlVb)KNgt6zFֺPMi?f=Xbih5>\92U>Ӱ n9+=uoWcDTE 'ҽg$t6HY=E]ԅ8دh"uwM L uk/"2YY/mCqm<,Rn-Xj^O+.?!xJ]kz3RO0F=Rhn9Έ3QM gydu S<)\$)[zP;f _6jZ\BscaASĨ;}OR4/W˷""+m(`+0OPKg7Ru*\),pip/_vendor/html5lib/filters/optionaltags.pyYK6`ր"IC(CC40h^ DwߙdQeKwCHc87xUɖ\.Y^n*vV.sD~\U)Uy\f<7&+1c^-[l6K^Y~g1ɬ.+fj%䚙"b]c}v9{wJJls Ft&[6xk[nX,Re!v\:F)Pq2 q0r[.C3A)Z̙ޝ fB:wlrm?Yߢ@v[37t9$Sn 7<*^ 2'nw,|?TbPD<$T! }sL) 3G˶v#9Wnw'фFqƖEҕblb Yl%*sk v\ɫW^˟20rm:Z[o1 cQ5c9S(q=zAxeOt =㛵* 0Zn-](79*q%%X#b؋LwZj>];Buyk >kW 79tp͈A f~ 8#i=F ֺdYDfm>Iɂf~1fl$U5AVJ.CF02C$TҜnPd<\!syq{׫o]YunZYu~xħSz>uOv(rɔڷ+FhI cP:9{cAPXaҸHT&ܚ[xBlL3` H(8+ Xy+Ms, EJy$Q#cAR",=bASi)>. 0N-0%ƃ=7$<>؋Y0R4[KX(=㊸f`]=H+4EřG"GpX<ze%x!a$nԃe^EXe"Acl8|l)[O={'<ʼnGEGn~=rsh̖>9tkH%c5!>(|^O\όccR~} D^r=zx}% }:\쩭X!S?TdaJ dO #IKqICD1:'l&,hApVj-)=(_98;g~]+prHH;/>IwJFk:plT͏3l:XIDkG 8Hz YJOmQT@cJY<=ğA Y39En"5HB(_ъ"(V<R^0aQ?--)gEd6AnPfqI(%?>)#d~nYqRE5CS3P6âvB3h=C(uoj-*3 QМZV~Ool`3Oz5, yi,VYnAX l0K[*[ea;, trvl}1R IۭutcmQ@1k0gi0V:T`TQERӵ  V.nxx˝Yjװ)gtQ[;; ؀͡K+x%\D7²% Lx f 8gkgS,}d ,+\xU‘J^S<)AOCdjk'av&;5JۋuI傰3yN)QBAA)@LrGs6ˡxc*]+E `YS]`| 5&O u'.mCBD#`]BL;DoLLgr6CX"i3 T)!iFN s'9vҝe +R81LLz V"LW)BOns89q.r]c+Ē1u;[5oݑ ^`E劲K LL!=2;S]NEy3m},҈;34Cs6ltC1e/!'lԖ Z8mnT_,.\%V&2DZfң'H2d%&ixH>"_i1DO9g0)`;mJhdL. iXJX`$u(fgz:&4)<NJZi͇l?eI1ߺ^4GDzx$.\Gdivl :|`)4 ,(x\aÂGfBa!ak%QW "QyS!w!54A-\U^.3-ڍUΌ`f~"HE>(L39xWcTTJ!]8X;zYVMFpX"Qv,(uxl!);\_9ԯv 8\QyϺZMG*wC B@IyƢ!,?К[JdP8~[! .sS@p*.wfdV%K~UBFeHeLEPn6onp}%jE6(,|;-8+3H_Lx|y̑{n" R)[Jt'np|O/kj,5u{q?p hD\IA&T}Ҫ8j-5ټl׌Ub›&#h}[Fµlf-9ozCE%5 [q^-ZÝB &yf} I+Uն{ 10גɼ%[ O hJmI=LdGD#9˞ǥB^6Id}6̬rJn6ֆɩ 5Iij)ØG4M?x 軐a+ ymIAZg4mtJH `.<gdϪlt`!|;J{xHWJ3w6d[dċć^^ e3h4@QsJ$V?qyjlpŒ\S ڬMOی Y,XLWǝDAΒ>@st^7?urNs|~G!mzNB;5|^|N+ka4U1v,Hf7`ĠT`aC%nDziz ԪlM M p]m~}yX5_e-]WKTJ(W;eItx}?xdkӌ˦>~Diso|m6l˱\;lhY H_f:xEY 8l `ڀwOhRCC2%'2[} v lQCT5)MI>n:o]mӶﺼ 7yAtWZ.,Õd.+ D^Ug/ub |d^ UeD$e|lŁ " 9U0ЉۍŪm{,,I}a 6ҏV~_._\.O0Z+{%>|xwpq9.{1ls=ad:1:bxN |C7-[{?^\Zu_޾ɇ^j_mmfu7/`-SiZӇ_^meg H7@T|As/'f2~^|D"e/.V4x~ZMEX?u.ؖ`ً k|os/(W_?}xΆɵIXJQmh$8r~*m S\ʸ+Vyr5·MRkO6]4\񹧭O׶oV5YbP'Q&okc-> +s3tZu!{ M7Zqwσksu[!;:L#dHZS4pdu.δAq0뉩27&S+ߣ PK¾լYcPxBLi.WM7rǼD4C#,NM97!аVT$bH /0v?LM0!`jЂA]mv} tb 3ʼn%:ZVUv|@o-z ytc{;2'dx}V`ܣ!'8b^2X|NѭӔIբ,00S$$A~L0fuHK,NR=ڨ\Ur2x}wZ}[. Ls-p^İaXG[UNqKn[W}^5?]^EKF.5Z]52o}q~t:qwxC3^]uud1XCl!w^AtO%JqgGr/c8(̍JO%<0H `J8K#&h<%]"4B&|9qVO'GWNo_^OA06N \gTuW+9 $H0bKuW A7TpW QſqRP ڝNR-֚8дJ"rz1 m[Weps0iR2Tq,$UU:plH&`.4O X98xGJ}0R5Y3A\*U7MnÓ=zXU.s?㩱h>~ HչyM֞WF_'Wg'=_f7׻~|uw7Q4\]G':^OO&Y̱ ݣ)\Ͱax:͓3x4khdzR&:LӁ>+MSRb ҂`utm,QS<>W|\^ u*g+IsVywݜ߸NC>+V@c:<:En DVf?T+:~:z_/ﯣyz^_VO0ݽH>s}??s(m344|b)9u r ?^þYTPKg7R`r*pip/_vendor/html5lib/filters/whitespace.pyMo0 6u@CZ,= CU,܏QFN;`:H>|I顮яd?AQzZ6ZIV(XXpB9 lv^hmZEG:- 흰!c=\彑:[Yrv7_ծ^}~EJRapSkpJEY[ο hqηF)18txGN R`O^X݂k$#ƺ1.ET}D%V$= [-uPuQvXCD>vƂ7Q'QCLq{v8.H8L|h[=a|Y+]Ik3S]n'U!܇qWz;}[sX[:~8v<:{3[ӎ覞g1| I*礒skxGf=O>KT14~E7m4vcvW/PKg7R9qZg-pip/_vendor/html5lib/treeadapters/__init__.pymQj1)l<" XhRBvw`̤IVlZfg8+U.`0‰:hGX{Yi!O%[0&DTjv Sܒe 9ݍ/_zgRHY sEJ򭤼lLՁLQz>Ɏ:_NVL`C\ARfS3i2#XQ =|9CgKxqC PKg7RR)T+pip/_vendor/html5lib/treeadapters/genshi.pyTk0~_qhl$!Qm9jKF}:N8-}X}J$ymjŒxYIe>iYԆ%9RP ʌ%7LB{^6LRȷ5-Y(*h !Z/CFv_,ǯyȤQ♩`]GAQY5Pw9܌=430D5j,ŋMkF1˔3`7R;w..7췁9bw%z{fq=UB|GDⳐdqMB w"Ҫb"[5 4oqCgEVOɅ -&o UfKzTVQ UҘ \(ȟ;&¾~M暽jw7Qip|~/`}k5Ė#-jb-ķXqPȩ}ܚ kcdS%BjۖD"C_+ 4`/QB%\{T!7({-/e5 $꧂wz:>i\3K~+5rf@ L~nFPKg7RiD(pip/_vendor/html5lib/treeadapters/sax.pyUM0W :CC!-`8Q#KFYJ{GAaHJmMEQwX Xy, *yNAei*,hrب܉cNEQ=A{o3aKӪ1>KڻHZ4V.Z<h[pX(S  fkE - T.I hz@+qp5'>7$"R1*zGNJI8K~Rr@) o 6,ݎN㼁a؂!zhHm~3r.(`a'>rM5$9I{t jb/@_/e˛=?6!i/NN޷԰ 0Q, C:ti8(^M6˹n^t?k0:9Q/Ll|K,]}ݏ[\JA]}|!gWե(쟢÷ +Jz]8~61Ֆ1b~n4M(V87Ipxv #8г6/z5cLP=); ,V\P?}*@zG͟t6 V4ͪ,#q,+N@tG\>A&2 <&JWHK,`x Ŷ 695;O9ȇt'3>\ÕݺO菃[fJI&/Iw4uTڨI3 r Ej$2?Ȝ/4LZ 89UNOV0i<߇nh :vze1D J,] }tOpTmO{kKlRs tC3?6Ta?{1Cfc~}ׯ_ke ]M]ju.>tK ܸ%,!R)Liul|uƶ(zߐ+m.OIL]赁}pLL5PN0 |wnA!~M82YFXҾԚLt;Ir[o%f>f0p|C3lf!Xs(h::ߩ }dvY_:O4TpXq%ߠrpdaRW>5xsZ_f'^o5>h8)pip/_vendor/html5lib/treebuilders/base.pyko 87P]qKZM$F{5%Z*Kn53CrRCQq]r^7Fm5m#nolUcӪjߧl!K-U=em-K4>["EPMLj.+RhDj+ճJl<2*qYkјQ[^ }v]lÛь7I'l5}L,JÄa׻V =CFm#UÖpc#Fo '8{A 9{jT%\[x1 Efn2e@dJGw1~rͦL͓)T3aj䠜Ci U$阬vm&EPKsf5FB8Wq gggeŵXUR5΃ lu* ip!`v ,90Fp#a:^x32F74RrBiքvzypf,hv$``jI;˶UC6vKol7$8qU+(v[I?>zKV㱰h c/[y%;O#T#g(` x4fYepf*m٦ղ.XU"(捬L cx@BpMy-T W|2^s^fw ,; $n6S@{q1GlTd==O{htjOdrS Oؔ`vrS<6zF~C-4ILB6t=i3dOQ#BM "qGVm3 :)x4 yplZųQMO~]pçZѢZs!SUZ'xGpM҆7dLcS," bCDeCB3?w{ղr6_#!@$KH>8N>&KwUSP/Pq˸ՂFz5Z?щw4ygU9\VתK)|~ymse6jڐLْ1eh;{_\ ]i{񼫇}-8FO|/w-aCfl*K>:]f72ɯTP:8zP7|ttX52-Mę Tmc(Zz>]fGFH8me^v\3٣Gݮ}Sfɓ'>PH}y`q;l0idi5%΂-,Xz0Mz)~dj- !v_bꕒ؟β?%ZzKIOC):`K)*ԙ+aaH(|Erv؏gGwrMIl*կ(7pZT(10ԍ3"ݾXԒ."J.+2ܮ}Gc 5Фߏ=oΒkkw 7Fj)9DOĄ @ܵ Yck\T;pqzYNP4iw"Ok8)-1[4еUӖkH<U jn+]`96b.!(R&VU I*{ioP+VO38x=#xSIm; Az0rT1?}&jH&\ "ye]Qm86@D_e{Q~18ƿ0ҍflM銯F ~{pD#^pk݁q駎 nYh]݅㰳 k6A hs&[O8 @>QWkQ;B0;aCRxai S&D0I,otBBKuQQb܏kBUY.KhS)ykoM i5Vn&uG:bCNns&`+SYSZ)f[Q;3*l.>\נmEQ[ %k#{m*Y^.IH!لQ\w"(fSv\?=ki-YԢzųxY asgDAfkG.KKcoo]z47l=:h`Њ8y|crHþ;x#QjQtFz7\۱ y@~^":7Ɨ6_uIs/ō^}o";ɇqp|9VxYV@tDi ӷleTi0/S+!1qXys<ܰaLsVnCe=X>r022ѡ^ǿΨ&# Vl W^Ќ–Ν`M0&x'O*D*e'Cz0cU<ZK_x+73{2YGq](Mt7Kw06O$nErUFf5R )8 :}!MI(kɳsA**RiqY '%ܶ |`6O"{,NIgS!$O<@5}8 :١گ\)V62a nIHte}N;ه3l33W1S륯E +$6|݆Vdv8ٔT1.F/MKK9Fu(Da6yJ֑ øL#^xpKlH8$Y+uh= G.=[0Pzm.5C4NQ1H2-Vr%H$;hO3Lf9d~aZ7s/ ֋J.ؒ@K>m THHi^/86Nʑ9t@a" )hH]r ` -z'LE%#C1by#oPD\Z*X\_䦘Ʒ '!-=SPKg7RP"(pip/_vendor/html5lib/treebuilders/dom.py]o6ݿUD^ˀ`)&VlI6HtU&Ij[̈Z2`qə4DWqF:Ei){ިVNjEN z(ȊsN[u::A݉ :2Q#- XČ$-`7q !&C%I+ #ob7ateڪPh6AhÄ.4DF7N )#`~ީ,HR022sT%ϫ߲`NN٤,S/TH@W7ĒF  1J¹Bl]{c:ɝI#P\{9)/QO`Du2 /2rOKػܥmŰ5&.6c&h]˧2(z,ȨAK%q1){P69)XIPi=;dym9N;jr"ŵ%ူKcAv:_,&h,23):&A֫ŶKW{y54PXd_j-jW,=vۢ [a\MIVY'##[YPL>5k~JIh;YA NffnkRUW%®z3ev< h%5k+m.!sn2p͛9CqFax.)E&ǚkGW~~>~!b"ıʴVybMSIi^/ƣrv{P-Nlt6+2C,*,{a!R#ǂ k̈́eK1( w7=_G.nk$[@X'gcHx*ap&QdI[ў:5bH[7Z@c ?5* w$2LuT /9Wy;L*Å߁},ZWS1kӏgʪ*885ޕىȝ7ǭ;hjwrvu!^;;Z7p % ˤizchJ92JhjWføA3Vx5i2q)a}?UL'PKg7RMЇR $2*pip/_vendor/html5lib/treebuilders/etree.pyn6}aD4A@ [H` h3FDij$4'ݗֲt7˦ڠ$Ynٶ!IM]5 GZ[F{|Ӽ*#-HR4Tdoǂ,b$e$;iJ(͖Kq#eV51͟4+FX5ԓ(߫DZ~)QgI@rS/Ҫ  Q 55HeyѾTٶ W8eUW?f3WICVF n aGxۗ/argYFhE]Cm^d / !%㏮73a(\<va/;hzf<uf9-02䦎oJ ~qu$/s$!%2&:C.no"=pDJhe0wx ,:ϻZsZ^"?!ۂL}f"x CX"aEnj7҈\\5*=IJ+Ҏqc  D/2Q?NSS&ⷶ;Up(a7c(PW!K!ш\nq$QQоVAѮI& |c!ϟJohNC2YV"L2GkGXEA X퐊n8dIw^8-n^5Sbh6%4AJa g!&PT;Xe=J$7`0-@yx(Z!wsp˪A}vB( ɥtἯR @p~1ݿ0 C +OsvFl;Khk햅~:d_j)[\Ɩw| & bbS%rTs̷*<e I@x(GaFgǪ*BX4*Hi;Ẇ[@UmTb:X Ϸ⹧WqWBDV}GLHV 2w(I_(xsJӥ]hg2Ocf˧{U >{ V c*=yL'Mg{~K{l]nN%wUճi5>yzAS^g߽{qy0֝)fl9S\T}*~0L' t,~WBPbaoIcotm+S8~e㬡;d 7۵ZΛSbbC.]v՟O73'e&EoҴrT:1‹DY+vWoӕv#̚ hZ#kƹgu'WF)`:t :u)Et:+4 ]!)ӹYbzΕ>GI'k 9z^P8Gi,=>ei& tYcwrK׷dӇc>rp_-L7* :aďߝ?;;7!1BxcPmHuGO^O8Z9Ni[ fo}`=#s;8 @ vDv4xTۚ|ݐe.&X>]I6(D~9koL:;nNl?<  @/5W_ l IOAoS-K;JOlZ5PD)]bc0: 5CvN(Pt8FU:URJ+j|*_U^l+1] gw\rKIv~oIC6H/_sβIJK#<}z늼`g[u`s%ބi-}ﯙc!~dcWg?~|+:wrՕGlZ旿^;$QSݭ:|K(U%n 7sSƬ\yoZs90VH!v668q6I.m'v`ͧ ѶX=1Z ێȉI8 2՜ʅ hG&y0Jz s`*˃~ĘBOK[d{snqƠrr6Y~Ȟ-D"!Ƭ]|OXۢrz79^BG=\~'|kH/:ÒϻvonV=3>YlY!ě/B/PKg7R9/pip/_vendor/html5lib/treebuilders/etree_lxml.pyks~BGT"3Cgfl_s4q]DBcT >5.$칖3b_]. ޕi3*+›ꬸ#&X]1-+Z"r ﳔQf.Ild=)WbjA졝ےl9yu0 *z5M9Lg$ix]nنtִ&ˊ{d#cr%WiXp`LMz(&l+'#?eI !Ve$Y &V%&k& E0Z2mA&)JN&A&ZbITsmPrNkV@L LV,WMT,I$t˼Y,4{xVsYR,γU4#i)H!k,=I8LGI+@ G0 ]&wMD`ɥ. CUS\5O)]WM8c; GҳmVep9YfN\L@&ϯ\W .77[p0=_gl2QV)ɗa@y"4rN8\jɕH ,+:C\Xl02ls `p@\5 ihXæLP}Y8L=I V .V#.ta txVG:)|$4- & Yu VJWM R![ʁeU m@idj돬hUAjgŪ~ *n(4GB/y )_+K t C@^HHԐ7[֔Ӻ:#p }8T.,>G d`P=DҬ(Uz`@W'@"լ*h~~}ާkY ۖw~܉='Ә׸_|v9!DVXsvDc>IȖJ}4Cyy瘣` ϔL$L!/fsY p P~ט}/+@[aaCrS99]{PsԞrp-HD.`.[ z# a"9 Q(M7ѴnNobA^E0aVR]IrÃ܉pgm|1"=*̖lB~#aEn5`j}Ir]b|SsZ7N:lSKK#Acu Ue 뛋X=vVf/?)u뭶1Gxܷ+߉&{N:zy8;av&m̖LH@-ʻ|ϋ 3\>S1`tFٳBaGD=vv0{|R1灇I~h`Zoְr3]X C avufRtR f),Rѩkκ]Wmc|DD܀#. o4C$SC5'_,::L9XC=bapG'2ZqQvGZ&!#nJLLX U=]mUybョIJVׅѯ&wof 3] .b\U /8Cbt6*EKu/;T=󞌪{١\Wm:%Fmg7&}Iɪ{{(3'uv0<:RYsv$zݭ16ysv^O)jۯsC7?q]}^f?i@o2<6ij$<S@K{l0 hF}S~z}?rT@(wΊɘjQ0sT.f𜱍|FzQhaT.:=܊j#7ϖ^,,wM$[i/͝!͈ :v%u^p58{,[>Z9ezufBzT~r1>w(JJ Hk96[`b狝9`gkZϲC _C-x'6;( j}^%ê͡էV*B`[+zY]Y |́x|hu2ٛXh*(?L8W7ՃD/cYC:`~S\~QgFE^s_Ҙ AV 󜥑,/L4\̣>ԼJ\伤l{W?"*?dn:s@wsi|zQJa9¾D{ +C7/NaL-\噼9%^" U! {Eţ [;Nnxg ~2<3rANEWS90| zq%u(2-̙=WSBZoW +؄CAd?MdT_pjL4D5rvlC2p`%X)3ħ7j%@rc*ˏǟ~yoWWW>~֐Rb`Ka刼۱`Kv2rXhT* 3Y/y]eLVf. b<\ F',mQ \+/um2Z @aоT 䢇4h^Ay?}5Z 0' εL3Jڅmy-֏-$Ni6DBiL![>_ѩ1!=*k=m36A0PKg7RvjW,pip/_vendor/html5lib/treewalkers/__init__.pyXߏ6 ~_8`c(ak5:\@g+Y,Ҭ>Ro;wI$#E~ab-% R9Bs]\Y8Tlv\ղ׆C#x; o<V3ˁ!Ñϝ; ?=evOU:i&yJuu'<DDnwЏX{rT lb`}|)S$p܋x0FK|w 1Lqx2VC50 mSl#bo)^w NF:Ҕy3QMa4v·vA`nM)Y euׯYY\—A t"\aPǔQG,gNk'x*޳\¸*pvwv&"cn`l G9RA8:B e0-Š{>;4z(udA"C4\ ?rP՛_{AhKO Y3mX i̤8BblY!:(}TTG|n8{B[dtc+6o2+Ru㙽@?!Vʺ'l~Nj9Хι">&OL WFטJ0 8F5@uMAV7(<ڄ1SN6\6HyUݱ,sX/)^~e˒-Rvv{hRq7Zq^b^2vݐ|(÷#FE} Dr޵} >|X7A?{9}D# qo;_,Oi/2Njb񫓋.~J^ }&݄wa¿=Yq_=qQjCmvL|N -oC;D 4]2ϭI7Cwدp-* %̲p=ir C |/礳*Mcצ;H՛?{yfxT'p훷;ʩՃbSf-*@6+,MԾ7Gn% &h+>KG·C@Xw!@֍ \ R442?ou<6~2/B<hҵX%K7éSP?%)XR G["^+>uo:MAj|sM NǧD(Cjd%C39yԠ58F1\P@h@+o3 *#S0\ngtO1QM>u{I⌨؛jm u/л)=a<00UOzJ>{O>NdLjyϷ7~H/BY"6I/P1eNrRjũH u2Vc 2߰6G0RyGy%u[37lӻc|u?1<-Y90{]XgvHPKg7R!-B4(pip/_vendor/html5lib/treewalkers/base.pyn6]_W",mNѸ iȒ!QI"sxHż*Kd>_|Nvfeƅ`s5Ɉ ӈc.XFVH6G LDma&"7 ݲ|GCmʣI̶ GDnhFCs 1.N?Lgx_rivbvO/ޙ!>ŧ?HO4aL ,ڹ<$Af>^M<-NcJiqVfCO՞VƓZhrvLOW3-/)Oj;C˜9,p.P i;q9'!OD7,!L O dCo.~ Btp= ^0{$]XǞ/# QHʣԐ:^ l-)0ϦRXKhϖ̧%d(8Jow*Y4ɲ4PN|*%hRDA*c;.6R5DkB rf5݀RMa62d1M*6P(䛏N⻨Hvv'gt5-ˀ""QƒWPaX=&d]\{@YR8/^@g !![T)O` |Y. 5dKmdCR&`[SXjBZ̮kCʁaMZQ2*B͢-i^Q@&4Jkiɇr8XJ"*?L) x F82/;#\jyUߡOk$`84PU$t]_h˪k Y2`_6(ˊ6&vہPO`]`"͂\FNK`Uy4bQc =],%z\~Wn9999!9݈m[̗DA>^R8uj uk8w \2ڇ/E.HW/GVuu=l<G x,4 ]i}+A@pZLA⃇Xe\&J1y>'Oog/O'r o0z)W-8~\Wd"-qC5{yаWA̒#"5| -"VwyYm>ԅWL:9pdVR ~Cr|$U\tGSzJUѧ)^SEX*3ZGeCm[3EjkK}ݰ l&`kH fed(3tŽeVa: mF$AZoiQ$7Iz5҈U ԿѰJ^vk%jP5rqn [㚙A4"Xb_ЯK`clpAa]3/ Y)Hb)w|#Oȓ)h]?~OKW7po?>Ck\&@ҐhS Ɇ(v(bG\g$f1OtA.#o C3ǔ2ijK~`)4mY6Ӣ`{ڧ)ƨF$pa8 SbKQ&Xsm-9 8mdON~]Γ뫫9e ]D/Co=X ѦSx?>~$DµiS_շRYEQr}8J2=?02踁{uN<#n^C;&:[ث(vҾoMƊy8b;H8T̚1AW{Tퟪn /H?<ܥ>e]C!|CDE7 xK briwGjQCDg iMJ9Nؘ PzVkl=Ixu9싯b&؞u j>%ay5i״%bJyER3 ⹞`)I#!q,֭^^7Wt--ls] nt.͉Jr)!w]UL%CW},!@=`/.` x0+3? !B snF]Wtװc U[apUhI)MSZLE I̥@uEg䥚JpCr񴜻)om3JViͽ-l߿q9TPak<:#a{:qD(nӑ𾝞1l@=[{5=0}oo%E4oFПoWx-?O$6DK7ogY3B39'R_f== 6f6+و/)"a,R(B`i>7dGJzi@E02[Gz)}NsX]>\^w-w9}./ٌ 8i \D}9]snM@rvynBm]wj(ym_Pz'Q<{:g2V~R8*xJXQl^.Be Wo;yGLtl|M={D RbITy2T@IN'PKg7RG\3:pip/_vendor/idna/__init__.pyK+U+HLNLOOI,IT-/*Q/K-*ϋJJ/JjqPKg7RH pip/_vendor/idna/codec.pyWKo@W,j$|(mT'6>T ⿳ďEZQC|3x| @drאS| 4G:O/" V/QҌU͕\ХY6I-zg7omfMEQEFM}QUCHhcbs,TCۋ4^hHjK+&uk+; f5%lٯe [R; W( (-:xX EY,GUɋZO:,ol)L/\nW7{ԇl֡V5aƥq=7Ҍx RBwheZ&d|t3Xü7]>'&ErB @C G#@Zc%{1 vA͂" ߍ PxGjm^]Jjl`x Kd&m NԦ3OF?r$ZȕnAWF/fP_T> y;>?v@Lf[6]WGJq[X ]G6*΋~R" +y{l@G[}R[@gE3&+d c,+BlZf:O.qY$n\?%T h;`\MaZ2~ӛV`ky}bм` O502!5I ;7{qݛ߂n:<~&E%>" Աژ"DXLm]KǦ9cLXiVVd( +PKg7R4,, .pip/_vendor/idna/core.pyko8 'Nנ^MmtѦ%FtoDRݻ8E{3CF,]1,e9aC~^RN|*!1'0R⏼I`4NVWPˁE&9I 1 4jĘs4Gz %#}F^o Xi+F"1՗b29$_)RDфz444M4ҫ5i'= U#7 S}u⌱ >W >z9A! YxP2XV@ws˘X)!dgzICU dgB@c0c@$9 $=vix e)(n=@vD<(G) y {~Cl,K O$"$rmqdXaj@˙`c0y&j&z0 N>P5Jn>+ 9a1`_!g$/X4;/xh!R?5*=ᗃajR} <+G~m|,M rW.)@ tӯoxcp53> *$Y7JYðC?ٴǜ.YA,B&!X C68<>\D:<{Qܐv!\$@9u% ?  +b&-bp$~DKp©E\צ%$LLMĪ FFbM8rIفZj0'Esy>*czK/p4T*%,_oFHWAJ_' ,TR6GF2.]y!^ fΒT8 Pe cRX: v*ju0brn7ykamkxnFrS=ށ;*<bR[R[:IkRֽ$l?f逄\uyh6L}ߧR|/w]v*D^!ZAˀ]<$ʕ+^ܠ^; (azdB(&Nr!(A{y_<%J!P|[KQ¤[6+dYWgrՑ_z..VHDŽfI 2;}vwTL?Z] z.%0ACh-2*M33]fM?zX}Vg4W65h;bk5(nX&F7|~_hyb ކ*<ގ-\;@ 8 'Dܷu N"63y,E# C+,zIhIZFZi6fDPItr\sUgb| %3}l?㐨VmG dv+3ф坊{Ng ٱ#kۻ1Nuz~w9hxWS~+1I#V$/.~&g=Mɭ`aK*/[,=ިPúE9P-}_&R&EgPqtwF?T>oac? x06]uEȾWn. 4DtIic@-9;h[;~aqk gYm[y8MVBSI'tAuTm+/RPUVel/fo\Qjm.;_QH(Z @s{mLgmqI؅㰁&Jdk[r~X81#-$EjCtE>Ezkikkvu5@A\tRN17`hݜq656CpsEDSWU?U$3>IAٔˏG3qo% c5.R? ŕ9)-r("UˈLO%z@)XHj Bg@YRreUϤMyj-DPP?/KC Z^ʙV c:.rH&Su"MߠD5G}LknczկΝMkwY;֦'L(]2(ΥPdTH(LBj+;1d h#;M4'm; Ƀ W(N_>5԰YM)N*?QɚtM_&fzC\rvz5ڵ|f.</x=% \3s0$_=ܺċX ]]~YL!}S<ޤ^+n-WE<H{?j66v5YHQIKmq,$6L8`/nk s˼cYzz>7XǞl$Km7xZ'"}I~?EB{lv*=\g:g ϶ޢ6PKg7R׬J4o#npip/_vendor/idna/idnadata.py}K%7^0^ 6Nj|d<Ԑd{Fw3/Α cF|._>?ad/?_o~}_~+믾yOIO߷ۿO_\Fre|r\#ȉ rgy2yy"[8x&_Pvٙgg}}px]f/{>#~ OU tz}}"~sgd|[yKF?5ݻ3$U_%r/e`N4O]ͯFòo-&zߥ n7z"Qx^7w;2mjVr3lyRO=^&PUڄWo~,aX۸TeWi_^ҾҠQ8&/iQNww=1f]z1z? PjЍFw߱^ZᷭcO{dt\ry P/t?Ag!f.Ӌ;Tr",r`/??~˟L?,TW=WW#WW+W;U~SK5p5r5q5sυ[+6n5n\\\]\pqq o(\e~C*70j|Ʒ|:n\e~#F7Vdd~#󛙅,cTX' udN˜ c.&uz ?A ?A(G? Q(G? Q$'? IO$'? IO,g? Y,g? Y"E/_"׋suR_ԣ-.x2UƣxT*QeOt于ܸ:hCGN{`i}<>>\Fppr<;9Ng'٢!29; \.r-9c:Bo0/D$vBU ȕd^hhЂP2Dߓ d>a|FHzgk`[k9,<}`k`[kX>>Q"@>r#`Id<P^oz#{^od7Fx7Fz#Ȋȑ9B#+r p q!✡ ܕqT<#+^oxdG⌏ l,*ȑ} :G>%&6f:6%bn>}#юhG8ڑG;qK4mmۀ; yn;wθ;pwƍy'v݁'>v݁[rbr0ܘl w&Vad"Og8!X>)N$w";Ny'bމ"OGkkx͸TT"/U"**KKJJR%R%axTITIX$^$,U/U** KKJJR%R%axTITIX$^$,U/U** KKJJR%R%axTITIX$^$,U/U** KKĻ+ ;Pw>Nb`c4m&GY&2GE}?dG8,*#nb"B@f<'Hy!!~O$v o']lT^R=)lOQyUV yU^ѐWooDzb<7T -o( ; ;Ol/; ;[ & -iZ4}c2-$&z{ȳk[@sZM^ # LbIL>5G2uĥ#X AL#6٘<@L>\,U?O7J }?X#?k 35֠/l k5XXc kl k aw k56yPΪ١L>쬚Y5;TjvfHfgA9˱C:+[uVcǗC:y q>L#ߎ};[͎PW޸4ذp7 >)u㾡VwXu6˷ΊY;,rgܡȝ35X5uV`jV6g:XFD'l6Rar ^up@ V`ePS Vel `6`+Āe<3X!bB 8~? ܓQo@O V[5dP 1bB!&tgLy}MO'f 1 ;4y;h}TkNO޲\ۉG~!<NYX> g?/YvUŋy}_|ϿxXBX%%xKraKr~ѵ\x/ڂAY^bZ^.m1LZᯛw0 ^덈;T&7fF o|#B#ovXo)loX{9_w&qg .7/oXfn'7 ռ9no8"w!rq2qn ,v:?|"cD`J;Scv t^BN Ed Џyx dHF gݲK9B#.g! #8XtxbuB$8Յ&w줄39̯ڮ~_wguy ++vY`<;+ BRw,Г"| ˿R"Eǵ9>C]~ 'k:CHyl(1}|)sK58˻kx&]JPKj<v)a5yxL;̆_RnX2,ܰ]Z}\%a9_2~IqX%ay$_~_y>_R V~yW -yV G? QGkV(#Y.إ%/+O'@Ku[u?mpme4_(V~IX%beT$be}?\M K:*/*/ ;/_~%-64v)+KŪ/X/U_Հ M7?g=]s+W=-s%c+yq㰻KAn&8 rr&9ˀ ]wu.;K/?5˺u k?)':kM%5_k\Kp-ښ0 5f,d _ak>~MY/-.-oź_֕[/~z\$f>[j|ﱞSwc}k9M+ogK<>a:lb:u\wYqM`s]t^~6S>Əd(Y'~S}{ OzwgK|%_"9G3xwR3RE&t }9,E{] QO~*a. U tz]LЗCgeׁ M7o >ցXG oo߀_ 57oo߀ ~~& %!kt.;w߁ C׌C?!O?_R)'O? SO;&/ K؂=qǍ~q'S27eBY~։^"<ҧw :/Hإ]~G*u~~)߿s'%MZ^9~ủS%W7M<_]!.3π/v)z2CRC2HK7 [&1#vAUSF.Џܚk$&K8g׏%NjY(L4= ]rk2+qYRNMKRTzwwWz]t4dHߟ]wKIE;5nl- 6u8]&߇~я~Kw/DCz[1h< ^#_CK9:{O> QA×χ SZvإ+y5,ixv$iCԿxFh++nиA>n{/WxD z{8 #\Npm$*>]%%&d4}"qUдNCпx>R*ZpM8*Zn*쮊rUW3BD<}0rs aWÛ%l: Op![BBCц#+s!NI~ʮ G.Į񽗁s׽OTK|<nvU|D|epu ӹC䝸1D.E4 yJ .y}N :ϸ9Sk~ȧ_Dmx `qixk 4\l RN~ $!=)QQwΘ~J9/!Nv')A$87Gww9a9՝駔@zF9s: 4E*66MLxd򧔡}mBBԆpq ^P AuSk+lrv&4/Dp?v!=Jp*xD8DD !ƻ4m8 '/:ϾKnۄaN0&J Gwdv4 cnBD.+r=a&O)񾫠8nqgex=W}K^}ޏ&>&446*v]jW  MkТ>bo*/z僝YNyhMh1Lu6?J\MhML6j8| ۟ӠJ] Q ~٥}ܝ1UYҴT>f04tmhXpzx 4u ߄ @UEκK  twNą{B7.%:bAw2Q8hHظeGF{9 .pb{+pKO}/}xg)p/Q.o7N 1$,р-'_PKg7Rcpip/_vendor/idna/intranges.py}TM0WXJDjV{C(2KNٕ;cBvs=flPVZR9<9tFzLqhN-ۣVAل,G7\C ZTN8]pԦK:a\rG?~̠(׆*{{@fga "}"_F7m<-;_iOםeE2,8KFꄶ:U̒O=%@^.>H%RW[G[WUvv84dH+2eM\NEcb 5M1L) yt¸YnE9YveD&C`T(IB_OO-#:g^ ܡ 3IVdpip/_vendor/idna/uts46data.py|WוOVLSӮ2׌'dfD?}}otDw_ D/Z͝@Yx`ˀABGX_1j2dkr?^x痕];o]꫿Z?wnO~7xחsY\_Ჷg_^~ \}?fG,,?)䅷xmOgw~?/G˾Uﺾaُ~w=~oYݷ^_/ <ˮYW|wdw]3 w2'6g]u"+ !R"+ "("+ #҈8"+#v5#1S,y4CdAAcyY/<.b944rhh%CCY ]a5 r:!QCc,i?r >{2ͭɭɭwέwέwέwέsɭs+6ɭ#ɭ?m[[WQXyVGaQXyVGaQXyVGaQXyVGau`++=` )~0 , jVxQW R ~^g\#u'r*5\ pr ם\#u'r+5\8FN1zHk C8Ɛ N1zJk  reP,D1$N$C8W_XF *, A_] *!`\Q%`jT qϫEn.Wmp" ?`[W MP,' CqUg~(*R;ʇNk!9Ӛ3{d?wZsiŝ\mDNCq5gH~(Z\ŝ֜\kӚkrw겅QrwZwrCN]v0CN]0CN]0CN]0C,]1C,]*1j@C\'*e*ɥ8 Cq.5[PjùFp[m8ni-1fG6tAItm& xۏ6m! T[jA Uc [ZW hׂB vk1Ø1firoAZAN 5#h9Zoj{kX-X4 2H˙F %OVˢFI'+ފWoD bQ IG[[Pa?I0?b(r)( 550?Տ. p!]B4W5hBғϩGEU Ñ|]Aoj9r}o"ȜbX9 Y3$>9dA72{7z1vKH!Ncq.u^,N# ӏ q߇ݭn6`hPK>'c#* ҇ʂ-q.w#wwkWY%4TB} \Q%;^$}kLAҥKOJʝ3Nf !)I!mi D46A9JyRtK)HJ5oW"s]*+n㷫S0e7QyrsPL#!n25RfU#KUUF;5lVi֡T4 *}:! (">emq`Im0ZI"n+ (v"nJ@P"nq{UeK|ryAnR3H=i32PjdD ̴ByfL4[[9f pn ]؀!Cp[D p-2TOprE)NP>#X UJ U@%Vt+&URC(:9r7,m}[U:,e*EpͿKL'μwtUlD{g ;9kLN1S+x;[Aw :]@wvS@wv [@ȝ=W@w 3( h~AcwvH}vQ@gC>و. 첀Ϯ쪀Ϯ 캀F}|6& qA= A1"vgXJn^>~U`>}X'^c,UVeT??+ fN0]BFsQ o|~Q1$}>. >. >> > > >F@cqDŽ胍j k&B@mw } XH~v[/YϏ+V57 R@5S%tjm;V8r[.Tvz-2#"ɦl97.L2]Υ%Υ%Υ%K ]6dNKKKlLKKKKKKKgKgKcJcJLIIIIݮ4iͶ)c=@3=l= [16_H_H]-mZ*uRnCԍnܴvMil =n4q㶚MJSwM6L]xRR[kwj;vIݐΫν{i;Юf۹[^vn]uB۹KkkN̮vvn*vڮ{vvvvM|5m|]vvwu}ttttn̹9}I;!Y5mķy /7R.Ȝ f3g3,:͜]d.2gf+9ϙϙ[6sW暯m۞;UfdM(enzJ:$Xvjֶ>!k ˜v+ϙg%˝]]\]˪.٣an{CV.ϗj-wBt)H(w~剭ɖ'6k8*]i*g*gmm*p/.N3sF<-0SxHpU¹ q;8c$DW6*܆Nt[FcPfsSA9'vݶL쵗;qԑSXenm 7ghPC': cheK1 ͆#~c–@vl/w]+brbpWU`i#]E݇7]?H(rW03rWR{hߛU4+7Ȭ\73GN(*2\}NuQЭ &{){tb؅yQ?Q`(lcQŚEbUbw(QY咝QGKSFSFO611WoLcEkEQ٫AYԹyJ^sݲUJÚhT{VJQ FOU9АhXQ 4 Hwa/\zSw}fQ݋^8i_lfpͨ02jYn*jqQuVpFY߫z%W_e@KE"7)e5rսOh.uWm e fU{Ej6g"^[Z-F-7,W٪N-waY J{yyXVC8-׉7 ,W"&xQ0''ޥ%}&7+:I>I7^i\G.+n'iJ'gIq̨Uj$XI VM,-_m`y%XD~DIhɿݽVAm٤(ڬ(ڢUQhvEu@;!٥LnEgz(B<ӳWQGɞAE9~ENCÊ/I uTuLu\uBuRuJuZuFuVuNu^%{=S"kH'FQ_R"""""kTk})1P?Rt.>A F~)ʰdx\I(pq@mS* P^TK B zYA??Uj+ ByUA9) \a= d- ԥ`A; .Ut  Jn)XQrknEU J^aQ+ۻ[IzTK |D$.YTtSXQU+J| EBÎ[8= N&/P'|iz1 h s;'/cf aZtLV)G`Ji2l$;[ (Y~ ގ9ʰeJ^ dBH6+IW&8Y%qg7d\o'\U+)h!5pĬ/(6z[>"\32Dz,S`i%}.) D sJ\S|(HՀ0U Z%7B$hmL0:V(ApzI"S=o)Cl*{ߗ$( ~>'B#r2D}ܚgbɱU䵕=ح`Z"j#֧܃ & (g`Sk{/䵵 ZkC|;䵍HYwDyoUQyyGNE^[wDyUQރ#"/^l'$jyVQ%zn?9=ʟΜT^hcDg41UgX"D01U'Y^j^JyyW(E^"/ }Uw˻By)P+{.^uu%fzyy]][fRAŻyae}]]?9G_sxs &=5[]?9Q9c.ޟ(ouFy?$^Wg25[]?:Sz蠟)o,NyAu[?:SyVyV폆딷o:tޠ۟7(oAy'E [ [c,mf"[189O\189۟c`qrtKxq#(gKU\NdT]|ӫNw[F9ҝUR)QunEosLtT]ۂ,JŻeU.'cOX|wӾ3}wӾ3wONf&wrMNf&wr]Nf'wrmNf'wrքӾLӾ̞Ӿxw\ShІ,ɼg-s ڳW#r zH0wumɑO_Xt!ho*:޴_3ƥ Ze!tePy˼6emw^2ӏ\&*BhKXHHݯ(p{2m1UA^Z'A`fSQNی\)95E9>fr=O'U1e=3*#<ɃpXYDC7RCqvE>ۺ;),[̄5EM+7QMBj":~C͟V`WE_([Vm'ri(DJVlRd{eQ_1vغj"|(2PeQ0\SZ5]`SeQ\.)m.X\= %6c\)㸫4BnϯcBtET\ˢz ~Z?dYHUAk B+j( 8dQ~ xG( G _zFAk?PB4;YHAhUbr+ :iI#NivHF4중fg4;iI#NiV) ^Y[%>ATIe (A*xMAC5DMAo+; Nqہ, >щ܉ű-*ۋ/gE@o W-˻cs  EŗxPTzWQл-k8"s _T.]# I~pB ^FGT[zFXɭb)ZK#?S-vqaۯ) ^[s/[EXLr{/;0z ) ' BK-"^B A"İ*mZ YI0/( bP7L*.R0t_*BiQRtkGotkGʢ 4:ú/ ,m(.Κºi`T -ͺ`5S-/d`&50dF (h+ *4K 5 C5WsHAc4KA Vb\M(訝Fg4:jI;itN)itNc Hqގ ltV`F'"Yc0׺sE6Gn[8FlhՙPw b V/ t.p ۓ-+ZU%+6bh";;2v+ظREvc )+\Q̷ XoMA޺` t ݶ)R$oG#h>>T|}`~4|*8H%Y#k2XpND?P:N3BbA!3L͠}nP<0( iP=29˰ʣ3iv4#0#$wdnjPTJzXP\d҄b#, zu AA)J t_0} % ڗ djA"^3A7 Ei3 6zGQ }ks_} WA_6(40,] B,]v74ACѩW%yYAh}[]ŊWUyMAhy^W!RmMAe?ST ]KxW_(_)[50P͢5wbs jbVP:NkbP j!S:5+&+X-5'kMĊ9yԡ&b՜DLњsZ,ACMj"&hM`q[C']/;lB+N?R  ȣ3нRγ(D[ncG/*œCbaEqqDfa\tYa\.^Ut]Q4ûA!EpqBQtCGC+A_C+A_C݊EP"kO5ԯP} R} V} Q} U} S} W} mP} mS_Q_Q_[Q_[Q_Q_k$,xDy7UCLTDRDVDQDUDSD*J+r,~YT!E.-F%XpY=W qC:tRvoשӊ\]B*K"[ #uK[j!n,h6?U T-uphXh)9.թbhXE).Չ]bhXE,v(E0aun5cI]b,hXkE)2)]b$hx"/vxEygu<1ѰzԖwVOnQyy'MkSa QPyy' E^ }JwByw6<9E^ }AwJyu6<ѰOkS̓\ k0vmyˣa ݮM1Ony4۵)-5hw6E6nצ<^tRuگce Ԉ0f6"4;?~Ol@>Dk: k01ai 0S|yCW0[|06V=6fϟ6j4ÄY#X󦷍Q@kTz ͏i73ǴfϏ}am~LC$ߠ2~& 1|~B,'ʘVi``n:",aT:V;UW%Cӎ'u! w&t1#91٫}Bjw)PI<ٺςޭMG+B^5սFtadɎʓmyY`n%ț]-TanE">NvUQ={{a>ET"9?{_+~#p%Ek =ۻGկP}jQA_A_kQ_kQ_Q_A_A_A_A_A_[A_}*(]wXwDwT%sn2w\wBwRwJէf7dMS&y G9;껠S[}jeΈS[ۡ Iݦv]4#EԼyȀP"[AO;AOѮ)܁]TD?6ܠԆyn\~PG4xxnO~PG4 xnE+xhIbe8Yx|Hy7MO*4P[&<ϤO**ۥRk1)xk#J:y@ID<_["NүGk$~;+~ǙsaTԕa.5 "޻W\Yo +5 =ݦY9S4 1rG򑕛ާz:@fpW >S?PvX!3Jo`p:jk l3Ep)&ۄ "h"нKa}aQ? }*?\f Bk F|ب?^Lj/>} ۭl?>Oͅ^˝cz} ]w;ҫXccruqw1B3Lٕ7˙kj^ EƮL;}gU5F#BӛUs >gBߌ: 1 N\o̡E!s>M5BsAwV8qV1w;c84A3ǡ ˜9Mqh0fC1reT(!QFtxNQW) L,QW) *8EA_e(諌}2~SUFoMQqۑJʸޠ?Ȯ!p>pM#}a1e^q=gd/teGs>#q+qB/tRi0 /tn0~;6c*.<Sl(1Eh7W)+#Y]^"T)t1"d:Nh]GcvUE."J!kdLz+.Q-cAml0aAnE}"f(*-1 K(?z\QŋGaNE9[bk>9 mYҎGwcJو阢T҂0Ei>EA0C&(U4^kTx arRU5MjIU03&&U FAU#APMe9Iu㘔;9 ׎akǰӵc1wv^;ȍ {E%AuϿeP?Wt; Ê" ,1Ai[&(Musn4խ=vV_//(j )NKTeE)}Y`[[gl9խ; LuO(\a%Tq`G;ZL 1T6psG[1l9գq,ǜdNh [dNh dNho &LlW}hz4Ρ K[A}UԗZeA}UԗZeA}ixVP_j[P_K,/R[./  Kͼal.qS=zƍiT"LYǦ5^32ճJWE7¬tg-ms/55fxJ]S5z҉teVeMq^ `E rAO9=NA^s|{Uz z1JĪr~Js"(Xw/ 1slg/xl*;pT9 -؂\U3Q^sqj5ܕR / ?X.<@B1e^~^5PǵFY# ^zAzrM%,]]=ĬBcK.P5lXV,!ˀ*1[K8lg֘@ٰD>=D^fg/-> Ѧ κ/e/\ݨt* Ê^FܧzJE/;DXa!e >~&qz-VXORi }k-f$pUR*V  ~VOs^+jf\'X7V+5q ܨ3W6x½-+Ɓܾ%טp/b8dcj%|]5klXGѪ@Pc 9$2 XCN?q!^sJ)kș>D#^0@O _Muoa%Y*m׬1xXcu I9pcAuǂa8XPt1p!I u#' FN8ڍt09X:/輀 *c/K((3v`o$ޗ\(h9C*$'RbQz4b*oZ~Y}lPs)iĊp&kEA/oUbq9hpv 3(Tp̮ 33oI1ruoa 1B!A ~ŐW~$(5C^4y-UQP+ iCfH+J00ү-b(EޱRa\5C`fMbHP j~ݐ/g2!8rx?kQГ%1~ X6~֢&K)^{j [mW, z"gQ[˟SO(,֏z'}_7~ hΐ7$uC!7C`^:/ % !0/CN k=V?kQPO~VzՊgze<,Bxmw_$0қJb^~]I+(0;B0ރ1W 0*1 K%A;&k/k[0(Λ/){|Ero.~~*ait޷ {[㼿0yY: ;s^N>WaUXyq^eWaUXyq^e2BWa̫g;cpq 19` 8r(p$qI#Ƃc'!NB0"; aL8B.K(3BK⽄05K(ET"V;tMI*6UUF6)h\UG+jʢW(EU\ݧnSq"OYի tʢWUd)ڸz"NY7*zެ˻FyoU]+Q;yy(݊k^E^5{Pw>˻NyR](Syy))E^u"/:}N7JQ+ =!1{e$G=;f,c$xTyG;,q'Eu"$z:w_RoQ%DI|eUNĝWQ%DI|eUNĝWQDܮgeNĝRyY$w)'%o#HcHHSH3Hs\n`·.(rUQGy V(ˊ+UE^J"/ %8KB N(P)d6Rs Fn= )f68˛jE^ތ*f6^7#%f6U7#튼 Tmp"/oFn{yy3rTm"/oFnyy3rT##A>rk0rT##A>rk0rT##A>rkpaGyU^%y`QE(qeC_VWu kE}t`t_nnm~ڿN1oiuor::]6]WG|`_]bums"TI#u"JP];,bR]"[];,uˢ [Ǖyk [F0g:ċWRya VzАԝ\Q"A;ѹ,bאԝ\kHNt.Xՙ㚓F\rPd.(mBn%E *Ev ց5|0\ ( &j+{4c nn"{jҬt&Ͷ,rH3qMZ5`Y*Vᾱ߫նE, }:}2$>UT\f>OՓ+>iۓqk${m_-q@iDgEY4^*giWM3٫ޜQw=EP:~^fRB"쨴"쨴"쨴"쨴"쨴"x aG *zB"쨴"쨴"쨴A5]7U.Ćse ܅xEEא"kX5R{)+FQ_cqEׄ""Kɍ+A_W*6v+6(6*6)6+6(hA_W+6Q}m\ڸNQzS7(6JN.MM͊/ UM]CSK[GWO5گqR_~ԗ_)WJ}-_u<5*&.JKRmRT*&.JKRmRT*&.JKRmRTrrnCEm+gOr,EuɞTE 4 RM^RC!@P@{,G| +¹RKC䔮a'cpـAX"[3߅(a2eD8,F l0=E8q"(5E8{"(d"~i"۳[vX"ԹiBNmJ}R3FC_/+*VOI M{gvWUU}];RUPc};a'˪J0v\v6 Jn+ΆWa,٪+glUèW*v EЗ\"K sճa p>X?.gS +aZE~*zDfP(hƲq[8<|H_VP"#jDQe{bc2OB̓ZV~EX9p0vm%0canLo;--3թ#Q犗!ɰHάDZБ(٠.k"$}e$JTPHV"Q:;uҹ/5$J` I Q:YmRDcgA_;{D{J$JgjBt~ƿHΟ2w!$U3Gt~L#>$JhD^ 9mS(PEtvs(׈R̷hsǏ(B٧-A_'4@t~s+b#Q:7~\QVJ$JWҺטB_[Dl/$J玨}!Qj(73S#Q:23BtًjHΚ,ߌiwՆ_цҙ!Q:A{HnV0DJ5s$JWiFt~b&FՎgw#K2s I4Dtj~p{4@tF-NN5J{a/jD QjcRpP]jmՔVϯ4&Q-c.fLQO3j=3s@6$`̨Vn2ܮJCijMVϛpK̓[2Z}z!VO_깱}n ` ~OX>sP+,r rߣVeӫ/b& !}zHfq٥=|,qT '!1d~P g'E#X>wDϛ;5N=όj%ӛԈ}v6X>S KhCZ}~T^X>xU͡`XϞ1w}͞>&k gj@eh}/cR,W^%JI0T6j@qE[!١|"W"1EC1e^RV*}OF! ;ѰH0D6}h";ͮ,v`";,bRP%qu"Q8ՎGwhׁ;Fs|"4JZ046;|C܍ EvvjܢCasg)8 s5"}IP,Bq"t[+T7EF{T#y#U8>"t[l1R5c F"oVAEu|+Hn!FHasG> b{"qo1-$TaEAbjFC#U3{T9mFf.kqbjfܼz86l/M!ئ2fi]04"D 6M恈*scixri#(˄Dl2.waRl`M6$Hze$mjA/$S#Hq6IFNk$HҜf$+8)Hm0d6$͝ʆ$q$i\KFs$_6$ͯ(#I5}$b$&f b$ƎI?H +14Vk/F̌#I:|Hi?٨= I߬I߬К?[#&؈;0&E :z"E ^URMU sW(KL >eUcjdg-|~;R–>+ˢPտK\9///+ b/* b /* bb /y}qRI_VVW_+S_Tu+k~ޙ)5UIA&.?Efdʠ͖Ae[,ҶZm nT2oH~^be7 cT2nevo/)ҩ_4#!ets^ÞNXݜ%\tsڲU纲6{2԰0&e y0$ %᫿Z$k>FJ * $WJ|գӯ#+nz%~N `PZKIC_mVۈtRm*tֺ̠Dt*p˹{s;H~ ίN Z!}\hF_K!ń Z $<0y`_oW=/> ДlQbv]/!3τF332̜Lunݗ#Эy&:v_^AW{sW2*':x_^]τkA7@}ߨ=Xid*34~^Ԏ+yͻ^^^߃m Le_{&dFf)؃^em2}|k]7 X2̩yk}{/X2}OLyg߳Nf޳Af"3{{fd=~';=1yOvaMUAkT.hS2 f%D.ƘS2}OqA3&2h6 3 ـ~Jf3!3E qA&9&נc^kБr :f)bnk|l(ICi~ԗ4Z_l(3PҔ|4}7f ~m%o<8aOZl(7Po4 l4-Oߐ (Bi߅ӾO}d#KwI?ͻ$]]wA6A?.A?.AK$?Hov\\߼\iDiؘAؘBؘCyL"* "rhL#rhL#rhL#r!0`\\3\xD%ob&bاddKgdd?:`Ȩdbmss,܇%ipkZsb4f0&k q{ޗ˟ {J.'/:] :QDp,[/M`6C_^5*⮚@ˆ$3Aܗf8aX3}9VxN8xN8x`}U2swW'3Ickh)3(^ROqDzʌ#Ʋ3(^Ҏ[%ae8xŲ=dQ4qD񺽯2(!!!Z!qDG=pDG=pDG=舢/l2hv(Z{($0xTy{ĭ&AGk2t&AGk2qOAa m aft ?aJ\*r")] ;`27M;3&mj1&Ys^6S$g\WİUY4cլ1ZTFMX8ih4jet)șAw6OP+5귮!d]ɐ,q披W i$+UE{,/J<{Rk'+SoFJ9˱Ҏ"'_$!~9(UjMjm"}4%s޾}CWQk JZ2GN@wJLˁ*gTE:aً%Ձ dڰqp{o{9˹NG2އg<AZ vSR4c)q|+PSMXWK]TT:mRLSN'KѦ]ʧѼUkhfO}\y+~ےVwTN,ejnm3ྷ-!w\7l[q#cnSDif#C~=vP B"^;Ж19Tƫ4Kifg3;*o.N˾eK?6 7}л-jގݾ^ mb/Um3y*ACǗ0pK;w+\PJCJ sވw)ao [m`w):%'S$n%\!9{JSiIJ;p;2D fCE2M-mjaۻ$_S!}EWh:BApWTP 8 4WJsFAh  Q*) .NE B+> Uvy]A !l*5 > ?RZ CB"W\AO}~  >~ W >~ п(&lqQ 6?tj'.aCO@'v2j'v2j'v2j'v2j'v2j'v2Z'u2Z'u2Z'u2Z'u2Z'u2Z'( } >QtI43qNg1qRQTϘ:а"$u)BR"$:)B"$:O)BM=淐m1Dgt= ,1WT_aEWQEWqEWIEWiEWE9EEא"kDuY}U}]խUّn92@rd=EWL*z\xJ-5h_kA_=f.qcC 6QOTEPiFEPiE4h* 6E&x@UzPUEᶨR5UۢJp[T6ݢԦ[YEԗ{RsoQ_j-nE4A9H|b J̶WadoRad 3l&{ ^uHNj35@`1f__'UOL3'3H9N[^UaJ}KEЗeRԗZ#A_ESKhJ}iR_"1 fW]$LM͊^uQ|>&L'L> S'9*}?ad??;>IU寿:|obb#SjiˁGjX_]1cBu~C#,u}S][nCe'<.cd֑O*o5O.;n$v_H`@8vv4EQRi.JHIڼ[*/Mf2O0(ΩZ(nd22po @(N\O:XqTWDu}I/e_TAE6dI%g]_VE}YJQ&RϜ(Kzi撚6m^gE9Kme)6nYYYi%+-I}8g!0A.)1 t> #G>&D O \'p3"!|E`|C`Ϸ|G`@` x.%㹸@~1x.$x@a1GB0x..\_oۥA_f#ז.q2w;䉍[viVJ"Be+R=\/%0Ap) <@:"}yK!L`+!J`k!N`oC02E4.%JeF VZ9)ܗ%BDnbj}KevP#72)6|_f̲K )kWE*hIUYD4lEdb=db=dbdbdT/;&zY:M̵;ev);mb5dWa&/M$&M$vA"xp=h4Xg_fǃ&«&&Md{M6׳{%6׋^{\3iqͤ^H{/׋H7ckUQDIvz:;:;YiڗF ؛K623-Cf"*R6NG7v|x+7X:ȗITLeF|ewQjMJʪ }I!}mR_精|mw}I!kERfMpeo"x "!x@*9k!D. l|@`C; O |F`|A`ϗ|E`|C`Ϸ|G`@`C02Yr;d߽vs}}gо5L]Eޙ)' Rh:I̔YG ,ěS}ub:H Իoz}39ճKzb]zbv.u]}PY4oFvm"fQا2hkM:pVkIBC*=Jic*=JXT)+0cS_fV)Mj̵ïmǡ"sH|YTg-J]웨M\Mb&b5]6'q]gy߱V?%d2g 9!a ?2L dagB_KBJ@_27!ON!>#d B!>F?2  3!(<EHq"PQx8 AG((<Eq{"COQא8 GfC(\mH p!qn7$Qߐ8 GC(\qH;p!qn9$5Q8 GC( 8 B «&(8 q(( Q)GAP @)8 :qD((QGA8 j@ɀ8 zqĂţW|8U4%h 2ؙ e_A7 h@ŀ r"0D`P A!΄ ["0C Î "0\H[pI"H$D`! $ #;zDb'܎Hip5"qnF$ňQ8 "GVD(\H;p%"qnD$…Q8 !G6D(\H` q}!s/Qx8 OGq($M(IӥJtiD J*ҥJt`ZT.UKjRZT.UKjRZT.S˔j2ZL.S˔j2ZL.S˔j}+]J)eJtaƍRJtcTR*X)>Zؗ)S}RX)nF7VJ+эR}/SsJctNi)91:4FSsJctNi)91:4FWJct^i+y1:4FWJct^i<WJJitGC!JtGC!JtR*x(QPR2]L+%JtGsg\陮Pz+ g"gE}a%yBIP+銈DlqTM6 ѸPڦ+ mRiTڦ+Jm:YƥR8]NW*ӕJtR8]NW*ӕJtR8]NW*UJtR8]NW)UJtR8]NW)UJtR8]NW)UJtR8]NW)JtR8]NW+JtR8]NW+JtR8]NW+JtR8]NW+M&JtpR8D)nN7Q (M&JtpR8D)nN7Q H g#F*T8p6RlNH:g#uF꜍:u5RmH:h+uV꠭A[ kF`)?,V L[)R0m1OJMh'5NjD;vR&IMh'5NjD;vR&IMS)Mԏ&GJ#DHi~4Q?R)Mԏ&G$)eԏ2GJ#:D>QO>DRI}NrD:D>QOD>UOIN*էJeRY}TV*էJeRY}TV*էJeRY}TV*էJeRY}TV)gJeRY}TV)gJeRY}TV)gJeRY}TV)gJecRYX~TV?V*+ՏJecRYX~QY~Ca%bX ~XbSBw`wJeN);zTVRYS*wJeN);zTVRYW*Je^+{zTVRYW*Je^+{\>W*ϕs\>W*ϕs\>W*ϕs\>W*ϕsBP*/ BP*/ BP*/ BP*/ RT*/KRT*/KRT*/KRT*/KJR*+zpٓ|MC>>%hu ||F AC>U_dzRo苇p}|K=AC>~ hH4{ B>JaCH8@4C !0ACH8BB,4eb F3&f8XMp0p>& '/XNL_𜘾`:1}ubw9 s%(LQp`11Gcl&fLf0ꨴ:ZE΢VgQY,ju:ZE΢VgQY,t:E,qo tu::`NN'X 8 .l&o>7蛃DG2`9xMD&on7蛃Dp"8}s9xNDL'hq4s8D^"/Gs098L< Il = sI0 D^$:pL<'2D'Z-ՉDKu:RhNT'Z-ՉDKuRh\y`Oq:3L`s09a7zI_0T1}bW n7 +/XVL_𬘾`Z1}bmߊ s)(TQp?1Gb N{B10? (_t9ENgYt9ENgYt9E^gYuyE^g:^V9 uy`^' uy`\*/TL_𩘾`T1}bU뀁[ ~ U~D2\-f8Zp=rp``1b4i &\,1Xf(N,fB!,ӿ:*NR'ZԉVD+u:JhNR'Z%_ E΢RgQU, .NJ'X VtU:*L0J]0/`D_t}# Fu"EE-./X\L_`q1}khEE8>q|>1 |,(XQ$0X(i<~Fr0+jDI2txFcBv :'dꂐKB `MqTjVA,)p>?kyrpn *&pnd7ղ&E:RQIE}XTPQAE}SNQ9}P>eLd4ZȻܚkUڷOUʾM6ޱ\,ԗļk/3kGy]_fٗ2gnk#Ek\W&Y}-q׸eª̼{}?^X/m~_j_+K[Llhl|K0EߺI` )MUkz#x{~G`}k8A! l|L`Lx>%0:A<9A<_%A<_5A<-A<=ALO lƁ# d|ß>ur] {h?L7(4pCӣ' ?} 08Ҟ.\#l :-aCOg.o?>xͅyMٻs !;OIƆoKXQ†w0UAOSڂ{5;A)sOX)̎.!^G⭻oY l 'fW?a0Y_`0=!~ /tV\߯gWZ19HoN֘>|klmkGl |Ǖol{/ ƪԳga:WK gG #KB0" #qF0 F^G0zB6'da B9`7SOPjAii{߆eXwZHMɮah-6?%"l}Y7 e6l~xH-aYٻ}oKJa5` VgGp/rc`),vs![K8ªk`-{zGY 0ay{0A?' Q=-<. l}g$nÆsz0a +,Bɍs ?B(a$MNa79=q0 DMvBN.;y0H!IDa79==a\b(l =& qaD4n/?X!"q; 8CQ]yʣ!(34<]\ "x'`9=K36K/L:w0ȤKXxv  ] P+OY A.R@Z^,myz2 g!;apGB+89aoAiNiJ˨4 2\G5II GEo,0 7RMWBWVf[c8`J;4& ھqΜn߸r@_5s0Z VӵAb}Nd}>@,8n!T5}BӧAtOo q ΢NsK!tiC r/\# ^NN_Q)o,l]@%amjw oh-Uo( --SgC<[ 4%Knç+4c ۫Ghj! -N{)EVLkVïh_7n^ھyAP$MpvvpvvLp~ N dgi4c4l{Yfh f)pG!ghKfiZN<Zm: bC!ȋ4@WDjH ~qp<ɉp<. XKSe .e.KZi h.nu1\ ҚY.Ӛ& Ӛ]\5LC7\5!õZ3%Z4Z^˵fhԃfH WNS[(p[ឭuJRikvwmn%XYކ۴f7if$pZ[4Z)uVmN^*eܬ5[,ܭ5G,ܮrR; \6gp> 핛oz ' pfho!Q |C;\ޣ5 7w'!'o)Mp):7V;O8gRw!͞} b%a1|~0WA _" g γgAzD뇄:ao|{0H.|0{j(~zo?Zp@ g{5m?+̺}gVFá4-MíCDDnJ?՗Kp08083x a0 ޺@ ^ twj@|#a|{ aSjț9 /xyoh nkE.u[OH%:%=xG>ֹ[c i0JOQ:@E@HËDV0o}AA X}۷$4߿#l^JD^4#׃O }ck!%H GR߷uX~&mwU߷f 6>@F ۺ%~[+4@;UaλMa._&pVOw#i]ۺKo.mJAF`dfnsa?aIgYhf֣!j<nkК̽K r@Whso{Eܽ>{۫W; NDi`Ӕ gh{o~b=ZzJM?D ʝhI{c%8|Z|7uUD;H#cp~<1Κ1Z=HC ||vl`Ώ }:%=8!WORƁs8?E[Dp'sSOU9/n $9+98otWyPpKJWipBD|pD|p~Vfnm۫hy"i`n?_-Kb痈/J2c˴p~`ί$ I>_y53H봔#+Vp RT5/T7v7hBKp~8p Wh OpBF7/, |: n}K&MR&^MC=i%Z#)8G] ;?QL^{JWp|83Rv;-L/iuM _}ef$/8Gw13Nɔ ~>@2Ң ;W ~>HQg!S3E†~>Jqgi| G ~@gpsyر|)a]1WhWf<|b0{y]Zzw[;{17O8=KK(0?/q |0 /t\IA:?Z]# qm?ak0=:E w?&t,aO0׹10+? lϩc w Ws!a^ [{Q"-aH A߾& T:[E ӄA q[ 7@ݻH7f$hOu6?c/~:/_L?., n+%ԲPj\BKy /oԾڗRRj_JK})/eԾڗq`}/eԾڗQ2jߘ7}cfoLSԾ1oLs>Gs>Gs>Gs>Gs>O>O>O>O>O˩}9/ԾڗSr\}9ogW?PKg7R'WX^pip/_vendor/msgpack/__init__.pyQo0)NKR*A=L5Nr:vsN)CA;ߝ/ИV{u7hI u}SMKG>XZHNc)dhH/w~~hEg߯޼Y\-W_d;n f#ug3ORhvhK[u 7@PƝSf3nM!wiOXNnJ gQ%f[*pe;ʀqP n`C*XȾFyѼt&^(E:"'Hw%$!Aފw‰ wOi?NH 6Jk~j4OwV/tcA8YK%qc𞌾셥;.rhQ8xtrk}?x?GSPKg7R_,+pip/_vendor/msgpack/_version.py+K-*SU0Q0"M.PKg7R;;ӭ9!pip/_vendor/msgpack/exceptions.pySN0+VJ^(ke5pʏ=k;S@"Ύw7b>l[T@bcMla,8#Hs`tI*?nwp =;gwhwL o9)`#l ̷05vRR;TU!>LĚy=M4U2~%S}dJr{Hg#34yV{eE-fʜ,F5~c<$\*e0.ՙvPkZzY&_0~'(BӻB~$EE֪ߖtҢ!59b#Zi}W_PKg7Rnkpip/_vendor/msgpack/ext.pyX{o6ߟb:imņ>[b֡(ڦmmT>H"-q;!#f8]㧝yp)ITY* ^\BV|&u;ʌI..6|y1Ni'@yQγw{as@QS͚ K,]j/*/wx"x?5oVYП{"wSy<)$Y0x">:|sS): :+XRvˌ!R1i"zGSb pIE )4ˢ'g@& xU!$LH%=l$%R#Wq4%p>VIYR̜"OAk{e1\]4M’ev%Y(<%7Sǒ0)DX.F.WQA!aqy3P,A7FM_*qJS)yNG72TorJ,RZtbBIG"S̰S$4K4+UP(I&Ea4T8K]qKLɼW)ơKTb1+zFkBXMxܸro0z?> 1qZH8[W+S`2Y"MtC_\V/IuKה{H'ڭr8.^f!2V*Kt*>>|6a0Ԗv+2uɠ1PKg7ROS  pip/_vendor/msgpack/fallback.py=ksF+&LL*CR-BoV~,] JH W߯{f0o(;T"Wh0ݒ"C~$ͧtF<#M&d]hllLdFaNhF6Isuf$8 /L({ M3M3&IG H# pEqsA&ܴ4[N8AͲ|dQfEٳE1E=O+,jlϤ&E܀;{tNG I $/b4UQ(wMRӔҸI;azP=eIEq 8h6 (]4>-fDRBG鸡fYtApo, BnanH!(>} l ÇffвB$w1gIb"i*d9o:f)A K4b(rYQՁ3(yNN<ӑ]\O|8?gG\~4 L \k ֆ (fFН@ YOBFՠZ:|N1`k&\MZ{ˋf43:K҇kyjEɓ!6kӦ`a%8]s8]p, 4HKF1D`gR Nn`Άdѿӆ:\m,&,6yO >OC$Ig!7 tp‰(NM͡߂?DuwA Ώ߃7ߗ/P76.~p}{|tq̐G CnCne;7ǿ!76O/.SEnuzrrU|6b_(#j-tt`pͅTaa Y{2(^8Qׂ@ZaQśQI==5\7gim D$HFP^jM67oX/k(YG抗pu?G2ru%ИlrM2J ?@wŠ548G t9i+*L*>hJ46P} gJApzCLHaoL@Iit P'Cc-ix PkN~ncVloyˋ]Bc 6N^D8Cp)}##PކNdK7=x3&aNH#Pr1eöHi $QbJ39A- A =sKrڊGD,i6%I@( GA([ef}p:E$ɭWO5nteQTiHYث l^ҪUjp5=?$nU>4B =pRX>({4O:lTiiqyp(E)k*`&HD2bqɵkI*΢YglDb5Qu>P[ssB`eΙGp6:hBĘiW*2gj ⿃|2r)cJTo?ؓd"y&H08PI!v7"6,7Jk=*5(.aw[&/C ^5xq38V}:L.᧟J }Jփs1vs}|!1aWىiݬoX#'qذdDDW8ʠ Lb#f@s;ٽmu罆@A!$4ct9?7DBliRlTih6*׆_"t"h݀.G2VՋD,Rz(f(ag$uESe zr{8ϥ#w<R>o &è4xS46tLRHشs:'|)i.=|,fa)!#ֆgz]11P U%{b5JL\sW"YV|ONyWAh]E: pNx*mAE(hɕ6b8qK)vS á9p̪z@;,R$0j5csLnPIAвh 19_?:p9 ۚ>#ƙGt(C3i+^$81i> Wz.j> | e4eW-$_;'ҷ W\LvZm .dWL^&l , 5kS-8M/Am{!QY G8ӄ[3B(ͧvs3"A8Ӷfl_Lˮ-KzYal.Xk5\uB<^sd٫WJD>}★%`قa Y*ͣ(PrC`X]Zwdwp=~hFo 9j(Z@F#wflAm~hlkѭf(Ri'͝4_aЂIvzE}%=k{${0jJzfZS[YELg%bݕbx\kuW+)`O`}CɑZ"<4:"kYuXEV x˓EY*ѓuY'*?uWV"%>jU~:꭫Z7_BV%Th{]QMN{(3=AW[UU~~eOZ{ vQ" { ogMLgQٳAUHːE0VH3`2)<7bGS|x~UR"|UKr!<+I@R An5>GŤV8E Pw о@f--ɶpP9r꽅Э_,!!b@WOcƥxa-0AؗuMIJyDԘ]d 3\Dsq8fK?.㴭Z˜eD'*.)oa9h'nC~1W%#*yۅ{^?e'yqL{x8$N"X\$Ubl:PÖHY)xrԄʒ.I2GT,kɚ30~<;%KE ofاxKFxVOv{҅ vV8BY0=ub3r<[$MXB%J$#oGSaLp,Jٰh#QG~geD=yJ֞̌%YX}dK"r/E0nq|(9ă0#F!LϞ&1E֐fT)%G4yE,rn8 1H0$?@8WYJh 7zHq Irjt&s4hI7LbyY"HC =yV>] ws ,6|Վ,'1šEƕJ:}UǓ,JZTVfճ\'_ˏ3¯[1؇"s<_G|,jgtۦn6IۜHLNFev̖ DM Tr ]XZbj7ܩe'Kcd uvRR"Nqo-ɣ d8"l\6%(pW$~< AAf ,*1چċN;$upFƇςeUSeV(+NMX.{a XF|D ,(6$>PU||JyozB> a?G] G)ySem7%E$/dyP@ ] K`8h> VWVMêYрr^- ,Tsdܽfǽp{%''Pl>x</m^s_yO$p)ԓBL)'v%CfteBߕ en!v{^Cx'S_CǓ' nVL59cE/K|JܳlNݷo%٦a Dw:A3nm\lFbnγX"DDZa+@UoK(+w_Bj_6'LŷٞJoce45\ӻM/n9"_Cy 3,K&O1*_5ر<\V/7Yj&MLXπdeǕ?KGzYg*ж?Xt:DkgjҀ "wFx ]d\'ί'Q<Ҫ/3l(ՖNqrM}cv/IG7X<ӆ%LM<䧧vϗMe |Re\L3oo"`Qca1 '2oڞkؿEq2sYfԔCb W`4?T%YP\Q5c-E\$[P^R/z{+*"WPE1dа0a|4luҰN8^  k/!ku]wˎəغ +٩Ha3Ŵr!V$ԵսMUmZCZmM]z |stdw|}˚hļoZ_Ȼ_R_V'˄|*^.c=E^^=>m#?VAi`}[= ?wTm1۪f7/vyWmR=XY恍VЙySm7g{_ad,ibjg[uumR՛ KR}A>ɹrˎKbw&fJw7J|i#Y5d7Y5w7M26oύmulOG .̱hgC^(w/9=X?(*/sAkPKg7R 2"pip/_vendor/packaging/__about__.pyMR0 +De2ۡP K)LIc[^WvfZ`=YwcǤ F!n*׃\[Z?1DrCЁcI{:=rz8!,8[mQлH*&`p7#&f n)R@wA3Qmq#QցdYv,QJ#ZH1-k @u]C:B"kn ί.3ww# [qM*9 1a,n}_E1S>3i܋{z4Trx?6Xfideyg99 3o,/zr?;r;"LmN*lڴ{#/PKg7ReD2!pip/_vendor/packaging/__init__.pyMMk0 l}}0(t2qVB$xɯ>=PB]"vB: ($^G氟jAġsT Tv4p@}u- ĄYg<ȑzhُCbS&AcȢ`]R43]a ?V1ICet`1^tE4hA,E.'+ &\ PRwOBE^cU.[ NySj_XYmB- X(n PKg7RJzBh pip/_vendor/packaging/_compat.pyuSQk0~ׯ8xx/#ABJ Tɒ+Iftzu>}wpjh:@ :]@hVݦ:i4¼A*}\9lcf۬:Ƭ1>aq^m,iz w9ٴzΨ#O*yX]@ 7\XB+[#WoR~}YL Tm-ZJ9\˒=t m}9,Rf{/YG)0x$]YDS:9*SW!K%>,LCYgKmoEQ29oM&, HIS4yK'-2Jhf"HYPS{ EU4u*]f4#R;/`T;TIQ *+J?ڹ|rŘVОsJrТ!τdazoa4R 8pg#EzQ:RIՊ㩱&yLre9?PKg7R]מ$pip/_vendor/packaging/_structures.pyj0@!c.)B. *J@cgqC8Bu%F?a+'ԠUcInࡐ1w]X輲&&i:q|M&d眵cs Ye^jv]h$I*GAHK* j]XG WP$j"(2 LLUAk=LMr[0pSށsqB Ǐa<ށ \+gنUU"aiEs*ZƿHg{g&x&BU*HB܋~ß̺bʓk˺4]9fwrG΁׮k#/ }b~[K5dkҝ+ >PKg7R qg  pip/_vendor/packaging/_typing.pyuU]H|_h[& ܃!G¾aGmkXİT^+˲tuuUlUUu&qCÑB(@6O/R~(|wI ̔|vWvԻ&uskMFNw7W/ݹu>wAskQ&b6[J42v h"Yˬ=kRˈl&n]"eIVI=wZY5dUVl"dAG;ےysa_|Tat`u ~aCmcجG۴az̹[KT6aUUUJmuw_5W-2:XAp4|> ?wwy>adXL)_ YY): X]U/b d?e*x]/\S׼b+EHfTSBHfeIնdBG&o;9ՀȒͳe&aȀw4nvbRP pwFȇv@<9l=$|\%N/#sd䐧SXڔـrz^,׈L^߈OLz=eV[Ԟ$/v&]&xaEuF7·)dS)I=y&Bp5~~+I6 f/9%n\:_Q[brA~8)qt,ˎ}c}@7*)J Prః-8!Z] ͪ'dh) AH-ְ[_4*>2[0ov: ۏl^ $Ȫ4$˗P34_6$mL*sh݌4j# ivT~3'#iyMn@L0+7L2PWuwm X'wےa.x<}Peaf|y2~s:iϬRՑСy?V_†ôVk 1|-_X#XΨdsOm 3_91A468;K2CI?P'NO5> gBZ9.+lEۆ\ ڐpҋ{ӓ AP!q4/PԐ;``v45$fцaX[>f7`&c6UtsGeanjz y ~io&W'gw9FA_}z^g? ƗM.sS0WbS qׄ0uB^/'gZ'J &e.8&j"rrqrN|Ehfq@+; (; ^ëz=9sb v`i  SHf3Bݫ„ BV3K5,`lBS,Vm!y\®Q #3:Zjt-\ZZ.kT!4Ŭb@$rǖJSU$BQTa^(2rUgUkE+aUD5cd='FSeF|J`M!vfB|*LnP~_(%!@:SVZ-aɦ`Dr H xX[x-1++k-pVI 3ш&w((G>vM`i::!29j VA6 i,5`CғOGb Gp[h81^VԎ&igTC`dd3ZI`&Xճ+̒`Q0~7ςBWn8خ:,E'%RZSIL@A@*mM%ЫE}sN#TnP-Z9h`OspP K* 创%: E( qWnW%8Mo<C1.IUm<ĕ|kU131Eihv;k' fyjδ1#9jE i H#xM'٬)Pw3pG>Zw|(}jb K`1KhYbQ"?|[@Q !1`1C0}T¶C, my'^zh[6F?156Uـ`]6kk߀AӻYɦb<041 gI.$#Kݶ2| H6#OY?:G((OY*˭wSπ0-{z!o2_'DZmV9e94U4xh"۾P2K£&gZ y}*i|؝,ew5E Мˎ*ȻLd;xgwEei< BީNoHڽ>H;mOك7C_nf-.ePŽt7}]Ƨ]Rxm${$Iu)_|BAvH&ztڥ ;7lNܚe~U11;4|PˇJ[ sxVN{סDA8pTwTN))Y9{D~ c^|5(664-Ŏ[D" +ʄ]CPI\jy#wMZW1+#+7RaI%T ^b!^UCBx: QeYp퀯y-NPX >gR&ܳS8 跤{h'uގTǽPKg7ROj2s%pip/_vendor/packaging/requirements.pyW[s6~@釐c3wWT*iK,EMm8߹pF 8aۂ&$7,lKt8Hd;ta둷8K3Ghl/7O@pNa)0{<ˤ噈e8dWαZ#lw80(Mzdc ]oŸ=\+dDI?hi^b]pf8y](.boy6XJFM-rzDRlu&/ȿ/Q$*te&SVa|ø^HvIQ%ThMZ^YRX殔nⴡ&Ba&v(b,[,<1u]O(!ZB\!}V$g6#pF!?ܟ܎ɕ+m@&#$T8e,[^7Fr@yΙ[u8Đsoo(6ehZMJvfsri3 '᫡ >BB᠊2'd-ˇ^8ı)=0[$ǹw>w}E|_B$FÅkic||nHX@,4e~u后ǩp{"uW rNY-'y8/Bw5Q1fo:Q>RwWsw֕$:i1=>ӅN+1=E;W(E>DnQux1 \;,jrfaI݁y =m)=$/ j5кP),u4;?z4ta!AE8XVXJh/{hPr PI ׹$_'7Q}`+ |D<ZWוU6l g98x ?٬CO$:WpMHcIDF@H, {ƓGl2XgmݭMnyZlZ힚ݽgә>8XQ1ƨV5Agj)QlUWzh𲙃My ȜƂu}zGSLjMWg,nd@S;&{qÝ|blNͶ% w*uF=F/SxA { H9!B=rʻ&c{VrҼ20oTĘWW/_l (Kv= #D5 20TWTVjH_Ii;"k>lqLt?]|ǿӳ/OLTiő+$e=|wګz蛹Rg`ȩ91c+L.m۵/QAg 9NVkQߪ[/S-&0eXrQ*URʴ.!emW3[¥]AANuîd췳rIFJ871X!6P#'e[}?PȀj^ rXz R8:M6$q;:>&mg)zqF,GPe2_PKg7Rc;AJd}#pip/_vendor/packaging/specifiers.py=ksF+`jL4Nә:6:qmZ.HD@ъ̠g0HqMXX$==nfUy6W;Y&h*$ZUFLE*/87I a{UVYFa͘8z}Gzœ>+f؀AEEy ΋2J\*:Us^x|rQuU|Y1F*CĆѢݱOO( JeZ%ej1LjbR<f녪*gK@='Ue/ay߿=?{=dYf@E'/xf _-7x|tr 3XӝZ8O^/Tg̗,rp@3z=,*3%F 扪YO@Qۣo?y?_%jfuER?è8A`@ "weӼaEu5@|A__J=T `݄2O<88tIc+O.0D@f(Ҡ|xпz,6ƭSH[@a:i?pŘG 1K|[༪XMVG7zR ywJ5J;ӆ‹ubIo!#HN U؜߅("6ₓ#WH_)/HaX4 }`jEɂ]#RTr 5 # \;lI$^H +y=ABv`Py^ OcWygY|g3|jxffr:LQCCyY8"pMXV~d.rhB {*Y@7 Weɡ2)L%bxת-c(/KOo`NrPMRBtL~ĸhtsotdts9w՞A~W N0 'QoNmq6 aYa@e6BҶAHR'8ƅX@EmEżˤ%@NxI΋4 WtMTeV9y'$̖DC#6p9lV]カC ℲX^@ O!軯^>n7/_}wA(5L:]T} 2n}c8pHB1yX bzʱ nfoI77u-1実#q(uA&9 de qIpJu 6xb›\ ,! zTo=qVpT 5 XM&ge &BNBXje ,R!R1u(O}m_'[bض<_Oe`Kpn-v;Z ˘K*sJ@mI8vrL}WezT' 5نkgxVՙ%lSyq4~э0mih,z&.0*Mؔ?& \Uθb %+pynKJ0GG]Wh+ ;(4.U>w.SrVŲLb;K<2V'#\0 VA\X1aB՛ '1 o:xŁ+p B]Zݼ͆A%Mu#hp^IHf6Z!9nс 58 .4Bv(v^+3qhOjyF4 +<Ú7L)P1" CXNgH-FIUPqX/՛9JuC0/'ha0FZ77)&„SA_'J7T3g[gY]&{~\R;0cͺ<U>MQv!,MYUi8~0zpY%R}o٣J2! tbyW-ƴе;e*i MKfֽSc ʅA iD$t r[(oe )3Q3|h* = ĺHA!{q/ȼyV{:fho\M u>꤬+{Heo`@yo0Zp=ҵNlz6aK/c g|=@:ꡝ->~[ #P)fTۑ*^A)IP- Fv>;EW$J*3]?*d飭xMNZy_.& =kav/vޚ#}]U1HL qOVU*6o6}QKt1tj04<8JP%ϱCAI`Ls[yb­='U@lrDqX>v>s P [AB&lyGxn՛h!?+K@œDgZngL$zQz@zck K=V]kY &,m,sǔ= ).(tU*7h1KnLRjH·oZq=ѱnSat-6`JԜ.L z= A^VW.nvE獭יZ$l abM\Q!k,leka7qIenT!(F+*ѓ2}@}jb/7 :ߺ !=F#qv^Qn-)ݟ5-'^: fs 8{@^#d64Zƍ7iaլ_*zC%`x Pl3 [__׿;ٞp}X^e.g*UɐOR8Ph &?h.28|v6߱hFG?iUOKB}-|WTuϹ*jZѹX?b[w[s( ˹&ߜ#A*s.CL{?:6 յ+/ sQ:G'xF0s!HuǑ~ Ot KG@/D".S|~΄%9\ALҺ *_rjv;?YV=g ^4|ѧa,iʺ@Zjc4ć8R=CvƜr8 ~)Գ%$ZFm[j9~3z|!ɴbC@}-U}Qf&e9}e6>, 7Dw- !6H؍Q|ʃi3БpsT1!Ah& >Hb)ONdX|pډ%}Dψ/C2;/NΞz퐾Nq,~ Ur/ؾ&BlBO"31RoN\q۰>kd$VcPWgUx= 1h$eLw T{&_͗72۪i,#Ά]6ʛ|R_7Ol%ԓ -~nM@6ukf [޹߂(gSB&|Ke# 47{'N:S^5*&vl&*?PR,j)Mu_UWBue7 4?Itbgkfz}~i8".&Ueb957}}؉wlӳ&^ 8Rk)JyF*k "/VohJ&Gv`Yw7yPWhu?A>Nw?dbuT&{:_iY>mWhVЯd~s̈́7f-;بٰ<íמUmFݺ/go{ߵJŗ>N)ł),]ΓR9$/tJtҽ0hS\*-S:7I]Ctv͋tO˒/.ί @A*rduc;8p(z \.g}%%Qs H]=6kP>zG_ATo/ÑѬX+l@1g0fxk|q|NfUoAtf]׋ :.zw'ҭ=n+_K>~lЬb0\FvZ,=|\W4ETlf2MĦrmkmee?DM?ikE} `C´d?`ӻ@m^]5mẉg/":h6h݁H$=o- |k7SGyK y6ЋL6^uP FJfڈY:nQJ$#<'r{ӌ&?RT@t:4~*zo%|:ܤᕊ/ C>+f^[]Wu7;[`@_]"6}vBZ*ڹz, | Ț~Z-.*\^uD^ӝ߂]CoԮ~mp ֤ |uVJTPQ Jzqںf{/u|og77];F|n>563PKg7RTj=0i qpip/_vendor/packaging/tags.py=ks8+t톚iKrL*ʮ؉k;;3s1 H(RGlM* UպRH5F_h Zl*boT1EȓGL"⚳gSz[!9`}O"M k s0wY7PE"͖of,L狘ED{kk,3ߟEqgbH<˂ymMD^6kkE|HXL9 K$<[j^G'ã_m;",K猭Es@zs˭+-/N-xL0c\L$3V_,sq)/2,en| d**l7A\/~;;MAܟW3p]^WOYOι LbxT9qN ߜKra@ ؓ3{,DTR$wAXM>ހ q'޹sX@?{?{GqD?9}7d^>…׍ToD&5}k߰Y$bGCхo dB!'6"w{'|>UZg<)N.d3d&h.sӟ;nț2Iy;l++$;B;0 HHH*Q㩅bZw4U8^ɌL9@O|Bg7%tIznjoER΁) MJK=]) u+ж>EU(.Ah9b( zB̹9t\gT=f>089h4`XP^"^%@},GA}Iޑ-)?aJ=,e|IYH0.&˟F%l.f (rA}($<H{Am @~c:{h (ZXV"j']HUx%m\ Pȡ*zl߉rj SuaU qO4K r EՠǠ$- jZLj#^cIagA&-hk`xXg) oLIp)&2puLsLaȘb9Hvl>T%ӂ+F'%Q{)F 湘w#\Q<|Rc|1u9Yʼ6 |=Ά#7eJcbɀ p{+ZV6(rZmjZPr-!>FgIyo ULB3@8U֕,(8fjNh]v{"{/SnIXGI :WL<Ș'{ `TI |•}rj_$pM5zs׫@](a`4f@% [%VNJr})1E`QKIt̊Ȥ%\Aİιy ]2D 題딇QOOŌb 5eƤ5O(C&A b*QZ^^PH4ˀ0HH7È*ͧ9C&$ҕViRµ1"`نŌӫl7?X#BXܕ)_ł>4I{+'FK6FJ7c`=z.,v%p(#ohC5f\a iQEA^1sG}6& d_+b! ׸P+bjB0*hjᤵ21҅ R𪧼e s'eoEԉj.Sl>x#y!q4LKPE>lb :E$>ݷդT/l'Й;&Q&"L#w3'Gjqɇ+(h$0  [] XH7 ~ᮉ 'r/6`el}VԵ:a$$LEwdݗoВ8FwN`e mb{]{|7u1hѪ&dsu @ocQ#jj?67t@̭=^f@gNY:rmaWܓZpOD8=C5緝5+IN1ΆIy?Fq~ Å˥IYmz /9Y@CokqF֜n#kl6zI 8{^ۚ 6&zRnpҽ47p_awn S)UX4JiYɶi G<aܘT޴PoR|G/9-% H˼*!V&]zj+4ag\ޝ3]!Zj$86l|'aI5MiˌntǏɵTW-`Q_2#BM/k,2n@: +6rAmHF$R6nh\ ztL>DRVw8Si;Úp8TGJUJiYx/0?ND1{KoTQk{_x"Ȋu >^3e=qALREIlR_WE]އBFr /0>w+7Rƃ>.;QQћG9ȽtpciPva4>l@iZ йp 0S+DUIZl4aggrbKЈYZή`k(/P@=>NI5n**vN>b\ιoWLRCg6DI~4EwK$$Z+ɡ͕XzI`T :=G{Sa*:Vܤ`冧K]S(UՔQx­="?@BHp?oe!:XK?2 6ʚ Sm㔊~!V#8:L[_ENV{z2̪:ܷ)[OiBbS*{D%C_֜ZJ'&d> "BCސľZj0C&/5"_iT֏;=ZtߣBlDa*$CߤoA%:[V.`0vj[p;}6~DͦWc70`x1m7rkL6Ӈ-APX7k tuE&FtiUR>cWK6Ucat{awzGE:/Щ)̩*_[{dz9]ewS'I@ccЕk5Ҿq`q&hGqluNMk-Vʷߠ@-r?]ep'֕wcMCuʱ^ `]y]\4qI*|&=>/@]krc((QSՓ\.(h7OR l˫e 91+vUz )BF:)T1i+wǍ4QXDaDCO3QqO<80˽KryIFcBHlRI욈eΖf؜ot`ၼcMq(A|Qt x.-kNd) x'QaLP 4 P~A7ڕU_qo=KJ lMhk+u+9OҸ:CiԘl5cpV*Qs*1. ]3E`yzOjj6S!Șh& i +7!ۄ#f}Cax+Ϗ{DLGy(DcȀz`v]M.TxK.4(*T6aP 7x,H!p]˰Tŧ2>",+g66亓 [MKCHH ?J?WJLG^pk!o0pzgMxh/Ag/(erkGpPcmX}s㬖H9QqH - y{߱qϹlNYPERk.oa .6soUz${kpJ~# fW89J~!F*Z>tLtp#mͺ[ܫ(=*L02Aj :j"PҶ\.P`RAF# ځLr܈U et`:@'@ipayiܨQ^57ݬk;<9*bT/\@hPm{'^:}SĻłG"lOP}P>tuD_^B:5k%ny:-ȳZ'޽۶nwnoh7W;xq_޻2;zg;8ҏ磟y{K?*ZlG"߉-i|Sz px|w{Z6\eW֮KTN/'˂W+K5Lt^42t-m^+?<:ЭBM?+Xm }#=T[Ʌ\$*WS+Ϭ;~4QP@E_S'v@\vXI54>ַ8/:YodD%QPNxThZ 4ݲlӆibUa֑)P>5$-[p:N?nˡZ]pߐ<6)30NItjxxصRw&tm}rΡPD$}>sÜVTuۚi3*`YꎥT]@/l~=O/n8эt )+F5laיM7a=#8Qۛ GCoMڬmN VԪ#Vmud|W+%_:kh7:ohWl!b5^jk`?+CdÇkys[Z RZ 76z e!na9jZ2mBYJ;ww*^}LuPUL5RVIu٩Xhp'Ǐ$Y(8<zO?>#\ہo^5SO/Yui=w벮}UiK\׷qݫZ?yΥ(yd7"iHe t8eԵVmgEq}JtEQ1Vc̺lh%7/ٰ5Q"Iĸ'޼&%F&r{x?:BAW6cY!]fGMC+]74]A`f淮8/W~;Ny SXiU;7t!a_Mm`ڭW2i\ӸZ+U)Pӈ£%׆sݸ7DT<Ǥj# z ea--7NnqC(M+eؔJaQ\iHUYh2\V%$I+IF+IއLKҒLK4h<4u0]% u}6N>>L?!6u]k k^Q E n@@*"@K?ݮ"eJJD)/.ZPvO> ӞtIʥ"'nH#szSs"pAdCAR5Iϕ#9 6?kʺxoG+Yͣp@yVV (nio 9|ГE4͌q)^}o_ w ?*)(EiT;,I%I0_YXr+@YZL9ji-Fإߑ ߁phh!O\(-@'ihµEg}^|)h{0ܦX/@7J& g.9Rrm:.M'9[ŵ5Cg\tٖ`:#]wePfQg,dcQ-_6*5NT$-k6|m\oOxi0+X~*!Du[w%54qSwJ(ؔK pip/_vendor/packaging/version.py[{s6_o&b#vڻk=q<98΍c!YS$ PvI!yLbn7b$ +4DDVY,$++\*G6aoTI`gxSO_>;_FHqĶp j؞L=]^O7 LPhGtS3~8TO5'~ZԤT8}\94ZC[? 3eXZ%L+ MZtŗ KnmErq0 LTKy #LOdhC{Cx:o!@sgS*Mgzl(i7Z>=zu<<܆ 2q/qH׬~,oB>ŜK:Ơem?5Jq E8 Č`[Dϑ1@/8ۋRg~ .ovpn dyDg~vrx¾zzL4R¶m#S){ 蹸D9ϝ5hDbFt%̥sLw$sRyJQsҹ $b q06,Ѳ0+Z uin+Ѡ#c'dB&9ŐD4g*ydхc\S}b`xRmWvrP/s/}M,%L7j;a9wM] *B.uqJ1M)j6vG -EJZi=я|O70?O)GZWaAJ?@nzyecN:H:Ѳ3ޯEۤxR@+"6!K>fWI8R,]6ddK *Cr0@'^o (ᶐ]Ө S/c)հB]b5)b@Ƕ@9s!- m1>-dBfq|b1[-LNl4x?`8gZIܸ8_Dɿ &1[L?Dhyu[J ͣe'^QL;z,n-`;x`^ =-025ݾkذ tmr1cRH*u-کx؁ P1a@!Y>'3<6[CX+WՎ-%5T,UL+.$_ ȋ4[\,UPԱڝcAˇ 69Um _`*&3ZsCk^gdby`]q[dI+!~c].URTJ{3¶Z T0omX0;RIPŸ"NKɓU^\fUtlbW99(Y1zҍٸlUmtbej cƖk|C.8}hL;8H4=:Y\fepzTu=O{n.&OБp?1yascn?sc[[ᴪ\bQeqhh wI:)ɦ.04lzJ4P1}{Ts:,kUBs9>8ǹ.@B^Kd$L{ғEYaq&6Maݑ*uF ;Լ@uKSd8D_6~g,YܑUޤkG] zzGՐ[fj얢͕mp,0(mM{Rm[;)=tQ5d p{}+SwWlUtRflCOlh #BӝO{T0ǷRdqS<|IMۮl958u7קF#շO M-$0I%溽b錎G! bIkF[]q+G ];KXhݔ<۷ZKڈL8*,BUcuG_ h@*_ vXYm0**Dw*zӑgqqH :}g[NFg[@ v\:gQW"T|[XWU tA̪"t'wL'& U4nUD|/.r ӵx="&;~sb<Ź58bov/FXوiII]^ mvDanОbn;NgtTU*sTh);1sIIvbs!}8d6U`͔Loi}/0l ؼs‰"މj^{՛Z!9s$u\{npcΌ16)b=˵?>IC;h1Bų b]"GnRv'+-@u}MZ+IZ͞c]]1SqDBu(Qps667MRŷW}ئ"qy^k3Cs2z!3YB/ZQjtEtO2B_?FIK` ;z>PKg7R !pip/_vendor/pep517/_in_process.pyYmo_Pp Ň:IM>Vqy&Ҳwf߸(K48%qvfvgf~j$~OsK2"i-JI'(ZP2mXi6UNˤ;W>tqeӂUdVkJ:$3^)4gd*iC&X6-((!ߧ?Sɛw㋷#Rln٨BX:-Z.p p%F%wW!ҿ_c%I_{K*l3\ڕFTCVj\%-BWC#'-ygg.OzKFq̧$5~p W(b:f "sVPĉhBLZ &WlK+U\PfsȻdIAfESLA}1z^3PUz !R ;9n.yB2^7_tȧwCa)ih f=E 0hvCIޔ10m`P>f 8gy<st#G"g|n[͊ *{XTgVk 2cYB+dH9ܘJS`6++p$yXf5{|*[7gdы҈@5EG:kts49롧ȳ~33;U}18ueUJΩu7 JEۉ44i@לB,s(NB}Ե.r*^)t߮= ɯoLcrqU;S42"vy:t(Q8~Kl!֣.oJZN#nmNqch9+uWL}hFtF#6:e ~V^`bwCB8X@h̉3|t;#$Dm^=:H`E4Xs ̝j2276@7k jӨV3p8yVTh3x F)]d7"!F~aEa.sHvxfG|"Sk3Dwp/jmXЁao3}-}b @uǽ!,aҲ +xVJ ;IֵzV^\[a$\:C!V])8\[n^nRۘ2ߔgk]{ ȧ01\o\Wǥ[[@o`3aXa3ju%')ZE&ԌL.ڐ$]ʾ]k^YVbH꿁LBk?G]ф~ a{ޕԝSߥ'?ÎhuѾ: eDOi_E/s?}/3 mkKL> _ # %>׿4{vM.C:ye68WCEڸv9u]W|i*|'VE뎝Bƃ~koFп~S0}HrKԴoJG_+x9urwFoQ,@,Tբp%!塮h'VN־g։Rdkڽ (Н.|LTWA-3^/t-xF)GGH4 [7M=IXi_LiPKg7R s2 pip/_vendor/pep517/build.pyVKo6W.A}ضɶvCK4H-I95I=&9Dg7/V6L/P;6Xjɮ1a0{{Hf;;˾GP6,ڤfmt+P; #J)KuFjF=Ԯm &58QAٚu}Tu d ҃j.&flW}Ÿ` Ε2˲v(Zܞ,*£yR  ,s`Jl'm%I 4c_lf9amD}4O,wLiNJ-RL1(ׁbSZJh¸`]<6phNAMvYߢ(.b Vf$Q ;#*k *)+VO+_xQ׶B8T_T3"7ytjP2nvp .yWʘT7uxSFZBIG`̈́[apAZ,IgK*v}0CnWɗO= /wA0Q$Yc5L9s&ۗJų^?D||EU͐{1?븩󉇊txN\p^'Σny[|?vQ6!o4' 5i[xW?Onh!x)OM}kڢ,A! bר]t@Q٠Od>%Lp?w/Q Q,1`IQKC] V ok#P3 w| |`!Տ [.~ QGTCj(Uid+"!jP"K5(Ks(M:WȻ` iD!Fl 'A&k4`l2q]w[F\2./C CɯO895\ hmA/ p;"EC~ t#)¦-Y `/![90Ug{R0GS3GS34So>Lm>R3T;鑦 :{!'b 1:愰iKcf~ NK.^IĀH$mݍ@(+=,{IYQCzUgaܽ(8>ZڼJ {j]HKfednɹ4X솓-@8A.-+p6@4[\֠ަz2=x['"!- Cq1+/I~55;zwk>䙼aؗLC'߿ 5 71kf3<5i A'ӵ)o ]Ĩ˄]SHLJʨR[f<8`jV̟ug p@`uʒE;ULcJZ0C)fi;h0gR/ ˝zzbXf陇f|PPVe:X#|vӈ~̘yнlvWC1q̷ )I;rLTU'4ʏ_w^v+\x4xeE$LN-I*mnQ[cK%^J`lD8Z~1*Rm(4,.\糿PKg7R VЊpip/_vendor/pep517/colorlog.py}Wao6_qp0D^\%M?l^<EQ،D$R#:F;d;y|{|wGwݩH\ S` kHT*mNZ_KSȴ*^iRՇaɒ5AivVVKe T M-T2ŝ-.(apmp_@D0[UA$p2sO /-e.L61|-EYu-&fXyٜOף|u2ƀUBc[`%G0gPJs|hAn戒 cxQgob9]s8y|>g~< 7na87}HnßJM(C9'ysx)y"2`\rUε$\At/E2Kt 7TڒWPt:OLPtHk+*;N3X[ꅩJ6 za[wj~ &ЛT,؏n"SQoozylŊ[YQ׹h=.&?#/+1n@Zzd+q&juKQ8x7b|4OU: 0]ϛarΥzn}y",P>8/W:DzLk^W`$)M8LoOb LD)ncl3iQ8(%"\ 6WZu>@Yd}Q߰@a'Ů/P,ͱaQÜOL]PeKKf!5mZ="jt:bbVF>KPG+³-P!wZNkB>1 R] L,,/̡i'-*5 %U?ڼrxIc2WQ&!F"z^لF(+Z#zOQo?polAq @7w` & Wһd.! E0~x[j.]? =_0&!t0b-!ߕ5.N.޻psBB ,'AOogrPK;_UoQ\WlfHN|bvgfbUbl߸p9| Cf5J4s .a.Z \u,P99 ^{jHHoWAKo2CAU`. V-zaQy*&,.vy(wlx(89&bom&LZcN+A)Y_ϝQUD0QaÇv̋L Uoe3r܃a+W,±ZΪ&-'57x1VHae{Z_ P5|⼁x .3[]p>w>V'--9&?p!ɝ_䔘o=2'eTq9iE|YU܃ oDeEB5XME hIC[F6HY_bm6RT]pk5Y($-R^Y:ǫM F_G#XFvѕlieK.Hft0P.)vAi͘y1|Ĥ EvkX$Uߞ.[1P0Vԭk،5%CNRz8IA QFQ5 Vc?8U$YRzjKQS5v7*~~ZDq2Ts"љJz?NEz$+0 "-N^zKN6B<)mϰ!?B@-ݱ Bu sK"vV]^SΎ=EYM [Ueʌ$ǰEDjfL{vV~8=[I,M:81|Pzpk /uA0tǯA: n/yyao06q|ժdԤ(j(2jG? 0%{ ;w<vi/p=q0"տd߃ٷIncZpNIkɿS6= #lxA5VβW wq_cd7OZ3ҧiQ`9.9?r!@(L"e+B1ILXPKg7Rs ,pip/_vendor/pep517/wrappers.pyko7~ah pIaal]Jb"K}X H,g8׺KMʊOLsŷYQm^vK()SqjV]keEL{[7t;DqR]nm~W'Š}w%-h69MEQitC9q*joU7* %xO -l vh(ޖn`#>%͚mHlRIo}vvAV҈I o'-eWJ['"r;<4A ybDI^D gnマt%0=E)P_-lLv( ['ȹ!؞rNj1{-D$3unmjA7CB*0B,ď1;ưAo_Ap 1™Zr#a+ ^yJظ&]EP 灬U` k# yGɗ+,tZEcpތH#=A!"ˤX&qͫVDqY'txrOCrqUݓ/@͹aw?}A HnF~bݰ#Xb/5;EuFPp{-KLx.D;IW# l}S(f \ _ ¼2 DGwJ@%9p+}60TBِ0Ͷ]/|"W8AtzC0tm3ѧe(98J)|Qޏ<NTI۱7tV u en((`+P'RQ"Sօ=@/vag32BPۥÑFSGP3&{m?0CB!!gCH~ ] KٞCX4J08*|%8 ʧkbğq42e)c ?7d5{E wgN#p9dWbZu9~DFG< gv4Tn,CǑ~>;Y >]>~\4;N#GN.X@$49#'>섨(Ah!`5s~Qbpo8QRu(Q9;RlQTv*Mbf_d/:KVʜW;Ў*LJ@9l._bޠNmb7`h^R#Q#aVk6R$bG<1ٿ )oy>Vg (,DRGB>ian0`gW jڑq]-`#?=6s6G@pͰO젿\Ɵϔ8Fp,F.|SePB†-iඥ&*N:% ITN\К7a-7wTz bU 5ڱIZUaq05dѷ2b4CLqj"`!O'Wmy?G#ӌ|L}8hرDl b=d^ӭ]ƊUdm|dJFx H$<=v+c* 24XlXvGO't-FJ7tgvc2u 5֡NΈqF3kft&u'ʉzW5S_UCL5.rEEkT1q$9tٸIyhOxv5WٚHOڦx:SFKG"IaW`[[}WouV|/qh} "vJ#`uW#~~sqe- MG*h 6r+1')ܗl(]4:Ex"$K!nD;04x/Dqutm:{ƾ88=8:qZ K$~599_ܰ5QbC2]$KԲOqɧ"-3my/__|M՛0-ߥ7K`%8U3A%\wb!䗯[ތ{=:WhT5,Jș>H+_VI:@,iK7!rڮ_i{F)FxꘜTIu f9Ah$]I|_[̋/[]Y%~$ew|^#3kKLʜ"@;NmaJ.f_<8G1'wS:Ā7yG _|v2gVW4+xkĩ5zʇ{Dz<3Yasf8@*~ Mw;nEcv; 9e-?RI q`i {]UȽM_F  g*ɘlntPrwa`[ O4]q ˽x9F)sN_. 7SVY\,ol&L2h`eAd:,p"_*v ϟyf 94%Yr B@SO\ (\Qx*{_ӑOk^PKg7R=ss%pip/_vendor/pkg_resources/__init__.pyԽzG OQM,Iv{W^G-cK\IE@VQ(G;y 'YY e7_EVeE"#G٬WlYഘ]e.fӗljQfEl.YղrV+=Κo}n/պm.\YYd4nú)ۃM]KPg -62l:}8uy^pKY0Mͳm[fMSfUB z)j]07VvQHPyS՜mu_6k|ݬod])ov|f< 0lVf,[K;n*ZbG?U+`Qmin>*kժYohre̋M1M7檙\5@Lv]N&YuCmn }p ak~mSݔ٭J0JXװC})ܻŶlrnHڽX߳fTE$Mv.򦨖Qt`S,o lur)DW}VmGwlֻ'[|uP~MX59Nwuy.eYOV 3LXjVI-T|xhe/w9[E]M hYF1ke]]5A$ ywlyw,8v^D1̥eㄕ'D_X\NN̗W/]> F=sCVS[dnlJo m%3JE&Vb!,wffr?]箏x18K':D$}Emv۽j. x 1@ ZO!F|[(߮ R_ͫ&G:{]Zh8hN}'CQQhؠk |*! &-J34Y6jFQѿ:cQP׭tm #8·8?7%lR3YnA'j BHvEg-Ç?eQesp峾K=pa,n.EX_OcopS|lП7<\c[Z`?T7ث'>Ez617~9pr|W,Vӟ#nl8-AK Dp*jU(*_-XX|1)Pd` nI;[W EGvݼп-6>ږl>@>Y?M"bhp!6s1UB^:gM2HlG Xm$~KE5ޢ&,Hp/ d̖"X Y,=9w+=&ȻbrT*@ J]Mc/fr',lkGFMTTX:E5ST 8p+G@I.zBݳ 7 оz$CicݏSX &zyy,2P^mK ?󹷏ZF@x@`YZd':c2<T+L*mWi%l X# 2AnNE, = s#3t3O/Z&Eі/lG,zfݒĊ_ruJ| \h>ʑ9Ftq ?̟a“\˥L`!Odl7oC>yQS@%X~0">2A%ßix!gh̿YkѴ. };K|s׏L{[3͑dlqNJNnۍ?/1fI63w[,#˓l:js\8jC`<׮wL)o| ڠE =h ) QiB0P{XxO42؃NOz:b9ZY[ɹ<{Bv$C:&/r c i GZ8Y +T#Э:ǂ7$ˮ!?Mp*Ab#[p̛v|($8[.UqY/kr`& 7[=䛧%fl( ??0+فa` OX?e\iz:6mq]Y35#}罂-#tz̷r22Lj31qj"cu) Aϱрa:)ͅ% ?3Dv}6x V޼dۏNp핾" p!?:.agwzۿ[mCߢE8t QJؒQe+zfTRhr!BjuiS3DSxe$ [CU[|FWo~57! n. 8`YN8V'J|iU0"FkkÐG 1u`Z$RUYyF[ m* x j߳ 4>͈Rd(tYв3SFR&,)}&)q#4v_##IBA#6c}BWCx7]z*N" C}I,HX5tue1'p}Um%/OjP_EO0킡 0 HD1'd=֦'yna2>Ž73D+iWv %6?4[ ï;`. ;u7xe.t|pci[liUDc' N&6?G߀)0.A#c>`=kRrmkvvQ;B:U_KW5:$EwX\v +pfwaBxb6owN_aW9\]:NQF!nTߪ#櫋]F {ղƳs#>`*6m{P~2>C#7ODȶ#pNEԵPkaJJԞN?6HΎiĊby[¶c6\FRaK9+*YT&5+BԨĬ!2WxelSJ7`4yNa'&%@t@Y&kon O_ dM[dzD#DE%'\aەnu?jY[c#ψE9A- Gsa)h!ٰ 7PX*O/uSRoIGAc\QFF^8Nhqvϩ9v&o'׬n>vTq9Va1ET1lBˊɈQgo) Rc^|s+P*v".! >*в ,[~O#6H4’3BZpInr[bxi2wiv[\ ʮ=nTE:,ylxа;TxeU(i|@hV!/n(ef/A4'>]YP1Aΰ?F/)3:eJUI,Isk(1ď,Kc}¤4;'!ڠvte?oGS [yz5*pgۃ9<~[⌔Sl˲m3)M>A#keh(Ś<8%I)rU5V@Γap8%8j;c.jp܆Y)2zs< 86;aÒ C#iU&C !u|pݝ> ~,bD+ܭǏטG`6d!0xV{aQ`fІ<ۂ<"|qxDPq r7>I(! !aSV}[/Q;>- LHCUT!`cY^ (Qh"t16xL4;"kl;(v3TQ5(>N&*-ŵ<[gyY#uUmߤVsNe1b/7Ki"P9 .ua|'uyk5!FKpnq'V ;P}p3IiIc_xQ2f1 0KH@ZEܛ.`胐Mlj1ʂӱ]wM.2-J!.I=#Gq_@Di3.4%=MXƘ [fvi:!&UV"Dv^+5pV8 Rh-vp_e\tj=@pFUĒ߆D6+"cкGzf?#4q(~@hV^@db@a^#{FZ#Tكqo Ֆ[d|~/&ͅ iQ^ eH$g7&C R ]ӻ Q0 8/Xba-_7;itIv/C\fk9YsyXmvX!-Q<[:tx&[$yiVsfبpخkݟxB1FgO?>@5^fy2j&+u{Ux7]06)#CjEN PPDt \?HEHI}H`jX.cHSK9 4WlyGbBx)Č0lwȊ(Q] \K$eլ:2:6doXJ&z'C"NRT=NY)i5߽a]DQZT D)c\퉓r{ t"&, 1Ozt~^ewf 䴨OtYc,ɶI!Jx"7[Wn(BEMzNZRpq84⻓Dhg$TS:Q˷y?Ղbr ufܫwC<>E>R*#C%i|rYKz+W_%~yFM.V⁕4SEXYJ@XmJD5QV,8 w0kVZT }i,j_+ Yr/\/v.qw;4ݓObY4'S!wҫE6:5˹Oa,cOIMiS7γXrC"2`k켕UG 3K;@z%R}& esuD4~U1on,G2gd{]{pmi?$Y;S[kU?3 <g E8m8:68 {8t0OS.tq.!~+5qq`n<|l)_co_6!Q"xN^uoC-hn,WeOGEub{Vى~ od ok55F3 Hguy&>K4~5NL7X̣Yà#A k_lzGsS)Ʊ04)s'NO\zZ˜'vax钳v ~3x\:^bmD eyQ?c%NF15L{{d.% lo+r(# 'Fm5Pc`E6l:\0"Nlud,c29ftg(ɱp`^ ʫsIE+=h 1}|Av#`IgB:{r>pMq`g]@nʽ \O.&6t9`g6DM>:H";|-\l]A(Ik1ͻ)V &0$EPdQ)ۚ_y  B?f%6<8)n^v@NEZvEenEQOT@c7^Ā5qIQry<O_B|iz朊~8anq>p@q2.)44#mHBmb^5 oCԒ,! 'C*DIsNJ`|EUO4Mp]ou}~9==A9g&yHYo-rd2'e-ZZofmUFM%ùPqQ$ r)0N$?ycL1԰>Tw9j*gB,h>0-y Ho2|t: {b5[1EPD7k>e#Kc($IftЫ1#︼*9p<.m B&aHxPtm'vЃp''r&×C``x3 ;sMH;s@-\Ibl a,!Cf5%u6^?Z&Į誂Bntf''xmdžLɠq<*7Z7ۙ2"ͥ'dL]@ɐvwh,C$pu_P Mukqwp ƒ&ZH>L5 ~3h- pӌ%, AJd]8 i,Rluya1p5Y (*΅f̺yOИn '@MaB0O- VV<"-v%Y0Զ_ʜk(SρV|?x6&J>kH߰1]E%xd5DѮxΉ 8MNb 5˙zǜ5-&=oB'ŷ'?ޞ$ulZ)''NAeR+>3L's鱊yZvF.)b kysKɋ#ohNTLB:RBXTUFl!F*@=B!颒{A'rt qs0R5 RRrhA@d0}0R7 [*<0n!WC̩NU|{a-5Z̧X_nFe;]G |mCP+;8ڱduw 0rX7Z|o GHva*dߛ#rdƨ+#uWĒ5j ]]w'.\`W?Y#<,b=|7MW[³*ӂD4q$o R4z12;Uksh\Jy)AYS'@(5$E8tqxHh_A4겪"]8T~Ȁe  nԠX'U17*X:3g#!BќZ >i֓O()c"!M=(ߓ7 믞BO[}_;hѥkf݉ƿzw:sNgdN]Iۧ? `ߺőjR_=]JNv[㎸t%8T\m`1E=@^֧YƟf9z?4uFg&߫.ItAT?z\:mnVKnK +څf 8KE  OKRlH$&.:?rG8P rdj_i*V-Yh+ly)5Y9T /%{D4 FE{ׯ&Xg}b]iξ5bN: +s"%Uw0JrPg#q)Q!:,W1{W6'XFlXzݓim߃V8p.M;8}5d:L:6bv)F%Ht$J ?D@lz02z:(eÉ Yzb ʼn=7|qaRʻ0ŃJYDieh+,nk@|Ob&}QC⩅OesϱzbQN&he330?Y}`hi7Ɨ=.S AydqcL叾Gv !l9M5+vBmU$`9&PQa0cDdQ*'L[PgR) u/٣ *[?nC;hoK9̎>/h@1/7حNfk#ʛ &Kklpy;Tû55e/|9KJcec.oV6Ж#at\Э~ᅸyQSXR3Jvn,zD]ܮ0uf㿼9 馽8Ѷ|B(kC^l~0;"s*)3,ŋ#1LǧY% \k|Dlk/CX1nFxkd#Bc6H!$=.iIUAT ؗ~Zz±. \Ӂ?jmi{V͛YsKx&n%0 'MV=yEZSkqcWqHQkؗ4X91{eu |}touލ^ iZ6Rx;Q6F!D !C+k{u# S}dZ 8$6 l#i8TH(Q_ =j~ =g}{Z#Jyb'$wVߊ`Z2;vw{T $6;}p4qFN} 6pQstӘ|MI6fڈ6[wCK4( BgǚUw{vY4KՅV4+Rd=cpj8:yxMBʟ{=^c~HA A0 n 5/ Y2ar5.ź ]:sAr۫Ĵ=tj6Fiיܩ=1Grspn-זYGT;>v^HYQz53z4e!$][83G_dK:,%o8wz4~/ťu1QΉƔF`s ͣm j(c6 ]3 7e0ώGڀ[JW?Yba:DR?uPtGeD !-1Sl0:^^A|*gbwvc(3Dd!%% 4ł}Ї]bם:u) 9d0Ӊby!}]&Ek; N2t88O8?5O=?UuI@t3{YķN7ml5paLE]Tj._1%k<dPRUu_3|nί6%WRK8+QkL4eU }[6,E76TT yEA jtצSu;pӅ3NJ,>\L[ JZXjsE⺭PCzޭS6MC3TCmY]D8*Σ;6qgf%72w8dtll}I!}M߇n01P%ST=( -p燡\$Qb]'̂6;YE?R4m6dm/qM#q}w&7hp~y!&$ԇà3IVdf[,f:m G# FC(sQB2#/ڲ]{ue]`ӽ3z]n?PS] W_:axf-x(8hVjq<6r };h XD֒դf >Qٳvk/9~ϯ{>_7F=F\>U4ԏD.V j?g;ݚ E5Srq($RfC2~ h%ᷙXs_'bp/L]p ?D>3M*X$tGVy'- ϰ_3{Cʛ3Wc'V%Ų&h9u E=q6i+:JԜXDЂn4՛Cc33c}+*,n.E㋠`jr`u,_VuEHUZŶZj.bIC=?a,Z[Tb ^Tλ}MN,m5sQ9 ڠ>L%`Xg* D֌"_HǔYY XU& }VN%Rbts,V'|]7MW&}i S-R"&ӒQ}5=]نj9M$ XQa7MA?Z^סrc K˓*!p`!uAG~GLE(U_X\\MJ<Љx%Uе[^a'Eđݍوcp_3$(P5܉6t98fǘÑ\ ta&dre|'pP $tt ^r|΃`tNĸ -So H!?cf#GWU=k"`4+ &a @ł k&/3_Yx-+Z|o킧nlk3°mayb%.%moJ~)15hdC)' zMo(Ъ-xц۬U?ur;LQ~ aOEx3ts[#K*eݵ!?0vJ-Uc<s rTLe3\[TO⌃6 s{oFl\]AXdR@v*z? QS`8oFF'J; wmS|I MZ-Ftdʩv^Mp!~ c/)]`dLs :ȝes_iZv2:qZ\q82P~SZ)DY48/3CQ'Gn(00Ecj2twk(czP]@}ߞ~.E^f68lАbU}}|x6H- \\:K)Jdo(MVF(VƆy%N$ZfƑd!}tCvI,((7ר\%mr' I(^7)Őx*Ֆ(j _#`6~g]5#ߊz#>ځc|檖yPտEG_3l"oJJg]k,tѼ/ qôV .XiX.+м\rE.ϞIY=C_=IM#߇HI>+(Xxz\eJ1.8Lqr>Y]_S |MH_#x7~5䖉ΖZZ 1털vCB yt3njkσ\T"`ݫ;[L6;IT>[L I]3ؙOVsby8\ë 5 ͓euђG}P,w}.xrJ8JH E$ ̡%&4Z>FpgW1xBU(uYNbwq8UuVBRr"j,C{!IeRw_ 򌛞kQ. &ihL=[λv¿9YH:Rwj3VԦŨugDΥ3}C]l rʘj<~#~:0Uc5?1Gi!/o(7l%+}v:N[Yϋ%(:Wa ^o1ӜICMPL踳ͮK2K9ClN3ĜWI&b)" c&Gd5yez鎘_B;դm >\׊F#V <_˝ytU2䇆Y&jrgg FH阙PL)&`iIynk(Wln{Q)kut,sD'z;з@7 AM]`qgX}5ۓs=hI ڃY07G"t6X<ʞkThL5/! = S݄qb]Bs0S2κ`~8GஇgDy>եOֶ=qrOYok+G)7A_fFy\)cS971ȃMZncv.~B/@֏}D}ifn9;Nd>a߰i UFO.h,2)[#뿶\.moIQlwu0qMEwVn}0bLDp[ܐAQ OA_46,~D){GDESW땳;o4إ?PaJE6 EtC)-9uR[V/'! Kx#֊4-½|ƌP35.4s].Ϛap)H^Q7|q `CAH@-L"(CfQyYbLMhlVՍ6byt")6&59C\O8 93>S?1ұt4Boz3GIy4kw`N`S_(5gGƫVK·wOT #^]EA$,HGg虃w. p@qui7_<7?$dmcpS}ZO5X+PSe f:$:rJ-Ks~i.1|{Qusb˒#ɬ7C =I*i.w'fex r͝Qhc;U*p\Rb[nMo]"#3m>Hsde}LţۘsCp m] ؖa n}[׫/^d2)B/JQYp['Q a%u4?oU7ËN/a18J4{E8YC<QDܩ})-o r)Vi䷉uoq2`1}||Bqih*vk˅~t (%&*a䰿v/q4Qb3P(X]_ef2ԳAt 9{^n.Nhi2tFAh3fĠB#ͲUkDzEdf%ldd{UHI0\Oaå:JvpeyKpJ.vV!jA*._j)$B HUijgˆۓ6elҮL6RH?3Cic)I'C+wsrE2EJ d|oR@mU T*;@S@ Ē6^CNRAΎ {GȤ0zј"( ϚD)C}r8:_f=)_zH!Ӎ la!_Z];( 8]R l*Z#YWz#^CwPr!bu(EETM""͚5PUSګ`DWrٺQH$+qfMIZ}.䞀`'G_<<^7A:m&k b3T&|dj7}IMFJ],Ք@r$b5m3 ·G[zg0|@I huɝ!k.t4K}]޺ 6LcƉԒONmyUatƤ!T޽?{B@LZ*AnG=NsaIi:`~;Fa*uܰg6wƝMM'a.|)K7hX 3ƾR8 .} )Y|vXkD5$Zﱄrw,gUu}o + eIp]` G+ޥ/5M snw57+L gnut ؞JHi$;nw{5Yr+>@i} 1I {.МCZx.h0y݅{&k({]S}XAޠ3luXSs{U=`G:[E ~OO%Ϫr08P [uzE⟣P\ j>1ʄA\uV5oFh.bd\Ɯ,{)'mEJԙș{\ hNU7qga#7c'XD߶ g}Ҟ`LOY;Uĺ^CDzsoO:8&كb} [WLxۥc0S;?jSDXFA_GKXÆnJ);ERHƢ%qQ.\$Y.΄?ח軽ZaY_nA*@'Y0ާpc-" 7Wm~NE+GȟXgR4J (jO/>z㌗QҮ7LRηpً/n3Y;]vxifam>Peuā,A\LPnKCT.5o뺹_'C)\"p:et)7@ϯp2a(]5ԯaLy}ATO)80%n 9&&P0Tt*a-eQ[r[a}E ꜫS*NR(K{7pK 2;kȷXrvQt0GG'MS-!EgEhf01 Ihc\1eFt f0}` Q$іOWg? lGVیÓꇳ*)?1|!Rv=KSXB LzL?9c Ӭ՛` ks*dU`40θQݽx+ZmFpghEgB'}s7&o`tI{l`}$IP^mnQ^ T, 6IԴw.=?@H@wsvLfd&L&$#_K岺AR0=+udcxh"u8 nuB Xpk6\n* [,}'i H4uVՋ"kc58ucpS9OҙrʷODmAqr̍:O$"&(&/;܀x c\t֩Lc=I#]_+n_CeB8>"]˄2̒ ]dG0v% ?ts(!.,oooƮ\Ekf5k9XìQ#:QknH;gG tHG3A-0;ֿq]7Q6꛵X<{ %cuXd*iCitfҿHA:uqjW{U JB-҄d҉{V\b١S؁n7faIԔNLsuThջ+%#:TGbHӎYJYprXmُ9N,Vy9B7N;2rB|4ի0P\To F8W>0;}Gp5; Q${yHLl`$0vZa eQx$vF $Fw)>.@B`hg\Hn6~Q#ݔ*F߇WCUQ?,%.uƊ#3#n E5T-k ns qlHc*MDiDF!ml[}* m,%j$Z \FIͪj>LB˰NclҶR {P#z 2Z>3Z)l/gˈ^.J(&;^5LBv7)iߚ-3 HhEs H⨸KΫVͶK]q8 DVrB.aW9R.״9G-d,Sco!TFEl|M &twBl򽄻z'ޱwnRy&7X@PMk 5zǁ aL`APE[)W@[h"7ZtYKo Dg~[ԺMtOJ}!{.Yï&=GkvTG%L9" #m1QF \9d +_'j5E+heEIL:\wB!Eh;4 $b*Hdp0]IC魋65׊\}'b1$Ep";w]swt wޫ.NZs]0E`ZƎT4O5n^^OڑZ{PP7'syry_y0̯1}KṜ`ccg[fHaָ86f&iVIy"GKTjm8ŶFeMŲ'$wʖE H3 xa&K[fa EՌlpj\EuV>r #uPh)F zn>Uk@ (|ٗ͠w98RDN>z7eş Ѹ׼sv\h6WykE[ȦS#>M&~;>l Ӈ(bcͪ]rrO]#Bw.n+|&(H\Bm(G42vJNrv.NOkgeg7Ⱥn4H*Rr}{PB \@vePH(a+9vd#?^^9Q$ͲCSA/{M;=1Bv 'vl",$٩OiæStj*zC"B;P0]zYs`=$ UuպjfNJ3aK<8L,%}65wnNP];9iA{KV }fX]HF"L*%&A?|kD+R ") BphtѺ WRݟkXB\=PFmJ<<3o2>W>ݹaR aLzXDBOB@߾۷ +gQEi\ ojfEFD&RrHhIgN6k2ɥ4b[ۦV!vq^ ;GI$|WZiQv;7mEBxK52C:q5'A%ߧ]`N^`30o$ӧ'.H/ y-quF/eUydV[ |_a!cD˥]QنiA,٫^gݜb=6DDQ5YM(7DJdHFaIzJhd gW@APmf?/Rz$E=4ysPIG([{* Vmp_Pm-B" W>AW?Hnr9pwh|&Kv ѲhcMs#zYz,pQ7s:&@P.>n)34С% mBRv)v{n͖:(ZQ_fmsWA|*U08s6R.@K0~r׷=„:w~F/b@`]HKftRnذts>bY8Ю6k=?O?^}6'zKBX~7J>Q瞜MK{*^nI.u\`qƎ3_|zm7/=}SLIl9%ܿdƮZQl`$hbjpX|,B(a8jE- V7-`ñHՅmUFcɳE\Oee({m)c F<\{C8[} n xeʠGdKhk+;q6aV'Xq6MO%gɬGI-%}1YeGMzI{=>|84^s$8NAjńq7rzz.{믳w}6Ͼūw/g$/u]4F˲{HK6<*=OKNiRD^͝Ge[l3_ {SӸq☮' v/FxW{`$#,TN>:A+!(A7qގI6!xR5:1xS7g9 Or]=f"fi3(AƳ(Aƞ"$ѯk h\w'!І0w'Hh1CdCe0=eO1*j oEZQ4)S(b>^Yh$qbdhSTHggbl+)œD.yz?AtBt xp!OJ x&̓ $O"xb.CfP41i~2r`HH*nJ1!8#(8%\Vsaȳc(](煜);ޢ& @XM%(c4 Z? Rբ/62w[NCBTǖ:]19iAY.>|1' b]Bv( n\q❺ءp3co_45jJ}b#]V߿yWq} us PCjffC6Wp/qHxkdoh~6Q_|a ߄Mޟ8^l *Ų /|<&qnUJ|өqVfi><9|%&pYn՛'Xʎ)H JTq()xQ.9@<>ƣe#Ya ioO8DSDlf/q$YW#Mpb4$Nw9O1mQ s(l5vG\s{@5V\%apN@ o)%~ܬulDԪ8P< `b0uPؘ'V z]R&S>"Y 2pU@2]2T< L {Am Chn`g-ѬrX@GE4D{z,~,u0,YH ʑ{*cAJՍɒoX\@Oyߋu1krW%{.'ak&E[᢯"]Fc1p_]^8e oa7y fi\V%|Tr>bmO2- ?y6H9%ߠ]ŧ7{P1i,Gz*:YH'ݱX0d*|j #tJɒ*T+M4)} @!BAD r ūDˆn0YG%+$UJ5qI3LI䈜dǥjvATa';ZMho_?&mIݨc'y<2L/\0+beZ@!'^wckiczuP{mݓVyc-t? .ok#\P'ͤκbYq s?Z={ykL 7^qˆ\ɉOr0ļJkqȾͨFJՙV~:nQ4XU$4i)^O"em=Nf@i#Â7qjMR4fŸœ.L0"ۃFbKcb0 nQ4j7anl͂x`pnYNBr aԢ*R`dGCcJԤd {漐\/ZRPKg7Ra$K2'pip/_vendor/pkg_resources/py31compat.pyUQMo0 WxB%֮#v$vNU ,$SDV|d9~T{"8V4du[Vj\ |ZY)epeh(pYcax&;.?tŘHI $=-_U"{ht~ixZۧ"hb}GjYغZtiC6x'yTA Je2K2fNبB c=ϳlOlR|u8MUeˬsR˘"ϧPΰq; {;帘[e\zXIv`1A}TB+PKg7RBiKl pip/_vendor/progress/__init__.pyW[oH~W5)uJ}Y5RhnUm%D`l;3g1i3~p1X !|4gcih:GL;{Vsg rXsb@ X (K \0|.6#02POfE lXR|-`NĒ02A ?҄$/@?T7d1Q((HĀfTX߽ žW`:׊ɜ׃kOMs:L'-U} x֭顄BnOg׶sFޠ;O`~vMO_-7L6:Y@ J]Ƿ6kμnxJ)Ucg@pw0u}6| M)1oykӑu$?߷}:dBZFiF1= ͒| 3]9`BƒU?B!v(0̸$.x8BHEV̱ҥ09IPsTy5p~h+?g4Bkd.\DLIE}x=.CBE)~SmyU)ɮJ&{$ ȏQ* x5Zqw^DB*QP(*29^K,sYƮ5o Q3:%Ucm}\C5_vw-p1MaZ!a8H(KA'dF{2ph$rއx]IDTd΅7}388<,e&+V!yBBMa2-bcs_}?=uRDO+S79|m.(. %e.sAwYo|)Ņ稳k"GOC xzT9-ZG,q[Wu^3u18= _4e'5(0({+<)QnrK/@egʺ$}0~w#OZykCH8iHCKF˫ƱD#ܠHwhp };HVm\ ^Z?^C֧]QlmW|~{lBqQv lAL%j&Ȫ㕀5ҁmkwe;oU򪋇b|C YPֿZkU255]zU)̗}u$䧋=FV-Oi}&!WL˧=vE3=.RKoԞt)5i)7b-ꁓ8mP$1n>R{M^U.j#T PKg7R̵& pip/_vendor/progress/bar.pyUoDxڪJR9[.h+I-9vV*rq2_A 9/͌$!@A"R237o{9QO#(i`kF:.?<1M2 +eѰHǭO h$<"# I D*@>4,r ɲ$ȯ=F H:'-Xdi6)rD#kX2/Ή@ʒ+.+D6qDԴZ)0HJ{c'Զ6C3ˆ U8 VMWzg`kcF ḱ1X1HkzT鮩9N)@;L3NTCWO FL6UCAѶ6pd!b` DsK~3u,jݜ;lkp0s4 *cP NCy6W\-c`V SX3Zߵlt9%@Ӛ2I ES"<DhlLDZK"σ"/ρFir(b]C! ¬*uV%KF2o-B/cj>VXfE\;4Myhc 7 9]zP,f+7A%> H}/'A)$<$RHq.\REZݧɰ5llՐ %X^xChnK@幑-i{8_vB4 ;J4pq(In#/ʤ1,0ݺ+-qlb¿6 'ۂy?<[4jfo]4wn۵ngwlH+ey-{uOD/ x'gt4no@2!u)P䗥m"aF![i4_K4/ЛqYvi&ۆ2(Dy7=. $[SeI(6p(]Qޠ˹rAըjjHJ⤬>gg\2Z{- ưv<%&sE|A9VKqs`A׃jg57Dvge8wo>siKaޖi~vYy>q^i?PKg7Rxแ\pip/_vendor/progress/counter.pyTn8)!vMOEȴM@\RNQ,bQ6[H*@EIv(q:9 mNRZ=ƕ'ONAVke?:} cJ[8X/gW/m6޾s|PKg7R/ݺ dpip/_vendor/progress/spinner.py͎6z fMQLd! $04eEf2@!hEEȦ?@Ӵ'%eLi{{HGp L}h[ #Muezw.LkSٍ]÷ml f2B qan:1rQ'I$~ bNCF4$&H[Sw)"&tgdQ"\lX-$Ό}q.P(Yzl,9q)b:؄!u˄cB  3YEJL;xwg/aF*%B R .uWvEm(.+~Ͼd'8!9;3; : Uz9(I=|wGc1xK(=G丱O;Nh\[a77\h7_~ɖYuHFZZ+j5}ؕ3SV w Kɍ,觋j _ysFiK:Б546m5~r<%ܶ&g''b,SRQe | Unt+1Fp뛭 T0Ml|ϫVLs?g5 ^$~>p]LQyj:.q~ $IJq}]7@h!+i7i;k#]6M;dOi GatB7Fl]9OR܏?_w R-RUU8jRZs 1!d Bۉ~Ϧ!XUwvBgg4wa%8 |vށ3)R=Zw>7?Lȹ4+,y&ѶΪ3ٔM3z_WPR'9;@A F^h B,8rN eN"pz]XBy!ij? vvʾKVowHq7)2 0BY_\Z.ZVI7}I7}y++,>ԮJ:*xkP+PkFjKM+!CD(;&)̡Q-z8$Nrʇ lz ]F]zu1^w/kt|F=F(ͨCoP<ʯ0sU$jDWl@zqwCy]Œn=^ ؘjܳNݾ|Aʢ߬+h&627(bV>.jCh8lBp׶ (t+ZCtnUO Hw^J:b9]0Mא(u`Ӗ=|6"г/*c lz9Jݓ{6 zφ'h8;͠ a~ԙG 8 „ S$=3A~R 3Qa?{@eҾ6jW*#u ڂw5ISӣw18ȠHѲ"%yfc劐Yf|9uHh,RVTCgZ{b׋RNcLm$9QEϡˬ"̓e݊|K_^u^f#r4XqۆܳQj0c3~5ɾEf N%h9J`)D$| `0iĝl5Y;ObC$6Ҽ (IS4OIz 7m̊ۓgEjPo~>H/7'_Joi+|_xZjzDE77<Ԅ9X*X ?NW^_oO~0 LԢHb4+d{Q"SVRي,b%"8"I? ^W+kp& 0V1&4ہՋd v|JYGZ.*KA6pͫcF-Ez JPxia쑧2EqFPA>^%Wm2U@ `;Y~9qZ ߥ޵МIД&KC*')j<^ԁJP\kY"t̎1 "iӷ਒vVy&W f Vf(85ϔ,Ln|I 4yq37aVh|]B[C܉D+2@{C]uJ!iWLe ^X]^3]=H[B?* T;!1u o\uLFސ$baQ@f`xҕy ԝ6Oaʙa$= ] Qtj˗/ ΝB#[ J3L#r #ݩ%dR`Cٵ:3WvG^B3;PK[JSJUiiXl&"44Sjtsq/Ab@OiST>ATtvr$uTa༒js:Sc*%`X|O>8,r+hHa d|EE`!Qi֭tAnmmJ: f3bwFyft4&mwfp;;8_ѽs5I1\Vy5wڸh8%=QT*:u/tlUv=";卖eߊAJ2BR͌*i;@(X 3Onup ]ӠZ qM/=som8%i`a>؎ZEciG͜U5Ppw~h|w.m7$AG>߼*RARjYaNwY$aŽ:PϑTǧ$SSa"P5ZB&(z afӲLdo :qz7ScX&4;g;WW3ϬT|",N˳ 긝Tu2z}l-Yex tSJ|ۗf;'3ģ$6myMWnqˏ1SLa''QuTф!^7 GBM OnH0y:欄>$PnxhwJ:0 -p+qE}FQǐF R.c vsBuvoQoOPꊲ 80 :MV`&9 4uZ/eoELZ`sKfQqNtUnzqeX80B(ȓѐҿ0l 26G:P#]C2}5A:!U *j&º{I#TIb"ybۡL%0~ sIlMdf*@_׳TR~P̩=m?)8TQ&_x4̴_M&bPf^8UFn`+eKqwnʶ*):NU^V::z i+\+|I.0dkb ~[K+S &Ղ5ʐ-鱎65#|k  [|X}4>|8,K{tĽ}.Џ~7w%zJ³g Գ(DV;݀CK{b Y&-[/mY2 hܠp;rp-K ¡W#u>AUfL"q(G9=2SKQ\#y.(NbkQbO *VӃ w_v5m\d3W,8O4vk+AwkT iv])7bm@FӌtKceŪ>w'tO @ᙲ2'"VCh3{?RVu|#p|!t0}y1A3 s-.{?ʟNKQl 6\Yߑ4/F-=Fc#3iL ,fBYH-6*pgH=@Rhh6޻ j$[ dbz?ʴ`t;2uY ?SH Ig6"xum*^xik]x0Dy/Ѡ!c)X`cPupuHdT薹ia>8([+@8VHeC.XmĚvW$0Aglocwll|ђY.tW6u7=:Dt4n!eDgim_t {wN2ʹ4?Bno簽 JeoNٳ_+4 E);^t:ӥ4d^fca %› ϏNrbi#%}y%-e2`H3'J;23C3*!#Pc*LIq~/'7*@lm]^~aubQdH $Dq8 {1F"o= (GM1/P4tqv>=>;?l_Ӄ#$q|8>O1NśǠhmt߆R2qz=LRlEL0[[ʅY,W@A%Q5PnhO>]2L^bVt,<}x=9;%cZL3.%b&s87+I9DKsܳBjX \;%j6P/vKO)1YpxC-w+ɬq<Ԅ!4Zo=m} *lJqNWdt($сͫ[QUeH $ЩKAEy0ב3sǠy @p$&;|FQ#ۅa@ClZۇ#y,SwS9Z'}TmJGbzĈˆȵo#nP%kC8Ĺ,rъ㩮-3rjZvWY2&;O%[X%|29L~Etɒr`ᥪUf8mK =F ]ӓ $DX T̺ENv6K)0ԫ2xo|YuVɕ;"x5FM^d1D !֐Uv}4? S0$d˼ްļ?9LYu)ժ%}.uV/뫽zX^4scLF,0:!{{{VonR=u)Dd1Tz1Z&_ ^iŋCyDl]f!1;^HTGLE_^hn䂝d`|V$Q ĕ)]1*D*q#=h&^88UdRQymeJW:7B.hܤqxN.y07Yx8>Wp7jT)#y==Bs{ 5ck$LD_Mj{ߎoކFp ^UFD Ù[q'XKРM}uo|J!.[>[< oKVs~rӻBڽ#C0&oD<(\ɔkt@ 뭾_BOlRU\r#D".UQ,*tS7!霡TJ+>\eyPxo|á&`B j;S}"J0]z%aGɄ_<s KRI1CObWsPKg7R+s 'pip/_vendor/requests/auth.pyo6w<Vk"1dMv-ڦEzm6YTI*N6>>$JCwސ~>b~L*=>7^IbJVzg.\V9BS^( 0+4PEAL*2\x~/K!5?I4_ 9K ( _,fR,ɘ*1q㧏Y 2NIJ/W2/Tl@ HC+Δg7Z҉L 6fyVi8S-Y֢܂12dSދwgߟexzŻӳS2"-yfZ`N6|?Dek\RM^7e3$C?qP%J&=ӕS3"@"VԸH8kCRV|>y\B-J"fv*@ȍق^sQI_rL@nHP fلdhA #2:;X ɛ*j߸ i (:ZBcCL cs}1AxQ+FIdЊ9-5(~H?g Kbg4܁ )>ksQ -TB\s&QUVߦee$sR`_36VT53c)ſE:Fjɑ$$X0*ɬ8cMviRsTi?pS2hABSqbof `R?y*1a&$- zGߖ?#Oro8$gLEsZncVacjk Xq%5qЦ XmeȣN҄Pqt_/M;IRD-ckL*yB`90guyS6ae`La  8 3 -Wwb dYX>Dr ~.+OMϤ2LsY@RX \)͉^F* V0@$cpA:\ExuVI7DT`Cך[s^S+:GdA+€D~-n숵5 ޞ>i".9y9xJaϪTúe(˳rHAjfܗ!?'믇>|b-OaN:x1Jb*?ŭzZ)$to70ڡtcC{U ~}jIeQK 8MfpO20V s!86{ [+N8^f$k$;t;={d·bkaVWp\k DN:gD`?5fx5j?F`ɾ+=ٰrPWSD5p&wT4gwToV mI#)VՁ[دg$jJ&$d;V*ֺ5 eH k>x2z|D6jLDe-R662ɦ\')!U{_wӤ]4I$dTAIrU3];5yau%b*8^!H-h適\A-6pD6ojȫY,o`› l֥:ߟCUc/lscj< -k(#02T*$&ɓ!Bspr\["{[<r.ffy,p7*(^]:z>hp)F g[I*|sՋ.Tͷޛ\ وַ <8%S++ot~f \ҵXtW Q -%_\q)ZR:ࣥG0^tm'z5YƠ=vhEڤ()u̠C$+n\>!gcxGd>̕}ٟ1>o/VFlsrLCfK= Ifsg)PKg7R':Gpip/_vendor/requests/cookies.py\mƑ_7N/w ;I{ڋl c38d;t 緧^4"`=^nzy%Rbz;mPI=3}yWVu]+nokk)6WZҷ1_𧆿}xHk֩r&cgW2GB;AVE~;]w`lVԹ0kd͙{IF]U`+0l}ak*?a>\UDoU)NRJAH$wyoطuU-Dl!J vU#^v8ӵ-F50$e˫FYySopԪj[,4hڦ>f{]4} 5U@a nyýk-+Vvkx6DR+qNv8mOD-QrXc^ U`MgVMAݫnNA-aZm>?7wǽRC-Lk,$ѫGܷ#mdWELw| ,Gdܜxp}!u$XHUdŻ߈|y$0= ({;] LU `a_*JPGV6RXwǶ 模x`ׇ.3=f!dfPI_yJ % `W dS!b&#N/q\4:'Zd etU6Jz+%w-RCFkN' pu!؁Ew瞷G3(#Z]IoE-wߥ/22.ee2 ؅w@ItSۈFҺI"7"ʺIGAFA vg<@2ɤvl2scKu@ Ҁ+]Xd (aŌ˒%Z|51!29a4N/KJw&{9Ha3cL Ǫ$}]Bfk~eeElMDe]SW<5g±B—}UpE 9hR|2(nvԀI/T!Q1iBptZ&AeC<*/޹NF Fj;_c.sy!XK V%N&OV, ) `I'y`(MG CVOi g²ߍyS;>l޿j+g~o#?iCcv?q;ʄO3ݓyŎӮ5ʼn}&dj"lĪ+{+28jySu. j8&|Jgy9O*EKؾ6qzB:|ܐk6`;T2+O nA ɸs0ͬ(g:@ՍO ;%nY f'rc.cQ8ul[vF>hz cc|W9!@ 7P?*<*#*;h{ȍ1ϹYDKIk'*'5h4Sbw{n}T) D `T\ AW0%bLjX\K#–h53u0ً^=9y(]=!!@n/$bxzg TڂV֎g30#U)5dpLr#|7I|6 {~R1E6v?Unfl"]:痑3|k\Lu盇'!eJB)d "'U q6IAm)6Pܷt CПn^K;BI|9j6A#ti8MԢ YN3$L`[NO'\mW`F{+h?LuUs 0sܬ@4xG]m#\oY0'mp*h v~ϼJIB^|h0{/5274=XQ..(E_ b*fJa,ů}><" }q9exLx?5w(OO‡ZBT'} ^"W%4`1h(#L6n9pȏ]L>wū76/Z͊*UFbϭٚ^BHbݜ-ީkܻjxhU z).u2=L% mTX^k & ۓx oQFU^˶AQ*K:^T~jL'vK9]ŷ:z[۶arGr g"MqD 8L8S8Ux5h;|yhuwS[<2EgQmm"~JPKg7R_17e "pip/_vendor/requests/exceptions.pyVMs6W8K\:!qg6cQXۻ )X{|kȌTz}ϯ$H,۠. kvɯ_ 2)J;C&vHiȭVuxA-Mq@ m>qg |$IR8y`0I~D8/"lAhJӸ]X%l E)B˒ [؀U&IxbaJص ?ut^dDÃa|ˎgIJ~s5`V?10u_whԓ˸|9?ioo"8 *II3!~~abp{ۣ̠'w$Q>q}LSyiߵ~n>`4QhR5ZS,k^-fS0OOρh6:1WƟH_;Z٧>+xyVf2+`wCf8]]~N<} u]=ZoD<;5v4,Ï>8TƳf]QrD]MFh 3'rd~ P[J*nRڭBoA /@(K=q4::g6sdIf'Pgbu4\֪0Z*ܖJ[ X_Hvqz,Q f2C~# 7JK*ga{侐.!JsSn M"6[>L'7VCǨ*_)YكIs@ r>+F͓Mk6]x%Rڕ VRZ-׾kTA$TNMwiK&|>kMJKVkYxPKg7R=GJ pip/_vendor/requests/help.pyWKo6WL]W-|"]$FKQDL$R%$"×Lh+$5=$'gQBpMg|v6BjӪrfd2IRԐV925qT^h&xx—RSOU%aM?S^ YVVxvYRѳ@ΑM*= =J@M-g^cf%٦@'ʍ#[KRHsSK\!ᷘTȮb'IV:ŤX.In!ǥj29 =q PB {{ N^LXϬ^Z>yAlσ:W[)Pu [n._1w9G/!9 0a|-5kH=k:[`V0}3LE'L}ʸ50 mEhoؐMYRPSmaK;8t ="s1U{V%Fx-h[!0:' ,BlERYl(8/kQGöGC\]Ç9Ư i&AOTfR)Tt}+3YMX|`1bR>nIZQVeTQt.G(?>-2?/gW Q1MeuQa^W O]tLCx: E4?QN%e`f,̀~ 3Opܦ-6jUirlX/ӓb7<MG '8ޒ0h:{9Qzfo\qJ/ e'c#yIHyw(yQOz58f7eqA'!QLX&2ll<& 0^_swZ3x/a&п)B۹6r}55 *aϛd jy_dF$WK{vcY;bp- VGh)plߌo QudGxh1^y xma째圚{TVunOg}D;"[<+3^bZfxK>x1d;ҝ!ΨoPKg7RJsypip/_vendor/requests/hooks.pymAo@+&zrnH<4ФIIZo l]c{DN oo>/!UE͗Od2a?4RþM) UTV'["{Q +Hȕv{s6c'.*'KV` 6?hPD-fku>%^?`[ohv s7֡5FK as wel h UL7FSsn;U|o@JrI,9Z`J3i- tկrm|Hjn{qco6~vݺm Ι~ۊo2yh!Sw]T(G`j=xPKg7Rݹa&Epip/_vendor/requests/models.py=sܶY[;I]Em{,:S׳K-+.%LoIIvi&. <aZyQ]>|OKZLZUntqn]StB0}&|oSmm*h0ʶfMXصEiCf۶+7dOK#g0,?wpअSf8z٢M 7^TlX3 ",2* E Rim4 ͨ)<3\Lݴ,7Op.4=p7eO | ~u!kwfz _S`F^)n 70^%`7}Ԁ[m̋(-{W/N'O\F@A\|¿}^u= FOF%_͸/F@7z\pSX{/xŋ^/ߓ/O_ }œUc9=?*a:= ko9 u8;@FZZ,n`Jض0'[ni"z\mSk-5<pR@$(1=8Lc﨧7HATj2IR Xm4!y!Ro1 մegxɈ-JYi7DzgGĴԓ-hp3bEޒ)drՁ{rTVѠ  <8>s])ʚڛHh@ LR{~$U+Mcmi}g/"3Y6azw 7$0AAR3uE{x뇗}e' _0+ws2]a2W8u[u(d%)h2!a2}I"l [zV``W>thLx3Fu~ԣgUg;&{V79r#ԶIp.@}|hQ_okD|Or!zX] 3H%\sDڹbk刽tzwf`$Ỹ¼H/"8kx O%Yhű(Bȱ: =mdnRk>ȰY.?$ߒ 1j"Ř hږ*D#Oة٪ժαi0{x< ??R W%ZA'tӨY31d̊. Q?VVlNFvGG%}nwxF-׫ 0vϊ*GuH ?pjM|[}:*łyQ!X|J #2ϤC'mpXxc`^qMͶ1 Q: Z؇aY8ʍ[К斅{EXp}kЅuP 1`@NAvC sjC D(Iڊ澙IEZ̕r/9p1ݞpr()|!6윈4|aR5r<(|h>~KZ(Ogk)Eg |&MV Fx1f-hSs[#0C,[Oxk؍X.؂9KG[5w> 2#ğ-,)"Z1 vo1]lc}(P7O.nRvnv-EG?FXeʺAic%󜣳(ч8>s]ahrgH\Ի2NKLڂmj!oT^TMMa;J]kS4kg ga55,K6clzʂ࿢:j9nrm S,x `.1*FZ Nn% NߑV]I4ƈ΄ :aa@0HKI!J9mOLMt.u n.1ޒ(Q(8??9UutqLPn0C QdA;3CO<]ڛH5^ˆWlJSM{[(0VL~O]yu,f4g@)XN%:e/wmطH~4%}IwۭnG#’QhZoq~U8ض^ L[٘>К/d8:9U;7զr^ۊ>2OA@>_DJK]ר33G=iPg%l, >8*vbRTrFEmJ%gI Xl)\=M?Ӻ+| <ѓ'OECj=^PM0.( Vf3;rXy/ 6CۄsݤJD6 qT?AQݰ H%ӚRCge1HYnlDAT]95}4mf^oԨw_z5ldY;0h"TRbF}gMw|xw%`G( b&Pgsٙ4yW<[臹F?KEwOt5&ߑcu||d.)Uousmwc?t8'=kc&'(ʇhq;,aC#nWWI^kuL]!LKT @X{Mzۆ 8.UBs[bƥp ^3q cTi2 OI_䷓<%ă\n_xVb~6fmCrG~NޖgY5h"]ч81n'ge2 ?Q0H[b@~P+z~A}[ d4tZ-\saC$קGYu>'>4d ;XqP:S+J>X:tt.H8"Գ=s뢹a `+l^F)b'8#kbNkES²^CI7TM Y=EӏPA.ތ.7䦠J`w@m\=3HOgQq;.:ЛMKjyP)IWR]}L ds+Djú \}znj=|wU7ފ@%DMZ]fsчV;*$7d3;4{z0MLh4hL&ptD\qp $"!s[WodgޜpX./k/$bM^5DύBTd\-ynK`d9X7{i> xF!/Ʉka0F! QA|k)<,wV`ȨL/&Rd= r-({9!g6ǀ OV\q>}[R%/']hM)Xc5L~ avWh ޣC 7R!%^ |R_d`LJ;yn=A3ȣal(&l11SL|0=3,DaA} 0낄!OҪH9`6,!\-ŠiBg@Dx"C J/mE^qr`=FqIŹG \wL A${6W'h`q%z*d}1OziNA!xvH8q3rnOUgtdr?WCv Yk 8`ijɉooL2:1$wwEI[pߊqG0+8\YyÍ'XuH5iW$4@.Ir :sF!eWDXK-NM? ]%X;4Ioԃ7[Pأsoxp?ե0{67 ԆKYމь\JJrip) ;s'U/wuOjWA&d36ˌdQ:8^!xKP3Үxx) /3BSsfEe͝+_.-\2soL :N"ZcН=bZas;6 7\5#K\-\gaLB=!*I!#ҕ IIKw:.I0pJP3b5O#S*nJQ 6{n0ć.Aʯ¼N۔!ȲCpr nX* ].麌]/ e\١<*r&' 4SbE.nM˦Qnf'r{3O6$um =Mˏw!Ais[iVscIl}z-`+0ZPz/(?,:z.Nj lCqk:9W|p}NniΎxB0g4%?uh&Bsv4@{C^.f)~fїKvTR=媠wjE0(OLMh^M.)1b4~.0dKy<݇EԊ8a|aCiei t9p{0vIa& څ E6X}0-ԧO‚d.wVF]\$@6qz$* =SG טO7xo;nPqV|~.Ac;yfܚ#(f#̵%6 Gx,f|xP)B\UL9eM^h 9VM |xZ1M5In&c*UdqB.qn+2<17eDY0:rMlo K}sQ9Q>:sw q0q[ٰa1@ t$g}3B h|ҤwO8#_M)]"ߝgөa?1!vft-uS/^Td8>oxm$Q}^MZl7! tNϪka1m7S6mK 2-KB_BGx`Ew}mƲ= G/`n$UY r''@ձw)_8Ty&.ٝ`pLg9mAa=֗NUu7YU m1$LL26v|-SB,W _ oG9b3|E<%绻oK)zHw2GaM&Ut.֕uYR΄(UHtH$,tt G:ZJ6].Y\*L&l.Qx)Lt7TBf$Vxw/)w`t II'ϑUmG! epGQ1fGNe[bmAMڹʉ ֡C0_oqdh>$,Xwy>SK SMϿfœNp8VB/ o#bs=e֡-vCXt XQޠ{`_fK7 0%u)\m4|Fޔ&"Jӯ4E[$qy"*T-bz.?Au¬.6Q iΘ%|p<.gC` aϾLDH ]gt5UMΠBOt.2N$5s9yxr@„KCM@N!;].>J3'UVе]iznB$g֑3ts}9x% wKv;146z'㏴Dm/E[aV] Q%yԿVfle;'4թϿfZ䘙zhRDWf:g6X).S44rsxB_*QFۋ<l|+mv9 c8vcMCYAݠN)Etu5|Z3P8r4#Gͅ J@;S+vuXK)MI o([?R$ NoĒ݁q֜/m_ q1N2 ?sG `"ˆ>~2n.P@1nm +M!QmPJ8K |0;I1ʷZz*r't~ OgMwx`Kb5 Sy?%v&vr=l^v9$yfhCpqF/ۙŬ>ٔK=]t;ĹdѥF[Lo40_AF(HFFzՐ/*'X>ͶV^hg:>q@KqzO: R[I.55*9xO][07CD%6:3h<-[ڋRV|&IE|gHZt.Ռ ?ߓGZD+ruM7N`s mssK-CUƿIOH˯#)yWׇf4')]B 7!I(+9w'0@ֲ% Aql~1WzCl Qwڜi$ݹ?ÒyK6VGa2c r=ř=/POBAâ)So@PcD=;<+WXRUQ.}&qӼQ;cШ2h=ϐY,`:, *BGSo F/6F4ǀ -ؠ_#PB1TRoL!E5`?n/R߰ys|Bj~]~oOxbXPNqGoDbcWE^KN$Bzפ[/ nrH1X]5`K\X, Ȯ^qԇϞ}/8 ^`XC%'Zӯ> qst[gg[awKn!l_WG<4'^~̋)KZ]uejtN_oN'vAsB 3Pw0 G{^^P%{D#jbu] iuw|S_?G W|WW6s@O=I|Yb_ڠxW yLۄ(WqZu[$OoQo/PKg7R<ށk pip/_vendor/requests/packages.pyeR=o0 + t -( bb"#G9n\x4$ T/IKH>1\w8%s\0:IQh2:"P#[xE)A}H%7YX7UUvD!լ]1f]Omiׄ}oʹ>T@Ҽs53h!;# s b"'u1k2V3.L CwD..ǹQ9%_ zZdʢE1Eͣ2W8Ejea+6FyO_Z63mXܬ?`7mmFw)W%(PN?] +U8~L>PKg7R2!u pip/_vendor/requests/sessions.py=ksǑ+&>p)YDA(:^GRK)*` 5>H!._ rr\;3ӯk̍s/&шK͵nop:Rnߝ y7ae&-zU@y}RlytZ/ UU&JѼӑ{hʑ(IQpuLKt- Sk%WM1#g L%@#@? mzUPZit:u{yICb#Aqn#`U₩qxvtrW)j ̈́Ic-W6b &` EiUMLV6K<`ՉQLw`U[uÑwO7#FȘQ8F}oA~ q/Z Ys,"kD ,iC5:@DɀdQą." n`A>{T`zC ߞYIH؃HD0I K"!ly[6HA30d2|i֥ {CR < b4du Vb#ˉfbѬir&[EvYUlAуnW, HvP'倠(= 3y &5 @6SڸdǎX-t%=LXUm3 H5Ό潬:JfЦA80!:wQaZo:jd«Ըm ">U?r15[UM8O0Ò̉yi^e] d1s(7h/hH} ̟1\%w~^eFd(^Bd !y],#0zL'O*0F/(z@g].K4h`rEZ wӶ@(9Umd9dsr&sd"&HZf,Ǝ1KÏ){S!ؚSP >"< Ҩn̓.my <):WE DT|C=?rg?0b B=a;xzE&O;FQȈNY>u1gL[\;#]cy~i&%F54Agfb@)E|X=kRKE9xJtj8;j֭i fL8Uwb\#;>D;wGXzubkU(Cz_Hobo#?M(m AJG;Bwm":F]dξw cB`h*r|4&sBϰP#F`QRPFYc෦#[1wx*J1gg" = cGY9Ô<.\#gw7`cd)@ @; p^{?~x8=f 8UD%^$Xr]#ە&xQ MFQc Gd`O•}c 囩uvyՐ}$iXh% GҍQXj823{@ZS5%Tn&\x h,d],~r YMVe˙#5T·$ŏPՉfļ5 k}7{?,Bc6zgd|o9]f >Iab7Ι! Ɓ NIcm؟Omp%|@8~  $=p&+j>a|%b_ib\pR|BM6*gL.ׂO׼DQlߛ>:SV=5h҉ (UBt'uE#w>nLg2kȎ CZb[p'&k'0@mY-A[G'GF fQDeQ^(=\Y`hGz$D/ v @ČVs |V]T-,U#{$ 񵴉y5e XURVW:?V >m,yК(~Pn:[ L7S5 JiCjYbP'Xlj>u'iVeG4%sr*Ϛ)6k$=g/pSX'x)`R=g_RkV'8tACsa/Х_c7C엙2!L{}<À^P0Qbb/^b(Q3i߀SEVІ69V{ ]9xtZ*1KwӪ ﯝ0R{ r GWHɦ,5}`s__3&5.٨lY3yGuH~ pm{B3w`&ϓ0*>sqL^>J6z& skMNŮN2a#Xq|5Ӕ2g܆㙨=:"a)/{5QUY&i5yS|~G.#zͳO|E2S)Mvf'X> ~KIfIa[L`Ֆݰ41  )D]a, ̇4 fiɓR}'^%.h"؈n(q*:{"vgmiVM&޲!;}F&֊)2 lզjdN3ai0 20+(gg+zbOR)*_Ilְwn7/8@5.3|JmYk1\44g~@ .𠃘{l3&A83q[",Ho<1eY<ҍWM)H:֞MxPm#QJ3;L\yUG GQYT83w Eb-2%l"8L{aȁ_6'ź)!кjoic͟ wA"$$~J w@ ƿ9ۅw4_9l`?gG8uCюcUHoP)r% 7y.;c by~ Ƣ k~hP:c UyɅ)0@K+ \f7:.P+XeCL2ҫ|(MafO50hu`g)B)qN@(˼#yXbBVҎl:M4k{`-HSX0 #x2nVT1tZ`3($#ʼӼ)c>bh0V-Tz^9šBxwtn6\OTj+UxD# ULvg\ @cǕ=7Lx)† NdNI6>LrұhjeBb\몈,' = &!`GKw;`QF8M(yla9^'l{bG\\h< VWG"e4ɵ7ˬv\>{;ajw 9M*vSM;* r|.yր++}!̐+U5acx۳P᫨ X( 8HDؔu KJ{9(g zvP/oX>~vD}#8]G?yٗ:d*?T:~}|~Db1p^&"8Ū ^W =IǘK1mx EY+6T6o%qv%l't{&zx:]?wTw6v~f)DTt,0,;R #iK/S[itCw4ių}M}^TZ6y5)T6m.eUta+ޝc%Վu3WBܮwdP丧L0eVd_21ˎ٠1 ]w\@(@ԛ(A75DS->0pgGEVLW.jx.e4ha~$$П<o5gWj7`OUT7Tt KW!`ϊ_?4zn"oIF@aFx?NU[ ntbtbp%mOWtWJf  ߅H@tqQ?ʬozLftŔ>D9yŲVtל5BExed)rZYfg;l;ci?]5䉗w5suuRM:p#( &m!doa]~9hxm[`_YC tÃi~qN%75k"t'mxgG p:J"(+Iv òNdJLp|v~6;:c JYu Lݓxb-aƟMoY3e^c11۴׉ra{1ŸF+;3q˜%hKh1[ߟ]_b >e ^C 5<6CѶ jƋYDVv.eMDhȷ%d5LM ~m۲ځo/p\/|c9-Ÿv DJ|NB,]6[^\?jCMr(i+/zc(E(0|hWUK]/4A0ʗ~`'cޒmMdZ麃%sH}Oȳ7Wh ?dlfKEP{u0<ZOp~{2]K"_Ï7 |,f_3=~#ATۊ~W}K2~Iar2QO{B L#3m( ,_sg(V҅ 2-,VHmKk@}M]O/XUKu#p\?PKg7R=z\$pip/_vendor/requests/status_codes.py}Wr6+0x(%b˲x&Nir3DBb`жWK_.H@rRlba]g'2қkU}I~+r ZKfVdY-JKkE<mk4ӢX2t7oL CLTtNɤe{oժ`ˠVWF +v. 7o0vzf^:F J@0ƭm|~+f^x.ήjƼ槧EδvʶNo)P{][w'8n=|VIv'mC&WXD`}![3s\/?.^ `V”9$ofqv.kH̱ܱC-cCHgD\E.AsR\daҜ8J9:2;2#Z 1xM,&1mSA~ZvRñL61'jzDҺQXQ˽ڏzTlG 6Zgs :]^t|$f.JW&'c?L wH&iM>~vS~﾿*QNO:5Ny&g'Hq2̒%fe+OƠd`b7YǶ|Lf^tƇ]R?.n&^L3rEqC4LɑPNn8*{4nl,'pWPc kx9qt́7Ig~?!JWlN˜r2>1l,W9t[zmu7>ȕ?Zɘ@ꡋl߫r_bxs8=v_K$<<Obq]E]w㓭`UȟjYVePWIZnmm.R,NXUR`Ӥ:UIZD )R:I&-6JTBțJY䲲^X@JprV6߲ T?Ir)7 ?RV[UԳۭPjuTd+c¯E9TV,d"(+Y( u+jdXUfQ\ :#.`֕0 Li{L1c A7ZEE)EU4)aK3.d o +v] p[r;O3BV@Z7 ^6ޮuG.BauBInt2J<[ʬrVuh֒_B?CT:q!T]4mRfe}Ѵ73r膑t]EibG%Pݷp~`IGT~ǷEíׇ×GOD^ɪy# ڼ8|iY~͉k'jݛS=K_ 4b2L7mk!"g[: ,(.m@/^P^-˹+nE^VC Q`zLczz(pʴkۇB+8v1.Bd%0Aat\eu" YW_gLJOóQg΅w+ ɬKV(x{z`ֶ0Cڃ#QJq|~zÛ#)$V9`V .V//,nZm$tϳ a |6J9r:oBqM-҉ahm{sry@Y^9H2(Bb]1-R\IboB },5|0=IY>A(Poz(,:-Wy-fQg y'{P@8ޗyoFպcZ]swi 04|&XjQ̅x?qmciQK=A D1x fKr> E]HqSQ~>a _1>m\2-Έ01‡G.B% Q78',1 xSż/ jG@񹒳dȸaHRݯN)bD4,#D/E!蕚.Xk&>j:xի8d@&Z"**TuLc8ǨXլzZb*3?Wm\T 9=@ W9nL^g9T9 y`pYrC98,mMtLhA,-@0LB*oKpK6<+4R5e9IХ^!&DV`ʠday-E[~^f0+G)?RGY i-xDo٢.=9ρ%E==[awZ^Jy Ym?8! uy]jp2r6C\ |(Bg_`KNAG(Z4.pp`a ԡ]}UBX i*Mkl'^wQx֬wR: bi!G00_)(QRP ]% OaU:B$]"q\'`sB'4{FRMњaDMP0ޯ?=BaH#óZ*cѬNfHC!mVkUԨ}Gfz%eT"@ެ.`-[zǿ $Q27[6WeHh\IL}@HPu7ݝ֠ЬnAgA^\&eY˃Gz@n$SܽlbuQ344'ϦH2*˰V 墘n!m/cI#_ z9Ei&$y"Fq*,Ach@#:yH@ǹhNz={I8sh¾Y b#^TΒa<j_}^gb_ٕa fXaJUK}'I\%:/Dž^fNKwEbj:_-45Q X MX?d ۂy-=P?ŸZeԨ3МK&l,PE,/bau̖T=^|;sx Rȱ# ԯ%Jv)IdRE4r ̟`CmCd#nj0A 0ѧY !*V)Rpkz"1*.0u PÏ  1ҧc `mIkvl:c fs9hƉDF0Jb>[hխuiDDlD1 HӕZȸ&w>v(F`1. Ja·F= 6VT5P;{@̠R񒑨5K|}eJI%i2m@H7iń$j R$5}IsW=w3P )Cg]Z^ڽ jBۣ;] aA&&k' ysdTCGrE^qN4@m?IhGcG>]o8qEH# ARb;<ڍZRK vGG3X. "#=(#VH&#^xܨ(O>Y͹w#ohIw VP=6u dd,  gFNH󙣏dU J#ajIw;d4wLgZ͘W˧.1Z`ZɌiqr vocujk$| Q$=:-0TL-6$́9#EkLO`S{% T!fe7( Z@1;3o<)4co2M5tm!X>&?zM"tH 7с330RM[F O.{O# 39fLO?8ҿ"v`GzLd/'IYKKrio`9$b>Y{5}{9NVD([HXv)jH!cL(م`xFs-EMM(A8=-tAE 'l ٨NKdtP?Q2>9+뮊o̓vC24v&2T񐊛5'mer",sR4B9 92- `խhJQ.nqo;T7aiv ӰqSe RDLL-(8{\y1nqp,t /,L'Xtڬɏ4Lf!v>Gے,@7e[ed0|XB ?W v }@J9$Y 9oxUVsh*4X(DqMA#me+oM`ʢeth0|Q SZ MQmvP\ql 2<4El(ӞQ'Z1-$1 Xѱ(ʅFG*zGYdEuWθ K&|-sT73ր] 8 Y,:㤜ե탃Gᣰ`k.:).ןډsUהn[Xl&MA_$rlrQ*lCKN9sv 5c5Czy}o4[?(L&8y{FASS`*ʧ sS,fwB}AHrٲNv3iM$HFlZՄcEy$Ro0UjhH쾩WxφT0jo:SEeEygۀ ([XL N_Um=G 0:A܃3)ޥU^Rw LyŗT +fu<ߵȏϡ~mgn⼴"XfO  )])ۀ3T>V-cF5y &LdVք* jp9h(ϵ) wvmoӇ{WFن͸c lwEr165tKJVC $ڗԵ?{B'3\RM՚jXX阙8;>H>zÓ_'{@GP(AP3I?×O~7GE2]fꧢۏ`!xߏJݮH.qrV}^[G/Ë1mUIp:PV#2y*!-yv-`ugC%eh'ZgIgZ`F?"LUͪ9~m5ۣCBERXT.DzDmV}zmdIp+s- lN_éFIWn΋Ttc+q:2 q(Rq-:Ӄ YTBCbA[9,P cVE6tx(%X"ic"a-0>d5»VsHocۼ[b(L@X>2r`gZC Aq$tog4 ~*=ALraB` ٥M^y#UV,HrvRX:-$$໕P O۪^$Fp JDj_Nq3*$|=NXY9+CC9#x֚\nnn-jmxE_|mfjKnO(}xp vsGۘUy+ 3~y[yZ]= RJ+h*nK{&םxNaA hj+2ʢ YA* Uh%X1YK"8t)`^%y] AN K \sm|~΢yhGHI[ɓZB5; ijgvµPMsU;D8b+hj|fZk2'kanWruB_KlŅ J#,T@TxVK" (﵏~J$֫7R/\Q.VAZDHp ^q"7V5e^\$t0眈4ZNH\$ o4+#ԾlZ0fLyZ:TW ֵEgj0(ր8^~FzW}HI f*Չ q]D^ ۸R.Q(C[wQW(.Tvlf% `ˑnSWBt>t-2uKAfSo}ukmKx7963lK#X$%/KhHʶړDŽD/ʞ@$mmEw[S#5pZ;7jtn21`וq9ŠzKzT*4@y-)RCq}v\2Qq-`O7jX}[>>%i%̡`2Q>Θȷ9'Juqd^H0#wn5 V`j 9ٹ3ݦ^u#s)wM)Βd?Qr05۬Ƴn֋(=U |Kۆ[a}W2}jN?ƠtNyIϤYP%z~Sזi)p4jak)TTe,%5F~MǑAx?hG2 mjԱx֒U799դP;xeb~ 7&؀1 7 VKTԷL/yExqCq,&KyK8@|ow}ޝ uj^wwyw,#5{ǰt^`U𱫌jGuZX)Kl| 0K;;:;Xw6UZ ( ,;\:pܽWzP>֤utBSA>+3f.vᢼq llwP=/({`񽋏 4$t+{߳^<ϳ^K4v@e/QNFdeG}Y)X'3x-U| [ vJ^<N68$K@.T'ꅑc~ea@+J) .(?{/3NSfS4^S(i^'gy\@ßDVO @; Z)!f[#iel~B ܪ!V12ۺw7Ai/ٴ[u $.lSHu8&dBFѽy])PϪV!q空dj&#:s`ޮM0 SIQam-t6RVV$ ro Jo%ìNU }o1)Fŭ*Wgxo$êr&~>~ws"N_>8_Dׇ]ußyp '4wcw/B}N\xm# -L.%@zgQp]ƾhP= kfIsV>pt0\D_rE%Lyz[dTQy̬+fZ&y)%&՛WR"s(0tKsRբ 3IvLC5kʭa*)4Q5}0 i,DG' pb#@;u}o2Kf/5 CI) ӮeS3RxRUg.x2)3 C?j@ 7uLޝ79VaETV唶EJlrj~2ȩɡߦ>&J)TUVwB|wF]As,]E=Twv߻oQYɉй;G2.>5:&rc7)ToJ^W%" VI_ïvzz?}{r)޾~ fsVG Xw֓8n;x:\j%8c *O`h 02}#W*Sgx;RX ddO}hpcG*cCF }YNPdu[+EQEhgn&yfDދ$3ػWb:g7ݐ7:ڬīS.7/47PŬ<3{#G\bX .wmL(Z,K-և3"t?%JhT(dqa0"NŀR'l Mvr*`cr"rWFo(ϝvQ_en pO;N&_hJ`# M+7]p`*~Vr wnC~re?e~V ܖ2{I\<PKg7Rs^/#pip/_vendor/resolvelib/providers.pyXQ6 ~a(]0+6hX$_-N:-S$E~HquӐ?TwBt U|jѿqt>(rI֩pv/J5*i/O]PYuߘ& ^$z  9ĄxSI5tZ5.|$\=WhǮQGB n AD@MWJ:mg&HoTk\\.1T1ƴ-9R qzv@6N]ˆ5 qg鍪 W!P8"6i/SG$]*gX2- +" L&& H=V H yB[༵vR Dg u76|Mo{m{\Lk:tE||5Yh,ӗq,./Tf_Pn^}Fzj 7D9{yR_z{~PhlWcěAO Ʒ+{[pYu&3kԓ: c^}jQ~nM•#6 N5#Z}GR߈'gu4~SXTIp!I[yMoZX 2躅 6%* cD/U5 Hi^:B89D cX;a%I/?~ݐ1GL q+Qoj_Vxr1qdV$Yf֟-uZ[LRҲZ@𒺩BZa<h|۩#u>w`yq15dIj ~Sw %'ܔ 4 ]<ǵ +^.vb\51` 2~pl0Բ`kn^4ԟwIgQt]xCnc+%=9qnFΪV(cN N Ȟ@=Î{gODܮG#xrμ!8IӋdbf0̓ZmkÖҲ|#@.\ )*YL/_Ջ+~[Qajp~Qǎ}i?sngzv): )P7?.i'џԛ7gNE?UƘ7#`rc?Ҕs ywm=&`eL}uUiCg0U'=`"?Tմaׁ>o?ܭ)n0lxc2~7!ژcqi #`j]?NE^>kT@J "`{?PKg7R_T#pip/_vendor/resolvelib/reporters.py0<ň+<Ƕ筴=7{n}NAln؞ge9FQ!I懨[zU9 l2ZB0JJ$a56Ql;IL2_ZrExGR߃[2N) RkX͡e*jJ5qn. N\&DyLj$ֲC(T 3 ә][Iql+gV! YceYʯ9KNwUqH %  Å;X24vfYykr++BafVulΥ!:=FB1 9-l.[1Cf#1ϡ6#POo/C]3/ ):5si0H~Om:Jr:̳R=Hj7RPKg7R{@#pip/_vendor/resolvelib/resolvers.py[ݓ۸_?ȼl9}dqU;5%A$4B"Y~ݍoҌFuFVuM#QvZ,vCw`e?tϲbRyUP],3э  $?߯vMRG D;޵n8p\݆<-?zF U~Պ_ '~zX,aJ1+}ZhWWٖ+ XaŽSlRmOlK]=5\0|izjMMM$y[70F-=6}d= fAΌ+aci7l FеFb4 jcl^J4Ԝz1y+# 0tߣEX"Xz417׫RFᦐL*t-Ű$(4b\9RޞZXTI5@M|\K"ή2pT"l;m?o'*jO}nN(v#Sjw:~n8>|:$u;wJmcpԀ2mqTK~z`i+9JHvnɯflB!vkf9lt s YMa6lVw ʭ Y2Ƀ&Zo$0CΤM>nXvKP~JD9.-%^xw|-tZxkA'i[H:$s} llKۇQfJV,p\ad [Òhp] BHmPV`X\goECb,).6fċ9fzoJfq㾫fQxZ5+ W^$?!CKy['U6b2Q~ j,NP*2K{ R"!LkLTe!XyG鎦Dz$>2h0gY. Y9HgP8Ok(Q{n;TP:Z>4S/&+ _k4ٻ^wY\b8jU/*!T& %$b Z? F `ϟaXǞy#c3}&t_#l-<*:6<& a+Ten8[`twH(]w&qSDΉf 릾14}#9U?f!㧮 D >^]-cV_/`M0:"x(\*Mŗo\Tw󫜩j%2cZH"V򱵍 pwngCL!`H$'05+AlRpN|_CÜ,1xs݃b%?J<4 ƓcvNRG,θ44[\zOj`r" n jgҼu5)]l:},Tixqiw{^8ʸk Ǎ"QV]*q zi ]f b +75p 'ёט",;Q%Xs;)nR)BB9/?]c@8#YQ[j]S_oN9ő6`Kv3bj0! s(f}G&?!{10 _G= gC A~Y;F qLl+^6`-rsx~ R GjԢ3 }J>i{U?ۡ{Q!N?aF+aKh=,yExĂR@Z5@8o.׵ 7XmC? NsB-|A 2'^8?8l8ZxbM5x5EH+ snn=5poP 9%N:J©uN43=Z S鈠dPwMsgl':r70兄^g~wvX )sYBcC抅!M[{k$΋ł=W(13 j5|л7hLd=^`C\<ۇcaC^tj{YGiy~fϾ S* C+#qpGT/60]3ԗ&̥ͩxˢfG {Yb2h#3F?koWL@EE2 0Ux SSX8i#H᫳VWP6^ lD5:D /% ܎,'>{4<|Ū?[[o3+O:ީ<M=u\JAL#YjcH$&^08۸ko^e#:xOxҼ&:'baqytI X^Uw؂ۈihm/Gw 0NJo魸̋ÀuŧOvP\RPkG0wbR>I 7l"2~m}~|&*&dq+":UN$@_'<< ^Bїh߷2tJiS$VE J,9LPKg7R\\8!pip/_vendor/resolvelib/structs.pyXo6~_qp_$=KkaP4E dZ:E%R#);Z}GJo'~f;*Y6E @,cåǫ*Ι+W+@ѷjY?Ã}ڨ*6B8qA:&dr E\pEHUNlWً/0c8Ы|_." f⌰w-ޓ-v.pR4*.iHPu׹8(ء9YfxMh})=0qLdAQ冗9 WrBI!EBËDU LۤT pٺ@-SM<W(b XVS^W4rBfwĮx0WB{ܹir x޴bG rIO *mEcukGF4YAnRʀ 5얆uf2l\ 6= ,őY PKg7R)pip/_vendor/resolvelib/compat/__init__.pyPKg7RaTS0pip/_vendor/resolvelib/compat/collections_abc.pyOɉWUV N-,MKNU*)R\bĤd܂ԊԂOkQQ~vPKg7RKpip/_vendor/toml/__init__.py}Mj0:Še"Фި HIArh9?iW'7~ )b)B}AQ)$H~ׂ=q%o! 3:I$o h<%@} ) ex#Y"'y*ѧQYM_]^&zXV+شْG|Ö5<'''|Wy/.ko7łOw#Ћ>E\9s hir0y_?QK^{"KlF"]IOyNKM"X XjyvC)Vȭi)*a+R˪Jg^X*s.(yrŰ|XJYd_l/¦PG;|N MҵPWLW}cU9ψJ0h lؒ!NV-Xܾ_7ni~4ۜj(!>_I.;Q^pךjL*_u=ǡQ]%v}U2B# 7)>AJGB`4 VOv]oT=+T=3j}(hjBnR|<1IÊ{`y QE\Ve!8./Wn&qZ+1>uPѻAZ6B.\?CLz[Z&=;pg74ڤ#lV鳎4+`-Pj$|{۪0 #Ug$M,Z4\[njˣ~=5Pd 1J+SB#Dyg6_?'͍mmMq12iK\Mx )Ư X8ylhqܴXkOwcJb`XжM[ ESW܇jMl_UÊ֨Z`Dx I%{`x=iA^#\NaIר]u35EGo6c+_?39ˢ:l1 Kݫ^V(*GZG֡ڷ,+ʮĠ6-(`ANb, Fc!Ym4KT"[5n &ͯ-ETRx݉Y3= (яgL/8)zq8 9 c tR4ȃ@C^D^!ˢ X"`du_HO;5V eBZ&0{96x ALq٬qd@C.I2oy.V,ѦÀ-/bqBƶGF룽-^4 gӳI&-@׋cſ O Gl,{ @;J9y,?D+rk浽A+| p&YaajN!{m},"IUr{VXpa3b#aEY9 %,-Y}1exx׮e4N|LQ'E9<cv~.. Q 8'JqW*qGX:K%?}җGjE `ecmtε7+P,0_uF} 뺂*yCP>s|*c6۽67/MaHjl6H'v1 LǰiQeXR0d̺NԛD0$>XpƘ4i7i7$8 8Cc5w V. WM_GtjR`CTk|,I+B]K`)($OcW#g>OkcǬ;muȹ˰,:7x L^b3a:'hez׋&\Uz<%0iڿ\$;e`_fpmD2GfYD\Gx)*%"7 ό{S3~3 1L`p{K~h*7!_=c#NJ3L-۱^C0h"*{/?+ſѲ P$%f xiަŖ  1{pP!IizrFU҉8uOxc-uJE#wz٘KxhkG񢃋e7pU0\N7#]׀;հۣ F/: oiÝ~}剫&_YDc\f4A_6SK7AN/.}/lJK? 2EM>/I.:VLK?cx@MV xE,[,h>B8b䩁'̪TBjt;o.'[Lwd .x4 ]H5mrn6Z-O`)*ofa:m2\„sqͤ C\83>]vF)ߎXq>o{a£%W]B+0TYYE߂%/91 ƳXCT7mj Úh{d|xӁm=@y :8?nV{==%iu*Lu?,AE"ᄼ ;ʪi̤D-O3CJ.B3̻E}2ʝZ>Ԋon{촳(em8$§8wic"(#ޥ%*>f+ދ6}W=ĵrlbsKJ Ql!UMy'Iaa{_V04rMF`xr@u<"iMXX7G@=$eEmiItdvj\xF0hн"PyГ84\NsyW4AKuw+P^bËNK$8=3h/{ko}w]h|%,0|hOǒ1VBK[=`T*"ןipXj,ϱ3 ˆP.X)m}do,QG]c lGiCZZ=0>*)u(+ ڡ1JbBgGjwRDU'wB^ɛ!)}wq9F&}<)/+aEߕ(f"!zdܮTs1e]CO@u 2:]^7y$_s/4!gSwig=ErDg=Q|+v''NM>z+f$ :EflYnR`_ѿ9>D Wr3F=;F m9HcTQ0A5yg!evJ=%C"|:WЂ2 tcB ]=6ǎ;j0)o'B0x>-ǻC76Go_EyurR'x=W&|Y[>(1+|3xZdSW&CA]JQl,8 QcJ \,q5~P]'#fqATG;AS';~[,Uyt#$>1̞X>,7@=ga l>sm`7Kp2YcUlן-uyO9B`Je4C:wZ{=("2!;V&I}F܌4<]falyQ7w{s?`vma2<-4eUp?&0K[#7# s4s 3aP~(QzVw3H5T?w0q?^5|Omi<{XE5(j/tlA5`ք\w {? jdEt,f= ob׳;%%~$~Ng_jaπy=+-,.6MQm`G*^~OON<1bڱ`ծ;QI?>xF j74{Ј FKR0'EսJ{{g!h~t6ll=$RGg\ U| K)k,uث漷ຶ{GX=&Mdxkw=k=ξ [;dfg3/9"杙ѩNHo̗1# O&88^c |c^1H2h1*3ҡ(D.gn9ͼ٢.m6#Ɣ~yE$]y7f_ !z&7 U%y Om|o嫝DFg&xʪ0Or~A9szQIйVw%Ɗkᜄ#df~ Jdd.2m}wcNm@rx1fVk|dYNS’:oԽa+.xR3?|BG }3{e0 mG>/k`^!0q.@u^xuE@OfޚeƓG;MmBxkYF1*wlBXD" qO&eXz5chS=}o}pHI BWǴ,m9 ze>^-6RI`C"AƷx0fw$zSYia@cVq: tRpݮcAlr6IX5%ȳH+ڸ3E5+}H;7,'zqq47Fn); =A;`'y%Pu?DXU|E (@+V d<AS="1㱘Mެ@%j:VVPM7֨2䡼^0i]1+jߧmB`vZDmځTN7I5];{&0cc78 q%e1cERuR;0PC_o] h'p}罳9&9MGء|oA=nj{4ً>k`Io$c5 vԩFMci>\mv*Ҷoz`V ye f]nv{՜b˔&>$Y5WKҷ7u]V\%@k&E* )B.dBؒؼ_|fuF1͐^ L+TnVǜps콏m%YtFRE|,P> Pҡa vyˏ6TSAۦd5=PꇲwN-±"Vk";ƶ[ SO( 8HC_G9-В+K ^#x*&Kv?6lؿĄ `!㚺&jEwYP344_;G1v{>8jLNW:n G4!̤ 㰾Q$~Izz'']v, }XCiTSpt+ oNzѻ,T?Q0ϒY_ C iD'LOTCkъx3Mt(L_ceOJ.^v)̮Ǖ3]hnbcX/ RyLݛ]j7ٚm(,^ԤPXBזI0ED8p ]/dU=J S!xZau9a݄41 Xjt+bIlf; $E9plO?L(ʄnoV0C '1^R7#F&.:p E E(Z*w_4|W_# ^2 onų#E2)=Ra\)X6;4}J'fi}SWlE襆^tzԛ(oѫ1{oo-wF}yi_Q١AO`_{{ͱS-K!@/PKg7RWՕzpip/_vendor/toml/ordered.py ! w":wFԈ>s]q(tjp!iS3b]iʭLY㋒pwɰ6P)vJ%>8U NW}f1FKO!!=4$oPKg7R꾻pip/_vendor/toml/tz.pyn <66=x+K 1:tIi(9쭦MJU=R^-Vm9& ՀB(PA+=eJQ(%Z}8TD_}"ʎ眳Uh9e}'?4f;byZLn,>;@+3 blv?k2,bzEF8Jb{/=DY Xϭ;.QۿI(;9*hݛYPKg7R!ImQ pip/_vendor/urllib3/__init__.pyVKo6W b/\]z x#AK# EjW%I!μyreYf Rl 7ۃOV k'HZ [A+$eXڸxZ#P5rXW t`Qk]4r/Hۑ7$pj@V{ՔpF{4dP2(|R'")TYkCe^PQecTPj(Ydyɜ<Ccsl j%znkw\i4 .kkGԹKqŗ7x'$}8Ed{ *ͩ b.uC D5(,ݡc{*FQ0=N5X~dGC-KFJ$>>lM{HًS^v\MEY6r3/+cq2ɛYG6,4eQ#,Jdidcr3=vNqE1? )Q%05.dV>_Qf~˛6NG aLx-~,n+j2F>y)"MFho]N!i 喞"1&pU$TCKjFi*K[g 4m +Mz^`xR~4щ4O8Ѫ,?hDs-)q/-\gZoir|F7'br9$Q֢k44oݒW4pE8LUU'\+Iyz5HN|f}-|uCyS($$ mj4aٽQ׎o ,hCii|gK8v鰦< Q5]mp_)p ; ma;s\kiKL9.d@5neuӿoy>9O9g:Dp\;E])N\K’htk=Ew@zo㉳+/=y3w<_QXKQD4=Nt/Ģw 3pF߄W0osw;E,PKg7R?r ;*#pip/_vendor/urllib3/_collections.pyZmo8_A8(,wm@nomC.phN%U II8Cb[37Ueզu%V+&eQiתj-Vٙg -H,EbNU?\k΄|&(5{g~P}W fǟ~l3هMQmR8muf'W+XJZTUDuUbY 3Rw;x+5OG=dU**~/bO.&2:Q؊ߊFCIދwFdHZ,C,H`ek.sQMl$ʬ~ P'+g1&Q~gdbLw^\(,^L a;ܱ->%Ӆars%77$LbOOe+rkq,,qpQo v W$m),@I srԖI.Y<ە77>w[`y4fo(>.>1oZ]f ~K {Iጳ|bȅD5xwshg=N]x,7̀:C%.UA }^ R\@PKeKk-y 92Ru8|W+.2"iXtkΙN&x'i2](%29H^4Ŷ`a˾-jdyI x6lO5&ͧډ %Vivw|*cg k 3UxٵyN]|t:1<2cü M1cC,\^4{|!rEM m=p1@PA";on6ON*CI!N8%˹1?sT\*H|lA?QVsS` t zӃΩs"kѠ#xrdIhxQYYHBQˡXb s/C}RgɐqQI;<"HNa2=LL4CebA;C)ƔRH zebrT-e'֙;KrJl#&ۡ%\َ+"=n}iTRl( OiB7feu޸jz\tQQu%1k9taݐB*l'!Yq&y[Kݫo_Ĭ(-Ö "#YO,N_ssjhP`R~_[eI;sݨėg;X sdJD[q|#raghV= hx41%gYQN[0F~cC /'&^mHs׉%:\F hPVXXBi'ׯ COBFOB/.^M7E\j1HZ5c>WS |˭ƙ~7}s8j\wx6S >&zC;puث_r; +'JTO|i9* Υ(P̛㰙)6Dr׺jOLf`ǷS) Kzls#Kf}P iZxڄpVT"f3\U'XctŃ6v’CJgFJ|e UgC`^͓E#qѮ0auu:ph(ihf9FBmFXC'e\sf`=Znf "'fIJn!Eoq+ˆ2.NG6X*i>H2fztY"Z1~Yg%"cС#6/b]n~%Zrb[,֊  ,X]@8fc9aQ ]@,^1Ϗ5Ӡn]a>l MK @)s#;S;&z|{Xhbdv 6G)5{, 392fL{5bb/ɻ1d ^%>tuJSS9b!:97b=D;J Q[S8*Axۺ ) LHQ7߈I tllbƣx%:&szdѴ+RHۚtzEj=b֮;lK}L< 74Oα?R!#j?nh.8g ]֜GiƘwZ\Jw"CHzֱ=mWFtc|%ʱ7?S35g,6"eqk8Bwh1>Avy2L;:$‘pξ/(Vsa;sZ7MbH'p\ow[MdE.x>{6ʆۥ+񽭐Xػ wr~'Ym!œ =>fA56t[0Czdu)-ꉘ0Z}_oԩӨ 6\qkjnnPH[f<+W$3PߊiaMY2Ǽk*\åZWwGDfJN%|;{q ,J1n[ld"͵v>%c[+?rwYIu~+uZ6E˼*kKv41tKNxpaF/ J+"T:w27ʻ3oX5OZ`o=M=PI%w:CLOƯ8w<5yF8lcdWR6lP$EiQ0^s|:ehGwlñyM,slCA.3Ee8|;~`O/+.ۑxz{N!0ER%h6^MHO İL:\ _ n;.% PKg7Rst??pip/_vendor/urllib3/_version.pySV,VHIUE%%) e .~A\eEřy JzFfzFJ\PKg7RS SV-9H!pip/_vendor/urllib3/connection.py<w6S`˙jd&Nr{nU[iYi^6KS$$ z~3@N;/&A`0o \[ B|P*IʊT<;*em2Bx3wtz5wΧz_됶@\"P̊J-Hl(yȒ"fDHz)u1f,0W pQ]h,Yr1uzr0f=Kxyo{{Ò=JDFۣ>kz9~D3u@oX9/"*`TrD /};bG?9:]\ytvr]ᰒRA9?˓=i'iph'ш bh-Q)-R:T)t!2 }A1r:%30<U6BV[[^٪ 9?IY7𤴍 9F)"0Kb{xÆlQz4fIfӾ4+E8IP9pVV$yr-,]sH$&lKKLN"n[..jfQ_€EBi<̘`cT@|6D ٜlv,&O>l̒di&J"^&Ä7'䯸G EDqwtƗ0Q9lζ7H.,8 5=GCk3`"UXVdf0R~8a1[+5}S?ޥk ח'?LoFi~NM~2#?/Kp ϝűٖl2Z%fva=9"2/֨٩00Y:˛YtAȣ1*` `aJ2&ˁCIQ6V&]-"o\jdEVEz>or!7wˇʴ`B/cmµX#-VCQ6agݏ' pݐPːX xZ4}@Ptm͑fL]o_28Խ<*a8*\TL ]#eq5o ̷m 9[dl=|+0{ RT~6H>T.ػ ;HnW,Y79[ /y P8 `dfRA y_8W t(P-kIkϗȒkKbp$WH^mG ٚT+ns/)XUhhp4)u": Y{+6`\2S t MpӋk׈ޟK\ztp%(Sx ɉ;ZX X[)3q%M.u"~, iZU.rݡF(`6 #@jWB-B`^К+ 99E?^: BEqR_ aن8)Q1@Oo/5@ðWBK^eHðDe $4,I?R%p0oq-3AHWHo%& '#դJ!$CvQpB2KsbdUs`^6P=:rtl,'<=d9׈Mi6p.~)6f=ȏ趁 1tޤYY%p_ڴZgEhuXU't#h/P=.f$dցR_נR>~"'zzuV65r޷nkMLcG[85g 5p%pDU r_B@&51f0*% (4^gQ)i8.VAԚY;Y݅}vsyz9foLЙ[\0)_5D"?]'pJ^S(օוA([hiyVx4Z]-[ҦPZ9#0Ou>RȚm$XObSg&nDw&cAÜ%)ݵڷT!4T7fusCQN3*/(PІ6#> JsڊⰢ$˸='% 8Vԯ̞Nܭu0>"~u;pȒ 0]ɪ?@D+gN|4%lNEs^H< T\?y;[g2dF(yл;?3uȂU07&(8GnD=Fjh'Mm/(kѥB<פ{l%lUc-:=t;Oa"fclvѣ>weꄠ'LghF[~FTr6?6:%˺m-wKj"V+нz0(N`U#xT%'Su>7gmŢ4ڼZ;do'kSuәB`y4 4;^)rIv$բW9Շq_㨝yj>*.TY}F3aVATތ`wr[,瑥ܘS3\Jͦ0sg>U5'T) fۊKO;LbZ 5%4nC3ACh^ݯnHV|P e փ)A#t6 ;r^,a8b\_qY@C0 sQOaoߊS;;iɼ*DMrt}G}|[Ƙޅ "n^lkHٵ?IB*Sb:OZ[ hl ..LwގuMUrp'UU5UZc~kҬmn$nAeBş&9ڦ (м9o@9XᙼIGy&١ۢ/G77ُ7ON V^bA רJ/5.~t;44De0 95iKU\"ؚpIos/*Žoc&:q-h-6JB0]B`Ař`_QDTl^I.6J.n˹hY x?T#*>ō\:OUl8ÍsI.UKN'(UwiK7 1&mlRXM*PןhVIk(FC s9po#dXD%A;09$w;2pvTT.iJŞyzovw-Z÷5#F{BZ^1^a/m`] _Mc}E7X,5W:6?6z< !TduޔnCs;%yN@{I=9Mv'@7N0{!ȣ /!,m *yLjCcmC \}q@vyL B(G获XRFDEb>aJf 0fFbasn>T*Bx@_6 %53-Fd.v\]RQHU`-w=E/w.{LDb0W)0P'͚٧diߕfm>6T4G}6Hz\S6:NкWصծa}kZ.+xS~Sn(]^7sz1Evϭc)`QޡK !+R,_:᫧N̥7&ږjeNhd^=鳌% @&H8Z9" |L[*/RێbL>E"v9>wׁ(ghgzPoَt6nI{^g+wn։8n.l@̨҇?XT6h>@P\7Gx\@.ղS.ҫZ/[cM-Ue/e_Qc|h zF#1u@KT^]r\2UI2U޸TSǮ d!vtn _撝ǡғ9r&0{ G [Nw5@f`{ߏro`e6v0)g[ֈrFʜ- ^%ŒNdw @и;Z<7_Z\:(MS~2!PwF=X%!K11ͱ`ji.w8=[;MroX ^(rlx}zrMEK6bKFVsNPEb TwplKvuǎ_\zyI*OxڪI%N^9x.6.8&9͔oJY&fB,홨%Onko0 zI)ơgc,0K@tLߒm0Bw)~jy0{IQ\@] >4F_”]֫*/ׅ YL!'>6er2WX7h^ZPKg7RW( %pip/_vendor/urllib3/connectionpool.py}isHw <*"d3۽UOxlub}hmy$DI@C2gboy μ0 E*3lM2-olmtIveߩ>8iZ(ժVg[/nUg~Z>k*h,3nXudm._ϡv]Quٖ|Ԣ+J?1>HǬU?!SԷ*ʹlv е/ /} je8n.jҀ[ʺUU]ΐ/6n\Yej|{ΪʝUԟzvyޛzH#+{Qo/TKԽsz.}q㕅tרfl Kp'K馾m`Zlul H_5<(,ӆ[ ުn]ina (rM]QPmYۭGBi*ٺ붳M^?X`ZkU7[m.lD-p-vZM~ji2Sբլ˚rV&+?+Z\d=D=Mp&j4Uʗua)<f}l5uc.ڤoղY&otS ;~[Z/n9S=Œ]])BU59N fq4ڀNj"~xIU hr`Ss9}?=#1 '-{ ϠC~O$*w}.+"y vPnGh"<[( E,xUʋ"3WK1 %˲:D A0VK=1(ͦ }P+@o4x!\7/XMj. TA&@9^W̋Z'AirāAC ~XYLȔe}C*3>rd_Zvv-&2L 6Cf | +ni7jNJ6q;(= h2ωlhGsGs_[,d o`)[;wGw  b'nzNUӈx`>44DYgw/-o|^Ci($eEBiʋҋ de  jT2Z-2jG6آ/fJi+Oug>R7EP!Y C [Q 8#g>YT@IeJ5!˶,EW^~*+P8eB6h zHYpH,ھ >m]e H({s#)Z"Ʈ7<o f>,K'kv<4|xP.A=}2wFd 7r:}{]G9!qӽh qL{JUVslw [qZĦUzo%VDΙڍɂ\BǗ\Ϯ/^tm=?FeW/ΆM~=C6t1kyQ9q6#GOBk bqZlƂL|U"~ŌTă/EގH l`yKq0|۩|o[ -xLsM`@[`b44a6CL-m;>L~D╽u6ikk:Ɠ#|+*0Qw!g_^+R-pTHq$d\^ɶo`Ҷ?\!{<ݕm7rI"֟arQ.[UU݀ )]K-lO4 @~&wmUkx>IN\,ޛ-3>hd){x=̤4WgGF}BSђ<=-CdX̼g)ΓSӢW)؛ ۆf䓳I{"p/euVjz2=tDRӂZi~#;OLI/6p.f\]`d Z'r>1O_%ʻ wY7&1ZJv}|0@uY t DŽ<>q BLfN$ѡo`hJBZ/'Rk6WYkI! xV gv!s]T _ wmpL*7-{ץ?GBZַ߭q ?~xx :AP~} KlbW;~ B,otHIU.օFr B mc4^ˋVn^KvФ9x)P,g%:s02ː@3 6H%zGXtJ`m"1yl@8SlAC `qg:>aj,O)UKyG ƀOh1^TwB!GL#!僮7[0ov9<)1~EF YniI1Cr)lKz#Kܰ5 ktk4/h1\Ŋ$χ24)+ N_w~#E|c* 6]6ɹhխ"yq<_8 d8F &,=\LT`'ܧ3GԞZP*$0%|e~6:"< "$H+So0PWCQ.d6‚冎P/ Uxec+8QV<4Nrr|Z[B]<ňȁݣw>) =KX3t˪T@$.TǞ0Ë#gjq!#VG nqr ,SŒ6z X e w~O,Qw2ߋ|;CKIP.֋dNjXj`K' rV%w56_nH r&e]ʣ,S(Z/G}> ++]8/g2-B<͢ =f7j} 9{샜`2`B: xtz5Z#!]fΨcǣ9.ߟaHZfFjU8͎rI-  XB0KXigD]u&U&DyYSG yGvi:4Dk+Pêxq,x`&t3Wuҹ4uI˛:%oQmrfswV(w\-n0ʙDi^bD آA{j;JuJNC3|P4X],w(R,0:`Ko9n+JX00|AMp:Em¸T]giMT$SNcuU>AEJ-~£5x *IF:'y1yI͞/ }xZ=#g.5Uktq=M?[,s5Ӈ7 :ΏcC| .#TU, [h uT;><{TCƋϱVdyIθD:MCwTvidI<_A\#?9~,=\a6r.[(U >UzI\.s$J#Y׬LN"<N1$*߁kW&Т:%9[ OPl$~+CuR܍9d^ۆ :I9pjt8c8*jB-0311%!!3[Ƴ<1k+8O&c΁G{+d'M^mmr[ -<2XQת@Qey:r(y1a={qzx5઴sXJ8;M^<;yx~}?I `&ȕ."SAL`0e'j[$ubÔ6H\!Rk'>fL’_>Ě;ԉ-f0|&|fSho0BSM!(9;d;xL0x:&IHjln3YKd3 řnu܊ <86$'ܦ$G\/lr-VS Dp 9 :VpZ:M3 l_j*'i2vv%RBiN%;>ȼS5ˣV fϛ]Ȣ A##)[hNGsp`AOn#s(єd>5M#dk> xt~<隬jA.U]C=xH)-T`#gs^gܝ̭ZS%"ؼEӖZ:]ʑ h=Q *6c?.fa C#u p㣜LhxG<eAiN3 p葈gGL|D,9np붺=+y DL+M?ms )H@VxvŸ4tN$TY;r__)˰bzŖ4Qâ N Tw{r |7BP&{8ZԲˉs c'_I3gѿ1 [ԛa/mO'nX;{KN%^]7.U A,lj[T.  =oD[=mq\GhVmr.),N͋h6FgՇ p'4Su ^]!4x]HթqHaI0|Ī) dL6K9g(7?Y K94\Z!QѺ1-"`v^UKT,tj O`u2 nP8.5xs˄3=GTNp7 [־ztT)QFT"cс$-,Jf0-jݵO~y:-A[G|mAMZ}RcZGker( 3FEG-x,kvhZdpdu77>ȶ14]ǮJpjjcoX9[3H/=1e"K l)x\Z@b"/QdIsЮ')@N :f25FI^2Ev=.*'pRF7zvIʂ䋇ˋ?rJtH9u9z<2;8]98E=ђD^С;VABL`,4 e D $X?9)XȳBM`!h 7"/.ԊOžVgmŽ)*ޗT:kg,ab%<2)x=o'1)5bRn.~99L+@9_Cr9 J-D?*6s[s M Qjg6+\s|d0)+bGm H/X&- ϡI}3Nq~j`k6\VQ9Ϟƴ_?^ Դhi"6FPPd=K` uvpH_{э4&ut 07 Hg TdCf@|'|][z&HF ~%],/%_ A6o$"_~:ipeC @ţ_qkbeǗLn-Y MYkSmt_Uo9y|st^b=0)c B hE%=~ZjvvĦB2ݫi8D{ry ҽ#0g[ڥ MTJh$2dx=o10ƳrT)M#,7n{ /=l a\bt4~ѵ*š\ޛRh`_ue l>߃]mI r]U>;w{1$$VWR_^ q6ю#pA͚N Z}_*1e_H4 xTg\ &/ IwQnؽuH-;Fyxy՝;jsǷX=N6=F2~TloE m{<`F;k?L~OExD잂50+˄m .`ɜj}`NgthgwƘ D}44a,p44ѓ(MFð0slH QW+Zt0Q}uM rX^X\UU'vXVUoJݦc*HH~ j]V-f ( p*Se)^MrX}je&oe_{:+I]W[HfNr15vD``ښίdzW㥔#I0]{ ֒SL4wTb́d4IX8/:%Y }LH&R'@zij<X‚r% nQ~  H^HzL!9x7$>h醚YʩDWi|@-aV+>Nv±M;3;*Y}[r{P F _-C}rCcdhWfw4XFgvuE–;pqMдϢ\P/HڠcaJ|;VBoBwrtN^cdvP=6z/`N8- [uS6IJzE%ϿM E^C7T_ݤA)J(PKg7ReW !pip/_vendor/urllib3/exceptions.pyYn#}W6ȾzY1?3,0hJi6JH.wa%V(ba\bk.S0̒Z)#C!o,en+xګ=馀Կ)#7T ͤvPxp:}nU:g]Ngе+pV!ݛwu:>A(MVgJ0-sd6r=fOW H+[;&@]pѕL;FʿaKawh;{΄`jp NǑAץyvO2pK~  jT;x 2kVuCců•}`3DžιҨ2M^Ҁ VMV΄:~חY.1n2egj ,I#r $A8a ' s@TDC\(]FX1`I[T[a:\A&v 7u%{酪qISSA6 A|JJE{O[?.n {Pe>3$hckk4T!P6&]!T"(ү[hV$~@6E){*AhdF`FTyޱl86 3<+3r` =$4(O7 g[Z:*Y%2`z&ի{u6.2$"ǶXz {`Zj$Ny߽P߅'H.K`e:.<T P@ERԽ.h!p7WJ^b~{ӻwLȅ @PC"~P~av>A2j\@\_Rw Dc@.ׅo u [~`[Evt?dG_CS(H=V|r@5}C,lHWд +9-R_ @fOw˟j-7!}w@T!o{i%m AbmÀ֯ Dt|jp0?R56 U3|!#i๠Wc?H P"Z)%p bEF- ~L懮Э;`ܐ&qj;]{KC_X*_=Q}:G\nZݏ,3|5pqqmt`ܹVl*|eVÙ;r&@G[ k/vd}y$O_*䨉J->=` 2S7T/|ZhBֶ( h1ss< ʋ.%[TViNP ruiJy^4:Uzhu pf ˗w<4A4 "zZyֵ+NxRky BI _:o!]xC{}GbEoن#-|y'ib}wIN %k U\AhCK}DU+b_9lt^v ԔysKcpN}V*}FOYX]Xw.69Zfd|FS0|D?7 P:̼Tz3+LHc 3)ާ`95I~]6:FC/)H"8+c wݳ2b/Uu 9H8RR9>BEx+vPKg7R(K, !pip/_vendor/urllib3/fields.pyY{o_b ֶ|A*sq$9mP+r%1Hw[Mޙ}ˇ|ɡ˝y^ẒUÐ$"/%a+~:߱$LRavɎ}녒FkdK ݱ HFQdSq!($d:Iyv|B`RXQIdgGy$ Yr<#r#rˉwYN?Kk2#q^=JsDZ+d2|Y+F5.edYhZ Ph)P? ȳt RX- p.SC&rKᲄڀݙr2ծF,A{MB,e{נ9@˺4*NhD~{777M6hc RTxc򔴰]!l)ϴ4LDI5C I.Զf%ׂ6 pJUKP{ٜ'^nC6RleE7BUO[aȪφC*¡9;Erܞogv@ py󋫋7gn̛ϧ=1zNjEPdnU`Ҿ`*ge,P`Y%i"q f`4@A^&<|\ۉ3фqrxwkϦB~z=mNrM2v8ͨf bh;aqɩ*ڌ`$Y"l(܈m_\'&fTEnsT191rPþfgfv1ϗ1̓u C+ &xO ͑:b&ϜMF,bj'vQ"*/@75 H %}u/j_ o!='z<]M\(+H<Rt cN6|13|HPduJ)dI֐zr1^xN+V'7쎣 mVJ>=@5ͫqС/9KkzfC@g]Qbfaj Zc~DЏ= Ö \Ec=\p/솲v5_93NF`wd b½B? +PFw09%3H8~:h;YѼzr ;nu}WԵg&J_4ҟϟxY&3ѡI-rM7z;;=kZ|6xgmϠ2] 㵦Փ~ma|u s3ݚ1 تB&v( 0 MnKSzNvuk 4gw`+SV.؅,=V;Nާn?fRNJ"׷MX>-*u30;;anRu|C &LtOa0ifG7S f|4&:S;֛i7R ҧ04]'t\!^&7Ao:en[F<5ݦn8ZuB.ԯuA򜘻چe{mo. rZEFIK2{+y@6@u!`xAj]CQQ8P`W q=Rj ྂ"ݹZ=\cUtHՃ;̻M%h$b9vOw#[֠0r`T^}m[u/D*ϛ{ӄڏMKT`vz:LxGo3ׄ_iҫCg?PKg7R~ pip/_vendor/urllib3/filepost.pyU6+* A (\%hHz)Bњ]THjw}ɷgHQ-{7%r{aktEn0X ^Z;Iz%wmz<'7{v1Y+P6v__=o &V<,v-MUūIo>K׮O_$I-;-T>7 Гi8pk(`/y*6ЉҲ$;V)4)}- W<؋mLn3J, oTMړS ]٨-qт%a{-HaI"U UxF릖D6)E*ώu/c)AqUcu"Nѯ (-z$x!`y4.F_~&#Z1 kl%{@ĿwiZy tv;aT2Sȉ"lѦ3 Q74 ՔG PK; eDg 6 P&9SJIǪ|_XviG#{Uwaޖx0F $Y^0ccad]֛SwF(@AZF7Ñ\ Ǽ ;eptGieQ @[^8m3_\{ykoj;%A! `KIyA!Uͺj/y¦~\6ٴR#JuJ10͆z -hC"ݤSjgOC`lL` g)9V+ScD[k#a ڤMgZ00Wavdt)BjktlVd+ OtY@r63,$PjXΗandS#9)3Oȍ w!f!#6BmEdWhU7{Y73>$BXO3SQU`P[(B%@U6`iͦ#"3BsQAUetUF@LtR Eh(HiVz'@A[xǺ7Hv䚷[`xΥ,Y<  WV$UV+KsDϴ'@@NUscghE{ hK@^T*|°=0GIM8H WbPhc߄5h~l?x-3  95:/ąFgsľkˈt8"+E S1lHݱ}38Ǔ>Nmd򉴽,+ Y϶؃DNfx!$!I[Y UkqoeBͦMos1 z@8! 0 㻪nۺRa]|v Ljof"^Ykȯ:JS Mj0Kof=^2z~5K ݳI7Evcy`yղbl~LIeRnc5HNثGŌ^l}lpzQ.Q 4rs#0A{ޏAC$Ui8HnHxf#mOK%3d5 .}@yJ,DW2| ia_BXy`Pꍆ]wVW."_DqLQhRR:>=x y/;iѴza,r/oC\D1#ϳy2'%6;凳8Ci=˺_+R(wu=y[KG O'^Og6 J4%B9Dmό* '_/,qBERz-6>ΆXՖjߡƜ޲u\M }D?_P 3O&gECCbEF(TCbhNm>jJ#.F|e4>MfFLS3t-Kha>es9=^y7Rc]On+p@"J_-j|%|0Il#L'ϵMkl~$oGHZ΂BZ`;q^\]$'IOڱܴXk 5t;8(Rk(*\W_%vB[3!^с PU/B蕹lV.ܡhϧ8fZIS+Q@V%%8G*!:aIpwVZA Q 'B0 l*F(K+X }rjCr̡Slk^cCI/vaJ ;)ҟ1%+& .]op(srÛ~,99QX ƞ%b 3B\* + ;Sҁ+71]-.m/wxurUt\bZ \=;rq'*KBX5B9~BG 7 }?=kd1L0BxVt;*v -j=h`z`K5]|f>Vҵl4i3S\cS \*Q>ZR9[mUosPz!Ή yDYy~jyRg cȩt5"P>~}Zd?Yا'~ت"]kޡn+ȿ_?{(bHk-gI5=HYQ[U{V9', 4zzOՍACӻ~2s9P3a?\,=0 nG, C g^YF!WYGV|S^ ?-SQ_4#KK$rq 裆&,YĢV/ ŃcLRg= ^B8JϓcGsNoW=D\X`n_F&Ys5'IEi%gɚ(悞YO.^ 3:4bjp,D,NE(x6Ȱ]l1M4} hs\JBnH$83RH_ DRaJk& %vY]tY\Nbq>{HqlUܺ Q}ˀ]X_NUzcׅOOQpfrQd^i#R)_)ކKƘ6MC^1ʠy!ŋv H~1y{h=Vq?ms`(\?)n4> ޒե9(@T:]_#A; JpwA5 UE:ptؖ@nJ1"Bv2,›)`ē`aċ߾}C<.XK"=~U:zbZ"lhb2g{8u:ɨ7kO/mTDq5 :UŇ&nݱS ɒtU q=^*SK{8Cl3bdVߞrG dTX5lS7nȋPIl_]kt9sO '@"cne 6` MG7`ao4<n'̺ijcS7D0qkt6dwlDO*܍P.&Xw0hP(3sLR'w 3 Ey<"8Ch+wuqj; KWlRip' ɝ>8p 7앵Y ~Б ĵ BځS*/m!RD 2x̑٠42m ѣs`=wbnt%&OH԰k>{<8\MgKPp?0M:.Aѽ26,8s6@ZHHtՆUވɉ/`es׿_單ح r׾ Ls$"x/vjsexשSj!k]P˝T{S7WԜGYW$ͱ3 L#6b67k"Iqx}JL\$dw pzSKnDDCiu C9'%\_r no]A٬YYNjLg8171t^} \a+? =Dga-}/D@m=6M|i YO;`;Ii9ړz}lCpIfWB.$P\ ʽ9ӚXTV/-ykq(.$ .2u7:& n<<2K@*l 1nIDm|G(t#XpTCb`)egۇ$ޯJIt,zqeJ^Kz%Q $!Iq?Mv*R7j'A y 8ڼ XW6Rub)5VGkTFslg/+$>6ee8EfE׽Qo}-QȌbFgP/"T!;a_]V6అ{WbB?ɮ,o8|BCaFE(E]o^=եPshKj7x鷃'-z~⟵嵽'ܽIͽ[0T˜j1EY8iNE{hã?MZ{L[oYA ڙip~dQN5C/s1iSV{dwKq ʺDWIf%.MbMgGV ΰŽ1t{F"ޚ^FfAy(%+ *1.{5*t -D/-̳ImRhG W*J!d}4Dw52\~7m"*ﻼğfvE,nݱBtJ[SeSJ{'>R4Y?Ff `~̕\?#,(J.}Wx鹘>J ʷ?O$=R?J]BYwln7q7gZAoRMOѭWx\F @t]̻*I)z)Vܨ3{۹z` VQG"l|%1bR9j>(biLB!9jL-PKg7Rapip/_vendor/urllib3/request.pyXKo8W7"nL:{h4lڢbN$QKQq8=l~ %oxC-Xܱ$ΚpRcAҏ?|O 6'?n>2w:>/ۅT%3jK~<1ߵ"<?7oE^#'$eҔR*XqEataK&,{H:Jb"{-3 R͢i6R\~Ŗ>5^cz|VX 3Ȼ[ҭST.tŒ^\<rEڕֈmP'mo'kcrN3|>Ά`x>W1mMtuκ7QMe# zcϡM>qwu3n:im4f'J$]'GD?y9jEh(R ԙ+vH6[K{h8e\Ke+u:J*-g.-}R.c88WhDh BDJ "`sZo\&aȞJ=M[AXU,~0z| A||w*i./LFiU'Wn=ӲDZ,i};́ ܮ'hy1Dm"*uU{o .!IF'0Քpf*OuD6vp[.z6Pw+F|QāO/.1ކ"m~; Ga񿜷Ic@# NURnlyszc~v+SSE<]^Q-'yz,Ҋ[%]}ز]VV"e[H nﮝ9TVfY4Eo/[j6J~C;+YD;a.’EɂIwd_Ip?q ?]8v?$'e#+IAkmAz{O2O,MjHȡb*FBaȣ3P[ۼ@o~{c;Rhr^`/@ Ԁ3) n+)E C#G`GQΜXK[ؔ YBL9zeEB0A)̳s've= ;kBJ\Rb; _`N6шq I 6x0l7zOG?yFC.>@]~@򨇟 &:Ъ(u;n``Qf;u5,)+kVu!jWRͺtjsFE%M3x zzVxbf?1Nw|'&S1kpN3pاS %,ϳ5b!d{'y}L8 FV9<:mAce^"AkJ`mPkq ?f 6cl2GƆN/0*%]jKg\Vm^ - &JLÈM꣬V;)Ğى7Dt! P5Y#7h+ 艖B67Oڞq&!r &+a@Ә9BCU*['fv,:ĶM6|!(>:Xd p}F[EƏ+iMY~Du ֥`ҧyRwKGrh V9K9#ƟS+ق(zY4ʺ27=):fѺf=ƞ(XT 7+OVźi}iJ\@zPr"py$Jso&:,fy~?&یsdv =GPś۟o.hGc?_~l=6p s>CS>֭V OžU6of9؎^vf0ئ, /*xd?x3 }I'uE0Iۦ8C(e.jrAg:Ԯ@Nrg8I[=k9nv9#`mfXT:fkلTl12;`V1gMY7o9 &`s47HEVW]N_=C;2AQP er DXQ% 5:2A` ):ZA{!{t/_2q 63b`=⮕bzWE?Qbs4eQJMZ<9YAԕM\ aLA^b>1ViFWS CUC:P,D} ?nChɮ&nr;׬ HFwb^Y`|AgLβ,(:EGQG HNJ:ze| 74dQUvr z,*T-_L(8&?㇫ٔ:t$ ]Gĉj^@5*@i#+S4<9ߍ9>:A> |܍?^z34?HJBP9ynhFxYHr$jŭg <DQM¼B͈".5.00ţU(T }#cykrA[EΠ S &Z%Cm;lȍ$}.ZKѷp hhG@@eL>=nT7J0W7^^)_1DUnDnE4R54-=ǒ" 7%BʰؕqCJ0~ywbu`kr2S ]zG9H}D:\YӵȤSnw~nw06JA %ԢpU9OYoE)kTzk0\yB"-1Ull/<бXe}xԸY$y35K J#mބ vdGԗϗ;ef [?q,QUIXfE ^bY݇&>̇50.t9x @'VƁSG[?ESc>C2xdS3$ y$4Ϟ.7`;pYXuOSK,ڹ2+\?5`T;wlO<-Q쀖AZ3*9Gs?SdO`/jB)xݮV;]J>G)`rKm@FdM4D}JG.uv'1|,͑;4s%{[ *u,NO9Y۬[yɿr-T8AGǔVbtdϧImg=6G"ecuJڟ2DJ++sz S[l/҆˩pStXF_YYT\f)aY<7T$B1R'@.z"p*[nrum+ȷ|9AxRP߹InFkgԃV`C FaZCw2SwA#AzOW]K/8M,Z?]' E㐼Hj6QP;y= c|cnѺgxN }@5H%]bNfsm4s7,UQ@b:-߯N*^XbϥUxXsKWÕ}I~Nr$?t^KiOy]:p K;qv/TF'Oq:S"c]k}N0W~{AgqK:BZv>Egķ50iʞ\iJ! YS忊[Mlij,rYj}ר bҾx}͹ 52mw49eyɿ6cd {s>1HxB9*B܄?+w=ŢH{>DO/`G iq'e_)V?׺@+ȋxU uuJ#ɋhj:7tn3,ƚ\S(H⩒]SLבWOmQ8 gbf3pk= 3rOs]Cx)[a /{gSFڜ!w:s/oUL1 = & JnPY|(O RWGlowN t} ^L<|>PN8J+]S}&p0etI.$J!wܤs`H5ϯ߽** [cbr6kaK^>'yȘ8~Ј]<:^DI~PMp?&ƍt|ߟPj(i%V&(Sz-V4MH?"2OCl]#!Ƽ\eso3v4.6 dP>48&;WܜnfQV/ }Ov3=}C*rΞʌzqug6CԪ}7Ќ/VɭU}nG "^İ}_ޞ:ΰ}X].n+{wFw z-X8;ფ/ЇYU=Ni:Ǹ,Ďy}jH`y۳xOtL 7$w<#*r[MΉ@]mED& 7lu|Aa-AH.MQm ̞?aj<7bũ2( t˾4O! e(:Ĺ.F[egeWŗՎ{_.݋`3dB1mVp)׭זϏK"K1(6Hv{BAO/?'̼cEu+XnM`ҍCg emu _DnXfHA >ҍ "՚n*."YI/eV בx}?}?k' 8O酄U@ei=O^:{Ҁ~q6PKg7R'pip/_vendor/urllib3/contrib/__init__.pyPKg7R*1pip/_vendor/urllib3/contrib/_appengine_environ.pyœAk0.bC.@ qBgJ14k!dvgzoyzo,(v0-4vq& ,Df(Eq&{W' Oi^?Q:BN4<;:Sk:atθ{"CdC1Q˞`3$?d@HF$-O5 gZvtT=XIFFp L9j!lQ}v$qzfJYuuKECǙJUG]\:`i~:+~z{v??pOJWM{u6W3`\7_}~}4Xefp8%9ߦ ~iC`;LC\-J2,;i#PKg7RXc +(pip/_vendor/urllib3/contrib/appengine.pyZms۸_*scF7Ou_ ;Am#Št τR^5ONy.rĹi 6:n)s-^Yo ]3,ZjesriTLv቟Wɗӛ?_/7?Kr-;1 ?6E&ܘ`lr(uY.G ! vm[+e@ kQl;&Pa"d6`$ ۆ%{q.S.[4%|cǔ4$Seiu]zꁏ3kGs[F">xߖ``32"T43XǸ{xqoj *xigj~_?20t&;"YjٌY9./n(bHW̌+]vԀS):!7jXJsPC~%| _-k>#T$)i( )4vu6 r SL8Nα/tƿoDY2r\aP  q/^װRn.ehF$ +ZГeHIHd_a.26͒@ϗBS ebh_aiTdC?A>^Z4LL3?PVۮ-x,s2 7 tӝ T?(AJGLs`{N0@%odꄓ,̻j,Ѝb?9Io0pb %#J,׋Ca9IR(҈`+$`0[b|4!k5]r!\s6j6g4xYha s S`\\3l.jE۵k<|G.LȱÛ,@_<$(>c>`R( gt wW_>,XuԏPiP1u9\55;{Pݛk2~,u ³١5pe,L[c,o>^f7;w"xpt=-BbI5)f 4P0Eق/VS`q!4[o}}d"!Uj0 8Cyqe D٢T\Lphy9/]1[#5e`eceUg~S* Gc nArZokllv9Pyu?]M[i(((q- ҫZ O:8[ g# 6rS|+J S\š 6 ƫJQ.Ah{~cQZ76z'\g}=G.f ~6 bhϯv2IdžFXR5,3@昝gc(:;O1SE '@<Yi=ԁ#;^kowU.:٬էﯮEO+Saڣm# HP)lsn5a{}Ufk52zGUO1ئC}n'0уCP"a5X>߆!RnXD-/xgT֓g*3%49 {s]${}ɜe64a1Xʐ,eI0 Ų9(9SvR0uC#lXM݃9~_M{@\e̘@]KRX svsP7!U"n>MC ޑG!1$"pԖ!4=J=z9LB;nF:,#_#,AVpv%9r:h`P/aƟI)Cnq0!"2Q F8RMq?x6"" KBs2B[mQV;5el}'tf^M`(%ۀD@*0Aw@^RO5\ C$Ajo A)a#Uڤ\!X`:ǰuhC?lP +a/nWM=rQչ*Q娸HY{“ȲbK=ݎÖc^:h6|fLs|TPŷ_BYLÃQ "sgz։V[N)sZ#*mezé &ےkzt%{z[c 1ufHVx|xJ Ex9,"O=KhCBaeu$yNh풩B f(yH+mLI/8ŞKubx>jbu-͈xHxZs$)[x/1/c$ ǪWEɑN:yђh/=ͱKDfHG)=CE9V)h@GJwVFT蓵\]\_/o.є='drxw%kqzY]]ބ$w35]M2 습L+]$[VE.X*"i%ɒmeD$Axc9q Jb(Y$L U He\ ,\>NWES!"\xHOuOD$`RASH~ws‘K|EOzl3fY˓ξO„jrx!&NMagk![*aNzR63ܗj^΄\id,f mD| -ab/Y"b@*5Xۭ]@cV]u$Hb1\l^$FD˲(k|ˤ,D{=bK;N}__7 + *ffF|\" .xU̝!5,ɗ9гNp2!?a9Oinu&< ~%KK;s1FvH (}&0ɲBn`Ӂ93F'kƟ.Y:(ҔTԋH8! >vD V+FSˍHal.Z֎^/ z٧~GY_|)ax廜R=uT)=4f&U76 <3 &B@ @)U -]r2u~r͐f;ΚSS5 %lʃ j6bІaATJYߘ3$є`E4Lj8e@٫B٫n^U0i!֖.4g6aoW:o&?>Lo'o]w VkɊ3 {aC4|"77ZTH"/F e{|M]_e6V>zRū4#9yue, ןA`Є>%w()1݃ufڞez/v'n*a fXւDB@I f* QZVvM4GƧjӄ.-ʮ_C (&3QWc/.S8&8l@t #2 ZǬƈV'tC[kpP>Irƃ5tPFܭld,s@%E mWmZ@a"E 1g\ P2HB VG!0Hpl!cP lBfyS|Kc(xܥ6q6Дu?5ܩ+3@Q'gNV(7??DCR5m S\zTh|(x 5V"-]V7~:h 1}0%Tx?[4ݢ/=|m!Y=fX%YIyiJ-, ޚPPaz/@\E+Zl((ײp S Pp|)0_^D-`| ju.S j+}U˓! &BaIT6Bp7`DVt6,P-1g.O~`2Ůg|>h(i4p,.$B5ה"CEbBE-oRdP+=˟ƣՓ-8˰c(݀ukK=ߏ\`޵LDI3fC7Jl ˢ¦M>//eKlboR7}M|j6g" wQ扤#qdv!?)݆32H#Zi@BZ_pT_Fʾ4qi%1W>,ϧD>wPFd^aC-s$} J7W筆&Hӛq[V J+G|L/|>JIq^?% bPJ&r1C!;u(׾byC_ؠ59ހ'%^&l`Z5 +Y\ϳj_ISjudҊ鳻PwђoJ}#@Wv؜YBeEC;:9uYKNBCPOFAF8RIV20עIr[hM &P K'pHqͶX'6hk\] 9kp]ߔdX 8 DJ6af48\oʪٛ&c6:L8P'ɐ*\B \Jm(t6yO=d.5}` @5%.( Au zifoձIRAL0LO3o4b` pth#(ɫR5a:FC A: 4i:8lw|<bD`q5:q'u#-֚1}cd[J*u{GMoa2oF;eeo1U`}mEEf {54vҖy=E-;dt!;@8q }qUFw`kTj_+ѿS7W%=v}`ϙ멐g18>x')+ZP؞ZQ77IJ[NښgܲҺi9hMfяvs}'}hU* co2(eBu"2Z~Ms}4"Pqp}3@8@`#?9ۜW>ĭG{/~韇RFLc? izOo͕;gqT qN?IC!ޢH) vTSu='WCxgrM$,'t[1hI܋c {TQ[5Ӑ Jg6Tm1AsӘm?Kt Yx ,"^ O!HNmDw k4BOJ֞Ǝt(_ix>֠abvKaa,uΛa .Q!P$M@k`JΚְ{Nu/yIJY8Zi/N?%I<@5c/{ٛGTk8A- z;(vV!Um&2HpyG>Rl/FjS+O,=RjF_1t8߫v ʀ/)зRA*pw:#3~i?PKg7R%.pip/_vendor/urllib3/contrib/securetransport.py}ks8w *&J9rwo=3*YRI`SdqL:>\|$Rcf.vv]6 $D vLe&o ٤Y!rC.LYGS",v{*:AIPDR^DDq0( @,iLlb(VD0@DD"ӵÉ8͎WJfPzYFY\e\F&UX@U _:@OB/RKGi6!A8^}_V\?oUƣ4?Ÿϼnk}9LoWN.F0p0`/.Fkxؔ1_>1;5Ni8Ÿ}e<`:<AC #W ߟg# `t[fǾ,xJKIJtskzBKfY?J@m_ dQ/  1`+L.;9z}G_KZw<"4oJd8EŮmvkx=Z ?I}Q1+2~~'6>*T;Y|߀a`%Jwq,0@D3Q^˝zvgB7h72QxmwԟͫHIuPn 17##PO8i"<`#so Ch_t|d <}.~鶘% ĺYω+1#4;3۬)Hg˯h7n{cLBX%%CI6c4qIXqWԈth62&0eQ- 4AY$[lq )Np^)|]EAh*kHT.mHi؄ǕctWWhK!L"/$K-DQ[0Qd^utD,$r-lrИ IM}7 dyߥ2ȕN5( n&uIm@O@ lMdI(] X6^<zl&ĺK`cXvdTiTr|d VV>1ڙ`˦.Mg"Z€z]`xf)D!;q@p@}4re&@hml;r؅Jx_߿q)/)t ZyWݚW -TX?}Td5F 8Đ@'1F*^C17 AZ`l.[ sQ/S0WO`'ߟm Z+(pxn|]>_ 3F^~䢓{(ԟ\f(6u~?^|g#00?ɻtWrcN_:,X߻ӷ=v|Q#_Fgs\l䢧q_gS緯8^2%z:?_^ B?Nsb>ȕ5EKiv2\u0 k&HD}} <@@MZ/8$%ʱ7\vgA"!`:Q5vBOQ?tv ?OG#*bߎiq9'dmPe|'Ζeֲ,=F˶!Jn_ө[K-[ivy q!SG׮xpE_,"rwʧ3T9zV` GfY+K1 :YrUŢ|4Bvq:daA ?ǩ# eN޺,* /V58峚)k+;_Fh5m~:r[Lm@W<H d{=H:'hoEBW44\H A/Eu9XLs\Rb2<+Wy2X waC)@ L%г[u}lg $^-WX1dE4b98輮αP*g:U iYi5 S=ޤK@fW YE{}Wimaq"A~("*KscyWEYNfnVݕ TES1G#+)YeUP,q}@ 2 VFTY8@ek| eIbAq42 b|VͭwH,=xH{އFk`:Dg%j`vl *kujfuj'F B4^oi:SS( <9,fK+$fD.U.H Uܺ1^i=ؾYEbN`8Ѻi6 )`TRe!YF,82Ec;_m7rNc)T .s#~(x{ݳ'n(:gX7v$»I< ;ծ"ۀzR5Aچi441E  '0ֹIId=ۤfj|8>'&z(ɤʐT7лdpUң%́\(X [=_ςY[\̋tMrr׈ڌ䎊0R(!/ȷVUA}NkevEΣʪ H>H0ClMimdS$˜ii uҳrzo)#mg`bV+XR5Ja^onu8r8(7Iu+ <5;hMnroNm}jYiK(-N"AMtkx{knH9r*qȞ3RLS|n#$=Ȍ| ^=5J-}ݭؠ(G Xe@F7((壜%pZh4h"}3S}T 4bYW逗{zUBż/c @*Ok=X5a4"Sbω*{qC*W%m"7taf 8Qr]{3Aa?"W7#g46(ND&:FIvl6;e[;X R(QN}1H8\`Ee+`!s.NФĒYv}\OnM728WP1JE>vAODaNdV;ҬѴOC8\H5sA j!W&`GKV$ ap\J}rcUE9Ͻ=ZRaF}]6.{l KL`yϘ.KBCweW %8l6X@>m\rFU1 l6`U˂[,0[ 6;ؐQgW۩=1(31uV!,KfImDB#oDE 0a)KIBʥBCa7Rfo$w7虶 (H[TA IqGf6Bn@˴¢HasH`'t;=0&adHGAlJ|s K:{dhXp5s׽զ6B ZtSCDu5 Û谨WM7R_x74 ֲ~ q[j^=KC#xx/wm ,f1٩=!2}rX5Yja J]}6M;(R$Wn>YfP. Ƅ"*؟GE΂2kt79bU\n%hghgjKcdF@6n1.,Zq;Ύ'xr0~(w+g},ՒMBuy,wb/hhy<:T{DS鲪ZbܮYd#NۢPY/_FT@7`@F[[}-Ta[ɷoHLh xO890  ;2W] y 2^V@ XQ X| ycb<0M- D)`X se83O8 :d^,?Xo魣rX젢rG3j4tөC:~SNGeO`YOQįPfcbC~*\c¦-ϙ9dBS9c>{cҤz ­T)jR3NleZm|Q_jw6=Ge<*{~LA JPgw+hIze4j|鬵GY͛Y%4^<p9aQDbV?׳oo͜` vvxbmĹ :Semg#ͮ:ڄEKMWMD %kneB }=Qj 9Is U)L/f| .lO@t"^8 ҋ׹MT暥yaM?NF܊x!cbLn$hjrf[ >]obmӍ:ۡ\J#׾dz`\M=2O(62aERTb29AA r1&ɸ"QG.*_UkĠ`HΜnTʒ U] ӖdsCE+|7ڼT纼I}Q^}  d'JƦnuNc%l:f:Ѩe5 +3^a~KR]3&T5DoO'zQ?>[>t[{ʼj_Zea.FS'58o8ZpV4  D7  ӽ= fuSd`5'h,z GD;FwYm2 h~-҂vrwB'hMy'0W;u]BW]; |@>`B-/|o#>sKMj歶*wvZ% O;lw_ 5>N'R*50٭Ӆz)$p@ hc*眑,!tϻYW^:8t7Av?o[-n!EU4W`tMH]$F ,W^|wJ$[GA8EƗc\ŕ 7iEuG%rE3L=.%Xe%("2ПĀ\9$.~.%@RKrFJ48H üz_h)\ѡRگp ߲ql\vv-îdx_eCo8ʨ)p>iI qjQY +ku՛:cO0~{r|s/Ξ ݌a\y2>_y2c\} Xw_c ڃ.3]̥ f2?o5R'Qf\r_x$l5bZ2)C ή$GK)0UhRè]-lUcv%1I=RWh,1B岛 M>yCqH#h\&Ȩ,|7*t?QB fד9cGő+3`6qCBg*R2kĕ m`?Y퍕eo|.DO{b@2cT&*)2pMp߀Tt68]c\kFvD-!]b< Sg0`4,6ӥ3رHS,K٪ )* t^FU2qk;f-,oq(2y0qٜh^S/bq%_%rW\-*;sj#_G\sP])sT^?0L D_Bbڴ ՟4s+@IH]ܟ˯QsVܲ%Wi5,(xD`frx5`X' otV0٫ ~8ͪ/iE_PFqNGߔi[c( qB[<ug[29AtWS]o@w:2dPHJHyN0$;T}GhF|JR^{Uעx]QS"%Tt* xB/ӽp%J Ϣ6MEL^gaZDb3YA#Eט(&| = Cr*pƣd"Q..D0/ .:cDvmK^Gqj_G3[K湄xHrV/kMQYDJq凛Jo1b%D1|;#FbjV-:|O("G^;JYrP‹=@*^Kc6qd1{pm[,AE_:}N'~ϪZaVauѱߒe/~`g=/s$ ~.x}',o-7GDXsoC V.;Ԧz1r).V!kON idr6]U  v5%eFd;װ~@Zu:Yz}(Qo#=dBҩ+I3U?ңMQ0(StԹDe-9dif_Yl!lڟvr}-3y:+4.LlOokxqsU/F:HF /K TjmT6[e8"t~cL__} 18! =;}~$t:eqƮLKaf,!Awp()l5B*8'S?SSz\).uϴk\G=˱ )>nDo9b!ʯQ<x#Bs;//aO=~ yM1TRd=@b melp=So;A=[O7n<;vo Ln-} ,NȀ kt;58:|<Ľ;nAz"Ip2j>3r\ 2PKg7R8pip/_vendor/urllib3/contrib/_securetransport/__init__.pyPKg7R2πID8pip/_vendor/urllib3/contrib/_securetransport/bindings.pyioH;ըAKfĘδF#dL1.*U>ѶZݸޫWWl,wv@l9D y_v7$/;}ȵvm~6sbB?B پaP+7c~%%tȎ؜g{CI}{g| JLA@6j1fDl@|ogOw݆6\@M on3 #Ke]`;aC@X`o(kߺd2Ϣl:Dh2>Y;4i;9 d| Òv,r6dM`J_P kYw@eQ- CG"KAƼ7~܅ei̔$|~YK 9v00tgLvPJ}#ME2Smw f&$fE{pǜlm4bf ߃;вAw:d9eI{o .v0z-O^v`!A@~`#!tP0.PA)pAɄa9T+06]`-ab 2b7x]h"lAd>X,d |f HO8wtFoAd8=h@Y6_.l2ԡF 7]`|!αf@I艠BRpc3_m9MQ%m6]./);d Ps16hbqB;%4:J4i h܃SYQ)"=|0`DJ|7q!dǽ穸%rp2㤍\xZso!M~cZyɗgɇw`NWa)p k"w|,UB了Ô &S  wrc?#yDk[ /hc,ΚPP1ԡ8{ n ]_3:o:-E-ƑB@UTE3#p}{.$R?>-AzGբ^0gR'X -_+:J!SR!^Pi^K$|& yb(='#`M$`mҖ65!ḩ#@ESd4E.:PE(7;Emh4P *u%oh{^1VoMwQhZ35.HiZB.BF.~ܶdpL-Fɠ~̐ ԘTP_'sG#V7O ک^N=@r_[PA'A޹TYgzD CDPn!Å9;'Pm_C껦K=,$7:f ÷3Ww䘏ALT \ ` ۭdiL> 1lNFd4`R[P)JⰙv1n9a yCԢi2] \y ,5錘@eU55iu4:jIKR:=H%*9PTbY IZj JC9dlZ䕄c]FE:\u(uhKk>p0RNm#SHe{AÒ$$d*h>ALDD>qN*KEHڵ2#JTxWO5Sy0gJuN`&y@P(WA]y%*Zho@$m|TmN7IN=i5Ϛ?}TL?ƕ57ȵǻ,lSxHi[vBgDqk]%Y0g4PU.c:EԼ LJ)s?> t#oL&۪yM)< w lzYK1YduJ]'(W.HF>0d{HS($_t7|:*C}ʕrQNn 42@Cji_,^kUCj5:(OV(veYI5(%[|i0ؿEcV|9# q@U9q-ny]o6!stLk%?X4wij/+*1JNa!!T/>a{:HG(RP.SEtbmgӉ ,Bq-Hi֖Ri,r**xQAa %HB&|IղPʑ_䲂Y*sIn9pKNeHi.Uul5iJk"|30_+Posd4!ud9fģJA\sWrǛ'iF4)ge->eD*_9dpgd'QNl"EGm!+ [^)PS L:)6 q6E:'T]:z; rѵUz-Sf5fMUvv2~ª!B-wD{7ޕ;iF  s'oQGiܔ @ϭ38P/1BҾzI2::}7i 2Y bįyL_;(J3)Q@U-9U-3'}%Qd%}rcˉ(nBZtZ T5rXTU쩷iÓc}%.U~Br )/ 53ΏrDzS'T`׆XIV$kmzB wYMC* <2՚9f?9Z7G%X\ƲuXN.%U3s=I1[\v>VE*rYSy"ԫ͹{$2,qRdW%i5*HNrGboKvU}qvm|CcgcA^oX,|Z.DA>.30+:i<Ӣ5'>|w]IJ[Uz2/P!!]-x~5L}<-zlp BHZz^lOf|/( Q$0ȝx>~@g>Sׇ>OHf"+ߙَ5s`g= 15%6AQעc/m}lk&P]ML!uqବZ,(>9|fQY1xgb8Cj@ . 3=UbI%' pVŊ˴³9*!tmx`O'WX^\jw+vpvu Uj9Qa>ӫ >7h{[gޅ >Wq;x"1FyTP GIrt~l(WAM&1|bL˛Z1Y~ K,>;fEO$ra)S-P:,.UrA)'GƐR⽯`N t4Q(RaPKg7R~)|XT69pip/_vendor/urllib3/contrib/_securetransport/low_level.pymo۸šҗِ])t+Zc]dQGJqa} )ݦݾ,@">od<*՝*J2V,J[lM#E(F+eFwf+l)tealK(ʛr+*ezUܬܮ.h޺5*WJʼn7k|hs v+*/.6+]*1WB/E)i^ZHI& .\>F6YJި-r]E;V-QZF\ (b`"dP\*yki65<צ>З֪e[ F!sqB1XU??oyoELu (dm=6֨u,H~ LE)+JlGF`Q7m)Pk(L pc\;#`Ez3xίgչ8i5 Ǐ/oλxuqvz}NUI_'UvΌ!>}z4F Y Fلo parL /ŝ~TFlQ/Yo6L/W 4ߒ",IjZS D23B9?IgNRZʶY )&8w q0OQ%0`P ʍu~Pu^s*bmOG4é`U[;Yʒޑ+aZ m4D$ǣO i g8490hGZ`W՟MpQ`2Ǚ*-:2޾ 8FHU oW ;~PZQs)D=#`]B|C3XeY&;̼1,E:!=a!s@ˎdMJCeMi9/)B@C JVCxfύ+TF%=i-[])<ޑbrX"V1Qg5j9t.o ~{*1$PZC,J+$rFUq]"#k hq$c V;; 'ӺVՂI̙:bKٲXIE}U݈0~N/I+q(}x# 5}/Ȃŏv,~Nf|x*0QM윕LMY_RbS=lg")ء(y_z&&X q 7]kJ}}y( `:YϱYxgi&n]^>J:k&.:z_T\;0NP _Ł+ q[qzM˥ C ;h'=<>z,e؛Ч߇ Gzf_9efʱHf,껬cvv !](Rq,=G3@,tFSg,/a 64MA"f űSf-сEa:O99GǁN#hJk΀$7X(>@] =c g{Z. uhv|95is}o:5ᄓӺ$u03a0XZ'/P J1ԻRZBBG)*tn3*sH|&Q,8ʼn2Ԣ=`SbQ-dvF8'ԿU2f~H:3@6_7Fux2Acȑ.р K?ySĞ8V 1WŲ)Z^ߚ%~KdߛNBX_Lve r (=L&Lb!NCK/Ȱ!l}GK q΁2L 4+87jBWuQT v{,4.Ai+%ǔ2M?#DaNbbWmZE8}ӁMŮ\}A冬A]L,g~(72^\C2e nՖc2:>V72~5+FQ$0><  YZQֶV*2 X<1>t)[ڄ:UĄy AX㿹("߉A#4asI,y%h;pC·fS:9(<|GW ؞5+pM[4܉]t̩J\ؗs+ӆ' E|:v WKkiz8 )_yBf`p&@-xeXulXB(⢟uS=޴<Ā59sa+U_oXauAg1=6 lPs9[}ې?n>EKCaɒz}^vDkue)o~`WF$@w%^ݎ-BIow -BuB`hсWŋ8Z2x L!FZ>F5 08w(ݧ1_U# TRYdԺU+ %(wNAuL%ZrIB04LboXf3=$|FCLQIvt \=m.`7~LT?(\bĄuρ)iSI,`߿yw9 BT+VսoyFe(eӸ%˕]8~85Vѐn\wU9TQ`7Tqe` VM/tqsb㲊 _Ղ~M{2[k_\c#U#' C8)ᠿ|y Q7(@R1|F/g\~Z_lu X:Pm|4*Tjosǵ';X`H4d8'JēB:e\he 5ŢzH%6l^M(VK_j{bDS!{S|)m"[ե9w5Ws,+W%DI.pE4( p>"ĄE6bKc\JPw' xF ͼiYAAڅ26 .Be&4}%$zMZ-͋l ofxM]ؙsSeԚdH.FS(Wᝉߐ:j ޷f3j.5ڡ %fA`+RHEb!b;~GLHaG6)hE+ker{cYUět P0RnU-(LIsOVYwW: ~!>>+ gtccw:uğM?=53lN׏G`]&4 g~Mqygs h$7xlө[h)CL|&Q!?uz|sax+@:ÃE(qey%r7BSj:4Wtp_9䖝" tЇN:r~ i0eX_pX,|_ϲwWחg_..@I>į'cM'a|Onq4'7k02)mVX+TY.3Yb dP~ TDn{d G.)S~ ˌnO5 %%9|,M|zi#X7i 6x::=jdܟB?D34Zfm={$ftÛv"a]GPKg7R9Pl(pip/_vendor/urllib3/packages/__init__.pyK+UO+-)-JW-/*QHL*)-I@`9%%y\\99@l40t4PKg7RU#pip/_vendor/urllib3/packages/six.py=ks7+ptBzi-9;W -1w:J&!(N4a!`0ORN2gFh<x!&oy}qW2](輀x'ORrr>XJ-t[9i$p#ք/Y WxP*t h>p$|(ye+n%.@&.^)nK7z.L(KE,4=2 /ȇ@tGp@=ہXEs*f,b#YBb  Q, k@9QU)hU<-8b%a#RLAEVЋ¹JQ]C;%U=RXMb&h[U<$)bThCfX\]|B&ƿ8:=€a\ߦ?^'cH|?FO\Tt491a]!21&b#w|=8__Ouu^ϓ@+ˇV 8D0L^lOWcCRG@ |tOƁN,@)bx&=K,1C ! v:qYqB=}MNG/K(Ht~*idcZ&CiG[qy⇙JiM.C>h894>%rTy@8BX,i ; lI"F>l>췵nďGw8o w[$=x)/~+< TW3A1 #)mnѩMƌѯW+WcCvdzfn"9EDm3c̺*Y裆5:pSh|]&؁n5⯬nnCqxdhrY@z7᛾x%0X$syHK9J0ZH?IIy$k/rHPYR6L3ՎOM~&Q>zr M8" +P!qrbZ߿݉%Zs_I|@CO3XDh^N0av A1a r𫉳#r  ݕ̩OIq@(v*(JFMrj u4qv## ̼~X-SxqQ?X/ pKb -aӠӱned&eY! ^^ioJ r OfGw```Yf-6p7:{'%iWJ,Wѽ53Ò=uvLUqRFX-QS LAX7?cu۲MCpt6͠Y4P)a4FUwJcd(ɇ3i=*1%i*baEI(dmDy)F헹Ԣ_n-R[ژjzU3l)ڙ`%sU#7% > půPCWNrSa Vf.F~\zlaM̌>P S=N7hVt[%BQi"@@aSU&`wv1u^!$2[>LC*#^he=(W]i:2ߑX IR 0-hC Źs \. (/Ǘ@уȅGfbg8y1 &j;D WjlD wh*dP %V%)Aa!TE/4 .f饁x )%Vt:z>S2Et]_KHO+)/۵iSy[]c$\KU?6>U1&]?{]VvA](X6v[V(O ͔z0FpbHpቕ,BU` ?~8L ޜ ar2X 'ۖЮL#3P{gH|(0e0),-xeDs MpqZzvBn +x8|+KwfPUr&&6mh5r!rAqBUӲel|[(Qȹl w02 6lumv^%Q{* }4?::[RI*W[-&qcFJAnZoiSSrCYB.E]f&^7)A-gbeA:4e0꩞V' p+/%H5p,!G$6۱8~h54u4m%ziւeg+~8dX o? ~ئ3ܝ)wPC5g]5PzK}eP)ߪ52Yhp gaNt|l*Kڀ)Q^&+YES5~_O-𷘗m0δKD7*AگR8zzQo׸D/aj:l܆4gIu<[6NK^#L5ѝ/pcf_@y KI*pp=.U@dLЀ4y#us0%h 5:LrY[BPlr6~_HA!m!mҤDl U 5OΪD3۠U@ e@$TLRpHBT +߳BTS~qPIFኢ"N]6:ޥqj=Lf?Pu4kaȻiNW͌ZE-^( c 3 "ozbTP嵡Vx`H%^\zJZ ^ܱT+L} lGcj+VzGGck ),jybk sL놭 Q-HS͇Nr\y SJM ҽ+`z,%\DRIz/t&Hi bAW%Qi&%}I$5&$ۈpG(ÚҫbN g8>9 ?)u[N/Kʻ܃7?G M f%wTuTՙ\,0*vcӱW)+DF',OߐCy~BC r$).dQ]SyrZKMO5Pq"f_cd^GR/n֚RMa w/%Vk/UӤE9wkԣNauv%8$j*V%eXy%Odn!KUpl-ui+u= ާ$4-$ȅ CrpHk*s*%Y7~<fE.!<ѽi*D&r5O C.x"OP7u3 vSsG1MWpwFޅڕ@ֈHc/]3n6+*ZMg=o.~RH D=5npC<.fj?+]G*tÔr:ڦZP,}^@ۨ-T>Bťa3z|yjzyK;]Z(c?Prp7<Гt<*'L'%AgS1oγ# "m@ȿ+V_c] *`4UP;iw8=Cӎjsh=(=?NnfsG _ WvM.FwM/f␎!:#K)c΢,;Jr2ݣa\aޑ:u^ *4PxAR- }"lJ_WR 5 6H9, CT#,4#>`au'iesXAԵ;eGD7`nj,TyC@qF_}ohWRˍբٮޭ J8k@%6*ZGu'7IyP|H@/b& O`:|ڎP6/ZXiP] + 6q݌@_rg[6alI"n5ȓڃص54ēZM%wRGf"" o3 jTuK7MC'c"~](˪ޅY4rK'QAџ]B,i⦗U7|Re 0ӧk|IBtVs,,1PYj~j;#N l{_h2]0rpZ{o|r 0ͭs:^&&e҆bԚY^ā%L6 ˾B;=[;rAYW Z}UB7JghwmbTpY+kfe[VO(DZ0԰Pٯu|w`,Ng }lP ˓J} b0^pxB(^%&`te-|K +xeu#pA/IQMze(?d Ǔeon붾9Dȏb9Ax$ /Ą9CT1=Ѹu'F>OezB-`H_#(uQeC/C͜*Jh ,t y╱(T zkLM ?zhc(K rxpC 0 0hoC9?'A>OG3|w!]zwՀ<]hiUS Y4 t}/T!\"E œ?j$U jlZ(O Ւ%E>0&TV|6"1:pCEX3tBsR]wX hdy?M-ԅh&<WѲ/X#V-)H t tu,m' P7\ƵJVZC]%SoT ^+D)1z  CO(ҋx[mzS0q4z0hr!hD,_:eA!pSȢB7Ei*RsW^]ˠU JO&U`T\*j~)ݘF)Wd#%WSDQcsFSb!mz ҎYx_]=8KC#%||wYWic?Xc^-Ww.^tP9!'BڴhߢD.EEb`Vbˎ +6x[7R @c7]IKM<,%[cm.8_N_һ+F;B 5M!so3GS `~ 3kI>ixb | _pVE7$w'*2a1W—:LB\+(0'Uuq7M~\SK $}^&%~KKRhvK偉Ȥ $ Hj6w龅wCX;Uw Q# a2!/VQC~i*FX3;1:ohMrޒfeʹMfJ1ō}ڒBOBIۄ'7r#XqdZ #Ő{ DQvmNQ7IP]+#CѻEXXtFG+ n׳(KDM@6 P5e,ML B($(dt۪IP3+!"満:6ɠ`\5'kQW&=S\]fOStE 2e4-)ra*Wt\Աhq&t6f&EEo@V M/XڕͫBǔ$+aPT{3%;PKg7R2pip/_vendor/urllib3/packages/backports/__init__.pyPKg7R޸cH2pip/_vendor/urllib3/packages/backports/makefile.pyu]k0+xKR_,XK?MǫV[ m7 2 7$qYGޢ U .hlڤ]GBB6ַ_2 c4-;}7 B94J}g/V50'Syg#m㨬@eF!b#s%I8V',VQNOtoα[类jp ّFɚe* TSR EFsB?%r2 8n4H# Wj$Th֠atAUq3 }K CYd2~*=/Ƶown>Y`4 N`cw8nu|0(šXditJV PKg7R|@Bpip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.pyXmo8_1PPDNin=@ЦIi Zb2%t߯gHIw"3oBZR*}MWW$IF:ۅTJ_Brty*Km% _um!̺R5Ӄm\ⲅ[VZ6qddd7QFvZ@\\y,4{FAYI1vUMp1ur97B]J:v?~S f Ն^_ hfV1F?%e] f?f#g6ި&H]ԆZ\6ScjN>=FԵfa,3]Ӳ'!h1+}/qTpI*<۰% m٠`_Z u6NZUE.LaӠ௭Hym ~޼zA0!+eˎFTK-Wו͔tg9iOSc?| .)I׎ ne4A]ۍvvd閰vB{F.t m*R[#, K]İp8>Rw͙SJ15DRcl#rp) h_ԃ!X" qOݻN v'Rp']rK:xKaS=ꓗ5(Ş. 3 /F]H aD &7FJee`a{s$?wr=YY&j>[ĥU\Q=w\24im*BȽr4 br96!:ʢS"9hF~)Np\Υp ENۘru/KޢhR 3aIF;ǝtu։wR݇CAdӮ՘!_+K? XJy .,֨vUBGCK@;Pƙ%٧Z锥ë:6|~xU lB9g+xK`~jҹ?aagSMJ5ңIklH( 'JJk[-8ҡǓvPM ,#-[ɳKjJvF]6WΏi]{Y*͑Ąv]PS?v9z)Srr*EpW-sHC늕!g'HƜyvmR ƪפXN-lD;7JNxF1Sͬ}L"8 M: 8|ކ}0 q]Un;M{"% Z 05"«ƟtٵthW{½,D瞥]yń^L}3'&-V(twX(Ґ.4 A5vȫqF*à}gD ] `t&;Ad0>,,⻇uTS9۳|οxsۻ7/́HMhi=I6p;gF}ޓe7 L'>%xkWU"_jQ1_\[ŷDISv_W"|=icL?ݖw߹?.=m4&+a\^&G=tbpqoAAԉr (j1ğ#.Z h= PKg7R抙$pip/_vendor/urllib3/util/__init__.pymn0 ~ !l7!<4hvz؉Plb[%'OEGi%ҝh7MNȃ8IߚAVڊJwF:uPr0Ϫư wN k88"SҌ=UrJ|pP6Mw@8|]-eEz MHN(k$;WFUmt֋1Doɷn۔镽,K()Xٶ,73)[w~\\oY?7Z$ߑ >p$ݞQ{< nN.$ X]TzOa*{Rj9T>HKօmMʲNoᅔ$mg9X.G,bg#[Vn^2fvN ¡qPKg7R=:&pip/_vendor/urllib3/util/connection.pyXn#7}WdnJ{f2qxc'ه hQݔĘ";$[[-iv⥮N2z Ej\cxQ8`KexFq]E;*mH)Kk'Ig]2Zxb;cL' V\W;aJkV5dZ%npiAs%'m^XҦ0UѨ+@/ɺ2W-Mf$+omKg<8F Xpšp F7%*y!f~/Y;[lR \| R3@&[m]xN MD ^1d?Ɠ59f n xPcSRyU(Vl+dMxeB4.E6{Io8^1^W k{F^Meov~XXTmE 8# gmL5o$[r Tb-Ei V1|㭙LC撤h5|Ocn=[F;=) 91!.1c` Q}J?Tܸq tQwة*.:)b1$凋GکeEB>Q:)Z=y1YW'eÓ 1eM<{Fb=> ?5:Lz?7{怌P$i:+Wm:P 8>Y2(, GW  g 'nfW+qd&8MpalzBȡaQ ;H移aM^jnyWcDlgqD]EBO˒\:^La&Yx[c CJ`[юa+JSv]R{~r?Q_4`"PQO-ifIɿZ:KL8GM-s޲5fG> o߿I;7AO~ѢK%ăg{BjDݳg>Bb-&??u|vs/HX=ά0(yspAh 0ZܠqmBRޟ¤)2#8g*PnOH12Gq~MOGifn6]9o#ҏ JL:kھB^4+܈&L  0Q9MOD)H00Yܹؒ;Y~L?kg/"8p>>cm/Y&a-% N$8FPKg7RN!pip/_vendor/urllib3/util/queue.pymPJ0) ZWO+({O4e0ͤFŧ7I@ :v؋Rvm^PfoJ'L">(Hg/ р1 Z^ gzI]]?蒳a@}4M&:lf*;RD1[܈kw)HM[A. nEV HE.4%b̥sR]9 myfDb p:N&"^mle똉NqŽ>Z.ľ\o*Gfv|Epׯ;Oz㓳E(R_QYtBQ*Ji8pC `UU&Ap*^|xsoNS\ga8@:FLrB4uZdW"ųAf8>-)byZ̘Lӳ۫٦W1qc; !7W{A7Xd>hSF\Gs}0: 2)íwU*-c6NDNJ0ߗr?)6@<_ QxVw)tMp2z𤩅QP-=̳*}Pr+;P)dҺ)"Z?8#eX.Q7PfೖjcDh. ad1(JFPAK7|p/4b([ZZ,jz!ԭE|JGTuF뺝wmZZ7*gej賓'L iwbre55oHduJ9fw-'"95k̆z"iZ-GQAPnQqTL|$ɉmE"+X iQNkD&nD F`Om-{%㍒ S*Wޟ4+wKi$T3$EnJAM }^Jy k܅0yUuLO1l_ɭWxr|4ɬTgYqd˚>y ӳ4FI|Oጬ_TBhx_"ܐXyNΕm];dWoe{9]"T).Bj_4nEoqq_YlѿC:QkJ݈UpMR&QWN !f8ws X28PeѰeepUEtcp1`@øt?s& OSp)3t;0v.笅ayGPKg7RlvS!pip/_vendor/urllib3/util/retry.pyWpٯq/* J z8̮.@{vw- 68l2)@,V2˒jV++ N肯cDk`"T;>J遾]L_{=Lg.__]Φ/of2-$( "зLJ-v;bw4e .IBfݝ+y;_=++Ёy!z*00 .2kZ'ׅ\X u0m={=@T["EѼ^\^Ogѫ&_BH!?1Io:\~r^n0#@agaZEZFs.P~ۺxV$β@< nSVD[ 2U@2^`%_P&]*a4Phc'fނ@` d*dKr8l;b8pQa&,'I/R@PD/CW2uEۉ6&Y4Y|q-R^=[ 3Dp˸De\zB'FǻcIΫ85h_YVoXY>d3Kxj:P @_ ׶' j@Mq28A4H]C|Ӑ (+6gHIKZ|m89Q*ʳH*9IXmxKnN,Olmꖓ.Igedn 8h9|e;" f%λǀ W&UAjCgJ)kJ˂(A$&k8ps\ -wdHc0L!A$ꡆEP 49^[\wA*YPEfK5 $̔" W%UXKp̽ # IW.![Bʃ $V $I1=8n"v=Dw>I1Q'[-$IRm0zze6&2-xcvb(:z2DB"8bx~U~S- & (c ҟ٭f&/W/_FoK4ElJFW41fn8͡v;TRN\b<~h 65&DK&bIk`mm_:G<4.h6' b+ tm!pLI4voB<ugi|`( .T`Q 3ohhPW1 u@1)Ӆp%/سyHqR5!X9i| X,&1Ά̕J yKX3!ډ6T2<"*di)1MBJrtv:DWӛ9r{$c%BڔJXݕVjbLjl`;v!&/*pPP%nL3D~4.3ם~Ee {]L_OgSz;/gg(Rk'P{VԼܬT*])-(JUHX]prHU&%'x8<^2Ac~dg5ZJ:zޑ0ro\RTuDWcE@sse!ײUvUXqEtkWPͪICnljvhEYh><ݫ-X?4AGR?Cy>l@ZjCԚ:K>E;>54#aǍQ'f883rq{!޶[k똢yqotאv xv "jCn~"=`@H7zx #@xqoUF"c-+sr\< =B4pc}.sf[nFs<ߣE\ߤ]h;fz7w֧g{p:G;F943(6$v4Mk q>0!"K9Sa bԐee,Cϼ.dhuG Z $Qg=dZxސļ`zh'H % 4y5lQ #~}"`OB17JHGMz}PHorϯNEO Q("hy"L. jˀ '+%ZVA*AIѓe=> $Hê<^wI;id˰jW!+tpP |QEEfK2,"ݶ8\IgKhIՐrw4&}@`j#iP$gm6(nFŠ1` `=3[il%pNc mٔ(t=g\؍E†ei`NlyICfJJ؀l$`A itϚ$eT /ۏAlսuOyj_q@oX0_h!bpi,ʠC-Pb2A>sG5zOlfrdz0^=ѠCcaĊN ^dȂ lj7iBPI1#(8B>%5 ;q .D =V* }@';.e5,ڨPo]םnBUc|nzU-K'Z( H&/!֞| [4@P*ְ&<;lr]6%[MDOMNu GRYx4[Z̡7yI%.QRFY8غ: [i{( qZp2ۊkz_g\xu倉F 5,-3%+wA:fd߂`[$vpI4j/t]D/6ݐk!-ifidߠu4"EWRpq fIp z.V.uPw|d@%{ Z]\"yov(Wy4nr{Gd!`ooN/_M '^=s9m}xnJBT="lS =Nʮ^Qn;9wibU[\KÜj2knD,~$H*y, &5tGR>-rc%=ʣXtFxA׏)Z'1Qh9dCO9"ҎgA|VB)/@*t I"uNFD)^46d|)oY4F+~gbZVɞ1KG N$(dQW) 0SV^.p-8?~ߝ?\}z1PKg7RϚ? pip/_vendor/urllib3/util/ssl_.py;ksq+TUAq{6%ţ*k%Yjr!0$ϗߞ (%J£3E|Sn ELyQ2>Sy)E;|ⱽΕR;wE&Lf\RZK.`\j%WT,*6`jOٷ:, K,֥3ea{?י1> 'yDzp2}y?> o'w6{L˲\ݿt:G3_+V.KE(,3 +Y:RAaM#ٺȓM |RH_nG=L@ N9bc WkQE3`3r6Hn4(+Y!oڅȌ^BJKCVXLrLlW [{,69q e hb+kBmR&R(>;F{~ @K~^et]{H/ w4/<$ 4 31dۭeYЪ֭oHn{D|"TϹLcEzh0pc`r0 ضH(;51jRzVrO\}ǯBҙAO+:Vk˹~W.[{o&Zk DV9D[ѫrY1Gwx<"lA6s9}O?\Ko7/'[ x=BbDk"c&p[eajq1]?_s<}uIݠ|ig7O+9>a2lk~Q'b B4s{ .xy" aP)No`/GGuNF2eH&ei~KYX:- A|ľ(s3O7oq>Hߟ)ZJ }&z(ZRrt{w;nAʣXza 7U&a\'{}Mi".JN0M]5UiDpDf˥Ix馕GFcCg ONpe;ۃTzN1Sos_>2U e%E[94ćc}U~X1B2O$%dDm!ċ+CH7wPXVq xq"b}\PrvIs8e1V@| d]H鎂Ԋ-PRh(Dm9PFgl^؂ZqYP-"r8IP'"; O1I7 b;}-0yc'@@Mi:"؟kt8j` 79p?vKmЕ9\33&{o~[߾@EA(2`ޓf#B`P>n݊BJpG#=(i ּ+zQ*Z8ƤC7_5G V%Y/R$r!Ads33R> 8(ӵkiҿY 9XnO+驘%|NN[hp`43;5X OCh2( ODB;*XwgʶyrǮr~* tqM>hHmx`ߛ^:u!cF v)㥵lsaV kDG2nmR)4E$ymCpAL%l HER.2\l]"+k @.d_2jxb=αABH$bS!4RP]π9[ , sR)J1 حݹSR >#יu?t =rp!Q}v_| >ѕW${ o5)ҭhbTɼ+྄,ob1Q6m#NA8CVP9FelpHq,>M\ql65NUdT%JeBy.5VErg90M<[SiZ2w>ƟnB}TfG%̒DCu:1y?U ]G~jQ  qU?A5LG%Vm+ ۡ{0,Ktp+{[z njMhw~kV/5 5KkMtujM{} !{b2W^A8'Iv}_+5QFC|Ʈ88kPt[r!hUAb))yR ۋPꍋpd21MBP/\bz M_Yv]lr,AH.~9[>aB4^^!"l0h=Ӏɨ}Ep& r;اka'p&@l)>Xnu=-E2yD /˵)&:qkl'!a~I4xBhYӥֳj ??ګ|+5ZNFԨzʴNTWM*i?f%ԝD)k9W^TXW (tX|34寲9Jw/J5*Ӳp3 ';'n5po3}wНg/3wU~ʹ`|;zz8Ae]m)jȪjf+fUkͼftƖh_469?yk?hpn),ڿn9FMHWfO6{3ہu,F&c:Y*.W{V|lmlK*}]lErWqijNM/KiHZ)QBو?j 7G4?VoHS#%k}$^`QVlTK'-n,Pm 7NuMyddrMxJ\+J_h ov:j JRf9,X@8'+frŝ!8rÉg]isIt4N.-Z~ dPc2z/W;BdWo[ ΪESh44h#Z:x/~ӂykS%"ҎmΙ 36nƑI}vws4Ӏ&jdFaJ^b2e,` u]v<=%<xI} "IT+,dҌ%ɷqgČ2TᛍXB|ajAHPN]C y\[nC T!?6˛4ӵ~OGdy|57Ԗzw{Vo^Tg~H^_{aF%Z-,TJ*R$;[Ib JܞqF(M)}:貢VL",/g0b[h3ka(r J}{]_DP!՜]ג?Wh3cBSX S#Vc%6Zz<}g"Cp:u1<:aC~r*(pF {ܙhIPnZz@$K-Y}cx,n{)oʸekF[7_9TH d&вyncͣLOP%60xold$٠u)Zt‹Ij*֯Ƽ+1qPC h'*R*߱_j:u*J3em#e͢BQY6>)-Ydjb^ 8[(tJhLx7WAt%V0t<a޵MS~E6r/ŒTP׆M>co&c5+fӨ3cC(bԴ 9İ) 0uTKpVݻ4N;7'$Ýq|e;-e~y~`9-0n A{Kxξ`|^7/w.|xL|V@(b/<oz LZ }n`۔޶N,dYRӍx~j|}xh2sFțx`f,$ېOn/C FWnbV/5e@i%}XxYJ ]jZjx!s} b[Nh]}cDQNci "bOY&NjJPsO$u:IHnqCˡ(/''b'QJ=,DEi$8zx{ȯi.^ |A+0תM!40w0L6/9kΠZ-K^lu]V[<4Zv1zӲvLrL^3(C$uӇՇffq5+O YQ1-=!^4?Yc(!HoVơ~N͕V MtIw#$ [sIV]H $ISٯ5 =z;MIzFPKg7R$ '#pip/_vendor/urllib3/util/timeout.pyZ[s۸~4캳iM3d&QHHBC,ZQ{HNδzH$88\uvlXbUa|Us#wmĚaZ}z^lkL[3ɦ%7-7Q~1s t+Jv@;[#k;~??x-ǻ36RFFwNuC3-#Q{^!-@jS-SgxG-TS2%k﹬YwpEy#Ugî̒rYsx3{8c9??wYGgڽӬ [A9y0ZuU.<bx"Eڃ٪ƾm` nuW7s?o6޺N,]y' mfW_]e 3ߵR斱wkE`V[EJh2e,1F[8˼n~s3ԈBa-;aD/nⴽ3~w0:Er ^ +W ҚDZxSS$xxu@n/A[HI:rZ QH1FZ7 >= +e~$2ȭns]kY<]z?[T.gOi9T  N.!<7҈pPWNArn͕0{!<F oS[Ͷkq"[Y[2p꧑o~u[MH9mBEQ >ּ4)[CHjVOP"/rʆ}ZM~.g=J|ŪFhqUbX k@:~tA4$O$lʺof^@o)Mņ7 eL :iE uLK+FG{hܡ% &;`r,zT ";*4L@+ViК3A;@Dk6КT߱ҮN 'ט {,J|QPcX)yLDVs4X/?,m#pTG œ].Bb\,fZա*핫LyY^ _ܺ/srG$Hk'[،~xr'Tmxg"L`5pv.}~C~9n~.,l#AŢXdɂDSHV6 8b[QZӞwU-ŕ!D6oIH/T[U ['\f `'|PC-W=)͈`Ȯ"US <{xQF$BLLL)~0 j@h=T#ņ=S )~襱tl$F>%^_1 P hRgM,j`U`JQ%Ct  Z2"pZwLA\POc*TliJ-3*$Q^S$y7#lNax7.o3(4];"RiaXegllv#ƳHoѪRӼOt&aփgj{AU6`^'1t5IZcۺ=*]>aU}#\wm csύ۵|tV`>7Pa!qc+ faiZЇTGc,d" 2Ml{{mDx܄_hLQ-e)T _`*+a)|H#_μnjB=<1WH/(lA\virMH4<~tq0d NP-ܥa|CB[bCpL]g "`G4_7:cHƃ;0(O!kpbzGSG/cȁQ库68Dybưh +M |Trs1̰FJ]kGwzLN'OB˲$eH'3>F^{~#}{bϜ'K|&G1t?9p>yQƲEq23g(elƼxg[L^xє0S* ̳8s6˲9{;|stz=zfpS1 |ME< 0'!,3UP'p$># ud痧]6<O~$K7ڜ-Σxgfݧ';{z?}kl_ qWl CHbڞY ۳{rYn7C5i )}1k/d.t8l^p=;;Wףu}yFhj>}n;xwp}qR]5aio UCIhC+48X)1yv ,Mn ҂8`Ћ>ҺH-ޛ/`q:%Xo!ųXu{f8쉽'ؽ\-b4' FOq8 ȋE?E,!*%6 I!HBD1^vkB))HRg$P4,(;t;8p}Fq?Мa BwQ2NM-~ MĽ$O<)ڀRz-oBU{Dn߃AnHADg 9A~e_V'1V 9?J X3X UF PE~H"0F r<>wbv໓PX A$BL#p#ϦOr_06A.'Tt*?\ Œ) 2~IjTYCGPpJ;l7e>+g,My ( RG벍.TRQ8)WCyWLWJc PKvl ݒv~PtC8@)V:HoC)#F5I /24 3LW %FŮ׷e+zp]*gtZydR4\B]vJ '9:IŶȶz~ D+5)bZ!Ȯ3yRUfyhqt2ނS5d@ƣrGyҼbQ>U4FwYNI-ށ1 ̐m3;Wt/&u[Ljk3He t8CE ԕ-5VF[)4mMbz'Es Mi+Ȝ"7p)iWoyC&Œ@+sU9^: êqdzbm& 1DKѵdEhŠC[p,%wQ̥rJF+X6|Ў#&vGRsTLJu  ۄEF>sOؗIx]s&Nř'S r#䙸i}1ERW(ƩCSnH865A#!=Ό{wA`D1 Dqs#˖%#xs܍86I*JVJfJGF5?o> v]d\5_7-q=7.z]IktӭփWLJc/yEcBlWWvR։ˬ+"2h\m(IrG} P*Bo4=(|H4& $~ Ґc'C+ +ŚdAf0j8J/p+TF})fT.Ŀb=6xBĀz8d}gb*z;f:U3g(xUďRwl[,$4JgSbz5:1@o9Imw090ǧlB8os{#^-ˁ$._!:KxǬWFtnܯ7_.j(\DRƵAJv "3 ?-8x냁r+'/{,(\ވ7'W#1+;2Ƃ0 SJ]0jvCy?\H?g /qaۘpgÅBd5ƻ@ ( ǡ6009sC.*П83]ًK񗛛CqM0H'OB$݇tg7xb$oߴc5֩y(L+&W0V$èEn ;L0t.Bi-a<;wE(37 IghQv<ÚR&"NYh;ڷ -,ܨV/nhjYGޝH'fxJsK5!#t9G\Kr73.-?TSչ4踘+㉞.m<8S|`Sa/= MTex).;pWIVdL2@F5rz>u LN6V 'r_ӯBg>hqV_לpl‚<"18?a=3g:ruݛIC7XT$>بπ@.w(U;!=2M*}A娭ƶu-rGjVz3އ~FPKg7Rxq2 S)$pip/_vendor/webencodings/__init__.pyZnF_OJ\{.18A䴸KjE,R.-y^.Or3A.?PHcG#Q'* zlƸ^{I. 8I-T&5`dӳ˟'c#IyLX yrܿo7ŊEzAGSL#OyŖtV%"|`xjђF qPL,,rNxoh~NOQ܋ٜP%Ifkሃ@9ܰ$9I 2#Dx<,b1.?-&V4K7JN^kG [456ALR($q=uQh*%ce #hH*J TdJ!vD ^ dBf(Uٍ~XG{k#NsCu `"_m\5%0@uꬲ^$BHXxN "D& r<;$J]@+#{ha/?< /~ʳ^ f >K@QŒFw7æY[Vr0YB5 Q1cdNT._bT2}>*xylB:ͲbW05l9%=ظ3dD k*"FdzŤ˷cEJ,|cWYRo9)V!MD&`z&QD':GKH4A7S~` !"ljRk5GÝ/ =W0 z~?6YWmALov{o[v6'@0%b28a]a~aƺ>Bŷ *K7K t̖&.$`(ԅU<"ภJ27hC׌?'9N{mQo$U A6lWmc$ʊ]) |::u\EFH(*UYb*fc{'hdVH*~JaH"4alP 4/@N-J,ɬ{v(^dy8gWXtih*ADa_tsO-+#o2Om[rFmzWSW@YO9rٮ1P%vXӧ:[=恵(!,<|X{m`YWgMLÒUxN2 X 52ŏq50iL `]oS-Y&UAwJ)3h a N^CK|Wvݯ_{|fݰU[8 ^wb0$k` 4Yf7J|xB\ dϼOqGŴo{0xw1 *dgAcv le=2,Úߡa8ܣc2_YlQOldn4\T /#^izo4X ˓nePřv9N i͓\]b \7Ƴj5<_­ YIZ3wpu35$Uy#z`W{}̖py%(5Y wv}pW-l *`16kPT6c3vuNș^R*rD۵5{8*3 }fVVKu|.|;m,QWE&aii<{ 1DOpe*P7{ZxX&i((n'p<Ɵ o5a52($)TZ- )LQ|KEA7-rFkӚ=nP;,8I iyA:O8M/™s~[,yl}Mw2H P~AÿJ~S':٬q8hI6=랴~9tQD;ZmYQGg9D/;?{;SC[ |XJ q>4Vgk,UXTau.o'd^2`Q,10g 3kr%Лˉn_vMq]F f @CDR9{SB8Pd(3ɵAuc7fs$h3rbGo?= ̶GS8jOh֪Gxp#H[B-7Z;ДCw>vl _y%yft!H7l1yƇx' %՘JZw UDunVu"nF-W]DnL̦盱Rnm/vS| hLݴ5uOO>cQw[4g4!l/\ PKg7Rǭ#"pip/_vendor/webencodings/labels.pyMs6jz%X`>~:b+81H+9$^V%՟YT/x+Ӳ?~~U '|6I~,PmY m?٫:{*ѩJdV 퉕R߾~;{ UҲV3,ܩZAMտKJ%q~dWr,}:ެ~>><+ӚdvMrQ\7.6czA F>FBmO͕J(TiE-a譹k$6ЁR`4܈ut41!C]2. K;㢀AptmwQg؁MCLFLCWdW(+ڙ XNX|8ރj<+#&!IH냾i.S=ڃYYx@Лcc43Ӄqoapt?`l4FKr+֭%@zX+G8 ׼$TL/Ms^w "2/<"0VyiP_pDmj2<J%La`I!Ḭ`y"y@8 ߮!C\-ܮ=_ QfBkkSЈWX3R%NgqH!}م#IgOCiu7٤ҳl *H$ɔzۢI ]f[XZcD [[.+[Y:Oai)l= 5:ׄ7MbpMkrt=Q!Gݡ=w !/P )`(( ]Nq*/zaAC(k/SK-e]q2),$H$Jw3Ev&gxP@RrJ/3@ vz4J]k;:ڏa2Qxh<h(BiJ֟6;F&kh9JGёl!,[;h)4EhGaDŐ!#K ". u \}ڂxDYJk[ *b],j!?ߡ\ʄԖtkH5RIY[p¨_g@\+@fppLjrJ#Ktc1@uzRh-!oTo-' Bo$TFIuƠj}A E=9k=̮` 5k.'~P`o`)mRʂ[4i'CPKg7RP1D$pip/_vendor/webencodings/mklabels.pySM0WLf="qrXPz@bQdul6T}T{#%=`02kڢ);5Rwܢd9KWJ )~| y$̙2PZafo)lzA(7ZV̙8Rlj`okhOi+eB h,qZ4ꀆZg|yH;`2igEclwZF/&1ORif , !O+*|ehq* HbR9w~ǎ[plT^:dOY6r7ͽ,3*-Kà>ET")ٓ|!;$BV+2'2^<0-mI!VӼѳ"%V<vXCO'lر(~F-=/[G}J^C;Z=IC- ]pNJδr&ϊKAo 4eeø,KҶ*G~";c-ޜ)yPKg7Rg8p!pip/_vendor/webencodings/tests.pyWKoFW,I\$``@q 9YV64)p|#({sKK:"/aGLr97FA|=nzB'>;q&|)14=%5 CBon}4?8Bӻ8Bsi@"FFh݋A''H/ԉ~Cr(.h7QH_D#"~ Gߊ(vO8lk9s%iwOe|ϺwGVRw `!42;<8@D߿.Ű@t(|@P"F9FCNzKJDjܸtl[xGeZm4E'dM04Q)_)t\bJ f>]I} kLW)[4ՠ`:/ N`;JtL2zvt̶~4Xd40J˛S)Ɠmqn ʽTD=ȓ{v@am#{2n<*%Oz4 */)h6zOoAt ۚt;kxӅK#9`q3c56dc6FSz?42sfq[8;P{N%aWjyGGLPϧ CI<,tG6z`t*:}>Qs5vHٞ*3,˛gTs8j]9J3<*M5niu/rn3Vs7PiDBf} -W[n]$XFAHjܤ5'/dS-w_651o/0Iǰ7%V#dOzZRDv^lP੿+D9>+v0b(* fwC_0l^&TO5 iSklPKg7R֥*pip/_vendor/webencodings/x_user_defined.pym{4W!N6  cu0`/A١-/(Q]?"_s,K:ܫjr$6f!뱢w=Yd'L8E:[d4e:܈rJzg/&.zH76#qC1G܈t4REyA#+ "ʼn0s+42 te|&&,&U}s[eh%Y*6\1.gdQWM*j V{QtE/eWs[[EiSU\M9SSigr156fw2ɨtsƭ-%,W~IU;[wd6>uj=ybby}WWߧ͎n{XEiI^ՙlW!}ܚgj=9uu/2iwNXi?sѸbPi1TPH=Î;+lʏme?VU16p殉r$\\AڃH,ljmBMݹq>`(ȝ"<Ӄ~il ͭW~kF!p7CpyLB|h5 YQ4 F(TJPi*B0qeC a7 &s!sQfYma~|2w='L,)&# ߑS#sCcysɜ2Soߙsoל`W'yͼa_;p~g`$d.&1dLĘHLL&}b'F}b'F}b'F}b'F}$H#GD>}$H#GD>}I'A}I'A}I'A}I'A}(QGB> }(QGB> }4hGF>}4hGF>}}}}}}}}}}}}}}}}} 1cǠA>} 1cǠA>tODT66ׇJi۷MPKg7R aDB pip-20.3.4.dist-info/LICENSE.txt]SOo0Sh\}9>T f1{DSu`{d3WZw 0F[GCuwisg@O g g#})p9tַqX>\^zMO(ՍMESww DM֝?'GILqV6)2u ?sW}c)E~)m hf0o Lt+ uC}[~p99rwLq%J0c%g1̶pB\A{!4B@lL4'63,K Z ީG*pȖ"zJ8WHʠ`Jd1V(FER7$(ݚOWh!;IdcL?N<DIDzr"A\o,T5|y[w/)gr8<PKg7R(pip-20.3.4.dist-info/METADATAWYoF~篘"("iKInI&  $ !E3K$-;R$\,?p2fYF(8: YEtI"vU&4OUUq R%,!ee)dBPj~b97QVU<{I=EfPqpPA72⥪H{2L(MhD[DJ{riRxj۫ !V,5zPZ9N0p#I ӂ11ǒM㛵ҙͬM <í)%\˒YLxdƈ&u1\c@KAg.,@Lڦ'.\N:edԵV+TM|UҮw' 0"5*h]DM!JG?1W>z{kE?qV%Lz2AW_'47a#XwǓ0:G/  [.6Acup_Dc>Q)/3Cp_ω0`ޒhA$8PU[ѻKN3 2B.V %>q`P* $mLjwLZt9?h6I Â5b| ,huppA$ pDI f|Dh^!V!_R~njUtC}Q P+wwOۼL1*j㩒t _Sr̺%Al!JkE]|)5aGHl%g7p"v'OXƹ71»{CT*h%r]ߣVdSt#'Pk%Um1%m=`xC_Z-YwS+!!GG6`tȟBJ=]?K VH>2^ӽ_;/k& 5pqiP9 7h ?-p6(,bn&Θbz:#o~WLNbP/sg:sk ʋ%W$_ l` 2ٍ1΂blzq~z;,PKg7Rȝ_npip-20.3.4.dist-info/WHEEL HM K-*ϳR03rOK-J,/RHJ,./Q0363 /, (-JLR()*M ILR(4KM̫#DPKg7RC<}%pip-20.3.4.dist-info/entry_points.txtN+I/N.,()*,PUzy%Ey9z9zyV ˜%zqPKg7R"pip-20.3.4.dist-info/top_level.txt+,PKg7R:vPBpip-20.3.4.dist-info/RECORDǖJ;}HHhK{W9?I{=8Uu"رci:NZWąP tBP;NU$ȸ\WYZQ8x犜IJO Si5 'ag.(uf +LjSlsȐ/7ұ"s>j/k]mE״ hpz &)+"A,g3a!,0 L ,C$4<_Cᬇ]4d,trLE0IN۰oep]:HHѡYu),c3 9.nbw{DaAќQȲm/*j'NȈWdb8/N22_AsI s<>UXXE*=̽zY;'wۦ_5x`Lx:[)bz40y@F@P@ܭv)΃8)2:"5! Mβo$=h<*պ",u-nZR7f飠$%vPol[i.ڴт{Pږf#~2mW~hM2Tvߞ%,ꤘD, ? O"}e#,T<(،M?TЏBo_|gw0{x-w-sN7? ;2׭m!K|d)įV8+;0iEe:jp}U!*QK"9.9Ɛ[,HI}N.yPi1)qYrn֘01/4=roJnq=y*(Cf/w?!aR&iȽAF)i|b0!G?"vlb/"O5?1m -MϛoT9L34ޘяG"L 3r]&/X(cɢ6'|jY{a+?w(.욑6!`J|v~OSO]JvIh򻐭H&l XzVFל1QI'f;ŽpQW rtԧ, sXCf g>K;`[6_'1~G~ oyZØtڲ옐v}_¯gnVVi=9f19%yڞwiDwqexj9\74+w6FbѤRY5T֗g4+ *>R5Q&CBhGp-dĻ! _<<4{u܀G /fy|%`<ovN<5M ?-X{9ag @UHCٲ{ݷ7կ6!}ŶCNg*RJ܌^œbZgS>1bW?k8t篯FnN\{>y@ݶΖb eϡ+Z%c@fm#~ʹMZaV߶eL^ðn3a`fƈ_*5!Q6}=gJ͐!iIWհ9Dr;T~S6Cgqgь/DY@>AQn+h/fOIۨ 'o5mRF(wf8 ̯P^{| оѳCyxpؔU{ީ>;BP; qoB1Σ{+f7KL޷]n[rH 9 r4wT Z(sQ jOa- _3BJLX!%JCgkQ"=0Np":RM<4=f*Og<4i tԶkK^]zJ9]+o5`m2Q62MA0gb?υ_<?M+t bF",Zqf Gv-Kuq׮"X1JmFtghx:2MSKe`G|O-Չ<1!WG)uꛞwр~[|+t%o5 Yc9?Q:Hc|!tQf.rm._P-_,=%qͧ3rUx7}RrZ 6A{&=*3᠅@j-mNrN:رBB;FbedP[-ѢzaB‘>A/T@[ n9" ieggGmA XRSovk~)q~[[X߆XXP$>lZQ|꧁fcCTzзJ҇!ޗ;Ǝ<܃K& d3+7]ћAۢai=4sdX]FW)[݋L<=ߒ'ukjx)ѠY G@ Q'mQ(g97JWaݪOG۱lX(t& DdžVqGfb T: Y9܊)KY'aǡ;OM_r~GGsոŝ/y zYj'*ķ/oK9|sxAiMbz|Y+B+xC0]?O&BA*6>\[|۰_!7԰ibFs'k \LGqd q-UpÉ׿_q>rrRzpꒌ ZinCwg?<? oLDOY|xpi dZAvŸerc&W [ăKȻjЁit3i}W _P (S2lٜ' 6o w8[ˡsh47m|m>÷dlڌܯkF *$St,C/@ wTڌ(t7x[LMueWZG&u nڣ7@B=C[7z3CydkKrP M%1!LN1r)uR/#oGKU;̚NGډ&2 b5Sɟ(ћ^Mʧ=i"L(BqKt `̎ys8e_V$J~%9W6P;i옶_-򵻫XU )S9m?(zzZMA?{өA„=eTupl3k 'Xc-K \zf-/4`3wgXzhiib5Btȗɵ` ++_Hb^LcہMWFjfUJ V;'Ky Qč8hh%\? 5y"g|RZ)WOz.^)1PrfZlKdmp-bDs@W_PZ0c*>o(}ݽmp/>n_ urV@’1'5VމD^Dm_&~^ F>2gBzpK :3P{v/gqT/Au95C6rђOzRuu>8ߒ%;"m I%; -}ȣcRZ@-Tg3p}`Dup0@~.ABnG זʂl=Ot}D^4t*8l96j^s䫾q: ^,rn;J.dvpRTYiBi8ydj L`u& a 1 i`!)c},ktCNHxjk,)z`)&D^1rՎ +~iJ'fŲ9%ޗ6lVهJ^!2e J@_(moÈsBQ* 'Ir)fi7 P)X;},aۧK9ʧ#mLSH>Vr EI9L0`vE<0DGfOjP>&0>c?oM3 #7)Db00]( $O!~Bۤx_?4jH7χA+r\/ѳH`b*Y> A1o]ܹ)H*IYl@ 6I69mֲI*d"#tӺCN{v2ӑA͟-7۴ca)yO5SҖTʊjcGK>=-筝^~_' &_({Iv:JfF|ݛ@ƺGKոEev91S|z8Y֏/lk7 Q8i|~s, a2ަKbe ynp$bm8k:NeJ*?;2=vKtA?Ҧy#N7#bPL} 葐L>Րa'hԘH4u[kpIں hiohwAkV1pe^NϏЏC~P8, b.Ӎ㑼Zv9@?x_.yA(w w*̫b%VJD`kQ??i ~۱WHN`S~}l,%=c N< ??f:C\~ HCsƃf4}Ld7~yWC(!,F:O-!.C}@ }D|{#OMrN.UZ_ >*:HܴpT׻hYQ#;kȊ'7τ|VZK' sYZ'Ƨ7[t*~{/>퉑l,&,pĺy{VA(aҳy| }!jXdmp];z޷3GfhW*Ͷ̘u.Ro.W {Ї*!^9<>a3_3\x >JY96ǍD''SY +? Y,x~vYcuyG-B}sʵ#~?'>cO&|L.}Di#W j֠*# "5&?jFZn(3A" An=z2ܞDCq`঩g 9r2(e;͔~KO)B9f k"׵KrByyl4w 7ޥY{D&˞mJ~ By#/FCO+5;ryRUA ,]EDqp!I0_4MtE y{(xwɝߦ.Gp#eJ]ƻq1g=]?%"[lC8Wx Xx{P,FKLm'9$.H >C^Ոa~7Tc sV*1-^^$ #Hږ=l~ŀd6 iZTm*$|?F}B;dy1@%s]<:]rX $l Ϛ;}k.|pwQж.#tHf#^We}";AF1/Hcxh\)Y{v&ޙ1bl9ݚ(N-g-Xazr$N8vt"j3 yg#'5W'-!S!aF볍gKdxt7[r}x4_Og0xtD%z׺M@H%oj'rek`,j g4*LYSm&MA>ϧci"{X=xL <>U%vռW]sVw۷IRRyLs* wX0)H1!!$W&fmh,D_dǹFτ~ۇsitx6b%^uICT6|G5O 9e=]yGYj}RI#t O!8 1 s* tHSPwP4>LQg4[Av8 ? 2;RYwy7p .TG) Bg쯻pC|y׬qWsh8-t=v`g5Б46sf` vk@WUhsg?ԯp\?qܒMFιgyuo(佬clD 4g ;cG™7 ܿS]=,Ck_"D]% 8!pBdOT[83x3![Zu'׉}껹>5Fj2~nXk{jVXz"m0ݒm a^IۚvMax6 ~\@0acv܊Wy:E/C1kꜸȼ FFeM-;D5ɷ՘eXPP=R+?ׂ oO&aԇ٢v{knvDž7>9&^s}VkQ=CG{w}_7sUBI&Pe " W\4<|f bJMj[xo9@tYs^cbaQ+uaqyt; W}!ZhlJ!ɧ*\N/zk qXvk)!:V)2Jo~@qؗY]s?hԗ1:5ӥ+1UڭT&"DoHg'U^5f%tWyQ1݌ѝ,fӐ;h]^y F+{urHbTJIV ~kߞD_I3DP}@S Թ)ZE5+EOK.M;'^m:ja5B(g0>)y[wd5~_.2nGЖ8B *v.|1JٳZ#hrU?o:Z X L3:{3.mQ':ۢWCz:JLYrǎ<Ҵ8%z>?_BDn˅|v$% . .PR\ `r_+>W-HϢ`,# 32s&=E!6z;p7~Y"˵fGa M; F0|T 9FK>?Ԝ\,&GQ5]KlqjϺPUl@MhqL™j;|gˀ]J?]"B}pPPki&y'-3hOm}\v&H(zDڪT= eZ7ζЃZi#^ |EM%~b'QqZ\؊!4ju~kM-/qz-8cyOI\9jmfݒquW>koܯPdޟQ ZG&~7g.u]Dq\Ϫ@[Yd?)˓$jcatCmh.YAJ/4 x't*.CHV ѥЍ#Xt"ԏDPgi2n9)v-|lTY"}l$r$WYlْE9QvM %Q}>YΟMpjQo ,%פSǸT" ZU[YCӧS߅!8졲eFPqV KF=G'{!FM3Lv[i֨f s{+2Ԥa[5cLB#"@.a+o`(^ G l?۵>#;-y\!8-u箹ڞpJ=_A~?0KPiIт/dmZ'2d6xG"oxÅ0y&+Nv <FJ1wI5k3ۡ[zW~_gNP1^Q%4z׹>RzUGr9#LiCJeo^ort(x*\N&=FX|h¾פ= MMAt9Z%nW~0w|JZb78葶utDJ}Ա\=ߗ'JuX G+8Z@_/m4wɸlSo2vlMA%'pxQEY\rj<{Ϋ׭|Hj ?0z{һK |E~?wG;8DXn8fogAXXZ0.=O;X3H_w_UȨ:euelp|a9/V*:PDiE4 sTY Ӡ+d`գbEQhΖ7d5](Ds0w,zU:gK4x~ ~ Q/R}%9{Eȁ(ZR[Hʃ^W{|y{fVhYCL-U܌xt|Mzv Zv0~a [8Sk%"ö=B>3j(Sr|oO"M sܣRceA3K=N"7`73bx> ٪GTfCeDg33QKN`,EթgFIbOxb? @0/? [tup:'8n:v=tM"'L {Qɋ=}:z Xu'& rx@y }^pT}4>XyPe9J]1ȋ&DR5Ga25\\T >kh Q /z/'Ixl>t|R+Y2rXțؒBكOgzf tU艶z;l b4$ 耔M@mL<=fЭ'{v?7psA3&|hUm.+p?z@R*KSL6arjqc5i[.MU?lϙDXx. Pdėg.,w[&f8yG7ǹ,UBzF v~{ZF2tbvnUڵ%1qѯOS6d0B 3?I'LvPI߮(lƙ~ ct*L8nrNߵhl8b yITWk1+:oɢY eICy8n#]9m~@d#X$+I@ KfH\${>ჾc9H|L" \=_bXXr}H:YAgggoO俏 ~9a\x ַx:uo=#o~ÃDGs8pѡ+DQW)}:땚6gaWv:e $ FlMi @l܏hREP]AV/zV᤯oAqϵ$BZOw Hmw|ss:Ɗ-,DIu0%1 ˔?W&eW[k$ Ԇ-2נBۜ嬵[~S3;˻!{֚ABW~:x"R/xB^bhqg[ )/ОIhTP_=5!STϥȨfn/_{\m!гYfoX('J7y;__h{tiݾ4RVrcΒ7iu݈N`Ep|<*J^qǙ^R4ܟZXʉNT8z >tgR}1q`a,_ەl}KR 6y f1d0 +߫әՋ "PHI]Quv-(D$xD$7BBCo~it*? I^#f|fQDӛd1'RA,OԁӖCΕWn~-~h$uKIyn#sA5!^Zm!xձV]"k4Mb N`ҝHS) g邍zVW^2F{MvgN3)boIPַLj8KlouoR>l 4Skm"Bٞ>@*Jx7ּV 9YuqޱeEɹe 6 ܠ[OQr>x%܉Xx9.:@I!(sdre /F%T]Q>mNT$ 0|Z /Nk>/\n$,N4Pc* ,N>ա{rfm8bk%ᇶ,+[>&;hCCݡ߈\Wde`Q:z`3Ld^M*Ωjh ,)ÞP񠿑9OnG?7?ﳴcVYR/xM;k,NjQhNGt7(x-ǠquxYsԜ)+*y{l>.>%2ɣQpiA^0)%eN O!޹ޒGW fp?? O|b5`@gAQl;GFOD3{>N4 TiWU\H2x&eT4/jٓY",!%@ZU^AvQe}9'8]"Z:z&Ɂh%I?qsov0cCtZ IUwV޹ҖIW%UMbyHq~L [1 uf}C!wZ CSK ȇRNFt%8ebG\o0tPsU0gWC.Q 3,BdhF0_{w%L<<= pa=@ 4d'QӫH]z3Qa?"*:P&*3H!q6{w~́l^_^&[6Ɉ& /`pip/_internal/cache.pyPKg7R=͒>P6pip/_internal/configuration.pyPKg7R2L+pip/_internal/exceptions.pyPKg7RMؤ KW;pip/_internal/locations.pyPKg7Rr{4Epip/_internal/main.pyPKg7RyY Fpip/_internal/pyproject.pyPKg7Rlsy4 Y$Ppip/_internal/self_outdated_check.pyPKg7R')zt (.OZpip/_internal/wheel_builder.pyPKg7Rw4hfpip/_internal/cli/__init__.pyPKg7R%#gpip/_internal/cli/autocompletion.pyPKg7RcC y$!opip/_internal/cli/base_command.pyPKg7RƓ3o{pip/_internal/cli/cmdoptions.pyPKg7RǓSv$pip/_internal/cli/command_context.pyPKg7RҦ x8 opip/_internal/cli/main.pyPKg7R/T wpip/_internal/cli/main_parser.pyPKg7RuX2Rw ( pip/_internal/cli/parser.pyPKg7Rd-,0 #"pip/_internal/cli/progress_bars.pyPKg7R˟G@ )pip/_internal/cli/req_command.pyPKg7R!8{pip/_internal/cli/spinners.pyPKg7R۬w}!pip/_internal/cli/status_codes.pyPKg7RB "apip/_internal/commands/__init__.pyPKg7RA&pip/_internal/commands/cache.pyPKg7RhˮUpip/_internal/commands/check.pyPKg7Rrp  $pip/_internal/commands/completion.pyPKg7RL2 o$'pip/_internal/commands/configuration.pyPKg7RKg!S 3pip/_internal/commands/debug.pyPKg7Rs.7"pip/_internal/commands/download.pyPKg7R6^ pip/_internal/commands/freeze.pyPKg7R_#3 pip/_internal/commands/hash.pyPKg7R +*Spip/_internal/commands/help.pyPKg7R4Tk!pip/_internal/commands/install.pyPKg7R ,L,pip/_internal/commands/list.pyPKg7R/U *8pip/_internal/commands/search.pyPKg7RQ=GT[@pip/_internal/commands/show.pyPKg7R?.v #Hpip/_internal/commands/uninstall.pyPKg7R Mpip/_internal/commands/wheel.pyPKg7Rg'Upip/_internal/distributions/__init__.pyPKg7R-GZ#GWpip/_internal/distributions/base.pyPKg7RΎn(Ypip/_internal/distributions/installed.pyPKg7RA%$[pip/_internal/distributions/sdist.pyPKg7R_$`pip/_internal/distributions/wheel.pyPKg7RC?K Scpip/_internal/index/__init__.pyPKg7R8Yu6V cpip/_internal/index/collector.pyPKg7Rp]B"N%c~pip/_internal/index/package_finder.pyPKg7R{(;? pip/_internal/models/__init__.pyPKg7R]O!pip/_internal/models/candidate.pyPKg7R+m'" pip/_internal/models/direct_url.pyPKg7R- S[ &rpip/_internal/models/format_control.pyPKg7RR hpip/_internal/models/index.pyPKg7R!U/pip/_internal/models/link.pyPKg7RKq !pip/_internal/models/scheme.pyPKg7R@J$λpip/_internal/models/search_scope.pyPKg7R:'pip/_internal/models/selection_prefs.pyPKg7Rk>Q%pip/_internal/models/target_python.pyPKg7R%sٞ9 Apip/_internal/models/wheel.pyPKg7RJ22!pip/_internal/network/__init__.pyPKg7RDA -&pip/_internal/network/auth.pyPKg7Rjs &pip/_internal/network/cache.pyPKg7RK|5*!pip/_internal/network/download.pyPKg7RgΌ #>pip/_internal/network/lazy_wheel.pyPKg7Ry8SCY< pip/_internal/network/session.pyPKg7RKL pip/_internal/network/utils.pyPKg7RTq[+ pip/_internal/network/xmlrpc.pyPKg7R$_pip/_internal/operations/__init__.pyPKg7R>]`!pip/_internal/operations/check.pyPKg7R=` ("?pip/_internal/operations/freeze.pyPKg7R&W?=W#"pip/_internal/operations/prepare.pyPKg7R*];pip/_internal/operations/build/__init__.pyPKg7R 0*;pip/_internal/operations/build/metadata.pyPKg7Rv1>pip/_internal/operations/build/metadata_legacy.pyPKg7RCf'lApip/_internal/operations/build/wheel.pyPKg7R DD .Dpip/_internal/operations/build/wheel_legacy.pyPKg7R{53,Hpip/_internal/operations/install/__init__.pyPKg7RX*:3&Ipip/_internal/operations/install/editable_legacy.pyPKg7RIMU*Kpip/_internal/operations/install/legacy.pyPKg7R$ h$z)Qpip/_internal/operations/install/wheel.pyPKg7R== =vpip/_internal/req/__init__.pyPKg7RT?!gzpip/_internal/req/constructors.pyPKg7RЌzHGpip/_internal/req/req_file.pyPKg7RV{:" pip/_internal/req/req_install.pyPKg7R7tpip/_internal/req/req_set.pyPKg7R.E$S |pip/_internal/req/req_tracker.pyPKg7R'\"pip/_internal/req/req_uninstall.pyPKg7R$pip/_internal/resolution/__init__.pyPKg7RUB' Apip/_internal/resolution/base.pyPKg7R+pip/_internal/resolution/legacy/__init__.pyPKg7RUv:G+pip/_internal/resolution/legacy/resolver.pyPKg7R/pip/_internal/resolution/resolvelib/__init__.pyPKg7RV+pip/_internal/resolution/resolvelib/base.pyPKg7R!sCN1 pip/_internal/resolution/resolvelib/candidates.pyPKg7R]J.Bpip/_internal/resolution/resolvelib/factory.pyPKg7RCs7>7.pip/_internal/resolution/resolvelib/found_candidates.pyPKg7R?j /3pip/_internal/resolution/resolvelib/provider.pyPKg7R{) /=pip/_internal/resolution/resolvelib/reporter.pyPKg7RcQ3Apip/_internal/resolution/resolvelib/requirements.pyPKg7R+b r-/Gpip/_internal/resolution/resolvelib/resolver.pyPKg7RUpip/_internal/utils/__init__.pyPKg7RbqEZUpip/_internal/utils/appdirs.pyPKg7R<%Xpip/_internal/utils/compat.pyPKg7RL @:)Vfpip/_internal/utils/compatibility_tags.pyPKg7R0'jmpip/_internal/utils/datetime.pyPKg7R]$6 "[npip/_internal/utils/deprecation.pyPKg7Rٲ?T2)spip/_internal/utils/direct_url_helpers.pyPKg7R>F%lypip/_internal/utils/distutils_args.pyPKg7RogG{pip/_internal/utils/encoding.pyPKg7R8e6k"q~pip/_internal/utils/entrypoints.pyPKg7R6zy !pip/_internal/utils/filesystem.pyPKg7RO Upip/_internal/utils/filetypes.pyPKg7Rr pip/_internal/utils/glibc.pyPKg7R#pip/_internal/utils/hashes.pyPKg7Rz3*-pip/_internal/utils/inject_securetransport.pyPKg7R`+sg%3pip/_internal/utils/logging.pyPKg7R8{D"mpip/_internal/utils/misc.pyPKg7R0-pip/_internal/utils/models.pyPKg7R4\P Hpip/_internal/utils/packaging.pyPKg7Rm L pip/_internal/utils/parallel.pyPKg7R@$pip/_internal/utils/pkg_resources.pyPKg7RK"+5'pip/_internal/utils/setuptools_build.pyPKg7Rew r*!pip/_internal/utils/subprocess.pyPKg7Rؽ9 "8pip/_internal/utils/temp_dir.pyPKg7RGʥypip/_internal/utils/typing.pyPKg7R͋ % pip/_internal/utils/unpacking.pyPKg7RƔ~pip/_internal/utils/urls.pyPKg7R%vz!i pip/_internal/utils/virtualenv.pyPKg7R % pip/_internal/utils/wheel.pyPKg7R_QMi}pip/_internal/vcs/__init__.pyPKg7RIapip/_internal/vcs/bazaar.pyPKg7R/A<!pip/_internal/vcs/git.pyPKg7R7$4pip/_internal/vcs/mercurial.pyPKg7Riu41:pip/_internal/vcs/subversion.pyPKg7Rsb\#EJpip/_internal/vcs/versioncontrol.pyPKg7RI7|<bpip/_vendor/__init__.pyPKg7R_b3eYipip/_vendor/appdirs.pyPKg7R|B}pip/_vendor/contextlib2.pyPKg7Rt'l֑pip/_vendor/distro.pyPKg7R^-a;8pip/_vendor/ipaddress.pyPKg7R#+Jpip/_vendor/pyparsing.pyPKg7R!{ &spip/_vendor/retrying.pyPKg7Rr( owpip/_vendor/six.pyPKg7R~lQpip/_vendor/vendor.txtPKg7RZ.$pip/_vendor/cachecontrol/__init__.pyPKg7RJy pip/_vendor/cachecontrol/_cmd.pyPKg7RGi# pip/_vendor/cachecontrol/adapter.pyPKg7RbM2%!&pip/_vendor/cachecontrol/cache.pyPKg7Rd"(pip/_vendor/cachecontrol/compat.pyPKg7RomE7&Z)pip/_vendor/cachecontrol/controller.pyPKg7R '9pip/_vendor/cachecontrol/filewrapper.pyPKg7R%m^&=pip/_vendor/cachecontrol/heuristics.pyPKg7RȽZ %Cpip/_vendor/cachecontrol/serialize.pyPKg7R=#;Mpip/_vendor/cachecontrol/wrapper.pyPKg7R07V+jNpip/_vendor/cachecontrol/caches/__init__.pyPKg7R/ 9-Npip/_vendor/cachecontrol/caches/file_cache.pyPKg7RAgX.>Upip/_vendor/cachecontrol/caches/redis_cache.pyPKg7R3n@>Vpip/_vendor/certifi/__init__.pyPKg7R/ nWpip/_vendor/certifi/__main__.pyPKg7R#WjULLIXpip/_vendor/certifi/cacert.pemPKg7R: ڤpip/_vendor/certifi/core.pyPKg7RSpip/_vendor/chardet/__init__.pyPKg7R99zpip/_vendor/chardet/big5freq.pyPKg7Rgf<!>pip/_vendor/chardet/big5prober.pyPKg7RY(== $'pip/_vendor/chardet/chardistribution.pyPKg7RY$r);pip/_vendor/chardet/charsetgroupprober.pyPKg7RaZ$pip/_vendor/chardet/charsetprober.pyPKg7R\7H)pip/_vendor/chardet/codingstatemachine.pyPKg7R|eIn pip/_vendor/chardet/compat.pyPKg7RB1h?"d pip/_vendor/chardet/cp949prober.pyPKg7RD} pip/_vendor/chardet/enums.pyPKg7R=5n  pip/_vendor/chardet/escprober.pyPKg7R `)y pip/_vendor/chardet/escsm.pyPKg7R 7*" pip/_vendor/chardet/eucjpprober.pyPKg7RAya4 1 pip/_vendor/chardet/euckrfreq.pyPKg7R&8"8 pip/_vendor/chardet/euckrprober.pyPKg7RI3:{ H< pip/_vendor/chardet/euctwfreq.pyPKg7RA8"v pip/_vendor/chardet/euctwprober.pyPKg7REc'P!1z pip/_vendor/chardet/gb2312freq.pyPKg7R~6#ӡ pip/_vendor/chardet/gb2312prober.pyPKg7R )Ӳ6#J pip/_vendor/chardet/hebrewprober.pyPKg7R9a0d$ pip/_vendor/chardet/jisfreq.pyPKg7Ry%jNLu pip/_vendor/chardet/jpcntx.pyPKg7Rh '2) pip/_vendor/chardet/langbulgarianmodel.pyPKg7RV F(e pip/_vendor/chardet/langcyrillicmodel.pyPKg7R)j 1% pip/_vendor/chardet/langgreekmodel.pyPKg7Rf Q,&Z pip/_vendor/chardet/langhebrewmodel.pyPKg7RU 01)[' pip/_vendor/chardet/langhungarianmodel.pyPKg7R"? ,$w2 pip/_vendor/chardet/langthaimodel.pyPKg7R2d ^+'= pip/_vendor/chardet/langturkishmodel.pyPKg7R#H pip/_vendor/chardet/latin1prober.pyPKg7R6uMU &O pip/_vendor/chardet/mbcharsetprober.pyPKg7Rr&T pip/_vendor/chardet/mbcsgroupprober.pyPKg7Ri cgX pip/_vendor/chardet/mbcssm.pyPKg7Ru&e pip/_vendor/chardet/sbcharsetprober.pyPKg7RO &jm pip/_vendor/chardet/sbcsgroupprober.pyPKg7R֑g2 !3r pip/_vendor/chardet/sjisprober.pyPKg7RuG=p 0(w pip/_vendor/chardet/universaldetector.pyPKg7R=E !H pip/_vendor/chardet/utf8prober.pyPKg7RGǐ׹̉ pip/_vendor/chardet/version.pyPKg7R2# pip/_vendor/chardet/cli/__init__.pyPKg7R& % pip/_vendor/chardet/cli/chardetect.pyPKg7Rkճ pip/_vendor/colorama/__init__.pyPKg7RR٭ ِ pip/_vendor/colorama/ansi.pyPKg7Rq )# pip/_vendor/colorama/ansitowin32.pyPKg7RoEr{"O pip/_vendor/colorama/initialise.pyPKg7R P pip/_vendor/colorama/win32.pyPKg7R(& pip/_vendor/colorama/winterm.pyPKg7RzS7]EȮ pip/_vendor/distlib/__init__.pyPKg7R+6+b pip/_vendor/distlib/compat.pyPKg7R@c/s pip/_vendor/distlib/database.pyPKg7R.3JR pip/_vendor/distlib/index.pyPKg7RUQ*-s3u! pip/_vendor/distlib/locators.pyPKg7Rx5gl9%U pip/_vendor/distlib/manifest.pyPKg7Rf#e pip/_vendor/distlib/markers.pyPKg7RA`ߥ$2 l pip/_vendor/distlib/metadata.pyPKg7R݄ * pip/_vendor/distlib/resources.pyPKg7R8C՜ pip/_vendor/distlib/scripts.pyPKg7Rz pip/_vendor/distlib/t32.exePKg7Ry!s|k pip/_vendor/distlib/t64.exePKg7RR(g?G5 pip/_vendor/distlib/util.pyPKg7Rh(,N_[t pip/_vendor/distlib/version.pyPKg7R7`q pip/_vendor/distlib/w32.exePKg7Rg>pip/_vendor/distlib/w64.exePKg7Rh'pip/_vendor/distlib/wheel.pyPKg7R#g)#'pip/_vendor/distlib/_backport/__init__.pyPKg7R/e%-(pip/_vendor/distlib/_backport/misc.pyPKg7R9Qkd'>*pip/_vendor/distlib/_backport/shutil.pyPKg7Ro9 +Fpip/_vendor/distlib/_backport/sysconfig.cfgPKg7Ry룩h*Ipip/_vendor/distlib/_backport/sysconfig.pyPKg7RDBCbYi(hpip/_vendor/distlib/_backport/tarfile.pyPKg7RoD pip/_vendor/html5lib/__init__.pyPKg7Rʧ--XA!.pip/_vendor/html5lib/_ihatexml.pyPKg7R6=a~$pip/_vendor/html5lib/_inputstream.pyPKg7R5mO,"pip/_vendor/html5lib/_tokenizer.pyPKg7RӉICypip/_vendor/html5lib/_utils.pyPKg7R[2&@HF!pip/_vendor/html5lib/constants.pyPKg7RD#epip/_vendor/html5lib/html5parser.pyPKg7Rs="1pip/_vendor/html5lib/serializer.pyPKg7R]TZm&+pip/_vendor/html5lib/_trie/__init__.pyPKg7R灦#ɻpip/_vendor/html5lib/_trie/_base.pyPKg7RKOn pip/_vendor/html5lib/_trie/py.pyPKg7R( pip/_vendor/html5lib/filters/__init__.pyPKg7R6Spip/_vendor/html5lib/filters/alphabeticalattributes.pyPKg7R"ĕ$ipip/_vendor/html5lib/filters/base.pyPKg7R? 3@pip/_vendor/html5lib/filters/inject_meta_charset.pyPKg7Rdl;$pip/_vendor/html5lib/filters/lint.pyPKg7Ru*\),Upip/_vendor/html5lib/filters/optionaltags.pyPKg7RQaM i)pip/_vendor/html5lib/filters/sanitizer.pyPKg7R`r*pip/_vendor/html5lib/filters/whitespace.pyPKg7R9qZg-pip/_vendor/html5lib/treeadapters/__init__.pyPKg7RR)T+pip/_vendor/html5lib/treeadapters/genshi.pyPKg7RiD(`pip/_vendor/html5lib/treeadapters/sax.pyPKg7RekLS-pip/_vendor/html5lib/treebuilders/__init__.pyPKg7R>>h8)pip/_vendor/html5lib/treebuilders/base.pyPKg7RP"(pip/_vendor/html5lib/treebuilders/dom.pyPKg7RMЇR $2*pip/_vendor/html5lib/treebuilders/etree.pyPKg7R9/pip/_vendor/html5lib/treebuilders/etree_lxml.pyPKg7RvjW,)pip/_vendor/html5lib/treewalkers/__init__.pyPKg7R!-B4(/pip/_vendor/html5lib/treewalkers/base.pyPKg7Reo'K7pip/_vendor/html5lib/treewalkers/dom.pyPKg7RC)9pip/_vendor/html5lib/treewalkers/etree.pyPKg7R0Dty.>pip/_vendor/html5lib/treewalkers/etree_lxml.pyPKg7R_m *~Epip/_vendor/html5lib/treewalkers/genshi.pyPKg7RG\3:Hpip/_vendor/idna/__init__.pyPKg7RH Hpip/_vendor/idna/codec.pyPKg7R|pLLpip/_vendor/idna/compat.pyPKg7R4,, .Mpip/_vendor/idna/core.pyPKg7R׬J4o#nuXpip/_vendor/idna/idnadata.pyPKg7Rc|pip/_vendor/idna/intranges.pyPKg7Rk ?pip/_vendor/idna/package_data.pyPKg7R>3IVdpip/_vendor/idna/uts46data.pyPKg7R'WX^pip/_vendor/msgpack/__init__.pyPKg7R_,+pip/_vendor/msgpack/_version.pyPKg7R;;ӭ9!'pip/_vendor/msgpack/exceptions.pyPKg7Rnkpip/_vendor/msgpack/ext.pyPKg7ROS  ?"pip/_vendor/msgpack/fallback.pyPKg7R 2"b?pip/_vendor/packaging/__about__.pyPKg7ReD2!,Apip/_vendor/packaging/__init__.pyPKg7RJzBh Bpip/_vendor/packaging/_compat.pyPKg7R]מ$Dpip/_vendor/packaging/_structures.pyPKg7R qg  Fpip/_vendor/packaging/_typing.pyPKg7RhD~ % Jpip/_vendor/packaging/markers.pyPKg7ROj2s%@Vpip/_vendor/packaging/requirements.pyPKg7Rc;AJd}#]pip/_vendor/packaging/specifiers.pyPKg7RTj=0i qypip/_vendor/packaging/tags.pyPKg7R6NS{?pip/_vendor/packaging/utils.pyPKg7R9R jf> pip/_vendor/packaging/version.pyPKg7R5v8pip/_vendor/pep517/__init__.pyPKg7R !pip/_vendor/pep517/_in_process.pyPKg7R s2 -pip/_vendor/pep517/build.pyPKg7RvQIQpip/_vendor/pep517/check.pyPKg7R VЊpip/_vendor/pep517/colorlog.pyPKg7R] - pip/_vendor/pep517/compat.pyPKg7R;ϸFi@pip/_vendor/pep517/dirtools.pyPKg7R EhKpip/_vendor/pep517/envbuild.pyPKg7R pip/_vendor/pep517/meta.pyPKg7Rs ,pip/_vendor/pep517/wrappers.pyPKg7R=ss%lpip/_vendor/pkg_resources/__init__.pyPKg7Ra$K2's[pip/_vendor/pkg_resources/py31compat.pyPKg7RBiKl ]pip/_vendor/progress/__init__.pyPKg7R̵& cpip/_vendor/progress/bar.pyPKg7Rxแ\hpip/_vendor/progress/counter.pyPKg7R/ݺ dkpip/_vendor/progress/spinner.pyPKg7R dq opip/_vendor/requests/__init__.pyPKg7Rg7#!vpip/_vendor/requests/__version__.pyPKg7R9H'hwpip/_vendor/requests/_internal_utils.pyPKg7R9.D,T ypip/_vendor/requests/adapters.pyPKg7Rip`pip/_vendor/requests/api.pyPKg7R+s '4pip/_vendor/requests/auth.pyPKg7R.pip/_vendor/requests/certs.pyPKg7RftJpip/_vendor/requests/compat.pyPKg7R':Gjpip/_vendor/requests/cookies.pyPKg7R_17e "gpip/_vendor/requests/exceptions.pyPKg7R=GJ ޽pip/_vendor/requests/help.pyPKg7RJsybpip/_vendor/requests/hooks.pyPKg7Rݹa&Epip/_vendor/requests/models.pyPKg7R<ށk pip/_vendor/requests/packages.pyPKg7R2!u \pip/_vendor/requests/sessions.pyPKg7R=z\$ pip/_vendor/requests/status_codes.pyPKg7R| "pip/_vendor/requests/structures.pyPKg7Rhm%vWpip/_vendor/requests/utils.pyPKg7R__"?pip/_vendor/resolvelib/__init__.pyPKg7Rs^/#.@pip/_vendor/resolvelib/providers.pyPKg7R_T#LGpip/_vendor/resolvelib/reporters.pyPKg7R{@#wIpip/_vendor/resolvelib/resolvers.pyPKg7R\\8![pip/_vendor/resolvelib/structs.pyPKg7R)`pip/_vendor/resolvelib/compat/__init__.pyPKg7RaTS0&apip/_vendor/resolvelib/compat/collections_abc.pyPKg7RKapip/_vendor/toml/__init__.pyPKg7R 3 *cpip/_vendor/toml/decoder.pyPKg7R &pip/_vendor/toml/encoder.pyPKg7RWՕzpip/_vendor/toml/ordered.pyPKg7R꾻Əpip/_vendor/toml/tz.pyPKg7R!ImQ  pip/_vendor/urllib3/__init__.pyPKg7R?r ;*#pip/_vendor/urllib3/_collections.pyPKg7Rst??ڢpip/_vendor/urllib3/_version.pyPKg7RS SV-9H!Vpip/_vendor/urllib3/connection.pyPKg7RW( %¹pip/_vendor/urllib3/connectionpool.pyPKg7ReW !#pip/_vendor/urllib3/exceptions.pyPKg7R(K, !pip/_vendor/urllib3/fields.pyPKg7R~ pip/_vendor/urllib3/filepost.pyPKg7R袑h3M"pip/_vendor/urllib3/poolmanager.pyPKg7Rawpip/_vendor/urllib3/request.pyPKg7R)/c+nZpip/_vendor/urllib3/response.pyPKg7R'5pip/_vendor/urllib3/contrib/__init__.pyPKg7R*1A6pip/_vendor/urllib3/contrib/_appengine_environ.pyPKg7RXc +(E8pip/_vendor/urllib3/contrib/appengine.pyPKg7RBxh@'Dpip/_vendor/urllib3/contrib/ntlmpool.pyPKg7R(;eA(Jpip/_vendor/urllib3/contrib/pyopenssl.pyPKg7R%._pip/_vendor/urllib3/contrib/securetransport.pyPKg7R?V$npip/_vendor/urllib3/contrib/socks.pyPKg7R8pip/_vendor/urllib3/contrib/_securetransport/__init__.pyPKg7R2πID8^pip/_vendor/urllib3/contrib/_securetransport/bindings.pyPKg7R~)|XT69pip/_vendor/urllib3/contrib/_securetransport/low_level.pyPKg7R9Pl([pip/_vendor/urllib3/packages/__init__.pyPKg7RU#pip/_vendor/urllib3/packages/six.pyPKg7R2Gpip/_vendor/urllib3/packages/backports/__init__.pyPKg7R޸cH2pip/_vendor/urllib3/packages/backports/makefile.pyPKg7RsV;1pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.pyPKg7R|@Bpip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.pyPKg7R抙$pip/_vendor/urllib3/util/__init__.pyPKg7R=:&pip/_vendor/urllib3/util/connection.pyPKg7R7J\D!pip/_vendor/urllib3/util/proxy.pyPKg7RN!pip/_vendor/urllib3/util/queue.pyPKg7RdT#pip/_vendor/urllib3/util/request.pyPKg7R6(մ` $pip/_vendor/urllib3/util/response.pyPKg7RlvS!pip/_vendor/urllib3/util/retry.pyPKg7RϚ? pip/_vendor/urllib3/util/ssl_.pyPKg7RLZ (%pip/_vendor/urllib3/util/ssltransport.pyPKg7R$ '#-pip/_vendor/urllib3/util/timeout.pyPKg7R<,69pip/_vendor/urllib3/util/url.pyPKg7RFq Lpip/_vendor/urllib3/util/wait.pyPKg7Rxq2 S)$Tpip/_vendor/webencodings/__init__.pyPKg7Rǭ#"`pip/_vendor/webencodings/labels.pyPKg7RP1D$cfpip/_vendor/webencodings/mklabels.pyPKg7Rg8p!hpip/_vendor/webencodings/tests.pyPKg7R֥*npip/_vendor/webencodings/x_user_defined.pyPKg7R aDB spip-20.3.4.dist-info/LICENSE.txtPKg7R(vpip-20.3.4.dist-info/METADATAPKg7Rȝ_n|pip-20.3.4.dist-info/WHEELPKg7RC<}%t}pip-20.3.4.dist-info/entry_points.txtPKg7R"}pip-20.3.4.dist-info/top_level.txtPKg7R:vPB9~pip-20.3.4.dist-info/RECORDPK4xkPKx"T43)LL8virtualenv/seed/wheels/embed/pip-21.3.1-py3-none-any.whlPKyVS:4@epip/__init__.py=PJ@ W^ta*oRf۴ 3Cv@ɷ@C I[JޘC%@vvcjl`poR\/A 7p 0*˲ߎR;? ~> ~Wh( "pP/G)X'kQ/[DTyޒvVa]4sQ]-CI [IҢWbHigv1"_0 .l?PKyVS#mpip/__main__.py]Sn0#rXvEHQR^r!CS!Zmlo &7o޼`] =wRhsIrCOfCTαº#TkUL=ȝn!.ڜtCc/:Y]g!T@{T\s$b 3>˩'|kS'{䚔Zk趏|_oj}GeiÒl}Hߊ*;d[屡I9&71k6@Ir(UэxjWj'Hѫ*!vWLmw'b"",USS*oNn,{MYymFL$K6o69y~삘 Jv)+jf R9Z)oEdF,Ձ}#6JZgL8kG37*OBȦfk1%efC @Xǻz ԌUTИV P mAXcfEbs%KJ@|"\=z[b7O"._^;Tĥ ꊪӅxJ(*6 _u0PKyVS5 pip/py.typed%N0 E~X lo@b6i-%v8=N-sHaIw$QFvT+>OI H.3Q<̧f,t$o Ƚ9ŸX| hdr1hd7*4;#)!*W|J߱7g]R915nPKyVSpQ=pip/_internal/__init__.pyu1O0 X pL'X:m$.p $yqABKf=}Q)DB()~R)`fbTIV8_?'b;JKŶqg&ĈU]fU{ԽljB)lcn2km^v=&(OO\]NXٍQ΁f0J0 Q3B SQ l 3%o2vȘXH[[mKТ "I7y\Bmi$2WcRK6g7ɟ(݉ӷFTPKyVS_4  &pip/_internal/build_env.pyZs۸_2!SM{zP.'vj<f5Y ZbuDHrT)R$˟Tv-̼+A-Vù {  ئ)*LV+=DA F; or.V64X*b9#K DY+EpB]RЄ?,5?y eʂ\Lȼ. lSCeI6` mRI0  q_PWz.tT%`W""81l!#+Ȗ`aȏ&B:qPj5WߢxA ("0ↆ yJvv5ֺ +nn$*%~nRkp} XA |îiu {Ce+@y A\U+2(À/CM3\KYBq`x;AoG`#hG Z8auhR #,O(翾%}A. !?HmLlo`#9L=-)W5Y9kwhox~kaUQ\!Xm/f/^Ko94TLaYrC3Ei.2E(гrK5U1B,t(ߦBqO>W%cb&x&f5*/դ> Uְ\@0NslHzDȱu0+F`wI!bJ+EA(g6?J*蝢IeXu!ɫ @BiBSͦhBp8찳gu'dg(sҙLV pңlqP `?J5&3Tۆu7:"YLW -bsmnsPbewE"G5ʰpU 르@ۮքI 7ǧX>Vץ 3W7qn%D(UΆ3%s"35fY^L֥RRFuPE4gӼ,aଵr~O4kZ.3.H=-cE3Vʜfve5.?aeUѻ40݂4Չ3\W%RfGBsgos>e#=Q1*\Ul<Ǵ<:ލZ~S!r20 EFAX 4 . #gqL52E,Rϧ,c!BmLLضG+@l3liYC.yX]q48RLg\ [Ҡ҂;R 'PW%yԂakV5ܥb!u C T_^@Y.psj{@3:z5lƲ^#}[{;'fծ!ٝIYgٟ7'K8憪!VMqoajuyRMJD+%*HV :v@D-mw (t0Z5963yVĩ&R`K.UJ=`H;}XL\_lWfҰt6nIu$\Rظ9|>׉y-9-Y2qs SJVh'%ӛpgY^Wzt&E'/ɨz]bk,nNxf0LRIP%MSbQH3V _dVY,І$7 }Tǃ7+t}&x5r)y1B"T=s!FW#?[4 2T; f.Q9L.-C }~C4<{VwY+0pq&Hl` bZ53ENsȿY^LhD'+.X,7>Ŋgר|e8K]+QU##WN3hC )ǯ `D¹on3px9(\PD&`N~<|NP&-!Ϙݹq`'NNo^?9^g΃I mX"3g7Ջ-|ǾN+ixvܜix _/iZU}%Wa@JCČ9MZ }E[mB{(u~n3AaLJG5 PKyVSՕ $pip/_internal/cache.pyZm~b 0UȼH]T $ι6EbE).]Y \M6>}yfyJ|/+WGUbqui8H{({`M.~}hծ1GN5FE:w:w+F[|vT\]-^UiZ%Mێ;_ ]9ԍwVɣܫƂc[˞d.+S\'bf0Lէ\1=J/ux뙝GSҦ;rSƔ<>n~d1ԭe-fNM^<;^4죮 {J ڬ;dd"Pt.{cIƪβUv"#+K5;ʭuJn)~>kJH m=gϾf!"A՜R_a9lZ&:ͻXUFBhIJ,֋Jʶʤ͵KCHĦadezP W%$f^JkGY/7b dGn̽.gR@#p"QH'ۂ‚0ZG,ﰷ1ƑZ~T/1*-# 931l5MmzdY;,KlCҩ;vò- 4}'|鉐U!X6CxSw@.;{m˲'kU[*dji\&3r;&ˮ/e?+PeɍM)Rm,I?q[6tx$m&BO$U>yC!mTsm Nb%bs9xR9o=3({5|I:ql{6`tz0hw,|!+ +GWBfQTHCNiHD+H7} 67(@߃IL##o#!Wx=WM\NQ#%y ly-b͚|ؓu_ Ж]ܐoǴt##mEz>K#6*/BŘCxrm$QWY7tDZyWetȈvz۶n"Gd UP5 14`Q>Cn/SJԺsr#@ouI2K#jCvbu}5@õy|a)cLTyakz;SؽRR 't 'e)|Ա JX&gU6TpxGF&rx)/578YWc.c8VZOW-S )򞶍bю# Xw  ?$F.tE<o^   @=&{rZ86XŀbOn-h%aouE]?[1o^?icRz SJw`T1!EQ– 1MqRaAf8;b6x(galR,czQ.N=*/8h{'N jF*IkՀۄ~NϢ h1k)7'I?b˩s {}/cA2T ׵J̒ ?X|1M=s?E1%g6,2AeXZJ|#CTIFFV<@z @g|jBV7%Z˸nׂr0%zʯP> Ni:ؾoxfaoCu\~/Id`:ti=1B^lPT+>x Jc>Rk( Fx}ZPSqMn8vl5w'in:ZU{b,.6 j,}hy)vL.Ë MjGj^m4'/l/QWg E<;_\>rx#c]ul.FqvL=gNĨi, $ c^̄dܻodv-ޏLSCfOcj yKHìݙG+nK;~s}}8w7.")bOgfR!cx1:3Yg&'QQFH`r(Ĉ d,ڛPBs!]tVtwۿ| #ԐRn|uJiZXtER߾IdV 3-oAT qI%<+WLj]7Ŋ˕ȋۍG,OV|؉b[)LlNBd\Ehdk\Db.l+%K4#vw~խ QPĜ ͗w I^!L.l[Ȕ\ͥ0wlP_rN<"XxBAX̖2K,+IBojU6O݈y5bg6#v.~^Ru 5RQ,r"0LY!͘'uqT^"Iy: YW"H2R]ʤ?]^~ٿT vPsj-y z5\'[M{گ3vH$O?< FaS?]^9{>\XXBo`07nT ,yVv=cA@Ŋ u46<%Dqj)\,ĜV=|}r~emU7;U$RNknO%*O? Yl&F"'i7z*6zsv>'״K:]p($>\Du_Hp|<9?;/ONˋ_k.8 2REX^ei4vq~2f-g r*K κ J2/^!+L ?c8vW;&zsQ= dwLm7X9g!w[HCb -4$/d*NCZ jMTJ #xqj~?`<۱R0.+6H2}OW "}~ ZZ#Va 0 7ľWW%!-0cc# 8QˤTlW" l_h^b $[y-PU#},[:(2U|WCF1ېfl0Tm=ic"p蟅C6b-/8d@W(""*> 菻s tFD{&@C :d2  GB#|ܬj_hdr= ŰeFnZ>l̦mV º.GGm'лyolF]rvL\bH1 BhW|#~fRJ~)H"/@?: I~T捘auvLѹ*$N* !` u߃ ZˍO.IW%9X@9*}[IuQ{4fvA6ZcxvM-گk>O0m1Q%d2GjtPyD[;  ?#g3ԅG2Sǁ_oֻZh 𠯄`}|CWE 1O6|v ƚP,dI=vfj[/=M&ᤂ6l%pcH8t - Q,~)1pMY ")d/5u?hi ࢀ85_"S:~GJS)V2Vw7pCvIĈkrH`lv8vv;5ρg̰6m^ү4zѶG8ÏYigg41twcX`;U"cW|fk\?V&Z䏰nw@3I{W]|uk%]}mDmMF_'x_qKwcu˅MEzj+(`DCnwQձNeJvtW%dQZ%m>aIyy0 ֺSz[j}[ zЭH" >IS=WP,r;!d ӐZĚ?@.|5L;B5XV6- Lˮ,@~9Um?/K,zͮ7kqRiйjF?DRv"YKK.sU0exHQYdدb^= lYU|yyN^2yYPj~󟾤/{UǁAV/p0Q?~P婾(@2)| Ε!vkSnlb3f_~z~rɝnYe7TRa`+o(vIgT$8͟K/?p|/ 4j|3p S3sG/q~iT}9ՁތhRVwP>LjWw0izqio{Gx|kt:m%orOS8j{6@n,!}pX#xN]PZ2@` ĺȞiJKbii+v&3՝@kњ&_ZK?h5Gxݦ0/rOC{ƗƯIS^uf v\5WCJG,kV>|zVa]4Zs:M*sGW>Z7*|%)GkI;R/ m pWzeSKD_ 3;{.2\,DbO_J.pS9h<8:|:H8׾%]V:vc#=(Ma=ΏAa)$LV|.+U=M|r!r;3KWTZ겻Wz2P|1]=]ѨX)}UB8^j8the{V]")<00vz]H$X/=|dKV굻J\5-MmNQb';1E/A<3qhm^Gf_ Dm5i ĪU v{.~N6mHE𨏈i1#;%>O`PKyVSyfl 1pip/_internal/exceptions.pyZ[s۸~2$9my<fręS[9."!c!H;:.(Ӫ*(F_n *LF4F^WYuSR&wr(:96jbJYU,+YZ?d-b"V S.QReVt1?8ûx%DYD|-N/2߫"U\ޭ2ծlJQ6Fcy/v37;04<[K_cTOp{AtM Q3AXLCb3CP#xwJk%KDAoHV*mg8, *&V)s #zϡEp g+%g)2j3al'!T1[fl㒥Iޤ]alH~`yGhk1Ql=dHu?ƥ^Y:Īt U F0*]P,Yy$x_ӗ)SՖ-t-LHa]|IHz mB-Iӧ"Hm#[bAjeͦ?݌we ZұIh&V>$i*#2q W6b5G3/߭O啒-=)\F\iip;֤tdRҒf2C 4²9A$v7\sCvgGepe$9sjX *udy&^!) qrRR݂Hu^ك~TOD ;:&ڑYٔ3`uV,؉Q3l݋cQ쉃Ѕ[3s)5rCT25h! 0au@{Hū"Gn%kYTMadͤEPحDkrEhz25a)I)juz{ky9 DD4(1ԅMP(a"0qt"akڔ9%ӝ0}n([Vie"y!EK= ]ڌMS$'c*+-jYD7):bTuO?vM ԅ!ײF'v4V;lWﲁ<@=w v)G07yp_&F*тj,bRG =-q'[.@-n:b,aO;n6?>[ݩi.7T ةusINDZ<^`;ArĨ|*wr;s7bzg^N#[PQ6|•gLt?plDxްᄍqh7Y+䁙:LOe!PKI hH@3>{AXRBŽZ CrӟnNVө{oEx4>],.}#> MDO:)fx\Kuv7P;7''iꐷ?1lCBUCܔb1ZdhvP_S+, MP6~~ѐpDSkX4`;Ŷŝ=% 56+ޕ4P 7ډGd ^yPgu'?S:K VeOG!WN!$uwBSgTX= o~b~y5^vka+UB`Ͽ #@P4!a1C(UK%àxl/ѯ Ig̗{׊{:;Rã@/d<)p1S $i,CB|H{j(.ǃi V掹ṿ [DRֱ сiv|KNwʤoݻ0|uEJWZq\)J?"aR.Y͟䛫{=Pnݲ3ƙ5 k}(r3{PoBanqSpNWcxLK1|(Q)NVUV.^Ǡ.HmX;W_˅tvٻ/Gxv}~)NQ?_B".^2*WDz BB$G *rCCH@$SB|Dȭ4ޢ@ihaA3Oo77M.kwq%~`0r ^o0jFWyVAdE}siw} Vth&ʁ*(0) 4{koWXa~g,F0G~JBEWDo b4 `,3KwUr 1oD?oT ~_z{=-<~t,9̫j};Bx]|BvL4UMl6ʚ>w[#&@jeԜEmKCWcjKc$s82/"+}l' +c_ke!u mh52Y@ݖw6 8]# McDխ+G!{ cDFb]O[u읁'uiE\YRɍu޽h q<_o\7;]2ߞ.^ve5a[!WU'Ġpwluֿ2rx[wȷʸrΧr.ۋ+܅cLt?}'vnRK=v3^j4C.13#G6X|z >E'PKyVS'Tpip/_internal/main.py=j0 ~ }l lǝv٭&J"pl!)y)HH?HV<\F%q9R~2j{.59 J<ekhg",(PJ+YKBNMh j]%ȼۚ*УEJEɌ a$x8^_ pŃzORlrSsȌrEE}sPKyVS;Ւ@ /pip/_internal/pyproject.pyYߏ۸~_*[H ;\.%@ (YTIj7B{gDG$pf871'* ZݎiU B8q4M\|U" L&=,H~ba)cx &Ag[VTqR/ow[ ɢ!g6 ~KfiUh&`MzppL5_yb:K-O뾁twJ(4@zh CdqCpPqὲ D(XFV@pFvC,Pľf)dÊo6MdݼҠgHRAv0j,k(DC3G K7HQFN-4֔$q=߆@mrm CǷ%<}~e'L&޻9`aRz#ΆǩE!$+;4"g,m ,1=/Zw3ʷ/GW+4\i25@ w$h yFK83l5b]$ғEz_@rU9.#:"5Ixd^F|5p9HzH:z}.}n`4oBrdRF\auwI;eܷ!m`'&4g\)ɹJJ 4)Cc=ۥWqHtZ9d62%j#&*!eHU-'@1>Bgڗ_r. VLD6{!epV5Y@o+ rh4Vr\H!rL "'Ԟ>7 Jn@3c"eq:#}H=WZi S*Ch \IIm6 xG{924+O&O FFkl ̇t^SB~,U.;d옫H*CPKyVSg$pip/_internal/self_outdated_check.pyXm۸_*X\x"8{.&r mq:DDk}eQ޵`[$g8H6Җ +y;wQm_{އGَk3R*uã9UU_ {# Q /8]= mjql-3ٖ)+T]*8<@=[xÐ< }ms>JF,*Em2#H4(wZT&0 *h aqi=(6fj+z+qs%k_Y*^~m崽a^97WV Ӣqy4E(ZkRV7޾wWoَ%?^]4W7ۋ7JVEܰ Z-oDq f9XD3I6q2c]~+V|?Qt6Cdf_*I^<^;ha{::HRZ,vC[yaV2IT;˜N[2?؆2#D9; j<# %{ē42Qe5l\}!OJit># KR9.^G\'% IT' EwIo?&kBВ]+T$nHK% YZk]^ Go~jYH[;>. fðPvTeZ /A0[!yLRG^2[PvY(4̨q Y5N! j$2Q 1^0GZ;tAَ'  m ZE%ŀC@{-e t&!1qMg"$k8.馆?FHrK ல́3 S׿&D-<$rdw=zC fjŽ0\C#S ,P:Ic#R8(&acV@^{>정ugl8pK,&~܃6T+. zd`3}APϽuຝ:(ww:{F9Qj;)N c!?ků2&q`!C/!oUX`䙺i&EnC~(woy RSi 1q؝}wR [ CpuU<8X]xM1v繿Ow2P"K^Ҍ~xs,^ٔӥE64`~r4N'N}McMQ-tɢׂ U Y+UC v}=*:Hp?9 7ise'/甛OMk?]:Rn9\5 B5 iB37Ot:uO5CuIvřoK%| "U. :`aBL.ē(zK?Z4%e_9>]$dFSܻ:RraDig3Y$S&1n٫vV4"ُ;\^3 s ͒sIy$f=\vnRsݺ@Q PեSeVSnnRUPKyVS_ /pip/_internal/wheel_builder.pyk6 juMǝHm$}X,ŵՕ%Uv73|S8$g837E~b苡 ]U]V͎9{ӈw7VQVաkn@g+g7^>jysLKؤy ߾ĐPMQ|%QtUw)6HD[w[4mSmMq`>O-4wZ$GS$U fī}#sK-'&Ej.c\:(ИZr:8B VcXJx=0`4(xų#e5!s]w8L̡/d8DC;&͔IiЪ)ay Jlzjs8>eB vE/ >жȉkPܙּh߉o\8Y׹^ ~ۂ˚{C֬lZ-92 . J; L8b2Fx$UGHY9rE;[b\9m4W?/F/S wG?53NGUdPjŦ8$tQ{A2IB4H\V RM2'˶yJrDiBy)(ȣJO)fQxj`ŤTN@ީuo))8S7w:fr_E>d>%R*,HgDJyuuI cT hPba4VX(AY/b@b

6]6, ˳ DA$&Lۨ)cDSTş*>[.M ?K N+R$DoaNj 3%>|,~{i]\p3i4Tי*GZFcIV"N`J~Ѭd̻d:Bsn>9tb.xb0&9\F\Mɱ7ddNӉ h|V\;DѼ>k6^ #"i 82 d2h!pO~4]¦-t8\¾68H\{}PKyVSȽZ %pip/_vendor/cachecontrol/serialize.pyY[o~_(,10^}&h̓a)p-H$9HvhGɏ~3oZiSžp铒?V|:ِD);Vquמ)2}ǔ?n}/k~`oxY!j_77?VЋ5wԲfSov%+dvI3cpp\f QUp% )&d3u*E~f5u?B{ʾi08A4iA 殷$ݞђulmۖl^`A?fe;eX-L;Z+|5J&zSy)=p@aϞyOJ)5#491M$m'l4*^к> Y%Wp{u*^cGۖuk@_t0ۀ U- RDj ,!p_~BVV*'O(pFFTg=b 7Lqa(k (G{B8f1.h}'uAZrVBxwQ`# ~t >lLsW`\f? 1F"&y, \#0>W 2>t{)7gbĺ4` n 0gK,8Pq yy5k+pe 1v p .yU9Q0}d@AHXX@DʺҜ .iRG*%S辏Bge g Gʓx䠧|INC*p>1>&]ϖ2,W"*(1.v'S*>$ @Sr@7k֨8Y&ku 0^PRݫlIs=AP2oNJxf2=f| l54}G;'щ1܂`-C %P'>N3$l |pGښ8J:Qv/6Ż^#vV@Me1"51mY. RA{zh.،*kSUdҾ"p׹im;ܷfg=j8`]E '3-Ya5,yg:JҔѧȯ_,eS5{Ʌ>SaY[mCpaM"N$m6h 2`89%H+8s2hݫ[8[7l%mqlz7_86Y(l`09L̈́ςtq{}/.nN%˹(8Sxg$5 9K `L 1@:@D:kn #9ꝋ~??W{Ť,ԫ3rkȁZ# C@ITMV۝ο j0>C3C έՑBdZܬ!8kΠ_mO [!zq{^Z{. .$@A2(ie \q&diF5T걯RkY5ƺ:Z,Mdhيe8vhpiDW$ݏfHae脒BIHک )`pTrD9˨ˠ \q6z,,uXQQ +U i@ePM {An|mjBxCenîEi4l%32C"6laVJ4dzMNQFS>j R;dSZ*dߴNB]QwS fנ!M;n̗[&4Tz/Q<>⥁2"LOӑv:0AYB;_aFz-%u;8ʁ6;F '/E .i+qk@U@ݦtuӎ&wJqE>pnnJ<C4o>V3vXk"Wo?;-8i`~Ԏ]܏ZgR4rd|ulE. y(0 %snʷ©.+9\<J7q(Elj OcT)Nfիߣ8l],2FAGezsSz~Q>OU\>< {T n]<XammNN-  Yc>qLO1 7;5 A:j/r}_7jnK)`}(`*r$Vtn" bg^4sDh}puy*>3c',A>?-~f~mt0ԗ7CXO~Exj^ISt:"m.#M+ӟg6Da[d#d$J~FU ş.,i-#l"$&>)E7 {?x|"|mnPKyVSAgX.pip/_vendor/cachecontrol/caches/redis_cache.pyun {J5Ua9%(K Sj6DBn2,dEivp~27z5oI/YZYs ܴo| YdY{EE,5m[]Ԏ-zFkU_nge<4f۽0A\yX ҘWEgc{b+j vUԚwLO# 8!F;~grfB:nPKyVSU@>pip/_vendor/certifi/__init__.pyK+UK/JU-/*QH+I+)Q(H-J⊏/K-*ϋWUP22023036PPKyVS/ pip/_vendor/certifi/__main__.pyM 0E)Pn "!)Rc[@Kܤ*Bb#-513Va|A $8ů3,{~i^pe[soJK4Cܐ\o0@b,X (FNaNXJ]罁'ÿ^߅PKyVS%pip/_vendor/certifi/cacert.pem̽ٲȶ{SU2Dl_ $@4c @H@l٬mu"2.M'?)]H7^/j :47v:g|;~ND{>j\Bŧ(>!g;Ybv 1 &%4A|jv4 @ACj\4)z3]ԳR4؉OnLy ?f:1>(+if7ƫ[} NY& . c eqFv9caB <DWtUl׎hZ>xsgV^xdN5 zNi"ڲƂw;{cI9;)l}NMbpst?K} B5%\J<=pWb 9ruIO3S騪xՇQ,)o xuW?2>\eaTN?Fq1&"OIgeЩ|x_&!I@>Ry-w$ˋ9oSHSH j'ƬKB8db\#2xRcahˣ]llM/EX5k:gqf^`yj*clzfN3sYyBfFXb$,r=^SAa]S{1\,i'FӞyڇ;tAr+e>V#)\<ZT7+o( Hp0>G>d"2h=tۙLjf#&uj0|ejU)_SS}Ptzco)qep|{>ރMjI|)y*殅g+wvCjebgC; 8[#26Z2J~H3~>%BMnNeWb-^ɿ۔&'4w 74_?/{rz_$4A4_s? , Ȓn0x DB_"6 …@ A0 JM @hXoPp7Tk:^x2`6) , eH! nY U)(%p&2K|Yf _S;sj眯pf_8k/uR>?#4Yt0]xTYr馶Vs yF_[8}^W2L)Y6(p=S\@`阬~Eg79uS']LCIofuFr>;75Y acXa5ݠ{Gi7OeuzJ mj!~NYj< +}St. _Mz*W坩♳?wulڈWM;J|KgfV-Elg0esrݒGҺs OّqgGewx7a5~ (,rńLk6[_\2îWr(vܝ WcF?/Q^H9ۂW[fأziD̴|geנ4QX7_:`8AM F`3̈/ L):G)&6#r2_=:!2ȫxLyM1Ħ¼H+~ oY]SdP4ӘUl@bf{}P5Y^;{ROXsVODe6":K452}%ȕ$Y"[QuM/" ~c}޴E?}`cgq|oZtV\[8}k_*UE#_ax%!ۤ.OIhCbTIȞ$^C#cIlRj!t_XP/{JlrfF.8^*^KboNƛuG ]D`x@cKf!~.eKFP@[ h@ Dc% 5"[H$xG/0hk"p.GWgy៍!wiXQWs:> >AaѕP%Z-t+8.pb_Ob/v݉}y[0o'f!v*@[;X`L$>4wv'b<uKzsAFK 4E3ٻ{/H&oX>! aݰuwELg޵̢کۄrՃQ V;K4^{d"vSʬ+_g P0_;3rU@qlBL2 ʨ my80aDq>۽nq(lHqv`c<϶AS1nhlty3꽵c 8ؔ١/ԇQ\Utg+/D !LX띆=e_~a*8YkYxX do=Z &JQ4rڧ L4`9-\v5U7J:"YW!VAw(x$$2'4pl޼ CcM_(4RQػ4xITω;]oAdIԖ~~p|wNO3ү.I{L":91U4rWY )f,4hF7o!TYU2-qUT0`4SE#{WX0 [0q *j%2l/oԤ 5*nK#oɶ5>#60[f v?] 0}pǷ0Ox3A`ߢϽ&>] r&y[@k'GT >yG1׻HЛ9_ZH18u}}(1E:!^2إ݊ .㣶]ckZCnzo^tw8Ne#_D{Ð=R1EU=;O\ IsH#RǬd9Td8HcYHrHs3%6O>=,Nu|eKG!H?˭0QH# 1QtXO t{~R|7`bqkt8OnZF4 i5S&BL^Z Py7̣=,zns*[LFzln髃a17{Br>uS-X̸~QqDfZ|hIK goaH]2d~&&}T$)O)7܇)2nxR aN$%Sd+ ݾ^_+=x팏ն5Y+duGvqoO(VYfQɱ@}J.b}R`\SAީt=BkD|]Xcb.G5Eb\V2.mP =6#=w{_Rm=OF"|<*育~x8lCf"59yXMUt:'nk[԰,ߢEt@:MͲNuL!ޏ-g⻑@4,&"gn^ahqKW,<_cd9Ŗ)2^L;t JlH|,[GAKL/2?M.zJ!K$7c,c9hR@ڜN']uRp´AqQL9nv}+|.?xW3"Mu8eK+M g$:qfZiޑ+0=ή0Eo:֝7P'6#/}Dm0kS'SÕTe@L\-QrwVP2;5JYj EENF #@ 젆wLvQJv߸uGw/':6& 7B7~y0ﴼhr|&Ys8޲~bErkuY'%{_<}RHU}Yع\c]mvOn&ƏKMUXfL4 tme ծX2ab{ZH .+(qv;3Ö+?#g#d ƌ+yVYh;&6uaM 3 qq7ʧJxbѹ#OL$,#+ki![Q]U#]`Stw/YSS YoYQ2h/'kƣq|1k(s>h?qPLVp)DhjN^@&ѥ 玆_8 6XP3J4Ĝqxt1+M l1) <6)-!-^΢!X {RƖ4YGb+K2o3/Lgn)]Zs?`秬> Hex_9e ; 6kh醡hh3vs[4qZ"w.)~߲%:| DPZy([-G?`T{-' ]] ryV$M +ڬm{*2IV TYZ:5A{kmUn 2u}k[̶g#XeWzg)6F"+ٹ~8KZrrt;gwwlpNy[!쾂@ëߍoʸE9r͇7,3%vI_[as*A+BF #HI"zMx] 3F3]wKϝ8e+>v . W4^] g<!޷:+!vJ[YW甌*MI]ឱ_Xa͟%4WWﴇ}E[v)Xf*(M();dΞu3^Lm4ԪQp@FZY[Z}M;ef=~uNOYĸәSh./Z^ǿ/˰C2'YSmȒ/$$6YA'Km I)"z 0*HބZW-E,q]J D*]I4Z1jCKV/(62\ZK%%,0d|xS,oȲYbϲbQ]0edA:׵~ZQQsc#5_cf,eBp(+ccG ZS(vYLFNVl3Bה&B[ CqYNsc@}EpwtG3I.tht9-=1DW@XP\5n+: 04R F>nb hpsAuw2E붤=5Je.(W؃k)ufu(Ol-G zU2tI trHu}I(m݈@T}Ȋ /ɸԒ6-<9gW<Q|F6e8'WKYx9+-zժ\VH@t -;͡iQ^={\=YS7=mglnivU͊ AsW;}Ǣ6/EdeKã'Q'MNW3]y E{(3ܳm5Hc'Cpu1 Oٍ޲rUpku3:;C\Kep֯o o!=P4իϕbQR̘)*v'p[M~ѼjYƮKs_bkO :Ld-LGu`P߹O QvzطƂ'E =%EhM?E~YGUh Nح;=D≶R~} *:G\$ +̀JC"75GpT .tbI3ق}& yPד_(12fE:'ADT۷c*NhlvEZf9u'pj7vu!ȼIɆ.7lJ{ux;,fk 'e)s>pʃܒU>f퐶~cQM;SECL~ oCl~vݘ Sy/r|=](< Y_%Kv3M8ޜZ<'Lē`:u=g \s'7g\oQ HV%Q$xTp"eqf S )',^Q\mk2L`Ae/YثƂxiD͓pU;Ug'xxw{LupoY;]EbU|؟8NY~O/ b4jܞ? ֟"B]DL\ 2TVX}=y-6{r}v+s#4*{oM4)ƚ&}HklAǿ%{|%L!04 c$0C2(CF u ߖɰ8 /_b%$Fΐ-!ˊ/HM%R!YlK aɶ#R .KV,-+*4_+uA8^*_W= xu̒D,>gتQO!VYen A/%KF9WF,RmÜWKH?MCWRf6\[,+$j'x܍!WMƿh|,m  :Qg} ?{Aۃ~|$S9 atN z`M;?>Lg$m]O2.|3۳2SGq6-uk3mضf:3}xMQ{ԥ Hx'S `e0\փ&5`&&NӁF%qW^۝YUՎaɠܚ ˻a̓ kVy1_#&9䳬זaiW|hz:?MLbYEhw:%R;~FBy|mTw 8Yج>( 2? cc9.mKCRO?6XpCjDA8B^ /oGcx@Yu}IJ3j\8[8t{ ◫X+Kq2R|& WP%jih.ܦ aObz w5zox!}vS;=[jv)B'zY3={\zos[SA-SBLCUn4"ͿZDK7aM8֊^ɇ[%;V dSxGۯ {TfOT8g>|qiy81Lgd:}90p#dx0Êթؓ&5:6V|oB7m,|t7w0ٯN8}+,0;Zfpi`Y!/l.CoG"/R |Vɲ]`QGҚYYeQ,=NfkcO^&IFuG9OP]( ƀRx?Y&/HMg|$ܳ*~skk_[Ev<[s}ǘdl^1%'n} i)?RL<:QwJz}\ :|MYI_ɊNO^3sŀx.|_,dwC|^e\]m>hI# ᅗI""_:̘.-1`)ri esXJG b Q2,`a2zGԒ"tٱ’:$拙>7ɵ<>KE2+!|mK9nO'zYkGH(3@0fC9wc*vӺˊ<5I%F:EgD&.H!Z;hoya[+o)*՜Wsy넡 (- ׮X_K.ŽڢѨGw_5M->bq\fѮۤQq޳Ӷa,l:3Pz MwaAd.1 N:_u䈴pARc huOW=m?!o:ZdVft g"vgn- !.n'=>=&kBT‘Q-_p ZVnL|+iʖ5>S9pfs<^ 1\Vry0C_@JMn@({Xcm%$UCt>6at!Y lq9B9w v%֍xQ8qv{zQ`!ɭ90hO)ɬ \"k$N^ 8=f$[W׽v,CL⹶a |5?-YP5geLΑfe&8G 3ZA !oqǜ,3 |LZyUH!i; z,OU9QpowTJpzΫb`ԊL\>XDrUw]T}o´ N!zy:ͅ"+4~cA[-?A[ھo_rbBB10AS4"$E180(_ү-p)A6gx,1jU 0lm(Kl+;}i:|Sk/b tAr%fYŁ~m,Y`{?YTN/O$X"fKkd!:/'}۴YA7,^$)_On'pH3L=s +_l}\3$bEx#'AMN+]H;}#bƷ y%ZNV⏙7IUI,vG ;qп3fĺy/oi*Vgt Ro'>X;)τcҩ,5?N9Ml$~,wӎ*,nP-(h fMM`i;6Ny=|]9Țp To AGio]dǎL몎 \F]ވ VHC|r(kur:Z;QoaA |$$!yӯ4KH8rk(91!Eq; zyd 5)䘧6~m-kįm!3% g61b0aG?~u&#il>Eحk,CO{<G&$&N{Hg wRP.˧G\n>fBX!b w;%vUUf-]O]MUj-ME5HZ2zr)k}1Д?C*:wxQtػ~I]kN:iBb'>l$E]*8Scpp\@&bIC8Ư'^[4Y{:0->ΨͼKSLd_nD.4' w?ݰCtNuZ9o4ơ,v{shNdG^IRjAȐG< y aNhB־ݱPQ ;ߍ1R~vtOe*2hm|TbB#>o׃m!Qr5/юg{Rjgt45zt6 :^1~&𗒲Nc;;DPi^Hѷ۵{}M mW 7ӏ#l}eFvd/eBroS ~ҳ+Ғ{wzo+R:  K)M(ܥ X? TsLtr=bP4WA$}~HI$QY+}U型,,M̓-B|7pwc ͺMyxqݒοZЦUބɧfœ~ ]ִWma C Hwi}D7.zKy: S;ʗֹL~Q ڧGХtoOY[jϕZgYۃVg` VuQa:H3qW}_/랊*ef;ЫZS0ixT|BvZ1 iyB'! q]T8a&xCv43)Ϛ?ڷ1Up t=Ό~M+X#abZ# NS76TX|'S0]yģcZn (|^ ɝ|";@$x|%SOY7=[޴I,EEi'(TL9I~d4YÉ[@nMZE\xa‰B7W1@&CL,4[KY |W"0G~"S AO|g)ODs16S9;m=4;}-9o-:SvA93 !ĩOvt]$M\& wdq68|0FV },&lܴۉ-tQ)ɮd6V[ 3^^\ak< 6Wۆ Ŷ׻u& muNJ'n~CVğk}> >_N7K }Xor 9QH7Nm*+pQe[@~&$Wa f} Di?ުS{i+߳,sg֍5W(Bmu{ ܔ59hY/>)C\sy4[Yd,Y'Քɍ3U)x@ $ |<0$ޒq+X#^ٿI_}#<7YPYz#|,[jUS)C rIC <4鰤Hi.r>NLJs»4!߳SLء3.ĝJhpmV (up잔ntʕN/..!nze1y zV [_btq&pܭ4`I:V6e%C-meޫz>X?p%U$xW{ |W$,年b0e%5 ]kP8dܽ7\QC,AA.ڑ1uve޷p.4\8jdg:7@vl_`ʿhptvhɛgZ#֊1K[~U'PEjY%ۇw:6H2$hZ,\ʵh )x/|^;r8h%^ ߥ 'GfL;Li6l'rDK!Jo'Tyx|.JF"M':fׇ-K+S:An.x}C NY9H#߃+^*>T4ٺ)z*I:A ˑ47¨=kBvBj/}<)| /eeQ|ďAF B" @Q#~!z"H"7[hr+Bl+9-9B[E֭t6ӺlZ&f[wZְ- \|o}f(ӷ:p ^mlKS{xl7kLoɟcזſMJD.S?皅1gl0AϚclH 6ҷ7w?m`2O)nm"5nϢQ:e1*|LIqԫ.;?ʹ8ދ;J-G=K,T-_nؑU%a?^Œt=`6АȬ.=j\"Zu)Aĝ2[D Iǰ^pY/B՗RIZDݪ9vNЏW{[p}<5Ө{6i^|uCD÷}p" @hڿ j 9}uGlF;lFX1! T(G &%!ɢ%*m\۸t󔾁%xF˄=Ax[1lk,j`[)2,ŗ]Hqmtɋ_!| ڻ#/rQ}|x}LfuŒWĶDUꭟ""tht=OJ߃so?ېE/zyvj5״hfo/b!1S_ő{9./c#zNp`ZiأԧÓӰ;YMe6)I;:w~.Zp4,-Mc&K /`_M?59<#.+28#^H}Q?蛣bb`2 b8˝hlf/ ʤ_ 1[{OX0ڷC~黧(@1` &b%8Lq8N0v>[Ud-#la֗H &TNz$6x@tKn!{%菂k[[A|[mўm[Cp6dYߍx+F'v`5"Mfo,<"~?ƕν>ݕG:5~YiUy nC<3ck>[FiG%lsS_`:GC[d({s__.ۏ+>UV/S]+, z+]OԄ5F/@lo歀T{ o֔D/}GE+6ԫ{{ak }..Sjaic!zGzYD,/rGf;Rɹ)BH+c"B(bjv'K%Z=E*!<<*%"-Y'O!DެE T80\ia49A fu.T)@^t/d@?C¿yX{ Ca %!)ĨOWvm mЍc[6xܠ&wp8b^еɏUF.[Cף3Px6JO_Ln͛G[C .[ vh{ Pg6 7MJ,ٱxsvskC2_vFL|߃nՄ/Xe;|hN j~H3U[{_ i͉߹΀?̎tf0cޭ֦:Vϕ Ph ",X| ]/FH!Y~* }Ud#1ȌTtiw'zƠc_ޮ`lR `ې+uvVX PdA^%{`rR篪rSÕ0 P0ʖ˹ɀ^ mSwYw%N CRYcٻqp<*Gn:0 v:W]oKr 1W+lG|(*ZG)V!=] x]! -Ƿ޽SM_Dlk_nhu(Yz7p}4g-Bz3[ڄ6mm- E Nh=O[56F4}+NǯҠT(DQsp/58:rgsBL:ꀫ,t͕^sx3Ⱦ w5$Lmi.4&g<m,dZO?,gs@ X_Lo{ZH >2&@UKDj\A=Nix:O@<%G*u!Ŗ' tJa^R/sVAL@zpbҎlL,EN(Ϫ!%ysE@&6>uE:@܊|/搉{xi0"Oa(V>wpF 8yiK=%#;{(r30J{OJVfN29ݝP{} r/)yQ|vĉAt 󻀿cp;]['>D/V{gx\O[ఽacjݓs|*D&$_ o#X/>Y< "LzΏ2m~'1@ʧt}N 5;*)f`Ra8\RswdHl<08Î Y)1)y$(}ނF洺c [|3LB)>5tr)^Xsu,6̓ UAq\C8Xj Cx \FEqȬvbVua ouFmݍ .;;vcr $YW$F+1|v4j@B]t6%6*ܧ֐ا)b~cg[ho1ue7wqH%$YUsB~.?c?7: &+ ߌ3ݴa1M' _߉\-dE»,kN{7y2໴IM?Iyg̕[sc\p[;Kԓ5"=d .ĄƫAVfꊜ0IT_~TtNRb8DVYJ<8q{۴wP_xWϻ>kX,w{c/p\՛0+dгj=DHSkh.}\Cؒ(0s|'p+H9j0–S&…=vw^R6f,?5q`o]0>nil_Oo/:#}.dg>-f{=(wg% k kYZU \K܍hLTd< SNmZsJru 8QDpZȊC,'ڙ"5c~Bه :e|gJo,㢈]dFٵ{Y9xoTx ZS*0-yΑNMYk %b3v +2%Ź O43NJRol@n)vg |J,~_(8BA䊰H `"CI A!$H}: AvY &;ƐM1'7iӕ3kV[[慕zc.oh2ݡ|GdW֮ ߊ+om25Rg6ώ%l}8 IÉ?.[n:&khe:Ci OL[-ILu?e}yFUM`>'m/hں??EOOo=&m2y%3L~I˹^+[J+7*3b -gdcj;Pi%OR? p>?W*@Y'-%=F,b&Qհ[9-r TyN0^`^,9nN7:~~T'd芧I፤t~Uv$\QaZ 3+q])T,/;:;Y6[Aँ hK3EUfsO^ȥH$ACmY$bcI#\Tk ӾpP.=׵]_~k!$l)!pOm%rM-7.RdSD9 ݒPq| chF4֓ܿ Dp뙉S'%JnJ]:.۠36q*t[TWJE 7'}m}_G#E]~;1::~:8ƙ\o= #(0j3|nC_h0Vl)>, &cmKs3. X]AXX}֗=Nó@pѥKPj-a e(`R+XŬ^"ȫ+~zyRc:o- f|6:gPܝi a,xrԺ nqe++޲{ Xltc&DuWUa7 etj|# ^hѲa-ñ 9w/r(-M"9XyPߟ`D0ysH*lhBS&߫y9wGG7rMSwZ\'r0|Vʥ TaO@@iqCX'1ޞbyMKQ'B_@cE=\;/bh߳|MXt3O .!SYf|&Y7luz/|AT齌}!I+zE:C/ F|i#ݩ".wUWP<ό = I gN>5ļ H^xc`(Y ?-Yt[qi!#ȇZns3<@؈CV\lxVad$ bN@2hNH>W-R &Ĭ F ɾs~co!?1 (| (NMq$8+?94%-MKoɿB-텷Enծֶ1oY o"^[fk![??jնA:Iaoi7Ӧ/T?M$slkėV-DLygj)L}(qտ]دjU$_eH:R]gfbؙ0^ 27ր!Jgrab`*5z$G#=?GK"OTXI :RCcy*a=[iL!1s>p/Vj4Y,?{.\زaVt|2JI,lhrVepAsmXIbQbjUVbS)ciK^LJҮy_՗ —Ӕ;ri q`\P8SWue4A[.n!H-b0,$!!LhfKœm`]buQk  ԩQVQ7_fj4 es_ΗHuGwTV g@갼1е 1G4: A(C2f$V++=y] %SP!dk⫛9޲QJ)rA Kd` y|YwP64F?lI4M%׊Oz>_Tp}DF0$ H 0u 0(i+'ӮV(v KnvF9VgH,se+\1we+b{+ޥӯpoXswt+E6zѽ}rMe!jK gVB;gҝM7V} .I|'+-58[9_ Ww5fShI|x[>~ZO}d5m&F`4QJvY_i,ulmd `z.gooF,s-Z+dj%6ME2*`of\IθLtHTr:CB@i|a @K"r oQW2O3Î W"27zF> *>;ӃCPVһAlVRlYBK쉩Q*`JR..'?򗆬> :[~P#-ĊK WcF/WteXbK`ܗ!anc  f죮 bXy.j4 TՉܽV8Sl5Ayx`t(mԗ35LPX~< 9,11sf9-=dhqio)1calƍFg8Iy< :1[;ߨ*?OJ?Yi# Ёj7b6hkLxI; {Ǣ"S{_„7R0mBšt;p/I{p8H[h1׋*B5u|zqD0=`tʻ*~{wU1#ۥAU\վ[Sr< |41 ȠE7)JpԭY叆Dj w'ѴybN)[:5V/F"kF%*lD@9劉™`~.P͜{Wyf"<_ , C H vwZ\+%|o ^xN.J*G]6pL<Ӂ\S.@5DITM1=D+Yx*;Eڜp$AkҒD{Ⲣ]dL7ƅ;,$|(8+Y6yrr,d%Af퀩 ( T(o-~8p!(,I|Njq* d8fV.)Fj?+ (5Ě-87雪H8]&S*憁\S,'=j_w_0ZB/S2L֍H'bǫAp'?" b( o |>um}&;|--p[ExE͕˯H[$?:ķ$ {2c=%nͮ8w#pw(^w^[xN4Dnd)]ϕ'H AԚl銈=mmB>wJ١X2of}Gle.$,~ ]{y7L#UcM/s#]+ ω d4CO'Bl4 nU9kzZc7lMw&<1}4sk, Unu N?tm[˶e.[P݌5W@ઃ?*rLj@ 1 }MӨUD RupS|?29z+{,_kyU*o6H4{׫XY+ L,2j0jyTSpnzwJ֤d kaR^Zkݣj:Q#"Hkr_:#NÕ(|#?S4< М#}RO^?gۼEMJ/ 1Um7˹G~l31r9pƉ7H7y1|bx kI^"&=5.e,ٰ\羬R4K"NuϳG?K;,p`&VB:hf𵦇q?Sӧf0$nhv֛\g9@%&9(V).QW[n%[ TuSv uͳ+xyAجí #?u9Tapc+0.HlC&7nb\I"FN݈$+A[bna wӽؿO{opB*6gHAfߪ,}@͏3 TxEmr`lAkڟnA_ Jl}aQ0 mݷ~?Ow7 蛺}?ٴt}S熮!옟(mVasaF\"D Tpc,uZ^@Kǥqҳu':Ux>"a> p*LBS@jM槼̒YF;~j DY|4zke5\ C11o߈qQajK#2+w V 1 M5߅6*5똾H c ź AC8\۟]83x?xՑ{>eA5i,\o~d1&TIB^=XT8 N٠@7(Ǖ05c,9*sKZ<$e ;  t$\S۴iI@5uWo0Q2=%Sk,+lZ,A* 'GYFqqK&\fZ%K9i|3aǯ*_Zs TbţG4Ǯi;xfb7&}O2A#nmQk~b FoN/+1 9iw][N܅D`vw!ּdO؍cL.9SGm͓_ ֈ F1c]K;eFz F҄N [GO8-W@(X}BJQ@ eU4:ez9r6 _9AaWXµ_IX o׸D OHv^q9\vTC(2wjFslEZzhk  Q=bS@jR-lLyUGtdB>m91_w!V) SڌLjBvy7VK4J҈d|JQlf gn`E3(y|lEqJH0_}1g->rFsCMjwƪ<BmBhŤ͔d.>yDs2nq8 oGQno ~W8OH# g(%yV!MN`% =ffsIo~aʁ~$*ɲmݠf,@8a'b`zQXHl#;R1[ʂײ͌g`6R؇EӸL%Cdn+pA__w"%+B׷!V;!w6YPP& 0%G p [ۃ߿?yyпz}Aɿk5de0{Bp>sl+&x$d1D]n~ō(8jB<r'|~={*j\xWHG^FZ.܊OΤe*;R vnM鸦 8G{N 92}|JGD)[;z}7i<5vd*_E$Ǥcj峌콝pSz)qdMuZ&e:G7s6ht /ή.Qfߏ1~c*U E>01$EcO>$+wO3~/Xz]`ۓTg#FxFFGu5YG\6%O7[@x*ܛ1 u|?TiމYE,aȤK;$l!/\q푋͒0/'U&fu8c֐Y0iYi5+!-twI.0"qÅ4C\w Ϟ>}B_b(s܆(z{eˉ꡽ab aE`h/M??!UysF̬~+:?NO_:WT0G4rs0ffmX"J)i9MmnD|ߗl) X `(N6Ы2,PY/F ɯFwm861+%[wLc_8mV0C{~s0g{OQVЗ) K-w3a^iLŸw/zD~K_vE" {1ۃ`?#;s#8] *::ʏ_~!?GȃuX%O&g>gBiRq)^gSs84)ӌrߣ{uF%cdbw40`54}ƘW^:d 7}Ry}佩[&1<]BJ;+ u4?^Hwu?&ڽ{7Ԭt s;f@Vm=wLiɡs{;E4N\6C,܃} w- Z΋\]Sl0$"CH{pm77YEW{eਫr^y`ʁDi~|r~!g)%ʼũ.'Tu-ҫsthYu{ݩ{_O%̭e% \tL8Vkv΄}ǰO1)J%0Ҿ8op%3'C!%3TjL۷~W̭oy]XYDL0KJhm+:;ȘXښNq-kԨ }rh%&47B^P\'?SHꥏ{(?^c zgn8?x ٟPs`_>pT48Ce?0,2I1u4 7UjۂutEO,L>dZYM7jL>Gns^6)iE7hbWn$|atsupIٖ%[^)$FyYL-6%+4C+ }{АzkxhEQ /_أժ[V Z9¯U [AletTqcG\T b^Йf%UR.S=|b^P0Jй(S}xlmsdӝTPˉOlwCo>&ENp5%&NOJ>U9Ẍi8td6MyۉsD4JpZ^MFBo_@s+SʩÚ:Cw~_yAZwkH0~bq7bNx~9A^$5T%Zi!|U "?dĕ 7- +/Tk~~sa›WX>?7y* ║Fpī>M<=Gh5{s7k,ydLpM)cw.%N~/s;1G8uêls:8,9bGg8IjH}/#Wbae xlt{_a~`guv+{D7F[zfu9R7nԳ~&x G5up?r3Oẓ?a_ ƿ!2c(@iPp8"@ra$օn_n2M`А6$8POh%!bAm!rmlkc1ŠƸ_j.dJ9(z- kZ/6ubAZrۦ8y$ D@oKBi;"X?7g)f$бmw2/2k[$ nO٭Y0v5^-WK# [dcb>%Oo_!pePaeD{'{CjtrJX*->ʟ8"]ݝ[zv7vUhASו:!><<}֚T D@lKTQmT^_N|eNn9L!)K-!d%pŗM)igZ8vʕ'?;D=O'Uܥaqumڎv{BEhx# 5ݷ0dtǮɵܸdLCS^;Iy5B_{{>z>Kgl!4O栨Zq%2*cE;.:L$ЅgXQjuι#0hOLaz W ڔ0pȎxeTye4Pqb_1p| Qi.̋ŽBR*x;lCŭѶyܫ)h Ƙ،w+v'#Ohj=m$QȖ_fW Ueju^=poH%G4LNYQE&} ^Ta0Rz[j+ Aī7t9>Yќ1T " FL5rFYdy.E\]{~3*,9r(h(tkޡT5R ,&Qk3u/jhW"}0 2> |9x7G~o{gcqG]D+Mjnvu9V.v2xx0I޲yr Z6lGе~y"qN{v.CZG*t3iqiB˒E_']iǯq ~O7U)S.ڗͲ/x?*6;fw |R1֓0=Q!i|뭣޼_) jl;C|6# ['ͿzDyo|َLMrӠ)#KՅv"$ёJ`D=|#CqbwUlPGb(%BF\x;x"򢺔~A^%¯|+WƑ\2>Н495 _oZUo>ƓgnWLy/4X,[O2`ao=qb~)wG(wӦ.%At~}X؋_i0mJ`tSExnT&ڨ^Cɽxk81h8[iXI#ߴ+ǡ.Z*H_aau r'UCIFaY} / [eJPUx(G`OuZzx%,X%^9m>LJ{&?6k&ujGspUsO"k^؛ \q}OzȊ K `[;.clQX7Q=ۯs&8SNA!f(cz#`6L4P"pE' >̂L|3M@"2#&;l@lɁQ ^M7z1tr6KRp74Mvb.P6Xmۀ ][8-Tse: r#.“lz_f(ǯs'@ݧr 7xuQ2MnzUB"kUGZNT?%;o)wJci|PT{w4&Q;5))"4./Ąc_W#kEl߅e9,&'a"o3cfWW$LbBIHDG!4p)[6)'Xy9Wxe0Vx_oףyZo5OZTϰ#H1зeP:nsJW=5?r`%=Fz'A̅cClxE%[]廣c]TRejt̒ٔ.tgY_=uĮF0Xˁ?؃"w<{~1$ϳDjy)!ˏ!q!/nѹ\Wrl2jSOE1+B"Ijbgx"t59RꡙGbo{#IA Ļ;4~cwڲmqOhw1X767F֏wBũ2j=gosGӢmiFnK|YZ@=_1ױȝx"v1!h<߄:ߺ[d4X0^xB.wk=TX֦7'xXn-zUՀ oklP4RŜ!#7q+q+$EǕˊ $Hg,@CJ;ѢS WhJE"98! 9piqINEKx naM#L+a[^6YG܂Уky{Ue42H,E.LpKChmzg9'2CKQR\u7]{i]k!;D|F,1-&^bԡrb|{I. 1)A_1, &T(]!a]M]@nul ./V"y@ʃuZlE'$#16=H`+} */fSO[Ony+vP [O^f9S\o8+[oMQOnV` 1Jij btb{߁^u c!uB\vֻ\s˵Ftpu]Il$2Ԥ#o ]4ttY*R[&:Eʰ5;9V|ؗ_e"zGMb;;TMW0-iؿro^sk[zGYnwN:dKΤpY1>Gp3K-_A)q/ &H6bsA0"2 !8* &ġ%kٺ3o{{Wu1lXx:wŕ~:uT/Yi"JaX:Fw7^Tߞ셦G6! en#8{-d[Iݟ/1JWe*6usHVxB JEUW^3O+$2zZL+ksIv p .e,ﺤNONM·EcLH oIx$1wŷC>:;*Je;TXW=@Ui$:tc1_-=̾dZȚ DAUyn(IGa_N#k*vB\M!6ew|}xe=ULjeB;W#:fCB!\:xe_tC[8@`e+.D{QFVfCf~]SGIc5^ לϵ*N@i8wNayy0nGCлN8tP1U%̝1o'!K_>'=e>csaX\}vQL!qi;6oS*(b`a K vEyګϲr~^km[GH ڐqX)$b7`Բd)s|u 'M' L#^Tw;*5O.-¿^w+iDJwhA^Id˰-WEt/Z&{EAQBюy#0cX~). BtꡜƋVHݿ] }Q$8ɡ Kcj`UEm~(08PוchZ8+ O>Mb!Zl taA E,N8! Q0QI(J,:!5#+o7Od|b--Th) e*Mi " m@HZ.(ZJt]?) ˀf-E "P@_KUE{&C'OFE@P2cm[Џ{(_#šK50kUTXcRkaTZG[@_nۼ7MC&#z)3飦sK/ QWuCwov~/V(&kqPסunZEr*ҧ+sHy[\2g_ ?9a;W(H\O/@XGdgU }pk_qn4^|ɟwBزr3wPiX# ^ΚqBa3 ibZGK`s*U1.Dy~_ uR7`Du֏4گYے&36U*?!z/C*11V_Jnc$ te&c9`¼8hܕ_D0[o(SA•/<~d~5 $,cG45Hq0m K T&U%eM <0 }P`V k(H.i^ Go}=gVxG4\ i]zNZaՀ7@U|ߞⷹ jf80-m) +=XK >ERMkt5-v|n?_%D\*av`9Gbĵ_I EO4<$0@`"*2`6&Q`[dL2rɁֵz\%YQҽuk_)j )5:~@p࿠YG`~vпs-]_Op@>yˣ^NN!A`{)$̿V8g9`--oJH/U]Cv&*SgB0,P{ƝKE)?G:m +8VZj` {ےL޲H_"ɹfG&IΉλ&Q,JĉhH q}z~e>09Pa )=uvXZyL],tW]N-]d,Q6Y~Α2RUp5,6[yq]lxc3BhڣrI.̿9kt`J见zzRWrngW3Uvۃ )CCIJunT˽a3Mdg"]Vǯ[OzLqa\dcJA|}Y gi.ww o$ ^N*0{(Z52ѯ9)R=uP a}z Hu ¨-U{b+w[N}BMs^=Iy'ᱜ#;$w|@?&b?vwv?G (I[K&i8(ʿ8 0n*HVf 22 7YRbD ·`M,Bfc _48Jl'W݂" tq 64(m`*z<\q!$Ž ~߱[ќ]Fs 'e=Kep\ iiS$mo]a 4AW b\OY9䷼nS]jQe.Ʒ3~Bn_8O5H6xy :P2SZ>^SU"n*˼E@|Ky_ˏΩr֦$ HzUt=ɢ*@(]60Z\@"gcf~4/XK7nzncGnnsUUF%+Z|^~8C^'W/Mr>DV`[a޿EJU%vB3~߹|_ckq,)8yS=y- B$!W"LfDETf=6"~]$I׎PCmz \hC)ǯP1wTUe^ob0w[!:>ھ} GqX5;݇4U`@b:c*zYXgWV Nrwp(?fD{vqʖtӚA {q;(>[v8Z]M.6ou!Ļ[~8D]Jo;MNVVLvV`ed2اxX$8d}!y~oE^SjmI#ЊZd dj蹿n!x|:kP;SZ\BcUωv/-)p{Q|r|Gw0)mwu/z0"9ǯ ;(5,/(38?ͦ5oX!O͎#r⣁|MvhM0)5+Jǎ~6 E;`GΏ(Z#h 3Ր` -,GAD;Pr$āq/~cHcԁ5OJ@zHg@ p ™`&1 W9*z3,^#@g>aNbٟ2>=[L˰c>6,ܮ!(Av v8ojʶKjZIFow/}\^O2WZˡ8p@  xiG,W1;Z폶_n<qL >*Ji.o1_F֣M}߱ysN x˜.N ldgPZ&R }<]ld>̺卤{)+(PK|'010:%ff շ=vo&{Q:o HTFJ|7I&73_jJT l>)QT/pCȕqf-.ޝ}$=bvdv|Poڪ|3)a.\ xNB |Cg{BߍQ],FoW:Y{,S6A_ɯQI 1*6sV{JavJrf?zҤN,b]BY껃>c{pWDd&Eaŵƫ'uwv 7EYpv ]1H- hO*ģWeތH qЋQ5kw0cciN$Y*lE>W, t{SJTKHXM#"|V<ԦIn$-f5nCݒM\Q1y79.CD`‰+WW^G_L@r5?/-G2ȃ}PrD/iUR.%_[O %A>$H:O'=O]rER[wh*yzWvzɿc*1@ǟrxjG8L:{5%Mo?Xp Sꏐl-ez#O)1ZM΀G&|\GTߍ'#=1':sU?(y cqTDo =Oz2{~s+`ۗ2JT[JOzHsA.*6Pl%{ H9@㕔uuAeé5N3HxM̈́XoIKE_nHY?zm fpjbNW7:k[P%n#ud̖+-.6}|IF]K|8ƙhҿxrKzo5!Pq&IzlwOW8{;;4~,]lǓa?1r5ܬ7̑d}h‹.['_NH]c1,D{Ť5dj$ޔ.O׋>΢,Zo ZK\G}j\r@N3QFwLT}~).M89O-aZQ6uhu#khZRA&F̼v0WQ%,g̖(ƓI;ɐ6ZK|k{.$}cH7qunK]zzU꾊VuWi/AKN\ ȷjnK7[/@arluԅA믶#k_sN@րQYd﮿ʡyj+|}Rngd$$e4\z@BlƁX F}SB$4)Հ4+up[VX ŝb6 |UzaDD&zғ¾-:" ks hEAGH:Z Vji5Jky*W ZowD( ڠ=Y7eY#icKɰaG \d14D1kD~.ëɟSvGXˍ^!*7#gdހ"}Km$=A.f̋h9;Ϥ}|NoEyD/(]0 'pw,soK)yn4eP i/JkB QQ YU2ӠL.@$jy!N>_ +4Ԅ+XG^a7_7I 7oI!1$@*, [LRQ(9t=4ێ<)&MwHe.CzK^w*4thd6$>gz4?/=fipͿ o(¾=(m4c @ot0ǤGW/Mɋ"_ ž-&1@Jidc@ŭm~rU $O3S@@GI)s(m_? 8ca]D4M> ;k] 1*T+VSṷ?C y -fXLZ? scg%΃t٫7KnD]w?w#3()XŗD 6& 5/Q}NPAx'sn/dA!WiO$ΤM yNؒU֨.caPtvbC~ۀ3~@%leLS99 ђ퉾s^%x'>gIxMXb8<4 Nq/;hóN40JlrޗՓ 2f;ͭ(ˏA,<" Yu__!#A8n^brAT u԰ApFJ&* ZW+{C nOǗyqW"balcxīoEaӥ}^Ku7̬3.٫. 8e5yٗ-(fKKM O`˶ (f{?M3 [<˚ݫ 0D:Ҡભ1~yVۗ\kZYR>[#T,A:"1S)>A4Āx:5llE狼 aGeYxX07"H רRS(VL{]D oKdXujC ߘ`j EAgA.f^gm b2_\UpDv ?#É0Z?C<&$5$n'.~ʾp1( >WO+ŻvdOo~L z{AOq`qzx9`"67T1/(\gqynn2ytqYhp|t颩ڍqx^@%1Q'cܓ&lŨ,M/os7O%$nwkHGeG}eϏnCN;]I9?T3 >;)#%QsT_ ;j AC/oEzѫτ&hSpg@M/ VDENNT UH vBbiʱΕ; W]oŶՏ١/H4ySKZ)'<C&,0+\!))V&|`!(jz_OE?^u ?o~52*WI%a@Ή9P1S<3IsOU -n>%<-9fPdsʶWᴡq 2Q]Ifj_ffB2]qD^Mz}#=;%VzO| X4Mķz5t2Aq$#Ul +OuXAZFoҹwǻ{rP%Tus #Zc}>^<:0UA3D8lp 6%TPg؍IaI[H,nhv0,e50 У`dIeIe~HxYW<*o v4@&Rkb7-2۾p^3 W|I(/,v?CG㟆p"K(!nO c#Dgc&$~0*==ﻲ%'bۇ^/-@s6mawj3plȀ #'jJT3O U|G3XV: 7/hR*l]e_v"StU/77S/UNSi$?ʓ xtjs*  K|˕!P:LN;_[qZtg I*w-a$^>Ŏ.'s?r ?Ynמuo ӯoKͯ6SƘǀd,ݯc,-w[nwCSup8b^CL̟=}Aôh|ɡȫ) Ax~tp9xroևL-;xTmٝ~ ǥ2lu6G=? 6քO (thp@pK ~m1FX'z供[ rc ?9Uӊw!GPJ?*1@§ٖ t:6_mzQ${x8 ߱zBX!Pc^R, `I̢6q*F{w/xBDlCR@NɀgN.>AY0^/Lm1]ĊFc$53y6YVL}a45LwPm=6we 3*=%Y4>5/1u/~csCtd#`qF(AHeƏ= ($>rtZAakݱš#78mw;&_SgO`w>w4e>>l?(¨3+x%T9B; #}hGB|{_u_}FZn /LцB6p_ vwgluTZOu lv  )]̃>/q vMY*ט/;cG"zt?4uW*L 畏8R?HfX\h3TYgN(&|b ->#sQuDw)yE]þHbCM𰎗aN,yH%p:Oψrrl]>gt3ICNEY Fq$9`{%?$ Âd ]ވkbw-uTr!5:U7=vԻ5Kq~λW߻Ϡ$ M9n^&`x*bBSfAnmh7`msa2x2 jN1yR H}ͦr`+8ҎKUa񶬓R? yQ4Ki\A1]Lhh%Xw(>|ꌦ )˴< @|^?H6f.R:>=+ێ>3wפo оj޼J\DQ sq=PZ<8Q8P*y%:  WcK& IkޡʅmDHB3Sp8/R/> P'˚{*QVW=qQe|FiHޤ&Yďi ;j:=2Utm-7O@^pk Eɛ)fl! MVy&w!6xO`<@o+x=<Dr/@J+=gٿYW]dg#9!g 1`IvnYa_4=d_oW.SN.%:5X ylCa^ a]k[@ l 3Bjݪ{#~1-_bfTxs={~W0;.B )Iݱ;8 #c :3`` O>B$ou9N%|>⨣#}Ds W} N j'#>2ŸzN>pϰ/ :r}( $pcY&DqMRv6@ϳrZ¸cnvA#mpfGۆSy鈾e_Xɾh}ߦ7 |tumw,c]yv%፯|G&lۈ't赞k߃]7bX,Q>x-,X[<_‘4k#n.S3Ýl4J!A'=4׹@뇕7##4uʠTW|=p/D~]XlULݮFOd,dTA%PU{9Nt^L*Aq⦭]&Z/ gۿ3Mg4't~L6O2a8L;*T+LV)G:()fHcdmDž HG# 5˅\?` ]hiæaiզ?xP0˲N(TmvlKjur͛JĬU2mGl 㚸qpnZ&YcoB2+n:I$c70|џQMU7yJ&oCeg]ܠo"UxɼgA;zSxZ}eg~,{_~,!-{_ } p~im.MPʢvn9T; \$#-5ZK1ݱbq0xJ5 ԇ7n?9tVFxH_3O: >EdxVyA!W9  -ÜϪdԲPL׿T00\Ɖk 0Vl"֡(љtę^<^u5)(ŦuZ7\J4(6 #N@W9E ΅9p9Z"6X{-'+l$yVh FG3 0;9m;~=;(' =/p[9c܄jTk@2!oNs-đ8RdܟPxcNq:}]O?{z! ګ\"~ "[oh"?2Ȥ~#TGhFMXyV:rh%< Onɒow6}?K06[S;ZzPxSt]h6ʇy?oYM8]v~9$o W w.%0ɡc4? _ _Y-vA#8Y[N(#؋efܴ {6Z8&ϙF7"R(iUT|8Ș? =sƅTrzQ•q<#$;A~S\ LkЍR4oрkR:wY+ˍG:DZ2Աi>yrMTC<=3]iU%$.7m}Ԏ^,(70_oe@BH2D3fF&- )-CzR/(u#lj_'`M-=Xb}Yћś!sr_QUL wP/3/0#'YERĠꑑD8icbyvFݡ Sbw[HћKY%^~_Fe J>S+Ei,*GjKgR߄! #[J pou˛Қ53uꦧp*=O[;"zON.3qbs.!y\A2ilqۯhF3+1Q$(G^E|?SDDD:/2D2ű4el\ K[xڐ0ҽ\{UCvW SQEM"XLLf.A,fB.f0i}iqUH>I0x`g}p/G1)׵ᬆUعۯ%7Cguww%Qj-/{$CY&Dm]tn>=ЪH<ޕr0  EVv&*m`bvjY>)E\3H-lM"˪z]Ԓ.'k "@|Z)tQwj. {Yw8+ bax `JLEX^ vܕ]uT,L56m=A-ywcUpƳز)x^r{4jCw/l_Ӳ./\u ujeS_xCFw0BCq{H.X~`B"?TtN >rb?CV'";MOO>G <#3;H|O⾷}8E3e}\}@C#>?3ϐhEvߌQ{;AWwiOѲ5:N rLTHnw /c:N8;[+{-!6#;jqz,}M*.;M ]-J?`$X>(k)cņq,-\< v~3Q#RǗ.MYtC$yo_y>=|?z@[=ճgI8`+MjDx}ʹ#4_WlfzIHgċpx1*H}[(6u1 Dz)8e7hcճug I_)7؈}ZZYЍ&hq3'|9[&-<_9{C!0xyNZ;". fk6Av,IRcT.p6W24Pأߨ Z{tI3V!4OT/ySeax:Ʀw"c&1S۩S|D넆N=W<4P ڛh|띗hg,wT!fP܆ ܌y= Mh.|7$ja] ύ1dp:kyVOAVb[lIvHJ٢m&ܺᰝFr jo]!4s: ꂗO'bL)>8U">{9 uۍֵ'.\p1*TѰqY O@ o<;dp,҅MZ^$- "=KGO7>j{A,bYgE`<z٢ (R0`awR@5ό7o\}Jeui~E.o*VhKPҴˋ)S;'iL{U:dag> @(oݍ.1,Ai.Uɩñ!K(V^xOI7GJ_25r&ZL? ;܂) 1F(RR ԇ)b_|AN1w$JRV ꘣>zG7(/GS)Q>tMIz aQ? U>[MMgEGVg~vyC!0n 0O{knϷ\B^QpRdc.$$c6D_AKu޷2sQKcV_n}kCǕ9 WH o ^rՁ.Z;DxJ C4,hIO['- M.յ{8:nN wQƛ8K5 !lYZϒ&Xk]ѻ]%Ce(Tw,O$KW87?Za3yT0qqPGB~W8Ұgd4FϬE;CU~ژ2އcvߎK׀KP.Niu\3gC.zϚߌI";}S_$У&s.m쯻~oE+ Pjw LXEcj +R9EuS9u!`̨GgE`Z|DX2=ؠG2vYGvxy7'@IY'i|<Nyp]4ӌyS(!(xZ=/؍4mA$` >JBrj18^tx/"ڲWry3 sG'eL,5g)#/"wܯ/ޝ7noݗv{@"CBI"p# ") t7߭DDN< ͏Cʄ>St:="]G|4qާ啂G4N=$~SraQI?Æ$qP  EG[~>O`w% ǟ=r<ᣁe}Ov0=NO=Pr3/Ohw c c7 _8 fG0kW48"<1o ̏eZ_ֻf}=t=dAu:|{P)(T~aF߂unj@tj_x_UAinzuk̟!VY# v9Kw Փf.W5RdaH 2NcA,{IZOf>.մn];&"`bIJ y6LB O}u_32"a+n9aـׄ` x Ut6y]gu70cƟ ~!돼Bo8pZ9=pɞBO ;W?A|[4xJi +vz g%캙i; JY~}h7UT㱛gg&Ö<<ճIt;m[P cy5|]0oJXY*'P_OboMe)W$S9pj_TY-/oO@(sMres B.}_ξ7M'ޑPrwPSC55{WD?>S't_i%+y9㼫Wfew;u_%2 [lEP2A\ZSl s%>l߫>R:МH޲\f#`{ڙ4w%KiM1?e /EӜK0RGEUג0N"۰Þ*>:1jssϒڙW2O7x ~)ncrW {lRz .lTwٴRlrN3E;=llu=W Kcy Ĉ#:ْц}Y[ta WVۂ-u&! *+AA״y U2ʂ]DEx+N9јsvL{¤eݠ-vz$v 0`DOgx?irdqI /ɖ3HGO JU cUt4t-"}tgH's$sN0 Umh^p_7\;'iWZ7eܣ̧:͢=շ)49= QzڦuGYpOR=M:0j,XtHJu!-[̈́P kN<t9[3F=.L^'#eWxq"R7hpsSCEhm,|z[z{:{?"ƥ\z(<z4n6j@zR "E.ƌEH rC?ݓ2z~Hђ 9\J"npѼlxݯu)NF;TތV Ga &ϭ>@p-O;0ຒF"(iGCo-E>сʺNNGCw@=_1q[pkQ2p$a|۝-ɼm~o'jui޲ťUpd yت.F+ouP9E=!~q*L#€= }+G0Z}5ځ?GU?CU?~Q DC$$é#5EpI! Qhq IrKzKe>QПh t~:Pח^EԧviȟP裂Ice$-eCP ԑM#'HC<O'}}Rș1U]޷)A]{rFQ{CUCUH-z𿌪u#uZP*!5'ް!MF[@f{t/$t ([Ċf˿= qG7RRDשԄgNJc=<ѧ`LggH~CIf'eX!c Xkl"7jdjc()_#e ċ`zNT#/”aɃE߁4'}רt&_UlZw54>S03yޟ,eurSDÜ*(Du^sTX:o7X'sœqjlBvH;MoZhZc!ݲpwK~p^'6حdr>ȅܸlB.5ѻ ͽoߊeOt:]jSh bK x"\988g%F-NX.Vٿv",3rˋ: O9vMQl:Nj33\=%ɵ\-]7X #nJ,~d.ݬ8n3,`M-~no*^"hi⦱Ѡa"NA+JDb(ܨv$UAi[ܑyE-HII'>h~AZlcÅz$u+כ#<:vؓP=2`^!R(7ԣb(ʺ_Wqsq3u%lz<2UJ;CAR{t"G =m)BWϘ2&ye0.]f/ؕ@WK LK'6{cY"xGuv֛|4[1zᝄ $sx7h_TImN"'\bU' K!UM[tcsцm :~WP:'~U0Om"3 HfU(d L+ }5G-q))V`p%QF(h|ǝ8mwN{^?/Ɉ(O4}tg839~ D1C:zBA;4$N r8/OKb B_^F$8swQ92)GMG*?q؇=N"@S,+*;޿g/OY!82!xgQ_Qfp(9vXsleB#o^X˘f@qB-N|kweK{|#&M&ǎ2N=/; tAz, n$:rYB=7(nY5S1M/ ӎzC+ Կd.AgrukJpfBEU5iF37]9=5Bf Ym];4^8-1yDVQ uߙ+j~MdY.k !4Jb ݂~ !ݜn5M8rhaħJy#giǰ7R8I"8&CN$"t7{0~&0z7SýL_>^`t/BMIţqiTQ}eaΤ*ڋdvA2oE,}F鯭ѷ̠ґӱ_1|Š_i̠G~^~}5%n_G>̴d⛴%W7iKT\-=/~"I3n#)Xo.*bRM`.vw848\3fE^g>(/_w=$[sxKSB0D17FSuNIgXR+$S"}W" ӣ=qzU9 QSa0Ox9e4+i LE`⢸R;0k o$'du, zIs̿[,pwgt(\UܦkŊ /{̤Cqy4\)uW^L)hA3{7j݈KĦ;yh$OD%~B"4L{"}7x8q#م#Z;Wđ]g&ywA}8=}~zˆqTGs'AÃ:=owvg~mwgZhPvE>Q<=:Ƣoh!I,??;XrXϻ %9 ӀIH+x~s;ma :h@x9\pgx4Χ񒯒M]09io=):dK G(m3d_`A:L: _'CzF2L3ydY'!0LqBzN<@5v#=ɽKZZeKT010*BQ|8w~re nK6([6rfku<yxnm1<;L YOL\ŃCOٗo1j{k}Hv ?ZwfU~c71!)$Q"IFwyA0A~?B}|CϏt}Ic iĞ=d#{pd\>GGv1On(Vaɏ<(р@aO=!0ΐO\D?QԟGZncUv.Ma6fo z,~m;*bKJ-;;$'ghǔXov;!1T hmN/nW}e#?au-$N7Yls`1 #_h/yҏߴޱx~x;}sL6k=m%sBn&aF cBFg[e[-ZrO(w~̈nJ1Ul,YVz0.z10Jnh&PdW ΦsԖ.ݦbR©&4׎4|zّsƟ=Z!Z>ZkRCUkez.ڶsT3|ƫ$Q-L}ϋΊ A0.)}aNrkfʱqF構WIhFi<`Qaf^5 3^j2o4\H{uAJ/X;\B6Mqb@ݠZ xo /p*AyNiʑS΅Ow6% ^Ha`w0.&N~,FFdWIY+`F*pm@2gB,Bnx#^mNɄ4/޻`{0S ,Ɗs`8Tm _{5+hoͰPbZ7nSZ#KuBΰ `3R6*-1B }lwQsK\xS\ʓCΫR&̚+Iޓ\ӏqŌHgUfxU.{X?yjvHinueT;l*rӋ6ϙwYc,3bp= kii`V\ 6B@q̳;댴&ȶt8).(cW ^Zs|rSK.Itߡ=7&FgUkmHxb\t870묶xҒ<#N&X_Е I߲WJ~' {NQMQTf HyXWF -pW4\)nnDNhw[؅ 3x3($2h;_+we3uIgͺx_ڟ/R4%q h=F`@q d\Y񧠴ÐrjGǡ`ӟ8ĦV:ҡհ!CG ;Y=&#%j*_`:ꀯT ǗW]wp7O$/Ƅ_¿ބ܄AhT_ğ 'DÖ^C抟AeB@iU/]dʵn8.v!nJo veSzĨҧR3cHaq/av"gg|8mC6F訰AV*:- ċRa HH*'Ş)7 ߔP9TT VxFKC(﮻\^j=O&JtF Ь1%mxsCVc[ME7 ':xNzFj}N)Oڵ E XЂs!0i-ZHB%Džρ0Y;nCZ\ߏmHzMg_`M\K?+rv Cػ>͛TIә a]*q)C6S[iCgs3|B8A/Ӌx&$geZb,H.m`ʹc.7A3 즐aVYRHzXBǻYQKC- {tL(xG\,1hߦ(NM#.͜$q H6!i:~KdX|{R.]< ?I lpsgg7aP8ދABSLLdU^#ԃ ?؍˻knYpve=N`irC/exf_ -q)H&6#X=;<. -XrL_K+{J>6dn%p|zRe\RlNK z_3I2%&#/ƪ> UԫFnںvf%2@6g`wT*& eX^ϷzU8eߠY4O}$R :O%IX9]&lWrR!Ehխy>* F3DBq&M]]\L5k[P5]啱ʴPM[%"gXLXJwloh8 `Cau3)qL3vHPY̖d<㍃Ҿ?9wk01s_s-vgo/0/ۉ/ !I`$C8ER$N '<;vtØ<02$]?ZR5yj;RDr4z}g2Ge<H~ iE}ȈЏO> D'Gyp2Aހ$Dh ~Ófڈ\jrˏpb͈i 1/ \Mj+[׋  Gd6}$=hF{<]pve~_LJI;.DS~ag[X˜؟`?M&Wn+x02|䐹 u9?6;w6T>KV?p}Nk4#Fz<jHΘ-ʣkQע|"HEҷ_ח^7to(H:&Er։sBD=S OgI΂WjYK!tֽV,p|i'==GQcۢwnexaKpMtrQ_d‰pҤlTP5_eh02ֺ&SNwAw26m_Sg]$*젣#qОVo)^W1 kCObh\w 90([,ZB!ΰO,\[_Pd{ÑjJ _sjF,ͷ/"n;]IFO4 #Tfd )Mʢ6^rI+uK,4ׄUA I)7cͶ󣷗@?sniǛue`gFdLb )>Ay:ʅﶂqF ΄mqMrex}mSP!uR4LƓ4U[>3f(c wRCk peIeJ Kd"ys;*>@/UpB~S@Y QŨ-|{c#xg1#^u,!$0QJB+Npj/"E` !O4_$](2ݐ\oh TNW s3``+Lȹm$yb Ĉp4m6'u}X"NQ dgÛse5HSnDw"+ ~Z{B-,y>Y&?~꾎z-B O F4zjY`8v릤Kqa^M s( ,Sυ{{-Mn&N>$cI緶; d{ȵp*l]C@yuV+^[>?{x{:;!7ȳOuE֬Xo*׋|Z?ywEpBIB)p%A@v< H@Zh,'Llv:I9}O-j׿˪5AMet+'FRLM.7xl.gFfϱq ާ׀.Of(#؆*b{Aՠh+4{'dCCF7{rYOgOfT튢bX,5i8(엱o%[;Ypլb7"ʠrS&^>N'f7Orۓ=1rp^lm".NsLzQL}Rvݝp/~ި5܈8=A1h~*M΀=NvciӸG2tvE;Q݊WWN*|w־&SC0hg:=vr8-j ݊, v[f[s)f<^i߬kk3 )Q$$eg΋]Pa43}I-0; FAf 0[2[wr0Ab@qqMB٢v$~ %[ok$$BnއDdѭ[9:@7tnZQ9K+X/7e(ߙTlA{;܋~xKk^O6s[&nT'u=۲)&z;R^XTd`|5[PQ&aq\_}hiSnx|h1mpCG)JK мbk9-!ؓo y2-mfpuBS6ޚ{mq⸧`Aصiqδ%OPw|k=d6mDWULz!O4"}za bu`5B}>ˤ)evƾDBƬܲyx[|ƒL#5^1.F4 VA'1"/7 4h9i Shktf_nA ёo5En欏ד|cd V.׎0m(hVrmmtn]k32or4j/D{ek٧YcH Fс2y\8ϻ/h`~3ڈ&Bn/n?CQ֟bܧ12f, 9m;hvߍ紣m61ƓPʯ8G=L6|{煁M$ *9(**w֟;[N` S~f&C2`C؞B"Ku!(߮ފzaB6 d_[ٷ!;O!T +')u!1A9MsRoG'↵+f(ףsayQGJ$pZ0F#13NIy9ml\h*dK< TKނNM CQeNhU雩Y!PbН:= L&eyn j<^[;θrꙂȩ>;z᫫TxzC٬: Iy+@Ƨ= n+TT⸜h}Y+hShOubqx>DxiLÝ{ONFVj~? kYMh/v Ym^Wjf*:k+ Y&VraQ\_AL9 Sy-DgϦoH'H$ew5K"^BR8=~U7 ʺm\*ۣaQVfIѻy7p`w,%(EuuV+&!:Wn;0z;7j¹P(ϗ{1ƪP,%W{7/O2^Qt"g2Vr`Y{%.BBsvl_MptE-|vuV=~TazxulJP>T3@mUAvhx'Q-pGU|xL铊)I=u0*1 |\&>nz1>boˍF"qQE/u"ZMԷ޹W8D+Iȟ!,sZM73n܌pk iQ4~Z_咠 l3]S &F?bA7_MXM>|ߪwa[1炯!p˛ y_@a9F a['aa9aGX.B*%A<6FşRePOvl[wWH &`W%vTʐ}Lzb8g% ,/.d,HEV/O>}x nLxᧂJ`_' # ;40Ho#S^:^  r$x<]WzE-[b UĞ&2km#HHE&GϼFpd'T) (c9S L" X=!LG"?37uh%-pHk{(ggӦ`pZQES} zq^jErs&~?ED lm] pd!'"4hdBTV<uTp3p ?985g:H UENY7a |}M&ߏM~a[xG_SK ɖn.ty :+m=#a\҃rX.(n`3 0NE׈*\G:3yOIRqx"Ej^>#u0Q\@4c)(׭E 99@W:s~uMUtNBˬK5N/qރtrѻsZoN~&`=ʨ7p+ a*~} aн'CĢ;>dak a6VfQ%WRް@IAYrwd'"Hʝ7,ܲ&E5)s=~Q *eƺdpȐ~+z[UQs[KUzh]I, > PtT?ҀcoOnOnOng7lW;,_P%8>n ʫ ׂ.IH-#:h7 ה<ލ,MV)iSHÞm*;ͭtJmHr6KS{SҸ}^( &\$֫K8 u%W ;Vw<laaQra߼+g[cC}}L q :DQw/xlg-vԗ}È[/UQӕyo eBX+M}`՛WڻiߞQ Ci}B N̹~. jbGqpbEf>)'>^u^FݮG4*S&*OHb KOY} ^S Lޗ/b[OrhA]?P]ǧ}vr }Vԋ:XGJUx ˊƙͺөB<?3 zEyYZ1z1fqAo@CosȆ 0yrzE-;=)ͩLI2 {yqj;sCXHYGl!^1E%ɄuW=!h/P7}*BC^ !Y7- 9$D! RB6T:k+wxo7"[%po_Bͩ"w"i0y <5@7PA_&C`cB[*%"l<Ѝ=^:ru3ئE['68EL>+&6ZF]>%u}emu_b]*rpITv04.N3w.g^ϝ.?oNGwPʲty_:]Ky2a<֢VzPA>(e;6e!]bo3]!!l>h]A1}jkRXYKa |X.F\ӧ(B|NEl Nb>Fu/$}c?[׫Nݔxl^!3p7R?c 4 %tsY<Ϥ|SPd4ӝW?N=j`fi75?otb%qbb 51Nm߸gA|J%j `B/K\bW\&wQ9Cc/Tu>pD+*7^ ?NH>E 5)N  9$tN#=D8MHN:&]SO된֬:#*)_>vIP ,`5D 64;G}W}ond H`?8FV Ib/ >[IB:5 ɽn~lPP}" {NM}nD~E vɒ]6/>e ykH E{mi{ڸ>[䯊ȿΆj%?),Imt85;؊,*u0 ov4lGWT06cT-0|`yJσW;jC`W\U#SnlӉfM!ܬޫ)q-6 ,X8))Oy)dzR>.)=LyqDA$WSRd +"YzC{}BȫRH{Ah.~n0kw[b;#p|ĺmVfOx{7yg&Bx!:'\ Qv׌Ƞ A!ay-rQ]zth('Ty))Ĺ[{ sNoZ@bx+XH5DBZ" #U ~ 80˹FÒ8^B .55k:-Ɉԅ 9&HUnz;˳@&̱H×>/ Fc #pN)sԈ"TܤNrmV3l3̳]+qY1􈮿Rg ~'a*B@8+'$+k2h&_9b^de@Y [h $屷W-gu4\WS_U.}z t' eѺ+Jm魚t4 eg/' 9WZ]4\ojweVHFhZP}kĚbXyl=-[u~B \Sd`H.t ½8[fywe|eR2܋S* }No9y#m 2H%' 5Hu9MOYB9L'*؂ Z0ҮW&Ǽѣ侨>CQrx)ݚd( ;jgf/*s|ʱ {8R'+?b@FJέjɻd|_ p1G ND^m{ <_jLac>b)qXy"ӽ泮RL|[}6\fr:ѡɝ~. '®ǘ!&AV#4:b>w5J1:r:醿 40Hd~~Xh&R|rc~³X1p$QEa( )'SJO (+ 1>ܸk |x6nhjQF޺҃][Vw8 vЕ$ *="O-TH1ЖH<lIwDm'{BlXr]9r]sBY9^,vǬǐ~Z~Xèѓ+ӷj ?[;}s=nVj ۧ>7I[> og]XޅſMd91?oE]Xܾt{Vlc!M^Wu3{@v{Ll߿kR'|]s;8fth1a $pۻnSvPjmFJ*`H<.@ ̀f:p/ j\^?"'=?'?InlwڿJxljj$U \>_;ǭ+ܧſ} wT ^![»:DBl)t$k/l:b48v AF[=z~:H>bb v/whdo7V991pgyt`sIP@[Aj[*)kw_ƾ>μO苲|̿Yk^ܲI>Ѱ ^K9L Wę_FgS]PxtNۼj+ѳg)PUQg$&C*sgfz/_Qkp f;;ZXD^3DP$'w; u:k4l<>; bq6`:^s^8<l22h,񬡵@Y^Cei\fa C `N@f^]l?#Ȃc:{xhu*}u 8̙'pŖ -bs6g=d^Z~ty40޽47L0g:Qox&"D>hڤ6>7ޜ\u* &u[ 6s^>^'KX^xt4Pt%q)QvJf~A{xyI~MEڏ~.6K>zɥSg*_Y ΃]X9-z/; O%͇l/[$)o3(oڪ͊۽}9o7^kz.ۿRڄ76=KD@jc ptcN!z lWr<{nPyI6j6̐>]ck` :룭@Nۅҽ"Bۄh;%S|M20)OD2 5cpnu)AVytsY~ȡgd5a^݋bl.׈ {ٜ!y󲺬"}OCpZ`4?d/e+=^>j[9Ӭm09wy=iڅ8Vl4ӂ<[ [݀&S0u$?DǺ}ثs_(Ό;jU2kƘK7 ;R~Y0I{0许m%nwo_-?Cz8ш|p|1:Jeĺ~}yޯRI*6ٮC+ޞA>=〇вcN$9i)TA@;"!P1eZ;m텝$xԫ{_ZQF1?IoTc0bi8r3ٝ"_?:ryׁ_ZSuW09{[ \eBK8]h!5\=н4$/z nշHpq8"1d"yZyНA73+׫8>>Eю88Ҍ$6Y0& P1;, ;JhMou~1%~-gBp>sFdH@%K ==LخA-Յ O ̋EJEQlռQ 3͹mCq=/[7uKШ09 =j|?d>>akQ̶HLxoC_QH31Ӳ+eV;l#kGI!BNt:륽p|W%0w4CW(^ MۭZq5ʃlvCnk7DP_$%D;:8R(a'Ы!ܡgN슑0* t4wdo#ǤΡ`CM50;(Pڨ')+~E<@\:YNP5o 84g?N͋x FvyR d %0<N'ՠ?7 |rK"nB}Iڷl)D;!@f2pBn%6 1K)૽ht랓8x]Xixͽ{P#(͉m:FG{>alctTX1D{Шva0[ $ 0yʩm{2U=bkMTlZ%>'۳GH/ "IOпx@A2}=D+ CPܒ ~{Ip"ΣZm72ኪ+4f4 J`^ W:cC2+R+=ƼkTpu^%i>T0 lSL )/]*c|{C!~ސo߅؃|?hC^wMXW_k_м3 $u4 ueM< sٽ YcptAÙD#Śe.Aa>b~ dˠBPV$.Z6[9HKgGOq˗Һ@ &Ftej$,V䣔WI\bw $u=8  W==gYcԙMw).aRf%ُJ8\(v!a1L@GszQ(d&0Mqp!}n%^VuiY3&n, Qk!)$zПJ\愄Nيb[e8aE6-BQry$%C4 'm`=%l'+y)r s'TRA|=yXFgV )B9ƭ{>-<`33!k0D 9єR+:mo3m}*ͬѵc 3gL"ݦ_rfCVGZv7K ճH'4l+9\ ʽC. nj PPqsUB;Ȯ0pO:i %d+2z XDZr%d9Tg2 ;Bْ|q1x2J#!|F^w[Ո+̥lS凫dW18K_6'HB_6ј@Oy뱘ƥςNX|}ϑçԺ#XS_7/e?UO}H֒><ݔܓpCƸ^-o+ (&Oa-n-uR j=AGb[>6bdfl(E?o}&Ϸ`k]q8mI٭8 {ې ql˴M=ڒ{! `3m~PBO -! n~"8mEp7K@>2[G p m7NV}Kn9Ǧ,hZ&;'6}~ny?L, Qvo]d{F> (>ץ|mu\ofmzbwكpe]=-[>t߻r?brI~Vٛk8ĺAʯҾgg۫t6I gM`J?n쉶xG3^|4Y끫ۡxr-WS(cr|I5.nA*ä"r\ &)'!xLw}`1]h.ML"@tѦGY  s& dW:XխWj-}7\M_QU3U0IL8EP J N8?>-6}c.%xBMkR7jZxgiP p'U"ЖFWxў]R&a)|3ɞwխV?Ăη*qȮ{A֋$t`ӭezB6;}MOhI3tMo5`-&\(S{knywmC!66j6PmJl=Ug7jtGe;yluٳ_r&p4tU nZ[=\67쒯w&3(eL񝷚[ \3A,-1}UhKj#s?]GՊ|D8w_Wq:epxS5yV0gKgA] |W(R,NÚ5q*(U$I ].DͳJ6"!3 \鞀X9\Uԃ|9K Ii+;R*!!8DΏj+ MF&Ԧu8: 9WDVķ^ރ8&̙A_ȀI$<'<|ӆa#/* :t].q!x޼^":8{MoY,{0rIi)ZhHax#UGS1͈j+0ISdf h*-˪9:* tFyzM3"ͭӣ؀hf oS "«n n]p; ~R=#RfK7#}7Ks"tfy5zb&NgA,oamѓ>0 g3Q=#д>TvtXv!(]ˡTyA9R S8A1#(L"(R(b觱%Տ\P2Hi!~&~8Cט9h!羅OC%G#eGӊ@GK,9Ĩhf|Ik1ɑ ʱeG[ɆWipbV?uv$ t;,`<,I5_3-l hV,jſDbijE~̌y9*/a|5#ӏp3u`>GT@bʳP$]Z.N3VBsy4f{l8tCݠ]ME~T IBx4kgtH##^FBؾړcIMl@DZV+n$7RZi0fS^E.i|ժLVVYg'[񻶝8cI!:T! W%;}uCQ-:(:U}"Z[ڗ oRyJ(&$_EvOǞ%̠P{K10ddA2lL_ )~/cp.UDq0^Z6c3{N&h K\%o*E97xh.>ɒ{GqH'Ǣw1 $-T oh#|'.x;+>WҞPY>YbSӄ볔JY4~iJ UAM43.r>X񫱙pPFޜʡ\1A8iy㗑J`YT #fn(vb9v11ßލ[Ciq) DwAn?a|GJx q: uUڎ %*8xƎ ~苄ɑ-yWA>EpT_ *{S>z#7{=c#!v:J;'S3ICYw(PYK]SoM0w(;lݱC)Iy+_HҬ"cj:xBIa"Ћr:Èʾ%iG!ȌIWB-x:=>L= 2nPAT:GPV tR}ߨפ҂c.;dwBlP!tn7V~o PjƳBLgѧU3D^=*ҽFP7JpGb9&Qʹlhw(!$(8(_xGb`;qo|fLY&;0\|zS}C_:~(Ư1lGPFTk6|SHl:;mp߃;?*k-A|KOxz$^uwz͂c+R aELNjo6TG<ʻ6mpZli|w+9cҴkа  tԡK-<)jjF)=MσL6Yؗ΅Gf=C &xJ*Պ3xi^K@4rv0 ?U՛?Y:=nJk`uο]3;lah/#tasέN=iY3ZN"_3f̀!U``x)^&DNN`ZCNtU#F7F6~⋧칤?k2\8Fr-[x %@N1T/}{tzZ52T˞h-7>Ŭ@5]ȺU>z0950[(# oy>Ke^SAoXSoRkpI"RS34huw^ϥ'e=4Py (uMf X-e<.ky5z/Om%jxV=fUУ$BWg~N>X ^?q:1|0hc e=L/ _ v<=}`h{GPx4qn]_#9".b>- a؇0 zv0}QH}>qw䣼}4!4a?tF_0Nr[0lϞ4x@ݭڵϋhAvk MM yK9@P"EC:] Iɉ +@31F!봃9/@%ΊٵcaP&7 .w39?R?Tnòe0lRB F|YSF,N=wt #n/ 7iju+rWSȻ摷7͂g*-#sg]ZQ~^H20L>NOT>J^AF'ua5zX`\jr+\aE:?.S) xM~p 1v}嬰~P ~>q;;h'EGnmtDAMG:l$_ۋ{t@ӿ-Te~Q2_4l E[塍qG}ڃ+h>Rޝ"{S,o*{¯s ȣ{gȑ˶dپzfMc5 GWN~_?y\&Ƙ YM[6mUZ5Ϗѝ}<4X=i 2WUu,jaY}4@1c$呂OYVqqU +7W -Zl0_)YڟI;e H r {DxOP?pb +8o9~>[=/ʃq1!>Դ_s˟sFmWwlg~a>Qį=j*ёOJhv1!d}G|Fi{ܵ׻aGs*"* @)] )Rب#WeHNoެMKZhofCgd;PjzzŅSU+b0H,+24-P0v ȖRE3u&+Ljvw0,;8w)s=Rv쀠-T\~/N2 ro`zh' XL`k'1oA0xG+]D$3/$\s’ZtdV t/V 2D›]ݙL8SIyw5;IHp%VMV4RNӢ Tr~}Jq_dn n8;z_R<ᔏ^ò-S;!AO'n€rBߞMG"1cd$[S3]9n[͖:K\ֹ?EU\V{j_`UFl /uZ s'TtYW<$Cyh6R(6!)μ9RI& yy>tr1o3h/g}%~9MQY_# ~C?_0=< "1F 7{4!Q=gVG8hN~ 'lut.P#dB~/gp2+ı~C[X`b3?!I! ftr\{C 92F_Yg290#J&E73)1*fEn~: B0 ^6,\. Sm[ }4j_=X*uPh_Y>oػvB5fq94X}f Ҷ [z?1oY/Lq^WAjv®D#Y&sU&HG.sK(7祦&|?@[%yBӅŎ4{D\^[D7%P w%VnClS 2+UKGݕ˲S9 Z=V,ӄI's6G;Sg6e5P}HQTtuer"T͏!܊?+83TKLn7NT0֘o *m/W:2vdwD@?*&!rð#7 &`,K-sK_ț@ yjs(73'0q,jIys: @٬Z62{赕2q(gk_wtzsUJP/^|I6,VI8RL8piH(jKOB Ɠ gIsDaR5%O<75.}f(V9`$2ӡ@T`#eS`:k2ng6]^~q[芼mn.{%Yi4IcAsl$ZjiJÞ\dvpjLDAoNtJWb4ʵ#trVrE*lF4Ziqiʖ׃NnUH>nnSY /E$`'I(l^2<]QHQA2X ]yw~sTŪbKeާ.ϴՕ:m7[nz{wꔠjܚ5G,Dem~qMv"Tjp_1J_*b^p4.[AG0 ha"04;WAHbȧ=(;B?!LˡAn>DOztxs_wv#1l4~H}'SbGi }a07x( tQK=TӘ/_33ς%5/LA5UL0J{>g-"Õ}(9vPIv,nًy7|G!~9+B`7?o>~ǷowV?;8,.7ďD#\m?Vp, e/eYLE@%^Z{`VcR[*Eˢ 0~{_4>G[i[h+ɽԢt-qaB#f!y® +6brnC=VW")`cWm'!y}E@fM*+^O ȈEջNVp'!8> ') /CU 2 "ST]62<{ZD.R9%Ҧ2gRI7ͅ].Nҫ=d}B7;|Dž}+{ = d5 ^n>]*2~n<]څF&6' :x5nB$әoNٹߦ$q@?h,$nb݌&Uc V/_y:7H%s$OPZ'I~fvkU"; MXH>0&+͜LBW:&z2 =+a{G2PѪM]egÓd+DPOA2eC" 9h|?Xs:"bfB~#JhjWi\W̙7w" ʔ7^QҊ]D'Q|a&nCyW׿7"e!a1`c$a:_Cg#Ņx>УFŇ;FcCa (1Dɤ#_h >U xq`z $ǵc/IbX6-#bC'sĿ&8Xv} f_@*w~yGQ?:`mO;9U]8^pA Ųǘ>Jz 0 o@e~U :!6n!a  =?࠿y|=%䮝ӈK󽣄3^zI^T, S_!I vGBBuYI ٜ1%/I^۴h&lZxQ`^%]Z'd&9y_&ĵ[Q"Q}dQ'v~F~^ICj);4H͹ȴr "Uf3d1z `ve9ܘW3#)Bgn<.NyuAI\9dd0*?W;;@t )gs"u%\yEMq]뀀 - kf4PBƦZ-tzSٴ8CzodIߜ5=W/1\6MAIswE0f۾i]`8iEel'Q<˦$d$M:(B7hdHe@|ծx"n|fu4.ukK#޽OV+ Vc0`;#2saQ\6^c4GJw!L|F5`YUr ɵ5}pt W_{sM\x |Y!m@z~GZ/(o 1)]L@Ÿ( 6`2y۫@ק7KH'݅ <ͫ_C $@>l! {ެf[}@cY:3Oԗ@G l#48VfLt_ݢA4zz 8Gy,?oU|9 1>))HIͿKIIwN埦 SRؿU~:M˗% 6>jfE:kp3!4wTi}I}Is&`DEZquI{ga,BYV.mmdPļZt'1.%:{WD o%29Feg#/cT]aI[y)vurrI7$/M*lU1}ٌSL*/fEV-%=;a(FC~+V[I}OA`rj"G*AlvM*(-❾=N<^xoe4;Զ&BEFשTSr D6P:KRJCHyr*= m(kПDSN!{G_)}쵏h ^x4#7Dq;W@9/*ܕ 3Ft+3l?ż33>ww6~SރS Ca8j4s>:qRx$oW<ǕCG )a>S41ܟPG3y*$>K>@E"bh'“ȑݱMB1N=K,@Ϩ막CgL`ߊ(Y&v$пWޣq(2oi;ŋ~欁 cނ~_#v ,X's'suăCf-9N?/Eo>`MU* /0%^~?at0'۸ÞbT'vz[}#%b >'oqSA{2椘i㾭gF$SUCST# %2`< ~#ʨW`s8H$y#Ǡ[/ &_Niz[=5Pp/u}ٚ8{m@d?']"(yK.F:Z i!jbWRڕOŗ я*,vW:dqE(EvZq}[ZK6A[{-a)sqx3A`ruLꌥ<2O@':/fy xdgц7'Iʖ,7 BFpl]LRۙ'rF;ÕRYtKh.z'B]4%5bxh7Q EC :aO%vS (K"Q=w}iСcᒴM~Fajog9? ,W'?ly)cΰ,z@Ey}De^2/ݩpeZ~ʽ-18<) I`Wp=) h\7+>O+RCr 7F-QG\I^c2Q<ՀNKš&g. ̖)o%r-LcZB| 1'Q&'w8vTe#v!<*w+'聾X>b;؇Z88:vԸ2?cf]c?m8:A}FcE8rE4V?1mvhh"Ҙt_ЬD}ȍA('\J 0,_Phd }>hLxTl g Bё!=W ;!\#ߨZOBaGg7B;)7{$G}>>hv@GRCymǝo?mw c~A-m[ev1&vH.G0]\:%-|g[#"7ƄW gL*!}}1al'nlwW;lgsD敆.>R@wP=n%<A,oJKa֝ "5ceTc0fO:5S%v[,RxUP9M]@M9ta^%$ѷ$̶8f5\| D4خd~ZAx~%kY_Zsv7#Ox_0T_`w[,Ժ'ڂEr"m(:b3ׂ&{ILGe3Ki|xgqQ/ᯢ9sNu@fVL3Bh/X!--'eyjo-Cj,o;'/Ӑ^h):]R"؈1D+Z7;.P\+QmiU:ΫJjwZoky "|<ôy~'=^<yE4a<UӾMcc(vЇ!9%e%OsjIpO{8WdYgOu~<(C1no,ZQR7Z)[=8K0 O$ỀnWv!89A IE%]ma} S-0 7[@>#ц@^?:b rуEH/ y`)At~AENPg;#Y~{vݟ4g Y"_a➲Fw\K,EL sY $RVW[(]TP'N-I]. ϛtLdZZrz t'xdu ;+)o]\[œ++/S;\Λ7DͪB_=(f x}-ŬrStnh!]9#Pt7{XSϏ9ܜ0GD=Nɫ~H/@57S/]!̧GF諪 e![\Qm ͝ڋgi3qԸHwhU3df!Dg5+bVܪ,7 Y9@@3fnk9WΩD߬FV茾I7ȞLZ_'!xv^}xdXeh.y:Ǐߥi$O07ڈmc8#o%"[}X;u=(!7iSވEP u ț:N"bo@ߍ"{n[&_pl {Egw-}T=ڏ$~!ݭ%CQ\rޕ~.ȝ"_ ߆^2ȿJ*D؛0o-̇MC}[SFx#~_:߬}RS:9_81bes\&uW?U+FE`RFY^4oX*DNIt@ 65]o+kـRiy1|F:\kn'AJX3+}'xLZY\9ax_U"p ^qw<߀e>1Xg hhk? l7)NQDZnZӐ,>l/mAxdnSΉgAh9I^0"kw8?:e?w' |Sa$&i0ޕ7PP&`GOMR8{w&vA.Nhڇ8fF~+']ѷÿhOn&T0P(oܡѷ/Mexyܽƶsbo ~'ҿS<0d0m0`ǟzmmmKDoNmʰoҟ+c~hrU܇I6LIۓ_Ňy3}۽KV,fR_s,]l^M9qNT-ˣ[؞x~8[z ƶ?iw|t,@ﳧ)  v Ս#4꥖@Pqg'3uo=:8@ 9s@jdd=\"D1F?35 Jiڽ]ΊU+Љ}ނS%q}aɞay]ac|s()a5:tFԉr#˭q#YئAЬS#hz45Ohz,$j%pmi3f{QܼusZ-\PkV"G_] /zG@cd,Tzm@BrjS@T9U#r8fiKUQ炪Zmvo_2{7)-z15LU-Ox~Qڙ6Ùz嚄gݧ|gO ɲ$+Q__j$p;;2㹍_}9 m%=q'm͂?bN 0R8Fkt@!C Gpz@[]7IwF jy/5 {t`{\&{b/oLp/{@=މ`o3]au|p%ҽvk?Ȯ]ߍBtWآl%`T: A.ux xŘ! $;H.- ƇDXlջ]lhpZ8<|[b2雒xYXUU_Xɰ/5裖ǜh.}PS|\wi^XiBp>b{wmpfe}|[P:~eܷz|W|zR$ϘmԗIQ^PY z-yGt9;tÃfj^SX>V*V$KqSxi*]1#*[c:3nG#D\t0U0;29I/?-)rƙolfRHHx .+ϲ~Y)ǣL4}|XI]E+sSWٹĒmk9b5ec#( eFTq(sivN I8هH)Ȅ&{={ :kCضύ ]q"J*sDqŏ/S$LCo4 !ĞO_ a'IwIto%M?0C;hһ@B+m1X1}]_vD߆{;~oY0n_ўb 3[P'C=K*D;om3[c9Hag% k4' a'ϊv3z!sEzorW8keChJՄ[:z)-?ƾ_žr7ly?r(8y$w+4z1nc%r:<331@W% ZFVPjVz@ + vm(ŹÀ[CłגN@5/8^ 4ZgI̾2`>*+TFT:íaE?$;%Yz-aL(I^Gfhh ʒ,IRGAs\cBxhžźWq1˼0]G\\=\ ?Q}n 4 gf`>*E§F#|N,p~JsvR֟|lB=(Pm݊uʎldڗ~n'W[_e̖ʬK/WN68S*Gr1)ۅ/ToXY0ڥ3bPL9Dqt${"ésdou"nIӡC{<> d˩#HQHާN\:`^GM Jy|^CwkȈ9~**WXْw_BSU!AY_p"oPm@Xm <(a2r9 RBeLysb\αEt}`ly`yq{seK3/=*x; 7BO;8IDZ%JeU\q|hacQF > Wo$ qU&Ngĉp$Hhm0F)QFDҍQ@oW hOA׎ ?%NsĞ)ϻ#o#_A19"{v4pѷ A yQ|r.{$Dml7߶>5E͡8Տ_&w.'7q\6ĉ7i@pOL <`_cb7xګ=T7_mNφ[ڞ^ =73H] v60uQ% H٩4-/|&[4; P+=%Whv#3hFexRCya@*5o8K[ 6F <2즉"":Uúą&>=-P= a`n3]Ire)m<|RX\K(xTeZ:QF,< X(bsWDoi稾QaKtkuel,+ɑS+ͷeQ3nzғ~X(JTjCTs_1}2QDN 4\" v{hm%H^\ݕ5[P-e1 zpWdž ZGhϑ֯υk]ƞ@q҃*|16*5/pPHmUPǕ(A.Az /,E|sv`#AڢF:3($Kص7\|nh8R&W6OEo"|y{+p4+l`y,D;ʠdA.'A(_ ߍf.~VX'ĉ).6 89>R+ _q.0#dmvƍ[2cʒ'ryn.#BvPJdThtBus)r&JKPؓN MJdl޸'h:gҚ>l7[ 'H_NdvbW9vTF>d{w8^͔zWT6t3xGWX~2W;WzB\B &;`83+]HGN'.Y7[[aT.P+4iS>'X;cis8}慦t5rݹ < _+ »xit #>ܜ]G*[6݁wGwW8'ۨBK",0D$D~g`7='ah'-[E!8'm`{"w8|[DFpvLz7Nf75!2}|.5zoˀ06;lb[3= ~m 0_wz~o ?'dGwcD?ş4,5M~KCiҦd.l}H,9ra) j(o' Q:h89|J ?z /DX8W!$OnXɊKkndy楙ao1M91"(x^E0.jƁ,eD!Cgp|ۺMJ?N}#͞NCܙGUBhfNrR^e(55 jflNGVϣz_hKϊ%vR"ӒO\-cP5B i0%xxK`~x֘!#U/SB!l*a#(ɽ&O]쭙_ޖ4+`.jM!)|mW۠ޣ.8zoox QvdmP+% j޺bob$ߢJkPnwo/n{ , I-Ŷ鬒\gZy '7U.OwehʞjKn(9ypaF73YqtHfb] .EG`&=p\1|.MK ~87k%FŮ~EZPj`VFS-|YL">/qgj7}8'8͜PĜؕ. )n- аg]mge۷pa8g yv-Ma_4 zV&;&*+2pG7|xcOs?XF4AoL %1 a Gp!$FO Mwf.ؗm.Ŵ`^J}Xƶ77ƹ`jG[*x3l$m( ĢtHؾʮCEko~gm;RԎvHRưw)vX 18#$]'] Lf?gx<~NӚ/:YX@%Ys0WTMR|.ڽ~iq")C3piu=ېaSd䏡V}ޥ|mS]dsN'(gNa i*6Q-S#5 Ԟ)V@WڂfȺ )aDhՍJiN\a /femW|8׹[Lʆx i>3j>o1jut`7deW.V޽#Y^Lk(&=]-Ę"VC&2<(^ tK#Sm]?BٷҩAX AK^ Z#iD0%SiBiܙ^2R&ޓV^xs| KAZh?|w!FLw'wfBYF tcU7Ri~>O#/<0L %׀VͰxsk~rw"0PkfWnwXiECyc('[MSd̲aAk?f9o=19/@3 ?0N=0 T1~,hqN{ԽWL^3wFi wF?FR[a$]n bCNƾY*\4l@CЕ>_}Q.-]ׯm'-J;=D&{l]|ʘt wgQ gwf)}(/,wRl &oBQh%~r3B;."{o lZzFb+|Ƙ\K$_xz3fn;ƍc=ߛ3DW_6xS/+?.8Nt#/OrnS.'K#{(IhY8#|2GqC8(FNKD4 c8tw@Ve0JON:d"(pm%u8 s^1K,Gr',d:dkr']sq+3ԫ+ )I%&DRjwTwNgFY w?nAD斦 kCaM.f𴪎imX7 k ~F\ߍ8L{8QEY~甴>t3|ɮ ub0X -+L @r:p>]sPo _zdil:n.Lk{?4# oQF*{]~yVS/MQ̝]FCwUaX}l|@R @5910;U7ć׮X*L. W D.ʑCSnlq:be6E(J ^{K֫5ԀTbZ!U-? }e8ϑͤY|u6ϋf^EO@{@@ϳ  0#h0HxF`PtYDizsOpm%HaV!w<!i}6{Iduu_a kVE1jtgLqglM=N</n+d"zNxA[ޣA&~!xrhϻ{adOo5+0ki>S_ 8CԼG1NjkI| dGH/9U/7>RF bm)`|_S/~{|L;u?U7K3}(mĢL} x4l0g6)]߸v*`3W[nCN|f |] u3őeɰˆ7(+,e@u ൠ/saW.uZC0h$z ]6e*ڏ:`_/- T*:cSl0UG.qq9~"9@<NkA4OrFٍkO9?MS9!UE4\?HlUϵ5&%AEpK(mLa 3ZI9xAuŊ"wU}g;B?9CptʽS 90+#fQP,lOmDd4a{+_m#m%&R]±!ҳ @)^{˳:M%W*޳;}G5R'hi}B$$y XZ% G>q%U {C#yM`kR cN񊍥r q5x˂=D˛ ȧv1"`|!-6B5~01Lba_U}ڂ}r 8X۳] b\?9vdBk|?J[rza ȡEsnT4n4Wzk K):J80Su+5ܫ6EExP&q} E|  E|7n'/!W![]/yǾgrZ$/KV](rcb etuXju +>?_9(z^*i^dkȒ[ MXf*4(Z!ϭЏ# 4_*B7 1 C"]$nOhoe~&\=nDRn1a` ;lJc6SdRBY,_p-/0i$vCT˨D*^MWF3NtG̓*j SJ˯-Y Heu-K%=CO$DQ\q 8\biV' ]*T}e[FTxodǜb8yriB5z=u&2, T|N%*I64&_vmWwY7hMJ❆~H?>'KgQFa Baz+Oho߇=]{Y@[_'$a >ᣂmJў:k$mzQmOQɿv?!t\ un &Go|vNޜw[a{mD8_[^ G`[|XEKͽgy:نOfMyWuVcqGFts`&op.l>De܇ͿmDZXо2YgޒlixLlmMǯ~^[(s/YIZ=sm_*卟C#pC:ZXm#Vi4 ߆?Ѽٽb |ZKd{924(a۲!O&0I)cjj{a '*>P7VBw %<]t hoӬ\zg# wROC}0H|x5Ж Ĥ1cMƛ4~?&K, z{T9t.mL9Pw>׀]!AP8\Th ^<,25J ?,(=v ;#9LX5RwR.éxKˋtmnUT$=/TRz~'&FCzv) dH-R}߻FBe j_`8Iۇнgqۗ}}{bKbwGD[.yaoPlTp/hIoz2r"m_\r>c8x=}~_mp_lه߶ ^-+y.? QF-c号=~s^/ *+L[֩ b9]~  XW5}qDcdCX@:O8EzjكW—Q<ԢJcƦ0qu.g,aWX 96,9F c~ pN: ŗ9־H݃R+g/(+]Au,y<ʡnG77^Ls.-NpY۫,p? I( 8o =/;m(Qソπ2y۶{ 6 轠!$~y?{DAЯr%Uw3:)do"9۫͝tY_{lB .,ZU<3*v!O$7umq__F/T}[gvQs˿ǮWmL㥍o{X?vCw;~ů+8l Tl wR(Tg/e=ԸКxi"̪ZEqY:p1p҈Iޥp{#m0Qp9S`@GOHlc4D z!Ag'h;t=i}H秈"lpe.)==#`NynT"OS]uVP v+1뚾ֆ.hvz-R!f=JpJء`@w\wb:bjtK|^x*TÁ *j혻!:e& ط'ctI+y@V|Uc@;9ۻՅPKsL^sg#a/Oyy k6A%r`CC'rنyƟ#(WE}4{e,>BҎf+^ux^syGԕex/l#iƸtfB)N{e Kty6[;'7н=e%xU%NwCtWW]m{OEm +|OGb~L ^U7/}{4=Nm'oWAɾAeʾwfcD?gvO=68c;z,6$b'ۆ[ wh](mo{Wm2~ʽ/9 pRΙL%ay톂`|GpUK2pohHeCrC(U$LҖ*X.'xF[h8Ώ^χpkG xw_st䗇Q1,Rb"m}ԏwQ\"-(\T )8{G6Pc,9_FuR/ms3L4UykN=exK҇gM)I,L8a#?h6u7 g~d ~_Ip ޛV&i#)EI`x 7uP.`jW5<oHpD~[. ihψI~{2jD'vDwdG i]m|ñdxtւa#|W'׭}| (zGkdž&\X5DV3|~,@_BT~B'|D~";!:Pv jS W?ZYv_T_M:ۋliCe@s[?d>NKl6qzX3*dg[jT<00Γ?eZp?@4<Ԅpmp蕖Q`Fm.*͡pe qrހ5vlP6N$D6.I"+d94BpҐ 7h6}X :AyR+9OڟEb$w-4I@ƊQ v[uM_pN s@%ԘEQ)>01%vr&BÛVQ-~JX0}z.-z  gG{# rGr}QBK*F.|.*CTxB`Fg;;o#9?^ˋMܩF08w\SW0'VʊNVܦP_fLGuqUIT<A:JPI_! [r.~YطlMzI01)D=x)ێvWi'N@*r=M }Q;-BiڝOG?}r\Jqne Ny=m+pT3өY3<5{ e{)tlL.އ/Vv W-f,BXw%&C,>c6yҺq{E2}TQ`0'n2*@_MF޾DFY~7;&`ؓjJBiXљM%M1vr{{L2 #!9vƒ ZC7g㊥mB˕ \pk؈jtNC֒5Z@kІK3k׏>B=8/3%>>|ۉHZﮗ.'тU!CXrLtǽU92yMӉ tpE&6~#+9 ۦ1aE1 %ͼ mƷƿl_Gױ^N_wob7u{&m7Azw9^{AZkgZsiԻᗟkkKܾh웵?L+w}[=5xn"XnZu~¥. Ά]WR,~BGg4s_RiW_z~8 y>f7g '7 ~}fUa_$"W{NK蕜^,#V|2 VmT6DDJe<$GX_L ^d;˝\X <=o\.1/HրvC(+A]^Z:'R'=ZGп $5 h'P @!3d\.=tФHB?f cծ",h4Z}o,ŷƊt9lЧ5g=x:yGޗJ .tk;ʶ;'!Tn5q- }ǷESI!R>J:#ˁ/^ASUPPall4ޝO5hq{vۯƒż0>=6rU&^O"):n,9P75 dA?u`u~m5K7Żǐ~E1:MJ]^j08K@ gikx2k#8LOWߩ#aٹKmT@ ?*C9UA!Yz:Ip1ć S<ęxOҒs] 3YzQ'U%vsҘZ]_ 'g3ڥMȾӯ<)BX( *]礉EԉCHh>@R&4͑J~yѲ?@6:=DpZZKi< a᤬1**Z<ͧ%(h18F2gzkBSy^8id|HLJ6L(15 aZ? 6;3tL%H+U8DP4E *5WndwcI.ᖒVQX kL̺wZ=ePy:ד;$=k.؂{4:9vWdzNkAa48Eo.~ZefXXl4Skkru7&sz^.ߠIAPIZMn 0n!HB=A#R|._(sd)^53nǓ\]Կ :p"'4,("aє~Mwo1;n0/jlIQCqApQ|/OmNR3|xQL7v&T[oRzB}STw^0y/$vOQ wmp+=ۻ{b꽰]Rʊ7\6 ]/L͈=7mm۶==?{~EL="s[K5S|—cwwMԚѾ87f9_p\k%/%A)YϷ/=%;Ks l_u%ŻEkҶVoxOSmߎM?{ 5#>^~Зy﩮-`_  o[ [P&ٰ).$Oc5 +q r/%G}"^ߢ4Q3F =0z`>Bl07B~2"^jYǪ4wy=}ݛ?3es-0FJ!K[ѫ5nt2A4˖uj-f<(ľM;]^c݇-ȴ\˛a S,4t#؝!@Ҽ7"]Ĩ2qGyI܁'T7E&-t[J_σ drHf\"JoW䚝|j\}tw"rH?}Үow,UN6T&uW/v:uۆLa(Vt8R3ҏ+qGq15{D+F 1GRc9'2Yԍ9dO=ۗ8^$TXow^\D٠a5N!OyWcdn>ªb)g,$_X;`5r .&Ca ܼ-x'HR(DygeΙȬꡎD([3pc8`.e'8Mzs 2sFG8*[VB:=W 'Jv9s:y$p慇}|֏[qEͱ"oKf%Zϯ[^)!Ԁ9Fޥ$+}ىd(!lL5'gt 6Xk5sO=ڐhAj,hdaI:CVMAHX֔:lJ5u1ZifgjF8+ s\T4M9LMſFq6}v }}9뵼uG?`G{p{{S*/`9=зCN[}w E]|E 0c_ ZM$ޏ 뽶?noI~{߃ZHwmWP-kB4 YnEyrmŗۑ}Frk9y`(6WS'Mg _+#D}ψoؗ*qK̞Qvdvk frq1Jfcn,|4.Vl%AQNsb(<ܯFxD1μs ˘ዯb$Ok*r#mQ Z']HD:<&=Uzc@tԐF5 (/R06TA'.%OX+~~,b8ǬAg IߝcL pFѣ 7 >S;:Qgڞ3PGH@Vbz8u" c-8RN͗a=ת_+u0۲E_|y|^# L]ECR.'pa 9b+9z({@ 肤kIq agqBWۋpv;B6O5֮݅=.AZl wO7VvveZ #O_Bfӫ,X%E(։)άeg2?6FI6`"/&s@=Hp*騤gmmyT׺AƁԖ!H*L_8=ؕPoX@ī*읢7"1QxpSi0/1gţ<iK \}o#c:M!FB„Ѣ,=,ɔ-_LoGW<z~%3*uMh'?3~Œ膱H&`C /0L0ßA-Q@[K]_.W/j XS7èؾ{Q΍7t*QlGRHE{NbcD} o} KU@ہk[Ђf3Ej^ƻB!=S%g ? ٜ AVgU0B20tқ &c%QYd/4Ӡ)\+M^W:x@+G*d2&ѫlo_sS,xob!10@1P L:.>ȭ-zK >47aV ${|rM辠"f2u~)Y- yPJUmZ3rj y6pe`s4&htq^ d*,|3ofHy‘TqWʝv?!n3J{ BA>/oaَbW҆cbO`~.!o;$=osE ϝf.,~&ѯ I|Aׂq}0{+K"w V mRfmm%6|o:w,GvMFeIUȢ$ݟ@׹PyXOQ'C@%*7 .3|d^ϗ k߿s I 3PD_X^b>o!j Z *\w 5*>Y[$LGO]uÕ2̯r W1]"_HdsԁP,U^i!5gJ7ZS qgM%sAd:wnG^ r[?)1h?濬6e4:쮦 Kgϻ}KёzYC@З~@{>Z_oףg-L߂$ؘol`t˷E^~ҿ91-?+#}0[n295آfMύGGwTm4@`}Pw\^r\Q^[h^t؅p}y [a\Lɕa,w-&G0t@ij.bO4b/mlFCqd݂; ~NqؖR%!wpo>T=;z%ú>:3<$]ɆqEoωětNx-E<#~m~:Wάixُ@eBJMFlN1h\8Nd^ҹьܫ ֧SgmWR擛ę$< y+;=^hf2v=0"b;f&تP\DL4JN kJg!x.W"ZTY})1cw!h^n*43o$WKxIRS@6zR]O /16L=-!Q~% 2i@CG#>1SijɷD$mbk$$Ee߁=C!',2Gzq%^ >q'6zCvC$+ }"\%dI:C3Txi^;aٕUA?KkK[y36В4ntfHn$%t.wṁ^wjBZ9Odɵ>J`N&+}ݒG v 鳑f@# ^U \ΰ6Hַ"3 L9Ojd\#WInWmt^:ū^1ao]vs9Q92^H~U ,tO C_Q̮]P}Z i ۳ɵ\j61s.Kz?'AyK<!G?-hk.{C`r{ԇx- '}n}8Ah<:Q>^I>B< A5Uj#|Ej"I>RIMaȱ]!T"[~6-G8LwoE6 }{>gw1Ïe[!_I$B@ }3J;Ȟ-;dwJ}tO>t8]ԛ[rߓEvnmd6Ƅ7 jdv W;ol+Ib߹Mxsd 6H'f[9$}dt7 +%1/kٍųK4s^Ɨ/ٮ1g!p)Mn/@x =7'x dUƯn8Nˠ!3ߕouSuopqm/r90}MWj+~;_H{,o^m8G;lҕu&Ёv62WKlUw^/@,fCHy&/O}!O~q:K?F}w θ&2&4Uf; j0$2.858հL6cǬ1 )ݿl^qg2jA xƪAܼ -ba-aTѲ#7Ŕ:״.{ /TaRc1hG3v4y2u䍁[syN+a3UR}mx րG5SORYTS_5lwGo OOC,0$Q| F8A# 0F|%q؍"n6N9WḅyWot9U5]1Av {')žúq<{w;N[f!+Mm#.vm^ t?X#o jMۚS3xfi%*L˸B9č='G]E%|kp/f"kq|m㠯|ҫ,kH8{!q]Э{w؄?/-kY<㠯1S Zph1ZKݻڰ~Z:2?`e5pxxQ i䐷Fi1v")/i$}h"8b~&AqLp ~Y!gX#㵉I)>6@X\ "ٮP(VܸGQB_x9둉DmM@x+1LgoDȏ9f.E肯2rx`x5*fpv2dNbQY*iTGogXm#2(zAٱ0ψӍ,#Dxh9Bps֐2y:,m5 z"5uaܾ\n\9(YmezV^Y-Mo\ `#pm'ͅzsxdJ(  sF*X!ZAtϚ!m8Qޢ&z}GΉoE#2z`Qdn8rhFYPRS_n$ ԪʾE&=@?'tGR/x*>;)%f N!icRFi,WMw#lF#t JީœÜMQg8&=*W۽'W@xM>8rIF w~p#As)q#TΧs]_P_ x;]WŲ(vK~H!"2Cg|S0BXs~~g8یg[rU'Ƙdkp9I?(=jM/53BL0PAx/~)^HO>4Q#',,E3Xtj D-aV_rVj[hu ʯF4r ^.YGgz-y0yj9 R;>%tqIf_Qtev|;Tsҭ٩b F\G+)ǍǕW0s:x )F5D\9~$8^ACJr0E@*OeJ.`YYX .!y`Knckd  xo;oC(߁P? |Iӯ;_{Hpͽ[|/2]!{ZIp׾_5SU؇0tc-^=IuDX X_G(nr1~)1ˀ%~U>[t5)0XZ05eK⛟O#cD4MWb- ޮ+b~;o(zγu>g8U++U~7fٸ!lf{1e^6Bo*b CRlQ3wW6_5B݌J@ 0xۉۥkdc0os [xۘ - ,w˔jItm&<ʽO]]ގoJ_>Zo aj^g{.s"%gE5q{syٽX~}cnY5Ƕ(= tΪϖ Kǟ W8~3Lnx;_9J;Ch[% 4nQ^>a<)<3&=VɓQ/rWSĐkIE@$}y鉢C$VaI-&Zw)Et=-ó?> h UulܤYVgӻ .sS ]{M=e}7,Յlc]2.r8mU=R4p&7,,Q_I`)CZG`+v,_W|>'͢< JӐ؏FƅyXةSīmxIbO W:*i+QZԆM׋_5"3zF ͩ3-Pf8(w sڈ\f'?Axc(ⷁ(/+WJ^^$kJρL]Ȝ>yicȈ$v_xK FvI~=Wz!p*nI.V¨Y.cKVh1 afj]/uJ6]R(b O9>V^Wg31~9nҬM2W4ǂ5j]ߙ]G2x-,b3A_ M)Bt昈#z+wL+P#`G=q²80f.Np7|+.=u9u}nNƧv3>e; _ᥴ6QJۜ',d,nzȸBjIm^I[H ˜o`_yY9,w1SNz,s.EW>gmga7v7}ܦ`i T>T^*&!?o u*p2G<@,L+kbjHl*yl}=3 W=LNY苇EbYZ#rr[:ƄLA]mI|G>Sfb_;t,Ss3{؆u9%?8$AFmDPx=K}-ی%w;]F}.dƒ]So| w}[龧[to6EkE]a '\oܷ9}K'm Q_{sKbHy{`']{bԷN$XLB2]]Ka}Qc6DT`j }H52=Ʉ*r^>YMVŕ3U#3SdKAjA\Vjp$f$ç{*t76<VVNNRkk 'p$&a ̬\ކǗ$(JSUTAb:` $;lZCRf=4vj9~&~z\\tp*_pot& (fqmXy +clO똁qrԆ"ot̊ׯ AK/;E}d%=8O#]܃P2DOm9u^ѴZhsG&2t8EYR5MSWF+α{G6rkz9;qMhwZ&qcPD/˒]{*:H` "2|!Bn7q=QK& 1zoLcwWʑe 402!vbe`|x:.V+`j]egP蠧tMƧQt&RCYЃ :XǵN990"ZS"K `,W>`}z kyԄv%ۊbKtW (2C:^df[y[5@r'"&˃RKcw)7#{k'VzXOaAݦXv);7q<*u%)v`#۔TQ)q<P2&7[a]ò{jHGȍ|أs!.h7% m]EUuN&PfJٟ=U?T8:ɷ*:\[_|f6~׶QP}bNm52DN$?}?  ")i1rUT1FiFPc|jxGckۜ=Mpo,>KRovw$qrvHlb6 /ĉm_r:~5x_[(6~}J}B_WlG3Ȧ0 o&6 Mtݝ#l$kDi?90zH:X~U "o<•|ONLu^6qƺBrMO`VId2.t`R8|—:Xi(Xi(y}goN%E\yք!,VGЉ*A\IZt(ŲTE57 >0 IN_<_zk=9jGPZN^ga8bsGA|I)G^J.xtx 9\:b ?q#)ړPB腽˂^,w z$w6ҞϻbzPj@pox/?*϶$ P K~`0rD. )F08cz^r#dPV͵l8&kKh Bl 65wG"K1| LGZ6} /O#ϤlBz}rYUFbz};5L[@OqMmIڳ/pq;>r[ڒmI6ΉYTq GY3ļEi/"3nakH{Q둖Cx^|}ϰwڙ1iEH,b\QGUrpd-vz+(%wO]gSB!qf쑿kCּȊ>t "oѮ퓯C7S"M9<'l9j3.{1EmE{0Z-"P{TYz;4l`-XBH:+ K=]8U6ԝ=YsZHi?&Tck//;3zAGɩ$BNAO9{*^+5;BΒ[ޤ=[a ln  p''[[6 m R?+A6`2ՆHg9bvH|K CsJRⷣY/!~7{cж!?\.CWC G;"KiphD87+; ]"F {{&GJj/)X\WL4)Q)f)p@0Z:o(v󤽐1P(}$ϑ|ґKvb@l"mb3pѴ&ikԆ2,BrmՇ2C,iwN+ ;߷wdHyYOGSBbfU2/HccQ$Ĭv,(䒇qKcS{J$)5Vʨr] QB*]M;9CM 5zꮬrC+nd~rw3AI (gf}n{+%:}eB;&v09]lP-yUb>tAna-LLV)ௌ)uTDөyzL  md ?aCzym3ұ.& i.EBZH0WPKyVS= pip/_vendor/certifi/core.pyuVMo6W :K-Ch"kl7--l&3$%۪" ̛7OhTfn~啢(˲hժ?NOQ<A#8 3A"(k@&HUX*x2hhGuu/{ߊP'' W zzz:Kw;7-5hyJH_%F m Bzzc$ [ %%9*gMGC0x`Kn͆2q6ؐoֽj W0bI*O@"xq[|_oHê\:VF.$*؎ޜIY_=sBy(E<:場U\C E8@&BCh}74r=.o׋#XZi\S)Wo"[' N4sΙ@S21gnr9DՖ* Mo; NUqL~Ik>;ڒ_d{2y^ҢԞt հe$.pJMմ7.fR傓v]u yzNPFwȍ\'H(3+0u{YR_R҅QEҹ-9-ELWdoޘ~'AM"R9M.O'UmT&Ad'G2}#E/3X`OnͺwꚤL1nl_]͠BH?p TKK&AM9VFϰJ0]$+- 56$y20aEROLg5j7:klUH#i]'V<0TqVQœggT+0r惏n[ꈝh^AqݞjTzhsKN%b/-o`sTwTX>(aߡaŗXϢ0 ) 5,Ȋ+_ߕT?M1dBk6|4NB7J#':b{4IKW^\_nbqFXm@:XcpiWMyEuLvdd%3[*GOSM+|Ft'_2v"E&ƏJzNPb *PKyVSfw pip/_vendor/chardet/__init__.pyV[oF~WDܰJ[T" $VD\EQd| 538/@blT꼀gwƮV/xyWomRɊk\1*D2420(>O 7DT_ˀ[A f0jMg7(Py 4vO06um <JgKq~Fi>[ƌ_-NAo!b]t+J4.Rڕ)RE0GH4I {or;N=xhL֬$3fL|G)+ńRDn ѾzF&x pMi=n8cĢĶNJ+qHkI 0,jV 4_ z<!M6v,wXm'n>7Ɉ`L.Ip)6a>5g͟Ϛ13ɨV*P5V-,PRA@s#Oĉ]~Zh6?|{g4r,|.)qdY{tgsF8 !3ͷ}yUZ'''o  654W[[KBZ1Sl a@an&Ĕv_ؚ t3г`d;2 *0bߥӀ&G]q(%UT 9ǖ_Xw^+qi,ϾaV=45),k7D D" w(Cdb5G{-ӿ|n/GBw{>l:WnӾb%b+4?;ӯ}wI& )BXa랣 OnGw*5"ؚ(HwKHnP԰V/TaJ"S&IdՔ7~fm6|1|ClHX2'r.5Pm5kurbpΎ)O9l'k;;Cr#r=,QoG]9E|"ٿw˄-N~xE(jy2v\`KA xn׀z-8<f}]fT PKyVS99zpip/_vendor/chardet/big5freq.py]%EWZ--%ѽ3SZآШUI*~y,j{a].xkw?/ϟ|_}?yn~=no>yxyݿ_zǟ_߿xq{E烛w}}|Ow{7ڌq͋?_?~|DWǻo^njQi_Q?[9#ͷ}ٞ޽{'>s 7CmyoWx=|}ؾTwwۛۋ篷ǻo/?|x_y/c8o៿fMtW?E|wml?ڛ1Sёl=D;xewOZb{ju{c/6C} @ ھ~~sϯnxO˗<>ۿ~G_<1Xlǟ_n1O%>O>'Ͼ믷Ͼ|}}gO>n_}/m35g&||y79zw/âE~k _=㍏cB~x{xV7Zކѿv%%:>go޼(>RK˶}u}şn6aϿ{E_@=N&6W?>؇?~q*~x?|/˟?x/ضm:KT|XQ껗Vϗ^qKGO^>Y4{4o+_~i`tFi#7ү??=]PScyf?l?SӁy77?_zG'_?{o=o~!XO~xaQz!*?'Sּg_~OǷ_>ӧO݄,mtyܖm6zƏۼ}{m֣n2oQz|VW\۰`ZgX9v.\m9ZM[xzm[Z8-Xc8nŝV~</Oo%z4vk[<_ᛣ'#&g}ɸڝ&k w->;ormćob{3s6Sy5~ÈY~Yt5ZcFJewgz"0Ah7Xc'}#:w졸Fh|y=nbzzO8m?͎I{o r1hϷigqnJtGP?Îӈa;)Q'lFSQ&lЩ+9Mh%fO=ºK=cnig7j=mѷnŒnl1XRb~ce- >ob[cVW1xc4MwTka{ktj (nK.;5ߘXk+k1U0lq>ųʁg1oY4ڍnӝ`ZX>AW [9<;g+[gC.ɚ]ij04&9v;4ŋh7j8n D <~h(C)|'nll9YP<5<=mFc,,ř]y`mT4hnßUKL^%4V+1ѱxLky.e t\ˍs/Z7-Mw1XXGkxLP[<< pmL]n:-:}ӈ;8N˷o/0aK"b:IJupf_8g Ǣ2щpH. *6C c5u,T2XE'[хLj@tgGc⊩7Zt0:οn/AJ$cm,&+P}Ln- &T ;uΧ[(A5X2s0=SÀ}4&ǣc 8Lʆ [vT[c@aD }t50qC<>I,bVck.\=%1,=. 0pCupo0HWo`n"-Vf #w GLf#a. [ak\5sU=d1N/ijbGFX؈CþV .)tfJN> Q0ޮy\Rb?tly&`T6 [Aߍ\91V@ ;OOm^" $Iw6PV^9fvINؽIv K 0vp5/g-ǰX{!dZZ(ۭ}|.iWOV+:<]-Y݅ݞ:C' !pI&xT6:M6@4cjwOcӧVf)|7aHܥ)s$NlU C.mA Pe5p}%`&U*1D0d?u'|LBt1 B5%~8%l#V&/>$60ğ 8:0i70,Q=,RXmAwvRM!|LJ2ü+2.li^y _'omĨ.c9`@ ĦN6BgFd(i ,x2nE sYqs}lhݛ~]OdF= \aϞ8-d ˇvmde'#&-ym62𧮹vćY%%#(|L(+hRwXMAd pUu']ǽ5ir2 ɗU Ezt|KI Y7:$9nd. /1 [9 wtVOJ Mtv $49_&Faڠ3p=-M!|'reB>6{$8X#p d +.y(nM*,(Lm莶R5<.JlAHA3aBAy,ӀڅwH"nb&:f@r8A.Qji`i~c`d״.$/۬KL3J2œno ,2}3qF=uNCAzDj1R4eFɬ&āG@{Xj*_p޹\uw ‹5K ܢe,$[\񥳄$cF'U$^'ڮ \R/-#o^pX[@p^.[%70,ilp<7C1{7W[ \R Xmj\T.4">nH ةlW*J qm?7&X zc0f-t%]K<6d-Z.ͳnYWe'TJJijAqoCF6iR!ἲI|6Nc ]2YRE#q$#J ܋OC* #jÍRhYK`bc@e`&țҒ%utSbM&Tr\;'A@`$`\Ukve՟Dg%pDpѐ"N03/ogiQEY \R#2Ll#gcna=S/':|Ia|b؊%%{끉7A)"|Ә)nWY#dpL&i"1I\Yx,'3q|p YZ9l8\ S(l sUs-HvA/2 .T0@Api ѽ9doJxpўv6W\ EVPb 'PTbHs FjxOv'2ECKԂPş-MϺLwőRcW3ziLOBTؗ-a}  \Ҭݚ sj3ϥ1G] K BQ~DKrbtb x`)ӡ$۝;v8y3 */g M9%uqVpXAbV/3>"kOX*F0].H@niSbS ;SE@ƽ\—ȌSadpc `N\YϢo)g5R$u'!c(C h nj ެ 7Oh7CU_Cܽ W7WjG:`Q83?%fk,D"!HZ@2 R;M[IFE+^,8@Q o^Z,>=[N[P+$$X>ҞD].)v`RgeG3ȊǬ{3~|;4%u~Du5fK:x  P*R;W ~hƴ쐓CKw: ~]X4GD:v <ԭs9Y h3|ʨ`{46&ƄKJXl3S2 HªGi{"=+N<:xW'^`pp#G ytHp}ΩwM`WPl.7u ᰨd@CrZE:4]{MN''+T Y~".AP?t˂:X( Bnj 5*:/!98[Xޑ2"'=I[`0_ #7<;4A: =4t0봿k \tzcBA8TKlc @{]  _3&:o5G0v—g]䑢q/80ͣ8KalcK ?%S*,Հ.NX3J ai@wӉ=c"X Kr`fQ02ڸu`ݘ{/YꂊHlZ`ﱑ 42#%m. M?5IOړD5NL\Z .LK:b@*9 X ( АֽOfjvսVձ8)FP2pah E24]&YϼuPy7} -&iWRsCwbm7%!=Idѩ!!xc?VHE+[@KiI+bVvߺe]%n~Ys(8X/plB aj.~ZE~`~F86qaΡ B)`+*rWK mE¡k ġQ]ݘvUbYXL I5 ̖aY(t0iU,\_ҥO9\d?`A*j17`M'VI3n5 ^ |ue"Oo"ᢅ.$J|kz,Ƃ+nnk uz,<-Jo h HGtQR kG1[ LQ7hѽRrM2>^QFcNvvެWKθQÕu.*n.5r3Ō1k]YPUJTz-5YHVzBHGM>R3u`e(65]d vCEKE [ 110A kTs:-zN .h3/yP:1IJѥԬxS ^e^f"1 Gcޱ5-E1ThZ䄫 (pICd|i ePOe >d"q@ I?n}؋6ZY6+']xt+OD1,`߬6)y6A>tu>ÛtWtmfkԇȻeaPyC\HvKNi'[&PSeH),}_8ǸY54ʼnc.(Y,v}tLj3^GJ2MDŽeYE:Z5 Pؕ0͢^ĐS"yp薈u ֨ X//Rgh\GӍgݿ{mPEsu{DSP-Gh*׭;U~sT#?⟚G/mRΐvٔ۫(Dm_Z+*Z T"€Qxv4uHJXhnM̩41$2Gr3S~5vE_YT"5X$zn#((0=NR,E=$|KEZ,5ԍ.TQFA촖M[u 5z5"rVHVrd]'?[l(Z+A U8ْCnqPPY;<o(^Խ*f++ \u>4 mdAgRl\fC3MI~~L{njNJp.޳{=h&<I_SH>%2%71A kʃX1j2&y4 Acm' Ġ+=\7u ,qK|6-Ԕc~sciBdHSV!&h_jv<{8 ?R#b޿Aute#4 $!A{Օr4"v]HILa w3TpKMM-X7wY0e7ac(e>2w.(-aGSGo6I0$]uQW7u;cM1Q!ӕ{ M%zW9,^s# )!X7U^ w iSY&OQIA=΀}O"Q,DY!ο\$済v{F 4nc;V碼aD)ϋ4t$fX0Z K<<vRyt]:yZF !JjQtH7(!n^ys**ܼt̓WEP$WO=1βPGJ ,V9S>V5^5uҞ˓ )$Uj=O*_ͳà5qV)9YM58>i`yQ6eT5uU~B'pG7]eM 8SQ35u)TfHT&p{S O2߯vїS`Han(U" auzB0pQju3ۻ S]FGn9Y4ty>ݜ3vaHS RQ2"Һ:-{,XLH&b} =[݃߄%.of5#;<֣ܩ}S- B׉L#cuU]N/|֮udVRAXrYI #گyܺ{2r$F)jЇw HoYy`!K6O Jaumi^@'Hݫ%^4f2۬㫅=x _e6t@5klJV~4QPݷt7ʱkЗ(螲8dYC-:,'M YI{@:l̺J/7ɀWdW'˼lϹ)5uyۀ'݃:h Y=zh cIf4%VI{+^b.jncV L,_]p T[lth㪇@4(@Y+μ#BVЊjX9DHu$"qsFo2̔3r {̦Āl7xDW~9 -0X!ը ]'û6KN IbT]`SuuLDN*Q^% ƌ]f8@0Q -gyy5]|r j3{ю|Y0QdY>)<}C!ka+E_ƒǗ:oE#oI'o9bܲ58<ӄ\_:um+Á@ (-9R&M>*~/uoS}@.OՇs5<:kLvp[r_tuzXom RW'v1tF k@M0]:%qSW32,qKWTY 欆дCLYGZs FWv e)߬e|XU{\0jP@e!e+HZKp`$+^gH{^bz4a3n{@ȅ* f&;x,tx=F^.8̣\^4RtiietyCWño٢VB4U\rti TF/J б|BwKo%"Gѽd%yt t bZх1vRѽVdH[Y|qHUz@n乃괄mZ9ѽ]a +Jt|y/ 1P C3k"*׺qNduD^ͶK GQmxo~/:׆yl0CzKzF\B[Vt䀡\Ǽk'7deڕ- !E70c}6\S~/ @X7J6Ms*Z<צ) @%$Fۅwнzu:ܰW 6᝷gM N|x=lx9"(6]w P52譲]KZ)6j}+=UNR_%5uo{zĿ^G{utd= 53܆k$H(U)w4o:y27w@P-CF廪r B ߵ3Ӎ8Qxޣ{ey̸l y1'HO.9pI=x;<O %@ĺy,p vH"싒rՂg.pRix惔{eik 1#czëMe8)gT@Cyd讨@<3/dƉSSG'! Gfx;o݃tG$Eye=Em,:vz7qT| ~ {m3w~nBazcMRpl:n=KOW@p^Ka. >y+Ur[Adx}6o iXzFAEAӞp7xqȗ.O\Q)wӼ|4"er}K`82{9z!gk$J(ƹdKR)ANF%nݸW %˜ "hzPsIg׺A0fW^6x qcyPR%Gs7^kMXL"};Eo9J@-{>+Vgއѽ6i= wSBm|Aԫ]J‘ܦx.|.zZ<dlAS ~Q2\ѽ6m3dy]TQy;$ڣ[7A5s?{m<8{$D*V᝗*0c,IpWWMO0zJ~gn~ت%iEXa{]i'/cTH8 ׽_.o9ш ëao9Z]%hw=I){34zE8䆁үm7Uȯ8GnxJ@.[`—,?}cOvM{!e,̮Nq/u\Y9"AnkjIhWdH>7Q(OgwPxxzqK=jp M!l^OXWb1zToJ@r6¼Ϋ]U,ŵ aYF@EU@g RiCRwzjf7݅/?;y_@#y^ݤ!P C5T>r5#C-Gqe]WD峼g\l^L[=x:8O yID`kձj'kbdbޞ%Js~ # ˨T< !LƝ8oΔup%&].{s%>+Xt}sjCޕEo 3lGr2h<$8G~u$ZMgXUBLذk+]fLޡ0#:RmkFG7wx )t+Hv B5S8/U ȥrA~Fy4Y$ '܅>zrs&aUι<|_%x5T jeXV+Z+{Zg6 S9VBͭ }}JrWxRoTᡛ+- ~_e_ZM7᪛kJM)6WqMPKyVSY(== $'pip/_vendor/chardet/chardistribution.pyYmsH_-8q^ RJHL"$V3~ \jTlfz~e4[tۼum_}-G jr$}ۣ$Kϳ}2ұuIkr S>Z.mRK_LEHt&[B+Ǟ |4}FN(l-\, bV2tUcM"U/.^"WL5ϣ*%¯Nr:YPW!/t/Q('tBء&B?>?LAh 0T0sl5-9OpaM!OW<4]wE8QK޴t+vJ7!Ns?x[_ MyLזjFFX5 yU #tV.ň% ÛS^XĦre9듺$}; q9hEA3%3f]ߣZ>:Z4fINK8Uhz޹zmo4{zKvjt_WZv^& 413+9 `IWh[z*:ܫAϥU͎`b/z?2ŒA_C }eHK !],o!^% fѻVΪIyJbdۇ'&㣣aL,f#(~cqG Xm;N8nuh'|o^nfi^{v%M;f%>=\Px)X>Hmy"WxHQşJ}ǵ:V"c;^C g*vu]լ޻N}{MoZ9;7~n=Ի/.cT]ռeyW ɲ$je~ gөDk{ 㷙ˁ1S P0IBemeZ:ՊR+ņق"g.E2I(5I8J#Wۛ 3*ھg=2g\^J@B؞3C}at(]BDy:!>zt>'QR4 T;k1#BcKXO,r8z1EYnViTmhOTq.܊633j'@ pH9гGP^ Gwi6Sdh\973V @4lO6JP m͆" 7@Al2̈́|pވ$.(܅(gl_Yx(kL\2*-OirQ!sj'.+z^1x@D@:;,4"jYϥJ-#FZ' ׼]vRM;6JKgƹV@njr&Ҋbax~ٚ~5ʮulu /= D)  _tap+]z'x*KX/F0jv>a/ph!e&E~)K/Vljx[f4n@_̦NPȂdY],nnEeϲ&>yxp52A8`Ϲ""STNj)6@[f<ʶMA[X VD.'P|:#edIsyOHy*6+gQ&+7 J#ӜiE Q|jbrQ2r S1Qېe{qM):=JxIۙs\di9ޖpn5TepUh&ו7 Ļk}'VՂ ]2^,W˟]n87}{4`]w3>YΓQ:Մ e4(W7NNs(RJ~]͑FF5Gw2#˸̣C%,jue`6e-OkS2]'d:MH-Ok'3Z[l;KF|IhS z>R*{<ԗ؇zc.^g V0;|* R4$1/d)_4BԪ}!q@4\ы ې-`t(xW y.? *%Cb3"jfbc뵯< +{_}coa]DFy/h{4Y@, ) b6Ƶ)1oS.iI˗9D(iWh里^A >z(]G&dsg o"vgчXIާT>_MwV?&(nOwo)PKyVSw)pip/_vendor/chardet/charsetgroupprober.pyUmkF_1swu;g/Fr]JP}g%YR*gg}]]U?a4><&ߠq D5L@O vK04؇%"ڡ$1Zr% ; S3{Y aW1v ]]Cgt+̜ԯfbJi! 3aZ-1`LQ2ϟ|NjF"F Q1LƐ dU!geH85|/aJԔ4^ P( 3s6)8" r:ww6dO^g[uYǟsD:AHR2La7= %Fm+`!/|.N _[w6/wKJ)/C`f&DW> Gŋc?.taڝ-;r6q/JB 2.L A†"9@NFd\TC:͗BJAG m;}g%-jkOrb)|#t KONXR@ΥrhDZmCS/SLZq[j<0mzdFfUˎG44T|~ӠZԴrG\Pޏ=&ޕ8-p^tq~]"R5C0KXS64-+s,] 2ݓϮ=9:33?C"~%bB|ɶxa6_u9Nk x24/AsFk?`x%:4fDA|WE>6 ^ĎzSJryҝG1y3ԸGMǦ9+5uXo0Y~}ԕ; M#Ux9LM&"E(Y(a&_FJy)%|+(GȼtF1ߒgۜ~Vjl!Vjxt' .}4 5?>h)(OEG-h,}/.oԟ~/٬?]|} YH$7I$QiOelpx|N?[nng7 <*71Dx2Jm_FG4] I_aO*@ߒ IYD<_dZӢ߻C|$CEq[1N3mMiwtn89O2+4jޞ/!5P^ggg~ \d|'t#^=#nbpp!L>{8^"$וm" [\rC~Oc% 8nơ/jOq_v PYlbpf=eƷQq> bN9ѨzL1PV$"ηX+'7]\q¿\ҏ* ;+1RY뽽[|뵻w56V[7Bd]@ݶXn!:GjxyCBqV SP,4:!{+T#VMl&0/jt8hF BnnO(#SCc1_)xT^^n UV'(S㖼F"όC޶צ,lofzF)眡QGis`x0IN ~`\GE"=7\Np^9,ǩoKpCvx\m_ 0lʀqOpյ[/Q뮞y+\ӉLT Y;69Ȕ>s%cȘs$,ͽL]DU"t='8w/XX}Ԯo[ 5sx SGF)XW D#0B_}{QH_;A?zިn@ F΀wnD4d)d"yEq LɄʖ? fbhsE+2_*OCYzN2\=u(0qԢpw ~-S@_+M.u6>I9j4).JOF#5:]݊x&s: Uш^ [uԓ8vI$y&!}(+<3KL;e$%.0k$o&1@(.zUӶVs2&~41"vp XiEL)| QdQx&)#g7&b,+47$hu@zƲ~+.{$9vm:h$)9k UB?nU <1xL4eR-Ixf $45A& M NҫxiUydؖ%=^)``}1z}Zyc+9C;פiĘgC_OR.\qT&)IDex|ݸHY>ZV;P [ 5NqZ~[k(^纚Ccg5z,Uppڇ["h`QX#4.w{”pJOiY-Y%^e*xYv˜jNйp^Мs`h&ؚq.2O# 'UqUuGA19pcEQugi/oĆ#^rRil)-/!(ksَo8v^Oܳ_϶Zr[Ӫoz}`2xvjpkQKn. s?k|Gft2o؜vxR;r񗑹)誉7~v S Z!s}Zf;ړ67圿PKyVSB1h?"pip/_vendor/chardet/cp949prober.pyTMo8W 8ڸ6 ةAQdeH~%NZI8f8Cç&h8K0Gt!rinV(&)'a?,fK)lA:V D>W.93qgS0EDʜ쵩@L m{j8s> y ~H |$rP֦O:: 4 X.v:鎙@aC+#Ğ,vDûP[0nKwB2=LO )62 n㧥tr<7nQ{Ok#u2]OII%17y6 l FNY{˼cK;>p}U`쾞1+v~iϑ5WC?9}hM;9@97\c)w'zÿj4ٺ(hԵbUT]i]^]bLmK~ƻf/PKyVSD}pip/_vendor/chardet/enums.pyMo0 *VH+5@.!A$S0vw@(~?Ṹp\!@l73J^oU!=)r]R\,ZvbF1!< K"6lȼAnͬӣ @Ѥ}Ze._);v~̂Qp 7q29o O7/"`[ 4Y|,5,&W2E?FoS4vVJJ%W%8Fn~x <fY74Ʊʽ f4s2+d5VE2[)  ZxɜrmC:W_nI.ۛU M- $ Vk4Sˋ =U V2Wͦ*@mǻ~ijJyFT!Q{Cz`xI؊䈞&зM>]]㭕vPKyVS=5n pip/_vendor/chardet/escprober.pyVmoFί%RBJͥJoNiUY=U.]r~8ܵ<;3//syS{Cwp7 ?%,3W\2F63OSHlNt7< SE2ӀAS4:b[$f5e Pje# F`֦S#HP$#I7O4Y闷] [ءR7T4RPU울/H>`Ә.!/|g L tJˑfrfO)bp獽ţ~-nh |@XRll"@qBILhOu^#WSi k9) vM=LXeRHE 4]xVC;.T# ?ɉRjA@#(RuNjc]']7z},p\"Vh͔FUrIS gґA!}mXI`O&IbGsRxX G<%vaTh*u7eta0 '{wL pzj0l-hx ji jkhX3MҺt ^T^&QR'Fy4H U̖)TQKYMgG{ (]Z$D"~%ö40t;w/ 8c -[MRv|?3|ps\!QS+>S!5[8]a>2WZTm#E`ڝJ!Sk^bv+5*sW53C'26:23mHQv߮d~#:y +4;%\u`w%%C'vkF'( S]qYϹ>1xƫ׫Ob.zdʳ:7ɯ&AR3R9U /fBӔM="฾?ϥr2#F7:7[7z=-9q`ƙ=y,ē”쾐h0@}>uʨ :=?PKyVS `)pip/_vendor/chardet/escsm.pymSH)jp׺ȢT ֖DRj_7$ ] Zt{fzWyՅvM8oא{:XBO+hx# /qDS`b[6\;|7 < &web*i2)s}WM=CSvSI 狈] EsjIZCY;.}h9O#ν'ay0p*%KI g?q`g0f` 2<&"'ȶ4sG8u ďrxٽqp)]p6бMmSÔ*S4#\x~36ک|l-z #Sp"?攄898*Rff:]c ffN#/|k z7wo[]bъ뷌dOqVJ:Mqy/Zn0ࢧCu}jܴ:o~hf )S2$J!'fr$a;r그>Xry[^~9J,M +e\5::amWnT]mpʧs7+'.WI8[lk˓.qN#Nux]t^W$]IWu%ҕx]t%^W&]וIWuU"]Ki-bdZmjFNN!醼nH!3Ig:t&nF:I:$$Hg:t:]Fc84k LǚQB9횖!&2x l4j(ыbl7,.Vg.JjQJ\rH꣚4#?>\F}p }ܥ*BF ~nv?M:Cx;~չ4߿ БǟaY Y^%LRt+oz48ƀ 3Αnب75秫Vk6=97(K<'j=-i _8P/*#[Xt^Y[X9[TY[X9[TY[X9[TY[X9[TY[X9[TY[X9[TY[X9[TY۪¯er.h)"c{YWK!ޫ'l8Q\p@4{Pw:ݓ# .JZco؏.i"CaFw#I/PEz L}Ir^%ZAzl?Lzo{o|ʜwF|B:k>AwV~Q&^_C {u\ v'@1 Y ]ض@F3ny{"ߎHx?|,V1_c)fxIP~|xb@tˆڸ D\;EϒmK,> s3lLs{ַkOIPKyVS 7*"pip/_vendor/chardet/eucjpprober.pyVoHO1jTt N&_FUTEbثE[ljE }f/.N?t۽ kw^n:\4b)$朄&5^RFeIa#Ԃ ܚm8XY(J9Ͷ +f W+Kvo &kh |fVj1US р4R5]"dvd?L3u*-4d~A`7U1LsaRzaJ~buK#zmv=\#qX}yI3+s.C_i$hⷧ~?Lxwswh2' JQn]~?KYO7Y,5Z=^UPKyVSAya4 pip/_vendor/chardet/euckrfreq.pykGH/FjʨK+Ok0 h8i{_<Jf]$TeFFK[W?Iy|ONnwq<8ݕuˋçñnʛsԳ>guwy;ûr 9"?\]I<;oZ?Rown$9nwyY{]w׻㯻Nnןr]|SOg_NIo͡<|pe)3R{woSysqU| \\?}է?\O^ǻs7>ܿɏovW׻rq]>z#Ͽ0RMj_(w7r8~y"coJSG̍fU^ʧݻOI!ǖӗ/ʽ'?;?ؔt~Mm> -d< _sƽg^ ^7_y#:I/PV\F1_7y6Se/S 9#'fgXKspw;{uf[c?^.._m8G_7JXRwn@< yU4ɿoK/w>Lܓ/Ջ=g_WIi;>_=?>W IsϧG宜~N3zt_==yN:C>b8cOK[i]jG+ceie7莋R$),8֚b9'_IzV>L&XdJqP0 s]sIenf_PòvD˵B[X&**Y "{]J:]}-dΖWLW=D4,GSZTAkXbu# K`iIHC9zRh̡M݈ u63+aw0 L$A`,8ĊglneTJil3&XpZ( [QG9"ڲ1.sr|'X=b6Dt86ki:&,V&M +[^uuO b:@bfgDZ y!cV0sA &L<\C^WoM'TO8F 6@ڢRlR~hC@"%&Ue bPleEV"` S cp(Hh "\DK8# ~do*0(VZ,*.se Pա;BNeёjm knYnN-WWqTYJUݲreԗ!\nWq3B2A"@7֦ )$!~t3o꨾Cl#ƣa0qa Ci28pNW>c`wCph8$5H>n1o𙊻{g6و]Q6~TA_njmY7Fd- :Z/ >󝄳+|L5rݯR`2ћXjoHe=V}& *:Pn~kjf^`Č?t v;' U\d2spNJ:ag-Gua03,n@nص'l̹"!i"lǗOI"4g3wdN:g%IUӺj%>/- X_XNAe@:A!p LkQFMu۪m 30#+(US Y`ٲHeN"a%+,y*FnO?eg x4teh;`Z7h_Pؒ\0oUtbևرqw2ӦИ[*u+}PE"3877&  `0"\Bs`>H(˻UV 1>#Gl@IXMjt6F29 :`@u5(HUu = .IQ/?$K&9:?RlpB2̧amTi Ϙ+a4lA 6#aŋ2|UW}PoT5fa#H cg`l`"$ ", Lˑkw5)U>oE"=b-Ov6/' la)@V5ԣ<ɝ,tB$(ʺ)edZ =f2"AlR4o-eL!n' k3+a+3FLigTe"9"(j"+XQ8ͬ| }x j!2S׃//?@ݿ.i'F՗q|@2:+9*"a=E,4FfdI$N bu&!xh!"B<*0 = mY'N) iQc.Xpabr>fiӶe=hJ> n\,#ABBf4lK cŦŊ)ج=QO. F4d9A\L3'#9.,RQ\pVڥ"2U9r*qMnA_ƢΟ`[KS`HYQ-#d>@eSŕ-xU ]#F,s ##;'fhr b6;VXQDhrqMmgdhMFMP׶}4DA고 0C#ڇtG2\|2p$82Ha8Tdg'ۈ1`A=B>h-Lj@};xρ]PŸN\=9`5@Șc(;Q9.5h:'>e%hdcng+(X{q;&V"x;M ȱ "$'?m1& vg^k#>ʡQDnJZχiǮ\CO"iG2'1LT 5妄#Lm8Q뙽fcQِyjf&Jg:͋e$" VfX_D0*3Ffdv z>ڶ<_DWpZ/[!p,Ldg {TDs9%Ku'GOG8Q ’DBDp>9KѨO2q-!8rNH3g*[y`'fUۘfZETB\QcTm΃Hqp܉,2ow|ah"*=m Ve`LxM(J=QDUq JK;2܄ʇ9$JG3aE;Ox&{10kf0XF;GuT;=_dNfqʔpno3\&um((M%Nv`o~:N X8*`Bݝ_~}/E*@/xj0w SZP˾nps|s B j37PKyVSI3:{ pip/_vendor/chardet/euctwfreq.pyݎ&ŵ*RBgeD-5[4<'.LM1b~D$ EW}]ۇgۧO?/?>c/}wwë}|sŻ7ﶗq7׭Oܿ;p?=nnŘqgw޾|5Ûo_<<ο|{ώϏzX?~1Ŀ3}={{WM>zx5׿l۟^ͫ<Ƌb}s_qoO>'Ϟ=_~Jǧs|[=xx 𧏟}qǓ~_'O_n|l{}}g_=/?`۾WC~+݋o%mLm~yw=|毾ov}NH?n R\^|rm 뇇ÇOO=ʞ//ǟѨwGFwo^XԴ LJoڶ$=qӋ7= P(ɋǘqw|}履~Տ#7ƳSԜh|42*7u??}ub%L7Jz}@,fc6U{z?M 0^|zߐ5z{xZ/۾ ke ;nnܗ勧=?<~}IoCc?#2?jɇ~O̿=?gϯ? n6&nS-6O12:n{I{|{\r8v6=.N|oJ/-~+Ŗǯ=z^_)n=a9z--uZm$&We%On%&3ӻM`5mͧ§K3?⮒m:wxc'ƌk\عޖ+Xvse=5Dx7FծGgǻj2s[Gx񷔝3ks7&6-Fj;oxb֓H1XW,8+2#>=\136%~t=vde x.`otV+QJϒQM,q;31Rj[exZ.6>6dz}?clu{gH$Z Pz7Ë2lg$BbBxŌ{fų;H@uϥ2)mIM,/[{J,v(3kv^lHaWۘzbsM GH ƭc$<[ˆ-i܄, Q;y>jwfr0)Of>yb X");gnsjz{RWlw!̱jVq`SbckĻ3pfsqJ;* e[{Nqq.-Vxκ SXuN1\94xȹ_R"` PDdc2 CO3+nOU-9 !U-`5* #F(L٥YpL?HkX [oeik ~Dy= %\%JT:DRD;=6ETP/*IR'!NYG=D-a0B#b=1Av݊7l؏ AŴn84/)TZ+ _xDž1|!3ɖkTuWc9TXhh3ȅi8NxG~1 6b"`!N=!Iͤ$,&?bă<;^%6a\$Dr KVOfRk4?Ďi<-ctXr | 0|~QNf=Kxw>xڔ AkX*q@> )t D#, wedq ׀ZX"`S )z؆nDE*áX2b0Q;kAМ'"`)p0|{2p; %/3- YDl-~PPd1IJbA.BbJX"ǁX%nH݄ b6XG {ܕ/|{1t&aXaQRh5+!6BMKA]|M&;V||BNNfTmō#A޻)"B`B]AA+ʪ؊/v,if?-JωkR`dN4!fBNb`BHL'HGlz)((95c'AI/}P'{Iw\F(̈6vxo$ HJ6SYb(y@1 >Ɗŏ_ЃhbZ웩/n,E,]_{ w*Ȅ9na)U#2e{ ܄I<KHrKYYӔ-z0HxL1^:L!/RK' Sꏻb3 &>0͞`uaS\%G1ք'x-&z$!cL"JSLNK5? /prcpr iA(]&Z*)L0d srTЃ1F/n=ot$W,H D 20rFPUH:&%'KlIᒋgfY8*  4`Ffܨ*T}C˂R(}_a੬UUVo20(BT!SY Snb=>#`A WI7!u6L$D:n 5/[FV8y J2`CI+:bu@¡JZO몎M79M דLRdhRlxHǸmcͫn]; -C&a8s|{6A sԯjw8YV5p,ax;c%J复̠tETHJTN,EgB˪92W <>c5 Y6#n$5ϫ>0I> q$-U$i7CUqZ_3\H3~%\ AMuP2, _:{?$JByyNEub`K͘J ؀۴Bu-3dS4t(:aLT&y".+һiɪe `Ekr,Ng j$̳P(Y7b^ÿ2P $klEseR7bsctC8lA)k+#˘wltofulxZ!3ŐM Rtfl93 N&K3 F*U^b-*R;%BO ځ8"T!`7f݌e=t) դ K}"娌Hߐ2m K>-#OHe'*@Z koM4rTXc%XcIO< vCznVc(C&D\ƅ؄L$X6n2yN1Dߖ!&/yYB[)Jjvi:A{t2]K zC|_BMeLIO9Fa5=V g8Y}+eYe> /iFd}r UNf|0Hjtbڂ3e5k6yE4*C,& 4yD XiºOֵn uKTy ^vÜtjbbl&8\YL Ʈhk,_Vjx$c,EUgw+ȿͭ<mơa+ X8p,FHeΔܳ*K  E Vo7,"|R$ǻXaĽq"ƌo` 6;;A#&cQҁ) YjyyZVnQn2An(W lIHFvӐϟU:ʿ/(.p_v,AH_ d7D:ƿ5]҄qCQGKk`8,#j1|uo|Z,GYX"LjMA>IY,u+MĊ/2p5[r|PRf;J 80X6M W{zRԛ'QVx,3E*ǩ[)%tB\;KP$D]t\k|hxYS|wT-pm*RQM.@C:qf] ObvڎyONJ(XpDt|E)cyي vz16L,4Z@Ğj1A6IqMydnn0cP `2b8Bԕ)>H9NgK! #ꤻ< &U2|3ړ՗ A"X~B?E 4$f!Urv'be)a D,{iN b](Bzn./,%بFd_@ԧ"U0;s\ m*wY -x+V)DdM圤JɎ6mQeYx'=X}Ŧ"QS1Oa05p,i*b6 pmjd$ten3d731 RM*vDHUstV蕎AMHz-y%>A$ w(?AGγWӦK"TAf6 Lg2d4Dnhl3PMe IC.hBMkfxhI(Sd0E6YX ⮁!жBdx?&R-"dK 7YW\6 U!%MÆ$U&[VDƗqjNo~ܮAXT:p7x"QӊF\ȋ3`btu@)=AeEDPX`f>9,FX{I_q(-K.#?aI:ɦpVk2\HM-[vۤXS +YGRO;-^vhgsb!r |R=^MT͢@ȣʔlpM#FE}, - Y(9LQtgٌGf42t-w{  4 e4Dv'DIt0E@jn Rp\Nl]| ^)%f05iذ RR3肌y-МB#(G &N4tƢ%E?l}e?k. v!E; ϊ\j2&KTzZHv)0V$&x݋1 mlIں'EvXAX g2SȲs L)']JH8 OKhX'e]0j @SYm0j3p_30x) 2KzIy"kC}3~ڴiye]AD!+ø79tAMYpI/%DyPnafQM MAȒQI8/ftK)n=*I)vg<4DfW*H8vlE$`Ds)v5B$8마*vP Kx7Hٌ'z͜(#++%Fߺ^50RJޘ1%nu@]ȟ“t'QH\.[hsְIXcj.Ȯu}&[ڵTiGT~޷C]ix )BcY+`ɶ6v Kz~_65HH26URiHqӁfC*4:SkNa5QP&CM4epLUW*W (dIRu0  B%91Rj| 4Q)ObYnsĮXy^t[,Xf V0;YY2vUkjn j:ܖդd^TSN !EIO]M!咊fB6Ŗv, 'Xa92R(6d mn+](ZkM|5MB}6V؃(Z ilEXbO/!!iI4"_9)t;W_tm08bxnPt[D=!s}bFzk"%B䡝2ݡ5l)["LJx:H(?]mG"fzmYMҭe6--&kUYhCq+U @cKS4"6H~_ XedI$fEl`OƐn)M)ƙ-UNypFY)wI y0&:`9qZ2ѵ: n$Aö%9nvF~zH.bbb_ Uw:ѻMPzWeVD* ^.t[X{,l!.iwD{KIB:իt[E=j7S͌ P:PmK$ne 2nIH[C SNK`y&R#P6s=XO,ut/kX2q^n<`Zn:D'.v a8,VYE|.{|H5wBIc,30ʺ6`G5-ıa=ցi`eCw W+97 ]da%ss@P Ȓ÷^piQ/.S<)Ob&ymny{#>gR-/ǁDPmɒQr;mWuȂ#Jʖlh- NӗX`x %b,WWӣnK]f\N{ HIpF:J@ѷ.bLd ̮Db;Ym>\l-Ox[F pe3 #6 F¿I{7,KL?J9Y$㒄D49&(M}=Tmб'/kve+ v loiJͨ~=sE(3uCxŖ;s6pHV{b7HIC|Y2@'{4v;c[Yca.O4_Ӝ N[3a<>r vMGH= zdJ,]JīnU0j^4P,<](J~.5:ྴ/ty!Bh[K%zӷn8jM\Vbn7|^X;y#Rk itZZcCiD854 ? oT"?fɽeghyiHyᇤl-/1ٞ;i;hs I:I:7rbM/wX̭O<>c1>?jY;} }w&N&*6γ1/6ɑϷ,S&T)K.n@ vAҜ^va|$_@F qV':14< Z2)S>& S*v켆)*Eۗ}[sEn jbE!J/ļV1mK 3գς#Ϯ2Mv`":$~ r-KO@A3YM!7Bzǐn7y:DnujM:ܱN2fՊ8>Kbii - :u l< ^ݐ]o{*`@.K*%!B쑤ѷ Ij>z[R\)/$26xdL #eH=SRvQu_uHVV}"wWkԘj7h"p]Ecl~VCͪgٲ[w-G^閳zmv?=dw1L>X<#á\duIwuLePg?i %U<%D1lk)N9,&1hiELx rEAn$-s39$I혋Ŝ ޝHMO&a2$:zZ`mg8SoĶf`m]u!{JZKȊVZ@x,7I:{%(RX/DOG/)`(OW\[$·tȼ"D}|.Tt[=#X0A6=upJQ%Dc$EzSms>.uiۺ豼f+ )ۣ!=I< TG@ӞzD3@%KI@ *P\Qf}.鶫GO<.'c`QAW4m_|rxԟJ}k]egTynht ˦s<@r/*I:ܣ5D\1c^k2Lb]?xwZ v57b=376]L$ckEqAUvI/RM hyImӦ> ޯ{nĒbIHi$[z. "1r=DyBO.8-G $GY殘2XV+~$A]kP4ԣe9")5~&%k04ž7W=tT;m&s[Q&6™f'  -J)u"nqZ,*Q6{4{r=s*@/~ma+<ÈQ7T`%Λd e1B ?8B%Zy' iGY$)͕kW' p7e;\0bvPtjNc{%7Z H]\U0)@DšuaXǛ4S1댱:I#mÃ+cڙ][Ƭ+3@D`,Ǟand~to-$д5c8,ݲ<0X @S,g[un-ߏkXnaC6S흵|Dl[%;秇 R״xi,,[6y\eq٘&KrHjb`YY*Y4m4IF4uݣ@UT0I '|( )Kaލz茬aBa=s "cA $[O/.SC49|͸y)pnj19Wã6Ӽp(l$!9OF${ YsG<ݫJH5< \ƌ=Q<ы?Xxp F[ញHWf Jw @Gl>tL)P'HŲ2n@xDDq7*XIIfB"۫D݂@=rf(ȶvw n4G7#؆ O`T518%H<̞kUNt8,W ?R[A*ATB/ 9,ZkC[]*];Gf!&t <r=0hgIpʚ_-[fymVl~aK&xvؙI2~nndb~PwWy B, g=/M^;3'F:Uȟj?l+4dݺbm} Lb()Zg[eeY\cHna&NGgi/*<ĉ|=]rz ;[>Q5vl!1lDR$2)yGgk^T+ԛmH1y_F119E~z- $-@i%Ǻ>"7 7aW8pu#I Jgo~}sPKyVSA8"pip/_vendor/chardet/euctwprober.pyT]oH|W /ۋVZ@_FQ`akfg6 -OUS]t}ChJQ4gѿtjSeYZ(L$TJn(E,hKGZzG~eeJdr8P?eRQ2BEQi /viKcw?@LscԲѺ1 WY㩭NtKϟBh:Zcپhov?MNs6VtGP~kX [7.喙=Pm*J&˙t{zIc/L& U:C;j϶pGKRzb̫)cvLQ԰Ѐ~DyC>k.Kfo!&i#2hӌn=ahT9+jy|- /.4yy@-F3ɢT kdGQҨ i8[PHp8\|A@3-n̼d{!۷:Tm+c)Kl Eflɜ]ze`9ϷO.CF>9ۥq)z1">4>#nrk uֱ/Y̯M*e! jHR2q3GhN{0XFDsT;<犟Wd5=ƭVs^`n\  FNY:U~7WtQuiWZ$& ˅;?K}J4_qEbtS(c}e5୻zSUx"7PKyVSEc'P!pip/_vendor/chardet/gb2312freq.pymoeUvW, ] $Cn+ (:@ E/T.+LlӭʯyV"5>9k9s̹ӧzUgOz|ןso_n^ݖ^_?ۛWWw*׏>{{xO~~ۻݏw~|xuC~_2p~;GG]37>*< o<-yCy~p}s%ݽ},ÇoRʟ|ss%3|,wwo޾_wڏǿeb,~)ޖ7slczwOwo~|ǟ~y:a֏?=CfZt>no^_޼~p]o;y~"勻 \uOO{?eYxs?2w6q'?-m[}0 [̪p]~yˌ}eyw_<䫗1N՜槟cKVu]&gO<ٗ^~x/^/~^o<o||o~R^\_lmnǫۇr9W7r o#m͏eMl'wQ~;O.Z󦫷v#xqc|z[$]Zǵ/o_/WA僋 O[-_/w+l ׿V.黟ʛ3QcY>O~P6޿p/Ԟ2__8޿ly!C' <{} tjxs}Ç?~9qL?6a(}](#>}ρ}8B[V5v6?˫7MpM =<_~ͳϞ|^|o_>?||_<OYξ-J/OyEzYq^1e۸g?Dz׾k-oVYc{5kmY//2BlqYƞp[r9mg>m?cd|~:3J?Fˀ9rlhR9w޳\t[' ';˚i_e%c9//JWR=ZкdeG%ӹyceKFk5F2a߲GVێ-\3šy޲W2L#{1~=Liσk^eٯlh2’=- #E/g>pF=r(nGqYٺ槲2 Ζgfc9M3̖}-ʡY7f0 ,fMa唷1W֝j,WϏYN;3M|&[j ,&YOUue|>i9#/O!Tz`duپ873mc 9.?aẂ52a<0F8<1ˉq`)Kˀ0T0r8w a_iƭbBWqi3KmTQCbU٤Z9"fV3#ċ ;b&HIsB^ (c9@5Io8y53VZ.fIV]Y +9v@c2U 6)0SPBXʂIY4ňEh Hzny80?O@F0HxI\jLCd< 3f68^:/7pz@B0˓BiXCղcؕQe&* ÞX1Kyp=F( 6ˀH`ZMRNo&R8!G8ڊSd*2=N5pA56c-` /N d)lX7ı71ba\}` ibB'2P-cPA77FVܶ|'5I8X %uk]tJ`|,FS֔Sl8V%"0C#Y.ee'D{c1|n:/^v]lÄV6$BeQ@0R:'vhl+8y<7rafdPG.d/*&c! b\7+ 50! a`wŨrB AJ{.Sк7؀&BI>0e  G11gBHvGJZW 5~/&ChCvXvWr!r!{b5e*t6eYA-`92|blBW5֑o"MN|&N_B`>}# h|Rsp.p&4& L.1g;NsG8`rG y&#.7Iڪ0OɡB2vnAaxC:`}Cd Y=yO; ]𐌻=0-}ka#]+Nφq0 e9-g /"BBd z'BC* +u+h75@;ʼn#w}7dtzUv4Uaa62LP\rqHއPPCA8ʃIiwal.E27ؙR!Mr-% Ć+no7/{ؖդ9Ɋ#Ģ VbH<~YI'* vg=N le#}_[%֕3%8<`tG#`7>VEֹa;H IA 7"L?dU@HDrҚ{H4fV.F$@t6JLD*&0R!d|ugP=Zb ] ċ4s&+&(l"yX^v˝#׃(?;n,Ŧ%^>z@#qo2EGIXUpMJ04iFG~JH9tNlЩu {=4HXAPFfbߞ`QI@F͠@r 2ALf2Tt848chɻK fagzNozVv"aAU)Թdg/:B6މoqTYbBf=V=%3E#x9:$|d_Vn*~eYk2Lffygi8*MT}-rB+ `rsJB|u(9#J0]kˆ<(1L|5SSqkDB6Պ!@Gjs y3m E 4A.7 & @@z*o^4z,: E5!T8;V\:uBE=4+ =$Pρ5` lLb3r9(aU o{WHbl vP;cXq(UUe,(\R&Y& A&dR!\7S1+>n FSSϦ,Ch47B *TeQ^b6qVojtL:ۂAcb̢ʭzaOiEh3ˢS 2tI'@1{v4qaHXY` >ԉ\b%?u@#ǻJ" bb"R?O{E(h 6јu$OGF4Nk{fM33/+4}rW@Oᨭ-6 4xV &,B!TI0Lp r(44iC V:(얨lqJv.eivnvko3{صHN -J=xo2ٕz 4PJz1XxϨۯ {[Ag(vP8X mRiV5d%$, }y,FClULi6 8I A؉JJ|&y6|#dƽ0$=&S-63**!jPV!l=w:v[?B 6j9/:9ao{"u7)F?/ LXPe95K 7;9UwK궢A/dd5X]U N/6Նml!>Vj—E1Z `OC,ձٶYe0#,Ԧ\V73Vt_56C>#Ŝp73jX%DPP@͞GHZ M;ޏR`wZFeKnhrQΙk

fo|+ܠt7[MɓFR%v! S<j{p+JK]q!rH'Lʱe47em}skR&Ń\ \JC\ܞ< @ORjuS 6,=昷 1:BȖnZjQ9 MdNPH2q+IbPi/I9H em{)0f{_AJDsdž@;1ヵ23ۣIfÉ(;C9@ 8hRI-:AVo#8/I5;DE^(_MX(bݽ<@JJ g joq]%(NP}]C8½6:'Cj dHO(YP'Kb_[ggQBU=C ᩥyOtj#0̴!;T~`lH-s8*GUt@ڠ^)K}4X~%gwu{ 4mu϶q ΃:^eºc&#l(e źu[ρB #rMEi"3-@hj[zzI_ \$/ ZEf\J(gQ\:;SJVN~͈l.~*۪)74IɟQ^n L0:R"Tuj@ 6L5-\\H|pcoAyF 8ҩ' OOIdN{9yqͼuiϯf^QˍVj*7 }YH&O1Ţd[y*32.t %FfLV 6y%} dg?rNNUݯ/Ui}TJ.}<jb7 }It`0ewڼX$Ί^d]Z" 'oyl@6Iܶu-[[ "Q4~u)MR$h8vp"l}y$[(w.QRcѸ`"kW SӠCuh7A4AtJjL\6h׸LRELZO#ccFe->f)%z;OcG2>.y:4˼Zì:5UU0m8c6Z ?AOwbE0,"mslz`I|B55"i|RO~mgGPKyVSw4hpip/_internal/cli/__init__.py%1! {^"E|b>HigFs~Ǡr(nAbb'H0d<潓UC,x6*Ju),4g!n{Eu^0H>>[yPKyVSp#pip/_internal/cli/autocompletion.pyXM6Wa%ī69u]A"IуaH\ȢJR ?$RӤ"9ÙǙ%INxEjҊg&85\47JӺf;x!e e/$Y,RJwZ8BԊHycOi.Kǚ-;ܷ/V "˫'V#ddT"mv] 6vJ蜂tG5 L;] 7J-HbƊ20SвӚTT[7GV7V@_` 'ȡ Uvu[<R ATųɡqӽ.]*Atmu1èc&(> D'imʜ91",`Ihm]a|;7j$т~|h8kA|q"HNIؙO!/돲cD@0ixu5“x|^$#Tޕ%/phhYǸɕce9Osc!֣,m G1 s J0u5sL]ͺ/ ><<07 (j K; ߃m:K#PyPY :쉋Nc2ss 17>}zd^(k턤9-Y'滭qFYb.6E?7{P3^m9}z5m2ed.XtXkSt[ Qް)Ee&fWRti֬[mg٪yBTE|cI~#>#{N_FBpa_q|8ᔍ<u_f;!I7t 4"=x(ˡ_u*}uX$>$#lG]jppF?׸t5qz{5qwX"憐_ h4o0Mj,1Yyb'* .DM/8pr m.,]J8Y_@>Ɇ Of ,pÊw88jO(^+`3[Z. UCWt.2Ƶ (1X;{"z( D-]cb@\zdW]x \q*,qvblS!A05]OI?~Y+P9neYbpV/8J g5a PKyVSv n!pip/_internal/cli/base_command.pyY[o6~ c/a:zw'Lk4u3] D;ܑ%-)R%N;$y\(.C݊Oeb)Q۲RE.)[e&GTeU^I8ɔlbCJTz(Xu,ļ;SP&\ɵ(cSdM%@TO|,~Z.}/\/>}X\MG%v}"mH6Zڭsrgy!]BL{wZ>6+;[:qx2䶍'|奨x&wM{K]|*őq[?3KOIz[eOl#+^b3e9>SVPjcko+~/T=o?Nu+qZ*/ņ/ߥtULϞsxm<G#Iٌ=FMD_F#$Ѭ4֍]s|2l:7Ʌ@ AyvP5lȟ![!Ȑ,X*׌CCUq>62[_o5X}Lasj΄-\:Y1u M&qKx2:GL,O C5o&ygBY:R\ѯ>FǓد$oQpդ6D'pgN}6_edD+e<-P3rZzmMy/0+@̇a橨cMaU'eoA-[T,xn'Tdx'r p} Dw iۤ{\=Id#$By[{6oW[@6tTI] ; l/=v^7Ɵ):e fǪDbІ۪dEӮE_KddCY)+-5+Gdt~cd; ␙Z l z3&@ȼ:p$9$ ζ7S$6C7>5"*Z(4om!tmŁN.!5|l۽/mׂ(avj(wh2V*S!jTy"#h*Ewzgc'LJntSZӭPɤaܕlO ]R_eшZlIpV36BOgO< egWH$< 30P/z#%\7@8"ɪ08mSHdp|T&QwpPsn$;oWЋ32y]٦eKNK~6h* (+ }0( ١B8c۫ DUEPJ Mt˜hl{=t)  ǢaySx|n d.h2vꇷ\@9Ce]An~QwˈZ(HJ.h:?-?ۅ#ʢ_P$Ȱ[])uh=p$0 +6\6A=uYs-SN(w)'FC[DdcL@>!m)lؙ^IMb%sUp6]") ? i$ #I(É;v:;h3瞽μa( яLلcI eQ:":&G!f~#4fl0َL2N &OyU$`/2mε uZLپ0r4o ;3St v~Mwo)eHo-:i̭;ׂ":?~ Y .="3iS4`;tm@.];O%2$Dʦ2ҿ-mػqsP+W,tgYtr-(}xJ_^;-J3' ɜ`j/s|{F5qWӑ;5zD{+U*[f w97{Ib9:1'a!T8ݩPьָ4[;9u{JpF=qY;|!yLԶo"81jr.c֍Q]6jI&-F;'tevMiJ–/+D'S8\j$T`wUCaGeCn'-ltTak+"}Or*Ni*պ. EvvB3h^6'[vHN2JM D*Zƚo1qds `.a)҂nzYZ'DJPKyVSIDinpip/_internal/cli/cmdoptions.py=sr미! qt8Qg{Iɛ#P2u_ (t2T3HnnwonoEINjPefeѨXU]nzUUgEUVk]k5-B/B>e걚o[li͒Vv7''y[V) 5YIkgZ%)~9$U@IzjO溽׺PUR7UUYt$,9 Lk6_J=u R)̚V-4soreYyyD,t$,r&^&igm]_9?|wV,{bw恶mR㬪]=$}=KIvWחo~5{}vi5-''' Tdvi=,7Z4+m#5N\zz4D 5 deBm3:իA)ef`ɈLas;37n{. ԩZFGn8UGٮ0RQȣ!*h4:q`|'1S71n۱]#{⥃z "pȠ&ӖxJM& v% *<wzx+" y&\n"/eF4\B^,[!8Y,C#d~c!DqJ,_X7Sc`{oaNwY"[ݯFT' ̬HbO[Q))ٸ إV ~Όׁގq:`}f[3nmbpdp4rܺ'|}jڐ V:$m[c G1dDLUdB0޶iQIW/>sl3Ϳ5ZִK̶yL&r "#]`oê,o\)yF(NPmMdx@&ɵamDLECB1Շh FZBL{Ҥcri0$jD(k@gDa{/2Y4bpGFmhp;`l-r[g'iRف4vĀLN`Y*8S8VY&sĨ'-.ܺ2[ kcM>\ #=&ˉK~#A,3VIQN`yB9)?\0a8%6m: wpej !$((|' d}|`OuFے=^r":%Bz%j` lk tmLUwcuBiq; /V < k TD1<\7dc"j'ګ1F4F#gN qZV~&%:䂅>q?'O,< u^ͦ6pDZ , ` ~0o XM֑4A m4HhOuyO!+̷GMgBY8 ڤڶ'CF$ݞ~ͽ-9Hu/ZQe0nWn&[P\=p`ڗu@{-/W+ ʥ](rhDxɚ^|j ;AۂBh @qeAq;q)_Q0XJ [FjmH6hypdm, `hy* 8\Yj_ΡF!#,]\_ŸPmsq[B{nP&0U,F>ՏD,o,\O1fnP7byHDT| `֣4e1WyG!.]]& Tځe=h~r}X3(Z— xx[zÓ;|Xf`cT%H2=fQv3ǸR tv9%GIj =?vHKy22D(Nt˼Ly` m dS4/p R1մ͌}EWO8+qo<kw ɄG^ξ8%ѭu=3גdo",>kX (|^(]\"Y׏e}1>UhFZ_i g bdݲ}_|w`/ƪIRGͯVչW]GX:?2-YYϮS}v FC6O`1 }|}0|u4$GNs_D|IJ϶u~̜#@U*󞈋l2/?vqCOl= IđgDap Y'&yr{B}*$ij~7# $rplɓ@qltHm,-IB=j8w@7}BёA!'q7ꊩd3i͡~t%SR}=| 5jH,d&`IFĹmf3e2X2`b5+X܉Zi.ivdb36BIt .--tУxVA:䦫̶i@l4}f `8#)GSӑm}4 u(f0 d j %x!%([~{uO/%$~Jw!Ty*c4ܮ*k}-J3"ii<@A[닫.ʼ3Xnd{//Cvn0!)sQ#؍t*џ L2lmG[!<({Gc0''ڊA-/tiPli>U:Dŗ# 96hKp3wb`qox:++jV T#v(D0@sgCMre9f k2o9&LIF❤HHFv=39}kd]c s~NT73TG0lfTAز0ζ4qpH3% iG11wOmwD̩ZJn=.Xt8jSkTΊ;zI l$pU ?mM*^>o )nH~[X03llm3^[C3qܲ:y 7I=vM"AzTWGʒ}+m"$97~9+z*{>r*n@h|mcG-!cubC$WKrs+Lklwc>,/9HLexUJ"f^pM3/ZSlp-@W" +{0ZiMSKL&"9zVְUW#˙c8w/.<-Ix3x2ӏ_ DM]aV*߮;ȝO3M'> Pǀ^5tB>[I&!=CTlGz|5Gzƾ L]G;GCt82>2tmyPI9j8ҡ$X&#o> E ԉ* l\/)$2U۱pt] `{Bbs)]bȿ(,o.)7GM;8;<`Yk<&<`9̘+27C9ƞa ^gvƢ9ޖ1Z- GOzA$p̔1VĊLZQ,rY]xY]a*;qtnZtgӻ HD e!;Ew0vWaҤ'zcZ0czgßcc`!x)̬0t'}-Ijӧۦ~JIO%sG1.$#R-HΗeēYv*ׁ6 F61lmjP/8J{LrKRy`Q6\ǭ0,[]8Y2=^xTKt6\"aÈnJ-`9[¼#]Dx\1 ~ Lt>t=j;ɜ1Ex!OVZ4Q.4 ̠+S*X n ~f=8uV.2uH x1s!O:(" -8= L,"6]s]@]y@6^2/^PrV/I[8Zt5]Zrℐ(q0'wt[`Efb4)'hjAH0:eλT8'Z,ʿ'aWCΩ xl3v>mW_S1 Ŧ]40nKJ ʩ?ni2=Z7 1+UnaW &3 ztG!Sv3иQq2{F&L/F`#oȺt Crb3!f k%R~]:xW%A ϴ8$`'_QiNqJ eY$M^'4']Xdxa\%* .S$Nul]]//煌f{Q>]NT*A$p|@0TJ'ͥX]Ѥ̈w*cRأAP$^3.EAK2>, dСU0`/Xl.B=Iƞ0w;\֮?;iS *Xxe{b[2Eѯ#u%\4:r? (]p!W54btt5k3Ըĝ0k`&ܑ pУel@{.4ʩ=gW@|ʱ+\z L!gKc}`1^a3dWg_= 5 2iZ9dI[k;%B!+$'x7f̓w`?^p"`]/wV. `h.aL!  {Qi \%K>9,k߶$0U Q^'И^_=ޯIAD;׼RM ~M%Լv^?y\*ax<+ya'<IGD/vhJW=mP`[!G|P:CTxꞸ9ތPKyVS f)$pip/_internal/cli/command_context.pyAn0E>H)RJYnraH C j(nϓ+5/!I"^skiU~Fc?Q;d[>4.1mJV"_y߳D% ms eZsݿ`0 "!t{j ڮLlҥ\[=~rn!RE("(!9bYsX-8|pfvOn/E+ -E2Rzp}\.hОU .^ 'as uh-R PKyVSjYd| pip/_internal/cli/main.py}Vmo6_)f~5EaOA IbCIц=GJvҦ3`/w=Byũ^IaЪAY#7 VPdyg BJjVvZ^ioy` RgIdPCQ9Vl?h/NgT+KSP95蹢Y>9g[cP,X(QeL^x,Z lUFT,ˮG+ g"L-FO]EGH(/dԑZʎNTn#J/׎DGځ:yT &tmFSx7Rj?eMя<$h>#i9تOxMBnk6'PKyVSñ $*pip/_internal/cli/parser.pyZmoܸ_A(,d%_i ( LY,=U0m RokluD&ހ5/dnqlCJX'WeJlr[2zf|+QLױk%#ۖ䆫ȿs +V=923=-k&_, 0z;Mw oƥ%hdai~qANɟDZ`U2#g4\`+ҪҼ\Mz?/"r#p[2@%쮽YZ=m2 z̒m-5=2$G8Hg՘_wNܺ8me020v  dOs82&-qGX~yׯۿvxSQS W lNg  s* vwlZf; j1xҬW^ˑRYB&QX#qR)@9y"K\afǫݸa*vfv6 ׼-vu J!qz m''A^q)lU?S:?f)h}K[~0˄OA1uS{f{:RZOsrAš|wZQg3i ;i Vv[N''Rv+,i :()TI^D@=56Bǁz8P<`PoaO5Զu0)b{9OuczUZv`O %jTbBZ;rP@Y#FpJMOu bx;1.M9\ $i+݈7 YnPl*5᳾ЙH{;f@>H[nfc36(g[1V}1,u0M_J#;ɟ &W'̌0P R$yAxo"DFY6W%\d 5զ|O7gnuS{~54t˅Ln1ԟ;:W+ 4}aQ9lʣly++@W=uRV@QPISưў.85$[ !oX%%9Zgg[,-$d\21 d,E89==RXPu~>;&1[T:&55bcO̺:4 [J+&ÇA]K%XGjl@*`&> ьYeۋo;oA >׊ã/Tl-kA%V%K0v z'b(e@3b+ȋ'=q ߀O}̀ ,0kRGL5 (`!O|H&AG`kqG.XwKf {8ƎYc*f˵B=1k-kPiDSF:֡=&M#:9+HpGM]Pf?Z{~v% *k VÍm{,$}at?jxMi!~(2WT;Y XHCZ@~vpbey.1Ʒׇr@5f+;f|Mia2^z绑.d!UbI>/PKyVSsO l "pip/_internal/cli/progress_bars.pyYmo_`D) u|hg"56Ҳp IPIU-ܙy})WҖI+U4#o͵Z1#/Y}} +Ĝ7N*J'a'ZVHvQmF~-lz/Bj1ٌ w,A})u^ n]U+QY^/}+!4k,MUm\x=TEO  JU ӭ#\S#՛gW:W|G_5LY!s)Z+mX+[ .0YeSc--e0]9N6-{뾠'n{UAΦF"ӈ4/1Z Eq-8e9Lٳ?з+\9 X+c Ky_1ۚèV.ڈO`ѣ=gZ)p%HWLN P$]vwoY)"Oik! %t&#"8cJ ]EB"Tw9_+}gF*ٜWDʠLȖ$3F)lg6$g%q^98*@awnawrd{+:o?]@ngԉ TPH\7HpѿB$O it@•4qJ~E _0U;)oy߸!aZ*/ n-xP8ƲR{_7渔w-eF$aJ\ g.`q`8FKJ,06'{xDp$fȮ̙yƮPͰ޻^g|:\=fS KaE/)&-Վu.rnD|F[M̗bb X,j8V| [I5bAΫȩ4p1Rf%Z<zS>gʼԂ #J(u:  阜wžr0.rݺtEQ?ғ5A**c1 IAK-n̨-97d7'YLW_b 7iupwmjqК)-F)j5pH>-OѮ`MG=QA2qMbٺ1-k2./P)[}p->IGp_oPKyVS%߇B pip/_internal/cli/req_command.py[m8_S;ճ9.΀v&4.%, KmYҊRw|WU$ER%3 Mb^*RQ.d݁Uf̤ X]RUXl?QAW!ٱ.ؔ1ɛ:nȚ\Uu8/DgE}_uV vٞYToY5V;AE9𑵢<1qlC 1ẲdRU.\1"B+2?kiɓ\v}wu]JYMA߲zdwjpi ٭؇fM{#8U[x簬kl v-˙1n|wƌJ17DQzZߋWUshe]NԽeF")KjDu4ΏkҤ;5zJѼH6- +da;ނ5.kKSw34nBc+-@&9p>ihPp0Hz 7djG^ȫZ= QWk{IB`]-*yDSoLGEs,SoQrVA1#fH] d5u˺q0G|tK+]x~;X4)=iL : 9!ax#a?6i!Z_/nLL6ݜXytLz (g6Vx'ڮJ^ݙ9[iƛzu؊ĸ,-Ӵʎ8闘nHd:Chj'=&s^G0Cz0D~o|2p7p_\pGH{X2l[eUBx+V% и$^FCCW!8[A]\(={Z2=N40h`M ZvR r i3F@|HWRၰGh7VC.y[j&Te* \;\qiv1cfwFT,GX":290'؏^T\U)us{! hQKphA8(.%2 a&|2'c\~576orNL`,Q]7\}Lo~} i׫woH(뷗o//ߥ2DeIgm] )fɴn9R|и}.vǽA}Q%ZZկ0-Y*4UuE5wPB[VtLjK?T3\6) `+ *L3f1n[W\!)eXg``cV!$×N"\@S E/(<[7aw_@<92aDLјqp|)݉'v-V+@F'\w=qZggtJu  (ÑS% W?yFgfI6פ നsWovciq$,տ?M=<&[ahU/ .Q`biDE@{;{Km} Y4r*#D8it[Oi}z.+BV-&fG<*(pORa6`0ۃud-zFƻwi^%/l0$XR*jh6U-┖DcY,kO*뚛0,4_6@i¾{XRL2ybύ[Y08_TL^9I')JE̟6_"@ ~%QBmU-3䙊3"mnTMJ_!^#h1I` kͿ U|, J0 Cqg`mYC :CeAm&lO-%~-izr5)Kt5G4PqԃV@YA_ӿA'z$Qݷ0V.kH~ :@PaÖ :\F E%gimHEU=M;VqY-F&]W9(!pOR}%[œA634GabZ '[: 괯ʹ#ൂ# gzSakχ^ ,|NfٍW؟RIo)S0e[Kv):s?*jx 36\;ȣf@/SUG^oF!BIx,>GLB?XAz\2PJlO3d.z:=p 恍%3޶'7]1_Aݎ -tVsBW8W6: ޭqMIi܋E0TpǃOݧ.ۜ:i~'7%U`ZvAk9j q=qTq8d0dOU~ɽtm~lq쐑/L1d&qt%߳=U=hn>d=U:L,{=Y{EK_Ne+BOJ@:~hzK\ӻ6#=-HŦሏ.Pbn,GmUDxKUO`/i0SL}(񱣿-1E3lLg\|ZNOx \9p|#HFxXQhAVqe`H'ŭ{J3 gł*gϕA͈ nh>[b ɳg=QY(3㇛K{OȖeZ?^q:. k&gh_ؖF tƮvTF將 5霛 vghf4WU=+wXC^u m|x:Eu=GD_|+K3=;J:V _'~)?33/``'$1ߥ=g?_H% ~^,DNcD,ەO ?Vez#4ɹԁFZ˗(bY6Qֱm&EN{\S_Έ{FƲ-^죛ûT|ž7B6%{vf^[sw\syTubԨmN$鲩퀗R8zǡ;GeL7tq]_}*{/UKis@@T#NsM%nZ)ѡ[mDtV\P1t'u@uQ)҉\+Dd~Gި4:%VTڗ8On x齱_>=em0*%ںB߼ PD\}S rnE'mMS靑o$)'d{jk_ePKyVS$%pip/_internal/cli/spinners.pyXYo7~ׯ diZ"48@va.%V㱇֖EQ?xpf8ˋRiKR%-d_xXi0PlZnK>9P 0LLfJ'V+͌_9[|\/ݭjjIERY.Lp5?r?{4_1 IK-Wr0ptimk7~mXHZb< RA%LL9Mɀ/c91 L_s%#i Ú`fٙJ sڋ*:VTj+JSoYT}7aڰg],F^ 9X_|GiR_`arDΊkR!TeF-33.F"yZM 4pu8& qJ$O!3>1)YDS5t{7=׶bpF{(*x x}Fߑe =z6Z4hNʨqS8h ɐ|ӇhL<|Ia_ ڹEbpT#j5LS+ȒJ%KޘVvD [baB&./3U25ȈˏBX;rوqt}tb&⸣8{Jbu*BJG?3ݙ`r )Ovl7J%M3[inâw(ͶPk3',ҕ~#,Nx+yo*m]^SV %~v3jВ%\j4|dYDEW^,ɇMm8r}8={rL?ul?P~Lpړ]md4 mfvUEI'q:1a)hczG7_>l\W3=|ĞOtğ@8d> VpIcP;X(JA5K-zMưJČ.Ic9#u}W=:0! \ĚJ W(',IBR-bٰcvAY2p et4i ݚZ [p9_UWpu㪄ǧBgyμVo ؎ΚNpOL{ _ 厤0=mӛ&EZi5?Վg->W]*3J{G$aJt_+?bqc}9 zdgr{w+7jcd.&}E\ff ?_r35H=rU4-hB.ch&,וpWQmC 難3Z fOӦAd2?y &'BKh9Vqfk^2omiNfs1+%qc*ff}yX}@@܋=k%󝫍 }C} D\6 PKyVSzKXt!pip/_internal/cli/status_codes.py= 0 \2@D$(iʘ6˖RB0Pv3ZjԜF \/V@\ӆqPKyVSACv"pip/_internal/commands/__init__.pyWߏ4~_1 6\ip+qpUMƪci/ wfu,f~~O4MY~`{V %ЈEuTaQ78)vIit6R lj^8c$\Y\6WcLP*)M_xO.Vˇ LhplجW.#%Rb._}/1^Ѫ1J rֽ4齢L{A_Xe0 kRX70H<i.'cӓd]c+ NQ{L ;XMլbGsj0&**~6HlSt!J Kÿ7ņWBzTLJpwVPՙ͕w9"tgľ<-u C~mH]#X/5926 Iw1q|[q!5<~؉W$/!7w~zpbfo74/atO{O|h*mhDjB3e I)Q6 os8xYϑ+>o4({1qC|ݍ` @! ζF =wkE 5"xև z-uN |f#wt _G.?pb/>2O,zvxXŏ*xg>(ltd~6"1Y+ PKyVS8~dpip/_internal/commands/cache.pyY[o6~ 4DjmeXENw i0>"KV$79D]d_>r}-fB Al#ŞZשTeÕǺn8g?JϜ㤨4UZƍ.Jo|RźoFb#+x*dbOi0_O(FSΕc_8׺ svUqۭ-? YIlխIR{$l6T)vf;nu3ZA@Wf N 9SdJgDzݬmҬ,X^%މ;nq $ y-QQm?>Št-9򽤬S.'Ći 2Wy%ߋd铉 IzL Fn;,YFD~:՘S5m)֌%W i݈Ŷ@Ē^=@>odiQȷj3?ok) uadwv0_`{ww7`5Qd-`bw%y"L-޳KH-8; `[O3]T=hL d,LHfE*t, >厗*% p Ultt/풑ZU׉a!LqQomlhݼl*/-BzVFUZQ>_rɥ"{'*,X/ `Xvc:\b^!Rb HM9br*FGM_ qGŹذJhukٓi5ahhq́u<4U$SE9+J% \72Gg-6V‡b"=c}ou:~oUĴ`5X1!YPgpak%N 7; &T" &^|'|lMe%c p NS10}̳e1DVk#gU|2«1s/V+@^PDV;C):O0CBiDE${IԷ7 o.p;,~ณo;輛[hsk&#!GEH\؁X˟Sӛ}(ΛK?*0/eWL/*9'x(rN5WJ{J@Idm^m.j>ev"`XG NGkyY W=˞3(}trZڨiں0(?uSp憇q _C*+{= @˵P< aު`,^n%_,v^CyuUOtE EzEV5kz.($s9T %KyR9kq{C>96k` FhC3-p.@-n 9ێ07ǧ !Y_«71/p&]7t'YBm[)8' 0I 3GsZE-+vccO\ /lp,9K(r}%p`j6'cyd}Ǻh&n`2?Od \h?*?^ II~GUcMu@YZfطcy1xy" V(*6 F, va^ oS8؛^8=tv,x;S C%!-V}mNuT]hL̹sƸGIe2 ƳpQaՓ\u2Q0*cǩ kѠߦ4aе jq,+fVSy~؁ ¡2G yI]srWILglQ$F7$ ٣pa gd~Sm^ 1p:\ڞ޴ۉy l!UlXu!{z/Gݓ{ER`/X-P?RﹽԆ`o&B?9ku e.am;/3}ΧPy5L!;R6}ph.^56 )@>Aywt[ Qo~ñDkЪD; ̾fƬ($w4]4T ;裞$$Sqr:^Ȑczsn~T78&&㶇͉,yvm%@N%&m/7f_P}Je֖MR*i>_F'-Y§L+m/,S$9f k3xTodBރNKzTP.p'g𶒹"&:st)+M.r Ʌo0ST]m.2*wT;J.BH̐ SMk(4_+sxm|P֮-txb|AqAUq ғ pQCv"[a)2~H(Yb$eGf(r#M+UrmF? bW;\f5d`>Qp@CMq8bqq68D0ocJC9 1:bRP ZJ?Ɨbǫ5( =ckhL_c72.Ѓ`.`%VsFb:zN ygWxH?>HP8R0aܐ,*L*A0[5vOMeۡ ȼȚR^]/]]'EA.}G7d|A(~qyם-hZ4>^,Vsiqgڳ9 [N[GZِ ,GGrY&t]BVz) ق"a%UGO Bm$#4 ybvF镋I{4\!Z msDd>'f(ɜ[gdv:]HACU"&AطfJ )FqjA 'oJj9UV㌋3POn);/UsSfa%/ց(\5*C恒/,^ja%dQͩ@ETtI(rRDKI f&#Q^aV o9@碒P&8"{oOYc=М%glK\-`Ahܡs*4L;N^gJh~՜[v)bnlґ ϭ@։1}sBzAM!6}I }<_h!cݡ̏`=fZ GfI~+bD"'A\e3 |+3U|`jnoM͞n,åa;Ni~~jCҽ||ֽߟ 6kU%7>.nպęT :t ҲrȾRSgcjϋjR|bT: ='7 Nـl΅ ]ݛ0Y :heZOu"{!A{mбm =c?36L(|P qHycҼql̪ +9mI30%{נC7|Ot6\7j\fٮ`&%:0yK6z5œkbZ wp+LsWmj/DPKyVSZ]pip/_internal/commands/debug.py]o6}"lu j^|(-/~3(nb6E m/!,XW"|յ)uX^UJDgJsÚ3srh-l@9~kr) &B?{#dǚU}NyWJDyԞ\c_ʓ?r|w0ԟF J4R *zB6Dg)RZq|B-ʀu>ϡLDB˾rjk̠rIUub/ x!ڨ5ь@>ˎoV~\tL7zCdM#BP(U[=z7IfV>$>Rd'9Ax H835 mY轷_gRHRtD-85I[cH&8%=ŝk532@\9BTtFt\F5Q"^J|#R=T@JEW4CT0A:(Y q'B8*Ju&|ݿ{ G0rP}iEE6i>8mLn4b$IZ~4T97rq7 +3>,^}CDIH=0Mc5M+4SUxݎ "R8i{d˖&}AfyM_>^ X{#ePV5́~_k*WglI2QH&?s(%JEiZ%qz_u#w]}v+ț, ҈:${ClӦ ~ oO #|dؘ}x;ijͷ@+n#eplxĤ:E#"vTeryC6R(M# @O<&^poرMyŒ:Nao͋$ Cb{v#B7!ah` P!܅Ny`+!+zB\긢Y^i˵fd<uy+afHdNkn% ԊMһ1ym^ACIINPR`1בtـ8#g`I,/n73!hSޣ_R KX9fr vFۖns;El~s`F6FoS ^>2֩>6~[ E Vy% pas? Υnlq$ Ff`\JJ>2 wyxo,"K2pn| H 8ّ?tz}`iIh~%mn&[n|vfuU͈rICT>AW?rO9?o#9lDwq~O (Ћݾ5y627E )mUvVg47h1jOO6@>`?6v;*j+? EE:!,S2o雓䳌*wdK1)NJAQNPtO{-7#RKt6D;N(Nb$3C,kvɨ1xd7Grּ\]ڿo66ooȂֶQCG.) bM~9C8ps,Br=G'/ռEg*tyn)<-0>Vrwk LWh jkdPf\|eh#c}b'vc rֹ>CyH.u3 Ұ F:CZl 6( ,0Z(Ƣ)+wU`Z*Afr( O@ң$|4ί'4;/XRu`y$`< ]!1=Xh ailI <'&HAh/*Y4[@$$ y>-W'i:@uﻫzv v$rw] u hՏQ/5trHQbqљ/-qPKyVSm("pip/_internal/commands/download.pyX[o6~ <[A H7`@1Kח `ibC*I9U)J"}Ik@b[ssQ[.3UfjGTc -(o&\ZВ|)w*J31P,m:[+yNVgZݎj>\)KmMKL9U2VhwwߟV L֓ra7 ҴhHwL@fktAs Tiymv4oЖ*f.hk1>Gsgl6+3QR(Vc`73|Ҡl0:;of"wEJ!&+fAZr*BJM?ݓFO iU%# r8`PbTK L5;6χX&"mpTg{qfayYItuĪJG*=Jz7$N5"kWxЖ&烜7o{#fQ=Qif,`ge$r(\dO:uߠCXV}dnu %p5O%qa f.i[~cg_~#%Lіn ֯D>eY-M8z37R~NxxhV?,n,i+`6i1D- ziO@,Be0tt3Xt6#c6@@s +df &@KXT܂h7d#MI؏ $׳ 4wxjg7Ci%D긒Q\)ڟQR5̺eprǞ)il ts;5w)0?$K܏\X Ǒ[C.HrKn18<{RmskIIf혞K딁ʙas&,|] ~nca̒Nxl nITn~Q_vAb[)Sг6"D;l,PoBYUq?7Gչ_QFבk_Xj9 @ -b}o,T\9{CS-vpg(3*UW#z%BHx1^SciS͸ѺtvAf;vD'-ts/Cxp2=H>%vl(8#|/nA7K0nۯ5g~f@GԣxfAs]LՒ#W [ȤZ,RNrZʹUh&Q8,n+r{] I0c*/qA 6< =$=h4PKyVSpip/_internal/commands/hash.py}UQk0~ s d렴t}P쳭UeKY.ӫ SFFg؅5?Xg8@"Joq>Z,3_1ˢ ިae&1sAx ]P ~fQf+!91s8%Mk,kc;JQcCiŠ;Pc)v(39'"䝚bo{7eA|GpR{MfC\W@B^v  7V [E݊͟6orWjPz u,܏Mpy6 km+C[pEPȂf8U:%HS5c|Ti\ThK+ :jmŌco>_98jj} cgܴ?#r8X /Ibx8JX3]ǛY4xS:>'exHs4B&PKyVS- gpip/_internal/commands/index.pyXmk8BR_s(iH±,Fؒ+Iѫ]I3g^\(j'xxz,$A@=Svѹ"ߴ$G_T9+nsei_Tw5\=o#Bq}a7s~L%Pn窻; ?wfg:g Cf A{Cgtu*G>]_/rZ{U8)Hn[Ŏ/!jbM"GA7&3XKڛ%T -yn|se`s -_ &]K%,zIQX쉪:l^%^F= umwV*RAZt OTbҪb#UVRڀsKgїW>Is&{0mu!Y~c u/'}ِMSJi y.8# lLBSGNx 2[hoK'RqA*H݁ "4^$,W7aq|)#gqx #8dB[T{ i`9AJ04yDc2Z@sU||]%3nϑS~G D`SH`zL|&k{Jjq&kqTN -JTj3D~DָE($HHw t[ YK0{ =W$K|>MeaS2 !ƕy5{Gv] !WĀ.؛PZfHqxT$%GI?P-I{,&΢ ]u4][z[0f=v{ƫQJc,<ƲlS6l7QgەCEX" pn׏!M74ԛf400mu Ѝ`Zۘd~44M֙ XCscx[pH}m4j|x)jsY tQ^ݒ[ip m1uT4Ose*-0&_XV\F.ya^Y+Sc(Th5SXgt STݖTfˀb:|@LWV= T7\utI&x#|@qc+/.]|͈,sXFO'9IypW49qyڧuxnwp7` JxB?wuu8qfnz+te&43TXbB`Oy69MܺrRfEM/M ~ L^(0ʩNJf61)l֔8Y 1C*=k2F΍MaJHk$YYlAM<1ׇS`8u&Blj&PKyVS`+`l!pip/_internal/commands/install.py=oƒ2LIt|Upi%F|P%~3].eP4=bBں1&][WUSoGzsE٫){Vv\Ȧn[T׺Z|^7۶<6Ioxdk BgU]yV*pkQ0\g@ۚ9> 6- 3fY@baҷ}6Ystku5ַӼlj;G >oǮhWs~JoJUtUV(uƪ(؉ot6me޲ <ٷM!rx%D[lA4hB>6usNU!:n SB$Ӻk];’Xg/`rn mR@6TIVwZuY/r[+eOMr*kvʲ/ \@Wr)H/-QBmrtTfyqqJba#x8tpX`р&1 E ˺aQ41]d\j\(vkx5B"7GGVЪy d|Q؅`ށ 2ܱ9!vUP{.\5, )Ykw-$/^ڧP1+@)jk9fnN6cpB%b?V țbtˢܚ* TǑ*‰rd?]+ ϟ< |g ,> @JsŪ+(y`WtC~Xg%u&HY/ RO4(,Mm]Zq+@m}$(i׌o|ҙ7;S }Ra糏bfbXSs ӋTAp ~`#JD?˫JR:Pw|hn;O<&SS{s餠Oc"32"~ALN lk1, Ia*jn}Z ^P0讅fwfQa@ 'zGQMJ-@Q+AiTtQu<:CIx_T^rWSm$&B b"n=DԌN+E}].vb8=PjcX׷[9s94R>I+ˆbj(uT J8-7|`LB2w~y*=^lcY"KVa)zE[Uaa׮`r1z* 3K9ɂި%E$pIRX2ܰqpg¦='ōƓTQTߘHހ)@`x^Kv~v~e yFrp c,Ƞ=RmƲ:[N-^ajuWf ' *fq Ɋ*D>b>1c"aS9VK)%@ l:fxS FId >/)%P aýpN5WT6xZ̯` %1q7_ d VZy1R -k?10dH|P#rEbVu,7u3q[!D}ґdhb2`{))|okjCK8m$klT˺Qs Ƌ![4$6#Ir' %N}-U{,ݍ/oB5uVhmQڪ= v9$Fi0*lP$:U7jܥS̊ƁЃ0U )#j5Mv{۠Rm<5C%&[ `~+%.K:`;&YzlhƒHSA=Px"#sJ#%#( W.6WNCtvSuI[oFWq,J*_3|: _`]U}KG'8*L y}2 ^Qܺ5")!" Լ;yH?} -`հ~DܿˏamXmaTZ7zRp= aPBgsQK B`Q6qC-e$V:4CMV Җ1CUG1+| 5WNP:ϊք^ D@w٥Qc9>pwɻT\˫h3~CaScX~#iSjAޫb*->Yz ýCP(>t:{pW:AyAd~Sr-$M&&\ ,/~jKҐBΘ7`X [t¦oѬcU}}vIT"RN>c ēH-*$_\Zt2)e^?HoȪvNo"41Ӫm@B@:::b^tyO^c# bhE7dwȇq0n)` iE/SEcO쉋#0{Ձ?i-R8Uo ׁ3hHJtfxܝofFU|Ky+w}w2X)fW~#R,2Nq ~~L.bj*zȾnrdt OevԼW}w2b>菇z!ʢp 1J;13,ɺހ#Oӽw) Nps<`aFZj}G%ͦm8 v '2[pqISkGb(GIJB. 2!r:~́:DN`qӧd6pzGz k,ϵmPv.+1W3RBPUlݶ[qzrr [`df'zkBkiLkEa|H2rǬV]l%x;e KެeAPُ*C$qdMߴ~^_ G46ZvR巬ÔcYsC*@}ʋ`{x\b OՙupUc wH9vA܏Bs>pyEu/?r#YK h۟L˩y)mF8e-U"RSY%rDN=*s'o]RqWhfKø~d[|BFB;YGtNVt,iH  s&3; y'P;C&oD}KlcE]}aceYCCZ3E%o+exB#=H/gnvdޱ`c@<Ѩs5 {=2 'wаr< >C^"8O aStQq c{NhlM6/$;OPsQ ?V \_ĖG>K75WWj0K兹|2 raϻPM&\h[S$P܊GɡG*-Ij\>V_ٛTlf|SC9E=FQ3WcԲʹJ;RjG_\t zK:MgXw`'@zJR%QȾw56*!V/-m6*+*Qk4p Y{A\*:Ũ u'b[Oم.f3hbʵjXL(6SWqwbm Vk יF)LgbJ /#4s Dh--hJ8 oӦ!غDxtHٖA®m<XAxZu}fE[ޠd`֤ i3㶄\U*|S4odB?{o~CL^MJBoT%Jzd |yȐ4r+'th6@Dq4ZK(lJ 9·O)fG!P.*5ݩwϯRZ%73< lYert(HC?{ Letcž'yA0"pXPC{!S;kFXQxyИЗ/)e,GבeK^yKS^h P6@Ex^7ʎxw #q u{3-_F/RGHT#RE=ʐנ*;ϚCxNc(U:3j矢xA0BǃSxf` ^xwi=Y8 ކ3'/kUse?F#H=bblT;Y݆^ 8ZhUwyk>ZG$_WCad(`^Q]-t}0zZN*uJ&QϖZJ, Vjɪ0]'6ʲNN'^l?xH0Q^OSIHcVzNٱ:;|k 7R80xN: ׁ%c>)DƀCRRլOSu>/14)e-}Y*y؍ zn% /pip/_internal/commands/list.py]o8ݿТtp溽mq*m6YҒR>v~3)QNڴr~rf8Vl׿v~푴]Q!1z`Rٝyˋ՚}+ z6^쏁5[&-Jx7Zwt{M|y-9[ڴ Қʆ8Nɷ5wǪU\?m{<ҦHݽ]%\~^1..^Caw[K!ZImmA o/2"+wC~WQ1#iE{j~(f@d57\͑5}Ȥd$ `QHv2UPV\)]wJ IY bȾs4ʑ˭Efiz+xv!zS BA!?Ү<u`Z. :/ߙPWW5o8 ,ͮMjIa?0Ry |J-'iwgu%#[^dHvJZqGZic( @‰'p#v@ȍTnEda"/0R;CPb9j50T-XdKRXujX nUؠÕߨT,3@h=~#, D7kXCe UqjI`| * hFu.`&7`%Dā710=H8,(xe % DRwd_0gO>[߆)þN0IsJo|x:N;!d~5StvCk8ΚT-i^.I4t}6 y=EVgdbvoId~DgVw/3\ m`ri !;B P/ Evxv&6̏inXvXddN~gciQXIpʙ srZq) EI$k@;9ZS>Iv?V&b+NUWzl91HjD]CT-R4IwY  ^t~" W*Ac v.'4Fa}ї,/SKrZiITXm4y&X=)0Q5 =tCcHjyOW15%cE*ڏkKЂfc Zn^We51787 &u#ᵙJXsQAEG=vPtf߂B/?Qj58(?ߪRóMa=C#^ޖfNQȌ.^s//-|E֑}4Ms HhB=X)C!'g|mI =+e7ޏw)w{h KA9([3O;"Eh0pd `qV'Nυ.]d#ܒ5THOJ /2 K"l6f`7qa9I&{]e}Dx(,ţU9r0A6Y%(]-)x((s3H,xC@\ù@lT4ztg*O5 3(8V!Ajǎ Cy) hAƘ0R̶<[(-z l=qtI kް-1 \SjBJ/ "ߕh\Sg|0u7PvU{(FBdZAJec 4ٟbz;Rw7$ P=0Æ۪a)ܑCȑnl4pI^՛D*SXQr {bUyOiD,9~4կ?A1C0loZ@ WT)Xf+:DF$-$k'޷ܩi_PaK' Xʝ`TU PV~>/h$J&'LbjxWpaH|O1D\7c+  /+"/m>xitVq8f;ǯ2*8;@{PmkҖQQ08E\fE@^MT886靛) H#i_@Alck_1+Ղ*t Pmpjo8s s+?\[_SOw£1)?L$ ]T-{oH;:!Yj,-XA+mnMI+.jO"f~V!ٱUWx̣WTu/rml֓%dcH{iG_&Vd2q.EhѺ88n)B+GXƶ!kE37b7\V>|oH1-m7c'M_PKyVSW/bA pip/_internal/commands/search.pyX[o6~ TV[ś ti uup iL$ w/()sw. ߗ$/[.#n]y^:(ك,W*LF{*4/"Jd7|hRT* yŔӇ,;7_f'qvۘ19 >JTB+yfwL tC 8*ݶ.4 }J?Q Z=k/|E/]9S1^.VJ5wy]̳Wod~{rr: a+VwjO,Ǟiz-ٚmh댉;.  f*b01C;hG> 9]:xP+P oϼ!Wbm߭./48I\N$yS3p)z8,6?:c 8| J8VOQ B5.$M6.oڊ3 #.7OLsEbs] .,}x}CW9냛7#-倦A |7)w n"Y`AW6OL&1k~X< <Cy͈k5^ƙ ڪȫCܴ_-iq)Nj<,6-} |OX F5g"npKaEԸ)Ec&N,P c=!G -rH v_)>nIPu&:!?ukZ e?WO;<ցdu?6Z 's%s5L#8M胈0#}^$"TzaOh=‘ďv혴X4}=!NCg)Y VpOQ;(?9w19'ScenX<6 I2PKyVSBI pip/_internal/commands/show.pyYm۸_A8DJe"G pmK7niՕE;3$EJ})Ptq%yyf8*<j˝{D/dՁ%E+k9U@澼o MAn>U!jrU"a01U^(ˍҼgZɋ1]RZ2+cH ueV(7Ƽ^"Ѵ5md'C}|{uͯ+=|$"Np|-! >eI%ͻ>1(GLBl:1,! Sbx_L%h P ({{Zr0@kjS pQ2(ʱ q N {ك0bf| #Z)(xǥ5sY?> a`hxnCrcsjgijm%WHsgX*/^r^E^>C7{GFhK|Q\n`YU%~I Z _~6xs[~!-pcir9K+ &-CAK4rg:U]B$0QUЛag+@nY8&Hs=-<(g< F>)Sq[BIٙvs緒N!-md`^#qlQr)G/B~7gAa~O/ЋIΨqB]Q1۹7;sjF"r.l[(2LR0ZMtd]ѳ]`<= E05:i 6X~]˪awͽjZ+=[╨[?TVg\%vh1;g {l 鞉C?@DiZ5GbZ?Ayϒ6@^6v+NaTf_jJ,vOT}e$@rsrePh쇱A 5ߦ].P'nZ~FqkdE}dJЕS0baqɞQFBۂߕxW2 {ExoY]Dx.vgC 9^O`ЮBA1u/co^0MW^C&tKX4}b]`ԥƏ%ݬ]-ۅeO98{1$pl_g":c0:I~g %t_[< ,ag+=hhV;e@wX (fhFHg@/ytfh5]FF[.C)7REw=A[Ass7v+4e5t"*Qצ@w5[!3we9{#t6M]^(AAg7d\xtFOa3E!KKDq01}̎3T&S.~pCOOf"E7 H%n<UD1~((4<3O'u\TWUSآq@? -vU(jеo8ٱ.B)SZ{fIeG&~,Nቚ}?jGzsZ259}Sz&eVJ7Uٔ] _CK| hI'BHEg& VQ4Hذv&J9lcp9%A/ #XݬanӤ stOQK1?K{xA%ѯ]x?S44ǯxMu~nYlv{P%$NcN'a >FO U^_xX$AmxK>OI. mܜG.V WJZt=q}h-h4ι_}7qQ}M2ʻ݁\Gۻ;2t/tR3r PYkʎ=Iyv=6ظO'tEaz,on?9F*@ 2zaQt Dk&3[+ٚ* $if">R>1mfв6/0yEmk $+gjjܛIO0 l*vLA\{ʒ<2-+Tt)QPiVn~s3ox"sRRM!PW/(Z= R<%S UНfjIT ([j"/^SGc>.1dkO,R98t6щ"iֲ\fSCTyh6|>w==PUm*T[5 jϜeHw1MO7`4,Nנ41Qa,\M˸!kHSvv$LN>d064g>RJ_1pk:F.Kʙqm.YBӵFJ/$^g. HH `a_/8AdFlrm>t y*!Pܑ7B bvϮ cN\b)̛VE5T]L_/&\΂PBz2zg|yrXa@bsuLm02wT)vRUlI[m4# bvI菒m:گPوx&VV2/:-o Y3A>[ m`}y&**/)slǟ#A z\ܰ<ժ:6xCu|:[_[pS]Seg+z?Y8PI*b=Q((0Q:xeNVʰ?0>[b=Ӫ.)Ϸ+mrQT/*X);ݫhcE˩k;[N&eD}N~[Zomʍ]bNI-4s:k _/-΁%6 ;L9DuKs7lٙ^ k8{ÇtXsk^O;)id5 b;l&7f 3`Y'.F aU"Ct@F,UcW6¡MN욳]}"Q,; 8ug*B%hllTpB,6Q:듻\ep>۸t#2'uM'=Lؿz$ācw J*ROG%ڍ#R3tQO nd*'Ol}s4F&-{vX:]*,ak1hh<|lX/k;~.R4%vs tXI|wLiRJ>t%g\$((7?}<{a>*L,{I)XTm]q q{FdȎ_^IGaJБwSsK8Pj|m"zmK'}pT7ncE6j? [YĖ{Օ|q<&0J?pT~<~3}c/ԉh%$;"  CA^)s6pxSH|66OJ_PKyVSu .;Z'pip/_internal/distributions/__init__.pyRj0 )DwX ]`;4;'QZQnego?%i6J 9O5pS V"6>+G8K!]腪o1(>\%GD nrA)Ua >b 9Qc ]<=' bв!nB8 mZUta"w:iCy VQ2!:xl\%jdcuHWgan^Bhůj8|@gLy\`_cPKyVSh #pip/_internal/distributions/base.pyn0 Dnf @zbvoh%UGYSA @s?'փwۮ(׍LUX{>-wM1*d[4n9vd5aQrQЊ vҭL5i>~.վl6L,٠wNh:``݋sID.YOoMƸsg9L0t(nmee!@)Dܡйc󔱳:1J"UR5a>?g'ģ_]D7_sD2u#3H@tzhfL@9Jb40kRId;MzoxYkx EJ غb3'rCF⧹iHߦ.WW#;K)UT#|rO)]990Q/cگ>Z}nf%5'lyRB~ /-6Ƞu.gޣPKyVSr](pip/_internal/distributions/installed.py}Mj0>E)t/8%U}GV8$T+y~>Bj(X4B阂nǤHB3إME*hWxHϟa(9xy . ϼ o6&46qwO]ןE)ZЋw\u%h'V"`t"3ym{;qM T,YDJ,Qz8RkD2o CCPdn {9d2UWɂ݉ȞbIv];K{IpW@i h . \RiV,׏i::3Ιu׾PKyVSJw$pip/_internal/distributions/sdist.pyXQ6~_! ^ظCҲpI>h]l˵,H,پ iЅ[[}37u+;*y8wfLW:`^ް7}[.lE ]/2hnD'Jwbk!~X hvQW/NvKDSǬ5?@3><\\%{?_T*Sdʣ.+ <}=Xu_gi7<_Vh"‘.q]1$I(dF1ΔBBY 3!eJCcYP*C2`ChӒ::5.:+ʴW/^Oe=xqb3+au jfqd@3g!xB3+Ӄ!⮱OYsY^mX!IE2a6Iqzn;-IY+#R'PL˺G%hhH&Xso0'z֐j2uhL0u=Pjp.< Ė^ޔӠxx^lc Xyf0*1-7\bb0 ,Za<]"X܃2X5ϵ D`B)l]UgϾb=r#ܰݷbPrFjĴbJ `V &1yDH=ġx/Ă'O̊E0¸ o𔑴CR&fɁ :e4P3 0^)newqdO[M9m&׫P|Qy5F6F(C re%.5 0<ǨJ\R7Br*fe (CwpswAmX"R+~Ji="+TMh +QPylX-K M"跄K ^8%28}<"&C(Aht]|[Q'mɼ(evmFTlfv\t7b=s+lT-KqL. q>}TEQtcܼg+o)Ιt:}1P$25U^M) H:bxL&Pv%H΅SS$l_oY&aQG+fm=U1/̭!OkapDڇ#I4bl=ISҬ65~'#TSHh쬨Ϛ/T20IB:t.*|NiN\߾0bU`I-vmװNDo_ghc;z(PKyVSC?K pip/_internal/index/__init__.pySRRKIP+I-JL.SHOIRRRPKyVSI~D pip/_internal/index/collector.py[sv_gJL'۹Zfnvf̓aSBu{{> ){O? >A?QnU~v(YKoTdzŒ]|PUkٖͦ΄ݫ uR0n@ T=f &5M]z&./?Ч6F3U#sn4i smO 5Jfi2󺻤ghlfTc7c'OMjearidӚ4!])?0KdxdnNDeNfS1_>Z}V/ʋ\6ʼ?5,ba3qen -RbL3]=,{~kd0tUm`|l7צnNNNr˭l@#PL`s1gndH>h}/@W*sJېGUTL j U^Qi_\'"jjdhi i /̈́N(\rn\<_M|O'--+1bnP37HL )rbTUaK.f+u:fLxj!Ĵ+@@5ҀWUVK jR[ͽqبt]!3LB ѥ1 z#no-`ܮm@g؜#1zp̍A$! Pa5YN ɭuX+вaŞnU18ވ_I|s*[ %+XUj#kʘ#Ŗ3 f8d3aqa(]$TӠ/L23//>Ek\,r*~e#"WyvdL'@.(HKud h֪5"f#fPş*'e zK9:|]tAj߿Z[Hh{{@ qw7[qjh#vzh!Ll > r; =3k}NψތmcG4$Z^_J] O-UPI{Lmi4 l#5reyԺ:kP R6a0ltUz5D7-SptX]–aa'G:\.5պDJ ,3|> lۧ}ī; tozH_rC1̒0-g]6N*8ޑKK +LDR;LixqxD**j-'H1P80PU1tb[>QJ~b(o Jg $GL'9ٶXo{5jQBnSd>ot[–kv S-Ѧflǧ`x`sbCA }Hk8.<W^zeK7ޡӷ #N 0U?|IQR;,v\2_z;2+}ǟ~~stx'\gwZU 7Fj3 ܅p6(s` cD#Uis"GK=*:jYDujtWarPБl~o $)5ZaOmkn0j*j3ZF9777븧O=&p0EE8R:fړ[ dѓNʴ ]+"z($L ūb!"^(Pa5NG$MFK۔x•=xG:(;GXG|x| 3nj b,0Rf r%/^2S|z3  \ZX2O[n@\RN爤E=u[(KvJ9SSc(J5r^L@n~0U#х3')ӷB?-߈"6=K[-)߂fwxl!)8q;?r}MeR]AP]ZP`&Q{$|cLhc|`9[`$W[ѳcwu ٟSYp#x@:h AeH Y[a<,<ݐEu7B!C$x(ƶx؁OE4on`g&+ ݯW\l-bę0%Lf´Qx4rYl&bŮs'JAguq0bGu,@Hwck+cÀ,]$Rn*!;B4t\zmI^^vfb S7o\ŸK)?v^ݑYHw3vW xYeT.ƚL=iVIHEsH]}*$KnTCo&~!/w7BxޖrdHbbwWﶅ"0hA1?L^?ƅnnX]:*=50.BK8d"^pM;'KE b&**[)EXS_*$Os|ڦ%< j1_#]%-NO0s2UUmxͶx1ea Qa^S}i{'zS/1d]GMmzÇW@1~~!z^1vE9 wܽ9 {W u [{W RT8A-Fo~ X!Zm_R<^皇/r-[DT97mm#[&H4_ ͗-`^YVzIDM&>'  *2 {`_msuMгJq\~m>s0PxE[4Ue7!L.7Ƿ0(SIf]o2fƊ*4&5ŒB{ԟTa÷nlz =3 %>Ύlo}ȱgyx^>9a~yZ.B4/=vwwGȽs'ZνsѮo+c#q#b`J]\ lQwvC+: zt,u/]Ù뫝TCwSCWd / &B"@p/B/Du6= _z|kplӋéwR Ҩ /Qo[pz*K㉘A.622vhŘ :?$EGo>Pt:# >; 1o*lo!ÿ{󟿼((z*' ŷ (v. >t@?`>O{ͻ|—iw3H̠#[Lp6J| yOĈ8$Uٴy Tg:w ѐN#?PKyVSW_"%pip/_internal/index/package_finder.py=kFrWQx$;W1YT*K>jOp PJ=7 WRRWl]`_ӘL&?6ܖ\o?^wRM&;Fu6U}%n'NMsخĥ-t/abTEݡ9oBumΛ}W5u]<.JU}vк^vMUA6xm g+mOͯ~!x˭~y㻟jxxƠ>/zմ\)4V?RQ++n8%=|NF^j>ƭ%Z/ D ȞTGydp5Hi=zZ<ϗxóលRm\?_í2͑iqҴ^^07k Uwv`+lEVr- &8,(͜68-lfBꦕ1̹0#8ͩZ㸥3SANpVYtP-.ٕo]Umc݄ț g3F7z3LDN}4ڛV#" 30F-|.?\)Ƈ}a8LyO+yy 0,Mї̞#zӳ(3ijHFB i2{2`H{ꍉcSKɕ;笕ĆRʮ9s-)Kk!# 5xC^H$duߜMKVThk- >fU{r3b}NGn)}_Du>k[Qxԟ[!`lm};z陯'zd\D0FQq[o1X-Æ:{F>ęEY}&$'= 8kIQyv,aA')Lȡ A ,b] gp D;bphWn֓/֓П\6{ğ c>j?9:N)\3 vfQ4ކ? =q/fI$Z/:QPY$!4 \ H3Ĥ m 17 -RG^,I Đ'oe!izw`ؚDM @xUIs' TbH'iN" g)O6$ङ8 >A`of^z0= GLC3`lz~iN^^3 =䢽Ѫ;m`&Lio$s #7G$]5qmaH3M!c%`<!{ݗ N#_`*O? }`Ŗ+7PfI7ubrК[Pe^PЃ]ڃJ^ߤkqLvl[ jIDGCC <HU[pOchb!PdHIVJ`czS Rc=q#,$tX{LN S:` '5l )ḡC&5&CӳqOf(6KVl2:İVtN3?`Jiv8A=i>wdѓ!H1>.Z[p4tBӞ*Zxi%@sEs]^S~FۭCՔVR 2YٍMzcȩ9K)k@gy%jHNg:4pP;5hR& G"WRU^iOFo}הʆa{s ~#eoԲl;#x֔u^N×NI;/6Bs-q]vܬdp3@ѴEJ*\yGd(Źa ݃:*L+ K=C^ꔿ C)p()>^؄$.R9z!l[h/qr!8V%EQV _۫JFu]gmiP@i4y2: l\kz sRZ H9b֛?RIC: /`j(&^{uIH\ۻ.DbN'(8УDstRQ3m8%4bG5AsmO5>-<΋lQ RŹiv-iEk@xM$Y hTzptxk$A ς_T +E$d7%lyoѳsd4R6}-v@fLs+SCKc/n7?x#<9r-KW--l(뇎{#xs׀dMhތ M ܄?DŽs1>Q$^]T|UN"ՃP&5ȈVƣ]^$\!"n{I'N5fV0T|Oِ:ާzNk|g4 Ƚ^d}׸}F=c 4|)H[:៳\ɉEW0)+ɧaѳ2?1!6VKRn Iy;ƓE) }Hًs6lnHLtŸ<-3 e2wGDajR zw@,=닷M6Zl2mcm ƅ~KY Lκ@? 8PDBRGHt#Ԅ(ZŮ_B+ p2Fwz63R*%Szs} T7WE+usEQ pt'Wg_78-@)DfBܔUj6&k˄QKg !LL`hBVFQ:zLIPw6.09Q j=?@ i^%YI>)V qaejFSlzP3>Agh$埱QE)iuVřyӚ7F{NZ\IM=q9-c cí| &Ձ}8” n%Q^cҳ6̹p\V8] -U85ۊҼxVFAxA"J;1"jv%*3HqƑ@s%]xG4) fp(3<. dv.4+ʰǹ$4.y.9bm F^/W}M,RWz44HBY <Oފ>3*|8аʚl~D_=L`Rns"(I|Ӛvq\gh۪l[~[0P}\gJ{&4 a(,csx4"mK]|dzSx[l|Op\UKtfO|ͬ8r L.& M B 9,%TIJr^9Y]_"\փ~}l s?GS*L\zJ[*L|# y,/{΃S5gcY?_:|43$m&Bnq?+5;Kph :j7>#_n .ib$Sw?C[F63 2_v_V_NwNf1L쫂}U'P[9e1{,ѝ3nmx3|=F%_UU~])a!kx2|C@xI:opl#.Sg,])6ߵSH\)mYxlʫ9lb]v_"> tyh~~Dvq"&h(O@R =!1!{7 Bbx.?A^M!v[B9Nj{YBxOK.7uA,Ն‰;0 g`!{|B5GB H \oP<=BW7lyTa6!a A/N뇌pa?c*W+,mE؁JF]K>xс)goY`89'U?rSAX}QWg<"몌>m.ꪍ&p,tOLf|Ņ;J}X<י2 SRqݸ"iꗋ ,FPeDMt۔0D?pE({ j}2G^ɔ bf)+{@̗4q,rq9Ž@Jpbz>I#*:Ob&N j3ڞla2PDgS!P^דX>{?$#sOdV6>%%p$hR~%I៳a.Re40؋?u _zU7q. ,TyeXiLl5%q kR;^UjP#xu:(u<$գ(1è7y`N.:m :'dЙi@N1i!->(-W`Xa«u΂ꤨqz=G"%-<KIto㏚[t'ǟS眹9 pTL(jVUltiWb.^WG;Au,J~T2j8"3uwKH,>kQ!\sF+Npb*!*y6I͜ѵP|/Zb~&9z Vr[}ɮ^3__qP G)=3עS:` R'D=|EԠb.%aMtwS <+1:3N.G  }G~h'cI2'l,@Klqb)L;:9)'Fu޼$k10 ~_{5&:Z#L-%|_xK(E1V|AUf |+"^f+%)XT9SY@\ͯC䀇ud˦ہe(fM-2T 5GS˃@">,EP;̗sBb.'d(ܘ@c:-* Κ̌r",?~6ɘc#w UG#r4'gHcئW~TKFt~t{OeKJ9/ywW"0az7G$)Ұ1w掔Ei{~ ˘O#ϕsvɾ+KuRe Yxmd))##1F-]]adkcyJd$-oFtZ?K#=̯K.٫?d$)ϒF'Yč Ɗ-|4b\ r'*',;U[$}e{z=i2ѻ==|5JHIMХ8k.'1Ck[Ή>{0y܌}Co}{[u,OlcF%c@|LxF5O%H-k+;(kڰ 7~(Xw)CcFdю"e{~ NJZ+xBSk/͉%(EMP!37=ANڛ6CP_5IFf Z+LQ6YZv "h} !b9Q9J d{D >K_e0űC[+"$ +mt&O iGU~pHmuUs-OL-L ={}-n ŗfHU-h92 PKyVS+pip/_internal/index/sources.pyXmo6_Ax*\̀Y/!mE7J8I G"I/LV@Ͻs{,TVv':hg@\J%r~/PE*#vu(%_)8PTW9&"yjy-o^"Q‡zR75އHVAK:%V%01w6a#s\Yx$)=Oq\C76 ]t=hq1,V)r툢/ TCJeL!:ӀSUɵ=W7 .7c6yׄIs mP`v▃ЯW-F3C-kFro1%Ć^H }wv/&$ XM a*B"B=pc|o"]K6w;\ePri3eS&حY Vv NNX&( p#Ī 8j;?_턁T7.2((*6,[XAՔP`A U0f6 (|q#|z_o #dK#lMp1i櫕 ^%Dˁ@! G(B Iq @Yu;<ϸ*sM9#!Єʸkڜ.!XlԀ' *&˜Q?"T<$ y=ßitcT  =ؠ$60)t:Y!ù>a" Kٟ hRAwX0{ .vΡ- a+Jd[z"ml,\^@ )T1Q2``ү> J/.` q7CCVppROׯ묺r/^YbzޣOeekB;o*!O4>6ND kCp{PCBb'OE[Hn-,-{ZزZ21B AîHy I[ۜ0!ĝ\%H>] 2ْTGz &2lZ;Iy z:4,Dڑ k}$7>݆7܄%T[YIlD{ؑ[=|Jޒ*;*(Xw-8 l|FּA-|BIdLyuې1ٲq+?!((%Ddϸ1>%]u gP̆#ͯb#Y4PFӡq4!ȵ_ ٓ^Դi4ttz<]ev7KSnuvό#"LBEDŽ^ZgMFZ/qR4Cw0ި$UېDPKyVSőkl8#pip/_internal/locations/__init__.py;ksƵ+p2{IВ\քn[u+KKQ5H.ID $b e1"qy?Vr兘ȲDN1YD\b+,h;BJ(V`8sHaT) JIEXF4SU@:><<9 ٺ\ M<dS2EvɳR XʕgyW5*?(ϳˢS8 t88BdnDl4Ⳃ9飰\7W]7/b $j.XD[zխS s &o7Eekq/4+LL5:O ٜdV[ݴ CfYiS I^A,\EU#\}D.@)KXK? }_dK ziԴ]:*PK)4Yh-$Je5.$P$CsV?J5aoz7l춓xۧ(FSo{,0s2uq{up͋h:g!`JK 8{F*\z'J3!l%]k~o$KSonHwnn1D77Z?;`4@:@y+^D4 \Bj%i 2G|L!M)G_ &Fbm{)&Š@èL A?kACAt-8,8,p z_.%;Y>Bd9=찆ị^, f1\%(P~,Wf:$G3<~8 Sߐ/5 WZ%x~Y?@ȶgޒ0)rDd] { ^_087+`77i«(Z^8lg b1I)XЕ8sV"=esCt@6#R ?@xi`gw_km# {O0 C ph*V*D zH 9 @.!{,5%AIP>3Op<|XE ;lmÖ/P}% T: .kE.kcr͞fZF'ʉ\hϒhN^ݯlh|aM:h?wQ{'?x9FڜӝY< HbESK,K9T7GQ%i ACy_X p7,螆*'j|()PQRJ䗪#6de(YM(ڌՀj+ }I$W Q˪(7YJVKcvmsV: K$8GkQȇ9@u@ VyكoZ@R4[#>VF@Whц _ DD[&w!=/ <2[^9}}m#LUiBM.?,v pU2aݭ"3^mD4CxRȈWYZ|[ezjp f2S7Zҏk({vmv>MUa ej6>=?uχi) ϜhCt>ȘC-Au~L/lɛ ǿfJ l U7H)yYaN2Ӧ ~o[-5 wބk@!5o!\Z締}-Rػf ܀4kF@ =C]q^@|MUGԴθ媉=+: z5ڼ|W+Vi1R/:L]"DDNT;bYcuhwu,A%&W+$]vMx%82U+|Ȣ)X;WP{6)|B&GVUc 8ڍ%xF̂ڌTϥRpL7l<|5}bw:fÓxZrM*<%0/CtH%c,/r5=f&)^ u\[`+E1zB# +'vQ,kWq暝ƞؙ6QL45alRt3Sϣ>״S8`N}8Ђ>\%1Gww{ ǿYr5#\R?ԉ!Ehk_^Կ׮`fyqjPg2q,>Wmֳ"'F!qhI+$bʦX鍨)g]kX4f!Ᏻ!yèQOo`ۤ7[:{\PKyVSڝ{%pip/_internal/locations/_distutils.pyXkoۼ_A("gb>xͻZ`A mExA!s9^JU-^RgRZɵIeɌmV GQ4\OʲT{YA݊2QMY`ZlNcQmľ%6Z=ԇ9k[U>\K#&j!29J-+$4i-X} x {. ozowzIgvYX VZج>؍R.==@J=D$cpZ>5u) ˹\:VhХ[U:6ĥ5ս#@w??\&Im^jײ親`ATYTL܈VVɄ2AhhS"[[edRxG\#-*!e_ߨ@ Z){**99+rsX0Qd>,92et1$IR-?b/\!QSXT:wwz z \GJBzzzz¯97\.r #яɵKDrJRhn:z `kb܉TʞuiwՇ Mk͘e`Z Frku,Q;mE$!ȿjӁZ?3JS  )аZh77uc],S2i%x'Q*a51:/F>be2T!ӡb^ܐ^huRU9@FGkd&s*"T(]\/u)siſa,_+*%ϟ75YD@݈he=zL6u4Ypb䁤xy. <4R ĽDRwQ 73|snށ9cBAb/Uz=,~ n춼⥻Xq;>ns04t*=H@5Њ݀ k Ӄo*P4(}rHgx<Г񊖼i/^O<>p+A`G;J:/>>g+Cl)jNli%P@~hrGZ@ ]Py{t";Ƶ2WlV 0 L;Ա-=Iw+mAN=H\udjCy+Z, Sm_H$$Kד! Z1ݜq);0˗9{_1ia"4wvy倃ls& ⌢qF&0(ʙv8n"ײ!x^e#B=]C50 O.IE /H"C~M="d E< <Ǭ1zV*p2' "+N&Hs8KRs}ݫ99$~/)$(*E 7ضߣ0gpy {mwj4?6:[ K|sd"_cR> w<?$(ă[Nx*#ˏuoj)=:PKyVS8 z %pip/_internal/locations/_sysconfig.pyY]o8} ԇس@tӝdi7 蘍, (\($٠MlshTݰ\md_ϧ콪YHkd$@ey߽U{7L W5dFZX%$e#xDHUj_M+N f/J0`W*PJ翞&fǣ|,Fږ+sM_UdߏFSEWbш,*jvڙ6l%d4aT#4S%Q8lі]ǟvna,QllFGłEZ;'U-9SxXY{%Rh<ZkhZ6KK84[/e!2Ֆ Nx~T- l,r6߰wכfJI)pβ1 Jłzr%,-`UGZ[l3o,h.ע{$rOҳ b1oz$"a  N)BKREZ 9㿱RtEѻVd ìP˫K &r6;B{˜]ROP%ז=䅃3`H9x!ʩ Ǚ?ɥD#:y;~w3fH;>bz JlQloIL|ҎvQZ>z m,k6s΢ڦjg|efNG. >GY )AZ H31k1B+a[q)56f-D A0mdjѴ5ÈZ_sAoH+Jd0. ,2/ Ҫ5r8T% wGȚV66õ:EXq'=ghtJ6>|a!]tDZ7a"SÙa곉ibBې%9saUIRŰ]1) ]o7T?oZk6i7&-lr8ߋc C nqdmbj%A٢w W*^@ F-Q2'gXCwCv@n *SOFGƝb]A>NqT `Dl}C>Mސ99^ ~@VVΔ^ߩie< MYfሡU,,ͩ3( >Hi^=Cbh&d|rΚuΘchld{W;$ed3aڗ#m0I4e ;U%<\4jFz 3M*D$453YB8Swy\[^A 12y2"};YkbmM< DnD' vJy0s 8%FSIhZlk*4LGQ|jOVYKtا[WfhLA+zuBX1Gƺ~3hݠ̀Zd 8&!@8y_*Lf"DdUvwx Zʹ,da5*fFnBXKl/=Q9 Oe!\huvjSQ̆@澬3ƧF %a[Е8:>6Yԍ}e4 5PwRbjP9\u b}w}|nYrniپʚbaIqN؍\25_.N4fwwz'?dE&H4=L`*/{0[ >$ݞV4~ & }y= Y3vw\2Ihzb<6aײbA-A@7|m4 ѺCgv8` P >9ݎ>퇣 U8=ǪduEz+P6vB7f+|'czӃ(&R03ӧ8o OܐI{.+\Dr]OҘTdPcJM=G.]:uMaF}$Rȩ;{}m-mu!M Wղjtކhy^w|3mcrņ @l.o {1/#cLPzwEl#kUwe2s%V'Bĝ@臲VيgW7ff_Zѵ,#[g1zu4nV "'_/'S3G?u}0fzl;\'PKyVSY+pip/_internal/locations/base.py}Tێ9}(< 3ήa@  X!rnLbėSNUYmխ)'?W?Yj9}2Ijg7ԨFvFj= vi*vb\hf]\k T}\MhUʠ1p}n:/^ݼz;-^W,W\`S,{4ҶXGE+抂 ;aYw׃bDbR}jbacDRqMf#[WlH uB4Zg(:Ή'uwU1+JO2B%X/wJp?Rqq?ŏ,HH Pڞ&]Y4kwU?Z,Mwr֋(nbRA}5FPPu%52Hy,Qm {M=58G#FJnYwxA&=54jh=PA5ܠIŚW T{ ޶$4R@ښ% %{z]`쎞Ʉ+1J8۰{pVofԋ*j4M4]cNL8mQ_ݸŏv}z?wqc!!ea1z2D-GseTPR+Ǭzn<>7hwD^)r}yxvme_~λS~W ;Ous/īo7履gwi'PKyVS sB|"pip/_internal/metadata/__init__.pyɎ0 ~ "&@`=].].zXY2$yKKe0s\S(7tOG]oo-4U5aK~@G0]5#_"wr-w=M/eeJ%][] x"?Lpb5.^˚/V5,?d,X]ouQsJ|K0%ޒԡ16.ZBgQW+gj!1G-"¨GuًuTZ3AZUq}[U[C'xF)yh)PcJ|E|?K 7]r4OŬ7 F8+ޅa1ELx 4yn&K! vFEmJ]:x= Zȑ!o 1W c"P-TƎ ..hoOL4ڼsM<.bH^x!2"}yԍ;WKKn.zݔʽ58\^bjiU Ӆb]dPKyVS. _+pip/_internal/metadata/base.pyms۶~N]Nme+'5Q I)@;j=@E:vnIyR<7L)b#noD~b]fя\򜍖Rlޖԏ|_|6"I$@bBkI \k~TLSQaP Q0 ‹ : F<5A`&-kK|,A҆ &yL <QyJ0M-&Z63yc/Y: ѷ 8 -2+XWce\c~M !t T$K! x⿬e,!6m 3b?ʸZ+MQ> @Bi 5AK~!$d4S4|N1UM Zho ,/>#Ɨ;޺V;bvqM^,RX䁀fKZ_3t5DSL{&% cT!ϷTu eHf#&Z`CAZw$(ĂrcK8`D zOֺT+˜}d>WbjwO&C* G770/"i>+ɟPEW{Ig_ ϩv?;J)F%L'Y# 4U wZj,&cj-<,Ć-hj_3 C?4xK-oYŦϟ[1$a96>Z=ǯ'vy.6CI7.lTdsk4ދNXaw%ڒmTU -C.! j]Y{ u^nyR`d *C~p^36YjwFhRG A|}v:bu+&;vm-D&#{\beuӝwh+E[A f[W_kjB|O›^QjIER)3zO;aA#m]A4uK璃T#0PSդLՒ6DHH{Xj^sg#aʄd$)q4Ս߅ÓGiߢ F0cp)!\ p˽g#38ɫõ[S {.QMB7 zHW 8vp@h 650q7h#OgogXMnHNckBZzd ,ٱׅ-l|!/ 굯r= z`޻c[݀h.Vl<;lS֔HV:lȱ>u)/sbo{w/T *YK-F0z[2Yz׶hgf|jw;Lh<*zdH#St|ny"M!)kXU@ku:%sx +Y"uﵤPT'M&[$ Ogg)7\X!ĢZvе-UTb&[*Q+#q!H7`@!_4S0-?I8aO9`z="qE?J])z\|Yۜ[ZT0 E @@ $[0ۘQv6TV  ;eJn<]aej :k)z{Ǹ҃OYݑTgnf?)@si .cV/jrj=xG/U]Ca){kA] U:e)(?u-=n^<\+,?,0}N`4 HkMkvVJ7OP)+TRn)t ڠA\`+$zS0v>}|qޫ#*!y@Cvcf@ۃ=rFn_G9AK +s*q4?~Wt\}->PtvZI_ =|&jZQNfCrfh;.fyVE͍adJA-Cy.kյv uKv9'kƞsE+J(_Tح_uZ߁&k!6j^~骴LP?ONzJ-4#\|: yg* ߏ?;ښ6 G,F^/s ljj/*& >%R\ lo|PdZk$HP;9PO[jʁC%Aacm9e!GBoxl2֘dfA@=Sԏ l$4֍d},2IxO_&c߻iY}ᆵѣߋ]d Z -jntlkҟh3ؕDgߚ2 ď{PO /a.1^Ͱos55s (J(sBB?;@(q$dҏȎ{`U's\jK¡Y-'F;#Q>~O_ ;gؾD/efC*Tx0:8YPC 3u- 2 7` BfFxCƥ d$;nXS=b$ JjezE6k#ԪuJ9 =nqr,II}urРKf `༂_K_4 3Th%4xD%޽W9xu:>JTbĤqj`(Q{MW`xEC )~8gx)GѸ</#̴PJ]GXLb 3и=-/jQxcmYZ{U| usE: .f yk,z'eO OPKyVS{(;? pip/_internal/models/__init__.pySRRrT(HLNLOU(H,QH+I+VOI)(qfIfjPKyVS0Oy!pip/_internal/models/candidate.pyRn0 &pA>E!1%ARAGT 2m;o[pqq@S[ϝV-?P>> p DͲfLDo歭Q WJQQ0ԾQlKM}+m MRki4e| R2@1$8)RR xZse^m B@Y $}]klBuSBB D_Bn-5[$,OP`M57#żeSfَtvxC9ZN]r"lEgUhՄ(Wɢ~e6hC2<ƽ7?s ]'?[&=mDOΉ?  2]'PKyVSU=*"pip/_internal/models/direct_url.pyn6_ }:h_̀K6h"p0S⑴[/ȿRHɎ,CB|:D~zDQ4-ʮ( ~=ZS!`)꒨ݚW7ٟVL%b^,!+Z$d[3\T ҔE S.X.D%%-xNݙU~NE[.3|.jF( Nߝ:K/ߧfl~~8(S0}Ng/yzۂ\ Eӓ?ɿN~>I?~A_^AVP)!g_3!k-IzP\*p*`u YB|X[;D )؅u19yÍlȎߙ"[ZlA*UNL`#)KNZ^?FTV 6"&$’kR+hFX{l)cqOVTMhO wdwq4hIU魝+q&b Ͽgg:ƠWlahetI "%ҴrQW%Cp@ "2̗!'kW^]y,F2*68?5v뵫eaIr:}:udֱW{Em*#, +D+ j,af}} u5UֆuOhi{Ob6о2Z }a;ͩ3[]2,Iɣ4A #hs0mqG5l@qEӮ`.X,G7؄f.nFެ5 !nd Po|6-۳졤\|T4C՜چ&7ZvJoNNfb<\BhSVO#I˸sQ?PKyVSbch &pip/_internal/models/format_control.pyUKo6ﯘ-U9Ѓa4eM IyR/R8@7JJҤgJi$B[3s= Ѣq[}E?XM1^aԊ.jd.^ přf=zὝz̲1 C?PknX픞z=/%a83+՟ӫ|Ze\kPrNdТ4qFʙ٣rv%c~| GD%It!N@|C#D;Ԑr%4?:`I1 Y6\Y%Hy ř`KP$liQ:"n´QHo  cA#p.K-ãkǝ;R0ZnbĎuO y+ʞ~19cf!J3… k4s*/%P z!h׳5l&2΄?`Cp^4[ܼyqi8K7}_ 3n8oDs{ի]/rV|7n#:j`YXuW2qݣ /> +$|G 5;f9ɪqTT~ayq1E. :^j0ҹ%0tLٛS2#Uʆ1^yg4W/d]d(S'V4ƮDU$oN@C[I„Gd̈SFBgrB(6$U^UC #1؈):,f7"ig<\B؀c0x9w} !Q5j_Jy9{~րW+Dv"ȟ+)׹Y'&=Hm!z""L;J.0:WF:ׇ8[spހ܃0ր6$R-G?igap9B%&7ҧs\@+ȇKRVQ\{B)-E 5g`  _Uv(=f iǨȨj0*Y鑅$Oѧ )ܲ]xI46D="!=|/Gs͈::(ٴԚ%bGC {Ƞ?|F* :zM AMD-[JC|~K)5x`\d^qM"y5$ (YK5 Ns,Ϭ$sK!CXK#BmABŅ9wxV 7 RCx%=nijp0{Uy]}$=NowJ0wKEEI|ۖ.:J#M- [Vaɳf#i^+vI0{=ǭ!1X wkO0UQ6n ?1XSP*yLÛKM!!%'"rm3y 1/?Rfq&C-laa)ߧz}fqtyjĎ(lAK9?|HQ'6af3{C5J%펽,]&܂r$JS;g%Ѷ&oDw2uA{iVjÖ%53}3AGwɢ"@BiHN)/ v7[ݍĩ,~b)}!O7 9]Yӂkb#"m̬%Zu\Wc"_bcH:|ȹ,׶G\ ogBail 9Sei@ :cecCpԟLm32gP)X0F'nŽTN#H׀Ɂx lNBgY/2\܎sjsuSoG>>a*Im-o Ql_ousW3öY@3 U  FCQf62GÈN>XX=!O`LB!+=2"a@+cέsQ{]kfpkѠB ff:LqX=ܰJ[z`ns]}uA !+3+'M PKyVS W7L$pip/_internal/models/search_scope.pyWm6Bu(K7J WG8r)֮%Gn[g-&/ky43zf晑*+SA`+,h{8(sh_m^=T"BV;^ jl±Vv~|X5*UN:gL:([LkT&]FrUiͥ\\>;WdzNia/Zac]C2'sTԡHIA V+L:v"2\Ƶuji=euf+yZ1&e0]N: N:^Ɲuu(KnA{98Џ`9Ő.M&1@B SseEx<['X#~WV73y(o]*?IdG梪e'LOkΈiwL2Rh 7$69*v{;$XCJz؎֓ 1gPfvvP"dH/7 z`IBG`D38zQdN19'$Ȓgח[DyŊ^3E P%],4O'C Q}t.ڎ Ɲ)CSt;Ҵ7oy>R{Ȥe,PC|Me8\tn q?O׾&7Lj%-+FY6݂WKS7OU[L_^k8`_is* zFP{ש )#BzUp)"wl߾o Vz*788u쩾5F' zC&( Х(iek+^(F|d h]!I|,}{-C rN4s5Z癳,O vX׭LsrٴHKgX?Z46cn ;uՁKM\  Ld}$bI~3's$1MXwK CxG"hmM5{[#2eBf>|h"3 [`% S:-\ t``y 49t/FyK+\p0u`‹; ͘?Mx=z÷'H<K\}N ٢֏*m xRxBFOOǛgևUA&k6钏ItJ:4HOFq)v]Rtɡ*S {'vOr:~s#yt#ibL~ 1~-|y4nVPKyVSs'pip/_internal/models/selection_prefs.pyuUKo0 Wa-z>[v( CF,i4~d'}dZg:{+3h Vڲڣ㳲3 **[:h=m:,V~:\9lѡgX{] K  `1;hy . 5yT( <UEx*x쪽[lWs8c y7 lZB>kr{1zxJ0=WSA VËP=7Љ-ww( wO!I!#٠#m`4]c lJ|poP~#<%6891Wd-ށ@R┒!mP1Ec,D'¸@Jj;B{#KXw338'qyc'vf/\tO<%\ˣj[S)NN_>, 'Y `\ЀQ )|L |2JŢdp4s4NPpP~ )e2H  M[@>@bxfgg\pR7wKoMS+Xq6exYFAnߤ<'Idvrr?UZ5imPT'ܥ}B!\o9UQ<"y#Rdc]f&)hΧhRxhj%N5˞.e5ϟgSYh5^*rS˓TҷT,|暚"gaGddƿn.lj$I\q0@[1z$f tk(P[S %4%p 8`* ƢtsH檕ᘞ9\/Y.p^ggpgu%IG ~nQPsȪH|~=#Eˠ%f!YP=v$D<cHyċH1JI D#|5܏pԡg_s˫iw/qm!9F6`{F/0L;n 63o|C{^RRbf3NNT(=:fꪖ,ը IiW.Ə1(clwLM 1XA.#g}la ; 4NV3/(z~ٱ gJ賿O)ܦtz:ȳD<)u| mtyȏEsq_aLYN, ]o~S+R2wâ{'V$[Aؿ0FAE(]Sk;%+7l1Ro+^o ӹq7Q>1-P$>ǎqLd5@˦#%{hbsՄ@!b.1%fpEǪ-^)ޱ@&/v]$׮Er`jBٷȎQ]RxivP$vB [[n# =6 -t=kDdB[F/;ZLɶ5WLkHmó'8?/m0y80z@u&EILWO/pȟ ESEXK|B#%ZI:š3{$yZo݁@ZwL<z{vPS͢^qtIgf&āE.q@yVY /R,Ia6Q_q?ӅPT$+uΚׂ>W2׹\PKyVS'TA pip/_internal/models/wheel.pyWkF_1(ȭ-'bt.ې~݈tmO#kػNsglRaAs}i(ʐY!KUe.*w*'HN &F4K>rCxNĆdU2h66N- ӟT&##MʺQPT;*smJf]:nJY$Q.N*#|h4 |$ޗ?G)I2{9 W?M8Vm~nz ZAm-} [6_&9(r_ѤG2Ch9-E KR\Xgbz.~%OLK<7RYsUS 9 bM]u gdI/ Flמ["Ru[<7^Fkw)"mI55:}EVqĂhBJ34hDӢ-|@7e-o;3+-s|6[).vgվ3L-/ńAԐ= ;ee]x鱉y{wƋq $ aC1n̅ ;DV9BpP c'L5p1VJؙثL̳a"arB GZ]qmGy]ۜ z&a1^),yhn`4ch02q5Og0m!Eq&\vcv 0ơ SZ)6D0WX ہ0 ڹ#D'T?<ǂS~uy%E #C"{2 J=½69^mcrbX1t<삷ҥ1kd$~Ǽv{\^\^g %SGyqMlzA46ˆȩ  eZd̀+8'+wHڍKnL1SpMRyóQei;'Oce҆|qr˝Vyۡ%:5b+IlB«4+jB>+ɀ~ȚJD#Nۮ ws?>V{ ܰ{;^/5̷q|}U{.m0J!a[w{l@5nNtk0/Iƭe- "9"“{<$cU#p`o /rtB;@uA_+Y*V5w^Nu_]@gmAk@FV8>,Vh2'T8*p5$"jJ%~.LW P8jwE8of9#JXAV҇'mylnUsđ`bE=, ypm}ibAf3̽&G1Ð{\Tpx[XqwQP}\`$0q~1_apsNFo?.)FvXge7RU!.=?SK_:w qOF8Ƽ .FnŚ\qQ( YCy d50#t)~JW%qڦr e  X `k. ב]^erl-X!@a~VJfhH,)-TF!LH>$BL"E)kMnѾɏkK=6̫6kX'rzFcNT?06Dl Fህ^xifaGIpTЖTdw*h0-|FtfžYQS':AJm0W[9º۷#Dԣwz&Y/B!<>'uhݲQ:ޏhݮTHQ eX KZ DWh{sXģ4xcM7u jX 4F5a?<*j1Vt܌D !&ӑ@7?V+WcCM?f#Zw5p7VkZ,Yarٱ #U>]Fb[pQ恫y>{{PD G b /`bLAo\M}! omȃ8vjĦRQ9j21`oc[C/H˨@GϜ&S{Qd^\4F762+tebЃNu~;36 okhm<ύ:Ozq֕䁠DZ$H8@<2/Z=%^FE+Q!O@LHIgBXLlgخiMDfj"!z#S4@ \"f0SuDZ֣^DB( W63mAޏpQ:f#',.߉jW3*C0:8QտNm)⥗maB 鈎6w[Ѡ)-cR4/t&gv.ى7F{6w-{eiPnqF̯$tx)<Wpsoҹt-`|cႶZR6ǣӊ,d";tZsg[ b/9"K!jÝo @ j4 Z f~ 736i4y%/oq0yA CÑTn/ڇm{oגgof߷,(cxBG:}!J o8I_/I ,_!B1R[U%g~zwƃ}4;54wyAENcRZrxLOɪ^KH%W-J&@>6d^#]W6C"fՁGIMI3_Kֈf)EC 4+Ӷ~3=9^:NGv"'4H4]8vJXdXpNb-PҠ>4=긫|tJ|*ӈ"j#,kAکñ:]ǰiܲM`F0SI1QQWaJ'`grN9`=4qڰ 6Bu$a#* ?z @FBz^B&w5Ej_xHcrJ/Y$@t#6RƔyP$7C̦ W3\sXF@dݒ5]Ukx-Zhir?7 Y&._h_hMZd Hh{@_\f@h;\=}ՙvX598 U[‹Pbx tz%3$l~ₐw?\Ń W̱B^PKyVSG\A84pip/_internal/network/cache.pyUMo0WR߸TćVULmlgoT3o{v<|uZb4GT{<2ZM@玍kjA+5SiXJMKTyq׭K^k\f~m˔[*ZH&HzeShh٦Ydw͋[TBaJ|-*V+|V~9P\qLQ-y+TzM.G{+&ǔ9wBa%~9RZs)wۋGּq[?\1f1)^ڕDŽ68=ˌH+BJSQ(WF45W TPCEK]Ѝ^Y6ښkv$:K?(fEFQT)SҺ-YxF&:)yփ ̼D-FBmuj5KS#bACha ż{9[Z*YQuhM"14>3k~BYdtEx5jBӺCX %œEIS $]kʛ?" JaVmjFwk$6p@k= *1$75?i$$_qn_I+ԞIH`!BN4*RY`H:-T'3c% '-nY䭯CLB|l9F+8@nʷ$ysD~$9:pBْAрHÌ 4rǀQPI‚ȚOHK.k6\| <Ľ7%ee'L4 cw8r#u~ T9UC;c7&#kM;Oe6U &NX2W[1(C_A3Sn'jk3|ޗԡƒhalJ4Jr ݍBuhڑF<&f3/Xij/)^^N+ L~eLhkTv ,ِS?k9-o Yf3@.hm)WCH1MhzTB>7jsàŦLCG'K%}u&,7zXT"fI?uA>ݔףuȸ(M  Cq6ym3k4ŏ; qYwMts{O1`v\bb7OF\t a8YDuzutP̘kKgL_ Ìأ; ع;tf!.weMoɺ6>åH^E82#㲉 NᓁҼp&PG3 ,.bch8Cõu?c_^wxͷ"ёqx 29 qkm@\q/ÄBIdpc#XXI&Rq@G!jfz\ܢ h:@]: b2Cmh7:ʾI\JB:B~ݿgd#x5#Z$ybF¦3Isdٹ?@~;<Nͽ١2OP]g\0$YM:?m-,0PCP#LfYSI'| !zFn'ݏ吡,ğTl3˘=eL=\>[:4PKyVSw #pip/_internal/network/lazy_wheel.pyYo8_AhVޓd}\) Zl6#&bR%iڇV7C6\d7ػAfI‹"I؊|y˭k6KuȂ&UOwBI~67l#H {$wB&j(KVOoTF\"[,-Eyk#7{]}K.} ]W&.{ax xA/#W'f*b[a\2hJp)cb-VGYo^bDśOS* +hMs-IwMgYZp ^=8_3 1KF ~'sgEjQ%6_mJ.#xFw;Y*-3S,,&ݑsEH%x}maAdř7&$:gU\ VVu!^?(N$(͎!@|θfϹ +قM)4_<ZeQZt7VҪ;n&scD`@ mY)᩽ȡ[bx1$x 6T~dO90SlMwkh{eFú(CW){^"Â]2.2Y&q'+HV+in\eJRj*- 5&E)>4 $I$I.1Zw`hH u $0CU!vPv> WM}P5D3Ɨ%HR9lb ݺ`ާ: HZ!- @VΉupikbH*p51%@[r#B_XKk0w m%'id΂ȒЧap\ZPi\;E0S%  ;eطt'҇ }`\ )?te+Ň 궷 vU'/vS6)mD'}PشM +={M*e +9!M-yy}I;}<-zKA@琕r2k9{?c2}'wihŹՋu? ,`TSc ߂P)t۽" ,KR)TI SZ2,AyY4p">⽉{~YңZ!iFb9ˢY {16zi5@ VhGUh#;cp>l/ː jt;;"+x1dH1tv; edˆ JүޖUpZa ڂ>#yج;\*Q`wMaP ]?=Kv(C׹ WؒI>ӯKv~:-GC2AihcUW4NG~|lWyzwvPRic⦕=Y*-xF0Uӎuwq%J]l`2<&BmVa?*i^o9 Tv胿G !E'rHdb8 D Oۜ"%^.tbP@;GwRJCP{ɴʺ?:*>AWV)*l㦨RweZāUwUgz0/FKA"(jwՎ! l;v@gg Aa4V̩Z&U (کqԞO8w4u> wnRI m=NH܆'S7]ͻ.x7`o') nC*ӆÖtݻra?lwSi5 hõ_Aa:+@oTVkLr{Hysd҅n`n%%X%_[U邨O O]@{ ܬZ6^+3h'U_ia1ZPDwwL.=ª>7ֹay p 9zKDp}B\*(/p+xM; PȂR_.$Akn֔Rw$yۓV+Vzy]X^/=2{@4ǡ2vpf`;hLF b$mE5z<Q |azU^&b59/M;FS8 0;#u/^,Oj}a1Mș PPbbvȽ<SsgnSig#.2/=LIo=\1PKyVSaݞYA pip/_internal/network/session.py[s6=7ZvfzF7:Iϥq&v>K"m5~HEOڛ{rT@`X. xvRkU"Sݮ(+ERrϼUNqLJ%\VEy/JZԺ.ʁ[M2A0-r,+i7.N(uY^sd3hZگU/wex}.L-]\jh' I\RI5r.*?;9W;I5+O@ڛzO&0F2OAs7a'IU[vAcf,SbOL`;0aj1LljwvrTUO_ŌMzq+1g/ O鿓=?yTnw`jRӰ^ۃvuQ4wyZ Hi*^fP;A-oSM*j d*աo`4$ĵIUX}If4!4T*<ˌi@Vn3\\,zѯ]t{fg2;{ !KC&aEUs=TcY| ?FV<:T" }2^Y/p5R BnyQv+,σ$|[eܯKukUm%鱓~@{(!L'/e/M߾L-ALBëǏo_Ey*pwCJ)'?B %O⥠k ܔp4F ̋]l /G"(u{%j:)3! asbsAI-3fV2@8Jat7EJ|A=%EUT*Lc Mg3 i)&x_ߐkfY‚Ԅ[ q/y}a ӧ4"gNX~J-!rW3Qř{QmV")A K}m5v 0كO'M+ ħ0ƗWKNvnRsчf͞μ0̙$d~3~n7.!ZL>Oݭ/ 9- C`PPq{oc(}CVb9l`Z΄ v0.;)t|<Ȍ[Ǚcg%2a^|ًXo4cx"yl]¨⧚Kx/5n乬#t4Yȡ@6y-I3F<5+…a!g+nfR{N~—G4'1bvL<>vS{Wwsͺ0f7fXG΄J0y_ NrәwH苿s]̐yp\eKQ]f6Ǻ=+^o`ukU ;YwPpy da]zPN4$gǍJ'`ɯCi7^Mb!P:*[ Sh1]MkӜ!PZ|! -4x,WWoR[ h5b2jlbĞǠ_, ·9-a)r55yC*=33yE\LX&'߾X.ŋϏO_0o#}'I%~4ͤx3J.U9}vWCPa*9<s2AH.0$}}tT&WڄPuŴj)96B۸", 'Ed5E`l ŚLsH !.yaGz Y#i2tjRJ@֤IIKD19oJSpigh!gj^E:f(⯯o[%Ӯ'꥙x5&~|MtwK`ܲgj$0>ZSO3v* J sN3JUt/zA4Io)^&E!# ?  3v*~tqe ,#մ@@Fڟ:-mdrsډ,[MmҐtW4: ?yP>Oi9V3Tk-RR ¯Zq)_mI&[ʈm NDtk*ᚂFno/t*طxp8b\7t5> F_pa:p}4Mg[ 44Cƺ:ْke?ܚCMmC1(r̆sВ,42I:yΔT&kEaibWJSﻧIEFTH=NۧPg\/iNOuϫEdtA\_fa,@ـV#Σ]-2mvt6Y啳m-oGe£!5%VBRD`YY@ +_A/ㇷdr-SβX/_tp`/M' ̑y{m8hg-jʒ'=c6~P;_I֌ގ,26=d fC0mz3D-jj&SuxAV(gYiA44G'gס2Hι~:b(C/az|gJsNZeCt{y +LjVꩣB:N]q_ߘ<Т580C(f{J#0`ܗVhxR!=\f}|3OR)rNF K;1lth; S7br>2 Mxy]|~6@' N} 'tw\v̶1͙!$=]R8ǯ bu:VPf/COonk-?Eg]h9rK6oL0 bhZv IJ* woBPR`{!O=Jt/vٱɞrtY% =eR{Y޳!f֓y}N m̻W oԑ$p?8 ~} m}Uޛ{ e Ϳ1"3Z±z~ŅݮfvFbE;}j<$YLI cN;mOm22uYmvHo:K]}*|r&vRh JqjBU0$MeT/@oX`{g6PP2Hp5H.6nƦNe}Ӑdv!k!* _I"f7$&5=*< {NdQp$#MY!?b֞u (w`6N0ڤk+O6:nJzH鴬գX_WX&/"T N^RzGbigRQ_!gw%Twhs\>=_NOPKyVSӏV1pip/_internal/network/utils.pyWnF}W ۀ$(v|FhKr(mErݥ%wfwqgDZV)M.4W• n-ja b~%dYD?k&01ww˛wo{4 QdFЙH&9J: Ю^],ÐOf a$Qkf4Y7E5r!d"0`CWEpo8 3XHax|r\קӣs|s6=;=ã(: G+B0B?BȈHI!6"PkU X }@.5CDu/3!@X&+QhbX!sC j dP?2UE1"0{V($)+C$3am,$l}-$@E&(ʰN^pI?BN.gbF8U0?CnZǞOB 8Ɠq}[S̉]A"KUYi2~wu~Gc' `Xeb4 A ipN< [}nY= `QT6#yjtp螓KȌ McaSh9ܘrCgTM eZ=вJD"_\H JQunInQ%BmpŘҨ9).}UfR?zӸȟ1ÃoI>ro V 6lUL kAQ;~v7ҏP#bF1wF^/UKV{R=lZs|nhS/vhJ5}tɳC x#M Af&ò; s H8+Ci~0X6TLXSV(i7coZTtr 5ڳ_ UMTNǏ,6_`Fθ M=FkߒÕ)ҞaNt?R/mfrݬ°~aϰkXR_=S/m7}ö2*ܲ*o_[`ôѴ,YIe[ooIJ(NxAv*7a#CDaU*q_ں1 VUTmikBJ15vmDMA DxgI"0'i4$Y)7-A=9s>Xู.ܤy֛PKyVS-{_pip/_internal/network/xmlrpc.py}o0WX&Rf+ic*B\[cZ!wЇ-9}}|.T)[JXnvȪVPKJi`,,)s8H}_Bi->*2DdoME"%_w-ikY3.bp*- ?P{kVL9FWx=XH~~uBfq>?א QRbp%+;c)ZT*IB B_T:ntpvmy%A8|a5y"@ܬMC {‘1>>#Rp8kHz?# b-/+X1 A<V-y2֣xS#JvwJPq: _C:tθ+&* ^fv7r/ oG5\ɒХrߙܸvgld`lhFcG8`Njs]@B#i:E6p?іU_?h6y`eVQUxBaМK%kY3eZ{Ntм2l dxiBLʼ H~W3+d*8eéSvdXMF{Rt?T1'Ƥd:N5thel]sTQ$)cd=@gSכis')1h`<vJ= D恍퓏\)v$|d>'p&3-&ԞG(E+_yȁTO[b jVؚP( .QU隼~dۘgYlNr>(;.Jkbf2 ȭtm@`ReL*mBtekdDyMזVQ0e-r M ";Y6EId&ߤ2#f> UxȽ^k U']c}J™ӪJӑv|T ]${i%/+ '3g%9\APh'/t-x뜺]!u䈔ڝ]H^Cc9:TH9-sh[$Y2nv*-q9J<$5b*Fr?'Wh Mh ݙ|7z,Tq#4{|8rՁ}(#]Vfe8<,oU+Dx4 Hݑ0߮r=K\8io rzpvW_K!I='CMzϿ&mCCEMDu֣mc/nvk* i ~MeyK|0P$lƌ'3 N cA{#E -TFL13j)L9C gD5 (]8чf|/~NTH%> 7FޟE`l22u{7*~Lk(!3K#i׷M~bz@EA!z3B29BKPKyVSľ ' *&"pip/_internal/operations/freeze.pymo۸OA |k^v݇,hNtEA/)Kn77\(b*y-Y]Y߹\.v:4J-k&2WKV1A7J o=+> h$ZM٤ .҆_(;-5˜VWՀonq{?ae $){ʙ;o= `VEBp1b-=~Emq1޳Z!_iT( xA) @e9cE_W":HÕTo~)~=C!-JVYհD YÚ1`u 4*&YW RyLk4˒bWTJ w<'Yk@a L/5Xkmu7| #;Woux `qÚl9ZILLlO(%b ͪ-X1lֽ/"N@dKڷm@!:/]7eu/ л _-ǚ$-bfEVx/Cyn52AB'MɼL;.4]o5=6@@1-8#T:h0 Ird[). Z ='|K `OB@?n%JD3Vڰ;E_dECV;F!j$>Nq4*z~Ցa|y̱T8a_dmP]BSfxMIZb1KXU{ytuJB S@$Ǧ+30%TDR_WdA|-)H|}:æ GA~?^'P ,+˲!dXj#}؎2ADDh;S:%Җv.di%-.i+gois%>wKӼu̸Wo4|_$tO [ˀ)UŠkG^t.)XECxVp=S ^0uBUa3m[NCAH@3x ?bn pNjg먟Hff Z D$_aSiM=p6qiG"ti"|]YV)5:gz/='s8"YC O|l/b2ti2C0g64F9V)(/qsR 3::!rjf: SHBMcf%)ƥ] -ЭĿ$zC\=W=Wox[d/~-&>d[<@no⎌nx@tMEpάaV h]GP10MZ?չ %%\t= `w>4778L.~y`͉& Jϖڗ$i4eauhXi I U0{ZRH% \ҍ^D.4 Ӓز''qmbۉ}"'8^P 3]H3{J[Q\dAa b-jBVz.eNZRnԹՅct*^TX=97VOJ*2PVB$ z{ #U$zXAp kct]IJ7.KšOCM {ϼaLZ\toƏ #']@R.UDIVz" ˶O`%l>`ÿk4bA&b氞1׵p[koM?p+Þs] _~LKSFgr$Fi ٸ,F.CS0(uQK:w X0&pX4аqFL`Gvv R0|~Gmwq A7^PKyVS:e]#pip/_internal/operations/prepare.pyfݭwU<4{oCk%:oVHxhޗq?t*0c{ަ_6- sYiuqQۦE"}WU>ho6]]f/`̼yE:B3.f Җm^ܫzty+7wp6nr#gUrpBǠwOX|bn&z 3o\ QmB3X{7}W}'ZZ| _z/} H|uMǏWC}MlCY;?7zyLeU T?;{9=LM^[K;kcH7[U*;;%~bíR#\3mPW{?3UTc̴ݻod})ݏhV `]jv)Fma^oIj:߲~oN w@فެw&5D9ߕGݫ=8NOfTNldB?'fg#;}OK"m%E+ۅ-"Jmj 0G;¹[iaOO;(aALͺ8\ʪF/YV&-VD 6P@,K A$C֨R7Ǯźi#pM3fz>f'e6=okNnP.d`8YŮ#xH&;=$`e&e> DBMx8aǪ2O7zs !9Z+f9Ԣnz7\ٽ,C_xMs`w#q*Ш"Ӫ-'g*D=kh|wNq6q/] taKo@kz!?}t6q-xeuY *5DZF"8Ŷ uZZk1g qS5kc5v;/v(BjSJyU膃?:s"-DnAn' Q4bEia|k֙8,I,21؍Ý'dKQJmou1X;ϜϒdKaYؒ7u)- rjC>&6 ; Mt` Y ԙ6FUoQ3I[5a{e/$7 x(V(t508pCxlc!JBbPMNtʰ[C+o0 ,r E!. L(;L|#ǃ|3ƠRl{ Tvkvt\X8x, 8jD`"zG$0% phf)ꉾN]5Xrdo>[&25}I 0o@4ߍC~SaTRIs$s3t$Q Yh3Llk5yes Ə|6Q1>xʽrK=tC"Eadl{=XpJ9Dv};9u+;w$DFwB,nf0hнRs历:O;d h`:irȡƕ1'(ǭy!-@7oq q;M] z6%4^ch26 [m0L-O=cr@CgԟYtClvKYKM_UScJы6t@2:V8kð NAq&>Fas 2'hp⸭VSp4#CG:mS)YY& xG-h &À m!w?<![Ղ?!v5B&ES?%=7da,-Cϊ٘ 4gr휉'#V{1mWi$OuX$2o0f*1]26HcMoZv`x)2&6'ꢇb s-U4g`B21Pn!,q`KiY!O~Aͣ$TvAymDf0}CD5e*Hz4FW$"?>q ;ɷ|<78V-D񿚲Bv…1!q,u@=iNߋ]"`hf6h_`59![ =[OĒJNޡjvԉJp3 QK\{ee57P2^DѬKV̈́\`.eC>~Sd0 :2UT: wHcd'7ha~ _;{8įį| Ȏ޻z0Qh}QYPLt%vk`׃4&ZI+{T`|dB_~Mn uoN#ɛ0YDNuº s3/ 1o\YhHh=2W}U\%v$B&N~4AŠ/Ԃc6$"t pqḸ:9(t>,?ێ 3{k~@8[Va L|dŸ7X=NDc\,嘑?F^ХEm{"+2.l@3&>W>47r&0V4;Mƛr-;I (B'hͧ@LU.h'dm قHMa/]s@uAj_B`ZJ4){sT*9In?Ce6169jժaUC>} O' P wY nSQLRA) kW/oU^{Q .зQJJ1ؠ/(h1;5y6ЛIe =K_Sw*X2x0"s#{D{ݸ!NaN̵4E.1a$10ݦ%)g٤m48vj5L$j?MUM6{vd{n)Q#M%f餺G-(}v5!tR5^Daa\>{aS_ta-Y;N.Ff4;1suo+]1z) ^ha?at$nf91*0 \Ft++yMNq=L5`Q/`F?BWӕR1e}~FOi3 `vj?Џq@m&*& =ZVE /#(&9xY+׷iZj@|Aq(!܋+"T K4 قD& DLE6mMc+p%jي 7^;-c?~8m8~4'!K;e3vGN TRիqHbN܇*rPJQDhQϳpleo +MP5JEFe9s9_qE: 2^ l'r^>lm޶Mb,t/s랣l靘RV+J9}믁ơ ;*J4.JkZ?/NU^C3mMgx7Wq>.#X5zUN8ꪌt(Kjk*xQwwCPMQ^vw>^s)o: G:ƹql-J [=*Ybkr3n{~7 =SaD+5Ҍ* O{<}gY)&Y)ߧ z6Lئ8c T /=641? ~~ Lg*i fӃ, nB IRWG=}ƴLF=cBLn&w15AX.Yq"wItV"s@$Thb cCR|t2FHS=_]2o`bQU2PQH#FI u`RarzB`FiW7p~űfP݅~˯ l0Ku `&`)<adӿ4shh/fQ :Vg 2el^R++&%MTG-4l ڽ{g_$L.673=IilbPn-5CRE!ޅ. O^{ICI:l`@Fhsc<=g{OIܙ2xSJ]=0 l G!2_y{y<|&w) 30 얏m,>ز,א#OLCRJSȹܸu}{u;r#WE40?.5)u,3W/aJbNoJHR7=1;ᘆԩ{de fj#(p,{z. |]OYv}No#dz#5d(RG:1fſD&`Y&'O".~eer9q5yTa^ݸs)Ρpݎ?}*F$EݓVC2l<yk:4_ILy`+pWՑb[GsD\'G^#Me]R +Tea'! X_A-gj}+H w^ sH2{^64 C2}{1-ΌJD*7y;7ȰVx&6ygv쵭SI̮ͣ1'%{~Y!v4AaΣST"wO=yyj@ GU jORq>34+Yѣ/ۑ`{xp''FD2Skt%&*WE+OfgφWTL܊g8OU^PKyVS 1pip/_internal/operations/build/metadata_legacy.pyUQk0~܇n 1JJQh%#Ieڼw  Ҁ+2Q%-4g[yCHr,fzc}4J7ӫqYV[ӑ^+jѲZA?1s\'e@sUJ#=7LsSAiNyѶW֚0:RHʧS_hZC{~9aB/He}GR:0 3؏Ơ'EG"d _X"n'G}F(Dkt+NGD- ϚA<)j &{yxlW$[IRぬ?/k/v7fG׏m.1k@1c tD= 2( g9M'd!0RX7j}H }'2jXʐe9?)-Ǿ1225 ބjSi،,sπ9:()vß4PsT9VdT3_4ŢB.WY%ՈL'bKYޮ]װ<+ >I-r-Q?*Eكי^lx(lK# PKyVSA}0pip/_internal/operations/build/wheel_editable.py}SMo0W"UJłEZ(E zE(rIֱtY!;H&gfɲCD"kpJc \pwsS0BIDG7iA3׃Sނ8LG֣3}O^܂T.)#`5vy㒅ᄠ 9Y2f|yN +VVr}$=ԩAْ\,_ȼ<]ټ PTR('Dv5Wk:8W `v5aI *h14Emh&)ymSݎl'Y)7\7}b\`FZ,84\eV>(.PKyVSȇe  .pip/_internal/operations/build/wheel_legacy.pyVMo8WpX@Ba{5Ihѽ K#-E $;)g޼74z!5am)o#^RFS&M; ^ȹ 5H\*F3{8H5n=/>gДLz-S~wwW((VU?8{)*PS&ID{W\͇]JƊ-6Bv.*u%Q("He-]KzE54!$i2{|F1~[<\1%[}t&7)= ֠*Kj7is?MC\cOˈ<.e 4E|)X係p0po*Majy/ľG{ q ϦՑCc=߀qTsgn=?-ypJd6gBR0h`DeH&/j*=F8>"WIIRS*pip/_internal/operations/install/legacy.pyW66 BI?hcH!s$=YRu.:\EqeRY'F8.8l&<8diXZz|6nY)l,lgjȍ.k# ێ́=ɎR90H^6eqգ4Z-!x*ԟ XK@WlqF{p|.UFxcVbe{y)oZ}n֍}8FV<@ ˅3ӐQ_;3E-Eڎ|?is" 57,s%Z4hG琣B6~Lbz~:D*v1.y%9 ڢMx;o{htDq_laQ~ci.23Ё*=Ng#++`08 qizt `"e:GME%0S:(rL"&o4 (g Ko&f[BPs;*o=lu&EJd@X; |rl kKjlX5_b5``g&"2aپ2)l#}J*$b8>~4SPNDKVɝa$&3\,td; 4`0]rX%M׎r;hDJhVO"=8!d3v&(uS&,C%?*M%theÕd-5p׮QՍ>y?κ%nz 9ܢ7Gv¶:\ vaabgTk][@r*Ge-^aG^.[?76{M, wڎp=yo6eѿ=iU iϬtZUF0{,lfaywN#jQm哯yMIOoo }̖܇s] r'6 ,6W^©SbJ[;M/{YcGeNb:rSԯV9pL06]X}"pP蒰ȵ5wagޒsOarm A!+햣A|-j6CaWJRnF: XO/BK nn>PKyVSX* k)pip/_internal/operations/install/wheel.py=ks6+IFYoj6ʞc+Yuɮb8CĈC2|H~ޭ5CFw/ AvUU֭ZʊM<+.TRjey?KK@-"JVWɅn 6jU^YY4MOVmli4+q`b~MT%Yk̎l-7I]fo]LKFuu$k/~Ujn7IG48Qiru[ycޮ.uÛu7z@{ *=s{?ѣb_%2Ij ?_mYY#뛳m%^Tȧ$_H/qUUg<߲ fm~I.UUQ|GͪΪ֒~>Kt2tmXmbYSYIQ*ɳt\$"t@H]iw«$u]SrxMKYǛu&i&| 2_gˮL@*zO~crSlr4ְfcX f''ů_==zQѳ9H}]kVzcq㿟΁j/'Z9IK$Xrx&kV=u7mZv\颁@z.RVIf0خ@q-UW׈`I+B7Y{1Ӷe17$mZ@ G2N:r_\]mk k,3$[[)̮,׾YJe]%=g4 I]h^̸+ͬ^0ղNc _/G`[i=H} ʳB-K3^&aL|OH.kudSzƴxף-E.ٞs>>۫<[R9s<~0AkډUf[m 﩯VҬ8C( gL(۾q6R(20f"|f}z6m^+F"@Nb㣼_ Y]+4HU=׋3cp7;']ojPg6uYMTˁ6I0@i$@N EVv^ހ>#-dVܚMjqT]Q͕[9 M Իlt!B!&$p# it^EuU4؁/. 7:;Gn:3 ᄷ|.4a:q#ɼae|tP- {CL5Ĺ{=@ .-oRlYRkR29Lo-rT_?V'[CwS M惯/E9˚(D~Ol2#- _ 6n4ڌ7M#b{1BC{dtĎV1 9`R fFQj,37CA@Ԃ/+ eW#4Y|RpѐIc2SDi7(Г=&kSB:=1bg *  r' d!&J M;"AX7ɖ5ȽQNN1-AXjGF%E?{1FM4ͫ.o&X fG6$iK?y`=7c8<m41>/-ўoHg -&ܒ֑zP%.DmR$WLځѬfs.gd`/52,CAsRGx iU "TeR"QBwJ9Ro?u7HNG#m xB]AZ!2G14pTh_zb2pڭ Q@ &U[ w$P9|5}"$ ]t9ö֪83aY_g~1XK،d-\VMf"6-R[D:X$Z#P!@)`7{5di.Afs"V+ E-ux'-hI Pnp'cgN-oE 4l۪Y^VaUYt9Wr5?VONX&(Y$2^7-} ? ` 7[k x^c~;ZQAfq:ŏj!+R!%55*t&mK4[E\^^` !W}_5q@nMkt4řd0|Oaiz[B{49)P;;쨇~6m c(L[ Sv<ŠVIB)4yFo/tjQM-s^Ldbv3=IDA iʌDO hBC|׊v§3z x"1f9Y+xgnO ;+?;013yPt󏪲 @Q(nO"ެ) u797ߣ* s/$9LqGAD@cBAfEC~=^,fCCMšsxe|&¼qSU /fK'MW7m2(72;a];G"6] \&(S%B92ꨶ83&Z `u?A3ȸ+&bɨ`- 7 (tB U]l&:`3tr0FՖ(ZkD#xLw u0G`G#W{=)5W]EێU%x9 ,2|֣L& < &U!m Р+J>7FMp$oʼn`ހ7!-j `.`3b.@ymt'yihi-:{vՒ!4>"@݅$  ҰdVF8Y?=2]g7Ypd0fl+^ؙ,tE<`f. L'[tՄ],Ʒz`YV(#P:4_Y,T%8fq\gu%]/ˤEVpi9'TYY]IXq0^g8$ݍSHEFhGWbSRl"BgiNfڌƨ1t)`15-+*P@P 󲼢e???}˳OYIDmzI#]u#M86&g?f9([i+M(6Nn~5m<Bz'#g~HKrIWeV2kzD'=z̙PBTAdh4m3S4v9En!t;ٔ -ohIAb <I1p 'kK}`zR(߀8{OE }fDH\ q4Ύ2pF#wW@Zk5)O(H$${`i$9+KFG3]]5"?E??@YGѹz~}\a!n NtwJ;c?U-ʡpḑۭByRz!Y!?(S.৔EB (+bbsNҚHmr2 [YI@$8\lb.O˜0嬍^,v>.u#W~10z"h ~ MWO=W G=Q?RNiÿ@yIsg'F@5Y>9']ؐiviQ!|t `>~nℑl[f`W*Pvmյ;OQH b2J] Ӈ8,JO &ڱ+f=6.nXN{arwvt 6T䳬9wڭS8:6IgL?00am'ug :#֗4.*Zg?*!ޤC-}6չ (hPI1Zx%XMFKԛRSde" ={/;Yi!C>0Mg$*c|wODpsKPY ȸA?@K[H"bcYf mYѸ& U>O1BNj+Ӫ;+$b &g,=hh9t9fԐ$d{y@TJi$d 1RJv@q;t"JEKMt6tÓ|VgRYP`1+&)זt ;>|If#ÆsDJ9vX#߶@^8I@Ӊ@vWWqN _PLoKM)F+J":K=KϏTF7 T"sR`t R"yu56Cr ͕Sɟ}dcHDEҖհ7k3E]u'##6Oo ! \+o61WY,>-oXyEzh.s`)W>x>z|jeap`uڈq/gc١uX65}\xU^Hg}z鸚L»z .Ls4ln )2RN5&|qeoP);~P|*#N. Rg2yhN &T n vٽ;џg1|VniNl͍Iٽj!E2r4@]M+QDܐVeKTAob j{Kj;0@e5(N&pNqiA܂g.S>b; IU :i2׺˴[KsK\( 6 ]R~Hӣ1GoH=3ue>ʷW%`6Dml")|5TY;n3 ><_:Zgp?.= $ ӑ@ ږT{![sqE6н,6}XB373C!nʨek'dq lpGh״s0` \MS֐iц4{#&զx4݊*t #^%@կ][>FDH&`") gJgppa;gpX7bg?lCNJ YްU8slx̒ *(-mRgN!Y$\4XnwYҩsWwD\. +~Ֆ*#4XG'G ɩ!s+m޾*؂ݲLtB32kJTBˍ<8t&`9Rཙ#41 9*;{(n\IOa|k@eg}*_sۑR6. dt*gkf@V+RSaxA\<tnT C*XgϜTaBouBy (LP$Mc9v|/w)HnP[cҦz$|k|tf=̀*>مkͧ&1ƎBfZuKT@gFa_;eq_ Z@6ykk%z!|jiDfՁ"&@.cBw 8Zpރ2JыRҐy5ne+2ZBz7-,y;gpZAdW̲~v0wI‚+]:SJG[&Ȱ8pϷB O|07&x:3E6Q.+=V(&X]Ϩ9qR+鱶ֻ`J rJz8C84RoAt >ȡ&p =BXb-@R:vib(_$;m_vM/Hj[õov,9)%& C-wUW#MO)aOi70ww$dL-ROe\8EN@X%C.]:"b_f'|<}GKt`{[Wӗ>\ q5*txa{ȟq돊b٧w[傌jƁw^$Ӹ(\1,ܯ6u 'AtM.rk02F?+*7 ? %fBfQl칹6jWoGr:s::0^͉j?-o3_ir4m7A}ՀiVo?O3?mK ڑƛp_q6t!#vh[{]qjKlgB;@>rEQQø_M"t/f\ʹ;>)|?5PKyVSecu˔;!pip/_internal/req/constructors.py]۶]5ULI3(돉g8Y@$$G AY@ iz3b]QgWEež.^T-o YlJ,ߊ_ECsSŮySȃb搵Qɻ`E.8ۉ~SJ g{fCuf*~%l/,@gʙ:ԵlZ7,yRCK[g%Wje 6`i-V4P墁h4 X#T+18l/xk 7t曢#V-7yIE OVl?5bi䞵H GU9{QdPx9g? |wQO NR +IE&AwJ6Xs nꚗEkΜsT-bS8$hGF]mS<4Ol7JlY.. Tؕ 9! e{PR%Gk<(vfUYEg@ADiacpJnRtq)  Y|h Q7ٮDBe"C_"͋Qu[Ѻ>Д5owi+S9$M4eKv9aS?I/xh~Mj-u&t$ph,NӊE& G p$i7\g$.T|lb<Ќ=FK~V "q4D&9N?__͉3;e%hذƄ?J>6POf`KL80F ĮkѴ%bSXT5zb̎J%!8K,!D;%nDJ#{HpC9r B)CDVGz ڝEs'+C3`ڿԳ -DM1Ѯm矯K?Oq}!+)׼\_WR5q rTA;\ɥ`+Dʲ@+3(P=~^oFQ{0*ά2AAHYE>:ηAMJItj.) z\wRkW:Tg_y  9Qk x`ώ0oتii#Wh%zgA 6`O@ ]VR ӟf>ayɡڣ1T ,h&V1P\aYc2D;O"Ə@>^"]i(UkzAM=:pfP 2DYT1@$^u / \lV,q(f [vPQ@{(n8bXꖋ] Jeql,`QT9}ШPPnD!V/" Z7I.\\E $Ѹ:| 8a?:» dD7P75>-J` ^7yol*4V&-̾ul[7BQC8ݵf;I<[PikrI{8uWoryVɰ}rhf]w|z cՑ$xŜ}_J SݪV4u6bB2AWb:lŒ]iQvs24$*L{J)U`޼|þ j ڈ?[Z?D5}7#! nKoT?aAd-^y%ZfJdB)xS! R}'=v4^iƝ8U7Շ)F%6T>LeA1g ŊI(<t%t\߅;5|<@<7}Xk{Q d'ĺVOduJ9!rWc< "hW`S51vZ771,xCP\"%(?uL wD瑮vn0#n _ikV,YZ/:4Zf0DFJm+6]mcxOb˿wyn# >p] cܸK #ws5D 1A$w,q7zJ> i*c-];`Dx#ͽa5ܓnNXs-ZGh )cwrx PݻoA=EW"ߢ}p=*wU ]>Öﻃ >?پǕ5XG^7-xt3P75ئHױ0[P;%"$ޛ*KH|BeM"`A@ر͛OVZk=An^:qѕ^_x13gͥF0~pEq](tSb'&L#‡pIQ連clʤ{mOxdc.3IeU ;ۄjA9+(GYyZFbS޽ V8 |ک]}O쏝 PKyVS' Dpip/_internal/req/req_file.pyUq-)` :?3Ku*ʢ݊]\HWV*MtۮjZGnpua/1ɯ+8ePCq1&ɔC/뢒Y 5Bzb8]\`딥O`3 P2E,R#Ym d6bɛ7Go#^;KmOA¶eu[Bm ؾnni3HG|z({]IUr@ܑ(@2bMH5A$X(=䑕G0OAă)9IXe}yB,$PH 'S'߉E  w˿ o_OOOޝNNϏOޞH]8Ri:uj6e-wyC)0@iE~lUnjn4 a(0<;\l#+f8vqUTZֻ%Rj5V |kFV5-^wRZ}Gѐ4P,Qf;.|w3"d!u g|ˣsMd )E&:K ]l&[9mr/Cl㣋dT@HM"m!PQ 8\Yv{b9V)6X G:HCP.85 g;@r0ء5~'x)S8<%\W̼(`/)ƺy_qB=]hx?'hI4΁{b 6 tbb$:(%͓-0<Ά!!ZBnu?궧azZUQ5pN:$~(ଁY?k]q< ơQax- r$a x%X?Z҂j,H&=|2#u#  \Vovf60>pqy.W+C"oğ)%o% $9!`SN"i鳀c2Nauv?ޟco@n'zy0#0Z)ntOH 3q78\Mg,y,zܩۀ",އiuسa~V=M{:)+"0/ MȾ[IY/ nnXMlӦpZhHq\BGg2hVv*oE4vzȺ0. ng4G!` qLlS>~6Z &6%/^"ԒDz]=Nղ5 tNz\[urM=urLbӟwbz\ѽ5ڒ':h2yu7G X7`T)@끢&#`ڼ%[}&TY - #Ӡ;e-wk:>Xm6LT3˛f o [%>[c& /R3 eϕ燗vG,4&oEp{\f0ܮ9 N;ŭJ[lWMǯ)YOԦT6o OlUrٙ %:T('v0_&SppGae{m-є04U{L IǓ-71*0n2U~cPu[|{5kS6Z\-]bm3w[=4x9 .DȴC_?)|EX:|A?z\N%EnZ>6Ў O;s_ڕ|tTy=S'y? xil^,T;nM c 5C]tK? B- 16|) _%ZM#7xAddFLp>pnԛ3$y4:ڱ(?D B&pyy2{6䃠#gw9(EApĄ˕;:KSSF6%]\بޭ `H4ZMcRJ߶T$_<wMt1t 妠KR:h4z2O6@KȌDeh&KٝLqpdc33wڸmړ#{e |X({l=[;{E t&Jϕ,#D9312/ 7|ς8 &vn($;\kyh 51TtV[tw GtrXH_/T+w*o4½nJMihVT'FVc{eF;koOΏfbmB|xŝ\ef?tevpp B# ]9 tGdS2zЖ[ E.>CammL&(t):w[0R(rVhs0IJda rxbkV"ksb0kOSq˘ |sUkDM7;oX>LS?938}`-MY: ş91OUr vɋ7:iZl6W:A\zӤ> ={=;Ź0XZ9E/k֩ ćCxK<<2tH18:_QSþBP,X`l#]NjTr,[?;iSͻ{%~x];P-ݹKȰl5` O@5/PKyVSiD" pip/_internal/req/req_install.py=k۶WXh8m6Lq7s=+BɒԮ<]{nf888oɛHVv^:Yhdشm\JTI ۝HIFlNNݡ;'ƺmmum?Bf9vPz .6_]וkݭ8Y._#XHc"y6؊E 9EZk/%m .+DS]^ _!u9e~kj6_zek:tbYjkq%Y7ZMr[*܉c-7j -DR o)ˮfm/1K=F/@ԢR.*DsZ4Wu6E?(LFm}ǚmeZ,k+m\{j dPd~G5LGSV2.gܣs%iYo~ "W'[XAcC׷M4k/B?-v\vW^ aW07j[%t9nL-D Fz$#̀؈nU5_A;r M9l g;r$#pGqv05ۖj(̞ƣtSW'˿zQ0ráSɑk`sc쁛 `oM_\JA9j(v# ~L:`1uSYZsҭ`<j_ONP}+(shϲhEa  ~@ B#`>?9z[n*7i䛯K޾znS`䟘I0s}o`򡃓Fۅ6T,I^Jl@ @!:5*m#oiOk\lbOd wŒ;Ȧa[hHWʕ(pFN䦷V/Cl~ؔ=5u΅*VwL ͦ7QMGB.jHr򪬷] oX,.6}ss`K2~m%e(<訰vU܍DNֲ*И-a4KT^VW:6xň|.VV%"b:r;TR*P잤Hu+PBs wB UxO`l8? c&6`%whu C/9E22語*Qя?8=NKA9,v];]XD;h5֕ pv Ô'H#iE~u+yo ӞPI?"] Z!֦nZY MQ CxI.@#yDN {9K`.O?f6VNq&ʞ aAxZJ>ˌN(Ɓ-[5 #\S%KZvnZmA ΍}{OV҅ZMJ Y6Y ʅlnŦ#~@FEnDl၍Myϸ*uyYP %?C0+01ۉݷIJm$V~;ǔv\ܻ?Cۣae(9jHYm˵Ѽ@8:Sd6uIKigj,WjN./z̒] E6_HAiH^nQ5XN .*!J.v@< ɋWk5Zӌ^Zs4mwMi|E),ϲl.r6ng3OFMEl_5pL,d8&0fP"+sY5ltmNI޽gT(Py,q-4aSaw7]K(6LH#ReZg?ɗШf)X$~)#&‹Q-P֠[rˀd A `ihn,š#lCkD]N2{ ;QRߋrS )OTSEhJ˹zOo=14*wD'z߁*k Bkm˥0}/`Tڎ:zjLg#`7ejVjh쏦*hCzKfODXZm5A۪ܷo=&9lՃQ~&;5d PJ~2+B!jQPI1?l~+nMZ*QnDi1#U#VU X! 0c?:؉|@ cE%̋ydJIuH?Gu2:v:s0rô#Rٜ=cgMPcb}Y\??1)M'4( &ɲ(+dr: K tB@7^$`}n)%Ӹ^6=~ހ+Z'pmHߵ~O ꎽv QnS~Oo`I,':OEFF8F8ypxcF<1/tgҬPDt*smܕVϭ@F_NT3c+5cj±4d$ P6xՔ|&gWtEŒ_IwN&΋&9K6r򸈨i7_iI*ud$QOY̑E rce!kX^`7j1#)6~$S{KdGi>/2:XS8*UG--W-p$cXz:CrZeD)ӌT%\\q,IG3︂!7 䤛/n~LML{%R6O`'7nyC^8yD1 [ " pC+'OO3uQmzKL>$&҈!s[$a?t2G4\SK(ʃ:&8i;@!tu} }SMm2sx.(CM.!?/'0rUU,G;<.6Bg&n*\/L"`̝W~C`#mdom1%tf9 6C-L7l!5PΙŜOXE+¹5!k(%7_j#\li]ekSSm$ k4yß' m /^m˅@_Ch؇3=R4 /z@F={f%cCZ~@V3D|,9I0r;ir~p.he f45v|G*ǣxaѤ$zmOj-*ywnFNaIz xu޹M`MwmUs{fc{>E_ ozS+a} (w>|q/VGv`!c ͵5pe AvI"3@‘rоZVZ3 I 2/yQ?\0E(חuG/ Iʉ]SY0OQ_fvߘGs0LT5SƬLOU560FFI^a)xqbzx]{o@u 8!1fdh25HB]7Nv~ M䁊$nkClsv*ӪObuZ#jl;7g7,N1I<#,ݫ\4؅:8ju UPJY2k}`^y݉X ]P_rFYZk+1TuЯl^uZ#|9XRaj$X>w"2J #]d 2o862?O}rzԽAc= D*#Vewa`U2qvgUs eۣ ߟw=Ő+;%H |;B縡odH':;a\mFu/WTr{9 OcY֍O#?Sɠ>іugo՜&JG d2Xd{322x/䫏y-Z|_曩6˪6WG-&] 6>t/BzT*L.9v ^ݢFyq07 {EAoM =ZQZ}ݍ9\H⾖;qY0!ޕaDb!"I iǑ;rA9>F>JFģps_>ܝ짂?*K-d hǏhǖ?枻8x}OO C:"8؆wȗM㔂p^Kwgv v =wťdȩԩ4w; 'rDZks (  ws-5ya,27_x̝v;M޼xo[:5W$G"k_O@l*ʛ7uLIҁ^o.3XZ JU*%Sº4*zky!;1[3 ؎}q:wv2_,/bB%YDK(AW̛p)%™̐VuIu<9t*%%TFF3w5tP(*Kez:-2gVQ-Ghj-8 .z#$jDť ?A1ȵom^T#;.Nr$b; y!ҋИqh:^Ha.GِסcO]ZZ2l6Z3OG0 O V@a2 9NP=oI*ԥSo^)>u=d߱wDŽ>I7BPKi 1^.x3JR'BFq]&PoEuCw<8gw,P[-i>)a^&gG.{iā5tI$?kN y}a(3I(ኮ6" cV9$ͮ޽όţ M {yc;|}Vv간yd_Mǵ4֪lՖ0 砭|_׾&4fF-k?9X80F'y PC߅ Cu1 zPq°4K#p6rPnrJ>)OjhbI$9{*xY3 ݓ@Xoٓ0'L *hKOA; ZTorƖu&Tb#/hh;e(@" Q NB0/6t2,Q[Q Gs\Ѓ@M[!GѩF̻'a aB ($8`G,3 qr-BbL`a`0\hBao]r&ZYuU'Dc:p$μqG3KZe|mv-0*{Vѷ$8l}PnВ]TK%1H 7e }DyY;t]t2g2$:4Ǔe;:&2; Xlϵ-Xbzt 8\$? /R+2qAB{`&e!Tp۹Q""Yam'y~J~Nx \m E W^ݖf~~" ) %R^H=K9ruEw%9p&pu}!Lۢb?G:1:Fo#6 .#ln>Yك_6nt(vi<`i~  >\էoK1%_qB ݘwkE' a/"0F`*+{0Z6ч \-R x`FsQ1`ަ/&7%9cpr_ jɏ߇#ఄP"Kn7Kv<D vO^mLw& V8ApDHIcr/V0Tg"~@Up P0;,åNQqp ]=,94D\DnT6j0yfjDvևK ^N&'v:Nvu8$~m-.+Iȵ2WoٟD&_MPKyVS2 pip/_internal/req/req_tracker.pyWo6~_A(&= 2k!huid-6TI*[w~r@K;}wY*m˵rbJfvXFMlmC%,k^n;V+Z.aWNIߕZ2aH-a*JVi&ᚁTӅ(mZJuZ|SF|?e+~ZM)N'vUVHEa6#@a-2Fw]eDg=iuجkVWw">kN8~,rv3s{bqfm 3xt}FB6`>ݥ^EisԫO:{ E.|B2&-T~JkmA0%2ߦPx1Cp|,Ix>com~Dн#+H> hiT=*ZwE<; (ݡ:8ynfX㎉=$VW뗯^^G2KncDxۀv ^s+p-l?L|'Uq!M\|VmGNQ:E[u'scr Q+F)B/Y_̢%Pa 6 Gy NԜj̴0A!M6E`=ߡоj~[42x : so\J J罗cE'@ڣD3gw1kQ b KmMV>-@^d|ϡ܀!jq݈J+)/M|;Zpx.=Ͷ[jis2PKyVS\"pip/_internal/req/req_uninstall.pyH {޳(wm bߟ|i^?h]toM)g ~Zt?)Vf }x8eՍ }^U \ bDz7Cy$|o+yp۲M{YMw۬SYTS$Oqߛnm鳡Q5Z+)XҼmAg_L#utG qɳMA)Hq@U.٦4:MSA/jx~kNzzw ӧw%D;^J=u0TBVUM'.X,͋bMRV9sS~z&Rq1=7@yYX<_^>[K`ussCc )uTP%Yi 4"`ޯE^x`#|#CZ<1aIs1wΨ,xdB!@(@h-7;.D8$h/W4 !30苟_٪n//.|}tutۋk!6]m Y,/Ee>Ԓ໥ P)j͝"r4`w2*s3TU`{@#c21wFMk*GXhTNF8^u0))j~!#,   11K/fbe#n;-RՇi5^$hAڟ+%LΝU)㣐OA`oCޛeAgFyy":A<)& 怺}Pbhx.t8uڣҘ%dLfXorOQlS__.Y*0EHH4$v(Y>؍ ('=DYFuȕ ؕu  /SZB턼ʆI[/ |~fCw XU QŦ_QBȅ:m)h"xnr# \0N*Y;Uw%h%Sn`ޣaC;K: /=h>A/JӰ6 =Oղ3_:dX(o>T2?u*nHw -E-D۵:(#] 뽔Wn%/k鳵[ [McK=` r0v~)Z+\ SSc`~ 9C,d=GiT17=❑yS$L~4SOg= *+xͤ.]DA.sW~sEL%Ox*nzcGX[ y\VI = v;z0C^t8} N `$g>F> jà6a o?8H'I_|(*McBY| "( zH:g(rɋE.yf#;p!iF/pAQ9{A%rH4w3FsO 4M!lCh?U) {yra3fl5ᶄXф*'NPfzw5M BVWJ ks&@EPwظ/+P#**I8z]@Mr[#[=+k-g:Рg}R*h6[YhW%_aZ0B+澐9jsRn~" ;päJ"ܱ|wprp<<}<סl4t,\n=%6>TM.'m^bQˬG D!VAگ0WQ/ 4cyͿ~I2m̥ ohqc+/Zɳ`9;\T.APm*rCk 1#['5mIs/Kle(U/2R#ĝ \JP5ځ#\4[A攃q9^J#w Ekp{u YegbOIj{%T|W`N^LQFIyDt /?[J] (/ i]E4; PκhZ! #Q?ά6`6B( FՆL vr&6èB 8\ɂ RȎ/v iփy9=kU@`֨@~́l91L)\*`@ЃهaG@A /=33hy Vyr/0b+/;|M f&źiKJ|Y[ۊb0ǩ_$Lt2H\JE!(]YWam'8)Pm̴ө^4eUl:^/f B_!0%_TȒzs[-!j)2$-|BUdx KvRܼ D0gW# knFV@;bo1Az<:w| s'soG-ˁRڸ1gŨ7U"ɌU+Mu\u43{P-Ѣ! BC\~4zb$mR஄ V" ?Ǎ&e5uM5CށSO0H:[C~j$*P|l21Ch_G8*щ(,3c .H&҃<Ș!4Jxlj#"smTz8Mvdt6G9l醞UNU4zԠJۨE|@n. ~a b]9LyC16qߋrR8tmOFQ)RyHו}; >d =G3ͮU;1_'yf)h ޤ +~@>ߪmd!`!Pd 25BԾa ogKVwFAhhX e(V/hv<s'@>&"4礢җ'I*i7!/+G1"<7 O5Q[p!4V:7卶$៹Q?285)ϕ ԯ$؃A|p"$RH/I ʏ5kё%p0 PEHWrD3 &"w?)k1i9U̷8DU'8wLõ~,9ZtwwTHup6mM_Ev'`GîKgiG5`Ja#cim!Лr#¸`J6 .ۏϲQ` PBf:5k|7ط"Թ- c`x?#c*h+Tuͽ;;=p\%;<rYv01֖x X寷~3?BѨj6JGfZwA=Q_݉h4Oc :[XYdtq8If!ejPGKvYXmy;xT!;sgt3NhI-0X,)b/8#Bp?Fsx5FGMW=՞hq.XgMTb.5({L*5pw_)bqs֐N_;~LTƝ6a> [6Hx_˩ Cc Mр}B0!GG ?ht&Q!?I.0v'jt{y7sZ!FMr wt'AmErI&8N9.8K"ٳXy9&ȅv\y?Es0NŎjy<r;??_&pD?RǴ=vtj=^%Vr)\vb#zھ6(hTx{j]h  >k;/D%&÷jZ= =ru|Oc(04 VGqz7?֏V#+ u+>_e1y6\?RHeOZI2b.٠u^!ᙍn@IF}= YS]`gCĜ /˼?fI!֤Rt%ghP>wV+2oP{qui)"6_Lwo?Z BԟM: ҦUM/06[>)s:|G,M뽀'+e^Aie=rTIpo-f7 +3h\s ǥ.$_,9!7 ljĵW{p/ G,xr:3"0Ŕ=x5@Of]0xU2 | l*WMs>z:{0{M;|˽bL+^(&?59b|H˯>kv. TrgۮٷWI6[ s\qUAW][V\#0'ݗI;NNi71_6*>=)3ȗѰj4TK j򼚘r#-AI r30i[@Ϻˁ5`-:*RBNC$%0wywW\; iޮ΁=(7 ̶j_^Q">wkrH޾[%oۼI* !绖>eA :m"5M)(U?:a ˉrcExMq[e$)d} zhAUmWvJ/;impO"_;ą=o?B%våt@1a`C3:. itVI4pxIUm>W;~s^_c6SW#KM@*A  X'z}% m4|>_ /iOȸk_˯nl$aA@_ޞue[ҵ}:ub,0pݾoM<|uU v>Ov>`8&8xЁQac9UcV3ZxM砣0 `.ĪDŽP.٠0PqD ,PKyVS$pip/_internal/resolution/__init__.pyPKyVS˩G pip/_internal/resolution/base.pyPAj0{L 顥@iKr4(:&lciifgfj@?k@h{ <;^:j7>Vk9b+Sw" yfntv YPG՘UȰfd63+P71YVL*֊nt'Q2ؾ6 Q}ORSGQ/H'#/*dMzjQhKّk$)4w颯J:y{MVC?6}5[ Dǯ={5=L->oykRT*d`SSPzN4N ƽ#IC>x4,y,s0.p>QWh7RO^dfD$k g}<+ h@[0-m'+_F<>:c *?^_r BAkp@ KF7סMt\3[ yZҳE$|9HhE3Ѱ3G}~6cƃ! G6=Ђ}G8z<D v`bi l7qCx}l!Ӷ.J 8ų yvasC bB<~i7K E4,ىt듬g5#}9]ЍB{MN0nK'arJ]Bu*Wh}N6R6Rh  ; :?02xr u*(IN,2 fԛVP;_u c8݀G:гo:PwH-b˜ECKZ]-{-+a&?44xE[rT4V[E3F?Wm3j mxocGXȑEa|4 7Gjke~<$cq̭O ԥ R=阜T3aގԂL `sArFEOf`oqpECWyhDw7+Z"lut n7|#d3J]Rr咽1/FVAF[!6ܠI?Ž2edXQ dC{x),tZH(/ʲA/b)b¶Xf#s*5sTHS NEe?ݏK *t&.ggP$Z`',`̭ps}vP;aHk(X}$xXx\Lv(=WY=bcl`z(|9M_MТX ##ɺT ^KV&dNba S0v< mP As)^b24ϛiV<hn AL yzL,^\ ١&$ZIɊM]qiLa#u|0qe렣"fUu G]5X7.y}PӷXA>;\-m DlCTqKt>.|DkϨg h,c0]a<^W [M"ͫ1Dž2cl1yKAĢEf˨x0MŖFGp$ X^T>E :V:QGO^9Elx2B.#0w:ʜf<苌]ʠ떺BL)J[t(/9`,e@:GwM/h9BUpֱQJZ몴$ S@5QZKM ~k^3`2jaKRN\Kq"[PO }ܝ} 0a"W|P ʕ r:m}#R]"nOwel">az\ VH"i3hIS:8 !gS땓j9+ ~XՅA :c58tMQ"('>tBJ@m Kdb]"L\\$NBPB re E>o40L}uuc"ҡ]ChhzQc"ʻ&ѴM8@}4 ׂ$' a uKxCђ!0l$bq~>"фr/36d ;߂$Eߥh% }=tl#CXaIV(98R";`c ƢΌ޿z?LQr`e5?nI9}{a}ȿm$=#7@I`"!YAOxهx`Zߙض6 ғ_a*c0a >w}7Ou萇~Y ;Xj.ssrRC 4붚\ gSmՉ?c'z>Ǘpޱ`lFw$&rVb)߫Z 6ATi6uJ2(d̊)9/S)_{Y"w:3NQuzatG`)0/'lAE5t+c!أz*bZǥ \bAVYIm+@ [ayb(ɯA=:1@לa$H% 2z09I[biIsUp}cgIoO;=]Mq%;8H\LZ'{"w›hM{'A$5{Ry(r5y*J=3A#ɵ!jf20xnϿf /!Riԃ_Zt9Oڐ0P?Fu2 7"LxgA@BwgS=qdZyw5u6զְl qcFww.h 晉_pEhľB3 Kyգ DQW^Xd}lҰv{cJ47uӥy^ _7s O9bE,G^~h#3MO6>] 6~.8&()19+#!&1 )"bO|3m ++tQaj#8X4:̊noo=YLNsHѰ#}ADBLݮ 5wEr %=}1"tj .0KT)5fRMpAM4^*-xxn;U@ _2*sE}H{nPkHi95VMuǶ.nb }"OEf|]Z$N2:` Mßm f. o=9L|ԛ-RtTۀDcJfz~vL J,V\ X8; .OU8DNuczx݋k7 heۯʼnp3̛g}Tq5dU\I'zRFٿ)E)6#P\]%Q $q6<`>A3={A:V02J9T +B$ KuP$X眘UCi \2`pAiڶ K eNO- ZrF~\'XCívHнˁ݌)lOLZ,ܦ,X}H;'i_n Z  ^{o+܀^:NoU6t,?ݣkfj>5FegGšP8L蜘O;HRCcb GW{̎Tf.3teߺ)yv}N.B(C|߃,fSge=;pc`9zm*$&e60^Af䇼VQ%WB_l1;uKx\žcaO#ZqΑY2/Eo:co^L$u#*L]uylUCO;r LN@[a {\|$UJzqG`\?2Wi.d!Es݄aIXN(@POtLDSi*$ږ:>g$zkfS2D^H+XۺDH#n֢^&]dJUf+j-pMP6Ů.$,'y\ٍa=FsՁ۠#? ezj IH1V) wU$k4%׶QXVYV?QfZi3*e^^NrUldTknkhfǓɳ'8~=.{To#v&(x^m^iM KE*ډ\u\2NW)oڼzUN=OgU/))ikXS./0 N bu4U66=.0 -/!"k5N6;=8x!"/sİE$M~c 7+ =24?lmA :ҢH`T-p7]ӱp9__H _DsJ:O)z䓴r8QzĜu#DTIzFKjWx*N&h,asm5%o0!I2LP '0LV ̸@xpׁ6O&ug wY &oW]qv=9f*8 N*x__JN~<}yrG/SҰk|d7jCd|R$ ch>L_'qԹ< NfS3mՒycGEE #5F7=2CznSiK RrH4 o7M̐*uzœ!᧙r-_Ѯ%C\k @L7Z~3⡗䮁⽡(Ii IB۠ 6 C"6u]Xm.VPRӈ hE V,ʷ|ZjPcp%{O͛X pPk03h,58pZަ 4.8bTPZ^^MUa%`mSؒ1Cx cڎeħ1w[W i\,T_[.MAuTu+e.xg 0@/:mҵ!jllOBZ)r NEKd]ƤSL:)-9X7to dlʜ^~oبQ3vDsM{[LK^(iP %lR*B0XŊmZ';BTN}{|oV0A'DzezXw.40hGt|f~zc>e 96N8b:tapA~ΖZPy4x8uO𵗵BL&26;KXpKNG4:":Ib]}R#G6u+E*\-WʑS"I/bj3ê)Ѿ4TՋ8nБR-7!}a-1=# ?YZ*GHUR Q;^7a[ae9qX`_! R&fu׬/)l=;G=v}d\2G}d/j^c`t@U%eX- 8M^db05cß=;﹃D߹{FM"[}ZԻqIE;;r'-}4\ə]u+ѭ^̀}~nz *Ȉfc WZA-Zl)TLX&x˼Knv13 oQ* ӱc 9%M}٤"=ݥ#D@]4ZƂaU(v;Sy3#. \eKunx Tj|w`@() L=evԄw%|Xem>oSb1|b#'|l}E MȚB 4S΀fKE;KN{SG=U0-oq)Tg9M<`[2 *[h 1ܭQ2*b*̈Bj+UuFnjdlyزt7q쟴_LlK9tx[-7@ÉUzM{Qiea^g&q` >=7S9EKUO;UQT7>݂N1Z6e3%!޸k"aBo Mjfx1[ebŔ G&Mzt֒/nR6qDnxQhrA8YWv##C/UŌ|ɱ_B8Ff %E6zQkqH]ˇY v)}8!2e@ -O\+ V\qaY!bEZ IMam-("fϤᴫeL+ġ!5iP+x%+.2xYk+IwHyp gOAlJ3Ӵ3绳: CzW+*L^$?hI,mNpݹ[(rK[S'Bij~)AִO鈶M+[ l[B7z^e2;Azos4\ s(VZh)Z9f^5-B_w;61auq')utehc{^lYr T+!怅qJ|B8 dke>{wRcyiC·'`J>lK1 `}bm| BÏƟ| yygwyuf].e߳C*]\xOMr0l@z='R5+Io\3K7^r Lŭ+.}յMFXu_Usg}2ci urWv1Ir ~#wWj|-E٬cp~g )-WH @.@+ɑ],7'N)>t}5$wSpX ]?qH[mK*M`a_en4iG]ZxyV/±y,ѧ"RB@|Sw\4MAQX[WՀv" &(-ZA֬SQK-e`)( {]n55ZVC>ck:'؀u򞂁־a+ #?˶>S2V}ۼdW得1Q0ǖ9_GZ_vn{/Ⱥ-W0@[<{MMt1p)Ak RcrJs#2Nb/\+jXv!4#\r)PÀH#iAMZ[  հXPS{7?V,ݰmy'LEώh?93s]9_ /}5n)aZ@m΢K>כ/vc RQi2iǯH_Eq} m&˙sSCvxl ^gA* \yI)ce]o`wM'>x-,xf_իź= )*r qWw5 x&#h BdP,[`icXFa844==h!Ro"t4cn>ƆtYqRoIaC3mض 0~x-Bk0SֽsZΞ@p=!Aō9cb֊9s*C+J78Lo`szo]1Pi\a1ʹ"-CPB|29:E=z>5Φ2ltq[de.n 0ń4e(au<Uf9+[7N`yssFf\;ަ]|'>Xr1nN8N0UC,Sr#S>mTS*枹QzQ#]T9'5tT=I15pBK˝mǙUS8d)dM?aǠi׍ Ck]kGo7!T/9) 9Q 98R qtĺ.oU³* դ=2o_!u4ʍ1VTox1ky QWb.4sf BY2roS^_sDYoΉyjq#Dxb?> Yyx~ϳoJ,?M&w'ESك0geB/L9B?bbg;2 4~?8|xIL4˛) v^d<'-x/o LiS滊136 nntˤQVр5ۦ&țOfks5Ekr=y1ⶺ'k_2@Ƭoe'Ń!X^nx݂u E`tr9M˶y۪'/MKI"$WNM}3|*2VR5Olq7_WRQ_Q9B'|F QF/y?.3z%.V*X]2e>t_אʊ+%pD,vne@G&wXIժZ\\PB¥,)C٨4]28>ŗ3 _R*|OT@2[1~F*rRʏ,ն.a|n/x [ %c[ ,?ۮm""X &sqPw`e3αGޝ8ΉO(yڡTDwMpU ^5DV2!ھg/!H Jӂ1bqϝ9/*.^׎u<)c8jZ^ۿAJ7coX5rB\%և'L%op *C~S+0-46dDìOves+ UI`#4T͡WH [ħvPbI0Nj_+L.Z?!É!!ؘ uʫ1ںx_ULYy( }cؕPu:WC!>[DcNh"Fw"h33ѡ&UH3Z>uø㏋q:( =Dj_1odAH:D:n? ~)i޹O}b4Ҁ9/@`ts/΀mjyC1,\8vwvUj wSKM"vy᭪hc5]8<79wzG=HuwS5^7^5$(bȽʀ=SPDbTS=oZPǹ 2V7C1e@O"w-eBK6tl>]tֵD YӚ~8ЩުG(۬h4bI;Coˋ[`_R⿓4.[T>A=/X!,k<-aPx+C'Yϕ հmWVbI`Řl4"[ @{yO&ip4X6`Ñxnft8Yx31"UeNJa?!'iB uV[+|\< DI>NUYC9 l$<lNRe"E 㯮=cp*NlXPܕXjQTSټc lV R^íVjUJ2`V^YP*iFw܇:uhKsqwRtUAc)ߥcq ol Zn\wUjd,|lasQ]AH:SOo` DkaoVBp<:)kQ lo29܅?arsG,:=9ì+#uSmm1H{"/uY6qZ{k8S#Ŵ jdx#YHPJP#z^96`wfI&L-WR..ٛN1{̨{=1;:! s !P6O7J2/T9/E]E|ܨrLBK6T i#S6*5߉J?z0TD@"Gx@7fpPFi+7ƌ(z7L^+^Qʎawk5rBd*IXGu%>&+UIJ&a2+Еy1{pk18?Ut>N,R;H>Ӥ "|ԑz#uK{|ډܫ:_9/7>y9:XXik+J8L^s Q:<=k*#ӏ{RؔcEsc=7 +YPS6{5;+ -X@a`81y@s! vCTȊ/oNyTAۖeu%կ5lLT@&5iut!< kU(č $Ve:%cG+cXӴvYCkZTk[/ 3N=N"!"Q^]OLml[̀r#,1_RSK䤕KvɓSoha۶sxXn@*:뗒G ^̨vbVȻT,U(ў'I5Jj(CUi>C9,V(}xcUFyJ"ƀ{t_k߷ܑ%*2T+5;/$Q4 ST7aYdX?\/m}T&Eɩj%XU뵤|ЂW7Wan68yM@o7],0me_7kK,g} -4G^ tNyhQ#gh{L~+G1Wb:dV0!^, =4X2tGG%ӔM&\|tٓ;sȫy*(`&!-L .{r'J¤ң^ -f(ؔZrٷRz#f~wpV=<5R2xTG3}}KQQƀbQc4Bz&-j? [j2XJ?m[NS_B*%8NK Ĺ6z=GH7a}Fȉ Gd4*l.>. {i ;jXˮ0 0:4IS7S$1h`$(w:w3Pům]gXF*,fPe^g4dS{L38і{ Fjk,UShU%FGUFƁs'#x!雿mϣ~barFq}K@ͼi/t, dA H*| #V4T^#ڔ Ԉ In#X_БIO 34u_L&?oH=8EyF'4OɆs԰0"#u_>d^΍\}/FA\#3얗:M[qeŃ\";Iީ#6U57_Yc&&bc.:^=t n U?CJ;O[1h>C!j/`7# s8޾=93SKQ_ 7,{s$HeG)?ajɞv }.GbXeb;˸;[Ri\.V%g&H=e῿bO u <LfvKt,|![*NZaubw=G>8CD^&xPOy:!pϻK7/INR.)o <0KUO!] `сXUo X&룷!pibWL7U ABTX؈se(v߱WoFnf 0˗H;ʢj_%~K*!~64R\KE7PKyVS)ZI7pip/_internal/resolution/resolvelib/found_candidates.pyXMoFW,C@! MZhnhZ[RR.?%ѩH]$͌&oN*$YPGv"3:i҉ e3+ ]yEg,#˛^ElKfLd:(wk*;,OYvH dErSiDQZ!L+E*ԯWM3]6]mr۳0\tsf..*V9+EQPX*NTUݦ7lgk|sO&{8kW8j?kCEeN$\x5yu \.T1vq ڈt=(HY O<Lo*y[ \\t@N+Wm9WK$jJi8*xg:`ٜ_ht( e(-@pƥn%;HL^Yr;̅ߋ9U w*Um7g?Ҟ frW63rc_,/[+a_Ze"7l2 bٜEQS! M J.:_j9O{>!27O;1{} NdKE\[TiP(U|ZdP^Ͼd{pLC I%-%);x^pfYrY nrb2[BBu\ipwYSw Rڛ[m;I*&iO!.;IeaQ>ZT,T#6ѵ?l>ǜ;KnuucҜbC tmҫI 1d!u G쁕}FhVVc A<`1׈UAk5pـv"ZRa6%ġXn㙟smЂ0F뛵/-\+48 *tYD=hyh us(hǼ*OMU ЕyZ7a tG nCOyɠB[bq!NOZ#Ʒ?NٗDD/ {O ZB !OCr?QeӃp1veTFo%(c t~L5da su6I6)6Z3qmw5BmZ9 Nn͆}02IX˫AL2s_y 3p놝NȄ #5^ep?"]L$ZRżvC.iZhy{,=uk:D2_aK*j79Em (dQ2[pbyOd,فޱ^hmoQ}1dƶ-`B-vlXݶ KX}6hjDֵ x(tD[FT1-^ ,aSI%Н$Sd6%O>!+!{tYo7ǜn&R do3߆Y:^o7 ~NmÈwн9̟OYcz.#l,"~+S'Y ʏtb6S0N}4/}rYZѿPKyVSU- #/pip/_internal/resolution/resolvelib/provider.pyYr}W`x"M9qOqx<$Bj`:wm$Jr/H`/ko}t֪ĺ6#ymڳzǟoܾߦ+n*?JOw{SAk&/^E]*kaT**^e)ݬL/|ōμu)Kނ{T`,؋?~{?w_~x_ـҧh$7)#ߤڽ4x w#p- tWlqSxLhݿ${/qHTF1 Ee3;ٰhBwϔ3=uō&ñLjqVܺ% Wxy:g829B0*bb%G6'>6? Y^/(:1-IJH*fM̭TL)/AKmGECGԏ\l^fjo҈q-F֢dҹsluhG0Γ6WĮs(ES%ٽf ׭\*(XmY Pbi\JSxl(iID VE)F!9}Y0VdL'=yk8YaZ5F ÒNqiz'>4j̐.L))#\ Le^F GI>ٽl<'`CeL4I4K ,ۯ` 3=IY`lߊ.W\J,5HcV=ՍJ$j;1.Yf8o˔ԡj^m4!Fg?ĺC8\P| (";Z +P̡i*HV/Ki{/D޹yϊBֲ-q#ʹfu&'|;s8{+pܘD.*0 &lQ{WL^tYn+68wA tpo.  o$K5 _l*gRsxĩq-je@>oNcq .. ;w.,#f]_S)7=.3p-:_ Z/zEaۋEx;;n@ڥ{OETVHy/ :@~vё,؞ V3CxEl%N@$T 8QїLS4zqoZCjuhPޢҽ=;e2JH-tD,#lJ)pS>k3$֏AlDYl@uOZLJ A^M؊iQ[LĀzbX.!;tQ)3ėV垾fd@۾\Wni#icA'yŷjt-?a/4F %Dch/e-.a#\~LDUZV.1l5uiunJV=M8ϕR/XTZRWCGSVPG5)Ty-`lƟzF`g:yw&yMG !kL=DV=}\Eg琷~[DS6%CU4m"LUcBg աEB@ImኌtvGwK:`OQ|iJ t#^Sl%od3y}hg埝#8M.8qH3YHCgӄ!#,"_>Zr;J<CDﺁOj;ƫ,.9Hb]7p]݉hQ̢)vąO>@+ʶS*YZSliJLHbk$J76j@ܼH{hZ$v&0P0^<̑nG2`F,`kMcKj8vSiuIVsqBnS0&Gk*E<6N6wD#aN c^wsH-bَ;ND{q"W!y0=csçj:%Ǩz F#! ӭ2mSM$q+Hv¸%E+hGȍ*1ВU؂c݉~6ឳTJP3ȼX0硶K+Ւ"23Y\݃fIp-%G3D G䜹RMmC$SVƭevJ#M1x00Ki+8$49 >=Zs{ϟQw{N5`y4l^¢"tpp?0gxV>1l!zrMxjvndDGSҊҜ}y芨[DHIJ2_ `ILٺgn5': _y,Jf%V0eHN ŊV㊓5qMY֤GXDv!,s4;^_[ؽԵ}FI7q ab3_{D6iE%.ݶlL J=5,8~i7𿌒kTsruu66hH%hmND5Mnu7ӯNk* M-hNDS52_ :O8-TJk i1nY5ְ "md C%D;\zƜW2C713b^h&FPKyVS\O3pip/_internal/resolution/resolvelib/requirements.pyWmo6_j_$LV`(>@K E)$5{d,*0` $pΒe/7󐕖=Ha!X#Hp^]$wB'd>՝JOf5M=rhj3ZV5HqWϐ1LF?9ѕcsBW:WġiOnOoe. e%I!ԁ8נSw2jzQ9=(c3*B 決YU?UrΕg0]a#u0D™1 >a4_JFLDi0@ |ђ*C Bv=a5z})aCQi{ME2'z2axw!YUt+'< Ԃ71-&I`AIo@YsX +IYI )ќ81gz]5ÑLPbٚkl@4Hh8߼bW<g &[iSc*AW:+!tAt$YA8DLnw Ge13 .W6><'Dݰ9Voy$EQj||SfML3Y#P)uZw0}c{6Qs[u|8)D113(7 1*ң^],D&x{axr^m$|*fL?Sd9_#n$Y%4!?CX%b߭O153 xAf ρ'*{y ̢4MPo)]i1x%t~ߓu`q틠vr;Z:Ecɑ ^ ol;ڨF?:v _##٠+ݏґ?u]̬Lkje ]gM2>EidXoOdm#a#e2z)Yx=މ)Aߋ:s̾PKyVSWc l%/pip/_internal/resolution/resolvelib/resolver.pyZm6_:8jڏƩ@Isb\q[(DۄeQ!Df`/3 )c'&۾qЈݎ;(l+őSĵ꯯~MF^Jg-Wﯝ梥MF1x|w HEYI򁵵yG^FymE+Gv>S2%*v+UnCRnm$T۷驙Ҳ+.YYFnX&hg~o{ƚ+lI m>;3rϼ?d1I*$d.?摵$H Ai4~} <5Y1Xݖoo/7R< VDN܌H7/d1#Qئ7a4 KhWyM5șy-P'?'8mkSu_ `7z=|!P]l)<;ߚEiB,a㳪J a;H2gy9\iŷآJWmI ,X͆'r q uzc#ri{=#=0W% TzJq| ʚuoV` Cܺ/Nz/騭rb}fq5b#0Dm@ erG`y~ENu0|prT1T[p30Fo0^J mpZv5](XGCW]B q/)YTv n5FyԌ\Sd2@d38qOPh ?pʄTm+#L`&{8[޲:_P35Kʥ$s#ߟv4,X!@ XǶ˺' ݲ|A\|#_ܗQM-.ZkNDKX;~=v:kTzN,ŤښB;Ȏ?DĝG*-i]:*0fQLĥl⿘؈QN,egջ؝ۘ ONc87 d; ^*f0\DcR2 n܊1asL=k:a쎿F" :y 06ٜ1^}g` ײ^5F[k nDN55MDv:&l@DS0cQ܍G`kTn8y' ߘrx1FkLO6̊%а8 HeOӁyft@6u7d~ȋrD*=ks8d3k>`,fϝdQVp EE;-ɟwɻe\#*cIJ #7񁝊}g9m`){Y$]V`2O923O2s61$sƸk2^, 7xcn d0R| jOP7Td/K.l ?LbHOX9;f BDmG$8 `l8𳃺 jb /93{"ʒs(Q0av~ɂ,w԰t3Lz/EBc~eb "j|y3duqZ_%Ʌ sE_nU8[[鶛@Y8'(V3kk 6Ȧ3^ϵ!s{+A;{yUV6: bDKCw qZ0 Cgǁx}&1x;h̵@ 78ڄN|-w3hjn{)2v9бI9`{ " HzPs8tb6'kHߌu{rQC$CYzvxݿ !vJ0TbjK7`Ugy22b:]pDet>#C֭HK. N$x=wqhɾ|ˮ^M jE؋z ڵ+:O%ذ?A~^.3KTg nFDU#UTiNKQ/}N0V9q +KNÏ/Tˏs>~bETYwPwM츱ԁj83X22J+5^Q?]㽍b۾1D EŜc(@ݽ_&}KPKyVSpip/_internal/utils/__init__.pyPKyVSJx9?pip/_internal/utils/_log.pymN0~QT%\*J ZiLSk;Pyqh?e`'m+TB +ܣ6xŜs^lCw gL(Q0/#%!k)  t$etڅG b&e w6nb=t0N%iX؏@;].G-;t 73{[<'\]3Ƣ o1: 5ZYru ws0fXˀBL%DLI:'$[:ۮ:ʶMkWьt,` 6Zaˠ/ )9ܨ%R >Ԙ\AzE;K PP`㴑_op> )/g&Ll lu7 5g%zԃl?ZU!Jpy%UUI[3nff.+?PKyVSrB—pip/_internal/utils/appdirs.pyTMo0 WR[.;TcӶVDI.b#Ez5Cn Ckg Ў5ExlGw;^ bu<B;+&J L8; +Y.PmR9+O\(4=s ].#˂8 d"R{oyu)[ O5ۻAӳl|y1í? PK00(`d_ߟW(ׇ>= $[RyXz[j#o1Ԫiv@Y(vZȻcmynWlv}],6wkb A!J%:Re9mb>}f-y 1 i Gݾ ˱ iqe's'-r:uVS2taw,Ԫ h;ROvdf7c U]4P|6!grba/#2.^9Z(Cdj3/eAT&U-J6f h9=qb4٤,BtgAd‰r`g`dpX W8tBf{.g@J#:Pp+=7FuAy8p)79X:4(rȍ|;kv@x\_!~ã!/XkJkG5WWIsq_7q!< CL]Me`?o(U'H :nXX -` ZwHrM I (M*s7%qhQ7\ў "WnbB!lo/^h&S /aفiLV?&iP"ӧ5C Qč.pS@"^ZU8k,ݒjo0?rG3#J>!澁V2lၡ.3vz89%1nr$W\{$͹?PKyVSs)pip/_internal/utils/compatibility_tags.pyXmo6_qS>LB%N۴50 ؊} h$ "ewGꅴuGȇw=w<:_yk92a+> ^]eQ1-D.>GAFde- лJ+hGJc,Y>MY*N6dW,f+\kDV#O;_V26C}H[rv2+&RgDU3)YG7K*gz)(&auN1#rAlāW29R&Z&̤ѩ%j!EAzj9eFqh*RJJ( b3i *E g1^,κ5$19/iKNGFlFȲ3W, "M¨_H J4LP0™~(S[kA[S T\^ )Ű29Y@0W-3uz9]cR?Zq36`ktR!ǁ]?cFɂ5%`.ygX(-$F wpa%eFҩy!7 LcZde LHM5(0{]r{ӡ 7c2lJ[H C'V sX4t u+)nW]v\ln*6cBnIfIJoXk-ef3vkUпaMB*  ҼPch܁B@-[ǻv]rDK,3l/Yg7 x]GP҉6u>G['  07SJΰ{SOR{Q/%be@ұ׷|P}xp̎3ފ<ӏ)=[kA65Ӈ5wڼs쩇l`J |Xrnrv=g [!>oѰ8ۭ1e ~' =UѯWBqT!@ܶE`vo#ZJ֮T4{sG\"EUMߞF!!W3`:eFzgΏFX 'a5;KzX /vElA^f ~߰Fgаf}oȦ(wkcFT_{(vha qYvre AZKy<:ʾ&ҁ[,77_?\үR9x/O1I9g@ BiT*$"|%_#(r co|r]E4t̆gC.xMIT^:.C'bO@zCPj:DA OI$5O2`VԄIWAYXѿ gӬoً]yܑI^%ˉu$}f -6JTaԟ2ޯ)hjw+XX_trz"is}3$M:ɮZ]E3,Mj@NKuh6Gbne=mq$ҹQ'PqcZU92N#PWX@EH>vG/EW@K/w#$=JjqT)ށ)q&i@o͎Ƒ #EҌwܐ5~4d/Nܛ/^6pl4x_uÏ(Ns8{;LPδؙ=n?eNELjPZ_ B蕄DMׄZu)kv&EzInY7nqx EcPn:c.^C PbrѷI'c0\aI7*=D}=Ola~`֜0f #|qcЁa'ގ,̜ࠗ:qvYP;T`]?^)-yz %-"~jq @8%LVOߟ 4M{^y&H2QO~$]tg 1֎AlqDoPKyVS&] )pip/_internal/utils/direct_url_helpers.pyVM6) A9%VmHQrH ئ;VT0U vQUZu~|f땶 %y}ViA,T*Š]6OV)}]n9>8m|[qͬsVQ. nfK7E7PC d +=3V'컷>QW/*bJLßJ; M(;VTB0D̈́tF`%fvi5wGwl\kL ~ىȧX11%cQ9ΗeB 4VT]'l!**q+hmu3^GZʣٯfAVɜŘCZh$ uf8;,RB<#cxDDJ$SWAzy b]2Y~O/] Βt9mD:ozI)"IA4Ƣ1S„gAYIHv! 2QqjڢeqPEewPğl3YN7Ł/xh,qp AuI_ ]dʊ1l.Qp۬߅&l17fy`f꬐%N$@EY ,ag,;Rz`O5',Uk0W{:e²4g3\đVtZm_L}I mŤG88)=I -᪔vܗgᒦQf+;`5A鐢rTY-usgjPxG}2پ E#ʆK.1qVFIN'Z!6ۙ ) {FqJl`<̀~ +-oWJׇYޮtY!wn9 U OJV| B@M.ٻDHVLrPKyVS#/ %pip/_internal/utils/distutils_args.pySM0W Ρ 8@ C"m$Fݸ#;$!,ͼy34;6mȑQ>N;?EOR]+eu_9ھ ν7>ԜWI$`ְI@<'afY M߸=^uXrm@X4JpӚMo_Mu.7T" Hm$# P: Goq9neGs)ryR<4O-_]#%Vh"Xŏ>PKyVS[w]>pip/_internal/utils/egg_link.pyUM0Wm{b% -VK&[ǎlzf8mPI7oe^5TmQ{pӫV[-3ώ-p [Y4Zr$`\|%5-CGddWt.ZZ+ohDzV-whK^;{\BE,^k uMGE=~ڔkeVB-yfɢa~?E=ύ0QGeP{ ?4 YؽtTH;+pjaqYr`cu@:X|S FϧPp|x,aosq('cYm7492ig *YxCv|>c2ixO԰J}|Sc w8)c.N$ ylլXF~*kf3fFOxxLa7%F [9;C~PKyVSapip/_internal/utils/encoding.pyk0Wꋵ%I C. ] r"HF w7a1LO~}u8J[UsR9MOdRS-:J;Ƙ؛oIf4$ ۂ?# -n'㲇V\5ͦ4gȭ.b˗?_~lߖ(QxiP$^%Lƛc~APXck``E0t}=?^qV*&l{ך:A->sಭ<Ϭ2yo#q[k^r-p*A\a3>+èB_vGfeښ#'҃IquSt+n ^ 7`)Q8 3r=6˙fJ0#IhOӫv\d\od8>t?C͌A€T^WT#VMmBfr!7>,ʊ3oPKyVS& C"pip/_internal/utils/entrypoints.py]SMo0 WRCl@:`Ȃ!]Q(6%ߏ6['L>9Rus w*H H[@~%n,Ճ!wiIjo eP% |w X,>l, Zj^˥rÓyF+z# 8aj%F>acFAȈ $i F a7;YAI̸/1) JgJ&#'Qbe2vLtg4\#Bor/>y:z_ 6q$C6d%eVfgѧ<=X`ц?,tE9G:Yk@ï/dS|+~>~~ 7M7p4[/3k'kN$`!jP7ƑzR`iE"d^)ns0kY5Z?3^v?$53<3PzEYo~ +l'n'/}{&5ګ;_饈FrljӔR[Q{EM5^uR?ջYKůPkSE.F7ivpzU\]g*oaydPVjNc+RKsA:[+3Z~vyQdN&IJU~mlB?/'Kc#qY{JH8#¯Per> SbQ;X+$RGk[y!k7 /q4?V-lKYEcBL~~>ƊڐSNzoYpmqzZj_\:,oզub!ޚZvM"!E/1l7;{BA" l AZ;֪ڋ{|<\2(kY!&uQ3a 6?=QFjwZY-j6O!J#m?nD.;rUkk=m1:/]=!cQ 19aݛc5@w3:}z,溺F45gs۹(C rgM)+BKoeEulL~2w*ꔜ`ѫ" 5s*Xy߸O G&ujƱ/ΫP\¡B!$d$Q3 a!)q- >¨QV(X%09sAm'C S `#P\BjCJ3)%CUwr^FLc#B`7X"iի_ӊVBygS(1`MdU藙4|a+wA&n]pF2Th\@ǔ -qMGbP)`@U;N&U\RqQB0p#P![80R1 ݎ,g6ZS.<: 5xS'8Tjm>j8N4^jsJ̵%MSc:,w+3jRsblF~'vZUE T@2Ȥeպu>pPZ0]]_~˵Zg?j\ nW]{h3}Ί*Mъ$C$)vGϨx >̗8 L?Fnz8js+Q8NR#G"+]&ŇW 8}7=r893*9}735f &=q?FKH̄o߰p%:"8 >aB(T[#.qǒdլRy\jT4ηۻgΟ/K"n|gg#DE?zӯIƧڠn١fQSeց̈́4ZtY5T Ya`\eww?uc÷obEߔۡP@Wo%!TlC϶٨^(tTSjkZ5jw\D<=b~`M3\m\ vw0d*pm)&[n-OoՀ`Оs^fRGӘX0Xfl Iݸ᠁q$uw/"Uh?}!{% TxG_ҙh%L%PZةӷ|`vOC|-'OOUtE*Lh' 󗾝Lj#͍}+É*?sN8f6̯AV6-ge1Z߻GeÁLث<Ϲp5maY%k wc: ޙ0}+`3,?NNHYzvcXs3$bXɓ8kޯf(=zB/PKyVSO-X pip/_internal/utils/filetypes.pyRQk0~ϯ8d Ga7* -PFM5&%IZlKr(CHr/fRJHbM 'd!3%?X,Vsr/ct2%8zB>Ga_Q8&y+ %;ynٺ.VuA5UEOUz,hox#*L9&2ߖX h0]Qon`2 ,hˁ;hhM Hso'STQjNϭ# J h'Š-p59d(ކS`d' 0u<"4!WN_PKyVSR=U/& pip/_internal/utils/glibc.pyVo6~_qPXdGV͐kdhھAIM5JHю8,D}w<~OӎSTR7Nu浺%1,Ssly69os2VTkjI'QJ[Rfdz3 o_JVqRRk ~=_# ^hJIiV 'QQ,uEYw?sS#bM  ;CErwِ:LFNFK$ ˉQ.,UXq!zѕ‘)>YؐkuZ8 m"ut 15%%rMV2[)]SN󰼳5V]#zvyR󪨖bqW?WbQ)oV˪:-|\l-k?Y/^ק>8f\..(B!gqvf}r۫( j/*E;WllzЙis ZwZnn&a1yaG"FaLHKN1"VҽL,{Z=lM神Ȝw) 3XKx?JAjDn=T[TP)U˛zF f|W P͚m*7)EWUBAkL9uNC? кt@CZm5М8R4wPR\Wb 9'ـŎV;7w>@r{f|#Cg9uTi[VB<)pvᶓLSJLX !d> k 쮳'' 'F*;YA {_;4r,8I!Ӕ&OaOWЮVwvB%f.pn%~s>e-^܌n s`ڄAY4dXaW wW{jEKeqp57 ,;0"n윢 V*Yܽ9 24'b&#汸]Epǂ Q'Ɓ}kKlh`C1C; } P2y~o=tn\ Rw]ۘ&g5HwZx oݧnh@ 80^p_GdPKyVSPgpip/_internal/utils/hashes.pyXmo6_A*k1xȰ,kRYdZl6T\ݑ%K h!Q;-Ji˶lsdZ+Yntnw_^_Oz?+ڈͭ*_P*Nd Js**+UiK46j l x<9οZ1ą4i_'.d">لxCe =Oؕ%}ZשX#{}W*=˔F? nEzV?Y lY\=Ie*_ *=m1*cvh~(  QZxQecCҰV6 h+`6+RkZv| ʨax97ۋ%;eg/^D k|4x0^ibH%k\ptZk0&G0_$+h*anY.`}zEx5x ?[gؑ0NGAUE~W׆une h2d hrK+O6Jka&a-2MЈ<⺂؈k>VNc zur ?w7l^BrXvG[=czGA>I̛q>ipZK \9\IB}Rox(q} jz4xĥD۠`-ߪsj\w;Xߜx m/>G.H#\hK@JH9aEGhAr0Nf~UHKGſ+'76Kɣ3_x%F/0=\]}+Zp>ONTͬ_(KxYL3Tͨ{gbCKHj񁽚Qp>TGv7įk\byZz}f N?6ʟ:-\]BNTo0u^{59+)>mh,_~!7>R9;/~o PKyVSɓ] -pip/_internal/utils/logging.pyowFɔt:.$J*kVA'HZ}ik7Tb:mɫCՄZU7_r~wNJhYN+aֹ}{1YW|k@^VU/7󫐜I*^uf$K N +xE'9-xe@8VZj+ pjEYǻ*)YȀ$tQ%@EpOI3ecq 9%l mq]F&> :e>̦7fײ Q56vV!孌 Az Ih*TDMrOێEjq Z, J3aK,&YRv6va֣6cŽ֬! A8YGǶ$YU|JcR6.ulubwX#VS3%U t$䛍b-Ϛ@¡rF 4mDͷ#+i9;ϒ/=\dŚrgٕU8.r U@6H}7bE:@9\hSuBX 焲%MY;^Q\J.mp&w̻DQ3c;+;h eVU=;XSa6'ƘRe~d H;kPtb൜GNs Sm_-ϋcvzCT+zslu&X%"f\ j|[1SZ?$W\r~;UeHYupwfoM/}fy=U#>C1v^ /aB ~_FyARp n6UCO>N@`Hӕ$֞e=pe i{~yBUJ+9\)'MAHoxfw`B;ΘA^V㊊GM(y(=@GPXbzUe]B,c{Gnf7?Fog^wCPaݭ Goumc[Cۿ>b~3s~1_R BK4\H܂8=cJ(]ABz+ u(DKn1k*›>ӶPuZW=8 GC֍V.-ܧV C"K-uUI w|vK/~*bSrIkZ$ޤM˔ dY_ `mRxTN$C/GI{L/}1"#F&Ovx;B: q닉@ 0:$p}f0 ܹ=8D͂7AjX&jg]KV02\L/|/MȾ0]V8ic&orȋH5ʨ5MyO?1[zC/A /93C.X \7pPu~oKh\ rzVG1zWT[e* GX: 4#hre#hhG#"Pp\sle hI!W}nN<^8h?PKyVS޿Ϧ=Opip/_internal/utils/misc.pyk\*$ *Z@D=!\,l"d+}_+T #^y<%5[o Ҿ$WvUpx+I~hZ{ְ0HӋFT Ğ(c #ųI/9[Th@<IȲ.}_>:|r5yv4giXb>F%rȡ^Fh#6HA׊xi~!FpA>%I#d)iHJ&kw|3eD#ē/}OXtbp^ W N0&W"mVw?!FW$=EсU$)D,m!xl`4(.oɩoRF؛ f=/c`>_#ABhPY#+GRO^\ZbrmkJ+0R4!%7^gKfX9[d"' LJ4Eb!}A< ,S%^9kzYe9"CpGz@Ur1B#_6 "Uu [1g@9+.HXA \jGa|\7]^{o¢3 e Ơ6$k=Wr~%(kjd Qϒ0m8F:6ܷ⋷ 6&- jw۷2L|U|d(&^N~V3 !V%,aKh*b iπ=`AFy}a'πQ'SU #tg8s=OC@Ṫ|0se80.!k@Xsd6pZw{NZ{|8ɸj`SldR i6e62 uTAm'3)R}PN6fPK8 0"3Cfېw= C6@wYvxzW"j E @(jX'~`oGl9m818k` (pbrOx-} ,Qv<%}npY}Α5Xej/X+϶-E^&+@0/ɉxJ_;tyt Yua%"z>!j'i0nqw4'! U187PO\,.54+*P2օilԪ{ /5t5/_d^].r԰h΀@] ALŵ؁pԞًW$UȩN*.<o\ @8]xlN8!L5+l`ZOk )!IH12JV 2OEB5-rAjP6jw*X3 {y,?$MQm!GmQUQb^*Հ0?/^Yh>-)6ReIF2o. Vd)_[Lah Qa+tH@Rׯ'Geo1kvr2O,r'fփm8'UFEZE Y,Og%8tf[zԚfN'gFnAⅭU,ڻ)N?c>9BP! ljsUӓx4䏙fЫXC3@B|'DZ3 m'E4`pѨyDn1dMb׭UnY*WWjSpU㨉Wp sEs8)]l&&No)ν)B4+uoٯW51Vdۘ@t=0SBw1Z#(>(vG&ĩ4km+gQKq33N(k*mzb*Yl{w[D} "FD`pQClYAȤa<6}cRHŎC_2 cfJV.|/7rѪ@ DzY+{kTFB wFjֲM6nl s?_1>DnhG(`zN|hK+UTP`Y%zsdyd}e[h4QDШ@Nj"@ 9V"$E VeudY9q.*ib@R)ni06 3"*1dfHXe t_Vny'Jk\T)|>VHHѕ jGH9^aXʢ\qP.zˆ\A"y~VdST8X71Qmzp\, DVq#c."sp2o":ݐ+ +H]R"'V^6 Ct@hj³j۪/Af:f{t8l9~~zCh " NȞҎ !U_5_@S%``L.aHRu T)33(o=OYJ`]D*Oʫ.d>|ʋ21zyCR͎Bu~ZtҪ;UMRVDjYc(tkm.m [;2vv ~:ޔ&L ;nu$6ѧg\*,TSג~Jyyhb;mP>?UD/_a 1TAKw)'cd~C;EVՕڀs[cu">|0fwV=pLf3  Vm0I{[ ;T[PD`֠ޯWeӪ äwqeIa:щNؙ착&2pO;̆o@\<@ajpdp]\F\ҴSڑO'HpsvTK1B," [+ +h1L?@3rWͻ 0>`& #4Bڈ0 +xUOC"lѼY#,&Iٻ )Hc#SN8 )'" .#mz4aHʞ[G@GT`g D)Nt÷ޫf$4\=׮ӭB>_qLR u՚.fUmB5 .ɢWUy KAiK &6҅"raEW1Y28[s`Q(Nl&ʻ q3MadU2d0 EgZkC+% jǑt6qVC)*,>ue+I: =, $Tz4t|h씳OT7XQFhMpF^9yjzh6d!CӖ1ԡ0Q%g&ugX3k$9O7Q Px&}5+cvα!T_h2mN[!ĆKyK-ԁa+J,c>VRUVEY,/Р$tHS\!Nн_NWN[ꨛ%pKyLVHQfU\;VAztj0Ȧ8,haI 6π]()=UJNo*6:ښCGwvi[+Vm8ԣ:hp@C#]e\E, g-岠Jx9~t}̈J͑d e2J#.Nf#KSY`yb2:gDnSCd:VAzSWp_j kV] =k_C\m`#Ц#K=WqbY'ë SϋQӔSUަ>!g?)LeD9uZ mɇAi{30a(& "#FguʣTJWY*cNNܗ)cnЋ֔Ƽ^vjw{%b:wr?@e-2bG;}zբʥuQkčYy'9TBGH 9J(LK+֏ukh/_Fug`tTUe~O*yt@͒6s4:i0htL6)Ƿ=ӳ5@1r5i0fH _,25n3yd/GQ3i_-[G& x:t+Lϧ#4~-=]jH)iv7_Hcr}G k\֡Lmԩݗs4aM5In}LfE?b(%§ىQLV| zCtaY%g/'!Kz~{cNnG{I^OU\<5XSA rquU%w:f%eJVZRv*Xᶠ-S2CTqAP]jvFL`஑IlI t2 BG3C b\ sz;*\Ӊ%piv>>Bу|~R>#q &utl1 74J0/@?@Aӏ(9šwZ;= PDKF+WOCўa,/8_q,SȏPKyVS; wpip/_internal/utils/models.pyMN0>ȫV =@%BT,`EL l$i ޓƜO dZeB1d=PVzԁw=!gkc1Vj$VSf @^rd]VzP* +"p!b-pq#^C5 bPYdnmʒk!xؑ1O<½EBaj=LrEc ĞՅz[)mq[7m7,7,M7; t[ߙ9\E+.T Syiʓk>MȿtNJ-.`~PKyVSf=O~ pip/_internal/utils/packaging.pyVMo6WZvы v"h#d&TwHJ2e;{YμyfHRR4R:~MEJv:[ځ֬2Z\Eϔ5\Twnۘmp)X"o!6=ih9,_Y8=7F)߁+@=߭9N(<؜T00K %#7R5V1Ε1tjq]N*mM2!Shʭ%y.XyFQTAM HD?{\Gia2zD+B)}Rr'yFdYw #{ιܑ #ȸ>&4r2o'Ƣ!&PA^nVl O^:pߥ3#=?$PR警aSNXA!MZ P4G טv&w;װ"1).X1RW3IWl2*gMjg( ;FvfT_>J AI,'[>)*ˉR5(syI}ӉY?lErtOPKi|q9αinl[dVwRS]؁r?99&铽 (Lؖ;k~sV y)pәְC2EseBaPX*l48+ 4a&| 4w+7 p/,KRtzݍ2B!n+^נsO``{ ܸCc+J)`6"±iaÌKq{t/!v &ЏK?(>TɵEaMePKyVS>S| pip/_internal/utils/parallel.pyVo6~_qp f"s,f--6TR)۲}؀awwh4 BNjZ}AYv T[SτXTCmV#4>=g f(;g* I5Nɀ&++Y`A2mX`mݙrlQS!ΠM^:(2UãP9%{'=<[Z="n|ʳN4SFҚW6-f" {:;o%jb[tr1KR&V{(*(2֫dZH{K2Qm weߢn$uQ:!O$zc ]AaF#enRHYr18Qĵ${Hu&FyNIsxqF%j ٚV+Pu,Fnȅ(5DcWz[t?_oN +ۺa=j|O`3?&CýJmTԍu-3Y&p._-ۛ3!?oҒcdN>; GwS,@F@@]m`6h&,5Ҧ16*,3\7JmNR1sκq]~7ongE㗯/%]qPsCj惪 6 , {O?$NL,׳{&BrTTPhid~e}<C ua=]|.El]<)2*ڱ˟NN##"ܟ%u9)o& 6V3d Xtx2.:e%O-ezCz0's/Ol`ay"l78C;emxfS0}.y$EF*c6q׏qLv=3a{%nRGWCdV z^2EE,wحt圊Ź Q\%UkP6$N@^pcvu׉vzX]*05S 1Mb-U;. {k\ٶ4 >0l~;3_7cƧi@uLf[,QZ9$pip/_internal/utils/pkg_resources.pyϊ1 bz؞KO!gɊ:CvӦK}Zҿ@!yP|Z:.F3VfXPKyVS90Y'pip/_internal/utils/setuptools_build.pyWKo6W6*{vE$hqdIE{gDIdfQlL~AJKmGF;Rmu*Ԋ[ w=^2 *Ȥ:=HNg(; Kn>ܑ VrD7`#9)euʂg0ޚ[rnF'Y-̻xl}I[Q;[,`Qv'R*Iz'-)EMI4Q-{.ָAI+HʂI3ruA3#SQM`@reƠ־q>ޟ=(g>nV-Ax/ç~MZݲa_:jMҤ/=&!!kRc.svm*L69`Y Z<2=MvʸS1euiOSq`nnۨ*G{!ƽV[ * FKY:I͞ ֈCVjD{1a,6tLlh8YxoyȦx!pJUW@*iOtu}djŋ ݘeL=f=4#;cT6ШVhTce j$uұ N{>@\1d '2^|tĺF%/2n J]$"}e'e5VڪVtXQ=0Hk.+WT|XonD(teP*,ewJ|\vȞNarUyu YD51:Edv/' X FMGYnW@i1( A;~'gC;5xa5otOn,ئd: MӶ[_^ݦR A?QKӕ}/f$ǭ'9DD>DE6m+N0Z4 }.n~2HK5sGS;ԃqx|U%7xk* >U]сQtoA:z}P,q>˾oD_`4]!N6M>?Aʼnq"$r?PKyVSɘ J'!pip/_internal/utils/subprocess.pyko8O"#=Mnils#ZR73$%RVhmÙgiXHme7=BX;YeC _N|wy|ٛ{;WՃW_U=7O?J۸_?ѺZ=}P0&~-|)dna޻sYB̙Zz1,s!f\Ǘ; Glp|<<Ayp(a,DS!h^Qs`]5Fm!J.Vrw\_^+;> ~bP4Z9xv&7z|m,[oH71dNjgW'X-6Jl"ng? ',˜x WQ4y /7NP _ ^̙̹D_&$byX YP㠭Hc@@.B\:;X96r%|8S]8aGG\,0Ґ[.<ϳ$P9 ",Tw9iFgp&*?zLi%q"[Vn|4z0ot]­ fx<0P!Cuj ?[~U,Ym3كmذ~ H,=aۍW"mdZ40'4_X'ZBtdu l?Y'T'L_/0-a/*anE)!T>P$#}> )zcAsC,iǾGPϋ<݋Aw~ ?픓:;W;^]Yt̗,@-pmѿ߇({SM%F7y6k4o/[6x.@RM?e ޴v GsGb#ϵ^eXXo4\zxrT.(HioJҊ*(oF3ֱRk(ZOF,3CՉ{PKyVSE pip/_internal/utils/temp_dir.pyY۶'jJuqSer)Mmk_\<%(S=ߞH]嗣b}V2ufVhTi‡Rmچ$5ӊ}]R ,SҾfzo*#4[/[ߋ4]f5PӢyz=F5U_R D;́tMVa [(D ̏#f |>tL9HQBV!1”A|[iڃKaJ-l#vN* 3"E;{i42,ȺhN@f)⌢DD=c)igx6qHvY2V0݁1Pa `[y'*̜p^ˇ7V-=uPSg{RUh𭰘 m4kOV|K˽C egZ7bZ -l)]0#E(gL1\< ,49`3ٳfuϬ1@h`;/! lx3Y :Ao`KÄCA|2xɉq( uhz rS|3`bE ppk:Qy*_sW^W.U'X"H1lEJ٣'`P!u#RfvUU޵nTd ~OF&`Y)0 %؅ MSA3J,N5\i_6V>"š5\Z)!H H:nc4:K Ǟ/.PE­yAnr+!mV[##ZhEoȐal=4>ڸ&'Q㿮5wmm] Db;ĬCV3+<˄iO:~<*{KHwx)4M¬џl?d5gt@z=}mWClggn3 LѲ`d6i1ԣn D l]4]r6' Ҳ24IJ|MuByFT06 {'$*J(q(C``M %8þխ7x@Y#=PgiY[ө4`*H ^+j%/R{>cK$kd{=[!VżzrP.RxfyL6_gs3q 9`8 ~{#9bD`iq·b<8PZB)T}s?9+[Wv}v\ nCŊ*s4P=L "$~"$[D+D2klw R5h~?s/r@)26ŎPvV, H]kJr@RVeី8 MVPd[7ؽX_\6}[˗y?O>u7Na(hGpeԅW U.N?0ШwܟPi~ފ /J&JU&ǝK&.N]v eҕQ/q.yg 2i9̹ 3+q=1$Gɰ6<p2B^>AM NCzIv/ĐD5"zzU'-/RB]e1;Y$ottz`{@y48.gdOT{r=Ӝ I~TZ)nv,4g+>n)%7G-v9Wxo,}Ǣr]80ő#{oM˙5jORe^e`wcUG z$C09C )]ѰGQ[vvMJx=xQV0t'Opa#!=G%Yqz3TˌS=X=|6h IS_ss@Lg~~_hPKyVSXiUJ t e0;6:[rEХz{Xè^ Y=J@0G5xl$hJH= E^XU9N78m8 CTMײ(KpGL%goOшi+\ڪ!IOR`u xí;yRB gO",HdA;Ob^K{@ZK- fkP̻CM9H`@|e^,4]g.qeL3DzH扜/CB 8G^X1h 'wy55/V`]}s8T؈{jjX% D%RC@Q #穁֣b%cT0O+ͪj*4q0N9~׬F`aDz%1YG,`z4 A%kVk+>^'%FJEԣ&bxCc={#+F8'8_A[p];^3LR5Ҍ/km1D65hDsiĸ !bێo.6WE#-XA9$ C0;V{1(ݧ>C+o|=*! ,ȯ(t~B i]rt]\ 1dlla9'¿PtY\C`Cݗ|]rҩO!l=",8͕x>>^1rc#f]!X>_w[X;-1z_/~ ӓ7Q R0$xu4Z@4G06ٻ9/&9-nߋUfdSq=yzy7{k R`&,6C3፦k=`ޯuiF3Ʉ1x\ߟE3]>ڍ>!tD2wA)^1 V̻ Kgߋ 1'*ޡ{߈xl}hwcoEi$M]f챵9:8XѪSx@7kJO=dZWĉ?r;brU(=@М.SUi0PZeUBBST.e&M.K3 FZ'8uM>0n2;3gç@ӓE)J |l $t*'*9aǛzӇ[ 9{a ((_ >mBvcvkOsK}ڦO[k[]{WfܺVB>|S]V9UԁF%Wm篐C?N蝁w;nO[;tۮw4IxaTHͥ`(P|ZQ?|6hj yN7\X5 NhZp'[6C@NmBs{qҁ<:y̛Ik@,{ĄПH7|Ɔ~1VŨ@~b<}PĆd @n!mgL͈&wF? z~2@Av6!2?tå?5T .ǭV_&h~PKyVS~9pip/_internal/utils/urls.py}Uo6 ~_/6r:)0\7 @]`肃km:ѕ|?`~I#Q1ہ| V!z̻[kA<~1Ģ󴅸 !ravq>}}kQ 5#CK^6¡wlxl t ,8z8: ĒC_VבG)#(3r:9A$^ub?zNvZxB ~ d ^?Oq3] PJknM-ڑ*l`д?U\88mZ͛?ɸR%\%(x5'E&qRȳ.O h]!$:D)0tW 4B{H XEORD7|T@ p-Df! %Ëe'h/WנW۞BTG-ږFI}eo_qqր!A'o>x+c9ſ`IK\Ug8 L,1z))Ȗ/Li~vğ'l|r.S9(qyg؛ձc7s[.9kji_9x0nCc"sXZ=k0,;"UgO¶#0r଺ѵR0AK_NIog8V#1ͿC"eQ'C nK9D|;nu}v`dxw ߟ߿ۥiWͣӿZ֘tޛgIH /8_5?$ VRU"ڸQ,u|!y|;<\&~cqrPKyVSZ'" !pip/_internal/utils/virtualenv.pyWmoF _" s sbY4)+ԳDٷwɮ^(id!#76*ZIdxԶdd?mT^_IvR+QE{E}Bw%Yle^_^eys-yuȮ/.x.^. \ojYaXj Q,73oVX~;럶j3 [$&QXBf(QljL`ZW5q_1dAu`)?Pwxȟ]K k2~x#pV׈ Fiڠr6m/ kfT>IA(t`yOzWM%(p$kPTmE7X2Y[CYgHvǹ>!ԆeX ;H|V&{C9 >o A*+ 1v /8NZLO@6_@A{>*Bbo=w{̇TDa')9 !V΃#,T t ۃkpʕ4UJsPR+8po-UIQ|ؙ}*rkݬ]qsY>e#+7 ltн ҧΐ6@w/f)$q?36Fd3%z 0qy<2}B9E2I-kHVK!+f]konh;>8eXZ(*6t{JhO8Ojv-nj`5u-ɀӰ V. %?>ĘxL0Mc =tUO+{uzh*#E!CgU&PN%Cv:,z|ގ2ؐ{Qb+ƞդ욘f r$d%u8A tjB:}""h$܄;\ښBcWKʊ-p@S2;' sq9d3nJ#@~{5/#Mb+hkʱfÈA:g5tAѹmcl 9ck "2; b@M[&V1N,؆lFBR=BרMں0e0ڰ`O,5{߅X-` ~X5wb-hj|4B5x :pxQ2ȭDr]~VxPv TVrJd@.>rxL$ 0VKߣ8L cMm8|%\'Ft٩_ ic:6&Z*|T0W2@SH1JhrΣ؈F(87R}gbg.th@S:mYqu8P %iGM+ d%_VQUICgRVT2F2 xȘCkge\~4<݃Ф،0"5ϜY"I|-? Q 8ܬvB$jp;MQ:i;Ԋ5PZC4` !ޯxq#E0RMcrӴJ lZpx '~rK'Cl`Nβl@CXHԫ΄((, فn@xtC=ùk}J3Yr%3Bqkńg,Jy[b vJur8ˆ|X0IzX ^ԓlIbT{XC]lV0|[61ِIp 8Ţ"9DWM56Yg2ڍj\Bz1|u@Rmj#3'0 ( .(XC Pe:"ޘ@ _] ~%)r R~1jx@ u;*DcQ1v'J9Wnt^fH̥#y,Y#̼V'Q:GB&^ 3eª$S0 \4[ @7{C5AF!)BKԑ,:ՍOJ0Ԧ]3|3#ld/ՇpV;7)aU{8r[ cZϖ nן<+]/e)jOD^#+1\8{۱`wӇ";N*~3<W:ډ?0>7EqK6Bb5`\/PKyVSA@\) pip/_internal/vcs/bazaar.pyVK8XE (W^D(+EFLc؎mgL.WEgD^#7qN8Z1HF 幅B-ꚫ{jd0^?Gcuŝmt:z+zMAvP|*r {|uyQuܷX9N-?Pf.8o3rW dr[EvɭMrX6Sec9” ΢C\ ~֊=p@wv"i6GBhvDC˫o~{aD/7mbiOY}oȞ$ߓom#F+hKPg%@%>Am^f6FSOh'M*U8tC( 0˕?< _b}^Ϋ,Eu^S~ќTz3=~,%eQy^8~0̑%;ms`c*ļ9::B41B,D=0+0ћwW>/ߜ/(D]Thfާf<Ho#zOk^7A,dּMc[\m'Q*aLfQZ(<۱u!&%f\B+XDV*@1;.Y <YۡE{$y9ylByÐJbP>(6Vj5O4Z"DFbigJmCkXwX@W,KVlʒJy*L GU42RE԰7; 4}2_Ǵ/ApyNt?B$.Zjgb&`Tj}v% jȰyJ cDE /$bdi&ߠ}`zTѼfi#~nͧd*4=9[% zw}W瞞(l'2+޾,e2m{V/5QtvV3H5=Hժ*D v+W"Mh*87Cp̰on)h+:Ej2!rZ<xHZu2q>Nz%;j}D֯@/ H>#NRFK֌Ӡr)!dh<(wQ1%M@#`~G58+- ggÆ!xI"sJ/4$H2ʫ4:K6M*XQ*a^ ZR`UmOViϾ]?uwK&4/kXAਉEF*x̿Kvq2U9}G+̳twzUT+[ C%=}mi'"$43cas~%2ш% 8n&M"XyV> |ƀQ2zdvR59Ga@Fǫ_99iQ߃A.GZAcQz 7Q Z\"4eۣʡߡQ-HTb2Viҭ1Y*8gs1J4ȜZ\,Fl[Pi5,5h0VB [^,KՔ! e^oӒ8ћ>e)>YKRV`]%DԨ"KvR ̩' o|&gDhS Mo;oKPӟ*doa{ , J+fDJw8 #.5nh)phڊ$}&&?Bn F޴ɬe鋉h`3;R_tJPfOQ΀\B|.L.0YyI)d9 #1 GoU_G}m'^kPEK+ww/cJ gԵ- UM+m)BmmAQӼ Mf~@Fu+Dn0-ԅ2 ZwV#}͜F=;RԹ0EQ~;P0S6~#`][FKtghK$+P ̶ ~91a`@ؼFlO|6\M13_+8!0kψ})3MO?!'Yw] ԳTg- I okOLvi>GcQ Iwl^0 7+=< a EqbPF@q]lqw"ęY T>I) lQ[/3ԛ|mtNAZL0~ᴖˬ9~S6.(1R 0BKQD ^Wc$`r柴Q‰p9쯠5-CL'P즠\PY2%M HRrGBG^i|6DsQij) %ʩĆv́L's+);;~ڂlkRx^l3(mJf]:!K;CײGn^ j'\_G0șْg юWbL 4'FWovzϯކk{|׮F͚s?C0\J/Qh8Xȍ7*9%}Hiw\* MPeKt SR7NOiMDGo-3-j[[liIm0/152Kr;|+ySZe:kzqmnnvwqcvAPa1ebF"R$ypNO3Qъ?q<ΝNk!bŪ5w,d+LL$4eZ n~?mgB_;;6r__2TXةIWK{uՆ9kol^49m`mFb1CwwRqm/%G^}2bD϶hZ %0r7OC[ejWS3#.b\Nv)ugX}_N 讞pҒN4:D%vΰt[4C<3O'd?Ά^ﱆ7ЛqkKi{+그=y>ORߗcĖo7t̴k7":}Fn4oGyV*T4a-ZǼaڬ=-v_g\3)@+cӌx@(9k|pLC@>ߔϏkY((J2s%2&vO@x2fA%bS6X*B]s0 5 {)azT!p|$d \d(WLr/sed4+<sF@(9 Uud&YWxL MA P3ä,*LiS.Jm>,: ACu(!s6F0MϣRi@<[r,ŝuƘN&CB,57AldzTB%#:ASdu^ rF g 00UwY,T un@K(YG#ѦByvmXPw VB/- >ml [uQ[<.x- [ MEl- ;h$LRB:ΩYmk.36p%Gt}+h F=Gg.ޒm yU_-]w>Hш\Y1|СlYMj_5Y_3m5NJNQm`5%b X.boD@Eߧ׊j|o cn k KXOW Nb!# P=S }\EOO왋|pcXv EFc@؍!tTߔ1R!@d\Gd&*%ũ8M:FjNA'ډLl&<(9EQ#'77hȝH mnN+ QY}7ZS75}oE|ӥ1mvǰA.pwC̯/0Joo9GE6s ,]O 4W'qQ1] ) teqQ`kϸf,;wV܃ L̴eXCe6vN=wQ/l+u^.R9]n_S$E#)ʲiqj#0BZ[ë s-ٛID,ls. vQ7i*WekA ?͜捴ŠY>=^J[᪇mn.f4E0aԣH6߁ ]v!Rv776R| FkiCn5pEXV`ZRΕhsZ@StF:NbGMIM{)@7cV趨1=蛍!YNHs ɞЬN)5yVp.a 0t;.֦gŬ3'-ܭM (v|wQ\QqB뼚%tXM2U5+kŠEr9/pΥc}`nj^9QA;hB\R)y׏P rөҸ>/,RkKć,0{DĤu'0gԧb_^ӎ'#v/gk$4VVۜR.}u-)M1Jƽ9'7RÙj 2l,4!,"pa*[Pf'ʩ6E[tF‰7~=q8.~(0ݧ0TirdJc0Y9Y z#j{Mє>/Ήt/Ǽ5l=36i}xfK~wv@rZ(W6G_ mb+yGȇ¸vb֕s? LeµLmi7jM9Z,ۨ[̥^cP6Mb4x#Ηwϥ$ Oo$wa'WATiWVTBm{35kLƢdEu<׀:vRl (`Ñ#SG.B񹓘ȿ刂ľF- HᄑB6# tG܋ .It 'UJIe0wYӱN~'PQÁ /Z}MvД<ˣxpw!-$l888mw6XN%y0bKs@%٩ >/ɹ5@\(A-zޱfsHS8ulL${PRJטM>з[i1xPKyVSjb6L-pip/_internal/vcs/subversion.pyZ{o_bK#0y% ]-^+g%% E{gA.v^h>fgfYyEE2^z\OMVڗ0OTVScYٔ\e&zea0U0OelKW쾚I*ˌV=(h\[̥h[ORǁFZE6x<&RIi|S;|1"X[&$(Ϻr^.}d9z"y'vb)5ɷP ^Zf5GQAsE*"ϳY$,,A4c! {_; jO%3MgK S~_D@dI^j [uD4I"R%)* ,N(5| _LxvH^\ gߖyjӼΉEV\l581Jgg :s 'C![9R|Ҍ")hv[6V:VZ+xpwJyX¡$Tpki2_Hi'mt1 2Pn o O _Kl6//hw{0)鷔ş0^@v((yPh281`U2>8J[C f vc (~Դʧ{tn2ka'Lum`cXTrVo23Jq#AA Sޥ%I %}uЏͲ^8J~CKE=_ERD!k5?ZBXEr<\mF+H1RD0(\8eA0) ٬L{:_qp bFC8 Üӽ}1-+dFAѐP䎱r\ i1dٽckDwm%iʆ: 1X@ ^]Sxq5g3< O/@Dx?Q@A/x(0~hԃV 6XܢIkzDꗭ:xNZ uaOf7yzxq oli k[Y|d!rQK= :H^a.&᳸b?Qm~GjC C8@Ń[V)J4K/@N%ϹHQ|vg hzZ[`apHK=Cȟ!jLP,# F@}M6S=Bu0B ?aMa-D<*H:U7ԥis$>Daeo @@c.@e7]ڹ`0"h htCaJާ~h'k (1`1_7.s`_ 0BqPz> `E|jpҊc2 DS(|I4lX(|hN:TN58ȵ`nv |=0~4'P!P҇;4҂Qh*8{OSAYZ%G@6$og.TOϖ~Lm {pI@^3qs.jLyϳ>hQ(G"74?Ӭf-M=ȅ$owRHׂץ4e%\lQN+TW 7ԝ셠J2 F`kLBQ(1e8ʫ,jj<Ö$лe1Cn4A~[o5 5Ŭ Iom&LX7L;{hz iq5Kr1pQ W^e!!ًL5x=12xo57٤ Ќku }M )7|*M`1,S+"w_b;ZFkbБȣzֵnp)re+i27-ܢmC8^9CG zx&5>3]iyޛlGu4DT &-+"_l d6jTt. w+ ?p_oݧY~ ^ l )3P ڨkl\ Ļ 77)Leb(X CMCwBլesaWo3ј2%a. M#G(ېkޱ6!Do_6.VjHB\)-qK7zU77~Wv7C0 nQja]:! bl6rAw@ٵ5m< s⋣ӓӠ`Vt%=%_ٔ,gɌp,bG/y8ԗ ç~O9>SOd~89[=wN-@~.G<,c(y . qCnL /zc=(9|;ZukVw9 Fm酶 O{Tbi*Ŧv.-}L1ߛyV/(V;LWUD*f9ŏ-f{^yJb5Fe [HV{7 ;b:sUb.2ے Ou.oҪM" ,+ŸՖ=aEU)engm~=* W aAU +*m.Ɵ>r9Nk" /Q;8hv+{FSy)Ԙc|UFW7*/Ǥ6 tg)b+TǗ77kPP@Ь^kCx(،aAwF6zMo.gΧb(a`x_/*MB-i M}6+x1sݣww{xg+HɧXǂ~Nnh0ΪQƬs-zn9l겨$-}=(>ӕC2q JKe0@n$?0>(hS!ev6YoV`!K̪"mvmS]Z9B`T=wxTey2,\w><{ &%y9m@P"`_6ԃ1NZJu uK gIu!7.0\|E$&' h[AouqW]X،4% vEojg[3UlgepW`cH+ٚ}a#M3zoO| 6* {Lwu:i'zcr#ٯ&B%`ȹ+|FZcLڷr924ASL'40ᷙ-PKyVSs1!AW#pip/_internal/vcs/versioncontrol.pya~JD={Cݟ}wϗhlؽu`'Z) WbFHf% R[< rEf!P )PK[ߑv PW$rՀUKʤ]AgXz^,FT3e( @:Xҗn sd576 r]媛3 I"YR aޮY܍gRńLQE!JK1|ڒQ9 ⣐b;\NL) mSr/uqcrIm܄&ҶyAt-=1AZ:t',}S x% z/ZBwp:㟃äHSǢbzI!l/B ޺`o% au Ҵ5nD mkRiҢ$_>X"g-j?}mDX~& ޺!#y C Ё23x.H{'qQ  LP3c-p(ZBa:3G PS IeX`⪉&Ɩ76{HyJ aG^'ĕ^g:ekXT^?x=c,r\axR_v9zI~MהjٜɢI%tu% ǣ͖L:;ww.q3z5#Fp-$x_νb{:x3z<4MQ >vI)PߊV#xFTn+Ap&C fhjFjTdglK EUA[1-^}<Љ!dM[2;+)Dm0FYlt, W9t]ԃsuJ{бh#Mԡc"#GjltlB$fH0DX[\GjD r{"lU>`a(URʻy@ &QCI=Gs6ɡ;B\$4q +@_;Q孕΍`NQ9%1lS[3ջ:1̵z^i^Y1Yk'n5Hv /P,zwvs"P ?IvtiijDYܣH`f G!jdCtytaueis}zvzyXjj 7FV+hXK-(<CzG;MPhÁ!@BvgFCWxZ % x:5Nel"ڈ6@̫IB)[>{$;!ߺ z̐ag c׳`=pxgh?g`,_+Y#NMr޸Pҟh;hZ]-ʪ8?ӻB\T^]j*+“)wR=@ VS.TvREQ6|u'ӏ߂1KYAv~e)aB U7}@D6R@yi˾HsZQ2}rQ^BoQN“VhyvhqAh^ nEN`X:Ecx'.V88le5p`_a2MYE7Q}fՄ1l+^ +4q@,8,,VN`<ٞZ t7Dz?|[@7<xxaNqKRq"@;8f{Wl׺HOk+R]aI I2l8E:0dQ?%R tUbS(@9^_ W*:Yӓ׫XW/ VBYuON?o 3*IR"tmbOO61ktܶ0};r;K4A;/3n H<){. 9E5㻦;dg Vcp(c@Aj>3FOsPT֤\\lI8nIp(|S VFU w\y)\DCش\?T/+Qjkz{qS MHT:2OQp`-sڗטͶ(jP W`<ᱭs>7@ga)ŨC;(Bdt+36 ǖeCkFQ_4}I r q;.omC>@?Q s6aJ#.l.P7tNZ }׊fLfkhjp.@\aݝeNt5P&^Rl68)6%VG_}U)lxՓCqِ(@4N=eqO+JdjJ)mkLO@<;sBzRܕjӠFk'GnC/g0-x$ahoMC)aW-D}c:K(bzO*ILV@"^7 E9. 5IVSyTmy̯k;+8&=ڞUh\Jޝ,م,nkC Vj-v C-^;.GKSyAM 51dQOsˬA3dv'99"x`dh_rl}dvK: XAK6RI*@o3zDj >$ddP.5oNSqd![1}8zj PQqߧl=xᔶF~|Di9yeS"yQND+2(@ f~Tp'FS i?^)~?7B _"ǰFP*ǝ<&ŒLWw y)z?{2gz(Y%9Q+K!([-EKK:s~fcʛ{i?Jiy/xZ5Ir~/z50_;i*do'BO߳!-qL!>AWzk)pFcʉ<)?,W ,Ks>vHAd+c? y5M\ ].^ԁ=cI+E8~z]rPFChd;X13ӕ !T346gt50}8&LNGeMg=Seh" "s:n!Qe^+Ffc&T# (ktc WF?W~4t# l6BU~{'ߍv'<=@7!;{9w@|~NRj.B1"wƅSՏvF\-/= .Pǰю͢kᣰSmxVe+eQ/'Am⮼36 OE ͏䍑\~e().o<`~-QE{9E$N}3`(Rm>2ieiP&(3MΚ BQ{ͷJ|˾uJ] -[:37elݘLoս)6Ǐ` tYQlJ-U]NMĒt>} ܉/g], YadpOzQw+8C*O"$|fN|F9> < Vd%޶L_wxfGͨ9"?T UEZ_Mnc'yz*^[i WM%(:@BëOnAז7M<è}!o5ZrԜ'. 0@=*U@g\l1G-@k`M[ ,,>j!CX# ؜GUu@WP&#Z@6z7 H*agו\8tNK9-*=X,$o9ǪQ%P>ly|P"6&O< }7;7U]l/$` \cUR|Qg^6NQ \xw1Be=V4M[L7G3D2>}gyw]k%>nWWK<1k5W֣vEk5 jt˚Ғ*o2 ;>Xy/Nsg ~qTۊ[KԳ]bu5sDGk ,.E/P⊮=>\h1PKyVS['dpip/_vendor/__init__.pyWM6Wʡvhi94  !4D}CJ{hQv-rf8|捜iҩ.o-ʉ j7ߩ-9a*c,ƋdDkaZLC-d[$y4֩`]mz]5KPM{$$&;%}WJ#sK)ʚFd%)}o)3 vF$Fݸ%#qim<@ Gj{c֪E-o HR;h8>ʉ[{o{_UZYm6da,Ry\W ~ZݐHKV*t߿_C|;[^ܠ^1RY*p] 2GmEjRH*Yiږ@*!#<|,Q w8 'a`SNKZ+!L"E}\ gHYX}McTR P^N.yջ@q`Lv Z<Ny\&JT)G H&ݡB8' Tc^lW\@'(T)/">8^^PQj;b|ݯ4mϖ?=9.^닟"CWc1Ce"wr^L_Ͼpn.+1M?Юy>9d], _=]g+mCG=T,;t9 zH *b#+#IP+}[@\;ʋ$ҋ!D> $zD^y=gO6MCqb*˹p#v`WsHƆcc:B~^K;ܑ!a e{{<6`RR$$A& gASP(,c)cA")4pglAt6b!_SWƑ8UX>#X=ҳ4,d$#q@/4Q\!t62a =9 $ O^2X2, 2+>RM:Q.;EZȢ&_oRFc6dΜ]d~~Ξ_pά+ d;2щY';R Q`wjDg/No69jVZmٴfӍq߻/[Ib@rHS)@6z=ȩ3gMG֛^7u;{9;砩3pϡÂ'c^!Gft{ܜ׸+'J_'_M IhfV#[^,ׁSs轚C\6XSWt/\'f\2{ጋ3?^d鍼i?PKyVS,t+pip/_vendor/distro.py}w6+pwO$Wftun>Mi$+"$3H-Ics@%9q=W1I`0 xZ,ntvQ'>|8JKx![ijt"J&b'{x/C,œS=7+@-bߊŲ"4ͤ7EI1_diON jF⼎t 4ˉ&/z1z: Ѩ(g2.T=zv`/LV(?i <pa_.2|6U1R$2=_4f_*EoDw{''C/Oů{/^<}/.~:< df͢DI(׉ӂrN +-J9tG,d9O+ KJ:MSV:7ggԻL/lzW"FkZXUj+͡ȜyUsX%p*rBĀ1 0=N)1@5JqQK 8^dDSM?/!;ym2Πd 1 , ^9v`^2qַ*d5 x%it &йs)r9я[zQ,\$xc#3H+ Ab&"qXW[!6t{&q$2$zR >MJ$N4ˆ8%LiobܥwN. 9L[4!T3K)(,*Y-; *E9,ܿR@rJ ;+f*3XT.2yc? 'k5+FŮ=>@S}U i_i"琀%t0d6FIY,( V-Xg#"ߟx@A': F&!g K`G E=@nx%,!W[~Ӳ+lN>o/q h짓y:λߏ<7'>Hͩqz՗9NEzl?jb0JӫU7zmQF bˡz:_Y2Ηs^>+hH53Q4Q-S6RWPW2K/eĤHd! ]QE2JK@kH{$Io^xv]w5*.+_<;;9j~pɢ5( pbiUƲ %K"%K|L~t-bFbP%-X[e^49sj#-~@8՛&>a3k?Yq r VA0TU65;GP D[G/~{v@>^X2df`뷻P(ѥr)etV5-P#5냩m5FLlAg'94-C2dW\uÁ)ttdyEҨs@\Ԏ 藩y]>XW~3P|)~ma4pMܞ }BaDߏ8h0!^.x u v:=;cwMơF 8vXG(4 fĒA<)*4iR8R%A-a8=8:_^BNO^:9e?o_u؆w'Ix_P"'YŀH){ɠ5Q?7X ^?+0V 9͒}Z BCۭ V?6ȝVL^"8zR=z #2^r -0hu|tyf{(`M]2{Z.`D~ ?/l va%)homMQdmF#Azs @jpFwq(2'`K4ydy[O(yn&]@"ϙP8Ұ?jh~BҞ}"l7,gA8 쬟&4pCm2ggL8ª"YWmjT<0WlLq?3TFj( Hc_!D >zUUw{m]SPUƲ).x",g2˾gl(3mGQS<1+iș֕= (UI\d="ƩURē[ɈA%%e@bYNP$^Ĺkj-I:JLƆQF-SFEUkOʢBQVLGc %0hj@DE=h -%"Wq%lSA} aYy" PaYDjGj+x'ܵ(,.}HےTJ"ڮkE%2{ uSL`(I "oYqWڲ﫾@_7Д'<y&긛La J[h(rkm72$3 {[|.TĚƉXjqEtI1YEYBOuR\ 3fa5s^Qڈ9VƌH'jS{0:?yŏj,,|oyeOsKzU@iƏz02>FLx|Ÿ2==*MtB'jSjboL[U 񿊦+{h#<:}ȊeBӏ =GFwEހ>/4~a̐A槅S =yC~_~18!պRz:BraFgxs紡? Cǟգ'.Y&35>:c+ ?.ey6Z\.E*K߷2lRZҲy=ܠ|dWz^YL<;%@ldʈA^;rDrʘ} /2Z726PhK ;' b*޸}r_cWXoИ)iw{/X5DRtULtNx;:|~{H4xѼyOM|ɐJX.Ԣ#eM[,EQ5;lJ!\ K=frdVXnT\GinmY}Ҷ-_7mPZT''e.]Y7k|G䠕_Ųn-T(]q@Ku}K'F=:,*%Gr06-ڰ8Sllqe4D:^l{`3uTh`( 54PbAŗ~&Oa tSmaoխJ`#CiSN@ftc!bF~T$;EA䈕Tx &eJ$% xcs 2L'i sTAT(*gwĖda 3Uu`7#a~_ g\B"<ѧAj#LBV)xٵڔ,ѡݗs.iK\Cle&ZR$Lsclk> 8oEa]lNJm<t=a{Vh#a TJ$AH2a )P}`*zBjZ `XmdLRD7EJ(v15g.` }g \iY- pbh2Z~Ⱦo7B.ߞȂ҇-xY%2j y+NݒgJk} (oUr<;V:wY[Uz`Ϋ^औ ѓq0䤔j=[R$: U] )+$ 7i _߇O\ C4w84ڄ;V@nk=,`n(@u;J m\1p"X')J"N~>͆:B!q5B'35z9#D#Ǐ9@Nj|@)-{qOkKyd"Hhܷ\p(>dE%[\ȵ}uq >=aPg@9 Q>//2{e֜[X 1;lr@j8j:Nvb`&]=4iS";aHp'GON,WV]˺XP{^|#D# cVR|wwvR0f }Y3ߙ9lGYn=;*j٘܍rnn׺p ̡96j^LeN,1 O:h #ȴgڧvY5XtW(]̩zönM;bdSZE1m`\ kk?ӱ@1%E\r|S]3R.[,oi.\țTÈ"eFY7|a<S 1z0eiWVʡ VHսꃦz:E~AɆاGU3 ^7'gr ̠9J҈W= Lsn-ҙevCh;0:ggN ګ2 ]ދ8E>pkۆa{՛_yn-fT><RmGVFOjw8oZbӵc*&PhLc:2lVanL ㉢m]ޢfO5j6cE@+ UlLJg"f A".feẖm:*?#C>G{c m(Hv_rUч}b5wpIMDmX1Ba)3B0^RrHM_lޯfT\+s˚UȒ8|-SyOqW!fO~. ţ/{1f-xM_nWnh~w㋵k{ v( d, `g ؒ,oT7+ksk,*@8+'`԰{atU6T01EB1&\qgYe9,`a(G+Y[мq627t- 4ˈ֔ =iW8WƠ{_l:S5Oի! tTҩ즻P8T d :e^ 2NYtb8E7;c1Y`/Iѷ:2pc6WV7M="g ϙ3̝:w'O`A=膕,33ˊ837Zh^AvI'Q"WŵvVkyE&tƜke~`q@?SW P9n mR@XZmK#!80'(АU2_^TT ܁X\cBz)^SDv4)5^ Fw,NTҐ N+{(}d璝ͤ Ch4*.[& R^f0Oi>ɖ4J|vnϊptw uiRs4ʢA&$b%ӐƳu8<*BYкXm\Uq@jnFvianKQ8 ڮMRŠ "n3M`z@T\E|]@YXZ0jXt<5Oy"ѼB9k?t4NPUP9 ):,'M40C.jTsE.a᨟{ؚcm1+itf;wIy4Jua ֌Ah|>6#Gz4 apDҝ$%݆%6©DbnAZYo\3>A+7,A{7-DcrqM ,%$Mzn){pB҆Y .x; CesKKP Vt9ºyTf*TYgk"\E,Yf2:;<&و÷Th9 C&Ff$ZdtzEXTy!zBPwuWjFegn178\MP%b즨*BO-51- ^Tv!z[y_e(ƙf` Hj9vA.r lld3h>6 өIs-@W:1U$*!Vl9!] &-Op[N@ @|cY$6'(lLØG 9iʮ3*bHi15 CDݩ?ԽA"ƽAKXș?-nt"q4MӦ(p* oy{H~ Va3g?B}BEs 歨FD/NT;LZjW)?bzqg4{W9iE3{Ŝp^u450fݽji=S٦&ڪ lBVt$FYh?U$3Y4ߺBD bg5q (jԤ 酴|7$JfM c᫶ʎd@+i{FXEϛwF$ kxh0Uo+zA62E#s ֪I%DE\yа&d|2' O3yϜ.> 3tmc76XlN7KN]A4(׵ Ը %Б d7Jc_ͨ]|m5dK_+r)&z1}{l/ff(A/U{27Ԕʆvgν[-P_>fBS!8D f}Pu-^0=}jnm)ZѬ,V@x@:jN " ' 8nJ~limB>}cɛrtp+cN&ê1}/j}zmw2z2 5w]v&&cgto =79)]¢CM'9Gi#MF~֐Tzo4)M3|ۇLGSyazn 毚\UYE$o*^5VWwi"?x7$.I7lCk3!,qn_v XT}<˨vKՏ!rl*ʷbWG4\_5nbW @?h'|t-=*l } dr~&%)du40i&dTk(my zާTh %AJ/~hC O$80_|bC|ЅlaG1 * ,}w}$J?]AԄ=3+jb:Φw٭ ˉ^~uG@!'03@u,nA.GB䐄 6ÅeY޴+ >rCN%[UC'' c'P5 詼75 µ>.*!|-p}QمXyS:9&=ب%;kEɾ<~+Zas/xM*7d<.ைσ6[=GePW,Šy,e 3*4|+qv] Wg NV -XR%{M$Uq?+z-Tb6Dx}ATO/9qw6+xVW_}w?vp)]BBA?">b*`_ QWb$G!MdP?kfGuޠx]` Z?"q*G`x:qJYZu[1>}O8b M!Ѥ$W{%D~T077ٰ0=Mv*Cja.44ê e;dFj# 1\Ji bRxppcT sYP zWY\]YMabpD'Vu}9`́YX$CryM؃ X`IYO^|~-d>Q&YN]uRU*u;bZ6DL$qU#q[ݞv9W05"iԇ Cm%R;^ir@nPLHeN$!N06dv}[߀ 2xi[\$V 8vS_^1{В>N"`pkɍJֵNtLF>ƪKݘL27ҡk57a>oY~'_WxIo&|Fߞ,y<㭂&<ɧ~?(?Sv cuG_Uy04dןн7 u8!!~wm C265צuZ@o>t)~Kl}Pm޺5t{TƒM.Cɿ6jM)ٯ@kk!}y5@_'+t2&ys?j?f{R/]qfe;8GkH˽KA‡_Y.P0%>bJlr+vJo[+3'7 @!zoBv֚W΀BƺamkidH1ou۟~R^!Q֥BΪ7ټqhIr\Z`s _aqZ^JV4έD@31"HGh1~e&kʂC_oVe=m븚ii yqL>"VݲzkcjB-5/lS1:{8+ #pqx3Fz(iC;ϮpMOs˖c-> S]YPIY\~!Q^6E BK:Ied$/8{skm@Qsz"j byɏ# =ɪɱ A+$=.sFSJHqbcwЄӃSx+u:gv[g ΑgfD@m"8?S[VԓuO+H'x]Ι_kv~Pfb[[jAvVI}*|ȿ@VJf}]~໗?8E$x:A[ eT$)X#oeif+q A ړ o켭P]/d`* m< dGry䈈 ۹J(Bwݔꥹ7ìqum9 5\tq#_d9_T_+<\ː :c}zCM{GKgDKUW9oj+w9 2x5m0;Z}&(6S=ԒB& ,%xd FQqw*l⢄ Z8tq5*Iu1QY$8ͧqVE8IҸ DVQ$*K|^E\VE2B(](4Jc,&D%0kLoL͇iR^w8AyK|<3"/2NS@iĺT 3Dm%Em]S{<ɼȠxLuxT104!B8q{461 =+1gc'Y*#؃ב1{QV@ L,/Qw=wGg;z}:hV7(_N^#Yp>8zu78:yu룓oP<8>z{t`OI o߿<:>:G7xst~P؃W}!t5>9:y9|{xr#ip7}wp|L|cxO}|u%a]S),аظ?b8 Vv %M&:ObZ(PrLBEI w $QZ?D v L,AOjP?sďX܍03ʧ 66+Y:t?KʄءbIX\Ǟz逛aT6e3!K$- R6*YpBc>H *=I#:Lp~T8x.#Cb,e@"<~:QQ:Em q@ "Zf|ĕ ;iNnoNoOWm,M*R8ICWO]#S]5(t(5<@~NFqՄs1lLjGGN#)Jя~}48۬5VG1sPFO T@#qpАm$0u$XYg׬qƍ;5_F:U3'!_G*>Pzx:7yoK@ݖmR#UTBU”]O(7HE~T\>.ɪ IQ^Ūd#(?j·ZǰбK<׶PvU/T^?%Kөv ׼X믳}TZL+gVm5kUh2g.)-3;iDDDsN@uw4Vrc2苢ؘ$ăsP{5TYc;E&"?Y.ơu}icqΌo2$#_G@'yu/!W///i Uxů 4V2~"^nwШ!Lb?.G+T1X0C7x ^tZkV3ztMz` 3WT r1~ËmօƛkfL3WUVd+DT3 ҿYh52GMDC a,,DQ$'.PH/lK/6PDU_}?!dpxL^#ֆ:@ 3*x >NgCKp}ȓ,"DtKC>B{[㥶v!Bg8EW>^5uui(%5ރn@3x)ղ喼WL10@\Y9G0BW(F=B D*TPy Uw#DoE)@hL (oP}KLqb5ZSJ^pěnU[9#mx\FwaOӼz*lИ̃8ц-9oSl$*VfT: &UZ7AuH>"AGj +$Lkw/VaIz7cpx6°vJD>`R_hR^>= @WrM?*1e83vk 0b#1aB蹔N+6vU+R&DI1 %gIzL(+E@]z|oyfh<z"FPiF0m9Gҩ -Fb~)̾8!i ۞tCbhXcU/ pS'Мq<ォ%!@P/d) v,K[u L]WKuelW'S]dnZkmA|ʦF̹O{*& BJDf;(,gH)ͱsWk;aq/HUj&WGӺxp#2srHܐKÁ`cd1BメIBF4F)vYps0#,nh@잩f2].iiݠv& X=+Y<^O֎q@>U1Ky&F \x1.ǡhb`9]S8\l]n_QzŴ74m| RsP6tEfʥ2l=I*]4 Ru"7@`^4vRD2di_a.{@@?hT;(h?S}Ptޗ֚`??U:z#5q7EDdb-j_Q If27Fq&x c&_$G4[ſF7t:7:9+Qʄ߯p'v|VZd:.NɎ-F3 xef9zؘ[ C B.>Π"뫟/@Al H$q̂7 yW7sJ@M2{aZ8[agkơ )f` IMnYG֡ g sP hzRkCy:W8j  {h2sp&#y1ncXʗ6GB)Rl=8 P@Ls8 c N9UQK`8k2Hh oReZA1tah껐qpya1'BZ74èM?39+kuVj;{eK&%r23N&(²͒h7moY5=4duzRp\UƗu[!3{jTB֦!bVtǍBhϚi X:炵[~Z-;AG2hKR4}r0!-tM4*` )Өu}Cݨ^Pt E-:~a_ȘgAS)ןP-Z,$':m`{p8_ jpÀj(b*8(TPP -e/w6Uh1qiu|%a…(B i/9kӛ6!Ǩ_:dhE<%@G3%ed,촺fҁ9F7ݾt& MWqs=^\6~,|DmX&b/6P. x =)H Glv(x_w}F.J}Ml9.Z5/E suWWW)DŸ=~gh.%~#&?Em@깘 (&x4v>=?-BCD=+BG[#k@qq׶G*S[Lto{6T@L8'5n-Ohi2BDrƇ5+,AMZZ2잝xUلT0Dh!CE.^%B7F%| }˪ov AIMVPi/.]::T3rRkռ ؼʾM gF q4cM-YeIMQM u i,\׺CMx!aGxNb<ڄt!UH5(Wv.רr0hbsşj".nQD&qkCClt۵ePV; [R0gtt<'aa!Ժ5U7KՙPĭ%4[\A6.efޔj(N[hR S8}u2]tMl#5A{d!q$46dMvXZY6xWęV 6Uv.;fz\:| s&=Q6v;*R6:I>g9 a*OQhRH'yqt[i KQSj_>^VekvpfuM&FoUߤn [cٿ"H! =aespG,t/JuTלnВuL-,5v뻝廎 9wZ&t\p^! vVoqeIj)C/3D16hC{Gxdi&dH}$iaϻc(Uɏdpթx\̭ZF-iY? u~=,hmi֋A꬜dwE{YݬU<{!G .+A-%O}]gL@,o^Ѧ 5y~þl r{Conj(G~[, )z7w=PD@DХ4J4*6خUXSs; ?xirF; 0H8$kOD7kqJU٠.@Kf$kI~M3 T6УLP[SY>fBI" Zi;Y_lAY Y@r6l?mggF}pj#uvy- L//:;jTAcKI6l5MU}4㟤 ]u,7Ə5]#F{:Ze?G`vSյ%q:%z#D kܲP 1̪K@*T]MBVe Cߥh'KfQ+t|!HK\seu>"$cI>ݨ;)L;?贍¤5g#őݵpvB({΃:AJ'S(~R;C}O BrDƘt:mG( klz e ^`gYFxW-S?oc6u韵ͫ@+"UI7W̻'įu8pW Rmu{d05eq1ߢFO NWsDkv!YNڴYG` M\y.˾bOuɆR`3̇K ):4FkhV圵0*6q Lu\L=1!\n "T4f~vQy ?i]5s9zE6׊ ++㔈^\GC"fX1Г4 N^`۷}p@ȫ up̆H0^Ftsɸǟ ^Y6#2th:b _gVRG$)T?ND.\cx{-=G Ax씘c NVZ݀>š _cX=JY.B7zfhBJMPFİv[ޞdh1OjbJ:7u$NS}l%cu%ӗgA `ch y%JQj]1"r`*0f j7ԲcW[ g։fxD]ѾtM.NL+6 \\RuOfUI(qxR`z*EːE`?!{%5-[owLH,l#5.5C5qM'ĈdSz}7}BρĊ45m$Rz8Kp Eg>pt %.?K<.U }q \Ý~f.qf0/v.Wq/jlMcIRAuKofsiS]·rߒiچ},o7 UDsW٤,0EaNAbA 5+D#`8Lb+#czd4GeQ2@k8mB Ne۲QI* #?ED52R뱝7R >/ud(?s*fjAH֌>O/o/}$~8Ps)&pA`Å"-L[,d+ Vl^ZKp6gX֑1CZ||_E^GjGk(iO#b4eI G/G׼%|"ƷSYt/wZlRŘc~!:sWآdf_Qٛ//"MET,jNA[< 9Kv*N뛉+_t^=*cא͆a/Ԩg'8&Py5vN03XIA;Dj@i{>.>N$X]S$ab3RBGPaEAvI6 Fqwgkj@w՗[k@YBڣ==hcS00?E4DnodQ-!œU2Ic^<54Wq) MEMlKqQ a5p5)Ԯ˘`Tp@s~PTtu#:AQf>qb2f#;3j^Pm> vanr1~0)GhfYT'A*ŊMNN鲜bh ia.NgWkKGL8G Q\ܺ6)"q*EcFLNH yFwL84.m2D6ZA,6bHvX/a朲xg P7%^bZbZί w%;&T kd%M;cU]=B@+l ,ERN^ ͏W)R0j9_CGLygqlF6WXOV7`WrAuz3S^? 5#>?O~kކvdz+ Sّ >IaGk5 - ǀn@?bWŚ<;4](J^Xe:.D[=.5Tdq!e+AGu7RzK-uAE6rD1f.yX;HGbuNV.gcu/p|#|A!V4i(k8!|H6Ԅɵ_ "T^ { ~s%>5ٹU@C~1 FlGLzg䗙G/-cCҤEiZb 8 C(TǴ ҌZHLT"D#bbW밌,x8bAq*)((QOpMU -!݉J(Y#:(Z#^+ȮcNV%s1 6߻n׭@u ik'}97aMEl=E$bxP $4n"),71lVgXe(% EmR=fRTquGR8uu,_q@0 AaPEn{;e+c%!Љ`,nJL1PdSLL 摿gހpxۥ[0.NU,[[ذҌZj0IA:.ЪNFzւH ̗_K;LW2yF;R80YEi+E]n_yZ4s&88Ga껃oϺO9<,8}<>8+"/8R'?굀_O^G'gG޽;|5:zy=G?AA'v߻6w:fQGO4hQP t p>}0<`dFdNvj,"d^hrc#t_2e#fZ5>Rs%!^?%țD -eQEq0`џ"/OZMB".l|nO)9Z'!me((# `v_YXj %8頃)*Qׇo?>ax3Doccce@e\Y4AWYȹJ 57Nw̠ޫkK8N"ǥźS IcUȤ݀tKҘ%s4aS?fWI&mQC]7xH=d)On.Q*K&(lv_,݀qʹ̘K?%.{ni6`788%2oiJo0TTZ0L+I1ϸLIR,HVAW?wMJC7Ө--phLT$M(i4J6;L>TBK,h?LxRq+bDm@miʀR3<&eyeu 2j 47^ =@q1'LjJ:Q\HxIPh=-')UBPsXBy H+txP,%>=Nǹn-xV4w=WkOi[w_u>;:Wko[kxT}j믾|/w yrH82m`7ZDm~ зbF3\fع^\[gWv7j3L/yʻ#v+EJå*rdyv%.] Ym^yN# Pu$|cy{^RPfa/z lG`km's0ֺgIv-r/_Z"j*mft m4)<#Ƹo8{ K Ú=ʽrA@ M Ȫiq[+uBp^q4ԷAi=^0x 'v)}}cli =us'2)iG JFrrJi+B3*b KT<0S`#S'F E|Pl,ԵFFN0iθy;* E"Ϫ:ATnj̃i"QKkխ1$ Q}Z,emi?|Mgn.RK$۰Ml0=n=ceā6l^)F gߤѕ'b[edhx(J4F pbir! mH6ai{:pPb ]qLr8)?LiOC.f֩E :L\DqX"bOCj"8YAzI$.'ԓ p ^ЄAa rygք_ߟt)ޘvvs ZYoJyڅ7$[(dF tEl߇ -?XLqEwU$d8Tdp6wgdGJX 25i,3'NCa84cWݷJjcJ9c@@J򀙹j8а@jOgw6Xht]1BIc:bP`,'izɂmxGFW1qi~ sw"̉41 ْ|oeFN3.2cvюE0SݳFHtI)!GfRivI&"(Q,1NteLN웆&334m"Aadb۾ʤfIQ e]јìF)ꅰ`"#:k& `6HNy4O |Ctn+YWZu.L"RL(Sej4~*~:s,z`X4@3ewF6+eaC(l+|2s wa6tGSt ܮpe"3N޵\B(9!/a @KZ e5G {#ȡ  HV! N|cX-^v7*hEd%|dю8a .4(m=Na`7 2_ ykj~"⹛wJR=$/-oOJ*` rjlowu_᭽fv&")?(IsīY[pI[2ᅦkaQ)mnJqׂ<ËI dL#Z3l NnFp!ux^wEgpq7nJfmc:b@wxPx:[ [ K1GF [u5\u]wV֝snD\aZQ^@hm>:0b ##RF,cp`Y6MGK#VY/U0XC+g|vͼ{{[0g:䭋^?t78[$cu 77oȊ]fȈ8&Ԟ+fC^{7"אʰw m@fS9rMe4@rmqUW, (&')#D,TäRBFY^V3#;9?M2+I"lZ䯢uC 8nwa\;N`W$N!)pj.\`-tA=x{]<բL{RC& ֫;ܰbW״83F-U#K^i,5NW456cP\K[nbVZۼJ[?4וki}|uGǤ@90J;lڹj^bεPq{.o׌1,[I:TRu>kS=GN| Bq+ /JDVJI%w TڊnKF^RrIF]=(.-K5K%~PWx-?P'S[_7|庳W.MY{OǏk:RM^Xx[>~~f}_>'G+#x ?m7췵#t<և-xuէbR u.M+GEդZvMWmy[VM)ajXR#э*`ޮ{*4+@B]Q*da>4 m:͏Z`EWc5 ]h(p{R1D2Pk-M]{`S (!nPٔ5KB=N챥)ZzwxN,**4_%zX=^QZWsZ" H͂\$R%]_y~09Fd۾r1&Q>ۄ+&tO8f C΍VP)*U0VTXyUjU\Uޫj~ٛ?I(M(OXqxq)ي^՚UuqD.[Wv GYK}ת{?9xy]k"1ȷd(nݰIyϯ4dt(tYBWQ@' [k+oT1nb6! 7 dc WГ]_dBxU[o-$RlU})LE=[]Mxɣ-v2i"U727hQزw&սZ2M{ą1` ++ЫC;,4`xbQn6de-z%&`ʰSc&c խxEkv[5e!=mI!,St?R}Nv [$ROD` Q D16E?yZZeqPn,OI"S_l|4N4CD+nk gUUD>lDLFˋʱ)aiGUsi`hT<]piI:nF$M%G1D'H DYA$3'CfWp=HSE5g Ce)eAg̉RR3 l$$)s6+H:8J(!D!+wEV o\e`;Uh1BDAHWǰ)aӤ 2lÇ_?͇r2زrpe$AlPP \=χigA!ۤm  O#s!(=^Q~ ՇLoPaNNrJOW b7+"{'JTv՟[=\@C:^֘ꕥou`#tl]r*ܸ4\np$$Vgt4@1\Bc-د[@!L3t`[[4؅r e#ܨ0WQa(2 SDR/'ǨDiOSi:"K mI*yLu LJ6@RZU93))D ]fEӋDeyz ux 1UP**O$@)QQ bq3J7P Y:dXY2 OKRQ*8t@ (D!&vP5NJTqp* ~``+rN!jyq[#A wTRdIp q{/|7pA`{Յ e)-y fEB Uqv)@h/8`+6PRջ#i޸`QhΦtEOP&nz$(xrI, i6Jz}-[SЌb"DIfI сtWBDKFXT[#( ͒*JWCo0%\2 Ą9&q_dgml} .o@f0 %( xh;|Q[ܡs;3zu\Czaܢ3TDU^,mTLZaFֽfm@ R%y85rpmȦ$ cRݒwڀM_R=7%c\FT8bƑ4jC3N(Miubr ķҥRL?k`jA/OO<-Pi?IF(Z%89+ -.I} Muo]_F~? V 8TggтT:)dAC'F* _-&%L1$:|P"Vj"*b2u V?Ԯc6;3ϵ[^s AmZ%z5m[ =B?|f& z0c\y5}Tg7<F2=}&AX_xm ,a(lQY<~J䚚q ?0Qr񛖃 e T2I%h|Y#NCD6&6S 0A^ }1(ŬWɍԬ-X i.*nᗰ*(Q*S^-b3 XoEE9?p]6Nw:>dZ3`\u5sQ%k.?8"?ьXjD-JÇSУRD-N9>t6t:YǼ\~O[DL- קgn2-VxuY[ ,ä%mS ~&;(hJ)PWs,hD{U!q[<"&6ŘPdha>14.S P_q YDzOX?%bxtIå I)ł+hly ?U Oƭl/q GAde(%XW>YGS3d-kbMJ7뷿8{6Χk) h4/) ErazW$k =PT< Ǝ^ JCzr}B ClBX{\\+!8rEmZ$hwaNH$cW#ڻ5v)mӅ~. T:W?bИ%=Z0X`4d.f~`wǦTlyavGYE4lP<--GWof-\\t}6c]z7՛N=9{W?XĴf٪  UY$c^F yRb$J0 SU>QI02ʆ9gibZ &4nôs -)xC(cKZZ*k%W+o.%b nE<stpzB x0^V ֺQ]ibfFJ4o1  wE>N @ }K: b魾QZ !@T\ef o`X+_2 GO)I60P`'\`g龖g"#(~#yןz(/|hֿOM/˶lKeC>6{vT?a[i"\ҵepا[CGsvPNQq^guteB4QGEF9Nql;&Ukc*$.Uq6)))Bc¾ 7[e>*Q;Z ʍjtN?%|>Lr<ek|>eS &s!bi/jQ:G5ri\nou+#1pp ܶlh9rga`Du Qm`VhGG ғf1h)qjY[زv=9 2j҃,d,s?jIgwtWR>DUـS!3{|Z^TQ0kN-f5l]FezrJs0 ~A*BSОʉJgCS%h(0* Ygjrb#Vx> }H1q $A8Ë@49j<{\|tvQEoN-c -( (¼tjE 4|TuAZ|;**1O$YHW m~z2H{V,]O輿*b~2NMq4FY rQW?թ4EH3NF -UV`˥FzR\cp+0-8b}HLX'ـn-&NL$ܜP)9ؠ"c]ɱ P?(5LУޑe}-১g _dځ4<<ݍ@bcv|V4;ſ?y-K`nw;x|Re9@/mڃS祖׺v W`tC@mN}_?BZk$F@eg0ۻkf+lOiZ_TrOJu~q"#67^f'2f0.:9C2<74f1 !mHC^3/1/:-C;~߈(~J= Rq 5UYSΚ٘[SCZQ%凎\ϧQabtNh ,&ez%(qT&(""F&噮I%ŨW~#!#5P%HIIHa/ *SMnRYs (!HN =&krgMݼ猡y& ZPBpl?&O_9Y|*LD`gN ž`HrJP'uIMtya^vsV_V#ZX+zlQB#\$@pjg?*  C-(Q2bT Q,wQfŁ㹨W,U:OVM7$"r05 ccO&*Ʉo^p +/-XMQ`ғV?{A.3,QCˁ- e$WYi㤱#~`C̮d\(L$[~bw%B3ul[rZܴ4Op=Ĝx,+o\Ԥ,%_2*r@|hms|ucqyb_0̛H6⏜&{Jw+惽U& !'e'aN8nf|+[酋9 yaQQ!Z[[ _5>_c,ciu s{lд xׯ,?NKDyQ>aL&M0:KK*P,/9z2c>@DUR J [ i" "]3 Ƃ3oZt Ep-L-@7Z2*OI(ôs@yuVKemH-p$'#N$ȋimM8cIZzwf$57`/U aje>f?i*lbIM)55=jx/ުq>@K%Iܫle,H X- Wq6`xG-R,oUVT:(L2}+-j_ Tʶ*>#_E)W$f! Dc`4gJs*dV)4C N EY4{0P+Ց14{Ƥ2"Ӥ 5:ē :`` XHիxn_9s섾أɡ9zڲf zjk۞4)0 GL_URIBWoi矎*GqVm>9;g~:3+ݔUx>3 5ByQV}C[ +mw]q!$ w 1,Zj?h6)V.7eЌK*!ѝJ~GWD4,%嵋vѪF]$P (L6{ ;c }IRW[G-t]GHo-pL/=^ %%s+ۍ:XO4ܒ.?fNT3ːHz!H03''ӷsq>'zNP8 5MĢJe=?WJ[tƊ%'-,$ I6>5B]C!pmDYJz K-9oFD퉑wl5v©|^L$H5g#h͎k^ {\ US>U+MKf$`A+|sp~pi9w ,uӪ4H~M⇮%gqy7]A;xEF-69e_}b3Uj-048*gg {oHML7o|]~U(Nv~U.h>tw'>DvPM}7 ٵeq){/F;& X5FYy['u\ I'D<kQaOw1z=ᡔM8t<0"eMVG̦$t,8F:In#`rM?9&2ѥKr~]sq {8Uh -2 ٷW]t %M ɒ#sm mّsO;*vBiOBG)XRݾq֓O՛3Uv/vӭM or\#:VR8 r I녭K,OsX; c'd o'֗YBU"N,e?+sf}-}| ꢨ'3z$U h5@/tdC7ir,^CƸ6FUL/G̊ ^pvEqwѢݷO*f*8a ;~hW6k# EП ҔINõΤaf1 y(ESZE⢘h>-ռ,` ^^eNe!j.ƙs t7TVjm84L!5~^_uAv&ZGJbjޠF(*M@rԕ|KV꒽b)(_! rQP %pXэԏ㙏VFq#dAl bV,.r!yKEuo8ڧfֈ D` S'%E"hP-K1.kkx/[j>/[H۱3";MFӰHT8\ó,$xt#C51{2Yzlhf' c-bS^az]Ul=<ٚ3QCI&g鬘 ʴR S6QljQ1Z򛮲"D8#9 Q7.,6lrO;@`C9ʘ#vvRW{ti-۔[Z> xOaxiөM)kk%繕LZZF{I`N&m &Oi.]OCq Z;lnwp,--F8ePiV Kh3s"<9&1ԣ0l9ֈF`eX!8Q+AWD:ʠE2X5 ?Z[#cD0yDbY\f(qjMW\P a>[m.IEٹ)ȶo&*"Wc%-+q߹`$%MS RŮzY{~ǝG|F&%:}]A!=@Ak+:HLF|ul%,rEΗ)1K Wz̳,WКJ|+g{:^MPޯ4ጎL-#mL2li.,u'N¦kB(-׶Nf^^Dٺ"y,<;^_l\~u3p8WU_8 ]g9c]sF{@ץ (Ͷ\ P_!N;1;cEŃMqHg jyJ erBXшdLҳ6sزk1JrbXi->{~P(!8vB6[mt*$a5S1X Sw<XDQ Ң J*H _Z?*wŞEr:O+Rw&ȏ媱*ajdr Wc?% Q\yÚmNsBqn$"H\5-'Rm#݃oU ؐT I=5_n#xZ5GUo1l8v@Mj'ml3%9(*Q!Bd;/܁^})#Z<0\4:=oO;5zlU3읞^ț iD-\.U >#ucgLuVUhg[BB^bIpֶz"\> ڃ) QHq~O|%11>vv3,Fش|Bk:p5fA ˠrc2e}yrZK5qG҆CTZk(j#:**R"5pUb?\"vrZ(]L(yo G) :4u[ޮE!wojYNJBskq~697w"JݣMx">5:vR8CAhgaJ-x( tWSQ! GwW9y `hq^Fc˿~Re+.@%QVɽ\>Za2dKa@a⍸`=eC%^UlϹnu zE׆3G"zi[ ^1fyCR;C湘fgA% w M8B(hػ؞E]y(ѕ6mny+y 3h=bn}KnՌŮs({ık]q᡽E.9ޕȿ8ώ}`Kv_=ߗuPiRνeH|8H$u׳kHh-J5iO٨×Ó(ȱiԽ~ _j Kۆ [Hds Tm|_|Y!`zʄ ^6i=Ҷxn:P/l:FHh O)܍/dю6Mk~2 E$ t t3^@.evKD Z2;0FEW$p~e?>yiG3, g]SH> 7nz3R3nQ{nW,=56 &b%5P+k3Eas\Gaor`i{qS"o_s7ƷwρG#󻤘1M0= wҐ4f/ 6RMi#jD]+{uH }p mpB?ppJ2#C@MsT9IN lJA"u8M:| 5TI-ó-ycg-_!뱤Ǯ; *{eke !Kvо|Ɗ.5b˒pXk2V=Y[ۑKL3{Z92pf/iDj#RFB؋қf-H s.z#T4@ w#9F=V]>i-?uѸR!e-%Mz ,J$4 @MTǘ+y1 %\(׳E̤ Vzg\W]{0VVXH]4l9.MZkSE{t0qfgΧ !H NU `y0WΪmkqikvM7Hp^i {| z79^"4CD` %#s9I 4 qw^}_!w槳o,b7`p P(XOT/D =cO@wO9r&{@\`;@/n; 7eOZ072眿/Csx5?襗Sֹ n&fm6=/pCya7MZMm^I&b6eM7ݚ.hxx[5[?>y_o_;=#kD-!{Bq@9y{yn-nOGֆ8oiPym'IKƈZR57X#X7`fȩGtCpw~t"*ߪuZDz(h2|x7QT/ZEi%ˉ`:ĴQ$sD%448K-\J3r^`W>0!쯰S|+T qQ^&̧E9? Ъ7ݙHFxi$oQlo$m =LYK5 q찑6f#Z̀(M]%̬΅n gHexj>^]i)1)~N$XP9`O߭G:-qEMҭ./u_Hm&' KG:yFFF )"1o2@IX:M|D\&mF݇/&PR ~k$:e$;6wڥ)It~F{4{%SKaEo#F*Of}eQI|,Zu;M*ⰒOUu=u" kv ;NEoŎ?b`doW+sR1[R0srV GGee JHwL`ȊŖ?# ɦͻ+1T4.Rp6㽒8E.`P30hSa_^. ;ȶwV+HWBɁ650OqsܐG22WBsT? Q喪P6nWKE\WtK艑,_(%rt=OC%Jf?^3mw_ 8ﷃ}.=KomJ,𤨈~'(g'ObCV䵯7y'U#fnjU W]32,iT?SU%+"xԶޮKvBKrkI{+x76nAkLe!culCy =J덤٦5z58-0w'WIfPdj%s"V&u=_^dnsfZRAwr"!zw?+2Sjkޞzc1ҟ# ׂ &z3T}/ı&SjavX6f ҵlQg[#_S~Y쨝2F+n-}c_K7 [(&e]X ..4BӒBEs㋼KGHFW~i43mzbSORu&R(~4rlSKYA"n9nJfzHҾ+/} % Xr'O8y) 8o Izl<]+:ҏ}-]`R#Z 5\G?ơAn}g7Y#x `2y!Q1@Ђ6lƬI;&bO^Y)NPP@A6(H本;l m o ޛNy{#>h߯,ЊV+7Du>H( ux!/MQ9th2}k+/nQp_QJף KvX(q54(K"0į3F\I ͭW/v)C1ɸ[O񟒼Dݭo:zo_?_>ݧW/vo_Qϟ}?j݃/ zY>oe7L}W}w//^6J~F%_ r_ ٣wK~y]*"|awe7U[6ۧO/ۗ/Tl2"߆}<]|ybYp(IS);U:X⅖yGC~. _akAqé ;aAr;%]$T`rZu]D`؁FGp)BcdWH{J^\yfQN tG#1GNɌZv4n8^PZ}mҸ .oɜMUC[)x$-Co4_AS|WMfqH+g tr-z79J[ف,jI@*7DhC16>>UKJO{4A*c7Po`sugl*g̼ 杏 +h VRW#IҠR+h>v0Ω[ͤgead`\k1}AV whɀ|֟|䊲~cI$-b5,-,KzKoq+Y+зrRta!)P JfPѼ2)+sЮkz5ݬ%0QB"Ǟwq\,Yf'P$;O1i$:%16l> Jj@IH03!hPLMsLr\(cTѩTȵHvhdXL[h 緿K3snI1n1U^h0~~ _DqjV$K6eY9L.o5dO當-X,nϥŭ[K6X&yt-Ws[koՍNtٿL#ey,c^ [6]MSЖ=+JE3V{|~aT;eQݳd:Tn5KJfﰰpAϸ3V:g,*+-Gi@WjOγ$؀#I֘|FLl-ї#@V~unr\ cl DhNؘJpļtC#-1|*>1#N frPRdi˃&.CzKjt0x1X *I6ZsKP1 dF<2qͅw` B;,AKBe1!ch{+fvZw%޻y ܂K(^Y/FFj>A5[Q8f!!~fe<8|6G5;RVTte$Xz˝-XVrIPƺz'kigJРo]e+F eF;UsçS,7xR3p`Z GaaCx`,a)!i? c{728*C&%/0 6|0VLHYwUƮ!*,|ii.bV {T)iɯOo:'Tp} NT7Mg[<|v)1&ꎝXmy+a%*\AZȪ'o\'@N/E_bqy xLjLTڛ 9ů?ⲉZg0B埦յ*ʞV.*$.l"bhz  6L%/Rl'GSiT6rD Z߫N_-#Sd,_Lѕsl ymShA_rWF'"tzßo.[X h9c(LoeU{z5{@'99.%SYãYo8'61e 綽Ƀ\zpҌ%8{ӟ@43&}䰏GF8Qs㚃\Uaja%a֔8],bb-C8X.w#@2[Eĸ#rs1OT.%zQ?O&Bi ׍m,▊ᕌa>݊nxGg$,E^^OF5H]4 hBZ[FUBkM㒩L9 K.;7d#F-鶼Fn`FE^&$+ѝn ~\['vbᓛG]Pc]jpӬi:@x>%k U4sty|= /aZ" c ˄6moO 3#1ՠc>T,Œ^jYaY ]]5؄> [?)n>uPB&2rה۽T]n:ظ) .ڊF6pXh@-GY;ʍ?o˒4Fvm:! W+kKI zi|"tx'P֒aaž ŃGgEqVO$Yz祲1D_/~Ej%bVfQu EZ$͇SXX]WxġbTgY]Jmv1ַlF`)ys3??2I&;TϪX9UFiO U]Q.ODY %4Ga+9Ug_|(aV/!Gf;x,E,]O(s}۠ކ_Xx\Qq5y[tĹ-PoA1Fd$K}+lGOtMgQ=4,g`R˰$ɸC֋R*t6(ȁh@(+)R uDfa|f0v"bv&xp) oypHsD xm-{ahz9Ʒa р[>6'qr:Rhyoy $ofre}Ʀ[ٶY㙽*"^aD!VX{ ̂C(hP͇aۅ%Obdk@.Ƿm#hR߅lH30[d/بW*+(#Iˉ3X@ W&YPĚZHv(%f$GqW@%?nބ$d;Qw8> R0}tox@^DhlO,7rʤ?ϛT(}tnb>[jQس31 []a~|cp|t[ :M,Ugupz>.tq.|6]ۙoR!cG>Q_1"bHSbⲊQdlp8g>&m UZz rx0Z1mXeN2B=G>&ߤ'IsWI #Ho=Sq`1TGRE@=VdFq,{eՅ}.LDb;΀9(6QY7DH.AQWB-@wU1 A QsJ`+7W$_I"L${,vUvJQ eǂ+9Pe_W`cQc nOk{/w}ޓ'H},y/_<كﻏP@?UPZw.PmT%H=5,~60C# j( AASI+e3HL(<GyRIpjs6^;=@Dm/ZțS*BN&WuXD: UP [cX#Jdu+ Ac ؆ո2i  BԹV|a+ɓH3\"Sː9]5}&&OMFpN ]ڹ'Fk7kE O)4ً;D6Tb~+N[ɫZyihjnβѬ: G@1%4b*0 pIfMh3yHU9߰!Atj+פÕTO>tx$$H'&Ɠ^dȤ6&wdHVjAiƶ"Wr(G7GZOb6Ǯ}o5\f(xi[Ú&~##j jM_Ok VUzz7SE]17k]pB Jc6cۛ6.mH(WV'saTl-a.>Bc4[yY`d᥿'/cpMz=Tf$0c||c1waw][IE0Kٴ7ǹs9w\K& ŴRtp^BЮ&H0MóMLp`c]7 2]$B_dwn ւ ғl`#Dgl2$Mw ;0`s.Ql \Y?!ߞs5'PyBZ!g6.@pTI mQһT)tVlџ{Vh&!x|XpF;lGVJm\:lnhRA636&bB9:JU +i%iafvnY QO ң%~s[ƞd@Jd]⹲iIbC { e&#V̠0g׷PeO`_23KNh(Le(z46Ye,F>[7贠 K uMHK1Ds:qTdpZeRjƇ܋-d+ ΞnRU<yYmdD̓a'~r'BFJ4Mde-qgGme;:|5؇i|v9Ȁ+10$pߩ0(HTnMRv-a{_peiԖPv60jZ'VXSEU'W1)§umF6q^bI-[aHנa=F(K38 򲼱l;KEлU1yҎX*3pKWVܴĠZFA>n=' \Iv2~KbuJ t-uKT+q#y 4=9X  g)2K@/8Bstm)Aװ{lnBƬdb',zx8F[76!|%3"ITToUn"ZިC_E,Z1W&b4H9 (+ y,e[ptL 0QdݛXyǘr_Yn)5>߷m;xrWԘWu q#:m>8kL]Axj :yFQ $ u/0~6JVjB#;\h4Yh۾3Uvo|&M# JWNa3 j\F`aƂ |x%l;:ڶ+ b5l"P\,.+Z;e3{V$Kr6MD>N"~J%MG(1]i٫^(ɶmb<Y@L1 %w^ k^Dbd}1yX06YgthR ,2yY>aWV|}AK-gj~QV=n"sk]<DO'}-+lD%qYiнeM6?o:tgO{[ӅfGl hcN]IWsio܆:.g2cukrJ768 O*¤2| }RY+$Z/*|8%yuҘJ:2> D1< 뤌s6v7l@!9} SHz<&d?1=M5G}]ei(gԢrϲaҝyY0/Pnwdbu Vޏ_ۧ}.\w.GssRRȉ'*W@|2/jpUm2=Ynhԇe.g$'D*([ZRnd$ 9~E `: XF"‡IMB`WIHhVXeJ"|Q6dhWAIU-T=ROI pMfM.]] Mu`qAck<{{ 5lz7FFlސqxӉVmw*qY*r|YU޴TۼIk`Zv60dk[|oZңꮐ^YJ?*$AY)1_ 1>//TK?Q*RqJ(|ePbU|e82ͤ吳ڒBAv Xh%O?V"˜zd$$+9>\ ./"pM-KX@3|fC K`| &h '|G 5J h\Z襙UcRteѮFM/z ^R]]EH- 0Luam'm,;EQ \ڢn`)qBFKYx-N=׳Vɼ? :i *d9:}bg MȰ$BQ/Qюs)EQU+BL/RuPIDyŻP"Œq R2_ Ctj>Y tI<VA]N|QC5Zn*h|a pބH%u WD[[Og sm*b63 B-:@TA^Jd>A29P3u):ʴZP9u''ߒje`N2 &dQ \R= ni6 d_"=. U$_F9w3f74 VV6D f.xS1s_⶛hkĘ" "J:?aHC3QYUvMhG%+KARF4)q@E⽒jaOgP9u!M4*8614.xb!Cpb,fhKŃ^/UGE`,Y n6.[l^1>$ 0 EJ>m( W zI(0a=#ʊQxKppy[/>7~n't< O53U膓4^&7|u Jss4ep |B'r:SZN=_tVO 4xnW)P*ؐ33x4|hk7IcǶb$:-.Pgn 8-;?CH LoP :Q'Ó#\beuWu ӾZLEyߗݠzH}Vq4  1A'Kcpf",t ģhilqky 1%'aB. 5=>; n17؀"o41T[yJIX4o? ƧE ;n QXL9>-[M5`_u*h Y)A2:Y8ίTUPZ:`'y sT5ḗYՀ__$+3NRI7ORhLj%)~m+Q*ugƒ5j6t>kUdw+4֢Gި' u?J\=s|Ե? DSdcU?(I40nNQSrK:8iaO>+a_:z0i#wGf?WYuJ{]%UGrcReS|T 5N0X)"c wALz^,=/;M'WMB8vIw<G5F$7]d{BNJPq>*' T}Q%N(p@`1lA05wP}" 6+FMjgʅhx̉"x$?gwepr 7SWQƓ4Xؒ;p6[K#cZj^DwԻp?W~x<_MPWff?3M; z~s7uCa!*GiFbWwtI5e5 DVR?G\9O+<\2t(n-V?^SBf af V)3^LjՑ!E2ԈA4wĴHފT'R(d)2u @FZS÷ p^҉.U`dTKڮ`Y$E1ŁRu%]CnREϏZmbwsy>>stW0{Q  UJɠ.$pld0r@!`مp;Aa7=KPְ}o=(k^}$Γ#ʻTX+qjpItӔ}\&oPtQ>Jn\_nfq ^]jB<8n_$@͝U3ZHۓQq&m8fY+wγ G0[Xz2-I}ulgNggL,kZ-6+H %~|\A) #D&lI$o>i$[Zd'Py;1Ί;FJ;Cу];^-9ȔRm|B4 hI}9SjRm>8Nlqd\ thWcI=\NH(Nm$'?)ieS2vZA sBBHjRAO_(+8ty[[ƺ2ރ2Nz3ȕzޞkހJ#ITjA3ҽ'nH 6c2 ~1[ee$o&vRl)4/uc^9&;R-'f6cE3SAD%$Ԩ0h.]UCkI &&NfL X#>.Rda 0 i&?`&, #:{."rdG*ҭMrNn$I%i][M{a0 KFt>ޚO`hˆSmWMy-ְ7 ԸУ1)tu]-peXgrPGq)rN[ ^_5Mhhۢ j,z#ϴFсEG~|;q%wyҍ/Ef%pRL N }s䛶1 0` }"=&uO*LW6ͬրǮ''[oRQsQR$j~RgТg\Kl}5oQHvS|/xK6ΚK{i?;ͺEf B: D@"辗[4@:εXn2wNGMS :ңؠ00gfǕf| rzGHY7e>s&Iu6ΎRQmp[_NPc%6e9FtbT(*= J%vDL9[qnf{*oKҸ_ҌfuХ񫲲K(l,d)mL K ;h6^HO(#5g6hD3֔# +^ + m_PGQKߚ@t)HWX+ҳMT ֔F>&Pf`s&&N #|W$.;s2@^3*ڔXrpf[mݵ]TYYj.nb1Ӎ?tN ;{9}W .˜rfϦ(PǴV ^봠wI$`lD%*G1fzƯgo,' 0O1;t&v.' Y/(>'B&9 :e2 c@C3s-X.UF3giҗfK_]fpi JH;[P?s^a)DA+ۼcm1dIo$744K6. vY`d[LҀJ)b]?"!^A wn}Qͷ7KSMn0!t3I4BEMpt)-HT5hwƤX#30[ܳ&AZtx*p9z.* wyza//Tv"@?vls0N#hG,گUGx-o*I.+*ՠ iphw lΊzyRTa"q8޲-$l" 0%q@0lEZ Rip┢i1d 6m#V>LiyE<ltR;4G|]$(11ƆF`# 6c]38phD[|]n90QdƗNߠAGȎe`4&TMs(ĭ:#.k͟buH *]d<"egG6҇QilHWoUAvA%@q0"q{P[25zK"}T7Xy6O8.oNigWp[-P6QuDڴ&'9;:ߌb-ci @Jdd(aհ Cܑ l*1 <}¡@J\izA=AZ.I,P %rF@X1!^؜2uL^㍍M*“1DŽ&c$ ֐Kl,c'eJTj\)ok.}gEANOkj_tބO̯dZ&Ҙΰ*^MGufU)W,];ܻ "N.n9*l`Xtg21f/R), 8(h hCS04f`P${3^X^ي|z˴yh|Okl5w:P"2>ΊB_&_xfI8b}Bg{~T5mlItsJ/SiNPo4{Mf _%1VFP!*(Ƭ੺kSVl\rbEk+33Eib[cޝ Kf׉χt|!xY\OQՃtt6|xwK_:XwqͿt*r搜 ;Fĸ"6qaPiRJR^Ȅ.S#3= E6',ێ}3S)iRk&;ALM1>:>GgAW_:H5nydRT5PnvUMFc,w3AFPg?utܝAW,瀞Zs4Q-d I1}4{ͺ-Kq Q-DK]!6V/F4CǮJ+L6Sw0 r!ݺ]'o*W8BSޭp$"N=b;OpBcXveScwh< . rEL໇i?UKJkWD$e陡Dٴz?F$-ba9ŃL(-l;= y|O 3af SJanEP'vlpI4 IC\Ѫ'(^[<9Ni++ˆeN0Cㄡm=(uh&v,F&yk8;վp|%}`o<A_ Qx F͗/L~M;Y>2 C[hPp j.LLr1gEM'.HSB9ʞ.I{  :9 7eO]XRU{.s҄:\R nhA<zǼBJt lˊO)TELj{{<3Ɂa /}-IᩛzFJb}:6);(vjFD]J)50t0U //Y(3 -$fR#r0!E;oDS-8(q$}WK'c#xC]ah|t峼VVp}=i$MoIdSL](FD]*YpN/4>\cA뵰slE; co˻;r;=aO2<2%|>B1 D^oJYT-HԹ?o$x?~A3E|oϾ})~K2{՞v(8$jl*iܣS>d+ U/(Svx#-542q2x*VY6taLЫ&Muq2B- RTUx:ԋc$uk>AHedug h=dac'1&09fblrŧTw.[n;OIN?&z*G'0v5Wpz4wAjYSmU louJq&_˹e3.c>=}1OŋKD Y.l-ԃ(#Ƈr` )zG/è_47ݭ*4{!F5_)+1er4S3k2ZV"dУⰢUXxIGSx`ڽWicnb=0WUKR66"A r {iͷqav'q{%pR2MШ qL*ٝtza6w)u'AՎn6)|Ž@Ŏo57F޳ $O^QqZ^o1'H6t pRp7є' =0˾{1ĚΨEyu$JU^vw (8}˥k%ID'WfpcJAyZE2ADWT#ZLL[9GD,ŷџfەlo޻wO` YE}Wv{N`Ke[ 'n cCB@79 ԖIa׋7ٕ]Ewcs:4X[7DzcA0p| 2UϷ{kwVIm%.F ԭ=W1-;"JORMOs'ªi!fS+nI-sEikL1j86riJ.A MB$bɵ9NB+o*9>:M?4>H /r=S~`ںXvΒ/{٭;w?v0(6U>J/ vCl9BQWB>лֵ!嚸:h7{ ^Fە)WpK%\8{G=(w/0ח̬]q);vH1{ 7@)GxƝ\ 7UTlɶrDkQ慄,dF&ÇW@c#hE4>Sfsc X1g.R4]3"?e= V &Fe:&tPËa)r3k`,΋ ?{scZ0.:}zZnIB5Vv{ &xB9]9{v YOֽp:9ҍnKP2ocX9~dey 2 {@ك/T2#-v f-JYpd1m 1طn<gi}-<ɏxbg4{R&0m25"tAPX tH+ĖCm*Hŗ(u5F|@G7/6[ŧ&R%i +yyX{H޲&Q:|wѩN?\wSs$Ѫ$IR)fעk}(@GXVZ7]09&*T/Jja,b$U6mq)QC(ܮVS ](3}v#ұo8PB#DY8O/z~/N$t;GRbԋC[J__f_ÑJ.=x94[&$eYQܡM L,U 0d hFdM~wP _HبWS{<< YSYZ_lglɁ1N#H|b`q=ٕûvyKul1:$zaqOA[ J6Q6*k^w8$ ,s7{H-`F,eI$s!3-ͬ X0$fzSdjBP*#sNy2X2 iazWO~8 z,ì{h@p2EK-I[1C4#OxU:ykS*@C LYkfu<2?|aTTWAOhپ͇tӪ}kvdf\gSl9†1+JhW,슥声 iaIfx_ +yoq: pc> ^8&Md#%#Dsc~o`BޯZH6 ̋jl_ChÕWRx-i./|T ӵw?GYslGU ~:@Ég?PF?m$5~z|vtl"\ W!IGSmf+P4̽q&)0Ɓ' P>ÒO:<9J`@ۇO3u| 󡜮4%QW=HD(֤ 3~|T%OjD֨.-i둎?&@dnHuZZ1̈́ yI~y1,g 6O spГ-8Yd9boo/c8'|"ߩ2E(b-o0C,Ŷcm '9>'0ms#s-eP N1òќ1aEi`Zbi<+gf. Tx3CubDyR_uV<璎~I>/Zm pClnu-obH&XFl1ZNSFA/_WW%脿Ҟ2KJOCEj K˺vfV.גJehW}bS[4{CԒ{SD*?lsrb-iDtDϴJZa{k+ڒ/ Kqݝ nռ*QL]n+"4p*@*8F$,q(nĤ: =?|e,eכ~}~U*u5ywv]O[T zU2E,?[җJZTA[}/?<ё kdx CL{Yaĝ'ꜺyPI OE.=XK8\vV1+uJ~Nu,y۱vW macS%AH]K+vr EٴM(W}iW:dQnb̡3vWm~ # D' 6δR)wt%_45V ԋh]$^{FӐe^f ؽ*S@$'"F^x!س^ t4^纯ɤJRg hqjp!* d&1)HEczɦD-#CJR7jȻ {>%H.643X#DBFV39>/ݝr.LA^8?"59I[[IdAG1=SUN${nwL\v9FvA. ts[u@}H^¿d2NdRkIVglWtl"1yۅvф`b! {|cZ@i PΥnY#lulB{8wNW3qnZK”~G7$99A\ր LYHXL8,_AQaJ> 1N)]ܐU"9R|rIieg#6F!5ǪuxQ@usx2w1a";0\ͧhƖ_QDl<qLg4>e[95Gҫ,ﲋ)&.Dc1X?]H ٭1ڨ2v'“ ]qxa-m4^S궸n- NNv`#|}d=:[wX{׸ /(Y`A>xM%Llr_DV~q.%0Ě`EQ^ptQˌ͊ߌQш$۷S}}]sԸ&Ho@yC\8dmm%5 F{ UrLS/iԟlU{U9 bdw0swuX5aeƢ􋰦RЍ?>gއ8B:QÇna=cj]fTJX)wIFH7S}d$Hbcy\2 {$aƀL0|ɅݎTd ǥ4jwϳY6S>?MF?p>#DITRO7GY\?<|뜥s00@KwHz5?)JHX24NոrhшI|<ߏeʡٚ>I}PFLJWbZOG,N. ka6DVUz&{&٦|*ɥ/.ӋImdF|oYϼ~(ЛHR ٓR}`ᩊ ,h;H}a}B%m$' 7ަRpb̽;'<5M163_kIw& Szzjm,sr5?ҟc[Q ʈUfY˧$_ݟdi8IF'9'SH8pl5"$/ Φ2T^꽤o.©Կ6O"XSNf8QT\S'Ծ BvHeh{=ksGr+`TC=LQR]VLr2/\ `IٹU%\8s%uW*ݗMUN\T2= 9"~ttKpuwh\!g6)C]瞌\*8 8'>6Oʪ.v8T9} p;l8ح,R"|ˊK+?.#+Id\@ +KyaaaA!H/R⃽ҕJޡSDF<c**\n@l=4++w?so@ )(++34 R[&8]$5~> &z-/ T Cb Ϛ ]&i ,yɨD`V0CiL/zF{]q1%!xi͞HùXNON9g:d2v &pkdhD41w.$Lȗ7 \(IB:Q(.^kĬoj m=)+3iQ"-,@=g|K>*z ?\pŦ-Kp5 W`#zpGlvy@9YQ-ye0z1I6Rħ,V7@3 ӚIoX5a-]O7Unn;EaY,p_U"=0nEՂen_de>U/Ync ŰeD~8&Z"Ԩ~cgb/h_׵:z( ՚4 1{YxPʭGШ !QΝ.N&Q;eTdM/ʣuSW(7{-yਘÜxMP3Hϑ|HyϘ}|#g\-|[-P޼e1O0ɂdW[mlejfB+50Lls6,W_y|rr\ <" ,$\VV܋ybTBdԃ`ل̄[Am!c?$WK&e>8QB:C`<s^LWhUVǂ5~u1/x$&xaz4maO6 Pi=Ե^ꆺ+UoZ$b2^Ka(\V]/gy誣$4a] otsH׃uv0_FjO'ZE:FqrP*ݑHY-eJKZT:i(\@ -1FP,!RuS^J$$@m2KC a+ݩ1ԦC\i\9h/wZ Ϥ%b 2q: $]32ذp[G+:{Z[ɤ( Uf;vokjfT6Vpa܁tkm_F~)V!8mnf%*sco( +I!2ɴOzdtt ?ݢA*gia ij$6À'#RKr;Ѱ%^oE &/*WM[)n&6΢#7Fybxv{W|_ۋa0Ğ«$.ҎXpG!3^$#9xR?:s P3`4nJR>7HZph4%C ʪ'x뺊`mJkFZh_ %8]ߏjn^}Xg`S/sJ,\Owxr}Hc2֥@;` Q_70씊02Yr6uqb Kp9eLRq_l1f ^9u]vA1eJ5M0LrEx6ҘYEȧDc6:j21A󬅉,qS̩L5pf>q^\.ӕ2&:ʡmRghR}۫4D! kfԣ7vviEÇ&"CΕE@Wh w(b7>femYN58rJd=aJWil$&#*Q29XB+ZĽ]~Dp $kcTTgvxf&^\ztRn3qcMgC!dEn$\U {۩ec#aq(l":u7a\x\Vf+jX6[,CX~(5OSnЩr=șLfL]aM䓈K;Ay61S2Mͩ"A@_c{7lK!Rۚ8jZ =|NXKDR;zȤIXҘ0ss2m,jQMuR,Cv=mAh-npYޢRj3r&vJ܁'wU\frPbWoX#4tRQ/'tpgCu6 XLo0a ` NcJ<|h}wN+WNJ0%~ԏƾtL :p雅|?5PU4GBȂ8y,\\`(y rBzVv_7]!6eB 1D8l GZK mN}5 |^n)n$=G*ӣP ,LLDuRCIƶwHl%٪-P&n?YB)i`3};'GR÷ȎH4) {W]b+E*x* *OBhS0[}XVބ\XN-7L±rޕ#q80Ľ $ba[J XoÀboOFEj\q_E Z2YJSZ^B+9髫Kb8glE%@oPݦNe;ě΋bVֶv+vH'=OSeI֨Eh_Z:M[Ml7f dH*^ʶ笔4UK **mD Xle*U6^/x_C(^e}B @ ֮+We6K E;Q37E*mZ__ I0 {Yc+vcR65 (uqjچ(]%mQ:z; J7xMQc,6׶ڡW6% Hs]4SIk݆şD(iʒ6*t$jXn=Zk֞疜u.묻L >/ouUdIPB=4+M~Qu67`<ߍk(8 qpŭQ+ 2H/Lo8K]wx4<ԉw^5&^DΖѼ5' g,=-f >qjRkkDb/ cIKڛMguEtj,orPwzKbE#k8R%Pw-p` n$k*h&hg4gk#+طJD7V7y͔ZNf%jMHǵ>L F3wzcn2x+H.hJMO*!Wԝy9%L si/`/>O 3)|}_|w&yw:xW?Ffϟ;ϟ>%O3g?xK?=g=ųX;?}~?"W~Տ~_?k+! Syj`f\p$iIh?~_|9Sj6C~?~3+D>MxዧY4 'xO>y__<œ;Vjt- Hpi.m|v`;2,jP).~؇K7.=tG  ?8m(yA2sMGWaVCވGz.Lczl5'pnUke/*:0l﷣8}nLѾpY&2J3{91=8X!l6"G}8Ǻ MvR/C>D5•^8_2|X.ylݢ")Sc~^,E}/ X<nIq)xBޅoGq<.!o(hV"$Y ]]_ӲQ܁ 8|H25:(燆ԣlSGA7TO:'9~(dα xDRSr4-]D`oQz?zkMzO B4C>w1 !>fa ږfyTcf(vxϩ`Ĉ`ٖGrO4gφ<4[ 吱EL5v10I ێzճ!Ec0qZi֦8U!aՔv*\Yw-q$yZ+/Eb䪱kbP0N#uXH4Є2,xmƴU8`7ъ("6M3`C@r^#Ħz<вAw)VV3)wVV\Ӊm?׹0$qJ0 j&lҳ[3]8x„v˜k<ɮ,@7 *[0;¶טDu-tLᠯ5ԙ.3Y@HW Ѷ8@޼\بm&%vN..(f _'YuYrc؄ RRAbYfL~9t˓?E$AD002kR(=Dǡbh6.v]ޓr'_bޭIo\˜]-8P)#$2B-#-IҁY2EPsϤU? xUG}>ww1 td0eǓa7e&4Ί#8xߛK=Aڡd#hE1 ?ì5Fԇ͠2ݔ}0|jple_n2Sɤgnrlw/ջD V:d0F6\-^9fxIF9c cr|J%K)*Ah GGhǧ7.S 5&ѣr),R R{,LMv>%@J|ٳ?.s[ɭoZ "z9kt3G*ojYP!57a3['RK)`pC'K2M!gPk{ƪ߆7`߫Ḷ14We-IB_8rL.&S2f.$:S-LfbN}٢5/EHgyp ;^}BM-(I^=.xmA_>hIc0<yjv \di #gxS Ӓ$[)@7F7LKLcUelKU" :X^r`׏VK5Leeku!ra 1ESVOL{֠;(ɒp|~M@)&؄*#4.sKť"np~d, ~d%?$ZqSz96.F uM @ٹZv}Éq٤ǩ s@a)knH/]wBZa$O Pۈ nON6cy+R \>=oRdѣE#W ^) PKyVS!pip/_vendor/six.py=s6)1O%vڻԝ:>Nvyh,a[@OrnΓH`w],/Q\%<7{߼~zx/?E $;/%YiđR1mFGbH)nr+G"ĒE< [ JŕPϲ7 7Mc/pc/_(s3,q2V6bp0C*Ɨn]ՙ!qDYxHe@^ȇE@tG pB=ۑX~0_I[0H#H|gb'#ĂkT{q!Aa9KlDb<^Tk O19<]g>oKq>bӋ1ώN>"89/~3|"j|p".>O./@l|q]P._E\~:<9€gGOƿ|O>Cc1U;:9ć_ ` y_>c"ygX x$'K)V 8D0ώ ϗI]"2WT;;s`q`30} BK,Ebnwvf ,O`v!4.wvT,,T'* 1ʼn~OWEVZtgqH1hV&EsG.3Q2SiJNWJ3Nbv>_rGljꦒڙ;Gd%Guyepg2t3d)v {! U}G*tT) e?( +9,D.x\4.8p_f9o4;hN %d@9+ u4qfA-(_1asNܿVd%5ch0SF7$GH1 ?&ޭ,р. ^f؈qx/AKBR;hbYvcPQs6A菄{~5B F%Qf:/VC:{=ǨDf*6mizK6Fd h p\/DW7.8"LAO]p) (C_z$jC+7~,Z퍱(x%IGvPmY;]H׹HAP-_`ꢚФN+T@tIZWVNg!U+~has}QS.Sp9  P,l-F" mlD)!9wLb.Bv,0"Ct`&;Ia6Q(TB4Uc.`B]jD<5*]?D*?( LCm4m5/aP"(ݞNGWj̯%{k\bCUҠ>i%e^5=4/b0s̡}ra*Nf߈8* VϩZnJhX]ZB R)P5L~ řB[2oU\4_BŐLk]+Y٫~Y#4p6Փ5_#bΙ,.6TSD[wij5Tx:K׻so{4ǁK%"e8jş!TD8LsHoB%z5s4V_jk ZopVjs*G08 %v'0ШyCTO#o?~CC+XӠtpp-Cr{֐E>붙z_ARH'Ҽ>]\o5f> qӆ)n:b \WEJOǧ+)dBG(IDZ&Yi3hkFqA.5ZrU%P!Kܳ 4SH)8e\Eh$pI*N[::Eq`<. \_el[aػYZN݌T=~' cnoP<<[&Gxk1`H^Rk#*p.JNUfcW1+#p :wڠ"+Fثgnk@A'<0H4f " WjR00{W5YF:#e'E 49нLce=>X_ugwUZ{ϓw@ZOHМ6-i5@I8$5&$p8+ګbLmg@:~ ~Z~;=\"Tvu׸CCJsZ,DT${7๪$,PKSU]wvuMH (gxRnN3&yb6Wc&sE)NKUuAuauN;_ vZN5r&, -5jJ҈`BpTX dۣ3 AH%A% TŽ%n=<ںbjꛣ90OG[WmFunEAFAjKܬh,O+=PiHb^"5:@\z:v[7v">k^ko^ \16lWJ<<99F{8 ZU_bqk/m{m7[n nz*c۪m1Pk#n );*zUU[/K.si&a akHrV_P{62[&cmj~NBச.rP'7-&'vK}.x|˺9\3+r!NoBK͕& [K#KU ~d蹤{Dc6 e:tp73RiڼZDy "ʠ"w1./iTN'Q)m!БqiU/sO(Z5@Z7'#]2 h0?Iw0czrFyyI|R3~Ty$|V *z* zldcW/]U$t|.׿]%lG g蟛M 32Xu, CwJǞ5~,؍V*w/VNRw;Et i .a[VfఅVuԫZ!g>S12HZN-Glad-gkEY N%Ii"3>R 'Krf lwAj_ҏ5`hZh }5G|={& (Cg 7/BĶ~sKBw0$;N5;3wCiT|͵@1v`3o[X4F N̛˴|uJzȆmXw S %N܄C<:s# !SBVGZezJvݑxҞQqdK=OR4~?&uPnM[8ҿ6}~a4DЁϾÆ_8<*>/7#ͣFR6 Xm4= &4[Ο`0~ƺnHqS>~NWWACL^m4>)ScІІVR! 3h+ylPօh嘝 5csX2_"iʖKlZ?ث1=E g>q D~"o|LV6m9f B*lZ%n 3t5{1AEU9ULx áQS:a쩗Hǀgǻx<(i%4=`q^ޭ7k  n.f[w*u2#Pv9#!]Usҳ@+X´h`Z4px@*;FRځm N> ߵ0Ev*㸹56L.Y0qY  \B_zŢP*:9* ë4[1pS+ҩ{3[L^K: WQUiyV9[M}ou |fU"8yQc>;p`D74 LYG3p$6D5!:|7likyHiT\kX -5@$^kI$> %*t!}8b`K:@QsܰkN$79rA͡vۂA.>d(9W$UȻYZ$C4Jo `@4h7 2#Ն 1;$Z)47nbMx6r@"օ@f?2`*N*$`c|RK f7 >y: KPf9f1$԰k8Iph*vnoҨgd.VA]AGutLwYߕs].era ,o*KJ=>[fqQ|ǹԊOHFuV3ITVRd3E 1]g>sԑ W)R5 )j`.Lϩ R#P8(erxqqN/6 ZHv+YlQɜj5tK{tu8 nqvvz56m"AVqiz,3IWxk;sq{]=bm jlmpYn&q/ݑݛMOFk&K+6,Zob^tDJwi92x5. cެ)S(:&M5~J>-QmǗ&g~ aSe["7`Y (TQO›}wk-~]J)=[i5 P#,b{g#<)tTiտɘ]53xf˗˗zqL1EEJܨx=n 5!MZhPwgdSБyMgrogCql N!3 0Ko4\觥/:?(҈xq Bw1]睾b,)I) (V3.s=KjK0& CEg' ]oʗ:I}`JD(7aH5>S@D! ~0$>Jy"X&f8whbءkډf4:C'niQ0x?cD#ux!_*nN OJ-4F@kiDc DS /UV^F"jCM.4_B6UCx!MA =2JaՂ^ʒAr'ݴ(!Q%(8X,l_6nA c;>2RAp_衽R-!ڪ7ĠWЋC"x0k b)?+Ԓ"W0eWTf, ?,\Yv{֠ua,GmDE;xM} crϖJ[7F8*'ɘGQyN@ ٷA; PKyVS=< pip/_vendor/vendor.txt-PKv s Ot*`Ŧ䶹}cV4̇k3\q}Ν_7+h2 6+M-B QIɝ̘XrUػ~޷3˒}ۺ,<43Nw:1^ s]D 5D,;VOtO:kc>AWლU{F𧻓UuGO} [Ĭ luXCL^ڿdz/`8j|zPKyVSZ.$pip/_vendor/cachecontrol/__init__.pymA 0E9ŐuNP AP8m&LR7)?Z mK$܃KO$ Z2J=#p J#=:nr/$5o)w|S_b(%7&ڡ3'z`KQq+Cq{Tar͖~{>,Y8 (D-lQdnr_·XfLA̞,4 dƊ2I蝙̿`Fo ۳0f𭝧n%tu>E@N t'^@]Ka:;4o3- 'N܎9ЗǶ~*)DmF'D]EҮZMxьlGN|o޷7q 3Bf']и&]ǰ렧o4؉FXq~nqs7ErqLL[*1ӽzs|z’{XyI(B{9[+UebqlUBsɪVO~x Cj%e^uKrq BW<; #/(M-B78`y%.HS]W󂉂*xd߱r>bg<: * % S7jLaE2p 7:^Pߊ ]eSIۉX%k\sPUB̻9._v׷($dPuer+OT'WȺ2N8S%l5 (U2C(\Ba++ɳTϻ,s纁'fTj<)S.3Ti^vVNpb%Égyhdpa`slhʧ/2>wA-OONlD }t:+:LNYgF +h?~|zLjL^K]ZS3  );u%ˎc+%" >ن YfBUk{NSI18ofA߃T]>n_Y@9;dn l\!~ Xb0_R]/`2vF鬄VkHz$Ui0# ULv {ؐ(~ j]_L/ԛ[OX՛ԦR02)M{y?M]Q* WC06<}uL\`v=ffyLa nьCkLۨPE!GFEh;OI}($ nwO' zjI}V-`}?"V:WޞA 7s{0zl4>j2H^CuK͝(돚Rl?䭪zME(W+^?uZ@`E#]YޑW(Ѵ#OʰKZBfe}ue؍;K:v3`X: Cls7zWmA^Pcܴ!\/̞Q9][;d.}=Z ae\I[> @:3&#` G=T;Ֆ "`X1{{Xstt$.0B@ehYY."8Le! A.nYk<3,`&{ޅ(svp.[ 8R(eG]KqƢ08Ntԫ/0 ꜌8l9pnËv8^:áLBo'0Vs+uJYla{ע"%;dh B g6`L"(PnGF| nt*Ռ2ޗpJ1DPXRs{/),M&7ma,C#ΐyGN;VLI&̌Ou&ٳ0`nYnG1msy8i1|N ^/kba R/Vxj׽ubeFű݇+Gq=#TcɁBTKT3Ё sCLމ 8'ʃ]>iO^ ~b͈۶pU2pӧr BVQd0Y6\2 HﴱoLI _eo1?vcJW+|gp?O@>x4om0:ƏV0:Out78ޱ :3t{giMvJ뎞j-6 QuZXP[{v/em?b?Űg#5Y:U!HjKdV&dMIrJ3A݁˻AD4RJ<ԍ%Y=>+fk$o-A݇U#V`_=h+>m8KC -<ʀ3GZJE;+0EW>i#]\l@Aݫ趡qkZ M>;WEGqG`|}Ծ\Hhχ=3i9.CIw:XA JR}@v-~n[g9ʪ?>ha=ڀai jf8j!z9swsuTؒ$HUSTU)5#H{Iw|,3߳EFEQDUn]\%)\?5ne{G+b3GQ`ڻ.E͈3*`*`Df3H: gf0Vs:G PCC(PD૲\EnE3I*M ΨHU?@ b>4Τ\E=T8I^(K(@sWh_On'y'!8QpY;hv s7v*Tj萵xc.dLD1""2 9QetU%۟ {A?a8erf0Ba*lY{C3M쑘k0q3V9( iYy9Z3W &"%h.)aE9a'4o }E:{4'&;D./ Υļ=W8S6V ˇK]DzNj)4馉8={/ҌC;ub"iVM{ẆǗzklNl#(Vge#qJ}Uo8T TҕyꜮIcg* µz%y*TJqM3!-ŒwWMFyuce*D瑐Z,yh6 o*8:h& A1)4)l޶"אE%eѽZ=N'h{>iZ|~Uڅ[cŠZ8PFo!l"8p5[h,*#H Bj?E/9ͷ06X%j[Q(q;V@\#[Mq%>Wk恅4QFqͻV^%aGiRr}Lq!ŲI-2g^{88Ƚf|5i&ߗJW T.Yd&yI{r2p>wjzC0aWK`^_E󉝴YU'Ӂc?áxuж8u,a e۠Tp-&ZgNim0C_EV1qnx$' T'+px+!J=}

^i0ẑ6G0,'ŴAW+&_^Aavf++^Jz;; D 80QJh\1mBCş.Y"@ 叶߫C$>C iI+^q̶E:oH@!%& (CN< J\QTg^S,^stS:le+L,eCL!v7!QHMvM cZd1YE&vbdmաK63GhB`&06jFvґb*|hnyV鴐JaVҳԧV\<K&iH>D6yk`3׃[" cl̹Z-X26\[Fؙz!b_ t-6j; vU1d+B*o*re5Eo-^DD.=*>RU]6d&XST8KC5Bz(f _%;-e(/ɤpmE1m,^QF!#Hky4.s=i w ]&kRHkUJ-$̷TxE#/zTބz `>e^+$IgB=} ܅%{qevnB3v۳(p͂%ξ,)ayNM5HȟUcCMӫ^ǰ;@#@zP:YCxYr?fUyd^mK!$gRVU#۬;ȣ8! PAx^$6Jsj$ټeYF%Vpa4‡!ԨXq&g2q7ɡ$Yߋ0Lz*ݼ3 l2ݥ, ^GS,}Q;&gFV`b VIi7b޾˵a^Ul#R!,ʝ.sۼb_*,U#j`,s.,vpA$ Hq[ ]kZ5ŔfH vL겆 4yj8ꂒߪ] ʨ7cxWUlLd^7SʁkCV7j;҈J }o! MC^W`'X4T.[)vsIgc[<~j_ޮ'Rmn/UEEw/Q, S!zT +@qN[GB⡰6a$ ,z (<@Z;y5xe!xe{ћ^.SwQF>qX i.~lǖ-|8 NM\Um5t,IMfTݯ YfEtf<'0U*iӡ)ŗW<:`%l;`4X |Cgn,{{2UDujS(/Ƙd.1;Pjڼz΢]s삱 oX:mٶr=vNZ jIgJIh@b7e/ PnkæyH}^S6զ/6JD d`ԩVJ`5Wɘ1VX, < SjCݼ^u^_[;NQj>CzQ $yb%TY\fy0Aw} *T"JJm4R<٦зnJ( ǴWRKbAI V,`6PkithMfDkWsa1 k\YaRaə?CզLhK1䲨C9 ==|/hJ5[t3VJfe1 GsS $=;b|xCncA? kIa.Zp4'wx/ DX#Z1UJZ>,{<j4ߞI[%Aоpz+qw0`>)'3id1g4]̦GL>Y\4p2g/r1^*xb9c"ȶ_3TFwr6dA6=[1]gQ>tP$e2ƶk؛N]Mh"ևzxDFaMIQ6:[kV Q֞dS]uz’]& >swaL{T;ܢ>˗h9Fs^ct lGA˥Y.[UqpZ/ڴ+Ns1#BWj__ڱ_,y}bS.(u}e5]zB Mxt|PKyVS )Ӳ6#pip/_vendor/chardet/hebrewprober.py[s۸?XJkkUqDs챝f2y3$#H+_gwh'wy=ӞM.x.Ƨg3ڃu0HISuF%V]ITYh 7B֔*6ʼPT4U7֪cMhba4"Vg^1kxPI:/Re7"ϜPPL ]lHWeYc?M^Hg0qb<.?/8mQ.M^e&ԅT3) u5M/d(mՊEsb1sפҟI&cz1<9}tIx+x7*5 sةFX%]@!ΤFU̪ X>_}S'qts3} kiR\ CBg{_>:Q#u=~ݨ7WgCx1^Ť.%*2&:I `0B?92XiDjlٜŖF?duw};ƾ}8}4쫗'X&di}&%-a񋓓'J}œ~wY/eUO!=G!tn*8[@ol~[9qnlvJ醔ϳ?!3WznOSZ-LJY":Vʹ0kKevtR.[}Bt!gT |GnU+bCS^ ~?#+ν$x\$jh +:,oZ[Y~W~3CYɛIr胊rd=Է er#sfؕx2|:9&c*؜%M*<T|.BP)dx<8sJ6_LlDcH^ R_&ؕpљD ?8DTx~Ak\IåeK3p#3YGNX-ԔY$kj(Q_>UP%YV13c^5$Ηx7 R6RdǼtO-O i_btZBJ+2J5ʹ'/Pߩ4XJlzC%"$4kVoony,Cj1>rB-UZά% na&Qf5o('U0%jS=Haa+AFlDy@0T#٭q%BUŠ?^䩑מ5Qxumu|hop8T>S$B2ܝesbcQ伀\X6W΋hsi]~vl>9ry3UHKN oykI ®Rqhf]@8 /ŵ(#1~D-ju~wA8R'ŒN9Z RFP uZ=/XSBk#e69F"#G;6zHk[5Hl8QԖZqr;+@/2QإzPh%=je)8FcNp4!sȥkVI+IW}gUPq &Pe(jRt/ a%rp C} v!SKxbhC8-A`43SB$ru%inc:@Gpőwp/\)"B &/ ajk7ؚgԾ mΚ U7 :V+( @U`C;@VP %#]ғ%dڗBfr56g#DN#dV r>CHw oywm S 6RxC"RQIΑCi>(Hb@-x$f݌"T=CsW# 7eEN\wl>;%SqQ"T|[RJ_*-?M2AW,A=G% փx܊p] z%u8Cgk9(a* cT(R#NRf6RIjNzE< @d l{;Qd.oOYmPD5kmo$gDUO G5-$ 5w*Ilvp<r3r}!H쿩y47wJ˭/hHj45nӵPQɭ`:PK h*mFMŤBf,z[+m2ޑO'EoF߅&` 5 G|XdU]h2m\,RQcyDb*%lrȔΠbح0Ն4cQ$_z^!6SWYh$AUZɰ>, E*yP3&@UB>2+^նѫ=B9T'PiM'b'_F:j4?\\O˳KyK&X:0p:;^ɳ•ៃw#e6x=K %Z02= Zk\$ DCݹ|09ѧkGɑ&6O?%H҅OEۻ䔄~mC22͂}˫g!H'Ʒ 77g'Kz4z7>]֊e[̸dX8jSgS<޻t/*|&(OzUaL Ryfg%5g M kɃm}K߭fey6#I H:/I9oX[7 bPK&]"(zR@M,AL @=w.MSmCu,5M:knhC=ls9ZUߣ%ҢVuZC!冭Ċ7Qp<>3ͺ~H "9v'Xt}K,ϞdM\Puguxˣa |u(;PG #nE _A[,xQT C\T&)w'.ԕJS.Lgr\6@>'pq]x?]и#UX鞆˨ PΈ}T?B3U/uf 4Ծu0MZȻWyQKinSxH9/ˊ֓x>I7CrtJLʊ׭PlP^hkivXc BC挻 ܊~\8a4`]fTtvO{~gWf#)o۶ ޿N|ACWl71rTh 3ݍw'Ĭv<:!~ͤP~xE,0w_>N^3TJ=I}_ν  wKK3t~hRkqB\'r1zV]?8zޓTBE| z }1wRjj:5d/HNW.wfsl+dYv'I& u4bSjVW|{vwvz7) Ԙ iL= :P~+wS~vchUR1y&ޗ$M탺4l5Md7wXjpT2cjy_;awz%|̠9.!j4oEýAphĂ9j3+l= TqMXrS ˂qZ͔n?hcXo~Csbou|~Ca|FG tҟ}&x"J+yvƔ7te1,`u=-oiCR/Oi. ܒ&PKyVS9a0dpip/_vendor/chardet/jisfreq.py_ǑS$ ,`-MED]cdC,iI "[VcZݜO?;Y\/` T˛YU'#NO>/yo?'?_onrswu[{]n˟*?7WOSycw7O7wP*O2f7Waoû}ȁw7WOoˏ4?^ꁱ}KT~֚9į䷏_'y7_w7y|V}wTpY<ߕ˛pqTCO|Ǐso/__?杖?\]?|ۛ77w걼ǟ>S_q#)_ߕwj爗%7WO;:~7j<|NߟmӰ?9`>V9Bˋ˳o\˗Ͼyos_sH7K-TWwOs?=?gg_?s_xWW߾,w^~_?{Yw߾zy)?N1kɷOW77x|\77r[݇57}BWn~*wOo7D?nLп4]m.O9W'~gp3JU~WGEʧr# ǟro>&FܾOpϗ}Nrn_޽lOo~]]$Mջa_}4msA&1CϹ_Ygr|>Ʊj~jaG~?~GW#'GZ5L5`d8Xi~oyÚIǾw#n);;㷳_~m.]2yq?g_^|_|/r`ꁹN,۷2^C#sUi&RiNz[E~K;JdfT|A9iys 47mۡ9;ya9n~TF42WLڎ\X<Ѹȯ!בS3m 5k-8;S󑼯%y_||N3|ҚȟzƭNP5ysMkvkܯHbuʆ]\\\ȢǢG.h17tA3i431R5݌nF7=n9tw' Aa6pz=Apø=͂AϠg3\ңңңdsFF\\27777777.ƲN^+׍ =;=;=;====iBaQcuv9y8c^Ky3rX ĵ 6[ Jsc1"׸^/-cX9 ؕ7XV.׃-ٮ9 lo wg`jczӺ1FeG 'lĺ533+I\0ǀ,L"ןн16Bvs__2`m }ڻaliCM^xF_8N<̅;Gt<ݷ3:QD0l B5ˆ Yl:P&/t=b;=:%l/%+M<P1"0~FHn!keLmL(v VQYz8ko8`ah8`Y&f~:yk6 8`c'nqccukhq@fCOCװ z =58 (u#h4K$09 &,1@טƜgC@[-e.q1c<x>d<.\L-d(P @1b08q֓zVz 0`$H#F`Բ׭'/il V`$H#F7|gC׭7 ]WErf4Ru6AxS۞uxbYVkb(PĨe#73 $H' 6i(VX"\0FiͶ;#yI~'@ƚ =df'P7fLzT ML~Fi`z&/+ 4V#l Fi`F.6zVfFi`F X40Hk{f@OJl50H# dõH#lFZ6% 4Jl50H# 40H#40bKXi` *zF`40H# :\7xI+tұ'5pCjH@MjJS|NxeA]wK:0v0H#eõH#t0Hn ^J+tI#t0H#XlF:`, /`V:Ft0H#|SXV:X`cO:`F:`F:`~ ^J+% q.zip[м=7"&RH#3ZV:X`2q4 IC02qaF nm # 02# 02# 02xゕVXؓF`dFA=H02#=.dVX# 02# 02#{\x+ 2' #zF`dF`dM^ VXؓF`d손`C " BiF: ^ = 02#L02#hD4N3hd V&Xؓ F&`d F&`!.z F%!gCO2'iQ F&`d F&`d F%f V&X`ebO&!Ά`d F&`d F&K&XAB̆ؓ F&`dl`d F&K&XAh('`d F&`d F< ^2+L#L02#H'u^7,+ {# ,0# ,0#9dVXYTl FK4o0ob y9dVXYؓF'Y`dFY`dF%VXY`eaOY`dl FY`dFYKXY`e=ARΆ`dFY`dFY`ds% ,ž,0# ,0#)떼$?8MTFiͤgbeCye8=FOtz:=k9=NGcp< z=AϠg3YYYVGGGG%x[ٸVGGGG%iΎӳӳӳӳssssspAAAAAK,wsssssssssqEEEEEub== 2dGhZ9#guhEd:tGdѺ$N"Hs™ O-;DKg7%:N =-䋊EV= _a!60p Hvd <9zTw/ n1>NZ 1%3/qϢ2$kFqxLʌH.+IBә'"3c !l!4Q4n8*jkA`3Q*èP.s@qse y7gh%2\f4,w@iH 2Upp݂X#8Rnkqp^F2@*t$14N\bN,XQGXsCEӸKCa6Tv_V胎Dlh= K iB$W07Tr '7N}Ͱ0\*tH&w'|y9y97EёW#zv` 1c]]^+ۼΐnq:4yGA@eŠ.։\tߚq#[ &9Fn*t =,=ȯz8đq;yBnWvpF4BNFэPKC++ znNp2Ď55B$ uFfՕp;UN"dyGq}'ZTC٦otj"dl&EӕN! %hJ 0nԐ7)AIw%R}qrJh42m+ǼvBP. -\a=1:xah%[pj  - arXF2eTDh3;v1l[V ̑Y-Ju 8W࢐q%fFq'cY25_7-Vw -7C ½-7Ʌ+l?opbs~ y E-'͘Cnf|0a79`Ivj7 l!/R!r8@!١q8@4ج.!Yg'd D,5\̑k2>=9K"| I-c qu␐QcVVFnxqXl!Us!)DhNH:BA42Fl"5~NK U;pYZNAvQS7!8c\KQMX1Q/X~ Q1T{&%M s͑m-71RN+IBJA> ]ޝucVq-\bQ= ›6V =$2e 8;u(F֯ Ji\x !,uAŊvd~MzWUp!k P6h bRE956T Y{"VŇhAJAS|)G7yIED2)$T I:E&/qY,RFocP02[:HKZd*0Nz}I~ƒU @0728I%P8QS1 Yv[]9aZܦt+LD / c+ V¤3h UH7!8u8%I.d_( łFPP+(<7w+OO22Pp\E:l\6)z Y ~?!Rjϋ7]\fPSX(] YRRz3&ԡ:en1uξpؕHLlWL {nF*PxOm'|'rCt%WSD0M!ψg  22:FeJ+|ˍvԽ~ M,Y'i]JGX2*d1.#JuNzNTf@VJ)RDKc ukصhKT-`I*si@(Z3Uk}L>oQS65/#RlT>$ɚo݈-"4*JySզLu̱zcC'8faKՂ 2ycKJ:u%D 䧸] l1geN#T`V:u&CiLr2rDE&P8xGH~ٔAjaP̡CbD:C)E9o8D>ԽHer~0fAeHYXe*#Sf/u&0WN-$ZFxU㸔HQ<q v*uNݫ VD0Q9H6)6dnu;W6E{ݨ{-DiQ|&ZvE0&D?<r^ ue&_NYY2R4w;#g [H_; ϸ{*/R]R$7%U{ gL)S R_ ѕ2T*K]G ~_ꝴw=mPd+]x"!Y`;㆐-@G4$R} &vԽgQt%LWȪ $“*uH!ߋKe_)}h0:-vU{ CVdME3¿Rɔ~WO.*gd Y%&PZoFQ3Tq^~l)^62@W(*WR^yTPj4X(Q^j:8sl+"= rmRR4  ȯ)S&"eIK{W$PCzX#B'k \!*iǹ{-ʿq֖H"v C PufUG_N8`iש{u%)Lp*K黢*aB0rR :b$4([w{*HkDTĶўի@ Bwu5XQ/ՕIe,DG<\wWǮM"3b@EoxګM5z Z.F% ;qDH\?AӸr}Dm:>,DW_;ɶJHh0FRI<*=+Uī`)(ګ{\^MQbrl ^KzJSav F8Hb*p$վ'BI٩ӵ$XqM8^2RW,k *=!v\uAM*S@~%@E7To@7ĭ8**}^qPKyVSy%jNLpip/_vendor/chardet/jpcntx.py\mSHί8J/{󲳱 1p8:DָXIm[oOeLč Rde>dVJٳgձObKg;mu[Z5RTxo^ݦEߴbʺs`]O몯TrܗhS?+n^ܗlت;oZE ,.eї qhFOUzG5ժG{B~jpm'.ˮl? f}h?j}Vwb_( {7_5[RպiQkmٖeN<61/jі+EmZYTG}hS/r}uዳ7U)Iŋ.[ͺίyYw(:qu+ԉ "N5wy=DzHFnk5u=%X+ky0ZBTvt>BM)6]ܬ#5j+~>~yZ?^^]NUVgHݽBUE?*/^?:~?9>;'P\^^yux).\^_qUPV攒jȻFirQE*vJB2D\ln[^ՅnH<ŽBȺjo@??D.UV&ROd4m$~h^7}}ƉLc)ě+ud?q|3I-B$Uъצj5ZM((ibR-[壵ժ7e=*ۦ}>9R#j-bwg7+%cr/ML}KIͷT}Ԝr ܌$HƎdNY}YlL [[ eۮ#7ɍƠ/h C2[[;N51IvܼQk Jim9i^9tt c1Gr7Cq!YJ1FIPb5Ia^t런"Mٟv/Fac-a8K`RLO~27U,)4J$ӒS T?G2}L ?aBU'K-:Iissy4"~#SImC04'uL+Dz28+q>CK䄏t@ɸFIGG`L"H< .XC$( ^UE0QQg5y?fm0(Y'4]=sӅMNqT}ۆ;=4JY$Bd<A@t%Q#-D\QI<!RLےc+bmB%̉Y>Ǿ%PmesS zɈB(#sy] )P= >ز!_&^E29Q;tG6iG)<'{@I­]w({B)%%$C,Foȯ3q)lǿ},6'A#];2QP( dLo1Me`Ror&0{14ny/̂3Ǔ|zx8!y% +#$uҘ:gPN"mR9ydJ\anDTKzfJGa _|E#xiX<{%>M J? fERdU5xt8x'q,@$.}FIOaL tCCMD~8Ottd)5 (e8!cKFIs($2\"Rtpv=t8Τ7Nӯ*@"k|ǍK#TXHy3-9$ʆCVFci \O)bSn Q)A3.:@I2JqҰ3`x~K+ḋIPsA  $~h/y-s"ANJ[1`T8 !Q óؑ~xF&T2̣,">4fQ8<~qw´ ]`Lԟ&c,.(;"`xyJ1 B=<1">Shie s[tWAL#5Jfrx127åEE]izF|4M08B}](OgOF-Xp(qq;jjxt,#ƌ=[drɩB qq[&sta+{=+% |R^z¯$]pFhquBR Xv`TAGFeJ9;צ.ikqv qx3)nyqz~\ŠsΓ sWkdC?p%F?̐F%dD;yx-4QPƣញSxĠ&p!ؘ#, g\b96|]t/+snu~n{[9zȾ4߼x9<~5~yy|suVƱ9ιgTَ9(b6ꪟvrtob=k˵t:1늻u9}.˅c}gyYn&MlP&g=Z=5B<='C}g!F1o6ʬmG+V kw4DU Oh]^=1@Z q؛盶wlK$f;5fRfmU -J∍P mꇺy+O ~>vϴlIK-~Qr޷ǪtF\&>`\zʤZvSF^Ph FQ/%zc^,kH$, z"Y׷~ufT ,Ca-M[0ɔ nɔX~X\DfnJG)J0O5+;37fw N4$$5FòW}0L bm^b6^GIe*@K|4yV֯40~hP]$1~g4JOw>SENv:wŇRmK/*Ѭ⾪o(\k$F^um>lM49/? {Oxo]Tmƙ"#l-{yJHձ}RǶyɓQB%S44-{'V=w-c*dC(OD9dM["ɻw:xz?m0oʺܮf/A65M3lhVjp82_6;j**{z+6C~,u? =o)'Ӧ)rhe{ù`c`s0ԑ0>M/#ee^xz5In'Íb݉1##ށH,c5.4zyzr=S}eOEj{< 6en?3iLRT r1=p(_˪u>Vy8~؍Zoߜ?zO?9 ɐw(O?k<&MzL0"a1[+J cٞrYNҩ4^-BIUG xXbΔcIo~r{cp'ǟr }ggERSi56g< ϝPKyVSP㚶)pip/_vendor/chardet/langbulgarianmodel.py]kyb I(Q!0&ő Bia<Ř`s30jLo~tyQښ~Ϝ=pfk+k7 mlݽpuc6N/83koO! wmnll\tpmy}w6N5mln6VNooV7 ?>>^_.,ğha_ơ{kܾjkv 7~n=pdЁ#,>z͇nFƞ KξFs`184S 6DO[~^4u9k:yM:J:%ֺgZuF֚].U#_cPΪdɛ f넍ɯ̮7 fW[y݄a0=  = 7GlX6XZ]KGḫk T~&ݠ߱.X-7" 5=~MAd{lL"Y'3 ?`vՏ1T>1@sgհ|dub1㹮ńN9l5dI,p1Fk䍾7Z#o.Fh"o)"o>}y$o)"o 4EހS yN7yN7I:I@S xA> t#o)\p o[ ک;Q7bS7ZS 8E$Eh]n]Ѻuupn.F݀S 8E݀Sԍ,E{8I@S 8E݀nQ8E݀Sʧnn4.Db\:I@S En.>ۉVz>î;Pݘu.eԍ>[nTwۢ:Eݸuu!'yP >FT7:)QK!՝OEub[f8Qݭ|ƕpQe9&˄Ө;iXT0A'Sn F'v[ۉaQ7u[G1궸wxrn'ԍ,Euq)|靺q NU7:)EćmnS *-B"I#uP.;?PDunu[PbbN>nŨ:bXna"S2vb8Q -)- &躄v`Rvڋnu3u)-[uT%u)e^wubJ.SZT n uq8偖Ңc|Ĕ W1.STu3sGݘz^e^h.Bh=+-8pRuJn=mna˩nc0NULDuW떩nYL)e-{1HubJu}0x@ &W0uTnu3 u`]0샺&xy2ꞁa]n|uh1'zOYeIJU0\N[ KMi1L0<҉a"Svb8)=z. e;_u[*InJI-8Tn5L|0xݲ:+Lc.uV2m1L,1Gn lW][r,BNV1LD݌wvpF'S\=궨n 'ۧDu˨;_ubJ]ݔPuW~q,8P1 j]Od-3L|nw-.)&.ɺnFxALYyκQ݌Iv&RFݲ-[=ңvAywQ-n{~0\P7r99QFŶXۢe x+L%GFxg$z89]nٖ|N/cKRguuO471eu KL)naSSu;)eI{b|SZT0QEucJ^,d$0+Ĕ2dԍֳ?IL0~L9u{wt@I>u[nenKLiQ>;41%{ws\vb-=@'Eu[ 1 F2) {DuSĢؒ#n'uQ)X*ĝYS:1LPEun-n^a0<20"VTcbJFxYL9 oP,-1?-ےSZ[SZ;?_hY׍.,̏)-^7)jAu KL cboc#|unJ\ -ڒ3W^h]wmɑ&-x2 u=:UPLu ,ԍ o)+C"] ޭ c0a^뮎vub RBݵu u.qu&>cʎY͞ uvbXp&7Lu{3LPwU0A'^TYa&{ΨkN]KW.[$0:۷n\޼PyKj携-[F݀gO݀k*Sf ݡzfq x0>8܀S 8܀S 8܀}07.f3%wpEtwuPEt| ݲӧ,[tT>u[0K$ *up x!eO}PKnn]R3w6̝obNHt[[$--;.q eK- Fs+ܡ )mE.+BtS)/Z)ç`F/Z@vk`nv~IMNݠB~Eubun-:[-!e[vn6m']3w5۲_Hiُ# )-[)Rzcn_RR's-U%5u u[Dw>umK{xEhQh}ENvBJ_"{`/~I;_RSIz\_2?{~,tr⫓W&qDܖ8anvm%*2w'/7s㗘vZt u[䇔.֗Ȏ)e-myCdi/͂u^)3Y^ټ{K,g@ݸ+;- //]/مq%궨n't uUlgeԪ,u[/ۋaR񥁢KDԝ!ǁPEuP7:IQ7Z{o^gRgpIMݵu~JiY`bQ6{-z&u/ٔK*xjN:qbuH)-zVJےRZD,)}2lr8gZseǙ%>4K'0q4ԢnQH)[_"%h.?AH9K ",ꦗR񮙻fyg]y| 3J0EtW覃]33r$|WF+ktx>5s=-.2[|P-Α3`ޱGHYSwM xn3JFJ'X%GFd7Nh Kkw((=3P0h!ՍnKF);3;d)-ǗXTW6 V5u_mQ%. xǗ8X^ou˖nqܫWKxꮩʤ nI"'uVNyݲ^A^{ YE5u}eREu0L,1 uSAu.0LdQY.睺Ѹ&e-oQݒUDu˨ۧabQ^vk+-1E#u[nNQ7[)U}nabQ2vrT$0]LS=7 ^Uqѳ^`GŁNu[ZvX0n˺n'cbJ5u=7 ZFuv˨nSzJ&h\Y-nIP7뾦熺-;0PWꖝ=%) |`_Ee[vEuV81L, nO}kMsCb#00Q  u{{A-OY[8вR}Rwǜ>V5u9u3LN0\0:I@&@}&goXpaB?p5wܝ k5wo_`e]+kɻVct`X^Ynó+[Zc9XY[Y; ώeln N o86\p<[NX_m\qf`vmpK{b:[oܷQ]lco#k͸sinX^u[]:ҍ[Y:ǖn;tM7kop/f3`8nM­nOLN^7 Et hSElM U]' h' 0dG9g`,>G~| -.ncoA`j]3ixŤAj]3TN[3[*K^?WK¿K~o)\!q5m0~G=ULT#^cb5|mT$U0.4;`jfO ^2o5]M2hhw i i@ 0\HWMFWZ2Uڌ &ñL`\P7mu١Ц2dOf݄+ ѿfCBW T\RiqU:2I^'PtAQNh\!RJ^RT|>iPI3{7佄=GzH}d&9BBwP~'P~ γt=6wCdAdV$,yI dM?hС?TMJc{U6x1A~*oR>@}{5MkIj4CFTNVMS9=Zu4M4ZyTyC*|hP}BOH@i> >͇V$UާЪ$4ZTyC*|hi>J M4ZrVBS9͇V, *M提쀦C0Ua2уd4%'c]$X܂0?U-Jm!|`Uh '܆@I L8>'*[( *4dJ܄- ʓ21(?%X(g)BUΊ{и6J(C,qmq@i6zxиv `fA W"qmmK0:/z(ƘBӆnO W*ŧF1:jçAh\[=I qm6"'7P6rC`&* \M@wUQɿ#8..%Tݕ4Cp\]7mJu0@-W.p.#I~LVB 9 Cm7H&ԟʖW|A%rPKj)YP%\[;4HO JflPd` Jj%7&7F Ћcj%"JzE \c1)P |*k Y9N_ 9¡7ݤ BnVfOC,=K~Ps+y:t VZ@? j%BHK?1/DD5a_!qL/·tSύʺ>>^_^\himpzO^ΞlUouvTՍgVO 6Wk;I]h}i}sytz]i5"M߇e{vhҦ 7wouzp4::8b[Ý6Xݸ{pb8 /_FD^^^ވތފ~&mvNn^~AaQqIiYyEeUuMm]/?2~tOiڅ;n=r;/|ud#:2^G&`ԑȤLDud2G "lf<^!@/5NY /U3Bw i-|=%'K|puV׈b-+p]h;"a|d-"X 0 a0f!WiE_2`R=*ѣa![-^2VSv4g.̢|\f-:.Wst+B׾P_s#tm 0F  GruA1N* s<}EޓڧLDR$\?PDI/Kt5&œM>d/7N<l^dP.#0)QjeCB+ _x(R%<6E9 KKKF黓($cK_ ='= te7: dMJd&d&iY5٬Ig!Ig!I)L֤Lִ&d&d&d&d&d&d&d&d&d&d&d&d&d&d&%rYR9٬IlִmIɜl?PM֤tN6kR:'5&k3Y9IL֤Wd5i}ɚZLb-P֤M&kҁH&kR&5iMɚdM:I@ʚtɚdMJd&%c2YS5i ɚmI$i{UGR֤Lִ$(eMZd&%]Y.٬%ɚlfMJ~, @[Y[^okc$/)brQ0uR@PKyVS{%pip/_vendor/chardet/langgreekmodel.pyku`SK"@Ԗŵ.d׽a(-,^[.%KٺȎ:J}Kl;{g_]OR '9I!9־ }{}~beܠ{*g+ {tpp[۹Wýgu+hippVzQd Itt.-P_`7]+Gz_ſ+I'sc;G~d~doHLe ֚9.O@gv3Lf|X]5k5X}ƃ7l̮"b`,3> Xʺ`C1@7OY$"]ޣ#Y Qn ~X0ZOar}8,aS ?aZKpy |0aÐ![?EqXKhqa\^ ]0z.;a#K@N}:902l~87:0:#W榄pv~X8<0/sXcQ/!ӡu> ~XÂ1޶^bkbzl?5%ʹ%I6.saḰ>a+?fp̼%26#r燅D.3/Q {29\>]v^?a-?pv^Vvt20CrX a\ ^.pa]F~x;a[F]#٧5ƀ2zC^r>?,% o5|_;/Q^5: aȋa yB8, a!/ae<1sغzaD8ja9~X9~X^~?֋ [0T39rZ/>y η~Kx{Ba>΁Ð8^9~XK~֊b֭KKd8W/1 ^BNq8>;!xcQ鄼尞6K.pOֻ<C.t%8\f^? u;%0)Ðqؘ󇝘laa9pXC.Ðwb^B06rz 8%rq@.}͐^B0Z8 9aȳN\?VvÖÖ98,KukZE8pX3pvp.8R-Î0]pXÐcD%8>83KuklMZ?l99\."/!͌vzs8zF|~)Rݼ9lLZ‰S9lԇ0dCÐKaz.lmŰrE ٥CiaalvζÖ&sVK?2M'pX)w l6Ð:'0]!ֲ%VKdo3~i@Y7l1l*MJ e% 8+!`8tZnX/+Qf?B$>$Ó>}!ݰ#ZnXfMxAhvR"eB0W+AY JXa!+پ20-0inY[ a~f_fz/K+Y}rL;,Ofv--#yd%pÅeapa'8b+vrTbJ֊<,) %k%J@i'KIJv8ޥch9l9l*hF0Z'9-=Zkz北X[/KLg,!00z`j9l9l*ptE%0)8 EB^:>Zc[[a5_՚B$UVD~]"=kiaÐK?LǺ6ÐgW=, 0=ڧK~LJKGÖ;B^B%}"K~X^Ǐq\p,zX^XƞDae"QD^D,vnh&b=>G!9 h";50VtASU;vj10vnmi@Ze0w!?pƖxF=[݉~}"7 ^HbO;0VtG)ODt bN+ُ" ҾmMBD a4SNB iD}I, Q͍}A iGr455Qo5kjn0/ȗکSPZg|"A"!5a@hQm59F_0VXVH j Y8FojO;$񴢁;GbO#jT5CG(WIT!EtDR#d!kh@bR35'O_IUk.s(sш>~0&/ꔜͨ-TԋN]4RDuU#2>r#R /#HIF.5ii$7K:s}o =$ >Ih鵄& ^BFU6M[ۉթW3םl͖kr=[N,]J#?Gz2HOLIO_俓NB`ļ^ώKF95ϞV-gϪ6ԥ.I1"5"9Lät5:N|d~nM[$s6km" 4Y,&jͿ7 ʤ44TL>0j50V;q0.U1R,TqR7z4 d]|T/RV񃇎T+'{GBGG+*A:yy=womz퟽=vuxP:Ag0\ݵ?J;8,ozcFF]^vQvmq7}鮟:H#,H_յsh9#cS3/_ ^^ ^ ^^ ^ ^ ^  >> > ~68$]iYyEeUu2:~hGƏ,\,-qxڝ{vuؽa:^{;fԥ9hJyyhIԪՠ$SI?H:V~N6 y~n=9ݞTtSmZOENQOFަ'#o|ԓi>4dmz26͇M%#o|x4^26͇KEN"R|x?RaRʼiS*jL|h{dS#|ŰJX^W+s;bwG7;r]Yko$=4o`Wc}wEpƯC 1i/PKyVS؁&pip/_vendor/chardet/langhebrewmodel.pyٗy節$#9"ؙLq脋CJa I" K&ag|N^~_Fݯ?t)(h`j^$^ UuƑGە{Ûʑѯ\ov{7NTv׏r}пUn[6cnvΆh=oDJv0\N:؊NF 7'*tQD\h^D\ntv+gϜt.<~3*kJSOU*G*T 5XT?d2#I3+Lf}|g LJx!p)5Y{6 kb^Ulz~"fS3[2;ee>Ƶ]4Ѻ̆<!Olglf3⚙-rN3{Y}3M,ϖp;VKNll$gg#>[xfNfC.ٸ?.0[btEفgϞF-<=S3{}61uJM&]cv漴sZl$gF f{=R=='b+]0<{zfgٞǞsF$0$̞>>3[}ٞ٪lZ7hWϒkH֍xf{fll8>A2Y]lяggd!|61~BfS{ٔg3gScZ?l33ʒgkx홍NJ֯J>[ l/ۡvb>4lCְ y#P5lCְ Y6qlɰ>Ʊ u"lھY6"ՠD:+G}%}|h,Xxmhk/ qj.X6䩠]mmK='hK@;}@hC6@!dz~Ю"1xh&CІzRmІhжG{ᡭ&CCІE*Mh hy?AmІ:m!kІAD6d ڐǡ U6L4"Z6d ڐ'6ZOm֠ yP5hC6rCN'yAN[UiV8pچ#VN}Lﴝ)^_j^*hN{K І40)$2hmbvηep~D%(!t_<\W^=>fLt22mfիG\9m[j9mFmƄE.E.E.^[R;̥vKm᩽xԆZ5gޚ5ڵfFmK-fJ|-,-r-!Y@jHHl6vɩ]"!PMz+;Qi@]4jCv̉qBdvE6!ɧOvvAm 2ymCBv ˔8XʑHftۋ6+nvkhS +J?Dw;JW:^w2*:As#:~)zLν[ۻkΰ=G;iV_v֯6(rNLѩ~o8HM)r-V'V|W.gN^:se٧.?sqg.U*{ё#S,ep\\J5%庒rCqָRr˸'ȚRqZе"qN߹I("qZס)hq1^1'T`jF=V`9p^mZ@V/F?ZGU^U_MU*LXg &&b>! -%D^!~"IyE CL+Rp\k3gr=`"N`"zDF8{5&MwAy[o0'mDu>G' 9Z=Cs@sĤF{=-)n'%4USВrZxZRM[}Mi hI-H{ZRJ[wZRI5Ҿ M:(!J_ ' ĤAQ8- ВJZJ[CRISͷIOSI)H-)]P 4YIYҗALJihҧ %9DiU_&P%D~D~] d d߆Ao &յ$TTM )+LIAM5=t >o('H}Mzp]R&UHL*"Q-2II0%ObRRCMIԤtĤxPT 6P fS/! L&D,SrBڢ}$NNrRg -2k4Xo,OW .$Lᬸ iGKyZfS/3}5r>E@s9~# r:&=Gd9HCTOVj҅5ZhBrzC'# F_%YLTO%& n7iHԴJ27]ҡIN9t61?, ~IS"q|?&YYE\WS9[3eP sQ'꯳N)[E5?'Y^(mh8jdB:KRe8E_BzZ!ML ;hiC{@,m ʠ WHSUFN\! FPL巡t3U5߆A:}:+CihwntL7 ñt Ir:yW$KTU}ePT)itdY!ng${f*dY"L_ɲFx$5b,k0MMj: M=ifRIMx&&5@!WPHb3jj)T}!ۏJzuQo!*)E,) R ꛤJķHLoJ}Ԥ..}3fK, ң;1'U19*J}4T ?!1)Pz$~ Y  WwPEԑ<#o0#Jn|3*kލa$|3z\;p׹6wvVGOJ-:I_gAtzG>`Vg{Mɧ:[r0T瞺hv;ގaZpݪyz>εnw}+ klDYgkfg#%____7~5~-~=~#~3~+~;~'^n^g=PKyVSvb)pip/_vendor/chardet/langhungarianmodel.pymU律X`U;OHJ2ҎW3H"̑yȁ@|B8@ qp8yoOBWO۷۷C_tSϛD5}=g?߭7Ԏ}X`׿yvgұll4ܮow7nu;wG{ֻ7jWvuOvG;ݍQn79Q{{?DZNԶ7;Q׶ΝrS[/]>sbdF-։ڃZH詣Qtt3UO&FO53gIq!=s=Oq ~m`ϑoHƹ]"8-C^&۞#WHq*61<-k|cI`_ #߉::i 6>Ŧ]AKi4\-75 bÂX V, b-fAY+ĚaAXkĚbA8ĊbA8, błXq 6A8kĊ@lX V bAXkJb1S p N)N:I)C8b@ 5b'Al9 Q_™W+b yEX @+b @A+b XĊ@1Aq2b{x &*b孈ykB b%) E b b-"6"q .R l|Fc#Xذ xļ"^fAYkqૈYkBs .#Xd8 @3@\Gq=bl+"V X["A,Q[K2=b#{(bk,<9Xe Ck/n+G Z@bv'(ļ&nH 5,H>1=ŊӶHb;!w'$$#1[}ٙw',%Z51=ӶHbNLwB$ƚx&uOL"k$51Ob~:$'ą&.ĕ; ji ~ǎ^xvIŎ%fIVXw'1m$7'5ډ%u'';AHV$;v&رOb_M̒'flkbwbIIěMs;3G ߿}}[{rNNgrQ׻٠`6ڱZ;GA4 O͞iWRgoϞ':…3_M]muԕ O?ueۗ9{v`z}XקW{J˦a&6.$Á o&Û.\O.H.L.J[.ܦa#EVtQ`Nթ$ѪSIku*KN'pu2Q \q&9.If᪛d.Inj&nC4mML>4‰zL><6I h|baep1xhYg}< <.-. h<^XGõ=yqmÝ3<,ҹ!H'!H A ?`l1eo{ōx*%ǟQ鸆>Odff- ٸØM&P05/c̎41+SkXUn\c9&c65 ?Ơ-dP[X>[Ң#t.] 4\ isvlŸAz)]:`ε?(lbζ?(y^gCEgÝ;PD.6;AGGI=~Fq;r0&qhkrSAbsl%;{?o}撝`.M7e'?͵r6զKum3m6g(Dm6Ŀqi 3}aq7Űʹzai /70nSm铏"i wk C\[nL(U_0Qӝ1l3mã*menk:eK_bfvS S5 D.VrKu <.rCFr4]`h+@(0lɪ\DBftX~a#?ӄ)w%FAa F#{+N [Q0lӄİM{mxs $0l.?ǰܿKbu_CD.#iz1s3<0=6K-k5LwVĴSeT a;`, ."߬1_`ئhumf1sV3>а3Ys- qe?k q4pp#g"u@acZa#hïcwgPLJ:\o`-/z2DKD .?w>;ݗn}ptǯ:7o3~w?|}jcۭVmGLU  `U 66U*xԪǑe/x[jiCQӚz-TQӢ0JA\&x`J 1rUHHc4UHQ$婐ĵD$.嫐ĵ_R!ٙQ!+ %D$%*$qm,O$婐UD$.婐Lf_!h 𧪐{~j˫TH B%+$\&ۣB'+$PHVH< BJX ?#al'ḫ6o̫"DfZ)PKyVS;#(l'pip/_vendor/chardet/langrussianmodel.py]kGy_1$ {vfv(,PЅH8aծ;(ʳ6$`0+j.jy ?A$]oy뭮.:ط/vOJ5q5ɡC k߾ӏ9sGN{ĩG;8ܸ5;O ;-xyP#)O~YghxO+8|V$4^yc"(LťzU- Y|"|U-&b XܝoX|7,G~[ G\ophJ @|;?{}]g?p ៉c@ (FbgQ̯yb~>6 7bT[qQ5;>7*vEjgs7W~7exS]}[*2|^ዢ}ˇ)8H[/w(.fSx!Kč[9q 7.7ш{X x4GFػD܀G#n]"n%\"n%\"n% E܀G"nLqq.7qMa(7`q%%l7Q"nl7PQJ( 1hčK x4\"nc7λD`qcqcq6[5srr8G[A{Q#w'ųzw{щ۱rvX^A^;qOZq;Iqmr@c7Qp&C;wA%^č[ōfu#nP~B5U ైY"nq/w$'nvx*{wu(n nU&T^VYۋM:t69i1SɂeAx{[=%uv%Af a% ގz;yk$`Jfc$o΀`N 7+w$!L&^%z&dgnqU"qG^L:z& >+R^m`GdpL vL Q~$H NعfwYJBX%^*Yk2qY&Hc Cq׸MHܑ,Y4Y#qWđ+n(q&1ƚ{סqeA#qߟ*q!VP&jtTRg^ʡᤃF}#<w$q;w}=Q%>dTI$# V')FĽč'k$n&qIqMƾc(nI@GX$:,sm2n\"qG^:qjZq6I@G"n0 xAXc N{owI8nzR{]8n P葸#q/6q;DWCqWCqhP~f*#S\ձL0R"nc7G8j tX%^㸫=nUNV97aN_VbHQq/ qX&A^Vc`"nUR܀dIJlywcjNtKD^$Jjp* CxgFܶ}}߾ٹg'ޓ뛽sOmwNooo^h{Wrmo]=|׿Ip\xvk˛[q6lm^F#{xnmSS}8v:=}9n~̙cGN}ϑӫ?znn\˯R;V~UT\ĄNM8- 7 xل e­np;&)^)஄(\.M/yxSehRO7Lu&YhKtM<5oh&Ym˞4uOz\Ԭ7/ջT/~ZW?-{^^\f^\&[R`So,l p?`G pEx{,= Aw5@Y;ʊ=PV0@U<]In- q+ V*@fTZsj m#@<-y߀=[({\wr#ٴ\Q^.ޅG*)@r'P\^wT?9pF>PIV:W:Ź 80+Ss| zZEP**? )*?)*?@UOq*]T*]TA|EE P>sP>sO<T>tP>t(a$)wUEL{7]\xZ]RuCg4+ ew꒺IxBu)+S.yѬ&\umQu:aFՓW feԋ.њCU<;[ fe^bP={bb4+ e .d%D+Ž̨TJQ3,TY+Ň]aTR+Ņʨ]+=oFxQΨ|Qĕ?gqyفIQ(9ϷU() 7nѬ<%/^&l$JNyIhD & ~(Ię}Qs&JT4qu^eTL/'[.va%Q*ʨ$JYˀDI Ov[-l$J\kIhD 0=;-``6Z%0:8U4}Ѭ6=/Fe%Q"!l$Je-T_N:3OUT)!˦KT/_0^8|fa_2SyLaBjo =ໃ ^|?>'~67jon~tLJ7_8×}>p䣧>pf5 CF AbC!H AbB` A;t+<AѹDC# >.fͦ9wٗo.Ks32e_,9cߏl€90ٖ5>4 ؜&_dLKx/0L%&;$8唇4;`sW7X 9\*;ɤ?;H]vbIɭ`2,qcoÓajIV?C~HrIn\&UvRKR~7ilPt&1909E ?M \P.Smr)>0Ew9ͅdQU匪CeQ]~:dPb7-h堪C,R3L~,ױCN䰪CNt~ꬃ?肌.ɉ y#`qfԌ ) [n7Ub.'W@E_yI8@6,R~b'Jɶ7vl+c'Jɶ8vDlS^b%۔X6e%VMIlSNb%۔X6e$VM lS>b%۔X6e#VMɈlS.b%۔X6e"VMlSb%۔X6e!VMIlSb%۔X6e VM lr$?;$w6 V' d+NE>'yRNlSRNlSa%۔<('T`"٦J%%gdI;YRZNHX +Y"c%K}R,%a%K*YjUɒ.vDJZ-3Y𕽢g7o=sP;Ə=?;xk|3/T(^4V+"4b(CPd Eb(Cc(r?"ڜ7CJPD2JZ)~"{IZ"'nغǤ#Rm)a~ C,5B< oN1( AlYe!Ӛ< A@B" BPyUrX R' JN|Ur4 <AG|Gw=dnQq6~1IE&Ru(oH &*o-Fm'*Y)˅n"-bu(1buD 7֧#z:#z:#FqDՊD]FYovfLjovfLj$FJ"P.R0Et-]n0E%d*r J:"1PᎁRr2wH"xʝ"x ʝ"ǁ+qc9KU]~6Mc%4 4ۈ mMS[Y'ew K{B84{B՚@BVHIZU]"hJ)wd*R"!)+ Pǎ0׼tJ D*DV)6rd :Sn F+ ˵Mr6wJq\lTt˕ /J;sVe3Za..{wZ32cHE=ulet:1hĨ#F1QuĨ#Fƨ~:ed4;@1aΙ- ڜ3[@tVF 6{- {m- ´3{@z1{@c6hSm z Df#F /鶌F;7An 0Anq$ \D_ /r {^<  sR^킚 6zA4ؙ^ .ߪvnv9ؠv= 'uy?{ !w˷WW^AljsGnolf 4 {c>醝 5{ȱ3VWVZ8*&!1yHCbcCO~ K.1$ 62ZC M {C ˼A6dZAvdڼAd:AdVxl6ty6"m`kd-5D ]"~Y6lO+]FH)mad~"FH-mad~"FHGc60ZF |?lm$۠ƑlE22"z: seD=o,#mnceDko.#W.ˈh\Fyc=(meDTi2"<':vFĎ*cgJv\2=ߙNNg>~&5On_:3K`owvx?Lggovlz3{<:Mz8O._O旧;֖B|x>EK㗓݇ ]Jr{dmxK<;|g.@>IɣpEOgx!g3|@ϓ=\UҲeU_%C);}뤽OoOeOLyo+-OU2t:0&C.i? #I3O}2L> Ĥ3_H{zL d]| G Lw(CͿnw NeD>{H?!&~H7?"ohL l'OɽMn( 2C/u?$8] dOf0X`d-|\<+ٺ-s}?Byd:֔_#Wey@!H^yGS%~2tsďۘ#~_$~9^xA#~K&~?$~̧#~t#~9^/?#EsďnrGh#~9xr/G&Gsď???9x$~?E#~5e[qi.HBŏn690MgSK+GEGT_Ѽ爟S'Gsďs,H*~~>&]/>ڗtz}%yxӟ}/lAxAyAGsz0css)'1J!K:=h_us-$:= ^Fy%G-ňmC1_hs9=覤ZG7,~ӃK ~g)#\?N+?ZK'pzNG?:OďJ襤wE9= ?YL.Ѿ^ߕ?Z(6)vv}?!W܏݊ߕՃ~)~D[K}+0#~B7 ?{5#~9^Ncvrď߳&pٜ_[.fxNiR$+9j*~Y=+NL?z_J?G\?ysKz(򛻍% ?G?qEmyI|{RV?z?QfCrxR 3ls!"ܭ!~#$~Ww7={,Ӟl$7Q^WC..F~!~b+wt!z C?1C`$UQR_<~a6)s'wwSܭHqNB=2cUyʼq#,K9{RZ=Xm˭#%~aUfWFU1yҒ 2Kk?By .^LK2oszp[Q7cKdWz**/%~Ns_U])~UCJ6*qWqE?gSzVw˷+"mﰠմz={!!~B'8˔ej4:q[e*~iYf9X=G7z̞K6xGՃ%V[񓓻eTUmUSZ=Y=)~W_^^PFdx%I=}}W{=>_,~;,,~Wa ~Ls][soIo vW[p}vWBbyO@LR^-]%p~"~F]W^?p ~G{#\SDyOP])}ږI=;JiR~s_ܕrpbď%v]9=O4~\M9ɳaY_/%Y3Vz)I,~ޮx=*6p{h_0gE,~/W?yF %ەfs_]G`6')~9ſ"X=|>lNi9z8?_^}~ˍ4_]N ?Goqꑦ3?#~5H?yU!~|~ pM?Z(~])zߒ*~ d9~zgEKpszZ=¬5HsďjqE/wsg]6+*qunS ͋rz4~.X?¤WN4GJ93J(G?-rL?g36'h_͈KfsBg.[9_Y*p9=ݜwQCo-1~J>)h0/= pmJ~>{n+_rz\ ~./ev=~_Ms9~N[s_O2oF8=9=dkc,~wmr_̹9=,~Ҝҭ]鑞upQ\ߊnNTZW!VY'zO 6Hv}[(~a RVfK?G◖h_Ze=vU_aA5!~9 6^nMfiRgx.Y=L]jsJi2gUǷX=$չ?VO,=mVDkNBuEK&CwDKߒ?s}[=+,d6'C\l?Ճk&~äKwU#~aVgU5~Y=?gpH Ky&dv/$~”U'~i?p?aA7Ed?i!~Gp-EVnr9UK_h^_hp?Ka7U7;E_<~k7(~7Y= W\t<~iV+0kN.ݚ?q)~J?(^ğq-WI=srtoWz~攞bx_Xw6) KH9aA?X7o2'nxSC/}ޯ.#}G9=RUN{_uwUm2I?9=Mm=WjsJKG.6gSڜ+M]О47[>x+ ~nC,Gx=xI?M? a64ğvS ?6@r[$PLC0OoYŏ~2ekzՔ0I^O֝ltk<SdCh\M֍{Qkx />wkO?s-N׻IyAV)-Q v wN wn ^ ~ A `LX4M炼e6ef\sQd0CLbp1Ny/vΣI Gцvڣ{y Gs,~~w.\v۹xM ,&,!c{5 7,gcKi}B>aA-H#M ҈ iDg-H#:gAQv1wbڕm.cS]҂v w#5לx].5 EЮ.G-H߲Eo[ޣm {;w-HYP q^gOw>eA?-Zi 3l'6H9AQzւze(NyA:߷ (X48/Y- ӀXP#j_&OZi, [Lqb:0A/XP3G(؂:8?'NOMc,Hܟ[._(]saA҂WT!!YzUD4 K .^-PPQ?Fm;3iK> TV:;@ULtuLv%5P}t Te.@}Zi`w.T`teCe)@WP(k/*tTQ:d/RPC?iӠTA^~vR(]~w@|(]^|0rNj[FOX Q?2҈QW?h:t]:^z9h]@nA#dQQ6#xDM> OQQ6UxR0 $TŸFDC+q7`b Gp/$_0$ƸFD7ȓfe02q3Ticc #Wژ7Hv n-lYٿDtȯL'Ui ir4`row,Y&ށ ~aXŭ<.^3cx1_,2})d'>r~32ɮXM#I}Mve荴j獌fu`;Ғ{̧\S7Z mT*`x 5*ѼX/X+U][U=W8m*^ޱփV~~[~n{UDi;2rd>ph1fYn͑O oWW~R\On&O='/Owǵ%̇d37On;ܾ7h,e=|:vhoO6]҅+Nýpo?'Ùދn^[њdo8ڿ5wގhw?2ݻ3̷TRIH%2T*PI>%SMI4ƔR*K)*RRH) vQ*F)NQCI %'tP2AIWz^W/qV/gV\~URTH>T/?S/5S/+fRo!Qo&Qo Po*UdSC})SlIbE.Gg(~P\{Y=9UϤzԣ'PKyVS/3v'pip/_vendor/chardet/langturkishmodel.pyu߿b Iꝗ%#!;7# Zlfge 9py1v_!8$+]}o >KuԌ_lݙ[oޚ?kdžwZ{w7ǻNtx{{L`鞍ll8nݺ3O~s0Nݿfp7_NZ{ɴu9=pgc#Lh:3LeδΏn w_i]ݡ376\ܳ:Oo]S[g[?zuSYhEtsqSEm8)>|Z8G("Qtqs[y|#\p[y'Zdqщ8%'"NTsq꼷8Po8Pg}388p8kN8S0m|ء/:oM2}DG[!0u>ⰷQb"CWD&E"(fVq~щsb:)s}W{΁} kN٫N/go8 1{9⒜9w}༻8{;3]Gw75l>#X.Uaa(u ko kuu  İŰVJa0İBV b°5`a W0}ds&c؁hjXG:abX# a0l uu O 'bĂab8C ..hM@jD) +_ PD jj7WSÆ11$5İjÉj07 1a]Iu 'ްưV5Z0L{uaEcXC ka-6ZalJH0M 1l )a 1!%a1!5İFVW _ +a 1%"XjXfJc{alJ İ"LqUR ؔ0 KaưYD001jXPްƦ.1%0dtM ՖڄakR5,1%0jcNalJuVKtJ!aBV0p8 GDGda*|0a`D篆İư`XA 0ϖX CSa-X?/ pkU:idx8XVoxNapahJ` F1$&ʭ] 01vɊaDa| c50 kb8Na\7xbXR)Ma8ANN1+%X$]7k.~b0!76+X K0 @0İR7,X /X Y)QbJPاnXV)1lؔp@#`X55İn85 Ux@{J` c5 ްwpu5 p%놓:pD-jM )WJ%PjWJH0C@ GP)!hP C5c8V0 pp4aEk%MnpwD( K $jؿ}CaIp.:%BVRlY)QbJp}K0# ;eUSu cS"w0uf0lBaZp.:^aR jXycX x놽M \&袋@ C {  E۾pNsnX0J c cS¿n8M0! C J.1%jQò%%Kt"5lś|}7pĔ}#aJ ؾ1l Mu 1dA0b/E^)!3%(\M ׁa1Lffưs;DzDհ)ƦR"^5aD 0H 7OV+Z)Q5,eu%jn.1,o51+%ëeJjxKtؔU7K{u.Xsn1%0n֔nԔP cSbXEa1caO c5UJa\D 0SbwXsn$j/iC71ljmth}M07LﮦeK0,蒻D {_a0q@ 0nfa0])uu 7 c}Cyν/ŰdPj ckD@akX@a 0m@ 6X0.e kX ֌‰ºy S %6a^D J׫>eÍ1cXe_b ׫I< e%bXI` ײJ8wM_si İaa5İ5ˆ İNcXC cO[pK 1!qaIQeþjXC cO c5,n5\b <5\La@ar< .p@ 7[&Qá06%0.aa)alJ o5MalJR1p-j( k[øyßX K7BYÒPְ'qb wp4yX% tI}$p( 5m+NB q+ְְ'abc7o5K?ry9_YOѪa uu +al C 7Ix2%'!QOëIPx\afհU + oo: J`Sb)!Epй¸\-O¿jX@@jؓXr[ G@'m(QBa5$jüsujؿy: ]ؓ%-t\$aIUXõ)°s'!Q15C'D <@UX )Wj5,`ؿyc 0 :zvjRX#(VjwCRMaIhHaK οN~h+h^ 5\\!{7V na U'JQ5t K"0Éav(:-ua G[4h$ 3]uga GNhpEÚ= da-d? a1 İ~*V +aa1 0 tx? 0 {7°`XycXA  k%IP7~v|#5h1hw$`XA COa0a/E^'!pN;蜫 '$t {Wa < L$nhXBa$P4)\G0o'Lx,0$3] K(i[7)[7kpex}Ovv} xptnxS‰hUu$)V2 g~$LcXya>1@lAnXM,(V`X6 bXR&X;70iؙQL[ cOBA +a1ťfc12VSqZ< /Z tԬ;%jXEP tê`I` jX! k°Be b4հë(yΙ֍bߔ8QíFfIN72{a7aIpu5Ք57 먓}ᎤP"W͔y4D'\-]ՠwW%`x {o5l q Ktj@ aI D K İNC %:1l61M Iİd?@ 0n R)pm}p ]-1qäX0d´J-ts8?ߨ\ % q8+ aJ(a8 >[JPx0WcUϖڛáa0^l6޽Ja 90pw9 m a;쯇pò-%D% 0%Balka_b8K`ּa| =9f->tknxP/Jc_Ba/[8/!bMR&޾ֈazY_8m2=\a|sCf,p}%jjƾ7UzX |Vk%a 7QNGx^hu:7A754 | ҌsXP/֠/!SIpsekvO<=?= Aa^/n0uzXᤨpΰrI8aIøC 8p0n_pXƁaX/CC po֐ø~?![dâSp%X4SH0n19,z a1n rXN%Ɨ /,簤.5KpnMa~:@޾ැzXA 41Ez0B8,%DJM݃=,kJa9K`=ܬ/!ఆᭇK`_BP? a1 pX_#k.[+Y+%w8Aݣo/10ưٚx{ P\BbKh rq` kw%D"[rM%"%t["9l0氿Vc{XP9m m~--tְD[pX&Kl:p-QR>a%{Xfa-VØ rߖА{XR.ar 80%aa,(KjE%-ƃ饜ዣvdp}:췦7h;/nk:vG7Z$ &Kd7 #N롽Ӄt4}8?xpgl6n}q<^Cӭ~4s$=LqjѿZ{{ Ƴ/nzVK={s<~iŭ|Rlxl5n_V*2=ẏMNIޜo|;N·y7U%I 9JBS=%1C/$I< YQ||>OM#4?17i|Fgijw37>1/YȗF,K_fB4B4ont|n?GA7/PISCtCI=LA7OR)f݌NSQ =FA7#7ɢ+fDq͈ᶛS͈޶]m7#nnFtѶ݌m/܌~nFg)f+t3U mF ?ڱj;PI?tuc?td ]+?;4@7ͤ?tD: ];4@˂ylv7cs2ٛ4NN1qzViу@;^x?zi?7)fǏ v>|遠^[E9t//Pн](.C⁓0޷7³H^]H𗧲lҪ{S٧KSl l79M&8hɯ[Lɏ1+? =aujcɧqi:i:y,.bci6'36p v1,hh2m: : "zN+rԽ~ G9:|9dK?=E/XDevs/-=~eTfvB/6:^7}~/j~/̻E~f)2g5=u:E|Wf~JȜo̸|dJ3|d=6μ99μZμ9μ۴9>G}*Y8m>Gm>G!|d%v1$<.#[4kC󑭛E6CBp!%/sHtR:3Dg*G 7 Jc1HcR~i~=h}Ͼ4?ccXDfMّ}ir=J8mBQ+Gj#Lp2r.Gmn4ts4;JѰGŹ9tgcEec ;!H~QU4?}DC4>eGzO9},U:$Ug?htmvM>HS~ɯl '::ۺ<ڽ3|th p!e[óҿ?mt쿝@W&F7?Q)mM[pu{w}ut?}NvpkbΪG]~5#GԮ929~C vn gO=Ĺ'<_x ._~np7G/ڹ;ޛO˳̾:Wgoޜ5{w{{|xcPKyVS#pip/_vendor/chardet/latin1prober.pyXmoH_1*_HK($$͝tVQTYY`K"ߌy س3okvR*@ۇ^{7-i%Xx` £ 〿17weLbFɧhhPc .FM(9NėOIӦ7M5y,xz L "aȂ6}@+< Mah+M?xS(Ef6Ѭ$Qlu9%W|)۸ÅO"V=on7| YF}K½%%ȰDԁPG )*5|afrʅjV5<~>N||u⫟W'| k F; ᮈ*;<wM|{wM|]wC|7)߇G|7ٸ&5I|B|~Zqw/b)EG|1_Nq_bt]D"E|>M|_cb^ 3'K#>#2 !=t_Bu'K#Ngef@L3?䳶44 3 fO:>iu2:!B#UH7~Z]A~ˎ^j/D~D.*ǿLq["5ѣz-j5녿%TvԷϣE?-*w .H|V,oq#x8 :N9d4'\TX.@R2.T$U[/9XEpM> çBۙ`۽i>~g(3U /Qs֙g vP2|ݥ f+wvħ<S&ZU TaFOA;49,јg34 j͝Rn>i=F?{7)bRx.gNv}dƱ/&9ێ>+Kվ5r;;WmF7|)jnv#Ho$ϰ<LN`9f"Z񤄭Zw#(ŪD$j-[d~ȎP>7~N[֏ '^G_L%A[B&AvlTH_B72XJ.$W몶ׇgt\APKyVS6uMU &pip/_vendor/chardet/mbcharsetprober.pyVoF_1:P9 T%TSd{ 3hΕր ؤVݙ7WWc {OwIo`{U"w4b)SOL"'CıOs)^Y' VNPȆ40mC)=r6IEd*a?fq^RJ&xTy7b!Cbm2T5ҼE8&&pFE ~'DOFS/X'B֬,f-~X{ Zh4MTαXh_ofDE;V4"% 2MiU(=Je,Wzi Ki.by$ ƞ%B߁MdO YMnml8Vm؄T= $5j ! P1| ~GO҂)M8J&`K_dRwL_7E}pz "q<#d]rCyzqD˥;VIRlz5n{}nhoӃZz>V% yɺփJƳkI헂ƾ4w9)9Os)y^\TiWB}_hE4\}z_&ͱ2C^Rk}6so. a)1zn8 ?+.*^'()3qNjDUB^_~WlI,:5j7I4U8^)%|;93@]Т:`2{C?sފI_B -͇x+lv` YT=y6s8NR :/?ӃHǺ|J//I~>f Ke<*]<|;[XmY ?w9'ۛ2?1ٷ[XlR-(,yxڿPKyVSr&pip/_vendor/chardet/mbcsgroupprober.pyU]8}W\i^@VjwH2%hB&qcG31*u#!%{|9P0Oi2x@,Ah43b-蔓 )-x"lQO6ڪJ8W¥ι!A ;#J$ ,>Mj'3SZ;류\y6Av7-IIZ慧ImoDyPȵ[zGБnoJ>)F,B&IAg)VK̽b{*uA Sdx*)爩6Td*~VM4ш+nSXHP< WݜFC#4ԠyrO\ {:M@u|/l$<4&MI{V ˳B6,=f9O؋tt,A6Ę0J4A|CE?Ox>1 g(Eq" Q8-8Qb/-$@P' i?^eJasqRb6y>$ӓۙN2 w -;_>mZ,! HT;99c٨Gߘbj7εY.;9!븮UkfCZz9{~x<`3u!v99/1n܊MqCYnLȂܽ\ ž!|*kr{QL?)Z_qi JgCӸ$hY9 Yٖ>uB=4D,o/??uf 4PQaچ_.ـPR{<\'cy 9Bv'›UKc[#<!5Fz$ފDl (p6Y'`U)s8h{2>@7b!'?/~0|}'srn\2Z-ix'0O''hĎχ] 'G!^uFM,je [Zr#qCYpzC(;e7=lsz[lu]߻ U~dΌy~Tc}z_B.[NokmN `cgYءFb 5] EgK"Jeν9e8k9:Q|x]#EnjZRO j=О;m L!r7׳j~C]5. 5)M5)MoԲURۂVۂV;Q;Qߥ]J~|T{S{KG[ߤpfJ|"5"5|[ͷV?U?Us5 >Wg?z lV rCJ?kF~*cmoTuM*t2]7--%IU!Hm^ gW 80/[^`]+ "kwTcjq3?ɞ3}BQln1ٍ\9SYbwuB.z^obyT#)y#5N_qjۂ U.%FYjؕ&{c%,K 8uT:$ "H-J ̇4J|$&$ K)zB0YʋB)=zA H)#y$PS|reMCnrӒt+7A~ŗ?Ő)q_/O-iSȢנEGIzũzh>SZ2ySWN\w>)ȹ韷/$g=Rj_ҩ:^eDP~m4Bm60gh^Ya&R"Q )/ l^d")J")P88P88P88PJ0f$8VBqQMX=+ P88P8b%$b%z-JHJ(Jh;+ ȟf\6IH"!CHn\;=5e4d|ѓ^BԒzqXmZffյ6Kq-c:%AzuTUi V0XR!OS(;G±C q(;G±C q(đCpH9C mRr[PbtOB`(>P|,0$±o(<4 X`xPđf7y\_MClZO0SUO_n.@;Etn7Cg{V:-rhU@+_tS7ΫK{f`12@R֢ie6FR۲7XL3V*epj~?QOP󱗡peHy ^đpeHy ^đpeHy ^&L2"<ݟbA&gSY53J.g&} Sec_?l{xEF؈ v`7\5ĢXt88X[w r&/5xádE.9j9N~'+D8DFy%J_d»[GvدTRA~zz^W68^WeR|$±8^ KH{)k/#p$W8VAG*HXI c$qU_icKc^07-nTw˹[K?EJ[sޔ Bdc#ܨLB˰)GшL717W֌aYAboV*Y7 ~qCvf0sG<[Yo@Ԯ!{R̦qUt3lzl nQmult(%'1P8 GE RL,˧S;-Hř0?Ԓ̧|2?#A_x_'&z +‘02߼05jF[\ 1x<.@Hʪao"~z nd0m삚ۼ굒TQL=|j^uv^M)^5y>ZjZk~ӥ7%ֵJO?Z]ykuLuћZw[kjq ۵k枷ijI!{VZStLzt]y MLmszUm]Y65{u󫚫_oW7M(c+c4={c滿+PKyVSrs&pip/_vendor/chardet/sbcharsetprober.pyXmoHί()ZAXɞ&sY!&AG ewrќeZiLiGt4]U]OUC7]o@^m;wh*g4Y2*+#}F<¥i_ q-]2M>RRI\sݲW&)s%A?`:5js5Aj-UQŞ&X|UFzjsh6[QJnQ[ڐF,d%hg쫅W8!zp =rP|E?4Ԥ%=nR1x?WHs/J >Scʹ~_i##܀yOir!W94S0s`J}cSx1 =ܐ,\\5SE+!>vWbm~Ѕ^K%a+\mG׆JoH \*J]'b~@(dH!{or?N=xۣQ{0y Zp"ւC0Rn7PQ^7y2w{=Sw86=G^goq:zm e,sqf.CJ“(01 i2c*\dz ,b{sWs ӛg!oUYul ^B0{!+Tu6m6/ZϭOt>dnOJeP4:Bg ,pWZJg J:83,V>!;HɅT:b,'uG |)_TƸfY*YZj9Q^>Lj< 8hHpVO9EUYυ!`91qCsG0'btgLW#pÐ 1J27Ǿ{_>'7=Nw&#{|?߂ռLoZ}_ļޤIg:7/1k#k^Vb:q8B&uCSeuMJ9I\dR'k︥NF칵}|LJ +I(GS@؀?Nk !h} ?3Od2; `э7$EhsHZ:NJds!xQZj$?ޛ,dkaE#*|H}0ƙ{Wё+=򸛞M}ZV`3ga!rlsfX0'. SB {co&n2ԛ(B]L1Her0(QLǔrmU2R@!] { ]+/@TO?p8pސ!a`POf-aZI9}'oB2"f{_Vid{[{o9]-1Sֿb9P .vFºS2\?6]bs$N2,*3RuxhqhfyrոyMrيӗ/[7]{(%X菧?t|J_H_aX6& 5Wo5(TDSH^:9芒)$Y!hKg8L׹-Ѻ'vg]fP!l.>+TM3NkeiǕ>xd8pB.>EZ0OaTG pL"Pߓ[gywh$NoRDZjG3f.` T=p)"{‡j=STc08Ԋcv;HS%mPzjLMZV;E fYi|?F‹Z=㼠ڪkB;=E۬f11|rfUPKyVSUZ&pip/_vendor/chardet/sbcsgroupprober.pyW]o8}ﯸRJ-u3>MKT (UjĀ#1~PSxZKs|}5gKt}^녎^^\`ʩD$,8 McFD,8 Lin(ↇF* !ZX#0b|c9hw!slfi"BfL4>\ԗ*gG4ZeXLM UZWt{sSA5<+㚫HZ21JRWW?CE AP<vULt)_R orGbmZzby%6b{?i8p2.nNILYB>[hM,4)|`/d#oxbJ5\ A++{+߯J{t<4`x>ݵ6` ۼJeyB%&iTh*eЋlBA"t#Q nA'ݿE5+.2d5mE~Kj{ׁóǞY$L\[f KSmJ~R@1߰4,vTkCnJufWӌiY2Ja_Fn|h䫯4J ]*4d$Mwf-ED||*-c|Ca71 BSxaoR!~#CYS,BбU6zxNCQ)3LEyfkZ^JBOԽ!qns?3aV{-ClTTQn}dRiH\$kh?0F`k&KdRgH;Yg>JKfq١p":} qqn2M;3wН;3gӉo9%bVKFBɐG:j0"WdFR)!$!M)t(Eդp-p~ǗTMXQWeUhr%rQ-Pk־l\?g/( ũ49b]XiQ &'='sgg: p> ^6il4m 9 7e?yI?RX\J/r/L).ϘM' ;N8[<bso>[_7KĽEoKvKqtq1QϽJntp@ZrIr/qt`[l2;L!D "^ +)&x]8{<9}R %ٛYL&Fu5 O\o?X끕E%uuFw %wފaHNA^vNCZns]BR/'$|mǾwO=OJ:*^e1X U-J2SkxdzzHP*I]oCRTb|nR`|x}ի_I1!7__146'R,yDgZ0ݹ>~ {|[šKᨊɞ(n1#"yt8 U˵4PKyVSNjƃw 0(pip/_vendor/chardet/universaldetector.pyZms_1q69T],i%;̾3KR;=3tv~^YG ]b.ܜނ( %]plߜY~w~{0`vʮOo -DŤLS rC[Ro+@w=2Z?Ɇ~)-3a=ܰ.d!*^5Ad{w.L0{G ~Pcg V٨7Mnxa#ŋ4r9TAgh)\$xkK. W"8PcPl$5DŽ[``:88#8MpR 愈Gy.֫PQ] \Ș SF Ԗrp7elG&\IO``5V V@19F<|O#j$f^ * !Bz79\cąIh+,mY$wđ_6-ăAT'?<Л bx=.,K;&fPt)ioXుgqg<^&U^xicPs7\B DLLK$\+yAhɖ$<{gPQƚq>JG5vTv\_V .#7 ۣ}>J[\ W'>}Ө|ۃύףc8?⻃]^׊~͛W?ԛV( ֫VVPEd CcëCs} ߗ1)1C>q79S>chTܝPwxLaֻ"Y^5H}4D?})h6rO,v#c<*GLL Ҍ9U`Ij'a]+YOr<ܜPj%k5Z0WqGS.ҨʘE6LYḯ̬b<)kZ>82ƄT `Mչ_-3">ۺ'< u=fGOgOx.G^IV-pUX<;S$f IZᩯ[[:uJUI:lN> u-'P(J]gR|Z@W;ҔЪ{ݖpZ-_ 1 ~he8-]m"— YOdj$~ mHK4?~c:_Go,{BV-pUoe'.\>)֣:%)WŮt7*Lz&;cڸztV>Un) WXމ±v|,ZiٌS!`hD$e< ;/8kiR8q3-pg)!J&>}g^$`Nl<,w|ͫgjw$.̦8BХ> :=u4p-!|qkcF푐\-XjeS󒇛W"62zבa5Й<$%oA#W&ڦw{S2 HM 5=t'/̚+ 6)l)b *15!E߼gߜe БjF6^#'}hƿȫwL8|7yh3X!)noWJjV=H_%=~O:|~V)t9Ɋ|!q"5 ڴrֹnf=ї#3{!}4Xi7m2L`Fta*5dXlƷ? gȞyuid"9ױCZ4/{P~ a ˮܑT~#B3q2|cM*lJU E &W.r^^|#ʣէC)bRu` d}(8^;U6v۲=me۰7g bIo +K> |cwIѧ vH+”KQ;#ܜ4GZ)Ex%T#E1B*zpgtZ{e>p kuwwRt1M5:рעV}~EqPKyVSlpip/_vendor/chardet/version.pyM=k@D5E*C H@Ҋ-D>8rf^Zk>4) iXQ%ȴ"s3.$sF0x#W3-Ջpm[V7 g8cNԪO'R<+H0Gn֦n]{;wtGk?^^wnw0PKyVS2#pip/_vendor/chardet/cli/__init__.pyPKyVSpW %pip/_vendor/chardet/cli/chardetect.pyVMo8W \vm ЋvQ C -Q6H* )rb̛G.n+-8~/,h%@hPF@WiVHpt*u%Fy5"ˢy 喛`VcҋF C_n`'Uwvuq?JjYޱ//ػ(XcSgWKnYbLRuPX-ȏEݻވV7E^"TTVKDJDH' oqtX1~۽vdNJ66nWั\gmY[ s\r)zG |'> QUL[_*䂮F*ax+O F_#fX+kr@h7%FZGPO[dpP E3Hָ}'%)3BN9,g,>4qfa zyK2ՈI(XtW~8ùwtY-Dl -սXhv.Խ6qn=V}]TlgzV4 6-^ͶZ^%K(~s݁Tj=W >z(7'6T4+e3Ly|;]1Hg^1^Un&>_][tybO si) <+cexK_qO<#8ffcWJn}0u_ܾBj5|1V;KӰ3E38.&ͮIifsyܹ}K$+E]pO$A4{W]n'Qx8|Kspuڃ7 ^ h^&\5/~Ž++qI.=Z7Xʇ$ cUU2YW<(H"z)LPKyVS(pip/_vendor/chardet/metadata/__init__.pyPKyVSL:L)pip/_vendor/chardet/metadata/languages.py\SЍo vQo$ةD302i8*m 1^X}75R*uif'ii 4w* V>g>UZ5ԀUL4211 =͌t7nw꫺6qVa6* óB QegJLR#Q$nQmupG[Ԓ`KbIrô*4C$( #3!UQ%TWיd6?>H+&Y[vƑ¤$)MH!0\2%J QyUAw:q 1A9dE,cᑢ@{mf́^8V`ۺ@C]]ge]`^R*q塁UޖRIжᥴs3J&Q3 OIx1q)LEɉ&2B0<AN#T̚FgLk^fMIEynf?'M`P +8Zyj[V a7en*:[u lhime aDr8@=,̈́eQQ]lPH 1gQDFVSj8 (_Q&:Rj,JQ_r"$mbZJO~ 3 Ӌ`RY4 kExU7e*zIQpPc-%3b($ %{kpiU*b7 35q v(H=K6: p,, w3aEy!E9Wse.zvT4); M%BC=7V6⟕O|ͥAUi94@$7WVS0]+X^E%ICm*X%@, pD;X&T%|/P)CqR_lmhhpC^I@V JI#!pui5H@JExl 3q?MD75,տ|щJPR&Mr}R6ْ9%Q@woٳ;@|?Hl˞؞KҹOϹ/_p~$?????˟˟_ȏ0 "6?HBú*4zl0ڨjcc-`;|^%pԫ!5n]&Kekкb])kښY׭M5kݶX笻=zh=ZϬ֋P@sKzc͌[+V`}>Y/֯cPxFDdf83͜ɜ͌eeS\^dn2#U1xg`b x*J޸+5bɅ=jݟ9rآ\`ex=ë][:9 dĕ'FlhlPUQK,s{I>@]`ǽ ?³~?g3c6Y`/xP?çi0asKk妗XNI)A=Tj !=V10}^=dػ,]&{ј~*{ wD'1%uE5 mڢn۾c~m~[wma\<`<:`+f}uX聈"QA!؄ SkdPTsx?k\8ħӾ]辔UD3++K]5:/}S260#es([V*u/b _zѮrlٺm]'w.|5BqԓMNhTxao(x n'x[bC WXT}4yߗ[*s}$$x%օA`i1o~9~#~l\`x Q#-8>BKb\Nx\jh1v3,](*(DҧGƪRK DRrJjv2;degodofoegwwsٗW5݀MD6%K-tϬ}[!G`lΊyZј>!v9?cQ( zq ..))*9 d6؞i8Z<+Re9V\!}83@az}%ŽvqN6 v'K0 2&{;'Gz))%:^5 T/j j˒>6`?*>q,VpPpҚFSv}iWYWyrJO2Ny@沥e&i@fd]E\e73,;o:`x-b8l jes^);J轙U$OY{ YpVd`a 0LcBo m>OP"[X,_4W!W3I$=Bң$}O>Kc$}ϓ'$=AҗH2I_!$=IS$=M3K S6S'A/HRG!Q|]VK;ʛȆ7՞ [r]z3,b:㛊? yVd, (Uf\s;o?Mk9~`^v8 gy6[ >hPr@lJ(.EL#a=J N|'=x6ʣVh,#)BxT75 ]>wtamXyMkLW{cdܺma~!AG@I(AK/'ҧZ 9>H.!6F9ShYOAI_m_tHF)62>U69u.[rm}r1hlok_-L5Nqphp¦%(.b<.$1&y^_C,nŔm`0n:(J<_ܯ?re.-2.Ec ?qCo~M6ρa[RZOCv8KjGy~{lw$Ed㱈?_PKyVSkճ pip/_vendor/colorama/__init__.pyMj@D{}B 5aKn]ĊMBRn*2 0yҏʗD+FxF@#M`/uV(v~mv1&^0z$okñ*qB',4Dam6nPKyVSR٭ pip/_vendor/colorama/ansi.pyV8+T5C-$Iq̐0&Kc7X#{%ߖT{n"~$|8U %S@R!L'~0[dRZm[I] dU p(F *#`\1H B|8MeZܐDxwϾbF\յ AF4P, ^m[`jVY1M-B]lU"x P;H% [JPbبtZ{gYS"-l zMii?اܔqUG}QJ%oeO@J Cƙ Öt]uETD\ K)R=1%DC|}gX<'KEȩbڃN7R#8QșN4ы)dTbv>Swꨵ(E[) %t;@m@麌^p{ŞΙ#Z]?3〔j)xrbw ƵD5"fug/t:2Cp&~xVS/&)]:2Y%Ov=hkDzLS<τcJ@'ٺGؘnez[WEn^ (ze9R ^i W{U1^W1F4 ^5yk ^&/xM^~\ i4u :Mp&KNKuHXhbe"=ᴌ3Swı,1AԶ1cȶejx}P˗CPKyVSq )#pip/_vendor/colorama/ansitowin32.pyZms۸_?J%ijRYNvMmS3E0z]ui=_v..)O6i\IThLh*#!G#rr}Jӈf( X,؀tvy=#0bpT+EdDct?OZn"xh~NfF9%KV6ovST])BЊ<KЗLȝ9&<F\; I3 B)۔& K=3 d_z=/D(Q,X*~30^#Jd qJhbIlȂFRc& *yI9 %=wHΜElI% R57c$q3=g aJܜH`uKLj xRRB`${ #b*W$k 'D؆Pyu#߷Rc+_0fC@Dž ;K&qa4q1e2KcbFڅc79.yzƫRD‚Fv#Οgof=X# SPF :TEh<nɟHc|@7c)D_FwxfEftSxvS#}K%6agi2Gb87ba=Cqq& 63Qs4H~o*f`X+:V-9(Z 5Ĝ? lP0!sh Ui V>Ѕ vR 2$ɤ4, 5Hn vTĉ%"d@uځFSw5X '^?:w{wt}8|Q26sgLz9΃w{cS%!w FHuk=pKp\ X &*KtSi^5DrV^j;X2ի[OV< UQ&% ^pffkĐYe#vG rE0t,0BaWFΗa}ʣVm1gǤ˞c-浐hO,G>[`*Vt*$3#A0DU%,Fs@<6Ztɍ AH8`M({@RU˛ϙ(֢oDUZ8QÅt^9WpF1ܪYY7yarp2r}Ej⑾ŝ~С{ruQ!NO>M.:bb2 ,ԁ=ѯfKlvٮ^w]\|m﻽2rˬKf`0_'!]ڷg7@vO,z&J WfXU4HN,x%JN,%%ΞN8-%f+A2$V'3RY<|7=#ޭI闹MJM.nR5ntrM5[Ii׹M MnRUnG䕹IwiqSSڼ|TO-)DkM %V#75'ߖunjH-!1~6;mk5Mleϫw=Cskϊlұr"i᭍yS0@WiwM޺7 ׾-~5 uyt9σP|˙3=ߣF 8ގUm=KړT,pCԪA j8F{ǥ *i_T7@seG pBR'嘤)bZG$OG@=H jjj`A(2%*qB* #Q#0o`Qy]n#]+fW-{a |u.T &xLO_EhUk~."39@h)\zJTm\ӸSXz7BYМu_Ďɳ?۷P mXJE<+-L1!>v1@QovmuI!Gd&`U|bl.CZi1$eО sҩ&.R s< S܇9Es 70^ڛ0Hܩ)>ޠPvg|yh @]1WAlh;F?5RX<ë[\spT᪓E; oP< ֋ j6B к2$)M.x-#ӆuP`s^P6Ê%by` ?l5ZiyL/PKyVSoEr{"pip/_vendor/colorama/initialise.pyTM0Wæ R$eWpTͤ58v5v(ΗҍT՞ߛyԱ&?$3&##)+* 4"|]Ppiˣ"_nNI7o;uJHܨhA}s(&W ބD):;1D0>21ʱBfÄNjp Rf3պBy;NCmAW/HipKnbV]A2na۵=P@Avv`2:'SY~Gve5'ܱ*=qspYA0{LA [FI unٌM[gVbwm鞗%<9LJ~q]N#de<5zACܙ#?<:t{అ h '!ݼ:qÑaVCuzyA4A['43z;ti,d{$v"VsvNt׿OnQpt.1T j"K[Օ&rΤy^&ޠ ]ڈtM&I{;e~5'N>J7m7BSlCPKyVS Ppip/_vendor/colorama/win32.pyW[oF~%5t]yxpf8_3 \I[iQd3mɈnv,~|H`GO.lrܒQeHr h[|=hg%^gk%B58$*0dh|?sH>&+VaZsy^&xpЩB p>nIS! Aׇԅl2@B<1UpDZU XRH.m)`{Ie"ʔSiEae#^gqZ.7Y!mw5eP.U]t3 f>!^5oD]"5|]\zY_:p(v'I!7&#;/]`~UJ"{}N1Z}iw^7·n Y.: ]i4 gDybٰ̒g\Og]АJ_x(MBY9\yΨ#3IHpkj|3ԆoZA]457zFڍB]eu3}IwwxHB[XW]eͩн4ʸZLOM5fa|S*$$"9fА0/}BJR*8}K8,+rJ0KcNjۺ5׹y};a_jrd9=7X6«-9 LԹMeƋ3krxkY/f% ۈY:v|7H)%h?ǰ7!'g}(:(\k $WS^|,8B xLeFebl29HNj{!ЫFHD1>zO-8oZQfYeC+4[[ iT/-EDtC4ɔQK&Av[Gٟ[jK}VnCK2d >=$*hm[)n3/$7Qa=bWhhZc`ӝ0 "f@Z,+؋ih29'{?陏WdX8SZԲ}. \RhjoC{3ȷ^=75.eZX83+s7^Y2 J&1SQN&w Ge`+bWc}AֆYFH\E+SK vilSS֗Da瞴Qo qډcqLRUƇsE]^C˒is٨c"z R6UZwbR[`nwEZ&a);h64=$$IRD2ΒMm-Ys`̩|[]j@FK5\[Mܮªo>I ]\K1fD͏-sg`U*[ ҤCptj7b'?[fa-ɇ8Rju_d"$>Z[$0u2"<vG-t([);*Tm<%Z5czlnNun?Ggs&TӜs `Ns'1%O%ly˟U9ѦjK~m쇴Ѿ8<юcy-9ɮa 9ޜwGw igs=6ItWWWUWW7IVU3;r]e7F#3mVDkq-Ch2ӢNє8/g}TE*7V"ʮWM n4]ET<=>yu~68>{ugoGh7ʅNgfUө˲ute>UT뽽Z S?^.N8_N*YDG(n^LīHa Q sfŬ||%(y-3#Зi^5 u)4MlUdȴ̝$Y^`è3L̹O׫,o mlr\uTߗ6^G-uPd,o[:?OeVЇzg|L-`yv@JByU64)}POQ3/EʤO߀^\X:HIԣ# #MTde4!v0-Q080UU=9L'.ahʼI^e }楜c/-WQVkXy*{onIJF1"iV-|31%pR]?[2v~U"?⛗r/8%k 4rr֤US^,Նvuv,(tQY@ Xd#\(4AU ..t]VR3? |˺1d|_ Kj9A(|-hdO*f±Yxw0!ه V!^lVl:&r.@Uv%3EB"+48jR);qr؁|+h{4ML t"z7*'`4SQ W7/ŧOkD #"c,,GȇG,Ʈ44&Ѡ2lDR&FEO4P0 /Og͢DR(j} OGW-@M$hZl~i׵u g_|HDweNJ "JXiua^U_ḲB !3" x&KetgUx0*D9r򀯫k. q/ 볷/Wg"jnOZ!2 Au6P~s & bW_UP"\вb>((84ɣwfM1 ̓/`")}$f}Y.}HÛP?XD<a$DD;` 7(Rai*Y}hUp CG_99~v~Q@c#A Cojۖ۴fk\x f"OkyߦMx6g+FHj`pA=sJ=Nnt?fe5 ~kd",Z>F5 L9HKu!㓀(W@eq lUZwh^&\p? (/`Z7&aIR "Hor|bzճ~xsoOߜ<"(H)ALh:( 4O3+h YvBɏ怞Ђ XyCKnyf3U\Ej_,5x' r9D $E99 +7Ȣ4;gW~A<ED:X+h \mc4?zGq]p_m!j~owہ^|+qi] sV,ua=h<֓FD[`ڂ"C6=U ~,ܠg/(}JvfU$Q'xv)¾ !w [bw7( / ~`ŪeR'Ud/LƔ4f: %>njwi4\- u [vscTHC͌ʭΧ21 ^ceR_=|Soy\nI 8L~H$^?Z{B} Ӭj?"0t*hQ TO]_󌀽4Bg~[w[W tG;]wYUd'`D`ATU!DP63*O8F3d$RcDY 0낙P?K#e<GԲ߁_^(3q E(,#o HD]V75^Cmq* LV [NAa$,|4 Xeyj) D̐lI bdeUJBa*aaޥR 1aAkpBQWٲl' m90Y$gsB/u]&>.qـݜ' !ئ^vx: %!t9P h0hYmv.XKd)~O؝<̊ú㶇5c:iR.>D<)~<`0ZXϚ 64}+ƌ:-fq`"YP_q2ٲ*^e an$K `Cc1 nzR%J`͋y$Z':f]n q$$2P8"- }Bsd𮬧]m/>!qZ@$Q!SJk.W@2t)v"nS-iHM;ia WYN 9 s@?ahB$ sHk uci{R‡LE~T]0^_(Iٲkk% ,"EQ#[(co:Z$0FKeϖ/Z<pIgR=Z[+P[~jyTGMSKM]UP'؝k/{F؍ 2{<{fūvGC3HII;3ĀX*|y UV=,Wrc ʘ `B[ 1 n`>Lyiw:A (40:ͶȆ`!ɖjE7ũ!8?/0~ԖʚtѬ #tҷ!)ܶ+lYN. a4Ʋ6Nbm)h*zЭ]\)!|+<հabhw?0G<6c]iP#`&ŠQ Ǻ͟&6zl5\dnm_Ae~@&G'XI'xpob4P2&M 5`$X}`@y49/!bs?t5/(CJ UpZ{#-w8vd"/͵X(< 6 ؋|G MH(Ó&!/d-4H[@5jkcct↻ޮ {ʜw L+ 9'm9`OՄjd'PtyfH~ڠʸ.ɫ0};VJO.$!-}-$$/!$؁;$O%/o"v^! 6'8Xؿ:fZ-MU)dJcpy4~\p^}20>@)i~AYe7G.2 Nst 0v hc\5U_>i+6E"Q<:|rcwU0b``在D H= 6<υ qЬ.>_CR?5Ё 0Aܵ`-[ %yg̛]FzJV3R5\mQmr"l媊S qb*p}{(n70mIpu06Je22L@HtѻlZP >`lr L4 ?=$yV7\A,šL0VSH4l옦=L \YK/]3m@F=7 `SOk..iC]=3~,1Fb4/,RPGǃ/?F?C'W*/v7i ^<K[HԞЃW.^YyDˏH@t`}mנe#VYw"TiBܡq^ҙݩ{H,WuNN90 Cw`8C۔n%e[0*x+O0&z7oβVyXCﴢR?>ۖST9,ی)kC[?A5v-[5E0xԂYZy;JM ų-=qDHPuGD_l3`UZwIB(UL}#oQUaRR[P087%*a-19#۬ơ]p"[ ַx #n4h Y0z&gb[F`̅U\g@wYzo+0#GWRuY<F2u@9U4âq~8 V '%u<V 09]Ўm+@#d5AIeLlZRف f=߈'uݎl<|Ddf:Ն/#w;#eēXE+ CRuxhTHSg5z_-b|dϱ3qH ewf5GKËTO,0/]c\DŽZx?rYLOQqSA/W lR'#h"*K1ULrfsa)kk -0C+ѝ I"N/ںk)S_VnBgE×lky'iQ,3.eMd?P7颼Kͭ؈ ^o,GR naM,kM*ݩDV1ƫH%BILe0u4]e*0p/_1 dG`KzjRS)/<G^1Gzu3g#Skŧڳ6pv6l`N )Ci\zL}l׿'6/&NJ}"퐎= 0N]옑߿WNT "qxcLGOxH}*H_8Պh\?|:W&rw$樄C0tV^e 묈jq"Z ۛ8T{f3RM7P(ov%_?қUUmru&G9:f6"O5ӒruS ^PB50r;M4qP\yj_%Gq [s tun5f7# oB8ަ5U#U._9v,^|19ps=lɔIIƤ8noPG:i>+Gu`{(r?%}* Ak-QQPu5b9&o !W{ !ڨb[xݡDuUvjj2;Wn3o%PG@B#].Xhϯ8:Zө<}g 1֘E5PrhlOl,#KQ&dmUsʗCb M8gQ˟hq oTl[pdt{}kě$uAJZ<)ˣZI ǗWmZŶ9Y>:ɶnCH,9/(^η`1h֯\?͘?;8eF+ {$KP·LFKY~C[19*Uwn$jw+rz|xΰBs^ɦYmL/j>5iY|I=ttTL NͳĢV0x!@3/tv+ӼVI%نҁNb %ݑHo0JIMk5hO?qa"w3pr6on0 )5Xٓ[PV. 3YaFIVKr mpd3^Tԣ cQl L#ڛ\zQjHmu/tT7)ྡ5rG!lĂ[k\Fۑ6Q\?'x0sF<uaa?6-7v?Wh8[^&$x zѲXM?E4Mgzdl Kf@c'OBg*DxQr)Tc5=ULh ׸o߿T颷~zXPa}Ԋk&"lL|P= /Ǯ%W#r~?5,n^΍ X|Uu۾QՒu}qJ.(uzym~:g*ӛ`P+.tqT[ S7ؼ۬T!'W*Fh#ti, :ҮΕ%z1Oj447)p;|;ܲ\sD9v3:/"$hVi#߱8jtj c8aCnUf"ٮGWR wU47SܿoN,=i&i^,GnRLӾ٬n>j w "5'V6@ˑIˣt⸷f>6w" ̞w$YiONNޛF"+ԄMˆmΑ;=g|eҎA[Lw 5[/95=VFeE͙VR0f,SG㶳W%۱D cD=fUeO8)5|̧-óm%eU5Nި"0z ӟWnxɜ0bD'zg;9JvyYX^WA6kw&>.˨j̾@[Ϟ+BZ _۽6>@.):Bd;E&Ȥ-C}>Kbޯ֥|nGVp=N1s5t{Of}ɈᑥUZis@ʊJŶͅߜT%7um>f `ͽ@}&k2FRC($]77XqWS Ƣ:([D/Kd>}~ŗߦW/W'_ez廽"SuPn+zE_|.c;*E tz5J Ბ Q$n:9̲VOʽ5ǒn6"),㣁:ȁ$P6_kD2&Ǽ+Q03)׿q6oe 3˰om;~"۷{-H|0v<"1e6EmT3DpCQ١XgyC@%=\Jy"4V.p7Pj3w[gFJww9*`{>d YJd'YA .N]znjWcnr@EvaQNGzPKo4.gTZ:s澈9mi۝nN*;>D^ln7anNWrx_=n JO+'~~M*Z$o+I[ЯZ7K醱i |5Mº^h\ԔO~o-\Hr)r3Q [vktgƌ+F]. #kbcj(غ/U{}moʝ+ߤzaP쒃UO0~k+q=S]w.Z_-kGfYW7ܨX!@f#!^E7}Z PKyVS@c/spip/_vendor/distlib/database.py}ksɑwhoi3XNxf@a _>hώ[="UYUYYQ6oe}umgzۖW}6z6ξ/?>\n}Vd6zQeSO{!/~6ٳ7?{?yv=z{6dj]{Omfߴb66Mg YU-@>,:Ww[݋*//Ewm}+@+E~_5%';Us|^v8\qA]i碓- F>m+Ϻ5g}_w5*Vgm۴JCz^&٫O?ξ}髳Iÿw30o#V)[I6/`ٺm֢J̀Ffr[Q,faw쮅7_;x.Z|؎frN-/7$ zh!C{<&Ϯ^f-PP愄&Z)Km4cT`g?}{bh x$W=yhKU5=xj8}]ٳ7繿7=;{IC~y}3;qJS,0yUt]6{2j.~|Lc!+OSQ*k^.la@[%.lԉj)( H \L +n6kj-60i8;B_ϸW} O+QCky ZpXﲒ2{cSp;d`bAЎ%Xd8k3c+ŊZpKjȯϵYձCs#, ]mXku?@ʢ^Џc}| wb +άYD$ Fv]ΉjA1''s^m@iL#̓A"1V⪘o3BJEFf7 )2#2o:XCs-Qn4{b^.KHC9dq la~h70n]vweU$hnu kam-qs' +Thӥx[%R+2L-'-p݉h`};2?Qa{, 7ˊ8Od6[3hryTQt@smEFtQ(춨6IϟZ14RFD'aǞ;HG,}@R0ԸD0[xږZ*bs[ $<~Y-)`v<#w"0ihu>+*TM_y|N,=^l$WS~\\EMo`g[wcD0(`Xِo_`J'ٲQߖmS= ?Aimr>I!,)zSig~DL(1@p8ܑyriRQb ($dAک^;)ruߢ`>!x|4gN ELZW4T5q|0jx IUh#Oʾ[]m8(iMYNamV6ig +{hŧ7%3ס0`EƤy8;3%]Ƥ-_o1)la Lt H]Ոi8N%竌KAw! _7_wAu kh(ϑp@RθhjnHJpd9't[jv$"` O4fW z{˯9H̯ɳ8:1ovg_LϣIt<{\[ɵL l/Q^@7 5@m5 Jmq['/ Ϣ]V04N4Nl( Hs?WwAjBgraG XxW%D׎С:T( MIXmya>1Tm0" >_#IBi: zǖA' !\o]&<qtEOuK5%)P9ݬ  ,=&Ʃ3B\$h0-c/p!.G=12 `(EۗMUx PpG:Qk}~g5 KMHl5$d %Rck{8#m'o>K( #jUBI)4H8yX{rKwmfhP*B2n8&(ȅd ˬ{Eg%+6]b. |%;"b'^K?$fαjK//FHzձc `C-q`KZ0#YG;%0o.d>q(vZ釗 Jƕk`e?R}$ĺו[ ։&XP 7T0 ERVD]_c/JP#4C[BjF?rd e`$_LD_{Ʌy-ZX S $cNubqT`V$mZ Ч2i:7=?89=(&M:Վe[# )xJk (-7(_U7&UC xƪLd)rQk`H!2Ä%SAW(TvnO1.Mgǐqc=| ;jk3ObQ5<25Q<b\DyL>Z5 VbMX$]mH1-7wOZ@S9Hdc Gj9Ï?)85D{)_^!0ੌbbUYv)4'٫_ǹ HP\ttLx{IbS+p=fKs_ 2X. 0D(nT':OrvmnO'2 oH# o_y0@D+uUP`M3d;њ7q}m/J͸]R.JXNg-y=A򢛗e$I# :&$Yp|&$/#P_GF po,V.P@W7x|AIX 2D8q~86MEr jG؏g:'&3/ύ+;D34MY':E;9zDrzSEYa+a+ Ku~=eL\8l]!zΩGt`RS)0/;4ROn8 RD{D Z*lŗJ"0'D9*~tQ HO&K;Tmw'%z*c* wֱPE|,@AJ$)v8Ekf 5\uxy߬g֕{@F7Z{>ڱf-i/sڝe$|7Y,FFQ1jye y!diO D"pa,!QY 2 b[8TF[BRs / Tw G`PBy+ f[P/za;CӉO˦B`r\ɯ81Flyq6mb;_ёm@ zSsib*Yd]]^tw.*pʽJU~KՀ.U޹(eh~p.LI!e% YmwQm*QН)%|8;Kӷ/8VZu-KF1>+F'dL7YY6&͂p(LkJ%sh.u 3xev LHJj_I,OY?>xdF4$gqEDLI{&]+/}RYGRf%A!Q=V [e?..Fj!dyIn [˹1q9CM=XޖLcK>sa\6z-wƄ$/vѝk,\G/j @]`kuS^ie,RQVuHu)`/ӌ̄ 5xm "$tmns*Vku,(-n!+p|Uq) a哦d0 Lvtjǭs,s6oECzӳɉvR}o)n(5@10 1509|)+v~u_U$B˵EkwҤ,E#Bp|SE;]ĀTQ 6lvR1/>5 8! OMbf}VXOc+ Vsb cB7 !)ؓ;hRkZ<.Qd۠c%}ﴰBLvldP4;C+ҕ|utF+d9ח#<+PY6ZԹ dFAԬbe"De9S >W)r~K/DXxxѼs^!éRMJ]ge3TY J8rpia&% X2v-l cQt&VE'd"قVg#i'9ͮqO' eD$EqDXJx!N~һH=`1v8k #ߑ0:E,r[!sV$|Z^"_(DҚy5Y'zMs:9gbJ+F4-T&+% [Z /;;$'e@ljx.tBBAM 3ʲ7esCv5HGhή6\6f/jf(!h Ф(߹# 4= UTʾ,\88:Xjq>hFNE;wR,LeV~-qfI1q:({ނ׺MXM;Q7 fDWsAoX ч-pߘU,**g9i4f<8D̳{i9+=4 v;E3@fc} uaT2W:*/ɟ~ 8Ѿ=ڵyS8O<D~7D6KcgVKeI%KVxuMJk0vg8Mu0VFёpv-GfdI6xn*G;tK6GO,mLs5 |Xֽ0Z,dXDgr*F!'rXUSvGF½U}OQstH0Ljm#<_hF7&;"`0llUސQM+0i~qq$+ ]`V2ޟc#  /]~1#V3LG#!N:M<\p28N|x,GYf+?nn@u&J/$Ͼ"\ iJaD&%8?8~2iqRѽ]WvH!.E՘Xl*_i ")R"gt)5%vp~MMu,*CICٝqv`ܭ/^6K(wݚ֦]EsdM+\Ԭ wӾ0kA &:^CMRoЉY9*ݢq~su߯>MY6SБEc"P0JA|5Q !^^ 3 `F qq?;·~rDJ/ւj FVN ,% a'dMF⛠VdV$_b8?՚'^kuK@3X}P0Uh(~/|^S ysU*kKЛa[YJqP[$KZĆwKU"O) {}bHAƥ؞Ȥ'uўE*M hjQ"fW;r%vq_rO0{h&&/ke"vKc҉-Yś}j%I)!TН|j؋L*zkcEEDc*51'/U;ۦHW٠g*UsCa<ξ}3E۩D-Y.70~m"QsCC}&oBu;)Z; y$d(\^G6~$Dwg+#kIV|89x9b|"܁ߤ,"y$C' 9dRLO=L: ''M< 9/=uFy9=3cqc-<67kzLXf}D(TexH{E/rj dy~Y0Ml;̜({ K 4ō nl_qIk8wTQ `DmR+vKďm cYPS"wYbɣGZ~䋌.Ee|C Hb^ &3FcXIywKh >I~AwwX/nmx%AZ9SQN$Q(O89=2†tID*`X\F~`^&Ka`7@EhiƺЫmQwK3* fo4 w'5#]B2k""pHfݔky/MO&e%?Kr ;r(^?M;2ep a"?e(L-8$$sT Yd}Mߵ:w*d}fv]V⼗Ac*n:p<.ל fhi96XGfX3r_Y!O@ngU\ YfЀˊe'{CbqEv.QCҫW1- H,5 =岜"@HE5rT[wv(zaG9kZz ~KE >Ok^ vjÓKzkQK 72Ղk[s[M|3Bv%r>:IF87x)و3zhb,V_gڥY/njǙ͈<6):/rlOeCɡZj+I鱎_-SdVT$VA. >1•. !ܞHo?w *%rneFAlѯwǮD h ] ݸyH=Aб=aƨ9$ym".I MŻVVRpb?+C;1*cΘiݣ !]t$b]}Ezcv|ke{Y(E bʹ9w"JA7ХG[%'6EaxI}yd|q?QqlOab{k[/|cgb. +*qckJd7Ͷni;$TVu pDK>(6ynU^ћgef1*Ok|E&NtRYUQԓ6;uݝT, ?2ICf] e Fn'G-/!R!4 45faD+$3EԬѿ =AX#HAۆ ]yZ hVWt1x%%`Uf1: !ig̿+X!AcC:j*'Hh_]yTz\-$B=kLOVKf&/LI o6G+@PKyVS2HQpip/_vendor/distlib/index.py\y6?^CZ>l/q:cفǨRI*U]>HJQ;Xd[%H8\$e YYUj>'%^̪-^d,j ] ^oB)6VR|[6E p#1TUjt_%N`Rx囫H".R쇗o_?㻷?~C,Ub<[yـ]mtUD{-w:V3kQ2&-?8Yi^)U*Svšg&rOj  8d_'宊k~?uTA͊5Y*8owb.x:L]{` r-x"e\._$dm8jBjj#0^b$"|-j_$[g254S5qAd4$Z{1 pz#_`ίMEBL搙 1u8tw`Cp/~ka6dYc=]*&nfd u۵@<ctIe'bk,( Iu"L7TCT ^n:JM9H f"E}rw FYIA&tDAQtxdN}T8Gjh+$@0K% 3$\/8PKpdҲїDxB_M24 k r=zko<3˞e^T nrIjdvb1e*NXY\wBIݨZ0Ӗca&&mKvi@G-vZ{'=}zx~4!pfLd\LUVMkىrT9~97`[.9AKӽ6]M6'//ÿҚTeX30w4Ea=e;;!FμCgY[<]o#ײxkL _$=Oޝ}Q$ 4f&&mID5]JWk-NȹOPнV-3jLL~lJʂX5eƝKm۝\#_.tiG X+ İEx$R8ŬnFtzTDLaY &Ƅ&H⃖ѴFLuD&FnjԒM::HԽOeq㰛&iZ.f䨜 kF:m[E4 N& (V AvYȘp{42 'tx5Do)d}9SƋBBB> (C: LB}(0gAHBV$x9p2&M) ^.]Yb/P@]K54,$\?qIAKk6h47lW Hb6P\ =eYupJȩ 8T5ځ># ?-Y%hQ3\fߪf`kFSHC̦xS34$DjT f"Q "CEX_M<]Z5y e-:(Y.`%gG2k8X%ᵙ>$LT}1c1Vb3%Vc譱tL靱M~~ &pXuU1sPp82WTh'ehd܎tVq8SI-W5c7F:FDlơ@+ jg5ّCΉ˽b3[M9RIl8GىWTXNx$r]vi;M}N)Ox|^K[wF9`/FcZg{MXB7;.qb t;v`yѹzqm`2\UJ|&(򀵹Ն`n^=u55cN=L<#3 V `p'_Ѻt_)bsMմ) !H[dFЛ$WR=VD0"%)^iC dmuм \0"s EЏ.V~ޣ ivn92hhVD ILMꅆmzl bkܘy3r\dO:O .ߠok۰0wirfW2L? dP=^`\8\C]3@۹ ٸI-L&r)+("6fn0l{͢hRO~y~W4j*VAV.D]MIɛj񰑳xn`]~Цcu?i ^%*32eܼ`F%i{X;XhuHAZlZn%wcCi%e aL'-ڀ5-vwIoipM;:~0Z7y ꭋ(`):7,[VLWrI:ʽ ]Cw@:U lXF !c': jZx󺱁v{I*$`cZ XA]Ӛ4~ 6̙0Ja|Pg'á>n Ÿcb6 RZ_­y,iԱ%1G ݺEjMφkL j0}ok'A]^'Lܟm-"ւC 6 g,H[c&U HA[X {HPZ/E\%¡ŧ\4EW_pt׻!_r+E w\<>14T}+DNg.M4*,ڤvU(-cU,,2Ii6 0vhA':|YtXڸɛ>.m:Imfi(1wri6N;o60d%~%[lrB=]O']eŸvM[TjcC[!s#QK'ҶknN[^rI58D$|VlP̀n(a{H뒌I RNn~y]"&"A{QƊi}0(@emtʶ nm6]Wøq .PcdPv=l#PpQ :+Ƚ˱j@HǙ(SeG0f7sCG";}:{fa00>I0Czޱd:ѣ߲ -ăIӧ ė4CMeގ4jmpɯɶp JGൺ*dGKLȟ**;&V^ƾ6@sfeSv[+%I KСGAJ_Ȩ=Hyq=L񍱡P,aîȧmZD7q:"rcm28D{u hx9&f'L2mFԳ&!¯C;%>m%sĚsLw21 \œipIj6MjTmM&mMu_8߼f>C_~ b @ݩ`Im U;ENyi?QTuYNLp-,^,vؕAE΍l#gfi/qR*3U8;HFTÊPÇn$%})B\G_{[cz}un-C-V:C˅.0N5,\d>?c$%uZva;s*W.=Oz6ܳ;=*8phfwg)F&9w0n085%3gnEhNn25_[aW5W|`:W=K΅y`ݱ w=)Y2@Ӆx5=[q1z&=_dk:")|u~6}s܂6恇l,*\xNy[:p%j@m d *DPKyVSIo "3pip/_vendor/distlib/locators.py}kwFw D/-1(t<'xl'{7  0(i}UP);=gqnnw: N?< eIm7G'G'ruDOFSoy삗?M žYQgiДAswuY/EsTYu-Ҥ|Ȫ gۦo*Y Y|^>7Mi^x^}%rGGzSVM%-re k?PWr U_Z}ڔuf4E5nr#*Kp7lӪ*I*YIP0۬2+z7 6I_VGz_uR0\CoUh[Q83-8"Y7^m?oY=O6iWdEVTի/4y , ԙz4ٛf֋ :R7cJ<~x-}Lf%3nNL=M6M_gM0TMVyJJ%ғ?OY:T0/UU6WI ֛UL*_f LĔnZaps˜Mjˬϫ (5MA`jvf߸9,co2zV2X b-}N<~Ԇ">n֫kN}^A_=߾>?Bi6neQ-h*ՊpLmz]Yd#+GͶ*]v@ 盘*M5nI .신\6KU{<VK`3 Xl+_ xX;=ȅ//kR*L 1FYm.>pznM) 8QF|UY8bGsnuИCwpM^weu$+`R2˵i*l2TYXUq16ݶ~GTxӛ06*Ymh\r"3Wa2^l|Ull.6Aj o >,\nq0plqu]BⰖn8jL[&*m}?i­f!1~<`g]/2z.88o5aVDy1/+\nh]5fUP>]Β %l2/l?ykǺv1voM• 'Vyh@vM:[7"%.N7-jj#34Гv1ȑي* "]- 1L".@e4.hIT 6dM;H.Vu &]%(p cſ/QVQ9CC ^qISˑ$ ,úVZAŸCQ7I/Agy~ yf]^\RMFWR6̭IXf`MIw: yv6KX':& T-#@Npr1-2ɋ!RImRp7L_Eb*JpPBۂ-rqJ%jƓb!(%Ed?z$M dĪqeOx>EuRa: \2W3p (K"$1IgaWeyCh.k(m"cE)ZA4Ob zE}| )t\/ W2«>`9cH!`]|Y`\xJ?P\@hY5Ӏh Z '5nr.(T mFE-޶ƱQsa)++FFA89%E) 238J(UR(ub8QXR9ͩ!ƞJ@lU3h'G^߈+$M?/72#І~Jq)vdqz S?bUY :p 7PHbQ6flivhHc!4Fܥt@wS@L>&رnhʋmf`kf’D#c:h& 2AѨX'Xdk1@'g9N=C8*P\WLArl42diT̬7mn=.ԦW;jrE?s}Noi 1@U[$ۊqF#goa Y%HAl0x Q͇p{vV b~uVDj H3 [iR6=W+T E HPzIS/@,'.gTACC*,]1!"@i'M,c",Ĵjd;JvE%N? ᘒ=^:\ۜL6 uj4dZ @Ie->z>j`fdڬJ𼬥UF8*~, ר'\OK+ 3.KM-2h$j%E%ͿȍixQiq.ZM^FM҆u ΜS6g_h1%xrB!ElS˨=R-$XGi04dFYYC"2q5@ gcɱ@ۈu.>UfTJ4f,"y |, UID&$H9Ep[/fdѸVMӤM4:PR zoƺ@|eNd- |7 Lj/Ж1 q[ߙCUjrHҹyྀ] ҙ[K~;ܭΧ8@B[<M^` 8dUZ'r0MIV [ǽH,S{CL+X޶{?C/ ORi^,ʖ4rZBFCY`!"w`8Y20=jYW8uƩ3>罬%5J<bOkbh@EjG{(y[3pDpŚn @m,<;I]wBA^W<5i boHooxBlpyz L衮yp=%P n"$roCp4ә qvE^Ͻ_ELt{y>y=E ƳBޙE:Z #P-uT臊œH`X_m+V!}< r&띘{Iv'/'{:e79.Sb`dsm)p5QPFp0[?…IEpcuWmr1 !:R b0TkQ*piz'ԣɿگ]iS+c8Uiij% FIV>z*m]k{BaF}w-[ʵi@Elfv5/%uz8JwNݒxdGÓS*uXE:U^QwT?SFT;GTg sYqITL1^)#Xё2A+ʈ#Ͻx3`7-!'\y:g he$x#9YhLvHe#{=Ob T^r4Oq0OITlsU$ܚTL`["~mI+ITqeQQhB;/#4nby%2x+t}WX0%[/^ ̃j3WHq. 0Jkz uOz^Ȭ'aUa=4XG]vʴ/ fC$V+z5A4,>G(}!?_~}! ¬4YH)v s9lBG1%4Hn`ty^M;1slnE?Y tk:aɶ&sv%(Fm >LG/ǘ&*Ȝ R!:0v&Fᵎ s@zvY@>$? Iߗy2CtYT=ΎrT[CS[IZ]9Sv}/?'@8+37 V@ z?zۯo .HMM=6TQP>yP>uKt1^#x Z1@4EdN3J" ).ɳ!6}p:Q5'h]_izfH82[^lL}Ϧ}6xviN?dv˟ҏF?l 9)w7W"mT ҩ>/`$^(3̀rJΥ*qNfΩyC!:e.Ǜʖei|R =qJEP]۰+;59,b}dAI$|,: ,RA]V !>Me&1%D7́}?QHv[}u0fb1%жijS(k҉w-\.3W+ʺܗfЀH"K3/CI@Q VwYhw>L:g∭oSkPQOasE:~Wz$ |@LF3ԺL^Gg{W7K%?CoI:4>({:]/&@ǘ˫1n]e̋u.AUau%?c'cאzZxBaշkQ9>ܕ dE_4sBbmV1{5"+jk$`TOT od+Vf[u_eO0@z4wϰ Չ):{O_:)?T 5e:+&eDŽA/>ěCGout:bݣn6`$Lz %̕=K:==V4gzM-]_uZ; zH*'׷F+]3|k:D4_taޢjF=*(2ժ+o:@B1Q^aư_nN~V!&Le uY1wa0BM@ގ6 BΠɂ:R75< 0_hN$*`L3/]i'[yB(b؞(Nc`Nx9C#nrWt+!*W;7;'U07sMѻddwf`DN6y=6}̣ z%JKZ}-ҙLPs}Uy-Zy_~2/&QԽf2i{L!#fh˒m,< :u (t%TG6t7k4@kw'^)yk1KY1nۀ1y-x:f9$ Y-Zhv?x@;c'Fi2Ћn:w$|Jf4tt!"g3;a(RO{g2Iq?/ >v2.[;5}-& iyϾ,ͦ&I$PJ'wY^a^G<΅t B&l,^lWZ.NYe4\VْNH'=æ˂@T8Umu1{`̙~4TځqqUPV(yeռ݋uWA?o]۴ NRף_=~z@pU׾&t7{:>DiVa,-xF9P u{·ow@6A]yG#ۄ*yc(P~fQ1/;ep#6E$xs/a (j`x$bs+w3Cx.l%uO.ĺ xIA>q%}`ͪJ߆؝qCi6vmc97'foߣ *ߩ(\Hxylu_ߡi ]32~]1 2kfzUJtR6w7Eɕ(h)&s̞ݘn'?uw^у'.X cNCM5S:ƍ!m/o^o[S+M{w-M!_^H=3<=h.WnH=L䯴ՖQS~+ L UaeoPo77n 'tztqrB໴@FzuNy 6h)?i*xTE߹l$0[V k=w ~4}Mrf?6:(DqÛqI!k vl[Bl\XMqS"k>ř&tG\8*j51 o&XV74`Vm0$AE 1; >7֛,Lrp:`v> 40JEHVȒt\֒ RLџ\\Y2)X >Rدx5  në+9TXw适ʹ9 $^w58VDt >o:lc IMbI8<ޒoNgqOf뭜tx$w0\#T`sƚBG yȖgb NKz-۾F;y mI2;9.g+ |3Ӷk8{GoM@՘\ۥn_Dj+LAfW;W +YQC)@~ʚHwlȭg:adY*UCAAmSyl'P kٱS9?QBIVS/TlCMv'BJ+̩td:1LMw8q@C̘ U@n`s9i2Xq0mye`CO51+\J_c]1ͬz1~SaVhyԶXWY!2N(9 6TSdTM閉u4y4*#޽tK)9z+A̵5ҝ)'@TK@P(QB@_F>19sGL芐1f5{ofZM3,O}V|l`# te]ir3 <&[4>w~z#Cj\&|H~g)[dL۔i)/)pf&5SLbxW <{XU Gdʩ =YGZcNkxq& Ao k2Ç O<]a Ӄc䊔1Vl#߶'ie-u'c(*Oª)8"qT[HV5u3`VɃz48g|oZ>|P JUVv 2W*,sl3ihHw@@[Ҵ19A h$ 0)Ѓ@vƺ,_Pz 3[)*){I@G|^v '=6U~SzQPFg^ oϋ =B.ߓ Y~ 1h{3 Y鸼%^S ᢗ}zR):"<}rpZ, K,1Ϳ7dmvN566LXF#۠كਯ"'(%@RPSSJujtD}8ObZfy![*4vPKyVSx5gl9pip/_vendor/distlib/manifest.pyis6~o+13dgi|;P$$ -k?~{HmLLû/@;l;bl6fe1 v;@,y2=޷/FKv."cbZœHDê هÓC/X??^_K7x d9_\X1,MdĔMKd,d1ʓIv^&wa kX!hFR \=d0z)-s1IBoXƳEXDs5` irnZ\,w]L#Dp$˰02dY3E 4 Ϯ0K\`^k,/>;7pCvͦ"MŊlVe'ao.'40puڽΜ!>pak}y\gO/d zWr7NS@eZe)P"3g1@Aa &StmA5h*r{H^{}=p6E:jf| ;.?= ~:<8:E& 7 l*{ xTx(ۖjO$-hؑ/S, "Xrq]' &dZAVV0A`@1N p%O`.'"Y3<$9EE0^y 8cv (|x) 9oswDƧ`>ڄN$uL zA@d0b&(p,P\opD0:%}\h S$Y9I=;ү+#*(J@ ~(n؈}hpXBeQ|@㗵NMsHrK\=|8a;M5+\//zR,q:\/%Y\j槵;rƀb hsAc=D@+iJ4VD!-jTN$1=&'h~+dЄX Aav֢|ҁDKik|r 6^gb_SڙL]YK5޼;ީQ%9ѫvD[UƱvR m &E`lepG!壌Ƈ "pr'^P4"\P^U@-qf[*t Yq4ɯ_[LrblOZ L9&HLTRNWHĸюUa*7űs4:7V_ sэFCo ϸi*yc>)ga ,tPS?,fO,ڵ=CXz$iR$%b5JW3: Rt<ñP[T.Ol 1rjTuDҰBӖ{8O;Z:\5,q\; uJ BzqMwSko0=%$FSNLC@]m@i<9S31 Gs1Qy&$~9. qVY]'T!QMr.4FwD$T͖@Ёu%`rťd@ 5|̋b9~<g+hϥ(w^,m,{9fOUqdrM\L@"WΤ A~ZS~V9aլKtm0HI<$\ŸL: ܂Ss/f "Jx p0R6 )|% dW)o:(Ck9dIh4XS +[[`V *&a<#Y zgx %B5P$%T|6 dNRTz0e<5}$Y1wwlvdu:RӰ=Q/rS6C&T :F=,N%EKZTAԦF45!?]4;Mh}/c,0}Mmhmg{uaKW A^'T_\|URhqE-|6uSo*4|-T" քXuԳɣ~u+X~Ӣ5 { D˨R)eL2/5(jţ(zO v65ا2gp $Ag喌"0yv/K" 9B N XqFy\6 >Gr;TBjH% =_m<ҝlv'AZ`BnQi"U[k1}8/7J_(dyBOAqS4C~rq~M1eX'4ΧB}9G nor;hZg@ʱ,u bMcZ \zڌW]TgZ۔u3gB=jKG':2nw*uh`x]=cҎWӕ}lMnu+/77ף} YR8&=ćɬ' oF&5-jz0 2["V, }P?&2S\pl2,d.ދ)$]SKG-:uסPP#hF~̒,L(rxzfr/B9age@*<+ԕ r//D\ 8YcD6DIhC;,TTYlaۑc&Pα=}r-U IݚIwNXw4!0b+(@S13׊FjVsp)at_s_5Tz$hTplt@C6iJnmѡr 5" &&<4*XnRV2TGl]P:`⼖`X7iLf{/I.Dt T%a PzL5R[v9DU ,shzE~9 YȤ{1Hsjw~ ݗDZD+/OYu[G2} Â'a Ó EtN(mK&o@oتBukS˸a@OEHz9m;wkc8z:NszVcu3SӪ"(Kn8^o]nH  *^o_,UvsJIvxzwvo|MҮ݇C|(`cjBT# $Qj]RRoT)6G:|5!ŏ"z'o/@r v#;rT][(dk_Bx!Y iCaL:pibUC!3RGWNy^)tVݸyV) .n+:Ky0;+wu;]P`(\u鶉U.C4DґdtDwoE}]icEzP]k ( :5hTٚb%5Qk *xFU֧J//7R7ୱ؅yٌMTة( YSXK-@&eU0`nTx8]"[ ;l[5j,KmvnЩ5ah}}tU5A|c8F#/~}&o t4]rys]PjhڞrWPKyVSy}pip/_vendor/distlib/markers.pyX{o6_MQHj@׹X 4.#6[H*C,fDxo19~zL Yr֬ƕqN֐MJ{c\pAw~Mw`BI̖ӝJAQ[يkp0ߴFF1V3acɛl{C(ɛ'|< ETix,\IHM4yqEŦFJ傜.Nɏ-'8x) ?fAB tSh7ղl+mUFZo%7ynʂ Q@UP6LQ&-Nwn0ݖ[FZXa2"X$oki6"^7R"uxR,<]TԀI(Z+Y)J&6+k*ls?dNەsǁcCp"V+ZU,Tabru|a Ŭ|b|\>{}.]_8"zUq8VLg_!A7ͅ6T,)Dt[%[Zik\| 3+ohb ZھcHyhbD;=ygLIol Ae$V(*5YҪ@LgVϷ\1~7UQT))nF!.C鞼`M` ٽ!1O_M`2:!JX}Tc CC 08cdH4T=b5D~!h/ #l7;[qgVO(G˕I>u`o)t ‹OJ)Kw' {8b=Kh }1;~q=0c*:K=(+l' _(⋐wR)\V3D>,?a{)B`ʌmUr(llCC% ;Z->ʺ^eMz`m6^=.M>e\@ uk)P $({eVL(N1k.EH\MՃp8 \@lͰ7|٣L٧KxauV{KuBx?3ޅ}K 'O]ξE khz Я?;_ȾpTPUQ¼$e;IV6 %FKhNS'h+s6X:xV6ARׇ'G_=y}t|9+jA_&pIpQVE2N.YŢ:H< x}M76pԬ P%=H@b'uXUVPwZUe2DiU,ռn~Vy6kVBn6_4ASBIGVe,Ok`\ \ 3yc_o"'K\(aUr~*o7MgjiIdH7%[by t-%vղpo:>8|:>{kᛣ \fW>h5VzÁ }$BBbB.ߔ v;X )a~⒥PCP3 | ~E @a FQI/T]ObN(|_/ ZXt'~q0}E#DHCXFx&Op#?rk=gʈ7<eweXrF qc ¹F$ =^f3V /|0@ê$=z_eV{ʛ,ef׫o݈`V-<]>~6'm?K60fi$PglrDu=O]U9}&ӏ$Wfrƪ<]hЦ Go,ɗsxg7I$9$+"1kÉfNaKW6 `ml nLX%B 㠜͖h)%Yƕ6A1˗)çs(R@&gp6T[Q/PDh18@Oy@9>Qx#Kc3 &F`ț z9zyþyk|1Y g"k \i;&\;9Ƕݪ0 Yz_?ۃͳ-o*ϓ@w'r`H<zv=29]5E-"0(CE,wZxZizuZ)*#h928@7 2K$%sWݬ;dwޥ]_`& X' =7; Jvy=gu#'7΢vB5B*e V}J.{؞_%u̝toP ğ"5DuVItElb[t6d;e!17#GY':=y{˂ ln' aYSs&O0MnK=0 dZn~u2d,p`_Iՠ XؤKb% 4q7,".ƌSv@c 9>BYN@;ɝ5YI-/_dM$'k#iH-D#9Yo.. AnjA눢O&dMbrIN\ߒr "8u2їPZ9+"*G:NϨ Ӻ궆jJw4[ '|Bkj,MlrC'X pBE3.ŅF9,R|p\uw\ll$A`M8^ aed^FlԯkbA/M Yh[\%7l|pb4/`FԄ0bPUy͊@D?-vh)˼ 7U20ޕ@_IR*6(`{ Kp ta`rHjq9Ka"L72yZ Ւ.lbe&V),{Ť70{ѠAfĬ3P~M[ 'W$P=G2 8/a+j7N0L&Wkīi'Xeu$e7OlQ?mXOtvMHpB'iHy2chslƛ]*'#ҾƧ m$qn4MEPڳV! O1Q eD ڪ]GZ9kZ'o߼$3{ X2_dDFM:@jG@;B1߿+ϱ8x9= ?=31 g81kWs9aUC]n#rppa#P $E#msgv{Sܾx^BŲPVK%b䋫XYrZЀ3Jpwq/ZTwApixn 0Z2.)Q9aVDŽ^&p\/#eH%pS1_UIl)gD~T( T܁2I"gXrM],l`̠VN "U%QlQJ*kq0ʛhVaJ`$a 8 |`\=RsJ3YðX=lgL,6ޱj jCJytCGȚ8j_ {b1l^()U3FK0X)92Y1-T MW%8˗5LƱvd`MyĐS=AsN" 4zeW&#QERxzj`s"NM3]VHl`S.XVq\4ôxL #s/LQG-NPu[ǰ%jűѾwQ3eBKYއ #ʂ VMug3@GӫQS& EBe.5de9#i`[i5v[  \ R)1Axr#E@:.\oSNHӘXb5ֆn+!= lx-1',(Pjuv-'xpq{=H8` ZZf-?_ J*r-UNR7  1H9{ \&<~`BoΜ!ܕ!'YXg(Zs ozLMmʁd5E;n`8%a<šglּ'UWKPv2E2mX<{ YD8ttZCy=m,t݋*b<˚&nn(7ͭK.l0aPv?%zAm_ģdq{RQuCI|'q``n-<[ODԇwm'3B>>i:=`lEd"?P|#rm]%I$"H?MhkǪI@RI}`fp2HDJ>V~[ƶ3 %7I')sH09/UC`)gtlQAcs;c优u `آ@]gXltCC-jo jGEF׀fg EC }BD tsD[ V+[*Z `9w3=F<"V??ʬseo?r[O-{z+-E;i A|@H*~]kh:! ̞5fdyZ%׷IuYؔǦ=B0ȋZX|J= `ׇ]tUd{#n1~_qB; 0e^  hvo`XBEX' ehc >D:oUD9oq/pZN2ٕF!4~P݉iN4J؜]1ZZd$5ҮǡD D6$̇)bN̎-`)L>:L&aJcy '볾*nlBpN&V VDp{U^yd5m|P#U*BAL 4V0Py6`ಬ<롛4OoXs $9ؖ_(xg6CFp^{Q{˜eag@q(HY~V neV^j F*Sv.<7 pӘͮ$*.u;-GS՘<c >CQ~A@ᨳ~6Cpzvq 8/nR`9Y ?;Ԝ"/޽ܛRIE"g椵3\֜ʂl1?Qp4MzרKK/I~Hߘ] `8O)~C /<m Q_zVҮbWgOf؊_[ۣ^C'r#+ɾ)IE8ZTSaR '|h/.wt %hi+?Qi[1:.,`&M褵U`?he S7:&'^ۜ1Ű6Z垞j&.36k|g ;aJMf.(ik[hN2@dX ;{.0YY)LgdEmbu@?Ja eWi8Qu)=` d$_b[CS3 e :3B~(Ag"#o']Qi1jrPLw+\mPYe&vuLS@g: eH ps~04Od`-)jkZe߳_յL>̪ ,XRomQ;hCOS5,Zqzsά8ٿ)1)Un-=b/) FqD\I{ 5ߋYx\pVVlDLܚ;c'0u\-@GBUlEYYɽ>ҙ BBiJ)a~,2&4pv[+%˓(>CyzT:Y*؀aQ[` w&?1 YC$Mc)[ 󑛒pnp_EO)D 5m-Z7Lyx A@;u|,l" EJ^@#Y<ׁox<(hb`g2Ϗ ,sIQ8Kyc0ҹT8jz|dN“Bxf7[O]k~U0tUtw%as #>^5ՉIrn `V}ԅH?d+E3~d&tu}Ա }Q$ҫgL7>,z?/O" OG,_|8Cs(V<~Nİ=8|>}'; YR@@/T -=+-e1Z b˰f$e퇔H= 2?҇~hc<ԈxB:_fyz]]MDjblw~1+n2Iapx.ntkvNa¤.\2C:8obpUkF:/1MX,ka,w>PhYȠdU,,\m+2eYa碜D99IbDFg0UIYuVF-Z)%/&FE\E~ue8֗`4h)}ynxNd@Z-J.{gG: "hzιx`Q܃Һ9+E%-UT+Jxoq7o;2]]]vWN[7pR8 (d5f;T"ީ[WiX!8а*/){) mJ?&ґCZmen_a?ƌV Dt;U׏x-Fd{Tg2rx]$U2B|#`XtHXW!6эX8j& jë@ϙLfucP1x/ Q7S:%IFx*nGP1|T r}5 !tQW0fY+q Fk~ N7-zV.5L5̩Յ~*Bod[-WxpyjE~1NX5Ƽw,KcmoGk^( 2LXp|"@nnV{D4}TVüBzLϟE^&V ˳e ^e5r5 ,Hw-]"}6z8$'n֛4o8[ }jYg`X ҩekx-OMN x?$VНc/"7{+Lڧ&m3=M`QqL €JuR96yoo@+_nzߛD;Uyf|u@zAIB^=g'NG#萝E7q-O/::&3uѺ;1iŮR8"[:w,iu Pu_bd_XӃDcǎ^%tjpf{w$u Nkg h=0wl1+6o:[tXI3y+iUJLb@:BSh׭dGPZ{!)xZP;?xEiLeOiN+S{nK ["eǩx*Iba+eh`gq) F S^hxshd6\"XAdDHob^c?,xye|8EߴJ[{7$V`s#)]HK";^ށ8"HOiA:wB8~ptEیb+=1ZNje]cV=!X擡!C?xXz_֎'o`QBnƨW"kS 1sT3KHJ4l5Fy<~$lH{zXz Y$Y/bぱw"x"_ݟh:[1=ោ)U b~j!,QɲZrVۻ`+XwVΗ:V=7 ~3h8Q`*GS^۳:Le~d:seca#֘apP#Of)u/0?K\^נSom g|gbЈM 0fRsaO+1, za'UjǭK 7L̫.n_*Z@;A}6VJo\;0ZWs>;m̈́(~3#W|X2_XI7*̐8+q֐nSm8Y.BQsͽ 5'M'?tۍmvL6rR%XˊI=2b![|ڛgpQ>מ2cM̷o GzN?oj?F{c/VdJLˁvC6s2AN c+ֳʛMYk# S:*xΌ>Mb$i< L\8lƮ0{DB%17 [ :K9 qY_%TUf6 Ն2F֋JdeEuPKyVSՀ D* pip/_vendor/distlib/resources.pyZ{۸ߟq|0m/iRHC6)B[ͬ, {gzxw5- gԘ]|{E*şh<EyvW}wy/\\wtwEnM}+^<嵄gET|y]ա.׶b/e޾yͫ~S޼|tMUYlI,K0E$E35Tb]_߲bBoPTG7RK~|6*VHUgra-J4 LKH*JQۊ:Ɋ+1c/h:׮1нgQ|OGqջ" >ca]w"gH.JBj-hGȗ xVNHl3c55$z̤='aS2uA8|?̙.d^_Ɓ(V&.y2BGEM*cMS'HQ`3mؙR%0.g 3+Al϶IK^@=Ef+>!Q%͈X)H&F-<9U٨kJǽVu`;IَW)x^ebT4SaXŖsO7Rvv•?8R`Zuq ԙN,+:@ b-gX&he)"gQZDN!A0w#"SCtAʠc]V諞)$UMMp`3O"=QH 6EHBa[Q'*;sWιkh@M>9y%|+QW֘Wu(HV \+Zȹȍ36_M+ΊML3;c|Z\ Z@{n:g7=^_A:3s`|iJ@h*X8[^EV#z@d,aEYv4WGvP=sU8+k34U y`+D;\׀JD3/I nr%"1*i%N /nq 3;0.1 <[Aa7j(&[U{ 9q!۬XLg_>]VOBI]mgzLAJrv{HU8ShCv6ҬAm}GydaYeiL!MWML|E\f} Uh_neY⡆ i^&qy\O ߂Ea9G6[v_SiSYu&D% L(>l!l{PB Fy~9IH6a` n CIj&x9 1l8pW.` $@ ,YhI5~j%-m Jbi>iԚ5ғx&n ;\TwYV܋4tBf6wXymP$: <="ۅ=^Gn+3Wܸb7.ó@`0P`B7뽀RFWZpuLNT @c.a K Fa MN eQFQ h23)ѿazB۳x bٜ].}Q40~`_!6 ZnJwla an Z`iD7WGql!H-..yUU= ґkGαat|\jj!p5gX@kv~[d(c?YZOjh 3²x͝㣆Xa6~AcOC$r2m: !p&$Yq_ڨAؽ ]>y4 _CuzaZ$7ucGzdѴWK)(wSGSӭQDCNxz5 ]A$~UUEOQqb4 ZhȥThB+6ܝ7hfAcn{_TO{SC0+FT 63'S (O31,:,ϓnw37r X./ 8S]gu;K1hҵR 4֓/$vʕ_n 8n..2WcWS(@dƮa# ߋ5DxC!ѝW%n7,SSßZu}Ah<ɳ~~&b<؊=|tF D̼ GF1kȞ?̠WW'Z@&W݇x:37 .#φmg-A|c[KusMˋ\fK"?<TG*$njXe6YT`8)̮,$5:iI1KwyX'?b4S۸΂"ڻ&p03} {o/쩭{"69@k00LQML<:э~;U9wR4 9[z#XJ7ͪL10iU7~z eÛ0?)r3}7^ 묩 &?4>%Ez zC-Q!KN'f2b{}nnBܕyϏF-tJ%-U{$?2GUbGwdjKztf!woH.2݂uk87tKs0>iI,zo50PKyVSE8Epip/_vendor/distlib/scripts.pyg*ejV҄ݤ s"J39 aDbV~-s¨w7[y^ǟ1L$r/h7%HGc>=ĒKy{s;\MߞL圔 g< F >}`էWo'׷۳70zQ ݐNQt}-*L`#RQCvkg\=Q`ˌGbaL knz-_RaөHN}62`$zoiuʓۼoyy:A Xpà;A 9ݡ@ B蹯8(q_Җ -M"%W l7g3,L}% LNʀ$xJ }6wV/3mwsBx{37̓^cD4{Kh=[yMut 9-%('ax"nGiFJf'4#R[ER1 4dy\`~@#g 4٘.ۊ ]$zGt2Np\s*_\0fH2Bw7fDp 8naK+V^!mh׍8 1S`_<`ow9H`ވ\f zElr¹|@zk0&SW7gyn:΄GLwXg;C|6\.cac}j0hJ5[w-#F*& | (mdЂc`^^18@z^@\m}ϘOsoT|݈.N7OV0 n;s8& 7ȼӍXnL M"O0{ XMоڃ//ꝆAή@Bu-;YhUʄJSzO:@|^mR+p^'`Wel>D 2oRsk?[фh !qKR=)갲Wm0]h{ei_ Sd jztzVJef D2*u0t1zcA̓ZuH?i  ͗cs?cc%:V^8'Uj`)0hܓI r9~o(,0՛ƂRÖ?'ã-gyA!d*0"aZ ;ΩGm?|Ij`*~<@b`rH %EAތxvOmfqZ{5) {yuYן{a)icdF80UZdII*ZPڮ MûF=Oa=; ( P*~m@ ~@U,sL"_:oV0lܢ?pᚢPՉgkĨ+67DWt)XP;{fB$-vrrzcw7_L.Dhh N(΄DM$;nf` Rv .̱rE *B_{#_Nrm&K;j]y;/dŪ@c,RBb䀍ث7o.o^w֤N% atѰP-"R^3[Ax8h 5`R@FQ]6 ovF!U.y v7'R(2<8<vxdQ1"b~@%{uz==`ggo͟O^ 껧Gg<ޜ^4yٳM[Iih[) $賭dxNuBA1 G2U+@ 䅂0f,x[ؘ*ͱA%AqV~ 8ƹG$<}wt)BR@I$&UkWtV3 F׷w4}{6Q$Om!2\CEa ooQ,t?>UhkESEĉwV.X97ޕF[3- sdmj)eDG J6TT2ljNp~%h4v+pYJC6D`t6P `ћzZ[hkoeN:dД%߿QTC2/a\`̳惲6nGōzm ?񀙴LlȢB*P ̧†5͈kil_-4p͗yޏˈκh;%f7qlz$.!iuJ7hU͐fBX=*):Zp9v"eOhf_2j0@L óO_X&+`*zrj eʑuّZjЭ~94*na֤b*ϰKK= 1P谴bvVL[L(XUY6Vݕdݘk7Tr^|eKqձ&I[ʇXu/iI‹w_Sg:|=v.H`_u]WU~tq50G@jO-VyHx]!uG=FךJz@^ ZBF I:w/I};tfeeZ̜:ٙ dUP#댘 hvP`kl\&c.R";kPq RI_!xAʡ=/SOh@?„`ȽT\`V{#%xƝ"(C~q:'x˼1kT)9qRWO *0/ΰO aDUmIl#jώ0 VBn!OSyoD! $ޠLF/, hK#%ΥGOi,RF^'_0ӡ4'N#dsK -azy=tDuJalbW ]L؀k^I]8va~(ΰe GV.`ƳY+ )wKȱhA>|j?-g,<0R޸☝d/NeQU֯@ցd:#ݍ %> :Lg-]0ֽ]s͚)" yf߱p5*Lƾr 3uխj|T$d@xRg키{T\̶ ZX9ܣ"TݝRu--ۆ׃'5c`<AڲV*4.9֡'~h;>zIg4xjt[k D"'MS4VdG"AJmE$DaYSX9-sF,^ih1Ifc;Î\gw;nơp5_+H[F~Ow6uFӳqת"iV:(gV{ݎ^IG|\?h;) Sfy+wmNNqGm! J asOSX4j4g;+UUְcs&Ԭ{:14pǍNqs'yGk8}DaI+׺coGC Pom\~]$OMa/;c_woDaMZy.@Y)&!0l.ty:_cmtLq y~#^{& g\Hٴ\R4ȫ rf ;Ṅ~ ~GB\hp԰ӍXHRhuhf4O"=Mb^O":[ vv4~(X[}.ǘ]P]j1m!Z"8mem.D?6Vx_U~8guenA$RS:1{IZm ;N‰~j3AY6W+'r+M1w8h+)^9"'UuEUDl]]iϜʡRLEDwjM[-9%;\?G^E60iOmâ玀"' ͡7N.՜PKyVSzpip/_vendor/distlib/t32.exe|8<+$ A.(q nL6D%K-f+ j[R}.٠B5T:<JH29wf7 >}hv{s={9Sy60Ta3?'끿ie1{~wȺ }=࣏~ѼG+*;]zNffz^]˙?mx~P63F fF铝;xw4] siU?o{yȇ]fa,̖k/Hu3FC!aN ZfDl`0@O@wl|&_aY ̋o@jA31{7g=Fe ?_z0yЪ9 q}i4뜣1oLp%\hNú L }fgsV.~ဖfavL/aoIAeWes5WU <‡&YoAz Cąnr ~8r.L#&?i`tM$j6bMLC9P)Q\zj|0FsBW1JNsQ+ - Z,A<; "5J=~ ^d~WɹIIٛ0K.bRUpT}VrF8ր}fR{y?aRb{:9K-],"zj|+Xosc۟Vjmk rn2nPU"{)DҜ 9})_VĹ^7QgO=U"j_F٠ Z|%4'Zb%n 9hY \՜2 s1l <4JͱA#*k(C4l>ݻ da"򱈖nF $j,?j']Tp [{2[݇.a!ڦ0~KasNYT4~/ [}L= 41>gd+j!SevV 7$8!sU>-ЖܾTp.V0.P{6=b*F|l)׋3r??ۗ mz4X_"|'t ]VX:rQUs0ٟXŐfjNa4p"@fJ~pQս}CuԘA\<~ٴb|γҞdFD(?/#𬗬wkK)3]Pd?E XF~ѵ.mLӥLt)O-qt4|sul#m{^`༧bq^ͥ<r<4k0SMMp>닶#IK JKS0"yOWj)!ԏsDB\[r+͢/` HIDq Y>l} cs˫f|T΢puFM />ceto[\&VPVu^7!fS W"3iIn()x_hmY1d.:{d`hqH KN$ J=_O;dJ\rJ+a bN1zH6:IX_/,DiXT6x}8 eO) QXEfP$Gb]gRS6U=\ =|B̏=<JF } *ZODy=F9a}C#-CAWۇ!FM˷ &D]($ GA*8r-$Iv%Ġ0bbUJ4C?RI?B1 b`y [x #cqx{l<qMU B$*Q Pn>@!G2Urk CxǁJWdOON{<$WZGe]ѣNQ'i]DZ]|PAX'RHU6[PB]W,Fd\u!ĩWUlgEt=8śH*\Uo+2#l2p95JLr@@ɮ"ErD)6+a"Gr]E)%ޘ*''6jSf4HtT?qY]~U,Zhjy!s&` p"M ʗϧ?O@A*:y3inw4_\ 6Jxú ^Gi<Խa^AGE ۖe ӼQ+ 9/ t;oCCMs}O7+pA+JH{o7ޱ"a$B$f]A;uUq|bB٨k0Ʌp !Ofdg6P `]/ܽs7W/QI(W= `ʯzD tǟ wF"U@neiy!WA]7VJ>XX-;Kωqcí4 v,#O2G*c$j$DEćb]3IkNb*On-fzյ٤d.rLE^mLQč͹sU$ܧFn> :u=ȝ Vy 9JY0.B6d55IgAF|\Е,Jf|FudUP>p?+(6@T;kD1Ap8;ɜp'DYo ~ȕjq@U~!+*5lwcv C*5ȟ\+zԨl[p+Z`tsb`ACW]!NV,f6 O_8(7mX!62Wqawq}z尒*G0)8duѵ(G q@ΠݕP@&t]T= +{E~: ꊷ{w szA \C4ZU%W-!CcO#k-/b-ZM9 2e88$L`o,닄\Z:"ZMڱ8zrj2w|DGȰMSh<=ͯb)fSqs-6%Ty#@2Enԩ1T⌽EZ*tFR#%EV]/)KG$1>"XgħŸᲥX^[_I:2]fSL:l1݉-<՞fx d4=(zITzK9(^/&t?X#u Q@<{h%lu&ZM(6][?WiRe]G%Նh<J7*YSd0C0/Ns} ![=rqhCh D!b ֋ET9/ ̷݄1fL 5X\Yd*`O:d,Mi$p+pE+͍&ioV ˗#m¢Y[ !9U (2A_N"IeSR?,fs1G:t[`(q/L#.(ƯH-hgkZ^kսxAt(<`c&Zk!߈"Nk%ɋ`ebMJZtX'8YOqb?Og^[POEI 6k_0.I^K+Z< 9kr ֡<SzNYtX09dMVr`,M{ԟԏ\k7(G/9WijyU^)?53Rmj UT3!; ?e&ug%:猒@$Z޾>-:Cvh*L5VYg;Gdj噍鲫5Wuu+c]Ef:DD , 9ܙzl=$cݰk/`spVA T'[`E&y*U Ԛ=K8fElU&'CP.0GN ?]%?4_Oꀾ!-mai! 6Ͽ4蹮%>̕LRb?R/e!,&6қA;RDmbȽBHvX]˭D('-/*dy @R_mcjh0h @B7ڿd " ܼcūTjͅᴸgGv<*ϐYt>L=FӈHDMD-F%;[ &h>CE;B=QKs0o E-sJ+  ˎV< A5 ER[eԜ,x^B~g V &.ecg  /kr') R4>ׅON=pϯ>YAR> x@ed`Y wևS LsP PJ%W l_91 m[c@6JzQQrp䅿h; o$oQHt}^6=yV2dUFohQ{ȍHTJ6 ~\xs/ِ\f~8r2Uf[gЕ%L"DԠee9.X}*^7)imENf:/7e6iM-U/\j50Q%W|V#\N^5,0Đg hӐA~E˕qW'[OY\Bx?L-r-@@/RI Hx| u8?^ҥݎ$ $ϕ峫:UXm CCʘ+^͎>69Z,>af>zy_^eQv]y@f5S f?v;zW-rյVu !Ra&媏"9:!3SV_q{]U-99 S]R tU G=^?sϳ,%a^-g]dϐ^>$5\T:Wh6P*Kߝ=V@}_XR .sog^G1Aȫ"/.`y(R2 'xHmsUE>oc,SO7BΉx?,zn:‚ERk#jJr8"4v OyFdէ@7no']w?=d!E۱z@.u<*%.vS|`eq?˲ZY{g;TڍMH{B>z1l sf10Jb;r^~)yKL見A omb!}2rc.[D3 "(@Agco$d{42n9xMA^x0[ J-%A-Cݟۡtnߑ`۩=V/aϘM]p^Z0BB콢H|}j{Ÿ/k\DlS b!+\Ft^,MtI2iToՋs\ݬgoJf_Yv f %pIaVq-#\.2Pwh`#2q-x i0d4-J rKTo!k Л&Qf6 c "\b8/JI ([SPé1Q:ȉcgᵟe!b, U4!U K > 7JߌgBƎPH'{%p{iKi!=Bk^ *m~ϛ:c!4_R_zhkDkfDk*WhޞL)";Z(bn>GߢBݺ%{S'Z/4 B룴Ō/YM0bװͽ Çy&9 :>G~nALAkQZQ3sOP??&g!~ i:$p[M&_ W!K"[oHɸ5jA)%JYmy9ABNt hDڹ,F& BFT^ZDÛS4Li%ͷ{hL{-G'86r.%]+3BP6L^4(uN+ mJ+p)g)rraIWOxxrȄ)"y:lMMu$D^q0F\6b)h@;c&=/u\#[kq-sŀyײ ˀx"(Z $آ!:d6d X4p!/ A[42pa<> 4)p|U@@^7KKŢ) "5kr  ! Hl_ D*7/S)i\)T);ZV3|2N /xKl‰B۰1ƛ7(Y ,PRvl^M-v׼@:paXoVs^.K}\ҮP@# ۿN0 tt޽ko[A[BIhi >7ԍn#WiCe,d/d"҉S sbEo[]XM_g5-Nbkjb1}a#QynMA)?ʽab~u4,?,L6u&lHoZ5\d&lk^piwM13L&ީ3ϣA/Z 5 oжHn'N3 zI8G/'zԜ]rCH%|؉$-:)Y8a*-(FZА05j j5g74vweaHrJ6<Ƽ+NyB{ټQ[Vz(KVԲOcl!KѮ'01{h!kykvChOyJ.da=艺՜W(u+D,qC>;p ZTM'q45~ E~\_-Ҏr)GbfF <|H$tF)h+7$ۻT P42(Ͱ_܈VM Nuumbr-#SRkBA7KbOG(2WY>,~3h,vew R3rUbyƪ@VG<g.p_;t"dDVvdk N4]qyƜ<[.QjZ8y0mhˈr|ϙ`J_gPL R\x$ ,#y&yJ.ƙ~W@Ԃ^,5 O)s>}Zw.=$-zyq^fAS!41mqּk0!%huֵJgmlN6|QlR?Jh#NBh8\"L1 yZ*RX ."oMba2հ# teЍ3<<^'fMɍ/G2%4\鎺X䛟4٤O PjNGlj%+@IÂEBu%l^T!Yu˩;V~#~n|Жx$6 "r'koW876 ^E&@N~Qa## o i S~0݀SM$Y_AM#թ;a~j#?-hTSl9/p۽DơHܢ!q ȀFVcEfQiQc&V4bG.t|ǩk$ 25n^[ћ:]IlCK 6|-HnaL v *pY:-5Rj̨9xFsd`ZaFԜfuo$ LR%$@_";`qz$)fbca.Ȥv,g}/QU xChl _OZiw.-!c[OG GZ`Ӭ| ف~ y5D$9סЃx4amP=0fZ6&3F:ͣA*FćaN'fYR4D!5x-(qP:)"x1ѸꯐJ/mq)GM#ŕ~~-ޞޜ[V5ho*mE1FTa fxG8j>RCչ73?|QL-,U:\?r2y["9E&5[ɏIlhF^Fme /zl&|t/eڋ!=)##i?^,.&nbq A\Y8Zt(uԦNȝZ(=i@[_"0<zRQXmjꍥu2\ U;ԏΝY]矱Iz.MQZ<{JZFWTVjZ7gѢk]#OYz)$~5XfxqsfM!j1e{pChQϖ:J]A V7{KɆ, y3ZH̯T/ u i7/Aб_npB{dt H/%+,s 4l=,z!mV!nF-i9nr)M 9 {zLl7;k9e6z>Or5`T .S71~C+yC AS#891C gu$,&f9K|XcYr1]g@ E[ag\_hJxn,$%vN>u^ 8: %~ecnrEU-J^b62 T- ?C$_q{+Cb%A_v5ڭZz׆Cr%밾r$Aor_B<_yUOHPckYSDnW%USY3D;bHA~ jR*h Ŀ֛qοׯqFߋA~硹%:4Q(CJ㭉DvaЪ(.drG{~ӱP@+wyek~PxI݃]ɸg|<[ 5WuU/8LUsP)q/Tj.jjawE<,;7 * [k[85Ksy)k"Whse t }q2sah?힟×-2mwd'zXNy##ރn'\ïк[ĐEPNI*LƤ;{kō !З^rlR,S#ixy f{-Yp 滋o{}N嬓K--5aTQq;'yaz>_'3FdwHՃ \־XT c.UGT@2F=I0@$x,]Al $T` 0Iv&P <iВL /Gx>jMNa+,N>.."S@<_:'U$AN1Nl6^/Yx ?lPl)J4 R0?v1}k?\\e>M"th  d,xdEb![K686h*owQQv@ٛe6q q*{`)Bo~&&5'pujҾ ] FA%Chʪ2y?6jATt;F 5Fbۥ)ߦ $G| p4^-]U![}%=ьT{ BT9F;όT/2RLB3]R w23SMHǂf|S .kùї|C3']T걩2| v.+Z>N2e@[78rDVO2:.KX{H mlr>^/o% %fגE!A[qr-Mt+ R$ ~dgUUKɇ>qW]τZ*VVNj5ixRJIT6Od..Yw\W |O#i=؁&`}oo2sJK)Z ׂtxXTn{(9Zx jx\@N2]tOA<֬ԑ4Ttmfj-`7FJ۠oY3P"e)T춉![ ߀a.7Y,?LrAL"A:|/I@BX$)JJ՘ ZB׼-A띜 rqB3B6}fӻ̊lٰDu|ݢ \ZymePg5 U5 !K>߉SBːTmk{Z0i5}7I ":FJ#`\Ї[TSJXwH9 :25Xb'T5 }Ye^_Bkt1o kJ[SӚ!sRnK^eI2׶8k&(9j@g 3)5:f'@̤]gd)t-sSԜ^]khf8µ~JUj &O\ nAMtĚSSހ\ۃ'"R-,U.N\QHp؊bYŁe lr,p'. S;7&jO*G{.l AAJ;DFωїq]K0d+@KŢt!% Q vٌ:у?JT2^lg.LH)q \L9,tzT 8@Ig^x"XO 'h"|/ (˨ˌ,-CUi:G;Hrοu[̏"K;\~ >V ѓ\@lE|`;!`׿3#^SY iH:L*>ёSefk.\I!' bft$o "J:W aU4ȗd}QZz:HV]VnֲUIJj}(r4ėDuIVvچlXpA}}@i!BHnW*(nm&Kov Iw_Ca_uYK}C?~Y*Q/ߊ6a#P[Y>7_B!K,^B`AwE?xkT1jcOw0>lx[)3)_5/*X_s<=2|zyc<ըȥnenQS;M+kqGh*^={APPI(MHb=e1|q->!6NR~m}+m9ε<0>i;ZA@nh[uG:xkUeU 9eUf'#mVa={(&P ALbhWuvU]@ d}2lUa1d1&CR®Z* 1 O cS#( 5#(t;2{gz׌.b)bi@rE/Y,N钏/km d&UQsƗhPE+[6~[d8/,L n6=a@kQ۔̻`)K-!Vq-|kYr-S,lZ2e*nAzm03=&R-tWO8H PTvu}x]`F*h}Z,KX_/W@:VTpAn: ^nktPC*fHsfƟfF& I2U˫9hþSs-C *ʹ;tS;zbGQA)&O=[>Ӣmѫ 4;.=R˨-i +jVw ѷg6'i=r̺T15iԍLfj-7j95[Cxj F4z@ `Yy @eэVfCQ2BKhVf VQ \Aݢ:e@+Zo)~aLӥ(:N"F|6SB eZ@j0o(E9aNEۃiT̩.T-3U JѨb_ c)vu)梦TQTMIK,xjT؏X9ч\ \O-6ӤeHK fOEiGG͞foQ XsQTXjN8e<5w;Tsj5hHSQӍF҅nLEԠp^[dTʠFZRa5KuK*4T͒uQ%D3K{t5zPTn}|%cqe{a4E'F&C@8Цpicu27ŊGcS|tTe5(yr#P5 o0};tq [:Ev JM+}Vޖm# Bm;yv4Г֠yn_ jF m@9 TosOmC %L?]%QBdYI9wZ^n+jLh9XDsp[7jUk!non%ӲJvB sf+hLjT ~,v! oU5/t݋>)PFxxy_b sX:@6sbp('ՏtbAMQ׀qB׍hR'7$ʝ9^ܬ>,}X=‡Raaqtԇk1>,bFxxռo&ԋ[s , {}G[ASoR~+b$+53{"jX {jLgE*YCY_Yq@Yq:}>+@%{MRJ IsZ9iE4i+4>ӊwpZ3uZ1<'% НVt|ӊקrZ7n5_֜Vͱ=#|> :/j^*ԪƯX4UKE| VE^*J^*'T=TPVmOxkBJzyP EHzםVPMN+F0+V'yӊuB͸^&C_CYX<܈V w<)Y҈O hh;Qg (;} QܽSEӨmdVNfEy b7N~Eg;rx h3BFHN6)fo!t)CT'!УO琧an ݪտ@_4NTق>W|C1lk7ލ_l;_lur[A(lIpezڷG>O7{Wb+Bdt)4ux(_rWUU_7kQ q_UoA`zAsf&m̡Na'zvX/| RYgv&ʶA9>^yk|y1U͋:L4~@oRyF?och"]I gwjL#"σ:8Zv5WETMBaJI v459GQ{q~"EY:p(/G]#QZFi#]6GWlXȇb؆+m&7~O,eUmେ)GL3iO^/n|ٙ]g>j|dOGj1| XөCfw3N}q6r-7bdF9-R_뽎hWa 3ki Ex(vF4c;`TUrҒ@/\gk+UE,CXy&$EWwes{3?ZLW+Q?,)&;^VR0ކS gWozFڼJI.ŗ뷵Ir쀊L" "/_1f)9/( KcT<(*!nЄ f2Cѻy`Փ_Ĩttr e/~{  kg/&ʕ*{#QԄfpX4u~35ܳr@MumKi5!U[ۦr{#r2Nzs[} _TZRTP@u-~4[҄_@I;T tk1/ ҄r4S_=.6`?UK/bkrCYQ2ѵ0t:}8Ev이r;CGsA&ܽ _8sCnAThlKiSS{d  Tm-yP?ΧfŲ2غ K5[4I(Ot݆Sh`b~DHҊ;s$ Ճx*K#.*Zo_wLC?7͜#py:=i\NP?"OCI>鉥X`P}]_ P,~)xŝ*GrjbC;?Mn}AxAAz XOjҗ<4=`JF;dA̳E(Cjqum%9_X +cf §w/(=C5'! څ a{fώO}̱"8ԃ@Ɋ-p^c1Lۖ#Q'yX 5g Y&sٚM=RmJzuޒUnҵH"Cُ+M{| 0*:ZJTT  @( DBa+[Y7u1JK4D}9g8 uk>k}ӥ(?faM_ϋ]Q~oRr(EDۂmR:Lvu1 V}%<^JQGd%{FVntN75v' | uW Dė,bA#[0M#OLE! j$TM6idvEL&E/"23yQEnMj3*y BߘYļ9oWT vJwnvD-ҡ%{(wT%_{8_Z=[l m6|?K{rOJ@p;J@U͒רnw.Y{]*GM .LGwvۃt>K,03)Ž>❮m]SO~W|_t=9~j4`_z)寠w T?.KKRxDE|0u91ݲ8u]XP,jjxn/XQl,HCaHU5]wzĿPH=,"(cG::([-:Юe"D/qXPzQ@SY}AX: KE] ƒ[q0X:Q5UTg6mWC/nLƒX,:r<_)5cI8a"0bIhIᩳoS@ZFAp8a|0S%{9܍%S`{;T YG @IɨkcBr~BxI qkRQ 59˃~ҍv@%r}bY\"G j⻝(g/ U._qT,RpGE ͅ~U~'})jaqU`)z%PU"ʱņ=bѓ,p7[/DWB= N誨Gq Λ͇z?.ҫZᮏ4TĩoGRL_8:kI!a {]Sow;HmP{ 0S' Bؾ +fױOt-7>tivJkOhCEB (aO=QX)[PX dݗ+S@C{ ԓkCBr:mnߑq[ (ʥx:LHϊ%.!+EBL7znIm{|\i]]h_ek++cAϬ~({-!w笧d 3 sjC>HpߎHTe>vQ4s7 }Al+h Щiؑ/|7 qIPG&ѡg706CM},wbBvK>?WBDWBD#c%3~-C]E^. ep p, m&[`eC \qVffnlbbI h+*˄z`sMuM `{ *']36Ņ68#|'OH2uit/Yd}L]3/0 MRK/Wu}a|ڐyFCޭa,$ z%IȮ;>7tX\n ,a,.W>ܧj'tjÄ>tB:c3"͚^$d\%tѬ/]Ӆ,/i0ШU=#,/ۋ2 Aϥ8PMebu- 8l O'ROHj'saIDQ[X.z9Qu/6i*Ip"r|GIgf,mS ʛ Ok5.'>Jĭ}0mҝAhC6 ܲs#!ɬqU^J#ݮ0=U#trgOPաc~8tK]5#wLnj4Q؂VGIC@6KG/qe]]_ kX1^܃ׇ16ٴ~ѱWD(‡.6TtJLqj*Gݬf!XНH΋#dHY90 ST;bQo %͇J[]/ Ψ b_qrA܀(+<5FlD&vdŃbV^Jm8E #MQ|**5]Ya^gb ]w'(hn,j4P;ꕘ6#OLI69uRQ,9΅bIljұ~LehAnn b 4cEpA7-tpAG~\ \@,#|>T[޻_W|GJ*ӏNb]b%nCD7Rjaq+yMQ+ +PVbF)IQQ:+z R)0H7 Wj-L?C_\Rx fF^$fi0K*-nfaJ/ s~`hfipV 3ZZ&8X aN9Eti0gIS&%3Cfdf*L4X a.^zt\_~#".sŠ];ae阰>ºַ9X)a}NXfZJa`%9}@XUS~)Ex`(MVťa=]Š^F VlKIA J.g*6k? ~a PewLX:&V,K+Ho*(Cuv1a%8}) kva 5KX`MNPXPXCu$AjFzF꣢9HGa:#:: 9b:9,TKIJ|&KBYq2䕡d aepi]c}M^J!rJ~&hť]M^ ˕y¥kR%(..&K+Oq,Y^v1(..&EKm*V\.qa% SԻGMbrP]g|IX}ʈdr'wک3npPܻ&%+C ;FƮ_Qe=6N&v~>)P@/m"H} !wDާ)[ oD39i#)ܱ]cI:(U^.f=VJ{""]X u'QQLS~ɐIu\C;M Zu0/;$'97:3L{Ue f.AKNJ*7ma[tT魾y`iWi^XGޫ|^WO|-[>փ]6ñӱK$ϝ8թ;sp@CP]:.Ӧq-,#|~Z"|bjug*LWG)fRtT hwE8y:ǥK/U5` j}Cd8UEQ-:B՘⨒ZqzGjOJO5ɏ~C(>4UZ 8_T\Gw *6{$ }CZ9QBNoN}|@& 6d"ܣQ_.h2ї!_OW-b޸ubN9XRzhZ[Lv6rKUJIYcT45d/ '@ G]% [{~ ډ{gk^"=A}0l##ANn㊗6UƅEXT9Zhw/4 T; Y~][-c,U.(v[: (gO>L7?1=m1xђTLYndI)R#T+K>Pztf&iQ}!l8IDu?Sr)ԭ^*12e& bWF+I\"SXH_ӝ5XyTڎ;I<'#NA!Su.'6_tr=y'vi)7.H6 Q&nJ=q}=ןN@ζtbwVI{kaihϦ:>z|1\zb9na^zfNN?++v`o)ޥ5*eQC8Y]UB+_oFhR73/)u.lTW\=%2t4}|>)y~(* S]zb;K'#w0uWqCں*U'EEzZbY7<{/ s@JsYh-a*#tGKɋS#OWu/FlF\;KGv IҊ5 %kbXP',cYi4>ZC}\x8׵JgQh9o@X;;E""([g|>2 D*)7Υ>ry@rk*v;➻ B&_XcV(. w߫HH2p!ཞ~$Cv|^(+< uR$*V.K%H4a7^WYfB |&yM2AmBpt( @Ƨ" Y,mED㊋$]Џ&MOtgԅ ~UDDHq&"}.R1:~q[H5* (x8>grVNMz75t($ci z(xnj;%) ]־9 9 )O7®~ʒ^hn:H hYߐom$kfi4|(MM4 !(Y48 Fz"FﰜbbYrڰK}im-}#T\~7.U`,f^)dqZk%_ViSZM~UWkx%mB{r dZM*ZM,nƐQS U5(EM(EM0EMEMeEMew:Ehs

Ҳ M؍VQ4<if; z2 ~"?qߒ>xwK{vjHmm9KYur0PYYuFպh!aqO5&UE]ϫcA 3Z2w;KZ%Hb|ydmۍa$r0t&]JwP:,Owv(^tZ}H|R6RL,\5̑&qC4Mnh4Ψ';Ks/g*px5:W"{o^'h@@HpZ' '"m1]⚢/ H^>npSW阔Le0U. V5J!\#َۇ)7bh!1!IzwH̺PmH31"4 8>n!Ӫo[ܤY |xiDW\kb9:{m~16CL3X8|yHyu'47_e)/mOS?4K "U O/Y?3yKowI`g~p6Te?6ѨӢX}MWH ^!\Q{e$X `te'$:gOV {S[ǰRco0U)@tX G&HٵFR5Mkntw#bPbmqa4c|M_nm]p NIkG7> mR&tqmyY$՟ڦŕZٛo\mЕu+6; [kgTz\:t߫kd#UR:Pmqa>V 엒YiBr^ZI`:NX'N9BsQ^0rptl)$2}edJj5d׶ !a=ˆ䕇{^[Kéz6$'k 1 l!?͘,LӍ2\^f;]Ri)Q!M$m;&ށ}`?FoƗu_^DW\b,oRde7$f:Aх\<% iQ^ ҈RwK%K+n0=\MȞ2tg/t ɼt7:/pnPW͔`*&uQ{0oyk6:AOV4 .U(VLU0(Y;a^qq](9pa}^ILNcI*r\W~=g䓄Gz =?Z7*h?F7O|]OX2Iם0ܞuSzG)z=CM~ߩeQ~柘[yurwI]inጒ3XtDфy(!m8\\㲝O: ېH$NPuJ2.!Bo0 `3$Bj8|Q"U窱pL\d|R؆E Ss?GUqm0 * J$BmUuv8>5])e_b}'ջT%`&r.PΨ۝/@mR;yiҽeބko5J :& I:?U^&u%֊`@d %CK;$2/LfG].o_͒uWk躴Cj8U_Tݶާgq)l3ч3LsQ\9:ݥ!| h;DA|د7a5QҷT7E{NjN)K}Onn]鋛[@)q6iK}oB|PQP 뼇fž(u(oطS"MԳmaHwWwDZ:d"fIN6bqU M@LvBK9NUcT{=)KdDeLH>!l&CL!t6ssH- a3wqy̅ t>Т2Xo(c!h+)+++򋵟u4iXakyKYHc?CO[+;.~i̔oa3`\7/E$m?? g'?!fi赎e[,]F'Y D펅V;q:45u{ N%߉=1j%}%xA!O°lA0ؕ}/ܕޝa3 @xR2wNf.#IVdA~IR8U m&JLUυ^%f-}Ms}[Zc׺۱Sإ{ķ=<ld9ℽ `<g [+l qǥ/\ j#[AD3F@@Z 6_l(>O Uq~mvC[ntrKtR:-l;yxy>k(>/<;HO7حwD`#{G jXG@UN$x`#m!('8BPCOn'^+ ԙ %0L$IMA $8N#AA.:֗` ] V##$J0`"Ae\XLteEw]̞I09,cW}]kDejG gs/'Il,B5!l8cQ""x)\oG#(~gvY1>HR\K1BY(kn\Vm*jjr> yy TJN~iJ [׸%S:izIJO8h$ ܴ既9?55m5=55>7oD`4zBzX|A E& T9y-r-pϱšhɳ|$lF=GTdx5Sau?l=*IV#]Ҡx #.Tݚ*kIvklI˱(/->7G8$3Ն0gwSHE-.GA]:kX`&ZlIvaggQۼSchպovF7u[;wڭ=zاon?`C:la#L#G5>&"2jػ0abIS;m)RgI̺/{^Nn|`iQ"kZiKα!ްX4j** ϰ&L1;NNB @1ìY0 o= |@| ]M5_I C,nOԸs}fOsFzw~~u?IVn~E\Ê,u>2r׊ZGcYēO=g֭vs텍/?7-[_ƛoλ_^r;w}?:pLJ?Ϗ|q/o=u索dz5~:狗j/r5o/L4pC o_j6J؝zƎ TaƾJc_YcDcǥd}e1qu,93'-w~-ՖY9\<,ljKͷϱeXryM~ab\˘l2K+x?X1\Zˋ$R*T/4!,k4 xY1b$edd > 5ðspptr2f 5lcseul-5;bZ2sS9s2,}EX9GlKZ-7 7ϒ`Y`c"XNG(/nkړPQf6&戵|&|3~TOlS_s-6*L[4K@nz@;P̱=A"M+Eʃ%yrjrPZ楒j%Do c?3,S1;3Bud32m9to=:hvf KNA?5b#~D39,96wF Xe椊JX,TǍj {X;\ w4ϴe mVe3ASۙ6a,ʵ|5yקۯwT{pJ_~D[vv|$؍ѹ>NYQA)2,l ok9R Ӥb%@eXQ,r Y/r&ܰ(!11ebbdۖ5 zIIfoA1H$ԅi?=?s^^%EGeۦB6[Ǫ06Q'g^48HTt5n-O۲~-вA- nO3bHCr5>H#Nn{8I~j-2[g9fJO[\ԲZs3͗k:{]Yږ1p[ol厖+;~w#/>t"{vG}:κԐlܩ)r>ǚ|{?s֨NUG#X2O@ NHe$M;!IV,dEV+ jɩDȳ-Jܹ2b9ٖ5;bc7̹9J rd3uc"yH:zk|n=2${R! 7I\x{-sBeRnrf%"#XNESafȢ0=alJLC$%D58Ӳs1D'  $$(]J1Dn6##$lE~dQ9$EX3mHv"Q& 󌳤XsϔiRMZ\l/H!`zʰrX?9'C`%!6wŚ`Q!tS3hxxNZb^fND@4CZMCҼ'ڲ'琠 Z:Y5tBϒ3j'ZN ؝(Q&:4$Y]ƛN msVQz@'e`.CS(e!<-*jW2`04c Pl $P$dvۼO̶Xϸxb ?<'&"3`U@^TKGQƛ`oB{ xRU֟` 6͙#IY?T&eιO~oa2oR&/JlaC2Jmc5պpXD\OG#^ּ!T2ɺ $6ƞN;c4}H,:ւj]1jyVܓ[S~ILLcY6>]X)`Mܺ(smr?cݦN>,u;7qtw_~T^TL'}uw&bVhnV4*)n8rp喝SÕ=A3QqOTd%Jي<.6ΑLU[ _D1*ſDIg5N^Uy_ 6,2>~>@LٿͶ]uPY!9g-]esnbannh&%dӬ[o0|bN<{.ҳӚOza@Ȅ3YG>#_ؐrLϏ" # B  &" '%` Dpq#$G`A9;[6#X_EFM0`AA?AA+}O~FP{j$# x`A1A6AtIq# '$FБ'J8;|`#%y &ԝ3 |[/'?]ǮW+F]86 pƕeO^ܚ[[ݛ?ṿ>ޥR:҅E53T0"~zz^إ~0Er{%~߾;eK"Ns:MY/[nEkPlJ޽ Q>#X,G:l;;@!V u/>1$T kxDX k)X ?0i_m݁rW'_['ʷZ.E# IFxg-̰LydoVףghb$3itJ8m@/f:O#A>Sx|С,>>%&&xZg[lEW'W)诧q~%pɓ'7%2S<[SbgMNaE|['#7W""u&&O-уSa|022rjyO>,88 <5Qv&L`IIIlԩlƌlqX6w\͛ǬV? zh&V gOZ%#?cKfmk·f7ǂvΆlΆ}ȏ8O8(g,`7M9'8}%K0V^qvZSOuֱ^M֭[E_;Õsm>`{agb| ;z(/G8;y*v˜԰K. ^1ƇƼi kM|ӆ{;j&6al+})H{QŏS)\g)S_N?4R|3ſ(J"NQ#+-ůg)EMA}KOMW۴/ҘVI?u??fU/jw(`ŏVM&_HS)?)~'#r ZQ|WpwQ8ڱv ٞl f; ίa1!yOxb|kC_kP?Ϧ (JLߣ(>8?MkS wS CJ$PӞpvagj.ٕC+@GS/(Z7o(q_oPJJ{R?ſOSo}T"?Z1c>=O`^}ǹ}DFF2 _>VS!o!KddJm0n\;=&ojchbXV!3in|JDhc'گ}X|8cG or3$[J?1&j؈FޚhbG4f FޜG A犚&eb6<ײs'Nb8‚ز(,bXM2sџs,3, cO>${s='d͛7 y§/'IDŽ;G}$dS|;v)V]]Μ9~:wV?3z*[}WM?;IUsh[H4[wag4~hӀ@3<lW)Ri~FPqr[.JХKuYv3h ХkVνgP{?mmKQ~= fz4{A)@moֳOР6nUnd0Qnj׶-jc0n{Em 0ȯG'OAxB7{t6[jLgȗtw?[~ MU=}jϞN]XTz& Dy}hAZgoQtxkK=[G(: g}[jE=PL%%TPO!a%G=J73$Ӹٳg_… gi^zڵ˥G9H_IGRPPo۷oo2QVn0iF]?i}sOg}*_ss /%I"ZO~(3fL Gpnazm 鎰 q;Sy68iy}%o ?oO>Ϳ;~A~!qHF)̫Zm۶B٢ȕ+W&\ p<([n q:q(; [?<'Yfu޽Qxyy8 'Տ'NcǎwФ<$pܹZ+/~~~5uG #V"oş)hPuWP*4E Tnк~+{O۷ GupI& 6P0Qoh;w^??G=\vkzBu6|oŋ!}~ossN2h(Ǟ={ݻwra oh'#[r>#·|GOS[[V#~%AE\AÎꫯ2Gy_h(g8sǜp~>Cv ;8h.|q-S_ூZ*vv~IqG84P DC_<soM.]/ EPcStQ# .B 4D0⛼#29|Gn7?\4q@:Q劺_7T:g{ Dx{X4:y~o<ߎ?ū3a%7_(c\@<3'Q%1DCѰ_FsO4˗93 4T4EǕ+W7/O??kH瓿| AJ{&=r{F==xGnkCEy 4|nLJ x|-#( xfTq>U!k/44(y $SPԓhܷҳ){1_WhԺ@{J~?_Z8m(,4р'Dc72 j{ j{F4d{%緁*7| ڜJJ hxo[Wd''dr>h8O>-gI3hP3hP3E2v,7TQi(hqP0\aD=*9'gOG4~~IOaÆ"_  yTZV2D?D;ksU7TNBk*1/BW ܀J ~נX {KCD#E&2и=e17Er^ Zc"c4? xNxu>^+ceww7-DgBZU!k (hHӢ x'>hg` ظq#饗8"uR;z*?T^ḓhhҞ'şE4Zbz>)\#cln*L-[MCc:Z:~ #49'L|p̔i#d ^{Og9'L!pE{DXxA_V'0Ѧϱz>[@{.SsEQ_d 4DGKu}Җ7О&(UVUPSRR?1.sWX!_~)BM16,y~xc=}Q4`,8ҁ9 h@ >XT=2:χoxa͚5իҥK{yvv(wW ^ hƴ` 0c4 #0d$hi!/2?Lmw]^^ӟdh* ~;?ڎJ/0Fwڹ7m/YXh"Q3O2E@ Ab.|E_r^ џ{lX ƞO~hu'6]dΟ~ KGI>d, ^$o{J'Z(LZ'9?p;D?w7Pt~S{ͷ0L߈}.`Mk^O7ҥKS}$ 1, 9~&bXkc@s/d{s/h:ܤ}_v~ʶ4t9ۈDڳ1ߕ5?ڽ&ebC{|ɹ8he4DFt"']6Iă6bk¯?{?¹puHkC~6 .)**,`}{MPτP#P͑ᱥx/0b {EXڸʏX &aX8 ?װ!9ԧz* m} `~!Sb /)k( h^a%]x}4nP`^}OMs6}&OVG#;_]{\UU(d4jd$k}{sE1(7A#,h!ӐYڔN֤%MV>1ZY}~9垳>k]}Aaatѡ/5̈́1_56hHɫV!q^\q /;lX4{!yl k?cO6mc=|Xp{hQ(Ha'>yt ÿ}).+\0onp.^[9>Ϳ&Nx2=y;q1##c,rH`7׊"WE{ƃ9!Cq.v^|[#[uGSG6"?s(KǺG:^cA^ n#f8_y啅Vp0yC0v`.] prK-1[.}3cƌ?ɣGˆ#3 yx_ƚ p+~zW$egg؀kU"1СC~&m>q7o\#6bɫ)B.}_%_G81q`['KiOɁ" <^O~igMu-|jQT\-zf᳻+_F^u`#cKJJ uzڵK֭[w>6l ]fM|qqqƍl3{ zڮ]0-Q wccM nOܮ*\i<)IJ??}c`D }Su1pWecb{˥Yuaʥ G_1VX@ kQ],`8^a܇q q'0Sa ▥>/`c6 o gq-C_}]7Vu#Ɓ7l0΍|޳:vIoǸci\> _/_Fj8(/Ww~zov+삋[X-Ŷ9_>cY9oQQNq.qKs[뫪\_[>iñh?Ϳ& B;a}#.8ny"'٘Ok1F۽gϞˮŖߤ,&_KG&__dd;pF>gwpWb{C'iWΌtYҙ.kM|VrNNZ)33QyENJzZfrN@JvVN֘n)Y"9'$<>0&-'whZvN kE(ټid}']W椥er\ NTRicrlue{0IiӎJΉ?)k\ZvTd^ &_#aGIIV\=WnlVV21&1&66~@K\gMI RCΓڙ0Φ7Y3YMWRږEhօQf06ϒdV R,+fV#Vþ`9p&ZV]ԘKЧj}fƸ`C3`3wߘ%| \75?ӚnyQ.HkPQ7R-Ѽ3)x,OO|bí}VeMY7bGvJR9U~.Ü\g|:҄8I4NTb^^2^%O;fce_Ֆ gjw0ޣާPj:MO/ogUEZвYJ5[?F+et6zaD#H62lt1Xxm7GFQ j65[{p~+y Ϗ^F-z>"Q<$txBc a&FYlknn}kwqvL2^f\9{iΓN󞃛0@ڐ$@3 ӛȧ4@j8:.-0=FC-VցYMIT*ʍjԑbYw[4^Fyh'*qniw_ڣal4n+Ifj:S2J٩PP\W o+У4r\'C򔌀àGI;%kj.cq?Ϳ?7.Y^#+NG9;gQս3&1d ,nTZ*TeGR]PXN'U1g47An4c1Fs;_om)"K R{;ʾ2Q9P\tI&+fRIt%mz0uƎ^|R{qj.wc y3ڿƲ[r m\*<#CNc rrқv4)>N Z شrzX( cX6Ζ"Vֳ2;:+DQSJ$(O)+bTYV, uR-Q+ԏ3j72` ̛y'^&??io"|Bv|X !QU@vWWAڛR56hoh H+*d\xn-siM"k8`@Rt<v]+ 8Ty״ZVZPk}^kmas4 _(b(폶Xv y+*yRnu|u} ȞvXM FqD=L4NΤ/ӝt<,E4sZ9NWGu,'Ip;ÝT'e|Z\[,r|!$#dYv h'@t:$ @ZzyNb`يNV|`"]X^ xPobV42FNf'ޕr['X8Vg0O(sd>|/|إb^2^_/N9ȫy `I^\>*D3.Z6g$ "TdK"N$rIb%RED.XiqB|ɟ28<՟W5 퓡2L6Ვl#HAҒ=e e.e sd9Mșr2ޮzޮe?PKyVSU:pip/_vendor/distlib/t64-arm.exe |՝?|gfg&er!\fN $V͓jTk%NFfZRɴv&j m!ۄ` ag2L&@[͇ṝ;\?qVf` {?]/Ebl'SX/I+~[nX/{/s_r4|q5{|MN`/}=?Ke~ms-Σ|_wߟty'kk1~/O Tdu۟WVևߝfy,I2s${@{Eaşյ3/nٞ~#>NM3nN`Xj/+ů$݋$Z6?Xk{=V.~R^ԕu7˻zTY 8ތ<[gk`=`50i#,zr'Π<*%9&b={$Ÿyu:<2&9``%V]Bm uu8_ yuwW3yP*%PUè>g-}~kf?dx#{~Uznf_o%g-2*\؉tX}6[qo[N-t(Ԁ鳀|G򳀟~w!ʹhE{d]Oh%:~fk0FӷeSWu]Oo=>uwJz ZCDc5hyN%D0ZY<׃:؉w;cIw9û]\9;YZH 2=0BLЋ\ ,xA3 qct CvtSе}YKBQ/ovwt}/// XYs'Q|G6,0:%ٚd1+ &~%>pa>ܮǝh9·zm>q=h>xg4ƒ? Tm $?t֦n.IE>{# )~xL6JOb  m'* [wr͟Hպm C%(DN\IanfMπJ'Z}k37*R6&pe͘<'wl[56uZܽj.KƟ%Gs$*˧IϬt_ƚ [n)}L9 |;\ Т,Eݶq4{%{W YUJ١!2PƔɻ-ī/#W+æn+ Cw.TKeS=x孄\ߓjg{UjEc圳.FvYrS%ȱ6s6:ď}WJwt ҙ㤃;.Ή_ tF3?dxu/-w48rV\)\wdO>pJ|.4zx_/YWսomA[-Gd:6Y֞v;Sa",7m:[sI,x|fS1{gQ>=!CQ,}4f5&`HT-r%O5}fo/TFja32|߁ULE$C?e$)t14I|YCB{mXπ?SdOP9  4c\sXweh|WY-:u?.M]8&6'˷iV>oE]Rv3Yjpy"蘀߰C=a#G/&'\6VӬ4wߎ x%}L v63`$/t]yse&m';vM]w)雐+]Aj, B_4uij3lE˚_Fx CםAW'|vzQjivCjm&ߘnm"Q;ƀSo6A{Qnɲ_8w-!/Z^n3(ȧBn: 2iЍ[x&dyg쏊<hO:<`/ vjViigWZ ^zrEG5K%-<%Hu-C+_BG_'5Klb_؊n.3w~I1@Jÿ3F z}uM塍Z\L>L>Kޜ/ ӗ*7[j Aˀm-݈ZX+?{cležkf ϻ}yE*+{nw ln~3 iA.a1N@5Ս$+f v-o3V>=p't?}@u2žXa/#rNi>R .|_`; bjvzo|qKʫٜ\(e*L/&˷YQS{F?K(ʿ >0B>P+IlqJ^'V~ FмA{7s%drPj${yߵS2ԩBR29!T5y6( >f)7m UvWhGW#]CemJ)N!q=Wqv?=BcE(n"MEgnVJچWC-#;D5p![fjGۤn)+e) kGm j`esdSY}ݧ!)*f֞prg۠!OmǓBLK" &۰lK$[u}+6?w}/ԗw 1TnϢpkP?4 Sof\qD{Ez /չ#R7*p|(M ~ANڸ1՞4X]?= WIa6,$&H__=_= Z@KԽ,p?Ry9Y"}̼Q {m<s1D4Os T^ɱČXIpEv$~H}rhs`L#|q}c>;SFوb[K1eO8߻ǶSK?z.1k.ńgՇ'@:|F_8 bmTm:!?yӆrƘ/y91Werϓ'4إ'?\ѷ9ܧW(|z8 7Fs:ƅ҅ީ"}ŀWG|(Eʧxw'c &(p54(Zch<6mÁZ05߄^̑5&9mCyuOFɗ qCUuYpAZSupba'1$ċh@/ NyȝL-[C_}zH!/AOڐXcJ*csz?V]~Ym`PٍU}mIc \/狗B?vgi$;(&ھ|dvK=9CmnbΝn[}ŷK@_(hJOi]b?S '6}x wEa?|1 bk&hZK#Oo~b‡+=rLJlQliM AA!Їh1&1663˵<};\ȞȚ!ymӈ.!m]ltU7v$5>fnMyXu 4Η 5ʠyDDOŏ,T 晬?3_%?Ε*۔wm#~?~Scrɝ &QĻy4=Jɧf?f16V} <T`1C pO+_'( 6uJȟ7mA#~;MEod~8_Hνud\AxVJ}ݽnQ-m[8]-h7No}iKI.uCrX^g|DtK?SvdstܜgAfTh{<[J GD둘oF(,Ia"΋ngNv6]9߿5X=Z4t߀{?_>S!4N~)T؇csY 7Z?R=^2Mx;.2>W j vcq.o;퟽1ǮKERF,ڛ̗FM*|W Q|;g"; x"Nq!/];:nuY>LB[&vR1Ƨ|⩦yu2 8vI wq:v_&[ks?ᶽ0:\@8 W)|F|%:Ĵ? dSNLlYVng= 5A&42NEXP-M_AssnᏰfBYr15/63G!\_ρAL kx bfΥDEYh84U~gfH;Ds:A#9Qso4ޔpz C!LF?E!j^E:"m լx=Ѽ y }JpjdЁPyh 5\#nG9>'Lݡz>6N-kgv6B/JK;/YScC|rK HnU{8Ք_ZLeRI sn@+߱wCۣEaW4s.ƻ.f?c/o|LJ^:>\ >qOHbbUJ 1.eNARfXsg$'!Jw5$b3(t ͒y,` ʜȚ(|z|ˎ8MJ|y|] 7·[/xOqX3o6 hN}5ܯDdH?> }:obyʯw4<:Cv/ _kFoo|zބcy"z xo\;5&Cw[]{$7>*5K7ټ} g9gyas;k%Ӽ,̏>;Q-ux_7q5`b i`mKm3獉qʼnMtq] {kU{iuv45iI.Z0ΰU4P&Gikr_Pw*)/&>iYŊ[i `랮ŴJS)/T9_ntі#xEH`Aj‚R ԗ1ߋ>1'.,U$"h׬_8; ߩM"YS[ IxvDiK\. S2C22DY9HšCrpV98;n f:V^,̓KzZю2_~́[4I}P|HWYu:'ǩ< X_1B+ א*|RWDh.p~-bWf†fHU%Rw+ h\Hrk>q" jq~w;y ~嚃E%OI|^uO_;P4*Ma>zNJBEc|+^v+du})mVv8Zߣv1}бط2Z1E J3/#|kc{/Km?>mRnYq>,޿2N|松&_w7ߤnIYБzv$is[ _(kb=omI@5"mjhwK 4ѥ$+j RKVvh޴lIc{6gdZYI.|[ްFmeM4We&kI,Y"YMhx {fDb/Dfh呄|#-TR-j1[ou|®~M2XnsIטƂ|%, yEj| ҬE XuR;r= hIGCL f|-j oNG4KFCwfYCTLgCM,?τj_پȟc 4 |KG S[ cbU1JYqkиjD/)Aˋ׆y8HߦL0TPW=T^1AN 4:r8rrRh{('9L+DS4dxߝ(# zVi>t64VP<+?NϣӅ#?;'ښ$1lMfbg`QP? c3gEC븭rYٹp;!;*dŵB([$u5rqN.B9B.#aWXfb3"lWdh"A~<ِ5?b^ْ ˕mݓȩwHNF%Ngu2%ҙD#3lbWlomdVK]>Wß:Z0sYlQE{"ubIm,ORD:9}|Tl?~nP=O"}nhp>>~SlLSqCVy{P+wʥ&{ڲc˥:~PFN+-] W&\~Aܜ-ib^~Z=J֣>>+ )kriZep `ޔL| Z#f/&i> A`l%RSƝ,4uV^-{p"N+閚N%Z~%sBaTIM;dDV ؎gc>H+ ҺWȼo`Ex,Uċ+)y8iADxIb߉Y!n 9a,Ge\zojι; lI$ep:x_~$nK&ۏt}ž#kkBt]7k"z*ltHy\_ǿ˿yKǿiW?YǿW្jw^C9¿4ݠOmp&\\guExX*sNk<<<^ ]eGbKm$UpNg%kL@9 :fi=mfpT7qI&^րNJsեiHG;\>)o6ٍ yak~++pik9v3+khi .=-q?IbC{A=]\Oǖ5ZSt,/Kp( !hok|OTS_o)&X!FrWNӬk-/2ܭ~찹$c>y|^IIQ.c>'E}g>*Ώd4543^^(hh{X'Nit)5-(Dߌކ%Ԯ.I?U ,},N,Nl&b)ߠ{忒ySa&׻7 ;)wȗ׻Onb$wIһxz~:=*WG͚71=_BSҗG͚QlݻŎ}?na]O{6XK&Et-cD.4|xԠ%*ZEHd]jvkѥF.d`ʹfj/z 4y%a3Kf' ݤCCf׆NM:cu(qpjm:7]s~:f:|=4q{&b䞞w!Ne`ˏջM]lݻ z_9q}63rDhmXuz!]^޵=6̙޽wRN2eCJD"iru.%]VDѺti|nD6h!Fj⤟]_X]ڠBl.Ŗoн#]K:4>`kXߺrzz`nRoZ'#f=^ÂݲeX}?:aD?c+>7UW$~K{ PkCu$NZ 'bƥ6YڃU r=uCa>ȠD2!kOi?=[y%V,lfDF:90m\[:.S1e:k7O8C!>Xw5A h6d=H2gĚtug- mj+Sh΁|Gp4>[`F}P|жzw+(Z~A3ȣ N+Oh7ceJ:xqᴴ7L|/8+_ތN_)6|y?g G{0pقcAJQ/Ґz 4K<:C2ueOY71 ?]gĚa~@kļ}b=[^  ŔCk:L=3P"{Į%xas/<7ٺde/bjK!G͓qd224['C?r26O! 5ǓR#2/cO=߹ov켬ey$_$WCm!Zָ<-2?j+;?wu_3yl_1mFtuxDWpvwN otpO {-ٞC+@kb %oN;he|9>/-ƕ?7m?J(a^er3ĿnԁY/~&m|rҸEJߝо#~Ov)T$u-ںN[d{Sh-Ƿ;%}Ιakni}Jц u9[}ԎNg{>1 L_?rm#fEZLZ.Vȼ Ӹ0C:WTi UY?چ$&OrK{Y?P~sTc?yhqGui$lծݢov_Cz ,@>#Cv7hz5p\8+~Kt~I# ^ fł)bePj;y,8蜯ݦw\B$,3#Xu|r'ӫQm_5BfL D G~=As@s\&Z:rS-C>iF{O&o \ [:E?1<ml481pg|0{RG,[Kgއg?ZF@Ƌ)kl ; :Nso:_#::б@GDžW?`9z:qD:6阥MG_'_ 'c^aھH#03LSuZXS?b.x*O,NNO+ J{8#b),=VK bUiuyzkC,D W>.xL`_qqtbBYf=]oT Zmy H'ÿgHS͒eDߡ64zlF+ΓEGӞ+X_sYq恽 ^, )oz)wg5SM2 ڻ\kF4zːz66\O"cwA烗~T ]kq=Kk/u:ء}AoɇsfӟI%?йW -N&E;?SS( Rϝ)bi,X;k\uü9 TeTB>ܸ_Ѻ9΍{,+N] oJn :LU g_.NFkWkYF66YB! ٰmV{ņvbAvVwf-YUOzd3:<B'?&ٙQ,|QX Z;+)gQgb2YwjṢBQi.&*e3X2?'EYXΟ'q J}ړsHպV/Eja?9퉼xg{"X([:@g Ut,e-(]֠hGhβ݈ON>SX jȡJm_!σׄWQ{k eN\ab*|]j$$ksL;guo!_X1їi,m'8=f{ûG@?X"6AC J3,\K917!' !thKcg~<ޏcK[KY/<w_,;#;Vgvá.@As+?_aCiO;^khNa=$7%o4Bszҗ쒭Ck/ uo&;C}v:K١_gs >CݐXfBǚZ!o^F>oFvQYę>[ڟYAYI+{ڋʬݿgt"tx q~\_O~u8xqHLЕ+/AW^B apm$ٻH}+EI++A2/WܡHWE9w9 ~Eta'`t?gwHfM:s0ɦ0{G`3^}ϑw&a}H"lFWkX!QږwEdȎYĔ׉W8zH"C + '@|ApuBV&i't3|=AM+wQtM@:lR xF~Awavk2fW~#!FGeNFC}qkZkNķS{OlJQCd>LsV1Qς^_89bZG2k˥sj-6=Y"هqӵ>t%}AiH"blĹ^:~d+oC!P|Sk_P[Q>)10H_+Ϣ^^vd<~kk|:+3=hߓxf%r͟?Ky҆Zgw5757dwоy~Oo(Ke56-y͢{YLk` #=3vX/&sFqڵV> @pQ#|cLOyE>SOB[1G)|R^ n 7a?d_Lt红nT?VxY\͟V87|^цXcTV![/wn-򉿏OR]~eoc8eO?ɾLLQ'67uZtN c_UGychf!}9z8_|Jя3B^ɖoBd[ېB|XBU?|^>WLV.ۼ_kFx~D~ R?dtJ%witj4ѣì/υz?ny%~. ]i[l#Cr#KjȻRcFǩqX:R?MGBV[q芡5kA\N $XlFt16c=l $ї ߣg07A(umŇ0}@{H^zIDd}p_Wמ\nG3R? 3vKQ^8K8Dy!k3zܷ"~1k=نuR|Ξm:׍{]8q0Ϥsʏ앥7mAz2ߣ=sF6k-rwzl;;lm\.7o8b(עt{|\)ὔ0/sߑGM/8wx(9\^ R[n8g9bj{Oӹ*^J? Xɫ;V1؉fR_Do>E&Pw 8>o3Rq𝿓ŻAk.!v7{-* ,X0 Υl̍tV#,0]ǿ&2|ݓo]׭e'm@}h_݆knc|ͤY|Vvo'׷ryX1y i~e!p*5D}w`>SYlt+h#kފozyXZ~f>:EA0^L[8%HObKݷpeV>|̫6d3Y!yst2PVW![\/4<16{Ӆ=eôOs,>*@z~.Կf>?8 9,B,& Kn4~ :;B:F)4E:7lr8 dMaJWy`+9- l!|-tb/z r7M'_1o6{{JEJV1̮X{}i Rm>Q5\2R42*Vz15z~Nz^-S9{g@YgǤp&<7yIY`e=ՠ&5[t?x6۴OzTJeb]R@Xy;Yv0K߳=6+_e@b7Sg6:ks} DL]4D6+k?1%w S]Ҕq?Ψ=(mOyoF,`goQX H,H;DԿqIޟ|hyZZJG̀Ai!]&$xBR8;i,[[(7<\1$jΊs/+PnIpǂ_ ~&C%Z}PyC~$>x\#y[Vu~9)-oNgy[}9$Hc%a{Kv-46Ds`7TٸERћ﫨QV:GqnEE)7Q>~ \~G"~=ryتZ|w>dM<^jĿ Sv+~o1tIlq͞=١/ED$`9GCiywͥdsv[B!-KQ?5h"F!%}x=%( ;ޥ}^u+Z)\~|)*R`^NfD92 }~lj,k*^};=R_۰ ѰGiH/:͡{;u> 7m=[ƚaOL;egϪ>"3*>x)GVU^+C87 نiF39R>^NM{2>4Oi~zhuZ}YuT 79weLEui_(zT4`j?@sS%1F^tǗbB[iKgJ"no\>|QqIȇkF.XǗ%f8O#?Y/6$Zy5ڮ肮@^̹id^*|'^{-fFA?͐<| >-%5R|N2oǕljQzkN9n'߀̜O7%K4wGs8LΑIٮݻ8YY~n^J\ 9[{zvnFx's7KɱH;Eڹ ht7'i&ŸsF;wސ5i;9Xr+ Ase֓_t-=)й2LJ Ϭ?:>ՌzrqGR͗Zz{#ƗH ͝Z˚fӼ l$PNU4aA1շpܩhpt8`3P\ >u-ӧ{AKa>Jt#t\扤k>G)t]-ւ{ؕh6h>h]}ȣyɏYc#Z$%eۦ=2?{:+?)%D_O@mQߠGԕӧZgƹlZ$7|٣Y+!6K{Wף8k ƍ~G`1^0dCǂĘe4޷0޻[7mx:Z.z S!) Eܢ*8 A4,[̇?'hr4hQBg/$zNzcj6Ϟ/bB'pWYH~Z,ߐ63G΁f4& mr74>] WR> 2+>1K#)R}\IihFyh&1FhlѼvqChuz)fO5JIYCc:'W拾.b!IϸY1%2T.pk/\L{m;fq|JGP>#9 FCId+-캥}+ 'L?/-|(xD vZx(?3uց51y!*fj-K8'@w;p%cǭ"{~u݆=GJwD2x8xnПbýЏmTdxst_thau<ׇj^޺e8\Mh1C1){(/˜6׃s`Tcq/\]=cB^Dq#{̩>"X{{oY֔N~Lǯܰ3p)xz޼{L4~Wy Us^>zH|w7jg s}~R?pPbAN^<Bc`p|dICWsH T䞜wđڕCOmB[C+]ؤS ʸ1s Z7ݣi@3l:gdZK}%ǟw.RƷ_qIhTixf,\e6n䌋#~G3,GjRo?ǣ*:B \,_K.7Nxx^b[E*ͧ_t;kU*p7U8l<( qLvmcwI ֺ|O=$ݝ$*#425G ! Vxy2s +&9PQ\.v,p+!؎eeo#8j>wvʆ.r-; K[^\w`vi7a ƄlJNߥ>ճ27v)DlMeD{5rjΧg/C ah.UjR߻`5AfC+s5c>Q:^6u O%f~x/bWؗ1Rb2Y]gL-ҎĢ9L%twtyh熬^Ɵ{ךcabKXȱ?ްNnN? 9C8@2tkK7C 2.W{,fɆf??k ۯƢCN[g8cQ:sƓ32I|,eSFWerK/8G(|`4!7p|Eeb|=SxVolYi3 MjA.߅b88+n\2Lz;>*]y].<}b h o9MR'$ϹO쯬ZrUD5b2f"wYFL $T̄.a֟^9J#>-f_AF畹C=.=Y!9>+{I;PZy 'ό͋q3V{nH'oNٮ$1N([n-v:Y#q}5b\{L2.uL3kF\ w>ݎP瞗X ? c.es_)msAG =ֺ!6.mwam^ۣZ+\ĭK~̿szx= :uuFy"/ V hjdVOj9E*eGNCqṕ wmڄo9o(Hg} wwoZ'zVߛ@ Q[oQ[ZwQGމYT[YWBg`-%5=UKm8.貃7:nF_1!4&+GRKXTRwmbG[/yuƵWe޲1ci|[8nkg9 ʮ~tOqGLc4e' eBa4g/}i6XeQ .{Gl(ϸo3E N/ ^ɼ>TqT{G:uYzkNEřqb^7ܥ|n=Ӆ4LX>tħXŔ f EϋveozT.c5HL!# "7gf5K3eP֌#<'*~Ӏ/>A}{RN׆%' [YdS/tO }= N:~G ;cWl~m(þ";Kʼn >"Gc!=3#^NCw_NM=j{/*W1>yB)=Bޥ~C-('I5_.cf\*M\8Jkc˜v9{YC^ads|sҠ4h gU}gyHޓ,0g;-]=KTߣ"yv!cCa^$htD顾!ESzuzsz|^0z9T7KCx5i,-G } ]/mUq?=;7bOd8F o~`~8Zq?yܠ#d9q%: Żc!/\on>¢h?B*v4}qIe}#Z0.9WC6/T~Ey ;"V95s f!Usf̩ ?lhCoo71nU:=trlN`NoNsrE1tg:pQIgQ8lh-|9/#nDXʡ;E.x=Ye$5D9j&ra17 i 4€kAj96K7mK7eT_r1. 6̋45۳3"kDZe^s:3 xG)1NGh!ϰ2SCa"D1L=jP1]2goT|hkKzjiK^.\8w*5SjiN!=)+JTmz-"2Z虺26t}杩I!0{P}yV(:$ַP+㗱XAmk.ε6,L=NfnBM0߫gm="K)2-xebDZ>!\C{:Dȭ!< Ixg9%'6U܁З }S%~sSDoԲ$u"D sN>5}>u]f/)vV^ף-Չx閉:PgКw2}Mw06;eAgO;ŲSTr6,) N[preQ7b<.t|[xX-6=@U>TK<+A տSmJio^ޥ}y(wQ?ε9rg{ű߮9iVue}{>]uk,OK`ySME{;0ϓy<o{֚(isx'B/yJ k'_5Y' -2gsܽ[|g·j1s5~K"~ Γgw(P;`*crT&-.{ۋk/E}VOxt.`'xus|p[ɢ [+bS4KKM. OXSW':$]kr;UgItݱ |i)Ov|O`y,ϲDq=H:}wMKuVlbwgXK?FВxn练կ~ulD'}$c޵?V`dЙoi" huu9jx[ˀKkM2q&'$|IJ޷?l|+ژ+QGZO|rwTr`4uVm?sn~q_. _;> ^dVb޿}hAǖG}Mf_pMb?šZX^*V4 x:s_\&ȖW?-}uhۛxStlfZ/(i!_1B NFEO>04;y5B\ g-n"<7&G= ]qms=Ю=lzUC7Gbg@wgluwND|W;V¹(YEk_8 ^+^n_dc 83{=bSUֲexQ3(ۙx̼G`<9m9/c x5熥h7ޫ|z7(C|`rgv&y'U e,"CA{n i ޗ~ԯ[5Yks2dDѓJ {f/=l[[L+cN-?,s1elh? V;xEƐ&l^q5[Wi9-Í45(N3?FpҧLBXNfZghwLw1dNk ΦXp2AhCgM^zݵI}h4Rn{{z͠qG:8Rz?> @#^҇+}\:4ߢe8[@AJDXי{^痢6㍶u_8󵽲i2>.HۄRtEH-ep%þf**2}ʤ]Ie3;wВncHwIlw~CImgzi$YvѦuRz:a|o.sM;l~'MbUTow+u'kۚc1‡1ʘ*/P~||,5K:8:jq,OJ_O|j\+}q眦7ԭyP(mǾ+ųCQ[ZYk7rg;J!ǍvD70e"t5V2BKɟ\ GW%gW{1{1}l~e9-3*ςDפH}{nC$6œģWfkYyNoi_ESBWps"' h3_m]gFy}퉪%:Wo|R5L!hްLVl.tڜOy%@vG|8y3:l4Wk0]` ;z+1nxh8c춌#yp0;Vy--刺Ïqb#x~\9U1kqcZT(^a(ϻ~YbE\\n.$K&~SɕXXI!DZs1-ڜmW|x$~걇oFhuo*ٿgH{oÍ O ˬgIbSdevzm({sͺ\6$sKVvF Ppx//Ƚ\~CZuۧІ,>4ܦMi>ژNu\)Ixs: gϲ[hľ89洛y% }.h fiYLk$='9&˒gmhR~=գ$ϤwK+{). ~]s m}F?SE Zav0nIu7O3^IYG~,L{i3$ 4{Q7^5[nS6H[M؄v}DJ]hWUt3dn]|{\dԗNG.$3/}{3Z5CtS2[t ? w$d xkRuOD2˭ݡJ7#^ISĭ2pXMv85WC7#r?Qd@31g+r#gqT]KmQg pcr7}nR@Bl+RJni|0Y3RUq[v/ZG3P(e&n9."70Ojİ %*m}2쓏L!cuF,/+<ͶpJι1v\ ?LĞsǹ54j3+?H?ٴ}{qgi"/w3OS>V{ >XZ\-3o~ ~w>\ < [@?NZgԬeZ~X"!f6ÖF\>_zV{?B3ItGtgj6&/F-94/_Fl/Sd2Fȝ0e EnWy}yLDr9(^vU2 PwÕǰcdz161ط.F=h:9&M0~ht ό;;|9ffI탧X$8 Ԋg=?_{NHDwOX!=?y#6p.>f]G4mKI[m~w3Wn;x179!R;0|%0ΓV&٠%Zf骞<{)">}.ڃwC*VLHnHkh4fcWmѶ7Dtƚf;7OY9a']%OUw nya?S6t>&ԓNU煖K2 9g{Q.3dFޟw Ƚogs;u[ Ύ3sӏl]Ɗ?^KPgνbȡwfBƮYQX/E\_MUW}ekj;sЗ4V_-SǞvz$=E?㞷+:@ oѾMLx ~I/|P|I~弉z1<~uaQQWzWEႯ= v7OIx,4t_* ؖbFUF?cx2oQg,}W|(wlML/UTME58X#X S7)ܔk'U];hv~n7{-\Ƹt-S"-\nT9Uf͚rנ 0RZ'|%ai7pW>o%\T׉ibԉ-QYw1߱nG3mV(nh:(~4_cx:? ۨe!'v&iȭ۸G>}i5qTqC|AމmˍoYhW̥KsʸA\-<0Ş}yκ _9t˅0}\$m%(1>iEοgz{ɍ*"6ng,j#s y>J.snzW mG7PEv_nAՎA|=mIޏ=hº2J/ɱhS|W[΄ێ^=ף%=86WI'=Vs?;uMn#;]-llΑ9IMo^a{gFހ #obV EMKHl2R$ݍ^4 47f*N9PFXϒE]|9b.^iM[ -Tx`*豅q: lM/?PW&ch;k1'GG|N"/ω:dak=c v-+Z|HøY d>)΋dyGθߒsC\#-!y]s:Sm{-O1 {b\?\u9͚\tu?5C}}k1㠻aLZU=UA9·&X>x'tN ի'ϐl+xg3wqj^37}XޯSrĶj^ %HFWjWy aN0g:xw}'짭kwk+**AwfftAnzJCfP/v3fUx6y oi#,+ 4p cu*øZ,j\5Q0s8U]+FFum_w}4a16w}d3eR/)cw%AmHV wR6GKDGk7Ko <|cX$n1KL{a,W2GS]wquR/ S_nhߗأϿXq+!ߙM+UNVIpoz@ekuʟ'}P dsѭQpG7,tII꠬T U.QhPv|@1rʍ>ڔ v@WxwAp>n&z؆YjqEե^wE>%Ҫ^9<~D)0u ܟ RU^,k~怰MSy_E>^s䬨}5a3g\?BnGƏW 1hv?kؿy*Dd]@ ǽI*?4jk-:_FtƁo٣uZ&~Rw 0١x?$fVR_zSo2es"݊ S~ej<6q?~^~Ϫ~󊱗~|g~8:gs\g߬0޸A4_xVR6hc-2.*wrO!Ɗ앹;{}UG߬oNR4 ];WI>-(_px=A8]~o҅y^y49g< <*<3$)< F3כ^u1W1ǙJuzaXh2PofNyP] y ~4 BW7Gkڧivmk:xp4CM_{p8/v^F]M]=۹3Dc*heڪgL+z|O+]U1wu!- ʔЦGs2&Ǡg6>0`ʸR~>4{Q]1CBe=֠ [ ?2wC_Eb8;J;H1sQn=K={]_;q?{C`^7eZ}W a=zsu&MYE+hD] M6N=ƉW5=QDV3鄡y]F<,GL!@Yhd?0cr7C-Mj_j3G$!}GBڍy iHLdil??COGU\-.0| Dv[A% `H?]Y"lX7`nb*vXCQkpObயf/=&LugcL2>N(f_kፇ[g'{&2hrD9N琛6[ˆ8 Gi8;@O6a)sod,}S\.q:3DYC59c6OkŜ fǥ>sK|[(qm$g',K ˒9Y[E!s==pns2^0]{x}y * \Xb39Nԡp+ݏuZ~S)<,Kwvowj80Yfz,ޟKi[N`<ΦSݣm}Z=6P d*Խ9>mq~C;1 kUxC"d=G~@Eˁ'CuQ1>cޚ[ :"-d=ѮY-kik#)w83Ӣ6-}8+,m⪿\0p.*hѴ}Ʊї :/'_bO,ĞX|='=R{Ic7w-F *ޱSMwͷ*F߾Ne96-_t >Fi ctk2(7Џ0r3MfIF峉1<1*Gڋ̩cfnÿQogŽ{3;T̐ m17o@[~MW*Hu3rC8DڨK6Y=c#ÎwZ_@w34̜,R?Rr|y +\1C ݅v^iGc08P=g{q򇎥'5'.zce"-14^|I/Qd[P.Fr>gr Øط3D?ny5K2<3FbeJ;;eV$^(ݴ#,eɏJ%znUK~e zmKO#eBJ8JBo񞥍ςs?‘#j[hZw8T#G|ÙKqQ9C_E1|!~3]Ȝ**t^#dނO<-\gxcsP\V;|bZZelD<ɗ:ލ:}o;3c^srqROd\Nӷ`'SU/Af<{g4Wf p'䮝 Db|q$=DhxnIx&t7H)G(B̿D"s|sขgTαvoFO}kMSF\~^[$\߹VyVGiN<|8'G1Ƴ$*2^!F{+; k1rʘ^BDL|]N>j_fT<8Gi eݟ͓ry;Ӿ̹աr6\c{ۇo zPW>18uWӮD(ݏ僠ɹ5;mnyF僭ABRTRrSd9@ٗGB̙.U f;Wf;dPZ{^HJ1O3Sj>nNVxɠ\ A:y"` j|({:+.-RYCЬ"ޙ8ET0=W̘ f|ڣ堑A]O\MR9YWKyCz}kP%-sO`~_fr5v52)dE Tc2ZNpaߴ kWLoiHmnF?&iW֒mi=8ms}aQI[^d(e=u[GԇE[rkzLGw^_:x="W8:8huĻZ||y4E9g)>+Y.}#Ʋe-nmw' aؖTQ)ۑ ~C7M oQϚQo0~)->3Q+?;)Ro}66z?U]炗tVtc+坚8|jN=8{ZKj)-D?R6#me, @X9F+-yyi[E*XSk<:yz;`_<&N䩸NM$4'A<%C,Gcpbcl%|G9x743, g-Д|xpw2/m珹#W7`=_}Xss"v&o2_>96лгx_ƻPuYCW'D/ޅ0BV5`ͦ[Cy3J븅w.oKMyïF9;IBnÿs_3ʿCqKb5l$?webg̟^_ȈF_w} 6{VK;ϘQylwqH@uy[8_3E\3gDg[Ҟw6Tg8sQ1Q7ÛO$N5'g3[%Dߵ@Vڳ)4SS. +U2.$i׌u98n'`ﻼ)' c>y ߶{"xCկZh;>ू.Α]2ӆmӅ>P/1G̳3R.xHE9 O ! iG.U^j<\`)O-`2fh_[Ӈ0 ^^W=`og<`N2FFV@3ݛe^aܔ#zҴY;JgEzQY[,Ҫ5xj<7i&+ā;ԛDȾ#5Q>~Qhq+cbq2D$'ÿWPW^d-j Ӎyҿ|W8CǹsFBwDW1pbM.l WfYy05m^&q -ޣV|d_*zoum_)`xq%w'_S,J}o?} ܫM=bsZ;wO*-&7Z2jIc.k صR#h%Q_OyMEenӐv':\T>݈?Wsy&}OILy/&誰K)$K:}yo*[ ;sN ;{']3?eD;sB΁Nj7h|gy׫է)џ~mJ8?ʦ&;AXRF|sv]o`{=K >:GҾ{ƵbFkv1]m~/\xһ͜ S`%Bu 7j/; 8mٛz;1İ!•nvRVw 퀇,~bwb|$q',/OTAZ+,[|7vy5U%c,w[ztih^!Cu aT %ZJ=sQoA]p1QAK4͗hXJiƘ*[ n%5sZګﲨ8ջ,a'9HmG{&"ez}g> WZ}P7"yѧ9zUʒNxACDE<9[uMuܚ^(iEk׫e:jEW2c}HkZں^Q?S*3EA.o5x tHؿq* 4/Y]8"{mV6Ñ珶Ӽwcsyp8.opgKNnʀ:W%k"7Zpf750+X2i1e__*Z!C;o1/Xμw+vM聁/QL8S< +y7EݐSy 3'j`H MYRG[Ӛ(46tqu}M]=qB_I ]x(xNxtY.o?72fMm%Jټ7cx`r jU,Zd:d'Zs,j9+=V{-yB†i˸_c<  |4ćh߳ZM<%Iz@܌ŝ/䘀/a}/p]gz ʘ+F!_5 6Nܞ-*L/qp}ŪZHKۍw)|-t8Ř+< y-E[c -ģ&/[2?3D(zF{쬆{yV'y s9 {j~<1_j܋m6A8k_n; ?y$m&5U8nΜ"}ECC69x'je 8uoiR.h770H8kOG:ﭖ̛{)j:Xc=\7 ؔ##iS.cmk2Ŝ6/r'ϸ˸tvTU[x6)s>n*GcԲF?dg^U5;˛ \~jsL}(9h[W=\uȹYI̹7uLZ2E4gyZwܚq נ>OambmK[SK^d[;?fUΠM=cbj㾲~g, ] 3f1s<+!B9:Ȁc“065ԻOa[&4D8~(x&.Y{nDÿܛ.eЖxgw,k=&6ҏ&\ُrO"V;̹%'W٥`2L|0t&O*.r5`Clіh>@bruՑFk%K͜ \ՄJ^|x{X2g%s4T)>|+kv{nw~p\ Zkm?T%-_Q&D<ømXv֤t8JZɘZVB?>`>8,,}pfk'.e9W~hpb P."~| ㉘7EbEyn(,}RE˩9Ew>P'A? <η亶lgoH~,z7v&A9 i|tm 0'Ǯ+"(RX u<]3(&8)k gn~}w "eͯ:׶|"i<{TʻoOІÕZT?})-Qtr춯d Zv.Ah7yXK2^75D{O?8z p<YCґw:uϺj+.8 ~K_t>(o91o{ۑ$)#rlk<-[C|iFT՚vSeF͌vA?~(Z$;.а7>d ֌Ʈɨy ^}(zQKE/ʤXz¤4cK/0p̿&=jb3Q7I=1w1`8Lzqm Y1ۣp2<¼%QhZ12XZ˳VdFъLE+PW OVdOhEf]ڏ/8ЊV~A+f^Zq-h1A+n2h xb׀VP%j9^L4t[^4^p E+C{^#x>!w9B+[lYo l#tVgyHx `UtbstB-3|b8c=_v)xw͘'|}35 -$ mW$ 3 Ϸρ1OsJY?M6)vx'Lj1F΁6ObHۄ"c㸂=t"#Q6:38S;PR!ﺖ|m{.f[dɟ:ĭ-^jJmKT1hcՙ[汎0auIpΞg]vH+LZ<&olՋ..k]~%Nas4I07SoLq:3;NW9e _co^wKų-8?F̳33rKG}+F& ]d%ge;[mZŝX2ȷRqW Eb#ou\lm,9Rios@bz[MxGD=g@;sxGOlttq _sr iCnSV/OYϵs¶|rck;љÝ#l6=HkFo}e>X_a6։ok,fp#aMRL<_vU'&t v1ۖ:|+շyW!}s-\{M'`{>owЧ eYod}yFyDP.3+{mNֈsZُk~̵L:P֟)7'x]:Fs|$_]z3ԻM~ y _CmD86$ wz뿚fM/"]g/JI 3&b]95طv2oJ h,t\#xF1q+EgզxVי gT__ 1?ׅ&ݫ3rVxy7kpBΣ:H`Ѡ3a"0A+?DhssN9૦7ބ>CMrxf{Nx#nJ=w\k5{)׃vᕃ1s<܎r>*W?-΄✆kw? M;Q66 /I>Apon=Vq[i0a8se&lK?3/A\=ǂ,kաq_Dnƨ\|lG!"a|?\a?_ss[w|ψ}ĸ-]|O7\w)řB=JS>o/9h~ ˥~]χa@|lu_ oњ'WpO1>HwZ=?-qN\;pwhK}^x4@wݪ=_<~X\'4FfuIF}GiA=KL_N>x~^/zz/S~â_*v`:o3~[4R: "_o!~}!D_=!=\OEh< }֭_rEaܥ{]}էM4]n:63[hSwp n?vw@sgXbwcmcPf#ڼ>Qsקk3}:m?%z?3xvk߇_ƌn8&I@Q>AЙv'rלK";zv_y.yfe?~vN&N|/~A>ڻhӣo;l +q^otB|Um'tC]1qWۉ:ozaQ~}Ô_ŽE87}skQ͊3F|"Ή2]n^moc1c8W\`Yi7&3rl<; :vsOS{mJY]scLA>N% 5=z{+E?x?ı^6R9;j(!wk8GI Я ϐ_u~Fo~-q~;tSQ_,HS }Oߓpcoq~Npi->^5(//K8:8u;GUOH.?(t3/r# Jn^ya:s31C<>}n Ϛ u;[7qbAa_ksۦ[P*fw /[=M~$:1'7nӝL/Ӟ5~lIc1z֋Ws{*SIf뫽CA/ָ {AFtHO+FmXq~o,Xb&-Tz{aޭJgex{R?vs+ N U}fV c7?'k?R"bZ;9 1n,X_vFC7RPqMTϕm+ul f*I ~O_6 XJ, 㫆gG`G6[TAOo7G2 ]=* {kG+zg{t_ON iaB䀕=6oႰ 9z]miښ@?6?[v60LI{_)bn`_FIb kko5)!v?)ykVzbt7Pv76VE?pmJhw"ANW|#28>fx+=x[Jw5ޙGJ7p{1^‚[G)HBv&.||/oW}e[X2~2CմaaAmYv{/Ԋu BW,m_gRAYf2(&Q ͸&5 &^b`pغ h=vCM_?맘Ʀ =ہmA6gjGx4ƟuK ,ݻuC\8V[nGpknK7ԩ?şԄók;~wj1<-o9JFjK*2NgО؞yٸ3y3z_dӹ0~;Įr&Ӯͯ韺k 9tϾ Ԃ.:m{ߵWc/jKLߚnQ 69?M;S}Xl*=ྒྷ}[}Grgp߁}{N53kO+fXtz;e@x}+Ys[tKAB ڪPڪtWڪt56d3 !=ӯ 8ޗ dz'֫].x֟0r[l~b5?<촪G'uvZջ3rom{OH͟Ov6;[zz=`mjnoĂS2j3o~cy Sq྅c ܓF&6F1h's^q_!+u L9~vʭ.cWP'YZmnHW^bUD&W[@uheWB?mcH =^uog:G=68~rV,:6}x͜m xՃw{~৞W-&5pbe 4>)| yDֶPnyTڮxD?oЗۢp,W7LWndږ q6'Y2~6iqTMK琎hj(ѱs͓ᳱL:h=<1:w{.5ZOόůs/|^ ҵT t>qN7n"K.vr@^ܸlؓyQy~wo]՚\X"]ȍJx})YC}7lHoH'»w8߾8UC?ì1(MZ?whݰuJ_<\j;ж?O6k-֯32¦%=/aWzsH"p+Xb9ZIt5~F<?0†g %FL76 t  dtOwJ5 J5]v;읋OtlG):aoŸPOfCgA q-F+%o63u4,ݓ73&=!m#J:d[_ cq2+g5|uwċyZ qq~Xn(?e,;egX"$½9CiŲy6,79QeӾ]vx"ٽڭ\ )5קB]hSovyvxM&!mAh'L?`yp&K+E&ƎJ<12vsGPg\cI+w[c}WOW㙆{X!s>ΡAw _|N\]f^ tV=NWv"At 9DDWHt;ѷ$zD$6!z<[D"ZA}Yo!z$0S&Z@6}KD? ZGOm3 %z1D. Z@t5G$4 QDOJ6kn!*~F+2~ʗDC4 W" O~fTp O,H^A|A*NT K+{QӦ6/_{.׉ Wp\.!KTD؏p9a•\M5cu[n OxS  ?}'&FXOX~gkjV .S/ȿO_57i\F&3~wh[~_5&Q >'5V4^/hՠ45O f'5] '=gIE$ ?p"o"ܝpLoC7a#P?aRa @&|v^29BӐo C5Qhe`Y0]'˺ /}Ľ[/m}kM;vod=˚{y^;z߽po_^of/l䏵&+X!_mVkswo:OS8gr\&9XgvfA,ۀ|d&c=ǻCь+^Ъ4/&Z hmE.ɭj4 ~)'j_:*|BFw<0‡v{팎< ֗l'GԟxnNi;Hn8>D?tI# %Da=\?ⶒ{cbL-Iu~ɹC95f m3? cNyb$UF^gZ- zGA3%jh > ɝhjDF$ ,faDepo*kR$#s8yʆs%VxV_V,iCyNoxߖ_c0rr ~z<)>ꈱZdzܧfwV)=j?a oJVλ5k׭hƇytc-[˶=3xm_zW_۱7*wN՞wVGrp͑~/8ӵg:[7֟O?_/ǟW61EWкMv탂;t9Khn{zݧ G 9hÆ9ƨcƎ=h6,̵,Zlͳ,;K/y- 3Zߺbmw;c&N&ZQ7!Wwa!ǡy67ʷk\e|.7/7 7L*?i|l!kc3hg>"rj|܂zq1.I뙯 }1L$Bl04/v'“~Tbc "O$:r>R k1u]T>^\%݊}󒕄Ka9WTMXw#,k ˹9#r>\ςsWzr=p!:]a7BXc",׭  Gq%Hw"A8p.aΗ\G[$*%,]#܃&ruar= WA$\\EX[&&,&#,;VzrsC_p$a,`z£pa9e <  nK8p; n/|בw$\Ai?]J{*Ցiݥ{H6H)C>+O~d '!OxL?2} Bx0pGA8HiG%|#"QK &$M !H8372 OMxoSe~Mxoe~NM8Q72 '&,߄&|jdy'XU*~ u@{Bٗp'\B5u &\A*"JpwwE@8Zp,a#ń+ԡ%M/R~7'\N5J¡k>>J$K@؏[N"J8X .>$'\+'(+'B؟p8ք#):)pGR3\->& 7wC'sq,h*^8FN߉Sc)$UWL$/gIy&[> {TWYkWGŨ#iXĥXl =M{.''IMG /];^K^[.;^;sN\uF3T;.NWbjpe f_c'U~2y]z%^N I5~hӤӪvg8s*(#E; ,qr]A-!L$Ks|D",ړXU~fʷ4¢=h\E۸<럫%iUkW;^bMQE9۽ܸvL#V.'qv7F[)F-wN|vU=J+R$JP+ESই#^T_.=1$g)w6fd7+zxa[DO!r<ҡxLפ7U-?fM;*♤]g Tu!wvdU(ɲd+ٳƺ%Z)j9'j)I/OS n7}z?ݍoyU&g1Q>xOgiq[>sF-rQγTꯙm$wr_?T`r^8r9.É2(²_ uqėM9O-7J#"r^]dfB弭\ -a›nA_>FՄ: B+yz/FAΫ/+h: urB8sd? S|rAGO8wc Nr]\GZJ'|rîr…+ ES&#^e poѬ !Gu/r]L8e7&I%\.fM\Wәp)eXatw.'O•&aNG9F u3rM= 7MX?BངCWH{$|@ړ2uFiğ/Gg ]>oK{~puIrS57Kqu4å}\׬i$r݌\)p aF !*:p/ EFX∟NX)1iD]ge KLr\UD rM#Ro\g%eUdՄ #,p#uF8ҞK{x5'3]A`)"5/V_j~H\4hkv.GӘ~R,uv6{'30]ziRBqO8K}oX qxsr#pOئnجv .+pM…P5>1o+{rTP;c#qqo(9nH{y~bU/żkݻr۩޺\5~1ϙ/Lj"A->bÕ>-jy?[Kw-VbM#}XX_̏-V-+TRe>(HcynخG H}ļM-?b^U~iPyUN. T}伊l1$5^bY#<]GS#q\G`Wzv5?ļ-?$;osH'^j|x>Wݟzn4_{_R==Nj\8?_rUb;=yjءT\z.qhw;zbV>de<3YjyrDZV;by+{m|Cj=9}U;Nxގ\~OeyǾӋâ{2]tlW~[9FMoc͒9{"zpP>+B{>`xwg+nb<C<;y'~'[_~?Q 6l_y9mjԫoM?Yj. MCvT°G>{ǧՙz=qoz㼪6v`""7zliD$#Cǖ{ӹiwηŇںn0dq룛s4+7rjO*R.}7Nq֛ǥC۽Os;L<џ=e^cg^{ײ,7]}#h)׾ 1mvzKۻK ߻'vu|rOÖϊS_ON߆U7]}얆Nyym*xNo$?dSpg~5f|IkLsۢ=)\Z?i'SbEzogW~Iʏ8\YOG_c3oy1_ks#GRdTCԋ5'>:xwUmX^w\P%W2ӭߴζ/e^~o~c!f\יJ~g8y#mJ.F~WU J=ʹ^y 6u.ۗ~Puʼn^l;wt5e~1eF~ހSi}4Ws~{Ce|G߳k诱z#t}.rq.݃M3=8W3v#QƟ?'D7>=S;=YvOߜ<~iF}<Ē{vjEǶ"<^JՉ1=CG/zg3?/Y~|ߎC$6v7,]wbSv=x!iϏnG}iꑟkJte83ϼ >i9³?N>TyYY2~iٹV$\>bil٘(owC1X_`kv Ę˟Y}VW*>_L{3;~ϩWr6`O L`pl?y˞7?up=p퓞]nyⰄ}/֛W_X:g aGX`uף&^ =8˨ojt> zqgKڛn5n׸e~fɦ~5e'uW}X.~oVo?ԓܯ;Z2giGLὶ\ ɧ]q+>YtfW&N*+5Ug|u0h_=髓Yoy߰O L=€=vX\ؚ{+/f|N[ZxOe[m9o Fm?uޟ^@K}N=K?}l`ߖ<5hǯ}i\鵹?3meg_;|ۖ:Ss΃GVNe}1;Gl5z/ě|2ⶤo/\r{O=)}{97.;3Ԭg^Eեڟ}P {nwL{H^d}됕7Z@vmm7"m\V :l]OD$6>&q +6L bJkՃ|2>yG2/hǼw-̻.d>mV3OUXݬUOoZ Q!cuu.PBJ2ſ.?%.[_]@wlGݴ\+[aƉX#9ۿy,Ω ;~ [~M!8y^UiMr'C_8ixӼԷnNo iIr<`{"|S>
4d'H<}/sdcoӒ Ort9/yEG95Nt˜%vNk9- 7ӲopjLC~/(\}ቜVn4Cv#;pjl|Sv[N _sŜ/rZډӑu%a6qFot,~lԁ!)Ac͌ްayq)]觖/֚Oc#GG/S]Ez鱩-nӥy]OU=$f97 eYK>,N.sKG?V||jo})qyѣxnevk~;j_ȏ=:< %^,>23sEg>"?_&{|褸o^>啩Ew[G+]cw,?M]wBӣs_, #)яM4f^yFcWIExs^ʌ=m.?d,E:z;FO(:ʽQ;w;v̊pӑ3OEO|.sqUj}/0$~EWEox7LѽNzS~|tf~~=;yыӢ^8q#-ښp(B>8<8~v+yo!폊1B] d5v$G\/t`vkfˮaf&x5hv51vܱG9eU7]_hv7YfC~@ ;ہfX*rQ9)$yy&C w\s ʈѢe8`q~ `mi?XSn\ c{ O3]]AB0ixiNqԍt>gcg\3^n,\,*uG^ӌdDtuͼ(1:P٩S"ϟ~i@<X41\g?H՚ cԺ6\6ib; Xr gq/&ykӱ0sMծ^j=34& |X_!pUttZt<5&'wRõYπS{@SkʚW*}<ӕ2)%<$ܕ˿E~fcDxZcÂWFO6[&ysԈH=oPAW=\kMq\ANs{0MOnEdɆ'n4dHVU&IA?7t<Ɨpak5nXqu rKG<8=ܒx!GpOiq=rI6L8Ȏ/K>˗/qM:!#}}<rf_VwVWi wuw_h<}~!h }2e{€?L6G)KƆ9z%=6%RaɒBpa{2xyr{: ZnE;j L;K`fc  FpU{ԟ!ny^ õa=V?k4]?nj!x]g uaOuc#7y Fs鶾.Ł!3'+&b;UCw ܦ8qiAaPw# (Kx:rto=LY/w}HW%ϕփV˕˞!>_6r0j[m { ~uF> =7. C˧ZML s/ݖ VD~6CGہLR؊Ym0C wДߣ !eHmKu[ ,P6u0BiBK9~8FAn[|U+3gPvֹ=߄-)U. t \Kf Wx@S~"3IdoiZGAz =.K2T\' ѻO8u椟[krVmO`yq+ύo(l {ۊ 4{`+|P.+w@x%T}nbx{KDL^ //]r+M5-*ljJ;]ND#!:jn'уDDfP}DImDo :hD &rD? ZCVY5D44ZFt -D_"ZEt?ψ~EQO2s]AlW+kQg'wos[ͱN5d˶lǻ&NgY,ciw Nə;}LE|5b3e]tRhmѦ511eMϜwF~vvDŽes&sJ=b[h5HeMʘIt׌B2iN͟k69e O ̴09XkCJ9bf0ZO>6L=y)XZj g^ONN0|ؠl[s(2=q9/)7DJ9k.8/|%̍I'K2yٲ@Br9f=\Ssq>9O9/Ւgq`x2\$X8lXfrղ'e @(uYXEi.+r孰4;im[f6%-Iu[TvÕɘnt`6-YXγ R&f5y',dy'I̠Vs?6vGr `ɴ˴V\vyIGdgycz0| &ٻ*|"BA\3r3Q23YY LقcN)x c[|R*{5!Rsh+".m|S6uXEYBZ2e ^kJ~?bwtqpDsww&l^`;R1I=gN{> IWkk~Rm <_curc1-8a5MG[۸C:smP 99fBryfЉLH )P4fEmO6 e巽("W3װNG>6n1mF13Lߡ\_ uN:LD%ߍe1-w,RVWRqF7|x W]$b* l|Cj\-)-<߫z\E|W$,m$6ZOJ8-{> j$o!:䩺BO?usmw|w|qK?V9v2cCo!n?NG*=_7ӊlL : hPCeMjh}7%@K1h-M@qa*g؊=4@ h-P+e0VtRI@7-Z mQ!3*z &„;30vp.PoH!Ҡ3{fb{e*Cj- W-BͺĽJX5p#ՃpZVt>e@ղCSRv}1)!qO14)Åc'Qϒwh- X/{o)ym:w8eip/7 ҈QS.&8AS:ׄC' f]PDMW9|LaRK߮),kcR ^R Ca|gr:Op0\c@qijJ#QC U^JR~ D3fo&7J7ژ{[f lp/Ձ^ |=XYWIvƹY3+2$WjYBA+,ZX!y^]][qVIUPܸ+p;*7KW ouwc:2O{_VU6hbp#<K8*fe]@pr8^oaj|4,S,+* LS)2~kGnseZak쭙;>iU+9. B$Ao[7K|X%l7kLKѾO1YF ztXoڍ~v5ZK||WXwV pYO܃Uԯna8w]VZ@ة v9rKgiΦ=A^ٴn|F\;wji/@j@3,Fݱ4C:aC}U3oGkk|ֲXԵ<>.C;oF\yk8@zVA|d0оD2:糉ϧDknv>o_ m-;~`ZV9*cڷV?IުQ`RR@a/ ܏G'ı|I;ugԋ^ }uK9rgBs9B͎53}%91*:`u7sV I =ۯ;lBAC{!Za턖#CZa-[CG5;%cS@kw?-;h{=q_ !ÿZG!Js@ScVuz;YO'r> | b T@H̗8ǕUn߈U~Jq1~퀕GoShj >:a5df4#nxŷM-5q6r&"pM$k5mz<[<5%TӠ'ZӚ77hYnHM7k8oXF4F6{& D)`Y[MqM4{Q\;ib=5P_|4]`&|֔>uՄ'4wRkVzMʽH^~zk=D_Vݿ&"!87MT~>s` 8`C߃4hp-r G;!8l;|hb<ΧєAkhpqS>5l0x%|0AMu!M-6Mdžc|E}=4[E;%iX=JЄH@t"MT~ĵ! $ٱ&*rD~hf5 ?q9yM]4 k<7:L]Lzh/_Fh_ܼB/o[F8oM)Y4` ~aJ+-5?GݫWzaC*4etsXD!L7h[SEPh%OjcJ5q O" f;ko*6h*άި ['M>^ goB|E_CCK .KxRέme B QssrV tbs=G=r䄁"uJX7p6GW~.d#1C+"VX!VZ%Dffx *V4G@@}v'Ǔ*68}8wXzV58k>Lt˔1D2&lZ1LrX*k5.hMl0-ɷr'yZ ))wڴiIU}HW'???M6;gɻ_kVw]6:x{֞m||q_kpuy{N>~\sZu׵񺥋5WlڻZj6]jl{s E{?;Z6grGteK_WNߎ@;迋oG_vQ\vXs[ їqã=k=~%q}Km..|GgI/?xs۶m9|a-[= ꧭ$_g#Wwg^FgrzV^杷N<?ps'NԩXꫯ|/j۷o_?'O^vR?ʚ ;w:9V_x5* m߾}/c-n*=*1ʽ{rJ߿_b-y׷m6w|ϐ5׭PW;+y n0a½ WJr ߥt}י.EG}$7m$A,))Qt9rD~BڵKG<8׬Y3{ƍ \`K,@\MIc[nE=v=p켂}evС'peiii8?\ (wUU/1y2*bs~Zoh_?ϟ}٦CG_>/[Oа~S쫾~R&F%FmȋQAs}y?CᄏrlXHyE?/P28p:& ذwVAyRn|NJ~/)獧DpaϜ9#1 )L=f%;wo%bfe?T)[T2"m~2 )>LJR'6)JGR3a+_rlٲcǎ=/<cq%?iߔ7|*sI/n?e{|*er)!ea]C緥lKnI@?|}}%F5da?c'#H9Rʠ02 <:fH_SN=!%37_^@<20l<|-e(x'䕔Q_k_~Eb|4&Md֬0$"oqHaURϝ k='uޢsͺMh~yq=ß/$ԓ|P 0xSX'sfקW< ^烦tO(#CxH?߁j)93}Rؗ<L {OyK5s!3/+y0jC>skgEIaF?yCxu>?><4'-(?5@&'ܱoU(\cn)%t&M{ ݆L]cοnr6x(f<;yX!<<9@>圱,I]b5Gv/U&sɊcl Pg)ejb\6"_(_ρa6x`ic}wCC{N(~VzC>Y ʞ}a6S䫉/<=O t1qO ӧOg@yhǥx9wN|oqܺ_.aB<(%<PUG}2tذaa'NisQ.%usC#~r+)%%e|QQQ2++Kr^:u6m\x믿ZBB97W1b< <{덌l˝[7onXa]8vG>(._z%+e˖)z's a)s!b4eθcc 3}kI$믾}. G/ź `dRRMH2DNZ)#C y?9( mZ3jϹ yՌW\˖/_AطӖj#G:twuDlh! JڐV6}UX0?1Ar/? Ϝ>TpŸ.]*ϟǏWu%@ |4{i+܏:#Qv䥑cG ۵%&&gϓGyDUڴC.]̙38g{;{\h#9uo-?t)m޼y{haaar֬YJ0@FFFy0*y0ֽ\1ޓNBys-T;vnݺ3S7YKo9=ӧ+ EvMɁ׉Ӑt˰ RWǔ!k8ߋ{co+8>7}(bbbСCneff*9sMi?<ؔXv@M]`~,@۷ozΧŕ~]c\Y^$=Dl=@ts1G9k׮EEEj,..VxkS5|#gwpy=47?%<ʛ6 =UĄ om!vIPO(dx]ʈ|~#!îMuK,5OfTP&b%kcQ7B`xaVFC0C.qiC|E?}D9!/c嫯u܍Kus F~qvEs% aq>rcak)}6l|{xL19 ΋1kls)l6Ox?y#-NbЎ4O'-/Kby;ʆ(#'G1y!Kc.%x̼+uW~c@{~1/] ?QC8w2~p>1暓cO9kǰPy WӮ^JϛwW_ƾǙ`*!jtbj wꄥsPPsBw'lᄭ8\':/ݎI{Z8ksqX}i^13* * s~Xll0| 1 m]+匃Rsl fNw|)h ͛߇dt-b_y:b'7 ~Y{'d es/wR(ev YO751ϝ1yԟswoɆ3ey.W'νNIYzOϟ??fٲe#Ic'8?үs.f,87˨ Bx6;ܓgrs 5D4\_cøɵ0_Q=\ٺƶ..*'ه!eq=o:5pG懘g :ٖs ֯1sG>A3&-Z>Aq?{F?=oSXژ>2G\'~Pˌ9c?qO滍xuќ \#+Ǐ4G3G\sLG߷u`5W0NZXD }?rޏ@}@9{ O:)f#]`sB۸7xٜ_Zsm ;]g\OO;wW} יk*tg~(9&68K r o n=]qO{>r_&T챃T_]ߎϘlѢE1+WI[z9&-O3Tސ*;W; G+׏fUi[ǃȾ]sN?#O hses 91 X0fȆxoi9G<>N+<Ѿȑ#}W /w|86?W!?I{JnZ01ArwZ,ǜ9s&=,z)dwa}8FG9mO[v:vց뙗an q5j⻩憲1qJ4/?FqDW0yd5FcuǏ]?rk+}J||p~Ĉ`~ r}n1W|mqg8˥r/y ڇk2_ iXogέ[,,G1iii#57Lƍ'}}}j+R^kM{?ط(F fj*WL='#'Vc._#yI@cO7n4}%{3}X,ɟ-矬&K][k@vooY/] 6|ݮI:1m1hGNAAI1)//O=222Bm6ۖB%Oca{]O۶mYCUпSCEX R*>N33æˢk&Ƨ"E̾hkƚ597i4&i5~Q9S.džck'~Zk3JAs\v?͝b[qJokq㺏N;0"[,\0^|ߓU=#p8Ϡ@o1cX.+6ߣ>airZO2vguNc>ҎqYbj%a,^͡ccn2yA-1_ڭƓk$OSO)ˇzH)4e;rUICGoeo3||K~H~iAYAEAeAUAuAMAm((,*4 -!hFeU5TS`./ %Wrta|abaR000Vh/tVVVV""""SOȿRRQY]_XTd-J.J)J-ًE%EEeEEEUEE5EEأسثTSl./G+?Iʌ LLL̤̐L{fIfYfefufmGWOVHVdV|VRVrVj=$,2:6#+'?;$;2;>;);9;5۞]]]]]c))˩̩Ω{}{=ޞdOb-+ZGWOnHndn|nRnrnj=$,2:6#+'?/$/2/Z >Aj-̏OOOͷ@mmD$$B%k%dZ[i@!b<$ !2HB x(C6eK5dy@!C|qRqrqjt[c"m$[-flj[#+'?-$-2->-)-9-5͞V R 1Cg"/Е:RnxB/ЉbkqJQ\Z\Q\U\C:LnYm6l"lѶDՖa+Uتl56fJ3Y"ҢӬi)i4GZiZEZUZMHL7-t[#4~~˜aRPN5y"3dɏȏO̷8U6ZIn~g*wb2OMzWhT:qP߇칤sɼ%pVV-ǜvP\(/.rjnLW!4-R JL}A&n½]63E /s9uǵa LV xy%Jpm#R?:5.] ýxbCzfFuHI'Ҹi+ k|_J_R&Z`g#5ۂQGZlރS.'l6˺ ?pqsYTO3ec':u5P:l҄HK7\}5nz*7* AkS4\WoiK9)<vjָJ0[ 0q`rU;9)dejduD}~yÔU.!< wz7̺cԊL<|-egLLKyS[H܌i܂9ā3*Tz*nWˇ0o!=ӀtieP7Gd*2ރٕ$#{f}S%q2yPV&)MIbR+ OxDr<Ϥր .Zr󥁩R)JdԌc5)-I=7`!5PMT3X߱g"!˻9+Hyb&Y*`_HK-f͈c8y-\aU 폼KG^#Rr} HRBEAlRvIiH%}^'RaC L[P,IFèC}ʎ$N AV"ۙy!C]שpͧp#)`Z#WWkjM%$5 Dۋp`@tZ1 S 4IoܭU_kP>)q@A79gM0MѳLZ9kT( T5%9%28,;v!+7TI4[Pff{l[`Si%TqĬ)HAic*R X^gk\lo1Jc>‹#`En[|H!&f3Ύ:#K;G15!p3r}I8yMԏbTFķ87HMRY`+${tD &56)I8R>D6z>ϒ4RKG_̖ pnN"Bf9G2Y'z&֏L? _-H{hؿ abɝ2`IF]$o= 56迁# &ak^ͥoBm³ (Mglk$h Q0< W0sϙTG[!UKIjQ0x)$oؐנMŋH\q^MDT!B Dc;%>#PM"gMWS$ JSBy_nmH{نT _R I Ij.2ѱ'֙iK`*A]!܌|Ol{1 ;QcՇ<^LSV}Ąe Gnr7U(Ū4werDSR?%58ȅ+]rv-0+70@AR?YEv(Xj7 r)ѓ<)rX\8'gF$!>MlN?{zK>J{'1~._9 u#QQ5:jPNQ)J)ے|z+ S.mrZpJ`AcKr{.${̴RNYN>]w:5|LEöxcLA農L¡lN"VM!#R W!zG<7+jLH}&Y6`Moij=*4I7I孛[!zƋ@m}H)!{| xZ?1$qY5)<,)rs$} :2k_"B8N738 l Nߪ|:ǒIKJl٧ҁ+WN b)-IOo}z[_Pm)SnT=s&Us vL"hq ~M0IN 9 )gwHj<H`9fW `,h:2TIw?ZkȧG(vu%nxC.Dm ;SwZWN6?rv&/z^p6BueP6)lM'?Li-E Ʀ݅&Adj_ _ ?]?zh2;$bU 7J1nL#\@yML n Q;?0H[7UXʊqHn&yeJEUtd@7 'Lsb^U<]`jX0JҟTU:]9RD$w4G~=K;)y\`-w?z~$NB飏pYZ9m050 CH`8r-! .)2 XէgCh0  V 2XA+yȎ:NPD '[P R_' կzWb`cGБ|Hzgp/R4.)Ie6:cq-D(d\c\š1q"p$+VhP &Ղ L[ɩ2v?kD%dR! W>c7?雝A&x\"nU%!X \f$J6oW.jQsf~wCw}󻠺+m"k^"娒9UzPH9R1xe>Z a=.m^vL;a'|}=cZ޺yǠzC^9ظM_VQOFjϓK[].҄ Ќ^K yD?! /G*n(sRG0 }!k@Y\=?% ;Jx蔟}> \ґ4?ۖש X0:Aïv5nOOM|A@n|OCQ)Z$rHi%_Jl13$>,KŨU&);uP'F"?]79=K = 'q9YZ^U(om*B'KD5NZA}lR>(-,YF9 = n.Ԯj 2_Z(bPk>KFC_-Pމ}ݫÆ{QnC(]EцHq QSp#\si#ZGB LzD8{rڄdIp~hȮzX.j`ƬB]cL9ο7@1!#zf$ ?1ϑ]c6N[0Fq7#,GKB],EF\Ө_|r*wc3d_8'xELasAKO"xxʆtdbv{":Vu; { -g5G'ّ@%G479K, $Л8K׀٪@NҪI x9(8# v:e^:BMa 5Hw󔽘.fZ9,xRcFvnL"]:Bh:WZrc #C2PaEY693e {V"+73' Pf/xnHb#] ՈOסKT`wXi7ox(}.[%mxY$EWs'x jEdWgŒya/zOE.W.]@vf/Fۡēj8_b,n\lL,,誘.^h 1I<͊)>T.9_ R;cQb%<1B"Ґa)pA0p^9On1Bj'2xӨ"Xbu,_X)b^S!՘-[MHk|=Q4D&iTY?I*[DT&H(u*}eߗ X&*xeic&<~mPQ|0*ȅ SZyBn@s4Cv,7ȺڇƧl(9M9mGj(W} q"m';g]~9BP!;ȓ oD9~K@F[kˇIؿ^ecsp݂yo#;'@J2c̀ FR@²iHϪ+t;☲wS*@C|*GAҞZ)<9sȚpg?fKEqk.|R[nU(PJ̸"eQ0;XU")räIi ЛttbV4t޼N?ké<"ٰ߆ ls!VQ3K6 V$}g L{ʢ= 6Z8Үt~zcF([--b"ߨ.6W;[[IsB5 9SiC˧,06H~ /~)Y&G}k](7OdF;dQ_|/YSw@˗ʭm;x4Yb$*e(( }rHp#<Uh/Uf:'MIUvɴi<뮌iLeDzY0+Zdz~<~ږW|m/.ϒv=z퍰G|3N=u>j$Yq.J[1VlORM&z$ '\X(Ug~s40Xm4Wָ M$)/D$ܶC][qDD1l7-Ts$svA{雇]4Uy8HfI+"h,Lfh@#bY̏{˃Dͧ@]ڥ a یJ XYZ Q7 z=$I65Xs[X33xK~q_;oCKwT]fxPf~o/4^D۽DHa1[m+fәcs٧~vHbW+sOHpVI濬%=3BVVt_#l?;9 >Czgi; ûrӦu|ԬN[}q~0Oq$9"P]36ew&ˋiJ`=?"=YtO ]Ɏ#C0[F6μ#紼yN̵1Ppy2C"KDpK/e-<̛>v߰b7I%'[>k+{CGdǝ#O3m&`q0w1w3[liX׫QP2KCp]h)% 3qsuQ 7~\^1n {: {9W鯒')+괔8l%ֵ( ,2E6 hC('a}"B Rf]ruGŜv!˳6&%%_D1'eJ= MjP!)K[I'/(ISJ( T"Z'UChd 0bZxasU;Tlzzm̀&Xa~-LSP2TE$Ƀ3 {`5Xo![]' M)+L!W( &N@4ftcvdFYlFO>gCaZdYIYPol(dOA□~T#v*U@Y>dѭ'Ftd=@C;b)\s%rB||lnށtdtTrgQd6 4^ʌ\!4[f@ #*\&+LcwDA,?pX;'JJmzKt5 rS)n vVJֱ`U~w50AbOQk'մOؖ:m\PꎭېJgKԝ񧑍B6j=P 0$=/2Oc8l"ip|.ݱ#qz_BxzfE8sSr?RbsCpRPjw=U^C1Z„P6wPă<+t}-NlF y kNynԑ3IR%EdQ.ic|, 5PYSdËkd% 35\"Un@hʢNu-trW cH8YgvigtsNS tX8髤j|sXúRF . q(83?uu aףJu)$L|wU9]bޗ<ՓAyhW"cXB/;%Nx+z&Ty"jɯPBip7tw4a֭|*hʷImRQIC22T2DirmBp~k.%r$ PtCaR"iI6?_9+#w"r6#snRcBWx#:q) II7śF[zdaNL -Jv,!ྃͲPu<.~Xbdէ)!0d=PM8Uޜ>ON gZv3ČYƉ4@<4wZ1MeڔK*= "E-ꥯ}@bEևck}$Wݳr5԰v2i+{1] ,gqL=צE٫6@GV"U]u)Ub|^ѴD|I/ƴo4 2IN%Jh2BJrjKzT@X`wHEFL=bFr0m6PR_UIRdJ+3^^-G ?*<(#"ֈt< )5N &'rS=GzrTC4m0ܦH$PD P[؊Y#uP6bW&T,VMN0%&QMz^LWL|Dw|?IfS_IFRB6mV׬"j3!I ϯŎVOH^ m8L28Fu#G^hz{Xa(& *J}ڕk%$D 2i،|29ёˤX7R#pXyRf g)㴸 ]7ok|xx كܪW[ o5t hŵNMȕc_5MaG"xrrm`!?\ps9D ^vyЌKe"OȜX&OxA? Rd歽h%yv}D$U@KH6 O.5^\#mYKWWqF5Wn,%(%]\JxxwU֚hTubuW3p N4K*l66xVs5'N.LZln U.5-dE3ө=JBdcwe@ZV˸?66SS|S}|cW`!) (=輡-ۄ l:};t OAYzt` "^V=}XTYo qTKq\|hVzNuTL~(1]IwZw&j^ rL`$j-V&komr Lȅ5%:[1Շ*X?zJ-$`͋?|!xQn0;֪hE=J0&]w,_ coG,jzMߟ)Xr ^_L_j󅍒}r#!:T쳼8I~Vm)r˄MPAlw1E9M%>ن)|K'\a,mRd0&͑%fA:$шU{9qN=?N7~/$s#+>*g1W  Ecd-fbnwǓ/L[C_[0o5а$dɔطC{-?g?L7t>'o7% a3yd;*to@`],rYiZa`&5oN] /Վ : Q[úEB0Səzᘷ+O'A>?U, X7`UYE#Lԣ 3|ݸ8У[zO[B\zoi1-`NdxQr2@;+x?bM>W9e}!<8چCʴ i-.L8[?FC>as~=pCטC]y; 8Ӫi&>FR>vZ%=юr$Iʪ~}%' ݣWmY=Gl1IY2<{:9ѻ w%w/3=#ogs- jЛR$W2Q~LbJ(@}W0xGF$#өOWyٷxģ˙8+#! <2@Y_k@V>EDSK kP-j (=Drie GF⟠A>[ \ &^+|4~/o%'$[w^W~m(9GҨCS_ &Rz?b\?S]bmwK0I.@RB'$aߚl#ČȻRe4IXwI8F>`Hf9ܫ#;dE]K.{w"ٿ,3 mL0p\uO x&FJ`]sxvh2hYqe>57Eaya6@VX \ Pk4mbV:* gބO^\C$>enJ,pw)yt|*4 (Jȭ}ҵe~j6Ux d׃BZbr*ηL 6$EAr"?| SL9^PvL8n⺁B"%^]}Ns:zagۘc6֢oRX  ]Sfty ^^,ߋ[`etG/iyoɎĮDMw(_LDPiRre%0ދlkkA&ϛ>e}zM˾%6sk u 4= UݶhDž6 z8Mi<(]CM1΢D|gn?)UjiJ%`{naZltswI٥d5v43 ?Q" /mBKqd3wAG0<C6)1f^PQ1Dd(>,ZZ;Qccb<@*/]: }R$8ߞȋ}HCOC'Έ3ЉC/sQ>a\ťQ ^Kث;^EI ;Vt?+D| PGngK/=ޙ%vD3'D[~†/PzdY]A" -xζ2~H*?}k̐!/:g'rҥf:d~J=`ys=l`%&I1ehL,lEM'owԙ#Ȭ{n_׸Ar5}fV?L"?Fi֍Dv1.%5*3M[YCoבj|2iD90\ a-$wi㼡#Q% Vq ) 3f:F~՞A)ZaHn8k<|J(/"beq;MAZ"}3eL*o8YdT *U"RX?#zބpӮ5m{PoU\΢$f `ry͌ gL a4bm("l+ns Ewa~8xqG`b:U'SI#B R[Y̅*5Gܖ=.OK୦b,b2kVoYNcTA}3 T`)Qﲋ L3(~!T/ 2}Ჳ&-EgLקX2()[+)ƙ8ٞ A3c3>ܐ0W ?`ױ\VtuId<ИTF4+v@Na#jxdey ֛5~[՝N&' &H}+)F)l,Ŭէtk C*5Cmu.L =roJBקy//֣a7qV>HoGW?;-2ߧ.Q#؃dX'5@XXPmQ nnaȳzrރ!⍭BG&ҷ1dX;4VFTv_.7S e 6-^o"X@Y⪄27bl(3f /pbcA!4c:iu0zԢ5_5]LKH&  X>tk& &?)Vߔj\[f^k;+c}f)U)X8^g(1Vb%r&݄Ѿ׌R0f(VYldЌXcZݱtWQ0AIK䉞I{Kk=Ӈhn@:X-iZh0;uLj};벀; P~LɀmMLlW6炆a9_V?,%PIkC/&USFC惘C}2+&sac,aKЌOwB=UvԪ7A$KpCSʩ5[bs)K.mO w~g9S=lW1kFV0d9D|b"!: ؂n Fg g[krBs3nN9B,orCI_P&“ ѽ]Qh! BvX̤{`Nj6?68lR #߄$Asʙr>itBzoW- bekިkExv,Բ i @a4z N-2biǞ"dnK/ |JrІD0(vm>~[X5ia X+M1J-VgQ z,>^yj^јƅe{7}F\xGkE$o򓊎mh-R-N1D/{g m W~և A] |^:%;mʧf$yhPSKō6#;hi3v:>(\w.';]G:w:Y럚P9G/tN^a*zCѽ /Z~GiO{֘!?zs*W[Ulu g^1q'{!E$ydrFn@xiCi%؆XȺe:t+_'`1sv%I jJg[ݾ;-%! x;cdv{@\P/ܲOo[ݯ+-aw=lЕ^,2w^oO3/5黍z*ܓehP_,x[hPIN '̆w6)ߜi6@ˆ7k]ݾL؊o_pyŲ7s(5Pݻ=۷PHM:kݵ%aXX,\ū~f^~(fM*:1s1P_g[} 4D󡏐 j@GtnQ\OH4-{xmg%Ot t9H J*!_}*[+<F_iL|#Ԝ08 VO092u,gFKb( ۛ=\1rZvmn9Bo<&T[{D);4JrcCy.R>2VZFo z4wSZ4='?aiT_Ӣ04 ?3F4!8?UU,/lFOn.Vy8PPB+0U(2lyghD~a\tnͻM ; xӟ"3j~ Հp rԣYyzȧQI3 1-}{;;*KJ ʄMղHEԻ,!' $85A|JOb4+}1읿8 ;})\bz,M>h:%y!}mĎ{46Q_ooѨ{ WAМBmc|\*Gv;ϬЦ 1[QcS':@_ G;hYF*DP%̩϶aIXhI]%BX!w4a?>8ND5ۑH]D P>2"!`y:Y H#>gh3뤐Xzf\pի}R0#&@ x_(rU- L@I+B(lMHIUʼE߭c.S` KbWWj?j|FdfJUc>Qd!8PNMMO_^l=WY16ڐ<3CRziRK݋hmVg27V,'~,Tm$Di**/~ K_z Y 18@!Q걿DžT0&, aiz;m{M{שּׁB|ώlnZ]CV%]גؗ"Pʳȷo䕋ٵUHvc*;gQ9çiE$tb7}QeGp(+#7L.Wu<)]ChZP%pA3g̨?Ǜzp"T%7)ɐl 쓌o_oxS^vv"G񄇛4({mx"_4)_$6iQd?(Y0C?K3bc4OIVS[ ؈=orq2m ^V Ph#l^qk 2pzזFr{ҿUBQ Q 26*{ MD!= 0F Hu@漨@fcg0$ I } O!!!hDOǣوGcmEzH&$FQ]Ѩ}Qje:1ţQxq!bSD*:uAT2OQT$],* X?d6,A2HT*> |;CR-:'$Ս.jI9!4(;ѡP(5?(]GcΆ:W-T 2:V/"(Hm,,՝FXa.pkfD.}͈i5PU⡪R+Tf#TfBUm4PU0jPUO UPU 0BUCZCUDuEr0URta"ƹQh)J2(U$34+qA,nRu;ET(U*/jYg*JCdly!qBmr pmFږJX9V֬1JGqĆ@j^CT5-a(R+/S>p`Ri.y_TDQgy𳼍r3}ҭ!Qa{AlS8)U7wҙ/|)9o/vڅÎذpۧD=d>(%2Lg[ sxj ls+64 ({tHbh8z鎿By?dZ%vڋ!Y6g@R`n9mx!ұHfyjj9RqWU 7 @~b{IĻCo 2l\Ts(eӑ&~q ItUVd,#`PPx$xad7:DT<500x I$&1ͮ#xT4&!f1sF q|V]]]}UЧj9{ͱī՛Mqܞ82+>0vJM#Ҿ3_ >%CF.zyޘ*~U>6r+!îkX-3m-Z^4}30-Xɀ74;([/ Z2&ShV"d,eH"<%[3XGo’ [_w]/+]so3يx;L=O-T4߸v{ѿ).E#_o: ]K MzjxĮJC@lݴJSoaTOiv麃WPW4[)תS[uT~nV_V)̒Gۖ4Ҟ%)C&SN#U}MꊿϤ&KbHuy{ҵVOטa0Hu|; - qPz~?)D :Hq)*] 2A)L!qk޲s!5\ :MT>N JKIoXuLn e{h8Q J"'^PͱyZp4bDfT"#RbK#f|KJ}a:=^##i4,%gLvKHn:Ut QFi-5un(]tfL,uۊvs &fS &f8o)Gr,*ЛP7NpJm - %`#P4mej:ɻS"^.;/qP"_ɮnzfNxj{;v路T?,ĖKo+.Tں h1K= ">ˬ6mCC^U>Ty-8UF0_އwm_DrYQnJt, şA5Vi4\x-بoc9ʋ{}~g9%Q%^GPGI9u6{tqEMb_j_ǓǷrB8j2>'HkKes3Loޔ%bfy|qG&Pɏ/#銛Rgr YY,Dg79t ɾb<dj6z7JQ.vێ!i0 /ӟn*ю@9p;VKp ! *xB2O_{Lci5?~)KV`am %Rzb\ v;S}."eS _CsWv_㾅KiB쥼%B/\V!vVu}T6s^AaAK8_ݨrSIwz)2du7)Rь%/z `G BMQ0R8}JYc&N%d(lrI'F `j@elltz<#_V`0ۗqSLca7yMJ~Ȧ%\~H]xcnT}M$GWӗZW}#g^Jhb~M }u1U`X rwZܽ%@G3u(%EoznBn Vכ+'C:5 mƀm9a8\cI3Ns3O\V Y"-&iN%xCZިܨbxB0J!Rh_L^.J0Khv^ 4k_ 'bo1.(D)%:W%aVBS.nۦEBɦƄdSq_Tbm1mW9VHA4w(zc-*]tNgRbRΛP'#D(}`bوE' aajxz>QqB!t!H pa[IBtܣ0;j0ߨ}V%oIP;$Q-\u_e%MyF~THWBw,7DR)yncQ1Tih z_NS搚%`riFnf&&߸*\ؖP/FQwJ u9P釀㧠) S*AC̨%t%m ໍcLV/rja-Y_Gz xrSyɦj}h!UQN\19B{0;bG$5A«5#/}1N\d-P "*Zi)޶CJ-N`b{J&w SI\Nt)b_ԂMx8MqXlkY/zJ+ P>P\ߓ4Ra~h+AB[EtJfRWJ;nBier<-fIC׎e6v1 'Mv ^ G؛(xy'^rΩzR[fŖkܤUKxR!L1q1jXt:~8Q9shEn:ӑX\j1N ]72SKZ_t.@p-30-?=L  dGXdՒJ~RUt*k#H2trVPníu<2遡BKG*5Wl Ɓl.+x`T24J\9<뇻82|OH)KCCf񎰤=D;NI/nqEZ4T*N2g9(UAJTkhNyO$3f*mwq> $!> .#wψp luET˭@{V|lݨ@-Bc𡸾؞sM:]a}޽ը{Qv/U}$.鋋Zqy.Ζ,{jMÎûOP]x|/]=ޠ? D~uzZOc·L`}\p4J{G9QjE ғG9 M5,J|Ini90J2Z"爿6%Hz49u :jsrHo*qBl( fQVzyOF LJ|<0?*wR>`ĒY1 NL "]l7!Q<8ۿ?"Ucab`^ wW^sNvj9#c L1CpAa*w)8ˤj5_Ǵ Wܵ: w'LL q _xb-to$1t/_8V/ד 4I%tSfs1\V@wPN~ it<>B#$jKkPTCyMNqG3`,/0- 7b6$A4MJ|Tű|bڽo!? mL>'2g)޶`R\NF?5揄𜏨(茸yJ+m6AfA J\uBsiDYZ ܜ&qPMb_QPj@[_vm0 [rP>$$b'yy4%JI.%H-%a|Iz,Uq11T>݈at8T.]!ՙ$:U$hÉIQ]ϘzVOpnZlE@_\ND'=gZF qԨb+z FyPN.ʧߡt-NUO>A*lcA[ˡW_{Y#27?C?L'-ɧqh]lKjL]!.t4b& { m&ZE̱kǩ\e|HpkUjTNb7p ;ܸG̸a&K 6L3 C6. cOKϢ?kA;Va`4]n8jAzўeLFF @-TM!fi9Jۡ=;VSVPVIN$*A4ӴU ֏ɯK1c9'mp!,RxVOҡ~ůeu^M~*C }NF;vhWv/ZCX}sОUVs Nq<m::yR SR%aH#a8>#g8}wx]\pm #F;p+-/bx>9eG3|x??x"e8Ό䖥_`8Z^YAxU~\20] oA|q[Ag8>. B
[< UN&|urT`f< &Ƀ/N9ܟZB)QMo2!~>zs#1hΖP1vآ%kB2!o⫵A&RQ< F1 yDNԳmbM^xLQB ̨!W)'}3&z;VbEEgN ./^ъ> m:Ӧ EOG:IUH^"JAljR`:w$9{VǞtvjž0ZGCTmp|O^}Kx rg<{(GJyqR ~+eƗ&@FsѼqhׂ~ZY+ڃϗr1>tͨt vqi,T(BixZ]DN*g+tJvG1ʷR;<~N/\T7o}\k9ε#%Uryѽ?@_hgs )vTG9uvT>¨P0s̽>IuJuo{7.+amց.=μ+媿[QR=|sES^^abg[˗ !4lKF%T;1Nq!$4A-tHW1tX:'| W9Lq෡N@#M)k0{衄r:zE=uwH<dLfO|LpBB y8(Y2X,\y I^|l˞Wf1x$bkwrw _9>7`{΃p%G l'd?A4 xYQj[uN|G ԯy myj{ˠ.NCs}9[uB|NA|J#ǥB<<-qu:b(=<+a:=Q`q^( {]+;]b蠳KEjaSlWz>ņ>x0*1$}djl20F^ik{ 4^፝PcU/c1<JYd.cpOhmo5_TIu ?bl2u10.Z܃?w^f;L?kEi؎zTch@5^D DL(G3"t'jH .l Nb+H]ĬlJ7xi;Bb 7)U 3s<7y&D}QGV: ʍܼO«qrXQXrMRM\^ ILw7c+6|l%uJ36lD7B[.S~^km~7w('zqDKqx`OFPtaprd[O+ۼ-@;.AoQI6ô+&i`B_ ɪjyU,"!QHJӎґ4s@}qZ(\*XW:<F0ԯUxdxScV,K|%,Ju o\[X,aFw|~-L[F/QpF=  ~~ҵWhlͶjl6l!~8PT8R5# -X$+yJw #}E Й"*PG+屭[;Ab7܂Ptcl~'NŊ~vI/,敮ZSW~߆q~fz֊}f!zJy*A .X :2ĉMh,x)ÔdK S>wKqD9r_Ʒ;|[_09ætYtY5ulg5T7XLInﶺ}sٴ!}jQ2mNsdAE;ϪHƵz_ߡ]3WV.xVO׿^[ YdN_4N0+xEs9,⊠{A?zuwz 5:Eש"vgWWߩ"ANEз")w΁J"h>"L 7E3A/ۦ\G4ecHUAHIEЛ(,HPrwkA9O߭7:ݕ"Z(v߭.CDLUd kEvr캊~sEMn4Fߥ =o! A>bh$&D_O1zb2$R#Na-u"!!r 'PL7tǺ7⪡r7q=jn\57W :Q 洢t7:'W4=z ܊L`jwNwsTCӎSUL+~U5t/\5j/TTCVUCW_O54+ @нDgsw7ߧj1s!G\,XԡH$}&X z:`ԃA\ʡF:Uʘ:o12p?~^n59{|sMY`#BE~f/u=rЊFT)}D/x]H`0]U|8:8{A+\'|@3MǮظ[vнsh"6po&ˀ~BDQk%QsO-B4!Ğ1_9}G)p'^ZӐ%|aM]^G/5*W|fGs&T _n"N-2fw[vvݨ3Jhe_ Eucu͟ߣ Y+3>&6y7 i@-ͺMLAso@cֵeks](:s~؍wƨ.+Psya 3VLQ+E0VD,)+;H K}h\?z%^Y! A^wնT'~m靨K*7}`b*0&JW?Q$PӗJ<^~(]62C}]>ȵ͛;֊IB7׍/Z4 &-T[Jb 'QPpp(qzd1%8ݠ/K)ӿ7oBC6c=>g;U 1DOߤoLҧdv7oUb:?呔r)Y.cWIJ}T/y@i"vRU/TP}*m;kyͨo-%6ݧs]rS ? i`"*O@UY<#dzVo YbF4n*$ŨY%ĎL\4,w1:\RRӢ?+|y*IBEgs%>T癤~oPuBɸޫ4ˀ^Wьq? \GlˏO4#ݧ w\*idgJÜl\569 tYC0OǙUhC!Hމ||Ԗ-zMxI:+kb_$o2O/z?mb@&Ǩ0T"ZTyw`2~+fADW 쟈F *REςTRG \ 5w Dܙ[Vggv!'wgrB/XJ"%KpkW-KgxVwe-Kl)o)GE̴Sj _f Dm*TxK߬e\9vpOP-s-8 f3/E2l'>gϗ,?:[NYɈ1dI:/*蛯`cE΀z' a #Vpgl,1X)=vw{hrйU `^th2˵7+PEӡ81P>G]a(F]rPe8 f%¤0p+XXQ^va,,Y\&a09n(:?QQtt;d)BE Jy@"R|x q늿$'>u7@&Ԫ [[śT)c ZT&>0m j^鑨U@% ~o^29"AA&m\;jn{T4iΦ}Uj(wV%9(M^KvL 8qRCVf( U'? D^-Own3G&z9 h|}MPM Q="Njl(!Lg8~ԟ>m>H*-r081 fdek%.PɔvݥUec雂-C .q&v^A?zrTT]ȁ,f]˭ ʐҐ[ь_|у'4C/=\"K. $! wk;`lpH4:iI'}(|AstD{_ΜYN4TS{u-maV$izJ-k9Cj-_LQI mqŊxژ;֯&XA!uMD pS4AP~| \pCuRRܱ*%"'uVKtb`g11'.+N翲:vP,9䰞9`?c8L0Í8I@X&;R9!͕'wzvJG 6i^Bh̢Xc]!D9Z+HaxسҪ5\VQԝ+um[$\s)m;#"]PүwA 8h /T5O8&!צsg5v*`$mŨJќLXsj-^1du;RݱW\Cz /ߞ0W6*Qyqc|~%ռ̢-NcOwLG)Sv([;EZR>NL:6lm%]HƣXY4nwds^'5g:bX60g ttQ;5aaү)AlSٗY A؍ss7@ff7f7W3M<7Pcf7|3Sͪ<qUnf[|9};KPX@8׋'gn/QZÙZ<ϭF?B&yV.\ ƷrZ* 1W+HOj$!9Ǒ 7 xzo mBBEB\GG&DF.L(R2S|uŇkuO_Q'}in=V?SwmfwsF8@qmZ/Mn7\d^-o[;!]Ef[viGo-v>v=ȣ{=O>3_x|O_y?p7zC>vݚ'O՞>?sϿob?_KO/tsC 4N߾@ֵ [{fw̮,{;:`f|Z3M@>aUf箝'Y9h??j|5M4dWS<p41k5)氹$B̩+rױ<QR/{xyDW\\ Oa1I A^.) oˇPĺLgͶfFÝpl*[&I]Qs<=UL6X\!+ǐI˴'QOv1אki1uys2? 3Rm1:tTvkj!ÞBhĽ!#L/HH,frȟ w9Y9+ 4c׸YE͙Pt-;+P]sbtT:tg"c4&Gʲ: a];nm_aY!-7j0ԵvkmYivi*\%Aa1xWN j)d6 {by`c2Y5ϖf5fVahG}֜505eYmUmXrRi%CAw9rExC4ez5mc]?h-ߺIKp|[*ip[ږm]Kҳ%Q~wp@zDs1l~_/?I7sp-3-4%$`|n"s\~4~owdѓb7+= (?w##wEk__C$?'!cl>)IH#0ݗ֑sCkռ쿙TGo?/oZX91!u2>\Oɾ?l^z-GXF' M.|H4,ٟAYv/xt :n=\(MNo,ߣ2q\[Կ/O: &C1C2_cڞ!6M/]O%w# kYi&z(ʢۖ|auTBy= ~h׼M9ԃ|jsǃh o$ (؀r;ҟ ~ &] iѾ&5rSWM$ `J'JW59M5t6Im)`x!oR-`䇱6!V*o-&$﹟Oeڠ1V OХma4ݵ{t ~ICʛUp??VmuB^J%d$H7}雜DF&}53 h[{~/M#l^K T:H_ < .ׄXۇ|NäkxaE!ow_?CnЗO˖P6Hwt^{K=՗R#׃1¸wlFFsf y-?|}\ Cyàa`u`|lKQ{I"W7W +4 _ZFVPGP׽]<8؛CmaiaC l\Ի·i?$s~6ma=kCʻۂS:5?C:=Yn`k:cj_SX۴{4=>v_޻V[ADFkg QE!\7ٿync"UsGؑfVB;d8^~ +@knFcTՄ8FȬ۬[:q y,7A;߿޷֧˦MLTi{?}Mggc/w^>!!W>l:6~dcS:Mwt:6U{J_˗dr[d^ LH|Ѵw6rWl }Sl)I_3Cj7%u!o5 ^{A;8jrmUy];GSxujP>飉Ԩoe5@d@zQ72m|Kd@2TJ_!C&C5?P,2h ږ#$nL vy[bnvs+h܏qjfXx6Lz!γ^Rl*l/+gE] >svm k !=1//kE!9-IN3n!ͯ0M,P|nu6&;ӳFyNKɹ ҭv /˟U<1]΃8'R+!H1b1vrKsTӬ%XƎJV"Hչkh٬i Ifhf($n962O,4&i=km {F\6!ߓjgyP"\R'k56VV;]zIFϴs2i֥YmBگ }t4癬+VXIvkP\1{A]tfY\vUtG. %>&:]uH 8=9P lIgʉu@p-)7 F3n)e۷gf ;Q~G ,^bst˷s^vȯPZ ܿǯ?SاΏ|8K g2*;WPۛ'xϮ[/x>}}q77<,B=79C~79x~ y󴳹j'ˇgh<>s[{!w/:<87? O9n$w0Z41wC{[~]b]:DR%w>yzIdZ%kKkwxty;9Trގ7)?p]ڿn/x1cQZyFfyyK*R3Q" Ƒ" %7kHz ~vՃ BA{S{8 &67!,o `M~ $o8nJ\?x X;A\e'C]pG3|?BA3}x?ndW*޷74|9Uy#XDC ?#gA!{~IH&76|SA ?qee 5 $UѬe$UA.WCc o`g Lx5಩P3r+!U_.ZpM+K98!.!p9`|u _X N*$m,~_d?@lF[s?o?҂ )yoB^0Ep;?K p=|6/hXg aaRB7 sC ݌>"˻mo;~_҄:,qg '8~aS@xi7J`YP,Kd#s'#5N | x@^V{*{y_מ_:OxU }aq0u?J!">zxpg ߀HqfpF|G`Чpx+*U}8qs|#>$qC'md"N1SW~&u Gx86|x7`mMsdu pW`PW'~m2k?2%2'BM d@S\yp2A] 0:/1ى|q3~<C?rDț@A/q|/@fH ,hfOwr5sna@B<ma&r?89{# p<;?pzGx8#`W,np 8W8$wcw=p`n6χS=OpFP<}E𔏓0wޔ:sNέjua 绰߅}uu]˝:l 랂~19Y y^f.?6W}H#0}m4Tj.jnA|q47Я5̘1,\dee**?]v{8p?dO=MޚZ5R.^vƍRsR U`ց"ڵhOP3࿋ vcV*y)] ȸ[ͩSU|gU4CWg S̢gfH_QS55]=u<Н5Wk04]bW!~0{y,5H]K=.xl؁]}1158̠?Pd=kɧkZ/O)/iJ?зawB)1 9t9iޘ3m?L(R+>M>aMswk|> Pσ8GGGD2o!#}O?ECC7 ill$͔W1Ƈ$Bite Cc ؠt'S1d2W"k_Yڟ?GB)o+ :%l! |9?p ?A;  _ i_? "or ?z(!IF 7vo 9i0Qn Q>C+Gƿ-|ǵH?'Bx\ӀoA?C $h66|!@~Н(S!?_] |M?jhKr?-~ÏgY W1z{8_W8$?> ߄[0|g ?W1?/٬je2Ìfgsƍ|}ts^5Y""f`0-6mܨ[rs_l7 ݺyk-p7 aFk иv="2h1&^ZX"i)Vx7xb0X |vC+6YOթSO.plHF8Ƿ>:uzt7|o2ZA 1[ ^Kyԭ~Ò둢%n n X"#Jכ6E-ȮO{>݀ZTMb 5k0n'o9YnD$u(P]֩Sop^Ow*PnUVPp9KѠNF3kU 4X#οlajf xĭF/xa6:[;Wͭvw(FZ Hw; lSrDESr۶&VkwU&+F0ߝj-;?Qj( u,5{[Mάk_mkw42#t1Y\;1u(yY̊ޮe̚c'ˊdtL7V'y'RJ/5KQ .\y'n㽤eVlhIY?-\]t(\äDQs$>.\PYtl2%##CYb֭['?P Sr˹B~~_왓ʙ3gg*/^T~GϗEnp Ν;J/}t~6]tlqȁnUJmZJ_*PFSFǕ5t<>O`;÷gP0@3~ïen3O3O0{zzXOӣq@@Os/5f=׸qk5{=}6mv W6 hP#6P'/~Ok_x{5Vq?iOxzmXj5WxZ<yԳyǪ^OVu֠z7Ju챆5WgiT|A9_M7ey}}_qLg(q݃`?,n.Vɟ } >W7ſnݺmfϞ=g-΁#lmX Em@8Bn|Ȑ Ooqm͛aHPPP1:ꫯh֭2'Ι .:p/((r4@`'pQQ"Dm?' 'Q<~ݸym=1}F>%!h9 z ϐ'Dg#Q~{:|IԦi'j44CDo㩊ϾفR?/ϟ vtX zi?Lt6ѐ}D۝ /@iƗuah`9=k6Poƿ1D!k'MBF۴0+? ]e"|,W Ilz]#D * ]uJ!m."?ƍc9[J^~8}:6 %`™KT3%e믿Ǚ4.(M&q-ڷed% pT@bD}GQ$hFg֙`iϟ dj-6N,g9m۶/zJzJ=:zzoB0eB&^>'z2Nݿ3h||ͪo64}}}1q"HYp.i(dL&t!Ӱi@f"ПiϠA3|RϘ5 -lbKßTC9I4 [~rT#֙LCXD/_d?3|]{ ҞAg$b_\!pAvW:JI ڦ)iNjgz?i߅n\@Si2 3 :{hl,T}RWj|>)pk~Ivr2/ y$-VexÔ1#aLöţ*l~`:X&AҞ񇿐ߩS&W ܀M*6ӂh Ӱ!NL՞>)-HsGѬXMj)4g:qxAcrg/I Ga[>^#FdzB#a3Ӱ~2{ 6 A09ib4N'?|bիWn'EeRܹsM;wmSuL='e ecBhQćҼF44Lc&3 h9? K?uA? 믓TI `]3:PӰi4'I{NgJo1 LL?YƘIF]bKܹsf͚hs6޹>kӃhfkuBaFÿXRGivJ18>켈_(l si}G@rrA_ )5Vip~3ǀ=ٳK+7}!zE\f4~x' QL'WRLY4;iӦdZiʕHcǎs oA.T- Q`{Vۿz#sӞeXl ۶m8Ŀe˖ ?xGl6ݛ}Yz7i…`4  NH: CB̑?L7iwsj{OZ 9úv6lp _$b C|\!#WRu:r.VDy:v`bskL)))E 6f͚w +-)96|W^m &P:FyF!˻-3f\KKKiӦ0`9RוB@t7J ѰG`#Avz<'$$|~?iICi„ BroG|Glj}KSN=;X,4i$!¨{4k1{#tu 9g_F_~|Ezls 5ƺ҂#_|Ez~.;.Aqe}ecO*1t~:#=ƍiɒ%B n7 Y?`^ʕܝ>6===].ڀ/t H9?] ۗ3f%"n+#C3`IBLk4Q0 g8`qA{&ZkCj-#z?~n:'$}D~>j5Pc>9?}Ե\rDxu? 48@\ѠLhR:)zQz<07G4۰7pϚ߈0.]6WL81~ʔ)W} 5ek>ԙ }D Z}i /+pnu~Zk 9 ]aO{R/ jƥ?ypW1W7>v͞=;wމ-btnzUr@}”hzڭ^a[j<>uv |xqVQ'tBg3dS4Є>/r?KI3!r~}E_U3*V7qHj̙F6|xu|nxGmΫwm4}Z9IgΜ>̛7O=]>]OgХ3&\qY++o~s`OICWc0}ǯ$珊:m0ľ+jӱop@JVtA[ųRm'ųljBBBڄNɣ^yiĈb855U]ȵx#/m?\c2nl9{DG]%γh]e#|s9Z"#""+p=z;H{R8N9rPDΑnﵦ )j<أ@}㲳^K=ψ#ǪߘXy}~IQq%1r;{A쥣 ~>xرcRsFgddD57 JԫW/!%]6CQ iL>}8Þ|j /1.p/x x/ix>vﺇߓ@<3f xVU+B^5O.,,\us1KCk֬e˖bF9ɚ-<2B@a{. cq`iӦM9IE@g \%lE?yІߚ?`}˿n{N-~NQWweЫk˗l7GrZq8yQYYY{̈B2AlӇܹxSaXC_sx 19(Kψ6Ix F'iSe5ִD~ c.ؚ\sKx?77}m+(mNX?b*VZx֊59pc#Ds`Kc`-~XaN0ȩ70{C.Rt59!gP.-{k"zl1^un0T~mL"֓ݑc݀nbgOf,]TxFu5⚋ݙ+Ƀ97q\~ 59>߾Ȟn_mϵo {GvQpx; Ge0G#ɑXHwv:6;#S"GCɮ={sl9rsV0-}ܔ|H%Rllmlն\f[ٮ؊3=23232 >9,3!3)3%,gkPKyVSmHpip/_vendor/distlib/util.py}k{ܶw V8QIUEuj[z%9in]Jb%$W\߹@p%%sI] `0X[Y v}]^5A3^m|j* ʋ6rQL&+jinogn5ARLLJ{xxJ6ULi:W.r< :"mMzٹ~Rp˼&igOZ?kW%4ӷ_kh2h^Ep<|à; ?iݸErg`NTi-/^7ob|Zu`6y Z25`F/E>e90R3&&.&/'G ^}ƂW˴+O=R"氬ZZS?gA莻Z#ct_K Oze1*=Oyҵ9rZ@shpl{>Hqd2?KDPM#y hTԊv3X7RU(b`YI8T{W :yxܠn K_7Z`UpKPB\\"⃵}$j)ÿ)W4O`ħ?$nPņvt\٦m8ZBOL?xE";ogzRIjd`^ueujH^B9XX%yf̪=~Z⁼|Ww@<'?{Zy I1ZBa % 5 q)<[yu3od> e[Iv# إp+4i|ӕ^X_b>7REx}?AAf?FVԨ& 6Gz =2"CsGU{(#t9\9, Ku} C%QkJW 0 F_;q|&΄F&Ɵ5m ioiBFOE'5Y-..!C!ҷdW) _bE1$gb4+l! ,,Sdj錂]L5]:]ޤR4=i+Mp +1:8x^# !ڨbT}؈PѸ2롞X:#.@hԔQ&YJCqQ}OipBkdUH`~v84=w6Ճc# :C%!ӻth0FW߿;owcXmIJڜ56 "MIj1J 40<ȓE1Y6GB!qۺv(YVoǁ:' 9M۬IF>i Ϫ C`?tƕxdns{poJ_p$5NԦEZijH4R\BJ!PHmXkH Q)maNA"y3Tzإ1("KF>R*|7]3/Ҝ-H_f-GO !trk(NGLTV6A-mbr(]e"CBפߏ&0FW|1 ̸i(&sDb`v3(H/B^$ao0:tNYdx)3.JT- S= L[0#򌭦7_հLcX Ŋapy2Fٖv%O#KjTTzE?:y 1kpIM ҹópN诖E萔 jHIguhE`Ub15= ?#Y1=Tkd;* /ɤ0q+&a`107}HP ZM~&/ ?&n |ހHX&I,xa=6oia^RTxY5AЌۺ ݇$ЫBQgTI{T1CAwݨ65zQ'/:mD@d[o+蝖0{P~W@Xf7jj0؎(U"+Qa{T^Y%Yǰ?Y%fZv~y'5FɳצȨl4kPsZ]LCۊ?'b:KD<6*EfJ򃏮ų)~ ,ͧPO[>W3@#A<&WTИNYU^>४c#Hp !ɹc˲֣o0FR W+eNY^|Wdb;vy%c Mf rJ(}$y(P>sި>}t1( w88!DbWpcDD S]5+;pF9p6ɬw)PW,~Jh"ąq^IWa \WckDh7^YQ@ѿy;t8.-!ua$N[%A<բ}Nfy>_u)ɖư%7)bXm_PBY,pQ.PO@)i # D JDPح*R;1pu f#2z)ˌc=X){ITh0l`Ё>wN#Tȭtа*B&=\`afյb&v ~rj ڏY2ٚe%b$Ф؇H* = OXeҠd9jNW=Y怚<oǪ`fJVi*|V Q=4HNZ˥NbM EP_ ү~NI9O M0?i MBVgf'`Xt'q#CQgW(#A 'YHBD|Fv1,';6__YN]<+5=3ͰRS;ܡ ܓ4OU*\IEه ֞0ʎ_kgR HBBw\>t9ŭXL3xlgz+>lFaZHS%=w)1!4V_lЖ=E=\o.~:s͎ nRzHnXW}Z0WaCDB>xRT8ƂiΧ̭l͛7`>D_L)jyX%S6wf51Ly6\5_k_b{-g?hvMyyYӠYz =T^'SꔠϲSחF?RS pwқ{?댩΃kؘ Kk rvP{%[^pX艙4㮖4(U-c<cYyRo&~g|fOB8ɐ-7yooZ-77 ?5)塅a3GcbyXtYV,i4MQxHθ$M;zSv8>~oezXFv_K l%!)H8Mr%lފ;y%64(H):_q"$H%A S4Eˆ\C!:{M^ꂑ #FaIT@-=~$DlYzc4'x^ZT>>d?b߿No>Y_ ^8825FblgԦ|urz~"a!o=u\v;0D!쥜m+ q +0)1DS dp$nq{*M YHJɞ :Ƅ %}3qф()rQZ>"UfffڤF˾-+}֤ZAՠ(i^ֻ=8:FB*1@Ba88NSSX$x%NX=#yT܄UƗD9Df #ڑtfl{Ӻ0lЍ! tI|% 4 MHϩU oppX qA:Y1-o,bwm|}<1ӉJ"cA@@3Q$ 2x7tӭC.!=H`CJmU7'qS7Ue pfVRe+Sg$r(/K``Oָ[S(('?DҴ`|`"IK*pn9( G#0o}:< 됋s=]/Qҡikۘ0ڭVz:YuPW,27SYp ^m?/@d6GAl{b'׼\s~ j sV(Da<ַm Dk ц9EK\VNjd mɚ~nMV$mU9*RPntszdqAE)C;{ Q_l^1phIٕ5gZ2&"b(@1mX>1r٨nph`5i{Y+8Vu:xp?;wK6=F'=>{gs|><w7XL`orT>:_Nn/"BBBZԱb>C 8Ű/(}_K(svQ$3? Ț`”S-,/cxq&uvK- )AJuR>EQIw `g/S %0ʈ,.]ZA0#F!xE`zZaGH[vS,i|\j!0H6?Cqt/m-a> ~mV)lZYѤ1 g'bb-s^_Z+QԿ=={&qGsny{{ןt+{DGa{Îhu%.@@Ͽ ehCoQs/Jy#uS变W 0tsSBPU#}V5޸iOrtʘsTD)I$|ih*x= wpis P&,@]cg{;h>d| ŏ괇<3sw/$; ߅֟aCRuӌ DF(Fa֘ЯGLSt0_ø\mԋsLdsorKqtc]-< nū9oOu]v +DaFal +kn ʆٰ@ڂi|ɉp#V} <m U 4PEi`:e~P^WԜ2ݹDk :=?6&^^4V]ͳ"zضS9*iNCi`&@)X-*%940if7=#'Ù7lKWZR!.=RX2 99W6cK'k8-{1 +1)~#xaٚ(HGPv9d}QR+_4= cRT&3`vC~ȢMЮ]n}2˴ 'mjfm4("лǷ XNo1I,2N(= 4W㳉چL|d.̰5٠,;ͪd4d?~7inc6 QT{&fUuD2[,1RFXfS`*ӃovȨ%ɨvP` {4D7eeM9AGWz 5گt-ݑI)EOyaRk]ÞUCaB>p &\;hR ŀǧ^th#QPBi礪B-(o sFSNKIzUb19l,qk=j;HFBk=.k-)]>uIZav;"=֖ͬ08HV=Չ*-c$f{~+cWWT$݈eI켬a;zT2??YG+'*eLS=*!a#][ Hnr#ZGXNƊ4q81 _҇3 %`Ft=* M }BQv;% $AQ2>fifHwyS 6V*Iފ,Tiy*ӁWV$,޾XJȜ+n4T*WȯNt=Izr MN̊jXmQ}cV7\A#&pyw=EP/q'*?+__ax mԵF(hᷗ]~4TW#PAgXS<)oHKc]'m/:@jcpfFK#)/ܙ$XG;``Pfd +Z"{s8hKM^4)&EY[B&UNܡAc n\N@+}fU5/L8ܓu.C mO{P׺Jl1ɰms"jY 7d%D~j5"C3Gu|]e( ěu={Fk>ii*7˼H֝S$ PIOHz3sko;GG>|גgh6e]+oh&AP7Iۭg﷞@o.*ŁgdhxlV;ҩ~Ej' ??t=Ҡm cԺ]-){4Zi?&ЋL 0VӶn@Rn.9e%N7#3՚A>7* G?' S9o^W_b#e*Ӄ6~6 Oj |R>07: :M߭m| 7`i8j:*O)*5Ot SKtq;wd;Tp6뇀fIzg&AϮ1^vE_9N^+#eOaJBm5^35z~!C(}-ΠkNi*:M\Pm=#m4Sg 4i6IrHEʳ$8نðxǝXڢ:5zN<,(.l]Q9'wW?S\1"<9;MĺJ_ў[a >03\+++DgTIvャ|}/N|>HUYsIǜ`\܎ .o SDVoPcpZ]+f(`<;Q&xryRU\K#U ;yjܕȞZFJ>U|ƪ)3ݔ0z|+yOD=ڦ=k]N. [UO]R) x+9y (Mgn\l&frqnжF<->,r"ĩQwZ-LW]!8ոJ?Ѿt;ǠD{tjar A*y"#rՍ 4D4BlwߍaXn^~"62#k`?>F3ZKܪ1seB5~!cb xr۬TEn& Br^tBĤu4IeCo` ч%b&I# 'PN SRu;-\"su|HR`+WJ7 43O>-FSɌ)KEOO"G`o?Vto6?dttM"WY1n^Z˹{?.>e/Ot+BasiEcJ (ďi2`>7ަ2NVWhRa}p_.B9Gj< ZqW}ȉJۓI hN{8c:%"4HԌ\55pQ?O0ҩ4[7(1XxHvNVW41V\]\.Ax;ަakJǢN.RW6k[:ӡD]JOGZY&We)S*Tx)whON/="rT*gEg8wIC2g*+,~܏9v20[{a L'AаoX0SE:K1`K1V]`+LBӠ >!Ӣs駾W36d!S>+~]0;%1 Hrr4cw ntט}RW|M ~w/! C҂"SȮהمDT ߩ%G@ 0hEC%jdR%&EN(,e05[ÃCuM+hʴA7ktĆNe;N6=aEiii07oz/{":X4osI~ PI}Lf=_.fG0tV`'1+ " ^bQrq1nLbG=bwzmKViGM+.TT7>ڋ*.\߸$Tj7[<Ӛ!&Ltyr1.CS@ecDoHZPQF̴Qp@wVS2P4ί/m@,rT)ZP6fƓD@ZP}=$G>D#fTW"A%@ "DE' xr;|9օg @&OZ I=cV/iOvY|Ny.\'\o3n·gι3漯oGd@CGO޺;{<B KƥsXK.R>X[ q$Gz<(;{{Jyc|_Qʫ>U3XfC ד(js!ciǠ#RJ~].$*cn7:N|6aqnI^zHiBMpZu3"o-0ACqu>v9A"Nnd %:-ʮrD9ݼLi*|^QAt@g|?uF!jgiG/ohW.,z%B-C 8>=~&3| 2KQ=p{{6ᢁ&'MLŸ`#kx w~k! H\&NEGI]}D*r2Ԟ "S~HP1hǒbKԵ+A$`-}sOB[k0_}Y~H euz()tEUaAs/9JK)nU i,⤼m󫫫b-uloIFu:伎\QقnpI*:-4̡FjEwƅt7%r"-j%W#+>( ɦ/R6$fe&{ξ;;+#LBZ>i0fRTIUoA;[]_J)H32UCb *DE.QóKt$ n=֍[Zҙl'KV$2"MPwEj>ԾܹqKI>StNڵUЌ:2HuQ`YRÓk`/T-)>mƳSɳj5/qŽB;=dd؝|aR)9Cby.mw_,:mY dlr@*x$բ kuzٶˮs9 UP\#jzrܗIp{|Z`^Cǵ(4٘Y߄k:Y1 Tq|FbS5W_wU= kA_TPBR:l[ 3D+8XKڛc@N{ @3RuTB+͊$G\wv% L8wkVh:Й39%+ы7f0\`hxq (ˠ HfNx#tn{XU{QH,Ģݵ݋ԏndQ/tԆ1w1.W?[ .Z-fԶw>o" |=YwFY38pkU'u<ԼʱR&K/n$Lń66@Rг,0N3?r,y/6`>N*&=u&zjԱ١F.d^./^~ǢuNp+& v)st|@&,68t0vVc ݙOǟ6 &?;iYׯ8EoW 9nT\5 qfz8hI*r 5`ّDф%F(T^b)JW@f_u!}ٯebb A(D⓪Ĭ8mkvI2Q_8[q~T&(&qb\aq"R11,934O&(WϿ";cHxNS , HoLyBOx*SެŜ;+N$jnwR-iOL_eO\SX1 zZND*gFP|f!@Ef`\D̃ 8t++p. IąPoSp>HrwF\H}xsnjz1Gۇ_\>ןիO3 @Nw@-ud%h3|n/i*``#끝yDM(r?tDϦ$pv _k>xfuA -R*@9CTLG^Ѿ ufJk[:cPẀ4ƼqKho_xRSaʱiW?klPKyVS2~[pip/_vendor/distlib/version.py> d>db K:}6]nh~U0 +6UtV\g_$(M[$ٔ|̀ $pˏ=RiVf1SiՒQ£8.%zRE( gi~)`,gk.[vMPi1UkWFǭ@bW]MۛlM7*.\1ǯثca8>joWRrXV@kpg)IFƚtM oijlj4mIa:ȥmIʍ/y6@ )Ū˘ ӡ> a]NC\:YFfQ`װXhB0.1<#ZWΣ\)qhȎu30"7'_?-t +hDODmyO,H6LD\j.uiliNK"( Ȁn!!km$&K.vMk!3m=1'ͮj k0?h@}|ɢBTHf A̢Ѱ;"[- B GoZ'B*$Z7wNdq+ޖY_Wd/+DYDiTXV}֍޴<fmd '!¦@\Pq- Wʟ-r%zÐ7,=`G2JU" Z!zs!FC"_ҿWK_}.L֜^W"\CH%a= kjlmf9I(/L.e֬uʲQ,lRBR<&eWb:]lֳIHiDA1c5m0ej3 hve,OW>hi5Dc\hE#@\'F/5yk sUg9;9;:M?yI9Q#Xaھ 9ǾımvzfN+LA. #^cDG{s^O&:,rհTn (iP*Z4BnQw׷NYQC$yd!ŶF$Ze`M[Rzq N'91K!mqs*(T;>M9Jo\A%Qٲ+A@'j IlP?K]Wް?qm]$|$blIZmQ[g4& Bu/t6 E.!XPA+#,UUDbd;꫱\mC<*ER69<_QX#Mw0.Ax/XwPMWl]E[CxSrؼ'ÞEKVs"k^bдR}rZڽկңمHZ-RQH\q?_VPݔO2y0&KHg(ԗ ٜS&RTio{E*.!}ï4c TFaMmC`OkA;*/o°䋦+i@jQ-V V\H)Lj6EuCO] @}6Lvj휠D+]pP,+yA++c?|U7=S߲Jw [<3k)]ǰ,mjֳ߼=Az5O,\BE eX2뇑7/CAeVϻׁ3cQ=c <؊MNw +OK8'6$, '`^ ږReN$ā@.z+2p%yThE\DVI%zM.[y;SRV/yLP#T} O uYP#`Qga$7em<{ _Zf&}c0~&cv0}9O{ty9%UrS^Epgm>&Ln-@Жp1NnCu%[wߜvr֦~kVGj>砮 * :ߋL&R{L\Swz@.HVVǕh2S0W0[2>aKB: U:UT-N@₡&0س% |5+Q5gԩ:@iP0̊c_*^]}ET8/Tkme|LS|5B²hQfG==l9°EMīmi r8T u3%#L)j;]᧲vB 8:ǘ A ix8nY;l=`;`JC$4ܟ\6wSBCscbHI#\Iy Bu-AxqmĦ :&Qđ@j΄)BMi)L+?2>6-a2d]z](IjxǯKﵜV+ua2-/H7z e"4EZ*+Vxg3LRUƫB.qy{: qʇsfpP]/"el7NbW$iy8NÅޞ/5 }JVZP=cs٧ELIƛ쿪m$dXb?p+K 6uߗ^ 38, P]2aBf<Q" ٹ|&hIbGWp>|Ô2㪾{.[MwǘHRAHX EQ)R6 ui.{x[,9T>pߓXYa~Ok;<!X^o[72vZ@PЇܗ^:m@suX68"8ͼyTv4 Ԁz@̆`z vJ9o[@\C[ٚ?E^w.u -D 2QiݠPl6Juį]$v|>-V½):xUXA -o(3>(q_l(漲kgyS >C/J')S޼h?Rx rĠ&h(0ŽŲje]|#UE`-p^ȏo^ '4{ (MnMQgSF'ו^Q-O+uR}ɥj1+Z8KӰ c|^XWq3۟=1X-eFi7d q%IW)b;؂djD@TQUٱrtY؞i Ȓ"!WUZBkqZklߘ}+V5}nn=o뎥 ZhkzyVbzq6n5|[cEE40 B=Z0vF+ʓIwQj%_^!T@G\7smy. Pwg;z[]QF(s]8a a8k9's4Nۄ 2sш%ic4Ns/+}Ꙧ+p ~ )o@X%lh.^EycdWR.չZj<;@֕; 'B~.X9O }CL])T0v~?CVu?A!1I"NߠQNTPiTBYвR4fqBG#|=#~krP* c͸Jp[!SuAMXFNWQ">A.tܖgX22F)Q;A׶v١Oxtn`{?Y[;? r*8q()h޴dV0X>wtuvZ>_}j(O9H: 7Z\~K}E<+Q8<`%Ic-¯rjs붭P6F'fbC`ܑW($xg*߭.H66[7'Uo Zm^zVH;gppW.k:B$h,a)y܄Kj.K3""#K~TXYgm##̑E5/ϭIzo_7yiIf?PKyVS7`pip/_vendor/distlib/w32.exe}xE8󑤓L$# jt$A  ̐ qt]6t;iQw/zz,]| 0I5 YAnVk@BwNu$}yyyHwWթSUN:TMdL ØOU s0>˞l7>hX+}n4?e}~@֭!++@Gş3?=σ >?ߥ7{~9=O0}>we]NYjHa6]nh4d0̫xV+VԩFIa 4=f($;) &ggy D}L}7~Oza zopP 6h8?\膆 ߇oVh3#߀a?@&JeooɿUrǷ3.t0r.~b&&*HU[K'f2Y}bV3jVj#_Ge, M7ͽfavŌ59,60/贺T OCwb]de`*d am9YUaM$RGPv}!XN~WSz|", :#EARA@s(KۄS6PaP֬۴z>57r0~g<ʥ殤<0 Xr ȧ/6hC= OCK7McRKAb9^T^0U]t .xmqj<2qkuH5h jc(4'@Nj _^y^2JF/#;?vA:l5l^l+-Gw=Zbx?&Z>D yTuAY9溼^`7WRjn٣BFbؕ˃; mrׇ;Qt3|Ay/"Z1F./(pPs ‼=Uե" z\zCUuǡC7ɥ*rO";,RS]4C'YYHL@( nKy1jupzVF'qR1DTX_*|'$ `mz)RF3`J͟pi"^3k hk0jxjmF1b 97Čz3b6]5kG1+o&"3 ZTvZ"fs`Q9:V5C7׋ ff)5]d9ч6S 8,!&,9>P<+; 0JV4o?D(?[GnxKڴa AtQq5A oػ6t14]P96hAmo0Ֆ/v *l!y3sԺEL55}/y_I^Z`KӅOi7Uy7:+?!4ijGB\ےREh}Y_. X'>־12@wnKT!@mG0ЋREΥ LprBߺ&X"Y`!#Agˇ!㯦 a:QQI:_g)D@&"TX "r#|mJAm *3OF liv5ŀR@^/(lu~Y0 W7jh*g:xzBl3KCoIb7*qP`T q&h Rt%hVAݐvx[4* :F\?WI) l>w8d-6Z.,d)#o@-%v>!".5jJ]f5AV0LIw,Rol QR(Jj )%.>vJ.UT~u {q2cV>:wRݣ@c|hhekո܍̢)γ)Fmk DE{ZOdcNĢFg1'z!e(5>5E^|ɨ񚒞!ӧ jʟZ`ا`!~\Fa@+qQ%*ϵUXkUUKrOZfY-~! B3R =eK:$N!S2%ހx;`rĪ F(Ġd,`v1fF#@5oʵ@ϓI$@"@%/WFX\!wl6i5FTKZo#a NsSqj 3ss[aqxφKkt$D>t-[ڌ "*`Rg*ߗ- p>.<-ʾEТNk- ANb:°2h5In7K!D2dEy6Hf9be-(pRWR|Lʧ"Jx&45/T?7#!6r|?[,nvf]Oܑ!5 +|&sx<+k_VӇʔى!|&3loQGF.TQsGw˷~R8fO |5m#ky>VP"a>T g<(5a| <(7_XO+ŨٝlCx9]+jOiTpy!_/Qͩ$O-(vU`T,o"uͿvỤ8Jv33V ic[vr91nl%XΖayF~j9Y"O QQ!Xr ,R:1#Y˱^uC<:-ǹ)!~AOu5 ιIFn F[{H]SfqHdZS )WԱ?CrF㩴ɢ?& ǍV T; jؘ9\EMqy*D0YQbUgΦ!`K5pl1gb.yVȓJZُ@|9m g)%J!{WTaW «G\ x6a1^!kƾX w ?eTlJÃBV~D *Tٻ69y =!;;HО0r*v]V  =P,r0-ƪz%c@zJ+c_W" S`u9ב?:bej~CɺpzX <\vZqef|]]P-t&G (`qq^~n,lhE>jC8\/0R0w`3;pfnأk303fN)tMahHpaxkJhsxm]RX0$a%~/@C(%CAK֚MZ!"^DB&-4f×&]j-S䜧 '3Ÿln鄽sUkn`(~+ȃ.Lf-'|A'{- Tc^{LqYMGC)PRp3X&XZ>Hg5A)˕ YS޴ C0Na7T&z>`Lr) (f|e `'$WтT3(aJ-;M:ԉ`=#q+ `z6\oMvL'G;FG PvKɁ$滽3~;k=RmߖE׊JK+} rQE:ND7) D꭛v[j|+OݚpXjm{dmjuϖ 0^ZTg2 ]nRrN(fbzMO$NM&S@m.ʷpτDbU7aj~ٴ_+"> 4^ Vd昌~ T9M 2O01>",!bQ f d-|I rW.JK $0T&6=wȵ+O6Q/e#Ns/6f"@WZjGx²G{9*Ty#􎭣d/ap<,U3tmE`SVr蛈:Lp3L Tۄ~po2r98Zb1"w7`q)0{; |*hsɟQa[ȆJGHukTCAvʬ.Uu-'Sqy-?zTDfx5Pxi{|sT|4:+k}MWfu^x"ed'{.}w 1{:.]{.)L73hJGm)Yv,|?.@@hQ .]$i"x qkd o+` ǭ:4)4m7.jv?w 7{bL#_VMHO^]FˈWIم(4qIbfg:|4O3Ÿ4X`0tdBdZ[.B$hYS).@ [KXYL6*h} 3G6@ٛ'o/ar yi(b[> _Y,Ɖb"kP:-U<>wiYFsЖ:|Eݮah(ETAkyEr'yh%3],fl'ݨv/VťU} wE<{"1#)Iiwm 5}Aɲ J+Fu,ĵmewsO+lmI>2WTe"IH\`U88N585wT8hF}{&t:13 5E8#I"YO$ټ I*t), ؛GPlc~&;;}p"fg\ wVtf[bJډ\,5&k~)Y&SVU .>b[(` $!>Z 0J3)9K&[1(3i|]2yؖf T,l<ǔd32T_]ӳCnrR_L,rEbH[XiTJWV_Nun@i;CwA8ЍHFũN |yoI Qz.,V\0.ҥZeg":o܂+54,8@U0yF򚶧lIb$A۠5ժW}/[ȅHT[Jn~'6~b U/ۜZ f~s{.kУoVX Nԃq!D԰y*]^.ajW-%7|MvN-F1*_` _arsKZOT!Sg>:|o5kqIoy'.Y[mNd!+|lzfY@~!{E`3vs&߃,F^qh_\C`#VهM]EA@hc{]hhԨ2|zyӫU.LЯ. \?KU|_&?s*ЧVL 1bNUJV[>(ߴh:"ZZ|@*xD;mZT},$Htc[Y`ΑZZli:iEj&,oċ#6U΄π(cNy9P{EbFypsxBlW=DnN2TۣdJ4/y\WkդƎAe"d]d&Rt::<)c n"]jTҠS2L~)4}:h$A# I9ރw1u@ 7`1 ,h{[C}S5[goLd #m^A'5P)hיsXSg -AB f\] 0Vq>Uwnk7r\o ԸAոRT^>uڅeal.|(uui 㦪[HȋA%4pAC,-S!0EnTy7 ;I՝urV;x98|hl$,T%cUY}Rj+su3eSnBg 9:^]^q3QT)U eW/Fjqh́] Oug,)Մ=IK0Vمm.3 vY*ӳێE68ۋ4)8Mk\grmi▵=rpAYD,rM>5$:c7bGq=t+! o[t?v Չ@P@_ Ȕ!M#/zB9NaNJe# JWM`GTꉏP/N2** tuێa:6]H3t% qPZ}-4O jrh?jr-BG U݄`뭋zo|GM8 bYAּ7Fz^zGmCY^:KTNڝ ox+#7W%RUdg}/^o ѾUXfCt2ﮍxbt}O{cq}U4Ю4@X\b7Ybq+FpdQp4DS0㫷ܱ[B8 w#k 3y\i%"n? .rTոM642ȋЕߗK}4jĨ.O󯾛]S_xn sn%hnބ>i~{:r+b {UD {ƪ a#=ѓEK;O Y!v7U+8>V.{=껻ie,xмH`3/K d?o5Y:y/a@|hSlyTB#*ꞃ}0>ɺʈsj*ɱ)ң :ᓵue?}Y߀+)P Mt5 I}=*yT>zYR1Zhj,q{?NYə"7Z*BC:h؇2nCs%jhėdl]ݻ^vԀ%^ᗶjUPZ Jh).eߕa2cS6$؜QFWm'q#D[>F!X嵾@\f8Ć)Iͯ]>Aw#z=]Lt ؇h,\Bz@ J" h v@ xyI ܳ@ht==s8ጜŌ]{Wt`oq{ȆD>ޒXBi޹@XMy];QP7qJ}N8X-̪}dq?YC'07L}F+~M=]pj_gq3 a=ލN@HTl}Z<|䎡<~v(TfF~|f|jxʒPXjԀ`\?S$f*d*d Edž#ǙS7X}ǃS.Dh6YY3m/\*u31Zw G!14e`B5NMlhxr6nh2q6;uأ ;h[#[B|Q/ 77O, ;\Y_A׎(3cKH8 ݵ O.C&(e#z[!o2 r`x,:9 пScN,f l೛Nx,*F>1 >SZA?G@_(:S dc3|qh挦ӬJxqf ˻[ xvC[b->NoE+Mz~~JZj>quR-ڋ6uト~' =b>ɞ1∦*z I>BC6>~\z.Z3za<##h ~@vwުBq0~,H(gđaa<9̣1̛&;.mI_˖-Tu$CȖ#O8mp f lJdz$?Œ=boiY%P٬跏nrE꥔Z< ${tP`-(q˦z\AʓCfid19|J/vdtp-m8k쯀{ qQ$ ?_"F脎Sb 04(-Z MTJ]PjD߫o0s.S3/5M3;M~p<,2^IJ%LA*Y$mduPT).)~+q!]MN t Ɓ0=*Y%x}N~N^fZ0F\ Z* ec!!^E1Hٍ33v,6>JRmHꛨZri;Ug*6g/GK+=1̻sp)cwѷex tT1hY%hBhJ)2Ac֎yS[[7aBLK+%Lk>QMV{ɊWNJO8nbDqhAelF!-\ȪOHY\͠3i]%_"x)a3~:'?V0pplॱh uPIOE(Gj5+S]:=k@rjQ@q2t3G Э'?U<{#U"^n܏Hfy2UNPSt4j#!-c9dtȏ8]dȏva/HFu꡾D:lh$˔c61AOoKqFqrT"*Tv/WG0ZRF=];2#9^iPGC>EL Nt&(FtM ί@'=5!m671z,z6 ܃̉%̊qmElCjTM\6s =Z+؛\ˣ_^^2Ԏ+PB.44Xu^0i^;KAY?ܶN} ?W~8t%?jx\Ůp-'_+ț~Am]7fk\s uH&Orqr=u7QdaYr$`\ll.s8q]o7h}kƿa.79[uc?7$>B S`["mg6y)S2>ºP_%ц#_ mxʚLfp%3}>H l4L)<;@WK᜶<-l?L)؟\xE+ԓ^04T7q 2ԍй{|y;X寠1:6de="eK ۍ R xHK.tB>BN>! OYM`%/D~YyQ e Kefжi^z@.j=JEPT~xa(ŔpwLZ()۳3s>7I1gQ< <JQͶDZ1X\ܛ(qOh]8M%>L2Hd#r-_0H^.)|zClGwsvr5Υ@TuSuiԏZׂntaԕ*, =ia"0A!WC OR@2tQtJYi\‡4tˇ9dg͸ mVRk~bU Yӡg<;U^EǽdVCL!w̑IvVlȍwlle-Pنd8.$ 9& 44͋']iORw,-25* Ȭ"޾yTokI$`rKоZ _ꌷ:Gá*TN#*+GxYOXayB+Ix?y̗ Rn0INn;#Gl ^ e6-37)?n07nXd覬ʥ1EUo~7Y7lE0šd`OkuB} 5j8dWjnw4@R]Vh*Bƈ q(9$gw.r)U '^4jV_EYѩ1w4;cE+E$|enYmj`d}wUPNBP犤pX|etn>9ez1D'`}r >K|CR&~^wQ-.9B wQ\xu1B6\qAӒl+%-+\sc_}L>/g>賟>^D1$a$dRP愪6 A ^;9`\%#y>NnxOs-MctY+9Ƕۺw(io)S\ҹ-Eg\'0ަ4,>߈#D bsM?ޮ1')Nǭ"Dba>\`?C.o߆w3Y#$X>ŋ 2D`E@IJi} rS ,&v}x)^Jb#cZK@}C\8hJ!˻~a jWlؿ'cSib|0^n')g~qz<⑲؝4uRA?ZJǏyCZ e&X͵L-8V)Ei/-)֗7{MF<;bDn <*V`i\#0fţQMIjXk#xﻥC};p,&=nMXU Xt t0;ČMx- v$׺^^3,=r-(q]fYLTه=>ڳ#&4?EvޮO톊 6>vΚC?P)7IZ^$ӟHXdH@E~:Hpl ,%#XEu jnnJ}8ziZ#5>֣cTڱidEv0R.<:s&dN:>K4t_MNonKci?Ub6KH$CE xՓ,"yRRοFBR/ QXS2EP4' $hZm䲸ƃո^aojAnoSn m!/)Gu,帒!ÌI#IL.;G;]݇#;|Tןd R)'S~"W4Fy:lMMx+!$Dӭ Uj424KH6r- Soj8-E+;Lw5/-p-[уlq$C!=ņ ( 0<:ڇC)V܁᧕4 -ozʓO ~Vs q`x|ozOBO]M)hE*hhTC"Q!j: 9)h{*B˔ Opy. I<⅒m 5{r(@DmzP4}:t8ۚn_r&ژ"e!|%>:; j T|!Mmxt4h8`B%uKY|'B*0 Q=PL&%6+Iv|eZÛ}G>z):kȣ_%o>52-E/pˑ;+,MO~NLg#SƿL'$st Ae-hn+P=G)KG#~U5B{ -XhE*DhѨUj_7k$_I2J#Rm)Qڈm@ hhQg_ _} ݤG# v۽;:^57Mlg. G×W^Tz]2ykQj'v_qZȈ;RjYS{ٮIɺF٪MR3+,x&uv=쪙BU-_7Zv~13'$O?/d^@3#kl'oV ''UXƹ{ VۤFVA6EnԓS,JpBi=zr>ZH$a؍Gm5qǛdYkm ?6 21`rE-K5Ь0d|u^ WmKB<T3)DGa{BF_NP:NUli+mWr;Gیwxh;w;.<`Eo* ra*na3UbhSFoS:U.S&IsdvF-o˿xꇇ1Dn!mFZ`WZ{U[͝xUbPtlga9}X\r)..[}"bE^[jt|*]~U00 X%^dtuv 0jEVx׆daдJY _\%7ӭi#@z R!ȇW1~wO$Yțw*,#8o(R u6~2,&r<"Ufm]DwS)~u0lϿ~q"%<*]\m`" I,kƼѵk"n유~2z ({]tij 4! LkꀣOIVz(:?]rn8 ݪ{^UV^df*oܰBfԮ[}y Y{?p ]kr!lI0(-UzBM(Q8doX  _z=Zt_'Xr9Um F*URy0$uI(9):-_٥3V8ۥCLxBO]@ <]vkewl+!KeϱGhӯFv=U ]l$_a/n7b=4 ---lBp_P#oK\W‚~ji]fmJgXD%)4UJ5ƫ\eD] EO$¸PDx3 K_pqMݴϪ'km@.@kL~z< gR|L?tn 7-!`肅3t[G@v `Hwv=X;VWa•2,')qXɱM0zAhϨE0< P~Fep[/HxdVH3g>*Ũt݅UR^&w!TפצWW/n[#_ʫ,Q+8tN,M٠iLtq&3T3 4Fy,;s# 24\ڲ#UuZZ Pr^KBP>4.`2ݦ28¡\KahBjr~WЩOPAVAj)k~*7-6fл~- CӂYSh4p"s%p]A:sA~# Uca:_8×rC.E^Mkd֎Th85mJt$@*KẼvI> 05MAc ,G0zYd۳O鿖rxd<:m$ Y^*f`ƵyIUøvI8T)^.vľnM?5͜=0E <4 K U{,&Z6ꉙ6`@ĦόEX$yR+ޟF<'㑜V/pf*IǃJ**% ‰@v3*pg<Ũ_ͅ; 8e4ȲOZ eV §v ݔlaWs">'h^C9l}A!Y -k(nkfDf<-c)Q݄ 򳸾jwJR7O,9^dbJHtG$OW@@#ZjW8_vx-wM?H%UG迥]v2I1YYGy!5{xR Qw>t>h2)8@֣-}1ujG.U9QgD9DYy-[8x\ݏսp77ӵtVcӴlğxC*tw*cJy[rZ $<݀mi<]no hy ~=-oIxUݲOdҚ՛"݉|Ł?t%[Iݺ1 | ۍGg5Gj5P= ݒ*w3Fo5GoҚ֥F!9Xn,hojԴRUk*l7q-{xso݀ć -P.H/U5R.]0NƮ9 LLyܣԓr>iB ρ}^h8yvVTHI*tpVKkKx V9G J .HgTd˵HOB=RcxF󃣂aVǵvwB)?7L{cܔ-͛ x X=#6k*.P[uc,RIL3ǽ4g3uh{ky7LAgS:ոM{/67|FXzw{^miىҹ\dj`"ghKҨ3}JG!LP&I]HB<VxFi}?Y磠Q/<(dMkHa,/\}xl ґ|m(\=" iYC5}=KL++\M̅ɌZ.s$F%ɖM E l0wrQTDI:c2Po-$|x|l ϗ *A$s6UU\'=$_N+xtunoBʳ{[ ~JY'J0rfoѮpKcV m䮸c/AnFA %^4sJ5#K ^VHV砿 ]*~fV(xQ".nO[B*ӟ&KA9Mܹp}o7ӫ誆md7욳Bv 98_ /+/rG|OW]+k9xwZUT;_0wydnA][WG,a8MjGBdn~ЌurRRh"XaW2˺}U]kjk53jg_"1598ȼh{~aɍO#X{{f@f ^)'~G );0`TN8f?6؆k?Saz=I'"nb6gt%ۧա u8Ů]u\dN9tat%q1v~9u%`/?:NȴP^yZG&R]~M/qZs{%Vp S3/3!$: A(k(Ȕ] |̛saowcLFISEQrUKS>㤚*[eؑIsk {~ޱ_:w 9RӪd &Dmiɋuf\9f^f0갩Ǧ$ IXT J{6WLlT|ldU.˜nV P6*ټ]9fr>6)el(lZ -rEy5lUbsRfR(ec;㕩lޣXLS&9EffæMLn [a+ˎJK[q~rXe+b( [W%[W![º`}8zu*e[R)f+nP{@C+UJ{`ԭSJ[Q,l҇ {|NGKV1l=zg+æʗl"![MXCǕ7*"[[º`]V|7 |:]ab+.URk[{z[C`5>lzm֡Q7oH"Xq$R1bxXXZ:üec,OF}C5NVqx1NWfz3'b) N"ofZܱo|/iaq\WzBoHZRėQ7.Əըx{\o uNnTnNOn*WG[cvU8vz6>iIٮemwgdZ-r'Z)D EN,|6;1CtʅkS2tT:X;[fxIzll]2?vl~?RwI?5PD="lrUn_܅5~گm_m_]z뗴`q+ aߝD7qb }U嗽Ox{mCܝ (BR1sEJP;[ MӠT4lZlK_6/ߵ3[BD/شDXmen++E"2_28c[ +7-0>n,Ck gql{eCj2`xewx7.{셿fݱS-|gAu6`B/8w>}}`۵}`;@\;]EK%,:)_k][toYV0 XX(͑FjV<_n'y\x[o{+.w-n+n O",NiSQvSQ73ME`1{ b/egr=P/*0upJ*~'D[-UV)m+o-oJRmoJ#j*~ƋMi/P@1Q޸Uڽq5?6wna2qtm8{@-J5*[QgAx` ͫX=#Td:Z=3%'(m;^bѐ-NG5G5[,djn ж+wh ЋkkqFiWcpykX_T]&a]m&[þa\U^m-K+lQ O'j&8$7A0ZKkT1nNڢ [Ŝp\,%6]vLh^'QUw;kW/-慿MORCَmD0qbls3Q79%k/8yNm^ߒBx.).BS܌ZWwmh1ζVl8;Θjl' O7faߌ ԍ)БXa|JqW{l@P)5^g,4j!;PEsĞb܌c :UE\м\ΗmT/`d6zee # f@m.ӪSe=]8e,t2TˀtHn;@,_Y kgX,9*UR*\'HNd1G{~ρ,/Vvom'B{Yx*c! ujuPQ`P#U[`64Wj!;krֱSwr^ػl2ߩ`xkk۠9p`΄X+h]zRېOek5i`T:W;o۸T f/.;͹Ye2޲LҘsB8+Λ7]mu18f>gر*;:n@YF@8ơcfx{iDnՈkߜ564D e{mE Y(%l\Y/:Tg[`1WVnuӴf'YW[Z"x`7Acr"N. ׶¡;*g5v})J<vu@Ee6 V\ar4?(dž7W~[o'pu~ZG|f[7%(/~ #B& )$7c(p/lo,_n^.瑊uL0/m3En+*Bi8/Uf  8fۓfu6Su/JFl|ĕù%mrm_8GW">kOk\S: 9<7v?+Kpb].QszW.'Sx/Я%k(ͅ[ͫW7{gD&$Ż&gKIy>i2E{H$evJ }< MEqGH-YCRh\M'8=doOfx?Bd aLE 8 |GY‘JoSbMtB;n9>H.L&4)|1%^8_Cv.P#+RGp%l'SPҡ$#R6-Q ALRdzƟVZ0#}YZlu!B3g jD9No #;K!-%Ő͈hZ|6Џ !M|W螘sMk%2GDH7My/FSWn6pw-8q/ JJpd7ew+brz3T|8Qw OۭM$HPsz QlQ 5Qf%Ѧ3$M!!uZ 2Cھ4UI 'ٺI~/| BiP HETdZoMT< -]-YF e.cpnz0 ! eaɅHxIpW1"ۻ|ik <>Pwm6̦KZ9cf${왷 ˠ?KYەաl(Cuv$;kKx3FV!׹{|ҚD5H3ԠOJ2)@ YZdy,OH`yQhi'2$A`،a_Wvhx' 41q܌w+U:f!渵wp"Ym-Pub=z/DStƱ0 /4( ~;?@=bk!dDRSo [1/Hq zdb-4W0^񺖝:2,ȰkRn#XkBqG%8ս#wo$[ٜ^̎g6u6N7{eSCOn7Ud+$_eύ Qm#6["̶C'Cn2al,eؽT:f5iK3 exM[yNspNԼ6:ΑįIdzlqg3a%r/(_̨w|5"pNe8Tt?7 ?V O 𙕲z uW9Kl W}B 9ͱck&w@>nRfƷTx'Q|Lfsׅ4rp'JaWw6o?wᬳBq8Yg  $ZN6_]8vp< ܽ_.N?V#Pnu@cLha~C6[$fM#1<OI;q7(ړ.vܵAZ2f k8$:1j$mAg7g6ϛze<.&uZJ)v E\dE!IWn8K8k4ABU3CEkծ9x=s}=0TxQ vk{%+h\遣V#VXz_J7ҴMT qT:s:)Z#ks4*嗽ǽ~77H ~s~rKK0=~C[?rf(Cߘl;?/[Һ43~q潰uPorc಑#ogq(%; V6ׇSm]ˠUAuq-շuշ7]VkPmfD%KY=3Q9pa&KzRڭ{_:YD͹)@JvU1Mqc_9Ti]7JypCpSґh¬^c*7,+n5_Q*| vNof kk>P<>q B"*u/y1yXچ9=-PadLPc)/jsUp}_qq92kFN:p~Т'fU2a_٬HKdž]6",=t;yUӯҗf=\#B~=!5_d;[lÕ2p(r"1co驼[WqҶc%A~{ Z^j%AN>\5ۤSY D]6-6!p7}~sF,vi;8Z`XkRU =Y)ʣMK- ud.ܯ'+O WjmH/; ,IBO/Iw5wBR*(<w7ZUww5 b7X|kH2RR'RmM@*TőZa_M_'*rpq.UbrçȾ%|/44Txwk1Z+88K㻸WiĶ9Um3-}agM|[$'fR#:wt͵4b%Q5uK J)n1]ٍ ӻA' zT5nP \geo|?]@R{X-i){k.k%~( 0U)u%<4U)5v;$ڧVV\xe6TE%4m/S_;@&9ٝa 0=}@agq鰞~3]+v_{RYPٴƧbv>a.0(jZڈYvWoΎ/PX {X2cDAw>6kw*U&NUNW9wC!W24rI'+'4q%r̀V[ʟ_5qmN/-q0hTnk꼡鞥T{_swʄ]ob5?P#;7,+j?;u7}zSu5/r_0֦$#?ڐl_;cZ ʧ ;k3QMWsSҦ Ra0+O#SK6+֦ zO9K{\F$&'eƷX2'ywe?S1 {϶ĭ .9.g*UKD{)?bR*Ls?yB~c&.۽+ :ϴnqzOCYu}y$}zǏok!"L^IyEl"8@ y B@Е `"~Ep` v8 _A/h162x>\(<-BBMZ`T!{c℞>¥$jy)7;3ù/\1O,S:\!tUA09D*eΧnLxAaYt=5R)z98Bz&q1.ybF3N7\/^Φ6ldL9RIZgR3Ѻ~GQ:rsa^;.A.:ttGAZm۹D'j\we}%^՗_߿4/Ǖ_.ҝN(Өu&E=N*f2=4RPrz)^OzΡܬj} Ngi?rl$, 3Wo{tj\׸מn*NzWoN2Pk{4s.ycI ]Zv·+1,b̰G-4 i>dlKO,Q7Ýd,2>M,27y 5r1"3FA[z%L] #D nbk|Bߐd5U{H^ Mb\5N;Vjן'7f,O{voYƊjFs-V.P< ut%\"Yj܎6aˎvC;5,$0LYOy5.*::^:>:zzj>\yy T1=QqּC{@|[2הl tQ@MDʴi񱻮ԩY8OYii=fq& TI֩\swNh͵鎑|?88{6ddn^aj$.?<{j&5GHi!Af! G\6{^Z*18/m5dkZU{eWm9hT"#_{xzy6jįi3ZӶM77ҡc@]z[ݺ+wBBa3xظ;3aQnjk wܓ:qR5}{fN˷٧Ϙ9gϙ[ ?+o(0W+vy?k3Ɵos?= +t]SKjܯFD?Zҟw$kt~Vzk·lyE,XXȹtez+]zc] O>3>^|i˯-[_ͷ޶}GY]ٳww;Gώ}ŗ_}}7ߞ{.՗.rGpCM4;WK&Zx=5;.K 2};. vHM?bœ3rf$RmC|kޝ3l9yS#Y3,59ɖ1ݚke7]MFSrf&ѤbfxW1U}϶geV܀5b-=cbb C~AA >ݘD{C3sgK!%×|t>x>P82x-(b*„…kBO$$ 6s…KP6SL;#7VXN5|j'FꞖEJt _FeLm%clrd?G㚢R1yy9ylT{)VěNȲm9\k::nKt6,K3fSs)PO&ϚfN˙J9x ƛDPu Bi|˙HQk7> h\vCèJ7y&Z&ڦ$ifݐ6xD7|3,cbfQڬPNٞG]ۯɩ9y5gY&SlkŎɲFbkQ)Z rjw f5yQbfjN9i,`eNE'=F@Ӯ,[ƠY6먜4kԔRkIjQ[F;O!Ɠ坓7؊C.nS {z:iX/jguF2R4p-)5/Ôd!c6Ҫ d.tkfUj4|0H;^9R覺ҡ=uҹ߅ [tL)+\ 8>BFXkbA Ӥ믹{4-{=R{8#5DL坥OWpj8C/YNǴu>ܷj}QyLҽ!?!GjmE\ {oFixQZox.($x~黁:{ϚתI՜q-d _zsλ|#5s ?'ڈSO(Ok86:>f)22_Us՘oDkx`Z+$XLPD0 `cRZ|H1K1{)͛'JJJ#<"V\)V^-֮]+|I.M6͛7s[o#6?IJwyG߿_⣏>ǎ_~8s8'N`|'U*q<=H›wInPeoF,dO1N4B.#yXoOEK߁QK'SXDWS)~4L-.oK('?LR(⟡ {t,4\\fbC>K}.6hO!!iB~\Ȫ WN)A)dP (')ݔ J?)Or)~}YKWŏ#)$?/+)S5_PJC|_SߙNR1_L;(1COE%1춮:t<9(.66::.*""2:[.]: QO!:?,)"!f?.>*&.r;t?6EW ?۶1{w5;A|J?..6".[?B#"9*.mU1ur}-9-fďo$[ a!?<..&. hok7 9?JM)`bcc @]nGGZڵ0Y\K G~ϰxbq|L\<9'S{ZBf-ZPJ_K`8kFMbk{CG _ې>&6oW-eYESaqR$}W+u)>7rHGZtg 3bĊ(ѹ>)Iߨ:L2~aj*fn:a^}U|M>.{Z"}c w|'Z|7ɓR|ΰn/K.xnhg{`CJ?^.D,RGh._=v1B\~!^2ħ1F.GQi_C_)~M?=?zzJ hӦ /Y6:'1iӪ-ofvԥS[{[:vBa#Pp[75ќ4kvtڣI7kfszu8^׬iV7֣oF^^~Lm}`* ;7jԈZ>8GQKa-]k {dw:s̿~|?"sΝq/{:{h4')ßu;wH&x7n\D_zO?]JhcyiIO0A%kIo AR?(D?A ΍BD\kI> aN|kǿ5 H_~7ސ|SN_СCqHGI/;Ǐ9&HadO?twJS?|?~oR}C8,A??S_РDӡuK ]`twڵʱDhعs'8v'8NPfȑ# ((7y!r|4>;Wßp?%uC,!!!!˷zKRKҙ(3}q]9z(A mQJ1)#>~){1^&w|?J?ۗ!~ (+AYwQ_}9 |!x('2)-JvP~ G466);)/^g_,t+CJ14P}O^DCR2A]Kׄ  ˋ;,*+h.#X;x2@ҘsAI9pO4!=qDʀ:qS!O-]W Ӂ:9ܣ^&R'H04Q]}]wy-^ީS>TKPжGd!~TGA×R 1DæHG)haBf@t2΀Pen|hxhxhx{eP(WF-riVt  9D:Go??uhyƍkCqïʝEdh@&΋Z?%D"h/6)ҠcZYu … ]4ԥj\T-O?*Y%w8B[Z}~P7h4hђ{#eIJ1F4+(s1".;;]:0w\(_T&0Qꎱ{>K@}.sG: }Yֽ˔ӧhW+-[N٥K"|I~9??_l6xb_~%;Ѕxo@[](xP>eտxctW}uZ}^FuM֭[촴JjGx ywDYZZ*~a2>_ЀN0)}!팖> w7L1:3ڤGg?σ/q͛7o:,OΜ9SRx;XGxwX;pErae:XSl}zkW\ [˲xʎ;[oUn͸ #Lim}DvgU@(m5?XB]|?/wubӸe 4^N:҂9Ð{Ѩ+8nБPv+ 2ݵ_grr2Nm&g̘>C_&C>8Y7-?Һy}z'gϞA1cet c1א{ 2ڌ -G@@@^{m)&f/9vQQQbݻs9qQluC7!Gh WhQvk]`}@<,B}޶m`ސӐ* Ʋaaިh]uu &/S:EZP?{nEk>>׊?5?:_/*[I*@-IXGz}>(xW^/"/O mM$B]ߠo0 uuSrJu75o]QP/Q&d>;E<ПvqwoU e.‚ $YO⠝A[1sk,.u]v>:oAw829}eXׁCsԡFGQK Ḻ?^>#,Fp%:w}}5%KACGv˖-Gey0tsЛ|㿂 chavZ_NТNSQޯPbH]}S_C 堯ɡa-kPS*},u2~X@`ٳ]QH73Oj'\?}'G;c9{>r;|hhLDߍ;ٽ7$ƶ !$GIGPЯqǃHn7wQ=:3fT y9bƌBDT&fC34SM[ jf߁fJtLLf,Ln0k1 UtE'8_gwԝlA^H >?j }?||Πs_/ r(oƆ`)%gj8v^^^hl7EgsBmKSt'H${zt }:B~tVʃ?I*Dmzq=]D?tg=BHkXo:W0'؏IykZmvz>`pGVC?Sj ƃNic}sXc11h62=ƹz4xy7uZ]ZkUM]zԑCo_?:&v$<mpR|&~CXg '2} _SIM2~ \r*ρa>szS=xT]kkTX:8>=4Ϟ3gNq[gaB~qn%b>:hhև5&c6}c\+\l'OWcϝN6Ǥ:kXgqRʕ+x o9Lm?/N`}khhu˦?S_c;mxqNL^'&m~}N`ɩh8ay||qvg,Ƶ;֌|XVWD8 w:=Xֆ}\7< GÃ﫩ɣAmcϞ=;{SKrv}YD5H'T'cVkjO<tc.뮅exgy:<'5hUs"zJ]?))DDDϻbm:##C.ZwIo ޜU+pD<>1k|\Yy )lXfsL8qoPP{yxɒ%F9ɓ'@9|pMׇr.W^_Cޜ?Dp82„ xa/e@o'V]ם2I?ߪ(/tM>rS2oP[}x:/,׬Ysh1礯)ż9%Ы{$paO[nտy迖9P3hPΛ6m@(_}/o > #{ =ƽxB}}C~$Q?kOvڵ_x.OC9Sig8Nwcc4I\*UpR[ 3zB[R~HjMオc>yc".:/[6W}ǡ79n8I;a+ Xi%ᅵVɁ;>;7u4[uNMcq0øwBNnM4O0fPNoPz -{kBxcNcoر΍6 |8{R8Ǔݡc܀#k)!ZA|#u5%䥮.~|s&tn~-/܁GCgpx {h!(ˑ#G2ON,|es;o>۷og]M6t.S#./7?O"G' m㣝HZhB$8}ݻk3gc?@\0>&|ϧ=57o8o]\\<NZAAj넓ּf>g[ iS|Dxj~uĬYSteϟ4:55ԌIy99nrO͟}z橩|[5/?#'{@݃: ll֕kL-XG1yY;Y)kZB^,dk×"ìӭY,萚==^k^=#r.!=5+a`x"dޣ{5hzs`BdBdtt!ch}x5 .}P KPBAiA ** ZlA]sTO[=_F=WثQ6L ;wR޳{KէK>cLS}^FOsgf}o&}}+&_A52< daҐ !;B4:0%:ԿCX¦ %·o :|Ԁr7`=pz@- m`@7 |~; 0 [" ܕ4&hVFJޫ8~]g-?".xCT/Ã^ ,H Ԩ=ֳOO qnqχ{;ߧ3_ZJlPGe0ٟg]44&ƢE J jFL!LJ&`X10N¤hD!)A q\;s_{ygϽVLB~Wn\kq=n­q/ o2"dqȃG$$ɋ|!r 4: &)C~Nd pgƭqW+ρ6{Q+Tw˛,S#2C>!F-)v|^m=G6yl6eMs4nsɌ;mMF~|Z*j<:NթwqZo%hZѳCQ.*w$PdZR`^_ү]:`MKmͳo?fho3$| $Zԍnux3~@fOYD&i$R^Ox!gb+?7a<{)lR'ӡȠL(dx4.z|V术 ݕjo]el1!x{]#7 #6H'Fu:ev^rDX'f8#.BzA-O^K9~Uw=cPϲvbKv;dGmd ׍+s*:΅vӯY(m@u0jC#h2 }o,l{avky;]Ir.հ,RUR}DO?|~?fI7f9j~s a3jCԔ2[]Wi;`vGV :XE(ehڈж1'BˏP;:zPƠ!=d8?!\K^1jZJQO h=C?cnv`S}bUw\-e̓BA^nEԳj_H1-&wf|>əNoxAnt}6t <ztL&8'D=5y]9_z2lrBlkT~eIa ˓Y Kei,d,%TrY!+edA6f*vܻYyOPS2T4h Tǁ'TPg,` !$E)(@ZSNիդ:vա:U:N:CJ:]tn֭1_mMI5iɇn "SlJL]xxx?ƿPKyVSZ3ZG)pip/_vendor/distlib/w64-arm.exe xו?|W- ^d"T$ `nIZ4)uf02M`X."n:;e B;c iL'@%@v:C8m!@Fw+Kmt{?w˹{{ϽC&,B+~Ѩ gw҄tsvymϊj<}3kW|ֳj>zOyns|>u[FfU{Rͱ.2C^޽eݳ*wo' &Wl.Vlu-ͷܬ+U~3^>|tE+b΋"MϜ*64;Pox D* s]s,S2yĭ=7]a\őu4|]ހVu@Kx[㧿m6 MĶ[G>b=0z*SlKڈtݦm$q'aPa3ͣ]v%NQcԃ!p%l˨tctҍ[d TQcYУ?=UT&]/qUsy":{ӴN ,b]˟:;#k,ov=jZ}G*; ;}^#brsލ< eTt^Qf ^Ў5 }SDwD{k:J5fydy{{1o0p-K,/2 .XlUVQ[ D*vEԖo+6ZZқ+2@Ӿ*~az4ZR}c57={7*w˔+zh8U|oe\>=U+#}`+wg7w30Dާ>vĩ蚵Ϡܢ,q|~OdqO%@_cׯy&>:Awމtqe(yV1Wel_S~덥ZG禋[MDɷ mw{,^j3h)?oWL)Wt<9*z k0&ǞxH"]7;òw*Z'V J|.! 3xb~9x&^cH˱6oGQߖc]6tmakb[E%'V"^vVXbڕG! {ըlO&/aI"<=҈HL#2Q?tSSlV *&|(:H8LCIaQt0bt5vr19cmĴg0 >4$DRwCg_X5؅TIO5uۏ'iKV,&SV ۛCs{v=gQO59ݓݫM}Ma8W.;-Bsϙ2)/;i'ҋoIKFC{Qt (oYxДRω%䉧V.v"R[:ܲ 9kcOҟY̓$27 qb?V)njE>JZ%dEf.c{nwh-^<jg3nw[??,=eѥ=y6^sۺ/̷ajb(.r =z@ hhv]-l75؀g'@D/lph@[@>(z`4#rPG*-WD^+tMMio^yu^h_ Y <Ϡ^؝oQ\#|nu5]kdvMl:*>oaVj)1Rv]%jf HׇsHeF63W;7%d{ڊw7ib"rKz!K1dx8ܥݖﶎy#eZm6yn ~䛮z3 tEaD-K_ ̧>гq=X싌6O:xrff Y,7+r/hxl"BY5RAn_9֡qoͱ.+D=텽\ߗ,oNMm,`X%B,#!:Oh"Y9cDƲۂ-z~KMOEYuOؒ%R&=cH4= y;Y:>?DpD[>j7*I\!K P %Wc*JJ4k n!| 0m>k,vkb/ӈ,u&_5Mx,R4&Mef%'K7jq<(5đ|0"@zH TudYBo0!Jf ~hm9俾,fSBd\-~\tz4ǵN:~:+D؞z3T 7c"5uSF㻁dUzm阮lC-CkG+5kFq^TH?T1~ <1n9-6kg}6Wqfŷ3Fm*8ނ.ޏ s䙜wW+rJui_wU\HWD !g?u误 M]YQi2#櫛`VV!MNuu-0冦6k 928Wnh r;L>ޓ.q{9'tm#fOC>#-/} ߮2KG:K} dA:I&5gHd:W;a]gţR?beߩbB茉U l]<1VyZV3uQ% nKlcFr3nE-S!DgoڅsS"Kx؊_!h $SBN.ߎ2`avĄ ylYWԥՉ}v򠥧Vؔ,*}.& >D*ȎVZKRb20OdYQʣo:? i']S4L9_aJmEeJY7Gu⮗cq;Ol3=ll#`,Jh˚,:q%?}BlO5Q2[. Ҷk~i kR^4+Bmn;~ ՕU!Ӱۿ)-u1bx.6Wod8釫ywfi􁅢Ż<Ȝ{ndtTfJ{(]5"-T:TWV&vt|2ZL۷u[݅~-nUBk6p_LB~f~/tKP=4w; lbo"4_k:,]q +>10g̴}cQZV4C1@Vh5JLBJ(t=9JE;,أ#mw9/}UٍeiX ..+;~W*8E ("(s, V uMeĥVSh@}Ksܰ,Uߐ{BҰ vsZN,>"ߠL1g7=,wTZRM@y!@slvଖ`ufZښ 4צ DZbv\}{[Ĭb.ZmEFx`/r;4Gy؝!rb5hȶabp9瑾'cv%/Yα_nik=gq!_$ʜ|2xMՉ]ß=IrK;[A9,c#jAGދ>NVcBu:}xY2@ߐcW?J+#.E|̭TnR~8~:u4l Fm9_]&]fŚEOSy= OoNbd~-7}K͎Jsh^t^؂]ۺ3;"69Ϝ3k^IXU8ʫ/ M^KHߛ7<ī[#.КIķ<򿲷ޟZ|_>f?S+z>u ?|HYCøekhf ="a$9&V̿ mNqXSZF}mY~]~Bk_D{DC'j}p/7?ԍS40}ViEL {>[4~Df_vZ蛉}ns,$QNiM1"[ѧViu0 _RiPn=~n-o~Ў_2_UtO @6y7JHgY?_=3?&#|+mH&l7۞?:.]d@Od7Yw̻&ۥO_|^{ԚGv>GlQvϯiquhZv`6;yhl=R7Ue53jiZ;9Q֌-^x}85S!/bJMG O=Csըߋދ_?v,<•9jN&٦#&,kz]əע@FP{6-F O.2O=%2OK : CagY7gڳ.WpGpJQ/T%x N^ewѼ)>n|b9iFdnrکM:֡+]h4jZTUeSOhT#|4=@Y]h׮Tf)2y5z%-GRށ-)SO}#=>#2}גEuԁ]aR)&R6l~EU9#v5t.$48fxc;<ܮY 9ܮקHJ#5ls[f7GI/Lj|sv=}TQ{Β):R(JϞlmQv׃r)E<>UzXۙc̱,'KO[9sN\lD ǿI/v1F#m<9u&,Y$#PGD?6 |+icҦ$nC>1X.=rBl">1muG'}ɮBU^12N% ڥj+ϻ>YlEWNl;IdB}5*dYSG v#Hz]=!<y oJxk.~ȁ#9b}4|.׶G xLu!X1Ӟy\ߛt/O-U(?~Wڔ#$|ߡ\?t 26NxQ&?a郈}PZ35΢]~غ_)O7*k[Llu ^Kj7]{{ʞ+tRMh |2+Yݡf)HApgcф 8yZKmIDzctgLĢweW>3 7A'pC_tfsۉEmܩal/}xWi思F/q:(T>?A95.|@J^([cBӵ!enjV+B|2޸z0 vfQڮzb|?eE(.>2O,+כN:`cCM'{ tr5dCs+\Ro!o!QB?C}qj%~J#DXxq1z&_VWТ)9sN({9K&JSM|'̃>s? mv &ߒ6LQWFUl|i "A:nE8F?HM./Ź'Wa/Ԗ%D%tJk~ q~wWk7Gdp~Ӫ9r 1aغ09_ Ќc#;Jp7䡭,_=pVO{1x{F#4UAe!]13r2d9AYǘͱ?!|FpWjmx^w'*ıʊhrtt| #țygɧuAM_&Գ]ՓSz@Rkvqe.~7m՞Ӹ=m+h/6UqGxG5"=2]:hV̸Qv?_xXz"j.8]S4`g21s:#l]9bFw}ිG!!t0Ơ^1]ګ)"ۈ;Edq㹌ȊJ瘛C5}+e\W򸶗qӞ)iFdSFr-])= M/ odEWh4M69-+mC)[~֑6 [ mYyJӐkZGWcDy}4"`LS #̘v2^kk$XmeIxz7ϺUF8_ϔq_ˋېyʆ|ڻ9ב].wәj,ujDx%ǡA>#\غ?r,lk\;P|hu43'=~ׯVc.;m2i۸6Ş%_ 3ߎ6M ~\Dwwxv&Ys1G"ђ{3d>*ާiz"Djq5Uke%mmah`lΊ*{G1Ӝ-KDhM<ؼOas%Цͩ#Œ[,d\DxY>3ϐG'#oz\0qZVK~4|3ZBZ:S2_. q>ihm2]\ց~υ_8}jg?bϚ/k~P΁оi1Y yenCw򚼲#k;&4%^i3oEgfq}|_kGfX J?OQK?W/idR-? 󖷣;؄x_qonQG̷x? y>~ᾴIw:F J?/m4Brľ\%]{ygp64/nتݸӎVUᇑ5Y퇍[VC%ľ*-/GEz,Pk_O8GǍpMIA] YK:z(u~T}2=Uz?Z=n֭Bu5e9/ߦl#Vle ;Nn^~m;+P~kBVcQxeZo{M֪HF'/ЦOOʶBs+@[a\MU1f iv5K`c7c[?U?gӰ@W>p6Lλ&3PqJN,oٵ <7ykc.Gȸw9w{3yKG WKI2GÈH%׈s﶑tXռ|#МtR ahӵ2H,{ͧ5QdfGM |2j}~O)l,橤z~' Sz/Oͽ ~Pa;ډ\?8oHKgD7=#phyI]XX4[Ew]űîD(yh7ف֣m)w3O3<3C٣tFwRyZBycܤ\+<9?"+?(F۪smK1?Kނ%ѧ*Ж P~u\x-h,a^SyD9Ź,Əϐq{SSki?Wa[8xAWgg\r|[ƴr,Äm_MI3͡g/ּdόCC2Qᡊ1x<4!]x1CcPN,3CF$G*i_}oVxzrs𦩐/P[oW}:u|'{q(u3=e/Xz3mFBb7F?O9/g 261T -}}.wrPJ8<2&wlpZ2-L';`syC%o&/7[8m]4LZ4/AƯ k66ik);sakykZGk2NЧn1 Ve*xzho1ixLbS@_A""&~M}q471&ƥ/{uEbׇ,v?cs='ŵ7r3#t{;D溪:lqD=+VU#9s';84W@rkywd ߼x,|v(38-= ߒ크cnS˘wj3WN~:v0bb-K{["[UKJTѽr֥ZY ˅~eצut=9Rt.fVfp6*j³Kp paT=KXR 1rsiVBKߋg0͛oEj]ϴ.k?Ƿodž1y_l9#iIDZ)Af}ㆍj='uum*T{_Jy\*Oepd&\C㬗8 9h%-/3h4nAu_ey8>%iDz4Ih\5?W8/?%+_,iW?yc9 TP"Di MdIW*?|\~@蚂ZZ|?JGN:*D#-.#pgX N= Cwׇ1q(?U? juܣL--ΗJ%gp -o_"cwwqϺJqjZ_}u•Jl.׹cgynC^eK$qO1mEOic{^QfglliE?6o-=qKK%Vq:)a߭}U7y4/'TTG*/ y &=,<NR/mq`S߹_8_`2rݰҧ'ݍn9έM\@| |ם;Ef~ oG߈5)gǷ3c_r#|x<⌭ ϡ'l;~bjݦT󢓺莹Ci;EGѱ/;괦ɻ!G*z&i2jGr8%J8fk@ڷ|CԮ 8qr3d?U3RJGfSV9 Z-T\^Y<v͹G'xm+[d[s-t1 hMZU}Z@ 31 <6QbX?f~X>4f@y\:;m7B?*s.K|:5g˹ .GLA*θLغ[mʜغ[srJ;4׫; ><~^EF8OioF|ڸ\]o K^?L w΢y$kZ3/-/Lkﰍ⣼zʥtպLMYYB˵ȘݚkM1`x:ї.lFd?bnfdlBuܷ$xx)"颡ͬ\L9(:8M_}9=o~C-ռڵE=c%KȆdK\_Rvqܶ ZOe}GSKI/%x}\ّV>l5&؁2-_wq{uN|Q[5<à#-]O /!y«M'YhR^xU&ݢ(g<2 24ty4zOY,=civ\ڬb"4'mzӽr4p!g|4 ` ˮq_>(Il0Hs;brfʸNūirlwְ}3vN@wSz0[Opxᾆj| e,}1ۗvpB:q\ D%lo1 uXx8L鎢딯9>|^{c]νVrh{&8wMtqgg/ %'PH?{mH%)jn?+Oؕ ?uT ͛Egq=U1 7hzQ*2&?o}s`#=kO[h~;`ٜ2J%$ΐ1ܗvHjy'?uP=aTz)k\Mۊr-=e Ge3%fzɘFK9rv>rXClM_^e d=_}"׺Gvi#P;h{H} Y>)|?G>S%N[/6 k-Efyü63fLj_¾Ok\ĺ/܏6miOﹷPiW9?PGQD_r,f*μѾC OOU7QxݥfsǨ{x=n o|8r-@jM:q)8VAhEyŶPkh%g]R{—w]Pm~+CRm9u!Cc,;bqc}OܣxOkl-;~~xXy}l jr_/:\X|]n1xG-1ؑox|&"%GI=F$Wr/ (G$X3ԘxGw.r׌Qb}SwsnYoxoDƪ6g3u~sUIN1zz*%E6@ugnq} !ao6 _-s5@j#ߛ\3Ӭb <^^s}Sɋ^w1-4NٶEҟ8CP cIy~G6{}0"i)uYQhC[qT 7=eK\DYբaFYaC)7[ٙ/h;exEym7w-+unEMNkul{-g׉ЙB)Ajd/1%[> ey3IqOcD iZrxFGFWdڻ'>_%Rb{,{9ϵn%+}KmDiGngBr8>r#@! dZmR,WӇa0gX#1xľ 3/smySusl^7U~mθ?t:IjYO:7c~ă65ϓbPEUj:sY2ݷ >e/*  3NjGB=f=8XeЯvJ@kfTGѢTLc4xx^'9C墢Y:iWjugz]s*oiUDS,Gys@M![j/~-X8fڟ\ƳLjמWGy+/A1c݊v9!C s[_ܹm;;-Bso;3 ߏt>Lt,ˁ2v&Uil*Mi4,#;ci"b9cA+5/pZFNZzMzփ_ sEq)ghT2nqqԙrR)Os#:v[)_?jzs|QhÉI!MXCs~OӧΉ?o Y5#MpyrQNb{8_e̶/>8I&[n뾫}~Fۿ'G[v%>ڧosfX׮"yKFJ :#{41b_u9|NsLi}9oZp=#SwjSAmx_O֧.)qYGy>y\z02UJ,=e|i_}z[)=dHC@49Wr`AysR4|~b V{}PCbmzoIJ[&ǮC,[YxPg :5;qY#-l;=~,Gi#W $@uc~3xpɞvqZqkykt\O5:%깯:O|1_+A\&K7& lKl{߲6q>[u+ƥFPS]R̖=>Qe%g%#B>,f'e_([%$m&7ƜqL6[Wk!MF8F{` Ϲչћ&dL̝al3Bw; =ք~'lr#rU˟˟1dl:1Dz|Ȼ ,u4ފrisa6HۯL=qVSGG9 P\q=z A8znt1J=1+q\r>~4z|%1.c eat{E$Wҹ5"38X=(8>|t'Ngl1pS&ϳT{[2:+~rwoSࢢ]3P6lC\- Ex1bJ1˺Z֚%3Km? h?sM؀̗jDV#}=|0]=.{z?t^U1xԺ6|ɫ<7}MiΘ1<E(lwq_P/tY"MUs0cOj<۰F8wx9ѳ1vϘmc@5er;sf-/Vs6ҏeJ&2]ѷPV^emt9%8ti[N+q W,zϓU[ο3-Yԯxx}'w ,m'LuLO8O4s*DHO<~]~y57wwAyެ*l <|Pk ;x'қR8}E=-3}^ ο~BSE,Q_Pzk^/ח/>ޣ}',,cҐ ? g.B s8L\SzA?jwD:_yy5з=C-<hb1`I_½Ԧx:}⒳C^> Ux~^}K\8XvijWP[5P|e=9{v{"bil׽e31~HJ Cq?gKlҮm@]f!eLV{ݗlݗGPdzK>kTqW>}w%l}cb^ucIlY h8Ng~] }|ggWV{mCޖg0-?+4'쟹 혬;y祬m(Rg{6{xVv/TeC:o-}.W[>TBU)d>{_p0E7/]䶋g9ۯg8~ǁn_hҮ.'}د_Csu|z*Lڼυ#+P5ڀo(`[">r ϭ;CwQŕg<'suZ d WoTqu(g$9G"r6|Q㪾9WqTn7MH4I,$^Qhg^H: 2j{oC*osf3gXw&O[~:jZ]2Ne]X֎א8> ש乔[xcڮb ٝrs߫_Τl9 ^rۜ>(%<,U!zG9F=kosq\O/8 g)\g v3h<8b'qD}? ^Bm)NgL'=j֛! B?9a.ͨk!SZ!gˌ[mL׋tj Dsx_;b:8:ZuW֮iccܶCp@˧*r_YFe9w܇ˏgFk( j֩8(?~qQ^~2@aqkcL$-S99ۄKS$D=MFiZGmhx&ɩVL洢isPr"h.hxc4:<̅缿~|>|ff?ٗ^{Y%=4*3VϜq1P+Co?!nsncdٶoK5)܆kA žh۩$jzY2Y&O32yL~$[n½uL}d:|(\(*=n`K)C93oT*D-j_`[Gh߳h[665f_ݔ$D9ѭV**abf3oARL@H~EYɭV/.c&td {m[cƁs6>i:7@vܠ[Szeϼ䗑Oz}MzP*.? o-_KYgeN5q= Blk^4չM-og& 9n|'A+KSŽzf$τ -OT1(ę=QU-zXN/Tb?Nzn˵2g7AW~s.%yLA`,tT,ƝۿM 77h[+-kc 7#rBէc_T4!C{+Nwif/-ogaK W=lޞ{J{,f|/!4Y>Z'KY+Ȇr3g:~|lC/h[@v:]43/ O?ƇZzx5?q<*uLB:Ӝj2x41Ls!3&sBS;C} _[2%C,Xo$NHȬ:1-$Rվ79fG,V(W DOSf}s+GEjgUda_:hy`fFȜuAu)b{s+_s껑ֳչoIꚖT8E7=%qX[ULbVeLe#eywTv l%3Z$+vB.N}3/й:mNH'3Zm̻6ܺTZ'-4}0(O4___'g!Y[IifG]Azdvd*$=1fPa_$@?Uc35qm-H~#מǿU1Q_-0gc?ZY>=Z +qZO/Ps|Sf^9p9sKb%ӒœKX$jxs֟hvGcީ= 6y9~?*h~|Xe}cc3?}Ml-Ɍ\6rLZtN 9h5i; Ks2qOZ-laF̠wh]'*:j #1ɮ|::'m;q:8QO>`L}БQZ9S-|9?|qDz1ZFVnFQOeV` ~eT.aLPqFl.?s8yR="3Vs/_Oa>Y X^,364[Ug"&sqoqyQ:|"N $|l7lWt5do~WVR{ޙsT@'>=U{'s(ޟ赜ڰc|q^=s|L)tϟZGT 6o1i#PWj]ُ5MB?T;|M'xޯ=r'kx9OžSiKd8qH!|*!|<ԟ? ڸ8⟢s?[~%kƻ]OHO;)TO!|n_}no9?F/չ<+O*k2zp4gGdqmMvFHFu"&)Fw Nci$|HV'Pk_1ky"~εR-3H? !Ƿ#9wr߮z>uN//GS̾r{zy,!orp.])Ew3o<$?joR9Y4,ߵA_]M߹Oo쬸u\(f,_ gzZÚȊ2(_H54mDkb0$X~'8tz9nؐv%[7b_x]F>؟Ny}lV^$0|( .o vgP5aKwǤ)zwx["p:saH_jz_*<ݨ_ ɨS''=BgO_1>WC˾g]k>%~QiPt٥U8|4W_a9aƩTӁqN8-WErq 7FA~|ܯ|<7sʼ_*%(|OU<͗P?@~ *}N>N䏍Hsm\ںv8xȺ;3mh릴*~o,\y3Q8x"/_ K2+d'`^%YdVzImj}$}$Kҙly}N;wybOj[31'0ў_RY[cD|V;ۜff]S{ejiqob,7^62m]J0|[ji5,~eyjOR~3ۛyfF9ÎϱʈW3u ÛQCFR_ΪȟIbf(LsנHJ2/h"[;|̌>q[/]>} ZM8t>bN֗hs4Ϝ5ErßY/xH[T@+Xeù'uODuJ5հ1b)m2[ W{+WEYUl^bL6V)"!#oEwbL/E+:R"DQ=̷'"hu+cp>,;?C~9~K5i7_hB|qemlRR5~Yy)ģgh3A_u\Oj"|J;\/(c>C擹11D 13?f|[%}:-.ZN;Klmz1Oy8ף(mr߶ٍ|LeYlo?<@oh{~uĿ.p,Hkq VvaۜhhRU>`1c:Q]4]{,֒ga'=:즯m뉃P(IulyV_iu ;L~9/׎Iv?џWp,{MFBLx~ѹ貍qj~1x"Nd:]R%쐃ʀ<3Vۿ?"/ F}gzNy=2)-1_zy"),~[!g%R>zF2c:Gaf"cְ2̱oRfHۡðtP$HVv ?2ʲA]^.f:JDmiB4x[o cO~jR#=#]֥h^ 5>S=$|_ 9zRyXb]9fʻwT;?j;1.̻ݓB|:6(/o{ߴJ~opGtkS50kH! R[?mŸݥƱ:;k଻#c]"᫾2'66Ϋ?!>PWZTauuiw>{{]EϮqj~֔TOgzg@}a͌KlY%zJ/[Ԣ`}/Nʷei^=C~UEw?kxS=/0RiƖ*:kOtf'mm4n/݋6%޼~tTiaգ]%-atQ^Y}wk:pr*]<~>GY>~b/ l!o޲xOz>.͎f: PyAӿoeVkV}~}K\QWl-NdP[W.eeu_~x1hQ1s܁A1|N _S9vp?7DDM1)nwMYPzh|#NKZmNs373ƴ<oMH 0-pW?=a~ "^[miCJu@$N:#b0¦z|@߹ xکXYJѴ:zNdp>f`d@56/z5% w"+`?VOCn}MLJWZ5c'MrvQ>sTa~N1k㸍mP' Az_y:Gzj8b/ħ [Ǽ8k:P?Bc~M$C, kN;OJj^qDmKuC÷]F&cD,=]vQs!9ρŋϊ8Ok!cQBk,Rub,1੣#~x?gLhLcr8crh+xĘ(c3}ÌEOsAO4+?4SuVW_])RPRܭG|p]rqc:Տ \@{:{xsMʒtxG̮69ɏJyϯ]ߜ,::V|Hg=޿uL]Ý=1sR\,흐HgI$;8DIg1\[}=Qz63RKglԸ2w9w40g6Rĺ-4 VZz`>vE1<^n~w4NtOA fk3X 1IxVI|#z93^t;J==~oCjPYTGEL4;kvMbr?p?pcڳGYz0Pa78X[v}Y@^ĝL@mPTGnjGgjn_]t;l}uvĮ'EY%r7-"mDubu$&7.L·_U=K<4zu=q>߾&TXJznɲ.F4/qǾ_G,2*H~{nl}EU>RY%>W6\FVy@m*-5ae_1cIvֆad !KQ4׷pImʞRzANrh 'f:9[*s^qT#^*O&='˻h?irNP9cھi mkc|U mGiI#X8XZ4ۚqV C9`ϼTlb]!V';eŽ/lۖ8_g;\_QᴽW>2`R3J/c NOm9PpsGo:i"۩/߈n3RZ,90MY9@rO+\ 33|W=>K8Y\y#ǭqpDc& uUH`bBXVl^`̢"6KEeyRgVJx仁Cqܮ91ZK_rh-ćΚ/p>ciܞ;r}6Raj31~>dj& >l^}ϫĿ<95_t{eYsbk qU{V۰FL>?m2 ㈾9x; Ę/iY$c3` f5 }/hSm} δ䧻/`3y zfId5׭ 3'9XnWs& $; F.ĉ*^qwoczW߻M3oUw_nԓ}ÌB HX a=Pu='o4Yq-k_Mcw/aq߆p$bhue|ROsʚ|<*{wN1Ē6$,PST}]޶զCc{ $KbT@U]L}v`0;}N+xWVgo4|_ɧW9Ґ1U+R4ǜ m| =pIQmO%sňMg2;ӺċfH<}xz{[ C¿Wb 1zU(?tvM_;u㎅4 b.kUDrȢ]ОAi=;7Lw3t3~u#wGdIwEݵC!# L.rj [il.{IsΦg?=Wj~FII#c3v~{}< a/AI ӈ^"yʴ 1]_rNru i/Tnae Z֢xD)0lULhK*qY n`>}0a5%[2]L$Vq7ln ͜(ȗDo+sqpyR$ǧ2CǤ2 ν+k'~ þ"[݄snncO^{ 8;{i/C x7ή>n6@?Rʃ h\{"gy?e%vo~)K: ~MvAkAuk%b=wɝйn ѫA'ŜX!0JxQ&Ehڧ|66)跭׭k\>8eDS~o<% UGw3Z&&kcN;ф6bW"vQ^-IזGh=;&vPg}*}茜~%0Y5}/NrRoJx=~C:qǾKW5m;3 Mx { φ<!8w)Z9m]d:=9'yΚzeMrY߈8Y9pF~vO踹ϿF{؆![}:b䕯dL{e&ϙ&dr^~{|v ʴI!`܀LM;y>1 ̽#!uUeΐ{)b~lg,0*nN%TvǏYrS◒{hyu5Z, KT^.IJajsl7>Ĭa؁mD =AG ֓}8/gIK7M*l ll^ˏsY.0ԩd*g ?bOT"NN?J p`x8")dpwE?N;ۈ=cDciO (ܼJt). ̍O s.ձƐ1/ҽ!k),7S6dwSy?G}|{4њ dg8r8_8MUw@>+?Md3<JR7H'Mh' &p=jLmMVAc Etz1F˻osm\ ŋNxs˖N`wst@=6b wC]uCZsm@9dq& ,b9TR|[dKZ~Ŭ> ucdJk|;&=}R8Yxq{,?(-vҒ(-ɟ4+Yi_CJO!-2iV]KiKiHnMJ?- is(m?MBv?.PG K@/ oj2(-ʟv iFJ3(HIi3ia3ZO.Nj Wnunqu.#:8r!mp̓esD ̡T.E?Kkg:f,p@Ow(9c+.Nuk6sءd"w.b_oԞat[{#Ĩ!8(*ރTg+y|gc?M4 ]bh&r;N}o]{E 3 ʳ h6(^ĪcuUV*}[R|-)n˟ z)oh|ݥXg[bZC`r=xWwxxY|sK<ύw&cdc"ˉ;>rp{=}:<0fphjz8>p,?"lW ^o.۶/aaSSSWlGXe la*(ts%q@О`%Xe&>_ Y Y Y Y kbWX ['4TiLpPp&J%`gŽ\9$09]xlxLg{^Zc}yH-I.7* tЕs!#ZO/Ʌ~ IO)#D`O~.V%Jp0mf`qe)CLw6ˀvq90]jyveYQʀ1S|Xf %E,A]:nH+ v@%(ܵ|yGJIg~ˡvKcY $CvͰ4Z[]W ]DZRx9 Aþ2;/Wd{-*p^ XM4ϟ0(v@y H-w_x4F&tpcc&OP>s+oprD՗<"l#-T?5EOYg(-5;Qdj]g躴:F;^`>kv1HVƜ(Sٺr]Enx)ؖI-[טd>V>*.!IU{q@QVIja~h>_,Yx?W9tÌk3R9o[;|Oܧ,AYz/J=Bۧgƫo~ˈL'zsUsMYc ՝nyeC%xnmQj[  SǠ5^OW+ud}ˣW߯/X_aC1U_:~]"o/梎 Z{uMu^+ #wDйuw'w?bÈgU1Vy bsRf/;55K0R@ /1ELwo?pNђpjP1ᾥi{I-#Ub7 w]6܍1͍1%]Bn\7u, V7C5Z;Gi}0pg~yNkО}$>/leCtF\yw~/bR*2pƷ 5\w)%ae,IȞڽE}]cԇ6_ t4Dzk*+ `1u x4Ikb:@"<],݌<Ϟ-AcDQ^W.+}v)4U =^sy./tt4^̸2Ln̿ӳ@|fnC8oCXc}sy\3Ijk0o?T*{vezсk>,XV q?Zo`{M#LmHNy_+w38{׎zF&TY\e{H~/CGw`&zS F 5]$=#YAYnQL9#zց~z_h(O;luH,wOC|ao^8XC=;9M}I_żoY-j|h>G+Vpm0M 葙Q_3Fuh#^4ﻴاtf wc}u6 ;߽óbh:?k B~Bف՜~<& QxA`=;sWXX U]_$p[oAJ*Tc UʉƂxf\`eB[mR{eTȿY%Fa[7"c8U|28qiZ+'ߍRFVXIXJ[lG #Nc}#IJa p4 @"I72h X/)?XY&+ A cbX |hmҤjo33IDr@:܉>~ho_m+;|ɾZ~Q\Q cr r[N D{Nm9 tuvヲeކcz}ef1S?cIP٩Wpwu%aKq9=)Ѕo7풉nwE\zgRr[i~s_=z[2QΘ{i"߿ j."8 $} !x >2d ,R oK4@m>+/Rܻ\jw5"^"^^YYe]$1܎|#Ps.cHL.&:[,/}6arvQ4KiU ?9)-]2 g$ERr9_eR ]&}='U5ꭌSEę]2*m)AJ ,ͬg;Y;Ny8|psNyq+x*H)ࡈ}>T-=8"/WWg[``n2ۡ;DXZC'o@&L~_f}GW=|\4gK>iE=15$iJ 丛**/CAZ8hڥ |M[!mosc~Kq3o=dzMgynXgbX*q,yޞ_YM:>2ݖpي;x@f$jƜ%9U{?%yT;`cn#pDZymөʭ|A`Sܼ}Qjy=:GW~l5~)rH|B(,O3`]3<}'9~/vP۱Gf3і%,?p9-bNyLK,Eٓ} ,lzw K#SuZKiom~ u?^o]~w)ۙ_Lignlyka;ph^VH,ߦ3TAY&6('t^hJ?m[5.OŦHm>JA!p{%`nksTsw1^㶉 KK{zX`\51uӞ}xq/7I3_|;v\=3$64, m~%1|/^; /mY7D@>0n`?{K{pr_F|3]߭L홤ڱj/حxydZy빑y+(qY8oIӚMSr\rz]dDصR]FRcnFFOckɓ$kyd bgc#Y~zmp,엨f4dLh{;2~l{I/&ԓJjb$sQ"6=vINW7̻b[5ZdgFA>_eNG +Jdy/|9 Za:;K&(%U;dUÿ肺OlLNsBvlG0/aǁ5Μd8,}Er|beRZ4 n:j˅|ujitDY|¶ e&<9Ot6>xV'Ubgg]1`~U{ e5\ytERɉbP+ƪe'Ӷ{aO5kz($W<Ɯ*r,f68D)sU%§%kh &O4Ρs%q,]MEw> 4{PS Ũ(Z)I@t=@VjA+Wf۞ %YAdb5l?A~z}iwһ3h-SqSg~\F{'{_gA]ӣN=N%z5Knp'J>D5'j1{ƛ]}:sg&l`Yzgڣ];n!ZXU'E3RZ>w\slHVSD4J~ guI쿢I/-z?Tg]?dĄ^r;pôT=Zjr%=cDHw'^$YvNN#C'ə.¯M_26HN{1MjBFymQ WUQ'wf C<`CvIO([?t><{buGFjG4w9ކ¯40=J I̋{!pD@zWáW5gs#"~iecTִ'ZqWXqw=,:zڇ |quU nqzDubsϮyI8\^V`.uA1le?|<و;es#uٷCwXGTZõ_}w#cms#8W򅯬=4n j,@hij1'{ni?ALCOZY/K!؁["> n[xLw\ٛ`jF)%'tFW%O2-/GC|+$ {L>JؓQOJMǮ'j^i^KDg_g_Q^wwHzEN:K8P%$88"^ hڧPL|Dp>GQݕ6 q c)W :[PЙ5+)~_Ʈh=K5QEg\*cEqgiNf;&_ڙIiFa<##z*jxG <=(\s'l}}FgL$[8D}1E{U֐.wBb9xqE7 [X]BߍZ8Q^S`r}TnfZ M/ŵ)OlCl#ރmXŕ^}?Ÿ">-UoSHbeJV)zPcr&]D7P>>Jq=9-F5ʪvĚ(%wM;<5oX(nC #h#b짶͏t,ETGt8qekڑ旨 Gc釛.Ыm0mb)zg:F^kS~G]Q:]-}o4Lӵ|F=um QUq-'m] R[й(H험3Oǣ;hM4o, M4r9t K2*l'ij*qv|&sڷJuJeV^Z ߺqXg.l3_s%~xlgIk-ϊ%J gې+YUHE ; þcƪ6t66Ӝ̗05,v&\8 YO<}{J=:j%e#lSŤiwd.e)X~T6~< x|$uAK(7f;=ۑ^/S] ) u묭[GzN 3wkĚ%DYSpH/o)nv{6E7lO$g}U{ٷP$B88q:]Yz w]LudIswʨ}{>A灏tEIb#Eӭnd2)4x}1g?.}KX;*(20] x#a]~g( D;x]nfZ{CѮ e#2n T==A Q,Ҳeit: tzQ ,]zK5K2]EK]V؃REߗL^3sof}E_>Cg~7?}Mգ>;⟷b>a~GiѤh*^/pd8kҞw3Ckl.mZ7W+uO] ZH.mxފ#Β2 FˍJ8%ͅս9Zw< 'hKCb4i`hrI:,Y=NraXzIWŴ ]M:)z>?s7ꟍ8V|ZCHKSV'꠱XM`G>sқAsDDss"̏_fh\Cۿ:γ>Eދygj{5CT?7}T&+Y1o~Ͳ{ rd}4&9p޻=*&dœ8<|?e%:r=FL8k {w~J~{>`>YXCፍoDI4К3!z^疮nE=}1|A]tߣ{P|Jr+rnQ)z밯 k][Ɛʻ>d aA^:Cco鋽rGӹ֍aŔR{wM/Dux~ל$.46Flߓ+,?5HF@'-8x#&MrbKibڠ|IX\T֒B'Sf_lk/_/}yw( gO্6N)jnަ /o/I\4~|1x}_xx~Vi8+F+}y^$x+x~^D9+B"IIQb=B?3W(W$SWLo>xō+&T^q+z!]I]ЪyAT~x6~T^z'ޑ0~zih`@v" ]ɟr#|^SqOh:'ʞ0K!s)泈uxv6/;J[/e4ﳢ]*lێeFDAq!m {&x)Fc!l{']ĝn$sw8Bac(M<&塂B Y79T~C[h|F4{Roٽl|FCa8|xׄJ%C:fl.>JkVߊU/Cu_+-9gTi(⋮aFJ bGY2s_ytJ>g[9"oNK[Yo5ͷ@/oߌsZeA 6۷{j}3nr}BAQ-_і2Qjy<+TЇpor[$\?:|`nň{]+ Nt%(' "~p+E{>WQ:b-N)_h(+V̆Z[= iu¡xUY>9{[3y'pxK"5(,bC% >="''`lNԌyveqa'zQyܪ`L Q2/+9"G={#[gw钹`Tl-/臶UvhOmFYήwP&bBS×-vgCCv2ӏ^xWp"~{  $v,tm㎞'|a!^Omr >4H|ƺ"N:**h\ڈGrҙH:Ά/v.vOjZb[Y uY.~Qm?9'CVsE-S?4cw2m2Uz^%idj6b{/`/;;¯m & ⃈v 8$;D]/Kn.} 96Z2N=WDj[L/sQګcmK Fo'o*q&T}Ar4}ڰ">zlwp\Jv<]G?"u/Ӏ)uPyC0vE>#hG?Ksn_ܟM8|20F&ê"6 ]%ߧ?TT0UI=LgQ̋^:_|lU_hdأgۜ`!V=;E ӜiB?=DwK2ؾ"y [*iX%xMś|4=$emqFuF\Y=nK|8k%ʾxR MiAF{ocE}yYgK`-}AuΡ4nYwrڃBoG!Φkz:,x Km%m(AyS_uQg`uUT;)|nGD!}S U' -|YAo×כ/wyA|/Ϣ=2y:t#viW}9Ը- Mm#qm͟0yr$TV;MfI>V*ao7Uz9& ncLDG3a~@Ic-XњBJ-nފm;I]ڼCjMq @`kihv$jL[[&qC3In½td<^x%?VZ |djn`5[/|H=c衁g[;z`F0gW%WLLv3 H^6)sբŒ4IhVb>VAnƾ$mA<, X[StZ$fnI=odom˅x}:^2&d`Rhºs,sCoߏ2zU_W`b8}_"38=>xEC졁g*n:gm83tqT"f5"~02N-O>#8񐬊ߢ|͌g3m>8(>1ˏcpTOWqvF7Q.εYfb_[PSQS}ZJ[/*(S\gW|tؽq;@0%~b&vN!}DLq訍7nJ]:_:oyrJ}ٔ'OM5LS,uK%k\a%USjvz(ɃГh`S\TOKnSnutޙzvIΌȔݏb?"Msu=Y;vMrxN&W^y'V}& ) ~7;-7/T mwg ?o]6e9}fS.̹˖H~B)Mgh_1źn۽4]ݧ9akWvE r~V9x DO`ϯ+!/Oo}pw]z7O n9d)k\-6L 3ĥ ;8EcSZRr€nzQaz%HiOs{/ؼΧFW)5>h{gG3m9(M6u5#ީ4~X{| &QQ*.Wf ². ڍˊ/%/EeBD+%Ĵ²RϜ=<=|r朙3g%#im$ڣ{Ƕjw?;EvWvBY.ck=|7D+ңmkҽ'ֶږڞ1 t')$R5Fφ4ePgWM6t$/[MZl' )S¶8-Iɉ&$-?+<%ͣ=m,o=!!@:[A:IW3qK7Z.&&{Ng^MF 6diVt-7Ӵ-n`~I4v;]r:?.ӵtͺ:Rh>By]@;Mu_Mƽj^ F^6N:Ɨlv:{us7onv99wNo:?ؘ}>詃4pf~q3[۞w'#Ԋ!{^Kؓ|tԁ ljwzdohORyT%G;gI[6]mSCYs<^Ks$?UaL44 ³uΆvrlz]dJ&tAkCN:uR73Օ@BGj(~NMK^pz$~Ɖ$ȹ/skIĻ\Nh?Eh`X 6Σ4[гromw+^v?vFyݼRP/[ RCc2q4GmK{/D; 5j$;R k;S;6p/em=SFHJ&vp/QN<ܺÛq4_IJ]Kr3P֣ JiğJLFݠA.Qxfk̄: !#;/"+a ȿKɥH+}6v{844nTu%;/OnqkY}w}/uޤv'=g1ޤ@io^E8?W½UUwoQ[~4݃z@AcJtp>Cy^k=Vd>(?vXWAZwO{/sMwGw?^va\G:r3rvZB+vZ}^Mvםrts}/s}0H}yeh3|z?isi?8_^A*tT;,Jق%Y b=Ȱ@ǤֲmkŔwc6ܕU27@9xy]F6#&q!NH>}l?,'Is3ċܔxu<^fu?9?9gQ{ҽ zgTZZtz@4#]9[ݬ[1fn,tIEؾ̿w NP1]z/JǨq}],ڏ*T#ڛo÷.Z'Ws9%p=jt>zϑQ݇w Η9?[?L Y{\r  Ys5=%[`,7{ӈkSuUbw]VU轁PFibͧ6.zDތ>~ϴgb!<[fpde4ސ+j !\R M7aMfc@f[qx2NOp)HxA7Ivˇ>3!C曦- ,y/m '}6@&z>9ϡK$-ٽē&;1^Lie~ϡ@ T( _B\s Б_5OFiBB'9 tmڇë隼 HxmRx4V&T\xiA1T Jye^/wp"%v5`*!Wft/l| Z iy$}y2e,}t--g)#,S%W {JW՘+n-7A1.&+;,i ;;^OsgJzT& H oAuҵh4^'Խx?m.Q<{_2VF0и5rrO/Hro ^y"|=rŕnqMDվQݑ'+ af! 9 ypWȋQK|Q28K6) U+oW+] yB~@!V# ^*SzoP+ {5*5&d+fk Z_BG!oy7Ȼ#Tk&o罐kw# /Fy_5[ {jow~o׼难7]7]흆7]Sk+B[-Wy Sr_ʐD^<y c+\mD*\OeiS/U诬p_5iD޹M?)۷?PO6,La>\@Βu[sen1XY:ՙgX ץd Y!ĕj9ЬX͆ p/0r F}&BJ31tk2zaa0>MHp> oқu^;8ןP)$~e 2;. ؟Gs!  3p hP~/!8eYu~y N؏YL,LrAXuVC&@gd4jc9I$k2MESi՘SZt,I4eJkʵ•Y1^c Z,Z+F>SxGZΨgQ-gQXEoZ*UpM?|& ]樹1'+ toi@_sTXcWunw~ޗ|ѕ7*҉'opugGڑ"-s?VԶhs57Z::bXQ/öxRt<y$d 3 '#NG30\t#Djô.F\1}00x!C 1 cL}Vva!1iBIL6=eLn#?p%ǟ9z@|*ws[?DOR)8˘oWOȷErXgX) yBC ,D:#🸥@ '8%EwTn0f2x6!#nE@܎X b b-b5Dr9}#!vC F D81Q8qB&b.цXXX |Gr1{ "!jCɈi%eUՈ5u ML//b 1WiM6rJz+M"j,gdFo$S d>L) 1fRYP9Cz? %{NYP/ @OY<}:IԙI XD!\^M&MdB$#Q a t"~H<z AWN>/]ot| gg>=1qpf"M @M"EO1^R@44KA}!LƳ#35_BBD#(G,C$G 13:(=>/ &7xrj1-]+HK.žWg /Yma? Pv: 2W.HXo>Z-.kC~Y6uPQf>/ VoC[kk9J]xb\)Y@'CVLοCzVV 7X!%K3yrdMk 3Ujj6|caMVL99L亸ӘijG]M~`ve3ޱWEE\zϥnr&%IEg&Sr~!R S'spRÏ֘5ױo;4k|_掛=x*FF0_W H?%E\ݩo " {ֻۿ슴U|q\;mZִ7֍k1֥yoըjyy˜^Pꙡ C_dc_FzaFU׻_*in_ fO3^{Rw7u1vlqx?['; |Ϫ]9)9nzg=xɗ;h9'wmmgZt6{4zEm0}[?Os@W^m`_m71vg.DOz6p*kgȃF_}wZ0>p~Ǻx nd׼VWk\k,<|= nUی?ڠesOz*ʰH2^}uZM+9K8?Sk1щ9>}s϶/j?/~oaUՉ9_m3oѳsec3im6;l$kGͱO-Z~kz'[ڮT ߍr=~bfh-^'R|^nSuSWC}(e .N;Qhz[/^YGOmٰ&eش ҩˁ_~z?N&=Y3uwݶEДûdfO6WN|5Vް{V~:I#=-ίG2tWm!.ͫjS,Ŀ4-޷ޔ~}`==w;_dq/y城7WqV_omy ߋ`87\%oؚW^ˮzueK[ OGV ||?O.W6.Pzԧ}7 YR9:CU%u3p EIn9K__TůF]_>e7mʷczvX8|Fžwx˩7k6̣C~lueC9t>4֢݃s֯|U ٭uxbe徸G^ֿRg#gXgZz_nc&\`%~smW"9h7k\{TȮk*3{ԡmNm/Y;ȯ&%6|=`@^gn>0zkxWWw3||-5}/]!d@B{֏}+S"VncKt~󽍃i-1ŗ8{V'l{u5Wd1&~lE+~q;ܤ{zD_=Lj΅:y~=qS['Wv~w̼K/J6l_jΰ*R޺o4ڻxۇ|pdDzJ㻅?4nO}ðJ]N㪏Vi7˽ ۮa䂏x{lܯ^m^7-y`ÑfFݾ [[[ H4h+oF~5'^jqˑoB?񔧡qU[Wwevkki5iSWD7ߊt3[|lv~ 8×wf׫Ug.۴Sᾬ=ݰ{.Ⱦ9ˬyvA"tG(KۯZW}w&#h{U|iҽ- 6]Q',v5?x>1s>_ƃC/y0"zyћe 3.偑_uh0hs-|bQ7{6aS(dLkFu+Sߘ+#_M?nM<^jhu}/l}FOwЍkd.vZuͲ_=Rֽ3>;~㷨S*C.όo mZOic}4AF{cy~Y< A^DroE$DjGT-zgR7Fܼc$Ac >ģqO hh&iớhsx#m!<$u;?I!XRw:ΐ:$/bۯLS'eW/Un}T-~65X ֡#l*AjbY rvXS\i@.jD.*5!H筐2|yr$ȟi@ yr75ݑ`@^{/"B._Z"נyVȵᑷF y!"!o'8o/2 !,쇼^Ȼ {]A ya>5>}GKyo}DGOyA"#(< E|8P#"<s"/D~b#/E> y90"FE^<yHMȣDyy(o1yQ}\<y9cK8JA<'B^ȋ{#/EyG!A^'҃F1`k E\yrZ]'#< <rw6??2? ?*???~ꫨrȻ E> y2r iȽ~6yЇ\p^)!׊Dx`6տ`x~G!D.᛺ȽNJS` ?N ˅p̿VG IȑEh?roB 9Xq@"x,_̿8,F r:Og+Gř Dy&48g G1 r9蟯 u Q/пͨ/EЊ+(@21z/ȳ009Axz0:΀,(X阏\blNJ܊韃'C܈r_>kRtr!< {2zhyEC2Rף̸WxW(YNT^zr|,>a_=_.KO| Xyk|f?P>i3Ϣ_(p7y,݉rlxBf_;8mW|K89_|B\n9,qrX>|Z3'v;^sXV/`vz,^GIgv˄< ۇcQ\7pB_ ( qPDzr]ʑ# ?5[+T#as2hizQyd;0$Rn/|=#}z,?˅pȍLs`eQOx۵sn&Oy=\o E+nhu .;n'G9r;EȧHW2戧+An7<]tt%8/O8R^9XtQb<(;CK}q}27+bD|vO,ByEn('Jο^rz]?A׹x'naׁhY/ɢf3ٵF:<'PSqS꿅I.6\x'?Rs*G>Y!(Y}Xz`a$Nu,mWS|( ~sy'Pqy-R_䧑k<yr-ȓCK&'ېN^W ? (G!#쁼ybބq+HyjbOXr1KFH"yBzY,FK?%졘7,GǵyJo!_)#țo)q\ ybb^A1CE|+䇐 y!=D]Ia/5^uyϑ7*eP~\˃o}@~Xa{=Mso@MYa { @τ=@?oE[p?E|u0j/.HEC"/AЏ|+\ܯu5\: |NQRB^|Jku:b]O5@.͈u6(Fބ|?r7ž+=*:X瑧|򏄽 ź$yWA._h |ЯXӀźΧ 6bXnE~P@Fb]XTbQ&:+ #ĺ!p|H򇑋uVb]V9qYR<y5rw oBڇw=oD.E"7!eK~O!~r~9#!x S/_~p>W!]YyS~38:=e|%]^lϣٳg=|F/+KCa^>ߓ%'  ws\x~K~C؛σ8i[:Or3[g#9srene.$G̫Cp-Syj\,yGܑ-rE.>lq 1?,R$|.r|^Wݝn蟻<=E.#V<]_rdz=,sKyy?_'`ˇ׎wGz|O, nuF9rz8ϓX/tW`)Jcb =C~>rm xdO|C08z>cŪk|Vq`ڄ?gt_0m]dqɓL~S76lu-}~eh4G׌'^fXNJ3oX_0FXeY?-e103:n_1}0,~-CmjwPúKU 5<ϳI ga݊hڦM IE L~}Cv2O "}/O׿- V䄭x?#SRB&Z f.=۳$mX`箥ymƋ͗>i ksft=XHӮ%{ಌy^s_^zMqsn|kn}$ϿԇEgż̎IMya#r)05 ~N{~ILa#MrkxpN397}o^X 5zyTlEwѰ4.H{h;h=/GC>x?0(잭j'123,I-NA4Ok0oLg fwzdytIay޼<Rs܏uk0ɵ4g~?eYfMtq8/Dcs~Dw#v߶/s zyW5wJh6zpLg ?`͡UbՙYN~`??ufL= ~4SbC\>z_ aHAssS4u{mL3gh1diy&kQ/V&#GG%OϷ $=uۙn(Oc8[9Y ѹM2J-<*7HwtIw1irdu3{ǯOϠG?k*\-A#-lΧ_˱̲sRs9+|R&s:~ÃuAL X{@@@'S@_nһu|%{[g$%w+ѥD* 2d7{e։ Ȃ>JISzDC:ָ*_)ܨcCj7?[(etclRW7/m ӧu7K 0 3aM ,Ly~]U\ٚћgh\f2}nS*/s y!Tl^ːMIÍMSͩT NuD ٍOj!Noplƫ t-ToB6O-!lJwT%n[!;) :Ks8|GRSU6OANZg )ߩ"V?#9m( <:[\Ѫ=׳%s=7-BdY?V78PCx qpoMdA4²PJRl+?~d{{IV4>ѳ^<2@'Oi6mDU!tCnyVzf`ϿSζ>v6vC'#<] ;wPǫUOr,r􇼶dwZv8<{v5`(VƁ0Ga!8B9ts~ wK'~t-9hu2d %!j jp;qu4]}8}Kyp-iuN1f 5A׏8k)" Py|hڳwCP}<,M<$x7h"MY=y$vK' tVˬ5kS Fpb^.@ӆ~(t4JZ\ 'y++IISfv1b`twǙ8FCH!0f .4T~sstrJ&$S B^| lQ4e0qFƽA#GNeԋ ;(ғ%KGSCNB?u!戀@IW&'CYNX_!,ǐ4(}4ݏ~As?Fs,1{8W&4't?V=&y-ų8jXܛh_pNPo,7ӄeD,lck|X}s--@X}s~ԿM4~~w[Jħ$Ή_ :|9w[\lsY`p6}w>U(Pv[eHzDS{Dõ Mrh K˒ =^GSl[ ˛ B6ݓ5t?tʗt=/pċ漇  o}wtMM G5w o&!jgIGqSq^3:Ӳs)Δtƺǔ ݷGKWPn$Gk u@Hzo"*v_r T _-Ly#ēWU8G B8 q6BĵO# 81D!".A\b w#c~5G# >8qV݈ 6 @l;c_PXiFD3e "#~011ц jrw D WG-,{zt_rF-H97Vg՛ psLH+pt⎲ZFKu֜+id&餳zim5LW[,lu;ߡX̂\8ݶ{:!< ֘|d1;W(УĂ\!Ȫ?ݐљR D>%Ag$B>tKA:sQ8]oZTᙙf64!Z9&Mrj@qn6y,g;M<4>,2?S/u|16ӧ3OclgL'V3c'DZQfV HE Iz8Na_GrkŪϣS{1EON0XijaV͌.ЛhP4^KtfkVQxI@.NON57AB5:ɱ ZyuJbWaR4ͷbkyBwK)'$nѷ`3' e'Ibؼb-V1 󕖉.֠a 4St[\7bbf1@u+2I0ff"x?7_B`,bc f R% t[od!N TD{?Kq2䖇hSMBYpd6;S8 :%3K8ܘ9d0BzLZ-׵umë92Fk].[ܜc0~yZ<޳p\`ɡ$ +Koe>j*R&Ҝ ɜc^U g_@5'^)gt͋CMzU﾿RnxG!x{{;mУq?R7QwWw˕Grܝvq{4~ınw7sEpȿ >|=\ߞO?L8ߛz8^M$pa\)Җ- @:n,7@X>a'Gl ލ7jѿG-?=lC.† 4_zk:!g}ykNȐGxoGzg Rx(T@#tO:H7"~'b#NtMX9L)tLftw!5r[GN ȗ*Ceʂ* t=y)m6G;)0cl>L'iLtO UƓ 'U8t^j ˋ^h4^0FhAZu0u3;@O5rJW=vn{)TGjá>AH=$#H]f kpi*1ZOӥ?AWC&5=.@: :@ߓp*t:U)MWNb/@_>a^%us u}_P]O<'.lPmRp' p*SH?]^\~ mY^0i*O !/A9T^xʯp], {@R'`_`4 -OTvOT rI" =:`TyD &rO FDHz7-bC@=TIɭH7~( ׻8_=%g n$V*{X ħC㯗*p}%hgKՀu5P)^GN wT۟IĽ700p'` p>qA~ {WH `P!ӎZ4>*R6NҎ}%bH)`aD6EЈc$ ԩI ^2^z ׽%m"3/Im i2!]Հ<Zu66K"l$jH$ mJ$xEn)&^ wkTok6诛,iR7Γظ6U'ỤsN/A|N*](%p-GJm6]+P=K ߫B()w>jg$]<W.g%b ][N99kfA? ц :#*DL@֨j~е.gW=vcFσ ӽm<ee }JP%%4]]/U[GboO;= o{q/mƽfܫqmƽjMؚ:_$NORC_!@kwupa |LE1}?CC~`q݃1h 2n82}tb0HAA/0 Qi)׿EvIȩSȭ[>1@)!+|HO?17l>7_z~1?@ p5!,)o8v~#/lT_?nᳲnp(XVֱO\pA9rzG~s`91w?Kۗ;Bn4}7]? w*g_rcG~:(5iVx {:Ծ# Y>m̟4Q~mPsozH(xczn=ܯ7Ap6l#M7٪cvͩ{n01TESGQL?Kn,.ƃ Glc ;npJ6;fN 9(vtpi=źw|$11L<,X͛7۷:~Ir207UIKaG'kN>y(k˩PMZ/vr9V/.]D9N =T qO&T5_{Ci h{[2><`HsI}%a|a?.S!~ O3 |6/!K!&' |S^ gBx+_߀ q_ ῅!%3)p] !%VB*r {L6^;ؿHs6= C |a|F/K!-Ÿ»!`Q!Ǎ%4DŁq4(O #FDmx|xdT$4pTG"կSA\C^hx76>{~ o*NGƧvm׮34DS;ona#4۷>DccSP:u-@]\e OI]bbڵkdyA{İ$t呭=ZVg.6:{xP!cSS1bu9<"r䝄j޵EUؽF:OHB2Z&Չ() %K'1 1|03{L1MѬ^TdZG 7/=~~[lfc={:v~Am hđ#Y.ܷwD6-o;c,}wLc C=rX9rrQĉ)={Vt钲gR4v6#;X/DzɎn);:Ҏ6*wvA*S&~eR1՚!і6/|~>_G|Z>._Ss۷o/nIUL3~ׯΝ; 2ϙZʢ z:>$%--WMMyʵ+#A<斾}v| Ϟ=ebD}1o+9#|κ޼ylن͟?TFFм8^qv-ZhwuhkϗXz3 y8Jx kN/'p<KvbXv%||g_} b~1t{~_w _~Ữs!! ǘ>[8f: LJEE8@ޠ'`QgD.Q[Da;z=qsYWnkr ۷o_֥K籽?4]x?x_AsB cDC DDnouz(ŋ4 eN/䅜W'ˣ_[A 80Gt~E{"׶&? Y^ҫWN, 7`4 7]@>0cA kơ7MFD]=KS i!ӟ'RAWrِx@!g{B/0a=}8 ,'օ" q-^ֵk̇<lK}x@/pve_ g1'9G_~!3u&pSQO… wZA&GӊIz=5уD#ç>DI}~קϰIݶ6N}!KNl~ȉ?{ȵ?:hFNHd8`<c*qgb?3pP'lԮl:2J|ԩS ?|8~{T8rΌ"댁db2Il?` 8H}MDwn ̇^?Z!C-;yn9 `?Q ơc>}Me}RgؤЭ2?=8v9OG$. dbyc2}>?K8tZ]s|wޝ8FYa<|_+2샿ÈzN?ڔݏ3n8l[9ΜY;3y)Y1B?셔w/䄾n%.k`70ϋ-kxr1OIӒgPnj ͟Cs / 1FO5h~B< L%O`1/p;`J3p08TqO)=n6&V8f$ErjyҘ\t_IҶ«Wg$Av *ȈzZ:q0-fg1 o?eA?ϓ4 έ*ZЗJg6I곁mҚ)r^bM*M1^=QR  0Zh K.W;W[KbhHڪ>UV8((Շ1?sv ]HOOXЁlV )qp6ƀ>h4}ll,@v]^e-ZDӧOš1< lf3Pih :dI!!!4fX,ISN%K/A,T. Q珬y7 곌1VϺ۶mk˱_%=z3~qƝ`;*`2hԨQӋ/H+V˗ x^_?!@`O!Xc⡴=c *k$o2Z4rȹe~\(++X'>#[B;`\I~?u:-g>y~-_r`mU)''stwN ?.)ym>Eg1chK6ѹg3]((( ^l͛7?N'NtRp^O?dJHH߃AN ^b![pb*϶]tqƥ!~&&d f|Ps6mߘԳgO9x'[R7r{=d}CmvBx/ӧO'o!p}P7d8$%%/dl6 AknGl A =@'p]`W΂`=ݴ{*i\6tDxı*&7!Q@kS۶'Gbww _ߣ!g}gβX"--MVu`k RKr&k!G9'nj hal6.,\f ?MN;[AN ؁׺uPc4hJa_LAaw<2_[OM_}=d 4f+{cq5'x^~e!Zˉ Ku|?qv6eߓ[ݴiZJȳaL-k2#l3Zl^ /jcmlO0 8xxx![E*7/!1\dS|>Ȟx[^zPWcg_[Tc_lh``}#HNN~lq6n;C̍)E #D|=6ԂSM'>$:𓀥1mZ˹d39ϲl>ı7 xT'7NM8듡>i~$-og^kh^Y?Wc_yf0z7υ j~rfz;Nϛ7/iGu"jIJSc/DNԴAM=G9h: Oy.E Ȝqv_~ze+]AϨh~c5N9>|h!xI]kǹ0g4QC=5y>ߎ y{짵nbړ#j碎]WGڣA=&c> G Fڟ(Ǟ9uXcP<DŽ|4ko*`X~/ؿ \-]ڸG_AoBgGuF_-Zf͚x"}+L}CPWuuj:z9CkijϦZ M`{@3UҞDbnL> !<\We~=D̯h{wSS=ǂ^![5jo_xq+q!jy -`[ϳu>yZ1Y.\:,]T=]>YڞG>GNևOA5]bm-ݿ&y^,~L>pY^ُaz?_\?>>hQwEo:55^x&i @Uчgh^)ІfЉ Kٓzw"""gu༼)z /eT3k`kXښє)Sm~6y+\[u_2^~=]VԊaQs=ū\[u,_Cd_0@@i>]@ag`bI"W?ځߚ]~5e;DW-fSv<7r5' cyYnFtmVq\Caapv ~J>NО~Ν;Qgרd;=Dn yp9^}D\j<BxFl٘|9}NXZ5icxOqgynmVmfZ6Us'_+ W\i%Å^+rrǺ"993k GyH; ܰ[a/q₯:r6|n}~!CXk"q  c>7lPHr|;v ȝf'+x0zjKȋ,^X@5Џ[K1g=C=UF[9/z!ASi]&0^qڬhE85yE&ǁF~jaZ$\ ~!Oaў; q"zE ߽{:bdv ⩴TȔǴVg[|Vt ''Rԉ]O[kDEgMMO:)}`ȝ=#Btc'KM00䑿#2D95)}\ICf&gD䴧&3L?slJrZRfԱS&eN?Ii2zN3D:>9sjv5N5uʴLZ>jZN<>33y)Sg)ɓ*⦤NO/?yzDD9<}g覥7P 4139D~yW STx-r [h{>STe6՘B]aha\aBabaFaNa~P1ugN4gsf\j.7W͊%ȢDX8K%Òcɷ,ŖRKRmQAV5ªYk`-Z˭jRT+(%eJʋ*Xl:[Mo%2l9|Vl+*m6d#z{=ўaϱ b{^i+ ;Aq4Y O.CT0٬% UUU1lEE [$C[':#@c1ب3#F1gL0&S,cXm1*@S)ؤ3"L&)gJ0%RL,S)הo*0L6ST|)7UhxX'P_r)Ŝe^0l̯X󬂹V|a2{̿H`,0|bN2/ Ŷfӳ)Z4a2]LHn.P&Şeϵm{^e:HG#r: 6GQr8Pg3֙Lqf9sNYpV9k`W+Jp\U*sU\5@w;u'SY\w.q+Uw'z<),Ocx<*O' Fzc o7[yKe oƫp` HC!b2 6CPa2Xw :X`Ke z1ʼe>0s64Zc d~F2/Y_ VS en2RK!\f0Wḱ`K%kIX,Rb)TX,5@k5i&XSXsY!e,UU#YRr e9Wp8GQtT;gSpqDg3Ǚ48rgک\:WKs%2\9|U*u*].ֹ#zw;ѝq bw]v+ {< O'c{J=JOGyuMfxs^[-Vz0-Xa :CAo3$2 9|Nc rCڠ%ұҳJdc7Rc9!>?ȹJazusT4$ ,F=iTb2eŬ륬PKyVSgpip/_vendor/distlib/w64.exe{|8>M67f,K`EFKfȮF@@QAhJ+4VIlmjk[o-I@!! ! Y4($.9݄}?>dg4#N>6!33mˮnmlz ?MsM_ҳUx?MSkZ)*s=~"/>Axd!xͅa&{!Wq{ XG}R$LZ؜oB^#MD|Ykޘ27O(t[AXrМV(AC8vy`B mN!/W'lB\ ti KxF#UȀ|J; ̍po= X sEcx|{&E i/ f:g/m 3Q&AvoC\ܶg.̒W7c/c Π\GcY|8>=K24>4e'X\M).zɬnZYr @xyqch4CJ6~@vJ_?LqɬAfs]9O;Y2vc4K-'/nAEî;$:\s=-=,u"d_V OJrѢprG@qxU(~m([2m~조@lڴ/v(le&8^ls.sLn4daZ.4 \%mX^ga޴w0N;+BKڋк>ji\Cc(4 pי}'(Hf5i'&z7LV$'x蠵}`m_q셚.12$^cE]?p0 1<\"囕\Ďђ-u?{(ϖSKKo04>\8̍{!Z{MNQRT^&uM:,l;ޱ&eʬp|~cӹH}7XGUf8Qvf+d n9|oN po'Ud`jc8@S5Yu˸G5[*,?QJa1lWPy{puj L_JVB~cA1JtL!'Ćc0{ϝ5!ouj G +kCf\%di0 %uP8iڋӁNtQP d6 f=\E]{ WWR" Ld.`z{IWam[o*,.-'%U:X!o#zXH(0>"7bmBc̢5WV ǽH2XejC mZ$ `y~:fYKVWW'g5M#>Pl[:řb4$[M.=yGّP2Ki%#}KnSVV'4 ϙ8ƈ&Lbbxhar!|'jcZmeR<~W:u4_fx.LD-lt71]AƵ{F!: <v˺iM!:GXabUck!r/AZișf:pwVGD+wq@G`؋qa8OV-{zJhq5?%e&T]C)ރ5HdLx ZMy/a37f/o`IF%UP21 ZL,Lagdp]@%X;z3qkOò"szPBΞe΅L(q¶l u' A釄r L-$A PK+Ǽj kn𴿫+@kg#.&UJx1 ̓`ZU=BT>!l"ob`mLj^Nx >϶=Ė*"j@&Nj4tT,voÒ({ꗧ5eH6se0rmS@"jiFG$|1n&nFNڵ/Lg"60!Yx@qZ$CX*=C{lxbR|l+h՞? \ED;i(\1XA+``1;by}x8QsQE jAL<% l+OҦ1 0* C~X8M! Y^WKfPHfۊXw2ȡY%Ê\EkE8 9:NXPX~j:4/VV{ `='r3dc/G~]S2H@Օd/ғ% i HH#R/*;b*3>3iz ]- vMbثM6`/99{*>Vh|0-NtmoSz̶zW7= _=}oz'pUw\ǚ}@wUQCyA?" ]ZD=T&hIf"\Js2r%Lxfb‘fhUx dQe9圏aAh:q?k CNH %,?;ExlE`YBNp5ޣ=m_{n Z ~vOlOCNAjz= % {͛euD4@<x(j@h)p%9M"V[djR`С-ȏb5$bu8Ct>T@X+"Nk&a"[̆2*Y>ɼ: B@buR:hv*/BK˙T.HmhpyrHNĐt6|3Oِ6`9%Y[ln63k rXcdJO@BI`_DߩE+@Ue/Fצoh*Lļ,KK絗L-_mqt?{hq~T.p@>g?t2Q8EC 4L9Wb' bVȱD,k@>h; %~uX};*랼2ހٲ;I4 _*ts!>,ཡBW= $~|$,eI,J*0{u-"@=dQ#Q{:z4T>8d; =:L )$qҔBn[,,D6K[>#/FeMnNc/ڡ)k/yǃ3)V\RcMNur_mǷTTM{i}d%u&G#N*ܡ[ JP2 8lMfT{Ikp?ƲбB=fTfn-aOӲSN|rRPܴAu2*] {W$IEwEqnm C0N>^Hw}Yb yVwIDP|693p-0O⒌WGMFpPL!a^,r@;rA\Ȳ֏w41 2x Nm?Rd~; 4-j]R r+-A%e_5gK!ISR۵mF[v#M0cjt@SaӴ'qɽd]PLc9Q(jG.mBrb)ٿ!JׇACICBmaCуtQ^~O>([m|2x6= a!~R_ xzO I[3M ī!{4вdz&Hh= kDŽ:筧m[}Ԧ-KJʍW+B+-">W6KWXNkIPEE|;Fb(]n}LA ʷJq8wpȽ$kc3QZ:31C|7[+?}HrוGH [\ALNbֶ ^^$LPl oY:yZz-F13YMPk-nnTPdݒP.Of(Ǘd'54IcP' &ܶtl4,0+< 3Tgm鍾ʓQnqGF`q02Iw 3[dnxKSÅT2QCṴ}_a-gbVa'X)$VOh#YBM@9]6ɶabO(R3 2j:iL F dֿ]y|a=xi Wی_ "vPG KnBP>GB٤QT9tu+/(2pz:nFOP Wurn\,mr}p]{@H\xk:'=a@Q:j3ߏjtFK1jt2DܫSfLHmS*Uw&a}k;bEĢHtku='H9ĊT$]b(w,5 U-|(_cm.{OX|)HMb%buWAd jWBtRpeyuW} T|* XR~Dh:l{ڝ,VXj }r|Y\OP6grf@NQ_f,Jln>Kbs#*KL}-̄?^x4 ϓԐ7s$V.) oRVnh\4å,XD;d@5%%i~~QWnPD)hBگq,՚HHd(@( mqe#\܋qEOPxI{YE~Ϥɹ&A wrD1CPJdf,R  jԾfʬ\mOԳAW|Q,bo!ImFSId3ZO[U27ݼu qj-[) *(Q,k8'yԝF-FJ:d#b a 4Q02 W ModJL_ 1#<1Xnp hFpŽGy[I9";7DEpO6xO@aзLTZs\2F<ю | UڰJ^s<&,`K`9+3gLcrl8Ac49Vb-jM6i|!Ia٤DB~~Wc%'eI6|(8wZϴvt]@67~iA8gH+G]ޫd3 3.yҔonSK K'h5ȑ{` )jI]u [\h9)T<`czzQzF<ʼn< -LF8sL=3_ a<%)0.{ho+Bh/_!b ,Xy.һM3:NpWWōA42'R2EQ6W6s-nW߂FJۀ&:$[`CWҷmr,`2sd`XOL|ģkO}p8.;{5M%Ԗ@0p|˳+xJ4J럱0[3lױ%s4حgHD!{5oZ\~/Ͱ!A~u`-Qvf55a"j??$\д7A#'3=Y Ik.k,o%g?689<īC@ ڙ̶_,p~jp:`<ny9=W]'o, ]}& >! z=[&=%V av9,VfYB9,VB^F.\T}YipZD^ye.NBEێ6m9D퀜? ,'Jīk! "9n7w izwB9Γ.4I#i1\Gacy>+'jiU0bWCIAɡ u?3S ̇Tb +8~0p \w kN 2xJ9ƺwPDd1MI׵&{m?1UR2Csxh-a<2xh+!:vGpůu&!CߔItVqsD#yڤ dΝW*s;UTrPE: < ZIVSrl'VujױypPϺHIhy|u5-L/7̿/ `$p[ y#|hQv-'iwgi7QcH*5\'#2&nW`û9ADb#"#D?X-3=NT5Kgh76&{Jcn`܇<8$sʞ}~LˑD0QRF8T; fu5OB`ڨ/>ܹ鱎}x]W'ͶбDŖ{+-&hz G(0g? JIM1/'fw]y>dg&3m(&ƥzI.$Y>MGϞ4&̛nd=~->} z?n'h? SCetQN{CT!RBAVFuGL1RAM l}m.ҏTv5:2[gZ%z3 ka]wXO:;V+2!7jzf5XY9f~U@\H(7W+jH6_~ӱ;84тA&L3XI %7C+/렆G,͘Wi D'.I7S'@R-i{2{g&qf`P|ص(1yPac?8;g HRj^zHƨ5t$@>y_.UJJc3Ϟ)-w]n9ӸXnܕ 19Tr% W<>y1Yͨv^eV'"phs 13Z@r%las31y0S sZJ _~u_>ÏgFfZzĎ>B?:B cPGlNk ޮeԋѼP:w˞&縨c8Af3>܅&kF"jȩUϝBMq!aU_JHF(x2+f- cܷ!Qhdn528H߼3JfmĊLܼo>!uj4RnhF m57~W7;QC,r+E3׈Y'aC-3Q꼹ysL8q]N6y;rvAeC,~^XR^V9|Zāe6߼=@ˢ W#h(֠Xf>2j,6TP oĦCj;`d\0Lnpe 6/8~??>iauv?k0)׋$mP7eKk̒yd3alym 49WlE9'`ʿơaO1euL |h6mrtCgS+;>V"L؊?goA, 2yi ӴB__KmX0hf?jظB^vSh\Y6{/>mj(c>@E3Κ1 RcQ~vhW(;%'76i)dd۝Z-YZBV/(%#d}_/v @ zֺ!oS%RB^t/aO~L/?j dY:brU~;e8jU]k*"Nh?s#k)#!݄C9%ㆡCaG#W˸>PaFfO<:ir:૥7Y7ā$r Y$3ar}aiTL;ɱ#OPefG=ȑ$+z@X-Fs}ɯ.tYRa[Ys/ ezYx2݋mk@'|FÙO!a+?B5OΕoQ.JA@,W1J>ll2$aDyv066٥mqM<o} b'\4Li~L") 3O}̞?C 3,"q,Vm6S"x(ɉFuB62| +6&R`AzVnCC$Cxz;ޥzK޻t }t1ӵ'Hedd%x~Z*A=k0KGQ7UM,,Dq4Q.Qԣ%!_{y]Y*tq牄SD)_Us6>O{GZ]\qpps+ZeXQ'p"Qd#_="X`yD,#+ e髵EX;Doe;zC 5(p8k+ט"pgŜ!M,\Kk~@g)_ej mHTۼCz5> eV&^Vm@7D 0賶o/=s>B\hƉD |N`D N/{?*vUl{*zМy'z Hûzf3A +8Z)Ur$p[~4Ts!Qg+ZgO~@nDFvb9fq'tl#kƕsJ6v8 5f/ }*!-lTGJ\ <[MngTpE_n3$A>/[MUTg eF!*-Q|P66C(ɗ.dCexn(en/K \d7ҽcO ų?jM6mgBdSP_`Zw+,xsph1 cklVHJz+_uE;(YVjN2[5&^ߜ*$Ak9Mb6C6S0jUVEo]P)&>@շ>_Iz* ˎr([$VN <NsA!/!E!л,3O{OX 3q]dqc CEl?B= jy6Cśes>@SU٤טsճecM9@*ޣZgR'5/k-bM~Txapԩ}gNcwAe@~0u@|g,2WlT2K @> t[B٢c E `L*ɷS!@&Q/v 5ŀ ~c3L\gnnť@ѕnW 5x[k|efޮAkIh~,ܴi @3`+yà?<{)dnW >| 9h"y(6?gW {Gh)Gk|ݴ7Nm#~>BR ՇiK4ޢCrD2^bc5{\ܭHދPvKz0!m|<  .x!W xLe.ؐM=jR(F%ⴶJp ^ͤuB]wh}/^tQ:T7僄Zw1Z#I&'zet3F=;h Y&x%dܭ7'":@|PIjƍU[eϹXdd_}ous^;䶈g@A3ۡM L;QN>DGt* #C>Yݜ*ww%M !*5 BZ14[UZ(3ﱀyW[Y&@S\7&AgI$x(vn@$^d)2%l~~2>M>kBQ$VudA0$PWs|FPs9Ǿ .ID~N(ie,Rx@c{NoV Il/$"k;{Nj#c`oƤ}0`Œmq=q?kǫ~bVޞAnIF=Wn@X*bU{ 5w_~UuS,* g1ƾ WWPwMBu pC N-Ls]pPD0]3kF2׮L/y Bϲk u]}Sxttu育ZۆltNԵ_e{4LiyD;i8:_VX=Nb{|쬏m f_I*W4< ?|4P0Di_̶%' ؎GE,m ^:?e6)U^].<9W6KFT1+X6gAa؝\H}Eؔk :(Sm.s* O위%l?k8R-*V:Fπ/~|z=u[Ouc?;E+UuvvC'*]_H|dެ#}=S @1/%l:u4ߪFt5H)]LK"/u5\Pz$%>e4eaaBF5# H)J$5`xHX(>Hj;xS"5$ Ɇր\0D"ةoX>cu{Mb#cf0d:CىI TYt؄^)Q/FJ,&GZXG}~.@3hjǘL^pFz1kJ5:F6/ؘe/PMUwI/OnO*b?3v%!:E6*F6(Ze \[Jp7o6qEl"fEKpK\4q(BwKX;SX2\&1) U\I;$:Une9Oachf"fm0^YaVEݓzB0KO۝tdw$ɡ`z+[r <<=bEIӉ|@'w-٬%^+GɺEܝn`MZGau]N{> $(>b ޭN<"(fd*COԒLgG7[+4)cFhޥG48$)vm(ODA̡u } N"K-b6t#N#i}4ʁ ̈́H9v6% cc"Q?W.o4[[;~  5LsΉՖQ޺_zrF.^e;A\o?-i驯nI DBbYAAoںJ|1M^7pl;z֍16'#eN|؉[cv -"^:ү22'xZQhO_MA^ <iy}N[x]<divu n^@,ͿrH{70Mc)&r5>Cևz5s Cz& rW4|+2]>Dd65rqQHx{*}.~[;}$=4Y"Bmzǜ tAx0^Dc8rWQ`W嫜&x5T x,8kc'2DP"^({ pQ@D U S0mi`vg2D˜oXH]cMEZwW졾ۊFr·X(c;Ln gܵ$]1&:edi빚nְk d L+co(Q?7Hkxt-vzl&%KwB% æõ`E ڄkTFËM!3]׆Q^uLCf4 ~%/*TG+,9 OQGI2I() |`ׯ3vſ}7[:5Z "?_g0Q"4/@Orf3$}:gB-j fB~.8Ofa~Svޢ[BƇ&Vv\j]NP )*fW~Y3Acvؤ/%F fTO_gzIy~O3woyġ~Gy/juI3Z}py4;!z7(DOÉb~ !q%oy~}# T{rfɢ\Z7~J3:V:ץk#DD_6sE5\^&u3:.;hDb8.81A"5/&k@& {!cca;SRR$Z44FDﺹzC{hYHl!oV+ s*L@*OigqT>ND xf!" F27x)ITbY+') iۧK; *ANP&/ZǨw7d D.w_E_.Y" >d8}]]. 3]qǚ xBw@kmkqsrձ7\wMz}?nOk/f^mv=tM*:,zKL)'$ω`sztQWodquKt|@엍5|xסvt9_:} "|cO\ ; (k^̠^| 8-yN< g2;ZfwMᾝٲ)ޙ3LpC_Ր ~2{FxIcck\Ò zL.o=*.2:Hbm9 35Gu$w/_ܑ暴Km?R?&%(Π^G_(qiWRߕ)\CK%FHO!;t4[A2:X%֡ih* ~޸ޭX_ư\=WGm"Khw~ϲ<9 C)zk蚘:!Gr{ݼ(!/U-RL:~/.7<6u4=(#8)JnbGw#>a uRJvo/z6xc\ݤrk*b6w95abM=[C@ Wt.e(B ZD"Sw "q`4azVEIG H'@Y ģ'Ohdt"! [KL1=frmr,)<6M|k.T9~rf5Y\d`D!vqD {BH01˓ENfD[,mI,{#+.Sɵ9K-)cB)dizDdy&x7fַ- z@+#^@֊B _!iZ@Mz)gBD1$~fZ(ǘ7Qf'\n">:/RM~y42Q>(rbSW>Y2=o rBPȭ܎[%D7-9e|^MX4P}\a*ĽO8>n׵?4M_syL^z] ZQVkz?2^dBwe#Wd:1MDv M^45TVcʦ'H:NJQbj4W 69߮.Cl!0_FH.s|rz7o@<^&&E<8K-TSt1ۄ2;Ņ&zf~亙GF.Tڄתqmĕ>j}GԣMysc%t&ƋEpvȕ 1AjDjL ('r߈ d (u A'7<uP{9}ky{~߷+]<6w>I+f IM;:KUZA_80dWb⛨[2IrQiBE_0&*#~h-aVxއ$Na4G%ZWjZDqU﹊Qc.dKy,op/h\h)A`,yvJ=z͔5c)Mq;}p;ԘMo*ЗrzP9kQW/9h;0dRJ~mٳ%l3⥑VDxgS~!mc1yo-ֱ碪_ġy߼)|uC4jcImؾ;6<ţTFMκ;xAnvh!qGx DC6B'ey$Z+Y]ňH *Dz~zl˒-VyE{]k37Yc,ڋD$}Ԙtyeamؽ1*s|&Qvg-uT zeBY0*O Q0 Q~' I=T 4\2aVabe0,VfC) $ eJ2e0mQ)J7a&(e>%ťLlSzR)DŽڒrPKJ05)ʳLgxL=ELQ\)-|fځU*9̕fRqX)㖶*KZڪ.^I+idXSf>%vʷR]E22/ڵa&ie0o$aL'y1d$ȼNiZ2;@Ί+iHdaV@.hA.Å1sݲ #C?OYVq0P7rݗ$ ?B}eZB\"?TgPazwzc{D[Rk!P^BFPbshu,S+azV[ li4MW7_V(o=ڞ@5S_i[u^3 wPh(OʂiI. ~O6o~$$xyj?3ەO5!K{LU4`V.Tc+17{ Yʀ;SY5] CBwIwi5DF?BH lzlZVMf}ÁiR0\CHۀZ|6՛VsڹMCf ^Zjakh(pSW315T9]#{yMdvy}k\JWP=k$\/;L/2/j7goYú; .axyDX^!^k dx2:% !DŽP9y-zDzH%"ae'93H-KgeqVOѤiKҤ{ iuKݹz&NBfM A$qAGAiG6dE"{Kv?H̼lt: ŐU- > F3K;|yQzK/ iPSkL`aTf{16%e&|sQ`ihRYڦ2-RY: ךd{um&8x hՑB-%BA7qZbÖ2C 1hV 4[^>5ɽ3֛SfB}kiЄ!p A㳓H{9~w&}fy%ML V*tI{+FP}&~]yv+6Q}ynrݓ[QTQܭ-o2"g5cm#n8uΔ0{tB{W2}ەD򑢦j6snҷTy u|Z$$IW<&5ѕ(SEtMT;VF֨$۽jPD/b:!э$inR84='Ҷ>Ky/ Aju -mf!!˝_GR07io !v0RϨڱE;-o*ݜpM8ϿIqOR=B!} U7(TZrPLg_ѹȒSjፆk1z6s$fN҄DG2* Q|~}Zxջbty$sB3ckQ*lZZ ƶU(WY+(NڊcOcwHjxwUƸ߮KvwoܩFqHw䞏 >^E*Mƕ*;GgbhLʡzl2<P-qH 9ʤ(qO ]lqJi *xh=(5w1ps* ~y67i885o8;5E.~_Lp0WW&rCPIa5G0=p hAp~K|F G@7;[i)Mw?"Un;Ss3s7ʰJM>{)qԷw #0B1%$zo>UEB)W䴧w+OֳBmCO^%薦DZŗn~nuz5[$]KFNl깺=^JIх\+_{oMYK4RIqTNMqOp|0'yZ)JWy)KQyZq;P]>&-t`Sg}IdmsM]8'-lZåK\F<٠7"15?jzR4*+x4jDҤ gmkPouSH-tos7$a0lڣܟ$$B**iM)807-,WYCU%zjχ6 7*Vtf.z{ֺ\tËfЂwx8udbUޢ3Q1+φɣxO*x GxcyI%~{HV!՘Ppjʩ.bVDMS?]Ui"~Z!My=:ȨuTvn´AZQgsJ@y͡]>]ti6-cK ##{ ߍn|vy .7L0=trTq^*ɔՊRs TgU-i {w:R)t.;1ܾ&ZC+O.n2Rb(h0S#'c RcL`(]8@S9Uf0G# 1 8}W+.~=x];fsqrQjGw#iFLQw$S+K7mp7;;r"ג Y )t֣ݭ[t־g~{'tޖCIi!is݄{.~`bXu}DN`?r!nW*VD b:pŚNk(NJE@Ƚwy1TįCYs(cVC$&JBMzڼYgmGi!u]~k|bŨN w3(7|( H'OBJ:9'u;{I*JݘHKNU$)_`\Ƭ)*)¸/ph>?(*7VhJKHCM^H6\uypzwJ]p \H5ZC}o Vڇ;U_ o*"-aļ`|qWupwC֚ny7KM5K8Nlk 8`z 2HRq`f8a΂$y4=X-JU=H`MA;;FBic"Chh\U)'>̽Y6Mf<.g ED4W-wBtT73CξI=ޓyM:I1wwN:2Z}ҿ{pQvߢ]S滋DyŪ1s9hՁ޷ #{R4 W$MH-5(Ľ3 ;F+~uI=,+&|Bޣ@ڹGaӟRI_d+i TqfpoEpHw]g[hfZsų_y뗤=BwBҳѡJ,Z '|{2R1\e19Sn ,˄5]֊C*r'5*w>67sAo!PIIkӾ#ZT빏[U{} )O,`i iS+gp>&~dсo~ʐǿ2=M\o֥L2};9\b-)v~XJռKcc ,+ꙕ;fy0х*DbnI٩2~L!W$:}Z<#Qi{Ko{D_fAX@|W*m:Wu{!y߉$ 1a'z }> % w*\윊W ijB7^qt| %U@׮{=rO.~Ouku e,&RU1Klo:4Z3[Ǖj+3gr&[=WP(~s$fg'Ҽ4z!oVM7n EE/:1ԁ31gߜ(.ϟYr$)y̸yOOߩS@W! $b(Y2vl$)#8;Ȣn$Gnm vkfRc@g0ңo/N>u9rG{QjQ֤3VkT_ǵKOEFdEH[+۫ʹ W,l*V&1( AɌȄ͏oi=E&LQOSb(m^v}Cn,HS6n`û$|H¿JX/*^KK)| Q _ ? $"u,KUMJC½6HxBo%/`O H8SI6HH5P@)Z%-apI%lC ?[ Y^pi aKI?IX+q ?II0K_HX,Z ?P{d̖l=#EnT ~mg{܃OKކ.:pA8-elgI%dv gUCIfOAp8[VC+./>WnJnh)\>~]iDjnHJ~bs).k)S[WN"<%7\)L rnxx\ƧaK8_r=xfq|K8;G[%Ѥw/4ҾNjvoLㇴ/ғ5|#쪴voN>/l>i^:K%}2 IDPWn(k¾\"ổ׀ekqٗa/+ xP>gFrǸ{"wO.(>gQ|̼NꁴPrtHon>ѓ>-v/jZ]E~45z5:54z4:Dz}thkj\>:yJ$N}ͬ(TipsxPgX>338\/_ç^Y[R_3hc$ršp   lҵ[Uc{ջO_c;_x񥿿n_ơG<{{GO?S>>ŗ_}ͷߝ=r;5 O:ܱ p ?P67~o}mt6vNkZu]08d W0*;.Ş(.(q.s$g喺Ly¥sns"Ē2sfhx8VYg_u.^.*h؉u X,NSٵIIsC0\yv9s`A(ãGz=mYƓNw)Gw߹[p0RBA'%gC!S#>&!!ŋ!e2 ]&v7:j"0k%ԁd$TtWO΂؃\,׎r]EFY4ryo[Xd7J%{^fsri+Yd!1ؘ@|ġU zxpN{nY1hly. cfB^vENvϛ|0O|0;jg4OؿR&Ti;[@,afm ]Ƽ|о3}9~'BJK V`%K„R#΁]t}a. vgBԑg7NDw3qaaqx`-rZ(5,t/؝K sycm݈o=ǁ|ɮgY3/Yk1URW%W<2L;'ڡ?+oU?]J͚9iXJ3x`cբ6)\`䱨d!ueyAs.rSؗ),0ڗ8\˯ʔ B<̙ľDnmqcl U&>1vG*_i~|JF!-1KEEߜ_XꚿlLpGB3UϺGtCCdmdػ؇1;FWuXI:C3$wb^aWJz9cjХ6ן%a+ =fɰ;cj{ wŹ:/F9;55`pHÂXǡ ױp\-uK6n#;7F4!9)HRԀ~MCJH"cV0 cA{,舝. ұ ݭ떯=!D_F2Ver5ܣ ȏ1Lo u|~IOᡬw^;y{uprn y `!y|g1.!,]}S'1&<~$0{`r$>kstck0XQA+Lxa`~o2N u'SϱYq6/o7~uedLc׆Z6kn`l؉*cfǰp?fqSY.e@J{$>XgYgX6%B|dؿh mHc۽ߨ] CZ8WfѝX4Ҍyy>BKO@t;p p=GcZ>cn>sz^-n!ZWX}UЎ6Q0܃ݳ9n]9QټO4OmA߀7BSGiR Hr߰HK_Wԫh(5aN AH/A3 wS]Guvg@4x9u >&ڡW k, :DG:Xu:u~e_&8PW>c܏㫩glW~ze}@gGyFqD:1/ 1\9P0շF/1fh3bރ0ioK៥GۨM}0kSTQ'0'i r}YqwΚy; `:G+ΎȜl]\ 6 )RеiO_]շV":1]nĄf= $n:^s]֎Ha=]ɺɣt=uI:mE+͏B]M{\.A߳A ݷW";n;[,o3c9Zm׬?Ϲu[?^lw%pVsXB ;mea`߭,Y(vpb$ݞUI_tim뗱}R]KM<'59xQ]bZv'b]" 5]L%%|$NDR||JEIErP'`y+ \3K:ٯd}pp[?ڛ}lA |'|7`H%e\`r,t^TR٦X`v~=k}IR{fp9^Cbf3YsL; ](ve]jQ ܢzg8 Kܠ ɿހ7&sv6l34ۍdEUN|󫏯ʙig=|KEq9HW"/{lTRn{- ǟMY1MS-62G@ea>oh,10+݆dxBN]uR] Iȟl"/YZ7^tIޡ-5%Qv'gIq I,̻UR.may˾>ĘJy^`bA3v[31/chY/|DnFɺKPDt:>)gf: it;Sn#W˟Z JgZ@> (Q{$Msؕvv# }o6)8jDYZGjk@ɇdd3Û$|=r##:ƿan ϴ8nd r|a~0w˘0gHs9i x:[G.ѱdO( a<_= =@5@LJĘ@x$1c)t*V0c(܏7Jп ɨp 8Z=phrO¬q0WZAf)Hxu3|:[$M-q)L4fS+& Dg`L?C'oܖ.lfWEZI36g`/ax^vxkALN<9I=ɨp,h >q(;nB)')"^,M ۀzB酢< =O3+DZ)»i5\x\ IKd%NNp ] b/"|3RaS.WW.\' OpZgີ".AW0[+A.U NV8뗂os?(F-DY\Pv09im|Z|[i&#AItԈLpݢK {DL#ȻXp/ ̋|x>+ӽl0l[6?z s<D=Ø# AE4>80|Q2~ pV+{ ?/+/M"071v\MM)pp(wG?`N\g?#QgߊSw>}]n 0<"-SY> S2:Ip/`6V. oJQ5oS 8n=$phpw8^Lpƛ_2C{8ꘘX#(P}z`L}_0}nDp pwa0ES ޭ0? vIr$$}#L֡.WJwKwK3Lki&yB 0i&.t)kVi&X'J_2D'At'f:gi&W㏐i1=-rFN|N Ğ +u@fUN 7AA W0IK>Zq{HWSW:p܁wt^߁ܕvi{1Fy'0y&Wu_[b ny[ `jGV{:J[?ұC3#._gllΜ9nQP/g7ofO<۹s'ety`X>X -;ĭ//G\\l z!9x]˗ edW@]U=x׼Y jEvEWs1^o_5*~„ D̎=ʎ?>cͯUzľsy577sBO@"ITLM8{g4`څWGy4\mVaϩOa?e?'!xB◩l=oA"~-A~!~߄.Ŀ 0CoB/_AX_Pױ6Hkջ;uJ4#L=6Lcۘ=Lm~gwC# 񁫹#zuO#MفPC|?͘Ĩ.L#gY66ۏmd hc!f蛘:iw2-Li>U7"B_w! ⿌i>Bf_0 09Ze_PٷTv6GeRU_8:!R_EYߍ}K ~CA?Go@@4!Df2gR\lÇ L1!sA=bCdA "g.ڵ47 1ݺv2H)~|M߭k)k(_0d!3Ӓ'!۽U({^`-L| ?fδ̶I}zaYLOIh\[0Hq#Rm`͒i)h #҈L9iR׮]`Li$pLIO7R:'Y26pyR_ޓdp424am-"ilHO Az2&Qth+($mPZM׎N L4MM<=ܚt 2552 $'fV*XZxt mRQ/kTX |&f kGf\-Q3,k0]ƛe^xjCFL$j5ل6hӧ*d㉲ٺB LgϮm[Ůǜ>! exG}y>|\'ol\a޽7s'>b'N`'Od^>}}՗|nw߱~sNeO~{~6:v1r twc{EϲlZnSdﳧSwMk`q(A4Dy@ⷎsguiٳg?="Ȟƞ=c{oT}Pz2pQ#ao71!1͐a92O~$ #!$C.#{v&1\ `ԩ5a7&D?ޡ؀ M@70.|7H?W~MBB|BB^xLe~VGphTbdsx?D:2$&zL߾}ʿAYUΟ@O4@7g'H~ƝO08s)/.=?~NK7n\SC"ćT40w4h@U7v޼y9w޹hu׮]g}bsC.i'scc{q;I{1uۯ{T.\~߼[;?䓏y |އ64EqQ1|/ѯ2^_ˇf޶y^{Qߝ={l@9G<޽O >cn'M soA*7j;^S5:*4k֚%_f=gD T@T6ĆI A!H H (oIR@@FQ/DZLj {=ᦨ<5_?}/3gΈ!#7"L?plݺU1a~߿Lh߷oѕ* =Gж{ODbcH"iK7E^Z3UW .w1u5/T{ ? eW h1?|0|L}&ݸ#mtZ-nkW>qj9 Ɓ#8,d9 R:1JYh" 4إ`p6Im j[1:?<c|zQ` VImL?z8f`tbalYO"ǺŐMN<&0D1QvϸSMS /)ؤhY-cdAZM9 0]1LQ /CWY0r'xB X8;ebت>+l"I2bdaz< Ó*GӒzBIqBߵkf͚U!G}X~|{-!;gDVG׻yai±q2;9ab }u.߷iiioB+ nj'ѩ+h&@r9h@?ի|kך؋Xfْ]>Mڐ}V !L]Ӽyv픛nI "VrffL0A ^ l(}~wuU ov>cT۶migK۶m;92mĈߩ5|())x@/O=L5Vs ?C6?3J>}k9}EI~~Oϗӧ4h}׼ pB8P#htzy$#; 8Yu(==t0Ltb[dĉ [۱8m͗܀#vϞˬ[ȿRi>@O#'O6|w] vb=trD-b*>֭[wڰa\r+d"Kԛy 9geeѣJv xsq-a+1 v[c~]ЩSp|yCP`HLL}Zrfy ׉Mbm@'.6XioٲedϞ=՞@ϧycg]wcI=[؂>(E>=z"v=_^|>~ߜ^>Um{T}dU}m'hlo?Bo~*&HMM5Uu7l m=@/ rx\FI{ nYu˰[ \0sLQe{@1r"&kŊ˥~~P8oln' S5}C?1}YbѡE^~c#}l0, .4w;?qvC;US\alȍݴi,Yȳa&mmȌ,mڴ?B{ naܱM};*+"~wSDM Nr?w=|]sl>;9k(M٭Ow-}[`]Zy_ϫL;d {*?+y\vNx\.Lx98꣫|l8GU:6 kDc1tkqbW>P|]Z?H_jýYw?kbNAOjs| 3H 5qjQVӧ'.X u|X8xxbNjwckh}rA4_c{\%fOlC}+p2T8$f}<'_"3MЩ;.2Xohkp#!QzL§hqn> O -SM z05y>/}OmF6z<#=*z eNgǏk6eʔ1~g9[r{Z"\?$N^=&`'qJ¨p@=ԉc24 AL;8ԧ3kxx7sdoJ *t{/kC'w'4iRԩSǸ{@݄`P_T3QE1ۘ&'7&!* NWԳfnM-c=۱'T3LtS__ Ls>TG]w~6?C}w}jgtUЫWr^k\bXΜ9?|̝;=.,"k{N@=:$)q5ǧP砦_.҃{a7b~r] qi@㿌1uWzO-7?U"gę{zo@|=}zKg#CèQ[of~?k//qŞ@Иagƌc5y|>6£>jzeKLO]1,kak cW{ nlW_f}Q[c(:l /MHpm>X,KB2F͛}Wv @3>\QQ׽ Ot]W8ѯ[|#Mj}wvݭ9r NzONJ+6QU^zu-SVVvB1^0gz{(//7> >NrO?mY5BɍW ? ңR|&)lِo9F؃f-tDX0x %nM&Z;*p'w"$%W W\iEڑ]8?iT^~}䝑wSA7vACҳ5sur6>=[[{zĚĺefksR:M>S,|؝iJ=f_}YtGD^c&2&FO[RƋrAPM6럲G)|衇̞bWKd{s7_);vXޏ&S7-<Ɨ[{~G \|4ts^ԓ8<߽gϞZ2rŵiLO=~3&枰מŵ&[F r)ODD:Kk͜OYaW֚{33RL IMI%s̶3e9q]3Se<2)n᷵ ic#!p4<+#y$繾4>KWI/#9;9%iTRf͛S}RR-<1wZIaYqׂG&d&GG䋋{hj_ZG/_\Ϟ'!yMQHIuɒ%--kʶ+*.;[vmy6G*_T|Kc^#(tMiE]J+KJVEٱz~?PF^%O3OTתЫU5OrUߵ0__/K r|yE"_oooW;y[[mH???ڟgk-]}Jگ@bGPShKQUQ^.*;^e¼mXo/o?oww7]qPKyVS )pip/_vendor/distlib/wheel.py}kw8w v{rI%2cӏgInNg0ٌ%(o= AJv=wxc @P oM[Tӝֶ~ϫ㟏]a [G|qxos  !!`p*_D J+c<$ʋ Vw%^F!j? J_p!,!\^# O~~hs߯|7?7P|H/D/`_;y^GGQ>ɀpw}G7ƏY.}Y"'ngdZh{فK]@m9D,.K5WcmK( J1-[ؿ#_kxdBn=o@zZ6pj\̺Np@pbܾݺV'<]M [/I 6#u?ZboeiNy6YTߧٌ9D 4 Yr1@khRjV:⎮vXúąye_ '$:G3⾞Uk ] JA=e$뱸QDUcQ;rFqaoLM{9 \(U=c֣,r<7\06Gos*-لoʎ({ G%A==fT 5u~MK#J h$WKP\3O+fЮ>'*'NyXxD~в[m2ЍN D 0N2ip-f;%]xKlO_ziBIh)oV8]5%V!P Ԁ$aSb>_w=GH7"9l#:P[f^)yxUd$cXsU& ~:70mLT7l<5|جcҕk,q Y ;]]3+RG6ĵHb n[Rp/C+VsI&ORZuػ7ރId^[xT@19gzRn'~5)@ž ]epIfp\#.T?aɐMyd&ʸ|pdCec :&l1!=|нa(X'!.F xY$v<4Jxu5ږAkΎT\>wq3x$>)X54ﴘnk|bRbRP:{PWQWr2}i "ƨ._nX'Mn7,ʐ`mnEJ'hIm#\ Z)2BmR^h²@ [71ɗP_.4Vٿ_6+\Ba̅OfLS " Z݋$d@@m6J@u,6l{S/\EתS\6cuϭ|@lX{S1^FAK)>D_!4hA$MS)"`4ua _yH5pS+ʊ=g+UBXm ":(,ˢƳ%҂]H]w&?Oʒ\3j\{#&Ǡ48#Xӧdw#L"N6"OFL&[p\VwǭŲR: 5F镤"m 4/<*c NgkŞ7J}AԺ 8DqH&W !a+AG2 l6/"d`B6P׀hAZ r g+$T)`pwAuu5sHrQ wdGсƅ$-P4TٴY"[0vlB+%Q 0fqq yA}SP4nQwz-Ɔ-z֦Yâ6:U~$,B{t'dԐёz>6Tqpl]$# {*+ΕQўKvDYbA.YOE4Hq ,0'2=E~\ [za7Q / uCBwX<sh-GA-bFVvfʽ_t4 v<C-%nB{pdqXJ$^>܌HNA]ؑ҉ŋ| ?ݔngr՛0# [XPpp91!KCU$ bVO|1E(o()Gč @N"3Kb?{X'=k)EY4l^NnVn "D ,󼋌%,pJ>lg ߊwE3ʍ>!/ۊ@n6WtY^0r6ò\i[6Eɒ_#6[&(͓}(`JN.rosK4AMF7b*ǀFlA<1X* 28 L.%úP}^Fݟ @Lc2"[䐷Kg!cmBQ0nJպ|7jXt;aTf,iw" `I6tT7\w:۶2){W)l KW^H* ܛ Vدǚ|\w5vPl ܁aOKܶUmsTE\QYIa@V"8,yfz2 RZB\j 6>ysի3r16⻷FjzE +‚d;W$1;v`{6EʧhrJGyͮr4sRp +HѺ.|iMhE}(wSK}jӹS~Omth}ev/wUe't6 /a9V2-j%}oRŘX5F$X tE[-J&K%ƒ޽LJsx_r"lY#,mڥbp lrU:ʵ2[%G5g"Vx}hUcĘZ,>ky841Hamfz]x%mh.I`&GҖ`B?8"Ays1UK4[v2A![_Wu6~ܫ*U:b[]->JՆ""ǕƩBnRClm\Dְ(7IS%8~Oz:0;ӄ@X_!|rY /5[ SqA;3+3UrMPnK mE 0xmuUWPp1#QU?&8 CɝUlAx` uQx,ާefV9W,o<QoCS}`z5CT0j1@)C-h ~ӑo&jY;( $ǕPr紘JJ(INӠ1hDtd$6`&pq!8T1Yˈk}maK4!:˰ d38& GX ~HSci,0[#C=ti5~\< x+ZT5}$P}6*KZ՝BBϟ%Rwm= [ tHkF9iK=ώt?nFnb`=7.e Z]mhjlYg%hG&NviGi&V8JP"GSVСA 62ǀ.K.k<~n/Kˬᕤ1 ~n8Y*؂ڡ]mētbbh/1( 0KzRZz%r屲cUbXSQ-q/$N)\n-U#O9YHL}XDuKlwb<<8mTO; w<ԜMs3ArI-//qTAp" ;yRR.N|Xco{=}XBei%7v7ՏuF6Z7k4#qgCώs^ֆwk$0|)3P@b3Tӡލ<]A^ 5ĄO KH ^v;QR35QhZp_7@3~wfXz$v꼠3`#]ٖ?[ 5;FGCk֚^RA_[hIQQXρ2%)@C59N/GtI(j\J)Р?=G*q( KdmtzFJhr A4 SQ=%gݓ'ay]g=3/ C{E<F]IF/Vs+0Su?>-1Ĉ/B/hq|=&'7zT, lSo{/_]ڗH1QF GeqWQ 5>>V^J[-l+(b_ր`sO{Ϧvx@|_XРXhXKJx|mLs/eZ2y|0$PqJT7#TOQWac=t[iHs!B+CD.vdo"'Fv#lMɬ\mb gXud*#6i;H)O:d;by9@W!rX@ny.ǻSY,PAA8ːkÖ0iÎځ}Cm31z?TnQjYUeXRL؇ Q:pZmO` *tO]whWX) CUڟjm8hGX%H\^ «PbAU<^g#B2Y'=K&grCħ$ചvhm 텻=26E2 \ǐL&(U;9DiQ Hf2s|ixuziZɺvF:BD|2 {Q~7qm9\S'=T=:e:DOWryG[%h;2cqȷ*ßJP5i=WAٷ _F5O0Z%iq Ey $¬4 )vFtV㔂zZ5(ov[;`)8TrDygOPu2ҞyYH1@fX9$`hdL˖]'Eg+ tBٓv'([3,3Jr`U7/@̋odհc`23Еݽ'FOw5}V0R Ocءz@l+ү%0~lbsaЖnC_;YBw Uu;wnӺRb6(I3u!Tޣ\Z. cnh[H"Pp&-cEJt`O8ڷ:7C=@p{ 0 }Z{amN}jًԈ:I׺FDZ/.6ާL 2/1(;05jO%l}ԢNw51х&WG]^ΔbҠ7OIqq輁g!'ԄK%ƹv$UuAv]꭛ܚbHJmgJ% :Sͨ"juՂEZ?r5ix7#ֆt'T^2sցoNS}f_BξM>KϠ߿m{޾xO2HJ=lrt[ϑmL8!Sl}\f#(9^9 e~@2 /;` hL1Q440_y` 2٤BYWj,p02úV=g5!0wʸFI8VʍHUgGtj5Gyl^aY]IGǣHv拡Y-glR_^=aM2CƳ/e )jL.2gE*cDK\~#Vv"hWt3ѽPc8Ԩf"[%)feJ1fI_2 ep8F'"3/AŬK`n-ڊnWDЋ>CN9u64*"^2V_t"g΃ i4ʘcK&l-ݖdgef+"x=*sN&a?*j)F :"LGҝ:Wʊ ]Zu T6v6![!3zT(r24əa Lh%nM2]_#R$vpg̨Ye^V*\^XPwQVigybs[([s'ǣ SרaC<+!s6bKS`l`_Ȧo$ʂz݂cUGHxuO3hą|`uC;)D%+DOHGށylW^þwI 7谊J$wqWeq|}n\#oswJJMf JTVO։"IO9r>qGAc =>lXڌgVU'C 8A]<(.AkBoOWRwģ*6y@0lnQ8C6NW֎UigC֐ﮜ|O*>#\>vCZt5rΚ |\P`#Td:7W$@?Lth)ݐъVJ2+/+duyP-䭑% Pk͗hXd!ro`ad u^2Ωq]e w7Tw nm+^ےn4TN3w,ݩW& Ąt1ta !f 눅do>s B!wLg2O|B/Ă~=>߿|yFI[<#ES+q]"x@iS edBCA0E>h^33}8Hwo\48y}V`> T-ځiƞPX HG ꎅ,uT6L,Lfx w 2zCiaW{{ ۽G'}Swmlr߽JniFL1/ˉщt||4J5 ֝c1 vThkzONMY13~?_-}cF)*lm=ɳWѻdf2kb}Ŏ~X}eRTLm)ϼG1 xbFK*C,Kty-n Zr99"rfy#Em[QAK[G?PKyVS#g)pip/_vendor/distlib/_backport/__init__.py%N1 DQ= (xS=.͌<G+S:ö.8A-Kͣ2`'}hHnJҎY*rU}X.yyzƂ\~}XYKξ*j/VXGn|(x_6 A{Ja[6LnV囊)n;J!PKyVS/e%pip/_vendor/distlib/_backport/misc.py}Sn0 +-19AҡIO 2hS$C'QtM==>SX[2;h^|6eSX٦sp$W3Gop_lk*Aʚ"vuZowTz7O]L>6LXGj@JVU+4H-Gc틀`L"O$]=7ͪZ_NNON͋juk3spmC{]}ioښWUW6&?[k޽o޽ad2E̦+W81\@&f:6yamvVMzrO?bεU9m iimW1Pfg l|T~jc'tFdMI[9(,f˕}E,ּ_uUOLﶮˊKuLN!]Y V"(/?ەn垀9u v7{prW}ErnQojDo>jmYvZfryr*1DU%茷t#t`Ʈ-VQi+0 &379XjctĦT &+`(}GAx083 AvIf󽝑t{jXvhVUWi5t~ֿ r)՚UV D0q7%%C'oshqH noh?T !p7pݘ@ǓMSfnڹ)lmϟ~'g "A.l N}\7a Xြ <}tcm+"^}n,'7\"&0r.bu0D9Em\2RY*W'f03cնR\:\׍=z>ءq/MF̬ꆂ\RL@QR0$UXx_Dn63BjfX~ F Cd\=jH1-7D<%x3gS4-lZC Y)cU0%+PUX7MفM keC 7YnlAS.Mg,_~7 F.g=ނY7F>#kX|5+z9!UQd[: Ȍ@Ґc2o;6౺)NGs?eR7&T9vtMeG܀Yml̎Q8NCBT)/qpV1j|"QH`IyvJ:4WbTGEJPo"߾jƚߜs)Tы̝V9>$(Smڼxc0|f(Qk70(-Z%FE% XNB9¡6{%.H5csbJ2wp@?ĦHRa&ȭ&YL@é#!lΖC|-=M A렿Eݚn`>OȒ&`#Z/wL5/} 'k+.S:B H뺄Fm, x$ꦁ99슼i)` j`iB -$XeuVnv Hgr.(z#:]4`Y!C_o”K=I%AOA@bRYEp XQbg!,lYٲ҃@Qenq o\U%Ȋeq^AVv*e%WʄH )zZc+p,ڞ& GlvLK!N3q PHxDŽ&Puee7@7ڈ8I!lsgAƌl0嫘@4JbF#ưu6Y+ѶlA'JP;f<<ǧ*H7sW`)RKe5sA*!Hx59Zd( X@)Pخ52+s<}ZyGrmU;ѵ.]c3$%Ey%,lk %K38tz5< U (BU%uX_.PEVmPhWahR: L\"DbnY6qo|fXk*Px{z@\k w=7[Q:ڟS>@KE2s(]8@oܓh~2XVt֧gB0GwHrAhYv$X v zh`4br2 as%dlX:пS5G}A%H@ά8 ;HVSk8-dC.4&s=+U; LNb0`0P^_tlN͏b SW:#aoQDS62e,+8G5XL1TJ Vdk] `ۡ<|K6O.9zx? lGpc<̚I^,XX(*vuK nG{Ƈzkw+ ex+הc>yL̐\cZ,?$4)wʊsŷDzכ.2\]GdNBgq k؟4Xu&AUčQX`OAuy9t|vwF.iE6ҤIXppvFfs1,QB p  6Ja\8,Dpzu;|ݓt'lkfEzrM]".مI/y:.eyH/AkWXAq`. hQJ nE؁?笟 ,"!JHU&`5Nम6O5 ź2q4TXL)\E(+8fMU&eI{Z4`^ov^nqCqԨpi:p.A!/-gȯ >Y˱=&6h͎Z'*ȂQy)`qoX\7aO I~¦jW)X?^a۝nD@)8nuTB5I%9K]u{ %p{-@^c?CO$3߸C..OxytR. z-ܼc d -!I6.8aLPK 8e'FaQw%|[8L>vkTEH%v=nʅ?ʵ*T*)+घ ۦLل~DL SSac DL/w8^aȩڐ4|`0}]}k-g@x'(YLsKq 8 1|_t5=u;nO)/̲IrZ7TZb[U`E<>nYt ס ! xՊk?/WҞO/|<:ѨIB}HrÓLDte9:lI?SȠௐ\K|ɊN-N8zM Q>v?Qc3_&)KmjdN@(q({! )Ad=6|X)\dv~#Ƕlm' #0 Acg8hdsgnd%2`6'3qU6`dQAY-<`*F|DG(3R^*͛i$ gsYR+l(}?|yGy zxMP!|5 #0VY=B4ce΂ lmv{y9PO67q3WwX3TLtܓks)'k6DqwDkB X26RЗaF?'<.})?/=("bbrN;0YP.o Uj b;OAjhB <[@wgzC'kh=y9յ6X3Ā_`% d+U-poMNfY!Uq=ѧX91;+(B1T#(q"Mp->`2__YethIej*tm.IB n9Ip+=2Rz G+@d?*4t[Ki*yWS#`м<LtƮp= @@V@H ER!CW"M˻fo`ޙE{/׌fxo%F^76z).;}Oճhx>Bh,`j[~9:=_1ŘY}EizpF ؁Zd ui2DZxF)/{3\C)9;zRNqr7}"WU ySq Ά)`o퀔+»2 3(flBdf3%_+(|;A+7G/ʆZu8Zx^a?R%Ec?J96ʕ'L]׼dnNas$! c|Vwk >hD  vHMyV={L}Y(kkIǓ ag4ʻD,'(Iްx| 8qBµ5Oh>a[n=\\9-b+nWs`.Dﻏݬ?9/9ɛ" 5 ߀fa¦UV1>/^\%PĔ͖ar w"` eb2W t.4 Nev3axc%Eei0 lz"'MFo*FDxo?(gkJ/_85q}y/najDr_dHhF$lDl10B-ސ_q: ޠN=(9E>1p 0$Om?}>lAkeMCE'yժzS`ZOEAs9(-Q2M>a8 /9$EGސSW& t_&APÍFs)'B !77;D+:Ig6t`^-2_ Lʰ&="d9[{j5/(D>r}P=<j,/|VLC_uڈfHxb$1u;ty0KWNg? $f <&`/akТnMꈗxP@{U8QW*e1 o-j~Su%Nt; 6l!hJ"jơᠷ֌\bфkVrJ$֔N&LgF*t>, :-ԫy4+|ՈAD9ޘ=[/}2O9h?+,ۭ$ \94f{a $ J[yՖMf2a@*ld|x6{*Ǟ , z)gۯ.OG'( ǐɇy S62^`u`hN૽=74k_'ڔ'ڤ/ DŽz CO>cQ{g PA~KOdzTyfs=@[? Ceq`+c=د=%jLT"@ yriR77t4t\mH?߁pd#T i5 IP:gplMԬ s56!i!?Xfm6 Yánw#Z&e ML¬_.DP|jzsZdw??2t3V?:Gv)!z⋰u0DN1QC]$@Lm|x9 ֈXoyJH`Ie=zpy"8tf' ɛerXe?,ÂӴ, "#pu@FY;V{|{0Lrыwn4nGj#;82S+S(J#a~%tW[$sx{ף{W[v{q-нHBaaiw XӧǞ4?.;޳6.mthꠇR_K4!"rXޫ#Q܁NDuLpX)0JТ@Rfa$u F„H2D;X*d\mŖhS@5Ѷ$m=,cw\<g;?x6P$Nɹhq%@u `(9տ2\e"H3h(c,[D _.Âs1 3ޣ͢F!gqXP~ȶD'ۧ=yeTC> W)@}c U6C-m&^kL>䉇ρg>TW+VTPP'fH!{B1\|82!)Es]Qf_;2QX41h,'@{! @ZKʭQG#[i!E;44WJj3W/Fl(za ,A/ѫ Q@LT=C= hȳa'\RZP4P"8cZO/''\nol>{*H#֮%(+"9/F9LF>,z fB#eAk #i> todv3r2]SgG n%9Zݛ5{_z>J᧡J x%*ECc Z7F#|*rY4dSpo<Yp\S0HuL[QN^=o٠D;5vemO<3:Si ;{|(<&fw_?6,K7o/Ey `SWpmVEo};vS|UZ,kNߪ#r iKm4ΕWWMPpyZG*=fzg${UC: ̺-y `W)S8kʚ#qh T%h̲ +IZi`1ԓF Y-`kdn`[Dh\òW`Usj)i*}29əX;$exͿ5@!VI7&̹*Ԅan'{m :pIT^:)(_9󔴔4Uvt4V!{]Kj C5=l\tGl r[Q_~Z& !3U(.=eHMky95BZ(y^ nVD&fRSѬl:& t[(Y<]G% T42qz#E ^CA5/D^DIJwWF1Vj0}Kɪ+ߓx<7_ &Ӷ% srp*(Z} w&.W2_‘9n+Dߌc?7 l^buy|\ Ipa]DZȌ^5@~CGь)/&1G*0{9KH_Vuy[h`>WZwޙ e'pmNJ{t#"wҟe; I خ`ipеQm:4\PY'M|׾\Bmhz4!|xX+X :Q\C(lldW47``LT;rgT̆{" 0Si 搁?B0#SEȉ*&-?] X[,hPV(#w;>+NbK4",[EN%]c1ޱ,DOH8E|ق"Pʻ0,K e)D$< >h1{$Ty om4ۙ@q I!ݜ栧C Az5AXb]0kbm(*i!bx0/6-|oHEf#&FL%Qa9(I^`.FB&ї(jQ43LҡuCt3B[޺oJA\5@ Uxh ~&#U|1-0XjB]/H}MGF IL-u4_'0 <,v42D^o5EkxDMab$t}} ]^ hTL0 =mp\=jmXLYXO^g < $0U t(Y԰>c8Y-Nlʝ@g-Ihef/mw\ Xvݒ@gw*PMƌ$獛k^<@٨j*ϙUw.\Ƀ_u3Doiz;/4凮_`L+Ќ}w?LCHDӘ}n3{^~wFaY*4 ~HG)ũۨ Y$<3=Ji<,G$Gm7YN 1kk̽wq%HA 5?:=VU:`|e,ysj|P]OXf]y <*%~<\DkүPW5GTb}R"}Wa=z 9c$PZo.'.SdMs[Ao<{jcS{fQ" {*">;@ru{z0y>l|YY$ O{$pXxNQMZ,Bc6*r}`O~(Z̬C*0:Vj:;3:jCa S !RCqޤ1W'?7c\ryhD0\5`^O&J_?PKyVSDBCbYi(pip/_vendor/distlib/_backport/tarfile.pyݽ}{68?W>9Yk9/M}$N꧎v6馹*%272CRqw⍔nc`0 f6UqqΓvc<_쪊{ntejYVq2Ns_3{0M~zyDʨHʤLMR\eYe]%E2fEUɴEEDQ~Mb*8IQUfi6(X<^_V7q`ie>IcM:ɪJ 4߭l\uz^4M9`!\(qF7iu/+=tXv2_N+U$)(`dHeߏizb9U?xYN aQ #(y{ ˛k8+"`ܨ+s8#TzMxd{[\_@xNLFQW g1cwU /U@J_1\V0Qvq-ӗߎ^:?=8}»C90^BK8P 2({~{_q< q/ rY-d4khQYO3ZN,Gʼ)*A" $^\UsRhTQ?Β)x'o"Ԉ O5u 鞱]DO>~=oàj'e1xE~9N:M>~;Gg)rit˦Ms9 *͇2gm4ZIQdQI]XNt1dE{llT< `7Ӎ$YTaQc(4Ki~S"*z2؉8-q@Lp#Ru-"G݃J8?*j7U"`9Nm`'G:7SyHo98ǀڛ" 2KOJ?MT=5'ub 6g:ZsBjZω>t.%._Hj bB;DFe:R\qɏr6 7|'MTm-Ag*  u^W~ Lj{םNludKeaƓ*)6>Pp7Pid wEOAɧr ^ƫ]$Nގ`9zN"_)y8,DlIcIw+e>"//fōÓW?N^#Ýzym I|l ]V@U^nW `?yXW>cK|~z}Ǭ|ux{~qp6)sO.~ētak5VR5nv؋×o/u߾6l' #vrDu_.$m}t#skMKHX($RZj#%H8CZmB^Rho2lچoH>kR{M"k"FQYN"YD J9:<~Atqu*L'i;:e:ŷ3DHpŗaƷմL*GFwh-M#p'+GUkĂK)H}F4*h/q#ՙ]8M@6hh #u>Ms<_&4doi|tŝ|Ra͊m!K;vIK*‚\ "`A`_\]/0-.`X=H\xhF)dcы(vLtI7·%_ɒ t@W~] C2o^h<"TL -`xP!`dQsݴULZ&h1꼪Y"2+Jֈ6 ֈ<@D< 2(i FD5@|MmbRzXy%n'yNs~x̬CI7^?K*2ߖJ&9Z份oy\#e6&ic\ϺYG >w:y['Ѧ].T}b_I"&I})GYC`Hec-aq|Χ]%KU `\xՂi -x xxT&HA0ޜzxlZ,>) UQ8TT]|k.di_ӲaH뽠(G+_ؤ^/'b()|{i$/?>_bz^ s± Wu:i20ޓy\CDRXv.!B}B!(P5WIp*8V W@,5<`-34C)/5*;蕲.s 'h`(?^ ^N&sX|(3i=O?%T5{IzQݚ`MH!CvzG]5m MF2%jwM~vMu;I`Ƞe@%h68̑>lOQs|-vQ<N]uE mQKk#tt[=Q޾;÷ѿsT/ԏ'z }4nѳ_:&NkarZ^ .52gnCTŸ{Ic3XZݎ)qf;q3 ^-]c}a5m;| ;kaqƇG{p RH nՉr֩swGsʆ!н2k<"QL[8y ;2Ms@໲T|s#&sهŐx0Nvp*?k@k8Q:Fu6xї$ evr}ŋ×/wώ.`owS9:ʕU6O~/<zuw3:wu, 8[ؽ{L퇵|>nTƷ%\/ %to)K@7NĽ>!jZd1ћUǁޑ{JułF*6b.%e_uf_*vydW Ls)roϒMRVoEf@nYaJfhD}/ةA7t8fVr[|\NixWƘLA>GX %7q1-W`WHfYtEP(º/˫no3iw_o⇯g@BȔg}pw-ըTBxYᬾaGJNtVNRVϠ὘^tǪqmԙ'Q9k& ZȈ&|H!}44  9OA/>=_^e_ݏ~7VJc`Iha~%)CDm|zp3r)^0 K?[Pt X"9“RVNڄh NX4ML *$8;!n[{J2i !;u J=n1ww{{jaYìXg$!xFI  O!$u9gx Zmz{-=b葍՗9 iZm n遀)э6Z#$0]a=>˫>BI^U2VkhoZ$&uG o+g|np~ S-dm=Qzf@51@ 2Sz%Md;QWzokDm->]I0*yQtSahrv˥Pd);^b_}pyoVgPh/Kp|OeB"l҆%ׯA[NjĘ>&]:^%e3tg+_|#cY*wk;gƸ(Ns!jrx) A\B=4cEG]C !r`>pf 9ͪ5Xd[t=E-`= 1Unְ}:$;)G<\L.m ,eA:XG`M9x9HޕI9j-Uj]~cXys&=}4'vC c\:ͺLc@<ĔXj?6"v/.^ze|G B@0b\\VN`9lUi<Іu.̚gGy'ź0nNoMwKfT _plF/=)t{?WƴxƆ*?OI|e[给%"4n_ f8Rݞ}[TVH_pOmcLMV@# i@vջ# S (ޢM2* z8hs};hSܬ7b|5.i,- m~vͭ(뼬GD;9Or9[sYJ<W8Ky!Rzj8je٠e2~ ֽgVP̷͌ЂjafmeOyC`%9uqtɁ% GD\iLBS= E4KL(}$Vo!{ssH;V_9$L.Sѡm-5NXE[<ɵbvLU:ZFC}*l7Knx0,`;y޼NS,Y+'Ot ;DiY#iLiHZˑ 6F_-5D3G )b^ߨk+|x!J򲤃h"oF<[]uA[c#T!eBWP !uR={ abHd0r=؈E∲PU0Rsʍ|UD.9 ^Qء/i.ɹ-1,nͪ(ud} v RY_W4Mޥ >+|/; ! btsSW5E/]ME 58@QP呸7ԕeGfmZ8UgSmCP3S]#UYQGQ)EvtLRxR~7.L?5v rzBiT`~m .@/8,(V]f_3Tx!Y:`,0z޷0yOý2W):3!2і?7b4l)0OIJ׮Y Rֹg8rO4T ;)kϞ_'6mF÷,^o)1JH~]·/ɹ2"Ev `Eu"zɚ}weTg@1XlfKR)$#*D*q f94@ O2 FbIU2 `S. ʤċ`e1;l=%}8I`ie\0tf*, (l ]H9a+uCux̲W6Rgz[H9MV!S NCrER AɣJK$2rZA.G`\5zBl9ɌXn4h'ÛSq I ΙSuő۝Jp Ή΄ӗ IqmJw7RZ؛ft.%Y Y^|$WS2@8̽mOEϏ=V8Q3gn~jۏ4׏!Lh,od6.9 |T /c}#0:B?2[ EC9<6E"!DHdUoKRk|A\&ӢzȲ4ޤKfuoDʓC„J\ ywri.6!SX2+T_FEjEIJcya'^, 2ဧeJ {'IJyT&(%ڜ-:x%$/mV{m9;|y| &6= z]; ۃ5vPpth/Y KVAo3Oi73'ɞ55U^›yFTip'W)tV ~<̡IŢl@.bOjՖ^mtB֚czgw,/!VUCmUJn)p4d,grgÔBמ$Mݕ-ٵgwmqGl@VD#k$R^=m ayEj`(>"SNmλ ' )-tz0-C1K8:"}}g=i}k7j:xmd-7n+ڛL~WП6gJkS!s,/i3/o ^ώ,eC@ ;nz?8F ˬbķ ' `Og2#PeUJzӽ'-4e*$ M$0PJXc_Ug=hbպ y)3 w9e)U}7|Rި'*UW)Oӱd>pSevܪZ:v<~u[~ၪ=|G8GVЀ{ t;6Cآ [6KESL֑c )+(@ ୨C˘xqp^#JOdHRuȾǾD]~{+l L¼c?J<ՠ$ T( ٹçOK9G^\a':Tc+ oR hїXT8:R["lIu\H$dWJ֒sS(;|Ӈ{IuD7k֪%<vD FiN\uruUe2!&ؖG!#PHgQڬշtm╊]eKSEWٸ4վEX]6Hެ7-y^2W5b1̫-Sg6!),LTFђ7B_MSt]Yξm5GU=JKhBד$7oN._6M1? Ø|0bʹ7ԉ6GС5 I:[&;1MQ'JB>X'vL5DF6f+e"vɴE@Ϗ%L[VAȥ69'S%Ba1Ηc>,K{E[Dh(utHhFe|f#LaXyZa^o0_!tl/wؚyGY]us eZ&c1_RpB5ĽÄfr, 8*OIÆ^ܪ(iE[ҕ<\@9@=uY--ȅU ŏOT8tkO0hwW= mlZ Yjg-g BMrRc4a([}pRMyCGqyzbI+IQQqZ"fWInD#.m޳Ӑy!& +h7v74SyH]F2}ޜ+x󼾃vu\߼sOf-0Bk o/^n?+%SL81IlʲHko#Y\_#Qc&qt7h.2rAcSqP&;.:NN ϯ_YK @#{&R{"t5SqBM *0ʓ#y]*:,6*R/ ުߊB\1)Ώ΢ΓGO"ho Xoyso1Rhu!t_-KҨ3`hI1#p)w`4a7Jx/`}dz7ЗXMRuKiV|Iȓ/'3,8 Й0u"ܸ@3۰v#Q`ta"X3ds&GzIbi.%i e=vF^KO*[9ˠpP٥8{»` vd^sWR}WYų)Ίx9TQ"`ӹFc.6o,(#؏݇HbQlWne}qRbaw*v`@)*0~lWj GvVRāvI9Fc؂ԍJ{F1Ie"dO՜@;ߠLݤ'^Ȃ1*ȣG/e-zmE{:mUHoܘe>*7Oǫ2oa ">Tʈf:WD7 VKPe^#^;.}jL'@ngv|DF1$k4 EuB8tn6\k`!SUjxy7;ڤ=xAKc; yt$rKl>;};KX /OϨ'V:ߗ;yT8k8M>6H@W}P+qŮ"n?6L[ #x V 15KJ 5V='Z+7 m(*ai3_Њ*J4tN 1yvM;l8}T}k%_=?vx>~aooc_0_mC1l!5a!cWFʽ۸͝2hߏnIQ.pU~I9]8b:]\F\]>w2m9[.Ed4݉Y}?~Q$|i]2kE^ )G͸0ĆGj(W[H 0[߈hMJg@G}Yc4G,u#q_0lȏZ1w}tKSX ݄A֩Bi^OfV4zBŨPv K-uͯt;v[L͡/^S;4TVv˜:tЕ}K[un`R 6 #8e0eg% ΢RbxcEfӌ*2u9+{aE0V/|&ʫLn9z<|L;۸ *qQ΀IgY^$# QE@t`fDTԶ,Γ ^(1IwcDgg 1 0bWaN{wGl Ooe\*xSj b;S :TIQpՇ*١z1)]=JxhW):q*E@q tAc.ckW}%CķoeX/2p&M@h@Ң<â3֮<1<ҁ}hM-H4@E7z JwIy)gr7A 4D[ #e @m[tɂH]v08rC&*a; %L*5 Ќ斱Vo2AJFC=\lv|ׄ'MI`2tWGϸn$вp]Wq679s=oҍ10$SmUO sɳq\1_?;ӿS- ~wKad8&vR_u-3-ZUipR$-嘣hwo mrh3U8TAؙUD'yn2&e Hѷ&Ck\@tE5~Etao4Nh3,"?KǏE>(jzL(Ԭ!PN:@.D1hs;WDrmprZ^yOBgD83n@HSݚiKϒy~CF2maTbX)*Y%nujS+8//߫sվ:@Z,t%J%",l&&eS %E/k;kS tB7>[βT5:*ʧoOF/~kxZIN%2C!R^0!h^cmt3hVO"D9"Psq`ޘ6.t .vWT!SG]ag%ggO^p@?Ŭ Y5,+Sx*tVbR|Q86AZL q*GP?.oQ7-2 'P 9Pgk67[M[mP} b쇮_[+uo3F,(5j4qr0܄=g2g,1 5IKTzC&0xchx4s`8c;5eSݎ4CX!3͉l[+b"KWY '{';e\f2EY/h{_6O }7Ep,}WlHsw_>c&.ݭ*R[_#B+lqӛW[D殖zғ^}ҨZҾyXy:{-_ qDH |~|9A|گi%q?Sud+[@ l8D-%?/*YM^k/ ?Wx\||]4 {%p6&|'.@k'_/K>i7 [b7 Cc,EjGǃrM(KָD=6N TGb9TѬa$rZc1A#'FbѢDXOp53[ӕ<9Pڃ9F׎݇=|o ^?/M&@# /Hknn(ܳ0'ZasM iT*RCjUOᅀiTgQUڌs(9Z ,dUք!AL]|;?4C>]׀dwFhRŲo1(;r3Ұl:YvJAt'I6KKp9qc-,ڿS`͙8 Ify;pFu8o査EiSQ/1rzu6mߘQ(lMN^xw@cot`-۟[O JLysgssZN*+W_sCe'S+9"qD.nO~ܔ :O(JJmfpPyVL1A6 x>K 8,yy:5*ߞuR #QV~Tr7fl#B Vn 0#r%8(bOrsfT"ucnys iǚ$,S/R΂ sDaPeFCD ϏtrkТm c)黶Cnj_l ;+\ GHŹgy9 X AKDfsizykuJÙS"V|0o)9qMg+*$LrbV@wm邗VJUq!_e:סᨬlM=EaBbHŻY y0.⨒\U1\K2a^rZjZ|1ӕ5K˷PjɢYqpϒWCXy]u9 QjՈכ41{ 'Vl_o1+F+oVYW1G!65Uv=Ctzu OGOpƪ 6kS4IYnzs岺o Yn8jp>::?;|n؁^ x7aNȈ99^2v|gFW[xbq(o@>!Qt@N~I "q TV+ M[c̈ztd_vaC|d(+kIo2J$??~jePIf/Bdi ;-~mk1 >ںgޱ>;nCмfuQ/[ Ao#ػZNk/;Ni0xfF!3^DXls*<&;G>SfU R_ͮ-nNXJv3Eq~q5K5lT:̊QI-3+f>Ǜ~?^۫06~ ;ed6@_ݰ?dr#Ief!76CoVu-߬=P熒h}NR-p,}^e]J2EN^ g+0#"A[1>S}jؗS~䜢:%nuvHيIL>{ XUAcYnϋ:I+ _[@lHsR IEi4TadikH!S^ӧ L'+6œ+|] xM־0.fKʓYGb sYU#J'|' -ЯS}5$C ?d>b`l瀛@gmM=ngY˕8SYYϦh d}<hO}*Ωy?d;De*N; ToNOɺ$_W }B-]rS ɶxgX-ln1^˷:[.&2"nv>%PwKoծh˔~%{gӉ 378֮M@h8WvSұUS{&N:.Ph7EB8O P'U4c h4CIx͖nIl\;];jwef,l)1߭`iHd.jj};!(> SL$E8!j:Ȓiƺ`cHZǛh= &jf ё~mj jo;5߭٣^?^M'N,{-&4ro=kkg4o\ USDI" N}XdKO &Ԏ? 0M/JqAT $.% hG]@G;&ۦe=5cB!|MMRYF 5*"SsM^5->JAw< *p`L C+mk2Qe9[')Qλ)l<\L߁7§|@7 NGSe";rcZi*hqu[x+ajmTXfY=F|*J3Թ8`2M;층#yRm(KUB ˊ<& B*77!Osn̺TWi x'ӢC ~ ݛC>Q) M)A lv-ɁcB1xDg ն\Ͳkffo+;LG͘˻@[ϳF6|'wrymE7 ʪ6>&iXB }5Ú׍?;nmMGx@zwxR{gDY(r W($n+X:B-"鵤ߌr+xVFPe{~ LPko1vx trqsDP0{6|矄#i,_i x2dEo xzňE)e1weܠ2cUhu<̬H*8X5 +@i NH7E\7OXjT6>V7|,kbZ*`v7s ȿam1% k1¥jG-^=iq>IrQt6m,vH*1HzNz0}F\5U5,D@}}u[+e))OJŨ%{@y9*O3-PĆR;%]kQ$ Q0}gu꺋[t"2D nt -RE/J$&Cy2o | 8tG~~fvyiIvbZdJ}l/0sX?tN\F93߆@ɭk iU Cl|],tm3N <\^XpzvԿe:ۍ@3K;.#z99E gVO̼ P${3{, &˯C`i \AS2']+?m|Л(.0^K :-X'qGڷWٶ!QrPda枆ڑL!OF35"07 +5o:PvodaTL}=e56uΟdɣlzŰ/v|C[:8apU2#939xt\u\b"f:`6VT ]~Q'Kޜ)nVMb%-k`0 I3*#ܴ{cGLr~{|p0ۈZQ4F+UvROST: gtm_mGv˹.yuWel:l_ǟU*Ѹr2<Be+3/c=7.%߭h[hUNm#k2-K6R '|j8e!@<u}vHъd: vo`Դ]˷{Mdn{Kw+u,F09חQS:pC!Ќ^, .o o>x 6HX(JbXWia'&o矴Dz Rh`oALad;o#1`Mps t"ذ!NA4V{ yk-rgS:`R+" n0F Ic4SuL'79hVEO[36e;X\U.f':\WĘoSb+_l,0fF\CN5vji{L%kssg/Q0dmS۲eΧM`2y"Z$5!5nHsrQGi\x`o؇ˠ{Z*xHC@]S"k=52jDeW$".gv-c(<^fc֒hI7+~WqQOF90~ rk.4v4uU%D?Lt1)MsNqk:g-kll-/⁢\)ˆrFzQ7nKe FOE#+x#J?jXDWWUL#3Wˊt;c6 .z@_PKyVSoD pip/_vendor/html5lib/__init__.py}T;o0+̒ Y@6 d( N=R_E"{9g/`I݁vp؀{WHH7b-[Y /f{GWVS/væaMg#1Zt TF$}p'Jkn@T Fj`BledDk"䅑C4hu4HTTL}ى(1fQyEݐY1CHEKDnFԷ|ؗCG πۊ߁p oȒjݶw=Fm4I5f@,.T(eX;-tdmu.lE]'Tsװ؟)Fu*VCyn (bBߤw0NR+ʲ >X,˥rFΠ[hF3ZRIV(w8Oe^KY'.G/3ipswAw+K}/NTvX<ƍK3<;N=AD/nQiR*|xUnQed7}q?ȥ즀tB PQ;)a'EgPKyVSʧ--XA!pip/_vendor/html5lib/_ihatexml.py[ks䶱_%O(ٛY*$$hFRik|h4 Ipιqw_/qCS][yX-u+nAl?9l.bF6uJy^_ V_I{ڙL&'/]7O^;?:Dĉ-'w)")p*!=ȩ碗{) FD$' '/\éHs=̽XC虧d89,%?~w$5MOJ4/?K=_`,C)Յ\ʱPZO9Gzn \ $ʄ$xF=A<&Nb9q"(3$dhރiNÞ0Ծ!Zab)![XkN4GOM^QLLw1QGv"=*Ԩp42QŨE&$XBIn98-cg)lfZ8̊0 f2Hr+\'`X:7aXSNrHoOclNC*JnIaadZ8)02Z0S3ͬ Y3"sfXPz2B,k0#2h"boP"q虯BLnBXFdIj9XѠlc;[r#kQ4ƜQf}W/Գzj|zt÷Oow ler!r=Bz0BYrZW(;Z?x8zTlmQ'JjK2+={%q|@, 6虁f,)5g %z[gY .hX,7 f0=`\ }<0za+uNꏃ) zД40 if4)Y2ä^x*O{ Ssr" ۤJs3DFI̤d4)Y`@9 lH6gVGbh,.z,7hd9 YNYLAN6VEiS`4"s oRybB+'Ss{djn%'Ssj^<`.eTl.,\X xU)ujԊߤ%MS|YWFv)i)3<ŸCaO,ĺt=V*cr+6&JRcUF X gc0lIC-=ccW<1ظ{xx86>FmGskd*#_8IDSI#!d$Y=I&zrғ[d Keh^/Pf"M<b՚SMs?/\] h,>Jzcf|:K}u)L/ L/ɞ3V L߮~kxl׳_ap[qwb'S5eJD3En$9[twVrSywTN/o7?ҵ٬zvFw=s^vñh<%g@no6@wÕ+mݡyߋ3eɎ MKbmfgzVbinlf%Ơ;lV੪گ7hhR-֧%p)Ttr!.Jo=s[Gr\lͺRvUNJZ^ϸ2~tئѷmK`&(vT]/zwBN_x! &nr;uE9GtO]o©z>;-jիC} 7ʶ4Hk8 t}|qu1| {ܙCe ^-֊FCncF/n'虁Gx&pl˲p#' u\؆(8E.Δr")R?("?M&7T"׊T%6$2ZX'껻2SK`M->i髋?^]]]]}?WW?]=֑BwW]|z ?>hJ2EN&@C(ytETQsС~g*5W0--U:U(CT"IZ1Z B-hUArr2 Q&D@U8hK5}(Ja0-4hP_!0 kh~¤FE͕p%UKR " EԘf`As F#O,_3* ~dJjXeP),Wf/F1rgÔ12)c Y֢M-dQ]ԧJZSE2ϕG~ +9ᾲ1@U8(! p<qǓ085d)8@* rSTck^-P5^d퇠*j:]5ܮ:D0 vhDŔh4ŰQ C%1dc0"v%eT jèORݐw]u#/:؄3k`UP@K4̺*h %@K@-@2]APOP !uIڂ@рD@ Pi6TA =;w5GTݖ*U+rCИ* J ڡ̔BwU(I&`w}X*,DEŰ5U e%+V6 N]:sj~6~Ku_ӳa4[LnrP6E[ 6cKi+9NI*4]ry$_!ş)B>}*؀ a/I>.!I>*:̘>mg^Vp$@\c{"xrv6Q)]{<۬WyVV|0dP;1Du{- (VgS+?ƗØd1;둺tQou4u-O|20߈a})S!N=UpXΟȔbu֘ȰoGKULdG760e9/=}GDڠn,}sT}xs0T3Fp̈́NswU5}p.C`Ka:t2S@⤇~j缒f>2tv,bHAKgSeenJ&¶#/Ư)y\8s:֌i}#&[: ؚ#Jovk7Qߚu퟊ZOx IxSQƝ#|'/8l gHnEYvo=] 6>58~G YOR9I-6o]l&~ߩT'")`} ;NX\&eZѧJBmivPKyVS6=a~$pip/_vendor/html5lib/_inputstream.py=ioǒ+:1H-X^XB,Bah83C{VUPc@.|ŦES7%NY*fѬӦS}MR%y6dMOӤeV[[ Q$xzóy^N]= 5^7R}꺘i3)4mmg8e\oj}ͫs]&'-xB~YUGYq94b~|Q k,$kۗeU W^DeOb^@BQ?o>HR зb ,X}YQ.TTYljL @|-shW4 PCs.[5 ̙f!&JT,VMY˨w^ѿG)5MߗLNNvGS2ҿ_ }W}ݶ۞궧n{۞n{^궗n{^׺n{ێtۑn;mǺDSv&mvU51Ͳl!9g\52R5MVl1XU*IcdHes7nJp<5p ` M:M"KҔ/TBP|-& Ċ4p*XQ*zW #Ƕ8%k^.!\ n]_YMVľ"Iy8)}ڜFv .Of)?#`㊶xZ?$YMgba"O28߽#2W-xz <5;N%bB nY>)WU1FKq+5\` |3I!mr \x%_E$C7 ys9{Ia\h}<.?+GF[[;y~ $$cOp`B y+ hٓzCOLȗ$|DZ7恻7:)oP.,ҮY#ֶ;[On=9g \zc8 ȵ9hj%{mT.n5J쾾5K(y+w<˄?800u0c˟08ْ'``'##6ٯ*z]Z`Xn4'@¡e#CSYw fh,oxQAZ ذ>d(KK) cFɢkaXc-=D#ߡݍV@{`U裡8=J*S=~8ʄ}RcTAX*Rs\ZNπpdQyrP:ft2I2%mx-T<9B=ϯy trTm5#- ރ9)"b"q^b|dڨ70a2]ЍY0Rd8'LAEMZl۱!LC$KGu`޲yxoN"Ԣ`yvJh:r'P:b 0?FbAuqRS8R<.=͜F諷[qܽU&L ?cqqd*z>f=x>EC1`%~b`iheTS^Q գO ix9b`c.(DȰQ6P)7d6ӵCŸ\(E1x/l'ƶ9ʘ 2c湈ps4Xzm W6Icgkowe}[8rK '!V$x25,[=ͩ:guS~W=Zk0fz߂.gl!Μy/68Dp&R@f+_\agf)0@8(M79<جwPTZ -d93'86K DzWaBTE!*3C[1*A{,*F[dnj?ɅJU&)7r8hm cA2řk`'pFldSuCB"jRBI:֏2uިY&Hvf;C!a8ig`F;"$5?FyDl[m[R7w)!-yh C<#g%g,˼:~ lbХOD\U>#\#\`r0wsSJ9a Knx2{(S1"jMQ~d'ة&w,()=zN&)Hrsoy7ehcws7<}`MT__Mfy&\r^6" n)~5XeKާĉW0F JS11mI#]Cn?J+"Qܖ9x02-tc @hK뤰b|j٫5`;0Yd ߲%$oѬe7E`3ӊUuH3GZa GYQV ;K>>+x%b0%re@(2x T舂1y~ڃ,Z_/>z!2EطJRnp2z v/@ǠNY[XV(˥O 2!MY¸֑3;ZM![i# dZ ̿(cwXDT ;I|.jذrL򹓺U$lH(&Go %ԡ K{ )wΛUsTߓYND$Hv0\m_{ܼݒ*=v;a|'Ȑ +Lҫ'oȃLqͼIb%_$6+zг=Z@=JF gQ o9Z ,oڊ+m1u a>3 <cS1 %Z0,KU\ZW!"h@lIEpBF6\vKxМ 8ZEIY:22|9PXF.;AnB#:,6VOB];yy^L1nY,OSg;sCK ,(t7DPYfUӼLI6%ͅ&d_u~[(1 2!!LK諿AEL&lGĒ-*Y' M7Sn* z e/2%2Ú }ԩZ%)6*AkE7 L"r͊Jښ ?s`liB3A}~EEb{Xe6{/`hZ#ht?8vݕcu4 ASG!ct9E+e[V-,YEW5xWWWc<,+і-Q";XWd>2,шU!}kNVJՎطnPF-',;4c>GL0I?Fc5Qc6x2;kbϸ}u:1x]o+|oq) vjB{c~+ZroW H:\\^OjE}N|ﲂ3R: .ڀk@V!~qu UhDu-'xQku,AڠN'JUT9w y?ޛI1(}D>#B(?~ ӰAD#*h}aWri<Fۉ7jSd/Ro8 ^U^= \ ]ƴP¦N4)wԽOQPP`^쨮;Cl22vVvX`{9L@pM/&`"TbTzH)`j poVgLfKjWn%$|lma6vѡ=t <2qU-k1TIK탩n.˄1n}hXھZf Ni -]IkΨ~O \h)!k5v#yk*j-am%r(v㢚2o+ d?JPH@mQ`rt1o8r{嫓$(-]aɫC'sgދSOpvООA@aY?H^i ru8s\Tz&1DHMFF@$ 1Ԥܮ1kŒ^y[5?L"*^:\;L=1!T)KKy-XeWu>mk+浒ZnnBx!u(!=(l WY~exwq8S3a&Nn0XY&P9ψ}T10$gAt|p6z,jx= qkh h.*1ob .&*鮘x]?Td7P*%:J2CaJԈJ@G~Όt(ByɠP/?q !ʾi 8wfElMQT. /)Y$w@E\x#'FJX+zG\{U^h{Ve8WC( Dx.`SUuT5S6Ô 772d=@70V3VcHY:|,p\zW<\d Iچ&E% 5+J\,K͌-[`&4X=md8]m 1L:ZFb:$(?R54`+W,9g ӵ|QҪ6PWX;`F[r^$w. #]oCGL'C"ʠ׋yQeb>cn:5UlDE aֽ>4XoX qZ; a=O*oF|+#仲LyfU^W[#L0Bq u]IKk N K_ƚTACK}iid)Utw9uǺXҧp AJ@ E>tH~PTf8\=6h; S\`Oo=J8\CַQO1)?WT6V_r/?۽@W eBn0E "&dm$O= @t2dWM!Ż[D.4ad4zkk97ѫ$Duc ˟4vˋ 3"0xj~l'΅S{ڵ]zAŒbJKd gi\EY-W{LNw_ɢLq/TiwXppҨ ߩ/`켛"~ { Nw÷"^M/;&hW#aq#|a/8Th07W9@:Y;pR"NER#؟'~Y` <@4O#ȧg*{,YmH ٚaL]Hm6Lм'~mgVp?h8Ƶքd ;]0Bԑq3QjDj!^D}QCEJ~5irAXjYD%srzCR9xPۮh)ҍ#Lu2̴P -㼤ݬsa I?1|(2ີ;KAG,7>Mϥ xU-~oG^'D{ k{mNz,Jy D_y2wV7W9|vS¢f߄φւ0Z-6|ykڶI-Ԛ-$([ )C/%eemhL%m 2:y| 8{OoS^?L'dvFԥq0=`Xf% >bԪVr31-xRn⣒oHp+_  }ZG:@~`.̚IUm:4: b\H{" ?zm+,3Xtc{!ðs/lC}&Ԣ>h@#X5׬O6=hHptkF~г>e_͑m/(m:߰MC<{zȮ9ok#&ϗ.Uw<F "ŃF9Ԏo1]JBƣ(8jXqDTї@PFnO@Ǜ|ÐJ wnqutOë13^ B2$_ʥF@!턬 4eD{`^F4w~4z50f=Czۄ6sQљjO8)߉b'gIQSA ٭yO0u첁$#HaW*%)yO;܇_U,);FQ͟v'PP?xJ0|,!Tm-aP!_ PKyVS5mO,"pip/_vendor/html5lib/_tokenizer.py]{s6?gjT'#[{ljif48w$$H m=$Dbr:,y,љ B-gGiT᧋ׯ^qQ߳hT>?z"G^G(}r|Dzwxt(ހgPDQQ寲=2l1Q>~ܛ@;BښK-ϺG;,1'1|ī|EGC#<˿''6ƄI E9Hlei H  1$<5`s |!CDP{Z(hF$L:˿!>d{zGo\髯nuòaCDnik PO|Hwf/K#@yq!% }Fm} F2s7PʎHSwEm^@7C o}jȊĐIP>u0tm(PSZO@*c aät 0,mPPaqsL-uL{ (/YA@|/1mJFr? HI 6/Џ~"CHg>44ky4@)qл:V?8UфnL)kĽe`j MD D`mם 0|J-$~GRs=.`쟚 =R{t>PDpzzL1$hӑ/+):`Jꝡ cǴrw!#l6"EntV"'1aM648P=G؟- K6sˀu{?4*,8}8*W)OiT9l>nB(tD&1lL (cB&"?>[Di3}Z -P}-5(@@eξO&v7TQlw1Fg ;Q0@+̓xcs xͧ74MToE)G5h}}]SZE5h}}CSZ?D5O"Z'7ϛz|z}sڔiT,u}sޔyM1hWYHgaݣ&˷sqߛ 3Do5hЙjbO9aXE DnFwoJ 7^ ;?{}Gdpe}Ezwԃ8E˗2Rϩ!Ggx-Fd">O L0Y>8,,r 0r"_al.9Fڮe4KU} h,rSԤ+ 1 :;jG|+Yy)0 ()8Q"`c"!":Ǡ|8 _j|8~%+ /3fҳ8vYbI4@Q|K'cf@YӲa/]3"|(S?GpS4l>,HXIOk71-ʶ3HDx#BÑ0Y |{<-> *CE( 抡TNr`"c!lw~œ{-P'ABl`"ͨH`2^ qo~Qz3?P1:(x<]Dsk#E2_dHCr-a%CJc۽m߀h"v{JQFJ$pv3lDsx\ q,_J&F g~N/cKqFaLȺ JÉήo]˼0ad}TdXmO!/xja™ Nm%dS}.8%L1$Ql#+N6Iy<-up+Cd%pNsk iE{o@+xR {T(g^yS_Qg :uzI#_t^zWXA*!|&EBYO=d8r< R`*I̸WWUJ^iM"_/S54E+2D W+|S<{vU'X>K~^R{y0(B|yR - .+ C)La1ҥ"L/@GieQ 瓴@"|OBជpS GHs|^+YNυY9; 4*@V$}ź< wta+iC`c@:(na:$R]\0f=xa?QRip=dP\ZFᆄ.<1h+e_",MHqOmMuX 0̳rStGG){.v7OO+_C!yR)}-19j)D3ٖ{Gv@78{֔a03Sgbj rQR)#IMA`YM$cF11R{ ŝ"[2ln`. F>ʱt)U#)#L Xv/j܃1,LToBe+lRG8yΏt?ʈ` qDq${˹mL7"y]<<ۈV.| Df&-_%Ѭpў/v#a0?0_:QqÌ\LfxWNnNdfPק|IJ_ q{L2AFx^b@aHzc%5'Cr<!'&6tƜHҤCLiJ7^*2tgN~b0`p c$ʆF!/=h nIR -ٓ(5 YUD|ǒq߰EA=?eKj|Ӑ< %P1|;wic8^"eMƮ?pl= x\4Q?|ˀ(Ę|78`/)e{~" YnϚ/hFWֺh>TF5b6 U׋qK F'ep؈f;!amc}Q[RTqWt\ƻBwGJYz!asv'2X|䵨b%wϛ s3\w҅%SQLل}·p۸?E:c^1-Xj\nrT"͟?fIST$EHKh-|,*TZ. BE~(tX0ϝyUb4BT^JﭸGhey0hO9"6 o yk- IDv2&v@G%r?w-,YL]`N LdYuz@\i;I&%9H knGe6ՙ]ݱj)taN.ªe9ԅUk LD\`5h?,ߜlR˛nq>n8-yq̙4y{$$ٽDRM_"{edK+gcinidr c[YvdrGlsm悁x(L?ۏ[1O~VgkLiCS$eOƦ;_B 7o;iE%w"%$kN/b)?=%Gx(Bj;nn4V+q-$uӚFA%,)\M_.Y -uU!S;orTMaG2jCX8aفKi Ҏ`g,L@MZ֏ju|5)gNNW۞K#]R-jaڃI 5UmU~DC2% Ӯx֏Bk}߬R,())|YzH2$ c6Vʳ WhJ͗o6 :wa_x#|U"O9$wj9"ߟrcYgQ N~q'_Rd|qNLȞ3&m;Oh&;㍢e(EEv*'ĶXeY Q'O 68v%-ÈO]x{^?kӷ5Ӟ0Qcy&l,F@Z !&,ƽ 5O H΍4+/F_JSc_W4fvv3M_ c\R;OƋ)^7 ߆ =NwJ,±ܤninm)2ջ9[V#ru:RUvJ\gז6GKh?s,!)*F*yRC 7(uG Dm+v'_?,䘸-I7-b/^OzSݷ ,]Ǜ{,XeNaQgљ >y~ % &%y5Ŏyi4g1-w#V,eL6 ~.ãcpAcPcW[RTn)5loN)["`B \8ŠLb\"Dbuj1+}RKֈ-.{wC3L LT8޾4~?=?}|A?ǂfL~$"n1DQsŒ8oFQ%55j|Vx͂2^PPí5FxƸI˽]E &Bf7\i%&n~gqo»h`,q]|oƆLwbUZ|Ѫriz9ƕ!V% T6%/gNg:c EކwU\궨.{PqG.A&n,޶PTew] s*KvToo9*^Ƥvph'>eBoRժujuc]T69M1U.)uO~ׯ nnsϯ]4  BSŧZUî7̀M7.n^ħܛpE8(zT{bɜiW'}۴)>C;SI( \$Ѓ#_ɽ83CRq2_4b>ލ>u2x|hi1CLj=U/3_ze3`Db-j^7mC0&ͬ4>ՙwM+V6`_ۆO74%㍭l[mkĖ.j[W۔v!-H ęty-VXk]nw1G.i#pLUk/Uzu.uPAIV%%&`R ~>R wJQˋrFkҧ(|d s\r"G2ưd=6WZ:»!߳3!t'W$T~3q3U=FExgW=G .KԴo DUmܞa|QP p= d)mroM&ԣ]>Dw׸Ľq=, ??⫋R=&⋂؄⒊VS?^֦PI4ׁ[PKyVSӉICpip/_vendor/html5lib/_utils.pyW{o6_⠠)ʣŰ5vV) TZc62)Tw, "~~htYJ4.F!%cTBXYa`IvSrӰUyUK< 7#TQ"I"kXY y^WZ+wu(E\J'F7D۔ݿς@,kup9O^|ͥ |ɪ¦2ឯj'H 3u 4eE<܅1o]0%يk:}"V4w.0إv2~lI %yڂ U=wKPcȡ#S򗓓#|f A2V],,6`W uQ66+af&7Pֲ2$gĦclxbb,[!!٠Ge ހ!/NI@\A5ˉBs <[1) ֔eXvf{ ?eE4=>@)0x0lQ)2O 4ɌG}̤KAr~vU֣m+kEum/IJ_ c*~vl#34nZ+^Mؗ X \V0(=K|n:SL`JZ)BaB Y4rM6|-/|¥R,Ls|| Oj܅GiV-c*G’w4bm.pH%=D#iD{Ѥ)EDU{$[ʠyQrG*Kޅ//I!lS5Mp|"bLl]"/HQ&#'Z,td*& Ƥ[2sERv4w2B2T ÔoÿP̷2uV `7utf%Vİ>.:Fg}ݪ=kysIn& \e&)X%7{3pE7U&'3k4 = 1H#>9Zts[/F$]ou[ X=rxZLhà8N27Ǐe螇ku#^q#!6m]Ǥw\\Éz>hS E%?BH^Qz:Ed;^uFJz~r5ߧprO[W~bp"fx}+p1)'JO='i T9g@FAHدȧް[knlRA5Vn8 Eh/P˸ɎycקFa^G}rt"MiZoװv{Ů@2Mcx5*OLZkĶz x JHƁ--tԃ^{~9\fZyn.(iZ>"8chmiT%/kHQ If?lmE[<2=#`Cw{[{G Fm[c*ߓ+A0|*)]V+7kGiZDhIVŻs|үb⪝mKInc`y~PKyVS[2&@HF!pip/_vendor/html5lib/constants.py}w9+8cxXY%ꖏ庺jkI2KL*}<}Iׯ,F@ E{(2 7iVyeV~ (yL"? 3/=jE%G޿.MB?'e+/|U¼SDSVy/ 7A6*VիFɍGiFI5ȞAj?Ͳ/((sS =YJTygIxGIx&ETKˏWٽx8\zmm~0*H*r\ϕry"v|/QMPEw5[IћbHiS$?OggE=%%,Տ%F o ܁iZyV!N Q%0iF쉩6(PJg?Wu/ L;jnKNEošȼ`_;X%j:i[$Mu $;94y2F0?UOpZE OJ5_n{\YE-RSVutnUgrUĹ e;kkխ"~]yˮR7o/zAz8i Z6Yy[](+}VVBb hyvte;8ڔw;_&^zO?;tզ5{-} ~XV}U 0Oi޳5zָFjB Uu3Z"YgfVt5f\60e]Ό9(7q{NtQl2&ΆGJiRS/Z!@uG gU?Y'uX=er]V'=m /+[5z h*m.8{d7S۱ߞi9ÃJ_;zOyl_+hz.)dlVK::h??բ\GWvmKqUV{F5m,?6T5֠{WmV_C1*p-)o{[ε.KVzOMɵG_1_! Z{5Z뾂{=X-_,`\oM&3mYdLX&H$GW4fm_u6tπzUsKPnFGqgѦ__oUd+j2 1t]n(0:4lpyqebVi\u}6HjyhUhM'#vRC y_u.A6ngQߪF3Y?uiҀ=Lp%zH, jUBҿwԼXkLi݅jQk4ͷ|s{{v"͖ 7w=o*?o/2]`؆NM]Tx?Y1}"I c-O7j6ڨ/aӿU=(V=lbe=A{U4w7QN]a(4$؃_9TF{)ҽn1E{DYm1˹ IPDE=>{HEC:{{rm ׻ evSŠtpk!)jOGMWgՀjUG;0߇%/ hr#h~Ne?~-/sQ(N:z7أsjP3RpOc~G2K>'`>,GhOf{%\==YDaf"ZuZ16~9=d/˫p~?ރ뜪ڇtEbDYh-Þrlg+ V]{<%M%$Ine鲅_=W^Tۑ9w9ӝի:_CGj+r(޳W*+Y(=Ka1VIsGl2nOߚgЩ){ &d }!=CZDq{7@# na^[~{ٍ cN=vϣ[5rusˬ}1<ԩe XufR?;mze^|yA)sAQWc6ÕgoRj7LtҀW@T,C y3q4ZVhQ,bLA>W֭~wK͓MaLDE,b(wA e j(`s/YjG6-"n[ٔVRYXh%ȧ)7,\htGw˼ R/2/+[/ Т6ޕN+̢;MT~[48Lʮ:]E 3/yMtlO/hm n0_>4:R7+ < ~#V o߂Ȱ)$XnLꧡȯ5̪-D/ZBW׳cTsb3Ӏ]4(r q ܮVWWTV8)~~a_#nB/ެTJFjAc6%* ѯ"z&m)o`? OB?_V?EPf[[mxX^3@-l S {Z226-̶-<ۨ%iZU]ߘIN~[niQuXT'OCMT95Ipj~WZD~ekZ*Tni"\ʄzm h! ]WTU?l^c4D7Qx;O:ߥw+k篔S;R5S kh[hmj\$~sday\Ezʬ:NjǦڽt9IՁط_M y=|gilo(,Ty{َ҆"UO͏jG[o?(| gT咽yVϹ*kF&= 71RYx}*5m6ۋ-R14AQKm/4JyEc8k:֩2իQPK\=KofV˙TVMXO^ UI^5^_{^OUTx4zP |~wzi]pplu Nzw/z8˓zoO>*wbu.LU EEcU77ir84M6Mz?oʍrIOU.O.zg>jہ& g[!9jH<㪿×ҷO_^6}y緯.~일|yiOvF Քј{R voùhڧZ/O>645 }44py؍X L10Yq-r0,hj}g+jԠX0Ȧ&6 7á~M6ii1CFF3E6A6$CHx{kDDI 6s\Wr xDI5Se(`/uq3wsTT%ӞehzfxU\ơE14J()s`'!fX"^`ѨN]#"-&$PD,?ޥl YZ8pS;:"YfeHcRpAgfƩBY>*P$~K2Ks#yPUl١kR*Eʼ1sSӿ@O?1`\F :8_16C{jM2 !A؂6(V,1?t`J*;up¶q!%VB]O$N'&Β2V1􉃴8_J}\[H:w569ɲt_S\¢w)>Kv.et;Z -.l*\$U;=4߇YO@]~:tE\.DR8#r+dMdӄ6$7fz* oO'ed33\y$@&6Yi?1x(,w$V)_dH(YTh+ph~n4 ;9f~>o6S*$M+V3^a6_?_l@:(H XWBZF2/59d$Aox-c1c_NM!C x6@M aC#X^±6#tY='Ig2v/B`n*ت"i1Z#K k3P۴2zsͲ1WW @30c&J?dgI"¶r'U'Y!ޔ}c|hs^Fb%4@Bg0κPbά<`iK^j#tJ95x_Gu8 jPʚ _kQ}[^Vp؟:"ҟ:# qn۟C:5XsV\8g CHb}nf6/b'1ŶF'tl0cM"esz*V=6QEj4z rfщvzmZ^TkL!ZĐ/-9]fQu>q%+\0QG=l>1L}Ia ."/vq -/>myi_Iv#erXN)zmSL,"J =\G™AUXƻwGL"0A=(@R,Q`: &cv̩ p (|N^sht_v-58xxK+oBRNp0V[l Z:Wgb̬bo%Y;5\Ix'WRcq .\z*KlTȿzQFG:vE7ϬlC.ܞxgQww+,4Pj'<"M&vpp`>AgCFӼI@a u"SFJ[޷QvO+RE4>;$\g]dhХpD:llՑm2J28%j'-рNM@ (72ٲP9B c_Bwc&NJkXw*ۨ(C! +v{; @t5Y}Q6֔aMZE֟yU:6ePRZUm{0P*E[ }`5ܮ -vՖ9Y`,uh暼jw.ghAYq;$09_FߟqNű{TlS8>h8~o+`u"~z2#:3>3k܎0ٞw,a!Pq:Yc:s)\! :@eI8>0Q ԞU#>R)gLfT?jfT#n} UK4Ļy%i 7! P@k=lx=m"+xBPV^`M7i&I@7أ}= W*c,=FCt0{8<{lB:0ń(Bs9"FS?2nfyL%| @oaʶyes`}8Ȧ>}5Jfg|*idDgE8FXQu咃-#*";V>B!WV|."=QV{bm;/v'tFq8-;h:BR5;%0bPZu(<+T!NSӯ0qd0]F޵`c>u3 ,i֕T '%De C dwL57ӟEŨZvVN*sGqS$RU)W5|م3@`5gv lM`U3T'4@g T1mYVOmaʬF;qr}~u\ ',C? {weIBp7?k6!:P}L] 3]iokFm^Z .1Bl_I}H8Ζ9s1^qVa,dκ&#tDLƂ Mee qMΔ]%pc κ`NX08U #s3C'F)2YJc$YYʈ3Y:EGQcYƑMBe`AXA$"Ym$Dih8oQ: 5C pueJXv ]_},NHTnZq{c,'rij|l|e9d} * 8VmdK}O#1߇9|3 ܉2l93?6S/  -ewz m 33HC67RƦOò[a1ąhgtG?4b,䏝FXď4Oˌ?4~:`) TO/~ OfƍR̎rۈs🥋Ӧfi+><{y <7[/2n2x?#huGp 9d\rz0԰=${yV:P#Szó&';AE~@'P WO`< cOHkކ 4PPQ>80Evc(=DHYAMSld Ps -,bWX[PZZP BqEoOO7~R#ڋ> mhF8:(ѱhr04cKé[N΄=ؙx_>g8i L}? N4z>w|EͮhY;x(ǰX7F<F$&$& Ҿ!5b-!5b!vg7l;&a[Wg7uJdzY1pvޚoqrbЙ|.eکۘ0 ׉Bo>v Ufܒ P&6FZpX܎T#OJg0H zBoQ=*5Yr)^w &7"+ƌިpW>~y@=# cs'ևDKX! pGXel#;<`Q{(aC܄O;wR-*O3sRctGi7fܘwMGHAeqZpbZE vQHC"p&B*ݤi"L?rPHKYQ&nA1pf :˔P;  ^HTx( g&01ƃFWL39AbznE}hI_%G O),d2κ_ @]hB<{!!x8Bg0!YNj1z;k߆ !!i˅r,.1$((o5w=B{ fZ )cjtLP(*/0Hyȫsq"`d~qUC D e~"b&L/?CP$\58m{(8{'sc0"ᵈ)[5GP񬢂"sdR_#Db!0WqKh9g8%\}ݢb3h./u`HĘ3lf@>Qx״HDp KU&m']pg&`k&B T7A xb& @ *ل-| 6.cIڮ}u5< abC<ȝϹ (vy`X܂Μ`c{B!%tQX &@L9#С@PFZNC 9Tˑ@CoTc'T!+ط>ͧ%F=o\\/;-1D6z>-\H\Zo{,ZO֛G$DM#\{Z ck+QT"&!HˊjD `&}IJҶ ΍,RmJ⑎؅c(hr{&P0fUc0v HYv6ˮ|e5}puK>p;Mik 37k),v8 md. zV>=:ƱvLm duDH6E0[& K%x#T"W"l4{EoQ< Eg^y(F|g+/!UÁC+nj{h.Qw%La4`*B, |07WaӎmPU@JJEL[CȾJӫSX4(WAem>t`]yt_݋\^oVHトcE:`ch}Bu-8H̶I@Dd4#/D ;D-!(Y > >tFaQ n9IQSc }4C]ʜMIl=xct\M @XԚIDCD+8%NFI^%1ʣ0'/y~xU\nkVf!8Px6J) m)ѶuY:;f ÑUdmv 1cl bĈW~C,^ £J8bgz&*&wh2ZZ,ћb+ۄl'qv쐚PcH5 vwf!8͘"3aLxMBH^*E@JldA7[ ▐f0ڸ1&~ ,҇?PXiUPѠ|Xt`psv ˯A`/^%|UBr J/bSK-$Dz|lVr1t|s|8?e5/U1G B&ΒSeG-PÔ@Ǖ&q!!-_Po;qq(*2լ;G8p{XdEJ5Q=`3ZypݧAFr[{쒐v9??o!`8L i:pr0NևK7Yy%3 bU.&6SZ;+&T/+58d8jY KP2mw7-WAnX5'q z7l@N# ^CzL`8VBJՇMAκPzmiDΓ6 s!PHBg]0I#@Q{WzuX"JB}4W$jl_>\WI:$b㪨ch1z0u u'9iD|I%HQAV\N|sRj@d}Q-q?'!`қ#aKىC h<֔>!ݫ₫`I(8bIye273l:`b_݈۠D/ :B=pyoa8ټCy`BiK!%Mq!ܯ&Lfs>gTBfCp}I35cf5DbHN8-LwUIP;X[4sE YIAiE7l)EDtaԁ 2Ò S]2C &ҕŵV;NKܧa^ą'BpP{}.~bE+ ߩ%o[&B)5&&Qs+Z %Z-x1%J?ExD,l 5,mXqkHOUP$`0+7.j 魎nLX(- YG#:68EI"Jz_xdh5pr-sL~ԡ_;آ5?A0ąQ !  6xl,YxW{wrw3%HSD p }ˊ>̍,.&,`vۉ w(;ppRA#UYbͮc\װͺhYѐ`FYc[W3zη#]űκ`\F)`>8CFxtڅ:#DքO:& Äa3P\-?LG#8o mj*!EMf ǽnK !#}cV07N$_Ayy`V:[`^M`DF:HYSU>).R@ "D;&p]B9Ptoye*HLȘh jѭLO<1~t,h%b(?d"O"7f@OnyA#Brj+NJ6!ÍlcBe74JƸv2MfOJ6S\+}Za)%N!x; t)R)(dC υ0L)ֹO[C@yGsL`^}' b]7T o&f6r5PbC,jr FRs9[jcF* kK<9bج l>$4D. zy0aT!;~bn-Ԉtf'W,SB jGh3_4%=4 b(7NTdXzpz7d0}OpzF+`0\49r:$| rr=_ڥk/_R`GiXGvN=RHg0]6 <](2|CD!9ڏ (4aTP1u|_p1 78t_SCȆY84R+Y(''xX Q9|뻢_t=cծo[8CM~VC̫R w(&`l;TBc)EL0 / 0tNmxs]sJ%4Qn(JWݝA_S DS$jKs8qDXƈ'pb"P[RwHMЂ_nϧ 9CQ1lbIz3)dy,N;bcYi?nkwSI6rƲx '&1c}R,+7Q"x~٨ky9ݬyɃ w(4/.XeFТ$ a=lGM`_ު3%D?ºVxxnlm@.3¿3*W8)˜`G8O.ݓ*BE!Z*"o?xw,=@8eߘ;XFw(@\q'յ4k`*̑ΜP%.(i=%He\i3ttʋ[ J@aϭ`(6-ҜxhY`+*`[ űo+AؒM!oD4EeN iVC:t(v %VF0 xS"ۄ_"#\;(:ۀ)nADB>Qg!UtzZhnSw)NwI U Uې!i_RRF\g](\ɸYsDhZ]4i[[pKh/ gи|ɘR'fy(0,ˎe5sX8Eq޸>4Gm'>!g5|Lp3<:BIi˹D7:&/(1`  ̆Tc0}[×Xh`:1M) >f;cTo3|Gr4ؑZ7r@$"QH .$PI=zs9w8G#>aa*>ćt3E~(GC$Fm;:Tw/ dB^SQP^U*(9C$a)^!oB!XaA IVu FGt <,V'ʎZj` ;hp%Z~\rխ8Em#H S "q[{  9kj"'6 @tȘ;>y`r'j?vq,z(񎾬h],*9\TFi$zgN`ޓ :  `FhR[3 Dl0jncN=i=~}M{ЍӶ$V{e`~頕1`F~e:jaN󴕟ɌRV~&;6턠 |jGF~Ѓv\p^&>>MBAz+~(a)|郅Q:Kp4n[Iz.)Ȥ|P>}x6ϣ_oy,/2: ]8y o(в=zEtW Uof罛^oZ(ge (6~ы4[~3Nyܦ?o/}X5^N»HT0k~m-Ǐ?zQUY+0Ey_=e0p.J6e TjӴ*'<Íմ]_PKyVSD#pip/_vendor/html5lib/html5parser.py}k6w FS{ٕWv۱?ʞ}Tqr$HԒJ*I=Q< 4Fhtϋ|պ ggQ\Ee+r~YrIuL9KqZޛU]l2"llIxe9$=^ڮ0&YUY$^dO0+|3R>MG$۸!Dg2ͳo")W񔼼xJOG$jE?Rx12MUJE$%٢~0U\,zEU8,^}Q-7YEE\љ'YU7ezBT2%k]V$yU9mR ~=?!Vx}$(ɫ/Sn;wތ#|<ӑ:>yI&Ţ<h}狪Z=xl&'Xc rW$OϟUr eX<߿׷ޝo>]\+! lF9:u6m/|} D >,#! QBDɟ|L+|nbɽ'%ݺބ OrhTO21%CY{$k>n8C޳*^j}LZ%>YУI8yاC! +j %T8)Hl! cϣ*/ELzsJaþ$cKZ=8}39C6t;5H1ι|TPl(L dt# #t_(K,EBg%[Hz K⸆E5cNE01BEj~͝_C1JFl,HIb [a]ѭ:jF cᵲ!Hڰ`\2NbΙ"}SXyFw50|\5S뤸,уh&KJqHy9U\qQK+&(6{ X6ułj@%#(Q@233'xA b?xZ=>Rroђ`")NJmSWn lBAV+0{:8'?ӭwS r]\o$]@*sb.QjKh _ӭ)5Wq1t4al*KU /V>U0A*`{U+db`4@i@Aya" dY]㒱#*~6c=|fU ' p3B/іbN@Q:~dy_}C xf4tu9}y[|(ô^paU?E@qFT(Pjf-i<|:`gpć0&ŊѨp]noqVty}e>?F+4RafVi2E0K;MUHC і/3vYҍv})y >@y d^yp:*~gQ+sYSfRe1;^)ϧd]+0*I@rߪL$z,sVb`[Tj[{Q.YY :g]WVˡgNǏ>K1z]͍ eC{->6)myc,9TIgyT ZS,_PU qb- S x{-x{K rxVhLSiл0`C15:iTO@2ϸO$-nt-f"[%8iB\s䥇>[ 'P :j1h1 Nrގ-;)E[2C=?P ^ U *փP(7ATm=Z7t:};5(=d;5J:}UԤ*/hWW4M6~H.X/ӼD»ށs{j=^f&%Y*|mzQVx'1`+S%CqlM覍??3wu1_U[DߔJќճ~zZQ8~v.^Hbc¢bHXaB&͆5 ICmO1J~ڰ$s_{K Ժˢ{Z  O!i:fG}ʁ<|Am,*sngp~NIN'H8 $z,eooQŽC3tWTBDCep0 0~q}Cm:>GըuF ?#6Xڪ>b5ZkCa5`kJ#Aqi:q[gt#$A?Ô~]oKD!2/tч)N' tsٙW23ov1CZA5rnPT$']j޾]}7+{@ i&<ϫ2OO,"_x<]/ 4hJ=j[qJ'О,Ps5tFd>+g7e<qa/tfx&~n|8Qkj Pdz2 Yy"_3r_n V<>xXź)510/aT1#Ej 8dkhvu TӤq*|l=!҆a` ooAB3Ԩ;}iD>?y󿟼 n IrbYklx`xMkphyO\'Y `0 ~EoNQ( p>ؖri=f&KioD O*./p XC泒;͊T`J`< UQtI{QϐȣbYSrS?qZ|ŀv &J0J< pDϢZ(B9>9)>eϿUV1^RH!~w|k] XkֺZaγ3tŧ mW:N'/ `㮓xqN5 C%czQZQsO- p+T>2~yyXvH `L p >1; F,yE8WPUnvvVyEɑ.9Baw =?yIGϭ؃Cd@v_бHJ73蜮+2Z# C)G]^&3T@[eCu[T I ރ4߀H5nL΂ Ž~x} ʯHQ$&n rB =~CIpTBZXP~[ZQ"C͛ <]rSZbSJ|gT݊p)s`I-2*WSxCqk1 4)4.9-Q ʱmF#ZAHW.@"Cb"aЇ/?liQdaKJ `ۂUT̅WV3'V!hM}>QdDѡM/V J)CUUl[![@,H~Jq5AӑPf G`IXgW\|-aQ p︭0KtSR8`:jI( ĮN!7ӽ):tJ ;neF@"FM%nX/9$W J*O閮l/nهm7H߼~=;NNNVj`&q'R47rgĔW+կ Μ-54,Awt_r'W跍Ƣm[RbA؋[PiۉֱLu S߰[_LFs՚*,]EanO V?V_uѯtNBy1p[C-(VL']n}%hpQnmeԲ@bR1:+h\e%%)JH02P$*7ʬc+9ⲎԙrΈlSz q<(tI wtx(zw<|уM~*.9Ld2"hH^$+S@)"i0&oǽX4إ}tGCO&9N^s 6_՗T}|Yv cEU;/ L #1 L2* G4`{~/|ؓFHir r9Ya5BX|%$=*n`p՗ i%.޿1EJ3Wpbd?M?=|ttT)`Ҕy P- P @`&ݤrElqPjԜW@r ԉ7Oݹ.NfE<9v@ƪأJٯ"Aا.jGI莦ׇ"?=Qk@D< &\&nyEB-_i]Z1WbA#Jo' sbܓ"GP#7U JE8cEJΗ:@\=z>ě[j&u1FfFUO{p=m|;؁0v!eT4CF4f-F}]掹HgtvpM/j ʁ#욆űqZ]1:wIz\ŋ6{uI;7HsV~Vc0/Rqs Ȃe Vvw1߈`Z1o n`op8f?fB!|X=nlj|c,h+t. Aҁ^k犛OVxF2F8c40i}{,If*pr[S4{F&\cNߘw&ʆ'jgL֠Nԥr820ȭ q5s(Tw[s tV32WiL>=5=lPl g;]kcrSQ,T`98Ϭ=c]g{g*G5`[4-*ut %b~ĦXh~늝!_tM A* qx 2q[ 9qh61x_WRWyW) Nq[v.%Dn͔0OgEeYLy% !I0gCtBQDΝYoc?R ƍ¨MdƏZz͸\Lmɋri[ъ2:aMR}5%74 7hd*j]z8IR!q_m]΢{|+,A)X*D^DڔQQu/wVUGj׳ۺVnЏ6jOԆۚG-33ZpAq/UMbpa&H=%qaYʔk!C0{_qSgyD E"a. Nd%mĦoUvχ7vVO(p0K%:vT Rй X-{VOr$D]ӝ/JB_SV >8!)Y+C59Wh =(RWtz1guY8P!K"HQ MfأܥT$=!p&ئ3&Rn2PM)\'i$豭!VƬOyKkKFޗ>g`n\AQ z^͢`P8rr3mO:էPKs5]aT ,ZP=2,*yXPgEp[j$z/{!qT_nnjx'|[wt5CЂqN/1|xl[Þ%ˤ mĞ͉7QKΠ^Kk#T t>rgUcr BXg-W|5KBػlW[;4FqY`*#HbP1:<],xNcNLu(P۱hZ?m%N!PB6s6`#סJ|8PD  8`sXQH|.>U1$kHT؟ǞTXDX'4{\Uuuc3?l8 Xr4Zv>%:&+۸4M K6KiqM#\6!e:GOҐ@YǓb"gBdAp;⣴S_)x3_]EԄS$fK*WGϸ2/#A.];"sAS{BS1|w^?WJ( 9WȆJ8>"r*$m`bm F4)1'pBӮ=|zI ḉ3Lp7ӥ'Uƺ!q!Oܮ;1(3l྾-$V>2:Е >:<ydYYibQ澅UocU}ц;*~H?U徒n*.N7ĀQNS&@0oʼnmDh;Ex\J2Φ6z1aQrx nj2 3A%3g鵘[ALӦ1bg;B k `j1myCʐ1$`fCqj 3çf͏C77y'3s:F~rCt U.IvSBݧЯrZ\y3OM>,p2sSr\ێ(BӔjU\$T<uT-33}+4 ;ooRCNqtg J4םk'PM.7zNg)8zqg$uv}9^LmoiBg|nV%%b6k/?3 Z^j9~ ZAv˻CԶ1DL 1ޤ'(?a]߅юE0Nid"|@ͬ6 lV@&A䊙\ZGݭ]XZwVꗐ1wW w6{wnKu]bO[H؇T7LE<'_91xAA-|~ w\fb >z6Q.~گ;Qwkw.։ov9蚈Zk4TuֻggfpE>-=}?wJr^ ܫe( se1–Wꋶ9F`qiyEm\{M{{Cm̡‰,WwKJ]4^?ذ_avҲo(bE,˓͈zz?q7`}>0 Δf))$ .?`1/1+rRfE'=AP,?|ߔoxFVt1K&88H4>'QFc>'Zk&6\U!J! YJt7<# J{%nbVRbI^zBSS|?iX!PT^mmJM~'3jmPxiQ h5srAʪ^Чevͫ8r-6qVo/X15׹`}ZxUY4i]-`6\w|0$/D!p$#t axbH0:!z Axn8-._!~l-Z隬I>Q]04˘َPt~(jGH8&vw'8ͮc"iJ̀e51|#i*v>[Xt{c3FXl=ݽu2x?>^`hC$Yd EbEIӗuZʻ ,Hz A{ 8:.0ds}\ȿLMu M[յ5nʫotM6)W)He*=Fus2p/H 1K^W$5pd>'s H`~?~QO S.1`ԔY?4b#d~յ{۷: vW2G=QgG#b~s„gG  ٕoq/G3Ϫ j|P.M} ΖK黱$5aگ>64|q 5n3Ը0 ˂@%B ]߁sAJjk\ByCJ)!-/n-y@JW4>..i)Ǿ\bDW4:R!0ȊLVFx(^Xm*aW6C㚵DȟK<()(!Sn\q#pO|=c{ Vgֺeq;8֗pOR<H7eH-9H徣U9IH ?3oo,bYJ{xvo6 cXvkvڌ}* mpXcf0Ku7=6П֩Z]w̝3'7Q2M3r9vg z 1 C$^@-bٓo#4nڮ#uH axN'R4ΘŔ(NyTK0'㥖W/uCYUdz܁A-URB+|o F5DK*.^pt'*i5c^k.*w @Cz;n)"H#WO-c]M5%["s̗nC4[s㶛ND{[H' H?oγٔ"6o(82Q(u'H%(L[A 8Kfdkp8sXIP ':iz$'Дo+ɪB:'t^'pM*frvEdGx9/?w 0 cVUn\Ֆ Lo ؇ϸl+Chqv VhprpqVOcHӧX.?Դnr\;6fc$4S;qHwI9{j5 QKT:_OS8pekk?}$0CI6w%"Sbs;#l$i#XR=1P8|ZlpM H/,(RHq9G .Tb~E!,xL_աB%?†"f:J:+u޻:8B.Bxq]{K=e\, Eh4$ uڎzE={gg/&7wܪbӶvjn}[ܼ@7E߮Z{|m}f٘odƄcnq6UC\[*ntz-?\Ԅ}ejJYʖ4NE!hggeW%T|d6"5p!$P-\jQdV E˴#xj[ EG)HG:ߡǗ??y% ȃw\H-&d[Y=d  %DqG£4YW#mt&vgOh"OHmc:&c݋}w{)&$u؟|n'/$m6BnJ4fAQ ?D NUFh~u'9ve^Y #gZ,2<*d4\R+n}d3+>PXoG+Aj9.\"5D̟XEIuaeoV3LM,0'w 5vC. 93|>T5R#hDSx+H'fD5_jk%u=u"%G Gz3o|]k9z):N0)SѼ{&1eH_5J|xkKQRE! bCr:U!W:rfNl"iTՖ&#W$^رz`1%6.2poέĢ1n{]sz7UB>IVv2" sQgŕ<ȌZ4*H$ʹx:PaP ue1n`rZaN-Z otiOҔ;/{ FeLRpUęLy&%1JE1>I;kc @Yn:keG=UsNy w8n IV͍BSd۵Cv=,h醼y׏=4X!v{;1ugB?^ʌK8҄beRv.NܓX(D;ʷmGa{<&˩$uoN>̦۫\[A?ؾmۏ1YyNDϳ-/(Ϣ|f⒒ ςb?i׸Q5@3J $n0!\*;J+pvӜ.ږkZ}qwl{9]1yhvCV/>$s}G;Q[kCt1Kn:QZ(*л;`K-4ƚ ?#1t[U݋xc0ؙ|䚎EkL(M?KB4 xAڞZEO?֯Ŭhy(L; ]==4L@|C~!ܤ !T oZE7q=vS:xۘZ}̽v{I7V:tf)iCl`>TJNNWx][XewBVZL&.ٵtf.3`D}*qs^Oٻ!e%)VC?m7gjGaϮob7eK;bpYym93Y$k2I h:_V¼'ðk> _Ivׄ(h^рt@cnw !&>=0@YdX5Sw-o0·˾/c5 qg{e$UwWcn_kU(cI7lle#0H]mQ>aƝ &j %6A(ܬ7-Q'DJ.ڠlX~g{iitBvLӷGz07*,vC0kOQyk, rN+B:h(EJ3);8KNMoS9yDv.X0%ERW=` {\IEwK4ZfM YLTQV=ы5$F*[d&=ho칏Wj HO#Lb3yMxe*gQ<UzTɦ+sE$T&dۓ*٧ݘ,4c ͜mu9ڍ)0]r-Õ0iJle8e8pg^Kj=Xqg;f "6oߑ{$ >T<!}E\5<#ɮ9cɴueYM}= yfkGO2DUJyL2iH P{sGeڸZ{ҖYքjU>Z7KqEyX~.sf(Eak'Y i(OD<(ͨ3' THzA@*(qBO0H%g ]ck  ={xe۸mQ3(s/<ןyi5~mΦ1A>q^xVcQ!FQ^c˒ʈW?yOZXBx_jG֚ysU߭u{ r)T9iNi\ Uv*]r$8_S9mu {{6no]1M2"%@M>S>{ZlEbo7rOTh3 ]„ŏҧKOƋEׯ#rPUHUzϹ5 MYM𽙯j,CE?x?ځk2d[is`]K-r8Ua*T>!srI0?Teb"Oug.jJ+I9KOfAvv&RoukUw-%C<\зnЩTwGp҆c&!D񄱝BJGy:2 qfs*v'83^Z46o+&{kW֕!vjxz< m#N۠܆fM6#_(f0GzxgoUmI~XߐIz+޿Ldm;Jwbn؊"7'T\3ؚԏ-DWM甾akw<<>U*PީZ{;N*F?X24^StG=ea?1Y@"rb7Nc6H6t Nv%zi4aV1L- 7#lB9*8XkqPTp(7?nWNd5]C H G_ˤ@"7r,PSNܴK`ZoɈ=ЭHﭓ Ң8QZwCu0o >^5e]#2zfmBT\ By eoZ:v[v4X J웄 h\tp &<>[,],h87S wPuֲ*Q@"~rͶM~ آ:wןnK^fnQYf+LbgklM5KjhO {ϱڝ\ZTif Ŗdw۞尰;͚d"o,Ȼ-b_ &$iޓyiUG$u.)b\Tl[R%qJ}CNW|pN[hb^b@a _fQL<0>my1K_]E>vM.ߛboOrhzY @P9gQHD/؉iî84t aKaBU([%'(BgT$LLP߯c>7xC҂<$ i좑a&"T#$F~ 22!A:߶7VЍT|FX8OIq&IWit!2%"ITKϟ?O2-<0ռ/@;l:0Z]_W(v0fsbd0YͶa3p>JjU9`|Hh#lЅs粍&XӸIۋeT)m 1 xyfF0c2hnLDl>Zltmif'șPU32Y`H)Af!9!MFec֖bƯz<:q&"dqL#&EgK:cA/ rŃ+T`Y]*V M?:|M!u<9)ցebkY!e?6h]h`@x`s̬~Q@@ MQڄdHrlUdzAPAUXYn"OHC{Q j;gú=Qy`Ĩ )oPqdG20LZ\eA4Oޅ :c0`lٕ'$C8HVP*ttn]7WLNbc% x.z(bpL.Nj1Fe~|a { ;qI+:Api5ƢңR09*`B>kDP2XXIp(^K6iYS^A(g[NGXN*gfKe9c9t)?c "(fLc&cu&? '92ae:ֽ0 -d^'vj%,8( !l%NW2x! [CAS PuJ"%).X=6t G\T7 q\-ɵ&İ9lԲF& Ag¿5ƶYVؠ[C]xlPeH qe.%KZU5;$p1uZ;EG8 Eyi@t/ng*(7_SnWٵU[j;}ޚqPAe)FTY Q?JB4hB, X]4tWhu:JQFo:-eb7uk]3+0"Z*d*l+?yM-r2#_+srP=!˵:=z0 ]!GQpPLXP`+YC,`ŵs7Y̔xPBt"WϿz$/5m-QDVbyݾS2 ??#4D ,n( D^G'?PM~k0 .$.#LsT/7bY՘H'cQƱ[ tg(m2 r7u6ہ~[6'7Z ^ŕ#fY̹-;w_Yo[ s :1ea)JxkMpuT⢩{.]Ie%UOtvtۡ95hzzDI::z!.囪UIx3xgс>kV*rrviS Fp[ݫ_`kjýٺ4;vsQr)e}%чb"4Ǒh8Ock_q8;:g^O+ru8̍0$7:dzrO9}Pw9tnyqP/'Ǧ-XQ] զ v#]ޘspVCΞ-;!G57>L./˫{IvygC"΁g=SdG*44'6w1*^3v],mRh~y"zkU_l?PKyVS]TZm&pip/_vendor/html5lib/_trie/__init__.py5A 0 }E,_x)S;(utUcIt;(ڜPl^1ŴU{"zlI6ۙT*{ǐ?\(>57PKyVS灦#pip/_vendor/html5lib/_trie/_base.pySKk0W MRXC ҐCn!j%3#'kJ{%˛>Bu1k;R'̮@mP{y3lw-Jk,Da% o-6!byKuqDV74wu*9ULcM,5RMZ1BFjO"c]5Ɓ F+ٯÉ)k\XUmqhmHDkC* q5J4zÐjƧp7s8U0eH_rP݄m˿ǘ[2Ae\?=K#6'dԣ'wE63L=^$Gֻ rëqʤRQ;/pw0_Vԅ܈T&O5?}WiYh;E^79ԁT1uE|nPKyVSKOn pip/_vendor/html5lib/_trie/py.pyUn0+>Q :E{ɷ hi/JI%wEN@Q,pf9[gO eۇޡ@κ񻀆ɓ5j۠)6RtԕMc]<<^;ƲyÌ_Rc&q_,jŴem [иcٙւQEcu[W/".X4s։ݽ+{#wyviJI7_g؈Ma#\:K&D.f ')jk\G%&rL܌XL0;-:#!b9v8ó& /; X&fpݮ:kJT̞rIjwɖxDV%rsrY(_1=$b]FU >meF JFpe"BFrd^voGIb/Ĝ=ȜHRSV3^<Fl dLoZpߔk t#0-srSy#3 #fۘ)ֳ\ ȶ>ef[Ú[)W>*uY/V>GbG o7r4vWbnZFCȃSA gW3^U1/<5_ P ^j{Raz5\M-=PW][wXQ9j[x?=ܞDT^f w7B9oP%-/PKyVS"ĕ$pip/_vendor/html5lib/filters/base.pyeA 0 ~ >k!G*U,CL1toՎB[_UR5k^`+K^f&6*>s.$ ON͙d}Qi'P%POrc7Vq3<6w2oV~?ѷFJ_u_PKyVS? 3pip/_vendor/html5lib/filters/inject_meta_charset.pyVr0:Ì&I'2bԀDВԓɿW+d 6&NݷV*X5DE*d^F)KēB)UQ.*kK cq<ϋs5 ݬهs 1j\47~, eR.@8 (АSU]0e O!W.zQGЌ;n^qΫs3Lq,v7!͓`F ; [Sz;kA[|8NFKSTJ6>:JU-=(aPt[9\R3HKbd|z=:C ocl 1ճY>23(q ʜ~r}ΞfX|[!׌(C,#xS+D.W  ) t hNk9 73SB0{V mElҲ'n&'.Iq𞂻= ^Nm5Bֽobxx @_nSSǻ o0]2Z1\"PwpU]4~ͰȿOUqϼ9CJ:BjX ygؙtX:sa:&I伟ףӭNk*~y^d!!ǝv֌&G.J<K@bКWy}ဦ&mnV2R#uن٦xD9}W87`rl:? 6xIO{CScͽPKyVSdl;$pip/_vendor/html5lib/filters/lint.pyVj0S ~@.FBanJpUjK$F}G(Zn"Kt2 㬲8QJ[FŸC*JΡ"Q)ƹyn s(etdkKdv[bڃnي%ҚPM4sxV"]X oxkZ&}~(!,$i#tEz~/ɲPyҀZ+ .ٜ6?9h. >2%> ZI?Ō"q̳9Ug%(TFG66DNϾ0UIt*`;we<;Wk`#SO&m OlVb)KNgt6zFֺPMi?f=Xbih5>\92U>Ӱ n9+=uoWcDTE 'ҽg$t6HY=E]ԅ8دh"uwM L uk/"2YY/mCqm<,Rn-Xj^O+.?!xJ]kz3RO0F=Rhn9Έ3QM gydu S<)\$)[zP;f _6jZ\BscaASĨ;}OR4/W˷""+m(`+0OPKyVSu*\),pip/_vendor/html5lib/filters/optionaltags.pyYK6`ր"IC(CC40h^ DwߙdQeKwCHc87xUɖ\.Y^n*vV.sD~\U)Uy\f<7&+1c^-[l6K^Y~g1ɬ.+fj%䚙"b]c}v9{wJJls Ft&[6xk[nX,Re!v\:F)Pq2 q0r[.C3A)Z̙ޝ fB:wlrm?Yߢ@v[37t9$Sn 7<*^ 2'nw,|?TbPD<$T! }sL) 3G˶v#9Wnw'фFqƖEҕblb Yl%*sk v\ɫW^˟20rm:Z[o1 cQ5c9S(q=zAxeOt =㛵* 0Zn-](79*q%%X#b؋LwZj>];Buyk >kW 79tp͈A f~ 8#i=F ֺdYDfm>Iɂf~1fl$U5AVJ.CF02C$TҜnPd<\!syq{׫o]YunZYu~xħSz>uOv(rɔڷ+FhI cP:9{cAPXaҸHT&ܚ[xBlL3` H(8+ Xy+Ms, EJy$Q#cAR",=bASi)>. 0N-0%ƃ=7$<>؋Y0R4[KX(=㊸f`]=H+4EřG"GpX<ze%x!a$nԃe^EXe"Acl8|l)[O={'<ʼnGEGn~=rsh̖>9tkH%c5!>(|^O\όccR~} D^r=zx}% }:\쩭X!S?TdaJ dO #IKqICD1:'l&,hApVj-)=(_98;g~]+prHH;/>IwJFk:plT͏3l:XIDkG 8Hz YJOmQT@cJY<=ğA Y39En"5HB(_ъ"(V<R^0aQ?--)gEd6AnPfqI(%?>)#d~nYqRE5CS3P6âvB3h=C(uoj-*3 QМZV~Ool`3Oz5, yi,VYnAX l0K[*[ea;, trvl}1R IۭutcmQ@1k0gi0V:T`TQERӵ  V.nxx˝Yjװ)gtQ[;; ؀͡K+x%\D7²% Lx f 8gkgS,}d ,+\xU‘J^S<)AOCdjk'av&;5JۋuI傰3yN)QBAA)@LrGs6ˡxc*]+E `YS]`| 5&O u'.mCBD#`]BL;DoLLgr6CX"i3 T)!iFN s'9vҝe +R81LLz V"LW)BOns89q.r]c+Ē1u;[5oݑ ^`E劲K LL!=2;S]NEy3m},҈;34Cs6ltC1e/!'lԖ Z8mnT_,.\%V&2DZfң'H2d%&ixH>"_i1DO9g0)`;mJhdL. iXJX`$u(fgz:&4)<NJZi͇l?eI1ߺ^4GDzx$.\Gdivl :|`)4 ,(x\aÂGfBa!ak%QW "QyS!w!54A-\U^.3-ڍUΌ`f~"HE>(L39xWcTTJ!]8X;zYVMFpX"Qv,(uxl!);\_9ԯv 8\QyϺZMG*wC B@IyƢ!,?К[JdP8~[! .sS@p*.wfdV%K~UBFeHeLEPn6onp}%jE6(,|;-8+3H_Lx|y̑{n" R)[Jt'np|O/kj,5u{q?p hD\IA&T}Ҫ8j-5ټl׌Ub›&#h}[Fµlf-9ozCE%5 [q^-ZÝB &yf} I+Uն{ 10גɼ%[ O hJmI=LdGD#9˞ǥB^6Id}6̬rJn6ֆɩ 5Iij)ØG4M?x 軐a+ ymIAZg4mtJH `.<gdϪlt`!|;J{xHWJ3w6d[dċć^^ e3h4@QsJ$V?qyjlpŒ\S ڬMOی Y,XLWǝDAΒ>@st^7?urNs|~G!mzNB;5|^|N+ka4U1v,Hf7`ĠT`aC%nDziz ԪlM M p]m~}yX5_e-]WKTJ(W;eItx}?xdkӌ˦>~Diso|m6l˱\;lhY H_f:xEY 8l `ڀwOhRCC2%'2[} v lQCT5)MI>n:o]mӶﺼ 7yAtWZ.,Õd.+ D^Ug/ub |d^ UeD$e|lŁ " 9U0ЉۍŪm{,,I}a 6ҏV~_._\.O0Z+{%>|xwpq9.{1ls=ad:1:bxN |C7-[{?^\Zu_޾ɇ^j_mmfu7/`-SiZӇ_^meg H7@T|As/'f2~^|D"e/.V4x~ZMEX?u.ؖ`ً k|os/(W_?}xΆɵIXJQmh$8r~*m S\ʸ+Vyr5·MRkO6]4\񹧭O׶oV5YbP'Q&okc-> +s3tZu!{ M7Zqwσksu[!;:L#dHZS4pdu.δAq0뉩27&S+ߣ PK¾լYcPxBLi.WM7rǼD4C#,NM97!аVT$bH /0v?LM0!`jЂA]mv} tb 3ʼn%:ZVUv|@o-z ytc{;2'dx}V`ܣ!'8b^2X|NѭӔIբ,00S$$A~L0fuHK,NR=ڨ\Ur2x}wZ}[. Ls-p^İaXG[UNqKn[W}^5?]^EKF.5Z]52o}q~t:qwxC3^]uud1XCl!w^AtO%JqgGr/c8(̍JO%<0H `J8K#&h<%]"4B&|9qVO'GWNo_^OA06N \gTuW+9 $H0bKuW A7TpW QſqRP ڝNR-֚8дJ"rz1 m[Weps0iR2Tq,$UU:plH&`.4O X98xGJ}0R5Y3A\*U7MnÓ=zXU.s?㩱h>~ HչyM֞WF_'Wg'=_f7׻~|uw7Q4\]G':^OO&Y̱ ݣ)\Ͱax:͓3x4khdzR&:LӁ>+MSRb ҂`utm,QS<>W|\^ u*g+IsVywݜ߸NC>+V@c:<:En DVf?T+:~:z_/ﯣyz^_VO0ݽH>s}??s(m344|b)9u r ?^þYTPKyVS`r*pip/_vendor/html5lib/filters/whitespace.pyMo0 6u@CZ,= CU,܏QFN;`:H>|I顮яd?AQzZ6ZIV(XXpB9 lv^hmZEG:- 흰!c=\彑:[Yrv7_ծ^}~EJRapSkpJEY[ο hqηF)18txGN R`O^X݂k$#ƺ1.ET}D%V$= [-uPuQvXCD>vƂ7Q'QCLq{v8.H8L|h[=a|Y+]Ik3S]n'U!܇qWz;}[sX[:~8v<:{3[ӎ覞g1| I*礒skxGf=O>KT14~E7m4vcvW/PKyVS9qZg-pip/_vendor/html5lib/treeadapters/__init__.pymQj1)l<" XhRBvw`̤IVlZfg8+U.`0‰:hGX{Yi!O%[0&DTjv Sܒe 9ݍ/_zgRHY sEJ򭤼lLՁLQz>Ɏ:_NVL`C\ARfS3i2#XQ =|9CgKxqC PKyVSR)T+pip/_vendor/html5lib/treeadapters/genshi.pyTk0~_qhl$!Qm9jKF}:N8-}X}J$ymjŒxYIe>iYԆ%9RP ʌ%7LB{^6LRȷ5-Y(*h !Z/CFv_,ǯyȤQ♩`]GAQY5Pw9܌=430D5j,ŋMkF1˔3`7R;w..7췁9bw%z{fq=UB|GDⳐdqMB w"Ҫb"[5 4oqCgEVOɅ -&o UfKzTVQ UҘ \(ȟ;&¾~M暽jw7Qip|~/`}k5Ė#-jb-ķXqPȩ}ܚ kcdS%BjۖD"C_+ 4`/QB%\{T!7({-/e5 $꧂wz:>i\3K~+5rf@ L~nFPKyVSiD(pip/_vendor/html5lib/treeadapters/sax.pyUM0W :CC!-`8Q#KFYJ{GAaHJmMEQwX Xy, *yNAei*,hrب܉cNEQ=A{o3aKӪ1>KڻHZ4V.Z<h[pX(S  fkE - T.I hz@+qp5'>7$"R1*zGNJI8K~Rr@) o 6,ݎN㼁a؂!zhHm~3r.(`a'>rM5$9I{t jb/@_/e˛=?6!i/NN޷԰ 0Q, C:ti8(^M6˹n^t?k0:9Q/Ll|K,]}ݏ[\JA]}|!gWե(쟢÷ +Jz]8~61Ֆ1b~n4M(V87Ipxv #8г6/z5cLP=); ,V\P?}*@zG͟t6 V4ͪ,#q,+N@tG\>A&2 <&JWHK,`x Ŷ 695;O9ȇt'3>\ÕݺO菃[fJI&/Iw4uTڨI3 r Ej$2?Ȝ/4LZ 89UNOV0i<߇nh :vze1D J,] }tOpTmO{kKlRs tC3?6Ta?{1Cfc~}ׯ_ke ]M]ju.>tK ܸ%,!R)Liul|uƶ(zߐ+m.OIL]赁}pLL5PN0 |wnA!~M82YFXҾԚLt;Ir[o%f>f0p|C3lf!Xs(h::ߩ }dvY_:O4TpXq%ߠrpdaRW>5xsZ_f'^o5>h8)pip/_vendor/html5lib/treebuilders/base.pyko 87P]qKZM$F{5%Z*Kn53CrRCQq]r^7Fm5m#nolUcӪjߧl!K-U=em-K4>["EPMLj.+RhDj+ճJl<2*qYkјQ[^ }v]lÛь7I'l5}L,JÄa׻V =CFm#UÖpc#Fo '8{A 9{jT%\[x1 Efn2e@dJGw1~rͦL͓)T3aj䠜Ci U$阬vm&EPKsf5FB8Wq gggeŵXUR5΃ lu* ip!`v ,90Fp#a:^x32F74RrBiքvzypf,hv$``jI;˶UC6vKol7$8qU+(v[I?>zKV㱰h c/[y%;O#T#g(` x4fYepf*m٦ղ.XU"(捬L cx@BpMy-T W|2^s^fw ,; $n6S@{q1GlTd==O{htjOdrS Oؔ`vrS<6zF~C-4ILB6t=i3dOQ#BM "qGVm3 :)x4 yplZųQMO~]pçZѢZs!SUZ'xGpM҆7dLcS," bCDeCB3?w{ղr6_#!@$KH>8N>&KwUSP/Pq˸ՂFz5Z?щw4ygU9\VתK)|~ymse6jڐLْ1eh;{_\ ]i{񼫇}-8FO|/w-aCfl*K>:]f72ɯTP:8zP7|ttX52-Mę Tmc(Zz>]fGFH8me^v\3٣Gݮ}Sfɓ'>PH}y`q;l0idi5%΂-,Xz0Mz)~dj- !v_bꕒ؟β?%ZzKIOC):`K)*ԙ+aaH(|Erv؏gGwrMIl*կ(7pZT(10ԍ3"ݾXԒ."J.+2ܮ}Gc 5Фߏ=oΒkkw 7Fj)9DOĄ @ܵ Yck\T;pqzYNP4iw"Ok8)-1[4еUӖkH<U jn+]`96b.!(R&VU I*{ioP+VO38x=#xSIm; Az0rT1?}&jH&\ "ye]Qm86@D_e{Q~18ƿ0ҍflM銯F ~{pD#^pk݁q駎 nYh]݅㰳 k6A hs&[O8 @>QWkQ;B0;aCRxai S&D0I,otBBKuQQb܏kBUY.KhS)ykoM i5Vn&uG:bCNns&`+SYSZ)f[Q;3*l.>\נmEQ[ %k#{m*Y^.IH!لQ\w"(fSv\?=ki-YԢzųxY asgDAfkG.KKcoo]z47l=:h`Њ8y|crHþ;x#QjQtFz7\۱ y@~^":7Ɨ6_uIs/ō^}o";ɇqp|9VxYV@tDi ӷleTi0/S+!1qXys<ܰaLsVnCe=X>r022ѡ^ǿΨ&# Vl W^Ќ–Ν`M0&x'O*D*e'Cz0cU<ZK_x+73{2YGq](Mt7Kw06O$nErUFf5R )8 :}!MI(kɳsA**RiqY '%ܶ |`6O"{,NIgS!$O<@5}8 :١گ\)V62a nIHte}N;ه3l33W1S륯E +$6|݆Vdv8ٔT1.F/MKK9Fu(Da6yJ֑ øL#^xpKlH8$Y+uh= G.=[0Pzm.5C4NQ1H2-Vr%H$;hO3Lf9d~aZ7s/ ֋J.ؒ@K>m THHi^/86Nʑ9t@a" )hH]r ` -z'LE%#C1by#oPD\Z*X\_䦘Ʒ '!-=SPKyVSP"(pip/_vendor/html5lib/treebuilders/dom.py]o6ݿUD^ˀ`)&VlI6HtU&Ij[̈Z2`qə4DWqF:Ei){ިVNjEN z(ȊsN[u::A݉ :2Q#- XČ$-`7q !&C%I+ #ob7ateڪPh6AhÄ.4DF7N )#`~ީ,HR022sT%ϫ߲`NN٤,S/TH@W7ĒF  1J¹Bl]{c:ɝI#P\{9)/QO`Du2 /2rOKػܥmŰ5&.6c&h]˧2(z,ȨAK%q1){P69)XIPi=;dym9N;jr"ŵ%ူKcAv:_,&h,23):&A֫ŶKW{y54PXd_j-jW,=vۢ [a\MIVY'##[YPL>5k~JIh;YA NffnkRUW%®z3ev< h%5k+m.!sn2p͛9CqFax.)E&ǚkGW~~>~!b"ıʴVybMSIi^/ƣrv{P-Nlt6+2C,*,{a!R#ǂ k̈́eK1( w7=_G.nk$[@X'gcHx*ap&QdI[ў:5bH[7Z@c ?5* w$2LuT /9Wy;L*Å߁},ZWS1kӏgʪ*885ޕىȝ7ǭ;hjwrvu!^;;Z7p % ˤizchJ92JhjWføA3Vx5i2q)a}?UL'PKyVSMЇR $2*pip/_vendor/html5lib/treebuilders/etree.pyn6}aD4A@ [H` h3FDij$4'ݗֲt7˦ڠ$Ynٶ!IM]5 GZ[F{|Ӽ*#-HR4Tdoǂ,b$e$;iJ(͖Kq#eV51͟4+FX5ԓ(߫DZ~)QgI@rS/Ҫ  Q 55HeyѾTٶ W8eUW?f3WICVF n aGxۗ/argYFhE]Cm^d / !%㏮73a(\<va/;hzf<uf9-02䦎oJ ~qu$/s$!%2&:C.no"=pDJhe0wx ,:ϻZsZ^"?!ۂL}f"x CX"aEnj7҈\\5*=IJ+Ҏqc  D/2Q?NSS&ⷶ;Up(a7c(PW!K!ш\nq$QQоVAѮI& |c!ϟJohNC2YV"L2GkGXEA X퐊n8dIw^8-n^5Sbh6%4AJa g!&PT;Xe=J$7`0-@yx(Z!wsp˪A}vB( ɥtἯR @p~1ݿ0 C +OsvFl;Khk햅~:d_j)[\Ɩw| & bbS%rTs̷*<e I@x(GaFgǪ*BX4*Hi;Ẇ[@UmTb:X Ϸ⹧WqWBDV}GLHV 2w(I_(xsJӥ]hg2Ocf˧{U >{ V c*=yL'Mg{~K{l]nN%wUճi5>yzAS^g߽{qy0֝)fl9S\T}*~0L' t,~WBPbaoIcotm+S8~e㬡;d 7۵ZΛSbbC.]v՟O73'e&EoҴrT:1‹DY+vWoӕv#̚ hZ#kƹgu'WF)`:t :u)Et:+4 ]!)ӹYbzΕ>GI'k 9z^P8Gi,=>ei& tYcwrK׷dӇc>rp_-L7* :aďߝ?;;7!1BxcPmHuGO^O8Z9Ni[ fo}`=#s;8 @ vDv4xTۚ|ݐe.&X>]I6(D~9koL:;nNl?<  @/5W_ l IOAoS-K;JOlZ5PD)]bc0: 5CvN(Pt8FU:URJ+j|*_U^l+1] gw\rKIv~oIC6H/_sβIJK#<}z늼`g[u`s%ބi-}ﯙc!~dcWg?~|+:wrՕGlZ旿^;$QSݭ:|K(U%n 7sSƬ\yoZs90VH!v668q6I.m'v`ͧ ѶX=1Z ێȉI8 2՜ʅ hG&y0Jz s`*˃~ĘBOK[d{snqƠrr6Y~Ȟ-D"!Ƭ]|OXۢrz79^BG=\~'|kH/:ÒϻvonV=3>YlY!ě/B/PKyVS9/pip/_vendor/html5lib/treebuilders/etree_lxml.pyks~BGT"3Cgfl_s4q]DBcT >5.$칖3b_]. ޕi3*+›ꬸ#&X]1-+Z"r ﳔQf.Ild=)WbjA졝ےl9yu0 *z5M9Lg$ix]nنtִ&ˊ{d#cr%WiXp`LMz(&l+'#?eI !Ve$Y &V%&k& E0Z2mA&)JN&A&ZbITsmPrNkV@L LV,WMT,I$t˼Y,4{xVsYR,γU4#i)H!k,=I8LGI+@ G0 ]&wMD`ɥ. CUS\5O)]WM8c; GҳmVep9YfN\L@&ϯ\W .77[p0=_gl2QV)ɗa@y"4rN8\jɕH ,+:C\Xl02ls `p@\5 ihXæLP}Y8L=I V .V#.ta txVG:)|$4- & Yu VJWM R![ʁeU m@idj돬hUAjgŪ~ *n(4GB/y )_+K t C@^HHԐ7[֔Ӻ:#p }8T.,>G d`P=DҬ(Uz`@W'@"լ*h~~}ާkY ۖw~܉='Ә׸_|v9!DVXsvDc>IȖJ}4Cyy瘣` ϔL$L!/fsY p P~ט}/+@[aaCrS99]{PsԞrp-HD.`.[ z# a"9 Q(M7ѴnNobA^E0aVR]IrÃ܉pgm|1"=*̖lB~#aEn5`j}Ir]b|SsZ7N:lSKK#Acu Ue 뛋X=vVf/?)u뭶1Gxܷ+߉&{N:zy8;av&m̖LH@-ʻ|ϋ 3\>S1`tFٳBaGD=vv0{|R1灇I~h`Zoְr3]X C avufRtR f),Rѩkκ]Wmc|DD܀#. o4C$SC5'_,::L9XC=bapG'2ZqQvGZ&!#nJLLX U=]mUybョIJVׅѯ&wof 3] .b\U /8Cbt6*EKu/;T=󞌪{١\Wm:%Fmg7&}Iɪ{{(3'uv0<:RYsv$zݭ16ysv^O)jۯsC7?q]}^f?i@o2<6ij$<S@K{l0 hF}S~z}?rT@(wΊɘjQ0sT.f𜱍|FzQhaT.:=܊j#7ϖ^,,wM$[i/͝!͈ :v%u^p58{,[>Z9ezufBzT~r1>w(JJ Hk96[`b狝9`gkZϲC _C-x'6;( j}^%ê͡էV*B`[+zY]Y |́x|hu2ٛXh*(?L8W7ՃD/cYC:`~S\~QgFE^s_Ҙ AV 󜥑,/L4\̣>ԼJ\伤l{W?"*?dn:s@wsi|zQJa9¾D{ +C7/NaL-\噼9%^" U! {Eţ [;Nnxg ~2<3rANEWS90| zq%u(2-̙=WSBZoW +؄CAd?MdT_pjL4D5rvlC2p`%X)3ħ7j%@rc*ˏǟ~yoWWW>~֐Rb`Ka刼۱`Kv2rXhT* 3Y/y]eLVf. b<\ F',mQ \+/um2Z @aоT 䢇4h^Ay?}5Z 0' εL3Jڅmy-֏-$Ni6DBiL![>_ѩ1!=*k=m36A0PKyVSvjW,pip/_vendor/html5lib/treewalkers/__init__.pyXߏ6 ~_8`c(ak5:\@g+Y,Ҭ>Ro;wI$#E~ab-% R9Bs]\Y8Tlv\ղ׆C#x; o<V3ˁ!Ñϝ; ?=evOU:i&yJuu'<DDnwЏX{rT lb`}|)S$p܋x0FK|w 1Lqx2VC50 mSl#bo)^w NF:Ҕy3QMa4v·vA`nM)Y euׯYY\—A t"\aPǔQG,gNk'x*޳\¸*pvwv&"cn`l G9RA8:B e0-Š{>;4z(udA"C4\ ?rP՛_{AhKO Y3mX i̤8BblY!:(}TTG|n8{B[dtc+6o2+Ru㙽@?!Vʺ'l~Nj9Хι">&OL WFטJ0 8F5@uMAV7(<ڄ1SN6\6HyUݱ,sX/)^~e˒-Rvv{hRq7Zq^b^2vݐ|(÷#FE} Dr޵} >|X7A?{9}D# qo;_,Oi/2Njb񫓋.~J^ }&݄wa¿=Yq_=qQjCmvL|N -oC;D 4]2ϭI7Cwدp-* %̲p=ir C |/礳*Mcצ;H՛?{yfxT'p훷;ʩՃbSf-*@6+,MԾ7Gn% &h+>KG·C@Xw!@֍ \ R442?ou<6~2/B<hҵX%K7éSP?%)XR G["^+>uo:MAj|sM NǧD(Cjd%C39yԠ58F1\P@h@+o3 *#S0\ngtO1QM>u{I⌨؛jm u/л)=a<00UOzJ>{O>NdLjyϷ7~H/BY"6I/P1eNrRjũH u2Vc 2߰6G0RyGy%u[37lӻc|u?1<-Y90{]XgvHPKyVS!-B4(pip/_vendor/html5lib/treewalkers/base.pyn6]_W",mNѸ iȒ!QI"sxHż*Kd>_|Nvfeƅ`s5Ɉ ӈc.XFVH6G LDma&"7 ݲ|GCmʣI̶ GDnhFCs 1.N?Lgx_rivbvO/ޙ!>ŧ?HO4aL ,ڹ<$Af>^M<-NcJiqVfCO՞VƓZhrvLOW3-/)Oj;C˜9,p.P i;q9'!OD7,!L O dCo.~ Btp= ^0{$]XǞ/# QHʣԐ:^ l-)0ϦRXKhϖ̧%d(8Jow*Y4ɲ4PN|*%hRDA*c;.6R5DkB rf5݀RMa62d1M*6P(䛏N⻨Hvv'gt5-ˀ""QƒWPaX=&d]\{@YR8/^@g !![T)O` |Y. 5dKmdCR&`[SXjBZ̮kCʁaMZQ2*B͢-i^Q@&4Jkiɇr8XJ"*?L) x F82/;#\jyUߡOk$`84PU$t]_h˪k Y2`_6(ˊ6&vہPO`]`"͂\FNK`Uy4bQc =],%z\~Wn9999!9݈m[̗DA>^R8uj uk8w \2ڇ/E.HW/GVuu=l<G x,4 ]i}+A@pZLA⃇Xe\&J1y>'Oog/O'r o0z)W-8~\Wd"-qC5{yаWA̒#"5| -"VwyYm>ԅWL:9pdVR ~Cr|$U\tGSzJUѧ)^SEX*3ZGeCm[3EjkK}ݰ l&`kH fed(3tŽeVa: mF$AZoiQ$7Iz5҈U ԿѰJ^vk%jP5rqn [㚙A4"Xb_ЯK`clpAa]3/ Y)Hb)w|#Oȓ)h]?~OKW7po?>Ck\&@ҐhS Ɇ(v(bG\g$f1OtA.#o C3ǔ2ijK~`)4mY6Ӣ`{ڧ)ƨF$pa8 SbKQ&Xsm-9 8mdON~]Γ뫫9e ]D/Co=X ѦSx?>~$DµiS_շRYEQr}8J2=?02踁{uN<#n^C;&:[ث(vҾoMƊy8b;H8T̚1AW{Tퟪn /H?<ܥ>e]C!|CDE7 xK briwGjQCDg iMJ9Nؘ PzVkl=Ixu9싯b&؞u j>%ay5i״%bJyER3 ⹞`)I#!q,֭^^7Wt--ls] nt.͉Jr)!w]UL%CW},!@=`/.` x0+3? !B snF]Wtװc U[apUhI)MSZLE I̥@uEg䥚JpCr񴜻)om3JViͽ-l߿q9TPak<:#a{:qD(nӑ𾝞1l@=[{5=0}oo%E4oFПoWx-?O$6DK7ogY3B39'R_f== 6f6+و/)"a,R(B`i>7dGJzi@E02[Gz)}NsX]>\^w-w9}./ٌ 8i \D}9]snM@rvynBm]wj(ym_Pz'Q<{:g2V~R8*xJXQl^.Be Wo;yGLtl|M={D RbITy2T@IN'PKyVSxQpip/_vendor/idna/__init__.pyuN0Ř総WZc+J[HMT8bOO,ԲDjբW};`#A$Ff7VPGyɍO`CEwI< 4rڔ7kplٯJnp^<]@ͪnc1LDѴN)E/ȒX6\`L)NgU5F{~zQ4Lk8q=wҳ(J202@.bm#.ABS->ʠ΀Ks*8'uؑR%Ko &KaI}⼪ՒĻNӨO-cM$F > Y@v$?6Mߚ8Q`#dWrp0qT{E ]D<9`7fPqY/ftJiU ׍&T`6MÂ&a!?usrz=g@J=[(BW]G6 VҀAQB=&{ͯ[aGo:2< PC\iPQ$ÊXyFFnvx]S:,EMrτLh ۄn}t(]Q b8(b$NwkFK41x!HJ@|0 TQp\Sa7d20}<`꧶M!MQUf7$bU tfhfLLӪs{nw k*OGb:p%fП O!]󒸁?Py'޳*vj>B+½_/\~<$~PKyVS-hpip/_vendor/idna/compat.py]10 ևI]\I۫p9~{hA-~jX, EZl&c +p%T-vp꼯ҙ;t~BUWIPB44}F(_ʕ -gDLT8A0q}qb7bltI=po@X  Yj~PKyVSTA: 2pip/_vendor/idna/core.pyko87  mn6--ӎYґRWnq=# g\tE$Ze)I4O洣g`a^>IsfNଳ@C%$J}.j JrN%r`INәF( fQ aL gIgJc:c4l,O3ՄMi.+"b Ɵ}.sX ~&AQ߼|w?*Xw!#ϩ`݇LD)'4>K`YLs6'Og1[ \)!dcz#l {Yṻf haqЃ& w+P6Is"hEQ&4XطJ<czP"P2H$H!E{jf[aϯl[ DDق 3-;%]@#_[nxq}ON8 8=dbպz&~8"h\(k$KHxM9 sƑWZ0s2hvAJ{ORi݃4W 8Z׆p 2Rn穾Iz-op5wۭj&ʡơ ]8$H]꣥2khy:/@Z/RFHĊGnC=Qn=)d0b啃xPQGz)h6+r(M׳+qǻSK-V,Us/Ic*ͼ C%?(>^}8u p堼nIq/oUrRZ( שl*/Rg $jkIUi]%y'o~xӭB|@דu6/DI4v&CֆW̶8l6\*˕R^p8qD$^-}6chzT7Lm^[2ďgҚS "F&!obܭBp+ 44VsUVIsjNk+oR-6tj#BG֞(YN-(UW.Q>AVl3zL^ؐ`,w# Gc5wahsq̺&Ɠ|(DGP 7j{X/7UN"sFFܚQ&\*0e[xU,YTMEIKMicˆs(2Zb*Ѽ,\H4/hf/A ~j%+:e#/Rnn\-=7Ԗw =g.sPKyVSv2o#npip/_vendor/idna/idnadata.py}K%7^/qMa~Ec0;!vyd!4f^U#i1< ?Oק]e|~YS_~i7|Y?ӿ }7?>闟7}i??|71//@L6Ck919\\AL O&C6Od |]d7 .;<왞,uLwtG}> nBOе]^ܞޏ|!LosY }j~Yn-Oɣ'K߄x*J͏b Ksw*?+ÜKW4 E#3ʉU3fB_L?K/<7CO'`:\؜_m;ܟh;K2UcLe[ nK`r<'lWT" bzqޖ|]NdE,>~֗Կejjjjj}#|\<F&fpkƭƭ7.:2!PW!r5q oh\e~7T/Uǭod~#Jod~3cTx dwNUcTsa̅Ǩ f;Xy*Q1~w;y|';d$sn,~#xMcTQu4do3W W+WW{\\\]~]̯g~=W3W W_߸ո[_ u%N# 'p 'p 'p 'p 'U2$N\eeH,&73of~3f73!g72d=c)/;0@0Y؁,@v ;2=/{fS_̦/%9Ys&kdINdIN֜ɚ3Nw2b~.w1]b~n!K N ^ *=P)=SBWPTKq a~,,97AulEEJPKFWAګ_xE_D%$%d(*iJ'S*h*S`fJJP`l)fuO ׺>/19JJJHJJ(JJhJ0%t% %L%,%+6ݥSy8Sy8Sy8Sy8Sy8Sy8Sy8Wyxzz>}l}`k`%n#7nL#Fx7Fz#^oz#{^od7덬Y#9"Gx߱waPXwn~"|P]7XI#+?ƊG6~$ƢG j sSbbncn>Z"67"Ȏvюp#;DcƸ #р؁3ܝqwwgܘwbgىpcgȜAL '&g +ȍrgmV{J&`yv`@y'1Dw"Nļyމw⒳睈y'1Dw"Nļyމw";Ny'bމ<䣈(t&&7pߌKK+R%byTITIX$^$,U/U** KKJJR%R%axTITIX$^$,U/U** KKJJR%R%axTITIX$^$,U/U** KKJJR%R%axTITIMLax- 66M}V`re2 \#Iv229!&|,r.4 dxJMos2̋$י2[|rᗻDb`VxFU(ؓWeѐWe yU>`ȼVVy,+&sCxᑍv jڰMlSٰSxur`2ƮE7! BaBo<<$<Hx2=0$Į#Xs$*Y7O\?dQL>OV  1Y!&bL!l}&9䑟>ypb 1 {[M&K|1&L -9%x;y'>NC]˅r-%}Ż[ A ;ȤU8ygCyݼpވCerY:9ovXo@w;)8"fFqug2w68¸ p9nrjP͛C^y#r792-m,x7o2`#7+2VODOC0xI>FmPO%;PD֋]K? HG@&_{dj -<#t\Jք~].ѿ؍Cb~.!>{;4{2cqݐ#Qgz\#3tǽpvx9tg+;7ϗ2d^K i<_v)1gBݥ5_lxH\㙘w)gd~lX%a&%r/ إ__~IpX%ay_r~IrX%ay]%aA /+%bwђh?~jE?؟_]ZO=KJ/~J/ +dP,\%]~ɡXӖ m-V~IX%beD_2)V~IXKr)V~%S2P _Eyma_bCc[ o*W__U Y_ o~sSߥv=wم>@Gnؽ=%zOoHuk?E>~A_zw։@]%y48~.5#%^^AoB7л2 [_ڥ?KNT駢[<>2 ^@7w} >t[vo&7߀_cu4߀ & R~& M77oo߀_F.;w߁ ]w?~(?!?C%mL?)'c _Ď-C'.xGM~w2%ss]VOЙ/đg%r#}zJD];~Hy]@AK;wRҔe_{9o:CWΜ8]]p]}_-$ws_| r0I}LqYP$CIJB.˗|"3!|^(zz nB+ }_/q9 O$'? Ygς?>g? Ygς?g}Kᫀ* _|Iq _|U᫂*|UU $9Wo7M7o o `g﬜/VȮУY~&} ȿ3q_pSBK 8p3"hk*C8a,[w!JrsUh ]nBF|a'W=N^ M4)/U݄UV*a^zU93!D43#7  v5fn$~pt7IfK :,&D4Hr*wf wFPv|N@J sշ4u_h3lBCi1KMbhǙإv؛ΛPд-3 b?OW>y ܄s8^Ԋ^gUڄD>$+iCOI0: 0ݥX8 zhP]J0Sj%.MΘOcCC׆ GBSwh`M(hhTUᬻР]Awx}D\'tRr^#vD||'s6Y| #M|vv)~K]-&w^.ZR@8xּ_2v) 0OyMMx_9CdM@iW ]Y1K vrOT Qrغ}J/1HRj 9H_^,KŐdG&..B>I^|߹ 񖦽c2Kk)kJ|i}EipM^c$Ijk[)6d4?npAૄE\;Sj + )Y#E=]UQ_n$}4O#F [vaD/Cp 'Wgn4,҇,?Nzu&v~V0_px`uNOlq%/0Wfl!<1`PKyVS,]['pip/_vendor/idna/intranges.py}Tn0 +l1V$e. L"@\6_gqiPu=Rzlc] b5ˋzMa=Yܰ?4O (\_ޫ72Ik\Z*Kn!8C* `ŖKpFb |EY%WՉmP$ 6QV%b%MucG!8 u>-R"ԀyME\]ȸ[X7zAuRx1ki R#^bѕ{0o# nrc0(.hdݢ-c"4[hg N_aw ;"Aoqn'ޱ G-'ڔg]dn2)n-7KQym'5x<33t̀x~@>ǿ;THn{jUQxOe)R /Hc7vĬ박#-8h0n9Vfq ?ܭLAgBcPj>BG5#|Pj>§|RPh#jS- ҂X *ZPՂD jZPG4HG}OuY)sO4z.}YJW\VK_u)=!UR>LJ7\ZJ5RZ<-:۞KߖRϥz~ߕR:)BJ=Rﯤk)FJ=RmmmmmUmUcV;|e|1TcjPՎCU;j4@;ʪvR (M{iOL4#|$Dh>G0fh3L& kOW) ԂH b-hAU -iA] R-ȴZP*A]Q|5uG]Q|5uG]Q|5uG]Q|5uGMRiRiRiRiRiRiRiҚo{\q9ڧڡڡO g)%-фN!ϴ_4E C)c!Mb)'R4s`a0RO3M_#`zCg,\">҈3U7|1){ǥ )wR}))wZ}){S9*:*7|\9(KW{؇]b.IW{Rue){W8ZJ1:(PCR ^bC7XwLߒb0="`zTi٣s0=!`zR2/2.O*O*....)4u U:+.C)5|RQj>JG(5|RQj>JG|W|5/Aw\.~5OA~\Fkނ6Lr_;[Iy |{| 3Hn >| 3Hn g? ϓ$7|4 !ϓϋ$'>e-kP5Ȩ-ڮܨ-j[{&)D^o~Frh:ɍ"h&ɍ"?^?Jrlȏ\; $7|4wPd&?h'%?$d%?&$?%d$?_KG %ύ!܊5$#? [1>V!܊>!? [1>IV I>bOg|5ɠ >V UI>*$kA|5yŠ >bP M1Or&$s|O&$G &9I5Mz2Hfbf555&H>y/z:w͓!5Cj͓!5Cj͓zw7ɽ/|iҚ'^{SKp 5oKy"{KΦp'ͨT]LLݫ.yQ[j#Qj{G|ȔS~.yC$7v^zG^=76 &0t&!דNS R=R{S{SoS7K=R`RAM$~L ^# My?FHn'HnCv`µ,6FRe OGws$>"5䞁ܘ2}$1e>:Lr㭑²܄w#0)F9 o#0)# L/(~DN֤G_PxC\I$GlRAߒ#6i|HΑP6ɿ3c$7̔`\I%VifB$l I;$ז")xI;=$ז")xg#5!w6\")xOPe,SYX&4;}$7jC!xgɍڐ{Fm=Gr6 Qrwܨ ;$7|"x( =~xO$;InDY>{sO\$I;$7|")x H $9;$7|FP$\!x$y>Cy3$\0!x'ɕ!c&CN26ց»:ŻKNdBdn%d2Y0A-)H}Ę"{w-Y_"b Ź(&68G@ ybĚ4 $x^&1ltFoד7jc"""o{wfyцePT15a8? i#1"p%dxS]&JtM[D{/?~y3uQEMUTPL'H=D5 > ;~r~r五/y{o uI_ ཭$SrՍ" m'C$Rs\#9:u$lBl#A-m2:%>#眪"> gI{?sɽ{R=TWFg^=:IErn{3{I{Ih/o0{r*'"T1WBqB rQ-X,Bٽ$7{kP{vɍ;Eٽ~ .BQ .Bp8pIm"\wfCY>wO]$9{M*B|JX,(*S!6_̦-BV[ ܒ5YI?AI>3-ådYå;Y^yw+q/ɽ #+{E?Hr"*ܫ~?ɽ!W}bd>JrOI=5{?Nr7H&="{?%1{?'S6ș}:Ir29fHnNra$wMra$o$9aIBrV/+ q9FM$CHI5=ϒ\1jz'cܿHr=xĨ?@r=0Ǩz`1Oc1=̼>Ƽ> S>y 0N' 3I^"1|&Cby>g>1a~@}fډ M5NLP?vX uNL]7z$ڦ~%uwLHm*WbL]7|b2F:)ãGm?nԆyr&Fr& ?SDcnܟcVܟc>ܟ?SVdrfc<r92'=1| -1n3E71v:> g9 !D ⎱!C ]coC zn*!@ =!> ]cC z:!;(FF!!r9yH87vCr&#ܱ<$wl717MC&#<$?i717OMC&#<$?i717OMC&#v#s<$?ib'=$?i#ƨLzH~T&<$?ir61*4I18Oʤ 76\YA摟:ФI@UyEr 5zHVAFkUyZmfm%V[YG}$7jC>!h YytOT&ٔGgInDy>AytON ɣ+$7|F:D>Feg'Hψgb}(!>##gHòψyK}v>8<۟]">#-h$H* 05$7Ho"9!9%9#9'9 9$9Cl{'?_Or4b$Ar$N!vS~Mr}:R욬$:b+*&+T1AUL-R2bCÚj>̩Є[Xߗg˞UEnqB~QE7)Ĝr)_KVI`}VSd"i)CLsjLoV^署署sR̜fv0ՌtVONyrj:KXk,vBc+]Q@W7L린nu{6/S{nN3=N43sʝzfzÜБcaБ`aN3znCəOΐpғ3'4fˡ3WԧKhT/{昽6=AmfNZ㩙cBjI#=sCO΍fǜ"*~r~^G98Uf@ޖd&a973k97|3sDaX9!KM{̩@Yf>gf3ef)13(3(3(3afxms47hd4/C5j҈a=v0]...L(LVaua"G!2e ,'8an/J{K<L9}O&ڟL$̜ 4GXN{2E9E`O&vODKIdb9\L&O&H M2y0sxUo)W/! XZ5z2DbQc=`rXcuG[\Hi3,Nݼ4{Lhl O&O[ OB%ɋƶ2Ave[=ؖ SYz`ڌ6hCh%9Q0]efkCmTaFa&w,qnh 4aRC'H NdN ++M&ͤ*]MNddVМ=&'&)<;E}ʾcf0DM_4Cm81IE8Qt2̮͢X{ND\]Df :x?Jթԁ 2b$2zx5Fr |2}i;j&cNdO6齠j %3 3 @A2mAbC N#1v%$>'h.1'2&f7HL^‰ 'z'2Y ڌ(efij͔8mUm-1T[m jxݚuxmW=Ҡng~f=6Tw'ԫպ5҉L[mn݂ ;68V:1'QIjhjyj6o1HZZ;ņFK}1+ LA#2f#2g>ˀF=r4h`-~pIװa2ob{O2#olf8Nulg$NF" fd#U {IcO~Ft`OAFtbTG?##@F*s`D臍&9ňiF~0"ssgD#B?Ĉ#B?SUF~a 3"þ&Έ F~n2"sF~F1q#O0"g h6l6a#YrWc/J3 w)MLWXU~Ѽro2o*{s˽ro*Y e qccW[,9ro9jֱܓ {r=Y3g6 la`{Q&- X`3KN5փ5l%XWXT6AQ~3um/#p1Kl`D5 (x wrT1fy1<q4X8fNzta|Ƀ.1SүU/#lA[\1s F. e㶥= %vL_c9#Z=:bRu*GHTH^`1F<sBQ(UK.272˝61"P{*GJ8+,gD~$4^XS [7[ˌpԭ.F}F8eaV#J#0uk##V#0uk3#KaVFF8qaV#@s xň90{v }5`J"E(ɗًP3@8'_ f.BON\Hss$xf 3by7qb(S<jqX :9Ɖ>y0H{wȕO2.@G' 7B.ghbYq=J뉣͞'ƞٜD3〝HX{f{v! G3CB,g6;=/byp=Dg`'DHCIxj/𘽀ƒ<>_+[HӘvrBcNNjL) ֘ XW/xx/xW~?'L ~bo~?'L ~k¼_W/xx/xW~?‰5k/il+^Rl%j Wl& W'3t$=%?z =[H(GV,!Ht1gz5&sM&䦆18s[vl+SH9NDGvR/b c<hH(.3lV,͉VNna9) 6&QQf2oNL'JÌ`jD:!D:DүnONC1׹d' ,_v"a]p{M?1PbjYSzbUÜ&4D-a}NOio*ތW\SD,broU{{Tc?ui[{3ݻoU?dw=/[Xc$ ~ Y{g@j-4PkZ ZhR@j#)Knurܓkc;[ oܳ.ػ|͜;Duךz\C¶x}Lpo/e^~wU!:vxb x{0CI]}o-[,>`*{~VܲǬerV'o6{=a޳ر+Y*$SEz',7aU$62` Z?,r{,-p R=pkdA+sx'|O;]틝 xrŀ7C Ҿ׌`VlflvL]#N zoez3["Й0HX(Hc8BUsƪ9y~"ybU}bL>Wc!ۢ\~|4X)j  Z[Kʔ{7U($`^CVߔPW~k!͞/i6HZi#i6HZk#ij¾=~+'-zBI '-nNs"}ٸ 6 qNa`- Cӽ?s nteAAiTa>eJg3{IldDˈc!_ /E iϗbKKUKB23?/OЦfhR<@d_ Ģw 5).jSȨAQbMIu?\?UH}Y!FRPBk +|йJ!`g o*\V~B`kK!\!; ~U B_*B_+B*+YvNY &Q$cѫ.YGY7XǡU,ͮcls{~Zr?aֲ|J,z9˽a,z^r/XvN=f7,Sb-Η^ps?ut9F+,7c{=loٜ8_:Kg caCb{Þ87#mqlo ;PqloŒG : 4loH 65'392PNa1Ӝ\YD%;Uzq\d$2'3҉j'`Wo2Rr:FR `#PqF0:HdL&JӃ~70 3 v0 v2 v1 v3 0 2 nd3gp #VFm@?}B?NF~v1"µ@^n};ψ;8ȈC;8̈~FaTW4l Yܐ6L3bRn $^d[ kA~i*rnި m\`EUKWN#^{ trWC.'sC9ɉD drd;޾.eTCJkez}9Y)׬L7'!ģPܺ2=nݜxDC͉GN=Ďܜx6kz=9(LmBqlsQ({È.xfD W<47f!us]̎ny 2byNJez$#T|s*x>ˈ9/Nq,sf'v`v#^?sܳp\/F.s0ap7F" ܃qESTOMsc?>7h;tN;#:NZ37}' ~.cǰ~bnF+bNy 쫘 u{*bGE# Dh1R=;)ް'hnTx47]b맹%J,4wx3x4wg$JFQb^*,4d9ÊJ#AK<:EUoz9ʚK(9LGgayG 6؈P<Ͻ*k4/.}^ؿTqhaI9ɶŧbi~=r5+PM5-{۹oc%j#UaχՂ qF~{M{S`OFYXqod;b@?x\qnqq~S,]g4F`͟>-gB5ۆ]\#Nzq 5?Ȍb dG[v13  vdD觛FN6qlqF΍@?̈F~2tnccӹs'#O#.:u#E䓩3@?]g~1tg,ƠuHv2=Xܐ=X\Mu #OSq_FSqQmӪSq_mSQ#qTnFD]W]W]JGѳ(g#PLFD9Oٶ(#±gc;ˆpl;h"T\w]*;G"wqm'wD86Npll*Ã>[ õ@tPkqEIwwqAIs 'btgD8PxqaH7⺐n3e!܃U!<$ByHׄtwts/Wt0f0N$\ZtH:\nq`7 -9tkf@ҍ p/n7 6{.\6 ;ƔS!/{kWX(ERX,nU֣6*,fEaumSX*>eۮv(,Noj=?g, ?+ ^A[aߟ/) ӞNA:8/9A0;g[h>?ԜAO+C6N3 <"!眤B !bJ!75=D>a7adžzsF"P48'LChX3nF̙-Kf662*%V[C_(2 Eflp/ Nl̆q#^?.vcT16F~\ƈ׏q#^?.ZcjxHZpc z OI?ʈHlIlĆ51eFAMbC$\d\6gEÚr7Ew]8ߑ~FFD+\T^e3@khrUQj u^]`UY?HL؋ ۷2#6;Ci.blHL4wdU!X-p$&:oHLl#vW NQ p T}3F5lFP2dBRVRۚK[1 4S ̙p#*N4՚bu`qge4K iUZ^BˋW^hxkhxodkxխ^o?]#^ko< MYV#oo-vjBFpCӚo3X \A"jgϪ˻saBձ }ߌT+}V|V(>WV7͟2F^Y+i\͈W֛z5*W5 y[V.҈WzY ^)2)kMxżKkY L ] ZySVu{,ᆲ (ݗ5բ*~F!^-k{X0>FzhWi睕0RĶT(+osX]M)+_2VUB'( x_1ճF> ([il46էeTIol`DD!>>Ɖb|}ŠUF7NTÇ72ϝq̈>ƉVFA4N}Z<`\ˉr"#mm`{[sq#[€ϡ~= ˂*[r&\D{L%N$ge.Qv"aKH8Ge'6ξ\n& }|G4W;`s7#>q;8i6Fr/#t'0tt#vZ\Dۣ7 ФkX'w~*1ݚ45NdZn܀+ ?'2TO;m }_wQ@7 uܰT/iij id^O+SӮboMSst]9u߉q]Ya" wBYħL_Bdb ^ ovR"ԏ2`@V5 =8Qx1Fp.Ҷ\m'HN2sb"m;3\mL8Qx9Fp.Ҷ\mHXGDmLb#8IveFp6eDmWdDgaF~1"sы~bDgQF~gDgIF~(0Ǚ[ӷ觯觯觯觯觯觯臮!vӷo#OfF-@?}0G,ΈF~B?͈F~2"`D #B?9̈O?#B?Go 彼ǵ@s2ay##8g?#QFp?wx#8D:k[!t̀Cpd7#8n3kv.Fps/k{2}N?}6߼\<>{3?7S`}FpHi;k߼qǖ [X X )vq/#8D$[/ώ܃jl0^eaHp'b#j6Qcqe$/M>箱ԠyNju`NFG38쵇p_@Azvpme}K9 9#v7󈁚G}y]f'_!C"9m9y#9=,r=g2#CXy0;yΝ`Fl]#9=R"[Q6>\#9{)rs[yAs2g*9DY;ga܉s NV8d;67q\ U}$)vϟd/ jm T ߶QA}v{?#?=K9?`[ 6/r& [玨gnŗ"v͋%9lConXЛܷ}~@1|6̃J 6RZ06zͻA?]#ƈocˆ#mey3ASov>誾2r6'@W:H1bjF`61?޴ZuZӌ{cS?*CMN0 Q4;[Xbja0nD4N^aד㌀S-`"B P )Ubˌ)ue.XPtC{`ӽ (慫P7,BggEȡZ 4x"GnF0iR#?@XbAqX0)"APs'x"uqy-XW-wbްvmbP&-ط`ymPM.Hi R8t=` ,5ϰ`qyC sE=чv),5G@?lX_VšF< %xX?/` hK@` h'o0ԋ^@9ی`9Ɓ6\gkϧ6sw|~FtXb[bg;{C,|3v%.',vg0lK<9TKe*,L,%bG&,,lhO,>xt%;i8mK<:B1xt%KlXQ)x|8k< <>ǡT2+|u|<>8XaH`gU = @K%ek1ymV3#1u mebϮ}vX@"C&?[z}y%)3dd]uz ~Łϯ1dr(_`k x/v3u!F8̀ x8ǀ_\`ir茶823~.'P=YOR@4dȏ:h!(hvijڭ!(j=/O{gLZAA AW4]֐><‰#P2C^cH~q\C'>NOC4T_=џF9!㜆>.hCǎo3 -*,(H@}<Ȁ=dW-{L `35H}u_QbKU'7`~Td2-- Ƿ1^Ъ xkjh.^F0V 3g++V-f_`J5[ _hWlp~M!=5s<͍)e`+/[~k6T}D=9.Ag(Я7296AMc'3_e= =ŬA7 &ׄX4A5* fu-u?|M=&xC=b(jՈFxǛʗt3RHt ºT S.†T s8/ ABlj!Q~ s1ߊ~ ^s//߂t uY? H5_ H}a! V%g_ 1C~ ZYb [MMuKC׈n<5FSר~T! ^(LoP ` )=nWqoU~q LDa T@ NR HW! ^Wj<&rc" ns'\5^Ț{&f Q Зgrv΍\VU@균/=Gaӣ2L31;-=s'sFCPc 1;S.-; bTLQdf P#yCd4I'%Af 3FQQ O( 2i4DuAfG]cLQd( 2Jį3EibmAbV0z{A_:j{)l7+֓ZyzJ)]=rTOAWRO^OROβl_ j)dj1Rġ)fJ sz9POM˛*c7U4nSOFSS-SbA?~z l?KP@)X@)~* nS5D/cחkrw]_.T5m2Uu]Abm/eXS6T6QT-l>WTOI^Q=%z 6/͋=mbmOۼX6/ڞzJSbmO?%f)KۼX6/S仼)&ԾߪosWko5Dݷ[aޚ5R-BXC45D XCQ@5Dc QOs!)q5D=%Σ%Q%Q5iC_4}}!S r2ԴJZQi"s.IMD^y.U?,-`/IJ(PdReJߔÛ*POV7QwT܊뮵keaYAWCJ"`Ă cC5} 9dL X"1A,دȯ<VX҇aH.~ըX@Zi)A:]_akUhIC\0S]tWTb˘IMf.~Ϻbi3o墾vuU,* /bhOA:Id켞9*VǿI ki)Bǻ)%YIQ0h"%׊m-\u R jEZO TZ+׈R4B7?4)Ab %S5HEpeyޜ񨥾V& X .0nW,%e lE SKH}6dZ܀`Aj5و^ X0ِ $MJowV`;y#F.rīuX-P[:C"s8.yaI@^KEr)٩9{ӝ򷕷\fFW<j_.=\?O<nr'2&Qkƾr̾"Eb?`y\_X^y.+W }M3͝e@aznFB E_brrrsmhev<^!Q>!1IH̆"9PtݕbLXR<>I 5cQպ^CF}'#x!du<f'@ wg@uQg yDZQ̀X"@Lo\fqA xsJ-D0bi2eȫ2߸ŀƀ(k#@P( { 1 g@dB 78 bD;[)rU) ˸be6?~˽koX`?#˽O,Q̿}_bܾr3,,w,!߳0@r2ܛOr,1bc{+O,܇5{{{ =>!,Sx\>Ro,d,d̗X(zx*˽_c,z~^ϫX?cwVoOIW5,l-˽?~(4x^?g;,z~u,_+{roX-}?}?YBcw4h-:ZܢŶ=qqqqqqPi*-:@EҢTZtJPi*-:@Eh(Yr:K?͇Ö(ࠡ*ra[\F&f:b !~*O3\eYFl?rwGP[DĈ?~:|p*w=13t1;Ɉ{t?#bDS: ~zav^.v]uaܷؿՅ~ׅ~ׅ~.1"..ý.FD?4&I\H. hTLu3R3L fLu򀀊NvMuZd@Jf_dY1⫄K$+SL臝a&uw6(:72tk̈́~صfB?eB?P2.)SP2չs#O'[d CT{'LuqTT-Luq.h\ש.u*uS]ϱuvNuq?ϭseF+s.w\<r-`|.> v&[b?ؤ-[.pdCb#؞y 6N @a4KCYst;+6Nwsgž]x˱_ۗtǍ+z>2-p7^lrU{F'QDQyMf2˟`P, /[𜪅p@|@obê9^;Uvs3ۯFsve_%*UVr_il32rY\#?ep9h{G@L=s׊@)*Wʉ}aQ6Y.nݸׁroh$ļ֗qKGݬ'de=~ bZ!%,Y_`-K\%3Z)+J,˾w^#<ϛ'r풋k5K^J䥌G.kɜWd~=~Wb}ѓ[DE\eODhEsXC&P.p9k@9!^\*Y e]v&GV~e*Lr~AeZwZBYu3EA]~x'@Oά'+捕k ʵCysÄys#ys)¼Q¼4a\ga\g8a\ga\g$a\ga\g4a\gFNn3%̏Ya~a~.a~. a~a~a~k6'̏-&̏a~ Dea~V w0?~w0?~0?~ݵ a~&ǫA`}PvUDXOT\{E:%夦Sr|n\x&𼻻'\ww]*7r~(,d9nky_;^ߐlIOmh1OihY(JeŝkV닸EFQ*9Z_r_x{V@g>m~;&c^ C31mɸǙOkq&yK('(yŵXEqqo&s5kJz9Hx5$IJ$pDhk{{MQ"FsMsC<xJ&Obbe@|@KmU߈&׷?/'v5Rk?0[@7l/6_+E{MÖVΓkws_H-e|S9R{E3.]OXa= a"a 3v0aSvæ =a' <$a"ӄ56J?~g7K#̏9'̏uyg޳C٩ϓKT?' yr0'W yr0' yr0'7X 59ȥn^:d{MԷ\59ȣFrȥ^y.}Gƙ<0r@{My!as-P`:'GE!yߣϢϢ%/Rs  0Saw ߣbuUvyTI1y*h]mF%Ǩ{Ik?Qahs9gfs=Q%Fa\wy^֗o:G=(}is4\/+eD?> UI?ԯoel][r-Lw;E2k"N5Bv5["m!CMm)c[o(l)ק5vKrX75.鉓 <a&,H%¬-z a!,U KXax}*{@Xa kJ\z+{O2M>;o9eYEүeaxCfO尬w8ٿ&{7Q', pSB+nfo8;?8FGu {\<@ǏxD pO\@Lė1] & DDD(DDhDDDHDDD(DDhDDDHDDLv*N@@7b^s!'CU CR CO CL CI CF CC cCdʅȎ% ";'DvHXq#<q#<q#G<q#u8H8ޑHDHLюDHLDHLıDHLġDHLđDHLāDHLqDHLī5DWCLK5DQCL4DKCLċ4DECL+4D?CL3D9CLk3D3CL 3D-CLī2D'CLK2D!CL1DCLċ1DCL+1DCL0D CLk0D[ǻ/DBB$Jo{56Lnh$"a?bE͈*eFT3 U@aS;ʈ%NF,^2b 6KX-d#`;Ǩv~A`.DRΕwuP+ !RoMH !H'7 < v b7gLqQKqQJqQ'JqQtJ)+M4tJ)+M4tJ)+M4tJ)+M4tZ)kM5tZ)kM5tZ)kM5tZ)kM5tF)Ml4tF)Ml4tF)Ml4tF)Ml^kDizDizDizDizn)")")"Di"E4"BH!M$()Dh"E4?HM&̍;bo+Ċib)q (ңĊh`E4?XM&VG+ĊhbE4?DM&QG(I$hE4?DMF^SG(ңI$h Ǖ+++++o5E94}E94}E94}E94}E94}E94FQ|C(1hh"(1hh"(1hh"(hh"*hh"*hh"*hh`r(&1&11UtE*I & &&iRE4IT$ Lbb&UI)¤ad0i2)Lv{ j2E5"L@M&ПE40SN)L(MH&S$J+DirE40SS\)M&WtJ+:NirE4S\)M蔦PtJS(:)Ni E4SB)M蔦PtJS(:)Ni E4SB)M蔦TtJS*:)ҔNiJE4SR)M蔦TtJS*:)ҔNiJE4SR)Mffffffffffffffff锕SVNYi:e锕SVNY))M&VVXYibe4TYiRfI&e֚YkRfI&e~JSkzf-\qV@MkM75ݴtZMkeߦ5QDF5Ml4QDF5Ml4QDF5Ml4QDF5Ml4QQDMSDMSDMSDMSDMSDMSDMSDMSDMSDMSDMS6UڞlڞlڞlڞlڞFi#E޴"oH7mț6R6UH8mlFʦJ)ҨiF4j#E"HFmH6V6UXGm6VQ+}Ɗ>jcEXGm6VQ+}Ɗ>jEDGm6QQ(M}&>jEDGm6QQ(M}&>j>j>j>j>j>j>j>j>j>j>j>jR[ mEFaQtXk (5>jZ(5>jZ(5>jZ*>jZ*>jZ*>jZ*>jZ6UQ*M}Ԧ>jSETGm6UQ*M}Ԧ>jSETGm6SQ)}f>j3ELGm6SQ)}f>j3ELGm6WQ+}>jsE\Gm6WQ+}>jsE\Gm裶PQ[(-}>j'ȝGkO qq:!?>'ĵG~_vx7ݩ^ T7oqaqqy?R~B> $W!B>&B>Mx(!H_8p9:wMZa44444444444444i4i4j6 Ԩ Ԩ Ԩ Ԩ Ԩ Ԩ x ķCp|||)L"i ׇH!=-@)"i H!~)"i H!) "i !*z)b !*{)(Џu{%7 hB ];1tL#-HMXMXMXMXMXMXMXMXMXMXMXMXOc7R8N|;H I I I I I I$$ $ $ $$$$$TTTTTT!T#$ c08p8 q5 FMQĨib41j5M&FMUĪib4jX5MU8@VM &UȪ d^`1I1Ia1I1Ia1I1Ia1IS5@0p@Δt?JV'*NL8RULyRLyRLyRLySLy8SLyXSLyxSb 'hR5 y F444j|'P&P&P&P&P&P&P%"z3E$-"glI=cHZ '"g8I=ÉHNDRp"pbpbpbNDEV"*zQԳ;ppD_>P1Vp{u@ҁJ"KapuXC1\ p-lpk p͛Z7#5nN@<9"~B{R{aѓ!'A䞼3oϤ𡨅aCQ Å E- Zpp@kJ@=y<9'zrXOpa<ѓw'DO׉=9<'zrXN+kɛkVq\~K[{DE)Ձopā<5ݺD^,^߫lSk6PNWVG8ⷎ@9:=mk;b:nbzOr@_6J79x=lÖ{2aVvV <.a#=$GÞtȏSa~ 0?~/0?~0?~o0?~0?~ⷴ0/~KXo a^&^}1nԹ~e{M?Yn;?K+1 X=(e?WdB\+Cˑ q!ˋ/ӄ2 B\>|9Nˆ/q0!.!)B\|^#n Y'EAB'3B\|>%G1!.>%!.>_p \|nYH99F\L%Dz9/lllllllHlHlHlHmyyyyb PmOH}B_R?Pʥ<(0B{_gUU wߙ9Feu}띙#?V{_qgf@ يvf QC)'jOhU>@Z'*{:;*m?+0m ʾjkՌjX5cRMռIռny=nWi R5RuΑٕs:Hu3LͱLͱLgje<=S陚Y$S3$S3$S3$S3$W3$W3$W3$Wg蹚'''':ClllcQrP\\.BeqPY\,.T* ŅBeqTY\,.U*KťReqTY\,.U*꺑R M/kzRozv+ 14RBMo fo@*P kěMUKJvZ7ߐ3$oH 1H Iҙ_jq݊oHΈp論~I ;`f߯r=C.:!}ĐϾfhor/ o wAP28wňB#CO !^dO?1xC3x!;o?.L0"wia=->‡@zZ |XO ia=->‡@&=% |XO}>‡@zZ |XO ia=->~o]@~` b\TDܖ^[A[J}ZP>~0~U>:țYKTūjעmxqg$&4:Fh"AG3' r8t W+9fWJWeEG r:| ǘх9 "ȑ|ٱ|8w!Xxm$kM\O]v&{ ~\+/Fox1:~ Nj)/6_'t Nj /^,T/f(\NRna0^6) $^^dW؜,`;\( ~N\2' %61޹pARˈc+5$y1-{JX4ǝt˥}erl4Pr@(PNzMEel@<,pA:A_z&aX?CȦB1G7W`TǦЙ@ 4V8Jt E+ 6VÓGBN##`' :5Ku AHSk]+)@^ICLbpc3 B?X m?s g(,ВܿAMAzpv .U, X_\9w 9л6:rx0A>4^<@tIhXTD'!\C YttV8jbMõ!OɭX:\xψGa:\:"V4$`p-AU_"zA ͦB꼠) _R cWp:|J[\Cq-niͧDx>Ф O'wOb8o(˱ur$ 3j:&c-n,Р=4®Q䱯t x 4MR[h8Dj'8Ej֢8FjtZY7i!~AZd(9Dq鱵utV::B$lnUgA;7 x})Xut::J:<6ijݮc BSbbE^GȰ)*::I=&6NP]S&a  OMn?FP'#F3jT;ny8;U3fv`,8jtHFUīyq<XO>2H}/2Jc>2Lb ڸOW5BkC3_qXS4T8>ktfu8@kt:s5> zd52]Gi iSwFIZrbSF7iZ8YktF/Rmoph$,~5Z_m<X%Kphr`Vh)cFwAX+|G=NxL,5Ó7YM:XyT06P=!! !؍7#K=8{[H7Y?Gn) 8.kֲ80kƕ >+y'1[AlA*AKGa<{F#f%ܳ5foN9J1% { DU;hwPӄ!fTg[` JV~ωp϶'#(D\yҸO4n0#8xc mM]#ߟj8ۚCxN|Ql4a!VZO٩:sT?kӔ+ T⯈6^S#nkrF,qFD@o+rn}un (9aF#@Y 5![/M"la8x L[\6S"ۺJ ,!!SK/0'uZ6u"lMam;<@l̓ȜNTnwՉ>Cs:m2aƋ˕+!RZ!=aZN*EN*W鴴Dya]!,0Aۜ>H,qam="F@zt lY/"OmQ?mF-6Y>b}m4fmzO3m[.h"p&(jXp&%7?E=>zlm4*o>Dvmv&gا4ƞUmAg.ߧvMO!OQb #I+4? x 7p<ەgsSDkcQ nxrsy_x}09u+7!dsD99AӲd-n'D},4Q7sX n0E N4? JO8u'.b}n{:8ug0&wQVé۾@SLwS}x![} u9p҂9-sn_d}\,U"UkܾI}g]~4c,͚nwQ۞_% X0$m\d6]CdWBή$9 iѮLs,AH' BҮ#cc\nSsxCtG~k/ hs0:ޝ[bpo«B޼"-J-`m#fogBr5\yKj*kx6>\v?k ?طw?i?zQqI?MϴϬϜբzETjQ"[DvU/TۍSb_L~1/TP,/%TP_BST>կ̣~}_ק~g~g~Sg~g~g~g~g~sg~g~)/TRR_ʝ /L,ꗘVNf_WW PKyVS'WX^pip/_vendor/msgpack/__init__.pyQo0)NKR*A=L5Nr:vsN)CA;ߝ/ИV{u7hI u}SMKG>XZHNc)dhH/w~~hEg߯޼Y\-W_d;n f#ug3ORhvhK[u 7@PƝSf3nM!wiOXNnJ gQ%f[*pe;ʀqP n`C*XȾFyѼt&^(E:"'Hw%$!Aފw‰ wOi?NH 6Jk~j4OwV/tcA8YK%qc𞌾셥;.rhQ8xtrk}?x?GSPKyVS1pip/_vendor/msgpack/_version.py+K-*SU0Q0Q0PKyVS;;ӭ9!pip/_vendor/msgpack/exceptions.pySN0+VJ^(ke5pʏ=k;S@"Ύw7b>l[T@bcMla,8#Hs`tI*?nwp =;gwhwL o9)`#l ̷05vRR;TU!>LĚy=M4U2~%S}dJr{Hg#34yV{eE-fʜ,F5~c<$\*e0.ՙvPkZzY&_0~'(BӻB~$EE֪ߖtҢ!59b#Zi}W_PKyVS<pip/_vendor/msgpack/ext.pyX{o6ߟb:imņ>[b֡(ڦmmT>H"-q;!#f8]㧝yp)ITY* ^\BV|&u;ʌI..6|y1NMps8g0àӉ$25$YջS\RMd/-ҀܣI!<=geɼi„w yrۃ.FP}ۭC9<@s5 eG(ț&Gy=%֯=Xĩ,rOa,*zr d \B„,]TRۃFr\"5rGSrc%Ea̹,DWÕ?@+/Z{/,:_捝15 叧Fu X&EH%,zÄO-O]-<;mQUId»P?'gY%׳gpr`KBoOT^P[RS0!+pLgi6%Ӝ3YdЃS,gǓX*0EYvd|kD$Iڊ6@MZ]-UրJU`(ֺ۫O:r® i(4#G&3ccI!v{?DpX& Kڴ9xGkysھ >":`'(ut40J_[; Mkkj gixӢ)ݖ<<,إV4.P04Rz4oW٬rgP̫ -qwW~X>V$%펋5ܬ*@Iwitgړ}?| Xc._}宵m5V굮&J3y+==ie Ag2PKyVSM$pip/_vendor/msgpack/fallback.py=ksF+&LB*CR-BoN~,] JH =37@PttF$N)%$&l>3am2!zPFccc&32sG3I0#\͆x=dg.Fdo:hA5AO߻`@ф+  4MI|`/tB(o5-^4&z 74.r͞-h)җ}]fQ+0e3L~"6y& ~K.dtأs:Z04MR |٭$ -@)kR|הM 묅R/xL,(2!ǜ{QQ?Á3usspyzvt|G0ˤȚ:ʵbm hft:  //hZ ꚨYUY4Lvm,ݡhFj8$}ѻVt1<b6m:\iP-5?gB.@Zԯ,пdTC v*4l8II7Dzlc1d1ɻEnP&y'I: QN@t m4l|@T{ ^^tx(??-x ?}{x{c7G ){014|V~s+lcd<}- F%*ZqcXusLtNd/奆MdsFEpa,jxWs$-#WWRO &$"1[y,XsJx`HSfr(! ѸʄiΓL:1/.Y/RDc2^/_BJ(%{ٻb@ T1RJD_݁r :{hIûdZs˨up0b{ȋ\^lg-q"Q$Nܜ6 w%[Z4 sB)0E߿;|mF}GHm'YPȩҼ8lM_ic]V<" f<N)I̟$DI8B ڍN@ @"-3)&InU`Y'X^v,c-JC ^e dS@"$VuRP- %qygb@[lBXmO 6 XGE/@3x aJKt=ן[:h/1bqC@wM%DHTQ̃2n=vm9IY4򌍨P0ʵgA{jonnzC(_u9HnD-U J\,VoVU7^V2eRV\){,Y#OׄR * 9NFSfӒ&R Cq'B@Ub]7ndQy+úF/nj]^ie5c_ DO)zp;rC@B1D72*;= kd<7yh5\TI c !}j27w` (56(d"["f.X- cW͖* -vFKDzXD 6EHƪzq3hEX %td.Qb*@"VB{t|_-czݳЀoƆI vВQ⃔3/vO CfC :^kgڒ`E2OU@"M!( =<+4  ekGb?H62ːQV뺭S+qd>4@]Uym@T%MzE7 qw~kF.tnZ0'~v쒟ll{'u+BNgۑj`dAtHѣl\(wNk]S: !DrWEbzOa~WxŚAwOF}_RM00'zHw 0,% 9]US䝯N05HUYׇ EšU/Ӟqވ:5eAw8wY:i##/㿧PIZ2e}R/񹬝+|Kg6CY?Zax;>xkE+[gIjo-lB$k!im$^V6F.g['umHm{Z4?R;Ky4w|A l-Z)!VgOmRgm2uWqrݮ!W_Q/`:=]G mJ|'GjlT 렊d#kOaY&X#1?_C,O9dDOdDJt]YLeTU먷j|:꯫ZPuUEvX79YRO]UoyWU=iM=Ihi.QFO ۮ': .5YUx og= .>vWz]Gx/5|^aW{^뽨# _έؓ_h﫚j2̬[+}ERF +涠# vJg=2v䗜R;ǝbcTrj4s:V>3M74k WwOR2Vkg`ia԰%Tc>$H<]kOMeɌbqc5ʽ* d͇I ?R/{LG " Ó{v2bdxU@') XME o9xNFxVO '9Մ V8S1B[0afb'3r\4I[MX'Jɿ#oGSPp,JٰhS#QY~gh=yEJ֞\%b`}dK"oE0pSr|,9ģ0#F!3M&һ1E֐DkT9%Gs4yZE,өrn8 1H0$?E,;WlY>Mh;úHqIrj&shI7L5R,5%k СDŞjUl m"JA۾*2E^'-bir\+WyReZyRޑ.cr7ߘS-|CYvY̞ 9J*ۚ-;!9eneFԻHA Wd?/M -td`TfB2HiJ.T+8[ RD=#c⢘rܵ-5AI$K|UŽ $SԒ5& ϥ3bv~"/zꐖb]ZQ(95{60|8dQ@@_qY%K{ dPЩɀb+%IYާ`sKAcܪpgx1gnx&eݬ'bp7lc"5B(%r;aHD B?,3 ~|5s$^ ~֪iXU!+S뱅|jvW"بjҘ\W9Gjn5n8%ܺ>ϧX2;#YKEj=vvwNr |ζTogbFǘL\eѵOeװ86欳,^e})ĈT(>h~#D3y:¿R߽eM\}\%XܯwR|.b\cR ׉K#:|i_'r/Dzȼ*"/[xVexwHːtZ꬙6S]LK*-(kLB][/t_v1y}1Ֆ@G@GG&zٷ9(K9|y|LG2#Xjxy&Z8(dַc@ iqViPoξ: c QmG9zv* _1nؘ'um=Ii9hs&GFV1o⑆*vViUچ>_))k̏h`8-6q' Ǒ6bU侪qUsG]3$cmrO^A踽9V}xM2qkp99<=;:>maqZGyAee.om/PKyVS& e"pip/_vendor/packaging/__about__.pyUMk0 "6` e :v#9vAlݼbDJ :АDgI*58UMoA78)lh,i`[ TÞNkL'ϻp)"3Z;08hK5@A"#Ȃ-,e dbe/fL3^');mRpRTa4vgw~X_%Y*|i$1;ހI6H1nj;w.\V8UR K XGzm,VBpb4EobCg_:lcqvY,Ŀ1EoҿnansßPKyVS!pip/_vendor/packaging/__init__.pyMj0 E 1i!2.Ea&C77QY.:7WG6@oB]4mq A;dA}xLe9XNCfs fxy{97u.`(X!_O -ɡ t(ƺP+3y6Ek~"S^QbU4l)}*rM\@ +J.Y#|a|6= b(`QMPKyVS*:c,#pip/_vendor/packaging/_manylinux.pyZs` A^5qRYlMeɵU9G*%&Ҳr2ɳba"d#o4,nodB4ʪêZ$wHe(G"KXq̳K$cg(xy,iOZ*/K+9R0^KYu!X6W:%ᙸa]Y,Y"XKQzXE'Hd E'2qb#Bitۀ N,YX `2=v_>9?e? c^,SX#<'oe."XlI{ĀQnũKO3y,#k?g(b8zP X4oKi[+h7GΎo^c/ACq|~tugSn4~:zs~OQ ݛ`.w˫z>?z{Ӂ!9%ٛ)OO'3x|n_L7_^Igd.s2UR!bzDy3f[?,MhQyo|A^.Ze)aovV{!zr3jN}$|!CHlDu~8s:>rO/ݡW[D{d(x&tS%Dv|R9[r2%OeU;+)KW4CFI 6}GNiue)jfTbYVx7J|RylQ#u,b)' C(D dr CW!2 yXj9JsxP[ERxxUD-aG|}qݡ e덋|gk7,j:nc 2!1֗}g2b' M:(ոcs3vx[S,Dd7lY]߬ bů^94s ܬet~ϰI 豼p"RYSM ̶XNu D(P&fYfdQnaP\0v=S55W;ΜQA݋g@_:-N+L=8;c6;#\?\!T<,p~>FL#B*Q ,O|$\PrJX"tZ!;ʿKrCx. 8&)( i"]VR˅>וG*6h2wof?Kjn*c"H4kQnJGlGݑ} 'RBȅ.Q*U{ƪ1#(ng"&.{ʣQ?˪ɎQDٯ03|E5hN ZISU4)__H6/<,ZG XLy,P/.JU#uU`0jJC]1NUX"8]d&"j KADWz@ KzX?P͡R" lpj̲XJ\[x1qh~AeIg ܎঵>9EjATdBad/QV-WT8!P=N{G: DP} PygqA.zGelҜEm4}P#8=\(M{A =[b`ZCFbb!sFAEV 1DHE,CJH3<[Ÿi()1>רT -5n *\hCҴ0mg.էȀnsGW!3ڙLJ@?˭gl@=$Ąq [z/x}/=? it }Y fiG<0mH_96ȪCMoxջ:d"e鞍ihkw_Ym m_qQ!y{>ۍğhVjۓl/I;.k`QJ-F3AZlȺ>e)JRV2ʑuxtF!V }cطXL &taFS1UQqK#Hjys+(+jO!RMʲ #9u`^55)mz!Y@Y=-zۂfm TB}3`]͌w-Ȏ6[r8+߅HF_uov\B(;{ּग़]v` eR'6)TR2Ih]ueZ4KiZ`M5[oF ]JֲAh#k5IkjI=pFn1 5z^p1;{_  8G^}IngG Ͷ};bXCjo$-EFFk͎0$I/†2:8zZwP;uF otf⃄J?SYK3=[YI^!э;9|fy1ob]Uw=VCmz@mkuu</jc9PKyVSo0#pip/_vendor/packaging/_musllinux.pyW[s6~ׯ8<,pNYv5&Ƴ/HPšYLf{/mg9p߹ k86M-Ln@Um)@VM)* l " [Y5{ЭRRmzoi&T"R Uk)p×-Yh#ih$Ţ.ʊ-[)Zٺ.MP7Bs[aGXfծ]gN2 ,/>Laa=)oZt>4uh[L&( Ղiq1C BQ)=R*;j6|VAYH8a'ef䯂$7\yJnMɜTH '}dt>.$ q:=k ;WDZ.x1zPlmx#eieuu\8?9=o_go/3.(w.z[4Z螡iDfªur"m=<{ymϘlkqJܗ{zd88N!:!bZ׺BV­a8 2KqMF ,g^* 6U[2=5"JpOBb #϶R ~!BFNx"uX}W 5`l4B@lAl:+QCKz. #מSk%N=3>='3>WWWm|_gpPקGkiو?~StO>y8S[0VC[/ 4mҍ v5I+*\,N|^;r#+zߓ$UQ;[-:~JV#j'E DAsq'%"' @-dr89Ȼ!:4ccZU`{]rlIo.s=+xhsw0 α$ 5Mݾ^[A<<:d%7ҟQ}uZ0B6uPTcaHeUHүy4&NZuU*v; N ժ+ޟσRF e1: B|Ln⹞N0ŧzkyu^+u'TwG˧~Zabn ̍>BЏ pVVA r#'h(MRvߍe!q++^DJC&TkE>FeM=:+ Sʱ"Ԩ E1Mhm+a$b6UEzqfvN?CɉM2_pLr''KCcܠ:{JPw J4p Î}PDžqDtt24Ƈ!elm,F{׋)JRDy*ťF"50ϴj\g>;xP,\ D&zx:91C0^֧m2Zgھsһ~Yg3ݝXۊ.o:d/48yJk=73;4xAF !QM Fr9f|oO[I~0> 6{)0Et/P)~uK ꟦HScI UKYh @~ebfr=O14V \읅ڇfđ&]1"MD$3lk 7:h(D%T> 3uqJbNdG+Ӡoqthyv /ʯPKyVSqt i]$pip/_vendor/packaging/_structures.pyk0{`eX`?:(^Zv >5#M\_v;^I8}),B"1)RT3UD 4G :o*aӕ 'w1peϻKM;vr~Ymw󂪝3ZSv;0Xi+H@DBȐ6 ZX\(Ae00Y`t FAx A/Yr[B$D]ټtNǠSjaƥoF/BX,qb&bh cmRyPDǽ=(79&(,ΈA6bI|a߾pBW9i/007} -⏘=czs=AbԺR5qPKyVSm?{ '! pip/_vendor/packaging/markers.pyYmo8_"!b #.v`I0VcmeQKQIsi _$R^qKpf8>3zIyM6yZ"XY5i5DnLj7e^ ~N4YLns^N^1Z$15xraqv0 jLp.l@׹m UyQ'I {mJlP-1!&hQOkTy%$Z亩pc&j)U^%+\$CENhHKR蔜}˄o\S?o*xc&'zŗKV7 l}%G?\0^Ev_$2DƌXor>qyG|}e'b>N&i JS2#K%40ԧT|f"+!h6y`k^].xc<;f}A@Ku0L;"vK0F3W1yduM<%Z4l!T/w^B8*JSve ĤG7"tۤcqw-]Md %w(dY]@X7ڵ\>C(BJ- f~bh[[ h^kfP3fzQPi^2MÚX8CW4*$.iʉ#݈Qq &QX \nH9dG=M)i O4} A.B䰫fӼf`OgƙBFY l* &C'}v!S7?9_- uvΚ֕5%d}Z.֎irSX9?| <ùOkJ:.M&LrnbEpoWg f3ؠ>kڧ: 8_Lqw=EWV^Z|e 9mH#&,mgb˽???Q\.h͢_\Ku|82=Ctn;X/#[JKȭ'řV: Q`uFKg*z^=1s451,تDX >:"C7ٞV/XЃZ g"c) Xz^K>5W}wlIZf ܲQ-HU9V_FJ#fš)T#d}5Ja*b$M.jutTp{-uA vbN:`wT; ,bP~fdDV~g[,|6kR 6L%\"(Kœ@qrX%yeĩz]iJuH5'09{HDa%MM _HމݺorQKzJ3ٌ&T6w]iiàHnvdONT^ /7 xql lL# ?y^jɏ! p$ J;jVrtxy`**5@ `B@^u0'[b ClTؚ&Y(I!6 a~ 7|{qIM ;pGX ,c N}Y v;n]RV& & ]5AAf eE!(Xobuf#^'L5>bBx9 \(1 {zqզ]d֑կ7 ^Otܠ֗n3mnSRb)4LGPוD6#.4Om[>A+i|td<g-b)ˬݷ\VZt{MTu~s)t:._Y%XyHa+,=߹i%t$Սh9i :sS64S Mg l1k<Ĉy0sܺS125g~EIk6\kΣ~ a@%K )ѿ $ Wy2_`,40{A]9 y( Hl]Z%QP?ZWު[18z_E/I[MU=pB|w)? +}kãIdJu⺩}6E^\,Nj" ыxLp4/PKyVSnAZD%pip/_vendor/packaging/requirements.pyWr6}W ɱI:LF02j+ɹTp`R@]@Jz,,vdv L3FlhFtrƉfD2XA X|d\E_gBDV22'^4F\p.D* ~eɢX3&Ii&IWKV_B4Fee\0gɋwkr} !㵄p 2*i˓;faxN_X]9 [w`fjt=:SvE g܄][ḃ/ ^[fҸ=JeKO*C4gRP"]]ݴA{>5i"B~fi2a7)g+K#6,~W[麮sĀa- D_lE\L,U<,:#>{`~GCr 4?R  Nއhmϝ~ 65gBx3i,^4g$%ZKpNse `\{\ K#4Qovz}OѬztŚۆg! p9ka(Fض]ܜ>&acq'}Kqw\"cdA%051R^}G,4~uЎ[Ʃh2=1ŋgu1W1 v$S GI _ aK Ժc-3ZzXG/LKoEOU:F#'(2<~G3$]sztj,AsMW^- Ǡ}l/NBy]]&A]"N ҒVJ·/f%=ʬUχ2Zh+҇fR'RA z f hgce\~ELHٕce8:M {fmnnP{ $?Ye{ph*UxhF@ g4!.ћl^SMui' 7X,H* Wgwd hF?{aesIhxYNT]DgglXb?9r/:~SͲ*jJwPjU4 X%W**PiϕZD,vbNI})'I%vqHlˮȨjTQ 5 6԰JX(IV EkrPxDVHγ(5 lLU [Y۹TjUb sx (.a%Hr*|M3V({q3ui"/B㾁yVAuQq3˾Uh9dL"c2qRhoa2 R܉Q [>ALl)6,,(Kq5J2 yTl"_6,po!!Qkb]ghQ]Y50mb T@MfávNB*+Ɗ)ĕ [sI^kRC<<ɤJ/dᆢmwTIVp18G`W|Ƴ!ΡgU\ Q p4oMP[~vIE#IvbMQ_(ЧC w'i0Ni"3©Mi>*;OP" 4|4:`N<m3HSi!yvH}mfAZfYm3kS\Z'@ C36h. *X٬$EԚ&7rhSv뛅rѫ>s}Y6x䜃)ʵ$ M! 5.mɄ꿐4!XJ{?C)/"Hm0`a1Ƭ\9\ eO')載uJKUX[F)蜵nVLJa[kPAMtGl:+JReH{!tqwZf32 'dP9Q}:f).7`$"/Q  #{[ 5B5LV5!7?1x?ZɣA} P0b$\) /c jZp p) :jfU,/gY'I:=x,7+"Y-؟`mY.I䵒4z6prcڴc-t`k+`s\kܹBh|]W =iUkWsڶ3Oa?O2ij؁h08t#op9=DNx&s{Xr!먼)@1ObU Z'H6(.qtppuۢ$;RczD$J8 (+J@Ԛ]!!Rv,֎Jb'p$p'#AD|>aG_89N UL&S;,}s%|Z$*] }]bYV`DK<2G#L*X/ fdšH X{!wu7csU,6Y|PS"h ס?uV7-udvz.LOF!h{mЁ-Ҭִ%``;:Mhˣy'Pu`ӒHƘl<(2@ԗt!hS,IJfe :3&:!fFsbXӹ)3S8'3qi va#TM\jug5|x P^aSK s6%;m8luX mPv" BݹG-9qX$ǎSXML#Zӟ=3Ts*%r5i 8h\Pv-8MՊ_? zx޻3z"UR˜7>cst@M?s}|Ŗ`&77M$&uV]mi*]j ϧ5n7H?b\sd| [{cx]Ou83dNLyrqU!;)BL['lo{' 2(d{7~nOHZI>oϓYdW5m/MDh( tͲƸЌoV3 OPzI_Msf `t?z`([3ɡ7ݽz ȴ IT/)B3si;#t_hj_]KM_dh[RjIupca^no2hT!=8V @+0qb eE`5iY5&7Z~_NxڮjP͸5;γJSjrfmᖱ8GZĆu@uyVXG]'<'2%)Q xspLΣMVS6xV %nG6]:&cѬ0ϡq-S9$;-ۃ>9'_v''2 L ̌*k9 ă2b&yV7C{4n@.qe5y8 W/@cr4:9THTYT ,HL`=D`Г~ N>bP wt,{۶{Fs45tbh\1r1>0ishc++xq7S+W$^,,y8AfsH5"lHVtw;N1)1tܬ0ܗ4}2w!&ש!tJ(V$ˑtpn흧qn1mKϘoܥiTrG1QSgS bnhib(GK?TvIBf} Hd)GyNa;SQ,IǐΦfWϏ Y-CLuc]br1uη5bbƘ!AMrTjؾnMi0z!:(e^z-Pl5MdeC6IZ w]8gx3)i0 v}t>i?ߘh 57 =\0 Hb'WeuEJOcߡ65RWVj$70: Bƨ"(OT|%:ʧ%/LD`4V;% χu[ݭ8Y2I13ʛ8XSaX`+k/YwK5at.v8 U<?IxXgwWըC^:us޺ =z Yc=+KZNwBڅh: `]`-K)ߎӂ2Jv9 ?[LiJV$W ʺRT ^*Q+Y ơ &qվBG\렠kAye⺄srAOsb[;sFC\o7Aq/:bv;b\ ib N;j]ֻ>hǚsJ5.s5z1Ĥ 7"/AsWzQW.7 w=dk:3޵ amsnYbڽko;˙Z.DBg~LѶ1saF-Xa.:x^xg6MԌ.a%/+wUp^ZZdkiu*6ĂU[  /wnߞPч'&3`a`]Gc$VA=ikU^ao`+&gbΗť |1nxaV֪"ۼpEv$ڐ 2$ȅ.)NNwOxD{pG8 sT).`WKzsu!WbUR>D+^Rë!Zر^EqdǏڃi͓4>F`Q"p4&#G F&n#'So=xri/F帨 &)Ȩ!4:]a` ߏ87FE$+-.jLP)oTөchĩK9X[`kϕŰP-F9XWJTwg)`+ILڟXOCd* ˪R<𕶂`֦ ߂@"30FdryL+bUd=<;z/2 =G]dr XD$t/锌*նMVPC-ʡ1la{-Bbh'_–^*BV!]Tx\ϣNuʼ;Ocj406L3f>,4`x1Su7/MnʟWrj \O;ֆd_||ϒp_\*t% [VPvۭ`+RG&M&7ߍF(q$mu踻 %F߀(t`0  hp[L3yaՂGBEeem*̈ݗ]!_EYTw6xwNuFKM SN?UpMS.WG[]76:{gm+]>ьTۮ3S:6hU#[7XWNī* UkZjA2m%͐re2aW~f5pnD^!oPox'Gs 0`BF%ꣳax*j|[e lfT0|޲,ʾۊޭgiR$ĈSr[ pM.5# 9Q]խ-vz%$[3N$cX\5y+V_qVj%Y2Y'6aE>b%yJ`N>pN??|r'YU T,j EŪxYDd2Ī,e/m%5 X{ȗrSO3q`%"Z?c?>'_>~<RK@#ĢǪ'O=v%w`AꨬkINo ziS_rRǎGP|u#3? aTtO,awZ@Pd^ƶ_9_,"~,`b0ODU-Ͽgn4ųi Bo'gol=f)ir0}^V\NPjՕ& T:NJT8 JVM mQW§; Pkvuu$,lJ;O#K#]ı̊Z1,,ADXɅoc'tsj|ʗC䢎PlIb68+nl}.r!r(+n@xpὙer  +~6.tO^ٍ2voIs`Xqq}0J1$d_To,.e+JN@_%kĊ \*hR)!Qur&IIX\rWI~WxBݓFvI9(Ͳ"v\)ЦV`A@YYi*e.foYr6%LP'+f~!H90)#X_Wj30 #LL 1hlXrlf-m&TEĒ&!`δC&8OG]BoLmQcR+p4ӅRD^-_"A":k1d6Bz~Ŏp#.Oh#6!ݑ bwėuwvm0.pgBq" BdIMCJ˹HBˆt7$y6!Gc"w)\CK){ ?̵qd)@d8)A\*UǼ#@ѯAk$&i3ml%0+JXQq̢]ߢ23whlGeX+Y8]nqּQ :Ck^XSΎ! E2:tZ&9Rg`HA}{>֎s Ye/KS@u.8^}kVpB а\ $g\%u VN2E䐱AI_p?`-Z=Wq2BjllXAƘA4* \pPJH^u)^6`z%\ !el-t^Ǯ]2LlӨ\@qUXLܺ%8 z]h40zCځiD?~'Wvߙ0X.Nhr(RpeXχ>'uУX㣙^\Y \G ۷;1=5j<Zg[-p(ƋFdPlAU*HR(wu:rajpɔVjSv8{rn(@ʹAqFE?ʰg })nֲyfB,6 D  I~sL ϐght{efZJS2?>E 05DŔ3j3#荰֥ԂS]wZM5h/ LFzk̽ JY.fRe)/6e'9N7sGu=?3D%}-xm2-@#A~ BԠC)v@-ѺpugDu桋Y킗5UUT >; h+ymT~~I8\ӓⲇ ; UR;׌-{U3ߏdh|O\ b*/%9ĝ C?Eo,ރ#pqC]dzCB@x 6덣9^r7@`+â sIAd!j1P9Մ2 "Mzh6칰iwߚwO3gIpq3Oe>`r}Źsw~Gq])x_;i t4) X*v** 6g"N)s4JI\I^JEvz~8{ IbjP|{ h Ν1ۭ KmnLųP@{B@v:co|OOpRi AvqiSެO&XX1j]r|CQ;wYqE_|qaI ںܓ=Y_O/ 3ڦDIc ﱢ{(sh'J DU?NlB6 8o7a=a6&uRu= rQfO f_."Ou\ 'hO Mآlbf=7 n__ qlOp]:EKó\I l78=:  0NJ-vzh}Yzhj6۝Np$xh.vCKy1s 3Y}f:Gw^0AR̵nm\B *vM4V$b&1۵ Nڞ*pk6X2eCqw͉N0|Dȯxy3a}SL9nhf;ᣔr Wי?B L| ,&3&aWUjX .ƒe.M%OO;hϱxI6zNLh2mS i{ޙ9ORر6L9[_dRh#Yn %14Scpq%Ft\o͓ jg !kX >Ne~)!>~K0a!oc]7 b.K{ ̽XP|A_[N0AC9*"ZuEjR*le7/n"r֔)A웵1dZ!UJl1:c #M_ Lގ>p-b'dL-dT̏ }V7L u_%\Shf"(bՉeDq6'5zsJŷS],-& fF7ܝW6{ſx O6 !4<3`6dMKZ[=#$aB$Ef^odb@gN/Nž))Mm"PXJ-Tdo!r]h24uyb]JeH[(s[b wX\7%ExY>fiW&YF2YFP&J㜎u\#sZ\'\]JY̹BFf޹Tk2syFRqoB<Ѻe  >'y'JIN< E]+5,J.T2U .'𷸵E&4kDgߓ%זe`Y !ӤH-`sK!,3)Ptm\s;=;Lp~⃑Ryz?xýʷ&>_P?oR nB7<\haQ؝ne\*;sGvHFz69G}O=^c.Kvy^H8tT[ٿ﫴n\'7Z^jgмjYgGމ6l^x~5d:_&=E]{!QV] $ttst>ʂ~.FΌY~2+Q,Vi.njD&>oR|aN}o9Q6|;v;iZ=7Q5A#sHc.Gr: e )"gk>] xD_Sñ:gD:ET'ZkF_j؎*: ++60֌\ixwhQ(Ḳؙ"Mʋt ,ks-XMfS6 zc3׬7HBMKbSy{rb%Lr~(oL^ofmi ic}{hxm[:j.<Ts~" ="G>]`Pr!0eQ 57,ɥu WdJ1M4;*lT|^5sL۾ 5jX)pa UFXZ2z=^f^Kui~ij%)E$ewH1I|F)K_/N: 0NnϩMZC+V(]1^ XEqwadƫDdi֯y2QL"[$v~l 9Tg>u_ʌ.Rн)>>y[2 rs/ )e[,P0EBRos`Fm\=?{3f|okYMC4?7~me;[oC0z3a_Nn'O"I@_Ϧm<ք﷫yW}kD0ЇZd7ʠvtmSރPTlHsuE༣iO`"W'o|Y*Q^aG+%1ll4 WEEX*H!Vx YrE((Q}2J!#Li֚ǟϏ=Yʄ眎.Sd*U{Xf9]XyyHiM]T=Q`@#J 2IL:y\U};5z@&m0 4[%=vi1smL>+dGКBԊ(=tIulG~V ~YԾҙm'-Ih[4~Tw$wJ:`dy0a8muφV-3r]ۚ#'y2˺Vxt \d3#üݐ8`oiyGu 9MӞxۼ Ә۾yRJT7cOgWf4#yBg'՘u=vΦ#}{iLgJ4V 7n|6&6&HYF 8T{y5[lĎӒ!ԬԈu 8fCbd0whWupzvZO>Gl~y7 V+P}`5NV.m?4$VZŪ }Sl*J4橞9U橾PtMAWUIk,GGϘ]_+s3mmsj>G!=2$Yo6V5bId0SdȢ2F/؁ݚWlGbpeSVb 8XTAmD.Nia+BTLY.ɴFSA$RP[9 ˜qǭV]DjmětaetShNFJoF;-ǭYZ[|䤅2Ƅܭn.4JV,ѳÚn61oYPz;S7y }Xp6s-Dž΢?;wGpHNӜV9=^Z;y eg]B0kӹ]yE&{J<߽,1݉>2^?c b͑  TgԱ 25IU#;E\oe뙁.3@mB8zʹ Hֈ+õ2od7{B U@'i5N}@ BAԵ?Sr&kCLIņ[zaHP7A0TQZ "Kp!O2X`-jtNN G4è_0}ZuIG@ÿ~,7C$p{5NR.EYeR <]{H2-JbcEBL DGY*ݲP8Ir!p\kuEPKyVS>R( pip/_vendor/pep517/build.pyWMo6W.F}nm" hils#Zk;p6%q#X,~ES3:>CeYoܳ[ӏ?RHE"Ni˸w\BŧF_O[$N [VkyZ f'ͻfaAc=yӀfVf0vm)`V6݈>){zY_kܪ)$}MMAge)y e'IRÎy#jn4gi31{-M{ v0 _zaԈԓV5Xc^Ld)ZmyNXTe/fƚBQc0/aك/c[(vJf;跚dZ0Mvj@:U+(w@~D#Bm%u3Ћe9Pp=e ġE!Rd{:c4g\"A8]kyaxz7|P輟8o6Y(3?KKɯBT~@"xF5{pp(_y,:ѕB|<~ E>c QkAVh(zo}vrcSG<ڶEqOn1nB|~[/YDxBUt]as7ǤӖ 澖T|R{K 0 w^SpZK;\h#/Fc{GvO=.>.[D+Ws(jˋ"}%cA>ǎ~W_tӸx+}JuÚ MYs'J䒖 f~,kW\!R}ٝw#\U-֠P:Vv>p-l؍ A&넲`t Zfwɰ0nu 2⑝mAjA;hs }Q. 56 gpN?{dmʨqKVRA1K3B$=)v#DGʹFs34SLo3o8I4M1;f c#uŸs.2.MŻ-ɜf9PV:;XvJWA}:Uck^m^TC1lK̒fcؐd9 4ɪKr,dj#%gP3A_ECXK_u ;pD+';tKV +YȀiPMq`]\{bfC>Q72u۾s-1 {ǃL_+C޹)cqˌOo˄bsW%6^+Dt(12"w{iP)@U ea Y,~JD  #rO =(_\Ckv& 6Ε.Sm''ʓ#+x>2 O82ʔqu6輙݈\L0is}XdB1_w-d0A&v*n]F @KyY ~®lfcCY)%x<f,m@.ufoZf\xk œ?| T9/Q[8 wI(nmBW5``׫b:x.7ddFњlPKyVS VЊpip/_vendor/pep517/colorlog.py}Wao6_qp0D^\%M?l^<EQ،D$R#:F;d;y|{|wGwݩH\ S` kHT*mNZ_KSȴ*^iRՇaɒ5AivVVKe T M-T2ŝ-.(apmp_@D0[UA$p2sO /-e.L61|-EYu-&fXyٜOף|u2ƀUBc[`%G0gPJs|hAn戒 cxQgob9]s8y|>g~< 7na87}HnßJM(C9'ysx)y"2`\rUε$\At/E2Kt 7TڒWPt:OLPtHk+*;N3X[ꅩJ6 za[wj~ &ЛT,؏n"SQoozylŊ[YQ׹h=.&?#/+1n@Zzd+q&juKQ8x7b|4OU: 0]ϛarΥzn}y",P>8/W:DzLk^W`$)M8LoOb LD)ncl3iQ8(%"\ 6WZu>@Yd}Q߰@a'Ů/P,ͱaQÜOL]PeKKf!5mZ="jt:bbVF>KPG+³-P!wZNkB>1 R] L,,/̡i'-*5 %U?ڼrxIc2WQ&!F"z^لF(+Z#zOQo?polAq @7~3EdYB^f0$ ˥;+ZH8H ͟j2)E2\*b @d-{?10hY|1S HxW 9yBK^W\6\(yJr$c1af#s^cӧOӏ!" y8]D}gT 8{*(㝈@&͊Ď*G *b9^ +#W{ʲ@@Vpr0!SLx7w!kսvpM]ػ  wCf򋻺Ow6Ľ]/]&jvWH,]Ixz[: wcnٕtܸ ozF3?pw˙Ow8@ȮaGY`c^f1[."׹~ϋ,W[Sm Η3&׳gGzeC Xlm{wd4ԍ&hl4ȭ.G`!m׵3[!'U `sZ BPaq*K&f42% '' ԅhB94;>*MU$}Q%ָNATv9*JA3ESfzO#z_>=S?|\o9_erno={'e Tܢ9PiF}XkDy9u4Ŧcڭ*#Ʀ.-!7]TĮySꨥ62!{X?W*fpխ+ǀ\ 3FVӉ]Pa 3*UevVAfo 9q/˼v}Cu,hefhDv2W_~^bN*x߬<MurQ@t. H Iw&/IuNkq ͟H(Άo׵B?zo=R=V_#BIHtVWJ 4"%I)z5J9ښO ?A#( ) T-,J'Нj;%^Qu [`UeJ$Gd ie=+0hENk?KM+8oNxu?WS]k<5s4>?XwAg%|Пo[eM_5`L&GaW/ S.®wc& tJ6Cƽ9,GW ~rA]fp*-s[޽!?PKyVS pip/_vendor/pep517/meta.py}VM8W`CCE;}axٕ"&Q-״{yi%ݏsϕlM^vKv0I6ZZ&=>i/p=q0"տd߃ٷIncZpNIkɿS6= #lxA5VβW wq_cd7OZ3ҧiQ`9.9?r!@(L"e+B1ILXPKyVSUx u4pip/_vendor/pep517/wrappers.pyk6oAm>\^E"\>, WmveRuf)Jvi^j`c=CqwlZnFK.6u#weڊnȎ a̎Jejn0Q3%?I.UHmWfnFL~-+nVUje]W|}c9ؽ[׼bġ<;rGv(WE6Gg<:ՌgL7sqG+^o+uCjܓ?֬-͕lMͽX5玳Ǹ3 \_fFڃmJ$^ږ]0CYUXsYҬٵ cI[.`Ӣ ޱ V#v볳7 # 劕y[FnZRP!dFY!48%V{E֯Cs1uS|O77Uv^QL(-u~RCDGBRJr`; ͙z3v [Dv+AWkqulZhs(.wV`eg .ABNH׭oa?f췘KXf?Bfii%kIN8B6Kk ]SpJsXH1B1B{ư^46J5jV5H+p;MZ­@CWTB{ 7A 鷄dm@!U2r:"oYu I HbG;;7:idEvYDZtfxrKGokPړ 75Rq37(PC]wd-rq+Q;W=d${f 42z'yNbK!8PCT7äޫ ^>Lˑp \xcRWx )MmRf% MDcm4$Q, L=d%y#?V6];ysd Qڭr] ]0:eb6bhW]Ɏ ݁QAVށL]˪{P,}H -,1vb%O *0>TL./`ͦ]+|C.ӂ,,dd§y(kJ c|Q֏,ZTI3ZR9uR ڑ2L@d)(rJ+ B]]Yz k'32BqWۥÑ#L364112&H`xXN| KY!," FeoA$_~]xR7pAsj#z,'%Jq 6EibFDÈ@d5pDqpG sfPQl3cE}u3[)+uv/J qQT]&W# ?筕0+ 揉4hcXuL4g)oكV 5LJG1Nw#f+|*вWMׅlۿgF!k-KxԕoPPE=J = X,;.H 5iۚy v Uǂ& *s;&[Sͭx bc ͇~M%X҉ H֐{DJ }F26Ʊ=Za}Ulh5}Jcy`z$N~OJQ0* F}>)H,gG3CEmA)f< ?;ŷ`ʽb$NEwJE+зk߂K/P37Q]{M2&0ZePE;Нn%y9I6"A @nP oƴ$KLrF߬a/FʊP1i* qC<4$7  q91QTt@P= `45z[ KF ~5d:M9֓W_\')_e;K暩r "+Fe~/O_<ٿ^}ـ jP6M!ՋVO'JKÍb_Ƹ.T4ض5,Jyuk]}[H'-Tjs=!< `\ݮ-iyQ(j&z f`$sKr|gJ&2R&1,ۖ"upؔ75O+XlO7z ti;2G>Ўy?狱Md7eBƜMHo61[9ϲ]u2O*"^ᴂ 85v|02\OQ1hme62vYޛ|A MtkLWs#ίvfÚ7(_Ev|ח~ CNʔԼfgZjLmdf\A0v*q_g ; #t,87Jv:N᫴ Ē;E+_@@q8os',L"J 3.%Ò""^iJd(d|w؎PZ^  Kvj3FWˇ_^WjITFOWAU z!W` 0ɠ)O,ЀFgO0ǯkCPKyVS$3)pip/_vendor/pep517/in_process/__init__.pyMn0 9f@qG!!-đmMNE#$QUe q KuW[AG>0z%^KEUtl61y\\d7izu+8nD"F!0SL(ySSl9\G0'bmMUUf`F7\'~ qZ6STOQ]l` ~eA(py?!-uŨ /F_[{dfN?c=5oFL>/0-H>(C2GEPKyVS"H +,pip/_vendor/pep517/in_process/_in_process.pyZ{oF_b &šTI/;Rژe5w̾(Ypa<~]%k~E&1( A*NqjIɬfiBf Yr~%"J e1R_QƓ:}SΠs*)F°џ (-C+ګY񜢣GDBdR8)k02/YQ:7=l37yE~gŁwɊ+:dUFH%s-QbW@ /䁿˻SミFZ@-P𚖂1$*}똥͜ FOA|3YB!1s3!v#tpcUA&JAQY$ t'9DgvC }|I ey-[X&"S*r2P" 2QT|Oy.h;AhءA[O{4AW| ,&>@U CQJlRe@~B/5͛ѡQp ts^fXP܈gR2gl#Ax^tniKmH6Ɯ䘁e7B; t,.D(x*Kx="OZ"tRmDo =|.](UKX@iP_]>*Ѣ%ku I @rZmH j}9jtj l5aȩ ]r"I&eft1ܗmn ,ՠ=~+# $hEE2A&$7,khNw0s*V U6Zd=l2oi"tdH4<<lJdЎ'Z;`!N|)r \b|XdvKCTS,3DUB*a5)8$U?4i-ӛ&B`xʍIзT3x iM:"CǞA uiQQI[CQKZR,'r$M;9Z6gS} F׊țpPn٬h7Ѵ_y3nXjug\P!o(tUdRغ-.S(/zUd: X6Ԕ3aHRF(i;+FQ z0ﮖl$︍\F~{x]Ž>}Em:Z 0ݢuHrCҝuz{itkX #}ⶄY PW ,I%G7ZZ"Ja{Ci?jj?ݨR-K@1xs?' j2y#WSۣד30Yd9~,I=k'AH‰-T"R Mh A&XBme7+]]w- ؅NК/қǏ9!x%OrCpcMlXey)!nwy)Q}Bp@~ c 9H8[%'!ΗrVpRyMi6\p[֛vj#rkHY\^#2hS)I/u:A#7**acD7#^T !!8&ٌblٵs ~pe@~KdvZjkgŒjp$F+KM0ҵ9FF1X:q F)Nfș@Eߊk/~Z8'V[k{C-,`NܱL #`,AnZ`N-seuZ1h ق> ]׌eHNQ~eiD;"ܜ5[͜. ~^AmW wwXw*t^ XmlBSH0R5w rsr OACHn6`rgk<4 Y⽛>]HEâ.zgWB뜯ٲ\iFN-|\_[vv{R?y3QF/,[7m~ϱ)sK@ia ZB0l=xWP-9*ZjAUnl*'C7R!KkJ&*~ T)gO\옃'{Y,ͩ[޽{]q詂c[1Cml9؃G_4Zkmwr\^^%fMo` 4<4;_ӇbYsFgW_rҸOUW*Đ|װhK8~0/<bG`tg"rgn`Q|[Ⱦ7ԥo7BN=wъͣt\LӾrnҁἬi6ID3>:9 ֐R,@zj~3U3U6~)iׄ$7qeykG;F#WQ/A4fL YFrE(2*A PKyVS)s%pip/_vendor/pkg_resources/__init__.pyԽzG OQM,Iv{W^G-cK\IE@VQ(G;y 'YY e7_EVeE"#G٬WlYഘ]e.fӗljQfEl.YղrV+=Κo}n/պm.\YYd4nú)ۃM]KPg -62l:}8uy^pKY0Mͳm[fMSfUB z)j]07VvQHPyS՜mu_6k|ݬod])ov|f< 0lVf,[K;n*ZbG?U+`Qmin>*kժYohre̋M1M7檙\5@Lv]N&YuCmn }p ak~mSݔ٭J0JXװC})ܻŶlrnHڽX߳fTE$Mv.򦨖Qt`S,o lur)DW}VmGwlֻ'[|uP~MX59Nwuy.eYOV 3LXjVI-T|xhe/w9`(y€QLnYtaM_HAG4,[&f *9<%}} sip8a їu e2Mn},PUDF.+IJ\mRq@vH$+ZTA׹*#`"e *ᚪɿs_Q[v/ŲK{,f;M0Ђ_d9;zrV"j8ʷ967€Wjɑ^38iaPz?yT!:6`!Ű&ߴ A:>GgI 4{> MںQ~TN~Xewu+]·- ƍk TA>kV[PâAs#YO+nt\4ܸsBb5nXb#,y=(֗=~ ,U9> ]q I9O^! x ͱ]D:%vҕqSS\7 i9?zc"ph^pˋ]4,vC"pv D7LfW /G H z[#||B>޶(6 ''BÜUZ +.on&c77 4l]Ế~+{r8ky3XԻA9&p:MK\A&$;bJ6e;oFr BBz5M+-u fv5Ķ .kIG͍$;۪>%VpOZ $Aw܇~E7ptRٮF>˭ƪ.fK-pPĒ63z&៊y= 0u0<$$#_@d 87ïzjё]7+`5o t0fG `OO;l,\|.\WИx,}nj%͒!*cxZ!,$%Ph7E]n&3J?ure%>4j`|3xx#}S@͜t} JU{/u %b-@r-#CuLS}Q- 8CCzp܈ mӋIvQ%qErK=%ߣY$,+Fn\.F.$a?rdGn]FÏ$h݀{q;-r)6-st"+ۍo$,[Ǹ3gvpTP LPd g<^ Z2/pnVZ e=:~LsfY܀qy83bg@v˅mĬo}Lec(,YRAdg#jZ3{-"AxJF%>_0?6hyHDoJkcoTZP%̹{/=G!^l? r 6?D2zXj}rC4쁐(8DЄIa跜{7GÑN)ym t ɲkm'ekP8l `6eCU}\V˚|%X8 0VnO6|Ee[yFʾB v`XA“GǏEbw2zﬞͦq)j\kVL )o`t_y`a 14~FL1L \fiXDC{sl4 dhN;|tJs!+c |b$QhFՐA^KQ:ÒA\Fh "󪥻$%rPݳd9 M_C- t_2ҙ\r)mykXrc3~q& f >#VNJsYlOUYE1tK? Ub 7uݖ;P@u3RoI.uu.ֻϚu\@w8 _CΊ!5I˫UW )M|k5os:~#97 Y R.`SnK*r511P|)Bσ\>< o^z2GOJF8 ΐX~QFVlXjy=-{6厡 o" t׎>(Ulɨr޲`=_3_W])4Q@!^Yγ̙ "K_<2 -VwLBH 9"*srpNï]0?{2b*hU NޅׅzΤ$KΚُu.0o*fǣ.B~Byݧ,xY ontQ!b,^(?L3M ԲMH>OKk=}w)xG/](X-5Itzm?~(7 _Go6ٿWhE \Ⱦ1gD 6&l2uøl2t;vjg"7A㌟A_7h 5uSєk[ɦT)[j:V|10n^u{6Ps\ j~Z(ffcQ|KQp nzj N`'+%QU[F55g a\ͣ녘:@-K* a aqݑq!ʎǠs>!GW+!GФcj$],~G벘܇^8K循6'sH/'vD%M8 Bj c]h덂n t]$WDY ){^eAޘ7PԆ 0b`GV4BW"QEz~IUBA^=ԛ| ExYkӓf70^^Лċh+Q;G- 0pHUGD :ěmٲ ~ ~]G-Nb*\BQm'X B՟#Jr@\ 1 D5)9b;Zѝ]rp!`gu۪/Υs;,`.8 Gc^go0CR<`F?p;+EZD. nB(#l7o.#@jYaٹu w]nA=^(?ZQё'"^Rd8"ZU|NJ0%j P}v$gǂ4bE$~P !DMjG d:gOy>DT]zy'>Ua1|tќz"vt ੎I!m!`8q*YDX5ܱܵL ^bP-ra1wNDo#T|`gN@ t`IjTb+2g@0u `{@u<'Oа|T qs,Bt7m cxΧRQDHCRp~iYNfN bupWѢ0dXW7:Џ5ұs g" ˖ϰcl؄MEFA)K T~|` ¤S 1}(##LNg58Ԏd L;H7ϓkV7fd+Kg"*S6!eEdDэPn (TQ Tl 1ci>Ck(Xe;{FXhYI[Sl $ZaEI!]Z$79-1<4;Bf 4f-.e׀Z7*AtB<6EhXCa**4>J 472pח tĮ,Ƙs sgXQZ[eڔIf2%*֤}$5ZJ`UG}% maE QUڝMqmP;:߲) G-BF<3 P-cqF?)UeY6ߙ ަ[bеG4bMqEF{9 Up IOIL8AsO158nìss”Xr9Ay0aɅź*&yސ:>8N? `1"OkL^TJ#mn<+ʽ(g0l3hCwmA >ʍt8<"}8 qh$A{㐄)+N&z!IN**1yo/\ ̌4_ӌBzcB<_Lv|Buh~Bx'd`~h-i3qú`oRZk'1חRӥ4AqϺ0>?q%I78+[b(>PU8LE4ˤ1G/( 3\ʘ%]$ L"xM0{`A&r65^ HyeeخZ& B q$/ ֞c&,cL-p4s~\+";8+j`QgPe;/qƲj.u: k*boC"1 @h]#A]~=~v}R[bh 45/k210=XDpIA{8㷅j˭\2>?P@i(/2$w@ϡphzABKԆ y IUaM0MCƖj4:z$;!l., sp}C<VrKC;_,pʎ](-:<-^4oqeLO}lT|lW5lO<g'OGrD<5:`ڏ=*.J\vFsޔ! 5"'((yi:$D"$>xauҀ,Zlıq)¥+\6<^S?s! Fb  ; dE} .m%b~NjVG7,%ddTه~4 1"D @k:$)/DKUW䉒~O dpMXu@W 3&\a,3'VY[b/ ē ft}~G$ԛJTg5M5^LG.R?޶ a&p]Fڷ2>g{C5`.'gHYX礘N&MSs Yy&MTsnV-'8ĭ9&[,L.iWcA($pl+z0 d PDG|y80\Hs2uvpϸmZ!')V\@M؁,شް."(s-1o.M Ƈj:RΘ|'r`? 2 xie;3|rZ'O1d[%2l鉹:"u}jd7R#V3XֽٮtmxUw|S,)`-x5ڪΙr}?̇ͅ"6ww=:'gMaQ8G ϐ^OV887igO6DJ/̱/SVW{Iu:ҷ\7ku]':]bD\?tlѷ[¢Rc<{H‹f%kN'|, aPҏ 5u/6@#Xh#?]{1q8m `(kr9ȩX\wY'.=^-eN0i Xvty\E<|Iy].E/fvrKLļﱒwϏD]=2Du׷A910"Z6y.'FN21K33kTXn8eoc9"Q4U>x>Œ} ;0IkzIa餳vu!\=9wF&80 ȳ. 7ZކyQN'kq}3&fd~>.6.l Z5И@"(o mOdxv⠜3 zcg[D,7F92-7 [6*tɦ\(트(q9'؟1vjXBU53MyxMi4˖<@$7e~ >`:y=c k1ߚ-"a(5uy~2G]u\q:UCw\ V8PiH6!w0g$E( G 6; 9KT !0W0՝@|&nh$ߝ9{ a$ 1Ӆ Sc!TRt3욒:rpV/hwv]bYtU{V7o 6cJ&d8DA+_zf{Iē 2.AdH;4!V]D:/v{`(@u:ҵ¸;8CjcI-W|$oPeV}I|8kMՊ'Rbq'Cft.ocT޵мM-8ce1 zbM []W-ĀF$ǙcV+oA =lj$TEQ<#-]dqs6഻(^ c^L-ZFXv n%aU\`$!s?.`gurjޅYinȉ %~O߄ H)6:X-?z {pPF!DT'*-kS/Ċw2ŝ#^6!m OB}pIX :NgdFû`H9_ڈrs,so7#$E02_?IxRLB2cԕ]Zĺ+b5Qg YA.Yza{(-c(UTqx% ]*F+^܆N&㽢8Qu)[믝P45C3JD]Z_=׻s{J932'E.$KߟA?i du0o] Hl5).uM'NE\qGy_*N60Mkpa,O~:3yU$Cj=jh67%|Qek% 3\K%"tn ywi%)g6$X]oߟe~#psU92 /r\_ͬk6[ӌƔꚬ *_zUԗ="rӿWI鳿Y}4agcVh'F;%9l(|+=,# @,46̉ yB Q[\d8J_@䦍>e2XP&`|1;r@ ${:Nem`%khc" =Qx Fmm{FٲDpDTA=ĞO 8̰{)]}ÌA%lj,V W 245C堵nSOEQp.;e;\k*sv:eE0_HŖ]l1HǒTfe;hbzʰ"zlk)t2-w@-$efcqF'bN|>qbhz_xŠ'ײXYz=m('r?ٙ^Os{IΟ,o04KՠݼsJ2E͸@1G#mCh6Uuܶ*xsl0E_0R"([Xu-vPγ ⺗]ͭ!_PfG4V ttz3Mӵz6Pvb!MO/K\CMDxvATOSylREKr &Ӭb.ɵrTv"CFY!,}7c#5t !1swmp4$TF \n{K ?-=XyS_.NY6WϴX=+MݹڥٌT<{&ռw ڱkcKνۺd>:7ͺXF`4{d)w(dqv"!T^t=> bMq\VKw4*yUq$jG/F@5 ?pv 3=No%<1v+oMC 0G-~IND=nUx`q>W88L#8E( X|9tiL$3m?;ס%nx]玎cl*Ż[~=Rܬ?{B+qxەEYŞ18a iM 3or;1ID"FbSCNͮ׈~F1NȺZe{Čz<t4e"G3@._ke-ݡi&jC%1i&l["$(J *s_uJNyp_U]X:5#AĚd b-V&N=LtΣ~o:u $wsv48=owpmY;kD[X-n2.j#a]iu".|ߒv*RN1ZD$FS>tށ\}8Eζj5ʭMN x=4OA Fރ^>py*6zǮnG⪬>l0&(//'13wƲr3<~7AJz"җ06@+ Fztg i!^/{ ~im&"o=n77y .8|ÁN X}vV1fv 4 O"=0IIg 99w;+upml h04[dW &R*flv8àcsjX3@q ɴ"J!C\-vu D@V/kEhqp&瘻٭)ZxI6A  ԟ Q4Q#&H{vyQK>>t.6uQ5Mɯho<ߓ 33SS2>35r0ڇSY0TGFeft =[g/ԉ]倦]d—+̌3&>!9$%u~XP#}e-Q/y)a8NU'Lioam ͊ I((l nZ4F'bA J M$~Y4)gL8{4e3Ln j`}9.e:6@>KXyℊ`%t9]YTyoN4x@ #+iahǘd%勄ZQ8cx|{a>d=>uFԎüV̚_m6Ç- niesIUò~Nқ&S͎1{૯"'"՜@ M߅;%`bMYUCVǟ yxQ͇MACarPG!ݵv]ta̱b/Ct}xرӖroonkBa?^wktxP Pd[Az<,5ԃ\"% %ԁk!w ]΃sp%s+~&&k؟ iפּFk 48Ԃ7I<_0C܁l& y7#]=1.H6#RtȇX)UUZ#M'ڀGjg`c‰KB,j$93;ci9[*0,t?m[X޴XmIgKw'->[jJ {L w99PĴBJQ$j9^06+@O`N(STgX.sb,3ތnl]!)ŒJ@YrwD26ihպqC{&qLG/S{q̮(18 (97MgDt#fW8,8p{>!L?C<ΛɤN4wrk_9;r…GĶn'!rjlvw3i? GsF}fGpGpJީ+J"3Tf- &s߿y߼K 4DoeU_\ k?W.WN$he,ٛ<ʕJ$DD(tp^q$Yh]n`& G=5j(W{#'Aî q#osc1$-#JǟbB-4|%gCkuy緢Iv T:}G9! )[YWk]4˴a0- gK 4/w`K~EyţEgayϐWOcr =^xE})B Db>OV*c?A |($e冖aB$dt~k;!nРPCzF;݌=z> +jl.&E+r~ |$9'vf%ȜXpvjAMBdY]a($] s829λCdf'&)/+sh ֮/DUL"'#a)J]s]Gybzbz*%B-О|Hdԧ]E>r'U{^5~Ge#nUaGܻY)Y'f:ff=9a2X`R[ vU70^` Z$g?QIf`m{`ip1C> åhks.?-/a,V,uG{߾B 6;$^Zv`?,jV()Q&A+"2C"ڬ(USKgH&B>aT7awXF)T7)=$a}?:{tm)ꓺnO\ogV}yj M{W;oQ;WJaFjaTM? Fo `{阝Ћ+cQ{[⎓0O7leZBU3 >;Am E[`r/]'cpb\cxѝ[L/A!\V7dP{TA=MM~Al8K|m=G$4lQebբ[: :v9sA)9|h Oڑ$N%b *6c"DN*tۘo,k<u. H*d0&jKLLI]5ޞ ml~;59odq᎚B-Xu@LunȏvlBBzViBߪDL-|Fvx"Ѯx__b@[㝥7r󲞳 ZOfPqM9HV$j%IH!8ވ?Eiop/*1#yLk-͆\hųfز\O89-~t _ܭ5P!D 5ʐYwgTeS2k!4[ wuc;wEX0HAr>BNBlN쌷TOtЛLw{R],Xjrӄ!3="Jn)2(#=ݬ$bUno.0C!=LjWqQP|ƢiI4 pY3z :'H?ywo]1 !YmC[=Fa_lb!Lo8Tu٫2#.;j zbvumcLrߞw>g\$+Hl2 PCO =r݉Y<^ky܀Fhy{s'wgNJy0}n[[HLҜsq%mbS6 0pcgW%@)dDZ|T@z oJJ,ii`_e^r0߬|tgY, .of֌Q T1aĉ_ t݁ `6Γ^s)hcx)>(]f_B4vĪ߸Ӵ̍û oՐ:n[I 7 D-oZNl;-A4]~B^$x*p[Bn}Ff )D_5+`yc.M?3ё؄pTxF'_Ie%*dGO@Y=@.jF{8 R!r<ݠ##X%eP @)ol։=Y񝘘١0s%L,5~ ~5[MޅADZKbV(e`']TXZMuH/^~2O={Wbd;L +RTfs%I-f;gXCIF/fKX ;2bNrggb=)AY{]9E% { `7P M{&SNJ#Wab=+OׯO'_}7vwFG f[0gUx!+mb0@lܥ+Xx (t?y\Zwr;Tp&.܍2V Fq»E(fЇIrQEԥo,R!׳1 Ir-9쯆݋}+&j rJ:VחmY ,"+G&eP2]ӟ WRfruNK46tL6Fdyk&1HcZ#;QEY ^RW1 >Spi0\apY^}&E=1RK)vE5EWaZ@ *RnjdMO>s/*FUK Q`H90I,޵m- Ӑ%LפiNsB,g7Z^py1.\V!. lī8Yi2Fkϼrۿk ͷ1+C}XtJCݜm3vQH>;[PGsUUJ3Ϳ{Ӂc}}2)&L^4 ó&vá88*PN1vGl ƗRt#8 6|b0a@GV-J$$N_,|i{V19@i֕(u?wT҄\Hp1JmGuf o&sq*Xo>>ᕺ%tjn&7 AYSV߬5' أ/>{D?OWqNs۩k(r隂 U e0&YMm_iSFK5%вXEMaLG8і3L/PRCh@crgZ'v*8 R_. Xq";S[{j%f1iF1wϞХ/SrƢJQπS\_qa~``ǎ?/f2AoA$PX`SG[(FZ@y$o5b+!a? L#9 -HIh2L_1ԹE#4J~Sa۝g Sx٪c]6]RGɎ^M܊OPZny84o Z m*}w=^TqP7 [`@eU/>Vߤ'S j|\ VE^(+WC2@s]aEv !;ڄX-)1^qJlwy[uf4r&ƞOȌ..o'0Y>55]ۗ}̞=#cn󑪻ZnPm<:U$(H"ٲ*n=E҈! = =%Uj\.|Qn%* z'M7%oS]`0V[]Zgwtn-#)Iy(t}@;`ɞtȍeOPg{kH͙+dY5 47CȦ2>EG@ߓ]yAlM 5.ɰC49b͙+M˜EDmdkB#ƟQwѽ9&t#4Im%G|".-|je]נuBl}DPSYȨA~l$[ı?nтfX_>'?uRV@K^3Vᡜ|:B8CpCJ6-( m1AG Nt>{|_ Bkΰt89U `o|6t<_OG+Zoj)0@UizǃW6͟^}/^y C})k60K13#(B%"dWca_UU{2I){mV@dB4w9oQDB7a\'_a3(5SuMϨD_O,'Scyȍ7>X wu4ѷ`dg`lSVN_c8Q[)N' !@,&/qX_|U7^v(Ob$QP)+>-ְorJzR*9Eu\} (Ir3&nD+6}֗[ PhVy36ܘhs啡td_~Sj7֙R2>ycZNj8%zƍm=Ӻ-\K76!:8w:~sx#D,IELavyqKTIId7ۖހ2% +'9LPİ6#me2'G*cɿ08 n1eـp5e`51877擄>No9eŽ3 P`ݡ`^&`?dx' 򿶗kalc7+JQH]'Xy똥te2$E-CQkSϵdV:F}+wpbm/W,U k Yb2nUbd?gu& 3nTw!^D )֨_mQ(&ZQ$tYI#Ía2]b-jR^'j q`$԰Wnu6˂;e5-ݾK{F9=ݜrS61Yi .9䛧+WF:@MFα6,@0kfH:NtځF7NY5r@a]v,=uq#ld ux7 x`6/.AeFm4{1vfm<#8dw|G=(ABIX wv(F2&3Hb2ju! ,Ƥk8=W% @cbIﴍW4>9 ?/<"wv=taUBiWE{5Y|%|lj$&^^i (Շ0H&7QT$ξ׊/Z')t-Wt$YORqNA]~ܠ՞A?m/P -4!_/BLGzujA: 7=)^܊\9jm"UEa_H|Z75ykJQEח7D oBnH+ Ej^`$pF{Jri)эĵ_pMǺb?CdVi!^v8 BTή)菡{l3XKlgva&щMΣF:shI>F:+c@ԥR`ᴻSfFے+^8' -Da+" wZS==_<CGf^̔3቙ !zyne^[MngWBheA)J>Y;Uڊ eSg :Ez5Ρ7uUvcuɬ#MeMmˉi_kWպ^J2ҭPrLT189 aQbȻܘ5Ie#LY_戾%=_3=򋃹P" s#T~}'9/V5/AFݜ::)&Q$nSi_ F0A{8h];+d`cD(SH*"9H[@5WĉZ G }Yh=>{h0WPH&;b/}5` -.mm5#cdWjz C͵"s_X AvQ\Hcj']]!ǝ\.~X$⭖c@1:%ub!ۮWvd:,ԍD\y\hW0 $kLxx.'Xٖ}x~5.IFDoRZN`QctYSj{f I$坲e$>}1u% ҖYisk5#0:.!\ +E>WhQ:D)Hg0Z8^=O@g?"J+_z3(dx.]NӁjM}yx?z4f5<ZUZ(ԈO)+I/!0-$r)[u!JX*g|DȥP# [x _ : =Wcdʑ: LAҧS@ S!#Y 7 wA\_()#T%P,]T$"9!> tJξ6+Eȏk&WNIhGDBi=xNdnp F]"euٱbw? O,qc7KI?o_n |iTׅ}`NNZaޒBo~V~#.EQ'+@rCirP=Ze) <2EuBHi'ڲ?]Cn%Hbh?T@nb4W8Ѻ2dۨR̛ O/sw.G.gBЀS<8aŨз~:0EYCq90گY/"(f,E g'Iܯ,Z@@ٵS͚z #Gr"궩FuU]ܻ?}GŽQbR郱2 ;tVZ]Nq[j@;С}\rn{W%25ru' 4IK9ҋ+#n:gKwݥgzvGE^~'UE&#V.W5~XX;jQriWhe!qF4KWmfY7X / jTMuiV R"%kf!tb8pk@O ^: {hM-45:qQ'5{ )-,j8{/TnKOp7R\?i99:]FB,f+-cV}*\okM !P?T[JLz#5th !b[P]ʣ^j%NgVԗ@)nrenicUp Nd  %u0Ν~6P3Gz>)Ғϫl^uP}4^ Rvy^4V(=Bg.2S:Lyf[`@ jG̬Zy;~vĬ6eЍ++]6,)0ǜǸOggǏG|>쿗Ei}뉼%XN.iw]TC{b{ Vξf_ph7% bR"R2CϮ_荁FbwT'g瞊k?tҷK >Xý\,5_-`d3͋wO?})ϋ g? f<@ypgF޳8^:o<#<#{i:*٧T5;^U񦨖]4 ئr0W45q?A; _IrH&]yWϤIyt~tcAQaʖb?d߄Gp bidHtv׏~ő1 bKNmYo]$d:r4Wß9; _\.C( @*kF# Dj0tKcOii1m5iA$9eB@边񮌲3 z FIp1')fH[OIr&ע602.7qT]#wn8 $`AYP?{K3Gi|Jk+9fZNvQX&+:ҰGb"Ŏ/C}S#ap)AZQ_s`iM̂72A@Rc;<[8_ /EV:"Iǿ:lE6\5@./|;#l=48f@nNZQKdMi Xp,RuC[ՇtlkSe:ʞ}i F&$^3NVd߾:dGa/$|2Zqy(NvqՆ Vfr ~`; zCp uy2QRKI_~*cLVvӬ^^vf1_"59+N 4 S|1a܍ܷ^g^˞=__;}oy݋0}KF]"e>R2bgJӒEQWsy.یWA4i8 ÁዽC>. 9= ?džSţrByR(ZPLF?GSLZC|*bGVMAʔÇJnI\짘c49m23;k6n_5ـb6JJy/j&EbP

*z.CȓRj*;޾ dC:ēH<Y7Tq=r~LL+JsL'A7y s),\:fxj- y!'b掩~ ȴA1VAh@$># #}B4T˳͹̝*U汥AWLb)?hgZ)_> _РJ14zx.v(L[8͇cnh`o^{1y7C@_328y\гD+A,Kl^ۻ.ڴͣ9e_t8,7#q'5[o@ (IvUb0={t*m@$D,efaxx&O%*.k 7h`9Df 9V@k ҫ<AwJ^ u)3n@sVBۥ(!e0Q(2[YK~܆iƬ|xrqiâb{4}-:M,IF|Ӻv'}NSL[8伥kb#90[M]e@(5xs"$ j+@&-8Xyj]cR`렄 @J"tJ_?=}isгwȸnQ;#ǥ\,H*aLjQyI I8:}sM\ S19"88qT.݄a*H=I<%v$tx{lv荶$qlg5ڼrvuZw7q5b!8οtCLO0-VW0v uuW˧ݒVyc-t? .k=\PHd3C~wIT 17^lq"iqTH'`v})b^@φ8$_fTHLjT]+QD7hU80H)>Oem9jj@ih=C7JqJMR$fEdvH4Өmir̢@5-ԨF6]"#,]mIf2 fB_OZи%8$pܜ:s-bX!8&:@F}7sh ᙚcz9oN-ɌPKyVSa$K2'pip/_vendor/pkg_resources/py31compat.pyUQMo0 WxB%֮#v$vNU ,$SDV|d9~T{"8V4du[Vj\ |ZY)epeh(pYcax&;.?tŘHI $=-_U"{ht~ixZۧ"hb}GjYغZtiC6x'yTA Je2K2fNبB c=ϳlOlR|u8MUeˬsR˘"ϧPΰq; {;帘[e\zXIv`1A}TB+PKyVST;2$pip/_vendor/platformdirs/__init__.pyQo6+Tތ:t[-.Z*-61IH*")S.iSsBt:NIaTR"ЊqIxAKZXRVI銦(\!FJL..Tneʱ3t.uLspk!@qtӥ0aV+ Ta >@WJl䋿?K~{w_#4$pŶ"-tU~|,?(,z*=hOb\?װWFtM$F$ӡ%IYDM`E4Be3d`Lkan?_'׳,8T;rH|~VAQ*ˌsF0B6FHV葖?aŒ= 5_0ps)pʚQCgKEYUms9'-!,%D9X=6&eKcxrhWtUsNJoN%} j2:Eoq#晀( dR-zLҊ'A56lj7$U0>ѱ4"}&D~)aJ]s!'hXg;QЄ(mVyK s\|V70hѼYӳtYԺ{6ۉ7m =g]ƚ=ÚfSLB@\H*"!eH2$7Ah,Դn Qdajcjq0*(- Y'r^URs`um8/jд=0݄rE:3T 7IuǤV}#uHgK=^w{VÌ ZV]k=Xs\gȮơimv@ Syht1͙GC*&;))h(=)B;KI r6O 1x:zSO!}w>vڮ?A )BPmQu`uh:$3Vw=H*p:ճv˺ڔaߪؗzϨp?_]׃?iLU]%pEajϛP- ! X l\"$y$j=Eu+wz wwet5xGھuH͛X m:#޵CSۧm;2)wINPKyVSV0\t$pip/_vendor/platformdirs/__main__.pyŔ_K0).yY AQ|S !.hަUEa>sϹiܒ}H#_z->zQ+e c_ׯPAF3b$nv.NyݴZfߚKP]$NrB5hLCyOUsZ9#6 wV;nĬe =eI󱿳c_HSXX E.L䤲obWjcgZ@:~cCW?కx6g"} Ǒܶ C~x/ň7R0mhxHLTncPE`CѾYPKyVS ->#pip/_vendor/platformdirs/android.pyWs6W!@=JH ByYIڮJy%5OS:NI^#{7ѹ%yiA Ih|߷+QYFxJ!NTR8[j]I\4Ic$|ATNOޜt:Mޑ{VDnZ' *NJV`2 $>.ta@b$Iho+)**>e478#h,PGMyDR]K># (JhZتSc"$`d^EgʲitVaȂڼTEgU晴H_Lyo0(ɣbg:z@lCwkHMڊo$\#>+yi0ZP$kTFZ}V/v%؊vLvvz|u:35}XN6ۡ45\N=5 m]x_ `dncN p<2(3U]A\ !_4T &4E1h3gW&7 oK?FQ2#5g܄%mԗY CTUt>RwoM'Jp׷s) {mvKͱ0o`{;a}>G =0M:?0)k%xzۻ/o^|#=]Jcށꏽ?PKyVSj?}:pip/_vendor/platformdirs/api.pyWo6~Wn4Xbb 6-Q;Hݑǎ81Z4yQVJ[Pf"4fiU['~isc5KlmR nqW8 ܴ]Y$+d"2}|)dLY *6%A*Xk&|9pafŃ=³'IR0c`6S,\eHppTa'B*-n BËlXUIVSKIc5c/g!?Xa揂hJ/R.{} P}&,_:Mr` v_&tȸbZ_9UVN }X'>l v}h'6ԉJ& ٢^pspH]q wP, a+KXזlƵͅ ؈ +fQj+i[ʊEi~C J֠`ۭVV+!.8Dpu^J -\Z LiDj '6--©6R gaJ;q妔pk B"όO>VE L{W}S":ձr 5҄AMuoD:e ( V[3̜3IwCM  3X׶oZrK%޿ /^oQ ̸M4_7ܥ(?A/A4Xr"2;6þp|±S`6Aa`E9v]lF|<=^F;vwmtxУlvQ6C_'‰t\gzħK5FruTQgl,#h'28#r|Nd8F[yzdk}p, Od6PKyVSŪ.k; !pip/_vendor/platformdirs/macos.pyVˎ0+Y4uh:MUiPRU%&Ėвvfnz8815_wGPKyVS9 pip/_vendor/platformdirs/unix.pyYn8}WJʀ#z`$ml"IX͍, $ wԍrgs9saRz~RϪJ S|VP$y\H2|Υ\,n~R1BziF"_r޷=3G <2,>HCl `SvuaObUJ(!gU:B1xĔzQ@n!k@(n̾I/豩3ED\|rM.cʚaOtPRH%eْ#]m&@uE@.=|z1Z ^B8+Jx`5\v,%kDZQ:ֲ>o)y5̇? ) &s hȊi|Ų`[i`B! %ṫuCsq7tVm fa)B5:e227qL̓!@9:;=>.7)ltd4pP#^=ǘ7~ m4Z$/~kȰ F{nX-6?3D;a Ge>o+pa_BMY!pq ju.c hF`LD h+hy(>ilKٯA.  Jr$׊ 5Sȗ B Dh(M,|- m*Rvd

% wPAy {^);# v;vhMu{mm͎AMA`|;(vE|s{r4~Q9 */EpG'RQHqȇEԜpRMnlK/>;@`s.qU;O b7`U[Fz"KH5:ry~u{\Ե%rfpuhg[%n[v u*:^,GTRdC|d(7hY䜈0912#`#zWWowOD]Ҹ}4 K&. "6,j"Qz_^_ 'Oa1u/:3BTJ$ 㓟@r1<$D<nb0NoWRvuusMnlToJ Cb,Vˠ2;`# q.K|)6tØCI}Qu}~^a6aV;m9sM~nNr0Imӫq`2K4_O$]*8تSPPN` CX0`4Paa#Z,8y5I`R$89{ 0HHtg?f1}9"2-y WŐ[YH>ͲVۤ?6i$vQu/׽RM&pU RFyL+6Ì r`p*^T'1!F746)8[x #vfT!&VJ6ΰłϙ} 1D4hxO4 T;O51PUdL/sE. A(Yzq$FFuZ VWNA`n3߭ߘ &m;fyK W֫!]dQi`3}o7d؛U>+r)+ Nejބ>);4``+5U0nkPKyVS/ pip/_vendor/progress/__init__.pyWmoH_1JT/tJ 9&Uu >v]^ nsH1,3ϼ̳)6$#tò|3A_ބO\Ї|deˏ)ݳ|ɅYJ2`C8e~4 ǵd$L9YC` :_e ª֒f4,g[a*YxLM/hPLS'^h,I35u{#F,ϖ\,/WY.Q\Ռ9JO#R!ʒQk֬xId+uDeb/_E'ŪPB,{2#\}pG=J׭<#*> ^/*J}Io^\_5[7 ($tS.= J_x PFV2 ^xg/X8:%B}Ʉ\уժтEO[h92 ZR.Ͱʥ 0Kf (& /!=S{ B :Ơ->*Bבf,X|՝Sj9LGKa4.e(e^&:afb~؈2$w;|>+Dt(/vC:[6-.ݻFXイqY[Z%G.͚C% vpj]noucvPԓPG| 4KwkPbp(㌕+n% >]?C 1e>X**;MYe;_)}vTh6ftZA#X/RM}hD]$$ǴO3jC5aIWn)FPگ|w>`'fvY%BwӺ[©5c]G*ف| T B0ݜ9LCq 7Xm,#m"`<[ TVk6G_C;W>XK;^uTKd7lH0h1VR=yo+ iFa%LVPE$Rz]F'F;v;m׀fl#+lq&eA5uG~hJ^[J!7Q\ x`VZu[%5mب>p<+lŸt>udxOvV_9(PIGx[;:烈GVPKyVSC_~ pip/_vendor/progress/bar.pyUADWRL{Ɖ52xm:Hi ]'& -dhBqɰ761Qkv}o:g~1ķ#۴cj;*5 ͛y~>߮ csZzb0`b!Yп_Ø0^P&J ҆˄-71% $F.VW]XbI59Ӵk #`\ύuN'Ǐ!(\s`d=:t .2l"~9C6ОcFS׷JĎ-y0 )xAچY` ;U2`{UC |qh.|gc8*588 ]C7R5Y)Ф;-v{pBּ3%MIJtY3.NIi 0{id?.եT*Xd*Jˆ2)H%fAlĴ(~55+5eJʤjNxI+6VH$}UIʶь3!0PϜɗwDgnt*[- w4ǜmQ}6R;۽ntfOmjA|5GQ['/,ڦ٨ ]d^:w7ws.TW@LP-#Dnc qe>=TW_ީO?TS/;{cQ.z.옗uXIg*X.'S ]I1$V$|Ss7Ϳ>?Lü3{0Zuh&߇_-q"^m/A 7޷ C#Ix Ю֖ѯHoݵ!Yqכ^q@ka:q,C۩Fehk;Xe(G<^i #6މӊzZ 'AZFk'ako5[-tרǰ>6f= p$xw\ =-Nc/PKyVSN|Mpip/_vendor/progress/counter.pyTM6W (lZ)\ Ȓ+A`h-f#EvJh_!e(r(GX?.>V\& ͭ۝f~fB-\ )^_ Y7zmp0{ٶR+VX a**5Z]ٛA-4it+F`EYdW5 1ZD⏀J_ ܵ qiDa@*(1hǾ|N)(0,d:{dAd &G1a $YIrF9J=e2:#2R$I:Մ%3cḛȉ%4 ,f3_|r>F HR4Ɂϝ_|]P)L H F!hp|CF&~B5,ևW}x݇7-2P>s2.qs ěp5g=y._|,R <9Ə|>a}PKyVS.pip/_vendor/progress/spinner.pySˎ6+.2l* Ȓ+(, 4 A,M@Ӵ/%e{&ݤZ9{-GROmN PM}#R8x}- |vݽ~fss*hFXa Ĭ!m443hn2-P SVFl6U@!b#ΪF>Z]\5ȮԵ@ձJ5r%\WzkideiRk+R8}F <و$9Y8AH، C@UBQVX:NHEhwgbĢӱt#zï{ u+\4N`j@J.m>Ižp93y8vD,EQk+Q~sʏ)SrDqwD?Qqtm6^ܼbZGDbՎr,)=(a I~mNN*Z+9YEA?\PقϢX5RR_$1?<5vG;+npV2\h7|_чQGO\u B#`S# &"*V\=5"ÿp|M\;x Ęh: gk'5xi^;m~*%$"bV_ٌ^}7ӏ r?N)opz<ӔcIr@lPMGtNGp|} 9ϸܮu ;=$2 rEHIoR͑Pl:TgԐ5Kτj4u2|Ip0z ]'iuէ.x+-M<ӃD{]zɖAvUuСCD8W6h4zW}22(@]Wu6lavOљ}H[xn%Wpe \=OTlP@jks_,u7n;ƶqH\+%J۪ F6'J~Mm@@Fټ⡼p[9ek|JźzaA ը'u]G[gx39Mg%<Z Xێ߿h2@}^\`P Ab{ Uͪ5t~7߿qZ~i7 $` r t}x?y7'{obcƨ)ů_\縘8WЋ7{lH;X)14k g O^={*w:-=(^WGE&$H^)xhh> ^f{I?zHw%#@s  8Ctz0$K %r=S歨JGZLj뙯nŏuOKGDSOs Ɲ50,aLtH0cl[-φ)wNjԆIJKLe]:|x)@th:{J!m~IGG$$]Js̥)dX+ 2}{)1yq-nCeTW¿D]F D̼xP{)P.ex'ۺ75ٙ$˶^;({GxD$yVq%dܩcDG]= fdśG38 PKyVS&e#pip/_vendor/requests/__version__.pyeOK1)zMcVARR 1;mBw5J?IZ̼1L"V8$zK}5$jiEε&c#}$z5ee ,V%lE4Q!a:=EvVzmfe&fK) u!%B|eZ`%(B%UqV|9gp)Ůd1v3(~PKyVS9H'pip/_vendor/requests/_internal_utils.pyeRn0 +dH|i0ðuC;MlɣGIf:Hwpx5>=|6"г/*c lz9Jݓ{6 zφ'h8;͠ a~ԙG 8 „ S$=3A~R 3Qa?{@eҾ6jW*#u ڂw5ISӣw18ȠHѲ"%yfc劐Yf|9uHh,RVTCgZ{b׋RNcLm$9QEϡˬ"̓e݊|K_^u^f#r4XqۆܳQj0c3~5ɾEf N%h9J`)D$| `0iĝl5Y;ObC$6Ҽ (IS4OIz 7m̊ۓgEjPo~>H/7'_Joi+|_xZjzDE77<Ԅ9X*X ?NW^_oO~0 LԢHb4+d{Q"SVRي,b%"8"I? ^W+kp& 0V1&4ہՋd v|JYGZ.*KA6pͫcF-Ez JPxia쑧2EqFPA>^%Wm2U@ `;Y~9qZ ߥ޵МIД&KC*')j<^ԁJP\kY"t̎1 "iӷ਒vVy&W f Vf(85ϔ,Ln|I 4yq37aVh|]B[C܉D+2@{C]uJ!iWLe ^X]^3]=H[B?* T;!1u o\uLFސ$baQ@f`xҕy ԝ6Oaʙa$= ] Qtj˗/ ΝB#[ J3L#r #ݩ%dR`Cٵ:3WvG^B3;PK[JSJUiiXl&"44Sjtsq/Ab@OiST>ATtvr$uTa༒js:Sc*%`X|O>8,r+hHa d|EE`!Qi֭tAnmmJ: f3bwFyft4&mwfp;;8_ѽs5I1\Vy5wڸh8%=QT*:u/tlUv=";卖eߊAJ2BR͌*i;@(X 3Onup ]ӠZ qM/=som8%i`a>؎ZEciG͜U5Ppw~h|w.m7$AG>߼*RARjYaNwY$aŽ:PϑTǧ$SSa"P5ZB&(z afӲLdo :qz7ScX&4;g;WW3ϬT|",N˳ 긝Tu2z}l-Yex tSJ|ۗf;'3ģ$6myMWnqˏ1SLa''QuTф!^7 GBM OnH0y:欄>$PnxhwJ:0 -p+qE}FQǐF R.c vsBuvoQoOPꊲ 80 :MV`&9 4uZ/eoELZ`sKfQqNtUnzqeX80B(ȓѐҿ0l 26G:P#]C2}5A:!U *j&º{I#TIb"ybۡL%0~ sIlMdf*@_׳TR~P̩=m?)8TQ&_x4̴_M&bPf^8UFn`+eKqwnʶ*):NU^V::z i+\+|I.0dkb ~[K+S &Ղ5ʐ-鱎65#|k  [|X}4>|8,K{tĽ}.Џ~7w%zJ³g Գ(DV;݀CK{b Y&-[/mY2 hܠp;rp-K ¡W#u>AUfL"q(G9=2SKQ\#y.(NbkQbO *VӃ w_v5m\d3W,8O4vk+AwkT iv])7bm@FӌtKceŪ>w'tO @ᙲ2'"VCh3{?RVu|#p|!t0}y1A3 s-.{?ʟNKQl 6\Yߑ4/F-=Fc#3iL ,fBYH-6*pgH=@Rhh6޻ j$[ dbz?ʴ`t;2uY ?SH Ig6"xum*^xik]x0Dy/Ѡ!c)X`cPupuHdT薹ia>8([+@8VHeC.XmĚvW$0Aglocwll|ђY.tW6u7=:Dt4n!eDgim_t {wN2M$?Bno JeoNɓ_+4 E);^t:ӥ4d^fca %« ϏNrbi#%}y%-e2`H3'J;23C3*!#Pc*LIq~/'7*@lm]^~aubQdH $Dq8<{1F"o= (GM1/P4tqv>=>;?l_Ӄ#$q|8>O1NūǠhmt߆R2qz=LRlEL0[[ʅY,W@A%Q5PnhO>]2L^bVt,<}x99;%cZL3.%b&s87+I9DKsܳBWp7jT)#y==Bs{ 5ck$LD_Mj{dG[q#8 H/~#fԏD%@j3'nchzw*]В>0@,C7_'Cyz(z:9jTBYnW2*'7=ʠ{o zb37Xoq1ddIQ˟ʐ ;fBE63?;CWȇ rX;4pO.j85WPݡxS|V-,K&jE(PXJZ|p5(Ə4><[_PKyVS+s 'pip/_vendor/requests/auth.pyo6w<Vk"1dMv-ڦEzm6YTI*N6>>$JCwސ~>b~L*=>7^IbJVzg.\V9BS^( 0+4PEAL*2\x~/K!5?I4_ 9K ( _,fR,ɘ*1q㧏Y 2NIJ/W2/Tl@ HC+Δg7Z҉L 6fyVi8S-Y֢܂12dSދwgߟexzŻӳS2"-yfZ`N6|?Dek\RM^7e3$C?qP%J&=ӕS3"@"VԸH8kCRV|>y\B-J"fv*@ȍق^sQI_rL@nHP fلdhA #2:;X ɛ*j߸ i (:ZBcCL cs}1AxQ+FIdЊ9-5(~H?g Kbg4܁ )>ksQ -TB\s&QUVߦee$sR`_36VT53c)ſE:Fjɑ$$X0*ɬ8cMviRsTi?pS2hABSqbof `R?y*1a&$- zGߖ?#Oro8$gLEsZncVacjk Xq%5qЦ XmeȣN҄Pqt_/M;IRD-ckL*yB`90guyS6ae`La  8 3 -Wwb dYX>Dr ~.+OMϤ2LsY@RX \)͉^F* V0@$cpA:\ExuVI7DT`Cך[s^S+:GdA+€D~-n숵5 ޞ>i".9y9xJaϪTúe(˳rHAjfܗ!?'믇>|b-OaN:x1Jb*?ŭzZ)$to70ڡtcC{U ~}jIeQK 8MfpO20V s!86{ [+N8^f$k$;t;={d·bkaVWp\k DN:gD`?5fx5j?F`ɾ+=ٰrPWSD5p&wT4gwToV mI#)VՁ[دg$jJ&$d;V*ֺ5 eH k>x2z|D6jLDe-R662ɦ\')!U{_wӤ]4I$dTAIrU3];5yau%b*8^!H-h適\A-6pD6ojȫY,o`› l֥:ߟCUc/lscj< -k(#02T*$&ɓ!Bspr\["{[<r.ffy,p7*(^]:z>hp)F g[I*|sՋ.Tͷޛ\ وַ <8%S++ot~f \ҵXtW Q -%_\q)ZR:ࣥG0^tm'z5YƠ=vhEڤ()u̠C$+n\>!gcxGd>̕}ٟ1>o/VFlsrLCfK= Ifsg)PKyVS':Gpip/_vendor/requests/cookies.py\mƑ_7N/w ;I{ڋl c38d;t 緧^4"`=^nzy%Rbz;mPI=3}yWVu]+nokk)6WZҷ1_𧆿}xHk֩r&cgW2GB;AVE~;]w`lVԹ0kd͙{IF]U`+0l}ak*?a>\UDoU)NRJAH$wyoطuU-Dl!J vU#^v8ӵ-F50$e˫FYySopԪj[,4hڦ>f{]4} 5U@a nyýk-+Vvkx6DR+qNv8mOD-QrXc^ U`MgVMAݫnNA-aZm>?7wǽRC-Lk,$ѫGܷ#mdWELw| ,Gdܜxp}!u$XHUdŻ߈|y$0= ({;] LU `a_*JPGV6RXwǶ 模x`ׇ.3=f!dfPI_yJ % `W dS!b&#N/q\4:'Zd etU6Jz+%w-RCFkN' pu!؁Ew瞷G3(#Z]IoE-wߥ/22.ee2 ؅w@ItSۈFҺI"7"ʺIGAFA vg<@2ɤvl2scKu@ Ҁ+]Xd (aŌ˒%Z|51!29a4N/KJw&{9Ha3cL Ǫ$}]Bfk~eeElMDe]SW<5g±B—}UpE 9hR|2(nvԀI/T!Q1iBptZ&AeC<*/޹NF Fj;_c.sy!XK V%N&OV, ) `I'y`(MG CVOi g²ߍyS;>l޿j+g~o#?iCcv?q;ʄO3ݓyŎӮ5ʼn}&dj"lĪ+{+28jySu. j8&|Jgy9O*EKؾ6qzB:|ܐk6`;T2+O nA ɸs0ͬ(g:@ՍO ;%nY f'rc.cQ8ul[vF>hz cc|W9!@ 7P?*<*#*;h{ȍ1ϹYDKIk'*'5h4Sbw{n}T) D `T\ AW0%bLjX\K#–h53u0ً^=9y(]=!!@n/$bxzg TڂV֎g30#U)5dpLr#|7I|6 {~R1E6v?Unfl"]:痑3|k\Lu盇'!eJB)d "'U q6IAm)6Pܷt CПn^K;BI|9j6A#ti8MԢ YN3$L`[NO'\mW`F{+h?LuUs 0sܬ@4xG]m#\oY0'mp*h v~ϼJIB^|h0{/5274=XQ..(E_ b*fJa,ů}><" }q9exLx?5w(OO‡ZBT'} ^"W%4`1h(#L6n9pȏ]L>wū76/Z͊*UFbϭٚ^BHbݜ-ީkܻjxhU z).u2=L% mTX^k & ۓx oQFU^˶AQ*K:^T~jL'vK9]ŷ:z[۶arGr g"MqD 8L8S8Ux5h;|yhuwS[<2EgQmm"~JPKyVSg8G "pip/_vendor/requests/exceptions.pyVMo8W CѥE=ih"mZ[Hx흡Dٲ5|2#^@WJ\\\$yKWF/IfrPYHX vHiXYSBtZֶ(%2×睵ƂpQ8$ \之`|pE ʥZצv(jA!gYm-JRʅLa q#jW®]=m 'K% ?EsX< V򛫨 3j SG,L5˗n4;{0s!#аzV0 i&"/=LZ[YZBlhMc@nC!eۀcUl53~;hcJ4Hr܈Z٧V>yzf2K`wC;fҥmmnZ\Q>=w-wPILL4y Y]GJY3ڶ(Q.:# G'V( 8G'Cm(Ai )Ct(-JSpFpfh0';Kf'P'b괺7\+B͓M;;ݰx%Rڥ VTZ->?hTA$T+N2OsiK&|>KEJKVkYx PKyVSa'pip/_vendor/requests/help.pyWn6}WL]W[ K"A1}) AhL$D];IuH|f gϫ3QF6)Pp EI\.l?B*U @F)\e[E9"()2Z6_eY䒖ILX΅9&V(GńD&0?*"Q=dB2$O" V(R_S6nNTD^TpcV8vƙ5/ N2Hx#z~ .ߋ<~XgK^E9A r$":' 2V UPZ8d,$2kiN`Ý"ˎNnnDt' ƌfZv iK'?\C7bm;؉Kj7GJ)/\b '-iaO#[딧q7Wu,0"2E:@] '4-LMxNTcEȧq]/%R(f] ƫF$ޢ- ˞u7`6yk,2{w+i!!nl!$E`uq30JФ]vn rfPϘS gūn)^U߭W~[/~x8st`)1$/:~!,P-x |c'vؓ=i߹-@m%qeo*)r 2BC H VОxE{ *g$L.S*kb[sp1QV##T rS+s;f3ڿǪYx SF?u !oVM4s}MXʹ8`LH-> oBW8 Gi{7D*KĒPKyVSJsypip/_vendor/requests/hooks.pymAo@+&zrnH<4ФIIZo l]c{DN oo>/!UE͗Od2a?4RþM) UTV'["{Q +Hȕv{s6c'.*'KV` 6?hPD-fku>%^?`[ohv s7֡5FK as wel h UL7FSsn;U|o@JrI,9Z`J3i- tկrm|Hjn{qco6~vݺm Ι~ۊo2yh!Sw]T(G`j=xPKyVSX,n&lpip/_vendor/requests/models.py=s6v@q[ю|S|htKRKܒ\j& fT3wIxxxժ΋|v>{^mۮM7uv?ӋUrWjQuYQjQgYn+6ۺTu+6|ooڽ}ut3TU}=S]-U)T&nދ뢻(*EfݨUk/w7MS7BW*Ϛ\Y+BL@nw ѳ73:WoJՉɓsqw͓m~b0h[7}յiW޺7j[lŕIwM y ] ->OukQAfWv6kźn6lĮ+Jzoƛ/+튺3M82zSzɓMի?֫ T0SǪmmuCMzk:.4hfv^e>Z]EW\Ūl]f?SPޯpC˚^iu X5yqdO@G@1' f긺"Ǚzu.uF;PWpBu>73 ɃN 2ŸO,s]rTb'Ջ*C,.0LhY* eU *hFn#l8aKki΋Hl{YR,` ha7y#Qu2Vhyv&3[[W [jKӟPSt7SKmzevV\~ʶ[D =͇sj]E->"gfb{  KC۳]ZpC gF~|Z,d_=Yk8C8\{ou5܀|Q+V P ݷM my{޼>:P>W:)o_=h]hgNdSkii\2ߌi*8Ma{^y㏧ :>e=ϧo~>]YxSu{oz*5</EizHQr-`rH@ 1%lZBgǧ-|74JpOHmS`k4i^b[Ƴ=~eΎn),[ A g M&S)oSXEZ ,5Zvt*kΊOjg"Y713I] ]h4!jM>b\ͺ&žŰ jT&u9SWh >cиix2̼ 3j?pnWm+L tUsHF_r2&#&`ї$¦y_nvNcoeg˘n6;=u(ts3Jgjx{&{V79Կp.@=<? 3WȱL=;##?Xw-#SE9KdC@o;6JGoi+60}4Y΀9!^8-%SG}+} XYS!~u4 siܷaV"7+o}VC!![fQ|^ OLWdss9 65l}Œn^p+_wrڥl1SCT~4Σ̟=AYp5e1Ĭr3n"t0ƌ^wHvAgZ1Fuj}mfP: ;x~xu }  Ͱ-/dMй&sp:Br>$!3FAPT;}4Sy1xtrhͬ`Hd"Q&tmdΔH xFVɆb H+E&A( ڭ^rv6aԣzzr,qdlvB_:IQi:s->d^kgk*]l 6@D*ԱqFxH`8b#v?A-աbG7yT҈4֓ `/U!ͩ|)=KfFtnQ{l$/l/2)tk0A礝+V/ƻ6#inDXހOeYZ3pc90lO 跤-yD}(Qk0zeш9;UT9[2ZY5`oc~!|0> #᪼ցYS$n9kp&Y]%!gꔉ`ε=y>7,7ps#6Zj8ޜN {VTiݜ?9םE TUkӯ>tU-="%'7"CLz } ʞUG>N=ccqJo NK@  }z)&cXܘymnXX|= |~CA8* A1I۾tɋ[:ڮoA}NMRP 60@R(53H#xK`؟Eh5zmz%& nzD俰`^RaǑZQk93Q#=iʜasn$Y4Yn01;hYE+4l-g=Ga6c~ ,=oXTeF)?YZRD*bbANCZm1z,P7O.nRvnvEG@#O2ᠴFu@ɀyYCUł`04V gwk3P^Ի27NKLmj!T^Tۚàw仕V*m ^1J83wwkiDi`iKU>H";%oE]=3Zz٦= ! _#- APai%16hNVTdhv.lNKݢ ']}aNa͹Hk ?lkwR̀~5>Ȯ͘`>[؞ߨ(䁢r"pĢ驛D@1|!%^`bhŠ4&^H+IbbUVDiەɖ1љT~R>l36t)`# ;D)'ݯO|G"tKd" e<E'N4 * f(0\#hC>@?p;D ݥYt^35lysUɦ4 x 1ԅYNWBFa?`98딽g|cj dp$̖ti&mIga$&KJBdLFa9 3vYǦP`p[Nx^_Ƽȩ>Qn&ؔeV{ &%_dWZ" ϿF@߿I:+q=`cgeQ % VoYN,RYjUrhIDl2$;-%oZwo>y |5w۽]դ ゲx0`e6P| '*5l3M]>ODmGs P4X2):|VSt&+ʮ^PKKYY٧Iܦ-a6 5~{ F[+w/,= 3Oп C9 -(iJ\JJBVL4n4tωq]l+ 4t(!ԱB6S$z8;T&;ߠyԗ[a1&k3fyȱN{kzG㗧:}2ȶwc엧4 Mѓuɀ1{ڼdDK-D8s7{Jx+q$k 4}mGT 2AX]rE|&H6W[bJ*3]0 #i79> @qo\JwČKgƨd^ӓ.9R?NB@4rQC [yzؘ͒ v@%Kr,<ê1Gk>^e;H)6QQ)1Ԉ13G1qtߖ+o"c< 9V ۜ_&0 PVEq[2=0+e", O ]2K(PG>OH; laøhe{{CH)bm0E@Ĕ GbCzMLjhJ+p()`~Otx)@84_1e9{Cn v.ĕ#;3,ļ-X_,{׻ x`iJ4PadW!SEb~}%Ut DIƼJz6i \66##b73*! 8h&nn >UV$8s y EY7(+bhq\ XآJό:?\˱tpYm¸h\ NY&|XO%UY}>Hϔ$LK 0?rK&u9 p[^5T}IN*$%2cs໯qV5!wl鲜 ^U^ 0V8pځRq.{ya7ǐ݊DD`h1НMͩ1a_VrAˋZ#r0@,cW q"WKےJ)X"dq&If`2<ؑ:cFШfHI}2:{+Qd*: #6] 3dT&JӉH'(GRGbV ١r ȓ_@ЛMCX'L%Ǖ*8 >i9%au"apѻ G!}R\F&YF:YFdp7+rҡ;IuR޴I}0nin{"&1ߧNt;m3)LHx`Jp3pOx:h.JhG%]0 &֮u K&d_}\DXK-nUr7Z,Hd0-(鹷XAg)!88 -_^J7ypNj^V7 Z|Qqau;/.i9K (^$ #F~/ +B 10:ZmlM:EWÔr~|{xi\ǹ2LO)>|8B;>B)aJ6uסZ/B*#${e!IB)s4"qHҌ::*dlSxw 1(p@):%IZ-`:,k_9O N!"'2gcKvd^U:"]1),+@3],Ʈib4*Xa]AғSro&ibB}.-qDhs8h0mʻf1\Kj+hk'{ 'ЂT}kgObc`@#굗1lw0K yK{čdp^Ir?a>KuZ:[J1F o6i8H %tN~<詇-M{lkxIG_.QIylLnRܩ8 ôbhB?WLvI>Ȯc\oTM4{Q+et%vfuDྴ%`>sVL@ n8>u`v[JO4&%\o̹Lm0W@ 6IT_v{(B%]@ o1%G(vŮWԼڊ.Ac;yf#8f#%6 Gx.\xP)J\eP9eM\UhJ9vg4WB"kB)LX9ejUT5Wv4v^]扈Q,#zZa95a6g.5F|Gi87#V>X1E | j5qVcPV|,Oǧ^/}:t@fʺՉ/I)wRr]-*^ ^|8a(3a#2rF{M1 I$e ''BD4>i2nƗAaGHwٴjد.vZ;3Ս{S/*nh8m$Q}^]^lۋ +_`pۃvM_h[.@ o5Ӧ-8tmXEK '>I^;Ek؞} Rəɶl0;,z9nyع J* Μ u~NOD`p1Me9mAe[HKwwY6@S}1oq$\P[36v|)܃,i%/#mO9j& k-븓 x=.Daʿb]=|q8]VH?3ӚĬhIQaMomvdѺKLU6gL} gJYO~䭓x=xE*k=!{Wz`+Rۺ?Seo䒿޻$Fl~3[-0cw:{& .?h& NWZ gV:tK@'+~Z~wG3qQ>X=?zc,ӫ}2HK"")re-IIRSƠl6:͂NE4UuX^v13zL #â;̘"` pO܌'Iu< itRB4y^ȿƷԔ=9c;*8j^ ~'Ӳ HIЌTo5vˋVvtVo@+걖RΛKh@{ ([?RA$Ng"bսRʌ~k-ᗦob\S6:R1BlHv957=wGD4Pt[o7&*,Mvr=lN9$z4r8ROцa{A- N3[^C0M)%C |Twsze.5jܲe}G*2E)D22kӼvx:lE4 i1n#Xa{c";8c/NY.~orݡ:QCu Om]j0;kn̕@զocyWߚRw^R[[M\?dksmr3tb%ac,fFrXf-fRwM8aN'>"%\o3%$% /[q>Q,Oޚ֏C!6'ä_pK0݁̿ 78~`jl~5MMΖEYij^X/.F~<7>f,1m"Kf N o5!-=|1S >ռ&+lCR 3e'64^Ƃ\G0}IkCEd? A^aAdg8#)i:nq._F= ЁM6w6 =3ixG݇r{_p)RF~{%.gzQ +pXЄ0^{+'R KYn&J(;/rT4dTl/?w0}E4ҩ#j[3M*#pX-"_t`*.)(<~Đт_HWČK1z7l_*?!qg;1\w8%s\0:IQh2:"P#[xE)A}H%7YX7UUvD!լ]1f]Omiׄ}oʹ>T@Ҽs53h!;# s b"'u1k2V3.L CwD..ǹQ9%_ zZdʢE1Eͣ2W8Ejea+6FyO_Z63mXܬ?`7mmFw)W%(PN?] +U8~L>PKyVS48!u pip/_vendor/requests/sessions.py=ksǑ+&>p)YDA(:^GRK)*` 5>H!._ rr\;3ӯk̍s/&шK͵nop:Rnߝ y7ae&-zU@y}RlytZ/ UU&JѼӑ{hʑ(IQpuLKt- Sk%WM1#g L%@#@? mzUPZit:u{yICb#Aqn#`U₩qxvtrW)j ̈́Ic-W6b &` EiUMLV6K<`ՉQLw`U[uÑwO7#FȘQ8F}oA~ q/Z Ys,"kD ,iC5:@DɀdQą." n`A>{T`zC ߞYIH؃HD0I K"!ly[6HA30d2|i֥ {CR < b4du Vb#ˉfbѬir&[EvYUlAуnW, HvP'倠(= 3y &5 @6SڸdǎX-t%=LXUm3 H5Ό潬:JfЦA80!:wQaZo:jd«Ըm ">U?r15[UM8O0Ò̉yi^e] d1s(7h/hH} ̟1\%w~^eFd(^Bd !y],#0zL'O*0F/(z@g].K4h`rEZ wӶ@(9Umd9dsr&sd"&HZf,Ǝ1KÏ){S!ؚSP >"< Ҩn̓.my <):WE DT|C=?rg?0b B=a;xzE&O;FQȈNY>u1gL[\;#]cy~i&%F54Agfb@)E|X=kRKE9xJtj8;j֭i fL8Uwb\#;>D;wGXzubkU(Cz_Hobo#?M(m AJG;Bwm":F]dξw cB`h*r|4&sBϰP#F`QRPFYc෦#[1wx*J1gg" = cGY9Ô<.\#gw7`cd)@ @; p^{?~x8=f 8UD%^$Xr]#ە&xQ MFQc Gd`O•}c 囩uvyՐ}$iXh% GҍQXj823{@ZS5%Tn&\x h,d],~r YMVe˙#5T·$ŏPՉfļ5 k}7{?,Bc6zgd|o9]f >Iab7Ι! Ɓ NIcm؟Omp%|@8~  $=p&+j>a|%b_ib\pR|BM6*gL.ׂO׼DQlߛ>:SV=5h҉ (UBt'uE#w>nLg2kȎ CZb[p'&k'0@mY-A[G'GF fQDeQ^(=\Y`hGz$D/ v @ČVs |V]T-,U#{$ 񵴉y5e XURVW:?V >m,yК(~Pn:[ L7S5 JiCjYbP'Xlj>u'iVeG4%sr*Ϛ)6k$=g/pSX'x)`R=g_RkV'8tACsa/Х_c7C엙2!L{}<À^P0Qbb/^b(Q3i߀SEVІ69V{ ]9xtZ*1KwӪ ﯝ0R{ r GWHɦ,5}`s__3&5.٨lY3yGuH~ pm{B3w`&ϓ0*>sqL^>J6z& skMNŮN2a#Xq|5Ӕ2g܆㙨=:"a)/{5QUY&i5yS|~G.#zͳO|E2S)Mvf'X> ~KIfIa[L`Ֆݰ41  )D]a, ̇4 fiɓR}'^%.h"؈n(q*:{"vgmiVM&޲!;}F&֊)2 lզjdN3ai0 20+(gg+zbOR)*_Ilְwn7/8@5.3|JmYk1\44g~@ .𠃘{l3&A83q[",Ho<1eY<ҍWM)H:֞MxPm#QJ3;L\yUG GQYT83w Eb-2%l"8L{aȁ_6'ź)!кjoic͟ wA"$$~J w@ ƿ9ۅw4_9l`?gG8uCюcUHoP)r% 7y.;c by~ Ƣ k~hP:c UyɅ)0@K+ \f7:.P+XeCL2ҫ|(MafO50hu`g)B)qN@(˼#yXbBVҎl:M4k{`-HSX0 #x2nVT1tZ`3($#ʼӼ)c>bh0V-Tz^9šBxwtn6\OTj+UxD# ULvg\ @cǕ=7Lx)† NdNI6>LrұhjeBb\몈,' = &!`GKw;`QF8M(yla9^'l{bG\\h< VWG"e4ɵ7ˬv\>{;ajw 9M*vSM;* r|.yր++}!̐+U5acx۳P᫨ X( 8HDؔu KJ{9(g zvP/oX>~vD}#8]G?yٗ:d*?T:~}|~Db1p^&"8Ū ^W =IǘK1mx EY+6T6o%qv%l't{&zx:]?wTw6výX*陣>ChW8ojKX4`nY&PG-^^x#`н.B|G̴bOeKQfz3ɠsn\ hE GQ\y .ρy҉2Ѕ\+k}_+/iE?u^<F!.* z!9[Sz*na'̋]q9/6O7t0N3V` >' AUZ Ake - |xسb÷ͥ#D{ț`c@F|i9^nehVr"C]uI]HE#rHwx!]=x?p u1+/Qm݁%gM91?wO^iYfFxcnٙw=P~hGWzqͿ%Nsmffr ]]O_S/,悂I[Y: n6)_z~gu}&WVP`SMb $H<9I^',G(r {ҽlŰ>͎g/?}RV/pS{b=2Xevowϰz@l^GAtőIJ9M c.OԮۙء⚖/rJ"Ƅ b#oCmIKMZ]PB6^x& w,C4oz/%Z7G-ɌP&a(HnZSpoޖ}| "Ms/i)ƥQWs* r`.Dͫ7]r_,n \dao>H}5ו+C /B CV_zYX-Q/]K>9Elk'K,KG{ G5Dk8/%c3[z]/ػXu+{?\?lXL:~-Yc0 $MզpӿR& \ϖ KX z9$ofqv.kH̱ܱC-cCHgD\E.AsR\daҜ8J9:2;2#Z 1xM,&1mSA~ZvRñL61'jzDҺQXQ˽ڏzTlG 6Zgs :]^t|$f.JW&'c?L wH&iM>~vS~﾿*QNO:5Ny&g'Hq2̒%fe+OƠd`b7YǶ|Lf^tƇ]R?.n&^L3rEqC4LɑPNn8*{4nl,'pWPc kx9qt́7Ig~?!JWlN˜r2>1l,W9t[zmu7>ȕ?Zɘ@ꡋl߫r_bxsST:-ḡˢn(f[sQoz4&avI|zzd>GWÞYxNB$Y<;(nl989_>8V{Abꍔ'hՋ'7/_^|͉'i BC%|yѯՁI(xijȱUK]\I,Ud?s}"?xwͷ0`<ɘPp_ Fˇy~4EºlK=<-xaHf(3EUj2QPў76TQlbV")IB5_9V)rrzdB_)˼< zJZpxRlrí̘G58-y Qg }^w}W{oEnd^@ S \he=ZAcgh `G33S^8EB(y'$|1x v+`+! ھ("Ul6 f0>mZ%Έ(1‡.AeSd{}T_F1 G)y B 7I`BdR.r7av^e1!jQ~} $/t!Ć/X04)cH["^EU: oGfyQU~ fW{,nBp-$N\VEtpp0E2UT<,L~vmXO-u@6$#EAP x8d;K9̲$\ =OYA[xV{TdnϪ-i vJ@ $ 1.™A"kn pD\@FPHU肺C3= B;Xल*8Mٰz{$ x)Bk@}^@Uj٘~v {7}ty; <շ{[Mt PX| "ng1KKYhAC(MдE#H0M++0hIOp2س icyU MޅfxWZ䊟uSevq~m]m۳n5rWސM#oc2jRo0PI0=e#keLjH<j<>즽ao^]7.pp!giWt_DE()-br: ̺ӝgnU&F_AyqR>y~t#ayE96rۻO?YmEl=O"J(سGM: A\:*@ʰV 碚Ůem+ۈ aS(yp9?Ei+UdQǏ*FuE)1;Z"@^&\l}N)`}=wIi8Khբ| b#^TNĉc<2Y~Zm3_0@B3T{N [ EwPWߩ$nWՈ02]>tmXZmEo&#H'( t1ʒApR5.I)iQ+U;ies h’M MOHes5UOT\,Av.%Xo) qH+CICNN9%),kZOxS#Klh|(Vl{&B &(;<& >F$"b%xfg90u5]BẌJK3\ 6Nqlf?J[ڰx†?Pmt\ CzExKbz mebl|yк YW4qL)QLKrP|>]̕9k @oN ,KpR@/lYk] #G쳞 TP2 (pr%W֠D+góv=viR#,HHj2{U!`v0=lw58~}l@r cUƐ5,^ D{LGaPxgYI"y^oIר/(*9hm8)$8`w1x zPΜ_l{CClll1B`<Ж Z!9]10yy &ʪZpRͯ`> u5($4@ϓi6~K^[?Nu@vog3yCkBOuL Q]Gybg4F-J$JE7!⤼Bǝ./aFfʂD$#&&5{:P3,KͯJL #gv.îE˂ۘʻ9hiE%:VߑÆIuk #e\ntHtpi= gдIE)"CGM0@$=pu{aLnd0-CH`e<ϟ;f#o蘖5zl8 M =EkaFD pag>&IaƄvD8|E~ٌy6~&3h FZuCMwzOyWu)eQ ]BvsM X5c?;B|-[]ͮ7kb|+4Qȯcz,ʄ=uys^a(eT2ʷotq^^(:0IloriRѱsw~^'O1紪=9?8=]lyUjbs6 kKɛc$K0p[̈eԋ#NhDhr-nlҋR<1ObP ԜEKc"i %aP+ ndrLRdgxQVT2 bWI5@O̪NJi.Nm"Tj|6#{\`zCP8,>.e)P1d( #ld!0;Ȅ~y3&o@f"nlm ˯&6;2;?'I$ϱf43A  7e7{w?gc27ՈE6a XLTe96f0'R]1>`Gsg˜I5ʎ]V_q^7%-ѥ!I 8-l#zyt  ?Q3:4ֻu g֝%|fr(P1H4] 1`#/`zn. G`PMBˡ%:X}iH Ѹ{Ajm50+d~k=8SJXg&lxSd1ۀ%Ro%čf:cayaʧ&́ermrNQB)edf[̥ڔt Z/1٥ximɌ3?l0ͩ$,N7yċx j[ßז=iӗ;xCvub)a>O|ҘۼHN.,HS?5vӸ~e| ☧2Js7'ؖ42! n8ϒiƟ#嫐!Gqhr]ܶ}Ԫ-$#:jQEM%dʠѡFa0" S: ErIm7 IB t W)ʢ.l{&yJkcZDwcpT^hnUw~۹z&t@syfƩB!OQhtY{e|2I|T,Is qHs{sG_b:%kTB(-PoT={C?!~|&Ԗ@Et1cJ ,`oi<{5_fdƯ(X  Ijr_CF0򘮩Ca'lK[W6-w\u7?Ayv|0PSŽW8ZHIy 04,<{ÎW:œ!zt9R&jK jAH2\ ku,hQQe%Xp}v0t}@h%XgVC&9= ֟Y3*C v-,]R\ؕ?SwrNhRkA(./hu:k9HPPp>J_0% _3|W145IBCXCŞdQ77zY P[X[7dsH=8HDc-RelY1tϟA+''rlFR}מ"?>vclEl}G&4eaj'8|A6,eڧAӔ`C D5QmʮÒT%Lm)VjI 5HBC;4f^!kg@&,=+`edr.3 \% dI->VК9H!l_V.B~))ZxحE[<[fOA/uۣ?>}28}stp|phYbfo;_^e*g⧢7w?@ vv=q+90 "iiD>Ƙ1S<2Q4:}hZuU( z<]/u%=H&Q*֋Cx]eĸ͖ &#dø*ϒg;Zwc!!ARFiޥh#d{ɳ\?ϫf7PeLgh\wHC D8fo}oa7cu}&(ΉG3x`W{֎7dulߊ|y\enJ"4:GxRAF uxr4m|l5dzf TrjJ,GN01mqN~RB)v:+MjDthՐ~q'@o:]M'*V VxH|TIڀq.&/ 4 TmFE߁vq-&aZN# %O(?O.k]5l=n2?CjAL kldbT-2s+ߛFRl0Hr~RTڒF$໓nPτf{K/R#{8l JL#W74BoƩS&>\ [V3m-x;#=yѬޗ_;E,L?=SԖyn].*|0+mc P6x{zk\I'tQZWr YlIF$. pY?h*Aɼjv5]GEL5#z~A]T>=т\)^\\el 3LρgZx.+ݻM fII ݪG:tiՠ,(tp{d::BA=Ddd6*z5`x܏_1; R_|ۈ2+~(F f\SHIdML"ePnI\.H3_iec Bn"F8 4o$s .,9'*qm[ Mnt6ЂmW`"vlSط$,̣0*0dM"*[Jy*e I~WwڃlJ)#u1)t \j{{*;V6 ֔ZN`0 ,A0qL> %YY(xσ>6}QGyAT4 M6ZkҊ1-Kp芔mn+J$N J{靖]& vUţCw+,?C/CO"K(nuHHxN}{{M+qpcI{m-#q-`_L7v8}[1>ev 4J8Z0⽃ElU1` ̋`re8RpQVQC07MWq;b[M S'mQ6n}YNE螂"cmz[Si;ID~ dBe2,@iIrf!i0v~]F7i DµSW)_gR<}ǧAx?ӎLs趖QE3H lmϩ$X.Ho엉k mLb0ט NX\Tl/FsxExD$8 @}o{cF:/p^C{yt%so86i@3ۣ;8Ů܂&g2B,' >>\-s;X7%^6Zd9{xPn?(=@I]g;-Y銨1W"Kʧ08)oGB {p Ǟa.t=~e|C _Oڵ6 Ց4ɮ 5*X\,U|} Y g B_< ȗNW8$s6#c~ef@3sNŠ{o aNjoTD/mDթЈ=mmzkl𣫺Y13h^p6IHA/h)C W={NڬcJtK?Y_g }f6 ٷt/l$6/nl7KkO; 0C'S:a!jf/xRVCЦ@g>w1=LO$H?z~xtwHn*;'hdocj>! HQ5"@40+.ǷK17[% y"#VsF.DƏ?XP.fa:gAգHu~sе)ўOhlqƏZ[~Okaie"13'=+'dphuЋcbZ`9{,о{ L g6n%"yT\H^5CsJ[끼2c3 M2Zh›{R Slw([>oSQ/%ض~ɗ+*rfhVtkD@ ٞY2 7UR@D?EJN'V4^oX(4dmҬ.I9_D8^r~jPB#PJt~Ÿ.7zI Ȳi`wf  "5UP +&l FK"W/qiGҀrco`ƒq⣤2kT#'Ћ*ùT&Z[pXs,9CךCu YRx #0r-Wz |G@)n{ޢҫevLnj:?gc{ưq7kaw,ӍEwd*}O_eU&aey=`kķr#{i#}MG~󷓃us`sUNG:/p'qRu \+IthX^5fh2sq'Tgha8>I!7/^65wz1-ܨlVwu벹tj;UĊn&M6dFқH2K%qv e!-b"˃x&  R1srĕZ Vā@hYT{fL퀖H*O ITs'lyUxްΔş ɀQ&G9U T(1rI)LQ/H8ݎȄKu6n62]*\]w2څ;+Z.@bfxC̏q/2S,}J?'p[s,߾ͭ I2؅ZN)-PKyVS5"pip/_vendor/resolvelib/__init__.pym?0~IB]7fLSLU>Uحサ)UJnUZ 6JNILؚ (s`4C +ѱaﵫL=|xA!C֔ӇDHsT7l sxhqb5HV:[%B;a-22ʘ@?I}arJdt#Cf9/*_6bq;=T, PKyVSe4#pip/_vendor/resolvelib/providers.pyXˎ6+3pSMY4(YZD٬%Q%q="]Öj1l[yeEBT_D+ VV/eZ3J-:[&{+t+=[7 Eð9hu*b}-k(O&*_DxQi?˔B;nބ_0Fd)Mlv:XO*}k4sPc[ a{QoRwͥ쓲:ɢ1<{awТ**h_̅{R&> LA8K^ HB5-ϳ G$3eGqv޻䤵Pr Y$ˈH^Pn챃vH&:/HmInIㅷ#iYҳv- ik5L5m0?mV|LJaSyfE(6,VAxTSƜ:DҮ|d'X5޶gМږ}PLYFl.[gLQ&E ԙUoZYYvk(f<љGA5lPȲM6\?(,f$e&`4ߋWpCÅM}dյXfy@f&I9u넦2*_Tic# #Wp'Rh>FE Nf,%H3IӜ/BLff#NMK< g5{f{dYd4ZULSBH)s- [qإ7isBIAS%'ٶ؁), ̆ -(Gw(B׌}E%rG鐩iX)崾qZ"#M ˈyk}?@[4'BNF]n@`1f.QOP"+# `̒2t ~ƒI[LݜV-+`ׅc.VUfƂ¼~yg.zki޶ms!(] nblK<{MUa|/-!_?^ࣙ}E( wXNT,빨1gw~#D-ŷ zΟ, IY^H*qV"ɍg߸ 2#M"OMzMPި+tF WpMe<ֽ8K.\愒|yD>%V8~d}<IQ+kvZ|݀_ )I+h:Ɏ _=%iݤ'斕J\)ioN"ZKdH%0tkSY|6I$xf`#Mb[IM<7Uvs7wTt(BrOSN22bp/߳NvS3#>Ș;I`f^q| Q4. pjԩsTYؾkDșPڎ١oOITLC_O\8x9;0ԗqn/e׉avכ'ϳ&x36?[HMy0v5_<{ wegKXl_R2yF?])9S3`V5fd})$†Vc͋M 'o'XWrٱlƈ&>4w:;9 2³Rf<f#޶-amsrjPCӠوF Bb9#GEea8n>({=1XxK|& ^}6/h, HEV4w_{{$LArb\YPNnXT 9Nf5gWI) Ab߿%?~RrojdM;0 *IhLXq&,%T&=Rj#c Kc`gc[W=^Ɓ5 gL:ˇ@y[D/ (޶Q#ԪhBV!:Qрφc90ٱP =uNb\f7i о?[K;0XqF$B 5KiZtkZ9 ՈII F# Jm#ٶa`rBin`#oh=d Lnf7[?0J >]jY, $=q#!0, /OP#{E01|癍 d7zTbRڷA _h1F(g =Y{6+4e 4+$5ZZkWLE.` :Z܆avkEvϼ_76ȡCV7x Α-~bt{2FbAG RMs72e58xTX(+_k@=~nۏw/`ߎMÿÕ]j! ~!$Z{F:dsvRɆ Sq4N a}_]?1w᠇*'B}Gf?4֫;`'=/Dʪ `wIv80:dm xoi<|n뙔,pƇ Pg,' "Ւ?Ϩaf6[d~"Mw:|\%_L8V{T3eL~uݰ;opp47o? a,Ɍ-b}E(9+/e:,r{]:}|^a_\?5 BKz" v<#1ɛ`a{eLLj1\`X؅hʔe@ M0R yVSzVuG^gh 7}@W 7eLq% -𚠉H9/T`A|aA0d_`|&~%Y|LTfM|;(}rf] k3P2%佰%."JLI%"p֕a\T`y? .e1 wmPfzׁ h9gSoy`=ۤ#"kdCZV ׊a h"SHL +2vt{6"v߰}qF~vފ +nnBzR/>0^5N 5*Cx̗D\fs;>;jb^SnUv?y|f7.W+/ @j NLq)TaUV MS=?y՛.ai̪&MyqRtŸARq=sQbcr;\;|xrY!OF6Ѡ}/ hpbܘAK!9(l.'/PɲM bs 3+0_6ԨO U*ۡ6L_WR5cb:floXþmOL%w_a\͘w_aŒD>_PnsxV7~MҴ2x7!>7?,ʁ,)*4/*=ztj{dVW~OQ:IxULh'cqܜ5_bB6ө'YeYrJQ @E&nl\CTy PMK:1%K|.lRjz`H6ܐ>߶RYSIbb Jvc)p$Enz!Tqec'ڎL5jE3iBIUDnSEA 8P{K$".tpax*>ZekuWMyzzws,C!6}y"-P4: l$8tF"|X+[~=-ocP.4K J26*ARDJpLN୎9u~b#oVZ31G6RTġe!\Oh G@rb3MTh >ϖܲ6ӛ 7%:i". _CldYXz&DVx9-KJZE|ٝǐD'tMB{ul?׍GaOcic/{(Ͳwao3u-;@ʮgعaSY <&jkhu&i:=p;Eqj֩ݸd&:V }`d)SjY[' s']OG-0VElnlkNto*F iHZ2y7\DJVt 8RDӚ ^掊O.Au>^5SM$Ճ_w]'4lޥԹۗUˎ. 5^ :zEm ?r(m s%= 4l{Qa|lD*TSz|)8Cɶ&T=#CT^ވ)Z%B`BDidt@^7%U!6n Y.[ Т?ElؾWiVl[ɡuTH{[H4`D .K*o5iXx(Ube&R#=)y8P[[渴#CIpUraty)s$:FwnDǝSu0Wr0jIYÂK.PKyVSTpS!pip/_vendor/resolvelib/structs.pyXmoF~bz*j?Zu6mjTQjɲ89`rgjwvY^8Jr:Y>YYs)Bn6% /w&JF>l6IK 2A1]u'_l>gA*$'rH`z2$ƍH1(bSQI,2I0:,A ByqqEOl_ëp=J=^e蹮SD{J4ᕊ<[*YF5 ۹yJN8EOx*gR/UVwj̓qOw0G-8Q|!%8W)MRM8/Nk)JX^Qq fc\4\x[Tr;~%>jδ nϴϐi_`ɏx. `5cdHA@]/ Õ"κ7|Sr4 v"VQs[1=Ta)Cvtx&rC_l.J> ֲۅu7ԉwUһX5)+᪋8rLS<.i;FN-MeX,vd i G6Ijg@"X1BzA?-"5Eы<5'ӵj*E U'+.zSݽIV䂞4tRyW8-?4jst5}"i)>Jo1?|#ې2_[>Ґ5ZHrN=^gDM쨵ʢ(xQvzz[ ~ pxἷLߡM4*Vu[hΜø}l,n}! ZW]7LrsGBRϯ% y ޡ81 ;m/tth8m#]Ԟ3&4پ O?бf"ԝY'd`.cUJvTwohwۙj; HE ^VT)"9ǚiyَ󯻬pADޒ.%"L" P6buAVY2}+鄫Rچ:AԆZ [h߰BFoUB Z6ygnKAbɽ9^>*<Ԏt!͚( ms,;e}-R8hu H>?H>yy8@s_܅c"UzlBNyx*Շ󋫛c`RQԲeζπÔoX^0(U9)d%ńBDU!gu pu@T(@MCYR4zyKVngH>;x-)`#,Ea2`ْq'WeZYCpH!NQtOr&䜡 , 12Dv/`}A@/}=r|Z砄kQ[y;4A" ٔYcvm󤖷e98(Ţͳl;aGG׍~"\ ?[wԪC%~`=hF$\0 Ć+W_ V&O׼+[祱2xQ旴Ul7yElӿ+#`ߩ |T&zdPj;gNOkk٩'wcBG bz`aq 7 `~?%rf| cL"⏠3LV6>0DE++EO$'~6@O:u`|*쑄\p.3Y x$ vJע;'a8qڸ+N{TL-h@l^hvl6jƒࢋ@ m$2nFc@p\j~|!QYK`蠭8>۳N T*쏎Au%_h\ihW닛?V-w:=Wlnq+F1@)>JzU`Gz9k)ˊ8fQFESUqʿ :@?"MJ=/ˋn{^H2HU!/zHŢR:AHcSZLpsV0򘪙x~~xUN>Cw(b~\ cPk"d5QcpTw1K:7=N"c%?O#Z*= q4tu0L;zL-,;OÜ23a-)fĄ9-c?u[Ԕl`G FT8}g\AvnР6hc6pMĵb;u3Ӿ6;M9Y!mstV4TRWjY:Zm|jc5PX@.6hFRFߎRn] W[+ceYɸl\d\a xϣqH`=-ΰ6U%[Yx*`7Ȉ/X`!ny׃ơOĽ8tSONgM}& VhmgHOZOǧSZ=7>D)5 tؚ>|g?&3fXypԺn_t"rp\ryw\*=hb9 ͮͦTZ&mFWq4;TQ=cpE;n1eE9VxD]z5M~= -WF<w,FBW5m}s'hc0+8w5([^ήY ]A(vSl453 t9>Ȧ +]`MX>uW65fsrAl`|kF X@k&_;RÒwÀ{pћkw&}3v B?ڛipffE؇Rg(V R7=7w UPyuZzWoJ웁"i{A$\˰EuI ^җ*^dU^|/TiKZ:~|ŚM*xn3RGS1%~>AH˖[-a5b=7[EjP qTEH"@hOkxO+ꤻL xM*D:0 '̴R@kg ew>^J߼qr4BՠJN3*ZԊCIq4Nۙ3V_SN %.%,?q^Ué{՞;ɭ֓@ǁ4Fm`u4QE)3pg!*lϯ)YoWQ-X {1TTmsLI_ pTMo3dԧ$['qOamH{ZU@5qMm 'ηd6Y]&ֵFUm2TvAσ-Dsۻ13E[Y |oazT7gXH:_ucd·Ԯ} 64u0{ނ})eo!SźZeaïU7|y,"\(펷u]-꙾+,>yFvO/EbD<P;$ԏ ew͗ÝFC#;"#513:67+iiv*?`[k݅2H>zGV=`6$gkQvPR'L4U ]ۯX&@ W}N{~qϥS D-It{/;bwhێtǮ*^Pjt*|~{;g *pCp1<4]dXb+qTZT^Cꛜ4 0~}ߗM>h-C63}$UPsn"S-Qt5xlZK᧱^;.r0+;܏O(\/qՔ_WC'썓 A|vb?!NNd5(TpEiNVr’ !6SH2#-֥↋YZf)FIaZQ T*&`ԁh0 `n p<-\ ͐fo? W! K,~m qj5BlHe H'l0Ϩ9v#5/aƭ$y@ZHzAYK\+p V{(y?J,fUEn~e_0hԪ A~ɲlDC{P(Ы W93wY'** ko)x1gxu-%#"mb]b q7qkҰ܊.lE~|L3SX KF| Aq6!NG`Xp 2tA \k9wm* A#c#gB*9QN+ŵ0a3KnQXim}hO]JNN3.kVݻX[QUK|ʝLE/!=B ]6*66ɱC[,Ўmm OqATSۏ."3٢S*q.W꯺@,˯ݐzUײAO ?դi41>fDTC>t}%seO6SƉ_L:H*OEF/V(A<6dڅof:hZ_rC_7*AC? -bC0W $8Or4v9 dLvSlb葑ꀼ[ 8sUUjg5;.: \ l+r};֩X?kmtnD^rL| Es:}M\7 S^9|ϮU9K7rgF Zͽc2PKyVSUox]_]mh]1ЋcucNCC>9xO');pߑ:O@L5K*it-ypd0i##9P3xbnsZmm56*SBԆ tOb[,*R׾}Fi:[QfD&'`ہňQ+ῒ~4_ݏQc<9:Gh2lvX]r)s_*?EPY)<4돇o?#j |2 zPKyVSpip/_vendor/tenacity/after.pyTn@|WE4@JBAQEa͵{{i yȻ3s`Vf KRHLW/gfb #h\J%B4DcVp@?2Z3E!CTȤPB%iUiHi( ~Jvq "*znUUڤl`8Yl RZ ҰDZ"d@AvZ+#IV'T KKF.K j8*awzMpݟx8 x1N>w9&^qYtb# HF-0ؗJK"b;PɥuiY^,% +L !uC! Gk*IZC K幤 7?`4=`35\PmOg Ĝfw3oo_z޶뭻V(O6J_PAyA{9t%WI٩o2bV27'HBW\wDbDV <> ; bZW3Բ+U ['UD:&Jd{RBUK4' I;&9gM<^ՄPKyVS}婽`pip/_vendor/tenacity/before.pyQo0WDIM{ȤIi-lU2tUUUȁ flfR4ִPss19Z͋ӓWoS-8J8g򛪽j j/>7f-,P{$)JԒJ`wӊ3JixGNK9LP$ n S,p *+Lnw6IH׃ZFjF:`Y[MiBցJcы"͗`;h hQsM1-XR%BPX֬r"r0qc5voPdF$؇iy\ErWzDVk&Z-L9Z4&+ b#2<)E Bݡ*%7AE[fʋPцJ[mEkUBū0C)Z,嶅AԖ C}n̓b>L'5h*F"&^ #O,__9:ӎ ҋQX 6V"V)5ߚNGÆ8 fZa'%w2 ʖ-mJ&Nw6m'T!jBz+%\]ľz^ү_|Ko6`33w7y+δkGYiO7y} A*;.kpA*Ni&iJ`n@mojO|nc7!/P;&ڨ`914j鎔<'lYҰTSخֻ^NKy+ѥW<'~[B q})w)ϼ2n,fZ4,l[zmYZgae@oWPKyVSlgpip/_vendor/tenacity/nap.pymTn0}+ L4tݴN *L &3vf;M خAGpb{M0QEypqm9Jpڰ} \ 5<̶d0cZ3{ KVLuK4B)i a\veH W.s9@.PvD* Qp`aKHԮv˴$!Qܷjc zq UU ·|2[)lnj`iI؆ VrfZin`Tf+XRn(*&!0x@wlqr9Vi %L|5_D=|G@S~]b#j|ɼd9BQK7 KELTڂ;qRކd6OjdwRĢg0Q25#Ȅbg RA1vPDż&&f!EjC`R:4? !݆SǴ$\/# vO;p1 T]i=o)9@!<_"^6dٽS*ƭiţ]6t^zIzME6h#S7]nCp_6Y&Ğ"s].d&sq b5mG͛}E߂W[R;mz)r@fyB!@?J|A*X&CWl~/PKyVSR-pip/_vendor/tenacity/retry.pyXn6S8Gia2u] q" (LUW{JD'uҬ[U|"%/>zu1bF9<#:kRB9Xo?9KùC*;(4AB7*S&8z]u@\dDP.d)EBb c@C I(Zj BAi r@TaBrZUo@wJlIښv>lLwjk1k3{`<q~|;%eww0S=8:z*g:27_f2I^IU/WCV?| 1 oG\BW**e[~՟m 6"ǟT7-N߽PKyVSVu pip/_vendor/tenacity/stop.pyVMs6W#ӎAgJ$#wD8 -_JtDb߾}u#U5/^Ͽ_Fpp ΎPNEi/5)g( HZ@,M6\IM(D k@ERYh 7Pp k \BZp&3% _fCÆBfr\F ./E 2&4_X(h65d,%-Ai`FY.5\}0KXrnic*~I1L I'O9|f|2~d>[Ndz$ jH,#(T+Ԙgԗ,V"vF]qiH^N,W2Wj* Xm/& 2?:NFwe}؅F{[-u<̕,JqghzĄIA F}$eIG4|3U0d9,0pgKXr4A[ ?; ɪ.Ts, I2$EѧBj <5JVT<萑;.I,VZH= mmK+r}]ػpx윥Sxpz3%s{V0$`?[x$:dqpYmlp=;={VW?6 cxz4|/+ΙWzK}˄q^Ut4eBi(6<;A$/ [6諒Wo¢NXjh7^ګ-tplY\S| '8^ڱNZtTz=)Os s 7+6k? س~zF_gН~8skX PKyVS"9a"pip/_vendor/tenacity/tornadoweb.pyVKo8W J6Ebm-"rRd@̭L$UGC=l9qVK$c8$}SY֊W k?&H9-ۄߋ_+VIav \!i7\hSH()Fue+#JN"G.\Oy>O&|Lo7vAw0Y<¿MHi"|.O"M!6_⑀Lt xBD^!P %-v!5K [niz^ 2k$(ɔB0"*4(XM ]5xF67rb nK+QX?0Y~˛bq7qi,2F{nG`^B2tbV )%)d/lfp~*9ף^D>ltKi]Qx~ӢCv,["hDBB rx.B۞nLjYm63ط2q" a{A%Qb R<x_&p0t"hd㌯1}k[ܴr?&fܖO&ƙ۟Z أ{A]4)[-P ǃoh-:Tۇ@^w^uU9)Y[ ˳nYI%15'W6뷗W?[ 5!hgdO0$㵯c ,N9N$lLDIwULWA,ĬͳZiF&*NYQ:4 U[D3;PKyVSZeY#pip/_vendor/tenacity/wait.pyYr)P!L )yRJ-Wc9RJ\.8I3,1=; $(b rF~ =agXX:v<:z?s<:>boL ^rQ'[T썶˒dz~b|^l&L H~PVX`ェV_X;NFGj+8ur0Uڱ e&OET,yIRV-1,U,qPsxt;/ҹd8\V &,Y _//o!'2a-3R9]3^@O!aWLF`iuej1`V݊.3im 0W;a7]fw޲]]˗WxzƗ?.._p/ !%P^7Bl0A [Te Ԣ 0 B\Zrx3pd.wJ%1>Mu^?uƝH&MtkVNJ'3 jOr瓳gP'ϣ\33e7Zt:4̊K7r+z4rx 1ZfLE[-9& =? ^ʅ[?s68{2Y(H3$ nÿy Ч靈f| 6.CxFLݖ.bj̨c)oB桃C+'DcFPQ.!{(2s3mOKC-s6/UJChx)DڒwImZ8.^zmhE!|Ur0R9A2­Wqۨ Ԇ&^'!/V^V>v;-blZFA^23-K`p$l<[cJQ4t-FDžMy.jnf6HH^V];D1cxX|jYG֤ o {B7 D^8;`Z%adnw?&ڛE! &qT&2 32X&ToK SzƁnL*5"B>BmTVYT,a3J#">܏$OsL0R,PBC OՐ9+ϫ쉩hO$#mjQ'wF}8!s|o.5"bICE0*D(g ExUS| g .FX ųT vbnJ?.(ӫqQGt.@[5S"mTf4!6ХB!Qlc"mHWr"7e(jD$V'>JXiQl h16`_0(6tVKAe4ӥIEͮT3Yv('WJG!8_iwy:>@MR mhz*N]Xqk.( K9 wJ@ {G> D}Eoeu @ٵ1rBc Vhi&P!{$gEc샗vvSBLPKyVS@Wpip/_vendor/tomli/_parser.py CO9,xV (4 bkğG}AA"Z/q? %\fO4Sid 9R\l8 9=ߝ^Xn ]|5/[Mn3G+n ́5{nNjh-֝Njs׆=FH +'@ߝ2BZ 1a1Gz.*1ȇe6{-dbmp}v v5t~z6@9 ;}N>Y2+ s\UQ?QE0'G q>Ԡ31lQ^ ,;\,m˱[{x(Ƣ9: {!E I;л>iPx{sw1w~=/wY|Js%Dd,L/<+p n3eV 8p..qch(8'&f"B#q-bpe";]`?a+q ҄d z(Ǵ1%V9#"$<]f!HQlavA]?D 1-T`h͘ HammಋWe =A9n/@`B,@e61Dpb-$־s}?=te]r 2X< $ atj8#@y4}i$>6 _ s%!QYx{)䋂 )pcN ~sLi5`kլ5&| ~qL_mzJٍXM!V'SWI3JʰnkmHfR~|4PL8k ndkB+˗Yħ>,,oN;'G2JN'n)cY+|_qͩ?Z$"Ea)Qbǐ!yӬ^,zh(*EJ˺GIT~;lr=_, H{i?81o1U s8EZ:H|L$rLrEUJD`v,0SdbRpr=ø"/ DU៵imi\GDW{p4 Ks*ph,x}kX k&L4`KOhncsRO?>φ#GL&Z&1`}y@-!c!X])t u;0w06 <hP*,4ta|%dؠHmD 8Do 9PS|> l %h ycBPd5h(@x ;R.}PvT]G$t PM=/wT755S$MJUs!`^#dEEA`#gd01]]h3!Ԧ#]YsX2(͂Lms|ED,M:i$? r̩I+\6҂u1qb5$Z͘,']CFS̔RNɗA򁋿yGHTDi$lTv-E$(\q[=k5n/q lK]%D]@ZQT^` *nq1W9N*%yK$<#?ὔ0%˚-Iv '<Px;Ɖe`'[n6Hm8w4MUgI!>,D>5GW0Ez} b@T5A}[Wki.ENl"p%W{1,S eSzٌYC $ʊ0{|=, St0e\1X􍴅leuQJH^++˵KGQeZ +lS[.XI~,``0bDQAoA;6B c70@tie-4-hooMk{w6O@Fw! D\ HG b- /g{^ȫ]۟, ױ;?cBCtRzM"Խ8e+;+7'$ ;qmDy4 mg-vj^(s H-lLd?^SXe@j1͹^C]Ε>x]C%6ִYLݪKLrt1> jӸa},3(SZ]ٹ*.0Jlm6.wwl8%)J\L^aq5q! 3˨"<ڊb'J⟀wYCLP m[ riz\Z0B2ZD;wzYRk!X^q|Yk6}j*\N":vlVuJ5ʋ̸KVJzܶ5TzT>]+^%TySoŰtXcke 5\ R [ X lUn9K ~NБk ~IQVzkRBV{,xml?5^p.Sq6VUz JHqaP> y?j :K!ԇĥmWvॐP=^}no=H~$xIݩ2(uYݘi97Gڧ tOE<;u>/] 1cDݸaϳ5#_ωwzT;:54ZvC)OOCwiy (r5tZW>ky0U}mC,ȋ](_ٛ<)7Ib#.;q_&>oꃘ %1ai)Uȕϡ쳀|lcR*ߺUkAnY銫+z*aOJ3* `HܹG_fzX04m!aB?VzAz[^7$4 uKs6l;;ƻ_̧+AMuA[VCY=h, :U-'A7=-Zy-PlK6>HCr4L l37'J۴Aq޻b/5'g;}W yaRҌ8֦$ngwY\(RCǫ4e/FNQrQ{!L3lFR¤d2dw7?\ 8M|{[+fj]R jFj ?U}n``[U n`}*d~ڋϚڜbTɯ& քv=@\nT{"pK$GLe\ѩ m dͪe}#k[#B؛0wSǧtxb= t ^Rѐ,QֽDԌ:LrCݟS m|͓577k#,Iq?7MVu(a:& א/! atqex`O{G+(NFvbQ@t4ܳtjK[iaޓȿ{H^E˱)*QEZ8͗ :=ϻd_ֈ2._ސKH`4ͦT]m,,0h7#@zϙ;x;vٲxR.Lx[d W<4\b4#rɘzZTGx3񈞁ضG_n E}7ٯ1y/W W {([ijIzF #۷?'oxt|\pppp :; PKyVS1y pip/_vendor/tomli/_re.pyVmoFίXm@ 6'J* E=l*Eb(p <3=(rhG7P!F@k<[ʐ kCS8[W^ۆ+|²Y7b4eg.0)W59i9 }@DgQ7Y:X$$.ҧS8Kn,bq,e1'O xߔ KmR{eˁ켄zsu3 5<4A|~ߍHfqKf<%! l P#"'eaUeYZСuTM'YM {^q2ò ϗxS9b~@2i:UL.X3k/dv5H4 p8O6gF)nĤݮE=˲ {>$ř`[h"@x?ɩKTpG'P 6׋ drTE-=:plR ^֘-&"yU"2:P5IRa*X񀻩UYwu-NA[۱U]&5*Y('{(|sbX5X:eWɫx`(6fqhhP@`Q7l" A#`ޞ%͹(s9M*S`Q Et"T=I~WR `$z:<P"\ƄGmΑ`Jo^h12D~RA`5ObKwf(ّcWbI;UEļ<n&"iFqU5bACLlSOÌpv)O үLrwd;~a#ia7,Ɋt36s}! 3xlr7PKyVS!ImQ pip/_vendor/urllib3/__init__.pyVKo6W b/\]z x#AK# EjW%I!μyreYf Rl 7ۃOV k'HZ [A+$eXڸxZ#P5rXW t`Qk]4r/Hۑ7$pj@V{ՔpF{4dP2(|R'")TYkCe^PQecTPj(Ydyɜ<Ccsl j%znkw\i4 .kkGԹKqŗ7x'$}8Ed{ *ͩ b.uC D5(,ݡc{*FQ0=N5X~dGC-KFJ$>>lM{HًS^v\MEY6r3/+cq2ɛYG6,4eQ#,Jdidcr3=vNqE1? )Q%05.dV>_Qf~˛6NG aLx-~,n+j2F>y)"MFho]N!i 喞"1&pU$TCKjFi*K[g 4m +Mz^`xR~4щ4O8Ѫ,?hDs-)q/-\gZoir|F7'br9$Q֢k44oݒW4pE8LUU'\+Iyz5HN|f}-|uCyS($$ mj4aٽQ׎o ,hCii|gK8v鰦< Q5]mp_)p ; ma;s\kiKL9.d@5neuӿoy>9O9g:Dp\;E])N\K’htk=Ew@zo㉳+/=y3w<_QXKQD4=Nt/Ģw 3pF߄W0osw;E,PKyVS?r ;*#pip/_vendor/urllib3/_collections.pyZmo8_A8(,wm@nomC.phN%U II8Cb[37Ueզu%V+&eQiתj-Vٙg -H,EbNU?\k΄|&(5{g~P}W fǟ~l3هMQmR8muf'W+XJZTUDuUbY 3Rw;x+5OG=dU**~/bO.&2:Q؊ߊFCIދwFdHZ,C,H`ek.sQMl$ʬ~ P'+g1&Q~gdbLw^\(,^L a;ܱ->%Ӆars%77$LbOOe+rkq,,qpQo v W$m),@I srԖI.Y<ە77>w[`y4fo(>.>1oZ]f ~K {Iጳ|bȅD5xwshg=N]x,7̀:C%.UA }^ R\@PKeKk-y 92Ru8|W+.2"iXtkΙN&x'i2](%29H^4Ŷ`a˾-jdyI x6lO5&ͧډ %Vivw|*cg k 3UxٵyN]|t:1<2cü M1cC,\^4{|!rEM m=p1@PA";on6ON*CI!N8%˹1?sT\*H|lA?QVsS` t zӃΩs"kѠ#xrdIhxQYYHBQˡXb s/C}RgɐqQI;<"HNa2=LL4CebA;C)ƔRH zebrT-e'֙;KrJl#&ۡ%\َ+"=n}iTRl( OiB7feu޸jz\tQQu%1k9taݐB*l'!Yq&y[Kݫo_Ĭ(-Ö "#YO,N_ssjhP`R~_[eI;sݨėg;X sdJD[q|#raghV= hx41%gYQN[0F~cC /'&^mHs׉%:\F hPVXXBi'ׯ COBFOB/.^M7E\j1HZ5c>WS |˭ƙ~7}s8j\wx6S >&zC;puث_r; +'JTO|i9* Υ(P̛㰙)6Dr׺jOLf`ǷS) Kzls#Kf}P iZxڄpVT"f3\U'XctŃ6v’CJgFJ|e UgC`^͓E#qѮ0auu:ph(ihf9FBmFXC'e\sf`=Znf "'fIJn!Eoq+ˆ2.NG6X*i>H2fztY"Z1~Yg%"cС#6/b]n~%Zrb[,֊  ,X]@8fc9aQ ]@,^1Ϗ5Ӡn]a>l MK @)s#;S;&z|{Xhbdv 6G)5{, 392fL{5bb/ɻ1d ^%>tuJSS9b!:97b=D;J Q[S8*Axۺ ) LHQ7߈I tllbƣx%:&szdѴ+RHۚtzEj=b֮;lK}L< 74Oα?R!#j?nh.8g ]֜GiƘwZ\Jw"CHzֱ=mWFtc|%ʱ7?S35g,6"eqk8Bwh1>Avy2L;:$‘pξ/(Vsa;sZ7MbH'p\ow[MdE.x>{6ʆۥ+񽭐Xػ wr~'Ym!œ =>fA56t[0Czdu)-ꉘ0Z}_oԩӨ 6\qkjnnPH[f<+W$3PߊiaMY2Ǽk*\åZWwGDfJN%|;{q ,J1n[ld"͵v>%c[+?rwYIu~+uZ6E˼*kKv41tKNxpaF/ J+"T:w27ʻ3oX5OZ`o=M=PI%w:CLOƯ8w<5yF8lcdWR6lP$EiQ0^s|:ehGwlñyM,slCA.3Ee8|;~`O/+.ۑxz{N!0ER%h6^MHO İL:\ _ n;.% PKyVS[r??pip/_vendor/urllib3/_version.pySV,VHIUE%%) e .~A\eEřy JzFfzJ\PKyVS+_ pN!pip/_vendor/urllib3/connection.py8o|h7=<4Y|~ug$pnlh/;`YS8a^'P@B%?cf3^*x=ήjL܌YjMlN`q"J"\&HW` yÄtv>+S,Eػb(d)aP7E,Y]^c$Dr}yir봽+d-RXd bAc!'Q}޵C]psyl>fMSlv5=?ad܎|',%|쌴?;Z@Y<1#928VLة00^:e{լ`\:f!P}c0@RءHVD+Z#k3ŀ0 *='Ӏ:u>A%YRHY/r%ϗw[áKN&Om"/ԑ1~dɏ*!KMٷ_k'lNJ>FQZ˄Mac::,ՐzP U(Hhg ]iq?)rП^k  |+ :'-~P:Rz[`j+,&nMx"xDdɳJ fN!\i;S)Gq>#_cYu-V|p7r%YRй!{́LX׫88 Ն\Me^IFYgNh^[6)` hl pӋԈޟM4BiKѼCł֏dCEnjZk!і͵yH!UOzK nQ -@XH#8 TbJhɫ̤ LPꗨAZsW2ڣn-eZ|7Qk *w-ŤAun@oD(!H9dLyG8!iS%Ze:gS /ztP[8soO48D3+Dn]8hS m1z \у要2tI JHٞ7COeQ-ԳJ:UZP 2nVnU3NO?YkPmZN?a#hchI+t=[\7gml*LCL85g5p!U RWطy1 e1\*%AP) !ϢRR:qhv/B(yj dyi,md_^Nث=TW>L yfᅅH33ay׉BIvu s'-UwRjr\gpAyv( ڛ_Ih#hllhEaem쨢D]G%9MVԯN >"n y[mȚ-0Y)T a1݃F{v|l8~z jrNQ7@3';шP; :JuSGwcv8ۄȂ0'x8ƽ/xwXN7;ޠLK4TpWN$fm$u|9u C!Wht8K _.ݪ]cF쿙Qkf З[||9d \5!/wyX<.o2;[ea*0L^ޡK 6|+ԿP_Y3ThZnNֺ:u{N:t(/]pit#hs7;s3eMl;Fa3 XXnl4]Nt9ZC!e{zbHٸ#v|w:AuoFZ'}lXъ4R`TSAqo=O1vee!;Eɥ^Uz k| /J+ԽL0&C[qCZ*՚쓓X_U"> cMƶW+JB5CD/ĮNu3 kb@x$*- =[}C<&QRd8[4=$ cK}E=6q{KmX%? KJ,,,A GrvX_=I۳Y/eX \\^:V@*{uIvTھJlhV0?F ClSr8wU۸An( *=>Q"Pj{Kp  fQDua QoиIoix֞v̖ǩ(4" 4ǭ<& ;PK+~]vB,9?B(~A>MLb3{={wR&s Hۇ5L/C 1I 4ԡn%Z&2?Աeߦ96/Zh˺tsO%(F@m+&Qe攮Tvntn$"&Koƥmvٲ,W6u'SyՁeY!P!aK~!ڱ$pBǗs}d3{??n2(ZP׷[=HJcz*=뢦?C^.rMU'ο;=;= }^MM}G E^Tҿ}sY.Djc1 N@cF=MjJt;(X/L/ kr& M c ͙r*!U:` Ýqݴ9}"ͩ4sq'WR!TCH/(; oDvlf`5VJ?gtO=-T%받꧷22+I?vQ`(F^Č*]U?fv9iRTR\ PvđV>GlvF͛.oT(%Wlrꋮ~S~IH%<Lo˧OJtG:-PKyVS F(Ӓ%pip/_vendor/urllib3/connectionpool.py=koɑ+("}Ȳ7ٍpBYr` G&9 3QLW~wSM80,r^]Uhu2.otMtIve߉)>8ETQeQ-϶ߊNڵ6k*h,3nudmrEg]WEw5_8鼮*1RO .k;+M}+b#zJ?\__ƮƽthE!Mf7m+パP[wʺe]֐כn]Adh.|{ʪȭU+ğ{vxޛzH5;;5_6uWϝ{0^Uw Ul~-FT[{wR;fًU[NY7_MW*[ h:XC2m[D[ѭm TA^M(#T[Ssq7f#r P wʹFi?GWϽ)[ؠZME)- ;m[t>Dcp?jwjo[-Tw?68j^beRk9f_-.2ʞ"'81[ dhJ0B.a ONHO`Z,]}?fCxpWڃy xLf›C9:0 4[KgYZ.q̙8gej,ɪmpHH:qcA4CQ GI^ ug07;Kx풏.Zp*`EX dWj Dv'^~C0 ~G_Z+AWh7*[f6dQt:lE'6 i|xq\Ob!W9y< 5#)Ҳyz彙y5rYdÇer3/ԟ)Rvk(V /#u P ză'{=cf37Rq 1l՛iBVmOٿF2X05D w/?^_=4wrj.J:Ȼ8Ñ7yy4F䶎:KgO!.#-\A/ l3 :Uԑɭ#76/U:T{w,-ԦkJa.Љb9L6MП ҡ%2܇mWpn!nog3dfIfd@ݷrpZ>O~6+Pk]l 1O}8#S p Bt(m‹Mٞ](VˉڤMrkgFR5U2Ù]glY;&7O[H2 )1Yn.A+:5HA]uB)҂2*.ч \^X@GxZfJF"i$y[ X-)#FJ z "./ZyZӆ&=%OC1}舛Q@_ 4bTxNGTp-kAP״cwE.Oyd bH* ړ #րz`0Ѫ@= 9QA 6oVӓ i]pgŻ)gOvA^@<֜G+|zf3$6GJtB>~PK&0Q9$aIyGy'5?*ǷAJ7haWI }C \ۂe) U;61n O%Rg{2ӥqL1.5vW&qG:?p-P L? 1 Ibj[@#k#q(54{u=rÿ4˕Vo2}S^ ;DyϗGL(<:_j*8OQKywGBm x}'P Sdt^o)ʢۍ=xiobc֌1oDӌ#u޳@.XVXy <[ipLFA-x ,@`HPTؚF'dب W?i)Ùa%W X\.t/;Ʌ9aE!ʬëC:@9!quVMu9 6@q"6D=8?8ᗅW4Mݶڙ6PQ F6g{p{Q#jQeeJC^Tza3A JtkǂmۋgϿ~n10n^94OZpGBH7tOOYph+y~~ Y/V(7w&H&OW"Gӧs` h,ёEuo>RvrRQtn<*+gb#(&/>tR:FtU?Ω1~,BF }C A#Ѩ 'WLd5=ENnOtKP^Go"2@ڢsT'-08GڬL5n3x&t>t !g s2-J Xrr դ u9`yAj4CI2|pEkA+Ųu E4kibyf48ȲSr*t>G RBUoK9&cx­g *9's}&9P6#b8N0^$:(6'YBg%l R]Y W=p'MܸFmj28NdE%+3C:4H؇vdv t|pRP.yJ I"ZS'LjDX?_;tC he##WR:_>rW7FQŞ2\$45bynbry$'9@uXc `@@2Șj D4&zI^y£%%A;7[/qf`;E0a|* 9J1O!f[ŭHv5E7JzAۂIY׷ uQ"XuY d_e|ݘ lX0UnvOj1et(8~]qXJ-8$G ]k"[>t 5E~477mlqCHaR|M T?sX2Z0g2 qO!7CQ}&gX;NS+[s?K&/2Po8vpz.Q PeNKԻ=8s An&9c1KLhA[TN90Z vG)DcH + IXٳ(!k߀O+?wa^|>~xCꞤ[`Ŀ ueDʕ `kMA}8PnvhgևgOhHqx9/꘬='ewFGC7tۮ-Ք b%(c'oѝŸǓk1FNj y_P@*E/ԥUpAz$~^H5++]jLg#)3Q:mTi c\# ^[ѱ&_T@jc.@4k+D ҉]/`>Ob;}N19mյi `UTZt1Uފ#+1 ZxefBÓLA=- Jsz(! âG"^ǟ219;lXdf۪jjꑴ2GYjBNiq`=ޖM<0u5)HO7;9N"ω*kGUSKpK_*eKB‚f7JxXT4Aג*깺g*yOZq1)*V@m%,Ș@uxit1{bz}"Kpmu1ސUWe%{݃JSwal}5v6[j7 u\w篮1FHT͎'ɆVu`FL!K:Iud9P }dpQJ'D;n]R614jȋ Qzvð΋/L]R2X.0c=l ΪxBJy7+bం<&…~Oc!VQq#\ M\d*rklmbNy-Y476U=* ò 2b[FHRuHPu5m@+m 6@>n"R IGYe<p*19Y |BU@PgB{{L Ӡ5[1̸9Ժ q1N d/~Ə*ll'rnozi6ո 19C*!Ee cc:IKW&{ƪL*P]&W{ZԽ mY썤hܭ€1RaBC.6C1k=qpT'4 Us`eW[ȹ(RA_z.r$僇TU;Ǥ|f.NBՔ TwNyX{@'|;꿒ÊJ >)SOnra(<엾QΫJwV+JV^8\GP UO 2^{[FiѼe8xŅjT%Uυ)h_:!&HxP32)r0'$1hyjV2oQvצ*s8O<m}!W7 L6ֶVا8Z+M0OEz$㱬|0GcVX'GܸmS5Mch.vu~(K]Pc--뜝&O"H=t\7#Hd)[.P}B.JTAhD%I`U"`IAL¨Ұ3Lk]G$\3ĤTUu)OWp$[f^ `|9%kxE :zj<V񬷾VY8ey5fsYc [s_o&as0Ĭ׫yh\ީvP K brdѨL.Kl@f2]S/X'g3ie2Pnr(×!!{Ge\%-~5DM*fbG@蛞\VyO/b3dzfRÅ*hE˹%=~#-sso;bS>45Oާl^(tg86ǖi\ 4h22 2dx<0ƳrTeY]FEX+(:^z&><:j3d{&p3AkTq'n. r#*H@}Օ-Ȳ)\>Қfw%ǵUoNW'% \T½ _wj,Y;O7MF5+GƎ:5h})TĔyF>PqZv1'E)"0;Z7ǎsyyMɦH/{ߜsx7?%y#fx^a]̵}*N)h^A|>PIILؚ@̨%Ӷ:E;*WO[:n I$cIbGC*!Jh=id?eFWlZb+!T&5(aAzbqUQcYUTQ͖"]urCPr#!5`DԺZ2e%ZCE-ڃOYTe{`ϸTndKPܡ)âϷ[Ͽ=ժtniQq`zN;YNP]t i@d,Sqn1#U+hL7X,FsT6y)FrӰ&(%JwʚY.pL-3 1nUM#I2R~պ(UZG7`r/Z?< $(ka(ώy8"ᩜgXI.A:>AWd,z UZTE|}~}4NTCE,'fW쫦5NyO:;=D;t3,;jg}ZrgS"(b}TcjSŗS/F5atVq)H`y2ɕ>< c ?7of<&KAiWK?iGϓ(@TJ@}{LY x'_ddfP 60sHSv~<%& gQM Qn*?%OώO9RUDUPKyVS^I  !pip/_vendor/urllib3/exceptions.pyY]o}ׯ  E z_:@4'qMR]rKr% o̐][CĒ wctƢhSˆ(b2˵qN '"{4YGvf,{s.T U<N 0nNJ:jFo |EVv4)}4FI5x917i(ŠeNT`ֈ %(ّzO_!֩yҍ6L bN*4(Ybj ؀W.&V)MLX p]ќj2g֑4svaMR/ڍHXU oWF. k PM0IyâP)h% ^V݊:`V,x;{Afu,HoHfN4oR .`rI X'72؆2AE!bVJĈPtn3!d0OY1Udka1R@[ d9Ϲ9kcEsnsd?p c6CK #+<4Y0ad@&abEivVʯ,T"LzDi!$КtEѡ6?N_Fh8-02TRle0I/kMSgL[ڊO:"U̇[,M1ǿBnہsD `ьlS3#J*d&tV,"A6@Apd ΋'<Ɗ+%f: cÁ]pQ'dBl9+ȦvK>Jšpr[=O?=筵鮎Iǔ]$<0(S$X=pᄥ7f/ YPmD qtYaEĸs<ށ#mѻR턑ry1֦m̊փoġf&=&MYO4/u*4+qh=]]5qQoT_]GІW*}Q6$+lh.ܡ^7@ Wj#!}@T!n9;J1چ_؉PMM`(jml˫p 9MO [ (I^ b!]I0AkdxhxouT}f iomgjGO_a*b#[VX~^6sxkʝmUBmX[ƤY 7oTh}p>arlN&1݇HNOkhb*HѳBaF[_Oܐm=Iڗ9 7㎃.$[O*e+tOP ruiHlutм^ a2@('Ҭr4kZۮ:Z+d: HZ bT~Wx-d r88q7+z62(/%Xqa\.%gk U\AhCK}DU+b_~Nܻ1D[99r5m;0D}_aoAHzPЅĩ916VK?|}  Q|kDw7 x^VPVv;^Zq\h+;N]_7-& ï+"JLo=mL@];a_|ye꤯**E\YYX;7.<Ǘ9꽱t>]/NB?:)8 "j"Roo2Dy#̺S>𾭿whLk9h \G";;e+#R%Xc6_xq\Н_yJ/Z//[Ķ PKyVS(K, !pip/_vendor/urllib3/fields.pyY{o_b ֶ|A*sq$9mP+r%1Hw[Mޙ}ˇ|ɡ˝y^ẒUÐ$"/%a+~:߱$LRavɎ}녒FkdK ݱ HFQdSq!($d:Iyv|B`RXQIdgGy$ Yr<#r#rˉwYN?Kk2#q^=JsDZ+d2|Y+F5.edYhZ Ph)P? ȳt RX- p.SC&rKᲄڀݙr2ծF,A{MB,e{נ9@˺4*NhD~{777M6hc RTxc򔴰]!l)ϴ4LDI5C I.Զf%ׂ6 pJUKP{ٜ'^nC6RleE7BUO[aȪφC*¡9;Erܞogv@ py󋫋7gn̛ϧ=1zNjEPdnU`Ҿ`*ge,P`Y%i"q f`4@A^&<|\ۉ3фqrxwkϦB~z=mNrM2v8ͨf bh;aqɩ*ڌ`$Y"l(܈m_\'&fTEnsT191rPþfgfv1ϗ1̓u C+ &xO ͑:b&ϜMF,bj'vQ"*/@75 H %}u/j_ o!='z<]M\(+H<Rt cN6|13|HPduJ)dI֐zr1^xN+V'7쎣 mVJ>=@5ͫqС/9KkzfC@g]Qbfaj Zc~DЏ= Ö \Ec=\p/솲v5_93NF`wd b½B? +PFw09%3H8~:h;YѼzr ;nu}WԵg&J_4ҟϟxY&3ѡI-rM7z;;=kZ|6xgmϠ2] 㵦Փ~ma|u s3ݚ1 تB&v( 0 MnKSzNvuk 4gw`+SV.؅,=V;Nާn?fRNJ"׷MX>-*u30;;anRu|C &LtOa0ifG7S f|4&:S;֛i7R ҧ04]'t\!^&7Ao:en[F<5ݦn8ZuB.ԯuA򜘻چe{mo. rZEFIK2{+y@6@u!`xAj]CQQ8P`W q=Rj ྂ"ݹZ=\cUtHՃ;̻M%h$b9vOw#[֠0r`T^}m[u/D*ϛ{ӄڏMKT`vz:LxGo3ׄ_iҫCg?PKyVS~ pip/_vendor/urllib3/filepost.pyU6+* A (\%hHz)Bњ]THjw}ɷgHQ-{7%r{aktEn0X ^Z;Iz%wmz<'7{v1Y+P6v__=o &V<,v-MUūIo>K׮O_$I-;-T>7 Гi8pk(`/y*6ЉҲ$;V)4)}- W<؋mLn3J, oTMړS ]٨-qт%a{-HaI"U UxF릖D6)E*ώu/c)AqUcu"Nѯ (-z$x!`y4.F_~&#Z1 kl%{@ĿwiZy tv;aT2Sȉ"lѦ3 Q74 ՔG PK; eDg 6 P&9SJIǪ|_XviG#{Uwaޖx0F $Y^0ccad]֛SwF(@AZF7Ñ\ Ǽ ;eptGieQ @[^8m3_\{ykoj;%A! `KIyA!Uͺj/y¦~\6ٴR#JuJ10͆z -hC"ݤSjgOC`lL` g)9V+ScD[k#a ڤMgZ00Wavdt)BjktlVd+ OtY@r63,$PjXΗandS#9)3Oȍ w!f!#6BmEdWhU7{Y73>$BXO3SQU`P[(B%@U6`iͦ#"3BsQAUetUF@LtR Eh(HiVz'@A[xǺ7Hv䚷[`xΥ,Y<  WV$UV+KsDϴ'@@NUscghE{ hK@^T*|°=0GIM8H WbPhc߄5h~l?x-3  95:/ąFgsľkˈt8"+E S1lHݱ}38Ǔ>Nmd򉴽,+ Y϶؃DNfx!$!I[Y UkqoeBͦMos1 z@8! 0 㻪nۺRa]|v Ljof"^Ykȯ:JS Mj0Kof=^2z~5K ݳI7Evcy`yղbl~LIeRnc5HNثGŌ^l}lpzQ.Q 4rs#0A{ޏAC$Ui8HnHxf#mOK%3d5 .}@yJ,DW2| ia_BXy`Pꍆ]wVW."_DqLQhRR:>=x y/;iѴza,r/oC\D1#ϳy2'%6;凳8Ci=˺_+R(wu=y[KG O'^Og6 J4%B9Dmό* '_/,qBERz-6>ΆXՖjߡƜ޲u\M }D?_P 3O&gECCbEF(TCbhNm>jJ#.F|e4>MfFLS3t-Kha>es9=^y7Rc]On+p@"J_-j|%|0Il#L'ϵMkl~$oGHZ΂BZ`;q^\]$'IOڱܴXk 5t;8(Rk(*\W_%vB[3!^с PU/B蕹lV.ܡhϧ8fZIS+Q@V%%8G*!:aIpwVZA Q 'B0 l*F(K+X }rjCr̡Slk^cCI/vaJ ;)ҟ1%+& .]op(srÛ~,99QX ƞ%b 3B\* + ;Sҁ+71]-.m/wxurUt\bZ \=;rq'*KBX5B9~BG 7 }?=kd1L0BxVt;*v -j=h`z`K5]|f>Vҵl4i3S\cS \*Q>ZR9[mUosPz!Ή yDYy~jyRg cȩt5"P>~}Zd?Yا'~ت"]kޡn+ȿ_?{(bHk-gI5=HYQ[U{V9', 4zzOՍACӻ~2s9P3a?\,=0 nG, C g^YF!WYGV|S^ ?-SQ_4#KK$rq 裆&,YĢV/ ŃcLRg= ^B8JϓcGsNoW=D\X`n_F&Ys5'IEi%gɚ(悞YO.^ 3:4bjp,D,NE(x6Ȱ]l1M4} hs\JBnH$83RH_ DRaJk& %vY]tY\Nbq>{HqlUܺ Q}ˀ]X_NUzcׅOOQpfrQd^i#R)_)ކKƘ6MC^1ʠy!ŋv H~1y{h=Vq?ms`(\?)n4> ޒե9(@T:]_#A; JpwA5 UE:ptؖ@nJ1"Bv2,›)`ē`aċ߾}C<.XK"=~U:zbZ"lhb2g{8u:ɨ7kO/mTDq5 :UŇ&nݱS ɒtU q=^*SK{8Cl3bdVߞrG dTX5lS7nȋPIl_]kt9sO '@"cne 6` MG7`ao4<n'̺ijcS7D0qkt6dwlDO*܍P.&Xw0hP(3sLR'w 3 Ey<"8Ch+wuqj; KWlRip' ɝ>8p 7앵Y ~Б ĵ BځS*/m!RD 2x̑٠42m ѣs`=wbnt%&OH԰k>{<8\MgKPp?0M:.Aѽ26,8s6@ZHHtՆUވɉ/`es׿_單ح r׾ Ls$"x/vjsexשSj!k]P˝T{S7WԜGYW$ͱ3 L#6b67k"Iqx}JL\$dw pzSKnDDCiu C9'%\_r no]A٬YYNjLg8171t^} \a+? =Dga-}/D@m=6M|i YO;`;Ii9ړz}lCpIfWB.$P\ ʽ9ӚXTV/-ykq(.$ .2u7:& n<<2K@*l 1nIDm|G(t#XpTCb`)egۇ$ޯJIt,zqeJ^Kz%Q $!Iq?Mv*R7j'A y 8ڼ XW6Rub)5VGkTFslg/+$>6ee8EfE׽Qo}-QȌbFgP/"T!;a_]V6అ{WbB?ɮ,o8|BCaFE(E]o^=եPshKj7x鷃'-z~⟵嵽'ܽIͽ[0T˜j1EY8iNE{hã?MZ{L[oYA ڙip~dQN5C/s1iSV{dwKq ʺDWIf%.MbMgGV ΰŽ1t{F"ޚ^FfAy(%+ *1.{5*t -D/-̳ImRhG W*J!d}4Dw52\~7m"*ﻼğfvE,nݱBtJ[SeSJ{'>R4Y?Ff `~̕\?#,(J.}Wx鹘>J ʷ?O$=R?J]BYwln7q7gZAoRMOѭWx\F @t]̻*I)z)Vܨ3{۹z` VQG"l|%1bR9j>(biLB!9jL-PKyVSapip/_vendor/urllib3/request.pyXKo8W7"nL:{h4lڢbN$QKQq8=l~ %oxC-Xܱ$ΚpRcAҏ?|O 6'?n>2w:>/ۅT%3jK~<1ߵ"<?7oE^#'$eҔR*XqEataK&,{H:Jb"{-3 R͢i6R\~Ŗ>5^cz|VX 3Ȼ[ҭST.tŒ^\<rEڕֈmP'mo'kcrN3|>Ά`x>W1mMtuκ7QMe# zcϡM>qwu3n:im4f'J$]'GD?y9jEh(R ԙ+vH6[K{h8e\Ke+u:J*-g.-}R.c88WhDh BDJ "`sZo\&aȞJ=M[AXU,~0z| A||w*i./LFiU'Wn=ӲDZ,i};́ ܮ'hy1Dm"*uU{o .!IF'0Քpf*OuD6vp[.z6Pw+F|QāO/.1ކ"m~; Ga񿜷Ic@# NURnlyszc~v+SSE<]^Q-'yz,Ҋ[%]}ز]VV"e[H nﮝ9TVfY4Eo/[j6J~C;+YD;a.’EɂIwd_Ip?q ?]8v?$'e#+IAkmAz{O2O,MjHȡb*FBaȣ3P[ۼ@o~{c;Rhr^`/@ Ԁ3) n+)E C#G`GQΜXK[ؔ YBL9zeEB0A)̳s've= ;kBJ\Rb; _`N6шq I 6x0l7zOG?yFC.>@]~@򨇟 &:Ъ(u;n``Qf;u5,)+kVu!jWRͺtjsFE%M3x zzVxbf?1Nw|'&S1kpN3pاS %,ϳ5b!d{'y}L8 FV9<:mAce^"AkJ`mPkq ?f 6cl2GƆN/0*%]jKg\Vm^ - &JLÈM꣬V;)Ğى7Dt! P5Y#7h+ 艖B67Oڞq&!r &+a@Ә9BCU*['fv,:ĶM6|!(>:Xd p}F[EƏ+iMY~Du ֥`ҧyRwKGrh V9K9#ƟS+ق(zY4ʺ27=):fѺf=ƞ(XT 7+OVźi}iJ\@zPr"py$Jso&:,fy~?&یsdv =GPś۟o.hGc?_~l=6p s>CS>֭V OžU6of9؎^vf0ئ, /*xd?x3 }I'uE0Iۦ8C(e.jrAg:Ԯ@Nrg8I[=k9nv9#`mfXT:fkلTl12;`V1gMY7o9 &`s47HEVW]N_=C;2AQP er DXQ% 5:2A` ):ZA{!{t/_2q 63b`=⮕bzWE?Qbs4eQJMZ<9YAԕM\ aLA^b>1ViFWS CUC:P,D} ?nChɮ&nr;׬ HFwb^Y`|AgLβ,(:EGQG HNJ:ze| 74dQUvr z,*T-_L(8&?㇫ٔ:t$ ]Gĉj^@5*@i#+S4<9ߍ9>:A> |܍?^z34?HJBP9ynhFxYHr$jŭg <DQM¼B͈".5.00ţU(T }#cykrA[EΠ S &Z%Cm;lȍ$}.ZKѷp hhG@@eL>=nT7J0W7^^)_1DUnDnE4R54-=ǒ" 7%BʰؕqCJ0~ywbu`kr2S ]zG9H}D:\YӵȤSnw~nw06JA %ԢpU9OYoE)kTzk0\yB"-1Ull/<бXe}xԸY$y35K J#mބ vdGԗϗ;ef [?q,QUIXfE ^bY݇&>̇50.t9x @'VƁSG[?ESc>C2xdS3$ y$4Ϟ.7`;pYXuOSK,ڹ2+\?5`T;wlO<-Q쀖AZ3*9Gs?SdO`/jB)xݮV;]J>G)`rKm@FdM4D}JG.uv'1|,͑;4s%{[ *u,NO9Y۬[yɿr-T8AGǔVbtdϧImg=6G"ecuJڟ2DJ++sz S[l/҆˩pStXF_YYT\f)aY<7T$B1R'@.z"p*[nrum+ȷ|9AxRP߹InFkgԃV`C FaZCw2SwA#AzOW]K/8M,Z?]' E㐼Hj6QP;y= c|cnѺgxN }@5H%]bNfsm4s7,UQ@b:-߯N*^XbϥUxXsKWÕ}I~Nr$?t^KiOy]:p K;qv/TF'Oq:S"c]k}N0W~{AgqK:BZv>Egķ50iʞ\iJ! YS忊[Mlij,rYj}ר bҾx}͹ 52mw49eyɿ6cd {s>1HxB9*B܄?+w=ŢH{>DO/`G iq'e_)V?׺@+ȋxU uuJ#ɋhj:7tn3,ƚ\S(H⩒]SLבWOmQ8 gbf3pk= 3rOs]Cx)[a /{gSFڜ!w:s/oUL1 = & JnPY|(O RWGlowN t} ^L<|>PN8J+]S}&p0etI.$J!wܤs`H5ϯ߽** [cbr6kaK^>'yȘ8~Ј]<:^DI~PMp?&ƍt|ߟPj(i%V&(Sz-V4MH?"2OCl]#!Ƽ\eso3v4.6 dP>48&;WܜnfQV/ }Ov3=}C*rΞʌzqug6CԪ}7Ќ/VɭU}nG "^İ}_ޞ:ΰ}X].n+{wFw z-X8;ფ/ЇYU=Ni:Ǹ,Ďy}jH`y۳xOtL 7$w<#*r[MΉ@]mED& 7lu|Aa-AH.MQm ̞?aj<7bũ2( t˾4O! e(:Ĺ.F[egeWŗՎ{_.݋`3dB1mVp)׭זϏK"K1(6Hv{BAO/?'̼cEu+XnM`ҍCg emu _DnXfHA >ҍ "՚n*."YI/eV בx}?}?k' 8O酄U@ei=O^:{Ҁ~q6PKyVS'pip/_vendor/urllib3/contrib/__init__.pyPKyVS*1pip/_vendor/urllib3/contrib/_appengine_environ.pyœAk0.bC.@ qBgJ14k!dvgzoyzo,(v0-4vq& ,Df(Eq&{W' Oi^?Q:BN4<;:Sk:atθ{"CdC1Q˞`3$?d@HF$-O5 gZvtT=XIFFp L9j!lQ}v$qzfJYuuKECǙJUG]\:`i~:+~z{v??pOJWM{u6W3`\7_}~}4Xefp8%9ߦ ~iC`;LC\-J2,;i#PKyVS8e g +(pip/_vendor/urllib3/contrib/appengine.pyZs۸οU&cFOu_<\XN{CC$$LZUX:99_&Dݐk(=HQ65_Nt*6seIl%4|=r:;WlP[ЍH wq}EVl l͈LYɤc$LQ\2YzEJHXsQokƷq~ol'/'srb,f¿ۜ |26Yt=VC_ZP0%ܐF(uI"P h!  V Zd/ښ9O1o5cDTZ~n%/7E(a}D74RxKyurǝ\y%9e5K{:m 2EKr&*t S@e!^Q0O] o1njOXIW9 XLh.]l^T ",@{O+*9(ba^,B,1|٢Kzе90Cҷ lE~{ksrhTLv቟ɗӛ.7ɏ99iꖝD\ŸBE&\g`lr(uY.G ! v\M[+e@ kQl;&Pa"d6`$ ۆ%{q.S.64%|c4$Seie]zꁏ3kGs]F"nn>xߖ``32"T43X;xqoj &xigj~_?20t&;"YjٌY9./n(bHW̌+wԀS):!WjXJsPC~%| _ k>#T$)i( )4vu: r SL8α/tƿoDY2r\aP  q/^װRn.ehF$ +ZГeHIHd`.26͒@ϗBS ebh밿ҨȾC?C>^ZAAP59~{ˇ+V=Զ.À*m+@3 5wЖff6a߀{sT_5EN2Axv_V"")٠f `ikO_wټ _ܘ@Cb=<5NGEH,F~6 ,vXJb([:a~ ,n?f vڢ﻾_?5$JmFBgH7b<}! D([t>s ;-/E8K0u~ykdqLl ̯J%ClM!HN `Mm?᧫}p+e2%2WaZzX)YWglĢFnz̘o}aq̔KPP8>¦xP)6d?76.u;zAa; JۭQ;`ҝڈ`?^s@s[( ;=Zu)eHP&;:w5ղa9IYZM ?Jq @Xޔihס7[ީݵ[j/:5ɑrl/1Q{ⅶnIX/^cvn 2yDA ҹ׋ƼLk߭s=' ^Z9g6 s{=DžV`x.fMn%9cUT0Oir3j7g#nKr=&g^0 99B<^>~`ăj 2S1!a:>;N4 'ȉ:HamE3̖JaZALIRH;Ҥcpju, cY DXsN۳1tGTGѩw_#UX,شHV݂ˑa57ڻE]LgR lSB"yӄ0Ѷ$9YzܰPr{#ZƧlӉ>ԓYA!CFɰe,_o~h)׬~ܖ/^{ki{|֜ĝVdNmy2cQ,e{$ybY);)`:!m+6TIA@Ms =^}hf2f[{QѮE [ %)x,9;9xEۛ*}qWֆmȣŘuxR 8jːTWLW&6MB'RN +pw8|40"91x4m&>oMyܮ78{MVp/S}w&#$sd˽os:S5[uKT0+t V'U_\?=<_ cO5RՃ0ϡZj{D}H845fk_̂.v~j[o> 0&UƥYV*6%9 t)v)4XG@8@ bCMԿfa[P#Uy~iMSؔDC&O%a#EV̐l81)v|lEPKyVSCT'pip/_vendor/urllib3/contrib/ntlmpool.pyW]o6}STTIW`0` A%Ҵh\! Z-6Tl%rR`<<~ОMVT*b1QBy@ %غR4#PcP! dr!eE,IRan9f4y~XV"!aBao,Y&"Cm*U E d-yG{2ik" )orgBeytS^4VII{2[;FqƐ'L&-P J)lx^CG3rT&!RNje >?Ϻc48rFA7 )DJ)(/!Awh!p?/$dLUU[jmmuyG^T P)jZcyn,p#vzqaXvt2AaKGQAr \tp>[О#8D0^&w"q$P dOFلn0YTf@YP+"B֞fhA%pK-E8$J`(kS[1DO-[T1[}xrqu{W5"'wU֭娹H{½hE1:maG./ [>-3eAjsхA2|TەPSw{psrLfvb vlˣ@ʜ(h2>RɶMQr{j54rj A"{oy%3T:e;bjDD.4 *$s4LݔZ!p&)*xI_~lsgHT{VnRׇ7J'{I' c$KǪNQ^)_ctAz[GA\1[r*%v 4(# W1vz:Z}X]sڤC8 O6Z s}`~M,MrC Ğ:v;vM;iEHX|vf"2-lٱm^ܢy~GB1gބaxuG%l6H<L y.Ft1)CS?θ4f4(+"5'lz6c@t)h0>M+)9@uT+NIbKGQo5z Ye8uVӛ[\KR71A ț[̘6eSɛ⣛6K jO/Xu%}.vs1yҾQYgyr)# W.E0SnPKyVS`^B(pip/_vendor/urllib3/contrib/pyopenssl.py;s۸(&TNfzsO:9ribYΥLHH"X]$HQs>ބ$w35]M2 습L+]$[VE.X*"i%ɒmeD$Axc9q Jb(Y$L U He\ ,\>NWES!"\xHOuOD$`RASH~ws‘K|EOzl3fY˓ξO„jrx!&NMagk![*aNTq ė,q1 Dk,@cV}u$Htb\Um^$/ÎD˲(k|ˤ,D{=eM;N}__7 +k3|Gc3#t\>.mu`*GNKKHQՇY'8C^ǰ47L:{Zm?Ւlk9`# ;$L>]pdYh!K7@ۜQ|ʓj5qKOc}MXl J*|pDq;Pl"WW}F0[YI/v|Q;vs{}w}q.H\Nz H^5f?d}P{"rʳr|1S@<2231nH) W! jSz1 xs~=zܽ~3?:՝p֜Bu.qO`< f#mHAa[ S$9F&(M2t5q=N٫'PPWe /"0A5?D{1 &Mir;M뛻N;ɛm]0*0@|h?a ҆~@=qP> ͭCS%SL P W=>N&/2m+}z=UQݼ:OLϠE0hB;x A:RmO2QP?FULNh0ų׉t`@^" A[DZ3^H(l-@+&#Yp ixsreNQ>xc* e DuǞ Ȗ.XxDD QBVn b .VYV'"xۜ͝hmvT갵 H"춀Ch;3l{xpJ&԰6BIx}a*2\ MC=| DYf0o`ux E#"=U&s1U$nR>&ԤM0A-F 0WiV[a`k_F)M(\Z8i t/"F>Eg)>JH$*[-RE"+_c+Z'aE‡w'?0b3nv4`p h4ſ lukJ"j!\"MCER2T(V`WOvBl}e@vBn:^ǵ%מG .ŖZ&"`\H%|6aeQa&v2%o ξ&j>B5b?iһ(DDm+?82ɔw׭DGtǶ"?4 !} h#Kb鹃}X#OH-0}7ȼ>8[HR10M@(o[ Qu!L`#Q967㶌FJ,W^Z6PG},c~KIBaݡ8L4 b-%6Cv(Q}䇾^AEksO JL!"]yv"V!a.X9Wݸ@+'MX:񦄇(;dbb+ߊ CaryтcVA-XjLL{0+uA R7d2Fgj %"-=l #ֺ|*Nա2,ZjWJ^D V330wx<μhnS+u{dPtr$J>ׄ0yqf, h$d (!Sks8cï?@<}S{Bϖ{_n@ 2n2bաP%B8|+]5jWZnLXF flQ~oErihN̆tP _Ds 4SOMzisAX A;>7'6SN[a"ZkJ~:+.d}KC wZBT],wGvLNlc6 XV8%c/Zxq': vi'dm4튦qD/ o_\i%j!vTb@3~Gg7f.\S#90ʸ %oijrjuYDrgGRɛ`ݛW,##GctChse`{.m-D/U(} "`Onctw3~v| x@a!\@i[B_1F7̭YWXLa5^{g=`ܶrȼHvcӿmᑱ{{Ky%Xb>n%IV!@gO˘Ξ0n z(r# ;U`,q\6cp1خݫjڶc?,Kuk:'4όd[wo& Ge<%)6zoOW!yRQ1ROg>VOUd!Rw ^.#a$c]Q&S| GVd[dư7PCc'mǿSDВCFҡ.O\w]m|1M;e|xQSmק>N i< 9x3ᣩyb̀B%>k:us}dYO~q-k/ۜV 4i:87G҇VŮ̠9v)¼Q6(T'!4GC A R i8)^:9"i{CZ~4w'y,%ḧ́=0*P\sF kgk0QLos4-}ҭaGU?U }r5t{v!DrBGV/sK)=mܷ&釃,*\*ZKsT("u|X +Ih4nv2,39˂df L3QfqOCmdu:Uup/sڭ]MEDq0( @,iTlb(VD0@DD"ӵÉ8͎WJfPzYFY\e\F&UX@U _:@OB/RKGi6!A8MAzaa,v$B& ~`Ή̚#Wњ}A (V4M O^t/E~%MqS(_2sY"O)} .@`4JH+Cޮ5+T H,fX@B%Nir(Ђ9p͋y$d=Jzի|By (qeF3SGb:}܎x*nn'_.Dw0}e<8<vp=YL.g/Fv4-zxb|AדlB*p~?Ÿg^a_Nn@ ng|{3 }=FF3Fgb7CL?p87 3E\prǙ8#pjW񧾸||Q @ybST|88Ɠkpr=?0Yx:x (4o'0 zM1$$J<8]Ws^ 2>eWJcNJWwr_ p&_2˒T&(V|Z<'꯼~QdeX(V Q$[gra Qϣ%XVwƫ = 'W>h'|z=Sm}W#:L3y)`F6WT߆NJ}@ 1X)ףAʬz?/xq}n? LB5Se 3\4Lz9C=%e!1Pܩ͋lw&+q|#hgڬyGi޼z>jaG~ cz3©>Asq&#? =tNANJn  |h1Z3Hq0Ṙe%@OAx~Pi4OcțLA^8 O V8wJ@퓊-vlDQ밒CkZ=1] 3kex\`kˢ:B3eibJv!-R?ѽkI;[9,ЌU 4[Q ŨcWB])sS__*#]64lAF nGk{&  A*$5sv؎D~BK0YGVhhjWBp"6p' ~6馌rX$.,՛WkpSl=6b]UbܱK,H;2*Ȍpq^ i`wmRe09}P~n5[=%jt}67~L.zu|&=u~:>c%3{^2ӹ{ mdJ=!*Y\YZ!QU&HPNQ1& .hKԧx4!5gIK.a2 *:DUЖaHXנէ+'o`i>5(+M En:gg('k|B-~ "^M-:xv_s79ZOSq<} HtA%~zGqt<1}_Ot?k/KzHbP&rw p-9j~.c%|< +@ЁxB:#*6hv4\Oo0(66혦m!meQwlY&o-cl5!=вf货2u}} ;Z"(^.x~OzW|:Օ ijpPm:Ӈ2/X(lqTRЀ Tz) nҎGEH5@t%ڮ0 l4AT㨈iџaf\ ɐf=} M/򊥈=:gF5AQQ&ku{\cPd2y䑼 Lyu$\ɽGA6/ ʞ5J-sfRS`jqpeknNi.@ieB5qI# (;h="=>^^ś8&o5'־k5y2oG f|3j'ub wPM,Za{ <|^Vt(e~P (KA%/V`tqh|πS]!st0{UYj=oZhnj˿XcZVbj=xeiֵv?(g|.1mJ6ǔ|t3~&Z%4fuo]wgbxYGy^G) ^QKY͔w+;Fh5mp/1x@$ē8ztL ć&:T2ih ih?sj  kN1V%RxW`቟eS9gQ<~:ì_R(6Bn}q_c),_x\=c nǘ%<Z:w2EBVTi=_dwć VwDr\|tQ;lu*L x.]mG/dZ2^FV^^U\QΞG}H/͍[s~/ec; cYՎvW<`R-N?ԏ认,jUEPC! (uv-C( p[PN2ZIQ%p:I,A4%e f82(娋˻[a7!t!&j]x/ڍ/A^7xٝ1A"9T/5`xi[dQ䰼b.9] a7T"?M(VAr+Yxif a:g!9DJ6ۀRM d ¢^O1-N 8W1`2T58.̍w60B蜸R<{E4 &JU& hTMËdWl&I ufPĀd$lĞ^{X&A'}[UD$*l !ab$*R@C2UK⯖0R`%@l\Sc_[\̋tMrr׈@R("/ȷV^A}NkeEΣJ֫JH>H0lMmdS$˜ii suҳRzo)#mg`JbV+XR5Ja^onv8r8(7Iu+ <5;hMnroNm}ji!(-N"AMtkx{knHةV=gzxFI5zU%{k-5[mAAQQnAȥB(ˁ, .7n6Q&QG9K0nD!=hDgnQQ*ӈg]^Z"S}*jjT );3ƞ˪LV>`Dsq d8Clo]>'@.OJg_)# >=Ѕآi3hl^~D qLo>\tE7st^Ӌ^y;~Ȳd(:Oy&b6`H_)RFO %JxdJfBcrE^Ϲ8c|:z@+-df5Gkr >i.j5\@5.nu8۽>=um9EOvVᑏa> @r-#)$C{tp_FSs\rS:Jf,Y2mql%ˍ%:T>@JhIE7w)ڸl5%,ң3]:,w=c*J,M YJ|@Q /])PLوbʎZU9byrW56òڀW- _n0fNglv!.\aS+0bPfb89s ,ҥC Xt`)1<?a Gވ "B<a$ì~𓄔!fVofo$w7虶 (H[TA IqG,f6Bn@˴¢HasH`' :I^2[6%.#%*4\uoid.3]{]pw=:,uUp/kӍԁ M_(CܖZWO1R{aЈh6]3˶YeAnh{v*rOL\r4xiNEZe%Ȱ,@kKtU(2G6r5K1 GE΂2kt79bU\n%hghgjKcdF@6n1.4Zq;Ύ'xr0~(w+g 1ՒMBu-wb0hhyWXZE;jICH()viI1 {$uY_i;UCt*cp ]oU(oc ࢴq[JY9vsI& >o魣rX젢rG0j4tөC:~SNGeO`YOQįPf(p/o5; o2=~' ew?XX%L_Y!5krB+i~UcU1yUetҤN/H=L0߈~ln\VeIy23['$Z;)^Zlr19bf:%(i `̘cE܄IPe7b'qdn,^sQx71hcZ]Ht{v&"LeG`1oF%>v:B%ԹQ*Dxhs*,6n-I`S69Bm[/6=(KRy:d _JL^&'7;SCN8$W8*%*`́tL 0əͰ QYs!V dڒ`nȚHWF\=9ʼûaDwwlYtԭni-PL'L6`F^M+oIyZ mETq/O3JgԇNzkOז@K6:IN&6= F( +AtAO8j@Y>&=| qzg5'$(imltfVvL_˻8= _;(ד'O!Hm@S9Nf']{ͺ 9s ysjUnVwk_/;ШkHD"0a+S%:x )6>H6g4nب?us.ۨ8/Qmc,5a&p)>g *+@1,$Qowv-)\BZ]C7rT"FZxUմ]ԫ@K:~ESHt e}o䪷7-ovut%*p|QFMSI\OCW]踍j]^{gՖ{ivdf ʋʫ[Hź_dP)te.]0N}´>Iĭ4Es(#dӒI ]P}pz'[?XJǩBK$Fo/j!fu +ID8f /i^JD(w#4Z4GFM6`9壾wT fpt;oGvtQ?JQ]zr=Rٺ6gQܶ8ref6"V4U}@VFx͖UA7 X'rx [%џpӐB H|YBrD7X&. ?Fp\Ҫ72skͨ ׮%$BL 1'a F9L_f}t;>ie)[u!QehSUf6SsmpRݬ% ]3E&"#cE,.DnAm֝+v>EynV]mu}}Kȡ˰z+eӋU_irqAV]H3\@fnEɼk<2YUw5ʝqnê<[5?LN`7C ٪!{UAǶY^zE:- 4T(\4.שR0mkkhEug ,wW ψI"e9]7XfNsBWd|97vsEDo%z`IL9"KjjZ/$*zoʱK|H]Z~u.9"Lb5Xgݝ\2]n7m [uuws~ђe u R4ܸhjy)$_E> K8|_N ft#Q~g CyzmfmmfOdܥx.5O=9]4?<*"Ƴ:QCgob~Խ۾[]!B5=z^;/kM{e{xV^n{o*޶ ۪; uɏ1Vq)OΤZT(b%cd)RqD[g1%X#[h?HȮhsL@1ܐY4JFQhmQ4ڟ5%%*so xFNa- %0љȆ##F6 >jJ[]:߷g nzVՈ2|?%BF{c!=t)Ev!qwkb`.a}cVAuav|n(]TCJ=SL dSZ:bfVcnӤ>S]@w:2dPHJHyN0$;T}GhF|JR^{Uעx]QS"%Tt* xB/ӽp%J Ϣ6MEL^gaZDb3YA#Eט(&| = Cr*pƣd"Q..&%:Eu,hۮm(.Wbfk<)P@ e)8A41 hC)Πtss]]m0F(qgDpVL׊SEK~G P 6K SxHk t&N,f {e hK'ۢYU`^+*̳.:[eBR/ed!د$\|<ћ(ѱk 3`hj7eTP/Z4e 0dX)!L&+ry@޷ aD4tC|=L%R5D=<.#M}F@Hdg`j]ϓ1ez>åv{hWg96^!!ћ9naĨwkGѶZݸޫWWl,wv@l9D y_v7$/;}ȵvm~6sbB?B پaP+7c~%%tȎ؜g{CI}{g| JLA@6j1fDl@|ogOw݆6\@M on3 #Ke]`;aC@X`o(kߺd2Ϣl:Dh2>Y;4i;9 d| Òv,r6dM`J_P kYw@eQ- CG"KAƼ7~܅ei̔$|~YK 9v00tgLvPJ}#ME2Smw f&$fE{pǜlm4bf ߃;вAw:d9eI{o .v0z-O^v`!A@~`#!tP0.PA)pAɄa9T+06]`-ab 2b7x]h"lAd>X,d |f HO8wtFoAd8=h@Y6_.l2ԡF 7]`|!αf@I艠BRpc3_m9MQ%m6]./);d Ps16hbqB;%4:J4i h܃SYQ)"=|0`DJ|7q!dǽ穸%rp2㤍\xZso!M~cZyɗgɇw`NWa)p k"w|,UB了Ô &S  wrc?#yDk[ /hc,ΚPP1ԡ8{ n ]_3:o:-E-ƑB@UTE3#p}{.$R?>-AzGբ^0gR'X -_+:J!SR!^Pi^K$|& yb(='#`M$`mҖ65!ḩ#@ESd4E.:PE(7;Emh4P *u%oh{^1VoMwQhZ35.HiZB.BF.~ܶdpL-Fɠ~̐ ԘTP_'sG#V7O ک^N=@r_[PA'A޹TYgzD CDPn!Å9;'Pm_C껦K=,$7:f ÷3Ww䘏ALT \ ` ۭdiL> 1lNFd4`R[P)JⰙv1n9a yCԢi2] \y ,5錘@eU55iu4:jIKR:=H%*9PTbY IZj JC9dlZ䕄c]FE:\u(uhKk>p0RNm#SHe{AÒ$$d*h>ALDD>qN*KEHڵ2#JTxWO5Sy0gJuN`&y@P(WA]y%*Zho@$m|TmN7IN=i5Ϛ?}TL?ƕ57ȵǻ,lSxHi[vBgDqk]%Y0g4PU.c:EԼ LJ)s?> t#oL&۪yM)< w lzYK1YduJ]'(W.HF>0d{HS($_t7|:*C}ʕrQNn 42@Cji_,^kUCj5:(OV(veYI5(%[|i0ؿEcV|9# q@U9q-ny]o6!stLk%?X4wij/+*1JNa!!T/>a{:HG(RP.SEtbmgӉ ,Bq-Hi֖Ri,r**xQAa %HB&|IղPʑ_䲂Y*sIn9pKNeHi.Uul5iJk"|30_+Posd4!ud9fģJA\sWrǛ'iF4)ge->eD*_9dpgd'QNl"EGm!+ [^)PS L:)6 q6E:'T]:z; rѵUz-Sf5fMUvv2~ª!B-wD{7ޕ;iF  s'oQGiܔ @ϭ38P/1BҾzI2::}7i 2Y bįyL_;(J3)Q@U-9U-3'}%Qd%}rcˉ(nBZtZ T5rXTU쩷iÓc}%.U~Br )/ 53ΏrDzS'T`׆XIV$kmzB wYMC* <2՚9f?9Z7G%X\ƲuXN.%U3s=I1[\v>VE*rYSy"ԫ͹{$2,qRdW%i5*HNrGboKvU}qvm|CcgcA^oX,|Z.DA>.30+:i<Ӣ5'>|w]IJ[Uz2/P!!]-x~5L}<-zlp BHZz^lOf|/( Q$0ȝx>~@g>Sׇ>OHf"+ߙَ5s`g= 15%6AQעc/m}lk&P]ML!uqବZ,(>9|fQY1xgb8Cj@ . 3=UbI%' pVŊ˴³9*!tmx`O'WX^\jw+vpvu Uj9Qa>ӫ >7h{[gޅ >Wq;x"1FyTP GIrt~l(WAM&1|bL˛Z1Y~ K,>;fEO$ra)S-P:,.UrA)'GƐR⽯`N t4Q(RaPKyVS*Yb69pip/_vendor/urllib3/contrib/_securetransport/low_level.pymo۸šҗِ])t+Zc]dQGJqa} )ݦݾ,@">od<*՝*J2V,J[lM#E(F+eFwf+l)tealK(ʛr+*ezUܬܮ.h޺5*WJʼn7k|hs v+*/.6+]*1WB/E)i^ZHI& .\>F6YJި-r]E;V-QZF\ (b`"dP\*yki65<צ>З֪e[ F!sqB1XU??oyoELu (dm=6֨u,H~ LE)+JlGF`Q7m)Pk(L pc\;#`Ez3xίgչ8i5 Ǐ/oλxuqvz}NUI_'UvΌ!>}z4F Y Fلo parL /ŝ~TFlQ/Yo6L/W 4ߒ",IjZS D23B9?IgNRZʶY )&8w q0OQ%0`P ʍu~Pu^s*bmOG4é`U[;Yʒޑ+aZ m4D$ǣO i g8490hGZ`W՟MpQ`2Ǚ*-:2޾ 8FHU oW ;~PZQs)D=#`]B|C3XeY&;̼1,E:!=a!s@ˎdMJCeMi9/)B@C JVCxfύ+TF%=i-[])<ޑbrX"V1Qg5j9t.o ~{*1$PZC,J+$rFUq]"#k hq$c V;; 'ӺVՂI̙:bKٲXIE}U݈0~N/I+q(}x# 5}/Ȃŏv,~Nf|x*0QM윕LMY_RbS=lg")ء(y_z&&X q 7]kJ}}y( `:YϱYxgi&n]^>J:k&.:z_T\;0NP _Ł+ q[qzM˥ C ;h'=<>z,e؛Ч߇ Gzf_9efʱHf,껬cvv !](Rq,=G3@,tFSg,/a 64MA"f űSf-сEa:O99GǁN#hJk΀$7X(>@] =c g{Z. uhv|95is}o:5ᄓӺ$u03a0XZ'/P J1ԻRZBBG)*tn3*sH|&Q,8ʼn2Ԣ=`SbQ-dvF8'ԿU2f~H:3@6_7Fux2Acȑ.р K?ySĞ8V 1WŲ)Z^ߚ%~KdߛNBX_Lve r (=L&Lb!NCK/Ȱ!l}GK q΁2L 4+87jBWuQT v{,4.Ai+%ǔ2){gxQXp_VE7 tZcWa}P!DP/(!Ghb:fi%n lk][` (j̅_Q!(Q("C-7@գ|/(k wĖm-H&D+y=j(+o;?aCon"e$-;G0g@x *~+&2*ܐc$YjN,t k8Uk-6I \IV r; wbCi~?E@-XQ[*|V2E>R*.zRr1u6!F#E/Id# n+Re{Z@^AM, tP+vЬ RQmtCz !2@n'- ώ"ˮq'B۴uGI9>YU9??4[u5Ϗ?M7N)P>;wK׷ |N\lH*|Jy'iG$uu07]lsqh*iiܥiBD7yNq'?w kƩ#WyGYD4O=Oj*"lܻ/Dc@"a9SE$$@GpXLEmT%ο?PttʸĎ;08wYL-x|3ޅk0E FANO}' (\AAǸӕDW܄I7PKf>`?t +P@Eg&#}7} _2L\@.D>ƺt" >r1g@o'TGHu)}(,YBW`~cWˎh|,5+c.=+۱[7M` @>5`BN=:xqPQ=]Ƶ w[6(V3(tngP5]>7F뽊s @U=^Jbi0DKB.=摃Im<KbG}(p7* N◎6&}ޖet ԏ9>#% \q*3S7=;eA{q*"a8OHlE,`7hO_^ê8ҽ3+_Nv=* *W 웂ʒ×uU,txVQZЯioTFc#|+ywԀ$cjDH'%/o5b4RÀMH otX닭n@ofPC-Md+ I`ڠ g]D3B D~xnHg ,{AX[iڦMcʂq} KQmO,b(r:Ӑzʓ0d8{jCZ#8uYByT4FSq.eDT(3NHdގ`QYCP7C@ԦCaîKe jN(S7-:+Z2(HPWE؁[]D֖lVQ\n pIWp 22"iknmpƁs{=R_ߜy0!SyDrGQA PkyQ0Ytݒ ) ;3~.uZs7R 6eWt*3RGmv5lzFm3ѥ\; /2,~E[ ~ T!$QrqW 4C_ ,Sz=Ew6Y\}L`r>xݓ. Qʍʻ69ii*n@>~_/G}B~l\Hjzru{אIw{\ ӠC"cK#c&̏)n0 bn508q7q:uuM"%s$ <䇱C@o7 /vr^}0?HgxH"L0D.FhzCM*k1ܲZI[_Q@|S5QPS4 쯗} TbYuۿ8ɇud|,x$LOqTAt >S?$~↟} Fƒ5 k*e&K] ʯ ͱ{ሳ@e}dc{ɵFl|d9wD$X,vg(^fl(^zbKVFx 2IGgg,4 HXDN&L#1O\^r#G"ŊE<ͼ  6[4g^"^ƳgRFa d ) ?b|@\)lHd% h>`2đ9 Pv$WRV4 H$8bA]5ND*Cd h=ո 6SJ1~/˵ yDP$,?QY)00 ^j+*qGq3UVPL rJJ4=P a&>W'b|).&翎KxħՇW &gWwٻ8br|y)'@l|zq2>w_[<;':"%;=}÷# ~|utߟOġ8\>N1O+ʅ4q+''XP;u WɻcH|{ =9 jG'ӑxwxz1a!2ӇcL2 +st~v5ure?/Gp2Db5QsNdm ؐO%"sE5YƁNA)x&=%hZWYEbn{y <"Xq{y48LuB~*{YtmJz9@i_syǩJyE:qrS 4^9~p^B @S9C<^JW4LB{@8s4 ǟ_~b۳1uc/1C\蛞?tVэKI *kW.2Ad! #K(mD^֩uƌ.}X^zi0ͼMTrZ"v>#̺:y65*2hۥ.R@?;?3^xSCR1P,+bPB,Lt} 9< %%$/bfâHmSwaqz}ּӌbgd]*áI39h$23 P)qrbZ?ފZ o^^3UK7`oJWrbƞ/[+YPYIp$h]nF(q'<Qg$ q !ę;<[ʂ9缑jRQs(&ʙ)]۳l(1 *xtuuL)HXܒ!4!,YY0 1_fhH…8EěGBEw-XӮ[A0/bra} FMe1( #ݪYjn{;aU7n;/H`@ك>ٮ/1(vg nn|+Bׄg^JsT 4qF`%YTՂm[eB[0>2y̨iYu[YElhT%*󧑋-Z 6M0.wHD7@گ5R3^%z7hܬp_{BQK7GY-b%){O-i5WcNR&8to"ve`RxTipJL Z0e"M/lM|?e/"{+i 2tq8S@kLc@Z¼USa%hK5&L]l-Ps:>=~[JA 6Bi\N"R 2gezdYwU@G-e@hVL U)RpLBT ÇKܱBSS~mq˸PKDᒆ3eMtf얣 qOM2'&DƳ[~Ψq;_<&얂YR`xaLyRyBvV'ctJg =VKT+u$(c=W"]FNՏƂ.,hw\ Yz4|LF q2[ı) r 8z ;{[VIJ8#l͓"^u %LҎS~łVU{۝7OBKܱנqZq* {.:IjMIv2qV5WŘDa&pr(mvz28*:.E躾PA)͍`&"Ven^SI鹤zW=|MIo0(&x#)S7(W^ k3OTgI~Sʰ{x⣾:~մ^ s}5{|Qf?Vi] ˵MnDZыei^g)ޟfe=1;:3gpdaRGD;MQ;SJΣ6hƫo<}9M hQFq*J<=.یEVZhZvXBYUSPͶ`20bmكW6"c{ ~[4-*Ǫ ؼh X_r7jbZCTRIWLh#SWx ¤3"拯/QGMSSG:-1M_pFږW|pyWĿvvWBROibs/SSyQ΁ȩ2X I*L(N>GOJ->^pD<]\6,sϏ\ؠق7I_|#֣!/\\rruVjq&Ab'ՋAgbᩜH sS/T !UTǶ M50/mU(%~^] CS}edu2 Vl6f^zS]?vacz^`㼳Lj{#-)UDIi]5%ṣiGO:*էy\mg(.X-[x4߀ܾ͕h|nGlͭBHFy\0$jFQVslQ-b`*q60Ć|Ձ|'{ 6fi%UM;I +}Z , ʴV?3_ZtoTqR=<18\`s1?YCIQ4NHv.gmYj<|E=%<gIUl:ȦsjcP$z> 4[Y>٨08M&]Χjeӆi:ܤoM-P>"*)k2'=gq.ܙA[SxPIpiCV1jMʙڱdԸiw ZxW#jV=*L{YHﵒe, Yy`zSW+oɵ"g"YKeNP=>&\fU|׽6)t}˺Vr*+64hoˋcB,k0\ n #k 'Rny.R4;a1疅3FHl498_^qձPwʚW4_ y QWk- -ܾaLɥLꦉPf#t,mb" X)u7GMoMcL(O[G劌4h5adQ NR+NZtǀ)0fԦi§M뛋bY^DwO!74ŏDK?HKKc-CPɐU{\M;Is)nfxh91BYq/V<qﺃY+Rp:Rz7T-uϕ4;{T2zC 9<8 nׁBy Y㶎O,$lb 3Iׅ+5pc^>4obє{$g"L&H){ 퍟%'˚I}9y  #Ktͻ䂱K/oUfh9fGǿW1osy.eq 1hnr?×R>-Q} /ua]kF5{o%r U0.¨*5t?F)Z6 P# rTQXѓʈŗtdy6}=#sgt, %yޥlݠmxojjy-^&*k(庀7*7uH-\ZYYGȾ i,ڱQy6I1W❤~~ypXnDܭF?V!P4Z!E seVㅕ:y >I78ɔ[y+ӲOjb[}Dua1tN+Bc--:`pT8A0<ܖKf n@Cog4CT W/ gB}- F ꃈkJb_j /Z B#8!|32PmwaE$ýg44:@QjZ%0F J?D~BL52M߈È׎%YP3fY\P'юC ˺'$s-!l!gX).VX) CQ"P;D-)r~0Qf{Bʎ<4΄5n(J_a򽘅Sno KM9(!3څ[h{19ʾ|LE?pzRm` PKyVS2pip/_vendor/urllib3/packages/backports/__init__.pyPKyVS޸cH2pip/_vendor/urllib3/packages/backports/makefile.pyu]k0+xKR_,XK?MǫV[ m7 2 7$qYGޢmDQ/QCVGf{A)8~(Rbv 9LA~ z_97|-=\ qh"ˇU,#};a4^ |r .d'#hmy\R4m~Q"dYl6CTfKLѯ99X^K rz{m 0HUY QQ*' |܀ms>olG[W_8&&K}M1q~ qDqnFkep%Mܤ N3I;tlN]=6RUUW=\ 21 Kķ&m}RKeZ˲ 鍛?Y,Ata8o}AUc*NdyNGPKyVS>Kֱ/Bpip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.pyXmo8_1PPDNin=@ЦIi Zb62%t߯gHIw"3oBZR*}MWW$IF:ۅTJ_Brty*Km% _um!̺R5Ӄm\ⲅ[VZ6qddd7QFvZ@\\7Ejz={LJCu$։&:tɛpx!tS.OZ%W|:v?~S f Ն^_ hfV1F?%e] f?f#g6Jzm.Gg1i7.lOq.") 6y>aBV"?I+)JO$ρ)s>ӞZU-`\R:#hz%*+ ,Q?ڷQ-a\ 3Tʥf7G0,%Y:!X>< (cap1`}x+d #m?mb{άv'SkUP!5*D$g*7TY͌RB1 2c #L\@${ -  iPӏ|uھ.s5W(ut;[䕂;ꗋw_[Q$A.tT$^|1E:_#r]016Ub.P; u/g+%17ɭjwo+\Tʪ0!>n3GV |E[ɭOP˱ QA7Kq+r.}Cc؈.t,{YF|5W(L\429\le짋N|>) j u^} Z\LU#GPpud صFϕuq}~c78s0r1__?$T+qx/@泟/ޜ8:Y3]vlki= WI:'1,xPʺ A鲦Pz4x@ ET4D\)`\iqq]G:tx ad8ي9yvIYi.HޢLZv/K9Ȯk/}y.G1i=}J.V]u#q5R.x r7r]2\+aڮ^*>aX5i4傍hG] { 7fiXdI[aǝܹ^p?f!.K yG{iRD!Yk 5Ux5pUH]Ki0p9)Bt>?|Yڅ:\ Q˚mYLhw1sbRbBw.~W^! B#dQ#hwjYllm2 wFF`2$N R}2/j[;I;C/N߼]\=8?y7;{sr_L柖C힔ms 71s&Ai4P/MwA=_6ٗB=>8 X꜁(1xU~*%ŵU|[H4ݽ>}~'(I_ō4Vjn{0:2 =<|7u4Y쳆 Mlctr9 }f氧ptŪRqH`Zԝ۱|n+΢nBƑ3"`u-tƻ-8B9td;bۆa(((TEL$Sq~èZ 8m_bm?}۶7޿w mw4e jcOvo= mR!{2ݾ둭Ncﶴoܽ^pi{G6G_xR4)'=8vÆ{{ 6GN'|k@yԸU7!h1pO@+]OPKyVS抙$pip/_vendor/urllib3/util/__init__.pymn0 ~ !l7!<4hvz؉Plb[%'OEGi%ҝh7MNȃ8IߚAVڊJwF:uPr0Ϫư wN k88"SҌ=UrJ|pP6Mw@8|]-eEz MHN(k$;WFUmt֋1Doɷn۔镽,K()Xٶ,73)[w~\\oY?7Z$ߑ >p$ݞQ{< nN.$ X]TzOa*{Rj9T>HKօmMʲNoᅔ$mg9X.G,bg#[Vn^2fvN ¡qPKyVSs8&pip/_vendor/urllib3/util/connection.pyXn#7}WdnJ{f2qxc'ه hQݔĘ";$[[-iv⥮N2z Ej\cxQ8`KexFq]E;*mH)Kk'Ig]2Zxb;cL' V\W;aJkV5dZ%npiAs%'m^XҦ0UѨ+@/ɺ2W-Mf$+omKg<8F Xpšp F7%*y!f~/Y;[lR \| R3@&[m]xN MD ^1d?Ɠ59f n xPcSRyU(Vl+dMxeB4.E6{Io8^1^W k{F^Meov~XXTmE 8# gmL5o$[r Tb-Ei V1|㭙LC撤h5|Ocn=[F;=) 91!.1c` Q}J?Tܸq tQwة*.:)b1$凋GکeEB>Q:)Z=y1YW'eÓ 1eM<{Fb=> ?5:Lz?7{怌P$i:+Wm:P 8>Y2(, GW  g 'nfW+qd&8MpalzBȡaQ ;H移aM^jnyWcDlކqD}]EBGɒ \:^DaXwW[ J`[юQ+JSv=R{~r?M_4`PO, ibI:K<8'M sڲ56fE> o߿Iy;'A~ѢK%4ăg{B*<ճg:Bb%y&??u|vr;f2r?{hexsk7၃2]А$qa[(IEξdz[$PKyVS \^E!pip/_vendor/urllib3/util/proxy.py}TM0+FDB\z[)V%bӱI6c\|f =t%}BE(,u~/+,~XVH$gf ? U$56Q +:H,[k|e ӓ(Hg/ р1 Z^ gzI]]?蒳a@}4M&:lf*;RD1[܈kw)HM[A. nEV HE.4%b̥sR]9 myfDb p:N&"^mle똉NqŽ>Z.ľ\o*Gfv|Epׯ;Oz㓳E(R_QYtBQ*Ji8pC `UU&Ap*^|xsoNS\ga8@:FLrB4uZdW"ųAf8>-)byZ̘Lӳ۫٦W1qc; !7W{A7Xd>hSF\Gs}0: 2)íwU*-c6NDNJ0ߗr?)6@<_ QxVw)tMp2z𤩅QP-=̳*}Pr+;P)dҺ)"Z?8#eX.Q7PfೖjcDh. ad1(JFPAK7|p/4b([ZZ,jz!ԭE|JGTuF뺝wmZZ7*gej賓'L iwbre55oHduJ9fw-'"95k̆z"iZ-GQAPnQqTL|$ɉmE"+X iQNkD&nD F`Om-{%㍒ S*Wޟ4+wKi$T3$EnJAM }^Jy k܅0yUuLO1l_ɭWxr|4ɬTgYqd˚>y ӳ4FI|Oጬ_TBhx_"ܐXyNΕm];dWoe{9]"T).Bj_4nEoqq_YlѿC:QkJ݈UpMR&QWN !f8ws X28PeѰeepUEtcp1`@øt?s& OSp)3t;0v.笅ayGPKyVS S!pip/_vendor/urllib3/util/retry.pywc|.]x˫pɋ Q4zE\Ŭza ^ypUqw˪1ӊ% {bv`.wG}V+E8beWuW_%P=JeL fWWc=;e{Ζqw6LSg+eeIa+^t15a`"T;>J?|@V|./޽EoWWo.gח7`r~ІxDw% 1@BQpI$Y!NQޕo @ D?t`^^ ]{z]ȅ%~Q N^QAlGDzzqy==Egg} !$T/s^%{)OÌx?Ϗ/cO`xH]N7%y>!['uA; r#8Hex`3@&ޭ7`g40deK!L6 8TB+iZlNxܳfN$KL£x59–N3DTho,FWABi _!;›}.U@, UɊpwp*LYNFA;2^@ہ_i; dxgmL:8FixaZY,{ąAgqɉ˸&4P"N,wqǜWqjt .x!Cp8M}fU O9_lɉ, 8euV ڿmO$\j^eqh4F'!IQVmΐ/:pfsTg>TrBx$lg pNFJ Nɬ6{0/[u¤mڪŝ Q#gzMì"@d1 A[iWF!Ƣ/$jZaЅJB4h$郤4/cF8um,Ac8'dQ8P@="*6oC:&.OPـHWO<ٛ>CPbbj6{k4Y2 1i]qbt2?Pt&_$] . 񦈑lIŷ_=(&nWKi\c姓'R_P΍teݶUe; Ȅa  EnMeUw:\T0=J}<]a%Y* =:;$ڀ-'k]74>Ȋ@4q8sr7wD(Jw1A`M^6+rՆ80ȉR$ה7PILpvV lZ4!V`C$IC Ahr6g-- T慡l?o ~u !kH)? zE@J!U{AFd'?#]B|3 B)@H} ! *Hb`{qD{l){4|!b4NjU*T[n#HPD)ԥ:a8:Z*/l'L8IHX-9K)+L4#g*#v?B6M4 ^ BU |{J" ܞ*%)gi>o]f;$~1%_3Φxuvvy ^ήΧ4yئk6ϠHupoO H!nCsi`fIZﲊhz6[14<;9t?Х"ÐkfNNFJȢ1d(^5n0ֽ-ݤͻ DU6}PׂO,ysYT tS$ZPT 12GOM2 KNqx&"FdȢ$ykt##[a $ ĥЯƊās@5Be\`.d5^ϡ/?S/T"@: o-}W;0[**'@c"HjOx(ǔ 6uH6:}(R^YEp bЧ|pq{O }LA{>q#kkabɺ6+̦\xw^7쁷:hxwSB>ݖr@[0߄H"A- 烞;0Dy|[uHz ÜW(>>COf&M#i-t Ĝٖ*3i7iڎY6Mwll<"v>No30? JM r FAĐ ~cb[<g:p2z !LȸR/hκT6dadAhE4 bUCws4z@{ -`HTy^~b-K/[WO>|Z?~B%gÚ*Z C D<AaDvzVG+RVy#˯-s`ܿbd?|#c>!ic/ؙz7;G@YNIQR:RfU&ឆM()mbTA^rAk6HQul?#\ٲ\,VX<婕}Duah8'^y¥|(@ HȨk5mG_TA\; p 8C]0dRQ JeU.g"{D`S9LE|/ʼn)؁Э}$Z5pDTlH{naq -`Fm׷,첽nw@d# >/$_6~cT$2h ;pA<{$ⶋ/?T"'[X+V ew<[&ko٨LHb n$2h/az^KA/D"g`)g݅g: 4PQRއu.@V>"RxgKxպqDN4I|OCj *7ϋcnO) hC! ۬וSwY&݆,YsiH>"HoU䦺w NƎksFC&r k6Ddܾ4IimXn:S..*okgRIJ vbVe96Ж Ii8Z"yRF6n<릫9L=Ia/1ޓ &;/dTؒ;d/*u=/v"ŰytQ;Tҵ]:I1$R63`0E~%h%[P]WBFH[Ztbn݋mT{TE!q:^_֘pl<#-zjF͵p6ʛH1Kl-xUOAOK0TXJ ˫ZUrA_@t]X BFANjCѝAޞ [j*QűiU5H@#C1ch˖CQ 2-3YUsxN @VcP[6է4.p[Gnw1 l+~}:{pSi&^ #$Pۗ֠wT&N~h'YnO3^.i~ Vxَ7nHdQ!y*ҨtӅFtZ؎vnI%,FO|Vӯv r~\nvu7tӗ%Tvz^nB)iߜn4hupQGԁ"ڡ&\/_חɡ6/$[ zrt{y;=|6_x{m_5_?~8I;>OY /|xu`s3$=;7$CzB3fdҒզHM^[?b$.]lG.58=AYcpHV;FQ;ɢ1:SB`71P[ @[&wq*?; Q_z?b_PKyVSǧC pip/_vendor/urllib3/util/ssl_.py/t[Hw:jcs/2-eXJv%^RlK*sNX; , K,6̳: ~&Y)bX}ʫE^Rd_x%sVn78N$vI%zCӛqQE雩7<~Ka'.~-Rh|3NwpQUbW6>y,xVpipL-vzh_ ooǻyxss>Mɪ`ȖՊ Y"a}ry*hobv)d`,$Ϸ&b6ہz3t:X(m)T،ڍnKG U\\"[Ȍ^BZK5C[X\jeHt &%;W*`/.aOZR\"Oӝ4y jψxtK\ D`M!keV/!$Z(@'2 ¡YYxzg\D@ \TƄ,bٞ GV~/*$d81˰vYsm@)c !u)d,9on߂`HZ{i8*v=*J:3D0k%&{HƎ`-)rE1m'jౠIsQ@loD  fag.S;7hrq;e?Y;٥8<磏Cxi?xZ̉'aX}=O@{}ND`)?剀{Bࣝ|}a5Wt`D\qFhG@84=6=tQSI U^V_ ĐxEk`CCnn-Hy"_:Hp4 ]T$7@!yBE^0SLn.smez4W4DpBfëIx馕 Gǃ[Ex|4SpHHl뎆`Uy!h`%tG {̉D9qзOL-sJȦrJ cu U_~ћ\5&6E/z! @);c8X 3gH%i* @>Kc7`N6I)?݂ E 4LJw!_E!oatƶel ?KCH`.#f(g!G@.n{K9.dlۭd2ڀ4LrUӂ1鳵ד(H mK*&/7d01<nTBT$I(Umؖ½2@3Ӵ0UPusp\7^]yp'YVo h6fQԫ ^DmyzT!Fuo  L~} B4;0"ol KA$D%cI8*lh^E*ġzfng bZHGh_)i!Mjeufjꠃz/ijR fYwCB3L ?JPZbUX<2j! 'ġ^Fd:)S}]&.gkUdi臀pʦ ry H6u]A 5^ ~c|0S-2 ac$/Bo+:Ȏm'G߄EbnX kpxzv^V"ag3$?llFg3mY!0Heu??:Yk E 5e f( 6$)i?͞ u+\ab<ߔLtSu=-%"P(c5ԢYF'B!˝m>"Csp Fɟ[KS74[OG`KZ?a Im u;+^۔$|[ lsH3€E]f _:#,3ȾӘA1Gl<|'!3<=M!_-EM*c ap ]AR9x90g'kH~4XϪn< Muk2d^p^`*w= ^:h*~e"I0#p"݉RUNs SԣSЫI3bPg%|F"h W)3NzRzh?ڊ()=o˲5dl  Sb.X{a7⛒t@c%:UpuբJ޺\vyẹ9&|¾!>3~>2ýņDaR%s%VϪwVHZU `GZ~ 2vJ!˃4+)ؘì1}C)Mmq B3|]@H}nV[29{=j:\k#M5ͬE5zΫ\.6?>Rrl Fɿjl7wPKyVSl (pip/_vendor/urllib3/util/ssltransport.pyYmo_pXeEqX%h$mQLʤJRvܢ3CJ&-)õřJǤIp/[FkwUZiզ,L<rR+b+v⓲ujg-ϣm~y{7bs7hTZ ÕEG >]lErWqijNM/KiHZ)QBو?j 7G4?VoHS#%k}$^`QVlTK'-n,Pm 7NuMyddrMxJ\+J_h ov:j JRf9,X@8'+frŝ!8rÉg]isIt4N.-Z~ dPc2z/W;BdWo[ ΪESh44h#Z:x/~ӂykS%"ҎmΙ 36nƑI}vws4Ӏ&jdFaJ^b2e,` u]v<=%<xI} "IT+,dҌ%ɷqgČ2TᛍXB|ajAHPN]C y\[nC T!?6˛4ӵ~OGdy|57Ԗzw{Vo^Tg~H^_{aF%Z-,TJ*R$;[Ib JܞqF(M)}:貢VL",/g0b[h3ka(r J}{]_DP!՜]ג?Wh3cBSX S#Vc%6Zz<}g"Cp:u1<:aC~r*(pF {ܙhIPnZz@$K-Y}cx,n{)oʸekF[7_9TH d&вyncͣLOP%60xold$٠u)Zt‹Ij*֯Ƽ+1qPC h'*R*߱_j:u*J3em#e͢BQY6>)-Ydjb^ 8[(tJhLx7WAt%V0t<a޵MS~E6r/ŒTP׆M>co&c5+fӨ3cC(bԴ 9İ) 0uTKpVݻ4N;7'$Ýq|e;-e~y~`9-0n A{Kxξ`|^7/w.|xL|V@(b/<oz LZ }n`۔޶N,dYRӍx~j|}xh2sFțx`f,$ېOn/C FWnbV/5e@i%}XxYJ ]jZjx!s} b[Nh]}cDQNci "bOY&NjJPsO$u:IHnqCˡ(/''b'QJ=,DEi$8zx{ȯi.^ |A+0תMP|wǐ;%wߵ/gP%o{.Wt)SP{h9ReY;%t*9:XrSqlzϋO3spvaxь'E̘WY/ED1[b@7QPKJ_u:?];NԬbdPk.lE$]Z} f>PKyVS$ '#pip/_vendor/urllib3/util/timeout.pyZ[s۸~4캳iM3d&QHHBC,ZQ{HNδzH$88\uvlXbUa|Us#wmĚaZ}z^lkL[3ɦ%7-7Q~1s t+Jv@;[#k;~??x-ǻ36RFFwNuC3-#Q{^!-@jS-SgxG-TS2%k﹬YwpEy#Ugî̒rYsx3{8c9??wYGgڽӬ [A9y0ZuU.<bx"Eڃ٪ƾm` nuW7s?o6޺N,]y' mfW_]e 3ߵR斱wkE`V[EJh2e,1F[8˼n~s3ԈBa-;aD/nⴽ3~w0:Er ^ +W ҚDZxSS$xxu@n/A[HI:rZ QH1FZ7 >= +e~$2ȭns]kY<]z?[T.gOi9T  N.!<7҈pPWNArn͕0{!<F oS[Ͷkq"[Y[2p꧑o~u[MH9mBEQ >ּ4)[CHjVOP"/rʆ}ZM~.g=J|ŪFhqUbX k@:~tA4$O$lʺof^@o)Mņ7 eL :iE uLK+FG{hܡ% &;`r,zT ";*4L@+ViК3A;@Dk6КT߱ҮN 'ט {,J|QPcX)yLDVs4X/?,m#pTG œ].Bb\,fZա*핫LyY^ _ܺ/srG$Hk'[،~xr'Tmxg"L`5pv.}~C~9n~.,l#AŢXdɂDSHV6 8b[QZӞwU-ŕ!D6oIH/T[U ['\f `'|PC-W=)͈`Ȯ"US <{xQF$BLLL)~0 j@h=T#ņ=S )~襱tl$F>%^_1 P hRgM,j`U`JQ%Ct  Z2"pZwLA\POc*TliJ-3*$Q^S$y7#lNax7.o3(4];"RiaXegllv#ƳHoѪRӼOt&aփgj{AU6`^'1t5IZcۺ=*]>aU}#\wm csύ۵|tV`>7Pa!qc+ faiZЇTGc,d" 2Ml{{mDx܄_hLQ-e)T _`*+a)|H#_μnjB=<1WH/(lA\virMH4<~tq0d NP-ܥa|CB[bCpL]g "`G4_7:cHƃ;0(O!kpbzGSG/cȁQ库68Dybưh +M |Trs1̰FJ]kGw3Y  J2Yc}n++[Ep^;EǩkҼ^TFSRZKwLYI_'zN+̶ٗU [`(uic wtE՜cv뜚b2~;Uur@Γb0}p\߼=;;Of?(NLl{gwo?b?lg_`WwD[g`p$1mϏ,_=9Ȭo}]Л!%iu[RoqCHyux32:ݡ~;l6:G7Sٗѽw2A&4 PG*]IãWŅ"t4[53"Mo/.K}dg_?T!v/t6Z`^lM&-e1VVmSz{4h)㹐psAs=q0~_F?0d!N^0 eB_vo Na^`_ *!_޼`L ht0:IeYܦh.[#4fvi10Q &^7Dɂ"[M&qXJ_b|u03HX-1^3 ^Cwv5ʾ4@ciL ڰ\SC*~Yy vA+NK.@1XGTnƐS{YI FCZvCJN#HW='4+Pk"Ic`/Dhfé6uX`cH?ymkCoAX# ^M/p9j7&6\%NaYHt$d(A4 ah`H΄Ԗ_ +lT)ܪE<I˼x)N?Pľk[JAu%}R iO ,w8XI8Q*]@hd4,Iͦq00l]{ Z1gBH=$yB oWiq Wb"?\3*6Yܾ(Jrơ}u0d3B{[v7O8Ro b+ q|ҁߟ{AZMDկDn*VOG8 `> x~իmu >(ԵV BqoC"Vj5=h#М@:fh`,n`fxμ$0>Or2fo#P=I|B5\r/OSАȤB* JR`fc}?A`}?K䠅oְ˵~(OЦ[=*w8Kt&>y91RsÞ{"Is# 79V/ `YSJpRr h`(Ds`w!9d!uFHL#E(]:4nGWQw>8AN)j,S_w1 230`>BC/Mrσ 6ȭ"P}X{Dx3{D6mՍ|cRZ5Cx dN6(}6 $kB׎Dy_+s`-7ˣIs7|w2# Gpx!E8QF/t iWVR*).a ᅿ`I_[("-UQ !4T!`džK9ȫKS^ eƋKK]cua*(njm+ݡ++ie1PK `TBZHًe,蚤夔XʼnL@8,#rk삋(y|j]C՚\Dys޶wɜ~"dW8bV`S39z'Q!!:1p)I$%M\iE^UA6&BV@ BpD]dp$ZL".2B0F6VߣhAـpZX @*S++l [1%Iqksj>! nR$NHӢ5*I$*1˳dZ B2ƔŠ|)NXR!IBhaV#&6O[#mK2 ;$z E%z0zF%ᚊq;2nʴ[MVRL`Sj+U{e%J'Qփ]LLYlRҖi`Hӎ&\a@\1"/]"K^ZyZBLv#vUN NMG]*:P:vg+IK 7!{O5IdϚbU&kvyif{Ҳ= 8.d|qFq9G}^ee 0:Gn2fa/:i)L-T9VR^V;Qr\&wdt UW )8h5-)MJAQURU_* `m2y# 9ԧvn4%}Of+ a.D"'0y.fuC_L(IUb@38tBWcʒↄ ,hY$);B̸w FN1ë@2m;\2r7݈p+hd X;jv>ۈptnUun"BniqJ:=lXW$[<Uo8>{l,] >7R։ˬ+22h\m(IqjG} PjGx _8K҇!Ov*RUquK}trJuTbsztTv̀i0ƹ4No>Y`IJEw򲇦f&eibE NBNx\Ρ6fDܭ=omEoI o-끀ָH怏&5Mw`޾yՊJh% +9(U~-]cq;^%걣Bq-zٲޕj5Zm2#"Ó-]0]zlEqE`5P""e$YvgW'!.Ϗ6$%OحA)>υY{连0d#N@T4Qd{hB]-(5Ĵ E1Z.4f{ӜJxj+ Ά->U9V} >9Ht QkFtHgZЈrsQRNe`2tysϯ75#r횆[x{NkVPKyVSFq pip/_vendor/urllib3/util/wait.pyX[o~篘R\Vk\ 8T2l~ b{rvg33|g.%E9[Ke/X/LTHSo{7E57F;NZiz2vz" t^ՔIjoUL豠֋w K,݈uZIW+Nog4)vs12veIG?Vy~L&Ήgaf4WQ`4p[R$YF~\~K0x{ӉB6s$ QPfZ-dSU,μTu:h#A: ٔhGrMpVK[',pmJ/-5A|FBϪ0VVx#vDV;Ś eMy] - ʢF pp[tk@l&Hp$i.u$az`Sd;Z4 DG\V uv%LjsE59pqװⰓZҨGrq"#: 0!$NaH.hKrf! X%fho6<VmMWY+j.Hk٢BWx|[0$nNҲ>4=(|H4& $~ Ґc'C+ +ŚdAf0j8J/p+TF})fT.Ŀb=6xBĀz8d}gb*z;f:U3g(xUďRwl[,$4JgSbz5:1@o9Imw090ǧlB8os{#^-ˁ$._!:KxǬWFtnܯ7_.j(\DRƵAJv "3 ?-8x냁r+'/{,(\ވ7'W#1+;2Ƃ0 SJ]0jvCy?\H?g /qaۘpgÅBd5ƻ@ ( ǡ6009sC.*П83]ًK񗛛CqM0H'OB$݇tg7xb$oߴc5֩y(L+&W0V$èEn ;L0t.Bi-a<;wE(37 IghQv<ÚR&"NYh;ڷ -,ܨV/nhjYGޝH'fxJsK5!#t9G\Kr73.-?TSչ4踘+㉞.m<8S|`Sa/= MTex).;pWIVdL2@F5rz>u LN6V 'r_ӯBg>hqV_לpl‚<"18?a=3g:ruݛIC7XT$>بπ@.w(U;!=2M*}A娭ƶu-rGjVz3އ~FPKyVSxq2 S)$pip/_vendor/webencodings/__init__.pyZnF_OJ\{.18A䴸KjE,R.-y^.Or3A.?PHcG#Q'* zlƸ^{I. 8I-T&5`dӳ˟'c#IyLX yrܿo7ŊEzAGSL#OyŖtV%"|`xjђF qPL,,rNxoh~NOQ܋ٜP%Ifkሃ@9ܰ$9I 2#Dx<,b1.?-&V4K7JN^kG [456ALR($q=uQh*%ce #hH*J TdJ!vD ^ dBf(Uٍ~XG{k#NsCu `"_m\5%0@uꬲ^$BHXxN "D& r<;$J]@+#{ha/?< /~ʳ^ f >K@QŒFw7æY[Vr0YB5 Q1cdNT._bT2}>*xylB:ͲbW05l9%=ظ3dD k*"FdzŤ˷cEJ,|cWYRo9)V!MD&`z&QD':GKH4A7S~` !"ljRk5GÝ/ =W0 z~?6YWmALov{o[v6'@0%b28a]a~aƺ>Bŷ *K7K t̖&.$`(ԅU<"ภJ27hC׌?'9N{mQo$U A6lWmc$ʊ]) |::u\EFH(*UYb*fc{'hdVH*~JaH"4alP 4/@N-J,ɬ{v(^dy8gWXtih*ADa_tsO-+#o2Om[rFmzWSW@YO9rٮ1P%vXӧ:[=恵(!,<|X{m`YWgMLÒUxN2 X 52ŏq50iL `]oS-Y&UAwJ)3h a N^CK|Wvݯ_{|fݰU[8 ^wb0$k` 4Yf7J|xB\ dϼOqGŴo{0xw1 *dgAcv le=2,Úߡa8ܣc2_YlQOldn4\T /#^izo4X ˓nePřv9N i͓\]b \7Ƴj5<_­ YIZ3wpu35$Uy#z`W{}̖py%(5Y wv}pW-l *`16kPT6c3vuNș^R*rD۵5{8*3 }fVVKu|.|;m,QWE&aii<{ 1DOpe*P7{ZxX&i((n'p<Ɵ o5a52($)TZ- )LQ|KEA7-rFkӚ=nP;,8I iyA:O8M/™s~[,yl}Mw2H P~AÿJ~S':٬q8hI6=랴~9tQD;ZmYQGg9D/;?{;SC[ |XJ q>4Vgk,UXTau.o'd^2`Q,10g 3kr%Лˉn_vMq]F f @CDR9{SB8Pd(3ɵAuc7fs$h3rbGo?= ̶GS8jOh֪Gxp#H[B-7Z;ДCw>vl _y%yft!H7l1yƇx' %՘JZw UDunVu"nF-W]DnL̦盱Rnm/vS| hLݴ5uOO>cQw[4g4!l/\ PKyVSǭ#"pip/_vendor/webencodings/labels.pyMs6jz%X`>~:b+81H+9$^V%՟YT/x+Ӳ?~~U '|6I~,PmY m?٫:{*ѩJdV 퉕R߾~;{ UҲV3,ܩZAMտKJ%q~dWr,}:ެ~>><+ӚdvMrQ\7.6czA F>FBmO͕J(TiE-a譹k$6ЁR`4܈ut41!C]2. K;㢀AptmwQg؁MCLFLCWdW(+ڙ XNX|8ރj<+#&!IH냾i.S=ڃYYx@Лcc43Ӄqoapt?`l4FKr+֭%@zX+G8 ׼$TL/Ms^w "2/<"0VyiP_pDmj2<J%La`I!Ḭ`y"y@8 ߮!C\-ܮ=_ QfBkkSЈWX3R%NgqH!}م#IgOCiu7٤ҳl *H$ɔzۢI ]f[XZcD [[.+[Y:Oai)l= 5:ׄ7MbpMkrt=Q!Gݡ=w !/P )`(( ]Nq*/zaAC(k/SK-e]q2),$H$Jw3Ev&gxP@RrJ/3@ vz4J]k;:ڏa2Qxh<h(BiJ֟6;F&kh9JGёl!,[;h)4EhGaDŐ!#K ". u \}ڂxDYJk[ *b],j!?ߡ\ʄԖtkH5RIY[p¨_g@\+@fppLjrJ#Ktc1@uzRh-!oTo-' Bo$TFIuƠj}A E=9k=̮` 5k.'~P`o`)mRʂ[4i'CPKyVSP1D$pip/_vendor/webencodings/mklabels.pySM0WLf="qrXPz@bQdul6T}T{#%=`02kڢ);5Rwܢd9KWJ )~| y$̙2PZafo)lzA(7ZV̙8Rlj`okhOi+eB h,qZ4ꀆZg|yH;`2igEclwZF/&1ORif , !O+*|ehq* HbR9w~ǎ[plT^:dOY6r7ͽ,3*-Kà>ET")ٓ|!;$BV+2'2^<0-mI!VӼѳ"%V<vXCO'lر(~F-=/[G}J^C;Z=IC- ]pNJδr&ϊKAo 4eeø,KҶ*G~";c-ޜ)yPKyVSg8p!pip/_vendor/webencodings/tests.pyWKoFW,I\$``@q 9YV64)p|#({sKK:"/aGLr97FA|=nzB'>;q&|)14=%5 CBon}4?8Bӻ8Bsi@"FFh݋A''H/ԉ~Cr(.h7QH_D#"~ Gߊ(vO8lk9s%iwOe|ϺwGVRw `!42;<8@D߿.Ű@t(|@P"F9FCNzKJDjܸtl[xGeZm4E'dM04Q)_)t\bJ f>]I} kLW)[4ՠ`:/ N`;JtL2zvt̶~4Xd40J˛S)Ɠmqn ʽTD=ȓ{v@am#{2n<*%Oz4 */)h6zOoAt ۚt;kxӅK#9`q3c56dc6FSz?42sfq[8;P{N%aWjyGGLPϧ CI<,tG6z`t*:}>Qs5vHٞ*3,˛gTs8j]9J3<*M5niu/rn3Vs7PiDBf} -W[n]$XFAHjܤ5'/dS-w_651o/0Iǰ7%V#dOzZRDv^lP੿+D9>+v0b(* fwC_0l^&TO5 iSklPKyVS֥*pip/_vendor/webencodings/x_user_defined.pym{4W!N6  cu0`/A١-/(Q]?"_s,K:ܫjr$6f!뱢w=Yd'L8E:[d4e:܈rJzg/&.zH76#qC1G܈t4REyA#+ "ʼn0s+42 te|&&,&U}s[eh%Y*6\1.gdQWM*j V{QtE/eWs[[EiSU\M9SSigr156fw2ɨtsƭ-%,W~IU;[wd6>uj=ybby}WWߧ͎n{XEiI^ՙlW!}ܚgj=9uu/2iwNXi?sѸbPi1TPH=Î;+lʏme?VU16p殉r$\\AڃH,ljmBMݹq>`(ȝ"<Ӄ~il ͭW~kF!p7CpyLB|h5 YQ4 F(TJPi*B0qeC a7 &s!sQfYma~|2w='L,)&# ߑS#sCcysɜ2Soߙsoל`W'yͼa_;p~g`$d.&1dLĘHLL&}b'F}b'F}b'F}b'F}$H#GD>}$H#GD>}I'A}I'A}I'A}I'A}(QGB> }(QGB> }4hGF>}4hGF>}}}}}}}}}}}}}}}}} 1cǠA>} 1cǠA>tODT66ׇJi۷MPKyVS"ÁB pip-21.3.1.dist-info/LICENSE.txt]SOo0S1{o36KsKO 9:b{nAhBíIҺ$X<(i)&ߦBuPo,%?[݋\߻VhVoODP>I\7NzǜC)zQBHy 3VyVl'X"O*/K ĺOcymR?qԐH%Jp-5W l!2w1,Ήs H6SPlT!Ki\K*|s=GU(W,&۟%)ҰYrLEƯR*ɘXǐ5{J"ۮtz ?2DZ1ƔJnEc`JTRI:!'BUç7%r!WI/PKyVSxpip-21.3.1.dist-info/METADATAW[o6~ׯ Ї%債n˜t&AؓMKF"5rPr,ISo &;ǟwp3˒U®]..K21u0E!U!ЊU<幰QQ"9a *1Â[+R 'M,I,d)Hu&JlؕmsE;*PM|=k]ɔz=8E1]}unxYR[!O5A>*CTjWowagw;k2*B< U9VFذLO)m˅d> OǧwA@t_6|#Lſ "&K" 2B"4W/e0M.\ BlWpm#x"ө*X1Y.⟗ ϾvVDZlڒ~N<7ي_f)W :}g67lm80U4qB6B[y˸BuO{l+L'trcM㪮2JuM;3YYN^2+~[؈}d|eext6UIiiPTX: Fgp?:zĕ<4d^|AS^fNzɏl FyTI`IUnfSq(\SHWșaP< vã8rEQǤcF r#~(sUqG0,Kж!uUi8IC<\J2]Q mOi`4ٜ1s;@")v"mA O~@K6502jHB& (݆FWC_ yZbr n~c=[ZW Co":e:hB`2'K]V KJmTPܾZ߾m2DTCh _iETȤl"k9-D ( |Xf?p≹( b\Dt'Gv_CY&㼖1îs >EτR۳.#84QKF W=Ֆ^x~N3-5jӊWh~Mw };w+5׵ʢw[i rG!6Df h{{*~ 6t:|d]/Tk|KGÃc2P W0 /-0lm6c#ﯶQ967v<݌V/vgcN{Q)<ʵܼ2sNJpwi!)Ep7T\r2޼yǽ1^\6ufk51:lFQtra28?^Ge?PKyVSP2\\pip-21.3.1.dist-info/WHEEL HM K-*ϳR03rOK-J,/RHJ,./Q0363 /, (-JLR()*M ILR(4KM̫PKyVS^p<}%pip-21.3.1.dist-info/entry_points.txtN+I/N.,()*,PUzy%Ey9z9zyV ˜%zqPKyVS"pip-21.3.1.dist-info/top_level.txt+,PKyVSKOH͓pip-21.3.1.dist-info/RECORDǖH,m!@ RJwPu2O"cv#T'L:z޴IbB2gT\x'AFW/:g(/L$7La})Y G.W~w!>d ۀ I|q?fg v ~#iqHK%7H@k.IM>\Yt?5G9.ռ[\€?8߁۠8t$!n@ih9fǽf9-BlH^&oᕊE[VRuVn-Cݐ2Lq*pn\qeْ70o˹ڀ0~`l&[ VdQ`FVLze/ 9ڀA/Ї<ᚭ^*dŅHJSU-vRw1c9=Ua#纩랈VyEsdJw)aw  uwugU2(sDsmpsf,VC:/hvD8rK {s2iFkNШQƇ%ֱKw BW ȓOf.ڑ5 JBlV$b]UE/H|1MY5t'{A$^*HFC봁 页70|U[+8?Ks9x68N~`z~EAug D- h[f&vk׿n>҈!6i_WLlġR>Mec$HFBx?yۙY~- 齌DemVx_vH$^{5;M) E5>7&7m }OT߬KrZ5mDf46pm vW;v"Sɀ v`|I˥NWeBY0IMph *:v"G9kҼDq0Fh{7 6]['e|ԩ!PD*é@]Qn]%R짳c_s]ayE> `꼥 NeMݞջ d( t3(r䏒@|]HX)D:S41Тw8IJFB;Co.Л徘a J3$jBq`a]bjuTJᄐ1d28 q4";d}.E@L7ܮfmHMvNá]-z0kLv uU&@n=ϻa팠tyZQ:w ^cA 4琛`fr+yH^X͸g->e++vilqa˳DtZݎ;&#!㖵otaq7P#i',cj?p]ud|6!.JY>51=Ll=4ckA^?>"^V{Dɹԥkϻ.=OEZCMJ?afʭer:Fm%~̉^d7{H]-G?yk.:QԎMl>^\6y)l ? 8Ogww)$t9IUB={jzZ)BLGik-g@ӽW%`VVwNV {7q5>a3yӗpԅC!ɳU=&[K$[Ҽ yhʼnJʪmY1X&>"'  M z~EO܉xzeoKK{ʭrxF|BV3%k >Y}e(U5zVTm=*~  Y?U ;ՊZ9.E* vc/hl׀^3T-Pw[1֬3&-KC-]Lpg^D8ħ(iI^ ob=au6Q -^|1ħctZR~8ȵeNg) y]v$|#?򐉈as609_1c =9y ٻ J$9j[OOqCW+q5 _n*tTog\pMQѥu mOzzw#q;lԮuAf &puw۠jAޓ"i4}2cNbAK; 78 ? ?{PU8>QoCKx6=a(|AL-}[Yt[b >%K 2okV/3\uI7hES5[D[FQ{TRͅYd˛nI_+єd)0C v:bDxoߧX-R!#kAziлÇSޟqG㉋C8 |nٙ"{J W xIonvr8O.zGb'}M! m n oNx  jq6 i빋e[wU. }ҶS&cxOPg -ñ9_(7Ջ bQ"wkoO>g~tv"kV(nNCLҰ%ּBR(H* ѐt7TVځit"=;#n:v\3\[umk|U72xhߪ#wZ;MEK̑IQ NH[Iv}toDBw8fi vO8o?Yfu@Rs 7g>@ Xa 88BЫaA~OaB8Y3tGM TR/8j _#$:Zoo8/JfWcsj$N#=ПSZNpD!ۻ\c $ fK;v ۤC / } dj%$3:%ښP\H)8gȵxqp|Y}Oʏ *Igǎd =!с]q5AAUOZ-F`L! r#$<Ѭyܐ8/^-\4}Yec+H\BON>0N^0=t\81dě~JOtlvnάk4>o)/90Vػ;ӭ z0a~9n,sIztn{F`$sT,-.#|ݣ?ϖ<]T4z1NuEE{G1C5stD^󱷑^ fqݭЉ}r 6OrE5µO" F[ #bMNG0G\%A尲3iJMƘ-u} zꮃo'UON?ra8eBU͙nǃM>Um7o5CV!we]|]&;"/.K*u\XoCXRsxD{ULfYRi ܧZ#|&N{A:vO3}cfڋ:'SAJqih3-"fZniUB4P<:<6AYΣj70'@2JطuۮEgpJ^ao|(ھ-mfUWQ譀@?u@BժHWKGCD$IE6;Wݪա!Ыbh1:l:i\U:$[W0VCnBS[aȤW砍E%.v#/ cQ'h8^Jmt"<#Sοjc>"!3䀌찝 j&Aⴤ.#`ck0 s0okbDRkEe#4NwS%5)a\/Q^jqlEzN@#3frr @3`v^G-fqr] FG{&jSt#F/߂5ތ/#*n F&685KV-g0N3lSl\̬Dהx !?zuU:KW#9sD%k$%Dt7[7Zmseۇa"N1jgGrf9Ph@U7 6So! {B u>CPJHpƬAM@`͞ !s 48pHO#&#Vw1΍mp :sk޸03*O#'7Uf|I.\ V|ryd,  ?AJ,%K3gyؗvEaudC"FnUbp]Uבw!DW[ʪFBw 7ێ; ai{zt }n4fj焚1Y],;uPI1qVu#?Oǀ_2m>׳iEsKG" I|6k]U8MXLzyKF֡0 #ٹB2F뼟'͐LY;R -OȜjZ"p Z^x\hF0J6a,ztK8]ѻۗ 23Gc5ItHsgM%fVEMN\%1\]!璭9G3CMo9$M;Kwyǝ͢ ;O(HtIw82 @~-Yc{rcsUwp'.cA6:3c̩Sa0[.fLpmU v1kMLW}," }".=؁7y?K7D .+ Jhl?]X-Uhtv 2kB!L3u>ݶM3[TAYS -Rx_Qs7|8, 93֖lN ߷_5x,qelcJ֑,,;ilx_c=6y>T5<%xrC7h";YY􇰂ݮ;ODooV?Z|Bj/QQlݞ4pLZ}^O SrӞ37D+m`^W3RC)hpG/G ASL3?q';tIXBՑNKЁhkOzJdȪԺĿLD =d\5Z J)35]Dߧ H(k=m_&xf2gZwECV=eAk8X-d%޳ܱ/ɛ[ 7j^hs`qZoN?ao' pG&[JrL?aȖ}YmpA'`Ѓ )'.;\"F.},D"u]e_|ۈW$kp=*H6%$B#n j>㿌X`UKːZ3c,/:74dc}jm Uy1!ӿQ`oS˵BW[j0 q|^CPۡY\MQbmM/m]usE2GXb k"~F3nHt;s^oεnY<;Hk8'MԽk GDh{Pn^*=-gqI=+aҞjkȏ5pl7_w1&wIIaHdP7S#sy  R+fĆD"yfeQS'ns1|.8.jѓL#-s#4 gO&`FxKb&]pϷFY4qNқƈ7 6 i=źœY 1om_֘*yzOkѺM;‹Ee 6f48wGuCYHAԚD7h7FN&,ԇMB ݲ;ÜvdHV$^wotPŷ/)F%E氊Cj|cLEx_mǟ$hwE)yJ:fZ\/{y>νGʠ {)!:CPt2'@"]=!5 \i&@@L\pQNQ@70Κ#9k @E.Y;xK :q|Z >.3m򝕵9]]FҞB\ȜA!z?eJ^gghS0h%2yf>$AH}gYWvϩʕY?iA= e ;Izl]= aeN#6wYc\HZI\u+H}Z'V{/k~ƈ ^m$qtwå $:>^'4N7x⇘rK&eEO5=<]v~.!51m?wQ/S<ޭC*2˳s}x[$>]$oM.HKU-lL{ .G\Q{oߴ(R;mlۓߚ-飍}ׯQ#a.)M{J=l,êv1.?>ox l :h/p8ݔM`+>-ᴁ[-ƴsYZwH8QQ'79vDymA7}`h4/ôLA*ip%ޥy[? ,fy#I9d}጑rs_,{zHy5S}ʚ+N8PcasЮv,6UKHSENBҙ"`Mޣ/G1_^0f&P9e'm6q;;_;IċRF(Y_.$^j#C2l1dpf@8Ya K|685D<l2P ʟ߄ܚns+r2YRTY8v~#*)=9A3ŖWc׫y&e=|~vKv'2NfǸajc滑W`^.1y*8e_9wpwwpVQef5u6y@U0;'w@S@ X3hI?bRm'="4&PB28AQEY햻]SBCG}쏗M)x ÕaŮ`ji(G(ﯢV2 ]̝O] =fP( fїwzI&;r9F0X-ɭ$."(Ag6hA)3e`V n M/ *aT4Xp<܌7#0K;iCb8ywuV&>TZFgTbGڲ˪'ԊA~5d@팻Cps(TlZkr֗$Gdn fCϊ8e02.X=Vr})ƂAd3C[^e&C, }p+]y}nٱ+U-M;kk!'n"-/}N6/FO.;;.DDm?̽;Wj_COq=0|^Np>ceqkexaOMB&('N*C kyOg']]:A[.*L5$l}< *tNr/Jk1^ HjAhԙ3 KFI%tJ0"GcvI=`}s߱MEWdIϛ[/OD񸧉?邩x^$TG{1k`z[]=ky,ss6jζ_sR}v~RQgQ˵*F`a/,;Tzcn xZʂ2YRD*Z];luIq2Lm1ldP^'.k)CKqƠ:DHp4`2 ?cn9߻vMt;ҙŗ~ÝӕA;tNOQ!`C>~x{)c6-a`Գ̉&AόvQz\_N6|{?Xލpod!{)c4DtfyGtGdz3/:6I{k`C1DTCO]C83 ښZӨo^çWKLM;krS=s>Y;C\t+TB*x׵5o#fq:4sU#c,Hg*o-H ^MȚ w@uAxNtNkřU-Hš%f`8i|,#i[ gdfL (C6z.p[s⫣! /5!V~}}R!{Ȭj é0-OT;]~NVOb@D 7a "hUBvxlX|?_ʱ(ENg3(N [n\b\}fԠrᗁOo=w |D9HcK؝S[r%, s#aǿ^j^LMjͭÔ/*üSI28B 05ia sq4E ';vP|lNWAЗDpp([iܟG43yFl|]A{aeܟBLR nM2 ʥ D Uck5:Z89}k[X&YsB)oDϞ2EVs9QN f9;fK{v ¯FnO{/=e8Bi9ɷŽf#e9r0[_ t@~l{b[kͳ`"Xvp8#Yڕ?q %3B`fv{p]5ǭ;[=՝Z=W?WJf!%^p# Y\y"ѯ}lNweVǘdk.r^9`3=71wۻUq)$ɵzD.Ju'A׵KE_ :8GqBz}>t[ w.ʯ^D+9WDEm5f+49"uX^ރ%6D:]Pa )Q*S=P@fy(H}ԲT@Һ[`%KJϏJt@9=*^aZ_T"kJҿ$L\mCSpJmbN*Ng3KX)CmVR94ָf킨W%rkvǭ!8Zzūڔ/VJ1.;-:W͛Չ9;gSi0ʲ+ WRz׆OZSgԝJz}v"O~hIVaIڮhbGf.Rᤎnhڴ.(A(JL,"#>z5ulVn7wQm6'4_לZdTFAnYLE+ Af f8Z mS,)L/ .Pc X838,l0UcaŞBQh/5d1ON=saxTX-~ ~_PBQqz0ٳ`u!quk"zo|㛀~ZQ !쯵~1;a˪k4!)b>Oy~~щYpXQzg5Й^&Sx5c|GPG؎ZԳvՕTKxnc}u j>gD%к Z<>Elȁ(4 髐W*W?w05]zy(م<0w*wv8rW~R~],ܠd֣E-4 L͒z(՚W#2~;T> 9HXSRu̐m"n-$%&kF\ή9>sݖ.ȥ$oY>ؕg!a(A"gEjV4^DdYP&_$b2Ɂ7(bS!7 a菨)}DA}\Ɋ1QJ b*wzp"`+(nlB@|].Vo㍙EP,PGG,;5By9j#7ގGo|,m˛A];3M]4ёDbg7[V;ˢ&^k,̒{D_Cf⴯8)PLabmF`;た\e$Qu׽wUDa&5!h^>w[ 4#pU^:"RWTPgN;l1zRo"@oCNuPoy՝Nמ>#w3F|{?U9/Uu#@RPLnC?b,LZ[W21mli F 9=5qx(y?WGF!A5\M҈[ەt4-}C@iso~úU:ooo`gDfȌCE}Pb+սDJ|l`藮b96cmr6ˮ0AuӮ 븂xy}ҠM62+^;gD q|5ZDMډtAgqM$hZVrjHh(8$udPI p@YNge}b;*Z/M'1*\E+ ,v_3P"W&rl6HK)ċǑ=VA y>6;_&0cD{^NB/#3D^ʈroj )Rifom M+FLs9w&oQ zW2n,aDɎK QhkXtEy>ZaCJZ+3'[Yc3Ѝ S`W {!1_mW=Ngao0<ӳ=hW4yU-. ѽ#ڭqDq 6e=)=ܵtc$# 8Z"w $"UBb,%6Pܪ%ys]B+%rV鳖dW'l[." ["g>3G@[ O,kʆWFZ0S }!l "|9KQ=伟"  Br%h7En޶ g^8uD`U*F@C^Xy>=A95rrAm&ж FF}p~IP/4t(&oXqnxkޗ{ͷV&`|0K┬y#|<F;y ʼTIєM*/ߡoՓXU5W$F'D eSqoG_nÿ @,ȟCgP҇!3|@&x$#I_QA2+[(p c ԆXsu٢-x}i"dJXCgyjƩ.Oᾧ'd`yf})3 1\^&TEjTr%_խ:T^ϐ-[PM$5T>!r&w1޷jt`xaaW <ؖG9Ӳ]~2i]k7u΄1BK$ m;[r[p$wCȝU= YL ZO.)s`h|8Rr*7i wmѿ\q / ^J6 EzRrSk,9̕ s.߻?jsK!Xz)LOm&X&y9s֙HtL[XG"܎[eKG$r7|8DÜ5Xu-HP(29&vcD&r mUSIWwio}j~k✥^3st۷>-iowTc  ;KU%,k8A=a+蟼Kl l5al4ZC jA^b?U/ ;GQcEm>9"be~ AP~Ip6l'H8WGJ:w>~m; 7/ghi1re37SL]zڬ;0j@ y!>L0!dD=wI6e \r(t+}4g^kwqGlӆcT-1HGh{mvGBKf瓛oό5򘎈IH2Z<*Ɖ."0K Q_~aK]tZ7{GYΠ,A.6R]c MPJ 0=;}6Ak G=vy5#MDEd8A3:kbi`z}XfOԖ:Q_u8HDow<(?;{xt [@,ϲ'G b`;O Kz6Hte*߅C?<e( BM(ѣ b8 ut{>nX}de5 1vDrM(8pZYFշPKyVS:4@epip/__init__.pyPKyVS#m%pip/__main__.pyPKyVS5 pip/py.typedPKyVSpQ=pip/_internal/__init__.pyPKyVS_4  &1pip/_internal/build_env.pyPKyVSՕ $pip/_internal/cache.pyPKyVSZa3pip/_internal/configuration.pyPKyVSyfl 1-pip/_internal/exceptions.pyPKyVS'T>pip/_internal/main.pyPKyVS;Ւ@ /4?pip/_internal/pyproject.pyPKyVSg$Hpip/_internal/self_outdated_check.pyPKyVS_ /Qpip/_internal/wheel_builder.pyPKyVSw4h^pip/_internal/cli/__init__.pyPKyVSp#E_pip/_internal/cli/autocompletion.pyPKyVSv n!`gpip/_internal/cli/base_command.pyPKyVSIDinWqpip/_internal/cli/cmdoptions.pyPKyVS f)$pip/_internal/cli/command_context.pyPKyVSjYd| hpip/_internal/cli/main.pyPKyVSo6 /pip/_internal/cli/main_parser.pyPKyVSñ $*tpip/_internal/cli/parser.pyPKyVSsO l "rpip/_internal/cli/progress_bars.pyPKyVS%߇B Npip/_internal/cli/req_command.pyPKyVS$%pip/_internal/cli/spinners.pyPKyVSzKXt!pip/_internal/cli/status_codes.pyPKyVSACv"ppip/_internal/commands/__init__.pyPKyVS8~d&pip/_internal/commands/cache.pyPKyVS6l1pip/_internal/commands/check.pyPKyVSqC $Opip/_internal/commands/completion.pyPKyVSҗ "'fpip/_internal/commands/configuration.pyPKyVSZ]zpip/_internal/commands/debug.pyPKyVSm("Xpip/_internal/commands/download.pyPKyVS )pip/_internal/commands/freeze.pyPKyVS(pip/_internal/commands/hash.pyPKyVSÔ<lGpip/_internal/commands/help.pyPKyVS- gmpip/_internal/commands/index.pyPKyVS`+`l!|pip/_internal/commands/install.pyPKyVSX> /$pip/_internal/commands/list.pyPKyVSW/bA 0pip/_internal/commands/search.pyPKyVSBI 58pip/_internal/commands/show.pyPKyVS/# #dBpip/_internal/commands/uninstall.pyPKyVS wy >Gpip/_internal/commands/wheel.pyPKyVSu .;Z'Npip/_internal/distributions/__init__.pyPKyVSh #Ppip/_internal/distributions/base.pyPKyVSr](DRpip/_internal/distributions/installed.pyPKyVSJw$Spip/_internal/distributions/sdist.pyPKyVSPh[$Zpip/_internal/distributions/wheel.pyPKyVSC?K \pip/_internal/index/__init__.pyPKyVSI~D ]pip/_internal/index/collector.pyPKyVSW_"%spip/_internal/index/package_finder.pyPKyVS+pip/_internal/index/sources.pyPKyVSőkl8#pip/_internal/locations/__init__.pyPKyVSڝ{%(pip/_internal/locations/_distutils.pyPKyVS8 z %pip/_internal/locations/_sysconfig.pyPKyVSY+Dpip/_internal/locations/base.pyPKyVS sB|"pip/_internal/metadata/__init__.pyPKyVS. _+pip/_internal/metadata/base.pyPKyVS /3:<']pip/_internal/metadata/pkg_resources.pyPKyVS{(;? pip/_internal/models/__init__.pyPKyVS0Oy!Wpip/_internal/models/candidate.pyPKyVSU=*"pip/_internal/models/direct_url.pyPKyVSbch &pip/_internal/models/format_control.pyPKyVSߗpip/_internal/models/index.pyPKyVSZ0tT Y&pip/_internal/models/link.pyPKyVSlpip/_internal/models/scheme.pyPKyVS W7L$pip/_internal/models/search_scope.pyPKyVSs'pip/_internal/models/selection_prefs.pyPKyVSQGe%'pip/_internal/models/target_python.pyPKyVS'TA )pip/_internal/models/wheel.pyPKyVSJ22!3 pip/_internal/network/__init__.pyPKyVS=.RJ / pip/_internal/network/auth.pyPKyVSG\A84)pip/_internal/network/cache.pyPKyVS/P!pip/_internal/network/download.pyPKyVSw #"pip/_internal/network/lazy_wheel.pyPKyVSaݞYA ,pip/_internal/network/session.pyPKyVSӏV1Bpip/_internal/network/utils.pyPKyVS-{_Hpip/_internal/network/xmlrpc.pyPKyVS$Kpip/_internal/operations/__init__.pyPKyVSͯ"!Kpip/_internal/operations/check.pyPKyVSľ ' *&"ARpip/_internal/operations/freeze.pyPKyVS:e]#\pip/_internal/operations/prepare.pyPKyVS*vpip/_internal/operations/build/__init__.pyPKyVSY0_*vpip/_internal/operations/build/metadata.pyPKyVSj30ypip/_internal/operations/build/metadata_editable.pyPKyVS 1{pip/_internal/operations/build/metadata_legacy.pyPKyVS<F''~pip/_internal/operations/build/wheel.pyPKyVSA}0pip/_internal/operations/build/wheel_editable.pyPKyVSȇe  .pip/_internal/operations/build/wheel_legacy.pyPKyVS{53,pip/_internal/operations/install/__init__.pyPKyVSZ3kpip/_internal/operations/install/editable_legacy.pyPKyVS s>*pip/_internal/operations/install/legacy.pyPKyVSX* k)|pip/_internal/operations/install/wheel.pyPKyVSt pip/_internal/req/__init__.pyPKyVSecu˔;!Opip/_internal/req/constructors.pyPKyVS' D"pip/_internal/req/req_file.pyPKyVSiD" Hpip/_internal/req/req_install.pyPKyVS#sopip/_internal/req/req_set.pyPKyVS2 pip/_internal/req/req_tracker.pyPKyVS\" pip/_internal/req/req_uninstall.pyPKyVS$&pip/_internal/resolution/__init__.pyPKyVS˩G &pip/_internal/resolution/base.pyPKyVS+/(pip/_internal/resolution/legacy/__init__.pyPKyVS6_G+z(pip/_internal/resolution/legacy/resolver.pyPKyVS/=pip/_internal/resolution/resolvelib/__init__.pyPKyVS"Hd+=pip/_internal/resolution/resolvelib/base.pyPKyVSjk"G1bCpip/_internal/resolution/resolvelib/candidates.pyPKyVSeah&h.ZTpip/_internal/resolution/resolvelib/factory.pyPKyVS)ZI7opip/_internal/resolution/resolvelib/found_candidates.pyPKyVSU- #/vpip/_internal/resolution/resolvelib/provider.pyPKyVS~p_ /Wpip/_internal/resolution/resolvelib/reporter.pyPKyVS\O3pip/_internal/resolution/resolvelib/requirements.pyPKyVSWc l%/pip/_internal/resolution/resolvelib/resolver.pyPKyVS-pip/_internal/utils/__init__.pyPKyVSJx9?lpip/_internal/utils/_log.pyPKyVSrB—{pip/_internal/utils/appdirs.pyPKyVSck\Npip/_internal/utils/compat.pyPKyVSs)npip/_internal/utils/compatibility_tags.pyPKyVSl=(pip/_internal/utils/datetime.pyPKyVSжŎL+"pip/_internal/utils/deprecation.pyPKyVS&] )pip/_internal/utils/direct_url_helpers.pyPKyVS#/ %pip/_internal/utils/distutils_args.pyPKyVS[w]> pip/_internal/utils/egg_link.pyPKyVSapip/_internal/utils/encoding.pyPKyVS& C"Ѻpip/_internal/utils/entrypoints.pyPKyVS;[!Tpip/_internal/utils/filesystem.pyPKyVSO-X zpip/_internal/utils/filetypes.pyPKyVSR=U/& pip/_internal/utils/glibc.pyPKyVSPgypip/_internal/utils/hashes.pyPKyVS-pip/_internal/utils/inject_securetransport.pyPKyVSɓ] -zpip/_internal/utils/logging.pyPKyVS޿Ϧ=Opip/_internal/utils/misc.pyPKyVS; wpip/_internal/utils/models.pyPKyVSf=O~ ;pip/_internal/utils/packaging.pyPKyVS>S| pip/_internal/utils/parallel.pyPKyVS>9$ pip/_internal/utils/pkg_resources.pyPKyVS90Y' pip/_internal/utils/setuptools_build.pyPKyVSɘ J'! pip/_internal/utils/subprocess.pyPKyVSE pip/_internal/utils/temp_dir.pyPKyVSpip/_vendor/certifi/__init__.pyPKyVS/ Vpip/_vendor/certifi/__main__.pyPKyVS%1pip/_vendor/certifi/cacert.pemPKyVS= =>pip/_vendor/certifi/core.pyPKyVSfw Cpip/_vendor/chardet/__init__.pyPKyVS99zGpip/_vendor/chardet/big5freq.pyPKyVSgf<!pip/_vendor/chardet/big5prober.pyPKyVSY(== $'upip/_vendor/chardet/chardistribution.pyPKyVSw)pip/_vendor/chardet/charsetgroupprober.pyPKyVSaZ$pip/_vendor/chardet/charsetprober.pyPKyVS\7H)pip/_vendor/chardet/codingstatemachine.pyPKyVS  Zpip/_vendor/chardet/compat.pyPKyVSB1h?"6pip/_vendor/chardet/cp949prober.pyPKyVSD}ާpip/_vendor/chardet/enums.pyPKyVS=5n تpip/_vendor/chardet/escprober.pyPKyVS `)Kpip/_vendor/chardet/escsm.pyPKyVS 7*"pip/_vendor/chardet/eucjpprober.pyPKyVSAya4 pip/_vendor/chardet/euckrfreq.pyPKyVS&8"pip/_vendor/chardet/euckrprober.pyPKyVSI3:{ pip/_vendor/chardet/euctwfreq.pyPKyVSA8" pip/_vendor/chardet/euctwprober.pyPKyVSEc'P! pip/_vendor/chardet/gb2312freq.pyPKyVS~6#= pip/_vendor/chardet/gb2312prober.pyPKyVS )Ӳ6#A pip/_vendor/chardet/hebrewprober.pyPKyVS9a0dS pip/_vendor/chardet/jisfreq.pyPKyVSy%jNLG pip/_vendor/chardet/jpcntx.pyPKyVSP㚶)З pip/_vendor/chardet/langbulgarianmodel.pyPKyVS{%͵ pip/_vendor/chardet/langgreekmodel.pyPKyVS؁& pip/_vendor/chardet/langhebrewmodel.pyPKyVSvb)e pip/_vendor/chardet/langhungarianmodel.pyPKyVS;#(l'" pip/_vendor/chardet/langrussianmodel.pyPKyVS5ҕ=$) pip/_vendor/chardet/langthaimodel.pyPKyVS/3v' E pip/_vendor/chardet/langturkishmodel.pyPKyVS#fa pip/_vendor/chardet/latin1prober.pyPKyVS6uMU &>h pip/_vendor/chardet/mbcharsetprober.pyPKyVSr&_m pip/_vendor/chardet/mbcsgroupprober.pyPKyVSi cq pip/_vendor/chardet/mbcssm.pyPKyVSrs&5~ pip/_vendor/chardet/sbcharsetprober.pyPKyVSUZ&k pip/_vendor/chardet/sbcsgroupprober.pyPKyVS֑g2 !0 pip/_vendor/chardet/sjisprober.pyPKyVSNjƃw 0( pip/_vendor/chardet/universaldetector.pyPKyVS=E !L pip/_vendor/chardet/utf8prober.pyPKyVSlУ pip/_vendor/chardet/version.pyPKyVS2#Ť pip/_vendor/chardet/cli/__init__.pyPKyVSpW % pip/_vendor/chardet/cli/chardetect.pyPKyVS(ש pip/_vendor/chardet/metadata/__init__.pyPKyVSL:L) pip/_vendor/chardet/metadata/languages.pyPKyVSkճ ( pip/_vendor/colorama/__init__.pyPKyVSR٭  pip/_vendor/colorama/ansi.pyPKyVSq )# pip/_vendor/colorama/ansitowin32.pyPKyVSoEr{" pip/_vendor/colorama/initialise.pyPKyVS PR pip/_vendor/colorama/win32.pyPKyVS(& pip/_vendor/colorama/winterm.pyPKyVS]o]E pip/_vendor/distlib/__init__.pyPKyVS,ӽ`+ pip/_vendor/distlib/compat.pyPKyVS@c/s= pip/_vendor/distlib/database.pyPKyVS2HQr9 pip/_vendor/distlib/index.pyPKyVSIo "3N pip/_vendor/distlib/locators.pyPKyVSx5gl9 pip/_vendor/distlib/manifest.pyPKyVSy} pip/_vendor/distlib/markers.pyPKyVS=X$Ř pip/_vendor/distlib/metadata.pyPKyVSՀ D* pip/_vendor/distlib/resources.pyPKyVSE8E pip/_vendor/distlib/scripts.pyPKyVSz pip/_vendor/distlib/t32.exePKyVSU:Й pip/_vendor/distlib/t64-arm.exePKyVSy!s pip/_vendor/distlib/t64.exePKyVSmHpip/_vendor/distlib/util.pyPKyVS2~[pip/_vendor/distlib/version.pyPKyVS7`dpip/_vendor/distlib/w32.exePKyVSZ3ZG)Աpip/_vendor/distlib/w64-arm.exePKyVSgXpip/_vendor/distlib/w64.exePKyVS )pip/_vendor/distlib/wheel.pyPKyVS#g)=pip/_vendor/distlib/_backport/__init__.pyPKyVS/e%Gpip/_vendor/distlib/_backport/misc.pyPKyVS9Qkd'Xpip/_vendor/distlib/_backport/shutil.pyPKyVSo9 +pip/_vendor/distlib/_backport/sysconfig.cfgPKyVSy룩h*-pip/_vendor/distlib/_backport/sysconfig.pyPKyVSDBCbYi(pip/_vendor/distlib/_backport/tarfile.pyPKyVSoD _pip/_vendor/html5lib/__init__.pyPKyVSʧ--XA!Hbpip/_vendor/html5lib/_ihatexml.pyPKyVS6=a~$vpip/_vendor/html5lib/_inputstream.pyPKyVS5mO,"pip/_vendor/html5lib/_tokenizer.pyPKyVSӉICpip/_vendor/html5lib/_utils.pyPKyVS[2&@HF!pip/_vendor/html5lib/constants.pyPKyVSD#+pip/_vendor/html5lib/html5parser.pyPKyVSs="KHpip/_vendor/html5lib/serializer.pyPKyVS]TZm&EYpip/_vendor/html5lib/_trie/__init__.pyPKyVS灦#Ypip/_vendor/html5lib/_trie/_base.pyPKyVSKOn [pip/_vendor/html5lib/_trie/py.pyPKyVS(%^pip/_vendor/html5lib/filters/__init__.pyPKyVS6m^pip/_vendor/html5lib/filters/alphabeticalattributes.pyPKyVS"ĕ$`pip/_vendor/html5lib/filters/base.pyPKyVS? 3Zapip/_vendor/html5lib/filters/inject_meta_charset.pyPKyVSdl;$dpip/_vendor/html5lib/filters/lint.pyPKyVSu*\),ohpip/_vendor/html5lib/filters/optionaltags.pyPKyVSQaM i)opip/_vendor/html5lib/filters/sanitizer.pyPKyVS`r*pip/_vendor/html5lib/filters/whitespace.pyPKyVS9qZg-+pip/_vendor/html5lib/treeadapters/__init__.pyPKyVSR)T+݋pip/_vendor/html5lib/treeadapters/genshi.pyPKyVSiD(zpip/_vendor/html5lib/treeadapters/sax.pyPKyVSekLS-pip/_vendor/html5lib/treebuilders/__init__.pyPKyVS>>h8)pip/_vendor/html5lib/treebuilders/base.pyPKyVSP"(ۥpip/_vendor/html5lib/treebuilders/dom.pyPKyVSMЇR $2* pip/_vendor/html5lib/treebuilders/etree.pyPKyVS9/pip/_vendor/html5lib/treebuilders/etree_lxml.pyPKyVSvjW, pip/_vendor/html5lib/treewalkers/__init__.pyPKyVS!-B4(pip/_vendor/html5lib/treewalkers/base.pyPKyVSeo'epip/_vendor/html5lib/treewalkers/dom.pyPKyVSC)pip/_vendor/html5lib/treewalkers/etree.pyPKyVS0Dty.pip/_vendor/html5lib/treewalkers/etree_lxml.pyPKyVS_m *pip/_vendor/html5lib/treewalkers/genshi.pyPKyVSxQpip/_vendor/idna/__init__.pyPKyVSecq+} pip/_vendor/idna/codec.pyPKyVS-h`pip/_vendor/idna/compat.pyPKyVSTA: 2cpip/_vendor/idna/core.pyPKyVSv2o#n6pip/_vendor/idna/idnadata.pyPKyVS,]['pip/_vendor/idna/intranges.pyPKyVSC Apip/_vendor/idna/package_data.pyPKyVSypip/_vendor/idna/uts46data.pyPKyVS'WX^pip/_vendor/msgpack/__init__.pyPKyVS1 pip/_vendor/msgpack/_version.pyPKyVS;;ӭ9!^pip/_vendor/msgpack/exceptions.pyPKyVS<Jpip/_vendor/msgpack/ext.pyPKyVSM$pip/_vendor/msgpack/fallback.pyPKyVS& e"pip/_vendor/packaging/__about__.pyPKyVS!pip/_vendor/packaging/__init__.pyPKyVS*:c,#pip/_vendor/packaging/_manylinux.pyPKyVSo0#pip/_vendor/packaging/_musllinux.pyPKyVSqt i]$pip/_vendor/packaging/_structures.pyPKyVSm?{ '! pip/_vendor/packaging/markers.pyPKyVSnAZD%Ypip/_vendor/packaging/requirements.pyPKyVS4dx# pip/_vendor/packaging/specifiers.pyPKyVSm:b=(pip/_vendor/packaging/tags.pyPKyVSA3h:pip/_vendor/packaging/utils.pyPKyVS 2 I9 @pip/_vendor/packaging/version.pyPKyVSBwPpip/_vendor/pep517/__init__.pyPKyVS>R( Qpip/_vendor/pep517/build.pyPKyVSs Vpip/_vendor/pep517/check.pyPKyVS VЊ\pip/_vendor/pep517/colorlog.pyPKyVS 5cpip/_vendor/pep517/compat.pyPKyVS;ϸFiepip/_vendor/pep517/dirtools.pyPKyVS"gpip/_vendor/pep517/envbuild.pyPKyVS ppip/_vendor/pep517/meta.pyPKyVSUx u4(tpip/_vendor/pep517/wrappers.pyPKyVS$3)Apip/_vendor/pep517/in_process/__init__.pyPKyVS"H +,pip/_vendor/pep517/in_process/_in_process.pyPKyVS)s%>pip/_vendor/pkg_resources/__init__.pyPKyVSa$K2'Epip/_vendor/pkg_resources/py31compat.pyPKyVST;2$pip/_vendor/platformdirs/__init__.pyPKyVSV0\t$pip/_vendor/platformdirs/__main__.pyPKyVS -># pip/_vendor/platformdirs/android.pyPKyVSj?}:pip/_vendor/platformdirs/api.pyPKyVSŪ.k; !Npip/_vendor/platformdirs/macos.pyPKyVS9 pip/_vendor/platformdirs/unix.pyPKyVSj=P#pip/_vendor/platformdirs/version.pyPKyVS80N#opip/_vendor/platformdirs/windows.pyPKyVS/ %pip/_vendor/progress/__init__.pyPKyVSC_~ >-pip/_vendor/progress/bar.pyPKyVSd_ =2pip/_vendor/progress/colors.pyPKyVSN|M6pip/_vendor/progress/counter.pyPKyVS.7:pip/_vendor/progress/spinner.pyPKyVS0l =pip/_vendor/requests/__init__.pyPKyVS&e#LEpip/_vendor/requests/__version__.pyPKyVS9H'Fpip/_vendor/requests/_internal_utils.pyPKyVS9.D,T Hpip/_vendor/requests/adapters.pyPKyVSi]pip/_vendor/requests/api.pyPKyVS+s 'Xdpip/_vendor/requests/auth.pyPKyVS.ppip/_vendor/requests/certs.pyPKyVSftnqpip/_vendor/requests/compat.pyPKyVS':Gtpip/_vendor/requests/cookies.pyPKyVSg8G "pip/_vendor/requests/exceptions.pyPKyVSa'pip/_vendor/requests/help.pyPKyVSJsyڑpip/_vendor/requests/hooks.pyPKyVSX,n&lpip/_vendor/requests/models.pyPKyVS<ށk pip/_vendor/requests/packages.pyPKyVS48!u Qpip/_vendor/requests/sessions.pyPKyVS=z\$pip/_vendor/requests/status_codes.pyPKyVS| "pip/_vendor/requests/structures.pyPKyVSVm\'zRpip/_vendor/requests/utils.pyPKyVS5"pip/_vendor/resolvelib/__init__.pyPKyVSe4#pip/_vendor/resolvelib/providers.pyPKyVS_T#0pip/_vendor/resolvelib/reporters.pyPKyVSc2D#[pip/_vendor/resolvelib/resolvers.pyPKyVSTpS!-pip/_vendor/resolvelib/structs.pyPKyVS)`3pip/_vendor/resolvelib/compat/__init__.pyPKyVS.gc03pip/_vendor/resolvelib/compat/collections_abc.pyPKyVSQG Z4pip/_vendor/tenacity/__init__.pyPKyVSml }Hpip/_vendor/tenacity/_asyncio.pyPKyVSUKֱ/Bpip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.pyPKyVS抙$pip/_vendor/urllib3/util/__init__.pyPKyVSs8&pip/_vendor/urllib3/util/connection.pyPKyVS \^E!pip/_vendor/urllib3/util/proxy.pyPKyVSN!fpip/_vendor/urllib3/util/queue.pyPKyVSdT#pip/_vendor/urllib3/util/request.pyPKyVS6(մ` $pip/_vendor/urllib3/util/response.pyPKyVS S!npip/_vendor/urllib3/util/retry.pyPKyVSǧC }pip/_vendor/urllib3/util/ssl_.pyPKyVSl (b)pip/_vendor/urllib3/util/ssltransport.pyPKyVS$ '#1pip/_vendor/urllib3/util/timeout.pyPKyVS竕6=pip/_vendor/urllib3/util/url.pyPKyVSFq Ppip/_vendor/urllib3/util/wait.pyPKyVSxq2 S)$Xpip/_vendor/webencodings/__init__.pyPKyVSǭ#" dpip/_vendor/webencodings/labels.pyPKyVSP1D$Ojpip/_vendor/webencodings/mklabels.pyPKyVSg8p!lpip/_vendor/webencodings/tests.pyPKyVS֥*rpip/_vendor/webencodings/x_user_defined.pyPKyVS"ÁB wpip-21.3.1.dist-info/LICENSE.txtPKyVSxyzpip-21.3.1.dist-info/METADATAPKyVSP2\\pip-21.3.1.dist-info/WHEELPKyVS^p<}%=pip-21.3.1.dist-info/entry_points.txtPKyVS"pip-21.3.1.dist-info/top_level.txtPKyVSKOH͓pip-21.3.1.dist-info/RECORDPKPKx"TgX'EECvirtualenv/seed/wheels/embed/setuptools-44.1.1-py2.py3-none-any.whlPKP\OEi~easy_install.py-1@ D~Oa4 e\`dEYim#=1437Km-V]U)#uJ1{&:lrk6tg]} ]PKPlOs=pkg_resources/__init__.pyԽzG OQM,Iv{W^G-cK\IE@VQ(G;y 'YY e7_EVeE"#G٬WlYഘ]e.fӗljQfEl.YղrV+=Κo}n/պm.\YYd4nú)ۃM]KPg -62l:}8uy^pKY0Mͳm[fMSfUB z)j]07VvQHPyS՜mu_6k|ݬod])ov|f< 0lVf,[K;n*ZbG?U+`Qmin>*kժYohre̋M1M7檙\5@Lv]N&YuCmn }p ak~mSݔ٭J0JXװC})ܻŶlrnHڽX߳fTE$Mv.򦨖Qt`S,o lur)DW}VmGwlֻ'[|uP~MX59Nwuy.eYOV 3LXjVI-ws!jsXr]k0F9o|^Txh9ܬkǁZ8!"AD7@ƀH)p^U}M ݋oOO_y3}ޖ{DS8V梸X(/O_$@yкmj N4yE0)f@KEOcA1R٬ pbyeC:* Xή7mnz dһ|`e^5.Lݭv?fԾ !oĝd8HkÍU>#$ բO?u盲|7;(fK80@OHj ?gF@b3TGoԺؽxh|<޿xcg2z~j6\~tpNͼ\\T-Pi zl>W6&x c^xܔRjS4Q $]5V&?)la'mG|>)yOZ_횴uYٲ,og, &D//p $NwU3g7%΋n} si8a剑їĸ.e]n;}\PUDFFY+  tm%3\E&_bE-wfĮr_]箏x18M'{:%}Emv۽j. x y@ ZO!F[(߮ R_ͫ&G|]Zh8hN 'CQQovؠk |*! &-\34Y6jFQѿ:cQP׭tm #8·8?7%lR3YnA'j pVvEg-Ç?eQesp峾K=pa,n.EX_Oco`|П7<\['- Z`4?T78'>Ez:17~Κz^m i.kmI:j$ׄA 0شmMNܬQuy$ ce n }K]] -7 Dp zr΋mUz\+f8'-o}  ;\ j8:{$rlWG#NnʅsDcՍ 8(bI=OE[ͼ*Fekk/f ;$3m=igjȮ:3ԪXG#H'I_Dl .GDu>+ȟUX2t @K@?S@ ?7 K /pWfQ^dY䚥.>:dR@Soq#ý;nRbwyW@ A*APq(6a`AiQLZ|Rƒ-r HgiÕOF0|}W? n\v/yYCѿWO,KLQG` ޲|B'Z uI=ח1s ]9x]yđC&MQѩ{!a=8wrnD{6yfEK$(ڒyBQݬ[XKw]#7^.@Okm0G92#7܈.GS48WxҖK`q 9: 7c܀Tt3;8xF_&h#Xz3M/_]__-87r-{op}iXwu9b3|v8<\ @ Mur3u6bַ>&21V@,ynery[೑m5]\{ [~hGi <% /^W <m7%е17*-YJ{˞i6Q֟]_{PY݉ҟy"bISCG,G r5 b >9!ڒ|@cDchBg}֤0p[N^Zܛb쁁#A .eM^vDfRU|~Ͽ?2pӌ<e_?;0 , `ɣƒǢK1`C;YIwVOfӸ͔=K5+|70xD/XCWsNovY?#_NSt&B^7NM4s&E=X9624L>|:t>gfՎi4jȠ_Fa`aɠg.#E4Wy]il9Y2ZY`!nT / |v.JRikZjH5 DӺ1 U?8VpM @tvcEٹ,P`~짪,ՉSG1bvnK(:X ÷$?Xgͺ|[W J;arfN"gאΤUҪ &>qdКRzL~ NIYI PM,)0)mf%uC~HQVԘ[j(Yis[O dj7/=3]{o~ABAgO(#z+D6}z,FY]o=crЄhl:kAD*de9oe ztM(Z]Z.vx%z/a|P;^?h$m9r9av8'W.jȅ?i=F1pq4</63.0l*Uf@MX( rA\U&nŽu!!LB&!؂uZõrx?V~M# Gt"5ՁEФYKxJ;kəPj>8؜+x ?bYz[Uh[:sc$'@."䇊:4-ۺZP!-pdL̵;9q=ee&LmD[Oo?0t3t(עic, *Ww.AGYvQ2\vEn٣S8wł<"" :\*|?Bz=gRr%Nhgǂ:}c{Z7Q??isмq<, 77?a: zx(^BC/&{BDj&N$'ي%޸J;Do#.Lv˚$V:6ᇟw?|ԛt/܏7@x߃KPiТ`Z.d_E3BjSo6 a\6t;b3ۛ qON̈́h-dSa*׭H@+ln_aȺ=dp._Wa ~ Z?-r3_31A(5*@M(8[B=v5C'X@vɇ(_ZU@*̭HĚi0dBLkX ԁevVA`BJ ,d3b q"̔Ժ4lJ|JxHҸwFecȹaƣ+#+n-\oP`w ww駼4`φDT]zy'>Ua1|tќz"v#t ੎I!m!`8q*YDX5ܱܵL ^bP-ra1wNDo#T|`gN@ t`IjTb+2g@0u `{@u<'Oа|T qs,Bt7m cxΧRQDHCRp~iYNfN bupWѢ0dXW7:Џ5ұs g" ˖ϰcl؄MEFA)K T~|` ¤S 1}(##LN'F8Ԏd L;H7ϓkV7fd+Kg"*S6!eEdDэPn (TQ Tl 1ci>Ck(Xe;{FXhYI[Sl $ZaEI!]Z$79-1<4;Bf 4f-.e׀Z7*AtB<6EhXCa**4>J 472pח tĮ,Ƙs sgXQZ[eڔIf2%*֤}$5ZJ`UG}% maE QUڝMqmP;:߲) G-BF<3 P-cqF?)UeY6ߙ ަ[bеG4bMqEF{9 Up IOIL8AsO158nìss”Xr9Ay0aɅ|́*iyސ:>8N? `1"OkL^TJ#mn<+ʽ(g0l3hCwmA >ʍt8<"}8 qh$A{㐄)+N&z!IN**1yo/\ ̌4_ӌBzcB<_Lv|Buh~Bx'd`~h-i3qú`oRZk'1חRӥ4AqϺ0>?q%I78+[b(>PU8LE4ˤ1G/( 3\ʘ%]$ L"xM0{`A&r65^ HyeeخZ& B q?P@i(/2$w@ϡphzAEKԆ y IUaM0MCƖj4:z$;!l., sp}C<VrKC;_,pʎ](-:<-^4oqeLO}lT|lW5lO<g'OGrD<5:`ڏ=*.J\vFsޔ! 5"'((yi:$D"$>xauҀ,Zlıq)¥+\6<^S?Is! Fb  ; dE} .m%b~NjVG7,%ddTه~4 1"D @k:$)/DKUW䉒~O dpMXu@W 3&\a,3'VY[b/ ē ft}~G$ԛJeg5M5^LG.R?޶ a&p]Fڷ2>g{C5`.'gHYX礘N&MSs Yy&MTsnV-'8ĭ9&[,L.iWcA($pl+z0 t PDG|y80\Hs2uvpϸmZ!')V\@M؁,ش%߰."(s-1o.M Ƈj:RΘ|'r`? 2 xie;3|rZ'O1d[%2l鉹:"u}jd7R#V3XֽٮtmxUw|S,)`-x5ڪΙr}?̇ͅ"6ww=:'gMaQ8G ϐ^OV887igO6DJ/̱/SVW{Iu:ҷ\7ku]':]bD\?tlѷ[*Tc<{H‹f%kN'|, aPҏ 5u/6@#Xh#?]{1q8m `(kr9ȩX\wY'.=^-eN0i Xvty\E<|Iy].E/fvrKLļﱒwϏD]=2Du׷A910"Z6y.'FN21K33kTXn8eoc9"Q4U>x>Œ} ;0IkzIa餳vu!\=9wF&80 ȳ. 7ZކyQN'kq}3&fd~>.6.l Z5И@"(o mOdxv⠜3 zcg[D,7F92-7 [6*tɦ\(트(q9'؟1vjXBU53MyxMi4˖<@$7e~ >`:y=c k1ߚ-"a(5uy~2G]u\q:UCw\ V8PiH6!w0g$E( G 6; 9KT !0W0՝@|&nh$ߝ9{ a$ 1Ӆ Sc!TRt3욒:rpV/hwv]bYtU{V7o 6cJ&d8DAKezf{Iē 2.AdH;4!V]D:/v{`(@u:ҵ¸;8CjcI-W|$oPeV}I|8kMՊ'Rbq'Cft.ocT޵мM-8ce1 zbM []W-ĀF$ǙcV+oA =lj$TEQ<#-]dqs6഻(^ c^L-ZFXv n%aU\`$!s?.`gurjޅYinȉ %~O߄ H)6:X-?z {pPF!DT'*-kS/Ċw2ŝ#^6!m OB}pIX :NgdFû`H9_ڈrs,so7#$E02_?IxRLB2cԕ]Zĺ+b5Qg YA.Yza{(-c(UTqx% ]*F+^܆N&㽢8Qu)[믝P45C3JD]Z_=׻s{J932'E.$KߟA?i du0o] Hl5).uM'NE\qGy_*N60Mkpa,O~:3yU$Cj=jh67%|Qek% 3\K%"tn ywi%)g6$X]oߟe~#psU92 /r\_ͬk6[ӌƔꚬ *_zUԗ="rӿWI鳿Y}4agcVh'F;%9l(|+=,# @,46̉ yB Q[\d8J_@䦍>e2XP&`|1;r@ ${:Nem`%khc" =Qx Fmm{FٲDpDTA=ĞO 8̰{)]}ÌA%lj,V W 245C堵nSOEQp.;e;\k*sv:eE0_HŖ]l1HǒTfe;hbzʰ"zlk)t2-w@-$efcqF'bN|>qbhz_xŠ'ײXYz=m('r?ٙ^Os{IΟ,o04KՠݼsJ2E͸@1G#mCh6Uuܶ*xsl0E_0R"([Xu-vPγ ⺗]ͭ!_PfG4V ttz3Mӵz6Pvb!MO/K\CMDxvATOSylREKr &Ӭb.ɵrTv"CFY!,}7c#5t !1swmp4$TF \n{K ?-=XyS_.NY6WϴX=+MݹڥٌT<{&ռw ڱkcKνۺd>:7ͺXF`4{d)w(dqv"!T^t=> bMq\VKw4*yUq$jG/F@5 ?pv 3=No%<1v+oMC 0G-~IND=nUx`q>W88L#8E( X|9tiL$3m?;ס%nx]玎cl*Ż[~=Rܬ?{B+qxەEYŞ18a iM 3or;1ID"FbSCNͮ׈~F1NȺZe{Čz<t`W8 ;SmX>ʤ [XL{B$Ն Ib,$@/@+IPR@._"5ϝx\u]:^AXo Hj:Ž~[v6P80~.e \U5\52\|qٿ:t&YkPGE5řɀuZL_q\3u0H9jlo9H)MH>4vVU=ۑ¥a&'FwJ FPzD\%TdMw&DS<+Rwó qvI* dToqveEm+~;sj@Y}$=B%7񶙥#{h{'>,}(+`Tbr;􎽬 $X;4}F`LNP^^NbLg=kec--l7fx'n*tB/ala^(W6F}ABJ_tܷӪ۔CAp{=n>n{L[g?WAbc,hy`A "svV*ڰ"+LahDA!?gnsU>/g؄fqA(m]߹f%'.gE P9Z7f H ށYbФpL'w[ Sӓl <+ +hõ@$FLh 303^)|9w}]ll<w;k_=Ѱy'Lgѷg^eX5W+yfxj`٧$a .5BE"*Ʒ w_1NMɄWgM|BrI=J2+/F e}[.p_-<|չY!MSMÖqkKOȏ<*:cZQN/gQDQܴh/N  TI\:ᓳh4I+Ϙqhli wfH[ٙ`ݎ2s\ʪu|:_5* J $%r)("ޜh1F~WB#lќ1x/ /J ?M%/g JA6{zs댬?h}y= 53ڿlV퓇[j46jV%e:WLcv;W_}E+@ 9W` >7W q%v Ũ5&?MX*ꁦC` dx(L)bklPz^e ( 1.KXߏ xfAu֬")6f2ڃ68צø>;Ep48UCE`^^a™$w~+z-M3p#{JxEx(![Wmٮ:ݲ.0Rws.7֟( )a./ 0}E}urT4A?iBJqkjU3(Y5x|׃=fZq#`*tsmG" +ύConMD[)9~8DsJ!n_tY’X⹯Pe}1q&.8j&JL,@:lird缓lg Xƽ!Xpx͌򙫱ObrS`VbYC 8q4~ek{H%jND E"h 7Mѡۙ>^7"EP`0a5}9J0~։j{ /WoZ"TQb[-[$R!MǟUXneVt/N&U'a뚹ȨXm f03BN"kF /$Bcʬ,*n>Jj)19 rm>.QT+>L4ȄʼnG)Ni Ѿ.lCv&s(kq- iP q1D j8͐qɠeDq#I"F̪/,.M.o%D<*Z-/HⰓ" l1Rv8p|KEDxNCc}tk H[KW.L M:ְ?2[ 2h8qox:ax/BM>aAnG {b\mG7uFΣv{0GsוOPw bNJ5|͙/YՖɕIrfp-wvB7sTv5aX~ڶikؒFOZJ}z%ՔArs 7HrhՖyshCamVcP|ϰR'"}X g عCS %Ze;c%lfѪu1Ẇ9uM9p*^ⲙ]G.ce-*'qAP|sn|׹ψ7G6.ͮ pXq|C2) IFJ)07WyOIh䆻׶) rw䤅 m#:N2}Cnlf~u~z;/@&8^?͆yŗ.0SyUM{~s β/4-Ce;K8Cy-8tyAR(?ĩx-n@",LvƗdp͙ΨW#XAkPޱg5|5V1DBg®[AL݋oOO_y"s/_3i6hHQ˪>ti>!f$ɏzkPFO6]$FabIZFsUK&u <QHrDg --„IvBPA Eȡ6YBeLuI5m?\A?eoyڪ}q7Vr6ъ>KS-ڬ +G/ɷ{iG$!y`G&tf%%͡?6Z J'q bN$1rwh qv #HR2r켲X֋iwtGLޯ !j6kB#^sT|J}N jF:ܪLC,T5w[Rֳ#N$tx{r(&e?< Tnya67(:H9|=? bÇrÇ |K &.\0ɸ[_WGY}?lvɹXԬPSZMV:EK`DeYQ4_ϐLm{ h}~]ѩn8.HR9go0?S{H#pÎ3~t<R'uik۞Q9'Ϭ5x٣\ Ưvr3wŒ~A&f-X1;]?W >>4v3'a2oʴgts'H4}w_tM.$`g(^NŸ&;+v>1^HC&"ЭnȠ {/qMqzHfiٔ#䩫ٝtt(0R?MsR" #- JNzUlE?:TG](]!18X xӫ8]ZZɍUNaL"cę 4=Bɽ= D+Dwqތ`t855Zԁ@ݪDౡ`4U?Z:"E] пTl?'jKmC;Koe=g׏A~{\U t#as"L:{뿡l㔖ӏ:[HICpkE^T>cFBSs[ .[egͰeprZ$n/0š C ĉk&!Ϩ<,1&UCe4BhB+Avh U<:Mahkq!.}\'`ٜoΩXa:7=x#<5ջƏYb MChg{)ED/ך#U%OFzBYI'\`Bz.X㢠E?h$#ܳgA;juvO~88ߺ4Ǐ/wbBF1z8wT)¾؀c-CN qW~3Ae9%OGZ ]v9? K4ǘ =}κt1eIVd$`EztU4]2x N(41˝*8`.)1-.^[͑Й6q9u2yKs>m9!^86@ϮlK0KR7ɤ'c(@n! 8X^7 ˼\36&azg .'YSβ0Y\̬}\3/zQ{9Hb+9=H'3:茻ţlS`'+ѽRJ#R|Qx̾S@)hoUC qiwE!uL8N7oZvZrhwi-"HT<^4}IͨR8g1~1 jW"@3p\f# YC]@kD ,qNn7㿒9J^Tz:T8=]ȍlptBxA'GGɠ8Rج{FL;11 O]Y;CavJY:j>6({yY7k& _䃬c 0uTP+U *O8±D~_z7d?>{jw2aV@!K-vٓ([EAwxϰJ:7_ǪEvd%=t",!)7[=E3zR|׃@/Zs`o3t=Mq F.$ .Xr{V<݋_N|n("T>x͖9`4 RCVĺ7azظKWQ>>>4xwN?)L\Ǎe>wQQ͠?䢒.K4Y/BgM:cB0[r_ 8WM((u/2yzYDVLʠd?S wc꜈=M/w7 'IKMhl4Hl:`# 43MbPfYQ ƪFv@"262*b|?.0`l%; ᲼r˥Lzb8`g;S+Q5D kC p!*4eq26}4^4TLRq[/r`jY 3[kZu!KIF Yo&$b\?3B\!وW/s ]]̑He>]j/yEiA&o)cW󟙡Dt锤ē9c9"gz%|w> )6) gbbIC/ߡd)w pgG=#dRNMZhLgM"Cq^qT≡>9g/c /=Fp@ln0`n/x.[H?Ir.)Y6 ZbrЁҬ+uP~d;BU D:"&f(ߪMjU|}+u9K`El(Ln$8[$xY_krO@G_|/N SPj5chza`>MWھ$ҦV#%.jJeu9¶˙Jyp ã-=3Xg^> :р ΐNrU:qΥ.o]&̱@DjGw`{z,z>aJ,5tVXXB~;3O*b:>7B2[ͤ`8.c#vP}9Y;ϚUǺllOic%4㻽,>ݘ=`qh!-BToP:,)=ʪ ^ϣ}z"IاOڧgv (:Ey " QQ(@W5eB .ŠxCv7# ZS.c┌"% iL= m]\O`b}$C=kj. /-ѣ?={FǨγ#Uw"~ݠ!ymu G-HPx EeuSqU<{pC$zz~Kպ(]JT:@cO.$oNK%ަl`DZ]G&RP /w=_ˊI֒p3Wj6hn5Me|ҋq'rٚj\ah rTZ3&W9+r#3ԯքF%G?ɣ^G1{sȏMȻGhO1ے/J@3*EF) \ZʺA+&ؠT: p6~Q!I) CcܢFxɃ }}N~꤬fi0‰̿*b]ڡVqd=¹R'NBXL^Ab-֫ oRa1QF)H,S/#WpO%|ZaC7%"s)Ts`cQ(bPrWgŸKMU0Wl/ eѬfSm1G +C6Ld"T #Oo3)d|'Xa=qK(JeiWCzu)[ŗnlr7yR.y;iL<4A6o ~:C@ .&(z!P*÷u/ҎGFV8D2:ֿqzoGn8T.FW 00yS?(zwh˧ns`O#mFL}YsjOd~L),C!S& \&ȟS1iMK*DxcBl!Ow=JDzO9L(@x5gGp:}Btp: tG 6:3YVU=n-1e@YKdWԡ 2NrsamFX{dN~T ƒa6q*B gb>0jkcpndk) oX' 1|.rOˊ{g[+86>C]9L^ɾOm/גoVBN0d1Kw:8e I^[*Bk+54itN,Wc _XD8x59Yveݪ ~ MgܨChR Qٿ6@QMOID>FZ97 e0[ԤؽN60>$SJ I}?amy67T(/rl* ww$jZû}Gs ${9wYlr3b@&` A]pyڑ  rY]rCNUFr2 1PTCK<4B` j:_u!B,85V BRd.7Ќ-rT[4 $kc:E5ʱuqպ1huv9'趠89F'B{Bn@v= IL.w$;QOa RMoAH}_N.R[.I,f[ A} =*^`ZZiBy2Dнtb@.)Y@n73$GjJ'{T߹:v`4px#F1iS,ͬl8Nl ,jGr'Qdy ǜ'  9 !QAqS.#+`ԝ#(HM6r[5Rl.#fU5L&eXT16i[Tɽ[(ܑ-Z ~Gl@eDQ/%J h`/&!o͖ns $x9$qT\X%Uf%߸" +_gG9\B!°ӜKTkڜ_`G*#"?f6&⿇d:; F!6^C=XȻ7Beu<m @0& ("򭔫F[-4iLx:N,UIɀ]~%7t*FAPl`FОmv$;+R=q}xdFӷfrQ`v:<00I?\7KGICSH)]gQ-ۉk/tu+i=ɬD%+ӼCp^؝]9RChMg&άI;찃L 󛮝GnuВ|tg7WF+K˥Jw iw̌%W {!pL1NZ#ÒWD zs{hiy1#,':??1̼d)9g3 B>3Ezc+vw'-ή,ʂR|vޫrWtk".C'nB쳫\Nٱó-3$0^k\34Bޤ<#D%*6b[貦xbY`I;e"RI| c vz{SxXG)Ee\ fOėhJŎ~H5,h(\qVueɶQ 7 c^+E\\00&=,"AxpŠQ!o_}[uap("s.a7_C"#^"DPX@VO{X)_Y?k|5bFE1\-mSGdw ĤceJw>+(A"k!%V}CݒSJZejtO0'/7iӓOrVFzu< 8HWKK#2x*NwLG\U]Xkбvfq Ү(lC4 iUnNe^"@ըpӬ&"E2K\B0$= [% q2+ (׀6b\ )t"<[9ij(u⤣N-j A`R[h+YԶq^ݖZ]!Ӆ+doP7~r;4r>ut%RˍhY1&V9ZF}=ƬR=qU(@9C~ؙFkCĶHF)^WGSh7fK^Td/a3R69+R >Kƪ9A@)TJ%?B[iaB;?1lg0}R?%sG3W]=ټd Hpai.#eh9P: {΄Ճ]Ve12t̶@ՎYڙw ==Ym0˜W?4}Vn)u7lXvS`:9eq1y,hWU5yѧ}/>y=%L!Kx\$&uke}q;nJĤDҥd W]%PsO&륿=/7vo:.A}X{XjccǙ/ K[F6f>)S$~1y ?Gg_ %ptފyF"xGҞuUOjj#v,=MQ-Yi.MTa&/h}k̃v'ֿ4s<))s4L ؏:3IOb({~R;b²-) 4 ĄV<ޯ#cŖڜ޺HuR$isq/\`?sv&ֿ$\a#QDpThF!`Q|ʟ2+bz۔-{k҂=:Irsʄ}s]eYg(K-90ѿbOR̐5$/>#MEmAad\n&.0ܩG÷pHB~fҢTVr̴$Hi0(ֱMW8u6aDF_(3TGJq՝8R`eܷOߗ[Ӿ5ꛘ Y)&odRMvxqο_2cWJ(u6E0wiu415Yيlj\^,wuvF> U{h!q̀0r+ncX‡#1".Ƨ22t=61#MI!gĭȾ}uO7Ȏ <2_H eP#2F%5P80 8&v@'Xd֣Tǘ2#YcD jrVz/i b¸o^~={ٻ|}g~ջ3`D.eYE|=d[%C%'4)T#]寂׽i\8qL{#+ʽ|\0Arɑ{ G ҕx8o$mxn<eZγv'KN.el 3EI Y cOڇdvn{b\ ݌Wgmϵb4mshC}P!2xR UƷŎ"()pi1/, 4O1hivspe2gv*m$܎jG1lI \_L<=Šwy:|:T<?]'KTv}Ɇtuى'x1.D߼|bo8fdp(g5Q{Vq33!l+Y8v8$ 52w]i?Gs/qXoB G&O/kbY P>8A7`z%Tڀ8H+Xz4LK>U\֒AJo R 8,rre Wy%*Z8?( AQSf݀欰K'QGC`Pd^ؗ ӌY,+ԑ&LEh8u1ZtY u ;|O(hqyKKοF|salʀ#.P=k D+y0N' _L ?nź|DH@6" jV@M(Zq0Hx:GlL.@`Lu))eo,d* .o*@] fw=?!470hVl9wGrs"XbRc]J?:@[K`,$j=͋ dIe~TxCv,CK'Rex5uAk} HdIA *Aŕ&\E锾~zgq! FewGKXUeh7,*q\%u暸$brDq2q ^J]FDW]Of7a RtOx ]9Dki*۟8z-I?qٴy<2Lϛ딵0|okB:pK醘7haZa<)ꮖO[%[~!]>}Gz:%"6:fe1h:R>@bn0EN|^RļJK qHͨDJըV:EoЪqad1~S|Ń!%rՀqzo).1I+H"=͊r hjQ!2E-k/ [d}Q;mͻDFX4C 0^e"̄q%Kbs"_/ZPKPFI.pkg_resources/py31compat.pyUQMo0 WxH]c;iM ŔDqπ哝YS{)'!Jo.7ꄅܩP-;M!CՄZG aI^h#'|[I`lNna\ S6m.ύ5WǺk`{]+u<5AÐ.sgLeIGG(Xe5;DBpUީ0.X[SںU:D-rKc=YTĂw wy6<'^,צ$ݠ{>*!wPKP!pkg_resources/_vendor/__init__.pyPKPaQ}` pkg_resources/_vendor/appdirs.py\v8GLt:83n_:>OP$1H-AZRy}}*$AQ;nwwPP(Cߚ]/hg0 *lksa ,[?g7Ƭӭmv oNY+',p1;{כKGOU*e=ߋ=.X?X<y0\'`K=HؕJsbfsäkᨙc ñKM| s1zu|€ML!\-sb=_veL.8b{Q(@HďmG;['Z^< w[r>zG6 iB7 &!5aEC( \>oxy f"棦#&pC|t&'~y8a4hvAǖ"^tnx$NN=izW%D5Xqp^T ЗT.p=gebIasGԄ7dÚXLj/΍Saj6ݏ8#$!wq0 uW{PD80`>\Z3cp#6*5p` 6@@Rd ࢅ` ?t6X1k<z] `t3Vap\[{{d,}ObW&({@([ZW<% 85u0tk(0 N4RQ_Q@`:0['QﳱQB)0$u.%t#K_iD$@3Dž9sS C;A)^g.VHb>D. e;cF8==W~\qY~J-*H3IdI 龕}P&ҧ(iM8Xrqn.hYƈe7`-Q?`%+3mK<ØvBn ӀKZgǯ; Wz}qt5D(7r)C<E3qz&i2&ȏpqIh'Gn%SƫziIh~{zBR4_$u YZuy̩< V5 (`[l8 #J2QohZ E-!-Jh7hS_؉`T +LIz%MF;uypX `:^{r G01gj46Pm?pҨv| rdhU*&jd)'6([ ѯyǥQk~IB!: n ~:ک߾X6ņ^, \8]7~a_ V3@7d2gvI_]Cc!NBog!D K$"FKB`_S gk ]ysqbm^mzۀcf#eL8* Dh)| 'Y~ʙ >xjG35h uZ7UZA:9/΂` ?*yVS,312jgdSV 7x?bo?,*g!veeAqUkf, ]YB;7sLp TX,ɬOs)F2Y[j\_vDX {LÏiX KaYιb kkx6A K_&%ůdL}yk579>zr%"q|F^P-(ͣ߂z5嗱 Ukf\:*˫1GtUr\Rf__OQ2c=,Y@FJ n_)#R6`V(愎:C}cZ>egOkog-ctno尕-k[ R5+\/Djtch>Gt)TVbEG39)H.-X!ަwz+3ꥃ65:K5l֪$$IP0R~fL {褯*>m qkA"qbfm&OU ۶o++/>f,md{+*bRCnd)ƚ[dԞ[W8̊TP^i{Y sU)"xE)"ER5>;b9ZN7rhNr` =Xb+P@,pU=ǰR><Y9i43B43ߥpdkFG(fֆ9sGa:NfeHKSՃ;B'ǤnEv)Ft7J@%A4t-;%I  L93'0ܘjXj;AySG8 G6͡L?\tYzr.?-\nĝ<7FD Ch댽v){l[(bT>nå6?ΈIXA:-N{T.)B, GYw_ ?,~ݤ,Hl _Y:X][ݝ'Rƪɭv&2E6Wu^cRo.E{J/ˈFn{M2@k:1%1&Ks\VL)I/-PYSZܗA\&7š`դcm)/B9CA? tF( ~֛y,}7#yhI½K[Fq*lBQhAc7fk4h9z]yY C:n÷ھlkb>YܻF iU ֭4FtxI)ڱ( (rzEC>plְC_p M!~&̦L`ayf0_ؗPKPf]w"pkg_resources/_vendor/pyparsing.py}m{6>OܮRln]qZ:/7vxmHxSoAIv={K$0`0/i>O`v=2O? vuWA8kkk_x> wH뤘eYyR$'YgU2"I4YUu0K*'Uf:sTU\$P~e@|4&YWi:I α;A@*uz8'A$P:UP$eU#Ad>tJ;R"y CF&4dɼ%>%V=̋L&hu 4PfJ0F_S{HyAɘƝ_Q%i>W0Lh88rS&'eB#c zͽIՓ-qBg$B1{RV@),/]wՏwW~߼޳gAg~w৽_x@7/zl{gݟ_=8^ ^}{/w|)T}0{wp_Qmo=G(/v|O= DvzΏo?y`: { 4b! چwp>5# r뿿Wv]]niiohg/ۥ*)}]zMnv^Dzy~~_9Ե;؍7{o^A ]@՗ 1}G zǃݺGv7''OCXaN')v& qɫ4͘(wWߙNl}G)vhJ x6+xt 9 ;CG#w:׸YÚ\#y} 3 'OFg Nsa[ p|2̙?xK'un`8*ϠX}=@De?i'7̝og $;}}Up Ong\A΀NJ]+0l/3'n{*.Jx3`Vmn"3D tQ;q<ǥ*yO"y@SePr^ D}YG> j s~?vN h:N&w`s'GoG]zԍnYXf*ńbBޯs@=6hE l}I $Edd4)e3. .=)^'*zIUF^$l@ 4RHǭoGNF#{Hf TaX$"&g~"}@+o789 E2& 0é0$z@d.wX<ɂ"%\%*^J+ABi$EQs4O\hSH3AL>AOj4Q{sĎO$3ʧ~]RQmOO)s>ɼc0*w\yY9+YB"i/MAcP`V<][f讙 ֦ $9 KXA<"Y633hiCf@Q½ M +)WŋHT7_ez`v,3uOhuyZޅ`%y"] (|wAI'ه /@I ^c< ykL*P@N;;c]a菐N D8P2P{uj. dPfOKhʜ<2"}X`c1ӄ_ tL][* ( KUY5u dAy6|#wpiq}Ix, Fj!|$=|W{bΊ_q(0Ϊ.IdLOI|2p/Fn?C˜~j;66?&ׯ񩏾S.M ƗTXn ͂G*%UKGrt0lT >?$\ f2f7Y\Cʹ hgy~_$#"?'XUC}^ZL듔Qrga|&?_͒L~I=șpgaGFvM~/w3NE:>؈f1s^ҷ*%h /{cj:1_n_&&zd9A pEM͟:p lW;D?y]$i>/rU,O&ϒHQYSl%)R%Dmy6Rd0=ƯN4Y%(fcpi_0[MeUqv/pJ{$@kFT%S}NQA<q{R t!m>>|eJGki%dy+ 2lxb۪ৈc/U%q xQg[JQC'69 X{ngO&n|$@/GGH#xY>F$2TQ^IL|E5140?g ?+Y?% 9.:ZnG_|՟/3oӝgvGR[rI;1"fwgJ;_4 GbT:2+xeՈj"C C&'u\_QuI\752AnsmW⍃/whQEhR`t7)vI4.IWZKC CA(mSmV#:$UPZ;4Tŋ1Ko\8o;~cš){j†IJ2iGzg#x{sv-tSZG#}X+"ėy:.Xk~N'p-x>?U. Cd؁/ 8{;m=K%ꋲxPC?3|1P|$)YPf̅2'nZtE6ZđvCA: ;0Fvzm`/ kS` R5Y};A Z-&طv 5$)._+>y[4..ټqä8PGΓw܅#IR! |#1*(;!Y2B;5XڎpP e[Aܖ~n21P"AmMGu?f;}d@I1; -"H4f܈A!TוVjI)" wȯ26yP|kMm}+y2̎vsъzPT ngIYF:(v*gcG}$= HĢ|zNOk;XYRk:3ujvݡ0u0(ԾCYLx'$=k cxqfC4[`qt:Mh!0^mJ'/xO(8t|=mk '7pO=3NQ},-z|*qr1f8b4Ո`]8nooLMR$=dU%7lUFuh!d>}[B*IMgHoXmilrƢ*}}AzJlbIi asx2]D)+[5Ĭ[XQ14* mx8C-ܙIJilj3yV L%@fжȞ='CI">A,)Oj[Wgm5hri81"q.PXfj^{6n*y6KqZ[|^o'wx1?Gd F;[fVsnLbJj(GGnmk(d,&sbth28,bH#1 $E4 P bSIg$Y({7=6wXRJhTo֏ojNEm4[.'7-C²4J<\'1` >wv }yHqAuǔɯMMgJ:xP?f&͛{!j8UnuYK]oo<|n B l N'lt^²3F:HBǽN-m}%lu[ i;EwTW$jc>`z-x`-xY_w‹{u/Fb] X0ozfh|Ddž <=D F|rU7^k\n$_xB߭]ԾP*H[t^Rچ`u70sK P(n]ofqtp[,G^.iUX]s(J1W%`?O_ehxU[$`!KHlZ*Q8}j'ߎ6B{WjX4^G؋^x9fs]Z U%]҉in6pEh;U8V `J(uä)לT nY>6P$]/Z;7ŬDL6'lPɨۍ{A 뫃cc/x^y-`͛Q[<^k![5e>Mk5E䰤{Mhk> u5[!o{xT+ψwgJ٥{FtJFzKfs$}m6m\[cQɖy(1"4R7wk..r]eB.z]! ‹6.]`~.-DEdLr{'hr6]Ҷ/aAنrx{S!-uiRZͯzEh^ڼp+hԷB$I.{S cyi>6S[&{n/a6|ޱ/E4b@ pϽܑZ 힦3")ќp\+ W $Th_6 }8DzւK,\$$s wAͧ(M&щE( u٭1ߟX֏ͥlӣ0K{EciJ&RLշkD?U6*HyϤLwURxGYXh-X".=ZmXqIv6*u܊%(Fm6|Ү'Hjzy%&z શ~҃*lu?NR+2R(lj¡D-DC:@u4ŏ\AmSshiC$k/iء+^C.~/I&N01_ ! t!oHP~ZwSz̓6FC"1lF±CxTYNDȴ(*c-F+-:V%Vm"e ܇!ܪVK l?^lPҝ%][ࣨ` _$=j=iBu-jT; {E6;` {5F"{) *Q;Ht,;gt֤hb{pF_|j#Xԕ*_X\it(If|t'OE2sBRCR\%1jc_$,2 ,A 4s+}zLٺ]v(ZOw9}ulR^ `rQ 7b\^LN_B!6T,G-E} RӢK 1 WS2MTK]Ii=ܝeA 1 MGVFtIY.+h-v=fX퇨 btZ_P55¹ެ=Ѱ~Muk.iN[g$'B,YltTW񦪏AA: U'%^yj&6U:B͆#\-/iHFO5i\z,t }[Li_Yņ =۶vMgFzm3<=aA %mR-T JmdYLLzkatO ǹLo ,YcSZ9ccAz=Ea*;t#'SO8;Gcy hp#/S+Q9K(溱%Ζ#Գs1E)m6V 4zV\Lf[ݮ;e; Pxi4܂6ZFmZ޸ V)e`q5%1'iܳ젤u,kD2o mHo$i2_u%l]+7d|K0)_ jI1ٹ/)j} 75tiF՜bĆ{9>q Nt]m +$7ha/dod{F~ YEcl_t(gT0 j/{hU9kG6psm`۬ ⷯZ ;UfnKj^Fjӑ_{xOjJl8 waM=xE\cF㓞 ^j Sk;>hQ_u;~. 6,#JB1:p1f a 2|t[:3mb&F}%"'?KPj :bi~ V'ѹiYMCQz:csiTpmz#|SN^īPGn9d0ou'o_]#t=%hwHp_s>D6v)7||t @w Tg9<{o~ q}%Q~c;l2fVV#n4|I(@oD ]Yɱ3fu(l [Rmf^wZi>ufV6\\r`.Mxuڝl5>FUEeօGDzU,+\F^~>Ӱ. jgֵ,Z5"4%mꀼ-ělXƩ(==MH5Nӳs X#ʂnāz̆rv?Fx 9؅{ݞJMJJnO3v(1BJG6 O?05* _}n Tϒ䩟}ޯc@lF?OpocccS<*R+jƬ@]P% u{ll4hl]._ڗɌ>X.pϋ#%#v^,6պOZY cט*gR}&.7_309zęq{Dm gn g9&(&Z,K`t~"iyBVtR)/S5rЗKQ(=}\!$D5J%>7835l5)?o+, /vYX_H@3 -TaQoUH_52<;@-EIeY۹衳u^_]G/&_P>t>/?/f@"C ާ#h5Aq  z^^2qJ[,9M8 0q\&f` BiM$ήM7KY,'kR!R6F?׮m3f6C9||_%EA!P/J#ser?x2>Z<.+fioV}p8Ao4un;﹵uIT6Re|_y]){ J2ЍF?ߟWlq>*xg='E\\? ʶ+ Wʢ`ϧ #KbuWcen7NhuXǪrVDMa,$ O`^ ]cX[a|tOώ9 @QWSm&ބ:l3śH7|']L^|bj=ħֈO㚪^~erO#vfla1nG#JXn'0gm{;ktXoڕFm54[?)㢙$K<6]X Z /9 >~ՓfPτW *MDL'7Vs>)bhqL+ǩLGӱ3+jW|dRMkϜft|:_B4CsIV<@ϡ->A9(@\! R4@fBFunM;^f \7I+tX8ЖN+*;H@gg F9`1TŌRuROl-G܃M.*۴z++ p%'3qChQK:i6 Av^JOitY@F"oi넟#1lAףL{@@sNl3-Dx6 7znjtH..C#;jtΉF M7l>-7O@gy!C]lPP|Qɽ%~s& adf9lm3]@p@ f`9Y! 0|-pO&%e뎓Q;Ht4X.۸Hk`RAlB=VR`vwGF=R.fӷcjǮie4M*((Dg:&G&S".]EhMQGx̋`LmT̥J&)hKb L&Än,8`Ry] hswQB$H&s]45WOzOga'PZL@dFHЎvR?jH߹=-|QqHЯzKYk~dU'au-"(kVEU9cXvUz)jڑ֬PædzHWxOyUr? Z b2EV0[云J$t A̒,TGPsg{ϟоR=_=yl7~wQݗx x&xE  ^|H3=| r'{yf7џ+30CKvW,"",g W4 0WZ?~;`iZ7V~,;%tY,6˶rmj~)^tL2؋$i>/d{d{n ])6/{70uZNkr 86/'bmbkC?Kn[Ɔ8~kjىZZiKehԊ% H j'0GJ&d,g˨)jv$b<_Se:Kvo8!7mz[H!$N2aXIFc98p=x Ci&!rqzi+@l ntV@Leh <^1*2J:&UpxP`)V[H/)3!}idiySrb[ hc, S$ɢ׋B^@ m0^po9LUw u?y]$ƘPlS  ghIȥl|"ZS`4 E:'IfkR~]txh-`ķm`4PgԶ KyÈqLƹh&@A K p|q I I$ia{ew21 a6'`"(>vVeu|M7VTI㗷l˦,XYYNIAR>GW`:tȼi(Nxm^fTg]"ֶ]eqǣihiwcVFf[FuWŜ~l@T'((|'UςV C19p4XU$-3Bţq^_Qj{ GYiF 6 РcҐjFS"Ԉ+e,L R1P$SxYW`tĈozcڦFyMB28y9$\ԮoȗGmwIm=ɰqxd%9(euDb\ QRTJ,`iGN['RJ 4i?#VNxQD@xvyZƃCt(y~i|3LNKLاadŷ*sD[eL131mjDS E7nF*"C0UHպ$ J ˢ4rQ E#|rbl'ϱHAi [sr-ǺAieT b} }XV|Is8B*o½416ݿ[0/]ì5 CZjD#㾊ׄDbu!fq5Z :-xB&G W5 ZN+<Tj4NkA ܀{6Ž6f6P2rE6u ]2Pᴌ05;m;V]Q]Zc7y%Eѻi>DoNn1>'322F"1Wxέd:#?,&&{FO $aKBժﰪ"'h}mrCvEf}(͍PX yh74r4[J{C4INl(,BD,aLu ~ii;Sro $|:5f-tG^}"dZesǖHgG(c+ݹo ضr`_M+n@ BI5yUy&@Q|Qհ"/E,bu"/f]/I;j.ɿˉKm௳"?MUZN<:okf> ÆQVT.Y˃t';i6rW?>lXD٪ow 6\iźsL0oX^ȃZi4,"m XA^s9Vѡ'l1Pyn*iƅ%mZJ@8; ʏZ ́Pמּ=թ ;ꡪn^b5@$cAVhzhjΉt&zK1Շn-N9@bqc3z1wEX[+ZDjZbY[~ՐP}die[~yK}>ަn kB( wYea,XptX>O:uivև 'M]_%f2ҥ,g]KZ׻òuﰴ ?v ;~`} OSJe1i'ΓXzWc_a+tiǠ[ַ..戧z6k^{%,ɌZ:YH 6&.y .;uCk"z >q'|9wk_b#pJkO{C1}.1l\}k5fm7kk F5A;kK^%d?pf)҈cЙL.,AF~YOħw3a;H@^\}xamk4j2cnd!gA5{$l\rEqK~\,4w(<&N}ܧ{isLreHHD5p_;Vy :XGj#Y1)ӜW lxLtd[QhʭTdiQє\mlfUB)Ha0I.8+b [hc2lʴ?1SE"MlM;*#CŒ?Z$iҲFf:+P  /՛<|*Xo"LǮ` &*ig%"n[LQReNK c,J3H(R 0).qf{xl!a%vv]$Wd\ Ht(ב[Q)}} :=WDvBq,ugI ^sТ>̩+jgLiB ֶdD@9R3kN$zWic!1Yy=׻nhulrÂhGxzC9i9a^N46*\$)uP+)O0,)ăOY۬}A'uߦ q`i5Wi҅{Y[Fw9i}h0vfQg]1J.-20Ji"^8*jGUX"oP IwPVi?TwFm@Jb+BHJJ:½3#(R`&SgYI"hUtY+5:ꢎ& F tY mގ<`\ B]U"/ IAV{;Ea]AE *iFTMqM"pZOlD7`€^ڛ%WRܑW+hY l;T;ײpoQLsb=,HqRǒWgqyn$/>]\m:M(%~ӳ Vnuzug2؎JdJ uRSLTFi|@24bU 6om_ yezSE":>+Զ o Mq(TZ:B9[3nQ!6`bL)Ɂ"SfR'1z.`j&t9A/OO<-Pր4A9B7-+,hЎgًVr}7oa_V|0AkGrs5NfS# ?zGK3:@DaBm$"!7(\]D}st wSOn! pE(|jYBi!6GHCogTmxB#JrR)oX5s :FӠU\%k9/ag'("KegA+ y|Xl q@~"&e2pXH vzUy'\"uT ^EZF˜D* f?wfa9?335\S7 lfg&a02]Ɲߠ,?x}'jok?FIIw<:m%xd4ATA`A_f(4Q9SF_P Sp晰4@V!sͱmTP.T 7xNK ~EjɦR б"\7!>54zAG(os(*.Y8/#nov ޾I%/x0j(yZ:+ ФH`VFѽdF$~+FW_I@1|j۱N #p1㣑LދUNEӶCfeք):Uʩq,u/L-6*5zG3(D'v uMvuCőDU[Њٗ-8/QS_[-f2ĈKU g>R2r̩QeXI}HhS:Zwv?/p D]h22~[~|wmH 7궴nKEgoY2:0yq;QBaNЌyrYŗ^S`q\ŎIFmuzF`?;re>*Qi[ilB2!-cs^c%*<]S2+e@ʉgS>^!]E[DbȔe x42Y"j)n͏Ett$/:=t<:̄J1`|W Sb(JqAH閁-~X:>U3)Ǥ⒁IFZtxx2|' Y#)cYhOQ# LjVBffu-J< Ye>_cP3'`dg]ǶCb`^$ϸ̲ [3 vޓMƻ1^n )**pㅘ[]"\uLD)쌡gdՂQ+ IL/a28`٩h^e~sPZͷjm d,>OtT;CJɬ]1ocukMVP u2 ݻ0= w fq.`%Ӯkzœ.,w2Flbl/zQbDuJ͆ h+f}qj*n5 hj#ZWǵ<8ALaW07@̧cv48&d0wi`+q-,˷w"æ cY< ?Q}= #ZD+OzCۃNb'ScKLA2.#R ꔢ7QU9B2el˭6ц3%HD*1b*|>>Z9&EHhPw'qr$^5]뇸"4fWr_stZ GIjOӝg&m߇-^̕cZE9XA:S{jgUBT -x2[XfJ(jͪn 7 e}"N"`Y6%j $ф>߇Vut.`ZbTr" |񈩯B.1_ԍ?J97 D*-wK(%6+6(ՆA;ϭHAh4LU/3 *~ GN2er]E=ZE2t;(`Kf q'߮@:UrO=ǷFg/Nl zzpo:ɯ!^5\d OL(ojou0g_"rW %5mmy\Il%΅=ɧ: 1vfL-m*m+2c`: &rbE~H '!H0@;CE(^[f ˥&IsZMH'CJ9?6$>ec\L0/ڮ^{!㏜zN5Vy4;]b"%6%2sgz۱E@^XQ~EE꬯Y%[K%Tg?i KۿqagAK2{{QgLޑ@. ɇ. L EVƺpObLTCeFa$`:pr! ]+t#ZS=ðcJ$yUM1q{/8(/w% j i6NGM"W&ʻ/[0F ?E-+C0Cdw(Q'3 &l|vtZ_|i2Vc/q>! І$1lq b JJ>'#_]6ClG ;=+N^mvQ1xyoNF:P4VN d)ѧm;Gq([AHwy6׎p/1hp d9pI 55r]P!&_EZRt a*8PJ"fk#(8_z_h>xuDABa A9g3EN*NӒv‰ӳRX25Us2NoG/_~E1 Z1#xr2*nRQ64#z`CGYfM$$ Ϸ)[G%s/"38:-0DxSiqٺ뽱jc-(K촁প~\bB!&&u#FWIzЁ}pXiXt*?oKa|Kftgu6(( (fPc> _Xx"IbC1c39G 8Nn(6tH5U "PZ+̗,<`Aì\+EKb5_kUhQg̓1~ͺYn${?&P@F"3-44rM Da gKz|nojfLi] 34'o~,s,X'ӄD-Jnj 8ÞN0Q^_ܳ v)@VYl$~4\e=O_7?>{0=6S_-ʷX%eH͆,\wӚy9NL؟~1y轍л a*b[Hǯ)S1"ՀLw!_* e[f} 1qIKM5nء$\%N}>st ̋ 7! e0/]ַ_d6tB;K.-:p)nIbZuCnjD<sqɍ^X ǹXi4 N:Ս6埢C );0ƽe9ztL$>wS3ݗ~ߢi d1E>jKDIw8/;spNĆjbb&̉|\c{뤠tF|m%UA$qsV *rҙZQGi1c嬨LeJ״.t-8cҿΊmP> RuD|D|}BklmbwH|QSz w 0M325\'K]j'f騎NTL 08`d1 bۚ0[>8#Ao1څ:i'õ獵] J_lr0o[>x޽8)9uw{3]U^⥭kxdQqpl蛬q]gV)HҎ CM)fӐew&3<}ݿͳo`*:ձZ%( a#Ys"[ Fm iRxh#E]UFz6WCߌwPyP^YeREk$Mxh*ݸ!2ǪZk1 )c7o6ěFuOiE cP|}9H_ S8wix^n7wO6lIk;"osR3.ې QZ3=#RĔFǐuH,t*BVD)څ6a>Q>G4┎"ꦥ0QTqHAy쌂9|k?]W(x9h:y3u?mm}h-G@`dG#G|o{4Zz5˸H%^fƜ޵C.US Gq*@Z9-F(y_&ȭy0SQ(2,%Q_NQ8^H齲^yrLuqVsϳqƤoX>\.14,̢= ШܩVJ _bk5Y%{t @UR_mrfH } 'mX*uH4[=:Zj=3EW1@uʧ%:ۇ;ﶷn2ucE̶ã7nGGӮ>Zvo۲3ucr{+^3v[s؆cղAnżsZ]82ԟQ:-oc*ow~ݳ{둯hf`i J_R5~/d?/,|l0Ja?5rZ.@=k>2>W-z%`Po\;\n>ll/ͽqƧ愻.A4'˵Bi3*SLgj}5G_bA!p|b|FbV[Y9n1sLOYnp'6Z[د[y{tQ^dLz 4P>vӖՏjwĪ>~^Qvx3 ~ZvD((]C0Х\Ltg'xtH{>%KL}ڼ 1o,-iKFqq3ۜBA#v"A=tY$:USlqlB:H%JF,:B 8*.W(FĄ,BM##:'\ "۽ g B4r.U ;q򨭃*Kјm34ZC$r^HO,4I%hA﬒ Inl2PaP DgfBTzQSvDƀgD qej)͜։RU ׍؁NfI %c'Ct&4aC_dݡH;>3.|HQȮ%gP_wI.n(Q.z]kHЈ_hqy2D#_ *{xc<+DΦ.,)~bnW$h"{BmJ|kgm}_~篿s=e/kg! (z!3)rIoqG+PgHq!*]\oy^VF፤jPݢW`%P1/ ' ˑCDD32Wb{iζ:2mE2>^]q/jܫr[}B cUT)'̮wۖj&êM.n?ZWhFy4atQMsŶhwSV :,A 1C_<[bsfi~s,о;0P~Eu69$U-JPhRp7ȅ8y_. 94TPe*Z#?HVCZ6ރ&!4'kvM2Ͷ鐊W⠥V2}ԣ_-y{8Ya4 QnNd)qk_&l(f@ '_\m~`0X+BU6}\BON&@>i3>Mk䞽޸!u`q 4AW($ew(ŢK2dݹq9ySQ&EXdL()6!}b ,KYH3TWV3=$|O3,ntΟ9S_^?IGIĬqr[ -k-"F1_tvu.v:'o￸Fuގ4Y༪f[M~ 12M7oyx_y:i'VX}Q}~ܗ Tyx}qmo?Ÿw~y,~mo/{ysfnq~\CmX6},ɚJ r\qT}T^aQRKPG&8Ť ad!`,~#4ѠQC4ęNYh0؍ ¸Gfq{3BG{\-~i%Fb0BjeyFPnq1 оH>̬=-e)Y{6nda=N{6&-vER,ۉ[P OlIMZV$okR@IKy3nP(B<Fk"%0W7@j*f5tװ?,a%2¡8 4ZDe$wiLUssZ!zT mZEԚrݱ{ёåEG}CBCߝ _8i,BfNHWheӃ QFϊ#Ks#bv%F| _Yd;zxװ?cY3m#(Fٳ+JwƂASM\ϋmM50)z\Ny0w&#IgKEQ~ "³F8\ŪW 7ݯ eUT닑x<ȳ qw0| eU4T(t WTPw{O +ן6POh{1F D4J}ƭ'3'{W/#B&83eT~YݵXs8/EcvwJjIDqT z?$ƭxmnn[A4$1#rs@eB#F,:ܮp++ƧN9vy]+UP]TDd0Rz LN5T fXAsm.unKbQ*oA C8lDa x##?/cˋL;ʶa(eJ,ac>8u ,qqӨÂSDuU?4tV> V Bѯ*c#Ʉ8?0@DNiEB>-k(s=$f{%M|[^Morc&x~qO)˃'in|nq8/ȻrCf3_A'iڈ9=$.9u, j^gr^&оcnW.&z% vMyꚶ/24W%W/i|2d~~ ?ݳ`o+xI  9BgdċFA `EϬa7An* BuoRW3KNhU:bYuuKt<8UX( #M|(`[(fM-y6WBlC(Q d7n8:<NG 4;(** rZdl +FCo)(Ysd&7P)pO1o3޼ۑ,#z{<{'[& pQlf@Q\!k+@ &dy+HWϦDI׊d_zgosPUȶD7MEf]\D{wiU[Ӈ#<(}ti5C\VG< u^ث%WJX%6}3>tcWܹ`>yhVzo3e'3u gldod4YvL<|2-l79~h E~Q]gOsDu`. +QW=oϪJYf0.ZhX,jYj`~q 6Ben~a6`W˖*X'N` [53)B3u>O&Uf5iE dV]N8:|QK 87}Me6uyᢀđphKIh˗'IbU«>aQT bԎR6̛=$Bބ1 X, D۳ B"OGhE*X./nKo??xq̽84xɠz:;cYR2hy)舅VR| As8Ԣ ]/sէ>~gBNGt#YjT89\J\,Dr[E+Zti>p\՝1/~/fZ`l-^ $Qޖ#Q4ܕEVqbaX[ݼ)D md`KL:G"fkqw!fgBgϔUh%s0F1hxq&o R3>ΕCaQowR_xVzYM6\K^/z?X1U"'iQz%w_^uN?تC:<\qەךs,ȫlp5Gp!~eTcZEѿY~xի`)8GrchJ1ׇrp&xx,Ӏgt DR1%aг9%QP) y񧳆 5VMuNO0?&T 'uяQm4Lk]csvGgquɮ`F>g^wXaumeM[(l0HV؎& >U иI;H&f[1UYy_k. 1k cT 'D@ÉaYh)_i>NKYU%j]HZծ -"E.:vLz5&<ʳ!Jȕ0IDźleVսliW+BL"Ccx=[ݴ&+ *O2 JJ7@%2UGBMENiռp ގ6J϶܆֏J% #wDA6|",%i^^U[5ͣh {XG6RgqsWWNe !01}DNgh4_'%q() ƻlll! +xu䀄@nd%)FLd1tw_Q-$7%nE57V]$-D1bIEM95R]ynMzh%= ((1zSN[vZX xɡYW[?ჽBGE^2ݓ>b2C9[iK^hi- ?tގ^P^Ih$K[N~/PWxbgȑ"([}$.ᄑ7K 9m(v8ӛx;ļMOTw~+iOh)ADTe)n3/i5>^ݥ&ب^ǁ}#I]z.#F~C̊6Cڂ#REi4WPa+3/m%*b#z^`菁C0:JЫiaWx#ŧ<(xIJ%!1^N:ƨ m,cHfN.R[Η)l*6_J=Nь[-d[튲O,_)q߱  6C]ˏ?E{tr~՚hm@0,;nm<4[[_DyQ[([;Jv+wZH/O_NWFMĜzTGT>]!nhM./w3{1u[bA$.o\qDH#MEeښlgS!Lx1`wJ/ޚ*c WɵtBZU!ݡեmcGͨ.䧗cƒloozk Mm-8VWBҾӮbs >`\lzD,u-xAZ,Kaʟ>Hg<;X^a1kB1>H + ! [ZhzP|']PE5=jd_,G_R9?,j3S|ppyy<и:Z!m;8}ڣ+9"}|~BÓo)<aZ9CMd1*S/.bd>_Q˓$~IFxow>}=iׯݽ(l@˿ilwTJe_}4{z~˛O˽WZlk L6)RA d\LAU`BҚ4-*Q_%NW3Ҧ|{%9%zb~9BN=#26$j*P@~^X%ch'T |. k)T !܈vs:3/1HM*4Qk}=Z~&!>znӯ\WXWdCj ʛWƕ02 o\QmBjt~Z_)XN:Ӫ|j˾5P%g. V!$ )6/}%#ۯ*M%<*=oK#;#oB C %RjvatT^6ʤz"ƬL, .仿o߇(@XqO&FHMŹX(uAOp ;MKz[R!dE& V4LT0-% knHÁyd[t楥~Zzk5 j bn&@^4@JK³ ':^8@A˘s щ% ^U[::䵿9,k\#QZ Ψ;ɠўwM/Vou1hHWWhq]Xg;Jdd|FL W"ł{EUy2$ bP ҩ1}:NȐ}71d1aY&V"UG9?(2/F;>e#GwènpfKqWܒpCQ،TAc7HRk4M~iV/uC'l"b>LlŔSNNMi))dGAVV ?L#J_+|#Vb8Ig,Kd&k É{,Wi,Be*Z.b(T n5ʉWu|oP%DkU:hV:PͰ_ۨRK3kP'UB X#4# |v\2~TY *i7+M]KD<w1*RJAq' cUB J-?SA5_R,z6 g÷,VXfmC'&ɮ:cE}~I_l.YGxl*)XG",-n4| KŖxkǧ?ckR4m[@X*YEm`ۢb& Xlf6omH<'/GTvA[ZT7 ]z –9Of1Te[ETP\w$ #6R?t#X{QuNS-7b%[ ٶǷ`b4~K+"gMO_ z3Ky "J=^< vTEوܥ&$;lkj]^gf>BZF~0G^5؉+Ά?_Wn+%PU1i~.X t-P^(29 ؤ GN|wd1J9v}Kh/̄XJe61:Z+N:}. 缳aU!THZNDC|AJT 6@58)bHh`G`!t☙N|ܪ4G*/t`K;2.PAIy? s~x`[awY̏Y\gm)w/Kξ1;˭n"e˦6 W Xȯ\B`KSr \,bVfS 2 /Ų}DB$:+rC.Ac ;REd,+f4N'7;7b2eZ6W|3qhqoS;2B%GyN{p%~Pĭc@~?Mm{u BzHK.!p[e,ѽ(iE( GЫfnqim1#L_ofvT}L`,5KI¸3pB2gJlыg۪j|Ӱg:ѭ@|0 d|sޝ'x|?9Pz.V+ XnG[̾~P&ź1*JS7,DJ2&Ƌ arId:XƣL6Q)݉~|CZap*ѡ7zO"yay^2;P:YP֝m?")CHjЅ֥4xB_Q/2| Pq!%[]"_}ţ :QyW?^_(G5O u'0] u'~|bKZQѣz.kyq󋺷0{V \v EZ@a  Q]mD;dY7 n[}ˡQ ,"bƶgBh=Ԕn#2QrT ˟S4Y].ysޟWI4 )5~"#N]4?U{ ۫.f4Vs}?(k2x804`vs؝ -K8prk9й^L;+#[ЍKzbJIk;#:e\D1tvC+yz6R&8L(j+ A[IG#$O(S6"ҏ, r <Dqn#:ףg,FiVp՟/| |"]$$ gS|Oa`|z=P[}_~ 0|hqq, $`r~itƶP~Y3w^Wj:Փja>3p9|"x&)BcAEdfóSm9pxQ!cwD+c~3o2y}<)m@GSչmVu$2<4;gZkÝ7Jށ'8aI#BRxVArPփb]>h8s2@s/]2 6{dY ?P Wr|E͉`)y@ff5/Eax|CiXD뇄b/=^_byk4KaVN(Te';A܌2/eeO$3=YvE#{P;> @A"U"NH0.Vq|B~/OtöW(Gck $Xd C0A ]!_p<尕9P{uk3~4 ~&Q3dP`6m%dU F6ؕV"F N\ ⛟2:N`[DŽP-I½̀#n{U4J)G?ljhk;=(]+(VĞۄ3"Vf1`ۇqPT# / 2qomD%Kt}eMB:m1a@'CWx|͌RkCzLJ&r" gu Ə /U- <\bog`.2ɖf{K }j IQ)-d,#%clhNۍ6\eZrgrϚt"e! Djjozk0 g؎cTaT[b:|e}tJ>9EQ N18J žQU˼u]7.`W:&7owB1e9M]O]QV*]4cV52M~@*4t9'lV3UQ <.o$a4{`u aHBSѬmp>Z8"Vv{cln 4Skp<\AI5zXAl$._Y2>n07r%/{=^qaOG`F2x㏪^~:u;a?ۣAGeu;'(K:&|2sL;xHP-Dpi|@Bv){/K_%8#;`zqrYy $ 0`M/uz)4R҆(iInҶ 5a 84Mن`9(?%7ˎY 4p\!g`>iTwm0p111@ϧl}QVS"jh4Kz/`U)-8"DK˖rut|Jv 6ZCȩ,#}]|#`NB- qpK^n(+w͛:2y:~K\sh^ %$Kw^*[_Jaӆ:RdDbGHEolNA WB7t!:ZrB,Πmŝ;ܝr-"rir`)z@HQI{6Z\Da?*,jAյq%!;6E硎gg/ONc~I{e7BZGx(e\\dnoTǧs&aQELX ښB϶Dt߼u)@2ha8c jP+ U=G]>2OVi]K{Ͷ\bc1OIg -Q7 qZu#%IĂS^J[ +ށc@CHe{bSx3*cY2w4eM;NJtۂH|3Gxg91W< oؙ7):*)M\5l7y O5Fqk+q"h3W~aFdt^MhR4 CW}?Je.Lр No]YSJ?R.qoOeC_.݃ET z??ՌzgLDK%tiU: zʪ8n)zkKQ$3@w~kONe|87V  dr6yJt6S,`>+9O:_ @wE Ė+TSE*B;( zπ,i~k'of_b x*nCˤ@wɽKeqE'^u΂xWg; 39yn>~ӧQyt.]vǣ~J0f?+R`s6~3օEQ#2 㤸wrVpiK/<;cl4,Ivۋ؀bjc~t,'!}Qέ @}0\LLe, 9J=Arˋ-μ3TY"@aފ¶QDfP HqF)"Rn7"G߬tZxѮ^(;(? ،nKy=F:Ǵ*2jlj`[";&&n\[;Ȇǽ,e* ),VR. 9resDW{fu>CD\>3GiᢓɈQ6N{zF xu'b3aiPIzMzYXcivSO1[ 94 R]%`zۊ#S%5ASMk f"J`R5`S5e;'dud_ٽ_OCF{I6rÊWV"_MpR.F%f/h]O.:NiﺓXٳPT"fјaS x%YTClVSzr&90- †8E t4R7~3-*2ZUqѓ}w3v&TOܪK)6Tsc 7Vy//0pJ+۴ojO:$)Pz"ƞbbzK_`28wwtsJ>jIER6aꛩ(E`=wf34c5=Y| 9wiAW"B~7L Ub89(D :͖o,"uΥ>U͈cbx;rRHgr"xqKC;q0/{ZȉEPuu ;gHpn.+$؋7 lǻT9T Hߊ视(4>˥&46@n9.Yq(N^b/ʹȏ mRRxxd =c i1k(O* 7tCd?ЩSX}'L^:!Yt{Mܰ14DΊ0;K 2f ] ; 2&~8,j#BOYi@2``HP2:ca׌*ĶOY0T_.rv4~=IUU!JԳJi19븰gdV(o䊡F~4-1vI663ɐqedIe4UIl/#mKnkH(>̫Fno<omƂvd̾f~DvtE_SE 8R,=ތ&&$7R[mRwsLϦ&S*TLDm)Jū/ wɉ٪XYLd=ǦA CztyoB&~I*~6=?FwFFA4꫖TxͲwch 7$d5/Ɯe>tg]kp1W?ڢQoȳ[wN11U/n%ci 6V mK@k`  pS2P`&駾K-/Ie_ErFx(}KTa1x"Ǎ8kiL bC> ; Hrlo/h"aDqnq׶jR^`yZ0ԚM=$NJ̻^K.ALEMU1: ̰E<uוI*2_=NM'܈2Zܤ%OԸ*jgRw(*C2xoy}%ץk%Dfl]1GS R+ _chhRL.V00l:omV l@o&ƘkwvxXtkvXUTO;ѿ;mŵȩcᙋ48in ?C+UUQ^ӥ:yěʻ hs1 .u *?áڂq؈jULYx6Ԇ15^{d׀RLyΠR8o;^S6ʘ_{q~x,;a =8)M,\ˆ 'mP+:@=3LzB%oH̨FE;zv3_s/ޕ{l"Bk-OmkglH=$uʏ5gy&M5di5VqcBsc:=ތQuɦmʛ/s@.ll}L1&B$7#%"JX"C+}lCzL26ww"{Vum݇#@L9)Ki/qÄpiPu ;- P .yPhs@X> :]G mVIsF-ٮ H~ b6#L;d}ݹ`2sD^IK9ܚXk)*b,a鵹) v{mle2$5Z}Zmh7-x썦SXUqQol jFJՕ~wso1aّA4XY4o W/KUJ3^I)ri{rJNA9/3n@+A9)^pމO^(( sE[;uitr cV"K_^;6I.٥9[x EAv {}+?rfˁE蘆`p^~skcc0G' u*H`n!x޶5/7n#8:sREEao3 Mb [SL Fw8XOƻ`qs:#(8bAzL=X*@eM]),Ȕ_~駼}KlnAZ0Ebc^7HOx>jkeoX>ވ2v Yn{VBЇ߶:k6ŋG4֠:i rmMMBk_޶vk(a4:Ի'/Ƴ#D)BȝHl'nro4 <ư^,nNB'k뙟ģ䦅&]V 3";*9/O5V+IbTԨV9j}lxLq'Q}Ts *(mOx8)bu؉uJ_ŗ_}f_m O?i1xwkEտtİ~:a d}-M#T~n*`6!PS#]kᴌuVs+F(!jjz v2c`'bIQf]6nP_n!pgj{Ww(6ZpD8̶$jBXˌ;Xcݝ;7&e-*ۖmNY4&SkqП]._r2,yR[dU.E="+mZY)y <4XsCKR+ཐF; 0럠++:4ZfvD6e"p"Wg}gwR^ʸɪWn1Iީ7?amF_e 6 >ؕ٣|I35k6蔚Fb]V9 'ERyfjBw<ɺGqB? /fERxZFeѳgzVZv ]ɛ*I,mO 9Э+NB g cUc B1 D^$ _UCS-[ѵL#[_G>}?p2k?/>{,/_yeU?/̨˓|wo.T-cL튌H3j$GEU`3ܾ#ݡ?z*Nn,?4HD LO  )L2|0Iq2uc4N䘝Oias,0l)-6# }Ӵڿ27ÛǛX1l9'-.7fn*"Wɤѻ@ u3#2]Գ}vk^ &eUn>l}4bBاK L7ٰOJpSNRxT<#nkq)nXA=ԅQxW)59͑gւ􆱒&i)3$ayQzTIp-L<nǩiӅQY.(跷k"34/cTҞt"%NgA[=iFFsl#2!u>%wb#Yҫo%o-6+f N" N v T2k*6}?ض쌚W\BԆjUA \Bh"^dz/ PnL@z02)D^=SQumkǑ2 xlgd}K7/}n801og;4ߺ`ACqcB Ts bOdLG8JV9εwff;HZ4t8D (h1{;r8xkwG2Qd1(B:i8_ مk~66 W+SldeǤ- ioDiVW]|Y Ex_VWrU,=MɄV{8Sp\D( ]Ts ,0ŅN- ]ˍxDfx`}%|+Yv*ZJOXޫD'4St D7 dhdGX}?.#(rB@矢a!SG'IR+%}*?xfq]z}k\D3jݻ1S)DQNg̅jht@^ {b:XÆ'03! ϛ 9M6Ќزe%hm2\fSzSM}/4 Z( f@0lF6+V&lеsTp.}vـ EkdưPE:cnu$.St&Q9̈ҵJ_vl()rd݉=oj7[#Xx'Z{T!@ubXH@L&%s8j+10e~1$1ZEf;/tAmzW6ɩx4n1#YZ<ӵX“]t6 i@CcDK'pR@Pqitd<8ٺsJtt Ý 7ZqJosX\ųZ]W0 U@,S$_qe,CPzt}k! AX=z YeV 2u ݂Ji Z$ucSF0T]7pW㤴ig41X-J巷#? 1%h ڨT%1n]k|cOZYCv'1uގ,O.`B"yr>LZ4_x'\tJi )A!4>袯z*Fܑ|KZ[[n!p´d?t0rV]V8hiaQLE>'-؀,%uƬA].G`ʡ}Km[:E!Jg:s5'$mU 5SZ+.T14,Ø(9lqmiӎ\wX akihI3\WY3GG]V/H7,S! )hΕMW `$n%WY1ĕTaYX%aӤ~eHBII@9504DO:cKhzvpRo7?Ň5:sxHo]!aZ}JQlύdLJ`qF *2TZ\b]XT~T$d*RR}aK'9EkO%67 bYp;Nbe/ 딖(msۡov&>F> y20,94iU_/TK ӌ ¾/o߸WAiIŢl[U[ߺ%WFr!hW(`;?!L.ЕWS eZ@:GE3PV$ E mzf?*[ý+K'뇺zY2C gnԈx#H#`F؀Uu mSmEp4pvguslD;˩59D#`{ߝlHR;~3{J3GQ)l0,LՅ AL8>2:aA;F ywБ4D0N ;'볷VCX?e-L35nW:} 0ch-uI5xMw!+􇾩9DLfv9x]ގ<JWaա$&)I~A1l@Ro1iA Djڈ ݚ|;sL3PGWt ww7`7qߔwf>o-%טG^>cj׵p-%=5aeZk>]XIXp$QBc}6&]7u&ROF+3Jcv ~{d cG`y"Q0T:"%a@AIFZh/V'ż8+QoqMmeOȪti >T񽷷C1JD5AOn`(+2Gd5g?t󃧝w_IuDJvh?C079>h=iI#BAa:RщO7Kb^ϿtQ=o#O5sw$ʪ:1Q^5)ݳy<̷{UV)l#pT 1q6fEm2uV\Kz3R]sw@d;NH{738X- x 9iBl`8Y$e`P{F9SҌUGI]lW꠫=sTaJۮQ|K'iY6TNS kv!sNA`-_!]R)B:gԭ][u;HxS693%o_9`:RS4Hbo(B1Єݳ).Ef)O.;$K 3E]faN]睅p&bޮc=CSz6qimcI.q*=(=ٯO\D`we~r>UǺ⇈)r mGm _ x*0[n7$s^qHSQf쵥.3g0<1`lx;G[n/l]u^jok+J kIkVԃ-xrUmF5>6fhs-A9-;t{Y :ɔ`# E%'R)zJs§J88D9|On<#W]mQ>':w?/xGgǏftWDx›AȻdhT bOo߃=ړB;sZoL'^Z = 9f,)9@?o*QO(ӽ1.pJv*~ٶ7F먬PEwď} cแA9ZC?K5z3?JX=M@%*ǥ^>8ҹkldp^zeK}IgG\u1te/$Աi85w|8p^:Iœ/С-Qy~`/Hd#qe]c ӧ#/sP ]Fj=/\L<'S N%ÝIçYTAQs-z@\$Hv`ҷ"(7#*Y^瞭Y;FY#qEfu zrjf-,t|U_1F/U9gC9U87eH ^̲FBڧ R.&gPN~OPht\p(XKk;[Ga !1ap&SW[9=ܩk*!x<%o%:RZ$9$lc%#Nou8J!K1wg$iNv\_G;bSnPK"e='<(4Xpeoo`u_r=wt>OVC8K;=r`pDZpUc{Qٌݿ!;2$m^7Y>,ؑK_ B: _ 57r5DFx@ptptd`_2 VZ3C:0cxT H3iA #36s/JdO}LH]t5+; N YOXI`cb7Aj+. !y\@5CAmUxy6&̞Ccœ7:wy5o{ l3Iڦf;U9Ѭgj+GVajbxPC~ yRs7s c"wA6m9*gZنMHn 䦂.s ǻv0&d,+ 0S{`')Gip0!.PJO-zX3,ԗH=+/.}VP8iRo*h;tLl3`=Њcc(ќawoku;!ۇ[ۇ_/c7/bz0bJ(ak~5s->h_'[y<ְSVhZNd ;6f`CDNt^?CӲO2 ]T彧Eydp_y%歰;[{ºY%BUImRE14DKOJO4[[v~\7xF WJ}?H' ?|oE=F#eOϞݖS^n ׅ{n<ﬓB$d%*ƬgF_W AĢ(*k4o]w~I183usw_7ka[=qJfmYz"f pAHz^F~q*Ե?r|5jN 5TPIA7|+1?p(j5mDvxDUXk%x<-ĕX 3/fM-.^1%MC}u;6FSU,_ƣzʏ[ҿWt㦞6_=}EV̙ʇQw;MML&NF?tZBn!:Rч\@^&nvYޗrfՅ~:Ymve$ltXVQ E"pz[%I=[9v=J`珶tj<TG C˛$0ACph_Ɍ޻){vB7I{8{)xb8]]mVZ.tpcU,%s`&* 3=dtF3Xz9Y\X7B =QaOְ uidR@Lע nqsY4{lYCp \⌭z00VG?.1 l13!C׼5)Lt@oqୌzPKPXMZHupkg_resources/_vendor/six.py=s۶)1Ks;Ul=4y8 Y)%Hzo@x2.bp8a\U;>gXGfk9fn䳷p0xNdwYވ~{GxSGW}M Dd<-K(RYbMe1Te xA\rW٣r"(2? 27WAm5gÅ!vTZC*cG>tqlU8¹v c`01$3- !x !jq!Aa= 6S7*O#?a"0D~n]$=3X}] CJrP5٭*EDz!K*֖L|Ǜ/z~lzƆcev vM.`]t`Ws 6>M!wvyzlv+W7|v17WT"6.t~ c qvst?^ل]O79Oeeдb&_ut(yd_>M1ӛ%6f1u~S -c6( l& p `^N%zoӟӂ$;N΁eC5=RPYYYra54N! G#/P,M%#et8i-m`8n8NذaOKKBώӻ堣!<$S 0[Pq7)x=Ttq{p1lM2V׷CX-YoDb~Mt7KǔiQiY`Sl([ReV.J .&/f;Un'x(x+WKWpΜܱ0F-}_D`wkQI&~(|YcSY1Ly-#lCjԗRE^G_H}*;sG/BsG2*ôiD%#Rm9y@ě ʘ$"R,=f ՊTcJpjzW %ۣnc"d9z8%5Vm9p\d֎N-J*f~6l%_ uxĪw'iaУdTQՃGGd$ShKb e[3@OӀc muc Հƛ|F/탱5IGqPmet n A0MkЂj6CV{VnP%:;MYa:T@ۡ1mi .ug@@Z7ŚlDvŕ;lIbY/ ])o_U@؅GX$gz.qa+L/PR"Mpou ZhԠ0Qb4#?6t0n͡1,C$ |4}LVZw6ƅ#h0Z! ڜCWSYk{cҦeYmUwup3؆ Vu.ueTl iDHe%3npV-}N8"\himdxf#+^4e0_@zܢAau$ 9aMkNrÔcjR9p׻wzz@NKYr}մFQ$r8W{`14 )nߊ{LmAf@V-ůɠjwkPJM^y#S/˧e~Fw| EX I9`9Tkwd֩~7u?]b'<= `M :SJO4|0䴭*Q󞨒?\@`ǨPMp.c6jfҤvX*|-mh%xC2ݎlSDl|n.~ljw|::.z Fbe Lr}tS &p4Bx!5dс <#.fPz Fc Dʾtsq~]=|@ JeI&߸Al79 TB$(߾]L/n;FqA|.YM%BxW%C~^Av[3Cd_gUF. =8myxׁw/91Om<'6'K|lw3QNE70,FBdΊ'Uf>tS&R| ڮUz ^I=iW#pX=>, YIjefoGލz8[DZ)_f9G}Uҿhv"%]őRƏœ"wAuÅ2Vs!6Pͪkwv_n< He3'v]Pr#qKRCh2MXoYiY%cfnM& 5ADEm|~}ZNtP9}5gAǏ6`ub߿v. P 5**\rr;g ꞑ>-a髺_PV7#mnd d;c(UwpZFn"{ >'T Iu+uѠ/*Ռ G&eS (r!w^mƳAwȋ58vs}|v8d/dOgD(q%5u{?UI\<7T!Zm k~>*I)@ܬb敉q 0j86j~|R!ga A覼ʹa爺Τv:N"-m9bO| :srZ;g\@ٌ+ʌKYϸӪ|/Gr()o`bOZG}A]o[AzKzsV)KVEKoPzr0O"fUuWe'8sFWEz: |t&_B},q1mP՞xz'<'f9I\9F.a/j"DՍGq4fGn|P͐)z.>Sٻ|O&eȺk5fax Q*V3iQȩ:t9Ԃ̩DVCTUүWj-nz"4d6U/s~+Z5@Z&c]:d1jx0tuvcDgh2|2YH)*QK| DS̗;BT.n@T!7M6(Ǯ&T2:`q.„1k T_B/M 12X:Ƀ熡dcOxmVF[ ;!8/ZNohY# 9Ct|SO+RywtKe4P=;Qn.(saiaMb&^(aD(7CUnԺa Qoj KA F/BG%U}PA]+'m cTeVONM.Ӵ1cg2*e^T񄶺c BPFEPqw 52ƐD ]aZLVǔ j8@5v*6 Fo}& 0((n|F!cH60n| e?eN j8 th@FtrFbݝBH>y^HlG!gu6zcR Naa82+| e,,j6_tӭW M:Tv"NMcGttX'nSϣU~SE-OR5BoE[ފAOoO:*H枌D11 ^Џ5pdZhr `(Z]ٍ|DAM8AP M.RMmKTBX(Na&ͦn.r=Oz.t%\[ {c(szk}SIL ,A]ʓFFسijQ+%NTz5s# bKPzʩSǭ<3 P`.<7ʇZbVwֲ8![*h-՘hkp;jdr2^hV/{djmEA -uUgVuGei/Pi^XغTddBr@Jp5AŜ 9Z8$ ڐȪcW2{pe]I?q1=3HLrڬDMic-[8xt,F Xvp8ٲmH"`ʖF lP3OpK[ 愱%S@3.ãcr6#+M]TŐM)m1Yh$) '^%E "vdp¥r.A 5g8I әY;~>Qh\1 |nt #1"Wo"rN7Z{@uˉ-GNh9T" j^}eH94s֨Jy7Ys(|FMaL0[ܽ7f yDF}khXhxހ`þ~%I$J ( JX-*ڄJ('`GЫEsZ 0S*,`cD[U#5>Ι؜FfN0yO 5($5W=F3Zޡ$t\A7$PE;Kc&S.Il2\_OdzyY/䉏'jA|}6. J1 tiU/`m~Z n5B* o2Btdft7C5re\V ʘ:˺$t#6{rx>wQ}n{b`)Z}hC ":U'RyC$01u!7_Q' ΩLRJ~b瀏cy1'ESMy74ښte7's4fh[-7jϽXnKU}#M ip堤8q1V0x,ԑPU}-B.An 4z`.=b%>x3ci}#)_ #T W^+Qa \&mȏ#9zw }UYwbh % s(~CSpCT[NH.|D쳙c(AuqIІi;vZ1Bm+ʄ!LR$ E' E@[pǕ #UёtSMpQ<_zzynDwE>沨7ֿ๹Zё+-kdwt;t,z~'Eo@ʎ8aY.}T%;ʳuT\"5.6W_*Eau.5>dm tUfח`Ys Dne.=w yœsf!!tԈd/jdGJD9E犗_|O(jafp!޳I$2P%uf[4X^A,K'i(#H+ rJzkcK zEu~1?M,h7 bPS'WkI-gZEeRGɠQm{Q_rx&q:c6;kP˥-{ ",>F$c~ ,JM ߸ mRd*.,PKP<)XƉ,pkg_resources/_vendor/packaging/__about__.pyuRMk0 WL[R_,L,Ɠ(elsiq'= ^F 0AHgCڀ=Dۣ5> KqiaXϿ~ֆ<, 9CǓ3(=&jߗY73Dn׫߬͞cmHXW' {(dHCqϜ[X82飈 w#m2pfw' I2ꦽ-m|dM{ 巒͞%؊CLt_μ~kK+rF^4(6kfU.-7k]s!x{PKPiJ\*pkg_resources/_vendor/packaging/_compat.pyuRMk1W !vKp.CPR(l-6Ҭӥw$9&).f{@nBζu0") B_>Fl庫0 _(&Z¦Ԁ+gL{bp}q{ -U[24d9Y :b.5acHƀ>71٣͉i,rNTiNJO_7X 1w`#T݂(=e@Nb d-SCQ2-؎0o\w0's2 ej>1zEWdr"W=r^ƿүj{rE>kxz2fպ 7˔VIUE?Oy>p lBjPKPs.pkg_resources/_vendor/packaging/_structures.pyݓ=o0wSDQձR~R(K26H5tP/ƾ{/3A&Z(P2A0Zh B[:0YxDe;Z'f3":mӞׯ}N kvsxÁݳPW+X'ؽ )+" \2kJ<9Ȳ2@lQ5!r'aTVjNXsЙԒ~`BcG/X*8 P 7=zs&4Exx *:`;߄rx~N!]ڑ mFMzy/DIU%>ll}O!1xG+XGHa?4$FcH#''4w6!PKP0 8 *pkg_resources/_vendor/packaging/markers.pyn8_PF]zM65 Ai[,jH*i6~ËDJr!s%/%%iEN+A76DR~mˢr9`1\$?%'1ɪ{{w +J凫aX5ΘԴANk& =2NrvK*)PH&[$Ml8MSRj%n+ISMq[`1yQI@rN )πU.S]f컸ͷK99 rt%TK*R dReYS72?&JggT(x ZTTQӼ ʮ䴺bӮL&4oNVyϔ1 ݼC޼mYuhk:)h 2xlsƣwQ*HrPLep;bXYSnwx_X^_N~MZ:NX{*II52"=p>FE5jju|BTc jPӱ~)pD&d(*1 64d7h.)U!4ZS#j՟M`:(BԨЃ;r  ^?<?ћ IM)M*i Oh4[6yl/cVUBNan6"uɘ6Qvzyyuz!}½uV{{ԡO/._^ݕ+`*Ca9!i%[׋?05XLyomL#yCcޞ)}@f,_ˮ:|` W3۫2r.d }v\~BA`eɥ[_)sVsTUQ0lW$^,~M\z ;4ȴrkD9PX{S,ʡ@ 0B'̪=&("R-T!ֵX)耆7?14n\Ga)V4,^`ˡ,P:Qn)ԳA'*I|M*@%!idb)m "~U '_W9sdUP9.jCNTtm `6 mzDF0/ k$VÉ=pZ(SVf5"9۳R*޺憸;8ū9q;OTQU@[^gl5S$H> V! p% km4,-!*ׁ6h .3bbd;bO~‚3)u_eҮνej2,+ [޵*p|1B;JdV+%w`v vM`PW0ZC,:~439(q|dL0" ~m] 1HVR])i{J=*J(M5-94P}8BBUgoN6n@t1Q e=3ɇ+Vk%%똁@@%L,9t!vX=]kMR=it+Iۉu561|`m1k )uq;#s[0j(LQ>qx'ڷhkF=܌3uR5~L_oPZ:+jߑ R2Ţ*gItСtӇhq?1eTTSc;9R sQa…VJzKKc Q$+竹JFۊ ޑw t8*}&2é{pi?v [<̃ rh8†b;#ͰL!9zЂfcT8v:4S8pv&8{،g$G΁7KfqNtLJ:(ndkHX~^;qFazlȳySw|&KakYu53+1 A#~R9~V뒑r믘(69U TiZ',y~]K?7&#P_)z]gfa+#_'l5aNՉsyA, 0Zˌ967Rh+jv2lAE!:e&XgKS`09~~Fw.W ŏڪTLQ /ԍ#5g9"q>X7sf"4I4-'ԏcPKP|/pkg_resources/_vendor/packaging/requirements.pyW듛6_rƄvҙH__\}$X"ܣI$& r7@,'isg+BIQESQyCPIV V+xL4^.2F#!LS<>ox|6'Q8Z!U{RcLd%fضIIPJJ·֜mQ$IP-/,J赇6y-AJiUK7͊KC6 'U|EOy7uKUzCg| /Hx"R*!q|0plȽFl{Q3 ᘱ@eEvo-lT<ϳF 꽎dD7 WaoV3ufNfC}1)-ZX48҈|2NkW$qwh!ٶSp-?֬GW iaU.y2Z `+]Lѩ:G*HR SHR5yW&}i".׊:ī.qpIΞAr|: 4Rp:'ZiFr^;-˞&@wAA vĔǮ?Ukv ݘ&[P6-&5@~J6WTe5Uی=]|L8H%V-!a*]9l /h3"ِ]&7ޟ`7^,aw(e\sP J*<唚 $0vp̀0ݑ\UrVg l* SOGg}R _=*K}噎KJ0f4+$_{eH0R`dtAuzZiؽVL4\ =>ʼz$rC_=8_{_?gJ |*EkKjƂgʲ4}jf_yqj#Xq/>_c uePQjwO=YU^pik/wiMw=s]1d#X]Bdt&5DGWn-G{ % W{P/jeJ)S&w jFDU6,3} WRg!||9v5L3nD$u 5Qz`eCKug ml$t$K p>v\T8)zLnU>?w*눀PKP|Eym-pkg_resources/_vendor/packaging/specifiers.py=ks7+V9ٷ_gqrN*N%u%+ZppCQn{Y~z(M]WA`@?_d8Qu,8Y+!Qj]`U͛o?8u %Q fϿx0Ne֌ehj5eQL^z㋋ťAO?JXRO@cdZ*Y6WqC JRcu*= Ҳp #oCh,Z7`z$U߉8Z pnYHn%H" Pt4{c]kl櫺Z:aZ*J}>@z?,`b(j*w%hN'+C'UՋX3`dc' 3/-{c>۪K)/\ $ h l5xPLnp-ro\WHD}*8)e* V*iYÅcrb8l0]/NK4h[/P"gLXe8F&N,E- )Z \CXWHjvO-r%rpRG0:h9pMu^ vQv5kˆ>L@Uh0Md\5 oǖ izApGdG^WX.J0'rXLR}jҦ%,3@GxAl}qb _$X =w1Y %QJ`aOFH nQfrHoǞ?:ťP7't/.H3UsLV0!>5$%䉞i;is8`Ir:4Mc[ ^ q E^i-Y:q*Yg¨WoJ;a2}DolQ8)ܹe葥Kg}0dwx b_hi=@' EjBy+C`s%"OR0<#J!`oZ2p݅ 8x N&q 9Bdm^a7hyBϔӔP;\b ~,u0`E53\/=mKs8q]j/Puր n`fl`g`qC>$Sm4@ۚm.>S g-6q>t:I^ˏA- vU׸) Z5 6a mȍIғMnbvڏ\XWs>qrttuLͺzHUN5I[91Uv%׺z@ #h鈪$8@0|v:ϐs ٨Dȧ6`TVu ;79zZ5T[,#.TAFΝ9ly^HZ)Eo{0FG `կ. miǾZӍ͸$iI[9d5;6 ~%/d 690xx!Ō8U8% ]Ui#$5Am[ 0 ECpkLU'=^y} ^'g?a8Y:ɠ ȶI;g:lVuָ}6F10gvK$pZ H2UEU˥0hq/WU[1gf l ~b\-2}jug5|r P&NG;]s,B 8t"GcS.^@ °evON ia]k2cDgPu/g \(`,\h*K4-2H,8MTz׊_ ?y4zvG7>SZG z(1[>4Ӌy[)nm݊b/]rҥ(J|*t|j(v$ -}[#KwLTbkC.WqO߻9B5^tJ-[+W+<%"7&湙 ϴC*r&dPrOFGs}>}DJOmFܠJ䋇,}f/3րodI 4Rr鲸^W*I!`i'6J4`IDZ=NCw 龿N[CK"Q)E?6y%oU3ʞ@E=u!J0Xe~FbI NRQ~z.̑TZ{r6uM`7YU>&LpZPNy- ckPy_&i%آM-/HӍ#$s|:#.b2ɯE,ӼtgO&N&=<+y<}j'x<Ξip$((0܄bJ *D)ZCm@& ;$I[lg~0S8i.cj}Ĝ+i 6NҺZ4V=u)SaRڸtDęՖDlҿWy音,rď46`6 Ob9MrFԍpL3 '0j|v[Ztts_f̩@\P4,_ƌ}=tN #9Pߌ]E*u?X؃uP+IHcOyrV8Y#%u:TK<.C`\$h1o,6镮"F%<)IsR\ɚ &7è8&%xnӄdGcNGX96Z_;H4~ΐƈpϟ&c9C*45_Ѩ3e<\&I-X[rq D)(쾆=[*.ط}ἿA&HϤA$p]쟎:R4a9g%f^>kЊ\ :-%8ӛF^C1qk+3>cb".qǣ:[CLpbk( U؇M:t&unWp9 =LNXrIOp=y_}+|eĠÛ"}v=^S@d!+%ZSqpGC,T2O1r^1"L44鴑YHހqM%:BxOH9 _;n;HiN8Yr2f򞙡K֔%U9Ma9wcYbƹZ*mDLi?g$n%:X̡J^:%=AʕE\cr lP1rF^,=@9@*ZN^%<8-O豾NABvr2ֹig`wD~';.,ڣO{{šwOvw!њ._c/ES 'xd xXP}2X)g{x?)tD^N6rC~t`KǺH7ܻ!FE<:C+Uô=fg;>i29(r#cJ)-3)pqw1,&5ymulŮ7HJۢ$,˨+IBq1VD GBYp֎dVE3B^UEcO4Qs1v1J CwP0-e| !adHz(8=aQ{a8}uv|>zqދ$=.c9-ݝ2l^ S63B 0i)ytQ6y.jF wCql1[yr.ޖ 쿓MBQO1"ma*IdvHj9g5[&X󌜾2~cdpv=oAsҫl!!}uK?u6qmϹ>foת={OP<JQzG,,Q@=1²QpEMAކa+ jx{a-4KX岮~›Ro啸6|mj=jx :Ow..T$`.AT'/8)3^y#8_1jlNT(L34.{eoUBJy=>Y#[ȣNPhG9"~ňZ >6I [^Hc"*@k#dbn'@(tw`0 8Tӯ-v=A4B_'Ѥ &_; +ԘN] p}m{Vj;#)Um͈:c>GA~?,bC{ɲoPTg zvw5LZϕ-g"6fHe]O 骬6+1p6/Ѯ^^k iSHt-%V6;^]dTFШ;k0T=Tvզt9jJLHVF8] CtD]'GKwKS5N<3}Yq)/zz>?b%jC,HllyCaL: %+&N?ÿR+]ڡ K}JłxF/cLEUuy ~4SfH]XE헉XVKSv/# s<֍=9 ij8.k2x Djf` >eoT0>xjgH1.󓜌sʚ'2 uCz,͕+y3YL9?2ZU t᝸^oPKPơa $-*pkg_resources/_vendor/packaging/version.pyZms6_7Y9ݵ8i:ɸ8~}*EB2k`A/@m&KboX~I0$[2GEiyfIÈ0frElelI )5k$΃ z xcf ࿧4ƾg7JBY1*@E,<_ 5 z0;&lR)12lYżbGo03o,tQ>Vz+Ecw,mzj fgC/Jw,FUaoIJ3Q]eNnUNzn[1y|2dX|4A&>lk;k$?̣k9d4EY/V9v?/{l?i_vE/::XJ{ $|梪"ióEDt,dQtЕ,Q+W Ye#썕nzbUnČdI(`N77= Y _?/"4uH}UY\N a [;Ç NT!7˪ ={n8es+p o$%Aˈd"&<_kMn=ty7{5tb$l߰m`4j@\wF Uc [.飃^T 8{c1q9D nRiG|X $Nf>MMEurկ,)1ΰD:oN Eѳ&r[i~GJK{lkj* #anRJt'"gC`Gsv[7RG&ͱC<Ѓ5CuhG.k໦|mk5gϠl-UѥJLD iL5a5#?!_s' 8U42ЏFi=EO`G O%qSUJwv8lI`GlL>Fytn{l&}l3VMWi=GBFXcXȍ}m_>(~SY*ޙTsGf_N`fp7_ݩz[I~)0[A`kK9`j=߿Q(V%YzVn=I޶G=Y RN^ v۲mKb͆nvԦ۵ Fb?<_˾~׶r]s'6Ak |37:svTK*Y&~AB-Lg/Ufo5w ZqW[̸ya/H (ZTԞ~vH?y1DPϳ$U}L $M5g~`!*Vr1 T2#fjZ1HJ܂]n+ ӰÐZj2Lj-g>ҡEZ5q ܟH]Af}pN[ zt~Se\Sc9EN4/; IzA2}6agf0iSrCs-RؾCש2gzm?TJly A_t`c? PURK_UCfLë͋io4/.p;-E$bKm `bDyOC lVD_CaS_x3C#J@AOgB[11})7FYy2ɲ%N3͠0JE؁k:.-t,L#vR^hɓ1DGcet=l%cQayQFqG|RlY{7Xg怱ˆr- dtePf E:JMj7QXP0+augҥ3FGfpp\; #Z+Z52'\L*06~?͎pS14 HC6@FcHu$:;$QӢIrr4%Z 9M".U5OTc!6h=orxUBBM ov.AR;x 6!"a = q4pAn`Ga51scPq$ni7y+r_|0?έCXT17t=ٰ"4!Eʽ,]Wx]IVYIP.%8|X%ВŧR=U@<.ݫCD1ߏ\zqиvKX^WU "RPKPs ssetuptools/__init__.pyYm_ᒼ*t4haCpN64( ǠWRem{勤Dkeʦ}~c.Z94+T۩\٭wZDGH*kR~fVxܨrx Qv VR`/9#HɃs?ok%!fΡZoOdix[栎Uժy%2d^˪VGug}Եl :C^hD=@S<+ù%nl6V jJ 6<0`8f=m>ۊNy$)ŭЈ\ |i{$ ( \*@VY$T8*\C'\6PʙWHJ]u\a׌v͠븺p .S]xoWޱ~=:l#z ?jZ5=lT0)a}%kxg^kt@*Rwe?v)EJAэ VF) j(6N6B7{tmEĻ&(z7V0BhTfVcd_vJyжswOJ`"֩Jo폕JB(< wGgNSx*ˊy^ޥ3Ӽ78 T+MI 8Q[Պ&̎ ${TB{ˤLvcG"Fdn/ēRXJwr]"$dxu-(&ԄH{!$$-"K@8\RkAMM0sYA9AfjiȋGbủl$e7@u8Rg\eY{%r"|Y!WIO S FJ82ٿ>b&ᓙ['bHEhqfh9519nſΪx Cz'7[0Q֠ެ#ZGαL}Ⓓmr"o %GLܚmAr?zH϶[Khi'4/̽F(*Cg->+{3wF-fC>32kxg7<-Vky. [ᜡTzID,ŏ &1KV+ÌnyX# JwɔU UO=Uq"rS´'%E.Ul&\eer!I#JT ]0w#Ͻ:Z42X.kjOTW;t잮83L)bh?P5]=QORij4v-]pld !l20q8 f %UA>2m8nyK{R:.E豍DM'MhϪ="^%9C';g0WahWaF2ɇb koض=)MC4]]>`йOZ34@~q /8v 1uwDD r>_8%|\,7[EMi Rօ)zQ81loDO274 о [B];ъ9ț{24Nrqwofys̗NQnG?mfq~[=Z~tr2RO`-TP. |7Q5{mFqױ'EOZUTbH$0P\xY\eA\ĸ2`:q3{q QJxz6W6ik$}t-j='9ǔQx!`|`=hS8<2QAFLרGRˈ7@mj2*S)]rDYHj:E= Κ^'Qr^ c;ll~<]wɴ&ih<Հ Bzxp4I%ߔ#>!\S=v!q|V/+Rឋq2:mٴ~z$u4[胾;L#^Y0ds 6^f+0E!N bY*F0nk͵aWe=k/筠U5 x]V̾ >+!oZPKPeQsetuptools/archive_util.pyXK6W˭EzaKm (D$̐{`3HtRXVjĝ3[\mUcN6Bl ;&OYa]5l B17^`L(^ CPV*/屛ViL4tDڙ _z/D `|Ϝf} ϝ߯H~cϤe0B0Em- ೏QN l0(fŠDMWG^5`0IG.||_hŨ.Q-V7I'V+CQ bo(Z ;ڒDEBgɧ,RNlRy,爨hEŠ tE3]lRvp~ĨYG,`.!,8,mH(gJnܕYg+D$Dbѓ <*΄R&j;]ɓbv"RpetPd#@D1!X0ݟU4 xBz"@RWhWbKL!^qwMНru9ZԟKvˬj)E[sduzt\Y~ `;Vjw;4+Se/m aQd0W#ێc?JVq-vlƐ,0d/Xhb_ [(SosfY<^u;(|ZOGhkL!;bUQ< ![O*#;MW(G@͐2iA; ^? 6.zĊ0Щ6#wn}KsaF Kp;T𾷌AE!|* ƷA(f_ޯ4הh@M›k(˒ K<2 ]!~ilg\.ιɒrz(ɩ庹"c ĀNPlT9?8h>N@]lCp]a;v&}G-yzxT1~Ϙq{Ő|2IȠ65id vTJR>_<$qfN>\:BI<.O1qZ։N`0seoU (snl{:LzU8a_NT?*|I|O,@PE%$&^-=F 8>3(W”*KrPvshxBfZ%vv1Q!FKoޞO0v(';&l-A |=}3~Q+O@ 2ZGT>} γ G^NE6Bh8bL*.9>S8\^zΏa7AN:[9 -<PK1>0Bd* ^R焚[w^dTwf`vY+^8Ebgos3&M1\t?R$N~c!g;;<?!ƒphsgQT` 1ŠO!vݾxmW{-{s<=*5D=sdB?zE_HyCM>t!nj~J:G վwwn#;8p%jgITIޙ!%QMP#1{~$X,^˷bx"XuSJ&.1~vd5Fh4\%(x\8P,E4,yd $L+]UP g(Zf*}]s s&TeJU.l+Jy--PҲan^jQ6kVkaӀ.H3ƲuoR"ޔ?[9c"Je B;ZQY<#_;^\Hɰ~Z$5b١"/]JhRzONLG/=Zm$97Ϳ_Aо}LDI Xc|qhDD"3)q4NYԿ7A;AMC/PM:9A_3GhL/B` cZ#ͥ4ō ih[{H.-V5d&h{QT9Kl@tc ll4Yٙ[0_?aL8#Ԅ8re/0e{)TV$ǹ\]ڲ*7R`%Y|@g<_3X2Nh,g}-隊R&*+M/Kv"3i,`辢@&a@.zRyv..s#84ԓD#OKcD"Pu"Q$]z1{ uM|ս4ۇk`&% QJ(yh91 9#dN(,ElMӤ0!ΩސCnt-U ( r@yAW%K;`MVV&>!E&;>wd&% $^H0' {D`GyȷW'D[D`-:o0FKk9Br,?6C@ao?۟ppqP5$d $l- VCB}j+BL׎2C5{µ_NGo"_C\8S˳35Hv56܈'5mc-~=XՅo!G˛)vσ1Y=\ީ%; o5$#Pݸx{ #:1V<1d曎=`"aW9! /P/m,yT|كu nЯW7~.Zi$E7nHe2Tv!CqV{b,`xyiشle/FQ `.< WC@%3&\K/ģHB2ݪu.Wk+0 [ 8,ˬʼn0G3fii}+rjy^wNXXI.i_ggPpI[,9~՗I b~¬Od֍_b^9A&8'KZH0(Cf"HxI >7̸)kZ WGlP4@(1nu.{f{ zM&4"vcT-Oڏ6JΩV 9S0شAQG7377.j-r[’1fjbxX2\4B4vͱ@D}q䞔]o c18۝9IMƘ6ڝ4B;v6 ..&Zb(6:}Ao@ӠBn ; Ga|x^lAŬ/4"Ws,1unO\[Ed˜AZ RgJ͕!Xmi  ̚iKy׈)֡#Me@L \yYz{[=.6cNɿ+VӚߧFF'W5߷뵌`DJ܎i3ݷdPB3 H|{8ss" #=;{B-K:{Nr3NeY Q X{{1Z- Ft+-ݣYɎK0B{Xw4tJ瑘p+.߃%5vj@YT;z/}ug~˗qZ.46,*^,]'a[阣 ºD-"1%~w:b`cCeǴ5tl @+ULLkX(m; m7E7\nSqSHQ9{o}`!XPKPzi~setuptools/cli-32.exe|T8|7{$6$AѠK4&1 #uK-{ ͰڧJOA%*QN\d!k{$`33gΜs朙3_8n?9 Lc'i ߜvuMN}߳C}_&!Y+XܔY(3|{} {5'ݸb{]dqﱻWvqbDjF6 w ^ḯ9(l=>p\j"O9 :v>|c/qܬ_kU}ҥ?$=I{BVJ+ǭi}}`z7`B,Ϡ-?ߢ 5@ m3pTY-% IhXgZ,LwueA>7F/S0,mXXC[Y  _ [J\J$+ ̜ D6)6nv*‰ONIf2E3E9|NEКS1>M8Htq#.RtxpRz֔ аM;M hYLpiF=`vCi~ xNqPPsk\ۏʸW-&l<|w'$5iЗs99Hίd- A+9xռ~3:9:%%tKF]P@זو+`Pj/ph^JJ'|%˜#K(< q6.eˍ5ɠ63p FHJ3lKtVJ,G oUtmzX~4; 9tQ6=E#t\ mN7lhl ׯHvض y)H 79&-TA R|dBaFuD6~t*A*fYųgU5!so˾kT疶Ve=(ʐ&υܾ<8&Til!VO@^`E?-ЫltUb2UNGzsrr)SJm-G)0/f{2NFk (ת>YP@,oA9@e+4YeH6*ܠ&gy}]={62blhY/DeD􉑩;UmT~IԴאcGwuK>рCR:}_ҍ7*ا/\3d"6:7?U^- Hpiػ+$D*0ag2GQ!U(5njzk}poAR 3,ua$vj L##yt~fՃ6S4o r-LSaGlH:^ShzބD²JV4N&Co JL&)!i<9J(N|f4= e\4A #D#KJHWEʧ;\ ̪5-0Xev{5ҷڦ\PD& t1}?g.weoi@ h9t/\?xݮW QSW-o_fyC+Xn4u'&%bU. QKEbbe峩$8@;]Z6h 7HPޜJM!:D[F.x,9zoZuoUȈ1@'m[bB7.tXZn(zy6 mU:GG̝ e&)A[l.lQJ[o`y`&N|-gdkiPz r?q` cGHOvPp9Ap pm1򸇜a@Fň FkKS: :B0io!OYS>6JFv%jfN' Oû*"![_uc64O(j`&f)9ɄwNy>©xʁ'=ST0H\-u1Q֬59O-lk֙(yInyk^In7GS&LȓWaBTg|7&X*{}<^?Kc ;HiU-E7kfQ|kh?k5tLWub8 RZ'byZ _ioK+Y.Y)e$ Wrb,"1(I%]yݬZ}6 8ڡ<ÝJY>W2_>|Z1fW( 3@.!zB Z( vٺq 'doy[f YFaIL +]ƤdccA}#urg*:*MEV jC|8M*㤱${5MF*yGꎉqJZ㜔Nc}IL)@ e\z"\LMd7.Gc w{UU]]8{mW nt]3gnY&҉5/|n5.y>אU hf`Ӑl퓋J3y.<̿FIi6S,E, HLm>ԤMZnLbb*WUKg@S-O4orv-J_j@{/QoYj_2q7w˩vWe6a53_AF4ZۄߍIv*:fN&BK\ޠY N?vN `S d>@JxL?L  3ws]5v~=|4'F.$#U@SR]i[R@FN~ovce5T^wm~|}W 5?OTKp`RxQ^yZN {OBʍh@BֳRԷXl,'QGe,wخ ^qJtliJEy c'L~.^<ȹ+.nȌ3E&,wFu%zq] Pσ"ԦJ\G!|1\,* }N{yHx/LO aWQ0{w*T4ĨS* V-C3ơS`TUӖy0EuW1|6:WDSIjf MP+MR1 &S5WyLN)My2hMYdLkf_GMp~r#6.֮٘hq`FD2AI3~DPrVU*pl% i6V-i3+8S)A/-@hwV$ va\+I׽MPyu8~veJ\MǨVIv=tx 9)_Dhպop H&WN`?>GOFRy)4GGR(_?BG_ ~a;8+PƩ3y]_kS_5pJ L|ʕ= Ͷ,8Fgk47&Ony0WP2u,p X-bMb7x_.~AnQˇz'KhDΫ ^h4u\6σ1N%Z|^]#>w_Z&yJ C ":rYw+Rfr*Hd}s= } zIF3G> %MN}i \yu䬝OrPHصo屭@'h#1pm%~vq¸ۇ PՂ~604Md+k[oe :V=EPIG U-i^7]|SC-Y~^xdlT#z1L |u4{{I:Aoq,;{PzX=$Rb~V}5%z#ۇqݎV٬i "QӢIQsUd"(cb\/L')ߑىΞ`S˖嶎zZyS@ۂE d EN%gz֏}"V0t2ȑƪЉ1Siy>I8 ]mIV]hDh5uu-ģV!P$FyLOyzhR`! ]/^386l@D븫4ƒQ2[0~qW z\C(waɝ|*鏀#0Qx~8&ԩIwN;:֏8i\BvGObrk6bk5HgV6!/ÉƔJ05 ?K7/u{ji 0\25[sD\ ;*cսLPC b#y5&]; s@zxK+dLx2֎V4}QK1'":^re (ńa)RKлhnC0;EXC6j>ŮI1.Ĥu_3_c&901B醯p'^[Mz TYNoiM0_Qƾ4-nZ:ixtWmE -+ϲDɪ}z>Ussuh¬7 ؎;1KnJ5X_W4NۋG#7,Fe 'mN|Iu vAӎ'&]gͰü5۟[={݂7av3O0&.>Tw h 0([U <d" '-w9Pϑ3Z=ns)&\B{na Z.6Z\GEQ9"$6/RuA=ɿy)+S.Uoʥ1sˁ"S+PsG&gDPN&;-e\;S5T' #vjT>J^ǏNVkE]o-[\qn1'KuBhIUV񱮱a&䙘 ",u4Pi}Z~ԌMƷmbzSyT Q|w N~ZFUO0*@epHj -B qKqiwłG% y@@`xsB⊑3PVK3((x(x h%COo]; n߿{]Jvvk*Ӓ]"Y& K\LW D;簵mr4֧S49Bɤ:VF+Q'lT кzG$C7 zT[g9_ǪbuAMΞz솩^} 88D#ҋUHg =ӹle˕%2?]VUe%JqBf]&,-̉_u5(ϖx@/o=te!/Jiz(y:OL{{<Cny,6oɷNLșjq/HU*]یVW]:DRffQn R~c(Z24E;yR&E_1jnEl;T@,EF=$?maWG2 uJ9vR|A@{\K`].An @E?"*]ߨhdU!qD35W]f/ݬک8MŹZ'Tkx ]AnLݤpbro .-ZjyhL6 /[r1@%!%{Ԑ Q\#C]O%Re(eau)9yN׹l1TqnVǰվm 7N |p&T $?,p;W|ʂc@6+P6>T\w)i*#u$nTbD 8& jd ݎJcsvuyBRF $.@dOevlb?f*Z =.^7hյCl'0hc;#x4I_#~ @kĭu/V/n˺k8?H>A$,%l /+x1 rRhqL[xMףq øK $e.<-LcMU:^L{1,3XjVvE~5HZ3p͍#\) a)t2ތp{EᅶnHV0UWyf99Rm>soIijͳkZOe^>I Olŀ+CWjlb-D=h;9$¸5D`\㢔j7mE$ױO`tOpvib7]Oi7q5#m^% YX6WT46oZsX^=6aҴK7Iy "#y7~kͣk-=SSFG xiƟ4eږY&SZX` b$ FpA֭Q2:7asve:7n0g nKa<~:y=gf{v~&?nOvv=Djx:ܮ=x=Eg*ďL+:Sw5}ׄ2mg=vA047ߟY :oJ)p@-D_KK-@q슳A֒̕^3Z7-|4XXwD-<'o1E>4gEB[̿o_flZλ H["46$;&?P^Ft0NZ 5tt6Ў &Xaг_^F;"lt80t~R{)6cy ,Zn0qft@.!uZ䡗@HG*@mwa5Ӳ8mm{*Q.&Y1 jݞ aSF:;Pίت

)E\"?TL LgS/)~>R.bwӮZUb5dqyjrdg/m[[['JC3h<0;ۧa1IF?dLh%آsٿE9:=BA=J^@l1~` ])}E^ 60.k_Z5 _ v'K߯M7V^\Qfs#8@{ˣF}z $E@?4/tS%Hɬ0O_0&t!饭Ј +?r;-gu;]%l\!!B}1q# V-ȝ^vkB!Ղ4j`s^s/{FG^Bh=Aoʣq\E* (EB:FP8A!V XԤ%sҬZF+aě.5WO:v{@0f vX[-0\L^61xZp7k&$>Tb<}Xw_!omfzINL*iE&E-Sޅ6L2I=?jj'@ZpENΛ Sgvs}&PU+w89b$Eiq>kc)#I-:GW0\҇*C_$x )-8Lhqʵ8A9 k!>j'Q\"T{wӧp"$ aK|d ^)֡`ZIKXuS>\kjZ4KlPH=,>z+\L6t & ~Fʛ>MLeHe< #76W3ͩ*7*^ Wׅ䘼Qvzt+EZƂ3jEL%6)-6) ]EhJ Qklh͠?y&mU"F_cs}{4%շ؋(yQvIRlpfNIVNT̸n'8ꢼ+!sbGQ]ݨEY_?ŘG`R#{g1Gbr_f.&-Af2VݕT UI>0wϽ3= 'OHzĸ!Ք=% r6EH>~yTVH S q)m.ꊵ_p]ƍ% Jum=kB;i`.܆^7EZ} S5#ǽtc@&Ri<Ne#ZДN)Nf1xs xm?@_"(]CjZ)]_*GR ,~6Y{"p^2QҞ YD}A4QG*C9%ɵg'LE#VZ!& ƘIDJNF.aO]ŚJSCo;0LZhAֆ\{ٛRFNQ!٧+4S3A*ڄ/"*~#W'[3zƒN" }Ǣ :!b ud8)NEo?d'\GjeM[t ro9LaRnO &pp,P_8~+sgq{#5n81~h8O-5v70澾@ѢD{V%3ο[}3eP9&)snhOS@:\xjN }Hrz=(k}ag*'kM~uMCC|PP9l~9_爭BbSH${Ƈ!R-h!e"t~J說 %PsY` 1ҧ8Va:՟]m` Q} ՋNHra! B?K-9:֋$=w 5}tw?E(@ڴ>g>> ZDf5Q8X&ex-GJmlԗSMRUyⓇȡQ'HU񈸯N Uy HT2rx1ؔyx2_Q^' XZs\b,*'n7t|^7^_YSN(] ̨=hD1eb7µlomMkC[˝)NDӯ ?+Y:I܅:='t׺yʝR~sg1.3=gR"&7nd<8^eD@zn[eqZLM8|@~Uju  u*R+1)AŤt-^O/9k.QٲRYm<?a+ 8#R'`.!P\m(ݑ|߆KJ|ҟ$7'{N=Тڰ/h-4qU0"hLC2W U'^*f:d#v7/M tcO)(6ZAyV_2Ý+QOںX%ˆ4 uaD/+^*U Q܉*mJr4$J@ҢvRBӤ*px69,gA?"z;ۼ/̃xI,]骳.3jwu0uMCB&񅃂 RA^D.pNrjD M:7I6c\|5WoH#cծT+|6+谔mYW]t"P4 +vv%bc+UqP3Iu صוosw&Ml's0x֏ޜXڎN`#B"(ۚAZnU#kEB7Ol.[vom,e(ԚRn4N[z)ANts|?lt&lTZnUQd#JJ%B/U0OjK ZrٹN-K1 Ly:Ce38-ztM߲/ aƋ83ʣF1e&>ruy=?g{AAV4P @usҭJs_hJ-$m@-*%rZeβ=x"h s嶣єʲ+Kj$m UZxͶmx\+~'xTUhQ+l ( wdH R` 3Cmiܺrl F+1W㜻0,j3bLp<-?QĎN);.e ؅U^G-8)mrL=ZWavdzS0¹l^[c@N?x7 ^IG˜իw"qňU"O% P7p͂mhʧ#}d"0,zMr'4wfg.0J]o=uPFX@TfP"ιDOd'⯒/ؑMH&J@T;i hXI)7CexJ_i ?}3O< p㌊fE`OIQ󀙙ލa0u$y#rHEI©-b(c qY^A7t#6]jʪxiQ Hp¸θr8.ڧ~mV;G4]ZM0(M>39 f"Vj<^!Tm&m墬BF$}%U 7Bo;6?fܝ *th3;2"+cML3q? `b+s{xӬ< :ٌb#9#ƓхR59sO:* \$eƓM9(4ݐ>Lb;O<8ϑc4942s gzk.̂2.[ꮩY3<[dPQ0#mH֙!)\ 7ndU&Q(R.Д[8j/x &fF Ey,qI6vc`;BW ufm  4CMُ۾ yóhn,eZu)PN`HosPף]>exjRCVq_FKk4B$x9$p~mmoۍs":N Cf] }<} u?@SKJW02 מзə};Qà(%tFݹ+K=X`*ّ0Aojh\d_%i@QzqmC[#i_xFmG" ;淡hGA6&Í[zXA1ІS GaT>6 (bsBroto (‹ƿzAɝ#q^\ DǐeB۴2ߔ-`F}F0ҹ̌cu-*|8"R$o?xǣ*`YV' .#޸,F Kx]|.o('c)i+W e3i;<Nc~Ix'qcuz/\ Gp%cT1cZ'9)A޿xRꘞ ;ޅwK xüaAvd8ZO obi[ׄb{tla"E< J$uDѿl~b17d:IZ!^W% Z-EZ8Yrt*͘Ȟu+WdEg@f (:?`4bN*Mq̌o}doME2*n׉|(LBS β$p 8G\\H*-srb)&A@][l߀I.{1jBU7[!3.q<u"^`aұKb]"l~p&x 3Ղ+U-nՎ&Nv&%s\[ w BV⮉N?lڌa_pXmvtkP:_kX4L:k55L65p%`Iq`J1+vT';>?OL4>ba& ϸu7coGzL2*)pRhGn_t{wPxTg`#bdHnZūeBNx2^Y N/_*ێ Ea_R.36@$?85-q&]a k@M|.cWi>rwEBq2U6+p|o5g#xЁ1҂ iu8];\oA9ہ Z]MU"]?>*w· q8nCo+Sw/?֛AAbzZ'wQڶEơIͺ>yjGkPŎ vʾCw_< iHNʹMmCUA]l~[OqXO ;b9%xh-= kRC+@(oʓҒP%Fl7 P*[l㪎p}!W$%%C޻*$F6 kZR9P~B9#їH9;#[HVt0Y"ˬՊ87LT a^;=Y[/Siӟ0Y <Q'3$ *G v(D6礼Q-_tUU{'?$%G?Cmm_¦xK( [Ao]< z@ēB{Jǀ`~NA^ ĸZ6 J<xN0cek DF/?-+:GΆDz!rYQ}a]|PA=W^} ɿb!f6$9NAPk^ :gf E+9g4gqrc=/34aЌG ښ`Pf"vPdR.BP5D[AHN:?xT1Y 7Zӕar c~J>{P9ݜҤH{v\8C?%ΧiN+atӷ";lW6AgXru7Oa@Lo=\[7sqDDɄo?}NlUzo6Î~n-} 4[:v̤' :s\x`x^i0=Ә,H,58d%MQcgs'սgk` .P90 5k(0Cg\Uo_eUC=,zh « ?Q?\ς0tE QywWYB|@|2&it5du%6xc8'ܸa)<څ2jla5XrHŃD*>}-k-r)FX,(9)=uY_kx?O@%{tq ao͠GVJ(%%N+"I~G~Lחp!Bȭ"+! ֺ# b{pv,3 !##%\\\<sLaT+ >@HmxтXe%/Ilk! u\aȤ{}z7'j,8Ġa$g/w;v0<s f;O|8=alzN8q.Q+#2kȬ BLF]H`U\!P jz;ya׶e-3e_Ի՜xv8k:D^St);a`Ms42$m?`ȋ8 MNݤ ֤ԤJolY5^aJgX9 >%q[mg}{אdQ[:d ڌ ni%MkmF-֔  -0v- j5 -ßx FA^C!,0Ήtíq =@ ,!d a$ɸl}#jt·[ 4A&aVm/hsՉW4N^`0ҍ;PBKv)p$.HHtޒ`"RK5w.フ1X"0D 5`75P/7pM_f+ȸ6ZKpnysxm}b8 Ճe 8ҫKFăo knj/Џ!9A?rS,qwwt< *EIr|a?;3A>!#mGwtt>ܦk菇#&јzcJlapӵ35HzE4ĥk: NlYIpʨw뻥l*Pz?؛hg ?ȧeDÞ䴨'%k_3Oe h> 9gPf*Kؘ)lȜ˽G¯ыöaI˴߃߅! `r@$OB3\z?$OO|Q$:(OiB ڞ w^/띂 VaLX𷪔f^x,s7w wJZEQ09 .Oœ-(d5M .+.̹VwsU= 6 (c^qHl2\&vaS|4>}xw/g1W:;";L:ɑ·K)C(LƒFam[{LrrՀNn3+~aƅc*l+_8#n6˨-^\>9Pǃ՟;h_j)DsGtb2OpIܯְF.K,;,~$E .G\b?d*㲒 ,^_a!pxPY4&[1$l)3C RiAaG?75uvv)C)aAuAku cE,E`!v#;з~LXt>_  r>H=;[\DH? ;}C^w~|u H/F` i#ه=(㉦ }[!//=uMZߋ:Eu Wti++[ﻀ}첊sLcη>9Ϥ2I (gRĺ6C#TyeP%ҙΨɨ2oQ% {Z~6ewe?:rA+ܵH M= X|0d!&Iʑ(-2xI@Z~H^dwa',#@iA#L)(͂GM.`\QGf(A K%h<;Wz{XR̋0:V=5)xo'_%7"1EވZsL~M#򛗔_=-%۴^Mۺqh=5۲V  ~C?z֓5 7 yXtvУu.ʶ~C2')bgh.jmrѧhV>'TF1Q0m@賌hO&\;H&6<,ʷJ& {^'d#[T^o.P5 -. ~z]oVG:Zi0j<,QRC=Ki` rB@\e>4&zUň$(7EH76(+/KS=Pge/_VsUs:fOW!)_VXo;'tvj[6;`q;0\^o^8 076IRHR$|kI2{7w޸$(7I1֫880p& 84jhug.p>p)Gux7V`#c裇v<ְ1}}mhO\'{W?m> \zځ~-R_O\}}]0&ɦY$CZ[zq 7BO> `}#(%_  p$9 ;H߄A[ n(!W \% p m#IoPOM ~~}|˻DLIn6% ]'feU*< \7F(٪]4 bc)m aŠH&jEt#ə)i~ͫe~ʍ6q+L`š-^"[tE9z-:n4!hnkQ(SoQNH?ChsM&{n [/Ug ;^7~nzQ;xDF2.#wF+M/rg||n3nTffNR[T?cPor='J;nT}@6;D8u^P:Գx>%zn#DxsE"*Ɔ7)7Nmb,ݢ_q!{ kq$D}sJŅy/<'-/,tyTG[Bk rQ%ّ|yNs3foGyYuWL~eQчR\;;UrgU*Eɧ*cR\ZCZ;OAoFh)9+ww½2f]Ebf^Ւ:"ls2ϑVv.zE,! 3v "o_(@'5Au@ކo@E&wpvC`!'Ӫ!\xC$;I\skldG-XNP=k<.WO͍hK`9'_Ea/Bu@^*TwD&ˠ< whǴ "Fokrbw:]Oib01XV9 }Ǫͫ}rn> go#*+PmeD ׿~sG* oXh~K>R &3Y#YA{RG4ޜ~PO!};x; ɹ`I/N~~e+ q_gq ðP p/~,~ X0Y W^|˯__yy'yyo+/p įy  P ?B- Q~$~Ż9)'-`I)֣Kぴ؁IOpȩ146,S#fyrL9z)|9W1ٍ@>ex $BQ He#IYN]q$ ;ap?/1)6 J) YORS)؉<8 ffZP L8yĒȵ"_v/e:3R1=NIrer<0Kr!!q19jV=[]ۀcETRu6{sSi|W5j;UWG T]@$[fԛ5Q(TONHɴ Wv; 7 2$UJNmB]^rFБǾ%HI) kĿ4U5Fr+aL |ֿ'^>:yQ OCprՌk$ns6S'C#.1n_x sSê176RYs,=qd9a5wOz{DfQ4T@5H4 أjʆGztM8`aWB  PapogP!w)wt zD nAp;ooIyxL S#?D}Jkn',=$jCCw3Dqvv2ɜJ31Zilpq=gc:%VZ(2FL#x%WPTv֩x%fgx'(~RQ8' v}bC#fY4 l 8rZ]2h vYDHX *e8fNJ57\k! $׍>Al umhwsuDOnRtTgWSyTpClkt v:NO?D\%4^*1c;޳)dtP.rk\ ԥO%` ֠2zL*sL:W$fPX4g2V,Y6G9^ZMPϿ tRcW+ ~t=/=ϵ6ga{D!KwˊrvL/])GϮF⑴}Gv`Q؈W&e*c*|># ]LTZ 9a Ȣq5_c*q!HGxc|r8dbm mŒ'w #fuhsGo=PJV?O/P=rMY(ׇ,ZARw?G2_UT ejUeh) 8|Wb֯A:4T6aeNrJ1ﴗ2},<9* F7揢 ǡ&~όEVA^dF\򷺽 B1vwdg#82:e-v\'_.ҴyC%!̠ho BnLM!h f#pLQV<ތP]1TSG9jU՟on #{x) IڱS% IS{UrѵF&ERefFK!BT"}R>"A*k?FtA|wW JNMNS I\pJBoή@T~JBmAFE ]v5 q@L~r @)Gq*4DHfy`ӄFƨauDUW,"f:HQn5 ~h[Ǎ&6 %23{ qg)Wê-quwӌwXqEOl(k?FhB_툦aor':xRۈ/@{i!x;m(]FvQxXd"*onsx4#S(0Ye#m\G7mOEhw }PVAeD<T_ >Wp{o_.mo'~<7NET#4ACyuMoW#uMΕF ehG+^rgFEl2PIt2 L)}~};BpM1O95~+>[i0<1POk^\N7JM د6H_6S<5ƶ_!DmcGfU _$$;RlV5XVB`4ʞGjH%L2%iO(>8&vQ9PIn qNq͇vE?E)2%u/DSTa=OQT S7* l:mۘ>l:jw< 3Z{0N`ȍyzŘ%jJ7ɱn8C"]փ4E Gvn{V3iE5Ly!2t^vvy,Wb[4ꪏq-Q]ufwx?/ vLmD!Fތ@ ܼ) /DhBe&42 P[ǟ*@~9ۑ3{ŗ0PH{s7? _.ZUu\&ir3S„Q͆! cUXn/ 3mb)*wTo[dJ{yPm@Jmhjʩ(mcN b*BDclΤIJ Taoi*P{\( ϻNQM$is/TUn e[Usڦ c[qjdҴmQUlQiHɆ# ^?¯ J/6՟lYS|«O$xU(}{䝢Wϲa视L3$q=Mz4W0gTqMWs"څީd9zs}ӵH~C,^( X+ZNc'x(OƈLP'mAZjS2gh 4Ӥ v^0\o"7 Q}0=[skQ[Qu5-,!Tlӑ ՝,tmoȍ[B%|dr%.SYF;*:!UZBT*h AO%> Ʉ$ .#n=JcrTջ+QTf~鹱Ē jpwp]"q5iޜ3]{P pj!h G(!@$9v-r=3"Z+XY/*)fwo$oh;kBuL:{fXgs+"?{RV+~iB;*#8 jmU*ro&*NSy{y8[kQʑ8zJ4Q;GUS=d]`qֺҹ &}΍sإv1#h@d)<#9cN!>Yhi @Gpy1dxoN: ƦBP.㑄> ݶ`.d6|N7GڡҶ( ,cdDU՛`%C;x?Y{fgcH,AzlSs@ Oz>za9 UCQ|P]$05C-m裖s:!r{]xK~huXG+V nkm Ԏ:10-Q# h>ֱPu#uCmSPD\_ %m たZ\: O&%`ڱ&}uy⺩eEJhfTEt!;0*-rƛQZY 0wkJd[7%:o: 2 BKGaTQopW(ad|[ˣXUcdBN;2v)d)uh|%0"zj8Pxn @o fc11pfv64ih7 L4;‘Ҩw]MzdjrN}QP"6ׄz&=ZrqS=LP'P])t'.f5.~3Mm=15UF?[NM`v!E9uMNٝ LJ@ʙ8&5êjM p̅86Q 54!g OJTW ]Q􀕍ާ+\!/Q>5D}XW(zV0x;8Qnөo8>ssnIcT7(̳0v$JsfL 5wa3gEiV ` 1s:nQ% XCdӣBi/qo amQ ׵X nk.84{0sԪ79|] ˠ^N6pf\cpSE=F}"vgA1{y?AMbhT {nq7 ;m9ݰR^ $liG"Kj|_?NVǗdUu*8Mz= ;&ea1Ofa)x 닪a+|n$#K}Wke;0\6ּxѵA)G?xB,_U&=v?4'bMEcq7"~1~ R$ؑUúrai)DY8 %Iēbhk74.NIvDљG*-;8XiTtn AIDX%Vqav~kbH;ul_n >^ιM/@NDאN)i26Ie# g 8P!0z8H7|r`/!w|*Af|RŢ@NkS>=,{jWef]qt LJV|9Zn (3 'kc#bVv28X R]gd-K=RR(SNJSq?'ء~QH\Lm & Tٸg\R7ܥ#j>C7?paq?}A/W{^Bqf'7N}"Ӳ2Kr'$BTFM\ -YBܷK\yYjM{Q$+.`uLf`ÐMi]! unB\q2t-s2iNR_X3 Rl]gI@s7E9Q~X GD=-(<<5"B f'>3Nj#ze]@EtNEHuh.i.hH!Be/WVtAʊ#)B[s) O]d1&jwAc>:+3rˑ-lDx&'P7qfH:kFh  O 9fRYjq˛BnûOmX sƾjr%op:7~#[Vl8͋BH"y@| EG}FxY! [9:)zrmbLwB5sYGB in8 &|V^`Т#puzz])`!~E}BxO<{D-X060E.C+|qnrŊ63F@-4&$+Ym ;^R126>\ZڿIzZg*@5 Bp./S%ζXnポK cv\R3u6qK[]Cllո'`SzueC" SuSG[_ GD?zpY0C- S+&AED udB [a߄qIl9%؀FFû+Ӓ*өߕf\]<ٍDLoYZe`1r.pi2̶m= +̎&u|@7Sx&݀џt&˝#厜-1xYMg=՜f LgA v}&y ׷8dfgCNQ*Kf~\ x 1 dN}+wP*S3R'͝X,a%+A sS#!BOx0Z\AM=?"r:]FGk?yf0왞rt#0PLoY+8 8B^H|A՜NGΑU.QeśhRʆwR}m @pڕ._ݜGOff s:FphGShȎd =oDE;d-+ι:(X94MrD^ݘ\cLn_ьm)<34}4et K Jq`N Q80$JjE "|6LI"K==3y9 DSx/P?0W A+ RBe_%Z]%2z˸%Kj:cM ^XDk>5w> ;GWkpv5ݏ3 }08 0U Eɢ=e`<4tf"l{ݨ[alx %h HYj߅Px3sji^5AwU|Sa9OÖj֙Yyc!-3kŚ2ki|No\Ě}43$rEyRǜg*A’"#6.R0DFf7Ś5ceᧀLP?|eMg[I9LEEʕfj-jftneii_K2 Ώ;*8Dc*++*50d Lb KšXTj!Y`$h|M B--.#;si\ҦO R%嬕e&LXﻱ.)hLf\0LE~ ^w i/oʹRi{tiIy΍H,sB p:(Me[wu긡tH ?lr6:a2jrž$1a_]ZP8{՛]1&)u)ȼ 12*ƹgHbvl y8 vXDE|Go5?ę˱ )G٩Bo\ W #~PȘa`.^+-)6Fd]aro{ʇI \/ZNot30ZZ^j2 I-""Nz/bϙ3Y:+TKJ7 IMӂ4ZFs)>Og g>Ϗρ6ۣJ,ȲGmn\]] EFڌX]gm̲z шW4l56H\PPPm,+PV뇺]v_2PJƟJ? '?OZ? ~Wi oH778޿U ?7߰Xo`Hhf~5Z1Ď'zz3v?~ /yi˯ھo׿߿{PW;~On>sO>ϟv˯?\ͷ]z޾ew3D3<7.!>ccq׀a7[c61˻s783KK{i2ϭY+"y2eBܓ0N ɼʉ4`/ya>ۄy`zLi4YL$$k!yJ/_9,sPZB<85a|q0&_cVtCKc(7[xb[b*gs4qeďlhZg^X1HӧF='q "ؑ*C͡9UqŰl鲌pfOdy] em8c߱es%c{`-2vDq/w }yoc> <<$GW1+q'똘맿cpeۻ>-C╦=:|{/7~cw1w*p~ ]c\}f>=EO_Zy;𧯟gx?|wk4|U7l9K޼>_ϑuLeoQhܼncיw*Yd.1[M9%"zs Cn{N JYB6ԚVXLWFi&`ywY4TWtw4+2'SF B0Tf&tٴ|Ќ&BVdZY C2LPZ\ @]+'úߋyy j\@٫Gٽ࿑9Z,() e78r01U tqyy-njb] bWfS9`^" c%ĈU` ]=%Vs1@}x0m|aB5 d ȘʇWsS{on ithgYd 1=%S:ȝ``F,c^E{]Hxjp鏈ۿ~Kֽ $81+P/2s1)]_ӽaNt߾~_^^Z1|['O5O-}u-]fДEI{]\+ګ \:[SvQԄ3&REb_}'5Epq WqYpǂ\in:f"Gc"p n_t.u*܍춿 [_h-gΐ xr3o(e+.}jcZpIogL7CS>7> yZyq\T{X$R(IPxC97 =0/ tO&<鋺uLJtPKPbp$setuptools/cli-64.exey|TE8~;M:7, a!. ڗtDE2( pDL'M#oƙqߌ8eGgX@v%JpEb;TwD/ҷnNN-gd$)I$'Z5m2bڜ]<?*\C㲲:]Ƴzٙ͜FL왷3pUrzy/=3's;=a,-I`%ڤQRFJ$큗GD<]Hp$G~J-b[EP ҷ)7Ylbm<㴇k+va@3nkK+W:+o|&}y1Yz7_d>B_txA>AO߿ C sga͝]4NdT58iv,j S-kLI{ˎ6H#tKUKW`"slũl]^qjj_ޛM<jP3T>iB^#EUPoRѢUiR-qOol(H*Xjw)3{9wW߳^ ܥOe45kfMũgX5ߩID0ۗOۧF45wM}2,qKr$ fȡqMmp F 8ءM٬Z* gSsToӂ E걤j! TA9۲$s5X${&%aXYo*kRY''*{N g3ƨ^G4~pSWDJ`  J)I^hUR ;`j4-zoO $/9g;*Sdj[ih|W=N<~,Kdi%)f(+hmBcxj6gy / 4 i{EpF-Y˲a5g8o=㟍 }j$LFTMt ys9t~wQvU,i-bOs1`. r*p.?lGls>Y) 3CeAw   nOT+QD6$:3~.UA Sbw\z?UqXX^m&n-`Bߺ#ݲ@F.?U9fQ-y|*?lʶ@_Cu3YHf([zB!@ ;D)Dfu|$HPe4RXxD|[0G.UӲdd[kTҳ2Oq hx)_SR+ X=%VJk1:M}$*%P4O< Y',S@ *7JDj6~ޝ]57f[.+RB5cbfGR$),F ;zb (!HfCDXq@'nPc, E=rV *k9.%ۊ ,q2DSK! ̬;[~"+)aYn؂ g[tqґQ0^ S,0!47H[+(K#=iO x-3|cyFjc*]ܵ_Lam ll@1\~{ϘfŻDWU&"-2tZ͈}~,4V(^ Zuþ`Xu~'nX0< Vz7ɿIj$)K5NO3`$MfԉE>Nt"E>t秠)9>DFANS<U+yZ{^aχswNX&g]nb} 06 S䂧X`ʼnhjNq7C̚vB})p+@93XZ?\%l3i99 m* Ȱ#!AUf&̀n}#ey^DD;u*U1^a{}XtA4*X#Zݷ` pˢq'UMTvVBM`l zfnKW#SMg.8_el19͐ncVl~=M5?͑ռItD{3 5PwI!X/@,YCpL 5]> yw%Z BМε߃0 D}W.7{<<$V0: nW h߂Ԏ}ơTW0V gp]šFMh/P‹U3{pĪ٬,xҫfml> 3@)i$cm Qܖ @PZ<<8_{a6ɳ\"h*O?mөootKi+ɨ0uZ2`qն>r  R!E:`jM ܱ`L`y- ZAV0%ՒʒZsq!uƫuW8e_Vky6G)rҝV::+xL?![UqbUNZ:Vu;s-23Hop*AٲNr } yr.4h|n(J${1xY=YdPWjFZ{0 W[Pc@V>-D{CBPw%jK(a %Cvf 6.(bUFnbaJԨ xbZQV(P_YOPz6{vGi)'%NT!]L5$SY* Mڛ@C*PX?8k0 i/Gaȡ !BRMٲliWPLjRtAyRr`YO9!?mIϘA8et>Lym݉:˳!ƪLkY:8O\'I~h+NX.L,oSO06Bhfnn+xֱ;Ԫfm9M|>ZEP"~w@4S<ԮRkgCx23Dj׫Xb]l()zT?<#m>,PSKٚDWźQd@r|z Mfic&R!įFtsaB˯"pX<,kŚS^PSU'ȎJ Z ++q#ܑ(M.9jLz2Tbi9!L m߁/ňc.ۄÃ/AS! OY&#b0&y9b"YWb%1qYξ}WhIfb)O2̌I˲H9t/ գ`jҬ0܆bD>+(bNJ$Cu# v8QwU0UO}3T&_Q4>éPg"^m:wr=4t{g~Wq@bU0C7lqQoArY <^1_dPP8+τ4F`#?@VbUd_>roÔY3 )?26UX]tƈ5$ nn'WƟL? O ˮ"ŸTvI]hOiSVV@HjNWT i^E/Uu=E a_q HiL*vK|5q?;O:8F%WYSR-! +01ےiK3T?=V'P<DF ,kV(щWu@'_x*ll 4*; : ћ؇{&h/Y0 n,蝄$dhNB{k=(a#%yߴ+%( \D%a)m/Q~6,m33YQg*?8+Eg1lƓ6IThx- OdeFs;,jJSRYz.Ы(hL^^#[LgD6%.Ceɘ#VRVB %ZǦso=L͐1>{c#af=5s$g[8 ͦ z-Qtz{jA,OUڋm.}ᕴ4蕷SгX^~kbn77PKK/~`sY=A{v2ڛ 9[D)ǿY3u(e(,=΀1ƍz~s_,ZC)Hn [b.rC"7h,rIȕQ957XJ0ܮmUOH^@gˇkKReYien@QW-s`Z@3~-vŔbcsqR"9udmiXiTsi `-bm17*&SUxx!;@Oi!RÈ@PxH%h2q В>O5 MXK@*vņ'ĆKSأڇ[`.%,p~ i~ڞ}: , x sXL&]$,pY}DQfm)W_EbΦۨAyT26nCJhLB]2fz5\QtzA?A+eXzВ]ijT M{{_/KEaѫSQA9->4 2k(ˡý ;hVF{\ @j\S/ti8}Q_U^a9GqHYQ-S˚H&Hz!= ښ6*ޝr LjU'DDDЬq"WM6:_ WUQjTFgڎ#Y,Q94kЗv6_9L!6$Rx*E^eTw+"ȫ %p4KX1c}>t֑یW*v(a5[ۀ<ơDժ6a\􃺺Kjc%mWW%gh0t:~ʲNx[u(^ezFKd4_blvB\Hza49mFr cr_x\DCFgѩˡX l/죥GռMS028"?jM>Zv,o t((ɫPDzTY`x]]!X(-6)LL Z|zf!!1y80Tjtn" RY^Ǧ85?@?xdS\2ۊYq'gxr:Z68*^`-f50=O9u4eGD| ?0Yus.㎖!ͣ6 ۪[ƧPjf;YMdrYԪX)=s #Z3^54Wlԃ(V͗CoɄk~*Ot%da@<,B*S ԟ(o:buKbQiF9##/kš׀V-e~~`z.szj*A;6mezTT=5`o>r,_sTx49hP_HH/.WM1ɼQxWz/y@lFY\1ӈs9y۟n ,wuP8Aw:k@> @~OM!Mv.b~ $_"vѺnnS )|7"k~U='sT=7EI^Ev/Pk/vʂ<Qs? W 'S`V(ujLw| 3ܧL_B|NWmho_Cn6ҷ76Y@6~hy;O˂EoNǞi\^3c@(`!A} RVM^_Zj4PTVHkO0A{9>'Pց\,d|K'r>yW|mF51('~o0Powr(l|O3rbӲ$G~ Ŭ#<<"+a#=ꉂÔ8uIGNsE2+|įn KSwv5i#*U9GTW%9^ئFOsbpt?j1 {*aO6ޣ슛Z)]:|ó\]8n PLGS&8h}b6GL!= J6PKh j)/*~02L(-8d&DKa:LR  f\xA=D]~@ha-CrKsljY~Z ea!j$G"^W 5P~@{Գ>ᶮ۳!0r+e^Ld{ grQNOӀXK Wۉή@x9)!52|Xăއ QwD3v/LcEH\>c[ՎcN]{UT5k.B30ʥs[i_eL:|UA.pMjF+V{_z!!a:.>tL,B ]KR{g? nK:ױ%sE(@tq^6~f+&HW̃TQ0^WQ0C-2?*,AۗYjBz,W/Tyi#Ys /Q4gmXP .kс,֧8FfA' vΪS k O\Zb$'U#=,=)6v‡.O'N8PVhcDG@;o|qgNNTӤfΙ?;lQ6L'i,t>\2K%MC0X_D!y;Qą_Q:é0#[1O?*Tz5j`X_}G{^7 ?"t"ߡ?ʳʄBG΁xxg< 7+&}/ƤGإ|/DŽw!aMZBx 8KŰP[g!]0=;;;&t@ ;3iAttRE]{")=(tx$^5/>/*6Pۭ-"-{Y?oE chu%T,R LY0SĈQ& AP_d+[o Ez::!K36ɼs`? rW}q_Jm;/*ܔˋ {lu鳝.(FqhF m3>G-`YhFԦ 5YZ ]}l* wKWn,śDZV2َ5<ӡFf[$@ߢ84&V6gӳgVjdޣ0ö]e rH6zhWm++w",f̪Xw) ƖX7{/wJ F]Zʣ7TsGmZq4KDൢokE֊T#wf"KبST$rLRvd(!"SlT{[V 4!@Tnl,.:zlry.N ¡ez q߈eڤ,wR|F?㐹M 4`#mzGMǣ{pAZڟ%p* jiU0RP}]؊la9)O^4#w q l?5{:\dd}@枹OC?}{ǡy4F3B%;[MP=0GN( RztS%1~ϡ1mO=.i=m*̥ڇv'@niDUAv_(*c.hx AWK(˹0Ǡ%"V-Iߣ{3M&CbFTF|6C |xjk"VCD;?5,I%ih]r`L?41mx.\mx+7x[,ک{E|%"^h輸x#4GL(OCahBnM{_s *x˷i*Өh; H cNq!nu=[typ[TFwX(w5WvoVzzloYxMgI@HVgea |hA%rEӅQW0<5 ˸]4%"a5A0|!dSsԲg/P(,^GidcZA'r(L(8t^ [SsXQGpQ[X>/Z4uݎ ~ڗ69H *݇"C< ɛF&[V6GElfґ]F ބMmqv*kt;6OWuT@yOzvl0DCGicvj2jKlRY҅M{U W*ؼ] ׅ~ s`Ov@<2VSm.~D^>WE"j"ѳICBBzI@YR>O/mwΞJ~ ^*rt>Ƌ~I ^ U},^c ۚ3HR. LVlą?o0T|N0*|P'ռ\U'ѪhYm^d+ Ke׿QvY膔WDM$k RkodZv@D?s}i9Dh1R t9`Lw2aZ@?3q]m ֩uݾvfݳG:[U D?S|ml+NupC$)3;,JIօ7_h1'`a%o\eOBrE9n(7$]tԢ.XjqΡYn:Q6yj* 񼝞F-G~D`2A Zkyrz#A)v-LqX@^ +hF-nZ9 }f0~AVdhN?,ɫ1(SsۍVK\T횃p$21G x:Y<eqv?0#ˡe$W$,XpݼlզZkGtiOq*"Ɏz$W4=i$>R'IY^a&/@_AOGuO~Ƥ-"{ȧ-fH8 8]#BV2kF&2B m@˯"LM@= =?HŗIH-nؿ%,N2 &w y]+Tk Ԯ-G7j].5w|eaؾ>L]Qp!Zp#ݲ<v,:!d L+S0;##sf=B5eTlWx0e+nvm,*λ^𛦿yR O'yX4n-:F|9nO1{acͬCaUZo5Rd( հXBU;~x@jcڭUcK21M+A^ăa@!x|nxS߰` :dcYŠ)=Dc◚=`ݐŮMiϏ)Q~$2iƞn=Je{e> QkX'-LJ]Nv! ep#zP˂l2oS# T4Fv/Flmi֟&]Y4im3Mx;& \G%Z},{}`(͝x7טSQ/2=bF!m{1Ep=cx8Dww'ӏxݙQZ_zwX?jupzNVs1e:χp ՘1qT*UiB,. ܪۓHb!VݪA QPrh*p}q5;϶zPڰ׉=M@QPF h[.# e:RBfk+DeuJƅ+C n%(V 55Sύ;/wX;_R?浃W.չF-Si/4vYoڤrL((E/J=ČjQWy%BsPVܟUm tSS^#xT.-# \wdk<˻3g6S,p{Y!J|2&N^w8V_l$a ම) '"weYhzam_j>-ָJ;mͦį*xx^I%v}5BY3{~Oo'r>ǯY/$WBc,wIfgq4ڭ z7,zh)+p ; oV# Tvn~ָ` U.` WAt!V o8IڅA=G﹅YAֈy+(G 5X+'lV$OYeuA]&wͦI!Y+սT_$¦ڄ 4tڻMNx0էAJߠ (*l|gKvM]IO$?C WPo~?܇uђx׬ŧ ћGA|^}NӇфo<-¬G<:SdIC5pl=cn\Ժ|YwM g~+k"+o`8'r4Yx3 ~ǶF*ݫ0'Ƭ> F>`:nT=_ָ=O6?ݮT:ػA|27LL3(fkn^@wAg2AR^k7.hJ^DYjw]^gN?( xŪJhUpxֲ{mgbb Ȓɀk#FϰG{۟0z5NxogDo>(s3p4~m2qS|Mt$^%>1d9a3X&r԰ϸEsxOP*&!<ƯHWX h y'Wo_!"=7VV>t?q4|umpIg=(?*Ƈ~Hۆ 4I/Cpun! ;C=/ֲZ$DZGaxj9VwX>l}uƜ|HW=Լ0j>*+4D9)}i(~gKQ}%-z٭7›6D/noNO?NO_2} |D䙸2I|.Ʀ¹dۂOQUcj>pC:Lؠ^ؘ 31ZE_^>~UĻ[[qlZ~`79C'n=Q5|eqX7ޮAkC8[z R^PYުF*;ua+hmM}z\W U"Tg>W?f/$4B5rt1ZJ ԂDn5׆×%\8r>/Bd~pp1#f+n!VyQv*,[B)v!; 7>w(ݦ3(OtJLDkmʺO?E8 ׁMٰS#zkYE3CqLW0f7!?]׆K?O1S .# +Φ1ן4ΟÁ!Ǝ!E9hVd%b\덦yt(W-kSmrhy^yzUNjϣʓ)+^,Qθ8=@ږJ>o! h4W`q|pۢ oRAGLqJKl2f `dXWU}\1M#N ]J:i:ϥE (O7B`G}v `"zUz/dm p9Asrryj1N#@0R2mgx:Z-o֌d5PaWyD&@~߻IOegx5>»}DEתa:-JeT=_w7N418:>1ټ"h=+%6ܓyČZl=׸x-5L"▓J;\l1cd`pJ^/6Ox Z=5x317jӌmaiXus-#R[y-wunTzc/a2 a!WB~7]棉ާN*`!*k^KqYPsE PFTo=m ̉ !~wɮIH}U'/_Jve]w(am~v:ȢEDI0PY f:3jлsO01U ڻ o#P 6 ٘>{BOB|[ǽaަ!;^%5s[/5R>$Ӏw%0I%.UyErB3\$1+&91ћ&2̶~p 'g^]?A!ZP+ܰŷh5MC-qS#o)BhtS^:TA:gAUq]; .mH`8p|[Z>X 4DN^Y]k'4Kkx3k/A|U F3G8;GF|/N!?Xp?~z6jo_tzmu/ jGW-%KXaMKw԰1zvw ~co46<[VZ [OHo(X ~/Ȃl809 &m WTrl!Pى@ ŗV'p{M='H5sDєI 8[$%&{ǔ=Ab&OA8A ߖ0pE3#)7{"1?0$6i~p|;q|0cNBc\+Ƶ`vfl'4w5< 70|O^a"D ?&! d{EOOR>YBE`\ e"0;E`1|D&? #\Ouoawz#D4#毈0=Wp p+0XEͧ0^"z0N׊0la<ˇ0"Lm"L';ߥ0uߊ0RV|-7K—Y=i7+UkTbbW(fɆEҮg9&Ld%2! f)1S#b1V"b"bDb^1g. b^1ѿwwOY3v4 D\c^K_ ]dq=%}MNݮT},f P 42$I puRZJުI^_Lb ri@_ du z0ꔀYЍCчcO~M[ӡaj6~qWJW{"qKcGgZE.2{߹4ܱncT[Iy7/I`6;t!u;ݕV˻z|nSg>\]кWGl^|1&'>VA:O\p$v,lX!A@]F4Yg%c5!5XrȔQ*S`)҃`> 9їbAق|+?(?$!|4fOQXfUnRfEPBP;+,( 7l'Arafg:OCif$4}]W&^EubT?&r&7y qNґ}SNOldSsO6 EO-EծW Ut8s?"@a/WtZ+uQHxϏz\+oXO'S9TN֙&k [հmct/|KWXJ>HH|0瑃ЅYo y6J9Co x[✞}[tkY{P%YGY+lh6QPpDmM16K2fB#DNsA6$1d8f,\7$Qcb̈́d▨?n dm.n-NU:uTt0=UOEn隖f9Գe4bob|9aa|=v#Aik: ngBņ:*LvP:nN~H}sQr]1ȷ y}ef%H%S )`Uh(?b[>7#3/A7՝) P%gf~ATeDu8) ˜>Ꝋ"2{i{@;fEԕX/&g$!';q2|6 4Ph݌s>2|hH>Kdyj`iOof^[/mi|A[1QN˺Ky^5X۬ +pѽ~(2q 'PHku}>ʅS+ӪFZA{T'0.5yI.vv03QZvJc#G>BO퓧r<%|6є6B Vlf$;ox7gQjdQfxkQ,HXb[bx?@;ղDTՉxq-~z;OK_K]~Ai:Ji!!"T<==Q]Qf7([S>f@z1ӲG&(BxKQˤ ޗ'dI(/-!U:k'{КFE1V._z#cuT5e .C왊J<;xe6T+~N!9y9jxny @|eq!8;~ Ԫ1&ű0"89A縪RO[7=uBYu;ݏ/E,D}p|L|O)AJ~0!;XEz?SinNElNcmg>[?}GX"7ԇ8r{ܼ _fwu&JHz&1S3]eZ41 ݖ8MmoY, Θwɨ"*OڀGѩ=(~eO N`}TcPɒ4sq&%Ʉ (GM萖kwVP9&UG5w)X.lxxzE&nA-tӲ- 񎚠۟jysIRߋ%\Y$I]䰜0zXZ@yXX0b`nhj!^֠$iOre?3JL$34wjvf <^U5ALH''~' {W s\2۝:Y[dv9N-FNgI"~#EI pǮGq"9zq7s*chU|ZNu2[CüL|6aݙ z|ak _m`⸂f3/ۥo7={x$)v;IA/- 8mTIz`7 82N0v-plw 0NSY;INm\ZO,`xj)Cv钣ne=0#VrA T] EE? ogqTv˽"dۤ˕7/a(I`|Q3Կ/\վ69wL*JMDt)B7dn P9)k[nܵFa 3;S BP:x?t"UR%a%Qf=Qnbwлidc񦶠$сKSf35{?5&tCrK_AfӟD t2`'nҠNJ1X2b$?ŔEph6Z n'^P+K5n KSvjlF}z Ne'w'wDep&"n95Գ-&^qUߗR7x.At6 Z JʹEqN/qW;LqK:'ku0ғ@j^]2Lo9!N(4o~pH<zPO\Un@ltly/.*OvFD &A`.TVC,gME.+\_-~\t7XTS&Š;NC^Py!l` :G}IJo> аtgp6MYt^"LBҹX]Z#a9,wq9v%Ym0E8+q ոE܂{~),{|ogRnX]Aݟ-4_a |~xTuEY0/J>ofFZYi%޶ s/ jSQ 4-J_ؙƸ"[QlD!oC><&E,}UGI-0 "Ÿ9j"myXyC]v,&@-8kܨuα'lCE"pref^KMF&)5ڶiLl#NӶ[{k (t%UEVĦVRv/MTKP~@;A;MļlE :z;Ô:(z ùV;(@>@s(-C@.o~w*ڴ8>d~h0y8}~_;TP JL!]jbٱʓ.]W@=UK 5$\A W+ IGS248%/AC{ x#(,\c}YO ;,^[Ao+v[JR}b]`b~4.?op mWګG_4g4.~^gXj{pBrT.Z|(.ܮ +_AҀ]-sthٽNަReatl+bf(X9]jz$QS؏7pU؎-{J+xCo*e*?c*!e6jp0Fu8>84T?,Br&4cf{QPa S%jQ-;Wa}Mtic_M=ƋpIeBūHytKpb3>aD6iO6sx͸R3LqpS+mP_xKQҁa;j2mAN Q{Q.+m_}C 9I3Sb~sG= %X1csPl̥WgdU}9L+0QkVٷگ45ǻ0Wꌺe@zۤϣG-vy7 ƬDUMµEq %x Q=X-Faq ja*ɣ'[tƭ>37X.WY. TQj6VBgN(|*gQş/dN!ҡ] JE2h%_1 *SseD .S3crOCbe5'axWvWlPτ[;ٶ‘[gN 2Mԃ'o[Zn І %H /UNdrjdiw)MnlZKn}[u^ҷSЮIk\[ ثHmWj[b38e1(=.z^~q)}g,'l 'WpffGV_9D[#k(A95ZlTlTA䬚dU-i16G}ۯv&6+"i隶N'j wbӝL\'*\0bYN t'Zp+qX@k \fZ1/$ٱ]G<ꆑl0YI5;P;=ox0ƊE +p6uV!$Tdɑ '4*FX cǏmÍ{HziǗxF>i5xMyrݭmal]s{! 4p&9V%Qc`V Ť%040auuF5;F>"wGѨzuaQJ$uqORm"?,;-yVJaebY|olX!dfk8j{*1ièK 1@Kzz8.GMPxEđ߫jI r]lB|ۘ R3.!p[ދ@TմG0Ӌ<5w\6 ttI0.NQ=6JTQk@@NE:D1,^ar~Ub5;$& NwF:+ioytĠ0`ػ@ur1>(?_ ݫ(qkHwJYRʧժ '>$gӚ|nI}J7TtZ엘hF0jWdAv5[o-x)&C/r@NOH?HsY.m8p~u',FX9nq$[ =nɸsN)ݜqJD>K*ildyUSMάAxӘ.<2>Q SDeڻȯCXh_1p1* pnF?vo8_JQ _<֏V3٤_M: a]W8&ٔ<onO*q mЈƓ`=-;>-8BQ {7&PD{X (Qڿ:(d0PMWצr[M hTh$gzڌ~}kSw ( oկYA{_8XLؗ~>Fx:B_Yt4 _:t[S 7.4i _:k0b {,ߔ CBlzX%ΈߡU-XgS(`h\+ya HIT8rÝ5CM8m_:M!x3i0z@fFrrPu?,E?#Lxj{XѤV7VDNL Ov#{PgŠ[EY˹KoAU%V LnrC!:H6LP,P;+MPY_R LRM`0lZ"$ @<١'bh/ZFݾz#s6k nb|W=pjX.,APk|PCUمݼW W`j{;XIa:c~xu/rFN<-KJg>/ԪUTY7(\iiUk3R|3DXWWPDZ>&7 i ǿu.fRlQym@z oG؂Dbf>|˷ 0_rBn9ҰkXd܂ł۶h6B`ȶnO#Od 7Z*}h^~m3 Ɏ$u9`JN::@i9 s i$Xao37LCώ(1o_O;e[&Ec/SyʄXU 0Ejb6l^RyRՇjXG:UtwV9Tl]g3>^W]j=+a\c/j vzLfJGx ;v!2<&G͝1r︳&;)gT1u]| (_ܴxN ')oa)ԅokf. t~XWtq<ȿҘReCvHt!]hK,ұTc^p~}>Ǔ e}|ɡ79H OW2< ;c΁ p7cT1T_Y̽QG;1xᄣp !vABBDA_uXMh/Л[.\KCcr&8?`&nC( =cџAٗݔƏpcŤcޑ̅Kغli0ϯ=I80ڮIh2GcV|Ag2M\#efYjA/!yf9&;5Iz$yIƗ}%ub1,]\Z mND`H` Yp@Q4)h-Lƪ44N&Bit3FK-5w5`y^-f{x/inˢlBۚtZ幅t Rͫ+ 8X;LR$'me3wOx"t'(pT,#ǣ`9yx@p%*["1ϯk8cUkߠ>كeXV(+ SUoΙơOrJ{QVM_!)AYkl[:3] M&1l&M:1oYOvcF,S_-gIyp HmDT(s(/v?!"8׋Z`&1r(Ǿ`߶WJ[s?׊}bms~;cA&aD}N^ף7U} \8Q*=8N&EdDzn3xJK-W?cY(1(8(59Q ʗ&>aW~xC2醠!6h\ >mZG -kb7Kb8&q ɇboMM&K"%ɒdId$2i;x&oy_1rHu]soxW086k:;?} Fe]׊ʾ4>A%4뀡k5@YDzHGYĦt#.wFI)o[9iMySڠ W)AX'.gZ_C-Kr%ݽ:OdtKaL*Мǔ@Ez_2PB_rxBV9})z`-"IDRd9nT6]t&@T’\P(ZCB)ڷ"9BVwЋߛ{M%@QHƛmvCCY#B!uaGͽ\臁s,zY> &Ďy}.)+ͮz:OʝNq-^K4*ߨqYE6l$ja98\o8|8a#rxëaFo.8\z少O9j{2a,7r8I0C7>_p_qHz8ɡùqn氞fUM s8Ia8| vr9srx=9aeVsބ`= n`G~;t]}s \yf<%]e9$e,0=%aar=<}RJĢ}`n0ě4b7rk򘱖qojbOx#mdgӦgf͘9kwjݿ';gnn+^A -~`e:>X(\2<H^!YΩ̕:eM#JSmiS\ߒ4jtd؜vP99@V9.nI$HeN1x sK<WPhXXF+Y, 4D@Kͥ]/| goTdP NLsPPPXj)-u-[Ȝ'z 癋!.櫰P()*\LB@ۈ Bn^T"zqfNuAIy1;WXo)*Ġ% ܴ% - 1ŹL)9mH 1Wh/*J)dy||ӦY\"+0sr]J vX^#:?.VyӳXy tIqk//t0 qlK$?2ŴhF+bBL>/,Pwmn2\3npnJ`aGs* kzDbzCaaL;E#ƴ7KZXRK*sC l[;[$X(@1?0 |x!- D2Rx\RL)h:o9YPXL!6X,B?@~tW1dIW'R?mo ؠ%ł=?F0. 晅4)rqNaÆq0@sX< ]$ mv}`G:v?\^|E9 UVG\YY '%g4aprƬr_a5EsBrE`.((0Bk_wk~Wɯ?/_Ÿ.ϵuZM/}Q6 G/_-/2w{/o[;hMWVTzpuU7=G{><ֿw_6+7oyOںv۰o7><~/'?OO5_7ù.^W* /N|p]`lLAɜ 3KF:!tʅ9ˣR}*Кr 8O,$&Ez'9GS+ia7Ɖa\~ƅ`x C2sѓC)&RYbWCl%1S0Gx0vdtSZZc9ٓq!v4֋jȎ:ٝ޽o0 nțAK Yg&4IHkPέMB~|g8`~Ujzcf؝̹-}`tg[VV&b2PV + kd7ãP?aP7`Lב1=t=|# jE~@ ܫ J My=hD 4(ڗRBB|ip8:>]?MʨO׍ILje gTT0AcIen_N[lw$l-;:Θo3B֍Įe}mB4;퍰VCspVq(/7Ld} ^{F45jռ%Jݴ06L&oFzBzB|==ݛMMj#٬a0Bw#rhQDB#Hԭr][9zpǘPqCGC(pڏŇsTΎi i)vztk[Meh 7'’~;'Z.\7:\}MѵQ&7Ɉ֑ &1 iR輿imo_%A5D7. @:Nm%2\6+8D5cڦSp߹t[.E0*vyrW JK݇+2W4-']iv\q<'2s7mL$9KJ|S*C/)9nA M2EW{emEE%n ,f[ sX>SS|STGi*gǭ ǃk0vfbQ)DD-Sݎ6E _(, 3T3YP;IYǷm>Ϳ ޡmybFN &ڶ)Dm;| ]EVgR rb11Q$s<.ngw?Azfldr)Q#AL da3 ڶB!Ծ&@BsEUj#Os*hoKb ϭ'gSCסU&o?0{ .L6[!Ԡ.s,^gJPnxU8թoG/2{wnoܾc}.0{_n}5v3]>jl=׫e*>ܮ=%qb5~nܮۓB?<`=auq)BybtC+8L08$gPK9尉Ã6pZs1t% paV9a& Ym:ԇ ?j/է;~,<,|3<*lx;mZxm$x@/K\~B϶{~Ûo ߓ'vxtQ'[ e Ns6Wz0aАfB^woݎa"&`3·#|/#xYx7 Y$7 Axzwe~rs=܏? `f3i-ʨD@^>$B %`h< A< $<1{} 56S0;D?` JH4jLx`;Sp?pp#B5d6iw+O8gm? [p _ogcei!<n+G6NWNqq |AFO!]#a 9 ,݃ߚc$^7`"i<o-ܞad ,g.OM3ƒS L|T4׀3¼LVn?by4τzXx,bG ^IX4 óYX{`@~P]}ӥ>9a<#n";{XZY}sلăf3?f3(affw x ޒ6|hkyP`N8wok_i`-7#i+? ̇~ t{@6xb\_,aVk'i F \hr= \e_Z̵C^"LB&\P[e f=b 56ςGFe&Oxߣ,<ͫ Vf[Vw\ #l}oyOëxd>tgi!tfX];¡B[~[+gy?Y] 0@+`Fx K@WFh/ ?+x^xޛ pૌVyC~.,zh  s[sOzlxn+3_O3Ak;Xcocx> c  0X4\tjb x 0 9aQGO$X'_FxS?+2 93.>cg!Fc|p\j"O9 :v>|c/qܬ_kU}ҥ?$=I{BVJ+ǭi}}`z7`B,Ϡ-?ߢ 5@ m3pTY-% IhXgZ,LwueA>7F/S0,mXXC[Y  _ [J\J$+ ̜ D6)6nv*‰ONIf2E3E9|NEКS1>M8Htq#.RtxpRz֔ аM;M hYLpiF=`vCi~ xNqPPsk\ۏʸW-&l<|w'$5iЗs99Hίd- A+9xռ~3:9:%%tKF]P@זو+`Pj/ph^JJ'|%˜#K(< q6.eˍ5ɠ63p FHJ3lKtVJ,G oUtmzX~4; 9tQ6=E#t\ mN7lhl ׯHvض y)H 79&-TA R|dBaFuD6~t*A*fYųgU5!so˾kT疶Ve=(ʐ&υܾ<8&Til!VO@^`E?-ЫltUb2UNGzsrr)SJm-G)0/f{2NFk (ת>YP@,oA9@e+4YeH6*ܠ&gy}]={62blhY/DeD􉑩;UmT~IԴאcGwuK>рCR:}_ҍ7*ا/\3d"6:7?U^- Hpiػ+$D*0ag2GQ!U(5njzk}poAR 3,ua$vj L##yt~fՃ6S4o r-LSaGlH:^ShzބD²JV4N&Co JL&)!i<9J(N|f4= e\4A #D#KJHWEʧ;\ ̪5-0Xev{5ҷڦ\PD& t1}?g.weoi@ h9t/\?xݮW QSW-o_fyC+Xn4u'&%bU. QKEbbe峩$8@;]Z6h 7HPޜJM!:D[F.x,9zoZuoUȈ1@'m[bB7.tXZn(zy6 mU:GG̝ e&)A[l.lQJ[o`y`&N|-gdkiPz r?q` cGHOvPp9Ap pm1򸇜a@Fň FkKS: :B0io!OYS>6JFv%jfN' Oû*"![_uc64O(j`&f)9ɄwNy>©xʁ'=ST0H\-u1Q֬59O-lk֙(yInyk^In7GS&LȓWaBTg|7&X*{}<^?Kc ;HiU-E7kfQ|kh?k5tLWub8 RZ'byZ _ioK+Y.Y)e$ Wrb,"1(I%]yݬZ}6 8ڡ<ÝJY>W2_>|Z1fW( 3@.!zB Z( vٺq 'doy[f YFaIL +]ƤdccA}#urg*:*MEV jC|8M*㤱${5MF*yGꎉqJZ㜔Nc}IL)@ e\z"\LMd7.Gc w{UU]]8{mW nt]3gnY&҉5/|n5.y>אU hf`Ӑl퓋J3y.<̿FIi6S,E, HLm>ԤMZnLbb*WUKg@S-O4orv-J_j@{/QoYj_2q7w˩vWe6a53_AF4ZۄߍIv*:fN&BK\ޠY N?vN `S d>@JxL?L  3ws]5v~=|4'F.$#U@SR]i[R@FN~ovce5T^wm~|}W 5?OTKp`RxQ^yZN {OBʍh@BֳRԷXl,'QGe,wخ ^qJtliJEy c'L~.^<ȹ+.nȌ3E&,wFu%zq] Pσ"ԦJ\G!|1\,* }N{yHx/LO aWQ0{w*T4ĨS* V-C3ơS`TUӖy0EuW1|6:WDSIjf MP+MR1 &S5WyLN)My2hMYdLkf_GMp~r#6.֮٘hq`FD2AI3~DPrVU*pl% i6V-i3+8S)A/-@hwV$ va\+I׽MPyu8~veJ\MǨVIv=tx 9)_Dhպop H&WN`?>GOFRy)4GGR(_?BG_ ~a;8+PƩ3y]_kS_5pJ L|ʕ= Ͷ,8Fgk47&Ony0WP2u,p X-bMb7x_.~AnQˇz'KhDΫ ^h4u\6σ1N%Z|^]#>w_Z&yJ C ":rYw+Rfr*Hd}s= } zIF3G> %MN}i \yu䬝OrPHصo屭@'h#1pm%~vq¸ۇ PՂ~604Md+k[oe :V=EPIG U-i^7]|SC-Y~^xdlT#z1L |u4{{I:Aoq,;{PzX=$Rb~V}5%z#ۇqݎV٬i "QӢIQsUd"(cb\/L')ߑىΞ`S˖嶎zZyS@ۂE d EN%gz֏}"V0t2ȑƪЉ1Siy>I8 ]mIV]hDh5uu-ģV!P$FyLOyzhR`! ]/^386l@D븫4ƒQ2[0~qW z\C(waɝ|*鏀#0Qx~8&ԩIwN;:֏8i\BvGObrk6bk5HgV6!/ÉƔJ05 ?K7/u{ji 0\25[sD\ ;*cսLPC b#y5&]; s@zxK+dLx2֎V4}QK1'":^re (ńa)RKлhnC0;EXC6j>ŮI1.Ĥu_3_c&901B醯p'^[Mz TYNoiM0_Qƾ4-nZ:ixtWmE -+ϲDɪ}z>Ussuh¬7 ؎;1KnJ5X_W4NۋG#7,Fe 'mN|Iu vAӎ'&]gͰü5۟[={݂7av3O0&.>Tw h 0([U <d" '-w9Pϑ3Z=ns)&\B{na Z.6Z\GEQ9"$6/RuA=ɿy)+S.Uoʥ1sˁ"S+PsG&gDPN&;-e\;S5T' #vjT>J^ǏNVkE]o-[\qn1'KuBhIUV񱮱a&䙘 ",u4Pi}Z~ԌMƷmbzSyT Q|w N~ZFUO0*@epHj -B qKqiwłG% y@@`xsB⊑3PVK3((x(x h%COo]; n߿{]Jvvk*Ӓ]"Y& K\LW D;簵mr4֧S49Bɤ:VF+Q'lT кzG$C7 zT[g9_ǪbuAMΞz솩^} 88D#ҋUHg =ӹle˕%2?]VUe%JqBf]&,-̉_u5(ϖx@/o=te!/Jiz(y:OL{{<Cny,6oɷNLșjq/HU*]یVW]:DRffQn R~c(Z24E;yR&E_1jnEl;T@,EF=$?maWG2 uJ9vR|A@{\K`].An @E?"*]ߨhdU!qD35W]f/ݬک8MŹZ'Tkx ]AnLݤpbro .-ZjyhL6 /[r1@%!%{Ԑ Q\#C]O%Re(eau)9yN׹l1TqnVǰվm 7N |p&T $?,p;W|ʂc@6+P6>T\w)i*#u$nTbD 8& jd ݎJcsvuyBRF $.@dOevlb?f*Z =.^7hյCl'0hc;#x4I_#~ @kĭu/V/n˺k8?H>A$,%l /+x1 rRhqL[xMףq øK $e.<-LcMU:^L{1,3XjVvE~5HZ3p͍#\) a)t2ތp{EᅶnHV0UWyf99Rm>soIijͳkZOe^>I Olŀ+CWjlb-D=h;9$¸5D`\㢔j7mE$ױO`tOpvib7]Oi7q5#m^% YX6WT46oZsX^=6aҴK7Iy "#y7~kͣk-=SSFG xiƟ4eږY&SZX` b$ FpA֭Q2:7asve:7n0g nKa<~:y=gf{v~&?nOvv=Djx:ܮ=x=Eg*ďL+:Sw5}ׄ2mg=vA047ߟY :oJ)p@-D_KK-@q슳A֒̕^3Z7-|4XXwD-<'o1E>4gEB[̿o_flZλ H["46$;&?P^Ft0NZ 5tt6Ў &Xaг_^F;"lt80t~R{)6cy ,Zn0qft@.!uZ䡗@HG*@mwa5Ӳ8mm{*Q.&Y1 jݞ aSF:;Pίت

)E\"?TL LgS/)~>R.bwӮZUb5dqyjrdg/m[[['JC3h<0;ۧa1IF?dLh%آsٿE9:=BA=J^@l1~` ])}E^ 60.k_Z5 _ v'K߯M7V^\Qfs#8@{ˣF}z $E@?4/tS%Hɬ0O_0&t!饭Ј +?r;-gu;]%l\!!B}1q# V-ȝ^vkB!Ղ4j`s^s/{FG^Bh=Aoʣq\E* (EB:FP8A!V XԤ%sҬZF+aě.5WO:v{@0f vX[-0\L^61xZp7k&$>Tb<}Xw_!omfzINL*iE&E-Sޅ6L2I=?jj'@ZpENΛ Sgvs}&PU+w89b$Eiq>kc)#I-:GW0\҇*C_$x )-8Lhqʵ8A9 k!>j'Q\"T{wӧp"$ aK|d ^)֡`ZIKXuS>\kjZ4KlPH=,>z+\L6t & ~Fʛ>MLeHe< #76W3ͩ*7*^ Wׅ䘼Qvzt+EZƂ3jEL%6)-6) ]EhJ Qklh͠?y&mU"F_cs}{4%շ؋(yQvIRlpfNIVNT̸n'8ꢼ+!sbGQ]ݨEY_?ŘG`R#{g1Gbr_f.&-Af2VݕT UI>0wϽ3= 'OHzĸ!Ք=% r6EH>~yTVH S q)m.ꊵ_p]ƍ% Jum=kB;i`.܆^7EZ} S5#ǽtc@&Ri<Ne#ZДN)Nf1xs xm?@_"(]CjZ)]_*GR ,~6Y{"p^2QҞ YD}A4QG*C9%ɵg'LE#VZ!& ƘIDJNF.aO]ŚJSCo;0LZhAֆ\{ٛRFNQ!٧+4S3A*ڄ/"*~#W'[3zƒN" }Ǣ :!b ud8)NEo?d'\GjeM[t ro9LaRnO &pp,P_8~+sgq{#5n81~h8O-5v70澾@ѢD{V%3ο[}3eP9&)snhOS@:\xjN }Hrz=(k}ag*'kM~uMCC|PP9l~9_爭BbSH${Ƈ!R-h!e"t~J說 %PsY` 1ҧ8Va:՟]m` Q} ՋNHra! B?K-9:֋$=w 5}tw?E(@ڴ>g>> ZDf5Q8X&ex-GJmlԗSMRUyⓇȡQ'HU񈸯N Uy HT2rx1ؔyx2_Q^' XZs\b,*'n7t|^7^_YSN(] ̨=hD1eb7µlomMkC[˝)NDӯ ?+Y:I܅:='t׺yʝR~sg1.3=gR"&7nd<8^eD@zn[eqZLM8|@~Uju  u*R+1)AŤt-^O/9k.QٲRYm<?a+ 8#R'`.!P\m(ݑ|߆KJ|ҟ$7'{N=Тڰ/h-4qU0"hLC2W U'^*f:d#v7/M tcO)(6ZAyV_2Ý+QOںX%ˆ4 uaD/+^*U Q܉*mJr4$J@ҢvRBӤ*px69,gA?"z;ۼ/̃xI,]骳.3jwu0uMCB&񅃂 RA^D.pNrjD M:7I6c\|5WoH#cծT+|6+谔mYW]t"P4 +vv%bc+UqP3Iu صוosw&Ml's0x֏ޜXڎN`#B"(ۚAZnU#kEB7Ol.[vom,e(ԚRn4N[z)ANts|?lt&lTZnUQd#JJ%B/U0OjK ZrٹN-K1 Ly:Ce38-ztM߲/ aƋ83ʣF1e&>ruy=?g{AAV4P @usҭJs_hJ-$m@-*%rZeβ=x"h s嶣єʲ+Kj$m UZxͶmx\+~'xTUhQ+l ( wdH R` 3Cmiܺrl F+1W㜻0,j3bLp<-?QĎN);.e ؅U^G-8)mrL=ZWavdzS0¹l^[c@N?x7 ^IG˜իw"qňU"O% P7p͂mhʧ#}d"0,zMr'4wfg.0J]o=uPFX@TfP"ιDOd'⯒/ؑMH&J@T;i hXI)7CexJ_i ?}3O< p㌊fE`OIQ󀙙ލa0u$y#rHEI©-b(c qY^A7t#6]jʪxiQ Hp¸θr8.ڧ~mV;G4]ZM0(M>39 f"Vj<^!Tm&m墬BF$}%U 7Bo;6?fܝ *th3;2"+cML3q? `b+s{xӬ< :ٌb#9#ƓхR59sO:* \$eƓM9(4ݐ>Lb;O<8ϑc4942s gzk.̂2.[ꮩY3<[dPQ0#mH֙!)\ 7ndU&Q(R.Д[8j/x &fF Ey,qI6vc`;BW ufm  4CMُ۾ yóhn,eZu)PN`HosPף]>exjRCVq_FKk4B$x9$p~mmoۍs":N Cf] }<} u?@SKJW02 מзə};Qà(%tFݹ+K=X`*ّ0Aojh\d_%i@QzqmC[#i_xFmG" ;淡hGA6&Í[zXA1ІS GaT>6 (bsBroto (‹ƿzAɝ#q^\ DǐeB۴2ߔ-`F}F0ҹ̌cu-*|8"R$o?xǣ*`YV' .#޸,F Kx]|.o('c)i+W e3i;<Nc~Ix'qcuz/\ Gp%cT1cZ'9)A޿xRꘞ ;ޅwK xüaAvd8ZO obi[ׄb{tla"E< J$uDѿl~b17d:IZ!^W% Z-EZ8Yrt*͘Ȟu+WdEg@f (:?`4bN*Mq̌o}doME2*n׉|(LBS β$p 8G\\H*-srb)&A@][l߀I.{1jBU7[!3.q<u"^`aұKb]"l~p&x 3Ղ+U-nՎ&Nv&%s\[ w BV⮉N?lڌa_pXmvtkP:_kX4L:k55L65p%`Iq`J1+vT';>?OL4>ba& ϸu7coGzL2*)pRhGn_t{wPxTg`#bdHnZūeBNx2^Y N/_*ێ Ea_R.36@$?85-q&]a k@M|.cWi>rwEBq2U6+p|o5g#xЁ1҂ iu8];\oA9ہ Z]MU"]?>*w· q8nCo+Sw/?֛AAbzZ'wQڶEơIͺ>yjGkPŎ vʾCw_< iHNʹMmCUA]l~[OqXO ;b9%xh-= kRC+@(oʓҒP%Fl7 P*[l㪎p}!W$%%C޻*$F6 kZR9P~B9#їH9;#[HVt0Y"ˬՊ87LT a^;=Y[/Siӟ0Y <Q'3$ *G v(D6礼Q-_tUU{'?$%G?Cmm_¦xK( [Ao]< z@ēB{Jǀ`~NA^ ĸZ6 J<xN0cek DF/?-+:GΆDz!rYQ}a]|PA=W^} ɿb!f6$9NAPk^ :gf E+9g4gqrc=/34aЌG ښ`Pf"vPdR.BP5D[AHN:?xT1Y 7Zӕar c~J>{P9ݜҤH{v\8C?%ΧiN+atӷ";lW6AgXru7Oa@Lo=\[7sqDDɄo?}NlUzo6Î~n-} 4[:v̤' :s\x`x^i0=Ә,H,58d%MQcgs'սgk` .P90 5k(0Cg\Uo_eUC=,zh « ?Q?\ς0tE QywWYB|@|2&it5du%6xc8'ܸa)<څ2jla5XrHŃD*>}-k-r)FX,(9)=uY_kx?O@%{tq ao͠GVJ(%%N+"I~G~Lחp!Bȭ"+! ֺ# b{pv,3 !##%\\\<sLaT+ >@HmxтXe%/Ilk! u\aȤ{}z7'j,8Ġa$g/w;v0<s f;O|8=alzN8q.Q+#2kȬ BLF]H`U\!P jz;ya׶e-3e_Ի՜xv8k:D^St);a`Ms42$m?`ȋ8 MNݤ ֤ԤJolY5^aJgX9 >%q[mg}{אdQ[:d ڌ ni%MkmF-֔  -0v- j5 -ßx FA^C!,0Ήtíq =@ ,!d a$ɸl}#jt·[ 4A&aVm/hsՉW4N^`0ҍ;PBKv)p$.HHtޒ`"RK5w.フ1X"0D 5`75P/7pM_f+ȸ6ZKpnysxm}b8 Ճe 8ҫKFăo knj/Џ!9A?rS,qwwt< *EIr|a?;3A>!#mGwtt>ܦk菇#&јzcJlapӵ35HzE4ĥk: NlYIpʨw뻥l*Pz?؛hg ?ȧeDÞ䴨'%k_3Oe h> 9gPf*Kؘ)lȜ˽G¯ыöaI˴߃߅! `r@$OB3\z?$OO|Q$:(OiB ڞ w^/띂 VaLX𷪔f^x,s7w wJZEQ09 .Oœ-(d5M .+.̹VwsU= 6 (c^qHl2\&vaS|4>}xw/g1W:;";L:ɑ·K)C(LƒFam[{LrrՀNn3+~aƅc*l+_8#n6˨-^\>9Pǃ՟;h_j)DsGtb2OpIܯְF.K,;,~$E .G\b?d*㲒 ,^_a!pxPY4&[1$l)3C RiAaG?75uvv)C)aAuAku cE,E`!v#;з~LXt>_  r>H=;[\DH? ;}C^w~|u H/F` i#ه=(㉦ }[!//=uMZߋ:Eu Wti++[ﻀ}첊sLcη>9Ϥ2I (gRĺ6C#TyeP%ҙΨɨ2oQ% {Z~6ewe?:rA+ܵH M= X|0d!&Iʑ(-2xI@Z~H^dwa',#@iA#L)(͂GM.`\QGf(A K%h<;Wz{XR̋0:V=5)xo'_%7"1EވZsL~M#򛗔_=-%۴^Mۺqh=5۲V  ~C?z֓5 7 yXtvУu.ʶ~C2')bgh.jmrѧhV>'TF1Q0m@賌hO&\;H&6<,ʷJ& {^'d#[T^o.P5 -. ~z]oVG:Zi0j<,QRC=Ki` rB@\e>4&zUň$(7EH76(+/KS=Pge/_VsUs:fOW!)_VXo;'tvj[6;`q;0\^o^8 076IRHR$|kI2{7w޸$(7I1֫880p& 84jhug.p>p)Gux7V`#c裇v<ְ1}}mhO\'{W?m> \zځ~-R_O\}}]0&ɦY$CZ[zq 7BO> `}#(%_  p$9 ;H߄A[ n(!W \% p m#IoPOM ~~}|˻DLIn6% ]'feU*< \7F(٪]4 bc)m aŠH&jEt#ə)i~ͫe~ʍ6q+L`š-^"[tE9z-:n4!hnkQ(SoQNH?ChsM&{n [/Ug ;^7~nzQ;xDF2.#wF+M/rg||n3nTffNR[T?cPor='J;nT}@6;D8u^P:Գx>%zn#DxsE"*Ɔ7)7Nmb,ݢ_q!{ kq$D}sJŅy/<'-/,tyTG[Bk rQ%ّ|yNs3foGyYuWL~eQчR\;;UrgU*Eɧ*cR\ZCZ;OAoFh)9+ww½2f]Ebf^Ւ:"ls2ϑVv.zE,! 3v "o_(@'5Au@ކo@E&wpvC`!'Ӫ!\xC$;I\skldG-XNP=k<.WO͍hK`9'_Ea/Bu@^*TwD&ˠ< whǴ "Fokrbw:]Oib01XV9 }Ǫͫ}rn> go#*+PmeD ׿~sG* oXh~K>R &3Y#YA{RG4ޜ~PO!};x; ɹ`I/N~~e+ q_gq ðP p/~,~ X0Y W^|˯__yy'yyo+/p įy  P ?B- Q~$~Ż9)'-`I)֣Kぴ؁IOpȩ146,S#fyrL9z)|9W1ٍ@>ex $BQ He#IYN]q$ ;ap?/1)6 J) YORS)؉<8 ffZP L8yĒȵ"_v/e:3R1=NIrer<0Kr!!q19jV=[]ۀcETRu6{sSi|W5j;UWG T]@$[fԛ5Q(TONHɴ Wv; 7 2$UJNmB]^rFБǾ%HI) kĿ4U5Fr+aL |ֿ'^>:yQ OCprՌk$ns6S'C#.1n_x sSê176RYs,=qd9a5wOz{DfQ4T@5H4 أjʆGztM8`aWB  PapogP!w)wt zD nAp;ooIyxL S#?D}Jkn',=$jCCw3Dqvv2ɜJ31Zilpq=gc:%VZ(2FL#x%WPTv֩x%fgx'(~RQ8' v}bC#fY4 l 8rZ]2h vYDHX *e8fNJ57\k! $׍>Al umhwsuDOnRtTgWSyTpClkt v:NO?D\%4^*1c;޳)dtP.rk\ ԥO%` ֠2zL*sL:W$fPX4g2V,Y6G9^ZMPϿ tRcW+ ~t=/=ϵ6ga{D!KwˊrvL/])GϮF⑴}Gv`Q؈W&e*c*|># ]LTZ 9a Ȣq5_c*q!HGxc|r8dbm mŒ'w #fuhsGo=PJV?O/P=rMY(ׇ,ZARw?G2_UT ejUeh) 8|Wb֯A:4T6aeNrJ1ﴗ2},<9* F7揢 ǡ&~όEVA^dF\򷺽 B1vwdg#82:e-v\'_.ҴyC%!̠ho BnLM!h f#pLQV<ތP]1TSG9jU՟on #{x) IڱS% IS{UrѵF&ERefFK!BT"}R>"A*k?FtA|wW JNMNS I\pJBoή@T~JBmAFE ]v5 q@L~r @)Gq*4DHfy`ӄFƨauDUW,"f:HQn5 ~h[Ǎ&6 %23{ qg)Wê-quwӌwXqEOl(k?FhB_툦aor':xRۈ/@{i!x;m(]FvQxXd"*onsx4#S(0Ye#m\G7mOEhw }PVAeD<T_ >Wp{o_.mo'~<7NET#4ACyuMoW#uMΕF ehG+^rgFEl2PIt2 L)}~};BpM1O95~+>[i0<1POk^\N7JM د6H_6S<5ƶ_!DmcGfU _$$;RlV5XVB`4ʞGjH%L2%iO(>8&vQ9PIn qNq͇vE?E)2%u/DSTa=OQT S7* l:mۘ>l:jw< 3Z{0N`ȍyzŘ%jJ7ɱn8C"]փ4E Gvn{V3iE5Ly!2t^vvy,Wb[4ꪏq-Q]ufwx?/ vLmD!Fތ@ ܼ) /DhBe&42 P[ǟ*@~9ۑ3{ŗ0PH{s7? _.ZUu\&ir3S„Q͆! cUXn/ 3mb)*wTo[dJ{yPm@Jmhjʩ(mcN b*BDclΤIJ Taoi*P{\( ϻNQM$is/TUn e[Usڦ c[qjdҴmQUlQiHɆ# ^?¯ J/6՟lYS|«O$xU(}{䝢Wϲa视L3$q=Mz4W0gTqMWs"څީd9zs}ӵH~C,^( X+ZNc'x(OƈLP'mAZjS2gh 4Ӥ v^0\o"7 Q}0=[skQ[Qu5-,!Tlӑ ՝,tmoȍ[B%|dr%.SYF;*:!UZBT*h AO%> Ʉ$ .#n=JcrTջ+QTf~鹱Ē jpwp]"q5iޜ3]{P pj!h G(!@$9v-r=3"Z+XY/*)fwo$oh;kBuL:{fXgs+"?{RV+~iB;*#8 jmU*ro&*NSy{y8[kQʑ8zJ4Q;GUS=d]`qֺҹ &}΍sإv1#h@d)<#9cN!>Yhi @Gpy1dxoN: ƦBP.㑄> ݶ`.d6|N7GڡҶ( ,cdDU՛`%C;x?Y{fgcH,AzlSs@ Oz>za9 UCQ|P]$05C-m裖s:!r{]xK~huXG+V nkm Ԏ:10-Q# h>ֱPu#uCmSPD\_ %m たZ\: O&%`ڱ&}uy⺩eEJhfTEt!;0*-rƛQZY 0wkJd[7%:o: 2 BKGaTQopW(ad|[ˣXUcdBN;2v)d)uh|%0"zj8Pxn @o fc11pfv64ih7 L4;‘Ҩw]MzdjrN}QP"6ׄz&=ZrqS=LP'P])t'.f5.~3Mm=15UF?[NM`v!E9uMNٝ LJ@ʙ8&5êjM p̅86Q 54!g OJTW ]Q􀕍ާ+\!/Q>5D}XW(zV0x;8Qnөo8>ssnIcT7(̳0v$JsfL 5wa3gEiV ` 1s:nQ% XCdӣBi/qo amQ ׵X nk.84{0sԪ79|] ˠ^N6pf\cpSE=F}"vgA1{y?AMbhT {nq7 ;m9ݰR^ $liG"Kj|_?NVǗdUu*8Mz= ;&ea1Ofa)x 닪a+|n$#K}Wke;0\6ּxѵA)G?xB,_U&=v?4'bMEcq7"~1~ R$ؑUúrai)DY8 %Iēbhk74.NIvDљG*-;8XiTtn AIDX%Vqav~kbH;ul_n >^ιM/@NDאN)i26Ie# g 8P!0z8H7|r`/!w|*Af|RŢ@NkS>=,{jWef]qt LJV|9Zn (3 'kc#bVv28X R]gd-K=RR(SNJSq?'ء~QH\Lm & Tٸg\R7ܥ#j>C7?paq?}A/W{^Bqf'7N}"Ӳ2Kr'$BTFM\ -YBܷK\yYjM{Q$+.`uLf`ÐMi]! unB\q2t-s2iNR_X3 Rl]gI@s7E9Q~X GD=-(<<5"B f'>3Nj#ze]@EtNEHuh.i.hH!Be/WVtAʊ#)B[s) O]d1&jwAc>:+3rˑ-lDx&'P7qfH:kFh  O 9fRYjq˛BnûOmX sƾjr%op:7~#[Vl8͋BH"y@| EG}FxY! [9:)zrmbLwB5sYGB in8 &|V^`Т#puzz])`!~E}BxO<{D-X060E.C+|qnrŊ63F@-4&$+Ym ;^R126>\ZڿIzZg*@5 Bp./S%ζXnポK cv\R3u6qK[]Cllո'`SzueC" SuSG[_ GD?zpY0C- S+&AED udB [a߄qIl9%؀FFû+Ӓ*өߕf\]<ٍDLoYZe`1r.pi2̶m= +̎&u|@7Sx&݀џt&˝#厜-1xYMg=՜f LgA v}&y ׷8dfgCNQ*Kf~\ x 1 dN}+wP*S3R'͝X,a%+A sS#!BOx0Z\AM=?"r:]FGk?yf0왞rt#0PLoY+8 8B^H|A՜NGΑU.QeśhRʆwR}m @pڕ._ݜGOff s:FphGShȎd =oDE;d-+ι:(X94MrD^ݘ\cLn_ьm)<34}4et K Jq`N Q80$JjE "|6LI"K==3y9 DSx/P?0W A+ RBe_%Z]%2z˸%Kj:cM ^XDk>5w> ;GWkpv5ݏ3 }08 0U Eɢ=e`<4tf"l{ݨ[alx %h HYj߅Px3sji^5AwU|Sa9OÖj֙Yyc!-3kŚ2ki|No\Ě}43$rEyRǜg*A’"#6.R0DFf7Ś5ceᧀLP?|eMg[I9LEEʕfj-jftneii_K2 Ώ;*8Dc*++*50d Lb KšXTj!Y`$h|M B--.#;si\ҦO R%嬕e&LXﻱ.)hLf\0LE~ ^w i/oʹRi{tiIy΍H,sB p:(Me[wu긡tH ?lr6:a2jrž$1a_]ZP8{՛]1&)u)ȼ 12*ƹgHbvl y8 vXDE|Go5?ę˱ )G٩Bo\ W #~PȘa`.^+-)6Fd]aro{ʇI \/ZNot30ZZ^j2 I-""Nz/bϙ3Y:+TKJ7 IMӂ4ZFs)>Og g>Ϗρ6ۣJ,ȲGmn\]] EFڌX]gm̲z шW4l56H\PPPm,+PV뇺]v_2PJƟJ? '?OZ? ~Wi oH778޿U ?7߰Xo`Hhf~5Z1Ď'zz3v?~ /yi˯ھo׿߿{PW;~On>sO>ϟv˯?\ͷ]z޾ew3D3<7.!>ccq׀a7[c61˻s783KK{i2ϭY+"y2eBܓ0N ɼʉ4`/ya>ۄy`zLi4YL$$k!yJ/_9,sPZB<85a|q0&_cVtCKc(7[xb[b*gs4qeďlhZg^X1HӧF='q "ؑ*C͡9UqŰl鲌pfOdy] em8c߱es%c{`-2vDq/w }yoc> <<$GW1+q'똘맿cpeۻ>-C╦=:|{/7~cw1w*p~ ]c\}f>=EO_Zy;𧯟gx?|wk4|U7l9K޼>_ϑuLeoQhܼncיw*Yd.1[M9%"zs Cn{N JYB6ԚVXLWFi&`ywY4TWtw4+2'SF B0Tf&tٴ|Ќ&BVdZY C2LPZ\ @]+'úߋyy j\@٫Gٽ࿑9Z,() e78r01U tqyy-njb] bWfS9`^" c%ĈU` ]=%Vs1@}x0m|aB5 d ȘʇWsS{on ithgYd 1=%S:ȝ``F,c^E{]Hxjp鏈ۿ~Kֽ $81+P/2s1)]_ӽaNt߾~_^^Z1|['O5O-}u-]fДEI{]\+ګ \:[SvQԄ3&REb_}'5Epq WqYpǂ\in:f"Gc"p n_t.u*܍춿 [_h-gΐ xr3o(e+.}jcZpIogL7CS>7> yZyq\T{X$R(IPxC97 =0/ tO&<鋺uLJtPKTQQbp$setuptools/cli-64.exey|TE8~;M:7, a!. ڗtDE2( pDL'M#oƙqߌ8eGgX@v%JpEb;TwD/ҷnNN-gd$)I$'Z5m2bڜ]<?*\C㲲:]Ƴzٙ͜FL왷3pUrzy/=3's;=a,-I`%ڤQRFJ$큗GD<]Hp$G~J-b[EP ҷ)7Ylbm<㴇k+va@3nkK+W:+o|&}y1Yz7_d>B_txA>AO߿ C sga͝]4NdT58iv,j S-kLI{ˎ6H#tKUKW`"slũl]^qjj_ޛM<jP3T>iB^#EUPoRѢUiR-qOol(H*Xjw)3{9wW߳^ ܥOe45kfMũgX5ߩID0ۗOۧF45wM}2,qKr$ fȡqMmp F 8ءM٬Z* gSsToӂ E걤j! TA9۲$s5X${&%aXYo*kRY''*{N g3ƨ^G4~pSWDJ`  J)I^hUR ;`j4-zoO $/9g;*Sdj[ih|W=N<~,Kdi%)f(+hmBcxj6gy / 4 i{EpF-Y˲a5g8o=㟍 }j$LFTMt ys9t~wQvU,i-bOs1`. r*p.?lGls>Y) 3CeAw   nOT+QD6$:3~.UA Sbw\z?UqXX^m&n-`Bߺ#ݲ@F.?U9fQ-y|*?lʶ@_Cu3YHf([zB!@ ;D)Dfu|$HPe4RXxD|[0G.UӲdd[kTҳ2Oq hx)_SR+ X=%VJk1:M}$*%P4O< Y',S@ *7JDj6~ޝ]57f[.+RB5cbfGR$),F ;zb (!HfCDXq@'nPc, E=rV *k9.%ۊ ,q2DSK! ̬;[~"+)aYn؂ g[tqґQ0^ S,0!47H[+(K#=iO x-3|cyFjc*]ܵ_Lam ll@1\~{ϘfŻDWU&"-2tZ͈}~,4V(^ Zuþ`Xu~'nX0< Vz7ɿIj$)K5NO3`$MfԉE>Nt"E>t秠)9>DFANS<U+yZ{^aχswNX&g]nb} 06 S䂧X`ʼnhjNq7C̚vB})p+@93XZ?\%l3i99 m* Ȱ#!AUf&̀n}#ey^DD;u*U1^a{}XtA4*X#Zݷ` pˢq'UMTvVBM`l zfnKW#SMg.8_el19͐ncVl~=M5?͑ռItD{3 5PwI!X/@,YCpL 5]> yw%Z BМε߃0 D}W.7{<<$V0: nW h߂Ԏ}ơTW0V gp]šFMh/P‹U3{pĪ٬,xҫfml> 3@)i$cm Qܖ @PZ<<8_{a6ɳ\"h*O?mөootKi+ɨ0uZ2`qն>r  R!E:`jM ܱ`L`y- ZAV0%ՒʒZsq!uƫuW8e_Vky6G)rҝV::+xL?![UqbUNZ:Vu;s-23Hop*AٲNr } yr.4h|n(J${1xY=YdPWjFZ{0 W[Pc@V>-D{CBPw%jK(a %Cvf 6.(bUFnbaJԨ xbZQV(P_YOPz6{vGi)'%NT!]L5$SY* Mڛ@C*PX?8k0 i/Gaȡ !BRMٲliWPLjRtAyRr`YO9!?mIϘA8et>Lym݉:˳!ƪLkY:8O\'I~h+NX.L,oSO06Bhfnn+xֱ;Ԫfm9M|>ZEP"~w@4S<ԮRkgCx23Dj׫Xb]l()zT?<#m>,PSKٚDWźQd@r|z Mfic&R!įFtsaB˯"pX<,kŚS^PSU'ȎJ Z ++q#ܑ(M.9jLz2Tbi9!L m߁/ňc.ۄÃ/AS! OY&#b0&y9b"YWb%1qYξ}WhIfb)O2̌I˲H9t/ գ`jҬ0܆bD>+(bNJ$Cu# v8QwU0UO}3T&_Q4>éPg"^m:wr=4t{g~Wq@bU0C7lqQoArY <^1_dPP8+τ4F`#?@VbUd_>roÔY3 )?26UX]tƈ5$ nn'WƟL? O ˮ"ŸTvI]hOiSVV@HjNWT i^E/Uu=E a_q HiL*vK|5q?;O:8F%WYSR-! +01ےiK3T?=V'P<DF ,kV(щWu@'_x*ll 4*; : ћ؇{&h/Y0 n,蝄$dhNB{k=(a#%yߴ+%( \D%a)m/Q~6,m33YQg*?8+Eg1lƓ6IThx- OdeFs;,jJSRYz.Ы(hL^^#[LgD6%.Ceɘ#VRVB %ZǦso=L͐1>{c#af=5s$g[8 ͦ z-Qtz{jA,OUڋm.}ᕴ4蕷SгX^~kbn77PKK/~`sY=A{v2ڛ 9[D)ǿY3u(e(,=΀1ƍz~s_,ZC)Hn [b.rC"7h,rIȕQ957XJ0ܮmUOH^@gˇkKReYien@QW-s`Z@3~-vŔbcsqR"9udmiXiTsi `-bm17*&SUxx!;@Oi!RÈ@PxH%h2q В>O5 MXK@*vņ'ĆKSأڇ[`.%,p~ i~ڞ}: , x sXL&]$,pY}DQfm)W_EbΦۨAyT26nCJhLB]2fz5\QtzA?A+eXzВ]ijT M{{_/KEaѫSQA9->4 2k(ˡý ;hVF{\ @j\S/ti8}Q_U^a9GqHYQ-S˚H&Hz!= ښ6*ޝr LjU'DDDЬq"WM6:_ WUQjTFgڎ#Y,Q94kЗv6_9L!6$Rx*E^eTw+"ȫ %p4KX1c}>t֑یW*v(a5[ۀ<ơDժ6a\􃺺Kjc%mWW%gh0t:~ʲNx[u(^ezFKd4_blvB\Hza49mFr cr_x\DCFgѩˡX l/죥GռMS028"?jM>Zv,o t((ɫPDzTY`x]]!X(-6)LL Z|zf!!1y80Tjtn" RY^Ǧ85?@?xdS\2ۊYq'gxr:Z68*^`-f50=O9u4eGD| ?0Yus.㎖!ͣ6 ۪[ƧPjf;YMdrYԪX)=s #Z3^54Wlԃ(V͗CoɄk~*Ot%da@<,B*S ԟ(o:buKbQiF9##/kš׀V-e~~`z.szj*A;6mezTT=5`o>r,_sTx49hP_HH/.WM1ɼQxWz/y@lFY\1ӈs9y۟n ,wuP8Aw:k@> @~OM!Mv.b~ $_"vѺnnS )|7"k~U='sT=7EI^Ev/Pk/vʂ<Qs? W 'S`V(ujLw| 3ܧL_B|NWmho_Cn6ҷ76Y@6~hy;O˂EoNǞi\^3c@(`!A} RVM^_Zj4PTVHkO0A{9>'Pց\,d|K'r>yW|mF51('~o0Powr(l|O3rbӲ$G~ Ŭ#<<"+a#=ꉂÔ8uIGNsE2+|įn KSwv5i#*U9GTW%9^ئFOsbpt?j1 {*aO6ޣ슛Z)]:|ó\]8n PLGS&8h}b6GL!= J6PKh j)/*~02L(-8d&DKa:LR  f\xA=D]~@ha-CrKsljY~Z ea!j$G"^W 5P~@{Գ>ᶮ۳!0r+e^Ld{ grQNOӀXK Wۉή@x9)!52|Xăއ QwD3v/LcEH\>c[ՎcN]{UT5k.B30ʥs[i_eL:|UA.pMjF+V{_z!!a:.>tL,B ]KR{g? nK:ױ%sE(@tq^6~f+&HW̃TQ0^WQ0C-2?*,AۗYjBz,W/Tyi#Ys /Q4gmXP .kс,֧8FfA' vΪS k O\Zb$'U#=,=)6v‡.O'N8PVhcDG@;o|qgNNTӤfΙ?;lQ6L'i,t>\2K%MC0X_D!y;Qą_Q:é0#[1O?*Tz5j`X_}G{^7 ?"t"ߡ?ʳʄBG΁xxg< 7+&}/ƤGإ|/DŽw!aMZBx 8KŰP[g!]0=;;;&t@ ;3iAttRE]{")=(tx$^5/>/*6Pۭ-"-{Y?oE chu%T,R LY0SĈQ& AP_d+[o Ez::!K36ɼs`? rW}q_Jm;/*ܔˋ {lu鳝.(FqhF m3>G-`YhFԦ 5YZ ]}l* wKWn,śDZV2َ5<ӡFf[$@ߢ84&V6gӳgVjdޣ0ö]e rH6zhWm++w",f̪Xw) ƖX7{/wJ F]Zʣ7TsGmZq4KDൢokE֊T#wf"KبST$rLRvd(!"SlT{[V 4!@Tnl,.:zlry.N ¡ez q߈eڤ,wR|F?㐹M 4`#mzGMǣ{pAZڟ%p* jiU0RP}]؊la9)O^4#w q l?5{:\dd}@枹OC?}{ǡy4F3B%;[MP=0GN( RztS%1~ϡ1mO=.i=m*̥ڇv'@niDUAv_(*c.hx AWK(˹0Ǡ%"V-Iߣ{3M&CbFTF|6C |xjk"VCD;?5,I%ih]r`L?41mx.\mx+7x[,ک{E|%"^h輸x#4GL(OCahBnM{_s *x˷i*Өh; H cNq!nu=[typ[TFwX(w5WvoVzzloYxMgI@HVgea |hA%rEӅQW0<5 ˸]4%"a5A0|!dSsԲg/P(,^GidcZA'r(L(8t^ [SsXQGpQ[X>/Z4uݎ ~ڗ69H *݇"C< ɛF&[V6GElfґ]F ބMmqv*kt;6OWuT@yOzvl0DCGicvj2jKlRY҅M{U W*ؼ] ׅ~ s`Ov@<2VSm.~D^>WE"j"ѳICBBzI@YR>O/mwΞJ~ ^*rt>Ƌ~I ^ U},^c ۚ3HR. LVlą?o0T|N0*|P'ռ\U'ѪhYm^d+ Ke׿QvY膔WDM$k RkodZv@D?s}i9Dh1R t9`Lw2aZ@?3q]m ֩uݾvfݳG:[U D?S|ml+NupC$)3;,JIօ7_h1'`a%o\eOBrE9n(7$]tԢ.XjqΡYn:Q6yj* 񼝞F-G~D`2A Zkyrz#A)v-LqX@^ +hF-nZ9 }f0~AVdhN?,ɫ1(SsۍVK\T횃p$21G x:Y<eqv?0#ˡe$W$,XpݼlզZkGtiOq*"Ɏz$W4=i$>R'IY^a&/@_AOGuO~Ƥ-"{ȧ-fH8 8]#BV2kF&2B m@˯"LM@= =?HŗIH-nؿ%,N2 &w y]+Tk Ԯ-G7j].5w|eaؾ>L]Qp!Zp#ݲ<v,:!d L+S0;##sf=B5eTlWx0e+nvm,*λ^𛦿yR O'yX4n-:F|9nO1{acͬCaUZo5Rd( հXBU;~x@jcڭUcK21M+A^ăa@!x|nxS߰` :dcYŠ)=Dc◚=`ݐŮMiϏ)Q~$2iƞn=Je{e> QkX'-LJ]Nv! ep#zP˂l2oS# T4Fv/Flmi֟&]Y4im3Mx;& \G%Z},{}`(͝x7טSQ/2=bF!m{1Ep=cx8Dww'ӏxݙQZ_zwX?jupzNVs1e:χp ՘1qT*UiB,. ܪۓHb!VݪA QPrh*p}q5;϶zPڰ׉=M@QPF h[.# e:RBfk+DeuJƅ+C n%(V 55Sύ;/wX;_R?浃W.չF-Si/4vYoڤrL((E/J=ČjQWy%BsPVܟUm tSS^#xT.-# \wdk<˻3g6S,p{Y!J|2&N^w8V_l$a ම) '"weYhzam_j>-ָJ;mͦį*xx^I%v}5BY3{~Oo'r>ǯY/$WBc,wIfgq4ڭ z7,zh)+p ; oV# Tvn~ָ` U.` WAt!V o8IڅA=G﹅YAֈy+(G 5X+'lV$OYeuA]&wͦI!Y+սT_$¦ڄ 4tڻMNx0էAJߠ (*l|gKvM]IO$?C WPo~?܇uђx׬ŧ ћGA|^}NӇфo<-¬G<:SdIC5pl=cn\Ժ|YwM g~+k"+o`8'r4Yx3 ~ǶF*ݫ0'Ƭ> F>`:nT=_ָ=O6?ݮT:ػA|27LL3(fkn^@wAg2AR^k7.hJ^DYjw]^gN?( xŪJhUpxֲ{mgbb Ȓɀk#FϰG{۟0z5NxogDo>(s3p4~m2qS|Mt$^%>1d9a3X&r԰ϸEsxOP*&!<ƯHWX h y'Wo_!"=7VV>t?q4|umpIg=(?*Ƈ~Hۆ 4I/Cpun! ;C=/ֲZ$DZGaxj9VwX>l}uƜ|HW=Լ0j>*+4D9)}i(~gKQ}%-z٭7›6D/noNO?NO_2} |D䙸2I|.Ʀ¹dۂOQUcj>pC:Lؠ^ؘ 31ZE_^>~UĻ[[qlZ~`79C'n=Q5|eqX7ޮAkC8[z R^PYުF*;ua+hmM}z\W U"Tg>W?f/$4B5rt1ZJ ԂDn5׆×%\8r>/Bd~pp1#f+n!VyQv*,[B)v!; 7>w(ݦ3(OtJLDkmʺO?E8 ׁMٰS#zkYE3CqLW0f7!?]׆K?O1S .# +Φ1ן4ΟÁ!Ǝ!E9hVd%b\덦yt(W-kSmrhy^yzUNjϣʓ)+^,Qθ8=@ږJ>o! h4W`q|pۢ oRAGLqJKl2f `dXWU}\1M#N ]J:i:ϥE (O7B`G}v `"zUz/dm p9Asrryj1N#@0R2mgx:Z-o֌d5PaWyD&@~߻IOegx5>»}DEתa:-JeT=_w7N418:>1ټ"h=+%6ܓyČZl=׸x-5L"▓J;\l1cd`pJ^/6Ox Z=5x317jӌmaiXus-#R[y-wunTzc/a2 a!WB~7]棉ާN*`!*k^KqYPsE PFTo=m ̉ !~wɮIH}U'/_Jve]w(am~v:ȢEDI0PY f:3jлsO01U ڻ o#P 6 ٘>{BOB|[ǽaަ!;^%5s[/5R>$Ӏw%0I%.UyErB3\$1+&91ћ&2̶~p 'g^]?A!ZP+ܰŷh5MC-qS#o)BhtS^:TA:gAUq]; .mH`8p|[Z>X 4DN^Y]k'4Kkx3k/A|U F3G8;GF|/N!?Xp?~z6jo_tzmu/ jGW-%KXaMKw԰1zvw ~co46<[VZ [OHo(X ~/Ȃl809 &m WTrl!Pى@ ŗV'p{M='H5sDєI 8[$%&{ǔ=Ab&OA8A ߖ0pE3#)7{"1?0$6i~p|;q|0cNBc\+Ƶ`vfl'4w5< 70|O^a"D ?&! d{EOOR>YBE`\ e"0;E`1|D&? #\Ouoawz#D4#毈0=Wp p+0XEͧ0^"z0N׊0la<ˇ0"Lm"L';ߥ0uߊ0RV|-7K—Y=i7+UkTbbW(fɆEҮg9&Ld%2! f)1S#b1V"b"bDb^1g. b^1ѿwwOY3v4 D\c^K_ ]dq=%}MNݮT},f P 42$I puRZJުI^_Lb ri@_ du z0ꔀYЍCчcO~M[ӡaj6~qWJW{"qKcGgZE.2{߹4ܱncT[Iy7/I`6;t!u;ݕV˻z|nSg>\]кWGl^|1&'>VA:O\p$v,lX!A@]F4Yg%c5!5XrȔQ*S`)҃`> 9їbAق|+?(?$!|4fOQXfUnRfEPBP;+,( 7l'Arafg:OCif$4}]W&^EubT?&r&7y qNґ}SNOldSsO6 EO-EծW Ut8s?"@a/WtZ+uQHxϏz\+oXO'S9TN֙&k [հmct/|KWXJ>HH|0瑃ЅYo y6J9Co x[✞}[tkY{P%YGY+lh6QPpDmM16K2fB#DNsA6$1d8f,\7$Qcb̈́d▨?n dm.n-NU:uTt0=UOEn隖f9Գe4bob|9aa|=v#Aik: ngBņ:*LvP:nN~H}sQr]1ȷ y}ef%H%S )`Uh(?b[>7#3/A7՝) P%gf~ATeDu8) ˜>Ꝋ"2{i{@;fEԕX/&g$!';q2|6 4Ph݌s>2|hH>Kdyj`iOof^[/mi|A[1QN˺Ky^5X۬ +pѽ~(2q 'PHku}>ʅS+ӪFZA{T'0.5yI.vv03QZvJc#G>BO퓧r<%|6є6B Vlf$;ox7gQjdQfxkQ,HXb[bx?@;ղDTՉxq-~z;OK_K]~Ai:Ji!!"T<==Q]Qf7([S>f@z1ӲG&(BxKQˤ ޗ'dI(/-!U:k'{КFE1V._z#cuT5e .C왊J<;xe6T+~N!9y9jxny @|eq!8;~ Ԫ1&ű0"89A縪RO[7=uBYu;ݏ/E,D}p|L|O)AJ~0!;XEz?SinNElNcmg>[?}GX"7ԇ8r{ܼ _fwu&JHz&1S3]eZ41 ݖ8MmoY, Θwɨ"*OڀGѩ=(~eO N`}TcPɒ4sq&%Ʉ (GM萖kwVP9&UG5w)X.lxxzE&nA-tӲ- 񎚠۟jysIRߋ%\Y$I]䰜0zXZ@yXX0b`nhj!^֠$iOre?3JL$34wjvf <^U5ALH''~' {W s\2۝:Y[dv9N-FNgI"~#EI pǮGq"9zq7s*chU|ZNu2[CüL|6aݙ z|ak _m`⸂f3/ۥo7={x$)v;IA/- 8mTIz`7 82N0v-plw 0NSY;INm\ZO,`xj)Cv钣ne=0#VrA T] EE? ogqTv˽"dۤ˕7/a(I`|Q3Կ/\վ69wL*JMDt)B7dn P9)k[nܵFa 3;S BP:x?t"UR%a%Qf=Qnbwлidc񦶠$сKSf35{?5&tCrK_AfӟD t2`'nҠNJ1X2b$?ŔEph6Z n'^P+K5n KSvjlF}z Ne'w'wDep&"n95Գ-&^qUߗR7x.At6 Z JʹEqN/qW;LqK:'ku0ғ@j^]2Lo9!N(4o~pH<zPO\Un@ltly/.*OvFD &A`.TVC,gME.+\_-~\t7XTS&Š;NC^Py!l` :G}IJo> аtgp6MYt^"LBҹX]Z#a9,wq9v%Ym0E8+q ոE܂{~),{|ogRnX]Aݟ-4_a |~xTuEY0/J>ofFZYi%޶ s/ jSQ 4-J_ؙƸ"[QlD!oC><&E,}UGI-0 "Ÿ9j"myXyC]v,&@-8kܨuα'lCE"pref^KMF&)5ڶiLl#NӶ[{k (t%UEVĦVRv/MTKP~@;A;MļlE :z;Ô:(z ùV;(@>@s(-C@.o~w*ڴ8>d~h0y8}~_;TP JL!]jbٱʓ.]W@=UK 5$\A W+ IGS248%/AC{ x#(,\c}YO ;,^[Ao+v[JR}b]`b~4.?op mWګG_4g4.~^gXj{pBrT.Z|(.ܮ +_AҀ]-sthٽNަReatl+bf(X9]jz$QS؏7pU؎-{J+xCo*e*?c*!e6jp0Fu8>84T?,Br&4cf{QPa S%jQ-;Wa}Mtic_M=ƋpIeBūHytKpb3>aD6iO6sx͸R3LqpS+mP_xKQҁa;j2mAN Q{Q.+m_}C 9I3Sb~sG= %X1csPl̥WgdU}9L+0QkVٷگ45ǻ0Wꌺe@zۤϣG-vy7 ƬDUMµEq %x Q=X-Faq ja*ɣ'[tƭ>37X.WY. TQj6VBgN(|*gQş/dN!ҡ] JE2h%_1 *SseD .S3crOCbe5'axWvWlPτ[;ٶ‘[gN 2Mԃ'o[Zn І %H /UNdrjdiw)MnlZKn}[u^ҷSЮIk\[ ثHmWj[b38e1(=.z^~q)}g,'l 'WpffGV_9D[#k(A95ZlTlTA䬚dU-i16G}ۯv&6+"i隶N'j wbӝL\'*\0bYN t'Zp+qX@k \fZ1/$ٱ]G<ꆑl0YI5;P;=ox0ƊE +p6uV!$Tdɑ '4*FX cǏmÍ{HziǗxF>i5xMyrݭmal]s{! 4p&9V%Qc`V Ť%040auuF5;F>"wGѨzuaQJ$uqORm"?,;-yVJaebY|olX!dfk8j{*1ièK 1@Kzz8.GMPxEđ߫jI r]lB|ۘ R3.!p[ދ@TմG0Ӌ<5w\6 ttI0.NQ=6JTQk@@NE:D1,^ar~Ub5;$& NwF:+ioytĠ0`ػ@ur1>(?_ ݫ(qkHwJYRʧժ '>$gӚ|nI}J7TtZ엘hF0jWdAv5[o-x)&C/r@NOH?HsY.m8p~u',FX9nq$[ =nɸsN)ݜqJD>K*ildyUSMάAxӘ.<2>Q SDeڻȯCXh_1p1* pnF?vo8_JQ _<֏V3٤_M: a]W8&ٔ<onO*q mЈƓ`=-;>-8BQ {7&PD{X (Qڿ:(d0PMWצr[M hTh$gzڌ~}kSw ( oկYA{_8XLؗ~>Fx:B_Yt4 _:t[S 7.4i _:k0b {,ߔ CBlzX%ΈߡU-XgS(`h\+ya HIT8rÝ5CM8m_:M!x3i0z@fFrrPu?,E?#Lxj{XѤV7VDNL Ov#{PgŠ[EY˹KoAU%V LnrC!:H6LP,P;+MPY_R LRM`0lZ"$ @<١'bh/ZFݾz#s6k nb|W=pjX.,APk|PCUمݼW W`j{;XIa:c~xu/rFN<-KJg>/ԪUTY7(\iiUk3R|3DXWWPDZ>&7 i ǿu.fRlQym@z oG؂Dbf>|˷ 0_rBn9ҰkXd܂ł۶h6B`ȶnO#Od 7Z*}h^~m3 Ɏ$u9`JN::@i9 s i$Xao37LCώ(1o_O;e[&Ec/SyʄXU 0Ejb6l^RyRՇjXG:UtwV9Tl]g3>^W]j=+a\c/j vzLfJGx ;v!2<&G͝1r︳&;)gT1u]| (_ܴxN ')oa)ԅokf. t~XWtq<ȿҘReCvHt!]hK,ұTc^p~}>Ǔ e}|ɡ79H OW2< ;c΁ p7cT1T_Y̽QG;1xᄣp !vABBDA_uXMh/Л[.\KCcr&8?`&nC( =cџAٗݔƏpcŤcޑ̅Kغli0ϯ=I80ڮIh2GcV|Ag2M\#efYjA/!yf9&;5Iz$yIƗ}%ub1,]\Z mND`H` Yp@Q4)h-Lƪ44N&Bit3FK-5w5`y^-f{x/inˢlBۚtZ幅t Rͫ+ 8X;LR$'me3wOx"t'(pT,#ǣ`9yx@p%*["1ϯk8cUkߠ>كeXV(+ SUoΙơOrJ{QVM_!)AYkl[:3] M&1l&M:1oYOvcF,S_-gIyp HmDT(s(/v?!"8׋Z`&1r(Ǿ`߶WJ[s?׊}bms~;cA&aD}N^ף7U} \8Q*=8N&EdDzn3xJK-W?cY(1(8(59Q ʗ&>aW~xC2醠!6h\ >mZG -kb7Kb8&q ɇboMM&K"%ɒdId$2i;x&oy_1rHu]soxW086k:;?} Fe]׊ʾ4>A%4뀡k5@YDzHGYĦt#.wFI)o[9iMySڠ W)AX'.gZ_C-Kr%ݽ:OdtKaL*Мǔ@Ez_2PB_rxBV9})z`-"IDRd9nT6]t&@T’\P(ZCB)ڷ"9BVwЋߛ{M%@QHƛmvCCY#B!uaGͽ\臁s,zY> &Ďy}.)+ͮz:OʝNq-^K4*ߨqYE6l$ja98\o8|8a#rxëaFo.8\z少O9j{2a,7r8I0C7>_p_qHz8ɡùqn氞fUM s8Ia8| vr9srx=9aeVsބ`= n`G~;t]}s \yf<%]e9$e,0=%aar=<}RJĢ}`n0ě4b7rk򘱖qojbOx#mdgӦgf͘9kwjݿ';gnn+^A -~`e:>X(\2<H^!YΩ̕:eM#JSmiS\ߒ4jtd؜vP99@V9.nI$HeN1x sK<WPhXXF+Y, 4D@Kͥ]/| goTdP NLsPPPXj)-u-[Ȝ'z 癋!.櫰P()*\LB@ۈ Bn^T"zqfNuAIy1;WXo)*Ġ% ܴ% - 1ŹL)9mH 1Wh/*J)dy||ӦY\"+0sr]J vX^#:?.VyӳXy tIqk//t0 qlK$?2ŴhF+bBL>/,Pwmn2\3npnJ`aGs* kzDbzCaaL;E#ƴ7KZXRK*sC l[;[$X(@1?0 |x!- D2Rx\RL)h:o9YPXL!6X,B?@~tW1dIW'R?mo ؠ%ł=?F0. 晅4)rqNaÆq0@sX< ]$ mv}`G:v?\^|E9 UVG\YY '%g4aprƬr_a5EsBrE`.((0Bk_wk~Wɯ?/_Ÿ.ϵuZM/}Q6 G/_-/2w{/o[;hMWVTzpuU7=G{><ֿw_6+7oyOںv۰o7><~/'?OO5_7ù.^W* /N|p]`lLAɜ 3KF:!tʅ9ˣR}*Кr 8O,$&Ez'9GS+ia7Ɖa\~ƅ`x C2sѓC)&RYbWCl%1S0Gx0vdtSZZc9ٓq!v4֋jȎ:ٝ޽o0 nțAK Yg&4IHkPέMB~|g8`~Ujzcf؝̹-}`tg[VV&b2PV + kd7ãP?aP7`Lב1=t=|# jE~@ ܫ J My=hD 4(ڗRBB|ip8:>]?MʨO׍ILje gTT0AcIen_N[lw$l-;:Θo3B֍Įe}mB4;퍰VCspVq(/7Ld} ^{F45jռ%Jݴ06L&oFzBzB|==ݛMMj#٬a0Bw#rhQDB#Hԭr][9zpǘPqCGC(pڏŇsTΎi i)vztk[Meh 7'’~;'Z.\7:\}MѵQ&7Ɉ֑ &1 iR輿imo_%A5D7. @:Nm%2\6+8D5cڦSp߹t[.E0*vyrW JK݇+2W4-']iv\q<'2s7mL$9KJ|S*C/)9nA M2EW{emEE%n ,f[ sX>SS|STGi*gǭ ǃk0vfbQ)DD-Sݎ6E _(, 3T3YP;IYǷm>Ϳ ޡmybFN &ڶ)Dm;| ]EVgR rb11Q$s<.ngw?Azfldr)Q#AL da3 ڶB!Ծ&@BsEUj#Os*hoKb ϭ'gSCסU&o?0{ .L6[!Ԡ.s,^gJPnxU8թoG/2{wnoܾc}.0{_n}5v3]>jl=׫e*>ܮ=%qb5~nܮۓB?<`=auq)BybtC+8L08$gPK9尉Ã6pZs1t% paV9a& Ym:ԇ ?j/է;~,<,|3<*lx;mZxm$x@/K\~B϶{~Ûo ߓ'vxtQ'[ e Ns6Wz0aАfB^woݎa"&`3·#|/#xYx7 Y$7 Axzwe~rs=܏? `f3i-ʨD@^>$B %`h< A< $<1{} 56S0;D?` JH4jLx`;Sp?pp#B5d6iw+O8gm? [p _ogcei!<n+G6NWNqq |AFO!]#a 9 ,݃ߚc$^7`"i<o-ܞad ,g.OM3ƒS L|T4׀3¼LVn?by4τzXx,bG ^IX4 óYX{`@~P]}ӥ>9a<#n";{XZY}sلăf3?f3(affw x ޒ6|hkyP`N8wok_i`-7#i+? ̇~ t{@6xb\_,aVk'i F \hr= \e_Z̵C^"LB&\P[e f=b 56ςGFe&Oxߣ,<ͫ Vf[Vw\ #l}oyOëxd>tgi!tfX];¡B[~[+gy?Y] 0@+`Fx K@WFh/ ?+x^xޛ pૌVyC~.,zh  s[sOzlxn+3_O3Ak;Xcocx> c  0X4\tjb x 0 9aQGO$X'_FxS?+2 93.>cg!Fc|p\j"O9 :v>|c/qܬ_kU}ҥ?$=I{BVJ+ǭi}}`z7`B,Ϡ-?ߢ 5@ m3pTY-% IhXgZ,LwueA>7F/S0,mXXC[Y  _ [J\J$+ ̜ D6)6nv*‰ONIf2E3E9|NEКS1>M8Htq#.RtxpRz֔ аM;M hYLpiF=`vCi~ xNqPPsk\ۏʸW-&l<|w'$5iЗs99Hίd- A+9xռ~3:9:%%tKF]P@זو+`Pj/ph^JJ'|%˜#K(< q6.eˍ5ɠ63p FHJ3lKtVJ,G oUtmzX~4; 9tQ6=E#t\ mN7lhl ׯHvض y)H 79&-TA R|dBaFuD6~t*A*fYųgU5!so˾kT疶Ve=(ʐ&υܾ<8&Til!VO@^`E?-ЫltUb2UNGzsrr)SJm-G)0/f{2NFk (ת>YP@,oA9@e+4YeH6*ܠ&gy}]={62blhY/DeD􉑩;UmT~IԴאcGwuK>рCR:}_ҍ7*ا/\3d"6:7?U^- Hpiػ+$D*0ag2GQ!U(5njzk}poAR 3,ua$vj L##yt~fՃ6S4o r-LSaGlH:^ShzބD²JV4N&Co JL&)!i<9J(N|f4= e\4A #D#KJHWEʧ;\ ̪5-0Xev{5ҷڦ\PD& t1}?g.weoi@ h9t/\?xݮW QSW-o_fyC+Xn4u'&%bU. QKEbbe峩$8@;]Z6h 7HPޜJM!:D[F.x,9zoZuoUȈ1@'m[bB7.tXZn(zy6 mU:GG̝ e&)A[l.lQJ[o`y`&N|-gdkiPz r?q` cGHOvPp9Ap pm1򸇜a@Fň FkKS: :B0io!OYS>6JFv%jfN' Oû*"![_uc64O(j`&f)9ɄwNy>©xʁ'=ST0H\-u1Q֬59O-lk֙(yInyk^In7GS&LȓWaBTg|7&X*{}<^?Kc ;HiU-E7kfQ|kh?k5tLWub8 RZ'byZ _ioK+Y.Y)e$ Wrb,"1(I%]yݬZ}6 8ڡ<ÝJY>W2_>|Z1fW( 3@.!zB Z( vٺq 'doy[f YFaIL +]ƤdccA}#urg*:*MEV jC|8M*㤱${5MF*yGꎉqJZ㜔Nc}IL)@ e\z"\LMd7.Gc w{UU]]8{mW nt]3gnY&҉5/|n5.y>אU hf`Ӑl퓋J3y.<̿FIi6S,E, HLm>ԤMZnLbb*WUKg@S-O4orv-J_j@{/QoYj_2q7w˩vWe6a53_AF4ZۄߍIv*:fN&BK\ޠY N?vN `S d>@JxL?L  3ws]5v~=|4'F.$#U@SR]i[R@FN~ovce5T^wm~|}W 5?OTKp`RxQ^yZN {OBʍh@BֳRԷXl,'QGe,wخ ^qJtliJEy c'L~.^<ȹ+.nȌ3E&,wFu%zq] Pσ"ԦJ\G!|1\,* }N{yHx/LO aWQ0{w*T4ĨS* V-C3ơS`TUӖy0EuW1|6:WDSIjf MP+MR1 &S5WyLN)My2hMYdLkf_GMp~r#6.֮٘hq`FD2AI3~DPrVU*pl% i6V-i3+8S)A/-@hwV$ va\+I׽MPyu8~veJ\MǨVIv=tx 9)_Dhպop H&WN`?>GOFRy)4GGR(_?BG_ ~a;8+PƩ3y]_kS_5pJ L|ʕ= Ͷ,8Fgk47&Ony0WP2u,p X-bMb7x_.~AnQˇz'KhDΫ ^h4u\6σ1N%Z|^]#>w_Z&yJ C ":rYw+Rfr*Hd}s= } zIF3G> %MN}i \yu䬝OrPHصo屭@'h#1pm%~vq¸ۇ PՂ~604Md+k[oe :V=EPIG U-i^7]|SC-Y~^xdlT#z1L |u4{{I:Aoq,;{PzX=$Rb~V}5%z#ۇqݎV٬i "QӢIQsUd"(cb\/L')ߑىΞ`S˖嶎zZyS@ۂE d EN%gz֏}"V0t2ȑƪЉ1Siy>I8 ]mIV]hDh5uu-ģV!P$FyLOyzhR`! ]/^386l@D븫4ƒQ2[0~qW z\C(waɝ|*鏀#0Qx~8&ԩIwN;:֏8i\BvGObrk6bk5HgV6!/ÉƔJ05 ?K7/u{ji 0\25[sD\ ;*cսLPC b#y5&]; s@zxK+dLx2֎V4}QK1'":^re (ńa)RKлhnC0;EXC6j>ŮI1.Ĥu_3_c&901B醯p'^[Mz TYNoiM0_Qƾ4-nZ:ixtWmE -+ϲDɪ}z>Ussuh¬7 ؎;1KnJ5X_W4NۋG#7,Fe 'mN|Iu vAӎ'&]gͰü5۟[={݂7av3O0&.>Tw h 0([U <d" '-w9Pϑ3Z=ns)&\B{na Z.6Z\GEQ9"$6/RuA=ɿy)+S.Uoʥ1sˁ"S+PsG&gDPN&;-e\;S5T' #vjT>J^ǏNVkE]o-[\qn1'KuBhIUV񱮱a&䙘 ",u4Pi}Z~ԌMƷmbzSyT Q|w N~ZFUO0*@epHj -B qKqiwłG% y@@`xsB⊑3PVK3((x(x h%COo]; n߿{]Jvvk*Ӓ]"Y& K\LW D;簵mr4֧S49Bɤ:VF+Q'lT кzG$C7 zT[g9_ǪbuAMΞz솩^} 88D#ҋUHg =ӹle˕%2?]VUe%JqBf]&,-̉_u5(ϖx@/o=te!/Jiz(y:OL{{<Cny,6oɷNLșjq/HU*]یVW]:DRffQn R~c(Z24E;yR&E_1jnEl;T@,EF=$?maWG2 uJ9vR|A@{\K`].An @E?"*]ߨhdU!qD35W]f/ݬک8MŹZ'Tkx ]AnLݤpbro .-ZjyhL6 /[r1@%!%{Ԑ Q\#C]O%Re(eau)9yN׹l1TqnVǰվm 7N |p&T $?,p;W|ʂc@6+P6>T\w)i*#u$nTbD 8& jd ݎJcsvuyBRF $.@dOevlb?f*Z =.^7hյCl'0hc;#x4I_#~ @kĭu/V/n˺k8?H>A$,%l /+x1 rRhqL[xMףq øK $e.<-LcMU:^L{1,3XjVvE~5HZ3p͍#\) a)t2ތp{EᅶnHV0UWyf99Rm>soIijͳkZOe^>I Olŀ+CWjlb-D=h;9$¸5D`\㢔j7mE$ױO`tOpvib7]Oi7q5#m^% YX6WT46oZsX^=6aҴK7Iy "#y7~kͣk-=SSFG xiƟ4eږY&SZX` b$ FpA֭Q2:7asve:7n0g nKa<~:y=gf{v~&?nOvv=Djx:ܮ=x=Eg*ďL+:Sw5}ׄ2mg=vA047ߟY :oJ)p@-D_KK-@q슳A֒̕^3Z7-|4XXwD-<'o1E>4gEB[̿o_flZλ H["46$;&?P^Ft0NZ 5tt6Ў &Xaг_^F;"lt80t~R{)6cy ,Zn0qft@.!uZ䡗@HG*@mwa5Ӳ8mm{*Q.&Y1 jݞ aSF:;Pίت

)E\"?TL LgS/)~>R.bwӮZUb5dqyjrdg/m[[['JC3h<0;ۧa1IF?dLh%آsٿE9:=BA=J^@l1~` ])}E^ 60.k_Z5 _ v'K߯M7V^\Qfs#8@{ˣF}z $E@?4/tS%Hɬ0O_0&t!饭Ј +?r;-gu;]%l\!!B}1q# V-ȝ^vkB!Ղ4j`s^s/{FG^Bh=Aoʣq\E* (EB:FP8A!V XԤ%sҬZF+aě.5WO:v{@0f vX[-0\L^61xZp7k&$>Tb<}Xw_!omfzINL*iE&E-Sޅ6L2I=?jj'@ZpENΛ Sgvs}&PU+w89b$Eiq>kc)#I-:GW0\҇*C_$x )-8Lhqʵ8A9 k!>j'Q\"T{wӧp"$ aK|d ^)֡`ZIKXuS>\kjZ4KlPH=,>z+\L6t & ~Fʛ>MLeHe< #76W3ͩ*7*^ Wׅ䘼Qvzt+EZƂ3jEL%6)-6) ]EhJ Qklh͠?y&mU"F_cs}{4%շ؋(yQvIRlpfNIVNT̸n'8ꢼ+!sbGQ]ݨEY_?ŘG`R#{g1Gbr_f.&-Af2VݕT UI>0wϽ3= 'OHzĸ!Ք=% r6EH>~yTVH S q)m.ꊵ_p]ƍ% Jum=kB;i`.܆^7EZ} S5#ǽtc@&Ri<Ne#ZДN)Nf1xs xm?@_"(]CjZ)]_*GR ,~6Y{"p^2QҞ YD}A4QG*C9%ɵg'LE#VZ!& ƘIDJNF.aO]ŚJSCo;0LZhAֆ\{ٛRFNQ!٧+4S3A*ڄ/"*~#W'[3zƒN" }Ǣ :!b ud8)NEo?d'\GjeM[t ro9LaRnO &pp,P_8~+sgq{#5n81~h8O-5v70澾@ѢD{V%3ο[}3eP9&)snhOS@:\xjN }Hrz=(k}ag*'kM~uMCC|PP9l~9_爭BbSH${Ƈ!R-h!e"t~J說 %PsY` 1ҧ8Va:՟]m` Q} ՋNHra! B?K-9:֋$=w 5}tw?E(@ڴ>g>> ZDf5Q8X&ex-GJmlԗSMRUyⓇȡQ'HU񈸯N Uy HT2rx1ؔyx2_Q^' XZs\b,*'n7t|^7^_YSN(] ̨=hD1eb7µlomMkC[˝)NDӯ ?+Y:I܅:='t׺yʝR~sg1.3=gR"&7nd<8^eD@zn[eqZLM8|@~Uju  u*R+1)AŤt-^O/9k.QٲRYm<?a+ 8#R'`.!P\m(ݑ|߆KJ|ҟ$7'{N=Тڰ/h-4qU0"hLC2W U'^*f:d#v7/M tcO)(6ZAyV_2Ý+QOںX%ˆ4 uaD/+^*U Q܉*mJr4$J@ҢvRBӤ*px69,gA?"z;ۼ/̃xI,]骳.3jwu0uMCB&񅃂 RA^D.pNrjD M:7I6c\|5WoH#cծT+|6+谔mYW]t"P4 +vv%bc+UqP3Iu صוosw&Ml's0x֏ޜXڎN`#B"(ۚAZnU#kEB7Ol.[vom,e(ԚRn4N[z)ANts|?lt&lTZnUQd#JJ%B/U0OjK ZrٹN-K1 Ly:Ce38-ztM߲/ aƋ83ʣF1e&>ruy=?g{AAV4P @usҭJs_hJ-$m@-*%rZeβ=x"h s嶣єʲ+Kj$m UZxͶmx\+~'xTUhQ+l ( wdH R` 3Cmiܺrl F+1W㜻0,j3bLp<-?QĎN);.e ؅U^G-8)mrL=ZWavdzS0¹l^[c@N?x7 ^IG˜իw"qňU"O% P7p͂mhʧ#}d"0,zMr'4wfg.0J]o=uPFX@TfP"ιDOd'⯒/ؑMH&J@T;i hXI)7CexJ_i ?}3O< p㌊fE`OIQ󀙙ލa0u$y#rHEI©-b(c qY^A7t#6]jʪxiQ Hp¸θr8.ڧ~mV;G4]ZM0(M>39 f"Vj<^!Tm&m墬BF$}%U 7Bo;6?fܝ *th3;2"+cML3q? `b+s{xӬ< :ٌb#9#ƓхR59sO:* \$eƓM9(4ݐ>Lb;O<8ϑc4942s gzk.̂2.[ꮩY3<[dPQ0#mH֙!)\ 7ndU&Q(R.Д[8j/x &fF Ey,qI6vc`;BW ufm  4CMُ۾ yóhn,eZu)PN`HosPף]>exjRCVq_FKk4B$x9$p~mmoۍs":N Cf] }<} u?@SKJW02 מзə};Qà(%tFݹ+K=X`*ّ0Aojh\d_%i@QzqmC[#i_xFmG" ;淡hGA6&Í[zXA1ІS GaT>6 (bsBroto (‹ƿzAɝ#q^\ DǐeB۴2ߔ-`F}F0ҹ̌cu-*|8"R$o?xǣ*`YV' .#޸,F Kx]|.o('c)i+W e3i;<Nc~Ix'qcuz/\ Gp%cT1cZ'9)A޿xRꘞ ;ޅwK xüaAvd8ZO obi[ׄb{tla"E< J$uDѿl~b17d:IZ!^W% Z-EZ8Yrt*͘Ȟu+WdEg@f (:?`4bN*Mq̌o}doME2*n׉|(LBS β$p 8G\\H*-srb)&A@][l߀I.{1jBU7[!3.q<u"^`aұKb]"l~p&x 3Ղ+U-nՎ&Nv&%s\[ w BV⮉N?lڌa_pXmvtkP:_kX4L:k55L65p%`Iq`J1+vT';>?OL4>ba& ϸu7coGzL2*)pRhGn_t{wPxTg`#bdHnZūeBNx2^Y N/_*ێ Ea_R.36@$?85-q&]a k@M|.cWi>rwEBq2U6+p|o5g#xЁ1҂ iu8];\oA9ہ Z]MU"]?>*w· q8nCo+Sw/?֛AAbzZ'wQڶEơIͺ>yjGkPŎ vʾCw_< iHNʹMmCUA]l~[OqXO ;b9%xh-= kRC+@(oʓҒP%Fl7 P*[l㪎p}!W$%%C޻*$F6 kZR9P~B9#їH9;#[HVt0Y"ˬՊ87LT a^;=Y[/Siӟ0Y <Q'3$ *G v(D6礼Q-_tUU{'?$%G?Cmm_¦xK( [Ao]< z@ēB{Jǀ`~NA^ ĸZ6 J<xN0cek DF/?-+:GΆDz!rYQ}a]|PA=W^} ɿb!f6$9NAPk^ :gf E+9g4gqrc=/34aЌG ښ`Pf"vPdR.BP5D[AHN:?xT1Y 7Zӕar c~J>{P9ݜҤH{v\8C?%ΧiN+atӷ";lW6AgXru7Oa@Lo=\[7sqDDɄo?}NlUzo6Î~n-} 4[:v̤' :s\x`x^i0=Ә,H,58d%MQcgs'սgk` .P90 5k(0Cg\Uo_eUC=,zh « ?Q?\ς0tE QywWYB|@|2&it5du%6xc8'ܸa)<څ2jla5XrHŃD*>}-k-r)FX,(9)=uY_kx?O@%{tq ao͠GVJ(%%N+"I~G~Lחp!Bȭ"+! ֺ# b{pv,3 !##%\\\<sLaT+ >@HmxтXe%/Ilk! u\aȤ{}z7'j,8Ġa$g/w;v0<s f;O|8=alzN8q.Q+#2kȬ BLF]H`U\!P jz;ya׶e-3e_Ի՜xv8k:D^St);a`Ms42$m?`ȋ8 MNݤ ֤ԤJolY5^aJgX9 >%q[mg}{אdQ[:d ڌ ni%MkmF-֔  -0v- j5 -ßx FA^C!,0Ήtíq =@ ,!d a$ɸl}#jt·[ 4A&aVm/hsՉW4N^`0ҍ;PBKv)p$.HHtޒ`"RK5w.フ1X"0D 5`75P/7pM_f+ȸ6ZKpnysxm}b8 Ճe 8ҫKFăo knj/Џ!9A?rS,qwwt< *EIr|a?;3A>!#mGwtt>ܦk菇#&јzcJlapӵ35HzE4ĥk: NlYIpʨw뻥l*Pz?؛hg ?ȧeDÞ䴨'%k_3Oe h> 9gPf*Kؘ)lȜ˽G¯ыöaI˴߃߅! `r@$OB3\z?$OO|Q$:(OiB ڞ w^/띂 VaLX𷪔f^x,s7w wJZEQ09 .Oœ-(d5M .+.̹VwsU= 6 (c^qHl2\&vaS|4>}xw/g1W:;";L:ɑ·K)C(LƒFam[{LrrՀNn3+~aƅc*l+_8#n6˨-^\>9Pǃ՟;h_j)DsGtb2OpIܯְF.K,;,~$E .G\b?d*㲒 ,^_a!pxPY4&[1$l)3C RiAaG?75uvv)C)aAuAku cE,E`!v#;з~LXt>_  r>H=;[\DH? ;}C^w~|u H/F` i#ه=(㉦ }[!//=uMZߋ:Eu Wti++[ﻀ}첊sLcη>9Ϥ2I (gRĺ6C#TyeP%ҙΨɨ2oQ% {Z~6ewe?:rA+ܵH M= X|0d!&Iʑ(-2xI@Z~H^dwa',#@iA#L)(͂GM.`\QGf(A K%h<;Wz{XR̋0:V=5)xo'_%7"1EވZsL~M#򛗔_=-%۴^Mۺqh=5۲V  ~C?z֓5 7 yXtvУu.ʶ~C2')bgh.jmrѧhV>'TF1Q0m@賌hO&\;H&6<,ʷJ& {^'d#[T^o.P5 -. ~z]oVG:Zi0j<,QRC=Ki` rB@\e>4&zUň$(7EH76(+/KS=Pge/_VsUs:fOW!)_VXo;'tvj[6;`q;0\^o^8 076IRHR$|kI2{7w޸$(7I1֫880p& 84jhug.p>p)Gux7V`#c裇v<ְ1}}mhO\'{W?m> \zځ~-R_O\}}]0&ɦY$CZ[zq 7BO> `}#(%_  p$9 ;H߄A[ n(!W \% p m#IoPOM ~~}|˻DLIn6% ]'feU*< \7F(٪]4 bc)m aŠH&jEt#ə)i~ͫe~ʍ6q+L`š-^"[tE9z-:n4!hnkQ(SoQNH?ChsM&{n [/Ug ;^7~nzQ;xDF2.#wF+M/rg||n3nTffNR[T?cPor='J;nT}@6;D8u^P:Գx>%zn#DxsE"*Ɔ7)7Nmb,ݢ_q!{ kq$D}sJŅy/<'-/,tyTG[Bk rQ%ّ|yNs3foGyYuWL~eQчR\;;UrgU*Eɧ*cR\ZCZ;OAoFh)9+ww½2f]Ebf^Ւ:"ls2ϑVv.zE,! 3v "o_(@'5Au@ކo@E&wpvC`!'Ӫ!\xC$;I\skldG-XNP=k<.WO͍hK`9'_Ea/Bu@^*TwD&ˠ< whǴ "Fokrbw:]Oib01XV9 }Ǫͫ}rn> go#*+PmeD ׿~sG* oXh~K>R &3Y#YA{RG4ޜ~PO!};x; ɹ`I/N~~e+ q_gq ðP p/~,~ X0Y W^|˯__yy'yyo+/p įy  P ?B- Q~$~Ż9)'-`I)֣Kぴ؁IOpȩ146,S#fyrL9z)|9W1ٍ@>ex $BQ He#IYN]q$ ;ap?/1)6 J) YORS)؉<8 ffZP L8yĒȵ"_v/e:3R1=NIrer<0Kr!!q19jV=[]ۀcETRu6{sSi|W5j;UWG T]@$[fԛ5Q(TONHɴ Wv; 7 2$UJNmB]^rFБǾ%HI) kĿ4U5Fr+aL |ֿ'^>:yQ OCprՌk$ns6S'C#.1n_x sSê176RYs,=qd9a5wOz{DfQ4T@5H4 أjʆGztM8`aWB  PapogP!w)wt zD nAp;ooIyxL S#?D}Jkn',=$jCCw3Dqvv2ɜJ31Zilpq=gc:%VZ(2FL#x%WPTv֩x%fgx'(~RQ8' v}bC#fY4 l 8rZ]2h vYDHX *e8fNJ57\k! $׍>Al umhwsuDOnRtTgWSyTpClkt v:NO?D\%4^*1c;޳)dtP.rk\ ԥO%` ֠2zL*sL:W$fPX4g2V,Y6G9^ZMPϿ tRcW+ ~t=/=ϵ6ga{D!KwˊrvL/])GϮF⑴}Gv`Q؈W&e*c*|># ]LTZ 9a Ȣq5_c*q!HGxc|r8dbm mŒ'w #fuhsGo=PJV?O/P=rMY(ׇ,ZARw?G2_UT ejUeh) 8|Wb֯A:4T6aeNrJ1ﴗ2},<9* F7揢 ǡ&~όEVA^dF\򷺽 B1vwdg#82:e-v\'_.ҴyC%!̠ho BnLM!h f#pLQV<ތP]1TSG9jU՟on #{x) IڱS% IS{UrѵF&ERefFK!BT"}R>"A*k?FtA|wW JNMNS I\pJBoή@T~JBmAFE ]v5 q@L~r @)Gq*4DHfy`ӄFƨauDUW,"f:HQn5 ~h[Ǎ&6 %23{ qg)Wê-quwӌwXqEOl(k?FhB_툦aor':xRۈ/@{i!x;m(]FvQxXd"*onsx4#S(0Ye#m\G7mOEhw }PVAeD<T_ >Wp{o_.mo'~<7NET#4ACyuMoW#uMΕF ehG+^rgFEl2PIt2 L)}~};BpM1O95~+>[i0<1POk^\N7JM د6H_6S<5ƶ_!DmcGfU _$$;RlV5XVB`4ʞGjH%L2%iO(>8&vQ9PIn qNq͇vE?E)2%u/DSTa=OQT S7* l:mۘ>l:jw< 3Z{0N`ȍyzŘ%jJ7ɱn8C"]փ4E Gvn{V3iE5Ly!2t^vvy,Wb[4ꪏq-Q]ufwx?/ vLmD!Fތ@ ܼ) /DhBe&42 P[ǟ*@~9ۑ3{ŗ0PH{s7? _.ZUu\&ir3S„Q͆! cUXn/ 3mb)*wTo[dJ{yPm@Jmhjʩ(mcN b*BDclΤIJ Taoi*P{\( ϻNQM$is/TUn e[Usڦ c[qjdҴmQUlQiHɆ# ^?¯ J/6՟lYS|«O$xU(}{䝢Wϲa视L3$q=Mz4W0gTqMWs"څީd9zs}ӵH~C,^( X+ZNc'x(OƈLP'mAZjS2gh 4Ӥ v^0\o"7 Q}0=[skQ[Qu5-,!Tlӑ ՝,tmoȍ[B%|dr%.SYF;*:!UZBT*h AO%> Ʉ$ .#n=JcrTջ+QTf~鹱Ē jpwp]"q5iޜ3]{P pj!h G(!@$9v-r=3"Z+XY/*)fwo$oh;kBuL:{fXgs+"?{RV+~iB;*#8 jmU*ro&*NSy{y8[kQʑ8zJ4Q;GUS=d]`qֺҹ &}΍sإv1#h@d)<#9cN!>Yhi @Gpy1dxoN: ƦBP.㑄> ݶ`.d6|N7GڡҶ( ,cdDU՛`%C;x?Y{fgcH,AzlSs@ Oz>za9 UCQ|P]$05C-m裖s:!r{]xK~huXG+V nkm Ԏ:10-Q# h>ֱPu#uCmSPD\_ %m たZ\: O&%`ڱ&}uy⺩eEJhfTEt!;0*-rƛQZY 0wkJd[7%:o: 2 BKGaTQopW(ad|[ˣXUcdBN;2v)d)uh|%0"zj8Pxn @o fc11pfv64ih7 L4;‘Ҩw]MzdjrN}QP"6ׄz&=ZrqS=LP'P])t'.f5.~3Mm=15UF?[NM`v!E9uMNٝ LJ@ʙ8&5êjM p̅86Q 54!g OJTW ]Q􀕍ާ+\!/Q>5D}XW(zV0x;8Qnөo8>ssnIcT7(̳0v$JsfL 5wa3gEiV ` 1s:nQ% XCdӣBi/qo amQ ׵X nk.84{0sԪ79|] ˠ^N6pf\cpSE=F}"vgA1{y?AMbhT {nq7 ;m9ݰR^ $liG"Kj|_?NVǗdUu*8Mz= ;&ea1Ofa)x 닪a+|n$#K}Wke;0\6ּxѵA)G?xB,_U&=v?4'bMEcq7"~1~ R$ؑUúrai)DY8 %Iēbhk74.NIvDљG*-;8XiTtn AIDX%Vqav~kbH;ul_n >^ιM/@NDאN)i26Ie# g 8P!0z8H7|r`/!w|*Af|RŢ@NkS>=,{jWef]qt LJV|9Zn (3 'kc#bVv28X R]gd-K=RR(SNJSq?'ء~QH\Lm & Tٸg\R7ܥ#j>C7?paq?}A/W{^Bqf'7N}"Ӳ2Kr'$BTFM\ -YBܷK\yYjM{Q$+.`uLf`ÐMi]! unB\q2t-s2iNR_X3 Rl]gI@s7E9Q~X GD=-(<<5"B f'>3Nj#ze]@EtNEHuh.i.hH!Be/WVtAʊ#)B[s) O]d1&jwAc>:+3rˑ-lDx&'P7qfH:kFh  O 9fRYjq˛BnûOmX sƾjr%op:7~#[Vl8͋BH"y@| EG}FxY! [9:)zrmbLwB5sYGB in8 &|V^`Т#puzz])`!~E}BxO<{D-X060E.C+|qnrŊ63F@-4&$+Ym ;^R126>\ZڿIzZg*@5 Bp./S%ζXnポK cv\R3u6qK[]Cllո'`SzueC" SuSG[_ GD?zpY0C- S+&AED udB [a߄qIl9%؀FFû+Ӓ*өߕf\]<ٍDLoYZe`1r.pi2̶m= +̎&u|@7Sx&݀џt&˝#厜-1xYMg=՜f LgA v}&y ׷8dfgCNQ*Kf~\ x 1 dN}+wP*S3R'͝X,a%+A sS#!BOx0Z\AM=?"r:]FGk?yf0왞rt#0PLoY+8 8B^H|A՜NGΑU.QeśhRʆwR}m @pڕ._ݜGOff s:FphGShȎd =oDE;d-+ι:(X94MrD^ݘ\cLn_ьm)<34}4et K Jq`N Q80$JjE "|6LI"K==3y9 DSx/P?0W A+ RBe_%Z]%2z˸%Kj:cM ^XDk>5w> ;GWkpv5ݏ3 }08 0U Eɢ=e`<4tf"l{ݨ[alx %h HYj߅Px3sji^5AwU|Sa9OÖj֙Yyc!-3kŚ2ki|No\Ě}43$rEyRǜg*A’"#6.R0DFf7Ś5ceᧀLP?|eMg[I9LEEʕfj-jftneii_K2 Ώ;*8Dc*++*50d Lb KšXTj!Y`$h|M B--.#;si\ҦO R%嬕e&LXﻱ.)hLf\0LE~ ^w i/oʹRi{tiIy΍H,sB p:(Me[wu긡tH ?lr6:a2jrž$1a_]ZP8{՛]1&)u)ȼ 12*ƹgHbvl y8 vXDE|Go5?ę˱ )G٩Bo\ W #~PȘa`.^+-)6Fd]aro{ʇI \/ZNot30ZZ^j2 I-""Nz/bϙ3Y:+TKJ7 IMӂ4ZFs)>Og g>Ϗρ6ۣJ,ȲGmn\]] EFڌX]gm̲z шW4l56H\PPPm,+PV뇺]v_2PJƟJ? '?OZ? ~Wi oH778޿U ?7߰Xo`Hhf~5Z1Ď'zz3v?~ /yi˯ھo׿߿{PW;~On>sO>ϟv˯?\ͷ]z޾ew3D3<7.!>ccq׀a7[c61˻s783KK{i2ϭY+"y2eBܓ0N ɼʉ4`/ya>ۄy`zLi4YL$$k!yJ/_9,sPZB<85a|q0&_cVtCKc(7[xb[b*gs4qeďlhZg^X1HӧF='q "ؑ*C͡9UqŰl鲌pfOdy] em8c߱es%c{`-2vDq/w }yoc> <<$GW1+q'똘맿cpeۻ>-C╦=:|{/7~cw1w*p~ ]c\}f>=EO_Zy;𧯟gx?|wk4|U7l9K޼>_ϑuLeoQhܼncיw*Yd.1[M9%"zs Cn{N JYB6ԚVXLWFi&`ywY4TWtw4+2'SF B0Tf&tٴ|Ќ&BVdZY C2LPZ\ @]+'úߋyy j\@٫Gٽ࿑9Z,() e78r01U tqyy-njb] bWfS9`^" c%ĈU` ]=%Vs1@}x0m|aB5 d ȘʇWsS{on ithgYd 1=%S:ȝ``F,c^E{]Hxjp鏈ۿ~Kֽ $81+P/2s1)]_ӽaNt߾~_^^Z1|['O5O-}u-]fДEI{]\+ګ \:[SvQԄ3&REb_}'5Epq WqYpǂ\in:f"Gc"p n_t.u*܍춿 [_h-gΐ xr3o(e+.}jcZpIogL7CS>7> yZyq\T{X$R(IPxC97 =0/ tO&<鋺uLJtPKTQQGƙSsetuptools/config.py 9P"{$z9͑4~wsA +]]]*N$*5]|jPJՅ~ƾa ӵq؈z:YO+H4r]iXfĶ<}]I>z/^oIn U#{)64N[_md0/ʲ۩,s%,0~+qxX mu7%>iNb>LJ0HPӸqP ~1ʪ%JaAa{E6$nN 7!wmNx},{~FV]).W\nd?mQ|( $︸}2]V=LkXojej+N,£xo hqyId 8S-A T `ZJnb5KE죸(@/?(`j_Jy3g }N(jK>v5 GavDoаf7Vgx2E*1q?]2nVv }nn(7Ãdaԩ_w'G56`:/zr)@QdE} $,6J0LhѱJ/X)Wv}[ح;Mt @! !߂?K©JVcܣ3+9]yoal=FJG[;%]UK59C`~z]Noi)Ȓ((~Q{eqWI)9צ>0@ ኍ S], ;kA|jb;LJCi+q DbRkr—Xp VG  IcF ANy>CٟRDf֑O'"£ލ#dQa= pΡw, 185 vI/JN\v²v]Zr{ =\:PrVC\/!mBK|=l7Ѧ`ܬ7 =PvfKdcl.n^r9/V(X.O)K2}e#i x`*~~vw`pr|0U@Wy>tr0,,þݗ :r[6z0Q (! Z\Qa yΐ]]; ."VHUb|v WlsvJ|ef0';CdimڈjX/QA`r({t_|7|0r ѩ܎r>]_kXVQH}Ԩ4mY!;9כqUGk]{(<缑U#wI)i-aO(^%`Q$."_y؁Rr:Ai]h/Z*Wvo k=ŗP8c!-,&!nZʲI`ͪW|nΝ1TԧɡIzx7Q4iW4"!xh*šJQy+~p D6 mN{NSV-<׷o 7H~ @p:4 !|yę1x&sLNwa6ߌ~.$78DG>B&TuzGoB2tMRd٢@Y-+еتDcfnSag.և8(\J0VXtrQX($#Zsϱ 5 @vŒA NeZ%h7eI\pW ,"iBSznk}?<&D.': )ǝLXKw2@-K{K%}tpuDz҃~8"j)Y阱H L3DSY>:s 31+:'-}/(j21zQd-`s(Dl 8㘮m?:*tȤV Rn;e{0wt*zg>3r& ^PoDJPb3 +%g?iV`4D;"F~L2f&vh{0iځ/8v;%[Di'@H8H1RdY"VVsw?F?ehS rYd wh&+z%ڴN?sA93=.h%LW#T5qxV~qYgY}7`̦z/7bGvx %BBnkt-Ä &8 AJ Yp#R`CYg5&,P+)U:;$sg06\)w}ǚm8@BO?2?@aC,{ E!U̳M&ieb(os 5h G#IL3<%lHii;n\ɓ-ѕAvxǡ& 1{hˬܩm1bO_˷_e))j![~rn*% Z,Y$~4ݺBw:ρq%/SnvPi [+υC LF*T'+E-69emIa"BT ˢ+j10Xfg1D({T<G2CAL[B2MKFMYY\&=K^ #[l]YHyǺ=F ƄKBe'@8,#ST[څh:!TYhw673ꛙg_*q}A3&'=Izaq5ZRNMTS%O$@AK#zj>䞎2{+_h]'@V.U_oW44s!Mψ$%0KpKJc_HϥmcGylAFB81ig4r ͲkO%Șub³I(Ac+=6XN`['K!kOg^5,} J'CoY]-_iv ;Wux?͜sZlr^RKǵKO`0z҄=泦"5!@<"Q?4 g1d`*CL-]|&nм+s9ׄ= h:K**"kZB`.z",ܤad3[&%P;Ujsې?(K"=s`4Hq'z!]ueLﭞ\~4E*tt-:FteJ3 ͩ`u"V7Θ^>dߦ"I3<ۍMH+iər (;1%S19O2k@vPӳ$gCxSf.L3v@. +hjDBLKp*f&SmP5j *Hy(nla͗eg%\"nj~~A{^ ,7F+q*>Q׸yPEܘ3s8ylBy!A1ݼF[0 b176xl! T6"%',S/+[91s>'x\J`#wa PU'P~I@MXqʒi|UwzW5oxz61k&p$#݊͂.c̴veIϔ]=6$Nf+.sʙf >i᠎ #Izco?ak3@7/ˠ}XVGWNp&fnV ǭ>loJPk׍ԀmJrD>WlJ-߱X'H_dz!rTd!rXRrRYOQ\w\8s7;~axʰ-qct1];7?z%&xwݴ[a)5MHaPJ cqcD`$D!}bj80V `u@24;;Yz%B:[-ʓ̱j{"ﱔ2.nGj)(x4]W~<8SSt1a=Xlcl߂?wndF+ʬaN^Gu BN-{0AyZrDmM;Ђ bGMs7bM?S6[=9Ty>>TQ:]}?]d1WHz͋C.۠ƨR'^,OHSN˼B/ #fFam_*vmm/lM{ptOLØAqfCk䁷xi#p5 U\OSZЅt<9w-U֎#ރa*!ccL*= CSC=5iZ3%LG'+=:DO>nOqiXJ,c`xw9D23)|i5czӸ/`xL2y?݃)v˱( y:1#as$^W[aZQYe0 af~Ԟ[ G҃UgbUicEz)0YnC1~;O!8Ps,qhքib|g.q`~!ń_G;&d;=vS<y ǣd:hrP"ʏܡk}ğ]XH p tq)0$K' -_Dm}ķQ[Kbp rx׌p7bi xZx'q/M/M{ ^EW  ]W?QEʠI#3ٲeǤ Ar2׭Bxm^j*Pu6ҫPp\6L|<3#^2S?hΣFjJN6r| "Dn<1tdfoKQ>Bil<3SaN>5R&D|sKT<)rC3f2o/֦O{닿PKTQQ+JΟsetuptools/dep_util.pyRn0 eyz =TU4klkl7& d+!a~lg1(۞1@rCg6BaR=ԳŤ/Ywanԅġo;ş(`46LĂ5d6DeM[48{#_1䑂o~U n{CNrgq)2jMZ2# #d/f0%2w X$[M!< y;P=$hH[l Q#bvtW@R|zOaϖ hjtk;K#8k= ϓ}<  ~@)\ k لfqb&$()v~9n8ƾS\؏*\R2x[/nF] d0zugx|.LsBu NL_ĂÃq<䢖{9_'7 | lՈk6-}6fd7 Z.Qp%`1N`+X緬@WcT[NXdK֣TZ+͜jq)ێ׽U!^02Y=TxNeVc3ގ @47tk'qLJ^A˄͕0 t` ֖W(ۀN}mc d~q9&WQ-?!gW;ńeR󎪙z:"?d:-, qucNGN5DW n~+pCPZa;)mdA v`E(G5>"v^.NvpH[Kr4x4hޝ_zycd ڰYВA8t44j?mLKnaxc8Ãġ9: eIZKDDZYzjӉeRyt܃˗o!/n>ًY0Cw aU^>["3kx Ht<?Sb<fgCJOY.uPE lVNANT[Z4vZD&]C Ǐ `)1WLw c K7BClr)Mtk@tlx?9{5X|{ߘZ!bFA~ 3_b8oPKTQQZe}'setuptools/dist.py}kF T"1],&w7vn#v΀ w$RKR3n65s.p$֐UUեylVU}u/(ͦ(UZ˳jk>;tk̷>+ۿvZ Moe`!~;[V<'ϾElF+_V^+74۲6eMS_ K^@ͦ;c0fQK$_gԺoUmݪ+TouQg!>mB{lQ˙{B=ծU ˕H8ȀUs~6:b_~yV˦^WWnm ~o =hUۥ( ~^Y: Eniw;8I z%7lg |̚K6y$u'KXI]uz_NXTpG㋭UٗF.fނFe߷|atc 1vq%+ᶢ,Ua@¸ծmn+hU۲s`,NgԶRa=Z ix@$ zewa>׾q2T9aX?Aֲ\?ϿP͒b4٨h\Xm/X)WI)}>K9nrgROVvQkWd2ZttTb&f QRY #rh]ᠡ4cBmVY]n0WR."Izg?, gsPX!f;^ hS-U NftT5 ѹHn!z_ М^3<yBݦ l>Kg*c=MuiDX]{c?H?y|W5Z u$z p" Gf\uFGڹ`qY$}>.81O1h _AY$-;&ɐ'_J4ܵm8nd~&ddg KNΘ~Shc3FaIA"ÁrjMvzA+a;x rpdi  =Y࿂ʱ A{_ԸH~~؛J%Z 605 1BDBVШKF%نfD_JmlL<6PL n /kS^N] KٰoBAje$ R ݜ&82.b7z+c}"i-!/D FKx]R<$ An^c[080ڬIYW_`H)micg8KX8! 탟g`_ l[;사 0E͓$ŕU˭Nn* Sc$d0%;]V6{wQ RJPxF]72q\\>k&Fgt;G#HfXT; 'cjG2ăcҴ`CASjUpZF7yUM P|&ڦqs\;@g.]F l}[b|6C~nA0{ow>j a|%o;4>8vQ.>bN6$VG@68, oI9]_ (q8pӨz dr^a.͝ZMNP 0ۀpWnz,{|!ފUmDP*{b۸mIK q9hs+d˭w:vn*8|s caE#fӻ4 v1 !4`k@cRzEx˲EǴn"z'7@$tb=gpE3 9% oԁIT̽]h,z IdjR"zDk|1SN )$lUŜM$-O?x+-bc|m-C'ZeV`oSx͋ Gϯe[LD>0Kګ[е(Ά4uz(/XטZyJtpX>IW{`r>]6MOzi2{Ύ = ށ6#zR+9o%fλkUWTfg . mȋCFCyHZu@}Vod~2,-Cp5 gf۲PȱOi;qWkx["^ԋ 9J6 g% 0`34,CrH#h|ͧ2/Wi(&ITCESdgC7S;p2m r#v.bwX $\O$MĈY7eg[ ٗ[;.DB.aؖxU%_XM.+dWc+Im& OHqβܕjSdx$U=B}PA&t=]ҤWQz"ۑL!H'RD& S$5Jsq2mJY#Wg#A,%):v_چ6/|[@L$ÎjNK5δVauj ƃA̝sr A1iguWc7u(Zݦ"(l 3O`Z+IX%ܲƀȳ2@x:C LUP*1 FbUa\i+ %b}i*Fcϱi;gaT`@O935tqVZq?uvɘq4]r5$Yr*UgvXnhyV ,`V@ӅAxf"@5k Yٛ#zA%kN @4psNfNUM0q  \})?}Oً?ǗO?y񣗏qcRMe8VCq!'6RtѩJx_z~zR |\b[u|)׍H˒$ߖ7w "R NDi|^ aP&}jyl+tivË}f`Tw-N>4!N:7GkI22#.tZq$WWD3$N2;NCoR RsDsIdwZkE435lbN;v I$9LeRl$:NzL*aw`. gmv|  /^$d<H^BکSaMy@?sz2 sQǜ-3zC;/4 q>ِO* \SU=l:nsa 򋇇 RJ:| )t{nօh[dWxQ 42\/ nHpaQ>ϒЧMaϫM]%G VIK؄GkgTOƥ1$H`3j)wF|tA-`U#5T4Pa^$h9IF>|Tv&kU@|~^tXfJZ͟CXX a^y1ܐXbܱ}4,^k_ãRWu(eDzj{I\0 &o@f nEJu,SQFfGޘN 纬FePE\cf ndh@jY;cqSG]9H[SH :w,T<>Շrᑣ݋@$?Y:XG0~!@ Υ#Khj:ݛ(X3jsM{p.;P9r3Mr%':mhOV_wZ(CSX<8wQ2x3ʴKt+2X*Z]H^bq1xf\S6EP EܢaCjE9R~uщ!O:v,t(=wU'w *ʋ+ؒTF>]?B=aV^E(u2-;N VҺ//Meܧ4s;Gh/F+eꮟ|SMwDՇnk6(] })93UgndL*0Ӝ˧QnF^t^g9K F ^,bk$ixa`MI.=-0aW$yJnj~qwaèȐ Jkg͸y)znD>6RR߃ST"1}pP߼= u~1إ)HXc2O]&!b*P166]Q:)n1|vJ" q']5s嵡*>7R7YD #813Ŀ s@.zxM8}[U xJ7&; [! q=Gɉ4Ȏ>L|]sA@.YG5̊n՜ǽףM oPLӂ}INûh0F[[َ$Uf¯A'O`VQ3G[sQ^sk/`+e9b2Bqq;n+}ח%uB,Y0}V73`qiUg8|ED!i}/3+j5^W8\cs\Lݤ"&vlR}'gglVlū[Rcأ6ܶ0^0 w%.ys"M:Ζ7u];jD7oqn>>&d$a̲K*)1R/ߟqb:b,7hJ(J:_ (t764w{8wB$x5y=*;N_t!rE:uSw0= r}@ i2Ѿٷ|Ob楳P tL.R(Ђӥ tՔAE+ ]s17eV$P%NBӵ\wwNMME Sۡt MS7@熣屃*;uE3Ћ&di.`&۩sWh,XJMpW;%}g.No9,,7UM."7k&a w̎6&mS9eVnz\+ lGعe֯);|l[E?Z]{ݹ킍i0Iàaj$qߡHgO˳!Vp/O6soOXv479yA B-KֶoXUCu)_^9T#9^Bܑ0BDxBQ3-ZLH7V{ZW6#xWfCFgzp#ݘ3TSkp*Pw_ѓȑλN>%=W\?^h΄X  n?I&_,ԜزѸZUi,ҧZ&#s*;!3f+\ ifrLzf5[=S;-vxMULR$\GLFit>v*(Wh1}5n Ax'2Aj&$%5Sh7vYhO&]3yIHgв1 f<yR&$?c^әkqAFٮ?c:gL&9heBPJr*޼0D?@wM'2a z` "x3V|pP. KO ?M^\JWRID hCѺ~^[Yڑj3*"tŕ8ÂۇZep5$|h`hw#qX1 ~8hl~5rՂ:fpѤ\{AV  x ϗb|+BIuniSGmQYo9;DC_6IB6ϯf7.l+4ij 5F(fnd<叩H2@b$38zqB鄖^~aT򂮰O̯u 0Tl(?_~Uq.tqj/˗BK`>c&`lz8ȥ F:M5A#z!Nqy~Vd%@:L\^c޺e Ocf Q8 Fhx$f=VVODu66 s7bM?qX>8':[wqfv,fT7*OPKTQQQ  setuptools/errors.py]Mn0 9ŪF]W $XQr y{iF)7Is9|4р M(E8@7>! #icƜ RZ@ᖲVXƘ;f8cHo){:\Pz{~1 5_.nB#(>|Q1t@ںDZYJRVy]Q ";_AU^߂-)i ^R+UaGvۨPKTQQsetuptools/extension.pyTM0+Fi%`*nUOުr& \<~͈hb!>k-,^Hv:[VwQ9UQVЎZ]qe<Eqߐuw8} ^m@=|INq'\r݅̉%Cگk QervKMz364)z_e.n`;4^A w؄|!Hk  SqRHxآ[vdT{ձ*^U9M+g:(ۮ^H LiK)P"P (>bNۡkKJdѦR}y9il@"F{D*Dz5zwA'I&Y2WB\UmgLۍ-F[p$K\VDeŭ5zeEKfeSqaU#7U~vyJr%N K$">!'ǔϑ?PKTQQOksetuptools/glob.pyXKoFWL%ampI{iḘ%ξHJ#b;;o`0[#<r3l4/X*] -,V\cR$r&Qi6 X / ^_b7#g X# D,JicU)5*I o+f:ͣh>gE1]J@mOI.?m< >-{"8朂U!/&k*PCqUmEJGz 0+ukS$S T\{v٣’`2敘 `= ڏ~!.pGu ,#Už='E֒ TTNl.7%4':<W$49)b3t\;w4<e3)!x'x]obyFAS+,V]ʐi@Ze^W& <, nC L +.(i vͫ F"-9,%(ӻx~]Ԥ1;j;BACτ3ҳ`ӓ"qjŜ,Aˤ38X* j+l&V: @ǾJ.-EE 7p4*ڈTAxӀDm&X-P'NWj{ 4ؘXiF;4i|UNpG4䷝$~bbab*QHlO&=ZgWfjֵFutȜNȁ2Qۗx|9=u+Vf;(^Rtκ.HhSP#IyԎ׹F&&g7:~ŠكJ|͠ Xf=3 UF4~P-EX0mZZ>aBޜ*F:]|X'T: ~nNPKTQQ)όsetuptools/gui-32.exe|TŹ8|6{9I69 l @AѠK4&1ƕ]"$4niK9Wks2lm~/ֶVpЄ/PkԉKL3g7 ޾}ys<3<<3V?3rßq~Ng!{%͙ Kޜ@5}M}7ᇾKz$I^˯ϓ~欬D=noa;d b"A~7콈>܈'\.[b0rߒd\7g4d9 ,&\ K{S8.5'#tOn$BVj|[usꇤ81_/o] :oÅXA/pEjHErgKY-<#4TqopMlZQ`foEMc~ ,Y)GKfSϿKfM04BOh5W:@7 X:L:* \}݊m@;[Ɨqj@R oy@XZ]"e6C , Hݡ`ӚCV, +l.81"4>+s 0cMiQZR`z|Yl%LQo;FSmڏ%)c\G:bݴ $k S8X<&ʂ72YJ */ijzT:x_`O?l69Yҗ[2}O \] {oT`yy!+>kHzqO8Q8"ﮡO5MOYáoP/ͣN 32wEӠCon<:f@mc :L!oA|'7p?t6e(G7!DlfjࡿԪr|7zh4+1MĆDr*9|8#h~˸h lo@j%G"RnEʣG_;Yuf{f ,n&=l6P_y&MQ$z ۮ]hYʸaG[QG=jrt4]Dv0kwV]-4U )m^r;1Z5(|J͟>r(K%|N.+Έ|j"|vPz+dkۥua[ p};=50؜J>"fm%kmxԽq yuzRCZjF6t{\tuz%(1kD%lqӏ ۪txqp[2iQ*ݶʬmմ4th6ˮZP.Y < ɟ5#qitc.59Khksq : t fy/xJzDp(8Y>3gKeʇF\x5M4(yH[0Fe_t? 3 '9?A ;hrh31`6aH)J{)LQ0 w(Q9+;\,D < a=VL/D!z_uc6<'>vL1+`&郇9ɌoNK _mX@f[XMbpi1@kr&[5pssP㱝ԺNIqTNYDS%uVȕWaDTkÈ|>ȗuB{\y!-,.*Z)9JSfQ|kh?k5tuLWub8} RZ'cyZMn*@Z Jcetb)d^r,HjxcHxKSIgKr74Y<,DӉhr+8\B (Mf7z>hO@Pf#D}B A*Pr5P:vVU<= \ Q~2$=OO[su#z.&U yGPT rl]II;xvj~dGj@Hc @N-gncRNtݑXN޻eGByWfGnHZ5T5KyZ7ƓS@W(w H%H1'4.Pz,٪TKJ "@N;:Pu]SL~LZHՂR8'к+.SJi3y<4dp׵K)ufy'bzlbR;VCa0:罪n=v.܅bfE!}҈57㸍hi~Аl, 4Iw6 L qj4ȟӸq-gNŪN%e@1@g( }LbR.me/x4  t! R3F|SW.2XUKYpc;Aw5h~'t0(Zij#~5.@!dBlR\}Z1(HbO8L[m.˿Ҥ4;Xy3AMڤȩ,Oϫ=ܭ|÷cG A!pv;Pa!DXl ڛ{T[2߰H/A>hq% ߇2; f 'UYk8qovLH`B;Ͷu > XW2V_Ya BQ"H4/x#*\^Z܉ύž_a_|NGBl64u#F.$!U@S r*n ._ѥy|)XnP5T\kwk~ 2|L'+%xgoغ/S=Q#H="Ft0'HP ]"|0X&4 82^|@j 85 9nW 4n/M@ C(jt$"`zcٳ='ef#S-t*~e 5jR]#7Piv^^cVpAES٪f짐7ؒ. z1K)oCoغg@|MPCgP7{gg+S? /q{&ĵ_|8!`rBn6fɀ-, D6A?-kӐ_ 6aA`̺n=3NރٻA= ͗QQ]4Jʁ|{GE#߆^+ FRzs<0q&[ab#. #%>Q">3ăo*:9$u7"^wmoX JyrrTryry|XH̱VXNG>ޙo,]a<wiB-\ˏb.-hZG(Is 6opQh2rbT.-5Mϖ/א O41OS"mK1A½4Nǵ\NN{k{Iۘ)[F: nfd %8E(uR*9 A b>ʔGB}`[+ZzX.j'lr8oۧaR4rnDV൵-oy@cV!3@q1F5ŚæpR(tgPqqnk@Dk$£șw=<;  YŒ;H@T((2i|4S@Snwt7xF9 ?ڸ3x95lCS&4HgflɐDcB%jd&n D+@b-&#!Žb(Xfucԇpߙb/y5ƻ=; хwxxK/dDx2֎kV4bNJEدuX"Jdntۯt}n6$)8=av쉱:ISB{=|kfiL!FC!,n:YZ>GoKP[E6~dtWҏRVkgRQj"Ky j[K\=D=A*6#p9FqKX%D&OɌ'&}[ 2r o|̒PM7ȋ_*\q?#"V ͋L4/L-KhSG%-xNN,f*BƬ!b oyPFp[.Rd,MWbFOa/nHtQ4:M̺2р؀k9P.㮶$jp56萧&hbeY5e̖.7#\XcQy 4ǿ$<_mpqi|.lR4y#RM 1C/<{Yk?cz{Ka/d_<P5j2dLأ!Tq]dHMp'CID0|i9qŇ#g5!ֽW0?Vш%h9Kjipu;)r^ZFoMiݐ=. 'NiBr馦BU+mg->qdjxvD ulȴi-!Qz9@k1B*'p|رFɭ֊~6um%On1'KuBըIUV𳶡~fرF@^a>bpi *,mbOfR)018ET%8Ya] а +Ȓ''-8 vIV qP!ܺb * »{, %P2 z qlq zwoPJF|SefL$~-6oefi|#zMcjZ~()=R%@?=f1p?|$=J߁<- *Vn7BOC4h }`lYчBp턹R$1jDI+tyvYK|4K9QԠD?ZDqȧܖ$+E\d>IwpՃ.{^7]uLwN șjt/tatUęH>-g%zlZ3m[El\q\WzXZnG)4`4bJpIt7JN6FգhsMgDTb&z7 tߓ<^c`X)#@\C$frC\˥+uV;p,,,>҇.Anipt" +j9,5+GȨa'+l)t/EUK7,fzzi,  N,;EuGm>ƀ#uD^,': ͘gSK]Oˤ<Q[yރaONN7 u qK"I6Cmh֝e'`<#( bP 7vA6]tnh'+F m8׍c%08si*r.};tqZOx?9dF:93[3h-3} mlgzfB#ik/Q!xcb.#ć.:- PL庛#1ʧ"`(ETU]xC_FGq@OI.Rx [4HutB} at+Yf1)uX<@>zYVCaۥmܝJ,>;뭦ӝJ"xT 23,+Ź2u ۀKn,%+%bGya\PMhfYtۄ;J3[.,2͕ h(47qkͥz1o>f߶x0Ma=oГf˂d{8~m~]9l*mWs#no/bUݮg|k|Y>K5sWk5YJ}`Ogz]00Qtr&NL23u77z$XXwD-<)o1G>dFB[,*Nu>1cjq' nFAAM]Q#>AW`K{&3dЃ%PɖCQQ*Z"e[vK ױpW3e=Pwqn}l7U\qB.nky 4(Ͱh-q\ݠ +<K:r8m.&*_@9!Q9ERhYb; P0X_ n)x4%ͪGBBdqT"c1| _Oy1q2AZݭѧҐj(IC#7qr^ p$}K3sb"_m9c#2Ą/tvkG8dl,yMCeCJ+*ץp+9 >YTO_9< ۼtXje YRnY]' , 9mIn^kk$LAb墄imݑihcGО8yPaG{/͸~7d 6kO%8>T=}Z\omfrII,*iE&E-(Sޅ62Uw?w <&ݩL/]xJ_m\XjyVl}pt[ɪwU Hԫ`ztVd]a0Њ#hMr]>0\+@L2 [Vg`.0ve]ǓhJwOKZv c6-X%[qWԊإUF;y韐}j;j{i={mjx&SoE~xF}_h<=/|Xte #Q-C_S*C!:*Q=T衕8k꾐4k[>8ذe-/3ctɺMcBŬ,d(D)d:Bc!ef&G[l5n=B!56?b2|2ANm= XY@)Eȋ H" 'e)V6 v"O"v"ubƧsaP,ʻ<'p؍RD a!D)50+=v _e6{#5Hڬ!Fb*Iݧ?WSwP"u:t-uR I-ހP`E%q<*uBY('$ǷJ+ZwuϬںZbK\7h:τք\1wth!bW?@}hQ24>4F!L*͵'Ee6hnE'Y8G}n4Qw[ JVbaJʑ.+?mO8Kf=8FE?<݉["f:|w(8[2dinanǐ2͇h~̻hr$jŭH2CDQg˺3W%?㩡m vgBU Bt"HT_%޼1Y9.')*$ǴaE}kp8򮴢0HAE8y}A~z&1}:RK+CkڪKC9C)( &]weGdsp,Pcꂹe\PH7qjhm p]w5ޠW\[Qt@|=|8JI 3eHf9) `yt ]nh9Kr P83#Frzk}cgF}Qo Ph~tI@E|PP9>Z/kUSl} 4v::D 8]a,b :Yl]"V52{5B$ЯqwV5Pr XyPQ;C/}Fc%0hSە8<,4t?qDbúntS3I.#>@_3Uh'xw;𑘣cH':ypWLzS Ϧ9(w3oZmnc3TuVNO}i;8?U+>}nTʬ&)_B lJͤԔN Ƴ\ǻMU-ye''OyQ~:F2&v LOqA ΂1xB6$w`N#Q*ۿaMe 3(mo9#TMdDq"v,Y 퍥+ eF{RNz骯uP_!ޕ;2fΒ7Z_#ކᥥ?N^Xd]psi(~KJpvO06Ԩ6 Zuh6F;M\ZrH+Cw*sjAv7/ ͎ tcPOdˠŬF7C# g`S2.rH?0"͂?VF ".2!ŝ6$i3vRBMRamgNyrVd щ;8މ֥N1n3kwui0]=h!ttMF!AʀI/O%.^ܷZ>ѹxvFi|NMjy*7'HXj8As[؁12C۸ڣ-뮍N%gkG=CҮFlq%2 uj[3Iq*صJ[>z&) 0yԏޒ.uNb#B"ۚ1 Ƌ[l UkE DHPܭkgr;Iܶbvb ZRNL|eWZ)|ޖ3!hFu?BAe@#:m-sAk`'Z4o9FUeqԤ=Ps?@a/BCZE>M #t_EDvϋt]IP Rz/0YqOa:@ yWmCY{}$sg*BN(–$gS„h^UAJtϐ5\)zx<1~]^Myix#L1 6PBiZA]ܧJ%"Ѐ'laqQ Rt)71PtC]f"`IPGCz 6d06t[ُ1 nuBP,LT1^_ěRV]J< 8Z1S䘖shPWh9as\}>Ǡv>(9(H%Oe׃EXA}ÊQEdrIE?;1YpsMyT'~g)D?x+vG .{&}ϗvTAA>R=B]Ji`WH%.R"()C=RR~}3Ta-PוxkdWll@%8.V~CM ,L6*6 S'in MQ/cV1 (c qY_E3w#v`^jytH-'p@ndI8}]ߴgdns mG?>.H#Oc.V]tQ2؛:C39c`&q jkG3kx-2Zuf1X-pIOb- 1ǐdY'ǚ{_פR($.wJSj"R\~5q1/^ [یΔ K>>⏐|OFJkds'?;y&KH O'Qh!}i!$L}j;_|<ϑ7ir?d9-xT݇A]$]vGGe$oVsT &ufex (Am͡B+o!jYyc̋ 4Vcb ˫blm@\2 dcHV #t z1W[`YB}@3Ԕȹ-7h?~`.IFp^; D0vA}6]}xLjj8ą3rD]EuN=xCW&Tnx7ypzt QGJW33<G+W"DxᑯLP)A?5T~gC fޞʼisOhPgGDHK"=~t㹞/c9ScH!2zhP#na۰A?ú Ny:鴾k桷3yW7+zߍqnZR3NE"/4]y'*0SH^C9~rSqGU0llbUQckd6^&u[rofi7':fPьYx4htIF=`_G[v/<7[^;zc ;m8BHj*7 ޛ ^+fhlxK 1L5:7peD?{{]t 錞J,ۡ8avj9:[QWat\Wr/Sm^n Ó ^GCWts )‹@ƿx_Nϝ~ `\ tYG2mv)] [A׍ؤ0;'uj.| ("R$ $!3V`^Ӑ J&7.e0 2R2ryу^q ߅g-%)+W ˳y{GR~Z ф<3@V:nWѤ-)Sk]LȠEALd/:w!]R=/Avd8察Dbݙ3[SBvWtl1"yHԥtrԈfs?XE}!IR ?Rx t,Um)p>4M`z: Of߬w+WFo`@1P<Ÿ tIJE/73[_`"YnkMǁ"*QwԀYDnӢ'*/BpUYeiyӕU0Q6 -L(%> sL2'9HGBK] UYkB\)|HE ]ʸc2 0^-EMf'/P–nJG'Tk,z]Fx /»JV⩌N?q ^Oxolk?W PkXL:{55и`3j4˃K0|bWA)N^ ~ 1+h|܈#@}7p~ƭ!,Qxx$ڤg"yO4uf{P-`?Z P,O9Yx20\Z_T Auv)Xh ( %=6;q P<*n)|PG/!#6ȎZrk\јk u!YZAGrOG ږR$Wy-P+EB;*h>KFxs [ۊ*n WԻjmw½o½y7@K J[F*2/"a֤W G9}#0N(oȓLP w;&LnT(U Ccؕ y٠[MIlp~uE_bYd1t1겨F"7Ύu'$c*J%2I&hN@^_sv :E74pbr,8f/|OPڭj8Dgd?(D7&g53vVΡ/q3*Әq=+z';ZxE5rRIb\lg=D6礼]o`OzUU{l'?*%G?EiM_¦~K( 7Z \IF!=_%} RcP 0;q ^b|9m.S.^Z߰(HgfF`ٔCϜ<,B97L/̼O( 1G īP!' b Ԇ$e#Pj^P%gLNd\ec 7V Y8\Zʔ_,%eq >Ik غd3 ]4gAb(](3k{)y栦36`zsf{J"G6zx.T^9Jb̃i7[-f6yÂ'РDC{a Äw@H8 r:oAKR>k2 ])/W2)l> 5G3xulzX) <Y*KG1c>bgO\z}nô> . jXܛmDBR|UB6@qA܉IPW5PWD$h%+d VQmYo'ϔ06rlಜжZqM38*pTE֠͆ V]ҴzlKha~bM`00~џcނ ^Ges(k(F]nq{]q8>?K0k.i/pE1d6A@[FړNrluf}W-:B~Aۃ bsT^¢8=+0*t?8TMnw?ř((q6zkwJK-S\@X#%ʇu7W@| M{9NώTA_؃nq"9_@R ؝#FK ڶ{H&m`9G4<WƜSrucDhL6kL_A*LИ[Y4'q$&A .^#MoŽq}NgI4f\o!ɣM,2eˢ~\t\ХDSЄdю#RJ^+HyUv1CkȘ}sK¯#eL˴݅> v&OA$gN_U7>y;C[Gؖ ]B.39^Xm|(ߺҤ0@?no@y~wՎ&vdGIGt59Rr)esuhScQH& n:A˝!x;{l-W U+TV?sw2#^>-Pǃ?s?lrR L(ﻀcG/L70mAC &Eu(;-;*d:z%ܙz Wb 4+|lt D@\Њ\;G@C3*փL i F$rAˡZұ/-.#3ݕNAzQ?{fKe~ (ͅOM.`\UWr{^55XOK;6PerbI6/BkZu$u ȿ\gQ1|\ _(&_lK6OӶn\0wO&ﺻ1gGC"Х;<߁3 OL'wSyT s0䁼j XY+f8DmG?* ,x^EBC0j9lRӼ߰СG. ?;Odyo콉pӉ^fjbo o|[{/};_ػsqG;{>}}GٻCIfQt;{W{/M%~et5{+{}W%H+{--aut{Kt{o콙%P؋ 4c,5Oi[E|gcDc1$FAA*0pTtp e8Fͧ&M_mm'i 'D`M`% ἵ>3̠Xk}upߵ?g^{-7r_#NgQ|<yD.<>#^&{ e,{>XD43T9yV>UZ&-|Qp}Jg|d'R/| %? Q96_ "|Z B芡~^<reOQ:?A2P{/Wh獀[? 5Hg!S'E dQK(sTg.54+*`\忟 b|T~J ԥ_z+r>gjgB" D|$gUďF@yBj\޾ & _r{^F?>ߑ_/ԄƁ' h)pU!"9'ȸYШ,2nZh;A&$ɹq922{cwL?꬗5"gur+K Ht <`' #A:1B}*?hӫَebu2,}՜j}&MG7˝)WT.(F=ֶPgҮv*GĨFrwa8UL K.ե!rgLr?ƥ/.%s6ɝr4 \İYy@=< {'Zi+6ppp;Np^ps+a^0^Jv]( xqbLk/w"޸n><ږ:!j¾bxZ:R_o\}}R F(<hKUL=S@פ/kM3W_AL ~1wŃH}5َ <EVl|M$u$Fn8ZpUW\e`6 G&UXyolE2Ѫ%w7Ӧ ,JНkF A{jfCϽ@M}Fh" (JYৈ)66Hr(Qxf cp)'EȵJXS|84z٢[\]s[ttNAxd9ëj8Φy+!Nnꠄ0;s~5 U)xwƌ(/)/"7 =C6Hw=LEwKeY*}%d}h0Qc\+=Q)FK2TA,D>3АƯoxƀ- CMYf6biMk\xM!ԉ"$ &{)}]*BZ_"3樥h \%Rf[O `vD)z5.Mpn)z6jݳ7߻E–+n,{Pg?-]..jq|_OWqAjo= .=X}*Wҵ^n^␒O++Snjr7f %Ox|s8*{E 2\(7udMB;?[e΃0XkZƒ88Nre_fr'ߠ <͎n炝']4OCICxrvX1myfׅĆ[NPg osr;xjW%:[찪J8 jm.xR2P=ۘ0) ПUt oDx ہ@& 4΅nNf^^t"+[†W}z~e/mӔ_kP=} Ð&rB5iOP ƋXWx_yǯ>3$2'yG <x+_n:_md?+ͱ,mdżp@u;pO w˹nC.OKI YB1.#PqУ,#ιi2 x $BQHe='pO8 c Cc7, %F p\6c;$LH 44d'UqkE@CB丂wrՠ{фh5~kęNJb 3X 9@u,Ltp뜉X}~y.``޲BFpGTC$ÃMlxWv!Z8Nu0g0j 芠qĝth7Sxo,55n+9.Jxg'}ag;}y|OEIOU*n.\r|?`PsPҶB9b;q6v"ɜJJ;%NmrpNPʁ~v;Ei%Ba5ȴf u?wq!ݔwuU8EƍWBocx~wpHI|bNSmW:.0c'CSȁ Xp+GԮ0\ȽJA+2hMMvZ7pQi$ hhb4E?Z5H ܶM6/h-Q]W:kqɏ:D*ub z$ We '7\vXSJ)ͪ0޳.<&0P,:lR*)]W( k=&1lt"\`2\<2^ o:luU՚d MB:ȞH'5vRqQ(Ngs2܅f9L"LhdIl]QOή3)s;b0qh^x$xvl5 PˤL[e[|eVEq6~kJd' Yt5V&k|9._,;/&  QxUݴzÈ t%C6'nkhm,`=PF0P=|EݬE ,iC<#aY) XtߪH4FVWY+5[!`*CQpԶr79%z2,HE* F7>A3ǢAM 4-ş!w/Im.Ďo}LBQv#wgϸ2;-v\_ .29=9.S% ̤Rlo f^N,}<}ƟF< =b%"Ky((bjro좈BA|:re; ڟy,ㄷf:9Y#R&b r3x^} ҍfa޾zvjP9DӀvhҲ*NOѝAUB>>Sqº]NTsK]߰$$;[JYHsYsN*1'Ւ$jOYdJҟ0^4(1C{](K_7Ѕ8xBPM:JV\iMig}{/OU S67j l:mhai ^K>H0lŻ1n`E{x%z.b:(٬B= tY7FNrT(J;s]s(aʏ WЧ+ gyB:6Psf! 4ߪ3ӟsXT4|kfMv{33:r &{2zJ|PF'X#nRa˧s\0W~ Tߊ[0yE)M%rܠ?}D|% @5H( 55ObZ85QvҦS3k犭C4o"TnoESVnWufY{ *2؆ Јy;2bkFOj U 4a&='& J9jH֜jʗQVy;eJ߼q0u#YѓLZ6B<꽐-*!Rx׏+҇My[?W**=  r t"މ2${oX:GQD%[x4nG5mƖ7Vp•bѤߩXt$~.6&Ssk60,.#8GG9 Fm$("nZP%| Ev@K8BBlad 9nr[H󛋮!uYDNLtD 52ZR~SGp&Ng}SMU쓎!GM#0q.M칏L0gߥ,zˮ#"ډK5W$sN噂VTB⛢0ACiwO4ͣS0NSCap=Y,lazFͷaif!oMzڎ9ϔ`緐SMWnTwж *c 3lYXހ cl}jڻDB4T=U ܳO:{*l6ew[%"Lbg *B|^ 7k iW7`66ٛVS},}nHTaRƑJbm>,2Bj؂^ tkp}iaTsJҚz&6ф=gIq=8M]Kf WI\O8!EIb} pFQ(LG9FL~! +[0 FfI%!W'Bnж%pojD,PVN'ILw]xC6,#}5\T ?oRs<5g0Cf `iG`1c\BwF([yju({=U}Mm=[ƆϵY[wQ/*Wt*8/"Tl"jI"egёq/ZusKhdTu-m(Ȏ  ^YC~7!짼I?ζ2zދ`Of/Fio9dђlwt,> ?RV +~yJ?" o=Clt'iOﲯɯKS.pa +cfWnZt755Kw{kwl629WgL-O 'n05 &d6X1F^K?P7sE*:&mHۿ>86O5/,<+\` F *ﻍ" _ARZ6sALZb5#Nm7)8[87Û雒!vt 7/ů]㜌a'(`1jTz?+hje 8 j MM5⃛l| 68{45c/i4'Hcĝ +Cls<5?VV˹]IG 97kU[2\ּvkR4&T:Y$=v?4r1"LC~??J;|S{>T-Efey3'}DIA'yuiJDRiw@zEo|eǶ0ȏ Hp'*QuLbTC@jUЮl[ZU\TLt C+Ÿ"i T6>biZ)pVg*$Io,1W81nCOU&.I-0 ?H9.OTlp0ĻTӅg}ÚZ8 t% +/x}?;O8X2wcV6:Nu'OvhKOxnBfp&2p6;J<{zMvZ;N'@W~EQs3y;\,l!H@jrR_s*%d _K6/s'8En> &j .-o"ii7ʡjPrߴAE:E۬,pdwfn;mbK[gY'<E9QN(QzF2  BPBOHLz9=C6G TDd%@sGsA FB0gIRVLt6o- v0{o%D.EVP!|)tvyr˕%<ބ2'2Q C&ORhB-BSt}EdH6s·&hm* Br(ͦBc"n"luX sqK6]7z@+/{HvXmgk7%G%< zc^V >(":gmwVB5sY@ ԌjS2pU^V8`Q NyN7=0>"QG޽,Xf,K " t8`MNY*d' }'ɊbDV鎗\KgkmVjީI3U!yÚv>HLGIXtEwFՍt|V8&%w#8,mG s!m.ԣvg9^@5ۘP>,%U}l.˂p4$nTVUX1*^&NEمsΰ |30.Q1w,nxdRVe3¹ 'H9^fݩ&7|r ^m+|z*Ȫb,sji}}^Y2Su!hf7d'iJ+wk<^whufe!- Y'v8'coYn9L)=C~E(l+ՐB%O|&>u"QI!6ZWPWn(X98Ѿrףnd)>0~`^i>2>YC \%=F\ϒ%5Nuxy߮AѹόZ2vRQ-g#mkpv`Y8 SEpad7!ܱ&pMٿ*%aCq(?&Halu#5iv=QNIp-5hwf`s< QL}I gZ)}9*K?)d~;fO*_Mu 1HB&Grɫ㗫j*1 fhiD՞YН"ucRA֞ U뽂Ė"˵v5Eyg.<o(~S]whTBA!FPH#(n$7a(}]r2p쐅nBUUrSq7+fW _Yo[}5=-8  0(y xu&} O&`:@  `-IN|0 `J;C^p07HX`P (8>( c Kp#|d`30ˁ^cqX:L꬛X]^YUW`/+ѕB٭V?&+וa><?K)z̛²RȱV:N)'! !teR<{Q9;|F(nD)a*<3V303R#Ϸ(劋#cjE0,*Fc0fYg^b6@%u35k07O1FG읒DʑʠհțF36b 'MMyjԴ̸虷Ϻ#λbgϙ{w\|~^1$ON1.H[x}Lӗf,^o+VZƲ6/Zȶ~{mظi?Ru5bˊJYc_2wA"o50njqEjE7fY99,ڹRĪevÄA.[$#+pW&e)iscbg&,EyLBWbai8,0$ d⢵v}l[ͳBVKv)kcI oUpevZJt|I yc 3bK ]4y2.r¢ Zx.ӕBV4VQi[d).zd 7(Y!n-u8?t YD-)`뭐;Vns)Y0h)rθ#~+#mJ UZڹ<*H`JqRD M>2n]ܒg%R`uJ;o2l! ]Vgu-0+%N VK9}:n,*oͿN9o(x'ID7{W}4dbg|`|}] Ey~q6n*F q][kB>.R| kav ‘Tȡ"0;BTÝ+*7Z~O?dke%Rbcܸ!Z8X˗|O0C 鍎`1* X]Vert=IBYf1`}^gZ Wlc鏠\)iJhFKIp*å𬔞{vóJz~;w={~9xQY XkjjQ [XoaQ6nX UMPîKJz Q'?7Mg7}Z=d7 ? ?솫,;F;P>20:;kIӇwȣ=O<~3y^|{_ͫ}wط7[p=vğN:}潳Ö>>ϟ|z/x:םv+~}3DC3<7.!:D%$o?>lc2ݑfBKM d"<1qfm=/n 33[U s/WLhetE'a~uh{-1_|0H0[H"򴬐WH~RORIŴc< 0K6be3XBfվd x3x@"K\+'~fØ G:MILfqi]R-"8Aр Zi2Z Z ~K/\߽I֒l$+U,-+cx@xˀ 01̳O\;.J{Nr" Gaj`x_ L?<׃{Nz10s c>0O _hDÐtxL5 nJ20EIOxFw?_|?2(3K^^:t{Xsg 3yf^?(5mY=h:=NJn ܟ?vos}W>/!˹=tzYyW37[ku򏝭,-Z֚Lw̒Y{q֌&c"˽'lKZf(*]Wl+$LLhLVae2M j*犭EŖ+1n|-ʳgX tY-W; 8;eFhҪo'8S1mrYI $\TT Y$9'q?q',5Xʼ M ѻ˼x5)ۡiBsqS[2'ːVXrYf.vݗ2F![`0iVK99`#@c%ČUf(_=yvk  @x30mRa±eM dYɘ rY<|NSg߉K"կՅ@L mM-_Tfɗa4 8{7HRi~FyQ)dXq`3S d_,"E6S.ʷ&ZLc<3ke];/~_ XYto@"7vBxAmö^V^/_=q2X%߲"*8'IR8t#P̯K;Vy1z~%}>irC?QK'X(eR uh iv`E?yү6K8cIbe3}Y Mb2D-vY>u Y{T$1.6. RRd034K t;$PZV$]{}N2q^RaxwM 8v?=8E5TH.uODQ@4b!(Oa* #EW#嫕F$OHI{n,3$7[?G*XǍLĶ]5XpRS w(G_J%NJJ!-mmsO?Tޟv >tCos!P( t\z57o")uHݪgp n|k7n0~k{n< ϭ:{jJx:fǶ:ٖOZ0̝[i=d)j1>}1WB_20IT)עõW0f? .*p#𥁬ůE-] .4Q 3N!pVw)N? . Ml~iuY.qDˆJzC?s?4K;k3~ҘDZZ@Ŭ.,)4 72D.AOxox@ɩϛXejPKTQQ&setuptools/gui-64.exe{xT0~&3Ln7`P40P琉Ɗ"V49&d;ֶWk*&rp T}#@p=֞I&y>2g}]{mOm%$I63MIZ%>]3Hz;}˸Uq3_ZP}w?*g?{Hs^W3?sC;9;;c/龫6$|l›[s-|ZyW˃ |Iq4MvC"S eK҇2_ĵOES$Ɏ?RSZ`$ J\4)yX$Gb<ɓ{kB_,xA>AO߿ lC wa͝]L&fdFkp򎼮vG5򰩖2WO`&ie sٽ*_Wd]Xuln3bUj fl3; 5]M٪KtA!ۅ^ރUPhpRE!w*e*[dTlT6 &RTPf7%anQ@ewC~5rQ5+Uv<Ԫ YU.mM>sv#ԪR#!7` /~OthjvsB,qHr}qCm`(,]@Aqݮ-٪Z[fSsToKEf"XR ْDӹW."{'%Tb{_Yo*kQY_f=!1{]pdjL7u5DA@=ʎ*ᥒ.ЪBs5S eЄQ)ȇW_vO^/"bsl|]}}vY3Vޖ1}U?J"KS%R&) 7s xVyI1Mv>a&մYc,RM0W| OC w@Gt #$*&g:$)r ,'4 <Qv6[U,i-ğOk `.{ ,T}I'P # w52CeAw λ!nOTwQ텉jGڐ3-Fة@9\~#,KG^˦n0 omz,*P M#8>RUurbC͢Z3r lʷ@A9IHf([}B!@ [DY)Df$HPe{RXňNaaƁkLfk4 $P1|UPHb'v:@)FY*Tn7 El3Qۗ]57zջRW5 65[6HH1)SGX5JW=DV$)la2+yZ*Y7f㰺/Tn |1\\uh 5VP.Rͦ&vAMw0[Y~"(\xHq-S{L8m m cK5VeTHSfƨ! LA?mk-iv1m8yl7C K6CV9 3k_"%Ͻb"l#_h|cJxOpiYLtXeb " g:F|VRd2-˾ ~jP }yfXayQnWmϕfvB(IFu"AE8kx${ 8"k|rlnejz `Cp6"30r";U 4:!AVN5b-RF>kB~$iPٽr@%ۋ pٳ{ [11뉔yHL[5QjmZTc}j4,w;%! J"587x^ǡ q2f/١60 "jUs;!Vmn Ɯ=D-ջb Tgw/ |C]ګ5]>6BDssTc5ɱ 52tI86Te{FCZ=/S+6J^eQy) @`ހ>CFR P,5y"#jo8}B>Gm7"МTyk-w$ }a@>7wn~GōՖF;D*Qi5v)k WzxI;wp.bUlտ+x2jsU!`]X4Z* 00nȁr 8ݰ:<<8u_;\oU1"؍?T:GY喢3) SYa ֧ir88z\KXV56atp=mJsoY q,VKb(KkڵրQC W~qZw_Wx~Y1zM__<2 c1CD*LenR=;`s*JҴ \; sUH y0.L!H9w@"f=v[ho ˃dy%ق]0ֽ;hm(o QYqSuKZB8ОMJ}"ZKL^ < >24HsUzi2r6 ynth|SeIpާiгc3 Tq-#=AzM^MmpлIRr/h3Xa{@$=I" ڠ3ߘa9;pIp#S  m̩U~̋IRhhCxvG,1*T8`õ{QE; 3vB NX˞:[K:Y~q4fS#V8Dߦzha&A,zz'?jrTNaDZ*@pHhlk?-NaP25Yס|s!WbKߏI..R;rM1AЋ^_Cg' cc#ӵ*I%i! OwAµ(TWFY)6d2 /5 P#;2 YPk@>.~FqJPw{w5W:a7'ځ*ڠtvmV1r\ V:^X`ƻÊޓB9<0$;sՆ mTZs뛔<``;Pr`,' ljWQhl{&vmBw}I:4pء"BRKٲolTiPPӨ5Fm6vh煺 jÁxXpB]z-K̵є$A`d .jJq Q5;-h9* 9>̅P<6&R įFtVE0E,db)X/(q`+w &B ADH1%%ےʪƴsP٣AO0% #.Bz/6#{<24uuE6f,eGlЙ:`Ĺuy 5&#*әا}%ڈd6+al`<m,r$D5BډBf\Hivs1;Q(x_E8{pd]̽tE?)0bdk24}7]';P3A/נIx6$Vf ``"8FQ&!0$xm/p/ A>i:'4*_/!bi! SfΆ7PtKzJj#+;Di#_}QоsP񬋿"1E< GO."c{´V\ ۛ5V&Is_>C?wT]۪Zg_X"Vg` 5/9XpТ8g_hrטM6*pT`_/&iYt;_}8S4NO@g]Y|sF'7'Ü_Ο1GaB*$YiW)_l\4.6ũAk>h&þE?'Y'{ $?Ax&!, E$,lglnQR^*W>ءOם4@C\N4oaib:wA4aS:T?m奴1 'Ȯhd0QBfD*̺>67vy͢ gBr،O+~$Wy=Vz{*ӔKJZ:ۣM Gbٛ@8PjmVFjira⃹*Y|%^!#JhXȡ? Vջ[C"f,L,Rwqazy02qn{ԓa¶hQV"3l%[l blDel.vcb>@\3RrN/b[ S H'y  *o"V]g2M :sA< ȁUR\c\Zj+by]+Btk,Ŵkٱ,8p/kcꢨ}u[ͼ0¸l5:ޟR4S|TeQ-+`,&-+ O]$ZfA9-4Q=W$y7a[]'l8]G&NKڃR<}`.,{{~~ ý?~Q,x ; g@њ| I*|V jc-.v!M*#n3Mf$xlYF zX 4-uE+wJ֪b3l=d),0ޅcs2GkxC]XğjR] 4tIJ5G/IC帶Ww{c3>+ ǧ4L9 ]E(kѐ͊\~%7u:Z4Xm.{ #a|*Ǭ ۤW[Hz*#;Ij8nfMwz1 :⁋X"io"\"h8fkB =O.+Rp(r2Xm)C)947j=v6[9\!6$%Rxklj*/2πU#}{Ot0,:hjLa{Ct֑C*v+i5lۀ<9סDժu0.zDA]}% K䕥=-XG@@ QJz͏oxg-q|U]+ɏ+7֥bhpZ1p߲mFr0 п)#h=r{F.(z\*Zuw2_ߪcq028"Ge-\ hhf;?:pU"PH* } M~w@p.ݨdi~,`KiC(u熯Lit>4 )rE>*3JLu _V*WK--{vwRG{7gPVӳԡT/KGKpw:a Unzuk. >k0vFO2bmv*kFla\VD*oʤ}&$5Y |Uӕ8EqJ|%l(PԢ, 뎥*.E &SjyGj _G$ׄE -c2Q\vWm .HEuSOЏ +9G"A\`O!tϒkfd^LC kE|@xRcQW4"|t^wCz[/6uM"p!|uh֯@;" 7Ys@Hȿ>ExnnS)|Ċ/e‚ T];7yqČq%?6&6]8lPj_2ֆ.ʂ<Qc LeYq60}0ϐq3MSl 6Fl5aDK|k >vYi~{|>a hSwl]tɪE5+V"'\џA.h+UZ.Fs EE7;9z%@r'ڱ:同OwiD5'B\~&mm>%| PC)dN0{3@ˡ#JND,d@hRJ9(q"4 {wLlɪ3D.M %𛯍ߋ![ Q9^U4U,ShM=EQ),Y3A0vRmlO@7+|)l#:s\8B: oǽ%3m(>B`ml v) J+KjqLSi*N( ?R?S0 bq'hdBp%ȡM5eh[ysM-/X_+,ʓyDH4OvF}@ ~PN3FHVw 0J+UUgf |[ L#S/|d.+Fds&ĒJ cYuTtzOkU3UG ,,Y*o1K.Z2I_+հG^QoX/nXujdFqXfqV,&c^يnAEiMRM/TbVȏTg{zjkZk\eV[f{$pJ.աXڏ Xogfl~K.}Uu~Q!MxB"d'琔YAt T-kw1n҉eZ26 e4bGt澅Rtoůo$_V>QSxeu+ĮZhWI\GeGA8Yׅ2Q¼Y(W{Daej9]z dG DkG|ooۍ*DFOUJ ~G0 Rէo5 {"F_ #nSr[7'҇Rz>')Kyy|d)_Ʒq8^?3EDs=^IE۾.4wqNל[Q}}LhlA0aG`61䘆sOm"~PǦK55לT'ƗA֭E[Mj (º{K 8 P|xPWE|@O 3w"M30oM^_(׭wӮQxI7j1tVNkt87`p}'@! [{m~}W4uS GrlEZzs`E֘!ieײ.%r[/j6AUn%@} a.U+&Y3 وŞ$ou /eA/avc_SpSS<`EԘ.ݘg@DfyeT8/fs[!ߌAjSoWFSX OiQ#8G^S7I{G CJz2&9ǝgK<_)/tffzk( B3%ײk:2~ƙ]-P^D~hURӥL)0#E"q;Qed%i.J)78yb#Axa'M$ M*@ _D&l/O[A>CݘwVqq_|ͪ>`7Sׁ ]tVNJKe%1''G@}%NI{{ȴujL/-o$:k„X"I8mts<JxY_MRwԘ5kv,B3_(9 ^L"c*>]KcY٧lŊcKxI>2Q\ vȡ#bAqJZ%?dZj-M)xdBHi=KQhk"_X+](IUkC gkDQ@t™8"68rcʫfԮG1Iw͋ŸbL[x]$L k/ƁE.2: >kG>54GHU䕍6s_ܣE1;?Ug+8dяi VTkVr=>*;]ۇ (0 pA7$qz6!eAmYX}}s w;_^qP]h=ꯍm -x;>JK ﳫHDDv )*5~TFxuKqj~eRzxm04ඞb% ǢĞbK Y0'X2Φ{ jDAG-t>Oy7C0Í5a1a4l,y9kIrD~і)uA˽1 `(fmxsymx[ lmx1jxNP#ox˃4GL(OC1hC9[T;SA&1~QEb|4=-{mfãmqg!nu[8LYg'MQPm| *MPow/a|5'[9腲SugM7$oo Y}cP7vF *,J \Ȃ[P䕶xXuӞfiO^(_dZվ L#ZbC0VĆ)mRLwa0n`PZ%VPezq YB(+He &lcVܮSapvN=߿dœ/XM j/_iyjygWcp(x9Zy2|Z6_Oidcv5XG] 9r(L8g@\&&z,B&QL%65BIʒPǞgmc W}Ա蒆~T /^~,^; ۚH=g*~r?FC؞ bd``A ?Qj~;.?KÂ}h؉*pY0kyVj|ٲF7QqY薕"X%CMC&k RKoB|j ~o"H3?qbrIօ@??.ߙ8#fw&\:ݧ17d_(PIwbЁȵy{\sbР%?7V>)΋Hy]w?$JT^^5|(zA~L O#9)G(Zgr:0]ӷw{E.ymGfjL;ۨ UAſtQ~mlO+ppC$mO:acE)IEMf$,2̿ӦxI> FrCO5/7$]EwQjqhϡYp:Ux꫋𬞞Fл!O~hc[\ k"v 7D^9+HP+٧nI")z+dM J+>h28Z{KGcL- gx |lv'·nO6=& NvTOQ>a :o#`:^4E.æZ_t P~*&_R <``6NQ8}fs5p:_ (lsxi ݯgߓ[62n; VȚtĹB}?4#4q4m<>ҦIg,z*q4$1W4mxC OȡU^ע*y`ί=5&# ?% cۧBvYCY5iT2F 5 MUtlZ:r$()_|6aR4&a^,]/" ,ZZ~hGcp@W?[xjY;>_XޤZa$yhiB={1u6Bfz-g/x x\f?_b7=ŸgeJExЀ< A\a`նhaH֦fƒ)[ӤFKKto'S))O^K׏h*oN70D~T7f3.&}LM6H[ C5lw,g Q=5[Ԧx@ic5]cKfjV ro@ u7,f,[Gc`6Fo5E1hGg5Ѩfn7L=ӕɒ*=a8wkdUT^!'jx}8nEzʠAVF9`-*ay~q}P pf жOف76e%lԆrr 6~e:CKBF~8>K^)n;kgm}#|6?Fc3xc}X=!⵪r1[қ ǯ>hx-˶5xa YP Ȟ7QQr(}ٱx67|j0??7vS,m cax`x_ `FljXT @>%6Ae}CEEO+C|`W q3om:;|wW^~NLۄWb;D“"M T{J+/A'k:o}~9V3nIa!>3Z#|Z@~c7|DaF7NaDe.JAh/a+m mf(z+1?tpCif6ǮSS60d=\@0f:f'Xv56De3&kx3i$(ϓ@G h4LBMzk Ԭ0;iyR,7s'P7tV~SܝH XxzQi* W:'}23r٤a\,Eo:E'A 4+ceYA@YJ&R|OڔBʓEOW/[J_vlx]m7b:Lg-B2['dOsTɡ,l(ѷWlFcP"dF(*D:sr)(1HnAKJjʡE)(h$.RcdPe)nO5)ƒeRÃA ~lŸٱ^]`ƀugf\/W6.BLmrt)'pE Va\DvdfOpU'%*./88B] wO5}4ȲP 8~t~Ht(N('Kܾ4p%ސꫝwdJGJ6z7UBCLe#^DB} S1ɘ7m$FcJR+8FE>wlNȴl\X~H$fl5*F1 &Xm 굸qZc5Drx \s/"+B0}4Tl#rZP?c/Ρ c_kA =7ixUOWDn9ەF7T[zƩzf0lRcINE ,gMzaR jx f̓X]}E[hg5S-#& ~f B$:hQ~1Z~GN5$z6zFַK9cc . Son8^nn/ Q"awߞ KX~|:7C33\/juX.1'1k7mމL3D_U5ٺuEMuW}V6Iz8؃0<߃\+8,Zn `;!b=1' r ޽DD)w斉P ؂~'d!h cyZ' ZA>oy=߈< ~u40c}G3o|āubH~xv`H!ji199.dΧM! ?m،7h">zGLJړ/S <3*Hf^.]y*#IQ@֕8?2Eh7e+Rf5 6QkJ@_ 8ߝ89THR}P@]Љ6D/nԯ?tzDE&ny`RU&8MO\RCwٶ kr>joiҩ3eFm2=Z*y2|S|Jw\c`1ٴ#w3bb9f*кUJa@ B7\ֆpߴѣ8:,^hUvVdJCSo+P57C#.zẢpi_;?ߌ}s^ɲhjݧ"b"@6eɭj?oYxc l;(Ӟ;5 IfwSF-|Ggs@+_oT%y~tu)DKٞ`4.x$|үFՋ)nY#>&')Khǻe:4٬]etG.{-\a9 uw~h5֐ߠoT K3.7@lTTЍ5D*R]^$nk=MeV?c3.Rh C4/GTr6dYY觇_]v8 ΈʁսhQd۰JBŏ 71kNkk)nw&F1Y[YoAU}ә*'L[wxae'zE4>r/DsZ}nSt Aۍ;8F úUcss19*7+6ܗyŌSx-5LBLm'+xab`l0M8%l,VG|,O=^AI$~jӌmaiXCG_tE<ǵˡ7@ ݨ4Ol]zȀ2{] ߨY&z:z&A~\w +e~v<ȢEDi0ϟ xYT6Ů0Kbb}UoW"mC PV w80'<9~tto6in"FEe DdNTiSO%*=b?iEE0|@hĉܛ9k'W'Okx9kRA|ŵv5p(|~3`GvLGq+Df-#`ՐsD7WK@ ӱ ѩa# dN*Af(JoZ}7+ʅVy 9ϟS4ߨQ̱G% ʍA`3r0*^9q._$/3[03H_%|5Pͱ@u>d_*\}[ lMMjDS&&l 2S8K _Ώ?{ 5C (`8WISi/PEb~`.IOCvb8Ǹۍq.!r0 Ӝg j&x~LobSi7)ǿ$="[D@@_!?E`A?@!,aX̫=u5F0>[7{q؅"_(ȧKW";DSx7;E_0x"m";zF-xP,tYƣ|1^a:|X|s|+)x"t>i#Yִj9]f}vဘ"&br )bpcAJ[1DJ3 b:D̋"8r""bDLAzQ!f㍾ kŎfȁBg5Pp{#kwNݮS꤀YO=T 4` $nz{a)eKkZAA`LkcPtxAdA7<0ڔhgaJ2f@r\*VJW{"qxǢΊ~agvvz5V1J%4pxX$kO! %>7e~[jyπmN {} Zw͋5<4ǒw . 2Ŗ_($Y>ogEzV\8_U/L)ڕ 9nWKؔ`si`>| 2[ DQ rИ!>cYܢʭ l֓V2.naPtgn1c0:ewOy$b!smZP4J64fn?rzw=)4yO1r|d8/6*^D{@4`b?μQq!e9vȁCsv*Tl=az*ubTF|KgkDgݭLDOJE@KRds?/6D=}괘n:U{o'2PWUQ|v-ytbls>z$g%|~p~|[UUukM:hNĄ$6*d"BW1qAʌI,E;/q\wM6IrIHDs6 B&7yM^NU:uYvmA_ 5̻<ރy z_O;6nLIpnKC+ xo{l?2Vֳ;aS}{뙨kv\c6:T~mvM0sq1uMOn鞖ӨG94g3hpӖ7B4hy0 [/y07;)!==avJp >Ead"?*ejwWYKbub), QR`]mCd =$?NBK*{sCb 'G"Y}Tw+e'ׇxVO<$#5q9&mŁgv87`\va|'_ߢS? ݻ 4S穰ƞMjr&P-f#ؙxmv7'7{.Ps օ2 PfYX2 '2/0B$Dut&ze()0n! D%b1a\aZSk{/OWScot$+Ak?|tYaٟE'?zY[1?ʇpaQ^t߉9\S͛UJ8&$dBejQNtZ\ƃԥ-]&|]4 0fSd292BjD\NAIؒMةq{J_o+'t3ek\FGn?f@a۶S[SbۥseR.c(/u:{7?Ϡ5ŶT$a:h:,Iuؾ]"e꥝w niזHu37󈶝b/W2첵٭J:)X1z| Tpԙ)3H.47Pfcw[ {7Vb^GHe ^cc?Q5Ws?>B'']>Eq"h01 DyA؛g]?Ln@,oȽ 2ÞBYu=/E,1r.Ul>\#|'0Hd@7Q ]^ ݠlӹ,E(lN<x`P~o)AGbv< _*%i'OX5q (]"́dO=^e:8_9=Lg>* 11DSs OINxXw8D3akl-Y4;m(Z7^|HvՇNvSx,]Ls/RHsi)ɏׄΤ4ZzƊ$&L,+l8D9$)鼞E3,PRNpBAM{)[gX@f6^ԣx<ѭ]aNDќ@ `PbHB:i} ']NPQ^)vOiK- (`1Ir?L &[pSce&,MH??G Ux(44.b9L Nfm4>QKԳ; 5*ݢə|LdRƉ'bdв{NQ},>N3TUVX}r[z3+i X/[LĐS:請`cM/-HTr](dAnʼn@QT"ܻ{ʠ)0.*@Mτ]fӄܑsᲞ΅Z;PPa<wFV٥(U#>  YB <*plhE%.$BzSl/&\Sur2 h+~m%L66喌,o+Qi>Kc Y: q,KX(ŔOV΋!mk*{7'~Shg63mzPoK]tʼn :Sv;Fz kQRrCJ v5=.>̗],$Nzޏ{9[](.xi$'b@EMN"n,N`Y'Ԕr;} e0ЙvL8rvus5AQux,>cqW>(lxp_H]W΃4`#Աv1Ful{{+ v'# ŽO7l\\?~΃GBAWl92+3[CL+|+C1A7pL2@}N@^7xFݶk~"TO XS |ZPUXӪXg^T@7C>wһsW?\/fm˦i\[\}DHEqvLEQa י"Z(%LF9ub@D?VGCa gp6KYtX^ɋXR4[3a69(2 q;v9&Zo0E<մQomóݠ39_}=`W'RnN'5/F+^Ii ~dTEG"Yͫ/z X5 ٲvV۫;6c)շ.pC uv"jDngwvgp4<1mdU[ QHW,;ǤoqL &6drmQP'm˨߄uDgc54Dǚ͈˿@n\ҹ'n3;-ѪV+2nc=QѩpWW.B5ZRюEᥝs /WBw Di=A. 0649{Cr~z1 'M0]y/- #W6*ڶ<C4oqt_7wȡ6)mpJ R~9_<Yyg] SؐQ_ޣL"aa6LuFt(CHRO \p]Bj̸~Kn)ka+HM)N]j7(QEtN ଣv`qP iŦE?8Pી—Ql!c'*j 4RS*E]!23վܳknסexZ-1NalrZ-/6k}Y#@v:V|a\Gsz =EYBcRc!^{yO~ &2iTs:Ff^R 3SQ:\e;䩒F̯9s%6! ]\JlFT m~O{&,?DY\!xn )]XGsb@ItTO9u?rlK!~* ba+ i^ʂ~sPU =r2:¨2k~rK'tŨL))e;:ݞ@ KiomMvwZR >M}[w/U@tSЕLA=sP^"4z˻)kcVz" :T!W3&&:dy4Fz*)ߤ;PF>kA wܜA0g{9{KCgчNT,NvzZt6'5JoǩKp?]H3)4A҃I,4D<9y/V7Kŕ%Gw}Cr%T}843^^Ei rZg]O@n]ie04;D=EUxTU ZL~$X[鴰@u`)*T|S4ɪ##c-֞=^?YkeZ'†lܶw)A@1L5rvt%76 ]5 qZTS ppkmP'^W,`إl:ƨ!K_RIb>Ku֥ld2+ nc{ԯzUsfx,+L%_vx1xGV՗ô7_gSyK#6U?SCǕfh Ϫ1.uEI N!?6lҋ³~ǢS~ty@>>ij.?(t.Go(ɖ3^DhÝ6pv6FcLTcSn3mԙ6nl;^}x˴vN2wRprASLj 1.MMԻض24o4!gϏƎԬ\$ Fø⒴XV"l^ <x [ 1dU⤉3u2mp=P>t 055x~>1I Ka/OV}[!x9ʰ8MM]ʻY-~ZSrLvTx׹r(c3}VU8ZiA<-K@(i;%U۟x's&Rh.|]up[A& (A795#DBN̦J5LS%S:،(xb+ݩqͦtt];Vd5ÿGqϬqԗupF:)l5)؎ Y+x]ZrqDHqg I"g0/:_GATI`&\\c;;ד ]=`QJZQ Q'^:SJ9u `V ߕGK`[[w|߂w~XR;D}TK93@3zF8vW}XxE‘~KuݢTWVBl#mxՏ/HMb9 j)ZJɗ-N3Suݑ iJJhE%HK ֕o+Nc SRVKjHfg45;%%k?׮m8+i3OD'н.ھ4-3ݒ}4iVi׉ˇh_49?wH;JŒܗ A '5Q۠#;O sJ_r׆t+~^:]}Pʩ ȅhl^3e{{w=3@޸l f'ӪOq:1NG(|r~68kgTBEFȷ/b_!gI[T%v (N4cER8-lj  $ 6*LLգ^C!z@]gOtչ 3:#S8Fq^%BSW$9VmȨ'6;6{+"+!҈Jbɗp#h\(9U ٍ;CvPM/Fɯ/yT<^ΧD?v.ҭr$׎!9?ݓm3 C$?o%GiMc쐚Qi_ \J-$p &4WSu-\;ă&~ڠ WM 8zڶ F*($q2ң$`|!PE (]9hee@\Y_ˠRl(]0mw߭$]iD?"D ,fzr懨6/\!gWz|39b5ToSBi*.uֺa&4~SfcMyZ\IZ5(S.^.]*yv0M DcBm(wԅ~Lɹ՛KJWFy'Y鹠tbU?Ε4__FWf՟/ ewgLɽ褺(κQ67FqV\D` J9jM5v !Pgr[i( a WA;/GmRT0\X՛L.J4\f}HmeU,Zj1Cz#f>;.e;p&QQMwB]TRnw Yxl 19jy/ "L/94G@DHË^B6,wa-dkrC:( LQa`-WFu^;;ZgI-@\Un/[H3p0͗G3%|3B>h`#7=)"(Î7BӃ|;5O< JpL)o3m%)|@бOʹ]K@%!n.`/G;z/b7! et |1PJ}Hy-PzK{9hݳ*šsOSesǨD\4->?  YsT1M=hAW>!.S/5^?]?4{6cNY>مoK{$(ĎշDQ|yLkO`iEt۵W |eꔶgڎ]t]1L| /01JΙrex&?q+ b)6EwP o!PS:O2n|9!cqԇ_ݭf$+w+L9waaSMBeK/_V6 QͲp`S:p& ( J6~M]x}kꤜt{MU7܅0={W:8f yS轓V:5֛Lo e'JƴΏ~^@\!6ς<פjP=EYXX5.˩66aiGZQ g0% ]A&>zCiE܇Ӥ`1VQߠq@rf.[2ZjwρYS?b9lDP974YNGJʫ%üs`v*ZsksM]k !jj|z Hd4P_Fwp"DŲ{r< X|k\J 2V];Q_\*5}(Aefu.o]ޥϬrKPV%s`lpp- ,]vIfѸB)i]u@}EoTT6s)aa0'}irI_GLj4O:9UW%"h:+޸A'=zIrjXX *-J…HkV9 jֈ_翨˙يvJLa{%l:3ՇT"陏MF$IG,)Lw$k$,>Cv2gϙq )){U`uX;gPW00s%,`S괦Ma_;ΐqq$ʰa[1Ɉ:TBhI4Qo7/и$Ƣ,°b|\3ROp YQj1%-` ﱙ|\SNGlJBDc۬zll`ÀsSmTC|x!2j)tI [nCꈘ"? &Hݚľ@_ap)C/°Zm˯c'̅eahJc\Qt:p`zFH^'^kU'uߤw6t{d/KYxI}HԵ⡧ݕ&jV#i4]tSS̴1ߝ/azQ $B _vJ(7#0B1c. p; Edކi`66rʥ,"0y ')yA׈"&)i 0ض>x> Isyf>p><ЊWI8֛i$ E_IjXٮD0?.`׍GPAEɤnbvwE7 Kq9juUFpe D=f6Fw&qjꅡnTnWƨwbW}J;o]&Of`uws_h <= rmIzԛ骾|ߛ IX(H/ wu[y'{ͬr*9HE]uAu$Au81Xjڨ+n8QT/A5hA/oHI}b$fq(jH&eòaY,rX94m!YY-"](tқjo Vl\g}>XW2 ;Ӷ[[qnN PCOun,T-Ni2Mz E(Y*;}Jڳ@BUlwKyxɼW0];gȤ2e|!!Gޑ 2?vn"fY#=SijwIOw#w-D9wdh ]0G/>4&ҘˬaQ>|>je3|̊/;LkCcCeSLtnS>zp39q9~}r8Wpp M}y~N0{9\n氙Ï9O $+IJ"Ky)$Kˋ, r@ fy r_f)WJ<__ Ͱ"d$F"R>| kr욎Paf 'Z>### קlb΋0_ʆbyK 孂Bb00_ojh{lP# ƨX9W>}0p`WIzî6#F=f7ʚ66~IΌ&2LugM993fʻ_~ǝw.,)){nټ =JAj-Zd)=~ƟO,Jy,g!$7HJr2MYi.oH36(xeB)4uIAe^U gW@R*(*X-je} S(-a.Tz0˅BIJKVS0R W@`GÌP˃18:!Lw %Jϼe -E|aJK҂{i\ (y e8얅/LAUT PֹHTe@Ŗ‚2 j q^X1Kްek,by!SgAR啂O,z:ʲ JYٱܣܴkWsJ,ނB ȶSר.,5\VB ]Q^#4TSC;2)XNGhx ,% )Ҋ.mU E?z5i@ 7(ǡw$TtP ?*s]"BZ,<'OPNhUKy@B EHsC`G** :F ]S"M 'x|Jq)En X C'5xʡ%+y^ o1|o+ '`V A0uÒWQYQ,XfҦE g#F a"@|nył!_% 1gx)*}]bož.bzY5L_^3pmm- Z]faW[gU pv6YUXᒒ!]^6\7,w.~!i~_h!_Ƶ6-M_D?/렀/KQ.Ne5?n7]C#>x׮{ŗ/?ظi[[иmMwٻo-ޡG|[?gUߜj8}?t%^E w/@{Q.׸yU~YgABQEE#%;G SO~3К C#V LhzSGJq"WX9GS+ya6aZ!`|Cr WT@ӹWM/}A! IH$FC7\}uǭB!$9BCh~/ّ}@8n(Ϡ%MXT֪jST-!qȀى } 񩄴0ޫ!OyY$i$MOhbjFGekµ$ܧMkIkTIOLcÉitWc#ýqd@ KƷj0{ StGk#{E^Eؾ&Dy(+kYWx j,RG,3@߀v:^9ḅ4Z9:,Uh EFDK a $-GIDcH_mbl0x#óY[7bّD,B"pC,^$okBKG]>Pv#6׻I $? OРI4%>5F-wj(g j^k'7ֈ0ѐGa Zǿv |Wy+|vJ0%kܭE995>[#m$-CL@?EQ@GFbEkI&$%#- AiMͫ4B4b,o`=@ޒ ˦bH+g5 2|UWco&R' GqJȆ[;[;ⰺ2S^k }!{{i61B{yz\+-ohYG'n Il>![=N$jɳ]f33¸F H__VSKLCTń_#ϗ7#9 5@݁@CBYNj}$C2@s= bxemF%'W8Мz-ҍt ,]5p/k8IU܏'Gc C,IXl ?o;k%S0襄LogIh7k՘\ __Mt,1Xb$$>ƒ1xȿ7W/;=5c5Eߠ8i0 tn7iTC3 }H^VcA-5PڍՒT捏B?z̚>Fpj56D{Yi$h 4b:%b4GK /9k 1 3zMns7zlLcaRQp)S_ hXFfxދ< ߝ<|VDŽwDț&Pʍ#w dx_8 Ed}mMǷwHz1鳝c?+'+n0+&+מڧ%7.߬4q:k 41ǡq.4aZ6VC4"CJHaVf<[Up΄:΍&q[xNzG^K0L{|' rX?+sѭQ^BS =^ 1Dݢͬtzfsx|PxlȵXh +*ޛa+4<>^A!M*| X FS灒?K͎Br-K6V!E#x3>7T9 -"x%xfBvMe=ā6msB!Rt5J}#g'u( v:PwzfpK:ʋr <3G@I Fw. Y=ĘEVgyK |YxSWwn= R^jnl¹_ r(ӭR觕D@aYzʏء&Pbe Ɵ${|@Zwz j=I,wnZPPn;yhþ;J+`ݙDU"/&I**HBV3;!Ye}PeȈp/1S!0x |`igvv?BCzfdji1GRL \Wi;v|UG&O~L)<^_~]jw)0y`ۿg+V=&O0>8DTf8QD8BM<]3w ~=;=۳y=Y<[yeA,㸆e.~_';Pin<%w.: suj{1K+_̿g/4wy/\~~8ϼವڗTS7>s_vA;o7B~l?9%P-[]ÿwZbpQK]ߚg;kE_`[:[RqUJ oy?b>#yfW|nWø=N {q{ uܞ%ܞvnnﯦwpzn+}0[fWeifR7nRvU)U ܞje=-6]"Tz0Fn]:9s8C+¡Cze?㰕9{3 W!왐W k~0h:KS" & ^}R־>1aP#5o*6 pr`X_we1B/kEs{+,J~kDf|^}V<08s -:*kc _-6s( f1!W N[t lo3؇~l> e 3%\|24z ĵc `a3–߳B fND p`v\4 к0{Ccy3P`F𐀧\< B/cKP/N\c G^&d+,T+,UwZ{5V?1zX?Øa>Dh0#Zs>`8z&cÛoٷlK (Q>qCpw(KGp3 nFnFGK˿PKTQQ)όsetuptools/gui.exe|TŹ8|6{9I69 l @AѠK4&1ƕ]"$4niK9Wks2lm~/ֶVpЄ/PkԉKL3g7 ޾}ys<3<<3V?3rßq~Ng!{%͙ Kޜ@5}M}7ᇾKz$I^˯ϓ~欬D=noa;d b"A~7콈>܈'\.[b0rߒd\7g4d9 ,&\ K{S8.5'#tOn$BVj|[usꇤ81_/o] :oÅXA/pEjHErgKY-<#4TqopMlZQ`foEMc~ ,Y)GKfSϿKfM04BOh5W:@7 X:L:* \}݊m@;[Ɨqj@R oy@XZ]"e6C , Hݡ`ӚCV, +l.81"4>+s 0cMiQZR`z|Yl%LQo;FSmڏ%)c\G:bݴ $k S8X<&ʂ72YJ */ijzT:x_`O?l69Yҗ[2}O \] {oT`yy!+>kHzqO8Q8"ﮡO5MOYáoP/ͣN 32wEӠCon<:f@mc :L!oA|'7p?t6e(G7!DlfjࡿԪr|7zh4+1MĆDr*9|8#h~˸h lo@j%G"RnEʣG_;Yuf{f ,n&=l6P_y&MQ$z ۮ]hYʸaG[QG=jrt4]Dv0kwV]-4U )m^r;1Z5(|J͟>r(K%|N.+Έ|j"|vPz+dkۥua[ p};=50؜J>"fm%kmxԽq yuzRCZjF6t{\tuz%(1kD%lqӏ ۪txqp[2iQ*ݶʬmմ4th6ˮZP.Y < ɟ5#qitc.59Khksq : t fy/xJzDp(8Y>3gKeʇF\x5M4(yH[0Fe_t? 3 '9?A ;hrh31`6aH)J{)LQ0 w(Q9+;\,D < a=VL/D!z_uc6<'>vL1+`&郇9ɌoNK _mX@f[XMbpi1@kr&[5pssP㱝ԺNIqTNYDS%uVȕWaDTkÈ|>ȗuB{\y!-,.*Z)9JSfQ|kh?k5tuLWub8} RZ'cyZMn*@Z Jcetb)d^r,HjxcHxKSIgKr74Y<,DӉhr+8\B (Mf7z>hO@Pf#D}B A*Pr5P:vVU<= \ Q~2$=OO[su#z.&U yGPT rl]II;xvj~dGj@Hc @N-gncRNtݑXN޻eGByWfGnHZ5T5KyZ7ƓS@W(w H%H1'4.Pz,٪TKJ "@N;:Pu]SL~LZHՂR8'к+.SJi3y<4dp׵K)ufy'bzlbR;VCa0:罪n=v.܅bfE!}҈57㸍hi~Аl, 4Iw6 L qj4ȟӸq-gNŪN%e@1@g( }LbR.me/x4  t! R3F|SW.2XUKYpc;Aw5h~'t0(Zij#~5.@!dBlR\}Z1(HbO8L[m.˿Ҥ4;Xy3AMڤȩ,Oϫ=ܭ|÷cG A!pv;Pa!DXl ڛ{T[2߰H/A>hq% ߇2; f 'UYk8qovLH`B;Ͷu > XW2V_Ya BQ"H4/x#*\^Z܉ύž_a_|NGBl64u#F.$!U@S r*n ._ѥy|)XnP5T\kwk~ 2|L'+%xgoغ/S=Q#H="Ft0'HP ]"|0X&4 82^|@j 85 9nW 4n/M@ C(jt$"`zcٳ='ef#S-t*~e 5jR]#7Piv^^cVpAES٪f짐7ؒ. z1K)oCoغg@|MPCgP7{gg+S? /q{&ĵ_|8!`rBn6fɀ-, D6A?-kӐ_ 6aA`̺n=3NރٻA= ͗QQ]4Jʁ|{GE#߆^+ FRzs<0q&[ab#. #%>Q">3ăo*:9$u7"^wmoX JyrrTryry|XH̱VXNG>ޙo,]a<wiB-\ˏb.-hZG(Is 6opQh2rbT.-5Mϖ/א O41OS"mK1A½4Nǵ\NN{k{Iۘ)[F: nfd %8E(uR*9 A b>ʔGB}`[+ZzX.j'lr8oۧaR4rnDV൵-oy@cV!3@q1F5ŚæpR(tgPqqnk@Dk$£șw=<;  YŒ;H@T((2i|4S@Snwt7xF9 ?ڸ3x95lCS&4HgflɐDcB%jd&n D+@b-&#!Žb(Xfucԇpߙb/y5ƻ=; хwxxK/dDx2֎kV4bNJEدuX"Jdntۯt}n6$)8=av쉱:ISB{=|kfiL!FC!,n:YZ>GoKP[E6~dtWҏRVkgRQj"Ky j[K\=D=A*6#p9FqKX%D&OɌ'&}[ 2r o|̒PM7ȋ_*\q?#"V ͋L4/L-KhSG%-xNN,f*BƬ!b oyPFp[.Rd,MWbFOa/nHtQ4:M̺2р؀k9P.㮶$jp56萧&hbeY5e̖.7#\XcQy 4ǿ$<_mpqi|.lR4y#RM 1C/<{Yk?cz{Ka/d_<P5j2dLأ!Tq]dHMp'CID0|i9qŇ#g5!ֽW0?Vш%h9Kjipu;)r^ZFoMiݐ=. 'NiBr馦BU+mg->qdjxvD ulȴi-!Qz9@k1B*'p|رFɭ֊~6um%On1'KuBըIUV𳶡~fرF@^a>bpi *,mbOfR)018ET%8Ya] а +Ȓ''-8 vIV qP!ܺb * »{, %P2 z qlq zwoPJF|SefL$~-6oefi|#zMcjZ~()=R%@?=f1p?|$=J߁<- *Vn7BOC4h }`lYчBp턹R$1jDI+tyvYK|4K9QԠD?ZDqȧܖ$+E\d>IwpՃ.{^7]uLwN șjt/tatUęH>-g%zlZ3m[El\q\WzXZnG)4`4bJpIt7JN6FգhsMgDTb&z7 tߓ<^c`X)#@\C$frC\˥+uV;p,,,>҇.Anipt" +j9,5+GȨa'+l)t/EUK7,fzzi,  N,;EuGm>ƀ#uD^,': ͘gSK]Oˤ<Q[yރaONN7 u qK"I6Cmh֝e'`<#( bP 7vA6]tnh'+F m8׍c%08si*r.};tqZOx?9dF:93[3h-3} mlgzfB#ik/Q!xcb.#ć.:- PL庛#1ʧ"`(ETU]xC_FGq@OI.Rx [4HutB} at+Yf1)uX<@>zYVCaۥmܝJ,>;뭦ӝJ"xT 23,+Ź2u ۀKn,%+%bGya\PMhfYtۄ;J3[.,2͕ h(47qkͥz1o>f߶x0Ma=oГf˂d{8~m~]9l*mWs#no/bUݮg|k|Y>K5sWk5YJ}`Ogz]00Qtr&NL23u77z$XXwD-<)o1G>dFB[,*Nu>1cjq' nFAAM]Q#>AW`K{&3dЃ%PɖCQQ*Z"e[vK ױpW3e=Pwqn}l7U\qB.nky 4(Ͱh-q\ݠ +<K:r8m.&*_@9!Q9ERhYb; P0X_ n)x4%ͪGBBdqT"c1| _Oy1q2AZݭѧҐj(IC#7qr^ p$}K3sb"_m9c#2Ą/tvkG8dl,yMCeCJ+*ץp+9 >YTO_9< ۼtXje YRnY]' , 9mIn^kk$LAb墄imݑihcGО8yPaG{/͸~7d 6kO%8>T=}Z\omfrII,*iE&E-(Sޅ62Uw?w <&ݩL/]xJ_m\XjyVl}pt[ɪwU Hԫ`ztVd]a0Њ#hMr]>0\+@L2 [Vg`.0ve]ǓhJwOKZv c6-X%[qWԊإUF;y韐}j;j{i={mjx&SoE~xF}_h<=/|Xte #Q-C_S*C!:*Q=T衕8k꾐4k[>8ذe-/3ctɺMcBŬ,d(D)d:Bc!ef&G[l5n=B!56?b2|2ANm= XY@)Eȋ H" 'e)V6 v"O"v"ubƧsaP,ʻ<'p؍RD a!D)50+=v _e6{#5Hڬ!Fb*Iݧ?WSwP"u:t-uR I-ހP`E%q<*uBY('$ǷJ+ZwuϬںZbK\7h:τք\1wth!bW?@}hQ24>4F!L*͵'Ee6hnE'Y8G}n4Qw[ JVbaJʑ.+?mO8Kf=8FE?<݉["f:|w(8[2dinanǐ2͇h~̻hr$jŭH2CDQg˺3W%?㩡m vgBU Bt"HT_%޼1Y9.')*$ǴaE}kp8򮴢0HAE8y}A~z&1}:RK+CkڪKC9C)( &]weGdsp,Pcꂹe\PH7qjhm p]w5ޠW\[Qt@|=|8JI 3eHf9) `yt ]nh9Kr P83#Frzk}cgF}Qo Ph~tI@E|PP9>Z/kUSl} 4v::D 8]a,b :Yl]"V52{5B$ЯqwV5Pr XyPQ;C/}Fc%0hSە8<,4t?qDbúntS3I.#>@_3Uh'xw;𑘣cH':ypWLzS Ϧ9(w3oZmnc3TuVNO}i;8?U+>}nTʬ&)_B lJͤԔN Ƴ\ǻMU-ye''OyQ~:F2&v LOqA ΂1xB6$w`N#Q*ۿaMe 3(mo9#TMdDq"v,Y 퍥+ eF{RNz骯uP_!ޕ;2fΒ7Z_#ކᥥ?N^Xd]psi(~KJpvO06Ԩ6 Zuh6F;M\ZrH+Cw*sjAv7/ ͎ tcPOdˠŬF7C# g`S2.rH?0"͂?VF ".2!ŝ6$i3vRBMRamgNyrVd щ;8މ֥N1n3kwui0]=h!ttMF!AʀI/O%.^ܷZ>ѹxvFi|NMjy*7'HXj8As[؁12C۸ڣ-뮍N%gkG=CҮFlq%2 uj[3Iq*صJ[>z&) 0yԏޒ.uNb#B"ۚ1 Ƌ[l UkE DHPܭkgr;Iܶbvb ZRNL|eWZ)|ޖ3!hFu?BAe@#:m-sAk`'Z4o9FUeqԤ=Ps?@a/BCZE>M #t_EDvϋt]IP Rz/0YqOa:@ yWmCY{}$sg*BN(–$gS„h^UAJtϐ5\)zx<1~]^Myix#L1 6PBiZA]ܧJ%"Ѐ'laqQ Rt)71PtC]f"`IPGCz 6d06t[ُ1 nuBP,LT1^_ěRV]J< 8Z1S䘖shPWh9as\}>Ǡv>(9(H%Oe׃EXA}ÊQEdrIE?;1YpsMyT'~g)D?x+vG .{&}ϗvTAA>R=B]Ji`WH%.R"()C=RR~}3Ta-PוxkdWll@%8.V~CM ,L6*6 S'in MQ/cV1 (c qY_E3w#v`^jytH-'p@ndI8}]ߴgdns mG?>.H#Oc.V]tQ2؛:C39c`&q jkG3kx-2Zuf1X-pIOb- 1ǐdY'ǚ{_פR($.wJSj"R\~5q1/^ [یΔ K>>⏐|OFJkds'?;y&KH O'Qh!}i!$L}j;_|<ϑ7ir?d9-xT݇A]$]vGGe$oVsT &ufex (Am͡B+o!jYyc̋ 4Vcb ˫blm@\2 dcHV #t z1W[`YB}@3Ԕȹ-7h?~`.IFp^; D0vA}6]}xLjj8ą3rD]EuN=xCW&Tnx7ypzt QGJW33<G+W"DxᑯLP)A?5T~gC fޞʼisOhPgGDHK"=~t㹞/c9ScH!2zhP#na۰A?ú Ny:鴾k桷3yW7+zߍqnZR3NE"/4]y'*0SH^C9~rSqGU0llbUQckd6^&u[rofi7':fPьYx4htIF=`_G[v/<7[^;zc ;m8BHj*7 ޛ ^+fhlxK 1L5:7peD?{{]t 錞J,ۡ8avj9:[QWat\Wr/Sm^n Ó ^GCWts )‹@ƿx_Nϝ~ `\ tYG2mv)] [A׍ؤ0;'uj.| ("R$ $!3V`^Ӑ J&7.e0 2R2ryу^q ߅g-%)+W ˳y{GR~Z ф<3@V:nWѤ-)Sk]LȠEALd/:w!]R=/Avd8察Dbݙ3[SBvWtl1"yHԥtrԈfs?XE}!IR ?Rx t,Um)p>4M`z: Of߬w+WFo`@1P<Ÿ tIJE/73[_`"YnkMǁ"*QwԀYDnӢ'*/BpUYeiyӕU0Q6 -L(%> sL2'9HGBK] UYkB\)|HE ]ʸc2 0^-EMf'/P–nJG'Tk,z]Fx /»JV⩌N?q ^Oxolk?W PkXL:{55и`3j4˃K0|bWA)N^ ~ 1+h|܈#@}7p~ƭ!,Qxx$ڤg"yO4uf{P-`?Z P,O9Yx20\Z_T Auv)Xh ( %=6;q P<*n)|PG/!#6ȎZrk\јk u!YZAGrOG ږR$Wy-P+EB;*h>KFxs [ۊ*n WԻjmw½o½y7@K J[F*2/"a֤W G9}#0N(oȓLP w;&LnT(U Ccؕ y٠[MIlp~uE_bYd1t1겨F"7Ύu'$c*J%2I&hN@^_sv :E74pbr,8f/|OPڭj8Dgd?(D7&g53vVΡ/q3*Әq=+z';ZxE5rRIb\lg=D6礼]o`OzUU{l'?*%G?EiM_¦~K( 7Z \IF!=_%} RcP 0;q ^b|9m.S.^Z߰(HgfF`ٔCϜ<,B97L/̼O( 1G īP!' b Ԇ$e#Pj^P%gLNd\ec 7V Y8\Zʔ_,%eq >Ik غd3 ]4gAb(](3k{)y栦36`zsf{J"G6zx.T^9Jb̃i7[-f6yÂ'РDC{a Äw@H8 r:oAKR>k2 ])/W2)l> 5G3xulzX) <Y*KG1c>bgO\z}nô> . jXܛmDBR|UB6@qA܉IPW5PWD$h%+d VQmYo'ϔ06rlಜжZqM38*pTE֠͆ V]ҴzlKha~bM`00~џcނ ^Ges(k(F]nq{]q8>?K0k.i/pE1d6A@[FړNrluf}W-:B~Aۃ bsT^¢8=+0*t?8TMnw?ř((q6zkwJK-S\@X#%ʇu7W@| M{9NώTA_؃nq"9_@R ؝#FK ڶ{H&m`9G4<WƜSrucDhL6kL_A*LИ[Y4'q$&A .^#MoŽq}NgI4f\o!ɣM,2eˢ~\t\ХDSЄdю#RJ^+HyUv1CkȘ}sK¯#eL˴݅> v&OA$gN_U7>y;C[Gؖ ]B.39^Xm|(ߺҤ0@?no@y~wՎ&vdGIGt59Rr)esuhScQH& n:A˝!x;{l-W U+TV?sw2#^>-Pǃ?s?lrR L(ﻀcG/L70mAC &Eu(;-;*d:z%ܙz Wb 4+|lt D@\Њ\;G@C3*փL i F$rAˡZұ/-.#3ݕNAzQ?{fKe~ (ͅOM.`\UWr{^55XOK;6PerbI6/BkZu$u ȿ\gQ1|\ _(&_lK6OӶn\0wO&ﺻ1gGC"Х;<߁3 OL'wSyT s0䁼j XY+f8DmG?* ,x^EBC0j9lRӼ߰СG. ?;Odyo콉pӉ^fjbo o|[{/};_ػsqG;{>}}GٻCIfQt;{W{/M%~et5{+{}W%H+{--aut{Kt{o콙%P؋ 4c,5Oi[E|gcDc1$FAA*0pTtp e8Fͧ&M_mm'i 'D`M`% ἵ>3̠Xk}upߵ?g^{-7r_#NgQ|<yD.<>#^&{ e,{>XD43T9yV>UZ&-|Qp}Jg|d'R/| %? Q96_ "|Z B芡~^<reOQ:?A2P{/Wh獀[? 5Hg!S'E dQK(sTg.54+*`\忟 b|T~J ԥ_z+r>gjgB" D|$gUďF@yBj\޾ & _r{^F?>ߑ_/ԄƁ' h)pU!"9'ȸYШ,2nZh;A&$ɹq922{cwL?꬗5"gur+K Ht <`' #A:1B}*?hӫَebu2,}՜j}&MG7˝)WT.(F=ֶPgҮv*GĨFrwa8UL K.ե!rgLr?ƥ/.%s6ɝr4 \İYy@=< {'Zi+6ppp;Np^ps+a^0^Jv]( xqbLk/w"޸n><ږ:!j¾bxZ:R_o\}}R F(<hKUL=S@פ/kM3W_AL ~1wŃH}5َ <EVl|M$u$Fn8ZpUW\e`6 G&UXyolE2Ѫ%w7Ӧ ,JНkF A{jfCϽ@M}Fh" (JYৈ)66Hr(Qxf cp)'EȵJXS|84z٢[\]s[ttNAxd9ëj8Φy+!Nnꠄ0;s~5 U)xwƌ(/)/"7 =C6Hw=LEwKeY*}%d}h0Qc\+=Q)FK2TA,D>3АƯoxƀ- CMYf6biMk\xM!ԉ"$ &{)}]*BZ_"3樥h \%Rf[O `vD)z5.Mpn)z6jݳ7߻E–+n,{Pg?-]..jq|_OWqAjo= .=X}*Wҵ^n^␒O++Snjr7f %Ox|s8*{E 2\(7udMB;?[e΃0XkZƒ88Nre_fr'ߠ <͎n炝']4OCICxrvX1myfׅĆ[NPg osr;xjW%:[찪J8 jm.xR2P=ۘ0) ПUt oDx ہ@& 4΅nNf^^t"+[†W}z~e/mӔ_kP=} Ð&rB5iOP ƋXWx_yǯ>3$2'yG <x+_n:_md?+ͱ,mdżp@u;pO w˹nC.OKI YB1.#PqУ,#ιi2 x $BQHe='pO8 c Cc7, %F p\6c;$LH 44d'UqkE@CB丂wrՠ{фh5~kęNJb 3X 9@u,Ltp뜉X}~y.``޲BFpGTC$ÃMlxWv!Z8Nu0g0j 芠qĝth7Sxo,55n+9.Jxg'}ag;}y|OEIOU*n.\r|?`PsPҶB9b;q6v"ɜJJ;%NmrpNPʁ~v;Ei%Ba5ȴf u?wq!ݔwuU8EƍWBocx~wpHI|bNSmW:.0c'CSȁ Xp+GԮ0\ȽJA+2hMMvZ7pQi$ hhb4E?Z5H ܶM6/h-Q]W:kqɏ:D*ub z$ We '7\vXSJ)ͪ0޳.<&0P,:lR*)]W( k=&1lt"\`2\<2^ o:luU՚d MB:ȞH'5vRqQ(Ngs2܅f9L"LhdIl]QOή3)s;b0qh^x$xvl5 PˤL[e[|eVEq6~kJd' Yt5V&k|9._,;/&  QxUݴzÈ t%C6'nkhm,`=PF0P=|EݬE ,iC<#aY) XtߪH4FVWY+5[!`*CQpԶr79%z2,HE* F7>A3ǢAM 4-ş!w/Im.Ďo}LBQv#wgϸ2;-v\_ .29=9.S% ̤Rlo f^N,}<}ƟF< =b%"Ky((bjro좈BA|:re; ڟy,ㄷf:9Y#R&b r3x^} ҍfa޾zvjP9DӀvhҲ*NOѝAUB>>Sqº]NTsK]߰$$;[JYHsYsN*1'Ւ$jOYdJҟ0^4(1C{](K_7Ѕ8xBPM:JV\iMig}{/OU S67j l:mhai ^K>H0lŻ1n`E{x%z.b:(٬B= tY7FNrT(J;s]s(aʏ WЧ+ gyB:6Psf! 4ߪ3ӟsXT4|kfMv{33:r &{2zJ|PF'X#nRa˧s\0W~ Tߊ[0yE)M%rܠ?}D|% @5H( 55ObZ85QvҦS3k犭C4o"TnoESVnWufY{ *2؆ Јy;2bkFOj U 4a&='& J9jH֜jʗQVy;eJ߼q0u#YѓLZ6B<꽐-*!Rx׏+҇My[?W**=  r t"މ2${oX:GQD%[x4nG5mƖ7Vp•bѤߩXt$~.6&Ssk60,.#8GG9 Fm$("nZP%| Ev@K8BBlad 9nr[H󛋮!uYDNLtD 52ZR~SGp&Ng}SMU쓎!GM#0q.M칏L0gߥ,zˮ#"ډK5W$sN噂VTB⛢0ACiwO4ͣS0NSCap=Y,lazFͷaif!oMzڎ9ϔ`緐SMWnTwж *c 3lYXހ cl}jڻDB4T=U ܳO:{*l6ew[%"Lbg *B|^ 7k iW7`66ٛVS},}nHTaRƑJbm>,2Bj؂^ tkp}iaTsJҚz&6ф=gIq=8M]Kf WI\O8!EIb} pFQ(LG9FL~! +[0 FfI%!W'Bnж%pojD,PVN'ILw]xC6,#}5\T ?oRs<5g0Cf `iG`1c\BwF([yju({=U}Mm=[ƆϵY[wQ/*Wt*8/"Tl"jI"egёq/ZusKhdTu-m(Ȏ  ^YC~7!짼I?ζ2zދ`Of/Fio9dђlwt,> ?RV +~yJ?" o=Clt'iOﲯɯKS.pa +cfWnZt755Kw{kwl629WgL-O 'n05 &d6X1F^K?P7sE*:&mHۿ>86O5/,<+\` F *ﻍ" _ARZ6sALZb5#Nm7)8[87Û雒!vt 7/ů]㜌a'(`1jTz?+hje 8 j MM5⃛l| 68{45c/i4'Hcĝ +Cls<5?VV˹]IG 97kU[2\ּvkR4&T:Y$=v?4r1"LC~??J;|S{>T-Efey3'}DIA'yuiJDRiw@zEo|eǶ0ȏ Hp'*QuLbTC@jUЮl[ZU\TLt C+Ÿ"i T6>biZ)pVg*$Io,1W81nCOU&.I-0 ?H9.OTlp0ĻTӅg}ÚZ8 t% +/x}?;O8X2wcV6:Nu'OvhKOxnBfp&2p6;J<{zMvZ;N'@W~EQs3y;\,l!H@jrR_s*%d _K6/s'8En> &j .-o"ii7ʡjPrߴAE:E۬,pdwfn;mbK[gY'<E9QN(QzF2  BPBOHLz9=C6G TDd%@sGsA FB0gIRVLt6o- v0{o%D.EVP!|)tvyr˕%<ބ2'2Q C&ORhB-BSt}EdH6s·&hm* Br(ͦBc"n"luX sqK6]7z@+/{HvXmgk7%G%< zc^V >(":gmwVB5sY@ ԌjS2pU^V8`Q NyN7=0>"QG޽,Xf,K " t8`MNY*d' }'ɊbDV鎗\KgkmVjީI3U!yÚv>HLGIXtEwFՍt|V8&%w#8,mG s!m.ԣvg9^@5ۘP>,%U}l.˂p4$nTVUX1*^&NEمsΰ |30.Q1w,nxdRVe3¹ 'H9^fݩ&7|r ^m+|z*Ȫb,sji}}^Y2Su!hf7d'iJ+wk<^whufe!- Y'v8'coYn9L)=C~E(l+ՐB%O|&>u"QI!6ZWPWn(X98Ѿrףnd)>0~`^i>2>YC \%=F\ϒ%5Nuxy߮AѹόZ2vRQ-g#mkpv`Y8 SEpad7!ܱ&pMٿ*%aCq(?&Halu#5iv=QNIp-5hwf`s< QL}I gZ)}9*K?)d~;fO*_Mu 1HB&Grɫ㗫j*1 fhiD՞YН"ucRA֞ U뽂Ė"˵v5Eyg.<o(~S]whTBA!FPH#(n$7a(}]r2p쐅nBUUrSq7+fW _Yo[}5=-8  0(y xu&} O&`:@  `-IN|0 `J;C^p07HX`P (8>( c Kp#|d`30ˁ^cqX:L꬛X]^YUW`/+ѕB٭V?&+וa><?K)z̛²RȱV:N)'! !teR<{Q9;|F(nD)a*<3V303R#Ϸ(劋#cjE0,*Fc0fYg^b6@%u35k07O1FG읒DʑʠհțF36b 'MMyjԴ̸虷Ϻ#λbgϙ{w\|~^1$ON1.H[x}Lӗf,^o+VZƲ6/Zȶ~{mظi?Ru5bˊJYc_2wA"o50njqEjE7fY99,ڹRĪevÄA.[$#+pW&e)iscbg&,EyLBWbai8,0$ d⢵v}l[ͳBVKv)kcI oUpevZJt|I yc 3bK ]4y2.r¢ Zx.ӕBV4VQi[d).zd 7(Y!n-u8?t YD-)`뭐;Vns)Y0h)rθ#~+#mJ UZڹ<*H`JqRD M>2n]ܒg%R`uJ;o2l! ]Vgu-0+%N VK9}:n,*oͿN9o(x'ID7{W}4dbg|`|}] Ey~q6n*F q][kB>.R| kav ‘Tȡ"0;BTÝ+*7Z~O?dke%Rbcܸ!Z8X˗|O0C 鍎`1* X]Vert=IBYf1`}^gZ Wlc鏠\)iJhFKIp*å𬔞{vóJz~;w={~9xQY XkjjQ [XoaQ6nX UMPîKJz Q'?7Mg7}Z=d7 ? ?솫,;F;P>20:;kIӇwȣ=O<~3y^|{_ͫ}wط7[p=vğN:}潳Ö>>ϟ|z/x:םv+~}3DC3<7.!:D%$o?>lc2ݑfBKM d"<1qfm=/n 33[U s/WLhetE'a~uh{-1_|0H0[H"򴬐WH~RORIŴc< 0K6be3XBfվd x3x@"K\+'~fØ G:MILfqi]R-"8Aр Zi2Z Z ~K/\߽I֒l$+U,-+cx@xˀ 01̳O\;.J{Nr" Gaj`x_ L?<׃{Nz10s c>0O _hDÐtxL5 nJ20EIOxFw?_|?2(3K^^:t{Xsg 3yf^?(5mY=h:=NJn ܟ?vos}W>/!˹=tzYyW37[ku򏝭,-Z֚Lw̒Y{q֌&c"˽'lKZf(*]Wl+$LLhLVae2M j*犭EŖ+1n|-ʳgX tY-W; 8;eFhҪo'8S1mrYI $\TT Y$9'q?q',5Xʼ M ѻ˼x5)ۡiBsqS[2'ːVXrYf.vݗ2F![`0iVK99`#@c%ČUf(_=yvk  @x30mRa±eM dYɘ rY<|NSg߉K"կՅ@L mM-_Tfɗa4 8{7HRi~FyQ)dXq`3S d_,"E6S.ʷ&ZLc<3ke];/~_ XYto@"7vBxAmö^V^/_=q2X%߲"*8'IR8t#P̯K;Vy1z~%}>irC?QK'X(eR uh iv`E?yү6K8cIbe3}Y Mb2D-vY>u Y{T$1.6. RRd034K t;$PZV$]{}N2q^RaxwM 8v?=8E5TH.uODQ@4b!(Oa* #EW#嫕F$OHI{n,3$7[?G*XǍLĶ]5XpRS w(G_J%NJJ!-mmsO?Tޟv >tCos!P( t\z57o")uHݪgp n|k7n0~k{n< ϭ:{jJx:fǶ:ٖOZ0̝[i=d)j1>}1WB_20IT)עõW0f? .*p#𥁬ůE-] .4Q 3N!pVw)N? . Ml~iuY.qDˆJzC?s?4K;k3~ҘDZZ@Ŭ.,)4 72D.AOxox@ɩϛXejPKTQQ.ޮZdsetuptools/installer.pyX_o6 ɛnn`˲,]BKY&U #)jDV*C6\M{ݪUb:G7lVrOjMgxnd`JI5ח<ŶMsL)AD%{*Q},І6M/0^1 e2lM5Z_eNqz>!;;;[ )Fpknl 0XZb\l% Eh`AjE5&*0CJ h nn򩥠Z3PI9۰aFzձ\3SmUǛdMׇ`$!,l`f5YKE,XL,V iْN3 f}[Adas(˪23ӕ)fqLUz ̽bLSST *݌fsq{xv7/_X5]Jzq:visG]V=.FCz2RR*yA@ne4d; !񔣷R facAH:O`RĞATEt_X*@Xyҿa? *ȱ&٣I*s8B1C`9[2b >K1W,LDHuttF(ڽ7 TT_J>{ JLD:\&~|S*6Ⓣv>hsߍSRP\9Q`vV[ }hdK%s~H~7Xc>P=pOQB?+3I0ā>yprt2uuv"W+7nuď`"6ÌВ3 ՎN}oo" φKR|8=5'f5̽ #:+a{ ?&د#nX9~)G%h}^L_-|F¸-1eckwA,\v 7H=9l 5LGD,d/[};|S6MO|:DĘрka]Fp!).T sxV/8X TWtŚF8j\vxNS# !5@_ZPNaL4FB f'ꍌX؜ PKTQQ2S,setuptools/launch.pyURn `Gr-k$SUD`:_8 3;9⯚F ArQiR΀D ́ 0{JU;*)H8xOw3FfƢF \"9]pS$g9}a}@LDinq,8 I/ȀAs9c#fo琓 2K0a}LZr_{^,dpo~əC?i}CUr̉78=?'YwQ?[Y>-IOBC߻ә1L|/:t~ݣ'QϘCiPKTQQE4asetuptools/monkey.pyXmo6_($/4ɺˇ"K d݊aZm.S%q {y܋zpp0Q=ߒj-QKR c{+)g 1M%fkIb)$+t٥MmՖ}[Y-j*b6|FսAI㕝`pwʌR&%zzk] N $4k՟s(dz[y?+Tˤ!/ ]qU^I3?ytk3ܐJ2nbdnޗ3Q{CV}[zsZkyE yRVY_pBlziE'gf"0ᤅJrI]𝝐(8!9- 9DX岀jxk9ԥҒ9Y[ۙ󣣕~QV9;%L •KHހO9 > ^a1')Y$f]@dAߺu.,o2H8Y:j -k+ W-s¥O7) "ےYԌ9IdpԿbECD`꫱ n5ռ+"5X5%iO!Q7Y PR۞BR5VAi)ڴG;0yDl%4O6Oga|1l>Q1+0{0i͠H %% [> /5-lZl&l@P 1lyfmfY48ҼTM"'B]W~{[SBgGP. g9BwTb|m ɢ_5O˱A3Ro;DǓ vCU0qh$U9>*=~ŸO O ͓glzLO9B 9ˠ+Vm=ɰv{{}w9\ջ]ݾɃhIE fn|AÀ[v_/aGߊ)٣tk Kwe(ܫx:e3tb5 I0 LJ?kT$ȿIwJ(q8TA< 594Fݯ(6`˝ b#,!8kk 1k5,RYA$>p3i0G⍧AaIp` 5o^>D$ְʭ]0*xJqY}.SLäFpȦk֒A -, Fɍv΢Um'6:qD" +U6+/n6JK-xN I͆i'w^=><ވgrFM jaoE|^|h|X%B"N/ۧM:!8|Ixɍ2jiɯCg'7)^SxϘXE*^2=[9)Ϝ.J^k=Dl 4LX aP&-`bBtD"4wz)Ӭ19zhtS`OzBT>*]H1iyC37uw7_JbOiq)RbfD/u[L&9lO70=zY[ GnoQsIo*Hj.WkLIy:R 륄PSy|E<؝Jlc}8Z>>o]UzSve"3EK'grM=l>Nci❍o/&}/N,[J:ﷻC3ҌLHV=:u:*-i&fύxF+OIhŸ?Ksl8 ~GsFJ$\:?I0Ąm.~Oo&(+vQX4,KGbN=I* -@|]{{4nE ^Fc DE4}l2㝯$.IQ33|H+ h23K X0H d  N<磱 뻣 }cD7/''GOOC?ɧOòE8ٟY8U"B.'}/88(q 'X4@&"xN.G8T8Ny;y>lj٨'z%E9(r6_{u< nJ>({VPdq<݄Ѽp4bCa766фaOe GS)@)+0J)OtR>/BT0#𸇲uLQ;>"4谩&xN*`bpLgwyLdu ׻;/LhT%85Uy7{uƨqe~K`0EO"#,g@R욄OOJMB{eB&w"?~<ʮ+Fk & Ȥvp1 Uu. 56EirP`;PQA5\rdFM4E{Q!1]4uhs!{Jp`STTqص:bE 54"fL3 -4c+(%j^e3w N0AYD!\gqN&iHX CP'ȱG9,.pۅh22QE<;B;-^x1H10ـ^pF &u}DqWdGR=o;줭ϧaR+*9Pg3|?5e F|L|M:,3и,T&J"N0W97S2HipE vfK#jcFH2Uu俬!Ǐ+;J{{6t;[Rl.suK |QK Dh4[DOU]5Yizl +4j( q5`7BT*+21u!j苷ϸHZZ-)oX&K &F{--h5D"((c 9<~9=~?3x5R^ y:t(f}.92>,W8 5)U+k;/ Ua}Gq E`Ail<[8B?pRRD[oy1 A.iJ[4 Ff4 h}F,)@;Jn<SҒ-%K%W/ydw}G=9/ϧq5Q Hq!$՝cLP.UQ[+{C )!ުeVV<1VJ<nsXKlRַ:_Fan2G$D?:Azi*1ƙ7[d,QG]\GIwl~;Wl3088G= P_q6a{^w)ݫ%t {0ˠqG.лJ"{ab>7Q[f!3F}93`)h:w.)%EX`1^y:],0Ǧs$" La4%ENA %ȡi>!n}"!~pΒ@=!; Ӗp'b91%s?, v̓cϕB3>~Niqko&n`gg| xhBL3kd!A+J8躘 ozq|# ŢhQ؏K&dyV"ڃIPWJ % !H#|&VX:6u)cM%4 ޸R ,-Co0t)&+)h]@%Zf{Ygςϖ!JT2]@-:=MqdKs\z~3oM,ihAԵU\\IĜL5^hͻ= HΗ-8}t6Xy0SHEGS[|ŗei&W`}ۨUP5y9[s`b `wY.嘖ATMVkxǟ7K[1F_-X/CtIb\bN`TVv~6a?GuIܠM!aTA@a!E>(}ޓ$I?blt \Щ״ܵ.:'ݣӂS:'  #<]PeP&3Z]Ҁ˱w%2_a<,mw!Z]uh, %Xm+y E䡯.2JT Sm4+b9iE}Kx;ʘ5Uj[ȣ _ØOC]]Ι⿱䐕t˝ikb!gS(<Xiq&J}H5ME2{.AէUջ*YVgA<Ó1t#;rgMX۽py<f$f)Ʒe(eq. RvǞ_}f EA =1xKcC o0OĈ;g"⸓-vH'}ժ`_$➛J,&fx Fć?Elف/>8+SRe1IKVը>",*ϰ׉IW&/i5m^FI\RBWmQJ5!Q5sY+ 5ݵζII*Rm+ c n-CP=r!,þSDM*s2_KuZ3i؊ѢVX]*֥wEj||<~%d6}'m6; j ?0!kX$38rxzir vc>M O< < B"W94j Ic'dwӕƫZ썸s3cLE?jYYj)Y5n%J(pR86 7RlR#Xj}6[6b<-"CPj%F,K)_w"Q}n9HbI}Sk Ś!@m#@`iQ@h`nZa @/>U8حXAm0hD@'`D#̑w{=]2wU2 iۊuCTR' 7o=bvF_^e*U<*) ~5{iTetm'C/qȢCl:]Q@xxK,W@Y-)۫&+J辗D2ezǸI}ulF.򖵣P9MgEk2JHZ][hENMW+cEw& Sp/7%*Jj QM`8ǁY\opSQ]*~@ה! E)Uc2SBa\+:-6g "^DckLdݘ i;GȀH+ /-s}N֬wFkΙ1ldF <K̬JNh31Q/*e( 6HN@'!tq.lꘟv WUǔԕ,{XeYY,SvZŬϯ-<ُR z "ˑhWwm5C<͆nX)@֬Qy6LskB4l*gDIqn)KJFi|=u{pW̆pFvyU+BJ iVNT\bPV X ` JFSBQM=<4Rd eb8-"5):@Fee),p}3%״X]ףI-9Ѧ`V!u2V깽o|=J6HK1dL0ZM,(]ʛǖI&2lB;6*^QӔ2VFV] T uKA;,ÿuE$?lNw>F$i#4G,ʷfK^ZVJUX)woD ,3)4u5Y+QqIJDU3b)QјHDWnV=B,Oniǔ%)(QW1nr'0dL䖣5a:APv$WlzL,6d;Xc0y^l HJskb㳽S>^9v!֫ڝ^7 U"sb}=ϢI|SI]_vdaE냬_vj93޿8m/bЛ{udn[>u[WkQ0o y|Z+'= `B4 }r˖Qa:q^Ȑc6O@J&nRn{㼰JLD>A^#.+HvƢ$e!9&8^=Yu.47&l˂,NHALo)BE3'$XdVhQ2pQވ~tSD J}if4 fQF. .:Xd^A[!g<XFeiMH4z;[:LkՅ,gfp{xrC=8}`$7̢ t&)h؀/WۀʅWO6suBj6N[ upo6#U DDP$c=UIXpJa{͈T{h gX>$Ñy5u6n%$#1g˜cQo1t(O𿉓ٷm;+ǺKZH;STlq2.t_Vl(w1RCMQZ*jkxj(WԔ/[VaGmqClӰZW 5E[[i]lՌ~m^5 Fs aT;nlGt.QC6F_CЮ> Y*;l *\'H!τS5V²ob}]%̏2":a] ~j}BfY2MSf:FW`*?pPdyKPKVb o}E謽 #sԸk[0"[^ 9q?We`9JɋwSS~w6<FizۀL[ mj%q]3SrXK |`Vw;ӪUlFX\t]-ʡ 9%eʳR Wod9m 6&9Uǎfh8 uM翁4/Y`7Gm]N Wq4/ӖZVDK~6KmnW0hw.c1\v޶~?xlճqfɨ{۔_Ż tX&x4`ʝokU]BZ}*r' q7)\sHk`K1"uGsts{Z+VRFqƺ-> صxzK%9H9u6T~Q_^D€wWbׂfxIYZԧ$ wvrQ7#^K#+sL;{4bò2ؗjƉr#ypڍPNYc0i]nMDξ@ $ue껇T#j_Pn@;[g(YR K-:2|iNBJ6ӞsҀ=.vvCJ*hlV(`Ie>3*Mawwi}B9eDjzTs]j۪ W67&"ʸx'Y jR94kn@JTQj2֚U!$jCwkVeU ty7a g ݙ&lj&ѕmB>n }-* ^"ff7;4dı SZ0F_Y}L7CT2<ʖ{(0%Ytpp^'VvN &>o޼ ۃ7y Ǝ)<8tإ>z_fa/i`Zn뵈Qt[O$aI OQK@fBZKyC1=|1OvGHp#8@=Ne8`tA@N/r+-l`N NC@/T[Qx"F7OK $11&#XU3ezK4ehUFtnqb9ݵ)f[ap?- EI3d[$7d} YT9bD@֙=κͿW̩fH5ZMr$BYhX;}1X|/"6FNȂour .UI>Þ@wТOt w+ʐ=F zhu7b_GM ! /Fo '#M|N ,IJ}{ : qRZQdFk_|fHA9:@0)q u˝hp7S7#K 5e@`-ͲeZ̯ͫWC6Ɋ{Wxi"-H/GDש#t$Pt>HȣB ^t횫^OND%PS⿧8[}"kmQJ]U ] 4iZF' &eri g}ft~ R]-eZeLzlw=}vήݼ6W2{ U)ڣB q^&0tl/^2].W* UiqLX-MjgdH]  YIsP Z! v5NUvWk6[.JBS,5 xqfuG+ڀei\N`*$I5E= O_ PQQ0_@mV^ 2b #欃a-Di}/̤4R'E!B?PKTQQvo.setuptools/package_index.py}kwFw u=m'wbC{ɬ Ib J=֣@R=<'1EtWWWW׫ ) *1ku2L"H"/4+`/[˪ m[%Է &_R4ꯋ§Jh6kƗ/J妚 % gywGnT|T*ɳbN(xg'@WYU+(gE:M-h(JȯWqݔy ~+Ϡ7?Y9əɪu>7kM\y"/'L]"zJR5im4j7co~ɟ8}0gj bD'?4{{߿=yjc}w?~9{7/?zgM4ۛNP`T[UX<"{֤17e#"$rxOLJgC I , Q%)`+ђuP΁^."B~%_6bܖ^Xx܉L-"q2f` Xpp}q *|?55~ S1KÆ+0C@-p[t W0DA5Ƈ(۳Oէ1hfYxJ="X%4gDf,k0 FT.S:c0P lIŲO&Aހ(Z6XVVђ ưBXD0b#w39%HiXaX'0_lbdf}2IՌڦȳKov4U@gI$g ҥƆkE눺hŒƐxw&X) (iLhK2ҕK9;D53axZ}H7fj5;HUBU~L?g-C?=:>^SXKHǀN[ҞVJG0l6HپE,=gIa5̩el:|mTc;^`|#QAZjR$"V L"ץ:"XMRQ[xva6 #JGӧϞ=Oyo'0{`~ $MG *Ni#kfN<rQN A Mx/t(jl(5|$ao9z728;%L I#.]7Tcx9`H rN1Q*gJfu̪Mn>eX69+DkFkhS]Oeј5(K|/OK`ـ7Bf#Cc/.އj ȼD1bYIHt(K EkW:OAJB5 fbnHj@7ӎ Zo*fe*"7 G8^4x,}v\eY(GBM|I0>tV4]-a~f93 a-RT8yV7 f܆E62؞'3AtfȒ++hO `g^ȩ h6A>7co/ '=# @@'l<1r3hPy Z=~1#QL;:z|'oJNVi-f0GxH{h^oZ6Γ"o!4`]gqY- &(@.˺'Qx7Y2i.d lu>A 1 Y2Z[ڹaX^08l_Aha )C/㹠Xjc<2Au+_EL8I₊i7"Kc ?+jhfG)hE: #aF \۵kmjA14lF6\ C 篫r&d73Y/  J?A_b0cZ% ekf$0fVx ;#>ϭ3<-pd{EҐI>(s7;0i MK=h9Jf ^й<\zzϦm..4crhq FfҲ@dl0 RctARs^F|- @kJqdN&Y>+BZ&"*ifaFSҢ<{ %薺Hjh^<^(ev4xm4 Nas>o qbQ"xlN~#C "z0AG$,l BᰋǪX=ۡ5?H]lٍI -`4@&d;\o%)ۄT?? .Uqm%{,8VeFo#=c"k|{p^3 4a:IBԗ4|3@.SL>/#:-vEcEn!nնhyrUwR.kk:jJ#:)#^7s(`5;Di )hO5١xU\#0Q5?Hbfw-v>q}ܡчzxPiupJtI^.H ֛bD5< Ge./$V׻% ,8St(4.QmK2SYU% bwFb? 8 t(|Gj>#/io_b*;/QaX2-!D~,vzivM ;|^[ 6R)q ?R\+Prb\e)Ezv.ҰS;-N;swyC"ݞtMmhloߘxR)<>jDǫw:Ļvji;z7I鋐NX  |;G݊ͅ';Y]I: ;*f5xt+8Q(8& 2=f"c nm]h>"21 oݩeH ` r#$xpohi &]1,Cϵby*sC3 [8-tSG M|0"9Q&ĸ9˱-k<QcC?}ջ]=~$ v0gCێIr`CIUs Śs+ѶoZ}`%$/U.qX% L"҂њ碲sO586E܎2;ȦrEigZ[ ᘖ6 q^G j,E|Dr)g2)gd]hTCnĮL/!{>L`` P`ԛ-+qDb 1?ǃ'r]]-lxk#2Lcd\gJ6 jŘ\- $u7m *nԮQ셒/!ȹcӵ2l v\+Ö1'(  :V"̀<2{%'UFµ\$!;6gΘ71om0cO$&uØ$*CUbKH)-SyPTNڋLφGzԕjqЊl>}mhVAt].~H (i؃d9:WB!n7 4ϭ7x}X`T&0'k444T!#!aȍeJW)G.,g 9~r~N?:h}'LFi&k=2/S첬8R' )V 8%SCMSb2^)xu-oY*Е Lڙ 2麒jyPF˹8Xiv9?XXŶøoTx.do`>Jes 㦘-]wFjLۢ; `8mFS] c5럲V:~)DYgA9meճHOTjFT=[5E,Ч_CN #yřA.{4U;}`E<݅(# ޏt}0 dU%I/ϏnFW<.(Ζ<0fjbZYT"&圶EP Vb'w:w\`G!fL)k/L H^jK5dO[d ]Daaar\s sK?+\2s*W;ّ@30GcS<{[hD5#yuKIO`y3n[C %q#sK,][D%GV0HKmQ JB*pMeӠ55εՅ# +d5x;B1=x}mfsVlD NO zUX&DҽL'PT7VS0I~"$KvJd#uJHZ6/58`0W1Wzr/Y=EI×D&@*]lҳZTvuLʯy{=7i;x<bh)"AKEi|N<HU0˳f+Ce֤|$V2,S[1-R…#O=̑[ϝayFeameMv1b`}غkuY vݩ+7RB[Ϊ*Bw{9h+sav D˵ F~cT0;j >d5 Vp10z{0۸tɲVU<7ĀuHtV%mTϠ5Ǣ{HxQ;HGX4ízrz:cx[-j( W|*JMƭ Es1[?+z&ηFt'S!Y;Kz)t&TSTz``@8|u`$,K[[ ^I ;&g X1 ,ԃyǞCf@IotȉOC'h DNvZ|6=[@\F>f҇A6_r=*Z_|Qu.`~_%QY-Yjf{}1N ϥAl9FfDSV`d,-EE uȐvʿak+R5 |Y;ڽ2 GOّɲ=a`I'1_,(WuZ(% dISpHZpY*<ٕ.PmR $jɎKd%wBSo&Bǁ(һƤ6Ww0q&q84?}?M]5NMd:J#L)J4'sgZ{<.p^U Z]ɾ=o*B:@<[£{=굕-]^wEn9x▰NGxAv _}$v1pRၫN"Ff8"?aYCJO=k-NL yvu%:cǍsZ[StdS7Lyߗ:re3AЅ^'܅'ghO?/7悤y)PL!R_:`└ ca wF}nWZ 4!MJ" 1us+._7Jؽ{ewX$KY0<`7T\4IUbUbksYSurie&U"ŭ:ycƳByǗъդ G#t/K:!|Al A!%-cXPj%74*;\ߍKmuCf~` oC [ˮaHlP<>jx\b(ຬ҉J%r7b%oBTPGlåkpiS0?qWo3-٧sȰCU,'@pS4#´D6NꮫC. sOf5ߴWS;SSdw'ZYЏͭ~sԕ,y%LbjNkfVz+JwcGYjGq/}|Hvow,TuIg83O1ËvR̞^{7\:[uXΉwP]U-YUm̀2[~f1}7h:gfK͜0|{Y&B-lu޳YU+;\],F0ڵxP>(~|`&NjϡqoJ&OGyη `(fY#geFDE_*Ol%@hGג$Y[5!49DšRWj֊-?)XoqsSc;~;_=QN(0|zyj_g ߚIh\L*+BM&x@kԥ/*9+duٲnF{2\M5tj\Z|"aŌdX#m0U7d3=*֤n8†x+&8T褪2Xt P)DEҰJTj"˪C+UifE59)p@khU \3UL4 g8PrH||]xHw"=):f>7/<[D3&6{JS0 }yc\?{PBץѩމzw̨31(`oG lY\Y'EJ)IU{;j=1Id`]k{[M] 5y ] zfI]F5$ d>!D`^OmU<\w;zk.2ż-0ѫ'`Wqv{rس'la.gMW#Kx]@5[jҮ73Ό#oŒ3.w^ `x@O1e պF7 Y4&i,Hд k=SnÔomh{:/ĉH">05葊(Fhd$ΫSj! 4v@aI*.Et|+W"[YduṮ!_ӑ`Prb/}^lٽ?X6c\ߌJ JyR8iԽ1|7-:sF:a{ԉ q{32ˎr,4 aK0ⰋG{~4q1"3]0g@C ]cNN5x@} w{ݸ{0^wUn4gތG3ar0!ۍ,`IB6B߰\s1ܷM!d|Syn* 9ڡ#.Y(-K5Uۙh8Av+y$H.QŔunI?Hi%[ro+ۿ)̅ڠ6PՋ?k h;ǤӳrLڃz4]4'"Vx+VFwB'^E>]n|!at_wUfh >wg9y?}#̳Oz؎m7&.-Rٿ|YuFwpLQsmFJqz#n:Eko+z+Uɼyˑszb4*1kJ@9]Kĭxzޭ/d]Vs")s¹<V '?enG8:ա z5a*i*2xRI¹uN=/\{{##F?<pkϣ//4D$0D ̘u/p(Xa$zi`/m0z{hq*1i]/nVP\tAcD$x*+wz:'ÖD+ mu5pPKTQQVDsetuptools/py34compat.pyeM ! 9E(tE=8c:J޾U) -x?ǜD _^egw"IF;Rഎ@vmɴm"CUתt{v7 ikBr?;vmiPKTQQUNG7setuptools/sandbox.pyko~.J*U+pFk\p VbD]Rwf]X9;;2Ŷej5+ڻVlUQ nm-UWem]nA ܐnmVWؖilƇ7+ʶ́onR)TLJ[ڢTgְr x[MQݤJ yOZnr٪ۢ]Ɍ C$;]UV5}AW,ъR ~3,z_[q=kD/>fiK!nBu%f)襂5Ҕe{rTYWx`' )@ur3(j@QWxOv kNkKG1A즬T V|!]F\'''džEb+vaYI,Fro0s2p(Vvf$'Z+C%+ _eY~AmLk !F1d\nyo$*)7XOrc8ɵAnx葳3 Q=[X x?F3A?޷9-fiw\H<#狺ڈC]K"/6>oJu=:D򍀵*!lZoήd'(| OGĜrZ)ǦS̗h~E5-Tm2IK4IS|CB܎!S?@vpJ3,M;@f+Md>)yo\0:90%T{BmQdǠ@,xYE ˃t+@[ 2âܚ} 3# ?^0g~pB@S{dI{a$?)d#Ou :ae4w[1ωC ?=ړ/Hhv锐{̖7wZR״KcIKmb+dQ&pq. {i'EKmRhChzY[B2vŎCUwf*on&aPv /eKS=Nۂ*L*|mR,oWU45K4+!)KXNwn3x!HLxt(xJM*ctC1PL]w} R̻bXP IB!8S=:WVj2n,R]wպM>EA;0d>D *-VUT«Ke:A^D:S4fMz*gOG+ȍ+@S-Jא2g몕9-0ֵ~Yz88|wPAF\T"[jVୈ rM\@y.!V<K ؙh`BC CPTmlk_F@ %U§k2_L`(ˎ:JK9}2 ]/3daSL}ux齏YWhQ]mhBb+]yiP JCi0mbU|̵^߄Q({g!p0{g2"kizHJ1 nGiEJ7{Nt]Hxuf՗dS?4Zn~v>tuClgp޸mјxSZwl;1\ r0DuFQwpmrv5RYi=0eӜJ{ ћR[Hݔڣ'£xUqZm8[> ',ZZ=I̡^N#sԡAc ph09OcVe$82~Ut̊x##UmKg~&H}n7iC CrWd⧖ 6Qxfb%7ćlr|=Gė8X$ -4ݲX2II뇭o?t$'geQm[tAzu/?}dSvrXc?W]S_Nw XTMa؞fϡv$8SYo>wgl^9^b}RovC =]⣮(Fl-Zo)(-7ZZ_UdJ^ pi׉RcPwm>jGhSU){PЁQa tiP5,zGOܞz;KX<^N輈m)v!M ޮĒc _ؓII_O㷻\' G>JXĞZm!IJ\}S3X5A "Rop-}]bZb8qs*2D.K[Gwz8I< ŮҾԕ^^FV_ ]s:ݪ7:vO4@c:1-h=d]^?4ٶs'(ōثث$V wV =;zj ь1lO9*bM[K2in}Hr )>w% f'#FA4@WL_Z fH=90pswzYɨ13ی+l^KW )V y2w88N E0IyޛMث/$,O+q$_G^[~z;WMBPLfj>Y$#e#hcdK-}k&@gxNB<1{OIsspE'} _&rJTQ-ow vh3]I_4]'͐v{ ':L<8 D0;OLjW !*R?zOup(FQ׫FI/"G8 2Kd(*.qs~9_6!#>kVѥ-}[G޴_&;68Qst&Psb<Z5-9"d'b'JT>LٟػWO?*hw, N&(>p if>g˻L`NRtr/أ9IW{|_ثٻK:3xzyq~Wo_>_]_rb^s_eGSn<8mu ՞m}BK\ٶW>-U:R}ʶO(?/?ن߈X' &b}I8vZ& WղžFjbW(GDXz+QEV{rn]PmKz׳vy?D1 'zi$ӣ]װSR@O@]FSpB*v<ڹ 6 ^q'%Mp­A%XE_ѵ`zr֗ <3?PKTQQsetuptools/script (dev).tmpl= 0 " 6`a!੔[k۩o͜B/ ʢdաi9kvޒBE9m@!=' ۿw=X-*o&3|u47\% }lyЃ4E H]@ 6&1~!&_PKTQQ3jsetuptools/script.tmplSVpu q v RP(.HM,22 JsS5R K3Rl♹E%@UEɩzEyS4*PKTQQFeE ?!setuptools/ssl_support.pyZms6_'#ҕ:ũ8MfR;g9m"!1E0hYoI=M&!b|U P>)qݼ1Mi^hղ(sU`uE" s)V[$+Q˔+n`u.K)-Y Zn&FLU C+M^CgI`+Q IXQ$ 0s߸盼\};}ʬr8"y^fIʒYC8ݳ`3r,3Qd.pq0`t\c]1@S-MC>Sм$cd }.HR%BhWt4_3f| gN4k[/>. jPUZUSUbϖ @c} Q#e 2`/68װH6_1σF`劔BtHX^h(d 4`\°ƝZI 쩣 M"Kى+.BX yz#ȞA& 4zN\zU<ŵn]NcqNHIkYP␼̚(Mģ*\@#r$A4~cO(i30 CNz<|m Б>ۯCZÓ}?!^ ASD|>O9m@yо+!yE/YI0D4 1lXE9Q L< T a+@pF+8`ER^F " $gJ&|K> Xh rȋ)1NDwo%k8ZW$+8Ili=Vr@p|fyk=! Q.A[&wo^[(26A5 JGSXP)`nz^v@OJPH%0ɆDiaO1WYJg K^80ւkŋqdf)!7$JZ41QVA1EPKs0&Z;nOY`ŷvA^kֳ(f<ˀM:ZD]+I":G8ު<|AɯHm7 H;a ] 57q.-λq`P;5 oóZ/MUfr S<)P :I"[WrqvėXzt $m㲹-Ђf3z }";ݗْǣܾﳂ^)BmCc'5 Ew.7kŎt+9[jt,j*HPK'J'؂OoXh`eHAs[: ?.M,1?Xw2IS/6#9I#{SxV/=)+ӧ֌>?{}ՉczJON NZ5Vn;WyZ8I3V2N 4H\[n[!&kt Zo8zotq5ZGzZ4c_;V; ` `guĚ?M飔͡w9T*% 9+:N^v X?i%Ah`?s?nX0[iJg>@Tg6׻7/Ld2& Xug]/F+]{w;Lղ֙X _W$/~c.BMYd!*j~ @bŤ\ hHG8VM;bfVC{X1:. =}vkz"+8ܡ*v͡!"D8s;m\Hp폘\(s34މ=Yf>3tK$}3nm;v~Ɠ#u^G?#&nai?@Q%3ͨz!LR5Yhpܕ}dۯ΀E1ަB^ 6qmy~vt~E§Q UVܟPPEËɛ[7QkCi=. t Ĺ~á_J[PJeu4= ;_߆f;) +, LܝKbW=Fs-ly0D$PKTQQT+~setuptools/unicode_utils.pyR=o0+Na*Vj\j8G^С`KXO:39Uې(&{;;a[>8OhɱM$؆l},4$cϪ84`{[0gYOϥsXM?QQ+Êa"n5vH9 4?֐f-VKm@8wK[>) ?E˓4}Ip9IЫ0cqc? @(9 XZ5=\2 ZTa5 {wvhuK{o޽9Ţ!1!cjQAԤ:C٫ ((\lYSb6i.ՂCGQLjGgB.>2Sめ_X. a3{P_8!rB_a.$[0UzdYJnpJ7nIznjˢ#G$զGS%ˎ6 @AU{$\Qm(Z g(BjԅX -3"&Jο^ܲ2-4b  mc*udy.DL@r,3Y@ց"GqS/.pϚU]m2YFBΫrV5gLk(dO ֌JeҥĄ֢vQmv-Zg3 bJͮRTԂˊFTpnQ@*b;Y?c v%)NUMˍa 9鬄~!APd(Kk`'qPc[pT5`="o@ځwlj뺐&x,p y/$TOyScWkhec+T}@J7 2Uo D  %ئ; N662^0:0 1&RMa1fY P`ϳBIpX z#Q'AgckrɢSP/2}ȣך2n0`ayP?E2[HVn\[CI[%N9X.jy!ngvfCT EJexÿAyn%o@8 DuMw8\"<>duXZKr#d/IdcNFg8 ¹]N E_V-cx ZYZ?U[L6]u-0zz{pq;'3Sӛ zIت;.˗06|RLpj@ ZTA}UՎRH(V'/\uuL߱:8nj)fչ3Cj @E1PbRk|>{^K2½/[ S#h{ w,@`rS Jw)~׈I\tiapŏ '<~7GCXaaMCbL?`yR_dw5{XW`yM4!3GSB\X/LNҞ*/`:IGϣ_ \݅" ;Ӷz)^9m{x`ǺQkz{͑pf=c/yfu81^cbF1*K{uRn8Tc1Mn'7ۻ0·CbֿR2vOrا +,'v mtQkNJ4|hyԃȮpySraeC"jŽBc QO.#iY \a@RV&J&'J{UˣPBN%mBiቜ7Wz9NǴSu;1O }CqP yy 7Re0{߬hXS{z6\,fNgco^/Ï{FaN~w6jÄJ>X16VJ*f?PKTQQB괯!setuptools/_distutils/__init__.pyM11 E{+ +. Fa,Is{ -{sRL0 ^/T.iwjdlP9dT)ۤ}qYS̥ȭX 06)C1i4KsDb%Msc@`;/CQLmF2=PKTQQyT1MQ&setuptools/_distutils/_msvccompiler.pyF$قbW-˼^,%_nf 8 `C^H?":'.L c=-˼z%P:|eǞBw:w<" ,Jo}'ɬ.&Phd X,2@uz@/@ݼUP(*[Q^gh9 PnuK)^5d W|O 7;bj}$xwptbu+ P\Xr[ƿI5"opqaBfIΧGxӫo1}w/*vzA|c>Lgh5RK;fDɫ<DM3@Y`ՋezJ68?[$hThE4c~2|VLz1LkxYm2gk2 8I3>>֥œ(i :%@<[ǽ uSu)MFռ׈TykNRX+9 11y'9A zYHOaP45uZLu~v-n >dAYTaXAB @bH9FߩyeGiu`3Ia283"4qV(f"A( @! H#mС;0ICt:1STG$<53%NyR˳uRs|Q7`w㫱3f B2=d!,% GKpA^WE]yWi-=O20gK@ӱ"? N:cۢ:Z򔃬JuK(ѕ>/Swx BSKFA @縎*z=ad GZ-Z9,lӊ̑D`z#)SNZ U/h1wR6:G.O.g/՟- O1h~0n802,6+ᵤ}}Crj2i7  !#Iew=ڍV1{^s>q/ObW`c[SQAB[^\~l{Avyn]w_JۘU8eO5 WgK'/ ?"xZ!64 +x4Fk+h%i",+ BUwbTeÏmItcxk>M$d6v\`ABTJ^m>̳eSɰ. *f9(%2CXn0%Dyn+MQ ct9* VXtG*T:%UXFe"s!9h'.K !(Pq5h2"Р5T`%]6KQ%XпuKB t&X؀#\nH%eDw#+P:14@ AB @YeRF`Dր\L' } (_4d6bUȼ }NĒJSuq"X'A1.K#Z5E1E!?tl@+lT&hXX=U<$?& H..bM϶q;$>5*o\jgwlQEoTeXxG=2Xռs' #4^#,YX? Ot>evń&D ] jt@A\ .y>ŧ$0Ս̝̻-bUV* i? GM 6*XfL%q]iZ!)Do!.+#$y$ʉpoicZY۩LAa›ՋyQBg6W!FE`f{Nqo v ` [W5pϳ_2'cH$ʚA-MBjr'cL4d2_N}:vYrM$c%VT,C+u7cЖ@EMTT N3$P j wu^v)#3 zi-m Īb5bb+z+YŲVY˥"dbU% ЪyYq(hX_ʪ*D`A`JDʄU/7I=s7uRڮ D4ֿJ8L kO7!js%$ٻ,OE,~zGN#}=w+9Q 0ixw'{O63bv>p &z&F?~3ܛ{==T٧_ Iƈ]TN}cpp\}APkpomu*ḫ9?ezT{ _bSsr-?09_cC[@_:g')G˻S^bݯ|lRPUNy2i-:_HE}>搗XgӧIqNTdZd;;k%j tc![Hn bp T֎k1!b/G+058 I xdAq(/+!4´lˁ9-~\ܻ a.gh]醥yuHԝR`/ SOܤ$X'Daly`;C~#@j i-s\'y~S[rp(d2 35N@XVFSRftBkRH@TTVCHNQ}G`tJ Šۢt};JKN>)xX핈W0z Ia4xs}`n,ABʔ%UqKʡxEnG@J0{!`ۭ7L ЪY ō>X aV\ӒTC2ޠYR[iydwy~9QǙ`ZB-+ TrS|z1&C)Hhֳ2,̻Rek}Ʈ9&->(HiBFnRĀ3oYz2U򔹻KȹT(Ot8ѡ7\4 .mQ?9W942 2nvƈ``"Z) =Jh7~I@x;  ;h]w<>'p(ѩ(ZJM#o#w'urBqe+)NJUo !L'ʇ١qlۻ8bn4;%iuB)cʚ.2xht|M*yO׭IdH?`Lì ?]*@_|לomiWO9kaCbg:qT܍^5F=U}U-9e@TbxpC1_V;mF;OÞZe#D h!ꫲ[t*eE=̫*ߍAyN Pj,u[43pE ƍQ0pP?~w{Ytǰ (B v*Rv 4f :Pjݎ25+8vih鷁Z=Jt9H.:dr xCܽEy UU.?wa}`}#vþ Z%c4viXwe _N/YQFI<ۘJ/m8=kW5߶㷏sr*SaP9`t=~`2=01^:QPqW+ZKdVF o Am `VBdY1`EgRB6xzB{Gpu dAЀbNh mmpw⺷[ّڄi 7p8zPz{]غ\txz  [V4d1Ԏߝ&7, z ^\ww;@R^}+GxxWF:GV_n̞߈Q08(R q@b,i[x+8Aǔ$7y9T,n mKcY;WWU uV^qkHX+}Enmy3;;x^-&mD@*?FBH|.kƣa&>;XQYbbWju=eHՄՙ\A}Y'nx>AtO6 KQaw0*NbۼRTNb` bܣ R,ZiT?!%ZF~<ρ<9IV9Ə,;~ʧ>۪,RnwGw y<$3` *B:ZWn=n~e77ˊo&Mt+uG)| -n4p^݀*xsQѼLθO9k }Z2eל |6>6z?hd.$DԀCbYsW ~rP܁@Ɨ,`9zփQq7b唵 |2l {-՚E3kO; DӻFmxZ' "M?ςyZLrj.fAnN-8H|G[m2K#"ayshD,3H6Vtu7xd9ּ[DY|vMCQQn%ŋ'W; >t ѳ go9',`9 ۜsp)cb|l rSoj}%OH5+Ӟ3ƫ>Θ7 fiD.KGS8KgD$2 VNmOBwe,3^-n7О-y Z9$؋*Y)89.T4)dmɹ/Gެ`SL96h2Kf3$ dgR!v992 3Um5"_*t䣊]dԿT[iFX.ЊT-2:Ֆ u"$-m-)f\ٜ(cJ@;CELB@L<$  I+H|uKm{иd~AGԹ46-GS9)it1ϫ! =͊"r dzdR_<,hG^!GG2_үg޲*˰0EDEPEu'*hѕH@2v @ 9S<0?ߑ:e~$5xDzy8V_~ q? ? 6segL鄅_ȽO7U5\I7SbMv^y==W^3AJʮ\1h! M1a6*<{y*`j%/kC0@9pۀcxHd.Qej채LGKiz@);kSLRcY?HVh*QJD*"tNy>SR ֳ {*, Y<]SqUyMzw4)9jZ藺m;1OǏ7R9ҡ{8E?r`2;{1Aa?Vy 8N;EΩ( qԕӭOpVfXaXt/=4TSu?C\'EVQAJ1RȀ ;-kP}te\ TgZH?; c:qُ7!?~9`9WPQ?eerIsLBɈ#;B࿚(,KTtVp?x, j1n-[;g-y/VLuz-Mų#{D6؜9W Y I>/Sz|^)~;b_~~~?^}j´{>^n"W;^%j)*N&]bRszsH4 + ''iå&=tJ*4MUkSSӑ"ҿChUMwg D2PMy0pokFG%Ǝ>3hntljKdEIy^ˣrJء7ez&Z2Wt7Z^ &^2]jHy9<{@u|4}J* yiA#+aKV}j\2uYC|҆C>txRhow(&9AMzR"4 /U[ _ 匔o{B:O3]GRӑQ4H:1Tf4m<^WM]_/e9v5 y>27"C<ʏʣ;9Mf0?k\VͰCɽ1@4seD׳mv/łB2Q1\ٴ;^Qn'_COz?*w)$ިݕvKM'ԉHj9|Pnec9IhW"kD tiV.36+^ $F}BdYd,eN\fKPKTQQF9.:%setuptools/_distutils/bcppcompiler.py]6}E }"(4-z6A" Ah]ITIiE5ĖÙ|svXB]+JM˪%Wdf;ʬ.^LTM+ 5[96UY޲eV*ثOj}X,...!͑9Ck-m2 oTb'd{|U`niQWK#kM)n?JU,EV5GVJyY)n9bR<,co޾Gs"MA$ZV\֜ʂiѲBjp 2 ɮ%2 he hXA{~j /Z&AJVl8MT$O|{FĽ7boH[GΎixdεNeC"p_-OqZfY sJ#a߽zQ-Q +rsp,Y;&[Xz|0 Q2Lj(HcKF%G[9 ؎V$۪T\Q 棶k>_RJy@}IYHSJҵ٦:^Fl)u9 6( 7ZT,h7u ڷxޙ:2 Z-C,*yEeY- xpTO(jv%$Z#-lgxi?Nzu(6cqA@*Wtaܒ9h^hG7UL_Q?8x-] @sh"uVq448_љEp 'idU@!Hn®IdSRlxb! DQsV_?':rG`'`BE,ּo/Ͻ,1U]=a9H9m8Yb)0&h#X0![s Wg";jWp`< k9}V  &ϿzG-B0hvzYFu3Z׳/迿sk֦tCb(eөQ[}cX{k+W-#&XD : £vi`4f޽ҿ \Im:/k3h#* &S;lI^of$:\0[eӉ $ kR'Ťgt>eس4\ 5]g "fqʣ_-$^O9o:^j?|-T8&8;^MF$4 5,A7-'?R=E x܎^*?&^CCΰf 4R;/Gp <^(Ҟ2-!>H`RL#(A"}+ђ#<)3";5:`W\GSjg J[ ԃw褈$ѮO啐*ևi$`c I)0sa/5dPe׋Hb @ rˑNEL+Nev5yBR}w.^aF`UivQb1rj>l.D%è-aS'^KULP:f~m /=DEP "0gTYcYrWB;^ܔS} 9v9&L9T#YUBFș>mvT_,][ͱ^.BW$53W!<@Q(2PnAnO헙ˏwPdEh@3RH<ک8 ܭxGͩ']jKY.B ljK.yꄭ9I\y{@u@T<}c7j#y=SC U30lrbh@}=VoNOD`h\p3D g@̉88-d*C!7wBvv!Pj,gNrUmOJ96| 0z8>JN7= Lr:[«iWpZN!9,,>k\M-4'Bactztj8'7&r\& 9aNZcBY*^RtrނGH\O%9l\Qkt|/=DxCLwۭ*3Xػ#OL7\6^4A?$y(Q[g2Elq#}ZCQcTaJJ6AN䈲|q)i &ge/K&ו/+rޣԧ\^of4 ;"-NPH(Mop/#f_ͦ$՝C97bj 3~Ja>J0ʳ@gqF]*l} huP/fӌuDʩC`reN3Q HPT9.>xhܰ,,ԓ9݂D'I20٨NӼDӞx0we9ʰnK*H6Q؜ֿ6>&n}(aU0c|M$M0ח2Q3ۄxM*"SŤMutD$4 L A.dmVg_vuudNj `%}yƀ(|J,'-{0ߤHeB\ۋRB9m +x# 眓w^fwfruο΂=|%:/FG깋A71c7@/w35/OQr7AD74`ϸrWMY}> KGgJ*l9@)h9QF (O> ^`:ǪftЛɢyȃK1[D0_A %3Qh$33\>,sZ)4>QP>Ҍ*<;u+PKTQQcx1M"setuptools/_distutils/ccompiler.py}sDZ+6P@!Ulvt-WdB-v]dw! kfzv$8rJ,L&EE7]YeSYYw˗<$[u}}:UuIIaemuouu'A*:6OC7O @fIm.ï]vWoa5_mm,aˢlÆ2UmLܴ~7lu7)h}?m[53ƶۏ˳~i_ 7jA X;,-˪kKfk[oK)7ƀ?t`e`7e]$Y.x-dg5&uHjYUzسo7;-eU&xke]j~Se}ߖ+ -p5n:؁ѦFj_6mi6F: 6s=C/Z=#Ȳ,;DoTbۃHpYUt쀨FlJL{3h`#Bn1lP(odj';3ŝdP@u_ ?7Ќ*_ s.{m Ïn`=[ *$Xs7 +WQs+'+;!S+pS筁E9MJ`̇0M b0 P98jPSDY{H)V jiiR`1 ȌhqҰK.9@V5ݮȡ]xNw!GrK?#-ԛ..*>r)fXa `EQwK;IbP[[L~[/b9jUAzѴ7َX-^x.-=qqh4]]~TQcΔ5 3L 8nշB iA&aZFAmYXÂ`;nfF}:OJ`uLf+^;2mJyNK\5K% d`eW >]aBZ[5/+`o %%kdЧ;c g\av-2#+։‰3U&MʊAݿmZ}2CBvas~ԟȔY73⭖=}dJc2+(H`uTaH8YY<f1[h} m!v2@(n5##{rv0Pw[`'n8CHebj!Xc2 '<2c90x)f\&=Du<7L?\ҁUeth04[,ܗ.7]f^CtA8BV5!tS%(K0vQkKְO'MFL&|POuIRRgwۙDFP.`B4JDbe'eQ&Yp. vp8anJ~"Jٙ謱 {2㠄;Ƈf4q. :Jg/>ʑ;.F匙bvH;Ё%Z,W~f3vt)eLp#՛aUFV5w5gb3BCU^YݣρV ؁`5vEo fLV%гPrHP\pVY~`L7T i_(=xEF-~hlB>Lq,wY8Ha>06eqb5 z<]["m "hͦuޓ[jٛ;1%EcNh=!ScmOʇA+r!xwR4eͮ @&帋h@U3ǘ>rA8[>@ *XtAA "On :|c+`Y*N[":$l?mV¾3t1]-~"BImu䳨#ϒ%D\f)/^*K4g#/)};G0R=ps6Ug V,6f =Y0>nتm2}ruE"k} `Žӫ٠$hQk!1ìO@ B'_oh u~ 8 yA-SIe<_xMR>1N} z.8u$zMV8> f:!=pзóժ3΀$o8_%0(:&+px槇n0QRQJi܁4exOB DO`(*6Ȋbv֒)ې , t)nFc U Zq"tXXhQL{%G(U;xC9p~2|}, ,Ig(i pcs`5#Aq$48#oO|bkLܧ&t{\#FZvRlGȘMi)`3skH>E=v6s7C!HGv f#*ƭV.4Ugr54t"8~ilݜmV ʼn0ć9'Na(bI'="⒏fQS6pP1 ̓#5L?eD#mdCm3䠫IhqSԖ!h)$I%,1~QHK!=i ǭ'F1E[0z~'8StCaW.8 !Q/vX1脎vEq¦;t9V텖3V2$h1IA8G'2Ri̚z׼!:8hީ{m48sj۶!HJb>J J0r|O& :ټg-ckiV[@ꑩ"%SHBZ*͑&F:i95>b'շK˂C#Bň@F'YUfIrC9vlm I>ؓ֨+qgYDq[ lǢVZ: E^*<Ȫ<IoYeDA,)ih07"A M}Ø '%ߧZװ%yDȟ.gtfv^N[SB.- w6FUd.]&nn3bBcXLdv+YP )4 iYpv4IuL}fJZbvF3d+茠,Y(&f>tG)kOnfc#g8ݏFI'a&ۃ5;@1KU0[ہ(dc Y΋1%TntQxƸb~EMZՂ-rc~/%)H%Օna.߽AmVoL=9b@gկJM/ZB)pvqˆ'"A/\Sgح|0ɗ?&4KQ m 61l[Zޜ!k/.\h3mo/^'&'0)XU‘,Y.2טnL+sTS}2CYJ[ LbBiWI'+=Gֲ&o}X:}D2SŜZ}ᢕJeܵ%lZ_,w)}M5J3#3bpGBlN4uJN=%^lމMczJJGEGB9/lv[?7ÉsS5qs%`'L=8ʺ-nc 3찺ՔNxGAFtZ)9 2i璎R?V" ;6-PICJ䞁x%nvT .Iw8AE*;,Q_KXDЁ'3kC,sE\^T?ar $hVVĥ^_˳D0&gDy_MrmB`TE"& IʪXD_-o>.,Y,փJ6-)x񆫌24;XUL"Ô"iWЙ7sO¹ ]zij OT@z Di(}ب{n0eol7Ϫ 鏝yb%a.#*`ʒ)@Qp8Se Zѿ"7璁Fɥz$D*Ǝ=$\6ʋx_ѝ<ء {u~ @]n8&lXQ w>4&! (*C( sR~sYF+u_a&#@9`62v,,8ۣX= 7<(Ϥ@Nc/bm v+ݫ]#P_o㦵KLE"J6 =ᖁ /j128wHQ,nT*<5+ r+]w]uW:5ȜPc*M.ߕD$>*yd U~XRW?HQl^DWs廟껯$6՟9bRMtO}ܒX/h ځ+ R|X "ya TbV'_w쾥HlCc9m?%hWiC4<;N)% {Eo#څ0xj@d)Z7}tfsڱxқAYU*^~]v*WN^}d9cZ?>,-_1i#-ޣ8lAuUܲRn\1/1o!PqQ=<1ڳ 8y ͆_?uw>j= URˊ0fX0F7SiC]lLaᴫ r>9R:x N,>?T3A^.Ze명6)m(QY[b_̂ ֶ;wb\Ő 0z?vsH(cptta3Dz׊^"%?-KKĪIc7;lBYG'i|LAgœܤY)߾9~%baGIfbb+I_oOd9ꇦ3oTMŽdLeVN]zK6f%=1R;nSW)~VmA{l]s٫~%S/Bg~jJ#LlWS&,KX#>*/ T=6T5yQ-[ve}y-y<t's](K>G_r&c|<OFVˌCWaXoR\}Dg# c7pzrl1=K ɘ)%MuP]Y҃pj\[ob枿|z~Rx']2Mū=-m:2clD6%V-0h~m~5Dhi-8?&`}nUA9zX̂^l\kɺ%uYɺϒ :N/\(Q=USw7RsW~w [z cW5|3Llzd-\^UYUЙ3:Kd{b_bj()dX~">_fc\! Yզl(zhRup yCm aG\uu|ĥ?}]]9T,ܥܧqw%.`MQ}#&{bCܓϺ/5||F=Ë/gH$xk&LJY7=~AJ<>q3.Zqryt:bA0&HЅ jR:Ϊ^&8+K.c#o?^y^";x.267 7']HTR$EIÅ!gSK։+QJA`e A|jkćᱜDt9)Nmx\ ׫)_C(%DRM.ÄHk_PeQX$M76)d.)6QkUtF7zq!>tm~݃&y|1Ci,仦KȇMZ{ q.6 T gGn/grr?E Z}Ա*!>ʻ{ѿ8MZ>'bUw<[Гmt#wd:Qڂ f0aNHZ*ߪ+WJ*ς̬剎`m2zֺS 8q5,b Xc :9S_IB8ޒN1׵leؚJr <:6.[u =nXm \_B.oo+?QTxpHgQ&l8IG PR<1t x]r+c?4SWcNX>T Aʛa !t3*>O\ (נ<(&_ewv'Ķ:oxKekͫ"(c&>NmB*GA=Iv!}g@R<#zu?uު\OXLGdv%ңx+ Ɩ+Cu}}@AݎGhHm2-.Ζ2;{q Y.тBc֨T w\-<<Mft EtM粻0A-tH,ގ DR&'=msv>vr6i/c+ a XLcb*_5m î/# FȏhJ|ܫTL..nLpDHp$jz> Y(U$?3s(_f Kty[(´܌:0A033 A B8ŀ:Y6gGE[1|k^cq &WAFr҉j?#Pg8̵3|*V wdN;NX9qf*KL^LUY RRw T-ǡ K~.I~XJy\|t6.O4g Lr~Np]A度nf`'/hP2 ܻ3wO`gҷYQJ:sbA̱yCeߨM5{^gl@փ=gr& R. urhP&շTc^i6u% V:g\+o".Ǭ%<ί7K$J4OّHaT{R٧khz)O,!AiӔIA+e{ND@Y 'yR@ԆHYC×״v|뻐Ml(1ᡪ·sO_S9ҹ=Vۚw38%ʂ{H G:@tjK9ikFpoL*iT0t|){WuxnT/HOYs8'@jnTlQAe~k:J^M-1~4 ^ hQY(>EW QU{N @>*~ 7//ǗT2jpָeHl Ԝf) t:ͪ6v .CFev6| m`|l4t-.kMvOpU#E4Ac9pɌ~=yIoJ!tuT-o,CQd=={z ޖm*,TK/Up"ڎU lO0FUY%=dy\___11 #W_0;V;xů*y~iz%ԍs:xiz@_^n; g!s }[7"E؜x^g%X@8xJmyozBeWvn0,i%CSGtMWIfKc =zgKߝ+ !d : Ay7C8{NLiu1,qу.ŹLΈ #%,dJmrudlNR;z͗`²@WS@DeU/m> w,CxD8m^RyApWZluT،nJ sqzL[Ɖ:>N\=r IgL~1JP-^W4t-#q>6ZiҨ"$cQ1\0xd;Q[`(98#eeX5`Wq1)̢JMҁm1M\T+0 bwd&kdp/YѳC("կ gRڐK/.hv\BA%%Gc:/VB▬; KHag8xkVW7^KjRZfH>)M29&u^ =zX5HOLE!a1 큶= PKTQQwFsetuptools/_distutils/cmd.py<ێF %/-O&,N8l$RdKb"y n}>GTU$IڌX7fSQAX*˜m u=*U-=˂($IrsSn9 f7t== `,>ߏu~_ްKCՍ_<S{ 0Š? nv? s/9uýVknG_86JQѻQE[g;j8^{AQFi;tez<eѨbmS+tHH46*Qp)5ESsYZ qJh\osں}zPdMpj 9@fk%{Y=c)xu["VhL5| Ζ`k~yR@8%&EU9oёf(xűnZB&P~5#=>ҾVMM,J&ɔK᳀"< m$6bz b p: gȼ-@roX)Fȅn i"k6Np JAx_B=P*#&Yg1 ][!}RWgTkW%PChK i[ůʒIPRvs?TCYV- *0 6:;3/<`Q+J9Аy)G/ llL3ڈH*Pյ5 @UBX;QwnFy ;r>>Zaɣ? Sy|etȬ4Ys>[`^cs}f\qtMľ7Bl鍵,y;j]8@093 8C&֯:x66Y[bo0ur' Muؼ'1HB|f54Z{^` 3h' | %AXy;=; p҃n 0 2cc(2]E!vɝJ0?g%s!%7U ٫dbGOjRT2lc@ne 3ƙjaBLE N;2yn P;)9@ 3W?8Em8?OuDԟO yjD4o_B xŁ{'N- 6 0@&'x1,8 m.T *$Rolp|8mD+fJT|\6wzԯQBq[ -m<\Z15aɑWQL鸕SL9=DD[SVfnϑA @|r+%b/n=\@j[۲O* 9G<:~`v%TJ[Uu`:@]94Q˂ׁ5@`髛L\r *3I@ gA(#{Qz ,]+m<D$RhWd^` uʜͣthMTd!A)JrّHrQM3uLikI+^IDOڒJN6e DxoFF cVL -'YKلd)\N.m|BחoQ>/u1|B S5ʇX WÛ(Z .q2DQCPom]R4̻m1Tzoń`d0!-0ƌ$0h9FXYTu[M>L*jwT+`.IiU v10c 2 (\(ww*z-a8B XI/ܦv(Š'hy3yN܆r)v!2˝7%G;Q!)I -!mfI.K쭒El'(Xwsة=UQau6VU ۥ f3 gEoNy bX DP?j5Gȷ>|:>CG5׮eJgUrhAlLb@x# 59a; Ҏ`@+1T3 hOXyTd$heYLΜp3l ,>u95bzZٹj+ n)xGyq8[|FRK!WKT,C GrŠ.G{BwlQ`JwNfzq:ԣ6=wkFD]t4|O\L,` &,왛BF#X$gd3dHBlq7=6Qt\N#Ug 6rY6jTSg$g6+2܇ù^->7fJeI jK $.CRFKJ0| :H`W{G-"5@d 26/r109My78+B˦٥pX~Lt$QbR=sgbGލ$v^esUTiOPs S?]1Q$|+"> d"|?$-X>:7 k-t.u܅ n{ ص 3zU\g6}16SK,Ӗ7iE3'V%zx?_Dz hoA5m`4^?{]t.Q5 Ws`{؆L~# >Zqʼ*3Ú_/\NOk8Vyǯћ ̕W2#FK`c{숱l)>}m&[gsk霭rQ/+9R_Zn ,Iq7'JVAXHuۙ]/Gs *+i"4Aupw \.rCēsFڗpX0A |nğES%.qbX<-:HY"`h-fI~i%Ih#UMg::/Û3 P;0T֛ߥo7Z' na)Fv su[6Sa+ؗ [΁zrwE'ԏ>)v@!_i~|3l׺ sw^q2 1ؠGm/픽8d}.b/fu?5\JIF vaV=76ɮuI :njKNz'L7Khc]{dG9Ʈw_u_u/nYcnKX7K M ÓU 9ox3!L"h/} ]r71v?unk Gό52ѭ 2upQóP<Qtp̛u eQwWW7ǏsI-fi"2b=E0Ag/2# !2*BK zLjsYau. ht\S.A>\ "6pw /NTShޝBQZDBq.ڳ5a`F\. i'0f bi, ݩuCY{Ȫy ZN$ yDKי RDϙyL/]=n17My\ZD]EPUhD Iʳg@NQ zɰJ(>b<|Gcz UɽV\9  Jip y(a[CŠ&e3|׶%ˈ#jbjr/K 1`4Ym^d66Ks0lvWF'_^ rG[a lU01qٴr,Rbި} q%pzSQ0cWW7P`ǟwOcr%~BaL(ƴ fQ똞3?Wꇢ ΁z|M](4nZoi}(|T<. 홚;W! 38 PYꞆR$1{&mb}+VZ bI 6cɘ$d<`I#o(xUQ#oO(WqX_'JK^DWlQfgV|Z;T #X v.+c łRLm@54 WwM0d _5)6rfl3$zA L!#s-w'PhNخР=(giD#ov'{)YmSp,RjDft9Ž*Rw_ K 8-02އ8.-g-UmWP% $˾g/J0 3QoxGu^Gդ=9YdtA!UÌDC@ςgFKLwCbÅegx vTCϞf9l ןtR=n꫟peeHAfx,".D}p1A>x1k55O`a>٫z} s~tBգNb#KO{XG]u홰W6dgwFD nf64'ztj>\j-Ȋ\Nx;3 ȣ?1",GyYNe4"RpTƘ1:nFn+ns9],{n(m{kz aUm_oɊ^̜4*a)R([Q+U8SBW*cpX 8r횕wujStQ ,e T$ [ݴi&]Bׅ*oA }]Ge]wo^J[ YG8g؋Bu Z'3IUdrXqn 'Ԯ;x e.LyX\F{!Ld L:/[*OԙX|3L6aw/LUϭϾxGp>bؙyTe#*<(qP"Rt:\ v8(j~>tj]p7G4,w%2@q+Z$6 )d4$[M `e7~e>}/n`Ã]7_Xp>,Bc#9^UZ+hѫnfbg1አ󶵬Tz˃oNdlN:Gsi7ZQޠ].LDBTs ֚SGN}4INj`?n]kܷʂfx/i_ROC[4d)֠xGLzPdg<)e̎O[UI]/o+?~ kĪ9\H5/+(M}؞ ;ۂ*:/E5?TF[dnU p;gJժM_!! ]UUu^v$y-0l+[C˺/-+J{魮6(8[;LZp][$hr2!X2U{ra/4ϰziu` Q\}xrI[)fq֯՘3sW 'A`_$9W# +H{rC$ K_hl31(q}'GДN6CkDG~gÈXaX9 Bg_8d4|98/9XԬ7d 0srXXJƃQ Tv܁$hjo (  !YS WU_aL؆4ˆ_M y\?c^b_õ`,? yKIʦ$g)^KHY΢[e'L%@8>{6,;jn>Un%u.p6s1tK(`tĽq;!]j3 h娍/Eь忏iЁI%[D̀S-6;kn|Ћ]74wKQCiEW5> nL7#{ݐ)1h0[LaT~f. zRFQP $v d'G]3`}+#_;{Z8:( 0팈߈ךݢݣ?&y(uaMk쪮)Y!YP<[D 0U3? ]Ra*i-Ģ.~0VZoXB. 󧈠ğ&@K,򱍋}Kߧ~KI(Pv/Ğzk1I܃ҷKXqSzT4 ݄55qz_d L&"1: v@o:ji`ĢK6|Zn J4X Bb1oVQ`-| F1AYf+yI8*LNI1PO}Ux!#[MVQmWtVrm0Q1j74X&*ϔ7dX"cW WXA]~aXb݈׷OĐ r|~uCUݭb+4mJN!W28`sO7*2W] T>I,!"ސȞk1?9Uoe)[5֟*xg'/9H:k.TAxNATKWuN٫ V7? bpPMKʫV|M@ԑكߊdY ]^-اi"lb~3gٹBĕ|6~k44Z6gtsb1wk.`W>q컩ۇ:Q(Cv#&?q~65? 8oV'ln4`cPk4R1}/ Ϧ K8 Oտ@g%/9RRh j{da<_1F#1#vFlI6@ж,Y2<_+0U阥~ O vGXB.GS[E%.7AN'@W{abJs@C!#u']ã2 %[\>/_]9&vq]Z |m@V" ( $cu lcH6uXs LEk=4mԥX3arF7CD3 ށL?ǎ\;e9.w NLDzG/n9>7v!0?@tQ0#aMct i;. lvmh+:pul#J ] !YC[ټ#PagI?0Ҹ;I@+Cr`F;~7O-;0)< 'N첒(}7XE!HV&I !Hc c-,6Ł ݻw fO1C#E0.+iY4fƱ"0<Dfr&1-c+>ņ| NO-b@'0tm)P(kc tF6 sjbR׏^J:N1ik&8Ŧ+@ƚM!LX Z5,I*02 ?8; Ғ8ZއaKւ; j ё au2@ND!cLڤ]U("liYʋr[a^d Z'M,AZQfx[!FIT'>Rb j-e<ȾPv <7CyGޤgBg5Ja]V\R9R\XHUSEl1ˍ #oWD?)}E#;=f\ O-ZD-!vE2 *OT®Hzn=4͐V *bnTsd]FhҥJh󸸦W'ʅf`'$5W15b.s'1VpdppO`:*5Bv7]L6czjGi>-.SNCS-C}6Zb~lLr'Q|U&,r]^JFhѢ92tDoDŻś׏v\D:þ ^9LꊽrRĩ& 7Q̫XF!fRUY(GX;L0Tnո c4tE)M/RS$pVט5E4=NbK+EzVX7EiGeoum%Jz@![W-7<ضIζZ-V\@n_r/wFc=t¨IRI$g.u,U :*~L“atef lkv7e -%5v0Wœq%8\NQ({] #ߞ>~Aހu[Y7Jw/._~Ջ~w`mP]3W*6njD_ Z4:Xx#8Mʂ ؛ ek>4S(: t5E!'i<ҕ׽VJtjt2~2#|=Q /El=ݗ2LaV`$:`X16m S"N[2K؇('eB}dÌD<)c%Y2YSK{l>țM3~L8_˦$'lȃ-R1/,Wm"^+D@A%. I6}xSι4fa>XΥkduV)wp=ִ!Dh65{~T**#9k wڼ*bU=|@3tM_jY$]peUK7]6\:9иsIy?]RCⲂa[d\C{԰B[GQQ'Xwz0 ֞T/y: {.Bc%N\^@aRWWSZ`hT,\i<3aKfA\7ԉ xfKJ?@߁wg $Wmk" iA ߁1XA0[5񺼄;*!ĩVAUACxS}-$&CB},ا5O@E22D {pRM|x-ٞ˼mA{ pDW w)7JI6N{ #44}A3bbW ȢW-lbxgA\[寊k}D۶ц;?f^APUULo9s lݾ 3_= u^뫖NL$`.ZO5&[9Ag}[ Ds[=0Nn\;\$*;k s04E.EQ>} `>1Qˋۋ^ۨj?x Pe^ 1Qxl֧)A^XN{K mOO*[T]^M+d ?ƚ f PQ od2A5Y ᵱzG 4V$_ [ RCsatPyWj. 8-; odp5zD8uo(BR;L~r-^ڍ݅(4l`FjaJBG f3Gw [UoE *YH~yP@2ʛf[]Z?9L])& m _5T;~|8ِbrn;đ\6S"_bU\l j$X7CavuD &XZѿPKTQQ_H%usetuptools/_distutils/debug.py] 0E|*HE*pk;K y)ko[8㜲"cNp_޽wOp(24RA8놢+~XjgD[=XsIa\PKTQQk"# !setuptools/_distutils/dep_util.pyWMo8W(dc] @ %"BI3);ؑ8Ǜ,VX79!3}+pG&8Nb%߀ ͎YqrAw mT {I73(k0\;5}1L1yn˲, tDBhc!>3 ?ѣ(Zށn`md =wmx!W& *"MX`xnE'03偪[msw&Vs*&=N>- slzR{ ܘ)+ys(69zvd߆8bc2Wx%ww+Ѳ[ڢ޵ŃRsI0߾?:?=ҡDN=ٱ"]Q\#@y6ԞtpKWP02äS8kzp$O䱼XZ6nGZ2 'M2 Zg<#k)p a>0PPyu]]HCM5v^$Q|Y_Äm]`{חu vσ~59G<>[t& ΣQ٣x4J3`H3ȅ|3dT*dy EW~rWgp6ntw2 p2dyHKL}7x*Nd1B[8EEPJg r?ρ9T\p+l4化uq ǢM6 T6I第аdt˷0ʊgPuuI8.^6+7䉥aB+5z .6O֡b>Wp< ÄvFswVYe׮GS)ek7fR%-[~암n.c5`s=pim̼rg$BDiD|JW陗kA{ͭzZ *~i /Thj{6<[zm1)FM.D 0`D]@d ٵJ:_iF퉟,! O;^83.^7XDž>%[/iEW~ZqaPKTQQ3 b!setuptools/_distutils/dir_util.pyYm۸_:$yuE m/A%-.) XEۺ(Uq̐(ޠg ]i8g(mY(5X$vڲFNRm_I[꽀ڦ+R'a;L\.nΊƄTfZaE~ߕzKVڪNˊU_,^۽9fFZȢ(/a)*M>uu!2+hQUYZZx9]n;îi~2F!-tZMk}ͫT!~# ߋщQQ^G(Q[Id&JՑ `m+9TlHDlhDߊr',s!+Y(Gr muo vj{QY(.MZؕWׯWIuƨy;{*dl jDjd4"'V )_iBV%4,kl+q<+Nbw\z1Ķ;DmH)ln sV,!s^dLR\OwS8Mf創j;)on(~ܒb-DW8YdXt=R" ҍV7Ui*4 E\hzT4[Y苓wC]UԺ{B,mS(MV `'K"9X*_zȫ.tDL@!gJ.Kñ զ.[eϟ?F$5!e,v R䐏qZnQy=JcyFSZD ]Q0T8ظN9ʩIKD s:%[*Gw |Bp=Rn@6u.d,f_B:Ú[@9"IU-ʦAܘєye:\UdZL!zϞ/iҀv7#1 H 46$9,;9ZFu6}Df9`|P LB(RO5x,j91e#WYJǫEOaUe-E<=k%^ v,հKڔzP``9AbQf_Rj^Ni]YĹTW~"OUt7F1DH}ݪ֊~t؆'z)^?~⚿Pٹ.tWFCrgp$w1dC6u5\<Ó~ }@iܲE!垬+zn#ݝ-4*@-HE;&3hWA8G3j%ەk\nSqRM@'ie.itl-D͌'~?cD0Tɱ&BcmX.`K;1A2ڍR"fEtYIĮ{*( d$Fx:hpZCVPWԕ}zZX b4luw%f%t[KUa=5m(<ޜjGs׷߾M`^H+Pb$f8WK7 asY=A0%YIt{~-HXWTƥ9jQOZ 20f-K{h`*J!ljrޏPšS =TA~5l9*/D,g3f+-Ecz>kशtݜD%=޾sA][l {MD 烽z,Q$E4y(5kb 2$yC\ z'¼]uTt 9amaiSj/g\ #qr2wNXx9^弳!cm Գk)p4[gU_4WH=J*YnvhTAc 5И߹dJU,3ҍ E멌 ?mɷ~SubƓA8tWhnE)W: CN [g^l#6(F7'"Mr3ɌDXûhZVˁmg٦nM| *4H?{NauYXBVga8&.QTv PTgWWtM$&Lu@oSM=qGNx캲/^a\o*ۺ} (+4#Z hBN͓?e0 VDJ&NZ`[aEeW=M/'{\PdʝO^J.KLyEy KS_p/@?RY(eNˇ񒛿4 l)~}Fc/hd0 ej#x Xڌp@ϕ4 @Y Pff2_^=a~/B`v߳y:1Io&+مkK@_X'8 ίf|rxN=52I7nxj_JSp{ |t t׃? OQ6xq#QXNN lr_MgVEWRWʑ.hvN!FazPKTQQ. A3setuptools/_distutils/dist.py}mww ^ +?q^'Mv]-D%T$d'̝{vã0s1/w3LUj-𷳳Z.oLlMVϮLU_gWjQ]_nfkb֋drvVMgݱ6֜mf]Ym3y3]W^%Yn9;Y?lkzwf>̾Ͼǯ۶im]do gblYpů7e:.Mpi5>Ͳ-n[fmkxCڞ]jzUlgYY/[{u |mW7ggO͵M66Yµ) tveye?T.X|p;h]Vf?@/߼ly7֔kDC6mjZkM V#cޚδǬvնl0^J+> /;X>I!6M%ȉ3Zg7-.%|0n6?_e! _v0)ٝ=T ּo\gHVn~kM8oLQpLo}y]aS/ؑgn4& d.J%,iyVҤQ" ~O -b(,fJ>뚕@"XF:A|"A(^[\ ĒvPY\2Y]50u{=FAFuP}s߯S2 п"έ{VG( 2peS1T\\$mVl;DхF3eJ b'ÃrtJt!VȞ/@_Xq= _ԯV]#;걇:TO]wgQ}\\}oP$5uPr"IcJC խe<Յl$p_XD>[hU&ʣ*U}Ȅ7႖[ "#5P$4,ۑ([wh":1  C'!OTE i: qJAah7f64-A$9Ú[XDuPtbf1®h(a@,0譡'Q5ܫjґ({rdC3Eg:NF%5H[:M9,eXdһU}YH.t$FB]]Wl*G^k~# j aYT4~G/ }E 6mUǠAv}([@)cÑ:P-# ;5Y" MK5G)YDJD[`4%YE6[4S%[PǗDT]r7 }ӂƢ)5|lO pK@1h&'2 \ĜQEX`,0YUM9 ZJ(Gj`wMd p#X8b zU|c:!?N!ydO)V)Mhp\ Q[2 $RƪC-%:*_[Q?hã&![Զ)(dB.a(瓠uaGuJF&<;Q9,  X[b.q1/ڃ 5JbHk ^uJ::5P;Ŋ|9Ȯ1Nk\ k1cd`SWR hq\d 7G h;YԯT)*.*Cr_aje>֖8B] =Pnr'/CL;[v{sl[.qkM2gUM_L&jcسo.8Rh`Q) -kР2T$,AO3*9`wDR~yVk L(Dfpx~7\:; Wc5%%{/q|B2,t.s.S@S N||\O®Ұ%š_tNz xZy.Ɯ/1$`%sp טQvmlSa|,mv ֙@ BJ<:ߧ0z: 0df" d(E'c\HXATO*)(5ƚB <SkOiRe/^~Et5urQɄ [LghH""dTn~=v.0pu6*zYaw_)W/yIa~жႎTP0ec^@$kaE ~»xC= :AɡGc'[|z`y}7\,.82h9Tu!@=AVDX/{S}pJ2 \L< nNra.p ' $cJW~{cp΄ϊs>d:Bqj77dx366!8eO7hCQ c`N9DŽDK5Zԡ!HG% ?0 '"&Í70JFrL >+t{ rH:%&IH7Q@96N" HٹZ3&^ߧu|ܗl#@ӞWSҗ4dmMDWaD.Pѧ:p]dQºuW|^\qaJ8xS]ZBJxì8̟gj[Ρ:>'amGa u  ?@ËAubB8&bɪ6%\J^wXېHˡ\aX4m~_ '2)WU7PU輒O$X/h<DbްIG EF:."]eddg$Xԣ)R1+yx1YSPz> [W}[rVF5>$366qh}HƐmOpBzQ5V+YԆ[7܂t)0G-"r:){STŵbieN0b %r!6>x7E23Ňz&ab%Se h( U])B9O|x|0vj3XƘC$6$-[z &<lQ>(FXcߓ[/w,pՓ,fxfТOT!4!?ubXL}Ei;\f QEV3)5o$#GAO͉K[ξ/lX]!Tv8Z&HHcH%~h/-({mi kL5=)iBUǮr牛;PtBJ4E!asv{00V'ߡ $*8?Ǥ5溦BjfF@QD7dq g)XF"L<8Q71٥#Y 6V>,b6b* %t)&ڬ.f?j[5逊ɂm2E)m06 1*6TYJmf3<۸w[(&[ףjZm ]\^QHxS'wl20.)Z hോ5p1ekBTT˟sCuRPS#(U7ܜ@Gm)n`Gڠҳ$%ُ&=ڭ/m7)?}.]vE: 4 B]F,[du"R$9s_b"QAEP@J.P_NsԜ~(/󱆵ښTR6L>eUT@?˟e8`BY=X1f;3]Uz1 8oK qc *'mE`ZlZִ(d|%UU+\NX`I1EbUgkynfIu46Շ~4K߁%1>dEdg:uĝDlTkH'5+IGtL/)OS$iҚiaxu>S!\V5ڋg{F3._;3<^K e<?XMbSܟ!='˲ŖL*-CQ=OpW섭(QXb": )e. &0\%凃NtҵuPij o-EѻHATCa+iPo` Kd>/" ڎrҜI`W44Ҽ3=7ӥl4]_UOzjQ%ADG"IȪeFbUͽ^a$ Lg4 V#{-p--^aH&W8A!_BCPȒ/ԳwK<;jGҩ"PV'u?e i W(kn=txߠc>x+R* R:+w= X"t A/AGL^mȟoe#Xj<b%U!,lkQuEtjG=†*!p[֜ <]E(WzLHԪ1%zCF2w%"o}S"8ܓsR<4$|bbEAڑ}:Ih$"1ҌGu (qGZ^wǽaCۮ۴ nWNŸ4n~P픓+&O ~v)ڇ#>x>~p{$Y2< #GS莃u/" m*bh>}M7h}%"8c 98\f80?ta#;2qpňphЈ|bSZ ?wp'E< R8 O!KOW6E#l @ߔw3g9SPt6T\Zn?ugTO@>/ݭ^$,׊nG qJbl' Ù}R=Ks&'aT_o߇kOVtZW2I.ӋAGߞ5LȎ*۬*{[J]vJyyI ,JgA1޻뤬| !{vA'q{1CB8|ߨK?Fy:FXXʫwE>Z޸5fRc.Bd N0[l, mp ^E4wSn!Jhl/+_<̋KNB}xh5Gt&Z"'!kԜ?4*AT?amHDS%IǁQvꢳMN,H{Hu{!IIߋ=E'ǔ"oU97RB/PSQ\ N(nLXN}KKz'|F.Rr{hzV`n*H iCW23D]z' X @[(K<")"̢v7JG.!\HNI!S~p,l.aN|+uVqe\}n9`sa]·/} ;S÷4k^a,J42㏿jdWJ?s݁AZinBMH$mt#mJ#$;mKWKvpS}Vt뵿+LBt-kU:UhCw[i"],;: `)GfcR.ҩt"yh M: *`Ǖb{(G#荁<$s\,!F˨5'<7GX"WY($W&Ĝ - 8/hLu9djW*rlfmWj1B(`m@iU?h_[-(3)<pK4VpzRSCZ?3c o T+QHj3TJ}LH}Gܻx50@OZL5I)x2ې[:4u"in{)9LҦEPmzX^*ٍVIT]E_R\";j *yވsKj s:O" nyq= ۯWSGPcuX[X`d쩴lA1"&VUNoOnʉ|r0땝c|'|Y_5TސZW;Ev} .aš\ c \I˘ Qu1[FBy9c;1uF]sAq{})-i9)I t\8[!A*"G 3kXA-{k_l+~J$݅F֮d!cbAvR?剌#g~1Mh O{.B* y| PV/ҊxbB&K94H+>zqnBCxqT/WmuՖmukv1M3ZI8`y"r 4 !DOߋV!\<],6Ǖb5L# 4#(h "e![#R01Kb"/=(.1ofD܊LWʣZ ܠ#:#Єެ]UT[_Ղj /þIPkqUB6l{P3XgJmF|6ʤnh8<h\ލM4ExC|-hofsŎ  3)RM`H\ČO`.=w|]שsyWeAK!\$,8z I‘=YLr,%MLNtm m'fKDf~7CʳCBbbUP-iy̸~7cHY ޞϬz}58)@i}5(/ܲhԝڲ~Q&awKN@p7sg _ڙF`Lvsɞ,IzجURFg21)1@kYãu yGcV w6rWRB ?Y)W2>ޘixu8cwqK<~'MŪpl_Wqtn0CP# t@U[<1H222HM TWŦXC  ZW ?4pbLJC6<}!"Aq J FNaҮE l/ _֌L3DjoLT&,RHiJΫf=)W<B#[m֩Е*]"1`O-. F-k䖵wnʴQ[eBQ9"m`juQ2L&rf:pIr\,FpBQfBWQw9 Bg|^bc|h?mP*#x`q\X҈+^F1 4@ΛUϙ"8"ۯps!ܱ)cP;K&ZYBe6hz©]B Jp upMe^r 9bР6H 3Z p5246uIoExXDNJ/jm߽8Z]^pۧvkwf̓lB _XRभpNAgdfm{Fa S,ppR:ƅXn}ߙRFW"'2*p;C.5(K,εBo.wW~g)*Ab@T6ihtkW`|vVk|+!4G8&0M^6n7٠7ny-vgG8܏\% )~' #\k7_tX<}W 6[ZbS~~G:c&2)~}PKTQQ]4:% )"setuptools/_distutils/extension.pyZmoF_G0LӏjCm9m$!ȕgrI:܏gfw"QvN@"ܝyff(rmօMcJM9\++߅"+3X,*T˗ۿ5yS`.UunW$Dow^V.v26:>?*% L"EF#VLX#t-zAh+VoLZZߛzP \$SaMHY@ z-Tif&[eMU ԓvw)g*MQ6L!a boɾɶv JjYeXx3 ϏTS~D+$$d>w7s/㊹])]08e1.ICtnBDPHuOUхyOW6AP\0UEz=dVNe%ßG^Ժ$1Lc씘3yTMIu@  ;2|Uj\naB-Q%f/񤨼'^PbQN#͸3bȕ+4854km5gKuqُ K],uI;LY2Tɇu}T/-N'PST2S[OpWnMZo)~<7yW!'\ u=`wH[~5mGq_7[uu0tH2:;^/ӷ+9`TbC&VmʁZwlhH+sBRJUo5>v̑ծNC몳=lxKWS~2xU-D=gcف$BԺvkUcT:KB;[*}o40 &'$ x."]jtv Ǔ.D$ࡆZe|sWd.б-ѧ\T?iwC5è {[\7h:O{nS&։J |I_ZL:MKq0{h'GܚdqZb%nO+kD\ @]NCuҁޑ+x07JdV>`iuP, KPˑ7Ћ{ucb< ScvB,ElU {F鷢)UcU~/"슱AUfU͞Yb(xvY8& xvAH ^ߟޥυ!kcSޗf_tO^mcu[EJj[oUI-j[!'s{,B3MmE g;D\ N?Mlkk!pOH˄g?aO ǃ1n|8GCȆ G僾>N-gkխjtܐ#ۇM|zԟ0hӱ֮ LOM(=F!=sWӮx"TōႶ-nt!|!ޭzeGRMuj~bSbc JmvU]nߔ30M]%2P vG/zwťe Ag$=@W__Ɨ@&\K<X,t/wĹX̞^{# Bх :wBB N `Pk1tF;Y{^w\lJás%dWDwFt<kQV2o? >ZLux C^}O(T<+m-y>~} 7?|.dϵmM?0z`fIGq*CdΒi&$7"Iq2ĊV ҃v!f#eר%%(p)]W.zCJכIUx')Pu< +>]ܜ͏ŻʬN_1~h&[jb>B;:d! ̶U`'LldL/Dׯw"aˢK1.x BTM`?|Noױ4fgCjnIY3}!~[&$[Ae^PJ$롬#Mn3E~Dϑz$悊׶q#jN-BD94 R&BsoJ0V~sbUl#ۦʐ(`h΁HAߥjbX+9a4x xԂ}VϐmCouw͐u~8w^NC@iq#q7b}OtI2۹GcMv!6,ǥŪknăMM[Sz[(qU*&HE!}T|Cb#snkݐZʽkzßoWyd BR8aO)[|g}}F}!h>3}gO%|X?pL PKTQQ1ƲxE%setuptools/_distutils/fancy_getopt.pyC" ӺCVe5RW(]oO$sDIqD`,{ͻ{V,@<+<bK|] qGV&7e"u>FD^6ri~yK l˰ yK_ &jWfĴEgZ [)pU֫gX# /uzNg{#H`0*9*g $;_8WudRPN(qOg=`e:~SV"trBd$M_E}C$uaDa TۦL5dHpHĥ ,6L !Df1$_`7m%a7yTO$$(YmIP/C d)fϴظ,%ҠE`vU8uB?r+:2 :^W9lB ;LO)X x\ ^8kQ'f+UM%0a 58ciC Y==t902]١|gqk @"p9HBvP2nQ;`L8e5' (.O)Zޠz8J2 t^}Pec )%g $NY- W-NXy>[څ*JSF'tPս38bt z֛&SF1dE*EO}ĆiWU*X`WW2w>h%u}|}:!`r'%irV t,#9`4d ]@_:8@XtHY tAB!{2eI 亁T}4Avh(FI(k ҒhlH8u~st~34„\ƍ#L@R s#v!nn֘ǞƗd@Y<#5kLTV*6!ډvspyFמoVU#z ^a̱?n:f Tm0DŽEHdܪbb\{NxEP]D@3 lyp/7W0vD3Uoᘗ32gFL ^wpnSXl©߱ u m%M&7xt]& Y1mCpN2!{+ׁ9UD}',U*,nzϱH,0k=&3=Ff%iPZDK `O.dUTZ?Bzccd/;S:Bu!”>+VJdخݾ3g%"J yuwf),c}m4f%,,o)#v˒u NƀOW6?T<}D;u#Wҿ ,,ˆi"{f$i/)m-Hsط{IiWnĤXW'0;.~Y+/NL(#.h$OOlPx8?Ȋ/_0 9U-R^̗RzN6Vw6*dosr2 aO"UXt\"zg#SAFϹd拾a"Kj%^ ] "`rN`_bt=?>Ypa:a_R+QΊtL" ʨD=>f -k[nR\V4)U|A;eG᠋uaSD/'7y,R]JdJHALdHGr̦H?*t(6B$ShHŮ(([݊iV(8;&L-uօ {V8r@~kُ)%?X-O7m 6аŋoД-F94m/)!8A& ` F#kfh |YcގoUoi= ebs3k9w+=4مNRPbPgOյ}mޢ-yG膂SCdelrՁ } {HTCb>R>MZs*+UjdTB քWH̥CU QHl&}Fmkv3$_+zy\W2@ p)BoMQt):;SVUr !Q-BD~ݡW Jqh 9zGQW*=Y9n<^[DNZR ƖY"^ lkQ x9a`X KOV•4<[2 }eg٦v0n{maqDEeKvòN渞YFN^i~n1&B x]ghPPQs=@/7)T! _+s BP׷~?" K|XMضy˗h4D;='g 9#?I\E]TF*%[0 S gec@){N5j' dژw:0#lj]s;PXio=ojbGXy$ i7HSᄛqmh2W~GetkӈZMZI=h51okLjRpMCJXmDvP)ۧ=TڻUS$es!zE[r(Ά9mo#%!zO>%wq{|8}CՃ]AjaHY݈Y;)fP8ձR5'ng\:m9  A nfSѦNtoN∶ E^:%⤚z|aDhkB_gp%YP)l#SmX- Xfoyӏƛ>3K08dC'6|k x[{8;@B:C4w  ppxHڼV,/ ɰJƢi5^]U7u:d&l.\%w+:jf]=di|0$XR9'FIkRP:`6#tP R8FO ¬P.A-hXp%*o pYp7uhz,yOmvvDlye^Kk{$=ހvbYOufl3f,d?p NaRm(dӌz0ݮhfe/`ėg?vl`Лq_veD : Cjv{R7LvWo|QGnϟu' ~,w~]vkΨޢlk^!WvadKX4 n?U(YY [!_wl07_Ő]/q% !R9϶`ѱ>SEf4^r\ qظa! !Vs' ęKtjferWϛTci d:~ Tq+10Ѵڟi~:Gwxm-rAZ=P A;xr‰*v||[e2ϔ3lƯǵpoQשr9u~2FChc!n}!(LuFSmjgeo(i p3rk=rV,F\l n y1EbInc"P8r {3ŝ41/]r :_~`h"=2#WM^gNo'8B[q)81`rvv)AyԦ[.ꕁfLF/+mLϓ8'fnՊ$NFfU3zn/;5[,c!@d94i 35i5.{47(o2|8ïF*6q2BǏ(1*?CoُtpV ԏ#w;_f´U)jY8D7DXI-B l "'wzhyY_v.ka 1(*`,%KJ7Gu7350M<|T ~itiw큗<](pI^*\:תVqmX' C\h .V', Ս'luU5@a˕<:W1(bF2#n]CU 0vRkdS ̕i*Uւ1gӨ`"K˾[%?fzEF^,ʢƎG~lUUE֘Ggݨae7Y'GR);6>ptJXvE`&5fδWyDG@.Ht:g,vkP,3ᔧ))fLںS2aLF$d̳Ш>8ڡgYe6Ly?Y6(֪&5xà NRKp )pFC] &tb)!zjkYn:r<`71hv'€@!KT&qQNvt]AdDu~T5ܷ L:I>FafW^ ܘ5 BTⱕ)G TYZK Cژ|~1 'u5dEVJ,5m`K7ɌapcPf5mS | y!80ݚ !k`[A/8emXD ĶƮ؄6bgx$Hά3ygI ftpK>J!*Y5 =@7;AsLD]G|5# ufJ&~t5[X[cPV[~۩z J( cxpRޠpZ/z<%`#C,Z*T@{ u0nz o\?~O裰` ?!_CԝG =CWCwu詵PnBl֏ EKQuS!r||NKu\[z?1n?P\%ϟ?t}:$ם 50Deiq{."sI@z%6_7#$3Fy>yGE8zx`~5n=g>ۀ fLv 95{ FvXa}{Px :\lP Q7vCx嫟ƥWN@|dƒCt?v**hqတ;FÝ_2хƋnpjGr|^73L'U~:2t9 c#3yǕ Lp)- !O >K"2ԯ -c9 l]t6o|J/z=i~Dzu;؏o3x7PKTQQfP[5  2!setuptools/_distutils/filelist.pyZm6_h:M&NCkpm-Dٕ%)fHJ`#Qp g8LZYJVje)4kׂ_:g%[5m+Y_2lz"׭Lx]e'{ Q͚0$I2ͶQ-kmUox[׮.ڦd _f;M}-Tv='jv=_bx+~Ϲo]Bռ-Gj.'G|گhrϚm(#!T 3=mǾ\ɦ D[bJ&4u[^Ag%]+a2}g=ֲX[wR_H\z)*ꟲi[ ]7nUmw ,:D4K+&̞8@lx- D=͢iV R(bTYV2)fv*}OGl3u25Жb YvȴV9qUkjewZ=&/FLe"JNqrXmˮآ7dUK^\R$pdyF6f 6g8s}tWEpJkvzOZ- Щyg Lx<?Ko/* О"-QrEtY5K^??Yft>D^~׿_~I&hf|Y)[UI3ՁY xU] {/f@ jY%RC~JP_QE e( m76``0{BRd=)7ǞL `Ukul>)iŢ)gZw5խ9l1BGѺ%.WRdj7vƞ컜=U'yG^C U<.D'AgZ&nb(-*Y ,e׀Mf7^N07>}g]#Yd߅mt54nK pRYUW4g#/5,b[ȱXP=gߏEH#IOa͞ۅ>}?~fڕNc?`nJ C` O/QBCH!"A1@\|1ߊq۪GoA!c͋[0 lDE&]}U7Al|h;?3^!6UM!':aoiQ#[Y("euYva,D9 u(*q!3 i=)ՎC2<&Rm` t~58y@]+ap55f;80 1Yn iYi3,#/fip_92;LPs@ y%K:˓sXdDQC:)xm <ŠZn `LXفm~:؄1vb,5N}l[C_z=B f'ppQuu ab%Vz4mBj ct@=b_91܅|9b1d[%ڻ]0&CƒC8O{`9k4wC2ލ,;;ftH=jlS{\q{ęa$t ǭwd4jd޷J$g u>}Mh4@^GK [Jd9w:>E.ߏ:4s)Q=ˇ, &ǻ uz%0d}CrJ% L rΡ6iC̍(ҢFGrG t(*hrQ؋F&a$yOЉk}Ytj.SscRTc-ot '/feL2N̟ދs508*TO-lӔ]r8@oR\gz+ Q $$fOs7LnzZ&W!%^c |ƊԒZM%ɗ޼fQ/d~{~ 2raJ ,yWfE%BMɔN϶TLgjâB O\a 8QΖT_`FiYTzE4֍)lQ@AczwZ W.EKgyuFS+q5y- sԋ(HQ-=R㗎]蠞jɇ- nhZ<5-DCOnU%t%s}f 2(#.gR6n>8G኿, AA{gΝ>KWkELȯ9,I}vXCa0ns`^Bۦ)~uavrx҄OޝJMs_7RPv8yf*!ASẺRM%-Ss &͔Jb!ѹq\ `"Q! :<&UoxH\lwwTߎlU8/SS¦0maXamGD[>/\Ia,1_*S+j[+gOz:6tz?ˢJxh:;P:y ht 6=P}^SYhQ ?A:-V-| ״Cs;FxuE AsSUͮ#n1cu$4d 5ilݰ KE&d,c 5//49zh =R]"vM)v@59b`^r"&yգߍ(Μ#fE lE|<0n-!}As]EAj`fF"u(8p/jn&!;Q=$`D`%,3&d1e1qrBiEɏSdY L*6;_~ S oHدSs&J5k64I\nIQ7ךP8tUdfdH==fu77>Y&B|MS}Sx 7n4~xit YJy0&clPgѻY>BdqJ٧pHҜA`p>Ě"PUlED. dvHtҵyբFi{aAcBLgxY^$[gJI>ߝvc?lyE:5; :qsq3lvȂm2ix;5 P @4wz&IgQ6fܺǘy?8Ӎ ^:q1p#ÙŎ&= A~b O=ƿ2\B6tLuH[AVRY/EC\L:!#^qa5m/PKTQQˆзsetuptools/_distutils/log.pyUmk0_qÄ-`et J[B}%>bU$9Yd bGϽE*56+(pRjLAf-KF{p{j'92o5)v@fer WӫPY`Oڑ41UfEIi XBI9)vjERCCցu-/35C$h>ۋ~GCS| ?ZU뮢tZ*zqUGTo|>>?{qO?_R%MN/NgOΏ9=Vx+8&Ԅb}ww:čX7E~d;/^t[ɘ0h576pGlwgs,dDD8˸d4`=FyQp1қ (Mz F~<˰E~Ec}XXd_QU 3-}NQ|^9cň/rr~Y_?`*9@%u~|l8!4~WDSwO[>?0?RtAi4cw|!e#.n9/2vF ;ohg%u}T(MaTvB#/A1Vl*)-PHX׃h~lI&E%֬ @ ևӃ#n߈z()TBkjd *]2J)xk"`Ԣ/19u0JEfUbw@9H9R<@D%^L"F PjAkhrcj(P A3@)[MBNUNHQ0;H: ]'0BP cGME E<ϸ)?1m~=L.9w5ϝDOi@ "]gsJOC<ڊ}ZG9Ӗxx|q2j.qL4e.Pwd` ZN0>Pi@6􂍝`g^~ 0X3#`Wpd&4)6RF ܹM=mRnK!pT*&$WX 8[vH',γN"7#D:xG2 !a%v_s򾮦RCd{_7ĝH!ckr wY/^ID8}?h=(8B> %(2^+ 2&}=>C%Y^`4`Ȏ4J>ձ9ݭlc[1VM0fPb9_G4%jI2T$ 8K` 5/TcAN` hF2 Zr\V {Vv3Zc\l Gf_+,{I:Jk"zr>MHbz)*WXfA5!y+{6UM%*ԄHW ja<!C %%À)*v!ls? fMAT2cݫr ԁI$X W///.NT<9&\݀ 8KD|O JZjߧm6hh5,hHJY6vzt/DoD@aP[I穐6}Ḣv/S{@W;hH:8a3JWՌ$gГE+5 + )*]gгBc"5I̠ lLBpM_Xn V 9 hhPM/^ :l87>D,(*"/ò!܌,wmA7vS9rBH%S9àVџOY`6$%ƞȠ eM q)R}d ʈ:'<v(M(pzrrF+,~c'unTl֬f3n]4!ԴY9J5sיhcF g@ѣW񀤢#shLtcZMq6-m扪 7I%UAg綀b<ӴeVDJe:b]aV%UC=Z3 GPfj4B0U@it7#$pU'k9rR (o@L[ qvjӪ IUBgP`1R5Qa}VTT7ol9M;,~ENKф ğGiLyVq6|`)sHˁp[Z6U6t8{#d(jEq" =EKLEB-0hlֳs(+S ]6 >E6Ds@{]7>:_~<9cBs5ar'g~|竡5%wdD(+;/QI!`>c@bAfEr;)#PxPk4pJ h`c>zFCbAA%S֪5vA=H]9IG} & ӉZL%+[3lbppv(8qi U3>['6Ub^ULPcESh8BvgV۰$k#3rrsTȮ ϻXsC]4$,/aR~ .1n :vV p~#tm¬j}"%,9ПJ\wЪ省UaZuBƳY-Y-l (%-P+P7ͅBu,9s:n\ BZ7 &$IDFz }2n`PKw\jz`LmStoX34Ap"iY-5{Z_!]*ǸXj:5a̩Ay 2ɴG&,ިEߴeS3 fSݎNƮ) 1ɸRnf,OMGy9GGo?&|(hMް3trl xLf[ s.it+җXR Ïg{֬*aJwjҍ<9~&|ȍRixC83Xtf+?q@*yJuP_HWl^RNY*񪛱EOIwU`C? u6)]h̩cIq20В.pI:keBZǨUU<. 'p7HI>{F4T냁\WPާP~#=pGtqn" ,"2.茑JijSV ֧H0P " *82$0'1'Ƽ|z}w*m_ERzkxnk?ȯI?xqQ~naJ;,[i>_ 3'me4Z=#B,wB KS]jE&}+"p}8l4X墴 c:8j`_0ӣkE m$8Ȁn 4-PtUISmJFCghz]C;si5fmCp Xnjx58 .}RmU ;葌oIZ=f[1"BC]CZi%Q(郟5rz`zbvGHdSᒢ{u9j*FO~$IA}:x ?dǯ%P4k4\zFL! U8ÏJ",=5 wm0YzU St46{7W5= 8 z1u6'0 &cU1;3bm>9VK]VCʰ#iFjӽ 8(75Ow3Nt9BBadrW5iMt ANAOLyF_&‰Mǹlg3_Tx`x_er|2AFzNa_5/'!6`aɬkw&tܸbl%p%{R,x:-uˇ{\[LkF{jVިv׆RYvGm5zm* JK$'axq&hO fjgWluDFLNL^nğYtpAOq|C9jL#d}Yț.y5[ "4_kR>MƂx+5Z0)yUǟΚa~E 2۬r65IgONOj;Àf6Eo/eó$`v26OG2ȷ21T&*^h%P&#qU*4ShtdeW>Rj ƴ^. +$Wu,d f?!`̘a>G1PG.<9¨Ǩ=xZG*=5:ivE?rv\+K_BE [?:мţ˃ӮԒP U314YJz ?l5dxa(CsbUEDJrK6l޺1x̖go?2O]6 \V,ťICYER~a/zλb݉tfÇ")y|-t.VE-C*Dg42)R.o+ĠzS?<ɿe}'W͑T4a{퇃ц&wi~qΟwԈz Lrns^P؜?"Mik7f*MJ| B&%N@}C,^ _p\Yʲ+眅QdUa6MB!zD6+X,ÄegA^o}))9/|ϒ>E6SpylXM8*طlfq-;U"[Ή߂ՠ׃eEJ Yق"B0U9ԟK wIX꽪D^ēWzG? Wh[x2r&^zi F[{ }>)|ѫfbƋ,wf ~{w:z>+](].E]B0%KЫ ʫNC)KvL]"oU'펾|4KRhKBV>A-{%)ڢk tޗHa0 EQM~8hFyUR>BPRf3]gbYp|U܀ jΖtV س2[ޠ3{xe?~Hףhhl8tqqJ-xrvd|ǣ$OގFG%XhPHP!8 ^.%0:hq],g͇95TK)ZڅlcJ;BW7Ң=0SWxNݗl Y\Y'L@,w՛ ̡/WWgp}b:F-RrHj '$aieEE &J=b ?{4.#]ʞ Yy=:da y$&]) [oucɱ* 5[`,|p" It,, f%_#.a;^K$;Bv`!(vr:zA̼li\Ǿ &VW T]~u^E,!X9\y?=ܠ"DWM԰3fWu/7SJxl/x>C6[(jbןൗӦeݴFOuJyձCVyWEd@R޴Ȳh5!``؟/^ Zn6(;s!8GoO]4 Wljc7`yRe ,vd^| H"`% 7k520 ",9} m65 .вͲ%0`䋀*[;`u Q~F aE¯//_ 1tC)[/wMD3d{ d=?v׮0d>+I# ~9QP4A>ERQZ?.G*3R( Yp\$ц!cǰ)Ed̷v ˧F;$%E>eoOF~4Q%`<#G(IZ40F Bյwg4A k ejR39n-K OWnA@5\_8"G{7Mp^z,+!%I x3=^caRķ?ք7EXjK{dCs : MdIG)y֯ƨПh(?f^FBp #6%֑{&zp ]tcC S" X/1ªCO(IF2:WIWRC G,aP#Ecᠱ0i,:ޮ#hh z|~}vAޒ!W)=UjaNWWQTmgX*Ab3ܱ$ cݡ5moYܘ a!]$PZAgCX ^Aw,n3Ļg!%>vM6~<YX Q YP|/Tpdӫ0qv 1fIx+K.ONǃӣoO?oj B ՝nuSJU}Fsɣ>N͸yVH6Brg=Cw!%|uVo5Me(. ,.-|YRiAc֠ڝ䫡rB$Ƶ^wCq 1#riBzh1n{N, `pO\iHCr~Evj*='r7(y蒨h?WP,‰\ nC6մ&NEnUR++[;CG5L疋 -oJ( y5Dy$%!A9+%g ʪ{7(8!hӠ2WsW)za.)5ՁstPcOR)9<.kя} ;1_7{,P]Em͙nJV!sbX}ze%p\\4 ?.P^-ff(e _Ss)RJn ?sU*ojO h^F=>mSwN[%9*pc'ߙ+L|bW\p\뫮i5d[-3&eu7C5i+LḁJ۰uQ`!dTEmC&N \%{;-Q[9!W]ݔ%-@l |(J"&$I[w*6Bs.mb0wiҝQemjmǞܪOd,d]qڵة; 4ʍ 3Zcf>m[ֶēIߣ-OND0plSƴpDʦ/ihcIqeq̂*X,qp{GnYJ%>/r [yb]_k_͍ktwk-q;}yhlcPc\;³lxeV22 u+f/7O=&tҙmd:iX0܆Po0]it.3\R&lpbڦc|E3$A/Ty*Ĭ6z=R4hˬ2vh2FMBT3<{^K:>~$cycXM#H o7afPnY,|ܐ^w;Rl]gNBm*W{7%J 3uk/wВ\#Pnrj?vXLygKn!1BfZ$ni~ lNPݲ6fRU_-"lU={l> 9PZg̋Z&Z]w6C ڝ펺557Wk{*rmmM:/ ;T(/Mߖ\K}`Z&_ =6ƑG\ ׬goa"L6ǏzoSEaxTNu "A(D"ڑU՗1MkY}i͕PO ~E>E"=yynX؄Z KॺH]%;/_)Z 0[=-EP˂VudUF.:I]% 5L%7vƔr/ykCZiu(0e{fZ*\wV N8Y, 7dQR2$}Z(rߖld ًRQݕs8IKC5V[7-]WόՐDP7oԡ (qnFyY>뫾=~/SD2SY)tbDW'ulauzOp$/LiYSol pd0J=wVVEr\䕱fx 'u˻V|ys ^t7>{g_p3SӁu\W;ZL:טkZ7'9exn7nᄀbΐギM{R7 OnxMt#~3ז{D:7IEcKM?@U@ЌCʲ4YASV1wմ/`[@yӣ8փ0>UK.'+R'' (WPڭQ[+2p^ء{- Wjab -NC)ik?Ǿaux3iI0#.(Xo%zm)a!FG@&9+$@̥2Rd\*-lmhJS\yשPuS 7Kcp;oB[其3RPxn\uD-#x/nU8|OSF]9l0)E` },'{PKTQQv#setuptools/_distutils/py35compat.pyJ1y&< Wg:cNGЧ735&_*Edqlc \.By^ $ȅQw6a|4Z8@0}Z%hT`T͔VO1E~r" Ut9uI:z Oާ/5Rد)3<$&_ eg `_,1>>rxkv'QɌPKTQQ{#setuptools/_distutils/py38compat.pyu @ D`{+JR^ji /0-L#k>&B#fRVlz왒ZYxԮUZ$tUevGk PKTQQ("8setuptools/_distutils/spawn.pyXmo6_9 (aѮ( kٰ! Zl)j;6^;e6ƫ]-:n٩\:淒qZΊFg^2 k:gް4եUjBe`*aBfcEŔP׬`!ͣiR(/֥Dv'Ͷ$Q ۨ ̴3Κ^rt ˺4!kFyG]KS0@i@Aeikh{Js\ #'0BM Zҹ@'ԄZ+03IaeB;$'6~>ZK^Z_O2\<iêrP.?>ɶ _B͞.݌,Gt<|.Y<>CrrN ~2!pseB= ~4*Ge;?DzdD/vZ\iw&kϾ| J`'z:rnxoS6u Ra0dS6׏I zL0'a2pxG(w\7%h[J!}=(LܲB'ԄWk!!>iE ##8SxA3p )yxgK;pb|xf{c[YPKTQQG5eS"setuptools/_distutils/sysconfig.pyH%,L&IUL,υ/K@U ^F_`rF_2yt:LMkTdYKX7U CSlL.Ë_/~G b[lЃ]E@N*Mש 7A+ZkT ˁ(R@B .Jυ5;7E])69\=}y&uPjd~qޢTlr$U}TQht|yzOԪРL@ hŃ\D*r$ F.I 3KI&/I[38A%D^&?0RJFR#0RLaC|uӓw!.ssTvy|f@~vд8DZ10nH]!=]0i'Ao. QɵXK eVEA Nl(WJEbv9Bږ)S%V5;R Rg &JX-A`T]xF[RUu1 y$XD/$cD l .33q~&v<\$6PZVU2Oxg X^#jY4V8ae%ԙ7\B\V wϠg,W`Ng;'1mҩӵi-\g)n=3){vѝ ]4Aeq22+Mgj`eIb0N(ѺN{$@?(o૆H<t,=>1jp7mCZ PEh**q ,@ 0SHݘAH5Hz\ĹҙWlULF3iDk4sԚ $[UP[~)4VL2;3wΜhB|iu 9]2 SL` lY ,b.sz7'!JCe? YZ\-pDR|DE6122HKl)lAduZYKhK&k,-}hAu曋$P$XӶُLBTMwVMTl9]#H K$ 55P7"1LҒ`a+.էc@ank#Oii!z C;ꁧf$gmN>N;j\i>ֺްtL$̑ [Ճnk{ ȹ0.a}(#߆kٴeԃA/c:Ny8,On sڃbi@j%wjmrRe]K$Cz>Nwal O7,zG7=23Z\Je[РbMAzK²oݝz''XZ'>Пrב0㷧/pī˟_^ >~3)8md.X9r|/J#QE-&:KapѭNlШu5w ~:M\$ Vww51}gQ8x7=Bَ{l/i@1oaY{uQk{ o݉1g4 3D#ះ>+c{1[Km3AU 7`$x^\ٝ1 p^B;7ڐbB-=/LÚ\z $C]mqN"N({QvC :̓RvxlIt)6lic̪s ԭghw9>j\k K4Jexz ¿:>5'oge |w8q ][#O"GbY%ZW+xy&}`9>\a`Uu?g] UKUm YsP8'Y#>oKQQg 3{V.V@iGBO 2t#|sH6I*1 #攋y*!,7'Ц آWװo#,%y:GOOccV=lT (H6T`6w%h'D" @,}n' ~qTe%+t$ ToZ9  D@ ImSTۀw[?=B V#r[iS0 0S)߃ApqP%~S7 g$Ha9 ⩪ŏvt0HBzlb]zUbI L?E܀X`Lh*)T^W150jVGK38FzAOb9[H 7ޭ (u`BEKB1۪#7!61w%_79MTst ډJ2*LM^eQ˸0o8׷Q/๢HtHz7sOٖ9s6qzP9" z5f:gp|ǁ'`w3^lp Wbo_ruAbQ~ mo4hK!tQI "vPޠEjQ~'6%Cr jgMiӪI6/BWA] TȬL,#4taڸgԫ!O<Ų.1kѠշtM~EM^)m^caaStO,f!6i' 0 %Zt !6Tu#(WHRKBʃM)9w  Gr93= n VxDpxiՆ \_Ź LPESdcrg }JTnLnj{62f9,_\YVNdL^+YOQyՓ4 ?>q}0ﻯj=o#4ȃNnyVI ?Uh*֙BٯIb~xXs~zy.⺴լ-J ɾP-Xj/6jMe&q!7R gJw w_b^~Ydo`㍙! ?Ƹ_:/p]U\НyZݗ#fZ5onֆ{OZ8jy@;9 ޣ?:BLEQ'y ^ w*Ե%G?t+qYm-\r]5{ avCZMSEU7ro}mINv堚Y-:4/p Ue`2ۉ$!=?x"8 |1v,v{[ fS] A_| X0)i7/L#$d PKTQQQ8Z0"setuptools/_distutils/text_file.pyZߏ۸~߿qnrE_^q k Dʢ*J3͐HInZ&{j65~榪c)#x,BC>y٨z'S%- 9Fu五Eq^F>`K*k%NΫ*/"ǣ*ѶM Oe:/~$Nys[>tPf=nncF3Q777pFIfuUhU`cF<9#κeB,$ˆ4JbX:!Ve#Xts)4Q3br&rf:d-ScX©T(dZP&l T'fguglЯt dt-Z}4T8v-ğL!F VsOprS]6. -Ư d]83hbJUF ZBagϖU+vp6y* NqP0h,~VbǶh ue яNw'L]~%\5x}.KXM='- W6 tq<'g,QKdtZ{EC#Җudk¦%<`9TV,. V(j8m z ȄB{YY1AOLƴU7iS+ =΀ifp|bit딺'*[ mBD hOh9$^kDDGauSj KOٔģ,Z.!r6p`wsv^ATKU6Sj}̄$ْI1I䂐m5J%*ayHz:eןcEP{^e4oz2Q43Vc|pBǼ #$L(s2{ٟqԱjVD]&g iD }^{62Pv%'z#]6d"n)`>_'F8HE=ÀTnL*%R+_*+4,KRa^m t%ODpq0Y*m5d5#@oNJ&(cLEĺ_Rgxm q!V"wQ6п!)w2FB&XUteVt)kF0v?ơAwȗtpEq@OF]ATG<52Q8^zFrVNГk;Kxseq=\|rn5Q(kmx K{~T+Ѯ5sEO}Hg{|dݔGimzGaǍ† !`xP瓮}VD:jd ʞb&cQ8ps/8Ql"s _ C>eUHTj[#zMxdx) mzI5)iC@[ *:6SFq-#5zn ["r[ܪQ!*A˖~gemPO"1š*P"$r _Q 3uAIcޭs1ͳ ,?++qQ++WwsEnǴkt-i]Ɵ}EhnJn?TrW O* ҐKP k?U!P?Ĕ!,e8Y:f!/}elj6Φ%RVȂ_S[u-5iRo[#TCs~7DK'"1^Sv.@冞[^'δ#󡫨vpR'@y=R0LZD qv"N* ?DƵ*٫qOsxm 䀞s-ǼuF7*MlwDm&+FQg9[kYCj; AOrM9|hpgSL.{it2 Q E`^ aWjCljl֌S>j>s*zm(Y=]g_ybdծ0Fi6д_,؊G}lA_uk 2Ydipĕu]:yH<4YhI0Tɼ%zHcC;ؾx{xL#}ʱ#WG1kKpcfaq"~=8_~8¡SHsQN>[_h GS2[$-EWCCae9^U$6oUD["oiNWXaE\.WTm4B8p%~PV7$I@1+3b]r9>a"\z 0!cڃ JJ' s"T~aEI(p :̮;"u}:Cv7$>A]!*]nP-Óo|W *-sD51yNTr@Oڟ7bBr6²w{[з~|Id*%}Ni"Wpd!(e{a_PR|7rr+\R2gX+dم]0e;>[Z,d8g? UΑ(s@,:$n BËoKH#Ͽ&^.4Xp 9]i4 t8=>)nn' %'mWV\XyaPqyD6BV+\N{-vmAQWbԂ z{[)xv3-C^\1O3ǯiem{W /Ih!%RCid=Ԏִq{vAwһk6̖'PY:*,l'y;e`\TYzX6B} Oۿ8 6~p6.zubs+^'2Mz*dT /J iG7o-w2VtUOԗyPzc$87cq D=0j3hyfؾ_':?r>77buK{n`o%c4GGdU$ݻ}|.EĄ"0 T`Fčd\5?^<O\HMtmxHJzGӕ}搐 =!F?ͶbEPKTQQY@Yh9&setuptools/_distutils/unixccompiler.py[o8=]ٍ-orݴ+]4-@60hHNb= IduLpqA*]4SQ]8yf:;i Ʈ3Ԃq }fraydB@4Y@8KO`SsYZvƗg`9+X"0Cl๸zY-iuѝ'҄:L ^{R*Enf{5Y,1o9=L6'qfb*ӌWs&"5<SqO'i ʌ뭬rvu„W`TǵK}}ާNBjU% 5R9(8<\#w Xȶߩ`jY@Q@d~;,BEP2dUTGGk*0 _mn-ʞBPM]5+,_<ݼ{fAn›`%PKSIbΓdY 8f<1>g ҈#V_XO dUP8[Փi /hA"I aMr.B+zR<{b QhxbQ!6-Cqatl4"zXJh:#ߑ\s y* Y~h.̉Ah TNT>\' [r$ R8#S86K0>3;{at^Yb~K8(l]o"AcP#c^YEtvvf_;ΚO3hWkpGOs(72'E]9Hf$bA  JCYpԚ1i#:pgyAH![74g']5 Y? >I:9L^q5Ći =y{_w''f'[ L/[2jF@FAhdPҤգ WNm\K?G`$Z;{t Ojl`btZjYQ8-H%hQͭK]C+YadY`:\(UF'#П )K'h|kW hvsXo\YcqL92kc&Pb {7ߵ6_w;51e&EO"o#fJd[e]k]z|EfBWf&BkHF,ǐWw澜n#p G@Q$R'gvऻBVݦYQx?{|CXSwv[>/;H-݆Kvq7q:<E|3qJQbS iFg9q dV#:4bMp]ŠXBNp"D$e\A/'J(DbO񢃘YnMP{Hu󖩤tfy'=5f#Wnޕc?Y~_rI0 oꉎh;+uuR%?3+"qEGW s"V<`mg0o w@Ab☨SC龜t͔ĹKR3om|ǞLH˓O腇uKld]L7hpa2[5wFPy㥝 jn $^.5]gKX3fܸE{WKYC mY{>OZ9+i>gzM¶z'!14A$SLLyb؛.dȐo) R' 2Lы,K aGWC>-e 10 )@BN;*-ѩ{,N)ۨ{"rLpLF2i!uhGUžb(`wc,++ f3ENY].\bk /LkbKdG"Tܚ.=5h/NjHru#::T/Zi>D-nuS˺邏' ^j:NCk';U.ɟ<^,R4ǜg7w+!˱PZ+ WSS 9}o2-:$LןtY_q3тd_#fK84e./}$B'q]D΃z*ß?>: 3q_^o])!:;o/fEQr %m\\T&8۹ nDV)n2הК`U&-V0s .;K]7"@/R" -qi_ܔsL`%@V2bE#;x=d90Np z9>mPI# #n_IZy0.jr= ewh!(!7k䚧pzs& ZR+Z #*|ęXk^P.S+wa"8rE}bu,~9:Ǧ 3n&?;Do&-dxOQFg@|)/!ᅐj^0@#ϲU4Ls?c=8D)&mȅ1fˈJ*X G-9jct/p03@sЙQCi #4c/1 | :7e?/Ӈk]^VQ! \} [_W<;irepU.?{ӫ[T]1z+nLK; LC^K&l<Z鏢)*c9@ mr9L An~w}z  Jo,XEsp}l,b7#O[[g1v<Iq[5t2C,2z< ~A9Loʰ#;B M*)U4ʱÎO߫B}[ ԔܭrSf3@m f=(u{^ }nha`g>!< !Xo_,q§V Po@:m܈dقmTңAgXVxg@h >Z˸:a-m~n`rНB )d.JƾZcȤ#`2#h9 mmx N;ɡG|m o{:׫2V(zеwBρ&B> 5!ۅlBcvIO`}ן><^M ] j?XL4ߩS_t|ف]?K,Mg{Cb؁)6ɝx20D#e4Eg8 j|Lf-08Ƒ̩9ABN_K>f†/֔!=<mk UW;%lmi{xz-)ѮsB^Y xl̩RQW 86׀-c?2V6!ĵ<!mr\扂"G۲&p[WBȢœ_lo aENuYf>b4ؕg.abNQԼۊAu:lg! Y'#/l@T=-mH`1Gޡ=0$]s[jM93Lɉ^F$+= WE=,+L<0xj;L_hKndmsvH5kX+5ɋ5X^d8G`vB1jE*+IހUd o.oY PDŽ{=~ѫWJ1GDj޼0S#W =6W!@x݄ݛ 5U]~s1GKB؃wYFH "g8v~Q9{ʥԯNmnyNo}Nne֍.=S k0p#,kcnN9(1U &#:ǣgi[RpnJ gZ@#Jq Q6a+pJ}pm%+xfʍ1ܖ`.&2n+LOZO>{XT7d}iJļ=uD}Dq(o4l ld  &Dɡ c$a4 =R%8(M_kM-PKTQQ0,KQsetuptools/_distutils/util.pyXnoxN7 ~*{&Vv}z@kz)JTz<ǩ%JM[Y$@dl E.QjdU6~'vMR!\-6tXY4@3.W`l`tiQ;'@q+͘`]Q0Y[7BZkwenSdi UVv ᳪҵ&p10>;6٪haծ*J2fS|GplWu\`}f_H8Y7ʍJ/gbzzJlҦ-LkZ#z.]o@,Ph:'X6-;mEg'iY*~b)tv65]5VTy5j[,XNۢ왊ΞAɫ?&Uw/Βgz\X7Ϟ]JZ@k({x1 r2}[7;~/yLl9hδ2٨Ї uQI.@̈w..TX9 i!8&G8+kV/t YOH>g,+y哇s>k@a5 2Y ɏ>_&zuç"Tmx=Ƈ ljSo*5i6Q '֏/yݵ$^|,F 0_izƼ?{qC>~|M={ /Tx 2m5$;;] u K*+=QXvuہ6'2u}UmUڀ^1& ز 4O,|DH 4f<3 ~7k4",`F˧~ao#ppq{u%7  .Pu[:k#C<[צa6;z/FV5W7 #G ۓ U$pur#瞔vs:(w``'<_8_wc̫ı )z}Zh5Yy]` ʼnP x<ZEh:԰KHVl F!asw^<={y^ӧߝ<={w=q/ M&P';S=YkW {5x^ iLS Z} )3LZCF97p̧;ǨNZ8vK01=+o2iMg*j«/ךݻ4gIl Y el D#0D9.AWľ3Y]-hUd޸28?&`[L4 >E Ssl12_]72(C)CuN @%e羷5N?~?D^ } \1L+8` L~' +o$^7(&;|m`~5￘rPѓy݀bDNށEqSFC(G~##qyDҠS ldLPHg6yQE죬[h wY@ zU@_d;ōY[|zhCH$ 8)q<ܐ3ޟ.bЛ\;6Mn ejVp_,x;=_73ǝz ^P:е>ІI HtܮB3bZ G88{ gE%GÇ8zϺ4;IDR-VWK4è[3 ̂΁) ج0`I)umZb"q̈g*Cf(xoYMT Z PPMPt~[4Wg&(FxpvK<CzRc梼s‰\bgzc%e%˗p#1"rV{)^0 \ޓiݐiūlQdA 9{ߵvE|O]`Xѧ^rSO<9n'?dn\B߁D0Io+WyڦsZDGyTAÃfh"Đ%fQ7$f[VNr@c~kE ?N0NP-sAY$x%ȱ#0n2 <'J{ʭ RTba@U(OgS4m@S4pBonz]Α kQfӜg^$@Zg31ݖVEcuq2}q>C:ZI,UD"{"$ ,PW२reg^?.[qX" GF77v >Jwrm?LpxBX XXM,5綨ഋgb LZ+`]EqwгsiRuU7$2 l[L"qSyv&b$R㔕dWM>mF !K0`ӜB380& <\axY׹ΤK-I6;7}tu5HQSӆCw%\W ³ބ5{>؃{XR~qm1Iir> ?xpl8`C5A(9`{eyWƅ:2組ҨѪr;12N #Qtv Ƃ/,օf.(e KN Uj8=k:4cٙ|O%yݡ`Yn6,^}@ޛ 6T7)%QAc`3uY?tPXhEbT G_UR(f"e!5\H=3U%z%`<^ =LsZ.d}MNlZFQIf@= EE9jVmSƴmK[U18 p?&&XZk1G>͜:T``̈b/;RP%<;buVrJ/h`pEE5<2WgTF7:9+Eޱ9vp[ kyw25HS LYT+?,Y hMd+=֟pXi#=՗Ntsft3 Ӱb|l 1]gce L5t {[ bϐ{H1uvERZ1Њ]H:K`+\S L~cPSu:p|LJ{5\4́`M}3T{`3%,/T훃8X%MW]QR@)I \J9 R &,X qHy e+*` !/3enKۡ`B+Ho4r]C!jZr0w@.#˸na}!KGK`YvjM (XF{MZyׁ SY7m۽<*羠CG UYBS0# kfy5==g Oz3]I"p%"r-udB6=fnu"pz/ I7]@xBջE KE'i w;lTY9"6=)Y7Ia ,I02F E [0eSn٦''X9`M\gn(J,CvKoC?8-`ɋ'Ҿa(T 6L*SʳI>N?{ǤyF ErL {1m ݟ s.[k8R|B#НN5bqrY V/u^,jp96tA{\ LK:}[>B|d{d%B UQ\Iƅ>BviY&ϓO(ËHmuw#pn#Y }xga[w%Ӕ]qCĘ9k4u[=rՐ"fˎkb,eutWb(X93AbuheLR g~-FIn8p[\> > N6!X~ϰ{%EA; x @ jjY5uϝ1{I1rXݒ'Xd8ᶋ%}9M?|uLyaD50T>f uTbAw)D, `g.rPF 5Dv./}WVx4+Q vt 3I09 Em8,Pzr9?9ݽF_(I`".'w`rPRt p:Z8b0T&t!M b8yqMD=olF'Y`Fqe'xxDΚW_9]xX[ǮBaЃ!U~5 x83$ Q"7a7lz |v0ac4#"}_  u$GKLw;c#u3$.taP ˆ=-ƾʦw9_8,[F\ V-9{YS $=7[V~00x+lbRR5}lahѡby; R(CѨI;'S'xk$7i[H&c8Tv`3YU]s%;!LPM{* OnSkI߭gG]^ ywn=F#" bc9?p4 ţƦ('pKN Y u_ZB2O&?_VmAO<2ek,y2[_0Yo_P&D>d vu_Qv;c5Py4qo!Mp/!@˻Xw2|ǑV>:: H e̾^CDZqc9 ^R?]l+wzdżM;aƕ=M'G{^M_ӭO-I7)Fb1DTHPi\>8 eF"}UT* B7뢪ى[uǝ0YkE936Abn~ }G!F֒si?O֚ܜ0 EW{C8^CÌ$N89 !كqCLݣWlesԉ !.oܟYA>[O ; `rPڷFv}TY忿 dZۊ)e?} K܅5 jaqf P, 04g)]v ,r0QpPGݳK)⻭jY"lj]Ƕ-p|"[#_Fsc2<A2>H&AP[JI]5@{:TqVnҥtђ.:{9dz#u[1w^<~|.}({0@y(\>JG=+|iDxp/=_ .EdEwn7;9pd1^DKZzOkiO]b0 I 1*FPz\yoJȫ{PS$(]lBv\e%sv= 6iL5To>_s uha]C#4Cq&)l۽pϥ#w/lmm&4>?k-DXʁ2 adpuBd `>=rd Jnl^OsfLQj7 jJ 5\O =*u1+"gxxe= mH8I"n/'EKZc}qx_3$Jt zQl8)_|My~ }t}qWT!S> Cz"֌_v?j1yK|. aWgbZ_6 ,Zc_y\jpUoMbzM `[f'6(R}{.ҷRۑNV*e{ mg'[LPKTQQ87l0 setuptools/_distutils/version.pyZmƑbµE$WRN+WEU.qŎSW5hAKW~== w#*%~y{./.Ub]UW6u_ߙ<%^LV9uCTV6Nyv1ѩm^jo0cǰΓ~%Ji ֲ5.UIh4lbSV*MQAh9pjgF&F{#FSvR?Miq] Uu+Wc_67ɵO3QB6qʚH jg2S0ZL=$yppybDebZB*>ulki; V{e, E҇p6M d#*rcx k (anJf|AƓ|q!{KfR=^aEE0P&l^ON8/bop3l7ֵC2 ǵ1V 5Xfdđ86w72甿fS~L)9 N 9F:G+-F`0`CGz ݑ~D#~yaZ\EJ ebJFL侱|Si(ӌc !ilm[gz "z=E Az`Ήms~ _E/oh>GUf̓&S>`UhE"@A]!9Hc7; !AB>?TE~?A?LlF ZdF9|^|cvH}rV3|^`g27৘aԻ3vb134=Rd10\վIbd j e{!aupV9! h}mri~,Ǥl '@:J{2NR/-p;s)E7}2YLyӳiL?yկ7}bm?fc1C3n18?7z7Oqlk9U`;F ZeܵB_;5EA*yk`בFW#rHʓinjG>N`Ƶ$-ߛïz2!T-z亿))(&,AI:€}aK Y̒2C^}wPШ:+2E~Yz'LsF>V*v.GB q^cTYYM.4Ajr% G-+ʚ  `|WbOu5.(b /;B.1T>w?㐸T.PC6(2;n $0ϠrwyDbh*hSI/[5 ;g OoRo;N!-MM%'< .с aQ$xД^gW'I WiݦBs"u ŁA97tQQÀPmZ} ,^i[re'⣖=2;~i˙;S+EE;SנC r ]9Er^׬s乃 C5L:-z/ dKEܿVz=cՙwڟC v Z g@{ɌwyZ˭PLĸ%b5^p 8;שes栩-eF!LShj%85PVȤ9WDxЬWb\b>9c1O6*Vª[)M62K17|c\%pMⱑMlcb,ꯚߌ=0o(2ʪ6{*+F-#ܢ8*4r1[xH2Z^={6QTnK(zݸ!||䌕}g'4j[^o$k;eS9dX~m*n/DZ9LHN~gƎcwP eJKy?3 g>i#5{LҰ1͡ou 9/JĖ2+廝bg%M͑iGfBf?EѠCĄH M<}=#BPoM7zٽ ~h ^=yeu ߯"]_//waWժkRҳzpL޲/6KZY0'i2eTB~rI&#pgՉOìA) JU4Nq{ՄsMh2[5^(FZ@gj6SWs4EuɦڻnvERɨT g7 X KږG47%9!SBA/lKq>z.z4^@8Ґkm!MHbu26^~>??f7իz!&5Dh(k`>a-bA(v*ݵUߡܬV+39*^W`,H2b4JK[M K֚]f^N+Oh"a̷Em^T0_'ɧ@z޴>3qh oA$5ܐ#!ϜLf$Д0u9Sx> 4T菋.j?ȓ#$gɛ7odu&ƢZ2S^j] fLyXoZ ⠲7:N{Iz?{v0 |A`94}٭0wmRHz@}S`[`>.Ӄ(uj%^*A@lLLmlxƅ4ftK,d8cۍNMjǃMì˲bX7ɸSՏ~I-Jai5>.T@։)ڈ C]nl:Z*${ 0 3VAO<}{$A!ʹypJ9Y K-.2n܊RLdq*3Y糪${%*6%Pq;B΀͊f'RSg=~X j;\X"LE+ a0{ذ 4&E@5DoTr@]0lnaOm+U dqjK/)y'X(TN~Jب%@e.:hbLrz}9$;'֮iGr  ȞQIЧK{D;t8N ǢN;t?4%dJqIb۪(ܣKPȪ˹܎CS} ̞մҳp$zjW1_N\B%4<_z`HJ%z{'zKu2 #@ÃBqv#зE:u! l^1D{* 7QbV ڌdM>8C #n u9\in# A6MwmDN"Sӆ1ֵVqT'Un1HO+|"nkk v6 é|fZUwFD;hLep}:^5݊=9] hgR(0g~3;Rw*l] &N:ZV \@N2s 0ϕmHʀUkBl9KeVN!? t<@^l|P9h ܨ`5]|AݥEлܻfpsqi˖K!޾A7EӁ6tvG #>vcJr 0jf)ͤHSA\*'܊8)PKTQQ;*)setuptools/_distutils/command/__init__.pymn ~{ȥD窇ު ac`@쒟/Il!pa{X,VyFoG֏`h<=s K9-A*V 7Cl^;[w⥉,MdpiG+f}smWe"4UmAJ*h,R )qRtSH* X&b9D&>$gɅeÙM>Wiꪏ U,3M`|^l-X .S8ZCp`I,v{~_PKTQQn1&setuptools/_distutils/command/bdist.pyXmo6_qPHZmGc/A;`C-Z")qݑ^l)5ClsϽRAdTu% l~dlv/ 2P8rZy6u- B2}\HL5R2N ľTef[?\shVrOEJ/29Ҳ`Vl6NR*BBVPP[`Ll]ph$!b:[@,~@29=}4]?h`Na8 +K.( l|n9;\ݽYűYj^UǴ$F=;1~;^Q,})1\z͞q@\݁YS9xbyf_s p?Tz5T BCMkB ΅d{wj9yb Y@_#k;(8-&D.%\8A~D$JL1c1phdiaxTʳx גM9 ) s5E]K mYM2\+< hnE)"jG_)E"U"yߞBнzO$";Î.TLb: 6Xl_s =H>_le_i 3f{Ә5+5e&ۭb{h:}9pZ9P7hploWƐmq'?ѷ/G}GkہiUS{km#Gq"zZ1 &h0L7o?;럫Lޫ&ڭt4AV^pFi. S)8h+CƆRvZ++?is؉L^3́N}!z UWgo^O:B>`eyxeBg޵*Q 9ΐ4k@19"7fZyF(+ai W3dOӁ$ܙI;cm /<CE] $41ىDz} d] ާl-`Bva9L96l"XD=%.^ zx07pWM- <ۭIZy]|\MCR:-~s^)đPKTQQwq1+setuptools/_distutils/command/bdist_dumb.pyXK6 WlIv{ ->;0Nc[$L/)[~ik`&vHJ$0 3ilceavGUv*͚u%Vր=#!",!>jA@Ȃ,lZPU݂ncAT ,?#X3PûZc.@1m]A Zi V%Cֹ *'i]+]2ӱR}j `eF2涨[~79*{VUtLbNAp,10w&AtehZ.{{l>:p>vl T9KCOqr6e-";(x(6ɱhcr}8b@(mYneay ȊY3e,6g`&U/Y,s1_uSUf;0b+N_ǡxk?m_d2˪[ 6XQ01LpMEu"T!|*]W(yuc JWL%rSE[6OU~HT90zۘlp3R9;ϖn/AO~ja8W* f5N[Q 2x=c5"+5owhMk*^jկurۮܶÃRj%6Հnϴ=CL=R\kDe-*#K+E!w*6X!?\jڔ7rwK]2I{o"=Ia*!)mi~M}cUqFrd>Ϗ4n  nG_ ߎX[/\W iFs 5" /z3  {0EJ?>HFikF`IX X7As_a ?k>1S TMuݕ{\RlGnQ<{4No)<5͡|Vc_ IűP~=M;Y*;=7(ff}2kCFy~/8~{g T|?\vN]o̮%zX_(mGju? u/КI,MggJBo{HԎV0)ٴTYS෾y䱧ѵo0ò$ZM( Yk|<Ыzs3wgq0k+4jnՐdz,@kW=wy}=Iؽȿ z2Ji/:88 w.Ԏ,i0M☂S_(qrǦ.r prN5Rǿ#mmdKSu跜9 ӗ6CPKTQQoY"*setuptools/_distutils/command/bdist_msi.py=iw8+0X5:lI{It_GıDjHto?u CĢHP U[$^<$dIS:=$ #qG]>‘R,o2 d"|eI8\fq"'semp=bi6 0J31s? "2"CB+N'=9/f*4OC MEd"NU`.M'$ Yʼn C+ dWX"dнbQhpGpNd6XŇ6ބq2/EfD ; \ut4s%RF%2yU|&rgϖ }JKA0d4T}' j>"|߂K݅lރx=)~Fŋ^DP2Yd"X :-)(}7i#:4k &?=@aNfrQG b0qF*gO&)|}us:tGyf9o ]KL0Y8LҬe@rfm)d)+pk*䚦QH |؞]?0φ0~+*~<  %[sB?HKJxoIaއcIfa$z kQ aİ觺M67|@2bw\ڞ՝23p&?F>|?J~vE6 - NF=#E< X]#..߃?H~POvmED(6&`/ xM,]W5 )*:IdZqSk@ ,x"N8$E$n?1@.%4CyK#(JV$~&[S@Rc}`W5y\ObbNTx{*Zbn>U0 [U<<kȀ_~glğxֲ"g̿ {yȀN+//G|c|<"iN"ßD;JW>X w_!6+/2]D4?$WG\‿!=Z[skZ[sk}n}jAv~=.r!F3ςL)lE+? $H4PIpB:x :9^5k!?iTWY {TT8H;Mʾ` S*(?EB",mW]. .#ԊiEceJ+),E 4cB }d9)ɾ#>2=ؿ RN 1 :$x%ںf;)O~6m=F^ ٱMqb3o4^5WCS )ж=y,7ˈ$ALT|@VOn؝E`zBlI Us:˥0tq4 `@ѕAsgwj͠`aeJC!2@ jBQ<|>G8h zūln/TX̏ͪW~\dz=J~ PO*Zz pU??K[ \H ~,"IYO<"`tH65>xZ U=,74 {\xMPRA]kLQb07DZ~ AQYR<5L3Ɣ9{'©S o;8# G -PQ.Um#1ޖ8#(wh[v_}'W(iesZ0;JSb*L/E)Xx0:` J4I|K(@ݴ]wgU;⟎3Bhܙ0,iC0*)郿RrfTFH痸MijE쏔*b_?MeRRsLP3MhVX;A{;A#qyuxhhӃ;NwyBCMu2Rz\ЊM_A .t28ݎdi$kl\lXSQC%aDުU368uF1o]:'78Yy5Ol~NhTlZ6$@DT X8L ]EuMn'E=K>xtSbe"뇦ÉN໮(ם 0_>oo_$ {l}Pf=A&Z%\Z5~G3ҟm"3!rAȞ?JΒE)F$YQ^\Pjܺo?y0[&Cp] 0널8v/i.;Iy*o/rl.Zժd6.(kRîL`[hyyYdf[DF2[[^ʸ&[Se0pTsQ(AYZ>ᬬjVf-(|}{`lxǗoO\\\ðDśpfZ@.__9~B@jxE9vzCY]^l / FTO}zv SHjO]+KLr1 q,EkM-l"BaIkS[WE@x3-Vn48|I]-)7* #uoE?\݅Vi'Q0J[iZ^ݸN*(r8pAǏ̂L";r宕\5WrӏL!u'vQ-I} w@ =< [u7-\uʲ:b6_(O[W|s^;|jۨTUʟWVӽ(%nwJaHa0:+[-=,s, _5ܹ~gKaVO{YiXu5Aw)'aIbKZkMx7`\[`V+p=^,$.]*ejܸFsLNiϏI"ݯ{½ J_ S2L`s] 3פV B15TCPoW*Ӷ1i] ߌx-Wڎ;8 •(h/wZ vQUn0z8 Tzt\Lg+ֺ]88tu>Fj]o..~6x޲1\ftl{Q-UģA5:ޟYӣrT`&:SՂY;.jVnA)S0c7g)N,DtRw )-(J^5ZptŸaNB\: ~lV FKѸO鴥R>e~EW T u\V:#Hsm!~E/B22.n^an0NRLb 5qG5Ɵ\*v![Y8Eܷ2IO mFGcIaQQNE, , ڲWQ ((֘KMTOyH U(%ȫ=J,e(ttC>ʰBcrT~@u ߑpU#BS &'jƣĮ(Mq. ^FR*[V~kWѮ x24komIx!_.uV $-f*.Qg,uv@+<3zhavt Q Hv\Q&5]sƉ:>hnVkиcIr&lQpH`KyWc7|ࡄ8ũq/ xc8˃"ZKYg bU4* foun{BT*  Z mߋgé!|ʼn4CΪmh!`)l}R=`|w5pSLJPiX`r)y0O^>#X7u*-ӭ-x&l `qfkbdFVI1vY³`Y:F~owx(xv8Wd]x.(^ `wZ`FPb̟VoυL٘Qz\8ABxX{!R@{U~5fA?s`YJy 0:0 Y l,~c诳xτK "r;ƃkP,aև֙ YhA9z ;!^ ܁M׽GX CANw[nVG 7b=2U=)nP!bD_ȵ!S~ȉQL0Ed}5aЩ{۪j2i[&awgB,ge2tf9pTrpN+ݝnBӂn$z< {:b=%\dJYM.z$P!AzӖxm4o_{ɓ} ZeQ̦ILKCH(] s$#{̆6v3(mGN.vF_5 hQ M)Ŧ!aTކ-:go:\mBѳ嚖ǿ9APNȦ2[N0+'f4%szQع=[ө0KFPmXt Nq3>Kl{9e ZQCX#M]%$e`V~ªFlI@š[xk2?O&_<\:=>}I*.z"V%.ZUQWrZkek4<&UB 1ᆪ "GI*Vo&9rgx$?yVJE_ *Jz\@t%Iq-:~$x)/GFz5?ʞZSSMi|/$Pv5.R^-< ]!^- Fd-7.ek%38UɹbhEحx7zy, ubK+V*۫/l0_"ԤE9. L~ٝD^0Eku0 T oS ;NeDya[?D>B:Yt,I #|IBPMcZꬱ1Fv&F$@/tw<؅2<^Uc~ $$BQwxiY׫6_~~l!>&ʕ~U'3K<;' u&P򵓔d&];ga\J\$$FˢAܔbN{eTηa,. ВO  wNr 0;Y91yD8?ӯRFMjhHXkXG}ZT^PWp^d7vv0Z&͍7QU  4!D+*-`>L^5̏ĄaE%:3^hs nީ;V^[댿lwޑR]"l#)7]Dg]:pWu,7"0$\t]O#Yô"A! buB "T97nh׿x ]e)Ep0nM~VR-{[Upu煟xOjgd|*2++=+662P*Uce֫Y;me^6> m2RN)LKr0h+ x"yj${Lv) ?]dGKW:q .ΖrSN~4Q/q1 ZxU_m C?Z6K2%m=`:6)f~k>ޫ=7wOo,X Sm[?S#]u*ވJ9/+i`dhF ;4330LcD10LDq<=1k;ЂNW9.ѹ0* ăUlV=!zjȜSJhsl+9577?n2*( JeۄgXz ~%E=e\vO9AuVǷٺߩ&.W`-CT 7v𘍚vR^|\i% > $ )3!ټ℞Uow#W,l|yBGe@2RkԼ%?u(?tȴWw^$YTL0<Ϫ|2$"/kV5c^U3V:X鼕I7 f`7b<į Ljce^V lּ]ɳ|}pQUVgɫL {&RQF8M0' |2⯼;3>k߲ >%ܱU^2"dkh6ULC ?1Lb&Ep]LX-y& &wm-8 '/ 1 }[z:kW@hjL *,TfϑzbAy,B\")z$Լ,JMT.8_r$[hr#vB.& 6\tt)Iܔ%lw\L&MZ88ǬkzQ$ al` M 〽,% xȦydJSZɛk@1MۖQF d#P_h VM$M#Iq@zƢ4YoE0gV .V%r A,OR\C94JAm#9D$Ys;5V'}I Ps dyI%~du7*,y\my^I(x\Z֘|k5/$JF΁<[x9_WFvF̐z7m6>j@JFU0޷E7#YypNACPik-_SHT0--M7Q}Xͭ0%-)E3 q5l~t⨈IԸ7$ {;m-ڀݏNA1X~|bw+xvԛ,3 fU?ݏuVrv˜­oA( Mj Pd@LcRbl.f31Ai,\q^5q]D"5X8,XTR!6Fp^8ƫU+|[$ᇳOồ׿}&.@#$ (`o!e/~%%١Om=z1%M_Uv`@_-;T ;ʊlteX_ص> ,C /;;?>c=جVk?ߟ`N!ӽ(?>9L$T%d*ϧi;},ӛקw"q j|v!ZI`-DqRũ!|IjM;heٙtY$~ak<#45hj s\Cb5-sǑ1$5XkTw1'9rr#}*?T% " (Mq%jzb?eՐ ?h׀{% '|)jW6y(4Vd~2E/lJ 5^-HKǡD\oۤrχ94c dx6CI8 h=0= " e"hq 8g큛lFH&@lː"ޫ,$ֶG'q,|; mxY xe )J`7bhƵSlbGKBa `JO%vX:ƣ Lvy#2 gA E|/6y5Ǻ<|Ao2 Us~㦎)7yZ9e]'AWtw*pnliSWVKv l^1Z[o3Hal_2 j]{Rq%BdՄ*j;M)#iQFB~9^'D}]]N]`)Ƙ>vCs$C~[[ӣq:f5.*+]3,Rm<#0t8l-+@]nLGc8=χ/^~_x ުڟ"2>BԟRWq7b"L򌽑Tسf45c8R`.d}ߏqŷy}[{Ӿy2/Li[Ht Ọ+ dt |r`՛2:БQB0cR/ƪ3H=QYX6Lwñ.=W42l_&?(TWއXy@;X=n l{xz/[Z}'mp}7:?OC`yid5_ "8OUpӏW|5cc$p~K"?~|#ȏgo k.,/J{fl9gEH6/ul[195Ahz({O,ڜ(g>21hA5P[=],H 0^sGYdL{kZh-C狪,"ze^iߑvv |FW`M3[fFnC^! -*NɢG$QJgEא!Z\_/GP|KUne DcpimxHT.Gs#kafd9*$tp-/.-֕bV(6ӆ;t WWal $pE$ /! cVA<怸> :5jc78Vq@O(QvI Lժ @C$[s=XUR = AZAL o3#7IX~C/jBu>ԫX:P.!0nnA\)h䧭e=" (jF3mY|-f Ov4vzΛZb$H5t,y\ێ [,w$@ 4f? b zq]2rwdGp]W|Uc5 Fh&sx+AfQwЀ-叧WrۖX fWHf*]dn ~LG!htFfN "BV'ʝڻrS:?&UaGĤlOe㰤{l4$_fjnEb4eC2S{ч6Ge1J"%D-[hE餫%h'$qT"Y5;XݲNuT7w-l$E0{}1X.JRѩ'##Y.yQJꩶk2C7/͒i2.L ]{OԿ%>QxQlZ% @,ot!f3m5ێv(/e\GP33)Q% g8v_25>k ɸ2}߻%r[rdןMȱDwYvNwZYQ0խ[sEJgڨkFs4LtTs{#: +*c7u#| yK"ˢ.]"|KлM:--`5TD 2KDZPNXbL֤/(z3/P6kp6=R@-`/V}5OìhEm\ʼ-駗>Z86PLL=x!I y|ߌe0';Eq5ľcۋ:墩bO~{:FӳV#V@(aI(, 01ŪeXHo7Gq"*BLɭƯ >0%u./^Zl,Vu<7U eSTDd|<==oM] ^b-ĥL9:+JnrWS<sde& ,V(}juqYW2iRU 9JVoFᥠ3 jh]sf]Z!񎨺teB@ FހVw rHZ+uݲ5;#}4Wa5= _C1"0]qWǂ|p"q۸!8W r.6ݛ] wM|H@Gא`+VdBeΉi_}:Ɂ|Îp&d$tLix`DLrƲZ;{j_fn yŷEwM8IbJ{Toj  Wy@P@jwVY%T}ciwj\0#PX#9mI#Gx4C 45R4yҟ-Z v6ת~h Gtj)rw .TA۫MS|}3,tlBGδ[mPjh x@خk>c5^&:9pw(0{vkoC-K <[Y ErFh0!tkBӪ]VGtyz$AWps:sB\۸!a_9`MQch_OC5]KuWhm!eHmXa,.uLkqY̻jgCt$n232Mxv-_M˸}ɜPF0jt+*NG5MbriIBgj]_}W,Af@v!Tx=[cz(;mI;@;q^*uSyy~ Af׸Փw}cI۷ˌ߄5 B/ VOml,G%xxb0Ay3yH1u^O,\1mҔY]FI6+e[ NBDajv zj?PKTQQd-E>.setuptools/_distutils/command/bdist_wininst.py[[s6~@"5#qU%ԙ,V%(AI>c+ g%gT fǼ6_7d+Pf#~8(UUb/oE(!CRRi71zSneN٭P`XY^qY mquvU%v"'嚁PJf[;AdHZL 4>$ W x~X+jr6DHkpJHLӤcU5C<;4cY#دE{B )+5f$j؅^D"Їd1eZ\tLG+%bOg V 6jvI*SD^nʜ=e< VA@|reYpBQ波,$eXxuQ埴|’%Bհ1\\YrhWlݖUeZk= ? ^0:;wzY61fvmKÞ*<V=)+Wq=@p4O.cBYC[_r2>K\sM  3Ls3tZl0Dp+zl ܇q#|̽g}^O|2ˮԎ\-`!45!#0p\h n۷qG,c~5APYV O-gV5k9ˡFhxH8?ɝ8.gEXU5qyuǏY3bdpZJڇaSnv?|sA_՗W!a6Di_皉:d㷼t,!zY[ upi!_MmXzM%ZT%{>yrsq4Ji7֍rX5In"c\.\c~}9w,C$wBT,1o|+9hNetN' Z p:@2B$| L=E}PeQ̅CL2q(5:#|l7NlRlJdFݸ̺+7?G !A40XH ]Й*/TFvt<9) s5Rsvp 0 ^$kJE!19j `䏈Xܑyk  jxV1uP.ԤV3Ét1M"PS˽q&Q M[1焐-:)i?!3r,ov~h+ ZcbdWUFEӔ+80ˢ, jxsd1C +?QC2,Npk6tEjވ}#nj#`VƲɡ(0gN+r4"IP)rghroK@k ,b1!]F^ц{L(!pýb `7=gj,mrs'}AOq Ձ\kt.X>j(&){ 29۫s# "ُ;8~6& ^W-:# * 0+#bޟ[3lQt>EzSm:8C6,lGA4z%LS緲,\ AE_˶;M,k{=9u]G=_ CO.bCןat[(Dp7UҨ-5{r<}v*V(\7utcYWj#N}mܖBઉٹ/y{ +9QqcqWDGs h?r8AA976t@uF؋+7ܞ0A=LAsDkг#yoj5V0){^V0 _jλyCz*u>[ڈ$d֧F#@'(F BVUĺW ޲,Nܸb1.Jx-5&{g *7`iW,0[ io,>*៪eT‘vigY7aT&;8"Gȥ'(!N%T˹9DB&{Z\^ D-͏h+_uLe-9.\hPwW'9!{H`%Enb.Z\=mѦfot$:Z0fGbu< :O`SW\ L9&APn|!I:dcCaLʀA 鵬o㎞R.sYPu^K( vi,Q&z ~O!DH?1 <_A-!ѐٙT}_oSdw KSN$6l1b3U#apz1 vKW 庚n'JqW4e7R99<˜qu'_+|t,;T 2x-;Vϊ찑"$|[nk/^}]ET**Oԇ=3Ufd$fs{3e@G|>`;eX"du}{^B%j3>3Z*GC'`>[SC͡⭥$,DzQ/{y݉.QPհ4s}9$@F އzh؉pҌ+]Y"9q8;ǔAkLuvk.F7'댊Jop[y5vAފ+;Q}LBBOPmjɶRze `h`t َhay.e5`h6l.aX.NM-*QlJxÏb?Y  FQz{VP<Iطt]TnPvYa % PiL53QBgVmhqQv]1ӑ드Vw+T~v l}\_0wP3c-hưbxxY gwJb{zd$us/;ыU4WbQ2쵉jiJK?җ`J/HJ{~9&5fWs+[ƙlಀ:N|{}C~E/7޽߽ۛpsqh[NךyܝʡzsahQƒ1/pvNuh aK @vI9ȝ@A>˲Btެ@Vbhaզ"\kM:GoT~evtX,x^\b~LPT@_p~(F{I7ZSdN{ $ o*Xֶ k *~q/) 3._a7hUz.hF3ϖ~ w%ytSRj:iag7@y-+ lh)p٭!7S&. f͝3sHwML&x)'@dGW+X0CO%əEJY,3MJX&"q{>{G%O0Z:AuxG8aGaҸB EpϘ wTBr&5'mOŦ ;I8V~ף?XMg*Kg!-׽]n'g6Jɘj򆍒0-!3)b{b%k7j¦#RXZۑ}Z; ] qC+ ޠt-9*?* x>vN1Ȗ#+M%l|"g;ԭ>;];Y O*$.1\XfVPstcU2+.p1w 5=.rB&qAEfMJi [3Ѽ:$1z6P(GěmV⅖#af_-+h˵AMeRrGKC<̈́᳃Vq"?YYu*4"L`B!OX+wq@r" GR)A6JyL$~mJ㝟`'|YnjQXN!%0%jj#4vyn˯nv]$˙:A3vp3}O3tBB9ɴ2=f:a%9ƵF4X!#0®$&^uga뱜N9,9WQ}31>玓~zg8̓n*BW8]vWnXDR3&rIJ=I4cL2Kч"UO} k^$3VOv3M^xHiԼ7nPxP6+`Crסȧ9nA<beS_AaWnm P\E8JJJR븿3(QMpky}fH%IR c;+j)UpYmNնEZk0{0㬔+*3zKÚe0!˺/QUW#!(ZIHLЬℿjAZ$IV  ls5oڡT0-[۱vKr:'ӪA iOIetr4>v8*QAkXnEwR5N=N`.߃ VHRsgYK8=Q/ =_fޡ@@"I ;^Z*=/KՑxJ;(yKu/dcnp!QJ@1eID,P+\A,*6hZ-Sfǵ֏>HO6a9Rɝ؇egj`ߢ!lIXjUtPa\0!,rK@e͍acBf[R)1\ܳL'{PQΙă*b{HS-|0Ȑ_4PĜpomUxx-FS..`vz,:HAI$L%J+@hZOaKڴPe!BɻP.cO{m G*1bE=d,srYso|tM$D3%[,%L@)ފzS,%lDlu~ika3e6-mS"5܆7@LT8͔Ԟ2^("K)"td}q䜎PK׊?$ 2?PH۳I.V>~Ͱsݘ]$xR6ɬm6kW.uq?|X\lWD3yBDqe}xq Q4i*gu_3~u9[d9d'}jgm^jaY E5H2|nP1z sa=$ʒ\j뱲FY$_B}ڌ2L5:d,Oܸ+u7%u/;~dN^5 YPћ~ ?raklH&tY(6vÙ vq*dr\M<'3^חdΐE7! mDEQK]">+C[Aҳg,Ez8]#Ӄ"cݜR

)E\"?TL LgS/)~>R.bwӮZUb5dqyjrdg/m[[['JC3h<0;ۧa1IF?dLh%آsٿE9:=BA=J^@l1~` ])}E^ 60.k_Z5 _ v'K߯M7V^\Qfs#8@{ˣF}z $E@?4/tS%Hɬ0O_0&t!饭Ј +?r;-gu;]%l\!!B}1q# V-ȝ^vkB!Ղ4j`s^s/{FG^Bh=Aoʣq\E* (EB:FP8A!V XԤ%sҬZF+aě.5WO:v{@0f vX[-0\L^61xZp7k&$>Tb<}Xw_!omfzINL*iE&E-Sޅ6L2I=?jj'@ZpENΛ Sgvs}&PU+w89b$Eiq>kc)#I-:GW0\҇*C_$x )-8Lhqʵ8A9 k!>j'Q\"T{wӧp"$ aK|d ^)֡`ZIKXuS>\kjZ4KlPH=,>z+\L6t & ~Fʛ>MLeHe< #76W3ͩ*7*^ Wׅ䘼Qvzt+EZƂ3jEL%6)-6) ]EhJ Qklh͠?y&mU"F_cs}{4%շ؋(yQvIRlpfNIVNT̸n'8ꢼ+!sbGQ]ݨEY_?ŘG`R#{g1Gbr_f.&-Af2VݕT UI>0wϽ3= 'OHzĸ!Ք=% r6EH>~yTVH S q)m.ꊵ_p]ƍ% Jum=kB;i`.܆^7EZ} S5#ǽtc@&Ri<Ne#ZДN)Nf1xs xm?@_"(]CjZ)]_*GR ,~6Y{"p^2QҞ YD}A4QG*C9%ɵg'LE#VZ!& ƘIDJNF.aO]ŚJSCo;0LZhAֆ\{ٛRFNQ!٧+4S3A*ڄ/"*~#W'[3zƒN" }Ǣ :!b ud8)NEo?d'\GjeM[t ro9LaRnO &pp,P_8~+sgq{#5n81~h8O-5v70澾@ѢD{V%3ο[}3eP9&)snhOS@:\xjN }Hrz=(k}ag*'kM~uMCC|PP9l~9_爭BbSH${Ƈ!R-h!e"t~J說 %PsY` 1ҧ8Va:՟]m` Q} ՋNHra! B?K-9:֋$=w 5}tw?E(@ڴ>g>> ZDf5Q8X&ex-GJmlԗSMRUyⓇȡQ'HU񈸯N Uy HT2rx1ؔyx2_Q^' XZs\b,*'n7t|^7^_YSN(] ̨=hD1eb7µlomMkC[˝)NDӯ ?+Y:I܅:='t׺yʝR~sg1.3=gR"&7nd<8^eD@zn[eqZLM8|@~Uju  u*R+1)AŤt-^O/9k.QٲRYm<?a+ 8#R'`.!P\m(ݑ|߆KJ|ҟ$7'{N=Тڰ/h-4qU0"hLC2W U'^*f:d#v7/M tcO)(6ZAyV_2Ý+QOںX%ˆ4 uaD/+^*U Q܉*mJr4$J@ҢvRBӤ*px69,gA?"z;ۼ/̃xI,]骳.3jwu0uMCB&񅃂 RA^D.pNrjD M:7I6c\|5WoH#cծT+|6+谔mYW]t"P4 +vv%bc+UqP3Iu صוosw&Ml's0x֏ޜXڎN`#B"(ۚAZnU#kEB7Ol.[vom,e(ԚRn4N[z)ANts|?lt&lTZnUQd#JJ%B/U0OjK ZrٹN-K1 Ly:Ce38-ztM߲/ aƋ83ʣF1e&>ruy=?g{AAV4P @usҭJs_hJ-$m@-*%rZeβ=x"h s嶣єʲ+Kj$m UZxͶmx\+~'xTUhQ+l ( wdH R` 3Cmiܺrl F+1W㜻0,j3bLp<-?QĎN);.e ؅U^G-8)mrL=ZWavdzS0¹l^[c@N?x7 ^IG˜իw"qňU"O% P7p͂mhʧ#}d"0,zMr'4wfg.0J]o=uPFX@TfP"ιDOd'⯒/ؑMH&J@T;i hXI)7CexJ_i ?}3O< p㌊fE`OIQ󀙙ލa0u$y#rHEI©-b(c qY^A7t#6]jʪxiQ Hp¸θr8.ڧ~mV;G4]ZM0(M>39 f"Vj<^!Tm&m墬BF$}%U 7Bo;6?fܝ *th3;2"+cML3q? `b+s{xӬ< :ٌb#9#ƓхR59sO:* \$eƓM9(4ݐ>Lb;O<8ϑc4942s gzk.̂2.[ꮩY3<[dPQ0#mH֙!)\ 7ndU&Q(R.Д[8j/x &fF Ey,qI6vc`;BW ufm  4CMُ۾ yóhn,eZu)PN`HosPף]>exjRCVq_FKk4B$x9$p~mmoۍs":N Cf] }<} u?@SKJW02 מзə};Qà(%tFݹ+K=X`*ّ0Aojh\d_%i@QzqmC[#i_xFmG" ;淡hGA6&Í[zXA1ІS GaT>6 (bsBroto (‹ƿzAɝ#q^\ DǐeB۴2ߔ-`F}F0ҹ̌cu-*|8"R$o?xǣ*`YV' .#޸,F Kx]|.o('c)i+W e3i;<Nc~Ix'qcuz/\ Gp%cT1cZ'9)A޿xRꘞ ;ޅwK xüaAvd8ZO obi[ׄb{tla"E< J$uDѿl~b17d:IZ!^W% Z-EZ8Yrt*͘Ȟu+WdEg@f (:?`4bN*Mq̌o}doME2*n׉|(LBS β$p 8G\\H*-srb)&A@][l߀I.{1jBU7[!3.q<u"^`aұKb]"l~p&x 3Ղ+U-nՎ&Nv&%s\[ w BV⮉N?lڌa_pXmvtkP:_kX4L:k55L65p%`Iq`J1+vT';>?OL4>ba& ϸu7coGzL2*)pRhGn_t{wPxTg`#bdHnZūeBNx2^Y N/_*ێ Ea_R.36@$?85-q&]a k@M|.cWi>rwEBq2U6+p|o5g#xЁ1҂ iu8];\oA9ہ Z]MU"]?>*w· q8nCo+Sw/?֛AAbzZ'wQڶEơIͺ>yjGkPŎ vʾCw_< iHNʹMmCUA]l~[OqXO ;b9%xh-= kRC+@(oʓҒP%Fl7 P*[l㪎p}!W$%%C޻*$F6 kZR9P~B9#їH9;#[HVt0Y"ˬՊ87LT a^;=Y[/Siӟ0Y <Q'3$ *G v(D6礼Q-_tUU{'?$%G?Cmm_¦xK( [Ao]< z@ēB{Jǀ`~NA^ ĸZ6 J<xN0cek DF/?-+:GΆDz!rYQ}a]|PA=W^} ɿb!f6$9NAPk^ :gf E+9g4gqrc=/34aЌG ښ`Pf"vPdR.BP5D[AHN:?xT1Y 7Zӕar c~J>{P9ݜҤH{v\8C?%ΧiN+atӷ";lW6AgXru7Oa@Lo=\[7sqDDɄo?}NlUzo6Î~n-} 4[:v̤' :s\x`x^i0=Ә,H,58d%MQcgs'սgk` .P90 5k(0Cg\Uo_eUC=,zh « ?Q?\ς0tE QywWYB|@|2&it5du%6xc8'ܸa)<څ2jla5XrHŃD*>}-k-r)FX,(9)=uY_kx?O@%{tq ao͠GVJ(%%N+"I~G~Lחp!Bȭ"+! ֺ# b{pv,3 !##%\\\<sLaT+ >@HmxтXe%/Ilk! u\aȤ{}z7'j,8Ġa$g/w;v0<s f;O|8=alzN8q.Q+#2kȬ BLF]H`U\!P jz;ya׶e-3e_Ի՜xv8k:D^St);a`Ms42$m?`ȋ8 MNݤ ֤ԤJolY5^aJgX9 >%q[mg}{אdQ[:d ڌ ni%MkmF-֔  -0v- j5 -ßx FA^C!,0Ήtíq =@ ,!d a$ɸl}#jt·[ 4A&aVm/hsՉW4N^`0ҍ;PBKv)p$.HHtޒ`"RK5w.フ1X"0D 5`75P/7pM_f+ȸ6ZKpnysxm}b8 Ճe 8ҫKFăo knj/Џ!9A?rS,qwwt< *EIr|a?;3A>!#mGwtt>ܦk菇#&јzcJlapӵ35HzE4ĥk: NlYIpʨw뻥l*Pz?؛hg ?ȧeDÞ䴨'%k_3Oe h> 9gPf*Kؘ)lȜ˽G¯ыöaI˴߃߅! `r@$OB3\z?$OO|Q$:(OiB ڞ w^/띂 VaLX𷪔f^x,s7w wJZEQ09 .Oœ-(d5M .+.̹VwsU= 6 (c^qHl2\&vaS|4>}xw/g1W:;";L:ɑ·K)C(LƒFam[{LrrՀNn3+~aƅc*l+_8#n6˨-^\>9Pǃ՟;h_j)DsGtb2OpIܯְF.K,;,~$E .G\b?d*㲒 ,^_a!pxPY4&[1$l)3C RiAaG?75uvv)C)aAuAku cE,E`!v#;з~LXt>_  r>H=;[\DH? ;}C^w~|u H/F` i#ه=(㉦ }[!//=uMZߋ:Eu Wti++[ﻀ}첊sLcη>9Ϥ2I (gRĺ6C#TyeP%ҙΨɨ2oQ% {Z~6ewe?:rA+ܵH M= X|0d!&Iʑ(-2xI@Z~H^dwa',#@iA#L)(͂GM.`\QGf(A K%h<;Wz{XR̋0:V=5)xo'_%7"1EވZsL~M#򛗔_=-%۴^Mۺqh=5۲V  ~C?z֓5 7 yXtvУu.ʶ~C2')bgh.jmrѧhV>'TF1Q0m@賌hO&\;H&6<,ʷJ& {^'d#[T^o.P5 -. ~z]oVG:Zi0j<,QRC=Ki` rB@\e>4&zUň$(7EH76(+/KS=Pge/_VsUs:fOW!)_VXo;'tvj[6;`q;0\^o^8 076IRHR$|kI2{7w޸$(7I1֫880p& 84jhug.p>p)Gux7V`#c裇v<ְ1}}mhO\'{W?m> \zځ~-R_O\}}]0&ɦY$CZ[zq 7BO> `}#(%_  p$9 ;H߄A[ n(!W \% p m#IoPOM ~~}|˻DLIn6% ]'feU*< \7F(٪]4 bc)m aŠH&jEt#ə)i~ͫe~ʍ6q+L`š-^"[tE9z-:n4!hnkQ(SoQNH?ChsM&{n [/Ug ;^7~nzQ;xDF2.#wF+M/rg||n3nTffNR[T?cPor='J;nT}@6;D8u^P:Գx>%zn#DxsE"*Ɔ7)7Nmb,ݢ_q!{ kq$D}sJŅy/<'-/,tyTG[Bk rQ%ّ|yNs3foGyYuWL~eQчR\;;UrgU*Eɧ*cR\ZCZ;OAoFh)9+ww½2f]Ebf^Ւ:"ls2ϑVv.zE,! 3v "o_(@'5Au@ކo@E&wpvC`!'Ӫ!\xC$;I\skldG-XNP=k<.WO͍hK`9'_Ea/Bu@^*TwD&ˠ< whǴ "Fokrbw:]Oib01XV9 }Ǫͫ}rn> go#*+PmeD ׿~sG* oXh~K>R &3Y#YA{RG4ޜ~PO!};x; ɹ`I/N~~e+ q_gq ðP p/~,~ X0Y W^|˯__yy'yyo+/p įy  P ?B- Q~$~Ż9)'-`I)֣Kぴ؁IOpȩ146,S#fyrL9z)|9W1ٍ@>ex $BQ He#IYN]q$ ;ap?/1)6 J) YORS)؉<8 ffZP L8yĒȵ"_v/e:3R1=NIrer<0Kr!!q19jV=[]ۀcETRu6{sSi|W5j;UWG T]@$[fԛ5Q(TONHɴ Wv; 7 2$UJNmB]^rFБǾ%HI) kĿ4U5Fr+aL |ֿ'^>:yQ OCprՌk$ns6S'C#.1n_x sSê176RYs,=qd9a5wOz{DfQ4T@5H4 أjʆGztM8`aWB  PapogP!w)wt zD nAp;ooIyxL S#?D}Jkn',=$jCCw3Dqvv2ɜJ31Zilpq=gc:%VZ(2FL#x%WPTv֩x%fgx'(~RQ8' v}bC#fY4 l 8rZ]2h vYDHX *e8fNJ57\k! $׍>Al umhwsuDOnRtTgWSyTpClkt v:NO?D\%4^*1c;޳)dtP.rk\ ԥO%` ֠2zL*sL:W$fPX4g2V,Y6G9^ZMPϿ tRcW+ ~t=/=ϵ6ga{D!KwˊrvL/])GϮF⑴}Gv`Q؈W&e*c*|># ]LTZ 9a Ȣq5_c*q!HGxc|r8dbm mŒ'w #fuhsGo=PJV?O/P=rMY(ׇ,ZARw?G2_UT ejUeh) 8|Wb֯A:4T6aeNrJ1ﴗ2},<9* F7揢 ǡ&~όEVA^dF\򷺽 B1vwdg#82:e-v\'_.ҴyC%!̠ho BnLM!h f#pLQV<ތP]1TSG9jU՟on #{x) IڱS% IS{UrѵF&ERefFK!BT"}R>"A*k?FtA|wW JNMNS I\pJBoή@T~JBmAFE ]v5 q@L~r @)Gq*4DHfy`ӄFƨauDUW,"f:HQn5 ~h[Ǎ&6 %23{ qg)Wê-quwӌwXqEOl(k?FhB_툦aor':xRۈ/@{i!x;m(]FvQxXd"*onsx4#S(0Ye#m\G7mOEhw }PVAeD<T_ >Wp{o_.mo'~<7NET#4ACyuMoW#uMΕF ehG+^rgFEl2PIt2 L)}~};BpM1O95~+>[i0<1POk^\N7JM د6H_6S<5ƶ_!DmcGfU _$$;RlV5XVB`4ʞGjH%L2%iO(>8&vQ9PIn qNq͇vE?E)2%u/DSTa=OQT S7* l:mۘ>l:jw< 3Z{0N`ȍyzŘ%jJ7ɱn8C"]փ4E Gvn{V3iE5Ly!2t^vvy,Wb[4ꪏq-Q]ufwx?/ vLmD!Fތ@ ܼ) /DhBe&42 P[ǟ*@~9ۑ3{ŗ0PH{s7? _.ZUu\&ir3S„Q͆! cUXn/ 3mb)*wTo[dJ{yPm@Jmhjʩ(mcN b*BDclΤIJ Taoi*P{\( ϻNQM$is/TUn e[Usڦ c[qjdҴmQUlQiHɆ# ^?¯ J/6՟lYS|«O$xU(}{䝢Wϲa视L3$q=Mz4W0gTqMWs"څީd9zs}ӵH~C,^( X+ZNc'x(OƈLP'mAZjS2gh 4Ӥ v^0\o"7 Q}0=[skQ[Qu5-,!Tlӑ ՝,tmoȍ[B%|dr%.SYF;*:!UZBT*h AO%> Ʉ$ .#n=JcrTջ+QTf~鹱Ē jpwp]"q5iޜ3]{P pj!h G(!@$9v-r=3"Z+XY/*)fwo$oh;kBuL:{fXgs+"?{RV+~iB;*#8 jmU*ro&*NSy{y8[kQʑ8zJ4Q;GUS=d]`qֺҹ &}΍sإv1#h@d)<#9cN!>Yhi @Gpy1dxoN: ƦBP.㑄> ݶ`.d6|N7GڡҶ( ,cdDU՛`%C;x?Y{fgcH,AzlSs@ Oz>za9 UCQ|P]$05C-m裖s:!r{]xK~huXG+V nkm Ԏ:10-Q# h>ֱPu#uCmSPD\_ %m たZ\: O&%`ڱ&}uy⺩eEJhfTEt!;0*-rƛQZY 0wkJd[7%:o: 2 BKGaTQopW(ad|[ˣXUcdBN;2v)d)uh|%0"zj8Pxn @o fc11pfv64ih7 L4;‘Ҩw]MzdjrN}QP"6ׄz&=ZrqS=LP'P])t'.f5.~3Mm=15UF?[NM`v!E9uMNٝ LJ@ʙ8&5êjM p̅86Q 54!g OJTW ]Q􀕍ާ+\!/Q>5D}XW(zV0x;8Qnөo8>ssnIcT7(̳0v$JsfL 5wa3gEiV ` 1s:nQ% XCdӣBi/qo amQ ׵X nk.84{0sԪ79|] ˠ^N6pf\cpSE=F}"vgA1{y?AMbhT {nq7 ;m9ݰR^ $liG"Kj|_?NVǗdUu*8Mz= ;&ea1Ofa)x 닪a+|n$#K}Wke;0\6ּxѵA)G?xB,_U&=v?4'bMEcq7"~1~ R$ؑUúrai)DY8 %Iēbhk74.NIvDљG*-;8XiTtn AIDX%Vqav~kbH;ul_n >^ιM/@NDאN)i26Ie# g 8P!0z8H7|r`/!w|*Af|RŢ@NkS>=,{jWef]qt LJV|9Zn (3 'kc#bVv28X R]gd-K=RR(SNJSq?'ء~QH\Lm & Tٸg\R7ܥ#j>C7?paq?}A/W{^Bqf'7N}"Ӳ2Kr'$BTFM\ -YBܷK\yYjM{Q$+.`uLf`ÐMi]! unB\q2t-s2iNR_X3 Rl]gI@s7E9Q~X GD=-(<<5"B f'>3Nj#ze]@EtNEHuh.i.hH!Be/WVtAʊ#)B[s) O]d1&jwAc>:+3rˑ-lDx&'P7qfH:kFh  O 9fRYjq˛BnûOmX sƾjr%op:7~#[Vl8͋BH"y@| EG}FxY! [9:)zrmbLwB5sYGB in8 &|V^`Т#puzz])`!~E}BxO<{D-X060E.C+|qnrŊ63F@-4&$+Ym ;^R126>\ZڿIzZg*@5 Bp./S%ζXnポK cv\R3u6qK[]Cllո'`SzueC" SuSG[_ GD?zpY0C- S+&AED udB [a߄qIl9%؀FFû+Ӓ*өߕf\]<ٍDLoYZe`1r.pi2̶m= +̎&u|@7Sx&݀џt&˝#厜-1xYMg=՜f LgA v}&y ׷8dfgCNQ*Kf~\ x 1 dN}+wP*S3R'͝X,a%+A sS#!BOx0Z\AM=?"r:]FGk?yf0왞rt#0PLoY+8 8B^H|A՜NGΑU.QeśhRʆwR}m @pڕ._ݜGOff s:FphGShȎd =oDE;d-+ι:(X94MrD^ݘ\cLn_ьm)<34}4et K Jq`N Q80$JjE "|6LI"K==3y9 DSx/P?0W A+ RBe_%Z]%2z˸%Kj:cM ^XDk>5w> ;GWkpv5ݏ3 }08 0U Eɢ=e`<4tf"l{ݨ[alx %h HYj߅Px3sji^5AwU|Sa9OÖj֙Yyc!-3kŚ2ki|No\Ě}43$rEyRǜg*A’"#6.R0DFf7Ś5ceᧀLP?|eMg[I9LEEʕfj-jftneii_K2 Ώ;*8Dc*++*50d Lb KšXTj!Y`$h|M B--.#;si\ҦO R%嬕e&LXﻱ.)hLf\0LE~ ^w i/oʹRi{tiIy΍H,sB p:(Me[wu긡tH ?lr6:a2jrž$1a_]ZP8{՛]1&)u)ȼ 12*ƹgHbvl y8 vXDE|Go5?ę˱ )G٩Bo\ W #~PȘa`.^+-)6Fd]aro{ʇI \/ZNot30ZZ^j2 I-""Nz/bϙ3Y:+TKJ7 IMӂ4ZFs)>Og g>Ϗρ6ۣJ,ȲGmn\]] EFڌX]gm̲z шW4l56H\PPPm,+PV뇺]v_2PJƟJ? '?OZ? ~Wi oH778޿U ?7߰Xo`Hhf~5Z1Ď'zz3v?~ /yi˯ھo׿߿{PW;~On>sO>ϟv˯?\ͷ]z޾ew3D3<7.!>ccq׀a7[c61˻s783KK{i2ϭY+"y2eBܓ0N ɼʉ4`/ya>ۄy`zLi4YL$$k!yJ/_9,sPZB<85a|q0&_cVtCKc(7[xb[b*gs4qeďlhZg^X1HӧF='q "ؑ*C͡9UqŰl鲌pfOdy] em8c߱es%c{`-2vDq/w }yoc> <<$GW1+q'똘맿cpeۻ>-C╦=:|{/7~cw1w*p~ ]c\}f>=EO_Zy;𧯟gx?|wk4|U7l9K޼>_ϑuLeoQhܼncיw*Yd.1[M9%"zs Cn{N JYB6ԚVXLWFi&`ywY4TWtw4+2'SF B0Tf&tٴ|Ќ&BVdZY C2LPZ\ @]+'úߋyy j\@٫Gٽ࿑9Z,() e78r01U tqyy-njb] bWfS9`^" c%ĈU` ]=%Vs1@}x0m|aB5 d ȘʇWsS{on ithgYd 1=%S:ȝ``F,c^E{]Hxjp鏈ۿ~Kֽ $81+P/2s1)]_ӽaNt߾~_^^Z1|['O5O-}u-]fДEI{]\+ګ \:[SvQԄ3&REb_}'5Epq WqYpǂ\in:f"Gc"p n_t.u*܍춿 [_h-gΐ xr3o(e+.}jcZpIogL7CS>7> yZyq\T{X$R(IPxC97 =0/ tO&<鋺uLJtPKPMSz_Psetuptools/config.py 90p8TkD/E*lrgGhDX(՜DYnqdYfQToQ{),fCժ 檷A]j>L]== u߶SfTS;zd;@alk|mn3*wzj5NcӪBC?X<p~޴1%iOtX~[ڋwrP JUo|sQq$j/fHGr<6^5\)^xWecUR K6@ ZumiП }_%\u@r)Uk%-Vᣏ>D0aUA!A),OPL%*Q\[n%bsإ;9ӄo2Wǭ+d5[AO3);غڵ瑱'%mUK:ΐۃ%-avM@A׏H ɵeqW$|%u3djD \j)qKu(쐿lC'A﫻jY|=kpE26B߱:4HU? ^xU"EDG= ȵdÁIe`wP ]']<5a"Q)?+vI/KMRvʲqU6C co~/u,,_ K^yHUZRfphɋݮ…jk .usaLzЭc_ufI KP=o>Vi)ʃsJ0(.!Kr2ޑ,i+á` Owpp|b=`W n=0"Xbe]VUcE^t8/]^Pt!1o` 8 &ZRb܈yC];L'o:\Z5>[P+9_2_tyR%&eG|F^ep9g&y jyRGL竽 -Wn"JD 7hAx-Neħا2*>H}njiN0{Zh1zW6 IIxB=qsCD e6 1`zCi[EJ'il;9:se 4CRҦ ,._\P"f̓+ah9mhR5*484{`7}'M!Fb6rQ_Я'EJ Y35*KC6[W~N Ajn"AQؿՔ}ӏ7A@rRéX3db7ʦkƲ̕l7aX=ߵy"o;<yq2XX4AH r%56 "t"`lP/E- }"N]=\`ZJ 0(u;脊G\6  tܢ(5E qx(L Ϲ,1 i["שB Z6YQhb4ZMYBJr,vJI![Խ;yvHNCթb{ Ps` != C@h\ `*^ ex2^l,GCR<Bħ-bAm#m*Fdz $wei,Jp0!qAEn>< g] ';HB&9g#" M:SUB pGT3tQ3D:0&/O1O+pukrV N C-}'!(Pj29zYhoux 26kď#2[J|E[n;i-\@;8ze0\ v4KzBl +%Jgu]{3`, 1#?A]*z .MxǒD~ˇ~\v tx'/EvyU[.c.I9w _cCL0- PXޮ?<^S͙ÊvgN>O]uۺ”O Z vS/q츂YƘ35Kk'IȪ;[}mO[2Fw"^fG8}*;!Zv^ۯ4;qUo%T{6~d~]e9;O &DЂ;x@PeRXX!:b杜sp]Wm˂cf7,*i"mD{+W&j6 .ۮ="o|T5#P@ @T!bc]T<d=nLye.! @h:#|pN6O; RZDs7$gVʡPp}e#&-jCqU+o=J|Ͼ~] ~믾؁Paai5p/G[?tShE*L$if32†wZ٥иޗi`aF##3™ŤoVYՓjs,7%-9: c|+%h8cK I4V_~^4}6HɝuCJ0",1?ʦ/z]ݣ̦q?e qN 3j ib oGc\wQOBfxW*'t)4]p)t}0oކqX}d*,#/0z{&@Dp@3Ӟ>k,GL|*I\)+%q&1hͻU7bfLJ;fޛ* z6+ },?@r1kEO#_Ȍqwmrdؗe 4oab=Ml>?ۘ#1`lLJqL9f*u01qz֚֬_q+GɀKgiHO)n˫Y 蹘cO샰.UZJJ9[Kqe߷=R@MƜ!1FM2Om-=Nw|d Z(ZEHdHy[I*#hw7jw&%]΄Qhg)/ J5;xC;PQ!A~U0Y`HLM!/^b-$qs&{Jx Xh%⹺եQf_c7䵫ט(sVd Ӈةyߡj7  jސ#D)y`}N>_c>a;1τ41${Iq+ Ы&9t|Q wx{W5ox'9gxgIHGt*>2^kv'3%;{w4Nf+MC9ԴAORP%>I/ | 0w\}ml_M|DCQ3>2a+L]HoV7ܕ>SxRî(x'+Hn%'EQWusl"+$UY!ׯ4;fEEYT`>pfxư-'a90ϩ)>MҥW) -ff n([ -M|4A]--ᆩÌHBs >sGQ$PuA2ek!^d$1wqrz}xsyyucf $s4yNcB/d\tIH >^3rX* 劖&%oPgvdY$b 57I7D*‘ANT?JeQ9yfO?͚zIm!(iêI_Ȗut9Ic3)b-UK}X%U^7k/ վ@|+7&rwOZyVrNcbUZ9!̂yx>Ḱvb&5/9ْ;4cl`,p/XANR1*!_A/n6~`%?fh_ApYƿef%`zV"70#,DbT7$S,O"䤶Ae/iνuovknƂ;FwO5r5 莕欲C T`+TF&$mD${\Bv´, $y[ȰT>Y2],I/m9oyC]׀9 8^AG!̦%m R}G\,ۧL^u8+%>sO7LϜ0X5q/71bN<=/_t7DM(vsݚyZEp AuLTL[TƳ yf·\/bc&zR^N(f5$ mIey?ItT@ UXۙmyfYSN>v,\Y,Ts50-d᳙Ϣ؂w|6vINqc?6r$sIaȈm@p>3w]$ ea,93u5 jR'83}  Nv[RZ n~ w,Hv!T#vٴل:Wvfc6h}@w횗k8XU#uǚ<ͱې-dXbPogV9ͱwk,{d޶5XX,6< y~g W}O)L7tc(qLb^A3u.+6os $اa(^[8 Nn6<8u7 ȱ";^qZ ѓt` R\la,6K;l6̋@`ñiPF 9;cך+3XyF5ja云m, O{򻀣[;Y#l0"?x{z)2xTꆕPހ D ǡRs8pZr kCe(.N 0]"">{*=TXMd.V>sj* Fg=xž=={4 qSl 6Y >|F EP,; o\$ꢮ'y2":kfL>MӊYa3;9,fg(+ p3 =vY@5]b XICI]8u(҈n(ohةat 58[k_>|N+̭\27"( $,ߴ ygzW2p~m҅[;eݡ1;p4b=ecYX̋I5hGr\9f^xPKPY}3setuptools/dist.py}mw U!e.8ŒUbI%qR=K%gådߥ*[$h4~C~v$[˲C1_iJڝ$y[nmŹMz0`c/g_ʬa8Bw? NHC  @fYx.rP,}wi[K#|׸?4/f_jhqqm6}a",E2[^%u], ע5<l7},*؎FWТc2 6);ɍg. 38h| 4cBE#aos!˳,yJfs/A$hv nz{qвpB A7M?U=hkMܺm6E[A^X͊l&~ɧ(TDϙ'!B& 脾KsB;cXWƜly5u0U#|{9ۍ󬬐NMeC 1 椐΋^s7O)nAejh!nPe7Χ*c4}Gڡ\#nc^>}}ůh-2, ftÉ3ؘi"!Z!Y>)l>fX b4_APf $^A}5:Jsۀ=s!Q5iz.BLlq4 ;wa[jaTLؘ,6j(0={Upe]]s5R`njԶKge>T= 1Y2)ԳYfuӎ%7qA;W@d2~q$L=TEpdQoT$ LV w0 !F#R*SesO:iQ2îQSk&hu.Ff{.3|vWNP&`4_mhv "{@ѯ@ xKo蛇2x5ޠXP˓F=@AV]+^qsYLf i-^8fp3z¶0slg<+ޫfec$] 75E VAµ.Amv`-\z[S?iz1<t4QT8M&}iys{ml,W{РAef{[m9X(eShQwK*q+adRWFmW/fn e4 6D&XHml`_{ZN]Fi_VH=z]3SݔM]ќ)npQ  Gh"H; F.?}-~S\/,5ft.)w-Zȣ8ޯk)$`{)bh{4:jԜΜ Iހ>G)٬Gbixqe񵽀 wj7I0nG[&C" gK}k#.%T3 M.sק?g?7'<;)%h0JAgeU2 6µ eJS$CSz z"S?x0ljE<.<56x>Jn+{Mm6U¯r-̠}kN$4z"'jAX;oeٺtܻmv+@ eb! A͆ly[NnL?,;MFl;/XLEA`v![S4hRZtܽE4W{b][rKOW5Og? L;`DqS[m9Y}31 򼦔M,' Yl+ K6]Չvw,1T7x:hdA-}({\hX=X7@Qa:B+璤s]AaWnLtg~D&-MY*mM⪃F-7 Bep؝vZ::YtMW"gJ. |fDzgWY& &/ (ڕceI(S&OmDLMjFxܳ e-/\ k QamCqf T#CXEɳo/?˗/^yd7<~T^;Rbo)|3qi8{6$(R]>ē1GRWKD_7e Uɘ[v?eFk ,9/ ,kp8`P6 ۫rqmJdJjrݡ~Y1핂C~.}Lhȵ|KMҎ/NJm2!Y-x>P6cAƅc$&a^wܢ*2zSaǹspԵ\F?(^r`jtuڱX;ڔG쪸1{i#h/ui 8󜡾ë-, GyptQ_#:fb }ÁCyD}Pc :ˇl^|{EyfrOy1 bug2~:o RI5@ oA~{A?.Me"tcʯepoP,RG,קM9J#hV<|we}xEO#[DG"?w{(wC6vɔdG.gѩ(c!X5R'!Q) :XlfhP?dW±4ģ~>,x/A7b+-w:O6hLq:{5H˝:Q$%?f9u*F-1{NFĽFٚ;`#Rn1* #{j1 9)IO~$}"Jv$^႙0F _p†Ӹ1M :K@J_X8!FJ`Ln3=إp>Y?bx;Ӏ+$,&}jA:te6~L$&(9td6c E10꜔e@RX`Ӻ0\/rxUbm-}e/9xC*~ϝnȏg2Nr=z"mTK]qQ:h[U0y~rDF~wCx)rϟ0O$  =ws{)6ށA8[rU¾01+ Hㅜ0x.n(ECT ;s]h"ʗ0ƕ5;hi4"5`ؤX~O~?Ɓ,-E 3@ql/=2y9#Co[Ým :đivtQ4ſ۽]0:I{:+ ie{"2f;|}.Z%u]?@%Ϥ[J[(/HMMTnbg H7sy$>x3P,ۛص+ܩ3E UJU!!IytLq?YsޕvwmQ8xN5JFR۲vƹohol@>+80lfYJ{!Hb%^˩pNףZw41Yf5vÇ=Ϙ<63}qoTTUSgi,SQh@e]͊;Ǿcx}=/Z(@s a[J0!d4>r5{`)LgĢ9L"Aस{#L)#j:ey9 -(  n' %9ϝ"9F7SL`NӖ+\8W& b^]fC Na㩵f@beGQ}̋%pz)R~wy# B7t*s(|J]PQDwT p, 8?dWߞ`XN+pxE˹mQE%]y&d&Y(tZWnE0&c(;ZJŹR݁3R>|xYgҥ|\MH+HEv4un`@?V&!ˆ !KҘ?:E̲xx\(as-y @FW-q=Br\"2,naa;:{Y՘hSPw7[);gرIYC"6%rb!ʬ,:|*f&`$4;GytVQ$V>H`zf)[LU - &)>>B[6gTy'Tk].9d(nwmpՙ=z/J>lw-v„lSGaGÏʠ2"x({z ܭUg(u-tB7ECCS9ȎMl#387F5wӒD`6R ނj Y*V95A0\̷d\^>rM$_^ݍƜLO[r>w{0Y]22[`VRs&.l+T=FM<[US-8xibWҐqi)j,ig(8צzw% &hzQ^Dﰇk o՝p7`^P5 o՘b=f;_mFmf#,M#9~Nq鰭b4\ٲ[zإ؎bYd433 q$d5-o)Cz ੠E6lE)cILߒ)a { ; [rO(H[Y{RˮjTP%&Z?2ҙnokܲg+$ۊn4End9't5jV\x'UQ.ϡ`a=vś/@mb_w_&ByŮ/`-fxRl{z%kD!lǛ]KYwƀ6f޽K6fO? 1j'B[;i%TG][$Mol|mfҘ_uD׋7H:1f?V?Vh nHN!jTBn0EVp*d'qo1~cﶣ[<.*ZC9b3ry)[ڔ+H0p&DcƘVE#:<^.3[^*,|X+c5 ˺qQRɐ:bQW M$%dK>F#ȵ=ʭNmfߵtqHT \7PhP&{[Zɥ9O@e*_x=idŜX+;u33I y֡װظ)Za"[7o{Cct9XtAO$9R} LYGMo|ǟV>I7)E D]pѳM-eOb3[f1; @ѯ!O~NcE)۹-0}=_>s['n. %:%AT#AapH҆Nᶖbb+˺u2\r xy֯jJ‚L 'qfЏ$P9##8DxU\aY.>'JfI itUifl~Igt~R Ɔ'ei1!ko#œB̺Hmg<]u] _Bڞ}ZSIEzxRW&x`QIC_>&>huczŞR.seia1PTR|Ԫj<| J{1 , z 5HX\YOrhկwNI}܇yTI͏IG'R7\lswF!,)8)'wH1z'(\%+|C9 5e$ޢU[Ο"fV٫R醒 B[N ,1ga5:^U]KSFMc Eairz:]&R,ЍHy$<5rz˚x[a7Q'4(qpo 7N !9?(L>Qsw ~1b0hIMƟ{+A;oNF.GCL#iZ^uSCܭ{yv'cw% OEii>XO>]P>R֧O!S$R}9[Z EfL5P7뫮LUMR$LvI"SΤn%t=~+ebZ>tBYx2Qd{h|p}˰x/؟,y-^IJz;N}'xB_R/- Jù϶c$_kbK ]9n0?w򉼸qCZ P)?b% UбdBHݣx:V;TOHq]A.^T 3KkRV;Ӈ(1Nj-'y 'BfnͲGjǸOGDf-*q@r @IJ1XHnJ8 $9\lE[z~qs:kBa[$yN5%,V>J_GS}Eib1 ˲m>־\;V'9v柩Հ." \60$aw; B0T}wO C) fdEj{j/yXգ翡pcfrlkI?oOO~s X Q 9=Vf@;Alźʬ'NՑvܓ v*m9@>U bw\+zjATreT%u<͵[xyMğ}xwD?\og-bE7l^`U/Ca2R_hyɱ2=T`{kp}կg yq6,׭~_p/133oaU kK^fJA:;KM7װ}MsK)Q1۲Kye*GHR/vizߩpS# = _\UD0<assW¡,u#78G_bI7q% IlRRŸlL-[Eef?]Q Cyl۝lm{%> m⑿?iN$o cUd%7%ӻx`Es{V&xy_ {ҝM4Pc]6tv4ju]TgR+^v m "Dxzoٕ۲F JVzV=> # rbL '}mR?@A}ANvf֓F*Vjx^h)s &ǯG!L]ץWᵭ4b<5i7ɮ,":<$Rulܡi/aGD^jDP$f=BGgyuӊWRh6CM $il}; 9j,W|=Z-Vk^Rhmu#ir\=U#țod'Y%nFp`c,6lWN˖;?`{gx`+*z۔{rksT!9@'6K%iX`.Ưho=[]&FmZm"= F dQ6<]I<հ=3Zl\X9zaş}זŲD S}nŤyYq|fWv&17i{Ϯze^n0P׽ gDM|=T0x'R-⚪}Ct/5՚ "jS FHJWYmQǴ_>[Xj 37^[gYN 5s%N$^= gnr}Dd1ϜN<ۃM;"pӿRk!K=?/x"@;ה+JkuׯcTEna1)L~ƴ [}MrQ~?=CD gSJjqOB`՝FOFf[?r68bZf&E[^0۵LiY)oaJn*RTV1 ^UMšC:N\ÚU23WY%Y>=;cis_ty{w0̏ >.$oKZYU J\KrU`R]dQ"$,O x4.ډv\sjE{(*YcҜdA8B0\E<(ɥbOAuj4a禸:]Q~yƠzaJEBogâ`llhmͅ^H⚘GoJ6uQB*xR;Z=zE+i- o;{| %+΀vKd.fᵊ'^BPE0dbew?>,RZm',!ʃӥb.xd٥! #icƜ RZ@ᖲVXƘ;f8cHo){:\Pz{~1 5_.nB#(>|Q1t@ںDZYJRVy]Q ";_AU^߂-)i ^R+UaGvۨPKPsetuptools/extension.pyT0 ִKnUOު e ф$JuCCl1m=X׍ZKhұF'tjZeYgh"r4YŜA_@,`׸ջgS]o!)W.ٿ6=/A-xpM7.T8'!ȧ,މ-YV=I]3`NAW p\ng=6bw)s ՁN`8򎁙j)A1DGW}v`B#\nhSC5wLZ9dĆF+z񭽮%W爳a1-͝YB&|EvO{*C11 dJ'IvFSO{ԧ_2vhc ̞>O<_1&&$yajAĔALה3w4j~`e.3a%UcPnfmQ‘,kHZ6(n]p/y>&O#U.bX C,SdȅzJDGmZUl\؇9h+8 PKPOksetuptools/glob.pyXKoFWL%ampI{iḘ%ξHJ#b;;o`0[#<r3l4/X*] -,V\cR$r&Qi6 X / ^_b7#g X# D,JicU)5*I o+f:ͣh>gE1]J@mOI.?m< >-{"8朂U!/&k*PCqUmEJGz 0+ukS$S T\{v٣’`2敘 `= ڏ~!.pGu ,#Už='E֒ TTNl.7%4':<W$49)b3t\;w4<e3)!x'x]obyFAS+,V]ʐi@Ze^W& <, nC L +.(i vͫ F"-9,%(ӻx~]Ԥ1;j;BACτ3ҳ`ӓ"qjŜ,Aˤ38X* j+l&V: @ǾJ.-EE 7p4*ڈTAxӀDm&X-P'NWj{ 4ؘXiF;4i|UNpG4䷝$~bbab*QHlO&=ZgWfjֵFutȜNȁ2Qۗx|9=u+Vf;(^Rtκ.HhSP#IyԎ׹F&&g7:~ŠكJ|͠ Xf=3 UF4~P-EX0mZZ>aBޜ*F:]|X'T: ~nNPKP)όsetuptools/gui-32.exe|TŹ8|6{9I69 l @AѠK4&1ƕ]"$4niK9Wks2lm~/ֶVpЄ/PkԉKL3g7 ޾}ys<3<<3V?3rßq~Ng!{%͙ Kޜ@5}M}7ᇾKz$I^˯ϓ~欬D=noa;d b"A~7콈>܈'\.[b0rߒd\7g4d9 ,&\ K{S8.5'#tOn$BVj|[usꇤ81_/o] :oÅXA/pEjHErgKY-<#4TqopMlZQ`foEMc~ ,Y)GKfSϿKfM04BOh5W:@7 X:L:* \}݊m@;[Ɨqj@R oy@XZ]"e6C , Hݡ`ӚCV, +l.81"4>+s 0cMiQZR`z|Yl%LQo;FSmڏ%)c\G:bݴ $k S8X<&ʂ72YJ */ijzT:x_`O?l69Yҗ[2}O \] {oT`yy!+>kHzqO8Q8"ﮡO5MOYáoP/ͣN 32wEӠCon<:f@mc :L!oA|'7p?t6e(G7!DlfjࡿԪr|7zh4+1MĆDr*9|8#h~˸h lo@j%G"RnEʣG_;Yuf{f ,n&=l6P_y&MQ$z ۮ]hYʸaG[QG=jrt4]Dv0kwV]-4U )m^r;1Z5(|J͟>r(K%|N.+Έ|j"|vPz+dkۥua[ p};=50؜J>"fm%kmxԽq yuzRCZjF6t{\tuz%(1kD%lqӏ ۪txqp[2iQ*ݶʬmմ4th6ˮZP.Y < ɟ5#qitc.59Khksq : t fy/xJzDp(8Y>3gKeʇF\x5M4(yH[0Fe_t? 3 '9?A ;hrh31`6aH)J{)LQ0 w(Q9+;\,D < a=VL/D!z_uc6<'>vL1+`&郇9ɌoNK _mX@f[XMbpi1@kr&[5pssP㱝ԺNIqTNYDS%uVȕWaDTkÈ|>ȗuB{\y!-,.*Z)9JSfQ|kh?k5tuLWub8} RZ'cyZMn*@Z Jcetb)d^r,HjxcHxKSIgKr74Y<,DӉhr+8\B (Mf7z>hO@Pf#D}B A*Pr5P:vVU<= \ Q~2$=OO[su#z.&U yGPT rl]II;xvj~dGj@Hc @N-gncRNtݑXN޻eGByWfGnHZ5T5KyZ7ƓS@W(w H%H1'4.Pz,٪TKJ "@N;:Pu]SL~LZHՂR8'к+.SJi3y<4dp׵K)ufy'bzlbR;VCa0:罪n=v.܅bfE!}҈57㸍hi~Аl, 4Iw6 L qj4ȟӸq-gNŪN%e@1@g( }LbR.me/x4  t! R3F|SW.2XUKYpc;Aw5h~'t0(Zij#~5.@!dBlR\}Z1(HbO8L[m.˿Ҥ4;Xy3AMڤȩ,Oϫ=ܭ|÷cG A!pv;Pa!DXl ڛ{T[2߰H/A>hq% ߇2; f 'UYk8qovLH`B;Ͷu > XW2V_Ya BQ"H4/x#*\^Z܉ύž_a_|NGBl64u#F.$!U@S r*n ._ѥy|)XnP5T\kwk~ 2|L'+%xgoغ/S=Q#H="Ft0'HP ]"|0X&4 82^|@j 85 9nW 4n/M@ C(jt$"`zcٳ='ef#S-t*~e 5jR]#7Piv^^cVpAES٪f짐7ؒ. z1K)oCoغg@|MPCgP7{gg+S? /q{&ĵ_|8!`rBn6fɀ-, D6A?-kӐ_ 6aA`̺n=3NރٻA= ͗QQ]4Jʁ|{GE#߆^+ FRzs<0q&[ab#. #%>Q">3ăo*:9$u7"^wmoX JyrrTryry|XH̱VXNG>ޙo,]a<wiB-\ˏb.-hZG(Is 6opQh2rbT.-5Mϖ/א O41OS"mK1A½4Nǵ\NN{k{Iۘ)[F: nfd %8E(uR*9 A b>ʔGB}`[+ZzX.j'lr8oۧaR4rnDV൵-oy@cV!3@q1F5ŚæpR(tgPqqnk@Dk$£șw=<;  YŒ;H@T((2i|4S@Snwt7xF9 ?ڸ3x95lCS&4HgflɐDcB%jd&n D+@b-&#!Žb(Xfucԇpߙb/y5ƻ=; хwxxK/dDx2֎kV4bNJEدuX"Jdntۯt}n6$)8=av쉱:ISB{=|kfiL!FC!,n:YZ>GoKP[E6~dtWҏRVkgRQj"Ky j[K\=D=A*6#p9FqKX%D&OɌ'&}[ 2r o|̒PM7ȋ_*\q?#"V ͋L4/L-KhSG%-xNN,f*BƬ!b oyPFp[.Rd,MWbFOa/nHtQ4:M̺2р؀k9P.㮶$jp56萧&hbeY5e̖.7#\XcQy 4ǿ$<_mpqi|.lR4y#RM 1C/<{Yk?cz{Ka/d_<P5j2dLأ!Tq]dHMp'CID0|i9qŇ#g5!ֽW0?Vш%h9Kjipu;)r^ZFoMiݐ=. 'NiBr馦BU+mg->qdjxvD ulȴi-!Qz9@k1B*'p|رFɭ֊~6um%On1'KuBըIUV𳶡~fرF@^a>bpi *,mbOfR)018ET%8Ya] а +Ȓ''-8 vIV qP!ܺb * »{, %P2 z qlq zwoPJF|SefL$~-6oefi|#zMcjZ~()=R%@?=f1p?|$=J߁<- *Vn7BOC4h }`lYчBp턹R$1jDI+tyvYK|4K9QԠD?ZDqȧܖ$+E\d>IwpՃ.{^7]uLwN șjt/tatUęH>-g%zlZ3m[El\q\WzXZnG)4`4bJpIt7JN6FգhsMgDTb&z7 tߓ<^c`X)#@\C$frC\˥+uV;p,,,>҇.Anipt" +j9,5+GȨa'+l)t/EUK7,fzzi,  N,;EuGm>ƀ#uD^,': ͘gSK]Oˤ<Q[yރaONN7 u qK"I6Cmh֝e'`<#( bP 7vA6]tnh'+F m8׍c%08si*r.};tqZOx?9dF:93[3h-3} mlgzfB#ik/Q!xcb.#ć.:- PL庛#1ʧ"`(ETU]xC_FGq@OI.Rx [4HutB} at+Yf1)uX<@>zYVCaۥmܝJ,>;뭦ӝJ"xT 23,+Ź2u ۀKn,%+%bGya\PMhfYtۄ;J3[.,2͕ h(47qkͥz1o>f߶x0Ma=oГf˂d{8~m~]9l*mWs#no/bUݮg|k|Y>K5sWk5YJ}`Ogz]00Qtr&NL23u77z$XXwD-<)o1G>dFB[,*Nu>1cjq' nFAAM]Q#>AW`K{&3dЃ%PɖCQQ*Z"e[vK ױpW3e=Pwqn}l7U\qB.nky 4(Ͱh-q\ݠ +<K:r8m.&*_@9!Q9ERhYb; P0X_ n)x4%ͪGBBdqT"c1| _Oy1q2AZݭѧҐj(IC#7qr^ p$}K3sb"_m9c#2Ą/tvkG8dl,yMCeCJ+*ץp+9 >YTO_9< ۼtXje YRnY]' , 9mIn^kk$LAb墄imݑihcGО8yPaG{/͸~7d 6kO%8>T=}Z\omfrII,*iE&E-(Sޅ62Uw?w <&ݩL/]xJ_m\XjyVl}pt[ɪwU Hԫ`ztVd]a0Њ#hMr]>0\+@L2 [Vg`.0ve]ǓhJwOKZv c6-X%[qWԊإUF;y韐}j;j{i={mjx&SoE~xF}_h<=/|Xte #Q-C_S*C!:*Q=T衕8k꾐4k[>8ذe-/3ctɺMcBŬ,d(D)d:Bc!ef&G[l5n=B!56?b2|2ANm= XY@)Eȋ H" 'e)V6 v"O"v"ubƧsaP,ʻ<'p؍RD a!D)50+=v _e6{#5Hڬ!Fb*Iݧ?WSwP"u:t-uR I-ހP`E%q<*uBY('$ǷJ+ZwuϬںZbK\7h:τք\1wth!bW?@}hQ24>4F!L*͵'Ee6hnE'Y8G}n4Qw[ JVbaJʑ.+?mO8Kf=8FE?<݉["f:|w(8[2dinanǐ2͇h~̻hr$jŭH2CDQg˺3W%?㩡m vgBU Bt"HT_%޼1Y9.')*$ǴaE}kp8򮴢0HAE8y}A~z&1}:RK+CkڪKC9C)( &]weGdsp,Pcꂹe\PH7qjhm p]w5ޠW\[Qt@|=|8JI 3eHf9) `yt ]nh9Kr P83#Frzk}cgF}Qo Ph~tI@E|PP9>Z/kUSl} 4v::D 8]a,b :Yl]"V52{5B$ЯqwV5Pr XyPQ;C/}Fc%0hSە8<,4t?qDbúntS3I.#>@_3Uh'xw;𑘣cH':ypWLzS Ϧ9(w3oZmnc3TuVNO}i;8?U+>}nTʬ&)_B lJͤԔN Ƴ\ǻMU-ye''OyQ~:F2&v LOqA ΂1xB6$w`N#Q*ۿaMe 3(mo9#TMdDq"v,Y 퍥+ eF{RNz骯uP_!ޕ;2fΒ7Z_#ކᥥ?N^Xd]psi(~KJpvO06Ԩ6 Zuh6F;M\ZrH+Cw*sjAv7/ ͎ tcPOdˠŬF7C# g`S2.rH?0"͂?VF ".2!ŝ6$i3vRBMRamgNyrVd щ;8މ֥N1n3kwui0]=h!ttMF!AʀI/O%.^ܷZ>ѹxvFi|NMjy*7'HXj8As[؁12C۸ڣ-뮍N%gkG=CҮFlq%2 uj[3Iq*صJ[>z&) 0yԏޒ.uNb#B"ۚ1 Ƌ[l UkE DHPܭkgr;Iܶbvb ZRNL|eWZ)|ޖ3!hFu?BAe@#:m-sAk`'Z4o9FUeqԤ=Ps?@a/BCZE>M #t_EDvϋt]IP Rz/0YqOa:@ yWmCY{}$sg*BN(–$gS„h^UAJtϐ5\)zx<1~]^Myix#L1 6PBiZA]ܧJ%"Ѐ'laqQ Rt)71PtC]f"`IPGCz 6d06t[ُ1 nuBP,LT1^_ěRV]J< 8Z1S䘖shPWh9as\}>Ǡv>(9(H%Oe׃EXA}ÊQEdrIE?;1YpsMyT'~g)D?x+vG .{&}ϗvTAA>R=B]Ji`WH%.R"()C=RR~}3Ta-PוxkdWll@%8.V~CM ,L6*6 S'in MQ/cV1 (c qY_E3w#v`^jytH-'p@ndI8}]ߴgdns mG?>.H#Oc.V]tQ2؛:C39c`&q jkG3kx-2Zuf1X-pIOb- 1ǐdY'ǚ{_פR($.wJSj"R\~5q1/^ [یΔ K>>⏐|OFJkds'?;y&KH O'Qh!}i!$L}j;_|<ϑ7ir?d9-xT݇A]$]vGGe$oVsT &ufex (Am͡B+o!jYyc̋ 4Vcb ˫blm@\2 dcHV #t z1W[`YB}@3Ԕȹ-7h?~`.IFp^; D0vA}6]}xLjj8ą3rD]EuN=xCW&Tnx7ypzt QGJW33<G+W"DxᑯLP)A?5T~gC fޞʼisOhPgGDHK"=~t㹞/c9ScH!2zhP#na۰A?ú Ny:鴾k桷3yW7+zߍqnZR3NE"/4]y'*0SH^C9~rSqGU0llbUQckd6^&u[rofi7':fPьYx4htIF=`_G[v/<7[^;zc ;m8BHj*7 ޛ ^+fhlxK 1L5:7peD?{{]t 錞J,ۡ8avj9:[QWat\Wr/Sm^n Ó ^GCWts )‹@ƿx_Nϝ~ `\ tYG2mv)] [A׍ؤ0;'uj.| ("R$ $!3V`^Ӑ J&7.e0 2R2ryу^q ߅g-%)+W ˳y{GR~Z ф<3@V:nWѤ-)Sk]LȠEALd/:w!]R=/Avd8察Dbݙ3[SBvWtl1"yHԥtrԈfs?XE}!IR ?Rx t,Um)p>4M`z: Of߬w+WFo`@1P<Ÿ tIJE/73[_`"YnkMǁ"*QwԀYDnӢ'*/BpUYeiyӕU0Q6 -L(%> sL2'9HGBK] UYkB\)|HE ]ʸc2 0^-EMf'/P–nJG'Tk,z]Fx /»JV⩌N?q ^Oxolk?W PkXL:{55и`3j4˃K0|bWA)N^ ~ 1+h|܈#@}7p~ƭ!,Qxx$ڤg"yO4uf{P-`?Z P,O9Yx20\Z_T Auv)Xh ( %=6;q P<*n)|PG/!#6ȎZrk\јk u!YZAGrOG ږR$Wy-P+EB;*h>KFxs [ۊ*n WԻjmw½o½y7@K J[F*2/"a֤W G9}#0N(oȓLP w;&LnT(U Ccؕ y٠[MIlp~uE_bYd1t1겨F"7Ύu'$c*J%2I&hN@^_sv :E74pbr,8f/|OPڭj8Dgd?(D7&g53vVΡ/q3*Әq=+z';ZxE5rRIb\lg=D6礼]o`OzUU{l'?*%G?EiM_¦~K( 7Z \IF!=_%} RcP 0;q ^b|9m.S.^Z߰(HgfF`ٔCϜ<,B97L/̼O( 1G īP!' b Ԇ$e#Pj^P%gLNd\ec 7V Y8\Zʔ_,%eq >Ik غd3 ]4gAb(](3k{)y栦36`zsf{J"G6zx.T^9Jb̃i7[-f6yÂ'РDC{a Äw@H8 r:oAKR>k2 ])/W2)l> 5G3xulzX) <Y*KG1c>bgO\z}nô> . jXܛmDBR|UB6@qA܉IPW5PWD$h%+d VQmYo'ϔ06rlಜжZqM38*pTE֠͆ V]ҴzlKha~bM`00~џcނ ^Ges(k(F]nq{]q8>?K0k.i/pE1d6A@[FړNrluf}W-:B~Aۃ bsT^¢8=+0*t?8TMnw?ř((q6zkwJK-S\@X#%ʇu7W@| M{9NώTA_؃nq"9_@R ؝#FK ڶ{H&m`9G4<WƜSrucDhL6kL_A*LИ[Y4'q$&A .^#MoŽq}NgI4f\o!ɣM,2eˢ~\t\ХDSЄdю#RJ^+HyUv1CkȘ}sK¯#eL˴݅> v&OA$gN_U7>y;C[Gؖ ]B.39^Xm|(ߺҤ0@?no@y~wՎ&vdGIGt59Rr)esuhScQH& n:A˝!x;{l-W U+TV?sw2#^>-Pǃ?s?lrR L(ﻀcG/L70mAC &Eu(;-;*d:z%ܙz Wb 4+|lt D@\Њ\;G@C3*փL i F$rAˡZұ/-.#3ݕNAzQ?{fKe~ (ͅOM.`\UWr{^55XOK;6PerbI6/BkZu$u ȿ\gQ1|\ _(&_lK6OӶn\0wO&ﺻ1gGC"Х;<߁3 OL'wSyT s0䁼j XY+f8DmG?* ,x^EBC0j9lRӼ߰СG. ?;Odyo콉pӉ^fjbo o|[{/};_ػsqG;{>}}GٻCIfQt;{W{/M%~et5{+{}W%H+{--aut{Kt{o콙%P؋ 4c,5Oi[E|gcDc1$FAA*0pTtp e8Fͧ&M_mm'i 'D`M`% ἵ>3̠Xk}upߵ?g^{-7r_#NgQ|<yD.<>#^&{ e,{>XD43T9yV>UZ&-|Qp}Jg|d'R/| %? Q96_ "|Z B芡~^<reOQ:?A2P{/Wh獀[? 5Hg!S'E dQK(sTg.54+*`\忟 b|T~J ԥ_z+r>gjgB" D|$gUďF@yBj\޾ & _r{^F?>ߑ_/ԄƁ' h)pU!"9'ȸYШ,2nZh;A&$ɹq922{cwL?꬗5"gur+K Ht <`' #A:1B}*?hӫَebu2,}՜j}&MG7˝)WT.(F=ֶPgҮv*GĨFrwa8UL K.ե!rgLr?ƥ/.%s6ɝr4 \İYy@=< {'Zi+6ppp;Np^ps+a^0^Jv]( xqbLk/w"޸n><ږ:!j¾bxZ:R_o\}}R F(<hKUL=S@פ/kM3W_AL ~1wŃH}5َ <EVl|M$u$Fn8ZpUW\e`6 G&UXyolE2Ѫ%w7Ӧ ,JНkF A{jfCϽ@M}Fh" (JYৈ)66Hr(Qxf cp)'EȵJXS|84z٢[\]s[ttNAxd9ëj8Φy+!Nnꠄ0;s~5 U)xwƌ(/)/"7 =C6Hw=LEwKeY*}%d}h0Qc\+=Q)FK2TA,D>3АƯoxƀ- CMYf6biMk\xM!ԉ"$ &{)}]*BZ_"3樥h \%Rf[O `vD)z5.Mpn)z6jݳ7߻E–+n,{Pg?-]..jq|_OWqAjo= .=X}*Wҵ^n^␒O++Snjr7f %Ox|s8*{E 2\(7udMB;?[e΃0XkZƒ88Nre_fr'ߠ <͎n炝']4OCICxrvX1myfׅĆ[NPg osr;xjW%:[찪J8 jm.xR2P=ۘ0) ПUt oDx ہ@& 4΅nNf^^t"+[†W}z~e/mӔ_kP=} Ð&rB5iOP ƋXWx_yǯ>3$2'yG <x+_n:_md?+ͱ,mdżp@u;pO w˹nC.OKI YB1.#PqУ,#ιi2 x $BQHe='pO8 c Cc7, %F p\6c;$LH 44d'UqkE@CB丂wrՠ{фh5~kęNJb 3X 9@u,Ltp뜉X}~y.``޲BFpGTC$ÃMlxWv!Z8Nu0g0j 芠qĝth7Sxo,55n+9.Jxg'}ag;}y|OEIOU*n.\r|?`PsPҶB9b;q6v"ɜJJ;%NmrpNPʁ~v;Ei%Ba5ȴf u?wq!ݔwuU8EƍWBocx~wpHI|bNSmW:.0c'CSȁ Xp+GԮ0\ȽJA+2hMMvZ7pQi$ hhb4E?Z5H ܶM6/h-Q]W:kqɏ:D*ub z$ We '7\vXSJ)ͪ0޳.<&0P,:lR*)]W( k=&1lt"\`2\<2^ o:luU՚d MB:ȞH'5vRqQ(Ngs2܅f9L"LhdIl]QOή3)s;b0qh^x$xvl5 PˤL[e[|eVEq6~kJd' Yt5V&k|9._,;/&  QxUݴzÈ t%C6'nkhm,`=PF0P=|EݬE ,iC<#aY) XtߪH4FVWY+5[!`*CQpԶr79%z2,HE* F7>A3ǢAM 4-ş!w/Im.Ďo}LBQv#wgϸ2;-v\_ .29=9.S% ̤Rlo f^N,}<}ƟF< =b%"Ky((bjro좈BA|:re; ڟy,ㄷf:9Y#R&b r3x^} ҍfa޾zvjP9DӀvhҲ*NOѝAUB>>Sqº]NTsK]߰$$;[JYHsYsN*1'Ւ$jOYdJҟ0^4(1C{](K_7Ѕ8xBPM:JV\iMig}{/OU S67j l:mhai ^K>H0lŻ1n`E{x%z.b:(٬B= tY7FNrT(J;s]s(aʏ WЧ+ gyB:6Psf! 4ߪ3ӟsXT4|kfMv{33:r &{2zJ|PF'X#nRa˧s\0W~ Tߊ[0yE)M%rܠ?}D|% @5H( 55ObZ85QvҦS3k犭C4o"TnoESVnWufY{ *2؆ Јy;2bkFOj U 4a&='& J9jH֜jʗQVy;eJ߼q0u#YѓLZ6B<꽐-*!Rx׏+҇My[?W**=  r t"މ2${oX:GQD%[x4nG5mƖ7Vp•bѤߩXt$~.6&Ssk60,.#8GG9 Fm$("nZP%| Ev@K8BBlad 9nr[H󛋮!uYDNLtD 52ZR~SGp&Ng}SMU쓎!GM#0q.M칏L0gߥ,zˮ#"ډK5W$sN噂VTB⛢0ACiwO4ͣS0NSCap=Y,lazFͷaif!oMzڎ9ϔ`緐SMWnTwж *c 3lYXހ cl}jڻDB4T=U ܳO:{*l6ew[%"Lbg *B|^ 7k iW7`66ٛVS},}nHTaRƑJbm>,2Bj؂^ tkp}iaTsJҚz&6ф=gIq=8M]Kf WI\O8!EIb} pFQ(LG9FL~! +[0 FfI%!W'Bnж%pojD,PVN'ILw]xC6,#}5\T ?oRs<5g0Cf `iG`1c\BwF([yju({=U}Mm=[ƆϵY[wQ/*Wt*8/"Tl"jI"egёq/ZusKhdTu-m(Ȏ  ^YC~7!짼I?ζ2zދ`Of/Fio9dђlwt,> ?RV +~yJ?" o=Clt'iOﲯɯKS.pa +cfWnZt755Kw{kwl629WgL-O 'n05 &d6X1F^K?P7sE*:&mHۿ>86O5/,<+\` F *ﻍ" _ARZ6sALZb5#Nm7)8[87Û雒!vt 7/ů]㜌a'(`1jTz?+hje 8 j MM5⃛l| 68{45c/i4'Hcĝ +Cls<5?VV˹]IG 97kU[2\ּvkR4&T:Y$=v?4r1"LC~??J;|S{>T-Efey3'}DIA'yuiJDRiw@zEo|eǶ0ȏ Hp'*QuLbTC@jUЮl[ZU\TLt C+Ÿ"i T6>biZ)pVg*$Io,1W81nCOU&.I-0 ?H9.OTlp0ĻTӅg}ÚZ8 t% +/x}?;O8X2wcV6:Nu'OvhKOxnBfp&2p6;J<{zMvZ;N'@W~EQs3y;\,l!H@jrR_s*%d _K6/s'8En> &j .-o"ii7ʡjPrߴAE:E۬,pdwfn;mbK[gY'<E9QN(QzF2  BPBOHLz9=C6G TDd%@sGsA FB0gIRVLt6o- v0{o%D.EVP!|)tvyr˕%<ބ2'2Q C&ORhB-BSt}EdH6s·&hm* Br(ͦBc"n"luX sqK6]7z@+/{HvXmgk7%G%< zc^V >(":gmwVB5sY@ ԌjS2pU^V8`Q NyN7=0>"QG޽,Xf,K " t8`MNY*d' }'ɊbDV鎗\KgkmVjީI3U!yÚv>HLGIXtEwFՍt|V8&%w#8,mG s!m.ԣvg9^@5ۘP>,%U}l.˂p4$nTVUX1*^&NEمsΰ |30.Q1w,nxdRVe3¹ 'H9^fݩ&7|r ^m+|z*Ȫb,sji}}^Y2Su!hf7d'iJ+wk<^whufe!- Y'v8'coYn9L)=C~E(l+ՐB%O|&>u"QI!6ZWPWn(X98Ѿrףnd)>0~`^i>2>YC \%=F\ϒ%5Nuxy߮AѹόZ2vRQ-g#mkpv`Y8 SEpad7!ܱ&pMٿ*%aCq(?&Halu#5iv=QNIp-5hwf`s< QL}I gZ)}9*K?)d~;fO*_Mu 1HB&Grɫ㗫j*1 fhiD՞YН"ucRA֞ U뽂Ė"˵v5Eyg.<o(~S]whTBA!FPH#(n$7a(}]r2p쐅nBUUrSq7+fW _Yo[}5=-8  0(y xu&} O&`:@  `-IN|0 `J;C^p07HX`P (8>( c Kp#|d`30ˁ^cqX:L꬛X]^YUW`/+ѕB٭V?&+וa><?K)z̛²RȱV:N)'! !teR<{Q9;|F(nD)a*<3V303R#Ϸ(劋#cjE0,*Fc0fYg^b6@%u35k07O1FG읒DʑʠհțF36b 'MMyjԴ̸虷Ϻ#λbgϙ{w\|~^1$ON1.H[x}Lӗf,^o+VZƲ6/Zȶ~{mظi?Ru5bˊJYc_2wA"o50njqEjE7fY99,ڹRĪevÄA.[$#+pW&e)iscbg&,EyLBWbai8,0$ d⢵v}l[ͳBVKv)kcI oUpevZJt|I yc 3bK ]4y2.r¢ Zx.ӕBV4VQi[d).zd 7(Y!n-u8?t YD-)`뭐;Vns)Y0h)rθ#~+#mJ UZڹ<*H`JqRD M>2n]ܒg%R`uJ;o2l! ]Vgu-0+%N VK9}:n,*oͿN9o(x'ID7{W}4dbg|`|}] Ey~q6n*F q][kB>.R| kav ‘Tȡ"0;BTÝ+*7Z~O?dke%Rbcܸ!Z8X˗|O0C 鍎`1* X]Vert=IBYf1`}^gZ Wlc鏠\)iJhFKIp*å𬔞{vóJz~;w={~9xQY XkjjQ [XoaQ6nX UMPîKJz Q'?7Mg7}Z=d7 ? ?솫,;F;P>20:;kIӇwȣ=O<~3y^|{_ͫ}wط7[p=vğN:}潳Ö>>ϟ|z/x:םv+~}3DC3<7.!:D%$o?>lc2ݑfBKM d"<1qfm=/n 33[U s/WLhetE'a~uh{-1_|0H0[H"򴬐WH~RORIŴc< 0K6be3XBfվd x3x@"K\+'~fØ G:MILfqi]R-"8Aр Zi2Z Z ~K/\߽I֒l$+U,-+cx@xˀ 01̳O\;.J{Nr" Gaj`x_ L?<׃{Nz10s c>0O _hDÐtxL5 nJ20EIOxFw?_|?2(3K^^:t{Xsg 3yf^?(5mY=h:=NJn ܟ?vos}W>/!˹=tzYyW37[ku򏝭,-Z֚Lw̒Y{q֌&c"˽'lKZf(*]Wl+$LLhLVae2M j*犭EŖ+1n|-ʳgX tY-W; 8;eFhҪo'8S1mrYI $\TT Y$9'q?q',5Xʼ M ѻ˼x5)ۡiBsqS[2'ːVXrYf.vݗ2F![`0iVK99`#@c%ČUf(_=yvk  @x30mRa±eM dYɘ rY<|NSg߉K"կՅ@L mM-_Tfɗa4 8{7HRi~FyQ)dXq`3S d_,"E6S.ʷ&ZLc<3ke];/~_ XYto@"7vBxAmö^V^/_=q2X%߲"*8'IR8t#P̯K;Vy1z~%}>irC?QK'X(eR uh iv`E?yү6K8cIbe3}Y Mb2D-vY>u Y{T$1.6. RRd034K t;$PZV$]{}N2q^RaxwM 8v?=8E5TH.uODQ@4b!(Oa* #EW#嫕F$OHI{n,3$7[?G*XǍLĶ]5XpRS w(G_J%NJJ!-mmsO?Tޟv >tCos!P( t\z57o")uHݪgp n|k7n0~k{n< ϭ:{jJx:fǶ:ٖOZ0̝[i=d)j1>}1WB_20IT)עõW0f? .*p#𥁬ůE-] .4Q 3N!pVw)N? . Ml~iuY.qDˆJzC?s?4K;k3~ҘDZZ@Ŭ.,)4 72D.AOxox@ɩϛXejPKP&setuptools/gui-64.exe{xT0~&3Ln7`P40P琉Ɗ"V49&d;ֶWk*&rp T}#@p=֞I&y>2g}]{mOm%$I63MIZ%>]3Hz;}˸Uq3_ZP}w?*g?{Hs^W3?sC;9;;c/龫6$|l›[s-|ZyW˃ |Iq4MvC"S eK҇2_ĵOES$Ɏ?RSZ`$ J\4)yX$Gb<ɓ{kB_,xA>AO߿ lC wa͝]L&fdFkp򎼮vG5򰩖2WO`&ie sٽ*_Wd]Xuln3bUj fl3; 5]M٪KtA!ۅ^ރUPhpRE!w*e*[dTlT6 &RTPf7%anQ@ewC~5rQ5+Uv<Ԫ YU.mM>sv#ԪR#!7` /~OthjvsB,qHr}qCm`(,]@Aqݮ-٪Z[fSsToKEf"XR ْDӹW."{'%Tb{_Yo*kQY_f=!1{]pdjL7u5DA@=ʎ*ᥒ.ЪBs5S eЄQ)ȇW_vO^/"bsl|]}}vY3Vޖ1}U?J"KS%R&) 7s xVyI1Mv>a&մYc,RM0W| OC w@Gt #$*&g:$)r ,'4 <Qv6[U,i-ğOk `.{ ,T}I'P # w52CeAw λ!nOTwQ텉jGڐ3-Fة@9\~#,KG^˦n0 omz,*P M#8>RUurbC͢Z3r lʷ@A9IHf([}B!@ [DY)Df$HPe{RXňNaaƁkLfk4 $P1|UPHb'v:@)FY*Tn7 El3Qۗ]57zջRW5 65[6HH1)SGX5JW=DV$)la2+yZ*Y7f㰺/Tn |1\\uh 5VP.Rͦ&vAMw0[Y~"(\xHq-S{L8m m cK5VeTHSfƨ! LA?mk-iv1m8yl7C K6CV9 3k_"%Ͻb"l#_h|cJxOpiYLtXeb " g:F|VRd2-˾ ~jP }yfXayQnWmϕfvB(IFu"AE8kx${ 8"k|rlnejz `Cp6"30r";U 4:!AVN5b-RF>kB~$iPٽr@%ۋ pٳ{ [11뉔yHL[5QjmZTc}j4,w;%! J"587x^ǡ q2f/١60 "jUs;!Vmn Ɯ=D-ջb Tgw/ |C]ګ5]>6BDssTc5ɱ 52tI86Te{FCZ=/S+6J^eQy) @`ހ>CFR P,5y"#jo8}B>Gm7"МTyk-w$ }a@>7wn~GōՖF;D*Qi5v)k WzxI;wp.bUlտ+x2jsU!`]X4Z* 00nȁr 8ݰ:<<8u_;\oU1"؍?T:GY喢3) SYa ֧ir88z\KXV56atp=mJsoY q,VKb(KkڵրQC W~qZw_Wx~Y1zM__<2 c1CD*LenR=;`s*JҴ \; sUH y0.L!H9w@"f=v[ho ˃dy%ق]0ֽ;hm(o QYqSuKZB8ОMJ}"ZKL^ < >24HsUzi2r6 ynth|SeIpާiгc3 Tq-#=AzM^MmpлIRr/h3Xa{@$=I" ڠ3ߘa9;pIp#S  m̩U~̋IRhhCxvG,1*T8`õ{QE; 3vB NX˞:[K:Y~q4fS#V8Dߦzha&A,zz'?jrTNaDZ*@pHhlk?-NaP25Yס|s!WbKߏI..R;rM1AЋ^_Cg' cc#ӵ*I%i! OwAµ(TWFY)6d2 /5 P#;2 YPk@>.~FqJPw{w5W:a7'ځ*ڠtvmV1r\ V:^X`ƻÊޓB9<0$;sՆ mTZs뛔<``;Pr`,' ljWQhl{&vmBw}I:4pء"BRKٲolTiPPӨ5Fm6vh煺 jÁxXpB]z-K̵є$A`d .jJq Q5;-h9* 9>̅P<6&R įFtVE0E,db)X/(q`+w &B ADH1%%ےʪƴsP٣AO0% #.Bz/6#{<24uuE6f,eGlЙ:`Ĺuy 5&#*әا}%ڈd6+al`<m,r$D5BډBf\Hivs1;Q(x_E8{pd]̽tE?)0bdk24}7]';P3A/נIx6$Vf ``"8FQ&!0$xm/p/ A>i:'4*_/!bi! SfΆ7PtKzJj#+;Di#_}QоsP񬋿"1E< GO."c{´V\ ۛ5V&Is_>C?wT]۪Zg_X"Vg` 5/9XpТ8g_hrטM6*pT`_/&iYt;_}8S4NO@g]Y|sF'7'Ü_Ο1GaB*$YiW)_l\4.6ũAk>h&þE?'Y'{ $?Ax&!, E$,lglnQR^*W>ءOם4@C\N4oaib:wA4aS:T?m奴1 'Ȯhd0QBfD*̺>67vy͢ gBr،O+~$Wy=Vz{*ӔKJZ:ۣM Gbٛ@8PjmVFjira⃹*Y|%^!#JhXȡ? Vջ[C"f,L,Rwqazy02qn{ԓa¶hQV"3l%[l blDel.vcb>@\3RrN/b[ S H'y  *o"V]g2M :sA< ȁUR\c\Zj+by]+Btk,Ŵkٱ,8p/kcꢨ}u[ͼ0¸l5:ޟR4S|TeQ-+`,&-+ O]$ZfA9-4Q=W$y7a[]'l8]G&NKڃR<}`.,{{~~ ý?~Q,x ; g@њ| I*|V jc-.v!M*#n3Mf$xlYF zX 4-uE+wJ֪b3l=d),0ޅcs2GkxC]XğjR] 4tIJ5G/IC帶Ww{c3>+ ǧ4L9 ]E(kѐ͊\~%7u:Z4Xm.{ #a|*Ǭ ۤW[Hz*#;Ij8nfMwz1 :⁋X"io"\"h8fkB =O.+Rp(r2Xm)C)947j=v6[9\!6$%Rxklj*/2πU#}{Ot0,:hjLa{Ct֑C*v+i5lۀ<9סDժu0.zDA]}% K䕥=-XG@@ QJz͏oxg-q|U]+ɏ+7֥bhpZ1p߲mFr0 п)#h=r{F.(z\*Zuw2_ߪcq028"Ge-\ hhf;?:pU"PH* } M~w@p.ݨdi~,`KiC(u熯Lit>4 )rE>*3JLu _V*WK--{vwRG{7gPVӳԡT/KGKpw:a Unzuk. >k0vFO2bmv*kFla\VD*oʤ}&$5Y |Uӕ8EqJ|%l(PԢ, 뎥*.E &SjyGj _G$ׄE -c2Q\vWm .HEuSOЏ +9G"A\`O!tϒkfd^LC kE|@xRcQW4"|t^wCz[/6uM"p!|uh֯@;" 7Ys@Hȿ>ExnnS)|Ċ/e‚ T];7yqČq%?6&6]8lPj_2ֆ.ʂ<Qc LeYq60}0ϐq3MSl 6Fl5aDK|k >vYi~{|>a hSwl]tɪE5+V"'\џA.h+UZ.Fs EE7;9z%@r'ڱ:同OwiD5'B\~&mm>%| PC)dN0{3@ˡ#JND,d@hRJ9(q"4 {wLlɪ3D.M %𛯍ߋ![ Q9^U4U,ShM=EQ),Y3A0vRmlO@7+|)l#:s\8B: oǽ%3m(>B`ml v) J+KjqLSi*N( ?R?S0 bq'hdBp%ȡM5eh[ysM-/X_+,ʓyDH4OvF}@ ~PN3FHVw 0J+UUgf |[ L#S/|d.+Fds&ĒJ cYuTtzOkU3UG ,,Y*o1K.Z2I_+հG^QoX/nXujdFqXfqV,&c^يnAEiMRM/TbVȏTg{zjkZk\eV[f{$pJ.աXڏ Xogfl~K.}Uu~Q!MxB"d'琔YAt T-kw1n҉eZ26 e4bGt澅Rtoůo$_V>QSxeu+ĮZhWI\GeGA8Yׅ2Q¼Y(W{Daej9]z dG DkG|ooۍ*DFOUJ ~G0 Rէo5 {"F_ #nSr[7'҇Rz>')Kyy|d)_Ʒq8^?3EDs=^IE۾.4wqNל[Q}}LhlA0aG`61䘆sOm"~PǦK55לT'ƗA֭E[Mj (º{K 8 P|xPWE|@O 3w"M30oM^_(׭wӮQxI7j1tVNkt87`p}'@! [{m~}W4uS GrlEZzs`E֘!ieײ.%r[/j6AUn%@} a.U+&Y3 وŞ$ou /eA/avc_SpSS<`EԘ.ݘg@DfyeT8/fs[!ߌAjSoWFSX OiQ#8G^S7I{G CJz2&9ǝgK<_)/tffzk( B3%ײk:2~ƙ]-P^D~hURӥL)0#E"q;Qed%i.J)78yb#Axa'M$ M*@ _D&l/O[A>CݘwVqq_|ͪ>`7Sׁ ]tVNJKe%1''G@}%NI{{ȴujL/-o$:k„X"I8mts<JxY_MRwԘ5kv,B3_(9 ^L"c*>]KcY٧lŊcKxI>2Q\ vȡ#bAqJZ%?dZj-M)xdBHi=KQhk"_X+](IUkC gkDQ@t™8"68rcʫfԮG1Iw͋ŸbL[x]$L k/ƁE.2: >kG>54GHU䕍6s_ܣE1;?Ug+8dяi VTkVr=>*;]ۇ (0 pA7$qz6!eAmYX}}s w;_^qP]h=ꯍm -x;>JK ﳫHDDv )*5~TFxuKqj~eRzxm04ඞb% ǢĞbK Y0'X2Φ{ jDAG-t>Oy7C0Í5a1a4l,y9kIrD~і)uA˽1 `(fmxsymx[ lmx1jxNP#ox˃4GL(OC1hC9[T;SA&1~QEb|4=-{mfãmqg!nu[8LYg'MQPm| *MPow/a|5'[9腲SugM7$oo Y}cP7vF *,J \Ȃ[P䕶xXuӞfiO^(_dZվ L#ZbC0VĆ)mRLwa0n`PZ%VPezq YB(+He &lcVܮSapvN=߿dœ/XM j/_iyjygWcp(x9Zy2|Z6_Oidcv5XG] 9r(L8g@\&&z,B&QL%65BIʒPǞgmc W}Ա蒆~T /^~,^; ۚH=g*~r?FC؞ bd``A ?Qj~;.?KÂ}h؉*pY0kyVj|ٲF7QqY薕"X%CMC&k RKoB|j ~o"H3?qbrIօ@??.ߙ8#fw&\:ݧ17d_(PIwbЁȵy{\sbР%?7V>)΋Hy]w?$JT^^5|(zA~L O#9)G(Zgr:0]ӷw{E.ymGfjL;ۨ UAſtQ~mlO+ppC$mO:acE)IEMf$,2̿ӦxI> FrCO5/7$]EwQjqhϡYp:Ux꫋𬞞Fл!O~hc[\ k"v 7D^9+HP+٧nI")z+dM J+>h28Z{KGcL- gx |lv'·nO6=& NvTOQ>a :o#`:^4E.æZ_t P~*&_R <``6NQ8}fs5p:_ (lsxi ݯgߓ[62n; VȚtĹB}?4#4q4m<>ҦIg,z*q4$1W4mxC OȡU^ע*y`ί=5&# ?% cۧBvYCY5iT2F 5 MUtlZ:r$()_|6aR4&a^,]/" ,ZZ~hGcp@W?[xjY;>_XޤZa$yhiB={1u6Bfz-g/x x\f?_b7=ŸgeJExЀ< A\a`նhaH֦fƒ)[ӤFKKto'S))O^K׏h*oN70D~T7f3.&}LM6H[ C5lw,g Q=5[Ԧx@ic5]cKfjV ro@ u7,f,[Gc`6Fo5E1hGg5Ѩfn7L=ӕɒ*=a8wkdUT^!'jx}8nEzʠAVF9`-*ay~q}P pf жOف76e%lԆrr 6~e:CKBF~8>K^)n;kgm}#|6?Fc3xc}X=!⵪r1[қ ǯ>hx-˶5xa YP Ȟ7QQr(}ٱx67|j0??7vS,m cax`x_ `FljXT @>%6Ae}CEEO+C|`W q3om:;|wW^~NLۄWb;D“"M T{J+/A'k:o}~9V3nIa!>3Z#|Z@~c7|DaF7NaDe.JAh/a+m mf(z+1?tpCif6ǮSS60d=\@0f:f'Xv56De3&kx3i$(ϓ@G h4LBMzk Ԭ0;iyR,7s'P7tV~SܝH XxzQi* W:'}23r٤a\,Eo:E'A 4+ceYA@YJ&R|OڔBʓEOW/[J_vlx]m7b:Lg-B2['dOsTɡ,l(ѷWlFcP"dF(*D:sr)(1HnAKJjʡE)(h$.RcdPe)nO5)ƒeRÃA ~lŸٱ^]`ƀugf\/W6.BLmrt)'pE Va\DvdfOpU'%*./88B] wO5}4ȲP 8~t~Ht(N('Kܾ4p%ސꫝwdJGJ6z7UBCLe#^DB} S1ɘ7m$FcJR+8FE>wlNȴl\X~H$fl5*F1 &Xm 굸qZc5Drx \s/"+B0}4Tl#rZP?c/Ρ c_kA =7ixUOWDn9ەF7T[zƩzf0lRcINE ,gMzaR jx f̓X]}E[hg5S-#& ~f B$:hQ~1Z~GN5$z6zFַK9cc . Son8^nn/ Q"awߞ KX~|:7C33\/juX.1'1k7mމL3D_U5ٺuEMuW}V6Iz8؃0<߃\+8,Zn `;!b=1' r ޽DD)w斉P ؂~'d!h cyZ' ZA>oy=߈< ~u40c}G3o|āubH~xv`H!ji199.dΧM! ?m،7h">zGLJړ/S <3*Hf^.]y*#IQ@֕8?2Eh7e+Rf5 6QkJ@_ 8ߝ89THR}P@]Љ6D/nԯ?tzDE&ny`RU&8MO\RCwٶ kr>joiҩ3eFm2=Z*y2|S|Jw\c`1ٴ#w3bb9f*кUJa@ B7\ֆpߴѣ8:,^hUvVdJCSo+P57C#.zẢpi_;?ߌ}s^ɲhjݧ"b"@6eɭj?oYxc l;(Ӟ;5 IfwSF-|Ggs@+_oT%y~tu)DKٞ`4.x$|үFՋ)nY#>&')Khǻe:4٬]etG.{-\a9 uw~h5֐ߠoT K3.7@lTTЍ5D*R]^$nk=MeV?c3.Rh C4/GTr6dYY觇_]v8 ΈʁսhQd۰JBŏ 71kNkk)nw&F1Y[YoAU}ә*'L[wxae'zE4>r/DsZ}nSt Aۍ;8F úUcss19*7+6ܗyŌSx-5LBLm'+xab`l0M8%l,VG|,O=^AI$~jӌmaiXCG_tE<ǵˡ7@ ݨ4Ol]zȀ2{] ߨY&z:z&A~\w +e~v<ȢEDi0ϟ xYT6Ů0Kbb}UoW"mC PV w80'<9~tto6in"FEe DdNTiSO%*=b?iEE0|@hĉܛ9k'W'Okx9kRA|ŵv5p(|~3`GvLGq+Df-#`ՐsD7WK@ ӱ ѩa# dN*Af(JoZ}7+ʅVy 9ϟS4ߨQ̱G% ʍA`3r0*^9q._$/3[03H_%|5Pͱ@u>d_*\}[ lMMjDS&&l 2S8K _Ώ?{ 5C (`8WISi/PEb~`.IOCvb8Ǹۍq.!r0 Ӝg j&x~LobSi7)ǿ$="[D@@_!?E`A?@!,aX̫=u5F0>[7{q؅"_(ȧKW";DSx7;E_0x"m";zF-xP,tYƣ|1^a:|X|s|+)x"t>i#Yִj9]f}vဘ"&br )bpcAJ[1DJ3 b:D̋"8r""bDLAzQ!f㍾ kŎfȁBg5Pp{#kwNݮS꤀YO=T 4` $nz{a)eKkZAA`LkcPtxAdA7<0ڔhgaJ2f@r\*VJW{"qxǢΊ~agvvz5V1J%4pxX$kO! %>7e~[jyπmN {} Zw͋5<4ǒw . 2Ŗ_($Y>ogEzV\8_U/L)ڕ 9nWKؔ`si`>| 2[ DQ rИ!>cYܢʭ l֓V2.naPtgn1c0:ewOy$b!smZP4J64fn?rzw=)4yO1r|d8/6*^D{@4`b?μQq!e9vȁCsv*Tl=az*ubTF|KgkDgݭLDOJE@KRds?/6D=}괘n:U{o'2PWUQ|v-ytbls>z$g%|~p~|[UUukM:hNĄ$6*d"BW1qAʌI,E;/q\wM6IrIHDs6 B&7yM^NU:uYvmA_ 5̻<ރy z_O;6nLIpnKC+ xo{l?2Vֳ;aS}{뙨kv\c6:T~mvM0sq1uMOn鞖ӨG94g3hpӖ7B4hy0 [/y07;)!==avJp >Ead"?*ejwWYKbub), QR`]mCd =$?NBK*{sCb 'G"Y}Tw+e'ׇxVO<$#5q9&mŁgv87`\va|'_ߢS? ݻ 4S穰ƞMjr&P-f#ؙxmv7'7{.Ps օ2 PfYX2 '2/0B$Dut&ze()0n! D%b1a\aZSk{/OWScot$+Ak?|tYaٟE'?zY[1?ʇpaQ^t߉9\S͛UJ8&$dBejQNtZ\ƃԥ-]&|]4 0fSd292BjD\NAIؒMةq{J_o+'t3ek\FGn?f@a۶S[SbۥseR.c(/u:{7?Ϡ5ŶT$a:h:,Iuؾ]"e꥝w niזHu37󈶝b/W2첵٭J:)X1z| Tpԙ)3H.47Pfcw[ {7Vb^GHe ^cc?Q5Ws?>B'']>Eq"h01 DyA؛g]?Ln@,oȽ 2ÞBYu=/E,1r.Ul>\#|'0Hd@7Q ]^ ݠlӹ,E(lN<x`P~o)AGbv< _*%i'OX5q (]"́dO=^e:8_9=Lg>* 11DSs OINxXw8D3akl-Y4;m(Z7^|HvՇNvSx,]Ls/RHsi)ɏׄΤ4ZzƊ$&L,+l8D9$)鼞E3,PRNpBAM{)[gX@f6^ԣx<ѭ]aNDќ@ `PbHB:i} ']NPQ^)vOiK- (`1Ir?L &[pSce&,MH??G Ux(44.b9L Nfm4>QKԳ; 5*ݢə|LdRƉ'bdв{NQ},>N3TUVX}r[z3+i X/[LĐS:請`cM/-HTr](dAnʼn@QT"ܻ{ʠ)0.*@Mτ]fӄܑsᲞ΅Z;PPa<wFV٥(U#>  YB <*plhE%.$BzSl/&\Sur2 h+~m%L66喌,o+Qi>Kc Y: q,KX(ŔOV΋!mk*{7'~Shg63mzPoK]tʼn :Sv;Fz kQRrCJ v5=.>̗],$Nzޏ{9[](.xi$'b@EMN"n,N`Y'Ԕr;} e0ЙvL8rvus5AQux,>cqW>(lxp_H]W΃4`#Աv1Ful{{+ v'# ŽO7l\\?~΃GBAWl92+3[CL+|+C1A7pL2@}N@^7xFݶk~"TO XS |ZPUXӪXg^T@7C>wһsW?\/fm˦i\[\}DHEqvLEQa י"Z(%LF9ub@D?VGCa gp6KYtX^ɋXR4[3a69(2 q;v9&Zo0E<մQomóݠ39_}=`W'RnN'5/F+^Ii ~dTEG"Yͫ/z X5 ٲvV۫;6c)շ.pC uv"jDngwvgp4<1mdU[ QHW,;ǤoqL &6drmQP'm˨߄uDgc54Dǚ͈˿@n\ҹ'n3;-ѪV+2nc=QѩpWW.B5ZRюEᥝs /WBw Di=A. 0649{Cr~z1 'M0]y/- #W6*ڶ<C4oqt_7wȡ6)mpJ R~9_<Yyg] SؐQ_ޣL"aa6LuFt(CHRO \p]Bj̸~Kn)ka+HM)N]j7(QEtN ଣv`qP iŦE?8Pી—Ql!c'*j 4RS*E]!23վܳknסexZ-1NalrZ-/6k}Y#@v:V|a\Gsz =EYBcRc!^{yO~ &2iTs:Ff^R 3SQ:\e;䩒F̯9s%6! ]\JlFT m~O{&,?DY\!xn )]XGsb@ItTO9u?rlK!~* ba+ i^ʂ~sPU =r2:¨2k~rK'tŨL))e;:ݞ@ KiomMvwZR >M}[w/U@tSЕLA=sP^"4z˻)kcVz" :T!W3&&:dy4Fz*)ߤ;PF>kA wܜA0g{9{KCgчNT,NvzZt6'5JoǩKp?]H3)4A҃I,4D<9y/V7Kŕ%Gw}Cr%T}843^^Ei rZg]O@n]ie04;D=EUxTU ZL~$X[鴰@u`)*T|S4ɪ##c-֞=^?YkeZ'†lܶw)A@1L5rvt%76 ]5 qZTS ppkmP'^W,`إl:ƨ!K_RIb>Ku֥ld2+ nc{ԯzUsfx,+L%_vx1xGV՗ô7_gSyK#6U?SCǕfh Ϫ1.uEI N!?6lҋ³~ǢS~ty@>>ij.?(t.Go(ɖ3^DhÝ6pv6FcLTcSn3mԙ6nl;^}x˴vN2wRprASLj 1.MMԻض24o4!gϏƎԬ\$ Fø⒴XV"l^ <x [ 1dU⤉3u2mp=P>t 055x~>1I Ka/OV}[!x9ʰ8MM]ʻY-~ZSrLvTx׹r(c3}VU8ZiA<-K@(i;%U۟x's&Rh.|]up[A& (A795#DBN̦J5LS%S:،(xb+ݩqͦtt];Vd5ÿGqϬqԗupF:)l5)؎ Y+x]ZrqDHqg I"g0/:_GATI`&\\c;;ד ]=`QJZQ Q'^:SJ9u `V ߕGK`[[w|߂w~XR;D}TK93@3zF8vW}XxE‘~KuݢTWVBl#mxՏ/HMb9 j)ZJɗ-N3Suݑ iJJhE%HK ֕o+Nc SRVKjHfg45;%%k?׮m8+i3OD'н.ھ4-3ݒ}4iVi׉ˇh_49?wH;JŒܗ A '5Q۠#;O sJ_r׆t+~^:]}Pʩ ȅhl^3e{{w=3@޸l f'ӪOq:1NG(|r~68kgTBEFȷ/b_!gI[T%v (N4cER8-lj  $ 6*LLգ^C!z@]gOtչ 3:#S8Fq^%BSW$9VmȨ'6;6{+"+!҈Jbɗp#h\(9U ٍ;CvPM/Fɯ/yT<^ΧD?v.ҭr$׎!9?ݓm3 C$?o%GiMc쐚Qi_ \J-$p &4WSu-\;ă&~ڠ WM 8zڶ F*($q2ң$`|!PE (]9hee@\Y_ˠRl(]0mw߭$]iD?"D ,fzr懨6/\!gWz|39b5ToSBi*.uֺa&4~SfcMyZ\IZ5(S.^.]*yv0M DcBm(wԅ~Lɹ՛KJWFy'Y鹠tbU?Ε4__FWf՟/ ewgLɽ褺(κQ67FqV\D` J9jM5v !Pgr[i( a WA;/GmRT0\X՛L.J4\f}HmeU,Zj1Cz#f>;.e;p&QQMwB]TRnw Yxl 19jy/ "L/94G@DHË^B6,wa-dkrC:( LQa`-WFu^;;ZgI-@\Un/[H3p0͗G3%|3B>h`#7=)"(Î7BӃ|;5O< JpL)o3m%)|@бOʹ]K@%!n.`/G;z/b7! et |1PJ}Hy-PzK{9hݳ*šsOSesǨD\4->?  YsT1M=hAW>!.S/5^?]?4{6cNY>مoK{$(ĎշDQ|yLkO`iEt۵W |eꔶgڎ]t]1L| /01JΙrex&?q+ b)6EwP o!PS:O2n|9!cqԇ_ݭf$+w+L9waaSMBeK/_V6 QͲp`S:p& ( J6~M]x}kꤜt{MU7܅0={W:8f yS轓V:5֛Lo e'JƴΏ~^@\!6ς<פjP=EYXX5.˩66aiGZQ g0% ]A&>zCiE܇Ӥ`1VQߠq@rf.[2ZjwρYS?b9lDP974YNGJʫ%üs`v*ZsksM]k !jj|z Hd4P_Fwp"DŲ{r< X|k\J 2V];Q_\*5}(Aefu.o]ޥϬrKPV%s`lpp- ,]vIfѸB)i]u@}EoTT6s)aa0'}irI_GLj4O:9UW%"h:+޸A'=zIrjXX *-J…HkV9 jֈ_翨˙يvJLa{%l:3ՇT"陏MF$IG,)Lw$k$,>Cv2gϙq )){U`uX;gPW00s%,`S괦Ma_;ΐqq$ʰa[1Ɉ:TBhI4Qo7/и$Ƣ,°b|\3ROp YQj1%-` ﱙ|\SNGlJBDc۬zll`ÀsSmTC|x!2j)tI [nCꈘ"? &Hݚľ@_ap)C/°Zm˯c'̅eahJc\Qt:p`zFH^'^kU'uߤw6t{d/KYxI}HԵ⡧ݕ&jV#i4]tSS̴1ߝ/azQ $B _vJ(7#0B1c. p; Edކi`66rʥ,"0y ')yA׈"&)i 0ض>x> Isyf>p><ЊWI8֛i$ E_IjXٮD0?.`׍GPAEɤnbvwE7 Kq9juUFpe D=f6Fw&qjꅡnTnWƨwbW}J;o]&Of`uws_h <= rmIzԛ骾|ߛ IX(H/ wu[y'{ͬr*9HE]uAu$Au81Xjڨ+n8QT/A5hA/oHI}b$fq(jH&eòaY,rX94m!YY-"](tқjo Vl\g}>XW2 ;Ӷ[[qnN PCOun,T-Ni2Mz E(Y*;}Jڳ@BUlwKyxɼW0];gȤ2e|!!Gޑ 2?vn"fY#=SijwIOw#w-D9wdh ]0G/>4&ҘˬaQ>|>je3|̊/;LkCcCeSLtnS>zp39q9~}r8Wpp M}y~N0{9\n氙Ï9O $+IJ"Ky)$Kˋ, r@ fy r_f)WJ<__ Ͱ"d$F"R>| kr욎Paf 'Z>### קlb΋0_ʆbyK 孂Bb00_ojh{lP# ƨX9W>}0p`WIzî6#F=f7ʚ66~IΌ&2LugM993fʻ_~ǝw.,)){nټ =JAj-Zd)=~ƟO,Jy,g!$7HJr2MYi.oH36(xeB)4uIAe^U gW@R*(*X-je} S(-a.Tz0˅BIJKVS0R W@`GÌP˃18:!Lw %Jϼe -E|aJK҂{i\ (y e8얅/LAUT PֹHTe@Ŗ‚2 j q^X1Kްek,by!SgAR啂O,z:ʲ JYٱܣܴkWsJ,ނB ȶSר.,5\VB ]Q^#4TSC;2)XNGhx ,% )Ҋ.mU E?z5i@ 7(ǡw$TtP ?*s]"BZ,<'OPNhUKy@B EHsC`G** :F ]S"M 'x|Jq)En X C'5xʡ%+y^ o1|o+ '`V A0uÒWQYQ,XfҦE g#F a"@|nył!_% 1gx)*}]bož.bzY5L_^3pmm- Z]faW[gU pv6YUXᒒ!]^6\7,w.~!i~_h!_Ƶ6-M_D?/렀/KQ.Ne5?n7]C#>x׮{ŗ/?ظi[[иmMwٻo-ޡG|[?gUߜj8}?t%^E w/@{Q.׸yU~YgABQEE#%;G SO~3К C#V LhzSGJq"WX9GS+ya6aZ!`|Cr WT@ӹWM/}A! IH$FC7\}uǭB!$9BCh~/ّ}@8n(Ϡ%MXT֪jST-!qȀى } 񩄴0ޫ!OyY$i$MOhbjFGekµ$ܧMkIkTIOLcÉitWc#ýqd@ KƷj0{ StGk#{E^Eؾ&Dy(+kYWx j,RG,3@߀v:^9ḅ4Z9:,Uh EFDK a $-GIDcH_mbl0x#óY[7bّD,B"pC,^$okBKG]>Pv#6׻I $? OРI4%>5F-wj(g j^k'7ֈ0ѐGa Zǿv |Wy+|vJ0%kܭE995>[#m$-CL@?EQ@GFbEkI&$%#- AiMͫ4B4b,o`=@ޒ ˦bH+g5 2|UWco&R' GqJȆ[;[;ⰺ2S^k }!{{i61B{yz\+-ohYG'n Il>![=N$jɳ]f33¸F H__VSKLCTń_#ϗ7#9 5@݁@CBYNj}$C2@s= bxemF%'W8Мz-ҍt ,]5p/k8IU܏'Gc C,IXl ?o;k%S0襄LogIh7k՘\ __Mt,1Xb$$>ƒ1xȿ7W/;=5c5Eߠ8i0 tn7iTC3 }H^VcA-5PڍՒT捏B?z̚>Fpj56D{Yi$h 4b:%b4GK /9k 1 3zMns7zlLcaRQp)S_ hXFfxދ< ߝ<|VDŽwDț&Pʍ#w dx_8 Ed}mMǷwHz1鳝c?+'+n0+&+מڧ%7.߬4q:k 41ǡq.4aZ6VC4"CJHaVf<[Up΄:΍&q[xNzG^K0L{|' rX?+sѭQ^BS =^ 1Dݢͬtzfsx|PxlȵXh +*ޛa+4<>^A!M*| X FS灒?K͎Br-K6V!E#x3>7T9 -"x%xfBvMe=ā6msB!Rt5J}#g'u( v:PwzfpK:ʋr <3G@I Fw. Y=ĘEVgyK |YxSWwn= R^jnl¹_ r(ӭR觕D@aYzʏء&Pbe Ɵ${|@Zwz j=I,wnZPPn;yhþ;J+`ݙDU"/&I**HBV3;!Ye}PeȈp/1S!0x |`igvv?BCzfdji1GRL \Wi;v|UG&O~L)<^_~]jw)0y`ۿg+V=&O0>8DTf8QD8BM<]3w ~=;=۳y=Y<[yeA,㸆e.~_';Pin<%w.: suj{1K+_̿g/4wy/\~~8ϼವڗTS7>s_vA;o7B~l?9%P-[]ÿwZbpQK]ߚg;kE_`[:[RqUJ oy?b>#yfW|nWø=N {q{ uܞ%ܞvnnﯦwpzn+}0[fWeifR7nRvU)U ܞje=-6]"Tz0Fn]:9s8C+¡Cze?㰕9{3 W!왐W k~0h:KS" & ^}R־>1aP#5o*6 pr`X_we1B/kEs{+,J~kDf|^}V<08s -:*kc _-6s( f1!W N[t lo3؇~l> e 3%\|24z ĵc `a3–߳B fND p`v\4 к0{Ccy3P`F𐀧\< B/cKP/N\c G^&d+,T+,UwZ{5V?1zX?Øa>Dh0#Zs>`8z&cÛoٷlK (Q>qCpw(KGp3 nFnFGK˿PKP)όsetuptools/gui.exe|TŹ8|6{9I69 l @AѠK4&1ƕ]"$4niK9Wks2lm~/ֶVpЄ/PkԉKL3g7 ޾}ys<3<<3V?3rßq~Ng!{%͙ Kޜ@5}M}7ᇾKz$I^˯ϓ~欬D=noa;d b"A~7콈>܈'\.[b0rߒd\7g4d9 ,&\ K{S8.5'#tOn$BVj|[usꇤ81_/o] :oÅXA/pEjHErgKY-<#4TqopMlZQ`foEMc~ ,Y)GKfSϿKfM04BOh5W:@7 X:L:* \}݊m@;[Ɨqj@R oy@XZ]"e6C , Hݡ`ӚCV, +l.81"4>+s 0cMiQZR`z|Yl%LQo;FSmڏ%)c\G:bݴ $k S8X<&ʂ72YJ */ijzT:x_`O?l69Yҗ[2}O \] {oT`yy!+>kHzqO8Q8"ﮡO5MOYáoP/ͣN 32wEӠCon<:f@mc :L!oA|'7p?t6e(G7!DlfjࡿԪr|7zh4+1MĆDr*9|8#h~˸h lo@j%G"RnEʣG_;Yuf{f ,n&=l6P_y&MQ$z ۮ]hYʸaG[QG=jrt4]Dv0kwV]-4U )m^r;1Z5(|J͟>r(K%|N.+Έ|j"|vPz+dkۥua[ p};=50؜J>"fm%kmxԽq yuzRCZjF6t{\tuz%(1kD%lqӏ ۪txqp[2iQ*ݶʬmմ4th6ˮZP.Y < ɟ5#qitc.59Khksq : t fy/xJzDp(8Y>3gKeʇF\x5M4(yH[0Fe_t? 3 '9?A ;hrh31`6aH)J{)LQ0 w(Q9+;\,D < a=VL/D!z_uc6<'>vL1+`&郇9ɌoNK _mX@f[XMbpi1@kr&[5pssP㱝ԺNIqTNYDS%uVȕWaDTkÈ|>ȗuB{\y!-,.*Z)9JSfQ|kh?k5tuLWub8} RZ'cyZMn*@Z Jcetb)d^r,HjxcHxKSIgKr74Y<,DӉhr+8\B (Mf7z>hO@Pf#D}B A*Pr5P:vVU<= \ Q~2$=OO[su#z.&U yGPT rl]II;xvj~dGj@Hc @N-gncRNtݑXN޻eGByWfGnHZ5T5KyZ7ƓS@W(w H%H1'4.Pz,٪TKJ "@N;:Pu]SL~LZHՂR8'к+.SJi3y<4dp׵K)ufy'bzlbR;VCa0:罪n=v.܅bfE!}҈57㸍hi~Аl, 4Iw6 L qj4ȟӸq-gNŪN%e@1@g( }LbR.me/x4  t! R3F|SW.2XUKYpc;Aw5h~'t0(Zij#~5.@!dBlR\}Z1(HbO8L[m.˿Ҥ4;Xy3AMڤȩ,Oϫ=ܭ|÷cG A!pv;Pa!DXl ڛ{T[2߰H/A>hq% ߇2; f 'UYk8qovLH`B;Ͷu > XW2V_Ya BQ"H4/x#*\^Z܉ύž_a_|NGBl64u#F.$!U@S r*n ._ѥy|)XnP5T\kwk~ 2|L'+%xgoغ/S=Q#H="Ft0'HP ]"|0X&4 82^|@j 85 9nW 4n/M@ C(jt$"`zcٳ='ef#S-t*~e 5jR]#7Piv^^cVpAES٪f짐7ؒ. z1K)oCoغg@|MPCgP7{gg+S? /q{&ĵ_|8!`rBn6fɀ-, D6A?-kӐ_ 6aA`̺n=3NރٻA= ͗QQ]4Jʁ|{GE#߆^+ FRzs<0q&[ab#. #%>Q">3ăo*:9$u7"^wmoX JyrrTryry|XH̱VXNG>ޙo,]a<wiB-\ˏb.-hZG(Is 6opQh2rbT.-5Mϖ/א O41OS"mK1A½4Nǵ\NN{k{Iۘ)[F: nfd %8E(uR*9 A b>ʔGB}`[+ZzX.j'lr8oۧaR4rnDV൵-oy@cV!3@q1F5ŚæpR(tgPqqnk@Dk$£șw=<;  YŒ;H@T((2i|4S@Snwt7xF9 ?ڸ3x95lCS&4HgflɐDcB%jd&n D+@b-&#!Žb(Xfucԇpߙb/y5ƻ=; хwxxK/dDx2֎kV4bNJEدuX"Jdntۯt}n6$)8=av쉱:ISB{=|kfiL!FC!,n:YZ>GoKP[E6~dtWҏRVkgRQj"Ky j[K\=D=A*6#p9FqKX%D&OɌ'&}[ 2r o|̒PM7ȋ_*\q?#"V ͋L4/L-KhSG%-xNN,f*BƬ!b oyPFp[.Rd,MWbFOa/nHtQ4:M̺2р؀k9P.㮶$jp56萧&hbeY5e̖.7#\XcQy 4ǿ$<_mpqi|.lR4y#RM 1C/<{Yk?cz{Ka/d_<P5j2dLأ!Tq]dHMp'CID0|i9qŇ#g5!ֽW0?Vш%h9Kjipu;)r^ZFoMiݐ=. 'NiBr馦BU+mg->qdjxvD ulȴi-!Qz9@k1B*'p|رFɭ֊~6um%On1'KuBըIUV𳶡~fرF@^a>bpi *,mbOfR)018ET%8Ya] а +Ȓ''-8 vIV qP!ܺb * »{, %P2 z qlq zwoPJF|SefL$~-6oefi|#zMcjZ~()=R%@?=f1p?|$=J߁<- *Vn7BOC4h }`lYчBp턹R$1jDI+tyvYK|4K9QԠD?ZDqȧܖ$+E\d>IwpՃ.{^7]uLwN șjt/tatUęH>-g%zlZ3m[El\q\WzXZnG)4`4bJpIt7JN6FգhsMgDTb&z7 tߓ<^c`X)#@\C$frC\˥+uV;p,,,>҇.Anipt" +j9,5+GȨa'+l)t/EUK7,fzzi,  N,;EuGm>ƀ#uD^,': ͘gSK]Oˤ<Q[yރaONN7 u qK"I6Cmh֝e'`<#( bP 7vA6]tnh'+F m8׍c%08si*r.};tqZOx?9dF:93[3h-3} mlgzfB#ik/Q!xcb.#ć.:- PL庛#1ʧ"`(ETU]xC_FGq@OI.Rx [4HutB} at+Yf1)uX<@>zYVCaۥmܝJ,>;뭦ӝJ"xT 23,+Ź2u ۀKn,%+%bGya\PMhfYtۄ;J3[.,2͕ h(47qkͥz1o>f߶x0Ma=oГf˂d{8~m~]9l*mWs#no/bUݮg|k|Y>K5sWk5YJ}`Ogz]00Qtr&NL23u77z$XXwD-<)o1G>dFB[,*Nu>1cjq' nFAAM]Q#>AW`K{&3dЃ%PɖCQQ*Z"e[vK ױpW3e=Pwqn}l7U\qB.nky 4(Ͱh-q\ݠ +<K:r8m.&*_@9!Q9ERhYb; P0X_ n)x4%ͪGBBdqT"c1| _Oy1q2AZݭѧҐj(IC#7qr^ p$}K3sb"_m9c#2Ą/tvkG8dl,yMCeCJ+*ץp+9 >YTO_9< ۼtXje YRnY]' , 9mIn^kk$LAb墄imݑihcGО8yPaG{/͸~7d 6kO%8>T=}Z\omfrII,*iE&E-(Sޅ62Uw?w <&ݩL/]xJ_m\XjyVl}pt[ɪwU Hԫ`ztVd]a0Њ#hMr]>0\+@L2 [Vg`.0ve]ǓhJwOKZv c6-X%[qWԊإUF;y韐}j;j{i={mjx&SoE~xF}_h<=/|Xte #Q-C_S*C!:*Q=T衕8k꾐4k[>8ذe-/3ctɺMcBŬ,d(D)d:Bc!ef&G[l5n=B!56?b2|2ANm= XY@)Eȋ H" 'e)V6 v"O"v"ubƧsaP,ʻ<'p؍RD a!D)50+=v _e6{#5Hڬ!Fb*Iݧ?WSwP"u:t-uR I-ހP`E%q<*uBY('$ǷJ+ZwuϬںZbK\7h:τք\1wth!bW?@}hQ24>4F!L*͵'Ee6hnE'Y8G}n4Qw[ JVbaJʑ.+?mO8Kf=8FE?<݉["f:|w(8[2dinanǐ2͇h~̻hr$jŭH2CDQg˺3W%?㩡m vgBU Bt"HT_%޼1Y9.')*$ǴaE}kp8򮴢0HAE8y}A~z&1}:RK+CkڪKC9C)( &]weGdsp,Pcꂹe\PH7qjhm p]w5ޠW\[Qt@|=|8JI 3eHf9) `yt ]nh9Kr P83#Frzk}cgF}Qo Ph~tI@E|PP9>Z/kUSl} 4v::D 8]a,b :Yl]"V52{5B$ЯqwV5Pr XyPQ;C/}Fc%0hSە8<,4t?qDbúntS3I.#>@_3Uh'xw;𑘣cH':ypWLzS Ϧ9(w3oZmnc3TuVNO}i;8?U+>}nTʬ&)_B lJͤԔN Ƴ\ǻMU-ye''OyQ~:F2&v LOqA ΂1xB6$w`N#Q*ۿaMe 3(mo9#TMdDq"v,Y 퍥+ eF{RNz骯uP_!ޕ;2fΒ7Z_#ކᥥ?N^Xd]psi(~KJpvO06Ԩ6 Zuh6F;M\ZrH+Cw*sjAv7/ ͎ tcPOdˠŬF7C# g`S2.rH?0"͂?VF ".2!ŝ6$i3vRBMRamgNyrVd щ;8މ֥N1n3kwui0]=h!ttMF!AʀI/O%.^ܷZ>ѹxvFi|NMjy*7'HXj8As[؁12C۸ڣ-뮍N%gkG=CҮFlq%2 uj[3Iq*صJ[>z&) 0yԏޒ.uNb#B"ۚ1 Ƌ[l UkE DHPܭkgr;Iܶbvb ZRNL|eWZ)|ޖ3!hFu?BAe@#:m-sAk`'Z4o9FUeqԤ=Ps?@a/BCZE>M #t_EDvϋt]IP Rz/0YqOa:@ yWmCY{}$sg*BN(–$gS„h^UAJtϐ5\)zx<1~]^Myix#L1 6PBiZA]ܧJ%"Ѐ'laqQ Rt)71PtC]f"`IPGCz 6d06t[ُ1 nuBP,LT1^_ěRV]J< 8Z1S䘖shPWh9as\}>Ǡv>(9(H%Oe׃EXA}ÊQEdrIE?;1YpsMyT'~g)D?x+vG .{&}ϗvTAA>R=B]Ji`WH%.R"()C=RR~}3Ta-PוxkdWll@%8.V~CM ,L6*6 S'in MQ/cV1 (c qY_E3w#v`^jytH-'p@ndI8}]ߴgdns mG?>.H#Oc.V]tQ2؛:C39c`&q jkG3kx-2Zuf1X-pIOb- 1ǐdY'ǚ{_פR($.wJSj"R\~5q1/^ [یΔ K>>⏐|OFJkds'?;y&KH O'Qh!}i!$L}j;_|<ϑ7ir?d9-xT݇A]$]vGGe$oVsT &ufex (Am͡B+o!jYyc̋ 4Vcb ˫blm@\2 dcHV #t z1W[`YB}@3Ԕȹ-7h?~`.IFp^; D0vA}6]}xLjj8ą3rD]EuN=xCW&Tnx7ypzt QGJW33<G+W"DxᑯLP)A?5T~gC fޞʼisOhPgGDHK"=~t㹞/c9ScH!2zhP#na۰A?ú Ny:鴾k桷3yW7+zߍqnZR3NE"/4]y'*0SH^C9~rSqGU0llbUQckd6^&u[rofi7':fPьYx4htIF=`_G[v/<7[^;zc ;m8BHj*7 ޛ ^+fhlxK 1L5:7peD?{{]t 錞J,ۡ8avj9:[QWat\Wr/Sm^n Ó ^GCWts )‹@ƿx_Nϝ~ `\ tYG2mv)] [A׍ؤ0;'uj.| ("R$ $!3V`^Ӑ J&7.e0 2R2ryу^q ߅g-%)+W ˳y{GR~Z ф<3@V:nWѤ-)Sk]LȠEALd/:w!]R=/Avd8察Dbݙ3[SBvWtl1"yHԥtrԈfs?XE}!IR ?Rx t,Um)p>4M`z: Of߬w+WFo`@1P<Ÿ tIJE/73[_`"YnkMǁ"*QwԀYDnӢ'*/BpUYeiyӕU0Q6 -L(%> sL2'9HGBK] UYkB\)|HE ]ʸc2 0^-EMf'/P–nJG'Tk,z]Fx /»JV⩌N?q ^Oxolk?W PkXL:{55и`3j4˃K0|bWA)N^ ~ 1+h|܈#@}7p~ƭ!,Qxx$ڤg"yO4uf{P-`?Z P,O9Yx20\Z_T Auv)Xh ( %=6;q P<*n)|PG/!#6ȎZrk\јk u!YZAGrOG ږR$Wy-P+EB;*h>KFxs [ۊ*n WԻjmw½o½y7@K J[F*2/"a֤W G9}#0N(oȓLP w;&LnT(U Ccؕ y٠[MIlp~uE_bYd1t1겨F"7Ύu'$c*J%2I&hN@^_sv :E74pbr,8f/|OPڭj8Dgd?(D7&g53vVΡ/q3*Әq=+z';ZxE5rRIb\lg=D6礼]o`OzUU{l'?*%G?EiM_¦~K( 7Z \IF!=_%} RcP 0;q ^b|9m.S.^Z߰(HgfF`ٔCϜ<,B97L/̼O( 1G īP!' b Ԇ$e#Pj^P%gLNd\ec 7V Y8\Zʔ_,%eq >Ik غd3 ]4gAb(](3k{)y栦36`zsf{J"G6zx.T^9Jb̃i7[-f6yÂ'РDC{a Äw@H8 r:oAKR>k2 ])/W2)l> 5G3xulzX) <Y*KG1c>bgO\z}nô> . jXܛmDBR|UB6@qA܉IPW5PWD$h%+d VQmYo'ϔ06rlಜжZqM38*pTE֠͆ V]ҴzlKha~bM`00~џcނ ^Ges(k(F]nq{]q8>?K0k.i/pE1d6A@[FړNrluf}W-:B~Aۃ bsT^¢8=+0*t?8TMnw?ř((q6zkwJK-S\@X#%ʇu7W@| M{9NώTA_؃nq"9_@R ؝#FK ڶ{H&m`9G4<WƜSrucDhL6kL_A*LИ[Y4'q$&A .^#MoŽq}NgI4f\o!ɣM,2eˢ~\t\ХDSЄdю#RJ^+HyUv1CkȘ}sK¯#eL˴݅> v&OA$gN_U7>y;C[Gؖ ]B.39^Xm|(ߺҤ0@?no@y~wՎ&vdGIGt59Rr)esuhScQH& n:A˝!x;{l-W U+TV?sw2#^>-Pǃ?s?lrR L(ﻀcG/L70mAC &Eu(;-;*d:z%ܙz Wb 4+|lt D@\Њ\;G@C3*փL i F$rAˡZұ/-.#3ݕNAzQ?{fKe~ (ͅOM.`\UWr{^55XOK;6PerbI6/BkZu$u ȿ\gQ1|\ _(&_lK6OӶn\0wO&ﺻ1gGC"Х;<߁3 OL'wSyT s0䁼j XY+f8DmG?* ,x^EBC0j9lRӼ߰СG. ?;Odyo콉pӉ^fjbo o|[{/};_ػsqG;{>}}GٻCIfQt;{W{/M%~et5{+{}W%H+{--aut{Kt{o콙%P؋ 4c,5Oi[E|gcDc1$FAA*0pTtp e8Fͧ&M_mm'i 'D`M`% ἵ>3̠Xk}upߵ?g^{-7r_#NgQ|<yD.<>#^&{ e,{>XD43T9yV>UZ&-|Qp}Jg|d'R/| %? Q96_ "|Z B芡~^<reOQ:?A2P{/Wh獀[? 5Hg!S'E dQK(sTg.54+*`\忟 b|T~J ԥ_z+r>gjgB" D|$gUďF@yBj\޾ & _r{^F?>ߑ_/ԄƁ' h)pU!"9'ȸYШ,2nZh;A&$ɹq922{cwL?꬗5"gur+K Ht <`' #A:1B}*?hӫَebu2,}՜j}&MG7˝)WT.(F=ֶPgҮv*GĨFrwa8UL K.ե!rgLr?ƥ/.%s6ɝr4 \İYy@=< {'Zi+6ppp;Np^ps+a^0^Jv]( xqbLk/w"޸n><ږ:!j¾bxZ:R_o\}}R F(<hKUL=S@פ/kM3W_AL ~1wŃH}5َ <EVl|M$u$Fn8ZpUW\e`6 G&UXyolE2Ѫ%w7Ӧ ,JНkF A{jfCϽ@M}Fh" (JYৈ)66Hr(Qxf cp)'EȵJXS|84z٢[\]s[ttNAxd9ëj8Φy+!Nnꠄ0;s~5 U)xwƌ(/)/"7 =C6Hw=LEwKeY*}%d}h0Qc\+=Q)FK2TA,D>3АƯoxƀ- CMYf6biMk\xM!ԉ"$ &{)}]*BZ_"3樥h \%Rf[O `vD)z5.Mpn)z6jݳ7߻E–+n,{Pg?-]..jq|_OWqAjo= .=X}*Wҵ^n^␒O++Snjr7f %Ox|s8*{E 2\(7udMB;?[e΃0XkZƒ88Nre_fr'ߠ <͎n炝']4OCICxrvX1myfׅĆ[NPg osr;xjW%:[찪J8 jm.xR2P=ۘ0) ПUt oDx ہ@& 4΅nNf^^t"+[†W}z~e/mӔ_kP=} Ð&rB5iOP ƋXWx_yǯ>3$2'yG <x+_n:_md?+ͱ,mdżp@u;pO w˹nC.OKI YB1.#PqУ,#ιi2 x $BQHe='pO8 c Cc7, %F p\6c;$LH 44d'UqkE@CB丂wrՠ{фh5~kęNJb 3X 9@u,Ltp뜉X}~y.``޲BFpGTC$ÃMlxWv!Z8Nu0g0j 芠qĝth7Sxo,55n+9.Jxg'}ag;}y|OEIOU*n.\r|?`PsPҶB9b;q6v"ɜJJ;%NmrpNPʁ~v;Ei%Ba5ȴf u?wq!ݔwuU8EƍWBocx~wpHI|bNSmW:.0c'CSȁ Xp+GԮ0\ȽJA+2hMMvZ7pQi$ hhb4E?Z5H ܶM6/h-Q]W:kqɏ:D*ub z$ We '7\vXSJ)ͪ0޳.<&0P,:lR*)]W( k=&1lt"\`2\<2^ o:luU՚d MB:ȞH'5vRqQ(Ngs2܅f9L"LhdIl]QOή3)s;b0qh^x$xvl5 PˤL[e[|eVEq6~kJd' Yt5V&k|9._,;/&  QxUݴzÈ t%C6'nkhm,`=PF0P=|EݬE ,iC<#aY) XtߪH4FVWY+5[!`*CQpԶr79%z2,HE* F7>A3ǢAM 4-ş!w/Im.Ďo}LBQv#wgϸ2;-v\_ .29=9.S% ̤Rlo f^N,}<}ƟF< =b%"Ky((bjro좈BA|:re; ڟy,ㄷf:9Y#R&b r3x^} ҍfa޾zvjP9DӀvhҲ*NOѝAUB>>Sqº]NTsK]߰$$;[JYHsYsN*1'Ւ$jOYdJҟ0^4(1C{](K_7Ѕ8xBPM:JV\iMig}{/OU S67j l:mhai ^K>H0lŻ1n`E{x%z.b:(٬B= tY7FNrT(J;s]s(aʏ WЧ+ gyB:6Psf! 4ߪ3ӟsXT4|kfMv{33:r &{2zJ|PF'X#nRa˧s\0W~ Tߊ[0yE)M%rܠ?}D|% @5H( 55ObZ85QvҦS3k犭C4o"TnoESVnWufY{ *2؆ Јy;2bkFOj U 4a&='& J9jH֜jʗQVy;eJ߼q0u#YѓLZ6B<꽐-*!Rx׏+҇My[?W**=  r t"މ2${oX:GQD%[x4nG5mƖ7Vp•bѤߩXt$~.6&Ssk60,.#8GG9 Fm$("nZP%| Ev@K8BBlad 9nr[H󛋮!uYDNLtD 52ZR~SGp&Ng}SMU쓎!GM#0q.M칏L0gߥ,zˮ#"ډK5W$sN噂VTB⛢0ACiwO4ͣS0NSCap=Y,lazFͷaif!oMzڎ9ϔ`緐SMWnTwж *c 3lYXހ cl}jڻDB4T=U ܳO:{*l6ew[%"Lbg *B|^ 7k iW7`66ٛVS},}nHTaRƑJbm>,2Bj؂^ tkp}iaTsJҚz&6ф=gIq=8M]Kf WI\O8!EIb} pFQ(LG9FL~! +[0 FfI%!W'Bnж%pojD,PVN'ILw]xC6,#}5\T ?oRs<5g0Cf `iG`1c\BwF([yju({=U}Mm=[ƆϵY[wQ/*Wt*8/"Tl"jI"egёq/ZusKhdTu-m(Ȏ  ^YC~7!짼I?ζ2zދ`Of/Fio9dђlwt,> ?RV +~yJ?" o=Clt'iOﲯɯKS.pa +cfWnZt755Kw{kwl629WgL-O 'n05 &d6X1F^K?P7sE*:&mHۿ>86O5/,<+\` F *ﻍ" _ARZ6sALZb5#Nm7)8[87Û雒!vt 7/ů]㜌a'(`1jTz?+hje 8 j MM5⃛l| 68{45c/i4'Hcĝ +Cls<5?VV˹]IG 97kU[2\ּvkR4&T:Y$=v?4r1"LC~??J;|S{>T-Efey3'}DIA'yuiJDRiw@zEo|eǶ0ȏ Hp'*QuLbTC@jUЮl[ZU\TLt C+Ÿ"i T6>biZ)pVg*$Io,1W81nCOU&.I-0 ?H9.OTlp0ĻTӅg}ÚZ8 t% +/x}?;O8X2wcV6:Nu'OvhKOxnBfp&2p6;J<{zMvZ;N'@W~EQs3y;\,l!H@jrR_s*%d _K6/s'8En> &j .-o"ii7ʡjPrߴAE:E۬,pdwfn;mbK[gY'<E9QN(QzF2  BPBOHLz9=C6G TDd%@sGsA FB0gIRVLt6o- v0{o%D.EVP!|)tvyr˕%<ބ2'2Q C&ORhB-BSt}EdH6s·&hm* Br(ͦBc"n"luX sqK6]7z@+/{HvXmgk7%G%< zc^V >(":gmwVB5sY@ ԌjS2pU^V8`Q NyN7=0>"QG޽,Xf,K " t8`MNY*d' }'ɊbDV鎗\KgkmVjީI3U!yÚv>HLGIXtEwFՍt|V8&%w#8,mG s!m.ԣvg9^@5ۘP>,%U}l.˂p4$nTVUX1*^&NEمsΰ |30.Q1w,nxdRVe3¹ 'H9^fݩ&7|r ^m+|z*Ȫb,sji}}^Y2Su!hf7d'iJ+wk<^whufe!- Y'v8'coYn9L)=C~E(l+ՐB%O|&>u"QI!6ZWPWn(X98Ѿrףnd)>0~`^i>2>YC \%=F\ϒ%5Nuxy߮AѹόZ2vRQ-g#mkpv`Y8 SEpad7!ܱ&pMٿ*%aCq(?&Halu#5iv=QNIp-5hwf`s< QL}I gZ)}9*K?)d~;fO*_Mu 1HB&Grɫ㗫j*1 fhiD՞YН"ucRA֞ U뽂Ė"˵v5Eyg.<o(~S]whTBA!FPH#(n$7a(}]r2p쐅nBUUrSq7+fW _Yo[}5=-8  0(y xu&} O&`:@  `-IN|0 `J;C^p07HX`P (8>( c Kp#|d`30ˁ^cqX:L꬛X]^YUW`/+ѕB٭V?&+וa><?K)z̛²RȱV:N)'! !teR<{Q9;|F(nD)a*<3V303R#Ϸ(劋#cjE0,*Fc0fYg^b6@%u35k07O1FG읒DʑʠհțF36b 'MMyjԴ̸虷Ϻ#λbgϙ{w\|~^1$ON1.H[x}Lӗf,^o+VZƲ6/Zȶ~{mظi?Ru5bˊJYc_2wA"o50njqEjE7fY99,ڹRĪevÄA.[$#+pW&e)iscbg&,EyLBWbai8,0$ d⢵v}l[ͳBVKv)kcI oUpevZJt|I yc 3bK ]4y2.r¢ Zx.ӕBV4VQi[d).zd 7(Y!n-u8?t YD-)`뭐;Vns)Y0h)rθ#~+#mJ UZڹ<*H`JqRD M>2n]ܒg%R`uJ;o2l! ]Vgu-0+%N VK9}:n,*oͿN9o(x'ID7{W}4dbg|`|}] Ey~q6n*F q][kB>.R| kav ‘Tȡ"0;BTÝ+*7Z~O?dke%Rbcܸ!Z8X˗|O0C 鍎`1* X]Vert=IBYf1`}^gZ Wlc鏠\)iJhFKIp*å𬔞{vóJz~;w={~9xQY XkjjQ [XoaQ6nX UMPîKJz Q'?7Mg7}Z=d7 ? ?솫,;F;P>20:;kIӇwȣ=O<~3y^|{_ͫ}wط7[p=vğN:}潳Ö>>ϟ|z/x:םv+~}3DC3<7.!:D%$o?>lc2ݑfBKM d"<1qfm=/n 33[U s/WLhetE'a~uh{-1_|0H0[H"򴬐WH~RORIŴc< 0K6be3XBfվd x3x@"K\+'~fØ G:MILfqi]R-"8Aр Zi2Z Z ~K/\߽I֒l$+U,-+cx@xˀ 01̳O\;.J{Nr" Gaj`x_ L?<׃{Nz10s c>0O _hDÐtxL5 nJ20EIOxFw?_|?2(3K^^:t{Xsg 3yf^?(5mY=h:=NJn ܟ?vos}W>/!˹=tzYyW37[ku򏝭,-Z֚Lw̒Y{q֌&c"˽'lKZf(*]Wl+$LLhLVae2M j*犭EŖ+1n|-ʳgX tY-W; 8;eFhҪo'8S1mrYI $\TT Y$9'q?q',5Xʼ M ѻ˼x5)ۡiBsqS[2'ːVXrYf.vݗ2F![`0iVK99`#@c%ČUf(_=yvk  @x30mRa±eM dYɘ rY<|NSg߉K"կՅ@L mM-_Tfɗa4 8{7HRi~FyQ)dXq`3S d_,"E6S.ʷ&ZLc<3ke];/~_ XYto@"7vBxAmö^V^/_=q2X%߲"*8'IR8t#P̯K;Vy1z~%}>irC?QK'X(eR uh iv`E?yү6K8cIbe3}Y Mb2D-vY>u Y{T$1.6. RRd034K t;$PZV$]{}N2q^RaxwM 8v?=8E5TH.uODQ@4b!(Oa* #EW#嫕F$OHI{n,3$7[?G*XǍLĶ]5XpRS w(G_J%NJJ!-mmsO?Tޟv >tCos!P( t\z57o")uHݪgp n|k7n0~k{n< ϭ:{jJx:fǶ:ٖOZ0̝[i=d)j1>}1WB_20IT)עõW0f? .*p#𥁬ůE-] .4Q 3N!pVw)N? . Ml~iuY.qDˆJzC?s?4K;k3~ҘDZZ@Ŭ.,)4 72D.AOxox@ɩϛXejPKP'wsetuptools/installer.pyXmo_A>H[0ֻpͥi{@(4YˤE{gHʤn[HľUڲMV៕LjĕڳZYv9)@kO%-OznSj0ӨK0`*"*sYͱX4tmIxQ'YeiǷ߾PYɤ5+kY;b)Mm1Z$\Z!7CԚqD5y*+H4ȱSB~]D´Qpc{ElQj` z> lxu,`mDST3HG7&jZiЅb(r:CYb|^kmI•]QUeTZzcKv={y0)6`K|l> e{wwZlP#PSg!cuD"2-=W`Sa:J^U%,mUEMnKDQI&>q-#FO ˎjy7}ǰu3(KVQUup CVM#T@Φ95G8wREF GE$CxA)8"o->._~l;b&ʀ}Sf^}ZIN1r[m/ja n@?n ʹ&"E* Bo!m[2KNbܤ1;S3yoXr@S(!Ee:!-xg*f$! @(G1Puwl$;V">b'ACxD;|8 B@ x55a?z23j<5FApՆ]EB#@}\S"xwEG‘w{2̲o(k(Fr=V8M[=6vzlu5lgへƳltw. 8ݤޯ)_  g4:gx9 N¹x6ß,hqk%7= wXVcBA^c^ a™+dd<F6:Ύd2 PKPd~setuptools/launch.pyUR `[r-)PV6"xŀ`tY_<̛p?;H:@QNj`CP a i M`\DQ3<iV"hx7,dhCv랻2͸׊ ؖAfd0BTe 9I1qsp_:q|R.`j.WDWL~NERf,,-ZN~As:36M}VX όvR8)fͻ'eV^͏/VQpIFQ_P7 oLSD55`g.*C9/`F`lwIaFwצtewPPKPQ~setuptools/lib2to3_ex.pyTM0WaarViەzhU{*@faǮ 7=ZPwN661(Jm BP뢕 //l i_ܖnw)hoV]C!k6 @ O-uu\ba6?g\A.+|a|+d/Kn-|v]ŋ]^Wآ,WPjTn}A#t%lTk"T/i(G?щx2%hش*VB":dȥ`wt nFlht-ATޏh=e -;_PMy).WE ^Q;@Uiq/CF,uu8=!U{E-T'Ɉe٦82S̎O xe[`` C dZe]3NI 29-oõ _wR:rd<2Hr% ?LYldMP)nm14j1@+Ձ7.W?sñy3/Yoʼp̜̂1M{}3z ~xzPKPcHLsetuptools/monkey.pyXmo6_$/4ˇ"Kd݊a(Zm.%q$Ż^ٵjtVkѮZZ[!M9;h:-1['\·IfJ7v|T[mefԪ!i{ɃhM+;:۾s6J`nlF)RrA¹p.VaHņY^KZVk/՟9@dzwƯ#TˤY͗8U^I3?Etk> f!d?6x6@bdoߗ3Q;CV}[sZ#kyr/$D} bK+:93kNZSwL…Fa-T5re-zs>ACiI~ᜬJu(+uێM|0G߼<-!ɲs@Q` |N..ȁ sr5$Rݑ4@K-^f T]"Kp`޲N@nԚ. x8 9 ؒYԌ9Y~eǑfVza-R>HoM9&l@IGZXZQ7 =w66e)LsN搪MS}1 㛧,Af͍Yك 5Z"5d,8oI Η|@eȖ+ftj`37|xA!YY€(N0z4//U`+ғ.ׯPrkJ(*ڥ"9 'YqGo~'~<c5b f(+_d& /o_ VcDǡeA^dV>>M\+ȷO*W>aGr=0CPGI,Ū޼_@onwz&%-=6ܲYp} H زjT} ;J|*vH\d(]^^받VĽ o_c,#y&Y?E/dMA'Cܐ[sp|xdz>%.MIu=ILic6~.`;j:]<6ܽHf,Z#ttmBWB!fF,$KL דstH޸n!D T =W-#DkY&0Cv*hJqܙ=*0z$ ֒F S.  Fɍov΢Um'68ڱE$ #U:6L+/r7GXAS}ua_͆i;/alG;ϠNScl2ẎQ°G#A-6ȇQ"8.1T;z>mnob'a%עʨ% NoR"QrL"U/V }ON31Kp<'(Mv@1_@s7Y<\ga_lBTwn@~ i֘{7kc<ptܢ+XԦXrm,rvq#8̵Ll)R#N"1x8EUJq]lEɎv$iHOn 0zkjḳ}ucxT]ғs$52~BR<SS‰YH<>"N%C6߱>-7.wM[}sH3¢ T6?'W4xg8Y'Q> Ō':>6Nr7+R)Tu\b7Yv>ۿPKP2\6$setuptools/msvc.py=s8%'{I?nfsZ'c6{oFD[I?DJbI;|s]G&A͍y.y$ͼ(KtRxq^#oey.I:7;?V?;|`BMq&׹~xy8W78|G_;vwwx,#;@=7x:>4F٬J9(8v~YLygq͢/(%^~ -WqqA">pKh &F<#(dc3g霉gi.MY9[6g'0'R'fL| 3w\@vctQ<`Yf94gbNv ]aty g?pu`U `7 >`cD}u :UdRKq0>Kŋlと̛(J3&@JAF(4>~~}w;> 3999ZX}u׷ ޿ o} aTt`5|99e<h@`.WHa^i83cz%!ކN9LѡO?bUHXR7`}U {@khSȅd]ؼ<0c6p9ZFYM5 '.ަ`^\FS9 3R_;4&I+B| xg4A3@3v-cpu ^&.^FɌ{@QA}IoSEŦh)@ҥjSpxߛLӨP k4N b%pfEgρ*p;WC0^n.X2/Q5j1LYFj KI_hVS6UeDqQ-&e #!VcS>]} nL S.[[UIzEY`FMfW×Vƀg7}+ ;fN}x^E7&=+%UHv-.'X.J %wj.{ t%&C˫x :0EE욍9y+-}ɣdv8?݀\gzQ=hqn`|iFLSCҤ#]0&4 t8B(lKij3ww+tyo FCwa'!Hí y$4> SwZUsU464.n;/b6 M28yxnk zl7 8/'vS9uLj(tya796K%]N&٥bOzE쥋WxYW 7ft 6{xwes]]*F*G6tɼ* HST|0"NH4J Q:@4dםo;ܾXL+uws5@W6X14F[H ǞMl^o({EzV&WJVz!*:?4MAng8JyWWWL=>DW qfg t| ]]9g1*hN{ϕM9cc6bU<Vӂÿb4N.(75#u叀.yu (e ZtTb6(2q> # Lmj즉-BK{iB%qj"^|ɓ2ؓ刏e%65%<p_'UvUN6nìy w7=C[Zޫ/n:Ѕ֞ F YyqVUaN]#w7CcƇGia,C-_856-ʕ\kvW88h@m i: 985:_T/h<6œx$I.ɭdl~~AA"AґC04q@F![ $_6kO P@Ia{+mߎ';I']riL^.8a hh`QUnMgLc/w%1ɝ<.m+w-Ům:rM@rFԹDT3ɷ\Cؒ%Ȋ $lvU>mL) Ň*h!h+yF1 "j/9NM(/GGv ]]ބ|BgMkve cqݴqKFO7y#U|jLO0 ʼs^=w=cN4q{Uw} F Wo<ԥԼ]݉I >+!gp=xXjhL Xi{/"?2 h h:hM4BX~!/-$f~=ƹT|%Ǘع+I[z{"ÓV12) +&׫|< J??7rb/"^kdhNCD[y.q%5-o PpQT;Ekk7@7S0U͛饶qA1i Il9z=J`NߔwgV VKz~i4볊y }jPFu2H@/ox!׵g2 3FFojuy@Md1 d1߶e~Y߱KGZ/o}iT_`g1is: .F}Li^Q^9@#hqbL)oxO3`!('j)?A s`1A4stA Us)@;DKceRlI s8*"ls-UBǺz#Ug,;ȟL8d90S&FbKϨCC!-cGYD$\Q%3QQ$Js"y}$wifaުy~?ڀ'G:Qo$ֱQur**HP_jG56Ϯ`t47leK1."m~Z:'xr6RdߵhXg{.gkik^t8>Lxԍ8d7}Rv Kk@8?_펼I0u8u0HJd(YgKyrҠQa"XJUv*\ w2\Y+U$-+9Qu?XJmhBm*Ț^Do=u>ĶC# ]ܜWXUg7\&TVNگâ XaEILc.L4m$b`o^׿؀ ,4iw $NS>aX2Jqr~/W~7C~Gp+yG}x᩠V_}ۆu'[L>MqʨLlXstگF ^?)sI~kCcPI-=ܷ RtxJ]!-[1*V, Y9&jS\sʳʝVYDೊK)Tutm G5H宣?m/+u zB1cz &5K~KtNa)4q~'v,#~0`> Txeٔ54TOYwc)12manM{*ZA|ɻ<_l *71BN`0)v %UC$7ދQk@n%r Y ߨfu0X!`T^SZ'_("Cq0-G27Uctby2']I M@wmRAevťxٵͩrhve1ߜz5۝!jgLٴ,F :7vZSfrQށ/VS( 6x Wc} scq45_JV9@RVb<;⥨˖neO麂ځpSȴn?jբr= v,g/ى* D ^bG ArM Հ(`8ӪJAy2έe! M nA`Q8"ZLktJ]Rtԟg{anO=:~9ԨX~mWd٬aB퀋K^P3 ˊدzP %˪+.K31jFNYFYySZIMfJHq <ǐݭ÷܈ +z4dr+?AƋ9ZGVI9x\H9kAz n+Cf2,;a-lFyvTbG#`)Ȯz&f uYxh"85GfE.PB2_^s_RJ|E**!q'emCWPT!5گށTScb_4/Z=6B[<)Oniǔ/8n(LWq nZjG0aTmr4Zj05/P7d8'N7.bʋQqa~t1q]fY@K.lfx"c=es{n >]^b֗$FG-O>U?:޷E!jV6"a{5کEph&푪 Wd[_]e3d||{0ͭ.Vdvep붶b."|aceQu /oRx'[ɖ{/d KBjuVVjчFQ0]6qT$wKXW zt)zoi~12{N*t}|=$./aʯPEE+yN. sJgj~)pR[\_( *+ {űJ Eg7u[״QɆqBZ&o<  wd >J(atk7 6 Я/j*-f)lUYU Ef.g3.Ƭ_P "?%œEo(Ru| PxQ|(7mB5hzC%lBE&”Te:/܋A6AQ+lIǡWWARiph^=/ZUtcRV %!Nb<.l2^x9Î/:Xv9+ԥQf-OE(C%1?Z:Դ_Z׆Kn+u$o཰ KE~`Dǧim;lϭ2fir}PktV9_<~(Ѣ3 ~s̢g˨%%)]kdk ¢" 8{5 Eo'U0K{|Z[^z_S0 ~On?p (t T`bxZ_qd[苸[W*>p0yR sk߷JM  HMh!;UKXq Ka{ˈ\oaX==2jJ/JĜ{bÈK%d#1QT)Q&'u/rDWw[H+SC‹4NWxW{bӝwkiv7RRR#M!ݨbi x_jZn"U1u͉ږUXGB;of]O+mmeu]U[W3myp+8Ό: .QK1)ƺ|1FϠm~su=Sxq2ޯSu[N22B /ϧ~l&ry_s[ J"~j}ʝB fy;Erw6MN4OLx_΃Lv|$$CS{Z RF4zy-,2E{AǨI׼qrK|`E9D,9(eby ̢k_ۂS>NU#.&*Ҁݫ[GrQńtံsD[)E)YfچJHKWi-HM?qsUNydx=&% xf+Ӥz|_(Ou~M]M}RMǍ,ߣڰNԒ^blxCzĬݛ(K%&*ow5 #ǻն՝HCi.Eö*z]xadnһ_vſt] e7{8Dv T$! V=`DܙUHpu ֹw{qKC6b쩈d~7Im"DjUjZb^JL{!d};v Ն "\f*%y%ZGlC`yk#6xỖ9DTJ5~,AB;Uլ6j'mLa(C]{E,w> pT$jөUllL yFޫKoC^p|&t#̡++y«~ d{=zӛoy%ƛ(G^?́&uG 08ClD%ʿ~W6,HWgJZ'u~Q12Pa~ oT2};˶9;jUE"a)8K1~vw[ 1_n'ڭ6%:qRnudHt.;{pD2.@ePP\ӑҾw2}[xյR'jжR&93T6ߧQjwy攕v=ov3\Yۘ*p%Ԟd%dy)ww0]wZWⲋT[kQmG" T'-+Y'.ޭ8ɵ=0٢LJiׅZti5CZƂڠGjBReeY0BB,oBeC|}So0W/@ŕ[s1A!z4wLE,l{U"!AA3ĻYMgE=ŲpHs&#9mC;%#kɒo钵# ˭97}'q(ޜoy I VG jc - ,Uz~WKbԭ2n9 \ JR`my;vUBC`:4S1*mnEټل {6sJ+_KC}-*'_ʫ h1q:qRZ F_Y}\L7C.t!Lβ%kޘefPkep`mp_͛7!r{Ǝi}maWk< ~t.sz.9ߪ,+ ִuN Maϓܷ1%庪UPcևb0H|;.縘]b~iO0?PKPc ֌ setuptools/namespaces.pyVMo6W^"@[pCѢboـ`,fCI% )Qv6 GޅD\t1 IHt0BrMFz;ˣ~{VU~h#SRgpr#P>ȃ1?lLo6>66>r۪"!U"t}F:@8$2: >#YEXP`OpG6 HqEe: l+_+ar;TC|^ٖNb"k9펼#)9+ealLD,`xGyH@ЗI'UL@Fmm H\ 0qֳNAttFd$ڙHz:鮵1̱&g:Xh3)h/ BԢPj_D_  zo 'cw3p)w 8( 0Y#-~򿝶PhuVbGLI!ʍaoy^NPG/ nWm1޵Qt$%9J<Wz-r!V= }i۪;*_]Oou=0vxO\ڈsu?3#n.cЬ\VFtTf sOcO*2;3NQa{UzM̀w=)@i1=kVȶ :C<9idS"OhxQ-littA]@ZcM|7k}!k$lV(¬K*S5`tr|(GT.f:a^K,,ƹzs}iz joߑL dvȬR.t4?7eŒܐe4lsArv B0TW:xM-*~0~^j̫#[zGӐ0KJP@%}E;Yt]jKgϹ1n}ۑV"XU L 3 ]9wHR@ hwF6xYcԛaűzMU@+RFW|ĽN+d(ƄyAiVc PKP؍.setuptools/package_index.py}{6+ɒJ$:v7Jͷin8^!kTIʎ<A=߽6 077/H4Ĭ 2Y -LҬX l.&ZoЏ&_R4ꯋ_?T-zgϬUSyT ]ͫr7Ōq=~Xfp ը>Q*r@g,f=(Q0+yX'U-QJ{zj"\L+QjŒ<ٟ_x?}Q<*:(x'o&eJ쳘f9 ޽ ?$P'UVŊgE:M h(JȯWqݔy ~VgPOrɟ$ӔiYwnxypĢJ7x~?2-UJ:OYrdRm&y>]$I{zї yDC\&\SI"`KYOe5-?^uBnB0aVXWZ܏<<޽~/8 #~6u(t`ڑ/m,1K/t~m@LX3lh"h~%K~ 9Vb^GKOگ@TuJiR-z-fcՖG@Ј wfL/IIV gG)~?M0# A(FAYxܩF 5${n֊Frrf|"IVnE?7Xu]"!嵨`ǘZ]XV? &EZ_g2 qpؒm(YO%*!u#1jZ5xm2>xl*_ZT鎓U[La8 VrGd]l ^'[#e MY=[ D̀F'H:0 ~ވj E,V,~1){Mو!I1P7L`l   dTq?Sr!?j c[y >᰻(\G J;!MdB"DKe"Oq Q0x ʋ]c-`1 @P"#J/^֠(po^f u۷6vTTmf5zOf(:<ۅ2 ]'lGŔ ,); #ELvV5 |(?ٍ"Y]6/Y%PX 0k;CM^pMyG:vF:6w! iQp7yre?CLHL-?\mˊ=&jkm2BPy%`6XҢ"eu =Nw[OmnO;}$? c,wE*Q׿FB&dD+5IFYdA(J{<om>fw؇Sɐ|%D!AcT  r9b.qwP>Ǎ]m euMϭWyx~+5Sw4%裌KPߩ/͐A<jh* 3TZԈ v:+Sd J"^ I\` ٧JT,ew%,TD{г v,c0 DT.ST:c0P lϙIŲO&Aހ(Z6XVVђ ưBXD0b#{59%HiXaX'0_lbdf}2IՌڦȳKov4U(07Q$g ҥƆkE눺hŒƐxm8TpQXj9e+ɗT%rjV eT iWz1L| } >lh{ILBOaF4,#9:YvL= ~ Ta4mr}eX{2OgΏkcjSIc?x1fGդH6E88 AHrK4+$+7DNѰpC%jY7\7m FqGӧϞ=Oyo'0{`~ $MG *Ni#kfN<}znA Mx/t(j:6>0S7cyݏSӤs\nryfgF_Z+kQAJދ6I;ހxJ1`Mް\?'¤VL V!蠎Ym-nR-޽o"Is653-@ UQtgw?֕Ȼg-gx8q'#%:AD킪d} *a06i .} bc|gydOeј5(v^@3@% `oIG:&#^\o_zAy![b72FO,6Q:rWu MÕ.áj6,@_">½7.JZhlVy*fe*"; G8^4x,v\e(GBI|I0>V4]-ai9g )HgK1-NeMa { 1'Lg B 9ؙ/ rMG˴?ȉq;f<`H4n O^A r9x_mD;h({NM73𿣣σ??G_}|uxUp:ŧ&9&aK4+f:tCA#6mbp߻MS`tˡTQzUF"$2mZ 3 O"@ni#JpAkDxrE! , ݰ8 Hiv09ݽkȲ49hkC?7YRK3#!iY[v^`|q8ED_+$!jm'ۙaK,Z\"Px%fsm'ECizZLPF]uSOn8rY2i.d lu>A akhhL:vٹaX`p0N|Q$a!Rl_sAԾ2x2ew:(k'ELgQI₊Y6":⿩~W3Fj$W`6RF~  Du`.cmhPG #l IJL8BZ_WL5nf,`_V/2l~6q#a 2iÂjqXkl/Ya7쌜dk?`d!6+ՔHt5@ÿ}رGH^oZ^zA˚T*.6h:V{&ulV޷q[E<F C12Eh%fL{B1/tr漌oexȺrhhA2?*N__ wjX;5 YAFDX;8 &o9h; 0 0NwDvߎ ! UL4< pC-13á8%qC>kˣrCYse ነ Jpx\԰l1xʛ3!WؾxV¢HX-py ,"u)M܀͢31@o(гNB^&U/IB˷)[`ГYq(a5V{Y+:+XW~Rޡ$1Q̠%fx3w@, A&#ζ8cPM+!'N1jc SkXgϋG!{^)O=_I"ImmwnQAAj@k]pӠ/:  Bֳj^ "Z0AG$ -?ţ;x;T m4IDױ|Z,Ȅl ͡5e9bМVpkG;|óI NǂOn9=G'UyH}|tI#:-"^חHjη4j5#9I3 fƒos!4UrDj~^X --6励8At^R*7Uf E}7zS춒Hy(ǚ w'kqٹHB\Oe6` >:+">^oFg³ |L};zߩC榖ƿ~èyHZ+okq\'4 VA{%NJY ߩ(Nmw<GQvل@&(:\bLLp0٭nu[0ZCD~ΝZf` '1 L'*-Mx`cs0lK a("w\eg̣HL.=<\ג jv:ީUqm."9q&9ͱ5P1T]. tV7j+; P.Ŷc@\$wPnBfJͻ%fV&O1ֈ$J%RJ/Kh KwN͔8Ni gRev)hd6!fȫ*$5nT5bdyI]^sR0Z\Tf݀L )W:8lh͋ Ǵu{ρku8P #<%3LY0S<0i1#ZC3_$ۨuSvAs_d cRެhN&mwt~kbם0~yxp񻠉7'[' vڨ}tS%m veVR_Ա'`pSfl՝O48ǟF9›$ޗd9&j 9U]*ZX9AE 6,Y+'gNx.kV+BNt"[ ':OAc MfЉ[Z^-KPཉONnϯ`7 o'xa:CwETDAPW;W-Ɣ"u$B;B~QFJ4#9L:;VY=i?Q 9+uXDyaRw5.KNk؅H`C"vm֜1n$caΜ4H QUT%h2W1z-@夽lx4G] ̲:g~;4b8.[=rF`[%UK18a_a,JfN9 zνGe)PƛfF@H@G,L0~*SL1oL+!_eJ)G(g 9~r>~N?:h>'LFi&.a=2/S첬8R' )V 85ϖbaԹ 8Z mT+e Hf2knX@N,U;x2*^)CXml2̝v͐ ୔jYȸ)fKƝ6%Mv6sDGLYw]~)DYgA9me3HOjFT>[mKKpOdF1ӇR]LUi%wt'#'&y QLi/Gs;x?ҥaddM^ԍ9=]P>)ay|ato2YT"m\:m5*Ltr`G!fL)ɋ/ L H^jK& |^ Vo.009.й߹k͟.Թ=~[lBң<ǛShD5#yt!b?gFkڭ b:"StuMѮ#-% "D]&+OP5]FM[M$Zֈ6"@4;VK*,|p *\l$}Lda0tdѧ;I $>]kUL( ~7 ivg8z׫S!˜b<>D9+6KFaq2D[Id*"=Mehg[1jBȉ}|7~=~0i{ GثRox4ueÄ/2@ EzYn5U}; OdcvuY]ΔTl䳮@ҁI]~ j;s'S4|MybHKMzcyNng_J;ɛ'Ϟ?y 430,6*d^ωiJ fyleHC־̚+!#ak)σspȓPpo-Nݰ<06~&pBvi`}ظSkꕪuY9 vݩ-7RB[Ψ.{ H!UQ;ý|zIkv4HkMi2LZvq;Fj `hsqG 0?5RbD+U1\e<_,z;n~@@L|f =򹱂S/#?tlcӽ'Z>T!e\Y]S#?W=/q#uGKT#]clNيgvEgoTFIQs)ʭ>7*&HXny8߶Rg=1 yڱR^K5@(mm?>EHF tWǪ~+aYښUQ:GUNOjWg94 =S5ǚM `ЧA=u4bb7N>5SO?QA7Mi&RbIaqѽ1+Jq _:Y*eblu99\D_qvopZo-Sb8 [T*y°w0_3紮߷_5V߶Ƈ..pYp;JD|v%U4 -SƯϱAD_6,On*Dnu빶@ᬧeMkL ѪOx}PW\n'_~G0شWYHT?FkVcoh9^_?"UgwҿF\OڜO5W0}'j[V#_MTj!})iaTb*81.FoX17ڽR. Q-β=a`QG m:^ʲeA y޾s唖0aN3j^ :^fW>lB/ɽ򪂐D|E<߯m<3 WN M]yn5 Qw[E6Iv&w'o5Џ.uҕ,y%6Lb jffFUx#wcGr[[m$;qy7 ;AO&#tNE; fp] 4w9ɭ+"% 9E: (7lx&M%R4z$ *^٥Nf,PwO{hr8]o^{X; ]+dzkڏӏi2?87x ߾QIţ kHIJ\/ff}f(6&zQi_VȞ)hȬMGXdWA'y&8-cZP2 TU:G1Xshw1%'OVo菋<[ `(F֢&H6J俓ï$I:5IIa0wl_}YY̳E4!mr?MAn$+:8C1@yIg %|]mꝈ!|D:û :j`S::)R 1MIrN;{7Y&$)>quUam5u):{l%t-HfלeO!Ys!̷u5$ߓII ng]E]߅3z9s[.=s@aq6E52 T9Kպ]1wWԼXt0k /]4on|3!дa [wUfh 8FզPg>y?}# ͳOz3ߎTwR5RU?,ۈX-uD?_vȬ`Zs7G}]MKR YeV?QCKx楅 ;ZFL ㉶GO1o@_4 bXUޡ4kyOikp~ / h=Fyvh&5= PKP0Fsetuptools/py31compat.py}RN0+VRPܐ\Li-hu҄RzgfwFkp/JiMLJ}RLݹ9G&8+NRMojo"10,aɑ:5Qrב6-[_1U_5;3ͦ#RID=PMPe&5R15>Y@PCF05#}2|ƥv"!/*YghB*Ak,k=O :MOƣ8sf?n[oUdZpcpOPE;yu7hʑ/ƵÍɔxNV绸/U(3F QrAquĔkPKPaآY2setuptools/py33compat.pyuTmk0_qtti5 2ڕэb_ Y6~'qꃰ{9NgΉP hXp+^P+%_iq &:awF#csgjV6|x WQ9Σc(sJ֖}cSG{E+̳[ Ec%ͼ4)9p. ռkqEcFźqTK\'DUA' r ƢQ?HHRECFelO+Ҟg3FO4sP#e#6" cz2I#AN9O؈ׄ|y;{cIR[85\L..{@#&iEuTuuKHYlZ.G|w>=wq?Rw44:H]<k$R.:e؛ f4lAsrh6ja+6z.EKM9o} :,E]밤II*3^s3(>Qy_mʼ&ePKPVDsetuptools/py34compat.pyeM ! 9E(tE=8c:J޾U) -x?ǜD _^egw"IF;Rഎ@vmɴm"CUתt{v7 ikBr?;vmiPKPSc7setuptools/sandbox.pykoF~Ş]T".j$!@\p bE,FuM>KRp' ELԲaJe#֛EQ ɛZߋʚ.݂2!ڬq۔٪Ío$L& YM!T <bvDuۢlJ}Wשne&T=} o`'7Zp٨Y'NJC^fYWmޖF"tqR(Ћ;}̢Z%_I#wP$|qMș Aԕ ~N^m q"yi* rUT)y2)/4-.iӹj$Ϛь,s;gQL{RRlrs`rƌ]95 8::w$}.ZT `yDQ$5o_ހCzGL ?y<0TBJUd41 v=i2!^kp3~%  AJP8 %vW=MVLG(3PH UB25K¤¼Utp9M^ksS%1. ^uB a+dϰ(`BiDwۢ13.ZHh`Lw T8"2lGcv>i@1 ZsdPB]hK$ҼD$p-@C:&$0ݤyf<(=Yܷ\0i܋q,eM,`\ jƅB TpDBÃ(̚ԑ9-Jm/Ua}&Τ ʸźui`~и=&bOǠ?l>;?k7SsXдAWة҆Ɓ:>YF!@rkp̞ѯu& k0Sڲ?aplYuV6ۺja[B)n/ksRI~J A̡a#Қ %DԊC6IɱЄ@3_2ɬKd72Nl HNC-5[4šBSF%/lXiS 4d<|žթ":CHYY-C7CC9ي F7t1X<lD%_s7`J[JmIԔ&iԒa;f3`f? )*ʌgYc-C( !kL 2a#> jvG$..@6ޙ.+tȚ؊ē  w4]rtJ F3G1lC@[eE|t5r m 3ULޛz;;&͕=v[Ȧv-u)'_^nL<Tn@c[ [G+{lA"V\!zSr<@:/zTDx"rܨVzuքl>C(f2ÝYQbW/9m tSU`8O QSפp%0x Zŗqs7#c/qIRbt((b_UPrܫ}S;,3 přwzYɠ8tCƪ+ᦌ_KX7R, 9^Ge1pTq ;aǽ7W=_HaW컊P6@zq8۹j"5cZ7O"eHs|x$;3B83XŽ|;7P+:=tK5 S0oyk@Dȍ=5 iW@qѤäccآ@8 ]ӏkLjS { !*RBzOup(7Q+GI/{U@P_(K$[rL)lf}j^E}ZKWZq/;*59mpݧM90cłyVe}Z(9"d~dURlE?= 1+x,ZMŇ!к'>`y Jje03hJ ަ߾g6=N߽;{.^^7/?%jSM~=7_zwFl:̶ѷ;(F# 9E/Vv;^|3j|:Ŵ(]*^~ .Ɏ -c* c*F[բ>bVDFK6 [n R٨[ҢübU%cOlHpFpddOmWWNgl-jXSii^"E0SD8m4PAu 5BiP3b9 m692(?Wx$w4VYX\1I?ϓEqz]?kbZcz.T+_)cW7A]$^{a #$nkc?f/.S^W$В?ĩ֐gYaʼ,\7&3y"m!Kd>}t0nR>8!o;9p]΀4U[%ݻ>4[ gZO]G'^!+7rU'1J3עCzXMoLHRTICb el4ih k \4GҠ_+DJ z 7-n_h~)^WEj`0WrE47Ui( ņ#/Tو,)40#bEKgovv2m'񋘋,IX/] 2e'lfw#Z`(RNf[n^iJ*b }H +Xa"J=-8E%zlJtKJ6r,"Ak0ř\R &4Vl=B yy3%։-xM%Yr'")c2~ KЖ'dۗ$ ,mP P #^K.f! U PJ ωJkӧ74 Ӻa85C y>!f9<ݖd\q 7P3doy %tߵ0h)NO1lwKfZ]!;jƳ 8`So>DugLbгtX݊SSVVq^nZk@¢1}ј`V,F%[Ct e,Jtqcg , \HI'ʴtݫ ? . *0'r+C7:("Q7wW8HN6 1uUB渭#F$I 9Aa3J(046!7LmOG@U ΨzH@OO_k\٪j6"P?7І/OcJ >'cI\( 2%i@ lP,*7X4_?wzif,\y &ȾUUa`#w4 enn ވZyyĝ+ 6CsO+I-X*lg>U.Y`M%Xѐȷ 9/@is@6I$N*:̣`.4:v*=]W9&>|ح'lv%ET+WHٲ[U@5X{i3Ȣexz9`u伈j*}S>5Ev?$З [@6|wm0be59D;G(<(!k b>$ GInqakx]"PP Uނu./< NmA%d(&2K[YXqYaV&:o$rehs`gh3ސR ڦ:9nwˤ(4gYƬA{t:cc--aͧ _V/V(w]GlHO*`sL I{ڮmbo@%W^¡cN|/$cdcC #xfS$7 a\2n8br'mYXK @:v'=(L[OY]{$'OgV/szMQ호LJew]OV(w367ˌh6QPq[H>kۅ=2%\g?$nަn۶A_ GffifbN@v yJb/tvVAll܅2Ol-EקP~tX8F[Ep/K:AM;,B{ q IUN:\QR_]ɾ44a՞s4M҈׈޽s{`予|~'ys4%0HJQs V@\Bb[p{c ۴6!m[]OY]xhhh>VB1EVpcwO$m!"D8S3m\HpOZh[f{|Ͷ:d-vI8Qس4԰Ea{^tk#&ot/(8о}Bf TS/T,%B]*t.`[XسݎwakyMNx1~~Kjŀe) U\4-}0s"Ⱥ>L ruI#M\2 V # %PVY-MGwL f&j%IޟZs/4m0+?PKPBךsetuptools/unicode_utils.pyAo0 DzH>zk[ρ`Ӊ04$jMGr= ${t瞽@$WskܸJ셹 %^=T.Ƙ߻  `zן'`;onz+\ .8 b,E9ȵ\WzBhI϶sp/!:mx~ehCiG=#/5#q=b&-ޘkuj,{j; #Ɋ~7ƾJoNzLzE3;:_߀Fi eE"xl=d׆R} (n#U;ѢxV.;YS>>$A8sk9 ^R$QS4Iu$ H8&ہP\}٬zdOu}7Z PKPHLbesetuptools/version.pymK 0 D9EwՍ\zMIR?<L(e$0Zp%;ZLSP0d+J,'c^;:GJ;9.PKPE !setuptools/wheel.pyks; ]q/׌ڴIh=m p  ww7i;efR\.L{Jmj#s/{m<6Y#8E(i2ekwPOU};P==*X7H ]*-,mibEt+ea:<.AWqroe&޶#y%( Ĺ|Q1|\/"bdNMAj^F/( 'yu3 xzstyf gJ /|?ճJDbH66Cʿ9M-9:8w쾸"|wO Dhu}lbzu|.^חA>,:<%("TQu ?( >a yT=J4:|0OE*RBjepo[`vJ >6)c X*ra3;РBqd+$ByB| CDL~.[A $9iؒt8- 2̐jˢ#G$UңEG, Ԫ6MPXY v(Zg(Bj9T-_5-6w& N^XQG܃TFR{YRXZ 0PTh#@څ3:P)n*U M M''M۪.6U{a>E\BWiyWU-z& /)jȨ=],ft!1ȳN#*>ԮxWXߢufZLeY3U,`Ti|O#Rv2$=V{&1~[4(IT&84A J1G]Ň!s>pcHu A:uNx 5H;8q]p RpB:F y^9kM:ٝ4;1dirW5O. 0GjxgX2%M^5-9>Nl CqE 8wP 4ZCMhpn@Yڟ\D )4|L+T`My .V fU0O(`2zS-ZMR<~Ye[*,ʔ# jF],Oսo=dPg%hS/!#v-2V2?Cb\3baЂ62;bW)r6#|ncp0J-LNCbsO|7v0~0s\ͽSBMwNc_;v%]X S/ Zq:p0m"@}7zzeo09/,G%9STMtiap͝#z{axZ ?iہW1k^1 h[IF|v_l80PcU+ =샏i}X ɽL81HѩuN?v'AO1m?envB;Bi K)FpG7ۻĞ0cb 0{ ěg^Q5 +,Gvr wQ+N?9XPKP tsetuptools/windows_support.pyuRMo0 Wx\hj& i @CB0RZwDIҖn X.$ }J/)jXQ{Rg+D`ã_Ϛ0lxC}S%,? )Sb?م>4|hyԃȮpySraeC"jŽBc QO.#iY \a@RV&J&'J{UˣPBN%mBiቜ7Wz9NǴSu;1O }CqP yy 7Re0{߬hXS{z6\,fNgco^/Ï{FaN~w6jÄJ>X16VJ*f?PKPsetuptools/_vendor/__init__.pyPKPD*;!setuptools/_vendor/ordered_set.py[oDJ7B'^PHՠwC Av)}薻\ KC8!%9x<ٿD"qת*2S]e*q+E&(b.*n$ܱ5*9y"h _Eq#Vof߹?+E,7(k4ݱM* &䭸x%;r]V *y 8|+E*l [`?}R\h ٦(᠕(HS']k{ٌ/c_.LŦboiweY-g_RKuto[Gvwsh(XXlv:FX(5)N5(!l+@g2 he@{T+1LP|ęgc#r,^ X\1^U\֠_%X2qqjܡqh%E d PuAA"S5:exY! ؐ^[-L^u D-p1;1i,8 D,/47Vjù.`2HQL+!hq)` zLڑ_>t.BYZఫ:q+Yljy`?1۫|7 P.s6/-Msd sUUDRӦ8Jy>jgm~Fȱ{86\Y_~4by缑IkN0x40^y.bD]qt㿜3>rP5H!gLT%# )Bm^ajA |wbE4Т.=7N98%Mh$<%q-*|(3 h"C^C3(5GbWJ|vEͶ2MɖFQ\D̑Cڞ=/ɧg2;mlA%]\PF*|DŽ]%3]?VVvZ@d,Pʢn &;^܋10|D {t`ԺF v[GV8lɗ#xU^!1jv~\fN莋n0#R&ml{/sD%󐤍)Y*Dq.ΙqYWO{R#b-ʁ޵n"vcΤW<޲gCi=G RcQq>A=]ڒn+zJ!}v0Vz%ڼn`_}B%(| q^A7=\sot?a4 'W3NKyyU9t% w}]h/tAB՞uTJ vad+yQ~JS/7ϙrOXwwAPQ@[@\]5{68(+*~D ]ꀵf S3{O?5#6i"&-z¾fkfM-{ A1\/-QowV(s-a"W 6^:m50ᴷT kH7ru ! sȦ;Cdl ol (Z Fmr(t s[HY9%؊%bA>s_dT*I* -"ZƎ$Z]te76p1V #)ZJ\\>+֫˙b ,.}AԾ سA5B#S7s \SOT^PDonׂNs}R&c>&!h[zˠ#7 {k+4F+ۼY,-6UAoJltb҆RKPgNv#\@4=ZM}VPQQT_ko'uje*e]]Z ^s[x"90{}~ j8;W^%}'T )Έ6Ԡt Vb|5#PW8)Ρci}M/W{q| S)]PJm uQuHe) D0Gzhj|"&r v=g9&{&>B!$i=5>iǀG Nw59gpYЧuf%Lؗ.w!eEͽ'c,+a. 5@{,AHA`C{h O4~BfeEU,twK4Gqض"@6t#B[bC]bIDȡ/`\XY@9PudQI_zN'*[LP6oQOi3q9"1P+; OKO9PKPf]wsetuptools/_vendor/pyparsing.py}m{6>OܮRln]qZ:/7vxmHxSoAIv={K$0`0/i>O`v=2O? vuWA8kkk_x> wH뤘eYyR$'YgU2"I4YUu0K*'Uf:sTU\$P~e@|4&YWi:I α;A@*uz8'A$P:UP$eU#Ad>tJ;R"y CF&4dɼ%>%V=̋L&hu 4PfJ0F_S{HyAɘƝ_Q%i>W0Lh88rS&'eB#c zͽIՓ-qBg$B1{RV@),/]wՏwW~߼޳gAg~w৽_x@7/zl{gݟ_=8^ ^}{/w|)T}0{wp_Qmo=G(/v|O= DvzΏo?y`: { 4b! چwp>5# r뿿Wv]]niiohg/ۥ*)}]zMnv^Dzy~~_9Ե;؍7{o^A ]@՗ 1}G zǃݺGv7''OCXaN')v& qɫ4͘(wWߙNl}G)vhJ x6+xt 9 ;CG#w:׸YÚ\#y} 3 'OFg Nsa[ p|2̙?xK'un`8*ϠX}=@De?i'7̝og $;}}Up Ong\A΀NJ]+0l/3'n{*.Jx3`Vmn"3D tQ;q<ǥ*yO"y@SePr^ D}YG> j s~?vN h:N&w`s'GoG]zԍnYXf*ńbBޯs@=6hE l}I $Edd4)e3. .=)^'*zIUF^$l@ 4RHǭoGNF#{Hf TaX$"&g~"}@+o789 E2& 0é0$z@d.wX<ɂ"%\%*^J+ABi$EQs4O\hSH3AL>AOj4Q{sĎO$3ʧ~]RQmOO)s>ɼc0*w\yY9+YB"i/MAcP`V<][f讙 ֦ $9 KXA<"Y633hiCf@Q½ M +)WŋHT7_ez`v,3uOhuyZޅ`%y"] (|wAI'ه /@I ^c< ykL*P@N;;c]a菐N D8P2P{uj. dPfOKhʜ<2"}X`c1ӄ_ tL][* ( KUY5u dAy6|#wpiq}Ix, Fj!|$=|W{bΊ_q(0Ϊ.IdLOI|2p/Fn?C˜~j;66?&ׯ񩏾S.M ƗTXn ͂G*%UKGrt0lT >?$\ f2f7Y\Cʹ hgy~_$#"?'XUC}^ZL듔Qrga|&?_͒L~I=șpgaGFvM~/w3NE:>؈f1s^ҷ*%h /{cj:1_n_&&zd9A pEM͟:p lW;D?y]$i>/rU,O&ϒHQYSl%)R%Dmy6Rd0=ƯN4Y%(fcpi_0[MeUqv/pJ{$@kFT%S}NQA<q{R t!m>>|eJGki%dy+ 2lxb۪ৈc/U%q xQg[JQC'69 X{ngO&n|$@/GGH#xY>F$2TQ^IL|E5140?g ?+Y?% 9.:ZnG_|՟/3oӝgvGR[rI;1"fwgJ;_4 GbT:2+xeՈj"C C&'u\_QuI\752AnsmW⍃/whQEhR`t7)vI4.IWZKC CA(mSmV#:$UPZ;4Tŋ1Ko\8o;~cš){j†IJ2iGzg#x{sv-tSZG#}X+"ėy:.Xk~N'p-x>?U. Cd؁/ 8{;m=K%ꋲxPC?3|1P|$)YPf̅2'nZtE6ZđvCA: ;0Fvzm`/ kS` R5Y};A Z-&طv 5$)._+>y[4..ټqä8PGΓw܅#IR! |#1*(;!Y2B;5XڎpP e[Aܖ~n21P"AmMGu?f;}d@I1; -"H4f܈A!TוVjI)" wȯ26yP|kMm}+y2̎vsъzPT ngIYF:(v*gcG}$= HĢ|zNOk;XYRk:3ujvݡ0u0(ԾCYLx'$=k cxqfC4[`qt:Mh!0^mJ'/xO(8t|=mk '7pO=3NQ},-z|*qr1f8b4Ո`]8nooLMR$=dU%7lUFuh!d>}[B*IMgHoXmilrƢ*}}AzJlbIi asx2]D)+[5Ĭ[XQ14* mx8C-ܙIJilj3yV L%@fжȞ='CI">A,)Oj[Wgm5hri81"q.PXfj^{6n*y6KqZ[|^o'wx1?Gd F;[fVsnLbJj(GGnmk(d,&sbth28,bH#1 $E4 P bSIg$Y({7=6wXRJhTo֏ojNEm4[.'7-C²4J<\'1` >wv }yHqAuǔɯMMgJ:xP?f&͛{!j8UnuYK]oo<|n B l N'lt^²3F:HBǽN-m}%lu[ i;EwTW$jc>`z-x`-xY_w‹{u/Fb] X0ozfh|Ddž <=D F|rU7^k\n$_xB߭]ԾP*H[t^Rچ`u70sK P(n]ofqtp[,G^.iUX]s(J1W%`?O_ehxU[$`!KHlZ*Q8}j'ߎ6B{WjX4^G؋^x9fs]Z U%]҉in6pEh;U8V `J(uä)לT nY>6P$]/Z;7ŬDL6'lPɨۍ{A 뫃cc/x^y-`͛Q[<^k![5e>Mk5E䰤{Mhk> u5[!o{xT+ψwgJ٥{FtJFzKfs$}m6m\[cQɖy(1"4R7wk..r]eB.z]! ‹6.]`~.-DEdLr{'hr6]Ҷ/aAنrx{S!-uiRZͯzEh^ڼp+hԷB$I.{S cyi>6S[&{n/a6|ޱ/E4b@ pϽܑZ 힦3")ќp\+ W $Th_6 }8DzւK,\$$s wAͧ(M&щE( u٭1ߟX֏ͥlӣ0K{EciJ&RLշkD?U6*HyϤLwURxGYXh-X".=ZmXqIv6*u܊%(Fm6|Ү'Hjzy%&z શ~҃*lu?NR+2R(lj¡D-DC:@u4ŏ\AmSshiC$k/iء+^C.~/I&N01_ ! t!oHP~ZwSz̓6FC"1lF±CxTYNDȴ(*c-F+-:V%Vm"e ܇!ܪVK l?^lPҝ%][ࣨ` _$=j=iBu-jT; {E6;` {5F"{) *Q;Ht,;gt֤hb{pF_|j#Xԕ*_X\it(If|t'OE2sBRCR\%1jc_$,2 ,A 4s+}zLٺ]v(ZOw9}ulR^ `rQ 7b\^LN_B!6T,G-E} RӢK 1 WS2MTK]Ii=ܝeA 1 MGVFtIY.+h-v=fX퇨 btZ_P55¹ެ=Ѱ~Muk.iN[g$'B,YltTW񦪏AA: U'%^yj&6U:B͆#\-/iHFO5i\z,t }[Li_Yņ =۶vMgFzm3<=aA %mR-T JmdYLLzkatO ǹLo ,YcSZ9ccAz=Ea*;t#'SO8;Gcy hp#/S+Q9K(溱%Ζ#Գs1E)m6V 4zV\Lf[ݮ;e; Pxi4܂6ZFmZ޸ V)e`q5%1'iܳ젤u,kD2o mHo$i2_u%l]+7d|K0)_ jI1ٹ/)j} 75tiF՜bĆ{9>q Nt]m +$7ha/dod{F~ YEcl_t(gT0 j/{hU9kG6psm`۬ ⷯZ ;UfnKj^Fjӑ_{xOjJl8 waM=xE\cF㓞 ^j Sk;>hQ_u;~. 6,#JB1:p1f a 2|t[:3mb&F}%"'?KPj :bi~ V'ѹiYMCQz:csiTpmz#|SN^īPGn9d0ou'o_]#t=%hwHp_s>D6v)7||t @w Tg9<{o~ q}%Q~c;l2fVV#n4|I(@oD ]Yɱ3fu(l [Rmf^wZi>ufV6\\r`.Mxuڝl5>FUEeօGDzU,+\F^~>Ӱ. jgֵ,Z5"4%mꀼ-ělXƩ(==MH5Nӳs X#ʂnāz̆rv?Fx 9؅{ݞJMJJnO3v(1BJG6 O?05* _}n Tϒ䩟}ޯc@lF?OpocccS<*R+jƬ@]P% u{ll4hl]._ڗɌ>X.pϋ#%#v^,6պOZY cט*gR}&.7_309zęq{Dm gn g9&(&Z,K`t~"iyBVtR)/S5rЗKQ(=}\!$D5J%>7835l5)?o+, /vYX_H@3 -TaQoUH_52<;@-EIeY۹衳u^_]G/&_P>t>/?/f@"C ާ#h5Aq  z^^2qJ[,9M8 0q\&f` BiM$ήM7KY,'kR!R6F?׮m3f6C9||_%EA!P/J#ser?x2>Z<.+fioV}p8Ao4un;﹵uIT6Re|_y]){ J2ЍF?ߟWlq>*xg='E\\? ʶ+ Wʢ`ϧ #KbuWcen7NhuXǪrVDMa,$ O`^ ]cX[a|tOώ9 @QWSm&ބ:l3śH7|']L^|bj=ħֈO㚪^~erO#vfla1nG#JXn'0gm{;ktXoڕFm54[?)㢙$K<6]X Z /9 >~ՓfPτW *MDL'7Vs>)bhqL+ǩLGӱ3+jW|dRMkϜft|:_B4CsIV<@ϡ->A9(@\! R4@fBFunM;^f \7I+tX8ЖN+*;H@gg F9`1TŌRuROl-G܃M.*۴z++ p%'3qChQK:i6 Av^JOitY@F"oi넟#1lAףL{@@sNl3-Dx6 7znjtH..C#;jtΉF M7l>-7O@gy!C]lPP|Qɽ%~s& adf9lm3]@p@ f`9Y! 0|-pO&%e뎓Q;Ht4X.۸Hk`RAlB=VR`vwGF=R.fӷcjǮie4M*((Dg:&G&S".]EhMQGx̋`LmT̥J&)hKb L&Än,8`Ry] hswQB$H&s]45WOzOga'PZL@dFHЎvR?jH߹=-|QqHЯzKYk~dU'au-"(kVEU9cXvUz)jڑ֬PædzHWxOyUr? Z b2EV0[云J$t A̒,TGPsg{ϟоR=_=yl7~wQݗx x&xE  ^|H3=| r'{yf7џ+30CKvW,"",g W4 0WZ?~;`iZ7V~,;%tY,6˶rmj~)^tL2؋$i>/d{d{n ])6/{70uZNkr 86/'bmbkC?Kn[Ɔ8~kjىZZiKehԊ% H j'0GJ&d,g˨)jv$b<_Se:Kvo8!7mz[H!$N2aXIFc98p=x Ci&!rqzi+@l ntV@Leh <^1*2J:&UpxP`)V[H/)3!}idiySrb[ hc, S$ɢ׋B^@ m0^po9LUw u?y]$ƘPlS  ghIȥl|"ZS`4 E:'IfkR~]txh-`ķm`4PgԶ KyÈqLƹh&@A K p|q I I$ia{ew21 a6'`"(>vVeu|M7VTI㗷l˦,XYYNIAR>GW`:tȼi(Nxm^fTg]"ֶ]eqǣihiwcVFf[FuWŜ~l@T'((|'UςV C19p4XU$-3Bţq^_Qj{ GYiF 6 РcҐjFS"Ԉ+e,L R1P$SxYW`tĈozcڦFyMB28y9$\ԮoȗGmwIm=ɰqxd%9(euDb\ QRTJ,`iGN['RJ 4i?#VNxQD@xvyZƃCt(y~i|3LNKLاadŷ*sD[eL131mjDS E7nF*"C0UHպ$ J ˢ4rQ E#|rbl'ϱHAi [sr-ǺAieT b} }XV|Is8B*o½416ݿ[0/]ì5 CZjD#㾊ׄDbu!fq5Z :-xB&G W5 ZN+<Tj4NkA ܀{6Ž6f6P2rE6u ]2Pᴌ05;m;V]Q]Zc7y%Eѻi>DoNn1>'322F"1Wxέd:#?,&&{FO $aKBժﰪ"'h}mrCvEf}(͍PX yh74r4[J{C4INl(,BD,aLu ~ii;Sro $|:5f-tG^}"dZesǖHgG(c+ݹo ضr`_M+n@ BI5yUy&@Q|Qհ"/E,bu"/f]/I;j.ɿˉKm௳"?MUZN<:okf> ÆQVT.Y˃t';i6rW?>lXD٪ow 6\iźsL0oX^ȃZi4,"m XA^s9Vѡ'l1Pyn*iƅ%mZJ@8; ʏZ ́Pמּ=թ ;ꡪn^b5@$cAVhzhjΉt&zK1Շn-N9@bqc3z1wEX[+ZDjZbY[~ՐP}die[~yK}>ަn kB( wYea,XptX>O:uivև 'M]_%f2ҥ,g]KZ׻òuﰴ ?v ;~`} OSJe1i'ΓXzWc_a+tiǠ[ַ..戧z6k^{%,ɌZ:YH 6&.y .;uCk"z >q'|9wk_b#pJkO{C1}.1l\}k5fm7kk F5A;kK^%d?pf)҈cЙL.,AF~YOħw3a;H@^\}xamk4j2cnd!gA5{$l\rEqK~\,4w(<&N}ܧ{isLreHHD5p_;Vy :XGj#Y1)ӜW lxLtd[QhʭTdiQє\mlfUB)Ha0I.8+b [hc2lʴ?1SE"MlM;*#CŒ?Z$iҲFf:+P  /՛<|*Xo"LǮ` &*ig%"n[LQReNK c,J3H(R 0).qf{xl!a%vv]$Wd\ Ht(ב[Q)}} :=WDvBq,ugI ^sТ>̩+jgLiB ֶdD@9R3kN$zWic!1Yy=׻nhulrÂhGxzC9i9a^N46*\$)uP+)O0,)ăOY۬}A'uߦ q`i5Wi҅{Y[Fw9i}h0vfQg]1J.-20Ji"^8*jGUX"oP IwPVi?TwFm@Jb+BHJJ:½3#(R`&SgYI"hUtY+5:ꢎ& F tY mގ<`\ B]U"/ IAV{;Ea]AE *iFTMqM"pZOlD7`€^ڛ%WRܑW+hY l;T;ײpoQLsb=,HqRǒWgqyn$/>]\m:M(%~ӳ Vnuzug2؎JdJ uRSLTFi|@24bU 6om_ yezSE":>+Զ o Mq(TZ:B9[3nQ!6`bL)Ɂ"SfR'1z.`j&t9A/OO<-Pր4A9B7-+,hЎgًVr}7oa_V|0AkGrs5NfS# ?zGK3:@DaBm$"!7(\]D}st wSOn! pE(|jYBi!6GHCogTmxB#JrR)oX5s :FӠU\%k9/ag'("KegA+ y|Xl q@~"&e2pXH vzUy'\"uT ^EZF˜D* f?wfa9?335\S7 lfg&a02]Ɲߠ,?x}'jok?FIIw<:m%xd4ATA`A_f(4Q9SF_P Sp晰4@V!sͱmTP.T 7xNK ~EjɦR б"\7!>54zAG(os(*.Y8/#nov ޾I%/x0j(yZ:+ ФH`VFѽdF$~+FW_I@1|j۱N #p1㣑LދUNEӶCfeք):Uʩq,u/L-6*5zG3(D'v uMvuCőDU[Њٗ-8/QS_[-f2ĈKU g>R2r̩QeXI}HhS:Zwv?/p D]h22~[~|wmH 7궴nKEgoY2:0yq;QBaNЌyrYŗ^S`q\ŎIFmuzF`?;re>*Qi[ilB2!-cs^c%*<]S2+e@ʉgS>^!]E[DbȔe x42Y"j)n͏Ett$/:=t<:̄J1`|W Sb(JqAH閁-~X:>U3)Ǥ⒁IFZtxx2|' Y#)cYhOQ# LjVBffu-J< Ye>_cP3'`dg]ǶCb`^$ϸ̲ [3 vޓMƻ1^n )**pㅘ[]"\uLD)쌡gdՂQ+ IL/a28`٩h^e~sPZͷjm d,>OtT;CJɬ]1ocukMVP u2 ݻ0= w fq.`%Ӯkzœ.,w2Flbl/zQbDuJ͆ h+f}qj*n5 hj#ZWǵ<8ALaW07@̧cv48&d0wi`+q-,˷w"æ cY< ?Q}= #ZD+OzCۃNb'ScKLA2.#R ꔢ7QU9B2el˭6ц3%HD*1b*|>>Z9&EHhPw'qr$^5]뇸"4fWr_stZ GIjOӝg&m߇-^̕cZE9XA:S{jgUBT -x2[XfJ(jͪn 7 e}"N"`Y6%j $ф>߇Vut.`ZbTr" |񈩯B.1_ԍ?J97 D*-wK(%6+6(ՆA;ϭHAh4LU/3 *~ GN2er]E=ZE2t;(`Kf q'߮@:UrO=ǷFg/Nl zzpo:ɯ!^5\d OL(ojou0g_"rW %5mmy\Il%΅=ɧ: 1vfL-m*m+2c`: &rbE~H '!H0@;CE(^[f ˥&IsZMH'CJ9?6$>ec\L0/ڮ^{!㏜zN5Vy4;]b"%6%2sgz۱E@^XQ~EE꬯Y%[K%Tg?i KۿqagAK2{{QgLޑ@. ɇ. L EVƺpObLTCeFa$`:pr! ]+t#ZS=ðcJ$yUM1q{/8(/w% j i6NGM"W&ʻ/[0F ?E-+C0Cdw(Q'3 &l|vtZ_|i2Vc/q>! І$1lq b JJ>'#_]6ClG ;=+N^mvQ1xyoNF:P4VN d)ѧm;Gq([AHwy6׎p/1hp d9pI 55r]P!&_EZRt a*8PJ"fk#(8_z_h>xuDABa A9g3EN*NӒv‰ӳRX25Us2NoG/_~E1 Z1#xr2*nRQ64#z`CGYfM$$ Ϸ)[G%s/"38:-0DxSiqٺ뽱jc-(K촁প~\bB!&&u#FWIzЁ}pXiXt*?oKa|Kftgu6(( (fPc> _Xx"IbC1c39G 8Nn(6tH5U "PZ+̗,<`Aì\+EKb5_kUhQg̓1~ͺYn${?&P@F"3-44rM Da gKz|nojfLi] 34'o~,s,X'ӄD-Jnj 8ÞN0Q^_ܳ v)@VYl$~4\e=O_7?>{0=6S_-ʷX%eH͆,\wӚy9NL؟~1y轍л a*b[Hǯ)S1"ՀLw!_* e[f} 1qIKM5nء$\%N}>st ̋ 7! e0/]ַ_d6tB;K.-:p)nIbZuCnjD<sqɍ^X ǹXi4 N:Ս6埢C );0ƽe9ztL$>wS3ݗ~ߢi d1E>jKDIw8/;spNĆjbb&̉|\c{뤠tF|m%UA$qsV *rҙZQGi1c嬨LeJ״.t-8cҿΊmP> RuD|D|}BklmbwH|QSz w 0M325\'K]j'f騎NTL 08`d1 bۚ0[>8#Ao1څ:i'õ獵] J_lr0o[>x޽8)9uw{3]U^⥭kxdQqpl蛬q]gV)HҎ CM)fӐew&3<}ݿͳo`*:ձZ%( a#Ys"[ Fm iRxh#E]UFz6WCߌwPyP^YeREk$Mxh*ݸ!2ǪZk1 )c7o6ěFuOiE cP|}9H_ S8wix^n7wO6lIk;"osR3.ې QZ3=#RĔFǐuH,t*BVD)څ6a>Q>G4┎"ꦥ0QTqHAy쌂9|k?]W(x9h:y3u?mm}h-G@`dG#G|o{4Zz5˸H%^fƜ޵C.US Gq*@Z9-F(y_&ȭy0SQ(2,%Q_NQ8^H齲^yrLuqVsϳqƤoX>\.14,̢= ШܩVJ _bk5Y%{t @UR_mrfH } 'mX*uH4[=:Zj=3EW1@uʧ%:ۇ;ﶷn2ucE̶ã7nGGӮ>Zvo۲3ucr{+^3v[s؆cղAnżsZ]82ԟQ:-oc*ow~ݳ{둯hf`i J_R5~/d?/,|l0Ja?5rZ.@=k>2>W-z%`Po\;\n>ll/ͽqƧ愻.A4'˵Bi3*SLgj}5G_bA!p|b|FbV[Y9n1sLOYnp'6Z[د[y{tQ^dLz 4P>vӖՏjwĪ>~^Qvx3 ~ZvD((]C0Х\Ltg'xtH{>%KL}ڼ 1o,-iKFqq3ۜBA#v"A=tY$:USlqlB:H%JF,:B 8*.W(FĄ,BM##:'\ "۽ g B4r.U ;q򨭃*Kјm34ZC$r^HO,4I%hA﬒ Inl2PaP DgfBTzQSvDƀgD qej)͜։RU ׍؁NfI %c'Ct&4aC_dݡH;>3.|HQȮ%gP_wI.n(Q.z]kHЈ_hqy2D#_ *{xc<+DΦ.,)~bnW$h"{BmJ|kgm}_~篿s=e/kg! (z!3)rIoqG+PgHq!*]\oy^VF፤jPݢW`%P1/ ' ˑCDD32Wb{iζ:2mE2>^]q/jܫr[}B cUT)'̮wۖj&êM.n?ZWhFy4atQMsŶhwSV :,A 1C_<[bsfi~s,о;0P~Eu69$U-JPhRp7ȅ8y_. 94TPe*Z#?HVCZ6ރ&!4'kvM2Ͷ鐊W⠥V2}ԣ_-y{8Ya4 QnNd)qk_&l(f@ '_\m~`0X+BU6}\BON&@>i3>Mk䞽޸!u`q 4AW($ew(ŢK2dݹq9ySQ&EXdL()6!}b ,KYH3TWV3=$|O3,ntΟ9S_^?IGIĬqr[ -k-"F1_tvu.v:'o￸Fuގ4Y༪f[M~ 12M7oyx_y:i'VX}Q}~ܗ Tyx}qmo?Ÿw~y,~mo/{ysfnq~\CmX6},ɚJ r\qT}T^aQRKPG&8Ť ad!`,~#4ѠQC4ęNYh0؍ ¸Gfq{3BG{\-~i%Fb0BjeyFPnq1 оH>̬=-e)Y{6nda=N{6&-vER,ۉ[P OlIMZV$okR@IKy3nP(B<Fk"%0W7@j*f5tװ?,a%2¡8 4ZDe$wiLUssZ!zT mZEԚrݱ{ёåEG}CBCߝ _8i,BfNHWheӃ QFϊ#Ks#bv%F| _Yd;zxװ?cY3m#(Fٳ+JwƂASM\ϋmM50)z\Ny0w&#IgKEQ~ "³F8\ŪW 7ݯ eUT닑x<ȳ qw0| eU4T(t WTPw{O +ן6POh{1F D4J}ƭ'3'{W/#B&83eT~YݵXs8/EcvwJjIDqT z?$ƭxmnn[A4$1#rs@eB#F,:ܮp++ƧN9vy]+UP]TDd0Rz LN5T fXAsm.unKbQ*oA C8lDa x##?/cˋL;ʶa(eJ,ac>8u ,qqӨÂSDuU?4tV> V Bѯ*c#Ʉ8?0@DNiEB>-k(s=$f{%M|[^Morc&x~qO)˃'in|nq8/ȻrCf3_A'iڈ9=$.9u, j^gr^&оcnW.&z% vMyꚶ/24W%W/i|2d~~ ?ݳ`o+xI  9BgdċFA `EϬa7An* BuoRW3KNhU:bYuuKt<8UX( #M|(`[(fM-y6WBlC(Q d7n8:<NG 4;(** rZdl +FCo)(Ysd&7P)pO1o3޼ۑ,#z{<{'[& pQlf@Q\!k+@ &dy+HWϦDI׊d_zgosPUȶD7MEf]\D{wiU[Ӈ#<(}ti5C\VG< u^ث%WJX%6}3>tcWܹ`>yhVzo3e'3u gldod4YvL<|2-l79~h E~Q]gOsDu`. +QW=oϪJYf0.ZhX,jYj`~q 6Ben~a6`W˖*X'N` [53)B3u>O&Uf5iE dV]N8:|QK 87}Me6uyᢀđphKIh˗'IbU«>aQT bԎR6̛=$Bބ1 X, D۳ B"OGhE*X./nKo??xq̽84xɠz:;cYR2hy)舅VR| As8Ԣ ]/sէ>~gBNGt#YjT89\J\,Dr[E+Zti>p\՝1/~/fZ`l-^ $Qޖ#Q4ܕEVqbaX[ݼ)D md`KL:G"fkqw!fgBgϔUh%s0F1hxq&o R3>ΕCaQowR_xVzYM6\K^/z?X1U"'iQz%w_^uN?تC:<\qەךs,ȫlp5Gp!~eTcZEѿY~xի`)8GrchJ1ׇrp&xx,Ӏgt DR1%aг9%QP) y񧳆 5VMuNO0?&T 'uяQm4Lk]csvGgquɮ`F>g^wXaumeM[(l0HV؎& >U иI;H&f[1UYy_k. 1k cT 'D@ÉaYh)_i>NKYU%j]HZծ -"E.:vLz5&<ʳ!Jȕ0IDźleVսliW+BL"Ccx=[ݴ&+ *O2 JJ7@%2UGBMENiռp ގ6J϶܆֏J% #wDA6|",%i^^U[5ͣh {XG6RgqsWWNe !01}DNgh4_'%q() ƻlll! +xu䀄@nd%)FLd1tw_Q-$7%nE57V]$-D1bIEM95R]ynMzh%= ((1zSN[vZX xɡYW[?ჽBGE^2ݓ>b2C9[iK^hi- ?tގ^P^Ih$K[N~/PWxbgȑ"([}$.ᄑ7K 9m(v8ӛx;ļMOTw~+iOh)ADTe)n3/i5>^ݥ&ب^ǁ}#I]z.#F~C̊6Cڂ#REi4WPa+3/m%*b#z^`菁C0:JЫiaWx#ŧ<(xIJ%!1^N:ƨ m,cHfN.R[Η)l*6_J=Nь[-d[튲O,_)q߱  6C]ˏ?E{tr~՚hm@0,;nm<4[[_DyQ[([;Jv+wZH/O_NWFMĜzTGT>]!nhM./w3{1u[bA$.o\qDH#MEeښlgS!Lx1`wJ/ޚ*c WɵtBZU!ݡեmcGͨ.䧗cƒloozk Mm-8VWBҾӮbs >`\lzD,u-xAZ,Kaʟ>Hg<;X^a1kB1>H + ! [ZhzP|']PE5=jd_,G_R9?,j3S|ppyy<и:Z!m;8}ڣ+9"}|~BÓo)<aZ9CMd1*S/.bd>_Q˓$~IFxow>}=iׯݽ(l@˿ilwTJe_}4{z~˛O˽WZlk L6)RA d\LAU`BҚ4-*Q_%NW3Ҧ|{%9%zb~9BN=#26$j*P@~^X%ch'T |. k)T !܈vs:3/1HM*4Qk}=Z~&!>znӯ\WXWdCj ʛWƕ02 o\QmBjt~Z_)XN:Ӫ|j˾5P%g. V!$ )6/}%#ۯ*M%<*=oK#;#oB C %RjvatT^6ʤz"ƬL, .仿o߇(@XqO&FHMŹX(uAOp ;MKz[R!dE& V4LT0-% knHÁyd[t楥~Zzk5 j bn&@^4@JK³ ':^8@A˘s щ% ^U[::䵿9,k\#QZ Ψ;ɠўwM/Vou1hHWWhq]Xg;Jdd|FL W"ł{EUy2$ bP ҩ1}:NȐ}71d1aY&V"UG9?(2/F;>e#GwènpfKqWܒpCQ،TAc7HRk4M~iV/uC'l"b>LlŔSNNMi))dGAVV ?L#J_+|#Vb8Ig,Kd&k É{,Wi,Be*Z.b(T n5ʉWu|oP%DkU:hV:PͰ_ۨRK3kP'UB X#4# |v\2~TY *i7+M]KD<w1*RJAq' cUB J-?SA5_R,z6 g÷,VXfmC'&ɮ:cE}~I_l.YGxl*)XG",-n4| KŖxkǧ?ckR4m[@X*YEm`ۢb& Xlf6omH<'/GTvA[ZT7 ]z –9Of1Te[ETP\w$ #6R?t#X{QuNS-7b%[ ٶǷ`b4~K+"gMO_ z3Ky "J=^< vTEوܥ&$;lkj]^gf>BZF~0G^5؉+Ά?_Wn+%PU1i~.X t-P^(29 ؤ GN|wd1J9v}Kh/̄XJe61:Z+N:}. 缳aU!THZNDC|AJT 6@58)bHh`G`!t☙N|ܪ4G*/t`K;2.PAIy? s~x`[awY̏Y\gm)w/Kξ1;˭n"e˦6 W Xȯ\B`KSr \,bVfS 2 /Ų}DB$:+rC.Ac ;REd,+f4N'7;7b2eZ6W|3qhqoS;2B%GyN{p%~Pĭc@~?Mm{u BzHK.!p[e,ѽ(iE( GЫfnqim1#L_ofvT}L`,5KI¸3pB2gJlыg۪j|Ӱg:ѭ@|0 d|sޝ'x|?9Pz.V+ XnG[̾~P&ź1*JS7,DJ2&Ƌ arId:XƣL6Q)݉~|CZap*ѡ7zO"yay^2;P:YP֝m?")CHjЅ֥4xB_Q/2| Pq!%[]"_}ţ :QyW?^_(G5O u'0] u'~|bKZQѣz.kyq󋺷0{V \v EZ@a  Q]mD;dY7 n[}ˡQ ,"bƶgBh=Ԕn#2QrT ˟S4Y].ysޟWI4 )5~"#N]4?U{ ۫.f4Vs}?(k2x804`vs؝ -K8prk9й^L;+#[ЍKzbJIk;#:e\D1tvC+yz6R&8L(j+ A[IG#$O(S6"ҏ, r <Dqn#:ףg,FiVp՟/| |"]$$ gS|Oa`|z=P[}_~ 0|hqq, $`r~itƶP~Y3w^Wj:Փja>3p9|"x&)BcAEdfóSm9pxQ!cwD+c~3o2y}<)m@GSչmVu$2<4;gZkÝ7Jށ'8aI#BRxVArPփb]>h8s2@s/]2 6{dY ?P Wr|E͉`)y@ff5/Eax|CiXD뇄b/=^_byk4KaVN(Te';A܌2/eeO$3=YvE#{P;> @A"U"NH0.Vq|B~/OtöW(Gck $Xd C0A ]!_p<尕9P{uk3~4 ~&Q3dP`6m%dU F6ؕV"F N\ ⛟2:N`[DŽP-I½̀#n{U4J)G?ljhk;=(]+(VĞۄ3"Vf1`ۇqPT# / 2qomD%Kt}eMB:m1a@'CWx|͌RkCzLJ&r" gu Ə /U- <\bog`.2ɖf{K }j IQ)-d,#%clhNۍ6\eZrgrϚt"e! Djjozk0 g؎cTaT[b:|e}tJ>9EQ N18J žQU˼u]7.`W:&7owB1e9M]O]QV*]4cV52M~@*4t9'lV3UQ <.o$a4{`u aHBSѬmp>Z8"Vv{cln 4Skp<\AI5zXAl$._Y2>n07r%/{=^qaOG`F2x㏪^~:u;a?ۣAGeu;'(K:&|2sL;xHP-Dpi|@Bv){/K_%8#;`zqrYy $ 0`M/uz)4R҆(iInҶ 5a 84Mن`9(?%7ˎY 4p\!g`>iTwm0p111@ϧl}QVS"jh4Kz/`U)-8"DK˖rut|Jv 6ZCȩ,#}]|#`NB- qpK^n(+w͛:2y:~K\sh^ %$Kw^*[_Jaӆ:RdDbGHEolNA WB7t!:ZrB,Πmŝ;ܝr-"rir`)z@HQI{6Z\Da?*,jAյq%!;6E硎gg/ONc~I{e7BZGx(e\\dnoTǧs&aQELX ښB϶Dt߼u)@2ha8c jP+ U=G]>2OVi]K{Ͷ\bc1OIg -Q7 qZu#%IĂS^J[ +ށc@CHe{bSx3*cY2w4eM;NJtۂH|3Gxg91W< oؙ7):*)M\5l7y O5Fqk+q"h3W~aFdt^MhR4 CW}?Je.Lр No]YSJ?R.qoOeC_.݃ET z??ՌzgLDK%tiU: zʪ8n)zkKQ$3@w~kONe|87V  dr6yJt6S,`>+9O:_ @wE Ė+TSE*B;( zπ,i~k'of_b x*nCˤ@wɽKeqE'^u΂xWg; 39yn>~ӧQyt.]vǣ~J0f?+R`s6~3օEQ#2 㤸wrVpiK/<;cl4,Ivۋ؀bjc~t,'!}Qέ @}0\LLe, 9J=Arˋ-μ3TY"@aފ¶QDfP HqF)"Rn7"G߬tZxѮ^(;(? ،nKy=F:Ǵ*2jlj`[";&&n\[;Ȇǽ,e* ),VR. 9resDW{fu>CD\>3GiᢓɈQ6N{zF xu'b3aiPIzMzYXcivSO1[ 94 R]%`zۊ#S%5ASMk f"J`R5`S5e;'dud_ٽ_OCF{I6rÊWV"_MpR.F%f/h]O.:NiﺓXٳPT"fјaS x%YTClVSzr&90- †8E t4R7~3-*2ZUqѓ}w3v&TOܪK)6Tsc 7Vy//0pJ+۴ojO:$)Pz"ƞbbzK_`28wwtsJ>jIER6aꛩ(E`=wf34c5=Y| 9wiAW"B~7L Ub89(D :͖o,"uΥ>U͈cbx;rRHgr"xqKC;q0/{ZȉEPuu ;gHpn.+$؋7 lǻT9T Hߊ视(4>˥&46@n9.Yq(N^b/ʹȏ mRRxxd =c i1k(O* 7tCd?ЩSX}'L^:!Yt{Mܰ14DΊ0;K 2f ] ; 2&~8,j#BOYi@2``HP2:ca׌*ĶOY0T_.rv4~=IUU!JԳJi19븰gdV(o䊡F~4-1vI663ɐqedIe4UIl/#mKnkH(>̫Fno<omƂvd̾f~DvtE_SE 8R,=ތ&&$7R[mRwsLϦ&S*TLDm)Jū/ wɉ٪XYLd=ǦA CztyoB&~I*~6=?FwFFA4꫖TxͲwch 7$d5/Ɯe>tg]kp1W?ڢQoȳ[wN11U/n%ci 6V mK@k`  pS2P`&駾K-/Ie_ErFx(}KTa1x"Ǎ8kiL bC> ; Hrlo/h"aDqnq׶jR^`yZ0ԚM=$NJ̻^K.ALEMU1: ̰E<uוI*2_=NM'܈2Zܤ%OԸ*jgRw(*C2xoy}%ץk%Dfl]1GS R+ _chhRL.V00l:omV l@o&ƘkwvxXtkvXUTO;ѿ;mŵȩcᙋ48in ?C+UUQ^ӥ:yěʻ hs1 .u *?áڂq؈jULYx6Ԇ15^{d׀RLyΠR8o;^S6ʘ_{q~x,;a =8)M,\ˆ 'mP+:@=3LzB%oH̨FE;zv3_s/ޕ{l"Bk-OmkglH=$uʏ5gy&M5di5VqcBsc:=ތQuɦmʛ/s@.ll}L1&B$7#%"JX"C+}lCzL26ww"{Vum݇#@L9)Ki/qÄpiPu ;- P .yPhs@X> :]G mVIsF-ٮ H~ b6#L;d}ݹ`2sD^IK9ܚXk)*b,a鵹) v{mle2$5Z}Zmh7-x썦SXUqQol jFJՕ~wso1aّA4XY4o W/KUJ3^I)ri{rJNA9/3n@+A9)^pމO^(( sE[;uitr cV"K_^;6I.٥9[x EAv {}+?rfˁE蘆`p^~skcc0G' u*H`n!x޶5/7n#8:sREEao3 Mb [SL Fw8XOƻ`qs:#(8bAzL=X*@eM]),Ȕ_~駼}KlnAZ0Ebc^7HOx>jkeoX>ވ2v Yn{VBЇ߶:k6ŋG4֠:i rmMMBk_޶vk(a4:Ի'/Ƴ#D)BȝHl'nro4 <ư^,nNB'k뙟ģ䦅&]V 3";*9/O5V+IbTԨV9j}lxLq'Q}Ts *(mOx8)bu؉uJ_ŗ_}f_m O?i1xwkEտtİ~:a d}-M#T~n*`6!PS#]kᴌuVs+F(!jjz v2c`'bIQf]6nP_n!pgj{Ww(6ZpD8̶$jBXˌ;Xcݝ;7&e-*ۖmNY4&SkqП]._r2,yR[dU.E="+mZY)y <4XsCKR+ཐF; 0럠++:4ZfvD6e"p"Wg}gwR^ʸɪWn1Iީ7?amF_e 6 >ؕ٣|I35k6蔚Fb]V9 'ERyfjBw<ɺGqB? /fERxZFeѳgzVZv ]ɛ*I,mO 9Э+NB g cUc B1 D^$ _UCS-[ѵL#[_G>}?p2k?/>{,/_yeU?/̨˓|wo.T-cL튌H3j$GEU`3ܾ#ݡ?z*Nn,?4HD LO  )L2|0Iq2uc4N䘝Oias,0l)-6# }Ӵڿ27ÛǛX1l9'-.7fn*"Wɤѻ@ u3#2]Գ}vk^ &eUn>l}4bBاK L7ٰOJpSNRxT<#nkq)nXA=ԅQxW)59͑gւ􆱒&i)3$ayQzTIp-L<nǩiӅQY.(跷k"34/cTҞt"%NgA[=iFFsl#2!u>%wb#Yҫo%o-6+f N" N v T2k*6}?ض쌚W\BԆjUA \Bh"^dz/ PnL@z02)D^=SQumkǑ2 xlgd}K7/}n801og;4ߺ`ACqcB Ts bOdLG8JV9εwff;HZ4t8D (h1{;r8xkwG2Qd1(B:i8_ مk~66 W+SldeǤ- ioDiVW]|Y Ex_VWrU,=MɄV{8Sp\D( ]Ts ,0ŅN- ]ˍxDfx`}%|+Yv*ZJOXޫD'4St D7 dhdGX}?.#(rB@矢a!SG'IR+%}*?xfq]z}k\D3jݻ1S)DQNg̅jht@^ {b:XÆ'03! ϛ 9M6Ќزe%hm2\fSzSM}/4 Z( f@0lF6+V&lеsTp.}vـ EkdưPE:cnu$.St&Q9̈ҵJ_vl()rd݉=oj7[#Xx'Z{T!@ubXH@L&%s8j+10e~1$1ZEf;/tAmzW6ɩx4n1#YZ<ӵX“]t6 i@CcDK'pR@Pqitd<8ٺsJtt Ý 7ZqJosX\ųZ]W0 U@,S$_qe,CPzt}k! AX=z YeV 2u ݂Ji Z$ucSF0T]7pW㤴ig41X-J巷#? 1%h ڨT%1n]k|cOZYCv'1uގ,O.`B"yr>LZ4_x'\tJi )A!4>袯z*Fܑ|KZ[[n!p´d?t0rV]V8hiaQLE>'-؀,%uƬA].G`ʡ}Km[:E!Jg:s5'$mU 5SZ+.T14,Ø(9lqmiӎ\wX akihI3\WY3GG]V/H7,S! )hΕMW `$n%WY1ĕTaYX%aӤ~eHBII@9504DO:cKhzvpRo7?Ň5:sxHo]!aZ}JQlύdLJ`qF *2TZ\b]XT~T$d*RR}aK'9EkO%67 bYp;Nbe/ 딖(msۡov&>F> y20,94iU_/TK ӌ ¾/o߸WAiIŢl[U[ߺ%WFr!hW(`;?!L.ЕWS eZ@:GE3PV$ E mzf?*[ý+K'뇺zY2C gnԈx#H#`F؀Uu mSmEp4pvguslD;˩59D#`{ߝlHR;~3{J3GQ)l0,LՅ AL8>2:aA;F ywБ4D0N ;'볷VCX?e-L35nW:} 0ch-uI5xMw!+􇾩9DLfv9x]ގ<JWaա$&)I~A1l@Ro1iA Djڈ ݚ|;sL3PGWt ww7`7qߔwf>o-%טG^>cj׵p-%=5aeZk>]XIXp$QBc}6&]7u&ROF+3Jcv ~{d cG`y"Q0T:"%a@AIFZh/V'ż8+QoqMmeOȪti >T񽷷C1JD5AOn`(+2Gd5g?t󃧝w_IuDJvh?C079>h=iI#BAa:RщO7Kb^ϿtQ=o#O5sw$ʪ:1Q^5)ݳy<̷{UV)l#pT 1q6fEm2uV\Kz3R]sw@d;NH{738X- x 9iBl`8Y$e`P{F9SҌUGI]lW꠫=sTaJۮQ|K'iY6TNS kv!sNA`-_!]R)B:gԭ][u;HxS693%o_9`:RS4Hbo(B1Єݳ).Ef)O.;$K 3E]faN]睅p&bޮc=CSz6qimcI.q*=(=ٯO\D`we~r>UǺ⇈)r mGm _ x*0[n7$s^qHSQf쵥.3g0<1`lx;G[n/l]u^jok+J kIkVԃ-xrUmF5>6fhs-A9-;t{Y :ɔ`# E%'R)zJs§J88D9|On<#W]mQ>':w?/xGgǏftWDx›AȻdhT bOo߃=ړB;sZoL'^Z = 9f,)9@?o*QO(ӽ1.pJv*~ٶ7F먬PEwď} cแA9ZC?K5z3?JX=M@%*ǥ^>8ҹkldp^zeK}IgG\u1te/$Աi85w|8p^:Iœ/С-Qy~`/Hd#qe]c ӧ#/sP ]Fj=/\L<'S N%ÝIçYTAQs-z@\$Hv`ҷ"(7#*Y^瞭Y;FY#qEfu zrjf-,t|U_1F/U9gC9U87eH ^̲FBڧ R.&gPN~OPht\p(XKk;[Ga !1ap&SW[9=ܩk*!x<%o%:RZ$9$lc%#Nou8J!K1wg$iNv\_G;bSnPK"e='<(4Xpeoo`u_r=wt>OVC8K;=r`pDZpUc{Qٌݿ!;2$m^7Y>,ؑK_ B: _ 57r5DFx@ptptd`_2 VZ3C:0cxT H3iA #36s/JdO}LH]t5+; N YOXI`cb7Aj+. !y\@5CAmUxy6&̞Ccœ7:wy5o{ l3Iڦf;U9Ѭgj+GVajbxPC~ yRs7s c"wA6m9*gZنMHn 䦂.s ǻv0&d,+ 0S{`')Gip0!.PJO-zX3,ԗH=+/.}VP8iRo*h;tLl3`=Њcc(ќawoku;!ۇ[ۇ_/c7/bz0bJ(ak~5s->h_'[y<ְSVhZNd ;6f`CDNt^?CӲO2 ]T彧Eydp_y%歰;[{ºY%BUImRE14DKOJO4[[v~\7xF WJ}?H' ?|oE=F#eOϞݖS^n ׅ{n<ﬓB$d%*ƬgF_W AĢ(*k4o]w~I183usw_7ka[=qJfmYz"f pAHz^F~q*Ե?r|5jN 5TPIA7|+1?p(j5mDvxDUXk%x<-ĕX 3/fM-.^1%MC}u;6FSU,_ƣzʏ[ҿWt㦞6_=}EV̙ʇQw;MML&NF?tZBn!:Rч\@^&nvYޗrfՅ~:Ymve$ltXVQ E"pz[%I=[9v=J`珶tj<TG C˛$0ACph_Ɍ޻){vB7I{8{)xb8]]mVZ.tpcU,%s`&* 3=dtF3Xz9Y\X7B =QaOְ uidR@Lע nqsY4{lYCp \⌭z00VG?.1 l13!C׼5)Lt@oqୌzPKPXMZHusetuptools/_vendor/six.py=s۶)1Ks;Ul=4y8 Y)%Hzo@x2.bp8a\U;>gXGfk9fn䳷p0xNdwYވ~{GxSGW}M Dd<-K(RYbMe1Te xA\rW٣r"(2? 27WAm5gÅ!vTZC*cG>tqlU8¹v c`01$3- !x !jq!Aa= 6S7*O#?a"0D~n]$=3X}] CJrP5٭*EDz!K*֖L|Ǜ/z~lzƆcev vM.`]t`Ws 6>M!wvyzlv+W7|v17WT"6.t~ c qvst?^ل]O79Oeeдb&_ut(yd_>M1ӛ%6f1u~S -c6( l& p `^N%zoӟӂ$;N΁eC5=RPYYYra54N! G#/P,M%#et8i-m`8n8NذaOKKBώӻ堣!<$S 0[Pq7)x=Ttq{p1lM2V׷CX-YoDb~Mt7KǔiQiY`Sl([ReV.J .&/f;Un'x(x+WKWpΜܱ0F-}_D`wkQI&~(|YcSY1Ly-#lCjԗRE^G_H}*;sG/BsG2*ôiD%#Rm9y@ě ʘ$"R,=f ՊTcJpjzW %ۣnc"d9z8%5Vm9p\d֎N-J*f~6l%_ uxĪw'iaУdTQՃGGd$ShKb e[3@OӀc muc Հƛ|F/탱5IGqPmet n A0MkЂj6CV{VnP%:;MYa:T@ۡ1mi .ug@@Z7ŚlDvŕ;lIbY/ ])o_U@؅GX$gz.qa+L/PR"Mpou ZhԠ0Qb4#?6t0n͡1,C$ |4}LVZw6ƅ#h0Z! ڜCWSYk{cҦeYmUwup3؆ Vu.ueTl iDHe%3npV-}N8"\himdxf#+^4e0_@zܢAau$ 9aMkNrÔcjR9p׻wzz@NKYr}մFQ$r8W{`14 )nߊ{LmAf@V-ůɠjwkPJM^y#S/˧e~Fw| EX I9`9Tkwd֩~7u?]b'<= `M :SJO4|0䴭*Q󞨒?\@`ǨPMp.c6jfҤvX*|-mh%xC2ݎlSDl|n.~ljw|::.z Fbe Lr}tS &p4Bx!5dс <#.fPz Fc Dʾtsq~]=|@ JeI&߸Al79 TB$(߾]L/n;FqA|.YM%BxW%C~^Av[3Cd_gUF. =8myxׁw/91Om<'6'K|lw3QNE70,FBdΊ'Uf>tS&R| ڮUz ^I=iW#pX=>, YIjefoGލz8[DZ)_f9G}Uҿhv"%]őRƏœ"wAuÅ2Vs!6Pͪkwv_n< He3'v]Pr#qKRCh2MXoYiY%cfnM& 5ADEm|~}ZNtP9}5gAǏ6`ub߿v. P 5**\rr;g ꞑ>-a髺_PV7#mnd d;c(UwpZFn"{ >'T Iu+uѠ/*Ռ G&eS (r!w^mƳAwȋ58vs}|v8d/dOgD(q%5u{?UI\<7T!Zm k~>*I)@ܬb敉q 0j86j~|R!ga A覼ʹa爺Τv:N"-m9bO| :srZ;g\@ٌ+ʌKYϸӪ|/Gr()o`bOZG}A]o[AzKzsV)KVEKoPzr0O"fUuWe'8sFWEz: |t&_B},q1mP՞xz'<'f9I\9F.a/j"DՍGq4fGn|P͐)z.>Sٻ|O&eȺk5fax Q*V3iQȩ:t9Ԃ̩DVCTUүWj-nz"4d6U/s~+Z5@Z&c]:d1jx0tuvcDgh2|2YH)*QK| DS̗;BT.n@T!7M6(Ǯ&T2:`q.„1k T_B/M 12X:Ƀ熡dcOxmVF[ ;!8/ZNohY# 9Ct|SO+RywtKe4P=;Qn.(saiaMb&^(aD(7CUnԺa Qoj KA F/BG%U}PA]+'m cTeVONM.Ӵ1cg2*e^T񄶺c BPFEPqw 52ƐD ]aZLVǔ j8@5v*6 Fo}& 0((n|F!cH60n| e?eN j8 th@FtrFbݝBH>y^HlG!gu6zcR Naa82+| e,,j6_tӭW M:Tv"NMcGttX'nSϣU~SE-OR5BoE[ފAOoO:*H枌D11 ^Џ5pdZhr `(Z]ٍ|DAM8AP M.RMmKTBX(Na&ͦn.r=Oz.t%\[ {c(szk}SIL ,A]ʓFFسijQ+%NTz5s# bKPzʩSǭ<3 P`.<7ʇZbVwֲ8![*h-՘hkp;jdr2^hV/{djmEA -uUgVuGei/Pi^XغTddBr@Jp5AŜ 9Z8$ ڐȪcW2{pe]I?q1=3HLrڬDMic-[8xt,F Xvp8ٲmH"`ʖF lP3OpK[ 愱%S@3.ãcr6#+M]TŐM)m1Yh$) '^%E "vdp¥r.A 5g8I әY;~>Qh\1 |nt #1"Wo"rN7Z{@uˉ-GNh9T" j^}eH94s֨Jy7Ys(|FMaL0[ܽ7f yDF}khXhxހ`þ~%I$J ( JX-*ڄJ('`GЫEsZ 0S*,`cD[U#5>Ι؜FfN0yO 5($5W=F3Zޡ$t\A7$PE;Kc&S.Il2\_OdzyY/䉏'jA|}6. J1 tiU/`m~Z n5B* o2Btdft7C5re\V ʘ:˺$t#6{rx>wQ}n{b`)Z}hC ":U'RyC$01u!7_Q' ΩLRJ~b瀏cy1'ESMy74ښte7's4fh[-7jϽXnKU}#M ip堤8q1V0x,ԑPU}-B.An 4z`.=b%>x3ci}#)_ #T W^+Qa \&mȏ#9zw }UYwbh % s(~CSpCT[NH.|D쳙c(AuqIІi;vZ1Bm+ʄ!LR$ E' E@[pǕ #UёtSMpQ<_zzynDwE>沨7ֿ๹Zё+-kdwt;t,z~'Eo@ʎ8aY.}T%;ʳuT\"5.6W_*Eau.5>dm tUfח`Ys Dne.=w yœsf!!tԈd/jdGJD9E犗_|O(jafp!޳I$2P%uf[4X^A,K'i(#H+ rJzkcK zEu~1?M,h7 bPS'WkI-gZEeRGɠQm{Q_rx&q:c6;kP˥-{ ",>F$c~ ,JM ߸ mRd*.,PKPЈ)setuptools/_vendor/packaging/__about__.pyuR0 +Dݡ-”^J1D:}m'9EOzz )D!c h 2#M%-ȁmnuXҾ9= yoh V;)`.8^S1 naDdBLPjZc}DAJYXJ"AF)mLb~_ UJHL*vW eѼPdmQf5K]5482]f)o?B61B2$}M,l RTYćÅd>{ׇASM)26#$N&.38+L^tϼ>ɕyeo,X^\ksaxw]:6p e7PKPeD2(setuptools/_vendor/packaging/__init__.pyMMk0 l}}0(t2qVB$xɯ>=PB]"vB: ($^G氟jAġsT Tv4p@}u- ĄYg<ȑzhُCbS&AcȢ`]R43]a ?V1ICet`1^tE4hA,E.'+ &\ PRwOBE^cU.[ NySj_XYmB- X(n PKPfa'setuptools/_vendor/packaging/_compat.pyuRMk0W ދ66͡JaK"&+*K4Ԕ$gIJ|nD%т5H=̮|"` c?ϛ ; Nm`^5ϰwODxv -xE[24h؇Ed zb46j~@Z'>z;3o7gk` Ʊ\)Q2R׫op8Nw_z?h 9%wDQDj7[E6ҿTO<>QJ,XW2p[DM 6!$'dxfo_06ef$< 9Yt#IӁ ӖQJ|?j]yG`L6qѱɺ"mІ#R*bi!JڋtR״vu؀Q4m}xO'˒uA_J=AOڗFaXtT ~ު?PKPkr+setuptools/_vendor/packaging/_structures.pyݓ=o0w~)Y@XC?R)R%QWˁ326H5,|zB:R!9%S3u@ #sS?>:it0>6e$AlbYmC]mbe$c0RSV !CR$֔Ȳ2Q5!1dr/a1TVjNR %BĔP^e,t1 L 'H]qi6æhX 7Ďw!x5_SvuaC0ֶ3zRzU|[[S>)bHh/sNrz@Cz#6ҐǴF_N:q#I#D7PKP/9 L 'setuptools/_vendor/packaging/markers.pyn8_*vwpEiI:b CPd:V+JM;߾";y%yxn: ~MVi%4՚r"HwzY?g,&הU&9IVػX\QN/>^- JqƤ pZ3QHކq]]RIɚʬ(E2p#iidibW3.Iv#XHI͋JBKtb0XMywa2|gŃhʦ +J:TV x9/hJ)b"$s{%3Q,rv?0'gM_:&5Lbgégr@*GftMR4~&-65B4/6x+19X+$M3_``>d A]Gl-jG+1Q ̞V H^fB{x ]px4A~$;J\$&@Ŗ5wWcY"YLJ ,d Z3*C8VQ'd AH=֠ EkIBJkjPlMCv0!U!4ZQhgzs⠂LÝ:saG.Ġx+=z$%2)$M ͕q&r8pY!(BbC3iFnJ3'k9@%suG+R]/Op; šA9~zMoauZ?-.dGHoOOᴤ{O g݃WjDZDwJL$%N:l ~J̟k{l#,5=,oq2)m?Lt~{ZhJZjJ|d }Xk.֮abCX:76&`GUUfcʘim[*C<^.0]/.N??\{6}ӏmt>jZ0poa~ez\~ SRQY |SVq=?[m"11$[vϔ> 3V|WKT؆oeB~Z|0U.vԡ^F.sB5+;.旋Z0B8"&VoY~_> [9QWoFð_8"Y>9!.#=2\ک"~2QD(i6Ɂ-dV0[.G j .JA4 TT9B>҂NDa ^ [+AmxO6PdcJ$IV+r--6GH!v\.`+ 9FR8 4!g#KQr?mHӘfXPCd#*T5޶= X&|#fC;Vf7"ym(>ԆN3zxY'#ב* }bU~״"H:$H> _! p% k 5,-. ց6hڑ芌sn9ߊ)> $=z?H,)]y,ϼeY~-W|.{E(PyDfYYivia`-jʸ4U,ZCt436(q|dLU." nmYc1lQ]7}$ZϞ|wF%&뚖Ì>P {Ǫ7'dg7GS HL:]`nsQ2AjuL DM&XO].W+MR=it+iۉ*Vpfbn0}YL?9lpsA|b v=b`jlaÃ&>rO}\4މ31qPmͨ_qݖ V T =^Kg%[;UaV!N|TUTel0@0:n2t2|*){{oBRTp!1# CJGAh`mwuBk42|LL:N%1GbHj38]uL؂NæcT8q(=_q3)F ۹oL+Н.?2$tP8}C>cR8SQ{$Iu-oV.!o5%KC}og sySw&iaiu53L1Bc~U9~p}Ùr,& AOfmDV9M'EdJ~>őE#_1 {eC [kCvb +bz  -*fM cp{+>#zU{PlE[ei3uBEM@F_oV̓K{$>¸>pil)~V@=~ }!9˩k |u4OcO ,dxn8ؠ,#MPKP8W\,setuptools/_vendor/packaging/requirements.pyWYs6~@臐#tҙSad&DW)9G5!)(I{IzͯsVyAg%.P/ $C%G IF //ohp3_aiW'D3BpЏdzRHgLl-dV%l " ʈy!Bg骔%'i͖q`E)Ij72,@[S t)N%!$7N-,1Esn|kԒIfb<_s|x G%jp6#!E&wUNɃ!9Cv@Ce_E~n aɋ"1$Qp*FQ6N4 H*F%|[CY}, ,\YB9'B%9g?q\"ކ݂ +VB"YY(*xz5F1K]yHs DO e PY?Y:TL \!U g55ճДuA;\6་'{츱)0 HC5.M ތ'I܏f 7Qcw M*{f~Bmu (R/LgәJP0TF<} h;T`Z Ϧq47q}6 7xsa$X 6f@NaŬeo$x-|鈮/Ջj,2ӧAEWӵ4qO,Z ?МYY qe\Ӏ*"pٱe4>OVf}n {y^ xxu_9z{hZPao=1.c ;'8C`!*&\0R/;[ 2KD \l3C=mܻťjS]}&KS ؓ5t4B[x 6KeP"Z[h4*M QsA(hYqv i} V`WGh>9>*v ,¹XF),posu3Jݪ\k,й~P Z^zNURX[hz f@nI9uxc3a fV.)FUɕ]|뙉KFVhKSOb&UAh#E[ ZV#Mμ?+ɞU ];aK$jMD*#=A_~rR{v.HX%>C/xވߚWPTiЏ 1_3XPe)TWɴuN,t"W}'\Rѣn3+nu{nnXRz ޡͪFSJ$W0o abPI:tAA)wRsOgݤbؕfMU t(=0=2+B9LyP9 JiǕ @OJQɛd fE*q=FWbf[uF9yyJdU.io꺪Ӄ>~8uIaY+XQ0B$պS0[0\gN 7ߥHD}J2 2#SV,laB39gr֛Rm%V;V&D='()Xg,˼1(YM0'[`CȑԾ펟:ͥo ON>>$K8S@hH#%Z=A_ Q4Pƽ}o=AWV P*2jlyYoM% yIh$]`N89\f(`,1S/au^|\,&b~+%:EcT&,mbsy"jEm*QgbFEnhm/G>JIƉ<,]Խ8aOv' venaP[ foGmZ([OyN[_lb3g>}gE`'N5O'$lı"dEr2@h/Gj E6 r0HU$ deyVTt$-8C~&dbr1VD)>IeK e`iL(0o`t;5 ]#udpa–G[%GD :SHq(~b%)Q+(CM\wy[m8x,p#X:qmBb9rd!z͘O;6I@7+Wd0lr90B3bWx01ݥ'TGآ8/1 d&?W߼l8=߽ߝwgqˡGas {@46)'\;ǵ,IeLQ^pjÄ YUnA_YUT%\5BؑK$Ix}`IijRR-JlE1^Hh',)e`Sf)` \ە2!C^t\pbX+9, Xi0¦߿߽_~/^{bm1E-O1HȤ%*l)-68Z}iҁ;?.q{~N!F I1C15 F1ރ(CzpO8={d99VڼԣH|f2ɦNWdJ@+N:-U?QBOkuy-kpBNwIaJF&' $!tLv m(6M3}@ZZn[\& (! / W"阵S& فNaY)*nOHr&[d l b~-%]jug5|r Pꁥ+C rz|gvez ņsǃ^M@ °ew~nON `a]\TYbDOqTM3LJjW"$WuKJ 8(G ( } RJ{ͫ'uIT*+?OZE(R>4}rŖ`wӻb/I Ŧ"MK8H|*taV%(Qݷ:vTlׅ(A8ߢT6Ēi$z[ə#I,=8^ 9@pqbd &sܬ*jN$8-(O<~Ll-*]*l vZON/Ӎ #r}z&+otRyiNǟ=q?y\r~;ǣ1q>u {/-I:H; A7?dV"* jV*L칅NdJ_{y?`]KveD-ZEoc?/1J*m4)[ed+mގM>T0PmL!ིi$*/Dj˦Z5WlfTeE&Md֍ pf81!WRpՋKKYdz=Yn"\ Qt{;sb>]$*ڏ3̉I^kQ9+ Kezat"BG+JF Ɯ&DOVig;d' 1/9EQi@dR[Ju0č)f#D T[|QlL•ߊeu× 6ս3i#{L؃N>^8LOwҼEOVc4F>Q{縄u=BAFf wK) ҟ7hd)!kI 3,Mqƒǔr_U:sKNV溇S5)'L\yi Y _Y%H u8ph  -bZ*<>c4SwomM6`3U#f~ O_|s'B2DsXggG&لg!T5|y[LȮbhR6ɥe_AaE|cO *TDk.{q@2/w`;sRpe(M=;C))2فhmnX0[:kA۬.NC̓& G m ;%=j+?\Cr lŨmFu^,>8rA*ZN¡ޟpU簿hL O l{pw< {AX_U5"E:BƧ9tZt̝{z&aA3li0m'A-Q>!22 #J(2ťuPE@c0M; o05"i-;W\lahėhﮈ#~Zj(֍R{@y҃Ee? (iWwo=4ۯvu`QlzJ+U4t趗 73Υ:L'Zgpʘ)fS~e!4iFaQ& )r?տ.iö7,4K媮~K~2Qo]fk=j ڿQ^AG:z:s]`ITpX.ZV3孶9;JyO[ Crr7ECZ[E$md- 3/uYmL)';utN]+8_TӪ箸UKv,vm ؊1)=@RĞPaإWs.˹tg/,M#YPrx}۞TC<-NYbjiK9 ٺHkUQ,œ=³^t^ZN۶RHܯU?&˜ҳ+mTT57Pl;VfVs͔T.ԭZUNO6'2K0/5'UM|oՈSN[i|xy1֩]N@]?+4ՆXBBى:0KS%@V\m׋> \Caڶ*%9C 1j-Zz 萜8&JWћO<#g{B+FjUv`ax\1?㴚.wh[Ӈ8\ߞ)`SL,:t -oeUΝ.umw]1/ ZȢ.qa^ÿ177Z{$)הfFʎ q ""N-ԟej;mkAȾE jtܝ. P…5{d ڕ,r1.#2OK:>mo_jS]~"9b$c4B1yeFwUGyi[$9&uNmN\Z"mpm_PUq3CS߫Ҏ F'P.CY&&WY)*9* ˘;L=͵:a69%5=f ?җ  PKP32$setuptools/_vendor/packaging/tags.pyks6~NT-)OO6q3㉝K{9"a E[.$@Rk:Id \,vv rRJoRE)IYL3ARe \QRR$?Q ؈rlCވDY"^409T39TN\2ws"%% -#`0eUV!a"%"O`&ʪĩ=|? xPbs Ixի?:EI$!9'd-Φዣ" &`cs2%4GK?_|q9WRCz!@w  ā /L5.Z0e C_rD 6>T U`YWW<`8,@汆D蚖S [A$>z$*!*AD #0C Q ^ؗ `(H:o،A'~ ?/_#A* J |ߒQM%Du!7k|5:+G v#"aE|ܾ.8a@PC2{P¢Z݀<*q'X TjeVᧈ&|yZK}]y0~Fe { 2/9;˒ ҳ `ith7AT RIƘBAhlBIJ0(UaWeY%p[- A>-X˄؝v3]ӬOͦ=|2Y%QraC ɭ_ڂf|'ygTyiGZvhvK~x)!^O N"fz6 E|* _qQIﱩ`\j>V)i k@5IQʗQ l],:$ z# N:؂/ѬE^d6îe8LrE&{>V)V _͟)l__/^9ɂW:m*0[kRWXGM6!pdٜ: O mѴ 1č]^jVж.JMLFjk vGX =A[dQ6<?c"SJ3mF "?"v}yDJ*m 3V,h!aC l*"!OԢ#bҪ{ԍ,U*'kߠFePG{u AyZq)qG ^ҋ37CT$,CG^hD "ZBɶѥ 7]L @tꖄyVƆiϗBuU?A^AЧ]<)BEc*d>J*_H([1uuU! Dڪ*g"O z2)@ s "GF!PHi1rVJdƫE;fDߜ)م1& mZy. W;ЪiB{39'-"a33-y~H0PWH:@}A"RT_}k.f l]Uvxl-UhD$X5(-uApu. *r-aMp I|\-uCATcuYId,D%?6SJ>V@1?y18Eӽtor?L]\g?Vb‹#B>}*7񓋟 2e<'QJ;.h;|Tn$E7=Y>Ax'=uTYy7l; &P _KI b~jofIks] w!KL5-ᶕKNMkʆGd5U*tz]_*j=1.6uzf5 b/N͡T  ,ğp(/2>#ծVi0yD|>y2܂gx:xϣI/F@̆<:,LZۦUԓ9ߐSUS™4wb^Z1oEXPGK*H DRpOn-(`d{a/o:D̂2 澑ӳEHȖKH>TB1wYDEye"h놑åw$v\߾]U.P"*(\Zmx\Q9,y"0*89d.L9׹X f \0 X^`DFj5QCgB2W,]DfND";&W;J:zl|wYgvc9=&QW^szWﻮ{)dq/[o=Ƈ-rUgu}=7qBϐ\PKPa=%setuptools/_vendor/packaging/utils.pyTMo0 W΀H*v)úP (uإ+ ŢmdHrl/%[I?R,GGeWB%kZEkeʢN 4VMcAWKKZ~Rdt\vyw}!n6`3Z>7U`V:mJݴ5:ڲ2:, M\K_Z#U:_h2DLdlݷS]5w$EɕV?X\.(eROI 0NsXO~]~ B5[<ĂAR\fE Ydaa4 k,v`e#kN5+ LQL`9Xq@$Р*ц\ҭ| һ+QuP\6^e+qؕ\pSbZ}6 EC@P4s(^GYHf.W]Vї7L!E%I*ayS{I` y7tw\gup:r|/DGa#!^"!5E K@$<&Y *-,ͤw2KUH%+)*(f2NoRivīp<Q~{Bq&%/;yMEq%EVYD\,HdYfXdVJN&"], UhZ٪{(&%ƆbҼ@W@EI^*R I%`8)+fiI4O`0DYfĹT)fwr&Ҥ/'ӷ>?. y nglyz#sav %lv%\~Eea7QLhnpcK'dYd\`]ӣS71] *upQk˻X.Mu@1]t ]8 Ys,%(UK‹a&ڈ~ ]RJ/2uք J4:V>&|X.`\V>m2@&N3znlJt i%^}?ok`_2櫅Ti,t IKT!' :J~n+O2lG@Ŏ1B-OG=F& $/1G ⠉W䢀IjUuЅs`E9l}EHX0FjЯLb7i\>IU.}> Rɽ=˗^:@5m^elI.74 ;' ' ^Mq l1"oa#2 e]HCڳπ VKqqVZ{G۔ĹwJMy_5|x>}w6:A:'MW臾<<U }M Bi$c~6 !Uif]f.Գί+8ղMRdC[Ԑ]fB}wqoN2?>яo%̏8wGQB&EcK NaAT"wp8֊eK)P| $ZS+;싗-_֭;*4 Zh@yaZm;9$@>UZf$\. x8cC8Ӏ#~JuVS@"ԁ-2Y`GE/jE3g'&8thu@Ȟ'<ضi}:w$CZ#8ܺ 2紏1zy*GY(41Ǚɍ) ueqm[`筏amϡmYK=jxіVnȩcpDm18c7 9^p~C "Y;}3Vc<iOcه)PJ×m2l 4-D`y$U ڣEOd$urKucbo*Uwܱ%s# v2xuwcfO dOdxH7<}Fى2XvC9vf=t:}ބzO"*{հ="͢3(:XV((sW1I'1pFP_LyxoxxUCL?X^7_%MxԼx1& mǘ5択u@ƃ= 6(,R*)62@TfK4Ѩ5. ^Jq t,% T"%ϤRnrgE:WZ#Zb/Fi?$; &r"o*j38 éw3^nЀS|Z{Idv]yDc FL*iJvNs$/y(h/f4)%Al1/ Zats_P]#O^C)8 [Uz@{@i v՛<;HS;#p'q9 0-ti}zl?eS;fE>o> Yz',۫y XI]?E87^KN1دƘX͛PKP8setuptools/command/__init__.pyuQn ('=1 XĮÖ*43R9䇼OK~I:w Tu\sIN3b!y8~ݍ\{;h4 |8tC"->otSVbnZP%K;Ç}9 Uۈ Vm1<^jߵ^ops|7PV}<zz2E۝|3;n>oKoqkk>}ދVxUDut7=ňĎuu>l~-4qy{7C|VEP6CZij#8\ӿg߭~Mo$(f[$>XѼoYF/aub~zD+~Wn` qو.~$}ׂǫ uپ-5U͛|j4dU~~)n:]]!ۍ`._i@YʛRV@P.^7ڌ~Z2N ~"b7jSsvYSP і~8*h18a~^K%"$6"pQ J(v6>{x8dl"-Y 8D-F/3eiuBZrp7`(۴wYf~vukwL?6x9FmZ WP=0uF[>2= y6[=hOMEV~Uh&2ρqZX.$, c X?&vQ`: )N䢀UQރ8 {wc=. >QH˜Cx&#įĚ'15fdžk.'h)R@w'- /Qv=4/XD؉ nEhPSIS4@ ޷4,kvG%VÆGLo8Njwj t.oM-&/ɋIuh8GZ:h lyG {B7UwJ _kD[_#d W% [_I1yxԥHm@U^W ^o-݇?ӈ_*-T-H oL;7Um=Ԧ|8bkK/'=̔kɪf]|%de0!u%c hE0N ٱj/wpHq2nsDS": ZMslEJ%cr tZDM!<C&&ZsʋMfnGҘ׹QάĂt0!sd$͗/[܂RVRYT̋|w u&'1Y;yDAύS cdE, :`|jw$ſsT+{˫1$S8:u ~%hM#0&>&1[g3~z[7CχGo"靈D䣬 8דꌯS D?Pk[ry/Ё#Y\"1~rv'W_qOXW>}:fIc9y#ט.EJQ;A2xI44tP_?NX5GX`QI4*Rh1qa ,U_Z h>7Rl^M|/~ϝK] x^\>׿e޾}%-ZDGj G8Yh sn@69 -]*M3)Alχu[bX^=bplpHL 9L{% (‚L^'hb"{5XT.KGhۥ &*)M>(2{efOX#iE,Re; ~<މqR$bzMZ}hu@EQ'E&F4՗q4i2u6πQ'Lc DmTNn0"BEnhqzOe2ۃu\v *hF rPI4.|9\Ɓ7IE2?r0m?)QDd.Ekl2Fٳzp"H&i(lXVC,.qQ  ՒѮ~;ӴOrvL[lh=dk@25kT: CvK5.y(fH*쟐i,ZG(L7L.[1MYS.D ^,'F'@-2 <˖AXYK jgYD &kևW}~~K>Uw^X1tu jb.b!,:thlO¶Ow} ,E˜R=Ò bIl6剸B+',҄NtaY(Zʱ0B.793CyÐoG&0V/o n*i~؇:]O[,EaO1`D"F$bI"op5KpbsלlvDbdigǟaE|G*38 ZS*WpkV[̴'K1PtU/t~5i2w 渄 }զjSg1Cdj?~('~]A^^ID;-X잢V|_Thl1dRð.6X}N"$} Ng Ÿےok8wc7;TyV[yhGY# S0xl<& 58kdGcNirNKΫ^-q̌,d7"3נS \$cRq;%-U 5 Ovi\AX̷! ~xHyM)•kϙxH RKh%k+r5G|80lL?r|de@#_K[G  JA|o/Mҭs0tݘb,%; 5;\"#OCÒ8F105:n5ez='rsR6= oggS?@lu<ք}u!{=:i&i\`8epV6k(8g:/zJS՟~ԧ1QI^sǽsG )󩪬 a:1ד+DgDpȇ^Čɜ '_+ s8oFH$0^y3麩{mK_f}5wDS6GI|%oMR@o,K = ON|> %@#HBMkhڱT~%ǩt32BW69] },l%|r -Mq9{TNQZJWRNFˆn8,wMw7,zN0彡%_YPbT /磻pta2U5 i  =ՈLwg4==Qz&ńͫ q{zUAh d8 .O}ZS$vR=&z$Cu[~OsB=qqIOB0ĄQPy-aQW\^Nث#SC16Zfc 0/=qy62kSJFv^^Ѡ&[I%!zy’eRftR.en#l?Wڂ_IF^!WS[VK ĥo6v-Ijhuy9?eG:\])6q4vil1|&HHOdGG݋%'v,沋YE!x |zerr̦<ҚC@&u|6+COJFx!jdT 0pxE3U oHK뢭d%K#]$jE7,*H561xA56Kc6~Y_Q[B:<=xU_F~J~8D}OAb!huL>Lrq2K˓T-Hw)Gܬ<}cӉE܀*?P }9^㳷/=UgP./l+1C 꾟k Fem}wuʺD3 t_1-oWW&PKPt>setuptools/command/bdist_rpm.pySn0+* ɨE4IOz-cQRG#ȿwN`^DqgwfgIv8u iYۖQimD$I%#y8m4?Q#B{sa$=hGmWc`ӔBu@ %oH)Z@gtF;Y_wy' JfBYǥ[⃢XgFTBY  4bGje(*MZ)31Wі\0d#Px⤱t܉X4ߐܢ܏CVM +.j&BC&8?Ov'nWľ1AO?&Vb8*PY`\ѧX6JǒeN% j(cڢ eݲ5#J5ldV7BrF?]L0A96qf`F#B*He-שԘZ_(P 2tjݭ# Y䧐c`<u>i~JdPKP b72setuptools/command/build_ext.pyk~FTcS/Ir VJb"Y.eZwfMR]>W\kܶM׳FJ$E7M%gٲ/+v"]ʪnK QJdhM{ptD 0Z336^kv'f[[) [>SPg>B!餙ʌL}ߵ$-jY6zW.;&; %ˇ٬\O}s5c3 ٶ3z?>˛7o?Ȯ٭dc2aY3jU>/oef1D%"G*UL<ߔ1٬j{boN o@ CYp ϼoɫY9cs( @Heo8#mS*eUygJ6)+v75,S,4{/5L<VdP{pc.ؖ &w`]u+bm</n^/-Jo nV:N@e܀ fhq~"m+i^n_sh՝:] `*ibUd`(>~mHc/~P&BȱVY@7Qi^ YOwm{s}gPMxVd`dKiG`e)S?i|4?w;42 H7yQK]\T n~~*{H_ `vYp&DOYi/ou7 ˆ ^3v2J^C1V1#87HtV,Jaj_jt-b4)PY""u Y^\@Iu:Z-װH+wT2)wu^^5W.9=07Фv2ُ~_pSi:e{niYdu]krh ,-@-Lgqd"ϗQJQZjWU = EA랜c3?II 2S [4 ![54Jh:֓o.|`1}s8ұZGTIov29GŒK- ~]~2IU\nb  ɤ&>æ]MքyX+Z=RLOLa 3$dEQ:'J^p.˜nkqZIg-)I*e;d~ BиZBRTsy@h*Ѯ@t}o{f๨s}d7-o5<~k&h1Lf[uӛ2n 1$WDXd-ܛӊ3MhȠ :'~boq)3KYֲu.xtdU'Z_3`p Өaplh e.BNN<`pDEu4WA .\)5-z79 ޖ:&`=ZL`z{~ 翎I4興ףpLC1LxBq,00;sy&*'eB9d'f;" i4j0nܷת=q;/ &Oa9CA9J&Tq|YVdOA>,j/gg9iwwŌ^jʹΧrYNz^<^YծT:(] 3W)bDB#@K SA9)+HjhtBNq jk5P"K& m:8;&kT0wJI c?j(U>ĈKҳ R2W~ )Vn:)4f۫Ys%շQ8fNJAPKP@FB |%setuptools/command/build_py.pyZ[o~_XH̪\to)"kaU= {o"Em`rxxwvGĎ F?oZmT,񯛯EFU T6vl^YMxTÉPInS= H8G1z\BtrcؕLM({DZgV0U=n[fvm6j<]m<4yҏ0~RZPI";+W yzI–ْЧi[.O}wB"hG@N'HvT2 = d@OLjʘIrTevK䭃pS-vMQ*Aʮ/!Z;+T# .r} YUj^`twEpJC OfA^kW0vVϣ: L.%7dǓ:׀֓$ K -_bO:慀s '$bz獗](9 (Ya`} X^@)g=FQF:Ch{Wkֈ?!,2]9HzH ិ Y<(/>.%,4cՕ jCR9r:+g8/ zG{J/A,1/-xo/-zEt'a>$XJ^E~8Aͱ2CV}a> ?[r˥Y>ۀ0kΪz>0x%2kPfId!A"X^yJ톱zA'?8Ku*jwV[]pФ~;P#. (k>Pޗcb}83E]pƥAXtRu;b#hfm xhMa8ub:- )l/7șUոᣠ@djVN-F-wڍݰliOYz8 xAקc[[{LwRng-s{ l ({՝kKT^4;L&!wA_Ÿ~_"]B|l d1^:q_ 7!!QMw6s¸RTٮE}+\>6a͓e`hLm `yGZ0{Y! 677=)5 `IyoRjF\<@$v qNYbW_5K!踂5tslK:{5:9K՚-ls% )I;s w|)0E]DX  PUUi6 U~a|=a|u+kn!?6pCR(AT]qϾj{/ sf+ uE[آpߥǾ)Htsp+ֆM _dynu49R8zOvW+N b>G2va8?W:I&ˏhu.t,-rx kߕduIѿ]6qswUʺd'>Ӿ,m5j{La'P$+'=yUq?o7s&TyRI16qMiiػPFs`0e-*SM=*o˘g BhGKm֎+b6n.'vPm#EczQhKק@,"adW^oU`~OwLU"ɲ]o$)}I> y7/@Rhgڌ[/ rgOl(ͥQ}h-1n ftF-rr"ёf~5B .0u܁x< %Y۷޽!iz yKޑg7{P.lLR- ?PƸ >q{6F8Up?” 'j^|a-Xf픞 ;\`h4ޥujFgrģ'pư-}%fO\ָѣtlX 桿0Ք݄GE'̫ uDw!ވՈ) K=Г|W )5$N: Ztz:[Gd,)d,:(PKP> setuptools/command/develop.pyr]_!3iM:iҝÁDFL,ZVFl7Y&~p[U7^HMv{dR=}AZq79BKӕkbeY(^ <4CwdJ r o'5TNimgSDS=EҞwY4ݵT&O=[Vi#kE$я'2+zW@zw2 S;ɍYګxGD2:(&kaPbT[rc𓯇K \/º(#dvwwEdPE{ {jV-cP$ g _ চʻ~b\I!yȖ*M'rrڽ~*0cCy $PBscEp _q (8"Dv^լV>etbTLPM&<)%es9푞x?&7$2t=!xB@}&wlYʆӵ3f4ۋu VA0 ajMwa [%\?+fہMݟ| | 8)ݡya8 }vTbj? Hde,Q'h|>"?ATe(W8laE#h9DՊu g`/ϟ`Yx$s¬HJ80<^rhYCB>(\ЖWE<:%Q7EM2(!NyB ]),>l+ H:T(K@/_ЗUM3w'^]MSi\A(bR;$Po A\Uv |\3[7&r!%g%]G-=!}f ̴`cj;^)}f&K6R8Bw[,{!" $b-])%"F;|G{fhRKgfHu䐜8&B٢f^H;)UY~^%yY7XLnqdoܞe\PQUGz.yAA|_V%{[|58rxًI/1UD@6yz=r#ȓY0PKPsetuptools/command/dist_info.py}Sn0+V #P*䘅X/v 09{uPP9ԁ'{Pcc,`, ?6*Gf\5,7RC~WL1);Gjڙ!E#=/cN@\)GWQ9ô m?+Gg2hAkl e­ z>PKy*؇`4mN}sÄ|'tY,['!J}? ^|9p)٧w .d9_] wi2>MnuPKPzv]U"setuptools/command/easy_install.py}{Ǒcpu(fWY&t[GҊr9df@>իRyEկzg=<7&Wh4zt\vwMחգye7*hlԛˬͺ}Y5ط?<իe\d˺w}feW-w<Զ\\U7ϲ^՗ ^6ݺLŢYoS 9M=QɮumabQQdW}^vU⢺y[K w]9\}@*j_>=huvjγzmڞ~O_}[ nlnږ닛>U6mgz2|<[So|'pd8uYeW^9oWd/$a)|0KEhmo{^-˪TE[=myq-7ˢX-v}y]g~momuE3jElSl?54kcۖ[mn vp/>ηm:jU}4#ASX+/5.'ZSFN@8^ ~Um]yQ9̳j tǁsjnnNa?j %װQC3zAi6}5=%޶]mU]yQE횪Q]\7U/nԮi0)>f)mD@rO/IQ]B?yD]nN{l/aٵ*;wuWo#HGR 3} gyڪ{_-cr(kS#~f˟f^8/˲Kyyia.Sӛm U'W۷^|ݖMvgWجaŪ:xwn[=zt}h6ٻw_~{C 5YaGܭ4W]¦z&80Pf2uj>-)|Q H>z7dGGٿH73| tN=YeE6W/,U@€;]"~t@~nn&4c02'ةmaQ]xn I͸ϪisoMUfD5Mp܎+ͥT qCQw;>\bjW>SsO\;=XIfc<2`` |vEw$ZT]-kշw:Wh0r2NJhw}ݦ^4ˊ8N_zT9.ǻ_`*$ % 0YH[8U>_Ƽ|Y-ddOvwů2\#@N 0K93} hm2Gfd$#A>;G_VEC;KL'3;f#XMYs D|ko&@ Ow\g7a5Nm09P̴mw`nʧYUȥ{w5Iz,`'+S~ezfuSwWe56# rZn˻nhwأ?2챩Epl .رٮ]kʶȈ+&[F̛\ \t\!8>:$3Hk' ~xwq|vmhm񵺭UƄ/g4F\~)&̖ۧ p7^C5ޣ ۫v6VDi)c`2 \J܂5FPMYd}AdKUGy$րy}U6ŽҌG!U*-Ħ!բ5"Msi̖Ֆ7 wY5Z7yK+3;X'ljur]5}D2ZTe$P م+-e(k&ԈnFθk-&8x2_mx'z8pF@ جr|`Zx䟙s GBWEV*q)HT&mXMD񛗿}qñ"նXw[-цS:3oq7edw/c||jO 5qO#jS]`?wYh+xED?rŮm+#{Pٌ۠sM9tVh Z= fp@; Ѓxm QS49E]opCNrv(rAFK*L~K>ߠ׬\ po 3jj iQ52E, IVzl/ Ԭ ™6Mo2CچT}S2ݵժ>6VXٺY`Ξe0>M{urobUvT^LKwoNG+qQ<4x*_mB3Z@9:ۗ'`[GZYD}Șo m|]{+^<7ui %O1M S!z*<:*ŌjY'D짟c[+VHfXvK~ISItӬ6& v$3WK2rFMX7T񋵜gهknj<#pUJ-^FD4,bf~2D*n2Fz#="5YO_-U 02'N` XC7ZWKdXwEK? MgQA8k ̳݆i'jG բ}#JᳬV9prmTrۆ6NVA k g$M  o(r˱zXy֭ʢWUs9G=}M~?5h+CJOhQ˺۟H *k+]!#Ė#{61"GkaXW /ݞx[lj3 S+Dghځ@ =$X^?!'J,hGM8 Wj/1Y9WdjvC>=SGFoH(,h?pƤ9.@yW`L? )~+Iu3PO j︦Am$u *@i{_ w4&p}~v5œ_0o>lfu'<矣 )+UyS 4U_cu?+pV!ذ3i9Ia Զyxu[|Q |Z F/Wxt3HC 7p:^_#Q t ˷V/8*W^}L?yU*`J}'P(K `CBTn)Vv+hp@o2-DZ^w@?:nǠ/I jMfBI=#o4;μ-YFtisH(L1l_uu vjǁs/qHe_@ױGM t\4;8iukfSh6x:AQsgzC+ (_d1ݰKVAόU֎}ރ̍MW%j|y̳5+ASq" RbD3 BxEnž\`f~/"._~@b97쓏wYg3k. # ${x^hԫ#LΌqQ4Oǟ%0Hxrv%AONFC+R*ilAAZk| F?> RXat{mT _'H{0qclZtveO g l;Z\f윱^o\x"2;'e* b-CO; ^:~kPvy54m c[5 XH|!Xg})scE7q1mjw$|v>Ag:s63 hk'ɀZuShc' MhfB]/֩.݁jM1I,b^d#6HE~5&?_[*5GژkeE†S,SM?N5GB/bɭ]hF _svKCV|^wُT1a4pG0O+LOVH$Ye zzIq.p{zW0Հ h˾Tߝl& Kb¶нY)I)7fF|o~"3j#c29m]fK$:%0Ubm,1 G6˺5 e i;&zziq>3@1T*G:E \Fy ufe^P1j hE-7UdrvQ-T?Y&yG &@xvաLsaGdQs':*~]-Zy5%A蟺7ljl %^LsI)Mg)3GWR+9\Z0x *.۔M+2C5ɢnvNwH쮻0T揻f7SM j-f>#h] ,?~5<P{zu OM-WS0ctff"6wv c’e Z|ZiYk($tx 7kS0rvH@I$6d hᛷo޽i bXO߸wvH(SzB*'z> &͠88$301UέASW:S[gz H%@C6} 0Y;ΰ8͡]i@d2A5*BYf /v~eVrj)/zhqՠX J00bb{謼 \{WWkۉ[:E+@p/Gݑ䬹6e]Ƙrez4R̎Pdi.kٸNz.W5zsZ3dVda30JiVr9 l)a0\C1b?<ƥZ^v+7&h786:-py[X` yF oRI 70+$ˏ3Uİ3rB'Φ ۥ(raQ ũSTO᠄vt"޽ǃ<(.8.T>|P)]_6H$Vʹ4w9Rv `vA4\Ry^dyyf='D ]ߢ 3f-qy˧J/=5<@PZ%C9.4ȧKxas?A`+#jE >$Q`|6SWRЫ&s<ԭ~(hXND܎zar)eOލAMG!2ΏC5(F{?K٭.uo$и~Mȅt`' lg@1}JTɺ1ikuAp/7[()}CEY/xn`@́Lj_J'@q~8Eb0GL\1<LTX5Vٳm \-܈*4jPJ^9V4f=Aa)h&ĸJR.*φwsC> 9LW8Pkg}]Hqfwָ6F=(:C(^3vw,"ƅ<`!XAoQd;!F Hb;ɮi0 j=` R􄤀:H8)]8'. ۡ bq~!_pV=]S) LC]_јl\ e CK "&ahH#RHtbj7gUD%if[ochSENŒ=Wнxޔqo@o7sr "qSXrGg!o?2%EspnNHf˦zi0+ܢpbC~*Z&!w™3oI۲CbTh^Rs[i՟瀀j<7#/Q$^'v+{`4Dna!Zh Y,WipXԴJJhگW`$O-~ BU$0>! UJ!.9DNltߔn'[黡w@N@aNN=6OD~vWR<!GC) J#d䃌[zYQReCxcH%m5]wUA'S.DPƭݖBc@.ӸrW(]eeҧ9q0m`5\ӡQݤVoKR[N-Z,M^y_hmG>Q#XU7J>׬C.f1X4A֕l3͂ clD{O˛LsԎ^jK0mf ͻTt3gKe>r_½FFBܐ}z/ <2wkDEɢWqb?<e%nƪ&T򵛵o7NqtۗVWm/Ve3%etBb8T/{[ z?]i)M Λ-PʁN[b_[2:8"{}$3iM1qznI?(F;JzPuaa*vE3,u?Y He8 ovы|MmY X(O_ٌxX=xwhJbD#ړ4!M ;lII4T9D;x{zЈTgzpLu4/7w!"k>H# .)v0jn,QTޅ |Wd )ؗX_xo_)ǘnyBG:w;Sh{^`Rc?nV@T|MV/ʾٳ5f`W~k{ "~e囱>~@ИZ:^51X끰)eWR&bw4H ̓ƑYeyRL_OXP=8gxXCݛkek uTc/GXc8ML:}q TL|%#_*~|u =&^oonԿY?g|^xS奝_-oZ^ĉk="XG4wwYV&(n !p]^DzL{ܷp$h47rN:֔w*)VMJC Y1mT#Jw Jxȅ ޽iO*3˺7š\fqI1 g;Cjꖎn6QD7ÙxPZ‰ `G17適m J+Nr5;Eo/|DWEoMS\P$@|:S@z׏P71K m=dLNnQsQec'sJ!;A 9#c(Hu$N*dJ1Dzh6З]rlF@!!Ki]HT>>S:p!"(Ӱ;ybj)cAwP3SSfTK*I84g;xL= %@NfVfa(2M_Kmb5ٳ6asf7(#6cB9MvjcqQq^kgv)(x2~&I0GWkl: i.w;#y&γy}m2"A72}ks['k/焖Є{HZǢ fGH >隇rKT ޞHj9KIYv@^DcҾ ~ 4eMbj/m:vu$LM5\hUu 3P^5^mj+:M]`@ s0/0!ny'I@5$6?O)83!HT:xpIJ9]oZrc*\EƔh9gz.%\+r6IOq[k*m } y6D!G IЬBWHO^]3el~ب0tSmzUMXD48Z$lD,dV]ym2@_m5$"›Y Ott8n,m%5=T"?^>4k8w?UU1BJu/Ҍ0<9iW&F[!xX힮9YLtLs|T{6cT䑡r+BVۋ߱5x$m*Q\.,6?l8d䢀Wt6~Ld~즑AOQ:nGB/-y{Q~ˋ6QFe4k幰 VHNrPs9=su Wx*=X(`r{}N5Y'^kS!u}yM ͷ!;pW+2ޙFm)}iWx2v fy~*Lkd+&7k|P|oNwL>,':8#'%h-c"!Iʂ3SHcMN!uRq$[c\vrneIY%Bw֤p?R9YoΞ8{y%Y.&$x[} NJ@y4)D=N'=zϗgk=~sKy cDhwq4H@l'cM7Qc: b1l*z\0S1nr .5g3 kʌ|b qf1K#@ Ɣa$> t{ Q{A'(aeYdC sڒ4=Մ*?:ߴ:葬<r)tI:Ӭ=(yi46oD LAI#ӟʻY%uj=x٢_h٦x AV7P3/ߣ85 sJې#(#F=6l Ҍ:p R$ ʁfSﯹiF䝀܄.ІbfR<(ḑ[VC&ƴ#hmx檏 AbЁ5d5dQinQbCp-I2PQ.Cq/_V]Kct r^b-JfsȦjb2 VU^p-O|&d)v@TH\i=*-;#Wp2IQ\ԑ7)wq9݁c\M#אv.VF//F`S`* ǻH]u'^뜫> D4W{}K<%,Oz6XҮfgV]K&q^#XXq|V7ѕ³ JܝRMфfnkM'F^T_“`ԃ'nwfL%V7S򔽭>wy[& B:xX{ɕ6 OOj{zG+x)mYfEc})mjD+hp#'ؚ"Qґmi̒9Y[2a Bk{)d mgHY(r-e>|@ tA!S΀ :szdVb0 n ?yIu1ȅw]|.:E9hYa>6HOw !Ry|$CYCxaN+NA<)=.S==S*?CXd =4j9EQSSw~ۯ&Ξ6/& EJR zj>t͗=NqQ;uH)v-b2n;YAu8ifąSCσvOz^ͧʳ$+u^jxEqOhU@:=۟ɧlV@n+E)p1a)̀*lPFu$>Dd f=>Ҏ׿0)%>0ɴf_$/5mYB"_0Ҡg8|Ec#B5 $GZ층G.p٤nAWoTl%A_JɜUf]9\I^\ _kEtz$L2CK杻#veJDs;l UIjP ^'v=ݹ\RM)Pw2K:4lK8>X2Pm@'d63s\Fljx6kq&r/MAŸYg0HBɑ#:\i 5Oy3Qɫm-aErq+T U PXt/ڛJdx#" )Ӛ璢ݪ?re= *L0hH%Jw\f qĶO'Ͼ=X2|,AUPlmhI,:$u-CoВrz#]lWor-dKwm8M~'6ʤP{،ܠˍs[јmK G㑷_~2N;NxbBs耤``J|KNrlfGD^r!4+e"8jʈG x*V"N?t#K{$r\i/!~G,UZ`d:0 Q!jW;{j})d@&}T$ּdAj^oWu#tfفj1s}gL l3=oٳi2ShI:wfN],00лE/.V`;/?46]сjsҲ\˿O>Ylj1d'O4'܇_9X*Ek ٭V|*HQ]x KyɈИJj2sH ž0!U /V l3Id4փ$b?ܪm2~3w6 RPX\' DlBZG13 X賢9N1]!b BܢƺA ȠkC{>lf{Tχ[D[*uQ$Mz%)Ɂd"~Mv$B ҈ NRaM}5須;%%*8dilz$M}f:~[u ĩBx~6ч1?p,鳣칹!dlm/?I6a|<`5b L|i/dc G`_ KM~N2nG \PA7J)5pCA5[?Eȓx}B/ &EGmIE5MkϼNj/d 5]@W:rXMGe_}2VPzKZl)\?( [!Qen<#d-y1%US PGjOJ&2 lTRM֠)Ez&'8|-D kCzTy庺) lFP ڈ$^#IX-^$ߏPn{0(JoO΍~Ne) -jp!AJ% MR"-;]EX+gM^:u!ZMߩJH|ЦmL.-Qot9㡙w.&BC2([H"QrŊqV(Tq[JdlpI9ӊ# u2':$rK`G*{gnq]a 1TR)o(P'1P;NKa;F-wE+I&uTMWX'syhhRO)vRi, \ж}\l۞)!DS1n/ௐΑz }F.Z<@ iuV|/z#G;T0d52oe#~K7@OXEOmcOݝUõ5m +fax> l&l"U]p* Oh:kd y&IgGZ9Lɧ8dDF-r)s,+:0z)"U*˖/Nx+19㿘W&ǦyuC<Dϳ|$yPg5U@L]),մF!:V¿3z/3*GXlm8JTbxlCg'sq+^ӷzXTM,(9jd9Q-e9ŠpW2Jg8Cx$9RM'G:tn1.tuu6J"\fRC3)qw2$'nhV+mvS/8WM9Ͼa Ge%.8q%h F[{9 Ts>q/Z9de{#4{aZC7n2HlfڊNb!#Ș@)MfU]QU]b޷ꎢf/z[@=ܳGI!ѼF.SbEp'!dm% *ixU&K+q7KҼ-1wTÐ {u ĝ3J{(܍) ΑDPjZֻ\UxcLP{۴&ݡHCKF*VvD(J.ۃVZG )( iE|^ ` {3$_%c8mK_g7[NBOFnnZ/ ?Ϟ)2 j;Ƽ="7;̲!ԐiHlXu !(I*ËiVrL2Z|9Y+Uq/rfzgΔb2U/:?sEmp"o6ˉ!g _*Zy@Y;GU&ДQXUcNJ$IRȀ . ⺂noJiy3~G 3_})_0߲#ӭoC>D}I&+`F7q0M>CBXgx`JF@c @0ۯ -8@w@JǕׁۈ߻e {WR`>%:-:`N c'G,C qoVx:EZ*?D,;@%X-?"V$-٢Fs,UhQQ],w~~\xtRu [y9  (* J L'+XoE9Rޫ>_!V=bȟQ &x$u[?Spz_r,S^dH9oi ؁j٭}ZP? P{V^;޲Xx·ѪYY,APQ6d }IsiOv|^ԴS.9-HX1ok @Ƌ/S C8 8Oxj܄k<6 61& C"AQHg_1σyNmk,3z1ɟz9HHY*I3Í:`Gɞff'rVfWfU:1+,&GA\zלeyw.^fĈ$z~xo}./kLq=yv`sJ`2=es6}]Yf7?wT#_PhA7<[#b'1?jV3Y;<_1?g.J\rh'{4W+A~qC鮀\a/"C3RThs%ǧ`}0@vzj}-8`uxewWP8ƞ$jBَ~[9bJ/ۦ7͎ɘzٰsB rbK' *0G~ oU⇃2h$Up5X7LOrϜ00٦b4JE'hd떪M͈MlM ׁTdC2{}/_X s^Q~@i(&> 캶kV%|]>VAz%D)0%T$I:lUS_q)H1jRVU02`EGMUgr p9 # _< pŷ/{4??Z/@m>/,)$:G M_j$O3n*LOyzdo~& {SxxT劉w)Ȥ9:=Aj};Dٽe&0ç  ,k[uզm;,z~6mؽwᡤDԗkoN6 ѡEnA? $8yxF[wo?P5o|Ln!(kCǖsnCg/fTfzd7E=GxIʁ -i&Lv|lVX_kl DŎt((n'I\HXYS>ŜW 6*fQn;ƢW =#U3a Tmӡg!ݗTujIeZ˓?Τ`͇qV0`bs|M&qNw~#IEIr}L,!(%%H44PyzQ=B,zb`0z<vxS@7d&'Jg6՝&cDZDsy۽l$&t F,T#!tD&yiBQ6Hˆi85NӨ.iݓB 7gBCMPvlG|EggK辫/3H?6B/%SgMZ7vR+Ӎy]fT+ ʠPXp?7:=z0=$Oruq~kKRew.ܦ5t }5؏G$^$)dhXTރ{# ދi5VIL$.f\J_y[ICsIՑ|1#XLk,[=\wчur%^<ƨ0QO-wUA{SRb췷SDX zC[Jbtc1X3[.[qj`#kw$UHe&&YJft,`eU Ut厧'ù9 sfp=b$*Me. .? o_L2k#@ԩ|i(g ֚FT]7쾝0 C0(Z1RyƩn(SaR-z`9Ϳۑ0\ِ $i<~>RGc؟y,6nczSʮLm}PUa!ad߭4} lI{gS[{*!P}C =1n?Ƚc _E.1X\ʽ- $ǔ - {7Xc̢y80]@4 YU do}#pEX{'M(/=`l.9I].t3E0'zMH1܊2P3KvZ<sRUxA< . HQ:Aua H,h]llbP"d5%,<@Hyl9 '}ٷƟܼ'uV܄X ؏8NTWHt D)j>W蹘m 1HX~$&uc/[Ud4r>J%_x0/.ؕpE7O5$PxBYS±MҞ<^m܋gT=7AS3r/f2vݷU%5q,c 2K6) 7V ̘ 2\ewm_K.`ilg;L[ 7M\ڬ*rJHRܩ? G`gSpIB1|_ЂTٹ%XfZ}s-A>7DPؓ?K=yr};Q>:#u*YsP7j+Z.k? ;(3V{awyV\%[!'1zm `xESzB/{A{3%8:LZ 3T84ՙ'4 x<Ԏ95bv=w+t5[*W<";yㄗf c3X,SVi]sshZlGb\mvZųGr#sߗ/|N9ԗ#Z7ܻ%k&ddfr0$ Kׇ j, D^t,uabe_PKPIxcsetuptools/command/egg_info.py)Y6o7`0_ L&JvR%Y^Uj^Ty+NTb銺.Zuu0RduɪShk(e Dn_o{| ɶ[e0_4m/9Нlyv7A?ӥWGc8wCimVOjk,j>mZٖXY]D`\s"T*vH)YwN8E=eT@厤a]vʻk#dW7v̋nrZ]#LN5 Rz#M* ۀ~Q%gBK9ҵf Lj5m!|^/ݾx=ü_yjuaSY9+(ÀUY/ -1h6]j[ bMQ~du<:RtmZ:.3 .e; +pI,nNDQCO+W2m|Ir5a87\i$ qSd7"-^̳¥7%.''Fnyd*FYE=>Gob=Vi&E8aǽ7fY: 4.C2wU\52+@V%N 61^j |@4%@wZ/P܌ҎJ_zBuþnD=ĠGQUӠX E݊egW4ȋ5^ ?!as]}\#Rge\_po!ZqC_Ï8ߵXzz; K7 ngKX= E-*N<E)ajM3sߗturjtA$*r؆5 X S {s>3RiY9;ԣ+rƧ|y gpoaήty|aC}.0 dG!^)P;x螤`@'7bFH=!82Q@oe_n1j. KC4L@P/R}egQCVzySNbhNog?rjwi& 8 5^#9Iv5sؾh[Y_? ib*̈8oB4TbQJޣ6 lP)A5'L)C7lذ+&L !# ]wβya6`R1lYx#Alp钆;2;@I[6?l+ӭR805Lԭһ T(6J2kPo aX;Jd{I/emu&Oz8AO՟|/_8:@61ѕe3 ml6 Ԙ@ < [`q$Y>p"abgEy?X؊kC Ma6S4H3zeB4рM0 k%lCNG BE>4Z7fw6H) q\!>l8zOD ^(lcu~~&Osbm0t>x:1|$lm?fRGcĞK&}#L(_9Eh:[hı:El0 L [piyS3'M `siCr+`|N硎?%LFzشح1giAۺl <Ρw9v `yRW߷Eu;e -=PACf<'w~DH{] k ) v$(Cݺ`$?$"ݝV`H.ݨj4DoaqL`K!܄x/ǟM} zmԉ@X$&wzf d$GDl?Ns 3SNz IS;%!jhX΢ѽnY͛xb&蒥CZ72 7Y:@-RBe?ѱ&V(0sX cX'8><STnO5+s͗7cakZC~GguJ=δޓ Pt~$~$>ٴ bu{0= /mhDd,Nv)da؎A2 A`#_ ʬ^P"[{a/2lO{C=/pOSO5K&l' DƏ+(:^~(d iߧ$azO/8OfĻ  eX@NeJ'H) - =/2pwT|GC*S8_ 2qPAY1{ܶ|)mEfM$R'+(\S ,Fe*S"j zAQG| l\Z| ]9H'ݣdKb'NAWKcV ;^N{:AA)&K{hyApƁ0Uz+o%ҿn{;0;6&+#~Z>!,7ei( u+Do]sTȑK!<6LӯdnMzNmI_Ձ)fo:8fXM %cMP߇ ?[H_WE1|3j;>TF~Ǯhܪ؂2lI\Tr,AXخ捅;Vy`H#T2|ת3R2K0&j5" &X<Н)L(P.TbUBu/iz ]5т҈ ;*!fP%eXG_>ٸnF28fzx jFV>ƙ}٦Jr,y^{K3RbxXNu3Wڰn!jͱ.(Tv׳F2\V ~4SA)xvmFӾ$žfʡ0zXtܱu%x*ɇ+:L|]<,U-1= MH6K~Eݍڻ7xC&Qaϐ)ͷZP횄:n?JjyyAEou~ Ht, ɱ8+)zdS%N';^UC uC\S?f6KޡGdށ[Sng>g_:jE]\idpk2\gc2 kZ2 ؞TuW.>qJl2/q;s ^VWw''\ $gWBH{4X[ U'}m<}O.zQTګ=W?jɲVMciؚ2tRسV(fBɊ#0t3n.зSBpu'y7`Ys]՗Ԇ bXN-qQ#e7ŌHs&\c0gu{~mLII6o/Dtz=>QwT=rh  h%Ο\1ӝO6W1c,@ڑh H73}(qkz^K(:=7Մs S"5C&3Ciwx=͉LLa>nPGdg| 5;޼~{ߧۖoC#|ؒ }aHy Aq͵>Ǯ :'Vp]w0^%;\jmodȼuHK-K IB9e=bAE/Q#މq;X|@ P (Qac#Lġ{P>%2)zhnhԱW#Gd# " 䄰 ݃RX'WE{v\wK {CYܩv@GuҸ U΋)gB;n6Xx/%r%_h ^ʍaWD6ktZ' mF>̇;r zWB%xհd2X,DI&ۇDGX,~%Dc33*>w? 2s?;Sq>y%G[?؇)SCzZyOѾMcKi5~_ _>orEwR-JAQPi` C3NK,99m_&)5,rgZetS{=g ~!Z<}=bbUm-›ڷR g PKPPaasetuptools/command/install.pyXo6~_qs$lO `lPt!ZlT%J4]J"w-ƶVT&Z+m@ԍ~[Z!Ms_#RȽMlt'Yk&,*`4ܶU2Q>h4X+?ty%8`lA(hza T6f {hwDit L7˜כcQԣ(+f IOÁ3Ӎ(f{|2Gd Zu+4' KsĪ*hu+܈vxJ'ݡ9,qA !w*8oН_?pm}-ev`X TLg,fkEU I5gUb{޻;>g)OCRkT H~̆ %MFo +V Q[7I|fDZ4|a/;9,DnƲ9 VABXCof-Ee(' <Ƚ%dl?5-z7{EٳJ #'_yt.Qd|''觙T;FK &\Qv^h2z&}v!!|2 ,k=+tT"ǺCR:5F:;Q A ,R0qqT LcrFOhE{4-&T:8}Э!KD;ǹ3/bBS]mHQ/7`+sMDۡA~(+)37_, KG17"+q\\sN$[n,%g~)(L۸cGIv=i2 P 5~64 ߬kR'ɜrj47sq -BLa;y }Q9 ޯj v_v49LA*^GBM=ԴF1.C0; |Y@+҈Utt9bH/\LÂB#6{, _F.q5t' JuuOˌT t:2YF3lN4 '۳#biʜN{'5mh9S% o9ۡ l-0Pid8hyMZ\87b㜂np*P/riZ3?M+iIcCE4ԭęj! UX tSNcg$ *[cWw!@y8~L鋲۟\u7ۚ\;1 hʂ?&g2HKO_ѡxXI<"nH_v=;N2L?ݾg5zMg][]cYS;&VKe:(M̾ࠎ^1+eY)zN!]`tk>3]VE~X1.tGE +N {^ݻ."8EҡOu5ZFPKP\Ҩ+&setuptools/command/install_egg_info.pyVMo0+,PYrOSz饇Vꥪ]$mvV~yHeM+JwAX'Sjs^ EAP13f?|k[I[ fx {Χ9}ws hz{`Y`z0"rP8c/2V"k`, :OYFf@"1,GS5xR|ҟa?gem*d#4T5?gFĔѰRTJJC gyQD!$ݾ&B*/ڒk>,bl׸D`?PުccO)F:i9x /`dʼn $h0夥* e0;eyR`⇛u̵qnrѬ'Z)UPHiĄ_ m(}0 c%l4x%'QO1CNa~C;),/^ƄnWVt-Bjߖo{\Vh-oz`Lyc(JƬm8Ymk2.՞ָY>Na3\*i<txVm d6[#p;T+H?F;ke+2tNDD B6;:)I+Rŵe1hьn$̘vPJS@u4iR~Cx57v$VcbBBj9j|UkZug7Ndp| YiQwf~0),$,juV0sŸ<ގ6gxYVr ȟq3@Y#m{ d' Aф|#D{~[bc'(:)t$ߋP-V~q-wGo&"hìP 3_݌BP*p􋖑[^>< ]>U]QA$Wym_i>YJ)~&jvA)Kw3xҐ8p.ISYrx%gtȬ@3j>=CyrGFl .e׶8!.Md޲ti{rx0{IeX; 1u,Y$D}Xldl| ?Nj OGLd6Z#YM{)ڌR /r2G^xs`S^Dώ;lJWsQU`u=M$,\+ח_Qh`-7=U${s] Sv(rd0-ue-6{EW_uh'Po`.MF`si} )Hh28Kgxx+eSi$934x(ͺVtc Rb|)p3O-ϥ^YjΘ^ вL6XሏȐIQ%\Qml^,W6ut4DБ[Iq#. YvY;QADI{UK x=[\S_ӭy4I2HLS/XC sVHky7ټb1E@xp^OdKXD\aOPqnG#nAb8󙯋EWc0dL,7C1Q@H88~Ǜ 97ؖM0~;tw㜩M<<}ARfh:$G[֔5-ApуJ7*?*hS4UeEn,Y_Y !nod[lt1:$%K #?9o[2!YCTBnW3i1jTctu?FײM&v!XO_PKPF? %setuptools/command/install_scripts.pyVϯ8WL.z{Rw*U=PC-c^6;"i[yh9 EVT딩 mȫ-r:(XOt$i~.\ [/ѫZyvXynIT"݂ggt|4`Xש&ѬCRթG^k'V^V—2¶ @yGqOmђ_%UK1` s\vTt+$uakexid]JJzx-̡юXxEg@Hsq>YDL7Ö.L 1r}7|!#%K?Mj<=dPsr <_LpBjGo1[/d (,#awza&`˻ Q#.0~^ScT.ٜj-aX~gѯcPKP])B7t(setuptools/command/launcher manifest.xmlOK11 !]kAJ҃B1;gɮooRR*&\ޛK g[AL8 ]%wPA.E覤V`% zu۩$;FYt ^׾ڢt菈j+ 8GTh1RM9Qpyk: }U_ڍoy= +`iV2DPFZLFQGC&pg`m4xyDV1PPw~9y co+dChZ!+p:ID[]+;Y'~ ,:4Ȓ[݆4~ QN&L~{' LE~#L^G.&c.vr᭕i)`f2/I+~`ЯaGnĝY0B2''$ҧU?<ۨdatsVtPKPvsetuptools/command/register.pymAN0 E9U+F+4HfTqк& ;;< .%98Lӣgzކ0NRCMJ0/1Md&>`z[~.=T?۔UA[Zgb<$ !hw;Xp]/FnM6*<>Mq&,9??]ba3h"sLm5:C<5]R#-6 c]wZBǧfubwDR/PKPԤtsetuptools/command/rotate.pyUMo0+,%jXX7`S4Θ5,YR>53o<ƚѫI2zV/ҟf]:ӾH1~>xeW2&qɝ'q֫#S7.}$ItYKY<$ WЁfl mq$fIUVlÈ= JixY:pi8W]K2~B-R_RZ[S,@=X`k!0LuS׋ b.IjiTּ,f~żW9kБ3nvXA2_MR;yzWOr<޹4gh0B|w=r> xB'fqŝ ˞ T-1S9l?oĶ#,m-P7s1&u3PKP4Fsetuptools/command/saveopts.pyeMn0 ¥r9EU2!0UUu2a4Y!9:x D [+s/.>DPQzqxF:5f;TwB!t0bU"0 ubPM߲^|TnikH]2Rdx;eM]n&U{Y(i'@[Xc5ܕN[- Օ=WVPKPB] setuptools/command/sdist.pyYko8_uPH:Bvdi:IMt -6'(R`KAQr:kM]hg4uS0Y'YybhqÔ=2's?J}TY듓 4nZ)źe'ȧ8B<UKTРuOIz<\lxSWoS-jt&`!u.Y'''xyq=sKQ|sZ,e3^l# aXSB9 HUZӴ*@g7J3Q1YH$LHidY8|@Ӎ$Φq=UR(NI^)Rð8SGl\$;os+wp4)d/N[f+r>o53Gu#X絹VZb5hYlinmQqI r\y`~}䳧G)`Zk!תn ikum:a 6XbyYQ>UJXXV9ZM^x,1{c7uKg[tݏWտoo>|@D_Mm'ϣ;oQ"+af~{{ĨԥKY:TU)c#5zv8m*ˍ=iϡފʂWYr%;><]«J2 .;;pϟ>["Ȩ}|/~zOMYVk3*jHHɍl4qPujn=ӇSJ9j'SUZ• 뤧/0@c .X+.\#jp ?4.4o*-Ix7/FI pWgek^Qc2i!0(Qiw^g[D~D=CL!s{0r|4h&YAG3qZ[Z(^x0#cǢ0BPSzS&8Q~5 MH`~4Lg-1W) <~Z8;jʠsv^[ǦYe6,o4 㝲x30@Z#w96@,@ZFt|19FuǢ_y P[mNuZ"}1?MZK `SeIn56|*fek"9O^A1 e!ElghyaknWy4QZ:@}1$u!37Vj4zdhc1vΗ^rɾ݁ɎvS;_:w`x~;xfL s ,L pZǶ/}U:%EQu9վP&{y13Џ-w rYZhU`C8֍,r Ȣ3A0 QHjiܢv߈ڿVќbunbNfuE GE)J(|@7Z=!o-E`EG>AY''*p'H/f/ꑻ7;`6RxN10󔚔Tyw4vjd?7j̈́s kk g`kl#{!ł3f~巙ewO~`OcPKPpsetuptools/command/setopt.pyX[8~ϯ"Mu4jhD0 Vs|ff<D{&%Zfx'ܵ'E<0O*"u{dLV8]#.̚ӱ/ZhC׷-=L4ٹ}`#WcGdbe޷3m*i]9ّXkY!1+yw*J &_V%|M궠uެ\QzҟAi+!Ǻ=o+HvC Jq=9'ipC")#A Htb/n貢:3>ie&qxٕ 4<S"W:uEeC`TZH@|I8~-{@!?wk]RYn$(E끩mdHI QEIC#WlW^&6s6=o2bhvZ1>&kA1uU摾%)ddoa&3K^W/ġր~;d~O@  N2EwFDm$*Yz*5=Ս»|H 'Ԉ% x»h4g`dD-hll]qcn:g^ܞeجecPԘ$E[kLD5L2]Cj|L8}7L#js<%K9R$?*0^LU?SHtz߂~flΡ#ޟ5ޱ_PHܛyϸ,+j*%Čkv{LV9vgnu-\࡛۶#y;Np9G>0P!zxjI࿽қphP{F}=EbEE8d2,`]C*_ $0oСwnK-vFh8!}6wY`s o hMC]y3 j g(̺͢cP2?I|vğܗ3HϔXsù%:?{f^N5ҫ S3)Dԣ⼥Fd-;V Ԧ4q^hJ.aTJ &^{ghӘ5ozmK*,W˰Oc̈́K\ A9oC bg3DTg(M@2vO㠫Jb( /(Qoz2Z5'/ uS$KJFdO+_~Y S>Sa*Y/~nȵV^|˲bqLEZ7p{Ϧl <+L*Y͛䂝wv{aj#`~w/[ވlgxGD⟭"aF?)Y5P2?WN7,>vhx=m..l/ܘ,c+kqqqA W0h[^]'ز,,(ѱ3NG+Ҁyp7p/%# oU  ӏVT%5,3r%C;4,, .knɃ-me& tM@MW "Mz-\.QׯlV9.%@+ ,>z\H[kԗD]n{.FVТL5!EebRZTgFKR2 >[Svb> Q1 /".O K,Ӥ?tdYSБ tP*&%*լJ/?atS[a+TAr "٠Cd~qxb7yR¤ƺ\ɮ]HV8(x'O+??Lm0,Xac(n]M(e;w D;P.2- p˺(3bxt\K*j@Y\ZV,)B$ѥUaakv2RxDJP=X&!:LXL@.mH(10"kNHw)lϻv9sHJD#5.lf04 iK''& ]Wi`qbLrzߑ{ ϷѐF4j=:W$`< T ۨv1v.A]s%v ,8SsC3=8Z^K hGBlXЩz@A|B~|͞su(@tj\@//seE?ʠ=3Hބ#U]^ G^LѤ؂`#b\uG) Feݞ&ō A]^)@dpd R77lPL(mHG.ZR6GJ3~G*,s*5Uo@꾂B+{O3'l řƻQ?uơ;5iB!00_8q뱎z}ԽNww2&HbEڋ]eZ T3˵e.ᗘ^Fs~G]O%=ක,]lBPE]FsYC!v?{G*bpRr/v;XnX <&:Qq/o:W?c)dH;Mu sILWW|u,<@5kmw{Rc4cIvQfx-ig^ӎTVPm7dm|؛ 3CMiyE;%0t.깉s泀Mn¼,^P6 YH>73}6%~\Bt2;9+\SwmA3I@R9[U<95ȅNܷEA#1Y4 ^\׏>+AjUE\K (op ܠdOn֍g', 凂BhG|Лy(w FnR<)-wIh?J:L|j vg_lEAuM*NcjTq A܄-d؛1Jg#yb)} u@$PS9 ZՁΰrmei+?Ox{{ )zU7id؞޶;3։N#uV4m2ngH;Ʒ`ixA`홢8>RЁD {)H`oޥ@n܈ nʣkJ:L[N2KZAEf>+hCĘo?+z)u܆CWS6Fdaamwy6eBR)G$Lm $yS"j|fC8?5/o Q 7 q5!]_JKē`ޠ4f쪶kM a67!7S!`JS-PJ竨Z o{vH#wŘB85C 2hr }m'C(@c"/ue}+7- Xo2 vȖKGW63Jﮯ?^tA.Iwu:~8=W҅DI)Ĩ(/oT ▶FRFe:K'{S2 tIi-^< .J%PKP"]Ksetuptools/command/upload.pymMn bEGꪚJ](hp2#~Zdv2gY&XO!L*r k{G3) *3;b>v ꗍq50$Q1rA9W ü@!>֫SMk\deH!;qzlq_7܁v9>ɐ? q1a)[J>vmo$*n~% ;jR*(?b{ \s(2?)a?PKPyT !setuptools/command/upload_docs.pyYo8pPJi{"uɶH[5AK͍,H{fGę<~,~XLڬ7tZWd2Lxi4aЦ6ЄFDzݎ9I٘$FN>?T{VjT,-';b<"bWIe6 |zyKP;r[IRR5s&uevMx*(xx4|y[HY4uN3M])1R?@R_xc֘j:'* Rq-kh~YItrO$kt~NxBxB6JdFӏ<#j0ùXũS` 8yνlLk#Jcua@p%0R pKj<+d'3ŷ]:<$~szwWi}|xX+:"X!X V Y>X;A-@~/֮Ut,)ulgcro{"Z3G譼[N*P>ɒGQ8?Uޢ vUڑv^B(Hj p~蜕752V?Ix4`4YKExED9< mSd㰪Em+.22']ȌMk(_y0owC ]'eԆxQd-Qc쿎Hb;؃@yxٳ1Cj-EGKӊm'2lN%F!r්u9Y[]´Y<=°׊{v(&&&0(FJ~Wƨ1|`p8Yh@E?vRue݇SR9v0\Y E_~y7^=?go/N_xy ^=FF%+\,(yLeSv[5h*?ۨNۡ@\#AhNi4r?d-}QPXjNf]|Gm(SJV*#(NqDrL_lKgKlku` 4L ܊Rr7*{;aDVY-#U+:kum0I<*xX Y%J|u$c!9=O]P(PdTt{D^Ik:"I,mc㲈QY܄j.ڋ6Ȋ:Jkn8W}[A⹓*= bxD뗿#1zzVhv?1-22e#I$L el^֫0u7}@Ni~;;6zZ'Taap[4Tss A[y8너:Gָc4kvvζ|Ǡ榐ca;H@sON؜f95Ox3$HEnf\;Sذsa5jat ZM`?O777Cڴ.+TpmܠF-̩̆KUm|ؓ) 0NUBCߋԴ3B6ۘ-BMp:s:}5J|'x#p(s[W ֐kXޘd^\_trE"vv{7FRk'O{D/p{mٱI9e92d=W=U?yڿprG{&߻q eOf@_}vj蘛25L);L4{*x;5. R)QByotElPKP$l setuptools/extern/__init__.pyVK6 ϯ &ۉͭ! M%Gk%%?cqŎe#%vzp;ߨkc_E/rПԵg0F _D}A #k>3:hiK-Z,f7(K/ԡjE4bxu4јŰabVYC= IW/N C䐔Q6bo;k:~#w(lu)U4S(%y G&Hp DL_]A7HnddDٚW8&镊ynqmO$t0 T-;xTK9Y!ZLA /S&rxAO3EGH.7KQ&-㵌6"Vti4Vp9|웘vqɋ2+yJ2juXqxC0BOd'NgO cUoIvXCM'4Q^li؄ quSapE%?n$e?.mdA;8^s3jBqE]!~` J^(͎2chd'Rv@( {Ɛ3jtq&w0h"dlx|Mixsuٖ2~jT?}nOv|o[3Û> /",7VL)qas/iǭ6:502 7 wґCE5ѫPFiy+znX4O?y\)[&x'ֆ" E*Y2UeQwCGWoVr S!>K隐8[=rEF_g9](~e|eC$q;or|S(&PKPP׫6#setuptools-44.1.1.dist-info/LICENSE]Qn0+>%.(-1[Y(:Zh,"U#I@7oIe.]r+P8w=|yƪq߮ƝFQaƓ"zh8La4&^lFbvu`#TР<"!wpF*]c+5 wp:6EZS`z-й)h|mC1~jk'{Sy'Icɵ@3:Ouo}Ck=3xFVv7cn+"]t6}%<ӺȻY4*?wָ"v̜zz@8 0Ե`)J7>-Yk\SD O"),XE ;rzr,1e REbSdcMIMEK˥LlFR-oTD*Y-E&>VBĹ Lil3تBSER7<5OrͲ"EA"k kK2W) dLlbHن=yJ"vu51-dN1kS*6%)QBVJn։r&_YhEBm!,C)+! PKP2ӊx$setuptools-44.1.1.dist-info/METADATAWms6 _nMiNyI嚦Ye.ln:w"^z /¿:eap!rLJovjٳU ['p*5fQh#}TJӢ P)(R=\~f (cXc3KqDqY"UmƊ*2h7;strJЩײQ͂s%p5Nr, IdQ~.R&c06u _.9`e̐6\jkZ8 )6%K˜TC6$icqCXRVRDVynvy`35sRή*%>Ǽ%)V?b? }^uЭG7C.tҪ=džk߇WuIwușԿwKJL@= '}Ip888| ^]Rx*Rx905! ryƂ ٢a oc^9\Ҳb^ Jě&|PjD*ypsUZAU&dk<(4DDUA elP¤6HwttW*wÍ_c& R(fX[' z8cQ:&@QԮ6! .Do:~Dd/-maM&7(l9_d SVy)TV *jK嘆!%„~ N)#W9kSF?u5 o1e@r1k{qo͢-NuE#4c>4PmPKPF_n!setuptools-44.1.1.dist-info/WHEEL HM K-*ϳR03rOK-J,/RHJ,./Q0363 /, (-JLR()*M ILR(4KM̫#DPKP7_ݖ0setuptools-44.1.1.dist-info/dependency_links.txt @ѽẏe2c(< Q Lc!q]{i'BBb11r]Hbl{uHqX{ ہS&me?޼8jF0ˍZQj?؍li}?3Pధq-**R'SVKeQ2'PKPu ,setuptools-44.1.1.dist-info/entry_points.txtV ;BjUU>Z!xf$@lk`(dK0{csfk#/}`)C0FЎ 9<>nc#Da.*\24i"njH _EHՋau+7Y^r4K5hHo* JG$IIM7G-iiȪ!#[w2Glx#əo:9lNr2X'iigX{ _jpAGoqP5H[֨@GpU,mo`ԓG{O3aAZy#x sy~ X՛3JW/l "^}LY/2 d:-F u ܎ $̓Vk6ܫjq`--g"I HVR^ )1 .՝dH0$l!4q`䘪jp >N x/ zv&ݬpsHLUц7+9 ˖ ѓ,ӽ{zfl##X3aD9 /'U]K00C#ցec9wr(#朚v)b%4sY`M e;q;=lPmxUtkBPKP0\(&)setuptools-44.1.1.dist-info/top_level.txtKM,+.I*N/J-/-JN-*N-)-()PKP2$setuptools-44.1.1.dist-info/zip-safePKPTo(#"setuptools-44.1.1.dist-info/RECORDǒZ5f@ @0=7Nm)S܎-f{̇1#K=&^mc}x 6 7m${lDGW}e*Rq燥&v~wVj\=% U B萦y]5jr B>zƷzbư- /}/Pz@ VߎtBN>BTB(#n#dֹ=0!~·[^Jlɡo&|oLZpY{k}"L=g0OhYMA ,n9//yܩʆvM> `yʫj_+Gqp 0;SJ䥟\!>/Oc@6/'(˩Yd9+FȔ5 nA/uM#°Q)Oe 9T0b&&EB1]ʞ֭ђi>ۑKy)Y1^X^Oԩ%@nC-м7¤hJxx'WQ&R`兛ru }BuJڱRu0.Aq"d}~8(kp!I0!GȁdbU r nDF ۤ/`~h"wѣ{SWd0U>%JFv§x5T<\d;iHA j "IV9k/Zps z"JT' :1\@g7C8}]$94myfXF;~:)@ZAD=(_p>&_1 }ضʹ>yxF0c;0ձK Meo ׸&i>XH'F qyZj{ΖݸJk'XdO s= ZsԃR/Zb[Ӫ+U2 !Bv gMdV꘢ n Ԥ/>|B=>gwRF =4-Hg1IW%:"q<8AƯqA^XVD'BWMQQoS+yTe3%( °3Si3<  ߤ4`)\l0lEWH+~o(߁ &7͔diONDydWHoqC@"wy%攇RЬ_+7T  oD3ׂv~]۽R4V'uϛG5 , 'a"x+4Ve "An'D07yF?ek]H4r/Hxi0R/zl_{^Wmꅳ&syqĵj̨j?r]C̒ qI6'MpxףM7ltR&gE{˿e2~ v@$έkpG|j &j] z3߶ l( GW*mdc 1ý5:)/IGi]|2;3-&֥tiz,u383~ o xfzR0(R@ЀK;`H=ʥ<[kf@6-,;,^RsM8 Yzíߨ@]WQi\\d^ a3PCg|{uW?Pwr౽4&.8ُ#} _,=hq9~b ]mrc:Hk)p Y})]_t7 1hT@&iObx%_pΩ)8^[`eN> v3մ-L!_;7XˉZ+s`yΤlIm~Jv"Q?=\XZ.)4ޝg}Kc陦IiC0`.-ޅ6 >bYG_+.Eǁݎ@ ElyހzN񀺖{(b?G/N_d$wHQg=1y`RS|J8.߃^@Ҫ$n"wk/`v%mAߖ{aͣ=vG'o܏uGRu 490JEdO cEN}‚8'pH^F`M4ƣuS,nLw±(>aQu(*ʫ SW1)tu$T ߷LuyZOo9íqR<3Lw0cRR3וb-ȬMG; Y'!vKdaY}qu1r\$"RI(%P6G\g<3K$2n#(?BU9`b:[8{-R<GY#%-<$Ն1+Rm63t7&[B}V$޻Z9taA slr]Ngo&81I>n*+Olo(>eD =Pn@CbX},!Nyڔ%r\m6*xM,{"_Nm>ӶbWdh'_W-B\)*x:o'uzs?&?=tOh,jy} ldZ7@ِPbTcMl5!dOS\Jtا u+nn pch] RsmnoX ő5A##M{ cM񛝲D3'gIe TFz2]:ڷSw;r}lksW~ 5)㹚MLU7-@.r{xL/j@)BW*G>yM T;5?_9=Nl^|S01ܕ)i4B*۽O _?hdD޸g/plq(LoԳU{{7-s} O  ١G'̘p"9#D!n '㷫v[[)$.z%H V??=_Ue{8Y IqT2֑4z ڟ~٧umcJy9#YڴtcUZmJk8ȴ\vl=r  "x=L~_hTMhM ~@Na_Qz5oy~2:Rx>5 ϕSI[*l8 8L4\}-YXE??PKP\OEi~easy_install.pyPKPlOs=pkg_resources/__init__.pyPKPFI.tpkg_resources/py31compat.pyPKP!vpkg_resources/_vendor/__init__.pyPKPaQ}` Uvpkg_resources/_vendor/appdirs.pyPKPf]w"pkg_resources/_vendor/pyparsing.pyPKPXMZHu]pkg_resources/_vendor/six.pyPKP<)XƉ,{pkg_resources/_vendor/packaging/__about__.pyPKPv+|pkg_resources/_vendor/packaging/__init__.pyPKPiJ\*7~pkg_resources/_vendor/packaging/_compat.pyPKPs.Jpkg_resources/_vendor/packaging/_structures.pyPKP0 8 * pkg_resources/_vendor/packaging/markers.pyPKP|/Xpkg_resources/_vendor/packaging/requirements.pyPKP|Eym-!pkg_resources/_vendor/packaging/specifiers.pyPKP'(pkg_resources/_vendor/packaging/utils.pyPKPơa $-*Rpkg_resources/_vendor/packaging/version.pyPKP pkg_resources/extern/__init__.pyPKPs sǾsetuptools/__init__.pyPKPJ"setuptools/_deprecation_warning.pyPKP[Djsetuptools/_imp.pyPKPeQlsetuptools/archive_util.pyPKPq &Ssetuptools/build_meta.pyPKPzi~setuptools/cli-32.exePKPbp$Znsetuptools/cli-64.exePKPzi~setuptools/cli.exePKPMSz_P@setuptools/config.pyPKP"2setuptools/dep_util.pyPKP[ setuptools/depends.pyPKPY}3ssetuptools/dist.pyPKPQ   setuptools/errors.pyPKP_setuptools/extension.pyPKPOkmsetuptools/glob.pyPKP)όsetuptools/gui-32.exePKP&}setuptools/gui-64.exePKP)όHsetuptools/gui.exePKP'wGsetuptools/installer.pyPKPd~setuptools/launch.pyPKPQ~setuptools/lib2to3_ex.pyPKPcHLhsetuptools/monkey.pyPKP2\6$setuptools/msvc.pyPKPc ֌ Lsetuptools/namespaces.pyPKP؍.setuptools/package_index.pyPKPDԜsetuptools/py27compat.pyPKP0Fsetuptools/py31compat.pyPKPaآY2setuptools/py33compat.pyPKPVD!setuptools/py34compat.pyPKPSc7setuptools/sandbox.pyPKP'setuptools/script (dev).tmplPKP3j(setuptools/script.tmplPKP*6XT)setuptools/site-patch.pyPKPΕ4Y -!,setuptools/ssl_support.pyPKPBךr8setuptools/unicode_utils.pyPKPHLbeG:setuptools/version.pyPKPE !:setuptools/wheel.pyPKP tEsetuptools/windows_support.pyPKPFsetuptools/_vendor/__init__.pyPKPD*;! Gsetuptools/_vendor/ordered_set.pyPKPf]wUsetuptools/_vendor/pyparsing.pyPKPXMZHu}*setuptools/_vendor/six.pyPKPЈ)Gsetuptools/_vendor/packaging/__about__.pyPKPeD2(Isetuptools/_vendor/packaging/__init__.pyPKPfa'%Ksetuptools/_vendor/packaging/_compat.pyPKPkr+7Msetuptools/_vendor/packaging/_structures.pyPKP/9 L 'Nsetuptools/_vendor/packaging/markers.pyPKP8W\,2Ysetuptools/_vendor/packaging/requirements.pyPKPFol*e`setuptools/_vendor/packaging/specifiers.pyPKP32$ysetuptools/_vendor/packaging/tags.pyPKPa=%setuptools/_vendor/packaging/utils.pyPKP3r~ .'[setuptools/_vendor/packaging/version.pyPKP8setuptools/command/__init__.pyPKPP#=z bsetuptools/command/alias.pyPKPl90~ G؝setuptools/command/bdist_egg.pyPKPt>setuptools/command/bdist_rpm.pyPKP u}#setuptools/command/bdist_wininst.pyPKP' csetuptools/command/build_clib.pyPKP b72setuptools/command/build_ext.pyPKP@FB |%setuptools/command/build_py.pyPKP> esetuptools/command/develop.pyPKP#setuptools/command/dist_info.pyPKPzv]U"setuptools/command/easy_install.pyPKPIxc?setuptools/command/egg_info.pyPKPPaa[setuptools/command/install.pyPKP\Ҩ+&bsetuptools/command/install_egg_info.pyPKPӌ*,!esetuptools/command/install_lib.pyPKPF? %gksetuptools/command/install_scripts.pyPKP])B7t(-osetuptools/command/launcher manifest.xmlPKP}s`z psetuptools/command/py36compat.pyPKPvwvsetuptools/command/register.pyPKPԤtwsetuptools/command/rotate.pyPKP4F{setuptools/command/saveopts.pyPKPB] |setuptools/command/sdist.pyPKPp{setuptools/command/setopt.pyPKP7Yjo %setuptools/command/test.pyPKP"]K@setuptools/command/upload.pyPKPyT !ysetuptools/command/upload_docs.pyPKP$l tsetuptools/extern/__init__.pyPKPP׫6#Esetuptools-44.1.1.dist-info/LICENSEPKP2ӊx$setuptools-44.1.1.dist-info/METADATAPKPF_n!setuptools-44.1.1.dist-info/WHEELPKP7_ݖ0setuptools-44.1.1.dist-info/dependency_links.txtPKPu ,jsetuptools-44.1.1.dist-info/entry_points.txtPKP0\(&)setuptools-44.1.1.dist-info/top_level.txtPKP2$setuptools-44.1.1.dist-info/zip-safePKPTo(#"<setuptools-44.1.1.dist-info/RECORDPKhh?PKx"T* * ?virtualenv/seed/wheels/embed/setuptools-50.3.2-py3-none-any.whlPK`QQb/qdistutils-precedence.pthM= m*/ ٚ!HA&JѠ6tq W+0ӣO,FG|LX3͚)ɭ1N*C$_ށ#L31o.9.y@3TۧQ̈́tcB PKTQQ\OEi~easy_install.py-1@ D~Oa4 e\`dEYim#=1437Km-V]U)#uJ1{&:lrk6tg]} ]PKTQQe| _distutils_hack/__init__.pyWn6}߯ i ލ/4@ 8dLIaIHʎP;C- % g̙eQ)miLW/qYRf6IUMհw,*&Kq-s+˨PiCThK ;!4(m8;c;V*Az(ֺvuވ2uOTe$˝bp`a1|iNi.UMa+ fJl#ʼ].wAeER^]_8W2t}''fsOW2^//V%jlzi^57HRiGW] ha e1`PY(ĸ28/h@9E{D)잳LV 1UH~ Fj2$6 3Z 7+&L8Ԁw#ڐ߽;ҐؼY0(ML`qO4S7-@&E?9[jon;oux0#hj&A 'im'>Nh$7hbw[L$4B$ qp;5N)c@w]KDxڅt-3rc1YLF57IjUfؓВ@9I)[c6 ׷߾~|monL`l <7;bT {wŃ亷C.ma0=Eԩ+g4fzM78#Jida1b +݌r(zYKE2ryJi'OOW_cD1EGhQx`9v58T&V7CRx:<#SwpMoPKTQQ .,_distutils_hack/override.py-/*PO,.)-)HLVKɏ/K-*LIPKTQQ'/1rpkg_resources/__init__.pyԽvG(OQM $}gF=tZRw-Z==4/P d5*B{h{6>3#@g"PQq|||We)f7/NQfElYղfM-gAf[y)gf϶ly.C0ƭ.Ve{m} ^6Ю-b+ɦӇ8{P75Ŧwm-v5`[t7WmtCm61lV^ϚP77媨)t`ͦS,WXؖ`U"zh^ߴa-dm7'G|)>:*?6{I?l 9a3 Q]Vj hGދ.-wsaβo zСGrG)k)/<աw 5c)fR[@mw|Ùܖ@LV\X>b}Z:wEnwcJڶ5MLB6muh;k694^=WXH 1.w"=;޴Bs+ήؖ+dVXβycOO g@pI O ;}8Gt/ GO>U~iv磑&wwrgPiS]l h2 f^i~#8#YsGnBtS^8駇˦٭Q*C{u-Piоz$쏨ƺo`=o0ѫj[%`,Cy[.m+b>soj&"<##OY;A@vU++]yA9?Wyć5Ro.VEEZp‰:ۧ-QhKYzKٴ$bOp{ ^. N#Lj FrGn]FÏʇ{q?-n)6-ss"+ۭo$[Ǵ}7;8xF?&^PzM/ğw??j)pnFtи ?ȴG?:z>x@%G m:кyOu 0(qp{w2B_0?hYHZV%е17)YߋQ?4OσD~V[M1p䠅SJb[Fݪx,xCBIrWCly~d nyS`˦M⁳EYXW&(;Nk "pU7|~yUFGʾBϏ ?;2 ,||pˣ#Ebo2.jfӸ͔nJכ=SyD/XC|+X™U3-Kgd:eOgb(TDH3Qdڃc!tçS _K@~n&xF X6 }R22\DseW- )7-=KF# Ҽk>!UC@KxF2Ҟn$}ֿHe] 5hX@<1C^'gb0c=NnxG9;?*Gu4hjGCnb.foPmDg 8#1z_Ubٔo $)y&|CN}xRQ2iy]B2a1C`]8w&7w=oeT1@wt8AKhJe bPeҭrwb5&"K]c!4xܖ7Oz={~W{O~F+Bg X~FVkX]gor{=Cߢ PF؀Qek@zd Hgrziue㘳DvqzHx~aYC[Xz|Pz+N[B+e ?%wkr7#ϞY rˇx#0 Moy+Kn̅Wzd,KΒ΂6ܿ'=G雊˕Ц~ǟghu?|Û/Q1bOP~{f,ѼKHMKW=ruXmׂ J|v,:4aϻ?%u% H ,xpq *2@1+@K=Ɛ(AƔԛ C2nWM^yGM8_6ᯟDŽڹ4eڎB0pJV?ttZ^67_L۰cݞD2ށUV)맅BYnk88rė yvQ] 5tc|r$—V t\h-dI+X-ԁeusVSAЋ ) 8 gfaA?;ag!fL/7LȦԅIS=hg]7DF3*;9;]A xˆCTưF(.K+YL"! kI-WP(D͖{ywYs?Cebg Xa=csZh8xpUob粱4.CI`  );^A|ۘʎ7Pz 0bGVTBO"QE 0(Snzm=L1&d$֦gE~0>='3D+D i~:V4[}0NsGMhܬ1\hΖmϛ Eʧwnqbw޴ey&Nd;19}¸ql$>N`uIƷJy ?V]v.]Exas%\8:C;߅ /$U˲its9}])R rQr:.'!xfU}^-܇9eACGi=t ؘ6mBʸR9*"9QjsBUՒ](> _$gς4bE$~P !DJzO d:Ο\ZɻpQѿ ) tWO hg)b߽}0n]Mxt`p!a޵߅#cB5@u/3vcRI劉Xp_ND"T'5ݹgN@t`IStb+g@0t `{@Ձ<'OЌGI*ݸ9PIڛ[m삶1cW("!43Y,F-'{'/Q8+hQ W2veGsd9|U:6rq޽x]/'ⲥh3l89.26FjQeoLUǗ vK:8JJw229prNHƀ δ4yK6iXD%@Ͳ  3i܃ Jq3~[Ȯʥ}4i.I_[NRh[{c9H-M(f8P!/U!3,*^ 1dlZQ;g1ye B'(AznytG*" @?]Vms?hIÁp1hxw/HX!7tPo~{&ꂌ:hc~wC<}bUG88`NJ5@SFڽQ^}^.3rHmp Q/rXΪUj T"vp,&M|ZiQq.ʦx@]`0J=pJcrI(ܻTrytfeӜ N-A&> `Ib bl,>E4b?%1nA&g9Pܞ}v=y MѰLjC#-kҊZwu <1US`ySFL 7Ms(:D햒KYt~by+ys)@ .*'gJL"ʰg&Ch ׽S˓bJ0)e cZfҵ~UMIo w z Ih>~:E?̇ͅ"6]tw=:'gMaQ8Gy͐^Ok5qq`n<|l)_co_!Q"xoI:ᄲѤ6kuS9$&软VىH~t ѷ;Mc<{H‹f%kN'|, aP 5u/@#Xh#?]{1q8mK`(kr9ȩX\Y'.=^-eN0i Xvty\E<\:^bcD eyQ?Jߝ>?23ubj]J_.V P;F0*Oj(lht`D9XxSd2,άSQZc!/W?DWzTbCAuf{6VرH^#NLN:hWqoӀF 0i84&y7:0dUAAU#y')t NcV\a˃cre~dPQ]mA7Ţ'[ /ib@`o\atR\? s0TϜSG#-;6. .BCUf>#qv-15Im]&am(8ZE:$5>TB4'笯UxTLV#Ns&AO}lt%cm#Q@Č< H>$09#-B]8n@IAn/93>DEsÓIP GSsFܙP?jJ`;]` 15/B%4WS.|QgSN~ܹK:*x.\ 4"Fmvvf&~lXԘ ZC TWO7X7ۙ2"%O*Ș Փ!XHXu큡a8H < .K* 4}BjZk%y,m7pT+Ox\'`'Cft.nST޵мM-8ce1 zbM [T-ĀF$ǙcV+oA =lg$TEQ<#-]]dqs6഻(^ c^L-ZFXv n%aU\b$!s?.`>~3h pӌ%,mȉ %8 iEgX6ÂcLzZ(*΅f̺yOИn '@MaB0/Z^AȭX)y5E[Kfamu)89Q)y#q5JG٘`*"=|PtATؒAF9' 4J:]lnI+@,gbsZ b fƞ,{{G80ױiSbjH~D8a=K 02̽*JiJ@1-~$/y%;S1y ikK am SBWQ9l\ D*#>H,^5LJ&HJ I#dJx^/mE\ !.Ay`B} D:ZjO+ލw@z>"+`#? =Wvq$c):?:ݓg 0rT7Z|o GHva*dߛ?IxRLB2cԕ]Zĺ+b5Qg YA.lYza{(-c(UTqx% ]*F+^܆N&㽢8O;.o)9xڇ&Oם {>i6O()}"!M=Q~ ko_<ltBXK (1ui\u+KȜ,Op5̿v3=f#UդĿx!N78>pqC6Jp-_Lc{ʫ^֧YO:syU$T?z\:mW%Ũ ʆvaÌxuţC$]8~iI $EO\?w5*\CLBSnuf ziFcJAiuMV|bC/e.+FUuћW,=?Y}4agcVh'/ kq"%Uw0JrPg#q)Q:+=,# @44̉ yB Q[\l8J_@䦍>e2XP&`|1;q@ ${:Nem`%khc" =Qx VmmzFٲDpDTA=Ğߪ5qaRʻ8ŃJYDiehk,ڙj@@b&}м~S + _ceHdWŢDL*hes30?Y`hi7Ɨ=.R AydqcL叾Gv!l9M5kvB]e#b9&PQa0cDdQ*vo>أB9Ͼ/R^GTvS7~܆w|ޖ&s@|_X)b^n #[ӝ F7uLN#7Hwg kX/^r2=(N]6Ж#at\Э~ᅸyQSXD3Jv?,zD]]7ja 6;ywhß͛pVUE,)C+[kz&SvJt9o6Q v tE,$Mtx}hlVmK@Y${7Þ74\hsc2FxJ+w 0OxuxicKyr.D-֫p|üŅ0ׁ?TosjY͛ûH;x"ep% .M*>EuFq+8xhn^7 ]cҸae5DI-fV!>i6f? <#l c}:$مW6 2`LaگTX-0G(p4MWѵQ٣/z#|qv h 󷒲8s fW!C$O_]KLN"tфphҋw#߼x}j~/١L"|Pilr0B{6Mro2w*Q̱xĿK|$ǫuՉCKۋ.H͢V;Vt TNyrҋ:V}=&Pd-m*Ͽ,m~Cм%J>MO'QC-t;(s ʫIprqþ^cY M`ԓ`%!`hF<J-LYܳ絁}_Z5۲}z [8M9{/y:{EÁN X }vVgv 4 OD0Igg옉9z;+Er6cz4zZ;;R嬙.Niб~[W9Y=}ɹ8U_%T{!Mv@ۍuZ.ɹn2=3i~z p?,?e5\.Z!+JnY SԁiH3GMƾ]6ྗGn{Mv =&=L<{nu\Q'hzpWp}j%iMHHqd^f(JP@~^:^6v9i#9rF'$aeݣ$RjdKP7ۯ\Fz-<҅B<-m#]*:4/D%QSd-ZhL$Ij>G!ug=hh!^(cV[4e){ֱ}l_RGXtkjզ xk\wQ+aL EK^E4R@l^$hjKVAKAz|̫;Bњ_oÇ- nmesUò~jyf)){i/$J8p'lnί6%/bcK8[uQLLe }[wM*j?r=_#nTot[Hfc2#8?"lJ_>B8*Σ;6qgfޅ72wbxlR{֣>=.a@srhR07dzW[34^ýr (KlrFi'vY*vlp3 fiHl47AFƹ6p&i؆A)wv Z:M8'@#=ڜi4r+>(1 ɉ&pl=/xꕉ1 a-& I/WXOtGW%Gl61@gCQ%BWj'u7%j9=:oÜa~7ֺƭ0& WW$*3kv2D${ꅲ; MP [H+lV,1DP {9^]ahAv є(f ( &p Hy7G {bܜm'ޡ8x8"C +0<~ճ.Ds nJ`:"zOn[Ap#pf!koere\˝6.xZ>Ke7]c|`yOZ#ҥĻ퓖R;[=j!{L w99PEiJ*nݼ9] 6+@O`NtRTk7Ʌ(b,{g ^w[#VK*eݵ!˓1vJUcıBs|]A#Y]7f uMjK_#xA~5䖉ΖZZ 1׾vKB f>{=rR}vmvf251Xn2p(ga('f#y3러ĂpWj'%$t ͎IIuOT)!A8@Hffz&`<2hbvMb9 I=d2p3EnT-/Lj䳒&ˤ>~E_ ^h0 ?pn8[y1 ؒptEsM0[;Ŏ$#yx6rh{K" vbbu0MEK|4b9p.@p'Xγ~Vs#7 bYD){2DɫVko4x*_P$aZE6 t&& Qpcq=TWq"dNxE*.41i" ,?h&vE={{,$V F,q9Hj{;j`Mש1ՁU#׉~/cCk S4BL-|Fvx"1G/&oDi&j{/q6tFznziX'F>&?$䔭:.YH4+@eHpkE_Eiop/*n#ԷyLPܖfCzKVY3l.KIK:/ B` B\U<\ 2+tBajRl[Fc}_V{%]=msQڔG -bcbPc/3K! '!X6'v;s*'F:V؁>EM*%޻=)fM]c,X[v~I _7:?;ùkNk%|Sl0 7{Zl&ёtнFXsG̮ ^tT4$H'-WÛ$DotU4ݔ32x ЂN(1˝8`.W1-.^;)*з > ͩ>;]&ETG< ga ;[Â?ăYm(ze59 \YA b:Qg(EɊxu뀔>2Sb{+lA4IWcMcc3 tvTL<9s}Ci;RBN+x(q'BcF ) cA|<8^FΟ&;CeAq &d|uM~Z'0A0oj;L5(0烐p~O$I ˵;֫b1cPޕ͒q u_5>+Gv,>}~COMoS)OW5^۰#!X-LX(a몜[+їn4^mH^{קϞx뾽zջTF0]pW:P@c4KK#m>}(+A XPB:PMNAJRPEQlphBcwfz&raow#uN9OhE n 40炼J^̀ǃaʇaoW+!HR|giDk b+!a* L($;B$ 2dO:tǗ_P{}H͹5f5eh5O|֋: $,R-nk^D *6ܜt0Q-v!=BPےpFO>Ikh:_~oD 츺˥z0σ&vM_ȳd+#Lt .EtkJI: fs1~ɑ-!)ٮL&()CItܡFYxckgAeL<E/ic>!Q߇26hUimVI*e Dcv|Um?:ozA*׊n?Gxs@ɫ_Gd_p<ߧY9GpuSfțGџ l,77xE^ųo_t.o_)oSAE1njjo" &:B"~Wxڳh̹O[iN шwnh`U{9F |m<7f4%}Po򠩺&5j#AS0왦uwF~r>֐~vm x)'4[8URSE;*~lF8Vj*c> |=(6X[WM}ecU;jSXFA/XحrEm8eG%\VXmT:.J>뀤hAŰJw" >KHay26ܘhSO +CF!bɺEK#Oomj|gX㌗QӮZevLˀwpKA9׸- 0Fl0˻'ߟ% nɟ ܥm}S7 2e⑫MV>hǼA>?[3Ĭlwxj*JC5!by}TW )wf ж I<U) 'ݲ"[pn@ר㹭"iuY^K m`C>Œ+h!Cr>9?~8*=m$2ZdݹFPfאF^gߣ68D f0}00_Q,і?  Ϯ>'.? TJutf::ffq)˞~vỾsęP+̉j 48),8`scQ%I)7a5::j]R jRJ!WFF B Ĥ"yjJEq= \'NeBy[L]>&P9Yz_FrQݼ6뎾ZvFу͂j G7 g9}Kľcl%7+QH]'=yteFERճ/x7C;˵;mD685jD3%?Bخ̱[UYnP_Tc/(i N-҄Hd {鼻\XSrj4faQԔLsuT}hx׻k$o1T; x=Oӵ6_3c{0;ˇ둳B˽Y62snP2+4d$C9=hQaK*p?t0*;WNp ;O$z'g!5K0AUǓq3LhE㞒ӄ/˫bW9W+]ď,(wHb ; ?pI54 ܖ뺚*FWE05GysÅ5nPMwdfxDX PJU^ػM\[;-AuP(3\h6nm+*foox-ev3)*j2iVUSdeucJUl<%9[9^ۡg=?gß#X,qPYh/&!/͎ens $9qD[X%gkf%fߺ}" +_gG9\B!?°Ϝ mNQK/pH#}j]34a=ÀQYpP;bdRˁy6X@.M+4Ɓ bL`UP)W@(ט!uU<9p~zt0jmGx;Eɼ\'Ss%K'357  O3d.Qtj05oW 9]7?_pkrf\u`RUh^^,զ/rUln(/E= _F>>iW&o((0pGp=%|EN|NEBJi8jN\{פ{+6H!=|ef%*,tfP*Dʑ FWjZ@9~r' cNW]kҠkUUF+KҥKw iwL%W !p0>J7S6 fC|c #,_t~0 cH΢eԝ dDkܠUϋ!L{MfBmeAG>8Nڏ1uc:[yOl`>*TNЅ._m16c J0;4+)@:PD>tI˝j 'G6q yڀAӡ&X5Ild?sJ$1+Q$1`'~q0*WxBr.~/IndpKcK]I-jJ#AڕQ j4L3Ju4X?FAlXg9:%Sd8S(r)t3]٣/GUsO ʿ+RɽqVaޭu6 $b*œDHde0̑]C 5W})b7$epN^{;:D;UGwiB]"T[-cXSt ǧ: k[ o'ܰ=(uQnѹ<Ґ2z1 tsyŸ͎//ű$Is(M/!?/QٵD5IW5ݯwjF]H%)0IH6@&f&,)&MN^k q)`\EU]uRnÑ:`(U#qbzC>a5 AƇ/[/~GnN`̙pQܵtMF֙NY3MJԘcHd?}RBoS&?;?WgBwB^npOJ!m])Iu8F$:S$m  ӂ!#}ݳW*c AjFh)BxL|P5B Q@vePB\7'`?^ 3QͲCR̜Aa/{(u:My=1VAv s'vl$c٩OiæStjjeCisYJCRmukK#ܜ.^rz+jeiwuШ|5WWI}DA$4C]ޭJ4(Lc,² tZB|GX]-CJv- @`*CLY̼i_Ȣݲ'%wrsIń1)J ă }oߪgSK,E 73tۄ&\&R6G?5bG"궩FuU]ܻ?CGŽQbR8udKh 54d-wz*rni{W%M(5ru' L)2ӥřKAz}< 8HoKK#2xβ@|.W5TT_fٓ5% mI$mO|գ KHZ@S/6 5HY iIUkY'a8MƎq{4EРkՐR'a/I %o4p5|juָ>6 նRK$p3Jv#s,^n$Dˢa66/0ZeޱGE9FGbC 8Τ6\C"E 5ʥާ܏e;rǤ'{hE})L\`J!T96jyD JJ-Z_Ni*7:~n>qf!-iq1%kX_G ҕp [WW/EcVX#%,&sZ9е-$̪ޜgAjLXI!uK9aòU$ubY"Ey\qq(}sYiYh$ `~\hsSTJ'Հbҋl'i=.y`?MA(tt xpt !C.Yx&̐ D 4TƱGxԔ\}?xt9h!R GΐX2 mC>d3c=>t㋸4aQ9!Y~$>~r8-&=ҟآ1</v6,+:p҉ \'SpN@_)vn6ŦBtDH@&" jH@M(Z90TT,5Ʋ xzEKRSOHg|nT,\c xhC7}mChV0jhV8vOjr: X%&c[J;K)-%0llO/k)fM }dϥ"lͤhy9\UY+h_ )"R{En%ë3՛-`OP$1H-AZRy}}*$AQ;nwwPP(Cߚ]/hg0 *lksa ,[?g7Ƭӭmv oNY+',p1;{כKGOU*e=ߋ=.X?X<y0\'`K=HؕJsbfsäkᨙc ñKM| s1zu|€ML!\-sb=_veL.8b{Q(@HďmG;['Z^< w[r>zG6 iB7 &!5aEC( \>oxy f"棦#&pC|t&'~y8a4hvAǖ"^tnx$NN=izW%D5Xqp^T ЗT.p=gebIasGԄ7dÚXLj/΍Saj6ݏ8#$!wq0 uW{PD80`>\Z3cp#6*5p` 6@@Rd ࢅ` ?t6X1k<z] `t3Vap\[{{d,}ObW&({@([ZW<% 85u0tk(0 N4RQ_Q@`:0['QﳱQB)0$u.%t#K_iD$@3Dž9sS C;A)^g.VHb>D. e;cF8==W~\qY~J-*H3IdI 龕}P&ҧ(iM8Xrqn.hYƈe7`-Q?`%+3mK<ØvBn ӀKZgǯ; Wz}qt5D(7r)C<E3qz&i2&ȏpqIh'Gn%SƫziIh~{zBR4_$u YZuy̩< V5 (`[l8 #J2QohZ E-!-Jh7hS_؉`T +LIz%MF;uypX `:^{r G01gj46Pm?pҨv| rdhU*&jd)'6([ ѯyǥQk~IB!: n ~:ک߾X6ņ^, \8]7~a_ V3@7d2gvI_]Cc!NBog!D K$"FKB`_S gk ]ysqbm^mzۀcf#eL8* Dh)| 'Y~ʙ >xjG35h uZ7UZA:9/΂` ?*yVS,312jgdSV 7x?bo?,*g!veeAqUkf, ]YB;7sLp TX,ɬOs)F2Y[j\_vDX {LÏiX KaYιb kkx6A K_&%ůdL}yk579>zr%"q|F^P-(ͣ߂z5嗱 Ukf\:*˫1GtUr\Rf__OQ2c=,Y@FJ n_)#R6`V(愎:C}cZ>egOkog-ctno尕-k[ R5+\/Djtch>Gt)TVbEG39)H.-X!ަwz+3ꥃ65:K5l֪$$IP0R~fL {褯*>m qkA"qbfm&OU ۶o++/>f,md{+*bRCnd)ƚ[dԞ[W8̊TP^i{Y sU)"xE)"ER5>;b9ZN7rhNr` =Xb+P@,pU=ǰR><Y9i43B43ߥpdkFG(fֆ9sGa:NfeHKSՃ;B'ǤnEv)Ft7J@%A4t-;%I  L93'0ܘjXj;AySG8 G6͡L?\tYzr.?-\nĝ<7FD Ch댽v){l[(bT>nå6?ΈIXA:-N{T.)B, GYw_ ?,~ݤ,Hl _Y:X][ݝ'Rƪɭv&2E6Wu^cRo.E{J/ˈFn{M2@k:1%1&Ks\VL)I/-PYSZܗA\&7š`դcm)/B9CA? tF( ~֛y,}7#yhI½K[Fq*lBQhAc7fk4h9z]yY C:n÷ھlkb>YܻF iU ֭4FtxI)ڱ( (rzEC>plְC_p M!~&̦L`ayf0_ؗPKTQQf]w"pkg_resources/_vendor/pyparsing.py}m{6>OܮRln]qZ:/7vxmHxSoAIv={K$0`0/i>O`v=2O? vuWA8kkk_x> wH뤘eYyR$'YgU2"I4YUu0K*'Uf:sTU\$P~e@|4&YWi:I α;A@*uz8'A$P:UP$eU#Ad>tJ;R"y CF&4dɼ%>%V=̋L&hu 4PfJ0F_S{HyAɘƝ_Q%i>W0Lh88rS&'eB#c zͽIՓ-qBg$B1{RV@),/]wՏwW~߼޳gAg~w৽_x@7/zl{gݟ_=8^ ^}{/w|)T}0{wp_Qmo=G(/v|O= DvzΏo?y`: { 4b! چwp>5# r뿿Wv]]niiohg/ۥ*)}]zMnv^Dzy~~_9Ե;؍7{o^A ]@՗ 1}G zǃݺGv7''OCXaN')v& qɫ4͘(wWߙNl}G)vhJ x6+xt 9 ;CG#w:׸YÚ\#y} 3 'OFg Nsa[ p|2̙?xK'un`8*ϠX}=@De?i'7̝og $;}}Up Ong\A΀NJ]+0l/3'n{*.Jx3`Vmn"3D tQ;q<ǥ*yO"y@SePr^ D}YG> j s~?vN h:N&w`s'GoG]zԍnYXf*ńbBޯs@=6hE l}I $Edd4)e3. .=)^'*zIUF^$l@ 4RHǭoGNF#{Hf TaX$"&g~"}@+o789 E2& 0é0$z@d.wX<ɂ"%\%*^J+ABi$EQs4O\hSH3AL>AOj4Q{sĎO$3ʧ~]RQmOO)s>ɼc0*w\yY9+YB"i/MAcP`V<][f讙 ֦ $9 KXA<"Y633hiCf@Q½ M +)WŋHT7_ez`v,3uOhuyZޅ`%y"] (|wAI'ه /@I ^c< ykL*P@N;;c]a菐N D8P2P{uj. dPfOKhʜ<2"}X`c1ӄ_ tL][* ( KUY5u dAy6|#wpiq}Ix, Fj!|$=|W{bΊ_q(0Ϊ.IdLOI|2p/Fn?C˜~j;66?&ׯ񩏾S.M ƗTXn ͂G*%UKGrt0lT >?$\ f2f7Y\Cʹ hgy~_$#"?'XUC}^ZL듔Qrga|&?_͒L~I=șpgaGFvM~/w3NE:>؈f1s^ҷ*%h /{cj:1_n_&&zd9A pEM͟:p lW;D?y]$i>/rU,O&ϒHQYSl%)R%Dmy6Rd0=ƯN4Y%(fcpi_0[MeUqv/pJ{$@kFT%S}NQA<q{R t!m>>|eJGki%dy+ 2lxb۪ৈc/U%q xQg[JQC'69 X{ngO&n|$@/GGH#xY>F$2TQ^IL|E5140?g ?+Y?% 9.:ZnG_|՟/3oӝgvGR[rI;1"fwgJ;_4 GbT:2+xeՈj"C C&'u\_QuI\752AnsmW⍃/whQEhR`t7)vI4.IWZKC CA(mSmV#:$UPZ;4Tŋ1Ko\8o;~cš){j†IJ2iGzg#x{sv-tSZG#}X+"ėy:.Xk~N'p-x>?U. Cd؁/ 8{;m=K%ꋲxPC?3|1P|$)YPf̅2'nZtE6ZđvCA: ;0Fvzm`/ kS` R5Y};A Z-&طv 5$)._+>y[4..ټqä8PGΓw܅#IR! |#1*(;!Y2B;5XڎpP e[Aܖ~n21P"AmMGu?f;}d@I1; -"H4f܈A!TוVjI)" wȯ26yP|kMm}+y2̎vsъzPT ngIYF:(v*gcG}$= HĢ|zNOk;XYRk:3ujvݡ0u0(ԾCYLx'$=k cxqfC4[`qt:Mh!0^mJ'/xO(8t|=mk '7pO=3NQ},-z|*qr1f8b4Ո`]8nooLMR$=dU%7lUFuh!d>}[B*IMgHoXmilrƢ*}}AzJlbIi asx2]D)+[5Ĭ[XQ14* mx8C-ܙIJilj3yV L%@fжȞ='CI">A,)Oj[Wgm5hri81"q.PXfj^{6n*y6KqZ[|^o'wx1?Gd F;[fVsnLbJj(GGnmk(d,&sbth28,bH#1 $E4 P bSIg$Y({7=6wXRJhTo֏ojNEm4[.'7-C²4J<\'1` >wv }yHqAuǔɯMMgJ:xP?f&͛{!j8UnuYK]oo<|n B l N'lt^²3F:HBǽN-m}%lu[ i;EwTW$jc>`z-x`-xY_w‹{u/Fb] X0ozfh|Ddž <=D F|rU7^k\n$_xB߭]ԾP*H[t^Rچ`u70sK P(n]ofqtp[,G^.iUX]s(J1W%`?O_ehxU[$`!KHlZ*Q8}j'ߎ6B{WjX4^G؋^x9fs]Z U%]҉in6pEh;U8V `J(uä)לT nY>6P$]/Z;7ŬDL6'lPɨۍ{A 뫃cc/x^y-`͛Q[<^k![5e>Mk5E䰤{Mhk> u5[!o{xT+ψwgJ٥{FtJFzKfs$}m6m\[cQɖy(1"4R7wk..r]eB.z]! ‹6.]`~.-DEdLr{'hr6]Ҷ/aAنrx{S!-uiRZͯzEh^ڼp+hԷB$I.{S cyi>6S[&{n/a6|ޱ/E4b@ pϽܑZ 힦3")ќp\+ W $Th_6 }8DzւK,\$$s wAͧ(M&щE( u٭1ߟX֏ͥlӣ0K{EciJ&RLշkD?U6*HyϤLwURxGYXh-X".=ZmXqIv6*u܊%(Fm6|Ү'Hjzy%&z શ~҃*lu?NR+2R(lj¡D-DC:@u4ŏ\AmSshiC$k/iء+^C.~/I&N01_ ! t!oHP~ZwSz̓6FC"1lF±CxTYNDȴ(*c-F+-:V%Vm"e ܇!ܪVK l?^lPҝ%][ࣨ` _$=j=iBu-jT; {E6;` {5F"{) *Q;Ht,;gt֤hb{pF_|j#Xԕ*_X\it(If|t'OE2sBRCR\%1jc_$,2 ,A 4s+}zLٺ]v(ZOw9}ulR^ `rQ 7b\^LN_B!6T,G-E} RӢK 1 WS2MTK]Ii=ܝeA 1 MGVFtIY.+h-v=fX퇨 btZ_P55¹ެ=Ѱ~Muk.iN[g$'B,YltTW񦪏AA: U'%^yj&6U:B͆#\-/iHFO5i\z,t }[Li_Yņ =۶vMgFzm3<=aA %mR-T JmdYLLzkatO ǹLo ,YcSZ9ccAz=Ea*;t#'SO8;Gcy hp#/S+Q9K(溱%Ζ#Գs1E)m6V 4zV\Lf[ݮ;e; Pxi4܂6ZFmZ޸ V)e`q5%1'iܳ젤u,kD2o mHo$i2_u%l]+7d|K0)_ jI1ٹ/)j} 75tiF՜bĆ{9>q Nt]m +$7ha/dod{F~ YEcl_t(gT0 j/{hU9kG6psm`۬ ⷯZ ;UfnKj^Fjӑ_{xOjJl8 waM=xE\cF㓞 ^j Sk;>hQ_u;~. 6,#JB1:p1f a 2|t[:3mb&F}%"'?KPj :bi~ V'ѹiYMCQz:csiTpmz#|SN^īPGn9d0ou'o_]#t=%hwHp_s>D6v)7||t @w Tg9<{o~ q}%Q~c;l2fVV#n4|I(@oD ]Yɱ3fu(l [Rmf^wZi>ufV6\\r`.Mxuڝl5>FUEeօGDzU,+\F^~>Ӱ. jgֵ,Z5"4%mꀼ-ělXƩ(==MH5Nӳs X#ʂnāz̆rv?Fx 9؅{ݞJMJJnO3v(1BJG6 O?05* _}n Tϒ䩟}ޯc@lF?OpocccS<*R+jƬ@]P% u{ll4hl]._ڗɌ>X.pϋ#%#v^,6պOZY cט*gR}&.7_309zęq{Dm gn g9&(&Z,K`t~"iyBVtR)/S5rЗKQ(=}\!$D5J%>7835l5)?o+, /vYX_H@3 -TaQoUH_52<;@-EIeY۹衳u^_]G/&_P>t>/?/f@"C ާ#h5Aq  z^^2qJ[,9M8 0q\&f` BiM$ήM7KY,'kR!R6F?׮m3f6C9||_%EA!P/J#ser?x2>Z<.+fioV}p8Ao4un;﹵uIT6Re|_y]){ J2ЍF?ߟWlq>*xg='E\\? ʶ+ Wʢ`ϧ #KbuWcen7NhuXǪrVDMa,$ O`^ ]cX[a|tOώ9 @QWSm&ބ:l3śH7|']L^|bj=ħֈO㚪^~erO#vfla1nG#JXn'0gm{;ktXoڕFm54[?)㢙$K<6]X Z /9 >~ՓfPτW *MDL'7Vs>)bhqL+ǩLGӱ3+jW|dRMkϜft|:_B4CsIV<@ϡ->A9(@\! R4@fBFunM;^f \7I+tX8ЖN+*;H@gg F9`1TŌRuROl-G܃M.*۴z++ p%'3qChQK:i6 Av^JOitY@F"oi넟#1lAףL{@@sNl3-Dx6 7znjtH..C#;jtΉF M7l>-7O@gy!C]lPP|Qɽ%~s& adf9lm3]@p@ f`9Y! 0|-pO&%e뎓Q;Ht4X.۸Hk`RAlB=VR`vwGF=R.fӷcjǮie4M*((Dg:&G&S".]EhMQGx̋`LmT̥J&)hKb L&Än,8`Ry] hswQB$H&s]45WOzOga'PZL@dFHЎvR?jH߹=-|QqHЯzKYk~dU'au-"(kVEU9cXvUz)jڑ֬PædzHWxOyUr? Z b2EV0[云J$t A̒,TGPsg{ϟоR=_=yl7~wQݗx x&xE  ^|H3=| r'{yf7џ+30CKvW,"",g W4 0WZ?~;`iZ7V~,;%tY,6˶rmj~)^tL2؋$i>/d{d{n ])6/{70uZNkr 86/'bmbkC?Kn[Ɔ8~kjىZZiKehԊ% H j'0GJ&d,g˨)jv$b<_Se:Kvo8!7mz[H!$N2aXIFc98p=x Ci&!rqzi+@l ntV@Leh <^1*2J:&UpxP`)V[H/)3!}idiySrb[ hc, S$ɢ׋B^@ m0^po9LUw u?y]$ƘPlS  ghIȥl|"ZS`4 E:'IfkR~]txh-`ķm`4PgԶ KyÈqLƹh&@A K p|q I I$ia{ew21 a6'`"(>vVeu|M7VTI㗷l˦,XYYNIAR>GW`:tȼi(Nxm^fTg]"ֶ]eqǣihiwcVFf[FuWŜ~l@T'((|'UςV C19p4XU$-3Bţq^_Qj{ GYiF 6 РcҐjFS"Ԉ+e,L R1P$SxYW`tĈozcڦFyMB28y9$\ԮoȗGmwIm=ɰqxd%9(euDb\ QRTJ,`iGN['RJ 4i?#VNxQD@xvyZƃCt(y~i|3LNKLاadŷ*sD[eL131mjDS E7nF*"C0UHպ$ J ˢ4rQ E#|rbl'ϱHAi [sr-ǺAieT b} }XV|Is8B*o½416ݿ[0/]ì5 CZjD#㾊ׄDbu!fq5Z :-xB&G W5 ZN+<Tj4NkA ܀{6Ž6f6P2rE6u ]2Pᴌ05;m;V]Q]Zc7y%Eѻi>DoNn1>'322F"1Wxέd:#?,&&{FO $aKBժﰪ"'h}mrCvEf}(͍PX yh74r4[J{C4INl(,BD,aLu ~ii;Sro $|:5f-tG^}"dZesǖHgG(c+ݹo ضr`_M+n@ BI5yUy&@Q|Qհ"/E,bu"/f]/I;j.ɿˉKm௳"?MUZN<:okf> ÆQVT.Y˃t';i6rW?>lXD٪ow 6\iźsL0oX^ȃZi4,"m XA^s9Vѡ'l1Pyn*iƅ%mZJ@8; ʏZ ́Pמּ=թ ;ꡪn^b5@$cAVhzhjΉt&zK1Շn-N9@bqc3z1wEX[+ZDjZbY[~ՐP}die[~yK}>ަn kB( wYea,XptX>O:uivև 'M]_%f2ҥ,g]KZ׻òuﰴ ?v ;~`} OSJe1i'ΓXzWc_a+tiǠ[ַ..戧z6k^{%,ɌZ:YH 6&.y .;uCk"z >q'|9wk_b#pJkO{C1}.1l\}k5fm7kk F5A;kK^%d?pf)҈cЙL.,AF~YOħw3a;H@^\}xamk4j2cnd!gA5{$l\rEqK~\,4w(<&N}ܧ{isLreHHD5p_;Vy :XGj#Y1)ӜW lxLtd[QhʭTdiQє\mlfUB)Ha0I.8+b [hc2lʴ?1SE"MlM;*#CŒ?Z$iҲFf:+P  /՛<|*Xo"LǮ` &*ig%"n[LQReNK c,J3H(R 0).qf{xl!a%vv]$Wd\ Ht(ב[Q)}} :=WDvBq,ugI ^sТ>̩+jgLiB ֶdD@9R3kN$zWic!1Yy=׻nhulrÂhGxzC9i9a^N46*\$)uP+)O0,)ăOY۬}A'uߦ q`i5Wi҅{Y[Fw9i}h0vfQg]1J.-20Ji"^8*jGUX"oP IwPVi?TwFm@Jb+BHJJ:½3#(R`&SgYI"hUtY+5:ꢎ& F tY mގ<`\ B]U"/ IAV{;Ea]AE *iFTMqM"pZOlD7`€^ڛ%WRܑW+hY l;T;ײpoQLsb=,HqRǒWgqyn$/>]\m:M(%~ӳ Vnuzug2؎JdJ uRSLTFi|@24bU 6om_ yezSE":>+Զ o Mq(TZ:B9[3nQ!6`bL)Ɂ"SfR'1z.`j&t9A/OO<-Pր4A9B7-+,hЎgًVr}7oa_V|0AkGrs5NfS# ?zGK3:@DaBm$"!7(\]D}st wSOn! pE(|jYBi!6GHCogTmxB#JrR)oX5s :FӠU\%k9/ag'("KegA+ y|Xl q@~"&e2pXH vzUy'\"uT ^EZF˜D* f?wfa9?335\S7 lfg&a02]Ɲߠ,?x}'jok?FIIw<:m%xd4ATA`A_f(4Q9SF_P Sp晰4@V!sͱmTP.T 7xNK ~EjɦR б"\7!>54zAG(os(*.Y8/#nov ޾I%/x0j(yZ:+ ФH`VFѽdF$~+FW_I@1|j۱N #p1㣑LދUNEӶCfeք):Uʩq,u/L-6*5zG3(D'v uMvuCőDU[Њٗ-8/QS_[-f2ĈKU g>R2r̩QeXI}HhS:Zwv?/p D]h22~[~|wmH 7궴nKEgoY2:0yq;QBaNЌyrYŗ^S`q\ŎIFmuzF`?;re>*Qi[ilB2!-cs^c%*<]S2+e@ʉgS>^!]E[DbȔe x42Y"j)n͏Ett$/:=t<:̄J1`|W Sb(JqAH閁-~X:>U3)Ǥ⒁IFZtxx2|' Y#)cYhOQ# LjVBffu-J< Ye>_cP3'`dg]ǶCb`^$ϸ̲ [3 vޓMƻ1^n )**pㅘ[]"\uLD)쌡gdՂQ+ IL/a28`٩h^e~sPZͷjm d,>OtT;CJɬ]1ocukMVP u2 ݻ0= w fq.`%Ӯkzœ.,w2Flbl/zQbDuJ͆ h+f}qj*n5 hj#ZWǵ<8ALaW07@̧cv48&d0wi`+q-,˷w"æ cY< ?Q}= #ZD+OzCۃNb'ScKLA2.#R ꔢ7QU9B2el˭6ц3%HD*1b*|>>Z9&EHhPw'qr$^5]뇸"4fWr_stZ GIjOӝg&m߇-^̕cZE9XA:S{jgUBT -x2[XfJ(jͪn 7 e}"N"`Y6%j $ф>߇Vut.`ZbTr" |񈩯B.1_ԍ?J97 D*-wK(%6+6(ՆA;ϭHAh4LU/3 *~ GN2er]E=ZE2t;(`Kf q'߮@:UrO=ǷFg/Nl zzpo:ɯ!^5\d OL(ojou0g_"rW %5mmy\Il%΅=ɧ: 1vfL-m*m+2c`: &rbE~H '!H0@;CE(^[f ˥&IsZMH'CJ9?6$>ec\L0/ڮ^{!㏜zN5Vy4;]b"%6%2sgz۱E@^XQ~EE꬯Y%[K%Tg?i KۿqagAK2{{QgLޑ@. ɇ. L EVƺpObLTCeFa$`:pr! ]+t#ZS=ðcJ$yUM1q{/8(/w% j i6NGM"W&ʻ/[0F ?E-+C0Cdw(Q'3 &l|vtZ_|i2Vc/q>! І$1lq b JJ>'#_]6ClG ;=+N^mvQ1xyoNF:P4VN d)ѧm;Gq([AHwy6׎p/1hp d9pI 55r]P!&_EZRt a*8PJ"fk#(8_z_h>xuDABa A9g3EN*NӒv‰ӳRX25Us2NoG/_~E1 Z1#xr2*nRQ64#z`CGYfM$$ Ϸ)[G%s/"38:-0DxSiqٺ뽱jc-(K촁প~\bB!&&u#FWIzЁ}pXiXt*?oKa|Kftgu6(( (fPc> _Xx"IbC1c39G 8Nn(6tH5U "PZ+̗,<`Aì\+EKb5_kUhQg̓1~ͺYn${?&P@F"3-44rM Da gKz|nojfLi] 34'o~,s,X'ӄD-Jnj 8ÞN0Q^_ܳ v)@VYl$~4\e=O_7?>{0=6S_-ʷX%eH͆,\wӚy9NL؟~1y轍л a*b[Hǯ)S1"ՀLw!_* e[f} 1qIKM5nء$\%N}>st ̋ 7! e0/]ַ_d6tB;K.-:p)nIbZuCnjD<sqɍ^X ǹXi4 N:Ս6埢C );0ƽe9ztL$>wS3ݗ~ߢi d1E>jKDIw8/;spNĆjbb&̉|\c{뤠tF|m%UA$qsV *rҙZQGi1c嬨LeJ״.t-8cҿΊmP> RuD|D|}BklmbwH|QSz w 0M325\'K]j'f騎NTL 08`d1 bۚ0[>8#Ao1څ:i'õ獵] J_lr0o[>x޽8)9uw{3]U^⥭kxdQqpl蛬q]gV)HҎ CM)fӐew&3<}ݿͳo`*:ձZ%( a#Ys"[ Fm iRxh#E]UFz6WCߌwPyP^YeREk$Mxh*ݸ!2ǪZk1 )c7o6ěFuOiE cP|}9H_ S8wix^n7wO6lIk;"osR3.ې QZ3=#RĔFǐuH,t*BVD)څ6a>Q>G4┎"ꦥ0QTqHAy쌂9|k?]W(x9h:y3u?mm}h-G@`dG#G|o{4Zz5˸H%^fƜ޵C.US Gq*@Z9-F(y_&ȭy0SQ(2,%Q_NQ8^H齲^yrLuqVsϳqƤoX>\.14,̢= ШܩVJ _bk5Y%{t @UR_mrfH } 'mX*uH4[=:Zj=3EW1@uʧ%:ۇ;ﶷn2ucE̶ã7nGGӮ>Zvo۲3ucr{+^3v[s؆cղAnżsZ]82ԟQ:-oc*ow~ݳ{둯hf`i J_R5~/d?/,|l0Ja?5rZ.@=k>2>W-z%`Po\;\n>ll/ͽqƧ愻.A4'˵Bi3*SLgj}5G_bA!p|b|FbV[Y9n1sLOYnp'6Z[د[y{tQ^dLz 4P>vӖՏjwĪ>~^Qvx3 ~ZvD((]C0Х\Ltg'xtH{>%KL}ڼ 1o,-iKFqq3ۜBA#v"A=tY$:USlqlB:H%JF,:B 8*.W(FĄ,BM##:'\ "۽ g B4r.U ;q򨭃*Kјm34ZC$r^HO,4I%hA﬒ Inl2PaP DgfBTzQSvDƀgD qej)͜։RU ׍؁NfI %c'Ct&4aC_dݡH;>3.|HQȮ%gP_wI.n(Q.z]kHЈ_hqy2D#_ *{xc<+DΦ.,)~bnW$h"{BmJ|kgm}_~篿s=e/kg! (z!3)rIoqG+PgHq!*]\oy^VF፤jPݢW`%P1/ ' ˑCDD32Wb{iζ:2mE2>^]q/jܫr[}B cUT)'̮wۖj&êM.n?ZWhFy4atQMsŶhwSV :,A 1C_<[bsfi~s,о;0P~Eu69$U-JPhRp7ȅ8y_. 94TPe*Z#?HVCZ6ރ&!4'kvM2Ͷ鐊W⠥V2}ԣ_-y{8Ya4 QnNd)qk_&l(f@ '_\m~`0X+BU6}\BON&@>i3>Mk䞽޸!u`q 4AW($ew(ŢK2dݹq9ySQ&EXdL()6!}b ,KYH3TWV3=$|O3,ntΟ9S_^?IGIĬqr[ -k-"F1_tvu.v:'o￸Fuގ4Y༪f[M~ 12M7oyx_y:i'VX}Q}~ܗ Tyx}qmo?Ÿw~y,~mo/{ysfnq~\CmX6},ɚJ r\qT}T^aQRKPG&8Ť ad!`,~#4ѠQC4ęNYh0؍ ¸Gfq{3BG{\-~i%Fb0BjeyFPnq1 оH>̬=-e)Y{6nda=N{6&-vER,ۉ[P OlIMZV$okR@IKy3nP(B<Fk"%0W7@j*f5tװ?,a%2¡8 4ZDe$wiLUssZ!zT mZEԚrݱ{ёåEG}CBCߝ _8i,BfNHWheӃ QFϊ#Ks#bv%F| _Yd;zxװ?cY3m#(Fٳ+JwƂASM\ϋmM50)z\Ny0w&#IgKEQ~ "³F8\ŪW 7ݯ eUT닑x<ȳ qw0| eU4T(t WTPw{O +ן6POh{1F D4J}ƭ'3'{W/#B&83eT~YݵXs8/EcvwJjIDqT z?$ƭxmnn[A4$1#rs@eB#F,:ܮp++ƧN9vy]+UP]TDd0Rz LN5T fXAsm.unKbQ*oA C8lDa x##?/cˋL;ʶa(eJ,ac>8u ,qqӨÂSDuU?4tV> V Bѯ*c#Ʉ8?0@DNiEB>-k(s=$f{%M|[^Morc&x~qO)˃'in|nq8/ȻrCf3_A'iڈ9=$.9u, j^gr^&оcnW.&z% vMyꚶ/24W%W/i|2d~~ ?ݳ`o+xI  9BgdċFA `EϬa7An* BuoRW3KNhU:bYuuKt<8UX( #M|(`[(fM-y6WBlC(Q d7n8:<NG 4;(** rZdl +FCo)(Ysd&7P)pO1o3޼ۑ,#z{<{'[& pQlf@Q\!k+@ &dy+HWϦDI׊d_zgosPUȶD7MEf]\D{wiU[Ӈ#<(}ti5C\VG< u^ث%WJX%6}3>tcWܹ`>yhVzo3e'3u gldod4YvL<|2-l79~h E~Q]gOsDu`. +QW=oϪJYf0.ZhX,jYj`~q 6Ben~a6`W˖*X'N` [53)B3u>O&Uf5iE dV]N8:|QK 87}Me6uyᢀđphKIh˗'IbU«>aQT bԎR6̛=$Bބ1 X, D۳ B"OGhE*X./nKo??xq̽84xɠz:;cYR2hy)舅VR| As8Ԣ ]/sէ>~gBNGt#YjT89\J\,Dr[E+Zti>p\՝1/~/fZ`l-^ $Qޖ#Q4ܕEVqbaX[ݼ)D md`KL:G"fkqw!fgBgϔUh%s0F1hxq&o R3>ΕCaQowR_xVzYM6\K^/z?X1U"'iQz%w_^uN?تC:<\qەךs,ȫlp5Gp!~eTcZEѿY~xի`)8GrchJ1ׇrp&xx,Ӏgt DR1%aг9%QP) y񧳆 5VMuNO0?&T 'uяQm4Lk]csvGgquɮ`F>g^wXaumeM[(l0HV؎& >U иI;H&f[1UYy_k. 1k cT 'D@ÉaYh)_i>NKYU%j]HZծ -"E.:vLz5&<ʳ!Jȕ0IDźleVսliW+BL"Ccx=[ݴ&+ *O2 JJ7@%2UGBMENiռp ގ6J϶܆֏J% #wDA6|",%i^^U[5ͣh {XG6RgqsWWNe !01}DNgh4_'%q() ƻlll! +xu䀄@nd%)FLd1tw_Q-$7%nE57V]$-D1bIEM95R]ynMzh%= ((1zSN[vZX xɡYW[?ჽBGE^2ݓ>b2C9[iK^hi- ?tގ^P^Ih$K[N~/PWxbgȑ"([}$.ᄑ7K 9m(v8ӛx;ļMOTw~+iOh)ADTe)n3/i5>^ݥ&ب^ǁ}#I]z.#F~C̊6Cڂ#REi4WPa+3/m%*b#z^`菁C0:JЫiaWx#ŧ<(xIJ%!1^N:ƨ m,cHfN.R[Η)l*6_J=Nь[-d[튲O,_)q߱  6C]ˏ?E{tr~՚hm@0,;nm<4[[_DyQ[([;Jv+wZH/O_NWFMĜzTGT>]!nhM./w3{1u[bA$.o\qDH#MEeښlgS!Lx1`wJ/ޚ*c WɵtBZU!ݡեmcGͨ.䧗cƒloozk Mm-8VWBҾӮbs >`\lzD,u-xAZ,Kaʟ>Hg<;X^a1kB1>H + ! [ZhzP|']PE5=jd_,G_R9?,j3S|ppyy<и:Z!m;8}ڣ+9"}|~BÓo)<aZ9CMd1*S/.bd>_Q˓$~IFxow>}=iׯݽ(l@˿ilwTJe_}4{z~˛O˽WZlk L6)RA d\LAU`BҚ4-*Q_%NW3Ҧ|{%9%zb~9BN=#26$j*P@~^X%ch'T |. k)T !܈vs:3/1HM*4Qk}=Z~&!>znӯ\WXWdCj ʛWƕ02 o\QmBjt~Z_)XN:Ӫ|j˾5P%g. V!$ )6/}%#ۯ*M%<*=oK#;#oB C %RjvatT^6ʤz"ƬL, .仿o߇(@XqO&FHMŹX(uAOp ;MKz[R!dE& V4LT0-% knHÁyd[t楥~Zzk5 j bn&@^4@JK³ ':^8@A˘s щ% ^U[::䵿9,k\#QZ Ψ;ɠўwM/Vou1hHWWhq]Xg;Jdd|FL W"ł{EUy2$ bP ҩ1}:NȐ}71d1aY&V"UG9?(2/F;>e#GwènpfKqWܒpCQ،TAc7HRk4M~iV/uC'l"b>LlŔSNNMi))dGAVV ?L#J_+|#Vb8Ig,Kd&k É{,Wi,Be*Z.b(T n5ʉWu|oP%DkU:hV:PͰ_ۨRK3kP'UB X#4# |v\2~TY *i7+M]KD<w1*RJAq' cUB J-?SA5_R,z6 g÷,VXfmC'&ɮ:cE}~I_l.YGxl*)XG",-n4| KŖxkǧ?ckR4m[@X*YEm`ۢb& Xlf6omH<'/GTvA[ZT7 ]z –9Of1Te[ETP\w$ #6R?t#X{QuNS-7b%[ ٶǷ`b4~K+"gMO_ z3Ky "J=^< vTEوܥ&$;lkj]^gf>BZF~0G^5؉+Ά?_Wn+%PU1i~.X t-P^(29 ؤ GN|wd1J9v}Kh/̄XJe61:Z+N:}. 缳aU!THZNDC|AJT 6@58)bHh`G`!t☙N|ܪ4G*/t`K;2.PAIy? s~x`[awY̏Y\gm)w/Kξ1;˭n"e˦6 W Xȯ\B`KSr \,bVfS 2 /Ų}DB$:+rC.Ac ;REd,+f4N'7;7b2eZ6W|3qhqoS;2B%GyN{p%~Pĭc@~?Mm{u BzHK.!p[e,ѽ(iE( GЫfnqim1#L_ofvT}L`,5KI¸3pB2gJlыg۪j|Ӱg:ѭ@|0 d|sޝ'x|?9Pz.V+ XnG[̾~P&ź1*JS7,DJ2&Ƌ arId:XƣL6Q)݉~|CZap*ѡ7zO"yay^2;P:YP֝m?")CHjЅ֥4xB_Q/2| Pq!%[]"_}ţ :QyW?^_(G5O u'0] u'~|bKZQѣz.kyq󋺷0{V \v EZ@a  Q]mD;dY7 n[}ˡQ ,"bƶgBh=Ԕn#2QrT ˟S4Y].ysޟWI4 )5~"#N]4?U{ ۫.f4Vs}?(k2x804`vs؝ -K8prk9й^L;+#[ЍKzbJIk;#:e\D1tvC+yz6R&8L(j+ A[IG#$O(S6"ҏ, r <Dqn#:ףg,FiVp՟/| |"]$$ gS|Oa`|z=P[}_~ 0|hqq, $`r~itƶP~Y3w^Wj:Փja>3p9|"x&)BcAEdfóSm9pxQ!cwD+c~3o2y}<)m@GSչmVu$2<4;gZkÝ7Jށ'8aI#BRxVArPփb]>h8s2@s/]2 6{dY ?P Wr|E͉`)y@ff5/Eax|CiXD뇄b/=^_byk4KaVN(Te';A܌2/eeO$3=YvE#{P;> @A"U"NH0.Vq|B~/OtöW(Gck $Xd C0A ]!_p<尕9P{uk3~4 ~&Q3dP`6m%dU F6ؕV"F N\ ⛟2:N`[DŽP-I½̀#n{U4J)G?ljhk;=(]+(VĞۄ3"Vf1`ۇqPT# / 2qomD%Kt}eMB:m1a@'CWx|͌RkCzLJ&r" gu Ə /U- <\bog`.2ɖf{K }j IQ)-d,#%clhNۍ6\eZrgrϚt"e! Djjozk0 g؎cTaT[b:|e}tJ>9EQ N18J žQU˼u]7.`W:&7owB1e9M]O]QV*]4cV52M~@*4t9'lV3UQ <.o$a4{`u aHBSѬmp>Z8"Vv{cln 4Skp<\AI5zXAl$._Y2>n07r%/{=^qaOG`F2x㏪^~:u;a?ۣAGeu;'(K:&|2sL;xHP-Dpi|@Bv){/K_%8#;`zqrYy $ 0`M/uz)4R҆(iInҶ 5a 84Mن`9(?%7ˎY 4p\!g`>iTwm0p111@ϧl}QVS"jh4Kz/`U)-8"DK˖rut|Jv 6ZCȩ,#}]|#`NB- qpK^n(+w͛:2y:~K\sh^ %$Kw^*[_Jaӆ:RdDbGHEolNA WB7t!:ZrB,Πmŝ;ܝr-"rir`)z@HQI{6Z\Da?*,jAյq%!;6E硎gg/ONc~I{e7BZGx(e\\dnoTǧs&aQELX ښB϶Dt߼u)@2ha8c jP+ U=G]>2OVi]K{Ͷ\bc1OIg -Q7 qZu#%IĂS^J[ +ށc@CHe{bSx3*cY2w4eM;NJtۂH|3Gxg91W< oؙ7):*)M\5l7y O5Fqk+q"h3W~aFdt^MhR4 CW}?Je.Lр No]YSJ?R.qoOeC_.݃ET z??ՌzgLDK%tiU: zʪ8n)zkKQ$3@w~kONe|87V  dr6yJt6S,`>+9O:_ @wE Ė+TSE*B;( zπ,i~k'of_b x*nCˤ@wɽKeqE'^u΂xWg; 39yn>~ӧQyt.]vǣ~J0f?+R`s6~3օEQ#2 㤸wrVpiK/<;cl4,Ivۋ؀bjc~t,'!}Qέ @}0\LLe, 9J=Arˋ-μ3TY"@aފ¶QDfP HqF)"Rn7"G߬tZxѮ^(;(? ،nKy=F:Ǵ*2jlj`[";&&n\[;Ȇǽ,e* ),VR. 9resDW{fu>CD\>3GiᢓɈQ6N{zF xu'b3aiPIzMzYXcivSO1[ 94 R]%`zۊ#S%5ASMk f"J`R5`S5e;'dud_ٽ_OCF{I6rÊWV"_MpR.F%f/h]O.:NiﺓXٳPT"fјaS x%YTClVSzr&90- †8E t4R7~3-*2ZUqѓ}w3v&TOܪK)6Tsc 7Vy//0pJ+۴ojO:$)Pz"ƞbbzK_`28wwtsJ>jIER6aꛩ(E`=wf34c5=Y| 9wiAW"B~7L Ub89(D :͖o,"uΥ>U͈cbx;rRHgr"xqKC;q0/{ZȉEPuu ;gHpn.+$؋7 lǻT9T Hߊ视(4>˥&46@n9.Yq(N^b/ʹȏ mRRxxd =c i1k(O* 7tCd?ЩSX}'L^:!Yt{Mܰ14DΊ0;K 2f ] ; 2&~8,j#BOYi@2``HP2:ca׌*ĶOY0T_.rv4~=IUU!JԳJi19븰gdV(o䊡F~4-1vI663ɐqedIe4UIl/#mKnkH(>̫Fno<omƂvd̾f~DvtE_SE 8R,=ތ&&$7R[mRwsLϦ&S*TLDm)Jū/ wɉ٪XYLd=ǦA CztyoB&~I*~6=?FwFFA4꫖TxͲwch 7$d5/Ɯe>tg]kp1W?ڢQoȳ[wN11U/n%ci 6V mK@k`  pS2P`&駾K-/Ie_ErFx(}KTa1x"Ǎ8kiL bC> ; Hrlo/h"aDqnq׶jR^`yZ0ԚM=$NJ̻^K.ALEMU1: ̰E<uוI*2_=NM'܈2Zܤ%OԸ*jgRw(*C2xoy}%ץk%Dfl]1GS R+ _chhRL.V00l:omV l@o&ƘkwvxXtkvXUTO;ѿ;mŵȩcᙋ48in ?C+UUQ^ӥ:yěʻ hs1 .u *?áڂq؈jULYx6Ԇ15^{d׀RLyΠR8o;^S6ʘ_{q~x,;a =8)M,\ˆ 'mP+:@=3LzB%oH̨FE;zv3_s/ޕ{l"Bk-OmkglH=$uʏ5gy&M5di5VqcBsc:=ތQuɦmʛ/s@.ll}L1&B$7#%"JX"C+}lCzL26ww"{Vum݇#@L9)Ki/qÄpiPu ;- P .yPhs@X> :]G mVIsF-ٮ H~ b6#L;d}ݹ`2sD^IK9ܚXk)*b,a鵹) v{mle2$5Z}Zmh7-x썦SXUqQol jFJՕ~wso1aّA4XY4o W/KUJ3^I)ri{rJNA9/3n@+A9)^pމO^(( sE[;uitr cV"K_^;6I.٥9[x EAv {}+?rfˁE蘆`p^~skcc0G' u*H`n!x޶5/7n#8:sREEao3 Mb [SL Fw8XOƻ`qs:#(8bAzL=X*@eM]),Ȕ_~駼}KlnAZ0Ebc^7HOx>jkeoX>ވ2v Yn{VBЇ߶:k6ŋG4֠:i rmMMBk_޶vk(a4:Ի'/Ƴ#D)BȝHl'nro4 <ư^,nNB'k뙟ģ䦅&]V 3";*9/O5V+IbTԨV9j}lxLq'Q}Ts *(mOx8)bu؉uJ_ŗ_}f_m O?i1xwkEտtİ~:a d}-M#T~n*`6!PS#]kᴌuVs+F(!jjz v2c`'bIQf]6nP_n!pgj{Ww(6ZpD8̶$jBXˌ;Xcݝ;7&e-*ۖmNY4&SkqП]._r2,yR[dU.E="+mZY)y <4XsCKR+ཐF; 0럠++:4ZfvD6e"p"Wg}gwR^ʸɪWn1Iީ7?amF_e 6 >ؕ٣|I35k6蔚Fb]V9 'ERyfjBw<ɺGqB? /fERxZFeѳgzVZv ]ɛ*I,mO 9Э+NB g cUc B1 D^$ _UCS-[ѵL#[_G>}?p2k?/>{,/_yeU?/̨˓|wo.T-cL튌H3j$GEU`3ܾ#ݡ?z*Nn,?4HD LO  )L2|0Iq2uc4N䘝Oias,0l)-6# }Ӵڿ27ÛǛX1l9'-.7fn*"Wɤѻ@ u3#2]Գ}vk^ &eUn>l}4bBاK L7ٰOJpSNRxT<#nkq)nXA=ԅQxW)59͑gւ􆱒&i)3$ayQzTIp-L<nǩiӅQY.(跷k"34/cTҞt"%NgA[=iFFsl#2!u>%wb#Yҫo%o-6+f N" N v T2k*6}?ض쌚W\BԆjUA \Bh"^dz/ PnL@z02)D^=SQumkǑ2 xlgd}K7/}n801og;4ߺ`ACqcB Ts bOdLG8JV9εwff;HZ4t8D (h1{;r8xkwG2Qd1(B:i8_ مk~66 W+SldeǤ- ioDiVW]|Y Ex_VWrU,=MɄV{8Sp\D( ]Ts ,0ŅN- ]ˍxDfx`}%|+Yv*ZJOXޫD'4St D7 dhdGX}?.#(rB@矢a!SG'IR+%}*?xfq]z}k\D3jݻ1S)DQNg̅jht@^ {b:XÆ'03! ϛ 9M6Ќزe%hm2\fSzSM}/4 Z( f@0lF6+V&lеsTp.}vـ EkdưPE:cnu$.St&Q9̈ҵJ_vl()rd݉=oj7[#Xx'Z{T!@ubXH@L&%s8j+10e~1$1ZEf;/tAmzW6ɩx4n1#YZ<ӵX“]t6 i@CcDK'pR@Pqitd<8ٺsJtt Ý 7ZqJosX\ųZ]W0 U@,S$_qe,CPzt}k! AX=z YeV 2u ݂Ji Z$ucSF0T]7pW㤴ig41X-J巷#? 1%h ڨT%1n]k|cOZYCv'1uގ,O.`B"yr>LZ4_x'\tJi )A!4>袯z*Fܑ|KZ[[n!p´d?t0rV]V8hiaQLE>'-؀,%uƬA].G`ʡ}Km[:E!Jg:s5'$mU 5SZ+.T14,Ø(9lqmiӎ\wX akihI3\WY3GG]V/H7,S! )hΕMW `$n%WY1ĕTaYX%aӤ~eHBII@9504DO:cKhzvpRo7?Ň5:sxHo]!aZ}JQlύdLJ`qF *2TZ\b]XT~T$d*RR}aK'9EkO%67 bYp;Nbe/ 딖(msۡov&>F> y20,94iU_/TK ӌ ¾/o߸WAiIŢl[U[ߺ%WFr!hW(`;?!L.ЕWS eZ@:GE3PV$ E mzf?*[ý+K'뇺zY2C gnԈx#H#`F؀Uu mSmEp4pvguslD;˩59D#`{ߝlHR;~3{J3GQ)l0,LՅ AL8>2:aA;F ywБ4D0N ;'볷VCX?e-L35nW:} 0ch-uI5xMw!+􇾩9DLfv9x]ގ<JWaա$&)I~A1l@Ro1iA Djڈ ݚ|;sL3PGWt ww7`7qߔwf>o-%טG^>cj׵p-%=5aeZk>]XIXp$QBc}6&]7u&ROF+3Jcv ~{d cG`y"Q0T:"%a@AIFZh/V'ż8+QoqMmeOȪti >T񽷷C1JD5AOn`(+2Gd5g?t󃧝w_IuDJvh?C079>h=iI#BAa:RщO7Kb^ϿtQ=o#O5sw$ʪ:1Q^5)ݳy<̷{UV)l#pT 1q6fEm2uV\Kz3R]sw@d;NH{738X- x 9iBl`8Y$e`P{F9SҌUGI]lW꠫=sTaJۮQ|K'iY6TNS kv!sNA`-_!]R)B:gԭ][u;HxS693%o_9`:RS4Hbo(B1Єݳ).Ef)O.;$K 3E]faN]睅p&bޮc=CSz6qimcI.q*=(=ٯO\D`we~r>UǺ⇈)r mGm _ x*0[n7$s^qHSQf쵥.3g0<1`lx;G[n/l]u^jok+J kIkVԃ-xrUmF5>6fhs-A9-;t{Y :ɔ`# E%'R)zJs§J88D9|On<#W]mQ>':w?/xGgǏftWDx›AȻdhT bOo߃=ړB;sZoL'^Z = 9f,)9@?o*QO(ӽ1.pJv*~ٶ7F먬PEwď} cแA9ZC?K5z3?JX=M@%*ǥ^>8ҹkldp^zeK}IgG\u1te/$Աi85w|8p^:Iœ/С-Qy~`/Hd#qe]c ӧ#/sP ]Fj=/\L<'S N%ÝIçYTAQs-z@\$Hv`ҷ"(7#*Y^瞭Y;FY#qEfu zrjf-,t|U_1F/U9gC9U87eH ^̲FBڧ R.&gPN~OPht\p(XKk;[Ga !1ap&SW[9=ܩk*!x<%o%:RZ$9$lc%#Nou8J!K1wg$iNv\_G;bSnPK"e='<(4Xpeoo`u_r=wt>OVC8K;=r`pDZpUc{Qٌݿ!;2$m^7Y>,ؑK_ B: _ 57r5DFx@ptptd`_2 VZ3C:0cxT H3iA #36s/JdO}LH]t5+; N YOXI`cb7Aj+. !y\@5CAmUxy6&̞Ccœ7:wy5o{ l3Iڦf;U9Ѭgj+GVajbxPC~ yRs7s c"wA6m9*gZنMHn 䦂.s ǻv0&d,+ 0S{`')Gip0!.PJO-zX3,ԗH=+/.}VP8iRo*h;tLl3`=Њcc(ќawoku;!ۇ[ۇ_/c7/bz0bJ(ak~5s->h_'[y<ְSVhZNd ;6f`CDNt^?CӲO2 ]T彧Eydp_y%歰;[{ºY%BUImRE14DKOJO4[[v~\7xF WJ}?H' ?|oE=F#eOϞݖS^n ׅ{n<ﬓB$d%*ƬgF_W AĢ(*k4o]w~I183usw_7ka[=qJfmYz"f pAHz^F~q*Ե?r|5jN 5TPIA7|+1?p(j5mDvxDUXk%x<-ĕX 3/fM-.^1%MC}u;6FSU,_ƣzʏ[ҿWt㦞6_=}EV̙ʇQw;MML&NF?tZBn!:Rч\@^&nvYޗrfՅ~:Ymve$ltXVQ E"pz[%I=[9v=J`珶tj<TG C˛$0ACph_Ɍ޻){vB7I{8{)xb8]]mVZ.tpcU,%s`&* 3=dtF3Xz9Y\X7B =QaOְ uidR@Lע nqsY4{lYCp \⌭z00VG?.1 l13!C׼5)Lt@oqୌzPKTQQZk,pkg_resources/_vendor/packaging/__about__.pyMR0 +De2^Z(CaY Ic[^Wv2sы;x)@A>j:{G<"0)rm֝\/kZ9[=4mӾn9-3z~ڌyx- <.;Hy4dY m5x7RCQ)ivA_3Qq=}PɲlIh6F_WJ1busB&ctIDn un^<]Go# kqU*99 1an\D!Q>2~%c2}Ѡ*J}m>9Mg&tβKݷϼ!Zr?;R;LnN**lZB8wr|P=[PKTQQeD2+pkg_resources/_vendor/packaging/__init__.pyMMk0 l}}0(t2qVB$xɯ>=PB]"vB: ($^G氟jAġsT Tv4p@}u- ĄYg<ȑzhُCbS&AcȢ`]R43]a ?V1ICet`1^tE4hA,E.'+ &\ PRwOBE^cU.[ NySj_XYmB- X(n PKTQQJzBh*pkg_resources/_vendor/packaging/_compat.pyuSQk0~ׯ8xx/#ABJ Tɒ+Iftzu>}wpjh:@ :]@hVݦ:i4¼A*}\9lcf۬:Ƭ1>aq^m,iz w9ٴzΨ#O*yX]@ 7\XB+[#WoR~}YL Tm-ZJ9\˒=t m}9,Rf{/YG)0x$]YDS:9*SW!K%>,LCYgKmoEQ29oM&, HIS4yK'-2Jhf"HYPS{ EU4u*]f4#R;/`T;TIQ *+J?ڹ|rŘVОsJrТ!τdazoa4R 8pg#EzQ:RIՊ㩱&yLre9?PKTQQ]מ.pkg_resources/_vendor/packaging/_structures.pyj0@!c.)B. *J@cgqC8Bu%F?a+'ԠUcInࡐ1w]X輲&&i:q|M&d眵cs Ye^jv]h$I*GAHK* j]XG WP$j"(2 LLUAk=LMr[0pSށsqB Ǐa<ށ \+gنUU"aiEs*ZƿHg{g&x&BU*HB܋~ß̺bʓk˺4]9fwrG΁׮k#/ }b~[K5dkҝ+ >PKTQQn_*pkg_resources/_vendor/packaging/_typing.pyuT]H|_h#@a_ǣ5QÎ}gl,4]]]U=UU}tzֱvC' QGk(= <~w0iEI&v 6Pt S c}S.5;gLԛhlWnJyg Oܳm;.;\\jk:|t$0]'h(nt&N<(V'A\TtbE U%;z׉,bПIRVubj\9("= L}##$^᭓V>PQ)1{ʜNIl G{+%iZd-MC #.Bɺ,E뒬zn$H [X3)ɪ*E˂>nn?oJ=Οn;Լ~|R&ְi3m$Byߪ*v;;TbRH) =DAZj>BRYi$C@;$іli<-קNoT/(0W<~WeRHaD2~؟ m+:ya'X~v!ۮjk-Xen!Uxo'6~O.n+g5̫rhy*op.Md{ьU&o闬^EWmn--Bx˹VPKTQQb .%*pkg_resources/_vendor/packaging/markers.pyks6~"09V8N:h8z>ܝF$1 o]PhO$}A{zIrFw^ӜٌI]̙ Պ$|^J:S 6 7LȌ=29Z؛-LBS'㳫aX1yi\fYȜU4e[&iZ4%ٺ"VXde(؀"+*@(f 3d+.S Ȟ[~\I^ )rSRA\+RK&뼒"+gyUQR7\u9 pqO|@Qͯoy8l?䔐=R?Yt.ʂjjS2i!#vqz_ ,,[d`-ʎ IqGlF`!! U \!q`>| 1sz~fLu]BR:7AFy2ժm-)̂DoDYdD&y55.25+3fv>$L'e 0L JI k6x}{TSd@=l9Z9|N.ßGDzXW1gxӪb̕%wHXڜ3Y샩եЬzB0b ˼ey " H.93OQa[3>gfaBʊJH|1 5CeCkR078H<`nAE @܌`6 O\Pz8|^<~VG*ݤ)< {3o`N3@] 0y!7`x#oKYJA}_ ˓7cHF*UNG~?#iVb-Zh!>GQ:[Cs;8i:ljq.ep'>% N;89sk|lVu#톅g>r`U]V%ْ6 H8mC8ŽӓۃvVYCTi_! wlijH͢ kڱ6l|nKL@*`>G=rO8<]>LϑO`\ O O/9:}y"Dnٽ9??Use[/-=0H2$t r|q2{TNY~^zLY99qr>N|Ehfq@+;*(; ^ūz=8'Zait .H:`jX2L )NUu *(0 Yb,հ NXĆrɶhF&:Jl!ѵpfkj-QIdj[*MTE Ryy8UUʯmGU{FVA kzgLP)_e6'(a5A& ^#0}I}pt?4ꌏYi= &m5& 9V'a o<L#vHDn#;Ԇ(9+lLF#"ܢXS6NA0@TV M/,W[,!Ѐ IO>'xVDM!oH7Ǩ{UZQ[r&ɮV3wQ fMa7;_+9'ua@`Tz2KʎafG0 ? :^`8>6n{.wb*SHjMm'e0Q}Ħ66@o:cjSSC{kg2㐣="AM,͆ ,#nks0L.]]D4%p8$U+WU5̬,KP#4&vVR9ӶƌtL`Y2v5 uS4d.ߧh{@hwW"xj wcWL9P@/,-5뒙 %v&]a/){KFk&iޞz4eɊyKGPu?EYZ vQۺk# YXj;xmݢFRs،kT7ԘDfuٴ}yNo^Kg%LFMD<Ҥ*, k&X,Vt iz4 #Y|6>e{ P?fz\HL,gw,M?h<)Hu9h\w\QDE5ƊV،跻M~Gd :LߣC1Slfi #ޔ唡T!G(Nv[ţpnBjG,= rU+-"ˤaw*K貔~2T@s.;ڪX#oSR3]T“e<.8S>49۱=2(iξua y5ϲSbLqX? b\Zxˏ( 'j="+q8ټGƚV3mmj؎ny{\0(n6%=VȜG!i]]Gɨd?,M*lr}Y" 5?̑'8j[T**#*S<[UCE3ϫoqpr7&:ɢMyp. h \?UY"yGpM ;H~4ǡE4i-]F=vfw.\2\FPCP A 6Ҫ(ˇ]pA@ܜ~^qC2/]sQ,KchP>1pk/ V-~BSoByN p>D#^j-m+(@A!I𿙢1^&y4wc tTśNtյp ."3-G>iХt<ƜJ>QL'yfhn^S:7‹Y4WW_8sw V #!>Df`SX>m91^h;_zj mV>̢z>VMXױ63<%SО\N25ap&XTr9pRuؽM f~í Cba""!5g@2zɎb4k3'P>pEe`sFeK¶XUű'X׍/0j>QO^~O&6ކ*UԟdM4K®<Ž4L94vYHG_}ÿ}//LT}#;W,Ȋ z$߮{xދ tW@GZiЏ-:ӽv_R@EO/C\h0|`jytrH Bt_tN^/Tg̗,rp@#z=&GiX,a`h:ze:T3+}Xӯ/<Fُ*(> 5VIZY1uJ551P!rž1{8H@T^'(%V1X@?](lL˂L9S+e4W#Ah2gI5NP5kL"][C޶j`62fDE\J򆡨 V3#@>MbUx4X`< +U fkr/N6߈EY-q0|JU(+!1_̀zBTXSvMbج$Cs s\&$Dΐu:߁7}fe q zO+W>m /ѩmZpHC Ϸh4bZr61kgSU[Sm&`ac0 ГX ϣ8vT1,OUZX6V Mz ArZ2u-D09ɼ2ES 0obl04>}&֡ӝƀ8 ' @gnB줬C}݂stB3'i;f G%X34jz qW|>9^,uy0E͒5u1Ŋc W, 4 qErh!AЈM` FG<8*F'?f="D7Ħ?}G ~9=}}4AG#0=:5ݣǰBƭWO\UvCj0-ڇ6ONo~NyZqv l{yŔ 7B4k5|T"ѹ0\SJޖy0|%Y6];r0j)UgJug4i ϣ#;=WܭN0+M5p3QU,SFs&5&WS{\:)Xb qzceƙkts6ۂ^\|p4.Ud:͒OY67-E KKty_S˭6UpK̨`qrZ`*Zm>'ుGMޯ>mɰس\q@//"ahKqP9,IR]0.y5/$$ֱOL0(w{H`|EgH ڣƉ*IU:pyNV6_w6?_Aբ:Mϻ9أz?tp.>mcK0Lob_T@*Sv6DJ[ U PsY }S#ƥM JZl'O+ wXSNI5bLBBGeC"4$B.p݃OF }2@p?7w{-NޣoOY|E!$:c@k 5eNiVqMQvB,U9VUy8~Pzx8鍿LԑpL>˹lYU%|Y9pJU1yf\iKeT8|{h#ʙ+ Ec$t+ r[,ʞkcRcWR+{<uِ‚Ž"yVy{8fo\M u>꤬+{Heo`K7OpբNlz:a99I/cG|=@:v">~{5BGޡA5g*zuWs(1/-f{b tZ^x7:E)ŹL 2S/g,x8F㻽g:2-ABcx tR*_۟\AzhQH )DWW/s͑umSrĖ7 ۃ2a;>/R`"(UI:THK1O1SY-L % xYJ\3I^(lԹ\ Kxnm?)b#R+'i򩳴][~ 2`ϣ#s/D Tlu͗Cd2 $̉xKdi- _P<$5DKHo~XaG`m~xWߚՂ;m=I1iC{Y ]JgsUZҮ 3SBZ@_bOnc4,[DFBntˤ h$5 z%HnXe ?7C&H-KnvD0&q@5eTݰ̈́uO*ِ Jy**ѓetR]C9!n(FK9|GmvmUw>M A6sKնs5^>+7:>AQ z^GM$9G7wM{)RU$[:AC"%Ŵ}GxwLӗ<:3!ksHGC><Tx C$lT^j;B9Eh1[B($a% .֏_n'Jlzk5U/RkVXH Qmx(Ubg!`:0IO={] FU J7m&Y̑K1L}8. 1Tp 0[7#i׆W2=WtVܲ,6B['BC/᡽}?z)Igġ#=, Ja(Tp2s|#6GdX|pډ%=>Q9+s)ȨEFow,Q(|hްg$%Yk pRm`yVI$`:9p! ɋH%i DrSQ Y=H5jx0JX+ hsX)WAP9OS t\sded,a5x$e$Ok"ׄQ@V}L A7"k.-O&w%lb0މV']sNMJ_7$X{"30mRܜ~:0\ë#VE2PggUx=2h$e w T#̗cmUxt&ZgEFmz\7c%dKfhjoM@]m ..5hlB{~ ڟa+O塛_h2NU08,NazmpXxĴ}VAMU^LB&2TvYʔRZ/Z߁_[O0%WaIppH+;'rNBmWL]=wWe7ſce1.wL&]Y,ҏ=%-ոȜlG .C07ۈ (H{Ý!]x8NԜ5s!~% }g\5PFNd=%0`*F%S:KJa7Wv}/Y ʳ=eUizK^g7&rK qJU#uK '<)uZQIDo.*]ib/Ugm 24SJUDgѼ(.4 o#ᏹh^(y!GV7Cj|ɽAsfK-]5'%5+X_#N-zO+?:iY͊ 2ism:_9NEjW_W|eh6~CN y5 qț|\bxJ-iQ+)?uԷ3i*]y]iQaUC;`]kQll2/ k 㰳0G'gÄeiZp@A.<*lit"dAXxQ;,]0םEˢ2 M4.~EY`S( Áh,`XQf+s =xxxFx˂As62f 9KRkzmu% ,,ܼN0;6cB$pl%3y2 @Y(EVEuʵ~L ۵%<vbk9?oyt|/GVOB8M6=/a;LBѩқaȎs sN;g2L| yQ~Li|*i"fPO;W > - 8rQ&jN>p;oԍ$R┼ A#}/lؤei g@; <^uQp@h::w5L=Xu7y!{^sofϡ_t, z/C4]Tb긲 {~sRӰ H_ۡ3sاjK@Od3<$P2)PhtKx ȃRF׃,B{Lb}夕s8zśMҥ= w,mbɎJXF]hYDF[θ>!Lմ,RB\tݫpuf ~ *it@t5ۥ,|D=/bNb.3Bvqڽx!@xC܌1@abᰗlaqe4kg.m%ì<I›Žo a@Ge^xGAӀ ^\xB-FٷdJiS_IhW/9Z&kdW_XE'NKG9m3" ۂ(s I9kP,"/#T|wP:"Vlfp& igQ% ctфD:M*U{`a1huԝ#;r%}"~!GO#i_xq%/ :Fn| ==݆CS(,\!PWXpZic|:fˆD@&H`&I^P4 zA"НKY’ʢ,| .Nt%T}ZWWX'8G_L1K(;_mC^,QdEI^,HIt4, *I ]J ĩ0|)ӎP5@P!&>heX5'|/Q]KԩX9}Q}!& z0V5n5%KPmoa ^ӥJGXcR2wa(ˊ kezҧ~HǏ㤠ɺ8dgdA(c"tEk_XQ=\*)L|are0_D/@a8@9q7\'{6>{c`$ȰzU@ n^J|G8Gx(Fת:UhS 0^!{2Ƶ}"l(tPw]YHL{L)W*OJ%J):%'h'>爦/j#u^U[mM`+ )0sSM>D]qGy ƅpJWЅG,z^V鄁ۿHF ߤGet2>CS7*umG%1h@ݓ̳ R)lUo!F-޸wACLfڄ2/#%(Az{gQs}7FH\u2]s@N]jκJY&rٮaWXNDXM緙5I)FZgC#X0?TҤ,4^**(CP%xjknR܍[fTXwmmԂ?sZ4J n .-XXc-Qi7й8R5 pj68XlkjJ@y>* Rٛb X*wѪz'aX_UΨM72S[q[ihQHr+yʤꦴaF{mvc T;nr#J ` @.JhHPӓ|2 ʯDm.kRӐȍH  աi 4Ю|tUO>DSV8Si:Òp'XTgJEB/nsAܣVGIJ@]~š؝= PYڠ,NxB֎Mt &eSF-!Fe.8TJk^MP4sk[&wt~W&Z8iST |T= a-h9*pu h#ɤArֱ(<SUE U;U}[/bliL=A]kf=)bJ[x r^;`k{00^!dU0R9L Xي r Gf%kʾcMy [bgik?h2ݞ,?Q &hUٰjxwz2ݻW\&Wb$ V@_mz=9$[+E^qqxÐQT3+{` ?=FO>l}Y7Pbg/h^^{.on-υV*N;V O-N5 ibO %Rk8 sKn_LhiQ:u4ȁD gҶ {0KfJr6/*=y2j_AX2+p͔:fYm@I삢*|F9Y8 >:BGgÞpA;ԗ8ITb)`X9.e߃6PdD'#?Y@ftxƦ4=ZQ1ƫE']u[8* :ayNͶj "BWtqH=l"ZwNx (7 ~[jRgUԐq"iђ.}h=!n?ޑ{gg!<v{(o;;'޹;p9gg}|\=w[;AܽWGIS{?i8<>;w}x `rnvFbs}<XJ+{(jY!%|-~q&=4@r\=hK~(L \a$?Xv6 %LJet7tIՀZEtDz)j/c~./dEګ[(㰢$O.3nl٤^ݓR*T.N ڨ5@ӜW `@'v]#*[y16%UG:jBpTjZ"$ᓆIbԑ)dcF% H :[5 l_()߳ˬlbu065]wS3Mk/gu{/U׬?g45?Q./[̧B9DԽi}Лx8X4aLpo s衄~4ޚmy?:`dm}exM>ˮiUY  [YNVGYkDkʔcQ0ڑԍ~zC#g02zҶݾE|$KÌWNVCg LbL5/hEAbb0\nck݉mk :B`혣Jg4N;O/QEVU8U^ScVmjt8f{zvޠϫ^mZ<\{шg ?%ʴmIsa\)5eS;%^[ϴ azs:(eBEoN˗i)(9WG(_9mǡ_'K d&Zww­0 8:i` ƛj~S4\(6Nt?PKTQQJf`(pkg_resources/_vendor/packaging/utils.pyTk0 fD} ta+ !`t(9fKFccN4mؖ{-\tj^@!R3e. ?|xJI7F( .o; [D8Oo-kZ)&+eUzKr!UeUErQZ$ymkIFŤyC&V C SmƠI\tէ>jj7r D~d#|QHEUQOq}ٯ's%QlKo> HR.h\42g(~A9Hx{N# ra㇉Bٔ6-rv⏈cG{VV5(aH>"nEͩZ.a]Yf F/Tn$$}vDz, y&5ʴh-OoA8 4FH\(-i7Vov/: =7)VOsރ .x盤m8GhT\[Cqҥo "]pOC*Y= Yhmt]/ִQ_Tdmlڸ Vp#hBc!tmbmQ)k4էWڟ) ) CIY)cOѻy vr W/"$1>ZMh?n#ƒ^@y~GwXw8PKTQQPzn<*pkg_resources/_vendor/packaging/version.py[ms6_7Y;ݵizOKFɨ)(J~ $HJN,p boϥf3 %OY*i1el*++Zh'ʐ;̳{ϦDKGS!ыC06 (r-\o+"`SQrh0SlY.c&EJ':OKXdVB,)QЁi*I& yV J (֥Z&S;GLf\رR^ BfsG?'Gc1,.0)`#F`n z.P%@Z}Ae&ޮ [ mآپz(qĶvwj#/zn(Qigztɩ?}?jyjp<neTV(̘ŢI-d5K' ZtJWKjmEv::%| =ݤ0#әr dE0b4} G%O۷o@96M񅘖g LQTp#T\WS460 TI>4Xao{lV5PA`V(‘L̘y=92&$P)^r~x|+hMpy""8Rgd~vrx¾fzLm#{Rny[fP0#UgBU=5"\V;,.&2~/6C, hzH:  IO}+GxD-x9DP */ YU2OL{h>ló!fDoU"kM>5 wO H秅:Ki?x7bQ?8쒠̕@{)aA속3}töC ^]D)Oȳ ^&zļbI0~_Jqm/HFyTQ`،$~zץ&1v,a',mOT2~~W\C$QJ0N ($J-{g(wo]MIlJ&,6|p%}4~[pf^ueSRaBK5%*DNNy)*l"@hM4j ܸ[-)g3p, 7P$8z,n2'DĞw;t/cJX߰ iNdjW`6&f3/$L]K/M42O c)H 8d$TCtXY}[)m7~smurX-dT+.0uTБܱchdH3>ͩ:jO.TNW+# -SՃ5o;ͯuiWG+Ya핡"QSYcu繙5V9,^_mXۯ2ITŰ"w<͢OlrF^`1epkZmLh1pb/;yJw;{~>j`j`Nc}d lb+Âx} -7}tkqz07F%7ocE2gqO:mQtn;8u}Yo]:O`Sܨݳ']'\g p5@kuQEE1S~j5P--]jЬ/lLsqݎV^S0^aãxq+Do_<8P0h<~5V usM:\ ɜRZ|vg\Aj)8ذ+\VI$8a#UiZvWxTC,cdv^ .'"y}0*_C{"\AَefS!H <w0b0@#%DzUC"#iͺ`v\G8;0(I8!o i WӜ#5{{GQTLlLD`lR+ȃg+o6Odd vl"qas0dXOqu,C/4eM,}{./ @/*I~z&r 5zm5zBDQN|~Lߤ& f=Sȕ|gR@hNbhqW@AUsck‚;2~Jݛ|B|jpOS!.R2-kp!8X#EiwOh{ņd-TWNlnp;1f=LGRኾU;+j ~:p[6!rSnktcH!v٧= :o fQn^l4mXҪ(luUSڰaFE3϶2ߥN5.W2x'=xTaa51O1 Y-ۭ2 U7*D ;Ȧ&QmW9a NwG*%tJ 9T^ՇN}awo:FQe,L,H3x!%*xRMY몀(K4x{eFG;bѫI˺nLh2OirY2Ǫӑh^,:Ul9&;K֊:%NAIژXc&gOM>> 2 {뗺\ǒx_-xP2b;]\a"<K{"@D|CDHh+u5r AŰi_;xwj0h:AM 4$L^o\b @TVxc)u\"& kg\{u2%'>SLSD tK>I p5eDz[9nS#7e>TznJRS9 ]EY4RW;?~W[D4[;bA UBdw÷&~ ŻhrB 4l1P#?K_^j) {r!= #* Ĭi<ΰQQweQ7dؼwC8kpucBb'/ٌb5 |~ueh-ìNe4m"&QtfH}}jh\%^W5 2p T%vYq9:$BrX,g;wS_ILV^3a1䪔N{>աD3&Y%@& sI mx?qC{"c!6WO,V`DqsB<%l4#\u/y}W1#&olxj1R:s Sg j XCݎ,:52ʐTb4nj+/u4Szvq)}vwgg$\~. '^'FUYgTf2JZtqK͇3lo0q0͎kj95z䫿gEA:hyxT'd4_oЎ{ҞncUr֛Do{ 1FTÇ^\@z?%NQ2w*B x5 ؉LYN5%pLA(ݨ6*N(8 z~# tVp'nIO)6ͦsZ7f឴-h宑7nPz;x ~P`Ap{J lvO-w )߮p?PU?{pJ8Ϧ^YR5,L >^/&?R%S-Ӗ{yTHzw6ŏl,4{dE,{$|KAg<^O8j$` C7t #L53xA֥nHif񋽾!h n6 @?f ^.\%K~nr" Gw~2WK%'S8YN^{Y'7\7v莬Γ!A%[bcX$۶͍҃ZZUGW⛺Fp͚w%(GPKTQQJ"setuptools/_deprecation_warning.pye10 н28# Mj)8Uq{P/߃ߗ]DURsI)L 'cni6ƘgTuH^#?mmb]i[$2/!l k޴ wXc9nO~PKTQQEyT setuptools/_imp.pyVkk0_q(5t]SڍaGi:dlG16H"s)9 kT(gl*dlDK+GkP+ R g,q.B{ \ֿWAqhv+ʈx6A\nN|]fuK٬SY󼫻t6 '9_{4N.g%Oq|v3[=N>&zĩ؁M_ɰ>z P?WddB0n%K22GPPB $c;@DU9^;v3ᖽB|Lw~JWV6 ȪfkM y? 7aToJc77̘ oW,^e2-xnW,ȔՍ$WMÖc~k˭vOSʨJSN4ShyЄp|&cf@mJU )H˥E&e[P 5^8 h&V:9̙7tN iKqhVEyh<ӀMWBױb? ÚDXL?|nBk7cLM3݌Fdf^M-mٰfz,u2n/on;Wǖ%f7ʢ.`0_٤${%дmwFXw?} f{7psvcM3GAײ?t{YgKx1M<~PKTQQ׿setuptools/archive_util.pyXK6W˭EzaKm (D$̐{`3HtRXVjĝ3[\mUcN6Bl ;&OYa]5l B17^`L(^ CPV*/屛 w)^4fz$ln{p_)ސ1iا P.`t'8LZY*'d+]48B9{ > %7ꑐF q ln6/hN۔qU~t:Q v9 #t"%1 [ [bBqC*d~b5>,-S-9LT/t|jϲ!UF.rZZT *$AXIW9%'ElGD! βOQ@rBCANȒٶi*)Իrz!]BAdZL@$!F=ʣLH.eZ{%әBvĪ 'F/yNN-CT~ŃGwЛQ0.k!ke҂Xw|~nl ]a2k֝oSmFwCQŒ^w}o+Bs.-Uo߃6P̾_1h)Ɂ=Y) !> 7Pn%'x(e$ƻB\4^ϨR!p3Y]5x%P}Sa=usEب<s~nq=6}F,.؆~ :aw~M7!]X8tc ux314!,d6@7# Amke*5V}*xbIƝ}u>x]gVW L#a2`E=,ЛA>gQ-du-˯'p(~"UXK3n9IL2Zz$xqp}f/Q̅)t#TP尡,*Dž͌JgcB|鍖w߱L=97 `$PNvL2 [d{:?g y&~e@\G@(z ls]7N!Ѓ`lQ;.r,+i7(HՕ'}Q -S*^ ξG[O#vE}*~"{l4|&#ƈQ)dǰk 'WR-|Ņ@sIaTp|ڃRR!2,^!VPkl<7O]@,Ȍ.k GMlonF q$0aGjXb `lgy:1r|{(:%k(P-V4x nט^۷oٛQX!B+<#WD]Pϥ,5|)]E!>Q5ֵo4E.ja^;}NTPKTQQy! p'setuptools/build_meta.pyi۸~ fbb(DܑD-)͌S=HI75w_|jzA>@τ-iQVRTyX= %b W*Z5.%Jֆd, odUH|5c9ˑBE엎¡[>chf-BVMdj&i@ܠj6ExKVUk!+@o]i@n+q|́D *`%5:Wte(`+E$'k"7,U#;'#2h|! Ih OGA. fᮓY$Ak^4}J! ^2@}BU+R+2.464$5€lH5ܶ:++ŖJN%( IdOe' yAܠ;-uWkwPV9#-a4$/“3&v@U-WŌv5@ZdJ9TŇwtKbm e27;`F#ǚ(s4輓*Vӊ4;֦U S:m 4X ,9m)L6F\< f AY_h"vF ~G)ZZmn? VUp\WBW0\+^]Qؖ|;ѡ7,3}"Hiv й LM{Ah\*õY;?=+soIӒhvHɋkTGG7R n JY^yXDd $M4R,D5,gRY"߀fǛkBm#'ãp!^6[AR'] Uz"M"IbS%4><:P Y/ZCA(+]0돬)w+-̚a )ocF0SHYH3!Gp `V.]?%|X}ؑMpF5"#wa Uhb&6ujҶfmNۦ:LFߥT.`@M ժ B9rckE%vbln9nMc *8.D-&ρa4jSBVKڗ`OWѰ.k^U,e}h wl/ `QOBgk`Q +ZM1 -g4H<,#`F Zm@Շo>l2ɛ6ro,оի=kj Ou4o!vh^u!:v`;YBn֚FO 7xcUXRwK< =J*q hQ}y˪-)C]aųclGY=fS]'9 -4R|:NЭ¿$vU|Tq ׺1>fT͜PcXfpzw*"3ˤ-^ qv5;VH?+J4)))ӣCqimN,;t.mIv@9>ϿAVWK4Сyn CGgv^ K#/KRP^FAr=ŧ?&K z L^.`Ģz7߫xcƙYDЭr'iuK6t( 4Y~2b?;<mUS<$E}Z*}zV$/MN(l2`_A9FIG|cϬ(0QvL{LWzӌ ?y }O6Sv,:94w<)] cǃkzόY$eάJRjߍxsDo)߳3/f\c=[;KZT3*d âRwU ,`돌^s,Т!Ya'|%Q9~q'C=5LFGRB@70'''DÖ-Y`셸3_@Oֳ"ñ2@Q7v!Y$N O,Z(! aۮ xƸMg?4 [ &iNap\j"O9 :v>|c/qܬ_kU}ҥ?$=I{BVJ+ǭi}}`z7`B,Ϡ-?ߢ 5@ m3pTY-% IhXgZ,LwueA>7F/S0,mXXC[Y  _ [J\J$+ ̜ D6)6nv*‰ONIf2E3E9|NEКS1>M8Htq#.RtxpRz֔ аM;M hYLpiF=`vCi~ xNqPPsk\ۏʸW-&l<|w'$5iЗs99Hίd- A+9xռ~3:9:%%tKF]P@זو+`Pj/ph^JJ'|%˜#K(< q6.eˍ5ɠ63p FHJ3lKtVJ,G oUtmzX~4; 9tQ6=E#t\ mN7lhl ׯHvض y)H 79&-TA R|dBaFuD6~t*A*fYųgU5!so˾kT疶Ve=(ʐ&υܾ<8&Til!VO@^`E?-ЫltUb2UNGzsrr)SJm-G)0/f{2NFk (ת>YP@,oA9@e+4YeH6*ܠ&gy}]={62blhY/DeD􉑩;UmT~IԴאcGwuK>рCR:}_ҍ7*ا/\3d"6:7?U^- Hpiػ+$D*0ag2GQ!U(5njzk}poAR 3,ua$vj L##yt~fՃ6S4o r-LSaGlH:^ShzބD²JV4N&Co JL&)!i<9J(N|f4= e\4A #D#KJHWEʧ;\ ̪5-0Xev{5ҷڦ\PD& t1}?g.weoi@ h9t/\?xݮW QSW-o_fyC+Xn4u'&%bU. QKEbbe峩$8@;]Z6h 7HPޜJM!:D[F.x,9zoZuoUȈ1@'m[bB7.tXZn(zy6 mU:GG̝ e&)A[l.lQJ[o`y`&N|-gdkiPz r?q` cGHOvPp9Ap pm1򸇜a@Fň FkKS: :B0io!OYS>6JFv%jfN' Oû*"![_uc64O(j`&f)9ɄwNy>©xʁ'=ST0H\-u1Q֬59O-lk֙(yInyk^In7GS&LȓWaBTg|7&X*{}<^?Kc ;HiU-E7kfQ|kh?k5tLWub8 RZ'byZ _ioK+Y.Y)e$ Wrb,"1(I%]yݬZ}6 8ڡ<ÝJY>W2_>|Z1fW( 3@.!zB Z( vٺq 'doy[f YFaIL +]ƤdccA}#urg*:*MEV jC|8M*㤱${5MF*yGꎉqJZ㜔Nc}IL)@ e\z"\LMd7.Gc w{UU]]8{mW nt]3gnY&҉5/|n5.y>אU hf`Ӑl퓋J3y.<̿FIi6S,E, HLm>ԤMZnLbb*WUKg@S-O4orv-J_j@{/QoYj_2q7w˩vWe6a53_AF4ZۄߍIv*:fN&BK\ޠY N?vN `S d>@JxL?L  3ws]5v~=|4'F.$#U@SR]i[R@FN~ovce5T^wm~|}W 5?OTKp`RxQ^yZN {OBʍh@BֳRԷXl,'QGe,wخ ^qJtliJEy c'L~.^<ȹ+.nȌ3E&,wFu%zq] Pσ"ԦJ\G!|1\,* }N{yHx/LO aWQ0{w*T4ĨS* V-C3ơS`TUӖy0EuW1|6:WDSIjf MP+MR1 &S5WyLN)My2hMYdLkf_GMp~r#6.֮٘hq`FD2AI3~DPrVU*pl% i6V-i3+8S)A/-@hwV$ va\+I׽MPyu8~veJ\MǨVIv=tx 9)_Dhպop H&WN`?>GOFRy)4GGR(_?BG_ ~a;8+PƩ3y]_kS_5pJ L|ʕ= Ͷ,8Fgk47&Ony0WP2u,p X-bMb7x_.~AnQˇz'KhDΫ ^h4u\6σ1N%Z|^]#>w_Z&yJ C ":rYw+Rfr*Hd}s= } zIF3G> %MN}i \yu䬝OrPHصo屭@'h#1pm%~vq¸ۇ PՂ~604Md+k[oe :V=EPIG U-i^7]|SC-Y~^xdlT#z1L |u4{{I:Aoq,;{PzX=$Rb~V}5%z#ۇqݎV٬i "QӢIQsUd"(cb\/L')ߑىΞ`S˖嶎zZyS@ۂE d EN%gz֏}"V0t2ȑƪЉ1Siy>I8 ]mIV]hDh5uu-ģV!P$FyLOyzhR`! ]/^386l@D븫4ƒQ2[0~qW z\C(waɝ|*鏀#0Qx~8&ԩIwN;:֏8i\BvGObrk6bk5HgV6!/ÉƔJ05 ?K7/u{ji 0\25[sD\ ;*cսLPC b#y5&]; s@zxK+dLx2֎V4}QK1'":^re (ńa)RKлhnC0;EXC6j>ŮI1.Ĥu_3_c&901B醯p'^[Mz TYNoiM0_Qƾ4-nZ:ixtWmE -+ϲDɪ}z>Ussuh¬7 ؎;1KnJ5X_W4NۋG#7,Fe 'mN|Iu vAӎ'&]gͰü5۟[={݂7av3O0&.>Tw h 0([U <d" '-w9Pϑ3Z=ns)&\B{na Z.6Z\GEQ9"$6/RuA=ɿy)+S.Uoʥ1sˁ"S+PsG&gDPN&;-e\;S5T' #vjT>J^ǏNVkE]o-[\qn1'KuBhIUV񱮱a&䙘 ",u4Pi}Z~ԌMƷmbzSyT Q|w N~ZFUO0*@epHj -B qKqiwłG% y@@`xsB⊑3PVK3((x(x h%COo]; n߿{]Jvvk*Ӓ]"Y& K\LW D;簵mr4֧S49Bɤ:VF+Q'lT кzG$C7 zT[g9_ǪbuAMΞz솩^} 88D#ҋUHg =ӹle˕%2?]VUe%JqBf]&,-̉_u5(ϖx@/o=te!/Jiz(y:OL{{<Cny,6oɷNLșjq/HU*]یVW]:DRffQn R~c(Z24E;yR&E_1jnEl;T@,EF=$?maWG2 uJ9vR|A@{\K`].An @E?"*]ߨhdU!qD35W]f/ݬک8MŹZ'Tkx ]AnLݤpbro .-ZjyhL6 /[r1@%!%{Ԑ Q\#C]O%Re(eau)9yN׹l1TqnVǰվm 7N |p&T $?,p;W|ʂc@6+P6>T\w)i*#u$nTbD 8& jd ݎJcsvuyBRF $.@dOevlb?f*Z =.^7hյCl'0hc;#x4I_#~ @kĭu/V/n˺k8?H>A$,%l /+x1 rRhqL[xMףq øK $e.<-LcMU:^L{1,3XjVvE~5HZ3p͍#\) a)t2ތp{EᅶnHV0UWyf99Rm>soIijͳkZOe^>I Olŀ+CWjlb-D=h;9$¸5D`\㢔j7mE$ױO`tOpvib7]Oi7q5#m^% YX6WT46oZsX^=6aҴK7Iy "#y7~kͣk-=SSFG xiƟ4eږY&SZX` b$ FpA֭Q2:7asve:7n0g nKa<~:y=gf{v~&?nOvv=Djx:ܮ=x=Eg*ďL+:Sw5}ׄ2mg=vA047ߟY :oJ)p@-D_KK-@q슳A֒̕^3Z7-|4XXwD-<'o1E>4gEB[̿o_flZλ H["46$;&?P^Ft0NZ 5tt6Ў &Xaг_^F;"lt80t~R{)6cy ,Zn0qft@.!uZ䡗@HG*@mwa5Ӳ8mm{*Q.&Y1 jݞ aSF:;Pίت

Z5F nP/xa4uF_(*ֺrvE)Xn=tu5 s` ?W62?Nfnݶ ?NH/uMzoRd{qia˟]wѣq^٭@Q7@D^wVn&C2)aXQ aQ>ȩ)@AlsBծ,ee*'A`>4r>G>~_LѣG\!,'5$=BcF]G ,E0elm=#j'.9L|0Eu,ˮnC; ޭoALeV}"냀E JQZص;&r*T& bU zeVv>~P`0HYw4heۦLrrlmmS1)HHQ-FY7PRN ]I#-\dK_Jؗ@0REUty2!6i0laveWl`u Z$jszngS$$3E@'Z Y+m&*|wn,eq٫)"ޡIs26}yk*Qv6R\"sÂwnHge0oA[< )43ŌIceYHui 97`#8Sw*d  ؃aU<úq:w@8OE[SB8˅掔Wc&, @aA RDb2<?nǓx 誻aׂ&[}&>Cl8g)y'FF)Th eJ&Nn{$6 d[f9 QPYZF]˦nۙ& $(%eqKt- ޝDQ u&A)vEPҩ)wR^>)+j #(EQ-].g%,]ys($IVf =nʭrP#0)Em, +jLw<% ?:`@!"0kM3D` :J}]I O-gP f,xoBt4Lv[KTӈ՚TzbFkgrk; 9(CÂC+>.8YH0сR yem(!F_zۭ\VlumCe)KmG7R^ll%^וt?ʥP!4/& icCk(߇)\"P\lQ %?sR6f$ G#E UV ʕ 8(@9|UAlℿ>+J\!v4 ~ V+l~MFS_##9JE} P0f؋vq0 q +Ɔ$*Z͵'v^h]V|00׶;)|Rrª$"sgfۭr=4:ze*r w(3[[g]{gҾA9(nr2nA~`=zl [s0b<,Ӯ; U^[` W+IaVGJ[Z"ӒL6u7K{C6Cā EOX gb\uc |ӎx:!J1=LdQP[ Ti[tҞ@Ry1LnB0- ܡY_~; Ο‡oO?zm+Wѐϰ{}nOUqG1rqXRGWHf)G%c7sX/ t-Fm?#HG GIlM kcp,#Bp(67b 8g9hru 4nGo\>BP~ Df{*N|/Mɷ߼r󷗯!Aw4-SwކczEaP|NȖ*/r؀N&z`fcq{g` b6t C;T_g-/ÍG-]i@SZ 5ק:esBx47W57 c!=@*mQ+]E49`࠭εa( Vڬ8hPC=4#n/.{`l{tOrS@ODc` =2Jq/k>n?3J@O;iI`SqDm3vt뢅'$"J{ 1Z>_`Κ>.>AXlkssS!rRn;K?CluqRddRȩur->!5მ~"ZK 6:襒:/oJGKvĥMQUFq &b2#l8W9Mض ͙lyHI|@Ţ>?/se{3IU Y8Xeڍu۩<@'e=1a٣t1^bByiYQ}fppkM82VpZVU da~T6SL6H"b>5Up _;6'9ck"SN)3 J5Rx! 䱰DwNz8B V@Ηs3$;LKMF}LlO}й:n@-_q1iytZP)ߡ ^\h)i+r 6J1x,S(w.0KLHO (|Q/GvM rdW:=v#oY{9e9RTPK ~؆Mv~yɀ3L~ |f *dAjܥi8k" Yt1MI|0 t+@Pȸj3X1d' M|Z&>nFӈ4KT>4 d{tAd3 d(a\^X2R€%n!nqۺ5Nz.k=\hApgĭyp:;g&kÒ;=nSqh4ۮ)U2gA (1tOiXB[Ϋ0j!,-j#Bw!5lykN~%@u.)i0V* a2p4#OBr)+6kl%^[KQĈo,!E8(I̴JB+<>!GVq?95M2kuv)^r347`4Q sDrc]5\cg72I4gdnQفZb#Ec@x aǏ2/vt>=m%OS'Kb0=HclM|).%¨_N,0% 2r9ܕ3xvNјƂN^usqmPTd}|=>zp+Kn3w:V74P3}C?S"fߗb72Ȃhq|wwv&/+ļSҷ>GDQ7HlR&k/q*i^ޝ-ҹfgSCW P_Ip8wWɽ9 ]uZR6 T Lt/=zmw]1']V!!g@ e59#T:3[.;2{c*@VDxB|f'-Qudj ‘qΨb }B3~SUX.aJU$Tx {Ҵ>qqQ%L߱:}VփAUG$uHP%^h{'Қ=@Z;R|-ùuc@&Co+ЮnR0'Vڤ}lp1_]01 rdB)tZ@[]U *[vY16 n꺼D`N{^Qѻwz5gݶ& :\ z0A`0 mwM%!q(bLvQ8:6K }g@h:Ql4&K@}0-+9G5)_m-T}?.#6 :CP2i=1CDSk5}cG|RV} bO#&0)cx\O&2< ea O` BT$(ʵWV{ 1Q3#ȞSDԳhWUeiu`[ss,Da7M/u{bi;JJ+Ax#H ~]c\Bn۬ZnKCW}Vu*E Θ6@grzm<ElNRfрd-v YM]'i$CLq/2kʃ)Xa^G+z-MHwW Α: %^uq{n_xOm$FNJD]7]LdNp;K*s7|"j8uIۊ&`3}, F7>|>CxCޗ𙥂/љ&D<\`qwQQCe;`EB7ҟ+=&)#x@oR; E1R׃rv Vcs+*Uk??>WI bk[nS|,AcD֓ϱ9hD%5[فx;0")nx $H2Bs bOij]I #l.XC$oEN1Ά7G(9ʙc\#xX X㽧:/CkFYy#p3R\]M:r6+ۅ֟2x|J}B4ہo]͛!xTŭ$ =1w3fZ[ '87?Xp֝S[F/M8Q[A9|^CFښ:[.7ҿ֔! -TR=TLj`f* LhT>p|d4t; `n[M\_I8M /8Oc'=^~B=Α,0eػTt8 ϔ4!`gbSv,O"M=j'b<7v "0!LM[(GH |=cKI1Cܝ_쪇 Ү+it%0`>'NؕpTS1{EPcUB렦ui r7]KlD"  l΢3T1Џ&*x&6Wٿ'hVt M"UPFO]=Y M%~:E4@(y/7R[*ޜ@璻bAסсtoH̅H>#0O(LYt߉*&`sR66E)g E͟y[+ ,oF: lLaŸb4G;g:pc{:D2z~T"Uސ-OBoʈJ,F+dK[ui/.N-PqA4F~H_KwxGxmP-oEa0'L2!1\*;AdH{_]}ٟ)x=q)QO "樀30#R),Ā* +nÿ́e` )YgT=Aq$.z,9鬺 *ڮ[鸟9)0h D:5S%4bjGUvSS:n{gW A7 V>߹t׿hZ, ۃJrE&璯- |vJ;[X!Pc lf8Jwʤi>5.za[7c{tmDDa+q<Ϲן|? .1hm@5\H=D<@>0GAD40 {BDS_MkMڑl*R^#2EI! k>ssAɣFEL;S^,sq?9z"ni,ѵqIgI8ڡhʂ1- 4"dnu,cmF'%](p7 ,:{Y6OS_vծ8YssiǞ/˦8A3Ѳ˛ٷmmӧO**i.n͞A'-߳ㅤ$]G&{I"M?!:]uOItb<O7IsAڜ~cʴDykc~?KY_unRsep{!+6[I9s/a"{7`cyY3֭ߙjF 3*?Ŵ<|n"鲔^ xA X?K#[o2?^iˬ á5ڔj> >X㙳kմ7vd35%]_3-y\֭X™DF{j{S| JtJBf 32^ψCqbpk>}_3dPB`9EMx(򓪳(_ċo_NߋgVIG?Q.nS@̘w8H/Mt<[@'MF+O`Pɲ'U2kG*ZQWꌿ/^=tί(Oai s=A~sq~u:Y #خZghUA[~$q5+OfvAq@% .$#˫*K7~Qls|8(F,?VC`]R2Ii&+?[!ꆪm-K~Lh F`/avdYU`^C۟D-@펾ğLIy һM,¯NG´H%!Zgl8 B.9nKMRnn+J>ýOr-w%%t=Ӄ9-߽feþ:%!|E8ƀvko`ҽDjS ˪]ƈ;f?t2w+=nڶqU_xOC8;avj5,IQ` .X EOXe1/N\z_PF`eDfYIUcëFlHu\<,Q}Ӈ'?{ξTt?}ɕ|`%( z剈\谶dZ ΃R|U}vY/Od}|vήF.YkV%:U) x3 p.O^U8,i:dknWoV~SK`&:}yxXɮ[,jūTh艳7i Е4BlA g}+z^N |,wܴ%-"9 |Jl `(f _xBzo,W44K#JԼ,KF8C}/&t??;btb]/x:1=_+~;8|DOW[gD 5lD1N+O,Pp8 h>Y\V!~Q*}艉!J_$# Ҫ {$_Kr~p;ŀVrlg*~a[n+R誑:D 9T dhTՑMY*g%!TBW b ;M]5x~SQeYgX| P6 I+w0n2 V~NR?&KS1/kG#AD_H" V􉷦 O{ߏ"{4'yqjx?:Np!d࠼ r| ֪9w|#)_ky"^x\2D9;j[(RVɹІK2`X##\sE<-U%$w+z=}!чe72׸kx,x}2e~8 0`s < *XW (BbSVe_fe+əo$+WoUUTxi\ .ù kj{sMWAqD ӯKofeWPI:NJ?ASK?ho| 5'ub~>_tB՟Amu't]/ώF_ Ű+4s ki͕N{F Ycw+jLׁ y5bжQ++3J_M!i}f̌`淂}Ȟ =NMp psKhWV6kvrS:VIP&j% 5ƭ܇˛.4(Fg-'^ٹ(ܭ #53`A3bsdD#S\!=K㗔}Ebugɪ#؛ laὑpRÙ-7:Qӫn?{F)z퍺U[nb5'Q;-Le*i?u+T(0$2K):jXTKMx?GY?'U aTK>djsNo4aq{*Kw-̶|:DIiWŘv>[[L#&t /jK $k=[,P2eVLE՞-?||uЊЬUʇuECM)I" kr$)Q;,V;yViFL=4Y(roX,Y#)TΤa120|R e.ؓ;́D -*_ oFQL[_ˋEo_ݿnٝ^_8ưy}7HDyc5= bU8 ,‰zi(op&iGXu{=By* M6;V0Ӂ2`|RYp}a` m&8B2=13̭82>}VL|-1jۦV Fd)g\0`ީ\ WZs[NtO.ҒZVdg lݔ9 IKYNŪ>sli/t_a8gyIq$m66{M*!YppRY)=F@ p(1Ra !9Cq.xCan,2̙+ &o؞GPpx UgCVi\?"?` \y:h%GnyTlDyUCx>9O%btHC$q5*X{AYbPzH!FpAog"fb N3Z^oyf`fԯ t U&"'%eVh&LċBIPUߡEISЫ-|3fYmxFCu,VɶbS ϑy)-3a ޓJ N..\f%2Lk+۫Dm1| Td˫pIО'0`&)!n7\bxZkr(7&Vs Яuxzbj2T.~zU#7QIP1ӧOH a g_4 cN>nM9LG73;RGoM~V0[I<'|PKTQQm&setuptools/_distutils/command/check.pyn6_A(`{ EaHF:HFRNaÛDIU(bCpMn׷|+xt%•"PNHqyosf4ies'E  ӣ&6JicvH_Y`pfR⫍w--Vf%ӌ4{вą /UHnUB~ɲidq^CWZC捷OB CS f?BþL0G1k# J ߴzR5dP ;z$r(-gy,фmř4=*TX1nCk5pme΢d0 hzi*`"6ȖL0U Q @cQu&;Vun1汙8½CIb|dc䘙Uⷘ aZ^5]ꢫA \ld{㋞Ͻl|Jvկ; E )g vLCha0tF>Pm` IgSOi T\z.g1RJ d\(hNc%@ eFSLx5 AF# S:"F<SV' y=F Kz)q~+1Bgy -״' u}s,PMS]5 7:`m8T!X&"?Ĉ&|qd8No^5 ]J07\"~A3jQsYl=?Kf35O5L dZI1 浓t~DLOL$ZYJܥ*̂-2eЫ>.əZrF"ٟ NGU"9v|wXAZ>@WdI^4xۦJz 8G5A![zqp;4,DQoY**nvnR1!7ĺl@ ̀ &碨ljkQw&D.tgssv0sSMʴnnEj?φJц5jSEwJSs~,~fObDf;>"A6'>D=[I=[SEfC'J8HU侮ZGIg2m;'/!m7Qqۓ7ڥSdRij̎(WO߃\mA+Wf*ΨF6cPKTQQ,V &setuptools/_distutils/command/clean.pyVM0WBi,pA]!> ѪrIkpvXʯg|9i>%73iʅun ]ULM!$\+T΂#|q@=>M$Wg DPpVۂB+Qbm 0I"Z&.nCk~lS3X߸uqRZ-:$ZmaDVpi@SCB卐|' EՁŏѯE _Mj؄ Nǒ5ҽlmFl.WGRV8!*;vڌ#&1*]?pB{i0nȔ!!s;c4S[҅ -=%e6lM[A6ݸq+Pƺú6sk3Wd\_]_%%=jaQT+e&D~j>%'^ֽH!Rǣ趍"8]C|@v}eФIw󡑞t؁b('ф8v[^OŚ 726d4jS'y[KnQtO52K=dCIJR%M~ȕV<+s 9lѽPZфQ7E=pM P@uxs}N6^/QZ`1ǒ>kqblگ8k|8ogFo5FD{_{,~8=q#Tbwgt 3*} 8!f0(k6UFE 39McBzюAvMWa4= |m?.PKTQQ7\=3'setuptools/_distutils/command/config.py[m_(8Nunl4 zvamVQZwfHEi-yyf83d(rvm^M*˒Wqx_օ(E*֞vb="ffF8[REb~x҂+hOe(V*zJLu5 L"yJu`[aUY)<`+g9O9Yٌ,30(рLFF0^%*SՋ3SB8yC䁩&D)L` 8;J@]Ke4F^ruX6+TdD~f"JlX'1١ ڂD86(eܪš%!̐k-xh 0,({wj<^J6LI;2S͏}۲_4lRWJAٗ[i"ڈ<䉃 %uv%07/ԗ6' dXo~$Tl^tk(B8z.J^M lhwi_,`cg/ `KwB܉h Tf}bTA&p +&;ZڈeCpS\ÌIr 9Z1XrT^/Ⰱ͹[>7&dx*boto x/QGÛ׷3 ̞F]SYzvrYyxd,դ0k9SX̆F.܍ &U%z Zy3*|0k ^ev-:|bzQ"^8K}Uޓv:iyhAoDV򭀅ճL RnIk RFaɌtR +c\mP֝k,oP JlMj>K7G.@7[ ΩĜIvfH\-k-R#N+9~ NLȳ}u5 xci 6kyL Q#Jy.~ި(a17[:qCj^]m^nH!u5uo?;?V6ckء shl:'*P/;vU 90{ QBRDV=J-eC 5_{g([?XwHƻ!2sJC dNA0F [y]UȐm:a!}0i@|a vA8ȀZdTY,*R}l\1b s{=COyz¥R`m[Sk=t0* ]yu0K [j 1 "LF B}E~̖_T+` 8s۷ԉ_ 犊0|:!O,c f6Y B :Xg{LE`ë+FhD'XV1^v`'(At[cnuRQAp^.xnLbew/ؕM9 ߣ2c)OyЫlSs,sxpUJFs!P&! '1CKނ-Fx}g$"C=s;O@=VAS CtK'Н:$m&X8t>K@՗{YֈP#{F06 }XHN;~=Wfcq4_\,'o-z4S |mu l#,=LhhW]"yDťHp/HG'y@ `V\%Hye. Ж@xdPw&ԇx JdZy~3ľQ&ݜ Sjë;ogVV5?W?{2sqSBxZ^(s!tW'()>-zm:#!W,"5,>ZUJWV)_q&bUvCo֦ې![L`'J=uZ!Qݼć׈^iB+)BqAWzSe:h9}NAap.zF Ͱtxi!aqcءHI &(Lf\aW6i!v! PKTQQZ64Zk(setuptools/_distutils/command/install.py=kFW96H%lb'ǻ16d1;)5bLZ6.~ٔ4;N]]]U]f(*J]YElY],ZtYU*u'Xk=jH(i;&BوulY'Us=[?p!_z/Xˊ/O=-;ğ(=o.6)JtRMVe4!B}ueS])P~zgW/&]|gWK]7m~z?]-;3x׷*W2[#.e\ĩ ;9mgo0eW}?/lP害^" 诮<[a7}]~XZ.?Hcxnmn> RlMHעlqDRjlUVi窬zgSJ)MvYw0=Z$ GNnO1kI_5W= ZQ`ч4 KU2>GS4 =)i{ߏNvM7$GT: |ga2SIc~}BEh`84a7H{L9RZi%d_2޳߱n5k΅`xH0qʋ;!eEpik.eXj#%x+-_ٿ\(ؑO"ʄ$ʯ]H(h]HHwe䘬*iy5>ˆ& }m}ήxCۆ 1dbf ^_V^55h@hZSϧ'?`M]gj:in.v])ry ZtmSi^Zr **:a$!džHIVJR n1nᯙH~,X4y).( Vtu[(dвBRDbZɕ = _'~ccLa0!^u`Nzd\k,H[ W!Dm Gڧ04+ =(גYïHw*ӜI?my!jU"oS=QM3/,G%v! n:fNjo{ ;>imHdP DQY;ςu'I`8FN3aǸ B1AYÀC8Fs=a1h/щbz*L?à< 4&GR*ACZP{XI+9RJ7!np@TekjlO3oyF2AãSށ> @ĢͨDD5^h-H<>F+Vڵhum7Bps@uH3`i 5Impð{WAXS6Z9*q]<1YDS\}aZa~1J;] J(*'B 7Q8l0-g9ahe-! 7k ΐ,oھIk637={W7w` q 1K F}fxi)H% ɘLHkgRIh:ݖ5D? &'{ipB-9ýY{@x̔z A4-|1A)9 aOƊUg@(W" CG%L+ W`tu #dK#9M,<`m.œV!<; 9 ;##(w }9Nggr?~US` 意D%,-5f=/GKmDg7Us5=;b]S -s)B/n -1ݖH3P?f{.IDz'@sSA'JmGx0*ECԐ`h'< %8O^8vzT;f,%1oH||J1R:%-{W#ꦃ:7ZgW䙛B!lsT9-PJL-\$:0_du Q;8R|܈GOG` HMCu6TVBE9:~cƒK I [vcD6p7Fd"#5c;mVɲ eVAa6pyI -~ ]*IRh-6"I78d ~;6+>%N&(4f`A bd4@fcTC[ Tokc8z=ge=X}#7e"~C%NN'BRt-Dm4:?IѯЎͤ ( ö݈eR\h׈CAsB"Ldi)mJO dH4  dN.PN2eN]sg"HC/d88m@=7kԾMIDJ>ze,Ͽ#_rRҩ(g!2Z,ڤL - NIP&ZSA]u:1T,n?7K7vYFD"`{sKJ|i -,&sdpAf:+Lfq}aGj[im2)Iwx/(5cAgT:PT@`γ6PcLr*ς.Kr!՜ !As5-ȤۗMS; Ckm!@>dvf(ӼkRUkd膇37e_cדCO}ͅ5tw 9u='=lP쳣5ݟxUz)Wiu:DRjbMr&d0`WhSfet3l՚;+'R `ޤUm LR3?VF4(5U|9 LU1e$D`Ԉ'F~i:v5Ηkڃ 0 &)eI齶˼Z*,5<Ly<'[w2A1Z`1J}@7@F@Lw(@2U<=85˔ߎE5}^XU8[6̖̑7Cmh PܺaTѮ:e">ZYpIܤop0VޖNO9l C|vA2aچp=zٞ2[7fLA3]F_7}T `s}ag$ ɝSd b82D4MRIٸ ] {Vēqҷi5cvSSf,[1eCkV2UAq6N>>N|I2A?@}aBD?v"Dx;N䞘p0q~x؃v4pdt(c1TI>jX` 2N 2(SBz: gChJ_˭Aȵ4OuKgvE lG&7M"ֶN5xr/Uz /J?' \Oo tZg- 2aVx,y._A_ڽV5ć d2[z49W\G\՞e3Fw뱣&>ZkUŷ*>U.Sl2a8VI F/ ?6:D FKu,MI^-ߗ2+CF4=ŪKJr 7BY^ȣZxg 8;tBR5,qcIRqҔtpK]423+8lm@(/<<3ý'VЎ&BʦGeouBޔJ㱶^ಌ@S0x^> Йq:{u02쭹jol[v6.՘?2\UR! ?o0}C{#ሾ+mY"Ѓ=/}WU wHE\[;6*s`:3TO7NŁu҃˜`Gƹ 8Oq .%SJvNj-ݮ8We<ř_ݟ~,|-zTKD٢fQS$ZZR <(bQ6*滼}aW msf~p|DXxXO2E vtbSӵfMy2@PXM::3"Kyp#g?¡ RFN w~iAT\[ ȱg&FC,-M˝ 5LgoaH)I_ bUoA430׭KF6-L <_3W۠{C"'caT%Rσ-u8#C J}\$ ]XvIilV5=tMjd_zyǴ́V@髚&Ms@IDPZf 9Z1UB@7I PT@m<_O'6b8<bxD58SjYhΙbV~">hac$VF#>;/ FIGa*jd%7yǜ62/.Vlʑ _ZIQ0BqC>8ӳ ^xΛ}ot (ob_:0gN\ OtyqK.E*oh?L4QӺrks9C«Uw_Ey<\nw)(y=z:Ƥ'f&s(f,e讂DPKTQQ9R)S+ 1setuptools/_distutils/command/install_egg_info.pyVQ6~WN@Sz>DW:UJ&U îFe;66TE+of>gqÍ,U1ٔ\˄plUw5`?O&lu(9JCsy>&~ߠCfYqEV,]u1I:UWk>*9McՂhF@q?jPVᴠ}:.5hj{˕,0s{3?+.(]CЍOcm>USvg|BlI-g ?5(ڐL*o IKlf͹N'$-f=3(YSЯ?4%&btwUcәXO.2W5Qy0(W"|BmIz^n|55kiD){fGŃ9L\ b 5\XBΑpCQQ6 ]His&튁iC; +&V}(r "LbJt"? UJgF &N5l70^@Mv066unD[#(Y#p Z :(.0>VFKeƜ'ɝLՌyUc%@F^˳۷[VY0:Լ4-5˜_cB'?DAR$Q\ci}DBNϋ?MVAH7Rqai"~010>tؖhFq6yxf Z+/#0YO̶6\$N"1DyuъIH\_ J3yy$IJ57m/kб=$jȟjRbeW}Jۃy=vL$IVv?p/l=Z5I`v9n8[„BE^A/WyU^#p|#M nVo~w?*_՛oߐlRuTN2S~ZDwFӞ!sHdP&O o@Ek8e?lcGgQ.ehoy*nV=2?,W9q+A}w@E?w:vjLebDXvĜ;S{ 3!kjBA=rwkZT:tc )h+ l9ZHT0%;!q z&0)AF;XH5y&U-r XB:= :u7nidG6&%/Q!C\m*Vܤ~AR\eI$cV.ݢ~B& 01 \p!'X/L<B53G FQ6c)@  l S֮MW$^c /u~JSO @W%z @q{VA=Xa{9N~nBd>mʜTlL7c [k=_J?CI_4pjiteuM~핺WZk#*y)Q}נz%~9ք ^qW[)?2{1m aҵH3D[ ~. 2!u6Ll%(630U=Y5 rVAM3C ݷ@LNqXXѹSHW~Q#:BϝϠA 09PhX !bU#*q>2u HȑZqxIB(y}T쯴~-_@6Kt?KQ*ed"+I>U$1Eg2(;;tE7ش]=jZ!B͂ miظ7 -(+H䕞x3*3J.5(VR3m+f̈wәQvشx"*hJ_WP h#mvTXK[ٳ|!Cp.*힙!\|݌}eqƏ*[JAMYCmpM{A62CLf -wql;ݦXYLBfͣáT0cG\gAy\G*,I)931i7̼y| D_L_}Aak;D.ޮJ=.(TipI )ft r ]?]ow*&E!8WIP8 ]kH^k*$YX`#-? $}EQ . Gؐ{g' c'%$(걔Bu4޽P>@ KG)7$O? $m) jY7OPBy0C~o$ߠxewF@/ri ӂnIS|(#Ny%aTVδ?M[)=/šճ:j^q~ *tPeLk@8; +R"[4+` KHmTl zdCDSp_JD >j=(^״~mM~6}(FjhxGƻ&no/Ȭ&]h}($2{alܡHh% SWT:#? +rVm?9||r.o86v:OindYG7l7i/35X<.EAXG%N&Zo*3n=`ʶfB 5K3$;#Ơx{8;Ȁ`',w{9GKFp 2mBF=̀:!MGpwGqQ=uz-cALmB‰CT ?ĥq4|(}iB,15Yk[W0Îukq};O(`^{EhuRm"4N3EkҲMԄ)-?3 W3)94{Л VɁ/XxvD1F8>3Fl']NGY߷'SWZQ o1Az9ImտPKTQQ:0setuptools/_distutils/command/install_scripts.pyUMo0 W.:ۀR (a@w+ñD-4~(YJbg2K$)&Zh3EE]Wz!6eR7:w}JlB$3~->~~xEQՖZ,CfQj XBC>8ibNh1tШ rcܡ]ijQXR{0 Y~D[dm AS,E6jUh4{rNgAgk hQπw8 $2=s3R{VFkKy*ӑ *Taz?1Dۆ YF1%Nu 1o>j7)$s$58I",wr, +={mK/94g]W .du:#~| 0z(t;Y fH/dq-!Id ѸX \7EC3΀ >x ۠MxX/&vl>p{q31?j/Xsx q-ΎjjZǹ0;V\Ҕ3=uO~2tww+xiفyM\ bՖ!|B:f} ʋl EWi5E xЛcoPKTQQCho+setuptools/_distutils/command/py37compat.pyuR[k0}`mtS.2|DhX$ikqsKn;9|q"+˲"L LrEq-(F*7=#(DTTS`+RKF5%C-}c I˦">ڥJ %ѡ:IǞ5M'pOvm u*Us vn!"x_lE !t9ܸpW!1?j4xnvƘntkz`(^DH֬@::]tPY;"m\H9Nσ `A$ i Rn >KYLa0*,PKTQQt -)setuptools/_distutils/command/register.pyZms6_!Ȍ8w<6IuJ"UizbX>xegM;ϕJ-V,| ~c"VrQI?ufosZDA0GƂF#[k bS o cgaИ*f bpjoa59X{MS)0Pbw Of!.8:32>|-yL`Hk˜&} *DdOItAw&?c,#)ӈBq̟ =cBF Bv8u"Wg@@^Љ]ZS0"O:ZS)J,kဆ0낑F˥/sm p53X Fd- eJRoh ˥K4$B}X x%K.x|Hlf;p'b]B8X,,F*OtoBN{Q; Y8H!/vfOZlHr%B"E˾ 1{Nb`kAj at A}8ws:Y!'Br[YMcRvpFi#˂g ' g E% ᓐ^T@$vt~9rUv"[WEkOC[*.t4>0Zw.N4W]>2P @:W̉*AMR&:z;!c'{a?U[]J50=B6Psp ^}{yYY/4k!ۘ辳a%lj~S9LXpb:})ß +J^O vAu w􀬛2YYe_w7Kp|xeeD)Ipu;\lD:ǯP2`#({v; %齷f#9*߻TiV9mlDWN`ގs2?2p6`KyDP/s5HH=R3v]OJm>ܡ@GtouE&+U퓟o~@W#Wä '/hom[\WwB<v<rشsAzt@zw뚢%eď2uwjK,?NmC~vS\nEvw8zSkmDɵ^} Jxh<l/rIk߁701gnd $/Kג\|DxY#tm f]P;M2Gy_AvuhgD$f؝eol<9~Q 7;6T'Ljb=p{m*k`-$DĦb,H mޜ,@ob~Rc.D4)^2)ICo]OiQ`[̠CsBٱpd¥C`>65rr\K&:RiVְqlS|׳:J'Xuf E⣵Ӳۋ5{ztҒUhZuzVHXuYct͠MD&_kY.15lr wݛD(<_@}~z L2=_c1(Uc'u MDa;0ޘp㝽kw aI×qC{; 9D-c9 3|{?}Nj^g'O/~ūyr maF6cA+]%?nk?׃tHBFҾmȝp4KKQ?…>EVd~1;gNJC=ruO]RtX#1J]v䅿"W3 DsO\Z5{PKTQQtv=J&setuptools/_distutils/command/sdist.py<]6+rIty5s.ۗ<>DB3#ȑn|AyL$h4 /ЗxuI|tuV(^ s3%4 az P7gz?-+JЏ VzL&¹( AD`)H#]qL4 b@ ;uc PqD0):%Pيܕ9љ OIoR38Tm=+ Yv(aT whSDQ}luSWg?`b'\t쌷 j4[QY/q<rBλp j8*py.Z!,nm'~)wY:+IzF'jh9Af ѮQqk(J{^t,SqkG`Y$Qx?a 6*~LohBh\E-N(Т;N&DP[IZ"c@>;'j 5^sF %R3ba͇4)o-VkHoO'mvRh܍M >!Tٙ\,b(24݀0"!4!K,VYuJZ쁺bx67, Ut-1dP!ȃ&F'1R#ų翾xD}GҩoYw~u@&uٗ*C0Nf6IjZT' "=45́N 8/[N/]#}7't`.~Nk?o8&%8[j2d (wڳAMoFO(FoM^CK^:3L4޲(|(z6tR0,Lt4;/b r44hT7ꅟ-/xn 7:=vYt8w"}{d5hD& Yك!y9FQ:D,)c`yYPSK%ImE6z ɭ-KHjf ̛bC>ԩ^2]6i3HI #1V豍C5GqCtWC00cV2cD0ƴy>BNz2 3҄]Մv0JNFxh& _\3Svv'Њ79 + s))8@ */wC(T JcyRṡ+,(?©mZ+[x獨  U3V~I 4M+Tc2/pvtMIc 3c|v +ezrM0B}C5G8)B>ueYLz\dG ͻIdFAz ,Jmqb"uATf.yʼnmŁ?$F5ݎk5(9Um* d%X-<+ǿ6a+Cg +NxE( Ȣesԥpvwx[ ģq 'K푭ҋ!CchCFfXhJk7> $nJ[&.;Q=;[ ı WF{#ѡM$#Yt1"OX/+g*4EWPؓi3wUK#Dj_ӿN[Dzwx+ށY;m{jƟjBF6CZh7<`̉07t͹?<6ŀX`&S' ))ٞY{VM{^L͗zJi\jl"#ϓ$jp;s'@;8=25KQX b`*FXDLcLZNl.՚-,QIJהUy)Jf`*yWL$f^ՒL\328 9(+@4Ӎ/sMa5oK:V%I嫟~ǥXK ,0,s8VxYF͈n01VtrWN=qsď>a]oeS =靄ٚÉ:'ONHm)gI}玓4vG2CpX9}#)]7\Ez%`&:X>!ĴФ;A+fzfLIiǫ)|f4΄ PG0 lݢ>qPDUƑc!dpOqn̩"jSӡH} ~*E.}Nf>N.AK,\!u>*^XQ)_aH yS=ԏWԔj KA69hݛvK 5qҡ*1C Fh@7 IXf,oun݂m%,1D)+hЊѢI[F94 DKq6k:m]GϏQ}$v9KWz}5_ά[yΞTT%9(YsRz'|n(5.$G[Y#jׄ0͘k&g ^;Xj[zwf8Z[sXiUF^t)T%{:IŸx~vLs*%$C[`òuuUwM0x}o9G/!/[!6O=h;mc&V ։~tΏ0x+D}YdLM-SS[ :@i OLV2A||ׂcE)h87dձ5i'GsNS30F84lԦ$u%Dz!ԭ~:uXX;W'3 dnO$&.eqlc.bȿ %d3q-橅{Cm1nY-K@_u|;Kxa46S[Q5ج;ZalF[Njdx'*>Y/S RAV` ^HRC fN]FҌxۦ}cۻw+v;C ?d/ 5wdNq=?:od:ǿPxOt3F)!Av[Z/Sך; D#!@noYr*caA<ī=G&Oq\Ⲫ% K>"^o@M˴}WD.S_]ҵrEh?fH5>[w*L5OԱEȱG^TU{ PL ±R$hֹ}:7XG #$h,&yn۱1-jrYGNIeX9Jm0"ZljO27v9LL݊v1 &#ML!v̊ 9j}71)Bt,1HV'xn4Gv[kBJN@Gu$6h H@Kw=e(C"CU~Pxhet[| F TUΥ~3Sp"(&n9 gpb=!dP:UIAQG~Z8?- p:Dݴ5%݁\AHnU(~xGϰgW 0[1QfQT(b R :7갎%ޘ^^;* n\txˣ&Q0E4"Zq-Eb״&!,2{#Uj4hv76BXCr[X'~v0'Ѥ*|iZNik!3?8p 2A4N7x: ,ct+&H#$$a9xG'Ʊ^#@=Y}=?oak0-NA&< p1,NwJ7EeӪH݌Fm}V5ɧX}>fN) DF 4~2we,51mZA >sJnCcy9yͽn˻ydtMԝec=H7+2DPBA~O\o|BQYz!b47e|Ue_55tl?d u)6DhE`;>nj ŧ?PKTQQjP 'setuptools/_distutils/command/upload.pyks:N؋i&]>6M&v<d[[ I}w [ϴ1G ̻f'l[6l*|-ɧweD?or Qp+x,i62,Rlq)vrVVo/?ߞ}]xvs{C3o2{ a5k~k/"˂F[ h{P5T+9 󇋙1 ym('boG4"{-VB㐍;|SuD5ϙD6-FbC6# %y_"zO) !UKeh1ؚל/f50si>߁2]Aw D}Un|(E6Jnˇ`z4xXsCv;o:-Uڭ?4tnEY#(lʌO =L\cOC1-5߀H`K}E8zpz> y#RnJR-p;M 3 \'*xWAXH`J{e7${/0 mg׹cNl6 [{cȵpa*w'1.h)fJL c&(N1Tob4VSA!9dB/yzXiD=#% DU1RC6 ҈d9 KB AO^$\"*紨ʕnَF`u^. yG쁗=-GG3r\S#`\Etjk Y޻Ȼ(PlZ$gȑ<y:pH NpZpM )~3l` Iv Ұ ,FIb8/*69s@;C!HLWP:csh{UhMB6S8Ƴ:W/(<0B5pXddxנN灱Rï@Ac@S<:j~y n醒OL|uJ=3:i_UYkkze]ej?~d.ED5ЅR#~ ptpƲ.%lƸ)] Z P+֔9}mJGmiK81k|4l@ ,XȄrV6ԯ m`Y6 O# fYAc[8e97aAHl\崆^Z\|5XPMx:"{vE^SyW3ē+zkqK# Yg܈P^4nN3K:b:ow}&yTxnZj@4 M-4T%~D 'dwn޺M /2//$T# #QZ\}iN-TƢ$NRh]@-#][|[M 6;T0`p* v[x ,.tV)b8HOJE''z:onPS= N0Θ%Л1㧋Ogn`W7iHI 3Jy}|ɋx˓cɋ2ZYR>(d j6C A0$[BgenU "rY5.)0ɿ>M R۩A.=X|àoi@l5 #cz4EM- vhJ0JtS4rV_G%6 n-,(}4bjc GTHV.lz=GhN\ 9tR>x%;M<Н_ax7M空jki7TCAE!^K~$~`=tPa-IvnuSQ?2|*1rc4M [ Z&3he(5Ȩo<PKTQQsetuptools/_vendor/__init__.pyPKTQQD*;!setuptools/_vendor/ordered_set.py[oDJ7B'^PHՠwC Av)}薻\ KC8!%9x<ٿD"qת*2S]e*q+E&(b.*n$ܱ5*9y"h _Eq#Vof߹?+E,7(k4ݱM* &䭸x%;r]V *y 8|+E*l [`?}R\h ٦(᠕(HS']k{ٌ/c_.LŦboiweY-g_RKuto[Gvwsh(XXlv:FX(5)N5(!l+@g2 he@{T+1LP|ęgc#r,^ X\1^U\֠_%X2qqjܡqh%E d PuAA"S5:exY! ؐ^[-L^u D-p1;1i,8 D,/47Vjù.`2HQL+!hq)` zLڑ_>t.BYZఫ:q+Yljy`?1۫|7 P.s6/-Msd sUUDRӦ8Jy>jgm~Fȱ{86\Y_~4by缑IkN0x40^y.bD]qt㿜3>rP5H!gLT%# )Bm^ajA |wbE4Т.=7N98%Mh$<%q-*|(3 h"C^C3(5GbWJ|vEͶ2MɖFQ\D̑Cڞ=/ɧg2;mlA%]\PF*|DŽ]%3]?VVvZ@d,Pʢn &;^܋10|D {t`ԺF v[GV8lɗ#xU^!1jv~\fN莋n0#R&ml{/sD%󐤍)Y*Dq.ΙqYWO{R#b-ʁ޵n"vcΤW<޲gCi=G RcQq>A=]ڒn+zJ!}v0Vz%ڼn`_}B%(| q^A7=\sot?a4 'W3NKyyU9t% w}]h/tAB՞uTJ vad+yQ~JS/7ϙrOXwwAPQ@[@\]5{68(+*~D ]ꀵf S3{O?5#6i"&-z¾fkfM-{ A1\/-QowV(s-a"W 6^:m50ᴷT kH7ru ! sȦ;Cdl ol (Z Fmr(t s[HY9%؊%bA>s_dT*I* -"ZƎ$Z]te76p1V #)ZJ\\>+֫˙b ,.}AԾ سA5B#S7s \SOT^PDonׂNs}R&c>&!h[zˠ#7 {k+4F+ۼY,-6UAoJltb҆RKPgNv#\@4=ZM}VPQQT_ko'uje*e]]Z ^s[x"90{}~ j8;W^%}'T )Έ6Ԡt Vb|5#PW8)Ρci}M/W{q| S)]PJm uQuHe) D0Gzhj|"&r v=g9&{&>B!$i=5>iǀG Nw59gpYЧuf%Lؗ.w!eEͽ'c,+a. 5@{,AHA`C{h O4~BfeEU,twK4Gqض"@6t#B[bC]bIDȡ/`\XY@9PudQI_zN'*[LP6oQOi3q9"1P+; OKO9PKTQQf]wsetuptools/_vendor/pyparsing.py}m{6>OܮRln]qZ:/7vxmHxSoAIv={K$0`0/i>O`v=2O? vuWA8kkk_x> wH뤘eYyR$'YgU2"I4YUu0K*'Uf:sTU\$P~e@|4&YWi:I α;A@*uz8'A$P:UP$eU#Ad>tJ;R"y CF&4dɼ%>%V=̋L&hu 4PfJ0F_S{HyAɘƝ_Q%i>W0Lh88rS&'eB#c zͽIՓ-qBg$B1{RV@),/]wՏwW~߼޳gAg~w৽_x@7/zl{gݟ_=8^ ^}{/w|)T}0{wp_Qmo=G(/v|O= DvzΏo?y`: { 4b! چwp>5# r뿿Wv]]niiohg/ۥ*)}]zMnv^Dzy~~_9Ե;؍7{o^A ]@՗ 1}G zǃݺGv7''OCXaN')v& qɫ4͘(wWߙNl}G)vhJ x6+xt 9 ;CG#w:׸YÚ\#y} 3 'OFg Nsa[ p|2̙?xK'un`8*ϠX}=@De?i'7̝og $;}}Up Ong\A΀NJ]+0l/3'n{*.Jx3`Vmn"3D tQ;q<ǥ*yO"y@SePr^ D}YG> j s~?vN h:N&w`s'GoG]zԍnYXf*ńbBޯs@=6hE l}I $Edd4)e3. .=)^'*zIUF^$l@ 4RHǭoGNF#{Hf TaX$"&g~"}@+o789 E2& 0é0$z@d.wX<ɂ"%\%*^J+ABi$EQs4O\hSH3AL>AOj4Q{sĎO$3ʧ~]RQmOO)s>ɼc0*w\yY9+YB"i/MAcP`V<][f讙 ֦ $9 KXA<"Y633hiCf@Q½ M +)WŋHT7_ez`v,3uOhuyZޅ`%y"] (|wAI'ه /@I ^c< ykL*P@N;;c]a菐N D8P2P{uj. dPfOKhʜ<2"}X`c1ӄ_ tL][* ( KUY5u dAy6|#wpiq}Ix, Fj!|$=|W{bΊ_q(0Ϊ.IdLOI|2p/Fn?C˜~j;66?&ׯ񩏾S.M ƗTXn ͂G*%UKGrt0lT >?$\ f2f7Y\Cʹ hgy~_$#"?'XUC}^ZL듔Qrga|&?_͒L~I=șpgaGFvM~/w3NE:>؈f1s^ҷ*%h /{cj:1_n_&&zd9A pEM͟:p lW;D?y]$i>/rU,O&ϒHQYSl%)R%Dmy6Rd0=ƯN4Y%(fcpi_0[MeUqv/pJ{$@kFT%S}NQA<q{R t!m>>|eJGki%dy+ 2lxb۪ৈc/U%q xQg[JQC'69 X{ngO&n|$@/GGH#xY>F$2TQ^IL|E5140?g ?+Y?% 9.:ZnG_|՟/3oӝgvGR[rI;1"fwgJ;_4 GbT:2+xeՈj"C C&'u\_QuI\752AnsmW⍃/whQEhR`t7)vI4.IWZKC CA(mSmV#:$UPZ;4Tŋ1Ko\8o;~cš){j†IJ2iGzg#x{sv-tSZG#}X+"ėy:.Xk~N'p-x>?U. Cd؁/ 8{;m=K%ꋲxPC?3|1P|$)YPf̅2'nZtE6ZđvCA: ;0Fvzm`/ kS` R5Y};A Z-&طv 5$)._+>y[4..ټqä8PGΓw܅#IR! |#1*(;!Y2B;5XڎpP e[Aܖ~n21P"AmMGu?f;}d@I1; -"H4f܈A!TוVjI)" wȯ26yP|kMm}+y2̎vsъzPT ngIYF:(v*gcG}$= HĢ|zNOk;XYRk:3ujvݡ0u0(ԾCYLx'$=k cxqfC4[`qt:Mh!0^mJ'/xO(8t|=mk '7pO=3NQ},-z|*qr1f8b4Ո`]8nooLMR$=dU%7lUFuh!d>}[B*IMgHoXmilrƢ*}}AzJlbIi asx2]D)+[5Ĭ[XQ14* mx8C-ܙIJilj3yV L%@fжȞ='CI">A,)Oj[Wgm5hri81"q.PXfj^{6n*y6KqZ[|^o'wx1?Gd F;[fVsnLbJj(GGnmk(d,&sbth28,bH#1 $E4 P bSIg$Y({7=6wXRJhTo֏ojNEm4[.'7-C²4J<\'1` >wv }yHqAuǔɯMMgJ:xP?f&͛{!j8UnuYK]oo<|n B l N'lt^²3F:HBǽN-m}%lu[ i;EwTW$jc>`z-x`-xY_w‹{u/Fb] X0ozfh|Ddž <=D F|rU7^k\n$_xB߭]ԾP*H[t^Rچ`u70sK P(n]ofqtp[,G^.iUX]s(J1W%`?O_ehxU[$`!KHlZ*Q8}j'ߎ6B{WjX4^G؋^x9fs]Z U%]҉in6pEh;U8V `J(uä)לT nY>6P$]/Z;7ŬDL6'lPɨۍ{A 뫃cc/x^y-`͛Q[<^k![5e>Mk5E䰤{Mhk> u5[!o{xT+ψwgJ٥{FtJFzKfs$}m6m\[cQɖy(1"4R7wk..r]eB.z]! ‹6.]`~.-DEdLr{'hr6]Ҷ/aAنrx{S!-uiRZͯzEh^ڼp+hԷB$I.{S cyi>6S[&{n/a6|ޱ/E4b@ pϽܑZ 힦3")ќp\+ W $Th_6 }8DzւK,\$$s wAͧ(M&щE( u٭1ߟX֏ͥlӣ0K{EciJ&RLշkD?U6*HyϤLwURxGYXh-X".=ZmXqIv6*u܊%(Fm6|Ү'Hjzy%&z શ~҃*lu?NR+2R(lj¡D-DC:@u4ŏ\AmSshiC$k/iء+^C.~/I&N01_ ! t!oHP~ZwSz̓6FC"1lF±CxTYNDȴ(*c-F+-:V%Vm"e ܇!ܪVK l?^lPҝ%][ࣨ` _$=j=iBu-jT; {E6;` {5F"{) *Q;Ht,;gt֤hb{pF_|j#Xԕ*_X\it(If|t'OE2sBRCR\%1jc_$,2 ,A 4s+}zLٺ]v(ZOw9}ulR^ `rQ 7b\^LN_B!6T,G-E} RӢK 1 WS2MTK]Ii=ܝeA 1 MGVFtIY.+h-v=fX퇨 btZ_P55¹ެ=Ѱ~Muk.iN[g$'B,YltTW񦪏AA: U'%^yj&6U:B͆#\-/iHFO5i\z,t }[Li_Yņ =۶vMgFzm3<=aA %mR-T JmdYLLzkatO ǹLo ,YcSZ9ccAz=Ea*;t#'SO8;Gcy hp#/S+Q9K(溱%Ζ#Գs1E)m6V 4zV\Lf[ݮ;e; Pxi4܂6ZFmZ޸ V)e`q5%1'iܳ젤u,kD2o mHo$i2_u%l]+7d|K0)_ jI1ٹ/)j} 75tiF՜bĆ{9>q Nt]m +$7ha/dod{F~ YEcl_t(gT0 j/{hU9kG6psm`۬ ⷯZ ;UfnKj^Fjӑ_{xOjJl8 waM=xE\cF㓞 ^j Sk;>hQ_u;~. 6,#JB1:p1f a 2|t[:3mb&F}%"'?KPj :bi~ V'ѹiYMCQz:csiTpmz#|SN^īPGn9d0ou'o_]#t=%hwHp_s>D6v)7||t @w Tg9<{o~ q}%Q~c;l2fVV#n4|I(@oD ]Yɱ3fu(l [Rmf^wZi>ufV6\\r`.Mxuڝl5>FUEeօGDzU,+\F^~>Ӱ. jgֵ,Z5"4%mꀼ-ělXƩ(==MH5Nӳs X#ʂnāz̆rv?Fx 9؅{ݞJMJJnO3v(1BJG6 O?05* _}n Tϒ䩟}ޯc@lF?OpocccS<*R+jƬ@]P% u{ll4hl]._ڗɌ>X.pϋ#%#v^,6պOZY cט*gR}&.7_309zęq{Dm gn g9&(&Z,K`t~"iyBVtR)/S5rЗKQ(=}\!$D5J%>7835l5)?o+, /vYX_H@3 -TaQoUH_52<;@-EIeY۹衳u^_]G/&_P>t>/?/f@"C ާ#h5Aq  z^^2qJ[,9M8 0q\&f` BiM$ήM7KY,'kR!R6F?׮m3f6C9||_%EA!P/J#ser?x2>Z<.+fioV}p8Ao4un;﹵uIT6Re|_y]){ J2ЍF?ߟWlq>*xg='E\\? ʶ+ Wʢ`ϧ #KbuWcen7NhuXǪrVDMa,$ O`^ ]cX[a|tOώ9 @QWSm&ބ:l3śH7|']L^|bj=ħֈO㚪^~erO#vfla1nG#JXn'0gm{;ktXoڕFm54[?)㢙$K<6]X Z /9 >~ՓfPτW *MDL'7Vs>)bhqL+ǩLGӱ3+jW|dRMkϜft|:_B4CsIV<@ϡ->A9(@\! R4@fBFunM;^f \7I+tX8ЖN+*;H@gg F9`1TŌRuROl-G܃M.*۴z++ p%'3qChQK:i6 Av^JOitY@F"oi넟#1lAףL{@@sNl3-Dx6 7znjtH..C#;jtΉF M7l>-7O@gy!C]lPP|Qɽ%~s& adf9lm3]@p@ f`9Y! 0|-pO&%e뎓Q;Ht4X.۸Hk`RAlB=VR`vwGF=R.fӷcjǮie4M*((Dg:&G&S".]EhMQGx̋`LmT̥J&)hKb L&Än,8`Ry] hswQB$H&s]45WOzOga'PZL@dFHЎvR?jH߹=-|QqHЯzKYk~dU'au-"(kVEU9cXvUz)jڑ֬PædzHWxOyUr? Z b2EV0[云J$t A̒,TGPsg{ϟоR=_=yl7~wQݗx x&xE  ^|H3=| r'{yf7џ+30CKvW,"",g W4 0WZ?~;`iZ7V~,;%tY,6˶rmj~)^tL2؋$i>/d{d{n ])6/{70uZNkr 86/'bmbkC?Kn[Ɔ8~kjىZZiKehԊ% H j'0GJ&d,g˨)jv$b<_Se:Kvo8!7mz[H!$N2aXIFc98p=x Ci&!rqzi+@l ntV@Leh <^1*2J:&UpxP`)V[H/)3!}idiySrb[ hc, S$ɢ׋B^@ m0^po9LUw u?y]$ƘPlS  ghIȥl|"ZS`4 E:'IfkR~]txh-`ķm`4PgԶ KyÈqLƹh&@A K p|q I I$ia{ew21 a6'`"(>vVeu|M7VTI㗷l˦,XYYNIAR>GW`:tȼi(Nxm^fTg]"ֶ]eqǣihiwcVFf[FuWŜ~l@T'((|'UςV C19p4XU$-3Bţq^_Qj{ GYiF 6 РcҐjFS"Ԉ+e,L R1P$SxYW`tĈozcڦFyMB28y9$\ԮoȗGmwIm=ɰqxd%9(euDb\ QRTJ,`iGN['RJ 4i?#VNxQD@xvyZƃCt(y~i|3LNKLاadŷ*sD[eL131mjDS E7nF*"C0UHպ$ J ˢ4rQ E#|rbl'ϱHAi [sr-ǺAieT b} }XV|Is8B*o½416ݿ[0/]ì5 CZjD#㾊ׄDbu!fq5Z :-xB&G W5 ZN+<Tj4NkA ܀{6Ž6f6P2rE6u ]2Pᴌ05;m;V]Q]Zc7y%Eѻi>DoNn1>'322F"1Wxέd:#?,&&{FO $aKBժﰪ"'h}mrCvEf}(͍PX yh74r4[J{C4INl(,BD,aLu ~ii;Sro $|:5f-tG^}"dZesǖHgG(c+ݹo ضr`_M+n@ BI5yUy&@Q|Qհ"/E,bu"/f]/I;j.ɿˉKm௳"?MUZN<:okf> ÆQVT.Y˃t';i6rW?>lXD٪ow 6\iźsL0oX^ȃZi4,"m XA^s9Vѡ'l1Pyn*iƅ%mZJ@8; ʏZ ́Pמּ=թ ;ꡪn^b5@$cAVhzhjΉt&zK1Շn-N9@bqc3z1wEX[+ZDjZbY[~ՐP}die[~yK}>ަn kB( wYea,XptX>O:uivև 'M]_%f2ҥ,g]KZ׻òuﰴ ?v ;~`} OSJe1i'ΓXzWc_a+tiǠ[ַ..戧z6k^{%,ɌZ:YH 6&.y .;uCk"z >q'|9wk_b#pJkO{C1}.1l\}k5fm7kk F5A;kK^%d?pf)҈cЙL.,AF~YOħw3a;H@^\}xamk4j2cnd!gA5{$l\rEqK~\,4w(<&N}ܧ{isLreHHD5p_;Vy :XGj#Y1)ӜW lxLtd[QhʭTdiQє\mlfUB)Ha0I.8+b [hc2lʴ?1SE"MlM;*#CŒ?Z$iҲFf:+P  /՛<|*Xo"LǮ` &*ig%"n[LQReNK c,J3H(R 0).qf{xl!a%vv]$Wd\ Ht(ב[Q)}} :=WDvBq,ugI ^sТ>̩+jgLiB ֶdD@9R3kN$zWic!1Yy=׻nhulrÂhGxzC9i9a^N46*\$)uP+)O0,)ăOY۬}A'uߦ q`i5Wi҅{Y[Fw9i}h0vfQg]1J.-20Ji"^8*jGUX"oP IwPVi?TwFm@Jb+BHJJ:½3#(R`&SgYI"hUtY+5:ꢎ& F tY mގ<`\ B]U"/ IAV{;Ea]AE *iFTMqM"pZOlD7`€^ڛ%WRܑW+hY l;T;ײpoQLsb=,HqRǒWgqyn$/>]\m:M(%~ӳ Vnuzug2؎JdJ uRSLTFi|@24bU 6om_ yezSE":>+Զ o Mq(TZ:B9[3nQ!6`bL)Ɂ"SfR'1z.`j&t9A/OO<-Pր4A9B7-+,hЎgًVr}7oa_V|0AkGrs5NfS# ?zGK3:@DaBm$"!7(\]D}st wSOn! pE(|jYBi!6GHCogTmxB#JrR)oX5s :FӠU\%k9/ag'("KegA+ y|Xl q@~"&e2pXH vzUy'\"uT ^EZF˜D* f?wfa9?335\S7 lfg&a02]Ɲߠ,?x}'jok?FIIw<:m%xd4ATA`A_f(4Q9SF_P Sp晰4@V!sͱmTP.T 7xNK ~EjɦR б"\7!>54zAG(os(*.Y8/#nov ޾I%/x0j(yZ:+ ФH`VFѽdF$~+FW_I@1|j۱N #p1㣑LދUNEӶCfeք):Uʩq,u/L-6*5zG3(D'v uMvuCőDU[Њٗ-8/QS_[-f2ĈKU g>R2r̩QeXI}HhS:Zwv?/p D]h22~[~|wmH 7궴nKEgoY2:0yq;QBaNЌyrYŗ^S`q\ŎIFmuzF`?;re>*Qi[ilB2!-cs^c%*<]S2+e@ʉgS>^!]E[DbȔe x42Y"j)n͏Ett$/:=t<:̄J1`|W Sb(JqAH閁-~X:>U3)Ǥ⒁IFZtxx2|' Y#)cYhOQ# LjVBffu-J< Ye>_cP3'`dg]ǶCb`^$ϸ̲ [3 vޓMƻ1^n )**pㅘ[]"\uLD)쌡gdՂQ+ IL/a28`٩h^e~sPZͷjm d,>OtT;CJɬ]1ocukMVP u2 ݻ0= w fq.`%Ӯkzœ.,w2Flbl/zQbDuJ͆ h+f}qj*n5 hj#ZWǵ<8ALaW07@̧cv48&d0wi`+q-,˷w"æ cY< ?Q}= #ZD+OzCۃNb'ScKLA2.#R ꔢ7QU9B2el˭6ц3%HD*1b*|>>Z9&EHhPw'qr$^5]뇸"4fWr_stZ GIjOӝg&m߇-^̕cZE9XA:S{jgUBT -x2[XfJ(jͪn 7 e}"N"`Y6%j $ф>߇Vut.`ZbTr" |񈩯B.1_ԍ?J97 D*-wK(%6+6(ՆA;ϭHAh4LU/3 *~ GN2er]E=ZE2t;(`Kf q'߮@:UrO=ǷFg/Nl zzpo:ɯ!^5\d OL(ojou0g_"rW %5mmy\Il%΅=ɧ: 1vfL-m*m+2c`: &rbE~H '!H0@;CE(^[f ˥&IsZMH'CJ9?6$>ec\L0/ڮ^{!㏜zN5Vy4;]b"%6%2sgz۱E@^XQ~EE꬯Y%[K%Tg?i KۿqagAK2{{QgLޑ@. ɇ. L EVƺpObLTCeFa$`:pr! ]+t#ZS=ðcJ$yUM1q{/8(/w% j i6NGM"W&ʻ/[0F ?E-+C0Cdw(Q'3 &l|vtZ_|i2Vc/q>! І$1lq b JJ>'#_]6ClG ;=+N^mvQ1xyoNF:P4VN d)ѧm;Gq([AHwy6׎p/1hp d9pI 55r]P!&_EZRt a*8PJ"fk#(8_z_h>xuDABa A9g3EN*NӒv‰ӳRX25Us2NoG/_~E1 Z1#xr2*nRQ64#z`CGYfM$$ Ϸ)[G%s/"38:-0DxSiqٺ뽱jc-(K촁প~\bB!&&u#FWIzЁ}pXiXt*?oKa|Kftgu6(( (fPc> _Xx"IbC1c39G 8Nn(6tH5U "PZ+̗,<`Aì\+EKb5_kUhQg̓1~ͺYn${?&P@F"3-44rM Da gKz|nojfLi] 34'o~,s,X'ӄD-Jnj 8ÞN0Q^_ܳ v)@VYl$~4\e=O_7?>{0=6S_-ʷX%eH͆,\wӚy9NL؟~1y轍л a*b[Hǯ)S1"ՀLw!_* e[f} 1qIKM5nء$\%N}>st ̋ 7! e0/]ַ_d6tB;K.-:p)nIbZuCnjD<sqɍ^X ǹXi4 N:Ս6埢C );0ƽe9ztL$>wS3ݗ~ߢi d1E>jKDIw8/;spNĆjbb&̉|\c{뤠tF|m%UA$qsV *rҙZQGi1c嬨LeJ״.t-8cҿΊmP> RuD|D|}BklmbwH|QSz w 0M325\'K]j'f騎NTL 08`d1 bۚ0[>8#Ao1څ:i'õ獵] J_lr0o[>x޽8)9uw{3]U^⥭kxdQqpl蛬q]gV)HҎ CM)fӐew&3<}ݿͳo`*:ձZ%( a#Ys"[ Fm iRxh#E]UFz6WCߌwPyP^YeREk$Mxh*ݸ!2ǪZk1 )c7o6ěFuOiE cP|}9H_ S8wix^n7wO6lIk;"osR3.ې QZ3=#RĔFǐuH,t*BVD)څ6a>Q>G4┎"ꦥ0QTqHAy쌂9|k?]W(x9h:y3u?mm}h-G@`dG#G|o{4Zz5˸H%^fƜ޵C.US Gq*@Z9-F(y_&ȭy0SQ(2,%Q_NQ8^H齲^yrLuqVsϳqƤoX>\.14,̢= ШܩVJ _bk5Y%{t @UR_mrfH } 'mX*uH4[=:Zj=3EW1@uʧ%:ۇ;ﶷn2ucE̶ã7nGGӮ>Zvo۲3ucr{+^3v[s؆cղAnżsZ]82ԟQ:-oc*ow~ݳ{둯hf`i J_R5~/d?/,|l0Ja?5rZ.@=k>2>W-z%`Po\;\n>ll/ͽqƧ愻.A4'˵Bi3*SLgj}5G_bA!p|b|FbV[Y9n1sLOYnp'6Z[د[y{tQ^dLz 4P>vӖՏjwĪ>~^Qvx3 ~ZvD((]C0Х\Ltg'xtH{>%KL}ڼ 1o,-iKFqq3ۜBA#v"A=tY$:USlqlB:H%JF,:B 8*.W(FĄ,BM##:'\ "۽ g B4r.U ;q򨭃*Kјm34ZC$r^HO,4I%hA﬒ Inl2PaP DgfBTzQSvDƀgD qej)͜։RU ׍؁NfI %c'Ct&4aC_dݡH;>3.|HQȮ%gP_wI.n(Q.z]kHЈ_hqy2D#_ *{xc<+DΦ.,)~bnW$h"{BmJ|kgm}_~篿s=e/kg! (z!3)rIoqG+PgHq!*]\oy^VF፤jPݢW`%P1/ ' ˑCDD32Wb{iζ:2mE2>^]q/jܫr[}B cUT)'̮wۖj&êM.n?ZWhFy4atQMsŶhwSV :,A 1C_<[bsfi~s,о;0P~Eu69$U-JPhRp7ȅ8y_. 94TPe*Z#?HVCZ6ރ&!4'kvM2Ͷ鐊W⠥V2}ԣ_-y{8Ya4 QnNd)qk_&l(f@ '_\m~`0X+BU6}\BON&@>i3>Mk䞽޸!u`q 4AW($ew(ŢK2dݹq9ySQ&EXdL()6!}b ,KYH3TWV3=$|O3,ntΟ9S_^?IGIĬqr[ -k-"F1_tvu.v:'o￸Fuގ4Y༪f[M~ 12M7oyx_y:i'VX}Q}~ܗ Tyx}qmo?Ÿw~y,~mo/{ysfnq~\CmX6},ɚJ r\qT}T^aQRKPG&8Ť ad!`,~#4ѠQC4ęNYh0؍ ¸Gfq{3BG{\-~i%Fb0BjeyFPnq1 оH>̬=-e)Y{6nda=N{6&-vER,ۉ[P OlIMZV$okR@IKy3nP(B<Fk"%0W7@j*f5tװ?,a%2¡8 4ZDe$wiLUssZ!zT mZEԚrݱ{ёåEG}CBCߝ _8i,BfNHWheӃ QFϊ#Ks#bv%F| _Yd;zxװ?cY3m#(Fٳ+JwƂASM\ϋmM50)z\Ny0w&#IgKEQ~ "³F8\ŪW 7ݯ eUT닑x<ȳ qw0| eU4T(t WTPw{O +ן6POh{1F D4J}ƭ'3'{W/#B&83eT~YݵXs8/EcvwJjIDqT z?$ƭxmnn[A4$1#rs@eB#F,:ܮp++ƧN9vy]+UP]TDd0Rz LN5T fXAsm.unKbQ*oA C8lDa x##?/cˋL;ʶa(eJ,ac>8u ,qqӨÂSDuU?4tV> V Bѯ*c#Ʉ8?0@DNiEB>-k(s=$f{%M|[^Morc&x~qO)˃'in|nq8/ȻrCf3_A'iڈ9=$.9u, j^gr^&оcnW.&z% vMyꚶ/24W%W/i|2d~~ ?ݳ`o+xI  9BgdċFA `EϬa7An* BuoRW3KNhU:bYuuKt<8UX( #M|(`[(fM-y6WBlC(Q d7n8:<NG 4;(** rZdl +FCo)(Ysd&7P)pO1o3޼ۑ,#z{<{'[& pQlf@Q\!k+@ &dy+HWϦDI׊d_zgosPUȶD7MEf]\D{wiU[Ӈ#<(}ti5C\VG< u^ث%WJX%6}3>tcWܹ`>yhVzo3e'3u gldod4YvL<|2-l79~h E~Q]gOsDu`. +QW=oϪJYf0.ZhX,jYj`~q 6Ben~a6`W˖*X'N` [53)B3u>O&Uf5iE dV]N8:|QK 87}Me6uyᢀđphKIh˗'IbU«>aQT bԎR6̛=$Bބ1 X, D۳ B"OGhE*X./nKo??xq̽84xɠz:;cYR2hy)舅VR| As8Ԣ ]/sէ>~gBNGt#YjT89\J\,Dr[E+Zti>p\՝1/~/fZ`l-^ $Qޖ#Q4ܕEVqbaX[ݼ)D md`KL:G"fkqw!fgBgϔUh%s0F1hxq&o R3>ΕCaQowR_xVzYM6\K^/z?X1U"'iQz%w_^uN?تC:<\qەךs,ȫlp5Gp!~eTcZEѿY~xի`)8GrchJ1ׇrp&xx,Ӏgt DR1%aг9%QP) y񧳆 5VMuNO0?&T 'uяQm4Lk]csvGgquɮ`F>g^wXaumeM[(l0HV؎& >U иI;H&f[1UYy_k. 1k cT 'D@ÉaYh)_i>NKYU%j]HZծ -"E.:vLz5&<ʳ!Jȕ0IDźleVսliW+BL"Ccx=[ݴ&+ *O2 JJ7@%2UGBMENiռp ގ6J϶܆֏J% #wDA6|",%i^^U[5ͣh {XG6RgqsWWNe !01}DNgh4_'%q() ƻlll! +xu䀄@nd%)FLd1tw_Q-$7%nE57V]$-D1bIEM95R]ynMzh%= ((1zSN[vZX xɡYW[?ჽBGE^2ݓ>b2C9[iK^hi- ?tގ^P^Ih$K[N~/PWxbgȑ"([}$.ᄑ7K 9m(v8ӛx;ļMOTw~+iOh)ADTe)n3/i5>^ݥ&ب^ǁ}#I]z.#F~C̊6Cڂ#REi4WPa+3/m%*b#z^`菁C0:JЫiaWx#ŧ<(xIJ%!1^N:ƨ m,cHfN.R[Η)l*6_J=Nь[-d[튲O,_)q߱  6C]ˏ?E{tr~՚hm@0,;nm<4[[_DyQ[([;Jv+wZH/O_NWFMĜzTGT>]!nhM./w3{1u[bA$.o\qDH#MEeښlgS!Lx1`wJ/ޚ*c WɵtBZU!ݡեmcGͨ.䧗cƒloozk Mm-8VWBҾӮbs >`\lzD,u-xAZ,Kaʟ>Hg<;X^a1kB1>H + ! [ZhzP|']PE5=jd_,G_R9?,j3S|ppyy<и:Z!m;8}ڣ+9"}|~BÓo)<aZ9CMd1*S/.bd>_Q˓$~IFxow>}=iׯݽ(l@˿ilwTJe_}4{z~˛O˽WZlk L6)RA d\LAU`BҚ4-*Q_%NW3Ҧ|{%9%zb~9BN=#26$j*P@~^X%ch'T |. k)T !܈vs:3/1HM*4Qk}=Z~&!>znӯ\WXWdCj ʛWƕ02 o\QmBjt~Z_)XN:Ӫ|j˾5P%g. V!$ )6/}%#ۯ*M%<*=oK#;#oB C %RjvatT^6ʤz"ƬL, .仿o߇(@XqO&FHMŹX(uAOp ;MKz[R!dE& V4LT0-% knHÁyd[t楥~Zzk5 j bn&@^4@JK³ ':^8@A˘s щ% ^U[::䵿9,k\#QZ Ψ;ɠўwM/Vou1hHWWhq]Xg;Jdd|FL W"ł{EUy2$ bP ҩ1}:NȐ}71d1aY&V"UG9?(2/F;>e#GwènpfKqWܒpCQ،TAc7HRk4M~iV/uC'l"b>LlŔSNNMi))dGAVV ?L#J_+|#Vb8Ig,Kd&k É{,Wi,Be*Z.b(T n5ʉWu|oP%DkU:hV:PͰ_ۨRK3kP'UB X#4# |v\2~TY *i7+M]KD<w1*RJAq' cUB J-?SA5_R,z6 g÷,VXfmC'&ɮ:cE}~I_l.YGxl*)XG",-n4| KŖxkǧ?ckR4m[@X*YEm`ۢb& Xlf6omH<'/GTvA[ZT7 ]z –9Of1Te[ETP\w$ #6R?t#X{QuNS-7b%[ ٶǷ`b4~K+"gMO_ z3Ky "J=^< vTEوܥ&$;lkj]^gf>BZF~0G^5؉+Ά?_Wn+%PU1i~.X t-P^(29 ؤ GN|wd1J9v}Kh/̄XJe61:Z+N:}. 缳aU!THZNDC|AJT 6@58)bHh`G`!t☙N|ܪ4G*/t`K;2.PAIy? s~x`[awY̏Y\gm)w/Kξ1;˭n"e˦6 W Xȯ\B`KSr \,bVfS 2 /Ų}DB$:+rC.Ac ;REd,+f4N'7;7b2eZ6W|3qhqoS;2B%GyN{p%~Pĭc@~?Mm{u BzHK.!p[e,ѽ(iE( GЫfnqim1#L_ofvT}L`,5KI¸3pB2gJlыg۪j|Ӱg:ѭ@|0 d|sޝ'x|?9Pz.V+ XnG[̾~P&ź1*JS7,DJ2&Ƌ arId:XƣL6Q)݉~|CZap*ѡ7zO"yay^2;P:YP֝m?")CHjЅ֥4xB_Q/2| Pq!%[]"_}ţ :QyW?^_(G5O u'0] u'~|bKZQѣz.kyq󋺷0{V \v EZ@a  Q]mD;dY7 n[}ˡQ ,"bƶgBh=Ԕn#2QrT ˟S4Y].ysޟWI4 )5~"#N]4?U{ ۫.f4Vs}?(k2x804`vs؝ -K8prk9й^L;+#[ЍKzbJIk;#:e\D1tvC+yz6R&8L(j+ A[IG#$O(S6"ҏ, r <Dqn#:ףg,FiVp՟/| |"]$$ gS|Oa`|z=P[}_~ 0|hqq, $`r~itƶP~Y3w^Wj:Փja>3p9|"x&)BcAEdfóSm9pxQ!cwD+c~3o2y}<)m@GSչmVu$2<4;gZkÝ7Jށ'8aI#BRxVArPփb]>h8s2@s/]2 6{dY ?P Wr|E͉`)y@ff5/Eax|CiXD뇄b/=^_byk4KaVN(Te';A܌2/eeO$3=YvE#{P;> @A"U"NH0.Vq|B~/OtöW(Gck $Xd C0A ]!_p<尕9P{uk3~4 ~&Q3dP`6m%dU F6ؕV"F N\ ⛟2:N`[DŽP-I½̀#n{U4J)G?ljhk;=(]+(VĞۄ3"Vf1`ۇqPT# / 2qomD%Kt}eMB:m1a@'CWx|͌RkCzLJ&r" gu Ə /U- <\bog`.2ɖf{K }j IQ)-d,#%clhNۍ6\eZrgrϚt"e! Djjozk0 g؎cTaT[b:|e}tJ>9EQ N18J žQU˼u]7.`W:&7owB1e9M]O]QV*]4cV52M~@*4t9'lV3UQ <.o$a4{`u aHBSѬmp>Z8"Vv{cln 4Skp<\AI5zXAl$._Y2>n07r%/{=^qaOG`F2x㏪^~:u;a?ۣAGeu;'(K:&|2sL;xHP-Dpi|@Bv){/K_%8#;`zqrYy $ 0`M/uz)4R҆(iInҶ 5a 84Mن`9(?%7ˎY 4p\!g`>iTwm0p111@ϧl}QVS"jh4Kz/`U)-8"DK˖rut|Jv 6ZCȩ,#}]|#`NB- qpK^n(+w͛:2y:~K\sh^ %$Kw^*[_Jaӆ:RdDbGHEolNA WB7t!:ZrB,Πmŝ;ܝr-"rir`)z@HQI{6Z\Da?*,jAյq%!;6E硎gg/ONc~I{e7BZGx(e\\dnoTǧs&aQELX ښB϶Dt߼u)@2ha8c jP+ U=G]>2OVi]K{Ͷ\bc1OIg -Q7 qZu#%IĂS^J[ +ށc@CHe{bSx3*cY2w4eM;NJtۂH|3Gxg91W< oؙ7):*)M\5l7y O5Fqk+q"h3W~aFdt^MhR4 CW}?Je.Lр No]YSJ?R.qoOeC_.݃ET z??ՌzgLDK%tiU: zʪ8n)zkKQ$3@w~kONe|87V  dr6yJt6S,`>+9O:_ @wE Ė+TSE*B;( zπ,i~k'of_b x*nCˤ@wɽKeqE'^u΂xWg; 39yn>~ӧQyt.]vǣ~J0f?+R`s6~3օEQ#2 㤸wrVpiK/<;cl4,Ivۋ؀bjc~t,'!}Qέ @}0\LLe, 9J=Arˋ-μ3TY"@aފ¶QDfP HqF)"Rn7"G߬tZxѮ^(;(? ،nKy=F:Ǵ*2jlj`[";&&n\[;Ȇǽ,e* ),VR. 9resDW{fu>CD\>3GiᢓɈQ6N{zF xu'b3aiPIzMzYXcivSO1[ 94 R]%`zۊ#S%5ASMk f"J`R5`S5e;'dud_ٽ_OCF{I6rÊWV"_MpR.F%f/h]O.:NiﺓXٳPT"fјaS x%YTClVSzr&90- †8E t4R7~3-*2ZUqѓ}w3v&TOܪK)6Tsc 7Vy//0pJ+۴ojO:$)Pz"ƞbbzK_`28wwtsJ>jIER6aꛩ(E`=wf34c5=Y| 9wiAW"B~7L Ub89(D :͖o,"uΥ>U͈cbx;rRHgr"xqKC;q0/{ZȉEPuu ;gHpn.+$؋7 lǻT9T Hߊ视(4>˥&46@n9.Yq(N^b/ʹȏ mRRxxd =c i1k(O* 7tCd?ЩSX}'L^:!Yt{Mܰ14DΊ0;K 2f ] ; 2&~8,j#BOYi@2``HP2:ca׌*ĶOY0T_.rv4~=IUU!JԳJi19븰gdV(o䊡F~4-1vI663ɐqedIe4UIl/#mKnkH(>̫Fno<omƂvd̾f~DvtE_SE 8R,=ތ&&$7R[mRwsLϦ&S*TLDm)Jū/ wɉ٪XYLd=ǦA CztyoB&~I*~6=?FwFFA4꫖TxͲwch 7$d5/Ɯe>tg]kp1W?ڢQoȳ[wN11U/n%ci 6V mK@k`  pS2P`&駾K-/Ie_ErFx(}KTa1x"Ǎ8kiL bC> ; Hrlo/h"aDqnq׶jR^`yZ0ԚM=$NJ̻^K.ALEMU1: ̰E<uוI*2_=NM'܈2Zܤ%OԸ*jgRw(*C2xoy}%ץk%Dfl]1GS R+ _chhRL.V00l:omV l@o&ƘkwvxXtkvXUTO;ѿ;mŵȩcᙋ48in ?C+UUQ^ӥ:yěʻ hs1 .u *?áڂq؈jULYx6Ԇ15^{d׀RLyΠR8o;^S6ʘ_{q~x,;a =8)M,\ˆ 'mP+:@=3LzB%oH̨FE;zv3_s/ޕ{l"Bk-OmkglH=$uʏ5gy&M5di5VqcBsc:=ތQuɦmʛ/s@.ll}L1&B$7#%"JX"C+}lCzL26ww"{Vum݇#@L9)Ki/qÄpiPu ;- P .yPhs@X> :]G mVIsF-ٮ H~ b6#L;d}ݹ`2sD^IK9ܚXk)*b,a鵹) v{mle2$5Z}Zmh7-x썦SXUqQol jFJՕ~wso1aّA4XY4o W/KUJ3^I)ri{rJNA9/3n@+A9)^pމO^(( sE[;uitr cV"K_^;6I.٥9[x EAv {}+?rfˁE蘆`p^~skcc0G' u*H`n!x޶5/7n#8:sREEao3 Mb [SL Fw8XOƻ`qs:#(8bAzL=X*@eM]),Ȕ_~駼}KlnAZ0Ebc^7HOx>jkeoX>ވ2v Yn{VBЇ߶:k6ŋG4֠:i rmMMBk_޶vk(a4:Ի'/Ƴ#D)BȝHl'nro4 <ư^,nNB'k뙟ģ䦅&]V 3";*9/O5V+IbTԨV9j}lxLq'Q}Ts *(mOx8)bu؉uJ_ŗ_}f_m O?i1xwkEտtİ~:a d}-M#T~n*`6!PS#]kᴌuVs+F(!jjz v2c`'bIQf]6nP_n!pgj{Ww(6ZpD8̶$jBXˌ;Xcݝ;7&e-*ۖmNY4&SkqП]._r2,yR[dU.E="+mZY)y <4XsCKR+ཐF; 0럠++:4ZfvD6e"p"Wg}gwR^ʸɪWn1Iީ7?amF_e 6 >ؕ٣|I35k6蔚Fb]V9 'ERyfjBw<ɺGqB? /fERxZFeѳgzVZv ]ɛ*I,mO 9Э+NB g cUc B1 D^$ _UCS-[ѵL#[_G>}?p2k?/>{,/_yeU?/̨˓|wo.T-cL튌H3j$GEU`3ܾ#ݡ?z*Nn,?4HD LO  )L2|0Iq2uc4N䘝Oias,0l)-6# }Ӵڿ27ÛǛX1l9'-.7fn*"Wɤѻ@ u3#2]Գ}vk^ &eUn>l}4bBاK L7ٰOJpSNRxT<#nkq)nXA=ԅQxW)59͑gւ􆱒&i)3$ayQzTIp-L<nǩiӅQY.(跷k"34/cTҞt"%NgA[=iFFsl#2!u>%wb#Yҫo%o-6+f N" N v T2k*6}?ض쌚W\BԆjUA \Bh"^dz/ PnL@z02)D^=SQumkǑ2 xlgd}K7/}n801og;4ߺ`ACqcB Ts bOdLG8JV9εwff;HZ4t8D (h1{;r8xkwG2Qd1(B:i8_ مk~66 W+SldeǤ- ioDiVW]|Y Ex_VWrU,=MɄV{8Sp\D( ]Ts ,0ŅN- ]ˍxDfx`}%|+Yv*ZJOXޫD'4St D7 dhdGX}?.#(rB@矢a!SG'IR+%}*?xfq]z}k\D3jݻ1S)DQNg̅jht@^ {b:XÆ'03! ϛ 9M6Ќزe%hm2\fSzSM}/4 Z( f@0lF6+V&lеsTp.}vـ EkdưPE:cnu$.St&Q9̈ҵJ_vl()rd݉=oj7[#Xx'Z{T!@ubXH@L&%s8j+10e~1$1ZEf;/tAmzW6ɩx4n1#YZ<ӵX“]t6 i@CcDK'pR@Pqitd<8ٺsJtt Ý 7ZqJosX\ųZ]W0 U@,S$_qe,CPzt}k! AX=z YeV 2u ݂Ji Z$ucSF0T]7pW㤴ig41X-J巷#? 1%h ڨT%1n]k|cOZYCv'1uގ,O.`B"yr>LZ4_x'\tJi )A!4>袯z*Fܑ|KZ[[n!p´d?t0rV]V8hiaQLE>'-؀,%uƬA].G`ʡ}Km[:E!Jg:s5'$mU 5SZ+.T14,Ø(9lqmiӎ\wX akihI3\WY3GG]V/H7,S! )hΕMW `$n%WY1ĕTaYX%aӤ~eHBII@9504DO:cKhzvpRo7?Ň5:sxHo]!aZ}JQlύdLJ`qF *2TZ\b]XT~T$d*RR}aK'9EkO%67 bYp;Nbe/ 딖(msۡov&>F> y20,94iU_/TK ӌ ¾/o߸WAiIŢl[U[ߺ%WFr!hW(`;?!L.ЕWS eZ@:GE3PV$ E mzf?*[ý+K'뇺zY2C gnԈx#H#`F؀Uu mSmEp4pvguslD;˩59D#`{ߝlHR;~3{J3GQ)l0,LՅ AL8>2:aA;F ywБ4D0N ;'볷VCX?e-L35nW:} 0ch-uI5xMw!+􇾩9DLfv9x]ގ<JWaա$&)I~A1l@Ro1iA Djڈ ݚ|;sL3PGWt ww7`7qߔwf>o-%טG^>cj׵p-%=5aeZk>]XIXp$QBc}6&]7u&ROF+3Jcv ~{d cG`y"Q0T:"%a@AIFZh/V'ż8+QoqMmeOȪti >T񽷷C1JD5AOn`(+2Gd5g?t󃧝w_IuDJvh?C079>h=iI#BAa:RщO7Kb^ϿtQ=o#O5sw$ʪ:1Q^5)ݳy<̷{UV)l#pT 1q6fEm2uV\Kz3R]sw@d;NH{738X- x 9iBl`8Y$e`P{F9SҌUGI]lW꠫=sTaJۮQ|K'iY6TNS kv!sNA`-_!]R)B:gԭ][u;HxS693%o_9`:RS4Hbo(B1Єݳ).Ef)O.;$K 3E]faN]睅p&bޮc=CSz6qimcI.q*=(=ٯO\D`we~r>UǺ⇈)r mGm _ x*0[n7$s^qHSQf쵥.3g0<1`lx;G[n/l]u^jok+J kIkVԃ-xrUmF5>6fhs-A9-;t{Y :ɔ`# E%'R)zJs§J88D9|On<#W]mQ>':w?/xGgǏftWDx›AȻdhT bOo߃=ړB;sZoL'^Z = 9f,)9@?o*QO(ӽ1.pJv*~ٶ7F먬PEwď} cแA9ZC?K5z3?JX=M@%*ǥ^>8ҹkldp^zeK}IgG\u1te/$Աi85w|8p^:Iœ/С-Qy~`/Hd#qe]c ӧ#/sP ]Fj=/\L<'S N%ÝIçYTAQs-z@\$Hv`ҷ"(7#*Y^瞭Y;FY#qEfu zrjf-,t|U_1F/U9gC9U87eH ^̲FBڧ R.&gPN~OPht\p(XKk;[Ga !1ap&SW[9=ܩk*!x<%o%:RZ$9$lc%#Nou8J!K1wg$iNv\_G;bSnPK"e='<(4Xpeoo`u_r=wt>OVC8K;=r`pDZpUc{Qٌݿ!;2$m^7Y>,ؑK_ B: _ 57r5DFx@ptptd`_2 VZ3C:0cxT H3iA #36s/JdO}LH]t5+; N YOXI`cb7Aj+. !y\@5CAmUxy6&̞Ccœ7:wy5o{ l3Iڦf;U9Ѭgj+GVajbxPC~ yRs7s c"wA6m9*gZنMHn 䦂.s ǻv0&d,+ 0S{`')Gip0!.PJO-zX3,ԗH=+/.}VP8iRo*h;tLl3`=Њcc(ќawoku;!ۇ[ۇ_/c7/bz0bJ(ak~5s->h_'[y<ְSVhZNd ;6f`CDNt^?CӲO2 ]T彧Eydp_y%歰;[{ºY%BUImRE14DKOJO4[[v~\7xF WJ}?H' ?|oE=F#eOϞݖS^n ׅ{n<ﬓB$d%*ƬgF_W AĢ(*k4o]w~I183usw_7ka[=qJfmYz"f pAHz^F~q*Ե?r|5jN 5TPIA7|+1?p(j5mDvxDUXk%x<-ĕX 3/fM-.^1%MC}u;6FSU,_ƣzʏ[ҿWt㦞6_=}EV̙ʇQw;MML&NF?tZBn!:Rч\@^&nvYޗrfՅ~:Ymve$ltXVQ E"pz[%I=[9v=J`珶tj<TG C˛$0ACph_Ɍ޻){vB7I{8{)xb8]]mVZ.tpcU,%s`&* 3=dtF3Xz9Y\X7B =QaOְ uidR@Lע nqsY4{lYCp \⌭z00VG?.1 l13!C׼5)Lt@oqୌzPKTQQZk)setuptools/_vendor/packaging/__about__.pyMR0 +De2^Z(CaY Ic[^Wv2sы;x)@A>j:{G<"0)rm֝\/kZ9[=4mӾn9-3z~ڌyx- <.;Hy4dY m5x7RCQ)ivA_3Qq=}PɲlIh6F_WJ1busB&ctIDn un^<]Go# kqU*99 1an\D!Q>2~%c2}Ѡ*J}m>9Mg&tβKݷϼ!Zr?;R;LnN**lZB8wr|P=[PKTQQeD2(setuptools/_vendor/packaging/__init__.pyMMk0 l}}0(t2qVB$xɯ>=PB]"vB: ($^G氟jAġsT Tv4p@}u- ĄYg<ȑzhُCbS&AcȢ`]R43]a ?V1ICet`1^tE4hA,E.'+ &\ PRwOBE^cU.[ NySj_XYmB- X(n PKTQQJzBh'setuptools/_vendor/packaging/_compat.pyuSQk0~ׯ8xx/#ABJ Tɒ+Iftzu>}wpjh:@ :]@hVݦ:i4¼A*}\9lcf۬:Ƭ1>aq^m,iz w9ٴzΨ#O*yX]@ 7\XB+[#WoR~}YL Tm-ZJ9\˒=t m}9,Rf{/YG)0x$]YDS:9*SW!K%>,LCYgKmoEQ29oM&, HIS4yK'-2Jhf"HYPS{ EU4u*]f4#R;/`T;TIQ *+J?ڹ|rŘVОsJrТ!τdazoa4R 8pg#EzQ:RIՊ㩱&yLre9?PKTQQ]מ+setuptools/_vendor/packaging/_structures.pyj0@!c.)B. *J@cgqC8Bu%F?a+'ԠUcInࡐ1w]X輲&&i:q|M&d眵cs Ye^jv]h$I*GAHK* j]XG WP$j"(2 LLUAk=LMr[0pSށsqB Ǐa<ށ \+gنUU"aiEs*ZƿHg{g&x&BU*HB܋~ß̺bʓk˺4]9fwrG΁׮k#/ }b~[K5dkҝ+ >PKTQQn_'setuptools/_vendor/packaging/_typing.pyuT]H|_h#@a_ǣ5QÎ}gl,4]]]U=UU}tzֱvC' QGk(= <~w0iEI&v 6Pt S c}S.5;gLԛhlWnJyg Oܳm;.;\\jk:|t$0]'h(nt&N<(V'A\TtbE U%;z׉,bПIRVubj\9("= L}##$^᭓V>PQ)1{ʜNIl G{+%iZd-MC #.Bɺ,E뒬zn$H [X3)ɪ*E˂>nn?oJ=Οn;Լ~|R&ְi3m$Byߪ*v;;TbRH) =DAZj>BRYi$C@;$іli<-קNoT/(0W<~WeRHaD2~؟ m+:ya'X~v!ۮjk-Xen!Uxo'6~O.n+g5̫rhy*op.Md{ьU&o闬^EWmn--Bx˹VPKTQQd{ %%'setuptools/_vendor/packaging/markers.pyks۸~"09V8NڛDQr۵O[%HbB<:o.^(IsW}H`_X,u&2EMsgsVH u`TkF*&6zt?l@n/zer< X(7W?[\1OONή&a畦 VrU\lޒ 22g# V,Io)鲮jҔd[b~Ev`RW(h` ܻOeN+`r+{dU]V 3HmIA rlyJqWLy%DV ꪢ(~o&/&x(Wr@~➊ŀ[\)L4qu*)!S$Eʂjij[2i!#vϋIoj@d2#PWvd@N;g 7{ QRՆA8;#QCb; ois6%fn|@'ҹ12r)Vml@nA^0 7"S7⿣|fl'2ɋIq ^lXQ !!`4)ka TJpnh^\Cq'MA%K{@j#׼px9\J˲cmX5PMmJU!8`i dqVjC ZJ|BR|5, k0`0 AC1zxL<Ư zMZiit'@J4 U`t-swr։9{=?aT?u:/?+_ߜN"w3Tud;6@ZHCh4rF%{ o 9 : EǹYO/! 4:Atx̭i=[Սy يη H8mC8Žjr]U֐8U(jH00;]hZuv ۭnGw0бJ!*{r]P$2հqtFɊUQ5=c7˫ F#ؠ/>vO3΁w&9r)Ya1877*a0LݛS+>}_K\_A\O#4j;jP/ckBW:O/Ɨ3-tԏL2{TNY~\zLM999_r C'"qD48 yLdqrkpQf有9Ka;4IUL" K)$e UaBue!+Z̙y^06!w)R7R`d&7s( /NՒF {Z@)+dӊ"<,Q`g• mdP`$ghD^;ukj&i04zfאʊaYjޠU4!I'#ϊHi#D}8-4uJ+jGCt4jf3!W`KIv2{kb-? h0,Y@ZfI^Q0(fgpa_+7`ENlWefR r R 6Ʀ9^[x̑`'sjo-Lr4'\98 prwmc"IRDGr6^SsT昙4Q} Ju`b@3Ί^@5gvИIl5k"~SՎSlm(޻T#zvJAanw>5 1ㅥoeݶf]23 }t ء+l? uoyIh$ ۳'45BO%,Y(Tj-bc(}BZ!Z>*a[wmd! @6ӼM[4ш-{bAjQ~ Ƙsl@.o kdYxhhGYT]嘅~$C~ %߉n[XT>MOu$ƧpOsPꧬ@iֻg@==XG#.m>+hXT [8vh@xӃicA_^08fj7"-~{6r2*Hnko4Wm_V yGQuAj{ܾYt4>Ne ]W heG[k]JjJxxWXg;2؋ӴP! Con7$^$nx/H7tv2h{(aGӾ.].)6jb=O/g>K;$~WC=L[~T6' n͂2?*D^]NJԘ^(Cxń9<+'Pg 8*;*MwN}'D, ="?1/L t^?~jsJob-MxiוbatjeʮOىs.B;f&n֑)E$*V/!Q!aR,vZȼM(,3)_M΄O[R`=\i}o`wf]PKTQQiS05,setuptools/_vendor/packaging/requirements.pyWms6_Bs續̤$9mNr`R$ v|m=H^/".d M3FT4#Ya` q")%,##i;UȠߧ9jQsD 2"oW2bkc'Hga{S ]JcPoiŜ>Ū#q#Ehnyuq>q.? Т0 2O(=.D"ն =ڦRzN>C|(3:cE:\ 7n 0IB{f .ʸDp]v6n,w*0zT=6GΣ1xu_9)_U!s:+ N^lNĶM[Vׄ<)Fk(I%atxCƀ Q1ru@/ $Am/]"4nS02`RzO%=ƾa Nd@s;v5Ý{<`Kɱ}Jա}[IDD>PyCnk΀/hetT!b+'X-4k3'P>=pEe`sFeK¶XUű'Xu_ a`oc}#L UK?3Ziw=]yiPrncYHG_}ÿ}//LT}#;W,Ȋ $߮{xދ ov#s4ǖeZa}ݗ8T%4^-cA,FT:>"W>`ߨغy,ީ*;9piy#AtzRۤR ~:&|5!٪3}nz@('c:Y}mjzw>4`K<2AR+ߴ2mrˠt&snBYW^;ݒl$EO/C\h0|`jytrH Bt_tN^/Tg̗,rp@#z=&GiX,a`h:ze:T3+}Xӯ/<Fُ*(> 5VIZY1uJ551P!rž1{8H@T^'(%V1X@?](lL˂L9S+e4W#Ah2gI5NP5kL"][C޶j`62fDE\J򆡨 V3#@>MbUx4X`< +U fkr/N6߈EY-q0|JU(+!1_̀zBTXSvMbج$Cs s\&$Dΐu:߁7}fe q zO+W>m /ѩmZpHC Ϸh4bZr61kgSU[Sm&`ac0 ГX ϣ8vT1,OUZX6V Mz ArZ2u-D09ɼ2ES 0obl04>}&֡ӝƀ8 ' @gnB줬C}݂stB3'i;f G%X34jz qW|>9^,uy0E͒5u1Ŋc W, 4 qErh!AЈM` FG<8*F'?f="D7Ħ?}G ~9=}}4AG#0=:5ݣǰBƭWO\UvCj0-ڇ6ONo~NyZqv l{yŔ 7B4k5|T"ѹ0\SJޖy0|%Y6];r0j)UgJug4i ϣ#;=WܭN0+M5p3QU,SFs&5&WS{\:)Xb qzceƙkts6ۂ^\|p4.Ud:͒OY67-E KKty_S˭6UpK̨`qrZ`*Zm>'ుGMޯ>mɰس\q@//"ahKqP9,IR]0.y5/$$ֱOL0(w{H`|EgH ڣƉ*IU:pyNV6_w6?_Aբ:Mϻ9أz?tp.>mcK0Lob_T@*Sv6DJ[ U PsY }S#ƥM JZl'O+ wXSNI5bLBBGeC"4$B.p݃OF }2@p?7w{-NޣoOY|E!$:c@k 5eNiVqMQvB,U9VUy8~Pzx8鍿LԑpL>˹lYU%|Y9pJU1yf\iKeT8|{h#ʙ+ Ec$t+ r[,ʞkcRcWR+{<uِ‚Ž"yVy{8fo\M u>꤬+{Heo`K7OpբNlz:a99I/cG|=@:v">~{5BGޡA5g*zuWs(1/-f{b tZ^x7:E)ŹL 2S/g,x8F㻽g:2-ABcx tR*_۟\AzhQH )DWW/s͑umSrĖ7 ۃ2a;>/R`"(UI:THK1O1SY-L % xYJ\3I^(lԹ\ Kxnm?)b#R+'i򩳴][~ 2`ϣ#s/D Tlu͗Cd2 $̉xKdi- _P<$5DKHo~XaG`m~xWߚՂ;m=I1iC{Y ]JgsUZҮ 3SBZ@_bOnc4,[DFBntˤ h$5 z%HnXe ?7C&H-KnvD0&q@5eTݰ̈́uO*ِ Jy**ѓetR]C9!n(FK9|GmvmUw>M A6sKնs5^>+7:>AQ z^GM$9G7wM{)RU$[:AC"%Ŵ}GxwLӗ<:3!ksHGC><Tx C$lT^j;B9Eh1[B($a% .֏_n'Jlzk5U/RkVXH Qmx(Ubg!`:0IO={] FU J7m&Y̑K1L}8. 1Tp 0[7#i׆W2=WtVܲ,6B['BC/᡽}?z)Igġ#=, Ja(Tp2s|#6GdX|pډ%=>Q9+s)ȨEFow,Q(|hްg$%Yk pRm`yVI$`:9p! ɋH%i DrSQ Y=H5jx0JX+ hsX)WAP9OS t\sded,a5x$e$Ok"ׄQ@V}L A7"k.-O&w%lb0މV']sNMJ_7$X{"30mRܜ~:0\ë#VE2PggUx=2h$e w T#̗cmUxt&ZgEFmz\7c%dKfhjoM@]m ..5hlB{~ ڟa+O塛_h2NU08,NazmpXxĴ}VAMU^LB&2TvYʔRZ/Z߁_[O0%WaIppH+;'rNBmWL]=wWe7ſce1.wL&]Y,ҏ=%-ոȜlG .C07ۈ (H{Ý!]x8NԜ5s!~% }g\5PFNd=%0`*F%S:KJa7Wv}/Y ʳ=eUizK^g7&rK qJU#uK '<)uZQIDo.*]ib/Ugm 24SJUDgѼ(.4 o#ᏹh^(y!GV7Cj|ɽAsfK-]5'%5+X_#N-zO+?:iY͊ 2ism:_9NEjW_W|eh6~CN y5 qț|\bxJ-iQ+)?uԷ3i*]y]iQaUC;`]kQll2/ k 㰳0G'gÄeiZp@A.<*lit"dAXxQ;,]0םEˢ2 M4.~EY`S( Áh,`XQf+s =xxxFx˂As62f 9KRkzmu% ,,ܼN0;6cB$pl%3y2 @Y(EVEuʵ~L ۵%<vbk9?oyt|/GVOB8M6=/a;LBѩқaȎs sN;g2L| yQ~Li|*i"fPO;W > - 8rQ&jN>p;oԍ$R┼ A#}/lؤei g@; <^uQp@h::w5L=Xu7y!{^sofϡ_t, z/C4]Tb긲 {~sRӰ H_ۡ3sاjK@Od3<$P2)PhtKx ȃRF׃,B{Lb}夕s8zśMҥ= w,mbɎJXF]hYDF[θ>!Lմ,RB\tݫpuf ~ *it@t5ۥ,|D=/bNb.3Bvqڽx!@xC܌1@abᰗlaqe4kg.m%ì<I›Žo a@Ge^xGAӀ ^\xB-FٷdJiS_IhW/9Z&kdW_XE'NKG9m3" ۂ(s I9kP,"/#T|wP:"Vlfp& igQ% ctфD:M*U{`a1huԝ#;r%}"~!GO#i_xq%/ :Fn| ==݆CS(,\!PWXpZic|:fˆD@&H`&I^P4 zA"НKY’ʢ,| .Nt%T}ZWWX'8G_L1K(;_mC^,QdEI^,HIt4, *I ]J ĩ0|)ӎP5@P!&>heX5'|/Q]KԩX9}Q}!& z0V5n5%KPmoa ^ӥJGXcR2wa(ˊ kezҧ~HǏ㤠ɺ8dgdA(c"tEk_XQ=\*)L|are0_D/@a8@9q7\'{6>{c`$ȰzU@ n^J|G8Gx(Fת:UhS 0^!{2Ƶ}"l(tPw]YHL{L)W*OJ%J):%'h'>爦/j#u^U[mM`+ )0sSM>D]qGy ƅpJWЅG,z^V鄁ۿHF ߤGet2>CS7*umG%1h@ݓ̳ R)lUo!F-޸wACLfڄ2/#%(Az{gQs}7FH\u2]s@N]jκJY&rٮaWXNDXM緙5I)FZgC#X0?TҤ,4^**(CP%xjknR܍[fTXwmmԂ?sZ4J n .-XXc-Qi7й8R5 pj68XlkjJ@y>* Rٛb X*wѪz'aX_UΨM72S[q[ihQHr+yʤꦴaF{mvc T;nr#J ` @.JhHPӓ|2 ʯDm.kRӐȍH  աi 4Ю|tUO>DSV8Si:Òp'XTgJEB/nsAܣVGIJ@]~š؝= PYڠ,NxB֎Mt &eSF-!Fe.8TJk^MP4sk[&wt~W&Z8iST |T= a-h9*pu h#ɤArֱ(<SUE U;U}[/bliL=A]kf=)bJ[x r^;`k{00^!dU0R9L Xي r Gf%kʾcMy [bgik?h2ݞ,?Q &hUٰjxwz2ݻW\&Wb$ V@_mz=9$[+E^qqxÐQT3+{` ?=FO>l}Y7Pbg/h^^{.on-υV*N;V O-N5 ibO %Rk8 sKn_LhiQ:u4ȁD gҶ {0KfJr6/*=y2j_AX2+p͔:fYm@I삢*|F9Y8 >:BGgÞpA;ԗ8ITb)`X9.e߃6PdD'#?Y@ftxƦ4=ZQ1ƫE']u[8* :ayNͶj "BWtqH=l"ZwNx (7 ~[jRgUԐq"iђ.}h=!n?ޑ{gg!<v{(o;;'޹;p9gg}|\=w[;AܽWGIS{?i8<>;w}x `rnvFbs}<XJ+{(jY!%|-~q&=4@r\=hK~(L \a$?Xv6 %LJet7tIՀZEtDz)j/c~./dEګ[(㰢$O.3nl٤^ݓR*T.N ڨ5@ӜW `@'v]#*[y16%UG:jBpTjZ"$ᓆIbԑ)dcF% H :[5 l_()߳ˬlbu065]wS3Mk/gu{/U׬?g45?Q./[̧B9DԽi}Лx8X4aLpo s衄~4ޚmy?:`dm}exM>ˮiUY  [YNVGYkDkʔcQ0ڑԍ~zC#g02zҶݾE|$KÌWNVCg LbL5/hEAbb0\nck݉mk :B`혣Jg4N;O/QEVU8U^ScVmjt8f{zvޠϫ^mZ<\{шg ?%ʴmIsa\)5eS;%^[ϴ azs:(eBEoN˗i)(9WG(_9mǡ_'K d&Zww­0 8:i` ƛj~S4\(6Nt?PKTQQJf`%setuptools/_vendor/packaging/utils.pyTk0 fD} ta+ !`t(9fKFccN4mؖ{-\tj^@!R3e. ?|xJI7F( .o; [D8Oo-kZ)&+eUzKr!UeUErQZ$ymkIFŤyC&V C SmƠI\tէ>jj7r D~d#|QHEUQOq}ٯ's%QlKo> HR.h\42g(~A9Hx{N# ra㇉Bٔ6-rv⏈cG{VV5(aH>"nEͩZ.a]Yf F/Tn$$}vDz, y&5ʴh-OoA8 4FH\(-i7Vov/: =7)VOsރ .x盤m8GhT\[Cqҥo "]pOC*Y= Yhmt]/ִQ_Tdmlڸ Vp#hBc!tmbmQ)k4էWڟ) ) CIY)cOѻy vr W/"$1>ZMh?n#ƒ^@y~GwXw8PKTQQPzn<'setuptools/_vendor/packaging/version.py[ms6_7Y;ݵizOKFɨ)(J~ $HJN,p boϥf3 %OY*i1el*++Zh'ʐ;̳{ϦDKGS!ыC06 (r-\o+"`SQrh0SlY.c&EJ':OKXdVB,)QЁi*I& yV J (֥Z&S;GLf\رR^ BfsG?'Gc1,.0)`#F`n z.P%@Z}Ae&ޮ [ mآپz(qĶvwj#/zn(Qigztɩ?}?jyjp<neTV(̘ŢI-d5K' ZtJWKjmEv::%| =ݤ0#әr dE0b4} G%O۷o@96M񅘖g LQTp#T\WS460 TI>4Xao{lV5PA`V(‘L̘y=92&$P)^r~x|+hMpy""8Rgd~vrx¾fzLm#{Rny[fP0#UgBU=5"\V;,.&2~/6C, hzH:  IO}+GxD-x9DP */ YU2OL{h>ló!fDoU"kM>5 wO H秅:Ki?x7bQ?8쒠̕@{)aA속3}töC ^]D)Oȳ ^&zļbI0~_Jqm/HFyTQ`،$~zץ&1v,a',mOT2~~W\C$QJ0N ($J-{g(wo]MIlJ&,6|p%}4~[pf^ueSRaBK5%*DNNy)*l"@hM4j ܸ[-)g3p, 7P$8z,n2'DĞw;t/cJX߰ iNdjW`6&f3/$L]K/M42O c)H 8d$TCtXY}[)m7~smurX-dT+.0uTБܱchdH3>ͩ:jO.TNW+# -SՃ5o;ͯuiWG+Ya핡"QSYcu繙5V9,^_mXۯ2ITŰ"w<͢OlrF^`1epkZmLh1pb/;yJw;{~>j`j`Nc}d lb+Âx} -7}tkqz07F%7ocE2gqO:mQtn;8u}Yo]:O`Sܨݳ']'\g p5@kuQEE1S~j5P--]jЬ/lLsqݎV^S0^aãxq+Do_<8P0h<~5V usM:\ ɜRZ|vg\Aj)8ذ+\VI$8a#UiZvWxTC,cdv^ .'"y}0*_C{"\AَefS!H <w0b0@#%DzUC"#iͺ`v\G8;0(I8!o i WӜ#5{{GQTLlLD`lR+ȃg+o6Odd vl"qas0dXOqu,C/4eM,}{./ @/*I~z&r 5zm5zBDQN|~Lߤ& f=Sȕ|gR@hNbhqW@AUsck‚;2~Jݛ|B|jpOS!.R2-kp!8X#EiwOh{ņd-TWNlnp;1f=LGRኾU;+j ~:p[6!rSnktcH!v٧=V;%t0ObrO'mL'x E+{̵lR@FTP2|Ok1i 9,{ @R$~ReY+$Ϻ2)[R2 ks(.X3SH*b~=uzEe20AHڊ''.v iϱ=2LlapvG";_;l2Jx.?fa;RcL3MM 1if#3&$s.){\ 7t vIOl'~ђGϤvxӱIK3}s^:W&vdO pl3CJ]oT{n:Mr!=K\Xs>:ɸNOᣳKJwdc:#CٹwG [ 7@T fxRY=za&y~ 6$$?.=NZ)׍)չ0)L%?iK?sn͂ MWUHWb?/Re %D/K"zhogϩ 47bG$"$˥.$1W࿆edoGjDy-8hh{}#l' q|k`}qEPKTQQf[w2DGsetuptools/command/bdist_egg.pym6-j#>&im֯]B%MvGqMJZVyk dS؟Ujht{k^ "VƀJY])}$m]%wE,7X< $$KP`]J\M.̏}VTL񣟰%ccє_ɭż}rQ?\^|koEqxܧ.T@^Ԉ> 0iaXI̪7_9,6^U*@<཈$\To#Al|Xpdʹk8D-F/ie+9n8 U]wi$2~6eJKwL?:x8z\+`Ո3KIh6m8q0<ghx\c|JZnF8} Kp'!K@JNO?ppj9n$)'-3MzY I jS,sHضb<s,sp50HW~CjT(sGZ)].,и <:?QW3_y+Nr~*=%;Dۦ t0⟲ I x@ ޷,-K7Gr 8o.jCK|Ey}QTY<ȚtxLSSKi =lyd{\[t~&![._.G  H*ŏ޺EC =sr"Qe5鹀=}98)N:Bf%w#Gfr -e{;EJ{YWo=~y{ݻ7o]r"*_>P =Iy{LCgpahRh8.Bb`O0l s矘W<4yFee-e( ,+lnnQ?T;fҗwd]7j:Vg0("54 dZcdɫw#<7_tRk1Ѯ>C5N{ s-0x ZG4]xS骉"64EbF1" Cs+% S?fԓⲥr֛ -G[F1|j6QZԡ³_!Հvд7JTC.8!`Oo,ȶ5PD+S۬nѡol-R7uU@ª',B#&a!~cX Ɖ*OCUF6۠:,UQda,l[a6Dt:ЅxFBǁG/,V%tpN QbKY] Cl!x%\,Hs:!'FsEUuP\bdu<s__NxɒCz K DxŻqY 7?p9<{P2&+%3ӄM6BIM-[rn.˕O}pg7'?ʙpJL4[?y1GwW^lq7[6 ƧOq3}w| ;1<Eg%k_8iD`(c@OM0_T>zW+ZK\!ZZWm+#sAd'x?bɹfGL9rXd hiv(?α5 S 1{KLy4 xoC &ڃmW45F2\P[hXq-YEN&I.坮4~XV@3_b|5-_+R١?b2|X媃R=tY_&i>Qh:x . XCD?i'.JCk?6tI9a\f~LrOI>r@6|`H۶+RΑ~`[mTGa9>#YJ6lj8vƹ|chz%8F10.n5e5 'r]M& oGg3UJAl=oԩ20EԴ`.`8e]MU ׳>2Y,lFQp.)Uw!Su ֫/^1QIo9V9XS Q#r\Bzm|ԉ;u:1z[DgDpȇW檢Čɜ '_+ "9f$0^>ٿ麩T+ =ba_ƒ= ~Pwq#IBߏ&\?9tnv4|@aK}Onkk=֎j\+t]WB{J)x{fN~X-5VA)zR(x_##ĩ p^=5mt x֊;L|e=3@Q!G=wn¡"TQUz4}^~ZۑV=ugˊ8/<Q^%o@ qGzU@ d8^ .3}ՔC$hD=RIڵHZ`0m;v#1k6 7HwسN\1h .'ybqu[e_l0(K mbĜ-fZ}Ao9?e_*6qAvЍ OD/|#&HȉΉKg_Me odi%.7ȃˣNQw%1WVc|eq3h01yquxt\DAيtVP=x*fooXIA!ɋ~~"Gz m%FOcm٨,nÉ4K1gu}dY?PKTQQr|asetuptools/command/bdist_rpm.pyRJ0S ewR[m58MB~E|w'e&m93gb&BmbP&eܕ. T4MO*FXM>&nh۶wA2c-Y 9Ю& Ƚ;^5ោlDZ3vp%m@iՄD,(|pWgR \%ЛGL66&EY(' 3P#jVD<" `v졳Q.Fn"0T{ZًޗR)Y6K:"y좛 vc 9ϏE5E 2e@O R~C_ԞlaU> ,>N>#[V`mgJ'?bAyş|ZkPKTQQX#setuptools/command/bdist_wininst.py}RN0 +^IS687đ@u;4 dk \/~CC'Ͳ}L#*dȰ`uNr1߱=00xk5kɚS֊f-uu' [pSO,GKFݮaGLɡS|))"ǻ0 {4"3x @9LwM:Ç[#6z{su{Y7pIL9BrC^)W+mN8 ErNiXř(y; |3s&sib@đ @{ تx /B1zG1xafay ~S R/T,3qDUq愉9/ CD]\]*HZ*LvBO4 A`C?%T"<12DR Fm| qO܁DG'8!ZDe=,iTIDѯB%( J[iQ!H"Q9.QDTU{[ޗrR " (*J}RcQ2PA4#5͛[ aG{"c+4ҙpq;>NJ {&hTg c;yu'iҮ$^{JUjұ.0m-6 P*̲+.>]jMH$`jf:ڲweDP5+Rcmхe k'Jtkx  nٷc%[Lz `]1|]֛A+CI{Itx?$^ޝL+'C:Zp" ,>!tN66A[[2>O\*!OQh-:cpm+d6ѝEA(竖/֝k[Ü}g.M<6Lo63&+/k,#~RJ!DN!ߖTF+Gsۑ:h~c"XDc"'v&S R]oaRsnfG uڂ^ҲZ"ma0۶uTIO~ dm%H &RYЧh<'{ `>MlwϜJ,]q!Y(N]DNpy~qac,Mjnꎟjo.Y6u7l 6≗MK<43|n7JuPHgq"%,:eNZ~7kY2Pz>RD :~y8'$ G'<#F~zZs YVPKTQQK 2setuptools/command/build_ext.pyko~FƁTCy|ܣ9zIsc+r%1HK}ds 3-mR}E7M%g2ZtMY؛O?po}zsPRd7-t+"Au \evaHbUV"Ï5oC#f@b!0l8oUdwo必EIZ> uM' kj3%5iQ˲ r0j{m{7l'{u7j:ʲ^3KG&\1_1UX]QEQW! 6Ůl_VWIٍX/)-geq{e-f1wGUJq.ؖ?&w` _ _dQ[>~x?_vw> o6v L ,-Զt+m+̖]_y}YҦ5{Z ﻲ 5Ȫka>~mhe/}b?whgY0^C*gYW7}%]d|# ۏ ^D9< r:#+-x/b0I)f34S馀]!f88RYh|DCۉ)U/VG 4p(}؋ʮ|q7\JXtهDZGBGu(WYQRRDW31Bu(6ժ|5|>Qx0Y@I .QUkHx*g 1s"{ZZ(EB*+ݓhz=6!)-7e~O%>(lyo()X#]]~}?  !n! (v2=G %Z"d-(gҪ *\{$J O5y]୔r!NwLIJm@CEĮp|D vvF3$J>nHqMZ_)CZA/P~:wV QH.WcԾ|`0I%s>:H.t uK {'>6ܓ } s @ci*"m- 8T!7F7 ԧ 4 e>B\ ,k:JO\w_s)artwd*Z:[0?x1:,$DܕHh쪬(Bv,sT%>/nFTThsU; jhSZi1a10i|hj1}>4Y "N8z=Z@2*߈/*hh c섳c6Qь% ?.!Д=:OkQT8LOߦ_A N_$ 9@yOpFXXy/v^"hR/`8j][ϧB9 9uum<11p^/+ U:i%(ghD418!R޶ |E( &B%ԗ[?i䰤gõ?4KCz+3%Db%p&rRzR5-~M'xլ]5i`_*U9(r ɻc@5z褁_BIdUz"N2R ^CU0xʜ񪃚/؏@'*D%z 0 ϠVaah?7G:M*du4;BOߏu,yb$u NqOY't-xP#TW`E5_eD-lR4⌜ 6[Lü#G<7(,XC6|G딩X@)*tCZTvXȞGtqȻ 1چ QTygprG jjU )3ֵ]PH% ? D|bA[Scʶ.uFʏJ4[}VEٯjp=yHOA/.NAK|gC}L*mM-܋!yr*xWR 7Kqc}g.㟷E$i:x%-jl<=rYu]˧ 2[cjDc 3ݭ5G}lIOOc\!5$uZ(sæ-HNC@RzMzUu}w߼qUVcIi݄dB%J#} URpI|x{g=zo'7>{z*Ŏ}9>ou4q)+u޼w^f8u }Abϻ|9,EtV.ي~͓fbң3'ϣ3Ф^ G!Hx}Ꞙkx˒*օ颾)^cx`oE%R*e]Ը{vmx<2Z zȄAB w^-ӎtqvZCt PKTQQW %setuptools/command/build_py.pykܶ CVWԯA԰ p%.{ZQ%)7i{g)jFArP{)NЋQHm~o8q'{U㧟oI݌T7nl^يӉ]x5PER(k?n ;IG9RȀk C> (MfzC1<(Ѭ{nʏ plþlbmOYtlO448Z*d{fJOrb U' fHN5kY<0HxW|zWjKWB* G:#_VK=1E:eRnfauvVx4^kWՀ3/{ N`[c:؎,Z- TJKLZ+reWWV{0KTϖ|G{Ū ! {c#`$ IAd&bdGcAIc];kָ\Co,r oXU}6 @PeӸ'֞wpbEnn?\1yGܿVamt YL"sln.-@:i;>b'b~Z[>X얎A/Ȇt TS"X'ecLўQU+V, p pEPNt:G(߃ӕQyc9xܦD*Ʃ+3h?7Ejhb֮ˎ$ɣERhHZYW$8Lj\ e rVv2P{F<4b_Ĕņ׷/:x1O p*tUb>urm/8Y4;VXqoJBScGX-X"U?2 4H>x E mwįFgq`CÇ(f`iO]R{ΊAQGԩ^|%2S8,yĩ}Ġ>|8Æon,6r͍픻wkaZ{Xa0(SAz5ʰ Y_5K͇q I Rs׊ip?: ݙs{쩏#/v(,#ihm)o{-~UE8ǃ+iv dɚ0>B3?)6>ݺ9tmٿ;lP>Q_)wY=ZN-v2Vz@(3(4WV7A~| ):ބF,6%Km}|Kɽb'+4MZnvK CGT=ł~mI(UhW&5Lȃ.Ȣ\t̀12ꧥCT@s: [`ҦUk=ME[7}ϰc+ Ĥ=8d;v&H%)rVypU$di͒Dip?^45H44Nއ uM(/'~&lL2W "ٗ/IDTiV٢iu﫧MF$']<֮fu(G_ q(ʎiQvk'Ocf vԦ{F&$/U2S.V"8lLi[`iXN]=&oOLEhfvt_kgΠH^+֦pK5Jш\{F4Q>5 ^MAg. ا3h ū@իIDx_H5X顄6KR;#b̿4B7Ֆe(_>(>곱h"66gV`l^+s!٨w-c5v9D /1@fIpLvx n@pY\o޼5ߐ4|&oۋ@оz ʅ#9.uѢ  lKO7c<[{+ P56Ŀjyb/T{ݔISbpt{` XY -ВbM/v^,;:-/Lֿڏ ԓ?ZSw8rغʽZɡ/l4Do>z\]Fx Y :M/ pnL;[b@xX=UHYt XQ 6PKTQQN msetuptools/command/develop.pyY[s~ׯ!3iM:iLzÁDHFL,ZV}InVL^#i҃歪c/&;=2>$8LV*&>.k.:th\PK wLYB8iTs;i?2z)vOFjkRa}>Wt7+z7`zFBziGi Xʆ;dC~#w$Q4,sbUolF#?zѺ$}&2bf5d|?7nT#'Z-C4Wy-lیvv1]dp@j0TtrE`[-U̻~O劵{7='UP4.ǬVD*ˁͩQ!;Qz/َjx/Y>eauL*F=]1]LByIS*ʤ0L=+tMZoHVe^Bp=.? wlݳf$kO3P3i;ۋuÆj+jOcB(0`2%3 ĻC|HX d rAu")eiu΃9oI([t 7;' y1I1 jU S|/Y40m^曅[I 0 èg^OWg-S W{Gsde$Ѯ'|0>26= GXSao_C0,FG0'V쨻8@{E>|E0*vᙓf;h.8$4*4 ¯/A͇߄3;jP8/q*QԲQ:/9u'_]L;Iiq~{-!5lx *-!r3m0눂CAv Yp Ѝ }⽙:' 9^ 1Eh,߬rfۥ i#=Wl  vg {'XG>r!㆝'wZ N[z\Cp'Y+0sutS̚X.EXIa mx@ۻ b-K%Y)%!ƀQ;|G:R>ӿlًwy:* @Cm6xZ2VZ}QBelk.A3»e%}džx|fطgo7]F *?thfԯ =- ojz^ ћbNwML\5XYt51y209A~6 _PKTQQsetuptools/command/dist_info.py}Sn0+V #P*䘅X/v 09{uPP9ԁ'{Pcc,`, ?6*Gf\5,7RC~WL1);Gjڙ!E#=/cN@\)GWQ9ô m?+Gg2hAkl e­ z>PKy*؇`4mN}sÄ|'tY,['!J}? ^|9p)٧w .d9_] wi2>MnuPKTQQHД,\Q"setuptools/command/easy_install.pyͽk{Ƶ(ݿAl'UDi|vj{[NE$wff˳_>E3knk֬FGewt}Z=ϣG/iVEf˦\foe_/fՔCߖ|WYs-]WѶ\\U7ϲ/^՗ ^/n]mzlYWUYUebѬ.JԜfdWͺʶE1(v/mqPݼ%ԄyVUW]XѣӣYg<ۦ;?c}[ Wnlnʖ닛:U6mgj2|a޾l/=z9~[饔-Zr.b_]|O)'Se\Ni[ӡfnּ[U kvvJnEZ|U=]g6-g[6U\lp@`Ьm[n۲R+(na^`U}nηm:WjU}0?FU/DUHPϏ5~B)#, `7qb|QmjA[`yU7Lv)mTP7ͶJ⪾ v$;M;>-zoM$ZHoܷ{f爭Eu h󢉪^Ul/ٵ~G n X rUZbXD۵UZM{t{;&ô#~fßf\8꿅$~Y%Լt?mk ԫlv%svs@U>W'qey {k7Y쳧ߚfvo_g>ZVnՏ`su sr{&x#(;r]!QO>;J2|bK1z. V?TPlckVw/>;|관=0bEZthejs-^sꋬm2D`_TmY 2G*Vzαܴ\Cv - RseHR g!3PuqU`^ϛ0E&@`ھeWeW}KZA㚢A gNM}8|3Twd}OK,UaJVT o;p.@9,qxbumKCƓpR޷UնϾXh,W]ejZq9m>;Dh,Uˉ6 tl- ߑCbv4KCز8ayxvvxxtdm`w'358If#iNߎ&SWcʬ6ȕ7Jؗ+$ֳ&XuMPi`6#1-.ȉ<³ۻH`&&>8 #L ūw~E^0[ -j/Sj-٢a~dXcS/-`140!]V~%&KF,O \Pw\!^Z$3>++ oCp?F_8>~3pD4Hok8,0alіc;1{<,Be< ET$ivpm^0Ex“ VKVKm`S1⸇jz"×<7W>0,p:e:afzDGTi!AVֈ C7q>M3[V[b^cW`fQjngW 4F!܅g;'LjAur]5}D2Z=eĄS م+-0ܖek&Ԉn]̸m-&82Wf ~T Wog~3xDV$ ?ƣ1=sr8yO3ɚUUn՘_0a#HNZBF]s[%, H0 .|aGm'GH@[Ynu1qٌˠkM'9|:QQxpĚB@ov@^1QsǡA{s~=x/NA+ hj'VuSUi|K'v5k,|U9]Lo2EJ2F!uaw %Rc&ЙHZz4)˼.JzdqkU}.eȇٺYϞ?X5ȦH$9BWP* |ɻtEqTT<|^aSA/ ^llCR@$z>.,uT"Z@9'`Y 6cT@8֦}-œHmE6M])CЇkR_Sn傎T%RQ- Kj$C'y YuSmnÆv$VKkx@H%Yg^̐ J-DB'[@ YkS!mF7g#=IgcGjQGKxj#4Ff-itBkhVjWphwiD"kew.|nϧ .>MoV`9װ_rm~*HgmA'+m Ԣᕆ c¼;ܠBD., UiA'jܺ 92 ,\cG5i|z"GW۪R}HđkusClT&Xk6X1"^+*kXPM0Ο<>2k myw6}LY8!բ\`3:>ljm1ٙp쒦X2Wbf䥡vR/vvMH~ *@Ti{ W4&p}?Êxa/h`[W^Yet4gdy}*/}?6O >ׯ^0IU2'M֝Q.pPRpdT <,^}"7A>0Hky/~us7 qU/\Wf yb'pV  gV߰..Y9DG.bAƣ/k eC|]٩ay~i1A?8Pm[&5*:A64A:9:WBl?Ћv gdqwܱ Ub a)͒Qգ[/&F=W%5u'-#"'S*} .|DW5:53)4A FM:Vs TK9;\5^ca d_ό!Ǝ"D谂L~]Yerd&< \ٚ ܩ?NTBJhwAonu63 PhUG;ɀuSh?+) -Wj;fowlqG/z>d)Oz+G$"S֠ bK~Wj}BXrFV!.3V-G $̞A0N0`2_9omӱFtAU(Pq8lWarS D킺0cy ;gC;fo O |J)#cEg]bM?NBGBN1.KM#[\9ͨ;+kâwqW3a4pG˶1OkdMOZ$Y<f {Ir(BU]]1z+zm$Ų/ջ}MbvD]L79EbIGf'OOYm :1t8S3z69H /]>,Ɩ3FuQ qކVcuvxYwk!@bt'D絝W+M="jF/YUCu>S{Ab`Ymn9?U-3<ʱtn2_J}4DNMo^E`ҁpPb @gccHIPbeQmqxJzr?ʡ˟>S`*ټ}r;+y=XO祎pA;Džf'pH|Mo0Hod b ӄMρe 4/ӭdwľWŦ~gDKq9:hEZO7`Q(cM檏E#%.՛qӀE l"iXZ躀-%\A߃2^zD^ g 0@Z^3;Z"YˍЗZ RoH[;BAnd:> e*/?к\\Ugr[wzJju͖2/z_B(fr= l)bvf^ҡ1;6.!;KTk?90aԞ1Ymq'įn7,Zs$89Ek+"?Są|CzviS~,Ps(1Wb"m|9W6c u IVr {IjkeWXT&RL:HyHkd`H$H# Iݧ@b{1* ]my]o{lxK}OcP"\cȭίZ:$aF& W#p*e]MGIgTK;kJڙ.N)8|}dyf=>0ЎҎt=b欲$9~tjSb;v}`߄Tg=Ba2æ3570ߟ\ **3r7YPg 7^Eɇ!-ae^٦e]Lcirζ\<ӌX[zLc"HDn eȦ)z.puС(}Yz @$W~nŞ,jEq.4 %}M~?=lO-T## o0F ^$-|6Sۈ%jV1Y&9ԥh#hXCz͡Erz*6ݑ@rd{;7ͷJ ]8?5e,Ma7vmEDvX,"nXScia{w`.`SSlL!Mk\ ‧u T=@Q*ƏxIQ}p8bof>FRJ y 0a8)Hix)ʞmc[`CaGVcNvN9I.u@jEN}iFn"zJ"1lX6 1cC#|ЎK)Qy]JI8 [kwasAUoY)(;x_vw,"s<`!XmPd;l!({F Hb;T)0AH,0{@%Y)Hct<9gN}B aaNi9f >uk?+e &Eq@6㊔0B:>$=TU(5͞P n0-h'F4"H=Q֓j]CKSi]`E=R7]诤:sM c~UvJhJI@q9t/r7 /t7)&– "qSYqGEIȐ`Ċ*t'o,\/6_$v8sYa[<2_(Xhˁ ߼%}n˺c5:+tdB?j _/k~W?^Uy8GZ_"H )NV(RwO~z7h@c>UbՈC=uO"X;)$Uc@.z(P7E:NH)yxž.aD8Y kE_`(^j{un 1x$"K􎻪A!6TP,d.d8.g+/2C(i纼; :=+!kZv==@ݸB-> x̹ia%0EG 5xSz:5hɧ'9:M}iE`^([:|zRչhZi-̢ 2l 18MtC$M%߳[^gb3u,?s` k0 &0,ϴUd&4U .̣\,r. +dd:- R!a/GY "_Vٯ:P.fL4BdwY0OZh[F)?dǛPko7ѧ1MHNtW)& !##"'~cJN@tcbiy#1D"_$LkP4BW.3@\1fnG@#!p4ՖuoWPByf4ya[/@-4gzw,v.4,12=ȑyc 4-Jl3Ɖ9,%P%s>CbL_A-%ɃmycY)A|/!bC [{Q(amSGd\ (ؗx{ğP1ͅ^Et(v<*D!}[YsQ6rx,zJ^GR֘7Yai]eAflߟALsO5dn@X +)awd@1SX<){&RGO跎\~o3<Dde|i ס"_ӷxz$u"jީ:MF~qU||t ~ mQZ?3>g^f'ZuMur~"N\kNاi:2_|L0 eYӠ89st(kvx&m ަQk`\/BNYsH ~P'G*:t08uˉbKN*#=A PUQ7HfY8 9u{Hm2rSҒuWnے kâ%8)`~`JIb̟hDÞ1849!2ȥI~ĒP3Uû1!ŠtI7tY큾 5QDvq[7JӡkXq'TB]>ձp&+.(1op^L ^vc}ڟAo Ԧ9 9$Ylk\t&z‡J)+骽`?Jbo2[1 ̏cD4:6|}# ړhB*I7Z^ht ÚQ463Ԁ-,EuLt\PQ:zT~ l Nɭ-0wq pφ6" 롻xU]*u#C98}@4  J'rbRCvR^T]R/8\9գP8)2l& ,v#4.^х uXAkeHe{toXs[̰ s񘜀C 7d}IKK kH.8;5X4|gfA9Z+- ,{,Y h1kTe{ݧ{ j͏ҺN&'a_w+b}S Ӻ?'E$Ѵ(+;u͌slyt2 n|wnkkި E&pHmjJ̹ڍ9y1_Έ*DZ811Ef]WeĎa0]SP(t̪1ѻuo$BD_839m@1R̀/4p_՗WBM|^/dJ95mo UYcfʋjúa&9Z{s >LB3UqE}! &3E`Jtӭ;Ψ~7cqT63yd(bbgn *{ۮJr3 /JH֛6slmrUL:N8Qid@qTGۑ y tVUn#M Q+xY0l3R&܌<>ox"\@nW?/AȖ3Km@ihs0>elO|$u+[!u󋧼}yM`C29f4"d;ܞA$m펫""@I+67ȝV[#{"Y㡆'ŏ|ʔO+pFoGrDՂ2>{bAYP{j׉3> :J$[#\ftneL?XƬ*![sRѝ9_7˞D8{yGf"\$P QoNM{ ~a4) E5`=zǛjw=Cy fDgqH@|N(bo! @y\5afQEo|5Ndz›dg3]1Hg8S gcJu{0:q4+UP>G {A'ʰRy")>t*APwGK~jZ R1\9^%,i FdNNKzO ~p @f`6$dO-~*6_ޕi(Ƌ&&=4CUwe5-ʂ|Nt"2=5sɽ ɵFK`eAe~A!jo=h0n8M zUB%PM*+Hݔ Ҟ? ӂtj(„oPEۡx{1&OA1uQ1Gk\,Mέ,p׭ͅNu+yEF.yy+eص|F 4or+λ;lLd+&(S~c*NWJ*%t^g,~h=*ˁXOtC} KlJ7,&JQ\/ԑ)2xq9 c\u#א/]UZ1 ߤf1uUr0r8iE5Oyf,3Ğcڦ\|/*a҃˒F;3\6C=mŠ⹉aTbE|Ml)hZ!D3;px9+}n$V% V=Q0;v6l9J\_B%WٛZ[1~ib5G %R,H-{OIcK01y'%#=C  =$\AGu35:b$/.,|8Z4yߦLƦՊl9 .[AV‚k. 7ײ:]oKgDRC= zQҊ՝33wt< DpDdiߐ>{~$Gtý *01'$):]3rTvZɐpX^$Wj @wTOd.2U(e)/II(/ӊm獀Tg7aM4n@WvwH{)V0b2v;YUXifąS\Eu!3ZLd7ˢuYhM dfr E@NA#lưnBvIĵ}Ebk/Iw9Fi^rӘ_w&Ytgτow(`g4>'vQ3D?D%LV m$t^oJ87_GMkPq'5Js`~mUa%F dPf։s2r'*롽fEsyujA1R,P(SnwR&¾`n:wW|”36 ߸@NTF'byKgNV/ď^8)h5wiCi$ׅL )>۴Rz4<|Ѷa@VV[ӟÃ݁Jx !-7.)k.7i}gQsl%2K7u }K 2lW<.֣ \pJf5|"pvZ(bWYB\0 5<Fzan>n.J[w&y7~FWÇGGjK '4iG:7~Nu?8ie?I4G F=,,SF?_Dt"½ cYu*UC-v 0{b-H~^Y&# 3#-7:fp"qvorT2{ WكT}?1!I $tg:] `Вr:M c^JAM-9?|}\|sr8yX&&m9i CB5`̶ t7=7T䣦NÙ^RƜ&C Oh^o&q2D6Z% {'5V(DͲUQ!՚>n8^(zl_qʜJ?83)\ۄ},zn|ŴKAxkhs_e3t3ݖҐ9D`̳ ܁8rb0KWtByoVT9Tf Ο~x~_fYv;Kq{1qסŦ8mJ OI9 rR}#=ژ@ȼHRlΟjE6G_f0g#VSVS|hD M E- (;?b@$Wxu$^T]l󺙟Ѝ M'$f[ (d?%ˬȹR2^GE(ha c׆<‡ZuYmKTߡ41: ֑C ^v$ׯp갩~f{D/ݧχKoln_|@2z]QSo\zb nA;6Lh2s8BEsT|WP6gL}v܆1j\tvM!^0ė{CQr8^U}ח /ެ|,`5b L,L J8ġ“Mt %ܒ@ wšZBOf 9?Jgl'a4OIK4 g^yGZ[B7[ HJgrYK"NZ|$8fGhN(X/ 17(vܤG#>Lqc"R] f $΃!qKL\!56jh3 I1X/1cD[CÁ5{_vm!b`]"hĥK;鲝ps:+D虫΋${7ddӨkD+i7tt$.L$O`hP= ^I.G1@_tl{ 9Ay%)_KqJDc MIT<4 V 6OHH"QPj!a /ҧN4 KevHD̆CTP^7UvrxSENw{En剦=t0膚yut)W dW:QTz=DJ%8 TTuܗ-TOJM#2# g]ۂ_^nQ۰aQ@}?.cO]}!ǀe}1a뤚/momwD?ZVv@Om#ܞ*õ5mT +fa=x>$C&tnL /nJJ{'u41S㕤,ۿLZc"kBcW).RnaEgdAPMEdX|@%)Wo%r;?Bq)%flgLLב'Tq6J*Ҟx[㘅zt:UD#3| hTk\Y %S+r»=QkaR'`F0isԛ֋0ކwAmQlfl]z0/}Tzdާ={JlCe?Kھ؞q"`"*kR#~l7o߿yIqד ^oɧ:8eB+Mqu$qr[CJ{c<~Juy._ͽNxMoUӧm xe<99wGΟ?#bߟϟQ 8[/2iiF{3|9^NlhZ0.tA;pŵ⌳+MT `r`wN 4;>L& [cM=7 0-:߻M5ϾxGEDY-{MyuC*@2'Y>S!1ʓߙ*ee.J G蜅gto%Xm`q+TNZ9yE(O5#oêHe^ $񪠌2YQ`|#Gpҝ!9 oeVKa.OmLc nQɅK=h0"OsutZ;P~2k梙bx4"i#W@]4+6g_G2IZwcjy4 ~#H?g$ la8UrnR#ka4EN2HD&ws̼XYpmE+dLĔ:.p)/1QuGae©ByvKD ʤÐvؖA혁"8qM>bnvUg>Z[8b/kl6ch-Ic,kUqA'Is;gԢ*y78]$fZfc ,pRai;7MCQ}>\0[R=W4tVεj?b M ay=T£*%u=^/Dvrj2Fsފ5ٲ5fvA)QTGND}@*2WB?5].W[i6 (NuӰT= O<ؓE#ac6.~f HrM3T813E %11l 樬7o0ܰ`QR>*P 0V:!YtS]K ( 9fJs e' Z|6χ)ol*>([v6L7uA9J8d`QI4w|8YT|2צ,f&}1=Ħ@/@pp7[$q~]AwWZ}gg1T} ya& 1MNFRvi^$& (G \/^?Z ^tbD@A!pPk^ȏ' )_ρ_ ,(%%'Fxk(C,00s׽avVt8ah[ٵUPw9h?r%tZLa !ik0w(((O-5Ne-2(8}D9>IsЄRq/}q;qWSOX5&{,mt|\}y/<8&VTNJN.lJq.]4)Ⱗ;<S`wWjW V[ FYfԪ;9C Ĝ eg'$ i6"*의1JNcH>C?D|;K {XO2tr sp.2TxC-bsep:0WDw Y|ԛ*Ft>׆pr.b|`,'׈CVmY iصj}^Q)Cly5)&<~`y .>ݶ4lR=PٞnP=${vFldc'Ъ㳮S#38,Pw*y{Dy>"C̲!ԐK-Ӹ ->7H=BN]U*eR d2ȶ&-q4ayKV`Z$ά)+(bkOt`G^kmA,U,gyNZLd>I}.}*I-@@qfzyk63;u,Pᡭ-i8jSEOLz{$RTU0_Y0eVP+ŸWwV9F[D8k1o9=+!vXjNEvJWw+4g_;v+BqktUEcOY}6sy.wh;-UúvUwَ`f>LyLկ]v3zmC15 ޗoN 4rኃ)wLclxC2P8 S5 PxqW|fN`Yt t?Ap\9O?~8(PF[р簵o/ϪGDE'YىaeHQ}\>00hE£.Pݭ䚰3=5PrQ!b/(QJ-j4Pf;IN_o/Kȳ厸\Rhߓ=ԫ=J߻AFP+ eX3Ѵ])ڒn*(!L%E]y g*Z}N&Xn*4T?~gcO~t^5,!IZe[Pގ~[9Kbn!E7~7ߚ1ᄉ_=idM_ Ĭ#NW|,=g>-ުDfH`k+LcX7L>OO9a.`MW.p)eCǟx[&iF`jI=q8HEq.H~=$w缽O+a6K6#MŤg:Ϯkkfo·H cuM(\II(݀sH1jχnV2`WLnO0EhsOsU J@MoF^o.~Ͽ:~WUq}@K d,Hq죪x’2nWSH`WK;iϞ zxw'{1aMŋv.WLK TbtꞥӭwCd \zB>` oeH`Y۪6(幂#exPnbQ> 2/Y̹i Qh3 f&{ :y}TS`] q$Dv[u.R.OsA@fa4ט'nCۻdeɍ +\(ӭB.V# \:ԹŢ˶mg8 % xQ_Qva\RCthg`Qe2,ֆeV(͛tOx7? DA{G3?Uز?$ž1<}b.$UoGf7 ^_q4ȬRoLZb7v=oe ɸƦ0̫]H"y| {d˥5])B b,4>wYێUzOHijl~65H"gӡg!ݗoc/j_u&3̎_g&6dNWIJ.Z$%A ]q,+i~C~+FX،RV3Ҟސ2HPҘMeWAȡ.',H37h!%.ƨx6-[sB Ku4Lhx]gln2bqn^Ji󁂚B굉ťo9m's&:̔SpA^ 4V1D#456c P Io93&ߡ;b&J7Օ&0L؝?i :w& gY GtMiH`>TW:U`[6-_7q`(@^1Qfg븱S/4dw%FIvAKYf4`ܣJS@q,}h5ٿs<]o=}nsS 0)-u#5c=d:ĩܑ[sc&(`+b@тw?0J&]eTr0C80r'UX z?!RD3W]VmBd E;*myg2#z.BCHj(${4S8MkhH:51, , ^iŜ\)S x1)zhV;P$k=0+L.ÿ}{hdPx.@joU(퓯䰖[=26% \!z`iZ/0 T|8gawY*1xtSIuF_ge6nV % #1ŸRXQRI:cn㿼[ӳx"a#Ix?_H-(~b-O7 OMaO $&yll##? [ iX&G<.(Fgh`LsuXAI­U>w =/.a9HWTO- up;NDMOMhmu xa H$ͺ=*3`joW]HzA&plN.i؁9gx~ת[[4R 7?yYӺJl;R!)H"̺Yfv,W I880Km?ӺPj"H!WB\oܴfVQ+](@F8J.x63Ŧk$☆ko(Srߩ&/W10oWʤH౩^bHbu_S-EGkjo>7rX?5]ħ"_ X\ʽ) .) :I[]oUJ0ָ_:q8( P_ ?b {q ozLAԵ@e .H CqaTaGhjKVف^xځH9PrN߯M@9O,hחq `c:bUS. ZEe%|SD魝 bx`Ïdפv_QxG!sEkԸR8S xDC0(GAڟ-cj*?Wcd;ٯߛo뾭*NЂR;6 /B\Tv} L ֺحڬl,i\3(~ aJ{߂$Ʉ(JRlON-JL3#vN|lyFxz>U{;kG}+Af"QoJ|)V'Oo'kZDRN”مJ ~-Ur^{fSpd2W[q#lo4CKKSt/{Kqc==rhNv*?:~ :FIZc]lhL<a@jjG_ Eq+'y~  `-'fAy @]|s ?!(rbw.;5YzEvߴ^ ^ع{8PjGf9o~Nk y7t?OsۙGfS/). OmZٖY]D`\b|β T>-o筼˺?Bvucȼe7t]TsPܮ`.UoLZM* ݂BmPfBK9ҍf.h_Įe>/JU4e.y@sWQyjӰ圵a@<a"?>Mݦ+Ѕ}~cy!X])jO?'''\M+UDF1< 5`"(V,>t(*ij[`VlMκPK &ub"[,{%26WzT( LJR¡vgIA[j'f![Q/=xTG8).Eз'L U Ք,JD@ud2T)'<ɆS> d.~O{{Q !FFvǭz`(<>6t6]IEaM­8%ޜ /F fsZV=D9|^Y<Bz:<Ӱ!>aw`#BGG(KŦw L' f+gzFc&]# |aD%i~Ğaċ;O[nI`(TϸoEBAd'HV.F&w@;3 tN7d2N`t)z`~L&B{BMDŽOFV bdqc4LD!Vԟ!l'A.6vۦr:L-|D$GDsAV¥M#bO|H!82Q@o_0. TCa9L@P/,Zތآx%\)[>w;B8\Eߤ$\Eabg۶Ey?X؉CRMo`636H3fEmdB4рnLL k%lK SG BE!4Z7f>t.) q\!>Ym8h0o|©x:3I~D͢S% gM %D=zMJMG8qUQ8iYxn͇ qΑk0zkq'V[(}JRF W` L1#Lj G3y``#P"(6ϒ)K8t-\]2 @{@f~ߩ;[tNG+r#dk$Q6z! F\hK<Ӏ}SN9=%bwƯg~qj|`MNO9>nT|ǯί^}z+nS:JVCGڳTmAXz -ox$)l:sbcF<2GWXyCXKDg'scӂx 'Nr6`yro߷Ev;e N-=ݯ);!3TL^s?!$qnP7f Z ܔ|[;I!W>)hx )K776!;Iơ$Jnn򛛙w&e@bOa !ցI9\Sn,mUJ ̂$Jj Q[\[tr.m)G|SoH,ђD3뙞=q ;foV2 NE+ EEeJ=-85 [g)ԡ1j=5L7:( 76z{`bwØm5]പ gH]np6ҁ-U=9x]s!dmiqMBaц7┪N2YNpIK3ɶ[>6`32́j_KY9Kt|j}<ˑ#mh_{F2&cz5VUSD=x?5ah:qXN+ i ɚT* %uXÎ#NbkU$:j/a Uw2e XƽEf4ܻEgd+FK;9rJ/2rO 㪜XxWˡGQ\x~(Wbx|Că[,H]7 6xjCf,,t$A=]qp᪙ՏZȊ=@Cz>[|"Ŀ}h 4f{ƊMtCSHnI:[vno!DjPKMHNu3IUcEߕٲ֙T ] ,p. BX4 U}oO|Lnl+rh!4%%[R>%Ї&wi[[%՗/߼mAzG`y6-b~ GtX| # ʋ|oAk'`\OUʻxQJو>ݹ`$$"]V`DnsJIv"I(Fw8&EB|BL93OϦ,c=s@G6e ,o u|,'/:QڏGgx<F ^rbvzƔ&-ɲ胲ht[lW" .i0d)-MhLa0zgzs:ֶNt xh%T}Pt#; DZ@x, W)*w皕`1nz b6-Ϗ!#3FR3v®3(~ӏ2Db9P83VApnFg4~Ŵ W.z=lp^}9JFC%c`+A W^dSx6]v[8EuioHzs}D{a^Kݏ7ѐ!퇔d21 L!MƑx x`}KS-l妾\8{l!T  $.dz?wL(hmtra -/Ee`J_[QYij1 Jf?w:\.@5;+yca2Us^X1Rea`X[5cF*@f)'58C};krsM .k::]jL|#>e j`js}q콫k|_ aA.8QgL4Eu-NlS56B$f6#}Ivqv2ͤ3 ѵ-ړ[Mk-Dhh BYEi6[mUjG0\+:d]r=>9^tV*chׇ(FOKq#]œm4{g`.s Ӛ6OyX ۹VQ&b湤5GcQ#هD 3>4|탈0¥ b7-t& - fFeoaqڰ^BWlƪgz4cŽJcT?AIb6Ow|6[v N)-hUqf7`i(KWh.%Px$AdZ`g<]aB՚c;\PΩױF1\V ~4S)xvӡ$žfʡ0z tܱu%x*ɇ+,LD]<,UM-1ά= MH6K~Eڻȷx#&Qaϐ)%cUnHWVU;~_g (-zvp\EzL5Wda`EHYL*q8xJ5]rM,٬yrNxc{nVhFLqGM%2)zhnhԱWHUCMu^/ThQK'?}W_]HO KYthΛO ]on3TvHەΰ'=,Ä9s̿OomhR v:ȹγ6JG)77i۱\}Ɔ%Fטx*( Yzc$3 $r}_8u=H D2;/N؊ip㳳;X[ kOQw`'.IxC}z37H1% e`ICQnJIAF!*ҋ Ojg(lz/@s]1ZxxryA UoͰ"=ө^߆/5yh4X+?ty%8`lA(hza T6f {hwDit L7˜כcQԣ(+f IOÁ3Ӎ(f{|2Gd Zu+4' KsĪ*hu+܈vxJ'ݡ9,qA !w*8oН_?pm}-ev`X TLg,fkEU I5gUb{޻;>g)OCRkT H~̆ %MFo +V Q[7I|fDZ4|a/;9,DnƲ9 VABXCof-Ee(' <Ƚ%dl?5-z7{EٳJ #'_yt.Qd|''觙T;FK &\Qv^h2z&}v!!|2 ,k=+tT"ǺCR:5F:;Q A ,R0qqT LcrFOhE{4-&T:8}Э!KD;ǹ3/bBS]mHQ/7`+sMDۡA~(+)37_, KG17"+q\\sN$[n,%g~)(L۸cGIv=i2 P 5~64 ߬kR'ɜrj47sq -BLa;y }Q9 ޯj v_v49LA*^GBM=ԴF1.C0; |Y@+҈Utt9bH/\LÂB#6{, _F.q5t' JuuOˌT t:2YF3lN4 '۳#biʜN{'5mh9S% o9ۡ l-0Pid8hyMZ\87b㜂np*P/riZ3?M+iIcCE4ԭęj! UX tSNcg$ *[cWw!@y8~L鋲۟\u7ۚ\;1 hʂ?&g2HKO_ѡxXI<"nH_v=;N2L?ݾg5zMg][]cYS;&VKe:(M̾ࠎ^1+eY)zN!]`tk>3]VE~X1.tGE +N {^ݻ."8EҡOu5ZFPKTQQ\Ҩ+&setuptools/command/install_egg_info.pyVMo0+,PYrOSz饇Vꥪ]$mvV~yHeM+JwAX'Sjs^ EAP13f?|k[I[ fx {Χ9}ws hz{`Y`z0"rP8c/2V"k`, :OYFf@"1,GS5xR|ҟa?gem*d#4T5?gFĔѰRTJJC gyQD!$ݾ&B*/ڒk>,bl׸D`?PުccO)F:i9x /`dʼn $h0夥* e0;eyR`⇛u̵qnrѬ'Z)UPHiĄ_ m(}0 c%l4x%'QO1CNa~C;),/^ƄnWVt-Bjߖo{\Vh-oz`Lyc(JƬm8Ymk2.՞ָY>Na3\*i<txVm d6[#p;T+H?F;ke+2tNDD B6;:)I+Rŵe1hьn$̘vPJS@u4iR~Cx57v$VclՒ,sx(fJ믽;j-n jf:Z(zUu<3G Q/D¢V>k\z' e%NW=oh0¶U%; w Q^:[\<+[);hϽ%4bJGUtV m;z 0* 6 uPCL٬{Տ 2@f_(ŋ-ñԾ@KJR1%/ {)Ƒ= i3{> 1 ՙPE2yRcΙ0l bIh@9_9R,"kƽ3b@hRԟfSlɨ1޲䒃~NUnem_85Cjt[R,g(0p{-N`&E'oPOI MJHm-(+TX>[HEWhȪXojb j%Vtvȹ~!)LNmyȥ>,U=lmZSf9Ã!ѣ'nTm-3Y -fndYc&%0B:RTy}8ɵ:$% -X0Ey@RBlW )a`ԜstK#kUPQS';e(%'+@PKTQQ3m %setuptools/command/install_scripts.pyVK6WLUm{K!Ar F6Hj]wDQ75;hu989 j0VRY' ,h#Wm'{Y1\z2 ɳ'rU _|B'ZD dnis˲%`= { JA0~"x>RuF#i:nZL:)zzdw??Q3[Wt#ͻ\DW#mGJvOWfۦο:'4B&cY= 1Ti6vDwA4-m yWʋ~nwTRQM2{q\KazRX8ܞ,ʔ0mzBhU\CY4wH;`,AZ >Aʇi܏pdW$v`uLwhq: Mpoi ZB%q *& _F +#$sDD &$\]J:u~∎Yo|T IRD]ˑ ;'F4g/8⨋ZV鮎x' {.K~]B9ݦҰ.Ĩ 6}iy)Ubz YWzWJd+k2D"i5Q^ @!FgH#/'+GeYMm/i%_^sj -x/z&RzF9U hmt{fN.2h_TEcݳm7:XDS)ŌӼoߙmGšc$x!BeCa;߹F?|Bk \n:!#⇌ HܢoMyaB-6 0dC0=Th6VSN=z@1_%4m[viҘܘ4+&8\4&G؛eURۿsC6,Yn& h [&4a$=QwuM-fA(ިZE=ͩٔlԕ`N+ez9h~-6}!kꮴ%eD2@ kê7tη2~67(V]nFg5/n0@'ًoʳ[h8Izg.ވ/)]o7K(lإ pJ~/WCĭ>9)MNv%n/@^|jorY~> <}W}bXݷG,3|?sY8L]}.iERKO+WPKTQQvsetuptools/command/register.pymAN0 E9U+F+4HfTqк& ;;< .%98Lӣgzކ0NRCMJ0/1Md&>`z[~.=T?۔UA[Zgb<$ !hw;Xp]/FnM6*<>Mq&,9??]ba3h"sLm5:C<5]R#-6 c]wZBǧfubwDR/PKTQQ!Psetuptools/command/rotate.pyUMo0 W KP uu] PljK$K(9Z_$'R9{8XѿS'%V~Kc,5vrx2k0&7q㓻dr3gbV2I΁5^zd1Zi>a4%Ȫs:2&ѫDWX݈^;kxòR9ܔ#[E)}iܮBUW (0ZC`Ea'-I䷙NSNZ@&TL`]g|jh)ktiOp^(>;?dc (v LRDXM9PNi.#΁D7;܍ayNM1N?Y/Yg|s\+ΩSIJc9)3;y6ty3糬m7}?RI,T7<9͡A ]QSmZ8|SFכ b>gƉ\Өic0)^QފP 'zg"QH,҇2z294Y3M~?;󱌱;YtkP;W ۰D*ǻ9T*C7q>%uK PKTQQ4Fsetuptools/command/saveopts.pyeMn0 ¥r9EU2!0UUu2a4Y!9:x D [+s/.>DPQzqxF:5f;TwB!t0bU"0 ubPM߲^|TnikH]2Rdx;eM]n&U{Y(i'@[Xc5ܕN[- Օ=WVPKTQQ[A :setuptools/command/sdist.pyYmoܸ_HF"Mqs-:D%w~3CP6.ଖ<3d*ֵN֖cc_tû#Wefqq˴= ROVNZ..*ik5uaT/ZRQ@Бf-oHe^qauk ==հ^g^?oRŏ&I.|VGJU cAZYet tD_iDä*I/@z-iJ"gK#MVk^^ɀ?')꒨zsGm(l>G޻8;HgmлdӢĨ`n/i7Ɇj%6]FIgEN,Ļᆣ j ? \ O="-Ʒc %@j# Bf%D,isbNu’y^,t1{Gzg+}:˯~n???c /3ѷ{2AJJ03 5|tR(ҵOzĬx*ӪԊ fw &bϥt̋c Z^8, ^˟1>V24j2ng/tw{:YDˣH;sZ%cvR !F7uoM9$#y\Vn S<!K|]OA.u=T;r!zB&+O4e(zm:TIJ,/;GythN7i p2wɴOP؂Z)|5F+@ ޙ=A}(v^ w5p(? 44@tK$Rh6Pb\Egӌ8j&R=D"^ӿ[QY+uP|/Ce퇒 {ەh3ǠH: o^bjio.&ٗ?:(? 8A9X0/D5%^3_ /pg0V7bmR.Z`T9p銏׳6-;CpiI'ͩ1'辙:YBӸ ӷ ^)Mϋaau`8plȏlaC\*V%ؓ%oXc6EVKC{]#̇u9  )Pp! + DCW`qhg9h6 Rgvn* '^fkUҀ7 #n?=0QJ_dBiQ)S4^`(NwK.Nj]c@I?4Bt 2þ;9-{!Sr>N'lڰi-`N4qy?;M}~x׌ .__gFGτDd>+4rm ~xŮ}M\W${=&IՊvWx< RzjhlBhIg;nKKH9wsZDH龙nׁȝ:$OpصtD'S7C15Jr q*17FfR;%uYl|B5%Tg&8kS" ]1zgT#)4lNPVi""j5(ƧǿPKTQQksetuptools/command/setopt.pyXK6W I\`=h C%f#K)o _"%n7:+qo텔\CkK׊mDw?@Ίi1!Z>u=o2kNǾh_`⧎ J[mG˅6j紮C5,ސ;|lHZLxWU*&_xS-hw+WE?gFPFJ=;W6Dlȩn 1R`4p A827$P;/ݎJ')(.+S܈&wdP}>Vg*g$î!ihӲ|Ɣ/us7#?xYl-Ǥ<1)1Иjdta"tMgԦe!x:K>[xkwL~6G' U`-.?-48?7tg̤ٜCcD?*kc+)Pwq,+j*%ČkvLNsHݹ/ ^+"*[C7m@G*1v6r$}dBԒ{7РlFG"t1"K2K,ؐ G@& tR; 'b! ap T߶`s+3cA*Ϭq,:oo{$3 if P&$mk6 9Ph2+*)ofHI%np^ F)s!S#4oPu++Utl[aڋVGVJvL&V0~-.M+UMR? UnhnFuxܯ`.%>dRV+}ޤ߽ҷ>F)k~ U[Al,s^BQ "NjuO2 w iGu<򺴯]'2oNW m/..~/x]+V(d}A4b\<6Ëqw62oY~' XL6Hw+F$g7Uv );җ*{U ju"5t=U4 +ݣrYf`y'jbnO/2P:=DI#6;} Z^gRpvh .D-hKCKbxz*Z鲦2 $QPV.eiD]zƓ=C T@: %JLεPY?rHy +J1a9y}2 &%dB o}_QRS,"Dt3 2b/9_D&wVEI?tdYwsЉO =tP:&jC%ŗ1Z9m_^3 jBK "٠Cd~q7by2dTJa?+'҃rDx5?| }Fa o0⋳"XXcN܄R]^s@s uWS="Cl*Hƌr GLj):\=ťh(@oetF\'q.m" GX]1&'GQȽݫ$ fb"t tue@JYsEvd}ޱ (20N{Ѐ-št9 Bz=3+$;R½m4)$ljGs@SuON'pg")O dvYM]KPRɃ4.dX7.kVZ|O vpTHA@D>#?ufwQSx+vj0g6X ڝu p= >\E_lQ5,`-}џN&f;YߥA qBm\ G3N./9HdeRQ9lPL(ۧm \PBd%|}S\#%RrhꛪcG0Uheyd]T])r8^{XkX'd 31i)ϰo x"*hQf⸅|[NC4`b]s٪K&~Q-Gie 0ӍDzX8W=*h`;Į&(~4.j:T@ JHcrz7Fg1 ay`)>xjaշ=-`c='+P~awoKSi*>,%8+`Q6~NM7{q4rfW+9]l=g> Ԧ[py.q``mN`5dxWSVIU tO ^-+u<~k0hƞypOc@n7JaKד)NE8l`[4(sb1 9pRXّT(?lyÎ ;G.JTEIJi$**Ǜ+ݵbDdK~+'wk4 -äťXwRƮllQn׈CFCݒM |0퇶%3M%fȢd: []\6d;ؚs^AMo ~j[3HN"۝zkR1FvW9c;U\LQdGcƻv-xX݉2hp|̡6*X/o4hK]KMe=7wV #s glx |JՇ xNujIgۨp/<ñC%\ ](ΔpO&F ]UP%-mM6vKg32 t dnV .ʜPKTQQ"]Ksetuptools/command/upload.pymMn bEGꪚJ](hp2#~Zdv2gY&XO!L*r k{G3) *3;b>v ꗍq50$Q1rA9W ü@!>֫SMk\deH!;qzlq_7܁v9>ɐ? q1a)[J>vmo$*n~% ;jR*(?b{ \s(2?)a?PKTQQN`~ !setuptools/command/upload_docs.pyioF~@1T+9dkq4؍ aD);3,{sAX}0Hλ7~D-H&sQnIm֋t:B|LO&;^M9F]2۱2'; pP#3B I7[Yn6L'!`0[KExED9 Y틌F?jQ-uE!j$" InY[ poG[("{64>FH DF ѡ [&yRmEsR-kaba+l E$y #ɒxB[? [RګS·+ 2~*u9P0lS mbl jVA%~kx_:G='H>W CW&}AQk4sK;4BB`ܳn@m)@NNEpd1*0Rzk0z MQ" p@X#^@CWĵ6~֩'/~z@{Oiͫqr0a+G j2Zp[J^l5xY!5OWuٯ׏e]bW Y[`l/~=v^Mm bYHV5G(^%V5FI0+-_s<)D5x*B ?R#}E|lOnxO(΃L8 fVìnxW& Sw|?'XQs2UTkzSC-`cnZ,6Ų $قkFLYIb8{,BcfX|sRw{QԈ=v~ÈtcN Bg?4~||;rO<.PJd߻aء# >ޔ7tIJɅe)xr|aEoy@P[)}!JXe:]ƣtV@4`Eµ<%U3Ns$^G!BQb5.f ^uYlw `n ͑kAR(Vbw{Bn:Q]b ;8;c9O`عbotxݯÄUrb0̇DQ*vWVf˚e{ vQA۶4Q4s"%QUd zj<ufFlq0"4q}DGT( wב_TD(pz3[ſv{&Qng.\je;\F@G1>~orgV% @ ȖPYjLQDyIuQ7{ 57=~?Du13~]g+ sq͠b*]Q*%JP#/{v0\&PKTQQ)~Isetuptools/extern/__init__.pyUMo0 W^=cnlzme( 5Ir[c)3N{ $<m=m6}#*moڏg݆/p{} ޽zF# TTKDtoV >IomH<`Eq@'ZR5K5Tҗe갩 pbt4Jp} ?l]ư%)t]3 =L~Y4c3P%9$e&YڠCaǒy3$F)b^R !NqT+Ϯ )3LLYbA'] ۦyb1?ҵT8)Zw$ISةў@O逎AHÑigeK2H{zID:8(ɓ.= Ê.{_ci0Nyix!//$ㆢ#<~Rg5E5ysSxcD|,f r*:媿 H&(MV &w1WDޭs '| h<.}mk uqg*܃g a1 V?vm=q_k}*`@4k-.pJ{\vSD u%e1ۢVkll~"_o"d@Ȑ!d&d'd_ԍEQu5_. Y~92BC=!^F0$OQeC Kre!0`Z7T1D)PK`QQP׫6#setuptools-50.3.2.dist-info/LICENSE]Qn0+>%.(-1[Y(:Zh,"U#I@7oIe.]r+P8w=|yƪq߮ƝFQaƓ"zh8La4&^lFbvu`#TР<"!wpF*]c+5 wp:6EZS`z-й)h|mC1~jk'{Sy'Icɵ@3:Ouo}Ck=3xFVv7cn+"]t6}%<ӺȻY4*?wָ"v̜zz@8 0Ե`)J7>-Yk\SD O"),XE ;rzr,1e REbSdcMIMEK˥LlFR-oTD*Y-E&>VBĹ Lil3تBSER7<5OrͲ"EA"k kK2W) dLlbHن=yJ"vu51-dN1kS*6%)QBVJn։r&_YhEBm!,C)+! PK`QQpp$setuptools-50.3.2.dist-info/METADATAX[W6~PlCz4-, A'lNg&ϸ`P 0d\R믯hnYTҨ?!u!;ViU@C6L"NIbA\Huo_j,; ak\6CB); !)m^{Bc,s\_} Q7/DP'wh|R0c95/ {$7h$a/ڋ{h`VEyMb/v䆧*Mtf$Ey t=ttSذ9TC wx~!]gKQ8v#+l }3 *ݢއ3o]0ʅ!bU;; z_T),\'S^#lo}`8&M<h7X2xs*a+M`߃7fdÃ='Q(m|rIA1QPDGv.@f~HċDby:nr@.7~fQ-E$hԊu3Yu縇dߕ?5[? 0ڈ|[L4&lm 0*,9x~DbzNq@(dr&TJ=H(ai6?a?ըm'mfk k e?W Û+ E78?n-4ޔHVa9yٹdƦz5ʩͭ=4ݔF?oݤ]C/-er7 ~rf@+š+jHr 5w'(ч ܦG&/ᱰ4+`YH+Z٢%$S=W< >U[Wz_zV^ )QwnQb{{WfGJeU6 ƘvhiGGẈM;RHӄfk* ֳ2%ycAO4)n!8wȇ`-%kժp#כ39>g` ] E^&M52£ G&]sAc=Pee]MK1_*{AJA2JnYƙK;tT˦8/ǟShSD:jJ[ƣŧztY|PK`QQ_\\!setuptools-50.3.2.dist-info/WHEEL HM K-*ϳR03rOK-J,/RHJ,./Q0363 /, (-JLR()*M ILR(4KM̫PK`QQ7_ݖ0setuptools-50.3.2.dist-info/dependency_links.txt @ѽẏe2c(< Q Lc!q]{i'BBb11r]Hbl{uHqX{ ہS&me?޼8jF0ˍZQj?؍li}?3Pధq-**R'SVKeQ2'PK`QQ6G ,setuptools-50.3.2.dist-info/entry_points.txtV͎ CR!V*u{Vۓ, fO߁k[Ʊ/f|acU-0[}!÷ Nju\61v\ u+a]' #vDP%28YM)FwkT,EUH-BdG^ [QYO?ȂäY=1@@xVexTҸ'U'52oՊI nd!pfUB.PK`QQ2$setuptools-50.3.2.dist-info/zip-safePK`QQ.7"setuptools-50.3.2.dist-info/RECORD{rضm|m!RA A @|''ٖwFls11֚aƢO$N(ݐ0NPegPR\D;/a F޳}e?8vĊYaq>݆M _ *0 DQ]cyA>5Jd%r}LsP̧mGޓ/ P-0y|4%&?J#TEՕ'C;Q2|wF3l/0xTwNજ@]cCߤprߣƼ'MaĞӻ+3Sm&e)r'ځo`~xT-n#_3KQr_݂z9 z(BoGCdOcw@57*[O FCp#bkҕ&T_F`ށo |Kӫc4EAS*VSMEI3>1H=*ݻ YH;MZxTyٞ ݡL%Q_3UA91c,PrqkXꍢa1v@>dQ>#{K65t'$n)bnq'~k]Q缺7WfG'@ഗl p,_%1D2h'lրR{yXCt=d9~$Ai[kŶNFI|W+#枰8e2|TUKxBV-DrJʭ&(_C2Nضշ3^&U:uV< q(.L@#pz۷s7u( ; 5ʌ"7΍ؚE=! ( +vZzbZSFAAs=5/PA=? N ff U.=הTqIģ/xD/py :'ƌ$jRMM-fX}| SŸdI~)7wYihjv)D "ذ32tw8!_pNhfºGߴ:~6 Z&'鶩y6i%CeMB0&*ݚ$-KP{Fs`1x4ژuamޒP(Us(ԋb' P,-duQf *~)>Uj)9}pAc'y_^ y(l_E 93βWUGe6;fjwr|jW,sUKRI >."bg>0NeU>l^]ސ:$^OS]~>`4w+B/P(>h3VcLbD`$G/V*|j0P؎do6ex: %TںѴi bxB(= |i=ܣg:W1`^p22*ČiD`5A !|;^4Gsjw.ctyR+tR3 lʐA*! [>waFpDZAN( > ]5\Tݓo=1tAXKz ǰq}>ީ:aX$:Nt|4jnH<#ͮ-d/,`1]ͲV}eu+p9Fj1ݠݢq/O4hXW$ tD) Jߑ]waa꺶 m$Q)r,VvYVu-o(#yF"j?IszhQ8CÙpoxm@~mG~§RgkUhZUV5I<A%bB`?.+ðsyڑ+dnb>5z ˇ,`'p*m]n+;RZu:OLixF9YHK)^G|bE#.TrrXx ƠIyYl`*,]8'@!_f)W=ëұV ы P-A/ زe6KoOϗl0VNAj) |oԍs)JJ}I;Gw^,TZ+(T5f:RcHPgl7)w'Bq7雈WR='LqSq>A78ig0!{ƟR[=A)rFٔGt9G z&1HosrQ= "0mR< ȩ892kc5`1P~w/QʴJ!wf,n%blc]v0gw`Ļf &ޱ؁+,N "1{Mdlg1'FF,I 1xvw]#rsܺQx)rFEVJ^Z:?}1M]?@> As~g(us D޵Ҫ}fba =mZHӛlΓ(]| I/<`J; ?H%Dwܡ ۥi=.g SxNX1]H%TC ݙӠf<@䆢rX8jU rd?ڡػܠ/Ч̢W]}]:J! lګsC"lnkl DeT|JYA(w'a4bRVo Ll0"2'?ROVqrr\ҍ@.Oƭ~D B+/>ৎP HT\%k`lCFw9$p,ܕZ%UB~ǠҖ(Nb*ݮVi\IMiN(2hFc5:19\=+%6pEC8K"V/ oZK]'Y[\>(}-G~'ڲ#^uO cN=uN]t( U*tCԤzK_mC񜚗*pKhdVJN0YA R>E`6~]F70o0!m`x%=r+]=}ѹ[cKU$Iݜ,@8ɑ8d3"z_v>!HyE[kP]24,|σBd(,H0g:琇sL$匓AMw%n:㠲yVNȏ'cckyϴ?aL-#`i IJs*n߶WW=ԚSvs0 ϵk&i? DHB{ RAB4{Xj@.eg4v82IT>Ϝ~<Xy2ЧQ4` }Oao6yiP9ʓA#{°+(iؕ^<23W!\},Ɗo@uQUe*P.rtZĎqd 6,qGs$ہHj̡ ^PImj?(EJeHg\`U\$˫z($3=f›xi)^m/2<tzx#W*;pnzǔ>zm&ݦ TE[&LSvcҩgxXn<#o:YJ( EI&7)lcAe^1V cF"-y#䐃W.`\=Éw">ɶ߽4( '&g¹Ĥds>Zi\V,oI/'pkGJc#l7hzu MWBs5E wjH*4ə 압1YrȮ*8^JdSաo0~Kdɳ;0`&BelXCLipP ݅ӌ$CG~c?^?Y)#5!e/%{ 9 [5K&^[ˏ+Xxa㘱a+y;GʣXϹ\ux:Vv(z N,۟qG|S_sЇ&{4F׷tdRA *I4 -šk94;P6NI>w1`9qr̥ylq>-Tv [ B(K_0mD¿\c#^igdfÀk SלvmBYdSfyP┸pXe-ƹUMsZ8|U@gAګՁSS:%EgTto4W qgx'c_c"ᒺ]-?f`2UE h{YZm?100rU{c4gQ318Z;f%h;Mqzw՚Ãa h"wRl&=GF҉3 {~whzg9ųF.*Cxi?+[LzOo}-di BQv=1y po |+6qX7':`˵֘aҳՃ槳8mQq܃M>^)?eeJP"fR(n.E!P{Ҽ0-v6m?->4ʓ H=`Zxwf%I8tX+#:3>o E~4_}Pg N6 \ix8'S"?XW:2#ZtaL c3r,i<@{rv??PK`QQb/qdistutils-precedence.pthPKTQQ\OEi~easy_install.pyPKTQQe| K_distutils_hack/__init__.pyPKTQQ .,_distutils_hack/override.pyPKTQQ'/1rgpkg_resources/__init__.pyPKTQQ!szpkg_resources/_vendor/__init__.pyPKTQQaQ}` zpkg_resources/_vendor/appdirs.pyPKTQQf]w"Cpkg_resources/_vendor/pyparsing.pyPKTQQZk,apkg_resources/_vendor/packaging/__about__.pyPKTQQeD2+cpkg_resources/_vendor/packaging/__init__.pyPKTQQJzBh*epkg_resources/_vendor/packaging/_compat.pyPKTQQ]מ.gpkg_resources/_vendor/packaging/_structures.pyPKTQQn_*ipkg_resources/_vendor/packaging/_typing.pyPKTQQb .%*0mpkg_resources/_vendor/packaging/markers.pyPKTQQ&yI3A/xpkg_resources/_vendor/packaging/requirements.pyPKTQQ)|-|pkg_resources/_vendor/packaging/specifiers.pyPKTQQ'^'pkg_resources/_vendor/packaging/tags.pyPKTQQJf`(,pkg_resources/_vendor/packaging/utils.pyPKTQQPzn<*kpkg_resources/_vendor/packaging/version.pyPKTQQ. pkg_resources/extern/__init__.pyPKTQQ+* setuptools/__init__.pyPKTQQJ"setuptools/_deprecation_warning.pyPKTQQEyT setuptools/_imp.pyPKTQQ׿setuptools/archive_util.pyPKTQQy! p'setuptools/build_meta.pyPKTQQzi~setuptools/cli-32.exePKTQQbp$}setuptools/cli-64.exePKTQQzi~setuptools/cli.exePKTQQGƙSsetuptools/config.pyPKTQQ+JΟ]setuptools/dep_util.pyPKTQQf;zb0setuptools/depends.pyPKTQQZe}'setuptools/dist.pyPKTQQQ  setuptools/errors.pyPKTQQsetuptools/extension.pyPKTQQOksetuptools/glob.pyPKTQQ)όsetuptools/gui-32.exePKTQQ&߁setuptools/gui-64.exePKTQQ)όsetuptools/gui.exePKTQQ.ޮZdsetuptools/installer.pyPKTQQ2S,5setuptools/launch.pyPKTQQ< setuptools/lib2to3_ex.pyPKTQQE4a%setuptools/monkey.pyPKTQQl 1)setuptools/msvc.pyPKTQQpm!N setuptools/namespaces.pyPKTQQvo.psetuptools/package_index.pyPKTQQVD=setuptools/py34compat.pyPKTQQUNG7setuptools/sandbox.pyPKTQQ)setuptools/script (dev).tmplPKTQQ3j*setuptools/script.tmplPKTQQFeE ?!A+setuptools/ssl_support.pyPKTQQT+~6setuptools/unicode_utils.pyPKTQQHLbet8setuptools/version.pyPKTQQ 4 `  9setuptools/wheel.pyPKTQQ tCsetuptools/windows_support.pyPKTQQB괯!Dsetuptools/_distutils/__init__.pyPKTQQyT1MQ&Esetuptools/_distutils/_msvccompiler.pyPKTQQ5R |!% ^setuptools/_distutils/archive_util.pyPKTQQF9.:%hsetuptools/_distutils/bcppcompiler.pyPKTQQcx1M"ysetuptools/_distutils/ccompiler.pyPKTQQwFsetuptools/_distutils/cmd.pyPKTQQ$Fq8setuptools/_distutils/config.pyPKTQQIS^ "setuptools/_distutils/core.pyPKTQQ }/[?(Hsetuptools/_distutils/cygwinccompiler.pyPKTQQ_H%usetuptools/_distutils/debug.pyPKTQQk"# !setuptools/_distutils/dep_util.pyPKTQQ3 b!setuptools/_distutils/dir_util.pyPKTQQ. A3setuptools/_distutils/dist.pyPKTQQn ,setuptools/_distutils/errors.pyPKTQQ]4:% )"2setuptools/_distutils/extension.pyPKTQQ1ƲxE%s?setuptools/_distutils/fancy_getopt.pyPKTQQÈ "hUsetuptools/_distutils/file_util.pyPKTQQfP[5  2!0`setuptools/_distutils/filelist.pyPKTQQˆз|nsetuptools/_distutils/log.pyPKTQQ!v&mqsetuptools/_distutils/msvc9compiler.pyPKTQQ wc[%usetuptools/_distutils/msvccompiler.pyPKTQQv#setuptools/_distutils/py35compat.pyPKTQQ{#?setuptools/_distutils/py38compat.pyPKTQQ("8setuptools/_distutils/spawn.pyPKTQQG5eS"setuptools/_distutils/sysconfig.pyPKTQQQ8Z0"setuptools/_distutils/text_file.pyPKTQQY@Yh9&setuptools/_distutils/unixccompiler.pyPKTQQ0,KQsetuptools/_distutils/util.pyPKTQQ87l0 setuptools/_distutils/version.pyPKTQQ2 )*setuptools/_distutils/versionpredicate.pyPKTQQ;*)C&setuptools/_distutils/command/__init__.pyPKTQQn1&'setuptools/_distutils/command/bdist.pyPKTQQwq1+.setuptools/_distutils/command/bdist_dumb.pyPKTQQoY"*}4setuptools/_distutils/command/bdist_msi.pyPKTQQd]v!T*Wsetuptools/_distutils/command/bdist_rpm.pyPKTQQd-E>.ensetuptools/_distutils/command/bdist_wininst.pyPKTQQx&setuptools/_distutils/command/build.pyPKTQQv3;V+setuptools/_distutils/command/build_clib.pyPKTQQ$#{*setuptools/_distutils/command/build_ext.pyPKTQQs陷&C)csetuptools/_distutils/command/build_py.pyPKTQQd+SX.asetuptools/_distutils/command/build_scripts.pyPKTQQm&setuptools/_distutils/command/check.pyPKTQQ,V &?setuptools/_distutils/command/clean.pyPKTQQ7\=3'setuptools/_distutils/command/config.pyPKTQQZ64Zk(zsetuptools/_distutils/command/install.pyPKTQQ  - setuptools/_distutils/command/install_data.pyPKTQQ9R)S+ 1 setuptools/_distutils/command/install_egg_info.pyPKTQQ*Rj&0 setuptools/_distutils/command/install_headers.pyPKTQQ ,: setuptools/_distutils/command/install_lib.pyPKTQQ:0 setuptools/_distutils/command/install_scripts.pyPKTQQCho+D setuptools/_distutils/command/py37compat.pyPKTQQt -) setuptools/_distutils/command/register.pyPKTQQtv=J&* setuptools/_distutils/command/sdist.pyPKTQQjP 'q@ setuptools/_distutils/command/upload.pyPKTQQJ setuptools/_vendor/__init__.pyPKTQQD*;!J setuptools/_vendor/ordered_set.pyPKTQQf]wY setuptools/_vendor/pyparsing.pyPKTQQZk)H. setuptools/_vendor/packaging/__about__.pyPKTQQeD2(0 setuptools/_vendor/packaging/__init__.pyPKTQQJzBh'w1 setuptools/_vendor/packaging/_compat.pyPKTQQ]מ+3 setuptools/_vendor/packaging/_structures.pyPKTQQn_'5 setuptools/_vendor/packaging/_typing.pyPKTQQd{ %%'9 setuptools/_vendor/packaging/markers.pyPKTQQiS05,IE setuptools/_vendor/packaging/requirements.pyPKTQQ)|*L setuptools/_vendor/packaging/specifiers.pyPKTQQ'^$&h setuptools/_vendor/packaging/tags.pyPKTQQJf`%m setuptools/_vendor/packaging/utils.pyPKTQQPzn<' setuptools/_vendor/packaging/version.pyPKTQQ8ޖ setuptools/command/__init__.pyPKTQQ=/M " setuptools/command/alias.pyPKTQQf[w2DG setuptools/command/bdist_egg.pyPKTQQr|ae setuptools/command/bdist_rpm.pyPKTQQX#- setuptools/command/bdist_wininst.pyPKTQQ!1? setuptools/command/build_clib.pyPKTQQK 20 setuptools/command/build_ext.pyPKTQQW % setuptools/command/build_py.pyPKTQQN m setuptools/command/develop.pyPKTQQ5 setuptools/command/dist_info.pyPKTQQHД,\Q" setuptools/command/easy_install.pyPKTQQ+pcl; setuptools/command/egg_info.pyPKTQQPaaeW setuptools/command/install.pyPKTQQ\Ҩ+&G^ setuptools/command/install_egg_info.pyPKTQQ,,#!a setuptools/command/install_lib.pyPKTQQ3m %!g setuptools/command/install_scripts.pyPKTQQ])B7t(k setuptools/command/launcher manifest.xmlPKTQQ3|R }l setuptools/command/py36compat.pyPKTQQv7r setuptools/command/register.pyPKTQQ!Pxs setuptools/command/rotate.pyPKTQQ4Fv setuptools/command/saveopts.pyPKTQQ[A : setuptools-50.3.2.dist-info/METADATAPK`QQ_\\!C setuptools-50.3.2.dist-info/WHEELPK`QQ7_ݖ0ޫ setuptools-50.3.2.dist-info/dependency_links.txtPK`QQ6G ,¬ setuptools-50.3.2.dist-info/entry_points.txtPK`QQ"36)ӯ setuptools-50.3.2.dist-info/top_level.txtPK`QQ2$M setuptools-50.3.2.dist-info/zip-safePK`QQ.7" setuptools-50.3.2.dist-info/RECORDPKt0 PKx"Tmb?virtualenv/seed/wheels/embed/setuptools-59.6.0-py3-none-any.whlPKͥSb/qdistutils-precedence.pthM= m*/ ٚ!HA&JѠ6tq W+0ӣO,FG|LX3͚)ɭ1N*C$_ށ#L31o.9.y@3TۧQ̈́tcB PKS5]M_distutils_hack/__init__.pyWn6}߯ i ލ/k4@ Iu4)K@RvRu~)s;3gf,JiKLcfUҢ;?\|0LV5UCޒc%Q-s+KV+y!P)|{ P*-Ō I+'Qis+n/IU~G"R 52fDi%SR*ۅC2WI-lNC$L"p A|j>5$U9XDwy7-f|A"QSqcD\-2fR -]_eht}'fsOWFhXEoPf\FZAvuvr>xG] pôDd *]偞r4h9EXx({O~{J2iH Y'H#DƟ҆@fpaE 3ݘZHWm8A ڼYQ qO4R7ͻ @]M\n5X{Kp8{c]yJ3O:ĀH2' ʁNM6GwDq`8?tQh"Bg{ ( {g6dCJG55 $* h3kJDs& bS郰a-aw_n!xl<̹y~c50n?{ɝ|G*mJgw8E{@-2ۑ̊ymF" 'PtVŨ.%ܣœLQԟڡJPOmǙ[BQW>.%~TLxośQh@؈ ޠ-m]e"v+fF01.ΤH0RP2⫅B\Gy#/T,}[98vG5zY6oNN{*P|rwZr8]84 /-8TW $1^ yT^lA,T)FNf_6ֿ+ 9A;{im "$­խ# "Jsfl ovU. q;+QGT1Ļ-rXUԿֶ7>Vw>yߋ;1MXlr5ExBb}m{%nJ:OqO3Q]8;ʢ h1_^:fjAGW(Ȱn`I]~BQ=ΎS_P /i̵дeb7~9ql7agg/N2 .nq '8KSk6p[;L|9@zYݤ R1vlb޽p}P>n;paO OwvUX I}exU_'kq_PKS .,_distutils_hack/override.py-/*PO,.)-)HLVKɏ/K-*LIPKS~rspkg_resources/__init__.pyԽvǕ(O! $;>CgItbK:'CMIvth@uݟUAΜ5"vǮ]{.f7U˶ٮgeSߨj"[4WլXdբfM)g溪Af[ۋy.gf6l.,{w]j`,Ya[.e{i}5\Ю-b#ɦӇ8{P75x_ C=ja,ϛ g۶̚6ͪUS|yYj`nX4좬+I`Aa5e[]Af}ÃRݵrA^^]qVl[;_T^lYh.̢ZVBŎ>tZqEmM^>,W1/0}XìݮVzCNd^lh:=XfrTKj_jYkf*]cɿb]ʻp.5`[p/W7WMpCm5l%=k @A|ߤj7B.ELYS׵b &)?ln-Ʀ\c^7M[}L&(3FwYd#oAaV6 zt^7kns~gKhuQ-΂eH``Zx |!jdr#fSV^4`yMC21Do7@{ƀdxZpfU}C {_zn-J i 'aEqP8'&byPl "4poE-4Щ ^ƕ\e`b>@d-;AZbkv.>-ʢޮZ&,g! Vx]Й{K^# ^wU3g7΋>|Zqt!Kb@E "Jw`-_?oѡ)h:-6@{#^]nKfLQ˝ bYp͈@p_s҉18Gx]PgÛB^E5292t>9O:ef˜ 酻0p%tK<_\Q~^]c!ێ^˫b3Krp0A 'Yw~=ȂV_poWslol#)w-4gq4N3᎓|QWQn.*ePsp6 O+xd٨UGEZvGAnf0!šиq-aCJѹQ_MezZ h8A ۇj]:^DW=)i,2π㡋D\޺Ot-` %|jܗv1G,r[@|^$Y 9.J~!5*[r7iȚ#}7us#X$*35(7 -.EAt2'u L:^duy T>Qe`L8lŋK޾YSϫ A]Qo ڴ5DfL!6muh;794^ݤb\lE>z|Li澥O˶]-7m5]ɹdb}[Շ7΀>ddA>|pB.Ξ|v>gjlWG {/bk49Ҧ dC;E[ͼCk/f{Zl1'l]6uH@|ePaY4mˏ*|̴vpw"ip!ť5T{E^,p Hh d=XY\2z?Ks-v{LwU Ľub3AF(u169 pdOJxEFABuh4mH82G)xPeb󲞕x37~_|oϷ}Owӿ~_>|-0#&HqңٮPe,C{M)Pоz$CԲicݏװL*s,2P^n ?󹷏Z4POu-'(WxPWUڮW2$ k\p]-NE( = #3tO/Z&.lG,G5tnIƞ,F\\:5>FF28u/؍:ȏp#8)=“X^ 97cڀTt羛uf9.l[D@0\z4|y/ ϫ bA҃&e tmLU9has> Ӡ+`*k;Q3O$SW?yjhAf!':TUɻӚlU&<ޠO? 4cS@Wh_  ?>8XxR NQ;UqlwMzgj OyG5?{ [8t̷9Ncә 98̱zv ch@80vBWĆI";Q!~ u%bǚ \:D8UKwHJKcAuϒ:4"mFHP1hLsR>.fCGaM Z/a@PhIƙ#0LlX@S=QNec?SNЭ,P ?J1 רݶ݁3Up=|Kbïu=|֬˷}!> |D\r{ (.ZZt!&.n̻Zdo5i72;a: %4nVP; `XϮeq~nng'`KO&^뛟 Pƙ3'Ve>=K,Z^3,v M(~fs࿦ӽDbF]2 %wHʧՕrbc:Q#ާŗ9PW8{(g Uo1ch6g)=_#(fprT9TWo60lw v''ۣ,ZBі1Dއfds-QGj{n{tŏw h/[ATފХ&gJtex|fGȳp~%CD<&f_+@r=g2r%NgglgA枊#MPxJh|O\3o:΂%`W/<~~}/cʯӬpЫ"9w ɵIv"uqR/γ:pҫeݪf:ɢN/MnGI]Ig8Rg7\\"Jv 3P P!r%ژzSaHГ!V58Sy glA{LNS6m/$S4nECGKԫq6Yg5 Υwf.UiP!GejbBA0<]bW;l;8q.ٹl:MKPXM+,Agʎed@6&@顲 B=& tvfQ7HԨd' BaL$X{$8thxbsFnJ=돣rӦ1Z2աjȻ&")!1mŚpj =wLEUO/?$F)Atφ;q Ivv}`iq//MLl1Jp)Q2B#l4 {\8!_h9/7k rEz|pciǝ[la7mلD3k;ĺNQ¸ql$>N`uIƷJy ?V]v.]Exas%\8:};߅ $U˲it=s9}])R rQu:.G!xfQ}^-9eACg|UlL6xke\ۇF)GޜxKmGk[9jS\ڮA߆cA"O? pf#2b郳'V>DTD?rB|4өFYuoW`i7:&\zH-waȘfa䮝XTwD0` g%~*\.l#φ+ѩU*I)a_w3|ZrVJ|:I͊P$)1k^ԳM z:=g@'xh $n(${~ͭ6vA[{BޱTҐtixٽ({Dhׄ+ x2֣cU:6rq޽x]'ⲥh3l89.26FjQe饿e)Aҏ/ Fwtqa9ƕed长щstC8gڑiiyrcLWle7,J5MbYQ>Q#=:|Z"걐m!5fghml'@O(-+rk4-aDS+,8`( &%"{GȬalJ¨4nTE:,5av 5P +z{ЬB^P^_:FhNJ}/cTg ̝-Fim RhS#uz$ HGs5"1ďIc]mTE Q#ڝMqmP;:߲;) G-BF<3 l P-'qF?)UeY6ߙ ަ[bеG4bMEFy 9 Uݏ@ΓLAsrN158nìss”Xr9A0aɅ|ẃ*yސ:>8N? `OǏW }D%Oض Yg<+Ѱ}iQ`fІ<ۂ|"|qxDPq Ir3>Iā~#B¦<.^v|[8 " iLrWQi f}{dDM`f٣fq1]bHu﨣@PGPq-DqB6lkaoFpUnIю3Uu;&}Z^?r.s}!5] HIw ~ C8[ 9ߜ>yT2( *?dǏGcL.F1'q()-œou lDZa~GԛK N j$j~8p/kN<1{ 8VHz6A3A09>pXDݶ]',ٿ7~2xrUMv'v2g62Q)({լZr[sMvYtP0ɄE^Cbw:ܥσ2QH^ٶ.^'`2m'ABjH, |yqa 3P 9X.e"ฟk!j}NHX!7a,R8Wwck|ú̵#RƼ45$' DHMXdW ;c/K~oüۧ T,p'O1\FHO-ߟWn(BE觋Mz_Zcp8w ^l"3Vȕ)(jAq{Au 5쐿]OAX؁ӡr4k9Qv_KWKu.\+!jmTV1z"j$٭ܲ,8 w0{VZT~i,j+tr/\/v.\x^']@iNFS)B0Wl01u6ksXr%Bn7A6h9Pܞ"}v=y M8LjBL#-kZwu<1US`(z]FL 7eN0:D햒k7Yt~b{ &ɆB9fjau*wڟP(jAMZ7eʮ}B?*n^lu?-,aAm"轆7鬰6).ޤv5tïӉ)(yt9@#HxȀahޙ,4ϑ=8$m `(kr9ȩX wCY'.=^-fN0i Xvtaz$~33Vy_bkk'-䣠nCM̋B/Vr{SôG"P wR8(޹PybV5F1ddC˦3#V›X(iFwfގҚѕV~p28T4҃ ^bXa!w9tFd7ltҮ.D' W yF 0j8{WE1ȑ(whiYؚIVK6XB!lWE'܏ˢ8L3PP|\W mkJGX`"):,ny?{(KXlCݬC8=$횭d3G@Č< H3GD09#-Bb8nPIAn93DEsÛII1$3gw~> •$!&vVRbj_> Kʈ|Φ; !]1L݄7su]U^@hMp59'Hljwklg0܋7D< c.TOGc"aEftOhZ@_+0<42V?6\G UfiumЗ(‡ĸQ?s} `riQynBr4[tL豋E8)2lgt]h&oKY“gRq[1 ۢ Lc$TE3tYı ذC"- Cpz1<~hi5@dUsXL/Σա#T.TM3p]#'Պ=q|2‡NJi9欇nj)lPzV ޘu21wz. O^CV#a>5C\Ԍ $cZ,=Ҷ[8aiYh][mk-=7#Qo5 + "REXWy]!զ@\=ڠ64JrNݚ2uPo05`uVG*#Lk0]ê\Sy—s4@8V6@qr1Cn /M 'B U{tussnMvWњuHxDrf;KJ w@;flƚ𔝨|Ϊ $o:?]k}I-b&!cbV/ލ( ®c?6=a b%NX!Xv NOr?M`l)Zܥ:%Ԛo7ue\LnsS_h~@ع^~7)+\tiRYu-ך?C;v|p +(v!Nna5M.ֻQ!gC YFХ.d2 ݗmOoDc~ShĚj JtU]e=jGͿO:ήc>u3>t!uVg|?!l*45s KM5EOl#Q G)l 51/8G#q:It$fcg5:D#Y6F۬m]Az8x^JG ]<&.Os,5`2Fz8Le5-GNij]WϽW/D1$  NELpZKf_RZ%T&LնX ǔaL\&WV/tl6HF%ܩe[1GspY.j9=3)ܐ2+OdѴDzO^ HB~92ENg)w?g\ we,йӣAO|).^;'OS^͚S̭+h6^nk^PEGARaq@HEOHy>R!ܪWB&+ yϐ'Z4bݭ\65MgO4nޓ 3)שևD ˨ oA햤5!!Ƒy(qdBy#'bx倦]cŽEquK1߯-B~}з2 mg4'?lmIuRiJTr E8ʾآDxc`r6Dy-3D8I)Ie4>9Fs/l1=o i;ACByZXߢy.Kٳ叏fBr8¢_ DWֶ6E%E՟];0Èb_cԈ\_tLSދ.ŋE.Cp*1<zAx8^W~Yπxyu5cܝsQ?Z33Zf>y6MVE^5!:.+oiʯ7̢cObW_}E>+iFW`p>7W{ %rJ*JĨ5fz= MX*? +NJ_o~O/<mrUP~ּ_TWכ-ֵn-:Ӌn DҖ ŵPDE*1>zY%& z$Vg.02h=x(f%,tg4Za>#IXZkTcle-@10MU-D.W#[9[@ QučMnp҇ƘL잱C A˧WWGzyt8#V' WP1/)vc]z2;ÂZ  sys *Nj|5C5\a(=/Wga%ɯ<OVFu 3AċkDpnki잨 ʍm8,߁eGp1 Pڄw4ң+FH#a㠝X3Q_[3֫L=@(?5ՕNnMJxǽ"{_7ba\L x{!_l9NZ ^D@H0\IDɁnd( s:ݔ`,PV^]ѫ̬ERO k5Al"Q 1rWHZA|zqzu-%Ƀ4!"Q\&Ox8C]b/^ m4Q_CC,lM^9~9w 4 Ƃ +ofh]-ZTeJtetJ#DٌG! `6Խ/ٖٜ!X!vJt۹CK7b3ck߽("EP`0au}S0 ։N/ToEH)GF m`nŒhK-{T*VaZVbzTM:Uv>sQ <ڠ?LRkfho5UhN"rFQ(m\JD\^Y Xc& buOARs,V8tO!Pj2}SʰİӰԒQ}F]zنkO$ XQa7hkq iP }~1DՕj8͐,UFߑ$Su #^I)Է/w"}COtM/Ⱃ">%1R: KިD&kN[cFdn?ۤ3` {zW(6Z+LġI>n"` 74w}p'ƿ鲍0{blc# GwX=k"Ȏ4Y&q _5fV[&W&əo킧|sPv5jX 7m>u:"]J>i) clc԰ d1PPx6A@Λ6f=ۉN[x%|?9@%ܽpߌ7߁['vnkbI%,V"Dg0ƞ^ Sja8HUs_+qȖG/Srn 1-9> qAP|sn|׹ZwfG6ͮ pX|C2) OJ9WyOIy䆻׈* rw䤅 mFN2}Cln9^ #w ofG%qKUin3Zϗ7A,1iexoNdetw@MCr¢ 6kًzgI췏\CqyCrآZL$r銎s|&ol+|r> c SANCqZ-$htS޼xw:yׯ޼KQRal"-^T͡Kgi 3pE5JGVX( ɣt`iwRE$;V/D|nI$G8l7wZfy UE+rĈ>Gosʺ1$ ;]1gw _m 5hsh?p!+$nqZJbA3t|џ# }QΐiVf *)v]nLEL+?:bZ`~aGr|7X(uzL:2rIGs>@ZN^AǗ몬YGz_4[$n+OUGlRdx9&2$LtQ\|Q#\jt_sqSǗ2>iKu6ݽ:^cYa|2v' C9 E1D<It;%d5'e5pP >YT-94nmsJS}7;ON*   B23?9ĄFklӟ)HyXmS9$vSnXX?ŰNXHJNDfdhO.0iLXWQ4m/ϸc཰M':=_C4/[λv¿9񺣨vSwj3ŨkxgD 3}CS`l2 rv$ղ !%sk]9_Lprª⽝r( ކk1%_X`!fv% 9͹霄<|s{i*ÑvwuIVNnsL V{IcB2.S${<Ʉ8E$(B,k I9鎘B;Rd >\׊FGGQy)˝&ztUr뇆Y&jrgg H옙P,Ƈ)&`iI|k()jnya67_Tb nk4"?w`1 n~ k&}s)b}߄k dZP07Ga"ϛ]sDTWW6Y9;ʞmhG5/#!o _ބ=qbBhi0S2κ}0S H\ v]٣tI[o}ͣ?%fݯj{墿sf\gѾ(@lbւu{/sU:pry+xg`7sq& FvxF,:tAcli$Mtp9V%T1N&%>1^A֡r8@"͂B, Bɏ?+ ,:Hiٔ#B䤫5ٓt|e'?P$a삚E6 t&Qrcq>=T;Xq"dNG*/y91",?h:sA{{,$VJE,:Hj;j`mة1ՁU#ډ?gdž Ѓͧi UZ:"EbXox_*NLԪ;7 a6Fz^zaXGOF>&DӔd:.YH4+@LpkE^T>mGo dz-͆\h-ųfز\89-Tt _- 6  >8$%dV/膣ؑSbP2Bhj,Avh զ<:͐[J)(]9Kq'"\?$nyPPH ;PѬ[#qͿ'!k".v>v%Ohs.fy~I _6:4?'ùkNVuC߉-/dT*S׺ꖊK7F\Mg=O3u' /IoT6ќ$#R#ւk619}ՙH4z[BuTHPM;1k-ODqoW)# R>{2tX68bvD޶Ksb2'oI< `& E#0 l4LH 8+TȃWPңlѿ{+Q>nԱ@vsLs*rƺ,`YꣂG0k{: 2{bF{9!=T['3:茻ţ(3襷pY^}&eRL|ƝɇF53VaRZ@ :\njْdTO)ij xV `H9~,޵- Ӑ%Ltij\sB;`#$r6]\$G9lPW ]yёӒg[]wo/\qI Vԯx1aD6v(GoG;fA 6hN(ݞz+e-C8z ?Ρi3DL== )Zr)woYRme( T*;@S@ DgD6^C<ܝ &ҙuZ7z= q(εJ{1'unX9Q{3XfBhqL☒[ ^|HK"ۄuIYLOgۛf]cR0{Խ/Tk.B*j3B%ެY^5]][Jt*bф['s nI[k7ŚG="x?ޡG]C|&o %pP՗֨U/7:)exP-K2%]$PZ{8+mq,:e0=ԉX8&ub҉xq uy9nbNRK>ށ]UK@IY4I{X;5 dǝ´ s1t\tw 2,y1FY4 L\:" U1gf5׈Q)~2fت`)Q_9Z&a&$d9sحH4 UԞG&5(#NT-Uvr̀^\s (\v1^[X\8\,k#c`kF>.-uܶg6#FMԡ ? ~dKL^r8"+/˜E%ևΪֳUbqyﴲj]mQ'*$:>7Bŭ2da8]` m'&vORIx>~Sq۝gryl..ܾH:ՎgP]ny qhu0Bg.Mc@3$}#j`\.Իny- 06hj@m$G<_h5,pi*]V' ߧ3Z_`!aY\fxz~Hjh#h`]&۪ɬ%%.Glm׶C(ݼ]{8WAKh2˱0A 3+WϿHP5ׇ~:>(1 NA9oȉaT]MOq7FbUD<;`~]aC7%TU3s)Us`Q(fPbW ß7Wa$Y_HJAAO>˛aO4G4HE(n. Q%_'k TW?itPT`i|/ѣ(G] }.Y93csUf)B=O.C"nE^vdc$VwΓOME tuv˳J$Kqa+V#sB&&P0Tti-z^ʿs"8E?:Q]"їvr-\jZe(zX#ݦ"EvޝkEhf0q Ih䐍WcZր%Z'<阽ߍw'|:6.n`+0q}kcpne)XoX _c8]6)Qto`;qu2y&Ɠ?,_ؗƶxڬdu)'K3:83HE-LQkg_J rZ_uwG,Wc C0V,U@l yc2nUbdgՖ&y3Tw!^DXp)֨q_mPMEA+DtHZ9 ~ u0[ԤpN9T-$J I}?my67T(/rl wwEO$jZû}Gs ${Yj5E'. ਝ6104ś CK8cRhYl>W3ZNlr-(Sp7,'wǠ0?rKqX/ >Y#]_0n[=@ی @1zX>%]\ %]G"ڹs3HG2am"O^mH6WŨNT}$Yc_b D7&HzͺnHmg6Gș t)g0a#[EawPu3`ilȦً7ky ?ԓBz!cceb44:3P": 2 @b2ju! ֧ 1{ =9&@rlzﴍ4>9 ?/<^0ev^\_뢽-W==obq;7.-s%H&!Q&γW/Z#{HK߸@*?I?W{ }ܠ3^PVZh٨ ɤlL9[dh.r#)R}ցȭwIF Xv;fb)m&Bgƨw[[`v5ngo6;F˳lXe>xcVh HPrzT@K*T\q`T2wpwX -IMZCjb 'a1U렙6Kіr=%3'@_Wl7?ڣS6Q48Ř9x˽I&e<[%zF v !S +Dll\Wcp@D`aQ(K(g[XeYϹ첺Z4tRco!TΥp}kf#^BsxX@='a0 1K걟x}U Yj3 ȥi%8PA J2|5V7bEZ8j캤a@0 <]R0%Xcv'({=+RxtdtF9rQ`u}!yi!q#4K)|<=ưLM(CnuJ#A:˞ִ1nE>jDTEXHh|Z75XJ9QE×O@ dCqZ7Fw,ʢEdeL/0;phO >_k)~RF7΢Z^~58zt"_Y K,ʸy$ QQ?rj?ѕn&ͬI>`K58/5= ԥAK2.y094tIa8Wa2'3<_ Q|c=EX HaaT~n--O;pw%D 9>-3eL8&&TCg8 9 O '-ή\d<:i?]񾖫"~>S<'B_}>{m;BdsJ%4P/k+P+zl(\@XBM&#v$U@iFT8̄B2t` ҖYiskM#1:.!\ 7E6+@R!7Yx8R j8NW3,T@~>tx76%şѸ׼s\hT6wmk~2]dөuSL15&~_9bHlelDONOhPв׬[x2ܓ҄`w[W 1%I NA,vJCG!Cigeb7TzFJRwrEI'j$dnfʠ,oV^,~2 g>ep981^P2tr{c N6JH2\S2ӆM8nʆx.4 #\exoNd 4i2,#7G{\Ғ ~n~(d~豝)|"# :%"B6/wf p&Ui `6RbA7Up@ۉjPGi(]L+e=yju0KDK I{e*Bj]5jc 0w;Լ@ 9v—O9A9b5 ޒ'xo)TͰ<q^j9\qTRHMjH*D3𰎲|~ ")t B%mtB W;F!%q?Wzp^ T!&F%/xxf޴/dwمݛs9r˜] C}۷!dQ*CiG ojfE8#7!(&E g'IܯZ@@ٍӲ͚r鏤E1\ѝmSGdw ĤFqbNJ+i1nKZ[bѥٗz*rn{W%M15r'&L)DK9ҋ3/9-q_uFAIdW,FU]Xkб~Ͳ'ý]+J62ېX#H"{&n(WV / jIM}pӬ&!E2%Qf!tbj焒8Yp}@ðO : 2PQsdO ' fw8ZP!ee6 նR$p%3R*#s,^n$ˢa67S0Z2f籨GE9FbCM8פ7\C"E9ʴڥܘE6[r(;hE}Y)M\uX6D JJO-qZN*aR8RyE͸[ug55#긅J\ecE@,%Vvɍ9ƜQ\Lh`W;ffjg kt fỸpCCa-2hÆe˂Q{f9q|^g۲(y=ף\Ʌ?M˛jRYϛ[X, PK\+<`v'_vS &$YM:Dn(`(:qG{Y7}x$}q \:Rs;|MUX";ߜ{黧LyNϾ1yR ߏGg_# %pjtʆyF"xҞUO9k,v)_DeQ-Xi.MTa&/h}kmvƉ'֩4tr,))4Ly+IyptceQV媈?d߄Gp b jdHtv~ő11bKkCo]$dغ7&a_Y!: 0)?T e&h2_r*88g;V53-1M۲'ڣg$: 77ޕQvuaO:1׈Ԓ? c$ i+_JI$2B&F Z4p;qP߾vÉ M`X9J+i2S2EqPcpؐ=/'2ZU`~I0Sٷob@G=<&C0 K^#.DdYmg=#ǽ/6>'Ǻ`\ǟ's$SIbrMzA{ai'S3}7ɹi;kNޥ}.YL=$tZ=  W%t> M Uջӯۗ_=ӗNg4䃣7r}GG.m3Dr[Sl׋S7g a'QDN-L% E|IYbO>dnv{b$ ݌gSZ1}iIӶ9! ՉÁ>:(6Lǎ?GS<) bGaOLÔF#:dn. 410fvcp.kt*m$j`GltI͞\_L<0nŠswi:y: S<?]Z!Kelr}fȆttrɉx4i _*Xf1?&L&B pTuGZ%I9ZF)H&uA^3դ [(?bmO2-B ?u6H9e]57{P0i,.z*:iH s(dA"x{(bOOE%Żk\8+m{@@ٲu-&D)MegH>ˤi{jFx [i/{V.|׎,|wZf#v04K~zi`n pj"I~Tn/DD!jX"k,B3 ENN\b0TE:-B×^^S26yiuyO+a9v_rDg=~*S[!?ĽVfxQ%R Ί@PL#L znx?H4=cN>-ɉTYA 9oV+QҊx,JXRKĞ*I9183Ż`5W eG+K9DOSdvD[O;3/N> "S$$l`~chG2 + C!*3dnj 'APKS!pkg_resources/_vendor/__init__.pyPKSaQ}` pkg_resources/_vendor/appdirs.py\v8GLt:83n_:>OP$1H-AZRy}}*$AQ;nwwPP(Cߚ]/hg0 *lksa ,[?g7Ƭӭmv oNY+',p1;{כKGOU*e=ߋ=.X?X<y0\'`K=HؕJsbfsäkᨙc ñKM| s1zu|€ML!\-sb=_veL.8b{Q(@HďmG;['Z^< w[r>zG6 iB7 &!5aEC( \>oxy f"棦#&pC|t&'~y8a4hvAǖ"^tnx$NN=izW%D5Xqp^T ЗT.p=gebIasGԄ7dÚXLj/΍Saj6ݏ8#$!wq0 uW{PD80`>\Z3cp#6*5p` 6@@Rd ࢅ` ?t6X1k<z] `t3Vap\[{{d,}ObW&({@([ZW<% 85u0tk(0 N4RQ_Q@`:0['QﳱQB)0$u.%t#K_iD$@3Dž9sS C;A)^g.VHb>D. e;cF8==W~\qY~J-*H3IdI 龕}P&ҧ(iM8Xrqn.hYƈe7`-Q?`%+3mK<ØvBn ӀKZgǯ; Wz}qt5D(7r)C<E3qz&i2&ȏpqIh'Gn%SƫziIh~{zBR4_$u YZuy̩< V5 (`[l8 #J2QohZ E-!-Jh7hS_؉`T +LIz%MF;uypX `:^{r G01gj46Pm?pҨv| rdhU*&jd)'6([ ѯyǥQk~IB!: n ~:ک߾X6ņ^, \8]7~a_ V3@7d2gvI_]Cc!NBog!D K$"FKB`_S gk ]ysqbm^mzۀcf#eL8* Dh)| 'Y~ʙ >xjG35h uZ7UZA:9/΂` ?*yVS,312jgdSV 7x?bo?,*g!veeAqUkf, ]YB;7sLp TX,ɬOs)F2Y[j\_vDX {LÏiX KaYιb kkx6A K_&%ůdL}yk579>zr%"q|F^P-(ͣ߂z5嗱 Ukf\:*˫1GtUr\Rf__OQ2c=,Y@FJ n_)#R6`V(愎:C}cZ>egOkog-ctno尕-k[ R5+\/Djtch>Gt)TVbEG39)H.-X!ަwz+3ꥃ65:K5l֪$$IP0R~fL {褯*>m qkA"qbfm&OU ۶o++/>f,md{+*bRCnd)ƚ[dԞ[W8̊TP^i{Y sU)"xE)"ER5>;b9ZN7rhNr` =Xb+P@,pU=ǰR><Y9i43B43ߥpdkFG(fֆ9sGa:NfeHKSՃ;B'ǤnEv)Ft7J@%A4t-;%I  L93'0ܘjXj;AySG8 G6͡L?\tYzr.?-\nĝ<7FD Ch댽v){l[(bT>nå6?ΈIXA:-N{T.)B, GYw_ ?,~ݤ,Hl _Y:X][ݝ'Rƪɭv&2E6Wu^cRo.E{J/ˈFn{M2@k:1%1&Ks\VL)I/-PYSZܗA\&7š`դcm)/B9CA? tF( ~֛y,}7#yhI½K[Fq*lBQhAc7fk4h9z]yY C:n÷ھlkb>YܻF iU ֭4FtxI)ڱ( (rzEC>plְC_p M!~&̦L`ayf0_ؗPKSf]w"pkg_resources/_vendor/pyparsing.py}m{6>OܮRln]qZ:/7vxmHxSoAIv={K$0`0/i>O`v=2O? vuWA8kkk_x> wH뤘eYyR$'YgU2"I4YUu0K*'Uf:sTU\$P~e@|4&YWi:I α;A@*uz8'A$P:UP$eU#Ad>tJ;R"y CF&4dɼ%>%V=̋L&hu 4PfJ0F_S{HyAɘƝ_Q%i>W0Lh88rS&'eB#c zͽIՓ-qBg$B1{RV@),/]wՏwW~߼޳gAg~w৽_x@7/zl{gݟ_=8^ ^}{/w|)T}0{wp_Qmo=G(/v|O= DvzΏo?y`: { 4b! چwp>5# r뿿Wv]]niiohg/ۥ*)}]zMnv^Dzy~~_9Ե;؍7{o^A ]@՗ 1}G zǃݺGv7''OCXaN')v& qɫ4͘(wWߙNl}G)vhJ x6+xt 9 ;CG#w:׸YÚ\#y} 3 'OFg Nsa[ p|2̙?xK'un`8*ϠX}=@De?i'7̝og $;}}Up Ong\A΀NJ]+0l/3'n{*.Jx3`Vmn"3D tQ;q<ǥ*yO"y@SePr^ D}YG> j s~?vN h:N&w`s'GoG]zԍnYXf*ńbBޯs@=6hE l}I $Edd4)e3. .=)^'*zIUF^$l@ 4RHǭoGNF#{Hf TaX$"&g~"}@+o789 E2& 0é0$z@d.wX<ɂ"%\%*^J+ABi$EQs4O\hSH3AL>AOj4Q{sĎO$3ʧ~]RQmOO)s>ɼc0*w\yY9+YB"i/MAcP`V<][f讙 ֦ $9 KXA<"Y633hiCf@Q½ M +)WŋHT7_ez`v,3uOhuyZޅ`%y"] (|wAI'ه /@I ^c< ykL*P@N;;c]a菐N D8P2P{uj. dPfOKhʜ<2"}X`c1ӄ_ tL][* ( KUY5u dAy6|#wpiq}Ix, Fj!|$=|W{bΊ_q(0Ϊ.IdLOI|2p/Fn?C˜~j;66?&ׯ񩏾S.M ƗTXn ͂G*%UKGrt0lT >?$\ f2f7Y\Cʹ hgy~_$#"?'XUC}^ZL듔Qrga|&?_͒L~I=șpgaGFvM~/w3NE:>؈f1s^ҷ*%h /{cj:1_n_&&zd9A pEM͟:p lW;D?y]$i>/rU,O&ϒHQYSl%)R%Dmy6Rd0=ƯN4Y%(fcpi_0[MeUqv/pJ{$@kFT%S}NQA<q{R t!m>>|eJGki%dy+ 2lxb۪ৈc/U%q xQg[JQC'69 X{ngO&n|$@/GGH#xY>F$2TQ^IL|E5140?g ?+Y?% 9.:ZnG_|՟/3oӝgvGR[rI;1"fwgJ;_4 GbT:2+xeՈj"C C&'u\_QuI\752AnsmW⍃/whQEhR`t7)vI4.IWZKC CA(mSmV#:$UPZ;4Tŋ1Ko\8o;~cš){j†IJ2iGzg#x{sv-tSZG#}X+"ėy:.Xk~N'p-x>?U. Cd؁/ 8{;m=K%ꋲxPC?3|1P|$)YPf̅2'nZtE6ZđvCA: ;0Fvzm`/ kS` R5Y};A Z-&طv 5$)._+>y[4..ټqä8PGΓw܅#IR! |#1*(;!Y2B;5XڎpP e[Aܖ~n21P"AmMGu?f;}d@I1; -"H4f܈A!TוVjI)" wȯ26yP|kMm}+y2̎vsъzPT ngIYF:(v*gcG}$= HĢ|zNOk;XYRk:3ujvݡ0u0(ԾCYLx'$=k cxqfC4[`qt:Mh!0^mJ'/xO(8t|=mk '7pO=3NQ},-z|*qr1f8b4Ո`]8nooLMR$=dU%7lUFuh!d>}[B*IMgHoXmilrƢ*}}AzJlbIi asx2]D)+[5Ĭ[XQ14* mx8C-ܙIJilj3yV L%@fжȞ='CI">A,)Oj[Wgm5hri81"q.PXfj^{6n*y6KqZ[|^o'wx1?Gd F;[fVsnLbJj(GGnmk(d,&sbth28,bH#1 $E4 P bSIg$Y({7=6wXRJhTo֏ojNEm4[.'7-C²4J<\'1` >wv }yHqAuǔɯMMgJ:xP?f&͛{!j8UnuYK]oo<|n B l N'lt^²3F:HBǽN-m}%lu[ i;EwTW$jc>`z-x`-xY_w‹{u/Fb] X0ozfh|Ddž <=D F|rU7^k\n$_xB߭]ԾP*H[t^Rچ`u70sK P(n]ofqtp[,G^.iUX]s(J1W%`?O_ehxU[$`!KHlZ*Q8}j'ߎ6B{WjX4^G؋^x9fs]Z U%]҉in6pEh;U8V `J(uä)לT nY>6P$]/Z;7ŬDL6'lPɨۍ{A 뫃cc/x^y-`͛Q[<^k![5e>Mk5E䰤{Mhk> u5[!o{xT+ψwgJ٥{FtJFzKfs$}m6m\[cQɖy(1"4R7wk..r]eB.z]! ‹6.]`~.-DEdLr{'hr6]Ҷ/aAنrx{S!-uiRZͯzEh^ڼp+hԷB$I.{S cyi>6S[&{n/a6|ޱ/E4b@ pϽܑZ 힦3")ќp\+ W $Th_6 }8DzւK,\$$s wAͧ(M&щE( u٭1ߟX֏ͥlӣ0K{EciJ&RLշkD?U6*HyϤLwURxGYXh-X".=ZmXqIv6*u܊%(Fm6|Ү'Hjzy%&z શ~҃*lu?NR+2R(lj¡D-DC:@u4ŏ\AmSshiC$k/iء+^C.~/I&N01_ ! t!oHP~ZwSz̓6FC"1lF±CxTYNDȴ(*c-F+-:V%Vm"e ܇!ܪVK l?^lPҝ%][ࣨ` _$=j=iBu-jT; {E6;` {5F"{) *Q;Ht,;gt֤hb{pF_|j#Xԕ*_X\it(If|t'OE2sBRCR\%1jc_$,2 ,A 4s+}zLٺ]v(ZOw9}ulR^ `rQ 7b\^LN_B!6T,G-E} RӢK 1 WS2MTK]Ii=ܝeA 1 MGVFtIY.+h-v=fX퇨 btZ_P55¹ެ=Ѱ~Muk.iN[g$'B,YltTW񦪏AA: U'%^yj&6U:B͆#\-/iHFO5i\z,t }[Li_Yņ =۶vMgFzm3<=aA %mR-T JmdYLLzkatO ǹLo ,YcSZ9ccAz=Ea*;t#'SO8;Gcy hp#/S+Q9K(溱%Ζ#Գs1E)m6V 4zV\Lf[ݮ;e; Pxi4܂6ZFmZ޸ V)e`q5%1'iܳ젤u,kD2o mHo$i2_u%l]+7d|K0)_ jI1ٹ/)j} 75tiF՜bĆ{9>q Nt]m +$7ha/dod{F~ YEcl_t(gT0 j/{hU9kG6psm`۬ ⷯZ ;UfnKj^Fjӑ_{xOjJl8 waM=xE\cF㓞 ^j Sk;>hQ_u;~. 6,#JB1:p1f a 2|t[:3mb&F}%"'?KPj :bi~ V'ѹiYMCQz:csiTpmz#|SN^īPGn9d0ou'o_]#t=%hwHp_s>D6v)7||t @w Tg9<{o~ q}%Q~c;l2fVV#n4|I(@oD ]Yɱ3fu(l [Rmf^wZi>ufV6\\r`.Mxuڝl5>FUEeօGDzU,+\F^~>Ӱ. jgֵ,Z5"4%mꀼ-ělXƩ(==MH5Nӳs X#ʂnāz̆rv?Fx 9؅{ݞJMJJnO3v(1BJG6 O?05* _}n Tϒ䩟}ޯc@lF?OpocccS<*R+jƬ@]P% u{ll4hl]._ڗɌ>X.pϋ#%#v^,6պOZY cט*gR}&.7_309zęq{Dm gn g9&(&Z,K`t~"iyBVtR)/S5rЗKQ(=}\!$D5J%>7835l5)?o+, /vYX_H@3 -TaQoUH_52<;@-EIeY۹衳u^_]G/&_P>t>/?/f@"C ާ#h5Aq  z^^2qJ[,9M8 0q\&f` BiM$ήM7KY,'kR!R6F?׮m3f6C9||_%EA!P/J#ser?x2>Z<.+fioV}p8Ao4un;﹵uIT6Re|_y]){ J2ЍF?ߟWlq>*xg='E\\? ʶ+ Wʢ`ϧ #KbuWcen7NhuXǪrVDMa,$ O`^ ]cX[a|tOώ9 @QWSm&ބ:l3śH7|']L^|bj=ħֈO㚪^~erO#vfla1nG#JXn'0gm{;ktXoڕFm54[?)㢙$K<6]X Z /9 >~ՓfPτW *MDL'7Vs>)bhqL+ǩLGӱ3+jW|dRMkϜft|:_B4CsIV<@ϡ->A9(@\! R4@fBFunM;^f \7I+tX8ЖN+*;H@gg F9`1TŌRuROl-G܃M.*۴z++ p%'3qChQK:i6 Av^JOitY@F"oi넟#1lAףL{@@sNl3-Dx6 7znjtH..C#;jtΉF M7l>-7O@gy!C]lPP|Qɽ%~s& adf9lm3]@p@ f`9Y! 0|-pO&%e뎓Q;Ht4X.۸Hk`RAlB=VR`vwGF=R.fӷcjǮie4M*((Dg:&G&S".]EhMQGx̋`LmT̥J&)hKb L&Än,8`Ry] hswQB$H&s]45WOzOga'PZL@dFHЎvR?jH߹=-|QqHЯzKYk~dU'au-"(kVEU9cXvUz)jڑ֬PædzHWxOyUr? Z b2EV0[云J$t A̒,TGPsg{ϟоR=_=yl7~wQݗx x&xE  ^|H3=| r'{yf7џ+30CKvW,"",g W4 0WZ?~;`iZ7V~,;%tY,6˶rmj~)^tL2؋$i>/d{d{n ])6/{70uZNkr 86/'bmbkC?Kn[Ɔ8~kjىZZiKehԊ% H j'0GJ&d,g˨)jv$b<_Se:Kvo8!7mz[H!$N2aXIFc98p=x Ci&!rqzi+@l ntV@Leh <^1*2J:&UpxP`)V[H/)3!}idiySrb[ hc, S$ɢ׋B^@ m0^po9LUw u?y]$ƘPlS  ghIȥl|"ZS`4 E:'IfkR~]txh-`ķm`4PgԶ KyÈqLƹh&@A K p|q I I$ia{ew21 a6'`"(>vVeu|M7VTI㗷l˦,XYYNIAR>GW`:tȼi(Nxm^fTg]"ֶ]eqǣihiwcVFf[FuWŜ~l@T'((|'UςV C19p4XU$-3Bţq^_Qj{ GYiF 6 РcҐjFS"Ԉ+e,L R1P$SxYW`tĈozcڦFyMB28y9$\ԮoȗGmwIm=ɰqxd%9(euDb\ QRTJ,`iGN['RJ 4i?#VNxQD@xvyZƃCt(y~i|3LNKLاadŷ*sD[eL131mjDS E7nF*"C0UHպ$ J ˢ4rQ E#|rbl'ϱHAi [sr-ǺAieT b} }XV|Is8B*o½416ݿ[0/]ì5 CZjD#㾊ׄDbu!fq5Z :-xB&G W5 ZN+<Tj4NkA ܀{6Ž6f6P2rE6u ]2Pᴌ05;m;V]Q]Zc7y%Eѻi>DoNn1>'322F"1Wxέd:#?,&&{FO $aKBժﰪ"'h}mrCvEf}(͍PX yh74r4[J{C4INl(,BD,aLu ~ii;Sro $|:5f-tG^}"dZesǖHgG(c+ݹo ضr`_M+n@ BI5yUy&@Q|Qհ"/E,bu"/f]/I;j.ɿˉKm௳"?MUZN<:okf> ÆQVT.Y˃t';i6rW?>lXD٪ow 6\iźsL0oX^ȃZi4,"m XA^s9Vѡ'l1Pyn*iƅ%mZJ@8; ʏZ ́Pמּ=թ ;ꡪn^b5@$cAVhzhjΉt&zK1Շn-N9@bqc3z1wEX[+ZDjZbY[~ՐP}die[~yK}>ަn kB( wYea,XptX>O:uivև 'M]_%f2ҥ,g]KZ׻òuﰴ ?v ;~`} OSJe1i'ΓXzWc_a+tiǠ[ַ..戧z6k^{%,ɌZ:YH 6&.y .;uCk"z >q'|9wk_b#pJkO{C1}.1l\}k5fm7kk F5A;kK^%d?pf)҈cЙL.,AF~YOħw3a;H@^\}xamk4j2cnd!gA5{$l\rEqK~\,4w(<&N}ܧ{isLreHHD5p_;Vy :XGj#Y1)ӜW lxLtd[QhʭTdiQє\mlfUB)Ha0I.8+b [hc2lʴ?1SE"MlM;*#CŒ?Z$iҲFf:+P  /՛<|*Xo"LǮ` &*ig%"n[LQReNK c,J3H(R 0).qf{xl!a%vv]$Wd\ Ht(ב[Q)}} :=WDvBq,ugI ^sТ>̩+jgLiB ֶdD@9R3kN$zWic!1Yy=׻nhulrÂhGxzC9i9a^N46*\$)uP+)O0,)ăOY۬}A'uߦ q`i5Wi҅{Y[Fw9i}h0vfQg]1J.-20Ji"^8*jGUX"oP IwPVi?TwFm@Jb+BHJJ:½3#(R`&SgYI"hUtY+5:ꢎ& F tY mގ<`\ B]U"/ IAV{;Ea]AE *iFTMqM"pZOlD7`€^ڛ%WRܑW+hY l;T;ײpoQLsb=,HqRǒWgqyn$/>]\m:M(%~ӳ Vnuzug2؎JdJ uRSLTFi|@24bU 6om_ yezSE":>+Զ o Mq(TZ:B9[3nQ!6`bL)Ɂ"SfR'1z.`j&t9A/OO<-Pր4A9B7-+,hЎgًVr}7oa_V|0AkGrs5NfS# ?zGK3:@DaBm$"!7(\]D}st wSOn! pE(|jYBi!6GHCogTmxB#JrR)oX5s :FӠU\%k9/ag'("KegA+ y|Xl q@~"&e2pXH vzUy'\"uT ^EZF˜D* f?wfa9?335\S7 lfg&a02]Ɲߠ,?x}'jok?FIIw<:m%xd4ATA`A_f(4Q9SF_P Sp晰4@V!sͱmTP.T 7xNK ~EjɦR б"\7!>54zAG(os(*.Y8/#nov ޾I%/x0j(yZ:+ ФH`VFѽdF$~+FW_I@1|j۱N #p1㣑LދUNEӶCfeք):Uʩq,u/L-6*5zG3(D'v uMvuCőDU[Њٗ-8/QS_[-f2ĈKU g>R2r̩QeXI}HhS:Zwv?/p D]h22~[~|wmH 7궴nKEgoY2:0yq;QBaNЌyrYŗ^S`q\ŎIFmuzF`?;re>*Qi[ilB2!-cs^c%*<]S2+e@ʉgS>^!]E[DbȔe x42Y"j)n͏Ett$/:=t<:̄J1`|W Sb(JqAH閁-~X:>U3)Ǥ⒁IFZtxx2|' Y#)cYhOQ# LjVBffu-J< Ye>_cP3'`dg]ǶCb`^$ϸ̲ [3 vޓMƻ1^n )**pㅘ[]"\uLD)쌡gdՂQ+ IL/a28`٩h^e~sPZͷjm d,>OtT;CJɬ]1ocukMVP u2 ݻ0= w fq.`%Ӯkzœ.,w2Flbl/zQbDuJ͆ h+f}qj*n5 hj#ZWǵ<8ALaW07@̧cv48&d0wi`+q-,˷w"æ cY< ?Q}= #ZD+OzCۃNb'ScKLA2.#R ꔢ7QU9B2el˭6ц3%HD*1b*|>>Z9&EHhPw'qr$^5]뇸"4fWr_stZ GIjOӝg&m߇-^̕cZE9XA:S{jgUBT -x2[XfJ(jͪn 7 e}"N"`Y6%j $ф>߇Vut.`ZbTr" |񈩯B.1_ԍ?J97 D*-wK(%6+6(ՆA;ϭHAh4LU/3 *~ GN2er]E=ZE2t;(`Kf q'߮@:UrO=ǷFg/Nl zzpo:ɯ!^5\d OL(ojou0g_"rW %5mmy\Il%΅=ɧ: 1vfL-m*m+2c`: &rbE~H '!H0@;CE(^[f ˥&IsZMH'CJ9?6$>ec\L0/ڮ^{!㏜zN5Vy4;]b"%6%2sgz۱E@^XQ~EE꬯Y%[K%Tg?i KۿqagAK2{{QgLޑ@. ɇ. L EVƺpObLTCeFa$`:pr! ]+t#ZS=ðcJ$yUM1q{/8(/w% j i6NGM"W&ʻ/[0F ?E-+C0Cdw(Q'3 &l|vtZ_|i2Vc/q>! І$1lq b JJ>'#_]6ClG ;=+N^mvQ1xyoNF:P4VN d)ѧm;Gq([AHwy6׎p/1hp d9pI 55r]P!&_EZRt a*8PJ"fk#(8_z_h>xuDABa A9g3EN*NӒv‰ӳRX25Us2NoG/_~E1 Z1#xr2*nRQ64#z`CGYfM$$ Ϸ)[G%s/"38:-0DxSiqٺ뽱jc-(K촁প~\bB!&&u#FWIzЁ}pXiXt*?oKa|Kftgu6(( (fPc> _Xx"IbC1c39G 8Nn(6tH5U "PZ+̗,<`Aì\+EKb5_kUhQg̓1~ͺYn${?&P@F"3-44rM Da gKz|nojfLi] 34'o~,s,X'ӄD-Jnj 8ÞN0Q^_ܳ v)@VYl$~4\e=O_7?>{0=6S_-ʷX%eH͆,\wӚy9NL؟~1y轍л a*b[Hǯ)S1"ՀLw!_* e[f} 1qIKM5nء$\%N}>st ̋ 7! e0/]ַ_d6tB;K.-:p)nIbZuCnjD<sqɍ^X ǹXi4 N:Ս6埢C );0ƽe9ztL$>wS3ݗ~ߢi d1E>jKDIw8/;spNĆjbb&̉|\c{뤠tF|m%UA$qsV *rҙZQGi1c嬨LeJ״.t-8cҿΊmP> RuD|D|}BklmbwH|QSz w 0M325\'K]j'f騎NTL 08`d1 bۚ0[>8#Ao1څ:i'õ獵] J_lr0o[>x޽8)9uw{3]U^⥭kxdQqpl蛬q]gV)HҎ CM)fӐew&3<}ݿͳo`*:ձZ%( a#Ys"[ Fm iRxh#E]UFz6WCߌwPyP^YeREk$Mxh*ݸ!2ǪZk1 )c7o6ěFuOiE cP|}9H_ S8wix^n7wO6lIk;"osR3.ې QZ3=#RĔFǐuH,t*BVD)څ6a>Q>G4┎"ꦥ0QTqHAy쌂9|k?]W(x9h:y3u?mm}h-G@`dG#G|o{4Zz5˸H%^fƜ޵C.US Gq*@Z9-F(y_&ȭy0SQ(2,%Q_NQ8^H齲^yrLuqVsϳqƤoX>\.14,̢= ШܩVJ _bk5Y%{t @UR_mrfH } 'mX*uH4[=:Zj=3EW1@uʧ%:ۇ;ﶷn2ucE̶ã7nGGӮ>Zvo۲3ucr{+^3v[s؆cղAnżsZ]82ԟQ:-oc*ow~ݳ{둯hf`i J_R5~/d?/,|l0Ja?5rZ.@=k>2>W-z%`Po\;\n>ll/ͽqƧ愻.A4'˵Bi3*SLgj}5G_bA!p|b|FbV[Y9n1sLOYnp'6Z[د[y{tQ^dLz 4P>vӖՏjwĪ>~^Qvx3 ~ZvD((]C0Х\Ltg'xtH{>%KL}ڼ 1o,-iKFqq3ۜBA#v"A=tY$:USlqlB:H%JF,:B 8*.W(FĄ,BM##:'\ "۽ g B4r.U ;q򨭃*Kјm34ZC$r^HO,4I%hA﬒ Inl2PaP DgfBTzQSvDƀgD qej)͜։RU ׍؁NfI %c'Ct&4aC_dݡH;>3.|HQȮ%gP_wI.n(Q.z]kHЈ_hqy2D#_ *{xc<+DΦ.,)~bnW$h"{BmJ|kgm}_~篿s=e/kg! (z!3)rIoqG+PgHq!*]\oy^VF፤jPݢW`%P1/ ' ˑCDD32Wb{iζ:2mE2>^]q/jܫr[}B cUT)'̮wۖj&êM.n?ZWhFy4atQMsŶhwSV :,A 1C_<[bsfi~s,о;0P~Eu69$U-JPhRp7ȅ8y_. 94TPe*Z#?HVCZ6ރ&!4'kvM2Ͷ鐊W⠥V2}ԣ_-y{8Ya4 QnNd)qk_&l(f@ '_\m~`0X+BU6}\BON&@>i3>Mk䞽޸!u`q 4AW($ew(ŢK2dݹq9ySQ&EXdL()6!}b ,KYH3TWV3=$|O3,ntΟ9S_^?IGIĬqr[ -k-"F1_tvu.v:'o￸Fuގ4Y༪f[M~ 12M7oyx_y:i'VX}Q}~ܗ Tyx}qmo?Ÿw~y,~mo/{ysfnq~\CmX6},ɚJ r\qT}T^aQRKPG&8Ť ad!`,~#4ѠQC4ęNYh0؍ ¸Gfq{3BG{\-~i%Fb0BjeyFPnq1 оH>̬=-e)Y{6nda=N{6&-vER,ۉ[P OlIMZV$okR@IKy3nP(B<Fk"%0W7@j*f5tװ?,a%2¡8 4ZDe$wiLUssZ!zT mZEԚrݱ{ёåEG}CBCߝ _8i,BfNHWheӃ QFϊ#Ks#bv%F| _Yd;zxװ?cY3m#(Fٳ+JwƂASM\ϋmM50)z\Ny0w&#IgKEQ~ "³F8\ŪW 7ݯ eUT닑x<ȳ qw0| eU4T(t WTPw{O +ן6POh{1F D4J}ƭ'3'{W/#B&83eT~YݵXs8/EcvwJjIDqT z?$ƭxmnn[A4$1#rs@eB#F,:ܮp++ƧN9vy]+UP]TDd0Rz LN5T fXAsm.unKbQ*oA C8lDa x##?/cˋL;ʶa(eJ,ac>8u ,qqӨÂSDuU?4tV> V Bѯ*c#Ʉ8?0@DNiEB>-k(s=$f{%M|[^Morc&x~qO)˃'in|nq8/ȻrCf3_A'iڈ9=$.9u, j^gr^&оcnW.&z% vMyꚶ/24W%W/i|2d~~ ?ݳ`o+xI  9BgdċFA `EϬa7An* BuoRW3KNhU:bYuuKt<8UX( #M|(`[(fM-y6WBlC(Q d7n8:<NG 4;(** rZdl +FCo)(Ysd&7P)pO1o3޼ۑ,#z{<{'[& pQlf@Q\!k+@ &dy+HWϦDI׊d_zgosPUȶD7MEf]\D{wiU[Ӈ#<(}ti5C\VG< u^ث%WJX%6}3>tcWܹ`>yhVzo3e'3u gldod4YvL<|2-l79~h E~Q]gOsDu`. +QW=oϪJYf0.ZhX,jYj`~q 6Ben~a6`W˖*X'N` [53)B3u>O&Uf5iE dV]N8:|QK 87}Me6uyᢀđphKIh˗'IbU«>aQT bԎR6̛=$Bބ1 X, D۳ B"OGhE*X./nKo??xq̽84xɠz:;cYR2hy)舅VR| As8Ԣ ]/sէ>~gBNGt#YjT89\J\,Dr[E+Zti>p\՝1/~/fZ`l-^ $Qޖ#Q4ܕEVqbaX[ݼ)D md`KL:G"fkqw!fgBgϔUh%s0F1hxq&o R3>ΕCaQowR_xVzYM6\K^/z?X1U"'iQz%w_^uN?تC:<\qەךs,ȫlp5Gp!~eTcZEѿY~xի`)8GrchJ1ׇrp&xx,Ӏgt DR1%aг9%QP) y񧳆 5VMuNO0?&T 'uяQm4Lk]csvGgquɮ`F>g^wXaumeM[(l0HV؎& >U иI;H&f[1UYy_k. 1k cT 'D@ÉaYh)_i>NKYU%j]HZծ -"E.:vLz5&<ʳ!Jȕ0IDźleVսliW+BL"Ccx=[ݴ&+ *O2 JJ7@%2UGBMENiռp ގ6J϶܆֏J% #wDA6|",%i^^U[5ͣh {XG6RgqsWWNe !01}DNgh4_'%q() ƻlll! +xu䀄@nd%)FLd1tw_Q-$7%nE57V]$-D1bIEM95R]ynMzh%= ((1zSN[vZX xɡYW[?ჽBGE^2ݓ>b2C9[iK^hi- ?tގ^P^Ih$K[N~/PWxbgȑ"([}$.ᄑ7K 9m(v8ӛx;ļMOTw~+iOh)ADTe)n3/i5>^ݥ&ب^ǁ}#I]z.#F~C̊6Cڂ#REi4WPa+3/m%*b#z^`菁C0:JЫiaWx#ŧ<(xIJ%!1^N:ƨ m,cHfN.R[Η)l*6_J=Nь[-d[튲O,_)q߱  6C]ˏ?E{tr~՚hm@0,;nm<4[[_DyQ[([;Jv+wZH/O_NWFMĜzTGT>]!nhM./w3{1u[bA$.o\qDH#MEeښlgS!Lx1`wJ/ޚ*c WɵtBZU!ݡեmcGͨ.䧗cƒloozk Mm-8VWBҾӮbs >`\lzD,u-xAZ,Kaʟ>Hg<;X^a1kB1>H + ! [ZhzP|']PE5=jd_,G_R9?,j3S|ppyy<и:Z!m;8}ڣ+9"}|~BÓo)<aZ9CMd1*S/.bd>_Q˓$~IFxow>}=iׯݽ(l@˿ilwTJe_}4{z~˛O˽WZlk L6)RA d\LAU`BҚ4-*Q_%NW3Ҧ|{%9%zb~9BN=#26$j*P@~^X%ch'T |. k)T !܈vs:3/1HM*4Qk}=Z~&!>znӯ\WXWdCj ʛWƕ02 o\QmBjt~Z_)XN:Ӫ|j˾5P%g. V!$ )6/}%#ۯ*M%<*=oK#;#oB C %RjvatT^6ʤz"ƬL, .仿o߇(@XqO&FHMŹX(uAOp ;MKz[R!dE& V4LT0-% knHÁyd[t楥~Zzk5 j bn&@^4@JK³ ':^8@A˘s щ% ^U[::䵿9,k\#QZ Ψ;ɠўwM/Vou1hHWWhq]Xg;Jdd|FL W"ł{EUy2$ bP ҩ1}:NȐ}71d1aY&V"UG9?(2/F;>e#GwènpfKqWܒpCQ،TAc7HRk4M~iV/uC'l"b>LlŔSNNMi))dGAVV ?L#J_+|#Vb8Ig,Kd&k É{,Wi,Be*Z.b(T n5ʉWu|oP%DkU:hV:PͰ_ۨRK3kP'UB X#4# |v\2~TY *i7+M]KD<w1*RJAq' cUB J-?SA5_R,z6 g÷,VXfmC'&ɮ:cE}~I_l.YGxl*)XG",-n4| KŖxkǧ?ckR4m[@X*YEm`ۢb& Xlf6omH<'/GTvA[ZT7 ]z –9Of1Te[ETP\w$ #6R?t#X{QuNS-7b%[ ٶǷ`b4~K+"gMO_ z3Ky "J=^< vTEوܥ&$;lkj]^gf>BZF~0G^5؉+Ά?_Wn+%PU1i~.X t-P^(29 ؤ GN|wd1J9v}Kh/̄XJe61:Z+N:}. 缳aU!THZNDC|AJT 6@58)bHh`G`!t☙N|ܪ4G*/t`K;2.PAIy? s~x`[awY̏Y\gm)w/Kξ1;˭n"e˦6 W Xȯ\B`KSr \,bVfS 2 /Ų}DB$:+rC.Ac ;REd,+f4N'7;7b2eZ6W|3qhqoS;2B%GyN{p%~Pĭc@~?Mm{u BzHK.!p[e,ѽ(iE( GЫfnqim1#L_ofvT}L`,5KI¸3pB2gJlыg۪j|Ӱg:ѭ@|0 d|sޝ'x|?9Pz.V+ XnG[̾~P&ź1*JS7,DJ2&Ƌ arId:XƣL6Q)݉~|CZap*ѡ7zO"yay^2;P:YP֝m?")CHjЅ֥4xB_Q/2| Pq!%[]"_}ţ :QyW?^_(G5O u'0] u'~|bKZQѣz.kyq󋺷0{V \v EZ@a  Q]mD;dY7 n[}ˡQ ,"bƶgBh=Ԕn#2QrT ˟S4Y].ysޟWI4 )5~"#N]4?U{ ۫.f4Vs}?(k2x804`vs؝ -K8prk9й^L;+#[ЍKzbJIk;#:e\D1tvC+yz6R&8L(j+ A[IG#$O(S6"ҏ, r <Dqn#:ףg,FiVp՟/| |"]$$ gS|Oa`|z=P[}_~ 0|hqq, $`r~itƶP~Y3w^Wj:Փja>3p9|"x&)BcAEdfóSm9pxQ!cwD+c~3o2y}<)m@GSչmVu$2<4;gZkÝ7Jށ'8aI#BRxVArPփb]>h8s2@s/]2 6{dY ?P Wr|E͉`)y@ff5/Eax|CiXD뇄b/=^_byk4KaVN(Te';A܌2/eeO$3=YvE#{P;> @A"U"NH0.Vq|B~/OtöW(Gck $Xd C0A ]!_p<尕9P{uk3~4 ~&Q3dP`6m%dU F6ؕV"F N\ ⛟2:N`[DŽP-I½̀#n{U4J)G?ljhk;=(]+(VĞۄ3"Vf1`ۇqPT# / 2qomD%Kt}eMB:m1a@'CWx|͌RkCzLJ&r" gu Ə /U- <\bog`.2ɖf{K }j IQ)-d,#%clhNۍ6\eZrgrϚt"e! Djjozk0 g؎cTaT[b:|e}tJ>9EQ N18J žQU˼u]7.`W:&7owB1e9M]O]QV*]4cV52M~@*4t9'lV3UQ <.o$a4{`u aHBSѬmp>Z8"Vv{cln 4Skp<\AI5zXAl$._Y2>n07r%/{=^qaOG`F2x㏪^~:u;a?ۣAGeu;'(K:&|2sL;xHP-Dpi|@Bv){/K_%8#;`zqrYy $ 0`M/uz)4R҆(iInҶ 5a 84Mن`9(?%7ˎY 4p\!g`>iTwm0p111@ϧl}QVS"jh4Kz/`U)-8"DK˖rut|Jv 6ZCȩ,#}]|#`NB- qpK^n(+w͛:2y:~K\sh^ %$Kw^*[_Jaӆ:RdDbGHEolNA WB7t!:ZrB,Πmŝ;ܝr-"rir`)z@HQI{6Z\Da?*,jAյq%!;6E硎gg/ONc~I{e7BZGx(e\\dnoTǧs&aQELX ښB϶Dt߼u)@2ha8c jP+ U=G]>2OVi]K{Ͷ\bc1OIg -Q7 qZu#%IĂS^J[ +ށc@CHe{bSx3*cY2w4eM;NJtۂH|3Gxg91W< oؙ7):*)M\5l7y O5Fqk+q"h3W~aFdt^MhR4 CW}?Je.Lр No]YSJ?R.qoOeC_.݃ET z??ՌzgLDK%tiU: zʪ8n)zkKQ$3@w~kONe|87V  dr6yJt6S,`>+9O:_ @wE Ė+TSE*B;( zπ,i~k'of_b x*nCˤ@wɽKeqE'^u΂xWg; 39yn>~ӧQyt.]vǣ~J0f?+R`s6~3օEQ#2 㤸wrVpiK/<;cl4,Ivۋ؀bjc~t,'!}Qέ @}0\LLe, 9J=Arˋ-μ3TY"@aފ¶QDfP HqF)"Rn7"G߬tZxѮ^(;(? ،nKy=F:Ǵ*2jlj`[";&&n\[;Ȇǽ,e* ),VR. 9resDW{fu>CD\>3GiᢓɈQ6N{zF xu'b3aiPIzMzYXcivSO1[ 94 R]%`zۊ#S%5ASMk f"J`R5`S5e;'dud_ٽ_OCF{I6rÊWV"_MpR.F%f/h]O.:NiﺓXٳPT"fјaS x%YTClVSzr&90- †8E t4R7~3-*2ZUqѓ}w3v&TOܪK)6Tsc 7Vy//0pJ+۴ojO:$)Pz"ƞbbzK_`28wwtsJ>jIER6aꛩ(E`=wf34c5=Y| 9wiAW"B~7L Ub89(D :͖o,"uΥ>U͈cbx;rRHgr"xqKC;q0/{ZȉEPuu ;gHpn.+$؋7 lǻT9T Hߊ视(4>˥&46@n9.Yq(N^b/ʹȏ mRRxxd =c i1k(O* 7tCd?ЩSX}'L^:!Yt{Mܰ14DΊ0;K 2f ] ; 2&~8,j#BOYi@2``HP2:ca׌*ĶOY0T_.rv4~=IUU!JԳJi19븰gdV(o䊡F~4-1vI663ɐqedIe4UIl/#mKnkH(>̫Fno<omƂvd̾f~DvtE_SE 8R,=ތ&&$7R[mRwsLϦ&S*TLDm)Jū/ wɉ٪XYLd=ǦA CztyoB&~I*~6=?FwFFA4꫖TxͲwch 7$d5/Ɯe>tg]kp1W?ڢQoȳ[wN11U/n%ci 6V mK@k`  pS2P`&駾K-/Ie_ErFx(}KTa1x"Ǎ8kiL bC> ; Hrlo/h"aDqnq׶jR^`yZ0ԚM=$NJ̻^K.ALEMU1: ̰E<uוI*2_=NM'܈2Zܤ%OԸ*jgRw(*C2xoy}%ץk%Dfl]1GS R+ _chhRL.V00l:omV l@o&ƘkwvxXtkvXUTO;ѿ;mŵȩcᙋ48in ?C+UUQ^ӥ:yěʻ hs1 .u *?áڂq؈jULYx6Ԇ15^{d׀RLyΠR8o;^S6ʘ_{q~x,;a =8)M,\ˆ 'mP+:@=3LzB%oH̨FE;zv3_s/ޕ{l"Bk-OmkglH=$uʏ5gy&M5di5VqcBsc:=ތQuɦmʛ/s@.ll}L1&B$7#%"JX"C+}lCzL26ww"{Vum݇#@L9)Ki/qÄpiPu ;- P .yPhs@X> :]G mVIsF-ٮ H~ b6#L;d}ݹ`2sD^IK9ܚXk)*b,a鵹) v{mle2$5Z}Zmh7-x썦SXUqQol jFJՕ~wso1aّA4XY4o W/KUJ3^I)ri{rJNA9/3n@+A9)^pމO^(( sE[;uitr cV"K_^;6I.٥9[x EAv {}+?rfˁE蘆`p^~skcc0G' u*H`n!x޶5/7n#8:sREEao3 Mb [SL Fw8XOƻ`qs:#(8bAzL=X*@eM]),Ȕ_~駼}KlnAZ0Ebc^7HOx>jkeoX>ވ2v Yn{VBЇ߶:k6ŋG4֠:i rmMMBk_޶vk(a4:Ի'/Ƴ#D)BȝHl'nro4 <ư^,nNB'k뙟ģ䦅&]V 3";*9/O5V+IbTԨV9j}lxLq'Q}Ts *(mOx8)bu؉uJ_ŗ_}f_m O?i1xwkEտtİ~:a d}-M#T~n*`6!PS#]kᴌuVs+F(!jjz v2c`'bIQf]6nP_n!pgj{Ww(6ZpD8̶$jBXˌ;Xcݝ;7&e-*ۖmNY4&SkqП]._r2,yR[dU.E="+mZY)y <4XsCKR+ཐF; 0럠++:4ZfvD6e"p"Wg}gwR^ʸɪWn1Iީ7?amF_e 6 >ؕ٣|I35k6蔚Fb]V9 'ERyfjBw<ɺGqB? /fERxZFeѳgzVZv ]ɛ*I,mO 9Э+NB g cUc B1 D^$ _UCS-[ѵL#[_G>}?p2k?/>{,/_yeU?/̨˓|wo.T-cL튌H3j$GEU`3ܾ#ݡ?z*Nn,?4HD LO  )L2|0Iq2uc4N䘝Oias,0l)-6# }Ӵڿ27ÛǛX1l9'-.7fn*"Wɤѻ@ u3#2]Գ}vk^ &eUn>l}4bBاK L7ٰOJpSNRxT<#nkq)nXA=ԅQxW)59͑gւ􆱒&i)3$ayQzTIp-L<nǩiӅQY.(跷k"34/cTҞt"%NgA[=iFFsl#2!u>%wb#Yҫo%o-6+f N" N v T2k*6}?ض쌚W\BԆjUA \Bh"^dz/ PnL@z02)D^=SQumkǑ2 xlgd}K7/}n801og;4ߺ`ACqcB Ts bOdLG8JV9εwff;HZ4t8D (h1{;r8xkwG2Qd1(B:i8_ مk~66 W+SldeǤ- ioDiVW]|Y Ex_VWrU,=MɄV{8Sp\D( ]Ts ,0ŅN- ]ˍxDfx`}%|+Yv*ZJOXޫD'4St D7 dhdGX}?.#(rB@矢a!SG'IR+%}*?xfq]z}k\D3jݻ1S)DQNg̅jht@^ {b:XÆ'03! ϛ 9M6Ќزe%hm2\fSzSM}/4 Z( f@0lF6+V&lеsTp.}vـ EkdưPE:cnu$.St&Q9̈ҵJ_vl()rd݉=oj7[#Xx'Z{T!@ubXH@L&%s8j+10e~1$1ZEf;/tAmzW6ɩx4n1#YZ<ӵX“]t6 i@CcDK'pR@Pqitd<8ٺsJtt Ý 7ZqJosX\ųZ]W0 U@,S$_qe,CPzt}k! AX=z YeV 2u ݂Ji Z$ucSF0T]7pW㤴ig41X-J巷#? 1%h ڨT%1n]k|cOZYCv'1uގ,O.`B"yr>LZ4_x'\tJi )A!4>袯z*Fܑ|KZ[[n!p´d?t0rV]V8hiaQLE>'-؀,%uƬA].G`ʡ}Km[:E!Jg:s5'$mU 5SZ+.T14,Ø(9lqmiӎ\wX akihI3\WY3GG]V/H7,S! )hΕMW `$n%WY1ĕTaYX%aӤ~eHBII@9504DO:cKhzvpRo7?Ň5:sxHo]!aZ}JQlύdLJ`qF *2TZ\b]XT~T$d*RR}aK'9EkO%67 bYp;Nbe/ 딖(msۡov&>F> y20,94iU_/TK ӌ ¾/o߸WAiIŢl[U[ߺ%WFr!hW(`;?!L.ЕWS eZ@:GE3PV$ E mzf?*[ý+K'뇺zY2C gnԈx#H#`F؀Uu mSmEp4pvguslD;˩59D#`{ߝlHR;~3{J3GQ)l0,LՅ AL8>2:aA;F ywБ4D0N ;'볷VCX?e-L35nW:} 0ch-uI5xMw!+􇾩9DLfv9x]ގ<JWaա$&)I~A1l@Ro1iA Djڈ ݚ|;sL3PGWt ww7`7qߔwf>o-%טG^>cj׵p-%=5aeZk>]XIXp$QBc}6&]7u&ROF+3Jcv ~{d cG`y"Q0T:"%a@AIFZh/V'ż8+QoqMmeOȪti >T񽷷C1JD5AOn`(+2Gd5g?t󃧝w_IuDJvh?C079>h=iI#BAa:RщO7Kb^ϿtQ=o#O5sw$ʪ:1Q^5)ݳy<̷{UV)l#pT 1q6fEm2uV\Kz3R]sw@d;NH{738X- x 9iBl`8Y$e`P{F9SҌUGI]lW꠫=sTaJۮQ|K'iY6TNS kv!sNA`-_!]R)B:gԭ][u;HxS693%o_9`:RS4Hbo(B1Єݳ).Ef)O.;$K 3E]faN]睅p&bޮc=CSz6qimcI.q*=(=ٯO\D`we~r>UǺ⇈)r mGm _ x*0[n7$s^qHSQf쵥.3g0<1`lx;G[n/l]u^jok+J kIkVԃ-xrUmF5>6fhs-A9-;t{Y :ɔ`# E%'R)zJs§J88D9|On<#W]mQ>':w?/xGgǏftWDx›AȻdhT bOo߃=ړB;sZoL'^Z = 9f,)9@?o*QO(ӽ1.pJv*~ٶ7F먬PEwď} cแA9ZC?K5z3?JX=M@%*ǥ^>8ҹkldp^zeK}IgG\u1te/$Աi85w|8p^:Iœ/С-Qy~`/Hd#qe]c ӧ#/sP ]Fj=/\L<'S N%ÝIçYTAQs-z@\$Hv`ҷ"(7#*Y^瞭Y;FY#qEfu zrjf-,t|U_1F/U9gC9U87eH ^̲FBڧ R.&gPN~OPht\p(XKk;[Ga !1ap&SW[9=ܩk*!x<%o%:RZ$9$lc%#Nou8J!K1wg$iNv\_G;bSnPK"e='<(4Xpeoo`u_r=wt>OVC8K;=r`pDZpUc{Qٌݿ!;2$m^7Y>,ؑK_ B: _ 57r5DFx@ptptd`_2 VZ3C:0cxT H3iA #36s/JdO}LH]t5+; N YOXI`cb7Aj+. !y\@5CAmUxy6&̞Ccœ7:wy5o{ l3Iڦf;U9Ѭgj+GVajbxPC~ yRs7s c"wA6m9*gZنMHn 䦂.s ǻv0&d,+ 0S{`')Gip0!.PJO-zX3,ԗH=+/.}VP8iRo*h;tLl3`=Њcc(ќawoku;!ۇ[ۇ_/c7/bz0bJ(ak~5s->h_'[y<ְSVhZNd ;6f`CDNt^?CӲO2 ]T彧Eydp_y%歰;[{ºY%BUImRE14DKOJO4[[v~\7xF WJ}?H' ?|oE=F#eOϞݖS^n ׅ{n<ﬓB$d%*ƬgF_W AĢ(*k4o]w~I183usw_7ka[=qJfmYz"f pAHz^F~q*Ե?r|5jN 5TPIA7|+1?p(j5mDvxDUXk%x<-ĕX 3/fM-.^1%MC}u;6FSU,_ƣzʏ[ҿWt㦞6_=}EV̙ʇQw;MML&NF?tZBn!:Rч\@^&nvYޗrfՅ~:Ymve$ltXVQ E"pz[%I=[9v=J`珶tj<TG C˛$0ACph_Ɍ޻){vB7I{8{)xb8]]mVZ.tpcU,%s`&* 3=dtF3Xz9Y\X7B =QaOְ uidR@Lע nqsY4{lYCp \⌭z00VG?.1 l13!C׼5)Lt@oqୌzPKSYf,pkg_resources/_vendor/packaging/__about__.pyMMk0 "6` e :v#9vBlݜC^IGG Bej4-&^Q8-%lci)uwx;UdFkr{m}Ft?HdYE,2O^L,, XŒ)re"&%)'EFCm~W;a#ZRm%—6I (4h$`Vse5X% nmk%d 'vMq[jP}:;XQd #D/˝"ne*S-69~PKS+pkg_resources/_vendor/packaging/__init__.pyMj0 E 1i!2.Ea&C77QY.:7WG6@oB]4mq A;dA}xLe9XNCfs fxy{97u.`(X!_O -ɡ t(ƺP+3y6Ek~"S^QbU4l)}*rM\@ +J.Y#|a|6= b(`QMPKS*:c,-pkg_resources/_vendor/packaging/_manylinux.pyZs` A^5qRYlMeɵU9G*%&Ҳr2ɳba"d#o4,nodB4ʪêZ$wHe(G"KXq̳K$cg(xy,iOZ*/K+9R0^KYu!X6W:%ᙸa]Y,Y"XKQzXE'Hd E'2qb#Bitۀ N,YX `2=v_>9?e? c^,SX#<'oe."XlI{ĀQnũKO3y,#k?g(b8zP X4oKi[+h7GΎo^c/ACq|~tugSn4~:zs~OQ ݛ`.w˫z>?z{Ӂ!9%ٛ)OO'3x|n_L7_^Igd.s2UR!bzDy3f[?,MhQyo|A^.Ze)aovV{!zr3jN}$|!CHlDu~8s:>rO/ݡW[D{d(x&tS%Dv|R9[r2%OeU;+)KW4CFI 6}GNiue)jfTbYVx7J|RylQ#u,b)' C(D dr CW!2 yXj9JsxP[ERxxUD-aG|}qݡ e덋|gk7,j:nc 2!1֗}g2b' M:(ոcs3vx[S,Dd7lY]߬ bů^94s ܬet~ϰI 豼p"RYSM ̶XNu D(P&fYfdQnaP\0v=S55W;ΜQA݋g@_:-N+L=8;c6;#\?\!T<,p~>FL#B*Q ,O|$\PrJX"tZ!;ʿKrCx. 8&)( i"]VR˅>וG*6h2wof?Kjn*c"H4kQnJGlGݑ} 'RBȅ.Q*U{ƪ1#(ng"&.{ʣQ?˪ɎQDٯ03|E5hN ZISU4)__H6/<,ZG XLy,P/.JU#uU`0jJC]1NUX"8]d&"j KADWz@ KzX?P͡R" lpj̲XJ\[x1qh~AeIg ܎঵>9EjATdBad/QV-WT8!P=N{G: DP} PygqA.zGelҜEm4}P#8=\(M{A =[b`ZCFbb!sFAEV 1DHE,CJH3<[Ÿi()1>רT -5n *\hCҴ0mg.էȀnsGW!3ڙLJ@?˭gl@=$Ąq [z/x}/=? it }Y fiG<0mH_96ȪCMoxջ:d"e鞍ihkw_Ym m_qQ!y{>ۍğhVjۓl/I;.k`QJ-F3AZlȺ>e)JRV2ʑuxtF!V }cطXL &taFS1UQqK#Hjys+(+jO!RMʲ #9u`^55)mz!Y@Y=-zۂfm TB}3`]͌w-Ȏ6[r8+߅HF_uov\B(;{ּग़]v` eR'6)TR2Ih]ueZ4KiZ`M5[oF ]JֲAh#k5IkjI=pFn1 5z^p1;{_  8G^}IngG Ͷ};bXCjo$-EFFk͎0$I/†2:8zZwP;uF otf⃄J?SYK3=[YI^!э;9|fy1ob]Uw=VCmz@mkuu</jc9PKSo0-pkg_resources/_vendor/packaging/_musllinux.pyW[s6~ׯ8<,pNYv5&Ƴ/HPšYLf{/mg9p߹ k86M-Ln@Um)@VM)* l " [Y5{ЭRRmzoi&T"R Uk)p×-Yh#ih$Ţ.ʊ-[)Zٺ.MP7Bs[aGXfծ]gN2 ,/>Laa=)oZt>4uh[L&( Ղiq1C BQ)=R*;j6|VAYH8a'ef䯂$7\yJnMɜTH '}dt>.$ q:=k ;WDZ.x1zPlmx#eieuu\8?9=o_go/3.(w.z[4Z螡iDfªur"m=<{ymϘlkqJܗ{zd88N!:!bZ׺BV­a8 2KqMF ,g^* 6U[2=5"JpOBb #϶R ~!BFNx"uX}W 5`l4B@lAl:+QCKz. #מSk%N=3>='3>WWWm|_gpPקGkiو?~StO>y8S[0VC[/ 4mҍ v5I+*\,N|^;r#+zߓ$UQ;[-:~JV#j'E DAsq'%"' @-dr89Ȼ!:4ccZU`{]rlIo.s=+xhsw0 α$ 5Mݾ^[A<<:d%7ҟQ}uZ0B6uPTcaHeUHүy4&NZuU*v; N ժ+ޟσRF e1: B|Ln⹞N0ŧzkyu^+u'TwG˧~Zabn ̍>BЏ pVVA r#'h(MRvߍe!q++^DJC&TkE>FeM=:+ Sʱ"Ԩ E1Mhm+a$b6UEzqfvN?CɉM2_pLr''KCcܠ:{JPw J4p Î}PDžqDtt24Ƈ!elm,F{׋)JRDy*ťF"50ϴj\g>;xP,\ D&zx:91C0^֧m2Zgھsһ~Yg3ݝXۊ.o:d/48yJk=73;4xAF !QM Fr9f|oO[I~0> 6{)0Et/P)~uK ꟦HScI UKYh @~ebfr=O14V \읅ڇfđ&]1"MD$3lk 7:h(D%T> 3uqJbNdG+Ӡoqthyv /ʯPKSqt i].pkg_resources/_vendor/packaging/_structures.pyk0{`eX`?:(^Zv >5#M\_v;^I8}),B"1)RT3UD 4G :o*aӕ 'w1peϻKM;vr~Ymw󂪝3ZSv;0Xi+H@DBȐ6 ZX\(Ae00Y`t FAx A/Yr[B$D]ټtNǠSjaƥoF/BX,qb&bh cmRyPDǽ=(79&(,ΈA6bI|a߾pBW9i/007} -⏘=czs=AbԺR5qPKS 0!*pkg_resources/_vendor/packaging/markers.pyY_o8`H*{¨ ]!4&ip8XE-E%ͥ~3#C,3Ùp5#nhAUC=#bCL>Т <1\JIUSMRۛT7"cu¾wʤz(r@J7{*ֱzMOr59# -dL)])dGhdK)`]=/&ﵚ[kRR!IdIe&}wחv"&d4%3TBC[&R glv`jQ傗;VScvLNYG S(bwq c4sϜ@6 ZS2EBpM2A~%ĥ$;EJaW6CL}ToyS!T7x<89__IZ9v|:aTJ` PrPI֜!wS]3:|"`g!%a_uf&C()n :kHe.4YS<yhKCH킙8r`ߍ `%MMQ2%M Oᡚz:\vl` ǘ_W-!t0Ct[4~ɾő#LAi@[Ϊjkb%4w "5)lOå=iMu+s|;4lD@ZFwx! I%Q;z0p$$fCo~r<\\B=d5%+9jJ04OM0,].ӎr~= XAysaAwה1$]2Mn ?_/..Ns>`G}z>hѵd WpS4xe[Bӆk\O>arqX*apyLv&he ڪEr,˵TW@gpmGE2~KiXU|~8JA J\™)hAa pj1 +GD/y߾%#7ٞV/XЃZ gP%X0,ȆbzU,Vl_ݙoL%i1+(*hp.G#U_XA+܊ d k *S1(᪂Z"@I$+ 7թҥRuPA%PCٮIXM2 8"%13w 34XĠ̽edDV~g[6S 6L%\"CKœ@qrX%ۼ2T4:T=Q&au7wb#ln[\`^Fd6#Ɂ]GZ0z!ҲS%. 33B8aC:e툣a@OZce8=6spƭҎx%^XJM2*e-W7yB[`'`=z! Vvt 0 KKiQ8Ť&#,P[^a1c܂FSXja`7W.)i+LiMNjk.IsA挠}N~two|"{S_Bs7:3W/G1!< FEc.j.2Ha't:nPzmmizR6)~C)1MNJ#(~K"CO'-WǠ4>^fcmz b3{eVŌ[.W+Q=&\C:/_ZU\YIr5:luI|aC=aF`j{Xc#mP,,G5|}㪉NSskܥkb*}beϪ}Ckf˕hҢX]iln20m pHXcA/3)pk J?9Q|))H"Jm^bāĴ v  IvͣK%W̧mH=TFT&w y]lTYC.q}l-M${y ~ $r)w,>CoM!#ԝ-ΔO?tX.J:KwƴpZg]{4Iu!ZNZܔ;MBh7[Z#(1"`n̜c$j̴LA$Y_(伍0ךDA~i Pn#|ɒgdJy >C?~Ut䣌 zPE~NC{F*ʂ`ajD6A2-C>i>Gy|(P}^m Ӌ5^yv7l-h!I]LÅ2N(.Dc'5E]]_珯`*YRχ1Sa j[3%sD\A z ܪ L#ʹBLi7ǎpt׋[(\=]AIe Q+Ukg7 &uYbvEW@ g4!.ѹlLqC}ODAn!,H* +Ƴ;L2[F?zb{jZsТGsřd CAyt9lFV_সU{`vBPyF0g@ ]UHݯƊkM t2ɯ=>#Nu50e/vv(ܨL1MW / [8VǞ`ٲc.S<|NFELvhn~X$>_fmuֲPgRQEB +(nQ6O be@6Kx~ij~HJ٠A̿McGT *G/JDU{@rɡ8-m9t(-qBz6?r>uPKS4dx-pkg_resources/_vendor/packaging/specifiers.py=s6W0Dr$<ȹ4x&d\3o`5EHʊAYJkzW4H`X,v~2,WL(RUj-REuT^З$f{UYYG()7ߚ6qF)zo zVeðJ-:kj .*J"WI(9O͟"m2̓ 0vTJ"+fEUΣf/~7܋,IhxYNT]DgglXb?9r/:~SͲ*jJwPjU4 X%W**PiϕZD,vbNI})'I%vqHlˮȨjTQ 5 6԰JX(IV EkrPxDVHγ(5 lLU [Y۹TjUb sx (.a%Hr*|M3V({q3ui"/B㾁yVAuQq3˾Uh9dL"c2qRhoa2 R܉Q [>ALl)6,,(Kq5J2 yTl"_6,po!!Qkb]ghQ]Y50mb T@MfávNB*+Ɗ)ĕ [sI^kRC<<ɤJ/dᆢmwTIVp18G`W|Ƴ!ΡgU\ Q p4oMP[~vIE#IvbMQ_(ЧC w'i0Ni"3©Mi>*;OP" 4|4:`N<m3HSi!yvH}mfAZfYm3kS\Z'@ C36h. *X٬$EԚ&7rhSv뛅rѫ>s}Y6x䜃)ʵ$ M! 5.mɄ꿐4!XJ{?C)/"Hm0`a1Ƭ\9\ eO')載uJKUX[F)蜵nVLJa[kPAMtGl:+JReH{!tqwZf32 'dP9Q}:f).7`$"/Q  #{[ 5B5LV5!7?1x?ZɣA} P0b$\) /c jZp p) :jfU,/gY'I:=x,7+"Y-؟`mY.I䵒4z6prcڴc-t`k+`s\kܹBh|]W =iUkWsڶ3Oa?O2ij؁h08t#op9=DNx&s{Xr!먼)@1ObU Z'H6(.qtppuۢ$;RczD$J8 (+J@Ԛ]!!Rv,֎Jb'p$p'#AD|>aG_89N UL&S;,}s%|Z$*] }]bYV`DK<2G#L*X/ fdšH X{!wu7csU,6Y|PS"h ס?uV7-udvz.LOF!h{mЁ-Ҭִ%``;:Mhˣy'Pu`ӒHƘl<(2@ԗt!hS,IJfe :3&:!fFsbXӹ)3S8'3qi va#TM\jug5|x P^aSK s6%;m8luX mPv" BݹG-9qX$ǎSXML#Zӟ=3Ts*%r5i 8h\Pv-8MՊ_? zx޻3z"UR˜7>cst@M?s}|Ŗ`&77M$&uV]mi*]j ϧ5n7H?b\sd| [{cx]Ou83dNLyrqU!;)BL['lo{' 2(d{7~nOHZI>oϓYdW5m/MDh( tͲƸЌoV3 OPzI_Msf `t?z`([3ɡ7ݽz ȴ IT/)B3si;#t_hj_]KM_dh[RjIupca^no2hT!=8V @+0qb eE`5iY5&7Z~_NxڮjP͸5;γJSjrfmᖱ8GZĆu@uyVXG]'<'2%)Q xspLΣMVS6xV %nG6]:&cѬ0ϡq-S9$;-ۃ>9'_v''2 L ̌*k9 ă2b&yV7C{4n@.qe5y8 W/@cr4:9THTYT ,HL`=D`Г~ N>bP wt,{۶{Fs45tbh\1r1>0ishc++xq7S+W$^,,y8AfsH5"lHVtw;N1)1tܬ0ܗ4}2w!&ש!tJ(V$ˑtpn흧qn1mKϘoܥiTrG1QSgS bnhib(GK?TvIBf} Hd)GyNa;SQ,IǐΦfWϏ Y-CLuc]br1uη5bbƘ!AMrTjؾnMi0z!:(e^z-Pl5MdeC6IZ w]8gx3)i0 v}t>i?ߘh 57 =\0 Hb'WeuEJOcߡ65RWVj$70: Bƨ"(OT|%:ʧ%/LD`4V;% χu[ݭ8Y2I13ʛ8XSaX`+k/YwK5at.v8 U<?IxXgwWըC^:us޺ =z Yc=+KZNwBڅh: `]`-K)ߎӂ2Jv9 ?[LiJV$W ʺRT ^*Q+Y ơ &qվBG\렠kAye⺄srAOsb[;sFC\o7Aq/:bv;b\ ib N;j]ֻ>hǚsJ5.s5z1Ĥ 7"/AsWzQW.7 w=dk:3޵ amsnYbڽko;˙Z.DBg~LѶ1saF-Xa.:x^xg6MԌ.a%/+wUp^ZZdkiu*6ĂU[  /wnߞPч'&3`a`]Gc$VA=ikU^ao`+&gbΗť |1nxaV֪"ۼpEv$ڐ 2$ȅ.)NNwOxD{pG8 sT).`WKzsu!WbUR>D+^Rë!Zر^EqdǏڃi͓4>F`Q"p4&#G F&n#'So=xri/F帨 &)Ȩ!4:]a` ߏ87FE$+-.jLP)oTөchĩK9X[`kϕŰP-F9XWJTwg)`+ILڟXOCd* ˪R<𕶂`֦ ߂@"30FdryL+bUd=<;z/2 =G]dr XD$t/锌*նMVPC-ʡ1la{-Bbh'_–^*BV!]Tx\ϣNuʼ;Ocj406L3f>,4`x1Su7/MnʟWrj \O;ֆd_||ϒp_\*t% [VPvۭ`+RG&M&7ߍF(q$mu踻 %F߀(t`0  hp[L3yaՂGBEeem*̈ݗ]!_EYTw6xwNuFKM SN?UpMS.WG[]76:{gm+]>ьTۮ3S:6hU#[7XWNī* UkZjA2m%͐re2aW~f5pnD^!oPox'Gs 0`BF%ꣳax*j|[e lfT0|޲,ʾۊޭgiR$ĈSr[ pM.5# 9Q]խ-vz%$[3N$cX\5y+V_qVj%Y2Y'6aE>b%yJ`N>pN??|r'YU T,j EŪxYDd2Ī,e/m%5 X{ȗrSO3q`%"Z?c?>'_>~<RK@#ĢǪ'O=v%w`AꨬkINo ziS_rRǎGP|u#3? aTtO,awZ@Pd^ƶ_9_,"~,`b0ODU-Ͽgn4ųi Bo'gol=f)ir0}^V\NPjՕ& T:NJT8 JVM mQW§; Pkvuu$,lJ;O#K#]ı̊Z1,,ADXɅoc'tsj|ʗC䢎PlIb68+nl}.r!r(+n@xpὙer  +~6.tO^ٍ2voIs`Xqq}0J1$d_To,.e+JN@_%kĊ \*hR)!Qur&IIX\rWI~WxBݓFvI9(Ͳ"v\)ЦV`A@YYi*e.foYr6%LP'+f~!H90)#X_Wj30 #LL 1hlXrlf-m&TEĒ&!`δC&8OG]BoLmQcR+p4ӅRD^-_"A":k1d6Bz~Ŏp#.Oh#6!ݑ bwėuwvm0.pgBq" BdIMCJ˹HBˆt7$y6!Gc"w)\CK){ ?̵qd)@d8)A\*UǼ#@ѯAk$&i3ml%0+JXQq̢]ߢ23whlGeX+Y8]nqּQ :Ck^XSΎ! E2:tZ&9Rg`HA}{>֎s Ye/KS@u.8^}kVpB а\ $g\%u VN2E䐱AI_p?`-Z=Wq2BjllXAƘA4* \pPJH^u)^6`z%\ !el-t^Ǯ]2LlӨ\@qUXLܺ%8 z]h40zCځiD?~'Wvߙ0X.Nhr(RpeXχ>'uУX㣙^\Y \G ۷;1=5j<Zg[-p(ƋFdPlAU*HR(wu:rajpɔVjSv8{rn(@ʹAqFE?ʰg })nֲyfB,6 D  I~sL ϐght{efZJS2?>E 05DŔ3j3#荰֥ԂS]wZM5h/ LFzk̽ JY.fRe)/6e'9N7sGu=?3D%}-xm2-@#A~ BԠC)v@-ѺpugDu桋Y킗5UUT >; [?ŢSpNz"W<8LRHi_2ֶ!V|?>ѣ=q) j$Vg;w&o躻tֆ@lL@v󉿠񸇮deVق\pPvN[c uU_/) m1/ zOK8ق &%)88xW}6C"l葳Ѣۨ!2vީz|k "< Ϝy' =< Wp 5:u ġs`}ͤ'QnvĦ\.`?(jG0\Q8L'Ur% x +E#i5/쩷J6@A .qc !ZZ$t;wl|/a6!ΦCk =uۭY=?q?3K}å-y>baƨu= %V QF|us}eɿ&*(&sO4g]I?4 g$%NJTϡ}*U-B,BƳ Qd`w@KiXHIUKT0(˅[AE|F@t9lD&r/P6vzhPr|{WDG-9gsn)ƅ>*)P- t?2-뀢m}ϖ[ź1(QfY솸bl/Jm^EE'eY+* ]5f%'OnUH`:[럴&ym㣶;>;%_9A]K8;ePKSA3h(pkg_resources/_vendor/packaging/utils.pyWnF}WL"cp\@.`pIUɑ ew/wf)KZ\=rb1PY!Tk ra)j>B$Ef^odb@gN/Nž))Mm"PXJ-Tdo!r]h24uyb]JeH[(s[b wX\7%ExY>fiW&YF2YFP&J㜎u\#sZ\'\]JY̹BFf޹Tk2syFRqoB<Ѻe  >'y'JIN< E]+5,J.T2U .'𷸵E&4kDgߓ%זe`Y !ӤH-`sK!,3)Ptm\s;=;Lp~⃑Ryz?xýʷ&>_P?oR nB7<\haQ؝ne\*;sGvHFz69G}O=^c.Kvy^H8tT[ٿ﫴n\'7Z^jgмjYgGމ6l^x~5d:_&=E]{!QV] $ttst>ʂ~.FΌY~2+Q,Vi.njD&>oR|aN}o9Q6|;v;iZ=7Q5A#sHc.Gr: e )"gk>] xD_Sñ:gD:ET'ZkF_j؎*: ++60֌\ixwhQ(Ḳؙ"Mʋt ,ks-XMfS6 zc3׬7HBMKbSy{rb%Lr~(oL^ofmi ic}{hxm[:j.<Ts~" ="G>]`Pr!0eQ 57,ɥu WdJ1M4;*lT|^5sL۾ 5jX)pa UFXZ2z=^f^Kui~ij%)E$ewH1I|F)K_/N: 0NnϩMZC+V(]1^ XEqwadƫDdi֯y2QL"[$v~l 9Tg>u_ʌ.Rн)>>y[2 rs/ )e[,P0EBRos`Fm\=?{3f|okYMC4?7~me;[oC0z3a_Nn'O"I@_Ϧm<ք﷫yW}kD0ЇZd7ʠvtmSރPTlHsuE༣iO`"W'o|Y*Q^aG+%1ll4 WEEX*H!Vx YrE((Q}2J!#Li֚ǟϏ=Yʄ眎.Sd*U{Xf9]XyyHiM]T=Q`@#J 2IL:y\U};5z@&m0 4[%=vi1smL>+dGКBԊ(=tIulG~V ~YԾҙm'-Ih[4~Tw$wJ:`dy0a8muφV-3r]ۚ#'y2˺Vxt \d3#üݐ8`oiyGu 9MӞxۼ Ә۾yRJT7cOgWf4#yBg'՘u=vΦ#}{iLgJ4V 7n|6&6&HYF 8T{y5[lĎӒ!ԬԈu 8fCbd0whWupzvZO>Gl~y7 V+P}`5NV.m?4$VZŪ }Sl*J4橞9U橾PtMAWUIk,GGϘ]_+s3mmsj>G!=2$Yo6V5bId0SdȢ2F/؁ݚWlGbpeSVb 8XTAmD.Nia+BTLY.ɴFSA$RP[9 ˜qǭV]DjmětaetShNFJoF;-ǭYZ[|䤅2Ƅܭn.4JV,ѳÚn61oYPz;S7y }Xp6s-Dž΢?;wGpHNӜV9=^Z;y eg]B0kӹ]yE&{J<߽,1݉>2^?c b͑  TgԱ 25IU#;E\oe뙁.3@mB8zʹ Hֈ+õ2od7{B U@'i5N}@ BAԵ?Sr&kCLIņ[zaHP7A0TQZ "Kp!O2X`-jtNN G4è_0}ZuIG@ÿ~,7C$p{5NR.EYaJ1/)TIyn5@Vfg6YI7}I.&pılmuAz{"l=E.{`/`_Qad^gEA,ճHP TC!? GԒj{FX2iьYx2 ǭ31PP 4KE`.Xqhe[姾mͿr=VSS.fTԘ軠m蠢6ޡכ@pJ<*1]Fs K“h,*tyHYg H>d6NжZ]XlL#JlGnu>:o@X,hӘT;iڰ̥UQꪼ5a_gv2ߧ^5.W2x哧=xTXaA?j9c>7Y-۝2 U7*D ;ʦ6VmW @t0JAL(UpJ {iJ ZUEoW}Ұ{0^(2YY&M$Rr1*²8lxa)S >˭Jʼn%IY@BYg-)X 奴Vt^jnY z{UFJHQFxyjw] YU8v+09O[F6MҮqx%ԇ N++_ǫ龂MUzD'7\"n~iQeT#pJKۓ;ӕwu]jK 9yc}\a!Tom{*RP&~-tzz S|uݘd\aOU+?#ռ5Y9 w /8ڈZ"1*zbD+r K+ #;"IA-i{tw "A~[ră[6 ہwrKVTנ&x)*$%J{.>EdPl RWQ8L ACz\ԸHM!lRs2 S 3cfItb1ee)H, Y΀pEP`WiI鿿/(4J B> *(Oo+pQX3T*ț  HXƦGYƔ9M7V~W♩OLSu ,V$P%ԡnL:Ank>|svr&'$ju~^K.-G28}-%x2qMY֧xiQ46Lu|dhQe)Ћ8C7kQf\ԛ^W57_UJq慮%w|(<%kVB+ƟZʩ^a}/Lfd͎SIAJ4z`'๬%X0sswѰ tn0ӷ0Ya8o1wBGjyئkH ?;xtJYA]qptcr'g`:d[ Y ~H*vL̝/:Sv r-u߲{ ] 'L})~ ?gA;g˩'4*34`Lɱ6\qi } syW/~t. >#QgSib=ƪ rON-H'701cN8+ ˻4A{{EMxnJa[ƈaӥA|]:H1 [%pL% %ݪ6*8Ot=c:*p0m;mʙf9[ YZ?n\bJ 4r7{N~|%Ԯ.$՗҆_}žje=Fͤ\^2w@(?-5'OE6 g]ٮg;T n   #!O3N!YJЧ-1. حpmJQ#5Zإuu?8FGV$[pyȾ[.#LSq'FZ=1h$ǟ3q"Zu #L54bƒxE%֥niHi}1Zn7?f1h |\xrįw 07Dr|\o|9OrTR#s%ML&7;/G .z0߯\މ:,{Z Cbs%9w gQ3͕FQ!n0{V&}oYMŸ6g54'%oٚrg<উܽ;LG 0Qg0^s(Zo=&8{ $a9jN oZҐc PT!)sE 曏?U@ ~N]%0LB&zĩ؁M_ɰ>z P?WddB0n%K22GPPB $c;@DU9^;v3ᖽB|Lw~JWV6 ȪfkM y? 7aToJc77̘ oW,^e2-xnW,ȔՍ$WMÖc~k˭vOSʨJSN4ShyЄp|&cf@mJU )H˥E&e[P 5^8 h&V:9̙7tN iKqhV[b8u8s^!1{J4 }Fjnw3vOeð.<*eKC6-Q6kIH*w!) @pm|x;T[+ki0R'yae{bj2(plF6Җ=ˮ?-ӟʄo܃SF>uܞÃB򸩴jX)E 6-<7NZB 5RjQX~zgg۷/.{m6<<'x_=Bo3gm ~ԩϢ„!ݗ|h39@6MQscPo:wۿ.۝eg1vjY ;1Xih z!iu;' 0\^= +Д@s愄Z-oDC <}@~Pw񖜱C0~`V!cZsi;>6d0q`0Ϊ_0C죂F܃!#r -t܊2oK+2B &-ze[8ƆtHVUxř5P@7" ƀlS )^\dG[b zz4 &pEs*2O1*扉BeƘ Ń;3NȊj)̅r֪h:{eF-,@ $D(yj9&fLȶw<0S$*;)XR:KލU;< Ƥ&B-}-A@OHJ<2MLqzXЮx:s&Nc]e-S]U?m}4c3mQe_ [;$22sZ#xkyqSu 8Pf!^JBF_JzlLM5cvr[)MUTή:ve "l+,RVFLg/͖:Šƭe:7bS 63`G*p/(é:q3;Me[eerZ4 6l1!ۗf4MU&/=t] 4>B>ghҏ2@?7GFϘr_l<0tf\3Ɂ?Tn O--TaRe^"byA͕z[,?7Y\77ەBuW|b1(v*79h>7$8Yy] luaKM'!Ǝ]XsSWsP]?pr +`W #]i'z@sMp쾏|a{RIlz[ 7$>\·I.י0QuoN?skYd́9;E]Pǭägii~CvP""53}cp)ub Vc3TI3K/[!zεeqe)LDPh;bg*p]HMloӞ[ݎ8 K7Zb}Ǿv18H:ijI0GJ+!C:B79 =V"T+e{144'Ccb5<0Bb> =TRmbMNXz0ŕhΪ80‹vI,70%Y"p,na劾TOY 6߼4i2͗44¤W u*u;z_z8V-w!!A?7i P GaH \,1m31O_ =׼9}Id)Γ69̋Z]!l"{I}˭6H'GI0;-jP[:d\Q[=POX=eg^ۃ[=ޠ36pQL߿Cl*E]dd<!Lfv3_iLPG L)$pM<^_LgB5pГXW cŬx_-U„ۋ{=Wl`w+Nq pfRJVQ`+ 7o?$by@{lvUfY/PKSŻP ()setuptools/build_meta.pykܶ~ S\q@m@64(. WvDno]w$R:i. _jzM>H~ꏄ-iQVRGɞTy\ÞՄN1ILTsRD%kCE2Z*uCES-'oɖr3kפ2`ϴjJ&;V3I[^ U {Sd[&힑r]CJ4GvׅX!m[ V›ZsO@VV9+r^Lb^D#j$۽zBW֚.hX>ɲuqu*!5uRom yԒ?%/ *!FHDޕ L F#S^aJx$sCj[lٕbKKD%$U{2@ۄE n溫9(+7%-a4$/“oā=1& v@`U-WlHKƁ0: hɖvhnOP0-/y{ڮöen ; F#z{Q i49y'-U3hvM6O};kZ7چ4X@ ,9m9LF\.? f /3AY["zF ~A)ZZun? VUp\WBW8\^]^ܖ|;ѮgTjω rH@ED'34v*T,u`)*%7><'pm|Njc^ 7KԤiv4;- {wR n JYހɽ{X.4HuiXYjX Τ0&ʕE2Ɏ7þ_o;9Kܗkd%uaSΈQEP,!rq0 +vJL.v՟5&'$AbYk(e:X=kJF3IL;&dXfg]'Д,,$߁ 3!Q3 <^vJH)1) #`\gDbEGg?8.~> XY:1y,7*uKVaE!rKVTB "^cb`z#9%m& fv1>kk:laUrN[n|pg {̷ZҳP 8@Zx8y+~6 Uoz0å)X)#PRVa@EސhMc1!p2  h^ш[s#qkتU`:#Ӳc:&Lo"O<wQ` T%@ ]@iWC0 ErۢӾ.VDq|-kD,/+O,0at/$D5?OPr>Pft^c#}dhi9R@@ !ph {#x}-0ĭHl6=H zܠ1u 8ӿ} > (2ڕ5pyZ pƀd*!-RTcQyB WW%}ONޯ&BXmNgxmMnNL`:dDvYQ6,cĭD'ۂ^Q#tf 7t/Yz [3 x+$8U|VpZ][@iWJp!9,MMZI|mIuckaB(zb9t2F(?Vd .б>20Ϊ^dCa&@GekKk&vb,9W>42s3wKefx=<̷U+[T)Cݠų#élg֫# FSU^ܡ$+8C FSصW]Q=űʑ8TjؘB5s&Q5 [dxZ!'KG.!8* (#o,>O&Ξ5R35C3% N$\3/$x}]TMQ絛*h.IL31< 9%iCBŲ=q}z8=A3}.#v*$•ׂ d]u9G&vuX o>>>||} J5NLahCcC3jū?1``]0v,ǪE oi=lw^ on 48{r流XG/RLD,%90]@Msx:~G'{ T{vco c$~K0+/~(̝N!m0:K !N\p\Ÿ~K_uMb[6|k? h< n"I2p@Q !XN OcZ&( ! nZQL\,clYyAHVAZt<*Z$`Ȝcȩ{_oh_ 0u^,l 7݇˝5fyre$.4 s] NhtIje:|DIկ?PKSzi~setuptools/cli-32.exe|T8|7{$6$AѠK4&1 #uK-{ ͰڧJOA%*QN\d!k{$`33gΜs朙3_8n?9 Lc'i ߜvuMN}߳C}_&!Y+XܔY(3|{} {5'ݸb{]dqﱻWvqbDjF6 w ^ḯ9(l=>p\j"O9 :v>|c/qܬ_kU}ҥ?$=I{BVJ+ǭi}}`z7`B,Ϡ-?ߢ 5@ m3pTY-% IhXgZ,LwueA>7F/S0,mXXC[Y  _ [J\J$+ ̜ D6)6nv*‰ONIf2E3E9|NEКS1>M8Htq#.RtxpRz֔ аM;M hYLpiF=`vCi~ xNqPPsk\ۏʸW-&l<|w'$5iЗs99Hίd- A+9xռ~3:9:%%tKF]P@זو+`Pj/ph^JJ'|%˜#K(< q6.eˍ5ɠ63p FHJ3lKtVJ,G oUtmzX~4; 9tQ6=E#t\ mN7lhl ׯHvض y)H 79&-TA R|dBaFuD6~t*A*fYųgU5!so˾kT疶Ve=(ʐ&υܾ<8&Til!VO@^`E?-ЫltUb2UNGzsrr)SJm-G)0/f{2NFk (ת>YP@,oA9@e+4YeH6*ܠ&gy}]={62blhY/DeD􉑩;UmT~IԴאcGwuK>рCR:}_ҍ7*ا/\3d"6:7?U^- Hpiػ+$D*0ag2GQ!U(5njzk}poAR 3,ua$vj L##yt~fՃ6S4o r-LSaGlH:^ShzބD²JV4N&Co JL&)!i<9J(N|f4= e\4A #D#KJHWEʧ;\ ̪5-0Xev{5ҷڦ\PD& t1}?g.weoi@ h9t/\?xݮW QSW-o_fyC+Xn4u'&%bU. QKEbbe峩$8@;]Z6h 7HPޜJM!:D[F.x,9zoZuoUȈ1@'m[bB7.tXZn(zy6 mU:GG̝ e&)A[l.lQJ[o`y`&N|-gdkiPz r?q` cGHOvPp9Ap pm1򸇜a@Fň FkKS: :B0io!OYS>6JFv%jfN' Oû*"![_uc64O(j`&f)9ɄwNy>©xʁ'=ST0H\-u1Q֬59O-lk֙(yInyk^In7GS&LȓWaBTg|7&X*{}<^?Kc ;HiU-E7kfQ|kh?k5tLWub8 RZ'byZ _ioK+Y.Y)e$ Wrb,"1(I%]yݬZ}6 8ڡ<ÝJY>W2_>|Z1fW( 3@.!zB Z( vٺq 'doy[f YFaIL +]ƤdccA}#urg*:*MEV jC|8M*㤱${5MF*yGꎉqJZ㜔Nc}IL)@ e\z"\LMd7.Gc w{UU]]8{mW nt]3gnY&҉5/|n5.y>אU hf`Ӑl퓋J3y.<̿FIi6S,E, HLm>ԤMZnLbb*WUKg@S-O4orv-J_j@{/QoYj_2q7w˩vWe6a53_AF4ZۄߍIv*:fN&BK\ޠY N?vN `S d>@JxL?L  3ws]5v~=|4'F.$#U@SR]i[R@FN~ovce5T^wm~|}W 5?OTKp`RxQ^yZN {OBʍh@BֳRԷXl,'QGe,wخ ^qJtliJEy c'L~.^<ȹ+.nȌ3E&,wFu%zq] Pσ"ԦJ\G!|1\,* }N{yHx/LO aWQ0{w*T4ĨS* V-C3ơS`TUӖy0EuW1|6:WDSIjf MP+MR1 &S5WyLN)My2hMYdLkf_GMp~r#6.֮٘hq`FD2AI3~DPrVU*pl% i6V-i3+8S)A/-@hwV$ va\+I׽MPyu8~veJ\MǨVIv=tx 9)_Dhպop H&WN`?>GOFRy)4GGR(_?BG_ ~a;8+PƩ3y]_kS_5pJ L|ʕ= Ͷ,8Fgk47&Ony0WP2u,p X-bMb7x_.~AnQˇz'KhDΫ ^h4u\6σ1N%Z|^]#>w_Z&yJ C ":rYw+Rfr*Hd}s= } zIF3G> %MN}i \yu䬝OrPHصo屭@'h#1pm%~vq¸ۇ PՂ~604Md+k[oe :V=EPIG U-i^7]|SC-Y~^xdlT#z1L |u4{{I:Aoq,;{PzX=$Rb~V}5%z#ۇqݎV٬i "QӢIQsUd"(cb\/L')ߑىΞ`S˖嶎zZyS@ۂE d EN%gz֏}"V0t2ȑƪЉ1Siy>I8 ]mIV]hDh5uu-ģV!P$FyLOyzhR`! ]/^386l@D븫4ƒQ2[0~qW z\C(waɝ|*鏀#0Qx~8&ԩIwN;:֏8i\BvGObrk6bk5HgV6!/ÉƔJ05 ?K7/u{ji 0\25[sD\ ;*cսLPC b#y5&]; s@zxK+dLx2֎V4}QK1'":^re (ńa)RKлhnC0;EXC6j>ŮI1.Ĥu_3_c&901B醯p'^[Mz TYNoiM0_Qƾ4-nZ:ixtWmE -+ϲDɪ}z>Ussuh¬7 ؎;1KnJ5X_W4NۋG#7,Fe 'mN|Iu vAӎ'&]gͰü5۟[={݂7av3O0&.>Tw h 0([U <d" '-w9Pϑ3Z=ns)&\B{na Z.6Z\GEQ9"$6/RuA=ɿy)+S.Uoʥ1sˁ"S+PsG&gDPN&;-e\;S5T' #vjT>J^ǏNVkE]o-[\qn1'KuBhIUV񱮱a&䙘 ",u4Pi}Z~ԌMƷmbzSyT Q|w N~ZFUO0*@epHj -B qKqiwłG% y@@`xsB⊑3PVK3((x(x h%COo]; n߿{]Jvvk*Ӓ]"Y& K\LW D;簵mr4֧S49Bɤ:VF+Q'lT кzG$C7 zT[g9_ǪbuAMΞz솩^} 88D#ҋUHg =ӹle˕%2?]VUe%JqBf]&,-̉_u5(ϖx@/o=te!/Jiz(y:OL{{<Cny,6oɷNLșjq/HU*]یVW]:DRffQn R~c(Z24E;yR&E_1jnEl;T@,EF=$?maWG2 uJ9vR|A@{\K`].An @E?"*]ߨhdU!qD35W]f/ݬک8MŹZ'Tkx ]AnLݤpbro .-ZjyhL6 /[r1@%!%{Ԑ Q\#C]O%Re(eau)9yN׹l1TqnVǰվm 7N |p&T $?,p;W|ʂc@6+P6>T\w)i*#u$nTbD 8& jd ݎJcsvuyBRF $.@dOevlb?f*Z =.^7hյCl'0hc;#x4I_#~ @kĭu/V/n˺k8?H>A$,%l /+x1 rRhqL[xMףq øK $e.<-LcMU:^L{1,3XjVvE~5HZ3p͍#\) a)t2ތp{EᅶnHV0UWyf99Rm>soIijͳkZOe^>I Olŀ+CWjlb-D=h;9$¸5D`\㢔j7mE$ױO`tOpvib7]Oi7q5#m^% YX6WT46oZsX^=6aҴK7Iy "#y7~kͣk-=SSFG xiƟ4eږY&SZX` b$ FpA֭Q2:7asve:7n0g nKa<~:y=gf{v~&?nOvv=Djx:ܮ=x=Eg*ďL+:Sw5}ׄ2mg=vA047ߟY :oJ)p@-D_KK-@q슳A֒̕^3Z7-|4XXwD-<'o1E>4gEB[̿o_flZλ H["46$;&?P^Ft0NZ 5tt6Ў &Xaг_^F;"lt80t~R{)6cy ,Zn0qft@.!uZ䡗@HG*@mwa5Ӳ8mm{*Q.&Y1 jݞ aSF:;Pίت

)E\"?TL LgS/)~>R.bwӮZUb5dqyjrdg/m[[['JC3h<0;ۧa1IF?dLh%آsٿE9:=BA=J^@l1~` ])}E^ 60.k_Z5 _ v'K߯M7V^\Qfs#8@{ˣF}z $E@?4/tS%Hɬ0O_0&t!饭Ј +?r;-gu;]%l\!!B}1q# V-ȝ^vkB!Ղ4j`s^s/{FG^Bh=Aoʣq\E* (EB:FP8A!V XԤ%sҬZF+aě.5WO:v{@0f vX[-0\L^61xZp7k&$>Tb<}Xw_!omfzINL*iE&E-Sޅ6L2I=?jj'@ZpENΛ Sgvs}&PU+w89b$Eiq>kc)#I-:GW0\҇*C_$x )-8Lhqʵ8A9 k!>j'Q\"T{wӧp"$ aK|d ^)֡`ZIKXuS>\kjZ4KlPH=,>z+\L6t & ~Fʛ>MLeHe< #76W3ͩ*7*^ Wׅ䘼Qvzt+EZƂ3jEL%6)-6) ]EhJ Qklh͠?y&mU"F_cs}{4%շ؋(yQvIRlpfNIVNT̸n'8ꢼ+!sbGQ]ݨEY_?ŘG`R#{g1Gbr_f.&-Af2VݕT UI>0wϽ3= 'OHzĸ!Ք=% r6EH>~yTVH S q)m.ꊵ_p]ƍ% Jum=kB;i`.܆^7EZ} S5#ǽtc@&Ri<Ne#ZДN)Nf1xs xm?@_"(]CjZ)]_*GR ,~6Y{"p^2QҞ YD}A4QG*C9%ɵg'LE#VZ!& ƘIDJNF.aO]ŚJSCo;0LZhAֆ\{ٛRFNQ!٧+4S3A*ڄ/"*~#W'[3zƒN" }Ǣ :!b ud8)NEo?d'\GjeM[t ro9LaRnO &pp,P_8~+sgq{#5n81~h8O-5v70澾@ѢD{V%3ο[}3eP9&)snhOS@:\xjN }Hrz=(k}ag*'kM~uMCC|PP9l~9_爭BbSH${Ƈ!R-h!e"t~J說 %PsY` 1ҧ8Va:՟]m` Q} ՋNHra! B?K-9:֋$=w 5}tw?E(@ڴ>g>> ZDf5Q8X&ex-GJmlԗSMRUyⓇȡQ'HU񈸯N Uy HT2rx1ؔyx2_Q^' XZs\b,*'n7t|^7^_YSN(] ̨=hD1eb7µlomMkC[˝)NDӯ ?+Y:I܅:='t׺yʝR~sg1.3=gR"&7nd<8^eD@zn[eqZLM8|@~Uju  u*R+1)AŤt-^O/9k.QٲRYm<?a+ 8#R'`.!P\m(ݑ|߆KJ|ҟ$7'{N=Тڰ/h-4qU0"hLC2W U'^*f:d#v7/M tcO)(6ZAyV_2Ý+QOںX%ˆ4 uaD/+^*U Q܉*mJr4$J@ҢvRBӤ*px69,gA?"z;ۼ/̃xI,]骳.3jwu0uMCB&񅃂 RA^D.pNrjD M:7I6c\|5WoH#cծT+|6+谔mYW]t"P4 +vv%bc+UqP3Iu صוosw&Ml's0x֏ޜXڎN`#B"(ۚAZnU#kEB7Ol.[vom,e(ԚRn4N[z)ANts|?lt&lTZnUQd#JJ%B/U0OjK ZrٹN-K1 Ly:Ce38-ztM߲/ aƋ83ʣF1e&>ruy=?g{AAV4P @usҭJs_hJ-$m@-*%rZeβ=x"h s嶣єʲ+Kj$m UZxͶmx\+~'xTUhQ+l ( wdH R` 3Cmiܺrl F+1W㜻0,j3bLp<-?QĎN);.e ؅U^G-8)mrL=ZWavdzS0¹l^[c@N?x7 ^IG˜իw"qňU"O% P7p͂mhʧ#}d"0,zMr'4wfg.0J]o=uPFX@TfP"ιDOd'⯒/ؑMH&J@T;i hXI)7CexJ_i ?}3O< p㌊fE`OIQ󀙙ލa0u$y#rHEI©-b(c qY^A7t#6]jʪxiQ Hp¸θr8.ڧ~mV;G4]ZM0(M>39 f"Vj<^!Tm&m墬BF$}%U 7Bo;6?fܝ *th3;2"+cML3q? `b+s{xӬ< :ٌb#9#ƓхR59sO:* \$eƓM9(4ݐ>Lb;O<8ϑc4942s gzk.̂2.[ꮩY3<[dPQ0#mH֙!)\ 7ndU&Q(R.Д[8j/x &fF Ey,qI6vc`;BW ufm  4CMُ۾ yóhn,eZu)PN`HosPף]>exjRCVq_FKk4B$x9$p~mmoۍs":N Cf] }<} u?@SKJW02 מзə};Qà(%tFݹ+K=X`*ّ0Aojh\d_%i@QzqmC[#i_xFmG" ;淡hGA6&Í[zXA1ІS GaT>6 (bsBroto (‹ƿzAɝ#q^\ DǐeB۴2ߔ-`F}F0ҹ̌cu-*|8"R$o?xǣ*`YV' .#޸,F Kx]|.o('c)i+W e3i;<Nc~Ix'qcuz/\ Gp%cT1cZ'9)A޿xRꘞ ;ޅwK xüaAvd8ZO obi[ׄb{tla"E< J$uDѿl~b17d:IZ!^W% Z-EZ8Yrt*͘Ȟu+WdEg@f (:?`4bN*Mq̌o}doME2*n׉|(LBS β$p 8G\\H*-srb)&A@][l߀I.{1jBU7[!3.q<u"^`aұKb]"l~p&x 3Ղ+U-nՎ&Nv&%s\[ w BV⮉N?lڌa_pXmvtkP:_kX4L:k55L65p%`Iq`J1+vT';>?OL4>ba& ϸu7coGzL2*)pRhGn_t{wPxTg`#bdHnZūeBNx2^Y N/_*ێ Ea_R.36@$?85-q&]a k@M|.cWi>rwEBq2U6+p|o5g#xЁ1҂ iu8];\oA9ہ Z]MU"]?>*w· q8nCo+Sw/?֛AAbzZ'wQڶEơIͺ>yjGkPŎ vʾCw_< iHNʹMmCUA]l~[OqXO ;b9%xh-= kRC+@(oʓҒP%Fl7 P*[l㪎p}!W$%%C޻*$F6 kZR9P~B9#їH9;#[HVt0Y"ˬՊ87LT a^;=Y[/Siӟ0Y <Q'3$ *G v(D6礼Q-_tUU{'?$%G?Cmm_¦xK( [Ao]< z@ēB{Jǀ`~NA^ ĸZ6 J<xN0cek DF/?-+:GΆDz!rYQ}a]|PA=W^} ɿb!f6$9NAPk^ :gf E+9g4gqrc=/34aЌG ښ`Pf"vPdR.BP5D[AHN:?xT1Y 7Zӕar c~J>{P9ݜҤH{v\8C?%ΧiN+atӷ";lW6AgXru7Oa@Lo=\[7sqDDɄo?}NlUzo6Î~n-} 4[:v̤' :s\x`x^i0=Ә,H,58d%MQcgs'սgk` .P90 5k(0Cg\Uo_eUC=,zh « ?Q?\ς0tE QywWYB|@|2&it5du%6xc8'ܸa)<څ2jla5XrHŃD*>}-k-r)FX,(9)=uY_kx?O@%{tq ao͠GVJ(%%N+"I~G~Lחp!Bȭ"+! ֺ# b{pv,3 !##%\\\<sLaT+ >@HmxтXe%/Ilk! u\aȤ{}z7'j,8Ġa$g/w;v0<s f;O|8=alzN8q.Q+#2kȬ BLF]H`U\!P jz;ya׶e-3e_Ի՜xv8k:D^St);a`Ms42$m?`ȋ8 MNݤ ֤ԤJolY5^aJgX9 >%q[mg}{אdQ[:d ڌ ni%MkmF-֔  -0v- j5 -ßx FA^C!,0Ήtíq =@ ,!d a$ɸl}#jt·[ 4A&aVm/hsՉW4N^`0ҍ;PBKv)p$.HHtޒ`"RK5w.フ1X"0D 5`75P/7pM_f+ȸ6ZKpnysxm}b8 Ճe 8ҫKFăo knj/Џ!9A?rS,qwwt< *EIr|a?;3A>!#mGwtt>ܦk菇#&јzcJlapӵ35HzE4ĥk: NlYIpʨw뻥l*Pz?؛hg ?ȧeDÞ䴨'%k_3Oe h> 9gPf*Kؘ)lȜ˽G¯ыöaI˴߃߅! `r@$OB3\z?$OO|Q$:(OiB ڞ w^/띂 VaLX𷪔f^x,s7w wJZEQ09 .Oœ-(d5M .+.̹VwsU= 6 (c^qHl2\&vaS|4>}xw/g1W:;";L:ɑ·K)C(LƒFam[{LrrՀNn3+~aƅc*l+_8#n6˨-^\>9Pǃ՟;h_j)DsGtb2OpIܯְF.K,;,~$E .G\b?d*㲒 ,^_a!pxPY4&[1$l)3C RiAaG?75uvv)C)aAuAku cE,E`!v#;з~LXt>_  r>H=;[\DH? ;}C^w~|u H/F` i#ه=(㉦ }[!//=uMZߋ:Eu Wti++[ﻀ}첊sLcη>9Ϥ2I (gRĺ6C#TyeP%ҙΨɨ2oQ% {Z~6ewe?:rA+ܵH M= X|0d!&Iʑ(-2xI@Z~H^dwa',#@iA#L)(͂GM.`\QGf(A K%h<;Wz{XR̋0:V=5)xo'_%7"1EވZsL~M#򛗔_=-%۴^Mۺqh=5۲V  ~C?z֓5 7 yXtvУu.ʶ~C2')bgh.jmrѧhV>'TF1Q0m@賌hO&\;H&6<,ʷJ& {^'d#[T^o.P5 -. ~z]oVG:Zi0j<,QRC=Ki` rB@\e>4&zUň$(7EH76(+/KS=Pge/_VsUs:fOW!)_VXo;'tvj[6;`q;0\^o^8 076IRHR$|kI2{7w޸$(7I1֫880p& 84jhug.p>p)Gux7V`#c裇v<ְ1}}mhO\'{W?m> \zځ~-R_O\}}]0&ɦY$CZ[zq 7BO> `}#(%_  p$9 ;H߄A[ n(!W \% p m#IoPOM ~~}|˻DLIn6% ]'feU*< \7F(٪]4 bc)m aŠH&jEt#ə)i~ͫe~ʍ6q+L`š-^"[tE9z-:n4!hnkQ(SoQNH?ChsM&{n [/Ug ;^7~nzQ;xDF2.#wF+M/rg||n3nTffNR[T?cPor='J;nT}@6;D8u^P:Գx>%zn#DxsE"*Ɔ7)7Nmb,ݢ_q!{ kq$D}sJŅy/<'-/,tyTG[Bk rQ%ّ|yNs3foGyYuWL~eQчR\;;UrgU*Eɧ*cR\ZCZ;OAoFh)9+ww½2f]Ebf^Ւ:"ls2ϑVv.zE,! 3v "o_(@'5Au@ކo@E&wpvC`!'Ӫ!\xC$;I\skldG-XNP=k<.WO͍hK`9'_Ea/Bu@^*TwD&ˠ< whǴ "Fokrbw:]Oib01XV9 }Ǫͫ}rn> go#*+PmeD ׿~sG* oXh~K>R &3Y#YA{RG4ޜ~PO!};x; ɹ`I/N~~e+ q_gq ðP p/~,~ X0Y W^|˯__yy'yyo+/p įy  P ?B- Q~$~Ż9)'-`I)֣Kぴ؁IOpȩ146,S#fyrL9z)|9W1ٍ@>ex $BQ He#IYN]q$ ;ap?/1)6 J) YORS)؉<8 ffZP L8yĒȵ"_v/e:3R1=NIrer<0Kr!!q19jV=[]ۀcETRu6{sSi|W5j;UWG T]@$[fԛ5Q(TONHɴ Wv; 7 2$UJNmB]^rFБǾ%HI) kĿ4U5Fr+aL |ֿ'^>:yQ OCprՌk$ns6S'C#.1n_x sSê176RYs,=qd9a5wOz{DfQ4T@5H4 أjʆGztM8`aWB  PapogP!w)wt zD nAp;ooIyxL S#?D}Jkn',=$jCCw3Dqvv2ɜJ31Zilpq=gc:%VZ(2FL#x%WPTv֩x%fgx'(~RQ8' v}bC#fY4 l 8rZ]2h vYDHX *e8fNJ57\k! $׍>Al umhwsuDOnRtTgWSyTpClkt v:NO?D\%4^*1c;޳)dtP.rk\ ԥO%` ֠2zL*sL:W$fPX4g2V,Y6G9^ZMPϿ tRcW+ ~t=/=ϵ6ga{D!KwˊrvL/])GϮF⑴}Gv`Q؈W&e*c*|># ]LTZ 9a Ȣq5_c*q!HGxc|r8dbm mŒ'w #fuhsGo=PJV?O/P=rMY(ׇ,ZARw?G2_UT ejUeh) 8|Wb֯A:4T6aeNrJ1ﴗ2},<9* F7揢 ǡ&~όEVA^dF\򷺽 B1vwdg#82:e-v\'_.ҴyC%!̠ho BnLM!h f#pLQV<ތP]1TSG9jU՟on #{x) IڱS% IS{UrѵF&ERefFK!BT"}R>"A*k?FtA|wW JNMNS I\pJBoή@T~JBmAFE ]v5 q@L~r @)Gq*4DHfy`ӄFƨauDUW,"f:HQn5 ~h[Ǎ&6 %23{ qg)Wê-quwӌwXqEOl(k?FhB_툦aor':xRۈ/@{i!x;m(]FvQxXd"*onsx4#S(0Ye#m\G7mOEhw }PVAeD<T_ >Wp{o_.mo'~<7NET#4ACyuMoW#uMΕF ehG+^rgFEl2PIt2 L)}~};BpM1O95~+>[i0<1POk^\N7JM د6H_6S<5ƶ_!DmcGfU _$$;RlV5XVB`4ʞGjH%L2%iO(>8&vQ9PIn qNq͇vE?E)2%u/DSTa=OQT S7* l:mۘ>l:jw< 3Z{0N`ȍyzŘ%jJ7ɱn8C"]փ4E Gvn{V3iE5Ly!2t^vvy,Wb[4ꪏq-Q]ufwx?/ vLmD!Fތ@ ܼ) /DhBe&42 P[ǟ*@~9ۑ3{ŗ0PH{s7? _.ZUu\&ir3S„Q͆! cUXn/ 3mb)*wTo[dJ{yPm@Jmhjʩ(mcN b*BDclΤIJ Taoi*P{\( ϻNQM$is/TUn e[Usڦ c[qjdҴmQUlQiHɆ# ^?¯ J/6՟lYS|«O$xU(}{䝢Wϲa视L3$q=Mz4W0gTqMWs"څީd9zs}ӵH~C,^( X+ZNc'x(OƈLP'mAZjS2gh 4Ӥ v^0\o"7 Q}0=[skQ[Qu5-,!Tlӑ ՝,tmoȍ[B%|dr%.SYF;*:!UZBT*h AO%> Ʉ$ .#n=JcrTջ+QTf~鹱Ē jpwp]"q5iޜ3]{P pj!h G(!@$9v-r=3"Z+XY/*)fwo$oh;kBuL:{fXgs+"?{RV+~iB;*#8 jmU*ro&*NSy{y8[kQʑ8zJ4Q;GUS=d]`qֺҹ &}΍sإv1#h@d)<#9cN!>Yhi @Gpy1dxoN: ƦBP.㑄> ݶ`.d6|N7GڡҶ( ,cdDU՛`%C;x?Y{fgcH,AzlSs@ Oz>za9 UCQ|P]$05C-m裖s:!r{]xK~huXG+V nkm Ԏ:10-Q# h>ֱPu#uCmSPD\_ %m たZ\: O&%`ڱ&}uy⺩eEJhfTEt!;0*-rƛQZY 0wkJd[7%:o: 2 BKGaTQopW(ad|[ˣXUcdBN;2v)d)uh|%0"zj8Pxn @o fc11pfv64ih7 L4;‘Ҩw]MzdjrN}QP"6ׄz&=ZrqS=LP'P])t'.f5.~3Mm=15UF?[NM`v!E9uMNٝ LJ@ʙ8&5êjM p̅86Q 54!g OJTW ]Q􀕍ާ+\!/Q>5D}XW(zV0x;8Qnөo8>ssnIcT7(̳0v$JsfL 5wa3gEiV ` 1s:nQ% XCdӣBi/qo amQ ׵X nk.84{0sԪ79|] ˠ^N6pf\cpSE=F}"vgA1{y?AMbhT {nq7 ;m9ݰR^ $liG"Kj|_?NVǗdUu*8Mz= ;&ea1Ofa)x 닪a+|n$#K}Wke;0\6ּxѵA)G?xB,_U&=v?4'bMEcq7"~1~ R$ؑUúrai)DY8 %Iēbhk74.NIvDљG*-;8XiTtn AIDX%Vqav~kbH;ul_n >^ιM/@NDאN)i26Ie# g 8P!0z8H7|r`/!w|*Af|RŢ@NkS>=,{jWef]qt LJV|9Zn (3 'kc#bVv28X R]gd-K=RR(SNJSq?'ء~QH\Lm & Tٸg\R7ܥ#j>C7?paq?}A/W{^Bqf'7N}"Ӳ2Kr'$BTFM\ -YBܷK\yYjM{Q$+.`uLf`ÐMi]! unB\q2t-s2iNR_X3 Rl]gI@s7E9Q~X GD=-(<<5"B f'>3Nj#ze]@EtNEHuh.i.hH!Be/WVtAʊ#)B[s) O]d1&jwAc>:+3rˑ-lDx&'P7qfH:kFh  O 9fRYjq˛BnûOmX sƾjr%op:7~#[Vl8͋BH"y@| EG}FxY! [9:)zrmbLwB5sYGB in8 &|V^`Т#puzz])`!~E}BxO<{D-X060E.C+|qnrŊ63F@-4&$+Ym ;^R126>\ZڿIzZg*@5 Bp./S%ζXnポK cv\R3u6qK[]Cllո'`SzueC" SuSG[_ GD?zpY0C- S+&AED udB [a߄qIl9%؀FFû+Ӓ*өߕf\]<ٍDLoYZe`1r.pi2̶m= +̎&u|@7Sx&݀џt&˝#厜-1xYMg=՜f LgA v}&y ׷8dfgCNQ*Kf~\ x 1 dN}+wP*S3R'͝X,a%+A sS#!BOx0Z\AM=?"r:]FGk?yf0왞rt#0PLoY+8 8B^H|A՜NGΑU.QeśhRʆwR}m @pڕ._ݜGOff s:FphGShȎd =oDE;d-+ι:(X94MrD^ݘ\cLn_ьm)<34}4et K Jq`N Q80$JjE "|6LI"K==3y9 DSx/P?0W A+ RBe_%Z]%2z˸%Kj:cM ^XDk>5w> ;GWkpv5ݏ3 }08 0U Eɢ=e`<4tf"l{ݨ[alx %h HYj߅Px3sji^5AwU|Sa9OÖj֙Yyc!-3kŚ2ki|No\Ě}43$rEyRǜg*A’"#6.R0DFf7Ś5ceᧀLP?|eMg[I9LEEʕfj-jftneii_K2 Ώ;*8Dc*++*50d Lb KšXTj!Y`$h|M B--.#;si\ҦO R%嬕e&LXﻱ.)hLf\0LE~ ^w i/oʹRi{tiIy΍H,sB p:(Me[wu긡tH ?lr6:a2jrž$1a_]ZP8{՛]1&)u)ȼ 12*ƹgHbvl y8 vXDE|Go5?ę˱ )G٩Bo\ W #~PȘa`.^+-)6Fd]aro{ʇI \/ZNot30ZZ^j2 I-""Nz/bϙ3Y:+TKJ7 IMӂ4ZFs)>Og g>Ϗρ6ۣJ,ȲGmn\]] EFڌX]gm̲z шW4l56H\PPPm,+PV뇺]v_2PJƟJ? '?OZ? ~Wi oH778޿U ?7߰Xo`Hhf~5Z1Ď'zz3v?~ /yi˯ھo׿߿{PW;~On>sO>ϟv˯?\ͷ]z޾ew3D3<7.!>ccq׀a7[c61˻s783KK{i2ϭY+"y2eBܓ0N ɼʉ4`/ya>ۄy`zLi4YL$$k!yJ/_9,sPZB<85a|q0&_cVtCKc(7[xb[b*gs4qeďlhZg^X1HӧF='q "ؑ*C͡9UqŰl鲌pfOdy] em8c߱es%c{`-2vDq/w }yoc> <<$GW1+q'똘맿cpeۻ>-C╦=:|{/7~cw1w*p~ ]c\}f>=EO_Zy;𧯟gx?|wk4|U7l9K޼>_ϑuLeoQhܼncיw*Yd.1[M9%"zs Cn{N JYB6ԚVXLWFi&`ywY4TWtw4+2'SF B0Tf&tٴ|Ќ&BVdZY C2LPZ\ @]+'úߋyy j\@٫Gٽ࿑9Z,() e78r01U tqyy-njb] bWfS9`^" c%ĈU` ]=%Vs1@}x0m|aB5 d ȘʇWsS{on ithgYd 1=%S:ȝ``F,c^E{]Hxjp鏈ۿ~Kֽ $81+P/2s1)]_ӽaNt߾~_^^Z1|['O5O-}u-]fДEI{]\+ګ \:[SvQԄ3&REb_}'5Epq WqYpǂ\in:f"Gc"p n_t.u*܍춿 [_h-gΐ xr3o(e+.}jcZpIogL7CS>7> yZyq\T{X$R(IPxC97 =0/ tO&<鋺uLJtPKSbp$setuptools/cli-64.exey|TE8~;M:7, a!. ڗtDE2( pDL'M#oƙqߌ8eGgX@v%JpEb;TwD/ҷnNN-gd$)I$'Z5m2bڜ]<?*\C㲲:]Ƴzٙ͜FL왷3pUrzy/=3's;=a,-I`%ڤQRFJ$큗GD<]Hp$G~J-b[EP ҷ)7Ylbm<㴇k+va@3nkK+W:+o|&}y1Yz7_d>B_txA>AO߿ C sga͝]4NdT58iv,j S-kLI{ˎ6H#tKUKW`"slũl]^qjj_ޛM<jP3T>iB^#EUPoRѢUiR-qOol(H*Xjw)3{9wW߳^ ܥOe45kfMũgX5ߩID0ۗOۧF45wM}2,qKr$ fȡqMmp F 8ءM٬Z* gSsToӂ E걤j! TA9۲$s5X${&%aXYo*kRY''*{N g3ƨ^G4~pSWDJ`  J)I^hUR ;`j4-zoO $/9g;*Sdj[ih|W=N<~,Kdi%)f(+hmBcxj6gy / 4 i{EpF-Y˲a5g8o=㟍 }j$LFTMt ys9t~wQvU,i-bOs1`. r*p.?lGls>Y) 3CeAw   nOT+QD6$:3~.UA Sbw\z?UqXX^m&n-`Bߺ#ݲ@F.?U9fQ-y|*?lʶ@_Cu3YHf([zB!@ ;D)Dfu|$HPe4RXxD|[0G.UӲdd[kTҳ2Oq hx)_SR+ X=%VJk1:M}$*%P4O< Y',S@ *7JDj6~ޝ]57f[.+RB5cbfGR$),F ;zb (!HfCDXq@'nPc, E=rV *k9.%ۊ ,q2DSK! ̬;[~"+)aYn؂ g[tqґQ0^ S,0!47H[+(K#=iO x-3|cyFjc*]ܵ_Lam ll@1\~{ϘfŻDWU&"-2tZ͈}~,4V(^ Zuþ`Xu~'nX0< Vz7ɿIj$)K5NO3`$MfԉE>Nt"E>t秠)9>DFANS<U+yZ{^aχswNX&g]nb} 06 S䂧X`ʼnhjNq7C̚vB})p+@93XZ?\%l3i99 m* Ȱ#!AUf&̀n}#ey^DD;u*U1^a{}XtA4*X#Zݷ` pˢq'UMTvVBM`l zfnKW#SMg.8_el19͐ncVl~=M5?͑ռItD{3 5PwI!X/@,YCpL 5]> yw%Z BМε߃0 D}W.7{<<$V0: nW h߂Ԏ}ơTW0V gp]šFMh/P‹U3{pĪ٬,xҫfml> 3@)i$cm Qܖ @PZ<<8_{a6ɳ\"h*O?mөootKi+ɨ0uZ2`qն>r  R!E:`jM ܱ`L`y- ZAV0%ՒʒZsq!uƫuW8e_Vky6G)rҝV::+xL?![UqbUNZ:Vu;s-23Hop*AٲNr } yr.4h|n(J${1xY=YdPWjFZ{0 W[Pc@V>-D{CBPw%jK(a %Cvf 6.(bUFnbaJԨ xbZQV(P_YOPz6{vGi)'%NT!]L5$SY* Mڛ@C*PX?8k0 i/Gaȡ !BRMٲliWPLjRtAyRr`YO9!?mIϘA8et>Lym݉:˳!ƪLkY:8O\'I~h+NX.L,oSO06Bhfnn+xֱ;Ԫfm9M|>ZEP"~w@4S<ԮRkgCx23Dj׫Xb]l()zT?<#m>,PSKٚDWźQd@r|z Mfic&R!įFtsaB˯"pX<,kŚS^PSU'ȎJ Z ++q#ܑ(M.9jLz2Tbi9!L m߁/ňc.ۄÃ/AS! OY&#b0&y9b"YWb%1qYξ}WhIfb)O2̌I˲H9t/ գ`jҬ0܆bD>+(bNJ$Cu# v8QwU0UO}3T&_Q4>éPg"^m:wr=4t{g~Wq@bU0C7lqQoArY <^1_dPP8+τ4F`#?@VbUd_>roÔY3 )?26UX]tƈ5$ nn'WƟL? O ˮ"ŸTvI]hOiSVV@HjNWT i^E/Uu=E a_q HiL*vK|5q?;O:8F%WYSR-! +01ےiK3T?=V'P<DF ,kV(щWu@'_x*ll 4*; : ћ؇{&h/Y0 n,蝄$dhNB{k=(a#%yߴ+%( \D%a)m/Q~6,m33YQg*?8+Eg1lƓ6IThx- OdeFs;,jJSRYz.Ы(hL^^#[LgD6%.Ceɘ#VRVB %ZǦso=L͐1>{c#af=5s$g[8 ͦ z-Qtz{jA,OUڋm.}ᕴ4蕷SгX^~kbn77PKK/~`sY=A{v2ڛ 9[D)ǿY3u(e(,=΀1ƍz~s_,ZC)Hn [b.rC"7h,rIȕQ957XJ0ܮmUOH^@gˇkKReYien@QW-s`Z@3~-vŔbcsqR"9udmiXiTsi `-bm17*&SUxx!;@Oi!RÈ@PxH%h2q В>O5 MXK@*vņ'ĆKSأڇ[`.%,p~ i~ڞ}: , x sXL&]$,pY}DQfm)W_EbΦۨAyT26nCJhLB]2fz5\QtzA?A+eXzВ]ijT M{{_/KEaѫSQA9->4 2k(ˡý ;hVF{\ @j\S/ti8}Q_U^a9GqHYQ-S˚H&Hz!= ښ6*ޝr LjU'DDDЬq"WM6:_ WUQjTFgڎ#Y,Q94kЗv6_9L!6$Rx*E^eTw+"ȫ %p4KX1c}>t֑یW*v(a5[ۀ<ơDժ6a\􃺺Kjc%mWW%gh0t:~ʲNx[u(^ezFKd4_blvB\Hza49mFr cr_x\DCFgѩˡX l/죥GռMS028"?jM>Zv,o t((ɫPDzTY`x]]!X(-6)LL Z|zf!!1y80Tjtn" RY^Ǧ85?@?xdS\2ۊYq'gxr:Z68*^`-f50=O9u4eGD| ?0Yus.㎖!ͣ6 ۪[ƧPjf;YMdrYԪX)=s #Z3^54Wlԃ(V͗CoɄk~*Ot%da@<,B*S ԟ(o:buKbQiF9##/kš׀V-e~~`z.szj*A;6mezTT=5`o>r,_sTx49hP_HH/.WM1ɼQxWz/y@lFY\1ӈs9y۟n ,wuP8Aw:k@> @~OM!Mv.b~ $_"vѺnnS )|7"k~U='sT=7EI^Ev/Pk/vʂ<Qs? W 'S`V(ujLw| 3ܧL_B|NWmho_Cn6ҷ76Y@6~hy;O˂EoNǞi\^3c@(`!A} RVM^_Zj4PTVHkO0A{9>'Pց\,d|K'r>yW|mF51('~o0Powr(l|O3rbӲ$G~ Ŭ#<<"+a#=ꉂÔ8uIGNsE2+|įn KSwv5i#*U9GTW%9^ئFOsbpt?j1 {*aO6ޣ슛Z)]:|ó\]8n PLGS&8h}b6GL!= J6PKh j)/*~02L(-8d&DKa:LR  f\xA=D]~@ha-CrKsljY~Z ea!j$G"^W 5P~@{Գ>ᶮ۳!0r+e^Ld{ grQNOӀXK Wۉή@x9)!52|Xăއ QwD3v/LcEH\>c[ՎcN]{UT5k.B30ʥs[i_eL:|UA.pMjF+V{_z!!a:.>tL,B ]KR{g? nK:ױ%sE(@tq^6~f+&HW̃TQ0^WQ0C-2?*,AۗYjBz,W/Tyi#Ys /Q4gmXP .kс,֧8FfA' vΪS k O\Zb$'U#=,=)6v‡.O'N8PVhcDG@;o|qgNNTӤfΙ?;lQ6L'i,t>\2K%MC0X_D!y;Qą_Q:é0#[1O?*Tz5j`X_}G{^7 ?"t"ߡ?ʳʄBG΁xxg< 7+&}/ƤGإ|/DŽw!aMZBx 8KŰP[g!]0=;;;&t@ ;3iAttRE]{")=(tx$^5/>/*6Pۭ-"-{Y?oE chu%T,R LY0SĈQ& AP_d+[o Ez::!K36ɼs`? rW}q_Jm;/*ܔˋ {lu鳝.(FqhF m3>G-`YhFԦ 5YZ ]}l* wKWn,śDZV2َ5<ӡFf[$@ߢ84&V6gӳgVjdޣ0ö]e rH6zhWm++w",f̪Xw) ƖX7{/wJ F]Zʣ7TsGmZq4KDൢokE֊T#wf"KبST$rLRvd(!"SlT{[V 4!@Tnl,.:zlry.N ¡ez q߈eڤ,wR|F?㐹M 4`#mzGMǣ{pAZڟ%p* jiU0RP}]؊la9)O^4#w q l?5{:\dd}@枹OC?}{ǡy4F3B%;[MP=0GN( RztS%1~ϡ1mO=.i=m*̥ڇv'@niDUAv_(*c.hx AWK(˹0Ǡ%"V-Iߣ{3M&CbFTF|6C |xjk"VCD;?5,I%ih]r`L?41mx.\mx+7x[,ک{E|%"^h輸x#4GL(OCahBnM{_s *x˷i*Өh; H cNq!nu=[typ[TFwX(w5WvoVzzloYxMgI@HVgea |hA%rEӅQW0<5 ˸]4%"a5A0|!dSsԲg/P(,^GidcZA'r(L(8t^ [SsXQGpQ[X>/Z4uݎ ~ڗ69H *݇"C< ɛF&[V6GElfґ]F ބMmqv*kt;6OWuT@yOzvl0DCGicvj2jKlRY҅M{U W*ؼ] ׅ~ s`Ov@<2VSm.~D^>WE"j"ѳICBBzI@YR>O/mwΞJ~ ^*rt>Ƌ~I ^ U},^c ۚ3HR. LVlą?o0T|N0*|P'ռ\U'ѪhYm^d+ Ke׿QvY膔WDM$k RkodZv@D?s}i9Dh1R t9`Lw2aZ@?3q]m ֩uݾvfݳG:[U D?S|ml+NupC$)3;,JIօ7_h1'`a%o\eOBrE9n(7$]tԢ.XjqΡYn:Q6yj* 񼝞F-G~D`2A Zkyrz#A)v-LqX@^ +hF-nZ9 }f0~AVdhN?,ɫ1(SsۍVK\T횃p$21G x:Y<eqv?0#ˡe$W$,XpݼlզZkGtiOq*"Ɏz$W4=i$>R'IY^a&/@_AOGuO~Ƥ-"{ȧ-fH8 8]#BV2kF&2B m@˯"LM@= =?HŗIH-nؿ%,N2 &w y]+Tk Ԯ-G7j].5w|eaؾ>L]Qp!Zp#ݲ<v,:!d L+S0;##sf=B5eTlWx0e+nvm,*λ^𛦿yR O'yX4n-:F|9nO1{acͬCaUZo5Rd( հXBU;~x@jcڭUcK21M+A^ăa@!x|nxS߰` :dcYŠ)=Dc◚=`ݐŮMiϏ)Q~$2iƞn=Je{e> QkX'-LJ]Nv! ep#zP˂l2oS# T4Fv/Flmi֟&]Y4im3Mx;& \G%Z},{}`(͝x7טSQ/2=bF!m{1Ep=cx8Dww'ӏxݙQZ_zwX?jupzNVs1e:χp ՘1qT*UiB,. ܪۓHb!VݪA QPrh*p}q5;϶zPڰ׉=M@QPF h[.# e:RBfk+DeuJƅ+C n%(V 55Sύ;/wX;_R?浃W.չF-Si/4vYoڤrL((E/J=ČjQWy%BsPVܟUm tSS^#xT.-# \wdk<˻3g6S,p{Y!J|2&N^w8V_l$a ම) '"weYhzam_j>-ָJ;mͦį*xx^I%v}5BY3{~Oo'r>ǯY/$WBc,wIfgq4ڭ z7,zh)+p ; oV# Tvn~ָ` U.` WAt!V o8IڅA=G﹅YAֈy+(G 5X+'lV$OYeuA]&wͦI!Y+սT_$¦ڄ 4tڻMNx0էAJߠ (*l|gKvM]IO$?C WPo~?܇uђx׬ŧ ћGA|^}NӇфo<-¬G<:SdIC5pl=cn\Ժ|YwM g~+k"+o`8'r4Yx3 ~ǶF*ݫ0'Ƭ> F>`:nT=_ָ=O6?ݮT:ػA|27LL3(fkn^@wAg2AR^k7.hJ^DYjw]^gN?( xŪJhUpxֲ{mgbb Ȓɀk#FϰG{۟0z5NxogDo>(s3p4~m2qS|Mt$^%>1d9a3X&r԰ϸEsxOP*&!<ƯHWX h y'Wo_!"=7VV>t?q4|umpIg=(?*Ƈ~Hۆ 4I/Cpun! ;C=/ֲZ$DZGaxj9VwX>l}uƜ|HW=Լ0j>*+4D9)}i(~gKQ}%-z٭7›6D/noNO?NO_2} |D䙸2I|.Ʀ¹dۂOQUcj>pC:Lؠ^ؘ 31ZE_^>~UĻ[[qlZ~`79C'n=Q5|eqX7ޮAkC8[z R^PYުF*;ua+hmM}z\W U"Tg>W?f/$4B5rt1ZJ ԂDn5׆×%\8r>/Bd~pp1#f+n!VyQv*,[B)v!; 7>w(ݦ3(OtJLDkmʺO?E8 ׁMٰS#zkYE3CqLW0f7!?]׆K?O1S .# +Φ1ן4ΟÁ!Ǝ!E9hVd%b\덦yt(W-kSmrhy^yzUNjϣʓ)+^,Qθ8=@ږJ>o! h4W`q|pۢ oRAGLqJKl2f `dXWU}\1M#N ]J:i:ϥE (O7B`G}v `"zUz/dm p9Asrryj1N#@0R2mgx:Z-o֌d5PaWyD&@~߻IOegx5>»}DEתa:-JeT=_w7N418:>1ټ"h=+%6ܓyČZl=׸x-5L"▓J;\l1cd`pJ^/6Ox Z=5x317jӌmaiXus-#R[y-wunTzc/a2 a!WB~7]棉ާN*`!*k^KqYPsE PFTo=m ̉ !~wɮIH}U'/_Jve]w(am~v:ȢEDI0PY f:3jлsO01U ڻ o#P 6 ٘>{BOB|[ǽaަ!;^%5s[/5R>$Ӏw%0I%.UyErB3\$1+&91ћ&2̶~p 'g^]?A!ZP+ܰŷh5MC-qS#o)BhtS^:TA:gAUq]; .mH`8p|[Z>X 4DN^Y]k'4Kkx3k/A|U F3G8;GF|/N!?Xp?~z6jo_tzmu/ jGW-%KXaMKw԰1zvw ~co46<[VZ [OHo(X ~/Ȃl809 &m WTrl!Pى@ ŗV'p{M='H5sDєI 8[$%&{ǔ=Ab&OA8A ߖ0pE3#)7{"1?0$6i~p|;q|0cNBc\+Ƶ`vfl'4w5< 70|O^a"D ?&! d{EOOR>YBE`\ e"0;E`1|D&? #\Ouoawz#D4#毈0=Wp p+0XEͧ0^"z0N׊0la<ˇ0"Lm"L';ߥ0uߊ0RV|-7K—Y=i7+UkTbbW(fɆEҮg9&Ld%2! f)1S#b1V"b"bDb^1g. b^1ѿwwOY3v4 D\c^K_ ]dq=%}MNݮT},f P 42$I puRZJުI^_Lb ri@_ du z0ꔀYЍCчcO~M[ӡaj6~qWJW{"qKcGgZE.2{߹4ܱncT[Iy7/I`6;t!u;ݕV˻z|nSg>\]кWGl^|1&'>VA:O\p$v,lX!A@]F4Yg%c5!5XrȔQ*S`)҃`> 9їbAق|+?(?$!|4fOQXfUnRfEPBP;+,( 7l'Arafg:OCif$4}]W&^EubT?&r&7y qNґ}SNOldSsO6 EO-EծW Ut8s?"@a/WtZ+uQHxϏz\+oXO'S9TN֙&k [հmct/|KWXJ>HH|0瑃ЅYo y6J9Co x[✞}[tkY{P%YGY+lh6QPpDmM16K2fB#DNsA6$1d8f,\7$Qcb̈́d▨?n dm.n-NU:uTt0=UOEn隖f9Գe4bob|9aa|=v#Aik: ngBņ:*LvP:nN~H}sQr]1ȷ y}ef%H%S )`Uh(?b[>7#3/A7՝) P%gf~ATeDu8) ˜>Ꝋ"2{i{@;fEԕX/&g$!';q2|6 4Ph݌s>2|hH>Kdyj`iOof^[/mi|A[1QN˺Ky^5X۬ +pѽ~(2q 'PHku}>ʅS+ӪFZA{T'0.5yI.vv03QZvJc#G>BO퓧r<%|6є6B Vlf$;ox7gQjdQfxkQ,HXb[bx?@;ղDTՉxq-~z;OK_K]~Ai:Ji!!"T<==Q]Qf7([S>f@z1ӲG&(BxKQˤ ޗ'dI(/-!U:k'{КFE1V._z#cuT5e .C왊J<;xe6T+~N!9y9jxny @|eq!8;~ Ԫ1&ű0"89A縪RO[7=uBYu;ݏ/E,D}p|L|O)AJ~0!;XEz?SinNElNcmg>[?}GX"7ԇ8r{ܼ _fwu&JHz&1S3]eZ41 ݖ8MmoY, Θwɨ"*OڀGѩ=(~eO N`}TcPɒ4sq&%Ʉ (GM萖kwVP9&UG5w)X.lxxzE&nA-tӲ- 񎚠۟jysIRߋ%\Y$I]䰜0zXZ@yXX0b`nhj!^֠$iOre?3JL$34wjvf <^U5ALH''~' {W s\2۝:Y[dv9N-FNgI"~#EI pǮGq"9zq7s*chU|ZNu2[CüL|6aݙ z|ak _m`⸂f3/ۥo7={x$)v;IA/- 8mTIz`7 82N0v-plw 0NSY;INm\ZO,`xj)Cv钣ne=0#VrA T] EE? ogqTv˽"dۤ˕7/a(I`|Q3Կ/\վ69wL*JMDt)B7dn P9)k[nܵFa 3;S BP:x?t"UR%a%Qf=Qnbwлidc񦶠$сKSf35{?5&tCrK_AfӟD t2`'nҠNJ1X2b$?ŔEph6Z n'^P+K5n KSvjlF}z Ne'w'wDep&"n95Գ-&^qUߗR7x.At6 Z JʹEqN/qW;LqK:'ku0ғ@j^]2Lo9!N(4o~pH<zPO\Un@ltly/.*OvFD &A`.TVC,gME.+\_-~\t7XTS&Š;NC^Py!l` :G}IJo> аtgp6MYt^"LBҹX]Z#a9,wq9v%Ym0E8+q ոE܂{~),{|ogRnX]Aݟ-4_a |~xTuEY0/J>ofFZYi%޶ s/ jSQ 4-J_ؙƸ"[QlD!oC><&E,}UGI-0 "Ÿ9j"myXyC]v,&@-8kܨuα'lCE"pref^KMF&)5ڶiLl#NӶ[{k (t%UEVĦVRv/MTKP~@;A;MļlE :z;Ô:(z ùV;(@>@s(-C@.o~w*ڴ8>d~h0y8}~_;TP JL!]jbٱʓ.]W@=UK 5$\A W+ IGS248%/AC{ x#(,\c}YO ;,^[Ao+v[JR}b]`b~4.?op mWګG_4g4.~^gXj{pBrT.Z|(.ܮ +_AҀ]-sthٽNަReatl+bf(X9]jz$QS؏7pU؎-{J+xCo*e*?c*!e6jp0Fu8>84T?,Br&4cf{QPa S%jQ-;Wa}Mtic_M=ƋpIeBūHytKpb3>aD6iO6sx͸R3LqpS+mP_xKQҁa;j2mAN Q{Q.+m_}C 9I3Sb~sG= %X1csPl̥WgdU}9L+0QkVٷگ45ǻ0Wꌺe@zۤϣG-vy7 ƬDUMµEq %x Q=X-Faq ja*ɣ'[tƭ>37X.WY. TQj6VBgN(|*gQş/dN!ҡ] JE2h%_1 *SseD .S3crOCbe5'axWvWlPτ[;ٶ‘[gN 2Mԃ'o[Zn І %H /UNdrjdiw)MnlZKn}[u^ҷSЮIk\[ ثHmWj[b38e1(=.z^~q)}g,'l 'WpffGV_9D[#k(A95ZlTlTA䬚dU-i16G}ۯv&6+"i隶N'j wbӝL\'*\0bYN t'Zp+qX@k \fZ1/$ٱ]G<ꆑl0YI5;P;=ox0ƊE +p6uV!$Tdɑ '4*FX cǏmÍ{HziǗxF>i5xMyrݭmal]s{! 4p&9V%Qc`V Ť%040auuF5;F>"wGѨzuaQJ$uqORm"?,;-yVJaebY|olX!dfk8j{*1ièK 1@Kzz8.GMPxEđ߫jI r]lB|ۘ R3.!p[ދ@TմG0Ӌ<5w\6 ttI0.NQ=6JTQk@@NE:D1,^ar~Ub5;$& NwF:+ioytĠ0`ػ@ur1>(?_ ݫ(qkHwJYRʧժ '>$gӚ|nI}J7TtZ엘hF0jWdAv5[o-x)&C/r@NOH?HsY.m8p~u',FX9nq$[ =nɸsN)ݜqJD>K*ildyUSMάAxӘ.<2>Q SDeڻȯCXh_1p1* pnF?vo8_JQ _<֏V3٤_M: a]W8&ٔ<onO*q mЈƓ`=-;>-8BQ {7&PD{X (Qڿ:(d0PMWצr[M hTh$gzڌ~}kSw ( oկYA{_8XLؗ~>Fx:B_Yt4 _:t[S 7.4i _:k0b {,ߔ CBlzX%ΈߡU-XgS(`h\+ya HIT8rÝ5CM8m_:M!x3i0z@fFrrPu?,E?#Lxj{XѤV7VDNL Ov#{PgŠ[EY˹KoAU%V LnrC!:H6LP,P;+MPY_R LRM`0lZ"$ @<١'bh/ZFݾz#s6k nb|W=pjX.,APk|PCUمݼW W`j{;XIa:c~xu/rFN<-KJg>/ԪUTY7(\iiUk3R|3DXWWPDZ>&7 i ǿu.fRlQym@z oG؂Dbf>|˷ 0_rBn9ҰkXd܂ł۶h6B`ȶnO#Od 7Z*}h^~m3 Ɏ$u9`JN::@i9 s i$Xao37LCώ(1o_O;e[&Ec/SyʄXU 0Ejb6l^RyRՇjXG:UtwV9Tl]g3>^W]j=+a\c/j vzLfJGx ;v!2<&G͝1r︳&;)gT1u]| (_ܴxN ')oa)ԅokf. t~XWtq<ȿҘReCvHt!]hK,ұTc^p~}>Ǔ e}|ɡ79H OW2< ;c΁ p7cT1T_Y̽QG;1xᄣp !vABBDA_uXMh/Л[.\KCcr&8?`&nC( =cџAٗݔƏpcŤcޑ̅Kغli0ϯ=I80ڮIh2GcV|Ag2M\#efYjA/!yf9&;5Iz$yIƗ}%ub1,]\Z mND`H` Yp@Q4)h-Lƪ44N&Bit3FK-5w5`y^-f{x/inˢlBۚtZ幅t Rͫ+ 8X;LR$'me3wOx"t'(pT,#ǣ`9yx@p%*["1ϯk8cUkߠ>كeXV(+ SUoΙơOrJ{QVM_!)AYkl[:3] M&1l&M:1oYOvcF,S_-gIyp HmDT(s(/v?!"8׋Z`&1r(Ǿ`߶WJ[s?׊}bms~;cA&aD}N^ף7U} \8Q*=8N&EdDzn3xJK-W?cY(1(8(59Q ʗ&>aW~xC2醠!6h\ >mZG -kb7Kb8&q ɇboMM&K"%ɒdId$2i;x&oy_1rHu]soxW086k:;?} Fe]׊ʾ4>A%4뀡k5@YDzHGYĦt#.wFI)o[9iMySڠ W)AX'.gZ_C-Kr%ݽ:OdtKaL*Мǔ@Ez_2PB_rxBV9})z`-"IDRd9nT6]t&@T’\P(ZCB)ڷ"9BVwЋߛ{M%@QHƛmvCCY#B!uaGͽ\臁s,zY> &Ďy}.)+ͮz:OʝNq-^K4*ߨqYE6l$ja98\o8|8a#rxëaFo.8\z少O9j{2a,7r8I0C7>_p_qHz8ɡùqn氞fUM s8Ia8| vr9srx=9aeVsބ`= n`G~;t]}s \yf<%]e9$e,0=%aar=<}RJĢ}`n0ě4b7rk򘱖qojbOx#mdgӦgf͘9kwjݿ';gnn+^A -~`e:>X(\2<H^!YΩ̕:eM#JSmiS\ߒ4jtd؜vP99@V9.nI$HeN1x sK<WPhXXF+Y, 4D@Kͥ]/| goTdP NLsPPPXj)-u-[Ȝ'z 癋!.櫰P()*\LB@ۈ Bn^T"zqfNuAIy1;WXo)*Ġ% ܴ% - 1ŹL)9mH 1Wh/*J)dy||ӦY\"+0sr]J vX^#:?.VyӳXy tIqk//t0 qlK$?2ŴhF+bBL>/,Pwmn2\3npnJ`aGs* kzDbzCaaL;E#ƴ7KZXRK*sC l[;[$X(@1?0 |x!- D2Rx\RL)h:o9YPXL!6X,B?@~tW1dIW'R?mo ؠ%ł=?F0. 晅4)rqNaÆq0@sX< ]$ mv}`G:v?\^|E9 UVG\YY '%g4aprƬr_a5EsBrE`.((0Bk_wk~Wɯ?/_Ÿ.ϵuZM/}Q6 G/_-/2w{/o[;hMWVTzpuU7=G{><ֿw_6+7oyOںv۰o7><~/'?OO5_7ù.^W* /N|p]`lLAɜ 3KF:!tʅ9ˣR}*Кr 8O,$&Ez'9GS+ia7Ɖa\~ƅ`x C2sѓC)&RYbWCl%1S0Gx0vdtSZZc9ٓq!v4֋jȎ:ٝ޽o0 nțAK Yg&4IHkPέMB~|g8`~Ujzcf؝̹-}`tg[VV&b2PV + kd7ãP?aP7`Lב1=t=|# jE~@ ܫ J My=hD 4(ڗRBB|ip8:>]?MʨO׍ILje gTT0AcIen_N[lw$l-;:Θo3B֍Įe}mB4;퍰VCspVq(/7Ld} ^{F45jռ%Jݴ06L&oFzBzB|==ݛMMj#٬a0Bw#rhQDB#Hԭr][9zpǘPqCGC(pڏŇsTΎi i)vztk[Meh 7'’~;'Z.\7:\}MѵQ&7Ɉ֑ &1 iR輿imo_%A5D7. @:Nm%2\6+8D5cڦSp߹t[.E0*vyrW JK݇+2W4-']iv\q<'2s7mL$9KJ|S*C/)9nA M2EW{emEE%n ,f[ sX>SS|STGi*gǭ ǃk0vfbQ)DD-Sݎ6E _(, 3T3YP;IYǷm>Ϳ ޡmybFN &ڶ)Dm;| ]EVgR rb11Q$s<.ngw?Azfldr)Q#AL da3 ڶB!Ծ&@BsEUj#Os*hoKb ϭ'gSCסU&o?0{ .L6[!Ԡ.s,^gJPnxU8թoG/2{wnoܾc}.0{_n}5v3]>jl=׫e*>ܮ=%qb5~nܮۓB?<`=auq)BybtC+8L08$gPK9尉Ã6pZs1t% paV9a& Ym:ԇ ?j/է;~,<,|3<*lx;mZxm$x@/K\~B϶{~Ûo ߓ'vxtQ'[ e Ns6Wz0aАfB^woݎa"&`3·#|/#xYx7 Y$7 Axzwe~rs=܏? `f3i-ʨD@^>$B %`h< A< $<1{} 56S0;D?` JH4jLx`;Sp?pp#B5d6iw+O8gm? [p _ogcei!<n+G6NWNqq |AFO!]#a 9 ,݃ߚc$^7`"i<o-ܞad ,g.OM3ƒS L|T4׀3¼LVn?by4τzXx,bG ^IX4 óYX{`@~P]}ӥ>9a<#n";{XZY}sلăf3?f3(affw x ޒ6|hkyP`N8wok_i`-7#i+? ̇~ t{@6xb\_,aVk'i F \hr= \e_Z̵C^"LB&\P[e f=b 56ςGFe&Oxߣ,<ͫ Vf[Vw\ #l}oyOëxd>tgi!tfX];¡B[~[+gy?Y] 0@+`Fx K@WFh/ ?+x^xޛ pૌVyC~.,zh  s[sOzlxn+3_O3Ak;Xcocx> c  0X4\tjb x 0 9aQGO$X'_FxS?+2 93.>cg!Fc|wwӝM6z}s=4sGzퟹ&#uUoۏ, kdȷ p]ԛ*\?gz7yyk^c(dqӏ>d E>k6907G &{]'bW7Tq]ȾLr+xEyZܳgM̿ οh\Kk^{7;545Gki#F_UuN\֦3M p=?-_5wH5I^ݟ ;@8z櫾t__t8Gf%NHN?Cn=s \rs{9!@Oܯ'=qU0.A}sƪPLt뽄i'۾Y n!>N"I>?8Qry]o^]6 gNzɕ  cE{3"A8'5ϔ*MTĞŕ+/y1amݒ8nsc&k/ܸ$Y2whzuxtLj27waU8T-̶[j/ܴsmYm[ߎq|ֳjۍ>,Y7"8&qk<)-xn7$'Oh c﹭*`oen6ST?nDPf%V??U=^u}lKD_G<Zubr'ٛN8{¬g$z^'"?R-S Q_n X߁k#y+2FsU B: 9$UO_SW>]$d$ts?;xz=ޱ(/]6X:Qܳ xY wOd8fh8?{2@EH΅ujz_sɝ_#ic|[xדNjNn_Fqx=񚍱9ka;.1Xs9X?f;6Y"?gv1ͳa=~v yi _~0i::HzHƺH  32li[:c衳:_J4} 9x 7BknZ8'>Xkkul8?rz~{MhF}`X X-n'K~3Im'26W9iF ŕ-DS<[Ivm|uh??"}Dyt"LMܼwEI9XoDL;ƺ0,#.TmcTHaN/>>i אy?nE{zJ],}\taDKAON5"aC;Tv(>h)un!{O//aI}XyaDh=۹yC<?gij~87ߛ_:hܮد%_qsW'yiZ5/) vJRc>9G9fyu4:9Gs4ӑdaWiN f΃0<<ܰ-vglw4Я; Do]zPpc@onU+ԜcC=r'Yes? @F3S`>_d>9gȇ7-p3_%ϥ?%۳dw|ޥz)e_]q밾8_d&UT x?;_=hr<àHk|XO]{Zcszţ}fO6U_=7t&'q02?*UaП^!N:r͈&uB|ŃԪq%(xrız|#GwR-Ӕ Cck3E)wO)wsh?A>beQ//Ge-,InC" -҈293(\epߏ?f!#{i&yZey4u#MtnGuv.Э=Y=io1#ǻ)_7y_.b/_'_C]>Uqf8YdSKG:g0>r^Ik|HDe_L(kXeːH3x,2^7?)Å/92=zн_7^GsRso'p_aц5R_ :J5V56\2Ld]1-\jVӼ|\cCț5_tcy{RĒ"g"ݝ*Y684I^r hfd N3DfIES}KDZjuf6s3##?'xs /6ڀ\Nь~V,-%0:푕$5b<>μsikkoWU_3jyS泐s=icī1I#N^ 4\#~{&7s,"cùaMiV4j. isD&#q,]$4{[ݳP6`9{*ƷiQeߊ.N͏uىy`{%-}نY B_`0J7~ky2"8"ڼ m5|јߕuȩe] zך,-xy! 6Bt268fuh߲3#ecV1zT"\>A'U>+4nW>t;Eđ`eC8i*,aIc2KZ>*"2iFF@*(5u_y$ (?d!bǞm"gdF?TXC%by҈uufYuea@OOLD;_6_h>2[t;[60^  fsYV`x VsjZY$F#( eD'sDwWތ\ѝ-D7^y:aܳ2Io+.v>)+4-Fݻ|(G]Y_ ٢kLRUHzhoݳz9t@y{{:e=#ׅ ڨY+vIq1F_ls_JnC_s QՆıK!ȷppAFT(UkC>.UyVu#+{舫D@1i K*lNUpvՁY\Z2ͰwમPg䛰[KkQyv 4<&LX6_!3EfFŚc56Ѝz聭DYI"-Ō|غ:p;< [$߆~qh\Kϔ0wܱjIv#d>UwR|>١-B8o|NlѲy R$.~vB|]! WJ_j 󋈷.3ge8u ե=ԫ+l7isFVUdo"Oj;f@2]ZztGkIc7@[A]i`nXY4ޘgclXφ{Wi9"$F} ϽYX U}rh_{I \` Y{ [dtj>QYdO'[_/(~M>Ùh(h2A{5C]-xƺlsyΚ^ s?{Dl ({e dimxA| ^P<'M6Xfd"Z8p;ˌpX3J6l @NynQ̯P֭c d]몮bu~S'dz<<26!ߴoճLGgKe1X[N7˱'y~l=z7))TXN6JˉK+bt+C,{,_D|q4Ss+͸<;_t9iϋEN)TIUrH$ӛ*S7ŞBM'}ReSc?YȽsXe M5\,Pu/޴-gn=R<>r_xmQŹ Z^k#wa-tm|TxhqA(rTSϻEweJ!_̶`< )!Kπ br%#~|ܱJ^V6@ac#у'?1CJ^[joe[ݚ6F[T?yZxΕzGudxQo>X}^cHempMZ%B oe1X٦el4lp6j 톂[#m(Uښ hvPN썶-e\[M٨G(/98&>//_\ُ<1Ed GCv(C:~E7 x@d-c,|i"s14%\ɯh>|[8F]HI\;nfXf, oF8QE;~+wRg,l.} =ܝ$WYp'=LrY >YćfA_8s0mKi/ifnާݔwI3)fn<uUB^ (Ck]<< @cZSyYVkF.jOL?E{tҎjJ=]GFn#c趤0pAҲՑ0+v}t_Uq_~P]W(z8MR.ovww_6 ynpz+tiq@gsZ3|>+>. Tj-\ ˙ŋ| JNZ(t k@Wevw.g] ӿl1#H_{1 ztwg|mo}+& k%o6sG/x'֨SCE \)S7з-VS ?ٖ1g!o yekzD|r(){2Lq3r~v-Ja9I[fH<[1.g9.OKJhS0_h37H|wR)vR:z@JN;6ZfH_qG@E&#tqmeFݴrs8xG;['Ц4/ޭn|+(mX G;Ĝ;\OE1o?@{'؟N.㞅q5ĺp)W+vTJ'"}0N-|DK' lH0Zc|ʾ&Z82# ?$~aGa~|7ǖw7~įW~3#i½ cu'^VkֽGH(S]}K9{4e~Rc޽y% 9 \!s(1Q܄.F>J6vGvDmOXJ~Km>-3KWu [{M#G ʶ[GhkIof  T9WܣL/X1JU"ki1ϴ=UVhǘy|i+s!?޿YbʠFWyeuֶ uVڸL,Ho2{o惨hWwW~9JnhxQ Ȳ瀐~ҫ4[,VZ iomHuHI+wbyF/+pX^ rTk> }ґ:Q\G-ߓɾ>;[y}l-:ڜ-NwkG(y>h+Y[ 93: <t_n<Y!/N9ϩ͗|J#|/_"s_6w4;r[~{osه SK-j2@WtQvYI_ў&GNQљrei9wܗ}ɚώ$мb1މ9=zLWniPp_c,a82?x#!MG `o.)ۤQoڛ9f먓8u7C7VTr3|HpOewhեZjzah=~DC+2 Yة=^j%gBʰbm|k91I1LFBܴ||~3m]ϽC]3)*4I qiYVw[wcY^wغ+bn[w;oiug4jʁ3qu:Q x;?C;~:jAbuؾ6}dI9UggSMAu݇0F݌,=ݾJ fԕ4PL\򠶖6$ģ5Z~|gI8D.k"~>prcnKJR%q8L1Dd5NtIWjXe} r%mO|h@Z]amMWrlEWl,]+tg,,&3Y8A_}%) Df/R٥~SýMqmσ1PNm]~u|_~ߦW;yFN_x2MϜaCQyoCmųE}mBvDA,QL̀0WP65/3rXcVy/޷{sQRF3u'ԗ7No祯]M=ϧHشz&ނ(A {8gCrNnYO1p }~3xtc G{a˒N1 Mv6a#7t p͐~(r R׎RS+ r@+ٕ"}7@*W-,'l911߫Ľg7} gzD{Fe{M"Na ꛍ8ѱ޹6c9NWߎvf}Flg8ƛyco&% <2]usS<}؄5gdL,܆W<@x /Љwp%œc^9st;7Iŕy@cW9Jp@YG0^CdO?s[&n6Xp7[ӝ#W|=|b1**]1+F ~9n+ۓlzfvtk14Vh5B ha=5N@SDN=i}M Z\G۾$9'd\!!¤Ëh_ @ Qv0Ùu;]v)qUlϋ+f[6utJka.獍MSLߍM'˴lj6NLu3y ֻM}f9#1ӽ #ԝ$J`={%NƤM ܯsj9i@~c}%wp=]5촞3윈(~Qb;Aݑ,/8TH -3)BסqR{1ߌcdQ_鋐_hJ 7 {7hP{%q_E`3> >T@Âh<}tfr,C =Ίѧ,/FRpjR>n>9~ާZJ kGn0|z CÜ3\87n$Nq0I]ߟiTq*\Ø[EZx3x.|q/}HU "3kΣONR0J񨡵Gy^(#gsIqu&M],Ğ XCk#Y NU8_rdeI+z-;p+ \y>Kz.)w9[̉god12!Ue,w߻~֯UP-ۗ,#s_W=)S9"P҉4 w!tRa %W<Ӊ+1Nwt|UL5|R@;ӄvy<$U^1Dt?cMb%'IgJJ^j(A"-o(МyXxhէpd$]>uo8E =*qXJ+^ML鯐T.yvc/}N1.ۏ(/{f[jꬩL#inSHp5[ěM!}>#J<Lƍc8ă虥<$ q ؒDY4'_N9O:#P$q ?Yr@ QΪE_ނL4- N=O{ss~͖:БϖspjL iQ`G\gˌd?z/lb<-,ȇ!ME]1s=~gbfA}tkƀu3=*ڟ }H~LJ>;.;I?rB̎&H䫎0έTǶ)alv0wwuB7Toc;)= gR&.t7Y.Z!~J7#3|Y̅3J?+ 0#CۻE?^TqQ.uXr.ʣ{umÏz"]g# 19;1-:YvL=G7Q=xJ>la>f/7]S(z*pԓL߷Z,'{X1"%(9餽SW1Ⴚ(dLJ&Bv0H}%V+C;(v(hd1/v'=I2܁LRw=_z\=Uiae҆ǴX{%WtL{DE"MH2TUYՎcǕPǓz챿K u3 6~uHs.2F?'Dؓ  ,|W[J;d;ԩ[q~#umC%c 3-r̪%MUIv +Aq 仢$+zQ݅RoRygC,#h+0(15ukB{7ůoE+^&z~xK:9cdcT+}`=Pp^uhz#V;EnKSG_KWIz|VYw8k̹2ZSּ/ ul9fiCcqm_]Hi۬\skoNE;f+>͒̓k gxlmjK՞^u"ug"C;4u")q2 (o*;HC:@C]uy™#'[m13 '$x+}%ωQ={%y-1##R˞l]^%}w#E,\lb@yǥc~K^Le\s/urc2DyBp? 6V_kkՖeצdS4'XO($f{ noa9]^ zd=+7wpu /qP &.Ј]Mgua\_2v3ƞw({b6)?Ri]Wȭږ{Eqj]+_HIa!;ݓE17|+1fzY|9kW8ccȲ#[/h*?S}!MDyN05v`GǺy#_'-YD! ^=Γ&u 37#ro+ uZ1*Q0fk>1nj>S l=kRD}Hclwu/{ܱ' 72w 2lez⫬,CYqm.T[v!myjc|^FC猌ƍ4wZ蘲1?I`1sPYM}S5uJTKXYm6%]E۸EyKEKFk^ݭá`ߧl7U?Q1Ķ.K*`DO:KOrtj,x~ dsп\/Tׅj啉X=3avT|أ[qIP Ö~xN}E(qNDK=<}NםC/C$eRU'Wv2 ^iهvRߴxi{,>s.`>*w`,sBPwGӢ'Y7/HP PpiCNBCy#/~|eYЗ ({^ZRPN;0x:?MZ8܎&tIcn(0 Mv@7bTm^{a.`gY`=-yΥ`gﵝ}x~^)c)cNc?,f4בE[Կqc>3H:OIݡ|3uGp3#i`}#+Dd$byR ^ЁkwGUr|kq ?<ό܅vX_udN>f{LϠ /|={KA=8|A&&A~3D}`99mҶFCkH;Rz65-yH@C?](F+`G7vfdx6ҧxhhէaށ;>+V8wowzp|M&Ƨr#$-?ϴqsyPĩ=Szfju9:F?c4R4~I;Tm ) Skh QF>bh2Thj|;B+|sT*3u$'T$S{}0=kq3I}2^9 ?w00 ]>ӛ7AhcM~~p>}Y1`m g#CgMқ-{GY똳$y {߳4>7eaƯ!s>RӀoNug e N6jS_Ol;v(DlZ85QСFG߼oCe#lhKd-ms]f0G*2MxQV%gpPwZe{BF;\tigל=_1q튗S̰Ka֑v̝- zS,~aHuzt}Q=&J瘶l@v状4QFZT$;ml+~'mCm.k]2?ƆVvTzKڗ$'eg磩jJ!Z~?Au Sgǻ>S}U+RdzgY6NDX&=f[ǑDhm }o>s? iҮuzj\SH>d'7;w?//?ڛ?f1>:SgIGm/s(c'U}c\}`yQD?_lu*3u[\Y洍^ܞ+RKcT9dJ-~b@hP[Z:͗׏Y0e8`2aZh3mvT/U qݧbյ6˫˘*V}STJzJۦ5k,bh%y"-ʗSorhOwEM(iHt{ "S5e29vGQjyQBz<3¾k)K.xGF.[24.e1O,>d9*tb9y)-9#MכYgHSIOm]"e'dҔ$W'/h֒+DYj/9¸ernO3@Giw`.}<ߊ'.Fck<ۛqZDlk?cvAY6<.Qtxx?ܫvAhGR0DC!XUp0F7b${)oD/䅞:_ ='Wz!Q>g~l|L8>UlnkfcD}s?g*0cE`rUXB[Kf͢!{SDLHzbs' %jOkr 3wTTnoF<}k/*}7jR>#|륟^sQ-v5[p|kXFNn۞k4ηrb,]S滝v&60 ݘgj_MBhw}m iejG~b1dDN})QAyR8QdD"%ǥ'Dz '7N,:O9䜨iw}'x}ƥLbISʗQP\OHNp'G6C.َlǚo+qj hU9@kFZtƭ}ʿ,2ПN !OP@7I=fI#5@lj0vØV膴afKoO6zCUCCe#ҿa^8-MQȯeyl-[ŽV/W3xWs92{ k!k5Q^SżKtxg/wGP{$Zlf\ )笹9ܡ;Z?6 !+\'q!Cڋ2c-C0)yo~?ʚRV߈cU6EgzLQJQ]|~P\F̮6ŏm 0U׭G9fڹ=, UGZ/]Ƭq]ع{`5f`9^&J_XQҏ֓zSXww#Mȅ\̪:#..0? SW>]%qβL"=ޖXV_2vz~s]FEt2SQՌ*B>O&A^ֵXgְXof~!?XOr~-WQFoƜ>x=Z|@F7e%_*[D&a _߯94nTCϸSx?eKgBUZS=.5Z5];yNr&wblh>9j>M{h=U0(JC5ͣŹ~Q8)ݣi*_6'5ooȶswN:Tkc9}+_YzWַr>3Yo[/0~/XkE%ƥ2Do~%,#.qo:l3ruw"ȖZo=( cdHk߁<Þݽ\Vg!CsWL)0?a {M) кj+6G}b };Ug/;]cd.͸yyCmw@ ߟ4_­enAO8szXj}|py~1Nc@VWuW+}^] WsJ̌7ǂ~2bQMׅn\m6߷Z%["ym/h2/El| 4%kkgd̃7>u[});|b9Nՙt]F V07!$ 22 W:>'C{w6ШI:ZPXw^|ueh#OOL=ÜH+Ƀċx:gc{/BFe*SP'䅔/|,AwOA/b20ډ螙Pt;iOJ96-G;O=x[8[ ahwݨ.Mw vm-Ǘ 9L?Mr## U{Zٚg1w{qU/fn'~G5d'ޛ Quнz͒''|7HSŊjLIZ-=mv 6.g̊h &iC&]j;ߓkjdyƘ 1~-~I/xsTߣ Ȑw@>Ch#*k8Mu5ַ”3Ğfe=ܟ֤g- r@ǐñu9ꌽp98'9=(odVN}=Hh\;tuEYPY2;*1ic^zm<=d[}cΞ\߉ż6ǝKb~0:0GiZV9ů.CJy*%][9Gd7ke՟8^E]h RWX^Wtj:[cs mm$x'4uЀlou¥gAVzP'= BokK+xXJXF3#a ( nx_3g5W#czWHgxcBvw6oOj/B.1͞alBҖS_:.lꃪJ80qXe{s n)eKSPg;pީS~(vwԾwlJ1͙1RR3S~駦CSIb/?lr @8dMfp|Z.Wk|}<39 п΀MԎWC?՜^K\iR޴&kkz8fmQ T .F=dpm7_D|X0'AVwCʧ]!wg{v_;mUڡQvb1JO=2 {2; ScX!vV&wdH0tL~G(?+{"-u"P;Y_Z;MaN] Ocjw<*kXdo;3vN 40<_\'u!zV҉NuMy~"7b<~t }J+gqHs!s- zNyN?ؤΓQ{UlXɢ/)\)=.m'v^ l+.5/Jߥ񃆒~J?rx6nV5|(X1bT+]i~8pgh-!sMTp{c2id+{7>[mH_I?y&}}iYk'`x"А,N^;FܥcҮ}FMWZU}LB-7Jnw1|uOp mlpk3Wi v0IX3qqQ]>s83(0< 1i64i@҇@^m1&$G"I -JNۢ48MѴ)F0&mz+h(hp~9~|>{k}mV?>j/о\'-Z} }| JZ|[%#8ġyA{ '|O=["Q.a=Ys;o='F{P/ƾL|4{*/ڟWx9aO>gb v86g]s\<@{lnmSES\\KgLf6d쟫F 4`Ĩ̤wh)"f"j52qꇎŴ>u_3& .zoYX&zAGFer\{l ss^/؟4>:31N;kB`rLf:  pv\ }Qg13iZtXԺ#DWѷB`zY#Ѭ/Bwz`AvrQvX6"ڋoaTuI?k9aTkasq+tLG0P[ğ4GWs?n?Aŀ3u//!n kUrX^ZE2̸H8z\Od&L0v my>l0.wDP&Z_2\ܧޯ~z, X./+ﯱ:e|"DOX"]+Q?hd{dngV-8hTCaϖ37]X#6K`yZ9=K}v:ۚeѹ} ^2 Z@K.SSP̅>5h}@mBާ'čZ>ڗ,>ijXE&O.zg6Vtυ+?8⧏?.S~q:pQ:h޼:N]CeνS1 Rpg(u?xܯe[v&(i:Y|vZ$7C]A뮿cj)%+kR)*pFrᗼdVND]%*.1-YdI/[>FlЀ{[kĻYm|m͏inE`;dy. *kkЫ~6e& DN:XJ0VheO^6"bmYmSXR=" Ko詣9Mg:}̾_ :hQc> $WV1˳eQiti40lGxϠ{[L_b3%>)3.v%>d}rK/lw? 9J&q|{S S[a5 6Pq|~<1l/RjN$>ՒpHs^粡q}߼lnnKGx%55ϴhJ)s&!LdEBzEFZJc8hWؿ;|0-{Ӽ"0i~̡qvM҈<&]Jxq4_X= x y?x& t1.t\1Pey3玀-%u9TOrVj/f76މhuwX%hhJb;?lm9ܶM$LeyJݨv R-x~5Ŀ`CI( EXiLv[c˜A_1M0T.{AWgsq(w9}(MRmg33)ZKn!I C\Aur?c*#ysp8f7HɖF?Ԥk^R 8@r|x?&b4q|̞(UD)}e2p sIkA|֒Oހ;v9/%EyPN݁?m\>@zwzZ]3",L;).Q =S\nC$h ̳DoYC9ط⾹ ]#X?,5kz]T>98EmuRT-z4⢯)G~_Pl_&~? :fh_~q<-ʿc?ێa:4%cmS,0bqZͰ%O)I5t}`>OΣ~a~8QSt$y/}+`w8s[1׻Vb@|ݏq_3iskŜ }jW`IG*KР֍%#`In `IK2r-v/, ?uN]ǔܪ_Hj٢ؒܞl+%1@?ŏ܍sylΊMtF &Dfwgߊ{6eOủWzuaVY^׏ٻ涷Y,{tF+)MrFKɃ֮kl^bKwfTIM?2&!F\W"`<˅k d ai\\rjQc잎8<4ɃRjQewmJrR%(-O{L.yOKcXLs cT^a ?NGU}MW>戵G%iz0QOO[y}[V7f:ԠpNM1qrk>Ƅvq'| ƖޣslL>%GüG1|,O'3+6%3%5pߘm`F~AN5kICs=>?ۤ 3]h.!X?)Bel53pH翤pG!; z5E, ,֥=,|in1 Cs/KЯ5!.ޘ7 >׈wqMni6a3uAE/_e{yhLXF\g7ǷPR! >oR^ xKpF e tYƠ2RhѡQn> 9Arx!ی\޾lr;b$I G>%9ZP99\}PzmG>~֡m~' W8%߉΁s'z~tLg ExC-蓳7_ c+/ y(&Kd7n *^zHvX>魯:&Jz޺)^V@^Lau]N+mj__ 6{Th}[ydsUѪ'pS:45hff G"]5gm4,T o2')#J-G>[J5^L{ٟ-źdl46=甾(wl嗙HadV)T1D7`ĝ"r?wMWWS= :{+ļ`AY:1穾!V4?܁s 脺ߕؿ ؂%sMW" MUHĈtFx|"OjIN@=u+M24Zϣqv]K}ւȑA^'' nSK|Bs9_4uʭyzHm8Ҡ[sB?K{0/c9: ̃95l3sIr>8;sT|kdGuoT. {$ᇛ|+ $i5 =o㨵iynVKӝ6TVO |X넭El_V}SlC/ l~FqR8+ˢˁ{E`yLOMXCAo2U_xF=ۘR"?ijCa+xCfN3u{&Gmٓr^ڟ>o>"犵8ƣqiFa^Wyn?Ay/8O 눹̣f5=R1+, =wR{۞l6U?H֨f "Yí jPjT_lU/6(tVĻmVGx8AVjw0Ƃx+-Ֆ(cC+Zٸ$+ď R dqkJ8l BmfUʘ6߁}"{ăq FZP)XL4@F*_?">a_Ay6|!u7t=)^#J{8"4m7)MKKץOjڨ_v2΅|8u͒ΟYc(>:.> 9cn-bC,grCDj#~3^\n:[ :48a W/C?H~RR4~gϔ2tVK$bz{h >܆l߫1蛢U]߳7Ŧ$pV]~B^^wM߇R̍vvP ]ԞҠ`r#mh4ヾA_M>lj?L^K5L?.+n@#ŭy$eL6>Ѭxa ŭ|%qΕBe|279%SJ6k=M9MXxM SS J`w}>lN_=/p|A+-$oxls8>YrPƝ*֧zÊƹWluOeX c䧏rfɃb`E$Q֐1Pr*\EY)X;h1\]͕R"VSBnb<\j>vYE4.F,$5a=-Y!{AyVVދ5BKvf>賦zԕ2Ӻ7/^$;g^-g8n{NX%?TG31iN^id3SepSt:l$}Jy^~<9>E݇>v ~2oqtv 2%l6Vi[O)w'Y=&϶Ш^Nd xg\z2SY󉇕1D, {(Y?)KuJB&C{dW*EmZ~pWUyf.ʋ;}Ծ~;|qv+`/F*ӍϑLǵ<_|1 QU =G]&h/O e4&qT5= Jp'\wI8C5<^vO88Zc{Ƒ{ v&|i䂗fJ”Ķ]{M44'v+,"[iY"fOϒSgaW{px{ Yeg?tTɵ,zJW'U=cY]Lehc.<*f1zv3طos */e^e#> gb&IQ^z$I 1X#.!ΈIUD•̲l.#THCNJ9kӨÇAǹ)OS.cdjfG[^h}Hf qUqsE __T>8Mf[ 9%!?7o>]ǣ˫c~'HNzh87jS?4?Dz|̂?h EyJ1+]YvK(OLm2ѻ3Moe~40ߥ9d`4r#. ?iV! dgg;l5FLג<)ɂvi!ꬸ\HmIc,Fp` W[̷й7h]HqR9:qfys{_z=yrh׃y`ؼ5hl *LC8<+ ;+UWhe *"9;_F.þ9[jcDڨQi*xOeW%RZb "R(-%64igAiAMv ]HGZ>/Pi"fJ9փ67i_/ /q~ Aot<1N/k;Rwh$~43iHҮi(mV 5b{㭋ϨOc#*c_6:+hIr`߇Ϫ#u&yjӿϕ]Cji謵>ݪۃZ9k\2v5VN{|(sY^eY&>Q+xCTPJ ^ܢ`:R#;PJ:3pz;Br5D򹉞y =C*jf}p\>S5:%Y9qot$$FYnCmPm@أX{9 f;[.]\ڲ(;8ݐEn7x;? >jiy>r$m/o2My}*N7ɭR[$p>J[hXqTN&q]$t~,jqW#vg;_:Fd-sP{.Y;YհpQW#ⳕWy*?ei]>y}[.轒s=gj؂Q۠mZ]xBsjΥ y\R=лW=C:-1wDGChϞ3*!ӹF`wF`<}֪O>p?Ǻ5&H|;wi7 8<"=ѵ;@?`mm'`n5tgY8Ҡ9w3=;46G ~B/8!xOLE⺴{pN1'ʥ%!vڞ8ֲpmm,SSڱC|0&\eM,ʚXp5*kbrM, kbH }$t0]v :$?THl'1޿$$*5,".^쓿x7./A}>n繌^饱_s3HNNQqz< {]'P 8ĴKm7w  +$_}_Tf s+xE?kHƞ`Hjz}=Ճt<̆5i/픮cMFoza/ l_o&f 'tŞ9j}(Me;0VP9#Gʢ28b,[Hs=i5wRWPkAzٰIE]9\!ɆH_dPW?óDF~zF2K%÷FR@GjǢ0r._Pt+/#ݓ~I[Ħ=Px_1ێyu*a`Qzs&b\}z=E֛E;~g'K/R8ɴCŝk6ćJ J(Yk@.:}$x@goћaOi{U4 ^b$crf h9AyNl!:㢟wL]]L?h##v_|J}Lz^Ne2ޘ@>raͧ>"v5pǨhn;Ι*ן6ްo&lcgs?Oe4)e FkO[s?0(h\&> ;F;5;tոJʸJ֕N3Y|E2Cs~aϱBZV3P>} bw3 1+,ZY!|JY!F\'~ S\"LfǡV=[`_,X2&~O}UrKt Q ;1:YvêHw;%*/& \cE L>L :qsw|IT'lhrKL[+ײ,gXdN&9 ͽԟ;%֍-ZsDq-H):RZ7lc3v%G<|!k05!RA|oGƇڽ͡NZ?/}MG[<*#%co>]Lsg#&t6wgZEIr@gpgGm-%QYnھF<?'Al1r{톬9c:KYOKϠLJ?Koz @6:8KOx\Wgvoﯯ*CӑSXkF1,|?oM?4Yy[%0B]L>&di4> 5&¯:,Rai1ah햤&l"gF<Ǝ֓: 674 PIt0[@u,Jg5 YC0<=9M4qZ<4a :7,޷P>(M,X|=@:,}ɘ1ak:lVZ Ze)D+j:[jɣ-f>n4KHM4}ko޽5v>'2qr&)$M/!{;{WI(KwyIVDa3L YeOt.`Z \t,:v;%告skYL{[ӛhm%~jHYKuURhjO/tkai M_WvE넭눐O9ǹaWAu:X,,WO<63-ǃ?aV#v ~؜zjuG [ia܉3ZosD`SAO{yCtΊXwRXlk qZ}6DiǹNLM\y7;ՖS8;.e8'WP|nQX.e$= s쬝cϩGZL{6AfQg፹dyM `N#n?ss 'U_}ql5YwxX-2n(EVax $b~ߐ21OF4/TGj6 |}Z PCĄ6  d= &J4|Z'h?/c\}>Zԭm.Xo=_7xy 6 Z^9Ižz_L~ƙ,}b"ŝi8į_ ўgD&il>d^՗I/hmu:X Rd{'i#]O})s}W+nR/h}6>qy|nl23t(KQ~zEX2h!Av^2lc췄SB?Rs =z?-3N| j7!0v]ύWU%b,~T^oh|NL~Ϲ|2l,U%g"t*)=ѓRc# 3Ul$ zGc̄LƄ {/vR9v\ Ӫ'7Χ~qڮ }}==M51)* G4ǝ@G򭚾 vU2Sͱz Hvcs@j|;xclE<8OWm{h,d"5 ? ɹNӃ9}i/|Rs&1Q2A[P} ;P<{9!2!QWw#0_8n<#D6, 5ܾ>sV7#8-[{>5qWX7~:hoKT>d{y3O;ox3&* ef$_Vck- Ҙ \3Pr;NHF7HzCZ#6acԄw\<'+n;-:ۙ4{.}#&qt1^R~ӱ~Ce'>qhv|h1c>uE΅ 볡z*αy9]FQդ8J CדBq/%M}qRȗg6|GD3Y`+e[Swtw]jCo g4l+K4-4k]ufA֓?bw:% gB@FumǷcYc_ca}/ڮK4\P=\gLg{q:9~ DW6 1YMڠ/kfS"+&/zyT~_'%nXJUV|H:s(H= 9КhV}R+y nC}ByRX\#[bFO2jG(xFDFvZK-+bp lJ4 X y]4/\-nŢhqo3qW@;bn˜rb /0Q ō{NJ,#-{9kU12զwMWniS*vջV[_eV 7+'nu\ރsײp&sOz㮨^iLa?,eR\ 91ԍ>}}&@Bʏ;7Ջ90ҡ\/qZ_dW;7:$/z jkeBMZ sC%űsA_aŊfPYlR|WԎq#s^#zXؚ60=)hh6Km+5 vQ CqT1scU>C-S-|MR2ѦKkEkCm?wictZˉz]țKA !k%)M[lre8*=-Y6a+~W3SS7;H<험3Oג拃U2ʐWyW\MWV3EYy.S3 şވ;D*uSxt*cJ.~Geh2KTר. Ɠk轤IM"zN::k> m_ kX1 <Z_H w^xetE/^\a9NvWn#9*6!MX} pBy.ow~4)VO@Bo6M_-c{g6֙Og3Z0;(B܃(Zo|-\Qnp^=pJYR9[.08_fӛj vgtway%^o8\װ}uཇ=AFX\T0_G$AWP0Gx@f^ٯ>= e6vH9,RR,$M mO|rU)S7&ʌld:ayxp32iX8h=;cߍ15l)ix7x\!fK{jȾ:ѰUQҼxGK1eTgOv-Q4w 'qIyD|$ld*3/\,y7%hT%(4Lja@|zv-c7|J|XM<揥f pޯ#ί,ҽ#x"ph'E_eg6 Yruנ|2cT;Ek}+'{%':coz27_H7xF![Et{[$Hyu?hҼ.:_ixhNOĩ/kLi9ot::t}Q ?U橧 .y'{Y"E5o9Ah+'waSAl [~>fʕχm?1Wh1MV}6M^k ^mgy[]\Zcs=%wdi{m{ $]֊6\bG-g&IrZ"^-\sFCUr+> 4K&Sj6]y@F`}$ɯqg VVɉ&a]+S4FmRVn64 XRjM)? s7꟝8{N;Jy1?:NAceG6j@zw*H470Gp.9:~;O lc,űw} 'i35AZ|h?wc u6_ưh:&i).~ʿY3:8ģ-qC9~lH*;Lkxj8׹~:/RW%4Lq[jLeKbntȘ/g6Ș3 `㼛~ZkmngΆrh4$I—+i!m_\̀unw1r2|ȸ=.QpoMDNUT?m`Z1]6$M_ KR`/z/po;p{f߯>]}tq̺$s~s}cL~WC:{bp݁r"Mɏ:M?Ùմ_Q-%c\Okw ,H>MJ} OPxe<'3xQG<"=$]~7`ysmyԣ†6D&:e45k}l6p,6TB] Lbдs וBT3C|練^6A9}BNso֍;.o>QX((Mf[ \ S}in&J٬׹6V/|NR]PHIG47 S]}H, e}eYֈe}v I|~ q>3jCvR |ugQ;c2@eާd70QЧ +7`AkE帖C@uRI_ ?yٟ% xe{E>ʏzLrR]j`wʩܶ1Zzbs{l ?"Ѭڌ42AL:x9Sh/q o%iavj=8ִJX ͥhj_-|rZX7o&FfXbu.[drLV O2igpٜ7YByA~~紖v>/ 񱭿q0.ctja?lp{(9qAqSFK2%$9+iFc)\8SL8$L# '%9IurXs&I$@]ZPa f81;$ŝ+oo3"tG& c_s?s~hySı11T=B{i'gZCxGhMq?&S݊꟭5G Ql?}s;}ֵ |S4n:+{rԕ%Q"Yj﷯^gHsI).as/wQS{-3jmgCLO_=v~xWEu_Ưfsm俭~[װJd#\R}Inω).s'Ew.7Ai ߏ _ڏa[Y\k4k:(Mg:ْ\;wY`h M2@aGpF%YSD ̭Ehb)|\פ}=bG "V2ڸ>BIvaIf8TbGmGx9v)FRi+$8͗EL8%{KnB/O6;Wd`U-}IR4q|lOZ))^:K4Y!g+c.y{E'Ǿ})'=kGh:ז4ҧBZ?۵,HG𒦱2M{BěCOQưoZ1I֮1u&2S[>c YQ%[80*o|{6-m2}g8dnI-|+ xsFePbz 1- 1'%ۈ θɉ"aN+aJ}\Cg]J2!+RlY67`2COɱ{ݞMaei&V_½Il38ÖJR7t?nd.e]D.+KL84(9 68I9eeԟMƱN'f$JƻpŷNOe"0[]Ͷ iN٩ι 1RtZ(-ܦo 醜跁T8o,9W&*L2H ~{c{Uc]XB_#*-}r 'pL##*9p l&𼪧n Z*; B@kijPl=eX=>Y[| l7e`7\Ci{ا~J!ezeawFv}.'NvFĪvd|>N3j3ej㪪7/͸IzȨs,xdF[`HZX~=~;nȉv_nYQWvW?C_a:MygKr'P?i( ɸ/ ]ioRؽ6+a];]}XR,OF遌} =^YwLrΐ&UNX{'IAfVf$= ]A2RQK_>vJ`Jߩ5U5NZg~ ǸKiKMOH:lܩ\=I)ҾEa3_Ji$+5ـQ<[e&kr%Y&8xڟM?-+Ò}yC6Ҕzջ_Li?uZeM% }=)1MQ%֔X:W-g(jېd8fOgؔ691'Q6gHzY+\oeD-4g[&nVIZznSw-0C)mS"YPnIjjg<3igKAcV$z3\aS[ׂDC޶Mtm9#mmCr~8__s6 s4؆OO{Ij'~|Йx̹C* Ω̃]]hOvcI;O(h2? b[`q@)> 2i}4)y<. yvSVsFO ^oHQ^Qg׉3XiǾȴ\+YH6ܤο ~A,,J->|"AYe)LaJt8c}rв'Xcw$ttֻYFFֱ~upkʘK&Ua6C8iyGNW~ 7u6N\]' b = GT ՛;sB4[ UӇ耈z5w(\Gs1u/!:̅W; sTgW &cJDuq}q}Jy#' + a*;, _@䕸.*?bvQohpvRt>h tMWg g#B4Ici,;K]Z&5ڜR}OY$;}O}jq=+F҆q%5Qi0kYJ*KL7~L.s~BhW+6zZvJS*M^ngAe?0e}6ǂivS`<᡹= _pH&Ś*Ab5Wt̏}#KuxVδӻ4])O 55ffD+Lfڥ|IgeON_;l"OLtF_ot{b OW(,32wM*z~8W{eh6SZ,l4[k 4eюD|Ǚ6'{9uqZ㎇}M`kY@rA1?pfKg%Cv6Zs7r`p+A]{*$qfZutG*8&&#ǝ/Ҋg/x&]zLJsStxzXz>wLӧhi<:>Cz %m Yz :\G믑iI;v!߄|Sx.SpyEy|+G(vQ ^4eGsdF8OD-D-mbPZf2OCt^E<Wob]G~`d? )b%恬4v҂;9`D'рd0ϛ'MU~ GD3'WE""}( $쳝YbNR97ѱP"Q/lOeޘF!y&˶rilf>{@"-MK{4(m"(MҖ5<iDoK1QK`4%;p&]J;a'/$}}v{g9 b3HFw12"x;{K =[ ?[:-OOf@r̔<*L럣w%M]s J@"RJ6miZ UQ,Z0] -]TEP jA׺9s\}y~sKϙ̙3sޙ?{|F*SSR60 ?^Nw:6jڜvڜ(!b-}G0ܡݛ+}^(⹖'~JY_uj}R[A{p =7uzB*;~I fڝ3gw $ڜmײU:kPm?Ny\:lM矵r;@ےm^bEmvvM}6vبNNQ&_{;s&21MV6ӭmW='hԅ4onh =n7yY:./lZn6%ͽtiK MĪY{PbˍđsA6LjdžC;i֍\#D۰ /#dR`hS#b:>۶mww:,gg i&Nǂv=o-Ni_h3aFT:5}P.mS-sa~#4oN?wf}޹Dus>$WWh{жn -9o'D|9|ֽLVP^4;.O宥(lvyv ƀMT`ZϘuma.f0opl=.ކ㤧ݣk3h=h3ghz؎֋ # mG6Xhu%ᅍMv!g9߸,FBx0]8 )%{h.0yFNO'}#t F|W|TuYțz~}8DGǟ'џ!ߠ]CN)5<5so_K~AFz=5+I/^&xegx/qʸYƭ2{e%-+eeXz 䝑> r5r:{ B~]pz;^0n?Y|Ϻ` ۇ:2}TO?yn/佹2@ ODyBC<? ;>8_l;W_>'yIyX-J6:M|SRM)V@љbÝTV?`Ѣ4ȗR\Z9YdLH. %|.尤xxhL"RZʹN5YM. 5oYpߣ5SFGÇ0+!<&@ j x7|V4h%| Ƞ/|_ cX&Nie2N؏\9vSf&k&NeIQg@bK[FYp flWM2ͯzGtHZq1b8R9v'/^L[NFfS cr%ъ\ Ws0>\!K+ G{IIe9tm>C8OZGkra`Wxxܶ5k}~%~WWǵwsEl$X?,_Noć?<=2'eIJw(+2ίSxeIRH&q & /8ٝ7޻Ov̓^c<_1~ p|ݢ|[1gX O;&8o|#Z/Χ Ys_p, "Llt` 4 [ 3E{w[c(#P&@vUa~oE<Y0X3fv@]ݨj5~??{G1_C>DeP>,h݈k&LFE$ G4#`1 \Mw iό\ Cd(gN!!ʃӒP0?*@,+HVu@-(2NoqHK0 p#Ch14=(}N!)>4S M˭WYjq%:}h"Viy )g֘[3?,C+ KļlNKۏ!,h ei/X\{^Vpz=)nq%Κ,^Yݥ yO:pm>a2I&\5$7+05O. }gբ%e#%O3%).!gg&OOsoݮϴZRr@4692,6#|eL '8+2kez'ONH,4HlFŨYOy!, 8ɉ1[l"7 ~Чb=a͈-b\AT#BA8Q8QGh@4#W1 j:È >fDeIHj(XD-Qh@#k}M͈-ET!F"ccuD{ipnyj:fЭ "F" &!geȴL gn6oySPXT\Rջ|{EeU/W_o{|QC# G?Sg6~Ź_~7~?/\?xаVmڶCNKdn7vꞽnݧo<$f#ny[GCkLNI5-X3l+k u"\u}?n\ '&O0-q~Y̝4Nf!1wdC>WW#kQW,rEjt{=r~> 9ߧi@&R;vȳ}Xn|_W.r~ݞSG%ywBEU#j߀y$:|_S=r9'CE5!ꚑߌ9'GJ=}b}o((|^ r_Xk}g:|_ IȣAnF>mȳ"w#<yr|0GEA܋<y5kOD^|:|K=)OECyMȧ#oF-"'@%;u$ 8D!W E\<y5^!OBy+f䭑g#W"E_϶AȽ!A~:7 W!oB܃mG"y$~Ȼq{! ywn/7q{!ynjn=}A~ ޼돼?#|?h>ȇ C>ߊHoCC(~BUG#W# A~r-r-r=8|ooy{#dȧF>7y{oozgF>7y;%ȭW#pR<yPy&m W!Wy$ȣ߀<y7:7!7 ܎|4\{/A^\ U=P>䭑7#h*mwC|4r%ȓ 8A3#E5\>Ƚ\5\u\ |5+G"@-Xݐ됏Fn@.G##WqBGGC|CF.A\<Gnqi鑻yzy<=rO;yz<=z'>y3'c|\R!GF<y|'v.G1X.Gr-֟ˑrzuX dJ?nȍxO4Y LĽ%ux2i<g&k*6=҈o.:]a6vvpgrx}$K;.h!XaX1y g{FK@=ˈ319Q1Xz@]XO:BB`;dH0"a:+KhLՔt',z)YO2NIcOkH(/]!A;UI}4q~t=&?QIijɒ>q2}@x6..'ϔ;gJE}uR|~S%x?K*p}~"e\/Go$_"3$?_**k7A** ]oZEyd4='K,kt=kwI+*?P~ ]CVdzOK-W@DsT/ infQɒb=Itv/2MQߩ/=UNqT,s.K,?bzޜsL_GiqGwOxXIQ\kP;ğW1˱@/6%K?NNz)?; ۼ`mbyŏ>Flz|)gnSɲ~5;A~ߘ.o:?(o@rW# Ez!!y3C\#o!|/'k#?܀mnuȓd(n?<|ݦ'Sm\r>Gkus*v$}dQ(+ƢˑBՌe˹>蟼|-rl3|&IEy Cy}ț?ܞG|Os{!$^?Fnf ϸ}@+ws{ 1kB^큼㧸=? nr{ ?8?ȏ#zQ unZ:k8lݼ=s{\zl+3^<y%r~>E*r7uH\^?:|2[ |+['E9=wl]>UȽ-gPr~!u(_u'۷Єr~.OO#W`_9DeQ(gml|v:AM}|'aGr+rQCQ܋|/_ߏ3 (9_9@|3gD"B_G})|J,ʟACIȟE}.f?[,Q~/l_L.|dQ^:/@}7I(?1#߅<ȫ=p{"'}dP"o@;^:x)O9_)}}5ù}P9ߧB>'n^> FQI+C\?6|ߗUEVu(eiߕd|Մrrh[|߃P"3y||`3g#/@%ː{}R5]|Ȉh\Mqtb/_ƭR{p3deJƗxp~.ɿ J}pk}v?Yʟ$K`-RyTx'0^cl&E3.ىߤJץ~Q1G*zĭ_r%qv?8Gb.cL;Ь ,ke<9˸EҏR;wۥ1xdOWY!!b k "]7p.OM}ΝA<=@͒0!IǸ=~d!9A)wϒɗ(T[?Le>i}p1qpni;7 no׏%[CoY*wzQ_h!l=";c"]bifh钽غ,;|1-gdKqˊwI|ȹdxֳ峻!3$_s}M>mR{pwvWĭbJ%vIG yH^a2}z0Nl})[_vg<y|$PX&h|V<ϫC'Wƒ/gE󜠙Kfo~n/fO\8pHԞl?K إaޑuټ#0o/}6O}a{=G[޹hiàqG 6vo:f*no:牌tKvگ0edw}9SKzhܼMm|izpgCKNygϱƒVvN?p|rφ>mώ~'v|7ypfk vgGRj&Ի|N#.6kֻ-؄aϼ?OMi4vtj[?_~~mқ Zo^`n '} >幥Jo8?e]`eLna}z>9,H{f~3murY~φΆ{~L}T~ӼNǝXuרO:{/?sy :.6u=s=6ܾvdJ]e}~sS7aN3t>,|հ *j]7>Fjz;9hoJ/﬏Ѿ)?i/J_iSs-v[tv-(ճ7oY%.6햓U!_9&+wS7w˚ۅzuzGR&ˑG㎇5|SVSןm9mJ4+yg;+}y׾jQğg- >s/{<g3?X^3]Kjא}SĂ'7};= oW~Xw&uف#//Ww-qw쥹~ީG}-9$dsu g? pq;*x(;l+v|Coe}/ϭټi[`죻4iMǗ۳,n(;2rSY$wL#}]ȶG>{yvU3W}源c.FG-5ōc0qe~=|hKer܈gvp9!).̤ޘsv;.<%cs&v.ghGÎ?}DbM-2 Wu{uq,x;Y3v;ӯlN@‰ٍa#o=fmc-Vk {=}qls?پN͇cMm#Wu`uQOw4ˎ 5fyܣ;z<:OQƽMoJ yPh8B!#ZEEuPF$$\CB"t$4b& ms mk!amHX5$<Ҫ}%iEZu#;@Zw "тx!Bx+DDz;n 7~+1\Ѧ{E8BM̥G!hǵ'geҽ! +l)OHF;E1?O[c & 𽋨S~WcO~=~O|i}R^<2QBq򴊭6Fyb|>Eδ8yCbw|+YJo|{P_Q `0 zB^OJvS@Imܝ~MX^^<:8P?8Ns` q⭈T#|w0ke::s'ܾ>_/.ׂy ]"1AtSǓ~8wvq*1{Oe##ygʘ"Q/PLǵk`| <|༤(~ql .o|`s~ Qwk1 :fHg~!ӛH 鬿~ǫ<ĨO؇V]uƄ.s/)|>g#]G߉vy:Bl/~Y拍/i+H65MƝPGWaWhW%q5l5B,* m9r5ʸ;Q~=ovk#c d |bѮ1d_Ç< J_Cj;vPW,_#0W?&tz}}taMѫf,S IX1}vwe`9vDx]mLK Y0_Ő9xkOts[?g#aL,-jb/#cL.T.$^|<uƛe2A_Cg ͙i5ŻVіj59$ ds29r&GZ#hK8Y6Fˈr8 <9:[|{"4tVeʘm]T+$@1+t slfQ )&;}m%׋W}--s\KeG 3'$ 68PLum#`t&8ݴCiy|!/o,o &P^Ak! &25Yr7otƋ/':hq$yÙIMؠBC^40h5=.]ۖ=_ "_.o /KMu!L'!M<ŽP4=9vY:E$b!$]b4>ΚU'~}β[lϓ-a%WP&y YiLE) x DpR&d},N K4eE r-`L7qzB֚>aGv2-게qfgγFƿΔ$Vsl,L}_-Sv$LS`a՝GRI/aIGe m#Byǹ br-P[|z˞TS1rUi]mLCex) 4C(D>?~ǰS $䃻ԇ_:x4_BY*2BvS;AWKxp&29Z/[~htu\~h^9٣v;zUg~z0ǿ\/n`X߫/dn"(BNp0Yy)>ȣ8EBENJWEZWf8W!GM _{omF|}LM[|l?n8W 8n7}x|O`\EsGZ{S; Yl1\71`=%4i8g#1|03G| x((GgkHgHl QFfRT&E(OCBch|Q%Фiof@>3欐GϺ0 :Px Y> :O,L`M@FA@0HQ;ϥu3B|l/`Vпz!-/Y0E9tV>5_S\"2P?m !-ҨB`>pO:! "j1dp✂r)-9Q̤,VCj;}6Y,4 8w n}Ur|4?I䍂EH/7 _CZe0lYFpF̦ϸl瀽!j'A>(Vr}D{!:/4E*cto>AQs]#̋~F@׻LzBjIys5=@׀5mӣpM+w- P>By'OA%{|Hs|H󄜆m&d!=Z] bl9 S!>3U z\r.D_FTt#-/際Ql{J`AlN%+0AJL*?ix>Əe qLS2dao I;^{VwV 96 $`|u/4Q|O]Џ!mڎBg?Z(W8?x{XDy> ͧhx~A}o/4>B>c~]~}B,ys#8CB>C2µ20SEԮɂ/{yPt@7g6N7_iQApP !@oX;kl`l_8#]Æ/P>W:^7@NB/Kopwj4E$];IoR.q[D P>\]?N p_-QhnVмn%X@C0ҫFp(7"MZ@#Ǵ' n@- U;[/c;9@N+,m<]7G $\H w6fW }0@B H(l۟ꙢPv.NvqO?L hZ/B9㴠 /CJ( B7\3YYB0EzZ @'@} ^^ 3;ys!9?:@?yWhlK~.0|%)y0-E}B g0-^BbAgw[ 0f<&4~&; ES;.̆p]t" SKzgb*b."ݫ5W_z> O@nE'!5lWT'0S-.)-l(RC1b}^.+WID]S-їJ%OIuImI}άRuiLT_j(KJ=եRUU5fv~a}{kVꭵ[6o%^Wjzky^[^MM-fv~a}{[6϶m5o#e2uYLL_f(V~ֲMYYU[+K*3eyjʚZʔQrsyvyny~\Ib[ƃUok.#ruyL\_n(=r]]=fv~a}{{v7o' uELB_aW+*< RTWTj+J{2SY]Y[Y_l$U*uULJ_eW>A\1CI3wt?WH!I7X8Ǻ˹??PKSzi~setuptools/cli.exe|T8|7{$6$AѠK4&1 #uK-{ ͰڧJOA%*QN\d!k{$`33gΜs朙3_8n?9 Lc'i ߜvuMN}߳C}_&!Y+XܔY(3|{} {5'ݸb{]dqﱻWvqbDjF6 w ^ḯ9(l=>p\j"O9 :v>|c/qܬ_kU}ҥ?$=I{BVJ+ǭi}}`z7`B,Ϡ-?ߢ 5@ m3pTY-% IhXgZ,LwueA>7F/S0,mXXC[Y  _ [J\J$+ ̜ D6)6nv*‰ONIf2E3E9|NEКS1>M8Htq#.RtxpRz֔ аM;M hYLpiF=`vCi~ xNqPPsk\ۏʸW-&l<|w'$5iЗs99Hίd- A+9xռ~3:9:%%tKF]P@זو+`Pj/ph^JJ'|%˜#K(< q6.eˍ5ɠ63p FHJ3lKtVJ,G oUtmzX~4; 9tQ6=E#t\ mN7lhl ׯHvض y)H 79&-TA R|dBaFuD6~t*A*fYųgU5!so˾kT疶Ve=(ʐ&υܾ<8&Til!VO@^`E?-ЫltUb2UNGzsrr)SJm-G)0/f{2NFk (ת>YP@,oA9@e+4YeH6*ܠ&gy}]={62blhY/DeD􉑩;UmT~IԴאcGwuK>рCR:}_ҍ7*ا/\3d"6:7?U^- Hpiػ+$D*0ag2GQ!U(5njzk}poAR 3,ua$vj L##yt~fՃ6S4o r-LSaGlH:^ShzބD²JV4N&Co JL&)!i<9J(N|f4= e\4A #D#KJHWEʧ;\ ̪5-0Xev{5ҷڦ\PD& t1}?g.weoi@ h9t/\?xݮW QSW-o_fyC+Xn4u'&%bU. QKEbbe峩$8@;]Z6h 7HPޜJM!:D[F.x,9zoZuoUȈ1@'m[bB7.tXZn(zy6 mU:GG̝ e&)A[l.lQJ[o`y`&N|-gdkiPz r?q` cGHOvPp9Ap pm1򸇜a@Fň FkKS: :B0io!OYS>6JFv%jfN' Oû*"![_uc64O(j`&f)9ɄwNy>©xʁ'=ST0H\-u1Q֬59O-lk֙(yInyk^In7GS&LȓWaBTg|7&X*{}<^?Kc ;HiU-E7kfQ|kh?k5tLWub8 RZ'byZ _ioK+Y.Y)e$ Wrb,"1(I%]yݬZ}6 8ڡ<ÝJY>W2_>|Z1fW( 3@.!zB Z( vٺq 'doy[f YFaIL +]ƤdccA}#urg*:*MEV jC|8M*㤱${5MF*yGꎉqJZ㜔Nc}IL)@ e\z"\LMd7.Gc w{UU]]8{mW nt]3gnY&҉5/|n5.y>אU hf`Ӑl퓋J3y.<̿FIi6S,E, HLm>ԤMZnLbb*WUKg@S-O4orv-J_j@{/QoYj_2q7w˩vWe6a53_AF4ZۄߍIv*:fN&BK\ޠY N?vN `S d>@JxL?L  3ws]5v~=|4'F.$#U@SR]i[R@FN~ovce5T^wm~|}W 5?OTKp`RxQ^yZN {OBʍh@BֳRԷXl,'QGe,wخ ^qJtliJEy c'L~.^<ȹ+.nȌ3E&,wFu%zq] Pσ"ԦJ\G!|1\,* }N{yHx/LO aWQ0{w*T4ĨS* V-C3ơS`TUӖy0EuW1|6:WDSIjf MP+MR1 &S5WyLN)My2hMYdLkf_GMp~r#6.֮٘hq`FD2AI3~DPrVU*pl% i6V-i3+8S)A/-@hwV$ va\+I׽MPyu8~veJ\MǨVIv=tx 9)_Dhպop H&WN`?>GOFRy)4GGR(_?BG_ ~a;8+PƩ3y]_kS_5pJ L|ʕ= Ͷ,8Fgk47&Ony0WP2u,p X-bMb7x_.~AnQˇz'KhDΫ ^h4u\6σ1N%Z|^]#>w_Z&yJ C ":rYw+Rfr*Hd}s= } zIF3G> %MN}i \yu䬝OrPHصo屭@'h#1pm%~vq¸ۇ PՂ~604Md+k[oe :V=EPIG U-i^7]|SC-Y~^xdlT#z1L |u4{{I:Aoq,;{PzX=$Rb~V}5%z#ۇqݎV٬i "QӢIQsUd"(cb\/L')ߑىΞ`S˖嶎zZyS@ۂE d EN%gz֏}"V0t2ȑƪЉ1Siy>I8 ]mIV]hDh5uu-ģV!P$FyLOyzhR`! ]/^386l@D븫4ƒQ2[0~qW z\C(waɝ|*鏀#0Qx~8&ԩIwN;:֏8i\BvGObrk6bk5HgV6!/ÉƔJ05 ?K7/u{ji 0\25[sD\ ;*cսLPC b#y5&]; s@zxK+dLx2֎V4}QK1'":^re (ńa)RKлhnC0;EXC6j>ŮI1.Ĥu_3_c&901B醯p'^[Mz TYNoiM0_Qƾ4-nZ:ixtWmE -+ϲDɪ}z>Ussuh¬7 ؎;1KnJ5X_W4NۋG#7,Fe 'mN|Iu vAӎ'&]gͰü5۟[={݂7av3O0&.>Tw h 0([U <d" '-w9Pϑ3Z=ns)&\B{na Z.6Z\GEQ9"$6/RuA=ɿy)+S.Uoʥ1sˁ"S+PsG&gDPN&;-e\;S5T' #vjT>J^ǏNVkE]o-[\qn1'KuBhIUV񱮱a&䙘 ",u4Pi}Z~ԌMƷmbzSyT Q|w N~ZFUO0*@epHj -B qKqiwłG% y@@`xsB⊑3PVK3((x(x h%COo]; n߿{]Jvvk*Ӓ]"Y& K\LW D;簵mr4֧S49Bɤ:VF+Q'lT кzG$C7 zT[g9_ǪbuAMΞz솩^} 88D#ҋUHg =ӹle˕%2?]VUe%JqBf]&,-̉_u5(ϖx@/o=te!/Jiz(y:OL{{<Cny,6oɷNLșjq/HU*]یVW]:DRffQn R~c(Z24E;yR&E_1jnEl;T@,EF=$?maWG2 uJ9vR|A@{\K`].An @E?"*]ߨhdU!qD35W]f/ݬک8MŹZ'Tkx ]AnLݤpbro .-ZjyhL6 /[r1@%!%{Ԑ Q\#C]O%Re(eau)9yN׹l1TqnVǰվm 7N |p&T $?,p;W|ʂc@6+P6>T\w)i*#u$nTbD 8& jd ݎJcsvuyBRF $.@dOevlb?f*Z =.^7hյCl'0hc;#x4I_#~ @kĭu/V/n˺k8?H>A$,%l /+x1 rRhqL[xMףq øK $e.<-LcMU:^L{1,3XjVvE~5HZ3p͍#\) a)t2ތp{EᅶnHV0UWyf99Rm>soIijͳkZOe^>I Olŀ+CWjlb-D=h;9$¸5D`\㢔j7mE$ױO`tOpvib7]Oi7q5#m^% YX6WT46oZsX^=6aҴK7Iy "#y7~kͣk-=SSFG xiƟ4eږY&SZX` b$ FpA֭Q2:7asve:7n0g nKa<~:y=gf{v~&?nOvv=Djx:ܮ=x=Eg*ďL+:Sw5}ׄ2mg=vA047ߟY :oJ)p@-D_KK-@q슳A֒̕^3Z7-|4XXwD-<'o1E>4gEB[̿o_flZλ H["46$;&?P^Ft0NZ 5tt6Ў &Xaг_^F;"lt80t~R{)6cy ,Zn0qft@.!uZ䡗@HG*@mwa5Ӳ8mm{*Q.&Y1 jݞ aSF:;Pίت

)E\"?TL LgS/)~>R.bwӮZUb5dqyjrdg/m[[['JC3h<0;ۧa1IF?dLh%آsٿE9:=BA=J^@l1~` ])}E^ 60.k_Z5 _ v'K߯M7V^\Qfs#8@{ˣF}z $E@?4/tS%Hɬ0O_0&t!饭Ј +?r;-gu;]%l\!!B}1q# V-ȝ^vkB!Ղ4j`s^s/{FG^Bh=Aoʣq\E* (EB:FP8A!V XԤ%sҬZF+aě.5WO:v{@0f vX[-0\L^61xZp7k&$>Tb<}Xw_!omfzINL*iE&E-Sޅ6L2I=?jj'@ZpENΛ Sgvs}&PU+w89b$Eiq>kc)#I-:GW0\҇*C_$x )-8Lhqʵ8A9 k!>j'Q\"T{wӧp"$ aK|d ^)֡`ZIKXuS>\kjZ4KlPH=,>z+\L6t & ~Fʛ>MLeHe< #76W3ͩ*7*^ Wׅ䘼Qvzt+EZƂ3jEL%6)-6) ]EhJ Qklh͠?y&mU"F_cs}{4%շ؋(yQvIRlpfNIVNT̸n'8ꢼ+!sbGQ]ݨEY_?ŘG`R#{g1Gbr_f.&-Af2VݕT UI>0wϽ3= 'OHzĸ!Ք=% r6EH>~yTVH S q)m.ꊵ_p]ƍ% Jum=kB;i`.܆^7EZ} S5#ǽtc@&Ri<Ne#ZДN)Nf1xs xm?@_"(]CjZ)]_*GR ,~6Y{"p^2QҞ YD}A4QG*C9%ɵg'LE#VZ!& ƘIDJNF.aO]ŚJSCo;0LZhAֆ\{ٛRFNQ!٧+4S3A*ڄ/"*~#W'[3zƒN" }Ǣ :!b ud8)NEo?d'\GjeM[t ro9LaRnO &pp,P_8~+sgq{#5n81~h8O-5v70澾@ѢD{V%3ο[}3eP9&)snhOS@:\xjN }Hrz=(k}ag*'kM~uMCC|PP9l~9_爭BbSH${Ƈ!R-h!e"t~J說 %PsY` 1ҧ8Va:՟]m` Q} ՋNHra! B?K-9:֋$=w 5}tw?E(@ڴ>g>> ZDf5Q8X&ex-GJmlԗSMRUyⓇȡQ'HU񈸯N Uy HT2rx1ؔyx2_Q^' XZs\b,*'n7t|^7^_YSN(] ̨=hD1eb7µlomMkC[˝)NDӯ ?+Y:I܅:='t׺yʝR~sg1.3=gR"&7nd<8^eD@zn[eqZLM8|@~Uju  u*R+1)AŤt-^O/9k.QٲRYm<?a+ 8#R'`.!P\m(ݑ|߆KJ|ҟ$7'{N=Тڰ/h-4qU0"hLC2W U'^*f:d#v7/M tcO)(6ZAyV_2Ý+QOںX%ˆ4 uaD/+^*U Q܉*mJr4$J@ҢvRBӤ*px69,gA?"z;ۼ/̃xI,]骳.3jwu0uMCB&񅃂 RA^D.pNrjD M:7I6c\|5WoH#cծT+|6+谔mYW]t"P4 +vv%bc+UqP3Iu صוosw&Ml's0x֏ޜXڎN`#B"(ۚAZnU#kEB7Ol.[vom,e(ԚRn4N[z)ANts|?lt&lTZnUQd#JJ%B/U0OjK ZrٹN-K1 Ly:Ce38-ztM߲/ aƋ83ʣF1e&>ruy=?g{AAV4P @usҭJs_hJ-$m@-*%rZeβ=x"h s嶣єʲ+Kj$m UZxͶmx\+~'xTUhQ+l ( wdH R` 3Cmiܺrl F+1W㜻0,j3bLp<-?QĎN);.e ؅U^G-8)mrL=ZWavdzS0¹l^[c@N?x7 ^IG˜իw"qňU"O% P7p͂mhʧ#}d"0,zMr'4wfg.0J]o=uPFX@TfP"ιDOd'⯒/ؑMH&J@T;i hXI)7CexJ_i ?}3O< p㌊fE`OIQ󀙙ލa0u$y#rHEI©-b(c qY^A7t#6]jʪxiQ Hp¸θr8.ڧ~mV;G4]ZM0(M>39 f"Vj<^!Tm&m墬BF$}%U 7Bo;6?fܝ *th3;2"+cML3q? `b+s{xӬ< :ٌb#9#ƓхR59sO:* \$eƓM9(4ݐ>Lb;O<8ϑc4942s gzk.̂2.[ꮩY3<[dPQ0#mH֙!)\ 7ndU&Q(R.Д[8j/x &fF Ey,qI6vc`;BW ufm  4CMُ۾ yóhn,eZu)PN`HosPף]>exjRCVq_FKk4B$x9$p~mmoۍs":N Cf] }<} u?@SKJW02 מзə};Qà(%tFݹ+K=X`*ّ0Aojh\d_%i@QzqmC[#i_xFmG" ;淡hGA6&Í[zXA1ІS GaT>6 (bsBroto (‹ƿzAɝ#q^\ DǐeB۴2ߔ-`F}F0ҹ̌cu-*|8"R$o?xǣ*`YV' .#޸,F Kx]|.o('c)i+W e3i;<Nc~Ix'qcuz/\ Gp%cT1cZ'9)A޿xRꘞ ;ޅwK xüaAvd8ZO obi[ׄb{tla"E< J$uDѿl~b17d:IZ!^W% Z-EZ8Yrt*͘Ȟu+WdEg@f (:?`4bN*Mq̌o}doME2*n׉|(LBS β$p 8G\\H*-srb)&A@][l߀I.{1jBU7[!3.q<u"^`aұKb]"l~p&x 3Ղ+U-nՎ&Nv&%s\[ w BV⮉N?lڌa_pXmvtkP:_kX4L:k55L65p%`Iq`J1+vT';>?OL4>ba& ϸu7coGzL2*)pRhGn_t{wPxTg`#bdHnZūeBNx2^Y N/_*ێ Ea_R.36@$?85-q&]a k@M|.cWi>rwEBq2U6+p|o5g#xЁ1҂ iu8];\oA9ہ Z]MU"]?>*w· q8nCo+Sw/?֛AAbzZ'wQڶEơIͺ>yjGkPŎ vʾCw_< iHNʹMmCUA]l~[OqXO ;b9%xh-= kRC+@(oʓҒP%Fl7 P*[l㪎p}!W$%%C޻*$F6 kZR9P~B9#їH9;#[HVt0Y"ˬՊ87LT a^;=Y[/Siӟ0Y <Q'3$ *G v(D6礼Q-_tUU{'?$%G?Cmm_¦xK( [Ao]< z@ēB{Jǀ`~NA^ ĸZ6 J<xN0cek DF/?-+:GΆDz!rYQ}a]|PA=W^} ɿb!f6$9NAPk^ :gf E+9g4gqrc=/34aЌG ښ`Pf"vPdR.BP5D[AHN:?xT1Y 7Zӕar c~J>{P9ݜҤH{v\8C?%ΧiN+atӷ";lW6AgXru7Oa@Lo=\[7sqDDɄo?}NlUzo6Î~n-} 4[:v̤' :s\x`x^i0=Ә,H,58d%MQcgs'սgk` .P90 5k(0Cg\Uo_eUC=,zh « ?Q?\ς0tE QywWYB|@|2&it5du%6xc8'ܸa)<څ2jla5XrHŃD*>}-k-r)FX,(9)=uY_kx?O@%{tq ao͠GVJ(%%N+"I~G~Lחp!Bȭ"+! ֺ# b{pv,3 !##%\\\<sLaT+ >@HmxтXe%/Ilk! u\aȤ{}z7'j,8Ġa$g/w;v0<s f;O|8=alzN8q.Q+#2kȬ BLF]H`U\!P jz;ya׶e-3e_Ի՜xv8k:D^St);a`Ms42$m?`ȋ8 MNݤ ֤ԤJolY5^aJgX9 >%q[mg}{אdQ[:d ڌ ni%MkmF-֔  -0v- j5 -ßx FA^C!,0Ήtíq =@ ,!d a$ɸl}#jt·[ 4A&aVm/hsՉW4N^`0ҍ;PBKv)p$.HHtޒ`"RK5w.フ1X"0D 5`75P/7pM_f+ȸ6ZKpnysxm}b8 Ճe 8ҫKFăo knj/Џ!9A?rS,qwwt< *EIr|a?;3A>!#mGwtt>ܦk菇#&јzcJlapӵ35HzE4ĥk: NlYIpʨw뻥l*Pz?؛hg ?ȧeDÞ䴨'%k_3Oe h> 9gPf*Kؘ)lȜ˽G¯ыöaI˴߃߅! `r@$OB3\z?$OO|Q$:(OiB ڞ w^/띂 VaLX𷪔f^x,s7w wJZEQ09 .Oœ-(d5M .+.̹VwsU= 6 (c^qHl2\&vaS|4>}xw/g1W:;";L:ɑ·K)C(LƒFam[{LrrՀNn3+~aƅc*l+_8#n6˨-^\>9Pǃ՟;h_j)DsGtb2OpIܯְF.K,;,~$E .G\b?d*㲒 ,^_a!pxPY4&[1$l)3C RiAaG?75uvv)C)aAuAku cE,E`!v#;з~LXt>_  r>H=;[\DH? ;}C^w~|u H/F` i#ه=(㉦ }[!//=uMZߋ:Eu Wti++[ﻀ}첊sLcη>9Ϥ2I (gRĺ6C#TyeP%ҙΨɨ2oQ% {Z~6ewe?:rA+ܵH M= X|0d!&Iʑ(-2xI@Z~H^dwa',#@iA#L)(͂GM.`\QGf(A K%h<;Wz{XR̋0:V=5)xo'_%7"1EވZsL~M#򛗔_=-%۴^Mۺqh=5۲V  ~C?z֓5 7 yXtvУu.ʶ~C2')bgh.jmrѧhV>'TF1Q0m@賌hO&\;H&6<,ʷJ& {^'d#[T^o.P5 -. ~z]oVG:Zi0j<,QRC=Ki` rB@\e>4&zUň$(7EH76(+/KS=Pge/_VsUs:fOW!)_VXo;'tvj[6;`q;0\^o^8 076IRHR$|kI2{7w޸$(7I1֫880p& 84jhug.p>p)Gux7V`#c裇v<ְ1}}mhO\'{W?m> \zځ~-R_O\}}]0&ɦY$CZ[zq 7BO> `}#(%_  p$9 ;H߄A[ n(!W \% p m#IoPOM ~~}|˻DLIn6% ]'feU*< \7F(٪]4 bc)m aŠH&jEt#ə)i~ͫe~ʍ6q+L`š-^"[tE9z-:n4!hnkQ(SoQNH?ChsM&{n [/Ug ;^7~nzQ;xDF2.#wF+M/rg||n3nTffNR[T?cPor='J;nT}@6;D8u^P:Գx>%zn#DxsE"*Ɔ7)7Nmb,ݢ_q!{ kq$D}sJŅy/<'-/,tyTG[Bk rQ%ّ|yNs3foGyYuWL~eQчR\;;UrgU*Eɧ*cR\ZCZ;OAoFh)9+ww½2f]Ebf^Ւ:"ls2ϑVv.zE,! 3v "o_(@'5Au@ކo@E&wpvC`!'Ӫ!\xC$;I\skldG-XNP=k<.WO͍hK`9'_Ea/Bu@^*TwD&ˠ< whǴ "Fokrbw:]Oib01XV9 }Ǫͫ}rn> go#*+PmeD ׿~sG* oXh~K>R &3Y#YA{RG4ޜ~PO!};x; ɹ`I/N~~e+ q_gq ðP p/~,~ X0Y W^|˯__yy'yyo+/p įy  P ?B- Q~$~Ż9)'-`I)֣Kぴ؁IOpȩ146,S#fyrL9z)|9W1ٍ@>ex $BQ He#IYN]q$ ;ap?/1)6 J) YORS)؉<8 ffZP L8yĒȵ"_v/e:3R1=NIrer<0Kr!!q19jV=[]ۀcETRu6{sSi|W5j;UWG T]@$[fԛ5Q(TONHɴ Wv; 7 2$UJNmB]^rFБǾ%HI) kĿ4U5Fr+aL |ֿ'^>:yQ OCprՌk$ns6S'C#.1n_x sSê176RYs,=qd9a5wOz{DfQ4T@5H4 أjʆGztM8`aWB  PapogP!w)wt zD nAp;ooIyxL S#?D}Jkn',=$jCCw3Dqvv2ɜJ31Zilpq=gc:%VZ(2FL#x%WPTv֩x%fgx'(~RQ8' v}bC#fY4 l 8rZ]2h vYDHX *e8fNJ57\k! $׍>Al umhwsuDOnRtTgWSyTpClkt v:NO?D\%4^*1c;޳)dtP.rk\ ԥO%` ֠2zL*sL:W$fPX4g2V,Y6G9^ZMPϿ tRcW+ ~t=/=ϵ6ga{D!KwˊrvL/])GϮF⑴}Gv`Q؈W&e*c*|># ]LTZ 9a Ȣq5_c*q!HGxc|r8dbm mŒ'w #fuhsGo=PJV?O/P=rMY(ׇ,ZARw?G2_UT ejUeh) 8|Wb֯A:4T6aeNrJ1ﴗ2},<9* F7揢 ǡ&~όEVA^dF\򷺽 B1vwdg#82:e-v\'_.ҴyC%!̠ho BnLM!h f#pLQV<ތP]1TSG9jU՟on #{x) IڱS% IS{UrѵF&ERefFK!BT"}R>"A*k?FtA|wW JNMNS I\pJBoή@T~JBmAFE ]v5 q@L~r @)Gq*4DHfy`ӄFƨauDUW,"f:HQn5 ~h[Ǎ&6 %23{ qg)Wê-quwӌwXqEOl(k?FhB_툦aor':xRۈ/@{i!x;m(]FvQxXd"*onsx4#S(0Ye#m\G7mOEhw }PVAeD<T_ >Wp{o_.mo'~<7NET#4ACyuMoW#uMΕF ehG+^rgFEl2PIt2 L)}~};BpM1O95~+>[i0<1POk^\N7JM د6H_6S<5ƶ_!DmcGfU _$$;RlV5XVB`4ʞGjH%L2%iO(>8&vQ9PIn qNq͇vE?E)2%u/DSTa=OQT S7* l:mۘ>l:jw< 3Z{0N`ȍyzŘ%jJ7ɱn8C"]փ4E Gvn{V3iE5Ly!2t^vvy,Wb[4ꪏq-Q]ufwx?/ vLmD!Fތ@ ܼ) /DhBe&42 P[ǟ*@~9ۑ3{ŗ0PH{s7? _.ZUu\&ir3S„Q͆! cUXn/ 3mb)*wTo[dJ{yPm@Jmhjʩ(mcN b*BDclΤIJ Taoi*P{\( ϻNQM$is/TUn e[Usڦ c[qjdҴmQUlQiHɆ# ^?¯ J/6՟lYS|«O$xU(}{䝢Wϲa视L3$q=Mz4W0gTqMWs"څީd9zs}ӵH~C,^( X+ZNc'x(OƈLP'mAZjS2gh 4Ӥ v^0\o"7 Q}0=[skQ[Qu5-,!Tlӑ ՝,tmoȍ[B%|dr%.SYF;*:!UZBT*h AO%> Ʉ$ .#n=JcrTջ+QTf~鹱Ē jpwp]"q5iޜ3]{P pj!h G(!@$9v-r=3"Z+XY/*)fwo$oh;kBuL:{fXgs+"?{RV+~iB;*#8 jmU*ro&*NSy{y8[kQʑ8zJ4Q;GUS=d]`qֺҹ &}΍sإv1#h@d)<#9cN!>Yhi @Gpy1dxoN: ƦBP.㑄> ݶ`.d6|N7GڡҶ( ,cdDU՛`%C;x?Y{fgcH,AzlSs@ Oz>za9 UCQ|P]$05C-m裖s:!r{]xK~huXG+V nkm Ԏ:10-Q# h>ֱPu#uCmSPD\_ %m たZ\: O&%`ڱ&}uy⺩eEJhfTEt!;0*-rƛQZY 0wkJd[7%:o: 2 BKGaTQopW(ad|[ˣXUcdBN;2v)d)uh|%0"zj8Pxn @o fc11pfv64ih7 L4;‘Ҩw]MzdjrN}QP"6ׄz&=ZrqS=LP'P])t'.f5.~3Mm=15UF?[NM`v!E9uMNٝ LJ@ʙ8&5êjM p̅86Q 54!g OJTW ]Q􀕍ާ+\!/Q>5D}XW(zV0x;8Qnөo8>ssnIcT7(̳0v$JsfL 5wa3gEiV ` 1s:nQ% XCdӣBi/qo amQ ׵X nk.84{0sԪ79|] ˠ^N6pf\cpSE=F}"vgA1{y?AMbhT {nq7 ;m9ݰR^ $liG"Kj|_?NVǗdUu*8Mz= ;&ea1Ofa)x 닪a+|n$#K}Wke;0\6ּxѵA)G?xB,_U&=v?4'bMEcq7"~1~ R$ؑUúrai)DY8 %Iēbhk74.NIvDљG*-;8XiTtn AIDX%Vqav~kbH;ul_n >^ιM/@NDאN)i26Ie# g 8P!0z8H7|r`/!w|*Af|RŢ@NkS>=,{jWef]qt LJV|9Zn (3 'kc#bVv28X R]gd-K=RR(SNJSq?'ء~QH\Lm & Tٸg\R7ܥ#j>C7?paq?}A/W{^Bqf'7N}"Ӳ2Kr'$BTFM\ -YBܷK\yYjM{Q$+.`uLf`ÐMi]! unB\q2t-s2iNR_X3 Rl]gI@s7E9Q~X GD=-(<<5"B f'>3Nj#ze]@EtNEHuh.i.hH!Be/WVtAʊ#)B[s) O]d1&jwAc>:+3rˑ-lDx&'P7qfH:kFh  O 9fRYjq˛BnûOmX sƾjr%op:7~#[Vl8͋BH"y@| EG}FxY! [9:)zrmbLwB5sYGB in8 &|V^`Т#puzz])`!~E}BxO<{D-X060E.C+|qnrŊ63F@-4&$+Ym ;^R126>\ZڿIzZg*@5 Bp./S%ζXnポK cv\R3u6qK[]Cllո'`SzueC" SuSG[_ GD?zpY0C- S+&AED udB [a߄qIl9%؀FFû+Ӓ*өߕf\]<ٍDLoYZe`1r.pi2̶m= +̎&u|@7Sx&݀џt&˝#厜-1xYMg=՜f LgA v}&y ׷8dfgCNQ*Kf~\ x 1 dN}+wP*S3R'͝X,a%+A sS#!BOx0Z\AM=?"r:]FGk?yf0왞rt#0PLoY+8 8B^H|A՜NGΑU.QeśhRʆwR}m @pڕ._ݜGOff s:FphGShȎd =oDE;d-+ι:(X94MrD^ݘ\cLn_ьm)<34}4et K Jq`N Q80$JjE "|6LI"K==3y9 DSx/P?0W A+ RBe_%Z]%2z˸%Kj:cM ^XDk>5w> ;GWkpv5ݏ3 }08 0U Eɢ=e`<4tf"l{ݨ[alx %h HYj߅Px3sji^5AwU|Sa9OÖj֙Yyc!-3kŚ2ki|No\Ě}43$rEyRǜg*A’"#6.R0DFf7Ś5ceᧀLP?|eMg[I9LEEʕfj-jftneii_K2 Ώ;*8Dc*++*50d Lb KšXTj!Y`$h|M B--.#;si\ҦO R%嬕e&LXﻱ.)hLf\0LE~ ^w i/oʹRi{tiIy΍H,sB p:(Me[wu긡tH ?lr6:a2jrž$1a_]ZP8{՛]1&)u)ȼ 12*ƹgHbvl y8 vXDE|Go5?ę˱ )G٩Bo\ W #~PȘa`.^+-)6Fd]aro{ʇI \/ZNot30ZZ^j2 I-""Nz/bϙ3Y:+TKJ7 IMӂ4ZFs)>Og g>Ϗρ6ۣJ,ȲGmn\]] EFڌX]gm̲z шW4l56H\PPPm,+PV뇺]v_2PJƟJ? '?OZ? ~Wi oH778޿U ?7߰Xo`Hhf~5Z1Ď'zz3v?~ /yi˯ھo׿߿{PW;~On>sO>ϟv˯?\ͷ]z޾ew3D3<7.!>ccq׀a7[c61˻s783KK{i2ϭY+"y2eBܓ0N ɼʉ4`/ya>ۄy`zLi4YL$$k!yJ/_9,sPZB<85a|q0&_cVtCKc(7[xb[b*gs4qeďlhZg^X1HӧF='q "ؑ*C͡9UqŰl鲌pfOdy] em8c߱es%c{`-2vDq/w }yoc> <<$GW1+q'똘맿cpeۻ>-C╦=:|{/7~cw1w*p~ ]c\}f>=EO_Zy;𧯟gx?|wk4|U7l9K޼>_ϑuLeoQhܼncיw*Yd.1[M9%"zs Cn{N JYB6ԚVXLWFi&`ywY4TWtw4+2'SF B0Tf&tٴ|Ќ&BVdZY C2LPZ\ @]+'úߋyy j\@٫Gٽ࿑9Z,() e78r01U tqyy-njb] bWfS9`^" c%ĈU` ]=%Vs1@}x0m|aB5 d ȘʇWsS{on ithgYd 1=%S:ȝ``F,c^E{]Hxjp鏈ۿ~Kֽ $81+P/2s1)]_ӽaNt߾~_^^Z1|['O5O-}u-]fДEI{]\+ګ \:[SvQԄ3&REb_}'5Epq WqYpǂ\in:f"Gc"p n_t.u*܍춿 [_h-gΐ xr3o(e+.}jcZpIogL7CS>7> yZyq\T{X$R(IPxC97 =0/ tO&<鋺uLJtPKSAGqZsetuptools/config.pyqHt+6St,iJu7C~`4&a([hV㫺V,n-A_h ~1D̦r{bq X1=~𤂥n|8#TcVMj'4&ZnP= Y W?9Ee|$wh&)vӸkndwi>d({0"Q"f<:`Ԫ\+2Qsk5Sx9aדFSϔhG|cB<4(k8Z k{} !_sjdo ^l*5"QYkRr@Hťӏc2gUO B!=Hҡ:<$Hz\ b|oր-wb\^"j=B' ?Ze-m،I1+ 6яѝWonLt/f -ڲPMD8VfYr]Bbc/XXZ6ŊY[JA]߁TܾBU\>0q| p:HϢi$hۮe(&Vv, M5R̝= n>puêY<ؾ֔};ΠW\!c *أi2dL'9Oze']{Xm~c묓Yn!yc}$E RFcDLf{z)bQʢ*9tGt!Frb }+ tBp#g6 g;%HQk8 Zg@Q=];s]=%gB{3P VԆ ؖmjɊJ# K5r]7dVZlfR[~x3wrytz@PfP=D"vIB@RZTz?͔ٱ,,6h<`l!B*W<BO+WU uYc]f=(N[V>B-1 > ԆcJ] h$i/򎸈I|o\wF tY=>j,2x+:xH:. s#3T#?#[_x`M&Q c"yK ZihL^9jGA38oXzS vw-4G AzQo-|wr&$ze0#^ni{FPc3!Y7JfߩiV`,wČ> *=U]oH$Xo0)PǓjѫ_@WÅ, f >NZxJx' z߽32ȦGHK:7m $&nA! IYE Z%l$NxnD;"k>4{?20^ q!~ک sļjFE;cb8/Ua=:OjL#3*0(@cRKNs 8#l uȠऄL"sK>xX(UNBzp&P/qΐo{"Hd}+,G{^;4xڢǺn5%`s]8FLRm%VBbJaY[ța:>?rpXp 2&)0jt*L`C>nxm\f~`.qD| {cOiOltP_e&>l_t8W _~9霃ijAV@[]Į\1Sϭd1q="3q(fcz8̷t"޵N1%htZ^ 5Xɮ^~ͫj“?}/_/-HQM#L5Es/ qMy:HN *h: Ab 'a ltR ;}MfACn>q~B0uJ?D7%-%k\i+c#}+j2n_Q{aluLO Osբl/cDq$#O/ySRjvuK+ƕcTzo拀d n,h@Xc2ivkEN#?ċ|4a(&y]2@[~ʑa_oSS2m.Ċlj '!D= (.= gZ gKOQmv{ֱ%}mK9W;X:Epmװhz@{Lmo6)I*( ؒryQU~{ٜMnIOzJ!MҚV@Go.ӆ}A泡 "5u1"D Q6oa .4ct\lk3'ܡ:HNؠ4 ξf - SuDPQ$CQ2 28o-i 8GVYC,F|$`ea8l`PF5s;MyδT!; QKT\(1:h鎆JL>Kp:fѲj!IJ0E`HLM!7_b],R{W#:\}H?Q8:g W♪|q(3MW@Â.cuδ-Ql_7i߆Rl9 .pA+|ݵbÞUlcAWAHK|=ZHE-ln0{E><[2lL&IKHGwƟ%mi,nJ;{q;n%h,VO} PRJ=֏#>E׏2;!]OWT+ a2캊}Ӯx1#@i2]i~'zS&}9x<w7C=)ul #K#נ'[\("B֬>Z}*u(uyAѰ ;}Yv'Rj5#)yþ#;=,X{b^G>~>]`!=(!ٙ'H57=ZE;U&QUY?he8<>6IQL |.2nj{JyYCl'ny6HNuWlԯ[=Fe<.hwеE [~|im!P?ݮVFڀD4DXs=3ވ)+5> W^X**vIBlj`!^ yJJ2,G`3yh'j辮yə0͖ݡ՟cc{7;) NŨtЇ|&^lXW?qF0z;jn/(xAƬGYSOe#ѷSD"j,Mge5!`MxŒf@-{Qư[v0!T}?Pj;V";T_A/hބ qKHu=TT`l$2Bs gN8!Eȹ&-u0'!#ثί Q}HlZ@+!5lЗ{,Ϭlf>grJrjpT=9gZԆƪ}yēWQpR4}Zfހg(pPb,d.ؘ^e/ #j"}4 oY/]%po鶀̲I=t_?[*g6ܳ嬩vXx,jY8X0JyM am[&t3Q OI!#(l=z1*nhȩe{# k@h fܵ F6c =,t`G\O08K<عoSKO.j3%{By">͆PؾfgjFx{ٙaUe[ /ɷ+r[:~e:k܂t4w#[ǰ2͠܊Ϭ4sc֭Yƥl;^V-x$fw 8LX_{;/GJ`Zwv$:I zud\&l, HAP<'ǝ @߽<pk n c7Av}^&8.;<&l<-#wT9<NcWmgQͬs:"w!ͭ5W`AF@5jadȂ6Qx'j5{2[;!#1Ib=xy|d a-&}75BQ/lqhv~2N4wpCst4x p @ȇcy( =N-_%7@̹Ogǯ!ϯًY0C\z ay^~["3'(R#v1i7~;u?u#Yrv{~_1r: (cI V,PANTw7hȈM>@'W`USvAc^_:*, &l޴ ezAJȥ&Adv .IdwsL*j8 3 wm d|%v,PKS,setuptools/dist.py}ksFw ,]. yՖRGc-E@PŠuۯyb@Nl[WU%`_>%zQVɶ[OX<9INe5+*=;:*כ钲ֿV([mMv}Uyma:O׋C-`.Ѳc'5]}^׫Bo/tO۰ŲBu Uѩ|UW;]sݤ? %;+CNnbȧ{~CO\b5MwOoǼ^[B-[sF KjB&_+uS5Mhs ڧU}To?}Eyؓh TSƛb~U\j"-5pTnh;n׭5Rׯ jӨy9l ;VχবM C~]WWj[jStK CU’fmCk6WyzU;D/Cz I@ʥ~G Xʄt#/$v岄ɭ; z>=bvˆj/:.K˲Mۊ6шY.Qd||V]("ƭZ-5YhTt]CϧIOR< a8>~=H' Bm}Nben+ޤc`NU1JI2eF+;ɫf+>6;*In.ahMDf U fyY=*T5G$y`I!wϲ`^U.njD0 ~l[sg,@pՂe躽Hxx^[i~ " OKC5Xm.Y{qJo49I}/~|(D&W6DaRl6]dWPm o΃+O< % r1mR ӢUP@1AnV)v\v0IΣ#Z_'[*bNӄLA͓ ڈ| > \ܖF|ϴ>X U)Hv=g-tf'}$7*)Z.e$ue< ۸8^Pužf9k;q?Ķ9^*jEH!ST 7 HBϋ%M8zMj~xDgJp3ɇcpnNl?rdv4oj0bm_%.* k4un˺Y[0V.WE۲ʼm|2W gji')?hZ >% (ը_e*urqnvzM-L. dA~ [N {rRQ#Et;<]i5{m{uyp+J0,]$o^<~qRs2)J৿9LfR7 F-F_8up_;__fApyy W [P+@1`x+M  PFw- d{J̾6b\7qM'Wտɣ?|:UgYwW|O?{{aS3 h@ !-O5C- r T1c,[bJA,{ В^^m*Vr`@;Vbf[:mj%4jx͜d VjְB<;L'?#K3﷪ܖP]%.A& ƥ9jsҥtYmPC缳$adpzhq '|%int9k@D.H`|zĂܼvy@V Pn8jYoh}Z("U?^p_5$q /( ^?q;N NHcP/M{#d{4  r,ͭ G&>W{rx]u3ΝeL8(2":C%쒛˺Uڍ_*84%ND$`r7l4$\BCd*sɱ5J#"PV~ 6=㮉˦hjxs}rdc?1~7 OU ܟ >pL\38씻/8`GU;4nA4gN'B+@܂H BN`&1m3*/@P@ M,dGfij/傒zZ[ Rv.a}v){9#t$z6:Fyp,E!>Ǚh"\b,.'>8ӹ@'Z R>fOPyjzJRabQJk+LFG+$nmG%?\ C>fO|^ysHeح 5te~r/L0V4Gs'lG1~U s%59HsCH\>;hQˢ:kAфeIs\{.gWR~Č +qΆޝ=i.j :{f*ʮ;^ML єQQC(M33so᪏0K\hG!w~@.S_E,n'A m3؃g77 yd%ʘG+b \'{lZ{ŔѯXHxֲFw_nI;@زۗ}ǓJPKgiۑ`ŬLei-\RUZT)0ж>%GU;N+ nmWÑw<,g-]p% %33 uQhZ3 B Bjp-^+JV5x#]F.TW<avL,e#aF:@6_^ [e͉'¶ R %ȍ:O6E1UZ΢f\@L9X*$ _(&Έv˜mѼ !ͷ5&OQ`̀,h*:ֻD~ ! wo0g紅9} QH/xSC;I' +83/6y*Eêx#6B|xɠQ"4f@uVIvQz,I<.*e8%dk7upWq:ZF<9 $y-`&Zbc\ @V; !E0ө'RzxZF8-\|tEJ)Yȷ8 njaV)AZf*O AP=mTI HMsHS“ۣa=5 &܊8PrB Q9F ̘v,s (MQ7JI: 1ǁ wb1@ s:v%:4[SwGs_KWXvP4M9Adzo8kNa6kБS nNc@yMTY<2L-U#TCծjyݞ/JMQ1r,HҧRwOU0V%0k}#.3%tpvZe"s-1eŪZ\ucrMaw-` kikr(Wpt+#-VRqo3=D⒬Rt8 ,: @#jUE 0q ^pw^6~?{g߿>>* LuJ&X9`gK0I0Nyij$CՌ^{ |av!):y5<DZiF91H;'*8&`56k0 Z.k噽E5rߎ&R `%>qĉ Rt|; ѹݤxe^;=f7~: 36 T |K;L5,@sɝy.M^';fumɎm!ڤ 񮋦|\l(cwʳdzz{qr{ bXN-Ux?<,rn|ТLͲ m56PBb;c e25J~]Hv}j8Ԛc]d漙XoH/cÞ8I၉XN+W;DV%*Ai"夾"HI(NQ/vA<93!>~?u+|Wsl/Ytr0Ϯ^g5nz?8uDsy,R2?w^>F07o6R &{NLuF wp g0FBH y:2:9`jQ? Ņ`Mפ1IP{gƘûHw%"1ApAP!UP$o;I6UEQ5ֆ0v/NM%_Z(}[h 5(z1RPiبv cbZ1'n;*"]LK`ap }]~2P9$f ed8֐U lڿlu'b<,,?pZg~D`D-G Fڡm܈M##¢:KfUp/5Uy:ϸ9a?;\iV U'TL0Bp<n{v\VGƥzY'<}f:Mi+Ndz)6,ee&O Gu}EI0NipPA1O՚0qe[؂y5F}%2_՝/0i;S䵴'𢩷X!;^络0,wC-zăD5B6g[Q0GX6TdxD_mS3B,N pBqr6|#V1zDV&@LrN*[Śja^; |FzCE&Ε?z\(Ur6Ag,D({sǼfqR DwPtcm P`5NM'W;d+DoW gO}sVyNxO2蒆tj oy/ROS*Uf3L)rhl*BRёMT63q#%[]fPtxj7av0]G^(T y 9ɴq9aPYG}H_\H$8kY_WF|j{@JY.]pOD2I餎[_bHEBVa e@^N+O2|˥lJQ,ٔK]HTjAB?X7#CFy: gOpS:(zQ"\8c4)='{Z[/B/^UI7T ڝ S\iUB']=*b|Tn}BZYռ`{uifNE +_˽+9:kab WqW3%;N%Czڨ'Ղ AuA*/:lɛh@0 -;] \\MĜ/Dbde;4kgKa5]HpBP4Jl4rE \qaFc|-z`zpnAVڸ/Oӳ>fFp3/omٻ:ou~c/a |nFon3ǧ2%6x_Bu'},꤭Q-a/_z[ޒ GftѮ&IqtX]h 39\KGX̹5{8.1H`ɰBMp䀔 IGkac?kޗ/~}WxqSx˥[{^!wEM]j-]Q?qWK{{wE}]S4bW])v ^4i`_u:t sL% GMQEE6ff?_@!dB9;.+/ ̀RJErDyr{):? ,!g9Yc{BǤPhabV#sHMAx)GKhD%V~4GϘH`4́/h{?0zQ31xx%κ%*ϧs_gWx V5vO62UBo5J_OF-ʎcب'\t]d3CbydS9P-Hd(nы}(ټ&d앵FmIdEAElx-;-U_().>NJ&"=wUޓ>&ELEÍJSn!0nZ9йjũ8T1Z>pw $MݱK4,/v8N3Jq_}I3O0&3JH@'2k> 30Cӳ2#iVAv6ʃF;gK <ƑQ錃'}155\KPܾ''gm|ؽq6LNrs;hXPKSsetuptools/extension.pyTM0+Fi%`*nUOުr& \<~͈hb!>k-,^Hv:[VwQ9UQVЎZ]qe<Eqߐuw8} ^m@=|INq'\r݅̉%Cگk QervKMz364)z_e.n`;4^A w؄|!Hk  SqRHxآ[vdT{ձ*^U9M+g:(ۮ^H LiK)P"P (>bNۡkKJdѦR}y9il@"F{D*Dz5zwA'I&Y2WB\UmgLۍ-F[p$K\VDeŭ5zeEKfeSqaU#7U~vyJr%N K$">!'ǔϑ?PKS޷Y setuptools/glob.pyXMs6Wl%amgz8z$k$\)PH̯⋠$顺$vow ;^`+^,xMkz s#3W65K'TE^m I Ǫs`W0?U E&D?Zպj$X1I2` spPli$.m5ӥ7cO?3@ŕ6vG`-{"8ؖիB'_L:ij)9⌫Cm~ Qg\uCpJdJ!1ALuk_]/‚`+eLL]Vޘq1#=4o?0R=[$c*7ϥ#T UXQ,s_Y4B*$Ljk _Fr(ElM.(^=eTdV(D{*s+:c9rr4M25vrN4{F٧eM#AT?[Nr.*hj,SފՌL ahT@Y$=#o_>|HG/N]ײnZkN\} {)kys0vC4)avy@qxBqY\N[fC]Q[ඵ|6fdH=̲HipƬE<`5 :6{f.d:yq*7c t/PKS)όsetuptools/gui-32.exe|TŹ8|6{9I69 l @AѠK4&1ƕ]"$4niK9Wks2lm~/ֶVpЄ/PkԉKL3g7 ޾}ys<3<<3V?3rßq~Ng!{%͙ Kޜ@5}M}7ᇾKz$I^˯ϓ~欬D=noa;d b"A~7콈>܈'\.[b0rߒd\7g4d9 ,&\ K{S8.5'#tOn$BVj|[usꇤ81_/o] :oÅXA/pEjHErgKY-<#4TqopMlZQ`foEMc~ ,Y)GKfSϿKfM04BOh5W:@7 X:L:* \}݊m@;[Ɨqj@R oy@XZ]"e6C , Hݡ`ӚCV, +l.81"4>+s 0cMiQZR`z|Yl%LQo;FSmڏ%)c\G:bݴ $k S8X<&ʂ72YJ */ijzT:x_`O?l69Yҗ[2}O \] {oT`yy!+>kHzqO8Q8"ﮡO5MOYáoP/ͣN 32wEӠCon<:f@mc :L!oA|'7p?t6e(G7!DlfjࡿԪr|7zh4+1MĆDr*9|8#h~˸h lo@j%G"RnEʣG_;Yuf{f ,n&=l6P_y&MQ$z ۮ]hYʸaG[QG=jrt4]Dv0kwV]-4U )m^r;1Z5(|J͟>r(K%|N.+Έ|j"|vPz+dkۥua[ p};=50؜J>"fm%kmxԽq yuzRCZjF6t{\tuz%(1kD%lqӏ ۪txqp[2iQ*ݶʬmմ4th6ˮZP.Y < ɟ5#qitc.59Khksq : t fy/xJzDp(8Y>3gKeʇF\x5M4(yH[0Fe_t? 3 '9?A ;hrh31`6aH)J{)LQ0 w(Q9+;\,D < a=VL/D!z_uc6<'>vL1+`&郇9ɌoNK _mX@f[XMbpi1@kr&[5pssP㱝ԺNIqTNYDS%uVȕWaDTkÈ|>ȗuB{\y!-,.*Z)9JSfQ|kh?k5tuLWub8} RZ'cyZMn*@Z Jcetb)d^r,HjxcHxKSIgKr74Y<,DӉhr+8\B (Mf7z>hO@Pf#D}B A*Pr5P:vVU<= \ Q~2$=OO[su#z.&U yGPT rl]II;xvj~dGj@Hc @N-gncRNtݑXN޻eGByWfGnHZ5T5KyZ7ƓS@W(w H%H1'4.Pz,٪TKJ "@N;:Pu]SL~LZHՂR8'к+.SJi3y<4dp׵K)ufy'bzlbR;VCa0:罪n=v.܅bfE!}҈57㸍hi~Аl, 4Iw6 L qj4ȟӸq-gNŪN%e@1@g( }LbR.me/x4  t! R3F|SW.2XUKYpc;Aw5h~'t0(Zij#~5.@!dBlR\}Z1(HbO8L[m.˿Ҥ4;Xy3AMڤȩ,Oϫ=ܭ|÷cG A!pv;Pa!DXl ڛ{T[2߰H/A>hq% ߇2; f 'UYk8qovLH`B;Ͷu > XW2V_Ya BQ"H4/x#*\^Z܉ύž_a_|NGBl64u#F.$!U@S r*n ._ѥy|)XnP5T\kwk~ 2|L'+%xgoغ/S=Q#H="Ft0'HP ]"|0X&4 82^|@j 85 9nW 4n/M@ C(jt$"`zcٳ='ef#S-t*~e 5jR]#7Piv^^cVpAES٪f짐7ؒ. z1K)oCoغg@|MPCgP7{gg+S? /q{&ĵ_|8!`rBn6fɀ-, D6A?-kӐ_ 6aA`̺n=3NރٻA= ͗QQ]4Jʁ|{GE#߆^+ FRzs<0q&[ab#. #%>Q">3ăo*:9$u7"^wmoX JyrrTryry|XH̱VXNG>ޙo,]a<wiB-\ˏb.-hZG(Is 6opQh2rbT.-5Mϖ/א O41OS"mK1A½4Nǵ\NN{k{Iۘ)[F: nfd %8E(uR*9 A b>ʔGB}`[+ZzX.j'lr8oۧaR4rnDV൵-oy@cV!3@q1F5ŚæpR(tgPqqnk@Dk$£șw=<;  YŒ;H@T((2i|4S@Snwt7xF9 ?ڸ3x95lCS&4HgflɐDcB%jd&n D+@b-&#!Žb(Xfucԇpߙb/y5ƻ=; хwxxK/dDx2֎kV4bNJEدuX"Jdntۯt}n6$)8=av쉱:ISB{=|kfiL!FC!,n:YZ>GoKP[E6~dtWҏRVkgRQj"Ky j[K\=D=A*6#p9FqKX%D&OɌ'&}[ 2r o|̒PM7ȋ_*\q?#"V ͋L4/L-KhSG%-xNN,f*BƬ!b oyPFp[.Rd,MWbFOa/nHtQ4:M̺2р؀k9P.㮶$jp56萧&hbeY5e̖.7#\XcQy 4ǿ$<_mpqi|.lR4y#RM 1C/<{Yk?cz{Ka/d_<P5j2dLأ!Tq]dHMp'CID0|i9qŇ#g5!ֽW0?Vш%h9Kjipu;)r^ZFoMiݐ=. 'NiBr馦BU+mg->qdjxvD ulȴi-!Qz9@k1B*'p|رFɭ֊~6um%On1'KuBըIUV𳶡~fرF@^a>bpi *,mbOfR)018ET%8Ya] а +Ȓ''-8 vIV qP!ܺb * »{, %P2 z qlq zwoPJF|SefL$~-6oefi|#zMcjZ~()=R%@?=f1p?|$=J߁<- *Vn7BOC4h }`lYчBp턹R$1jDI+tyvYK|4K9QԠD?ZDqȧܖ$+E\d>IwpՃ.{^7]uLwN șjt/tatUęH>-g%zlZ3m[El\q\WzXZnG)4`4bJpIt7JN6FգhsMgDTb&z7 tߓ<^c`X)#@\C$frC\˥+uV;p,,,>҇.Anipt" +j9,5+GȨa'+l)t/EUK7,fzzi,  N,;EuGm>ƀ#uD^,': ͘gSK]Oˤ<Q[yރaONN7 u qK"I6Cmh֝e'`<#( bP 7vA6]tnh'+F m8׍c%08si*r.};tqZOx?9dF:93[3h-3} mlgzfB#ik/Q!xcb.#ć.:- PL庛#1ʧ"`(ETU]xC_FGq@OI.Rx [4HutB} at+Yf1)uX<@>zYVCaۥmܝJ,>;뭦ӝJ"xT 23,+Ź2u ۀKn,%+%bGya\PMhfYtۄ;J3[.,2͕ h(47qkͥz1o>f߶x0Ma=oГf˂d{8~m~]9l*mWs#no/bUݮg|k|Y>K5sWk5YJ}`Ogz]00Qtr&NL23u77z$XXwD-<)o1G>dFB[,*Nu>1cjq' nFAAM]Q#>AW`K{&3dЃ%PɖCQQ*Z"e[vK ױpW3e=Pwqn}l7U\qB.nky 4(Ͱh-q\ݠ +<K:r8m.&*_@9!Q9ERhYb; P0X_ n)x4%ͪGBBdqT"c1| _Oy1q2AZݭѧҐj(IC#7qr^ p$}K3sb"_m9c#2Ą/tvkG8dl,yMCeCJ+*ץp+9 >YTO_9< ۼtXje YRnY]' , 9mIn^kk$LAb墄imݑihcGО8yPaG{/͸~7d 6kO%8>T=}Z\omfrII,*iE&E-(Sޅ62Uw?w <&ݩL/]xJ_m\XjyVl}pt[ɪwU Hԫ`ztVd]a0Њ#hMr]>0\+@L2 [Vg`.0ve]ǓhJwOKZv c6-X%[qWԊإUF;y韐}j;j{i={mjx&SoE~xF}_h<=/|Xte #Q-C_S*C!:*Q=T衕8k꾐4k[>8ذe-/3ctɺMcBŬ,d(D)d:Bc!ef&G[l5n=B!56?b2|2ANm= XY@)Eȋ H" 'e)V6 v"O"v"ubƧsaP,ʻ<'p؍RD a!D)50+=v _e6{#5Hڬ!Fb*Iݧ?WSwP"u:t-uR I-ހP`E%q<*uBY('$ǷJ+ZwuϬںZbK\7h:τք\1wth!bW?@}hQ24>4F!L*͵'Ee6hnE'Y8G}n4Qw[ JVbaJʑ.+?mO8Kf=8FE?<݉["f:|w(8[2dinanǐ2͇h~̻hr$jŭH2CDQg˺3W%?㩡m vgBU Bt"HT_%޼1Y9.')*$ǴaE}kp8򮴢0HAE8y}A~z&1}:RK+CkڪKC9C)( &]weGdsp,Pcꂹe\PH7qjhm p]w5ޠW\[Qt@|=|8JI 3eHf9) `yt ]nh9Kr P83#Frzk}cgF}Qo Ph~tI@E|PP9>Z/kUSl} 4v::D 8]a,b :Yl]"V52{5B$ЯqwV5Pr XyPQ;C/}Fc%0hSە8<,4t?qDbúntS3I.#>@_3Uh'xw;𑘣cH':ypWLzS Ϧ9(w3oZmnc3TuVNO}i;8?U+>}nTʬ&)_B lJͤԔN Ƴ\ǻMU-ye''OyQ~:F2&v LOqA ΂1xB6$w`N#Q*ۿaMe 3(mo9#TMdDq"v,Y 퍥+ eF{RNz骯uP_!ޕ;2fΒ7Z_#ކᥥ?N^Xd]psi(~KJpvO06Ԩ6 Zuh6F;M\ZrH+Cw*sjAv7/ ͎ tcPOdˠŬF7C# g`S2.rH?0"͂?VF ".2!ŝ6$i3vRBMRamgNyrVd щ;8މ֥N1n3kwui0]=h!ttMF!AʀI/O%.^ܷZ>ѹxvFi|NMjy*7'HXj8As[؁12C۸ڣ-뮍N%gkG=CҮFlq%2 uj[3Iq*صJ[>z&) 0yԏޒ.uNb#B"ۚ1 Ƌ[l UkE DHPܭkgr;Iܶbvb ZRNL|eWZ)|ޖ3!hFu?BAe@#:m-sAk`'Z4o9FUeqԤ=Ps?@a/BCZE>M #t_EDvϋt]IP Rz/0YqOa:@ yWmCY{}$sg*BN(–$gS„h^UAJtϐ5\)zx<1~]^Myix#L1 6PBiZA]ܧJ%"Ѐ'laqQ Rt)71PtC]f"`IPGCz 6d06t[ُ1 nuBP,LT1^_ěRV]J< 8Z1S䘖shPWh9as\}>Ǡv>(9(H%Oe׃EXA}ÊQEdrIE?;1YpsMyT'~g)D?x+vG .{&}ϗvTAA>R=B]Ji`WH%.R"()C=RR~}3Ta-PוxkdWll@%8.V~CM ,L6*6 S'in MQ/cV1 (c qY_E3w#v`^jytH-'p@ndI8}]ߴgdns mG?>.H#Oc.V]tQ2؛:C39c`&q jkG3kx-2Zuf1X-pIOb- 1ǐdY'ǚ{_פR($.wJSj"R\~5q1/^ [یΔ K>>⏐|OFJkds'?;y&KH O'Qh!}i!$L}j;_|<ϑ7ir?d9-xT݇A]$]vGGe$oVsT &ufex (Am͡B+o!jYyc̋ 4Vcb ˫blm@\2 dcHV #t z1W[`YB}@3Ԕȹ-7h?~`.IFp^; D0vA}6]}xLjj8ą3rD]EuN=xCW&Tnx7ypzt QGJW33<G+W"DxᑯLP)A?5T~gC fޞʼisOhPgGDHK"=~t㹞/c9ScH!2zhP#na۰A?ú Ny:鴾k桷3yW7+zߍqnZR3NE"/4]y'*0SH^C9~rSqGU0llbUQckd6^&u[rofi7':fPьYx4htIF=`_G[v/<7[^;zc ;m8BHj*7 ޛ ^+fhlxK 1L5:7peD?{{]t 錞J,ۡ8avj9:[QWat\Wr/Sm^n Ó ^GCWts )‹@ƿx_Nϝ~ `\ tYG2mv)] [A׍ؤ0;'uj.| ("R$ $!3V`^Ӑ J&7.e0 2R2ryу^q ߅g-%)+W ˳y{GR~Z ф<3@V:nWѤ-)Sk]LȠEALd/:w!]R=/Avd8察Dbݙ3[SBvWtl1"yHԥtrԈfs?XE}!IR ?Rx t,Um)p>4M`z: Of߬w+WFo`@1P<Ÿ tIJE/73[_`"YnkMǁ"*QwԀYDnӢ'*/BpUYeiyӕU0Q6 -L(%> sL2'9HGBK] UYkB\)|HE ]ʸc2 0^-EMf'/P–nJG'Tk,z]Fx /»JV⩌N?q ^Oxolk?W PkXL:{55и`3j4˃K0|bWA)N^ ~ 1+h|܈#@}7p~ƭ!,Qxx$ڤg"yO4uf{P-`?Z P,O9Yx20\Z_T Auv)Xh ( %=6;q P<*n)|PG/!#6ȎZrk\јk u!YZAGrOG ږR$Wy-P+EB;*h>KFxs [ۊ*n WԻjmw½o½y7@K J[F*2/"a֤W G9}#0N(oȓLP w;&LnT(U Ccؕ y٠[MIlp~uE_bYd1t1겨F"7Ύu'$c*J%2I&hN@^_sv :E74pbr,8f/|OPڭj8Dgd?(D7&g53vVΡ/q3*Әq=+z';ZxE5rRIb\lg=D6礼]o`OzUU{l'?*%G?EiM_¦~K( 7Z \IF!=_%} RcP 0;q ^b|9m.S.^Z߰(HgfF`ٔCϜ<,B97L/̼O( 1G īP!' b Ԇ$e#Pj^P%gLNd\ec 7V Y8\Zʔ_,%eq >Ik غd3 ]4gAb(](3k{)y栦36`zsf{J"G6zx.T^9Jb̃i7[-f6yÂ'РDC{a Äw@H8 r:oAKR>k2 ])/W2)l> 5G3xulzX) <Y*KG1c>bgO\z}nô> . jXܛmDBR|UB6@qA܉IPW5PWD$h%+d VQmYo'ϔ06rlಜжZqM38*pTE֠͆ V]ҴzlKha~bM`00~џcނ ^Ges(k(F]nq{]q8>?K0k.i/pE1d6A@[FړNrluf}W-:B~Aۃ bsT^¢8=+0*t?8TMnw?ř((q6zkwJK-S\@X#%ʇu7W@| M{9NώTA_؃nq"9_@R ؝#FK ڶ{H&m`9G4<WƜSrucDhL6kL_A*LИ[Y4'q$&A .^#MoŽq}NgI4f\o!ɣM,2eˢ~\t\ХDSЄdю#RJ^+HyUv1CkȘ}sK¯#eL˴݅> v&OA$gN_U7>y;C[Gؖ ]B.39^Xm|(ߺҤ0@?no@y~wՎ&vdGIGt59Rr)esuhScQH& n:A˝!x;{l-W U+TV?sw2#^>-Pǃ?s?lrR L(ﻀcG/L70mAC &Eu(;-;*d:z%ܙz Wb 4+|lt D@\Њ\;G@C3*փL i F$rAˡZұ/-.#3ݕNAzQ?{fKe~ (ͅOM.`\UWr{^55XOK;6PerbI6/BkZu$u ȿ\gQ1|\ _(&_lK6OӶn\0wO&ﺻ1gGC"Х;<߁3 OL'wSyT s0䁼j XY+f8DmG?* ,x^EBC0j9lRӼ߰СG. ?;Odyo콉pӉ^fjbo o|[{/};_ػsqG;{>}}GٻCIfQt;{W{/M%~et5{+{}W%H+{--aut{Kt{o콙%P؋ 4c,5Oi[E|gcDc1$FAA*0pTtp e8Fͧ&M_mm'i 'D`M`% ἵ>3̠Xk}upߵ?g^{-7r_#NgQ|<yD.<>#^&{ e,{>XD43T9yV>UZ&-|Qp}Jg|d'R/| %? Q96_ "|Z B芡~^<reOQ:?A2P{/Wh獀[? 5Hg!S'E dQK(sTg.54+*`\忟 b|T~J ԥ_z+r>gjgB" D|$gUďF@yBj\޾ & _r{^F?>ߑ_/ԄƁ' h)pU!"9'ȸYШ,2nZh;A&$ɹq922{cwL?꬗5"gur+K Ht <`' #A:1B}*?hӫَebu2,}՜j}&MG7˝)WT.(F=ֶPgҮv*GĨFrwa8UL K.ե!rgLr?ƥ/.%s6ɝr4 \İYy@=< {'Zi+6ppp;Np^ps+a^0^Jv]( xqbLk/w"޸n><ږ:!j¾bxZ:R_o\}}R F(<hKUL=S@פ/kM3W_AL ~1wŃH}5َ <EVl|M$u$Fn8ZpUW\e`6 G&UXyolE2Ѫ%w7Ӧ ,JНkF A{jfCϽ@M}Fh" (JYৈ)66Hr(Qxf cp)'EȵJXS|84z٢[\]s[ttNAxd9ëj8Φy+!Nnꠄ0;s~5 U)xwƌ(/)/"7 =C6Hw=LEwKeY*}%d}h0Qc\+=Q)FK2TA,D>3АƯoxƀ- CMYf6biMk\xM!ԉ"$ &{)}]*BZ_"3樥h \%Rf[O `vD)z5.Mpn)z6jݳ7߻E–+n,{Pg?-]..jq|_OWqAjo= .=X}*Wҵ^n^␒O++Snjr7f %Ox|s8*{E 2\(7udMB;?[e΃0XkZƒ88Nre_fr'ߠ <͎n炝']4OCICxrvX1myfׅĆ[NPg osr;xjW%:[찪J8 jm.xR2P=ۘ0) ПUt oDx ہ@& 4΅nNf^^t"+[†W}z~e/mӔ_kP=} Ð&rB5iOP ƋXWx_yǯ>3$2'yG <x+_n:_md?+ͱ,mdżp@u;pO w˹nC.OKI YB1.#PqУ,#ιi2 x $BQHe='pO8 c Cc7, %F p\6c;$LH 44d'UqkE@CB丂wrՠ{фh5~kęNJb 3X 9@u,Ltp뜉X}~y.``޲BFpGTC$ÃMlxWv!Z8Nu0g0j 芠qĝth7Sxo,55n+9.Jxg'}ag;}y|OEIOU*n.\r|?`PsPҶB9b;q6v"ɜJJ;%NmrpNPʁ~v;Ei%Ba5ȴf u?wq!ݔwuU8EƍWBocx~wpHI|bNSmW:.0c'CSȁ Xp+GԮ0\ȽJA+2hMMvZ7pQi$ hhb4E?Z5H ܶM6/h-Q]W:kqɏ:D*ub z$ We '7\vXSJ)ͪ0޳.<&0P,:lR*)]W( k=&1lt"\`2\<2^ o:luU՚d MB:ȞH'5vRqQ(Ngs2܅f9L"LhdIl]QOή3)s;b0qh^x$xvl5 PˤL[e[|eVEq6~kJd' Yt5V&k|9._,;/&  QxUݴzÈ t%C6'nkhm,`=PF0P=|EݬE ,iC<#aY) XtߪH4FVWY+5[!`*CQpԶr79%z2,HE* F7>A3ǢAM 4-ş!w/Im.Ďo}LBQv#wgϸ2;-v\_ .29=9.S% ̤Rlo f^N,}<}ƟF< =b%"Ky((bjro좈BA|:re; ڟy,ㄷf:9Y#R&b r3x^} ҍfa޾zvjP9DӀvhҲ*NOѝAUB>>Sqº]NTsK]߰$$;[JYHsYsN*1'Ւ$jOYdJҟ0^4(1C{](K_7Ѕ8xBPM:JV\iMig}{/OU S67j l:mhai ^K>H0lŻ1n`E{x%z.b:(٬B= tY7FNrT(J;s]s(aʏ WЧ+ gyB:6Psf! 4ߪ3ӟsXT4|kfMv{33:r &{2zJ|PF'X#nRa˧s\0W~ Tߊ[0yE)M%rܠ?}D|% @5H( 55ObZ85QvҦS3k犭C4o"TnoESVnWufY{ *2؆ Јy;2bkFOj U 4a&='& J9jH֜jʗQVy;eJ߼q0u#YѓLZ6B<꽐-*!Rx׏+҇My[?W**=  r t"މ2${oX:GQD%[x4nG5mƖ7Vp•bѤߩXt$~.6&Ssk60,.#8GG9 Fm$("nZP%| Ev@K8BBlad 9nr[H󛋮!uYDNLtD 52ZR~SGp&Ng}SMU쓎!GM#0q.M칏L0gߥ,zˮ#"ډK5W$sN噂VTB⛢0ACiwO4ͣS0NSCap=Y,lazFͷaif!oMzڎ9ϔ`緐SMWnTwж *c 3lYXހ cl}jڻDB4T=U ܳO:{*l6ew[%"Lbg *B|^ 7k iW7`66ٛVS},}nHTaRƑJbm>,2Bj؂^ tkp}iaTsJҚz&6ф=gIq=8M]Kf WI\O8!EIb} pFQ(LG9FL~! +[0 FfI%!W'Bnж%pojD,PVN'ILw]xC6,#}5\T ?oRs<5g0Cf `iG`1c\BwF([yju({=U}Mm=[ƆϵY[wQ/*Wt*8/"Tl"jI"egёq/ZusKhdTu-m(Ȏ  ^YC~7!짼I?ζ2zދ`Of/Fio9dђlwt,> ?RV +~yJ?" o=Clt'iOﲯɯKS.pa +cfWnZt755Kw{kwl629WgL-O 'n05 &d6X1F^K?P7sE*:&mHۿ>86O5/,<+\` F *ﻍ" _ARZ6sALZb5#Nm7)8[87Û雒!vt 7/ů]㜌a'(`1jTz?+hje 8 j MM5⃛l| 68{45c/i4'Hcĝ +Cls<5?VV˹]IG 97kU[2\ּvkR4&T:Y$=v?4r1"LC~??J;|S{>T-Efey3'}DIA'yuiJDRiw@zEo|eǶ0ȏ Hp'*QuLbTC@jUЮl[ZU\TLt C+Ÿ"i T6>biZ)pVg*$Io,1W81nCOU&.I-0 ?H9.OTlp0ĻTӅg}ÚZ8 t% +/x}?;O8X2wcV6:Nu'OvhKOxnBfp&2p6;J<{zMvZ;N'@W~EQs3y;\,l!H@jrR_s*%d _K6/s'8En> &j .-o"ii7ʡjPrߴAE:E۬,pdwfn;mbK[gY'<E9QN(QzF2  BPBOHLz9=C6G TDd%@sGsA FB0gIRVLt6o- v0{o%D.EVP!|)tvyr˕%<ބ2'2Q C&ORhB-BSt}EdH6s·&hm* Br(ͦBc"n"luX sqK6]7z@+/{HvXmgk7%G%< zc^V >(":gmwVB5sY@ ԌjS2pU^V8`Q NyN7=0>"QG޽,Xf,K " t8`MNY*d' }'ɊbDV鎗\KgkmVjީI3U!yÚv>HLGIXtEwFՍt|V8&%w#8,mG s!m.ԣvg9^@5ۘP>,%U}l.˂p4$nTVUX1*^&NEمsΰ |30.Q1w,nxdRVe3¹ 'H9^fݩ&7|r ^m+|z*Ȫb,sji}}^Y2Su!hf7d'iJ+wk<^whufe!- Y'v8'coYn9L)=C~E(l+ՐB%O|&>u"QI!6ZWPWn(X98Ѿrףnd)>0~`^i>2>YC \%=F\ϒ%5Nuxy߮AѹόZ2vRQ-g#mkpv`Y8 SEpad7!ܱ&pMٿ*%aCq(?&Halu#5iv=QNIp-5hwf`s< QL}I gZ)}9*K?)d~;fO*_Mu 1HB&Grɫ㗫j*1 fhiD՞YН"ucRA֞ U뽂Ė"˵v5Eyg.<o(~S]whTBA!FPH#(n$7a(}]r2p쐅nBUUrSq7+fW _Yo[}5=-8  0(y xu&} O&`:@  `-IN|0 `J;C^p07HX`P (8>( c Kp#|d`30ˁ^cqX:L꬛X]^YUW`/+ѕB٭V?&+וa><?K)z̛²RȱV:N)'! !teR<{Q9;|F(nD)a*<3V303R#Ϸ(劋#cjE0,*Fc0fYg^b6@%u35k07O1FG읒DʑʠհțF36b 'MMyjԴ̸虷Ϻ#λbgϙ{w\|~^1$ON1.H[x}Lӗf,^o+VZƲ6/Zȶ~{mظi?Ru5bˊJYc_2wA"o50njqEjE7fY99,ڹRĪevÄA.[$#+pW&e)iscbg&,EyLBWbai8,0$ d⢵v}l[ͳBVKv)kcI oUpevZJt|I yc 3bK ]4y2.r¢ Zx.ӕBV4VQi[d).zd 7(Y!n-u8?t YD-)`뭐;Vns)Y0h)rθ#~+#mJ UZڹ<*H`JqRD M>2n]ܒg%R`uJ;o2l! ]Vgu-0+%N VK9}:n,*oͿN9o(x'ID7{W}4dbg|`|}] Ey~q6n*F q][kB>.R| kav ‘Tȡ"0;BTÝ+*7Z~O?dke%Rbcܸ!Z8X˗|O0C 鍎`1* X]Vert=IBYf1`}^gZ Wlc鏠\)iJhFKIp*å𬔞{vóJz~;w={~9xQY XkjjQ [XoaQ6nX UMPîKJz Q'?7Mg7}Z=d7 ? ?솫,;F;P>20:;kIӇwȣ=O<~3y^|{_ͫ}wط7[p=vğN:}潳Ö>>ϟ|z/x:םv+~}3DC3<7.!:D%$o?>lc2ݑfBKM d"<1qfm=/n 33[U s/WLhetE'a~uh{-1_|0H0[H"򴬐WH~RORIŴc< 0K6be3XBfվd x3x@"K\+'~fØ G:MILfqi]R-"8Aр Zi2Z Z ~K/\߽I֒l$+U,-+cx@xˀ 01̳O\;.J{Nr" Gaj`x_ L?<׃{Nz10s c>0O _hDÐtxL5 nJ20EIOxFw?_|?2(3K^^:t{Xsg 3yf^?(5mY=h:=NJn ܟ?vos}W>/!˹=tzYyW37[ku򏝭,-Z֚Lw̒Y{q֌&c"˽'lKZf(*]Wl+$LLhLVae2M j*犭EŖ+1n|-ʳgX tY-W; 8;eFhҪo'8S1mrYI $\TT Y$9'q?q',5Xʼ M ѻ˼x5)ۡiBsqS[2'ːVXrYf.vݗ2F![`0iVK99`#@c%ČUf(_=yvk  @x30mRa±eM dYɘ rY<|NSg߉K"կՅ@L mM-_Tfɗa4 8{7HRi~FyQ)dXq`3S d_,"E6S.ʷ&ZLc<3ke];/~_ XYto@"7vBxAmö^V^/_=q2X%߲"*8'IR8t#P̯K;Vy1z~%}>irC?QK'X(eR uh iv`E?yү6K8cIbe3}Y Mb2D-vY>u Y{T$1.6. RRd034K t;$PZV$]{}N2q^RaxwM 8v?=8E5TH.uODQ@4b!(Oa* #EW#嫕F$OHI{n,3$7[?G*XǍLĶ]5XpRS w(G_J%NJJ!-mmsO?Tޟv >tCos!P( t\z57o")uHݪgp n|k7n0~k{n< ϭ:{jJx:fǶ:ٖOZ0̝[i=d)j1>}1WB_20IT)עõW0f? .*p#𥁬ůE-] .4Q 3N!pVw)N? . Ml~iuY.qDˆJzC?s?4K;k3~ҘDZZ@Ŭ.,)4 72D.AOxox@ɩϛXejPKS&setuptools/gui-64.exe{xT0~&3Ln7`P40P琉Ɗ"V49&d;ֶWk*&rp T}#@p=֞I&y>2g}]{mOm%$I63MIZ%>]3Hz;}˸Uq3_ZP}w?*g?{Hs^W3?sC;9;;c/龫6$|l›[s-|ZyW˃ |Iq4MvC"S eK҇2_ĵOES$Ɏ?RSZ`$ J\4)yX$Gb<ɓ{kB_,xA>AO߿ lC wa͝]L&fdFkp򎼮vG5򰩖2WO`&ie sٽ*_Wd]Xuln3bUj fl3; 5]M٪KtA!ۅ^ރUPhpRE!w*e*[dTlT6 &RTPf7%anQ@ewC~5rQ5+Uv<Ԫ YU.mM>sv#ԪR#!7` /~OthjvsB,qHr}qCm`(,]@Aqݮ-٪Z[fSsToKEf"XR ْDӹW."{'%Tb{_Yo*kQY_f=!1{]pdjL7u5DA@=ʎ*ᥒ.ЪBs5S eЄQ)ȇW_vO^/"bsl|]}}vY3Vޖ1}U?J"KS%R&) 7s xVyI1Mv>a&մYc,RM0W| OC w@Gt #$*&g:$)r ,'4 <Qv6[U,i-ğOk `.{ ,T}I'P # w52CeAw λ!nOTwQ텉jGڐ3-Fة@9\~#,KG^˦n0 omz,*P M#8>RUurbC͢Z3r lʷ@A9IHf([}B!@ [DY)Df$HPe{RXňNaaƁkLfk4 $P1|UPHb'v:@)FY*Tn7 El3Qۗ]57zջRW5 65[6HH1)SGX5JW=DV$)la2+yZ*Y7f㰺/Tn |1\\uh 5VP.Rͦ&vAMw0[Y~"(\xHq-S{L8m m cK5VeTHSfƨ! LA?mk-iv1m8yl7C K6CV9 3k_"%Ͻb"l#_h|cJxOpiYLtXeb " g:F|VRd2-˾ ~jP }yfXayQnWmϕfvB(IFu"AE8kx${ 8"k|rlnejz `Cp6"30r";U 4:!AVN5b-RF>kB~$iPٽr@%ۋ pٳ{ [11뉔yHL[5QjmZTc}j4,w;%! J"587x^ǡ q2f/١60 "jUs;!Vmn Ɯ=D-ջb Tgw/ |C]ګ5]>6BDssTc5ɱ 52tI86Te{FCZ=/S+6J^eQy) @`ހ>CFR P,5y"#jo8}B>Gm7"МTyk-w$ }a@>7wn~GōՖF;D*Qi5v)k WzxI;wp.bUlտ+x2jsU!`]X4Z* 00nȁr 8ݰ:<<8u_;\oU1"؍?T:GY喢3) SYa ֧ir88z\KXV56atp=mJsoY q,VKb(KkڵրQC W~qZw_Wx~Y1zM__<2 c1CD*LenR=;`s*JҴ \; sUH y0.L!H9w@"f=v[ho ˃dy%ق]0ֽ;hm(o QYqSuKZB8ОMJ}"ZKL^ < >24HsUzi2r6 ynth|SeIpާiгc3 Tq-#=AzM^MmpлIRr/h3Xa{@$=I" ڠ3ߘa9;pIp#S  m̩U~̋IRhhCxvG,1*T8`õ{QE; 3vB NX˞:[K:Y~q4fS#V8Dߦzha&A,zz'?jrTNaDZ*@pHhlk?-NaP25Yס|s!WbKߏI..R;rM1AЋ^_Cg' cc#ӵ*I%i! OwAµ(TWFY)6d2 /5 P#;2 YPk@>.~FqJPw{w5W:a7'ځ*ڠtvmV1r\ V:^X`ƻÊޓB9<0$;sՆ mTZs뛔<``;Pr`,' ljWQhl{&vmBw}I:4pء"BRKٲolTiPPӨ5Fm6vh煺 jÁxXpB]z-K̵є$A`d .jJq Q5;-h9* 9>̅P<6&R įFtVE0E,db)X/(q`+w &B ADH1%%ےʪƴsP٣AO0% #.Bz/6#{<24uuE6f,eGlЙ:`Ĺuy 5&#*әا}%ڈd6+al`<m,r$D5BډBf\Hivs1;Q(x_E8{pd]̽tE?)0bdk24}7]';P3A/נIx6$Vf ``"8FQ&!0$xm/p/ A>i:'4*_/!bi! SfΆ7PtKzJj#+;Di#_}QоsP񬋿"1E< GO."c{´V\ ۛ5V&Is_>C?wT]۪Zg_X"Vg` 5/9XpТ8g_hrטM6*pT`_/&iYt;_}8S4NO@g]Y|sF'7'Ü_Ο1GaB*$YiW)_l\4.6ũAk>h&þE?'Y'{ $?Ax&!, E$,lglnQR^*W>ءOם4@C\N4oaib:wA4aS:T?m奴1 'Ȯhd0QBfD*̺>67vy͢ gBr،O+~$Wy=Vz{*ӔKJZ:ۣM Gbٛ@8PjmVFjira⃹*Y|%^!#JhXȡ? Vջ[C"f,L,Rwqazy02qn{ԓa¶hQV"3l%[l blDel.vcb>@\3RrN/b[ S H'y  *o"V]g2M :sA< ȁUR\c\Zj+by]+Btk,Ŵkٱ,8p/kcꢨ}u[ͼ0¸l5:ޟR4S|TeQ-+`,&-+ O]$ZfA9-4Q=W$y7a[]'l8]G&NKڃR<}`.,{{~~ ý?~Q,x ; g@њ| I*|V jc-.v!M*#n3Mf$xlYF zX 4-uE+wJ֪b3l=d),0ޅcs2GkxC]XğjR] 4tIJ5G/IC帶Ww{c3>+ ǧ4L9 ]E(kѐ͊\~%7u:Z4Xm.{ #a|*Ǭ ۤW[Hz*#;Ij8nfMwz1 :⁋X"io"\"h8fkB =O.+Rp(r2Xm)C)947j=v6[9\!6$%Rxklj*/2πU#}{Ot0,:hjLa{Ct֑C*v+i5lۀ<9סDժu0.zDA]}% K䕥=-XG@@ QJz͏oxg-q|U]+ɏ+7֥bhpZ1p߲mFr0 п)#h=r{F.(z\*Zuw2_ߪcq028"Ge-\ hhf;?:pU"PH* } M~w@p.ݨdi~,`KiC(u熯Lit>4 )rE>*3JLu _V*WK--{vwRG{7gPVӳԡT/KGKpw:a Unzuk. >k0vFO2bmv*kFla\VD*oʤ}&$5Y |Uӕ8EqJ|%l(PԢ, 뎥*.E &SjyGj _G$ׄE -c2Q\vWm .HEuSOЏ +9G"A\`O!tϒkfd^LC kE|@xRcQW4"|t^wCz[/6uM"p!|uh֯@;" 7Ys@Hȿ>ExnnS)|Ċ/e‚ T];7yqČq%?6&6]8lPj_2ֆ.ʂ<Qc LeYq60}0ϐq3MSl 6Fl5aDK|k >vYi~{|>a hSwl]tɪE5+V"'\џA.h+UZ.Fs EE7;9z%@r'ڱ:同OwiD5'B\~&mm>%| PC)dN0{3@ˡ#JND,d@hRJ9(q"4 {wLlɪ3D.M %𛯍ߋ![ Q9^U4U,ShM=EQ),Y3A0vRmlO@7+|)l#:s\8B: oǽ%3m(>B`ml v) J+KjqLSi*N( ?R?S0 bq'hdBp%ȡM5eh[ysM-/X_+,ʓyDH4OvF}@ ~PN3FHVw 0J+UUgf |[ L#S/|d.+Fds&ĒJ cYuTtzOkU3UG ,,Y*o1K.Z2I_+հG^QoX/nXujdFqXfqV,&c^يnAEiMRM/TbVȏTg{zjkZk\eV[f{$pJ.աXڏ Xogfl~K.}Uu~Q!MxB"d'琔YAt T-kw1n҉eZ26 e4bGt澅Rtoůo$_V>QSxeu+ĮZhWI\GeGA8Yׅ2Q¼Y(W{Daej9]z dG DkG|ooۍ*DFOUJ ~G0 Rէo5 {"F_ #nSr[7'҇Rz>')Kyy|d)_Ʒq8^?3EDs=^IE۾.4wqNל[Q}}LhlA0aG`61䘆sOm"~PǦK55לT'ƗA֭E[Mj (º{K 8 P|xPWE|@O 3w"M30oM^_(׭wӮQxI7j1tVNkt87`p}'@! [{m~}W4uS GrlEZzs`E֘!ieײ.%r[/j6AUn%@} a.U+&Y3 وŞ$ou /eA/avc_SpSS<`EԘ.ݘg@DfyeT8/fs[!ߌAjSoWFSX OiQ#8G^S7I{G CJz2&9ǝgK<_)/tffzk( B3%ײk:2~ƙ]-P^D~hURӥL)0#E"q;Qed%i.J)78yb#Axa'M$ M*@ _D&l/O[A>CݘwVqq_|ͪ>`7Sׁ ]tVNJKe%1''G@}%NI{{ȴujL/-o$:k„X"I8mts<JxY_MRwԘ5kv,B3_(9 ^L"c*>]KcY٧lŊcKxI>2Q\ vȡ#bAqJZ%?dZj-M)xdBHi=KQhk"_X+](IUkC gkDQ@t™8"68rcʫfԮG1Iw͋ŸbL[x]$L k/ƁE.2: >kG>54GHU䕍6s_ܣE1;?Ug+8dяi VTkVr=>*;]ۇ (0 pA7$qz6!eAmYX}}s w;_^qP]h=ꯍm -x;>JK ﳫHDDv )*5~TFxuKqj~eRzxm04ඞb% ǢĞbK Y0'X2Φ{ jDAG-t>Oy7C0Í5a1a4l,y9kIrD~і)uA˽1 `(fmxsymx[ lmx1jxNP#ox˃4GL(OC1hC9[T;SA&1~QEb|4=-{mfãmqg!nu[8LYg'MQPm| *MPow/a|5'[9腲SugM7$oo Y}cP7vF *,J \Ȃ[P䕶xXuӞfiO^(_dZվ L#ZbC0VĆ)mRLwa0n`PZ%VPezq YB(+He &lcVܮSapvN=߿dœ/XM j/_iyjygWcp(x9Zy2|Z6_Oidcv5XG] 9r(L8g@\&&z,B&QL%65BIʒPǞgmc W}Ա蒆~T /^~,^; ۚH=g*~r?FC؞ bd``A ?Qj~;.?KÂ}h؉*pY0kyVj|ٲF7QqY薕"X%CMC&k RKoB|j ~o"H3?qbrIօ@??.ߙ8#fw&\:ݧ17d_(PIwbЁȵy{\sbР%?7V>)΋Hy]w?$JT^^5|(zA~L O#9)G(Zgr:0]ӷw{E.ymGfjL;ۨ UAſtQ~mlO+ppC$mO:acE)IEMf$,2̿ӦxI> FrCO5/7$]EwQjqhϡYp:Ux꫋𬞞Fл!O~hc[\ k"v 7D^9+HP+٧nI")z+dM J+>h28Z{KGcL- gx |lv'·nO6=& NvTOQ>a :o#`:^4E.æZ_t P~*&_R <``6NQ8}fs5p:_ (lsxi ݯgߓ[62n; VȚtĹB}?4#4q4m<>ҦIg,z*q4$1W4mxC OȡU^ע*y`ί=5&# ?% cۧBvYCY5iT2F 5 MUtlZ:r$()_|6aR4&a^,]/" ,ZZ~hGcp@W?[xjY;>_XޤZa$yhiB={1u6Bfz-g/x x\f?_b7=ŸgeJExЀ< A\a`նhaH֦fƒ)[ӤFKKto'S))O^K׏h*oN70D~T7f3.&}LM6H[ C5lw,g Q=5[Ԧx@ic5]cKfjV ro@ u7,f,[Gc`6Fo5E1hGg5Ѩfn7L=ӕɒ*=a8wkdUT^!'jx}8nEzʠAVF9`-*ay~q}P pf жOف76e%lԆrr 6~e:CKBF~8>K^)n;kgm}#|6?Fc3xc}X=!⵪r1[қ ǯ>hx-˶5xa YP Ȟ7QQr(}ٱx67|j0??7vS,m cax`x_ `FljXT @>%6Ae}CEEO+C|`W q3om:;|wW^~NLۄWb;D“"M T{J+/A'k:o}~9V3nIa!>3Z#|Z@~c7|DaF7NaDe.JAh/a+m mf(z+1?tpCif6ǮSS60d=\@0f:f'Xv56De3&kx3i$(ϓ@G h4LBMzk Ԭ0;iyR,7s'P7tV~SܝH XxzQi* W:'}23r٤a\,Eo:E'A 4+ceYA@YJ&R|OڔBʓEOW/[J_vlx]m7b:Lg-B2['dOsTɡ,l(ѷWlFcP"dF(*D:sr)(1HnAKJjʡE)(h$.RcdPe)nO5)ƒeRÃA ~lŸٱ^]`ƀugf\/W6.BLmrt)'pE Va\DvdfOpU'%*./88B] wO5}4ȲP 8~t~Ht(N('Kܾ4p%ސꫝwdJGJ6z7UBCLe#^DB} S1ɘ7m$FcJR+8FE>wlNȴl\X~H$fl5*F1 &Xm 굸qZc5Drx \s/"+B0}4Tl#rZP?c/Ρ c_kA =7ixUOWDn9ەF7T[zƩzf0lRcINE ,gMzaR jx f̓X]}E[hg5S-#& ~f B$:hQ~1Z~GN5$z6zFַK9cc . Son8^nn/ Q"awߞ KX~|:7C33\/juX.1'1k7mމL3D_U5ٺuEMuW}V6Iz8؃0<߃\+8,Zn `;!b=1' r ޽DD)w斉P ؂~'d!h cyZ' ZA>oy=߈< ~u40c}G3o|āubH~xv`H!ji199.dΧM! ?m،7h">zGLJړ/S <3*Hf^.]y*#IQ@֕8?2Eh7e+Rf5 6QkJ@_ 8ߝ89THR}P@]Љ6D/nԯ?tzDE&ny`RU&8MO\RCwٶ kr>joiҩ3eFm2=Z*y2|S|Jw\c`1ٴ#w3bb9f*кUJa@ B7\ֆpߴѣ8:,^hUvVdJCSo+P57C#.zẢpi_;?ߌ}s^ɲhjݧ"b"@6eɭj?oYxc l;(Ӟ;5 IfwSF-|Ggs@+_oT%y~tu)DKٞ`4.x$|үFՋ)nY#>&')Khǻe:4٬]etG.{-\a9 uw~h5֐ߠoT K3.7@lTTЍ5D*R]^$nk=MeV?c3.Rh C4/GTr6dYY觇_]v8 ΈʁսhQd۰JBŏ 71kNkk)nw&F1Y[YoAU}ә*'L[wxae'zE4>r/DsZ}nSt Aۍ;8F úUcss19*7+6ܗyŌSx-5LBLm'+xab`l0M8%l,VG|,O=^AI$~jӌmaiXCG_tE<ǵˡ7@ ݨ4Ol]zȀ2{] ߨY&z:z&A~\w +e~v<ȢEDi0ϟ xYT6Ů0Kbb}UoW"mC PV w80'<9~tto6in"FEe DdNTiSO%*=b?iEE0|@hĉܛ9k'W'Okx9kRA|ŵv5p(|~3`GvLGq+Df-#`ՐsD7WK@ ӱ ѩa# dN*Af(JoZ}7+ʅVy 9ϟS4ߨQ̱G% ʍA`3r0*^9q._$/3[03H_%|5Pͱ@u>d_*\}[ lMMjDS&&l 2S8K _Ώ?{ 5C (`8WISi/PEb~`.IOCvb8Ǹۍq.!r0 Ӝg j&x~LobSi7)ǿ$="[D@@_!?E`A?@!,aX̫=u5F0>[7{q؅"_(ȧKW";DSx7;E_0x"m";zF-xP,tYƣ|1^a:|X|s|+)x"t>i#Yִj9]f}vဘ"&br )bpcAJ[1DJ3 b:D̋"8r""bDLAzQ!f㍾ kŎfȁBg5Pp{#kwNݮS꤀YO=T 4` $nz{a)eKkZAA`LkcPtxAdA7<0ڔhgaJ2f@r\*VJW{"qxǢΊ~agvvz5V1J%4pxX$kO! %>7e~[jyπmN {} Zw͋5<4ǒw . 2Ŗ_($Y>ogEzV\8_U/L)ڕ 9nWKؔ`si`>| 2[ DQ rИ!>cYܢʭ l֓V2.naPtgn1c0:ewOy$b!smZP4J64fn?rzw=)4yO1r|d8/6*^D{@4`b?μQq!e9vȁCsv*Tl=az*ubTF|KgkDgݭLDOJE@KRds?/6D=}괘n:U{o'2PWUQ|v-ytbls>z$g%|~p~|[UUukM:hNĄ$6*d"BW1qAʌI,E;/q\wM6IrIHDs6 B&7yM^NU:uYvmA_ 5̻<ރy z_O;6nLIpnKC+ xo{l?2Vֳ;aS}{뙨kv\c6:T~mvM0sq1uMOn鞖ӨG94g3hpӖ7B4hy0 [/y07;)!==avJp >Ead"?*ejwWYKbub), QR`]mCd =$?NBK*{sCb 'G"Y}Tw+e'ׇxVO<$#5q9&mŁgv87`\va|'_ߢS? ݻ 4S穰ƞMjr&P-f#ؙxmv7'7{.Ps օ2 PfYX2 '2/0B$Dut&ze()0n! D%b1a\aZSk{/OWScot$+Ak?|tYaٟE'?zY[1?ʇpaQ^t߉9\S͛UJ8&$dBejQNtZ\ƃԥ-]&|]4 0fSd292BjD\NAIؒMةq{J_o+'t3ek\FGn?f@a۶S[SbۥseR.c(/u:{7?Ϡ5ŶT$a:h:,Iuؾ]"e꥝w niזHu37󈶝b/W2첵٭J:)X1z| Tpԙ)3H.47Pfcw[ {7Vb^GHe ^cc?Q5Ws?>B'']>Eq"h01 DyA؛g]?Ln@,oȽ 2ÞBYu=/E,1r.Ul>\#|'0Hd@7Q ]^ ݠlӹ,E(lN<x`P~o)AGbv< _*%i'OX5q (]"́dO=^e:8_9=Lg>* 11DSs OINxXw8D3akl-Y4;m(Z7^|HvՇNvSx,]Ls/RHsi)ɏׄΤ4ZzƊ$&L,+l8D9$)鼞E3,PRNpBAM{)[gX@f6^ԣx<ѭ]aNDќ@ `PbHB:i} ']NPQ^)vOiK- (`1Ir?L &[pSce&,MH??G Ux(44.b9L Nfm4>QKԳ; 5*ݢə|LdRƉ'bdв{NQ},>N3TUVX}r[z3+i X/[LĐS:請`cM/-HTr](dAnʼn@QT"ܻ{ʠ)0.*@Mτ]fӄܑsᲞ΅Z;PPa<wFV٥(U#>  YB <*plhE%.$BzSl/&\Sur2 h+~m%L66喌,o+Qi>Kc Y: q,KX(ŔOV΋!mk*{7'~Shg63mzPoK]tʼn :Sv;Fz kQRrCJ v5=.>̗],$Nzޏ{9[](.xi$'b@EMN"n,N`Y'Ԕr;} e0ЙvL8rvus5AQux,>cqW>(lxp_H]W΃4`#Աv1Ful{{+ v'# ŽO7l\\?~΃GBAWl92+3[CL+|+C1A7pL2@}N@^7xFݶk~"TO XS |ZPUXӪXg^T@7C>wһsW?\/fm˦i\[\}DHEqvLEQa י"Z(%LF9ub@D?VGCa gp6KYtX^ɋXR4[3a69(2 q;v9&Zo0E<մQomóݠ39_}=`W'RnN'5/F+^Ii ~dTEG"Yͫ/z X5 ٲvV۫;6c)շ.pC uv"jDngwvgp4<1mdU[ QHW,;ǤoqL &6drmQP'm˨߄uDgc54Dǚ͈˿@n\ҹ'n3;-ѪV+2nc=QѩpWW.B5ZRюEᥝs /WBw Di=A. 0649{Cr~z1 'M0]y/- #W6*ڶ<C4oqt_7wȡ6)mpJ R~9_<Yyg] SؐQ_ޣL"aa6LuFt(CHRO \p]Bj̸~Kn)ka+HM)N]j7(QEtN ଣv`qP iŦE?8Pી—Ql!c'*j 4RS*E]!23վܳknסexZ-1NalrZ-/6k}Y#@v:V|a\Gsz =EYBcRc!^{yO~ &2iTs:Ff^R 3SQ:\e;䩒F̯9s%6! ]\JlFT m~O{&,?DY\!xn )]XGsb@ItTO9u?rlK!~* ba+ i^ʂ~sPU =r2:¨2k~rK'tŨL))e;:ݞ@ KiomMvwZR >M}[w/U@tSЕLA=sP^"4z˻)kcVz" :T!W3&&:dy4Fz*)ߤ;PF>kA wܜA0g{9{KCgчNT,NvzZt6'5JoǩKp?]H3)4A҃I,4D<9y/V7Kŕ%Gw}Cr%T}843^^Ei rZg]O@n]ie04;D=EUxTU ZL~$X[鴰@u`)*T|S4ɪ##c-֞=^?YkeZ'†lܶw)A@1L5rvt%76 ]5 qZTS ppkmP'^W,`إl:ƨ!K_RIb>Ku֥ld2+ nc{ԯzUsfx,+L%_vx1xGV՗ô7_gSyK#6U?SCǕfh Ϫ1.uEI N!?6lҋ³~ǢS~ty@>>ij.?(t.Go(ɖ3^DhÝ6pv6FcLTcSn3mԙ6nl;^}x˴vN2wRprASLj 1.MMԻض24o4!gϏƎԬ\$ Fø⒴XV"l^ <x [ 1dU⤉3u2mp=P>t 055x~>1I Ka/OV}[!x9ʰ8MM]ʻY-~ZSrLvTx׹r(c3}VU8ZiA<-K@(i;%U۟x's&Rh.|]up[A& (A795#DBN̦J5LS%S:،(xb+ݩqͦtt];Vd5ÿGqϬqԗupF:)l5)؎ Y+x]ZrqDHqg I"g0/:_GATI`&\\c;;ד ]=`QJZQ Q'^:SJ9u `V ߕGK`[[w|߂w~XR;D}TK93@3zF8vW}XxE‘~KuݢTWVBl#mxՏ/HMb9 j)ZJɗ-N3Suݑ iJJhE%HK ֕o+Nc SRVKjHfg45;%%k?׮m8+i3OD'н.ھ4-3ݒ}4iVi׉ˇh_49?wH;JŒܗ A '5Q۠#;O sJ_r׆t+~^:]}Pʩ ȅhl^3e{{w=3@޸l f'ӪOq:1NG(|r~68kgTBEFȷ/b_!gI[T%v (N4cER8-lj  $ 6*LLգ^C!z@]gOtչ 3:#S8Fq^%BSW$9VmȨ'6;6{+"+!҈Jbɗp#h\(9U ٍ;CvPM/Fɯ/yT<^ΧD?v.ҭr$׎!9?ݓm3 C$?o%GiMc쐚Qi_ \J-$p &4WSu-\;ă&~ڠ WM 8zڶ F*($q2ң$`|!PE (]9hee@\Y_ˠRl(]0mw߭$]iD?"D ,fzr懨6/\!gWz|39b5ToSBi*.uֺa&4~SfcMyZ\IZ5(S.^.]*yv0M DcBm(wԅ~Lɹ՛KJWFy'Y鹠tbU?Ε4__FWf՟/ ewgLɽ褺(κQ67FqV\D` J9jM5v !Pgr[i( a WA;/GmRT0\X՛L.J4\f}HmeU,Zj1Cz#f>;.e;p&QQMwB]TRnw Yxl 19jy/ "L/94G@DHË^B6,wa-dkrC:( LQa`-WFu^;;ZgI-@\Un/[H3p0͗G3%|3B>h`#7=)"(Î7BӃ|;5O< JpL)o3m%)|@бOʹ]K@%!n.`/G;z/b7! et |1PJ}Hy-PzK{9hݳ*šsOSesǨD\4->?  YsT1M=hAW>!.S/5^?]?4{6cNY>مoK{$(ĎշDQ|yLkO`iEt۵W |eꔶgڎ]t]1L| /01JΙrex&?q+ b)6EwP o!PS:O2n|9!cqԇ_ݭf$+w+L9waaSMBeK/_V6 QͲp`S:p& ( J6~M]x}kꤜt{MU7܅0={W:8f yS轓V:5֛Lo e'JƴΏ~^@\!6ς<פjP=EYXX5.˩66aiGZQ g0% ]A&>zCiE܇Ӥ`1VQߠq@rf.[2ZjwρYS?b9lDP974YNGJʫ%üs`v*ZsksM]k !jj|z Hd4P_Fwp"DŲ{r< X|k\J 2V];Q_\*5}(Aefu.o]ޥϬrKPV%s`lpp- ,]vIfѸB)i]u@}EoTT6s)aa0'}irI_GLj4O:9UW%"h:+޸A'=zIrjXX *-J…HkV9 jֈ_翨˙يvJLa{%l:3ՇT"陏MF$IG,)Lw$k$,>Cv2gϙq )){U`uX;gPW00s%,`S괦Ma_;ΐqq$ʰa[1Ɉ:TBhI4Qo7/и$Ƣ,°b|\3ROp YQj1%-` ﱙ|\SNGlJBDc۬zll`ÀsSmTC|x!2j)tI [nCꈘ"? &Hݚľ@_ap)C/°Zm˯c'̅eahJc\Qt:p`zFH^'^kU'uߤw6t{d/KYxI}HԵ⡧ݕ&jV#i4]tSS̴1ߝ/azQ $B _vJ(7#0B1c. p; Edކi`66rʥ,"0y ')yA׈"&)i 0ض>x> Isyf>p><ЊWI8֛i$ E_IjXٮD0?.`׍GPAEɤnbvwE7 Kq9juUFpe D=f6Fw&qjꅡnTnWƨwbW}J;o]&Of`uws_h <= rmIzԛ骾|ߛ IX(H/ wu[y'{ͬr*9HE]uAu$Au81Xjڨ+n8QT/A5hA/oHI}b$fq(jH&eòaY,rX94m!YY-"](tқjo Vl\g}>XW2 ;Ӷ[[qnN PCOun,T-Ni2Mz E(Y*;}Jڳ@BUlwKyxɼW0];gȤ2e|!!Gޑ 2?vn"fY#=SijwIOw#w-D9wdh ]0G/>4&ҘˬaQ>|>je3|̊/;LkCcCeSLtnS>zp39q9~}r8Wpp M}y~N0{9\n氙Ï9O $+IJ"Ky)$Kˋ, r@ fy r_f)WJ<__ Ͱ"d$F"R>| kr욎Paf 'Z>### קlb΋0_ʆbyK 孂Bb00_ojh{lP# ƨX9W>}0p`WIzî6#F=f7ʚ66~IΌ&2LugM993fʻ_~ǝw.,)){nټ =JAj-Zd)=~ƟO,Jy,g!$7HJr2MYi.oH36(xeB)4uIAe^U gW@R*(*X-je} S(-a.Tz0˅BIJKVS0R W@`GÌP˃18:!Lw %Jϼe -E|aJK҂{i\ (y e8얅/LAUT PֹHTe@Ŗ‚2 j q^X1Kްek,by!SgAR啂O,z:ʲ JYٱܣܴkWsJ,ނB ȶSר.,5\VB ]Q^#4TSC;2)XNGhx ,% )Ҋ.mU E?z5i@ 7(ǡw$TtP ?*s]"BZ,<'OPNhUKy@B EHsC`G** :F ]S"M 'x|Jq)En X C'5xʡ%+y^ o1|o+ '`V A0uÒWQYQ,XfҦE g#F a"@|nył!_% 1gx)*}]bož.bzY5L_^3pmm- Z]faW[gU pv6YUXᒒ!]^6\7,w.~!i~_h!_Ƶ6-M_D?/렀/KQ.Ne5?n7]C#>x׮{ŗ/?ظi[[иmMwٻo-ޡG|[?gUߜj8}?t%^E w/@{Q.׸yU~YgABQEE#%;G SO~3К C#V LhzSGJq"WX9GS+ya6aZ!`|Cr WT@ӹWM/}A! IH$FC7\}uǭB!$9BCh~/ّ}@8n(Ϡ%MXT֪jST-!qȀى } 񩄴0ޫ!OyY$i$MOhbjFGekµ$ܧMkIkTIOLcÉitWc#ýqd@ KƷj0{ StGk#{E^Eؾ&Dy(+kYWx j,RG,3@߀v:^9ḅ4Z9:,Uh EFDK a $-GIDcH_mbl0x#óY[7bّD,B"pC,^$okBKG]>Pv#6׻I $? OРI4%>5F-wj(g j^k'7ֈ0ѐGa Zǿv |Wy+|vJ0%kܭE995>[#m$-CL@?EQ@GFbEkI&$%#- AiMͫ4B4b,o`=@ޒ ˦bH+g5 2|UWco&R' GqJȆ[;[;ⰺ2S^k }!{{i61B{yz\+-ohYG'n Il>![=N$jɳ]f33¸F H__VSKLCTń_#ϗ7#9 5@݁@CBYNj}$C2@s= bxemF%'W8Мz-ҍt ,]5p/k8IU܏'Gc C,IXl ?o;k%S0襄LogIh7k՘\ __Mt,1Xb$$>ƒ1xȿ7W/;=5c5Eߠ8i0 tn7iTC3 }H^VcA-5PڍՒT捏B?z̚>Fpj56D{Yi$h 4b:%b4GK /9k 1 3zMns7zlLcaRQp)S_ hXFfxދ< ߝ<|VDŽwDț&Pʍ#w dx_8 Ed}mMǷwHz1鳝c?+'+n0+&+מڧ%7.߬4q:k 41ǡq.4aZ6VC4"CJHaVf<[Up΄:΍&q[xNzG^K0L{|' rX?+sѭQ^BS =^ 1Dݢͬtzfsx|PxlȵXh +*ޛa+4<>^A!M*| X FS灒?K͎Br-K6V!E#x3>7T9 -"x%xfBvMe=ā6msB!Rt5J}#g'u( v:PwzfpK:ʋr <3G@I Fw. Y=ĘEVgyK |YxSWwn= R^jnl¹_ r(ӭR觕D@aYzʏء&Pbe Ɵ${|@Zwz j=I,wnZPPn;yhþ;J+`ݙDU"/&I**HBV3;!Ye}PeȈp/1S!0x |`igvv?BCzfdji1GRL \Wi;v|UG&O~L)<^_~]jw)0y`ۿg+V=&O0>8DTf8QD8BM<]3w ~=;=۳y=Y<[yeA,㸆e.~_';Pin<%w.: suj{1K+_̿g/4wy/\~~8ϼವڗTS7>s_vA;o7B~l?9%P-[]ÿwZbpQK]ߚg;kE_`[:[RqUJ oy?b>#yfW|nWø=N {q{ uܞ%ܞvnnﯦwpzn+}0[fWeifR7nRvU)U ܞje=-6]"Tz0Fn]:9s8C+¡Cze?㰕9{3 W!왐W k~0h:KS" & ^}R־>1aP#5o*6 pr`X_we1B/kEs{+,J~kDf|^}V<08s -:*kc _-6s( f1!W N[t lo3؇~l> e 3%\|24z ĵc `a3–߳B fND p`v\4 к0{Ccy3P`F𐀧\< B/cKP/N\c G^&d+,T+,UwZ{5V?1zX?Øa>Dh0#Zs>`8z&cÛoٷlK (Q>qCpw(KGp3 nFnFGK˿PKSVHHsetuptools/gui-arm64.exe{\ם?~23r2&)Iڴ<`.i6DͶafV]4idl0M/m7j^^ tAVcTƈ{yf0r|n9|v>s>Dž!H/bPx 渿?G;R_'ō֍{m۳&z{ns2~' +ڿ~xG85k^r o'?怼޸5OZo䵾u۰BJO[wbY(Ѧ:RDֽ.D ]uܼd_f>O_DI|ޠڴg)X.cMThq/_r7}M6~^SIxh;[6~Uu6-׫d,"0؅G%mD[E:)]_ dkt5Wn{jq$K/ș I5;N5#~z z8L!H.O>' 3`u0,ea 9y=Wk2-._\Xzk)84Wm?ǀI8Oi;Jsom6d۷ND͖/6|kQ-5q躭-;8?YGUGh?wh#F ˟z!#iZ$wsт6H|gcRpd'fOV\[|𞛂-%fU&Y5(:x}ʴNtƃ/HGABuѸ^dx͞cG^^\,J\+mLFhuCh,#5B;sU[ 6c=]_7#͞įFgc|7 $,N~ܚgYb$g֧kܙ? g6󯿌↕%+={p{p yiغONO oE>r3ő y<(ߓ$/v~w£TJ_OZ~.>{k$MoPyWzzDz''_s׀}<~gyk9'׬gU'}^G=|YY ڰ?=xw,GXnEjGH6 !"%X,Ȉ!"goZ蜡F~)a#'4b9/t5`݁k\ ڟc 5!]$j5W4Pu߀O{6i}_,YXe5Eo>mϦSߞFȠ.fł⏋{>[Cԃn6݄c2W$DYqxhߝ`Yww0O*dWsA0'VUІo~0ǷA'=]at3jqɥ;R$Zzr0;,&iӮ_\!o<GeGT67h;ãcؚƇccZ76{9>9.k\nP. A8YwTOdYQN;'#=t$'U3AyW8 5=7툇}956.xK|L1$:d?]V[VO7m_blUgxx_uWh\Hd|+68;KJskƸ@4U)~N-W?r2'Jca!}Wk<3-M99K:K{KBWb}V9W~{Zw4 2N3E Td~yxeF7L|/{ʐ=)"hD1Ž|EDž"&:e<弍'\40/EwVS_-{5_T88 3\,J6w8o|;Q>̊c8K}B?ϡdM˕Z NEG$O%/ ODgSD@Š>7;6т>e:9'@7Zmm}R:}q2Zμ?IyG XPg_:I0G-:<~őaF.E;= z=1<(4x)v %U[\㵘õ%#՗/p-ն.{έa-[ z0)bY13sjHs4 lp_ ݢg9n>g')g2nx4oI>@͑pSF?db~hr*89ͰOeN-# "0 lĵ!GF1~NA^θ+m}Ü h[J`tc~?jx@Xiw3-Ҝ;uuhl+Bk9^QG,X8nOYX2yB4# }pp\yqW?xGhI'4ckZH]Vwf4lBIst;PrPiD&lx@Ӏwb؈+y؁ "-1Jgy]6\`~0I?~h3"˝y:Eibc_6'j5w%wvjiˬdh9sϱ$2dݤ?w_V :?f?w+:Ҋ{3w c[c1vL9"\n>AwW=6nz8)v#U-" =䴧20B%ɂ,i _wN32vPR0(*uA<*t<՗KDR3<v:17J]zG/.s0=iIzY]}XSi  'cێorՕ"#zG(g-ikvko\܏DĶM_T=jQw+}5awhvFVBrqBfc^(sΣ/@n^9_!>MZpՂlĻ?/$~~Z~QG>:׭xirnbn<|x1Ue"/y-(0;IsVQf%ƲG9*/K3#g^ǰyTXi9+5~?EO.'믐YeFvǪKiMCN:SN1.b|x`_8$a~y̿Gh [sC&th9]%uUMyMݾhorF8Egڜ#Qi`]a²p%:ϵ.6õ(,k!Gv5Bl>)hM,)fc06l{ؓc0M{-s@N8sky5 +}<2Zk~N=o:f#PKzzZxЎ5 q̶W rsL&҇ 3^uש1a'XLȌL`\A\ڼ}rm^,q51ik# Jq[ 2_hɔ#Z4˺RpGSDK/}MeCsL)yП'fd#-Dh"9ybi[t($ WG@?M';@ǃzΰQzi3< u.]Hco,6#监bE 5l3mClVÿ5 )Sfi޾5t5P% t}ͿYe=D}YD~1Dzp_9C=Co. dq ptj##l6q ]hctʠ}5-DxuiOlb^~pzONDo=32O~%hq=gv:Ǟ߈o,OcItUF*Ttl/lS1!G@R7-s@KEG\gjKt}Ɵ'qNں0q2ca̦Dy;CfPY~?*bl˯Õ忀6e -VHq(Y4,eWf2_6v"xq')D?#K׽ vjdwgFqLY y 3; Z[ͬ߶ճ~ۛ!KAc.oF{Ltp4 כ!ΐcN{I1?iA kaayeRDC+ĺ ?ͰXtC*@,5@q#_u0d [3ba/nذpD]}n*-~#D1~7w\܀>eAN:]ՇEfdY^ 3MLӋ4v9r Vd( q˩q by5%M 1s U#)VaK{iˍ{Wh[{ߗ\:d"㺋[D)@DFA[4@txGEߐ;x7TD>(o?&(>lLIT%oIx?I-i/xi!DTvwhE%uqM;=SE_Tȋf"KV:1֞+yeYU o)rV"ߚ_/Te/߲#on?V21@D]qy( ڸtk\Z \tVJ JQڭUE} Bc yzS7ixߊgPLFCX~v9Z>/S#Qn>d1@[;~d{%/+"0ꇎ|a;!^vd[nǷeݚ6N[j}.MUGvzde{oۺٺ gCtPVkJ7lS%-_֝ZH[zveǴm)S҄}f-?JyqmM1Y}t~?.v 9*DCRQݗ#KEVB*//#͹Pd-;Uf$t W+'60?a&c x/x3,x3g7#t;p:q0ߎRǿjK p߆kwW  p=p}83q81n#<3Lqɲtd3r{/ojCz;2i6!7qu*Aԫ!euK''& 8rނݚn0pz>"tsml5<'@Uf=oJǟW^ anYj[C"KEO hK>U Z %"cFZjDܷ$:'{t>hLEϱ?h=]}^:/V4-so4? mL{FZ6`3ol x@TF׊p`Dtu)=(6G712ZGzdy#ݑ /Y42hs:y'?0VtҔ uy%G? ۴Jd1s[K> ?%A?n>BР DK[ʿ6k/ok8:aC|UOhУ d_F VMѤK9 9-kWx7S@e<)gom۬~-c,CrbZ#szD|r()"L~3#lS p->N\6GDi-܁eɵvp5xRDRB=]IҌ{UNѱgsS"y߉&5íTĪR+Y UZu.I-y{,[nmO3Mi^|[ۺi;,\K\(: G5:DfI%NW&1v5(Wϓz}v}GRJ}vZegVYnޟpTb-Goy۠#à۽{mg][ߵRML-7çmxvj.a{Nu~H-'e\f7>dK!syr,\{]x"*Nkh/=-plsL?/>pea]ceJKDya)&,8=6C)pdG~)x8}oďmo)GbMG`{ 2O>{ Q Ω{ZJ6vGvDuOX8JPe>-Yfa}q_R}pkaOMO;ZvTڎiߍ=wfXxaapirk]酫hVN;-ƙJM.3/pSSiq%UAǯj˪eZ:cʬګupЙY{?j et?GPf]ލ"\I+'cPE9^_5fJ׆o%](u]E{kNE3GhlM,zhW!Vjns9 G4UFЪƴ 騣uijsۺ/;7悽enhqvwoƯk(y>h+Y[93SNJz̷1ֽiE S"sj $߫*Kmd?X[C: Σ\րo^x{ m Ur(]߅r&6 QSTve%5@,뚗"룿?.!V+YّZT.E޻7Qij+ ~#4Gv}t11H쭥ZM\=uG~Vj]ii^_M^toX[%m y7߉L1Խx>S4NehX#!I"Q>>sv,mMg8K»_~1KBBR.^+ t,nwDlޭcxy-7y7]m]pzy4yT7Gpl.f^ҩS{Bhs1B 釐"̷0a2d]lHUj]Ϯ[u8Tɴna>ast_|ךx;羛hڄ~w^ [)Ac1ڼc:;x,6~3OTҞ#6ȉߞo771X"_c ػ\:ųц-~jKʵ E1ddK]W¹9ƕcy;پO2-L4{4u~5Ν"{9D}2w?mC涉։Ca4,5Us|sig>M}ob빉Ior]Օ<'I>|5"LZ=ex' 3|Bi?]ӥn۱<ʌ_NmK8beC]4-טﻮ为X]2ykv?q,{=e?Ohdn l3v;q,_T޳Ie0']Ҧ|>G94ځj!?zO;1?Zx޲~#e]t:|vZNevMFe@ۨOHkkW_*b$V\!Em>6c⥊n{}3Ec`/B@E{W(5D Pټf{ #[Z Af}}`Yé@˂hc<%cO%GOz)8Zj:zpCq~gtdH~w s`9 p.D0Cg8.gQg`jD?-w/Dw\|+y1z̸>*c%}F=8 8GTD'')mBDtuD6GwAގ4 z9{29}>)<6ޑ"=طsu&ҟm* _#h|E-WY4'@N}{K!чkivzT> }비1q 뷿oc6C[++^U\[2a|d/h܏z!=Iuw-xی|~k;X+a|Lw' |>o/%{g[v)\Kyy{p KwO2'Ct3*ZL/gJI+&nS/{~ۏ ֺZk*Qޑs!*cCY8qyl7]χ8Nv(MFT44Q9 cI1mIEsCΩ= BX{4U=6U]U!9 9~i[~[̉> =0W@G4WQ`cNҦp}!Ʊɡ*^َ8]V9ِC0y;3d<sdh{z]弎>`v_OŪmf%'IGnhܘiD؋S \߷w'm\Oa:>%.Om8z)~oRk&6L]:JYi)E^oL7\><}Wތ7kH;۳_(/%p"Y+NUIÊo vmWnVҧ{xJڲ*r?Æ▒g|5%"SwɽsDv.ctm"ھSg 1r|сgV}(himztn$-|#㼭OrWͩDd(KȎC7<'ǮkPqƖAơSFɍ"p)'o[FT=[^G:){!2f[hګ%MIv+6Bq#$+niER~ؕlQi@#h[19(ר>9unBL/co募 ߂1=9VL-Xyo_@y]^aY|NU/!n_iFL~}=]S&?:~dL4׹˼2S} yl[W^ivpn_WHeǜ^݅t9;>q8oo=5H[*}iۊ:S2F!#{\*@ =6+Jl^|5rG!:2}8?-X{l%žW2.ˮ-ɌeN:Y1 ~QHn%Sæ;r|7{9V9ʹ`QKutAr0ٌtF|:<;ǭz\XZ;ghɖZӮ$; 7sƗ&1ng|%'=n\y_6u̼1҄&7UmNNw\ }uN^7 ` is#5 c/ 褭yG{].52|˻֢m5a:~g:9XڕC")/2r ]tVd ij5,+x.;MSD,B<-ȵ4nByxކz[lx~ 0qOx#UF<צƈ@/Y,yOr- te8F'~ WUY6?#/'\VBz '/_6^02B0Ҁi&3-س!%gEB}+Y7)uVk}es%tmV'm/[ i\l\>Uwg2#-~]oT=xzb̺Ŗ ׸hzE#bӱ^aW(9ҕ5Kќx~Zym2Vlqߌ侐+ũ=x^^X]'Ղڱt،o?L]z FkdQH |prxo\öׂVsS|lrCW@.pN2Tӎve~y/h*&5ɮW'WGiyC}o]1)mҦ-~(MFs'Q$ɘ99!*~թ*S7*;W9g|5˵{樳5^sZ!˾1o0z;wrCPzwE9N.'.tXʼb]ԗ Wt](*6'?Y4_H\Ppq_jlCnBy#?v|+e_$Q_^RPn;0xzoK{\8iM ƼP`(^=|娤Ӄ.p۹NŸC0l@>jh.ex<=So1ޏK;0p1F;plpbFٔE[N85铠Q C @.0#_%\O~{ c; :M7JDFS{@+Njѧ؇n5tEQ-q\oH>)'ҿ监{PF]ɧ¬ﷀ{gmd 9ۊw6e2/-`<_]<ay=kn֥-473FSLNoyQz.6;yIB]?](F+6a6˵gvv32!K>+@>g礟m<[l,egy|73'{Xls\ڷQN/䒁r613C,F,˙2uZk&ҧ4Rn~an9mH@ozSú3e;d7k2Н}R~L5@>+ڣGD[vNĽg#4ɛ%ys!0.l"OZA&e<]'J\k~D຾8e Ϫ/z+x\ۣ&% 9Ga<3.+83OT@8 yh;f%wij}䯜L暑D?c:R4:Gdy>1hcҔqo;|RTv>[<=>}z&+<2T2{ 0kEEoJ =;} 00 ]⺍ӛAcM~vp<}1`zuFڳ!t9/M'җ# O_[$y' MsssYQHW`1C߃_#/})UgJimC{vK湳kGԹ D)!IÿR_#[.{W^[#'Vޗ+ ;6託lQ>#UKMV=Uev|ISRMZֽlQQ*Ѫ=vN+'L{˝.wƄӕyg}A*G3nXjvz'g7W<;bXz\t8]MeL[6c&;IDGqh|#-[O_YyU}0:+;)ɾp;D0caAWng|Mdj%~=UslT5%:>"E{/{4ǎo_YɨKכb@Amn)OFQ(7XkoMgszZJSH1dҧ֊^v6* cqO+E{t~ܷ &*UuD߯~Q,}+b_}l6Wa/E̎Qڋ7IҒdUiJK_uv36-~|WijVk L٩2nF~L[]95h p>Fc^R1XZ_e )apl'=mg隵xXu1և3{Zigԛڂ_U* {uwGp19肻ؔ{ey2Of651]mbk- +}fmR^p-oCXWpyk6}2SKyzDm9I~'޽9#Wڪh곤6.Rn hxhkIk*VZ4`{5J,u1BerlO5@Gl`Yr~Њ'.Gcs<ǛqdlhߺcvSAY_uY=(%~֪F$ڙ$ ѥg?6h9\0 ދFx3~D/;ҷ)>AՋ2I8ܴYY}cT=,Dzd )[,Yr]؆@C(1V-[1j\/Le;qj"Ϧ <>MjMsr 3wLTn3p [x~`<+*N~Yi)~>Oh=szgpqh;2h$\~2# wʁ;|,8aV10{v_KXE)dVN޼yNrS$C.kCHD4A9)kl}+8k~Zx َy ݐ6L}u" ۀPf|Xo0uQ#}-c,k$^7l 70ޯl.y)sy6L__g]n.w7F]}_u^ᢾ-zN ^yOG{Z))RkAC1Gj?qO_=C{mwb`muJ+i+y_lT]gЧ\Oa3y9t\־uEۘ6;(>ku5?ʟ۴_ރ_ٯc0O/ThfԺ/V~Ȳq_q>B}䭼Bla 豒YZW}!i㤍iߊ1'|6lz-րo0JTpN<(4UoT}ϸx?eKB\Z[U.Z :XI|E'w ;u1>MSxxuا5u\v[YW`}Atx3u]N~xn-C# zrID8 բ{ŸZu\v\ ufqk;fFVitkkq=o3Vlk< ںןkhެlV%ԾKPL 6 _(d%Z<+_ 3m6)y#;IWgYw5΁]"ddYί#9:ɜuj=!?|cq ROI,c/4LFV_ GwYQLs:m`6uy}[89;iߎ@nVk;N̅Cf`ݫW*y.yoDwcF*Ts8BnMi}khw;?kVE V4Mw6J.e}OF̩}Ed7̸Xm5ϟ^lǵ>GS!oo,D9uWɗ.}sB]SCFvӷ9;DiK=wMC !{OWyYTcK쓖hw\E>ϑGgyk1}f]e\wʤo1q>QR+WW>>q?PJ^*IVg߀p-BǫW??A_ U?j+Q.nHs9>|wluF>.tӜYϖ-dmIcR_9#Hl婸1qZxs Ů%e:gԷŪoo>^W+~˟OU]\R}@SޡiN6g@HNov3LN k4xFmx6]=>_# iUS˯Ϝ_ǟ_9c̯YJT)|@[xX6 2f6#.g]$<ګ9ɫ_~mIMc|ov1/ /gնiCrM_1'@%es;'ŀʦH;B\CO_1`P<Rd| hW +vk_@c~)oywo`Lkmj??Yq{XN<~F\9>ߝ~e娘ͧK4ss?'(fcf3̶R8$>*^ٔ!?7Ӡ#}RACF DGEIC } 4su7x1ڕqz~6oכ\-m-mbә-Ǡc |vՋ@dSW`yݤϒ7r8u't*=u_ʀi!صENhJgh/ a㢺=} pfP`x8(Zc( 4m8h҂oA#$'ڒmLTLhCF0&Mz+h(hp~9~|>{k}פYO1^ɕCW%qI~g$ݲSYTt]Yj6CiSf!?Jm:(g̮}x6 ,xV~\qkI؀hߛ\'Z} =| J\b[蝺#9ġyA{'|O=[T};i! ޓ=7@Pb' {~JzO}o싑iod7MB/ye'$&I :ocy֖q=u8Wx<~9#y&q{&Y|Y7x> X.1u93g p}H~1{ c~r\1~׌ t۽7{tGwB7Ii߅)}БQz9G-y^7.?/kK5D?'Mg)Lc a 1Z_(To&|@3=^1 pv\w3R8nG;:&'· ><*t*Tl'gk8ЯlcWD'>G4}]R/!ZAmXi`#]#asr #n%E? >=j\ۏkw]:S.]`ͪ縷ÂJfE>bG|$ 5dk`o+guqGt e)ue_7 }F7˒3~bS& ʧKD4%i" u3^'0Zh~{|xڡ4 Zی9nSx//hZgd3`\p?T8|Սd }e4soU-Jx}K>\`em5EO(&wS} mU;ԇt~9& ]7HO6 C| ozE{ꛩN]ֿE}A^LF_ˠr#ڹҾ`pޯ5; D.?ZrI΋zbC۷}wpE>d{dngVM9kT[Caϖ37\X#`yZ9=K繿}vۚeѹ}^2Z@Nj.SSP̅>k}@mBާjWčZ>ڗ,>ijXE&O.zg6Vt?8gB)?8 W4No\ txq))ʲr1:'սLtΛb8T0%>X'K.NXdcv2"hzLmY: ([!y3sW{XR\tTq~Ld `k KB>όG!zVt>-8>?`I|R}]YdFLD*Ih8[$9d/@䲡qsst^z>׬)N_Xts$u+ j|"r 6g+\ufzgPu[du}OIܾtMj贎I"4bE|{i P?_I:jx2ُh4+JI]$<(yMvϻZpvf Xoi6 ~GR=߆znjS[[06mmi3 nD4IIM[ ZPڣr>S>69I:߹#~9<Vi:-՜A S$8oWt^ n_g_ߜO֏}&C6އMk kkN٭4g 'Ĝ)h"3"ՉXvPK.c3^M^oH"5A5%ɍ-f`Tx!@K*D+Ƽ`ckiYaՙ,\,(J`a뭏.!^z=t)uGЙ%I伐_5 '9D@\޺ u.t3I 륀mB'T2d:]BD8*ZoP@s=kozviotJF}ߥQhp@X1,׭~ 7nT*-Y:[W`}MNFMY#{FyArdE`"^1GeJ>qW"|Hm;B{hN#wMK=IJBmI5B4RjmVjk }I5-zg!qpXquܧ>7$tFѻO wƈwOZ^v `MO0 z+S)#(4xAJ4h Po~bĚ_y_D[>g?78;xAyĝb2{W9:+'}mZK>͖zۉ0g?IA=F^ ;E7wO7hr}V{?͏kkivhWie=[pFv=S\nC$h ̳To}~[eq\rg5=y*X26rk:kj3=qה#/(x/tFos?L8<..+D<1LXÞ\'~N );foR'$&q1j'w QİBEߨB ) O'ϊ{[q SR ”>[T[~d8gq2 >`➙H>=>$7Ȭc!cy2VS}ہX bmQ0+nMvi+,'sԿs,=:oxi&Mzk׵LF6?/WG;3*ҤQq#.+_§AzXoT?>ߏ667p?v,P!>C7TNҺ8B}̢qgc3#չ#:y0UJmjWȁX~qgѦ$w!%[]ߒ*::Ȕ<7 wy3\븒n$qS'Tz@SܾߡOroPIeHr`mJ4OYꟐ&^u~Ec{,1Zhn*q𣪺ecs#M a=(р'FX'8_q56Өl#?GELܯ1a5:q߉?8.C/e{tDۧ{3ɑ$~eyFƖ#|\ "0s?s/uڞ#)shN>ۡEg3Tx݀=CHU?<_p"_ϖ]`=tKY y4ЉxWSBb]Z1p60?48~X?jx `si.5.iڍ57&ln>vl">ֈo}:. % |se}g Y@e ,# HndZMV9J#UfS#dTǑ!!$k]BPƑ1R"c x\.?@5c"lAg2!'H./$ݛxYhB1ӤI#w1Zɕzwx5Pۙ܎oCbtJt*WbVcAАHO^8/YOTzj9O@uj1$|Cc1!y,by2%gtJ&8o}9b$*n* ]QS9}K<$~'e/|$N6 W8%߉΁s'z7|C1Po lBC ?z!DŽ|Ae@K9;V޳>}뒩fK4SbmF_f#m!SkSB"#?n;E!D9F~D웮 j5MeUd/V9VubVy9ڳtc0ReUq|9Ċxǣ<;pPwwAs5[tnvwI*] <ɳJ(ϗOIU% w-n%);Fܗ&HOy4ή],Iu=2[mj-\~sBzHm8Ҡ[烳B?C{0/c9Bs ̃̓95]lӁsIr>8sD|sdGuoT. {$ᇛ|3 $i5 =o㨵iynVCm6TVOb_=ϣ [Xp_&#qVDߝ}󘞚U櫺Kލz 1ۥ`D)=~ҘՆeV$:ft4۲'弊?y|XEkqG㲌p[ws~hD{~a_()pJmNsۙ50k"{:8cVX{n]=alzxWdVnE[A|ՠT&/ X#[XYY[s﮳X-?:=[-c 2T[XJ?$zVheB2?6J-D<lj.ا _ZP U)cV|jg9/*(kC6?` Cy*~<D<_(1\?:.>' 9cnxb},gr}ϛGf ֹjt tri}q|:0Ё)–O?SE !whmϱ90m{[{f s)>]I=~YlJb gAuGљ4C-oqjW 5!=}A) jO.7@>ۆJ>>ޤ¦棤T5/~dhwf)7l[q\}䠌;OUO7x<CR&u 22&v2Ul5Yb: iŸ>iUVo{+o|q[MCց2weSA\ ,z= ;IjzNj7ޯ@;|uoK|xċq_ h:wE N_aVI꣘m?QG`Ng|ؽRy fˬѕ#OQҾHIXD|<`X87;ncT  +aѼbXܽ,ypZ `>}䗽"12ZAeS(+e5k=FyuRJwYĪqRmZGK6^d9AbRMRZ",['Q`ex2[#dשm&C잏>k:gO^.=|EҭEW[4p"iGɏwqAkbWYh>wbq+ŶDk?ΥG/ɤw2R4hεydwqǭǮAO гa]D8P{قlCy rwUjpcl$ DƱ /w}+3Ցea3bzӑpe3,ˈ&UAk бbG4j~!(pqnʧT*41ّE$;v# ֪.q'Uy$53+c3|}Q(?7ql͛?0޼\t.>N2v2C D|DgPiqGe3 ~#',cV Ƴ~B-m>kOAt.%ʁ}>+3@h^է+#>g^#6WYk=|UwrDezkWX d_Q\(wʺw>]n+xCTPJ ^ܢ`>:R#_JZ3pz;Br5D򹉞y =C*g}Wq_>S5:E9IryI ܆6f%4tGοձ"9rJp֠hXqDN&q]$t~,jqW#vg;_:Fd-s}|qr7ٿ66̪UC`³WxV?3 .s HFRɻ:uA44,/؂Q۠nmZ]xBsje y\R=лW>C:-1wGCUkϞ3*wӹF`wF`<֪O/Ǻ5 "߁wl`~ZA| i7kan5tgY4R9w#=;86G ~F/8.xOLE⺴{pN1/ʥ%!vڞ8pmm$S㡼3ڱC|0&\aM,šXp5 kbrM,kbH },t0]v :$?,Nc|pQ3HUkpYD7]'űpo\^k+2|sKc88gv'tx>*OP 8ĴKm7w  +$_}_Df K+x?cHƞQoHjj#tOg ek@:!#l͆bZmt;XG۩< rsAC4'A;S~'̷T;cΩ{ D`p~i|' ¿6jJuS)#3T66"ɻk6 ~!./2Yh,,QvM>pfw \w1# cq9.D(OWA呌Iϭbv(pL/ q!~sUX7WXs/fNQvB;= !wwUʕX;cOc+ljyXTt6ƽ^k"\mW_^j#FDz6ىNj6&΢Cưw2-xqڹM;y>G92; vj7˥f|;ǯٛCzS^%x9>I$ZhnP^P4}θ'+Sʕl$cs. 7U˩SF=?tvS+-+ [G.bGAmW~9SSBb԰ßc tP?E~HchY>c§xp'(b'b'4WXxL_W)?w )+3n[_zײœ &VW_KFV(OYa 7 S 7:[Vg]^.xEg2H=bǒ0{[:`Rq_/Oйwz'VED)LU?Vi6e#,l5\exa_ЉEs4K:aC[b,ZI}e į?%?ҭH&s2ɉ-[h&noњ&kQFrHСLҺa<{.#m?i )M^ -|;2>huҺ9~飀l? ؂QC/I{{?4NF*?MN>Gm'>y 2Ύ<[JL }%x7~FOrOl1r{톬9c_:KOKϠLJ?Co: @֗:KOxLWg۫Gk tT>t [ӏ0o-MmE Ї0)|7rGDC_*34f6#lݒ҄D(zUp`Կ{! Nr"y{ ]Z[^И 'i)ci nzM?DO:l'&s0&]Mh[+u/H^q/11ncvO?O*Lƶw]\9J¯ws" ّg_Iq^><_H~528ObY1rОEߟ+3/r{LhkOx̋ОmG~S`wuv5dHtڵ0r|:+<_pF򿑹/Uis[>={GnyŅgq~ۼsbV;!x#o&}(UrGAۛ uǵ xEIӝG}GрB^DS\gL8[Da>Ṭ¯%^9Ag1ӏS75#k4 c<'_' . ZcK 8vܩH`͝|si x;gi4[DWxVw]LYݫc܇j]uۮǎ=c"U6]|SMGRyҁC;>iwDre.1oKb3Щiǯf]İF;r D <$KOH.MŲuᾀ3i`_'btw2)#9Kgߌ1k𩅦} =MV/YJ7rs5V%$??K1%4O΂R)퇥}9 nh>~ؘXש,I<%ْe3ԩG@~o#s5X$6ZUI7P,=كLnlwPY]#a(oV^_"X7 {:MtʼaQHDYk(m)\Z5͝FI19  wyWK#dCe*x9h1.(8g֩Aoן{}TnokKqxXǤ Iv\:ѿ-gb^TRRR63XMZygZr޹A+73ʥ'Ld34GjUJ|>YC0<=9M4qZ<4a :7,޷P>(M,X|=@:,}ɘ1a_p@v ܵM= ϓw|j抣Qh~h̜~s/3 srQW,t(#yͰ1cg{Nu8bD~蠐(Wfسj4˭85}9j5A79tIkdV1|űMfVg=Ba<2>b<ʗB{KN {?~"|y)h8R|dQ3?д0Vq8֯;{esXYRZTXZf>能tP9pzsy^wM/,?pXIﻔšyMfy=`gg ~߇csB%yʴW6(w6{+&h뮒?^Df=m&&^h`ݝ$A67qףcК>Ds~ (upͰ.nh8wɎ8&RHG{kضf|}{?L,{go 7΄g{o9 N!~W<-ǽx001Lc!?8 O"O~=0Gk#Q1"ۛ|?Iug92KA"_9+huZ}AO7 6x?\@Yb {Oֻ/š-1G *s'Ɨq`FgD:=!k)oiv{.c>wM>7b _a|Tɖx*"Ghv:{2=ɰYJVX1XǏJUZ&TtZ=26&JʹKF]r l8L8UR<ǹk7x4DǤ܏*8tK>wCq;o_wɷj&WʬK6.710#Mn#?mCn 4T9'OEU-2z\ >w̴wVyc#'ήޠz|F }$wk`0}39l >/|Rs&1rA{P} ;P<{9!2!QWw#0_P 0prvih!FVrZ^1(<|j862qp7o,uB|4gvFK fM$V3UniA .oQˢH9ƅ.W#[4*13 |g4ۯw=፮/7ߚ2{lhF:m2" oyVV wZt3i\$"F>M%cycZO}LMѢb}<g}ϵT>c`sIp4o%/|^J/e/AlkgV*ʶ,+4D$U#R<Ϩ/?!VhZZ=Le f6 iKasl%? sQò񴆉@[؃#VQp=ٔiWƱh_JmR܊×F]NOs[ {5}gl[0H}İ؍Lm[Xyͭ6k8(v=NQW0U`qN[->X߬P&[Ihee >M2]Vo[ݘ*~,YZrcQw }^K<$ML Ew.ns`.Cwge^\j."w 8K't~[I_֊&B)lUm]YlJc6jae͠ڒdFJ bmaz\HmGmVjtڇ2cǪP}[6%ZfheMֆ8)ۆLՖu^7̃&jCzVKRLͧ蹷 pT}B=[:~IxGo)DgaUFD2H}ٰJe8FԃT`LYL4xcm|WB:֕B=ih"QWnhz{G+B<#6_ڣ4qjDKjDZ.,N'4:]? ydOD-\r׻tMd-H8=]gOze31oZŘ!:+WSE;>7&u]?VnJ,*_/vx%~$ZT>S/e%umT#_ ~ohC;ۑB竿E%%2]J ?  ?m:[: Vy@8,isEйv;hs, yX_yE/or^+Rw=+RWHx_BxEJuX!8G )z93%^q s+z"A]E]j)=/&h"S ýO }o's4g0O ; 9+c|.yy>OE[ҧ*LL0 5P?mm_I/#<;{6J>'Ef\\oComksl:oFJmRчz eNश]^;[(`#sp6aÓ6lN&6_T!Ɩ\)+f/ZX7P>h|JP4I2sԐTvV1st^ׯМ3b2-!cB| c:,n+iQ}:ʡqؒ$ _ Bo q&ՆXfܶ} s6׸x|wn-7@/oߥG5E/Ob;Uw':6T xnb1kcq3*{=Q&_C9Џ߾'ǂM*٦шg{ QQ9Bvj-$VErd)3ޛ vVqZ<_58)VG9a#F jN`NZPw_)|linL.gZ8zݘnS?-(bM5{ha]5nc4QrЩ[},=&)  FsnC#^(87&sa*l60ǮBw{Cp&o}nf߯>]}tq̺$~s]cL~WCZ{bp݁r"Nɏ:MOjZگk|ג1ͧ5; T&R_L} OPxy<? 8>/!һϻS*-MZYs%Pm^,}lu-Lg!_inV nBvYYzɢݷ<48Cyq߫ INϑ6 iiH~*՝E$%܁& On`O0W6%nlIe6.ZTk B~QMc?`=|V+. H;DʏASY;/ѠVf _H`kZn,j`Csi-B*"YS =lKze+LjꚂI&- .3;K)o6#0;2׺^zI'_qafNOV;EdCюr$&P7r,_,:YI[6ALǩ!!d98a1=McVikb/? Y `eH4\<ؼ?!pE^0\M 2&Mri{B6r ϧ݆7HNp ߣ2P|Vf^(.+ʬ#mA}[$AhddZ=f9YzL%A=9~o9b~6=~ɋh^﮼w)RyH帷qN_чo>||iG8Csf:x㿁GBΟџ[6@"-yG*=4 3-!<_p{#~~}XqV}}e#Ņg) qǾR9FIn}I7=]]5 ꪒ(%8- lUiN^/)e*sJ<{7q{|[l& c7Gp_\7u`o>Fwn {D䣭&T_'7}[?sDdʷ\ũ ᝶KMAvBg#BW"cXVV͚}|Evәv$^X9/b o95\Q@I(sk"sB1>.kRܾ1Q+mxLGWGP0!,gXC1`/.%sHsc7mzd'xoM{E =Fz̰4Vʃ=X+~?1eKgҞ&k:Dwzel~40Tp(DZwP/%s$g5{6S}m)jjiA#}*]ˣ$}d /i]$4xs JMSk1f}֐?ڕ4QE2DwJ#v+G[y <'dmNٮ:ƆNll|t~_K 쥯i'LlmyhI<.Z9%(&Ay +Ĵ,ǔhdn#& :&'DڃV”D?κeBnWزl:o.ed1c%A-ا~X͖}5 &kg@[&IX6jf1,23ӠL$&唕Qn1Z_j; + *T3>nL1}Y tXFcyƣ3zKmF7+;ݹwGrڲ{w>pzlʣ}=Mnj;iL}_^ƵiJn,ml&>ѵ%}nWW%eϼeD*goE iBY.׌i=]_.VY9m7Z L+k|1,>uxzq\wz7ڏ\qȌiS[w}'H cDoy|(ҷ]سjL姒?3C*1R2Rj‼[.wj(Wn9$qBJp{Q̗RIJiM6`!V&)=q)}I1J)ށgSOɊd_fz^2Mn4eoj)M:kut6ՄXƔDŘŨE[cJs4iQ35q mH2NO'Ƴ lJb A{بg3$e¬ \oeD-4g[&nwS $-=7~[)ӻs sJΡOm),+7_Ym s3GeEfw(eM^hXS[ׂDC޶VMtm9#mmCr+~8_ _s s~4؆O{Ij'~|Йx̹C* Ω̃]]hOvcI;O(h2? V!GɁ>9=?43ȤuTLr(MySXE?3x!ZMy5oDϞ\#pcqxq|"rίfB#?KpZ8ܲ(B V Hqd=jJ|3I*ʑCj( {bi:J3SYwXZg}Eֱ~Εupkʘ+&Ua6C8iyNW~ 7uE։+DwDVڣ7Ѓtztǃ=b\fK1RjПq^~qX{H_e?G?>獯{ y.a./k<}g0xM>^а7\&)סY>n;)@7̯`3̆X|c+|@P<W:۩sBH)GiBÁgkKzЎ>5]ޞ1qҔǍ $HSfY22{ʲO&{UK <]1Տ#/A殎J9\-2TzWYFgY>cep锥Z/M^vlUkW4e]e(VX,ػT Sg~{4ȞFai0ι, 5mR,VI{Eڗ:X;R޾YmLKOq<+*M򔠛YYihv(JY6@By^dV] 3?.4WȑbQ;Y"t6ﰴWtF\D&RzI>_tDHgzJcxBwd~obP#}T)O{5E&pJkvGfY>cwMr3,q=8F|o:63Nk7P lw-C"v70] H.A;,iJC t!^2dg8wgnUH~O8Y?8bQ &RWᄳNY襾>8R4i@l0F7x?|5 V<{i7(cVt۵t+3EKOֱ<ӓ-mCݤyZNL") &u˛/ʳˈP^(/&8=By(=#[4:i}"Znh&Ҧhi24x`*," E/;c&K̇TOI-1d+ioi3f':$yx,=Yh6#>DV9w;{yH?~ϷCVz͙~CR~Z8o/{|Fݺ' rh@~)ttDC䚩u]tB0wАuSalM7+7WlPs-?NznuFTv8ދ͔t;Bݿ3xN]îkWeLG!#t(q*й_G:l[ ݙttvK[Bet& 6nA42B4UL"(Vvk8Bz:)MV 6tѯ螝~Pn}߰uՈU1/:Czze+˂°]i1ٔ….)~4wK: @XAܐ5$ѝP60!HLv0H?!oM]QBÝC("YK3m 3' $޳r|ٗ2י/}׉TGЉa%|Ϥ#d`eec`F>5mww:,gg(ig&Nǂ.m-N=X4aVdFw5ܽP.mS-sa~#o;>tq\|:R9e+-e~CˣzFC]/ѺW>͢6D7/̍kA.k3 ]D]B1`؄3pUg#GvNͽ܅[^ttyx }G&̎6Sݯ>i؎׃hh/vݬnCnKW477=Hžڅ=}~>0ڹpR DA5 ^u ad4O4w= 8΄Q`kVtq{Øٍ]{󰭡Ds7 x5N\x˔*`>*Lw=ɹ]!n;4N3ۧ {w?ߋ|v8;'l{硝Wȧ3 x{ uku;<=7_']o讧ςB4T6uR7<8~8>8t rNϯ O ^Jz=^/WHcGq>Is9b!C܈XxQ&x'ϕ_$7ɸEƳd˸K?OWʸ˸`>/{"o}Ȼ#oGQƯChr rZo@&kۑwZlq{gmӴ6>W!oz,1r{!ɽȇ"o~,8ǂ)d?r=Hyȇ_0x>|i:H42 ]1,K4PòTFD |9'CV4NeMd&Qffe- V\@x\\@`2sgC@}x`r|PPKrrW.Xduڳilͥ6y=͟"wIWTɐcϿh9&av:lb3&aܹSU`~錩sFrmV !zo$S\~ǝA1 F1}e.΁#\P~ ی56 # Cx=qEL~]W});IAe3S@3M ظhaT ?Ae.+fvWPO두et:`-ME8Ø 1Hobi|y֚lw3S@5Pr F[-?;'ש1;@.}ÅKĹTKs O%E #$yA2@ H!(ӣ#P00K,݈ gFLFl@$&#!0тF,DlF4ŬpGWYmEA?3|s$[ "#?ytIoQY?g4b]b o?%g 8/o%A|,b!~#b~4>/χ4W)CV,>OQj<6` ^@:]:?6 -pP2/9/SWzFFS3's ,sk2¨)eYA$~.hr .́PQ͵e+7;O#al2٭θ9S 6rاON~v/N_mwO?~~"(BB:tTGt媮n{^}{7hqE2tXT#Gy-co7~615dNϰXdferKNWy+Xt] m]wc'L4y~3f&Ϛ=g Ryυ3=&`nl~ק}u r{"O:|F߻OFק 4 ڄ9WjGyrˍ*@ί }JE$Ƚ:|P=k7 W#oD55!}R>|_T+r ۑ}r .AD 9'P8F9ߗAE"bXZ;#ڒC< pcۑ߂<y,r7 k"":qȽ!d ȧ oD4!t>|׊|&6|^؎|>rq>T" 9Y@$rX!Cgw@nAyr%l'E(܋ zW!oDy3rVݐ={ o=+5~~{s!Zn/}_zn7p p 탼?}G>׿^xG>P^xGA>y!򑼽f oB~ rXm.oEB>y ې'#Cn@D'F>7)O|ooy{#O<[8FlF7y{#7sG<*^N@ꑇ"/y#Ñ7#@ފ3v*8> W#<5cAG~ra!/@E^<y&N"! y8A{ W!\g"OA.͂<y #/ r}s}7r}7qGG|GF<yg #܀\ G^G##oㄲ珼珼\\\0<yd G=<=̯7țx|`x|m<>qH<y4֟G#78As9r7s9r\s6qsO WbAAn{]`"u/;ixOӄr4xg,U&}mz+"߂]tR'"ϻ?a|m߁ς8I".хw]/JLX3ada,2b,'0B V/#tVDy&b>\z, ,Dž܅gb;dK0"a,#H%Иt)AN9R$^IcOk IOLDHANtUt;]\,]OO1T(\z2U,U\Jx$6$) jD9dInK;RQ_!t/'Oʹ=\x_/qy~"O~K7Qg 2/5$%(]ofD~b{NY&|z"rVThv1fLJ !%.#O9_^NR,4)?n;E?1@fA'IOA<'kyR}eYvS %Se/j.߿w1]v Ku(~Qތ#CAހ1M?@C16C1ȏ!!ퟌ|?r7=7"OQ,"M?n |]۸|؄nn Q3VNlfjr#QY/[WEy #_템Wq}?y(@ɲu"uٺ둿6"oE8vr{fm?~?B템S7p{!AN^?A~>n/q{ 큜?yjn#@r׸=$ȏ#?^>GE9_g3EQd묍(,uf_D':{;#Wey r~>E2r=בuH^?:|2O |U ['.@9=wl]Ƚ-gPr~!(_u'۷Њr~PO"Wc_9QyuH6_qEyr}+r=W#& S0C-_gC9Q}(@!} E(OGE/ۇPlEf?ˏ! QSZsG"|_ ߷k },|"><%Sr>`>"y#oFތ}7(|M/(cooqGFy$r~3F|G>&G4;!ߍy'znOD.lQ#q)( ^'?5Ţ|rfW Tt^(9G#U>*ye(܆Qsߌ希"pPZQn@9n/C]}Z(MX9<>r0g- !/F^E+{}R]|Ȉh\qtgJ/YR{pijeHƗ΋xp~.ɿ Z}<>~?[I[}TN`>l,zMdgv7C[1Iץ~Q1 =nY_r+qv?8Gb!c; *ke<5gȸUҏ%R;wۥ1xdOWY!!b k &]7p.7f> ?oϖ扌ۤcP?2 λsynP}zU*Kut>8Θ8A7[k_֡췁";-Rl(/[Jja1n.i4nu ^l+Sq;LIN)[Y ė[GN-Gl=_>k29o<[lu8ׇ$aC~a& |gx`GI@{,xnPi. -w3>˯]6,g2ͲE鏟z\;W.4zHCͤ׬:œw=4@-<]NpɮMJ˾ٿ=yMDv~{K:>!Il?tvH)U&PO{髕Jo|zdoZna?e\ٵ6 ~~W[7O0wsGTo^mrɼSlȧ]pZ׹^Х⺳Y>0δYMС?͠g̴^9}lu#oU&;?_{ǕW9Ǘ?[sw>T(YNXУg3}|v,/_aiհ굼(\>Bl}֞;v՜8=r5Z0냽OW'nx^ tǶvvDJN j+}wȶ߻ux Svxy |am=΁շԄ]Q:n;5=v |W}ԇM&)G;@e^}Iw;hZ/ۂԳJ^ndH.~vXo4QҒ 7_d~FGu ɳ<;2۵?n5-?.vV{`^ʹg<]qF[Űi'߼~p=VyٻctwMnc@._\ni UtMZG* ?v܎+;3%j9ۆӺNimݲv_snu+/Pg5ooh"~ZߺYy{o{H5M-eޓC{y{zL{6<;yI![6hQV-Ϟ><\qNY׼Ӻp?H0+x枾iN^i|?NYǶ}pLjhOtmUI,ttCNGs ǒ.K/|SuoMjC?y[lן_\yKށvﯽzڇ5N1{xȄu է?t5ѣ_,)}6ۊ,5`[1no:m$٥c;8GݯU-i<2rc`| {#w;&u]c*Y}W MtUH#_`yJse-o}?yeQ뱮zy4ɕV2~SOo=qB8݊|]ݘ]wUOe;Φ/;x}Ȟ=ި:yWw D[nI8bΓ"f~x.#r_Zz-7ӇK',GEW.]{X':]o2z# U~˷{<}kq> [X/}g1Nl>/G-mذǒw=%:G<7#nKoY>qoyF&믞߶ldn_w>g}On4v:s5U;v|컓DuoV^>l¡K8x+_ 3tW}c7S{{/F^M>:5=?|/uOc˒OHƺ>aMݏM/?;6Л?SoԳ߰n0,Q_2Cλ38'ny~H6wG]k#^)v|dŅSܮ ?3,p ?gNȟ:ai_߷ ;TYtcI6I};^n>sGq֞>G_}MI'>wl:<&vcXwS0󹃫=Ks>wIlm׳ouoaӇQwYo䰵&'NkXp#kr=q=^>U Ж&v7%<(4]֝Dz8(Q$Dy3 ג= MB;IB;[IX\e5 uL:t!T;In|cIaZP^%(I¯Y( !B"z"|(D\pE6m3j!JOy0o82F(# NMHocT"Q+⡸E<ُ*bA;EPE'{X oPջ{E}""w|@a@i(_q@qVuk}>">y"Gmh)E?>/|W"611OtK>Q:.cOSjEõ}"?){/QnjL|}gDxJL$b  " LD|ZDMԐELuj=oDG#+76f(v9-)|;wi0E6fN[WN>i^dԞ -Ybߡ=VGh h3SNԶǖYڅמ7>->DmѨI. ,ˆdjg+}w.mkԚ:~Y ֚I*Zk֎Iy#w3^}wrr;|.MKBZ~ vekS7~$ Iwo#uڳx*1ʦ3ݹhmoI{ M:M;7wfhojcr۵^ajflmO&*?U6WboIF;hxM[-Xw+Fm;əM/Pov6mVN:~НtO<2WZCX M n rO'*.Zdt'>逫%]`ŊTÕ6U(ngeAa,p9-Eb^N--= &JQCx簖&y1ϱ=.އ*h D=ɽkT<۵ڵFbT' -.6aĶ۫f-ol r:`[D >CDߠT OҊq>EKOϕC^` G쪓7[A#]ZIHߕ<]JcYMpb1@!6NMA+Be}'t!'W:Ҳ*99m7MÏ}CgغPUgș6''=|mU}OVw|1nCHiCAhW7v7ݚ d}rcMp.x nHEmW&}& qDd8-CoFP!C/o2m{}Lnٶ 2g}~_>t@v>AƷ޷qQq/Oa-&c)#$YMhh(%d1Rd }躩+NW/ 5tz}}taI]!ѷ >{X;Ab圼B;$c 3\lO= S8Hp;K_] z[(lꚜcedK*!dEu$.vx3rLY[& L39s .Gh3eEaF_WhNZfsffGz#hK86CHu8 ɴÐ֐Y.k|<7gdN|:7GXq̱-:rl}LQ2'OFWwN%x&MG[t}s1Im炈.SBo.{S6Lg~q#krvQb跹N MO7;gR@Pc}5~7O%'J{wjtA<茋. ͿfXŸ OO_9.DDDl=A?W|Ǖץr}*fmNX'녗9 c=&Irq_^~!; :°:u? b|Ī;)qJj. u/q/CJZJKZKl|=Ya9r Y|dɑ\R6<{lsϫ[Du?D h c~ywf+n74݀M{Bz@0] +{\Р&PU>@yȯ=!#H1ы!y׳ A 8OdB ᖛ$ҧ A>@x` ߰Hr# ^PQ H2 aDFn˯i}vNBMײ|MM`Eg0A~ @C"Xbhn제C-VXCG{>M#:X,1u.W -B @ڨ[&|n&fEL,!Y<S+ 4ZZ۠~!Y?oϐ9%鳴, 85M1)ܓ=zO*Nd0 麐Q(HwjqİT)sN hyv 鳾B̝͠TN S.l"-CJ#9H5+R  kH3ƚAʠv,0+K_ 1w w6Т(ȡ*(,ϊ:%j̓:n<\j"'}FG^.ZN@b=gX0v9 >3|DO#8} t ++4P7Z.=3{%}ABw` )oM5(,nf΍b~Y(V1?Uf~ XlOY@K!Uk_g3}&=slFpP0}' z)΄m$$'9BAgB e0o-Ϛ Ep~ک =P-'p7ઐ!AcC*V mQH{L#ziTEJ />產ׁ}__?U@ "Ǭ!1iJ<۩? _攠|'e꿧}=Px -4U/u k_?NC}(ļA$CNyoB?t ovnς~@ 4 )oA=lt<'6#ml4(ԿCnPxeU7B災07?c~۾1`Fl\b }@ǃ&8C !(?2B"?&d4lGaRsCajTQ@cplO10Tl8 R9h/h8 + 3`pY觀_;wڹGT_`V/x"ԵWA(lhZ 'NjhS B5}C0Rs ~pl/P*Q 5R _S@oLLSvP>  = GzhZ/>@N8#_|`SBHj;J @^t@N}}tmZHS _O wCg@} a@6fC p^>H7_ o -S0S!z#ES;8?*aX͋iA:)_@|j!uKqe Я`ޑ-3t| p4oz~лqc\`E-:\H)=AiHn OGN0QNPn@t#z~ Z~+rnNi֬n~^IA[RWR_P\⃫R_iki[))Sibtee2{SVWPT+k+#rMyL܈'\.[b0rߒd\7g4d9 ,&\ K{S8.5'#tOn$BVj|[usꇤ81_/o] :oÅXA/pEjHErgKY-<#4TqopMlZQ`foEMc~ ,Y)GKfSϿKfM04BOh5W:@7 X:L:* \}݊m@;[Ɨqj@R oy@XZ]"e6C , Hݡ`ӚCV, +l.81"4>+s 0cMiQZR`z|Yl%LQo;FSmڏ%)c\G:bݴ $k S8X<&ʂ72YJ */ijzT:x_`O?l69Yҗ[2}O \] {oT`yy!+>kHzqO8Q8"ﮡO5MOYáoP/ͣN 32wEӠCon<:f@mc :L!oA|'7p?t6e(G7!DlfjࡿԪr|7zh4+1MĆDr*9|8#h~˸h lo@j%G"RnEʣG_;Yuf{f ,n&=l6P_y&MQ$z ۮ]hYʸaG[QG=jrt4]Dv0kwV]-4U )m^r;1Z5(|J͟>r(K%|N.+Έ|j"|vPz+dkۥua[ p};=50؜J>"fm%kmxԽq yuzRCZjF6t{\tuz%(1kD%lqӏ ۪txqp[2iQ*ݶʬmմ4th6ˮZP.Y < ɟ5#qitc.59Khksq : t fy/xJzDp(8Y>3gKeʇF\x5M4(yH[0Fe_t? 3 '9?A ;hrh31`6aH)J{)LQ0 w(Q9+;\,D < a=VL/D!z_uc6<'>vL1+`&郇9ɌoNK _mX@f[XMbpi1@kr&[5pssP㱝ԺNIqTNYDS%uVȕWaDTkÈ|>ȗuB{\y!-,.*Z)9JSfQ|kh?k5tuLWub8} RZ'cyZMn*@Z Jcetb)d^r,HjxcHxKSIgKr74Y<,DӉhr+8\B (Mf7z>hO@Pf#D}B A*Pr5P:vVU<= \ Q~2$=OO[su#z.&U yGPT rl]II;xvj~dGj@Hc @N-gncRNtݑXN޻eGByWfGnHZ5T5KyZ7ƓS@W(w H%H1'4.Pz,٪TKJ "@N;:Pu]SL~LZHՂR8'к+.SJi3y<4dp׵K)ufy'bzlbR;VCa0:罪n=v.܅bfE!}҈57㸍hi~Аl, 4Iw6 L qj4ȟӸq-gNŪN%e@1@g( }LbR.me/x4  t! R3F|SW.2XUKYpc;Aw5h~'t0(Zij#~5.@!dBlR\}Z1(HbO8L[m.˿Ҥ4;Xy3AMڤȩ,Oϫ=ܭ|÷cG A!pv;Pa!DXl ڛ{T[2߰H/A>hq% ߇2; f 'UYk8qovLH`B;Ͷu > XW2V_Ya BQ"H4/x#*\^Z܉ύž_a_|NGBl64u#F.$!U@S r*n ._ѥy|)XnP5T\kwk~ 2|L'+%xgoغ/S=Q#H="Ft0'HP ]"|0X&4 82^|@j 85 9nW 4n/M@ C(jt$"`zcٳ='ef#S-t*~e 5jR]#7Piv^^cVpAES٪f짐7ؒ. z1K)oCoغg@|MPCgP7{gg+S? /q{&ĵ_|8!`rBn6fɀ-, D6A?-kӐ_ 6aA`̺n=3NރٻA= ͗QQ]4Jʁ|{GE#߆^+ FRzs<0q&[ab#. #%>Q">3ăo*:9$u7"^wmoX JyrrTryry|XH̱VXNG>ޙo,]a<wiB-\ˏb.-hZG(Is 6opQh2rbT.-5Mϖ/א O41OS"mK1A½4Nǵ\NN{k{Iۘ)[F: nfd %8E(uR*9 A b>ʔGB}`[+ZzX.j'lr8oۧaR4rnDV൵-oy@cV!3@q1F5ŚæpR(tgPqqnk@Dk$£șw=<;  YŒ;H@T((2i|4S@Snwt7xF9 ?ڸ3x95lCS&4HgflɐDcB%jd&n D+@b-&#!Žb(Xfucԇpߙb/y5ƻ=; хwxxK/dDx2֎kV4bNJEدuX"Jdntۯt}n6$)8=av쉱:ISB{=|kfiL!FC!,n:YZ>GoKP[E6~dtWҏRVkgRQj"Ky j[K\=D=A*6#p9FqKX%D&OɌ'&}[ 2r o|̒PM7ȋ_*\q?#"V ͋L4/L-KhSG%-xNN,f*BƬ!b oyPFp[.Rd,MWbFOa/nHtQ4:M̺2р؀k9P.㮶$jp56萧&hbeY5e̖.7#\XcQy 4ǿ$<_mpqi|.lR4y#RM 1C/<{Yk?cz{Ka/d_<P5j2dLأ!Tq]dHMp'CID0|i9qŇ#g5!ֽW0?Vш%h9Kjipu;)r^ZFoMiݐ=. 'NiBr馦BU+mg->qdjxvD ulȴi-!Qz9@k1B*'p|رFɭ֊~6um%On1'KuBըIUV𳶡~fرF@^a>bpi *,mbOfR)018ET%8Ya] а +Ȓ''-8 vIV qP!ܺb * »{, %P2 z qlq zwoPJF|SefL$~-6oefi|#zMcjZ~()=R%@?=f1p?|$=J߁<- *Vn7BOC4h }`lYчBp턹R$1jDI+tyvYK|4K9QԠD?ZDqȧܖ$+E\d>IwpՃ.{^7]uLwN șjt/tatUęH>-g%zlZ3m[El\q\WzXZnG)4`4bJpIt7JN6FգhsMgDTb&z7 tߓ<^c`X)#@\C$frC\˥+uV;p,,,>҇.Anipt" +j9,5+GȨa'+l)t/EUK7,fzzi,  N,;EuGm>ƀ#uD^,': ͘gSK]Oˤ<Q[yރaONN7 u qK"I6Cmh֝e'`<#( bP 7vA6]tnh'+F m8׍c%08si*r.};tqZOx?9dF:93[3h-3} mlgzfB#ik/Q!xcb.#ć.:- PL庛#1ʧ"`(ETU]xC_FGq@OI.Rx [4HutB} at+Yf1)uX<@>zYVCaۥmܝJ,>;뭦ӝJ"xT 23,+Ź2u ۀKn,%+%bGya\PMhfYtۄ;J3[.,2͕ h(47qkͥz1o>f߶x0Ma=oГf˂d{8~m~]9l*mWs#no/bUݮg|k|Y>K5sWk5YJ}`Ogz]00Qtr&NL23u77z$XXwD-<)o1G>dFB[,*Nu>1cjq' nFAAM]Q#>AW`K{&3dЃ%PɖCQQ*Z"e[vK ױpW3e=Pwqn}l7U\qB.nky 4(Ͱh-q\ݠ +<K:r8m.&*_@9!Q9ERhYb; P0X_ n)x4%ͪGBBdqT"c1| _Oy1q2AZݭѧҐj(IC#7qr^ p$}K3sb"_m9c#2Ą/tvkG8dl,yMCeCJ+*ץp+9 >YTO_9< ۼtXje YRnY]' , 9mIn^kk$LAb墄imݑihcGО8yPaG{/͸~7d 6kO%8>T=}Z\omfrII,*iE&E-(Sޅ62Uw?w <&ݩL/]xJ_m\XjyVl}pt[ɪwU Hԫ`ztVd]a0Њ#hMr]>0\+@L2 [Vg`.0ve]ǓhJwOKZv c6-X%[qWԊإUF;y韐}j;j{i={mjx&SoE~xF}_h<=/|Xte #Q-C_S*C!:*Q=T衕8k꾐4k[>8ذe-/3ctɺMcBŬ,d(D)d:Bc!ef&G[l5n=B!56?b2|2ANm= XY@)Eȋ H" 'e)V6 v"O"v"ubƧsaP,ʻ<'p؍RD a!D)50+=v _e6{#5Hڬ!Fb*Iݧ?WSwP"u:t-uR I-ހP`E%q<*uBY('$ǷJ+ZwuϬںZbK\7h:τք\1wth!bW?@}hQ24>4F!L*͵'Ee6hnE'Y8G}n4Qw[ JVbaJʑ.+?mO8Kf=8FE?<݉["f:|w(8[2dinanǐ2͇h~̻hr$jŭH2CDQg˺3W%?㩡m vgBU Bt"HT_%޼1Y9.')*$ǴaE}kp8򮴢0HAE8y}A~z&1}:RK+CkڪKC9C)( &]weGdsp,Pcꂹe\PH7qjhm p]w5ޠW\[Qt@|=|8JI 3eHf9) `yt ]nh9Kr P83#Frzk}cgF}Qo Ph~tI@E|PP9>Z/kUSl} 4v::D 8]a,b :Yl]"V52{5B$ЯqwV5Pr XyPQ;C/}Fc%0hSە8<,4t?qDbúntS3I.#>@_3Uh'xw;𑘣cH':ypWLzS Ϧ9(w3oZmnc3TuVNO}i;8?U+>}nTʬ&)_B lJͤԔN Ƴ\ǻMU-ye''OyQ~:F2&v LOqA ΂1xB6$w`N#Q*ۿaMe 3(mo9#TMdDq"v,Y 퍥+ eF{RNz骯uP_!ޕ;2fΒ7Z_#ކᥥ?N^Xd]psi(~KJpvO06Ԩ6 Zuh6F;M\ZrH+Cw*sjAv7/ ͎ tcPOdˠŬF7C# g`S2.rH?0"͂?VF ".2!ŝ6$i3vRBMRamgNyrVd щ;8މ֥N1n3kwui0]=h!ttMF!AʀI/O%.^ܷZ>ѹxvFi|NMjy*7'HXj8As[؁12C۸ڣ-뮍N%gkG=CҮFlq%2 uj[3Iq*صJ[>z&) 0yԏޒ.uNb#B"ۚ1 Ƌ[l UkE DHPܭkgr;Iܶbvb ZRNL|eWZ)|ޖ3!hFu?BAe@#:m-sAk`'Z4o9FUeqԤ=Ps?@a/BCZE>M #t_EDvϋt]IP Rz/0YqOa:@ yWmCY{}$sg*BN(–$gS„h^UAJtϐ5\)zx<1~]^Myix#L1 6PBiZA]ܧJ%"Ѐ'laqQ Rt)71PtC]f"`IPGCz 6d06t[ُ1 nuBP,LT1^_ěRV]J< 8Z1S䘖shPWh9as\}>Ǡv>(9(H%Oe׃EXA}ÊQEdrIE?;1YpsMyT'~g)D?x+vG .{&}ϗvTAA>R=B]Ji`WH%.R"()C=RR~}3Ta-PוxkdWll@%8.V~CM ,L6*6 S'in MQ/cV1 (c qY_E3w#v`^jytH-'p@ndI8}]ߴgdns mG?>.H#Oc.V]tQ2؛:C39c`&q jkG3kx-2Zuf1X-pIOb- 1ǐdY'ǚ{_פR($.wJSj"R\~5q1/^ [یΔ K>>⏐|OFJkds'?;y&KH O'Qh!}i!$L}j;_|<ϑ7ir?d9-xT݇A]$]vGGe$oVsT &ufex (Am͡B+o!jYyc̋ 4Vcb ˫blm@\2 dcHV #t z1W[`YB}@3Ԕȹ-7h?~`.IFp^; D0vA}6]}xLjj8ą3rD]EuN=xCW&Tnx7ypzt QGJW33<G+W"DxᑯLP)A?5T~gC fޞʼisOhPgGDHK"=~t㹞/c9ScH!2zhP#na۰A?ú Ny:鴾k桷3yW7+zߍqnZR3NE"/4]y'*0SH^C9~rSqGU0llbUQckd6^&u[rofi7':fPьYx4htIF=`_G[v/<7[^;zc ;m8BHj*7 ޛ ^+fhlxK 1L5:7peD?{{]t 錞J,ۡ8avj9:[QWat\Wr/Sm^n Ó ^GCWts )‹@ƿx_Nϝ~ `\ tYG2mv)] [A׍ؤ0;'uj.| ("R$ $!3V`^Ӑ J&7.e0 2R2ryу^q ߅g-%)+W ˳y{GR~Z ф<3@V:nWѤ-)Sk]LȠEALd/:w!]R=/Avd8察Dbݙ3[SBvWtl1"yHԥtrԈfs?XE}!IR ?Rx t,Um)p>4M`z: Of߬w+WFo`@1P<Ÿ tIJE/73[_`"YnkMǁ"*QwԀYDnӢ'*/BpUYeiyӕU0Q6 -L(%> sL2'9HGBK] UYkB\)|HE ]ʸc2 0^-EMf'/P–nJG'Tk,z]Fx /»JV⩌N?q ^Oxolk?W PkXL:{55и`3j4˃K0|bWA)N^ ~ 1+h|܈#@}7p~ƭ!,Qxx$ڤg"yO4uf{P-`?Z P,O9Yx20\Z_T Auv)Xh ( %=6;q P<*n)|PG/!#6ȎZrk\јk u!YZAGrOG ږR$Wy-P+EB;*h>KFxs [ۊ*n WԻjmw½o½y7@K J[F*2/"a֤W G9}#0N(oȓLP w;&LnT(U Ccؕ y٠[MIlp~uE_bYd1t1겨F"7Ύu'$c*J%2I&hN@^_sv :E74pbr,8f/|OPڭj8Dgd?(D7&g53vVΡ/q3*Әq=+z';ZxE5rRIb\lg=D6礼]o`OzUU{l'?*%G?EiM_¦~K( 7Z \IF!=_%} RcP 0;q ^b|9m.S.^Z߰(HgfF`ٔCϜ<,B97L/̼O( 1G īP!' b Ԇ$e#Pj^P%gLNd\ec 7V Y8\Zʔ_,%eq >Ik غd3 ]4gAb(](3k{)y栦36`zsf{J"G6zx.T^9Jb̃i7[-f6yÂ'РDC{a Äw@H8 r:oAKR>k2 ])/W2)l> 5G3xulzX) <Y*KG1c>bgO\z}nô> . jXܛmDBR|UB6@qA܉IPW5PWD$h%+d VQmYo'ϔ06rlಜжZqM38*pTE֠͆ V]ҴzlKha~bM`00~џcނ ^Ges(k(F]nq{]q8>?K0k.i/pE1d6A@[FړNrluf}W-:B~Aۃ bsT^¢8=+0*t?8TMnw?ř((q6zkwJK-S\@X#%ʇu7W@| M{9NώTA_؃nq"9_@R ؝#FK ڶ{H&m`9G4<WƜSrucDhL6kL_A*LИ[Y4'q$&A .^#MoŽq}NgI4f\o!ɣM,2eˢ~\t\ХDSЄdю#RJ^+HyUv1CkȘ}sK¯#eL˴݅> v&OA$gN_U7>y;C[Gؖ ]B.39^Xm|(ߺҤ0@?no@y~wՎ&vdGIGt59Rr)esuhScQH& n:A˝!x;{l-W U+TV?sw2#^>-Pǃ?s?lrR L(ﻀcG/L70mAC &Eu(;-;*d:z%ܙz Wb 4+|lt D@\Њ\;G@C3*փL i F$rAˡZұ/-.#3ݕNAzQ?{fKe~ (ͅOM.`\UWr{^55XOK;6PerbI6/BkZu$u ȿ\gQ1|\ _(&_lK6OӶn\0wO&ﺻ1gGC"Х;<߁3 OL'wSyT s0䁼j XY+f8DmG?* ,x^EBC0j9lRӼ߰СG. ?;Odyo콉pӉ^fjbo o|[{/};_ػsqG;{>}}GٻCIfQt;{W{/M%~et5{+{}W%H+{--aut{Kt{o콙%P؋ 4c,5Oi[E|gcDc1$FAA*0pTtp e8Fͧ&M_mm'i 'D`M`% ἵ>3̠Xk}upߵ?g^{-7r_#NgQ|<yD.<>#^&{ e,{>XD43T9yV>UZ&-|Qp}Jg|d'R/| %? Q96_ "|Z B芡~^<reOQ:?A2P{/Wh獀[? 5Hg!S'E dQK(sTg.54+*`\忟 b|T~J ԥ_z+r>gjgB" D|$gUďF@yBj\޾ & _r{^F?>ߑ_/ԄƁ' h)pU!"9'ȸYШ,2nZh;A&$ɹq922{cwL?꬗5"gur+K Ht <`' #A:1B}*?hӫَebu2,}՜j}&MG7˝)WT.(F=ֶPgҮv*GĨFrwa8UL K.ե!rgLr?ƥ/.%s6ɝr4 \İYy@=< {'Zi+6ppp;Np^ps+a^0^Jv]( xqbLk/w"޸n><ږ:!j¾bxZ:R_o\}}R F(<hKUL=S@פ/kM3W_AL ~1wŃH}5َ <EVl|M$u$Fn8ZpUW\e`6 G&UXyolE2Ѫ%w7Ӧ ,JНkF A{jfCϽ@M}Fh" (JYৈ)66Hr(Qxf cp)'EȵJXS|84z٢[\]s[ttNAxd9ëj8Φy+!Nnꠄ0;s~5 U)xwƌ(/)/"7 =C6Hw=LEwKeY*}%d}h0Qc\+=Q)FK2TA,D>3АƯoxƀ- CMYf6biMk\xM!ԉ"$ &{)}]*BZ_"3樥h \%Rf[O `vD)z5.Mpn)z6jݳ7߻E–+n,{Pg?-]..jq|_OWqAjo= .=X}*Wҵ^n^␒O++Snjr7f %Ox|s8*{E 2\(7udMB;?[e΃0XkZƒ88Nre_fr'ߠ <͎n炝']4OCICxrvX1myfׅĆ[NPg osr;xjW%:[찪J8 jm.xR2P=ۘ0) ПUt oDx ہ@& 4΅nNf^^t"+[†W}z~e/mӔ_kP=} Ð&rB5iOP ƋXWx_yǯ>3$2'yG <x+_n:_md?+ͱ,mdżp@u;pO w˹nC.OKI YB1.#PqУ,#ιi2 x $BQHe='pO8 c Cc7, %F p\6c;$LH 44d'UqkE@CB丂wrՠ{фh5~kęNJb 3X 9@u,Ltp뜉X}~y.``޲BFpGTC$ÃMlxWv!Z8Nu0g0j 芠qĝth7Sxo,55n+9.Jxg'}ag;}y|OEIOU*n.\r|?`PsPҶB9b;q6v"ɜJJ;%NmrpNPʁ~v;Ei%Ba5ȴf u?wq!ݔwuU8EƍWBocx~wpHI|bNSmW:.0c'CSȁ Xp+GԮ0\ȽJA+2hMMvZ7pQi$ hhb4E?Z5H ܶM6/h-Q]W:kqɏ:D*ub z$ We '7\vXSJ)ͪ0޳.<&0P,:lR*)]W( k=&1lt"\`2\<2^ o:luU՚d MB:ȞH'5vRqQ(Ngs2܅f9L"LhdIl]QOή3)s;b0qh^x$xvl5 PˤL[e[|eVEq6~kJd' Yt5V&k|9._,;/&  QxUݴzÈ t%C6'nkhm,`=PF0P=|EݬE ,iC<#aY) XtߪH4FVWY+5[!`*CQpԶr79%z2,HE* F7>A3ǢAM 4-ş!w/Im.Ďo}LBQv#wgϸ2;-v\_ .29=9.S% ̤Rlo f^N,}<}ƟF< =b%"Ky((bjro좈BA|:re; ڟy,ㄷf:9Y#R&b r3x^} ҍfa޾zvjP9DӀvhҲ*NOѝAUB>>Sqº]NTsK]߰$$;[JYHsYsN*1'Ւ$jOYdJҟ0^4(1C{](K_7Ѕ8xBPM:JV\iMig}{/OU S67j l:mhai ^K>H0lŻ1n`E{x%z.b:(٬B= tY7FNrT(J;s]s(aʏ WЧ+ gyB:6Psf! 4ߪ3ӟsXT4|kfMv{33:r &{2zJ|PF'X#nRa˧s\0W~ Tߊ[0yE)M%rܠ?}D|% @5H( 55ObZ85QvҦS3k犭C4o"TnoESVnWufY{ *2؆ Јy;2bkFOj U 4a&='& J9jH֜jʗQVy;eJ߼q0u#YѓLZ6B<꽐-*!Rx׏+҇My[?W**=  r t"މ2${oX:GQD%[x4nG5mƖ7Vp•bѤߩXt$~.6&Ssk60,.#8GG9 Fm$("nZP%| Ev@K8BBlad 9nr[H󛋮!uYDNLtD 52ZR~SGp&Ng}SMU쓎!GM#0q.M칏L0gߥ,zˮ#"ډK5W$sN噂VTB⛢0ACiwO4ͣS0NSCap=Y,lazFͷaif!oMzڎ9ϔ`緐SMWnTwж *c 3lYXހ cl}jڻDB4T=U ܳO:{*l6ew[%"Lbg *B|^ 7k iW7`66ٛVS},}nHTaRƑJbm>,2Bj؂^ tkp}iaTsJҚz&6ф=gIq=8M]Kf WI\O8!EIb} pFQ(LG9FL~! +[0 FfI%!W'Bnж%pojD,PVN'ILw]xC6,#}5\T ?oRs<5g0Cf `iG`1c\BwF([yju({=U}Mm=[ƆϵY[wQ/*Wt*8/"Tl"jI"egёq/ZusKhdTu-m(Ȏ  ^YC~7!짼I?ζ2zދ`Of/Fio9dђlwt,> ?RV +~yJ?" o=Clt'iOﲯɯKS.pa +cfWnZt755Kw{kwl629WgL-O 'n05 &d6X1F^K?P7sE*:&mHۿ>86O5/,<+\` F *ﻍ" _ARZ6sALZb5#Nm7)8[87Û雒!vt 7/ů]㜌a'(`1jTz?+hje 8 j MM5⃛l| 68{45c/i4'Hcĝ +Cls<5?VV˹]IG 97kU[2\ּvkR4&T:Y$=v?4r1"LC~??J;|S{>T-Efey3'}DIA'yuiJDRiw@zEo|eǶ0ȏ Hp'*QuLbTC@jUЮl[ZU\TLt C+Ÿ"i T6>biZ)pVg*$Io,1W81nCOU&.I-0 ?H9.OTlp0ĻTӅg}ÚZ8 t% +/x}?;O8X2wcV6:Nu'OvhKOxnBfp&2p6;J<{zMvZ;N'@W~EQs3y;\,l!H@jrR_s*%d _K6/s'8En> &j .-o"ii7ʡjPrߴAE:E۬,pdwfn;mbK[gY'<E9QN(QzF2  BPBOHLz9=C6G TDd%@sGsA FB0gIRVLt6o- v0{o%D.EVP!|)tvyr˕%<ބ2'2Q C&ORhB-BSt}EdH6s·&hm* Br(ͦBc"n"luX sqK6]7z@+/{HvXmgk7%G%< zc^V >(":gmwVB5sY@ ԌjS2pU^V8`Q NyN7=0>"QG޽,Xf,K " t8`MNY*d' }'ɊbDV鎗\KgkmVjީI3U!yÚv>HLGIXtEwFՍt|V8&%w#8,mG s!m.ԣvg9^@5ۘP>,%U}l.˂p4$nTVUX1*^&NEمsΰ |30.Q1w,nxdRVe3¹ 'H9^fݩ&7|r ^m+|z*Ȫb,sji}}^Y2Su!hf7d'iJ+wk<^whufe!- Y'v8'coYn9L)=C~E(l+ՐB%O|&>u"QI!6ZWPWn(X98Ѿrףnd)>0~`^i>2>YC \%=F\ϒ%5Nuxy߮AѹόZ2vRQ-g#mkpv`Y8 SEpad7!ܱ&pMٿ*%aCq(?&Halu#5iv=QNIp-5hwf`s< QL}I gZ)}9*K?)d~;fO*_Mu 1HB&Grɫ㗫j*1 fhiD՞YН"ucRA֞ U뽂Ė"˵v5Eyg.<o(~S]whTBA!FPH#(n$7a(}]r2p쐅nBUUrSq7+fW _Yo[}5=-8  0(y xu&} O&`:@  `-IN|0 `J;C^p07HX`P (8>( c Kp#|d`30ˁ^cqX:L꬛X]^YUW`/+ѕB٭V?&+וa><?K)z̛²RȱV:N)'! !teR<{Q9;|F(nD)a*<3V303R#Ϸ(劋#cjE0,*Fc0fYg^b6@%u35k07O1FG읒DʑʠհțF36b 'MMyjԴ̸虷Ϻ#λbgϙ{w\|~^1$ON1.H[x}Lӗf,^o+VZƲ6/Zȶ~{mظi?Ru5bˊJYc_2wA"o50njqEjE7fY99,ڹRĪevÄA.[$#+pW&e)iscbg&,EyLBWbai8,0$ d⢵v}l[ͳBVKv)kcI oUpevZJt|I yc 3bK ]4y2.r¢ Zx.ӕBV4VQi[d).zd 7(Y!n-u8?t YD-)`뭐;Vns)Y0h)rθ#~+#mJ UZڹ<*H`JqRD M>2n]ܒg%R`uJ;o2l! ]Vgu-0+%N VK9}:n,*oͿN9o(x'ID7{W}4dbg|`|}] Ey~q6n*F q][kB>.R| kav ‘Tȡ"0;BTÝ+*7Z~O?dke%Rbcܸ!Z8X˗|O0C 鍎`1* X]Vert=IBYf1`}^gZ Wlc鏠\)iJhFKIp*å𬔞{vóJz~;w={~9xQY XkjjQ [XoaQ6nX UMPîKJz Q'?7Mg7}Z=d7 ? ?솫,;F;P>20:;kIӇwȣ=O<~3y^|{_ͫ}wط7[p=vğN:}潳Ö>>ϟ|z/x:םv+~}3DC3<7.!:D%$o?>lc2ݑfBKM d"<1qfm=/n 33[U s/WLhetE'a~uh{-1_|0H0[H"򴬐WH~RORIŴc< 0K6be3XBfվd x3x@"K\+'~fØ G:MILfqi]R-"8Aр Zi2Z Z ~K/\߽I֒l$+U,-+cx@xˀ 01̳O\;.J{Nr" Gaj`x_ L?<׃{Nz10s c>0O _hDÐtxL5 nJ20EIOxFw?_|?2(3K^^:t{Xsg 3yf^?(5mY=h:=NJn ܟ?vos}W>/!˹=tzYyW37[ku򏝭,-Z֚Lw̒Y{q֌&c"˽'lKZf(*]Wl+$LLhLVae2M j*犭EŖ+1n|-ʳgX tY-W; 8;eFhҪo'8S1mrYI $\TT Y$9'q?q',5Xʼ M ѻ˼x5)ۡiBsqS[2'ːVXrYf.vݗ2F![`0iVK99`#@c%ČUf(_=yvk  @x30mRa±eM dYɘ rY<|NSg߉K"կՅ@L mM-_Tfɗa4 8{7HRi~FyQ)dXq`3S d_,"E6S.ʷ&ZLc<3ke];/~_ XYto@"7vBxAmö^V^/_=q2X%߲"*8'IR8t#P̯K;Vy1z~%}>irC?QK'X(eR uh iv`E?yү6K8cIbe3}Y Mb2D-vY>u Y{T$1.6. RRd034K t;$PZV$]{}N2q^RaxwM 8v?=8E5TH.uODQ@4b!(Oa* #EW#嫕F$OHI{n,3$7[?G*XǍLĶ]5XpRS w(G_J%NJJ!-mmsO?Tޟv >tCos!P( t\z57o")uHݪgp n|k7n0~k{n< ϭ:{jJx:fǶ:ٖOZ0̝[i=d)j1>}1WB_20IT)עõW0f? .*p#𥁬ůE-] .4Q 3N!pVw)N? . Ml~iuY.qDˆJzC?s?4K;k3~ҘDZZ@Ŭ.,)4 72D.AOxox@ɩϛXejPKS~(setuptools/installer.pyW]o6} Ƀ6ۺY@%" I%߹$%Qv{$4U9\rN`Zq ޾a6q$`bD d'9 ŃhF NcNI4(QGwVon |_LW6#gBreOQ^yi!T""`Fy,ѯ\4 mhMFwK;jDݬ,6QWO|gI7c-T`[TSK瑹nZ͆G<.R3R18uXlNPKS2S,setuptools/launch.pyURn `Gr-k$SUD`:_8 3;9⯚F ArQiR΀D ́ 0{JU;*)H8xOw3FfƢF \ ^a1')Y$f]@dAߺu.,o2H8Y:j -k+ W-s¥O7) "ےYԌ9IdpԿbECD`꫱ n5ռ+"5X5%iO!Q7Y PR۞BR5VAi)ڴG;0yDl%4O6Oga|1l>Q1+0{0i͠H %% [> /5-lZl&l@P 1lyfmfY48ҼTM"'B]W~{[SBgGP. g9BwTb|m ɢ_5O˱A3Ro;DǓ vCU0qh$U9>*=~ŸO O ͓glzLO9B 9ˠ+Vm=ɰv{{}w9\ջ]ݾɃhIE fn|AÀ[v_/aGߊ)٣tk Kwe(ܫx:e3tb5 I0 LJ?kT$ȿIwJ(q8TA< 594Fݯ(6`˝ b#,!8kk 1k5,RYA$>p3i0G⍧AaIp` 5o^>D$ְʭ]0*xJqY}.SLäFpȦk֒A -, Fɍv΢Um'6:qD" +U6+/n6JK-xN I͆i'w^=><ވgrFM jaoE|^|h|X%B"N/ۧM:!8|Ixɍ2jiɯCg'7)^SxϘXE*^2=[9)Ϝ.J^k=Dl 4LX aP&-`bBtD"4wz)Ӭ19zhtS`OzBT>*]H1iyC37uw7_JbOiq)RbfD/u[L&9lO70=zY[ GnoQsIo*Hj.WkLIy:R 륄PSy|E<؝Jlc}8Z>>o]UzSve"3EK'grM=l>Nci❍o-d5w[:IUS@>}>jZ['E˖E4I8Md{Q g^oьY.Nc:V~lyq~Xo$'{B_x\g^蝷슦7{]/ 뛿 v`ᶇr\1^f,If|g9l΋|9bWO&cT5ey gYJ]Fpu_0F3VnM$6knEsYoMdA,Y0,Y(z0eD1I6'upm&'qnY4O0˿9H^`_YLeͲif `*@B]s~~yw_/Ӿw}LbfrzzZ8{~M!޿Odj!95my4K 9@ }/7 0d^ Y(3g z]qs42yG>Njz< >c뀾.nݳ"gSv3fsӈښ)p8ƫ0٬-vJF??sVZ@(-/Oeƈ2EWpHjeD߶{oThgYG0[G 4G2\E<]8i3bSRsK0z-r0 h9LAemSPΒ0Wg L8N |kj4 .Zx8 a}Ta25X`wSwujG^D-Opg NA+$?Z>,Ǩ`Fe*-Yz-1"4h&xni'i0,8\of\KtYAszɄ ElS-^!Dͣ9(s4F֍E`\ϷU EJ|@RlOGIKBMom 8L/2k* HH 4(&6ec>Me@ZI2n.<6v`ɉ3 @_3b2հHEm,E{Q 1[4{hsDc:u.),TqUsKOLq^KSB /$CkxAMbB+ ( xMO{6'S>b)օkmǺI:e3U*vW&e">@/^@m2گIz"fzt|C^db3n GcthƷ:i~1j%N,lmn3K>!ޗ8Yh(&@ܡ"fy͢0%)ywl^@ˍ1gٰ7<4<F~]dHvz?)o-Woqa`>CK;师%ӣ9+y4\2R1;@_Հ8O0s/s#$̗F+dH2UQԿ>Ǐ ;ؐ{8蝞to{;VmT%#빹he%Ku+vx.Yo@Dی>I R(/į4E6sL +s1fcOBհo/sѭjP@&PS1)I<8 AЂ좰ט\(I>J GZR"o_̒kQTr=+cyfpZS۫"7`Gw]/vS[_b: g#-]tDcyf{6Z~_1C2m{e;4&}r[)_ӧ3+[4 ft1 CSoME,{ `B\h1)rҾ2[Hk4$ OVo Q(Mƕ"(.ai1:p%^e P'uhG("e/= `=[_i*i:A-:8>-udK:1{On<84JxjE fDJ 2?+Rq@ uE)*=gpx3|]-D'm<.5Ro(T@rI}5OMx,}%>V)9Tx036Y#0g0%[_1PCF,9< !p#Y"eIOtng=sVa(T߄qmO o^﯃R$՜k@$B_soY6v#`b `wXuq9K[1rX/3P=ti4Ƹ4MvFB[pP_ $nЦvDzШn@u=o6{$ @\Lb-$:u[PE'{lZ*T!@C2n dF#KM9N#߉1琥M0DCӽ]\Rf0pXs]w497ȃ<ե؁XljX!_C~ ]O,v[1P>q8M'yJJSâlby >ʆvboj>Tl5WUT }HNo[ϒK5ͧ-BmfRL,iVLhgT[Es}V*ʥä#nx;5þ3Wdӿ?,6tLkf4ڗZ!.y  jhu83-$3a S\ث(φ֔52yw @N8,F8CDF*x 3Qՠpmlc@-<ɓxY\#:ŮoOly dF" 1:SֹY8;9Xi-gɧ3Lᙫ 9{5(#Ц=gYaDܗ&;ϴY5&aPu !` DNry1M{w.l<)`Uea$>{ט`\D:R-HóDb iR(pKN>$  Pʄ|KSZLBp6U0?R[Dԡ;Kf\3] DzDYkmfVC069maus*Q61F$.MْߟGu*P 566ؿisʙIԫ48{Hn{ǔF*&j 0Q!+a)Ch=yvkb*2s4\ʀ!*|r8xC-W"ȏ5t1WRr%keg`*,xË`W |ѭ庠gYS~~I~섅C|U{G!^=n90y|ݺ!ŇrDQQ}3 :7 Vs4M5QcR\eF./E#y1b bW +؍}! _fTDIBmC _3KEand xMEI+( 2› n$@#uLө˛tBsNmURd氀u"թ89xCR_D[ȳ6 W]Kjș69(߯O|+VV& gR>piI@qRqj?D]|z_UK3-4f$j]1]tG:n^cc]t7ooYIJL_(-/oDoZ8Eae۱R XW܀]oY| 70cEyȏ!c 7Y 79T6jX36[Xg,s>db]MȼA0,y-7[]if\(uK;Gv5Ro{ս~`7հ? r hܻZqd;17q,T|Fic1' 7Ȱ֯fo3R)6g&2c0ߪf5g,@T kFڏV&C1λ u!uu*uGBP*yPiuE[i*).[jP# a;rJ\ c]l9|`:ofU#zH3EHuLx1Yck ?k,D@(.Ô p(S규77F6{σQn.N;5LZ/31M 1]}an|Ӏc&ߘ.iބ2== T`!',.إ9=F+3E.n&v.HfcfXw)E% UTYlW9:WKj5A+،w(W4qcRQxWtNw$Y^`tT./[GЭ(yag+|]J fNQA)9a d_24 9VΘ"CQu'^hLL>9JwS<)}>;~,ACgL[mjQC%ʛ6vɐvw2\Aµd -hYY߹f۫LFW]ubVjJTg :ɶf$f*a^2_]m8O* :aUهWfe=<~U7s)኷y~}wzPkW"aեUn.ܧaP\1ƺb}=FWq\}$u~4GAŕ~#"՗u0]?(XB Θ(qaJ)ܧl"#MҧR,)uOMi6U&;LWm  KȪ=@E<,a<_;5'dK'l Qɘ;J}K/߱x1b3Mmyȯ1~ K2 3WlhB+ԣ؄1.Į%(_Ob6NRfZG k!W{ظ䛓Q9 RYXf=ðaycow'sFS5ظͼ6;,SNY0Y7R&"gW"~7jV|rD+qWjPvXsvp(oۻҬ#4.3x# I*TWRAkd[4ʽ( ۉ|O&/70QAn ǽLU3f=ov+\`:J)d-`I-wwkQH *oYB &S;CvݏAh>$ {f2)Y:KkХѲSjУ j1IC,FgeB &Ze_J zcݿFɮ\כa:=I%_ $YoX@,uQZn뵈Qt[O$aI OQK@fBZKyC1=|1OvGHp#8@=Ne8`tA@N/r+-l`N NC@/T[Qx"F7OK $11&#XU3ezK4ehUFtnqb9ݵ)f[ap?- EI3d[$7d} YT9bD@֙=κͿW̩fH5ZMr$BYhX;}1X|/"6FNȂour .UI>Þ@wТOt w+ʐ=F zhu7b_GM ! /Fo '#M|N ,IJ}{ : qRZQdFk_|fHA9:@0)q u˝hp7S7#K 5e@`-ͲeZ̯ͫWC6Ɋ{Wxi"-H/GDש#t$Pt>HȣB ^t횫^OND%PS⿧8[}"kmQJ]U ] 4iZF' &eri g}ft~ R]-eZeLzlw=}vήݼ6W2{ U)ڣB q^&0tl/^2].W* UiqLX-MjgdH]  YIsP Z! v5NUvWk6[.JBS,5 xqfuG+ڀei\N`*$I5E= O_ PQQ0_@mV^ 2b #欃a-Di}/̤4R'E!B?PKSAr-setuptools/package_index.py}kwFw u=l';v[N|&5D4I@@ɴ۷9)^]] 7_iY^ie:AV]Efy9 {rUmljnXyU]k6" ZQUUhi]iU*Qk0U2-rQu#$ԧ[-~YRuUj >ujD^1|u9ԢT.^ߞ<ǫMxn<˛/LU9 ~ɛGeU/"(&] ~x*r s&M:2] J Cj2 `ԳO{Zq7Qy8&gQ;O3ErӅjii+orP~?zM2YVhFR]ek=8 !ʽ=7O` |L H|>NGOF+}?${޷oNwYb;N_Q}[^>wӲ4@ tcG!|yx>z_oQB 7ЀơPNb,2reρa0t4;o0<RÛ&ok?q ,٧oq(Z^Md1/>ї iVEFddNi&kF/L|1Bb̪z{b޼'DEӆa^jhG38y7yؓ0k\ᩃOML~ ^oEUXd|Zm&U`o ih-" t ZO%~ û ]5@^Ϊxh1|Jeb&emv$Qwz/п. ;P3a*VmcZm maHFtvqgj44h;@i3 jwAp' 3Og#\J9K^oxnj#˪C@WU@Z~#@Eu-jX21?"Ɖ`"F>c0(:oQ L볣nC5Dxtxy*Q {B^kQF xzj8=8ۅwt}S~uqisS9nGWFIn>H C\I{i[. QfE\F'>0@tdyDIcVDI OGgo-Ì")E%pᩲ! ~^ȌAt=v9}Xø(\vA:dm:&%?sQd(c mſnv̱ 0|H5P(2%y/kPSa8RƷ)H3@B;*jQMƁmbTfP6^-j 0T2*: ;(bζLȚh S-?) RT $S?9Zb>GȖdg)~vW],1pw62& ]G|]vD)qj0 Q4>ۅ ]vDÔ%!,ɛ Z h"j&g;rXu @l>fR7ͬ͋rZ :꼅B $&Q[p/84vSAM UV#=̻ J7(kpK9ag O+]Y}Wom\EMl;Md/--qx3Odhv{sj{v{Jq;%QZe+2TȄ v Fm^  U$q$CU(a?S1o`]ULGkb7O%CR=CoD)AZ`  r,"_Y\| e+YMEuMϝV!r|~+5S‚補KPf ?bN0,uu)C7e~cg5>#H l]^83*x'Yyqpoΐ'e$J \?m:G _cM[T\hD-U(!/0C8Xxͮ(im!vz{iUzKQ EfSnL m+*Yҩ :R3dIϕ'ȢF3@^ZTC94CM>Cde7spH4{7`?`j㎑[ 3|- PΖ@C(y !uCsxdCt"$Bn`d%b©wO2ǷTrF2(<'-~kY?9 ã_8V้i::s 'DYB"4It]7Oq:-cèTDH0*UfVaLV v=pm$- mĸYz7pՏZ<l%`&d%μq[#nF>Qw-Y6[ q%_|xpf$T;"`Er:5u rl¼9\ Rd -8[o6g yy ]5*Oz~0AquQ5m3»c>Oź !`ͤi1UaBњtV 8=FvտZa˃Њ$a)2l3Am{;a:NJįALH₊y ZahH ޢGfLm0{ m#kN !<6$Nx^Y{K~OOEPryUEqGt4VCI2`:eLB|̑_zDˆQj8jqbn. nA"楇3꺓^32b͉\eXHp ˅^p4ԣoK /7.=XoA˙T&.hNQ;4{6u6o{lAB3&v|kbDz ۠D+-tڮ1|]T!N]:Amn'),1.Uk)}1N!N@Ų}Q2l;G KTD, trgw)g fhA<Y5,n)L턦E}0`pz y9tFf%0-ӓiQIXSD֔ ۝L$s2WHflYրmԳ+-ʳ+ £1k$3Z92ǦV(N1Kժe~pɨCWZMFfPa N΁u!JS/ ħ'bQ"xlN~#C "򘎆 !I=KG+\:*zP.YڦE ݎed Z4zs(qMq&Iq.ó;ZNjOި3[hѠ`%!G/6)6GŲ'{M󢉓HaĴhn[{|h2O0atx(BEn#nh_R.j:jI!:+k$`5;Di)hO ١8FNhW$V9BrC=MgB;r8=PI=<4z8PW%$eQd_uJB"d))"%,Oѿ* IK: 7XE-Qnu3w3GFoN% mZDvۊ$4<|ɧ69BW{w/^ҩFo . XfQV N_.2;l6deBy LH/>%.*&(hKTZ<2fpxX0x5N, J OŧH#ghBÎPXllYcŔt þL(:UT2R%kRَؽ&(?tvnlw0!7R4ߨ<5TZу:l,FQ MT6C7%B^V<yN1i}9pOEK67^v%<5{`N%;N-*qE-;ƭ6 u&bg]7&֓./4Xf}37 Kܳ;rJ2Ð Rlzr9"$  wm$*uaI) BW+~L6| R؝Ry Rhav) (dN.!ܿe*u% nT5dunoEYe'HWja ~:PP'NaoBgr[]-Y a|gd(赟-X\hZ(}s_.W6q]j(BI>F#:96ΞEN@L.?G:_Rd9X&u_c2DQ!p?摣]6$b2j!&I$_DUmJ,"L<:ee*/n)c`7Jɶ"eã=KȧC58Č88.[[ U>ŶJ408ct.D  f؃d9:7B!n7 4ϭ#x] Y`T#B444T#"bWHJWW)GnTeg 9r,}~N8:hLe'L$̈́c%Ze]5^O49Esg(n+LF+| U&rQVY=\@2ٺv&tê yrdF^qjfĆ&I$tV2yQml!1^ǹ)'(ShYȸ. % ȥN*u39X?|NV]gC/C*,5ִzy ^7^ @҈ʐ 6pHia$yz}8D▪{4UF=H7WOFNt碜^g3v$KE; P.O0i v}6U΢J0q-,rpJl;M%[R{_e$O /K/LKQ&եjKmn+_[7l]2~fRCw]#AKFcG ΃Yj6Q~8!b(NN)&^) K4,;DӪ%Gn2HKnQ3 Vj8<^*pYmї9#VqB9tSA7s+'4Jje?:q97Dj  2֍5eL,??|VQW:5ksv[blihbd~ǙW (Z7 ɱ70+(h`ȕ?%?N7PNKKeOyaIM_ds ١I A^R);O ?p&^(:?a4T3O_kDS쏇ޖhdZi 49R7.C'1DEx?5)?Al*G >'eͣ&;N/:֐; ?vP6޷[T);7DleBl/c/OI'p}rh]k$v"$3QMU}i^R%K%JZ$u-Rb0շ-оFI7Dހ-6-T x˶3[el~Oޝ<2Z8l;xb*"EKyeX(O;&VY -OޟҕKM̂PIn 2y('mlK JCn<6 _yle#kT7r0f\BV IVa#LQU`cf06??M]ޑ5LLTe2rN%G~)+V5u'sD:{$NsduwuUD0aN@iCoO@%[ʐ8֯I1e/;\MfI-&v& ,f~Q/N^[@+;YKmBGLV\Kƞ/\up/}|"PvpW,TME>Sh1oc0.=kuޭ:,Dgfᮈ,ԩd6f@0`/\SKil͵0|^{YvBlFOu\U' ;],+yM]akhzqzL0hH;Υtq~]vߪ;&޽*{{;./*e[)^XCIn`3QSmˆ|Eh{qCicZKH'{<txL_<_?ٽ}Q^I& OIJ\/vz}f(uJ$8qas,Uk^Ҟv,h$6+ߠ#$ S{$Od1tLDq.tYk&u[{k)!{W{J kJ}աV3ZX+Z2:u`PfOdl&{>|D984t~jg;ŇTb%2 >[4% תk4^@&TsVȀ{w/5>wEޏ6Gw2}ԕ{(Kpkn)U7ݹXJɰG`r/fBw U JݠA YUV0Lp1i]o k@Scm.= E V|2zU[=}R Ѫfk'kpPpK:$e;7w"=):f@/V,GSNޤk64NP4AovRqiK)`bDz'"c}1.px<¿v5-.ݳ"sAgŋV9'k}{YФ>AU]`m4u){lb%t#U ']v9ΐVO.$4.u7zS>xv9-]f^a2wn] fO;~kc -i㩦lAobZK~`;3 Nj%ᥲKCŌ-T*oU?+j,dQ f`CfH04y:vOUJ/sS/e#q"Ҹmj%b> d!\54rZHd7ķmM70U3*E"x|髷T\\o^ld}֑S3|OGAYesrGy1O[gNc抺Al$sa|*y'(K~e5^oAoiՙ : mM'MG.;ʱ$ć ><o.|t,wЫR@ǐӝDku1߷un_{ꮪeǽUn4GތG3ar0!ۍaIB6'\ɢt1m5#B9j U3CG.C JSPohVVk9pWH.\#^ˣkJ9XŃ 9Ǘluʽmx0}3_lEa. Fp^}_#WF;8=&}/kgn#iVDiN>D/$8n5_N,|݈C:p2@*#>S.M1WOqn'~xGnљ&Lx]]{'XS  9Sg@JGtV~WyO$ž^ NiTcyْ܁<s@׎;oxT;oh"ɺ#fEPs݂%AOV>~.lcݧؒ_T2ΨU?{hTNSN#'\ άs|=C$أO0N[#}}"|9$$"p!c`Ƭ}݆3-k͎WxoP !&(@Iڤ}rĀ2M/25c$"KSyh֋W>;ɓ/0tQYfPKSVDsetuptools/py34compat.pyeM ! 9E(tE=8c:J޾U) -x?ǜD _^egw"IF;Rഎ@vmɴm"CUתt{v7 ikBr?;vmiPKSQ짟 8setuptools/sandbox.py۶wLrh銢C+$-@岬-gղ/)Ka3p~P"5lYfk+vͺ(]7BKh [U+>e#Mm{ yclJm*; 5[zB][*RR13a=7Xn'j-TY#ISv]]Z.[u(My,jDQWv\v2k`Śߐ%-/Ւua|>7 ;QL,$7~T^o_@R,Aoyв\,Y*3~a#w !/YDG8~qň' `ߏE$WVH{ryhJ$7JciHIUjɰ#s:5x[h=~4h>.fq(\و<#狺ڊ#mLK^H|%$8p u>*&[kUùi3V?!sc2;iN'NmhRZa0;X ٿCAJ{[W$7 >$v2}R1a! Phe#$s+Y: Mi%L{D_~T踲wG(W{l 8[XT i;Y1Nh#=GϘW؉WT|J&JI5E-Hv A>` A P >Ry(HaBiOG74JI,zrހɁ.( mZcEY"ze[eoITq4B4k *dJkO 8Pf9+o-D Tix0%_H#I&IjM~R k4JubOC4zʞhĐ?s`G {ϑHk<y@̎7xZ\׸McI11+mc˗&n*&Pqƥ6ф\K^)Aճ!T=pĬI ko]a]٬ 9?sV7G1(ץC`vMTŞw^c*L*-mc)yn 7,M1;TvQ RFK"7B۷n5pZHL ,T:Hdobjap}Q!JHk]wsT/R bYS4C9cN\Frs^y_1JuV6.~8' /‰g1'kr{hF nV~[Opt9٩ /ar k|QbLj2zHј|sm_z7ϟ]\?BN"ðLS*-J7:`5JF t5A$R=19xڔmQ5?A%|E`qE=y~ne+k\8wܔEGId_/?I`%*b9PW:I=)ʞ]pӹsnqxY } <8ݻZCNV7E%zS,mH"'mU|-$&"4Ю<4e@WΡL# H%؊Ca1Aq!uN\{ha2,#UbڧPrCjz}&p8m' |u媣"Y\SGiaL:]/2`aS }a} "t0rR6~gbH+yiP=9e" f_6sNOU|ʵ\R)z/’X8 +Ա8.q^*(Mwc_}c7\\Q _B1 ڣ,+81T ;@]_;պζw Ao̎6_eB||POI8u*n#A+9޶R&_= i3z֦` 5"kne~ n,UXz>JoĎޚh`=F=pQYPbN=r:M1g!z b6P)|uX֡|5w2E1otA#ds(pĺ*\~#8r=D/6xxH@\N|ղł RV<_P-YǀbZ|]2oBcyj)-%6esˢ:2k=B9RxO3iaS R-a@+(@Et| NNL?-S܌94$s֚O-?cycrq ,!@*ޜ`$`M9(Ⱥ RHAY".u8RD!!\c<Ō|;eL6G_`_M _YPwmFK {$PPi!'tVIP5),r$/&ݞK= _(l jv! 60p掟7R!ۓFA_3LG G6JPĞZl!D#IL\cS5\7 RPo5m]db 8ЪsW,z`#,(mMghQ.UWYzzZ%f,tJQaP;{M#H<S5#(#m|CfDl܊$Ɔ s&,48JZht蹻 GIjid@ 붱1٬nq(}-a1m3+'z%N/<*Fj˸?^(*@#źA/>C4\U,q!ݫG@K~coM}ݴ;sexӋt`<6ĩ/d|#5]>ċdt'h4=--5]*gz2xqB|95?/MZSk)% SS6XΜ\+q7&H[彼)'JFƸ7#q& Yߙ;FW &cًo{)^#뜝»7r^b8rrK)zn.M욁@( ݿ$نcyb8H8]oeEВ'KqxM[~dhc@ L; /Z&{w}w?Q)DQz~}󓿿k5υ|sŠvnl#y;_eBOCI-SZ Ks-2z_ثٻ+xgkz)~^x/ssCûY{)oz2t(1n#%EGG=\A[ߜvEƾCg]#2O=O}"wM}" I k>XwiUޕBxaX\ru|^-K:q_cHrr؁5W_򈗿[m GĢu]Cy1/zj+zQKsE10 1@Ai)au) _^"#anP#'<\lYSb6i.ՂCGQLjGgB.>2Sめ_X. a3{P_8!rB_a.$[0UzdYJnpJ7nIznjˢ#G$զGS%ˎ6 @AU{$\Qm(Z g(BjԅX -3"&Jο^ܲ2-4b  mc*udy.DL@r,3Y@ց"GqS/.pϚU]m2YFBΫrV5gLk(dO ֌JeҥĄ֢vQmv-Zg3 bJͮRTԂˊFTpnQ@*b;Y?c v%)NUMˍa 9鬄~!APd(Kk`'qPc[pT5`="o@ځwlj뺐&x,p y/$TOyScWkhec+T}@J7 2Uo D  %ئ; N662^0:0 1&RMa1fY P`ϳBIpX z#Q'AgckrɢSP/2}ȣך2n0`ayP?E2[HVn\[CI[%N9X.jy!ngvfCT EJexÿAyn%o@8 DuMw8\"<>duXZKr#d/IdcNFg8 ¹]N E_V-cx ZYZ?U[L6]u-0zz{pq;'3Sӛ zIت;.˗06|RLpj@ ZTA}UՎRH(V'/\uuL߱:8nj)fչ3Cj @E1PbRk|>{^K2½/[ S#h{ w,@`rS Jw)~׈I\tiapŏ '<~7GCXaaMCbL?`yR_dw5{XW`yM4!3GSB\X/LNҞ*/`:IGϣ_ \݅" ;Ӷz)^9m{x`ǺQkz{͑pf=c/yfu81^cbF1*K{uRn8Tc1Mn'7ۻ0·CbֿR2vOrا +,'v mtQkNJ4|hyԃȮpySraeC"jŽBc QO.#iY \a@RV&J&'J{UˣPBN%mBiቜ7Wz9NǴSu;1O }CqP yy 7Re0{߬hXS{z6\,fNgco^/Ï{FaN~w6jÄJ>X16VJ*f?PKSݳB!setuptools/_distutils/__init__.pyUQN0OahP `B(r+S_SLw{]UUiLE^{`G0|,H<=abLʵLR`VxA4VlH0Y(nYv,B\jW*N)m=I5ng> ,VJ$z/laŒVHvCDÑPoEㅶS0]\QW7}mDϼC֤lL ﭰȧxŞG! ʰdp8rQY}/p@ߋ+QPKS1MQ&setuptools/_distutils/_msvccompiler.py]P?:fiXgk*Em"/+/OcK dm93eRU=8b͌7O?>|oƎxQ Z0YeJ=CR^7#J^e>#jB^/㤄S &AB+kujWfիOaZs&dl JXo9[YIYΧ?.D.Di܇h2FJBZaf; exLO~F a/) fkqy$x ͢ z"ORcG1N /;J$qİL ayEh݈ώ+ 7@1KYEIҤu QGi!\I%%:JG )汯)qsZ2|0sV2\,^1CO7e4w! a)oxG?Z*ʻNkyy8ׄ9[B %apGTN5גdTXZD7ͷ w(/+mZ2 P:uTO Ycܳfv~߁`'*g³|g0L싲1K/4JuWgae[VD`x'IBpb z9F+&;U 9:xy|r|G8}b<1~y8ECq9Ԅa!] %k2ЗSMo%_IL(w`n=þ|er}Ɩۚ rߘek sjuƬ%w-{z9eB?[: }IE if tXqģ1X#^A+aM&aYQF{źE&Alitf¯J. GF`QEqİq.˄F4) 툵TF+O) ڀ U]@za-%j2M,}Bq~볃wL-+e FΝD华^3ujV dmd;@WpCJyD0H0v<nvBue\|厥@xv ^H@)8@2~zx mV3̳NzgA0a( eVI7̋ ײvpbE RP @02-FZ,!޽EJ\8''Y15gߝ%"/}>~:8h#Hb{Ս}4\qFsl Q*yzͷ1kt0".%N%ú,*HG栔Ȱ^GcRr$幭6EUǧ$娠XbPo#`([.VWae̅ #,q,t@9נɈ @Pt٬.yXG%`AI, i+d Й`b pub!Rؖ! )ߍZ@}4}b2q 6,eTH z XrM2d3 c64`~՜>+u؈AV!2.o,:Kv(Neĉ`M4dw,Y+׏kT<|ӽ>7QQzZSrba4;T2 (y6z>RCX4w$>q)i7IFD]Q=aq`ȨcvT}"(@:{Pd`$<81 #xgxv 4fChƫѭo Kp)L@$T7R2w2p"cQTmZ(a*xKsۨpn`1uUU#@@C[>Nh%F J \jl郙i;ƽ.%`+2`U6o}t_=gCɄɏq;'c"5F k\*k7 0ڞu;L1LMD;| ;fhvۥfw 6:XQ T ݌A[t576NR}R%8ΐ@65;d?{A$7`륧m-'dZIf-WŖ4Beqauʃ~)] @*!{2J*zW;zNXTB(ހf'KU0h6d;㾋SW*ᔣ30>E߄t kwHgdϳ<9+}|BGo>Lѽ3TU|`XAH9ЄiFH2Frt"W!r^!C9ý!]3˃7'SYj/zhb6ΧG雿M/ X4|!JL)zoV 6B>;IA8:]e~f; t-dγ=MmB,S774:cW>MvJ=z%Kj_'Y{N/oW[ EunVNjv\ !{)}Y H ؤEf[i޵g_%t<@F2N7,ͳ}C%ì~:~& 0|%1,B<% cC <uV^UF 5x >qM]l9˵á 2@:cYMBKm 9,K!iQ=SY !9Ea(q2s,+n>sW@Q7taE_::~fxY8Y:ژM[Uy}+g7] (02%|.rWBNQ}&"м0Six?.-fz*z!5.0'/3<@țzb_d1 `W?,A}Vf5|GmϝZh}KXHZf8R̰˞ +-9aW"^!3'ma᳃P )ST/(~Iv~+P4n0V@f-7Tc-$Y pNKR pzfIo fIle`RFgރiz<OG(P~rv"OR8L&b# [@o3Jj瘴\ Iπ}jg!jֿW?$[ЏVVS."R< Dp(|n;E\\j8rߌP,pXRu]w 9eЏUvƼ>` F%L]^ Ӆ:; '5d$XmJnE1cflY "`t7Rz×:=RVbsm JUw䙥дҎEAX w'?Ju0Ȝ.#n h:*Qa$ 00 DulX¡\vG hq*5h˿r_ܝ S(QϮԦ+VmQ70=sxw+fƱm<WQA#BVomR U l| T΅vBLAuBL0J`z $Z:JxDA]h)`.!@w#}Xz7>OA2Y e ƀ HM ]P^ a3WTEq8BL$Bq;5 :ՋneGj>^jጇAyvg`rU{8oX0lY#XMJsT S;~vrn:@P{qIy;]_Y}1{Z!F6`KpbaqEnmHPSJT:ބ.'{[(BPAR0 $xWcZ ^B7/}{>f/LR__R_Wa.Zyƭ!]bbk){ӶU=HĒ> !ͫ ®oW`Ee ^U #UVg"spAMzf!û]&\"x ul=u$/E>ޝ^|8uvon2JQM; :"8Bq&HhQ k[%R<n gg$Y]?d,tDq*xn2nWHKރ$π)@'k^tі޼,+6D7ѵseh>(ߺр{w#8NܫEjF2NF:>VOǮ-4:oiɔ^s:ĺtV9^Th5e3̓2ƓS-ndq_I2BHCqR`_B3XG=ھ݀~fSւpl(n2 -ݗVTkͬ>;4/K#%[DӻFmxZ' "M?ςyZLrj.fAnN-8H|G[m2K#"ayshD,3H6Vtu7xd9ּ[DY|vMCQQn%ŋ'W; >t ѳ go9',`9 ۜsp)cb|l rSoj}%OH5+Ӟ3ƫ>Θ7 fiD.KGS8KgD$2 VNmOBwe,3^-n7О-y Z9$؋*Y)89.T4)dmɹ/Gެ`SL96h2Kf3$ dgR!v992 3Um5"_*t䣊]dԿT[iFX.ЊT-2:Ֆ u"$-m-)f\ٜ(cJ@;CELB@L<$  I+H|uKm{иd~AGԹ46-GS9)it1ϫ! =͊"r dzdR_<,hG^!GG2_үg޲*˰0EDEPEu'*hѕH@2v @ 9S<0?ߑ:e~$5xDzy8V_~ q? ? 6segL鄅_ȽO7U5\I7SbMv^y==W^3AJʮ\1h! M1a6*<{y*`j%/kC0@9pۀcxHd.Qej채LGKiz@);kSLRcY?HVh*QJD*"tNy>SR ֳ {*, Y<]SqUyMzw4)9jZ藺m;1OǏ7R9ҡ{8E?r`2;{1Aa?Vy 8N;EΩ( qԕӭOpVfXaXt/=4TSu?C\'EVQAJ1RȀ ;-kP}te\ TgZH?; c:qُ7!?~9`9WPQ?eerIsLBɈ#;B࿚(,KTtVp?x, j1n-[;g-y/VLuz-Mų#{D6؜9W Y I>/Sz|^)~;b_~~~?^}j´{>^n"W;^%j)*N&]bRszsH4 + ''iå&=tJ*4MUkSSӑ"ҿChUMwg D2PMy0pokFG%Ǝ>3hntljKdEIy^ˣrJء7ez&Z2Wt7Z^ &^2]jHy9<{@u|4}J* yiA#+aKV}j\2uYC|҆C>txRhow(&9AMzR"4 /U[ _ 匔o{B:O3]GRӑQ4H:1Tf4m<^WM]_/e9v5 y>27"C<ʏʣ;9Mf0?k\VͰCɽ1@4seD׳mv/łB2Q1\ٴ;^Qn'_COz?*w)$ިݕvKM'ԉHj9|Pnec9IhW"kD tiV.36+^ $F}BdYd,eN\fKPKSF9.:%setuptools/_distutils/bcppcompiler.py]6}E }"(4-z6A" Ah]ITIiE5ĖÙ|svXB]+JM˪%Wdf;ʬ.^LTM+ 5[96UY޲eV*ثOj}X,...!͑9Ck-m2 oTb'd{|U`niQWK#kM)n?JU,EV5GVJyY)n9bR<,co޾Gs"MA$ZV\֜ʂiѲBjp 2 ɮ%2 he hXA{~j /Z&AJVl8MT$O|{FĽ7boH[GΎixdεNeC"p_-OqZfY sJ#a߽zQ-Q +rsp,Y;&[Xz|0 Q2Lj(HcKF%G[9 ؎V$۪T\Q 棶k>_RJy@}IYHSJҵ٦:^Fl)u9 6( 7ZT,h7u ڷxޙ:2 Z-C,*yEeY- xpTO(jv%$Z#-lgxi?Nzu(6cqA@*Wtaܒ9h^hG7UL_Q?8x-] @sh"uVq448_љEp 'idU@!Hn®IdSRlxb! DQsV_?':rG`'`BE,ּo/Ͻ,1U]=a9H9m8Yb)0&h#X0![s Wg";jWp`< k9}V  &ϿzG-B0hvzYFu3Z׳/迿sk֦tCb(eөQ[}cX{k+W-#&XD : £vi`4f޽ҿ \Im:/k3h#* &S;lI^of$:\0[eӉ $ kR'Ťgt>eس4\ 5]g "fqʣ_-$^O9o:^j?|-T8&8;^MF$4 5,A7-'?R=E x܎^*?&^CCΰf 4R;/Gp <^(Ҟ2-!>H`RL#(A"}+ђ#<)3";5:`W\GSjg J[ ԃw褈$ѮO啐*ևi$`c I)0sa/5dPe׋Hb @ rˑNEL+Nev5yBR}w.^aF`UivQb1rj>l.D%è-aS'^KULP:f~m /=DEP "0gTYcYrWB;^ܔS} 9v9&L9T#YUBFș>mvT_,][ͱ^.BW$53W!<@Q(2PnAnO헙ˏwPdEh@3RH<ک8 ܭxGͩ']jKY.B ljK.yꄭ9I\y{@u@T<}c7j#y=SC U30lrbh@}=VoNOD`h\p3D g@̉88-d*C!7wBvv!Pj,gNrUmOJ96| 0z8>JN7= Lr:[«iWpZN!9,,>k\M-4'Bactztj8'7&r\& 9aNZcBY*^RtrނGH\O%9l\Qkt|/=DxCLwۭ*3Xػ#OL7\6^4A?$y(Q[g2Elq#}ZCQcTaJJ6AN䈲|q)i &ge/K&ו/+rޣԧ\^of4 ;"-NPH(Mop/#f_ͦ$՝C97bj 3~Ja>J0ʳ@gqF]*l} huP/fӌuDʩC`reN3Q HPT9.>xhܰ,,ԓ9݂D'I20٨NӼDӞx0we9ʰnK*H6Q؜ֿ6>&n}(aU0c|M$M0ח2Q3ۄxM*"SŤMutD$4 L A.dmVg_vuudNj `%}yƀ(|J,'-{0ߤHeB\ۋRB9m +x# 眓w^fwfruο΂=|%:/FG깋A71c7@/w35/OQr7AD74`ϸrWMY}> KGgJ*l9@)h9QF (O> ^`:ǪftЛɢyȃK1[D0_A %3Qh$33\>,sZ)4>QP>Ҍ*<;u+PKS4L1"setuptools/_distutils/ccompiler.py}sDZ+6P@!Ulvt-WdB-v]dw! kfzv$8rJ,L&EE7]YeSYYw˗<$[u}}:UuIIaemuouu'A*:6OC7O @fIm.ï]vWoa5_mm,aˢlÆ2UmLܴ~7lu7)h}?m[53ƶۏ˳~i_ 7jA X;,-˪kKfk[oK)7ƀ?t`e`7e]$Y.x-dg5&uHjYUzسo7;-eU&xke]j~Se}ߖ+ -p5n:؁ѦFj_6mi6F: 6s=C/Z=#Ȳ,;DoTbۃHpYUt쀨FlJL{3h`#Bn1lP(odj';3ŝdP@u_ ?7Ќ*_ s.{m Ïn`=[ *$Xs7 +WQs+'+;!S+pS筁E9MJ`̇0M b0 P98jPSDY{H)V jiiR`1 ȌhqҰK.9@V5ݮȡ]xNw!GrK?#-ԛ..*>r)fXa `EQwK;IbP[[L~[/b9jUAzѴ7َX-^x.-=qqh4]]~TQcΔ5 3L 8nշB iA&aZFAmYXÂ`;nfF}:OJ`uLf+^;2mJyNK\5K% d`eW >]aBZ[5/+`o %%kdЧ;c g\av-2#+։‰3U&MʊAݿmZ}2CBvas~ԟȔY73⭖=}dJc2+(H`uTaH8YY<f1[h} m!v2@(n5##{rv0Pw[`'n8CHebj!Xc2 '<2c90x)f\&=Du<7L?\ҁUeth04[,ܗ.7]f^CtA8BV5!tS%(K0vQkKְO'MFL&|POuIRRgwۙDFP.`B4JDbe'eQ&Yp. vp8anJ~"Jٙ謱 {2㠄;Ƈf4q. :Jg/>ʑ;.F匙bvH;Ё%Z,W~f3vt)eLp#՛aUFV5w5gb3BCU^YݣρV ؁`5vEo fLV%гPrHP\pVY~`L7T i_(=xEF-~hlB>Lq,wY8Ha>06eqb5 z<]["m "hͦuޓ[jٛ;1%EcNh=!ScmOʇA+r!xwR4eͮ @&帋h@U3ǘ>rA8[>@ *XtAA "On :|c+`Y*N[":$l?mV¾3t1]-~"BImu䳨#ϒ%D\f)/^*K4g#/)};G0R=ps6Ug V,6f =Y0>nتm2}ruE"k} `Žӫ٠$hQk!1ìO@ B'_oh u~ 8 yA-SIe<_xMR>1N} z.8u$zMV8> f:!=pзóժ3΀$o8_%0(:&+px槇n0QRQJi܁4exOB DO`(*6Ȋbv֒)ې , t)nFc U Zq"tXXhQL{%G(U;xC9p~2|}, ,Ig(i pcs`5#Aq$48#oO|bkLܧ&t{\#FZvRlGȘMi)`3skH>E=v6s7C!HGv f#*ƭV.4Ugr54t"8~ilݜmV ʼn0ć9'Na(bI'="⒏fQS6pP1 ̓#5L?eD#mdCm3䠫IhqSԖ!h)$I%,1~QHK!=i ǭ'F1E[0z~'8StCaW.8 !Q/vX1脎vEq¦;t9V텖3V2$h1IA8G'2Ri̚z׼!:8hީ{m48sj۶!HJb>J J0r|O& :ټg-ckiV[@ꑩ"%SHBZ*͑&F:i95>b'շK˂C#Bň@F'YUfIrC9vlm I>ؓ֨+qgYDq[ lǢVZ: E^*<Ȫ<IoYeDA,)ih07"A M}Ø '%ߧZװ%yDȟ.gtfv^N[SB.- w6FUd.]&nn3bBcXLdv+YP )4 iYpv4IuL}fJZbvF3d+茠,Y(&f>tG)kOnfc#g8ݏFI'a&ۃ5;@1KU0[ہ(dc Y΋1%TntQxƸb~EMZՂ-rc~/%)H%Օna.߽AmVoL=9b@gկJM/ZB)pvrZArsn;n.~ ݳG\QS]7%UmAqޔRi(ڨ΋B K{?tҸfemm Ӵ$].juP\ e6S=1DF lt^c"n`t1pl,4? ˜¡[S}{`Aߥ2lԛ3:C( h; pzum\PJDa&ܵeiHY3]_`jT#ׅ؜;R'p\4Qe(`g|\űK { h:tj{pK,*pg]7Ln |#Vp``}̐( =^.N `F (@Yt"CYX]K'{XɱWWh$ *d3L^kFCNlvX2n_C "EaFǠRSdo$ݘsS~d0? eH$d"TGa #*:2(aӲ(],I K8M[nJer'ߠNDT3oNuYv{V9^et(6$墏t;ELuMu"4mXu[>cjJUUc6" K?Ŵ])E&ci]Gp6$QB}=+0ѫr7ʱZ\dh])eٳݔB@]t{ ^.j$7:s*|P h cr$o]p:d.v\аZkKƮ[0cegSr)EHd(,^ - ₰]9xt훪)L|IqctZKo SDu02P#ZvǍQs~6eOܪ =|Z=h{~7{=djcE# ZM0`xjʤ7`kGejцjƁ> e+L/6 %ǰ`dKx'^HKNqL<Gbъ{qHj5,-U7RO=}a}a~[ZO5v6gI!S2~_vcn*+^z.֝@k NoݣZOUoj$kTx3MgU&tͷיfĊEf]oo7W'Gd>|:ʭ*(GYГ-?yM7Y.+?YZY2Aq6cE;js~+CvN6/!}Koؠ4w*u&?mSo Ӹ {<ʛ:y^g yO[L %L0S$]ԑ\3l<$U]"ڴ \/M/ ^?! `+c>nD7Cv"ɝZ<b"r^`¤@sOl{Y7OϨgxC O7`z0KF}?OHI/~#Eb"n5\"NWV<`fׄ)TPAMJYUk_dUg0UkUĝMj1Y/uj/፽ZRG{û1oyNIϠbsP0{F0ZM |N3:{%aqKfuG%# WqUiP]s r8LH :q}\yq񖌝:W^ehwwX**Ď'dcS\Ϝb[H?jzr~=d e v#g1P; iR$>Kk/Ww3 *սHH}E _N.Gha9*,=7*[!Y8飏ֻdnf3s|Vu#Ϻ@G'.-?άe˫Яj:IլRr%,ֶٖaz<W'qe` <÷98|]hg7K3ŽB')֗oaM'x͎dum_~ E蒠GcG\OL92VkSTcLI N\ݑӵߐ"KeN!piu !#+ЃB)YgUYЖxk|<g:)+"Fz* VI Q%|t7\6+uJ6Qo6WR+:EU?4|QU2Ƅ%p7c. ٨˰5UO,U 8~yCYum sm]{'»-8$ş]EE %ڱsXs?Vܻ$MM)}΢tp*!cZچ?zFyFf^~k>0\aWr"7H#bgw !15&iu?BjP%7M?L8: ΠI!nğ'Io@;+< i2i[qTA#Zmˮ߯&j j /"!wFe"?mOSnM`*e;. ? ߿f+%Gjf'аv')ǎ!=R斤81sEUYBr6J~Ms|VݷmA2 g;t/Lژ6z|R> !t3*?O ٘נ<(ewv'b:oxYU- GVel tRć ^}WCHv('#DO6 hX*Z~D[ W@ +3?C;F)=}% +g*;!Fp__8P|Ex7yˉ^2jK߰P+`;3x]ct#C]w?nLPZ>29"kc:pwۜ?]϶݇܁MD%fC4Khí2-gZuRGR ʡrȨ{% TTC"HO{Rm#EomwSӳv{tӕمp TBH!Uϯ쨶t}s̎u {̓vLxYw j Lx=Ah,?`|q҅YJ0O aOR{b P'gkFÄ svYN@BlńI'8Gy)nu%6uw 1x1;`?J&˻d@Xq5AS]$)bF&?t+ͺORv˧OG3%}GBȤoxo<(@.0| 3ZaSv?>b*_5m î/# Fȏh߫T'-M..nLpDHp$*D Y(U$?3s(_2沔dty[.(´܌E J:0{B033 !w\8a:YgGE[1|K^cq &WAFr҉jԿPk8̵1:|*V wdN;NX9qf*KL^LUY RVw T-ǡ K~.IW^\t6.4gL~Np%A度nf`'/h]2 34w/`gҷYQJW$:sbA̱yCEM7{-gl@փ=mr& R. urhS&Tc^i6u+% V:\+o".Ǭ%<ί7K$J4OّHaT|R٧hz)_,YAiIA+e{ND@9 'yRՆHYÇv|뻐Ml1ᡪ2sO_Sqչ{=V "/ w3 9%ʂ{HAJ:@tjK[sz)qNCU%J)m4˜5Mc- gt&ߕ0{[ʎ4)i(;,-& Wbeh>([\tzUMV]]v@&3%p+5$v9DQy u^Gp>AG6xz.{[Y-=iÉh;VU2=m UybR4>jXhh 4ɿsqj}ImB;(K2d .\pDBȗ $f g<ꉗRKUQσdF}1z=,d́m J9ӫcsy`yNr\?Q(uc] ۹qgͦwMYҁ7]%.-~w*6 -0l f }POLiu-qуӮLΈ #),dJmrUqlNR;Uz\"GW`@Dek/U/s> w,CxD8m^RyApWZJluT} sqz\Ɖ:>N\=r/IgL~1JP-^74t-w>ҋZiҨ*cQ1\0xd;Q[.)98O΁2~,YЎgH&\TI.<ȫ8NwMoʥpw8bW%pׅDM3l)m2TXa |ȁGc:/B{▬Y KHag8xkVW7^KjRZfH>)M29&u^ ={_5HRLE!a1 큶= PKSwFsetuptools/_distutils/cmd.py<ێF %/-O&,N8l$RdKb"y n}>GTU$IڌX7fSQAX*˜m u=*U-=˂($IrsSn9 f7t== `,>ߏu~_ްKCՍ_<S{ 0Š? nv? s/9uýVknG_86JQѻQE[g;j8^{AQFi;tez<eѨbmS+tHH46*Qp)5ESsYZ qJh\osں}zPdMpj 9@fk%{Y=c)xu["VhL5| Ζ`k~yR@8%&EU9oёf(xűnZB&P~5#=>ҾVMM,J&ɔK᳀"< m$6bz b p: gȼ-@roX)Fȅn i"k6Np JAx_B=P*#&Yg1 ][!}RWgTkW%PChK i[ůʒIPRvs?TCYV- *0 6:;3/<`Q+J9Аy)G/ llL3ڈH*Pյ5 @UBX;QwnFy ;r>>Zaɣ? Sy|etȬ4Ys>[`^cs}f\qtMľ7Bl鍵,y;j]8@093 8C&֯:x66Y[bo0ur' Muؼ'1HB|f54Z{^` 3h' | %AXy;=; p҃n 0 2cc(2]E!vɝJ0?g%s!%7U ٫dbGOjRT2lc@ne 3ƙjaBLE N;2yn P;)9@ 3W?8Em8?OuDԟO yjD4o_B xŁ{'N- 6 0@&'x1,8 m.T *$Rolp|8mD+fJT|\6wzԯQBq[ -m<\Z15aɑWQL鸕SL9=DD[SVfnϑA @|r+%b/n=\@j[۲O* 9G<:~`v%TJ[Uu`:@]94Q˂ׁ5@`髛L\r *3I@ gA(#{Qz ,]+m<D$RhWd^` uʜͣthMTd!A)JrّHrQM3uLikI+^IDOڒJN6e DxoFF cVL -'YKلd)\N.m|BחoQ>/u1|B S5ʇX WÛ(Z .q2DQCPom]R4̻m1Tzoń`d0!-0ƌ$0h9FXYTu[M>L*jwT+`.IiU v10c 2 (\(ww*z-a8B XI/ܦv(Š'hy3yN܆r)v!2˝7%G;Q!)I -!mfI.K쭒El'(Xwsة=UQau6VU ۥ f3 gEoNy bX DP?j5Gȷ>|:>CG5׮eJgUrhAlLb@x# 59a; Ҏ`@+1T3 hOXyTd$heYLΜp3l ,>u95bzZٹj+ n)xGyq8[|FRK!WKT,C GrŠ.G{BwlQ`JwNfzq:ԣ6=wkFD]t4|O\L,` &,왛BF#X$gd3dHBlq7=6Qt\N#Ug 6rY6jTSg$g6+2܇ù^->7fJeI jK $.CRFKJ0| :H`W{G-"5@d 26/r109My78+B˦٥pX~Lt$QbR=sgbGލ$v^esUTiOPs S?]1Q$|+"> d"|?$-X>:7 k-t.u܅ n{ ص 3zU\g6}16SK,Ӗ7iE3'V%zx?_Dz hoA5m`4^?{]t.Q5 Ws`{؆L~# >Zqʼ*3Ú_/\NOk8Vyǯћ ̕W2#FK`c{숱l)>}m&[gsk霭rQ/+9R_Zn ,Iq7'JVAXHuۙ]/Gs *+i"4Aupw \.rCēsFڗpX0A |nğES%.qbX<-:HY"`h-fI~i%Ih#UMg::/Û3 P;0T֛ߥo7Z' na)Fv su[6Sa+ؗ [΁zrwE'ԏ>)v@!_i~|3l׺ sw^q2 1ؠGm/픽8d}.b/fu?5\JIF vaV=76ɮuI :njKNz'L7Khc]{dG9Ʈw_u_u/nYcnKX7K M ÓU 9ox3!L"h/} ]r71v?unk Gό52ѭ 2upQóP<Qtp̛u eQwWW7ǏsI-fi"2b=E0Ag/2# !2*BK zLjsYau. ht\S.A>\ "6pw /NTShޝBQZDBq.ڳ5a`F\. i'0f bi, ݩuCY{Ȫy ZN$ yDKי RDϙyL/]=n17My\ZD]EPUhD Iʳg@NQ zɰJ(>b<|Gcz UɽV\9  Jip y(a[CŠ&e3|׶%ˈ#jbjr/K 1`4Ym^d66Ks0lvWF'_^ rG[a lU01qٴr,Rbި} q%pzSQ0cWW7P`ǟwOcr%~BaL(ƴ fQ똞3?Wꇢ ΁z|M](4nZoi}(|T<. 홚;W! 38 PYꞆR$1{&mb}+VZ bI 6cɘ$d<`I#o(xUQ#oO(WqX_'JK^DWlQfgV|Z;T #X v.+c łRLm@54 WwM0d _5)6rfl3$zA L!#s-w'PhNخР=(giD#ov'{)YmSp,RjDft9Ž*Rw_ K 8-02އ8.-g-UmWP% $˾g/J0 3QoxGu^Gդ=9YdtA!UÌDC@ςgFKLwCbÅegx vTCϞf9l ןtR=n꫟peeHAfx,".D}p1A>x1k55O`a>٫z} s~tBգNb#KO{XG]u홰W6dgwFD nf64'ztj>\j-Ȋ\Nx;3 ȣ?1",GyYNe4"RpTƘ1:nFn+ns9],{n(m{kz aUm_oɊ^̜4MXՊ- On{Z3X62[L~O^P/Vh $q`V/d5k+}pA.0oӫ=ik??|gOjȏ~^n<{޴ܓ;(Qj8rI!vh~Y'qhT V(Wߣ`ai5:ĥhꓴ NޒBCS;q^򼭨Ѥ%mASֿaw}#^ ҇Հ/2t'޳> 0=__(+!*4nabG#ڑ۵QNV gd*)=KC-ɶ |pxg%]WG]b߽:'pKo8~lXC,hWWG(u>ll5؈,Bڊ $eM1h%g_A0Aْ]&yR >"O;H]/O_*9b3X%H,-M{] _g5_2>h~̹vl5@!ԪWˋĕSB7v5ԧ|%۲*HZxa5 -?7{+腇WQts`GVCi:ZMP䷵n乳>RYwnlfN+-bs}{|܀肤,G<  ؟t{#$;!Q02[RiPOzDc1'H$z%0FYhlKu/wXJx#"w$ _BI >Ӯ #Y&QH||;t]yؗIw0WpKC";E-IbE$Ua ,kE՞V+ 6B0M t-k9<+1,yAr^յ0hYL}*#_DĐa(BR`W %Noqqs~*MN3dCqq6L8.@ +Vm lW&Yg _b& be*x+&֥d=7=`$Y1m-d q@uW 9?9:>` ƅɊ댐",ɮD+o0&B@}%\JNaKEqwT;zU;-nH.k 1>M 8"p`G8C0 2jIB0N!7-iP,ӈ`f!ai0C !?`=1(/׍ $^<12ClhbϷČ`orU{Uɻ0\>}pCb(m#tVPbv 7db)ε9#zIr`uYCQw TSm!TTڟ>|>F~ȏu O1OFh(.0cp7 [8qEb)x)VŜ31'k  YԎQ庅JliW; KQ0ZsͻyIٚ:8?PB5t@> H?Ľp?,;!U j  huƗh?4sĤ2OXfIXzAa*~>lQ`ǫeqP;,dlx(D::֩IpLd̲Y %%1 fKIt7iv]2Lo%a]/"4^JD%NPJBh@H|t93XM'M2RzeG S%;VS q7Cq+it]-=4@ *ǫ%$‰7^֛YM5D>"Xқat(!:!TMABpl,MpQzd>?< " ~B  %VV=Frk1ո7Va` !AZ'Rn:&1n*Vʧf3DεΦLڧkcoR\or qrY 3Ď&5ZAvRqLΈJx >ikZ.^j=KO.G~4q0LS 5"BV"4 k^p[$͒?x@D"VIJ^6PV㹤Q.6*a{/$lUa>*JP3.#eI' %.h$Hl%"B تkC2 M^t&tm:84JYnU^әnJn!g28I`sO2 \ȳɧ!]ZsWhgt "}CrDyc*nQ;ou>ˑpиy0R+ B2I Vi:Mx"5SA&&LGSZ ß{RBzut7TB< 4i{dD?XYI֍WBQ膈iz LyD"(%Co{t j2RRwyTɜ!e.$D :818ޯCɯQR[1=^)>5e)/D$)r(FidPCHUxW$L#IL G_}c5˲$|l4th)X_y){]grv3'P_NErˤٴ@|qkm(kat:Lv YWj\ : b`6͜{PKSa=[C(setuptools/_distutils/cygwinccompiler.py@Zǧ3,k9N ĕ,NN*NP s.OW^ՉɫBr&%py ,L 6 Kܗ(gB?(f֒*B*a48~[T_A* FJ$SA p'@*@c+UoVP!JxUE-؍VkտcжGOO@**$< D+ Ėm-iQ^b#%PCX(*VˀwUdKRXGOF@4rzp,$|4o Uzd'ikZƀٲDY9dLo@3d(*ON'xF\Nv!-i nYKG^@+A5rGFg5Md-`_YtZ",a+ul YbY+ۍ4Jp_?i}!冔-ٴ3C?"ihap.O*!UEU;-.Mh "GweE3q 9C0FݳvjU^h ɷeWg,NO佳ͅ0~r7XUX(2uQ|^xl5.70+n7qf3ߦvFf̟ޛL"~,˺مO{8ջPB:=Z?{($D?/5!aCpjL#FuYL<!l؋ʊzzEe1q%ڮ7gB+ Rp3VV'LfRcw gTIǸ6믦|0rWrr>,c'yNϘj `:#|֞{V%_wуьh^'S;4ʋErV#ll2bI[H+5 p aw! 鸮2C2YVWEu0lH ]s^h $:ttIKFidWxwWmTAQCb 9ߠ@*Xȼ>7<EZCM7,IVAi|&B}pw,S AX*y?7?x~GboH㏏xy@0(SUg`B&)ĸ/ XL_~H=ɒK@٧1>EK,*"p̼3"IaOAO[fxC~XN4giy#}v=/R~ }F\q ]˂drs XW~.g]n؈]q5CՐ?ޢ:A.3htR{hAVWjuzc,ُ8<[ur{`z2ژyj>Uٴzz:d!LOܝVQ/4; vDZ#xQ3.J,LQ6]z"kWQqXcCF[JA"%AQ1am1Q]{(a'i<҅>㍬u"֩%xeTxT ;G? }TC/e),H #[E0 ?'VEFgB]AU?#x׭lD ҬWKѫ}(l>M3~Lu>gأ^3 h/! 8b\!Ƽ DGNaY|'^k>O1+>8@UX=ێtPdB'98_"tpJY:~fHSe9æQ/!v~ ʣ421)X{*/niT% +#AN'Nnjh 2Vz2CjJ vPa%M@qCaK;W$MU{ UtB~Zp᛹˜gA <0C5񺼄xPATADQպOh>:Z_S>ݮ'H gm/pj#=<ѵJը1v]MmS  (en]#o-pJP@7ld]iđhEcUdY5x`xcD 2\q_}SIJ;8zfaV_a^tYQz@9 䂵(|F_]1Zכ(H!;F@VtTt?pպ#Xѥ@6wwxJo+HcVv u$U}V )US'XZ?`xͲ=e\zMi,½U GOQ=Eb _UvHr  ]j;0NPsؽ4 !fxt,z0fBw55du+0\j6!NZ?b^@تHr\].6> %!H R6(8\骹 3CY[}PV}9V0[RGW f~U8ީ\UO$q};! ;~ 5x m ^hWXl6_u}'3eF&xfie9jn"jƀU .U) ~N 3<7SWI#ٻXLL o CBЛaW}[*. & ; x4p3=E9ڇ'@_QĐ|+dE˪`: M* "Ă*vïr h dﰹo- BfҩzZΕ)]vA&LZ'4!C/}8R\߉(0~|h'6}_!d8܆U&(*hlBkpQ5\n e5SC6lS4?PKS_H%usetuptools/_distutils/debug.py] 0E|*HE*pk;K y)ko[8㜲"cNp_޽wOp(24RA8놢+~XjgD[=XsIa\PKSk"# !setuptools/_distutils/dep_util.pyWMo8W(dc] @ %"BI3);ؑ8Ǜ,VX79!3}+pG&8Nb%߀ ͎YqrAw mT {I73(k0\;5}1L1yn˲, tDBhc!>3 ?ѣ(Zށn`md =wmx!W& *"MX`xnE'03偪[msw&Vs*&=N>- slzR{ ܘ)+ys(69zvd߆8bc2Wx%ww+Ѳ[ڢ޵ŃRsI0߾?:?=ҡDN=ٱ"]Q\#@y6ԞtpKWP02äS8kzp$O䱼XZ6nGZ2 'M2 Zg<#k)p a>0PPyu]]HCM5v^$Q|Y_Äm]`{חu vσ~59G<>[t& ΣQ٣x4J3`H3ȅ|3dT*dy EW~rWgp6ntw2 p2dyHKL}7x*Nd1B[8EEPJg r?ρ9T\p+l4化uq ǢM6 T6I第аdt˷0ʊgPuuI8.^6+7䉥aB+5z .6O֡b>Wp< ÄvFswVYe׮GS)ek7fR%-[~암n.c5`s=pim̼rg$BDiD|JW陗kA{ͭzZ *~i /Thj{6<[zm1)FM.D 0`D]@d ٵJ:_iF퉟,! O;^83.^7XDž>%[/iEW~ZqaPKS3 b!setuptools/_distutils/dir_util.pyYm۸_:$yuE m/A%-.) XEۺ(Uq̐(ޠg ]i8g(mY(5X$vڲFNRm_I[꽀ڦ+R'a;L\.nΊƄTfZaE~ߕzKVڪNˊU_,^۽9fFZȢ(/a)*M>uu!2+hQUYZZx9]n;îi~2F!-tZMk}ͫT!~# ߋщQQ^G(Q[Id&JՑ `m+9TlHDlhDߊr',s!+Y(Gr muo vj{QY(.MZؕWׯWIuƨy;{*dl jDjd4"'V )_iBV%4,kl+q<+Nbw\z1Ķ;DmH)ln sV,!s^dLR\OwS8Mf創j;)on(~ܒb-DW8YdXt=R" ҍV7Ui*4 E\hzT4[Y苓wC]UԺ{B,mS(MV `'K"9X*_zȫ.tDL@!gJ.Kñ զ.[eϟ?F$5!e,v R䐏qZnQy=JcyFSZD ]Q0T8ظN9ʩIKD s:%[*Gw |Bp=Rn@6u.d,f_B:Ú[@9"IU-ʦAܘєye:\UdZL!zϞ/iҀv7#1 H 46$9,;9ZFu6}Df9`|P LB(RO5x,j91e#WYJǫEOaUe-E<=k%^ v,հKڔzP``9AbQf_Rj^Ni]YĹTW~"OUt7F1DH}ݪ֊~t؆'z)^?~⚿Pٹ.tWFCrgp$w1dC6u5\<Ó~ }@iܲE!垬+zn#ݝ-4*@-HE;&3hWA8G3j%ەk\nSqRM@'ie.itl-D͌'~?cD0Tɱ&BcmX.`K;1A2ڍR"fEtYIĮ{*( d$Fx:hpZCVPWԕ}zZX b4luw%f%t[KUa=5m(<ޜjGs׷߾M`^H+Pb$f8WK7 asY=A0%YIt{~-HXWTƥ9jQOZ 20f-K{h`*J!ljrޏPšS =TA~5l9*/D,g3f+-Ecz>kशtݜD%=޾sA][l {MD 烽z,Q$E4y(5kb 2$yC\ z'¼]uTt 9amaiSj/g\ #qr2wNXx9^弳!cm Գk)p4[gU_4WH=J*YnvhTAc 5И߹dJU,3ҍ E멌 ?mɷ~SubƓA8tWhnE)W: CN [g^l#6(F7'"Mr3ɌDXûhZVˁmg٦nM| *4H?{NauYXBVga8&.QTv PTgWWtM$&Lu@oSM=qGNx캲/^a\o*ۺ} (+4#Z hBN͓?e0 VDJ&NZ`[aEeW=M/'{\PdʝO^J.KLyEy KS_p/@?RY(eNˇ񒛿4 l)~}Fc/hd0 ej#x Xڌp@ϕ4 @Y Pff2_^=a~/B`v߳y:1Io&+مkK@_X'8 ίf|rxN=52I7nxj_JSp{ |t t׃? OQ6xq#QXNN lr_MgVEWRWʑ.hvN!FazPKS. A3setuptools/_distutils/dist.py}mww ^ +?q^'Mv]-D%T$d'̝{vã0s1/w3LUj-𷳳Z.oLlMVϮLU_gWjQ]_nfkb֋drvVMgݱ6֜mf]Ym3y3]W^%Yn9;Y?lkzwf>̾Ͼǯ۶im]do gblYpů7e:.Mpi5>Ͳ-n[fmkxCڞ]jzUlgYY/[{u |mW7ggO͵M66Yµ) tveye?T.X|p;h]Vf?@/߼ly7֔kDC6mjZkM V#cޚδǬvնl0^J+> /;X>I!6M%ȉ3Zg7-.%|0n6?_e! _v0)ٝ=T ּo\gHVn~kM8oLQpLo}y]aS/ؑgn4& d.J%,iyVҤQ" ~O -b(,fJ>뚕@"XF:A|"A(^[\ ĒvPY\2Y]50u{=FAFuP}s߯S2 п"έ{VG( 2peS1T\\$mVl;DхF3eJ b'ÃrtJt!VȞ/@_Xq= _ԯV]#;걇:TO]wgQ}\\}oP$5uPr"IcJC խe<Յl$p_XD>[hU&ʣ*U}Ȅ7႖[ "#5P$4,ۑ([wh":1  C'!OTE i: qJAah7f64-A$9Ú[XDuPtbf1®h(a@,0譡'Q5ܫjґ({rdC3Eg:NF%5H[:M9,eXdһU}YH.t$FB]]Wl*G^k~# j aYT4~G/ }E 6mUǠAv}([@)cÑ:P-# ;5Y" MK5G)YDJD[`4%YE6[4S%[PǗDT]r7 }ӂƢ)5|lO pK@1h&'2 \ĜQEX`,0YUM9 ZJ(Gj`wMd p#X8b zU|c:!?N!ydO)V)Mhp\ Q[2 $RƪC-%:*_[Q?hã&![Զ)(dB.a(瓠uaGuJF&<;Q9,  X[b.q1/ڃ 5JbHk ^uJ::5P;Ŋ|9Ȯ1Nk\ k1cd`SWR hq\d 7G h;YԯT)*.*Cr_aje>֖8B] =Pnr'/CL;[v{sl[.qkM2gUM_L&jcسo.8Rh`Q) -kР2T$,AO3*9`wDR~yVk L(Dfpx~7\:; Wc5%%{/q|B2,t.s.S@S N||\O®Ұ%š_tNz xZy.Ɯ/1$`%sp טQvmlSa|,mv ֙@ BJ<:ߧ0z: 0df" d(E'c\HXATO*)(5ƚB <SkOiRe/^~Et5urQɄ [LghH""dTn~=v.0pu6*zYaw_)W/yIa~жႎTP0ec^@$kaE ~»xC= :AɡGc'[|z`y}7\,.82h9Tu!@=AVDX/{S}pJ2 \L< nNra.p ' $cJW~{cp΄ϊs>d:Bqj77dx366!8eO7hCQ c`N9DŽDK5Zԡ!HG% ?0 '"&Í70JFrL >+t{ rH:%&IH7Q@96N" HٹZ3&^ߧu|ܗl#@ӞWSҗ4dmMDWaD.Pѧ:p]dQºuW|^\qaJ8xS]ZBJxì8̟gj[Ρ:>'amGa u  ?@ËAubB8&bɪ6%\J^wXېHˡ\aX4m~_ '2)WU7PU輒O$X/h<DbްIG EF:."]eddg$Xԣ)R1+yx1YSPz> [W}[rVF5>$366qh}HƐmOpBzQ5V+YԆ[7܂t)0G-"r:){STŵbieN0b %r!6>x7E23Ňz&ab%Se h( U])B9O|x|0vj3XƘC$6$-[z &<lQ>(FXcߓ[/w,pՓ,fxfТOT!4!?ubXL}Ei;\f QEV3)5o$#GAO͉K[ξ/lX]!Tv8Z&HHcH%~h/-({mi kL5=)iBUǮr牛;PtBJ4E!asv{00V'ߡ $*8?Ǥ5溦BjfF@QD7dq g)XF"L<8Q71٥#Y 6V>,b6b* %t)&ڬ.f?j[5逊ɂm2E)m06 1*6TYJmf3<۸w[(&[ףjZm ]\^QHxS'wl20.)Z hോ5p1ekBTT˟sCuRPS#(U7ܜ@Gm)n`Gڠҳ$%ُ&=ڭ/m7)?}.]vE: 4 B]F,[du"R$9s_b"QAEP@J.P_NsԜ~(/󱆵ښTR6L>eUT@?˟e8`BY=X1f;3]Uz1 8oK qc *'mE`ZlZִ(d|%UU+\NX`I1EbUgkynfIu46Շ~4K߁%1>dEdg:uĝDlTkH'5+IGtL/)OS$iҚiaxu>S!\V5ڋg{F3._;3<^K e<?XMbSܟ!='˲ŖL*-CQ=OpW섭(QXb": )e. &0\%凃NtҵuPij o-EѻHATCa+iPo` Kd>/" ڎrҜI`W44Ҽ3=7ӥl4]_UOzjQ%ADG"IȪeFbUͽ^a$ Lg4 V#{-p--^aH&W8A!_BCPȒ/ԳwK<;jGҩ"PV'u?e i W(kn=txߠc>x+R* R:+w= X"t A/AGL^mȟoe#Xj<b%U!,lkQuEtjG=†*!p[֜ <]E(WzLHԪ1%zCF2w%"o}S"8ܓsR<4$|bbEAڑ}:Ih$"1ҌGu (qGZ^wǽaCۮ۴ nWNŸ4n~P픓+&O ~v)ڇ#>x>~p{$Y2< #GS莃u/" m*bh>}M7h}%"8c 98\f80?ta#;2qpňphЈ|bSZ ?wp'E< R8 O!KOW6E#l @ߔw3g9SPt6T\Zn?ugTO@>/ݭ^$,׊nG qJbl' Ù}R=Ks&'aT_o߇kOVtZW2I.ӋAGߞ5LȎ*۬*{[J]vJyyI ,JgA1޻뤬| !{vA'q{1CB8|ߨK?Fy:FXXʫwE>Z޸5fRc.Bd N0[l, mp ^E4wSn!Jhl/+_<̋KNB}xh5Gt&Z"'!kԜ?4*AT?amHDS%IǁQvꢳMN,H{Hu{!IIߋ=E'ǔ"oU97RB/PSQ\ N(nLXN}KKz'|F.Rr{hzV`n*H iCW23D]z' X @[(K<")"̢v7JG.!\HNI!S~p,l.aN|+uVqe\}n9`sa]·/} ;S÷4k^a,J42㏿jdWJ?s݁AZinBMH$mt#mJ#$;mKWKvpS}Vt뵿+LBt-kU:UhCw[i"],;: `)GfcR.ҩt"yh M: *`Ǖb{(G#荁<$s\,!F˨5'<7GX"WY($W&Ĝ - 8/hLu9djW*rlfmWj1B(`m@iU?h_[-(3)<pK4VpzRSCZ?3c o T+QHj3TJ}LH}Gܻx50@OZL5I)x2ې[:4u"in{)9LҦEPmzX^*ٍVIT]E_R\";j *yވsKj s:O" nyq= ۯWSGPcuX[X`d쩴lA1"&VUNoOnʉ|r0땝c|'|Y_5TސZW;Ev} .aš\ c \I˘ Qu1[FBy9c;1uF]sAq{})-i9)I t\8[!A*"G 3kXA-{k_l+~J$݅F֮d!cbAvR?剌#g~1Mh O{.B* y| PV/ҊxbB&K94H+>zqnBCxqT/WmuՖmukv1M3ZI8`y"r 4 !DOߋV!\<],6Ǖb5L# 4#(h "e![#R01Kb"/=(.1ofD܊LWʣZ ܠ#:#Єެ]UT[_Ղj /þIPkqUB6l{P3XgJmF|6ʤnh8<h\ލM4ExC|-hofsŎ  3)RM`H\ČO`.=w|]שsyWeAK!\$,8z I‘=YLr,%MLNtm m'fKDf~7CʳCBbbUP-iy̸~7cHY ޞϬz}58)@i}5(/ܲhԝڲ~Q&awKN@p7sg _ڙF`Lvsɞ,IzجURFg21)1@kYãu yGcV w6rWRB ?Y)W2>ޘixu8cwqK<~'MŪpl_Wqtn0CP# t@U[<1H222HM TWŦXC  ZW ?4pbLJC6<}!"Aq J FNaҮE l/ _֌L3DjoLT&,RHiJΫf=)W<B#[m֩Е*]"1`O-. F-k䖵wnʴQ[eBQ9"m`juQ2L&rf:pIr\,FpBQfBWQw9 Bg|^bc|h?mP*#x`q\X҈+^F1 4@ΛUϙ"8"ۯps!ܱ)cP;K&ZYBe6hz©]B Jp upMe^r 9bР6H 3Z p5246uIoExXDNJ/jm߽8Z]^pۧvkwf̓lB _XRभpNAgdfm{Fa S,ppR:ƅXn}ߙRFW"'2*p;C.5(K,εBo.wW~g)*Ab@T6ihtkW`|vVk|+!4G8&0M^6n7٠7ny-vgG8܏\% )~' #\k7_tX<}W 6[ZbS~~G:c&2)~}PKS]4:% )"setuptools/_distutils/extension.pyZmoF_G0LӏjCm9m$!ȕgrI:܏gfw"QvN@"ܝyff(rmօMcJM9\++߅"+3X,*T˗ۿ5yS`.UunW$Dow^V.v26:>?*% L"EF#VLX#t-zAh+VoLZZߛzP \$SaMHY@ z-Tif&[eMU ԓvw)g*MQ6L!a boɾɶv JjYeXx3 ϏTS~D+$$d>w7s/㊹])]08e1.ICtnBDPHuOUхyOW6AP\0UEz=dVNe%ßG^Ժ$1Lc씘3yTMIu@  ;2|Uj\naB-Q%f/񤨼'^PbQN#͸3bȕ+4854km5gKuqُ K],uI;LY2Tɇu}T/-N'PST2S[OpWnMZo)~<7yW!'\ u=`wH[~5mGq_7[uu0tH2:;^/ӷ+9`TbC&VmʁZwlhH+sBRJUo5>v̑ծNC몳=lxKWS~2xU-D=gcف$BԺvkUcT:KB;[*}o40 &'$ x."]jtv Ǔ.D$ࡆZe|sWd.б-ѧ\T?iwC5è {[\7h:O{nS&։J |I_ZL:MKq0{h'GܚdqZb%nO+kD\ @]NCuҁޑ+x07JdV>`iuP, KPˑ7Ћ{ucb< ScvB,ElU {F鷢)UcU~/"슱AUfU͞Yb(xvY8& xvAH ^ߟޥυ!kcSޗf_tO^mcu[EJj[oUI-j[!'s{,B3MmE g;D\ N?Mlkk!pOH˄g?aO ǃ1n|8GCȆ G僾>N-gkխjtܐ#ۇM|zԟ0hӱ֮ LOM(=F!=sWӮx"TōႶ-nt!|!ޭzeGRMuj~bSbc JmvU]nߔ30M]%2P vG/zwťe Ag$=@W__Ɨ@&\K<X,t/wĹX̞^{# Bх :wBB N `Pk1tF;Y{^w\lJás%dWDwFt<kQV2o? >ZLux C^}O(T<+m-y>~} 7?|.dϵmM?0z`fIGq*CdΒi&$7"Iq2ĊV ҃v!f#eר%%(p)]W.zCJכIUx')Pu< +>]ܜ͏ŻʬN_1~h&[jb>B;:d! ̶U`'LldL/Dׯw"aˢK1.x BTM`?|Noױ4fgCjnIY3}!~[&$[Ae^PJ$롬#Mn3E~Dϑz$悊׶q#jN-BD94 R&BsoJ0V~sbUl#ۦʐ(`h΁HAߥjbX+9a4x xԂ}VϐmCouw͐u~8w^NC@iq#q7b}OtI2۹GcMv!6,ǥŪknăMM[Sz[(qU*&HE!}T|Cb#snkݐZʽkzßoWyd BR8aO)[|g}}F}!h>3}gO%|X?pL PKS1ƲxE%setuptools/_distutils/fancy_getopt.pyC" ӺCVe5RW(]oO$sDIqD`,{ͻ{V,@<+<bK|] qGV&7e"u>FD^6ri~yK l˰ yK_ &jWfĴEgZ [)pU֫gX# /uzNg{#H`0*9*g $;_8WudRPN(qOg=`e:~SV"trBd$M_E}C$uaDa TۦL5dHpHĥ ,6L !Df1$_`7m%a7yTO$$(YmIP/C d)fϴظ,%ҠE`vU8uB?r+:2 :^W9lB ;LO)X x\ ^8kQ'f+UM%0a 58ciC Y==t902]١|gqk @"p9HBvP2nQ;`L8e5' (.O)Zޠz8J2 t^}Pec )%g $NY- W-NXy>[څ*JSF'tPս38bt z֛&SF1dE*EO}ĆiWU*X`WW2w>h%u}|}:!`r'%irV t,#9`4d ]@_:8@XtHY tAB!{2eI 亁T}4Avh(FI(k ҒhlH8u~st~34„\ƍ#L@R s#v!nn֘ǞƗd@Y<#5kLTV*6!ډvspyFמoVU#z ^a̱?n:f Tm0DŽEHdܪbb\{NxEP]D@3 lyp/7W0vD3Uoᘗ32gFL ^wpnSXl©߱ u m%M&7xt]& Y1mCpN2!{+ׁ9UD}',U*,nzϱH,0k=&3=Ff%iPZDK `O.dUTZ?Bzccd/;S:Bu!”>+VJdخݾ3g%"J yuwf),c}m4f%,,o)#v˒u NƀOW6?T<}D;u#Wҿ ,,ˆi"{f$i/)m-Hsط{IiWnĤXW'0;.~Y+/NL(#.h$OOlPx8?Ȋ/_0 9U-R^̗RzN6Vw6*dosr2 aO"UXt\"zg#SAFϹd拾a"Kj%^ ] "`rN`_bt=?>Ypa:a_R+QΊtL" ʨD=>f -k[nR\V4)U|A;eG᠋uaSD/'7y,R]JdJHALdHGr̦H?*t(6B$ShHŮ(([݊iV(8;&L-uօ {V8r@~kُ)%?X-O7m 6аŋoД-F94m/)!8A& ` F#kfh |YcގoUoi= ebs3k9w+=4مNRPbPgOյ}mޢ-yG膂SCdelrՁ } {HTCb>R>MZs*+UjdTB քWH̥CU QHl&}Fmkv3$_+zy\W2@ p)BoMQt):;SVUr !Q-BD~ݡW Jqh 9zGQW*=Y9n<^[DNZR ƖY"^ lkQ x9a`X KOV•4<[2 }eg٦v0n{maqDEeKvòN渞YFN^i~n1&B x]ghPPQs=@/7)T! _+s BP׷~?" K|XMضy˗h4D;='g 9#?I\E]TF*%[0 S gec@){N5j' dژw:0#lj]s;PXio=ojbGXy$ i7HSᄛqmh2W~GetkӈZMZI=h51okLjRpMCJXmDvP)ۧ=TڻUS$es!zE[r(Ά9mo#%!zO>%wq{|8}CՃ]AjaHY݈Y;)fP8ձR5'ng\:m9  A nfSѦNtoN∶ E^:%⤚z|aDhkB_gp%YP)l#SmX- Xfoyӏƛ>3K08dC'6|k x[{8;@B:C4w  ppxHڼV,/ ɰJƢi5^]U7u:d&l.\%w+:jf]=di|0$XR9'FIkRP:`6#tP R8FO ¬P.A-hXp%*o pYp7uhz,yOmvvDlye^Kk{$=ހvbYOufl3f,d?p NaRm(dӌz0ݮhfe/`ėg?vl`Лq_veD : Cjv{R7LvWo|QGnϟu' ~,w~]vkΨޢlk^!WvadKX4 n?U(YY [!_wl07_Ő]/q% !R9϶`ѱ>SEf4^r\ qظa! !Vs' ęKtjferWϛTci d:~ Tq+10Ѵڟi~:Gwxm-rAZ=P A;xr‰*v||[e2ϔ3lƯǵpoQשr9u~2FChc!n}!(LuFSmjgeo(i p3rk=rV,F\l n y1EbInc"P8r {3ŝ41/]r :_~`h"=2#WM^gNo'8B[q)81`rvv)AyԦ[.ꕁfLF/+mLϓ8'fnՊ$NFfU3zn/;5[,c!@d94i 35i5.{47(o2|8ïF*6q2BǏ(1*?CoُtpV ԏ#w;_f´U)jY8D7DXI-B l "'wzhyY_v.ka 1(*`,%KJ7Gu7350M<|T ~itiw큗<](pI^*\:תVqmX' C\h .V', Ս'luU5@a˕<:W1(bF2#n]CU 0vRkdS ̕i*Uւ1gӨ`"K˾[%?fzEF^,ʢƎG~lUUE֘Ggݨae7Y'GR);6>ptJXvE`&5fδWyDG@.Ht:g,vkP,3ᔧ))fLںS2aLF$d̳Ш>8ڡgYe6Ly?Y6(֪&5xà NRKp )pFC] &tb)!zjkYn:r<`71hv'€@!KT&qQNvt]AdDu~T5ܷ L:I>FafW^ ܘ5 BTⱕ)G TYZK Cژ|~1 'u5dEVJ,5m`K7ɌapcPf5mS | y!80ݚ !k`[A/8emXD ĶƮ؄6bgx$Hά3ygI ftpK>J!*Y5 =@7;AsLD]G|5# ufJ&~t5[X[cPV[~۩z J( cxpRޠpZ/z<%`#C,Z*T@{ u0nz o\?~O裰` ?!_CԝG =CWCwu詵PnBl֏ EKQuS!r||NKu\[z?1n?P\%ϟ?t}:$ם 50Deiq{."sI@z%6_7#$3Fy>yGE8zx`~5n=g>ۀ fLv 95{ FvXa}{Px :\lP Q7vCx嫟ƥWN@|dƒCt?v**hqတ;FÝ_2хƋnpjGr|^73L'U~:2t9 c#3yǕ Lp)- !O >K"2ԯ -c9 l]t6o|J/z=i~Dzu;؏o3x7PKS%4_4!setuptools/_distutils/filelist.pyZm۶_憔if:XNI=Mb_&9_5 IAww)NT9bxa.MUWRB*m0x˭̅aJhfƌYmDfVKe]%20{S9RHL +`2\oJ]'-ӢX*[5uUe`嚵_樲 ]6Zu֥6o'+?E%twxy&\Aj̘|ʂ*5C2xxFv˵,k`v(hdy@O`d@^E&k9+ah = VMq J`j^. WV35H+dmJޑa5ħk2EΘ0\y!75j+wL ϬuJt\hLZJR)&0jˋ}ÎGfm'3:bf3Yj6KP1q]L* 1z9@ZFW 3&EA'zYa71̶bBlPk9nun8C\*Y229\ߴ0Nn&5˻Դ4P&Wb/?5U @k*q!ٛJډN'h8c(D] <QCEBkc##=ގRSΑ=.AZfŝz$}Բ7sՎ "O|`p3pV6Ѓ YU3YtFE4jT )[K x!0b]n,B)[cjrV! ǣh^y)4]'cŘ]<3`MQXU~Unyg 6b)fJ™>Ja=lN[rkSKu/tS)5:cإ,2U"Dܹ/!"Z|>ԨxĞ/j.8eG&簊BnoS7'Ϛ/d2dn8h]PQ 򓫛֑ ߋFnEH@PY@ xXA@|2_ދREmt]XfHb~:PF"+.nrWxPPU ø%P`i2<$(QOW@h\UsX $d،{Li: %R 1$`v|)$Whc;^V3箭>J L-JgVq aIM7 ? 5ЦDse4$y1;,mr@~^@ \ɜdߊ(;;>HMSq T!־N (*'/ȰX`mVH?%6)ink$԰1:z9Ά HAT w%wlkZ% sifZ,]÷4mKRd5}{1;IPe!h T{(wRr1$cE Nv,olk@PK 'S˼VP.'CM+lD&:V\BC%h4 +?닆-Uap7+p_TXYRT;^,ܙ!y^~r90,y*0\xuv@.upB:%'YbKjs.\ch,8ǘ͡w<RG椧ӺhT\WT~m/+=0^GA'A2vBq(u@_y[3XNĄ}dv9:c !sxf{;/oߴg8̮S;dw ҡg;{QAJg\JP:\;IwxUH1h$C.u!6ftG W4TS5SUe}}1AQbv( nEh;~n=vN^V{F``Un+! ߣboKi0;t !^^JHYW_}׿L"A hYBH[t /NNd0epq]^Z`P\]!=D8R[RE)BBTpkN2H!OqD!|Y.Ee`ENn% 8:kWS<ӆ٨X lڨYmLNl@<nU.fsvԴZս/!S#H&ɸ/E-Pv܋at@'r;"Nhlj;OʒMZ7/cB- Z[L9miƎ19啵ʑZÌ(JT<J7ʴjeWRZBM#?{eObtO.Xw'F>[gl'PbmšDWp}؞BU MYx3e08 Oj}rssse 3z$MyÇQ|FG0 9NOmsr7[t&LA }$q}a7rjxjM1&XɈ,\~ǂ]ct]½N4@Nִ -0r'vj%;^p`+9ҭ3$Řﷵށl60'ddW̴u狛Ձ͎ NXɔG$<,h$i$E;hoKo}q/>&l/kw7brE/xM'hD0Mr/N?$j?|{n1鰖L=o(E&;sbX t?{mB?4zG"PKSˆзsetuptools/_distutils/log.pyUmk0_qÄ-`et J[B}%>bU$9Yd bGϽE*56+(pRjLAf-KF{p{j'92o5)v@fer WӫPY`Oڑ41Uf!v&setuptools/_distutils/msvc9compiler.py=S9Й8@.K"@.#{dEIi XBI9)vjERCCցu-/35C$h>ۋ~GCS| ?ZU뮢tZ*zqUGTo|>>?{qO?_R%MN/NgOΏ9=Vx+8&Ԅb}ww:čX7E~d;/^t[ɘ0h576pGlwgs,dDD8˸d4`=FyQp1қ (Mz F~<˰E~Ec}XXd_QU 3-}NQ|^9cň/rr~Y_?`*9@%u~|l8!4~WDSwO[>?0?RtAi4cw|!e#.n9/2vF ;ohg%u}T(MaTvB#/A1Vl*)-PHX׃h~lI&E%֬ @ ևӃ#n߈z()TBkjd *]2J)xk"`Ԣ/19u0JEfUbw@9H9R<@D%^L"F PjAkhrcj(P A3@)[MBNUNHQ0;H: ]'0BP cGME E<ϸ)?1m~=L.9w5ϝDOi@ "]gsJOC<ڊ}ZG9Ӗxx|q2j.qL4e.Pwd` ZN0>Pi@6􂍝`g^~ 0X3#`Wpd&4)6RF ܹM=mRnK!pT*&$WX 8[vH',γN"7#D:xG2 !a%v_s򾮦RCd{_7ĝH!ckr wY/^ID8}?h=(8B> %(2^+ 2&}=>C%Y^`4`Ȏ4J>ձ9ݭlc[1VM0fPb9_G4%jI2T$ 8K` 5/TcAN` hF2 Zr\V {Vv3Zc\l Gf_+,{I:Jk"zr>MHbz)*WXfA5!y+{6UM%*ԄHW ja<!C %%À)*v!ls? fMAT2cݫr ԁI$X W///.NT<9&\݀ 8KD|O JZjߧm6hh5,hHJY6vzt/DoD@aP[I穐6}Ḣv/S{@W;hH:8a3JWՌ$gГE+5 + )*]gгBc"5I̠ lLBpM_Xn V 9 hhPM/^ :l87>D,(*"/ò!܌,wmA7vS9rBH%S9àVџOY`6$%ƞȠ eM q)R}d ʈ:'<v(M(pzrrF+,~c'unTl֬f3n]4!ԴY9J5sיhcF g@ѣW񀤢#shLtcZMq6-m扪 7I%UAg綀b<ӴeVDJe:b]aV%UC=Z3 GPfj4B0U@it7#$pU'k9rR (o@L[ qvjӪ IUBgP`1R5Qa}VTT7ol9M;,~ENKф ğGiLyVq6|`)sHˁp[Z6U6t8{#d(jEq" =EKLEB-0hlֳs(+S ]6 >E6Ds@{]7>:_~<9cBs5ar'g~|竡5%wdD(+;/QI!`>c@bAfEr;)#PxPk4pJ h`c>zFCbAA%S֪5vA=H]9IG} & ӉZL%+[3lbppv(8qi U3>['6Ub^ULPcESh8BvgV۰$k#3rrsTȮ ϻXsC]4$,/aR~ .1n :vV p~#tm¬j}"%,9ПJ\wЪ省UaZuBƳY-Y-l (%-P+P7ͅBu,9s:n\ BZ7 &$IDFz }2n`PKw\jz`LmStoX34Ap"iY-5{Z_!]*ǸXj:5a̩Ay 2ɴG&,ިEߴeS3 fSݎNƮ) 1ɸRnf,OM Ύϻg1h{t~t_k7ꀂ ;Cj+V_Ѡ4.Q?ovؿP ?H0xFb }i)99?x|v|~ypw~aͪJ+/t&ݘ̓gHΧf(~.u߉:> AGj6S9W0: rTUUM1?t{E|^%5t0%B;[t*_1ȎPgr*`(Q%ƜJ<4Hg.ZZ -ɫN\&T90uJZX!*P%?8 r׽~yd3gAC>uu } 嗍12^JyD& bqς+/"ґYD&J2&p1yUD!熋XJ.'HoW%,aʨò\֑' E0sBF^Ae3".r'4D/V顤Zj45ʾ3Vc9@즆7;[@k(ulF\uṐ,Jsn#(*4$5tőVy[UO>Y#MӔ\Hx &^8&krǞ5y i P[Mf>D :"Aa.$ap' &'AiqjM6.)[6bwO:{'ÏHqOf{QE#8AFåm4Zc0$ҳQP~㛥Wu蘒<NO mw}_#L-!Pc/Xgs`j2\e^:Sy{3s-Zace5 +>9fv?ݻ[-aJrl]yG9d@7#t? FF-'qI[K6"l!%+qBME MKxmH0C}2ps)A[öo^TN8SO k~ȹ܀z$~:MiB,HKi,~(󥷗Xųer"B#o1倪!@z'ڑ_bY' c[VM[jKW_iI ~Ҭ4d9sUe_m`۩AzTH*4zY\tX}b/WBkq8P1O\No*'Lܾ9e+@?T|6Ͱ6sƥ=y=Pu.>]!w;-˃m? p Q6;LJ֕k.S l7cqxNdk[jxvp0F ]$Craqbarvb1橷{bCNm!K>j3d 4b_s}`ְo,Gו49}=|@-oL-O9X>-q4i`.؛{ɩ{vv8)EŁW9+ U/LJ.ޞ{/,Dyi^2}b[J*NvgBǍ)VW2h'/łR[ǿ|xGŴfF`jwm8.ew^(ҠtD0Jr"?'a&nfn|)y!*^MdK&OEwYP!xǷ|1C;BבRGʓf\mUP1QG= ^tL^U:]+l]ox[*i:%ށꁆ.3^{͘~7<c}8=yKoaKFY2TXi,}h㬇F+s]۾*-iOkL rqQ&">z!g^Z6k6LѸnO7}'+$Mux)Jqo[t5`ېL[ if $'1vqyG5HטrQ%V̸* 5b^қEP\% !Bh`;YFJP+t\m,h簲[%'9AWuyo]묹YWDmH,*mS x3 onc_Q9̟Yj23>u[DSo(]62 A0v}'3,{aUOkKz06˞GXY*$4#'?S9{wc_P$ޜ ᔉG$Tunys[Tf2LpM;Vgvr 8~ٷ]^~C&QѹウagMGPKS:kc[%setuptools/_distutils/msvccompiler.py\ms8_/%j,N2s*;v천=ۥDbL\~ HPVvw݉LFt(岌,t-8Ewe>C,^ _p\Yʲ+眅QdUa6MB!zD6+X,ÄegA^o}))9/|ϒ>E6SpylXM8*طlfq-;U"[Ή߂ՠ׃eEJ Yق"B0U9ԟK wIX꽪D^ēWzG? Wh[x2r&^zi F[{ }>)|ѫfbƋ,wf ~{w:z>+](].E]B0%KЫ ʫNC)KvL]"oU'펾|4KRhKBV>A-{%)ڢk tޗHa0 EQM~8hFyUR>BPRf3]gbYp|U܀ jΖtV س2[ޠ3{xe?~Hףhhl8tqqJ-xrvd|ǣ$OގFG%XhPHP!8 ^.%0:hq],g͇95TK)ZڅlcJ;BW7Ң=0SWxNݗl Y\Y'L@,w՛ ̡/WWgp}b:F-RrHj '$aieEE &J=b ?{4.#]ʞ Yy=:da y$&]) [oucɱ* 5[`,|p" It,, f%_#.a;^K$;Bv`!(vr:zA̼li\Ǿ &VW T]~u^E,!X9\y?=ܠ"DWM԰3fWu/7SJxl/x>C6[(jbןൗӦeݴFOuJyձCVyWEd@R޴Ȳh5!``؟/^ Zn6(;s!8GoO]4 Wljc7`yRe ,vd^| H"`% 7k520 ",9} m65 .вͲ%0`䋀*[;`u Q~F aE¯//_ 1tC)[/wMD3d{ d=?v׮0d>+I# ~9QP4A>ERQZ?.G*3R( Yp\$ц!cǰ)Ed̷v ˧F;$%E>eoOF~4Q%`<#G(IZ40F Bյwg4A k ejR39n-K OWnA@5\_8"G{7Mp^z,+!%I x3=^caRķ?ք7EXjK{dCs : MdIG)y֯ƨПh(?f^FBp #6%֑{&zp ]tcC S" X/1ªCO(IF2:WIWRC G,aP#Ecᠱ0i,:ޮ#hh z|~}vAޒ!W)=UjaNWWQTmgX*Ab3ܱ$ cݡ5moYܘ a!]$PZAgCX ^Aw,n3Ļg/CK緯}6l=xxo'[G|%4m)_NWa?0f+b͒V%$\PGG/ߞ<8Դ:;̓O:0G}qe@ mRDz0|SCJ 2WvkYuuE"Q\@X]*[b}o,1 ǬA;/WC$.QI,k1җ 19ZcGP L1b,X82j :202 U<*{NWoPl,%Q}u4X 6ؿՁ݆li%<흻Mܪ4VV÷;wk*-D[(PN/AjVrIJBrVJrPUn*Q,mڒI0IIJJX+$&NI`>.HBR@W.ĥK^oO𶝀zM ˩>ae'Q}~h\[fvQE38ːAпVA#S> e:~f]U ZUUXxPe_ b#Ա3DmG((37h#1db.ѻ)[oerb#?`dKH DY M3[1^s%-@Ӭ=Ys].d/}w#C luK>UHem %ZE> z|(Rr7>Ϙ2L5\h#m*E`{;k/uk,jDo,TTjښt^MSwP 09!_-0#&Y9 Lzzm#^YD4emTަ&wYE?QDv#/cX aг,ǵ8ByӚ+6}Dzܰ$' %zAKu}K44wtK_FS4`?')<<{v[6}DȪ\t0J@5!jZsJnV5))^<>׀ˡP aj4ea'F{RTjqp"dYr%:n*ȢeI.P-E4p +MpX$4]ngi+Zk9M^o#[4Kwm5t5!:ZoߨC??PK܌5$}e2_-SN2UD;߃!> I^`,-Zߚ?"a>{ךּ1ƭ*T!+co1͞7d-Onwo|/GgϮa-ngv> &2&;wܸ^Qu,[F'YGE_"ܪq|sh!&paSʍY0OPKSv#setuptools/_distutils/py35compat.pyJ1y&< Wg:cNGЧ735&_*Edqlc \.By^ $ȅQw6a|4Z8@0}Z%hT`T͔VO1E~r" Ut9uI:z Oާ/5Rد)3<$&_ eg `_,1>>rxkv'QɌPKS{#setuptools/_distutils/py38compat.pyu @ D`{+JR^ji /0-L#k>&B#fRVlz왒ZYxԮUZ$tUevGk PKSs setuptools/_distutils/spawn.pyWn8}W:da C vmt%f+IwfH]lCr ;J|U{$wT)Y U A@eWR UsW6Wke*U g* [hXр.ҹErS;CO*˕|EźŖ-Z|IƠE#l6Kմzp57!$dcv:-m-k8\w:jIMpWu;iJ{XNWwF:;}t e%9+L,i@y({ È m)nFjNShurt>z\H,e'K6x}MDHSn$(m`/W Wp=,clQ~c9`o; s #g9lI1"={Uװ9ɍC=p8D+HݜAȴ0;lD]ĸzAUdw*gZ0*"#$?KSpY{.rXw>0 >9P%s,}T_YNNy)2+L=yF([c"](%%,b,{pte0, JK63n ?'dm&"S ,c3=Px[N8w >F&)ܠBFnK<,3Tx^շO_>簑~Ո¸ǶƿPm'z<2uIh{h:ieTf]Y/BYy&2lJB<~$'4>*#D3}Y ;Ypfp 1bIqW,^!nhPwr t-0DO[kL̯V#t:ZF<E1lGNʣ"* 8oI|h>gltl}[Nb-t?|;}Bg^QDokMQN⻢$yG4I m&xb 7\\4M=,}P"zpgy+!.'[`kCs=AH +|aEXsBSoTp%)@U&0m.^I|7JNeV'Ż0h$y|%lNqT97kz<UM_OOPKSИV"setuptools/_distutils/sysconfig.py\ms8_3Ej"3/sw8;JbWdqqa8HAѦ߯_|dijbFAtzV7I"rqVyi"Y֥<I5}xRB*JI4e"RI_E bMn@ ]"@g-7JRUenT,jdRU! M?k5#-"&a'q9Idg!8AFdbQYHEE( T瓆d0R&U2qy&xYj.Z5w"W:LdD\oFO&2_@e^B x]%>3=דyxٯ@xaXlMz0H(JpuB%PAЊ)Cwss[ uQW 忆A@&go_|FsZp_|l("48> wUT?QJj-FR%ʼnZD*r" E.I N3KI&/I3GISr?U%` ET0E%(BLa@|:uw!vsm@TvylfH~wymqJbbвB;Jvdf36^[". "K /Zl m|^PkPhJs_r->hNAm4,τSJf3*kʃ heY>O`A4[Ol?t%TєU`TB*e 5M&ZIѡVu񌥍@;/鹪b:%HHY;*7;^$i;IP5 D̩|]fg~ UM&!x(l5ev zs&`ղf0{""6]4n RH4 0ANٮ@ζt NzOi'+NȈd᪨?kfqSYqMqYrDHQ .#)@ 7T.5ͩڐG%Ƀը3:ɢFt&Wif q\#2Y^9zcւ />oRFPk wqW >E!(|r~7'@2$+`Q1$}s3x j0ȶiD+F(̀Pj͊FhRy/b ~઒IfGb-#ybЙ Ə*Z`SsFa@A`'X\bO|G6e/= #, -=x<lxAd#QZ=&2' uZh$ ( `-[, !2Y[,oIuڛ$P$XѰs!Dvv& a>V`5sH(DIErj& }#Rfb[vTp]BD> hAi);.hZ:48 I=s㞢_OƤy3qS3PzFՁQ8ʙciWF;4B<4D4Jq|Fk;jW̡1{DO=*k\iLuAUۜkE҂=%6i@i3Blin~';#^yHߏf~@"j'_'T!n*}/rCkk؃ېTgiO+xg(74#,.zi{n Q6} /0;Qڬku~ MTg}DHVX6ɦJ*HJ]W h@:Ra %v\|!XYX xt=2L(5H d}=ޱt4[F?UR]k\题imAU*DԚV7j*YTsY5^i.ĭ佩Jajy1=ķˮXy4 B tS !( +2ͯ#o->sVnM)xJGߝ>Cxt[o6'0{ ʸ/s; o/v kIC>h#%bM{ 2²9.0#ۏ<cG>ПrvyP÷/ƫ_ llwl~2uE)V 2@zС8 ڦ0s=\/ e*MOQ\CP5632uoU*Y,ͣTe鳮HRT+b]2Kj\vhAإ<:;VQق-!&$?vFs[ѽZ޳_ׇƒ:ʴzQ/cďAe3`e ҵ$.?Uݣauؚ]eO|2!7fh1,]:NŚJFQc\*{;lwtB SȄi,e p ¤:tpm.6鮌1f8js dzdwzr%^ ~B?9),@/ /΄|?e3(:$KG/ljG =v +8"($# ŧ]z[MG5Z3t{ˮj`Yu?,&`Q$;[7T Ϋ<'"Å|[=:So8a3$cV-kT~)Tb4j) aIB1;/`jQN RkGqS<!G7)IѺT2Z<m7VJ 9Ɨ 46&(\D 7K !fW̮'~RVJH>ir2 7zoղwW]V$NfOکkJЎ< ڵM z'= n =(k lRg<ըJJ40(hA~4wGŶL=//_Cَ:a9B*7$0DbNPs:Iuq4CZ,W 1=A!JNLn!M^^kz7*38)& !j˖4<ƅ8lO:Jm¥m4iDWfV|qrڠ"gY5׎ z'*谕oJ֪l[ZŅ*ʚZę>դ^ׁtf*"FQ k)[(hm}cl ~pm"JkŢ.1g԰G9mpms _Qөv(}M^aS:%eqyb7 HLs@MLy bM'8XLRzPB]iCJ_MT0 %)a %#Պy4w ZmeK_y4ЈN~ \2 "1O{2-!_]KYJ-a93`V#AA((mj1U@ٮmvm{ɋ9UO8]9X~Wɗ䂯]3m83{8iox٢`xT|Ig͎ÞrTg+lvRVJٜ( qЃ=\ I<{7/Oa2&A|? hwGMiCNJ} WDfN@'1  C:87n\Йrvǻ&3q =C#m.N:B詡 ,`ch{uKYo(zYgjy杝 Nq@ M0ސaL]5DxQ#sSW)2PI 졔>sM)rH5G nZ9v9<$-0O>$\'400w}m:P$M DZ=?ةx~6WA$ vzt~:1|H|K^Egq$L+x!..!\ o\qw/!Ddo:da١$:{wE ~) xtE0)Z=a91}0 es;J㐚M=liK8͈tI8}M,t)jǢNM$7wD; BA*\/`@WyN9GtM&DGH 'z| QN63\d\ֻ6f֟G z8̪*֙ ?"K{2%W)]9 &:Y*hh8r>bloq{ jK1k69rQ5f\q6r{ίf8CݫAP3-F %,sCW{@"Q:wNq )0E{MbX#Tũ%hg޷1 '<>IslwIz]8tO$Y􈫉)@.(-khHt•3Xaص;ac726`KDm&z{I=0iǠ @ e/mAv7`C P] A_|ZF#F%ܤ /PKSQ8Z0"setuptools/_distutils/text_file.pyZߏ۸~߿qnrE_^q k Dʢ*J3͐HInZ&{j65~榪c)#x,BC>y٨z'S%- 9Fu五Eq^F>`K*k%NΫ*/"ǣ*ѶM Oe:/~$Nys[>tPf=nncF3Q777pFIfuUhU`cF<9#κeB,$ˆ4JbX:!Ve#Xts)4Q3br&rf:d-ScX©T(dZP&l T'fguglЯt dt-Z}4T8v-ğL!F VsOprS]6. -Ư d]83hbJUF ZBagϖU+vp6y* NqP0h,~VbǶh ue яNw'L]~%\5x}.KXM='- W6 tq<'g,QKdtZ{EC#Җudk¦%<`9TV,. V(j8m z ȄB{YY1AOLƴU7iS+ =΀ifp|bit딺'*[ mBD hOh9$^kDDGauSj KOٔģ,Z.!r6p`wsv^ATKU6Sj}̄$ْI1I䂐m5J%*ayHz:eןcEP{^e4oz2Q43Vc|pBǼ #$L(s2{ٟqԱjVD]&g iD }^{62Pv%'z#]6d"n)`>_'F8HE=ÀTnL*%R+_*+4,KRa^m t%ODpq0Y*m5d5#@oNJ&(cLEĺ_Rgxm q!V"wQ6п!)w2FB&XUteVt)kF0v?ơAwȗtpEq@OF]ATG<52Q8^zFrVNГk;Kxseq=\|rn5Q(kmx K{~T+Ѯ5sEO}Hg{|dݔGimzGaǍ† !`xP瓮}VD:jd ʞb&cQ8ps/8Ql"s _ C>eUHTj[#zMxdx) mzI5)iC@[ *:6SFq-#5zn ["r[ܪQ!*A˖~gemPO"1š*P"$r _Q 3uAIcޭs1ͳ ,?++qQ++WwsEnǴkt-i]Ɵ}EhnJn?TrW O* ҐKP k?U!P?Ĕ!,e8Y:f!/}elj6Φ%RVȂ_S[u-5iRo[#TCs~7DK'"1^Sv.@冞[^'δ#󡫨vpR'@y=R0LZD qv"N* ?DƵ*٫qOsxm 䀞s-ǼuF7*MlwDm&+FQg9[kYCj; AOrM9|hpgSL.{it2 Q E`^ aWjCljl֌S>j>s*zm(Y=]g_ybdծ0Fi6д_,؊G}lA_uk 2Ydipĕu]:yH<4YhI0Tɼ%zHcC;ؾx{xL#}ʱ#WG1kKpcfaq"~=8_~8¡SHsQN>[_h GS2[$-EWCCae9^U$6oUD["oiNWXaE\.WTm4B8p%~PV7$I@1+3b]r9>a"\z 0!cڃ JJ' s"T~aEI(p :̮;"u}:Cv7$>A]!*]nP-Óo|W *-sD51yNTr@Oڟ7bBr6²w{[з~|Id*%}Ni"Wpd!(e{a_PR|7rr+\R2gX+dم]0e;>[Z,d8g? UΑ(s@,:$n BËoKH#Ͽ&^.4Xp 9]i4 t8=>)nn' %'mWV\XyaPqyD6BV+\N{-vmAQWbԂ z{[)xv3-C^\1O3ǯiem{W /Ih!%RCid=Ԏִq{vAwһk6̖'PY:*,l'y;e`\TYzX6B} Oۿ8 6~p6.zubs+^'2Mz*dT /J iG7o-w2VtUOԗyPzc$87cq D=0j3hyfؾ_':?r>77buK{n`o%c4GGdU$ݻ}|.EĄ"0 T`Fčd\5?^<O\HMtmxHJzGӕ}搐 =!F?ͶbEPKS18&setuptools/_distutils/unixccompiler.py[o6=&p9]ڡiYmDHIdf`->e2ĉҕNRVyr"I*ʓ+k``ʎ(JgZw&7;َq* cD<Bc*E]1 cXƣR* l[y&n.yZ[Z'~‰4!ɣSюI)"-D( %^iMK>8%Ma̛s| [kOh9Q,J$匉*0,,t"s sӒR1N2^lZHuz4AsX</aPN&IL6#eɦٙ0+&vX+&bZؙT qѽ9ۊ|U(e$Z)tEYRu`_W W8cNd]Svmare./Yr䁑RU?NNNϟ]o˥fQU"i- e8qu]yBIVR)* T܋2"sQd(bG~w &M>&:d D1WxA戟%۝(; AQ_U3ɯ}wM˂\W7yx4>7 Č9>L# 8p@rb|0[G\%3`?2 VI,@qnTOKKW$5bQ8@#8o-ED{l[V1ٜiE\vtKG!\3W y2YW ~h*謊AS> TN^T>\' r$ R8#S8 @0:wPj'46j춮6\ 1x'Α/:<<991N$ʼnoxC )\oVYơ%] nNN, k\?X0+nqQh䀼 YPW7TGF5HWVl'JaP@G¢La4kerajWR.I&\THƑ:?0$i ,1vmtHs`ou삽9? SD+%'ύFW j;gYg%Ý?&/i[b# s3W#o.r~rb^mS$cr;̠hQ7Fbhh!+$nh͕Sc4!;^=S =g/!& 8DFVzFp R dN1"_sA5 @xnYdhd3 }-&R4+a$IA;7x޸L9D2+C:Qb {Ϛ GJ n7pHI㶧$9"lYJ^>_ҭ 娙 r; m`1dLYC&9py@ae- L}rmg5Ne92 mE;Ӈ7>վqgg!o3NMAK3As]V"Ӟ;}!N3J4;O6' ZE|-lD5iqv:b Ş:4DIfg|Ã"_NQN)3ĘE1P{Hu󖩤tfy'=5vӁ+7kK!um\Lz#J]GT H"QLm%O s)̛56nk_("*c*/q{Ԓ΃087`Ib~)T]#ͧ 1á5-v=ݷq~ ~pY;]1[MzIǩimE~'%ӆs6U@ʔfِnMfu2,eb!aIk{O>}-ow:֯wRh3D%2Klv>!6`"A=N +FMWW>aW`JN4ś۾鹆QiEh*gg̷pX7f"OJg*n2הК޹fJu/a\2*,UANߜop#| ןC ą}T e#|[2 c*%f\9-cJݣhA' MmGJiqs~;#ia8磣eoF,nr;f򷒛rJxrƷ9e/|P% D%p8}u cz%]$8lP:~[χYtf&rz~''ͤ^lϚ-"JGħ Y  ԼxiZ|D 1ӌmR&ES{2fm#ȩih`;+s`vہR7ǭ=eR4~Al:fG_NпNW|?MDsdKFK)t!Cy~>g;-9/JdUy" t [iCi=XmXb5ߪC_T C/p޽P(jWo#Mh`Suó&hu_a6~0O^Oӽ^“15}S!zRΐ^j^T}+rl~/Y,بR2{oIyq ?S2[ UIYm ~"(4cz9ɾEƱGiEVӀN"xjfE p웖T6|i Rh4۞~k<<6"#Xđw֗BBOCےgrksfAyjp+<_IB[v(u†B_MiyV@nlj)ÍL{nBv]rkfd1ieL($8M-I1 d4Kq/RY@K ={ Qfyya ,Q?'3ᆱ4̔U}eL_帣 ~xuо`@QiX_Գ/g3$ݏ\@6eMl,(eI G6SsBmډ{͟ [^иEghd =bqrL5݉e0 Q`2KT3Y38D)Hy~q;&Qy3. ({ȰKL wb[ ̟!Q%+ΪhfJ;1`.(WhӜݫJT*}d,2>K\yYw,1)TdU#Q""QfOcS+n߱Ԕ$:AFH͜G Kǡ0Ĕ`hϝBG:)NA`%@XS PKSH^Psetuptools/_distutils/util.py\mwƱ_&Y~\5ǵƑUX@ŋe&733 ,@>H$;;;;3 :ͪ)~IͲ8ESy{qyT忚ɕ }ROrIfʼs~n¼۝][7=iV6pr~~aK)?TnCz?c|qͥ%M^EUV$ $2H?ξ|?{]{1?e ^]hx887O)pYU\eTɇ,c?[x^45 5?1s&^@И7O`۷/_B%bO!~$$hJ'B;.zL3WUwLȜNc^9 {ڐgX0nք_fKkx,j lق4O3^gAQ|!6e\Bh 36q nztp{l%\c.>'7Lpܫs;awGO}<:ѣOO=}_?yvB/8}@dS)+MJ,au)FA `\&z>A&(mEf>z H&N}og}FnOw-G:OnE&á7}-J)t!C2~b_wܵE$먇 fhCo+"6y:>]}U/cU"_n=ݩ2޸2^D=?s`u&gd[h4bpw! VBtP}"a9w}~ ?d}H>ehu!hOP|y#iʩ H0~{m"ce>sWY1:W5#`2C篶0J3n!ͽQ /6Bde,&坆>D 0ۘ@'(qqԼ`}! *KA,!]$g=xLnwg+L-K Ӎwm,Y&]]ii,.6dy4M9(4XX7Ds!W6bNS '3zNN,M(tw8s(:pdN_+h8B';P̝&%;{JnLa9L:x^<<" *5Ab>bol6t~!Jd8^ {{RY\^oV8ir9dG4]̲i΁^5EyÙ/ (gn 'i#_nJ_lvM"?9`alҊ:2w80a^ȁ.4_J=y|)5<#ڨqJ'#v7ABua_ӵc鴟 )*Iejfӻ,XBf3G8`E rFWBx()pt-dD wnO-M(O2c.5]4' _OFtJ7)GHUp'xqCʚt$:T[yjKygNDGku'mdkEnkdxi,R6D]f%{z?V4NJV3 ~oDp KI).f-hч~T3T(0 $+Nv )P2w4sޚU*Y\'F|j~ `ٌ=,Y&9/W!JȚ"0iyrh#4o_;p|i,Ғ $yp:J.lHPx*< ぴ !\YY"Qno|0 ܜ,.7'* ݽ5^a)s.~}ӓr[5dT .1k1xq!y/Ym1HD-rti7̄ +F.3[.x892!'[Tʾc] ^er d H,ha?Zn rχ q8 &#!Vm2ș*z ξM'mo4A>htviaɋ^3`ֱoOplb񟞞@őU˶~'6*(Pxy-R>K5OcOFh^_wZDy8BuTqDT]œ_Ogv>Lt}u:87ëjl .L_2 t4h4VAR_ȿkSMU-CC&g\42t3(9w'gnT`aIJ(8cJ#HR'"e[W| sn<8ᐕFؘV!S4P~H UZuQo6lޑĿIjh;fJ z™zf7rkz؃5@},QFI?*s}?$O %hnlC۳g{>LGCmymf3vFl2~iH@ 1^,hWbg#xcMɩF0pA8z{$3[YI՜Ic,+huBSIWx+nط|z;S3KI0 Cv؅kkIo,{ݲf*9lZ}u,a&-@</2t(u<]Sk֢/ۧFWjrtzXET&OI٪(I7|FcS e1ҌVHEԐC{2uTAg&ͥESs>uG@ )'skwH2]kjN'TW-a5e |nĩ&5/4>buy 7ꅴ✸˹ƇϋH:?Ɨyi#\uQQj3k+T\ (c6@9Tm2Lk xv=|lY' 72z%̡[-~X2s@&aP >ݮa YUYSnEwmo3C> <Y~ъ85~ħ}tj RF*cQ&GH!7Z~`FD[%3.ۻv%d&!A?@좪LiO_/shz 'XDjA6\yn9Ys2'㗻Y'hn1^.٘"-u2fCүGheX+PhY[_)dF.Ͱ+w`cɄWXp]7FL (! 6 aٛ]|i8bB"VlFKjl3@ɲE4nEP-sڡ:P*d4v0%oG#v#^~=A)yJ l&~VW3 QBے4{: cNYN&|| WS\ڲ&3/\u1/ ?TT:/z-{\ƤLt2rx'fpV᝭_4<# (i!a^aO^.6RT@ru?u8s}ӎxA^C; |0>KwI2FyG;Fmv7Doo46#^]ÁaeD~s|=0iȇ<4N cQƚ8c, ǜ:+t[')Wf^mF(tH -LE2\\dZ9MʶQpC _y򖴹 /ҋi̽8T BE)M YƟ&/ %e`i" }\e"V"^:l+;%.PX$Rηt0̥x#aqJHv  Tu6E.jHT86l\KL˴S'3IdqXWN'UNN"bW4ḓ$-(^".rKCfUsHez# Ëm[=tɶdLo&K3 &-')tUML;!qr'pA4?҂$ǹQrׁ% ӄ#nTa8ЩZck=FFAq[NWeuoYoM:T'.ufH@﬽ꩾ-;[iCJvנ*mP[3-;XpI ~#?P4Yػ+VUIz]Қs}*^PC zͦ gmg6!pOuc؝m^Y١4l}Ѹ-%'ӄcC~aLcY>?7lCP)p9iY8x (w vPHpimDL|42g8ϋ5GPl38;!#vּn/Z2g|VR{j(`H蔟C5k B܍L-2,ݦKRYo8I Ș M"H/e>w\Z ď%us;r}9(xi) jX7i Mb޴M#.skiҨ\Z? ߦN'EVx('y칁h2WA60xk4j?yX5}\А0Z6k%j3CDRm M6 }YW%Ȇ&1*;puSRV%;)LGM8e#QvAzqd^襺qq'i6lT1ZBDb(\EmzƽOE/j$h$/Q_B@ RJ:#4b8M Žҥ(S'0MN rY +-#~Үߠ[<2-6(yud2-^|%~_D%LtICրND_qv $cS<*P{&^Khz?.Ν` z`qh.,=) H+$}Qгi ,B{vhx# Ęn*$؊yV v܍CU񠔢-frt NƉ-7ʴd0K9CʞhwWw/&1_5\~zD2q_ݞ5tfܵg k8;v+pFGPKSN32 setuptools/_distutils/version.pyZm_p"iq$WRN+.TsŎ])Ya3 e0t0k)wUZ3;@ox hS7N͗2ȣ0۬LUڈIk7ᆈ6NE~1ۢ^aza*~%*ih+ҵV&U>M>h<[:QFĩ4BT"1-re'#%0#1HRB*N~(i0-=~*߁y"XF?D,tҝ! Nv 2j"2%w$KHf^IMkGSցFYbqxG1O%Ѹ#0kZ uT o6P4ix*vu@*-]eB[Okzq"[G0?ÖbpFaȰ6DrڮQ4%RZІN$'~G@S\[3|vB+Gjȕ;Iɞ*lNߥ^7SFvݟmGS}J)N JM8M'l,>^)9KG[cvbЏō6_í\Էۖc0r 7br֟LO@O"L|Q|͢ 1V/C| Q*@}9 1cqDGpa">`}Ѥ<aGf&4&e]V\ (DD qǑ3ke3;itҢy-X#J@KL=$N&(+M#~F8KbC; 2q;yBZantS S!Е&~bBO^igXO Bu's*6#FNdR C^!0mr=9#H5RCP١h:aE,|j8``m&us qh iJdtY Hƅ0#m%H7G3HhQ='%)K)`2"0]a.+*@1\gxΛPybWA}6=U5DNfdl +locܞ)92$RNrΣnDC`ź!$B #HF"EaZT C? ;%x/6ԹA64c8,x&g69^owOB`:qΉ {\oes\^79GI>Z>]0v;*Z\EyZ! WqB%+W+B?N9kTX0[5pzR\Z`ʃF@بTDS5&<"aibVn޹Dxwo?"}$ O0! PPF٪GB~; Q&Lǧ*'3LEΛ5OD;$ot9x>/eZ'2鍨&)sgfXTjԿM31]L{=cA|ڽ]3HY|u\ v>ygD}s:^\R͎Y<'͎z6]~X Vrߑ wC&!\˅ǖnXgc#&zf'3~rt,įn,7}b>SH'. fb2n0Go"nb/T{,1 ]uOvk:\nV׼$gV^+ζjHʑcOs#z~-6>qms6-ثW= C!jUT-v4R/һ=*焗*bjvrA OM0lPhģ]%=RՌY\Υ^HխK*X? [鴵QԐSF@k :hJ.T2ĠV;n3%~xϠAsypDb@$U3ˋ"6w ωdԹ^$bP RF%:Ri䄰AGy#(h]!N)8S]Z#"c\hIŜNZ2SãصxO K;Sm1K5&pKkNJSs :zX0A {*d<* :ɑ;!\^$/mj<(Jt[D^NbQ5/Y]V?T5"#%&.(zq)ko0b:02r4lU;buuNkaڞ-Xd({I_Y s;m{p+#I |w-*'3^kBKKs圻R[MMm*w[vYH5'@} 3; 4>&SSHѫWcPchX)kWcA6pCX: *Tnvl 5[;J"yEI$Ypx~-/\uc֤\t!;]>9X~L 72opb+[]loi )<]Q2[4NM*I}Fe@m4͡:sk3=|Mꡨ%2i}<|:צAMa]9Q}QmC,Ad w xq|>qIᮀX;ߦؠrzy2gGKm;hv؁`W:QenvkADm5%jP-|95c3dwI"sY{. ;夅␟ӖLw\tlyf%y|$>ߪj/Kc|vbX*~+w#x0|R`1)D @8kfی/ej`5[,duXqw cxb8M4v=<ezIY^_;H*t 0S3Uu?J;IxV p [;!h 2raT9Ap;ΨWc|ٳ1 l]%Iv ,vnBC,kҶw FAQy+6r(?dN2,:ݒn/.Ʊ;LHNng1[H ~A3);k VӴpŽxs%@n"а{"%cz(I\,8).T9 gvab.yx^(ˈ }?)G Lɻv-zO(JӎAqn[S' $|ًA E" 7Drd{{F2 :F7Ov9gӗ~:_PKSxO)setuptools/_distutils/versionpredicate.pyX[o6~`SEň] aCv}XٴD;ZuH9qsH](iUbssGzkשdbToc^HW䬬dDBKtT8o?7Y>Ev 3 L,/hFE}i-򽕈AຨZMcY' &PP*R671J-m%|ApB; pJݟţC10=d]z6T̻9MfNJ!~E̝i忠F*bVMF#fV6b9ۂMCRP"'Y./ /$`OfW^s#Ӎd\drɄlW5*Hl]) ep 4 6ViO鳧Ǹ[瘞-/UkA.c{Sg"?ŪH wQWĆ 3>.TDƋKI}S,9[IV+D,ZVYKBRE:[A<fIu tW T56fyn< 'cc맪 {agv;^J|xh3^ N]Dɒ67y+no@r0! f3 cbXG?{g}! 襔 9D1ܗN[Hm'ܨ?ƥyX^K>3)?MϿ*alWP vWH Pt[0N)Ha c5E~f 1SPFLP@B-+ʍH t% .aYm V<\fƴ#a0|SVF-$BE'zLAVaܬ]Gհ?}%2{|)CNkwJh f#W;%!J*- үC;t(J;DʼN:=ܒC?R)%lFɹr.U$n=!ujl7,w4bC5B\H(({w7 {0 8-zH!ܦMH1,*5noMk%!G @@[aY >zj8eC(J:£ Ù|Lʈ#pe>3ruSh.?fF :CEu1[ Q& <%ZBVRqI%?Wjې3u#iOƉn,Ѣe8kʯ'1lGOm&-V D;jwՌx+9ӽZjv z+en8 i>nl?:6[+P%{zG=*aub>M'tK Hs HlWnuҭ箥n)gGPKS;*)setuptools/_distutils/command/__init__.pymn ~{ȥD窇ު ac`@쒟/Il!pa{X,VyFoG֏`h<=s K9-A*V 7Cl^;[w⥉,MdpiG+f}smWe"4UmAJ*h,R )qRtSH* X&b9D&>$gɅeÙM>Wiꪏ U,3M`|^l-X .S8ZCp`I,v{~_PKSn1&setuptools/_distutils/command/bdist.pyXmo6_qPHZmGc/A;`C-Z")qݑ^l)5ClsϽRAdTu% l~dlv/ 2P8rZy6u- B2}\HL5R2N ľTef[?\shVrOEJ/29Ҳ`Vl6NR*BBVPP[`Ll]ph$!b:[@,~@29=}4]?h`Na8 +K.( l|n9;\ݽYűYj^UǴ$F=;1~;^Q,})1\z͞q@\݁YS9xbyf_s p?Tz5T BCMkB ΅d{wj9yb Y@_#k;(8-&D.%\8A~D$JL1c1phdiaxTʳx גM9 ) s5E]K mYM2\+< hnE)"jG_)E"U"yߞBнzO$";Î.TLb: 6Xl_s =H>_le_i 3f{Ә5+5e&ۭb{h:}9pZ9P7hploWƐmq'?ѷ/G}GkہiUS{km#Gq"zZ1 &h0L7o?;럫Lޫ&ڭt4AV^pFi. S)8h+CƆRvZ++?is؉L^3́N}!z UWgo^O:B>`eyxeBg޵*Q 9ΐ4k@19"7fZyF(+ai W3dOӁ$ܙI;cm /<CE] $41ىDz} d] ާl-`Bva9L96l"XD=%.^ zx07pWM- <ۭIZy]|\MCR:-~s^)đPKSwq1+setuptools/_distutils/command/bdist_dumb.pyXK6 WlIv{ ->;0Nc[$L/)[~ik`&vHJ$0 3ilceavGUv*͚u%Vր=#!",!>jA@Ȃ,lZPU݂ncAT ,?#X3PûZc.@1m]A Zi V%Cֹ *'i]+]2ӱR}j `eF2涨[~79*{VUtLbNAp,10w&AtehZ.{{l>:p>vl T9KCOqr6e-";(x(6ɱhcr}8b@(mYneay ȊY3e,6g`&U/Y,s1_uSUf;0b+N_ǡxk?m_d2˪[ 6XQ01LpMEu"T!|*]W(yuc JWL%rSE[6OU~HT90zۘlp3R9;ϖn/AO~ja8W* f5N[Q 2x=c5"+5owhMk*^jկurۮܶÃRj%6Հnϴ=CL=R\kDe-*#K+E!w*6X!?\jڔ7rwK]2I{o"=Ia*!)mi~M}cUqFrd>Ϗ4n  nG_ ߎX[/\W iFs 5" /z3  {0EJ?>HFikF`IX X7As_a ?k>1S TMuݕ{\RlGnQ<{4No)<5͡|Vc_ IűP~=M;Y*;=7(ff}2kCFy~/8~{g T|?\vN]o̮%zX_(mGju? u/КI,MggJBo{HԎV0)ٴTYS෾y䱧ѵo0ò$ZM( Yk|<Ыzs3wgq0k+4jnՐdz,@kW=wy}=Iؽȿ z2Ji/:88 w.Ԏ,i0M☂S_(qrǦ.r prN5Rǿ#mmdKSu跜9 ӗ6CPKSoY"*setuptools/_distutils/command/bdist_msi.py=iw8+0X5:lI{It_GıDjHto?u CĢHP U[$^<$dIS:=$ #qG]>‘R,o2 d"|eI8\fq"'semp=bi6 0J31s? "2"CB+N'=9/f*4OC MEd"NU`.M'$ Yʼn C+ dWX"dнbQhpGpNd6XŇ6ބq2/EfD ; \ut4s%RF%2yU|&rgϖ }JKA0d4T}' j>"|߂K݅lރx=)~Fŋ^DP2Yd"X :-)(}7i#:4k &?=@aNfrQG b0qF*gO&)|}us:tGyf9o ]KL0Y8LҬe@rfm)d)+pk*䚦QH |؞]?0φ0~+*~<  %[sB?HKJxoIaއcIfa$z kQ aİ觺M67|@2bw\ڞ՝23p&?F>|?J~vE6 - NF=#E< X]#..߃?H~POvmED(6&`/ xM,]W5 )*:IdZqSk@ ,x"N8$E$n?1@.%4CyK#(JV$~&[S@Rc}`W5y\ObbNTx{*Zbn>U0 [U<<kȀ_~glğxֲ"g̿ {yȀN+//G|c|<"iN"ßD;JW>X w_!6+/2]D4?$WG\‿!=Z[skZ[sk}n}jAv~=.r!F3ςL)lE+? $H4PIpB:x :9^5k!?iTWY {TT8H;Mʾ` S*(?EB",mW]. .#ԊiEceJ+),E 4cB }d9)ɾ#>2=ؿ RN 1 :$x%ںf;)O~6m=F^ ٱMqb3o4^5WCS )ж=y,7ˈ$ALT|@VOn؝E`zBlI Us:˥0tq4 `@ѕAsgwj͠`aeJC!2@ jBQ<|>G8h zūln/TX̏ͪW~\dz=J~ PO*Zz pU??K[ \H ~,"IYO<"`tH65>xZ U=,74 {\xMPRA]kLQb07DZ~ AQYR<5L3Ɣ9{'©S o;8# G -PQ.Um#1ޖ8#(wh[v_}'W(iesZ0;JSb*L/E)Xx0:` J4I|K(@ݴ]wgU;⟎3Bhܙ0,iC0*)郿RrfTFH痸MijE쏔*b_?MeRRsLP3MhVX;A{;A#qyuxhhӃ;NwyBCMu2Rz\ЊM_A .t28ݎdi$kl\lXSQC%aDުU368uF1o]:'78Yy5Ol~NhTlZ6$@DT X8L ]EuMn'E=K>xtSbe"뇦ÉN໮(ם 0_>oo_$ {l}Pf=A&Z%\Z5~G3ҟm"3!rAȞ?JΒE)F$YQ^\Pjܺo?y0[&Cp] 0널8v/i.;Iy*o/rl.Zժd6.(kRîL`[hyyYdf[DF2[[^ʸ&[Se0pTsQ(AYZ>ᬬjVf-(|}{`lxǗoO\\\ðDśpfZ@.__9~B@jxE9vzCY]^l / FTO}zv SHjO]+KLr1 q,EkM-l"BaIkS[WE@x3-Vn48|I]-)7* #uoE?\݅Vi'Q0J[iZ^ݸN*(r8pAǏ̂L";r宕\5WrӏL!u'vQ-I} w@ =< [u7-\uʲ:b6_(O[W|s^;|jۨTUʟWVӽ(%nwJaHa0:+[-=,s, _5ܹ~gKaVO{YiXu5Aw)'aIbKZkMx7`\[`V+p=^,$.]*ejܸFsLNiϏI"ݯ{½ J_ S2L`s] 3פV B15TCPoW*Ӷ1i] ߌx-Wڎ;8 •(h/wZ vQUn0z8 Tzt\Lg+ֺ]88tu>Fj]o..~6x޲1\ftl{Q-UģA5:ޟYӣrT`&:SՂY;.jVnA)S0c7g)N,DtRw )-(J^5ZptŸaNB\: ~lV FKѸO鴥R>e~EW T u\V:#Hsm!~E/B22.n^an0NRLb 5qG5Ɵ\*v![Y8Eܷ2IO mFGcIaQQNE, , ڲWQ ((֘KMTOyH U(%ȫ=J,e(ttC>ʰBcrT~@u ߑpU#BS &'jƣĮ(Mq. ^FR*[V~kWѮ x24komIx!_.uV $-f*.Qg,uv@+<3zhavt Q Hv\Q&5]sƉ:>hnVkиcIr&lQpH`KyWc7|ࡄ8ũq/ xc8˃"ZKYg bU4* foun{BT*  Z mߋgé!|ʼn4CΪmh!`)l}R=`|w5pSLJPiX`r)y0O^>#X7u*-ӭ-x&l `qfkbdFVI1vY³`Y:F~owx(xv8Wd]x.(^ `wZ`FPb̟VoυL٘Qz\8ABxX{!R@{U~5fA?s`YJy 0:0 Y l,~c诳xτK "r;ƃkP,aև֙ YhA9z ;!^ ܁M׽GX CANw[nVG 7b=2U=)nP!bD_ȵ!S~ȉQL0Ed}5aЩ{۪j2i[&awgB,ge2tf9pTrpN+ݝnBӂn$z< {:b=%\dJYM.z$P!AzӖxm4o_{ɓ} ZeQ̦ILKCH(] s$#{̆6v3(mGN.vF_5 hQ M)Ŧ!aTކ-:go:\mBѳ嚖ǿ9APNȦ2[N0+'f4%szQع=[ө0KFPmXt Nq3>Kl{9e ZQCX#M]%$e`V~ªFlI@š[xk2?O&_<\:=>}I*.z"V%.ZUQWrZkek4<&UB 1ᆪ "GI*Vo&9rgx$?yVJE_ *Jz\@t%Iq-:~$x)/GFz5?ʞZSSMi|/$Pv5.R^-< ]!^- Fd-7.ek%38UɹbhEحx7zy, ubK+V*۫/l0_"ԤE9. L~ٝD^0Eku0 T oS ;NeDya[?D>B:Yt,I #|IBPMcZꬱ1Fv&F$@/tw<؅2<^Uc~ $$BQwxiY׫6_~~l!>&ʕ~U'3K<;' u&P򵓔d&];ga\J\$$FˢAܔbN{eTηa,. ВO  wNr 0;Y91yD8?ӯRFMjhHXkXG}ZT^PWp^d7vv0Z&͍7QU  4!D+*-`>L^5̏ĄaE%:3^hs nީ;V^[댿lwޑR]"l#)7]Dg]:pWu,7"0$\t]O#Yô"A! buB "T97nh׿x ]e)Ep0nM~VR-{[Upu煟xOjgd|*2++=+662P*Uce֫Y;me^6> m2RN)LKr0h+ x"yj${Lv) ?]dGKW:q .ΖrSN~4Q/q1 ZxU_m C?Z6K2%m=`:6)f~k>ޫ=7wOo,X Sm[?S#]u*ވJ9/+i`dhF ;4330LcD10LDq<=1k;ЂNW9.ѹ0* ăUlV=!zjȜSJhsl+9577?n2*( JeۄgXz ~%E=e\vO9AuVǷٺߩ&.W`-CT 7v𘍚vR^|\i% > $ )3!ټ℞Uow#W,l|yBGe@2RkԼ%?u(?tȴWw^$YTL0<Ϫ|2$"/kV5c^U3V:X鼕I7 f`7b<į Ljce^V lּ]ɳ|}pQUVgɫL {&RQF8M0' |2⯼;3>k߲ >%ܱU^2"dkh6ULC ?1Lb&Ep]LX-y& &wm-8 '/ 1 }[z:kW@hjL *,TfϑzbAy,B\")z$Լ,JMT.8_r$[hr#vB.& 6\tt)Iܔ%lw\L&MZ88ǬkzQ$ al` M 〽,% xȦydJSZɛk@1MۖQF d#P_h VM$M#Iq@zƢ4YoE0gV .V%r A,OR\C94JAm#9D$Ys;5V'}I Ps dyI%~du7*,y\my^I(x\Z֘|k5/$JF΁<[x9_WFvF̐z7m6>j@JFU0޷E7#YypNACPik-_SHT0--M7Q}Xͭ0%-)E3 q5l~t⨈IԸ7$ {;m-ڀݏNA1X~|bw+xvԛ,3 fU?ݏuVrv˜­oA( Mj Pd@LcRbl.f31Ai,\q^5q]D"5X8,XTR!6Fp^8ƫU+|[$ᇳOồ׿}&.@#$ (`o!e/~%%١Om=z1%M_Uv`@_-;T ;ʊlteX_ص> ,C /;;?>c=جVk?ߟ`N!ӽ(?>9L$T%d*ϧi;},ӛקw"q j|v!ZI`-DqRũ!|IjM;heٙtY$~ak<#45hj s\Cb5-sǑ1$5XkTw1'9rr#}*?T% " (Mq%jzb?eՐ ?h׀{% '|)jW6y(4Vd~2E/lJ 5^-HKǡD\oۤrχ94c dx6CI8 h=0= " e"hq 8g큛lFH&@lː"ޫ,$ֶG'q,|; mxY xe )J`7bhƵSlbGKBa `JO%vX:ƣ Lvy#2 gA E|/6y5Ǻ<|Ao2 Us~㦎)7yZ9e]'AWtw*pnliSWVKv l^1Z[o3Hal_2 j]{Rq%BdՄ*j;M)#iQFB~9^'D}]]N]`)Ƙ>vCs$C~[[ӣq:f5.*+]3,Rm<#0t8l-+@]nLGc8=χ/^~_x ުڟ"2>BԟRWq7b"L򌽑Tسf45c8R`.d}ߏqŷy}[{Ӿy2/Li[Ht Ọ+ dt |r`՛2:БQB0cR/ƪ3H=QYX6Lwñ.=W42l_&?(TWއXy@;X=n l{xz/[Z}'mp}7:?OC`yid5_ "8OUpӏW|5cc$p~K"?~|#ȏgo k.,/J{fl9gEH6/ul[195Ahz({O,ڜ(g>21hA5P[=],H 0^sGYdL{kZh-C狪,"ze^iߑvv |FW`M3[fFnC^! -*NɢG$QJgEא!Z\_/GP|KUne DcpimxHT.Gs#kafd9*$tp-/.-֕bV(6ӆ;t WWal $pE$ /! cVA<怸> :5jc78Vq@O(QvI Lժ @C$[s=XUR = AZAL o3#7IX~C/jBu>ԫX:P.!0nnA\)h䧭e=" (jF3mY|-f Ov4vzΛZb$H5t,y\ێ [,w$@ 4f? b zq]2rwdGp]W|Uc5 Fh&sx+AfQwЀ-叧WrۖX fWHf*]dn ~LG!htFfN "BV'ʝڻrS:?&UaGĤlOe㰤{l4$_fjnEb4eC2S{ч6Ge1J"%D-[hE餫%h'$qT"Y5;XݲNuT7w-l$E0{}1X.JRѩ'##Y.yQJꩶk2C7/͒i2.L ]{OԿ%>QxQlZ% @,ot!f3m5ێv(/e\GP33)Q% g8v_25>k ɸ2}߻%r[rdןMȱDwYvNwZYQ0խ[sEJgڨkFs4LtTs{#: +*c7u#| yK"ˢ.]"|KлM:--`5TD 2KDZPNXbL֤/(z3/P6kp6=R@-`/V}5OìhEm\ʼ-駗>Z86PLL=x!I y|ߌe0';Eq5ľcۋ:墩bO~{:FӳV#V@(aI(, 01ŪeXHo7Gq"*BLɭƯ >0%u./^Zl,Vu<7U eSTDd|<==oM] ^b-ĥL9:+JnrWS<sde& ,V(}juqYW2iRU 9JVoFᥠ3 jh]sf]Z!񎨺teB@ FހVw rHZ+uݲ5;#}4Wa5= _C1"0]qWǂ|p"q۸!8W r.6ݛ] wM|H@Gא`+VdBeΉi_}:Ɂ|Îp&d$tLix`DLrƲZ;{j_fn yŷEwM8IbJ{Toj  Wy@P@jwVY%T}ciwj\0#PX#9mI#Gx4C 45R4yҟ-Z v6ת~h Gtj)rw .TA۫MS|}3,tlBGδ[mPjh x@خk>c5^&:9pw(0{vkoC-K <[Y ErFh0!tkBӪ]VGtyz$AWps:sB\۸!a_9`MQch_OC5]KuWhm!eHmXa,.uLkqY̻jgCt$n232Mxv-_M˸}ɜPF0jt+*NG5MbriIBgj]_}W,Af@v!Tx=[cz(;mI;@;q^*uSyy~ Af׸Փw}cI۷ˌ߄5 B/ VOml,G%xxb0Ay3yH1u^O,\1mҔY]FI6+e[ NBDajv zj?PKSd-E>.setuptools/_distutils/command/bdist_wininst.py[[s6~@"5#qU%ԙ,V%(AI>c+ g%gT fǼ6_7d+Pf#~8(UUb/oE(!CRRi71zSneN٭P`XY^qY mquvU%v"'嚁PJf[;AdHZL 4>$ W x~X+jr6DHkpJHLӤcU5C<;4cY#دE{B )+5f$j؅^D"Їd1eZ\tLG+%bOg V 6jvI*SD^nʜ=e< VA@|reYpBQ波,$eXxuQ埴|’%Bհ1\\YrhWlݖUeZk= ? ^0:;wzY61fvmKÞ*<V=)+Wq=@p4O.cBYC[_r2>K\sM  3Ls3tZl0Dp+zl ܇q#|̽g}^O|2ˮԎ\-`!45!#0p\h n۷qG,c~5APYV O-gV5k9ˡFhxH8?ɝ8.gEXU5qyuǏY3bdpZJڇaSnv?|sA_՗W!a6Di_皉:d㷼t,!zY[ upi!_MmXzM%ZT%{>yrsq4Ji7֍rX5In"c\.\c~}9w,C$wBT,1o|+9hNetN' Z p:@2B$| L=E}PeQ̅CL2q(5:#|l7NlRlJdFݸ̺+7?G !A40XH ]Й*/TFvt<9) s5Rsvp 0 ^$kJE!19j `䏈Xܑyk  jxV1uP.ԤV3Ét1M"PS˽q&Q M[1焐-:)i?!3r,ov~h+ ZcbdWUFEӔ+80ˢ, jxsd1C +?QC2,Npk6tEjވ}#nj#`VƲɡ(0gN+r4"IP)rghroK@k ,b1!]F^ц{L(!pýb `7=gj,mrs'}AOq Ձ\kt.X>j(&){ 29۫s# "ُ;8~6& ^W-:# * 0+#bޟ[3lQt>EzSm:8C6,lGA4z%LS緲,\ AE_˶;M,k{=9u]G=_ CO.bCןat[(Dp7UҨ-5{r<}v*V(\7utcYWj#N}mܖBઉٹ/y{ +9QqcqWDGs h?r8AA976t@uF؋+7ܞ0A=LAsDkг#yoj5V0){^V0 _jλyCz*u>[ڈ$d֧F#@'(F BVUĺW ޲,Nܸb1.Jx-5&{g *7`iW,0[ io,>*៪eT‘vigY7aT&;8"Gȥ'(!N%T˹9DB&{Z\^ D-͏h+_uLe-9.\hPwW'9!{H`%Enb.Z\=mѦfot$:Z0fGbu< :O`SW\ L9&APn|!I:dcCaLʀA 鵬o㎞R.sYPu^K( vi,Q&z ~O!DH?1 <_A-!ѐٙT}_oSdw KSN$6l1b3U#apz1 vKW 庚n'JqW4e7R99<˜qu'_+|t,;T 2x-;Vϊ찑"$|[nk/^}]ET**Oԇ=3Ufd$fs{3e@G|>`;eX"du}{^B%j3>3Z*GC'`>[SC͡⭥$,DzQ/{y݉.QPհ4s}9$@F އzh؉pҌ+]Y"9q8;ǔAkLuvk.F7'댊Jop[y5vAފ+;Q}LBBOPmjɶRze `h`t َhay.e5`h6l.aX.NM-*QlJxÏb?Y  FQz{VP<Iطt]TnPvYa % PiL53QBgVmhqQv]1ӑ드Vw+T~v l}\_0wP3c-hưbxxY gwJb{zd$us/;ыU4WbQ2쵉jiJK?җ`J/HJ{~9&5fWs+[ƙlಀ:N|{}C~E/7޽߽ۛpsqh[NךyܝʡzsahQƒ1/pvNuh aK @vID9ȝ@Q>˲Jtl@^КCy"\kMwB_hqAm2W[V ߃S[fT?h˄ACC(v3G6|7 }?Y.+4,P(x\|Rld3)>9|z-vmФ qD{ފcw=3O,۵>x|с{!?trk5hAcN39aAF2q![,7`Ldpmflz~>n!axNؕFJ5\a]G$QI9;l9ҽxj4\'2q6C Ey|(IWYL(1"kbiե!\!}}JbM1\L"8ȢI)539'Љ'lԣB>! % Tk%0/` 3Kj]D0X l],#2;wXMh& _3铕E }تCO=Q-9!p2l58YeoVݚnPE |ciK%V͗ ƾb#r6zrakeI+Q2 sGC`?iSEFFd42=9j"JЩf@&=rVn1iR}: c0) yZ@T{ hȣU?O9 fOVWLO!)w~x@r\VÁr)_f9QcP1PŬlK.nl?>f^/ y|j9;r>1fL[Q-!7 ,1=6 qvN|2OyU~Qlz f6T>gƳ{Dg\EV.DyN;4<1 h&PzZ%hM;O3ƹ1O7-JMJ 9CI`L2EKч"UO} k^$Vϲ{D_xHi?ռ7Mn\xhE`>#;́iӃz7 }ˇ?0I+Q[/)O\kv`0"LaPG*vPS-;yZrI&lO%%^~.tMw!Mh6cNmN@h3 |Լ5SٕShɩ#΂A (Sz;zES!2i$)dًN 4t/bG<=s_.*RzՙC衝aǙWA;1oY_PKSv3;V+setuptools/_distutils/command/build_clib.pyYm_"t:A>nm P\E8JJJR븿3(QMpky}fH%IR c;+j)UpYmNնEZk0{0㬔+*3zKÚe0!˺/QUW#!(ZIHLЬℿjAZ$IV  ls5oڡT0-[۱vKr:'ӪA iOIetr4>v8*QAkXnEwR5N=N`.߃ VHRsgYK8=Q/ =_fޡ@@"I ;^Z*=/KՑxJ;(yKu/dcnp!QJ@1eID,P+\A,*6hZ-Sfǵ֏>HO6a9Rɝ؇egj`ߢ!lIXjUtPa\0!,rK@e͍acBf[R)1\ܳL'{PQΙă*b{HS-|0Ȑ_4PĜpomUxx-FS..`vz,:HAI$L%J+@hZOaKڴPe!BɻP.cO{m G*1bE=d,srYso|tM$D3%[,%L@)ފzS,%lDlu~ika3e6-mS"5܆7@LT8͔Ԟ2^("K)"td}q䜎PK׊?$ 2?PH۳I.V>~Ͱsݘ]$xR6ɬm6kW.uq?|X\lWD3yBDqe}xq Q4i*gu_3~u9[d9d'}jgm^jaY E5H2|nP1z sa=$ʒ\j뱲FY$_B}ڌ2L5:d,Oܸ+u7%u/;~dN^5 YPћ~ ?raklH&tY(6vÙ vq*dr\M<'3^חdΐE7! mDEQK]">+C[Aҳg,Ez8]#Ӄ"cݜR

O,b%r|g6f9}APC-4fn*:ax/UT cPBvS1v1pd qU7Ȃܮ([00/~ aB數+kd}D)@v# ؤNDL7FzuXAOkW7g  F0AlwIUAvmkK & )C(uϯ[9?4Lb.d6CRHhW1L8ԆeEYbN5h΁8Z;L!|,[d}՗[XVx+ڜ(rdT'@ tL ִBJn 9N;YGbr+whiEM_]Z4{T"Wȝ߷YY;L["*G ͍y6gҘ:@ʪb,%:4`HfX)luw*d  ؃a<æu:@8Oe_[SB8˥$) 9MY$^@Jex! W6`dfD23Ĉ 2%*-Lt6@FM㷒L}xwS69* @kȺ t6]7^ߡuL)ȧx]e w'Qb%q7rS cPJԁta-}xʫte!JF_֫j_9@K9j~\'7Z(B6o P_qX`B`@BUy-pB"Ub0`qw%!bE$oNڧ(7sy7!:&iĂjMIGP|= } ؍3`HP eac桵 KP, $@)U셄I.@կj+ᝬ?9fGG-j#r 5Z= ao ̰a,+7V=IT4ҵYhy.R VH/@/F32+DP h/+0Q`e[hM[lֹpO5FJ&|~Qw$f۟ tFcYFw ZZ&PoSh L /\WBh|ʘOď(;k&1Q\k)E#[d3;0YgWUn4$ehPLaߟZFɜ!N&#׉)RNN{ d^ЇPeWS+!9,S}N|z\۲y%[p`K_xHx -N.YFv.ߚNqdjOM4ձĈ|PÁQ5+> ZBeOUM0;ZH;sS#DLtthHfv%c[xsYIɼ+&];+-Znн@!BV!mY)TA瀙3ɮ=3 c79dw(0w=}6͹MڍTC_EiWJ \׺h:` kIaVGJ[:$ӒL.s7K{C6C%ā EOX "G tO`"7D)ƑAbI J A~]~+: >PP@t`-nT?w#@dQMOGnˆ#4qFt!Js)/Q8=2~ʋx俞 CVV?q7PF6]Ĩ9O640`U`Vo !oѣtl6{I BPS\E\I^#DhH7ϒȶH֦p)|Gm-T3yun hF 3R<}L16rܕGHt6J~x#mF vb Rbh2?`ؕLZO4#?ɇ ql ,cg2=F9HE QI Hiq8^c-j1 lRH/ EAPJ5mj wl?fҁwE FhnBn艈@Pb< !!'Hc"οb 5 @gF)6<)5:M5 f;ܞ vn]v0ԝt^#@f|L`>.NMԁ옿޷9e9i%wS^!y9)oOm:1VTtMzvi}}a0sJ%$'3LDR2XHhi (Q#͊TLnDm'}mМW7w)Ȣ\WMG~!{F+"ձqKJ\Z+LU˚3hh#X\kY(ӱ"bJ O3ཊ0jE8i&+i謭Z ݰ9ɉ Uq'P ;o&%so8UwZwZia2Xh2Bg`Wapۜj|tr?ꀲ=ME!\H[q'0~9WcHqi42('ANDȈGlLHL[B!Ê֧-)g%ouӲ46yW0z4Fi Xjr)6M@4۫:M!EY crĒO|F,qlp Oq'֭p2p]CDn*uG wlG>$n G̃w}a934_}jމޱ;ec i7<c@F"P8X_/@dk *#A 9&]p~n.("u,~:v!3v9#'ECaK>x=a1u6%UHskO} e}Edn9Q?Tr>z74( θɭodclȼʢ4ykd萷sGHB"6p[hc{3wBcq^ݻ@ߵc&CHd$G㞪0+P|<QbTW4CD^OěJs+Q;A.ҹLEcGt%k|4Eg=wIS{qpqƊSMw|vUݮӉ8 2X@!LtρCqqVNffiMUK`k=`<_͜- "Y5EafH%Ni8+>YaJe8y8d2(pA'/|0qݜ. Wtl/z0~>Dn7pmN'sFT 57v`hGt&ԌrQ&f{~Y0-}cdNOeaJ1<"MP~t%t0N8-~kܻsv]:Kybjk njygN{De fc1{3vF)e~mc}?@̉xxC9pzMhINC –K$C;t n|pH'*/gvRU_L믦 z*i߰ d{n>_O XWfFBй'MF P]=_K>IhaTuDRlQ[r倦G{L{"=W1"B7vd2 v TMFP@Xv{0IMe;`aR"zs5u 2i ̩cW0rn'E^܃omxI'9P(jDL7Ⱥr[i,jHn\ӷ]TRBjE,Z9dT/[AEgO ađbwM/ljW[_,S4ˈ fBΐ8*BZOZzzMߘ(_9W#%ȁHib򰛀IJ"X$GhuXt:*ãRZjx ZD\U`uP:J8<1^ATJ=vQ[uXX3(PGv  seĂ,XBF6#/56Cx~K! ` y O:m-l33H IaגN(swg2S%&RaoV?8zOp?:bipaRrzJ 20q]c[ΖQl]ՅH )tB[{ub`*3fVR2פ^sGf&izQRBSC£9@bC|dP*h ֖D1q׽gAæ3 P޻F욮C"[6ABc)eh \xt;o˶ɓAs4R!},7B/L=H͞%te*1b<|1%P8%|S޺=잛W$5#h˒6Smf`'v[.&24'|x;K*s7|"Rj8s.*#`3}, F>|>ExCa=𩥂/ѩ˦D<\`qwYSA{`e3ҟ+;MSxG޾wbq V z[VUd#`s.ԍSǸtGVq~A{O;uq_||;L& 9F̟1Ȥ/vÅciו4X't-P*癘 F"H1PԪ'!ouк[ٶXW`n%o6Ìf["`tFwFY6Qg`S*|TzEnթٿGdLt M#UjPFO]/=# M-~:E4@(y/7R[*^@2bIסсtoHAF>0O(LYt߉&`s6w6E)g E͟y׈WWSX:FP[ 9Ä?i.Xw"9t"vt`St4yeF.`JU R KFS& 'PN뙍czj~Q6G| Nai%DV9\qk{m&,PM?b|uI %oԛeHΩMg]fWvHjϒa(1Q|JHkߒGO hЈUE]_ gq"ڸex\ X~]=9ebMVw|W_LT-9|mQSD^Cu5"f숣tj_wlv w3NF|OD{,:ϊ{Y'CVTUOsK#}> CDhED s>!H&JMԺޤ|,U5"1:4 |+ɘp~ה?'bɯK|A tޗwǠ@w_]\Ϳ?~׽xNʚv󸐷wrO^@}ѬeSI[GݡzA" MO ݾ>d\LL,<+t3=ʄHCg)]_3iS2F-D?|}[܀C|~NJj79zNH-eN.涁.ڦNfbxzNISȯ" ٓǰ;3|3&ˬOA~)=xxX Jz4==`Y9|βﱹ26H{0Ү P%ّTtgԽN:r.r[$W ME}DLZ#BA-Erϩenn|%:k!DM^% ggP2n8;2(!pМG'i<-FkIb/ٷϧœOtƟ(CcQL~g̻tAB` %N?Cζܠ!g?G^YH|0ȹ hSmNUǵ(rrqN߆Ɵj8z:wg3sZװDx{]9?R긅lWP*b?.~e kMf?|| UEsVE%՛w~Ssb3$Vr=x]mƪޮ՛CWhɆ`_,5cRff%IruUX+O]mV8|+Ovn7WWeI/T} z>a6E?;>qfHKXWol,a,1?&=<8۱eE $V{Q mEl_DL;2%%6]t ;)N "9| hj ?]NskKMnn+J>ýOr+%%t=Ӄ9-߾feþ:%!|I8ƀvko`ҽDjS˪];f?t2w+=nڶqU_xOC8⊝0;Wcn%jx r5 dR%Xa?j>iwZ>߉K[>>ܨ]̟ 1+jzl`xՈ5?z07}ȟ8}21'ϯob8᧯6#c9Þ>eP<1KV֖LkA?/WQ)gD&mj4U}ZT$`03]qY~3tR̒nm⦖Lt6M]% Xn?0WU1g%oha(i؂Béca?ZK3Yʹi!yKZ)D99 Wi>|6R0H]?OC!`ٿy=/,g44K#Jɼ,KF` z>I)c~@ݝHlsb:{NL%o؛o~ _ F}0 @M{xQvA:*`PRAXs g,  ve)ZP/ FhK38XjpCʪPcFcqr/ J8u0*w$ERǾEqNBAS*уz˶LP];$,ܠs:(o?ڑ\#>B!B~(PÊjAPբq-@ޡU)5ՇDjQrG`K#3%K|1D9ECCntpHA(Dl Z]J~Ԃ:'cU׀rp8l%; >3wRCڂL\H3)2u(GSLW(VQ FIq&ZWn#rlv 1B]]l`BXjɇ%_R๚%ԉ{?b:R?dS̀,dF7)!A5lAf`fkUos'V6PM4b)43 E`y ~ĪPH>̣ 7!n1܀웶@pَVqj̶% AOk썶EZBHev*액]] Y<[d,x1SltM4^e%0Gz됕S#9LÇ[w7tơٺklbop afDӵKۆ޴`3<^Xw*(O5u+0/hY \`_ _5M3(^)#>BC0]`Jԋ mB--_B5ŬAF<J!:L>P#션vX~-B1)WbШFY-InPD\0aUdeϬOͶIx9<7\B^8VLuuyjFyxȪss'df6L"donvvͅVoAJvECL,"iBl3??Cc )4:@>E h~Sg (Srrm$yP, \U4)kw$G*NN'P;7#`&(c) a8 <l.NTlj#+@k[X墲 ~Vm%̯Q~};h}>&gM!b>؛)NpF 00@ē-Kx@ZJ *U (`{ލMB/.,Z('lߌRz*Jjsb)%e*x`krھa/ǮSl_ ղPu-Vg@E |#$hsObŃ !t־ddɉ2ej^x&I%t_%L1UWNQƱOk:"؈aH(Hj IDJ lY/:@՚`L5'dݭoNV5+ e 򄽺 eHнaouuEUgePdAȱsqǡsa`\ r;y~Mc:/kG3 ]zOH/$t^+[|Do`Gt=*5a'8O+]2(/CBA/aZ]po$URC5t0\k_@r]F(gNF>{D (έ6\#Yo?*!͸[w=% 1Ȭ7Ǿ_ci@@@+e ߅S`i >*@j2+^QN||SNHaS5)Ke"`&kڐ-@\ D8UfRã%cLN|f\u*X J':;U_WQi/T i, bdgA:GBjAC4-u":&>mПybgţԡΨ,38`{7-jbgW'h+X#trxu,ZTUԇV~=rO t#dPU$BޙP>}PѠ& -ACrXQ%()ܐ_jL@J#>\ !9 kj{sMw8M"Kofm'VPI7:NK%?~NyA_| 5: C?/: Ӷ8“hWggbx+\ꮥ5W&i?gBlO|ZX3,6ʛ;Z_Yy e^ѸVJ%h hO0WAJ.eG ^:^i*he#&s;u1Y2Dg5~Eb:g nI9Ws!h,y*qP6H5R)K&9Nz?v([\Mvjx܆tIU沉btv`pWv. w+Ht~|٥2s 23yFlN#hd1WGOo!%C_n\]z3XdUpk laὑpRÙ#vaϿ@d%cO»&wg'ިY^ Ok[Ӷ$f*cPW-w|';17L5RM5ll$WK~wu@ϩaՅH  -=dJ9h{A*ߵWP2{ӡJIrt#’\d[քA%$xHcK+3jyK%+kYX3]mLlEn ^6uңn_ S*"qq(*Ǜ:ƢRɜ}H0i}ö\߃[*ssc|ς^r.1(r"aWJ*IUI'oKkND"EJĥh[mu%=tzfQAmk`=Ն`]2}[ ]W#[^ky~bдm82QE*(h7܈oE5 f"^"O9 ]-r&r=^4hዣlFE^wGlSejI ӘEK1lξ)H_GO&h5D\JeLK+۪Dn0m1b TdͫIЙ0cBݚkoQJCVP   Ɲ<yl2⿙W`PiDqh@>x6`w1et03y!0eb[}5o^ =v>vC$nFmн Vw<Bz sPѝVe|2Ԣ%p:2OU5II]Q)mnhSYzTrFnET5d`:F3cnPO64TWqx]zy;=ՍC`7o^Żpx"5:g4戺 hhxڇz: ɽQy3\L#n@M- w?,`%<@JWEnCaP4CipwZu7K)$fݳ{S^O=hi-Z3CՈt,O"HW 4ghts5>.rGN/55̖DqLf~YYQN)3WHaCpMn׷|+xt%•"PNHqyosf4ies'E  ӣ&6JicvH_Y`pfR⫍w--Vf%ӌ4{вą /UHnUB~ɲidq^CWZC捷OB CS f?BþL0G1k# J ߴzR5dP ;z$r(-gy,фmř4=*TX1nCk5pme΢d0 hzi*`"6ȖL0U Q @cQu&;Vun1汙8½CIb|dc䘙Uⷘ aZ^5]ꢫA \ld{㋞Ͻl|Jvկ; E )g vLCha0tF>Pm` IgSOi T\z.g1RJ d\(hNc%@ eFSLx5 AF# S:"F<SV' y=F Kz)q~+1Bgy -״' u}s,PMS]5 7:`m8T!X&"?Ĉ&|qd8No^5 ]J07\"~A3jQsYl=?Kf35O5L dZI1 浓t~DLOL$ZYJܥ*̂-2eЫ>.əZrF"ٟ NGU"9v|wXAZ>@WdI^4xۦJz 8G5A![zqp;4,DQoY**nvnR1!7ĺl@ ̀ &碨ljkQw&D.tgssv0sSMʴnnEj?φJц5jSEwJSs~,~fObDf;>"A6'>D=[I=[SEfC'J8HU侮ZGIg2m;'/!m7Qqۓ7ڥSdRij̎(WO߃\mA+Wf*ΨF6cPKS,V &setuptools/_distutils/command/clean.pyVM0WBi,pA]!> ѪrIkpvXʯg|9i>%73iʅun ]ULM!$\+T΂#|q@=>M$Wg DPpVۂB+Qbm 0I"Z&.nCk~lS3X߸uqRZ-:$ZmaDVpi@SCB卐|' EՁŏѯE _Mj؄ Nǒ5ҽlmFl.WGRV8!*;vڌ#&1*]?pB{i0nȔ!!s;c4S[҅ -=%e6lM[A6ݸq+Pƺú6sk3Wd\_]_%%=jaQT+e&D~j>%'^ֽH!Rǣ趍"8]C|@v}eФIw󡑞t؁b('ф8v[^OŚ 726d4jS'y[KnQtO52K=dCIJR%M~ȕV<+s 9lѽPZфQ7E=pM P@uxs}N6^/QZ`1ǒ>kqblگ8k|8ogFo5FD{_{,~8=q#Tbwgt 3*} 8!f0(k6UFE 39McBzюAvMWa4= |m?.PKS7\=3'setuptools/_distutils/command/config.py[m_(8Nunl4 zvamVQZwfHEi-yyf83d(rvm^M*˒Wqx_օ(E*֞vb="ffF8[REb~x҂+hOe(V*zJLu5 L"yJu`[aUY)<`+g9O9Yٌ,30(рLFF0^%*SՋ3SB8yC䁩&D)L` 8;J@]Ke4F^ruX6+TdD~f"JlX'1١ ڂD86(eܪš%!̐k-xh 0,({wj<^J6LI;2S͏}۲_4lRWJAٗ[i"ڈ<䉃 %uv%07/ԗ6' dXo~$Tl^tk(B8z.J^M lhwi_,`cg/ `KwB܉h Tf}bTA&p +&;ZڈeCpS\ÌIr 9Z1XrT^/Ⰱ͹[>7&dx*boto x/QGÛ׷3 ̞F]SYzvrYyxd,դ0k9SX̆F.܍ &U%z Zy3*|0k ^ev-:|bzQ"^8K}Uޓv:iyhAoDV򭀅ճL RnIk RFaɌtR +c\mP֝k,oP JlMj>K7G.@7[ ΩĜIvfH\-k-R#N+9~ NLȳ}u5 xci 6kyL Q#Jy.~ި(a17[:qCj^]m^nH!u5uo?;?V6ckء shl:'*P/;vU 90{ QBRDV=J-eC 5_{g([?XwHƻ!2sJC dNA0F [y]UȐm:a!}0i@|a vA8ȀZdTY,*R}l\1b s{=COyz¥R`m[Sk=t0* ]yu0K [j 1 "LF B}E~̖_T+` 8s۷ԉ_ 犊0|:!O,c f6Y B :Xg{LE`ë+FhD'XV1^v`'(At[cnuRQAp^.xnLbew/ؕM9 ߣ2c)OyЫlSs,sxpUJFs!P&! '1CKނ-Fx}g$"C=s;O@=VAS CtK'Н:$m&X8t>K@՗{YֈP#{F06 }XHN;~=Wfcq4_\,'o-z4S |mu l#,=LhhW]"yDťHp/HG'y@ `V\%Hye. Ж@xdPw&ԇx JdZy~3ľQ&ݜ Sjë;ogVV5?W?{2sqSBxZ^(s!tW'()>-zm:#!W,"5,>ZUJWV)_q&bUvCo֦ې![L`'J=uZ!Qݼć׈^iB+)BqAWzSe:h9}NAap.zF Ͱtxi!aqcءHI &(Lf\aW6i!v! PKSK*q(setuptools/_distutils/command/install.py=kFW5kt(} lM v,f2%F)RˇZ_Uͦ;Xbuu3Li6/n2eӦEqvr+Vm#ڍH1C̙L&ggvWխh"_a:1?䭬۪*u]mLEu=ki?SC2n̘/u#ۅe>몶XY|W/?gri5w?C(=PeKM"nٴR"VCp);؉xkTPS@ _<}bo^}~Mɳ_~Տ}㙀tcz!i#/#.]Kod3MPXʉC72dݰ/UeG$L nVuk= Kt Do~^k?,v\ud[_խ> i6@Z,~ cEzad/yJuU&l WeATetqh͚\| }c0qLO+TW] 2Js״DԏEÚ&4!QJ D%=B)]y G4 '۽Q0p> f/` 2 0 h"_m͔9ʽ.** I>ʪ$,"0u.HH;գ=|'=7v-K=9 {)rb<UzQγ0e:.; Ki^I8=Ciɔ%hl$i;Rd@/T"HLsFDl7b ĕvE]ڕլM z "]6}5/ c=(y!f>%cS:{ Bc_=UKxY}rm7yͺ*^VDUT$a$o]~i$$tk.J)J7WGfjYHDl;x[h fhI^J4.#KYR>r vi(|F:X@,8p4znɡe㱡\,ەi;.\~8Ow;5hJ`52#11}L'aȎ{Vc^+KyC<2'ѥeiŀYK;1B<7ַͬR~Uperm^"2sK]Gk-<'W6)p~1&0pENG&V|BDA}c@lasxZ2>oDM!~8vC0Dަ~03J `ص.ersR#ŝ$OZI[ Oqc?&Πl |VC4P8|DuCn& Xw7B} FpnhÀC8Ds=4a1щf:LjfуG&H=_;xI+%oo+ť-&e\yG^3X-9WL X !Pv(:9X1乘[)e@n2^綊N# S.FKXVWڵҲRnCpu@-H;`uil|ۺ]ndp)W0'亭"Cv ճDS\}b`~Dյ v5(,+켝Faek>|A4Ja-q3ڴqS.Y r݈+KG'db)8`g=o_u]Yj)ܦuޝHl@G07R*S(@9R1Y钪 2 r%1"gt1%x7-? f;i D/gx{Z\ТS<4?Yk:[i ?"{)*(@w( t3TB2-"QkH;r]lxbC LViאbRq΀5ߪ@ 9M DQs^HM3=B z@b \T{L99`Qy0;79*Tx& KbѼܡ4+ ]6ZmCB~x&ܡpK=d,")%!i#Ϋ"X?yq@S2SxzI?a#S F҃rJ 6GUNG R&Ovl5W:l@P(i= Aj( {P4" #&1~S-?W2d7Fk޾5"# XYɷJբ6r[afÎrwB/P?6Qbad/EVn.sg&8*A6C$ q=S?hF8 ]>U%F{~~0xGl/'RM 0?̦!g. p.>>*xLVh^>F#|a8<3l ̟d ` ?oغzOB6u8GYϝ6 ;B+%;X81gT-iǬ`熂'4uq&?+iC3P |T+^M$s5d,pyr`$XXnv'sg> s9ݮG\SߜQ D"=/<ZM\/qe1~H1A tf 13,q12}6 I sWT]}$MõÐB!ǻ~z3r0 @=R{c 58bs5E= 䶀K1N1y0,%:n&E#.4E +K_ت]C5pg? ڧ3ԹV7ISgܥ5 6{LGQRTQbCU#,GH!38hO"zCe(㍩{{n1OiB%*\懘)lRղQ! '2[%$IOuVݺ 0^=؎m*v[YI:m vrnTjêg!=H." )Pu(QU^FזQ:r-R:䶄Cƚ29m -*ÏRay8`uF)#N 2ܘSGMĭZx|Ӏg$(P% ]=<8DoG^m%vaWb#_fB-U(ũg*A_lܸ0@)+NyL<+up߀=Fiot(o_/EunmOp C1좃UB  3j5f&usO.`4=w0<>9裲A F=)qlH` 3w@<0!82I?6AH/e%O(61Lr,ӷeqWޠF`w=f>F=#>Z1ƛSSf[ t"z^lgeL*AFzџu'E>'>ʠ sLP[;aDx+%">q& /8.}Cp'C'jE]%ݩ@n|E#{S6TY%{tQֳs{̪:5G瑹OIX `^&/K8:0<=T^K`} =P*>`tRor*#ם`+Gc5(3R& -<(8}'ʏfnNYV8d_0EZOkVWC'J?(j kVο}3"KJMs}U@'k/+.!?{˽H(giCp;(E`n/Zr{cRpy>:zEK?DohjEY&4 }p5OUᑽmKC/+W5;6^]i^bDa Zks331>$ F ^qxq+8asFiJDo$z4F⟱x `qt{kURu Ij=v,1:pXT˟-s(:2fAlFNǜІ7~(Xtޣrgv΢r4wλжi c̣:99/D|7ӃKj{_s02uNJg܆`[jxofχGy!S:p_5z+IE]spjEe[~hS`7!n#l*(ꔫ?;٠:x:v׵U꟢jMŅ!F}H=/GZO*@څC)MdE8G']tenҦ2;ʈ619ԭ2At+ȏ:87`o .SU)SV0)-3cAݝiL7tjy Gd#Gb0}C41MMa{ڨK|ӵȴDq&3u;ڞdd0z}3)_v9~H#{o'b/}6``j>l+/>( ztSzhi k]\`^b׽~\wi-u:m+@kNJnd+Wnކ&pdoO;O g̵qeC< U.ȱY.Hf&Kp;C=3!2aOVA$|$@8|J'Cl=M2%C<0RߨQTջF-8i-># t=SOHrEZnI}}? x>ztzI E'6V㻥W 4D yv8bw{,մk jԩKTV_C+D,beρZ0F(Q7 >ZD7s!HBWB*QD^ ?ZFhX|tV_c;xt>oGțE".+ug PKS  -setuptools/_distutils/command/install_data.pyVn0)F$R@^BLNCBZ"@73vDžu˽kT։‰(z kT΂;"|pHzJmߒ5p^HU`PXJY]qE$a|IGR,DEnqmT]qvn\C P]vѸm#1lE@@7qR+x;\klYK^iۢ%!) NX$ 6l@<J ,E[U `ЕY>p#g?¡ RFN w~iAT\[ ȱg&FC,-M˝ 5LgoaH)I_ bUoA430׭KF6-L <_3W۠{C"'caT%Rσ-u8#C J}\$ ]XvIilV5=tMjd_zyǴ́V@髚&Ms@IDPZf 9Z1UB@7I PT@m<_O'6b8<bxD58SjYhΙbV~">hac$VF#>;/ FIGa*jd%7yǜ62/.Vlʑ _ZIQ0BqC>8ӳ ^xΛ}ot (ob_:0gN\ OtyqK.E*oh?L4QӺrks9C«Uw_Ey<\nw)(y=z:Ƥ'f&s(f,e讂DPKS(? 1setuptools/_distutils/command/install_egg_info.pyVmkF_1I) 5.)4%=it+vWu.t:)N<;̆aXJ:'ki*3unKU kښVΒ3nl,KV=PuI}z=C+^ϙx=aEMkeِ.i3G{p\T2'۱DqwTy_~nŮ{s,u =eYØMa燎oi ܠ!ЊᄝصNFW6lug (60Hp[K 1gAI:~uWL֕Yxzoyjf+>t~UMO%2F/>*ukuv.(Z^cc Jl(Xpf&&$үߧ?fKqẐ[r4?0-(Tj;6gė΄3{SКvǩQڶ!/< DfE1ˑBg5ɓiK>iH Rs.3'*(6<2X@1PKS*Rj&0setuptools/_distutils/command/install_headers.pySM0WrJ/T=FVZc#۴M}'@S߼1s!TjM7ZTR;(UhcAa;goi 4o`>DBNϋ?MVAH7Rqai"~010>tؖhFq6yxf Z+/#0YO̶6\$N"1DyuъIH\_ J3yy$IJ57m/kб=$jȟjRbeW}Jۃy=vL$IVv?p/l=Z5I`v9n8[„BE^A/WyU^#p|#M nVo~w?*_՛oߐlRuTN2S~ZDwFӞ!sHdP&O o@Ek8e?lcGgQ.ehoy*nV=2?,W9q+A}w@E?w:vjLebDXvĜ;S{ 3!kjBA=rwkZT:tc )h+ l9ZHT0%;!q z&0)AF;XH5y&U-r XB:= :u7nidG6&%/Q!C\m*Vܤ~AR\eI$cV.ݢ~B& 01 \p!'X/L<B53G FQ6c)@  l S֮MW$^c /u~JSO @W%z @q{VA=Xa{9N~nBd>mʜTlL7c [k=_J?CI_4pjiteuM~핺WZk#*y)Q}נz%~9ք ^qW[)?2{1m aҵH3D[ ~. 2!u6Ll%(630U=Y5 rVAM3C ݷ@LNqXXѹSHW~Q#:BϝϠA 09PhX !bU#*q>2u HȑZqxIB(y}T쯴~-_@6Kt?KQ*ed"+I>U$1Eg2(;;tE7ش]=jZ!B͂ miظ7 -(+H䕞x3*3J.5(VR3m+f̈wәQvشx"*hJ_WP h#mvTXK[ٳ|!Cp.*힙!\|݌}eqƏ*[JAMYCmpM{A62CLf -wql;ݦXYLBfͣáT0cG\gAy\G*,I)931i7̼y| D_L_}Aak;D.ޮJ=.(TipI )ft r ]?]ow*&E!8WIP8 ]kH^k*$YX`#-? $}EQ . Gؐ{g' c'%$(걔Bu4޽P>@ KG)7$O? $m) jY7OPBy0C~o$ߠxewF@/ri ӂnIS|(#Ny%aTVδ?M[)=/šճ:j^q~ *tPeLk@8; +R"[4+` KHmTl zdCDSp_JD >j=(^״~mM~6}(FjhxGƻ&no/Ȭ&]h}($2{alܡHh% SWT:#? +rVm?9||r.o86v:OindYG7l7i/35X<.EAXG%N&Zo*3n=`ʶfB 5K3$;#Ơx{8;Ȁ`',w{9GKFp 2mBF=̀:!MGpwGqQ=uz-cALmB‰CT ?ĥq4|(}iB,15Yk[W0Îukq};O(`^{EhuRm"4N3EkҲMԄ)-?3 W3)94{Л VɁ/XxvD1F8>3Fl']NGY߷'SWZQ o1Az9ImտPKS:0setuptools/_distutils/command/install_scripts.pyUMo0 W.:ۀR (a@w+ñD-4~(YJbg2K$)&Zh3EE]Wz!6eR7:w}JlB$3~->~~xEQՖZ,CfQj XBC>8ibNh1tШ rcܡ]ijQXR{0 Y~D[dm AS,E6jUh4{rNgAgk hQπw8 $2=s3R{VFkKy*ӑ *Taz?1Dۆ YF1%Nu 1o>j7)$s$58I",wr, +={mK/94g]W .du:#~| 0z(t;Y fH/dq-!Id ѸX \7EC3΀ >x ۠MxX/&vl>p{q31?j/Xsx q-ΎjjZǹ0;V\Ҕ3=uO~2tww+xiفyM\ bՖ!|B:f} ʋl EWi5E xЛcoPKSCho+setuptools/_distutils/command/py37compat.pyuR[k0}`mtS.2|DhX$ikqsKn;9|q"+˲"L LrEq-(F*7=#(DTTS`+RKF5%C-}c I˦">ڥJ %ѡ:IǞ5M'pOvm u*Us vn!"x_lE !t9ܸpW!1?j4xnvƘntkz`(^DH֬@::]tPY;"m\H9Nσ `A$ i Rn >KYLa0*,PKSt -)setuptools/_distutils/command/register.pyZms6_!Ȍ8w<6IuJ"UizbX>xegM;ϕJ-V,| ~c"VrQI?ufosZDA0GƂF#[k bS o cgaИ*f bpjoa59X{MS)0Pbw Of!.8:32>|-yL`Hk˜&} *DdOItAw&?c,#)ӈBq̟ =cBF Bv8u"Wg@@^Љ]ZS0"O:ZS)J,kဆ0낑F˥/sm p53X Fd- eJRoh ˥K4$B}X x%K.x|Hlf;p'b]B8X,,F*OtoBN{Q; Y8H!/vfOZlHr%B"E˾ 1{Nb`kAj at A}8ws:Y!'Br[YMcRvpFi#˂g ' g E% ᓐ^T@$vt~9rUv"[WEkOC[*.t4>0Zw.N4W]>2P @:W̉*AMR&:z;!c'{a?U[]J50=B6Psp ^}{yYY/4k!ۘ辳a%lj~S9LXpb:})ß +J^O vAu w􀬛2YYe_w7Kp|xeeD)Ipu;\lD:ǯP2`#({v; %齷f#9*߻TiV9mlDWN`ގs2?2p6`KyDP/s5HH=R3v]OJm>ܡ@GtouE&+U퓟o~@W#Wä '/hom[\WwB<v<rشsAzt@zw뚢%eď2uwjK,?NmC~vS\nEvw8zSkmDɵ^} Jxh<l/rIk߁701gnd $/Kג\|DxY#tm f]P;M2Gy_AvuhgD$f؝eol<9~Q 7;6T'Ljb=p{m*k`-$DĦb,H mޜ,@ob~Rc.D4)^2)ICo]OiQ`[̠CsBٱpd¥C`>65rr\K&:RiVְqlS|׳:J'Xuf E⣵Ӳۋ5{ztҒUhZuzVHXuYct͠MD&_kY.15lr wݛD(<_@}~z L2=_c1(Uc'u MDa;0ޘp㝽kw aI×qC{; 9D-c9 3|{?}Nj^g'O/~ūyr maF6cA+]%?nk?׃tHBFҾmȝp4KKQ?…>EVd~1;gNJC=ruO]RtX#1J]v䅿"W3 DsO\Z5{PKStv=J&setuptools/_distutils/command/sdist.py<]6+rIty5s.ۗ<>DB3#ȑn|AyL$h4 /ЗxuI|tuV(^ s3%4 az P7gz?-+JЏ VzL&¹( AD`)H#]qL4 b@ ;uc PqD0):%Pيܕ9љ OIoR38Tm=+ Yv(aT whSDQ}luSWg?`b'\t쌷 j4[QY/q<rBλp j8*py.Z!,nm'~)wY:+IzF'jh9Af ѮQqk(J{^t,SqkG`Y$Qx?a 6*~LohBh\E-N(Т;N&DP[IZ"c@>;'j 5^sF %R3ba͇4)o-VkHoO'mvRh܍M >!Tٙ\,b(24݀0"!4!K,VYuJZ쁺bx67, Ut-1dP!ȃ&F'1R#ų翾xD}GҩoYw~u@&uٗ*C0Nf6IjZT' "=45́N 8/[N/]#}7't`.~Nk?o8&%8[j2d (wڳAMoFO(FoM^CK^:3L4޲(|(z6tR0,Lt4;/b r44hT7ꅟ-/xn 7:=vYt8w"}{d5hD& Yك!y9FQ:D,)c`yYPSK%ImE6z ɭ-KHjf ̛bC>ԩ^2]6i3HI #1V豍C5GqCtWC00cV2cD0ƴy>BNz2 3҄]Մv0JNFxh& _\3Svv'Њ79 + s))8@ */wC(T JcyRṡ+,(?©mZ+[x獨  U3V~I 4M+Tc2/pvtMIc 3c|v +ezrM0B}C5G8)B>ueYLz\dG ͻIdFAz ,Jmqb"uATf.yʼnmŁ?$F5ݎk5(9Um* d%X-<+ǿ6a+Cg +NxE( Ȣesԥpvwx[ ģq 'K푭ҋ!CchCFfXhJk7> $nJ[&.;Q=;[ ı WF{#ѡM$#Yt1"OX/+g*4EWPؓi3wUK#Dj_ӿN[Dzwx+ށY;m{jƟjBF6CZh7<`̉07t͹?<6ŀX`&S' ))ٞY{VM{^L͗zJi\jl"#ϓ$jp;s'@;8=25KQX b`*FXDLcLZNl.՚-,QIJהUy)Jf`*yWL$f^ՒL\328 9(+@4Ӎ/sMa5oK:V%I嫟~ǥXK ,0,s8VxYF͈n01VtrWN=qsď>a]oeS =靄ٚÉ:'ONHm)gI}玓4vG2CpX9}#)]7\Ez%`&:X>!ĴФ;A+fzfLIiǫ)|f4΄ PG0 lݢ>qPDUƑc!dpOqn̩"jSӡH} ~*E.}Nf>N.AK,\!u>*^XQ)_aH yS=ԏWԔj KA69hݛvK 5qҡ*1C Fh@7 IXf,oun݂m%,1D)+hЊѢI[F94 DKq6k:m]GϏQ}$v9KWz}5_ά[yΞTT%9(YsRz'|n(5.$G[Y#jׄ0͘k&g ^;Xj[zwf8Z[sXiUF^t)T%{:IŸx~vLs*%$C[`òuuUwM0x}o9G/!/[!6O=h;mc&V ։~tΏ0x+D}YdLM-SS[ :@i OLV2A||ׂcE)h87dձ5i'GsNS30F84lԦ$u%Dz!ԭ~:uXX;W'3 dnO$&.eqlc.bȿ %d3q-橅{Cm1nY-K@_u|;Kxa46S[Q5ج;ZalF[Njdx'*>Y/S RAV` ^HRC fN]FҌxۦ}cۻw+v;C ?d/ 5wdNq=?:od:ǿPxOt3F)!Av[Z/Sך; D#!@noYr*caA<ī=G&Oq\Ⲫ% K>"^o@M˴}WD.S_]ҵrEh?fH5>[w*L5OԱEȱG^TU{ PL ±R$hֹ}:7XG #$h,&yn۱1-jrYGNIeX9Jm0"ZljO27v9LL݊v1 &#ML!v̊ 9j}71)Bt,1HV'xn4Gv[kBJN@Gu$6h H@Kw=e(C"CU~Pxhet[| F TUΥ~3Sp"(&n9 gpb=!dP:UIAQG~Z8?- p:Dݴ5%݁\AHnU(~xGϰgW 0[1QfQT(b R :7갎%ޘ^^;* n\txˣ&Q0E4"Zq-Eb״&!,2{#Uj4hv76BXCr[X'~v0'Ѥ*|iZNik!3?8p 2A4N7x: ,ct+&H#$$a9xG'Ʊ^#@=Y}=?oak0-NA&< p1,NwJ7EeӪH݌Fm}V5ɧX}>fN) DF 4~2we,51mZA >sJnCcy9yͽn˻ydtMԝec=H7+2DPBA~O\o|BQYz!b47e|Ue_55tl?d u)6DhE`;>nj ŧ?PKSjP 'setuptools/_distutils/command/upload.pyks:N؋i&]>6M&v<d[[ I}w [ϴ1G ̻f'l[6l*|-ɧweD?or Qp+x,i62,Rlq)vrVVo/?ߞ}]xvs{C3o2{ a5k~k/"˂F[ h{P5T+9 󇋙1 ym('boG4"{-VB㐍;|SuD5ϙD6-FbC6# %y_"zO) !UKeh1ؚל/f50si>߁2]Aw D}Un|(E6Jnˇ`z4xXsCv;o:-Uڭ?4tnEY#(lʌO =L\cOC1-5߀H`K}E8zpz> y#RnJR-p;M 3 \'*xWAXH`J{e7${/0 mg׹cNl6 [{cȵpa*w'1.h)fJL c&(N1Tob4VSA!9dB/yzXiD=#% DU1RC6 ҈d9 KB AO^$\"*紨ʕnَF`u^. yG쁗=-GG3r\S#`\Etjk Y޻Ȼ(PlZ$gȑ<y:pH NpZpM )~3l` Iv Ұ ,FIb8/*69s@;C!HLWP:csh{UhMB6S8Ƴ:W/(<0B5pXddxנN灱Rï@Ac@S<:j~y n醒OL|uJ=3:i_UYkkze]ej?~d.ED5ЅR#~ ptpƲ.%lƸ)] Z P+֔9}mJGmiK81k|4l@ ,XȄrV6ԯ m`Y6 O# fYAc[8e97aAHl\崆^Z\|5XPMx:"{vE^SyW3ē+zkqK# Yg܈P^4nN3K:b:ow}&yTxnZj@4 M-4T%~D 'dwn޺M /2//$T# #QZ\}iN-TƢ$NRh]@-#][|[M 6;T0`p* v[x ,.tV)b8HOJE''z:onPS= N0Θ%Л1㧋Ogn`W7iHI 3Jy}|ɋx˓cɋ2ZYR>(d j6C A0$[BgenU "rY5.)0ɿ>M R۩A.=X|àoi@l5 #cz4EM- vhJ0JtS4rV_G%6 n-,(}4bjc GTHV.lz=GhN\ 9tR>x%;M<Н_ax7M空jki7TCAE!^K~$~`=tPa-IvnuSQ?2|*1rc4M [ Z&3he(5Ȩo<PKSsetuptools/_vendor/__init__.pyPKSD*;!setuptools/_vendor/ordered_set.py[oDJ7B'^PHՠwC Av)}薻\ KC8!%9x<ٿD"qת*2S]e*q+E&(b.*n$ܱ5*9y"h _Eq#Vof߹?+E,7(k4ݱM* &䭸x%;r]V *y 8|+E*l [`?}R\h ٦(᠕(HS']k{ٌ/c_.LŦboiweY-g_RKuto[Gvwsh(XXlv:FX(5)N5(!l+@g2 he@{T+1LP|ęgc#r,^ X\1^U\֠_%X2qqjܡqh%E d PuAA"S5:exY! ؐ^[-L^u D-p1;1i,8 D,/47Vjù.`2HQL+!hq)` zLڑ_>t.BYZఫ:q+Yljy`?1۫|7 P.s6/-Msd sUUDRӦ8Jy>jgm~Fȱ{86\Y_~4by缑IkN0x40^y.bD]qt㿜3>rP5H!gLT%# )Bm^ajA |wbE4Т.=7N98%Mh$<%q-*|(3 h"C^C3(5GbWJ|vEͶ2MɖFQ\D̑Cڞ=/ɧg2;mlA%]\PF*|DŽ]%3]?VVvZ@d,Pʢn &;^܋10|D {t`ԺF v[GV8lɗ#xU^!1jv~\fN莋n0#R&ml{/sD%󐤍)Y*Dq.ΙqYWO{R#b-ʁ޵n"vcΤW<޲gCi=G RcQq>A=]ڒn+zJ!}v0Vz%ڼn`_}B%(| q^A7=\sot?a4 'W3NKyyU9t% w}]h/tAB՞uTJ vad+yQ~JS/7ϙrOXwwAPQ@[@\]5{68(+*~D ]ꀵf S3{O?5#6i"&-z¾fkfM-{ A1\/-QowV(s-a"W 6^:m50ᴷT kH7ru ! sȦ;Cdl ol (Z Fmr(t s[HY9%؊%bA>s_dT*I* -"ZƎ$Z]te76p1V #)ZJ\\>+֫˙b ,.}AԾ سA5B#S7s \SOT^PDonׂNs}R&c>&!h[zˠ#7 {k+4F+ۼY,-6UAoJltb҆RKPgNv#\@4=ZM}VPQQT_ko'uje*e]]Z ^s[x"90{}~ j8;W^%}'T )Έ6Ԡt Vb|5#PW8)Ρci}M/W{q| S)]PJm uQuHe) D0Gzhj|"&r v=g9&{&>B!$i=5>iǀG Nw59gpYЧuf%Lؗ.w!eEͽ'c,+a. 5@{,AHA`C{h O4~BfeEU,twK4Gqض"@6t#B[bC]bIDȡ/`\XY@9PudQI_zN'*[LP6oQOi3q9"1P+; OKO9PKSf]wsetuptools/_vendor/pyparsing.py}m{6>OܮRln]qZ:/7vxmHxSoAIv={K$0`0/i>O`v=2O? vuWA8kkk_x> wH뤘eYyR$'YgU2"I4YUu0K*'Uf:sTU\$P~e@|4&YWi:I α;A@*uz8'A$P:UP$eU#Ad>tJ;R"y CF&4dɼ%>%V=̋L&hu 4PfJ0F_S{HyAɘƝ_Q%i>W0Lh88rS&'eB#c zͽIՓ-qBg$B1{RV@),/]wՏwW~߼޳gAg~w৽_x@7/zl{gݟ_=8^ ^}{/w|)T}0{wp_Qmo=G(/v|O= DvzΏo?y`: { 4b! چwp>5# r뿿Wv]]niiohg/ۥ*)}]zMnv^Dzy~~_9Ե;؍7{o^A ]@՗ 1}G zǃݺGv7''OCXaN')v& qɫ4͘(wWߙNl}G)vhJ x6+xt 9 ;CG#w:׸YÚ\#y} 3 'OFg Nsa[ p|2̙?xK'un`8*ϠX}=@De?i'7̝og $;}}Up Ong\A΀NJ]+0l/3'n{*.Jx3`Vmn"3D tQ;q<ǥ*yO"y@SePr^ D}YG> j s~?vN h:N&w`s'GoG]zԍnYXf*ńbBޯs@=6hE l}I $Edd4)e3. .=)^'*zIUF^$l@ 4RHǭoGNF#{Hf TaX$"&g~"}@+o789 E2& 0é0$z@d.wX<ɂ"%\%*^J+ABi$EQs4O\hSH3AL>AOj4Q{sĎO$3ʧ~]RQmOO)s>ɼc0*w\yY9+YB"i/MAcP`V<][f讙 ֦ $9 KXA<"Y633hiCf@Q½ M +)WŋHT7_ez`v,3uOhuyZޅ`%y"] (|wAI'ه /@I ^c< ykL*P@N;;c]a菐N D8P2P{uj. dPfOKhʜ<2"}X`c1ӄ_ tL][* ( KUY5u dAy6|#wpiq}Ix, Fj!|$=|W{bΊ_q(0Ϊ.IdLOI|2p/Fn?C˜~j;66?&ׯ񩏾S.M ƗTXn ͂G*%UKGrt0lT >?$\ f2f7Y\Cʹ hgy~_$#"?'XUC}^ZL듔Qrga|&?_͒L~I=șpgaGFvM~/w3NE:>؈f1s^ҷ*%h /{cj:1_n_&&zd9A pEM͟:p lW;D?y]$i>/rU,O&ϒHQYSl%)R%Dmy6Rd0=ƯN4Y%(fcpi_0[MeUqv/pJ{$@kFT%S}NQA<q{R t!m>>|eJGki%dy+ 2lxb۪ৈc/U%q xQg[JQC'69 X{ngO&n|$@/GGH#xY>F$2TQ^IL|E5140?g ?+Y?% 9.:ZnG_|՟/3oӝgvGR[rI;1"fwgJ;_4 GbT:2+xeՈj"C C&'u\_QuI\752AnsmW⍃/whQEhR`t7)vI4.IWZKC CA(mSmV#:$UPZ;4Tŋ1Ko\8o;~cš){j†IJ2iGzg#x{sv-tSZG#}X+"ėy:.Xk~N'p-x>?U. Cd؁/ 8{;m=K%ꋲxPC?3|1P|$)YPf̅2'nZtE6ZđvCA: ;0Fvzm`/ kS` R5Y};A Z-&طv 5$)._+>y[4..ټqä8PGΓw܅#IR! |#1*(;!Y2B;5XڎpP e[Aܖ~n21P"AmMGu?f;}d@I1; -"H4f܈A!TוVjI)" wȯ26yP|kMm}+y2̎vsъzPT ngIYF:(v*gcG}$= HĢ|zNOk;XYRk:3ujvݡ0u0(ԾCYLx'$=k cxqfC4[`qt:Mh!0^mJ'/xO(8t|=mk '7pO=3NQ},-z|*qr1f8b4Ո`]8nooLMR$=dU%7lUFuh!d>}[B*IMgHoXmilrƢ*}}AzJlbIi asx2]D)+[5Ĭ[XQ14* mx8C-ܙIJilj3yV L%@fжȞ='CI">A,)Oj[Wgm5hri81"q.PXfj^{6n*y6KqZ[|^o'wx1?Gd F;[fVsnLbJj(GGnmk(d,&sbth28,bH#1 $E4 P bSIg$Y({7=6wXRJhTo֏ojNEm4[.'7-C²4J<\'1` >wv }yHqAuǔɯMMgJ:xP?f&͛{!j8UnuYK]oo<|n B l N'lt^²3F:HBǽN-m}%lu[ i;EwTW$jc>`z-x`-xY_w‹{u/Fb] X0ozfh|Ddž <=D F|rU7^k\n$_xB߭]ԾP*H[t^Rچ`u70sK P(n]ofqtp[,G^.iUX]s(J1W%`?O_ehxU[$`!KHlZ*Q8}j'ߎ6B{WjX4^G؋^x9fs]Z U%]҉in6pEh;U8V `J(uä)לT nY>6P$]/Z;7ŬDL6'lPɨۍ{A 뫃cc/x^y-`͛Q[<^k![5e>Mk5E䰤{Mhk> u5[!o{xT+ψwgJ٥{FtJFzKfs$}m6m\[cQɖy(1"4R7wk..r]eB.z]! ‹6.]`~.-DEdLr{'hr6]Ҷ/aAنrx{S!-uiRZͯzEh^ڼp+hԷB$I.{S cyi>6S[&{n/a6|ޱ/E4b@ pϽܑZ 힦3")ќp\+ W $Th_6 }8DzւK,\$$s wAͧ(M&щE( u٭1ߟX֏ͥlӣ0K{EciJ&RLշkD?U6*HyϤLwURxGYXh-X".=ZmXqIv6*u܊%(Fm6|Ү'Hjzy%&z શ~҃*lu?NR+2R(lj¡D-DC:@u4ŏ\AmSshiC$k/iء+^C.~/I&N01_ ! t!oHP~ZwSz̓6FC"1lF±CxTYNDȴ(*c-F+-:V%Vm"e ܇!ܪVK l?^lPҝ%][ࣨ` _$=j=iBu-jT; {E6;` {5F"{) *Q;Ht,;gt֤hb{pF_|j#Xԕ*_X\it(If|t'OE2sBRCR\%1jc_$,2 ,A 4s+}zLٺ]v(ZOw9}ulR^ `rQ 7b\^LN_B!6T,G-E} RӢK 1 WS2MTK]Ii=ܝeA 1 MGVFtIY.+h-v=fX퇨 btZ_P55¹ެ=Ѱ~Muk.iN[g$'B,YltTW񦪏AA: U'%^yj&6U:B͆#\-/iHFO5i\z,t }[Li_Yņ =۶vMgFzm3<=aA %mR-T JmdYLLzkatO ǹLo ,YcSZ9ccAz=Ea*;t#'SO8;Gcy hp#/S+Q9K(溱%Ζ#Գs1E)m6V 4zV\Lf[ݮ;e; Pxi4܂6ZFmZ޸ V)e`q5%1'iܳ젤u,kD2o mHo$i2_u%l]+7d|K0)_ jI1ٹ/)j} 75tiF՜bĆ{9>q Nt]m +$7ha/dod{F~ YEcl_t(gT0 j/{hU9kG6psm`۬ ⷯZ ;UfnKj^Fjӑ_{xOjJl8 waM=xE\cF㓞 ^j Sk;>hQ_u;~. 6,#JB1:p1f a 2|t[:3mb&F}%"'?KPj :bi~ V'ѹiYMCQz:csiTpmz#|SN^īPGn9d0ou'o_]#t=%hwHp_s>D6v)7||t @w Tg9<{o~ q}%Q~c;l2fVV#n4|I(@oD ]Yɱ3fu(l [Rmf^wZi>ufV6\\r`.Mxuڝl5>FUEeօGDzU,+\F^~>Ӱ. jgֵ,Z5"4%mꀼ-ělXƩ(==MH5Nӳs X#ʂnāz̆rv?Fx 9؅{ݞJMJJnO3v(1BJG6 O?05* _}n Tϒ䩟}ޯc@lF?OpocccS<*R+jƬ@]P% u{ll4hl]._ڗɌ>X.pϋ#%#v^,6պOZY cט*gR}&.7_309zęq{Dm gn g9&(&Z,K`t~"iyBVtR)/S5rЗKQ(=}\!$D5J%>7835l5)?o+, /vYX_H@3 -TaQoUH_52<;@-EIeY۹衳u^_]G/&_P>t>/?/f@"C ާ#h5Aq  z^^2qJ[,9M8 0q\&f` BiM$ήM7KY,'kR!R6F?׮m3f6C9||_%EA!P/J#ser?x2>Z<.+fioV}p8Ao4un;﹵uIT6Re|_y]){ J2ЍF?ߟWlq>*xg='E\\? ʶ+ Wʢ`ϧ #KbuWcen7NhuXǪrVDMa,$ O`^ ]cX[a|tOώ9 @QWSm&ބ:l3śH7|']L^|bj=ħֈO㚪^~erO#vfla1nG#JXn'0gm{;ktXoڕFm54[?)㢙$K<6]X Z /9 >~ՓfPτW *MDL'7Vs>)bhqL+ǩLGӱ3+jW|dRMkϜft|:_B4CsIV<@ϡ->A9(@\! R4@fBFunM;^f \7I+tX8ЖN+*;H@gg F9`1TŌRuROl-G܃M.*۴z++ p%'3qChQK:i6 Av^JOitY@F"oi넟#1lAףL{@@sNl3-Dx6 7znjtH..C#;jtΉF M7l>-7O@gy!C]lPP|Qɽ%~s& adf9lm3]@p@ f`9Y! 0|-pO&%e뎓Q;Ht4X.۸Hk`RAlB=VR`vwGF=R.fӷcjǮie4M*((Dg:&G&S".]EhMQGx̋`LmT̥J&)hKb L&Än,8`Ry] hswQB$H&s]45WOzOga'PZL@dFHЎvR?jH߹=-|QqHЯzKYk~dU'au-"(kVEU9cXvUz)jڑ֬PædzHWxOyUr? Z b2EV0[云J$t A̒,TGPsg{ϟоR=_=yl7~wQݗx x&xE  ^|H3=| r'{yf7џ+30CKvW,"",g W4 0WZ?~;`iZ7V~,;%tY,6˶rmj~)^tL2؋$i>/d{d{n ])6/{70uZNkr 86/'bmbkC?Kn[Ɔ8~kjىZZiKehԊ% H j'0GJ&d,g˨)jv$b<_Se:Kvo8!7mz[H!$N2aXIFc98p=x Ci&!rqzi+@l ntV@Leh <^1*2J:&UpxP`)V[H/)3!}idiySrb[ hc, S$ɢ׋B^@ m0^po9LUw u?y]$ƘPlS  ghIȥl|"ZS`4 E:'IfkR~]txh-`ķm`4PgԶ KyÈqLƹh&@A K p|q I I$ia{ew21 a6'`"(>vVeu|M7VTI㗷l˦,XYYNIAR>GW`:tȼi(Nxm^fTg]"ֶ]eqǣihiwcVFf[FuWŜ~l@T'((|'UςV C19p4XU$-3Bţq^_Qj{ GYiF 6 РcҐjFS"Ԉ+e,L R1P$SxYW`tĈozcڦFyMB28y9$\ԮoȗGmwIm=ɰqxd%9(euDb\ QRTJ,`iGN['RJ 4i?#VNxQD@xvyZƃCt(y~i|3LNKLاadŷ*sD[eL131mjDS E7nF*"C0UHպ$ J ˢ4rQ E#|rbl'ϱHAi [sr-ǺAieT b} }XV|Is8B*o½416ݿ[0/]ì5 CZjD#㾊ׄDbu!fq5Z :-xB&G W5 ZN+<Tj4NkA ܀{6Ž6f6P2rE6u ]2Pᴌ05;m;V]Q]Zc7y%Eѻi>DoNn1>'322F"1Wxέd:#?,&&{FO $aKBժﰪ"'h}mrCvEf}(͍PX yh74r4[J{C4INl(,BD,aLu ~ii;Sro $|:5f-tG^}"dZesǖHgG(c+ݹo ضr`_M+n@ BI5yUy&@Q|Qհ"/E,bu"/f]/I;j.ɿˉKm௳"?MUZN<:okf> ÆQVT.Y˃t';i6rW?>lXD٪ow 6\iźsL0oX^ȃZi4,"m XA^s9Vѡ'l1Pyn*iƅ%mZJ@8; ʏZ ́Pמּ=թ ;ꡪn^b5@$cAVhzhjΉt&zK1Շn-N9@bqc3z1wEX[+ZDjZbY[~ՐP}die[~yK}>ަn kB( wYea,XptX>O:uivև 'M]_%f2ҥ,g]KZ׻òuﰴ ?v ;~`} OSJe1i'ΓXzWc_a+tiǠ[ַ..戧z6k^{%,ɌZ:YH 6&.y .;uCk"z >q'|9wk_b#pJkO{C1}.1l\}k5fm7kk F5A;kK^%d?pf)҈cЙL.,AF~YOħw3a;H@^\}xamk4j2cnd!gA5{$l\rEqK~\,4w(<&N}ܧ{isLreHHD5p_;Vy :XGj#Y1)ӜW lxLtd[QhʭTdiQє\mlfUB)Ha0I.8+b [hc2lʴ?1SE"MlM;*#CŒ?Z$iҲFf:+P  /՛<|*Xo"LǮ` &*ig%"n[LQReNK c,J3H(R 0).qf{xl!a%vv]$Wd\ Ht(ב[Q)}} :=WDvBq,ugI ^sТ>̩+jgLiB ֶdD@9R3kN$zWic!1Yy=׻nhulrÂhGxzC9i9a^N46*\$)uP+)O0,)ăOY۬}A'uߦ q`i5Wi҅{Y[Fw9i}h0vfQg]1J.-20Ji"^8*jGUX"oP IwPVi?TwFm@Jb+BHJJ:½3#(R`&SgYI"hUtY+5:ꢎ& F tY mގ<`\ B]U"/ IAV{;Ea]AE *iFTMqM"pZOlD7`€^ڛ%WRܑW+hY l;T;ײpoQLsb=,HqRǒWgqyn$/>]\m:M(%~ӳ Vnuzug2؎JdJ uRSLTFi|@24bU 6om_ yezSE":>+Զ o Mq(TZ:B9[3nQ!6`bL)Ɂ"SfR'1z.`j&t9A/OO<-Pր4A9B7-+,hЎgًVr}7oa_V|0AkGrs5NfS# ?zGK3:@DaBm$"!7(\]D}st wSOn! pE(|jYBi!6GHCogTmxB#JrR)oX5s :FӠU\%k9/ag'("KegA+ y|Xl q@~"&e2pXH vzUy'\"uT ^EZF˜D* f?wfa9?335\S7 lfg&a02]Ɲߠ,?x}'jok?FIIw<:m%xd4ATA`A_f(4Q9SF_P Sp晰4@V!sͱmTP.T 7xNK ~EjɦR б"\7!>54zAG(os(*.Y8/#nov ޾I%/x0j(yZ:+ ФH`VFѽdF$~+FW_I@1|j۱N #p1㣑LދUNEӶCfeք):Uʩq,u/L-6*5zG3(D'v uMvuCőDU[Њٗ-8/QS_[-f2ĈKU g>R2r̩QeXI}HhS:Zwv?/p D]h22~[~|wmH 7궴nKEgoY2:0yq;QBaNЌyrYŗ^S`q\ŎIFmuzF`?;re>*Qi[ilB2!-cs^c%*<]S2+e@ʉgS>^!]E[DbȔe x42Y"j)n͏Ett$/:=t<:̄J1`|W Sb(JqAH閁-~X:>U3)Ǥ⒁IFZtxx2|' Y#)cYhOQ# LjVBffu-J< Ye>_cP3'`dg]ǶCb`^$ϸ̲ [3 vޓMƻ1^n )**pㅘ[]"\uLD)쌡gdՂQ+ IL/a28`٩h^e~sPZͷjm d,>OtT;CJɬ]1ocukMVP u2 ݻ0= w fq.`%Ӯkzœ.,w2Flbl/zQbDuJ͆ h+f}qj*n5 hj#ZWǵ<8ALaW07@̧cv48&d0wi`+q-,˷w"æ cY< ?Q}= #ZD+OzCۃNb'ScKLA2.#R ꔢ7QU9B2el˭6ц3%HD*1b*|>>Z9&EHhPw'qr$^5]뇸"4fWr_stZ GIjOӝg&m߇-^̕cZE9XA:S{jgUBT -x2[XfJ(jͪn 7 e}"N"`Y6%j $ф>߇Vut.`ZbTr" |񈩯B.1_ԍ?J97 D*-wK(%6+6(ՆA;ϭHAh4LU/3 *~ GN2er]E=ZE2t;(`Kf q'߮@:UrO=ǷFg/Nl zzpo:ɯ!^5\d OL(ojou0g_"rW %5mmy\Il%΅=ɧ: 1vfL-m*m+2c`: &rbE~H '!H0@;CE(^[f ˥&IsZMH'CJ9?6$>ec\L0/ڮ^{!㏜zN5Vy4;]b"%6%2sgz۱E@^XQ~EE꬯Y%[K%Tg?i KۿqagAK2{{QgLޑ@. ɇ. L EVƺpObLTCeFa$`:pr! ]+t#ZS=ðcJ$yUM1q{/8(/w% j i6NGM"W&ʻ/[0F ?E-+C0Cdw(Q'3 &l|vtZ_|i2Vc/q>! І$1lq b JJ>'#_]6ClG ;=+N^mvQ1xyoNF:P4VN d)ѧm;Gq([AHwy6׎p/1hp d9pI 55r]P!&_EZRt a*8PJ"fk#(8_z_h>xuDABa A9g3EN*NӒv‰ӳRX25Us2NoG/_~E1 Z1#xr2*nRQ64#z`CGYfM$$ Ϸ)[G%s/"38:-0DxSiqٺ뽱jc-(K촁প~\bB!&&u#FWIzЁ}pXiXt*?oKa|Kftgu6(( (fPc> _Xx"IbC1c39G 8Nn(6tH5U "PZ+̗,<`Aì\+EKb5_kUhQg̓1~ͺYn${?&P@F"3-44rM Da gKz|nojfLi] 34'o~,s,X'ӄD-Jnj 8ÞN0Q^_ܳ v)@VYl$~4\e=O_7?>{0=6S_-ʷX%eH͆,\wӚy9NL؟~1y轍л a*b[Hǯ)S1"ՀLw!_* e[f} 1qIKM5nء$\%N}>st ̋ 7! e0/]ַ_d6tB;K.-:p)nIbZuCnjD<sqɍ^X ǹXi4 N:Ս6埢C );0ƽe9ztL$>wS3ݗ~ߢi d1E>jKDIw8/;spNĆjbb&̉|\c{뤠tF|m%UA$qsV *rҙZQGi1c嬨LeJ״.t-8cҿΊmP> RuD|D|}BklmbwH|QSz w 0M325\'K]j'f騎NTL 08`d1 bۚ0[>8#Ao1څ:i'õ獵] J_lr0o[>x޽8)9uw{3]U^⥭kxdQqpl蛬q]gV)HҎ CM)fӐew&3<}ݿͳo`*:ձZ%( a#Ys"[ Fm iRxh#E]UFz6WCߌwPyP^YeREk$Mxh*ݸ!2ǪZk1 )c7o6ěFuOiE cP|}9H_ S8wix^n7wO6lIk;"osR3.ې QZ3=#RĔFǐuH,t*BVD)څ6a>Q>G4┎"ꦥ0QTqHAy쌂9|k?]W(x9h:y3u?mm}h-G@`dG#G|o{4Zz5˸H%^fƜ޵C.US Gq*@Z9-F(y_&ȭy0SQ(2,%Q_NQ8^H齲^yrLuqVsϳqƤoX>\.14,̢= ШܩVJ _bk5Y%{t @UR_mrfH } 'mX*uH4[=:Zj=3EW1@uʧ%:ۇ;ﶷn2ucE̶ã7nGGӮ>Zvo۲3ucr{+^3v[s؆cղAnżsZ]82ԟQ:-oc*ow~ݳ{둯hf`i J_R5~/d?/,|l0Ja?5rZ.@=k>2>W-z%`Po\;\n>ll/ͽqƧ愻.A4'˵Bi3*SLgj}5G_bA!p|b|FbV[Y9n1sLOYnp'6Z[د[y{tQ^dLz 4P>vӖՏjwĪ>~^Qvx3 ~ZvD((]C0Х\Ltg'xtH{>%KL}ڼ 1o,-iKFqq3ۜBA#v"A=tY$:USlqlB:H%JF,:B 8*.W(FĄ,BM##:'\ "۽ g B4r.U ;q򨭃*Kјm34ZC$r^HO,4I%hA﬒ Inl2PaP DgfBTzQSvDƀgD qej)͜։RU ׍؁NfI %c'Ct&4aC_dݡH;>3.|HQȮ%gP_wI.n(Q.z]kHЈ_hqy2D#_ *{xc<+DΦ.,)~bnW$h"{BmJ|kgm}_~篿s=e/kg! (z!3)rIoqG+PgHq!*]\oy^VF፤jPݢW`%P1/ ' ˑCDD32Wb{iζ:2mE2>^]q/jܫr[}B cUT)'̮wۖj&êM.n?ZWhFy4atQMsŶhwSV :,A 1C_<[bsfi~s,о;0P~Eu69$U-JPhRp7ȅ8y_. 94TPe*Z#?HVCZ6ރ&!4'kvM2Ͷ鐊W⠥V2}ԣ_-y{8Ya4 QnNd)qk_&l(f@ '_\m~`0X+BU6}\BON&@>i3>Mk䞽޸!u`q 4AW($ew(ŢK2dݹq9ySQ&EXdL()6!}b ,KYH3TWV3=$|O3,ntΟ9S_^?IGIĬqr[ -k-"F1_tvu.v:'o￸Fuގ4Y༪f[M~ 12M7oyx_y:i'VX}Q}~ܗ Tyx}qmo?Ÿw~y,~mo/{ysfnq~\CmX6},ɚJ r\qT}T^aQRKPG&8Ť ad!`,~#4ѠQC4ęNYh0؍ ¸Gfq{3BG{\-~i%Fb0BjeyFPnq1 оH>̬=-e)Y{6nda=N{6&-vER,ۉ[P OlIMZV$okR@IKy3nP(B<Fk"%0W7@j*f5tװ?,a%2¡8 4ZDe$wiLUssZ!zT mZEԚrݱ{ёåEG}CBCߝ _8i,BfNHWheӃ QFϊ#Ks#bv%F| _Yd;zxװ?cY3m#(Fٳ+JwƂASM\ϋmM50)z\Ny0w&#IgKEQ~ "³F8\ŪW 7ݯ eUT닑x<ȳ qw0| eU4T(t WTPw{O +ן6POh{1F D4J}ƭ'3'{W/#B&83eT~YݵXs8/EcvwJjIDqT z?$ƭxmnn[A4$1#rs@eB#F,:ܮp++ƧN9vy]+UP]TDd0Rz LN5T fXAsm.unKbQ*oA C8lDa x##?/cˋL;ʶa(eJ,ac>8u ,qqӨÂSDuU?4tV> V Bѯ*c#Ʉ8?0@DNiEB>-k(s=$f{%M|[^Morc&x~qO)˃'in|nq8/ȻrCf3_A'iڈ9=$.9u, j^gr^&оcnW.&z% vMyꚶ/24W%W/i|2d~~ ?ݳ`o+xI  9BgdċFA `EϬa7An* BuoRW3KNhU:bYuuKt<8UX( #M|(`[(fM-y6WBlC(Q d7n8:<NG 4;(** rZdl +FCo)(Ysd&7P)pO1o3޼ۑ,#z{<{'[& pQlf@Q\!k+@ &dy+HWϦDI׊d_zgosPUȶD7MEf]\D{wiU[Ӈ#<(}ti5C\VG< u^ث%WJX%6}3>tcWܹ`>yhVzo3e'3u gldod4YvL<|2-l79~h E~Q]gOsDu`. +QW=oϪJYf0.ZhX,jYj`~q 6Ben~a6`W˖*X'N` [53)B3u>O&Uf5iE dV]N8:|QK 87}Me6uyᢀđphKIh˗'IbU«>aQT bԎR6̛=$Bބ1 X, D۳ B"OGhE*X./nKo??xq̽84xɠz:;cYR2hy)舅VR| As8Ԣ ]/sէ>~gBNGt#YjT89\J\,Dr[E+Zti>p\՝1/~/fZ`l-^ $Qޖ#Q4ܕEVqbaX[ݼ)D md`KL:G"fkqw!fgBgϔUh%s0F1hxq&o R3>ΕCaQowR_xVzYM6\K^/z?X1U"'iQz%w_^uN?تC:<\qەךs,ȫlp5Gp!~eTcZEѿY~xի`)8GrchJ1ׇrp&xx,Ӏgt DR1%aг9%QP) y񧳆 5VMuNO0?&T 'uяQm4Lk]csvGgquɮ`F>g^wXaumeM[(l0HV؎& >U иI;H&f[1UYy_k. 1k cT 'D@ÉaYh)_i>NKYU%j]HZծ -"E.:vLz5&<ʳ!Jȕ0IDźleVսliW+BL"Ccx=[ݴ&+ *O2 JJ7@%2UGBMENiռp ގ6J϶܆֏J% #wDA6|",%i^^U[5ͣh {XG6RgqsWWNe !01}DNgh4_'%q() ƻlll! +xu䀄@nd%)FLd1tw_Q-$7%nE57V]$-D1bIEM95R]ynMzh%= ((1zSN[vZX xɡYW[?ჽBGE^2ݓ>b2C9[iK^hi- ?tގ^P^Ih$K[N~/PWxbgȑ"([}$.ᄑ7K 9m(v8ӛx;ļMOTw~+iOh)ADTe)n3/i5>^ݥ&ب^ǁ}#I]z.#F~C̊6Cڂ#REi4WPa+3/m%*b#z^`菁C0:JЫiaWx#ŧ<(xIJ%!1^N:ƨ m,cHfN.R[Η)l*6_J=Nь[-d[튲O,_)q߱  6C]ˏ?E{tr~՚hm@0,;nm<4[[_DyQ[([;Jv+wZH/O_NWFMĜzTGT>]!nhM./w3{1u[bA$.o\qDH#MEeښlgS!Lx1`wJ/ޚ*c WɵtBZU!ݡեmcGͨ.䧗cƒloozk Mm-8VWBҾӮbs >`\lzD,u-xAZ,Kaʟ>Hg<;X^a1kB1>H + ! [ZhzP|']PE5=jd_,G_R9?,j3S|ppyy<и:Z!m;8}ڣ+9"}|~BÓo)<aZ9CMd1*S/.bd>_Q˓$~IFxow>}=iׯݽ(l@˿ilwTJe_}4{z~˛O˽WZlk L6)RA d\LAU`BҚ4-*Q_%NW3Ҧ|{%9%zb~9BN=#26$j*P@~^X%ch'T |. k)T !܈vs:3/1HM*4Qk}=Z~&!>znӯ\WXWdCj ʛWƕ02 o\QmBjt~Z_)XN:Ӫ|j˾5P%g. V!$ )6/}%#ۯ*M%<*=oK#;#oB C %RjvatT^6ʤz"ƬL, .仿o߇(@XqO&FHMŹX(uAOp ;MKz[R!dE& V4LT0-% knHÁyd[t楥~Zzk5 j bn&@^4@JK³ ':^8@A˘s щ% ^U[::䵿9,k\#QZ Ψ;ɠўwM/Vou1hHWWhq]Xg;Jdd|FL W"ł{EUy2$ bP ҩ1}:NȐ}71d1aY&V"UG9?(2/F;>e#GwènpfKqWܒpCQ،TAc7HRk4M~iV/uC'l"b>LlŔSNNMi))dGAVV ?L#J_+|#Vb8Ig,Kd&k É{,Wi,Be*Z.b(T n5ʉWu|oP%DkU:hV:PͰ_ۨRK3kP'UB X#4# |v\2~TY *i7+M]KD<w1*RJAq' cUB J-?SA5_R,z6 g÷,VXfmC'&ɮ:cE}~I_l.YGxl*)XG",-n4| KŖxkǧ?ckR4m[@X*YEm`ۢb& Xlf6omH<'/GTvA[ZT7 ]z –9Of1Te[ETP\w$ #6R?t#X{QuNS-7b%[ ٶǷ`b4~K+"gMO_ z3Ky "J=^< vTEوܥ&$;lkj]^gf>BZF~0G^5؉+Ά?_Wn+%PU1i~.X t-P^(29 ؤ GN|wd1J9v}Kh/̄XJe61:Z+N:}. 缳aU!THZNDC|AJT 6@58)bHh`G`!t☙N|ܪ4G*/t`K;2.PAIy? s~x`[awY̏Y\gm)w/Kξ1;˭n"e˦6 W Xȯ\B`KSr \,bVfS 2 /Ų}DB$:+rC.Ac ;REd,+f4N'7;7b2eZ6W|3qhqoS;2B%GyN{p%~Pĭc@~?Mm{u BzHK.!p[e,ѽ(iE( GЫfnqim1#L_ofvT}L`,5KI¸3pB2gJlыg۪j|Ӱg:ѭ@|0 d|sޝ'x|?9Pz.V+ XnG[̾~P&ź1*JS7,DJ2&Ƌ arId:XƣL6Q)݉~|CZap*ѡ7zO"yay^2;P:YP֝m?")CHjЅ֥4xB_Q/2| Pq!%[]"_}ţ :QyW?^_(G5O u'0] u'~|bKZQѣz.kyq󋺷0{V \v EZ@a  Q]mD;dY7 n[}ˡQ ,"bƶgBh=Ԕn#2QrT ˟S4Y].ysޟWI4 )5~"#N]4?U{ ۫.f4Vs}?(k2x804`vs؝ -K8prk9й^L;+#[ЍKzbJIk;#:e\D1tvC+yz6R&8L(j+ A[IG#$O(S6"ҏ, r <Dqn#:ףg,FiVp՟/| |"]$$ gS|Oa`|z=P[}_~ 0|hqq, $`r~itƶP~Y3w^Wj:Փja>3p9|"x&)BcAEdfóSm9pxQ!cwD+c~3o2y}<)m@GSչmVu$2<4;gZkÝ7Jށ'8aI#BRxVArPփb]>h8s2@s/]2 6{dY ?P Wr|E͉`)y@ff5/Eax|CiXD뇄b/=^_byk4KaVN(Te';A܌2/eeO$3=YvE#{P;> @A"U"NH0.Vq|B~/OtöW(Gck $Xd C0A ]!_p<尕9P{uk3~4 ~&Q3dP`6m%dU F6ؕV"F N\ ⛟2:N`[DŽP-I½̀#n{U4J)G?ljhk;=(]+(VĞۄ3"Vf1`ۇqPT# / 2qomD%Kt}eMB:m1a@'CWx|͌RkCzLJ&r" gu Ə /U- <\bog`.2ɖf{K }j IQ)-d,#%clhNۍ6\eZrgrϚt"e! Djjozk0 g؎cTaT[b:|e}tJ>9EQ N18J žQU˼u]7.`W:&7owB1e9M]O]QV*]4cV52M~@*4t9'lV3UQ <.o$a4{`u aHBSѬmp>Z8"Vv{cln 4Skp<\AI5zXAl$._Y2>n07r%/{=^qaOG`F2x㏪^~:u;a?ۣAGeu;'(K:&|2sL;xHP-Dpi|@Bv){/K_%8#;`zqrYy $ 0`M/uz)4R҆(iInҶ 5a 84Mن`9(?%7ˎY 4p\!g`>iTwm0p111@ϧl}QVS"jh4Kz/`U)-8"DK˖rut|Jv 6ZCȩ,#}]|#`NB- qpK^n(+w͛:2y:~K\sh^ %$Kw^*[_Jaӆ:RdDbGHEolNA WB7t!:ZrB,Πmŝ;ܝr-"rir`)z@HQI{6Z\Da?*,jAյq%!;6E硎gg/ONc~I{e7BZGx(e\\dnoTǧs&aQELX ښB϶Dt߼u)@2ha8c jP+ U=G]>2OVi]K{Ͷ\bc1OIg -Q7 qZu#%IĂS^J[ +ށc@CHe{bSx3*cY2w4eM;NJtۂH|3Gxg91W< oؙ7):*)M\5l7y O5Fqk+q"h3W~aFdt^MhR4 CW}?Je.Lр No]YSJ?R.qoOeC_.݃ET z??ՌzgLDK%tiU: zʪ8n)zkKQ$3@w~kONe|87V  dr6yJt6S,`>+9O:_ @wE Ė+TSE*B;( zπ,i~k'of_b x*nCˤ@wɽKeqE'^u΂xWg; 39yn>~ӧQyt.]vǣ~J0f?+R`s6~3օEQ#2 㤸wrVpiK/<;cl4,Ivۋ؀bjc~t,'!}Qέ @}0\LLe, 9J=Arˋ-μ3TY"@aފ¶QDfP HqF)"Rn7"G߬tZxѮ^(;(? ،nKy=F:Ǵ*2jlj`[";&&n\[;Ȇǽ,e* ),VR. 9resDW{fu>CD\>3GiᢓɈQ6N{zF xu'b3aiPIzMzYXcivSO1[ 94 R]%`zۊ#S%5ASMk f"J`R5`S5e;'dud_ٽ_OCF{I6rÊWV"_MpR.F%f/h]O.:NiﺓXٳPT"fјaS x%YTClVSzr&90- †8E t4R7~3-*2ZUqѓ}w3v&TOܪK)6Tsc 7Vy//0pJ+۴ojO:$)Pz"ƞbbzK_`28wwtsJ>jIER6aꛩ(E`=wf34c5=Y| 9wiAW"B~7L Ub89(D :͖o,"uΥ>U͈cbx;rRHgr"xqKC;q0/{ZȉEPuu ;gHpn.+$؋7 lǻT9T Hߊ视(4>˥&46@n9.Yq(N^b/ʹȏ mRRxxd =c i1k(O* 7tCd?ЩSX}'L^:!Yt{Mܰ14DΊ0;K 2f ] ; 2&~8,j#BOYi@2``HP2:ca׌*ĶOY0T_.rv4~=IUU!JԳJi19븰gdV(o䊡F~4-1vI663ɐqedIe4UIl/#mKnkH(>̫Fno<omƂvd̾f~DvtE_SE 8R,=ތ&&$7R[mRwsLϦ&S*TLDm)Jū/ wɉ٪XYLd=ǦA CztyoB&~I*~6=?FwFFA4꫖TxͲwch 7$d5/Ɯe>tg]kp1W?ڢQoȳ[wN11U/n%ci 6V mK@k`  pS2P`&駾K-/Ie_ErFx(}KTa1x"Ǎ8kiL bC> ; Hrlo/h"aDqnq׶jR^`yZ0ԚM=$NJ̻^K.ALEMU1: ̰E<uוI*2_=NM'܈2Zܤ%OԸ*jgRw(*C2xoy}%ץk%Dfl]1GS R+ _chhRL.V00l:omV l@o&ƘkwvxXtkvXUTO;ѿ;mŵȩcᙋ48in ?C+UUQ^ӥ:yěʻ hs1 .u *?áڂq؈jULYx6Ԇ15^{d׀RLyΠR8o;^S6ʘ_{q~x,;a =8)M,\ˆ 'mP+:@=3LzB%oH̨FE;zv3_s/ޕ{l"Bk-OmkglH=$uʏ5gy&M5di5VqcBsc:=ތQuɦmʛ/s@.ll}L1&B$7#%"JX"C+}lCzL26ww"{Vum݇#@L9)Ki/qÄpiPu ;- P .yPhs@X> :]G mVIsF-ٮ H~ b6#L;d}ݹ`2sD^IK9ܚXk)*b,a鵹) v{mle2$5Z}Zmh7-x썦SXUqQol jFJՕ~wso1aّA4XY4o W/KUJ3^I)ri{rJNA9/3n@+A9)^pމO^(( sE[;uitr cV"K_^;6I.٥9[x EAv {}+?rfˁE蘆`p^~skcc0G' u*H`n!x޶5/7n#8:sREEao3 Mb [SL Fw8XOƻ`qs:#(8bAzL=X*@eM]),Ȕ_~駼}KlnAZ0Ebc^7HOx>jkeoX>ވ2v Yn{VBЇ߶:k6ŋG4֠:i rmMMBk_޶vk(a4:Ի'/Ƴ#D)BȝHl'nro4 <ư^,nNB'k뙟ģ䦅&]V 3";*9/O5V+IbTԨV9j}lxLq'Q}Ts *(mOx8)bu؉uJ_ŗ_}f_m O?i1xwkEտtİ~:a d}-M#T~n*`6!PS#]kᴌuVs+F(!jjz v2c`'bIQf]6nP_n!pgj{Ww(6ZpD8̶$jBXˌ;Xcݝ;7&e-*ۖmNY4&SkqП]._r2,yR[dU.E="+mZY)y <4XsCKR+ཐF; 0럠++:4ZfvD6e"p"Wg}gwR^ʸɪWn1Iީ7?amF_e 6 >ؕ٣|I35k6蔚Fb]V9 'ERyfjBw<ɺGqB? /fERxZFeѳgzVZv ]ɛ*I,mO 9Э+NB g cUc B1 D^$ _UCS-[ѵL#[_G>}?p2k?/>{,/_yeU?/̨˓|wo.T-cL튌H3j$GEU`3ܾ#ݡ?z*Nn,?4HD LO  )L2|0Iq2uc4N䘝Oias,0l)-6# }Ӵڿ27ÛǛX1l9'-.7fn*"Wɤѻ@ u3#2]Գ}vk^ &eUn>l}4bBاK L7ٰOJpSNRxT<#nkq)nXA=ԅQxW)59͑gւ􆱒&i)3$ayQzTIp-L<nǩiӅQY.(跷k"34/cTҞt"%NgA[=iFFsl#2!u>%wb#Yҫo%o-6+f N" N v T2k*6}?ض쌚W\BԆjUA \Bh"^dz/ PnL@z02)D^=SQumkǑ2 xlgd}K7/}n801og;4ߺ`ACqcB Ts bOdLG8JV9εwff;HZ4t8D (h1{;r8xkwG2Qd1(B:i8_ مk~66 W+SldeǤ- ioDiVW]|Y Ex_VWrU,=MɄV{8Sp\D( ]Ts ,0ŅN- ]ˍxDfx`}%|+Yv*ZJOXޫD'4St D7 dhdGX}?.#(rB@矢a!SG'IR+%}*?xfq]z}k\D3jݻ1S)DQNg̅jht@^ {b:XÆ'03! ϛ 9M6Ќزe%hm2\fSzSM}/4 Z( f@0lF6+V&lеsTp.}vـ EkdưPE:cnu$.St&Q9̈ҵJ_vl()rd݉=oj7[#Xx'Z{T!@ubXH@L&%s8j+10e~1$1ZEf;/tAmzW6ɩx4n1#YZ<ӵX“]t6 i@CcDK'pR@Pqitd<8ٺsJtt Ý 7ZqJosX\ųZ]W0 U@,S$_qe,CPzt}k! AX=z YeV 2u ݂Ji Z$ucSF0T]7pW㤴ig41X-J巷#? 1%h ڨT%1n]k|cOZYCv'1uގ,O.`B"yr>LZ4_x'\tJi )A!4>袯z*Fܑ|KZ[[n!p´d?t0rV]V8hiaQLE>'-؀,%uƬA].G`ʡ}Km[:E!Jg:s5'$mU 5SZ+.T14,Ø(9lqmiӎ\wX akihI3\WY3GG]V/H7,S! )hΕMW `$n%WY1ĕTaYX%aӤ~eHBII@9504DO:cKhzvpRo7?Ň5:sxHo]!aZ}JQlύdLJ`qF *2TZ\b]XT~T$d*RR}aK'9EkO%67 bYp;Nbe/ 딖(msۡov&>F> y20,94iU_/TK ӌ ¾/o߸WAiIŢl[U[ߺ%WFr!hW(`;?!L.ЕWS eZ@:GE3PV$ E mzf?*[ý+K'뇺zY2C gnԈx#H#`F؀Uu mSmEp4pvguslD;˩59D#`{ߝlHR;~3{J3GQ)l0,LՅ AL8>2:aA;F ywБ4D0N ;'볷VCX?e-L35nW:} 0ch-uI5xMw!+􇾩9DLfv9x]ގ<JWaա$&)I~A1l@Ro1iA Djڈ ݚ|;sL3PGWt ww7`7qߔwf>o-%טG^>cj׵p-%=5aeZk>]XIXp$QBc}6&]7u&ROF+3Jcv ~{d cG`y"Q0T:"%a@AIFZh/V'ż8+QoqMmeOȪti >T񽷷C1JD5AOn`(+2Gd5g?t󃧝w_IuDJvh?C079>h=iI#BAa:RщO7Kb^ϿtQ=o#O5sw$ʪ:1Q^5)ݳy<̷{UV)l#pT 1q6fEm2uV\Kz3R]sw@d;NH{738X- x 9iBl`8Y$e`P{F9SҌUGI]lW꠫=sTaJۮQ|K'iY6TNS kv!sNA`-_!]R)B:gԭ][u;HxS693%o_9`:RS4Hbo(B1Єݳ).Ef)O.;$K 3E]faN]睅p&bޮc=CSz6qimcI.q*=(=ٯO\D`we~r>UǺ⇈)r mGm _ x*0[n7$s^qHSQf쵥.3g0<1`lx;G[n/l]u^jok+J kIkVԃ-xrUmF5>6fhs-A9-;t{Y :ɔ`# E%'R)zJs§J88D9|On<#W]mQ>':w?/xGgǏftWDx›AȻdhT bOo߃=ړB;sZoL'^Z = 9f,)9@?o*QO(ӽ1.pJv*~ٶ7F먬PEwď} cแA9ZC?K5z3?JX=M@%*ǥ^>8ҹkldp^zeK}IgG\u1te/$Աi85w|8p^:Iœ/С-Qy~`/Hd#qe]c ӧ#/sP ]Fj=/\L<'S N%ÝIçYTAQs-z@\$Hv`ҷ"(7#*Y^瞭Y;FY#qEfu zrjf-,t|U_1F/U9gC9U87eH ^̲FBڧ R.&gPN~OPht\p(XKk;[Ga !1ap&SW[9=ܩk*!x<%o%:RZ$9$lc%#Nou8J!K1wg$iNv\_G;bSnPK"e='<(4Xpeoo`u_r=wt>OVC8K;=r`pDZpUc{Qٌݿ!;2$m^7Y>,ؑK_ B: _ 57r5DFx@ptptd`_2 VZ3C:0cxT H3iA #36s/JdO}LH]t5+; N YOXI`cb7Aj+. !y\@5CAmUxy6&̞Ccœ7:wy5o{ l3Iڦf;U9Ѭgj+GVajbxPC~ yRs7s c"wA6m9*gZنMHn 䦂.s ǻv0&d,+ 0S{`')Gip0!.PJO-zX3,ԗH=+/.}VP8iRo*h;tLl3`=Њcc(ќawoku;!ۇ[ۇ_/c7/bz0bJ(ak~5s->h_'[y<ְSVhZNd ;6f`CDNt^?CӲO2 ]T彧Eydp_y%歰;[{ºY%BUImRE14DKOJO4[[v~\7xF WJ}?H' ?|oE=F#eOϞݖS^n ׅ{n<ﬓB$d%*ƬgF_W AĢ(*k4o]w~I183usw_7ka[=qJfmYz"f pAHz^F~q*Ե?r|5jN 5TPIA7|+1?p(j5mDvxDUXk%x<-ĕX 3/fM-.^1%MC}u;6FSU,_ƣzʏ[ҿWt㦞6_=}EV̙ʇQw;MML&NF?tZBn!:Rч\@^&nvYޗrfՅ~:Ymve$ltXVQ E"pz[%I=[9v=J`珶tj<TG C˛$0ACph_Ɍ޻){vB7I{8{)xb8]]mVZ.tpcU,%s`&* 3=dtF3Xz9Y\X7B =QaOְ uidR@Lע nqsY4{lYCp \⌭z00VG?.1 l13!C׼5)Lt@oqୌzPKS!Q8AR-setuptools/_vendor/more_itertools/__init__.pyK+U/JU-/*QRPPV/LJ&gcJsǗg+*[YsPKSahy)setuptools/_vendor/more_itertools/more.pywF( s%;wlMah#|{\PٕDTSaY{}. P{ p~Ͳ~L ٶ?}8U]1Ejmf뚯yvkM3pZl;7\iSvޮf6Ug!&?+ d82Tz@{7'2$u. Qli.ӟ] ԥ 8? hJbQFrI4 ekI]Oyɻt c"c/O4Kj p *8[> OId/ %p!|gӧO?C&3Yr0&bxߋ/Ds1%'t<%GǗc0.Lx~a\r'gS}aROm^'@U%J U s5/+΃y l:5J>%29JEeodWgI>ʋP`]7pfd ȳ Y5Ks#_=~v pGɐW Q;ٛjf~76cH3`7Y&LP"У 뜾OHO,U- sjGb,""t<)e&88{f|QޠACU<>MebpQP[XvȹzDTx]?F k(- ,ہpq+)t᱑u0@‘ F[%ZϬlp!aO[!_݄Cl,/=H蒕Pd z䖡149sN*T0u ]M.er4죏滫zob\VWuN?}~V0봆+tЛXio@P <OZ{jta tڍ. DGNɇĝL愂]@ rMcn, 6YMz .MeY+e^Alwֳ6?CřUY …jVNWl`ޖE;ffAzLK{"ThEj=Ӟ H^{Лh"L2(;&<2L<6zb 4e|v\c,6L=`u [IY=:_\'OaYOqZyY5wݟFBE_ԉ鞨_pYKKr"spX#n'xIC0EW"Va+`o iH ekC\_vnv7U"b_Mm$%]OoJLgESB6i$hZb0uCv9v_*[p +s9>t6FR,o`o.Cx۞!Ce;Hm)o _mat?򥻺dSy3lٝ|1捑"A ^s^(l.>Յen^i@ b(wHp ({q(q~H@x6mݓn'f,1 9ujȃxE nddYRVjk-AtKgfc^!C<];bM՘ %W}H& WZ׵ ۖf33b~2iu䅭&2$[ Eؖ{ R!?u0b!X-kߍ)T'd@~eUe橦޸grWtǡOlot5o78s"G DUo\VbQ5`y7xRـCm{8wѡ.o-u4hw}b:ʔTr!FAMYmu3p*Cj4&C4̘j$a@BĽ&_$֤^,& 8"1)Uq-=-O8C<ـUeOaxf948U\>"O5&w&(!3K+jWp‰=֘ p<}AގS-mZ rX(."yZ`?˼h{@ˋ>1OcDԉB;TEŐ_Ź'n#hP|rdzKM Ass@B,ǥܝ#LܞA0Ni{T tsZ3cĬ*gs/0En$ӄmbfOm?`X=tkɺ?jԚhH,|+KuO{/~/~~|?P}s%7YEbkB'7MX6٦?ywxDZXFTh@+nM0C@ 5;~IUި 4M7M,Qf CS@BPD#(kJw1rCfe>C;~=@BlbP-JB^&N@𿷬TD*H'_KAx9C0t YA -Z>A?'4C}|9ף~NTnE.۴&(/ԪD螱2CG,Tܮ@' hw9JN?DȒ]iM)xK&cPj,iU p")^Ef8l@lj tGdx:| G (zED.6|Xޱ 5ZZD>;9{Oei/|d:Q ۖĦWQ\ajg;@@n pr 6Fڔ#zJ$Yiml9,_k\ȿ^W` GI&8PȓHZp*ȭʠϭ^-ɀ+*&G0q=or[)6+!5>_P5 ·,,πZB t'ҝ @Ȑ'P!+ ГZ#qɴ?9?M&瀒JˏD(Hno &’TY@>0ղ0  A3ϊ5j2œ:dVpVW-R3:% Yy6&~Ȳy-e'K- b|4Rr`$ 0e2a܈/QE9Zfd\N=PO1'fwBtVj]) J8d 8*M'BLD0v >~+xp<\P1 沬%6H]3B^i]N/@aU\CB b]ր%*NC}◚C/XE&q;{Q wy2gmJ|u,c{.Od^t;h?{<̗xүD>ZY{}&b-E0|) UZ7%sOo6CfԼ6c{ƛ>I IƁV"$E'*jQ8m@4xPCѶwtQ0*jdt5N"[HzUn?|a 4 ȄH[8W'5مc ˲\ ?K>߿|7/^y׎8\Z973NX@ط |E!YF{*z5vYہouZ/BUCCŐڇAoeڠxSYPib\y% ?Aq )A}>{`0ۡ;7.zMوi&OtƠI^sB`xG6c]/萺{'M{$Fu5Cö>\TkC4nl{sm>bl¨sc|m3}kHGo`VZ|n(Cn+W<|ܮ&D'ԈLz u$fIzcإM_-țCo|ޅM5-ORCU mLn\tiMehHy'kO-(r}y/_@X?r*nx9oYEDdZ2kY .Mуg^lwh]v5荰Cs&sV|{; ӥô"]pb%bk<316:o@<$%/0?(}_3dcY13&oM٤kײ;k$ŞMs[1n%X og*bnnDHe Qt .o%Ѥ~1S\_3k;o+ͭhh Rx+.țnmF",,ߪ@ ~8pzvltj75<ʂ%zÕ+ OG%m(ɦ6(G` Q6]ܤWhbCA/F3y(p)9/t;odyl~y{E_XTeI'1;;iђ|7vf3[1KE3YqDI\$!`p'\"?NѝD) Eo+V{*Y&3}-> Nihk ;

.`81#ijaTy6_)#iڈ!C h )UBH `?ikr81Rv&4JڃFX,*C\hȯJ(3ķzĆ! _9jH`(j㋆v]Ƽwˌ{Ks;94ږWv}Y1Ai02bN e2L9/U=f &,Y:smo3{Z,?&MGeT#hMX-bnLH WT<#}7ܿDcÞW8W}Y4t4/8Wnz{@r豃CDSi\pGV 4<OM8KWڏ$݋^o@ꩇʴ\6x|GF< /;R,f` |6T-Gmj/yfD+|Z[Ɔ <(x0Be?9$>J^:\` Xlz8yqgXaȔUzY駁Lc8©(NF>{ Q$&YdAyⲅFDlr:|U*B7\pe? yMhI1 z-ioml/IS:{{ixߒkIFH C ]ूbWaNzbb 7É ԧ-zb٦>V:tLhNT '^뜺:We2.LI:{ӍjѭbKȐbߩULFvkZ uc;#F/ +ɯiӄ\)6[%+3&DcY0qŚxvg,N|T8-( K%kN L?kN ~X!CSrrVwǗdK9CW pV|k42qPXЪy1S5K +B: $'^/c\4vUNA3X2L=[MDE ͭݕtF#O{Xz *^r|IJPem3w}yC#{XKޢzY9,)5l.zhp›/0kN`X7"*V'sut郫 ^%n^R} eB9kWKPxnU9r=o%脎'D##X81 sIfKe%l@}h$+2-] l?,^8%(XsRMm&N ̅ xl(s%[pPC'&m Y(حxor9$Nf L𴔬ai,ӞzD_:p[TQ&red.'> *m}["0l hTxz*:72 LM$&^jw۲` v[OYb]ZjKۡWa97v;HH>bf¥GB4w3i؉>eΫx  cB b(+&rMkhTrWiR9̾db3S56D@BcZuSc0ݚA ZQu zDHw85$)ף.rΟ2r^:_@+ f=h2EMaH@R#|[Ǖ_?* T n l]ʃ̘G֜L*ʞbO^io]nϽm05/ei̛ rr@zQܧǞv%Kh2;l}]5qFof6kL-,~ZsV0bI%}}(L],73dYX/LeV#[ ]l0Qf:k}$yBkYJ (pôG,J}z(~rE{!2&S6MFNyr3"I-xNsʢ:bѨz:7z0yÉ>yRtA#K5&p/TP sҲLySz_"ATq@`.O"1iזnZ dqWh[ st8:ۦT5N A d~^fd'cFʢO;4 GmV|H潘a-;F ^'R{wa"lYR$MNs__ E))/L/"{ 6,YrF~-Hcc# %\ #Zh Ӹ+áTr5cMs4ܣ߂.b[*e=Hrc=GFC[\w<,`1PF|rz"x<.79?= >0 NߛxNm * ݼ5>so[xچ2UCԱ{Szٛaz}㼖>^H\JP ~eW=dR$"#jUY4)w}g)#ďBs` jxӈ8ѤD 9i=y8斮͕M^_TqŀgPEk4$Fa I^6_GKnjS]:]Rbc)@O.?A Gh92p V{/wRQ. ڨ$3{^HL+뙻Ǐ\{jYI=a%"N. `B'GહUH)fsftBvqբ8YkPUb] y(T+̒pں) `194TX8v2>}:lt,h0x{qlb> oy DUy'gr}"G8yYC23i U-h)p@Diܢ\6ZEP$Ls$hGEuيy7<@cƑuw=AK;?@6Ŵ9Cm_s<a!PL0j*)eLD]ՙPU7R#v M*a(4+.OCЇRqu{dNLo 7sAiA{6zsG 3CQ|\ "Rc~8[gh9c/ %Vc%M]x˵ 0zYb&w/%˙Y!a$PLY8L A sEF&e*CƽnA\I8gxoy/.Lh`ى8m6%%@_r8% }B."=0|Xb_Np&n'a[d#FhҊONeґ*7ޏ;-7< F &B+:ZJg]oMtV#U4AQeFKܚ S%"hi@ȴ wS~5MƦ'1;hi|,d^ x K]3S;b6^(;5׊~Ypao|q)ˣ@L#($h&?ccF1+i}`a5Օ{)W:kK$> c7$_`|_$Q45+g~T `̬e峣J~74IKPgaAA#d4ʇYK0ω)uQt}X+Ax+>_|D/%[ 25)KG1)/vodv T>Xb\"xYD 9 $f::b+0ӥ8fu})D4a&sDR94ǞV" /d'=svVʿ#F\0t!L0BT{= <|Ȯ4mbDޙ$8|r_~Ư%)J e:]dlg NqanS+X jDty;pK?D;< n'O◖W䏡+aHAgg=Գ]) WnxP,:|7!QfdI-?Ć 5ûsF;^uÖFT'罴'DM%6 eyXyQ}1.Yҵm[[uvg\1`iwz_:,Xb,tC!ukil-'SDxCefڛ0h2BM7])udcfk\G8'@nIv4poR$ql%gX\/qI`?w~H@P fHEfB3d3 FQɷ7 ߃q@Ba9r!\p70giH vV⩶;!V'Y~mp$ґ^tU&#"FNcd/Q^DO-,J+uFݍ$ID]g%Ξ1(Gќn)L&۔rjClMKOMt4׻CC3mlQ\cy} bȾraBowЗuJs$(lVkNWBR:cAX۶KToErI+y\bhy3+ԗEbi5pF$-eˉH=ZVr)[GSx^ax ᪥V/+dB`X"H%/0"C{,8 kZI( $iV6SH (~&ƕtvC|S idJusB'?aa2GNvO*/~Q{ge`D%M׷}w#3{{]X 7P(c^\ܸPnN.HA&ɰ\āByLAF+ nC 9r8HhspR"?>xUYF2>"TEۢ &\YJ+[ʼ%>`Ʊ3)0)e{j<90aAhK b'.)mimZ}؎9ÍPR1Ywm<9[nq9M:*-'rəaS34!,!~95yEx4Srpx;zsnd_ c[B)@sc tݩo!v,b$B"B z>S}]Y/ڑkJO2qtlon˄ 'F/"<_i&ݻfU=8jB7 l2w~FyTm7j b,YFI]EZpHR$ໜ\媁RjKdcbB,2A[{wA(|9VFȆs*ueے-˙&{?fs6fKFr} ż$1\mJLSHn`˵抐I gmA//홹wWRƈFi3nym6mʩj b.}v&c̱B?;6:0X@b&+lK+}xkoVhlTc |7N2ʇs/;L{va,6]AfEOkb9ꊆ3+˗?_zճ>N?us܌%&-egʽ;Kލ_scvΒ^oDr%0j?f)dC|^;e{sRo$9N!enX\ej;Mo4M)aDƏ6N6P\ <(k1Ƣ$7eIwm `n]c=LW_G<(iFsdžyD4-Bxr+u, -XƘNĕ׹'P $}Q C%N>x?uioF Y2HgJ6Ǯs0+cN-VŒؖO:7r3Ya v|<}p$@vuFZXQ3Uh{[n;(A)EP6I%J[nYS{??E.pi}+ƒs8͸ܴGΠDA6+2&Y"(:6'i =ZHօ&AeZf<8fT%2^crc?J ~22=7}ȩG}H)ϔ 3BXy'umXQ#aw3ro OH8R(ۨ{px&LI \B_ʃ(K6h䣓Tmk;ݖg(9d֥_bmorE.4b@a]Pf g3dM拍)WEV2[7m540f5bx>QiX!*=& %cV=~zFiEojĴa2}߽?^CQksl^dıs!NƾNez^ 2+xҴAH76諕$3“ڞO}k.aYzGv=j2+xNgy. ¹u\NIucmx,mRnO߃`ٽGvE"]Y5-j"#UT|.:ڱ>1~\Л'-2K 1\|[U^HR¡`¨ne<6Jb9bo#۱u DwSig7Lp0G\/ #xdBr[vTnp!̤yC2`+ɒvū?6}kx:w}׾ I iBp N˯քRf^1A{(Wv ܜ)L{R?Y- Pr.yoLp1/"q6! b|&oH>/_!\rV,bSLqͧGb+3l)ِ@5E7vp \zl)Ơae~r+Y1f]dlCv-ŀDW)ȗ&AW<&PG. }Q/e9hʆB'qt.rB"`điɷV4H#mhb^Yڇ No[!1w§>ȉٽ?@NB/sI_')$b䀱5}SxrQ99׳='zQg#C<V]O]KMA򤄶#3Ե3P_(z\{2cee6qx';ȒGloOJ34ob9>Sk5S7vx !ٺ=+$S2G&_|M\&>?}ґs= t)D'~3sGcԊ]ZǕq8&LAh$kHBu*)<C$XO99e|OqWኛV5kyVfR+ܱ^~X) l?%l/f.nn~}|,Gsq-Xcz<%e @y1~<ÏG@>%'KY1z sGqL.4\LNHP_&c~B'c%b.4vJ OerzK͈!L =l+o֘+.LiU;xC{4Y6m|QpW-}͍`碽z6kTdmdV}=ve[m6|F[ ETj=L 4*w^Njmft̠b͓Kg :rPotRBvIA6l nGbC.|lhryq|ViO1\J=j鶬s$^ɜ]va"AgvoDRnoH^:WCyD`ul|&6Ҟ%m>bpf##Be%e >ꐤjXC[d& 02} ;Xr814`1n9ˠQf$Đ#i\a0oOjhGb6T˴-~!# 8mK`dVMp\h8ݦT{V6_9^ukT[7 =<>{;ipd.Q=hI߅" eI.(AcL0נ%I0g|ѷx˴MM/AkV MIy# +R8[sҽɃ[uE~ @j8-Z%lgĿ107 "+u_Smyy"K}|Y9ȣV,}{at@6d@HK䃁BܙE1PA&$ ҌLN?gڊ{׎_V@dntdTb(sAX65?N'[a4߈GX/mYxSCo9,F/`[IAc@ {[M@g[a{wNiR+I21v`tA\ xNEƱ.p橑O0a{#$p I΀a!N{L9]RkRb4Hfe)d6*Wk[hH&S R )5}KGޟD|AгK;p=N^4c הt ;yf3(j5ل|ovNd/=o 9:9]4%^W&wH>}8|6W2z|nS\/lneJe:|[ǃ̽@1#6D8+,<9!b&0M \$6^b&* cx͒.;}HE75勓yqKbL==ॽIRʒ ;AYtاk֛>kvOsc>Z6sޣOcy`"mRn6= k4,(ZI>9y<2{.l&/i"J[D!?4`~s}jBD!7^d 4T{\;FaF&6VޟƹYL"AaatהE(oeV^6wc/,iVooy 1Bm9g# 2SQ |lUX%=y$RL[!"!Q@TƔ*Vtw>i- fl5b-mVёi \;`f|K"|kv}]nGRJhGJSgGSJg[0Nڰ[f ;7 =]cq& `\'`F0Q(O>;XwktY(>mX^Èӹ[)G1Wdn~|Ke#(lE,zOvҴ!F.O i mjܶ |12[J"# y9d?fP/8sx}K|$ v7o40P4ᇆWF!!Q lJڤ5ts QwJDJSHvWF{a "L|">YnQH*h)l/t->dd#HPDr_IၟwM /߄L@cCz_dSܣ$D$C>>zϏ#`52c;ɡИߵQs̔V1t]u/c4Hahk%%ӅuwQttWΒ7SVSo(PzcӐ8SZ 5Xlr'D2@s,t1;Z9T׻0;Ej=)ߥz_4'x3:Z/lJynjH8w(d|jrޔT cOQ:v68@ ]@۰§YZL1lX2IϺ#):6y 8aPCԊ]$!@j [J괐,aNQ8nc1éj0EطjЯV;qD B38\fN&lM<(E]xCt*ul볏>B]=*+҃? 0]ʣJ4$#d=Ca9Jj(E@]W4jyjn;5ǶJE8 iNf| SVAFj[]-\l%eMv܆hq@ݬUɮJ4pg50{v.feN;.ml*9{ͽTU MtA=YE-$BB%v0^YA;TŽ}m?FlJZW)^T)`K0{1l/m sŽ)/@& YI e'BDA $}pFc|IeɆ&zY  ӁTJKgI)I~YMYڍbfhK6sKBq:l~{\-cÏc F"bhFJ.+;%&! Mk"$#sEw4E3O 5}>2 r6H!A;ٱd!OJbKan:s+͝FO'e>aHh/>c Oؙ/S#3lF!T l<g~5B'=Ɏ&}FNo[.v&K X<}n0$[qsY[u5/֋c[+fE̜I(۔Ѐmk;$.]tu:B/7SscX hb&V5Gؔ 6W7K:l. QgFtMypDqKb@F1'64>׷d'.;XfM|ʡ{6f̍]r A`gn=US9 Mj9\nN7{l6(9c?gi9#䡐-彊b".Qc<]_ֽ6~MOxKOu:6#k{e4%莒@>d{(7Z]oT/p3&(X"HA?SB 7#FgBYN7=a0J7q![+mokIBao8<;Q~ j[#B8&Vͱ i2mu@Yi)qaN).u%t@߈obP{`-jM.)-N1"c<5},\8=<x8̔wxswrJA9~s;%#^{ܲnFY3>Od3i(.`Q;.Ej Scb c١*UrJ &*]ì#QꗿTF1H}MQLee_HB0g4E5-d.o'ܴbU1,.&ԥ@,# h[g$)ⶬ2EѤ֙ rMTь-05$5ݑd<khEolK:Bbr} `lhì~1)Ш?N͆pՍ'> u{*Э9ɿaʻ@˰e{^/>%8Ձ̠+92![%xI,6UB5BCeF ,OuiH]TH3 X'^ORk:eͤgA\.\ݺɁm.C[|1  R}}2!+>۰Qf&^|#9Ho_{ŘqR.w%[1?[1ɘF>v 2Y8 W\٠Y2wəX pz=W<9;!=xcw V&?P0 vM~yߘElَ,JlY!,DyMCŊ)oF&*+8v0+,2̇c>}1BB\Q?'cdɜd+n3FAIž/O_?$_?u >{a;~OZ2~т6E -*;4_'˫73}2gZV,ZGl'X 'Kg73licS(ߍ~YZ =Bf"RiGqtmM(" Ƌ3벜&f<Go~qgw>G Hŝ MoYЃQS (Js:ndM/PGA{SqhJlILmbf3Z@Irh&AiT#wUO~#`%>+-na!P!Ǚdع0XŒriɓc@b i*oEN?v &_K~.֪ uCu?M5^kT&+p]wNX]aȯUSd(ȑ4Pp**YWaƝ Լt!#-mJvև੪J">-(I{Z3PS7Q2%2SX\VfڔS"mIAgEqTF b8?R6 "C4V3h۰VASd q0o 3?ax~h8aС@~=GKZsy|PYgOlFgef3>/:b .6B2[éT:M%MV㜱 =u6w X@p#;8g@ #Z̳pa0+ͽ(Qf^L$c;JmSf4=,Й4ڭ״klBd,f,V䙳2vłvZ]ΗA( FV#nhWv)bL#!RWk I-G*6搎ی?,ZĆybpPz#B\fߣ!Ƙ4KXR ??\XlwrxjS|{Z{SuZG̶4B79?i,:_p둜gJ" 9mL M8H7/Qv kyߤwS֑h2WX½)fc,Q``)LX5Dq-ٟ渾5K̺ uC&G3k,o45Ǿd%6~g##@YiJ)3w,{z*6F^A``GvȔȬ)S<| Ai @ j&o|G>p"iƙﯶ1fԇ 46+ MB|ah8_cvzG 4nf*J|o~[F;ЂgW3oaHZqmOw0{* -FIC=zg({?2j`{hGɐ-L$pq}=x :x'&V^>q!HWh<JB8J Vj:)J7=J-]/ jdtM#<"vQ?c[Q=cãI626h|! zR75 He `?),8D*s{ag8nnXCSq%=ڥ;c9"H, t"$Iw+#֌eRniP>8?S~CbO&gdD)vKIs c$ ي҆RcM,hXÜқʝ ]13%.֟WjOn)ՔYZ`|5L#9R.rM0\Ŕ#n‰]lcʹ& WTLv^!I)ziQ;e$@$$Tٚp؎+YI Gr”z:1!Bez-X`zzM̟zM  Eg˾ rg`jGcJ赞A^HjB6 f{J"Ę骨 I.+&\A`n_7 Bqg*dpQ޹@f(Vүc}lA5ݼH㙇7PEki/?p4JDŴ|VD4O]""g*(Nud!G25rS!18JdW那@Ssu@"bL{Ʀ*8wPRi .(ع"9#ifc]vB:_ B5oėsRoD&h55JW9B8|W{0ph $9\Q,DO{`Ll)A^~غ a"[vo2C-v}5:٣+ HOC3J$MmϷfEү`ӒB1%Wld03la%G< %ס;[꫇ n'a7sI[b/ѭBڷ~ݸxXTtW1gEJ&t>d箩݉%?4˿޼B@7"AE Y2t% vЙD4h:>N/4ɢP|Qz=H?3\ 86==DNȷ [SetLdF7:5؏{&H[el ĝW#渱V5OLԮ7- HC%*xkJEg~!J #ԍ}}v0nPo6GB"lzi?[tcs~˖wHX&5dr %\ nnǓlp;͙Ջfz{Ћ}wc-;o5sq'scLooP4<֮AmidYU{h}T&x9¿AB= {qI+?b'|.+$ a`aqXlHyb֏,̍ku2a(jo&ᄋ2llw-t.j (zW9Xx~a],/|]򈾍:5_o@b#̕dG?+ew%5D_PKSʀ8?,setuptools/_vendor/more_itertools/recipes.py;ks6+pN]Rh$d7x晚ڭV&w{.5Ej ʖ_?"E{|DAot7Z矶iU!MNaTuK#:oUJ|==;{SbhWտԫF6GjnzJ).zV{#WQaĝ| BFөHmwW/^ uyaw|q޵&@Ɯ=y]ʒi'{oI]r&_~'uz͸}گǼTuڔ:/S7lr3ݲ20mȨwm0 ėQ0r<;[.eY.Z>n(]?u b*yFֺ1m~κm*H="SꐫQlˈnx'T>Qiug}<;CUGG=3{cD0UIe{7]fPijVYWz ;iYdIH;YJ]L Nٚ |!L +ׯ_3T~&x_R1OW|" ϲUgT2[D⫊!<3x-8 ;WqE8]׳1Xkw5%fHh8XhVEpөx& rq!C[!sEر^V&Ё0p`U ߺphtkIHM'DBxyCصi8 z*Y'r2` kQp%b2,:Wr|*_ T$φe9+yz+ }]>k72/eߖ&0'`ћh_f|30I05EB][y(Uuٞt/*7,g:9U;3%Hs Z э*5 GwTu~}kI\j`-t<C~±U~}"cb_wtxR${unuc+Ah,}1,˞"N4g߈0*iaFye.kQ͡"'\fKE5M{gca6dQڀ6ʯeGG,*wdc쫽. plW觮2A]鳂س48Ϧ;.gC YrfR483sR`L@ޜK[t.ВcpEM1o_:$K^l=(GW;yP9 >ÔTa:Fy hAOYE9=1!ns[H? ٰGUC RZW)CZƩ%_Szԛ*byHNQ Yy1&B=eW)HY%6'F{.&xF!c2.R%{'>K >^2pmrޒ`w.+!*Z9qe+p]E"0)ЫSGhuk ޳R'z'Jq.CāR~4V%[ūo?_ JpHj/{ bF$lt6JiE4w KW{@dxBZpސ@PQl~'IM_t زJjr:с,WZ&ԘևۼIC1WQr1/*ma%y6GpmU9 >4M00ZD)̧ ͦ%(/15܍`w\l%8k}Pp}uo0Xu~Q^ޒF^sFoF2_hW^wjs LjJwk1/Ic Ppխ`L*彂44?dT9D|f}e/uC$/[1.. +wv IIw% T_ZqR#a)x(:vCɢhXjG9 |j\p /r0e LaxPq':Azi3]3] #B#~R"Y B0 ?1j6l*愀@rba /wb[1 ,Au_/C2HκNUumE&Ni0u|^,\x }-IOZ=S֚l 66ڂݘf⁂؎5Y YEѫX1#7- ;WKwα7{j8*N0; %7vbAąA3].d87@+8 tFf3Xx#>QoQ,7k|r*(4z-B3 p!$0e.-.lĐᐳ5ߜ5BqN&zѧ;o Pٯ`]!߸3>V49(3=6t1"W>[dp6%~QըWy)p {1C*9#Þns-<Rڢڻ~DƪC Qj)>'Z]=}sbY/}-zmݐu ֛ɈcqCG48vް6jy3eg%}\Cuhe^E@kT@u8);%Fo۷o߽{O3yS6 Zc:6%56BÕ)N;+$?+ǂJ9Ew{e j짤8cAZ ll<ː ,kJzO&d{f^6;PC']Lcn8lI zYل%Rԏ'7xd+r|-n4ka ._]5&GiӐYVC}L?ʊxS~FN7d 6EU4e*>ȳy &/KSҌd<5 EAh-%siJqL:3-.ؘKR(2BW&vonY,]%4o(O'9oe_;J93cw`שK|(rS _Z ۫z{ xKlMۯ|}]9s&:ӽHC.JeK~Nʻڵ(*:Bd+"E#uw30CV ZrǚZmz\/pGoC8SaR%a X!qe@oEY׻Rŀ9ZNw.Bnw1r1j0,}#o5,[kIQ XC lԞ#Qm z  M&pS՝iXScN'v@xf~3xۓe(=yGgueP\2x|+ 8j3}'>݅X8WpNZ0]Ʉ3ίA딲uBbNm$W5F=sՓr[iAC]`E oi˳U95"׉(:TX-%/Gp8B@:]KNplg?i"PȅĢV#S}!bzv~O!$ _xB3шxE } Oc5L9!%fB9_Tɩ?6^Tq"J]xmؼWޡ ;F1qE2sQw bB') зXVcN4h6bx4J?.O!g X ,c~*໬nE+x~du (QGOvNxb}~, >u{?@K4`SGL䮿+w_V]EIK @ 0m1Hc;Ƌ*Nt1ᓂ'uޢ}suuatnξa3;|zfi;^ę5qbEp}^4̈v1pPKSYf)setuptools/_vendor/packaging/__about__.pyMMk0 "6` e :v#9vBlݜC^IGG Bej4-&^Q8-%lci)uwx;UdFkr{m}Ft?HdYE,2O^L,, XŒ)re"&%)'EFCm~W;a#ZRm%—6I (4h$`Vse5X% nmk%d 'vMq[jP}:;XQd #D/˝"ne*S-69~PKS(setuptools/_vendor/packaging/__init__.pyMj0 E 1i!2.Ea&C77QY.:7WG6@oB]4mq A;dA}xLe9XNCfs fxy{97u.`(X!_O -ɡ t(ƺP+3y6Ek~"S^QbU4l)}*rM\@ +J.Y#|a|6= b(`QMPKS*:c,*setuptools/_vendor/packaging/_manylinux.pyZs` A^5qRYlMeɵU9G*%&Ҳr2ɳba"d#o4,nodB4ʪêZ$wHe(G"KXq̳K$cg(xy,iOZ*/K+9R0^KYu!X6W:%ᙸa]Y,Y"XKQzXE'Hd E'2qb#Bitۀ N,YX `2=v_>9?e? c^,SX#<'oe."XlI{ĀQnũKO3y,#k?g(b8zP X4oKi[+h7GΎo^c/ACq|~tugSn4~:zs~OQ ݛ`.w˫z>?z{Ӂ!9%ٛ)OO'3x|n_L7_^Igd.s2UR!bzDy3f[?,MhQyo|A^.Ze)aovV{!zr3jN}$|!CHlDu~8s:>rO/ݡW[D{d(x&tS%Dv|R9[r2%OeU;+)KW4CFI 6}GNiue)jfTbYVx7J|RylQ#u,b)' C(D dr CW!2 yXj9JsxP[ERxxUD-aG|}qݡ e덋|gk7,j:nc 2!1֗}g2b' M:(ոcs3vx[S,Dd7lY]߬ bů^94s ܬet~ϰI 豼p"RYSM ̶XNu D(P&fYfdQnaP\0v=S55W;ΜQA݋g@_:-N+L=8;c6;#\?\!T<,p~>FL#B*Q ,O|$\PrJX"tZ!;ʿKrCx. 8&)( i"]VR˅>וG*6h2wof?Kjn*c"H4kQnJGlGݑ} 'RBȅ.Q*U{ƪ1#(ng"&.{ʣQ?˪ɎQDٯ03|E5hN ZISU4)__H6/<,ZG XLy,P/.JU#uU`0jJC]1NUX"8]d&"j KADWz@ KzX?P͡R" lpj̲XJ\[x1qh~AeIg ܎঵>9EjATdBad/QV-WT8!P=N{G: DP} PygqA.zGelҜEm4}P#8=\(M{A =[b`ZCFbb!sFAEV 1DHE,CJH3<[Ÿi()1>רT -5n *\hCҴ0mg.էȀnsGW!3ڙLJ@?˭gl@=$Ąq [z/x}/=? it }Y fiG<0mH_96ȪCMoxջ:d"e鞍ihkw_Ym m_qQ!y{>ۍğhVjۓl/I;.k`QJ-F3AZlȺ>e)JRV2ʑuxtF!V }cطXL &taFS1UQqK#Hjys+(+jO!RMʲ #9u`^55)mz!Y@Y=-zۂfm TB}3`]͌w-Ȏ6[r8+߅HF_uov\B(;{ּग़]v` eR'6)TR2Ih]ueZ4KiZ`M5[oF ]JֲAh#k5IkjI=pFn1 5z^p1;{_  8G^}IngG Ͷ};bXCjo$-EFFk͎0$I/†2:8zZwP;uF otf⃄J?SYK3=[YI^!э;9|fy1ob]Uw=VCmz@mkuu</jc9PKSo0*setuptools/_vendor/packaging/_musllinux.pyW[s6~ׯ8<,pNYv5&Ƴ/HPšYLf{/mg9p߹ k86M-Ln@Um)@VM)* l " [Y5{ЭRRmzoi&T"R Uk)p×-Yh#ih$Ţ.ʊ-[)Zٺ.MP7Bs[aGXfծ]gN2 ,/>Laa=)oZt>4uh[L&( Ղiq1C BQ)=R*;j6|VAYH8a'ef䯂$7\yJnMɜTH '}dt>.$ q:=k ;WDZ.x1zPlmx#eieuu\8?9=o_go/3.(w.z[4Z螡iDfªur"m=<{ymϘlkqJܗ{zd88N!:!bZ׺BV­a8 2KqMF ,g^* 6U[2=5"JpOBb #϶R ~!BFNx"uX}W 5`l4B@lAl:+QCKz. #מSk%N=3>='3>WWWm|_gpPקGkiو?~StO>y8S[0VC[/ 4mҍ v5I+*\,N|^;r#+zߓ$UQ;[-:~JV#j'E DAsq'%"' @-dr89Ȼ!:4ccZU`{]rlIo.s=+xhsw0 α$ 5Mݾ^[A<<:d%7ҟQ}uZ0B6uPTcaHeUHүy4&NZuU*v; N ժ+ޟσRF e1: B|Ln⹞N0ŧzkyu^+u'TwG˧~Zabn ̍>BЏ pVVA r#'h(MRvߍe!q++^DJC&TkE>FeM=:+ Sʱ"Ԩ E1Mhm+a$b6UEzqfvN?CɉM2_pLr''KCcܠ:{JPw J4p Î}PDžqDtt24Ƈ!elm,F{׋)JRDy*ťF"50ϴj\g>;xP,\ D&zx:91C0^֧m2Zgھsһ~Yg3ݝXۊ.o:d/48yJk=73;4xAF !QM Fr9f|oO[I~0> 6{)0Et/P)~uK ꟦HScI UKYh @~ebfr=O14V \읅ڇfđ&]1"MD$3lk 7:h(D%T> 3uqJbNdG+Ӡoqthyv /ʯPKSqt i]+setuptools/_vendor/packaging/_structures.pyk0{`eX`?:(^Zv >5#M\_v;^I8}),B"1)RT3UD 4G :o*aӕ 'w1peϻKM;vr~Ymw󂪝3ZSv;0Xi+H@DBȐ6 ZX\(Ae00Y`t FAx A/Yr[B$D]ټtNǠSjaƥoF/BX,qb&bh cmRyPDǽ=(79&(,ΈA6bI|a߾pBW9i/007} -⏘=czs=AbԺR5qPKSXQx -!'setuptools/_vendor/packaging/markers.pyYmo8_"!b #.v`I0VcmeQKIIsi DJr+.b gF/6&/uK R+k&mf4[F&v52h?',&7L9/'/Or-_jhrŘ<98ZK9&8ol@ypA2 0f ͋:L]TLPy μd#4U^=$+h]O-[E4U$)]p8 1ikQm8bqA~~6r̒#.UXþ˵iӰ]L`;'6dY]@pܵyFQ0[u4DwC8-yNR[CEA9y7i֬)͈z $rLQN9Zd׎S%MMp(TJӧ@N=DN.LoO0kV6ǘ_W-[7:!-~dA xdq< 靺fHE Rdy:lt9ܘp Grs6͈@M ;IND^?{N(NϓY'۳ULi!#UƹIniЉ ZN8V)G #h[,_Ȝ0$ЪMl y 4GLB>'VQ[ &FaA-.Ef ^j N juy @6֖w In@M JIhr2A^W[,^zrYs`H=/ `]/YRL=$oW g0s|>c[ Yt4D;=l$,Z ڳIw^*G>FA=j^y+n!D-"2&"n7V !;e tf%_o%z$Y+N_ȓI*3V׉&i݋;zXfE~Ah_PKSX\,setuptools/_vendor/packaging/requirements.pyWr6}WɱI:LF02j+ɹTp`R@]@JE/"̮݃SAi H.X.XB6y8׌HWK=tȝsChh7J& SߋFӨT9^`օHe,8Yu$# 4D8j]p KHWhó, ֔ ,y"nuRR!;d0RAfՠCc6 &7kYPnA@r@u~bu欣[ :LY.5svnǂ'Ƌ1.xzfLY_ӞOi4ANX3x,UR66 GVxzM]>۶ ]ѧ$l,9} <ο#\\gl8 3c?U5#T*Bԫܯq80M'F= j"Fpuߌ~Ah;KYv2kdihڊa9< zPfcyj42N?"vʱ2=3677GNgx~ޟDC ꬲsyսZN gK@*1G&UMOJ0/\7 Ik*Oȩ (`A+W@Rw"!F@ 64ݰL7}jiOGzYl Lوs07*RLmK–$U`ű'XƆˮ'O^Q3b~:Hn[V;`- *0 )[eU$ νڜY@f3GO{aw*PDjr5Hz}GMIcG^ovk v¡W=oorOWrN']ܦ, 9eޮ*ٜIʺ{ b?BkŠ4OlשGZ!JZZnWtm{sF5ͪ.5dzIhxYNT]DgglXb?9r/:~SͲ*jJwPjU4 X%W**PiϕZD,vbNI})'I%vqHlˮȨjTQ 5 6԰JX(IV EkrPxDVHγ(5 lLU [Y۹TjUb sx (.a%Hr*|M3V({q3ui"/B㾁yVAuQq3˾Uh9dL"c2qRhoa2 R܉Q [>ALl)6,,(Kq5J2 yTl"_6,po!!Qkb]ghQ]Y50mb T@MfávNB*+Ɗ)ĕ [sI^kRC<<ɤJ/dᆢmwTIVp18G`W|Ƴ!ΡgU\ Q p4oMP[~vIE#IvbMQ_(ЧC w'i0Ni"3©Mi>*;OP" 4|4:`N<m3HSi!yvH}mfAZfYm3kS\Z'@ C36h. *X٬$EԚ&7rhSv뛅rѫ>s}Y6x䜃)ʵ$ M! 5.mɄ꿐4!XJ{?C)/"Hm0`a1Ƭ\9\ eO')載uJKUX[F)蜵nVLJa[kPAMtGl:+JReH{!tqwZf32 'dP9Q}:f).7`$"/Q  #{[ 5B5LV5!7?1x?ZɣA} P0b$\) /c jZp p) :jfU,/gY'I:=x,7+"Y-؟`mY.I䵒4z6prcڴc-t`k+`s\kܹBh|]W =iUkWsڶ3Oa?O2ij؁h08t#op9=DNx&s{Xr!먼)@1ObU Z'H6(.qtppuۢ$;RczD$J8 (+J@Ԛ]!!Rv,֎Jb'p$p'#AD|>aG_89N UL&S;,}s%|Z$*] }]bYV`DK<2G#L*X/ fdšH X{!wu7csU,6Y|PS"h ס?uV7-udvz.LOF!h{mЁ-Ҭִ%``;:Mhˣy'Pu`ӒHƘl<(2@ԗt!hS,IJfe :3&:!fFsbXӹ)3S8'3qi va#TM\jug5|x P^aSK s6%;m8luX mPv" BݹG-9qX$ǎSXML#Zӟ=3Ts*%r5i 8h\Pv-8MՊ_? zx޻3z"UR˜7>cst@M?s}|Ŗ`&77M$&uV]mi*]j ϧ5n7H?b\sd| [{cx]Ou83dNLyrqU!;)BL['lo{' 2(d{7~nOHZI>oϓYdW5m/MDh( tͲƸЌoV3 OPzI_Msf `t?z`([3ɡ7ݽz ȴ IT/)B3si;#t_hj_]KM_dh[RjIupca^no2hT!=8V @+0qb eE`5iY5&7Z~_NxڮjP͸5;γJSjrfmᖱ8GZĆu@uyVXG]'<'2%)Q xspLΣMVS6xV %nG6]:&cѬ0ϡq-S9$;-ۃ>9'_v''2 L ̌*k9 ă2b&yV7C{4n@.qe5y8 W/@cr4:9THTYT ,HL`=D`Г~ N>bP wt,{۶{Fs45tbh\1r1>0ishc++xq7S+W$^,,y8AfsH5"lHVtw;N1)1tܬ0ܗ4}2w!&ש!tJ(V$ˑtpn흧qn1mKϘoܥiTrG1QSgS bnhib(GK?TvIBf} Hd)GyNa;SQ,IǐΦfWϏ Y-CLuc]br1uη5bbƘ!AMrTjؾnMi0z!:(e^z-Pl5MdeC6IZ w]8gx3)i0 v}t>i?ߘh 57 =\0 Hb'WeuEJOcߡ65RWVj$70: Bƨ"(OT|%:ʧ%/LD`4V;% χu[ݭ8Y2I13ʛ8XSaX`+k/YwK5at.v8 U<?IxXgwWըC^:us޺ =z Yc=+KZNwBڅh: `]`-K)ߎӂ2Jv9 ?[LiJV$W ʺRT ^*Q+Y ơ &qվBG\렠kAye⺄srAOsb[;sFC\o7Aq/:bv;b\ ib N;j]ֻ>hǚsJ5.s5z1Ĥ 7"/AsWzQW.7 w=dk:3޵ amsnYbڽko;˙Z.DBg~LѶ1saF-Xa.:x^xg6MԌ.a%/+wUp^ZZdkiu*6ĂU[  /wnߞPч'&3`a`]Gc$VA=ikU^ao`+&gbΗť |1nxaV֪"ۼpEv$ڐ 2$ȅ.)NNwOxD{pG8 sT).`WKzsu!WbUR>D+^Rë!Zر^EqdǏڃi͓4>F`Q"p4&#G F&n#'So=xri/F帨 &)Ȩ!4:]a` ߏ87FE$+-.jLP)oTөchĩK9X[`kϕŰP-F9XWJTwg)`+ILڟXOCd* ˪R<𕶂`֦ ߂@"30FdryL+bUd=<;z/2 =G]dr XD$t/锌*նMVPC-ʡ1la{-Bbh'_–^*BV!]Tx\ϣNuʼ;Ocj406L3f>,4`x1Su7/MnʟWrj \O;ֆd_||ϒp_\*t% [VPvۭ`+RG&M&7ߍF(q$mu踻 %F߀(t`0  hp[L3yaՂGBEeem*̈ݗ]!_EYTw6xwNuFKM SN?UpMS.WG[]76:{gm+]>ьTۮ3S:6hU#[7XWNī* UkZjA2m%͐re2aW~f5pnD^!oPox'Gs 0`BF%ꣳax*j|[e lfT0|޲,ʾۊޭgiR$ĈSr[ pM.5# 9Q]խ-vz%$[3N$cX\5y+V_qVj%Y2Y'6aE>b%yJ`N>pN??|r'YU T,j EŪxYDd2Ī,e/m%5 X{ȗrSO3q`%"Z?c?>'_>~<RK@#ĢǪ'O=v%w`AꨬkINo ziS_rRǎGP|u#3? aTtO,awZ@Pd^ƶ_9_,"~,`b0ODU-Ͽgn4ųi Bo'gol=f)ir0}^V\NPjՕ& T:NJT8 JVM mQW§; Pkvuu$,lJ;O#K#]ı̊Z1,,ADXɅoc'tsj|ʗC䢎PlIb68+nl}.r!r(+n@xpὙer  +~6.tO^ٍ2voIs`Xqq}0J1$d_To,.e+JN@_%kĊ \*hR)!Qur&IIX\rWI~WxBݓFvI9(Ͳ"v\)ЦV`A@YYi*e.foYr6%LP'+f~!H90)#X_Wj30 #LL 1hlXrlf-m&TEĒ&!`δC&8OG]BoLmQcR+p4ӅRD^-_"A":k1d6Bz~Ŏp#.Oh#6!ݑ bwėuwvm0.pgBq" BdIMCJ˹HBˆt7$y6!Gc"w)\CK){ ?̵qd)@d8)A\*UǼ#@ѯAk$&i3ml%0+JXQq̢]ߢ23whlGeX+Y8]nqּQ :Ck^XSΎ! E2:tZ&9Rg`HA}{>֎s Ye/KS@u.8^}kVpB а\ $g\%u VN2E䐱AI_p?`-Z=Wq2BjllXAƘA4* \pPJH^u)^6`z%\ !el-t^Ǯ]2LlӨ\@qUXLܺ%8 z]h40zCځiD?~'Wvߙ0X.Nhr(RpeXχ>'uУX㣙^\Y \G ۷;1=5j<Zg[-p(ƋFdPlAU*HR(wu:rajpɔVjSv8{rn(@ʹAqFE?ʰg })nֲyfB,6 D  I~sL ϐght{efZJS2?>E 05DŔ3j3#荰֥ԂS]wZM5h/ LFzk̽ JY.fRe)/6e'9N7sGu=?3D%}-xm2-@#A~ BԠC)v@-ѺpugDu桋Y킗5UUT >; [?ŢSpNz"W<8LRHi_2ֶ!V|?>ѣ=q) j$Vg;w&o躻tֆ@lL@v󉿠񸇮deVق\pPvN[c uU_/) m1/ zOK8ق &%)88xW}6C"l葳Ѣۨ!2vީz|k "< Ϝy' =< Wp 5:u ġs`}ͤ'QnvĦ\.`?(jG0\Q8L'Ur% x +E#i5/쩷J6@A .qc !ZZ$t;wl|/a6!ΦCk =uۭY=?q?3K}å-y>baƨu= %V QF|us}eɿ&*(&sO4g]I?4 g$%NJTϡ}*U-B,BƳ Qd`w@KiXHIUKT0(˅[AE|F@t9lD&r/P6vzhPr|{WDG-9gsn)ƅ>*)P- t?2-뀢m}ϖ[ź1(QfY솸bl/Jm^EE'eY+* ]5f%'OnUH`:[럴&ym㣶;>;%_9A]K8;ePKSA3h%setuptools/_vendor/packaging/utils.pyWnF}WL"cp\@.`pIUɑ ew/wf)KZ\=rb1PY!Tk ra)j>B$Ef^odb@gN/Nž))Mm"PXJ-Tdo!r]h24uyb]JeH[(s[b wX\7%ExY>fiW&YF2YFP&J㜎u\#sZ\'\]JY̹BFf޹Tk2syFRqoB<Ѻe  >'y'JIN< E]+5,J.T2U .'𷸵E&4kDgߓ%זe`Y !ӤH-`sK!,3)Ptm\s;=;Lp~⃑Ryz?xýʷ&>_P?oR nB7<\haQ؝ne\*;sGvHFz69G}O=^c.Kvy^H8tT[ٿ﫴n\'7Z^jgмjYgGމ6l^x~5d:_&=E]{!QV] $ttst>ʂ~.FΌY~2+Q,Vi.njD&>oR|aN}o9Q6|;v;iZ=7Q5A#sHc.Gr: e )"gk>] xD_Sñ:gD:ET'ZkF_j؎*: ++60֌\ixwhQ(Ḳؙ"Mʋt ,ks-XMfS6 zc3׬7HBMKbSy{rb%Lr~(oL^ofmi ic}{hxm[:j.<Ts~" ="G>]`Pr!0eQ 57,ɥu WdJ1M4;*lT|^5sL۾ 5jX)pa UFXZ2z=^f^Kui~ij%)E$ewH1I|F)K_/N: 0NnϩMZC+V(]1^ XEqwadƫDdi֯y2QL"[$v~l 9Tg>u_ʌ.Rн)>>y[2 rs/ )e[,P0EBRos`Fm\=?{3f|okYMC4?7~me;[oC0z3a_Nn'O"I@_Ϧm<ք﷫yW}kD0ЇZd7ʠvtmSރPTlHsuE༣iO`"W'o|Y*Q^aG+%1ll4 WEEX*H!Vx YrE((Q}2J!#Li֚ǟϏ=Yʄ眎.Sd*U{Xf9]XyyHiM]T=Q`@#J 2IL:y\U};5z@&m0 4[%=vi1smL>+dGКBԊ(=tIulG~V ~YԾҙm'-Ih[4~Tw$wJ:`dy0a8muφV-3r]ۚ#'y2˺Vxt \d3#üݐ8`oiyGu 9MӞxۼ Ә۾yRJT7cOgWf4#yBg'՘u=vΦ#}{iLgJ4V 7n|6&6&HYF 8T{y5[lĎӒ!ԬԈu 8fCbd0whWupzvZO>Gl~y7 V+P}`5NV.m?4$VZŪ }Sl*J4橞9U橾PtMAWUIk,GGϘ]_+s3mmsj>G!=2$Yo6V5bId0SdȢ2F/؁ݚWlGbpeSVb 8XTAmD.Nia+BTLY.ɴFSA$RP[9 ˜qǭV]DjmětaetShNFJoF;-ǭYZ[|䤅2Ƅܭn.4JV,ѳÚn61oYPz;S7y }Xp6s-Dž΢?;wGpHNӜV9=^Z;y eg]B0kӹ]yE&{J<߽,1݉>2^?c b͑  TgԱ 25IU#;E\oe뙁.3@mB8zʹ Hֈ+õ2od7{B U@'i5N}@ BAԵ?Sr&kCLIņ[zaHP7A0TQZ "Kp!O2X`-jtNN G4è_0}ZuIG@ÿ~,7C$p{5NR.EYSM-/}~Ew9~G%mkoʨ; _kSv`]<PKS=/M setuptools/command/alias.pyUKo0 Wp hb9 0`40[Nْ']}ö|P"H~Z*tYr* X ~8i&g#ژ(N 6h[«D[Z1]laQtYC(h DUqဧ}KZHh:"{ѶϹ ͬ,qHdqhs`>V;%t0ObrO'mL'x E+{̵lR@FTP2|Ok1i 9,{ @R$~ReY+$Ϻ2)[R2 ks(.X3SH*b~=uzEe20AHڊ''.v iϱ=2LlapvG";_;l2Jx.?fa;RcL3MM 1if#3&$s.){\ 7t vIOl'~ђGϤvxӱIK3}s^:W&vdO pl3CJ]oT{n:Mr!=K\Xs>:ɸNOᣳKJwdc:#CٹwG [ 7@T fxRY=za&y~ 6$$?.=NZ)׍)չ0)L%?iK?sn͂ MWUHWb?/Re %D/K"zhogϩ 47bG$"$˥.$1W࿆edoGjDy-8hh{}#l' q|k`}qEPKSut@setuptools/command/bdist_egg.py;ks8rWrH)}Im*s9j벵Yod!1#8$H @h жHvϛ2ݔ2ۭVy꒥pa_mC6"j۷{z X~`=߷w<zfGN7O_%+u/B_70yy/nZ ;>d\am}^[Loġ,C%2g0)զEUmΦȫp6qjU- PUW(>[10O(PXᚺlߖG۪M ڲ0 Y0B>ǟ~q+ٵF)}r0"՗Wg_K/4^fy}f(d [$ rz65g15%$ހlvj`&&`m_^OBA<& ^$'U[tHv; =p^e(;' _f*NdUmxN.>pFQ`n8f!y4d_kyd`iG|Q MIz B-E.fA(#&#kBnI jYfʠge>S%;a;;wM&EV`CBLς*h8դV,bkހH?SS~@m]&U]]!* 0ʯKW@+A l ᰄAq99=zt6'˪D42x>z{ 74(7Y 4Nw)0dη-O;>Y%kÒ+d9Ϯyz g+0/^k悰yIQj^O(}`DjsJ Ԧq-YzhԴ>z|Ʋȏ5NZV)ĊYaC6Kei{ 3]{-LAo2Ϲ{! ;EJٰw/_C˟>e=zDG zyS?4Z*c nV dkt\<3x>Ehڿg<{wՇ] 7~<[=rmՋa0_ w~H džÖrf}Y?qHD/|4Ds<GpZ$>Gur9I#kk- &3Po3z­/´;B<ѾKI1޿. Ǟ]UQ.St{l v]uט*`G!:/(&8K78p6ƏU}w[Ĝsph߾=x槱6h1 CƜ8 '$7tЗjXSDZX ́- ا< tMn|Wmw̴̆ö Q,s#F8lLRj"Xv¢EtD<ʹ}R5C*MPUԭ$p%Rq]ЀTߺl5㔽̷|8f:߹9ַi TCAL \iFVӟ//?xE!=Dkȭ VA6G,y1>Yp' ;=>^2u[ǐɻL"`ΘW{xvMx 횆lm\)MvїGcQL? T|:\xYh׎gDxY* ^Sh#0i$yV\Q_> }4C/YJPD f"e nb!wlt׷`B$3"8*`­"MbzD\iF'fa'YaG,ޱ`y7>}/r!pKŵ,Z n S;o⨪ r y@e(c=R>~Sf3fiZE!ùǔ$V~ە?.>J}Wp|jW0x,a(LFC70Bx2eYGU:7 +2k=֒=,$OR"'"ẞo;@TBZdFְCǜ@RX{zl唠R qxZ 4@"!n6=ة*囉A"acRW#7iI-[:Z[qKKvHδf* ߿k_uܦ5켭su ‹qxϳO>^ZZ<1\.|(p!KࠕZǩ8CQx}"O#ëLbV3[n۫OBoE-e?;\ (3WP|^V3fUVb[~$xl SZZJżKQ=:d/x5oءV< YV]b':3p,٦HF#k4,TS¦0w:iq+rnEt *Vف?a2X@' uZ̊/XX)ss14FS)aPԒ"o2y\&)"t^Jۿ$aq. ISP{z%̭ h}~ Ǔx`nÞ˸O1q膊ٺ1"%h[],6v55Fm4SS/x DZ96A1guզ>b9S-9NaOUl&F|o1Ϩ>x~M҂̌.|")q< _ y|f)K>n0~FREbNGrL¢Mؿ6] dؿ`3?BVR?/_,!%v^(F^FQ>k䏶zmqqo= _}^F=&SWff\_;^KUqw>?|R_V2z(  x sڴ;B,eeWu `ԝ|e= `B^:H1^ǰI#aSQdj=> D-^ =H̪>_eng_)ؒ_;D 0U)2yCY wPI8ߧEKw1Xrg+=t:b$jzz9 aNH6OC:Y{b;]7,*zO}??B(4%\{A4Sbܵ!O G kgsq+;Y9r9)X`<9GrJO벍: I OA\ h !:C$ MtIgUbĚaZj( HX'4Q(FfRF:,Di_&|yjK_F(O:i@iO_vyjGY VP'.HUF!ӝ̴XIE@MNAdo~xyy ѣ(@uF}r3؈Z'6)km0}xLm82m.(=ĺn,O[~^y>-PKSȹsetuptools/command/bdist_rpm.pyM0CJH=.P赴l)=b{KBqò#qjE4gd[4ʇyQǴU9ۃ` 5i;_3=x cca-2טUEM{Ivx(f3:pBh-xgeA!2[=YჀǨR5)nԲGr}<_$Xg,:@-$6"k}yXrhѳeIĿKHe g!\<19 ߿.8u 3#4isꍓ?/9@BCYLqb? de$ (yPxA"ż|wmQb.q і 1&Tӻﮝ'|cbxC[ +oZEƜZn:)¡%Y]u`~[^޲W(5lSO^sM5_- Azo|g^9p?PKS!1? setuptools/command/build_clib.pyXM6WL h@MMbaf"ڍ}gHI֗MemsfpPJ/ SUBJ@80VVGk%Zk#'&2m(ǖUbgF3}-}'kzZJ8Wh)@Ͷ+g^o,ģhxIƂ7P`v4JgOU}W )%>9/ CD]\]*HZ*LvBO4 A`C?%T"<12DR Fm| qO܁DG'8!ZDe=,iTIDѯB%( J[iQ!H"Q9.QDTU{[ޗrR " (*J}RcQ2PA4#5͛[ aG{"c+4ҙpq;>NJ {&hTg c;yu'iҮ$^{JUjұ.0m-6 P*̲+.>]jMH$`jf:ڲweDP5+Rcmхe k'Jtkx  nٷc%[Lz `]1|]֛A+CI{Itx?$^ޝL+'C:Zp" ,>!tN66A[[2>O\*!OQh-:cpm+d6ѝEA(竖/֝k[Ü}g.M<6Lo63&+/k,#~RJ!DN!ߖTF+Gsۑ:h~c"XDc"'v&S R]oaRsnfG uڂ^ҲZ"ma0۶uTIO~ dm%H &RYЧh<'{ `>MlwϜJ,]q!Y(N]DNpy~qac,Mjnꎟjo.Y6u7l 6≗MK<43|n7JuPHgq"%,:eNZ~7kY2Pz>RD :~y8'$ G'<#F~zZs YVPKSIV3setuptools/command/build_ext.pyko~FƁTB3Ou{4\1S$åV̾|ռvfv^m5rQOh?b5{Vry+k{wWo޿ˮ~yͧWW (eJyHׇ*2qT%ˊCf$6e%2hP=f:bZX d-26 M)A;( ۊ>SPg>"!i_Uv~?6-jY6z[;;^,}/m`/6MTY[fȄ?kR +>dg-DQ=0UuLB~Mq+ v +٤ذo/)-geq{e>7GUJqˁ-؞ &` _ Xo_^ëՃEmxg| [7bQ~se`L\fi^i[`- ݕR(mZNq(;X#9l* էNVG }+#l-v-ȪQ31i%l٭z"X4mN+ޞl -(XE_ ZrEzM1+aӧO'Q_0Ml? k]n'm0o֕]i@g{߈n@8Ŀ6Ur~΋ce9?8 WinruًOpy꽂W>B<x/fyy%̋ڂ") QI蝔b@3en kb]VHMX}{ku08DɊ*:t"IEBfcrP[PXʲ=sՄu¬Ð`Vwagd=TLUGq0dHJWۡHVe}KiQWc pz('hDEu 7CѠ;ή͚èk|F9ϻ X^߄?h__')!4舉ICoڦn5 N)v^8_e~DKlrP$~zAEA({bY'*xKp%}~&H86b\ޒTz;*;UoKk(&¨Q{ >jZ}*H ÐS7m;Ȏ\Y⸲![D= P5kWKяKIDaY"m+3QtfلfŔJ܋aSFK+& Xzy:\5-4"5c>ZRNwg.FPPJX.Iy1f>J<"Pygh $b* (gXa1Uy3T8A(֝2ARQ;ݍwM@bo!R k31[;~}i,|Q>>>J<"2fQ78S3vTofThJ<"❍3NGnYf&V (@(>j2a^-Y=W-ҽH+#2j̺+(q9ӡ"InP8,d3ޯ+e~2KwBK:v`]j@%4bY kUa;Qц[c8Kj$m;>Px5!jՉ7DL/ %#sLz,nc&rh!+I,86ҋ*iVK=f 黎HtAA(=dАO\8 QN/ d_MOFHA]7i-$`/#Ű%8D,:LQ\ tBT2 lle[ WC:jC'Tn^o [],/vjּ 1J:}R^e'^t?J^)58XQ-WhŀMj>yrFsuigpqB>PS0]q+{Fc:e"Y=ֹ z ݐ)#b~W<<'Qo+#cy!Fې6*5$N[S5S\ͰQr`!|-u-릧Dwc!(Ri:*_X{P4:)K=jgmG R=,(=A n·5)⩜1;= U8mIIߜfW32b{1$h +f=b_Ej:g>ْv5n^v٬ViSyՏAWA̭15VB?㣾vNp1A|뺎g-9aZUy/;'! x_3&Uoo~ÿUW:Z%u U( 1TEHi$u@Ł(꽝;Za.v-sO9}{'{KIs!CDlCݾ[oS7g$xWטRAgw<}φj}*=:SJ}<:M_;qקm|/),)`N AKcL$x"9ؒxPꦧJ/|thXK2'T~j"-Քtgd=03~:5 Ax.#P `^dA1d*$߃jĐNHB&-e}D sEPp-hߋ"1! 04ĕp3_`*zbVDLR;>Оj1 +wNFͱn0~bQ;FJQh"̓ ' p6Z7b1x卮E+>ݾR2zav(%*a)DP Z5Cdr#rpx-uq6 K ]i%=o6~^l@oy 7oCAA06z=zJ2)>$Sň ,Qt3F ،ICAvѬvץqV[hk?55~[5@Pe]%wcTk"ww5ozBv*+,<ǶN/%g&m0.-c Z2[8rEǑ mh)VHiT4QZ*@̑?!·*2 "rC98|8 ɂwL|E,^϶0>"*{1|El)S5fV|y}|t D|&&pAcdi'dFNLj7䣄rVUNɓs׌PbǽH{8c*>}Gz zl{28b"OV0'Qē"YsxU!nBj65GY>eD\WU=_wddI eE;؈)4=ՀT|jL=)BX%:U5:Bqd z ."E[? 4QƴZ aP3][d'6 & :%ʇ ͬ򔶔/Ͻqe-,H u a]u"LіBϘ5P*pZ[Fɑ&!goz.2=?]ƨ[U˓ #@o7dcbDa-[vlCrt 7 DVh6aJ%c3l"Q*U4ͦH_<;ۿ؂j>-Fe zڍ5:͊bnNm}> gŠ(B`aRmxP MKqka#hXvu֚>%Yh mv\wS5ֻ_]z}8a0@eda.Y_O#͇q ) O-g0d\ ~:hZsXƎ=ۚ'o˚%rE@(b3 2h6۲e+6^X{* /' Eٖyߜiâ^[JOe;tAΦpVMx: EGػوņ3foo kKFf􊽎p3C`-I&PX44͓>[Z]E\͐,Wyj=y ^aoȸV18pk.о_O^|C> pklYǿBL>9x:бM{2Xl 1ʍa;_/>7yKBFU(# .gޕ_C8_뿥)tֳ밫 my@iIyOd,s-nA}sD?tZ4~Kzuݪӈ]rM8 _Wfcg :_OL:>m5JW&KTiq=6 ^GQJҤ$|pG=26RvɶMi!ضC)jǍ<"8pOfh aW-tam8JTsyC Llcvg`~C>&}0c=$v}Eksni^{h"6#fc-ȕ`xx?A} nfC ՟]m.q?T-kI%kݖ%Y5Ceёɢ3\}|KUqCj:$IirK3[To)6R|8h 6EPRd,tInt۔ mEc*Z,bh b_PKS&ddsetuptools/command/develop.pyY[6~( $%yA@ohhYTIj<9H${)A~ٱo4q]l~kPY~ƈ{T# 4NTpIދpm0\sp:F&QO!hLP^2)D "ݝ+k)מogs򶆎V"t?UeTPO(TZqAX( A.zmF,ج!Pq-[!662]%|K8Ѽܛ3܃#V?oj+B^Bf'Lf; DPggcn~E~( G)7pJ 78 \1[i)g1/`LӚjinRƛ\YySRNĪ([7b(3*ͷG:Ē6l2Kk8f-Xei!7h ӁAX̀T0(u0u]- 4~(+x7TZX`ar*Aز XW]e;LԘɍ)J ;廔!Yt3c z?Jr:"B1߼ }=jmSؘdSP^1R匥 u+)fWi4e7Jۥa,K}}JB72(eO8`FXnސWt %LVWXk4 RR7E~ŽmYGgn%3Ŭ ;MaUت, 5jľXewoV$3 qVyRVA.!Vh幂x|s!c~;v*(2SC1:`WL TIM+;/.~mgCe =2ߟr3amr&;cN~})j9sg謱Vwc K=xk/oS ~ };``/ro :'%#%BkxT*.ƃtzE>}DAPi Uhp ƅ>nf0IhvG΢Kh`&ς@|rم8UDx05(5kg ;ώrO\xv*檦 crp+n̘zdrkV3$TY.w'hPkPb9Mm9 GnKe7vP"0Z sn< >?qQڲ9ni4p;0z%w%lT-Bf{Eh]ױm~B^/ ^ÛִÁlfg~욳WȬv5,-py7Z < 㪓Nߗ_ Ɂʄ xFX]}nXtո~W8W2 )a7ZˁoVrWG^'cgPKSsetuptools/command/dist_info.py}Sn0+V #P*䘅X/v 09{uPP9ԁ'{Pcc,`, ?6*Gf\5,7RC~WL1);Gjڙ!E#=/cN@\)GWQ9ô m?+Gg2hAkl e­ z>PKy*؇`4mN}sÄ|'tY,['!J}? ^|9p)٧w .d9_] wi2>MnuPKS:e[N"setuptools/command/easy_install.pyͽi{DZ(]b] dZlJEccK:'3CrB HѾ)'y΋ꭺhnW/W3yE7*;olԛͺ٬rз|Wˬ9ϖuzʮZfoof`[.ʋgzb6=@m6ӬrhrsbCjN3r]wuOWef]e[h?xPeowU⠺v[qy*/m[-; 4yٯW`:X5gY6mO﫾|rfs]P/avg]_\m֩ڶi;S+sE{qћ-+? %J/$lc]nsӅW߿G_O3RߎʪӶC>ݢy^0/zSmƕ,C٪z |m-.g[8U\lp@bЬM[nb+(na^`U}fζm:WrU}0?FU=/DU@PϏ5~B)#, `7ql|.[`yϚX6*(ha ›fGvqY_WY B^EU.f_V}_7ӌ&bHoܷ{fgEuh󼉪\Vl.ٵ~Go n X rUP -1u @,X"hyڪ X-e뎽kbB?\mOwn.mqB__} 5/.܏o 4*n/fR<| 蹪X/G_y[|=ζL73dw&k6ۣ}[̮Gܭ4Csr{&xc0;r]!QO>;R2|j7K1z u^SؾǬ_}vV9mk`L1r`$;<~#LS@gR3Z b Yd6>jAdSbwci8V[@pcnAu9 :BF6>>dͽ.5eAaM1M U};.ˮ6Sr 5EաϜpfbT\?XЕݯ3$ 0Eg]:sXfY]"Z-ږ[7tW '᤼ow=>,m}<1 ~QtXw՜esW|2o+Ч6~XdS2m t,- #e< dXafJr Iѱ te-Yڂ|&i=:}3~;L]) h臑+o:/ +W\)gL|)vm.Ga'3=@E[.+ %y]g2o_|M|p2\nW`^3Uw[V3)>?7H~ruSvE%~dXcS/-`140]Uv%&JFO쩫 Sw\!^Z$36++ ﲫCp?F_8>~3pD4Hoj8,0al)іc;1{,,Be< VED$ivpm\0Ex“ VKVKm`S1⸇jz",7W>0(p:ce:a^fzDGTi!!Vֈ C7q>M3 ؟UػYĬe:Kowa `fݦvMmD`Ѡw1T9jjv! ry %cr 5p}43n&p ̕m/g /ɠ3CF({H+_?TxfUq5;L*>*F!{)QWf@Vu #  ۑx[ %'>79Vdn[OcuƥּJfG\lkU -[懁ж,viq,bj :EzWt~= 2>(Qs >()L>ȀcM, 5 ;flN'SX􋖾KoJ2(U:bp'ߒ̻3uZM0]ٜrKJ2N#ږP)KMSvs0RDۦMYN `QnO%][3)hEL ~'KWwNUӦ5Aq/0 |ٗ{ 7w B pş:*!ܣ-(,zq| `3J~mzR<Vt퍜zah\ץ(P}c] Q][ $U GTf/fT$ۿ%b? M<_ jɎ99 `֫][Srȉ{2En2ՑIUicGjGKxj#Ff-itBZUKdXEK6 zgMgYS/ί@ya4 |Fs_uHq7jUv{%gbrt}L-<^iX@gLp)̻ ީo(r˲xXyƭ ʠ𪹘#>Ǣȇ?D&OXJ}[UJXwsI\қ`~{mnj>`rb+U=Oڪ D祛tk؈\MіtDe0!aiˣǟsGmgx^q3dqxB~EO~jOL~2==E!#i2H"#b]|2QUְ$Ƿ]_>a ?)9ϳ}ȅdJ|ū~}u,ϻ ;zT>Oբ_pht,ڂc&IU0cOíZ|2MT3PM; jo@TM$u?K شWOO+leV8>ѿaE<74-׫\/~P倫ڬn3}: ^dY}*/al@}.M >Vk"d2 k9>5'wt@F5GGF߾x??:]dO)s9{x ZԧayR1ۙOUyj͉+!&wU^{QB5ZJZ}úL[fz 5"d2 6` N5ۈҳL f%70lij88P@Ś"1|64A:uWBBs܋v mdwяY Ub#a)͒hգa]/iOqq:ؓ?Э)>ej> fB̚ s#&zYIjIO-QUsU?f9&p 7M) 3FVh  ;% W~%w#Z䝹Wx[47.lx?/$Ea=¸|%$.w=fkB&%dFŖ @kT%Lz2OQUY;ԣ Z R_Ӽܢ&)8UZK<@uny^A4h;k➎Ʈxv ;1,MкmP;ތ(e{d@Һiw4sn\hj;fowlqu/ZcRf9WHE6o-?[u b1k%uw`P7rroQ=́K'0]vZ9mӱFtAU(PqVlWarSXua枆+@!A.W,>͂ <*erscnqr?r -v.TXjiz]4iF ) \^{ e]>#K0A,-ۢ\o?-5=kZka@ Ƨ(d$L%q Uu-=bU ˾TNM6inF8bў[)H=*7fHyZ!oEc=dT9x>:1y~I;x"ΝB~ \'EIs(SIaEQ'zn*fw㭋?+tu;ۮ-}Rv1&]3Sy#+eG8诃ddXU`umv*eQ7# nj fm]hY+f7S/``6[6 =#h%fODk; oOX.?txe+zj̐̌m-pCX,:W)вč?_%MĎ}͌ Խ^1fͱſzC_8 4bv$= Wx ( /o^})JA=jpY eOR9h4a'{#܆', Iu7b|\ƈ ^}AFgh憚(ctVM4*>]fXvf.65'w:P_ 2[8k'7|S!O޿)4{Yj⸰v|O1ccn9 02 aChZAԾ%!^ n`ao,{=ÃCNyQodSADkMȬd~ <ov1oqS@^|1D9{[wd5:kn' YǑo}ezPϩ/kٸJ.5ޱZdFޢkJzӠvt?5w]1w;cRiGMu}0/UVĠŻ8#Z-pS[`4~&֑9v>9yz8Z#"0xSitEn;yп/P~m 2\+glv٢Jq?^ c)\^b&:]Z@GR!<ק԰nƺ-#c|DOM饟#ldhb/Ʋ@>~_ћ[2A1`nhjInO֢b}tz^SM=ń}"dN WaH:OyL48`P²}͔mTKƶ\Nq=ct"1lrf6΄4A.O7tGO%~VA`L KDR;ImC?0 ,oX/h Hq~`̎P-_ٍT{2Ǝkf4ϟÿB턖C$qc&V]z5No޿;cw4Q6i ] gJŋW_zjǯ' p >bKn9>q6e)+  yCX$gD+rwl`K<4~udk1s> [DXR"ǪVhd$})D(tUB#|֛]|%T`Ǚ4ShMnfkx0(nH0p!)ZU]eVK K {3u㧬RuL=VLI˕dnzߩn `)! %bfl"0-ګucDIeUJ Eo}եHL\DEq hSb8( ^tayQJtX%r6;?l:$aN& W#p*uLɩO4x._䰵3]nŢy<__-{.w^,h &]OƩ[l1+m΃_?-~|y恠X=qp<mC:su&G_hlLpUy KnHeF&MQƫHѠ$Rt hb qet2鏉89reO3[c1no3ueP =z mw4#I{M'wнMqg q= $LBbϫ~qNHJz\l+>ɎYg}bL#ǎ_ ߱K.\N5=2P[ CJm԰E(g3܎XNf% wpG]zIk)1t츯Z.;5ގAMRG!Į2ΏA (F{?Kٍ.wk$> ȅT` {Z|r2(ӕ5FqST=@Q*ƏxIQ}p8bof>FRJ{y z=a8)AjS=ߏm qSeW!:9蜒+w'yY:xeN%( qal&3ixC;.DavA7n8{0H`j}=K{ b28uI>tOڋ ih;yr=@18u(X=R,_1 -*QWXa $0{@%-)Hct<9N}B a9'|3BNʧ %ȕh@E ؅C1GJUJO Q"fI U:&Qзuv6Kii -]Zyo#oՠFאJhT9ZץC*hRTG=4T$*/[d Nԏe)E}+3n GqlKq7Rrœ "S(\qPuI칚Ȑ'*nA"AY# '\_mK1 ݶx6d8p,Rcqz/Ƕ*@DB-kX=FiVh2?7^4l@!x=T ^jL&:`[ޣ&<]23@c>QOcC~*R‰<)u$U@7("'Cyb_Psp]%,G,5K墯k/ 5cܽ:fHL\Dx*$" û>(TPEY>\D.gj+ϫ/ulp cVYUi(\PЯݖoUC.2zA(Pj.PE k"<4yW["# ^ExSz:5h'9:M}H`^(:,zxp&3"wC7s=4Yat4OnyqAkqρI`xN`Xjj kVrмW5HXH;񹔬s. +d$G-8]b~^V+`:&I-?0 Wp&S!f[ {qՋ0.0ee1~3v1cqz$pM$|4 hISY" Ѕ?fB1c} d7ԁ!z}3J.4>NCb_{*dtq`DDoLiRbtߒR,8'0w\F*U6EӚj,4фq H=>7lt3‡Eviᶬ}:ʓ׿u6&3֫3ޢb9} aQ.QL>QinDBkuH6 K}R*,E9ulr[u Qw՛:c}2,bD_m?Xmg^f8[uz@sRËu8bi|_5SwM kX[evbB{޹!T؉JHi{vIrʱ>HqM+KmfaH8irC q[~ÔKW J佭nkOX6+'7šlpH{+A.ꆖ햌X/RM532*$L_Ӑ{cpx 0] >'_4fϮwcCF2CǎiX+9oپ{l4(;zsؓ>|L gbCH@.t `1իa遮pg"d+URr5[Eg=|ԍ~ʱdD7'4Ns7"7*wN~f|1/[r2rhğX {ibU-woӜ}|fer%6!9Eі07p(TR`?}L38R"ipGlz" ek 둿MgmnFRZ[yB*o X[^x^xd G %ZHWT)cAՊP3(aQQt]/)i$+QmG&bSXZBY [UV^=6C%b({m~/L삞gOOۄu]،n紻ɍYjӟc8OA!Ɠy_+Lܙ]O!Q g8d]j p3rbꘚɋ_ԍG67մs'{#c-d+ E{{"H >暚"V)G!= WXwnIڞl!#E5LN[R²ʿO.+y{Tئc_G]ẹF-RhC0o ]2JF2<uYdۅވY "wtZZC"S~BֱtfAJ%-`> 1%=޹K:D)P\嘲}Xn̞?X7n[$w45@JmT?6tB&j&9({E›x[w޾?~ -RF \iGo'Cч;E.iOբİX[#4\3vVݯLp-9$Ii> pm6);ipn l,Pbń9%.bzO䡜u^-b:$H%ʮTGa&rf!j ozKݛi|0'Ln&P`} ÇT3`i*@rꌽ=uC×ñMVF^W/& lh~1Gx+$a Y k0);Tɛnrq^O?b@OCCȷ`Zmw+ +o$[B0aWB"}ycke7u:@ }q?}?M#],`kwu ˜L]^tģUn#+ڸxBl3R&܌#* v#Zϱl9cLul H sXvG 1Z6r.3:2&ig2W cV[sRN̛0Yg>Ѹ=z=e^2l=C $*̟7T_|a[&%,Gx![.'֤#a(O,4iq1E;PϺ?f _!# A_'ʼ}v X#x6_ig|[AF}#1,60wIsRE5qc :W8M/ 6i)ЮK_Ǩx1cR'qݒշiKzO ~psXA`6ddO-~*6_ޕi(w6cOWdxf)]@|'(pCv`Qffw"7D!I DPWk"iAX9lFwsi@CFhR-ehC>@X&u]H{fc2L V!sQBm9ڈ2ʘy&&OA1NuQ1Gk\,0Nb[Y[̎VgfzcNLJ@>^bafrB־b2E+z2VֈͣU(p,O:s"ur J;ސ#s޺9~NR*zY.( kW4}Q̩V#D* R阰1mL]ZچѮҩ3أۏ*=]vއjw´g18VfCEg꫙\®-XUBpb״x[΅KCfs̈]q%mX+/כh6Y:Rbϸ$ͬJêW1 qfgΆGWK2 b4:ޅVƼtwH t&A#33s΁٩N8OI(G/-}7d#1`?u#Z!⣝q¼X(.{a8e0s6'$)wP#8&Ryj%COUX^oX$Wj }Okɕf":kԈ8''w~GfO_Q0_2f(9BQ鶛/k<]5wiW!6E X GUilJ-çq<4'bLvÃ꺔f: #%0+:JQ[[cAGY/wVx7^hIt9.dcvfV#;(y^q>Sn0wzɞd6 JFBE &#jmI•[WQE)hޙ̧Y=SZ_A ʉ;Y0<{.EqG.mM;W=Y=]qrD@NA#6ưnBvIIJ}MFϴD9] 4NM+x\. pCk},`"L}f8JXOֿ:\l[).]B _(saAK7J {'b{}ѸegI! |FJl/9נXRBbl?e17?\8l5xyr'KSWcJQ1 c#di! zHgF%>w/^|{pD~ },U^ Nop=guqpoS̬7*DDDqC+@~5%ES3Eeb]y#|tϪ\MPNH*G@G##/c.,?!nMN{p80?AfV+^hS#(s!@e 2~A({30|M=ctC!jyY7uvcZih']U0H0c*\f/[euYwRi.U;C7}q*n :YTe'ISK,& DHidΗ5:;B!lK^o0?Ϻ?oX~kl)"ʔlԬ]U{fWFy|%Rk縛)C0M`+w-,s"u|eDom7L1XV(xrky< 5ڟ0^zMdJކ$uVجtmX8q]˫ *P]ی?76b;TNzM;3H҅ Ļ2ɧ7fm5&BSEq{Sx˔m3hň[ u <`PRX1]mCi=8iXuw$tVV>19X۵^ad(< XrxwK~Oŝ44r3?nτ&Cb̋] {S1 1f«ڜk4 _N܏_\gOA9D`̳s4܁ežˋ)j,k^qx[r~_5R.17+O}/~S:%£ae(w>^ljtz4{Odۇ_9c$a̋*ExQΗpa[>}x,8f1 3Yj5v$|$юb 2X818сicbb**ڔy̏)ǫ79R2{xxf>*2sԁL9 $Fڐg@TzV1sN h{Ḷ881sdexEoywի?=fT{|鳂Wg%76&`xL@2_Pa=]17qp@vqė+)1k%c%,.258rBt:6$^OO3rX8y`DUA?;ECOp/gfܓkMX &n|Y ԂՈ=C0%L '|/Ze`u(㖮Ljt18(-5ce*Pxy}fʦy26I}L8iv+־z&xm 4o8.VeeoK ˕G/Th6+:h46{*ڰuE!:~eY.:?(K̈vAǩ"x#>_\{[P(Bj5`'|$J!5zMpv&0Ŕ|HCVO& :ܖ|Ǯ)D, 㘋oN)Uu+]vJ- 8 0bD;7hI 9 ̵ ^s7tt$.L$O`hP= CZI%>1@(,s̸f3,wڡ*!^PCEB29DV[Cڙژ*Fi^WI1Uq nq[ 1݀<} ../["TBnj8uom.-.KRÛJv:}%s' |jUR%2 Rlg(-2 7m%ΑwI)e?Uz 3RFSLk Y3Ŷ4*R6.*vmG|t9;d?AO*׾N %~[o;'zphњ5xЋ9zP=e=>UvLH اnGnyښ6uE۰*e<KpzJ uHW /nr]^|: kd !JTrx%u2)!/'oȨ?vtB{E s ("麈LkUW-w8A*\\Pbf# 0C~|)@bF]S/]9r?6$V,b{8fa}F!F(V|WdR=4rf5$|XfFD=V*&zfmV0Gi= cwTVaG5Σĵ€#G60`h,G"@S@VDe Q`٤7o:.v\ /Lʛ1S&_LB"9.0Hဵ_[]0ha)Fgܿ.9k2]fQ(޾j1lÌW}}p3"f)yUF&-͵:`ݲZ=t/wƋ.ǴDfW nҹcN\T\{>-N92Jː &}G/@#X_`z6@ׂ,hoAaÑsmy8*=*Žiٰ0FʫkRa?vB T|RT94/(sQX3*%|>sQz$ߊw4Z2V^ݪZ9'"p˿'sPݷL+H,(jdQ;twut"`f؄Ki3qK8CaÇ®[T1Ud9tf}3juw(ײ$O\4S SI#JYѬu<>0,LҺe&˻{eCA=g'#  >djeiJ횢9x?,`v\X;ɀ"Bg1!ceBfG1S̪:ǥjĨB-9e zsg.=5+Cy&;t [m dtl8we&u~cWuf듏3<#ڭf3F\ђ4vK8Ɲ^g/$xV49ǸqflO-Ҝ7; {c;4"0(Ae6F?T WL(^4m禉`w()Yl0 #uCz%^C[ʙZG )02L@3Ox4>tE-ZNMfv[ѱ&[FsK4uoąpUᐹp֔^\6.P/떧a{.xO'fGnmL>$.d6f2q'}gJ5Yʼn樬7o0äHTfln("JKQrcx~ojv,:%wcO9m"BG¢" a ku!hh/JO;Ӎ*B;2BP'yTFe>,@Z+f>\okS\3}K{{D|@b ᚏ-M""q.+)-H>Gųƻ1TQ} y 1<NFBui^$& (G \/^?Z ^bD@A!pPkˏGٟ 2Q _́_ ,(%b5G$xi(C,00sc׽avVt8ah܁[ٵes9h?r9hWK0 v]{!aC¡` + dQ;ZkZdPqss} Yt$9hBi~lFMʭ+m1,Q[{6dv:ωU>.<2V@T I+*'%@'r68vM8(Ĕ9)ťڕ&wt- vH,OjUԁf^S*ā-957u4*1FQщ의1JNcH6C?@|;l |eJNV:,#^ &Yh٢Eu2\mU7ݳB<Oz@E(f E 1"Jm6K!-V*\8vyZW8q_.'٠,Owuo )mu'S5K66 op|tʳqwEN1oZ^4϶2`Ow)5 ϊg8eZĤ0 /5kuAS-jR{ug3aMg-;-p%:^Lc"]0ܶYE[YLܝUc =nWu=yv@_1L 駟={ πi_>~vۺ9,xl!ޘK7{p871xC2P?)UDUxJ(I+n 3'6_#OWnӏN#JooV4/9lmIw/lш}Vvr1 zreHQ}\>00xlG/08]v\eg{jt#VyGp<8D*I_ќChR;:})$ql@Z/vp5O0`O~sZh%H) >tMU`%]ր #f(%geei)cqӒn*X/! 0E]y g*Z}N&Xn*4TcO~4^5,!qZe<"ppor[u)dE7~7ޚ 1Bg=idM_ Ĭv'X+N`Kd *A4*ؚg + s\.drp)eCǟX]$iF`r$DԤ`kj8"^8$^?g:%oc|`HSE1iࠆN\g7[$n f;e.!J!-)h IPe#FQx>u ^cEVNig"u=A?M唀 ohF^o)z_`j7 X}Ls 'R *c ,J4}|cq:&-v@+ӣ=8(#8q[W*}=R*9Tf:Am‚4sӌRbi!k g݂5;< Nia>FC > ,`sە\cROԼ2 P_(.^M.%lv0RN ǟIq`xE4XamA P+ Lz[́L81U$ߡ3P04UapmI9Vޙ,e &Rn Ӑ2̙>PW=U` 6-_7q`(G@^1Q\rVZ~uTU"rphKjG_N$A;PKYf4`ܣJS@q,}h5ٿs<]k=l}3S> $InaL]1CӖ`wy8EA;q*~5iyαq$EQB`o\ (Z`%x2GKa{t9Yd۪c`,]G=ȟx)L+沢U[sP/a$&jiHtSEWnG顡:ĐC!4BGPɯes''ZgH M:oٺEk|1a^S(xUxw=> ahW/jZou,;XtA:8k+3uL9Y19OPcG^]3MNޡ=)wC63) 2 C)N4.&zC782w ʝU1^.Iݙ\7M\CQh;pLED4ӐtjT99c3rX?1Ā.Ccfrolgc Nl̂] F^쬎@4sYUco>"np@@] $_6Ar"84s}F9 TX}ʽcFv`e쨲} -,(.L&Ks rEwvMVJ*GfT腧^?t{*fpҿ8CĢ{}=6,V5 UT ĞLoX$I ?]10ONTG09]ݣf/xg4Ǥ\y>ڧƹ7,ro>38.t<Ր>-z 2#,F}#1Vǻ|VĤvݷU%65/- K *=7<宯Wa@isݺ NkO4OM}E1o՚v*Sږ (01]-R ɏlzPKSnKbfsetuptools/command/egg_info.py4t]Tsܬa.ULڕ'UځmQfB+9ҭf*h_ľe>/JUDg.y@sWϑyj֯aWY9 `^ i&],bsvKQ2~d999JtmZ*J:qDUg)~+,6|/:ş_^DFܻ߷$l=D eq#E8w(*}Zޕi+{Q!)bZڦ]I,nSde}]QY戨4JSq Tphw`Hä [inWB[8S\(:oxT)TS+!گ EVJIu\6( Sd]u:1!pq,fS'D,m$FlM"㜈Nu$NE fzTf<rGº S7aR tgHMG^,<Ty)s1/ P(ઑY"hwLP)m= Gza/JϾO,-zU\ fvtHpg!O|Tw?;Lt5:3_O zU RR@xsS4Эǟ|vM3ZYX?cp5!:R7G5BO T1 uV 55Uo(a(~Qt_6K/.F>> Bl{^赳Rq53n<7}5 O|oPܦSMREfXj [Fvj|%D^ F fsVzTrMԚWOoچp= 8<4lHx3=  @zLeR`ϣݓ/(f (އ;9qѻeִG 8]CXZ]|˯/_`~@%Ļuz;wz܁ zVKi=;lq4z6ȡčiK^D>Ǡ]6/FfBrf4~4 N%ڃ"2e.5;HVLgK$35=9U( #&*H#Dǀ #Zx2%}P<}:Χg eƒsD YY;ś6 x?$@~'g=ݞiH8="Ӆ03Y̆1̏33y p Y[4/|=<4aj( &%#f"Ϥ! aCD8MD LLwewjfh}t29YΐH|炴KF2Y'wOu ;CpeZA,2R0=ЪA=wrK+k3^e JZ\W̶M>~.*Q~h4d c|C$9l_)(>x3P$ I1W 7B&e*1(%]"gJAAI!%,R8eHcvta촓!BW魵d^["dBVK^Tla% })ӍST3-ȦLԭ]ֻ `T,6JFqw[4n=9Cr\O1Sۆ Vh+S5|-jFojPG 1a@iTJJa8[mZ(98cJkj=BˊrOgI+̺{pkޟSuT;w8_/{I05")e,r|wL`a?b,G* -dJGEP4nL$SL#Zp[$?:_$2N٢3:Z'f ԍ(qJ\JL ^r{JLݡ_e% ~Tqr|`MNO9>nT|/._|=-֛%ה?Бl @4P3KoeNbԙ3IM>|t"^'=<ˍi(O 0񲍧A#OBKR6` y>nߵEF6g&/ȍݹX`2baF.P[0x6ڑ Lz Ѹ:HAsINYZ,mBvX$Tw|ygR$f?Z,\XvsPeeA0YXpv;41Iv6ulR7.-ъX3뉞=q ;fñxb+2 ٌ"T̲^'H e3USĘLB&sdpݳbwØ]5 ]പ@!g$H]8T ]؂p E^++\J:$:SAkZDe\Yd&8AR=I.?:`!Gŋ},ʋ|oAk'`\OU۴xQJو.ݻ`` I~HDJ4+t[禕J4Do'QpLXK!.s,f؝ǟM zmĉˀYĦ^38PwDD=E N?Nk +,ȿ!x=d|ع;o3- ]P`;֢Ct7z,?~>[NZJC˒>N} m]՗0E*BlD M7ʽY`O|L݃V;@?ƃP dpuchmߒx;|ubl}902>^_ǾMY,de"ȟ0%a}q~$' ]"L^+==:сJG;fgg|>J:T<ަc3 *?4Ʌ[鷌J (gsDcoVXhΌ|}"@צsiK%F1y~O:t&فlvU.i*8( 0hf tj"yu=h| Y{#A%uӎ$= ݬ7}^ַ+퍃 ɋ e*OMlY6X<펲xlcC#壈.3:.u kVkpZf (݈30lt\#HބQ%a\~ŋCFpeV}]Z0ÝHw1^8] g$ &^M<&p2D,:3Mv-V[ˋn_gq Fh~6 wwEhx}+K0C5YK@dg y8n!+I|X?.bd%@7 ~@ Jkp Քb Ł|CxY75 2u[G[PFu[ \@5Võkm@I(Vhݐ=@~,1%  8p'JPLvVGOrߝ޵IYPaN T Ϟ^V Φh^ur]_'LGQ!e3ݤE;r8Mfҙ*tKҝ XxW=`#x=ʽ_B,r8RTlesݩιՎ$ s4, 6] RVc_B4V%-o LP-2X0Vg0XZt:nE{2W\R˚#zب EaI fmt/d(WT 0*B_u׆꺬b7V^8J>+XT=d1,#$新nNF]S%ܺldpT1IbV3}й?Ww&*AiL4f$Sv xXSeC9nꓼ`;̹n(nu@G"OVrֆ?[H k?}˱(we03=\ez$Kѱv%S5q.Щ!e&-Ic|U@sr #Tir,2P;0O Íwx RͻŤ-r}:|zۙٲi/]AE;? aGy-Xycu 2ٯ;(6t}ȵ3[Z=cͯ؄b5 |q'Uk3[:@u2%K"gߎ\0=ԝ,3pnq]x_=듘B MFª]*DZyl _8#28U^V8൞9-~.|v9=f^?}E?Hѻ$ىv8n*̏b3eI} g|[YoicE%:9KnSQ _qC/-Nw _4jaMCHDO+g:Х=AC{W$?}x `˯3K{1sRp {TV<(v~4Zӧ +-A oBI=1rD3tc(M+aJOq!At ác}WG+6([Tn%f4c;<s<}Kad%аFهDjE-wթK|(P2yg)" fp4|eaoOx8gG Za4dS}<ߎ8g_$3}͛@<ő_R3/k|rhڝwYS%IL>}5?S(㤻5Γgm.tN=b8`NVr S-;=p=HXKsKlJ7mQhFz*P PKSvQ1*setuptools/command/install.pyXMo6Wv]iO1`;@z(ES]6T6_7(: -7Ù7tetJi]dm3a6ɦƱZIl+ ^އ7J m]M']n `5i#IiZum䊽6R4S]ӞŖ5̈Z *掂2eVL:S)c ε ݱۓI77im'/n$I[ˆ|qs0V?`ӌ0;~ɧRBB8$Yar:]XEkؽur?:wkyZAs; !Wv&oZ c0 :ϻ ` [d3gDNK I8lP}S^.ԑ?(3 8IIܧ9F4+ 7uu0ladGsU@e) P ̑NZ'քjC.fC ϐI5@Tʌ]=3X+[WA^ܔvw7j!L>><(NBQ:w2i aU>gJ<7J%Ajt|%E_qz+v43JV)U(YHЏx&֏6z;th:ݮԞBDCX] U>^p~2\!_+&>,`0 VP']Ad 6"00*R䊽:(mr@ orEe;STy< ;-΅0}E|"zkKi6 %8وѓ}7gT;CpXVGaX0"5U$ʼܕUczY2MGMk9+YaYV\F]? 'oNU1~ =?h4ۄrH)C@cES)˚rixk%1>{ZUy=4~\[25*,gq_!neX*R  vhگ`K_a-)n4voo_A+_oێB1 pe)>djML:&t3~爫t{`Y`z0"rP8c/2V"k`, :OYFf@"1,GS5xR|ҟa?gem*d#4T5?gFĔѰRTJJC gyQD!$ݾ&B*/ڒk>,bl׸D`?PުccO)F:i9x /`dʼn $h0夥* e0;eyR`⇛u̵qnrѬ'Z)UPHiĄ_ m(}0 c%l4x%'QO1CNa~C;),/^ƄnWVt-Bjߖo{\Vh-oz`Lyc(JƬm8Ymk2.՞ָY>Na3\*i<txVm d6[#p;T+H?F;ke+2tNDD B6;:)I+Rŵe1hьn$̘vPJS@u4iR~Cx57v$VclՒ,sx(fJ믽;j-n jf:Z(zUu<3G Q/D¢V>k\z' e%NW=oh0¶U%; w Q^:[\<+[);hϽ%4bJGUtV m;z 0* 6 uPCL٬{Տ 2@f_(ŋ-ñԾ@KJR1%/ {)Ƒ= i3{> 1 ՙPE2yRcΙ0l bIh@9_9R,"kƽ3b@hRԟfSlɨ1޲䒃~NUnem_85Cjt[R,g(0p{-N`&E'oPOI MJHm-(+TX>[HEWhȪXojb j%Vtvȹ~!)LNmyȥ>,U=lmZSf9Ã!ѣ'nTm-3Y -fndYc&%0B:RTy}8ɵ:$% -X0Ey@RBlW )a`ԜstK#kUPQS';e(%'+@PKS}! %setuptools/command/install_scripts.pyVK6WLSUm{C9-dv%R u_AQNAs8|vctnt AnʊJPu!uJ[98 ‚6M@cY/;ń^m2 OmiTy"r* :Q 'r@eGe- VNk$U',t31iAiӋ&ѢЍ䫺m)Ub0_ZNlw&)G pӕ,[f4ցLaףkdvC8FQP~Wjkz| rK>IFl rMo(F,&`lEim+; M̢< qg/ to)ϟXU!<;w82Ī=pdbN:3C,V=uOe!SͲJ;]V/IHFY`qUƅBF 78wVuaGB~kpNmsuKsx/[ZrXoEAn@|KX^xfmT 1!f &)(xteF첏;aZ6  ri[pЈ#ݲ]VK˞&̄x >ɢ=Js?Q.YCzIé\%{iiY|"wwwPKS])B7t(setuptools/command/launcher manifest.xmlOK11 !]kAJ҃B1;gɮooRR*&\ޛK g[AL8 ]%wPA.E覤V`% zu۩$;FYt ^׾ڢt菈j+ 8GTh1RM9Qpyk: }U_ڍoy= +`iV2DPFZLFQGC&pg`m4xyDV1PPwq\KazRX8ܞ,ʔ0mzBhU\CY4wH;`,AZ >Aʇi܏pdW$v`uLwhq: Mpoi ZB%q *& _F +#$sDD &$\]J:u~∎Yo|T IRD]ˑ ;'F4g/8⨋ZV鮎x' {.K~]B9ݦҰ.Ĩ 6}iy)Ubz YWzWJd+k2D"i5Q^ @!FgH#/'+GeYMm/i%_^sj -x/z&RzF9U hmt{fN.2h_TEcݳm7:XDS)ŌӼoߙmGšc$x!BeCa;߹F?|Bk \n:!#⇌ HܢoMyaB-6 0dC0=Th6VSN=z@1_%4m[viҘܘ4+&8\4&G؛eURۿsC6,Yn& h [&4a$=QwuM-fA(ިZE=ͩٔlԕ`N+ez9h~-6}!kꮴ%eD2@ kê7tη2~67(V]nFg5/n0@'ًoʳ[h8Izg.ވ/)]o7K(lإ pJ~/WCĭ>9)MNv%n/@^|jorY~> <}W}bXݷG,3|?sY8L]}.iERKO+WPKSvsetuptools/command/register.pymAN0 E9U+F+4HfTqк& ;;< .%98Lӣgzކ0NRCMJ0/1Md&>`z[~.=T?۔UA[Zgb<$ !hw;Xp]/FnM6*<>Mq&,9??]ba3h"sLm5:C<5]R#-6 c]wZBǧfubwDR/PKS!Psetuptools/command/rotate.pyUMo0 W KP uu] PljK$K(9Z_$'R9{8XѿS'%V~Kc,5vrx2k0&7q㓻dr3gbV2I΁5^zd1Zi>a4%Ȫs:2&ѫDWX݈^;kxòR9ܔ#[E)}iܮBUW (0ZC`Ea'-I䷙NSNZ@&TL`]g|jh)ktiOp^(>;?dc (v LRDXM9PNi.#΁D7;܍ayNM1N?Y/Yg|s\+ΩSIJc9)3;y6ty3糬m7}?RI,T7<9͡A ]QSmZ8|SFכ b>gƉ\Өic0)^QފP 'zg"QH,҇2z294Y3M~?;󱌱;YtkP;W ۰D*ǻ9T*C7q>%uK PKS4Fsetuptools/command/saveopts.pyeMn0 ¥r9EU2!0UUu2a4Y!9:x D [+s/.>DPQzqxF:5f;TwB!t0bU"0 ubPM߲^|TnikH]2Rdx;eM]n&U{Y(i'@[Xc5ܕN[- Օ=WVPKS: setuptools/command/sdist.pyXmo8_sPH9-dq]æ8[(Dl$Q $b EPygfժb44LVҖjw쟥*^# SZd_Umŋ-l"p86z7EbҚ3yeZ\']G$.y%(:cY,d]0^l+KaX[B3 T5U tDUzD*ЙC(Y[GFضJsxɞܬhR"N~RQayɍq.X v+ zL۠wE6YQkPXxf_z5ђݨZ,#2ع2IMXLtaD5G0"Yh.GQMV V-w bܢ :^> JL"  #p*rYŚ֒ su7Fz.܏EZ8H'k&%^䈅DُsvPimF2Jpco)P{M<#yLJ "Xs|@$VSeOY>)Ou. `a%#2uDÛAZZIu'{Uh<~8wT]REo h Lߦ=5{M d? /풽n j7u=IC`nqL?UC}L޼{v9MJ!04(PiO9*J w2 :ibrZvGh"~lZ2wZw? t W1(聎fĩ7?l/{eP~ fP'C}3)Qz|3 G#P݈ՖtRjѪ+>^5Pl $5F0JVUe4.pt甾 UL@H;7=tρcEV Rٴ,@DO%c)d:Zi]סʡjvv4O=$t۔.{NZ0@d/r@'n7u?a'ٕ|zbS-|81Trl#`dSʸ J cꨍPBvhaƲ-Dt}[{"'1=aCպժSNwCsRe '6?0W-lB`%hAZsDz "E ܦ `<|' ^}b58ͥD6+ 7^tDž 7lY8ACCK泐gd=E"$44 Oq)N[< ݵC#VZ+=fT]u/. oK,GDc7Y7͘Vj_T8 qIbqu}wzw#n>1QH:JEBᘃ{ό2818FFw9̵*Q0qtm2 `w&Ag9%g~D%{<-`ziy߅Zc}Sa>\|e:x45uϵDD9\{*#4S]\0(`HvrMu+&]hWnܔٌG6 qmqm ^C)6>;nV%jlX`iPKS. nsetuptools/command/setopt.pyXKo8W Ib@v!dZln)DZJr$|̓Q*5r^ 7}'RtCᴪ9+Rwǫ 'x~ŕYs:E?TH&Vڂd]75 m*i]9ّXkY!1+w)J &_V%|mꮠuެ\Q2A6tzvlRِcgb;#h`OQ827$P;/ݎJ')*>+cjFAtU呡#-ddoa3K^/ęDPy=y/Jr(Bow)-3BnHh+Tj60#X;pQ( jȍt@ oqhAXJ)[9Ns6JO f&0%]ZBNmt@ӐP~>{zN&LwǪ hմ9<ސIDZʠH4Hpe|`Lisr`@n]=ɽ[{ag7ܵMXnD; 2(>ka+3P*GJQ!iHhӲ|T8us7#?xMYl-fH`g(̺͢cPYVQysfa=;͌h3HϕXsù[t~pk8W{]AgSOyK~[m}QL e``%] ä``L5ϸMcּ 7ջ׶Bp v"/#o&<5q|@/v6CDuB $~]EWlCQxUGx3.֪>yQTz$XU'o3"}~]׫oɝ>c>%RlK\qiՄ]g,;+g/Npo ٶsS<,TFi F[Sdaڹ=ؽ _g- kZ@'oڷܲμ|PKS$ setuptools/command/test.py]6ݿ 8|Hڴmls8B%ˬ,̐(JV&9<6JLtoмUmVV|m+Wd+tT5jٶ´VGVJvL&V0wm#.VV =hv(^ CQ.yKU]>JW oڣ>FvAxVGC2E+OyD-Ǐu]j]C)A. "t6: mWUQqcok` ,eEس< W\῕?0B܈0,Xac(n\jaN:RJ1q]-`8]ME&TNx!خU1b -oeI)- [:,:W"I#61#<[vrRxLKP=Dd'A *)bMIYSKDvȀ*Ii4")R!42"jѓ7 UX9G"@dDCH_QHu{Y/[rH#]Hď怶ؑ P+W`b-T-۩>: B8 ҫ4.zX.kVZ r')_0'g䯝Gړ`/wF^5^8E'nUv|'.,IɁA:A\fb4?|7$ IAbOQ 6n=6=,ƶ}z"qWr3sj$s<71{|/X3ogAklI$[ǻքxX%W={Ύ J\~ה( I+ sY0X~.ȅ.ğ7eISY*[. ^(??3IjUEN\KmB ] h`ALja)Fx% Wxд NEBsFR<)-x"4 ?"k/EAME: vNSjUgq42 &5ZZj,Lw1;׍B@b_ Y@ j+l\r_ rUlc؏'(mp/9E{Ke yrd߬vĆh뙢>Qi6{XF pM8df[7q`v ꗍq50$Q1rA9W ü@!>֫SMk\deH!;qzlq_7܁v9>ɐ? q1a)[J>vmo$*n~% ;jR*(?b{ \s(2?)a?PKSm  2!setuptools/command/upload_docs.pyioF~@AI. lIhkˆISvfGY w wo,[LFo7|ԅ*ޕuJViE(yÕn4/fUNb{@A435SDDhE>?qv*5ORd?m(ɚ*R8jU 6Py+,vp2)lZ>( ܙP-+7`QvH?R Q6M^촮Ӭ`EiMbv%X+=_ܯj+6uVl6نb|$ӍžTR͘h͢(dUvvsNe m xOrL"4:zXX1t0IXMx5΅8#~X7( 2B6J l >EFr)+9-W*s` 7ı1DXSe:H<]DʷyM#4ɐdg$+Z82b,A0 |W@M館eP}X,k:&+Ҕ\B :xԕf{AӪ'AK# cD[`8t1I,WUP^ V`q<F}¾G41jB/P/eS rGqdː9>_:44+xo9J0wO3ПҐ-!`3N? \:6MZ( SAI+VOADp,%NBQ!ցR b XlaDΚ O? geVn+Yۆu}SESpb\쪊!rw.B'Kn0JҒiSM(%S3YyRIo TO~Xxؤ̟RKƼLW8WfNVÈcr}[_ϴh)ʵOt]CT%䡩`#zD`,t cAxFOb {6 ,\aX| RwQԊ~eҼÈQbcA4MBk?^=aYC7)=g008F)'TV.,Vӣl ZFc5&&HJ*vW |lvh1! zp4#US v\ ޮ秷翜Oo_8|~/Oߞz|:|a1V\FCSqfUb:`1u1Bq۽ܤ `=^~\N藣@@VFJZN'}WF(R\'QKIP9I|bo0 jZ[uhn+MkqPZl8<׭ȍޭ,ɢǡka'wzGD E71Fr%xU'cA^&B@G9:GGfXJH2 '$&տ5Y(}z+hzsd9 (:d4ok;wB=$Ʒq9Ndm֋]Z{'j)w|HY\kbFLН Ru.fzǀ#؟Fup;o2^,>#U3F3 0FЍq$ tz}V*۱t!Z`%$5bHug Paˢw n {FR0( ײۋO0aṲXl5 W1Q0$;?nYNg'nD][M(eYd|T7ڹ=c7bI2;~LƑ\:iCDG[T(1wImSHd"bO`@RX 5e ˭sٗWv 6Qn'ggl꼈a_@G0=ymRtnn}@%GV%@ Ėt_YjMQ DyvQ" ȵ7x !p.8e&j)k{J~D;Kynu縡h[1g_ZJߑW/;U`qPKSeg setuptools/extern/__init__.pyVM8Bۢ\bW\V$n 6L[e 'nu۩zzU9XGɇf RҒV gНq ߲>^b ~>1c4Z(5hbܣ6RC8g3szq. T_o5[-n> UEy73ۀr<2߬ny3zlX%Z( xfOEXpaZ{=s~$c$0Ӗf3$b܄$sV4ŅMQ4nT3(KSQ)93# g Ƥ_Hqكn}Dc tY^$=زá6!2;N lP Qs}KUE@Q-= Ad|j [M"M?m렗OLx]M](o30WXֱ`a'I7&,\Ym_l_ނl`sθkr CnuByp\H1Y5BwmxN?4 dFFkG ;[ޝɇgHʗU]}Pyx :DefM bӵ:tQu,8.ʹXgҙ(VXlyJ> ȉ0r;Vlobf(OFvP0DuAMj&Zn5Z s:.,HE<v9?/`bMS%2(_ԇ1)聎:%nPKͥSYď`#setuptools-59.6.0.dist-info/LICENSE]QK0W8RDy,nC9fYy*(6E;WHg{ͤ:SWz &0VBpXuz;NS=F%pM zW؉h|k75(p2H1puu5Aَwt -N"n꽵b&ZHpyxk gs@ίξsG9 . tkbbkGBa~b18=gp7ϐʅ+uo?M;^%nd8ɇwfc.Q#RkZYf"H`/F 9Z/[YԢ@i&e.dLOB\ r+ $"|%si [KSZiPrmd˹rKU ϐZ؊,Qk Ն9I1CAʃOg+*w) \n?E3FP8~*g)ye%ZVhBzZ'"LBYh"8B]% !{pvG0܎ i!J,m h*>{[[cϰcW^1*DLd4,gA]JJ 58!09hM 4c"ͩ(yT+40c214ؠ.NWG4u ;7P_m-Hi$vb),:(\7I53!E f3G >?8z:ل `7 9ƍv95 ը^T7 ;5'o-7'gy'AS$S 7[$I"٭Qq2HD(2Ü`wgWW?exv>~m,lC|~%҉/ D[f6*.P2=1I :t?R&li,/YUUzi8-':;Lzj!vh2\c&ss2 ‰nX ʕԌM;+d<_&,؈6DYfb֗N%A sA2fz?;]x ڡMBYS1VCn1iy[LU?~Y,>R )l){ԦRQ y|r{yzۿ8_YXuBvZi8ڒ~2z VUdH h* / F{/5r mXAw  X@fܐ.A Y}YJCb;sQf@k.ݻg٤W~ˡZk\1i)ѱ|Hwp#Yo2!s3XZ9Ľ0^X*SjPKͥSP2\\!setuptools-59.6.0.dist-info/WHEEL HM K-*ϳR03rOK-J,/RHJ,./Q0363 /, (-JLR()*M ILR(4KM̫PKͥS $|L ,setuptools-59.6.0.dist-info/entry_points.txtUM +4[ժ='Yz}b|\y NaҸi(MJл`D'kF~a$xKB0kz;jT43=̳$np u򴲸evBa-0HU%/Fn#*nYCSvb J]yduia(O`qfV#L /b|ZXN[ىζ< /lƶeqtt`ځ^$" 0xeĢT@ h{£" UfyQѾA{%{"NYU$R/2+hFPMJ#2HQrΠcۙެ?:hNgSẻNFI>(wkayBnΞRԈ~|;<;lM݇ك=HOѝ7"хmjC]LHQ8r~8uy['x?,'E;UB!)C%AƹĦyh׷B) WcPKͥS;*))setuptools-59.6.0.dist-info/top_level.txtA 0PP\3z9.1J;\A{#PKͥSp,S7"setuptools-59.6.0.dist-info/RECORDzǒX徿-g̈*h$@(l%"_\w?~ܯi?CZ@Ӆ~ ɮO\_FpZFwZΕc z#]-yo։NL:E'qh]('5B 3VA},wi2򴿺sK&/,5y?"u<; 4AORN:7NHz®OSZnQ~AnkbZJ ei,Ĕ&jTF`ށos |׫׋y(P8ZH}-d$*y9"x=cҁ8/I">[92 yX@c0tw(EDVkVdMIyEE )Tf8GAJ/>y`kxXQtW1h3!vrAH|{u/Rf?~6G{+_ ɀj%VI@T鋤edgXW~Mt=mX}\YP 3,}pDqsKdW^iy|9\\T3/`Ӫnu2;%{՛ho:$^Swwh<͍VR MC;T&5>^RbA V.b{\5N=rN)3+ G?}Iw3ezLXJrD7oMGFE'inQݓ3zD}3{a D]Xcb{0z4_>pOުއn0WQ85]}%eS6-RYWy>a!r uQShM#gG ?8,0z.!hl~b.#!2ʟl3ґ;xª2"kU=ڗ8oS5:rٳ\72%-ϒj>YU 6ic-5{&'[G%Mk]lVql+zڒMRJ%G_W\9X9A_-}k^(wWj$u!nL]GNdQ Q i.U[~6 Cj`.k s ɴ=R*.w]BIa/ y X&|. 9D0Hc$dB\: yAԯӮjT8th}{vk^;ᬙ2[ߣ9 U[/<>!jAXثjO \:Oov/6'a\@&=ƃ{I-x"3{ &f"לߑ0z;4u1رګ xc<`zY0Z6F|!XaH7y@9y3%Z+e(H RuM#غV&@"w0HB751=vܦ35,bdVzj6x#74^XaO=Ȁ"`$")]*5JRn)ޞqF /.=Ջ}J[ӊo 5k\P{⨺ј9gM&j,sjA$HPP?K`8^PByev"'z)؛2|LMFi. )av0~PoW8ݲh9{jQfo2,htv6!|c!:d\nt{ j`Ρ*JArP|1?-#F=Z[xnq/6Ўx$A)r}FducMUoFm/[gB[iOBvLtCoêPRhUaEp~w/*|?}-2퇴uq,c\V1;#wٻydp: ,@ȡ؃)}JGq`GnNu|%40RnbIa1Q=l!!/׍<-]fG[,v"m&(=3( i=4KlɸSՑw*’)lUSw?LeY0fޣ}b\o].$1e3𙂉oLI&rTX|_T"^Gݺ¦wQ\oadO184$mp $Սy.oWۍl8x/ M[vCrG/[c 94^O]{o{gG@88 q)GY5ػܠ/gDiK X+~`@.>pWۯڤ.tYhhFjsŹK, @M!P,2|KFn0H}wxiAeR4*΀(4(8YC|Km[jo42[-}L(ou3e;*YUBM)3h%jUU0z+_m}|j.XJe`P{QI: P'jFהϏ<21a߂^˜ ?f zDSo\!U\^5 plyE`P^֒szUv&7~鎿F~>܋)P1q-&p2-T6gG@w$2Q`!^YoNfFUVcwz_m4 {;9a#gM̥=X@PG|wemXۇ$-MQ$(aFy;.{Qip7f:yrjM01*9j @/yz2Zy0P|ɇNkrV큞ˡښ> EcSs}ڋ 4n{&cDkF3|rU8ʁ!k{G`-Í<{V+<vQ@-4D~k17,}\][}gފ͒H]QU6*zQ" /a@5HOsm/ ib{@/.FŸz͞x"?х~ڼ蹜w}m9O0+_l'<0o[׻~a9Y߱sg6simsD L`Z Qmu$/bjZʗ򦍗}.o&Y\j揽P- ]¥ ?'߽SO {7AIs=DͰ7Ԉqlp] *ӛߨnWera=x lHJOw?M,>O&aZAnL%>[-կIVgĪ @ӪH`266yy{ԳwsW~з>gO{v<Bh@rk,S Q4q,)HtoI`z.0@ Ɇ Y#yƃVd}HO}6uAL7@Eq@a?HQ8l2EڬsI 7w&RUa{7\Ⱥ,ȭ 6 01ဋ4Z(휩4uzw0w_Uvں:tiuDJQFbgg|ゲQ5"s?/)SL=T1mA^v0 "?’߯;u{ܟ)?woc$H)f-~ALXm;'M/vP9?HI#B,l(zgyb+^fv{ $+2PR@YU~k1{'?aºMmDxKmt^7ņ{ܮ^'שn>:SI}$ d`9|>4)_]p /iy>w׌%{}7%F+=q] i`CǾ 9[XZ~zR=i<ن+;b/IBUba'\%l"It'E~멏hT #z %(&.mQdf;$/]uC*]Xc0QhX4WXI\2L'gGy.+kΈsVҶԌiϏnipzRiN)(@L:fh¦=>dÙQCR  `>Og8h ƻk(G]^Et|)h l.u/9nnՌƷ[3E|Zg2e6!v&n setuptools/_distutils/msvc9compiler.pyPKS:kc[% setuptools/_distutils/msvccompiler.pyPKSv# setuptools/_distutils/py35compat.pyPKS{# setuptools/_distutils/py38compat.pyPKSs  setuptools/_distutils/spawn.pyPKSИV"M setuptools/_distutils/sysconfig.pyPKSQ8Z0"u setuptools/_distutils/text_file.pyPKS18& setuptools/_distutils/unixccompiler.pyPKSH^PK setuptools/_distutils/util.pyPKSN32 v setuptools/_distutils/version.pyPKSxO) setuptools/_distutils/versionpredicate.pyPKS;*)"# setuptools/_distutils/command/__init__.pyPKSn1&$ setuptools/_distutils/command/bdist.pyPKSwq1++ setuptools/_distutils/command/bdist_dumb.pyPKSoY"*\1 setuptools/_distutils/command/bdist_msi.pyPKSd]v!T*T setuptools/_distutils/command/bdist_rpm.pyPKSd-E>.Dk setuptools/_distutils/command/bdist_wininst.pyPKS&} setuptools/_distutils/command/build.pyPKSv3;V+Ʉ setuptools/_distutils/command/build_clib.pyPKS\%,"|{* setuptools/_distutils/command/build_ext.pyPKS.8o@)* setuptools/_distutils/command/build_py.pyPKS84,K. setuptools/_distutils/command/build_scripts.pyPKSm& setuptools/_distutils/command/check.pyPKS,V &M setuptools/_distutils/command/clean.pyPKS7\=3' setuptools/_distutils/command/config.pyPKSK*q( setuptools/_distutils/command/install.pyPKS  -X setuptools/_distutils/command/install_data.pyPKS(? 1$ setuptools/_distutils/command/install_egg_info.pyPKS*Rj&0 setuptools/_distutils/command/install_headers.pyPKS , setuptools/_distutils/command/install_lib.pyPKS:0 setuptools/_distutils/command/install_scripts.pyPKSCho+ setuptools/_distutils/command/py37compat.pyPKSt -) setuptools/_distutils/command/register.pyPKStv=J&S( setuptools/_distutils/command/sdist.pyPKSjP ' > setuptools/_distutils/command/upload.pyPKS5H setuptools/_vendor/__init__.pyPKSD*;!sH setuptools/_vendor/ordered_set.pyPKSf]wJW setuptools/_vendor/pyparsing.pyPKS!Q8AR-+ setuptools/_vendor/more_itertools/__init__.pyPKSahy)p, setuptools/_vendor/more_itertools/more.pyPKSʀ8?, setuptools/_vendor/more_itertools/recipes.pyPKSYf) setuptools/_vendor/packaging/__about__.pyPKS( setuptools/_vendor/packaging/__init__.pyPKS*:c,* setuptools/_vendor/packaging/_manylinux.pyPKSo0* setuptools/_vendor/packaging/_musllinux.pyPKSqt i]+C setuptools/_vendor/packaging/_structures.pyPKSXQx -!' setuptools/_vendor/packaging/markers.pyPKSX\, setuptools/_vendor/packaging/requirements.pyPKS4dx* setuptools/_vendor/packaging/specifiers.pyPKSdx^=$K setuptools/_vendor/packaging/tags.pyPKSA3h%! setuptools/_vendor/packaging/utils.pyPKS 2 I9'2 setuptools/_vendor/packaging/version.pyPKSR/f+ setuptools/command/__init__.pyPKS=/M %, setuptools/command/alias.pyPKSut@/ setuptools/command/bdist_egg.pyPKSȹVC setuptools/command/bdist_rpm.pyPKS!1? E setuptools/command/build_clib.pyPKSIV3J setuptools/command/build_ext.pyPKS?z /"_Y setuptools/command/build_py.pyPKS&ddc setuptools/command/develop.pyPKS7l setuptools/command/dist_info.pyPKS:e[N"n setuptools/command/easy_install.pyPKSnKbf setuptools/command/egg_info.pyPKSvQ1*E setuptools/command/install.pyPKS\Ҩ+&q setuptools/command/install_egg_info.pyPKS,,#! setuptools/command/install_lib.pyPKS}! %K setuptools/command/install_scripts.pyPKS])B7t(? setuptools/command/launcher manifest.xmlPKS3|R setuptools/command/py36compat.pyPKSvvsetuptools/command/register.pyPKS!Psetuptools/command/rotate.pyPKS4Fsetuptools/command/saveopts.pyPKS: {setuptools/command/sdist.pyPKS. nsetuptools/command/setopt.pyPKS$ setuptools/command/test.pyPKS"]K!setuptools/command/upload.pyPKSm  2!#setuptools/command/upload_docs.pyPKSeg ,setuptools/extern/__init__.pyPKͥSYď`#0setuptools-59.6.0.dist-info/LICENSEPKͥS"wc$J3setuptools-59.6.0.dist-info/METADATAPKͥSP2\\!B:setuptools-59.6.0.dist-info/WHEELPKͥS $|L ,:setuptools-59.6.0.dist-info/entry_points.txtPKͥS;*))=setuptools-59.6.0.dist-info/top_level.txtPKͥSp,S7">setuptools-59.6.0.dist-info/RECORDPK0LXPKx"T?virtualenv/seed/wheels/embed/setuptools-60.2.0-py3-none-any.whlPKȫS}a~distutils-precedence.pthE ~۞Bĭa4RAmPpm/CiWAػIFm'Bvi&B>b-Yfۇ-[I9+2tq,H]$2"|̴d6Z3*B-1LVRkṌ ̄rLD.g0gE8?;?e8_^ $ߚ&|{|?;sBdzG7 CAB@- 7RaQ"VQt<8WtJ ha8cbnh IJQ2rx\t1I+6`c\r d"Ͱ׍6h~_o_/on~ d\[\Wڔ b/#llFI`(-q9>M)1˞B>PH$1VJE|u?-Yވkhݺ|TvAR!1[9 ?r3àU'>qP, Cv EV3le+A&&͝KCёEqQű}='l<'%҈d,zR[o8(η'<9q zX1[IB;f9713\aQ]he_,؎64]gS)p{gMA F;$Q-1Kx*3ڡrgUdxB2UI+y^$^]V E8[ 3 ~084/rpXvmjXgrNGȬՂd$!,vk3u*4!,.Jg"/[3,.** 0)o_Xw[$2KSph+= \[z9 ۱p`!'%ԃb){N#fkɎ p̯2 %F0fް>: e ׃݊V C$ΜVl+\%ZQ'_zIAL"N!R"yej ^aHgj \ftPx+Mwj ɣMp=l8nuX(|wXLҺȉC oC.6d,ӑ`~vvACgItbK:'CMIvth@uݟUAΜ5"vǮ]{.f7U˶ٮgeSߨj"[4WլXdբfM)g溪Af[ۋy.gf6l.,{w]j`,Ya[.e{i}5\Ю-b#ɦӇ8{P75x_ C=ja,ϛ g۶̚6ͪUS|yYj`nX4좬+I`Aa5e[]Af}ÃRݵrA^^]qVl[;_T^lYh.̢ZVBŎ>tZqEmM^>,W1/0}XìݮVzCNd^lh:=XfrTKj_jYkf*]cɿb]ʻp.5`[p/W7WMpCm5l%=k @A|ߤj7B.ELYS׵b &)?ln-Ʀ\c^7M[}L&(3FwYd#oAaV6 zt^7kns~gKhuQ-΂eH``Zx |!jdr#fSV^4`yMC21Do7@{ƀdxZpfU}C {_zn-J i 'aEqP8'&byPl "4poE-4Щ ^ƕ\e`b>@d-;AZbkv.>-ʢޮZ&,g! Vx]Й{K^# ^wU3g7΋>|Zqt!Kb@E "Jw`-_?oѡ)h:-6@{#^]nKfLQ˝ bYp͈@p_s҉18Gx]PgÛB^E5292t>9O:ef˜ 酻0p%tK<_\Q~^]c!ێ^˫b3Krp0A 'Yw~=ȂV_poWslol#)w-4gq4N3᎓|QWQn.*ePsp6 O+xd٨UGEZvGAnf0!šиq-aCJѹQ_MezZ h8A ۇj]:^DW=)i,2π㡋D\޺Ot-` %|jܗv1G,r[@|^$Y 9.J~!5*[r7iȚ#}7us#X$*35(7 -.EAt2'u L:^duy T>Qe`L8lŋK޾YSϫ A]Qo ڴ5DfL!6muh;794^ݤb\lE>z|Li澥O˶]-7m5]ɹdb}[Շ7΀>ddA>|pB.Ξ|v>gjlWG {/bk49Ҧ dC;E[ͼCk/f{Zl1'l]6uH@|ePaY4mˏ*|̴vpw"ip!ť5T{E^,p Hh d=XY\2z?Ks-v{LwU Ľub3AF(u169 pdOJxEFABuh4mH82G)xPeb󲞕x37~_|oϷ}Owӿ~_>|-0#&HqңٮPe,C{M)Pоz$CԲicݏװL*s,2P^n ?󹷏Z4POu-'(WxPWUڮW2$ k\p]-NE( = #3tO/Z&.lG,G5tnIƞ,F\\:5>FF28u/؍:ȏp#8)=“X^ 97cڀTt羛uf9.l[D@0\z4|y/ ϫ bA҃&e tmLU9has> Ӡ+`*k;Q3O$SW?yjhAf!':TUɻӚlU&<ޠO? 4cS@Wh_  ?>8XxR NQ;UqlwMzgj OyG5?{ [8t̷9Ncә 98̱zv ch@80vBWĆI";Q!~ u%bǚ \:D8UKwHJKcAuϒ:4"mFHP1hLsR>.fCGaM Z/a@PhIƙ#0LlX@S=QNec?SNЭ,P ?J1 רݶ݁3Up=|Kbïu=|֬˷}!> |D\r{ (.ZZt!&.n̻Zdo5i72;a: %4nVP; `XϮeq~nng'`KO&^뛟 Pƙ3'Ve>=K,Z^3,v M(~fs࿦ӽDbF]2 %wHʧՕrbc:Q#ާŗ9PW8{(g Uo1ch6g)=_#(fprT9TWo60lw v''ۣ,ZBі1Dއfds-QGj{n{tŏw h/[ATފХ&gJtex|fGȳp~%CD<&f_+@r=g2r%NgglgA枊#MPxJh|O\3o:΂%`W/<~~}/cʯӬpЫ"9w ɵIv"uqR/γ:pҫeݪf:ɢN/MnGI]Ig8Rg7\\"Jv 3P P!r%ژzSaHГ!V58Sy glA{LNS6m/$S4nECGKԫq6Yg5 Υwf.UiP!GejbBA0<]bW;l;8q.ٹl:MKPXM+,Agʎed@6&@顲 B=& tvfQ7HԨd' BaL$X{$8thxbsFnJ=돣rӦ1Z2աjȻ&")!1mŚpj =wLEUO/?$F)Atφ;q Ivv}`iq//MLl1Jp)Q2B#l4 {\8!_h9/7k rEz|pciǝ[la7mلD3k;ĺNQ¸ql$>N`uIƷJy ?V]v.]Exas%\8:};߅ $U˲it=s9}])R rQu:.G!xfQ}^-9eACg|UlL6xke\ۇF)GޜxKmGk[9jS\ڮA߆cA"O? pf#2b郳'V>DTD?rB|4өFYuoW`i7:&\zH-waȘfa䮝XTwD0` g%~*\.l#φ+ѩU*I)a_w3|ZrVJ|:I͊P$)1k^ԳM z:=g@'xh $n(${~ͭ6vA[{BޱTҐtixٽ({Dhׄ+ x2֣cU:6rq޽x]'ⲥh3l89.26FjQe饿e)Aҏ/ Fwtqa9ƕed长щstC8gڑiiyrcLWle7,J5MbYQ>Q#=:|Z"걐m!5fghml'@O(-+rk4-aDS+,8`( &%"{GȬalJ¨4nTE:,5av 5P +z{ЬB^P^_:FhNJ}/cTg ̝-Fim RhS#uz$ HGs5"1ďIc]mTE Q#ڝMqmP;:߲;) G-BF<3 l P-'qF?)UeY6ߙ ަ[bеG4bMEFy 9 Uݏ@ΓLAsrN158nìss”Xr9A0aɅ|ẃ*yސ:>8N? `OǏW }D%Oض Yg<+Ѱ}iQ`fІ<ۂ|"|qxDPq Ir3>Iā~#B¦<.^v|[8 " iLrWQi f}{dDM`f٣fq1]bHu﨣@PGPq-DqB6lkaoFpUnIю3Uu;&}Z^?r.s}!5] HIw ~ C8[ 9ߜ>yT2( *?dǏGcL.F1'q()-œou lDZa~GԛK N j$j~8p/kN<1{ 8VHz6A3A09>pXDݶ]',ٿ7~2xrUMv'v2g62Q)({լZr[sMvYtP0ɄE^Cbw:ܥσ2QH^ٶ.^'`2m'ABjH, |yqa 3P 9X.e"ฟk!j}NHX!7a,R8Wwck|ú̵#RƼ45$' DHMXdW ;c/K~oüۧ T,p'O1\FHO-ߟWn(BE觋Mz_Zcp8w ^l"3Vȕ)(jAq{Au 5쐿]OAX؁ӡr4k9Qv_KWKu.\+!jmTV1z"j$٭ܲ,8 w0{VZT~i,j+tr/\/v.\x^']@iNFS)B0Wl01u6ksXr%Bn7A6h9Pܞ"}v=y M8LjBL#-kZwu<1US`(z]FL 7eN0:D햒k7Yt~b{ &ɆB9fjau*wڟP(jAMZ7eʮ}B?*n^lu?-,aAm"轆7鬰6).ޤv5tïӉ)(yt9@#HxȀahޙ,4ϑ=8$m `(kr9ȩX wCY'.=^-fN0i Xvtaz$~33Vy_bkk'-䣠nCM̋B/Vr{SôG"P wR8(޹PybV5F1ddC˦3#V›X(iFwfގҚѕV~p28T4҃ ^bXa!w9tFd7ltҮ.D' W yF 0j8{WE1ȑ(whiYؚIVK6XB!lWE'܏ˢ8L3PP|\W mkJGX`"):,ny?{(KXlCݬC8=$횭d3G@Č< H3GD09#-Bb8nPIAn93DEsÛII1$3gw~> •$!&vVRbj_> Kʈ|Φ; !]1L݄7su]U^@hMp59'Hljwklg0܋7D< c.TOGc"aEftOhZ@_+0<42V?6\G UfiumЗ(‡ĸQ?s} `riQynBr4[tL豋E8)2lgt]h&oKY“gRq[1 ۢ Lc$TE3tYı ذC"- Cpz1<~hi5@dUsXL/Σա#T.TM3p]#'Պ=q|2‡NJi9欇nj)lPzV ޘu21wz. O^CV#a>5C\Ԍ $cZ,=Ҷ[8aiYh][mk-=7#Qo5 + "REXWy]!զ@\=ڠ64JrNݚ2uPo05`uVG*#Lk0]ê\Sy—s4@8V6@qr1Cn /M 'B U{tussnMvWњuHxDrf;KJ w@;flƚ𔝨|Ϊ $o:?]k}I-b&!cbV/ލ( ®c?6=a b%NX!Xv NOr?M`l)Zܥ:%Ԛo7ue\LnsS_h~@ع^~7)+\tiRYu-ך?C;v|p +(v!Nna5M.ֻQ!gC YFХ.d2 ݗmOoDc~ShĚj JtU]e=jGͿO:ήc>u3>t!uVg|?!l*45s KM5EOl#Q G)l 51/8G#q:It$fcg5:D#Y6F۬m]Az8x^JG ]<&.Os,5`2Fz8Le5-GNij]WϽW/D1$  NELpZKf_RZ%T&LնX ǔaL\&WV/tl6HF%ܩe[1GspY.j9=3)ܐ2+OdѴDzO^ HB~92ENg)w?g\ we,йӣAO|).^;'OS^͚S̭+h6^nk^PEGARaq@HEOHy>R!ܪWB&+ yϐ'Z4bݭ\65MgO4nޓ 3)שևD ˨ oA햤5!!Ƒy(qdBy#'bx倦]cŽEquK1߯-B~}з2 mg4'?lmIuRiJTr E8ʾآDxc`r6Dy-3D8I)Ie4>9Fs/l1=o i;ACByZXߢy.Kٳ叏fBr8¢_ DWֶ6E%E՟];0Èb_cԈ\_tLSދ.ŋE.Cp*1<zAx8^W~Yπxyu5cܝsQ?Z33Zf>y6MVE^5!:.+oiʯ7̢cObW_}E>+iFW`p>7W{ %rJ*JĨ5fz= MX*? +NJ_o~O/<mrUP~ּ_TWכ-ֵn-:Ӌn DҖ ŵPDE*1>zY%& z$Vg.02h=x(f%,tg4Za>#IXZkTcle-@10MU-D.W#[9[@ QučMnp҇ƘL잱C A˧WWGzyt8#V' WP1/)vc]z2;ÂZ  sys *Nj|5C5\a(=/Wga%ɯ<OVFu 3AċkDpnki잨 ʍm8,߁eGp1 Pڄw4ң+FH#a㠝X3Q_[3֫L=@(?5ՕNnMJxǽ"{_7ba\L x{!_l9NZ ^D@H0\IDɁnd( s:ݔ`,PV^]ѫ̬ERO k5Al"Q 1rWHZA|zqzu-%Ƀ4!"Q\&Ox8C]b/^ m4Q_CC,lM^9~9w 4 Ƃ +ofh]-ZTeJtetJ#DٌG! `6Խ/ٖٜ!X!vJt۹CK7b3ck߽("EP`0au}S0 ։N/ToEH)GF m`nŒhK-{T*VaZVbzTM:Uv>sQ <ڠ?LRkfho5UhN"rFQ(m\JD\^Y Xc& buOARs,V8tO!Pj2}SʰİӰԒQ}F]zنkO$ XQa7hkq iP }~1DՕj8͐,UFߑ$Su #^I)Է/w"}COtM/Ⱃ">%1R: KިD&kN[cFdn?ۤ3` {zW(6Z+LġI>n"` 74w}p'ƿ鲍0{blc# GwX=k"Ȏ4Y&q _5fV[&W&əo킧|sPv5jX 7m>u:"]J>i) clc԰ d1PPx6A@Λ6f=ۉN[x%|?9@%ܽpߌ7߁['vnkbI%,V"Dg0ƞ^ Sja8HUs_+qȖG/Srn 1-9> qAP|sn|׹ZwfG6ͮ pX|C2) OJ9WyOIy䆻׈* rw䤅 mFN2}Cln9^ #w ofG%qKUin3Zϗ7A,1iexoNdetw@MCr¢ 6kًzgI췏\CqyCrآZL$r銎s|&ol+|r> c SANCqZ-$htS޼xw:yׯ޼KQRal"-^T͡Kgi 3pE5JGVX( ɣt`iwRE$;V/D|nI$G8l7wZfy UE+rĈ>Gosʺ1$ ;]1gw _m 5hsh?p!+$nqZJbA3t|џ# }QΐiVf *)v]nLEL+?:bZ`~aGr|7X(uzL:2rIGs>@ZN^AǗ몬YGz_4[$n+OUGlRdx9&2$LtQ\|Q#\jt_sqSǗ2>iKu6ݽ:^cYa|2v' C9 E1D<It;%d5'e5pP >YT-94nmsJS}7;ON*   B23?9ĄFklӟ)HyXmS9$vSnXX?ŰNXHJNDfdhO.0iLXWQ4m/ϸc཰M':=_C4/[λv¿9񺣨vSwj3ŨkxgD 3}CS`l2 rv$ղ !%sk]9_Lprª⽝r( ކk1%_X`!fv% 9͹霄<|s{i*ÑvwuIVNnsL V{IcB2.S${<Ʉ8E$(B,k I9鎘B;Rd >\׊FGGQy)˝&ztUr뇆Y&jrgg H옙P,Ƈ)&`iI|k()jnya67_Tb nk4"?w`1 n~ k&}s)b}߄k dZP07Ga"ϛ]sDTWW6Y9;ʞmhG5/#!o _ބ=qbBhi0S2κ}0S H\ v]٣tI[o}ͣ?%fݯj{墿sf\gѾ(@lbւu{/sU:pry+xg`7sq& FvxF,:tAcli$Mtp9V%T1N&%>1^A֡r8@"͂B, Bɏ?+ ,:Hiٔ#B䤫5ٓt|e'?P$a삚E6 t&Qrcq>=T;Xq"dNG*/y91",?h:sA{{,$VJE,:Hj;j`mة1ՁU#ډ?gdž Ѓͧi UZ:"EbXox_*NLԪ;7 a6Fz^zaXGOF>&DӔd:.YH4+@LpkE^T>mGo dz-͆\h-ųfز\89-Tt _- 6  >8$%dV/膣ؑSbP2Bhj,Avh զ<:͐[J)(]9Kq'"\?$nyPPH ;PѬ[#qͿ'!k".v>v%Ohs.fy~I _6:4?'ùkNVuC߉-/dT*S׺ꖊK7F\Mg=O3u' /IoT6ќ$#R#ւk619}ՙH4z[BuTHPM;1k-ODqoW)# R>{2tX68bvD޶Ksb2'oI< `& E#0 l4LH 8+TȃWPңlѿ{+Q>nԱ@vsLs*rƺ,`YꣂG0k{: 2{bF{9!=T['3:茻ţ(3襷pY^}&eRL|ƝɇF53VaRZ@ :\njْdTO)ij xV `H9~,޵- Ӑ%Ltij\sB;`#$r6]\$G9lPW ]yёӒg[]wo/\qI Vԯx1aD6v(GoG;fA 6hN(ݞz+e-C8z ?Ρi3DL== )Zr)woYRme( T*;@S@ DgD6^C<ܝ &ҙuZ7z= q(εJ{1'unX9Q{3XfBhqL☒[ ^|HK"ۄuIYLOgۛf]cR0{Խ/Tk.B*j3B%ެY^5]][Jt*bф['s nI[k7ŚG="x?ޡG]C|&o %pP՗֨U/7:)exP-K2%]$PZ{8+mq,:e0=ԉX8&ub҉xq uy9nbNRK>ށ]UK@IY4I{X;5 dǝ´ s1t\tw 2,y1FY4 L\:" U1gf5׈Q)~2fت`)Q_9Z&a&$d9sحH4 UԞG&5(#NT-Uvr̀^\s (\v1^[X\8\,k#c`kF>.-uܶg6#FMԡ ? ~dKL^r8"+/˜E%ևΪֳUbqyﴲj]mQ'*$:>7Bŭ2da8]` m'&vORIx>~Sq۝gryl..ܾH:ՎgP]ny qhu0Bg.Mc@3$}#j`\.Իny- 06hj@m$G<_h5,pi*]V' ߧ3Z_`!aY\fxz~Hjh#h`]&۪ɬ%%.Glm׶C(ݼ]{8WAKh2˱0A 3+WϿHP5ׇ~:>(1 NA9oȉaT]MOq7FbUD<;`~]aC7%TU3s)Us`Q(fPbW ß7Wa$Y_HJAAO>˛aO4G4HE(n. Q%_'k TW?itPT`i|/ѣ(G] }.Y93csUf)B=O.C"nE^vdc$VwΓOME tuv˳J$Kqa+V#sB&&P0Tti-z^ʿs"8E?:Q]"їvr-\jZe(zX#ݦ"EvޝkEhf0q Ih䐍WcZր%Z'<阽ߍw'|:6.n`+0q}kcpne)XoX _c8]6)Qto`;qu2y&Ɠ?,_ؗƶxڬdu)'K3:83HE-LQkg_J rZ_uwG,Wc C0V,U@l yc2nUbdgՖ&y3Tw!^DXp)֨q_mPMEA+DtHZ9 ~ u0[ԤpN9T-$J I}?my67T(/rl wwEO$jZû}Gs ${Yj5E'. ਝ6104ś CK8cRhYl>W3ZNlr-(Sp7,'wǠ0?rKqX/ >Y#]_0n[=@ی @1zX>%]\ %]G"ڹs3HG2am"O^mH6WŨNT}$Yc_b D7&HzͺnHmg6Gș t)g0a#[EawPu3`ilȦً7ky ?ԓBz!cceb44:3P": 2 @b2ju! ֧ 1{ =9&@rlzﴍ4>9 ?/<^0ev^\_뢽-W==obq;7.-s%H&!Q&γW/Z#{HK߸@*?I?W{ }ܠ3^PVZh٨ ɤlL9[dh.r#)R}ցȭwIF Xv;fb)m&Bgƨw[[`v5ngo6;F˳lXe>xcVh HPrzT@K*T\q`T2wpwX -IMZCjb 'a1U렙6Kіr=%3'@_Wl7?ڣS6Q48Ř9x˽I&e<[%zF v !S +Dll\Wcp@D`aQ(K(g[XeYϹ첺Z4tRco!TΥp}kf#^BsxX@='a0 1K걟x}U Yj3 ȥi%8PA J2|5V7bEZ8j캤a@0 <]R0%Xcv'({=+RxtdtF9rQ`u}!yi!q#4K)|<=ưLM(CnuJ#A:˞ִ1nE>jDTEXHh|Z75XJ9QE×O@ dCqZ7Fw,ʢEdeL/0;phO >_k)~RF7΢Z^~58zt"_Y K,ʸy$ QQ?rj?ѕn&ͬI>`K58/5= ԥAK2.y094tIa8Wa2'3<_ Q|c=EX HaaT~n--O;pw%D 9>-3eL8&&TCg8 9 O '-ή\d<:i?]񾖫"~>S<'B_}>{m;BdsJ%4P/k+P+zl(\@XBM&#v$U@iFT8̄B2t` ҖYiskM#1:.!\ 7E6+@R!7Yx8R j8NW3,T@~>tx76%şѸ׼s\hT6wmk~2]dөuSL15&~_9bHlelDONOhPв׬[x2ܓ҄`w[W 1%I NA,vJCG!Cigeb7TzFJRwrEI'j$dnfʠ,oV^,~2 g>ep981^P2tr{c N6JH2\S2ӆM8nʆx.4 #\exoNd 4i2,#7G{\Ғ ~n~(d~豝)|"# :%"B6/wf p&Ui `6RbA7Up@ۉjPGi(]L+e=yju0KDK I{e*Bj]5jc 0w;Լ@ 9v—O9A9b5 ޒ'xo)TͰ<q^j9\qTRHMjH*D3𰎲|~ ")t B%mtB W;F!%q?Wzp^ T!&F%/xxf޴/dwمݛs9r˜] C}۷!dQ*CiG ojfE8#7!(&E g'IܯZ@@ٍӲ͚r鏤E1\ѝmSGdw ĤFqbNJ+i1nKZ[bѥٗz*rn{W%M15r'&L)DK9ҋ3/9-q_uFAIdW,FU]Xkб~Ͳ'ý]+J62ېX#H"{&n(WV / jIM}pӬ&!E2%Qf!tbj焒8Yp}@ðO : 2PQsdO ' fw8ZP!ee6 նR$p%3R*#s,^n$ˢa67S0Z2f籨GE9FbCM8פ7\C"E9ʴڥܘE6[r(;hE}Y)M\uX6D JJO-qZN*aR8RyE͸[ug55#긅J\ecE@,%Vvɍ9ƜQ\Lh`W;ffjg kt fỸpCCa-2hÆe˂Q{f9q|^g۲(y=ף\Ʌ?M˛jRYϛ[X, PK\+<`v'_vS &$YM:Dn(`(:qG{Y7}x$}q \:Rs;|MUX";ߜ{黧LyNϾ1yR ߏGg_# %pjtʆyF"xҞUO9k,v)_DeQ-Xi.MTa&/h}kmvƉ'֩4tr,))4Ly+IyptceQV媈?d߄Gp b jdHtv~ő11bKkCo]$dغ7&a_Y!: 0)?T e&h2_r*88g;V53-1M۲'ڣg$: 77ޕQvuaO:1׈Ԓ? c$ i+_JI$2B&F Z4p;qP߾vÉ M`X9J+i2S2EqPcpؐ=/'2ZU`~I0Sٷob@G=<&C0 K^#.DdYmg=#ǽ/6>'Ǻ`\ǟ's$SIbrMzA{ai'S3}7ɹi;kNޥ}.YL=$tZ=  W%t> M Uջӯۗ_=ӗNg4䃣7r}GG.m3Dr[Sl׋S7g a'QDN-L% E|IYbO>dnv{b$ ݌gSZ1}iIӶ9! ՉÁ>:(6Lǎ?GS<) bGaOLÔF#:dn. 410fvcp.kt*m$j`GltI͞\_L<0nŠswi:y: S<?]Z!Kelr}fȆttrɉx4i _*Xf1?&L&B pTuGZ%I9ZF)H&uA^3դ [(?bmO2-B ?u6H9e]57{P0i,.z*:iH s(dA"x{(bOOE%Żk\8+m{@@ٲu-&D)MegH>ˤi{jFx [i/{V.|׎,|wZf#v04K~zi`n pj"I~Tn/DD!jX"k,B3 ENN\b0TE:-B×^^S26yiuyO+a9v_rDg=~*S[!?ĽVfxQ%R Ί@PL#L znx?H4=cN>-ɉTYA 9oV+QҊx,JXRKĞ*I9183Ż`5W eG+K9DOSdvD[O;3/N> "S$$l`~chG2 + C!*3dnj 'APKS!pkg_resources/_vendor/__init__.pyPKSaQ}` pkg_resources/_vendor/appdirs.py\v8GLt:83n_:>OP$1H-AZRy}}*$AQ;nwwPP(Cߚ]/hg0 *lksa ,[?g7Ƭӭmv oNY+',p1;{כKGOU*e=ߋ=.X?X<y0\'`K=HؕJsbfsäkᨙc ñKM| s1zu|€ML!\-sb=_veL.8b{Q(@HďmG;['Z^< w[r>zG6 iB7 &!5aEC( \>oxy f"棦#&pC|t&'~y8a4hvAǖ"^tnx$NN=izW%D5Xqp^T ЗT.p=gebIasGԄ7dÚXLj/΍Saj6ݏ8#$!wq0 uW{PD80`>\Z3cp#6*5p` 6@@Rd ࢅ` ?t6X1k<z] `t3Vap\[{{d,}ObW&({@([ZW<% 85u0tk(0 N4RQ_Q@`:0['QﳱQB)0$u.%t#K_iD$@3Dž9sS C;A)^g.VHb>D. e;cF8==W~\qY~J-*H3IdI 龕}P&ҧ(iM8Xrqn.hYƈe7`-Q?`%+3mK<ØvBn ӀKZgǯ; Wz}qt5D(7r)C<E3qz&i2&ȏpqIh'Gn%SƫziIh~{zBR4_$u YZuy̩< V5 (`[l8 #J2QohZ E-!-Jh7hS_؉`T +LIz%MF;uypX `:^{r G01gj46Pm?pҨv| rdhU*&jd)'6([ ѯyǥQk~IB!: n ~:ک߾X6ņ^, \8]7~a_ V3@7d2gvI_]Cc!NBog!D K$"FKB`_S gk ]ysqbm^mzۀcf#eL8* Dh)| 'Y~ʙ >xjG35h uZ7UZA:9/΂` ?*yVS,312jgdSV 7x?bo?,*g!veeAqUkf, ]YB;7sLp TX,ɬOs)F2Y[j\_vDX {LÏiX KaYιb kkx6A K_&%ůdL}yk579>zr%"q|F^P-(ͣ߂z5嗱 Ukf\:*˫1GtUr\Rf__OQ2c=,Y@FJ n_)#R6`V(愎:C}cZ>egOkog-ctno尕-k[ R5+\/Djtch>Gt)TVbEG39)H.-X!ަwz+3ꥃ65:K5l֪$$IP0R~fL {褯*>m qkA"qbfm&OU ۶o++/>f,md{+*bRCnd)ƚ[dԞ[W8̊TP^i{Y sU)"xE)"ER5>;b9ZN7rhNr` =Xb+P@,pU=ǰR><Y9i43B43ߥpdkFG(fֆ9sGa:NfeHKSՃ;B'ǤnEv)Ft7J@%A4t-;%I  L93'0ܘjXj;AySG8 G6͡L?\tYzr.?-\nĝ<7FD Ch댽v){l[(bT>nå6?ΈIXA:-N{T.)B, GYw_ ?,~ݤ,Hl _Y:X][ݝ'Rƪɭv&2E6Wu^cRo.E{J/ˈFn{M2@k:1%1&Ks\VL)I/-PYSZܗA\&7š`դcm)/B9CA? tF( ~֛y,}7#yhI½K[Fq*lBQhAc7fk4h9z]yY C:n÷ھlkb>YܻF iU ֭4FtxI)ڱ( (rzEC>plְC_p M!~&̦L`ayf0_ؗPKSf]w"pkg_resources/_vendor/pyparsing.py}m{6>OܮRln]qZ:/7vxmHxSoAIv={K$0`0/i>O`v=2O? vuWA8kkk_x> wH뤘eYyR$'YgU2"I4YUu0K*'Uf:sTU\$P~e@|4&YWi:I α;A@*uz8'A$P:UP$eU#Ad>tJ;R"y CF&4dɼ%>%V=̋L&hu 4PfJ0F_S{HyAɘƝ_Q%i>W0Lh88rS&'eB#c zͽIՓ-qBg$B1{RV@),/]wՏwW~߼޳gAg~w৽_x@7/zl{gݟ_=8^ ^}{/w|)T}0{wp_Qmo=G(/v|O= DvzΏo?y`: { 4b! چwp>5# r뿿Wv]]niiohg/ۥ*)}]zMnv^Dzy~~_9Ե;؍7{o^A ]@՗ 1}G zǃݺGv7''OCXaN')v& qɫ4͘(wWߙNl}G)vhJ x6+xt 9 ;CG#w:׸YÚ\#y} 3 'OFg Nsa[ p|2̙?xK'un`8*ϠX}=@De?i'7̝og $;}}Up Ong\A΀NJ]+0l/3'n{*.Jx3`Vmn"3D tQ;q<ǥ*yO"y@SePr^ D}YG> j s~?vN h:N&w`s'GoG]zԍnYXf*ńbBޯs@=6hE l}I $Edd4)e3. .=)^'*zIUF^$l@ 4RHǭoGNF#{Hf TaX$"&g~"}@+o789 E2& 0é0$z@d.wX<ɂ"%\%*^J+ABi$EQs4O\hSH3AL>AOj4Q{sĎO$3ʧ~]RQmOO)s>ɼc0*w\yY9+YB"i/MAcP`V<][f讙 ֦ $9 KXA<"Y633hiCf@Q½ M +)WŋHT7_ez`v,3uOhuyZޅ`%y"] (|wAI'ه /@I ^c< ykL*P@N;;c]a菐N D8P2P{uj. dPfOKhʜ<2"}X`c1ӄ_ tL][* ( KUY5u dAy6|#wpiq}Ix, Fj!|$=|W{bΊ_q(0Ϊ.IdLOI|2p/Fn?C˜~j;66?&ׯ񩏾S.M ƗTXn ͂G*%UKGrt0lT >?$\ f2f7Y\Cʹ hgy~_$#"?'XUC}^ZL듔Qrga|&?_͒L~I=șpgaGFvM~/w3NE:>؈f1s^ҷ*%h /{cj:1_n_&&zd9A pEM͟:p lW;D?y]$i>/rU,O&ϒHQYSl%)R%Dmy6Rd0=ƯN4Y%(fcpi_0[MeUqv/pJ{$@kFT%S}NQA<q{R t!m>>|eJGki%dy+ 2lxb۪ৈc/U%q xQg[JQC'69 X{ngO&n|$@/GGH#xY>F$2TQ^IL|E5140?g ?+Y?% 9.:ZnG_|՟/3oӝgvGR[rI;1"fwgJ;_4 GbT:2+xeՈj"C C&'u\_QuI\752AnsmW⍃/whQEhR`t7)vI4.IWZKC CA(mSmV#:$UPZ;4Tŋ1Ko\8o;~cš){j†IJ2iGzg#x{sv-tSZG#}X+"ėy:.Xk~N'p-x>?U. Cd؁/ 8{;m=K%ꋲxPC?3|1P|$)YPf̅2'nZtE6ZđvCA: ;0Fvzm`/ kS` R5Y};A Z-&طv 5$)._+>y[4..ټqä8PGΓw܅#IR! |#1*(;!Y2B;5XڎpP e[Aܖ~n21P"AmMGu?f;}d@I1; -"H4f܈A!TוVjI)" wȯ26yP|kMm}+y2̎vsъzPT ngIYF:(v*gcG}$= HĢ|zNOk;XYRk:3ujvݡ0u0(ԾCYLx'$=k cxqfC4[`qt:Mh!0^mJ'/xO(8t|=mk '7pO=3NQ},-z|*qr1f8b4Ո`]8nooLMR$=dU%7lUFuh!d>}[B*IMgHoXmilrƢ*}}AzJlbIi asx2]D)+[5Ĭ[XQ14* mx8C-ܙIJilj3yV L%@fжȞ='CI">A,)Oj[Wgm5hri81"q.PXfj^{6n*y6KqZ[|^o'wx1?Gd F;[fVsnLbJj(GGnmk(d,&sbth28,bH#1 $E4 P bSIg$Y({7=6wXRJhTo֏ojNEm4[.'7-C²4J<\'1` >wv }yHqAuǔɯMMgJ:xP?f&͛{!j8UnuYK]oo<|n B l N'lt^²3F:HBǽN-m}%lu[ i;EwTW$jc>`z-x`-xY_w‹{u/Fb] X0ozfh|Ddž <=D F|rU7^k\n$_xB߭]ԾP*H[t^Rچ`u70sK P(n]ofqtp[,G^.iUX]s(J1W%`?O_ehxU[$`!KHlZ*Q8}j'ߎ6B{WjX4^G؋^x9fs]Z U%]҉in6pEh;U8V `J(uä)לT nY>6P$]/Z;7ŬDL6'lPɨۍ{A 뫃cc/x^y-`͛Q[<^k![5e>Mk5E䰤{Mhk> u5[!o{xT+ψwgJ٥{FtJFzKfs$}m6m\[cQɖy(1"4R7wk..r]eB.z]! ‹6.]`~.-DEdLr{'hr6]Ҷ/aAنrx{S!-uiRZͯzEh^ڼp+hԷB$I.{S cyi>6S[&{n/a6|ޱ/E4b@ pϽܑZ 힦3")ќp\+ W $Th_6 }8DzւK,\$$s wAͧ(M&щE( u٭1ߟX֏ͥlӣ0K{EciJ&RLշkD?U6*HyϤLwURxGYXh-X".=ZmXqIv6*u܊%(Fm6|Ү'Hjzy%&z શ~҃*lu?NR+2R(lj¡D-DC:@u4ŏ\AmSshiC$k/iء+^C.~/I&N01_ ! t!oHP~ZwSz̓6FC"1lF±CxTYNDȴ(*c-F+-:V%Vm"e ܇!ܪVK l?^lPҝ%][ࣨ` _$=j=iBu-jT; {E6;` {5F"{) *Q;Ht,;gt֤hb{pF_|j#Xԕ*_X\it(If|t'OE2sBRCR\%1jc_$,2 ,A 4s+}zLٺ]v(ZOw9}ulR^ `rQ 7b\^LN_B!6T,G-E} RӢK 1 WS2MTK]Ii=ܝeA 1 MGVFtIY.+h-v=fX퇨 btZ_P55¹ެ=Ѱ~Muk.iN[g$'B,YltTW񦪏AA: U'%^yj&6U:B͆#\-/iHFO5i\z,t }[Li_Yņ =۶vMgFzm3<=aA %mR-T JmdYLLzkatO ǹLo ,YcSZ9ccAz=Ea*;t#'SO8;Gcy hp#/S+Q9K(溱%Ζ#Գs1E)m6V 4zV\Lf[ݮ;e; Pxi4܂6ZFmZ޸ V)e`q5%1'iܳ젤u,kD2o mHo$i2_u%l]+7d|K0)_ jI1ٹ/)j} 75tiF՜bĆ{9>q Nt]m +$7ha/dod{F~ YEcl_t(gT0 j/{hU9kG6psm`۬ ⷯZ ;UfnKj^Fjӑ_{xOjJl8 waM=xE\cF㓞 ^j Sk;>hQ_u;~. 6,#JB1:p1f a 2|t[:3mb&F}%"'?KPj :bi~ V'ѹiYMCQz:csiTpmz#|SN^īPGn9d0ou'o_]#t=%hwHp_s>D6v)7||t @w Tg9<{o~ q}%Q~c;l2fVV#n4|I(@oD ]Yɱ3fu(l [Rmf^wZi>ufV6\\r`.Mxuڝl5>FUEeօGDzU,+\F^~>Ӱ. jgֵ,Z5"4%mꀼ-ělXƩ(==MH5Nӳs X#ʂnāz̆rv?Fx 9؅{ݞJMJJnO3v(1BJG6 O?05* _}n Tϒ䩟}ޯc@lF?OpocccS<*R+jƬ@]P% u{ll4hl]._ڗɌ>X.pϋ#%#v^,6պOZY cט*gR}&.7_309zęq{Dm gn g9&(&Z,K`t~"iyBVtR)/S5rЗKQ(=}\!$D5J%>7835l5)?o+, /vYX_H@3 -TaQoUH_52<;@-EIeY۹衳u^_]G/&_P>t>/?/f@"C ާ#h5Aq  z^^2qJ[,9M8 0q\&f` BiM$ήM7KY,'kR!R6F?׮m3f6C9||_%EA!P/J#ser?x2>Z<.+fioV}p8Ao4un;﹵uIT6Re|_y]){ J2ЍF?ߟWlq>*xg='E\\? ʶ+ Wʢ`ϧ #KbuWcen7NhuXǪrVDMa,$ O`^ ]cX[a|tOώ9 @QWSm&ބ:l3śH7|']L^|bj=ħֈO㚪^~erO#vfla1nG#JXn'0gm{;ktXoڕFm54[?)㢙$K<6]X Z /9 >~ՓfPτW *MDL'7Vs>)bhqL+ǩLGӱ3+jW|dRMkϜft|:_B4CsIV<@ϡ->A9(@\! R4@fBFunM;^f \7I+tX8ЖN+*;H@gg F9`1TŌRuROl-G܃M.*۴z++ p%'3qChQK:i6 Av^JOitY@F"oi넟#1lAףL{@@sNl3-Dx6 7znjtH..C#;jtΉF M7l>-7O@gy!C]lPP|Qɽ%~s& adf9lm3]@p@ f`9Y! 0|-pO&%e뎓Q;Ht4X.۸Hk`RAlB=VR`vwGF=R.fӷcjǮie4M*((Dg:&G&S".]EhMQGx̋`LmT̥J&)hKb L&Än,8`Ry] hswQB$H&s]45WOzOga'PZL@dFHЎvR?jH߹=-|QqHЯzKYk~dU'au-"(kVEU9cXvUz)jڑ֬PædzHWxOyUr? Z b2EV0[云J$t A̒,TGPsg{ϟоR=_=yl7~wQݗx x&xE  ^|H3=| r'{yf7џ+30CKvW,"",g W4 0WZ?~;`iZ7V~,;%tY,6˶rmj~)^tL2؋$i>/d{d{n ])6/{70uZNkr 86/'bmbkC?Kn[Ɔ8~kjىZZiKehԊ% H j'0GJ&d,g˨)jv$b<_Se:Kvo8!7mz[H!$N2aXIFc98p=x Ci&!rqzi+@l ntV@Leh <^1*2J:&UpxP`)V[H/)3!}idiySrb[ hc, S$ɢ׋B^@ m0^po9LUw u?y]$ƘPlS  ghIȥl|"ZS`4 E:'IfkR~]txh-`ķm`4PgԶ KyÈqLƹh&@A K p|q I I$ia{ew21 a6'`"(>vVeu|M7VTI㗷l˦,XYYNIAR>GW`:tȼi(Nxm^fTg]"ֶ]eqǣihiwcVFf[FuWŜ~l@T'((|'UςV C19p4XU$-3Bţq^_Qj{ GYiF 6 РcҐjFS"Ԉ+e,L R1P$SxYW`tĈozcڦFyMB28y9$\ԮoȗGmwIm=ɰqxd%9(euDb\ QRTJ,`iGN['RJ 4i?#VNxQD@xvyZƃCt(y~i|3LNKLاadŷ*sD[eL131mjDS E7nF*"C0UHպ$ J ˢ4rQ E#|rbl'ϱHAi [sr-ǺAieT b} }XV|Is8B*o½416ݿ[0/]ì5 CZjD#㾊ׄDbu!fq5Z :-xB&G W5 ZN+<Tj4NkA ܀{6Ž6f6P2rE6u ]2Pᴌ05;m;V]Q]Zc7y%Eѻi>DoNn1>'322F"1Wxέd:#?,&&{FO $aKBժﰪ"'h}mrCvEf}(͍PX yh74r4[J{C4INl(,BD,aLu ~ii;Sro $|:5f-tG^}"dZesǖHgG(c+ݹo ضr`_M+n@ BI5yUy&@Q|Qհ"/E,bu"/f]/I;j.ɿˉKm௳"?MUZN<:okf> ÆQVT.Y˃t';i6rW?>lXD٪ow 6\iźsL0oX^ȃZi4,"m XA^s9Vѡ'l1Pyn*iƅ%mZJ@8; ʏZ ́Pמּ=թ ;ꡪn^b5@$cAVhzhjΉt&zK1Շn-N9@bqc3z1wEX[+ZDjZbY[~ՐP}die[~yK}>ަn kB( wYea,XptX>O:uivև 'M]_%f2ҥ,g]KZ׻òuﰴ ?v ;~`} OSJe1i'ΓXzWc_a+tiǠ[ַ..戧z6k^{%,ɌZ:YH 6&.y .;uCk"z >q'|9wk_b#pJkO{C1}.1l\}k5fm7kk F5A;kK^%d?pf)҈cЙL.,AF~YOħw3a;H@^\}xamk4j2cnd!gA5{$l\rEqK~\,4w(<&N}ܧ{isLreHHD5p_;Vy :XGj#Y1)ӜW lxLtd[QhʭTdiQє\mlfUB)Ha0I.8+b [hc2lʴ?1SE"MlM;*#CŒ?Z$iҲFf:+P  /՛<|*Xo"LǮ` &*ig%"n[LQReNK c,J3H(R 0).qf{xl!a%vv]$Wd\ Ht(ב[Q)}} :=WDvBq,ugI ^sТ>̩+jgLiB ֶdD@9R3kN$zWic!1Yy=׻nhulrÂhGxzC9i9a^N46*\$)uP+)O0,)ăOY۬}A'uߦ q`i5Wi҅{Y[Fw9i}h0vfQg]1J.-20Ji"^8*jGUX"oP IwPVi?TwFm@Jb+BHJJ:½3#(R`&SgYI"hUtY+5:ꢎ& F tY mގ<`\ B]U"/ IAV{;Ea]AE *iFTMqM"pZOlD7`€^ڛ%WRܑW+hY l;T;ײpoQLsb=,HqRǒWgqyn$/>]\m:M(%~ӳ Vnuzug2؎JdJ uRSLTFi|@24bU 6om_ yezSE":>+Զ o Mq(TZ:B9[3nQ!6`bL)Ɂ"SfR'1z.`j&t9A/OO<-Pր4A9B7-+,hЎgًVr}7oa_V|0AkGrs5NfS# ?zGK3:@DaBm$"!7(\]D}st wSOn! pE(|jYBi!6GHCogTmxB#JrR)oX5s :FӠU\%k9/ag'("KegA+ y|Xl q@~"&e2pXH vzUy'\"uT ^EZF˜D* f?wfa9?335\S7 lfg&a02]Ɲߠ,?x}'jok?FIIw<:m%xd4ATA`A_f(4Q9SF_P Sp晰4@V!sͱmTP.T 7xNK ~EjɦR б"\7!>54zAG(os(*.Y8/#nov ޾I%/x0j(yZ:+ ФH`VFѽdF$~+FW_I@1|j۱N #p1㣑LދUNEӶCfeք):Uʩq,u/L-6*5zG3(D'v uMvuCőDU[Њٗ-8/QS_[-f2ĈKU g>R2r̩QeXI}HhS:Zwv?/p D]h22~[~|wmH 7궴nKEgoY2:0yq;QBaNЌyrYŗ^S`q\ŎIFmuzF`?;re>*Qi[ilB2!-cs^c%*<]S2+e@ʉgS>^!]E[DbȔe x42Y"j)n͏Ett$/:=t<:̄J1`|W Sb(JqAH閁-~X:>U3)Ǥ⒁IFZtxx2|' Y#)cYhOQ# LjVBffu-J< Ye>_cP3'`dg]ǶCb`^$ϸ̲ [3 vޓMƻ1^n )**pㅘ[]"\uLD)쌡gdՂQ+ IL/a28`٩h^e~sPZͷjm d,>OtT;CJɬ]1ocukMVP u2 ݻ0= w fq.`%Ӯkzœ.,w2Flbl/zQbDuJ͆ h+f}qj*n5 hj#ZWǵ<8ALaW07@̧cv48&d0wi`+q-,˷w"æ cY< ?Q}= #ZD+OzCۃNb'ScKLA2.#R ꔢ7QU9B2el˭6ц3%HD*1b*|>>Z9&EHhPw'qr$^5]뇸"4fWr_stZ GIjOӝg&m߇-^̕cZE9XA:S{jgUBT -x2[XfJ(jͪn 7 e}"N"`Y6%j $ф>߇Vut.`ZbTr" |񈩯B.1_ԍ?J97 D*-wK(%6+6(ՆA;ϭHAh4LU/3 *~ GN2er]E=ZE2t;(`Kf q'߮@:UrO=ǷFg/Nl zzpo:ɯ!^5\d OL(ojou0g_"rW %5mmy\Il%΅=ɧ: 1vfL-m*m+2c`: &rbE~H '!H0@;CE(^[f ˥&IsZMH'CJ9?6$>ec\L0/ڮ^{!㏜zN5Vy4;]b"%6%2sgz۱E@^XQ~EE꬯Y%[K%Tg?i KۿqagAK2{{QgLޑ@. ɇ. L EVƺpObLTCeFa$`:pr! ]+t#ZS=ðcJ$yUM1q{/8(/w% j i6NGM"W&ʻ/[0F ?E-+C0Cdw(Q'3 &l|vtZ_|i2Vc/q>! І$1lq b JJ>'#_]6ClG ;=+N^mvQ1xyoNF:P4VN d)ѧm;Gq([AHwy6׎p/1hp d9pI 55r]P!&_EZRt a*8PJ"fk#(8_z_h>xuDABa A9g3EN*NӒv‰ӳRX25Us2NoG/_~E1 Z1#xr2*nRQ64#z`CGYfM$$ Ϸ)[G%s/"38:-0DxSiqٺ뽱jc-(K촁প~\bB!&&u#FWIzЁ}pXiXt*?oKa|Kftgu6(( (fPc> _Xx"IbC1c39G 8Nn(6tH5U "PZ+̗,<`Aì\+EKb5_kUhQg̓1~ͺYn${?&P@F"3-44rM Da gKz|nojfLi] 34'o~,s,X'ӄD-Jnj 8ÞN0Q^_ܳ v)@VYl$~4\e=O_7?>{0=6S_-ʷX%eH͆,\wӚy9NL؟~1y轍л a*b[Hǯ)S1"ՀLw!_* e[f} 1qIKM5nء$\%N}>st ̋ 7! e0/]ַ_d6tB;K.-:p)nIbZuCnjD<sqɍ^X ǹXi4 N:Ս6埢C );0ƽe9ztL$>wS3ݗ~ߢi d1E>jKDIw8/;spNĆjbb&̉|\c{뤠tF|m%UA$qsV *rҙZQGi1c嬨LeJ״.t-8cҿΊmP> RuD|D|}BklmbwH|QSz w 0M325\'K]j'f騎NTL 08`d1 bۚ0[>8#Ao1څ:i'õ獵] J_lr0o[>x޽8)9uw{3]U^⥭kxdQqpl蛬q]gV)HҎ CM)fӐew&3<}ݿͳo`*:ձZ%( a#Ys"[ Fm iRxh#E]UFz6WCߌwPyP^YeREk$Mxh*ݸ!2ǪZk1 )c7o6ěFuOiE cP|}9H_ S8wix^n7wO6lIk;"osR3.ې QZ3=#RĔFǐuH,t*BVD)څ6a>Q>G4┎"ꦥ0QTqHAy쌂9|k?]W(x9h:y3u?mm}h-G@`dG#G|o{4Zz5˸H%^fƜ޵C.US Gq*@Z9-F(y_&ȭy0SQ(2,%Q_NQ8^H齲^yrLuqVsϳqƤoX>\.14,̢= ШܩVJ _bk5Y%{t @UR_mrfH } 'mX*uH4[=:Zj=3EW1@uʧ%:ۇ;ﶷn2ucE̶ã7nGGӮ>Zvo۲3ucr{+^3v[s؆cղAnżsZ]82ԟQ:-oc*ow~ݳ{둯hf`i J_R5~/d?/,|l0Ja?5rZ.@=k>2>W-z%`Po\;\n>ll/ͽqƧ愻.A4'˵Bi3*SLgj}5G_bA!p|b|FbV[Y9n1sLOYnp'6Z[د[y{tQ^dLz 4P>vӖՏjwĪ>~^Qvx3 ~ZvD((]C0Х\Ltg'xtH{>%KL}ڼ 1o,-iKFqq3ۜBA#v"A=tY$:USlqlB:H%JF,:B 8*.W(FĄ,BM##:'\ "۽ g B4r.U ;q򨭃*Kјm34ZC$r^HO,4I%hA﬒ Inl2PaP DgfBTzQSvDƀgD qej)͜։RU ׍؁NfI %c'Ct&4aC_dݡH;>3.|HQȮ%gP_wI.n(Q.z]kHЈ_hqy2D#_ *{xc<+DΦ.,)~bnW$h"{BmJ|kgm}_~篿s=e/kg! (z!3)rIoqG+PgHq!*]\oy^VF፤jPݢW`%P1/ ' ˑCDD32Wb{iζ:2mE2>^]q/jܫr[}B cUT)'̮wۖj&êM.n?ZWhFy4atQMsŶhwSV :,A 1C_<[bsfi~s,о;0P~Eu69$U-JPhRp7ȅ8y_. 94TPe*Z#?HVCZ6ރ&!4'kvM2Ͷ鐊W⠥V2}ԣ_-y{8Ya4 QnNd)qk_&l(f@ '_\m~`0X+BU6}\BON&@>i3>Mk䞽޸!u`q 4AW($ew(ŢK2dݹq9ySQ&EXdL()6!}b ,KYH3TWV3=$|O3,ntΟ9S_^?IGIĬqr[ -k-"F1_tvu.v:'o￸Fuގ4Y༪f[M~ 12M7oyx_y:i'VX}Q}~ܗ Tyx}qmo?Ÿw~y,~mo/{ysfnq~\CmX6},ɚJ r\qT}T^aQRKPG&8Ť ad!`,~#4ѠQC4ęNYh0؍ ¸Gfq{3BG{\-~i%Fb0BjeyFPnq1 оH>̬=-e)Y{6nda=N{6&-vER,ۉ[P OlIMZV$okR@IKy3nP(B<Fk"%0W7@j*f5tװ?,a%2¡8 4ZDe$wiLUssZ!zT mZEԚrݱ{ёåEG}CBCߝ _8i,BfNHWheӃ QFϊ#Ks#bv%F| _Yd;zxװ?cY3m#(Fٳ+JwƂASM\ϋmM50)z\Ny0w&#IgKEQ~ "³F8\ŪW 7ݯ eUT닑x<ȳ qw0| eU4T(t WTPw{O +ן6POh{1F D4J}ƭ'3'{W/#B&83eT~YݵXs8/EcvwJjIDqT z?$ƭxmnn[A4$1#rs@eB#F,:ܮp++ƧN9vy]+UP]TDd0Rz LN5T fXAsm.unKbQ*oA C8lDa x##?/cˋL;ʶa(eJ,ac>8u ,qqӨÂSDuU?4tV> V Bѯ*c#Ʉ8?0@DNiEB>-k(s=$f{%M|[^Morc&x~qO)˃'in|nq8/ȻrCf3_A'iڈ9=$.9u, j^gr^&оcnW.&z% vMyꚶ/24W%W/i|2d~~ ?ݳ`o+xI  9BgdċFA `EϬa7An* BuoRW3KNhU:bYuuKt<8UX( #M|(`[(fM-y6WBlC(Q d7n8:<NG 4;(** rZdl +FCo)(Ysd&7P)pO1o3޼ۑ,#z{<{'[& pQlf@Q\!k+@ &dy+HWϦDI׊d_zgosPUȶD7MEf]\D{wiU[Ӈ#<(}ti5C\VG< u^ث%WJX%6}3>tcWܹ`>yhVzo3e'3u gldod4YvL<|2-l79~h E~Q]gOsDu`. +QW=oϪJYf0.ZhX,jYj`~q 6Ben~a6`W˖*X'N` [53)B3u>O&Uf5iE dV]N8:|QK 87}Me6uyᢀđphKIh˗'IbU«>aQT bԎR6̛=$Bބ1 X, D۳ B"OGhE*X./nKo??xq̽84xɠz:;cYR2hy)舅VR| As8Ԣ ]/sէ>~gBNGt#YjT89\J\,Dr[E+Zti>p\՝1/~/fZ`l-^ $Qޖ#Q4ܕEVqbaX[ݼ)D md`KL:G"fkqw!fgBgϔUh%s0F1hxq&o R3>ΕCaQowR_xVzYM6\K^/z?X1U"'iQz%w_^uN?تC:<\qەךs,ȫlp5Gp!~eTcZEѿY~xի`)8GrchJ1ׇrp&xx,Ӏgt DR1%aг9%QP) y񧳆 5VMuNO0?&T 'uяQm4Lk]csvGgquɮ`F>g^wXaumeM[(l0HV؎& >U иI;H&f[1UYy_k. 1k cT 'D@ÉaYh)_i>NKYU%j]HZծ -"E.:vLz5&<ʳ!Jȕ0IDźleVսliW+BL"Ccx=[ݴ&+ *O2 JJ7@%2UGBMENiռp ގ6J϶܆֏J% #wDA6|",%i^^U[5ͣh {XG6RgqsWWNe !01}DNgh4_'%q() ƻlll! +xu䀄@nd%)FLd1tw_Q-$7%nE57V]$-D1bIEM95R]ynMzh%= ((1zSN[vZX xɡYW[?ჽBGE^2ݓ>b2C9[iK^hi- ?tގ^P^Ih$K[N~/PWxbgȑ"([}$.ᄑ7K 9m(v8ӛx;ļMOTw~+iOh)ADTe)n3/i5>^ݥ&ب^ǁ}#I]z.#F~C̊6Cڂ#REi4WPa+3/m%*b#z^`菁C0:JЫiaWx#ŧ<(xIJ%!1^N:ƨ m,cHfN.R[Η)l*6_J=Nь[-d[튲O,_)q߱  6C]ˏ?E{tr~՚hm@0,;nm<4[[_DyQ[([;Jv+wZH/O_NWFMĜzTGT>]!nhM./w3{1u[bA$.o\qDH#MEeښlgS!Lx1`wJ/ޚ*c WɵtBZU!ݡեmcGͨ.䧗cƒloozk Mm-8VWBҾӮbs >`\lzD,u-xAZ,Kaʟ>Hg<;X^a1kB1>H + ! [ZhzP|']PE5=jd_,G_R9?,j3S|ppyy<и:Z!m;8}ڣ+9"}|~BÓo)<aZ9CMd1*S/.bd>_Q˓$~IFxow>}=iׯݽ(l@˿ilwTJe_}4{z~˛O˽WZlk L6)RA d\LAU`BҚ4-*Q_%NW3Ҧ|{%9%zb~9BN=#26$j*P@~^X%ch'T |. k)T !܈vs:3/1HM*4Qk}=Z~&!>znӯ\WXWdCj ʛWƕ02 o\QmBjt~Z_)XN:Ӫ|j˾5P%g. V!$ )6/}%#ۯ*M%<*=oK#;#oB C %RjvatT^6ʤz"ƬL, .仿o߇(@XqO&FHMŹX(uAOp ;MKz[R!dE& V4LT0-% knHÁyd[t楥~Zzk5 j bn&@^4@JK³ ':^8@A˘s щ% ^U[::䵿9,k\#QZ Ψ;ɠўwM/Vou1hHWWhq]Xg;Jdd|FL W"ł{EUy2$ bP ҩ1}:NȐ}71d1aY&V"UG9?(2/F;>e#GwènpfKqWܒpCQ،TAc7HRk4M~iV/uC'l"b>LlŔSNNMi))dGAVV ?L#J_+|#Vb8Ig,Kd&k É{,Wi,Be*Z.b(T n5ʉWu|oP%DkU:hV:PͰ_ۨRK3kP'UB X#4# |v\2~TY *i7+M]KD<w1*RJAq' cUB J-?SA5_R,z6 g÷,VXfmC'&ɮ:cE}~I_l.YGxl*)XG",-n4| KŖxkǧ?ckR4m[@X*YEm`ۢb& Xlf6omH<'/GTvA[ZT7 ]z –9Of1Te[ETP\w$ #6R?t#X{QuNS-7b%[ ٶǷ`b4~K+"gMO_ z3Ky "J=^< vTEوܥ&$;lkj]^gf>BZF~0G^5؉+Ά?_Wn+%PU1i~.X t-P^(29 ؤ GN|wd1J9v}Kh/̄XJe61:Z+N:}. 缳aU!THZNDC|AJT 6@58)bHh`G`!t☙N|ܪ4G*/t`K;2.PAIy? s~x`[awY̏Y\gm)w/Kξ1;˭n"e˦6 W Xȯ\B`KSr \,bVfS 2 /Ų}DB$:+rC.Ac ;REd,+f4N'7;7b2eZ6W|3qhqoS;2B%GyN{p%~Pĭc@~?Mm{u BzHK.!p[e,ѽ(iE( GЫfnqim1#L_ofvT}L`,5KI¸3pB2gJlыg۪j|Ӱg:ѭ@|0 d|sޝ'x|?9Pz.V+ XnG[̾~P&ź1*JS7,DJ2&Ƌ arId:XƣL6Q)݉~|CZap*ѡ7zO"yay^2;P:YP֝m?")CHjЅ֥4xB_Q/2| Pq!%[]"_}ţ :QyW?^_(G5O u'0] u'~|bKZQѣz.kyq󋺷0{V \v EZ@a  Q]mD;dY7 n[}ˡQ ,"bƶgBh=Ԕn#2QrT ˟S4Y].ysޟWI4 )5~"#N]4?U{ ۫.f4Vs}?(k2x804`vs؝ -K8prk9й^L;+#[ЍKzbJIk;#:e\D1tvC+yz6R&8L(j+ A[IG#$O(S6"ҏ, r <Dqn#:ףg,FiVp՟/| |"]$$ gS|Oa`|z=P[}_~ 0|hqq, $`r~itƶP~Y3w^Wj:Փja>3p9|"x&)BcAEdfóSm9pxQ!cwD+c~3o2y}<)m@GSչmVu$2<4;gZkÝ7Jށ'8aI#BRxVArPփb]>h8s2@s/]2 6{dY ?P Wr|E͉`)y@ff5/Eax|CiXD뇄b/=^_byk4KaVN(Te';A܌2/eeO$3=YvE#{P;> @A"U"NH0.Vq|B~/OtöW(Gck $Xd C0A ]!_p<尕9P{uk3~4 ~&Q3dP`6m%dU F6ؕV"F N\ ⛟2:N`[DŽP-I½̀#n{U4J)G?ljhk;=(]+(VĞۄ3"Vf1`ۇqPT# / 2qomD%Kt}eMB:m1a@'CWx|͌RkCzLJ&r" gu Ə /U- <\bog`.2ɖf{K }j IQ)-d,#%clhNۍ6\eZrgrϚt"e! Djjozk0 g؎cTaT[b:|e}tJ>9EQ N18J žQU˼u]7.`W:&7owB1e9M]O]QV*]4cV52M~@*4t9'lV3UQ <.o$a4{`u aHBSѬmp>Z8"Vv{cln 4Skp<\AI5zXAl$._Y2>n07r%/{=^qaOG`F2x㏪^~:u;a?ۣAGeu;'(K:&|2sL;xHP-Dpi|@Bv){/K_%8#;`zqrYy $ 0`M/uz)4R҆(iInҶ 5a 84Mن`9(?%7ˎY 4p\!g`>iTwm0p111@ϧl}QVS"jh4Kz/`U)-8"DK˖rut|Jv 6ZCȩ,#}]|#`NB- qpK^n(+w͛:2y:~K\sh^ %$Kw^*[_Jaӆ:RdDbGHEolNA WB7t!:ZrB,Πmŝ;ܝr-"rir`)z@HQI{6Z\Da?*,jAյq%!;6E硎gg/ONc~I{e7BZGx(e\\dnoTǧs&aQELX ښB϶Dt߼u)@2ha8c jP+ U=G]>2OVi]K{Ͷ\bc1OIg -Q7 qZu#%IĂS^J[ +ށc@CHe{bSx3*cY2w4eM;NJtۂH|3Gxg91W< oؙ7):*)M\5l7y O5Fqk+q"h3W~aFdt^MhR4 CW}?Je.Lр No]YSJ?R.qoOeC_.݃ET z??ՌzgLDK%tiU: zʪ8n)zkKQ$3@w~kONe|87V  dr6yJt6S,`>+9O:_ @wE Ė+TSE*B;( zπ,i~k'of_b x*nCˤ@wɽKeqE'^u΂xWg; 39yn>~ӧQyt.]vǣ~J0f?+R`s6~3օEQ#2 㤸wrVpiK/<;cl4,Ivۋ؀bjc~t,'!}Qέ @}0\LLe, 9J=Arˋ-μ3TY"@aފ¶QDfP HqF)"Rn7"G߬tZxѮ^(;(? ،nKy=F:Ǵ*2jlj`[";&&n\[;Ȇǽ,e* ),VR. 9resDW{fu>CD\>3GiᢓɈQ6N{zF xu'b3aiPIzMzYXcivSO1[ 94 R]%`zۊ#S%5ASMk f"J`R5`S5e;'dud_ٽ_OCF{I6rÊWV"_MpR.F%f/h]O.:NiﺓXٳPT"fјaS x%YTClVSzr&90- †8E t4R7~3-*2ZUqѓ}w3v&TOܪK)6Tsc 7Vy//0pJ+۴ojO:$)Pz"ƞbbzK_`28wwtsJ>jIER6aꛩ(E`=wf34c5=Y| 9wiAW"B~7L Ub89(D :͖o,"uΥ>U͈cbx;rRHgr"xqKC;q0/{ZȉEPuu ;gHpn.+$؋7 lǻT9T Hߊ视(4>˥&46@n9.Yq(N^b/ʹȏ mRRxxd =c i1k(O* 7tCd?ЩSX}'L^:!Yt{Mܰ14DΊ0;K 2f ] ; 2&~8,j#BOYi@2``HP2:ca׌*ĶOY0T_.rv4~=IUU!JԳJi19븰gdV(o䊡F~4-1vI663ɐqedIe4UIl/#mKnkH(>̫Fno<omƂvd̾f~DvtE_SE 8R,=ތ&&$7R[mRwsLϦ&S*TLDm)Jū/ wɉ٪XYLd=ǦA CztyoB&~I*~6=?FwFFA4꫖TxͲwch 7$d5/Ɯe>tg]kp1W?ڢQoȳ[wN11U/n%ci 6V mK@k`  pS2P`&駾K-/Ie_ErFx(}KTa1x"Ǎ8kiL bC> ; Hrlo/h"aDqnq׶jR^`yZ0ԚM=$NJ̻^K.ALEMU1: ̰E<uוI*2_=NM'܈2Zܤ%OԸ*jgRw(*C2xoy}%ץk%Dfl]1GS R+ _chhRL.V00l:omV l@o&ƘkwvxXtkvXUTO;ѿ;mŵȩcᙋ48in ?C+UUQ^ӥ:yěʻ hs1 .u *?áڂq؈jULYx6Ԇ15^{d׀RLyΠR8o;^S6ʘ_{q~x,;a =8)M,\ˆ 'mP+:@=3LzB%oH̨FE;zv3_s/ޕ{l"Bk-OmkglH=$uʏ5gy&M5di5VqcBsc:=ތQuɦmʛ/s@.ll}L1&B$7#%"JX"C+}lCzL26ww"{Vum݇#@L9)Ki/qÄpiPu ;- P .yPhs@X> :]G mVIsF-ٮ H~ b6#L;d}ݹ`2sD^IK9ܚXk)*b,a鵹) v{mle2$5Z}Zmh7-x썦SXUqQol jFJՕ~wso1aّA4XY4o W/KUJ3^I)ri{rJNA9/3n@+A9)^pމO^(( sE[;uitr cV"K_^;6I.٥9[x EAv {}+?rfˁE蘆`p^~skcc0G' u*H`n!x޶5/7n#8:sREEao3 Mb [SL Fw8XOƻ`qs:#(8bAzL=X*@eM]),Ȕ_~駼}KlnAZ0Ebc^7HOx>jkeoX>ވ2v Yn{VBЇ߶:k6ŋG4֠:i rmMMBk_޶vk(a4:Ի'/Ƴ#D)BȝHl'nro4 <ư^,nNB'k뙟ģ䦅&]V 3";*9/O5V+IbTԨV9j}lxLq'Q}Ts *(mOx8)bu؉uJ_ŗ_}f_m O?i1xwkEտtİ~:a d}-M#T~n*`6!PS#]kᴌuVs+F(!jjz v2c`'bIQf]6nP_n!pgj{Ww(6ZpD8̶$jBXˌ;Xcݝ;7&e-*ۖmNY4&SkqП]._r2,yR[dU.E="+mZY)y <4XsCKR+ཐF; 0럠++:4ZfvD6e"p"Wg}gwR^ʸɪWn1Iީ7?amF_e 6 >ؕ٣|I35k6蔚Fb]V9 'ERyfjBw<ɺGqB? /fERxZFeѳgzVZv ]ɛ*I,mO 9Э+NB g cUc B1 D^$ _UCS-[ѵL#[_G>}?p2k?/>{,/_yeU?/̨˓|wo.T-cL튌H3j$GEU`3ܾ#ݡ?z*Nn,?4HD LO  )L2|0Iq2uc4N䘝Oias,0l)-6# }Ӵڿ27ÛǛX1l9'-.7fn*"Wɤѻ@ u3#2]Գ}vk^ &eUn>l}4bBاK L7ٰOJpSNRxT<#nkq)nXA=ԅQxW)59͑gւ􆱒&i)3$ayQzTIp-L<nǩiӅQY.(跷k"34/cTҞt"%NgA[=iFFsl#2!u>%wb#Yҫo%o-6+f N" N v T2k*6}?ض쌚W\BԆjUA \Bh"^dz/ PnL@z02)D^=SQumkǑ2 xlgd}K7/}n801og;4ߺ`ACqcB Ts bOdLG8JV9εwff;HZ4t8D (h1{;r8xkwG2Qd1(B:i8_ مk~66 W+SldeǤ- ioDiVW]|Y Ex_VWrU,=MɄV{8Sp\D( ]Ts ,0ŅN- ]ˍxDfx`}%|+Yv*ZJOXޫD'4St D7 dhdGX}?.#(rB@矢a!SG'IR+%}*?xfq]z}k\D3jݻ1S)DQNg̅jht@^ {b:XÆ'03! ϛ 9M6Ќزe%hm2\fSzSM}/4 Z( f@0lF6+V&lеsTp.}vـ EkdưPE:cnu$.St&Q9̈ҵJ_vl()rd݉=oj7[#Xx'Z{T!@ubXH@L&%s8j+10e~1$1ZEf;/tAmzW6ɩx4n1#YZ<ӵX“]t6 i@CcDK'pR@Pqitd<8ٺsJtt Ý 7ZqJosX\ųZ]W0 U@,S$_qe,CPzt}k! AX=z YeV 2u ݂Ji Z$ucSF0T]7pW㤴ig41X-J巷#? 1%h ڨT%1n]k|cOZYCv'1uގ,O.`B"yr>LZ4_x'\tJi )A!4>袯z*Fܑ|KZ[[n!p´d?t0rV]V8hiaQLE>'-؀,%uƬA].G`ʡ}Km[:E!Jg:s5'$mU 5SZ+.T14,Ø(9lqmiӎ\wX akihI3\WY3GG]V/H7,S! )hΕMW `$n%WY1ĕTaYX%aӤ~eHBII@9504DO:cKhzvpRo7?Ň5:sxHo]!aZ}JQlύdLJ`qF *2TZ\b]XT~T$d*RR}aK'9EkO%67 bYp;Nbe/ 딖(msۡov&>F> y20,94iU_/TK ӌ ¾/o߸WAiIŢl[U[ߺ%WFr!hW(`;?!L.ЕWS eZ@:GE3PV$ E mzf?*[ý+K'뇺zY2C gnԈx#H#`F؀Uu mSmEp4pvguslD;˩59D#`{ߝlHR;~3{J3GQ)l0,LՅ AL8>2:aA;F ywБ4D0N ;'볷VCX?e-L35nW:} 0ch-uI5xMw!+􇾩9DLfv9x]ގ<JWaա$&)I~A1l@Ro1iA Djڈ ݚ|;sL3PGWt ww7`7qߔwf>o-%טG^>cj׵p-%=5aeZk>]XIXp$QBc}6&]7u&ROF+3Jcv ~{d cG`y"Q0T:"%a@AIFZh/V'ż8+QoqMmeOȪti >T񽷷C1JD5AOn`(+2Gd5g?t󃧝w_IuDJvh?C079>h=iI#BAa:RщO7Kb^ϿtQ=o#O5sw$ʪ:1Q^5)ݳy<̷{UV)l#pT 1q6fEm2uV\Kz3R]sw@d;NH{738X- x 9iBl`8Y$e`P{F9SҌUGI]lW꠫=sTaJۮQ|K'iY6TNS kv!sNA`-_!]R)B:gԭ][u;HxS693%o_9`:RS4Hbo(B1Єݳ).Ef)O.;$K 3E]faN]睅p&bޮc=CSz6qimcI.q*=(=ٯO\D`we~r>UǺ⇈)r mGm _ x*0[n7$s^qHSQf쵥.3g0<1`lx;G[n/l]u^jok+J kIkVԃ-xrUmF5>6fhs-A9-;t{Y :ɔ`# E%'R)zJs§J88D9|On<#W]mQ>':w?/xGgǏftWDx›AȻdhT bOo߃=ړB;sZoL'^Z = 9f,)9@?o*QO(ӽ1.pJv*~ٶ7F먬PEwď} cแA9ZC?K5z3?JX=M@%*ǥ^>8ҹkldp^zeK}IgG\u1te/$Աi85w|8p^:Iœ/С-Qy~`/Hd#qe]c ӧ#/sP ]Fj=/\L<'S N%ÝIçYTAQs-z@\$Hv`ҷ"(7#*Y^瞭Y;FY#qEfu zrjf-,t|U_1F/U9gC9U87eH ^̲FBڧ R.&gPN~OPht\p(XKk;[Ga !1ap&SW[9=ܩk*!x<%o%:RZ$9$lc%#Nou8J!K1wg$iNv\_G;bSnPK"e='<(4Xpeoo`u_r=wt>OVC8K;=r`pDZpUc{Qٌݿ!;2$m^7Y>,ؑK_ B: _ 57r5DFx@ptptd`_2 VZ3C:0cxT H3iA #36s/JdO}LH]t5+; N YOXI`cb7Aj+. !y\@5CAmUxy6&̞Ccœ7:wy5o{ l3Iڦf;U9Ѭgj+GVajbxPC~ yRs7s c"wA6m9*gZنMHn 䦂.s ǻv0&d,+ 0S{`')Gip0!.PJO-zX3,ԗH=+/.}VP8iRo*h;tLl3`=Њcc(ќawoku;!ۇ[ۇ_/c7/bz0bJ(ak~5s->h_'[y<ְSVhZNd ;6f`CDNt^?CӲO2 ]T彧Eydp_y%歰;[{ºY%BUImRE14DKOJO4[[v~\7xF WJ}?H' ?|oE=F#eOϞݖS^n ׅ{n<ﬓB$d%*ƬgF_W AĢ(*k4o]w~I183usw_7ka[=qJfmYz"f pAHz^F~q*Ե?r|5jN 5TPIA7|+1?p(j5mDvxDUXk%x<-ĕX 3/fM-.^1%MC}u;6FSU,_ƣzʏ[ҿWt㦞6_=}EV̙ʇQw;MML&NF?tZBn!:Rч\@^&nvYޗrfՅ~:Ymve$ltXVQ E"pz[%I=[9v=J`珶tj<TG C˛$0ACph_Ɍ޻){vB7I{8{)xb8]]mVZ.tpcU,%s`&* 3=dtF3Xz9Y\X7B =QaOְ uidR@Lע nqsY4{lYCp \⌭z00VG?.1 l13!C׼5)Lt@oqୌzPKSYf,pkg_resources/_vendor/packaging/__about__.pyMMk0 "6` e :v#9vBlݜC^IGG Bej4-&^Q8-%lci)uwx;UdFkr{m}Ft?HdYE,2O^L,, XŒ)re"&%)'EFCm~W;a#ZRm%—6I (4h$`Vse5X% nmk%d 'vMq[jP}:;XQd #D/˝"ne*S-69~PKS+pkg_resources/_vendor/packaging/__init__.pyMj0 E 1i!2.Ea&C77QY.:7WG6@oB]4mq A;dA}xLe9XNCfs fxy{97u.`(X!_O -ɡ t(ƺP+3y6Ek~"S^QbU4l)}*rM\@ +J.Y#|a|6= b(`QMPKS*:c,-pkg_resources/_vendor/packaging/_manylinux.pyZs` A^5qRYlMeɵU9G*%&Ҳr2ɳba"d#o4,nodB4ʪêZ$wHe(G"KXq̳K$cg(xy,iOZ*/K+9R0^KYu!X6W:%ᙸa]Y,Y"XKQzXE'Hd E'2qb#Bitۀ N,YX `2=v_>9?e? c^,SX#<'oe."XlI{ĀQnũKO3y,#k?g(b8zP X4oKi[+h7GΎo^c/ACq|~tugSn4~:zs~OQ ݛ`.w˫z>?z{Ӂ!9%ٛ)OO'3x|n_L7_^Igd.s2UR!bzDy3f[?,MhQyo|A^.Ze)aovV{!zr3jN}$|!CHlDu~8s:>rO/ݡW[D{d(x&tS%Dv|R9[r2%OeU;+)KW4CFI 6}GNiue)jfTbYVx7J|RylQ#u,b)' C(D dr CW!2 yXj9JsxP[ERxxUD-aG|}qݡ e덋|gk7,j:nc 2!1֗}g2b' M:(ոcs3vx[S,Dd7lY]߬ bů^94s ܬet~ϰI 豼p"RYSM ̶XNu D(P&fYfdQnaP\0v=S55W;ΜQA݋g@_:-N+L=8;c6;#\?\!T<,p~>FL#B*Q ,O|$\PrJX"tZ!;ʿKrCx. 8&)( i"]VR˅>וG*6h2wof?Kjn*c"H4kQnJGlGݑ} 'RBȅ.Q*U{ƪ1#(ng"&.{ʣQ?˪ɎQDٯ03|E5hN ZISU4)__H6/<,ZG XLy,P/.JU#uU`0jJC]1NUX"8]d&"j KADWz@ KzX?P͡R" lpj̲XJ\[x1qh~AeIg ܎঵>9EjATdBad/QV-WT8!P=N{G: DP} PygqA.zGelҜEm4}P#8=\(M{A =[b`ZCFbb!sFAEV 1DHE,CJH3<[Ÿi()1>רT -5n *\hCҴ0mg.էȀnsGW!3ڙLJ@?˭gl@=$Ąq [z/x}/=? it }Y fiG<0mH_96ȪCMoxջ:d"e鞍ihkw_Ym m_qQ!y{>ۍğhVjۓl/I;.k`QJ-F3AZlȺ>e)JRV2ʑuxtF!V }cطXL &taFS1UQqK#Hjys+(+jO!RMʲ #9u`^55)mz!Y@Y=-zۂfm TB}3`]͌w-Ȏ6[r8+߅HF_uov\B(;{ּग़]v` eR'6)TR2Ih]ueZ4KiZ`M5[oF ]JֲAh#k5IkjI=pFn1 5z^p1;{_  8G^}IngG Ͷ};bXCjo$-EFFk͎0$I/†2:8zZwP;uF otf⃄J?SYK3=[YI^!э;9|fy1ob]Uw=VCmz@mkuu</jc9PKSo0-pkg_resources/_vendor/packaging/_musllinux.pyW[s6~ׯ8<,pNYv5&Ƴ/HPšYLf{/mg9p߹ k86M-Ln@Um)@VM)* l " [Y5{ЭRRmzoi&T"R Uk)p×-Yh#ih$Ţ.ʊ-[)Zٺ.MP7Bs[aGXfծ]gN2 ,/>Laa=)oZt>4uh[L&( Ղiq1C BQ)=R*;j6|VAYH8a'ef䯂$7\yJnMɜTH '}dt>.$ q:=k ;WDZ.x1zPlmx#eieuu\8?9=o_go/3.(w.z[4Z螡iDfªur"m=<{ymϘlkqJܗ{zd88N!:!bZ׺BV­a8 2KqMF ,g^* 6U[2=5"JpOBb #϶R ~!BFNx"uX}W 5`l4B@lAl:+QCKz. #מSk%N=3>='3>WWWm|_gpPקGkiو?~StO>y8S[0VC[/ 4mҍ v5I+*\,N|^;r#+zߓ$UQ;[-:~JV#j'E DAsq'%"' @-dr89Ȼ!:4ccZU`{]rlIo.s=+xhsw0 α$ 5Mݾ^[A<<:d%7ҟQ}uZ0B6uPTcaHeUHүy4&NZuU*v; N ժ+ޟσRF e1: B|Ln⹞N0ŧzkyu^+u'TwG˧~Zabn ̍>BЏ pVVA r#'h(MRvߍe!q++^DJC&TkE>FeM=:+ Sʱ"Ԩ E1Mhm+a$b6UEzqfvN?CɉM2_pLr''KCcܠ:{JPw J4p Î}PDžqDtt24Ƈ!elm,F{׋)JRDy*ťF"50ϴj\g>;xP,\ D&zx:91C0^֧m2Zgھsһ~Yg3ݝXۊ.o:d/48yJk=73;4xAF !QM Fr9f|oO[I~0> 6{)0Et/P)~uK ꟦HScI UKYh @~ebfr=O14V \읅ڇfđ&]1"MD$3lk 7:h(D%T> 3uqJbNdG+Ӡoqthyv /ʯPKSqt i].pkg_resources/_vendor/packaging/_structures.pyk0{`eX`?:(^Zv >5#M\_v;^I8}),B"1)RT3UD 4G :o*aӕ 'w1peϻKM;vr~Ymw󂪝3ZSv;0Xi+H@DBȐ6 ZX\(Ae00Y`t FAx A/Yr[B$D]ټtNǠSjaƥoF/BX,qb&bh cmRyPDǽ=(79&(,ΈA6bI|a߾pBW9i/007} -⏘=czs=AbԺR5qPKS 0!*pkg_resources/_vendor/packaging/markers.pyY_o8`H*{¨ ]!4&ip8XE-E%ͥ~3#C,3Ùp5#nhAUC=#bCL>Т <1\JIUSMRۛT7"cu¾wʤz(r@J7{*ֱzMOr59# -dL)])dGhdK)`]=/&ﵚ[kRR!IdIe&}wחv"&d4%3TBC[&R glv`jQ傗;VScvLNYG S(bwq c4sϜ@6 ZS2EBpM2A~%ĥ$;EJaW6CL}ToyS!T7x<89__IZ9v|:aTJ` PrPI֜!wS]3:|"`g!%a_uf&C()n :kHe.4YS<yhKCH킙8r`ߍ `%MMQ2%M Oᡚz:\vl` ǘ_W-!t0Ct[4~ɾő#LAi@[Ϊjkb%4w "5)lOå=iMu+s|;4lD@ZFwx! I%Q;z0p$$fCo~r<\\B=d5%+9jJ04OM0,].ӎr~= XAysaAwה1$]2Mn ?_/..Ns>`G}z>hѵd WpS4xe[Bӆk\O>arqX*apyLv&he ڪEr,˵TW@gpmGE2~KiXU|~8JA J\™)hAa pj1 +GD/y߾%#7ٞV/XЃZ gP%X0,ȆbzU,Vl_ݙoL%i1+(*hp.G#U_XA+܊ d k *S1(᪂Z"@I$+ 7թҥRuPA%PCٮIXM2 8"%13w 34XĠ̽edDV~g[6S 6L%\"CKœ@qrX%ۼ2T4:T=Q&au7wb#ln[\`^Fd6#Ɂ]GZ0z!ҲS%. 33B8aC:e툣a@OZce8=6spƭҎx%^XJM2*e-W7yB[`'`=z! Vvt 0 KKiQ8Ť&#,P[^a1c܂FSXja`7W.)i+LiMNjk.IsA挠}N~two|"{S_Bs7:3W/G1!< FEc.j.2Ha't:nPzmmizR6)~C)1MNJ#(~K"CO'-WǠ4>^fcmz b3{eVŌ[.W+Q=&\C:/_ZU\YIr5:luI|aC=aF`j{Xc#mP,,G5|}㪉NSskܥkb*}beϪ}Ckf˕hҢX]iln20m pHXcA/3)pk J?9Q|))H"Jm^bāĴ v  IvͣK%W̧mH=TFT&w y]lTYC.q}l-M${y ~ $r)w,>CoM!#ԝ-ΔO?tX.J:KwƴpZg]{4Iu!ZNZܔ;MBh7[Z#(1"`n̜c$j̴LA$Y_(伍0ךDA~i Pn#|ɒgdJy >C?~Ut䣌 zPE~NC{F*ʂ`ajD6A2-C>i>Gy|(P}^m Ӌ5^yv7l-h!I]LÅ2N(.Dc'5E]]_珯`*YRχ1Sa j[3%sD\A z ܪ L#ʹBLi7ǎpt׋[(\=]AIe Q+Ukg7 &uYbvEW@ g4!.ѹlLqC}ODAn!,H* +Ƴ;L2[F?zb{jZsТGsřd CAyt9lFV_সU{`vBPyF0g@ ]UHݯƊkM t2ɯ=>#Nu50e/vv(ܨL1MW / [8VǞ`ٲc.S<|NFELvhn~X$>_fmuֲPgRQEB +(nQ6O be@6Kx~ij~HJ٠A̿McGT *G/JDU{@rɡ8-m9t(-qBz6?r>uPKS4dx-pkg_resources/_vendor/packaging/specifiers.py=s6W0Dr$<ȹ4x&d\3o`5EHʊAYJkzW4H`X,v~2,WL(RUj-REuT^З$f{UYYG()7ߚ6qF)zo zVeðJ-:kj .*J"WI(9O͟"m2̓ 0vTJ"+fEUΣf/~7܋,IhxYNT]DgglXb?9r/:~SͲ*jJwPjU4 X%W**PiϕZD,vbNI})'I%vqHlˮȨjTQ 5 6԰JX(IV EkrPxDVHγ(5 lLU [Y۹TjUb sx (.a%Hr*|M3V({q3ui"/B㾁yVAuQq3˾Uh9dL"c2qRhoa2 R܉Q [>ALl)6,,(Kq5J2 yTl"_6,po!!Qkb]ghQ]Y50mb T@MfávNB*+Ɗ)ĕ [sI^kRC<<ɤJ/dᆢmwTIVp18G`W|Ƴ!ΡgU\ Q p4oMP[~vIE#IvbMQ_(ЧC w'i0Ni"3©Mi>*;OP" 4|4:`N<m3HSi!yvH}mfAZfYm3kS\Z'@ C36h. *X٬$EԚ&7rhSv뛅rѫ>s}Y6x䜃)ʵ$ M! 5.mɄ꿐4!XJ{?C)/"Hm0`a1Ƭ\9\ eO')載uJKUX[F)蜵nVLJa[kPAMtGl:+JReH{!tqwZf32 'dP9Q}:f).7`$"/Q  #{[ 5B5LV5!7?1x?ZɣA} P0b$\) /c jZp p) :jfU,/gY'I:=x,7+"Y-؟`mY.I䵒4z6prcڴc-t`k+`s\kܹBh|]W =iUkWsڶ3Oa?O2ij؁h08t#op9=DNx&s{Xr!먼)@1ObU Z'H6(.qtppuۢ$;RczD$J8 (+J@Ԛ]!!Rv,֎Jb'p$p'#AD|>aG_89N UL&S;,}s%|Z$*] }]bYV`DK<2G#L*X/ fdšH X{!wu7csU,6Y|PS"h ס?uV7-udvz.LOF!h{mЁ-Ҭִ%``;:Mhˣy'Pu`ӒHƘl<(2@ԗt!hS,IJfe :3&:!fFsbXӹ)3S8'3qi va#TM\jug5|x P^aSK s6%;m8luX mPv" BݹG-9qX$ǎSXML#Zӟ=3Ts*%r5i 8h\Pv-8MՊ_? zx޻3z"UR˜7>cst@M?s}|Ŗ`&77M$&uV]mi*]j ϧ5n7H?b\sd| [{cx]Ou83dNLyrqU!;)BL['lo{' 2(d{7~nOHZI>oϓYdW5m/MDh( tͲƸЌoV3 OPzI_Msf `t?z`([3ɡ7ݽz ȴ IT/)B3si;#t_hj_]KM_dh[RjIupca^no2hT!=8V @+0qb eE`5iY5&7Z~_NxڮjP͸5;γJSjrfmᖱ8GZĆu@uyVXG]'<'2%)Q xspLΣMVS6xV %nG6]:&cѬ0ϡq-S9$;-ۃ>9'_v''2 L ̌*k9 ă2b&yV7C{4n@.qe5y8 W/@cr4:9THTYT ,HL`=D`Г~ N>bP wt,{۶{Fs45tbh\1r1>0ishc++xq7S+W$^,,y8AfsH5"lHVtw;N1)1tܬ0ܗ4}2w!&ש!tJ(V$ˑtpn흧qn1mKϘoܥiTrG1QSgS bnhib(GK?TvIBf} Hd)GyNa;SQ,IǐΦfWϏ Y-CLuc]br1uη5bbƘ!AMrTjؾnMi0z!:(e^z-Pl5MdeC6IZ w]8gx3)i0 v}t>i?ߘh 57 =\0 Hb'WeuEJOcߡ65RWVj$70: Bƨ"(OT|%:ʧ%/LD`4V;% χu[ݭ8Y2I13ʛ8XSaX`+k/YwK5at.v8 U<?IxXgwWըC^:us޺ =z Yc=+KZNwBڅh: `]`-K)ߎӂ2Jv9 ?[LiJV$W ʺRT ^*Q+Y ơ &qվBG\렠kAye⺄srAOsb[;sFC\o7Aq/:bv;b\ ib N;j]ֻ>hǚsJ5.s5z1Ĥ 7"/AsWzQW.7 w=dk:3޵ amsnYbڽko;˙Z.DBg~LѶ1saF-Xa.:x^xg6MԌ.a%/+wUp^ZZdkiu*6ĂU[  /wnߞPч'&3`a`]Gc$VA=ikU^ao`+&gbΗť |1nxaV֪"ۼpEv$ڐ 2$ȅ.)NNwOxD{pG8 sT).`WKzsu!WbUR>D+^Rë!Zر^EqdǏڃi͓4>F`Q"p4&#G F&n#'So=xri/F帨 &)Ȩ!4:]a` ߏ87FE$+-.jLP)oTөchĩK9X[`kϕŰP-F9XWJTwg)`+ILڟXOCd* ˪R<𕶂`֦ ߂@"30FdryL+bUd=<;z/2 =G]dr XD$t/锌*նMVPC-ʡ1la{-Bbh'_–^*BV!]Tx\ϣNuʼ;Ocj406L3f>,4`x1Su7/MnʟWrj \O;ֆd_||ϒp_\*t% [VPvۭ`+RG&M&7ߍF(q$mu踻 %F߀(t`0  hp[L3yaՂGBEeem*̈ݗ]!_EYTw6xwNuFKM SN?UpMS.WG[]76:{gm+]>ьTۮ3S:6hU#[7XWNī* UkZjA2m%͐re2aW~f5pnD^!oPox'Gs 0`BF%ꣳax*j|[e lfT0|޲,ʾۊޭgiR$ĈSr[ pM.5# 9Q]խ-vz%$[3N$cX\5y+V_qVj%Y2Y'6aE>b%yJ`N>pN??|r'YU T,j EŪxYDd2Ī,e/m%5 X{ȗrSO3q`%"Z?c?>'_>~<RK@#ĢǪ'O=v%w`AꨬkINo ziS_rRǎGP|u#3? aTtO,awZ@Pd^ƶ_9_,"~,`b0ODU-Ͽgn4ųi Bo'gol=f)ir0}^V\NPjՕ& T:NJT8 JVM mQW§; Pkvuu$,lJ;O#K#]ı̊Z1,,ADXɅoc'tsj|ʗC䢎PlIb68+nl}.r!r(+n@xpὙer  +~6.tO^ٍ2voIs`Xqq}0J1$d_To,.e+JN@_%kĊ \*hR)!Qur&IIX\rWI~WxBݓFvI9(Ͳ"v\)ЦV`A@YYi*e.foYr6%LP'+f~!H90)#X_Wj30 #LL 1hlXrlf-m&TEĒ&!`δC&8OG]BoLmQcR+p4ӅRD^-_"A":k1d6Bz~Ŏp#.Oh#6!ݑ bwėuwvm0.pgBq" BdIMCJ˹HBˆt7$y6!Gc"w)\CK){ ?̵qd)@d8)A\*UǼ#@ѯAk$&i3ml%0+JXQq̢]ߢ23whlGeX+Y8]nqּQ :Ck^XSΎ! E2:tZ&9Rg`HA}{>֎s Ye/KS@u.8^}kVpB а\ $g\%u VN2E䐱AI_p?`-Z=Wq2BjllXAƘA4* \pPJH^u)^6`z%\ !el-t^Ǯ]2LlӨ\@qUXLܺ%8 z]h40zCځiD?~'Wvߙ0X.Nhr(RpeXχ>'uУX㣙^\Y \G ۷;1=5j<Zg[-p(ƋFdPlAU*HR(wu:rajpɔVjSv8{rn(@ʹAqFE?ʰg })nֲyfB,6 D  I~sL ϐght{efZJS2?>E 05DŔ3j3#荰֥ԂS]wZM5h/ LFzk̽ JY.fRe)/6e'9N7sGu=?3D%}-xm2-@#A~ BԠC)v@-ѺpugDu桋Y킗5UUT >; [?ŢSpNz"W<8LRHi_2ֶ!V|?>ѣ=q) j$Vg;w&o躻tֆ@lL@v󉿠񸇮deVق\pPvN[c uU_/) m1/ zOK8ق &%)88xW}6C"l葳Ѣۨ!2vީz|k "< Ϝy' =< Wp 5:u ġs`}ͤ'QnvĦ\.`?(jG0\Q8L'Ur% x +E#i5/쩷J6@A .qc !ZZ$t;wl|/a6!ΦCk =uۭY=?q?3K}å-y>baƨu= %V QF|us}eɿ&*(&sO4g]I?4 g$%NJTϡ}*U-B,BƳ Qd`w@KiXHIUKT0(˅[AE|F@t9lD&r/P6vzhPr|{WDG-9gsn)ƅ>*)P- t?2-뀢m}ϖ[ź1(QfY솸bl/Jm^EE'eY+* ]5f%'OnUH`:[럴&ym㣶;>;%_9A]K8;ePKSA3h(pkg_resources/_vendor/packaging/utils.pyWnF}WL"cp\@.`pIUɑ ew/wf)KZ\=rb1PY!Tk ra)j>B$Ef^odb@gN/Nž))Mm"PXJ-Tdo!r]h24uyb]JeH[(s[b wX\7%ExY>fiW&YF2YFP&J㜎u\#sZ\'\]JY̹BFf޹Tk2syFRqoB<Ѻe  >'y'JIN< E]+5,J.T2U .'𷸵E&4kDgߓ%זe`Y !ӤH-`sK!,3)Ptm\s;=;Lp~⃑Ryz?xýʷ&>_P?oR nB7<\haQ؝ne\*;sGvHFz69G}O=^c.Kvy^H8tT[ٿ﫴n\'7Z^jgмjYgGމ6l^x~5d:_&=E]{!QV] $ttst>ʂ~.FΌY~2+Q,Vi.njD&>oR|aN}o9Q6|;v;iZ=7Q5A#sHc.Gr: e )"gk>] xD_Sñ:gD:ET'ZkF_j؎*: ++60֌\ixwhQ(Ḳؙ"Mʋt ,ks-XMfS6 zc3׬7HBMKbSy{rb%Lr~(oL^ofmi ic}{hxm[:j.<Ts~" ="G>]`Pr!0eQ 57,ɥu WdJ1M4;*lT|^5sL۾ 5jX)pa UFXZ2z=^f^Kui~ij%)E$ewH1I|F)K_/N: 0NnϩMZC+V(]1^ XEqwadƫDdi֯y2QL"[$v~l 9Tg>u_ʌ.Rн)>>y[2 rs/ )e[,P0EBRos`Fm\=?{3f|okYMC4?7~me;[oC0z3a_Nn'O"I@_Ϧm<ք﷫yW}kD0ЇZd7ʠvtmSރPTlHsuE༣iO`"W'o|Y*Q^aG+%1ll4 WEEX*H!Vx YrE((Q}2J!#Li֚ǟϏ=Yʄ眎.Sd*U{Xf9]XyyHiM]T=Q`@#J 2IL:y\U};5z@&m0 4[%=vi1smL>+dGКBԊ(=tIulG~V ~YԾҙm'-Ih[4~Tw$wJ:`dy0a8muφV-3r]ۚ#'y2˺Vxt \d3#üݐ8`oiyGu 9MӞxۼ Ә۾yRJT7cOgWf4#yBg'՘u=vΦ#}{iLgJ4V 7n|6&6&HYF 8T{y5[lĎӒ!ԬԈu 8fCbd0whWupzvZO>Gl~y7 V+P}`5NV.m?4$VZŪ }Sl*J4橞9U橾PtMAWUIk,GGϘ]_+s3mmsj>G!=2$Yo6V5bId0SdȢ2F/؁ݚWlGbpeSVb 8XTAmD.Nia+BTLY.ɴFSA$RP[9 ˜qǭV]DjmětaetShNFJoF;-ǭYZ[|䤅2Ƅܭn.4JV,ѳÚn61oYPz;S7y }Xp6s-Dž΢?;wGpHNӜV9=^Z;y eg]B0kӹ]yE&{J<߽,1݉>2^?c b͑  TgԱ 25IU#;E\oe뙁.3@mB8zʹ Hֈ+õ2od7{B U@'i5N}@ BAԵ?Sr&kCLIņ[zaHP7A0TQZ "Kp!O2X`-jtNN G4è_0}ZuIG@ÿ~,7C$p{5NR.EYaJ1/)TIyn5@Vfg6YI7}I.&pılmuAz{"l=E.{`/`_Qad^gEA,ճHP TC!? GԒj{FX2iьYx2 ǭ31PP 4KE`.Xqhe[姾mͿr=VSS.fTԘ軠m蠢6ޡכ@pJ<*1]Fs K“h,*tyHYgLy'o>?ЪiS;nHJڮՕKXQIQ_ o*Aйw|>ź˶ om㲐NVW1f,~{V+kuy/oŋ/<{0¢ {@5EhHtxA#|aj0oF۠eD ?H[z_kXz^`e NG*:%tJՋ9TNG{eqwo:lVfafy.*J |,b>=3˸A#Z%) e K:UcMB,|&ܲ U5\5ӁH9P!.Q)"d[x`bU-!^sa0YA9Aeħ@ 8j)gbyD: IT:tݩރzGeK4/0kpYVU%T&͘(є:H1>l+QC1bsժevΡ28QZr7'nA~g=|Qo*t <(I`NrLn9&O:oLuL'MUf*=Qf3&N\s/.6: 3} Cx7/4BVGʼm:KbAAţ ]MSRޗ? T}#E/:;k\騜 ֩ sPD`a%6pȲ&NedɩDU|b2\LuD r>[iIOQ1 C a 09a˭b_o{RCAsRB{qyZ玪E?7Mg:EBՎ:e3HDx7ij' B"FyG =t YBr*D1(c|#ο9 N}%0LH<{~K:b3+~K* ǤV>+)ғ'Jn&OV^6i$\8q7'"t(gGds|bt۶Quv;ݨR n^bJ|4~@:CxI6(_PKSJ"setuptools/_deprecation_warning.pye10 н28# Mj)8Uq{P/߃ߗ]DURsI)L 'cni6ƘgTuH^#?mmb]i[$2/!l k޴ wXc9nO~PKS X setuptools/_imp.pyVkk0_q(5t]SڍaGi:dlG16H"s)9 kT(gl*dlDK+GkP+ R g,q.B{ \ֿWAqhv+ʈx6A\nN|]fuK٬SY󼫻t6 '9_{4N.g%Oq|v3[=N>&zĩ؁M_ɰ>z P?WddB0n%K22GPPB $c;@DU9^;v3ᖽB|Lw~JWV6 ȪfkM y? 7aToJc77̘ oW,^e2-xnW,ȔՍ$WMÖc~k˭vOSʨJSN4ShyЄp|&cf@mJU )H˥E&e[P 5^8 h&V:9̙7tN iKqhV[b8u8s^!1{J4 }Fjnw3vOeð.<*eKC6-Q6kIH*w!) @pm|x;T[+ki0R'yae{bj2(plF6Җ=ˮ?-ӟʄo܃SF>uܞÃB򸩴jX)E 6-<7NZB 5RjQX~zgg۷/.{m6<<'x_=Bo3gm ~ԩϢ„!ݗ|h39@6MQscPo:wۿ.۝eg1vjY ;1Xih z!iu;' 0\^= +Д@s愄Z-oDC <}@~Pw񖜱C0~`V!cZsi;>6d0q`0Ϊ_0C죂F܃!#r -t܊2oK+2B &-ze[8ƆtHVUxř5P@7" ƀlS )^\dG[b zz4 &pEs*2O1*扉BeƘ Ń;3NȊj)̅r֪h:{eF-,@ $D(yj9&fLȶw<0S$*;)XR:KލU;< Ƥ&B-}-A@OHJ<2MLqzXЮx:s&Nc]e-S]U?m}4c3mQe_ [;$22sZ#xkyqSu 8Pf!^JBF_JzlLM5cvr[)MUTή:ve "l+,RVFLg/͖:Šƭe:7bS 63`G*p/(é:q3;Me[eerZ4 6l1!ۗf4MU&/=t] 4>B>ghҏ2@?7GFϘr_l<0tf\3Ɂ?Tn O--TaRe^"byA͕z[,?7Y\77ەBuW|b1(v*79h>7$8Yy] luaKM'!Ǝ]XsSWsP]?pr +`W #]i'z@sMp쾏|a{RIlz[ 7$>\·I.י0QuoN?skYd́9;E]Pǭägii~CvP""53}cp)ub Vc3TI3K/[!zεeqe)LDPh;bg*p]HMloӞ[ݎ8 K7Zb}Ǿv18H:ijI0GJ+!C:B79 =V"T+e{144'Ccb5<0Bb> =TRmbMNXz0ŕhΪ80‹vI,70%Y"p,na劾TOY 6߼4i2͗44¤W u*u;z_z8V-w!!A?7i P GaH \,1m31O_ =׼9}Id)Γ69̋Z]!l"{I}˭6H'GI0;-jP[:d\Q[=POX=eg^ۃ[=ޠ36pQL߿Cl*E]dd<!Lfv3_iLPG L)$pM<^_LgB5pГXW cŬx_-U„ۋ{=Wl`w+Nq pfRJVQ`+ 7o?$by@{lvUfY/PKSŻP ()setuptools/build_meta.pykܶ~ S\q@m@64(. WvDno]w$R:i. _jzM>H~ꏄ-iQVRGɞTy\ÞՄN1ILTsRD%kCE2Z*uCES-'oɖr3kפ2`ϴjJ&;V3I[^ U {Sd[&힑r]CJ4GvׅX!m[ V›ZsO@VV9+r^Lb^D#j$۽zBW֚.hX>ɲuqu*!5uRom yԒ?%/ *!FHDޕ L F#S^aJx$sCj[lٕbKKD%$U{2@ۄE n溫9(+7%-a4$/“oā=1& v@`U-WlHKƁ0: hɖvhnOP0-/y{ڮöen ; F#z{Q i49y'-U3hvM6O};kZ7چ4X@ ,9m9LF\.? f /3AY["zF ~A)ZZun? VUp\WBW8\^]^ܖ|;ѮgTjω rH@ED'34v*T,u`)*%7><'pm|Njc^ 7KԤiv4;- {wR n JYހɽ{X.4HuiXYjX Τ0&ʕE2Ɏ7þ_o;9Kܗkd%uaSΈQEP,!rq0 +vJL.v՟5&'$AbYk(e:X=kJF3IL;&dXfg]'Д,,$߁ 3!Q3 <^vJH)1) #`\gDbEGg?8.~> XY:1y,7*uKVaE!rKVTB "^cb`z#9%m& fv1>kk:laUrN[n|pg {̷ZҳP 8@Zx8y+~6 Uoz0å)X)#PRVa@EސhMc1!p2  h^ш[s#qkتU`:#Ӳc:&Lo"O<wQ` T%@ ]@iWC0 ErۢӾ.VDq|-kD,/+O,0at/$D5?OPr>Pft^c#}dhi9R@@ !ph {#x}-0ĭHl6=H zܠ1u 8ӿ} > (2ڕ5pyZ pƀd*!-RTcQyB WW%}ONޯ&BXmNgxmMnNL`:dDvYQ6,cĭD'ۂ^Q#tf 7t/Yz [3 x+$8U|VpZ][@iWJp!9,MMZI|mIuckaB(zb9t2F(?Vd .б>20Ϊ^dCa&@GekKk&vb,9W>42s3wKefx=<̷U+[T)Cݠų#élg֫# FSU^ܡ$+8C FSصW]Q=űʑ8TjؘB5s&Q5 [dxZ!'KG.!8* (#o,>O&Ξ5R35C3% N$\3/$x}]TMQ絛*h.IL31< 9%iCBŲ=q}z8=A3}.#v*$•ׂ d]u9G&vuX o>>>||} J5NLahCcC3jū?1``]0v,ǪE oi=lw^ on 48{r流XG/RLD,%90]@Msx:~G'{ T{vco c$~K0+/~(̝N!m0:K !N\p\Ÿ~K_uMb[6|k? h< n"I2p@Q !XN OcZ&( ! nZQL\,clYyAHVAZt<*Z$`Ȝcȩ{_oh_ 0u^,l 7݇˝5fyre$.4 s] NhtIje:|DIկ?PKSzi~setuptools/cli-32.exe|T8|7{$6$AѠK4&1 #uK-{ ͰڧJOA%*QN\d!k{$`33gΜs朙3_8n?9 Lc'i ߜvuMN}߳C}_&!Y+XܔY(3|{} {5'ݸb{]dqﱻWvqbDjF6 w ^ḯ9(l=>p\j"O9 :v>|c/qܬ_kU}ҥ?$=I{BVJ+ǭi}}`z7`B,Ϡ-?ߢ 5@ m3pTY-% IhXgZ,LwueA>7F/S0,mXXC[Y  _ [J\J$+ ̜ D6)6nv*‰ONIf2E3E9|NEКS1>M8Htq#.RtxpRz֔ аM;M hYLpiF=`vCi~ xNqPPsk\ۏʸW-&l<|w'$5iЗs99Hίd- A+9xռ~3:9:%%tKF]P@זو+`Pj/ph^JJ'|%˜#K(< q6.eˍ5ɠ63p FHJ3lKtVJ,G oUtmzX~4; 9tQ6=E#t\ mN7lhl ׯHvض y)H 79&-TA R|dBaFuD6~t*A*fYųgU5!so˾kT疶Ve=(ʐ&υܾ<8&Til!VO@^`E?-ЫltUb2UNGzsrr)SJm-G)0/f{2NFk (ת>YP@,oA9@e+4YeH6*ܠ&gy}]={62blhY/DeD􉑩;UmT~IԴאcGwuK>рCR:}_ҍ7*ا/\3d"6:7?U^- Hpiػ+$D*0ag2GQ!U(5njzk}poAR 3,ua$vj L##yt~fՃ6S4o r-LSaGlH:^ShzބD²JV4N&Co JL&)!i<9J(N|f4= e\4A #D#KJHWEʧ;\ ̪5-0Xev{5ҷڦ\PD& t1}?g.weoi@ h9t/\?xݮW QSW-o_fyC+Xn4u'&%bU. QKEbbe峩$8@;]Z6h 7HPޜJM!:D[F.x,9zoZuoUȈ1@'m[bB7.tXZn(zy6 mU:GG̝ e&)A[l.lQJ[o`y`&N|-gdkiPz r?q` cGHOvPp9Ap pm1򸇜a@Fň FkKS: :B0io!OYS>6JFv%jfN' Oû*"![_uc64O(j`&f)9ɄwNy>©xʁ'=ST0H\-u1Q֬59O-lk֙(yInyk^In7GS&LȓWaBTg|7&X*{}<^?Kc ;HiU-E7kfQ|kh?k5tLWub8 RZ'byZ _ioK+Y.Y)e$ Wrb,"1(I%]yݬZ}6 8ڡ<ÝJY>W2_>|Z1fW( 3@.!zB Z( vٺq 'doy[f YFaIL +]ƤdccA}#urg*:*MEV jC|8M*㤱${5MF*yGꎉqJZ㜔Nc}IL)@ e\z"\LMd7.Gc w{UU]]8{mW nt]3gnY&҉5/|n5.y>אU hf`Ӑl퓋J3y.<̿FIi6S,E, HLm>ԤMZnLbb*WUKg@S-O4orv-J_j@{/QoYj_2q7w˩vWe6a53_AF4ZۄߍIv*:fN&BK\ޠY N?vN `S d>@JxL?L  3ws]5v~=|4'F.$#U@SR]i[R@FN~ovce5T^wm~|}W 5?OTKp`RxQ^yZN {OBʍh@BֳRԷXl,'QGe,wخ ^qJtliJEy c'L~.^<ȹ+.nȌ3E&,wFu%zq] Pσ"ԦJ\G!|1\,* }N{yHx/LO aWQ0{w*T4ĨS* V-C3ơS`TUӖy0EuW1|6:WDSIjf MP+MR1 &S5WyLN)My2hMYdLkf_GMp~r#6.֮٘hq`FD2AI3~DPrVU*pl% i6V-i3+8S)A/-@hwV$ va\+I׽MPyu8~veJ\MǨVIv=tx 9)_Dhպop H&WN`?>GOFRy)4GGR(_?BG_ ~a;8+PƩ3y]_kS_5pJ L|ʕ= Ͷ,8Fgk47&Ony0WP2u,p X-bMb7x_.~AnQˇz'KhDΫ ^h4u\6σ1N%Z|^]#>w_Z&yJ C ":rYw+Rfr*Hd}s= } zIF3G> %MN}i \yu䬝OrPHصo屭@'h#1pm%~vq¸ۇ PՂ~604Md+k[oe :V=EPIG U-i^7]|SC-Y~^xdlT#z1L |u4{{I:Aoq,;{PzX=$Rb~V}5%z#ۇqݎV٬i "QӢIQsUd"(cb\/L')ߑىΞ`S˖嶎zZyS@ۂE d EN%gz֏}"V0t2ȑƪЉ1Siy>I8 ]mIV]hDh5uu-ģV!P$FyLOyzhR`! ]/^386l@D븫4ƒQ2[0~qW z\C(waɝ|*鏀#0Qx~8&ԩIwN;:֏8i\BvGObrk6bk5HgV6!/ÉƔJ05 ?K7/u{ji 0\25[sD\ ;*cսLPC b#y5&]; s@zxK+dLx2֎V4}QK1'":^re (ńa)RKлhnC0;EXC6j>ŮI1.Ĥu_3_c&901B醯p'^[Mz TYNoiM0_Qƾ4-nZ:ixtWmE -+ϲDɪ}z>Ussuh¬7 ؎;1KnJ5X_W4NۋG#7,Fe 'mN|Iu vAӎ'&]gͰü5۟[={݂7av3O0&.>Tw h 0([U <d" '-w9Pϑ3Z=ns)&\B{na Z.6Z\GEQ9"$6/RuA=ɿy)+S.Uoʥ1sˁ"S+PsG&gDPN&;-e\;S5T' #vjT>J^ǏNVkE]o-[\qn1'KuBhIUV񱮱a&䙘 ",u4Pi}Z~ԌMƷmbzSyT Q|w N~ZFUO0*@epHj -B qKqiwłG% y@@`xsB⊑3PVK3((x(x h%COo]; n߿{]Jvvk*Ӓ]"Y& K\LW D;簵mr4֧S49Bɤ:VF+Q'lT кzG$C7 zT[g9_ǪbuAMΞz솩^} 88D#ҋUHg =ӹle˕%2?]VUe%JqBf]&,-̉_u5(ϖx@/o=te!/Jiz(y:OL{{<Cny,6oɷNLșjq/HU*]یVW]:DRffQn R~c(Z24E;yR&E_1jnEl;T@,EF=$?maWG2 uJ9vR|A@{\K`].An @E?"*]ߨhdU!qD35W]f/ݬک8MŹZ'Tkx ]AnLݤpbro .-ZjyhL6 /[r1@%!%{Ԑ Q\#C]O%Re(eau)9yN׹l1TqnVǰվm 7N |p&T $?,p;W|ʂc@6+P6>T\w)i*#u$nTbD 8& jd ݎJcsvuyBRF $.@dOevlb?f*Z =.^7hյCl'0hc;#x4I_#~ @kĭu/V/n˺k8?H>A$,%l /+x1 rRhqL[xMףq øK $e.<-LcMU:^L{1,3XjVvE~5HZ3p͍#\) a)t2ތp{EᅶnHV0UWyf99Rm>soIijͳkZOe^>I Olŀ+CWjlb-D=h;9$¸5D`\㢔j7mE$ױO`tOpvib7]Oi7q5#m^% YX6WT46oZsX^=6aҴK7Iy "#y7~kͣk-=SSFG xiƟ4eږY&SZX` b$ FpA֭Q2:7asve:7n0g nKa<~:y=gf{v~&?nOvv=Djx:ܮ=x=Eg*ďL+:Sw5}ׄ2mg=vA047ߟY :oJ)p@-D_KK-@q슳A֒̕^3Z7-|4XXwD-<'o1E>4gEB[̿o_flZλ H["46$;&?P^Ft0NZ 5tt6Ў &Xaг_^F;"lt80t~R{)6cy ,Zn0qft@.!uZ䡗@HG*@mwa5Ӳ8mm{*Q.&Y1 jݞ aSF:;Pίت

)E\"?TL LgS/)~>R.bwӮZUb5dqyjrdg/m[[['JC3h<0;ۧa1IF?dLh%آsٿE9:=BA=J^@l1~` ])}E^ 60.k_Z5 _ v'K߯M7V^\Qfs#8@{ˣF}z $E@?4/tS%Hɬ0O_0&t!饭Ј +?r;-gu;]%l\!!B}1q# V-ȝ^vkB!Ղ4j`s^s/{FG^Bh=Aoʣq\E* (EB:FP8A!V XԤ%sҬZF+aě.5WO:v{@0f vX[-0\L^61xZp7k&$>Tb<}Xw_!omfzINL*iE&E-Sޅ6L2I=?jj'@ZpENΛ Sgvs}&PU+w89b$Eiq>kc)#I-:GW0\҇*C_$x )-8Lhqʵ8A9 k!>j'Q\"T{wӧp"$ aK|d ^)֡`ZIKXuS>\kjZ4KlPH=,>z+\L6t & ~Fʛ>MLeHe< #76W3ͩ*7*^ Wׅ䘼Qvzt+EZƂ3jEL%6)-6) ]EhJ Qklh͠?y&mU"F_cs}{4%շ؋(yQvIRlpfNIVNT̸n'8ꢼ+!sbGQ]ݨEY_?ŘG`R#{g1Gbr_f.&-Af2VݕT UI>0wϽ3= 'OHzĸ!Ք=% r6EH>~yTVH S q)m.ꊵ_p]ƍ% Jum=kB;i`.܆^7EZ} S5#ǽtc@&Ri<Ne#ZДN)Nf1xs xm?@_"(]CjZ)]_*GR ,~6Y{"p^2QҞ YD}A4QG*C9%ɵg'LE#VZ!& ƘIDJNF.aO]ŚJSCo;0LZhAֆ\{ٛRFNQ!٧+4S3A*ڄ/"*~#W'[3zƒN" }Ǣ :!b ud8)NEo?d'\GjeM[t ro9LaRnO &pp,P_8~+sgq{#5n81~h8O-5v70澾@ѢD{V%3ο[}3eP9&)snhOS@:\xjN }Hrz=(k}ag*'kM~uMCC|PP9l~9_爭BbSH${Ƈ!R-h!e"t~J說 %PsY` 1ҧ8Va:՟]m` Q} ՋNHra! B?K-9:֋$=w 5}tw?E(@ڴ>g>> ZDf5Q8X&ex-GJmlԗSMRUyⓇȡQ'HU񈸯N Uy HT2rx1ؔyx2_Q^' XZs\b,*'n7t|^7^_YSN(] ̨=hD1eb7µlomMkC[˝)NDӯ ?+Y:I܅:='t׺yʝR~sg1.3=gR"&7nd<8^eD@zn[eqZLM8|@~Uju  u*R+1)AŤt-^O/9k.QٲRYm<?a+ 8#R'`.!P\m(ݑ|߆KJ|ҟ$7'{N=Тڰ/h-4qU0"hLC2W U'^*f:d#v7/M tcO)(6ZAyV_2Ý+QOںX%ˆ4 uaD/+^*U Q܉*mJr4$J@ҢvRBӤ*px69,gA?"z;ۼ/̃xI,]骳.3jwu0uMCB&񅃂 RA^D.pNrjD M:7I6c\|5WoH#cծT+|6+谔mYW]t"P4 +vv%bc+UqP3Iu صוosw&Ml's0x֏ޜXڎN`#B"(ۚAZnU#kEB7Ol.[vom,e(ԚRn4N[z)ANts|?lt&lTZnUQd#JJ%B/U0OjK ZrٹN-K1 Ly:Ce38-ztM߲/ aƋ83ʣF1e&>ruy=?g{AAV4P @usҭJs_hJ-$m@-*%rZeβ=x"h s嶣єʲ+Kj$m UZxͶmx\+~'xTUhQ+l ( wdH R` 3Cmiܺrl F+1W㜻0,j3bLp<-?QĎN);.e ؅U^G-8)mrL=ZWavdzS0¹l^[c@N?x7 ^IG˜իw"qňU"O% P7p͂mhʧ#}d"0,zMr'4wfg.0J]o=uPFX@TfP"ιDOd'⯒/ؑMH&J@T;i hXI)7CexJ_i ?}3O< p㌊fE`OIQ󀙙ލa0u$y#rHEI©-b(c qY^A7t#6]jʪxiQ Hp¸θr8.ڧ~mV;G4]ZM0(M>39 f"Vj<^!Tm&m墬BF$}%U 7Bo;6?fܝ *th3;2"+cML3q? `b+s{xӬ< :ٌb#9#ƓхR59sO:* \$eƓM9(4ݐ>Lb;O<8ϑc4942s gzk.̂2.[ꮩY3<[dPQ0#mH֙!)\ 7ndU&Q(R.Д[8j/x &fF Ey,qI6vc`;BW ufm  4CMُ۾ yóhn,eZu)PN`HosPף]>exjRCVq_FKk4B$x9$p~mmoۍs":N Cf] }<} u?@SKJW02 מзə};Qà(%tFݹ+K=X`*ّ0Aojh\d_%i@QzqmC[#i_xFmG" ;淡hGA6&Í[zXA1ІS GaT>6 (bsBroto (‹ƿzAɝ#q^\ DǐeB۴2ߔ-`F}F0ҹ̌cu-*|8"R$o?xǣ*`YV' .#޸,F Kx]|.o('c)i+W e3i;<Nc~Ix'qcuz/\ Gp%cT1cZ'9)A޿xRꘞ ;ޅwK xüaAvd8ZO obi[ׄb{tla"E< J$uDѿl~b17d:IZ!^W% Z-EZ8Yrt*͘Ȟu+WdEg@f (:?`4bN*Mq̌o}doME2*n׉|(LBS β$p 8G\\H*-srb)&A@][l߀I.{1jBU7[!3.q<u"^`aұKb]"l~p&x 3Ղ+U-nՎ&Nv&%s\[ w BV⮉N?lڌa_pXmvtkP:_kX4L:k55L65p%`Iq`J1+vT';>?OL4>ba& ϸu7coGzL2*)pRhGn_t{wPxTg`#bdHnZūeBNx2^Y N/_*ێ Ea_R.36@$?85-q&]a k@M|.cWi>rwEBq2U6+p|o5g#xЁ1҂ iu8];\oA9ہ Z]MU"]?>*w· q8nCo+Sw/?֛AAbzZ'wQڶEơIͺ>yjGkPŎ vʾCw_< iHNʹMmCUA]l~[OqXO ;b9%xh-= kRC+@(oʓҒP%Fl7 P*[l㪎p}!W$%%C޻*$F6 kZR9P~B9#їH9;#[HVt0Y"ˬՊ87LT a^;=Y[/Siӟ0Y <Q'3$ *G v(D6礼Q-_tUU{'?$%G?Cmm_¦xK( [Ao]< z@ēB{Jǀ`~NA^ ĸZ6 J<xN0cek DF/?-+:GΆDz!rYQ}a]|PA=W^} ɿb!f6$9NAPk^ :gf E+9g4gqrc=/34aЌG ښ`Pf"vPdR.BP5D[AHN:?xT1Y 7Zӕar c~J>{P9ݜҤH{v\8C?%ΧiN+atӷ";lW6AgXru7Oa@Lo=\[7sqDDɄo?}NlUzo6Î~n-} 4[:v̤' :s\x`x^i0=Ә,H,58d%MQcgs'սgk` .P90 5k(0Cg\Uo_eUC=,zh « ?Q?\ς0tE QywWYB|@|2&it5du%6xc8'ܸa)<څ2jla5XrHŃD*>}-k-r)FX,(9)=uY_kx?O@%{tq ao͠GVJ(%%N+"I~G~Lחp!Bȭ"+! ֺ# b{pv,3 !##%\\\<sLaT+ >@HmxтXe%/Ilk! u\aȤ{}z7'j,8Ġa$g/w;v0<s f;O|8=alzN8q.Q+#2kȬ BLF]H`U\!P jz;ya׶e-3e_Ի՜xv8k:D^St);a`Ms42$m?`ȋ8 MNݤ ֤ԤJolY5^aJgX9 >%q[mg}{אdQ[:d ڌ ni%MkmF-֔  -0v- j5 -ßx FA^C!,0Ήtíq =@ ,!d a$ɸl}#jt·[ 4A&aVm/hsՉW4N^`0ҍ;PBKv)p$.HHtޒ`"RK5w.フ1X"0D 5`75P/7pM_f+ȸ6ZKpnysxm}b8 Ճe 8ҫKFăo knj/Џ!9A?rS,qwwt< *EIr|a?;3A>!#mGwtt>ܦk菇#&јzcJlapӵ35HzE4ĥk: NlYIpʨw뻥l*Pz?؛hg ?ȧeDÞ䴨'%k_3Oe h> 9gPf*Kؘ)lȜ˽G¯ыöaI˴߃߅! `r@$OB3\z?$OO|Q$:(OiB ڞ w^/띂 VaLX𷪔f^x,s7w wJZEQ09 .Oœ-(d5M .+.̹VwsU= 6 (c^qHl2\&vaS|4>}xw/g1W:;";L:ɑ·K)C(LƒFam[{LrrՀNn3+~aƅc*l+_8#n6˨-^\>9Pǃ՟;h_j)DsGtb2OpIܯְF.K,;,~$E .G\b?d*㲒 ,^_a!pxPY4&[1$l)3C RiAaG?75uvv)C)aAuAku cE,E`!v#;з~LXt>_  r>H=;[\DH? ;}C^w~|u H/F` i#ه=(㉦ }[!//=uMZߋ:Eu Wti++[ﻀ}첊sLcη>9Ϥ2I (gRĺ6C#TyeP%ҙΨɨ2oQ% {Z~6ewe?:rA+ܵH M= X|0d!&Iʑ(-2xI@Z~H^dwa',#@iA#L)(͂GM.`\QGf(A K%h<;Wz{XR̋0:V=5)xo'_%7"1EވZsL~M#򛗔_=-%۴^Mۺqh=5۲V  ~C?z֓5 7 yXtvУu.ʶ~C2')bgh.jmrѧhV>'TF1Q0m@賌hO&\;H&6<,ʷJ& {^'d#[T^o.P5 -. ~z]oVG:Zi0j<,QRC=Ki` rB@\e>4&zUň$(7EH76(+/KS=Pge/_VsUs:fOW!)_VXo;'tvj[6;`q;0\^o^8 076IRHR$|kI2{7w޸$(7I1֫880p& 84jhug.p>p)Gux7V`#c裇v<ְ1}}mhO\'{W?m> \zځ~-R_O\}}]0&ɦY$CZ[zq 7BO> `}#(%_  p$9 ;H߄A[ n(!W \% p m#IoPOM ~~}|˻DLIn6% ]'feU*< \7F(٪]4 bc)m aŠH&jEt#ə)i~ͫe~ʍ6q+L`š-^"[tE9z-:n4!hnkQ(SoQNH?ChsM&{n [/Ug ;^7~nzQ;xDF2.#wF+M/rg||n3nTffNR[T?cPor='J;nT}@6;D8u^P:Գx>%zn#DxsE"*Ɔ7)7Nmb,ݢ_q!{ kq$D}sJŅy/<'-/,tyTG[Bk rQ%ّ|yNs3foGyYuWL~eQчR\;;UrgU*Eɧ*cR\ZCZ;OAoFh)9+ww½2f]Ebf^Ւ:"ls2ϑVv.zE,! 3v "o_(@'5Au@ކo@E&wpvC`!'Ӫ!\xC$;I\skldG-XNP=k<.WO͍hK`9'_Ea/Bu@^*TwD&ˠ< whǴ "Fokrbw:]Oib01XV9 }Ǫͫ}rn> go#*+PmeD ׿~sG* oXh~K>R &3Y#YA{RG4ޜ~PO!};x; ɹ`I/N~~e+ q_gq ðP p/~,~ X0Y W^|˯__yy'yyo+/p įy  P ?B- Q~$~Ż9)'-`I)֣Kぴ؁IOpȩ146,S#fyrL9z)|9W1ٍ@>ex $BQ He#IYN]q$ ;ap?/1)6 J) YORS)؉<8 ffZP L8yĒȵ"_v/e:3R1=NIrer<0Kr!!q19jV=[]ۀcETRu6{sSi|W5j;UWG T]@$[fԛ5Q(TONHɴ Wv; 7 2$UJNmB]^rFБǾ%HI) kĿ4U5Fr+aL |ֿ'^>:yQ OCprՌk$ns6S'C#.1n_x sSê176RYs,=qd9a5wOz{DfQ4T@5H4 أjʆGztM8`aWB  PapogP!w)wt zD nAp;ooIyxL S#?D}Jkn',=$jCCw3Dqvv2ɜJ31Zilpq=gc:%VZ(2FL#x%WPTv֩x%fgx'(~RQ8' v}bC#fY4 l 8rZ]2h vYDHX *e8fNJ57\k! $׍>Al umhwsuDOnRtTgWSyTpClkt v:NO?D\%4^*1c;޳)dtP.rk\ ԥO%` ֠2zL*sL:W$fPX4g2V,Y6G9^ZMPϿ tRcW+ ~t=/=ϵ6ga{D!KwˊrvL/])GϮF⑴}Gv`Q؈W&e*c*|># ]LTZ 9a Ȣq5_c*q!HGxc|r8dbm mŒ'w #fuhsGo=PJV?O/P=rMY(ׇ,ZARw?G2_UT ejUeh) 8|Wb֯A:4T6aeNrJ1ﴗ2},<9* F7揢 ǡ&~όEVA^dF\򷺽 B1vwdg#82:e-v\'_.ҴyC%!̠ho BnLM!h f#pLQV<ތP]1TSG9jU՟on #{x) IڱS% IS{UrѵF&ERefFK!BT"}R>"A*k?FtA|wW JNMNS I\pJBoή@T~JBmAFE ]v5 q@L~r @)Gq*4DHfy`ӄFƨauDUW,"f:HQn5 ~h[Ǎ&6 %23{ qg)Wê-quwӌwXqEOl(k?FhB_툦aor':xRۈ/@{i!x;m(]FvQxXd"*onsx4#S(0Ye#m\G7mOEhw }PVAeD<T_ >Wp{o_.mo'~<7NET#4ACyuMoW#uMΕF ehG+^rgFEl2PIt2 L)}~};BpM1O95~+>[i0<1POk^\N7JM د6H_6S<5ƶ_!DmcGfU _$$;RlV5XVB`4ʞGjH%L2%iO(>8&vQ9PIn qNq͇vE?E)2%u/DSTa=OQT S7* l:mۘ>l:jw< 3Z{0N`ȍyzŘ%jJ7ɱn8C"]փ4E Gvn{V3iE5Ly!2t^vvy,Wb[4ꪏq-Q]ufwx?/ vLmD!Fތ@ ܼ) /DhBe&42 P[ǟ*@~9ۑ3{ŗ0PH{s7? _.ZUu\&ir3S„Q͆! cUXn/ 3mb)*wTo[dJ{yPm@Jmhjʩ(mcN b*BDclΤIJ Taoi*P{\( ϻNQM$is/TUn e[Usڦ c[qjdҴmQUlQiHɆ# ^?¯ J/6՟lYS|«O$xU(}{䝢Wϲa视L3$q=Mz4W0gTqMWs"څީd9zs}ӵH~C,^( X+ZNc'x(OƈLP'mAZjS2gh 4Ӥ v^0\o"7 Q}0=[skQ[Qu5-,!Tlӑ ՝,tmoȍ[B%|dr%.SYF;*:!UZBT*h AO%> Ʉ$ .#n=JcrTջ+QTf~鹱Ē jpwp]"q5iޜ3]{P pj!h G(!@$9v-r=3"Z+XY/*)fwo$oh;kBuL:{fXgs+"?{RV+~iB;*#8 jmU*ro&*NSy{y8[kQʑ8zJ4Q;GUS=d]`qֺҹ &}΍sإv1#h@d)<#9cN!>Yhi @Gpy1dxoN: ƦBP.㑄> ݶ`.d6|N7GڡҶ( ,cdDU՛`%C;x?Y{fgcH,AzlSs@ Oz>za9 UCQ|P]$05C-m裖s:!r{]xK~huXG+V nkm Ԏ:10-Q# h>ֱPu#uCmSPD\_ %m たZ\: O&%`ڱ&}uy⺩eEJhfTEt!;0*-rƛQZY 0wkJd[7%:o: 2 BKGaTQopW(ad|[ˣXUcdBN;2v)d)uh|%0"zj8Pxn @o fc11pfv64ih7 L4;‘Ҩw]MzdjrN}QP"6ׄz&=ZrqS=LP'P])t'.f5.~3Mm=15UF?[NM`v!E9uMNٝ LJ@ʙ8&5êjM p̅86Q 54!g OJTW ]Q􀕍ާ+\!/Q>5D}XW(zV0x;8Qnөo8>ssnIcT7(̳0v$JsfL 5wa3gEiV ` 1s:nQ% XCdӣBi/qo amQ ׵X nk.84{0sԪ79|] ˠ^N6pf\cpSE=F}"vgA1{y?AMbhT {nq7 ;m9ݰR^ $liG"Kj|_?NVǗdUu*8Mz= ;&ea1Ofa)x 닪a+|n$#K}Wke;0\6ּxѵA)G?xB,_U&=v?4'bMEcq7"~1~ R$ؑUúrai)DY8 %Iēbhk74.NIvDљG*-;8XiTtn AIDX%Vqav~kbH;ul_n >^ιM/@NDאN)i26Ie# g 8P!0z8H7|r`/!w|*Af|RŢ@NkS>=,{jWef]qt LJV|9Zn (3 'kc#bVv28X R]gd-K=RR(SNJSq?'ء~QH\Lm & Tٸg\R7ܥ#j>C7?paq?}A/W{^Bqf'7N}"Ӳ2Kr'$BTFM\ -YBܷK\yYjM{Q$+.`uLf`ÐMi]! unB\q2t-s2iNR_X3 Rl]gI@s7E9Q~X GD=-(<<5"B f'>3Nj#ze]@EtNEHuh.i.hH!Be/WVtAʊ#)B[s) O]d1&jwAc>:+3rˑ-lDx&'P7qfH:kFh  O 9fRYjq˛BnûOmX sƾjr%op:7~#[Vl8͋BH"y@| EG}FxY! [9:)zrmbLwB5sYGB in8 &|V^`Т#puzz])`!~E}BxO<{D-X060E.C+|qnrŊ63F@-4&$+Ym ;^R126>\ZڿIzZg*@5 Bp./S%ζXnポK cv\R3u6qK[]Cllո'`SzueC" SuSG[_ GD?zpY0C- S+&AED udB [a߄qIl9%؀FFû+Ӓ*өߕf\]<ٍDLoYZe`1r.pi2̶m= +̎&u|@7Sx&݀џt&˝#厜-1xYMg=՜f LgA v}&y ׷8dfgCNQ*Kf~\ x 1 dN}+wP*S3R'͝X,a%+A sS#!BOx0Z\AM=?"r:]FGk?yf0왞rt#0PLoY+8 8B^H|A՜NGΑU.QeśhRʆwR}m @pڕ._ݜGOff s:FphGShȎd =oDE;d-+ι:(X94MrD^ݘ\cLn_ьm)<34}4et K Jq`N Q80$JjE "|6LI"K==3y9 DSx/P?0W A+ RBe_%Z]%2z˸%Kj:cM ^XDk>5w> ;GWkpv5ݏ3 }08 0U Eɢ=e`<4tf"l{ݨ[alx %h HYj߅Px3sji^5AwU|Sa9OÖj֙Yyc!-3kŚ2ki|No\Ě}43$rEyRǜg*A’"#6.R0DFf7Ś5ceᧀLP?|eMg[I9LEEʕfj-jftneii_K2 Ώ;*8Dc*++*50d Lb KšXTj!Y`$h|M B--.#;si\ҦO R%嬕e&LXﻱ.)hLf\0LE~ ^w i/oʹRi{tiIy΍H,sB p:(Me[wu긡tH ?lr6:a2jrž$1a_]ZP8{՛]1&)u)ȼ 12*ƹgHbvl y8 vXDE|Go5?ę˱ )G٩Bo\ W #~PȘa`.^+-)6Fd]aro{ʇI \/ZNot30ZZ^j2 I-""Nz/bϙ3Y:+TKJ7 IMӂ4ZFs)>Og g>Ϗρ6ۣJ,ȲGmn\]] EFڌX]gm̲z шW4l56H\PPPm,+PV뇺]v_2PJƟJ? '?OZ? ~Wi oH778޿U ?7߰Xo`Hhf~5Z1Ď'zz3v?~ /yi˯ھo׿߿{PW;~On>sO>ϟv˯?\ͷ]z޾ew3D3<7.!>ccq׀a7[c61˻s783KK{i2ϭY+"y2eBܓ0N ɼʉ4`/ya>ۄy`zLi4YL$$k!yJ/_9,sPZB<85a|q0&_cVtCKc(7[xb[b*gs4qeďlhZg^X1HӧF='q "ؑ*C͡9UqŰl鲌pfOdy] em8c߱es%c{`-2vDq/w }yoc> <<$GW1+q'똘맿cpeۻ>-C╦=:|{/7~cw1w*p~ ]c\}f>=EO_Zy;𧯟gx?|wk4|U7l9K޼>_ϑuLeoQhܼncיw*Yd.1[M9%"zs Cn{N JYB6ԚVXLWFi&`ywY4TWtw4+2'SF B0Tf&tٴ|Ќ&BVdZY C2LPZ\ @]+'úߋyy j\@٫Gٽ࿑9Z,() e78r01U tqyy-njb] bWfS9`^" c%ĈU` ]=%Vs1@}x0m|aB5 d ȘʇWsS{on ithgYd 1=%S:ȝ``F,c^E{]Hxjp鏈ۿ~Kֽ $81+P/2s1)]_ӽaNt߾~_^^Z1|['O5O-}u-]fДEI{]\+ګ \:[SvQԄ3&REb_}'5Epq WqYpǂ\in:f"Gc"p n_t.u*܍춿 [_h-gΐ xr3o(e+.}jcZpIogL7CS>7> yZyq\T{X$R(IPxC97 =0/ tO&<鋺uLJtPKSbp$setuptools/cli-64.exey|TE8~;M:7, a!. ڗtDE2( pDL'M#oƙqߌ8eGgX@v%JpEb;TwD/ҷnNN-gd$)I$'Z5m2bڜ]<?*\C㲲:]Ƴzٙ͜FL왷3pUrzy/=3's;=a,-I`%ڤQRFJ$큗GD<]Hp$G~J-b[EP ҷ)7Ylbm<㴇k+va@3nkK+W:+o|&}y1Yz7_d>B_txA>AO߿ C sga͝]4NdT58iv,j S-kLI{ˎ6H#tKUKW`"slũl]^qjj_ޛM<jP3T>iB^#EUPoRѢUiR-qOol(H*Xjw)3{9wW߳^ ܥOe45kfMũgX5ߩID0ۗOۧF45wM}2,qKr$ fȡqMmp F 8ءM٬Z* gSsToӂ E걤j! TA9۲$s5X${&%aXYo*kRY''*{N g3ƨ^G4~pSWDJ`  J)I^hUR ;`j4-zoO $/9g;*Sdj[ih|W=N<~,Kdi%)f(+hmBcxj6gy / 4 i{EpF-Y˲a5g8o=㟍 }j$LFTMt ys9t~wQvU,i-bOs1`. r*p.?lGls>Y) 3CeAw   nOT+QD6$:3~.UA Sbw\z?UqXX^m&n-`Bߺ#ݲ@F.?U9fQ-y|*?lʶ@_Cu3YHf([zB!@ ;D)Dfu|$HPe4RXxD|[0G.UӲdd[kTҳ2Oq hx)_SR+ X=%VJk1:M}$*%P4O< Y',S@ *7JDj6~ޝ]57f[.+RB5cbfGR$),F ;zb (!HfCDXq@'nPc, E=rV *k9.%ۊ ,q2DSK! ̬;[~"+)aYn؂ g[tqґQ0^ S,0!47H[+(K#=iO x-3|cyFjc*]ܵ_Lam ll@1\~{ϘfŻDWU&"-2tZ͈}~,4V(^ Zuþ`Xu~'nX0< Vz7ɿIj$)K5NO3`$MfԉE>Nt"E>t秠)9>DFANS<U+yZ{^aχswNX&g]nb} 06 S䂧X`ʼnhjNq7C̚vB})p+@93XZ?\%l3i99 m* Ȱ#!AUf&̀n}#ey^DD;u*U1^a{}XtA4*X#Zݷ` pˢq'UMTvVBM`l zfnKW#SMg.8_el19͐ncVl~=M5?͑ռItD{3 5PwI!X/@,YCpL 5]> yw%Z BМε߃0 D}W.7{<<$V0: nW h߂Ԏ}ơTW0V gp]šFMh/P‹U3{pĪ٬,xҫfml> 3@)i$cm Qܖ @PZ<<8_{a6ɳ\"h*O?mөootKi+ɨ0uZ2`qն>r  R!E:`jM ܱ`L`y- ZAV0%ՒʒZsq!uƫuW8e_Vky6G)rҝV::+xL?![UqbUNZ:Vu;s-23Hop*AٲNr } yr.4h|n(J${1xY=YdPWjFZ{0 W[Pc@V>-D{CBPw%jK(a %Cvf 6.(bUFnbaJԨ xbZQV(P_YOPz6{vGi)'%NT!]L5$SY* Mڛ@C*PX?8k0 i/Gaȡ !BRMٲliWPLjRtAyRr`YO9!?mIϘA8et>Lym݉:˳!ƪLkY:8O\'I~h+NX.L,oSO06Bhfnn+xֱ;Ԫfm9M|>ZEP"~w@4S<ԮRkgCx23Dj׫Xb]l()zT?<#m>,PSKٚDWźQd@r|z Mfic&R!įFtsaB˯"pX<,kŚS^PSU'ȎJ Z ++q#ܑ(M.9jLz2Tbi9!L m߁/ňc.ۄÃ/AS! OY&#b0&y9b"YWb%1qYξ}WhIfb)O2̌I˲H9t/ գ`jҬ0܆bD>+(bNJ$Cu# v8QwU0UO}3T&_Q4>éPg"^m:wr=4t{g~Wq@bU0C7lqQoArY <^1_dPP8+τ4F`#?@VbUd_>roÔY3 )?26UX]tƈ5$ nn'WƟL? O ˮ"ŸTvI]hOiSVV@HjNWT i^E/Uu=E a_q HiL*vK|5q?;O:8F%WYSR-! +01ےiK3T?=V'P<DF ,kV(щWu@'_x*ll 4*; : ћ؇{&h/Y0 n,蝄$dhNB{k=(a#%yߴ+%( \D%a)m/Q~6,m33YQg*?8+Eg1lƓ6IThx- OdeFs;,jJSRYz.Ы(hL^^#[LgD6%.Ceɘ#VRVB %ZǦso=L͐1>{c#af=5s$g[8 ͦ z-Qtz{jA,OUڋm.}ᕴ4蕷SгX^~kbn77PKK/~`sY=A{v2ڛ 9[D)ǿY3u(e(,=΀1ƍz~s_,ZC)Hn [b.rC"7h,rIȕQ957XJ0ܮmUOH^@gˇkKReYien@QW-s`Z@3~-vŔbcsqR"9udmiXiTsi `-bm17*&SUxx!;@Oi!RÈ@PxH%h2q В>O5 MXK@*vņ'ĆKSأڇ[`.%,p~ i~ڞ}: , x sXL&]$,pY}DQfm)W_EbΦۨAyT26nCJhLB]2fz5\QtzA?A+eXzВ]ijT M{{_/KEaѫSQA9->4 2k(ˡý ;hVF{\ @j\S/ti8}Q_U^a9GqHYQ-S˚H&Hz!= ښ6*ޝr LjU'DDDЬq"WM6:_ WUQjTFgڎ#Y,Q94kЗv6_9L!6$Rx*E^eTw+"ȫ %p4KX1c}>t֑یW*v(a5[ۀ<ơDժ6a\􃺺Kjc%mWW%gh0t:~ʲNx[u(^ezFKd4_blvB\Hza49mFr cr_x\DCFgѩˡX l/죥GռMS028"?jM>Zv,o t((ɫPDzTY`x]]!X(-6)LL Z|zf!!1y80Tjtn" RY^Ǧ85?@?xdS\2ۊYq'gxr:Z68*^`-f50=O9u4eGD| ?0Yus.㎖!ͣ6 ۪[ƧPjf;YMdrYԪX)=s #Z3^54Wlԃ(V͗CoɄk~*Ot%da@<,B*S ԟ(o:buKbQiF9##/kš׀V-e~~`z.szj*A;6mezTT=5`o>r,_sTx49hP_HH/.WM1ɼQxWz/y@lFY\1ӈs9y۟n ,wuP8Aw:k@> @~OM!Mv.b~ $_"vѺnnS )|7"k~U='sT=7EI^Ev/Pk/vʂ<Qs? W 'S`V(ujLw| 3ܧL_B|NWmho_Cn6ҷ76Y@6~hy;O˂EoNǞi\^3c@(`!A} RVM^_Zj4PTVHkO0A{9>'Pց\,d|K'r>yW|mF51('~o0Powr(l|O3rbӲ$G~ Ŭ#<<"+a#=ꉂÔ8uIGNsE2+|įn KSwv5i#*U9GTW%9^ئFOsbpt?j1 {*aO6ޣ슛Z)]:|ó\]8n PLGS&8h}b6GL!= J6PKh j)/*~02L(-8d&DKa:LR  f\xA=D]~@ha-CrKsljY~Z ea!j$G"^W 5P~@{Գ>ᶮ۳!0r+e^Ld{ grQNOӀXK Wۉή@x9)!52|Xăއ QwD3v/LcEH\>c[ՎcN]{UT5k.B30ʥs[i_eL:|UA.pMjF+V{_z!!a:.>tL,B ]KR{g? nK:ױ%sE(@tq^6~f+&HW̃TQ0^WQ0C-2?*,AۗYjBz,W/Tyi#Ys /Q4gmXP .kс,֧8FfA' vΪS k O\Zb$'U#=,=)6v‡.O'N8PVhcDG@;o|qgNNTӤfΙ?;lQ6L'i,t>\2K%MC0X_D!y;Qą_Q:é0#[1O?*Tz5j`X_}G{^7 ?"t"ߡ?ʳʄBG΁xxg< 7+&}/ƤGإ|/DŽw!aMZBx 8KŰP[g!]0=;;;&t@ ;3iAttRE]{")=(tx$^5/>/*6Pۭ-"-{Y?oE chu%T,R LY0SĈQ& AP_d+[o Ez::!K36ɼs`? rW}q_Jm;/*ܔˋ {lu鳝.(FqhF m3>G-`YhFԦ 5YZ ]}l* wKWn,śDZV2َ5<ӡFf[$@ߢ84&V6gӳgVjdޣ0ö]e rH6zhWm++w",f̪Xw) ƖX7{/wJ F]Zʣ7TsGmZq4KDൢokE֊T#wf"KبST$rLRvd(!"SlT{[V 4!@Tnl,.:zlry.N ¡ez q߈eڤ,wR|F?㐹M 4`#mzGMǣ{pAZڟ%p* jiU0RP}]؊la9)O^4#w q l?5{:\dd}@枹OC?}{ǡy4F3B%;[MP=0GN( RztS%1~ϡ1mO=.i=m*̥ڇv'@niDUAv_(*c.hx AWK(˹0Ǡ%"V-Iߣ{3M&CbFTF|6C |xjk"VCD;?5,I%ih]r`L?41mx.\mx+7x[,ک{E|%"^h輸x#4GL(OCahBnM{_s *x˷i*Өh; H cNq!nu=[typ[TFwX(w5WvoVzzloYxMgI@HVgea |hA%rEӅQW0<5 ˸]4%"a5A0|!dSsԲg/P(,^GidcZA'r(L(8t^ [SsXQGpQ[X>/Z4uݎ ~ڗ69H *݇"C< ɛF&[V6GElfґ]F ބMmqv*kt;6OWuT@yOzvl0DCGicvj2jKlRY҅M{U W*ؼ] ׅ~ s`Ov@<2VSm.~D^>WE"j"ѳICBBzI@YR>O/mwΞJ~ ^*rt>Ƌ~I ^ U},^c ۚ3HR. LVlą?o0T|N0*|P'ռ\U'ѪhYm^d+ Ke׿QvY膔WDM$k RkodZv@D?s}i9Dh1R t9`Lw2aZ@?3q]m ֩uݾvfݳG:[U D?S|ml+NupC$)3;,JIօ7_h1'`a%o\eOBrE9n(7$]tԢ.XjqΡYn:Q6yj* 񼝞F-G~D`2A Zkyrz#A)v-LqX@^ +hF-nZ9 }f0~AVdhN?,ɫ1(SsۍVK\T횃p$21G x:Y<eqv?0#ˡe$W$,XpݼlզZkGtiOq*"Ɏz$W4=i$>R'IY^a&/@_AOGuO~Ƥ-"{ȧ-fH8 8]#BV2kF&2B m@˯"LM@= =?HŗIH-nؿ%,N2 &w y]+Tk Ԯ-G7j].5w|eaؾ>L]Qp!Zp#ݲ<v,:!d L+S0;##sf=B5eTlWx0e+nvm,*λ^𛦿yR O'yX4n-:F|9nO1{acͬCaUZo5Rd( հXBU;~x@jcڭUcK21M+A^ăa@!x|nxS߰` :dcYŠ)=Dc◚=`ݐŮMiϏ)Q~$2iƞn=Je{e> QkX'-LJ]Nv! ep#zP˂l2oS# T4Fv/Flmi֟&]Y4im3Mx;& \G%Z},{}`(͝x7טSQ/2=bF!m{1Ep=cx8Dww'ӏxݙQZ_zwX?jupzNVs1e:χp ՘1qT*UiB,. ܪۓHb!VݪA QPrh*p}q5;϶zPڰ׉=M@QPF h[.# e:RBfk+DeuJƅ+C n%(V 55Sύ;/wX;_R?浃W.չF-Si/4vYoڤrL((E/J=ČjQWy%BsPVܟUm tSS^#xT.-# \wdk<˻3g6S,p{Y!J|2&N^w8V_l$a ම) '"weYhzam_j>-ָJ;mͦį*xx^I%v}5BY3{~Oo'r>ǯY/$WBc,wIfgq4ڭ z7,zh)+p ; oV# Tvn~ָ` U.` WAt!V o8IڅA=G﹅YAֈy+(G 5X+'lV$OYeuA]&wͦI!Y+սT_$¦ڄ 4tڻMNx0էAJߠ (*l|gKvM]IO$?C WPo~?܇uђx׬ŧ ћGA|^}NӇфo<-¬G<:SdIC5pl=cn\Ժ|YwM g~+k"+o`8'r4Yx3 ~ǶF*ݫ0'Ƭ> F>`:nT=_ָ=O6?ݮT:ػA|27LL3(fkn^@wAg2AR^k7.hJ^DYjw]^gN?( xŪJhUpxֲ{mgbb Ȓɀk#FϰG{۟0z5NxogDo>(s3p4~m2qS|Mt$^%>1d9a3X&r԰ϸEsxOP*&!<ƯHWX h y'Wo_!"=7VV>t?q4|umpIg=(?*Ƈ~Hۆ 4I/Cpun! ;C=/ֲZ$DZGaxj9VwX>l}uƜ|HW=Լ0j>*+4D9)}i(~gKQ}%-z٭7›6D/noNO?NO_2} |D䙸2I|.Ʀ¹dۂOQUcj>pC:Lؠ^ؘ 31ZE_^>~UĻ[[qlZ~`79C'n=Q5|eqX7ޮAkC8[z R^PYުF*;ua+hmM}z\W U"Tg>W?f/$4B5rt1ZJ ԂDn5׆×%\8r>/Bd~pp1#f+n!VyQv*,[B)v!; 7>w(ݦ3(OtJLDkmʺO?E8 ׁMٰS#zkYE3CqLW0f7!?]׆K?O1S .# +Φ1ן4ΟÁ!Ǝ!E9hVd%b\덦yt(W-kSmrhy^yzUNjϣʓ)+^,Qθ8=@ږJ>o! h4W`q|pۢ oRAGLqJKl2f `dXWU}\1M#N ]J:i:ϥE (O7B`G}v `"zUz/dm p9Asrryj1N#@0R2mgx:Z-o֌d5PaWyD&@~߻IOegx5>»}DEתa:-JeT=_w7N418:>1ټ"h=+%6ܓyČZl=׸x-5L"▓J;\l1cd`pJ^/6Ox Z=5x317jӌmaiXus-#R[y-wunTzc/a2 a!WB~7]棉ާN*`!*k^KqYPsE PFTo=m ̉ !~wɮIH}U'/_Jve]w(am~v:ȢEDI0PY f:3jлsO01U ڻ o#P 6 ٘>{BOB|[ǽaަ!;^%5s[/5R>$Ӏw%0I%.UyErB3\$1+&91ћ&2̶~p 'g^]?A!ZP+ܰŷh5MC-qS#o)BhtS^:TA:gAUq]; .mH`8p|[Z>X 4DN^Y]k'4Kkx3k/A|U F3G8;GF|/N!?Xp?~z6jo_tzmu/ jGW-%KXaMKw԰1zvw ~co46<[VZ [OHo(X ~/Ȃl809 &m WTrl!Pى@ ŗV'p{M='H5sDєI 8[$%&{ǔ=Ab&OA8A ߖ0pE3#)7{"1?0$6i~p|;q|0cNBc\+Ƶ`vfl'4w5< 70|O^a"D ?&! d{EOOR>YBE`\ e"0;E`1|D&? #\Ouoawz#D4#毈0=Wp p+0XEͧ0^"z0N׊0la<ˇ0"Lm"L';ߥ0uߊ0RV|-7K—Y=i7+UkTbbW(fɆEҮg9&Ld%2! f)1S#b1V"b"bDb^1g. b^1ѿwwOY3v4 D\c^K_ ]dq=%}MNݮT},f P 42$I puRZJުI^_Lb ri@_ du z0ꔀYЍCчcO~M[ӡaj6~qWJW{"qKcGgZE.2{߹4ܱncT[Iy7/I`6;t!u;ݕV˻z|nSg>\]кWGl^|1&'>VA:O\p$v,lX!A@]F4Yg%c5!5XrȔQ*S`)҃`> 9їbAق|+?(?$!|4fOQXfUnRfEPBP;+,( 7l'Arafg:OCif$4}]W&^EubT?&r&7y qNґ}SNOldSsO6 EO-EծW Ut8s?"@a/WtZ+uQHxϏz\+oXO'S9TN֙&k [հmct/|KWXJ>HH|0瑃ЅYo y6J9Co x[✞}[tkY{P%YGY+lh6QPpDmM16K2fB#DNsA6$1d8f,\7$Qcb̈́d▨?n dm.n-NU:uTt0=UOEn隖f9Գe4bob|9aa|=v#Aik: ngBņ:*LvP:nN~H}sQr]1ȷ y}ef%H%S )`Uh(?b[>7#3/A7՝) P%gf~ATeDu8) ˜>Ꝋ"2{i{@;fEԕX/&g$!';q2|6 4Ph݌s>2|hH>Kdyj`iOof^[/mi|A[1QN˺Ky^5X۬ +pѽ~(2q 'PHku}>ʅS+ӪFZA{T'0.5yI.vv03QZvJc#G>BO퓧r<%|6є6B Vlf$;ox7gQjdQfxkQ,HXb[bx?@;ղDTՉxq-~z;OK_K]~Ai:Ji!!"T<==Q]Qf7([S>f@z1ӲG&(BxKQˤ ޗ'dI(/-!U:k'{КFE1V._z#cuT5e .C왊J<;xe6T+~N!9y9jxny @|eq!8;~ Ԫ1&ű0"89A縪RO[7=uBYu;ݏ/E,D}p|L|O)AJ~0!;XEz?SinNElNcmg>[?}GX"7ԇ8r{ܼ _fwu&JHz&1S3]eZ41 ݖ8MmoY, Θwɨ"*OڀGѩ=(~eO N`}TcPɒ4sq&%Ʉ (GM萖kwVP9&UG5w)X.lxxzE&nA-tӲ- 񎚠۟jysIRߋ%\Y$I]䰜0zXZ@yXX0b`nhj!^֠$iOre?3JL$34wjvf <^U5ALH''~' {W s\2۝:Y[dv9N-FNgI"~#EI pǮGq"9zq7s*chU|ZNu2[CüL|6aݙ z|ak _m`⸂f3/ۥo7={x$)v;IA/- 8mTIz`7 82N0v-plw 0NSY;INm\ZO,`xj)Cv钣ne=0#VrA T] EE? ogqTv˽"dۤ˕7/a(I`|Q3Կ/\վ69wL*JMDt)B7dn P9)k[nܵFa 3;S BP:x?t"UR%a%Qf=Qnbwлidc񦶠$сKSf35{?5&tCrK_AfӟD t2`'nҠNJ1X2b$?ŔEph6Z n'^P+K5n KSvjlF}z Ne'w'wDep&"n95Գ-&^qUߗR7x.At6 Z JʹEqN/qW;LqK:'ku0ғ@j^]2Lo9!N(4o~pH<zPO\Un@ltly/.*OvFD &A`.TVC,gME.+\_-~\t7XTS&Š;NC^Py!l` :G}IJo> аtgp6MYt^"LBҹX]Z#a9,wq9v%Ym0E8+q ոE܂{~),{|ogRnX]Aݟ-4_a |~xTuEY0/J>ofFZYi%޶ s/ jSQ 4-J_ؙƸ"[QlD!oC><&E,}UGI-0 "Ÿ9j"myXyC]v,&@-8kܨuα'lCE"pref^KMF&)5ڶiLl#NӶ[{k (t%UEVĦVRv/MTKP~@;A;MļlE :z;Ô:(z ùV;(@>@s(-C@.o~w*ڴ8>d~h0y8}~_;TP JL!]jbٱʓ.]W@=UK 5$\A W+ IGS248%/AC{ x#(,\c}YO ;,^[Ao+v[JR}b]`b~4.?op mWګG_4g4.~^gXj{pBrT.Z|(.ܮ +_AҀ]-sthٽNަReatl+bf(X9]jz$QS؏7pU؎-{J+xCo*e*?c*!e6jp0Fu8>84T?,Br&4cf{QPa S%jQ-;Wa}Mtic_M=ƋpIeBūHytKpb3>aD6iO6sx͸R3LqpS+mP_xKQҁa;j2mAN Q{Q.+m_}C 9I3Sb~sG= %X1csPl̥WgdU}9L+0QkVٷگ45ǻ0Wꌺe@zۤϣG-vy7 ƬDUMµEq %x Q=X-Faq ja*ɣ'[tƭ>37X.WY. TQj6VBgN(|*gQş/dN!ҡ] JE2h%_1 *SseD .S3crOCbe5'axWvWlPτ[;ٶ‘[gN 2Mԃ'o[Zn І %H /UNdrjdiw)MnlZKn}[u^ҷSЮIk\[ ثHmWj[b38e1(=.z^~q)}g,'l 'WpffGV_9D[#k(A95ZlTlTA䬚dU-i16G}ۯv&6+"i隶N'j wbӝL\'*\0bYN t'Zp+qX@k \fZ1/$ٱ]G<ꆑl0YI5;P;=ox0ƊE +p6uV!$Tdɑ '4*FX cǏmÍ{HziǗxF>i5xMyrݭmal]s{! 4p&9V%Qc`V Ť%040auuF5;F>"wGѨzuaQJ$uqORm"?,;-yVJaebY|olX!dfk8j{*1ièK 1@Kzz8.GMPxEđ߫jI r]lB|ۘ R3.!p[ދ@TմG0Ӌ<5w\6 ttI0.NQ=6JTQk@@NE:D1,^ar~Ub5;$& NwF:+ioytĠ0`ػ@ur1>(?_ ݫ(qkHwJYRʧժ '>$gӚ|nI}J7TtZ엘hF0jWdAv5[o-x)&C/r@NOH?HsY.m8p~u',FX9nq$[ =nɸsN)ݜqJD>K*ildyUSMάAxӘ.<2>Q SDeڻȯCXh_1p1* pnF?vo8_JQ _<֏V3٤_M: a]W8&ٔ<onO*q mЈƓ`=-;>-8BQ {7&PD{X (Qڿ:(d0PMWצr[M hTh$gzڌ~}kSw ( oկYA{_8XLؗ~>Fx:B_Yt4 _:t[S 7.4i _:k0b {,ߔ CBlzX%ΈߡU-XgS(`h\+ya HIT8rÝ5CM8m_:M!x3i0z@fFrrPu?,E?#Lxj{XѤV7VDNL Ov#{PgŠ[EY˹KoAU%V LnrC!:H6LP,P;+MPY_R LRM`0lZ"$ @<١'bh/ZFݾz#s6k nb|W=pjX.,APk|PCUمݼW W`j{;XIa:c~xu/rFN<-KJg>/ԪUTY7(\iiUk3R|3DXWWPDZ>&7 i ǿu.fRlQym@z oG؂Dbf>|˷ 0_rBn9ҰkXd܂ł۶h6B`ȶnO#Od 7Z*}h^~m3 Ɏ$u9`JN::@i9 s i$Xao37LCώ(1o_O;e[&Ec/SyʄXU 0Ejb6l^RyRՇjXG:UtwV9Tl]g3>^W]j=+a\c/j vzLfJGx ;v!2<&G͝1r︳&;)gT1u]| (_ܴxN ')oa)ԅokf. t~XWtq<ȿҘReCvHt!]hK,ұTc^p~}>Ǔ e}|ɡ79H OW2< ;c΁ p7cT1T_Y̽QG;1xᄣp !vABBDA_uXMh/Л[.\KCcr&8?`&nC( =cџAٗݔƏpcŤcޑ̅Kغli0ϯ=I80ڮIh2GcV|Ag2M\#efYjA/!yf9&;5Iz$yIƗ}%ub1,]\Z mND`H` Yp@Q4)h-Lƪ44N&Bit3FK-5w5`y^-f{x/inˢlBۚtZ幅t Rͫ+ 8X;LR$'me3wOx"t'(pT,#ǣ`9yx@p%*["1ϯk8cUkߠ>كeXV(+ SUoΙơOrJ{QVM_!)AYkl[:3] M&1l&M:1oYOvcF,S_-gIyp HmDT(s(/v?!"8׋Z`&1r(Ǿ`߶WJ[s?׊}bms~;cA&aD}N^ף7U} \8Q*=8N&EdDzn3xJK-W?cY(1(8(59Q ʗ&>aW~xC2醠!6h\ >mZG -kb7Kb8&q ɇboMM&K"%ɒdId$2i;x&oy_1rHu]soxW086k:;?} Fe]׊ʾ4>A%4뀡k5@YDzHGYĦt#.wFI)o[9iMySڠ W)AX'.gZ_C-Kr%ݽ:OdtKaL*Мǔ@Ez_2PB_rxBV9})z`-"IDRd9nT6]t&@T’\P(ZCB)ڷ"9BVwЋߛ{M%@QHƛmvCCY#B!uaGͽ\臁s,zY> &Ďy}.)+ͮz:OʝNq-^K4*ߨqYE6l$ja98\o8|8a#rxëaFo.8\z少O9j{2a,7r8I0C7>_p_qHz8ɡùqn氞fUM s8Ia8| vr9srx=9aeVsބ`= n`G~;t]}s \yf<%]e9$e,0=%aar=<}RJĢ}`n0ě4b7rk򘱖qojbOx#mdgӦgf͘9kwjݿ';gnn+^A -~`e:>X(\2<H^!YΩ̕:eM#JSmiS\ߒ4jtd؜vP99@V9.nI$HeN1x sK<WPhXXF+Y, 4D@Kͥ]/| goTdP NLsPPPXj)-u-[Ȝ'z 癋!.櫰P()*\LB@ۈ Bn^T"zqfNuAIy1;WXo)*Ġ% ܴ% - 1ŹL)9mH 1Wh/*J)dy||ӦY\"+0sr]J vX^#:?.VyӳXy tIqk//t0 qlK$?2ŴhF+bBL>/,Pwmn2\3npnJ`aGs* kzDbzCaaL;E#ƴ7KZXRK*sC l[;[$X(@1?0 |x!- D2Rx\RL)h:o9YPXL!6X,B?@~tW1dIW'R?mo ؠ%ł=?F0. 晅4)rqNaÆq0@sX< ]$ mv}`G:v?\^|E9 UVG\YY '%g4aprƬr_a5EsBrE`.((0Bk_wk~Wɯ?/_Ÿ.ϵuZM/}Q6 G/_-/2w{/o[;hMWVTzpuU7=G{><ֿw_6+7oyOںv۰o7><~/'?OO5_7ù.^W* /N|p]`lLAɜ 3KF:!tʅ9ˣR}*Кr 8O,$&Ez'9GS+ia7Ɖa\~ƅ`x C2sѓC)&RYbWCl%1S0Gx0vdtSZZc9ٓq!v4֋jȎ:ٝ޽o0 nțAK Yg&4IHkPέMB~|g8`~Ujzcf؝̹-}`tg[VV&b2PV + kd7ãP?aP7`Lב1=t=|# jE~@ ܫ J My=hD 4(ڗRBB|ip8:>]?MʨO׍ILje gTT0AcIen_N[lw$l-;:Θo3B֍Įe}mB4;퍰VCspVq(/7Ld} ^{F45jռ%Jݴ06L&oFzBzB|==ݛMMj#٬a0Bw#rhQDB#Hԭr][9zpǘPqCGC(pڏŇsTΎi i)vztk[Meh 7'’~;'Z.\7:\}MѵQ&7Ɉ֑ &1 iR輿imo_%A5D7. @:Nm%2\6+8D5cڦSp߹t[.E0*vyrW JK݇+2W4-']iv\q<'2s7mL$9KJ|S*C/)9nA M2EW{emEE%n ,f[ sX>SS|STGi*gǭ ǃk0vfbQ)DD-Sݎ6E _(, 3T3YP;IYǷm>Ϳ ޡmybFN &ڶ)Dm;| ]EVgR rb11Q$s<.ngw?Azfldr)Q#AL da3 ڶB!Ծ&@BsEUj#Os*hoKb ϭ'gSCסU&o?0{ .L6[!Ԡ.s,^gJPnxU8թoG/2{wnoܾc}.0{_n}5v3]>jl=׫e*>ܮ=%qb5~nܮۓB?<`=auq)BybtC+8L08$gPK9尉Ã6pZs1t% paV9a& Ym:ԇ ?j/է;~,<,|3<*lx;mZxm$x@/K\~B϶{~Ûo ߓ'vxtQ'[ e Ns6Wz0aАfB^woݎa"&`3·#|/#xYx7 Y$7 Axzwe~rs=܏? `f3i-ʨD@^>$B %`h< A< $<1{} 56S0;D?` JH4jLx`;Sp?pp#B5d6iw+O8gm? [p _ogcei!<n+G6NWNqq |AFO!]#a 9 ,݃ߚc$^7`"i<o-ܞad ,g.OM3ƒS L|T4׀3¼LVn?by4τzXx,bG ^IX4 óYX{`@~P]}ӥ>9a<#n";{XZY}sلăf3?f3(affw x ޒ6|hkyP`N8wok_i`-7#i+? ̇~ t{@6xb\_,aVk'i F \hr= \e_Z̵C^"LB&\P[e f=b 56ςGFe&Oxߣ,<ͫ Vf[Vw\ #l}oyOëxd>tgi!tfX];¡B[~[+gy?Y] 0@+`Fx K@WFh/ ?+x^xޛ pૌVyC~.,zh  s[sOzlxn+3_O3Ak;Xcocx> c  0X4\tjb x 0 9aQGO$X'_FxS?+2 93.>cg!Fc|wwӝM6z}s=4sGzퟹ&#uUoۏ, kdȷ p]ԛ*\?gz7yyk^c(dqӏ>d E>k6907G &{]'bW7Tq]ȾLr+xEyZܳgM̿ οh\Kk^{7;545Gki#F_UuN\֦3M p=?-_5wH5I^ݟ ;@8z櫾t__t8Gf%NHN?Cn=s \rs{9!@Oܯ'=qU0.A}sƪPLt뽄i'۾Y n!>N"I>?8Qry]o^]6 gNzɕ  cE{3"A8'5ϔ*MTĞŕ+/y1amݒ8nsc&k/ܸ$Y2whzuxtLj27waU8T-̶[j/ܴsmYm[ߎq|ֳjۍ>,Y7"8&qk<)-xn7$'Oh c﹭*`oen6ST?nDPf%V??U=^u}lKD_G<Zubr'ٛN8{¬g$z^'"?R-S Q_n X߁k#y+2FsU B: 9$UO_SW>]$d$ts?;xz=ޱ(/]6X:Qܳ xY wOd8fh8?{2@EH΅ujz_sɝ_#ic|[xדNjNn_Fqx=񚍱9ka;.1Xs9X?f;6Y"?gv1ͳa=~v yi _~0i::HzHƺH  32li[:c衳:_J4} 9x 7BknZ8'>Xkkul8?rz~{MhF}`X X-n'K~3Im'26W9iF ŕ-DS<[Ivm|uh??"}Dyt"LMܼwEI9XoDL;ƺ0,#.TmcTHaN/>>i אy?nE{zJ],}\taDKAON5"aC;Tv(>h)un!{O//aI}XyaDh=۹yC<?gij~87ߛ_:hܮد%_qsW'yiZ5/) vJRc>9G9fyu4:9Gs4ӑdaWiN f΃0<<ܰ-vglw4Я; Do]zPpc@onU+ԜcC=r'Yes? @F3S`>_d>9gȇ7-p3_%ϥ?%۳dw|ޥz)e_]q밾8_d&UT x?;_=hr<àHk|XO]{Zcszţ}fO6U_=7t&'q02?*UaП^!N:r͈&uB|ŃԪq%(xrız|#GwR-Ӕ Cck3E)wO)wsh?A>beQ//Ge-,InC" -҈293(\epߏ?f!#{i&yZey4u#MtnGuv.Э=Y=io1#ǻ)_7y_.b/_'_C]>Uqf8YdSKG:g0>r^Ik|HDe_L(kXeːH3x,2^7?)Å/92=zн_7^GsRso'p_aц5R_ :J5V56\2Ld]1-\jVӼ|\cCț5_tcy{RĒ"g"ݝ*Y684I^r hfd N3DfIES}KDZjuf6s3##?'xs /6ڀ\Nь~V,-%0:푕$5b<>μsikkoWU_3jyS泐s=icī1I#N^ 4\#~{&7s,"cùaMiV4j. isD&#q,]$4{[ݳP6`9{*ƷiQeߊ.N͏uىy`{%-}نY B_`0J7~ky2"8"ڼ m5|јߕuȩe] zך,-xy! 6Bt268fuh߲3#ecV1zT"\>A'U>+4nW>t;Eđ`eC8i*,aIc2KZ>*"2iFF@*(5u_y$ (?d!bǞm"gdF?TXC%by҈uufYuea@OOLD;_6_h>2[t;[60^  fsYV`x VsjZY$F#( eD'sDwWތ\ѝ-D7^y:aܳ2Io+.v>)+4-Fݻ|(G]Y_ ٢kLRUHzhoݳz9t@y{{:e=#ׅ ڨY+vIq1F_ls_JnC_s QՆıK!ȷppAFT(UkC>.UyVu#+{舫D@1i K*lNUpvՁY\Z2ͰwમPg䛰[KkQyv 4<&LX6_!3EfFŚc56Ѝz聭DYI"-Ō|غ:p;< [$߆~qh\Kϔ0wܱjIv#d>UwR|>١-B8o|NlѲy R$.~vB|]! WJ_j 󋈷.3ge8u ե=ԫ+l7isFVUdo"Oj;f@2]ZztGkIc7@[A]i`nXY4ޘgclXφ{Wi9"$F} ϽYX U}rh_{I \` Y{ [dtj>QYdO'[_/(~M>Ùh(h2A{5C]-xƺlsyΚ^ s?{Dl ({e dimxA| ^P<'M6Xfd"Z8p;ˌpX3J6l @NynQ̯P֭c d]몮bu~S'dz<<26!ߴoճLGgKe1X[N7˱'y~l=z7))TXN6JˉK+bt+C,{,_D|q4Ss+͸<;_t9iϋEN)TIUrH$ӛ*S7ŞBM'}ReSc?YȽsXe M5\,Pu/޴-gn=R<>r_xmQŹ Z^k#wa-tm|TxhqA(rTSϻEweJ!_̶`< )!Kπ br%#~|ܱJ^V6@ac#у'?1CJ^[joe[ݚ6F[T?yZxΕzGudxQo>X}^cHempMZ%B oe1X٦el4lp6j 톂[#m(Uښ hvPN썶-e\[M٨G(/98&>//_\ُ<1Ed GCv(C:~E7 x@d-c,|i"s14%\ɯh>|[8F]HI\;nfXf, oF8QE;~+wRg,l.} =ܝ$WYp'=LrY >YćfA_8s0mKi/ifnާݔwI3)fn<uUB^ (Ck]<< @cZSyYVkF.jOL?E{tҎjJ=]GFn#c趤0pAҲՑ0+v}t_Uq_~P]W(z8MR.ovww_6 ynpz+tiq@gsZ3|>+>. Tj-\ ˙ŋ| JNZ(t k@Wevw.g] ӿl1#H_{1 ztwg|mo}+& k%o6sG/x'֨SCE \)S7з-VS ?ٖ1g!o yekzD|r(){2Lq3r~v-Ja9I[fH<[1.g9.OKJhS0_h37H|wR)vR:z@JN;6ZfH_qG@E&#tqmeFݴrs8xG;['Ц4/ޭn|+(mX G;Ĝ;\OE1o?@{'؟N.㞅q5ĺp)W+vTJ'"}0N-|DK' lH0Zc|ʾ&Z82# ?$~aGa~|7ǖw7~įW~3#i½ cu'^VkֽGH(S]}K9{4e~Rc޽y% 9 \!s(1Q܄.F>J6vGvDmOXJ~Km>-3KWu [{M#G ʶ[GhkIof  T9WܣL/X1JU"ki1ϴ=UVhǘy|i+s!?޿YbʠFWyeuֶ uVڸL,Ho2{o惨hWwW~9JnhxQ Ȳ瀐~ҫ4[,VZ iomHuHI+wbyF/+pX^ rTk> }ґ:Q\G-ߓɾ>;[y}l-:ڜ-NwkG(y>h+Y[ 93: <t_n<Y!/N9ϩ͗|J#|/_"s_6w4;r[~{osه SK-j2@WtQvYI_ў&GNQљrei9wܗ}ɚώ$мb1މ9=zLWniPp_c,a82?x#!MG `o.)ۤQoڛ9f먓8u7C7VTr3|HpOewhեZjzah=~DC+2 Yة=^j%gBʰbm|k91I1LFBܴ||~3m]ϽC]3)*4I qiYVw[wcY^wغ+bn[w;oiug4jʁ3qu:Q x;?C;~:jAbuؾ6}dI9UggSMAu݇0F݌,=ݾJ fԕ4PL\򠶖6$ģ5Z~|gI8D.k"~>prcnKJR%q8L1Dd5NtIWjXe} r%mO|h@Z]amMWrlEWl,]+tg,,&3Y8A_}%) Df/R٥~SýMqmσ1PNm]~u|_~ߦW;yFN_x2MϜaCQyoCmųE}mBvDA,QL̀0WP65/3rXcVy/޷{sQRF3u'ԗ7No祯]M=ϧHشz&ނ(A {8gCrNnYO1p }~3xtc G{a˒N1 Mv6a#7t p͐~(r R׎RS+ r@+ٕ"}7@*W-,'l911߫Ľg7} gzD{Fe{M"Na ꛍ8ѱ޹6c9NWߎvf}Flg8ƛyco&% <2]usS<}؄5gdL,܆W<@x /Љwp%œc^9st;7Iŕy@cW9Jp@YG0^CdO?s[&n6Xp7[ӝ#W|=|b1**]1+F ~9n+ۓlzfvtk14Vh5B ha=5N@SDN=i}M Z\G۾$9'd\!!¤Ëh_ @ Qv0Ùu;]v)qUlϋ+f[6utJka.獍MSLߍM'˴lj6NLu3y ֻM}f9#1ӽ #ԝ$J`={%NƤM ܯsj9i@~c}%wp=]5촞3윈(~Qb;Aݑ,/8TH -3)BסqR{1ߌcdQ_鋐_hJ 7 {7hP{%q_E`3> >T@Âh<}tfr,C =Ίѧ,/FRpjR>n>9~ާZJ kGn0|z CÜ3\87n$Nq0I]ߟiTq*\Ø[EZx3x.|q/}HU "3kΣONR0J񨡵Gy^(#gsIqu&M],Ğ XCk#Y NU8_rdeI+z-;p+ \y>Kz.)w9[̉god12!Ue,w߻~֯UP-ۗ,#s_W=)S9"P҉4 w!tRa %W<Ӊ+1Nwt|UL5|R@;ӄvy<$U^1Dt?cMb%'IgJJ^j(A"-o(МyXxhէpd$]>uo8E =*qXJ+^ML鯐T.yvc/}N1.ۏ(/{f[jꬩL#inSHp5[ěM!}>#J<Lƍc8ă虥<$ q ؒDY4'_N9O:#P$q ?Yr@ QΪE_ނL4- N=O{ss~͖:БϖspjL iQ`G\gˌd?z/lb<-,ȇ!ME]1s=~gbfA}tkƀu3=*ڟ }H~LJ>;.;I?rB̎&H䫎0έTǶ)alv0wwuB7Toc;)= gR&.t7Y.Z!~J7#3|Y̅3J?+ 0#CۻE?^TqQ.uXr.ʣ{umÏz"]g# 19;1-:YvL=G7Q=xJ>la>f/7]S(z*pԓL߷Z,'{X1"%(9餽SW1Ⴚ(dLJ&Bv0H}%V+C;(v(hd1/v'=I2܁LRw=_z\=Uiae҆ǴX{%WtL{DE"MH2TUYՎcǕPǓz챿K u3 6~uHs.2F?'Dؓ  ,|W[J;d;ԩ[q~#umC%c 3-r̪%MUIv +Aq 仢$+zQ݅RoRygC,#h+0(15ukB{7ůoE+^&z~xK:9cdcT+}`=Pp^uhz#V;EnKSG_KWIz|VYw8k̹2ZSּ/ ul9fiCcqm_]Hi۬\skoNE;f+>͒̓k gxlmjK՞^u"ug"C;4u")q2 (o*;HC:@C]uy™#'[m13 '$x+}%ωQ={%y-1##R˞l]^%}w#E,\lb@yǥc~K^Le\s/urc2DyBp? 6V_kkՖeצdS4'XO($f{ noa9]^ zd=+7wpu /qP &.Ј]Mgua\_2v3ƞw({b6)?Ri]Wȭږ{Eqj]+_HIa!;ݓE17|+1fzY|9kW8ccȲ#[/h*?S}!MDyN05v`GǺy#_'-YD! ^=Γ&u 37#ro+ uZ1*Q0fk>1nj>S l=kRD}Hclwu/{ܱ' 72w 2lez⫬,CYqm.T[v!myjc|^FC猌ƍ4wZ蘲1?I`1sPYM}S5uJTKXYm6%]E۸EyKEKFk^ݭá`ߧl7U?Q1Ķ.K*`DO:KOrtj,x~ dsп\/Tׅj啉X=3avT|أ[qIP Ö~xN}E(qNDK=<}NםC/C$eRU'Wv2 ^iهvRߴxi{,>s.`>*w`,sBPwGӢ'Y7/HP PpiCNBCy#/~|eYЗ ({^ZRPN;0x:?MZ8܎&tIcn(0 Mv@7bTm^{a.`gY`=-yΥ`gﵝ}x~^)c)cNc?,f4בE[Կqc>3H:OIݡ|3uGp3#i`}#+Dd$byR ^ЁkwGUr|kq ?<ό܅vX_udN>f{LϠ /|={KA=8|A&&A~3D}`99mҶFCkH;Rz65-yH@C?](F+`G7vfdx6ҧxhhէaށ;>+V8wowzp|M&Ƨr#$-?ϴqsyPĩ=Szfju9:F?c4R4~I;Tm ) Skh QF>bh2Thj|;B+|sT*3u$'T$S{}0=kq3I}2^9 ?w00 ]>ӛ7AhcM~~p>}Y1`m g#CgMқ-{GY똳$y {߳4>7eaƯ!s>RӀoNug e N6jS_Ol;v(DlZ85QСFG߼oCe#lhKd-ms]f0G*2MxQV%gpPwZe{BF;\tigל=_1q튗S̰Ka֑v̝- zS,~aHuzt}Q=&J瘶l@v状4QFZT$;ml+~'mCm.k]2?ƆVvTzKڗ$'eg磩jJ!Z~?Au Sgǻ>S}U+RdzgY6NDX&=f[ǑDhm }o>s? iҮuzj\SH>d'7;w?//?ڛ?f1>:SgIGm/s(c'U}c\}`yQD?_lu*3u[\Y洍^ܞ+RKcT9dJ-~b@hP[Z:͗׏Y0e8`2aZh3mvT/U qݧbյ6˫˘*V}STJzJۦ5k,bh%y"-ʗSorhOwEM(iHt{ "S5e29vGQjyQBz<3¾k)K.xGF.[24.e1O,>d9*tb9y)-9#MכYgHSIOm]"e'dҔ$W'/h֒+DYj/9¸ernO3@Giw`.}<ߊ'.Fck<ۛqZDlk?cvAY6<.Qtxx?ܫvAhGR0DC!XUp0F7b${)oD/䅞:_ ='Wz!Q>g~l|L8>UlnkfcD}s?g*0cE`rUXB[Kf͢!{SDLHzbs' %jOkr 3wTTnoF<}k/*}7jR>#|륟^sQ-v5[p|kXFNn۞k4ηrb,]S滝v&60 ݘgj_MBhw}m iejG~b1dDN})QAyR8QdD"%ǥ'Dz '7N,:O9䜨iw}'x}ƥLbISʗQP\OHNp'G6C.َlǚo+qj hU9@kFZtƭ}ʿ,2ПN !OP@7I=fI#5@lj0vØV膴afKoO6zCUCCe#ҿa^8-MQȯeyl-[ŽV/W3xWs92{ k!k5Q^SżKtxg/wGP{$Zlf\ )笹9ܡ;Z?6 !+\'q!Cڋ2c-C0)yo~?ʚRV߈cU6EgzLQJQ]|~P\F̮6ŏm 0U׭G9fڹ=, UGZ/]Ƭq]ع{`5f`9^&J_XQҏ֓zSXww#Mȅ\̪:#..0? SW>]%qβL"=ޖXV_2vz~s]FEt2SQՌ*B>O&A^ֵXgְXof~!?XOr~-WQFoƜ>x=Z|@F7e%_*[D&a _߯94nTCϸSx?eKgBUZS=.5Z5];yNr&wblh>9j>M{h=U0(JC5ͣŹ~Q8)ݣi*_6'5ooȶswN:Tkc9}+_YzWַr>3Yo[/0~/XkE%ƥ2Do~%,#.qo:l3ruw"ȖZo=( cdHk߁<Þݽ\Vg!CsWL)0?a {M) кj+6G}b };Ug/;]cd.͸yyCmw@ ߟ4_­enAO8szXj}|py~1Nc@VWuW+}^] WsJ̌7ǂ~2bQMׅn\m6߷Z%["ym/h2/El| 4%kkgd̃7>u[});|b9Nՙt]F V07!$ 22 W:>'C{w6ШI:ZPXw^|ueh#OOL=ÜH+Ƀċx:gc{/BFe*SP'䅔/|,AwOA/b20ډ螙Pt;iOJ96-G;O=x[8[ ahwݨ.Mw vm-Ǘ 9L?Mr## U{Zٚg1w{qU/fn'~G5d'ޛ Quнz͒''|7HSŊjLIZ-=mv 6.g̊h &iC&]j;ߓkjdyƘ 1~-~I/xsTߣ Ȑw@>Ch#*k8Mu5ַ”3Ğfe=ܟ֤g- r@ǐñu9ꌽp98'9=(odVN}=Hh\;tuEYPY2;*1ic^zm<=d[}cΞ\߉ż6ǝKb~0:0GiZV9ů.CJy*%][9Gd7ke՟8^E]h RWX^Wtj:[cs mm$x'4uЀlou¥gAVzP'= BokK+xXJXF3#a ( nx_3g5W#czWHgxcBvw6oOj/B.1͞alBҖS_:.lꃪJ80qXe{s n)eKSPg;pީS~(vwԾwlJ1͙1RR3S~駦CSIb/?lr @8dMfp|Z.Wk|}<39 п΀MԎWC?՜^K\iR޴&kkz8fmQ T .F=dpm7_D|X0'AVwCʧ]!wg{v_;mUڡQvb1JO=2 {2; ScX!vV&wdH0tL~G(?+{"-u"P;Y_Z;MaN] Ocjw<*kXdo;3vN 40<_\'u!zV҉NuMy~"7b<~t }J+gqHs!s- zNyN?ؤΓQ{UlXɢ/)\)=.m'v^ l+.5/Jߥ񃆒~J?rx6nV5|(X1bT+]i~8pgh-!sMTp{c2id+{7>[mH_I?y&}}iYk'`x"А,N^;FܥcҮ}FMWZU}LB-7Jnw1|uOp mlpk3Wi v0IX3qqQ]>s83(0< 1i64i@҇@^m1&$G"I -JNۢ48MѴ)F0&mz+h(hp~9~|>{k}mV?>j/о\'-Z} }| JZ|[%#8ġyA{ '|O=["Q.a=Ys;o='F{P/ƾL|4{*/ڟWx9aO>gb v86g]s\<@{lnmSES\\KgLf6d쟫F 4`Ĩ̤wh)"f"j52qꇎŴ>u_3& .zoYX&zAGFer\{l ss^/؟4>:31N;kB`rLf:  pv\ }Qg13iZtXԺ#DWѷB`zY#Ѭ/Bwz`AvrQvX6"ڋoaTuI?k9aTkasq+tLG0P[ğ4GWs?n?Aŀ3u//!n kUrX^ZE2̸H8z\Od&L0v my>l0.wDP&Z_2\ܧޯ~z, X./+ﯱ:e|"DOX"]+Q?hd{dngV-8hTCaϖ37]X#6K`yZ9=K}v:ۚeѹ} ^2 Z@K.SSP̅>5h}@mBާ'čZ>ڗ,>ijXE&O.zg6Vtυ+?8⧏?.S~q:pQ:h޼:N]CeνS1 Rpg(u?xܯe[v&(i:Y|vZ$7C]A뮿cj)%+kR)*pFrᗼdVND]%*.1-YdI/[>FlЀ{[kĻYm|m͏inE`;dy. *kkЫ~6e& DN:XJ0VheO^6"bmYmSXR=" Ko詣9Mg:}̾_ :hQc> $WV1˳eQiti40lGxϠ{[L_b3%>)3.v%>d}rK/lw? 9J&q|{S S[a5 6Pq|~<1l/RjN$>ՒpHs^粡q}߼lnnKGx%55ϴhJ)s&!LdEBzEFZJc8hWؿ;|0-{Ӽ"0i~̡qvM҈<&]Jxq4_X= x y?x& t1.t\1Pey3玀-%u9TOrVj/f76މhuwX%hhJb;?lm9ܶM$LeyJݨv R-x~5Ŀ`CI( EXiLv[c˜A_1M0T.{AWgsq(w9}(MRmg33)ZKn!I C\Aur?c*#ysp8f7HɖF?Ԥk^R 8@r|x?&b4q|̞(UD)}e2p sIkA|֒Oހ;v9/%EyPN݁?m\>@zwzZ]3",L;).Q =S\nC$h ̳DoYC9ط⾹ ]#X?,5kz]T>98EmuRT-z4⢯)G~_Pl_&~? :fh_~q<-ʿc?ێa:4%cmS,0bqZͰ%O)I5t}`>OΣ~a~8QSt$y/}+`w8s[1׻Vb@|ݏq_3iskŜ }jW`IG*KР֍%#`In `IK2r-v/, ?uN]ǔܪ_Hj٢ؒܞl+%1@?ŏ܍sylΊMtF &Dfwgߊ{6eOủWzuaVY^׏ٻ涷Y,{tF+)MrFKɃ֮kl^bKwfTIM?2&!F\W"`<˅k d ai\\rjQc잎8<4ɃRjQewmJrR%(-O{L.yOKcXLs cT^a ?NGU}MW>戵G%iz0QOO[y}[V7f:ԠpNM1qrk>Ƅvq'| ƖޣslL>%GüG1|,O'3+6%3%5pߘm`F~AN5kICs=>?ۤ 3]h.!X?)Bel53pH翤pG!; z5E, ,֥=,|in1 Cs/KЯ5!.ޘ7 >׈wqMni6a3uAE/_e{yhLXF\g7ǷPR! >oR^ xKpF e tYƠ2RhѡQn> 9Arx!ی\޾lr;b$I G>%9ZP99\}PzmG>~֡m~' W8%߉΁s'z~tLg ExC-蓳7_ c+/ y(&Kd7n *^zHvX>魯:&Jz޺)^V@^Lau]N+mj__ 6{Th}[ydsUѪ'pS:45hff G"]5gm4,T o2')#J-G>[J5^L{ٟ-źdl46=甾(wl嗙HadV)T1D7`ĝ"r?wMWWS= :{+ļ`AY:1穾!V4?܁s 脺ߕؿ ؂%sMW" MUHĈtFx|"OjIN@=u+M24Zϣqv]K}ւȑA^'' nSK|Bs9_4uʭyzHm8Ҡ[sB?K{0/c9: ̃95l3sIr>8;sT|kdGuoT. {$ᇛ|+ $i5 =o㨵iynVKӝ6TVO |X넭El_V}SlC/ l~FqR8+ˢˁ{E`yLOMXCAo2U_xF=ۘR"?ijCa+xCfN3u{&Gmٓr^ڟ>o>"犵8ƣqiFa^Wyn?Ay/8O 눹̣f5=R1+, =wR{۞l6U?H֨f "Yí jPjT_lU/6(tVĻmVGx8AVjw0Ƃx+-Ֆ(cC+Zٸ$+ď R dqkJ8l BmfUʘ6߁}"{ăq FZP)XL4@F*_?">a_Ay6|!u7t=)^#J{8"4m7)MKKץOjڨ_v2΅|8u͒ΟYc(>:.> 9cn-bC,grCDj#~3^\n:[ :48a W/C?H~RR4~gϔ2tVK$bz{h >܆l߫1蛢U]߳7Ŧ$pV]~B^^wM߇R̍vvP ]ԞҠ`r#mh4ヾA_M>lj?L^K5L?.+n@#ŭy$eL6>Ѭxa ŭ|%qΕBe|279%SJ6k=M9MXxM SS J`w}>lN_=/p|A+-$oxls8>YrPƝ*֧zÊƹWluOeX c䧏rfɃb`E$Q֐1Pr*\EY)X;h1\]͕R"VSBnb<\j>vYE4.F,$5a=-Y!{AyVVދ5BKvf>賦zԕ2Ӻ7/^$;g^-g8n{NX%?TG31iN^id3SepSt:l$}Jy^~<9>E݇>v ~2oqtv 2%l6Vi[O)w'Y=&϶Ш^Nd xg\z2SY󉇕1D, {(Y?)KuJB&C{dW*EmZ~pWUyf.ʋ;}Ծ~;|qv+`/F*ӍϑLǵ<_|1 QU =G]&h/O e4&qT5= Jp'\wI8C5<^vO88Zc{Ƒ{ v&|i䂗fJ”Ķ]{M44'v+,"[iY"fOϒSgaW{px{ Yeg?tTɵ,zJW'U=cY]Lehc.<*f1zv3طos */e^e#> gb&IQ^z$I 1X#.!ΈIUD•̲l.#THCNJ9kӨÇAǹ)OS.cdjfG[^h}Hf qUqsE __T>8Mf[ 9%!?7o>]ǣ˫c~'HNzh87jS?4?Dz|̂?h EyJ1+]YvK(OLm2ѻ3Moe~40ߥ9d`4r#. ?iV! dgg;l5FLג<)ɂvi!ꬸ\HmIc,Fp` W[̷й7h]HqR9:qfys{_z=yrh׃y`ؼ5hl *LC8<+ ;+UWhe *"9;_F.þ9[jcDڨQi*xOeW%RZb "R(-%64igAiAMv ]HGZ>/Pi"fJ9փ67i_/ /q~ Aot<1N/k;Rwh$~43iHҮi(mV 5b{㭋ϨOc#*c_6:+hIr`߇Ϫ#u&yjӿϕ]Cji謵>ݪۃZ9k\2v5VN{|(sY^eY&>Q+xCTPJ ^ܢ`:R#;PJ:3pz;Br5D򹉞y =C*jf}p\>S5:%Y9qot$$FYnCmPm@أX{9 f;[.]\ڲ(;8ݐEn7x;? >jiy>r$m/o2My}*N7ɭR[$p>J[hXqTN&q]$t~,jqW#vg;_:Fd-sP{.Y;YհpQW#ⳕWy*?ei]>y}[.轒s=gj؂Q۠mZ]xBsjΥ y\R=лW=C:-1wDGChϞ3*!ӹF`wF`<}֪O>p?Ǻ5&H|;wi7 8<"=ѵ;@?`mm'`n5tgY8Ҡ9w3=;46G ~B/8!xOLE⺴{pN1'ʥ%!vڞ8ֲpmm,SSڱC|0&\eM,ʚXp5*kbrM, kbH }$t0]v :$?THl'1޿$$*5,".^쓿x7./A}>n繌^饱_s3HNNQqz< {]'P 8ĴKm7w  +$_}_Tf s+xE?kHƞ`Hjz}=Ճt<̆5i/픮cMFoza/ l_o&f 'tŞ9j}(Me;0VP9#Gʢ28b,[Hs=i5wRWPkAzٰIE]9\!ɆH_dPW?óDF~zF2K%÷FR@GjǢ0r._Pt+/#ݓ~I[Ħ=Px_1ێyu*a`Qzs&b\}z=E֛E;~g'K/R8ɴCŝk6ćJ J(Yk@.:}$x@goћaOi{U4 ^b$crf h9AyNl!:㢟wL]]L?h##v_|J}Lz^Ne2ޘ@>raͧ>"v5pǨhn;Ι*ן6ްo&lcgs?Oe4)e FkO[s?0(h\&> ;F;5;tոJʸJ֕N3Y|E2Cs~aϱBZV3P>} bw3 1+,ZY!|JY!F\'~ S\"LfǡV=[`_,X2&~O}UrKt Q ;1:YvêHw;%*/& \cE L>L :qsw|IT'lhrKL[+ײ,gXdN&9 ͽԟ;%֍-ZsDq-H):RZ7lc3v%G<|!k05!RA|oGƇڽ͡NZ?/}MG[<*#%co>]Lsg#&t6wgZEIr@gpgGm-%QYnھF<?'Al1r{톬9c:KYOKϠLJ?Koz @6:8KOx\Wgvoﯯ*CӑSXkF1,|?oM?4Yy[%0B]L>&di4> 5&¯:,Rai1ah햤&l"gF<Ǝ֓: 674 PIt0[@u,Jg5 YC0<=9M4qZ<4a :7,޷P>(M,X|=@:,}ɘ1ak:lVZ Ze)D+j:[jɣ-f>n4KHM4}ko޽5v>'2qr&)$M/!{;{WI(KwyIVDa3L YeOt.`Z \t,:v;%告skYL{[ӛhm%~jHYKuURhjO/tkai M_WvE넭눐O9ǹaWAu:X,,WO<63-ǃ?aV#v ~؜zjuG [ia܉3ZosD`SAO{yCtΊXwRXlk qZ}6DiǹNLM\y7;ՖS8;.e8'WP|nQX.e$= s쬝cϩGZL{6AfQg፹dyM `N#n?ss 'U_}ql5YwxX-2n(EVax $b~ߐ21OF4/TGj6 |}Z PCĄ6  d= &J4|Z'h?/c\}>Zԭm.Xo=_7xy 6 Z^9Ižz_L~ƙ,}b"ŝi8į_ ўgD&il>d^՗I/hmu:X Rd{'i#]O})s}W+nR/h}6>qy|nl23t(KQ~zEX2h!Av^2lc췄SB?Rs =z?-3N| j7!0v]ύWU%b,~T^oh|NL~Ϲ|2l,U%g"t*)=ѓRc# 3Ul$ zGc̄LƄ {/vR9v\ Ӫ'7Χ~qڮ }}==M51)* G4ǝ@G򭚾 vU2Sͱz Hvcs@j|;xclE<8OWm{h,d"5 ? ɹNӃ9}i/|Rs&1Q2A[P} ;P<{9!2!QWw#0_8n<#D6, 5ܾ>sV7#8-[{>5qWX7~:hoKT>d{y3O;ox3&* ef$_Vck- Ҙ \3Pr;NHF7HzCZ#6acԄw\<'+n;-:ۙ4{.}#&qt1^R~ӱ~Ce'>qhv|h1c>uE΅ 볡z*αy9]FQդ8J CדBq/%M}qRȗg6|GD3Y`+e[Swtw]jCo g4l+K4-4k]ufA֓?bw:% gB@FumǷcYc_ca}/ڮK4\P=\gLg{q:9~ DW6 1YMڠ/kfS"+&/zyT~_'%nXJUV|H:s(H= 9КhV}R+y nC}ByRX\#[bFO2jG(xFDFvZK-+bp lJ4 X y]4/\-nŢhqo3qW@;bn˜rb /0Q ō{NJ,#-{9kU12զwMWniS*vջV[_eV 7+'nu\ރsײp&sOz㮨^iLa?,eR\ 91ԍ>}}&@Bʏ;7Ջ90ҡ\/qZ_dW;7:$/z jkeBMZ sC%űsA_aŊfPYlR|WԎq#s^#zXؚ60=)hh6Km+5 vQ CqT1scU>C-S-|MR2ѦKkEkCm?wictZˉz]țKA !k%)M[lre8*=-Y6a+~W3SS7;H<험3Oג拃U2ʐWyW\MWV3EYy.S3 şވ;D*uSxt*cJ.~Geh2KTר. Ɠk轤IM"zN::k> m_ kX1 <Z_H w^xetE/^\a9NvWn#9*6!MX} pBy.ow~4)VO@Bo6M_-c{g6֙Og3Z0;(B܃(Zo|-\Qnp^=pJYR9[.08_fӛj vgtway%^o8\װ}uཇ=AFX\T0_G$AWP0Gx@f^ٯ>= e6vH9,RR,$M mO|rU)S7&ʌld:ayxp32iX8h=;cߍ15l)ix7x\!fK{jȾ:ѰUQҼxGK1eTgOv-Q4w 'qIyD|$ld*3/\,y7%hT%(4Lja@|zv-c7|J|XM<揥f pޯ#ί,ҽ#x"ph'E_eg6 Yruנ|2cT;Ek}+'{%':coz27_H7xF![Et{[$Hyu?hҼ.:_ixhNOĩ/kLi9ot::t}Q ?U橧 .y'{Y"E5o9Ah+'waSAl [~>fʕχm?1Wh1MV}6M^k ^mgy[]\Zcs=%wdi{m{ $]֊6\bG-g&IrZ"^-\sFCUr+> 4K&Sj6]y@F`}$ɯqg VVɉ&a]+S4FmRVn64 XRjM)? s7꟝8{N;Jy1?:NAceG6j@zw*H470Gp.9:~;O lc,űw} 'i35AZ|h?wc u6_ưh:&i).~ʿY3:8ģ-qC9~lH*;Lkxj8׹~:/RW%4Lq[jLeKbntȘ/g6Ș3 `㼛~ZkmngΆrh4$I—+i!m_\̀unw1r2|ȸ=.QpoMDNUT?m`Z1]6$M_ KR`/z/po;p{f߯>]}tq̺$s~s}cL~WC:{bp݁r"Mɏ:M?Ùմ_Q-%c\Okw ,H>MJ} OPxe<'3xQG<"=$]~7`ysmyԣ†6D&:e45k}l6p,6TB] Lbдs וBT3C|練^6A9}BNso֍;.o>QX((Mf[ \ S}in&J٬׹6V/|NR]PHIG47 S]}H, e}eYֈe}v I|~ q>3jCvR |ugQ;c2@eާd70QЧ +7`AkE帖C@uRI_ ?yٟ% xe{E>ʏzLrR]j`wʩܶ1Zzbs{l ?"Ѭڌ42AL:x9Sh/q o%iavj=8ִJX ͥhj_-|rZX7o&FfXbu.[drLV O2igpٜ7YByA~~紖v>/ 񱭿q0.ctja?lp{(9qAqSFK2%$9+iFc)\8SL8$L# '%9IurXs&I$@]ZPa f81;$ŝ+oo3"tG& c_s?s~hySı11T=B{i'gZCxGhMq?&S݊꟭5G Ql?}s;}ֵ |S4n:+{rԕ%Q"Yj﷯^gHsI).as/wQS{-3jmgCLO_=v~xWEu_Ưfsm俭~[װJd#\R}Inω).s'Ew.7Ai ߏ _ڏa[Y\k4k:(Mg:ْ\;wY`h M2@aGpF%YSD ̭Ehb)|\פ}=bG "V2ڸ>BIvaIf8TbGmGx9v)FRi+$8͗EL8%{KnB/O6;Wd`U-}IR4q|lOZ))^:K4Y!g+c.y{E'Ǿ})'=kGh:ז4ҧBZ?۵,HG𒦱2M{BěCOQưoZ1I֮1u&2S[>c YQ%[80*o|{6-m2}g8dnI-|+ xsFePbz 1- 1'%ۈ θɉ"aN+aJ}\Cg]J2!+RlY67`2COɱ{ݞMaei&V_½Il38ÖJR7t?nd.e]D.+KL84(9 68I9eeԟMƱN'f$JƻpŷNOe"0[]Ͷ iN٩ι 1RtZ(-ܦo 醜跁T8o,9W&*L2H ~{c{Uc]XB_#*-}r 'pL##*9p l&𼪧n Z*; B@kijPl=eX=>Y[| l7e`7\Ci{ا~J!ezeawFv}.'NvFĪvd|>N3j3ej㪪7/͸IzȨs,xdF[`HZX~=~;nȉv_nYQWvW?C_a:MygKr'P?i( ɸ/ ]ioRؽ6+a];]}XR,OF遌} =^YwLrΐ&UNX{'IAfVf$= ]A2RQK_>vJ`Jߩ5U5NZg~ ǸKiKMOH:lܩ\=I)ҾEa3_Ji$+5ـQ<[e&kr%Y&8xڟM?-+Ò}yC6Ҕzջ_Li?uZeM% }=)1MQ%֔X:W-g(jېd8fOgؔ691'Q6gHzY+\oeD-4g[&nVIZznSw-0C)mS"YPnIjjg<3igKAcV$z3\aS[ׂDC޶Mtm9#mmCr~8__s6 s4؆OO{Ij'~|Йx̹C* Ω̃]]hOvcI;O(h2? b[`q@)> 2i}4)y<. yvSVsFO ^oHQ^Qg׉3XiǾȴ\+YH6ܤο ~A,,J->|"AYe)LaJt8c}rв'Xcw$ttֻYFFֱ~upkʘK&Ua6C8iyGNW~ 7u6N\]' b = GT ՛;sB4[ UӇ耈z5w(\Gs1u/!:̅W; sTgW &cJDuq}q}Jy#' + a*;, _@䕸.*?bvQohpvRt>h tMWg g#B4Ici,;K]Z&5ڜR}OY$;}O}jq=+F҆q%5Qi0kYJ*KL7~L.s~BhW+6zZvJS*M^ngAe?0e}6ǂivS`<᡹= _pH&Ś*Ab5Wt̏}#KuxVδӻ4])O 55ffD+Lfڥ|IgeON_;l"OLtF_ot{b OW(,32wM*z~8W{eh6SZ,l4[k 4eюD|Ǚ6'{9uqZ㎇}M`kY@rA1?pfKg%Cv6Zs7r`p+A]{*$qfZutG*8&&#ǝ/Ҋg/x&]zLJsStxzXz>wLӧhi<:>Cz %m Yz :\G믑iI;v!߄|Sx.SpyEy|+G(vQ ^4eGsdF8OD-D-mbPZf2OCt^E<Wob]G~`d? )b%恬4v҂;9`D'рd0ϛ'MU~ GD3'WE""}( $쳝YbNR97ѱP"Q/lOeޘF!y&˶rilf>{@"-MK{4(m"(MҖ5<iDoK1QK`4%;p&]J;a'/$}}v{g9 b3HFw12"x;{K =[ ?[:-OOf@r̔<*L럣w%M]s J@"RJ6miZ UQ,Z0] -]TEP jA׺9s\}y~sKϙ̙3sޙ?{|F*SSR60 ?^Nw:6jڜvڜ(!b-}G0ܡݛ+}^(⹖'~JY_uj}R[A{p =7uzB*;~I fڝ3gw $ڜmײU:kPm?Ny\:lM矵r;@ےm^bEmvvM}6vبNNQ&_{;s&21MV6ӭmW='hԅ4onh =n7yY:./lZn6%ͽtiK MĪY{PbˍđsA6LjdžC;i֍\#D۰ /#dR`hS#b:>۶mww:,gg i&Nǂv=o-Ni_h3aFT:5}P.mS-sa~#4oN?wf}޹Dus>$WWh{жn -9o'D|9|ֽLVP^4;.O宥(lvyv ƀMT`ZϘuma.f0opl=.ކ㤧ݣk3h=h3ghz؎֋ # mG6Xhu%ᅍMv!g9߸,FBx0]8 )%{h.0yFNO'}#t F|W|TuYțz~}8DGǟ'џ!ߠ]CN)5<5so_K~AFz=5+I/^&xegx/qʸYƭ2{e%-+eeXz 䝑> r5r:{ B~]pz;^0n?Y|Ϻ` ۇ:2}TO?yn/佹2@ ODyBC<? ;>8_l;W_>'yIyX-J6:M|SRM)V@љbÝTV?`Ѣ4ȗR\Z9YdLH. %|.尤xxhL"RZʹN5YM. 5oYpߣ5SFGÇ0+!<&@ j x7|V4h%| Ƞ/|_ cX&Nie2N؏\9vSf&k&NeIQg@bK[FYp flWM2ͯzGtHZq1b8R9v'/^L[NFfS cr%ъ\ Ws0>\!K+ G{IIe9tm>C8OZGkra`Wxxܶ5k}~%~WWǵwsEl$X?,_Noć?<=2'eIJw(+2ίSxeIRH&q & /8ٝ7޻Ov̓^c<_1~ p|ݢ|[1gX O;&8o|#Z/Χ Ys_p, "Llt` 4 [ 3E{w[c(#P&@vUa~oE<Y0X3fv@]ݨj5~??{G1_C>DeP>,h݈k&LFE$ G4#`1 \Mw iό\ Cd(gN!!ʃӒP0?*@,+HVu@-(2NoqHK0 p#Ch14=(}N!)>4S M˭WYjq%:}h"Viy )g֘[3?,C+ KļlNKۏ!,h ei/X\{^Vpz=)nq%Κ,^Yݥ yO:pm>a2I&\5$7+05O. }gբ%e#%O3%).!gg&OOsoݮϴZRr@4692,6#|eL '8+2kez'ONH,4HlFŨYOy!, 8ɉ1[l"7 ~Чb=a͈-b\AT#BA8Q8QGh@4#W1 j:È >fDeIHj(XD-Qh@#k}M͈-ET!F"ccuD{ipnyj:fЭ "F" &!geȴL gn6oySPXT\Rջ|{EeU/W_o{|QC# G?Sg6~Ź_~7~?/\?xаVmڶCNKdn7vꞽnݧo<$f#ny[GCkLNI5-X3l+k u"\u}?n\ '&O0-q~Y̝4Nf!1wdC>WW#kQW,rEjt{=r~> 9ߧi@&R;vȳ}Xn|_W.r~ݞSG%ywBEU#j߀y$:|_S=r9'CE5!ꚑߌ9'GJ=}b}o((|^ r_Xk}g:|_ IȣAnF>mȳ"w#<yr|0GEA܋<y5kOD^|:|K=)OECyMȧ#oF-"'@%;u$ 8D!W E\<y5^!OBy+f䭑g#W"E_϶AȽ!A~:7 W!oB܃mG"y$~Ȼq{! ywn/7q{!ynjn=}A~ ޼돼?#|?h>ȇ C>ߊHoCC(~BUG#W# A~r-r-r=8|ooy{#dȧF>7y{oozgF>7y;%ȭW#pR<yPy&m W!Wy$ȣ߀<y7:7!7 ܎|4\{/A^\ U=P>䭑7#h*mwC|4r%ȓ 8A3#E5\>Ƚ\5\u\ |5+G"@-Xݐ됏Fn@.G##WqBGGC|CF.A\<Gnqi鑻yzy<=rO;yz<=z'>y3'c|\R!GF<y|'v.G1X.Gr-֟ˑrzuX dJ?nȍxO4Y LĽ%ux2i<g&k*6=҈o.:]a6vvpgrx}$K;.h!XaX1y g{FK@=ˈ319Q1Xz@]XO:BB`;dH0"a:+KhLՔt',z)YO2NIcOkH(/]!A;UI}4q~t=&?QIijɒ>q2}@x6..'ϔ;gJE}uR|~S%x?K*p}~"e\/Go$_"3$?_**k7A** ]oZEyd4='K,kt=kwI+*?P~ ]CVdzOK-W@DsT/ infQɒb=Itv/2MQߩ/=UNqT,s.K,?bzޜsL_GiqGwOxXIQ\kP;ğW1˱@/6%K?NNz)?; ۼ`mbyŏ>Flz|)gnSɲ~5;A~ߘ.o:?(o@rW# Ez!!y3C\#o!|/'k#?܀mnuȓd(n?<|ݦ'Sm\r>Gkus*v$}dQ(+ƢˑBՌe˹>蟼|-rl3|&IEy Cy}ț?ܞG|Os{!$^?Fnf ϸ}@+ws{ 1kB^큼㧸=? nr{ ?8?ȏ#zQ unZ:k8lݼ=s{\zl+3^<y%r~>E*r7uH\^?:|2[ |+['E9=wl]>UȽ-gPr~!u(_u'۷Єr~.OO#W`_9DeQ(gml|v:AM}|'aGr+rQCQ܋|/_ߏ3 (9_9@|3gD"B_G})|J,ʟACIȟE}.f?[,Q~/l_L.|dQ^:/@}7I(?1#߅<ȫ=p{"'}dP"o@;^:x)O9_)}}5ù}P9ߧB>'n^> FQI+C\?6|ߗUEVu(eiߕd|Մrrh[|߃P"3y||`3g#/@%ː{}R5]|Ȉh\Mqtb/_ƭR{p3deJƗxp~.ɿ J}pk}v?Yʟ$K`-RyTx'0^cl&E3.ىߤJץ~Q1G*zĭ_r%qv?8Gb.cL;Ь ,ke<9˸EҏR;wۥ1xdOWY!!b k "]7p.OM}ΝA<=@͒0!IǸ=~d!9A)wϒɗ(T[?Le>i}p1qpni;7 no׏%[CoY*wzQ_h!l=";c"]bifh钽غ,;|1-gdKqˊwI|ȹdxֳ峻!3$_s}M>mR{pwvWĭbJ%vIG yH^a2}z0Nl})[_vg<y|$PX&h|V<ϫC'Wƒ/gE󜠙Kfo~n/fO\8pHԞl?K إaޑuټ#0o/}6O}a{=G[޹hiàqG 6vo:f*no:牌tKvگ0edw}9SKzhܼMm|izpgCKNygϱƒVvN?p|rφ>mώ~'v|7ypfk vgGRj&Ի|N#.6kֻ-؄aϼ?OMi4vtj[?_~~mқ Zo^`n '} >幥Jo8?e]`eLna}z>9,H{f~3murY~φΆ{~L}T~ӼNǝXuרO:{/?sy :.6u=s=6ܾvdJ]e}~sS7aN3t>,|հ *j]7>Fjz;9hoJ/﬏Ѿ)?i/J_iSs-v[tv-(ճ7oY%.6햓U!_9&+wS7w˚ۅzuzGR&ˑG㎇5|SVSןm9mJ4+yg;+}y׾jQğg- >s/{<g3?X^3]Kjא}SĂ'7};= oW~Xw&uف#//Ww-qw쥹~ީG}-9$dsu g? pq;*x(;l+v|Coe}/ϭټi[`죻4iMǗ۳,n(;2rSY$wL#}]ȶG>{yvU3W}源c.FG-5ōc0qe~=|hKer܈gvp9!).̤ޘsv;.<%cs&v.ghGÎ?}DbM-2 Wu{uq,x;Y3v;ӯlN@‰ٍa#o=fmc-Vk {=}qls?پN͇cMm#Wu`uQOw4ˎ 5fyܣ;z<:OQƽMoJ yPh8B!#ZEEuPF$$\CB"t$4b& ms mk!amHX5$<Ҫ}%iEZu#;@Zw "тx!Bx+DDz;n 7~+1\Ѧ{E8BM̥G!hǵ'geҽ! +l)OHF;E1?O[c & 𽋨S~WcO~=~O|i}R^<2QBq򴊭6Fyb|>Eδ8yCbw|+YJo|{P_Q `0 zB^OJvS@Imܝ~MX^^<:8P?8Ns` q⭈T#|w0ke::s'ܾ>_/.ׂy ]"1AtSǓ~8wvq*1{Oe##ygʘ"Q/PLǵk`| <|༤(~ql .o|`s~ Qwk1 :fHg~!ӛH 鬿~ǫ<ĨO؇V]uƄ.s/)|>g#]G߉vy:Bl/~Y拍/i+H65MƝPGWaWhW%q5l5B,* m9r5ʸ;Q~=ovk#c d |bѮ1d_Ç< J_Cj;vPW,_#0W?&tz}}taMѫf,S IX1}vwe`9vDx]mLK Y0_Ő9xkOts[?g#aL,-jb/#cL.T.$^|<uƛe2A_Cg ͙i5ŻVіj59$ ds29r&GZ#hK8Y6Fˈr8 <9:[|{"4tVeʘm]T+$@1+t slfQ )&;}m%׋W}--s\KeG 3'$ 68PLum#`t&8ݴCiy|!/o,o &P^Ak! &25Yr7otƋ/':hq$yÙIMؠBC^40h5=.]ۖ=_ "_.o /KMu!L'!M<ŽP4=9vY:E$b!$]b4>ΚU'~}β[lϓ-a%WP&y YiLE) x DpR&d},N K4eE r-`L7qzB֚>aGv2-게qfgγFƿΔ$Vsl,L}_-Sv$LS`a՝GRI/aIGe m#Byǹ br-P[|z˞TS1rUi]mLCex) 4C(D>?~ǰS $䃻ԇ_:x4_BY*2BvS;AWKxp&29Z/[~htu\~h^9٣v;zUg~z0ǿ\/n`X߫/dn"(BNp0Yy)>ȣ8EBENJWEZWf8W!GM _{omF|}LM[|l?n8W 8n7}x|O`\EsGZ{S; Yl1\71`=%4i8g#1|03G| x((GgkHgHl QFfRT&E(OCBch|Q%Фiof@>3欐GϺ0 :Px Y> :O,L`M@FA@0HQ;ϥu3B|l/`Vпz!-/Y0E9tV>5_S\"2P?m !-ҨB`>pO:! "j1dp✂r)-9Q̤,VCj;}6Y,4 8w n}Ur|4?I䍂EH/7 _CZe0lYFpF̦ϸl瀽!j'A>(Vr}D{!:/4E*cto>AQs]#̋~F@׻LzBjIys5=@׀5mӣpM+w- P>By'OA%{|Hs|H󄜆m&d!=Z] bl9 S!>3U z\r.D_FTt#-/際Ql{J`AlN%+0AJL*?ix>Əe qLS2dao I;^{VwV 96 $`|u/4Q|O]Џ!mڎBg?Z(W8?x{XDy> ͧhx~A}o/4>B>c~]~}B,ys#8CB>C2µ20SEԮɂ/{yPt@7g6N7_iQApP !@oX;kl`l_8#]Æ/P>W:^7@NB/Kopwj4E$];IoR.q[D P>\]?N p_-QhnVмn%X@C0ҫFp(7"MZ@#Ǵ' n@- U;[/c;9@N+,m<]7G $\H w6fW }0@B H(l۟ꙢPv.NvqO?L hZ/B9㴠 /CJ( B7\3YYB0EzZ @'@} ^^ 3;ys!9?:@?yWhlK~.0|%)y0-E}B g0-^BbAgw[ 0f<&4~&; ES;.̆p]t" SKzgb*b."ݫ5W_z> O@nE'!5lWT'0S-.)-l(RC1b}^.+WID]S-їJ%OIuImI}άRuiLT_j(KJ=եRUU5fv~a}{kVꭵ[6o%^Wjzky^[^MM-fv~a}{[6϶m5o#e2uYLL_f(V~ֲMYYU[+K*3eyjʚZʔQrsyvyny~\Ib[ƃUok.#ruyL\_n(=r]]=fv~a}{{v7o' uELB_aW+*< RTWTj+J{2SY]Y[Y_l$U*uULJ_eW>A\1CI3wt?WH!I7X8Ǻ˹??PKSzi~setuptools/cli.exe|T8|7{$6$AѠK4&1 #uK-{ ͰڧJOA%*QN\d!k{$`33gΜs朙3_8n?9 Lc'i ߜvuMN}߳C}_&!Y+XܔY(3|{} {5'ݸb{]dqﱻWvqbDjF6 w ^ḯ9(l=>p\j"O9 :v>|c/qܬ_kU}ҥ?$=I{BVJ+ǭi}}`z7`B,Ϡ-?ߢ 5@ m3pTY-% IhXgZ,LwueA>7F/S0,mXXC[Y  _ [J\J$+ ̜ D6)6nv*‰ONIf2E3E9|NEКS1>M8Htq#.RtxpRz֔ аM;M hYLpiF=`vCi~ xNqPPsk\ۏʸW-&l<|w'$5iЗs99Hίd- A+9xռ~3:9:%%tKF]P@זو+`Pj/ph^JJ'|%˜#K(< q6.eˍ5ɠ63p FHJ3lKtVJ,G oUtmzX~4; 9tQ6=E#t\ mN7lhl ׯHvض y)H 79&-TA R|dBaFuD6~t*A*fYųgU5!so˾kT疶Ve=(ʐ&υܾ<8&Til!VO@^`E?-ЫltUb2UNGzsrr)SJm-G)0/f{2NFk (ת>YP@,oA9@e+4YeH6*ܠ&gy}]={62blhY/DeD􉑩;UmT~IԴאcGwuK>рCR:}_ҍ7*ا/\3d"6:7?U^- Hpiػ+$D*0ag2GQ!U(5njzk}poAR 3,ua$vj L##yt~fՃ6S4o r-LSaGlH:^ShzބD²JV4N&Co JL&)!i<9J(N|f4= e\4A #D#KJHWEʧ;\ ̪5-0Xev{5ҷڦ\PD& t1}?g.weoi@ h9t/\?xݮW QSW-o_fyC+Xn4u'&%bU. QKEbbe峩$8@;]Z6h 7HPޜJM!:D[F.x,9zoZuoUȈ1@'m[bB7.tXZn(zy6 mU:GG̝ e&)A[l.lQJ[o`y`&N|-gdkiPz r?q` cGHOvPp9Ap pm1򸇜a@Fň FkKS: :B0io!OYS>6JFv%jfN' Oû*"![_uc64O(j`&f)9ɄwNy>©xʁ'=ST0H\-u1Q֬59O-lk֙(yInyk^In7GS&LȓWaBTg|7&X*{}<^?Kc ;HiU-E7kfQ|kh?k5tLWub8 RZ'byZ _ioK+Y.Y)e$ Wrb,"1(I%]yݬZ}6 8ڡ<ÝJY>W2_>|Z1fW( 3@.!zB Z( vٺq 'doy[f YFaIL +]ƤdccA}#urg*:*MEV jC|8M*㤱${5MF*yGꎉqJZ㜔Nc}IL)@ e\z"\LMd7.Gc w{UU]]8{mW nt]3gnY&҉5/|n5.y>אU hf`Ӑl퓋J3y.<̿FIi6S,E, HLm>ԤMZnLbb*WUKg@S-O4orv-J_j@{/QoYj_2q7w˩vWe6a53_AF4ZۄߍIv*:fN&BK\ޠY N?vN `S d>@JxL?L  3ws]5v~=|4'F.$#U@SR]i[R@FN~ovce5T^wm~|}W 5?OTKp`RxQ^yZN {OBʍh@BֳRԷXl,'QGe,wخ ^qJtliJEy c'L~.^<ȹ+.nȌ3E&,wFu%zq] Pσ"ԦJ\G!|1\,* }N{yHx/LO aWQ0{w*T4ĨS* V-C3ơS`TUӖy0EuW1|6:WDSIjf MP+MR1 &S5WyLN)My2hMYdLkf_GMp~r#6.֮٘hq`FD2AI3~DPrVU*pl% i6V-i3+8S)A/-@hwV$ va\+I׽MPyu8~veJ\MǨVIv=tx 9)_Dhպop H&WN`?>GOFRy)4GGR(_?BG_ ~a;8+PƩ3y]_kS_5pJ L|ʕ= Ͷ,8Fgk47&Ony0WP2u,p X-bMb7x_.~AnQˇz'KhDΫ ^h4u\6σ1N%Z|^]#>w_Z&yJ C ":rYw+Rfr*Hd}s= } zIF3G> %MN}i \yu䬝OrPHصo屭@'h#1pm%~vq¸ۇ PՂ~604Md+k[oe :V=EPIG U-i^7]|SC-Y~^xdlT#z1L |u4{{I:Aoq,;{PzX=$Rb~V}5%z#ۇqݎV٬i "QӢIQsUd"(cb\/L')ߑىΞ`S˖嶎zZyS@ۂE d EN%gz֏}"V0t2ȑƪЉ1Siy>I8 ]mIV]hDh5uu-ģV!P$FyLOyzhR`! ]/^386l@D븫4ƒQ2[0~qW z\C(waɝ|*鏀#0Qx~8&ԩIwN;:֏8i\BvGObrk6bk5HgV6!/ÉƔJ05 ?K7/u{ji 0\25[sD\ ;*cսLPC b#y5&]; s@zxK+dLx2֎V4}QK1'":^re (ńa)RKлhnC0;EXC6j>ŮI1.Ĥu_3_c&901B醯p'^[Mz TYNoiM0_Qƾ4-nZ:ixtWmE -+ϲDɪ}z>Ussuh¬7 ؎;1KnJ5X_W4NۋG#7,Fe 'mN|Iu vAӎ'&]gͰü5۟[={݂7av3O0&.>Tw h 0([U <d" '-w9Pϑ3Z=ns)&\B{na Z.6Z\GEQ9"$6/RuA=ɿy)+S.Uoʥ1sˁ"S+PsG&gDPN&;-e\;S5T' #vjT>J^ǏNVkE]o-[\qn1'KuBhIUV񱮱a&䙘 ",u4Pi}Z~ԌMƷmbzSyT Q|w N~ZFUO0*@epHj -B qKqiwłG% y@@`xsB⊑3PVK3((x(x h%COo]; n߿{]Jvvk*Ӓ]"Y& K\LW D;簵mr4֧S49Bɤ:VF+Q'lT кzG$C7 zT[g9_ǪbuAMΞz솩^} 88D#ҋUHg =ӹle˕%2?]VUe%JqBf]&,-̉_u5(ϖx@/o=te!/Jiz(y:OL{{<Cny,6oɷNLșjq/HU*]یVW]:DRffQn R~c(Z24E;yR&E_1jnEl;T@,EF=$?maWG2 uJ9vR|A@{\K`].An @E?"*]ߨhdU!qD35W]f/ݬک8MŹZ'Tkx ]AnLݤpbro .-ZjyhL6 /[r1@%!%{Ԑ Q\#C]O%Re(eau)9yN׹l1TqnVǰվm 7N |p&T $?,p;W|ʂc@6+P6>T\w)i*#u$nTbD 8& jd ݎJcsvuyBRF $.@dOevlb?f*Z =.^7hյCl'0hc;#x4I_#~ @kĭu/V/n˺k8?H>A$,%l /+x1 rRhqL[xMףq øK $e.<-LcMU:^L{1,3XjVvE~5HZ3p͍#\) a)t2ތp{EᅶnHV0UWyf99Rm>soIijͳkZOe^>I Olŀ+CWjlb-D=h;9$¸5D`\㢔j7mE$ױO`tOpvib7]Oi7q5#m^% YX6WT46oZsX^=6aҴK7Iy "#y7~kͣk-=SSFG xiƟ4eږY&SZX` b$ FpA֭Q2:7asve:7n0g nKa<~:y=gf{v~&?nOvv=Djx:ܮ=x=Eg*ďL+:Sw5}ׄ2mg=vA047ߟY :oJ)p@-D_KK-@q슳A֒̕^3Z7-|4XXwD-<'o1E>4gEB[̿o_flZλ H["46$;&?P^Ft0NZ 5tt6Ў &Xaг_^F;"lt80t~R{)6cy ,Zn0qft@.!uZ䡗@HG*@mwa5Ӳ8mm{*Q.&Y1 jݞ aSF:;Pίت

)E\"?TL LgS/)~>R.bwӮZUb5dqyjrdg/m[[['JC3h<0;ۧa1IF?dLh%آsٿE9:=BA=J^@l1~` ])}E^ 60.k_Z5 _ v'K߯M7V^\Qfs#8@{ˣF}z $E@?4/tS%Hɬ0O_0&t!饭Ј +?r;-gu;]%l\!!B}1q# V-ȝ^vkB!Ղ4j`s^s/{FG^Bh=Aoʣq\E* (EB:FP8A!V XԤ%sҬZF+aě.5WO:v{@0f vX[-0\L^61xZp7k&$>Tb<}Xw_!omfzINL*iE&E-Sޅ6L2I=?jj'@ZpENΛ Sgvs}&PU+w89b$Eiq>kc)#I-:GW0\҇*C_$x )-8Lhqʵ8A9 k!>j'Q\"T{wӧp"$ aK|d ^)֡`ZIKXuS>\kjZ4KlPH=,>z+\L6t & ~Fʛ>MLeHe< #76W3ͩ*7*^ Wׅ䘼Qvzt+EZƂ3jEL%6)-6) ]EhJ Qklh͠?y&mU"F_cs}{4%շ؋(yQvIRlpfNIVNT̸n'8ꢼ+!sbGQ]ݨEY_?ŘG`R#{g1Gbr_f.&-Af2VݕT UI>0wϽ3= 'OHzĸ!Ք=% r6EH>~yTVH S q)m.ꊵ_p]ƍ% Jum=kB;i`.܆^7EZ} S5#ǽtc@&Ri<Ne#ZДN)Nf1xs xm?@_"(]CjZ)]_*GR ,~6Y{"p^2QҞ YD}A4QG*C9%ɵg'LE#VZ!& ƘIDJNF.aO]ŚJSCo;0LZhAֆ\{ٛRFNQ!٧+4S3A*ڄ/"*~#W'[3zƒN" }Ǣ :!b ud8)NEo?d'\GjeM[t ro9LaRnO &pp,P_8~+sgq{#5n81~h8O-5v70澾@ѢD{V%3ο[}3eP9&)snhOS@:\xjN }Hrz=(k}ag*'kM~uMCC|PP9l~9_爭BbSH${Ƈ!R-h!e"t~J說 %PsY` 1ҧ8Va:՟]m` Q} ՋNHra! B?K-9:֋$=w 5}tw?E(@ڴ>g>> ZDf5Q8X&ex-GJmlԗSMRUyⓇȡQ'HU񈸯N Uy HT2rx1ؔyx2_Q^' XZs\b,*'n7t|^7^_YSN(] ̨=hD1eb7µlomMkC[˝)NDӯ ?+Y:I܅:='t׺yʝR~sg1.3=gR"&7nd<8^eD@zn[eqZLM8|@~Uju  u*R+1)AŤt-^O/9k.QٲRYm<?a+ 8#R'`.!P\m(ݑ|߆KJ|ҟ$7'{N=Тڰ/h-4qU0"hLC2W U'^*f:d#v7/M tcO)(6ZAyV_2Ý+QOںX%ˆ4 uaD/+^*U Q܉*mJr4$J@ҢvRBӤ*px69,gA?"z;ۼ/̃xI,]骳.3jwu0uMCB&񅃂 RA^D.pNrjD M:7I6c\|5WoH#cծT+|6+谔mYW]t"P4 +vv%bc+UqP3Iu صוosw&Ml's0x֏ޜXڎN`#B"(ۚAZnU#kEB7Ol.[vom,e(ԚRn4N[z)ANts|?lt&lTZnUQd#JJ%B/U0OjK ZrٹN-K1 Ly:Ce38-ztM߲/ aƋ83ʣF1e&>ruy=?g{AAV4P @usҭJs_hJ-$m@-*%rZeβ=x"h s嶣єʲ+Kj$m UZxͶmx\+~'xTUhQ+l ( wdH R` 3Cmiܺrl F+1W㜻0,j3bLp<-?QĎN);.e ؅U^G-8)mrL=ZWavdzS0¹l^[c@N?x7 ^IG˜իw"qňU"O% P7p͂mhʧ#}d"0,zMr'4wfg.0J]o=uPFX@TfP"ιDOd'⯒/ؑMH&J@T;i hXI)7CexJ_i ?}3O< p㌊fE`OIQ󀙙ލa0u$y#rHEI©-b(c qY^A7t#6]jʪxiQ Hp¸θr8.ڧ~mV;G4]ZM0(M>39 f"Vj<^!Tm&m墬BF$}%U 7Bo;6?fܝ *th3;2"+cML3q? `b+s{xӬ< :ٌb#9#ƓхR59sO:* \$eƓM9(4ݐ>Lb;O<8ϑc4942s gzk.̂2.[ꮩY3<[dPQ0#mH֙!)\ 7ndU&Q(R.Д[8j/x &fF Ey,qI6vc`;BW ufm  4CMُ۾ yóhn,eZu)PN`HosPף]>exjRCVq_FKk4B$x9$p~mmoۍs":N Cf] }<} u?@SKJW02 מзə};Qà(%tFݹ+K=X`*ّ0Aojh\d_%i@QzqmC[#i_xFmG" ;淡hGA6&Í[zXA1ІS GaT>6 (bsBroto (‹ƿzAɝ#q^\ DǐeB۴2ߔ-`F}F0ҹ̌cu-*|8"R$o?xǣ*`YV' .#޸,F Kx]|.o('c)i+W e3i;<Nc~Ix'qcuz/\ Gp%cT1cZ'9)A޿xRꘞ ;ޅwK xüaAvd8ZO obi[ׄb{tla"E< J$uDѿl~b17d:IZ!^W% Z-EZ8Yrt*͘Ȟu+WdEg@f (:?`4bN*Mq̌o}doME2*n׉|(LBS β$p 8G\\H*-srb)&A@][l߀I.{1jBU7[!3.q<u"^`aұKb]"l~p&x 3Ղ+U-nՎ&Nv&%s\[ w BV⮉N?lڌa_pXmvtkP:_kX4L:k55L65p%`Iq`J1+vT';>?OL4>ba& ϸu7coGzL2*)pRhGn_t{wPxTg`#bdHnZūeBNx2^Y N/_*ێ Ea_R.36@$?85-q&]a k@M|.cWi>rwEBq2U6+p|o5g#xЁ1҂ iu8];\oA9ہ Z]MU"]?>*w· q8nCo+Sw/?֛AAbzZ'wQڶEơIͺ>yjGkPŎ vʾCw_< iHNʹMmCUA]l~[OqXO ;b9%xh-= kRC+@(oʓҒP%Fl7 P*[l㪎p}!W$%%C޻*$F6 kZR9P~B9#їH9;#[HVt0Y"ˬՊ87LT a^;=Y[/Siӟ0Y <Q'3$ *G v(D6礼Q-_tUU{'?$%G?Cmm_¦xK( [Ao]< z@ēB{Jǀ`~NA^ ĸZ6 J<xN0cek DF/?-+:GΆDz!rYQ}a]|PA=W^} ɿb!f6$9NAPk^ :gf E+9g4gqrc=/34aЌG ښ`Pf"vPdR.BP5D[AHN:?xT1Y 7Zӕar c~J>{P9ݜҤH{v\8C?%ΧiN+atӷ";lW6AgXru7Oa@Lo=\[7sqDDɄo?}NlUzo6Î~n-} 4[:v̤' :s\x`x^i0=Ә,H,58d%MQcgs'սgk` .P90 5k(0Cg\Uo_eUC=,zh « ?Q?\ς0tE QywWYB|@|2&it5du%6xc8'ܸa)<څ2jla5XrHŃD*>}-k-r)FX,(9)=uY_kx?O@%{tq ao͠GVJ(%%N+"I~G~Lחp!Bȭ"+! ֺ# b{pv,3 !##%\\\<sLaT+ >@HmxтXe%/Ilk! u\aȤ{}z7'j,8Ġa$g/w;v0<s f;O|8=alzN8q.Q+#2kȬ BLF]H`U\!P jz;ya׶e-3e_Ի՜xv8k:D^St);a`Ms42$m?`ȋ8 MNݤ ֤ԤJolY5^aJgX9 >%q[mg}{אdQ[:d ڌ ni%MkmF-֔  -0v- j5 -ßx FA^C!,0Ήtíq =@ ,!d a$ɸl}#jt·[ 4A&aVm/hsՉW4N^`0ҍ;PBKv)p$.HHtޒ`"RK5w.フ1X"0D 5`75P/7pM_f+ȸ6ZKpnysxm}b8 Ճe 8ҫKFăo knj/Џ!9A?rS,qwwt< *EIr|a?;3A>!#mGwtt>ܦk菇#&јzcJlapӵ35HzE4ĥk: NlYIpʨw뻥l*Pz?؛hg ?ȧeDÞ䴨'%k_3Oe h> 9gPf*Kؘ)lȜ˽G¯ыöaI˴߃߅! `r@$OB3\z?$OO|Q$:(OiB ڞ w^/띂 VaLX𷪔f^x,s7w wJZEQ09 .Oœ-(d5M .+.̹VwsU= 6 (c^qHl2\&vaS|4>}xw/g1W:;";L:ɑ·K)C(LƒFam[{LrrՀNn3+~aƅc*l+_8#n6˨-^\>9Pǃ՟;h_j)DsGtb2OpIܯְF.K,;,~$E .G\b?d*㲒 ,^_a!pxPY4&[1$l)3C RiAaG?75uvv)C)aAuAku cE,E`!v#;з~LXt>_  r>H=;[\DH? ;}C^w~|u H/F` i#ه=(㉦ }[!//=uMZߋ:Eu Wti++[ﻀ}첊sLcη>9Ϥ2I (gRĺ6C#TyeP%ҙΨɨ2oQ% {Z~6ewe?:rA+ܵH M= X|0d!&Iʑ(-2xI@Z~H^dwa',#@iA#L)(͂GM.`\QGf(A K%h<;Wz{XR̋0:V=5)xo'_%7"1EވZsL~M#򛗔_=-%۴^Mۺqh=5۲V  ~C?z֓5 7 yXtvУu.ʶ~C2')bgh.jmrѧhV>'TF1Q0m@賌hO&\;H&6<,ʷJ& {^'d#[T^o.P5 -. ~z]oVG:Zi0j<,QRC=Ki` rB@\e>4&zUň$(7EH76(+/KS=Pge/_VsUs:fOW!)_VXo;'tvj[6;`q;0\^o^8 076IRHR$|kI2{7w޸$(7I1֫880p& 84jhug.p>p)Gux7V`#c裇v<ְ1}}mhO\'{W?m> \zځ~-R_O\}}]0&ɦY$CZ[zq 7BO> `}#(%_  p$9 ;H߄A[ n(!W \% p m#IoPOM ~~}|˻DLIn6% ]'feU*< \7F(٪]4 bc)m aŠH&jEt#ə)i~ͫe~ʍ6q+L`š-^"[tE9z-:n4!hnkQ(SoQNH?ChsM&{n [/Ug ;^7~nzQ;xDF2.#wF+M/rg||n3nTffNR[T?cPor='J;nT}@6;D8u^P:Գx>%zn#DxsE"*Ɔ7)7Nmb,ݢ_q!{ kq$D}sJŅy/<'-/,tyTG[Bk rQ%ّ|yNs3foGyYuWL~eQчR\;;UrgU*Eɧ*cR\ZCZ;OAoFh)9+ww½2f]Ebf^Ւ:"ls2ϑVv.zE,! 3v "o_(@'5Au@ކo@E&wpvC`!'Ӫ!\xC$;I\skldG-XNP=k<.WO͍hK`9'_Ea/Bu@^*TwD&ˠ< whǴ "Fokrbw:]Oib01XV9 }Ǫͫ}rn> go#*+PmeD ׿~sG* oXh~K>R &3Y#YA{RG4ޜ~PO!};x; ɹ`I/N~~e+ q_gq ðP p/~,~ X0Y W^|˯__yy'yyo+/p įy  P ?B- Q~$~Ż9)'-`I)֣Kぴ؁IOpȩ146,S#fyrL9z)|9W1ٍ@>ex $BQ He#IYN]q$ ;ap?/1)6 J) YORS)؉<8 ffZP L8yĒȵ"_v/e:3R1=NIrer<0Kr!!q19jV=[]ۀcETRu6{sSi|W5j;UWG T]@$[fԛ5Q(TONHɴ Wv; 7 2$UJNmB]^rFБǾ%HI) kĿ4U5Fr+aL |ֿ'^>:yQ OCprՌk$ns6S'C#.1n_x sSê176RYs,=qd9a5wOz{DfQ4T@5H4 أjʆGztM8`aWB  PapogP!w)wt zD nAp;ooIyxL S#?D}Jkn',=$jCCw3Dqvv2ɜJ31Zilpq=gc:%VZ(2FL#x%WPTv֩x%fgx'(~RQ8' v}bC#fY4 l 8rZ]2h vYDHX *e8fNJ57\k! $׍>Al umhwsuDOnRtTgWSyTpClkt v:NO?D\%4^*1c;޳)dtP.rk\ ԥO%` ֠2zL*sL:W$fPX4g2V,Y6G9^ZMPϿ tRcW+ ~t=/=ϵ6ga{D!KwˊrvL/])GϮF⑴}Gv`Q؈W&e*c*|># ]LTZ 9a Ȣq5_c*q!HGxc|r8dbm mŒ'w #fuhsGo=PJV?O/P=rMY(ׇ,ZARw?G2_UT ejUeh) 8|Wb֯A:4T6aeNrJ1ﴗ2},<9* F7揢 ǡ&~όEVA^dF\򷺽 B1vwdg#82:e-v\'_.ҴyC%!̠ho BnLM!h f#pLQV<ތP]1TSG9jU՟on #{x) IڱS% IS{UrѵF&ERefFK!BT"}R>"A*k?FtA|wW JNMNS I\pJBoή@T~JBmAFE ]v5 q@L~r @)Gq*4DHfy`ӄFƨauDUW,"f:HQn5 ~h[Ǎ&6 %23{ qg)Wê-quwӌwXqEOl(k?FhB_툦aor':xRۈ/@{i!x;m(]FvQxXd"*onsx4#S(0Ye#m\G7mOEhw }PVAeD<T_ >Wp{o_.mo'~<7NET#4ACyuMoW#uMΕF ehG+^rgFEl2PIt2 L)}~};BpM1O95~+>[i0<1POk^\N7JM د6H_6S<5ƶ_!DmcGfU _$$;RlV5XVB`4ʞGjH%L2%iO(>8&vQ9PIn qNq͇vE?E)2%u/DSTa=OQT S7* l:mۘ>l:jw< 3Z{0N`ȍyzŘ%jJ7ɱn8C"]փ4E Gvn{V3iE5Ly!2t^vvy,Wb[4ꪏq-Q]ufwx?/ vLmD!Fތ@ ܼ) /DhBe&42 P[ǟ*@~9ۑ3{ŗ0PH{s7? _.ZUu\&ir3S„Q͆! cUXn/ 3mb)*wTo[dJ{yPm@Jmhjʩ(mcN b*BDclΤIJ Taoi*P{\( ϻNQM$is/TUn e[Usڦ c[qjdҴmQUlQiHɆ# ^?¯ J/6՟lYS|«O$xU(}{䝢Wϲa视L3$q=Mz4W0gTqMWs"څީd9zs}ӵH~C,^( X+ZNc'x(OƈLP'mAZjS2gh 4Ӥ v^0\o"7 Q}0=[skQ[Qu5-,!Tlӑ ՝,tmoȍ[B%|dr%.SYF;*:!UZBT*h AO%> Ʉ$ .#n=JcrTջ+QTf~鹱Ē jpwp]"q5iޜ3]{P pj!h G(!@$9v-r=3"Z+XY/*)fwo$oh;kBuL:{fXgs+"?{RV+~iB;*#8 jmU*ro&*NSy{y8[kQʑ8zJ4Q;GUS=d]`qֺҹ &}΍sإv1#h@d)<#9cN!>Yhi @Gpy1dxoN: ƦBP.㑄> ݶ`.d6|N7GڡҶ( ,cdDU՛`%C;x?Y{fgcH,AzlSs@ Oz>za9 UCQ|P]$05C-m裖s:!r{]xK~huXG+V nkm Ԏ:10-Q# h>ֱPu#uCmSPD\_ %m たZ\: O&%`ڱ&}uy⺩eEJhfTEt!;0*-rƛQZY 0wkJd[7%:o: 2 BKGaTQopW(ad|[ˣXUcdBN;2v)d)uh|%0"zj8Pxn @o fc11pfv64ih7 L4;‘Ҩw]MzdjrN}QP"6ׄz&=ZrqS=LP'P])t'.f5.~3Mm=15UF?[NM`v!E9uMNٝ LJ@ʙ8&5êjM p̅86Q 54!g OJTW ]Q􀕍ާ+\!/Q>5D}XW(zV0x;8Qnөo8>ssnIcT7(̳0v$JsfL 5wa3gEiV ` 1s:nQ% XCdӣBi/qo amQ ׵X nk.84{0sԪ79|] ˠ^N6pf\cpSE=F}"vgA1{y?AMbhT {nq7 ;m9ݰR^ $liG"Kj|_?NVǗdUu*8Mz= ;&ea1Ofa)x 닪a+|n$#K}Wke;0\6ּxѵA)G?xB,_U&=v?4'bMEcq7"~1~ R$ؑUúrai)DY8 %Iēbhk74.NIvDљG*-;8XiTtn AIDX%Vqav~kbH;ul_n >^ιM/@NDאN)i26Ie# g 8P!0z8H7|r`/!w|*Af|RŢ@NkS>=,{jWef]qt LJV|9Zn (3 'kc#bVv28X R]gd-K=RR(SNJSq?'ء~QH\Lm & Tٸg\R7ܥ#j>C7?paq?}A/W{^Bqf'7N}"Ӳ2Kr'$BTFM\ -YBܷK\yYjM{Q$+.`uLf`ÐMi]! unB\q2t-s2iNR_X3 Rl]gI@s7E9Q~X GD=-(<<5"B f'>3Nj#ze]@EtNEHuh.i.hH!Be/WVtAʊ#)B[s) O]d1&jwAc>:+3rˑ-lDx&'P7qfH:kFh  O 9fRYjq˛BnûOmX sƾjr%op:7~#[Vl8͋BH"y@| EG}FxY! [9:)zrmbLwB5sYGB in8 &|V^`Т#puzz])`!~E}BxO<{D-X060E.C+|qnrŊ63F@-4&$+Ym ;^R126>\ZڿIzZg*@5 Bp./S%ζXnポK cv\R3u6qK[]Cllո'`SzueC" SuSG[_ GD?zpY0C- S+&AED udB [a߄qIl9%؀FFû+Ӓ*өߕf\]<ٍDLoYZe`1r.pi2̶m= +̎&u|@7Sx&݀џt&˝#厜-1xYMg=՜f LgA v}&y ׷8dfgCNQ*Kf~\ x 1 dN}+wP*S3R'͝X,a%+A sS#!BOx0Z\AM=?"r:]FGk?yf0왞rt#0PLoY+8 8B^H|A՜NGΑU.QeśhRʆwR}m @pڕ._ݜGOff s:FphGShȎd =oDE;d-+ι:(X94MrD^ݘ\cLn_ьm)<34}4et K Jq`N Q80$JjE "|6LI"K==3y9 DSx/P?0W A+ RBe_%Z]%2z˸%Kj:cM ^XDk>5w> ;GWkpv5ݏ3 }08 0U Eɢ=e`<4tf"l{ݨ[alx %h HYj߅Px3sji^5AwU|Sa9OÖj֙Yyc!-3kŚ2ki|No\Ě}43$rEyRǜg*A’"#6.R0DFf7Ś5ceᧀLP?|eMg[I9LEEʕfj-jftneii_K2 Ώ;*8Dc*++*50d Lb KšXTj!Y`$h|M B--.#;si\ҦO R%嬕e&LXﻱ.)hLf\0LE~ ^w i/oʹRi{tiIy΍H,sB p:(Me[wu긡tH ?lr6:a2jrž$1a_]ZP8{՛]1&)u)ȼ 12*ƹgHbvl y8 vXDE|Go5?ę˱ )G٩Bo\ W #~PȘa`.^+-)6Fd]aro{ʇI \/ZNot30ZZ^j2 I-""Nz/bϙ3Y:+TKJ7 IMӂ4ZFs)>Og g>Ϗρ6ۣJ,ȲGmn\]] EFڌX]gm̲z шW4l56H\PPPm,+PV뇺]v_2PJƟJ? '?OZ? ~Wi oH778޿U ?7߰Xo`Hhf~5Z1Ď'zz3v?~ /yi˯ھo׿߿{PW;~On>sO>ϟv˯?\ͷ]z޾ew3D3<7.!>ccq׀a7[c61˻s783KK{i2ϭY+"y2eBܓ0N ɼʉ4`/ya>ۄy`zLi4YL$$k!yJ/_9,sPZB<85a|q0&_cVtCKc(7[xb[b*gs4qeďlhZg^X1HӧF='q "ؑ*C͡9UqŰl鲌pfOdy] em8c߱es%c{`-2vDq/w }yoc> <<$GW1+q'똘맿cpeۻ>-C╦=:|{/7~cw1w*p~ ]c\}f>=EO_Zy;𧯟gx?|wk4|U7l9K޼>_ϑuLeoQhܼncיw*Yd.1[M9%"zs Cn{N JYB6ԚVXLWFi&`ywY4TWtw4+2'SF B0Tf&tٴ|Ќ&BVdZY C2LPZ\ @]+'úߋyy j\@٫Gٽ࿑9Z,() e78r01U tqyy-njb] bWfS9`^" c%ĈU` ]=%Vs1@}x0m|aB5 d ȘʇWsS{on ithgYd 1=%S:ȝ``F,c^E{]Hxjp鏈ۿ~Kֽ $81+P/2s1)]_ӽaNt߾~_^^Z1|['O5O-}u-]fДEI{]\+ګ \:[SvQԄ3&REb_}'5Epq WqYpǂ\in:f"Gc"p n_t.u*܍춿 [_h-gΐ xr3o(e+.}jcZpIogL7CS>7> yZyq\T{X$R(IPxC97 =0/ tO&<鋺uLJtPKSAGqZsetuptools/config.pyqHt+6St,iJu7C~`4&a([hV㫺V,n-A_h ~1D̦r{bq X1=~𤂥n|8#TcVMj'4&ZnP= Y W?9Ee|$wh&)vӸkndwi>d({0"Q"f<:`Ԫ\+2Qsk5Sx9aדFSϔhG|cB<4(k8Z k{} !_sjdo ^l*5"QYkRr@Hťӏc2gUO B!=Hҡ:<$Hz\ b|oր-wb\^"j=B' ?Ze-m،I1+ 6яѝWonLt/f -ڲPMD8VfYr]Bbc/XXZ6ŊY[JA]߁TܾBU\>0q| p:HϢi$hۮe(&Vv, M5R̝= n>puêY<ؾ֔};ΠW\!c *أi2dL'9Oze']{Xm~c묓Yn!yc}$E RFcDLf{z)bQʢ*9tGt!Frb }+ tBp#g6 g;%HQk8 Zg@Q=];s]=%gB{3P VԆ ؖmjɊJ# K5r]7dVZlfR[~x3wrytz@PfP=D"vIB@RZTz?͔ٱ,,6h<`l!B*W<BO+WU uYc]f=(N[V>B-1 > ԆcJ] h$i/򎸈I|o\wF tY=>j,2x+:xH:. s#3T#?#[_x`M&Q c"yK ZihL^9jGA38oXzS vw-4G AzQo-|wr&$ze0#^ni{FPc3!Y7JfߩiV`,wČ> *=U]oH$Xo0)PǓjѫ_@WÅ, f >NZxJx' z߽32ȦGHK:7m $&nA! IYE Z%l$NxnD;"k>4{?20^ q!~ک sļjFE;cb8/Ua=:OjL#3*0(@cRKNs 8#l uȠऄL"sK>xX(UNBzp&P/qΐo{"Hd}+,G{^;4xڢǺn5%`s]8FLRm%VBbJaY[ța:>?rpXp 2&)0jt*L`C>nxm\f~`.qD| {cOiOltP_e&>l_t8W _~9霃ijAV@[]Į\1Sϭd1q="3q(fcz8̷t"޵N1%htZ^ 5Xɮ^~ͫj“?}/_/-HQM#L5Es/ qMy:HN *h: Ab 'a ltR ;}MfACn>q~B0uJ?D7%-%k\i+c#}+j2n_Q{aluLO Osբl/cDq$#O/ySRjvuK+ƕcTzo拀d n,h@Xc2ivkEN#?ċ|4a(&y]2@[~ʑa_oSS2m.Ċlj '!D= (.= gZ gKOQmv{ֱ%}mK9W;X:Epmװhz@{Lmo6)I*( ؒryQU~{ٜMnIOzJ!MҚV@Go.ӆ}A泡 "5u1"D Q6oa .4ct\lk3'ܡ:HNؠ4 ξf - SuDPQ$CQ2 28o-i 8GVYC,F|$`ea8l`PF5s;MyδT!; QKT\(1:h鎆JL>Kp:fѲj!IJ0E`HLM!7_b],R{W#:\}H?Q8:g W♪|q(3MW@Â.cuδ-Ql_7i߆Rl9 .pA+|ݵbÞUlcAWAHK|=ZHE-ln0{E><[2lL&IKHGwƟ%mi,nJ;{q;n%h,VO} PRJ=֏#>E׏2;!]OWT+ a2캊}Ӯx1#@i2]i~'zS&}9x<w7C=)ul #K#נ'[\("B֬>Z}*u(uyAѰ ;}Yv'Rj5#)yþ#;=,X{b^G>~>]`!=(!ٙ'H57=ZE;U&QUY?he8<>6IQL |.2nj{JyYCl'ny6HNuWlԯ[=Fe<.hwеE [~|im!P?ݮVFڀD4DXs=3ވ)+5> W^X**vIBlj`!^ yJJ2,G`3yh'j辮yə0͖ݡ՟cc{7;) NŨtЇ|&^lXW?qF0z;jn/(xAƬGYSOe#ѷSD"j,Mge5!`MxŒf@-{Qư[v0!T}?Pj;V";T_A/hބ qKHu=TT`l$2Bs gN8!Eȹ&-u0'!#ثί Q}HlZ@+!5lЗ{,Ϭlf>grJrjpT=9gZԆƪ}yēWQpR4}Zfހg(pPb,d.ؘ^e/ #j"}4 oY/]%po鶀̲I=t_?[*g6ܳ嬩vXx,jY8X0JyM am[&t3Q OI!#(l=z1*nhȩe{# k@h fܵ F6c =,t`G\O08K<عoSKO.j3%{By">͆PؾfgjFx{ٙaUe[ /ɷ+r[:~e:k܂t4w#[ǰ2͠܊Ϭ4sc֭Yƥl;^V-x$fw 8LX_{;/GJ`Zwv$:I zud\&l, HAP<'ǝ @߽<pk n c7Av}^&8.;<&l<-#wT9<NcWmgQͬs:"w!ͭ5W`AF@5jadȂ6Qx'j5{2[;!#1Ib=xy|d a-&}75BQ/lqhv~2N4wpCst4x p @ȇcy( =N-_%7@̹Ogǯ!ϯًY0C\z ay^~["3'(R#v1i7~;u?u#Yrv{~_1r: (cI V,PANTw7hȈM>@'W`USvAc^_:*, &l޴ ezAJȥ&Adv .IdwsL*j8 3 wm d|%v,PKS,setuptools/dist.py}ksFw ,]. yՖRGc-E@PŠuۯyb@Nl[WU%`_>%zQVɶ[OX<9INe5+*=;:*כ钲ֿV([mMv}Uyma:O׋C-`.Ѳc'5]}^׫Bo/tO۰ŲBu Uѩ|UW;]sݤ? %;+CNnbȧ{~CO\b5MwOoǼ^[B-[sF KjB&_+uS5Mhs ڧU}To?}Eyؓh TSƛb~U\j"-5pTnh;n׭5Rׯ jӨy9l ;VχবM C~]WWj[jStK CU’fmCk6WyzU;D/Cz I@ʥ~G Xʄt#/$v岄ɭ; z>=bvˆj/:.K˲Mۊ6шY.Qd||V]("ƭZ-5YhTt]CϧIOR< a8>~=H' Bm}Nben+ޤc`NU1JI2eF+;ɫf+>6;*In.ahMDf U fyY=*T5G$y`I!wϲ`^U.njD0 ~l[sg,@pՂe躽Hxx^[i~ " OKC5Xm.Y{qJo49I}/~|(D&W6DaRl6]dWPm o΃+O< % r1mR ӢUP@1AnV)v\v0IΣ#Z_'[*bNӄLA͓ ڈ| > \ܖF|ϴ>X U)Hv=g-tf'}$7*)Z.e$ue< ۸8^Pužf9k;q?Ķ9^*jEH!ST 7 HBϋ%M8zMj~xDgJp3ɇcpnNl?rdv4oj0bm_%.* k4un˺Y[0V.WE۲ʼm|2W gji')?hZ >% (ը_e*urqnvzM-L. dA~ [N {rRQ#Et;<]i5{m{uyp+J0,]$o^<~qRs2)J৿9LfR7 F-F_8up_;__fApyy W [P+@1`x+M  PFw- d{J̾6b\7qM'Wտɣ?|:UgYwW|O?{{aS3 h@ !-O5C- r T1c,[bJA,{ В^^m*Vr`@;Vbf[:mj%4jx͜d VjְB<;L'?#K3﷪ܖP]%.A& ƥ9jsҥtYmPC缳$adpzhq '|%int9k@D.H`|zĂܼvy@V Pn8jYoh}Z("U?^p_5$q /( ^?q;N NHcP/M{#d{4  r,ͭ G&>W{rx]u3ΝeL8(2":C%쒛˺Uڍ_*84%ND$`r7l4$\BCd*sɱ5J#"PV~ 6=㮉˦hjxs}rdc?1~7 OU ܟ >pL\38씻/8`GU;4nA4gN'B+@܂H BN`&1m3*/@P@ M,dGfij/傒zZ[ Rv.a}v){9#t$z6:Fyp,E!>Ǚh"\b,.'>8ӹ@'Z R>fOPyjzJRabQJk+LFG+$nmG%?\ C>fO|^ysHeح 5te~r/L0V4Gs'lG1~U s%59HsCH\>;hQˢ:kAфeIs\{.gWR~Č +qΆޝ=i.j :{f*ʮ;^ML єQQC(M33so᪏0K\hG!w~@.S_E,n'A m3؃g77 yd%ʘG+b \'{lZ{ŔѯXHxֲFw_nI;@زۗ}ǓJPKgiۑ`ŬLei-\RUZT)0ж>%GU;N+ nmWÑw<,g-]p% %33 uQhZ3 B Bjp-^+JV5x#]F.TW<avL,e#aF:@6_^ [e͉'¶ R %ȍ:O6E1UZ΢f\@L9X*$ _(&Έv˜mѼ !ͷ5&OQ`̀,h*:ֻD~ ! wo0g紅9} QH/xSC;I' +83/6y*Eêx#6B|xɠQ"4f@uVIvQz,I<.*e8%dk7upWq:ZF<9 $y-`&Zbc\ @V; !E0ө'RzxZF8-\|tEJ)Yȷ8 njaV)AZf*O AP=mTI HMsHS“ۣa=5 &܊8PrB Q9F ̘v,s (MQ7JI: 1ǁ wb1@ s:v%:4[SwGs_KWXvP4M9Adzo8kNa6kБS nNc@yMTY<2L-U#TCծjyݞ/JMQ1r,HҧRwOU0V%0k}#.3%tpvZe"s-1eŪZ\ucrMaw-` kikr(Wpt+#-VRqo3=D⒬Rt8 ,: @#jUE 0q ^pw^6~?{g߿>>* LuJ&X9`gK0I0Nyij$CՌ^{ |av!):y5<DZiF91H;'*8&`56k0 Z.k噽E5rߎ&R `%>qĉ Rt|; ѹݤxe^;=f7~: 36 T |K;L5,@sɝy.M^';fumɎm!ڤ 񮋦|\l(cwʳdzz{qr{ bXN-Ux?<,rn|ТLͲ m56PBb;c e25J~]Hv}j8Ԛc]d漙XoH/cÞ8I၉XN+W;DV%*Ai"夾"HI(NQ/vA<93!>~?u+|Wsl/Ytr0Ϯ^g5nz?8uDsy,R2?w^>F07o6R &{NLuF wp g0FBH y:2:9`jQ? Ņ`Mפ1IP{gƘûHw%"1ApAP!UP$o;I6UEQ5ֆ0v/NM%_Z(}[h 5(z1RPiبv cbZ1'n;*"]LK`ap }]~2P9$f ed8֐U lڿlu'b<,,?pZg~D`D-G Fڡm܈M##¢:KfUp/5Uy:ϸ9a?;\iV U'TL0Bp<n{v\VGƥzY'<}f:Mi+Ndz)6,ee&O Gu}EI0NipPA1O՚0qe[؂y5F}%2_՝/0i;S䵴'𢩷X!;^络0,wC-zăD5B6g[Q0GX6TdxD_mS3B,N pBqr6|#V1zDV&@LrN*[Śja^; |FzCE&Ε?z\(Ur6Ag,D({sǼfqR DwPtcm P`5NM'W;d+DoW gO}sVyNxO2蒆tj oy/ROS*Uf3L)rhl*BRёMT63q#%[]fPtxj7av0]G^(T y 9ɴq9aPYG}H_\H$8kY_WF|j{@JY.]pOD2I餎[_bHEBVa e@^N+O2|˥lJQ,ٔK]HTjAB?X7#CFy: gOpS:(zQ"\8c4)='{Z[/B/^UI7T ڝ S\iUB']=*b|Tn}BZYռ`{uifNE +_˽+9:kab WqW3%;N%Czڨ'Ղ AuA*/:lɛh@0 -;] \\MĜ/Dbde;4kgKa5]HpBP4Jl4rE \qaFc|-z`zpnAVڸ/Oӳ>fFp3/omٻ:ou~c/a |nFon3ǧ2%6x_Bu'},꤭Q-a/_z[ޒ GftѮ&IqtX]h 39\KGX̹5{8.1H`ɰBMp䀔 IGkac?kޗ/~}WxqSx˥[{^!wEM]j-]Q?qWK{{wE}]S4bW])v ^4i`_u:t sL% GMQEE6ff?_@!dB9;.+/ ̀RJErDyr{):? ,!g9Yc{BǤPhabV#sHMAx)GKhD%V~4GϘH`4́/h{?0zQ31xx%κ%*ϧs_gWx V5vO62UBo5J_OF-ʎcب'\t]d3CbydS9P-Hd(nы}(ټ&d앵FmIdEAElx-;-U_().>NJ&"=wUޓ>&ELEÍJSn!0nZ9йjũ8T1Z>pw $MݱK4,/v8N3Jq_}I3O0&3JH@'2k> 30Cӳ2#iVAv6ʃF;gK <ƑQ錃'}155\KPܾ''gm|ؽq6LNrs;hXPKSsetuptools/extension.pyTM0+Fi%`*nUOުr& \<~͈hb!>k-,^Hv:[VwQ9UQVЎZ]qe<Eqߐuw8} ^m@=|INq'\r݅̉%Cگk QervKMz364)z_e.n`;4^A w؄|!Hk  SqRHxآ[vdT{ձ*^U9M+g:(ۮ^H LiK)P"P (>bNۡkKJdѦR}y9il@"F{D*Dz5zwA'I&Y2WB\UmgLۍ-F[p$K\VDeŭ5zeEKfeSqaU#7U~vyJr%N K$">!'ǔϑ?PKS޷Y setuptools/glob.pyXMs6Wl%amgz8z$k$\)PH̯⋠$顺$vow ;^`+^,xMkz s#3W65K'TE^m I Ǫs`W0?U E&D?Zպj$X1I2` spPli$.m5ӥ7cO?3@ŕ6vG`-{"8ؖիB'_L:ij)9⌫Cm~ Qg\uCpJdJ!1ALuk_]/‚`+eLL]Vޘq1#=4o?0R=[$c*7ϥ#T UXQ,s_Y4B*$Ljk _Fr(ElM.(^=eTdV(D{*s+:c9rr4M25vrN4{F٧eM#AT?[Nr.*hj,SފՌL ahT@Y$=#o_>|HG/N]ײnZkN\} {)kys0vC4)avy@qxBqY\N[fC]Q[ඵ|6fdH=̲HipƬE<`5 :6{f.d:yq*7c t/PKS)όsetuptools/gui-32.exe|TŹ8|6{9I69 l @AѠK4&1ƕ]"$4niK9Wks2lm~/ֶVpЄ/PkԉKL3g7 ޾}ys<3<<3V?3rßq~Ng!{%͙ Kޜ@5}M}7ᇾKz$I^˯ϓ~欬D=noa;d b"A~7콈>܈'\.[b0rߒd\7g4d9 ,&\ K{S8.5'#tOn$BVj|[usꇤ81_/o] :oÅXA/pEjHErgKY-<#4TqopMlZQ`foEMc~ ,Y)GKfSϿKfM04BOh5W:@7 X:L:* \}݊m@;[Ɨqj@R oy@XZ]"e6C , Hݡ`ӚCV, +l.81"4>+s 0cMiQZR`z|Yl%LQo;FSmڏ%)c\G:bݴ $k S8X<&ʂ72YJ */ijzT:x_`O?l69Yҗ[2}O \] {oT`yy!+>kHzqO8Q8"ﮡO5MOYáoP/ͣN 32wEӠCon<:f@mc :L!oA|'7p?t6e(G7!DlfjࡿԪr|7zh4+1MĆDr*9|8#h~˸h lo@j%G"RnEʣG_;Yuf{f ,n&=l6P_y&MQ$z ۮ]hYʸaG[QG=jrt4]Dv0kwV]-4U )m^r;1Z5(|J͟>r(K%|N.+Έ|j"|vPz+dkۥua[ p};=50؜J>"fm%kmxԽq yuzRCZjF6t{\tuz%(1kD%lqӏ ۪txqp[2iQ*ݶʬmմ4th6ˮZP.Y < ɟ5#qitc.59Khksq : t fy/xJzDp(8Y>3gKeʇF\x5M4(yH[0Fe_t? 3 '9?A ;hrh31`6aH)J{)LQ0 w(Q9+;\,D < a=VL/D!z_uc6<'>vL1+`&郇9ɌoNK _mX@f[XMbpi1@kr&[5pssP㱝ԺNIqTNYDS%uVȕWaDTkÈ|>ȗuB{\y!-,.*Z)9JSfQ|kh?k5tuLWub8} RZ'cyZMn*@Z Jcetb)d^r,HjxcHxKSIgKr74Y<,DӉhr+8\B (Mf7z>hO@Pf#D}B A*Pr5P:vVU<= \ Q~2$=OO[su#z.&U yGPT rl]II;xvj~dGj@Hc @N-gncRNtݑXN޻eGByWfGnHZ5T5KyZ7ƓS@W(w H%H1'4.Pz,٪TKJ "@N;:Pu]SL~LZHՂR8'к+.SJi3y<4dp׵K)ufy'bzlbR;VCa0:罪n=v.܅bfE!}҈57㸍hi~Аl, 4Iw6 L qj4ȟӸq-gNŪN%e@1@g( }LbR.me/x4  t! R3F|SW.2XUKYpc;Aw5h~'t0(Zij#~5.@!dBlR\}Z1(HbO8L[m.˿Ҥ4;Xy3AMڤȩ,Oϫ=ܭ|÷cG A!pv;Pa!DXl ڛ{T[2߰H/A>hq% ߇2; f 'UYk8qovLH`B;Ͷu > XW2V_Ya BQ"H4/x#*\^Z܉ύž_a_|NGBl64u#F.$!U@S r*n ._ѥy|)XnP5T\kwk~ 2|L'+%xgoغ/S=Q#H="Ft0'HP ]"|0X&4 82^|@j 85 9nW 4n/M@ C(jt$"`zcٳ='ef#S-t*~e 5jR]#7Piv^^cVpAES٪f짐7ؒ. z1K)oCoغg@|MPCgP7{gg+S? /q{&ĵ_|8!`rBn6fɀ-, D6A?-kӐ_ 6aA`̺n=3NރٻA= ͗QQ]4Jʁ|{GE#߆^+ FRzs<0q&[ab#. #%>Q">3ăo*:9$u7"^wmoX JyrrTryry|XH̱VXNG>ޙo,]a<wiB-\ˏb.-hZG(Is 6opQh2rbT.-5Mϖ/א O41OS"mK1A½4Nǵ\NN{k{Iۘ)[F: nfd %8E(uR*9 A b>ʔGB}`[+ZzX.j'lr8oۧaR4rnDV൵-oy@cV!3@q1F5ŚæpR(tgPqqnk@Dk$£șw=<;  YŒ;H@T((2i|4S@Snwt7xF9 ?ڸ3x95lCS&4HgflɐDcB%jd&n D+@b-&#!Žb(Xfucԇpߙb/y5ƻ=; хwxxK/dDx2֎kV4bNJEدuX"Jdntۯt}n6$)8=av쉱:ISB{=|kfiL!FC!,n:YZ>GoKP[E6~dtWҏRVkgRQj"Ky j[K\=D=A*6#p9FqKX%D&OɌ'&}[ 2r o|̒PM7ȋ_*\q?#"V ͋L4/L-KhSG%-xNN,f*BƬ!b oyPFp[.Rd,MWbFOa/nHtQ4:M̺2р؀k9P.㮶$jp56萧&hbeY5e̖.7#\XcQy 4ǿ$<_mpqi|.lR4y#RM 1C/<{Yk?cz{Ka/d_<P5j2dLأ!Tq]dHMp'CID0|i9qŇ#g5!ֽW0?Vш%h9Kjipu;)r^ZFoMiݐ=. 'NiBr馦BU+mg->qdjxvD ulȴi-!Qz9@k1B*'p|رFɭ֊~6um%On1'KuBըIUV𳶡~fرF@^a>bpi *,mbOfR)018ET%8Ya] а +Ȓ''-8 vIV qP!ܺb * »{, %P2 z qlq zwoPJF|SefL$~-6oefi|#zMcjZ~()=R%@?=f1p?|$=J߁<- *Vn7BOC4h }`lYчBp턹R$1jDI+tyvYK|4K9QԠD?ZDqȧܖ$+E\d>IwpՃ.{^7]uLwN șjt/tatUęH>-g%zlZ3m[El\q\WzXZnG)4`4bJpIt7JN6FգhsMgDTb&z7 tߓ<^c`X)#@\C$frC\˥+uV;p,,,>҇.Anipt" +j9,5+GȨa'+l)t/EUK7,fzzi,  N,;EuGm>ƀ#uD^,': ͘gSK]Oˤ<Q[yރaONN7 u qK"I6Cmh֝e'`<#( bP 7vA6]tnh'+F m8׍c%08si*r.};tqZOx?9dF:93[3h-3} mlgzfB#ik/Q!xcb.#ć.:- PL庛#1ʧ"`(ETU]xC_FGq@OI.Rx [4HutB} at+Yf1)uX<@>zYVCaۥmܝJ,>;뭦ӝJ"xT 23,+Ź2u ۀKn,%+%bGya\PMhfYtۄ;J3[.,2͕ h(47qkͥz1o>f߶x0Ma=oГf˂d{8~m~]9l*mWs#no/bUݮg|k|Y>K5sWk5YJ}`Ogz]00Qtr&NL23u77z$XXwD-<)o1G>dFB[,*Nu>1cjq' nFAAM]Q#>AW`K{&3dЃ%PɖCQQ*Z"e[vK ױpW3e=Pwqn}l7U\qB.nky 4(Ͱh-q\ݠ +<K:r8m.&*_@9!Q9ERhYb; P0X_ n)x4%ͪGBBdqT"c1| _Oy1q2AZݭѧҐj(IC#7qr^ p$}K3sb"_m9c#2Ą/tvkG8dl,yMCeCJ+*ץp+9 >YTO_9< ۼtXje YRnY]' , 9mIn^kk$LAb墄imݑihcGО8yPaG{/͸~7d 6kO%8>T=}Z\omfrII,*iE&E-(Sޅ62Uw?w <&ݩL/]xJ_m\XjyVl}pt[ɪwU Hԫ`ztVd]a0Њ#hMr]>0\+@L2 [Vg`.0ve]ǓhJwOKZv c6-X%[qWԊإUF;y韐}j;j{i={mjx&SoE~xF}_h<=/|Xte #Q-C_S*C!:*Q=T衕8k꾐4k[>8ذe-/3ctɺMcBŬ,d(D)d:Bc!ef&G[l5n=B!56?b2|2ANm= XY@)Eȋ H" 'e)V6 v"O"v"ubƧsaP,ʻ<'p؍RD a!D)50+=v _e6{#5Hڬ!Fb*Iݧ?WSwP"u:t-uR I-ހP`E%q<*uBY('$ǷJ+ZwuϬںZbK\7h:τք\1wth!bW?@}hQ24>4F!L*͵'Ee6hnE'Y8G}n4Qw[ JVbaJʑ.+?mO8Kf=8FE?<݉["f:|w(8[2dinanǐ2͇h~̻hr$jŭH2CDQg˺3W%?㩡m vgBU Bt"HT_%޼1Y9.')*$ǴaE}kp8򮴢0HAE8y}A~z&1}:RK+CkڪKC9C)( &]weGdsp,Pcꂹe\PH7qjhm p]w5ޠW\[Qt@|=|8JI 3eHf9) `yt ]nh9Kr P83#Frzk}cgF}Qo Ph~tI@E|PP9>Z/kUSl} 4v::D 8]a,b :Yl]"V52{5B$ЯqwV5Pr XyPQ;C/}Fc%0hSە8<,4t?qDbúntS3I.#>@_3Uh'xw;𑘣cH':ypWLzS Ϧ9(w3oZmnc3TuVNO}i;8?U+>}nTʬ&)_B lJͤԔN Ƴ\ǻMU-ye''OyQ~:F2&v LOqA ΂1xB6$w`N#Q*ۿaMe 3(mo9#TMdDq"v,Y 퍥+ eF{RNz骯uP_!ޕ;2fΒ7Z_#ކᥥ?N^Xd]psi(~KJpvO06Ԩ6 Zuh6F;M\ZrH+Cw*sjAv7/ ͎ tcPOdˠŬF7C# g`S2.rH?0"͂?VF ".2!ŝ6$i3vRBMRamgNyrVd щ;8މ֥N1n3kwui0]=h!ttMF!AʀI/O%.^ܷZ>ѹxvFi|NMjy*7'HXj8As[؁12C۸ڣ-뮍N%gkG=CҮFlq%2 uj[3Iq*صJ[>z&) 0yԏޒ.uNb#B"ۚ1 Ƌ[l UkE DHPܭkgr;Iܶbvb ZRNL|eWZ)|ޖ3!hFu?BAe@#:m-sAk`'Z4o9FUeqԤ=Ps?@a/BCZE>M #t_EDvϋt]IP Rz/0YqOa:@ yWmCY{}$sg*BN(–$gS„h^UAJtϐ5\)zx<1~]^Myix#L1 6PBiZA]ܧJ%"Ѐ'laqQ Rt)71PtC]f"`IPGCz 6d06t[ُ1 nuBP,LT1^_ěRV]J< 8Z1S䘖shPWh9as\}>Ǡv>(9(H%Oe׃EXA}ÊQEdrIE?;1YpsMyT'~g)D?x+vG .{&}ϗvTAA>R=B]Ji`WH%.R"()C=RR~}3Ta-PוxkdWll@%8.V~CM ,L6*6 S'in MQ/cV1 (c qY_E3w#v`^jytH-'p@ndI8}]ߴgdns mG?>.H#Oc.V]tQ2؛:C39c`&q jkG3kx-2Zuf1X-pIOb- 1ǐdY'ǚ{_פR($.wJSj"R\~5q1/^ [یΔ K>>⏐|OFJkds'?;y&KH O'Qh!}i!$L}j;_|<ϑ7ir?d9-xT݇A]$]vGGe$oVsT &ufex (Am͡B+o!jYyc̋ 4Vcb ˫blm@\2 dcHV #t z1W[`YB}@3Ԕȹ-7h?~`.IFp^; D0vA}6]}xLjj8ą3rD]EuN=xCW&Tnx7ypzt QGJW33<G+W"DxᑯLP)A?5T~gC fޞʼisOhPgGDHK"=~t㹞/c9ScH!2zhP#na۰A?ú Ny:鴾k桷3yW7+zߍqnZR3NE"/4]y'*0SH^C9~rSqGU0llbUQckd6^&u[rofi7':fPьYx4htIF=`_G[v/<7[^;zc ;m8BHj*7 ޛ ^+fhlxK 1L5:7peD?{{]t 錞J,ۡ8avj9:[QWat\Wr/Sm^n Ó ^GCWts )‹@ƿx_Nϝ~ `\ tYG2mv)] [A׍ؤ0;'uj.| ("R$ $!3V`^Ӑ J&7.e0 2R2ryу^q ߅g-%)+W ˳y{GR~Z ф<3@V:nWѤ-)Sk]LȠEALd/:w!]R=/Avd8察Dbݙ3[SBvWtl1"yHԥtrԈfs?XE}!IR ?Rx t,Um)p>4M`z: Of߬w+WFo`@1P<Ÿ tIJE/73[_`"YnkMǁ"*QwԀYDnӢ'*/BpUYeiyӕU0Q6 -L(%> sL2'9HGBK] UYkB\)|HE ]ʸc2 0^-EMf'/P–nJG'Tk,z]Fx /»JV⩌N?q ^Oxolk?W PkXL:{55и`3j4˃K0|bWA)N^ ~ 1+h|܈#@}7p~ƭ!,Qxx$ڤg"yO4uf{P-`?Z P,O9Yx20\Z_T Auv)Xh ( %=6;q P<*n)|PG/!#6ȎZrk\јk u!YZAGrOG ږR$Wy-P+EB;*h>KFxs [ۊ*n WԻjmw½o½y7@K J[F*2/"a֤W G9}#0N(oȓLP w;&LnT(U Ccؕ y٠[MIlp~uE_bYd1t1겨F"7Ύu'$c*J%2I&hN@^_sv :E74pbr,8f/|OPڭj8Dgd?(D7&g53vVΡ/q3*Әq=+z';ZxE5rRIb\lg=D6礼]o`OzUU{l'?*%G?EiM_¦~K( 7Z \IF!=_%} RcP 0;q ^b|9m.S.^Z߰(HgfF`ٔCϜ<,B97L/̼O( 1G īP!' b Ԇ$e#Pj^P%gLNd\ec 7V Y8\Zʔ_,%eq >Ik غd3 ]4gAb(](3k{)y栦36`zsf{J"G6zx.T^9Jb̃i7[-f6yÂ'РDC{a Äw@H8 r:oAKR>k2 ])/W2)l> 5G3xulzX) <Y*KG1c>bgO\z}nô> . jXܛmDBR|UB6@qA܉IPW5PWD$h%+d VQmYo'ϔ06rlಜжZqM38*pTE֠͆ V]ҴzlKha~bM`00~џcނ ^Ges(k(F]nq{]q8>?K0k.i/pE1d6A@[FړNrluf}W-:B~Aۃ bsT^¢8=+0*t?8TMnw?ř((q6zkwJK-S\@X#%ʇu7W@| M{9NώTA_؃nq"9_@R ؝#FK ڶ{H&m`9G4<WƜSrucDhL6kL_A*LИ[Y4'q$&A .^#MoŽq}NgI4f\o!ɣM,2eˢ~\t\ХDSЄdю#RJ^+HyUv1CkȘ}sK¯#eL˴݅> v&OA$gN_U7>y;C[Gؖ ]B.39^Xm|(ߺҤ0@?no@y~wՎ&vdGIGt59Rr)esuhScQH& n:A˝!x;{l-W U+TV?sw2#^>-Pǃ?s?lrR L(ﻀcG/L70mAC &Eu(;-;*d:z%ܙz Wb 4+|lt D@\Њ\;G@C3*փL i F$rAˡZұ/-.#3ݕNAzQ?{fKe~ (ͅOM.`\UWr{^55XOK;6PerbI6/BkZu$u ȿ\gQ1|\ _(&_lK6OӶn\0wO&ﺻ1gGC"Х;<߁3 OL'wSyT s0䁼j XY+f8DmG?* ,x^EBC0j9lRӼ߰СG. ?;Odyo콉pӉ^fjbo o|[{/};_ػsqG;{>}}GٻCIfQt;{W{/M%~et5{+{}W%H+{--aut{Kt{o콙%P؋ 4c,5Oi[E|gcDc1$FAA*0pTtp e8Fͧ&M_mm'i 'D`M`% ἵ>3̠Xk}upߵ?g^{-7r_#NgQ|<yD.<>#^&{ e,{>XD43T9yV>UZ&-|Qp}Jg|d'R/| %? Q96_ "|Z B芡~^<reOQ:?A2P{/Wh獀[? 5Hg!S'E dQK(sTg.54+*`\忟 b|T~J ԥ_z+r>gjgB" D|$gUďF@yBj\޾ & _r{^F?>ߑ_/ԄƁ' h)pU!"9'ȸYШ,2nZh;A&$ɹq922{cwL?꬗5"gur+K Ht <`' #A:1B}*?hӫَebu2,}՜j}&MG7˝)WT.(F=ֶPgҮv*GĨFrwa8UL K.ե!rgLr?ƥ/.%s6ɝr4 \İYy@=< {'Zi+6ppp;Np^ps+a^0^Jv]( xqbLk/w"޸n><ږ:!j¾bxZ:R_o\}}R F(<hKUL=S@פ/kM3W_AL ~1wŃH}5َ <EVl|M$u$Fn8ZpUW\e`6 G&UXyolE2Ѫ%w7Ӧ ,JНkF A{jfCϽ@M}Fh" (JYৈ)66Hr(Qxf cp)'EȵJXS|84z٢[\]s[ttNAxd9ëj8Φy+!Nnꠄ0;s~5 U)xwƌ(/)/"7 =C6Hw=LEwKeY*}%d}h0Qc\+=Q)FK2TA,D>3АƯoxƀ- CMYf6biMk\xM!ԉ"$ &{)}]*BZ_"3樥h \%Rf[O `vD)z5.Mpn)z6jݳ7߻E–+n,{Pg?-]..jq|_OWqAjo= .=X}*Wҵ^n^␒O++Snjr7f %Ox|s8*{E 2\(7udMB;?[e΃0XkZƒ88Nre_fr'ߠ <͎n炝']4OCICxrvX1myfׅĆ[NPg osr;xjW%:[찪J8 jm.xR2P=ۘ0) ПUt oDx ہ@& 4΅nNf^^t"+[†W}z~e/mӔ_kP=} Ð&rB5iOP ƋXWx_yǯ>3$2'yG <x+_n:_md?+ͱ,mdżp@u;pO w˹nC.OKI YB1.#PqУ,#ιi2 x $BQHe='pO8 c Cc7, %F p\6c;$LH 44d'UqkE@CB丂wrՠ{фh5~kęNJb 3X 9@u,Ltp뜉X}~y.``޲BFpGTC$ÃMlxWv!Z8Nu0g0j 芠qĝth7Sxo,55n+9.Jxg'}ag;}y|OEIOU*n.\r|?`PsPҶB9b;q6v"ɜJJ;%NmrpNPʁ~v;Ei%Ba5ȴf u?wq!ݔwuU8EƍWBocx~wpHI|bNSmW:.0c'CSȁ Xp+GԮ0\ȽJA+2hMMvZ7pQi$ hhb4E?Z5H ܶM6/h-Q]W:kqɏ:D*ub z$ We '7\vXSJ)ͪ0޳.<&0P,:lR*)]W( k=&1lt"\`2\<2^ o:luU՚d MB:ȞH'5vRqQ(Ngs2܅f9L"LhdIl]QOή3)s;b0qh^x$xvl5 PˤL[e[|eVEq6~kJd' Yt5V&k|9._,;/&  QxUݴzÈ t%C6'nkhm,`=PF0P=|EݬE ,iC<#aY) XtߪH4FVWY+5[!`*CQpԶr79%z2,HE* F7>A3ǢAM 4-ş!w/Im.Ďo}LBQv#wgϸ2;-v\_ .29=9.S% ̤Rlo f^N,}<}ƟF< =b%"Ky((bjro좈BA|:re; ڟy,ㄷf:9Y#R&b r3x^} ҍfa޾zvjP9DӀvhҲ*NOѝAUB>>Sqº]NTsK]߰$$;[JYHsYsN*1'Ւ$jOYdJҟ0^4(1C{](K_7Ѕ8xBPM:JV\iMig}{/OU S67j l:mhai ^K>H0lŻ1n`E{x%z.b:(٬B= tY7FNrT(J;s]s(aʏ WЧ+ gyB:6Psf! 4ߪ3ӟsXT4|kfMv{33:r &{2zJ|PF'X#nRa˧s\0W~ Tߊ[0yE)M%rܠ?}D|% @5H( 55ObZ85QvҦS3k犭C4o"TnoESVnWufY{ *2؆ Јy;2bkFOj U 4a&='& J9jH֜jʗQVy;eJ߼q0u#YѓLZ6B<꽐-*!Rx׏+҇My[?W**=  r t"މ2${oX:GQD%[x4nG5mƖ7Vp•bѤߩXt$~.6&Ssk60,.#8GG9 Fm$("nZP%| Ev@K8BBlad 9nr[H󛋮!uYDNLtD 52ZR~SGp&Ng}SMU쓎!GM#0q.M칏L0gߥ,zˮ#"ډK5W$sN噂VTB⛢0ACiwO4ͣS0NSCap=Y,lazFͷaif!oMzڎ9ϔ`緐SMWnTwж *c 3lYXހ cl}jڻDB4T=U ܳO:{*l6ew[%"Lbg *B|^ 7k iW7`66ٛVS},}nHTaRƑJbm>,2Bj؂^ tkp}iaTsJҚz&6ф=gIq=8M]Kf WI\O8!EIb} pFQ(LG9FL~! +[0 FfI%!W'Bnж%pojD,PVN'ILw]xC6,#}5\T ?oRs<5g0Cf `iG`1c\BwF([yju({=U}Mm=[ƆϵY[wQ/*Wt*8/"Tl"jI"egёq/ZusKhdTu-m(Ȏ  ^YC~7!짼I?ζ2zދ`Of/Fio9dђlwt,> ?RV +~yJ?" o=Clt'iOﲯɯKS.pa +cfWnZt755Kw{kwl629WgL-O 'n05 &d6X1F^K?P7sE*:&mHۿ>86O5/,<+\` F *ﻍ" _ARZ6sALZb5#Nm7)8[87Û雒!vt 7/ů]㜌a'(`1jTz?+hje 8 j MM5⃛l| 68{45c/i4'Hcĝ +Cls<5?VV˹]IG 97kU[2\ּvkR4&T:Y$=v?4r1"LC~??J;|S{>T-Efey3'}DIA'yuiJDRiw@zEo|eǶ0ȏ Hp'*QuLbTC@jUЮl[ZU\TLt C+Ÿ"i T6>biZ)pVg*$Io,1W81nCOU&.I-0 ?H9.OTlp0ĻTӅg}ÚZ8 t% +/x}?;O8X2wcV6:Nu'OvhKOxnBfp&2p6;J<{zMvZ;N'@W~EQs3y;\,l!H@jrR_s*%d _K6/s'8En> &j .-o"ii7ʡjPrߴAE:E۬,pdwfn;mbK[gY'<E9QN(QzF2  BPBOHLz9=C6G TDd%@sGsA FB0gIRVLt6o- v0{o%D.EVP!|)tvyr˕%<ބ2'2Q C&ORhB-BSt}EdH6s·&hm* Br(ͦBc"n"luX sqK6]7z@+/{HvXmgk7%G%< zc^V >(":gmwVB5sY@ ԌjS2pU^V8`Q NyN7=0>"QG޽,Xf,K " t8`MNY*d' }'ɊbDV鎗\KgkmVjީI3U!yÚv>HLGIXtEwFՍt|V8&%w#8,mG s!m.ԣvg9^@5ۘP>,%U}l.˂p4$nTVUX1*^&NEمsΰ |30.Q1w,nxdRVe3¹ 'H9^fݩ&7|r ^m+|z*Ȫb,sji}}^Y2Su!hf7d'iJ+wk<^whufe!- Y'v8'coYn9L)=C~E(l+ՐB%O|&>u"QI!6ZWPWn(X98Ѿrףnd)>0~`^i>2>YC \%=F\ϒ%5Nuxy߮AѹόZ2vRQ-g#mkpv`Y8 SEpad7!ܱ&pMٿ*%aCq(?&Halu#5iv=QNIp-5hwf`s< QL}I gZ)}9*K?)d~;fO*_Mu 1HB&Grɫ㗫j*1 fhiD՞YН"ucRA֞ U뽂Ė"˵v5Eyg.<o(~S]whTBA!FPH#(n$7a(}]r2p쐅nBUUrSq7+fW _Yo[}5=-8  0(y xu&} O&`:@  `-IN|0 `J;C^p07HX`P (8>( c Kp#|d`30ˁ^cqX:L꬛X]^YUW`/+ѕB٭V?&+וa><?K)z̛²RȱV:N)'! !teR<{Q9;|F(nD)a*<3V303R#Ϸ(劋#cjE0,*Fc0fYg^b6@%u35k07O1FG읒DʑʠհțF36b 'MMyjԴ̸虷Ϻ#λbgϙ{w\|~^1$ON1.H[x}Lӗf,^o+VZƲ6/Zȶ~{mظi?Ru5bˊJYc_2wA"o50njqEjE7fY99,ڹRĪevÄA.[$#+pW&e)iscbg&,EyLBWbai8,0$ d⢵v}l[ͳBVKv)kcI oUpevZJt|I yc 3bK ]4y2.r¢ Zx.ӕBV4VQi[d).zd 7(Y!n-u8?t YD-)`뭐;Vns)Y0h)rθ#~+#mJ UZڹ<*H`JqRD M>2n]ܒg%R`uJ;o2l! ]Vgu-0+%N VK9}:n,*oͿN9o(x'ID7{W}4dbg|`|}] Ey~q6n*F q][kB>.R| kav ‘Tȡ"0;BTÝ+*7Z~O?dke%Rbcܸ!Z8X˗|O0C 鍎`1* X]Vert=IBYf1`}^gZ Wlc鏠\)iJhFKIp*å𬔞{vóJz~;w={~9xQY XkjjQ [XoaQ6nX UMPîKJz Q'?7Mg7}Z=d7 ? ?솫,;F;P>20:;kIӇwȣ=O<~3y^|{_ͫ}wط7[p=vğN:}潳Ö>>ϟ|z/x:םv+~}3DC3<7.!:D%$o?>lc2ݑfBKM d"<1qfm=/n 33[U s/WLhetE'a~uh{-1_|0H0[H"򴬐WH~RORIŴc< 0K6be3XBfվd x3x@"K\+'~fØ G:MILfqi]R-"8Aр Zi2Z Z ~K/\߽I֒l$+U,-+cx@xˀ 01̳O\;.J{Nr" Gaj`x_ L?<׃{Nz10s c>0O _hDÐtxL5 nJ20EIOxFw?_|?2(3K^^:t{Xsg 3yf^?(5mY=h:=NJn ܟ?vos}W>/!˹=tzYyW37[ku򏝭,-Z֚Lw̒Y{q֌&c"˽'lKZf(*]Wl+$LLhLVae2M j*犭EŖ+1n|-ʳgX tY-W; 8;eFhҪo'8S1mrYI $\TT Y$9'q?q',5Xʼ M ѻ˼x5)ۡiBsqS[2'ːVXrYf.vݗ2F![`0iVK99`#@c%ČUf(_=yvk  @x30mRa±eM dYɘ rY<|NSg߉K"կՅ@L mM-_Tfɗa4 8{7HRi~FyQ)dXq`3S d_,"E6S.ʷ&ZLc<3ke];/~_ XYto@"7vBxAmö^V^/_=q2X%߲"*8'IR8t#P̯K;Vy1z~%}>irC?QK'X(eR uh iv`E?yү6K8cIbe3}Y Mb2D-vY>u Y{T$1.6. RRd034K t;$PZV$]{}N2q^RaxwM 8v?=8E5TH.uODQ@4b!(Oa* #EW#嫕F$OHI{n,3$7[?G*XǍLĶ]5XpRS w(G_J%NJJ!-mmsO?Tޟv >tCos!P( t\z57o")uHݪgp n|k7n0~k{n< ϭ:{jJx:fǶ:ٖOZ0̝[i=d)j1>}1WB_20IT)עõW0f? .*p#𥁬ůE-] .4Q 3N!pVw)N? . Ml~iuY.qDˆJzC?s?4K;k3~ҘDZZ@Ŭ.,)4 72D.AOxox@ɩϛXejPKS&setuptools/gui-64.exe{xT0~&3Ln7`P40P琉Ɗ"V49&d;ֶWk*&rp T}#@p=֞I&y>2g}]{mOm%$I63MIZ%>]3Hz;}˸Uq3_ZP}w?*g?{Hs^W3?sC;9;;c/龫6$|l›[s-|ZyW˃ |Iq4MvC"S eK҇2_ĵOES$Ɏ?RSZ`$ J\4)yX$Gb<ɓ{kB_,xA>AO߿ lC wa͝]L&fdFkp򎼮vG5򰩖2WO`&ie sٽ*_Wd]Xuln3bUj fl3; 5]M٪KtA!ۅ^ރUPhpRE!w*e*[dTlT6 &RTPf7%anQ@ewC~5rQ5+Uv<Ԫ YU.mM>sv#ԪR#!7` /~OthjvsB,qHr}qCm`(,]@Aqݮ-٪Z[fSsToKEf"XR ْDӹW."{'%Tb{_Yo*kQY_f=!1{]pdjL7u5DA@=ʎ*ᥒ.ЪBs5S eЄQ)ȇW_vO^/"bsl|]}}vY3Vޖ1}U?J"KS%R&) 7s xVyI1Mv>a&մYc,RM0W| OC w@Gt #$*&g:$)r ,'4 <Qv6[U,i-ğOk `.{ ,T}I'P # w52CeAw λ!nOTwQ텉jGڐ3-Fة@9\~#,KG^˦n0 omz,*P M#8>RUurbC͢Z3r lʷ@A9IHf([}B!@ [DY)Df$HPe{RXňNaaƁkLfk4 $P1|UPHb'v:@)FY*Tn7 El3Qۗ]57zջRW5 65[6HH1)SGX5JW=DV$)la2+yZ*Y7f㰺/Tn |1\\uh 5VP.Rͦ&vAMw0[Y~"(\xHq-S{L8m m cK5VeTHSfƨ! LA?mk-iv1m8yl7C K6CV9 3k_"%Ͻb"l#_h|cJxOpiYLtXeb " g:F|VRd2-˾ ~jP }yfXayQnWmϕfvB(IFu"AE8kx${ 8"k|rlnejz `Cp6"30r";U 4:!AVN5b-RF>kB~$iPٽr@%ۋ pٳ{ [11뉔yHL[5QjmZTc}j4,w;%! J"587x^ǡ q2f/١60 "jUs;!Vmn Ɯ=D-ջb Tgw/ |C]ګ5]>6BDssTc5ɱ 52tI86Te{FCZ=/S+6J^eQy) @`ހ>CFR P,5y"#jo8}B>Gm7"МTyk-w$ }a@>7wn~GōՖF;D*Qi5v)k WzxI;wp.bUlտ+x2jsU!`]X4Z* 00nȁr 8ݰ:<<8u_;\oU1"؍?T:GY喢3) SYa ֧ir88z\KXV56atp=mJsoY q,VKb(KkڵրQC W~qZw_Wx~Y1zM__<2 c1CD*LenR=;`s*JҴ \; sUH y0.L!H9w@"f=v[ho ˃dy%ق]0ֽ;hm(o QYqSuKZB8ОMJ}"ZKL^ < >24HsUzi2r6 ynth|SeIpާiгc3 Tq-#=AzM^MmpлIRr/h3Xa{@$=I" ڠ3ߘa9;pIp#S  m̩U~̋IRhhCxvG,1*T8`õ{QE; 3vB NX˞:[K:Y~q4fS#V8Dߦzha&A,zz'?jrTNaDZ*@pHhlk?-NaP25Yס|s!WbKߏI..R;rM1AЋ^_Cg' cc#ӵ*I%i! OwAµ(TWFY)6d2 /5 P#;2 YPk@>.~FqJPw{w5W:a7'ځ*ڠtvmV1r\ V:^X`ƻÊޓB9<0$;sՆ mTZs뛔<``;Pr`,' ljWQhl{&vmBw}I:4pء"BRKٲolTiPPӨ5Fm6vh煺 jÁxXpB]z-K̵є$A`d .jJq Q5;-h9* 9>̅P<6&R įFtVE0E,db)X/(q`+w &B ADH1%%ےʪƴsP٣AO0% #.Bz/6#{<24uuE6f,eGlЙ:`Ĺuy 5&#*әا}%ڈd6+al`<m,r$D5BډBf\Hivs1;Q(x_E8{pd]̽tE?)0bdk24}7]';P3A/נIx6$Vf ``"8FQ&!0$xm/p/ A>i:'4*_/!bi! SfΆ7PtKzJj#+;Di#_}QоsP񬋿"1E< GO."c{´V\ ۛ5V&Is_>C?wT]۪Zg_X"Vg` 5/9XpТ8g_hrטM6*pT`_/&iYt;_}8S4NO@g]Y|sF'7'Ü_Ο1GaB*$YiW)_l\4.6ũAk>h&þE?'Y'{ $?Ax&!, E$,lglnQR^*W>ءOם4@C\N4oaib:wA4aS:T?m奴1 'Ȯhd0QBfD*̺>67vy͢ gBr،O+~$Wy=Vz{*ӔKJZ:ۣM Gbٛ@8PjmVFjira⃹*Y|%^!#JhXȡ? Vջ[C"f,L,Rwqazy02qn{ԓa¶hQV"3l%[l blDel.vcb>@\3RrN/b[ S H'y  *o"V]g2M :sA< ȁUR\c\Zj+by]+Btk,Ŵkٱ,8p/kcꢨ}u[ͼ0¸l5:ޟR4S|TeQ-+`,&-+ O]$ZfA9-4Q=W$y7a[]'l8]G&NKڃR<}`.,{{~~ ý?~Q,x ; g@њ| I*|V jc-.v!M*#n3Mf$xlYF zX 4-uE+wJ֪b3l=d),0ޅcs2GkxC]XğjR] 4tIJ5G/IC帶Ww{c3>+ ǧ4L9 ]E(kѐ͊\~%7u:Z4Xm.{ #a|*Ǭ ۤW[Hz*#;Ij8nfMwz1 :⁋X"io"\"h8fkB =O.+Rp(r2Xm)C)947j=v6[9\!6$%Rxklj*/2πU#}{Ot0,:hjLa{Ct֑C*v+i5lۀ<9סDժu0.zDA]}% K䕥=-XG@@ QJz͏oxg-q|U]+ɏ+7֥bhpZ1p߲mFr0 п)#h=r{F.(z\*Zuw2_ߪcq028"Ge-\ hhf;?:pU"PH* } M~w@p.ݨdi~,`KiC(u熯Lit>4 )rE>*3JLu _V*WK--{vwRG{7gPVӳԡT/KGKpw:a Unzuk. >k0vFO2bmv*kFla\VD*oʤ}&$5Y |Uӕ8EqJ|%l(PԢ, 뎥*.E &SjyGj _G$ׄE -c2Q\vWm .HEuSOЏ +9G"A\`O!tϒkfd^LC kE|@xRcQW4"|t^wCz[/6uM"p!|uh֯@;" 7Ys@Hȿ>ExnnS)|Ċ/e‚ T];7yqČq%?6&6]8lPj_2ֆ.ʂ<Qc LeYq60}0ϐq3MSl 6Fl5aDK|k >vYi~{|>a hSwl]tɪE5+V"'\џA.h+UZ.Fs EE7;9z%@r'ڱ:同OwiD5'B\~&mm>%| PC)dN0{3@ˡ#JND,d@hRJ9(q"4 {wLlɪ3D.M %𛯍ߋ![ Q9^U4U,ShM=EQ),Y3A0vRmlO@7+|)l#:s\8B: oǽ%3m(>B`ml v) J+KjqLSi*N( ?R?S0 bq'hdBp%ȡM5eh[ysM-/X_+,ʓyDH4OvF}@ ~PN3FHVw 0J+UUgf |[ L#S/|d.+Fds&ĒJ cYuTtzOkU3UG ,,Y*o1K.Z2I_+հG^QoX/nXujdFqXfqV,&c^يnAEiMRM/TbVȏTg{zjkZk\eV[f{$pJ.աXڏ Xogfl~K.}Uu~Q!MxB"d'琔YAt T-kw1n҉eZ26 e4bGt澅Rtoůo$_V>QSxeu+ĮZhWI\GeGA8Yׅ2Q¼Y(W{Daej9]z dG DkG|ooۍ*DFOUJ ~G0 Rէo5 {"F_ #nSr[7'҇Rz>')Kyy|d)_Ʒq8^?3EDs=^IE۾.4wqNל[Q}}LhlA0aG`61䘆sOm"~PǦK55לT'ƗA֭E[Mj (º{K 8 P|xPWE|@O 3w"M30oM^_(׭wӮQxI7j1tVNkt87`p}'@! [{m~}W4uS GrlEZzs`E֘!ieײ.%r[/j6AUn%@} a.U+&Y3 وŞ$ou /eA/avc_SpSS<`EԘ.ݘg@DfyeT8/fs[!ߌAjSoWFSX OiQ#8G^S7I{G CJz2&9ǝgK<_)/tffzk( B3%ײk:2~ƙ]-P^D~hURӥL)0#E"q;Qed%i.J)78yb#Axa'M$ M*@ _D&l/O[A>CݘwVqq_|ͪ>`7Sׁ ]tVNJKe%1''G@}%NI{{ȴujL/-o$:k„X"I8mts<JxY_MRwԘ5kv,B3_(9 ^L"c*>]KcY٧lŊcKxI>2Q\ vȡ#bAqJZ%?dZj-M)xdBHi=KQhk"_X+](IUkC gkDQ@t™8"68rcʫfԮG1Iw͋ŸbL[x]$L k/ƁE.2: >kG>54GHU䕍6s_ܣE1;?Ug+8dяi VTkVr=>*;]ۇ (0 pA7$qz6!eAmYX}}s w;_^qP]h=ꯍm -x;>JK ﳫHDDv )*5~TFxuKqj~eRzxm04ඞb% ǢĞbK Y0'X2Φ{ jDAG-t>Oy7C0Í5a1a4l,y9kIrD~і)uA˽1 `(fmxsymx[ lmx1jxNP#ox˃4GL(OC1hC9[T;SA&1~QEb|4=-{mfãmqg!nu[8LYg'MQPm| *MPow/a|5'[9腲SugM7$oo Y}cP7vF *,J \Ȃ[P䕶xXuӞfiO^(_dZվ L#ZbC0VĆ)mRLwa0n`PZ%VPezq YB(+He &lcVܮSapvN=߿dœ/XM j/_iyjygWcp(x9Zy2|Z6_Oidcv5XG] 9r(L8g@\&&z,B&QL%65BIʒPǞgmc W}Ա蒆~T /^~,^; ۚH=g*~r?FC؞ bd``A ?Qj~;.?KÂ}h؉*pY0kyVj|ٲF7QqY薕"X%CMC&k RKoB|j ~o"H3?qbrIօ@??.ߙ8#fw&\:ݧ17d_(PIwbЁȵy{\sbР%?7V>)΋Hy]w?$JT^^5|(zA~L O#9)G(Zgr:0]ӷw{E.ymGfjL;ۨ UAſtQ~mlO+ppC$mO:acE)IEMf$,2̿ӦxI> FrCO5/7$]EwQjqhϡYp:Ux꫋𬞞Fл!O~hc[\ k"v 7D^9+HP+٧nI")z+dM J+>h28Z{KGcL- gx |lv'·nO6=& NvTOQ>a :o#`:^4E.æZ_t P~*&_R <``6NQ8}fs5p:_ (lsxi ݯgߓ[62n; VȚtĹB}?4#4q4m<>ҦIg,z*q4$1W4mxC OȡU^ע*y`ί=5&# ?% cۧBvYCY5iT2F 5 MUtlZ:r$()_|6aR4&a^,]/" ,ZZ~hGcp@W?[xjY;>_XޤZa$yhiB={1u6Bfz-g/x x\f?_b7=ŸgeJExЀ< A\a`նhaH֦fƒ)[ӤFKKto'S))O^K׏h*oN70D~T7f3.&}LM6H[ C5lw,g Q=5[Ԧx@ic5]cKfjV ro@ u7,f,[Gc`6Fo5E1hGg5Ѩfn7L=ӕɒ*=a8wkdUT^!'jx}8nEzʠAVF9`-*ay~q}P pf жOف76e%lԆrr 6~e:CKBF~8>K^)n;kgm}#|6?Fc3xc}X=!⵪r1[қ ǯ>hx-˶5xa YP Ȟ7QQr(}ٱx67|j0??7vS,m cax`x_ `FljXT @>%6Ae}CEEO+C|`W q3om:;|wW^~NLۄWb;D“"M T{J+/A'k:o}~9V3nIa!>3Z#|Z@~c7|DaF7NaDe.JAh/a+m mf(z+1?tpCif6ǮSS60d=\@0f:f'Xv56De3&kx3i$(ϓ@G h4LBMzk Ԭ0;iyR,7s'P7tV~SܝH XxzQi* W:'}23r٤a\,Eo:E'A 4+ceYA@YJ&R|OڔBʓEOW/[J_vlx]m7b:Lg-B2['dOsTɡ,l(ѷWlFcP"dF(*D:sr)(1HnAKJjʡE)(h$.RcdPe)nO5)ƒeRÃA ~lŸٱ^]`ƀugf\/W6.BLmrt)'pE Va\DvdfOpU'%*./88B] wO5}4ȲP 8~t~Ht(N('Kܾ4p%ސꫝwdJGJ6z7UBCLe#^DB} S1ɘ7m$FcJR+8FE>wlNȴl\X~H$fl5*F1 &Xm 굸qZc5Drx \s/"+B0}4Tl#rZP?c/Ρ c_kA =7ixUOWDn9ەF7T[zƩzf0lRcINE ,gMzaR jx f̓X]}E[hg5S-#& ~f B$:hQ~1Z~GN5$z6zFַK9cc . Son8^nn/ Q"awߞ KX~|:7C33\/juX.1'1k7mމL3D_U5ٺuEMuW}V6Iz8؃0<߃\+8,Zn `;!b=1' r ޽DD)w斉P ؂~'d!h cyZ' ZA>oy=߈< ~u40c}G3o|āubH~xv`H!ji199.dΧM! ?m،7h">zGLJړ/S <3*Hf^.]y*#IQ@֕8?2Eh7e+Rf5 6QkJ@_ 8ߝ89THR}P@]Љ6D/nԯ?tzDE&ny`RU&8MO\RCwٶ kr>joiҩ3eFm2=Z*y2|S|Jw\c`1ٴ#w3bb9f*кUJa@ B7\ֆpߴѣ8:,^hUvVdJCSo+P57C#.zẢpi_;?ߌ}s^ɲhjݧ"b"@6eɭj?oYxc l;(Ӟ;5 IfwSF-|Ggs@+_oT%y~tu)DKٞ`4.x$|үFՋ)nY#>&')Khǻe:4٬]etG.{-\a9 uw~h5֐ߠoT K3.7@lTTЍ5D*R]^$nk=MeV?c3.Rh C4/GTr6dYY觇_]v8 ΈʁսhQd۰JBŏ 71kNkk)nw&F1Y[YoAU}ә*'L[wxae'zE4>r/DsZ}nSt Aۍ;8F úUcss19*7+6ܗyŌSx-5LBLm'+xab`l0M8%l,VG|,O=^AI$~jӌmaiXCG_tE<ǵˡ7@ ݨ4Ol]zȀ2{] ߨY&z:z&A~\w +e~v<ȢEDi0ϟ xYT6Ů0Kbb}UoW"mC PV w80'<9~tto6in"FEe DdNTiSO%*=b?iEE0|@hĉܛ9k'W'Okx9kRA|ŵv5p(|~3`GvLGq+Df-#`ՐsD7WK@ ӱ ѩa# dN*Af(JoZ}7+ʅVy 9ϟS4ߨQ̱G% ʍA`3r0*^9q._$/3[03H_%|5Pͱ@u>d_*\}[ lMMjDS&&l 2S8K _Ώ?{ 5C (`8WISi/PEb~`.IOCvb8Ǹۍq.!r0 Ӝg j&x~LobSi7)ǿ$="[D@@_!?E`A?@!,aX̫=u5F0>[7{q؅"_(ȧKW";DSx7;E_0x"m";zF-xP,tYƣ|1^a:|X|s|+)x"t>i#Yִj9]f}vဘ"&br )bpcAJ[1DJ3 b:D̋"8r""bDLAzQ!f㍾ kŎfȁBg5Pp{#kwNݮS꤀YO=T 4` $nz{a)eKkZAA`LkcPtxAdA7<0ڔhgaJ2f@r\*VJW{"qxǢΊ~agvvz5V1J%4pxX$kO! %>7e~[jyπmN {} Zw͋5<4ǒw . 2Ŗ_($Y>ogEzV\8_U/L)ڕ 9nWKؔ`si`>| 2[ DQ rИ!>cYܢʭ l֓V2.naPtgn1c0:ewOy$b!smZP4J64fn?rzw=)4yO1r|d8/6*^D{@4`b?μQq!e9vȁCsv*Tl=az*ubTF|KgkDgݭLDOJE@KRds?/6D=}괘n:U{o'2PWUQ|v-ytbls>z$g%|~p~|[UUukM:hNĄ$6*d"BW1qAʌI,E;/q\wM6IrIHDs6 B&7yM^NU:uYvmA_ 5̻<ރy z_O;6nLIpnKC+ xo{l?2Vֳ;aS}{뙨kv\c6:T~mvM0sq1uMOn鞖ӨG94g3hpӖ7B4hy0 [/y07;)!==avJp >Ead"?*ejwWYKbub), QR`]mCd =$?NBK*{sCb 'G"Y}Tw+e'ׇxVO<$#5q9&mŁgv87`\va|'_ߢS? ݻ 4S穰ƞMjr&P-f#ؙxmv7'7{.Ps օ2 PfYX2 '2/0B$Dut&ze()0n! D%b1a\aZSk{/OWScot$+Ak?|tYaٟE'?zY[1?ʇpaQ^t߉9\S͛UJ8&$dBejQNtZ\ƃԥ-]&|]4 0fSd292BjD\NAIؒMةq{J_o+'t3ek\FGn?f@a۶S[SbۥseR.c(/u:{7?Ϡ5ŶT$a:h:,Iuؾ]"e꥝w niזHu37󈶝b/W2첵٭J:)X1z| Tpԙ)3H.47Pfcw[ {7Vb^GHe ^cc?Q5Ws?>B'']>Eq"h01 DyA؛g]?Ln@,oȽ 2ÞBYu=/E,1r.Ul>\#|'0Hd@7Q ]^ ݠlӹ,E(lN<x`P~o)AGbv< _*%i'OX5q (]"́dO=^e:8_9=Lg>* 11DSs OINxXw8D3akl-Y4;m(Z7^|HvՇNvSx,]Ls/RHsi)ɏׄΤ4ZzƊ$&L,+l8D9$)鼞E3,PRNpBAM{)[gX@f6^ԣx<ѭ]aNDќ@ `PbHB:i} ']NPQ^)vOiK- (`1Ir?L &[pSce&,MH??G Ux(44.b9L Nfm4>QKԳ; 5*ݢə|LdRƉ'bdв{NQ},>N3TUVX}r[z3+i X/[LĐS:請`cM/-HTr](dAnʼn@QT"ܻ{ʠ)0.*@Mτ]fӄܑsᲞ΅Z;PPa<wFV٥(U#>  YB <*plhE%.$BzSl/&\Sur2 h+~m%L66喌,o+Qi>Kc Y: q,KX(ŔOV΋!mk*{7'~Shg63mzPoK]tʼn :Sv;Fz kQRrCJ v5=.>̗],$Nzޏ{9[](.xi$'b@EMN"n,N`Y'Ԕr;} e0ЙvL8rvus5AQux,>cqW>(lxp_H]W΃4`#Աv1Ful{{+ v'# ŽO7l\\?~΃GBAWl92+3[CL+|+C1A7pL2@}N@^7xFݶk~"TO XS |ZPUXӪXg^T@7C>wһsW?\/fm˦i\[\}DHEqvLEQa י"Z(%LF9ub@D?VGCa gp6KYtX^ɋXR4[3a69(2 q;v9&Zo0E<մQomóݠ39_}=`W'RnN'5/F+^Ii ~dTEG"Yͫ/z X5 ٲvV۫;6c)շ.pC uv"jDngwvgp4<1mdU[ QHW,;ǤoqL &6drmQP'm˨߄uDgc54Dǚ͈˿@n\ҹ'n3;-ѪV+2nc=QѩpWW.B5ZRюEᥝs /WBw Di=A. 0649{Cr~z1 'M0]y/- #W6*ڶ<C4oqt_7wȡ6)mpJ R~9_<Yyg] SؐQ_ޣL"aa6LuFt(CHRO \p]Bj̸~Kn)ka+HM)N]j7(QEtN ଣv`qP iŦE?8Pી—Ql!c'*j 4RS*E]!23վܳknסexZ-1NalrZ-/6k}Y#@v:V|a\Gsz =EYBcRc!^{yO~ &2iTs:Ff^R 3SQ:\e;䩒F̯9s%6! ]\JlFT m~O{&,?DY\!xn )]XGsb@ItTO9u?rlK!~* ba+ i^ʂ~sPU =r2:¨2k~rK'tŨL))e;:ݞ@ KiomMvwZR >M}[w/U@tSЕLA=sP^"4z˻)kcVz" :T!W3&&:dy4Fz*)ߤ;PF>kA wܜA0g{9{KCgчNT,NvzZt6'5JoǩKp?]H3)4A҃I,4D<9y/V7Kŕ%Gw}Cr%T}843^^Ei rZg]O@n]ie04;D=EUxTU ZL~$X[鴰@u`)*T|S4ɪ##c-֞=^?YkeZ'†lܶw)A@1L5rvt%76 ]5 qZTS ppkmP'^W,`إl:ƨ!K_RIb>Ku֥ld2+ nc{ԯzUsfx,+L%_vx1xGV՗ô7_gSyK#6U?SCǕfh Ϫ1.uEI N!?6lҋ³~ǢS~ty@>>ij.?(t.Go(ɖ3^DhÝ6pv6FcLTcSn3mԙ6nl;^}x˴vN2wRprASLj 1.MMԻض24o4!gϏƎԬ\$ Fø⒴XV"l^ <x [ 1dU⤉3u2mp=P>t 055x~>1I Ka/OV}[!x9ʰ8MM]ʻY-~ZSrLvTx׹r(c3}VU8ZiA<-K@(i;%U۟x's&Rh.|]up[A& (A795#DBN̦J5LS%S:،(xb+ݩqͦtt];Vd5ÿGqϬqԗupF:)l5)؎ Y+x]ZrqDHqg I"g0/:_GATI`&\\c;;ד ]=`QJZQ Q'^:SJ9u `V ߕGK`[[w|߂w~XR;D}TK93@3zF8vW}XxE‘~KuݢTWVBl#mxՏ/HMb9 j)ZJɗ-N3Suݑ iJJhE%HK ֕o+Nc SRVKjHfg45;%%k?׮m8+i3OD'н.ھ4-3ݒ}4iVi׉ˇh_49?wH;JŒܗ A '5Q۠#;O sJ_r׆t+~^:]}Pʩ ȅhl^3e{{w=3@޸l f'ӪOq:1NG(|r~68kgTBEFȷ/b_!gI[T%v (N4cER8-lj  $ 6*LLգ^C!z@]gOtչ 3:#S8Fq^%BSW$9VmȨ'6;6{+"+!҈Jbɗp#h\(9U ٍ;CvPM/Fɯ/yT<^ΧD?v.ҭr$׎!9?ݓm3 C$?o%GiMc쐚Qi_ \J-$p &4WSu-\;ă&~ڠ WM 8zڶ F*($q2ң$`|!PE (]9hee@\Y_ˠRl(]0mw߭$]iD?"D ,fzr懨6/\!gWz|39b5ToSBi*.uֺa&4~SfcMyZ\IZ5(S.^.]*yv0M DcBm(wԅ~Lɹ՛KJWFy'Y鹠tbU?Ε4__FWf՟/ ewgLɽ褺(κQ67FqV\D` J9jM5v !Pgr[i( a WA;/GmRT0\X՛L.J4\f}HmeU,Zj1Cz#f>;.e;p&QQMwB]TRnw Yxl 19jy/ "L/94G@DHË^B6,wa-dkrC:( LQa`-WFu^;;ZgI-@\Un/[H3p0͗G3%|3B>h`#7=)"(Î7BӃ|;5O< JpL)o3m%)|@бOʹ]K@%!n.`/G;z/b7! et |1PJ}Hy-PzK{9hݳ*šsOSesǨD\4->?  YsT1M=hAW>!.S/5^?]?4{6cNY>مoK{$(ĎշDQ|yLkO`iEt۵W |eꔶgڎ]t]1L| /01JΙrex&?q+ b)6EwP o!PS:O2n|9!cqԇ_ݭf$+w+L9waaSMBeK/_V6 QͲp`S:p& ( J6~M]x}kꤜt{MU7܅0={W:8f yS轓V:5֛Lo e'JƴΏ~^@\!6ς<פjP=EYXX5.˩66aiGZQ g0% ]A&>zCiE܇Ӥ`1VQߠq@rf.[2ZjwρYS?b9lDP974YNGJʫ%üs`v*ZsksM]k !jj|z Hd4P_Fwp"DŲ{r< X|k\J 2V];Q_\*5}(Aefu.o]ޥϬrKPV%s`lpp- ,]vIfѸB)i]u@}EoTT6s)aa0'}irI_GLj4O:9UW%"h:+޸A'=zIrjXX *-J…HkV9 jֈ_翨˙يvJLa{%l:3ՇT"陏MF$IG,)Lw$k$,>Cv2gϙq )){U`uX;gPW00s%,`S괦Ma_;ΐqq$ʰa[1Ɉ:TBhI4Qo7/и$Ƣ,°b|\3ROp YQj1%-` ﱙ|\SNGlJBDc۬zll`ÀsSmTC|x!2j)tI [nCꈘ"? &Hݚľ@_ap)C/°Zm˯c'̅eahJc\Qt:p`zFH^'^kU'uߤw6t{d/KYxI}HԵ⡧ݕ&jV#i4]tSS̴1ߝ/azQ $B _vJ(7#0B1c. p; Edކi`66rʥ,"0y ')yA׈"&)i 0ض>x> Isyf>p><ЊWI8֛i$ E_IjXٮD0?.`׍GPAEɤnbvwE7 Kq9juUFpe D=f6Fw&qjꅡnTnWƨwbW}J;o]&Of`uws_h <= rmIzԛ骾|ߛ IX(H/ wu[y'{ͬr*9HE]uAu$Au81Xjڨ+n8QT/A5hA/oHI}b$fq(jH&eòaY,rX94m!YY-"](tқjo Vl\g}>XW2 ;Ӷ[[qnN PCOun,T-Ni2Mz E(Y*;}Jڳ@BUlwKyxɼW0];gȤ2e|!!Gޑ 2?vn"fY#=SijwIOw#w-D9wdh ]0G/>4&ҘˬaQ>|>je3|̊/;LkCcCeSLtnS>zp39q9~}r8Wpp M}y~N0{9\n氙Ï9O $+IJ"Ky)$Kˋ, r@ fy r_f)WJ<__ Ͱ"d$F"R>| kr욎Paf 'Z>### קlb΋0_ʆbyK 孂Bb00_ojh{lP# ƨX9W>}0p`WIzî6#F=f7ʚ66~IΌ&2LugM993fʻ_~ǝw.,)){nټ =JAj-Zd)=~ƟO,Jy,g!$7HJr2MYi.oH36(xeB)4uIAe^U gW@R*(*X-je} S(-a.Tz0˅BIJKVS0R W@`GÌP˃18:!Lw %Jϼe -E|aJK҂{i\ (y e8얅/LAUT PֹHTe@Ŗ‚2 j q^X1Kްek,by!SgAR啂O,z:ʲ JYٱܣܴkWsJ,ނB ȶSר.,5\VB ]Q^#4TSC;2)XNGhx ,% )Ҋ.mU E?z5i@ 7(ǡw$TtP ?*s]"BZ,<'OPNhUKy@B EHsC`G** :F ]S"M 'x|Jq)En X C'5xʡ%+y^ o1|o+ '`V A0uÒWQYQ,XfҦE g#F a"@|nył!_% 1gx)*}]bož.bzY5L_^3pmm- Z]faW[gU pv6YUXᒒ!]^6\7,w.~!i~_h!_Ƶ6-M_D?/렀/KQ.Ne5?n7]C#>x׮{ŗ/?ظi[[иmMwٻo-ޡG|[?gUߜj8}?t%^E w/@{Q.׸yU~YgABQEE#%;G SO~3К C#V LhzSGJq"WX9GS+ya6aZ!`|Cr WT@ӹWM/}A! IH$FC7\}uǭB!$9BCh~/ّ}@8n(Ϡ%MXT֪jST-!qȀى } 񩄴0ޫ!OyY$i$MOhbjFGekµ$ܧMkIkTIOLcÉitWc#ýqd@ KƷj0{ StGk#{E^Eؾ&Dy(+kYWx j,RG,3@߀v:^9ḅ4Z9:,Uh EFDK a $-GIDcH_mbl0x#óY[7bّD,B"pC,^$okBKG]>Pv#6׻I $? OРI4%>5F-wj(g j^k'7ֈ0ѐGa Zǿv |Wy+|vJ0%kܭE995>[#m$-CL@?EQ@GFbEkI&$%#- AiMͫ4B4b,o`=@ޒ ˦bH+g5 2|UWco&R' GqJȆ[;[;ⰺ2S^k }!{{i61B{yz\+-ohYG'n Il>![=N$jɳ]f33¸F H__VSKLCTń_#ϗ7#9 5@݁@CBYNj}$C2@s= bxemF%'W8Мz-ҍt ,]5p/k8IU܏'Gc C,IXl ?o;k%S0襄LogIh7k՘\ __Mt,1Xb$$>ƒ1xȿ7W/;=5c5Eߠ8i0 tn7iTC3 }H^VcA-5PڍՒT捏B?z̚>Fpj56D{Yi$h 4b:%b4GK /9k 1 3zMns7zlLcaRQp)S_ hXFfxދ< ߝ<|VDŽwDț&Pʍ#w dx_8 Ed}mMǷwHz1鳝c?+'+n0+&+מڧ%7.߬4q:k 41ǡq.4aZ6VC4"CJHaVf<[Up΄:΍&q[xNzG^K0L{|' rX?+sѭQ^BS =^ 1Dݢͬtzfsx|PxlȵXh +*ޛa+4<>^A!M*| X FS灒?K͎Br-K6V!E#x3>7T9 -"x%xfBvMe=ā6msB!Rt5J}#g'u( v:PwzfpK:ʋr <3G@I Fw. Y=ĘEVgyK |YxSWwn= R^jnl¹_ r(ӭR觕D@aYzʏء&Pbe Ɵ${|@Zwz j=I,wnZPPn;yhþ;J+`ݙDU"/&I**HBV3;!Ye}PeȈp/1S!0x |`igvv?BCzfdji1GRL \Wi;v|UG&O~L)<^_~]jw)0y`ۿg+V=&O0>8DTf8QD8BM<]3w ~=;=۳y=Y<[yeA,㸆e.~_';Pin<%w.: suj{1K+_̿g/4wy/\~~8ϼವڗTS7>s_vA;o7B~l?9%P-[]ÿwZbpQK]ߚg;kE_`[:[RqUJ oy?b>#yfW|nWø=N {q{ uܞ%ܞvnnﯦwpzn+}0[fWeifR7nRvU)U ܞje=-6]"Tz0Fn]:9s8C+¡Cze?㰕9{3 W!왐W k~0h:KS" & ^}R־>1aP#5o*6 pr`X_we1B/kEs{+,J~kDf|^}V<08s -:*kc _-6s( f1!W N[t lo3؇~l> e 3%\|24z ĵc `a3–߳B fND p`v\4 к0{Ccy3P`F𐀧\< B/cKP/N\c G^&d+,T+,UwZ{5V?1zX?Øa>Dh0#Zs>`8z&cÛoٷlK (Q>qCpw(KGp3 nFnFGK˿PKSVHHsetuptools/gui-arm64.exe{\ם?~23r2&)Iڴ<`.i6DͶafV]4idl0M/m7j^^ tAVcTƈ{yf0r|n9|v>s>Dž!H/bPx 渿?G;R_'ō֍{m۳&z{ns2~' +ڿ~xG85k^r o'?怼޸5OZo䵾u۰BJO[wbY(Ѧ:RDֽ.D ]uܼd_f>O_DI|ޠڴg)X.cMThq/_r7}M6~^SIxh;[6~Uu6-׫d,"0؅G%mD[E:)]_ dkt5Wn{jq$K/ș I5;N5#~z z8L!H.O>' 3`u0,ea 9y=Wk2-._\Xzk)84Wm?ǀI8Oi;Jsom6d۷ND͖/6|kQ-5q躭-;8?YGUGh?wh#F ˟z!#iZ$wsт6H|gcRpd'fOV\[|𞛂-%fU&Y5(:x}ʴNtƃ/HGABuѸ^dx͞cG^^\,J\+mLFhuCh,#5B;sU[ 6c=]_7#͞įFgc|7 $,N~ܚgYb$g֧kܙ? g6󯿌↕%+={p{p yiغONO oE>r3ő y<(ߓ$/v~w£TJ_OZ~.>{k$MoPyWzzDz''_s׀}<~gyk9'׬gU'}^G=|YY ڰ?=xw,GXnEjGH6 !"%X,Ȉ!"goZ蜡F~)a#'4b9/t5`݁k\ ڟc 5!]$j5W4Pu߀O{6i}_,YXe5Eo>mϦSߞFȠ.fł⏋{>[Cԃn6݄c2W$DYqxhߝ`Yww0O*dWsA0'VUІo~0ǷA'=]at3jqɥ;R$Zzr0;,&iӮ_\!o<GeGT67h;ãcؚƇccZ76{9>9.k\nP. A8YwTOdYQN;'#=t$'U3AyW8 5=7툇}956.xK|L1$:d?]V[VO7m_blUgxx_uWh\Hd|+68;KJskƸ@4U)~N-W?r2'Jca!}Wk<3-M99K:K{KBWb}V9W~{Zw4 2N3E Td~yxeF7L|/{ʐ=)"hD1Ž|EDž"&:e<弍'\40/EwVS_-{5_T88 3\,J6w8o|;Q>̊c8K}B?ϡdM˕Z NEG$O%/ ODgSD@Š>7;6т>e:9'@7Zmm}R:}q2Zμ?IyG XPg_:I0G-:<~őaF.E;= z=1<(4x)v %U[\㵘õ%#՗/p-ն.{έa-[ z0)bY13sjHs4 lp_ ݢg9n>g')g2nx4oI>@͑pSF?db~hr*89ͰOeN-# "0 lĵ!GF1~NA^θ+m}Ü h[J`tc~?jx@Xiw3-Ҝ;uuhl+Bk9^QG,X8nOYX2yB4# }pp\yqW?xGhI'4ckZH]Vwf4lBIst;PrPiD&lx@Ӏwb؈+y؁ "-1Jgy]6\`~0I?~h3"˝y:Eibc_6'j5w%wvjiˬdh9sϱ$2dݤ?w_V :?f?w+:Ҋ{3w c[c1vL9"\n>AwW=6nz8)v#U-" =䴧20B%ɂ,i _wN32vPR0(*uA<*t<՗KDR3<v:17J]zG/.s0=iIzY]}XSi  'cێorՕ"#zG(g-ikvko\܏DĶM_T=jQw+}5awhvFVBrqBfc^(sΣ/@n^9_!>MZpՂlĻ?/$~~Z~QG>:׭xirnbn<|x1Ue"/y-(0;IsVQf%ƲG9*/K3#g^ǰyTXi9+5~?EO.'믐YeFvǪKiMCN:SN1.b|x`_8$a~y̿Gh [sC&th9]%uUMyMݾhorF8Egڜ#Qi`]a²p%:ϵ.6õ(,k!Gv5Bl>)hM,)fc06l{ؓc0M{-s@N8sky5 +}<2Zk~N=o:f#PKzzZxЎ5 q̶W rsL&҇ 3^uש1a'XLȌL`\A\ڼ}rm^,q51ik# Jq[ 2_hɔ#Z4˺RpGSDK/}MeCsL)yП'fd#-Dh"9ybi[t($ WG@?M';@ǃzΰQzi3< u.]Hco,6#监bE 5l3mClVÿ5 )Sfi޾5t5P% t}ͿYe=D}YD~1Dzp_9C=Co. dq ptj##l6q ]hctʠ}5-DxuiOlb^~pzONDo=32O~%hq=gv:Ǟ߈o,OcItUF*Ttl/lS1!G@R7-s@KEG\gjKt}Ɵ'qNں0q2ca̦Dy;CfPY~?*bl˯Õ忀6e -VHq(Y4,eWf2_6v"xq')D?#K׽ vjdwgFqLY y 3; Z[ͬ߶ճ~ۛ!KAc.oF{Ltp4 כ!ΐcN{I1?iA kaayeRDC+ĺ ?ͰXtC*@,5@q#_u0d [3ba/nذpD]}n*-~#D1~7w\܀>eAN:]ՇEfdY^ 3MLӋ4v9r Vd( q˩q by5%M 1s U#)VaK{iˍ{Wh[{ߗ\:d"㺋[D)@DFA[4@txGEߐ;x7TD>(o?&(>lLIT%oIx?I-i/xi!DTvwhE%uqM;=SE_Tȋf"KV:1֞+yeYU o)rV"ߚ_/Te/߲#on?V21@D]qy( ڸtk\Z \tVJ JQڭUE} Bc yzS7ixߊgPLFCX~v9Z>/S#Qn>d1@[;~d{%/+"0ꇎ|a;!^vd[nǷeݚ6N[j}.MUGvzde{oۺٺ gCtPVkJ7lS%-_֝ZH[zveǴm)S҄}f-?JyqmM1Y}t~?.v 9*DCRQݗ#KEVB*//#͹Pd-;Uf$t W+'60?a&c x/x3,x3g7#t;p:q0ߎRǿjK p߆kwW  p=p}83q81n#<3Lqɲtd3r{/ojCz;2i6!7qu*Aԫ!euK''& 8rނݚn0pz>"tsml5<'@Uf=oJǟW^ anYj[C"KEO hK>U Z %"cFZjDܷ$:'{t>hLEϱ?h=]}^:/V4-so4? mL{FZ6`3ol x@TF׊p`Dtu)=(6G712ZGzdy#ݑ /Y42hs:y'?0VtҔ uy%G? ۴Jd1s[K> ?%A?n>BР DK[ʿ6k/ok8:aC|UOhУ d_F VMѤK9 9-kWx7S@e<)gom۬~-c,CrbZ#szD|r()"L~3#lS p->N\6GDi-܁eɵvp5xRDRB=]IҌ{UNѱgsS"y߉&5íTĪR+Y UZu.I-y{,[nmO3Mi^|[ۺi;,\K\(: G5:DfI%NW&1v5(Wϓz}v}GRJ}vZegVYnޟpTb-Goy۠#à۽{mg][ߵRML-7çmxvj.a{Nu~H-'e\f7>dK!syr,\{]x"*Nkh/=-plsL?/>pea]ceJKDya)&,8=6C)pdG~)x8}oďmo)GbMG`{ 2O>{ Q Ω{ZJ6vGvDuOX8JPe>-Yfa}q_R}pkaOMO;ZvTڎiߍ=wfXxaapirk]酫hVN;-ƙJM.3/pSSiq%UAǯj˪eZ:cʬګupЙY{?j et?GPf]ލ"\I+'cPE9^_5fJ׆o%](u]E{kNE3GhlM,zhW!Vjns9 G4UFЪƴ 騣uijsۺ/;7悽enhqvwoƯk(y>h+Y[93SNJz̷1ֽiE S"sj $߫*Kmd?X[C: Σ\րo^x{ m Ur(]߅r&6 QSTve%5@,뚗"룿?.!V+YّZT.E޻7Qij+ ~#4Gv}t11H쭥ZM\=uG~Vj]ii^_M^toX[%m y7߉L1Խx>S4NehX#!I"Q>>sv,mMg8K»_~1KBBR.^+ t,nwDlޭcxy-7y7]m]pzy4yT7Gpl.f^ҩS{Bhs1B 釐"̷0a2d]lHUj]Ϯ[u8Tɴna>ast_|ךx;羛hڄ~w^ [)Ac1ڼc:;x,6~3OTҞ#6ȉߞo771X"_c ػ\:ųц-~jKʵ E1ddK]W¹9ƕcy;پO2-L4{4u~5Ν"{9D}2w?mC涉։Ca4,5Us|sig>M}ob빉Ior]Օ<'I>|5"LZ=ex' 3|Bi?]ӥn۱<ʌ_NmK8beC]4-טﻮ为X]2ykv?q,{=e?Ohdn l3v;q,_T޳Ie0']Ҧ|>G94ځj!?zO;1?Zx޲~#e]t:|vZNevMFe@ۨOHkkW_*b$V\!Em>6c⥊n{}3Ec`/B@E{W(5D Pټf{ #[Z Af}}`Yé@˂hc<%cO%GOz)8Zj:zpCq~gtdH~w s`9 p.D0Cg8.gQg`jD?-w/Dw\|+y1z̸>*c%}F=8 8GTD'')mBDtuD6GwAގ4 z9{29}>)<6ޑ"=طsu&ҟm* _#h|E-WY4'@N}{K!чkivzT> }비1q 뷿oc6C[++^U\[2a|d/h܏z!=Iuw-xی|~k;X+a|Lw' |>o/%{g[v)\Kyy{p KwO2'Ct3*ZL/gJI+&nS/{~ۏ ֺZk*Qޑs!*cCY8qyl7]χ8Nv(MFT44Q9 cI1mIEsCΩ= BX{4U=6U]U!9 9~i[~[̉> =0W@G4WQ`cNҦp}!Ʊɡ*^َ8]V9ِC0y;3d<sdh{z]弎>`v_OŪmf%'IGnhܘiD؋S \߷w'm\Oa:>%.Om8z)~oRk&6L]:JYi)E^oL7\><}Wތ7kH;۳_(/%p"Y+NUIÊo vmWnVҧ{xJڲ*r?Æ▒g|5%"SwɽsDv.ctm"ھSg 1r|сgV}(himztn$-|#㼭OrWͩDd(KȎC7<'ǮkPqƖAơSFɍ"p)'o[FT=[^G:){!2f[hګ%MIv+6Bq#$+niER~ؕlQi@#h[19(ר>9unBL/co募 ߂1=9VL-Xyo_@y]^aY|NU/!n_iFL~}=]S&?:~dL4׹˼2S} yl[W^ivpn_WHeǜ^݅t9;>q8oo=5H[*}iۊ:S2F!#{\*@ =6+Jl^|5rG!:2}8?-X{l%žW2.ˮ-ɌeN:Y1 ~QHn%Sæ;r|7{9V9ʹ`QKutAr0ٌtF|:<;ǭz\XZ;ghɖZӮ$; 7sƗ&1ng|%'=n\y_6u̼1҄&7UmNNw\ }uN^7 ` is#5 c/ 褭yG{].52|˻֢m5a:~g:9XڕC")/2r ]tVd ij5,+x.;MSD,B<-ȵ4nByxކz[lx~ 0qOx#UF<צƈ@/Y,yOr- te8F'~ WUY6?#/'\VBz '/_6^02B0Ҁi&3-س!%gEB}+Y7)uVk}es%tmV'm/[ i\l\>Uwg2#-~]oT=xzb̺Ŗ ׸hzE#bӱ^aW(9ҕ5Kќx~Zym2Vlqߌ侐+ũ=x^^X]'Ղڱt،o?L]z FkdQH |prxo\öׂVsS|lrCW@.pN2Tӎve~y/h*&5ɮW'WGiyC}o]1)mҦ-~(MFs'Q$ɘ99!*~թ*S7*;W9g|5˵{樳5^sZ!˾1o0z;wrCPzwE9N.'.tXʼb]ԗ Wt](*6'?Y4_H\Ppq_jlCnBy#?v|+e_$Q_^RPn;0xzoK{\8iM ƼP`(^=|娤Ӄ.p۹NŸC0l@>jh.ex<=So1ޏK;0p1F;plpbFٔE[N85铠Q C @.0#_%\O~{ c; :M7JDFS{@+Njѧ؇n5tEQ-q\oH>)'ҿ监{PF]ɧ¬ﷀ{gmd 9ۊw6e2/-`<_]<ay=kn֥-473FSLNoyQz.6;yIB]?](F+6a6˵gvv32!K>+@>g礟m<[l,egy|73'{Xls\ڷQN/䒁r613C,F,˙2uZk&ҧ4Rn~an9mH@ozSú3e;d7k2Н}R~L5@>+ڣGD[vNĽg#4ɛ%ys!0.l"OZA&e<]'J\k~D຾8e Ϫ/z+x\ۣ&% 9Ga<3.+83OT@8 yh;f%wij}䯜L暑D?c:R4:Gdy>1hcҔqo;|RTv>[<=>}z&+<2T2{ 0kEEoJ =;} 00 ]⺍ӛAcM~vp<}1`zuFڳ!t9/M'җ# O_[$y' MsssYQHW`1C߃_#/})UgJimC{vK湳kGԹ D)!IÿR_#[.{W^[#'Vޗ+ ;6託lQ>#UKMV=Uev|ISRMZֽlQQ*Ѫ=vN+'L{˝.wƄӕyg}A*G3nXjvz'g7W<;bXz\t8]MeL[6c&;IDGqh|#-[O_YyU}0:+;)ɾp;D0caAWng|Mdj%~=UslT5%:>"E{/{4ǎo_YɨKכb@Amn)OFQ(7XkoMgszZJSH1dҧ֊^v6* cqO+E{t~ܷ &*UuD߯~Q,}+b_}l6Wa/E̎Qڋ7IҒdUiJK_uv36-~|WijVk L٩2nF~L[]95h p>Fc^R1XZ_e )apl'=mg隵xXu1և3{Zigԛڂ_U* {uwGp19肻ؔ{ey2Of651]mbk- +}fmR^p-oCXWpyk6}2SKyzDm9I~'޽9#Wڪh곤6.Rn hxhkIk*VZ4`{5J,u1BerlO5@Gl`Yr~Њ'.Gcs<ǛqdlhߺcvSAY_uY=(%~֪F$ڙ$ ѥg?6h9\0 ދFx3~D/;ҷ)>AՋ2I8ܴYY}cT=,Dzd )[,Yr]؆@C(1V-[1j\/Le;qj"Ϧ <>MjMsr 3wLTn3p [x~`<+*N~Yi)~>Oh=szgpqh;2h$\~2# wʁ;|,8aV10{v_KXE)dVN޼yNrS$C.kCHD4A9)kl}+8k~Zx َy ݐ6L}u" ۀPf|Xo0uQ#}-c,k$^7l 70ޯl.y)sy6L__g]n.w7F]}_u^ᢾ-zN ^yOG{Z))RkAC1Gj?qO_=C{mwb`muJ+i+y_lT]gЧ\Oa3y9t\־uEۘ6;(>ku5?ʟ۴_ރ_ٯc0O/ThfԺ/V~Ȳq_q>B}䭼Bla 豒YZW}!i㤍iߊ1'|6lz-րo0JTpN<(4UoT}ϸx?eKB\Z[U.Z :XI|E'w ;u1>MSxxuا5u\v[YW`}Atx3u]N~xn-C# zrID8 բ{ŸZu\v\ ufqk;fFVitkkq=o3Vlk< ںןkhެlV%ԾKPL 6 _(d%Z<+_ 3m6)y#;IWgYw5΁]"ddYί#9:ɜuj=!?|cq ROI,c/4LFV_ GwYQLs:m`6uy}[89;iߎ@nVk;N̅Cf`ݫW*y.yoDwcF*Ts8BnMi}khw;?kVE V4Mw6J.e}OF̩}Ed7̸Xm5ϟ^lǵ>GS!oo,D9uWɗ.}sB]SCFvӷ9;DiK=wMC !{OWyYTcK쓖hw\E>ϑGgyk1}f]e\wʤo1q>QR+WW>>q?PJ^*IVg߀p-BǫW??A_ U?j+Q.nHs9>|wluF>.tӜYϖ-dmIcR_9#Hl婸1qZxs Ů%e:gԷŪoo>^W+~˟OU]\R}@SޡiN6g@HNov3LN k4xFmx6]=>_# iUS˯Ϝ_ǟ_9c̯YJT)|@[xX6 2f6#.g]$<ګ9ɫ_~mIMc|ov1/ /gնiCrM_1'@%es;'ŀʦH;B\CO_1`P<Rd| hW +vk_@c~)oywo`Lkmj??Yq{XN<~F\9>ߝ~e娘ͧK4ss?'(fcf3̶R8$>*^ٔ!?7Ӡ#}RACF DGEIC } 4su7x1ڕqz~6oכ\-m-mbә-Ǡc |vՋ@dSW`yݤϒ7r8u't*=u_ʀi!صENhJgh/ a㢺=} pfP`x8(Zc( 4m8h҂oA#$'ڒmLTLhCF0&Mz+h(hp~9~|>{k}פYO1^ɕCW%qI~g$ݲSYTt]Yj6CiSf!?Jm:(g̮}x6 ,xV~\qkI؀hߛ\'Z} =| J\b[蝺#9ġyA{'|O=[T};i! ޓ=7@Pb' {~JzO}o싑iod7MB/ye'$&I :ocy֖q=u8Wx<~9#y&q{&Y|Y7x> X.1u93g p}H~1{ c~r\1~׌ t۽7{tGwB7Ii߅)}БQz9G-y^7.?/kK5D?'Mg)Lc a 1Z_(To&|@3=^1 pv\w3R8nG;:&'· ><*t*Tl'gk8ЯlcWD'>G4}]R/!ZAmXi`#]#asr #n%E? >=j\ۏkw]:S.]`ͪ縷ÂJfE>bG|$ 5dk`o+guqGt e)ue_7 }F7˒3~bS& ʧKD4%i" u3^'0Zh~{|xڡ4 Zی9nSx//hZgd3`\p?T8|Սd }e4soU-Jx}K>\`em5EO(&wS} mU;ԇt~9& ]7HO6 C| ozE{ꛩN]ֿE}A^LF_ˠr#ڹҾ`pޯ5; D.?ZrI΋zbC۷}wpE>d{dngVM9kT[Caϖ37\X#`yZ9=K繿}vۚeѹ}^2Z@Nj.SSP̅>k}@mBާjWčZ>ڗ,>ijXE&O.zg6Vt?8gB)?8 W4No\ txq))ʲr1:'սLtΛb8T0%>X'K.NXdcv2"hzLmY: ([!y3sW{XR\tTq~Ld `k KB>όG!zVt>-8>?`I|R}]YdFLD*Ih8[$9d/@䲡qsst^z>׬)N_Xts$u+ j|"r 6g+\ufzgPu[du}OIܾtMj贎I"4bE|{i P?_I:jx2ُh4+JI]$<(yMvϻZpvf Xoi6 ~GR=߆znjS[[06mmi3 nD4IIM[ ZPڣr>S>69I:߹#~9<Vi:-՜A S$8oWt^ n_g_ߜO֏}&C6އMk kkN٭4g 'Ĝ)h"3"ՉXvPK.c3^M^oH"5A5%ɍ-f`Tx!@K*D+Ƽ`ckiYaՙ,\,(J`a뭏.!^z=t)uGЙ%I伐_5 '9D@\޺ u.t3I 륀mB'T2d:]BD8*ZoP@s=kozviotJF}ߥQhp@X1,׭~ 7nT*-Y:[W`}MNFMY#{FyArdE`"^1GeJ>qW"|Hm;B{hN#wMK=IJBmI5B4RjmVjk }I5-zg!qpXquܧ>7$tFѻO wƈwOZ^v `MO0 z+S)#(4xAJ4h Po~bĚ_y_D[>g?78;xAyĝb2{W9:+'}mZK>͖zۉ0g?IA=F^ ;E7wO7hr}V{?͏kkivhWie=[pFv=S\nC$h ̳To}~[eq\rg5=y*X26rk:kj3=qה#/(x/tFos?L8<..+D<1LXÞ\'~N );foR'$&q1j'w QİBEߨB ) O'ϊ{[q SR ”>[T[~d8gq2 >`➙H>=>$7Ȭc!cy2VS}ہX bmQ0+nMvi+,'sԿs,=:oxi&Mzk׵LF6?/WG;3*ҤQq#.+_§AzXoT?>ߏ667p?v,P!>C7TNҺ8B}̢qgc3#չ#:y0UJmjWȁX~qgѦ$w!%[]ߒ*::Ȕ<7 wy3\븒n$qS'Tz@SܾߡOroPIeHr`mJ4OYꟐ&^u~Ec{,1Zhn*q𣪺ecs#M a=(р'FX'8_q56Өl#?GELܯ1a5:q߉?8.C/e{tDۧ{3ɑ$~eyFƖ#|\ "0s?s/uڞ#)shN>ۡEg3Tx݀=CHU?<_p"_ϖ]`=tKY y4ЉxWSBb]Z1p60?48~X?jx `si.5.iڍ57&ln>vl">ֈo}:. % |se}g Y@e ,# HndZMV9J#UfS#dTǑ!!$k]BPƑ1R"c x\.?@5c"lAg2!'H./$ݛxYhB1ӤI#w1Zɕzwx5Pۙ܎oCbtJt*WbVcAАHO^8/YOTzj9O@uj1$|Cc1!y,by2%gtJ&8o}9b$*n* ]QS9}K<$~'e/|$N6 W8%߉΁s'z7|C1Po lBC ?z!DŽ|Ae@K9;V޳>}뒩fK4SbmF_f#m!SkSB"#?n;E!D9F~D웮 j5MeUd/V9VubVy9ڳtc0ReUq|9Ċxǣ<;pPwwAs5[tnvwI*] <ɳJ(ϗOIU% w-n%);Fܗ&HOy4ή],Iu=2[mj-\~sBzHm8Ҡ[烳B?C{0/c9Bs ̃̓95]lӁsIr>8sD|sdGuoT. {$ᇛ|3 $i5 =o㨵iynVCm6TVOb_=ϣ [Xp_&#qVDߝ}󘞚U櫺Kލz 1ۥ`D)=~ҘՆeV$:ft4۲'弊?y|XEkqG㲌p[ws~hD{~a_()pJmNsۙ50k"{:8cVX{n]=alzxWdVnE[A|ՠT&/ X#[XYY[s﮳X-?:=[-c 2T[XJ?$zVheB2?6J-D<lj.ا _ZP U)cV|jg9/*(kC6?` Cy*~<D<_(1\?:.>' 9cnxb},gr}ϛGf ֹjt tri}q|:0Ё)–O?SE !whmϱ90m{[{f s)>]I=~YlJb gAuGљ4C-oqjW 5!=}A) jO.7@>ۆJ>>ޤ¦棤T5/~dhwf)7l[q\}䠌;OUO7x<CR&u 22&v2Ul5Yb: iŸ>iUVo{+o|q[MCց2weSA\ ,z= ;IjzNj7ޯ@;|uoK|xċq_ h:wE N_aVI꣘m?QG`Ng|ؽRy fˬѕ#OQҾHIXD|<`X87;ncT  +aѼbXܽ,ypZ `>}䗽"12ZAeS(+e5k=FyuRJwYĪqRmZGK6^d9AbRMRZ",['Q`ex2[#dשm&C잏>k:gO^.=|EҭEW[4p"iGɏwqAkbWYh>wbq+ŶDk?ΥG/ɤw2R4hεydwqǭǮAO гa]D8P{قlCy rwUjpcl$ DƱ /w}+3Ցea3bzӑpe3,ˈ&UAk бbG4j~!(pqnʧT*41ّE$;v# ֪.q'Uy$53+c3|}Q(?7ql͛?0޼\t.>N2v2C D|DgPiqGe3 ~#',cV Ƴ~B-m>kOAt.%ʁ}>+3@h^է+#>g^#6WYk=|UwrDezkWX d_Q\(wʺw>]n+xCTPJ ^ܢ`>:R#_JZ3pz;Br5D򹉞y =C*g}Wq_>S5:E9IryI ܆6f%4tGοձ"9rJp֠hXqDN&q]$t~,jqW#vg;_:Fd-s}|qr7ٿ66̪UC`³WxV?3 .s HFRɻ:uA44,/؂Q۠nmZ]xBsje y\R=лW>C:-1wGCUkϞ3*wӹF`wF`<֪O/Ǻ5 "߁wl`~ZA| i7kan5tgY4R9w#=;86G ~F/8.xOLE⺴{pN1/ʥ%!vڞ8pmm$S㡼3ڱC|0&\aM,šXp5 kbrM,kbH },t0]v :$?,Nc|pQ3HUkpYD7]'űpo\^k+2|sKc88gv'tx>*OP 8ĴKm7w  +$_}_Df K+x?cHƞQoHjj#tOg ek@:!#l͆bZmt;XG۩< rsAC4'A;S~'̷T;cΩ{ D`p~i|' ¿6jJuS)#3T66"ɻk6 ~!./2Yh,,QvM>pfw \w1# cq9.D(OWA呌Iϭbv(pL/ q!~sUX7WXs/fNQvB;= !wwUʕX;cOc+ljyXTt6ƽ^k"\mW_^j#FDz6ىNj6&΢Cưw2-xqڹM;y>G92; vj7˥f|;ǯٛCzS^%x9>I$ZhnP^P4}θ'+Sʕl$cs. 7U˩SF=?tvS+-+ [G.bGAmW~9SSBb԰ßc tP?E~HchY>c§xp'(b'b'4WXxL_W)?w )+3n[_zײœ &VW_KFV(OYa 7 S 7:[Vg]^.xEg2H=bǒ0{[:`Rq_/Oйwz'VED)LU?Vi6e#,l5\exa_ЉEs4K:aC[b,ZI}e į?%?ҭH&s2ɉ-[h&noњ&kQFrHСLҺa<{.#m?i )M^ -|;2>huҺ9~飀l? ؂QC/I{{?4NF*?MN>Gm'>y 2Ύ<[JL }%x7~FOrOl1r{톬9c_:KOKϠLJ?Co: @֗:KOxLWg۫Gk tT>t [ӏ0o-MmE Ї0)|7rGDC_*34f6#lݒ҄D(zUp`Կ{! Nr"y{ ]Z[^И 'i)ci nzM?DO:l'&s0&]Mh[+u/H^q/11ncvO?O*Lƶw]\9J¯ws" ّg_Iq^><_H~528ObY1rОEߟ+3/r{LhkOx̋ОmG~S`wuv5dHtڵ0r|:+<_pF򿑹/Uis[>={GnyŅgq~ۼsbV;!x#o&}(UrGAۛ uǵ xEIӝG}GрB^DS\gL8[Da>Ṭ¯%^9Ag1ӏS75#k4 c<'_' . ZcK 8vܩH`͝|si x;gi4[DWxVw]LYݫc܇j]uۮǎ=c"U6]|SMGRyҁC;>iwDre.1oKb3Щiǯf]İF;r D <$KOH.MŲuᾀ3i`_'btw2)#9Kgߌ1k𩅦} =MV/YJ7rs5V%$??K1%4O΂R)퇥}9 nh>~ؘXש,I<%ْe3ԩG@~o#s5X$6ZUI7P,=كLnlwPY]#a(oV^_"X7 {:MtʼaQHDYk(m)\Z5͝FI19  wyWK#dCe*x9h1.(8g֩Aoן{}TnokKqxXǤ Iv\:ѿ-gb^TRRR63XMZygZr޹A+73ʥ'Ld34GjUJ|>YC0<=9M4qZ<4a :7,޷P>(M,X|=@:,}ɘ1a_p@v ܵM= ϓw|j抣Qh~h̜~s/3 srQW,t(#yͰ1cg{Nu8bD~蠐(Wfسj4˭85}9j5A79tIkdV1|űMfVg=Ba<2>b<ʗB{KN {?~"|y)h8R|dQ3?д0Vq8֯;{esXYRZTXZf>能tP9pzsy^wM/,?pXIﻔšyMfy=`gg ~߇csB%yʴW6(w6{+&h뮒?^Df=m&&^h`ݝ$A67qףcК>Ds~ (upͰ.nh8wɎ8&RHG{kضf|}{?L,{go 7΄g{o9 N!~W<-ǽx001Lc!?8 O"O~=0Gk#Q1"ۛ|?Iug92KA"_9+huZ}AO7 6x?\@Yb {Oֻ/š-1G *s'Ɨq`FgD:=!k)oiv{.c>wM>7b _a|Tɖx*"Ghv:{2=ɰYJVX1XǏJUZ&TtZ=26&JʹKF]r l8L8UR<ǹk7x4DǤ܏*8tK>wCq;o_wɷj&WʬK6.710#Mn#?mCn 4T9'OEU-2z\ >w̴wVyc#'ήޠz|F }$wk`0}39l >/|Rs&1rA{P} ;P<{9!2!QWw#0_P 0prvih!FVrZ^1(<|j862qp7o,uB|4gvFK fM$V3UniA .oQˢH9ƅ.W#[4*13 |g4ۯw=፮/7ߚ2{lhF:m2" oyVV wZt3i\$"F>M%cycZO}LMѢb}<g}ϵT>c`sIp4o%/|^J/e/AlkgV*ʶ,+4D$U#R<Ϩ/?!VhZZ=Le f6 iKasl%? sQò񴆉@[؃#VQp=ٔiWƱh_JmR܊×F]NOs[ {5}gl[0H}İ؍Lm[Xyͭ6k8(v=NQW0U`qN[->X߬P&[Ihee >M2]Vo[ݘ*~,YZrcQw }^K<$ML Ew.ns`.Cwge^\j."w 8K't~[I_֊&B)lUm]YlJc6jae͠ڒdFJ bmaz\HmGmVjtڇ2cǪP}[6%ZfheMֆ8)ۆLՖu^7̃&jCzVKRLͧ蹷 pT}B=[:~IxGo)DgaUFD2H}ٰJe8FԃT`LYL4xcm|WB:֕B=ih"QWnhz{G+B<#6_ڣ4qjDKjDZ.,N'4:]? ydOD-\r׻tMd-H8=]gOze31oZŘ!:+WSE;>7&u]?VnJ,*_/vx%~$ZT>S/e%umT#_ ~ohC;ۑB竿E%%2]J ?  ?m:[: Vy@8,isEйv;hs, yX_yE/or^+Rw=+RWHx_BxEJuX!8G )z93%^q s+z"A]E]j)=/&h"S ýO }o's4g0O ; 9+c|.yy>OE[ҧ*LL0 5P?mm_I/#<;{6J>'Ef\\oComksl:oFJmRчz eNश]^;[(`#sp6aÓ6lN&6_T!Ɩ\)+f/ZX7P>h|JP4I2sԐTvV1st^ׯМ3b2-!cB| c:,n+iQ}:ʡqؒ$ _ Bo q&ՆXfܶ} s6׸x|wn-7@/oߥG5E/Ob;Uw':6T xnb1kcq3*{=Q&_C9Џ߾'ǂM*٦шg{ QQ9Bvj-$VErd)3ޛ vVqZ<_58)VG9a#F jN`NZPw_)|linL.gZ8zݘnS?-(bM5{ha]5nc4QrЩ[},=&)  FsnC#^(87&sa*l60ǮBw{Cp&o}nf߯>]}tq̺$~s]cL~WCZ{bp݁r"Nɏ:MOjZگk|ג1ͧ5; T&R_L} OPxy<? 8>/!һϻS*-MZYs%Pm^,}lu-Lg!_inV nBvYYzɢݷ<48Cyq߫ INϑ6 iiH~*՝E$%܁& On`O0W6%nlIe6.ZTk B~QMc?`=|V+. H;DʏASY;/ѠVf _H`kZn,j`Csi-B*"YS =lKze+LjꚂI&- .3;K)o6#0;2׺^zI'_qafNOV;EdCюr$&P7r,_,:YI[6ALǩ!!d98a1=McVikb/? Y `eH4\<ؼ?!pE^0\M 2&Mri{B6r ϧ݆7HNp ߣ2P|Vf^(.+ʬ#mA}[$AhddZ=f9YzL%A=9~o9b~6=~ɋh^﮼w)RyH帷qN_чo>||iG8Csf:x㿁GBΟџ[6@"-yG*=4 3-!<_p{#~~}XqV}}e#Ņg) qǾR9FIn}I7=]]5 ꪒ(%8- lUiN^/)e*sJ<{7q{|[l& c7Gp_\7u`o>Fwn {D䣭&T_'7}[?sDdʷ\ũ ᝶KMAvBg#BW"cXVV͚}|Evәv$^X9/b o95\Q@I(sk"sB1>.kRܾ1Q+mxLGWGP0!,gXC1`/.%sHsc7mzd'xoM{E =Fz̰4Vʃ=X+~?1eKgҞ&k:Dwzel~40Tp(DZwP/%s$g5{6S}m)jjiA#}*]ˣ$}d /i]$4xs JMSk1f}֐?ڕ4QE2DwJ#v+G[y <'dmNٮ:ƆNll|t~_K 쥯i'LlmyhI<.Z9%(&Ay +Ĵ,ǔhdn#& :&'DڃV”D?κeBnWزl:o.ed1c%A-ا~X͖}5 &kg@[&IX6jf1,23ӠL$&唕Qn1Z_j; + *T3>nL1}Y tXFcyƣ3zKmF7+;ݹwGrڲ{w>pzlʣ}=Mnj;iL}_^ƵiJn,ml&>ѵ%}nWW%eϼeD*goE iBY.׌i=]_.VY9m7Z L+k|1,>uxzq\wz7ڏ\qȌiS[w}'H cDoy|(ҷ]سjL姒?3C*1R2Rj‼[.wj(Wn9$qBJp{Q̗RIJiM6`!V&)=q)}I1J)ށgSOɊd_fz^2Mn4eoj)M:kut6ՄXƔDŘŨE[cJs4iQ35q mH2NO'Ƴ lJb A{بg3$e¬ \oeD-4g[&nwS $-=7~[)ӻs sJΡOm),+7_Ym s3GeEfw(eM^hXS[ׂDC޶VMtm9#mmCr+~8_ _s s~4؆O{Ij'~|Йx̹C* Ω̃]]hOvcI;O(h2? V!GɁ>9=?43ȤuTLr(MySXE?3x!ZMy5oDϞ\#pcqxq|"rίfB#?KpZ8ܲ(B V Hqd=jJ|3I*ʑCj( {bi:J3SYwXZg}Eֱ~Εupkʘ+&Ua6C8iyNW~ 7uE։+DwDVڣ7Ѓtztǃ=b\fK1RjПq^~qX{H_e?G?>獯{ y.a./k<}g0xM>^а7\&)סY>n;)@7̯`3̆X|c+|@P<W:۩sBH)GiBÁgkKzЎ>5]ޞ1qҔǍ $HSfY22{ʲO&{UK <]1Տ#/A殎J9\-2TzWYFgY>cep锥Z/M^vlUkW4e]e(VX,ػT Sg~{4ȞFai0ι, 5mR,VI{Eڗ:X;R޾YmLKOq<+*M򔠛YYihv(JY6@By^dV] 3?.4WȑbQ;Y"t6ﰴWtF\D&RzI>_tDHgzJcxBwd~obP#}T)O{5E&pJkvGfY>cwMr3,q=8F|o:63Nk7P lw-C"v70] H.A;,iJC t!^2dg8wgnUH~O8Y?8bQ &RWᄳNY襾>8R4i@l0F7x?|5 V<{i7(cVt۵t+3EKOֱ<ӓ-mCݤyZNL") &u˛/ʳˈP^(/&8=By(=#[4:i}"Znh&Ҧhi24x`*," E/;c&K̇TOI-1d+ioi3f':$yx,=Yh6#>DV9w;{yH?~ϷCVz͙~CR~Z8o/{|Fݺ' rh@~)ttDC䚩u]tB0wАuSalM7+7WlPs-?NznuFTv8ދ͔t;Bݿ3xN]îkWeLG!#t(q*й_G:l[ ݙttvK[Bet& 6nA42B4UL"(Vvk8Bz:)MV 6tѯ螝~Pn}߰uՈU1/:Czze+˂°]i1ٔ….)~4wK: @XAܐ5$ѝP60!HLv0H?!oM]QBÝC("YK3m 3' $޳r|ٗ2י/}׉TGЉa%|Ϥ#d`eec`F>5mww:,gg(ig&Nǂ.m-N=X4aVdFw5ܽP.mS-sa~#o;>tq\|:R9e+-e~CˣzFC]/ѺW>͢6D7/̍kA.k3 ]D]B1`؄3pUg#GvNͽ܅[^ttyx }G&̎6Sݯ>i؎׃hh/vݬnCnKW477=Hžڅ=}~>0ڹpR DA5 ^u ad4O4w= 8΄Q`kVtq{Øٍ]{󰭡Ds7 x5N\x˔*`>*Lw=ɹ]!n;4N3ۧ {w?ߋ|v8;'l{硝Wȧ3 x{ uku;<=7_']o讧ςB4T6uR7<8~8>8t rNϯ O ^Jz=^/WHcGq>Is9b!C܈XxQ&x'ϕ_$7ɸEƳd˸K?OWʸ˸`>/{"o}Ȼ#oGQƯChr rZo@&kۑwZlq{gmӴ6>W!oz,1r{!ɽȇ"o~,8ǂ)d?r=Hyȇ_0x>|i:H42 ]1,K4PòTFD |9'CV4NeMd&Qffe- V\@x\\@`2sgC@}x`r|PPKrrW.Xduڳilͥ6y=͟"wIWTɐcϿh9&av:lb3&aܹSU`~錩sFrmV !zo$S\~ǝA1 F1}e.΁#\P~ ی56 # Cx=qEL~]W});IAe3S@3M ظhaT ?Ae.+fvWPO두et:`-ME8Ø 1Hobi|y֚lw3S@5Pr F[-?;'ש1;@.}ÅKĹTKs O%E #$yA2@ H!(ӣ#P00K,݈ gFLFl@$&#!0тF,DlF4ŬpGWYmEA?3|s$[ "#?ytIoQY?g4b]b o?%g 8/o%A|,b!~#b~4>/χ4W)CV,>OQj<6` ^@:]:?6 -pP2/9/SWzFFS3's ,sk2¨)eYA$~.hr .́PQ͵e+7;O#al2٭θ9S 6rاON~v/N_mwO?~~"(BB:tTGt媮n{^}{7hqE2tXT#Gy-co7~615dNϰXdferKNWy+Xt] m]wc'L4y~3f&Ϛ=g Ryυ3=&`nl~ק}u r{"O:|F߻OFק 4 ڄ9WjGyrˍ*@ί }JE$Ƚ:|P=k7 W#oD55!}R>|_T+r ۑ}r .AD 9'P8F9ߗAE"bXZ;#ڒC< pcۑ߂<y,r7 k"":qȽ!d ȧ oD4!t>|׊|&6|^؎|>rq>T" 9Y@$rX!Cgw@nAyr%l'E(܋ zW!oDy3rVݐ={ o=+5~~{s!Zn/}_zn7p p 탼?}G>׿^xG>P^xGA>y!򑼽f oB~ rXm.oEB>y ې'#Cn@D'F>7)O|ooy{#O<[8FlF7y{#7sG<*^N@ꑇ"/y#Ñ7#@ފ3v*8> W#<5cAG~ra!/@E^<y&N"! y8A{ W!\g"OA.͂<y #/ r}s}7r}7qGG|GF<yg #܀\ G^G##oㄲ珼珼\\\0<yd G=<=̯7țx|`x|m<>qH<y4֟G#78As9r7s9r\s6qsO WbAAn{]`"u/;ixOӄr4xg,U&}mz+"߂]tR'"ϻ?a|m߁ς8I".хw]/JLX3ada,2b,'0B V/#tVDy&b>\z, ,Dž܅gb;dK0"a,#H%Иt)AN9R$^IcOk IOLDHANtUt;]\,]OO1T(\z2U,U\Jx$6$) jD9dInK;RQ_!t/'Oʹ=\x_/qy~"O~K7Qg 2/5$%(]ofD~b{NY&|z"rVThv1fLJ !%.#O9_^NR,4)?n;E?1@fA'IOA<'kyR}eYvS %Se/j.߿w1]v Ku(~Qތ#CAހ1M?@C16C1ȏ!!ퟌ|?r7=7"OQ,"M?n |]۸|؄nn Q3VNlfjr#QY/[WEy #_템Wq}?y(@ɲu"uٺ둿6"oE8vr{fm?~?B템S7p{!AN^?A~>n/q{ 큜?yjn#@r׸=$ȏ#?^>GE9_g3EQd묍(,uf_D':{;#Wey r~>E2r=בuH^?:|2O |U ['.@9=wl]Ƚ-gPr~!(_u'۷Њr~PO"Wc_9QyuH6_qEyr}+r=W#& S0C-_gC9Q}(@!} E(OGE/ۇPlEf?ˏ! QSZsG"|_ ߷k },|"><%Sr>`>"y#oFތ}7(|M/(cooqGFy$r~3F|G>&G4;!ߍy'znOD.lQ#q)( ^'?5Ţ|rfW Tt^(9G#U>*ye(܆Qsߌ希"pPZQn@9n/C]}Z(MX9<>r0g- !/F^E+{}R]|Ȉh\qtgJ/YR{pijeHƗ΋xp~.ɿ Z}<>~?[I[}TN`>l,zMdgv7C[1Iץ~Q1 =nY_r+qv?8Gb!c; *ke<5gȸUҏ%R;wۥ1xdOWY!!b k &]7p.7f> ?oϖ扌ۤcP?2 λsynP}zU*Kut>8Θ8A7[k_֡췁";-Rl(/[Jja1n.i4nu ^l+Sq;LIN)[Y ė[GN-Gl=_>k29o<[lu8ׇ$aC~a& |gx`GI@{,xnPi. -w3>˯]6,g2ͲE鏟z\;W.4zHCͤ׬:œw=4@-<]NpɮMJ˾ٿ=yMDv~{K:>!Il?tvH)U&PO{髕Jo|zdoZna?e\ٵ6 ~~W[7O0wsGTo^mrɼSlȧ]pZ׹^Х⺳Y>0δYMС?͠g̴^9}lu#oU&;?_{ǕW9Ǘ?[sw>T(YNXУg3}|v,/_aiհ굼(\>Bl}֞;v՜8=r5Z0냽OW'nx^ tǶvvDJN j+}wȶ߻ux Svxy |am=΁շԄ]Q:n;5=v |W}ԇM&)G;@e^}Iw;hZ/ۂԳJ^ndH.~vXo4QҒ 7_d~FGu ɳ<;2۵?n5-?.vV{`^ʹg<]qF[Űi'߼~p=VyٻctwMnc@._\ni UtMZG* ?v܎+;3%j9ۆӺNimݲv_snu+/Pg5ooh"~ZߺYy{o{H5M-eޓC{y{zL{6<;yI![6hQV-Ϟ><\qNY׼Ӻp?H0+x枾iN^i|?NYǶ}pLjhOtmUI,ttCNGs ǒ.K/|SuoMjC?y[lן_\yKށvﯽzڇ5N1{xȄu է?t5ѣ_,)}6ۊ,5`[1no:m$٥c;8GݯU-i<2rc`| {#w;&u]c*Y}W MtUH#_`yJse-o}?yeQ뱮zy4ɕV2~SOo=qB8݊|]ݘ]wUOe;Φ/;x}Ȟ=ި:yWw D[nI8bΓ"f~x.#r_Zz-7ӇK',GEW.]{X':]o2z# U~˷{<}kq> [X/}g1Nl>/G-mذǒw=%:G<7#nKoY>qoyF&믞߶ldn_w>g}On4v:s5U;v|컓DuoV^>l¡K8x+_ 3tW}c7S{{/F^M>:5=?|/uOc˒OHƺ>aMݏM/?;6Л?SoԳ߰n0,Q_2Cλ38'ny~H6wG]k#^)v|dŅSܮ ?3,p ?gNȟ:ai_߷ ;TYtcI6I};^n>sGq֞>G_}MI'>wl:<&vcXwS0󹃫=Ks>wIlm׳ouoaӇQwYo䰵&'NkXp#kr=q=^>U Ж&v7%<(4]֝Dz8(Q$Dy3 ג= MB;IB;[IX\e5 uL:t!T;In|cIaZP^%(I¯Y( !B"z"|(D\pE6m3j!JOy0o82F(# NMHocT"Q+⡸E<ُ*bA;EPE'{X oPջ{E}""w|@a@i(_q@qVuk}>">y"Gmh)E?>/|W"611OtK>Q:.cOSjEõ}"?){/QnjL|}gDxJL$b  " LD|ZDMԐELuj=oDG#+76f(v9-)|;wi0E6fN[WN>i^dԞ -Ybߡ=VGh h3SNԶǖYڅמ7>->DmѨI. ,ˆdjg+}w.mkԚ:~Y ֚I*Zk֎Iy#w3^}wrr;|.MKBZ~ vekS7~$ Iwo#uڳx*1ʦ3ݹhmoI{ M:M;7wfhojcr۵^ajflmO&*?U6WboIF;hxM[-Xw+Fm;əM/Pov6mVN:~НtO<2WZCX M n rO'*.Zdt'>逫%]`ŊTÕ6U(ngeAa,p9-Eb^N--= &JQCx簖&y1ϱ=.އ*h D=ɽkT<۵ڵFbT' -.6aĶ۫f-ol r:`[D >CDߠT OҊq>EKOϕC^` G쪓7[A#]ZIHߕ<]JcYMpb1@!6NMA+Be}'t!'W:Ҳ*99m7MÏ}CgغPUgș6''=|mU}OVw|1nCHiCAhW7v7ݚ d}rcMp.x nHEmW&}& qDd8-CoFP!C/o2m{}Lnٶ 2g}~_>t@v>AƷ޷qQq/Oa-&c)#$YMhh(%d1Rd }躩+NW/ 5tz}}taI]!ѷ >{X;Ab圼B;$c 3\lO= S8Hp;K_] z[(lꚜcedK*!dEu$.vx3rLY[& L39s .Gh3eEaF_WhNZfsffGz#hK86CHu8 ɴÐ֐Y.k|<7gdN|:7GXq̱-:rl}LQ2'OFWwN%x&MG[t}s1Im炈.SBo.{S6Lg~q#krvQb跹N MO7;gR@Pc}5~7O%'J{wjtA<茋. ͿfXŸ OO_9.DDDl=A?W|Ǖץr}*fmNX'녗9 c=&Irq_^~!; :°:u? b|Ī;)qJj. u/q/CJZJKZKl|=Ya9r Y|dɑ\R6<{lsϫ[Du?D h c~ywf+n74݀M{Bz@0] +{\Р&PU>@yȯ=!#H1ы!y׳ A 8OdB ᖛ$ҧ A>@x` ߰Hr# ^PQ H2 aDFn˯i}vNBMײ|MM`Eg0A~ @C"Xbhn제C-VXCG{>M#:X,1u.W -B @ڨ[&|n&fEL,!Y<S+ 4ZZ۠~!Y?oϐ9%鳴, 85M1)ܓ=zO*Nd0 麐Q(HwjqİT)sN hyv 鳾B̝͠TN S.l"-CJ#9H5+R  kH3ƚAʠv,0+K_ 1w w6Т(ȡ*(,ϊ:%j̓:n<\j"'}FG^.ZN@b=gX0v9 >3|DO#8} t ++4P7Z.=3{%}ABw` )oM5(,nf΍b~Y(V1?Uf~ XlOY@K!Uk_g3}&=slFpP0}' z)΄m$$'9BAgB e0o-Ϛ Ep~ک =P-'p7ઐ!AcC*V mQH{L#ziTEJ />產ׁ}__?U@ "Ǭ!1iJ<۩? _攠|'e꿧}=Px -4U/u k_?NC}(ļA$CNyoB?t ovnς~@ 4 )oA=lt<'6#ml4(ԿCnPxeU7B災07?c~۾1`Fl\b }@ǃ&8C !(?2B"?&d4lGaRsCajTQ@cplO10Tl8 R9h/h8 + 3`pY觀_;wڹGT_`V/x"ԵWA(lhZ 'NjhS B5}C0Rs ~pl/P*Q 5R _S@oLLSvP>  = GzhZ/>@N8#_|`SBHj;J @^t@N}}tmZHS _O wCg@} a@6fC p^>H7_ o -S0S!z#ES;8?*aX͋iA:)_@|j!uKqe Я`ޑ-3t| p4oz~лqc\`E-:\H)=AiHn OGN0QNPn@t#z~ Z~+rnNi֬n~^IA[RWR_P\⃫R_iki[))Sibtee2{SVWPT+k+#rMyL܈'\.[b0rߒd\7g4d9 ,&\ K{S8.5'#tOn$BVj|[usꇤ81_/o] :oÅXA/pEjHErgKY-<#4TqopMlZQ`foEMc~ ,Y)GKfSϿKfM04BOh5W:@7 X:L:* \}݊m@;[Ɨqj@R oy@XZ]"e6C , Hݡ`ӚCV, +l.81"4>+s 0cMiQZR`z|Yl%LQo;FSmڏ%)c\G:bݴ $k S8X<&ʂ72YJ */ijzT:x_`O?l69Yҗ[2}O \] {oT`yy!+>kHzqO8Q8"ﮡO5MOYáoP/ͣN 32wEӠCon<:f@mc :L!oA|'7p?t6e(G7!DlfjࡿԪr|7zh4+1MĆDr*9|8#h~˸h lo@j%G"RnEʣG_;Yuf{f ,n&=l6P_y&MQ$z ۮ]hYʸaG[QG=jrt4]Dv0kwV]-4U )m^r;1Z5(|J͟>r(K%|N.+Έ|j"|vPz+dkۥua[ p};=50؜J>"fm%kmxԽq yuzRCZjF6t{\tuz%(1kD%lqӏ ۪txqp[2iQ*ݶʬmմ4th6ˮZP.Y < ɟ5#qitc.59Khksq : t fy/xJzDp(8Y>3gKeʇF\x5M4(yH[0Fe_t? 3 '9?A ;hrh31`6aH)J{)LQ0 w(Q9+;\,D < a=VL/D!z_uc6<'>vL1+`&郇9ɌoNK _mX@f[XMbpi1@kr&[5pssP㱝ԺNIqTNYDS%uVȕWaDTkÈ|>ȗuB{\y!-,.*Z)9JSfQ|kh?k5tuLWub8} RZ'cyZMn*@Z Jcetb)d^r,HjxcHxKSIgKr74Y<,DӉhr+8\B (Mf7z>hO@Pf#D}B A*Pr5P:vVU<= \ Q~2$=OO[su#z.&U yGPT rl]II;xvj~dGj@Hc @N-gncRNtݑXN޻eGByWfGnHZ5T5KyZ7ƓS@W(w H%H1'4.Pz,٪TKJ "@N;:Pu]SL~LZHՂR8'к+.SJi3y<4dp׵K)ufy'bzlbR;VCa0:罪n=v.܅bfE!}҈57㸍hi~Аl, 4Iw6 L qj4ȟӸq-gNŪN%e@1@g( }LbR.me/x4  t! R3F|SW.2XUKYpc;Aw5h~'t0(Zij#~5.@!dBlR\}Z1(HbO8L[m.˿Ҥ4;Xy3AMڤȩ,Oϫ=ܭ|÷cG A!pv;Pa!DXl ڛ{T[2߰H/A>hq% ߇2; f 'UYk8qovLH`B;Ͷu > XW2V_Ya BQ"H4/x#*\^Z܉ύž_a_|NGBl64u#F.$!U@S r*n ._ѥy|)XnP5T\kwk~ 2|L'+%xgoغ/S=Q#H="Ft0'HP ]"|0X&4 82^|@j 85 9nW 4n/M@ C(jt$"`zcٳ='ef#S-t*~e 5jR]#7Piv^^cVpAES٪f짐7ؒ. z1K)oCoغg@|MPCgP7{gg+S? /q{&ĵ_|8!`rBn6fɀ-, D6A?-kӐ_ 6aA`̺n=3NރٻA= ͗QQ]4Jʁ|{GE#߆^+ FRzs<0q&[ab#. #%>Q">3ăo*:9$u7"^wmoX JyrrTryry|XH̱VXNG>ޙo,]a<wiB-\ˏb.-hZG(Is 6opQh2rbT.-5Mϖ/א O41OS"mK1A½4Nǵ\NN{k{Iۘ)[F: nfd %8E(uR*9 A b>ʔGB}`[+ZzX.j'lr8oۧaR4rnDV൵-oy@cV!3@q1F5ŚæpR(tgPqqnk@Dk$£șw=<;  YŒ;H@T((2i|4S@Snwt7xF9 ?ڸ3x95lCS&4HgflɐDcB%jd&n D+@b-&#!Žb(Xfucԇpߙb/y5ƻ=; хwxxK/dDx2֎kV4bNJEدuX"Jdntۯt}n6$)8=av쉱:ISB{=|kfiL!FC!,n:YZ>GoKP[E6~dtWҏRVkgRQj"Ky j[K\=D=A*6#p9FqKX%D&OɌ'&}[ 2r o|̒PM7ȋ_*\q?#"V ͋L4/L-KhSG%-xNN,f*BƬ!b oyPFp[.Rd,MWbFOa/nHtQ4:M̺2р؀k9P.㮶$jp56萧&hbeY5e̖.7#\XcQy 4ǿ$<_mpqi|.lR4y#RM 1C/<{Yk?cz{Ka/d_<P5j2dLأ!Tq]dHMp'CID0|i9qŇ#g5!ֽW0?Vш%h9Kjipu;)r^ZFoMiݐ=. 'NiBr馦BU+mg->qdjxvD ulȴi-!Qz9@k1B*'p|رFɭ֊~6um%On1'KuBըIUV𳶡~fرF@^a>bpi *,mbOfR)018ET%8Ya] а +Ȓ''-8 vIV qP!ܺb * »{, %P2 z qlq zwoPJF|SefL$~-6oefi|#zMcjZ~()=R%@?=f1p?|$=J߁<- *Vn7BOC4h }`lYчBp턹R$1jDI+tyvYK|4K9QԠD?ZDqȧܖ$+E\d>IwpՃ.{^7]uLwN șjt/tatUęH>-g%zlZ3m[El\q\WzXZnG)4`4bJpIt7JN6FգhsMgDTb&z7 tߓ<^c`X)#@\C$frC\˥+uV;p,,,>҇.Anipt" +j9,5+GȨa'+l)t/EUK7,fzzi,  N,;EuGm>ƀ#uD^,': ͘gSK]Oˤ<Q[yރaONN7 u qK"I6Cmh֝e'`<#( bP 7vA6]tnh'+F m8׍c%08si*r.};tqZOx?9dF:93[3h-3} mlgzfB#ik/Q!xcb.#ć.:- PL庛#1ʧ"`(ETU]xC_FGq@OI.Rx [4HutB} at+Yf1)uX<@>zYVCaۥmܝJ,>;뭦ӝJ"xT 23,+Ź2u ۀKn,%+%bGya\PMhfYtۄ;J3[.,2͕ h(47qkͥz1o>f߶x0Ma=oГf˂d{8~m~]9l*mWs#no/bUݮg|k|Y>K5sWk5YJ}`Ogz]00Qtr&NL23u77z$XXwD-<)o1G>dFB[,*Nu>1cjq' nFAAM]Q#>AW`K{&3dЃ%PɖCQQ*Z"e[vK ױpW3e=Pwqn}l7U\qB.nky 4(Ͱh-q\ݠ +<K:r8m.&*_@9!Q9ERhYb; P0X_ n)x4%ͪGBBdqT"c1| _Oy1q2AZݭѧҐj(IC#7qr^ p$}K3sb"_m9c#2Ą/tvkG8dl,yMCeCJ+*ץp+9 >YTO_9< ۼtXje YRnY]' , 9mIn^kk$LAb墄imݑihcGО8yPaG{/͸~7d 6kO%8>T=}Z\omfrII,*iE&E-(Sޅ62Uw?w <&ݩL/]xJ_m\XjyVl}pt[ɪwU Hԫ`ztVd]a0Њ#hMr]>0\+@L2 [Vg`.0ve]ǓhJwOKZv c6-X%[qWԊإUF;y韐}j;j{i={mjx&SoE~xF}_h<=/|Xte #Q-C_S*C!:*Q=T衕8k꾐4k[>8ذe-/3ctɺMcBŬ,d(D)d:Bc!ef&G[l5n=B!56?b2|2ANm= XY@)Eȋ H" 'e)V6 v"O"v"ubƧsaP,ʻ<'p؍RD a!D)50+=v _e6{#5Hڬ!Fb*Iݧ?WSwP"u:t-uR I-ހP`E%q<*uBY('$ǷJ+ZwuϬںZbK\7h:τք\1wth!bW?@}hQ24>4F!L*͵'Ee6hnE'Y8G}n4Qw[ JVbaJʑ.+?mO8Kf=8FE?<݉["f:|w(8[2dinanǐ2͇h~̻hr$jŭH2CDQg˺3W%?㩡m vgBU Bt"HT_%޼1Y9.')*$ǴaE}kp8򮴢0HAE8y}A~z&1}:RK+CkڪKC9C)( &]weGdsp,Pcꂹe\PH7qjhm p]w5ޠW\[Qt@|=|8JI 3eHf9) `yt ]nh9Kr P83#Frzk}cgF}Qo Ph~tI@E|PP9>Z/kUSl} 4v::D 8]a,b :Yl]"V52{5B$ЯqwV5Pr XyPQ;C/}Fc%0hSە8<,4t?qDbúntS3I.#>@_3Uh'xw;𑘣cH':ypWLzS Ϧ9(w3oZmnc3TuVNO}i;8?U+>}nTʬ&)_B lJͤԔN Ƴ\ǻMU-ye''OyQ~:F2&v LOqA ΂1xB6$w`N#Q*ۿaMe 3(mo9#TMdDq"v,Y 퍥+ eF{RNz骯uP_!ޕ;2fΒ7Z_#ކᥥ?N^Xd]psi(~KJpvO06Ԩ6 Zuh6F;M\ZrH+Cw*sjAv7/ ͎ tcPOdˠŬF7C# g`S2.rH?0"͂?VF ".2!ŝ6$i3vRBMRamgNyrVd щ;8މ֥N1n3kwui0]=h!ttMF!AʀI/O%.^ܷZ>ѹxvFi|NMjy*7'HXj8As[؁12C۸ڣ-뮍N%gkG=CҮFlq%2 uj[3Iq*صJ[>z&) 0yԏޒ.uNb#B"ۚ1 Ƌ[l UkE DHPܭkgr;Iܶbvb ZRNL|eWZ)|ޖ3!hFu?BAe@#:m-sAk`'Z4o9FUeqԤ=Ps?@a/BCZE>M #t_EDvϋt]IP Rz/0YqOa:@ yWmCY{}$sg*BN(–$gS„h^UAJtϐ5\)zx<1~]^Myix#L1 6PBiZA]ܧJ%"Ѐ'laqQ Rt)71PtC]f"`IPGCz 6d06t[ُ1 nuBP,LT1^_ěRV]J< 8Z1S䘖shPWh9as\}>Ǡv>(9(H%Oe׃EXA}ÊQEdrIE?;1YpsMyT'~g)D?x+vG .{&}ϗvTAA>R=B]Ji`WH%.R"()C=RR~}3Ta-PוxkdWll@%8.V~CM ,L6*6 S'in MQ/cV1 (c qY_E3w#v`^jytH-'p@ndI8}]ߴgdns mG?>.H#Oc.V]tQ2؛:C39c`&q jkG3kx-2Zuf1X-pIOb- 1ǐdY'ǚ{_פR($.wJSj"R\~5q1/^ [یΔ K>>⏐|OFJkds'?;y&KH O'Qh!}i!$L}j;_|<ϑ7ir?d9-xT݇A]$]vGGe$oVsT &ufex (Am͡B+o!jYyc̋ 4Vcb ˫blm@\2 dcHV #t z1W[`YB}@3Ԕȹ-7h?~`.IFp^; D0vA}6]}xLjj8ą3rD]EuN=xCW&Tnx7ypzt QGJW33<G+W"DxᑯLP)A?5T~gC fޞʼisOhPgGDHK"=~t㹞/c9ScH!2zhP#na۰A?ú Ny:鴾k桷3yW7+zߍqnZR3NE"/4]y'*0SH^C9~rSqGU0llbUQckd6^&u[rofi7':fPьYx4htIF=`_G[v/<7[^;zc ;m8BHj*7 ޛ ^+fhlxK 1L5:7peD?{{]t 錞J,ۡ8avj9:[QWat\Wr/Sm^n Ó ^GCWts )‹@ƿx_Nϝ~ `\ tYG2mv)] [A׍ؤ0;'uj.| ("R$ $!3V`^Ӑ J&7.e0 2R2ryу^q ߅g-%)+W ˳y{GR~Z ф<3@V:nWѤ-)Sk]LȠEALd/:w!]R=/Avd8察Dbݙ3[SBvWtl1"yHԥtrԈfs?XE}!IR ?Rx t,Um)p>4M`z: Of߬w+WFo`@1P<Ÿ tIJE/73[_`"YnkMǁ"*QwԀYDnӢ'*/BpUYeiyӕU0Q6 -L(%> sL2'9HGBK] UYkB\)|HE ]ʸc2 0^-EMf'/P–nJG'Tk,z]Fx /»JV⩌N?q ^Oxolk?W PkXL:{55и`3j4˃K0|bWA)N^ ~ 1+h|܈#@}7p~ƭ!,Qxx$ڤg"yO4uf{P-`?Z P,O9Yx20\Z_T Auv)Xh ( %=6;q P<*n)|PG/!#6ȎZrk\јk u!YZAGrOG ږR$Wy-P+EB;*h>KFxs [ۊ*n WԻjmw½o½y7@K J[F*2/"a֤W G9}#0N(oȓLP w;&LnT(U Ccؕ y٠[MIlp~uE_bYd1t1겨F"7Ύu'$c*J%2I&hN@^_sv :E74pbr,8f/|OPڭj8Dgd?(D7&g53vVΡ/q3*Әq=+z';ZxE5rRIb\lg=D6礼]o`OzUU{l'?*%G?EiM_¦~K( 7Z \IF!=_%} RcP 0;q ^b|9m.S.^Z߰(HgfF`ٔCϜ<,B97L/̼O( 1G īP!' b Ԇ$e#Pj^P%gLNd\ec 7V Y8\Zʔ_,%eq >Ik غd3 ]4gAb(](3k{)y栦36`zsf{J"G6zx.T^9Jb̃i7[-f6yÂ'РDC{a Äw@H8 r:oAKR>k2 ])/W2)l> 5G3xulzX) <Y*KG1c>bgO\z}nô> . jXܛmDBR|UB6@qA܉IPW5PWD$h%+d VQmYo'ϔ06rlಜжZqM38*pTE֠͆ V]ҴzlKha~bM`00~џcނ ^Ges(k(F]nq{]q8>?K0k.i/pE1d6A@[FړNrluf}W-:B~Aۃ bsT^¢8=+0*t?8TMnw?ř((q6zkwJK-S\@X#%ʇu7W@| M{9NώTA_؃nq"9_@R ؝#FK ڶ{H&m`9G4<WƜSrucDhL6kL_A*LИ[Y4'q$&A .^#MoŽq}NgI4f\o!ɣM,2eˢ~\t\ХDSЄdю#RJ^+HyUv1CkȘ}sK¯#eL˴݅> v&OA$gN_U7>y;C[Gؖ ]B.39^Xm|(ߺҤ0@?no@y~wՎ&vdGIGt59Rr)esuhScQH& n:A˝!x;{l-W U+TV?sw2#^>-Pǃ?s?lrR L(ﻀcG/L70mAC &Eu(;-;*d:z%ܙz Wb 4+|lt D@\Њ\;G@C3*փL i F$rAˡZұ/-.#3ݕNAzQ?{fKe~ (ͅOM.`\UWr{^55XOK;6PerbI6/BkZu$u ȿ\gQ1|\ _(&_lK6OӶn\0wO&ﺻ1gGC"Х;<߁3 OL'wSyT s0䁼j XY+f8DmG?* ,x^EBC0j9lRӼ߰СG. ?;Odyo콉pӉ^fjbo o|[{/};_ػsqG;{>}}GٻCIfQt;{W{/M%~et5{+{}W%H+{--aut{Kt{o콙%P؋ 4c,5Oi[E|gcDc1$FAA*0pTtp e8Fͧ&M_mm'i 'D`M`% ἵ>3̠Xk}upߵ?g^{-7r_#NgQ|<yD.<>#^&{ e,{>XD43T9yV>UZ&-|Qp}Jg|d'R/| %? Q96_ "|Z B芡~^<reOQ:?A2P{/Wh獀[? 5Hg!S'E dQK(sTg.54+*`\忟 b|T~J ԥ_z+r>gjgB" D|$gUďF@yBj\޾ & _r{^F?>ߑ_/ԄƁ' h)pU!"9'ȸYШ,2nZh;A&$ɹq922{cwL?꬗5"gur+K Ht <`' #A:1B}*?hӫَebu2,}՜j}&MG7˝)WT.(F=ֶPgҮv*GĨFrwa8UL K.ե!rgLr?ƥ/.%s6ɝr4 \İYy@=< {'Zi+6ppp;Np^ps+a^0^Jv]( xqbLk/w"޸n><ږ:!j¾bxZ:R_o\}}R F(<hKUL=S@פ/kM3W_AL ~1wŃH}5َ <EVl|M$u$Fn8ZpUW\e`6 G&UXyolE2Ѫ%w7Ӧ ,JНkF A{jfCϽ@M}Fh" (JYৈ)66Hr(Qxf cp)'EȵJXS|84z٢[\]s[ttNAxd9ëj8Φy+!Nnꠄ0;s~5 U)xwƌ(/)/"7 =C6Hw=LEwKeY*}%d}h0Qc\+=Q)FK2TA,D>3АƯoxƀ- CMYf6biMk\xM!ԉ"$ &{)}]*BZ_"3樥h \%Rf[O `vD)z5.Mpn)z6jݳ7߻E–+n,{Pg?-]..jq|_OWqAjo= .=X}*Wҵ^n^␒O++Snjr7f %Ox|s8*{E 2\(7udMB;?[e΃0XkZƒ88Nre_fr'ߠ <͎n炝']4OCICxrvX1myfׅĆ[NPg osr;xjW%:[찪J8 jm.xR2P=ۘ0) ПUt oDx ہ@& 4΅nNf^^t"+[†W}z~e/mӔ_kP=} Ð&rB5iOP ƋXWx_yǯ>3$2'yG <x+_n:_md?+ͱ,mdżp@u;pO w˹nC.OKI YB1.#PqУ,#ιi2 x $BQHe='pO8 c Cc7, %F p\6c;$LH 44d'UqkE@CB丂wrՠ{фh5~kęNJb 3X 9@u,Ltp뜉X}~y.``޲BFpGTC$ÃMlxWv!Z8Nu0g0j 芠qĝth7Sxo,55n+9.Jxg'}ag;}y|OEIOU*n.\r|?`PsPҶB9b;q6v"ɜJJ;%NmrpNPʁ~v;Ei%Ba5ȴf u?wq!ݔwuU8EƍWBocx~wpHI|bNSmW:.0c'CSȁ Xp+GԮ0\ȽJA+2hMMvZ7pQi$ hhb4E?Z5H ܶM6/h-Q]W:kqɏ:D*ub z$ We '7\vXSJ)ͪ0޳.<&0P,:lR*)]W( k=&1lt"\`2\<2^ o:luU՚d MB:ȞH'5vRqQ(Ngs2܅f9L"LhdIl]QOή3)s;b0qh^x$xvl5 PˤL[e[|eVEq6~kJd' Yt5V&k|9._,;/&  QxUݴzÈ t%C6'nkhm,`=PF0P=|EݬE ,iC<#aY) XtߪH4FVWY+5[!`*CQpԶr79%z2,HE* F7>A3ǢAM 4-ş!w/Im.Ďo}LBQv#wgϸ2;-v\_ .29=9.S% ̤Rlo f^N,}<}ƟF< =b%"Ky((bjro좈BA|:re; ڟy,ㄷf:9Y#R&b r3x^} ҍfa޾zvjP9DӀvhҲ*NOѝAUB>>Sqº]NTsK]߰$$;[JYHsYsN*1'Ւ$jOYdJҟ0^4(1C{](K_7Ѕ8xBPM:JV\iMig}{/OU S67j l:mhai ^K>H0lŻ1n`E{x%z.b:(٬B= tY7FNrT(J;s]s(aʏ WЧ+ gyB:6Psf! 4ߪ3ӟsXT4|kfMv{33:r &{2zJ|PF'X#nRa˧s\0W~ Tߊ[0yE)M%rܠ?}D|% @5H( 55ObZ85QvҦS3k犭C4o"TnoESVnWufY{ *2؆ Јy;2bkFOj U 4a&='& J9jH֜jʗQVy;eJ߼q0u#YѓLZ6B<꽐-*!Rx׏+҇My[?W**=  r t"މ2${oX:GQD%[x4nG5mƖ7Vp•bѤߩXt$~.6&Ssk60,.#8GG9 Fm$("nZP%| Ev@K8BBlad 9nr[H󛋮!uYDNLtD 52ZR~SGp&Ng}SMU쓎!GM#0q.M칏L0gߥ,zˮ#"ډK5W$sN噂VTB⛢0ACiwO4ͣS0NSCap=Y,lazFͷaif!oMzڎ9ϔ`緐SMWnTwж *c 3lYXހ cl}jڻDB4T=U ܳO:{*l6ew[%"Lbg *B|^ 7k iW7`66ٛVS},}nHTaRƑJbm>,2Bj؂^ tkp}iaTsJҚz&6ф=gIq=8M]Kf WI\O8!EIb} pFQ(LG9FL~! +[0 FfI%!W'Bnж%pojD,PVN'ILw]xC6,#}5\T ?oRs<5g0Cf `iG`1c\BwF([yju({=U}Mm=[ƆϵY[wQ/*Wt*8/"Tl"jI"egёq/ZusKhdTu-m(Ȏ  ^YC~7!짼I?ζ2zދ`Of/Fio9dђlwt,> ?RV +~yJ?" o=Clt'iOﲯɯKS.pa +cfWnZt755Kw{kwl629WgL-O 'n05 &d6X1F^K?P7sE*:&mHۿ>86O5/,<+\` F *ﻍ" _ARZ6sALZb5#Nm7)8[87Û雒!vt 7/ů]㜌a'(`1jTz?+hje 8 j MM5⃛l| 68{45c/i4'Hcĝ +Cls<5?VV˹]IG 97kU[2\ּvkR4&T:Y$=v?4r1"LC~??J;|S{>T-Efey3'}DIA'yuiJDRiw@zEo|eǶ0ȏ Hp'*QuLbTC@jUЮl[ZU\TLt C+Ÿ"i T6>biZ)pVg*$Io,1W81nCOU&.I-0 ?H9.OTlp0ĻTӅg}ÚZ8 t% +/x}?;O8X2wcV6:Nu'OvhKOxnBfp&2p6;J<{zMvZ;N'@W~EQs3y;\,l!H@jrR_s*%d _K6/s'8En> &j .-o"ii7ʡjPrߴAE:E۬,pdwfn;mbK[gY'<E9QN(QzF2  BPBOHLz9=C6G TDd%@sGsA FB0gIRVLt6o- v0{o%D.EVP!|)tvyr˕%<ބ2'2Q C&ORhB-BSt}EdH6s·&hm* Br(ͦBc"n"luX sqK6]7z@+/{HvXmgk7%G%< zc^V >(":gmwVB5sY@ ԌjS2pU^V8`Q NyN7=0>"QG޽,Xf,K " t8`MNY*d' }'ɊbDV鎗\KgkmVjީI3U!yÚv>HLGIXtEwFՍt|V8&%w#8,mG s!m.ԣvg9^@5ۘP>,%U}l.˂p4$nTVUX1*^&NEمsΰ |30.Q1w,nxdRVe3¹ 'H9^fݩ&7|r ^m+|z*Ȫb,sji}}^Y2Su!hf7d'iJ+wk<^whufe!- Y'v8'coYn9L)=C~E(l+ՐB%O|&>u"QI!6ZWPWn(X98Ѿrףnd)>0~`^i>2>YC \%=F\ϒ%5Nuxy߮AѹόZ2vRQ-g#mkpv`Y8 SEpad7!ܱ&pMٿ*%aCq(?&Halu#5iv=QNIp-5hwf`s< QL}I gZ)}9*K?)d~;fO*_Mu 1HB&Grɫ㗫j*1 fhiD՞YН"ucRA֞ U뽂Ė"˵v5Eyg.<o(~S]whTBA!FPH#(n$7a(}]r2p쐅nBUUrSq7+fW _Yo[}5=-8  0(y xu&} O&`:@  `-IN|0 `J;C^p07HX`P (8>( c Kp#|d`30ˁ^cqX:L꬛X]^YUW`/+ѕB٭V?&+וa><?K)z̛²RȱV:N)'! !teR<{Q9;|F(nD)a*<3V303R#Ϸ(劋#cjE0,*Fc0fYg^b6@%u35k07O1FG읒DʑʠհțF36b 'MMyjԴ̸虷Ϻ#λbgϙ{w\|~^1$ON1.H[x}Lӗf,^o+VZƲ6/Zȶ~{mظi?Ru5bˊJYc_2wA"o50njqEjE7fY99,ڹRĪevÄA.[$#+pW&e)iscbg&,EyLBWbai8,0$ d⢵v}l[ͳBVKv)kcI oUpevZJt|I yc 3bK ]4y2.r¢ Zx.ӕBV4VQi[d).zd 7(Y!n-u8?t YD-)`뭐;Vns)Y0h)rθ#~+#mJ UZڹ<*H`JqRD M>2n]ܒg%R`uJ;o2l! ]Vgu-0+%N VK9}:n,*oͿN9o(x'ID7{W}4dbg|`|}] Ey~q6n*F q][kB>.R| kav ‘Tȡ"0;BTÝ+*7Z~O?dke%Rbcܸ!Z8X˗|O0C 鍎`1* X]Vert=IBYf1`}^gZ Wlc鏠\)iJhFKIp*å𬔞{vóJz~;w={~9xQY XkjjQ [XoaQ6nX UMPîKJz Q'?7Mg7}Z=d7 ? ?솫,;F;P>20:;kIӇwȣ=O<~3y^|{_ͫ}wط7[p=vğN:}潳Ö>>ϟ|z/x:םv+~}3DC3<7.!:D%$o?>lc2ݑfBKM d"<1qfm=/n 33[U s/WLhetE'a~uh{-1_|0H0[H"򴬐WH~RORIŴc< 0K6be3XBfվd x3x@"K\+'~fØ G:MILfqi]R-"8Aр Zi2Z Z ~K/\߽I֒l$+U,-+cx@xˀ 01̳O\;.J{Nr" Gaj`x_ L?<׃{Nz10s c>0O _hDÐtxL5 nJ20EIOxFw?_|?2(3K^^:t{Xsg 3yf^?(5mY=h:=NJn ܟ?vos}W>/!˹=tzYyW37[ku򏝭,-Z֚Lw̒Y{q֌&c"˽'lKZf(*]Wl+$LLhLVae2M j*犭EŖ+1n|-ʳgX tY-W; 8;eFhҪo'8S1mrYI $\TT Y$9'q?q',5Xʼ M ѻ˼x5)ۡiBsqS[2'ːVXrYf.vݗ2F![`0iVK99`#@c%ČUf(_=yvk  @x30mRa±eM dYɘ rY<|NSg߉K"կՅ@L mM-_Tfɗa4 8{7HRi~FyQ)dXq`3S d_,"E6S.ʷ&ZLc<3ke];/~_ XYto@"7vBxAmö^V^/_=q2X%߲"*8'IR8t#P̯K;Vy1z~%}>irC?QK'X(eR uh iv`E?yү6K8cIbe3}Y Mb2D-vY>u Y{T$1.6. RRd034K t;$PZV$]{}N2q^RaxwM 8v?=8E5TH.uODQ@4b!(Oa* #EW#嫕F$OHI{n,3$7[?G*XǍLĶ]5XpRS w(G_J%NJJ!-mmsO?Tޟv >tCos!P( t\z57o")uHݪgp n|k7n0~k{n< ϭ:{jJx:fǶ:ٖOZ0̝[i=d)j1>}1WB_20IT)עõW0f? .*p#𥁬ůE-] .4Q 3N!pVw)N? . Ml~iuY.qDˆJzC?s?4K;k3~ҘDZZ@Ŭ.,)4 72D.AOxox@ɩϛXejPKS~(setuptools/installer.pyW]o6} Ƀ6ۺY@%" I%߹$%Qv{$4U9\rN`Zq ޾a6q$`bD d'9 ŃhF NcNI4(QGwVon |_LW6#gBreOQ^yi!T""`Fy,ѯ\4 mhMFwK;jDݬ,6QWO|gI7c-T`[TSK瑹nZ͆G<.R3R18uXlNPKS2S,setuptools/launch.pyURn `Gr-k$SUD`:_8 3;9⯚F ArQiR΀D ́ 0{JU;*)H8xOw3FfƢF \z֎fWC/q859-!ZEqYYK;7RKa.WPKSE4asetuptools/monkey.pyXmo6_($/4ɺˇ"K d݊aZm.S%q {y܋zpp0Q=ߒj-QKR c{+)g 1M%fkIb)$+t٥MmՖ}[Y-j*b6|FսAI㕝`pwʌR&%zzk] N $4k՟s(dz[y?+Tˤ!/ ]qU^I3?ytk3ܐJ2nbdnޗ3Q{CV}[zsZkyE yRVY_pBlziE'gf"0ᤅJrI]𝝐(8!9- 9DX岀jxk9ԥҒ9Y[ۙ󣣕~QV9;%L •KHހO9 > ^a1')Y$f]@dAߺu.,o2H8Y:j -k+ W-s¥O7) "ےYԌ9IdpԿbECD`꫱ n5ռ+"5X5%iO!Q7Y PR۞BR5VAi)ڴG;0yDl%4O6Oga|1l>Q1+0{0i͠H %% [> /5-lZl&l@P 1lyfmfY48ҼTM"'B]W~{[SBgGP. g9BwTb|m ɢ_5O˱A3Ro;DǓ vCU0qh$U9>*=~ŸO O ͓glzLO9B 9ˠ+Vm=ɰv{{}w9\ջ]ݾɃhIE fn|AÀ[v_/aGߊ)٣tk Kwe(ܫx:e3tb5 I0 LJ?kT$ȿIwJ(q8TA< 594Fݯ(6`˝ b#,!8kk 1k5,RYA$>p3i0G⍧AaIp` 5o^>D$ְʭ]0*xJqY}.SLäFpȦk֒A -, Fɍv΢Um'6:qD" +U6+/n6JK-xN I͆i'w^=><ވgrFM jaoE|^|h|X%B"N/ۧM:!8|Ixɍ2jiɯCg'7)^SxϘXE*^2=[9)Ϝ.J^k=Dl 4LX aP&-`bBtD"4wz)Ӭ19zhtS`OzBT>*]H1iyC37uw7_JbOiq)RbfD/u[L&9lO70=zY[ GnoQsIo*Hj.WkLIy:R 륄PSy|E<؝Jlc}8Z>>o]UzSve"3EK'grM=l>Nci❍o-d5w[:IUS@>}>jZ['E˖E4I8Md{Q g^oьY.Nc:V~lyq~Xo$'{B_x\g^蝷슦7{]/ 뛿 v`ᶇr\1^f,If|g9l΋|9bWO&cT5ey gYJ]Fpu_0F3VnM$6knEsYoMdA,Y0,Y(z0eD1I6'upm&'qnY4O0˿9H^`_YLeͲif `*@B]s~~yw_/Ӿw}LbfrzzZ8{~M!޿Odj!95my4K 9@ }/7 0d^ Y(3g z]qs42yG>Njz< >c뀾.nݳ"gSv3fsӈښ)p8ƫ0٬-vJF??sVZ@(-/Oeƈ2EWpHjeD߶{oThgYG0[G 4G2\E<]8i3bSRsK0z-r0 h9LAemSPΒ0Wg L8N |kj4 .Zx8 a}Ta25X`wSwujG^D-Opg NA+$?Z>,Ǩ`Fe*-Yz-1"4h&xni'i0,8\of\KtYAszɄ ElS-^!Dͣ9(s4F֍E`\ϷU EJ|@RlOGIKBMom 8L/2k* HH 4(&6ec>Me@ZI2n.<6v`ɉ3 @_3b2հHEm,E{Q 1[4{hsDc:u.),TqUsKOLq^KSB /$CkxAMbB+ ( xMO{6'S>b)օkmǺI:e3U*vW&e">@/^@m2گIz"fzt|C^db3n GcthƷ:i~1j%N,lmn3K>!ޗ8Yh(&@ܡ"fy͢0%)ywl^@ˍ1gٰ7<4<F~]dHvz?)o-Woqa`>CK;师%ӣ9+y4\2R1;@_Հ8O0s/s#$̗F+dH2UQԿ>Ǐ ;ؐ{8蝞to{;VmT%#빹he%Ku+vx.Yo@Dی>I R(/į4E6sL +s1fcOBհo/sѭjP@&PS1)I<8 AЂ좰ט\(I>J GZR"o_̒kQTr=+cyfpZS۫"7`Gw]/vS[_b: g#-]tDcyf{6Z~_1C2m{e;4&}r[)_ӧ3+[4 ft1 CSoME,{ `B\h1)rҾ2[Hk4$ OVo Q(Mƕ"(.ai1:p%^e P'uhG("e/= `=[_i*i:A-:8>-udK:1{On<84JxjE fDJ 2?+Rq@ uE)*=gpx3|]-D'm<.5Ro(T@rI}5OMx,}%>V)9Tx036Y#0g0%[_1PCF,9< !p#Y"eIOtng=sVa(T߄qmO o^﯃R$՜k@$B_soY6v#`b `wXuq9K[1rX/3P=ti4Ƹ4MvFB[pP_ $nЦvDzШn@u=o6{$ @\Lb-$:u[PE'{lZ*T!@C2n dF#KM9N#߉1琥M0DCӽ]\Rf0pXs]w497ȃ<ե؁XljX!_C~ ]O,v[1P>q8M'yJJSâlby >ʆvboj>Tl5WUT }HNo[ϒK5ͧ-BmfRL,iVLhgT[Es}V*ʥä#nx;5þ3Wdӿ?,6tLkf4ڗZ!.y  jhu83-$3a S\ث(φ֔52yw @N8,F8CDF*x 3Qՠpmlc@-<ɓxY\#:ŮoOly dF" 1:SֹY8;9Xi-gɧ3Lᙫ 9{5(#Ц=gYaDܗ&;ϴY5&aPu !` DNry1M{w.l<)`Uea$>{ט`\D:R-HóDb iR(pKN>$  Pʄ|KSZLBp6U0?R[Dԡ;Kf\3] DzDYkmfVC069maus*Q61F$.MْߟGu*P 566ؿisʙIԫ48{Hn{ǔF*&j 0Q!+a)Ch=yvkb*2s4\ʀ!*|r8xC-W"ȏ5t1WRr%keg`*,xË`W |ѭ庠gYS~~I~섅C|U{G!^=n90y|ݺ!ŇrDQQ}3 :7 Vs4M5QcR\eF./E#y1b bW +؍}! _fTDIBmC _3KEand xMEI+( 2› n$@#uLө˛tBsNmURd氀u"թ89xCR_D[ȳ6 W]Kjș69(߯O|+VV& gR>piI@qRqj?D]|z_UK3-4f$j]1]tG:n^cc]t7ooYIJL_(-/oDoZ8Eae۱R XW܀]oY| 70cEyȏ!c 7Y 79T6jX36[Xg,s>db]MȼA0,y-7[]if\(uK;Gv5Ro{ս~`7հ? r hܻZqd;17q,T|Fic1' 7Ȱ֯fo3R)6g&2c0ߪf5g,@T kFڏV&C1λ u!uu*uGBP*yPiuE[i*).[jP# a;rJ\ c]l9|`:ofU#zH3EHuLx1Yck ?k,D@(.Ô p(S규77F6{σQn.N;5LZ/31M 1]}an|Ӏc&ߘ.iބ2== T`!',.إ9=F+3E.n&v.HfcfXw)E% UTYlW9:WKj5A+،w(W4qcRQxWtNw$Y^`tT./[GЭ(yag+|]J fNQA)9a d_24 9VΘ"CQu'^hLL>9JwS<)}>;~,ACgL[mjQC%ʛ6vɐvw2\Aµd -hYY߹f۫LFW]ubVjJTg :ɶf$f*a^2_]m8O* :aUهWfe=<~U7s)኷y~}wzPkW"aեUn.ܧaP\1ƺb}=FWq\}$u~4GAŕ~#"՗u0]?(XB Θ(qaJ)ܧl"#MҧR,)uOMi6U&;LWm  KȪ=@E<,a<_;5'dK'l Qɘ;J}K/߱x1b3Mmyȯ1~ K2 3WlhB+ԣ؄1.Į%(_Ob6NRfZG k!W{ظ䛓Q9 RYXf=ðaycow'sFS5ظͼ6;,SNY0Y7R&"gW"~7jV|rD+qWjPvXsvp(oۻҬ#4.3x# I*TWRAkd[4ʽ( ۉ|O&/70QAn ǽLU3f=ov+\`:J)d-`I-wwkQH *oYB &S;CvݏAh>$ {f2)Y:KkХѲSjУ j1IC,FgeB &Ze_J zcݿFɮ\כa:=I%_ $YoX@,uQZn뵈Qt[O$aI OQK@fBZKyC1=|1OvGHp#8@=Ne8`tA@N/r+-l`N NC@/T[Qx"F7OK $11&#XU3ezK4ehUFtnqb9ݵ)f[ap?- EI3d[$7d} YT9bD@֙=κͿW̩fH5ZMr$BYhX;}1X|/"6FNȂour .UI>Þ@wТOt w+ʐ=F zhu7b_GM ! /Fo '#M|N ,IJ}{ : qRZQdFk_|fHA9:@0)q u˝hp7S7#K 5e@`-ͲeZ̯ͫWC6Ɋ{Wxi"-H/GDש#t$Pt>HȣB ^t횫^OND%PS⿧8[}"kmQJ]U ] 4iZF' &eri g}ft~ R]-eZeLzlw=}vήݼ6W2{ U)ڣB q^&0tl/^2].W* UiqLX-MjgdH]  YIsP Z! v5NUvWk6[.JBS,5 xqfuG+ڀei\N`*$I5E= O_ PQQ0_@mV^ 2b #欃a-Di}/̤4R'E!B?PKSAr-setuptools/package_index.py}kwFw u=l';v[N|&5D4I@@ɴ۷9)^]] 7_iY^ie:AV]Efy9 {rUmljnXyU]k6" ZQUUhi]iU*Qk0U2-rQu#$ԧ[-~YRuUj >ujD^1|u9ԢT.^ߞ<ǫMxn<˛/LU9 ~ɛGeU/"(&] ~x*r s&M:2] J Cj2 `ԳO{Zq7Qy8&gQ;O3ErӅjii+orP~?zM2YVhFR]ek=8 !ʽ=7O` |L H|>NGOF+}?${޷oNwYb;N_Q}[^>wӲ4@ tcG!|yx>z_oQB 7ЀơPNb,2reρa0t4;o0<RÛ&ok?q ,٧oq(Z^Md1/>ї iVEFddNi&kF/L|1Bb̪z{b޼'DEӆa^jhG38y7yؓ0k\ᩃOML~ ^oEUXd|Zm&U`o ih-" t ZO%~ û ]5@^Ϊxh1|Jeb&emv$Qwz/п. ;P3a*VmcZm maHFtvqgj44h;@i3 jwAp' 3Og#\J9K^oxnj#˪C@WU@Z~#@Eu-jX21?"Ɖ`"F>c0(:oQ L볣nC5Dxtxy*Q {B^kQF xzj8=8ۅwt}S~uqisS9nGWFIn>H C\I{i[. QfE\F'>0@tdyDIcVDI OGgo-Ì")E%pᩲ! ~^ȌAt=v9}Xø(\vA:dm:&%?sQd(c mſnv̱ 0|H5P(2%y/kPSa8RƷ)H3@B;*jQMƁmbTfP6^-j 0T2*: ;(bζLȚh S-?) RT $S?9Zb>GȖdg)~vW],1pw62& ]G|]vD)qj0 Q4>ۅ ]vDÔ%!,ɛ Z h"j&g;rXu @l>fR7ͬ͋rZ :꼅B $&Q[p/84vSAM UV#=̻ J7(kpK9ag O+]Y}Wom\EMl;Md/--qx3Odhv{sj{v{Jq;%QZe+2TȄ v Fm^  U$q$CU(a?S1o`]ULGkb7O%CR=CoD)AZ`  r,"_Y\| e+YMEuMϝV!r|~+5S‚補KPf ?bN0,uu)C7e~cg5>#H l]^83*x'Yyqpoΐ'e$J \?m:G _cM[T\hD-U(!/0C8Xxͮ(im!vz{iUzKQ EfSnL m+*Yҩ :R3dIϕ'ȢF3@^ZTC94CM>Cde7spH4{7`?`j㎑[ 3|- PΖ@C(y !uCsxdCt"$Bn`d%b©wO2ǷTrF2(<'-~kY?9 ã_8V้i::s 'DYB"4It]7Oq:-cèTDH0*UfVaLV v=pm$- mĸYz7pՏZ<l%`&d%μq[#nF>Qw-Y6[ q%_|xpf$T;"`Er:5u rl¼9\ Rd -8[o6g yy ]5*Oz~0AquQ5m3»c>Oź !`ͤi1UaBњtV 8=FvտZa˃Њ$a)2l3Am{;a:NJįALH₊y ZahH ޢGfLm0{ m#kN !<6$Nx^Y{K~OOEPryUEqGt4VCI2`:eLB|̑_zDˆQj8jqbn. nA"楇3꺓^32b͉\eXHp ˅^p4ԣoK /7.=XoA˙T&.hNQ;4{6u6o{lAB3&v|kbDz ۠D+-tڮ1|]T!N]:Amn'),1.Uk)}1N!N@Ų}Q2l;G KTD, trgw)g fhA<Y5,n)L턦E}0`pz y9tFf%0-ӓiQIXSD֔ ۝L$s2WHflYրmԳ+-ʳ+ £1k$3Z92ǦV(N1Kժe~pɨCWZMFfPa N΁u!JS/ ħ'bQ"xlN~#C "򘎆 !I=KG+\:*zP.YڦE ݎed Z4zs(qMq&Iq.ó;ZNjOި3[hѠ`%!G/6)6GŲ'{M󢉓HaĴhn[{|h2O0atx(BEn#nh_R.j:jI!:+k$`5;Di)hO ١8FNhW$V9BrC=MgB;r8=PI=<4z8PW%$eQd_uJB"d))"%,Oѿ* IK: 7XE-Qnu3w3GFoN% mZDvۊ$4<|ɧ69BW{w/^ҩFo . XfQV N_.2;l6deBy LH/>%.*&(hKTZ<2fpxX0x5N, J OŧH#ghBÎPXllYcŔt þL(:UT2R%kRَؽ&(?tvnlw0!7R4ߨ<5TZу:l,FQ MT6C7%B^V<yN1i}9pOEK67^v%<5{`N%;N-*qE-;ƭ6 u&bg]7&֓./4Xf}37 Kܳ;rJ2Ð Rlzr9"$  wm$*uaI) BW+~L6| R؝Ry Rhav) (dN.!ܿe*u% nT5dunoEYe'HWja ~:PP'NaoBgr[]-Y a|gd(赟-X\hZ(}s_.W6q]j(BI>F#:96ΞEN@L.?G:_Rd9X&u_c2DQ!p?摣]6$b2j!&I$_DUmJ,"L<:ee*/n)c`7Jɶ"eã=KȧC58Č88.[[ U>ŶJ408ct.D  f؃d9:7B!n7 4ϭ#x] Y`T#B444T#"bWHJWW)GnTeg 9r,}~N8:hLe'L$̈́c%Ze]5^O49Esg(n+LF+| U&rQVY=\@2ٺv&tê yrdF^qjfĆ&I$tV2yQml!1^ǹ)'(ShYȸ. % ȥN*u39X?|NV]gC/C*,5ִzy ^7^ @҈ʐ 6pHia$yz}8D▪{4UF=H7WOFNt碜^g3v$KE; P.O0i v}6U΢J0q-,rpJl;M%[R{_e$O /K/LKQ&եjKmn+_[7l]2~fRCw]#AKFcG ΃Yj6Q~8!b(NN)&^) K4,;DӪ%Gn2HKnQ3 Vj8<^*pYmї9#VqB9tSA7s+'4Jje?:q97Dj  2֍5eL,??|VQW:5ksv[blihbd~ǙW (Z7 ɱ70+(h`ȕ?%?N7PNKKeOyaIM_ds ١I A^R);O ?p&^(:?a4T3O_kDS쏇ޖhdZi 49R7.C'1DEx?5)?Al*G >'eͣ&;N/:֐; ?vP6޷[T);7DleBl/c/OI'p}rh]k$v"$3QMU}i^R%K%JZ$u-Rb0շ-оFI7Dހ-6-T x˶3[el~Oޝ<2Z8l;xb*"EKyeX(O;&VY -OޟҕKM̂PIn 2y('mlK JCn<6 _yle#kT7r0f\BV IVa#LQU`cf06??M]ޑ5LLTe2rN%G~)+V5u'sD:{$NsduwuUD0aN@iCoO@%[ʐ8֯I1e/;\MfI-&v& ,f~Q/N^[@+;YKmBGLV\Kƞ/\up/}|"PvpW,TME>Sh1oc0.=kuޭ:,Dgfᮈ,ԩd6f@0`/\SKil͵0|^{YvBlFOu\U' ;],+yM]akhzqzL0hH;Υtq~]vߪ;&޽*{{;./*e[)^XCIn`3QSmˆ|Eh{qCicZKH'{<txL_<_?ٽ}Q^I& OIJ\/vz}f(uJ$8qas,Uk^Ҟv,h$6+ߠ#$ S{$Od1tLDq.tYk&u[{k)!{W{J kJ}աV3ZX+Z2:u`PfOdl&{>|D984t~jg;ŇTb%2 >[4% תk4^@&TsVȀ{w/5>wEޏ6Gw2}ԕ{(Kpkn)U7ݹXJɰG`r/fBw U JݠA YUV0Lp1i]o k@Scm.= E V|2zU[=}R Ѫfk'kpPpK:$e;7w"=):f@/V,GSNޤk64NP4AovRqiK)`bDz'"c}1.px<¿v5-.ݳ"sAgŋV9'k}{YФ>AU]`m4u){lb%t#U ']v9ΐVO.$4.u7zS>xv9-]f^a2wn] fO;~kc -i㩦lAobZK~`;3 Nj%ᥲKCŌ-T*oU?+j,dQ f`CfH04y:vOUJ/sS/e#q"Ҹmj%b> d!\54rZHd7ķmM70U3*E"x|髷T\\o^ld}֑S3|OGAYesrGy1O[gNc抺Al$sa|*y'(K~e5^oAoiՙ : mM'MG.;ʱ$ć ><o.|t,wЫR@ǐӝDku1߷un_{ꮪeǽUn4GތG3ar0!ۍaIB6'\ɢt1m5#B9j U3CG.C JSPohVVk9pWH.\#^ˣkJ9XŃ 9Ǘluʽmx0}3_lEa. Fp^}_#WF;8=&}/kgn#iVDiN>D/$8n5_N,|݈C:p2@*#>S.M1WOqn'~xGnљ&Lx]]{'XS  9Sg@JGtV~WyO$ž^ NiTcyْ܁<s@׎;oxT;oh"ɺ#fEPs݂%AOV>~.lcݧؒ_T2ΨU?{hTNSN#'\ άs|=C$أO0N[#}}"|9$$"p!c`Ƭ}݆3-k͎WxoP !&(@Iڤ}rĀ2M/25c$"KSyh֋W>;ɓ/0tQYfPKSVDsetuptools/py34compat.pyeM ! 9E(tE=8c:J޾U) -x?ǜD _^egw"IF;Rഎ@vmɴm"CUתt{v7 ikBr?;vmiPKSQ짟 8setuptools/sandbox.py۶wLrh銢C+$-@岬-gղ/)Ka3p~P"5lYfk+vͺ(]7BKh [U+>e#Mm{ yclJm*; 5[zB][*RR13a=7Xn'j-TY#ISv]]Z.[u(My,jDQWv\v2k`Śߐ%-/Ւua|>7 ;QL,$7~T^o_@R,Aoyв\,Y*3~a#w !/YDG8~qň' `ߏE$WVH{ryhJ$7JciHIUjɰ#s:5x[h=~4h>.fq(\و<#狺ڊ#mLK^H|%$8p u>*&[kUùi3V?!sc2;iN'NmhRZa0;X ٿCAJ{[W$7 >$v2}R1a! Phe#$s+Y: Mi%L{D_~T踲wG(W{l 8[XT i;Y1Nh#=GϘW؉WT|J&JI5E-Hv A>` A P >Ry(HaBiOG74JI,zrހɁ.( mZcEY"ze[eoITq4B4k *dJkO 8Pf9+o-D Tix0%_H#I&IjM~R k4JubOC4zʞhĐ?s`G {ϑHk<y@̎7xZ\׸McI11+mc˗&n*&Pqƥ6ф\K^)Aճ!T=pĬI ko]a]٬ 9?sV7G1(ץC`vMTŞw^c*L*-mc)yn 7,M1;TvQ RFK"7B۷n5pZHL ,T:Hdobjap}Q!JHk]wsT/R bYS4C9cN\Frs^y_1JuV6.~8' /‰g1'kr{hF nV~[Opt9٩ /ar k|QbLj2zHј|sm_z7ϟ]\?BN"ðLS*-J7:`5JF t5A$R=19xڔmQ5?A%|E`qE=y~ne+k\8wܔEGId_/?I`%*b9PW:I=)ʞ]pӹsnqxY } <8ݻZCNV7E%zS,mH"'mU|-$&"4Ю<4e@WΡL# H%؊Ca1Aq!uN\{ha2,#UbڧPrCjz}&p8m' |u媣"Y\SGiaL:]/2`aS }a} "t0rR6~gbH+yiP=9e" f_6sNOU|ʵ\R)z/’X8 +Ա8.q^*(Mwc_}c7\\Q _B1 ڣ,+81T ;@]_;պζw Ao̎6_eB||POI8u*n#A+9޶R&_= i3z֦` 5"kne~ n,UXz>JoĎޚh`=F=pQYPbN=r:M1g!z b6P)|uX֡|5w2E1otA#ds(pĺ*\~#8r=D/6xxH@\N|ղł RV<_P-YǀbZ|]2oBcyj)-%6esˢ:2k=B9RxO3iaS R-a@+(@Et| NNL?-S܌94$s֚O-?cycrq ,!@*ޜ`$`M9(Ⱥ RHAY".u8RD!!\c<Ō|;eL6G_`_M _YPwmFK {$PPi!'tVIP5),r$/&ݞK= _(l jv! 60p掟7R!ۓFA_3LG G6JPĞZl!D#IL\cS5\7 RPo5m]db 8ЪsW,z`#,(mMghQ.UWYzzZ%f,tJQaP;{M#H<S5#(#m|CfDl܊$Ɔ s&,48JZht蹻 GIjid@ 붱1٬nq(}-a1m3+'z%N/<*Fj˸?^(*@#źA/>C4\U,q!ݫG@K~coM}ݴ;sexӋt`<6ĩ/d|#5]>ċdt'h4=--5]*gz2xqB|95?/MZSk)% SS6XΜ\+q7&H[彼)'JFƸ7#q& Yߙ;FW &cًo{)^#뜝»7r^b8rrK)zn.M욁@( ݿ$نcyb8H8]oeEВ'KqxM[~dhc@ L; /Z&{w}w?Q)DQz~}󓿿k5υ|sŠvnl#y;_eBOCI-SZ Ks-2z_ثٻ+xgkz)~^x/ssCûY{)oz2t(1n#%EGG=\A[ߜvEƾCg]#2O=O}"wM}" I k>XwiUޕBxaX\ru|^-K:q_cHrr؁5W_򈗿[m GĢu]Cy1/zj+zQKsE10 1@Ai)au) _^"#anP#'<\lYSb6i.ՂCGQLjGgB.>2Sめ_X. a3{P_8!rB_a.$[0UzdYJnpJ7nIznjˢ#G$զGS%ˎ6 @AU{$\Qm(Z g(BjԅX -3"&Jο^ܲ2-4b  mc*udy.DL@r,3Y@ց"GqS/.pϚU]m2YFBΫrV5gLk(dO ֌JeҥĄ֢vQmv-Zg3 bJͮRTԂˊFTpnQ@*b;Y?c v%)NUMˍa 9鬄~!APd(Kk`'qPc[pT5`="o@ځwlj뺐&x,p y/$TOyScWkhec+T}@J7 2Uo D  %ئ; N662^0:0 1&RMa1fY P`ϳBIpX z#Q'AgckrɢSP/2}ȣך2n0`ayP?E2[HVn\[CI[%N9X.jy!ngvfCT EJexÿAyn%o@8 DuMw8\"<>duXZKr#d/IdcNFg8 ¹]N E_V-cx ZYZ?U[L6]u-0zz{pq;'3Sӛ zIت;.˗06|RLpj@ ZTA}UՎRH(V'/\uuL߱:8nj)fչ3Cj @E1PbRk|>{^K2½/[ S#h{ w,@`rS Jw)~׈I\tiapŏ '<~7GCXaaMCbL?`yR_dw5{XW`yM4!3GSB\X/LNҞ*/`:IGϣ_ \݅" ;Ӷz)^9m{x`ǺQkz{͑pf=c/yfu81^cbF1*K{uRn8Tc1Mn'7ۻ0·CbֿR2vOrا +,'v mtQkNJ4|hyԃȮpySraeC"jŽBc QO.#iY \a@RV&J&'J{UˣPBN%mBiቜ7Wz9NǴSu;1O }CqP yy 7Re0{߬hXS{z6\,fNgco^/Ï{FaN~w6jÄJ>X16VJ*f?PKSݳB!setuptools/_distutils/__init__.pyUQN0OahP `B(r+S_SLw{]UUiLE^{`G0|,H<=abLʵLR`VxA4VlH0Y(nYv,B\jW*N)m=I5ng> ,VJ$z/laŒVHvCDÑPoEㅶS0]\QW7}mDϼC֤lL ﭰȧxŞG! ʰdp8rQY}/p@ߋ+QPKS)hb2RQ&setuptools/_distutils/_msvccompiler.py]P?:fiXgk*Em"/+/OcK dm93eRU=8b͌7O?>|oƎxQ Z0YeJ=CR^7#J^e>#jB^/㤄S &AB+kujWfիOaZs&dl JXo9[YIYΧ?.D.Di܇h2FJBZaf; exLO~F a/) fkqy$x ͢ z"ORcG1N /;J$qİL ayEh݈ώ+ 7@1KYEIҤu QGi!\I%%:JG )汯)qsZ2|0sV2\,^1CO7e4w! a)oxG?Z*ʻNkyy8ׄ9[B %apGTN5גdTXZD7ͷ w(/+mZ2 P:uTO Ycܳfv~߁`'*g³|g0L싲1K/4JuWgae[VD`x'IBpb z9F+&;U 9:xy|r|G8}b<1~y8ECq9Ԅa!] %k2ЗSMo%_IL(w`n=þ|er}Ɩۚ rߘek sjuƬ%w-{z9eB?[: }IE if tXqģ1X#^A+aM&aYQF{źE&Alitf¯J. GF`QEqİq.˄F4) 툵TF+O) ڀ U]@za-%j2M,}Bq~볃wL-+e FΝD华^3ujV dmd;@WpCJyD0H0v<nvBue\|厥@xv ^H@)8@2~zx mV3̳NzgA0a( eVI7̋ ײvpbE RP @02-FZ,!޽EJ\8''Y15gߝ%"/}>~:8h#Hb{Ս}4\qFsl Q*yzͷ1kt0".%N%ú,*HG栔Ȱ^GcRr$幭6EUǧ$娠XbPo#`([.VWae̅ #,q,t@9נɈ @Pt٬.yXG%`AI, i+d Й`b pub!Rؖ! )ߍZ@}4}b2q 6,eTH z XrM2d3 c64`~՜>+u؈AV!2.o,:Kv(Neĉ`M4dw,Y+׏kT<|ӽ>7QQzZSrba4;T2 (y6z>RCX4w$>q)i7IFD]Q=aq`ȨcvT}"(@:{Pd`$<81 #xgxv 4fChƫѭo Kp)L@$T7R2w2p"cQTmZ(a*xKsۨpn`1uUU#@@C[>Nh%F J \jl郙i;ƽ.%`+2`U6o}t_=gCɄɏq;'c"5F k\*k7 0ڞu;L1LMD;| ;fhvۥfw 6:XQ T ݌A[t576NR}R%8ΐ@65;d?{A$7`륧m-'dZIf-WŖ4Beqauʃ~)] @*!{2J*zW;zNXTB(ހf'KU0h6d;㾋SW*ᔣ30>E߄t kwHgdϳ<9+}|BGo>Lѽ3TU|`XAH9ЄiFH2Frt"W!r^!C9ý!]3˃7'SYj/zhb6ΧG雿M/ X4|!JL)zoV 6B>;IA8:]e~f; t-dγ=MmB,S774:cW>MvJ=z%Kj_'Y{N/oW[ EunVNjv\ !{)}Y H ؤEf[i޵g_%t<@F2N7,ͳ}C%ì~:~& 0|%1,B<% cC <uV^UF 5x >qM]l9˵á 2@:cYMBKm 9,K!iQ=SY !9Ea(q2s,+n>sW@Q7taE_::~fxY8Y:ژM[Uy}+g7] (02%|.rWBNQ}&"м0Six?.-fz*z!5.0'/3<@țzb_d1 `W?,A}Vf5|GmϝZh}KXHZf8R̰˞ +-9aW"^!3'ma᳃P )ST/(~Iv~+P4n0V@f-7Tc-$Y pNKR pzfIo fIle`RFgރiz<OG(P~rv"OR8L&b# [@o3Jj瘴\ Iπ}jg!jֿW?$[ЏVVS."R< Dp(|n;E\\j8rߌP,pXRu]w 9eЏUvƼ>` F%L]^ Ӆ:; '5d$XmJnE1cflY "`t7Rz×:=RVbsm JUw䙥дҎEAX w'?Ju0Ȝ.#n h:*Qa$ 00 DulX¡\vG hq*5h˿r_ܝ S(QϮԦ+VmQ70=sxw+fƱm<WQA#BVomR U l| T΅vBLAuBL0J`z $Z:JxDA]h)`.!@w#}Xz7>OA2Y e ƀ HM ]P^ a3WTEq8BL$Bq;5 :ՋneGj>^jጇAyvg`rU{8oX0lY#XMJsT S;~vrn:@P{qIy;]_Y}1{Z!F6`KpbaqEnmHPSJT:ބ.'{[(BPAR0 $xWcZ ^B7/}{>f/LR__R_Wa.Zyƭ!]bbk){ӶU=HĒ> !ͫ ®oW`Ee ^U #UVg"spAMzf!û]&\"x ul=u$/E>ޝ^|8uvon2JQM; :"8Bq&HhQ k[%R<n gg$Y]?d,tDq*_!q[qҥVA /8ď)~LhEȭۍ/LpYL xS/(uCCB%4 kq^/_P37)zXI}2}?vm~OKL#"=FUr`ԭ1pHvq7kKAG;P 2 1'=:5.SlWĀOfCܚ\m`ҴZshfmay]MGhC=)`RF?PKS5R |!%setuptools/_distutils/archive_util.pyY[~ׯ0H&4:o6.zq Aȑ.Er6=ߙ;)jmA9sns (E?e%Ҭ_bĶCeS m:wDӻFmxZ' "M?ςyZLrj.fAnN-8H|G[m2K#"ayshD,3H6Vtu7xd9ּ[DY|vMCQQn%ŋ'W; >t ѳ go9',`9 ۜsp)cb|l rSoj}%OH5+Ӟ3ƫ>Θ7 fiD.KGS8KgD$2 VNmOBwe,3^-n7О-y Z9$؋*Y)89.T4)dmɹ/Gެ`SL96h2Kf3$ dgR!v992 3Um5"_*t䣊]dԿT[iFX.ЊT-2:Ֆ u"$-m-)f\ٜ(cJ@;CELB@L<$  I+H|uKm{иd~AGԹ46-GS9)it1ϫ! =͊"r dzdR_<,hG^!GG2_үg޲*˰0EDEPEu'*hѕH@2v @ 9S<0?ߑ:e~$5xDzy8V_~ q? ? 6segL鄅_ȽO7U5\I7SbMv^y==W^3AJʮ\1h! M1a6*<{y*`j%/kC0@9pۀcxHd.Qej채LGKiz@);kSLRcY?HVh*QJD*"tNy>SR ֳ {*, Y<]SqUyMzw4)9jZ藺m;1OǏ7R9ҡ{8E?r`2;{1Aa?Vy 8N;EΩ( qԕӭOpVfXaXt/=4TSu?C\'EVQAJ1RȀ ;-kP}te\ TgZH?; c:qُ7!?~9`9WPQ?eerIsLBɈ#;B࿚(,KTtVp?x, j1n-[;g-y/VLuz-Mų#{D6؜9W Y I>/Sz|^)~;b_~~~?^}j´{>^n"W;^%j)*N&]bRszsH4 + ''iå&=tJ*4MUkSSӑ"ҿChUMwg D2PMy0pokFG%Ǝ>3hntljKdEIy^ˣrJء7ez&Z2Wt7Z^ &^2]jHy9<{@u|4}J* yiA#+aKV}j\2uYC|҆C>txRhow(&9AMzR"4 /U[ _ 匔o{B:O3]GRӑQ4H:1Tf4m<^WM]_/e9v5 y>27"C<ʏʣ;9Mf0?k\VͰCɽ1@4seD׳mv/łB2Q1\ٴ;^Qn'_COz?*w)$ިݕvKM'ԉHj9|Pnec9IhW"kD tiV.36+^ $F}BdYd,eN\fKPKSF9.:%setuptools/_distutils/bcppcompiler.py]6}E }"(4-z6A" Ah]ITIiE5ĖÙ|svXB]+JM˪%Wdf;ʬ.^LTM+ 5[96UY޲eV*ثOj}X,...!͑9Ck-m2 oTb'd{|U`niQWK#kM)n?JU,EV5GVJyY)n9bR<,co޾Gs"MA$ZV\֜ʂiѲBjp 2 ɮ%2 he hXA{~j /Z&AJVl8MT$O|{FĽ7boH[GΎixdεNeC"p_-OqZfY sJ#a߽zQ-Q +rsp,Y;&[Xz|0 Q2Lj(HcKF%G[9 ؎V$۪T\Q 棶k>_RJy@}IYHSJҵ٦:^Fl)u9 6( 7ZT,h7u ڷxޙ:2 Z-C,*yEeY- xpTO(jv%$Z#-lgxi?Nzu(6cqA@*Wtaܒ9h^hG7UL_Q?8x-] @sh"uVq448_љEp 'idU@!Hn®IdSRlxb! DQsV_?':rG`'`BE,ּo/Ͻ,1U]=a9H9m8Yb)0&h#X0![s Wg";jWp`< k9}V  &ϿzG-B0hvzYFu3Z׳/迿sk֦tCb(eөQ[}cX{k+W-#&XD : £vi`4f޽ҿ \Im:/k3h#* &S;lI^of$:\0[eӉ $ kR'Ťgt>eس4\ 5]g "fqʣ_-$^O9o:^j?|-T8&8;^MF$4 5,A7-'?R=E x܎^*?&^CCΰf 4R;/Gp <^(Ҟ2-!>H`RL#(A"}+ђ#<)3";5:`W\GSjg J[ ԃw褈$ѮO啐*ևi$`c I)0sa/5dPe׋Hb @ rˑNEL+Nev5yBR}w.^aF`UivQb1rj>l.D%è-aS'^KULP:f~m /=DEP "0gTYcYrWB;^ܔS} 9v9&L9T#YUBFș>mvT_,][ͱ^.BW$53W!<@Q(2PnAnO헙ˏwPdEh@3RH<ک8 ܭxGͩ']jKY.B ljK.yꄭ9I\y{@u@T<}c7j#y=SC U30lrbh@}=VoNOD`h\p3D g@̉88-d*C!7wBvv!Pj,gNrUmOJ96| 0z8>JN7= Lr:[«iWpZN!9,,>k\M-4'Bactztj8'7&r\& 9aNZcBY*^RtrނGH\O%9l\Qkt|/=DxCLwۭ*3Xػ#OL7\6^4A?$y(Q[g2Elq#}ZCQcTaJJ6AN䈲|q)i &ge/K&ו/+rޣԧ\^of4 ;"-NPH(Mop/#f_ͦ$՝C97bj 3~Ja>J0ʳ@gqF]*l} huP/fӌuDʩC`reN3Q HPT9.>xhܰ,,ԓ9݂D'I20٨NӼDӞx0we9ʰnK*H6Q؜ֿ6>&n}(aU0c|M$M0ח2Q3ۄxM*"SŤMutD$4 L A.dmVg_vuudNj `%}yƀ(|J,'-{0ߤHeB\ۋRB9m +x# 眓w^fwfruο΂=|%:/FG깋A71c7@/w35/OQr7AD74`ϸrWMY}> KGgJ*l9@)h9QF (O> ^`:ǪftЛɢyȃK1[D0_A %3Qh$33\>,sZ)4>QP>Ҍ*<;u+PKS4L1"setuptools/_distutils/ccompiler.py}sDZ+6P@!Ulvt-WdB-v]dw! kfzv$8rJ,L&EE7]YeSYYw˗<$[u}}:UuIIaemuouu'A*:6OC7O @fIm.ï]vWoa5_mm,aˢlÆ2UmLܴ~7lu7)h}?m[53ƶۏ˳~i_ 7jA X;,-˪kKfk[oK)7ƀ?t`e`7e]$Y.x-dg5&uHjYUzسo7;-eU&xke]j~Se}ߖ+ -p5n:؁ѦFj_6mi6F: 6s=C/Z=#Ȳ,;DoTbۃHpYUt쀨FlJL{3h`#Bn1lP(odj';3ŝdP@u_ ?7Ќ*_ s.{m Ïn`=[ *$Xs7 +WQs+'+;!S+pS筁E9MJ`̇0M b0 P98jPSDY{H)V jiiR`1 ȌhqҰK.9@V5ݮȡ]xNw!GrK?#-ԛ..*>r)fXa `EQwK;IbP[[L~[/b9jUAzѴ7َX-^x.-=qqh4]]~TQcΔ5 3L 8nշB iA&aZFAmYXÂ`;nfF}:OJ`uLf+^;2mJyNK\5K% d`eW >]aBZ[5/+`o %%kdЧ;c g\av-2#+։‰3U&MʊAݿmZ}2CBvas~ԟȔY73⭖=}dJc2+(H`uTaH8YY<f1[h} m!v2@(n5##{rv0Pw[`'n8CHebj!Xc2 '<2c90x)f\&=Du<7L?\ҁUeth04[,ܗ.7]f^CtA8BV5!tS%(K0vQkKְO'MFL&|POuIRRgwۙDFP.`B4JDbe'eQ&Yp. vp8anJ~"Jٙ謱 {2㠄;Ƈf4q. :Jg/>ʑ;.F匙bvH;Ё%Z,W~f3vt)eLp#՛aUFV5w5gb3BCU^YݣρV ؁`5vEo fLV%гPrHP\pVY~`L7T i_(=xEF-~hlB>Lq,wY8Ha>06eqb5 z<]["m "hͦuޓ[jٛ;1%EcNh=!ScmOʇA+r!xwR4eͮ @&帋h@U3ǘ>rA8[>@ *XtAA "On :|c+`Y*N[":$l?mV¾3t1]-~"BImu䳨#ϒ%D\f)/^*K4g#/)};G0R=ps6Ug V,6f =Y0>nتm2}ruE"k} `Žӫ٠$hQk!1ìO@ B'_oh u~ 8 yA-SIe<_xMR>1N} z.8u$zMV8> f:!=pзóժ3΀$o8_%0(:&+px槇n0QRQJi܁4exOB DO`(*6Ȋbv֒)ې , t)nFc U Zq"tXXhQL{%G(U;xC9p~2|}, ,Ig(i pcs`5#Aq$48#oO|bkLܧ&t{\#FZvRlGȘMi)`3skH>E=v6s7C!HGv f#*ƭV.4Ugr54t"8~ilݜmV ʼn0ć9'Na(bI'="⒏fQS6pP1 ̓#5L?eD#mdCm3䠫IhqSԖ!h)$I%,1~QHK!=i ǭ'F1E[0z~'8StCaW.8 !Q/vX1脎vEq¦;t9V텖3V2$h1IA8G'2Ri̚z׼!:8hީ{m48sj۶!HJb>J J0r|O& :ټg-ckiV[@ꑩ"%SHBZ*͑&F:i95>b'շK˂C#Bň@F'YUfIrC9vlm I>ؓ֨+qgYDq[ lǢVZ: E^*<Ȫ<IoYeDA,)ih07"A M}Ø '%ߧZװ%yDȟ.gtfv^N[SB.- w6FUd.]&nn3bBcXLdv+YP )4 iYpv4IuL}fJZbvF3d+茠,Y(&f>tG)kOnfc#g8ݏFI'a&ۃ5;@1KU0[ہ(dc Y΋1%TntQxƸb~EMZՂ-rc~/%)H%Օna.߽AmVoL=9b@gկJM/ZB)pvrZArsn;n.~ ݳG\QS]7%UmAqޔRi(ڨ΋B K{?tҸfemm Ӵ$].juP\ e6S=1DF lt^c"n`t1pl,4? ˜¡[S}{`Aߥ2lԛ3:C( h; pzum\PJDa&ܵeiHY3]_`jT#ׅ؜;R'p\4Qe(`g|\űK { h:tj{pK,*pg]7Ln |#Vp``}̐( =^.N `F (@Yt"CYX]K'{XɱWWh$ *d3L^kFCNlvX2n_C "EaFǠRSdo$ݘsS~d0? eH$d"TGa #*:2(aӲ(],I K8M[nJer'ߠNDT3oNuYv{V9^et(6$墏t;ELuMu"4mXu[>cjJUUc6" K?Ŵ])E&ci]Gp6$QB}=+0ѫr7ʱZ\dh])eٳݔB@]t{ ^.j$7:s*|P h cr$o]p:d.v\аZkKƮ[0cegSr)EHd(,^ - ₰]9xt훪)L|IqctZKo SDu02P#ZvǍQs~6eOܪ =|Z=h{~7{=djcE# ZM0`xjʤ7`kGejцjƁ> e+L/6 %ǰ`dKx'^HKNqL<Gbъ{qHj5,-U7RO=}a}a~[ZO5v6gI!S2~_vcn*+^z.֝@k NoݣZOUoj$kTx3MgU&tͷיfĊEf]oo7W'Gd>|:ʭ*(GYГ-?yM7Y.+?YZY2Aq6cE;js~+CvN6/!}Koؠ4w*u&?mSo Ӹ {<ʛ:y^g yO[L %L0S$]ԑ\3l<$U]"ڴ \/M/ ^?! `+c>nD7Cv"ɝZ<b"r^`¤@sOl{Y7OϨgxC O7`z0KF}?OHI/~#Eb"n5\"NWV<`fׄ)TPAMJYUk_dUg0UkUĝMj1Y/uj/፽ZRG{û1oyNIϠbsP0{F0ZM |N3:{%aqKfuG%# WqUiP]s r8LH :q}\yq񖌝:W^ehwwX**Ď'dcS\Ϝb[H?jzr~=d e v#g1P; iR$>Kk/Ww3 *սHH}E _N.Gha9*,=7*[!Y8飏ֻdnf3s|Vu#Ϻ@G'.-?άe˫Яj:IլRr%,ֶٖaz<W'qe` <÷98|]hg7K3ŽB')֗oaM'x͎dum_~ E蒠GcG\OL92VkSTcLI N\ݑӵߐ"KeN!piu !#+ЃB)YgUYЖxk|<g:)+"Fz* VI Q%|t7\6+uJ6Qo6WR+:EU?4|QU2Ƅ%p7c. ٨˰5UO,U 8~yCYum sm]{'»-8$ş]EE %ڱsXs?Vܻ$MM)}΢tp*!cZچ?zFyFf^~k>0\aWr"7H#bgw !15&iu?BjP%7M?L8: ΠI!nğ'Io@;+< i2i[qTA#Zmˮ߯&j j /"!wFe"?mOSnM`*e;. ? ߿f+%Gjf'аv')ǎ!=R斤81sEUYBr6J~Ms|VݷmA2 g;t/Lژ6z|R> !t3*?O ٘נ<(ewv'b:oxYU- GVel tRć ^}WCHv('#DO6 hX*Z~D[ W@ +3?C;F)=}% +g*;!Fp__8P|Ex7yˉ^2jK߰P+`;3x]ct#C]w?nLPZ>29"kc:pwۜ?]϶݇܁MD%fC4Khí2-gZuRGR ʡrȨ{% TTC"HO{Rm#EomwSӳv{tӕمp TBH!Uϯ쨶t}s̎u {̓vLxYw j Lx=Ah,?`|q҅YJ0O aOR{b P'gkFÄ svYN@BlńI'8Gy)nu%6uw 1x1;`?J&˻d@Xq5AS]$)bF&?t+ͺORv˧OG3%}GBȤoxo<(@.0| 3ZaSv?>b*_5m î/# Fȏh߫T'-M..nLpDHp$*D Y(U$?3s(_2沔dty[.(´܌E J:0{B033 !w\8a:YgGE[1|K^cq &WAFr҉jԿPk8̵1:|*V wdN;NX9qf*KL^LUY RVw T-ǡ K~.IW^\t6.4gL~Np%A度nf`'/h]2 34w/`gҷYQJW$:sbA̱yCEM7{-gl@փ=mr& R. urhS&Tc^i6u+% V:\+o".Ǭ%<ί7K$J4OّHaT|R٧hz)_,YAiIA+e{ND@9 'yRՆHYÇv|뻐Ml1ᡪ2sO_Sqչ{=V "/ w3 9%ʂ{HAJ:@tjK[sz)qNCU%J)m4˜5Mc- gt&ߕ0{[ʎ4)i(;,-& Wbeh>([\tzUMV]]v@&3%p+5$v9DQy u^Gp>AG6xz.{[Y-=iÉh;VU2=m UybR4>jXhh 4ɿsqj}ImB;(K2d .\pDBȗ $f g<ꉗRKUQσdF}1z=,d́m J9ӫcsy`yNr\?Q(uc] ۹qgͦwMYҁ7]%.-~w*6 -0l f }POLiu-qуӮLΈ #),dJmrUqlNR;Uz\"GW`@Dek/U/s> w,CxD8m^RyApWZJluT} sqz\Ɖ:>N\=r/IgL~1JP-^74t-w>ҋZiҨ*cQ1\0xd;Q[.)98O΁2~,YЎgH&\TI.<ȫ8NwMoʥpw8bW%pׅDM3l)m2TXa |ȁGc:/B{▬Y KHag8xkVW7^KjRZfH>)M29&u^ ={_5HRLE!a1 큶= PKSwFsetuptools/_distutils/cmd.py<ێF %/-O&,N8l$RdKb"y n}>GTU$IڌX7fSQAX*˜m u=*U-=˂($IrsSn9 f7t== `,>ߏu~_ްKCՍ_<S{ 0Š? nv? s/9uýVknG_86JQѻQE[g;j8^{AQFi;tez<eѨbmS+tHH46*Qp)5ESsYZ qJh\osں}zPdMpj 9@fk%{Y=c)xu["VhL5| Ζ`k~yR@8%&EU9oёf(xűnZB&P~5#=>ҾVMM,J&ɔK᳀"< m$6bz b p: gȼ-@roX)Fȅn i"k6Np JAx_B=P*#&Yg1 ][!}RWgTkW%PChK i[ůʒIPRvs?TCYV- *0 6:;3/<`Q+J9Аy)G/ llL3ڈH*Pյ5 @UBX;QwnFy ;r>>Zaɣ? Sy|etȬ4Ys>[`^cs}f\qtMľ7Bl鍵,y;j]8@093 8C&֯:x66Y[bo0ur' Muؼ'1HB|f54Z{^` 3h' | %AXy;=; p҃n 0 2cc(2]E!vɝJ0?g%s!%7U ٫dbGOjRT2lc@ne 3ƙjaBLE N;2yn P;)9@ 3W?8Em8?OuDԟO yjD4o_B xŁ{'N- 6 0@&'x1,8 m.T *$Rolp|8mD+fJT|\6wzԯQBq[ -m<\Z15aɑWQL鸕SL9=DD[SVfnϑA @|r+%b/n=\@j[۲O* 9G<:~`v%TJ[Uu`:@]94Q˂ׁ5@`髛L\r *3I@ gA(#{Qz ,]+m<D$RhWd^` uʜͣthMTd!A)JrّHrQM3uLikI+^IDOڒJN6e DxoFF cVL -'YKلd)\N.m|BחoQ>/u1|B S5ʇX WÛ(Z .q2DQCPom]R4̻m1Tzoń`d0!-0ƌ$0h9FXYTu[M>L*jwT+`.IiU v10c 2 (\(ww*z-a8B XI/ܦv(Š'hy3yN܆r)v!2˝7%G;Q!)I -!mfI.K쭒El'(Xwsة=UQau6VU ۥ f3 gEoNy bX DP?j5Gȷ>|:>CG5׮eJgUrhAlLb@x# 59a; Ҏ`@+1T3 hOXyTd$heYLΜp3l ,>u95bzZٹj+ n)xGyq8[|FRK!WKT,C GrŠ.G{BwlQ`JwNfzq:ԣ6=wkFD]t4|O\L,` &,왛BF#X$gd3dHBlq7=6Qt\N#Ug 6rY6jTSg$g6+2܇ù^->7fJeI jK $.CRFKJ0| :H`W{G-"5@d 26/r109My78+B˦٥pX~Lt$QbR=sgbGލ$v^esUTiOPs S?]1Q$|+"> d"|?$-X>:7 k-t.u܅ n{ ص 3zU\g6}16SK,Ӗ7iE3'V%zx?_Dz hoA5m`4^?{]t.Q5 Ws`{؆L~# >Zqʼ*3Ú_/\NOk8Vyǯћ ̕W2#FK`c{숱l)>}m&[gsk霭rQ/+9R_Zn ,Iq7'JVAXHuۙ]/Gs *+i"4Aupw \.rCēsFڗpX0A |nğES%.qbX<-:HY"`h-fI~i%Ih#UMg::/Û3 P;0T֛ߥo7Z' na)Fv su[6Sa+ؗ [΁zrwE'ԏ>)v@!_i~|3l׺ sw^q2 1ؠGm/픽8d}.b/fu?5\JIF vaV=76ɮuI :njKNz'L7Khc]{dG9Ʈw_u_u/nYcnKX7K M ÓU 9ox3!L"h/} ]r71v?unk Gό52ѭ 2upQóP<Qtp̛u eQwWW7ǏsI-fi"2b=E0Ag/2# !2*BK zLjsYau. ht\S.A>\ "6pw /NTShޝBQZDBq.ڳ5a`F\. i'0f bi, ݩuCY{Ȫy ZN$ yDKי RDϙyL/]=n17My\ZD]EPUhD Iʳg@NQ zɰJ(>b<|Gcz UɽV\9  Jip y(a[CŠ&e3|׶%ˈ#jbjr/K 1`4Ym^d66Ks0lvWF'_^ rG[a lU01qٴr,Rbި} q%pzSQ0cWW7P`ǟwOcr%~BaL(ƴ fQ똞3?Wꇢ ΁z|M](4nZoi}(|T<. 홚;W! 38 PYꞆR$1{&mb}+VZ bI 6cɘ$d<`I#o(xUQ#oO(WqX_'JK^DWlQfgV|Z;T #X v.+c łRLm@54 WwM0d _5)6rfl3$zA L!#s-w'PhNخР=(giD#ov'{)YmSp,RjDft9Ž*Rw_ K 8-02އ8.-g-UmWP% $˾g/J0 3QoxGu^Gդ=9YdtA!UÌDC@ςgFKLwCbÅegx vTCϞf9l ןtR=n꫟peeHAfx,".D}p1A>x1k55O`a>٫z} s~tBգNb#KO{XG]u홰W6dgwFD nf64'ztj>\j-Ȋ\Nx;3 ȣ?1",GyYNe4"RpTƘ1:nFn+ns9],{n(m{kz aUm_oɊ^̜4MXՊ- On{Z3X62[L~O^P/Vh $q`V/d5k+}pA.0oӫ=ik??|gOjȏ~^n<{޴ܓ;(Qj8rI!vh~Y'qhT V(Wߣ`ai5:ĥhꓴ NޒBCS;q^򼭨Ѥ%mASֿaw}#^ ҇Հ/2t'޳> 0=__(+!*4nabG#ڑ۵QNV gd*)=KC-ɶ |pxg%]WG]b߽:'pKo8~lXC,hWWG(u>ll5؈,Bڊ $eM1h%g_A0Aْ]&yR >"O;H]/O_*9b3X%H,-M{] _g5_2>h~̹vl5@!ԪWˋĕSB7v5ԧ|%۲*HZxa5 -?7{+腇WQts`GVCi:ZMP䷵n乳>RYwnlfN+-bs}{|܀肤,G<  ؟t{#$;!Q02[RiPOzDc1'H$z%0FYhlKu/wXJx#"w$ _BI >Ӯ #Y&QH||;t]yؗIw0WpKC";E-IbE$Ua ,kE՞V+ 6B0M t-k9<+1,yAr^յ0hYL}*#_DĐa(BR`W %Noqqs~*MN3dCqq6L8.@ +Vm lW&Yg _b& be*x+&֥d=7=`$Y1m-d q@uW 9?9:>` ƅɊ댐",ɮD+o0&B@}%\JNaKEqwT;zU;-nH.k 1>M 8"p`G8C0 2jIB0N!7-iP,ӈ`f!ai0C !?`=1(/׍ $^<12ClhbϷČ`orU{Uɻ0\>}pCb(m#tVPbv 7db)ε9#zIr`uYCQw TSm!TTڟ>|>F~ȏu O1OFh(.0cp7 [8qEb)x)VŜ31'k  YԎQ庅JliW; KQ0ZsͻyIٚ:8?PB5t@> H?Ľp?,;!U j  huƗh?4sĤ2OXfIXzAa*~>lQ`ǫeqP;,dlx(D::֩IpLd̲Y %%1 fKIt7iv]2Lo%a]/"4^JD%NPJBh@H|t93XM'M2RzeG S%;VS q7Cq+it]-=4@ *ǫ%$‰7^֛YM5D>"Xқat(!:!TMABpl,MpQzd>?< " ~B  %VV=Frk1ո7Va` !AZ'Rn:&1n*Vʧf3DεΦLڧkcoR\or qrY 3Ď&5ZAvRqLΈJx >ikZ.^j=KO.G~4q0LS 5"BV"4 k^p[$͒?x@D"VIJ^6PV㹤Q.6*a{/$lUa>*JP3.#eI' %.h$Hl%"B تkC2 M^t&tm:84JYnU^әnJn!g28I`sO2 \ȳɧ!]ZsWhgt "}CrDyc*nQ;ou>ˑpиy0R+ B2I Vi:Mx"5SA&&LGSZ ß{RBzut7TB< 4i{dD?XYI֍WBQ膈iz LyD"(%Co{t j2RRwyTɜ!e.$D :818ޯCɯQR[1=^)>5e)/D$)r(FidPCHUxW$L#IL G_}c5˲$|l4th)X_y){]grv3'P_NErˤٴ@|qkm(kat:Lv YWj\ : b`6͜{PKS}8(setuptools/_distutils/cygwinccompiler.py[{oƖ_bJ# UK$McT&6qGEZhirdHCZַ93ç7E#39q(VeUƉ.N0q""#DboKVIDBUWYdk.o%&(G  gEIWRL()_mZqFe^MnDV/=_. fSeErND^dWܪ }/g -ё&Kō,T?cswmIg!$ j/W+dX&"Ttu|oxywLe[>V_AQNMEXH^-"A)/prFageN)%juуMYUU9BBZo  Z 6e_2(&}OeywgdgFgR*Sn#*~{%ڜF"R$93TI2d"%VKEwY P$7Xe[ xe[A8 YH4;9(>9H% `Q\Kec~+(2xUY|حVտChc($3rW>bR`]<( m$6l$][2\*ljSXS7ǀ})rV& Z$ۺ>>|?Ոw Ri=kZ3!H[\Uפ:Wq>33VV!j}69Tf쇳="Zت-,R) }J"Pꬡ 6P1 ~5`܎o_x/ 5_niӽ=QnIٱO  N@c."b"@xv /`"hZϏ{Im`@*$#Ԇ5ƚݯ5~QUVkǍ)7$NvX&8=w6=2lΔ0M"o]PF"R.w ?ttEMR!Ѩ3}wYGzWĥ\RYYQþxv+gn"j4Ȇ3جz~O}LV3 _L 3CV dI| }FTeDL2Œ؞ELߗ27)o:ujU ;3?D[VU%}1د R9bւ? a t x$Q)'u)j㍛ zfx*5 @/c(MG:^A#/(X^.1FY7@Ԑ*ޥܒ,5sQ+/!2PYJ:Zmj괵R9N/Y#AXdW3eԕrr&_7qx%?7'xO0 REجZQc9= 9,Λ73c]x^rve9Jg MDc) p4(+**J=ɖT '`Cc&R>5p%Fx lyE5ߥd${F֍f!N&Rw}ׁRw~>:fg;G4sg;m(R _UC\:mȊd'Bi=};N )Ԋ>i3c!)~zK,! 'FP6uQ\,^e!rȄUTSn6sH)S!MiSV949a~ҵ_Gza1%"aSϴnÀ9ZwLzi)UOo ؏-hfKYl<s q#Ly|y8C~oe{:rS7y:3i{#. 2HgzD MGhK}ʫ΂t5lHUT%*OoU]A5]g=H]v2ZB!o` E_Yzgrf)u:r;GXbwP nny8,}Oeݰr}7ΟW;xRFcK~e{& Y Ri/9}XyД2 BVzZƞ5>?Ck.:Z fm.P,"ߏ .NA3}Lx`?-660Q: <'kx8黝Fhy/2&cwK Pvtq!`ơ^U:8AqȢoQjdnNt$>% Bj\;܃KF{jX!0"~\F[$~y>WUiw٢T|Avypq.E8ӸNې$ZrW7V8SWnNM=i͕;t|n8 z3&%柈TU(FX+lZoak^K2]6W %rŷ"ieRu|> RjCgD'Ned|3x 0EKݹԼi6=AA{s%J1]|6ea/tu!ޘ~0UZ-3Ũ}9ԨChę1,D<5kZ I 9"_ )rҖ;(} \kål%앱Ѩu!\Ni|syj'/^* eApոڋ/m  (-(LaXE*@)SVL X+a=_.}9@m޲ʱsp9bbb~YKHYd;۩2~ڹ@K"$cnhGissn$Y {s"jntDS3:B;R0ąxK;.+f]n]-wTW1ir.q._nk5VrGF|[_-PHJwX۩upw8M70PjkV8 j߇tu` .ِVL)}-T\,474({a\Zf4Đ .]QYԠm "60UFsǭ9/2E %&HR6$8\Omt|˰SŭKDs3Ai S:tD퓝wsK%ںN<\Ec= w#@FAo~}$zf'I{Cx6d/H$_f/Oev\"9%MYs0)\[De YGٰ軦ke<Тs'\Oj.kz\6{cY#7ޕIwGIEuIet[Hc*LwphGnf!I?8˃3$UNDS'xPKS_H%usetuptools/_distutils/debug.py] 0E|*HE*pk;K y)ko[8㜲"cNp_޽wOp(24RA8놢+~XjgD[=XsIa\PKSk"# !setuptools/_distutils/dep_util.pyWMo8W(dc] @ %"BI3);ؑ8Ǜ,VX79!3}+pG&8Nb%߀ ͎YqrAw mT {I73(k0\;5}1L1yn˲, tDBhc!>3 ?ѣ(Zށn`md =wmx!W& *"MX`xnE'03偪[msw&Vs*&=N>- slzR{ ܘ)+ys(69zvd߆8bc2Wx%ww+Ѳ[ڢ޵ŃRsI0߾?:?=ҡDN=ٱ"]Q\#@y6ԞtpKWP02äS8kzp$O䱼XZ6nGZ2 'M2 Zg<#k)p a>0PPyu]]HCM5v^$Q|Y_Äm]`{חu vσ~59G<>[t& ΣQ٣x4J3`H3ȅ|3dT*dy EW~rWgp6ntw2 p2dyHKL}7x*Nd1B[8EEPJg r?ρ9T\p+l4化uq ǢM6 T6I第аdt˷0ʊgPuuI8.^6+7䉥aB+5z .6O֡b>Wp< ÄvFswVYe׮GS)ek7fR%-[~암n.c5`s=pim̼rg$BDiD|JW陗kA{ͭzZ *~i /Thj{6<[zm1)FM.D 0`D]@d ٵJ:_iF퉟,! O;^83.^7XDž>%[/iEW~ZqaPKS3 b!setuptools/_distutils/dir_util.pyYm۸_:$yuE m/A%-.) XEۺ(Uq̐(ޠg ]i8g(mY(5X$vڲFNRm_I[꽀ڦ+R'a;L\.nΊƄTfZaE~ߕzKVڪNˊU_,^۽9fFZȢ(/a)*M>uu!2+hQUYZZx9]n;îi~2F!-tZMk}ͫT!~# ߋщQQ^G(Q[Id&JՑ `m+9TlHDlhDߊr',s!+Y(Gr muo vj{QY(.MZؕWׯWIuƨy;{*dl jDjd4"'V )_iBV%4,kl+q<+Nbw\z1Ķ;DmH)ln sV,!s^dLR\OwS8Mf創j;)on(~ܒb-DW8YdXt=R" ҍV7Ui*4 E\hzT4[Y苓wC]UԺ{B,mS(MV `'K"9X*_zȫ.tDL@!gJ.Kñ զ.[eϟ?F$5!e,v R䐏qZnQy=JcyFSZD ]Q0T8ظN9ʩIKD s:%[*Gw |Bp=Rn@6u.d,f_B:Ú[@9"IU-ʦAܘєye:\UdZL!zϞ/iҀv7#1 H 46$9,;9ZFu6}Df9`|P LB(RO5x,j91e#WYJǫEOaUe-E<=k%^ v,հKڔzP``9AbQf_Rj^Ni]YĹTW~"OUt7F1DH}ݪ֊~t؆'z)^?~⚿Pٹ.tWFCrgp$w1dC6u5\<Ó~ }@iܲE!垬+zn#ݝ-4*@-HE;&3hWA8G3j%ەk\nSqRM@'ie.itl-D͌'~?cD0Tɱ&BcmX.`K;1A2ڍR"fEtYIĮ{*( d$Fx:hpZCVPWԕ}zZX b4luw%f%t[KUa=5m(<ޜjGs׷߾M`^H+Pb$f8WK7 asY=A0%YIt{~-HXWTƥ9jQOZ 20f-K{h`*J!ljrޏPšS =TA~5l9*/D,g3f+-Ecz>kशtݜD%=޾sA][l {MD 烽z,Q$E4y(5kb 2$yC\ z'¼]uTt 9amaiSj/g\ #qr2wNXx9^弳!cm Գk)p4[gU_4WH=J*YnvhTAc 5И߹dJU,3ҍ E멌 ?mɷ~SubƓA8tWhnE)W: CN [g^l#6(F7'"Mr3ɌDXûhZVˁmg٦nM| *4H?{NauYXBVga8&.QTv PTgWWtM$&Lu@oSM=qGNx캲/^a\o*ۺ} (+4#Z hBN͓?e0 VDJ&NZ`[aEeW=M/'{\PdʝO^J.KLyEy KS_p/@?RY(eNˇ񒛿4 l)~}Fc/hd0 ej#x Xڌp@ϕ4 @Y Pff2_^=a~/B`v߳y:1Io&+مkK@_X'8 ίf|rxN=52I7nxj_JSp{ |t t׃? OQ6xq#QXNN lr_MgVEWRWʑ.hvN!FazPKS. A3setuptools/_distutils/dist.py}mww ^ +?q^'Mv]-D%T$d'̝{vã0s1/w3LUj-𷳳Z.oLlMVϮLU_gWjQ]_nfkb֋drvVMgݱ6֜mf]Ym3y3]W^%Yn9;Y?lkzwf>̾Ͼǯ۶im]do gblYpů7e:.Mpi5>Ͳ-n[fmkxCڞ]jzUlgYY/[{u |mW7ggO͵M66Yµ) tveye?T.X|p;h]Vf?@/߼ly7֔kDC6mjZkM V#cޚδǬvնl0^J+> /;X>I!6M%ȉ3Zg7-.%|0n6?_e! _v0)ٝ=T ּo\gHVn~kM8oLQpLo}y]aS/ؑgn4& d.J%,iyVҤQ" ~O -b(,fJ>뚕@"XF:A|"A(^[\ ĒvPY\2Y]50u{=FAFuP}s߯S2 п"έ{VG( 2peS1T\\$mVl;DхF3eJ b'ÃrtJt!VȞ/@_Xq= _ԯV]#;걇:TO]wgQ}\\}oP$5uPr"IcJC խe<Յl$p_XD>[hU&ʣ*U}Ȅ7႖[ "#5P$4,ۑ([wh":1  C'!OTE i: qJAah7f64-A$9Ú[XDuPtbf1®h(a@,0譡'Q5ܫjґ({rdC3Eg:NF%5H[:M9,eXdһU}YH.t$FB]]Wl*G^k~# j aYT4~G/ }E 6mUǠAv}([@)cÑ:P-# ;5Y" MK5G)YDJD[`4%YE6[4S%[PǗDT]r7 }ӂƢ)5|lO pK@1h&'2 \ĜQEX`,0YUM9 ZJ(Gj`wMd p#X8b zU|c:!?N!ydO)V)Mhp\ Q[2 $RƪC-%:*_[Q?hã&![Զ)(dB.a(瓠uaGuJF&<;Q9,  X[b.q1/ڃ 5JbHk ^uJ::5P;Ŋ|9Ȯ1Nk\ k1cd`SWR hq\d 7G h;YԯT)*.*Cr_aje>֖8B] =Pnr'/CL;[v{sl[.qkM2gUM_L&jcسo.8Rh`Q) -kР2T$,AO3*9`wDR~yVk L(Dfpx~7\:; Wc5%%{/q|B2,t.s.S@S N||\O®Ұ%š_tNz xZy.Ɯ/1$`%sp טQvmlSa|,mv ֙@ BJ<:ߧ0z: 0df" d(E'c\HXATO*)(5ƚB <SkOiRe/^~Et5urQɄ [LghH""dTn~=v.0pu6*zYaw_)W/yIa~жႎTP0ec^@$kaE ~»xC= :AɡGc'[|z`y}7\,.82h9Tu!@=AVDX/{S}pJ2 \L< nNra.p ' $cJW~{cp΄ϊs>d:Bqj77dx366!8eO7hCQ c`N9DŽDK5Zԡ!HG% ?0 '"&Í70JFrL >+t{ rH:%&IH7Q@96N" HٹZ3&^ߧu|ܗl#@ӞWSҗ4dmMDWaD.Pѧ:p]dQºuW|^\qaJ8xS]ZBJxì8̟gj[Ρ:>'amGa u  ?@ËAubB8&bɪ6%\J^wXېHˡ\aX4m~_ '2)WU7PU輒O$X/h<DbްIG EF:."]eddg$Xԣ)R1+yx1YSPz> [W}[rVF5>$366qh}HƐmOpBzQ5V+YԆ[7܂t)0G-"r:){STŵbieN0b %r!6>x7E23Ňz&ab%Se h( U])B9O|x|0vj3XƘC$6$-[z &<lQ>(FXcߓ[/w,pՓ,fxfТOT!4!?ubXL}Ei;\f QEV3)5o$#GAO͉K[ξ/lX]!Tv8Z&HHcH%~h/-({mi kL5=)iBUǮr牛;PtBJ4E!asv{00V'ߡ $*8?Ǥ5溦BjfF@QD7dq g)XF"L<8Q71٥#Y 6V>,b6b* %t)&ڬ.f?j[5逊ɂm2E)m06 1*6TYJmf3<۸w[(&[ףjZm ]\^QHxS'wl20.)Z hോ5p1ekBTT˟sCuRPS#(U7ܜ@Gm)n`Gڠҳ$%ُ&=ڭ/m7)?}.]vE: 4 B]F,[du"R$9s_b"QAEP@J.P_NsԜ~(/󱆵ښTR6L>eUT@?˟e8`BY=X1f;3]Uz1 8oK qc *'mE`ZlZִ(d|%UU+\NX`I1EbUgkynfIu46Շ~4K߁%1>dEdg:uĝDlTkH'5+IGtL/)OS$iҚiaxu>S!\V5ڋg{F3._;3<^K e<?XMbSܟ!='˲ŖL*-CQ=OpW섭(QXb": )e. &0\%凃NtҵuPij o-EѻHATCa+iPo` Kd>/" ڎrҜI`W44Ҽ3=7ӥl4]_UOzjQ%ADG"IȪeFbUͽ^a$ Lg4 V#{-p--^aH&W8A!_BCPȒ/ԳwK<;jGҩ"PV'u?e i W(kn=txߠc>x+R* R:+w= X"t A/AGL^mȟoe#Xj<b%U!,lkQuEtjG=†*!p[֜ <]E(WzLHԪ1%zCF2w%"o}S"8ܓsR<4$|bbEAڑ}:Ih$"1ҌGu (qGZ^wǽaCۮ۴ nWNŸ4n~P픓+&O ~v)ڇ#>x>~p{$Y2< #GS莃u/" m*bh>}M7h}%"8c 98\f80?ta#;2qpňphЈ|bSZ ?wp'E< R8 O!KOW6E#l @ߔw3g9SPt6T\Zn?ugTO@>/ݭ^$,׊nG qJbl' Ù}R=Ks&'aT_o߇kOVtZW2I.ӋAGߞ5LȎ*۬*{[J]vJyyI ,JgA1޻뤬| !{vA'q{1CB8|ߨK?Fy:FXXʫwE>Z޸5fRc.Bd N0[l, mp ^E4wSn!Jhl/+_<̋KNB}xh5Gt&Z"'!kԜ?4*AT?amHDS%IǁQvꢳMN,H{Hu{!IIߋ=E'ǔ"oU97RB/PSQ\ N(nLXN}KKz'|F.Rr{hzV`n*H iCW23D]z' X @[(K<")"̢v7JG.!\HNI!S~p,l.aN|+uVqe\}n9`sa]·/} ;S÷4k^a,J42㏿jdWJ?s݁AZinBMH$mt#mJ#$;mKWKvpS}Vt뵿+LBt-kU:UhCw[i"],;: `)GfcR.ҩt"yh M: *`Ǖb{(G#荁<$s\,!F˨5'<7GX"WY($W&Ĝ - 8/hLu9djW*rlfmWj1B(`m@iU?h_[-(3)<pK4VpzRSCZ?3c o T+QHj3TJ}LH}Gܻx50@OZL5I)x2ې[:4u"in{)9LҦEPmzX^*ٍVIT]E_R\";j *yވsKj s:O" nyq= ۯWSGPcuX[X`d쩴lA1"&VUNoOnʉ|r0땝c|'|Y_5TސZW;Ev} .aš\ c \I˘ Qu1[FBy9c;1uF]sAq{})-i9)I t\8[!A*"G 3kXA-{k_l+~J$݅F֮d!cbAvR?剌#g~1Mh O{.B* y| PV/ҊxbB&K94H+>zqnBCxqT/WmuՖmukv1M3ZI8`y"r 4 !DOߋV!\<],6Ǖb5L# 4#(h "e![#R01Kb"/=(.1ofD܊LWʣZ ܠ#:#Єެ]UT[_Ղj /þIPkqUB6l{P3XgJmF|6ʤnh8<h\ލM4ExC|-hofsŎ  3)RM`H\ČO`.=w|]שsyWeAK!\$,8z I‘=YLr,%MLNtm m'fKDf~7CʳCBbbUP-iy̸~7cHY ޞϬz}58)@i}5(/ܲhԝڲ~Q&awKN@p7sg _ڙF`Lvsɞ,IzجURFg21)1@kYãu yGcV w6rWRB ?Y)W2>ޘixu8cwqK<~'MŪpl_Wqtn0CP# t@U[<1H222HM TWŦXC  ZW ?4pbLJC6<}!"Aq J FNaҮE l/ _֌L3DjoLT&,RHiJΫf=)W<B#[m֩Е*]"1`O-. F-k䖵wnʴQ[eBQ9"m`juQ2L&rf:pIr\,FpBQfBWQw9 Bg|^bc|h?mP*#x`q\X҈+^F1 4@ΛUϙ"8"ۯps!ܱ)cP;K&ZYBe6hz©]B Jp upMe^r 9bР6H 3Z p5246uIoExXDNJ/jm߽8Z]^pۧvkwf̓lB _XRभpNAgdfm{Fa S,ppR:ƅXn}ߙRFW"'2*p;C.5(K,εBo.wW~g)*Ab@T6ihtkW`|vVk|+!4G8&0M^6n7٠7ny-vgG8܏\% )~' #\k7_tX<}W 6[ZbS~~G:c&2)~}PKS]4:% )"setuptools/_distutils/extension.pyZmoF_G0LӏjCm9m$!ȕgrI:܏gfw"QvN@"ܝyff(rmօMcJM9\++߅"+3X,*T˗ۿ5yS`.UunW$Dow^V.v26:>?*% L"EF#VLX#t-zAh+VoLZZߛzP \$SaMHY@ z-Tif&[eMU ԓvw)g*MQ6L!a boɾɶv JjYeXx3 ϏTS~D+$$d>w7s/㊹])]08e1.ICtnBDPHuOUхyOW6AP\0UEz=dVNe%ßG^Ժ$1Lc씘3yTMIu@  ;2|Uj\naB-Q%f/񤨼'^PbQN#͸3bȕ+4854km5gKuqُ K],uI;LY2Tɇu}T/-N'PST2S[OpWnMZo)~<7yW!'\ u=`wH[~5mGq_7[uu0tH2:;^/ӷ+9`TbC&VmʁZwlhH+sBRJUo5>v̑ծNC몳=lxKWS~2xU-D=gcف$BԺvkUcT:KB;[*}o40 &'$ x."]jtv Ǔ.D$ࡆZe|sWd.б-ѧ\T?iwC5è {[\7h:O{nS&։J |I_ZL:MKq0{h'GܚdqZb%nO+kD\ @]NCuҁޑ+x07JdV>`iuP, KPˑ7Ћ{ucb< ScvB,ElU {F鷢)UcU~/"슱AUfU͞Yb(xvY8& xvAH ^ߟޥυ!kcSޗf_tO^mcu[EJj[oUI-j[!'s{,B3MmE g;D\ N?Mlkk!pOH˄g?aO ǃ1n|8GCȆ G僾>N-gkխjtܐ#ۇM|zԟ0hӱ֮ LOM(=F!=sWӮx"TōႶ-nt!|!ޭzeGRMuj~bSbc JmvU]nߔ30M]%2P vG/zwťe Ag$=@W__Ɨ@&\K<X,t/wĹX̞^{# Bх :wBB N `Pk1tF;Y{^w\lJás%dWDwFt<kQV2o? >ZLux C^}O(T<+m-y>~} 7?|.dϵmM?0z`fIGq*CdΒi&$7"Iq2ĊV ҃v!f#eר%%(p)]W.zCJכIUx')Pu< +>]ܜ͏ŻʬN_1~h&[jb>B;:d! ̶U`'LldL/Dׯw"aˢK1.x BTM`?|Noױ4fgCjnIY3}!~[&$[Ae^PJ$롬#Mn3E~Dϑz$悊׶q#jN-BD94 R&BsoJ0V~sbUl#ۦʐ(`h΁HAߥjbX+9a4x xԂ}VϐmCouw͐u~8w^NC@iq#q7b}OtI2۹GcMv!6,ǥŪknăMM[Sz[(qU*&HE!}T|Cb#snkݐZʽkzßoWyd BR8aO)[|g}}F}!h>3}gO%|X?pL PKS1ƲxE%setuptools/_distutils/fancy_getopt.pyC" ӺCVe5RW(]oO$sDIqD`,{ͻ{V,@<+<bK|] qGV&7e"u>FD^6ri~yK l˰ yK_ &jWfĴEgZ [)pU֫gX# /uzNg{#H`0*9*g $;_8WudRPN(qOg=`e:~SV"trBd$M_E}C$uaDa TۦL5dHpHĥ ,6L !Df1$_`7m%a7yTO$$(YmIP/C d)fϴظ,%ҠE`vU8uB?r+:2 :^W9lB ;LO)X x\ ^8kQ'f+UM%0a 58ciC Y==t902]١|gqk @"p9HBvP2nQ;`L8e5' (.O)Zޠz8J2 t^}Pec )%g $NY- W-NXy>[څ*JSF'tPս38bt z֛&SF1dE*EO}ĆiWU*X`WW2w>h%u}|}:!`r'%irV t,#9`4d ]@_:8@XtHY tAB!{2eI 亁T}4Avh(FI(k ҒhlH8u~st~34„\ƍ#L@R s#v!nn֘ǞƗd@Y<#5kLTV*6!ډvspyFמoVU#z ^a̱?n:f Tm0DŽEHdܪbb\{NxEP]D@3 lyp/7W0vD3Uoᘗ32gFL ^wpnSXl©߱ u m%M&7xt]& Y1mCpN2!{+ׁ9UD}',U*,nzϱH,0k=&3=Ff%iPZDK `O.dUTZ?Bzccd/;S:Bu!”>+VJdخݾ3g%"J yuwf),c}m4f%,,o)#v˒u NƀOW6?T<}D;u#Wҿ ,,ˆi"{f$i/)m-Hsط{IiWnĤXW'0;.~Y+/NL(#.h$OOlPx8?Ȋ/_0 9U-R^̗RzN6Vw6*dosr2 aO"UXt\"zg#SAFϹd拾a"Kj%^ ] "`rN`_bt=?>Ypa:a_R+QΊtL" ʨD=>f -k[nR\V4)U|A;eG᠋uaSD/'7y,R]JdJHALdHGr̦H?*t(6B$ShHŮ(([݊iV(8;&L-uօ {V8r@~kُ)%?X-O7m 6аŋoД-F94m/)!8A& ` F#kfh |YcގoUoi= ebs3k9w+=4مNRPbPgOյ}mޢ-yG膂SCdelrՁ } {HTCb>R>MZs*+UjdTB քWH̥CU QHl&}Fmkv3$_+zy\W2@ p)BoMQt):;SVUr !Q-BD~ݡW Jqh 9zGQW*=Y9n<^[DNZR ƖY"^ lkQ x9a`X KOV•4<[2 }eg٦v0n{maqDEeKvòN渞YFN^i~n1&B x]ghPPQs=@/7)T! _+s BP׷~?" K|XMضy˗h4D;='g 9#?I\E]TF*%[0 S gec@){N5j' dژw:0#lj]s;PXio=ojbGXy$ i7HSᄛqmh2W~GetkӈZMZI=h51okLjRpMCJXmDvP)ۧ=TڻUS$es!zE[r(Ά9mo#%!zO>%wq{|8}CՃ]AjaHY݈Y;)fP8ձR5'ng\:m9  A nfSѦNtoN∶ E^:%⤚z|aDhkB_gp%YP)l#SmX- Xfoyӏƛ>3K08dC'6|k x[{8;@B:C4w  ppxHڼV,/ ɰJƢi5^]U7u:d&l.\%w+:jf]=di|0$XR9'FIkRP:`6#tP R8FO ¬P.A-hXp%*o pYp7uhz,yOmvvDlye^Kk{$=ހvbYOufl3f,d?p NaRm(dӌz0ݮhfe/`ėg?vl`Лq_veD : Cjv{R7LvWo|QGnϟu' ~,w~]vkΨޢlk^!WvadKX4 n?U(YY [!_wl07_Ő]/q% !R9϶`ѱ>SEf4^r\ qظa! !Vs' ęKtjferWϛTci d:~ Tq+10Ѵڟi~:Gwxm-rAZ=P A;xr‰*v||[e2ϔ3lƯǵpoQשr9u~2FChc!n}!(LuFSmjgeo(i p3rk=rV,F\l n y1EbInc"P8r {3ŝ41/]r :_~`h"=2#WM^gNo'8B[q)81`rvv)AyԦ[.ꕁfLF/+mLϓ8'fnՊ$NFfU3zn/;5[,c!@d94i 35i5.{47(o2|8ïF*6q2BǏ(1*?CoُtpV ԏ#w;_f´U)jY8D7DXI-B l "'wzhyY_v.ka 1(*`,%KJ7Gu7350M<|T ~itiw큗<](pI^*\:תVqmX' C\h .V', Ս'luU5@a˕<:W1(bF2#n]CU 0vRkdS ̕i*Uւ1gӨ`"K˾[%?fzEF^,ʢƎG~lUUE֘Ggݨae7Y'GR);6>ptJXvE`&5fδWyDG@.Ht:g,vkP,3ᔧ))fLںS2aLF$d̳Ш>8ڡgYe6Ly?Y6(֪&5xà NRKp )pFC] &tb)!zjkYn:r<`71hv'€@!KT&qQNvt]AdDu~T5ܷ L:I>FafW^ ܘ5 BTⱕ)G TYZK Cژ|~1 'u5dEVJ,5m`K7ɌapcPf5mS | y!80ݚ !k`[A/8emXD ĶƮ؄6bgx$Hά3ygI ftpK>J!*Y5 =@7;AsLD]G|5# ufJ&~t5[X[cPV[~۩z J( cxpRޠpZ/z<%`#C,Z*T@{ u0nz o\?~O裰` ?!_CԝG =CWCwu詵PnBl֏ EKQuS!r||NKu\[z?1n?P\%ϟ?t}:$ם 50Deiq{."sI@z%6_7#$3Fy>yGE8zx`~5n=g>ۀ fLv 95{ FvXa}{Px :\lP Q7vCx嫟ƥWN@|dƒCt?v**hqတ;FÝ_2хƋnpjGr|^73L'U~:2t9 c#3yǕ Lp)- !O >K"2ԯ -c9 l]t6o|J/z=i~Dzu;؏o3x7PKS%4_4!setuptools/_distutils/filelist.pyZm۶_憔if:XNI=Mb_&9_5 IAww)NT9bxa.MUWRB*m0x˭̅aJhfƌYmDfVKe]%20{S9RHL +`2\oJ]'-ӢX*[5uUe`嚵_樲 ]6Zu֥6o'+?E%twxy&\Aj̘|ʂ*5C2xxFv˵,k`v(hdy@O`d@^E&k9+ah = VMq J`j^. WV35H+dmJޑa5ħk2EΘ0\y!75j+wL ϬuJt\hLZJR)&0jˋ}ÎGfm'3:bf3Yj6KP1q]L* 1z9@ZFW 3&EA'zYa71̶bBlPk9nun8C\*Y229\ߴ0Nn&5˻Դ4P&Wb/?5U @k*q!ٛJډN'h8c(D] <QCEBkc##=ގRSΑ=.AZfŝz$}Բ7sՎ "O|`p3pV6Ѓ YU3YtFE4jT )[K x!0b]n,B)[cjrV! ǣh^y)4]'cŘ]<3`MQXU~Unyg 6b)fJ™>Ja=lN[rkSKu/tS)5:cإ,2U"Dܹ/!"Z|>ԨxĞ/j.8eG&簊BnoS7'Ϛ/d2dn8h]PQ 򓫛֑ ߋFnEH@PY@ xXA@|2_ދREmt]XfHb~:PF"+.nrWxPPU ø%P`i2<$(QOW@h\UsX $d،{Li: %R 1$`v|)$Whc;^V3箭>J L-JgVq aIM7 ? 5ЦDse4$y1;,mr@~^@ \ɜdߊ(;;>HMSq T!־N (*'/ȰX`mVH?%6)ink$԰1:z9Ά HAT w%wlkZ% sifZ,]÷4mKRd5}{1;IPe!h T{(wRr1$cE Nv,olk@PK 'S˼VP.'CM+lD&:V\BC%h4 +?닆-Uap7+p_TXYRT;^,ܙ!y^~r90,y*0\xuv@.upB:%'YbKjs.\ch,8ǘ͡w<RG椧ӺhT\WT~m/+=0^GA'A2vBq(u@_y[3XNĄ}dv9:c !sxf{;/oߴg8̮S;dw ҡg;{QAJg\JP:\;IwxUH1h$C.u!6ftG W4TS5SUe}}1AQbv( nEh;~n=vN^V{F``Un+! ߣboKi0;t !^^JHYW_}׿L"A hYBH[t /NNd0epq]^Z`P\]!=D8R[RE)BBTpkN2H!OqD!|Y.Ee`ENn% 8:kWS<ӆ٨X lڨYmLNl@<nU.fsvԴZս/!S#H&ɸ/E-Pv܋at@'r;"Nhlj;OʒMZ7/cB- Z[L9miƎ19啵ʑZÌ(JT<J7ʴjeWRZBM#?{eObtO.Xw'F>[gl'PbmšDWp}؞BU MYx3e08 Oj}rssse 3z$MyÇQ|FG0 9NOmsr7[t&LA }$q}a7rjxjM1&XɈ,\~ǂ]ct]½N4@Nִ -0r'vj%;^p`+9ҭ3$Řﷵށl60'ddW̴u狛Ձ͎ NXɔG$<,h$i$E;hoKo}q/>&l/kw7brE/xM'hD0Mr/N?$j?|{n1鰖L=o(E&;sbX t?{mB?4zG"PKSZmsetuptools/_distutils/log.pyUmk0_qÄ-`et JB}%>bU$9YdNB1ݣ^twhN/A%e\o4 3& > Q qO9BK GI48>t ZzDaEY+$YҦ0ܔRKXz)BXn6Nx{@Mh^)>vfy+J1Lf=:Ke.7:2W|pXip?"+ nKwZ $Q$f'?8J~J]Zc{7P \SNm/cql˰Q붐D: jv@BVEY#hmaP;|| ܡ*%g".s&qc+⪆\qT\yS؀|R 2+pVr>5{[dQjSlBt^SᡲB3*y%{iS,e$u{XK[^Q)pᗑ4-q%^XBGYl\jSМ>DH~GdQHp:rۊ !&S֡O3H݌U42k |=|hi?YRC'Հh,ysovnުqF >CCz΁&[`˃sPKSRFh!w&setuptools/_distutils/msvc9compiler.py=S9Йq0\n,b\xG {dEIi XBI9)vjER'^,YĆ|F&-;jA9)hT[Xt1NFXWImLh`a˅&YJk[qO-rlB0P=ViTK(PO:&fU42 l&A>CCցu-/35C$h.g?#Sš)l>U*uWQ:n-Q=θ#Z~>[JUG^E\%Y`dph~?8?ZgWGgo^#61&c軳!nĺi(pm|m%cfإQ?X_aRh6KI9{,<E,{Ho6,l41w F,5qQNP`esyMWO#ipz sY/Fl}3ˋոM `ß K|TAHPgGφBE4yqnTS#/E>F3vR;2"ciF|VRѹG4Fe'<aņ"0U m$8 mu{3`ʖdYX.hʨD_m}<ٿ\/pFdFL*^Vt% T蒙VNX0t}IQ*z0vka]Fgב18%l.ub 0݆BP _CS[D b`RAL9l80j rGw@ 9~ BSH"t[(tRD A5i7.5<^WH0A,?w=2DwV"!)= AD,j+ثjNZZ)zɨ|yF2Ӕe p@ݑ%Xj C;87o $z\xdy|C:)d|rCQ|0Dm7J85j7WĠd_X⩘ȓ, %b=Z #m,/A㶽%8wQ@3Qa#Eiqa$C ɒr0O=(Y$r0PlJǞ18^hn4uP=FN W: ^nƤa*X6&+\!վ:8΀iz҇}:68[|Tв`Yh* Pb=y^Z -;/ ڰ=A"Øf)n]NKP ix~8OR#!-XLs021Җ )p,/Q"AE@!4rb ܰOCv%+hYBO4QDDcE6]cEA?\/4Gx($9  F Q`sG:ր"el3"fٌ6)f6̂_,'X(fT^-I8:~ ,A~ *?<^R $ 6bH5A V+1*duӪN}Sk촑-ЬkEb26VQG`}R1]/P' I S/E" ˌ?"$8obצJPJP-#'Y8$zH$dz0xZE]B7mGL@ؠ)Jf{U.:"0ɜp ڂ8s—a4CI ]'<Ǥd:g H)wPiAK4 c>O-&mI)&tN/#M( z )<V8^"A"N،nz4sU5#əA,;dqQ p.ŠBʽ*u$, 1$ftp D]6&~|!/`u$d44צ/s6ȟk7 U`8m2&0 ;TVo%@ +s^,lb4k?~] œh&5L(%)o:H@1ZXcIh~k+;.i2T (f*i)b՘%npe9j] 0,&\#Cd(ɥ쿑t | e=ǧBAЉESU$3`NYVCV?D`Atٟ#`ĭą®qYS@iu0iR`Ufesx\㐱ƱL B:j|4/QBútph>*0 d}ˉTI TD64p3".*L&9oMɛ :L݈^UE?ecrIfb@{"c0DW.ȰA tXy"&@jhLpzrrO F+Z\'unTl֬f3n]4!ԴY9J53 hɦ c\D g@ѣW񀤢#s^oLt}Mq6-m} 7I%]UAGL綀b<ӴhDe:/ pX tVKAmX e1+A%^ WkGj->וROWU U:ZtImZJ6b&.L1i"l@3}ةM=jdT A>W*x&q#UMcA jժJEu3vv -"]$DM讚@yɔa\Hdǜٲ %<]m_0J3.LBCٌ΢;kڋ3M-.(FZQ bC(*~[$16bٙk~Q~ 66'ȍ1yNH~=|HڇO'}Ln&Bfߏ|5jL ڣEVݐ_cX&*I8dg _,(̢Hn'[}6#01 aơY ;-m4-K4H1ZR=iJYc8>ζe$XqbI8m0xfrM O߼^#g:Tޚjt><J:'j9J 7Ծ5j65q4Uumt$bF9PnuYkzHۏd߼& LΠ_}`,n`<5SJ*̺&WZ͒ u ^ZEUg*t>m<=|ٟs-Aej=&P yz9%'=C'"қ2y-RHFժo5I.+k>C_#% ҫ2W0S=% L r2H@l}VK͞$oP.e)`)!/Nlsjoguv<#{G?kLs0k"`A +˪7jѷmwԬ(T7+;VZc|,k4<'oy)gG?}kMFPHrgX  ;&5?JJ! ]V K/8<9>6gGGg'g֬ջ=SUnL3Y$~d~pN Ŵ|I`ZF_|+RTEU>/gu:~ Wݛ-zJK@hGNA0 FcN%Z$3lI\--FE'~`NzYP. GH:d%e,А\R#q9^AM3ҠZ :Uw c`<[uUθNg$)ґYD&J<8uJr}{!H2/貢##[~(q2s2 `[F7Y>&p1YUD!XJ.'HoW%,aʨõ]֑' E0s"fJ4Z-$B,wB KSajE&}+"p}8l4X墴 c:Fk`_LգoE m$8Ȁ 4-PtUISmJFCghzMD9si5fmCp Xnjx98_ZKNGc6 υdW$sEQ!k-ےz2hoB|h4:2Y<}CoF4y,ӶS*Ȣb0 6Flҫe4T^n^(=|yP4?/^QOf{QE#8AFåp4Zc0$#ZP~㛥y<NO mw}_#T-Pc/Ygc`j2Lf^:YS{3s;.Zac j5 +>9fv?[-aJrl]yOd@7J?{%t{ F-'qI[CT"h!%+qBME MKxmH0}2pSs)A[öo^T8SO k~ȹ܀z$~:MiB,HK4~(󥷗Xųer"B#o1倪#@|'ڑ_/҃xnZ5mޫ-6^}G%JҐ=UYk{:mUS:sj"A[gqEӥnbr־``\ q @ dt-4T 6 =MX];8.(B /b(4X w#1 y:'͸2,obd !z ]JtVջ޺=:lT't oKν/ A]r5=g1A1 Ro9yP;:~9>xr1/MpeɘR`4.jů/5wzw~Җҧ=u3;:|h0}Gˎ5ƧC.÷zk [oP2D"E>ݠwJLohk4SOrb.㥇''r\L+5ǽ)/ՀilC2m1{ԋFHG4"d2% _cEnb2^G$@g`9<KLFtLylh.;"IvSPiC&^dݯ^ 18)Tv8}gs\ﶺa$f}qGCDC0mFn-(@H9M쑡_$CWF,]Bh3Sz~Jm6JwU5hG࠾v1cM*IvʦYlW="c ~x0`F^K=4(#!Mմ"7+ f"Ĝ廝y6Y\eGym򒢐G}e,>;! pN0Dۢ9UߕAdמ7ר}Y@TglzQk'_{ =`h=}>D zݿC % EȣQZIƊCRH(pPձzicpO7#=j[Ԧ{շ&-ոus܇~Wڜ]u{vf y-MhO= xwhՠckq)#A *4ShtdeW>aj ƴ^. +$Wu,d f?1`̘a>G1P{H.<9¨ӟΨ=xxG*=ѻ6:iv^?rv_d+K_BE f.4o~@r'$z 9M?Bfq!8 ehNHVIn?[2Oٲ8 -V]\ \†K^zi(8>H/%XyW̿;alqP$%/3ʝ;/eH%t4#Q;E %#zT\T.u0]6g#W̟ܲ9rQunT4loqE_g8+>~g5*Fzۜ6'HbSl.ڍc@8&Ih) ρxܕZ=Qj!—4;Ea {mz5z?zyf r&C_LYþauR&&h t>(vH!6( QK4o:tκVQE0-BshU$Zf*d8JY$ʏ7nhjKF&!.=/veeO?b=>imI9{ cs+VDPfg*8Wr+7<\$Q22Us*p-^{.`{LW :N-*sݾ^*Y, oWx]aמg^W؏36o$ ;:w? }"?PKS:kc[%setuptools/_distutils/msvccompiler.py\ms8_/%j,N2s*;v천=ۥDbL\~ HPVvw݉LFt(岌,t-8Ewe>C,^ _p\Yʲ+眅QdUa6MB!zD6+X,ÄegA^o}))9/|ϒ>E6SpylXM8*طlfq-;U"[Ή߂ՠ׃eEJ Yق"B0U9ԟK wIX꽪D^ēWzG? Wh[x2r&^zi F[{ }>)|ѫfbƋ,wf ~{w:z>+](].E]B0%KЫ ʫNC)KvL]"oU'펾|4KRhKBV>A-{%)ڢk tޗHa0 EQM~8hFyUR>BPRf3]gbYp|U܀ jΖtV س2[ޠ3{xe?~Hףhhl8tqqJ-xrvd|ǣ$OގFG%XhPHP!8 ^.%0:hq],g͇95TK)ZڅlcJ;BW7Ң=0SWxNݗl Y\Y'L@,w՛ ̡/WWgp}b:F-RrHj '$aieEE &J=b ?{4.#]ʞ Yy=:da y$&]) [oucɱ* 5[`,|p" It,, f%_#.a;^K$;Bv`!(vr:zA̼li\Ǿ &VW T]~u^E,!X9\y?=ܠ"DWM԰3fWu/7SJxl/x>C6[(jbןൗӦeݴFOuJyձCVyWEd@R޴Ȳh5!``؟/^ Zn6(;s!8GoO]4 Wljc7`yRe ,vd^| H"`% 7k520 ",9} m65 .вͲ%0`䋀*[;`u Q~F aE¯//_ 1tC)[/wMD3d{ d=?v׮0d>+I# ~9QP4A>ERQZ?.G*3R( Yp\$ц!cǰ)Ed̷v ˧F;$%E>eoOF~4Q%`<#G(IZ40F Bյwg4A k ejR39n-K OWnA@5\_8"G{7Mp^z,+!%I x3=^caRķ?ք7EXjK{dCs : MdIG)y֯ƨПh(?f^FBp #6%֑{&zp ]tcC S" X/1ªCO(IF2:WIWRC G,aP#Ecᠱ0i,:ޮ#hh z|~}vAޒ!W)=UjaNWWQTmgX*Ab3ܱ$ cݡ5moYܘ a!]$PZAgCX ^Aw,n3Ļg/CK緯}6l=xxo'[G|%4m)_NWa?0f+b͒V%$\PGG/ߞ<8Դ:;̓O:0G}qe@ mRDz0|SCJ 2WvkYuuE"Q\@X]*[b}o,1 ǬA;/WC$.QI,k1җ 19ZcGP L1b,X82j :202 U<*{NWoPl,%Q}u4X 6ؿՁ݆li%<흻Mܪ4VV÷;wk*-D[(PN/AjVrIJBrVJrPUn*Q,mڒI0IIJJX+$&NI`>.HBR@W.ĥK^oO𶝀zM ˩>ae'Q}~h\[fvQE38ːAпVA#S> e:~f]U ZUUXxPe_ b#Ա3DmG((37h#1db.ѻ)[oerb#?`dKH DY M3[1^s%-@Ӭ=Ys].d/}w#C luK>UHem %ZE> z|(Rr7>Ϙ2L5\h#m*E`{;k/uk,jDo,TTjښt^MSwP 09!_-0#&Y9 Lzzm#^YD4emTަ&wYE?QDv#/cX aг,ǵ8ByӚ+6}Dzܰ$' %zAKu}K44wtK_FS4`?')<<{v[6}DȪ\t0J@5!jZsJnV5))^<>׀ˡP aj4ea'F{RTjqp"dYr%:n*ȢeI.P-E4p +MpX$4]ngi+Zk9M^o#[4Kwm5t5!:ZoߨC??PK܌5$}e2_-SN2UD;߃!> I^`,-Zߚ?"a>{ךּ1ƭ*T!+co1͞7d-Onwo|/GgϮa-ngv> &2&;wܸ^Qu,[F'YGE_"ܪq|sh!&paSʍY0OPKSv#setuptools/_distutils/py35compat.pyJ1y&< Wg:cNGЧ735&_*Edqlc \.By^ $ȅQw6a|4Z8@0}Z%hT`T͔VO1E~r" Ut9uI:z Oާ/5Rد)3<$&_ eg `_,1>>rxkv'QɌPKS{#setuptools/_distutils/py38compat.pyu @ D`{+JR^ji /0-L#k>&B#fRVlz왒ZYxԮUZ$tUevGk PKSs setuptools/_distutils/spawn.pyWn8}W:da C vmt%f+IwfH]lCr ;J|U{$wT)Y U A@eWR UsW6Wke*U g* [hXр.ҹErS;CO*˕|EźŖ-Z|IƠE#l6Kմzp57!$dcv:-m-k8\w:jIMpWu;iJ{XNWwF:;}t e%9+L,i@y({ È m)nFjNShurt>z\H,e'K6x}MDHSn$(m`/W Wp=,clQ~c9`o; s #g9lI1"={Uװ9ɍC=p8D+HݜAȴ0;lD]ĸzAUdw*gZ0*"#$?KSpY{.rXw>0 >9P%s,}T_YNNy)2+L=yF([c"](%%,b,{pte0, JK63n ?'dm&"S ,c3=Px[N8w >F&)ܠBFnK<,3Tx^շO_>簑~Ո¸ǶƿPm'z<2uIh{h:ieTf]Y/BYy&2lJB<~$'4>*#D3}Y ;Ypfp 1bIqW,^!nhPwr t-0DO[kL̯V#t:ZF<E1lGNʣ"* 8oI|h>gltl}[Nb-t?|;}Bg^QDokMQN⻢$yG4I m&xb 7\\4M=,}P"zpgy+!.'[`kCs=AH +|aEXsBSoTp%)@U&0m.^I|7JNeV'Ż0h$y|%lNqT97kz<UM_OOPKS!oR"setuptools/_distutils/sysconfig.py\ms6>7rxV^]"ɉlKeeeCbf-)y6~ HHއGCh4F78N/.Q$du.6=ɢ"_&uR,ɗEkd)dDHd')~e(EwIaЪek$xDw^/<ʂZd:N&IVUB|/V MnUMc2YVEQUEVO@MBO&gůCa)7a2#`$iaVM*BLpUB0?hADM 2i˲ɂր"+Zd髳+AuGqJ,Oq$д .P'g$<ŝj XT"j" ͮ${Z'9V@&MO7w߿`E5x?=R EU{2,oaR==~48LNwIUT=M:$󅤩wͯi&"B͂45nq@`R~\lFtEJ7V$$$S~ŅWmLF\dFN5b%fKŝ(N-?g'YFY1Nә"/ڏ:Z`SXK!Z!@P mE crz7Ǿ!IC/n&iSCv͙duG;<`ɠo Ǩ`-%b|ݴqOF)gs$dSi"@]w&95B.lC߈ƀߧ)V]/GW`Cn.XC' @#h< eMB&1DAg?g5)M775jIdʨZ0 W9,m*薕֜ɵهD 4.>(CPj>Gԣa3U esnJ LE3%iNǭi+Nky:awrwNͶȹi{EYpF ai Z @ ca *t [.~\[T5n<6Y^;lkE.Q PY;ED 0SsB)Jtsq<;LcTo9p ۼEJ)֣qaShxHo ^XB|@ȓY(IA +['<e.w~i|`,!?J+ ^HG],kuʘN2eBN%!&WfUjmpv|+)ICtހ^'zi2yM0y@f}8@?jot6%7R&[%J#)bЫ$v2d_'+ @8M<=d`yBRZretL#^U@zcNIG*˨G`:mz.b BdE"#Q8 %W";N 5ժـ[UH잫T({HG@fלy R=`5>B,P$S+s` xd{?3+J{s<=p*7g?= /7gOys.PKd~ z+k70]MZ ~Y LDDq>) ^"6$#+:͏`yKo˃.?;=O?>1 }NWMleQ'QIbYPBEEQ?=Q *cX'W yd800i:d+)57_"h?tlJH yQJ(xAYKJ S*g}-CSE4' j ՙr-uL1^Lc[5]C- K4[}t(_҉ ^zAL6EwcCɫ"1/ҹg ,DFDX6O2`Ѽ3= .xyJ}BԂ@Un[hi2zMWq,Fi㤑B5[-5]!s ԭ|%t3d DbRd<Ȕې܊zP_y<# f%9 ItFA!rY^]]m8C'꒞~16`ax_$?L|%mI 1 3ͳ6B=Uzv7,Ll]_]*ٞd1Ԩ!86EI&@ۅ0C =@0g.^zy|O'G·GoN\UBC@^07`xhWMZZn[W)v긢#* sB0H: C3nٜUQvK(bRfΞpΈL홣TY˦ܰ BO `Aʡn))m}fjQ W]R ! ( uQP)wmR=]d}X 9}*MoYXo Iͬ/ z8ܒtU# hs]ژmKb=9\8BD,KVka^59-qd&\;w0nD[fM*ѻkqMov@Zp3:ҿ9o.)'VW8{-tDQ:"xp;E@ F,EtJc*b`.&+0\D!Tǩ%(Z߷:o7g~/xLϱ=t`-.pp/D7 Zo)ovۚ<>pvQx#":vZKnB{vSr&e/({vb7\RQV*A-%@=4v.{ `bD?:e4&aPKSQ8Z0"setuptools/_distutils/text_file.pyZߏ۸~߿qnrE_^q k Dʢ*J3͐HInZ&{j65~榪c)#x,BC>y٨z'S%- 9Fu五Eq^F>`K*k%NΫ*/"ǣ*ѶM Oe:/~$Nys[>tPf=nncF3Q777pFIfuUhU`cF<9#κeB,$ˆ4JbX:!Ve#Xts)4Q3br&rf:d-ScX©T(dZP&l T'fguglЯt dt-Z}4T8v-ğL!F VsOprS]6. -Ư d]83hbJUF ZBagϖU+vp6y* NqP0h,~VbǶh ue яNw'L]~%\5x}.KXM='- W6 tq<'g,QKdtZ{EC#Җudk¦%<`9TV,. V(j8m z ȄB{YY1AOLƴU7iS+ =΀ifp|bit딺'*[ mBD hOh9$^kDDGauSj KOٔģ,Z.!r6p`wsv^ATKU6Sj}̄$ْI1I䂐m5J%*ayHz:eןcEP{^e4oz2Q43Vc|pBǼ #$L(s2{ٟqԱjVD]&g iD }^{62Pv%'z#]6d"n)`>_'F8HE=ÀTnL*%R+_*+4,KRa^m t%ODpq0Y*m5d5#@oNJ&(cLEĺ_Rgxm q!V"wQ6п!)w2FB&XUteVt)kF0v?ơAwȗtpEq@OF]ATG<52Q8^zFrVNГk;Kxseq=\|rn5Q(kmx K{~T+Ѯ5sEO}Hg{|dݔGimzGaǍ† !`xP瓮}VD:jd ʞb&cQ8ps/8Ql"s _ C>eUHTj[#zMxdx) mzI5)iC@[ *:6SFq-#5zn ["r[ܪQ!*A˖~gemPO"1š*P"$r _Q 3uAIcޭs1ͳ ,?++qQ++WwsEnǴkt-i]Ɵ}EhnJn?TrW O* ҐKP k?U!P?Ĕ!,e8Y:f!/}elj6Φ%RVȂ_S[u-5iRo[#TCs~7DK'"1^Sv.@冞[^'δ#󡫨vpR'@y=R0LZD qv"N* ?DƵ*٫qOsxm 䀞s-ǼuF7*MlwDm&+FQg9[kYCj; AOrM9|hpgSL.{it2 Q E`^ aWjCljl֌S>j>s*zm(Y=]g_ybdծ0Fi6д_,؊G}lA_uk 2Ydipĕu]:yH<4YhI0Tɼ%zHcC;ؾx{xL#}ʱ#WG1kKpcfaq"~=8_~8¡SHsQN>[_h GS2[$-EWCCae9^U$6oUD["oiNWXaE\.WTm4B8p%~PV7$I@1+3b]r9>a"\z 0!cڃ JJ' s"T~aEI(p :̮;"u}:Cv7$>A]!*]nP-Óo|W *-sD51yNTr@Oڟ7bBr6²w{[з~|Id*%}Ni"Wpd!(e{a_PR|7rr+\R2gX+dم]0e;>[Z,d8g? UΑ(s@,:$n BËoKH#Ͽ&^.4Xp 9]i4 t8=>)nn' %'mWV\XyaPqyD6BV+\N{-vmAQWbԂ z{[)xv3-C^\1O3ǯiem{W /Ih!%RCid=Ԏִq{vAwһk6̖'PY:*,l'y;e`\TYzX6B} Oۿ8 6~p6.zubs+^'2Mz*dT /J iG7o-w2VtUOԗyPzc$87cq D=0j3hyfؾ_':?r>77buK{n`o%c4GGdU$ݻ}|.EĄ"0 T`Fčd\5?^<O\HMtmxHJzGӕ}搐 =!F?ͶbEPKS18&setuptools/_distutils/unixccompiler.py[o6=&p9]ڡiYmDHIdf`->e2ĉҕNRVyr"I*ʓ+k``ʎ(JgZw&7;َq* cD<Bc*E]1 cXƣR* l[y&n.yZ[Z'~‰4!ɣSюI)"-D( %^iMK>8%Ma̛s| [kOh9Q,J$匉*0,,t"s sӒR1N2^lZHuz4AsX</aPN&IL6#eɦٙ0+&vX+&bZؙT qѽ9ۊ|U(e$Z)tEYRu`_W W8cNd]Svmare./Yr䁑RU?NNNϟ]o˥fQU"i- e8qu]yBIVR)* T܋2"sQd(bG~w &M>&:d D1WxA戟%۝(; AQ_U3ɯ}wM˂\W7yx4>7 Č9>L# 8p@rb|0[G\%3`?2 VI,@qnTOKKW$5bQ8@#8o-ED{l[V1ٜiE\vtKG!\3W y2YW ~h*謊AS> TN^T>\' r$ R8#S8 @0:wPj'46j춮6\ 1x'Α/:<<991N$ʼnoxC )\oVYơ%] nNN, k\?X0+nqQh䀼 YPW7TGF5HWVl'JaP@G¢La4kerajWR.I&\THƑ:?0$i ,1vmtHs`ou삽9? SD+%'ύFW j;gYg%Ý?&/i[b# s3W#o.r~rb^mS$cr;̠hQ7Fbhh!+$nh͕Sc4!;^=S =g/!& 8DFVzFp R dN1"_sA5 @xnYdhd3 }-&R4+a$IA;7x޸L9D2+C:Qb {Ϛ GJ n7pHI㶧$9"lYJ^>_ҭ 娙 r; m`1dLYC&9py@ae- L}rmg5Ne92 mE;Ӈ7>վqgg!o3NMAK3As]V"Ӟ;}!N3J4;O6' ZE|-lD5iqv:b Ş:4DIfg|Ã"_NQN)3ĘE1P{Hu󖩤tfy'=5vӁ+7kK!um\Lz#J]GT H"QLm%O s)̛56nk_("*c*/q{Ԓ΃087`Ib~)T]#ͧ 1á5-v=ݷq~ ~pY;]1[MzIǩimE~'%ӆs6U@ʔfِnMfu2,eb!aIk{O>}-ow:֯wRh3D%2Klv>!6`"A=N +FMWW>aW`JN4ś۾鹆QiEh*gg̷pX7f"OJg*n2הК޹fJu/a\2*,UANߜop#| ןC ą}T e#|[2 c*%f\9-cJݣhA' MmGJiqs~;#ia8磣eoF,nr;f򷒛rJxrƷ9e/|P% D%p8}u cz%]$8lP:~[χYtf&rz~''ͤ^lϚ-"JGħ Y  ԼxiZ|D 1ӌmR&ES{2fm#ȩih`;+s`vہR7ǭ=eR4~Al:fG_NпNW|?MDsdKFK)t!Cy~>g;-9/JdUy" t [iCi=XmXb5ߪC_T C/p޽P(jWo#Mh`Suó&hu_a6~0O^Oӽ^“15}S!zRΐ^j^T}+rl~/Y,بR2{oIyq ?S2[ UIYm ~"(4cz9ɾEƱGiEVӀN"xjfE p웖T6|i Rh4۞~k<<6"#Xđw֗BBOCےgrksfAyjp+<_IB[v(u†B_MiyV@nlj)ÍL{nBv]rkfd1ieL($8M-I1 d4Kq/RY@K ={ Qfyya ,Q?'3ᆱ4̔U}eL_帣 ~xuо`@QiX_Գ/g3$ݏ\@6eMl,(eI G6SsBmډ{͟ [^иEghd =bqrL5݉e0 Q`2KT3Y38D)Hy~q;&Qy3. ({ȰKL wb[ ̟!Q%+ΪhfJ;1`.(WhӜݫJT*}d,2>K\yYw,1)TdU#Q""QfOcS+n߱Ԕ$:AFH͜G Kǡ0Ĕ`hϝBG:)NA`%@XS PKSH^Psetuptools/_distutils/util.py\mwƱ_&Y~\5ǵƑUX@ŋe&733 ,@>H$;;;;3 :ͪ)~IͲ8ESy{qyT忚ɕ }ROrIfʼs~n¼۝][7=iV6pr~~aK)?TnCz?c|qͥ%M^EUV$ $2H?ξ|?{]{1?e ^]hx887O)pYU\eTɇ,c?[x^45 5?1s&^@И7O`۷/_B%bO!~$$hJ'B;.zL3WUwLȜNc^9 {ڐgX0nք_fKkx,j lق4O3^gAQ|!6e\Bh 36q nztp{l%\c.>'7Lpܫs;awGO}<:ѣOO=}_?yvB/8}@dS)+MJ,au)FA `\&z>A&(mEf>z H&N}og}FnOw-G:OnE&á7}-J)t!C2~b_wܵE$먇 fhCo+"6y:>]}U/cU"_n=ݩ2޸2^D=?s`u&gd[h4bpw! VBtP}"a9w}~ ?d}H>ehu!hOP|y#iʩ H0~{m"ce>sWY1:W5#`2C篶0J3n!ͽQ /6Bde,&坆>D 0ۘ@'(qqԼ`}! *KA,!]$g=xLnwg+L-K Ӎwm,Y&]]ii,.6dy4M9(4XX7Ds!W6bNS '3zNN,M(tw8s(:pdN_+h8B';P̝&%;{JnLa9L:x^<<" *5Ab>bol6t~!Jd8^ {{RY\^oV8ir9dG4]̲i΁^5EyÙ/ (gn 'i#_nJ_lvM"?9`alҊ:2w80a^ȁ.4_J=y|)5<#ڨqJ'#v7ABua_ӵc鴟 )*Iejfӻ,XBf3G8`E rFWBx()pt-dD wnO-M(O2c.5]4' _OFtJ7)GHUp'xqCʚt$:T[yjKygNDGku'mdkEnkdxi,R6D]f%{z?V4NJV3 ~oDp KI).f-hч~T3T(0 $+Nv )P2w4sޚU*Y\'F|j~ `ٌ=,Y&9/W!JȚ"0iyrh#4o_;p|i,Ғ $yp:J.lHPx*< ぴ !\YY"Qno|0 ܜ,.7'* ݽ5^a)s.~}ӓr[5dT .1k1xq!y/Ym1HD-rti7̄ +F.3[.x892!'[Tʾc] ^er d H,ha?Zn rχ q8 &#!Vm2ș*z ξM'mo4A>htviaɋ^3`ֱoOplb񟞞@őU˶~'6*(Pxy-R>K5OcOFh^_wZDy8BuTqDT]œ_Ogv>Lt}u:87ëjl .L_2 t4h4VAR_ȿkSMU-CC&g\42t3(9w'gnT`aIJ(8cJ#HR'"e[W| sn<8ᐕFؘV!S4P~H UZuQo6lޑĿIjh;fJ z™zf7rkz؃5@},QFI?*s}?$O %hnlC۳g{>LGCmymf3vFl2~iH@ 1^,hWbg#xcMɩF0pA8z{$3[YI՜Ic,+huBSIWx+nط|z;S3KI0 Cv؅kkIo,{ݲf*9lZ}u,a&-@</2t(u<]Sk֢/ۧFWjrtzXET&OI٪(I7|FcS e1ҌVHEԐC{2uTAg&ͥESs>uG@ )'skwH2]kjN'TW-a5e |nĩ&5/4>buy 7ꅴ✸˹ƇϋH:?Ɨyi#\uQQj3k+T\ (c6@9Tm2Lk xv=|lY' 72z%̡[-~X2s@&aP >ݮa YUYSnEwmo3C> <Y~ъ85~ħ}tj RF*cQ&GH!7Z~`FD[%3.ۻv%d&!A?@좪LiO_/shz 'XDjA6\yn9Ys2'㗻Y'hn1^.٘"-u2fCүGheX+PhY[_)dF.Ͱ+w`cɄWXp]7FL (! 6 aٛ]|i8bB"VlFKjl3@ɲE4nEP-sڡ:P*d4v0%oG#v#^~=A)yJ l&~VW3 QBے4{: cNYN&|| WS\ڲ&3/\u1/ ?TT:/z-{\ƤLt2rx'fpV᝭_4<# (i!a^aO^.6RT@ru?u8s}ӎxA^C; |0>KwI2FyG;Fmv7Doo46#^]ÁaeD~s|=0iȇ<4N cQƚ8c, ǜ:+t[')Wf^mF(tH -LE2\\dZ9MʶQpC _y򖴹 /ҋi̽8T BE)M YƟ&/ %e`i" }\e"V"^:l+;%.PX$Rηt0̥x#aqJHv  Tu6E.jHT86l\KL˴S'3IdqXWN'UNN"bW4ḓ$-(^".rKCfUsHez# Ëm[=tɶdLo&K3 &-')tUML;!qr'pA4?҂$ǹQrׁ% ӄ#nTa8ЩZck=FFAq[NWeuoYoM:T'.ufH@﬽ꩾ-;[iCJvנ*mP[3-;XpI ~#?P4Yػ+VUIz]Қs}*^PC zͦ gmg6!pOuc؝m^Y١4l}Ѹ-%'ӄcC~aLcY>?7lCP)p9iY8x (w vPHpimDL|42g8ϋ5GPl38;!#vּn/Z2g|VR{j(`H蔟C5k B܍L-2,ݦKRYo8I Ș M"H/e>w\Z ď%us;r}9(xi) jX7i Mb޴M#.skiҨ\Z? ߦN'EVx('y칁h2WA60xk4j?yX5}\А0Z6k%j3CDRm M6 }YW%Ȇ&1*;puSRV%;)LGM8e#QvAzqd^襺qq'i6lT1ZBDb(\EmzƽOE/j$h$/Q_B@ RJ:#4b8M Žҥ(S'0MN rY +-#~Үߠ[<2-6(yud2-^|%~_D%LtICրND_qv $cS<*P{&^Khz?.Ν` z`qh.,=) H+$}Qгi ,B{vhx# Ęn*$؊yV v܍CU񠔢-frt NƉ-7ʴd0K9CʞhwWw/&1_5\~zD2q_ݞ5tfܵg k8;v+pFGPKSN32 setuptools/_distutils/version.pyZm_p"iq$WRN+.TsŎ])Ya3 e0t0k)wUZ3;@ox hS7N͗2ȣ0۬LUڈIk7ᆈ6NE~1ۢ^aza*~%*ih+ҵV&U>M>h<[:QFĩ4BT"1-re'#%0#1HRB*N~(i0-=~*߁y"XF?D,tҝ! Nv 2j"2%w$KHf^IMkGSցFYbqxG1O%Ѹ#0kZ uT o6P4ix*vu@*-]eB[Okzq"[G0?ÖbpFaȰ6DrڮQ4%RZІN$'~G@S\[3|vB+Gjȕ;Iɞ*lNߥ^7SFvݟmGS}J)N JM8M'l,>^)9KG[cvbЏō6_í\Էۖc0r 7br֟LO@O"L|Q|͢ 1V/C| Q*@}9 1cqDGpa">`}Ѥ<aGf&4&e]V\ (DD qǑ3ke3;itҢy-X#J@KL=$N&(+M#~F8KbC; 2q;yBZantS S!Е&~bBO^igXO Bu's*6#FNdR C^!0mr=9#H5RCP١h:aE,|j8``m&us qh iJdtY Hƅ0#m%H7G3HhQ='%)K)`2"0]a.+*@1\gxΛPybWA}6=U5DNfdl +locܞ)92$RNrΣnDC`ź!$B #HF"EaZT C? ;%x/6ԹA64c8,x&g69^owOB`:qΉ {\oes\^79GI>Z>]0v;*Z\EyZ! WqB%+W+B?N9kTX0[5pzR\Z`ʃF@بTDS5&<"aibVn޹Dxwo?"}$ O0! PPF٪GB~; Q&Lǧ*'3LEΛ5OD;$ot9x>/eZ'2鍨&)sgfXTjԿM31]L{=cA|ڽ]3HY|u\ v>ygD}s:^\R͎Y<'͎z6]~X Vrߑ wC&!\˅ǖnXgc#&zf'3~rt,įn,7}b>SH'. fb2n0Go"nb/T{,1 ]uOvk:\nV׼$gV^+ζjHʑcOs#z~-6>qms6-ثW= C!jUT-v4R/һ=*焗*bjvrA OM0lPhģ]%=RՌY\Υ^HխK*X? [鴵QԐSF@k :hJ.T2ĠV;n3%~xϠAsypDb@$U3ˋ"6w ωdԹ^$bP RF%:Ri䄰AGy#(h]!N)8S]Z#"c\hIŜNZ2SãصxO K;Sm1K5&pKkNJSs :zX0A {*d<* :ɑ;!\^$/mj<(Jt[D^NbQ5/Y]V?T5"#%&.(zq)ko0b:02r4lU;buuNkaڞ-Xd({I_Y s;m{p+#I |w-*'3^kBKKs圻R[MMm*w[vYH5'@} 3; 4>&SSHѫWcPchX)kWcA6pCX: *Tnvl 5[;J"yEI$Ypx~-/\uc֤\t!;]>9X~L 72opb+[]loi )<]Q2[4NM*I}Fe@m4͡:sk3=|Mꡨ%2i}<|:צAMa]9Q}QmC,Ad w xq|>qIᮀX;ߦؠrzy2gGKm;hv؁`W:QenvkADm5%jP-|95c3dwI"sY{. ;夅␟ӖLw\tlyf%y|$>ߪj/Kc|vbX*~+w#x0|R`1)D @8kfی/ej`5[,duXqw cxb8M4v=<ezIY^_;H*t 0S3Uu?J;IxV p [;!h 2raT9Ap;ΨWc|ٳ1 l]%Iv ,vnBC,kҶw FAQy+6r(?dN2,:ݒn/.Ʊ;LHNng1[H ~A3);k VӴpŽxs%@n"а{"%cz(I\,8).T9 gvab.yx^(ˈ }?)G Lɻv-zO(JӎAqn[S' $|ًA E" 7Drd{{F2 :F7Ov9gӗ~:_PKSxO)setuptools/_distutils/versionpredicate.pyX[o6~`SEň] aCv}XٴD;ZuH9qsH](iUbssGzkשdbToc^HW䬬dDBKtT8o?7Y>Ev 3 L,/hFE}i-򽕈AຨZMcY' &PP*R671J-m%|ApB; pJݟţC10=d]z6T̻9MfNJ!~E̝i忠F*bVMF#fV6b9ۂMCRP"'Y./ /$`OfW^s#Ӎd\drɄlW5*Hl]) ep 4 6ViO鳧Ǹ[瘞-/UkA.c{Sg"?ŪH wQWĆ 3>.TDƋKI}S,9[IV+D,ZVYKBRE:[A<fIu tW T56fyn< 'cc맪 {agv;^J|xh3^ N]Dɒ67y+no@r0! f3 cbXG?{g}! 襔 9D1ܗN[Hm'ܨ?ƥyX^K>3)?MϿ*alWP vWH Pt[0N)Ha c5E~f 1SPFLP@B-+ʍH t% .aYm V<\fƴ#a0|SVF-$BE'zLAVaܬ]Gհ?}%2{|)CNkwJh f#W;%!J*- үC;t(J;DʼN:=ܒC?R)%lFɹr.U$n=!ujl7,w4bC5B\H(({w7 {0 8-zH!ܦMH1,*5noMk%!G @@[aY >zj8eC(J:£ Ù|Lʈ#pe>3ruSh.?fF :CEu1[ Q& <%ZBVRqI%?Wjې3u#iOƉn,Ѣe8kʯ'1lGOm&-V D;jwՌx+9ӽZjv z+en8 i>nl?:6[+P%{zG=*aub>M'tK Hs HlWnuҭ箥n)gGPKS;*)setuptools/_distutils/command/__init__.pymn ~{ȥD窇ު ac`@쒟/Il!pa{X,VyFoG֏`h<=s K9-A*V 7Cl^;[w⥉,MdpiG+f}smWe"4UmAJ*h,R )qRtSH* X&b9D&>$gɅeÙM>Wiꪏ U,3M`|^l-X .S8ZCp`I,v{~_PKSn1&setuptools/_distutils/command/bdist.pyXmo6_qPHZmGc/A;`C-Z")qݑ^l)5ClsϽRAdTu% l~dlv/ 2P8rZy6u- B2}\HL5R2N ľTef[?\shVrOEJ/29Ҳ`Vl6NR*BBVPP[`Ll]ph$!b:[@,~@29=}4]?h`Na8 +K.( l|n9;\ݽYűYj^UǴ$F=;1~;^Q,})1\z͞q@\݁YS9xbyf_s p?Tz5T BCMkB ΅d{wj9yb Y@_#k;(8-&D.%\8A~D$JL1c1phdiaxTʳx גM9 ) s5E]K mYM2\+< hnE)"jG_)E"U"yߞBнzO$";Î.TLb: 6Xl_s =H>_le_i 3f{Ә5+5e&ۭb{h:}9pZ9P7hploWƐmq'?ѷ/G}GkہiUS{km#Gq"zZ1 &h0L7o?;럫Lޫ&ڭt4AV^pFi. S)8h+CƆRvZ++?is؉L^3́N}!z UWgo^O:B>`eyxeBg޵*Q 9ΐ4k@19"7fZyF(+ai W3dOӁ$ܙI;cm /<CE] $41ىDz} d] ާl-`Bva9L96l"XD=%.^ zx07pWM- <ۭIZy]|\MCR:-~s^)đPKSwq1+setuptools/_distutils/command/bdist_dumb.pyXK6 WlIv{ ->;0Nc[$L/)[~ik`&vHJ$0 3ilceavGUv*͚u%Vր=#!",!>jA@Ȃ,lZPU݂ncAT ,?#X3PûZc.@1m]A Zi V%Cֹ *'i]+]2ӱR}j `eF2涨[~79*{VUtLbNAp,10w&AtehZ.{{l>:p>vl T9KCOqr6e-";(x(6ɱhcr}8b@(mYneay ȊY3e,6g`&U/Y,s1_uSUf;0b+N_ǡxk?m_d2˪[ 6XQ01LpMEu"T!|*]W(yuc JWL%rSE[6OU~HT90zۘlp3R9;ϖn/AO~ja8W* f5N[Q 2x=c5"+5owhMk*^jկurۮܶÃRj%6Հnϴ=CL=R\kDe-*#K+E!w*6X!?\jڔ7rwK]2I{o"=Ia*!)mi~M}cUqFrd>Ϗ4n  nG_ ߎX[/\W iFs 5" /z3  {0EJ?>HFikF`IX X7As_a ?k>1S TMuݕ{\RlGnQ<{4No)<5͡|Vc_ IűP~=M;Y*;=7(ff}2kCFy~/8~{g T|?\vN]o̮%zX_(mGju? u/КI,MggJBo{HԎV0)ٴTYS෾y䱧ѵo0ò$ZM( Yk|<Ыzs3wgq0k+4jnՐdz,@kW=wy}=Iؽȿ z2Ji/:88 w.Ԏ,i0M☂S_(qrǦ.r prN5Rǿ#mmdKSu跜9 ӗ6CPKSoY"*setuptools/_distutils/command/bdist_msi.py=iw8+0X5:lI{It_GıDjHto?u CĢHP U[$^<$dIS:=$ #qG]>‘R,o2 d"|eI8\fq"'semp=bi6 0J31s? "2"CB+N'=9/f*4OC MEd"NU`.M'$ Yʼn C+ dWX"dнbQhpGpNd6XŇ6ބq2/EfD ; \ut4s%RF%2yU|&rgϖ }JKA0d4T}' j>"|߂K݅lރx=)~Fŋ^DP2Yd"X :-)(}7i#:4k &?=@aNfrQG b0qF*gO&)|}us:tGyf9o ]KL0Y8LҬe@rfm)d)+pk*䚦QH |؞]?0φ0~+*~<  %[sB?HKJxoIaއcIfa$z kQ aİ觺M67|@2bw\ڞ՝23p&?F>|?J~vE6 - NF=#E< X]#..߃?H~POvmED(6&`/ xM,]W5 )*:IdZqSk@ ,x"N8$E$n?1@.%4CyK#(JV$~&[S@Rc}`W5y\ObbNTx{*Zbn>U0 [U<<kȀ_~glğxֲ"g̿ {yȀN+//G|c|<"iN"ßD;JW>X w_!6+/2]D4?$WG\‿!=Z[skZ[sk}n}jAv~=.r!F3ςL)lE+? $H4PIpB:x :9^5k!?iTWY {TT8H;Mʾ` S*(?EB",mW]. .#ԊiEceJ+),E 4cB }d9)ɾ#>2=ؿ RN 1 :$x%ںf;)O~6m=F^ ٱMqb3o4^5WCS )ж=y,7ˈ$ALT|@VOn؝E`zBlI Us:˥0tq4 `@ѕAsgwj͠`aeJC!2@ jBQ<|>G8h zūln/TX̏ͪW~\dz=J~ PO*Zz pU??K[ \H ~,"IYO<"`tH65>xZ U=,74 {\xMPRA]kLQb07DZ~ AQYR<5L3Ɣ9{'©S o;8# G -PQ.Um#1ޖ8#(wh[v_}'W(iesZ0;JSb*L/E)Xx0:` J4I|K(@ݴ]wgU;⟎3Bhܙ0,iC0*)郿RrfTFH痸MijE쏔*b_?MeRRsLP3MhVX;A{;A#qyuxhhӃ;NwyBCMu2Rz\ЊM_A .t28ݎdi$kl\lXSQC%aDުU368uF1o]:'78Yy5Ol~NhTlZ6$@DT X8L ]EuMn'E=K>xtSbe"뇦ÉN໮(ם 0_>oo_$ {l}Pf=A&Z%\Z5~G3ҟm"3!rAȞ?JΒE)F$YQ^\Pjܺo?y0[&Cp] 0널8v/i.;Iy*o/rl.Zժd6.(kRîL`[hyyYdf[DF2[[^ʸ&[Se0pTsQ(AYZ>ᬬjVf-(|}{`lxǗoO\\\ðDśpfZ@.__9~B@jxE9vzCY]^l / FTO}zv SHjO]+KLr1 q,EkM-l"BaIkS[WE@x3-Vn48|I]-)7* #uoE?\݅Vi'Q0J[iZ^ݸN*(r8pAǏ̂L";r宕\5WrӏL!u'vQ-I} w@ =< [u7-\uʲ:b6_(O[W|s^;|jۨTUʟWVӽ(%nwJaHa0:+[-=,s, _5ܹ~gKaVO{YiXu5Aw)'aIbKZkMx7`\[`V+p=^,$.]*ejܸFsLNiϏI"ݯ{½ J_ S2L`s] 3פV B15TCPoW*Ӷ1i] ߌx-Wڎ;8 •(h/wZ vQUn0z8 Tzt\Lg+ֺ]88tu>Fj]o..~6x޲1\ftl{Q-UģA5:ޟYӣrT`&:SՂY;.jVnA)S0c7g)N,DtRw )-(J^5ZptŸaNB\: ~lV FKѸO鴥R>e~EW T u\V:#Hsm!~E/B22.n^an0NRLb 5qG5Ɵ\*v![Y8Eܷ2IO mFGcIaQQNE, , ڲWQ ((֘KMTOyH U(%ȫ=J,e(ttC>ʰBcrT~@u ߑpU#BS &'jƣĮ(Mq. ^FR*[V~kWѮ x24komIx!_.uV $-f*.Qg,uv@+<3zhavt Q Hv\Q&5]sƉ:>hnVkиcIr&lQpH`KyWc7|ࡄ8ũq/ xc8˃"ZKYg bU4* foun{BT*  Z mߋgé!|ʼn4CΪmh!`)l}R=`|w5pSLJPiX`r)y0O^>#X7u*-ӭ-x&l `qfkbdFVI1vY³`Y:F~owx(xv8Wd]x.(^ `wZ`FPb̟VoυL٘Qz\8ABxX{!R@{U~5fA?s`YJy 0:0 Y l,~c诳xτK "r;ƃkP,aև֙ YhA9z ;!^ ܁M׽GX CANw[nVG 7b=2U=)nP!bD_ȵ!S~ȉQL0Ed}5aЩ{۪j2i[&awgB,ge2tf9pTrpN+ݝnBӂn$z< {:b=%\dJYM.z$P!AzӖxm4o_{ɓ} ZeQ̦ILKCH(] s$#{̆6v3(mGN.vF_5 hQ M)Ŧ!aTކ-:go:\mBѳ嚖ǿ9APNȦ2[N0+'f4%szQع=[ө0KFPmXt Nq3>Kl{9e ZQCX#M]%$e`V~ªFlI@š[xk2?O&_<\:=>}I*.z"V%.ZUQWrZkek4<&UB 1ᆪ "GI*Vo&9rgx$?yVJE_ *Jz\@t%Iq-:~$x)/GFz5?ʞZSSMi|/$Pv5.R^-< ]!^- Fd-7.ek%38UɹbhEحx7zy, ubK+V*۫/l0_"ԤE9. L~ٝD^0Eku0 T oS ;NeDya[?D>B:Yt,I #|IBPMcZꬱ1Fv&F$@/tw<؅2<^Uc~ $$BQwxiY׫6_~~l!>&ʕ~U'3K<;' u&P򵓔d&];ga\J\$$FˢAܔbN{eTηa,. ВO  wNr 0;Y91yD8?ӯRFMjhHXkXG}ZT^PWp^d7vv0Z&͍7QU  4!D+*-`>L^5̏ĄaE%:3^hs nީ;V^[댿lwޑR]"l#)7]Dg]:pWu,7"0$\t]O#Yô"A! buB "T97nh׿x ]e)Ep0nM~VR-{[Upu煟xOjgd|*2++=+662P*Uce֫Y;me^6> m2RN)LKr0h+ x"yj${Lv) ?]dGKW:q .ΖrSN~4Q/q1 ZxU_m C?Z6K2%m=`:6)f~k>ޫ=7wOo,X Sm[?S#]u*ވJ9/+i`dhF ;4330LcD10LDq<=1k;ЂNW9.ѹ0* ăUlV=!zjȜSJhsl+9577?n2*( JeۄgXz ~%E=e\vO9AuVǷٺߩ&.W`-CT 7v𘍚vR^|\i% > $ )3!ټ℞Uow#W,l|yBGe@2RkԼ%?u(?tȴWw^$YTL0<Ϫ|2$"/kV5c^U3V:X鼕I7 f`7b<į Ljce^V lּ]ɳ|}pQUVgɫL {&RQF8M0' |2⯼;3>k߲ >%ܱU^2"dkh6ULC ?1Lb&Ep]LX-y& &wm-8 '/ 1 }[z:kW@hjL *,TfϑzbAy,B\")z$Լ,JMT.8_r$[hr#vB.& 6\tt)Iܔ%lw\L&MZ88ǬkzQ$ al` M 〽,% xȦydJSZɛk@1MۖQF d#P_h VM$M#Iq@zƢ4YoE0gV .V%r A,OR\C94JAm#9D$Ys;5V'}I Ps dyI%~du7*,y\my^I(x\Z֘|k5/$JF΁<[x9_WFvF̐z7m6>j@JFU0޷E7#YypNACPik-_SHT0--M7Q}Xͭ0%-)E3 q5l~t⨈IԸ7$ {;m-ڀݏNA1X~|bw+xvԛ,3 fU?ݏuVrv˜­oA( Mj Pd@LcRbl.f31Ai,\q^5q]D"5X8,XTR!6Fp^8ƫU+|[$ᇳOồ׿}&.@#$ (`o!e/~%%١Om=z1%M_Uv`@_-;T ;ʊlteX_ص> ,C /;;?>c=جVk?ߟ`N!ӽ(?>9L$T%d*ϧi;},ӛקw"q j|v!ZI`-DqRũ!|IjM;heٙtY$~ak<#45hj s\Cb5-sǑ1$5XkTw1'9rr#}*?T% " (Mq%jzb?eՐ ?h׀{% '|)jW6y(4Vd~2E/lJ 5^-HKǡD\oۤrχ94c dx6CI8 h=0= " e"hq 8g큛lFH&@lː"ޫ,$ֶG'q,|; mxY xe )J`7bhƵSlbGKBa `JO%vX:ƣ Lvy#2 gA E|/6y5Ǻ<|Ao2 Us~㦎)7yZ9e]'AWtw*pnliSWVKv l^1Z[o3Hal_2 j]{Rq%BdՄ*j;M)#iQFB~9^'D}]]N]`)Ƙ>vCs$C~[[ӣq:f5.*+]3,Rm<#0t8l-+@]nLGc8=χ/^~_x ުڟ"2>BԟRWq7b"L򌽑Tسf45c8R`.d}ߏqŷy}[{Ӿy2/Li[Ht Ọ+ dt |r`՛2:БQB0cR/ƪ3H=QYX6Lwñ.=W42l_&?(TWއXy@;X=n l{xz/[Z}'mp}7:?OC`yid5_ "8OUpӏW|5cc$p~K"?~|#ȏgo k.,/J{fl9gEH6/ul[195Ahz({O,ڜ(g>21hA5P[=],H 0^sGYdL{kZh-C狪,"ze^iߑvv |FW`M3[fFnC^! -*NɢG$QJgEא!Z\_/GP|KUne DcpimxHT.Gs#kafd9*$tp-/.-֕bV(6ӆ;t WWal $pE$ /! cVA<怸> :5jc78Vq@O(QvI Lժ @C$[s=XUR = AZAL o3#7IX~C/jBu>ԫX:P.!0nnA\)h䧭e=" (jF3mY|-f Ov4vzΛZb$H5t,y\ێ [,w$@ 4f? b zq]2rwdGp]W|Uc5 Fh&sx+AfQwЀ-叧WrۖX fWHf*]dn ~LG!htFfN "BV'ʝڻrS:?&UaGĤlOe㰤{l4$_fjnEb4eC2S{ч6Ge1J"%D-[hE餫%h'$qT"Y5;XݲNuT7w-l$E0{}1X.JRѩ'##Y.yQJꩶk2C7/͒i2.L ]{OԿ%>QxQlZ% @,ot!f3m5ێv(/e\GP33)Q% g8v_25>k ɸ2}߻%r[rdןMȱDwYvNwZYQ0խ[sEJgڨkFs4LtTs{#: +*c7u#| yK"ˢ.]"|KлM:--`5TD 2KDZPNXbL֤/(z3/P6kp6=R@-`/V}5OìhEm\ʼ-駗>Z86PLL=x!I y|ߌe0';Eq5ľcۋ:墩bO~{:FӳV#V@(aI(, 01ŪeXHo7Gq"*BLɭƯ >0%u./^Zl,Vu<7U eSTDd|<==oM] ^b-ĥL9:+JnrWS<sde& ,V(}juqYW2iRU 9JVoFᥠ3 jh]sf]Z!񎨺teB@ FހVw rHZ+uݲ5;#}4Wa5= _C1"0]qWǂ|p"q۸!8W r.6ݛ] wM|H@Gא`+VdBeΉi_}:Ɂ|Îp&d$tLix`DLrƲZ;{j_fn yŷEwM8IbJ{Toj  Wy@P@jwVY%T}ciwj\0#PX#9mI#Gx4C 45R4yҟ-Z v6ת~h Gtj)rw .TA۫MS|}3,tlBGδ[mPjh x@خk>c5^&:9pw(0{vkoC-K <[Y ErFh0!tkBӪ]VGtyz$AWps:sB\۸!a_9`MQch_OC5]KuWhm!eHmXa,.uLkqY̻jgCt$n232Mxv-_M˸}ɜPF0jt+*NG5MbriIBgj]_}W,Af@v!Tx=[cz(;mI;@;q^*uSyy~ Af׸Փw}cI۷ˌ߄5 B/ VOml,G%xxb0Ay3yH1u^O,\1mҔY]FI6+e[ NBDajv zj?PKSd-E>.setuptools/_distutils/command/bdist_wininst.py[[s6~@"5#qU%ԙ,V%(AI>c+ g%gT fǼ6_7d+Pf#~8(UUb/oE(!CRRi71zSneN٭P`XY^qY mquvU%v"'嚁PJf[;AdHZL 4>$ W x~X+jr6DHkpJHLӤcU5C<;4cY#دE{B )+5f$j؅^D"Їd1eZ\tLG+%bOg V 6jvI*SD^nʜ=e< VA@|reYpBQ波,$eXxuQ埴|’%Bհ1\\YrhWlݖUeZk= ? ^0:;wzY61fvmKÞ*<V=)+Wq=@p4O.cBYC[_r2>K\sM  3Ls3tZl0Dp+zl ܇q#|̽g}^O|2ˮԎ\-`!45!#0p\h n۷qG,c~5APYV O-gV5k9ˡFhxH8?ɝ8.gEXU5qyuǏY3bdpZJڇaSnv?|sA_՗W!a6Di_皉:d㷼t,!zY[ upi!_MmXzM%ZT%{>yrsq4Ji7֍rX5In"c\.\c~}9w,C$wBT,1o|+9hNetN' Z p:@2B$| L=E}PeQ̅CL2q(5:#|l7NlRlJdFݸ̺+7?G !A40XH ]Й*/TFvt<9) s5Rsvp 0 ^$kJE!19j `䏈Xܑyk  jxV1uP.ԤV3Ét1M"PS˽q&Q M[1焐-:)i?!3r,ov~h+ ZcbdWUFEӔ+80ˢ, jxsd1C +?QC2,Npk6tEjވ}#nj#`VƲɡ(0gN+r4"IP)rghroK@k ,b1!]F^ц{L(!pýb `7=gj,mrs'}AOq Ձ\kt.X>j(&){ 29۫s# "ُ;8~6& ^W-:# * 0+#bޟ[3lQt>EzSm:8C6,lGA4z%LS緲,\ AE_˶;M,k{=9u]G=_ CO.bCןat[(Dp7UҨ-5{r<}v*V(\7utcYWj#N}mܖBઉٹ/y{ +9QqcqWDGs h?r8AA976t@uF؋+7ܞ0A=LAsDkг#yoj5V0){^V0 _jλyCz*u>[ڈ$d֧F#@'(F BVUĺW ޲,Nܸb1.Jx-5&{g *7`iW,0[ io,>*៪eT‘vigY7aT&;8"Gȥ'(!N%T˹9DB&{Z\^ D-͏h+_uLe-9.\hPwW'9!{H`%Enb.Z\=mѦfot$:Z0fGbu< :O`SW\ L9&APn|!I:dcCaLʀA 鵬o㎞R.sYPu^K( vi,Q&z ~O!DH?1 <_A-!ѐٙT}_oSdw KSN$6l1b3U#apz1 vKW 庚n'JqW4e7R99<˜qu'_+|t,;T 2x-;Vϊ찑"$|[nk/^}]ET**Oԇ=3Ufd$fs{3e@G|>`;eX"du}{^B%j3>3Z*GC'`>[SC͡⭥$,DzQ/{y݉.QPհ4s}9$@F އzh؉pҌ+]Y"9q8;ǔAkLuvk.F7'댊Jop[y5vAފ+;Q}LBBOPmjɶRze `h`t َhay.e5`h6l.aX.NM-*QlJxÏb?Y  FQz{VP<Iطt]TnPvYa % PiL53QBgVmhqQv]1ӑ드Vw+T~v l}\_0wP3c-hưbxxY gwJb{zd$us/;ыU4WbQ2쵉jiJK?җ`J/HJ{~9&5fWs+[ƙlಀ:N|{}C~E/7޽߽ۛpsqh[NךyܝʡzsahQƒ1/pvNuh aK @vID9ȝ@Q>˲Jtl@^КCy"\kMwB_hqAm2W[V ߃S[fT?h˄ACC(v3G6|7 }?Y.+4,P(x\|Rld3)>9|z-vmФ qD{ފcw=3O,۵>x|с{!?trk5hAcN39aAF2q![,7`Ldpmflz~>n!axNؕFJ5\a]G$QI9;l9ҽxj4\'2q6C Ey|(IWYL(1"kbiե!\!}}JbM1\L"8ȢI)539'Љ'lԣB>! % Tk%0/` 3Kj]D0X l],#2;wXMh& _3铕E }تCO=Q-9!p2l58YeoVݚnPE |ciK%V͗ ƾb#r6zrakeI+Q2 sGC`?iSEFFd42=9j"JЩf@&=rVn1iR}: c0) yZ@T{ hȣU?O9 fOVWLO!)w~x@r\VÁr)_f9QcP1PŬlK.nl?>f^/ y|j9;r>1fL[Q-!7 ,1=6 qvN|2OyU~Qlz f6T>gƳ{Dg\EV.DyN;4<1 h&PzZ%hM;O3ƹ1O7-JMJ 9CI`L2EKч"UO} k^$Vϲ{D_xHi?ռ7Mn\xhE`>#;́iӃz7 }ˇ?0I+Q[/)O\kv`0"LaPG*vPS-;yZrI&lO%%^~.tMw!Mh6cNmN@h3 |Լ5SٕShɩ#΂A (Sz;zES!2i$)dًN 4t/bG<=s_.*RzՙC衝aǙWA;1oY_PKSv3;V+setuptools/_distutils/command/build_clib.pyYm_"t:A>nm P\E8JJJR븿3(QMpky}fH%IR c;+j)UpYmNնEZk0{0㬔+*3zKÚe0!˺/QUW#!(ZIHLЬℿjAZ$IV  ls5oڡT0-[۱vKr:'ӪA iOIetr4>v8*QAkXnEwR5N=N`.߃ VHRsgYK8=Q/ =_fޡ@@"I ;^Z*=/KՑxJ;(yKu/dcnp!QJ@1eID,P+\A,*6hZ-Sfǵ֏>HO6a9Rɝ؇egj`ߢ!lIXjUtPa\0!,rK@e͍acBf[R)1\ܳL'{PQΙă*b{HS-|0Ȑ_4PĜpomUxx-FS..`vz,:HAI$L%J+@hZOaKڴPe!BɻP.cO{m G*1bE=d,srYso|tM$D3%[,%L@)ފzS,%lDlu~ika3e6-mS"5܆7@LT8͔Ԟ2^("K)"td}q䜎PK׊?$ 2?PH۳I.V>~Ͱsݘ]$xR6ɬm6kW.uq?|X\lWD3yBDqe}xq Q4i*gu_3~u9[d9d'}jgm^jaY E5H2|nP1z sa=$ʒ\j뱲FY$_B}ڌ2L5:d,Oܸ+u7%u/;~dN^5 YPћ~ ?raklH&tY(6vÙ vq*dr\M<'3^חdΐE7! mDEQK]">+C[Aҳg,Ez8]#Ӄ"cݜR

O,b%r|g6f9}APC-4fn*:ax/UT cPBvS1v1pd qU7Ȃܮ([00/~ aB數+kd}D)@v# ؤNDL7FzuXAOkW7g  F0AlwIUAvmkK & )C(uϯ[9?4Lb.d6CRHhW1L8ԆeEYbN5h΁8Z;L!|,[d}՗[XVx+ڜ(rdT'@ tL ִBJn 9N;YGbr+whiEM_]Z4{T"Wȝ߷YY;L["*G ͍y6gҘ:@ʪb,%:4`HfX)luw*d  ؃a<æu:@8Oe_[SB8˥$) 9MY$^@Jex! W6`dfD23Ĉ 2%*-Lt6@FM㷒L}xwS69* @kȺ t6]7^ߡuL)ȧx]e w'Qb%q7rS cPJԁta-}xʫte!JF_֫j_9@K9j~\'7Z(B6o P_qX`B`@BUy-pB"Ub0`qw%!bE$oNڧ(7sy7!:&iĂjMIGP|= } ؍3`HP eac桵 KP, $@)U셄I.@կj+ᝬ?9fGG-j#r 5Z= ao ̰a,+7V=IT4ҵYhy.R VH/@/F32+DP h/+0Q`e[hM[lֹpO5FJ&|~Qw$f۟ tFcYFw ZZ&PoSh L /\WBh|ʘOď(;k&1Q\k)E#[d3;0YgWUn4$ehPLaߟZFɜ!N&#׉)RNN{ d^ЇPeWS+!9,S}N|z\۲y%[p`K_xHx -N.YFv.ߚNqdjOM4ձĈ|PÁQ5+> ZBeOUM0;ZH;sS#DLtthHfv%c[xsYIɼ+&];+-Znн@!BV!mY)TA瀙3ɮ=3 c79dw(0w=}6͹MڍTC_EiWJ \׺h:` kIaVGJ[:$ӒL.s7K{C6C%ā EOX "G tO`"7D)ƑAbI J A~]~+: >PP@t`-nT?w#@dQMOGnˆ#4qFt!Js)/Q8=2~ʋx俞 CVV?q7PF6]Ĩ9O640`U`Vo !oѣtl6{I BPS\E\I^#DhH7ϒȶH֦p)|Gm-T3yun hF 3R<}L16rܕGHt6J~x#mF vb Rbh2?`ؕLZO4#?ɇ ql ,cg2=F9HE QI Hiq8^c-j1 lRH/ EAPJ5mj wl?fҁwE FhnBn艈@Pb< !!'Hc"οb 5 @gF)6<)5:M5 f;ܞ vn]v0ԝt^#@f|L`>.NMԁ옿޷9e9i%wS^!y9)oOm:1VTtMzvi}}a0sJ%$'3LDR2XHhi (Q#͊TLnDm'}mМW7w)Ȣ\WMG~!{F+"ձqKJ\Z+LU˚3hh#X\kY(ӱ"bJ O3ཊ0jE8i&+i謭Z ݰ9ɉ Uq'P ;o&%so8UwZwZia2Xh2Bg`Wapۜj|tr?ꀲ=ME!\H[q'0~9WcHqi42('ANDȈGlLHL[B!Ê֧-)g%ouӲ46yW0z4Fi Xjr)6M@4۫:M!EY crĒO|F,qlp Oq'֭p2p]CDn*uG wlG>$n G̃w}a934_}jމޱ;ec i7<c@F"P8X_/@dk *#A 9&]p~n.("u,~:v!3v9#'ECaK>x=a1u6%UHskO} e}Edn9Q?Tr>z74( θɭodclȼʢ4ykd萷sGHB"6p[hc{3wBcq^ݻ@ߵc&CHd$G㞪0+P|<QbTW4CD^OěJs+Q;A.ҹLEcGt%k|4Eg=wIS{qpqƊSMw|vUݮӉ8 2X@!LtρCqqVNffiMUK`k=`<_͜- "Y5EafH%Ni8+>YaJe8y8d2(pA'/|0qݜ. Wtl/z0~>Dn7pmN'sFT 57v`hGt&ԌrQ&f{~Y0-}cdNOeaJ1<"MP~t%t0N8-~kܻsv]:Kybjk njygN{De fc1{3vF)e~mc}?@̉xxC9pzMhINC –K$C;t n|pH'*/gvRU_L믦 z*i߰ d{n>_O XWfFBй'MF P]=_K>IhaTuDRlQ[r倦G{L{"=W1"B7vd2 v TMFP@Xv{0IMe;`aR"zs5u 2i ̩cW0rn'E^܃omxI'9P(jDL7Ⱥr[i,jHn\ӷ]TRBjE,Z9dT/[AEgO ađbwM/ljW[_,S4ˈ fBΐ8*BZOZzzMߘ(_9W#%ȁHib򰛀IJ"X$GhuXt:*ãRZjx ZD\U`uP:J8<1^ATJ=vQ[uXX3(PGv  seĂ,XBF6#/56Cx~K! ` y O:m-l33H IaגN(swg2S%&RaoV?8zOp?:bipaRrzJ 20q]c[ΖQl]ՅH )tB[{ub`*3fVR2פ^sGf&izQRBSC£9@bC|dP*h ֖D1q׽gAæ3 P޻F욮C"[6ABc)eh \xt;o˶ɓAs4R!},7B/L=H͞%te*1b<|1%P8%|S޺=잛W$5#h˒6Smf`'v[.&24'|x;K*s7|"Rj8s.*#`3}, F>|>ExCa=𩥂/ѩ˦D<\`qwYSA{`e3ҟ+;MSxG޾wbq V z[VUd#`s.ԍSǸtGVq~A{O;uq_||;L& 9F̟1Ȥ/vÅciו4X't-P*癘 F"H1PԪ'!ouк[ٶXW`n%o6Ìf["`tFwFY6Qg`S*|TzEnթٿGdLt M#UjPFO]/=# M-~:E4@(y/7R[*^@2bIסсtoHAF>0O(LYt߉&`s6w6E)g E͟y׈WWSX:FP[ 9Ä?i.Xw"9t"vt`St4yeF.`JU R KFS& 'PN뙍czj~Q6G| Nai%DV9\qk{m&,PM?b|uI %oԛeHΩMg]fWvHjϒa(1Q|JHkߒGO hЈUE]_ gq"ڸex\ X~]=9ebMVw|W_LT-9|mQSD^Cu5"f숣tj_wlv w3NF|OD{,:ϊ{Y'CVTUOsK#}> CDhED s>!H&JMԺޤ|,U5"1:4 |+ɘp~ה?'bɯK|A tޗwǠ@w_]\Ϳ?~׽xNʚv󸐷wrO^@}ѬeSI[GݡzA" MO ݾ>d\LL,<+t3=ʄHCg)]_3iS2F-D?|}[܀C|~NJj79zNH-eN.涁.ڦNfbxzNISȯ" ٓǰ;3|3&ˬOA~)=xxX Jz4==`Y9|βﱹ26H{0Ү P%ّTtgԽN:r.r[$W ME}DLZ#BA-Erϩenn|%:k!DM^% ggP2n8;2(!pМG'i<-FkIb/ٷϧœOtƟ(CcQL~g̻tAB` %N?Cζܠ!g?G^YH|0ȹ hSmNUǵ(rrqN߆Ɵj8z:wg3sZװDx{]9?R긅lWP*b?.~e kMf?|| UEsVE%՛w~Ssb3$Vr=x]mƪޮ՛CWhɆ`_,5cRff%IruUX+O]mV8|+Ovn7WWeI/T} z>a6E?;>qfHKXWol,a,1?&=<8۱eE $V{Q mEl_DL;2%%6]t ;)N "9| hj ?]NskKMnn+J>ýOr+%%t=Ӄ9-߾feþ:%!|I8ƀvko`ҽDjS˪];f?t2w+=nڶqU_xOC8⊝0;Wcn%jx r5 dR%Xa?j>iwZ>߉K[>>ܨ]̟ 1+jzl`xՈ5?z07}ȟ8}21'ϯob8᧯6#c9Þ>eP<1KV֖LkA?/WQ)gD&mj4U}ZT$`03]qY~3tR̒nm⦖Lt6M]% Xn?0WU1g%oha(i؂Béca?ZK3Yʹi!yKZ)D99 Wi>|6R0H]?OC!`ٿy=/,g44K#Jɼ,KF` z>I)c~@ݝHlsb:{NL%o؛o~ _ F}0 @M{xQvA:*`PRAXs g,  ve)ZP/ FhK38XjpCʪPcFcqr/ J8u0*w$ERǾEqNBAS*уz˶LP];$,ܠs:(o?ڑ\#>B!B~(PÊjAPբq-@ޡU)5ՇDjQrG`K#3%K|1D9ECCntpHA(Dl Z]J~Ԃ:'cU׀rp8l%; >3wRCڂL\H3)2u(GSLW(VQ FIq&ZWn#rlv 1B]]l`BXjɇ%_R๚%ԉ{?b:R?dS̀,dF7)!A5lAf`fkUos'V6PM4b)43 E`y ~ĪPH>̣ 7!n1܀웶@pَVqj̶% AOk썶EZBHev*액]] Y<[d,x1SltM4^e%0Gz됕S#9LÇ[w7tơٺklbop afDӵKۆ޴`3<^Xw*(O5u+0/hY \`_ _5M3(^)#>BC0]`Jԋ mB--_B5ŬAF<J!:L>P#션vX~-B1)WbШFY-InPD\0aUdeϬOͶIx9<7\B^8VLuuyjFyxȪss'df6L"donvvͅVoAJvECL,"iBl3??Cc )4:@>E h~Sg (Srrm$yP, \U4)kw$G*NN'P;7#`&(c) a8 <l.NTlj#+@k[X墲 ~Vm%̯Q~};h}>&gM!b>؛)NpF 00@ē-Kx@ZJ *U (`{ލMB/.,Z('lߌRz*Jjsb)%e*x`krھa/ǮSl_ ղPu-Vg@E |#$hsObŃ !t־ddɉ2ej^x&I%t_%L1UWNQƱOk:"؈aH(Hj IDJ lY/:@՚`L5'dݭoNV5+ e 򄽺 eHнaouuEUgePdAȱsqǡsa`\ r;y~Mc:/kG3 ]zOH/$t^+[|Do`Gt=*5a'8O+]2(/CBA/aZ]po$URC5t0\k_@r]F(gNF>{D (έ6\#Yo?*!͸[w=% 1Ȭ7Ǿ_ci@@@+e ߅S`i >*@j2+^QN||SNHaS5)Ke"`&kڐ-@\ D8UfRã%cLN|f\u*X J':;U_WQi/T i, bdgA:GBjAC4-u":&>mПybgţԡΨ,38`{7-jbgW'h+X#trxu,ZTUԇV~=rO t#dPU$BޙP>}PѠ& -ACrXQ%()ܐ_jL@J#>\ !9 kj{sMw8M"Kofm'VPI7:NK%?~NyA_| 5: C?/: Ӷ8“hWggbx+\ꮥ5W&i?gBlO|ZX3,6ʛ;Z_Yy e^ѸVJ%h hO0WAJ.eG ^:^i*he#&s;u1Y2Dg5~Eb:g nI9Ws!h,y*qP6H5R)K&9Nz?v([\Mvjx܆tIU沉btv`pWv. w+Ht~|٥2s 23yFlN#hd1WGOo!%C_n\]z3XdUpk laὑpRÙ#vaϿ@d%cO»&wg'ިY^ Ok[Ӷ$f*cPW-w|';17L5RM5ll$WK~wu@ϩaՅH  -=dJ9h{A*ߵWP2{ӡJIrt#’\d[քA%$xHcK+3jyK%+kYX3]mLlEn ^6uңn_ S*"qq(*Ǜ:ƢRɜ}H0i}ö\߃[*ssc|ς^r.1(r"aWJ*IUI'oKkND"EJĥh[mu%=tzfQAmk`=Ն`]2}[ ]W#[^ky~bдm82QE*(h7܈oE5 f"^"O9 ]-r&r=^4hዣlFE^wGlSejI ӘEK1lξ)H_GO&h5D\JeLK+۪Dn0m1b TdͫIЙ0cBݚkoQJCVP   Ɲ<yl2⿙W`PiDqh@>x6`w1et03y!0eb[}5o^ =v>vC$nFmн Vw<Bz sPѝVe|2Ԣ%p:2OU5II]Q)mnhSYzTrFnET5d`:F3cnPO64TWqx]zy;=ՍC`7o^Żpx"5:g4戺 hhxڇz: ɽQy3\L#n@M- w?,`%<@JWEnCaP4CipwZu7K)$fݳ{S^O=hi-Z3CՈt,O"HW 4ghts5>.rGN/55̖DqLf~YYQN)3WHaCpMn׷|+xt%•"PNHqyosf4ies'E  ӣ&6JicvH_Y`pfR⫍w--Vf%ӌ4{вą /UHnUB~ɲidq^CWZC捷OB CS f?BþL0G1k# J ߴzR5dP ;z$r(-gy,фmř4=*TX1nCk5pme΢d0 hzi*`"6ȖL0U Q @cQu&;Vun1汙8½CIb|dc䘙Uⷘ aZ^5]ꢫA \ld{㋞Ͻl|Jvկ; E )g vLCha0tF>Pm` IgSOi T\z.g1RJ d\(hNc%@ eFSLx5 AF# S:"F<SV' y=F Kz)q~+1Bgy -״' u}s,PMS]5 7:`m8T!X&"?Ĉ&|qd8No^5 ]J07\"~A3jQsYl=?Kf35O5L dZI1 浓t~DLOL$ZYJܥ*̂-2eЫ>.əZrF"ٟ NGU"9v|wXAZ>@WdI^4xۦJz 8G5A![zqp;4,DQoY**nvnR1!7ĺl@ ̀ &碨ljkQw&D.tgssv0sSMʴnnEj?φJц5jSEwJSs~,~fObDf;>"A6'>D=[I=[SEfC'J8HU侮ZGIg2m;'/!m7Qqۓ7ڥSdRij̎(WO߃\mA+Wf*ΨF6cPKS,V &setuptools/_distutils/command/clean.pyVM0WBi,pA]!> ѪrIkpvXʯg|9i>%73iʅun ]ULM!$\+T΂#|q@=>M$Wg DPpVۂB+Qbm 0I"Z&.nCk~lS3X߸uqRZ-:$ZmaDVpi@SCB卐|' EՁŏѯE _Mj؄ Nǒ5ҽlmFl.WGRV8!*;vڌ#&1*]?pB{i0nȔ!!s;c4S[҅ -=%e6lM[A6ݸq+Pƺú6sk3Wd\_]_%%=jaQT+e&D~j>%'^ֽH!Rǣ趍"8]C|@v}eФIw󡑞t؁b('ф8v[^OŚ 726d4jS'y[KnQtO52K=dCIJR%M~ȕV<+s 9lѽPZфQ7E=pM P@uxs}N6^/QZ`1ǒ>kqblگ8k|8ogFo5FD{_{,~8=q#Tbwgt 3*} 8!f0(k6UFE 39McBzюAvMWa4= |m?.PKS7\=3'setuptools/_distutils/command/config.py[m_(8Nunl4 zvamVQZwfHEi-yyf83d(rvm^M*˒Wqx_օ(E*֞vb="ffF8[REb~x҂+hOe(V*zJLu5 L"yJu`[aUY)<`+g9O9Yٌ,30(рLFF0^%*SՋ3SB8yC䁩&D)L` 8;J@]Ke4F^ruX6+TdD~f"JlX'1١ ڂD86(eܪš%!̐k-xh 0,({wj<^J6LI;2S͏}۲_4lRWJAٗ[i"ڈ<䉃 %uv%07/ԗ6' dXo~$Tl^tk(B8z.J^M lhwi_,`cg/ `KwB܉h Tf}bTA&p +&;ZڈeCpS\ÌIr 9Z1XrT^/Ⰱ͹[>7&dx*boto x/QGÛ׷3 ̞F]SYzvrYyxd,դ0k9SX̆F.܍ &U%z Zy3*|0k ^ev-:|bzQ"^8K}Uޓv:iyhAoDV򭀅ճL RnIk RFaɌtR +c\mP֝k,oP JlMj>K7G.@7[ ΩĜIvfH\-k-R#N+9~ NLȳ}u5 xci 6kyL Q#Jy.~ި(a17[:qCj^]m^nH!u5uo?;?V6ckء shl:'*P/;vU 90{ QBRDV=J-eC 5_{g([?XwHƻ!2sJC dNA0F [y]UȐm:a!}0i@|a vA8ȀZdTY,*R}l\1b s{=COyz¥R`m[Sk=t0* ]yu0K [j 1 "LF B}E~̖_T+` 8s۷ԉ_ 犊0|:!O,c f6Y B :Xg{LE`ë+FhD'XV1^v`'(At[cnuRQAp^.xnLbew/ؕM9 ߣ2c)OyЫlSs,sxpUJFs!P&! '1CKނ-Fx}g$"C=s;O@=VAS CtK'Н:$m&X8t>K@՗{YֈP#{F06 }XHN;~=Wfcq4_\,'o-z4S |mu l#,=LhhW]"yDťHp/HG'y@ `V\%Hye. Ж@xdPw&ԇx JdZy~3ľQ&ݜ Sjë;ogVV5?W?{2sqSBxZ^(s!tW'()>-zm:#!W,"5,>ZUJWV)_q&bUvCo֦ې![L`'J=uZ!Qݼć׈^iB+)BqAWzSe:h9}NAap.zF Ͱtxi!aqcءHI &(Lf\aW6i!v! PKS9Ou(setuptools/_distutils/command/install.py=k6Wu)I\خةdkvJ$hĘ"i7xAI$uuWJ 4FhmBLzI^&+M׼lkV=-H51'|ꆉ_+m^ i|f5Z?^7UUe]Euk_?M|^6_|ӷ~ nu͛|2o뺪 V,oYV,OaS|7[*M֬R&ڙhWYyͧuU5T6 #zU)g!@U7_?}bۗ^|b]򓓟_zӷϾ{>t3ڴ5ѧY& !7Cv(UMa*G6]lka5}Y΋v>! e淺UOTEd#b["޾{jJo9U"njo|:0[u)כ-COjO_# ~?Nj5D=l/Za`-fyi7~y_Ukє=SS6ݎnŎbM ݔ&a:v NY+x-e@/#ϩ'.3wteDYFA`@m"yQV'{d5l &͟L7[ss%p7Ξ6@S|dŲ)Sgf厕|˚݆ V-Ee`AH+_,!*[,.̹oS݅a٬S&"7e+^ɉfnn=ҎL"FrrrKScUNۼYYD6Mچt+^K#wvl=0E,ߥl`dAM`Ii8emh#H iӗ`- `ԮI%ۃ)}MRyoG^` Xy{X'4ćDT9rY4z{Sz߬rsq5K2 Kb3Mbl:,O٫#׿ ,6;Rv]aS y*cPNXU;۬!Y*ic-ik^8 ]k Ik(B傆v;D%9JL%Y;>lɉ1Fӑ䢽r=~ xܬ%Yf7 lk MV`I4mfaId%]x]o@%rԑ[maj@UÔjejTwKP33\͈uoD/o& H_ ὐ:e][g;RuXe9ݼjH o#z˖X[y{H yԥyv嬶lDF`QR+k~nU@lͦ5Q@xpc.uhj X,~]{7FRn-])J*#zpf=ѠKv4ٗFzjG{MaX\|wA>T]O`~3@@XI2m"m@BkEzkV6/fwJ㬦uFUi锽%MPF `L.j(_-9@exS $B%hz!WPXl<_siɺq6`dmKwТ:e!9@kBPwD*1>͏fXQqNܩt@ꮃ)CxZ ↡=a/8Gr9 x&s%X( XL_|7`n ptf8Ƚ3%}* ; tAp)BïsE I\XOdg:f#Ξ=|nx_#`s2w]:d׻z~Z8yn,0h[Xac]hq nYHMРbXHi[ dڂABu2 HfUg.sҮ]o"`ҥHuoe#gW;a%c"?\F0b !~g zbѕ?baK^ uU赴fc͉~Kg&T(mE~;ȓCp%J%hc29>5|KLcE5oWbX6-iRI@lrD]k2Fm)R lF^Ϟ Q4XbiElyi $7wj\]~D ,_Nf'eqML¼B[k=D lI9 &D #ڍȸ\ʦ Ik1_,5,`%d.RSTG@ QC7ЦrYEjzQP(æ58yE3|;z3TEꀯ@av݆kOrșeg Eı֤Z:ςu'I`8dF/B1wc ,hÀAGȱ}=aчшbzM (Ţ{,} tuU -)xaMP[XN΁wȔ$r7dВlp ρK)<ڂUmmKs^e`Em['}y,,S #R4XK g5l.Y WKtp9ʙJ+w,M+lZ,v8ޮjه*cPfu9Xl@ꁭ०"(r$}2!42f4 :^%fVs4Qءn`;VqIŔZ ㎠w3N)4 Ϣ9:RKh  ?u"}Tﶪ?fH#i\+gл"b)CwaZd䨷$>%8r(qɫ":}۳ua)%^yPHe9&(tZ9\$ ,,F VQ%HMNRW#5@{ r{PZa I@d%gjOGG1JOEADBRa”] lhjON{d5ي?zˊmް"d` hRIJϗi(ތր#vw3ʫ8$ne[P`'ZSڋv x3 3?i2U*P!T}jkig|g4av>z؛2?!u''bYS!.HY1 n6ykbv3c a9:؃FMlr QhAyhƑڔB~]VXQk(  Djd'ǣ72@\XS#p,ޕ=B sTImT$S?-PTU%L}od2e+UN^J^vlV-"9ˢM$̝ulhËhuPSIu|,jެg^.= G01H>Һz.!V3=[Do =X%F3NZ,`kk]ѼĴ%9`k3KOB`]rwKD %, 1&&4T\M"*9_Ȣy z^2bj@KqwEnD?6qr+@7.,r-S`]]p?;>n NZ/Ca4Îfn1X*F iH |'J" $8`{ `u?% aň]qu<<:!}68ҝS|;F6ß;a:鯇dA]V W /;ۃvv$E&-w9x輁43~|q9:̍#aӏi-Ғgg؂m'eҞTqo*l5{JI(jUdP^$suj~MO5GXtZIt7Lc}ZrZm:Ÿ{ ?ociKd =kq/qB tf 13L0ҕ6MOځ)_;Of!D'\!S˧z {2vSoYpftl(kL X믗j`ڡkm;7Qr7)a2TIF"N"%a1,Vf'Vd>Uw݆ u:qXNޕIqcR-XMVS؁ѥ#E5GcU41e S?c½IYHyQ3R!lB r F>EIs;!:d%ˆSrynOOjx`o̫j׼aT ^V\˘_цyԂO;ぢ XC)gX2A0R)_F9,%\[d.0:)I©bZ(L,ݭ#rh~= ([62ԫ2orЏQ9eD^<7,l &]O=^>۞ C%쑾we2/iy!].X4sOb\a!yJ\lB^F =iaBD?p; S Te=TX}d-ֈk^";ᤁOwA6eb4*7R\.%t6-Ji[yM,psOzNSt*7|Qՙ  +sv>uWB\[§2Gfx,{D"'i< IP>c떼?$fh/S3BΩE@R 7eM)d `jd1Pԩ޴hPZgaҟy2AgL񠈕>(/_l7߶h ;!3Lh-z#hd>*|Akdv͂CD!/7RUV$6U^6Kx0&4RSB{t5sns3<(N@ ӞӔE7Ґ]g^eBVA^Pd; Ba_[$=ʥYtB2U}(@RkTy!9As35৪a,Sѣ~҃aAϩ($ݎϙ2?PtB?egt-Ury%STK{cpu2%齔;Uyd2և"W{L{ `2GrxR CxU9YxU NXspJMN40IH70\h묁6xOcCqT xa+Ʊ-:ݻpԆQZyC.Ju LMR8}csZ9 Jy6• MH}LCO|VCI2h4qTQUr6koXyͦm酳TjŹ dl9;u@<OPVjq"Ԩby3T}"t8/ޡC,0SV".(ZYcL~Զ0B~2{v:؅__˿"[9p߫PKS  -setuptools/_distutils/command/install_data.pyVn0)F$R@^BLNCBZ"@73vDžu˽kT։‰(z kT΂;"|pHzJmߒ5p^HU`PXJY]qE$a|IGR,DEnqmT]qvn\C P]vѸm#1lE@@7qR+x;\klYK^iۢ%!) NX$ 6l@<J ,E[U `ЕY>p#g?¡ RFN w~iAT\[ ȱg&FC,-M˝ 5LgoaH)I_ bUoA430׭KF6-L <_3W۠{C"'caT%Rσ-u8#C J}\$ ]XvIilV5=tMjd_zyǴ́V@髚&Ms@IDPZf 9Z1UB@7I PT@m<_O'6b8<bxD58SjYhΙbV~">hac$VF#>;/ FIGa*jd%7yǜ62/.Vlʑ _ZIQ0BqC>8ӳ ^xΛ}ot (ob_:0gN\ OtyqK.E*oh?L4QӺrks9C«Uw_Ey<\nw)(y=z:Ƥ'f&s(f,e讂DPKS(? 1setuptools/_distutils/command/install_egg_info.pyVmkF_1I) 5.)4%=it+vWu.t:)N<;̆aXJ:'ki*3unKU kښVΒ3nl,KV=PuI}z=C+^ϙx=aEMkeِ.i3G{p\T2'۱DqwTy_~nŮ{s,u =eYØMa燎oi ܠ!ЊᄝصNFW6lug (60Hp[K 1gAI:~uWL֕Yxzoyjf+>t~UMO%2F/>*ukuv.(Z^cc Jl(Xpf&&$үߧ?fKqẐ[r4?0-(Tj;6gė΄3{SКvǩQڶ!/< DfE1ˑBg5ɓiK>iH Rs.3'*(6<2X@1PKS*Rj&0setuptools/_distutils/command/install_headers.pySM0WrJ/T=FVZc#۴M}'@S߼1s!TjM7ZTR;(UhcAa;goi 4o`>DBNϋ?MVAH7Rqai"~010>tؖhFq6yxf Z+/#0YO̶6\$N"1DyuъIH\_ J3yy$IJ57m/kб=$jȟjRbeW}Jۃy=vL$IVv?p/l=Z5I`v9n8[„BE^A/WyU^#p|#M nVo~w?*_՛oߐlRuTN2S~ZDwFӞ!sHdP&O o@Ek8e?lcGgQ.ehoy*nV=2?,W9q+A}w@E?w:vjLebDXvĜ;S{ 3!kjBA=rwkZT:tc )h+ l9ZHT0%;!q z&0)AF;XH5y&U-r XB:= :u7nidG6&%/Q!C\m*Vܤ~AR\eI$cV.ݢ~B& 01 \p!'X/L<B53G FQ6c)@  l S֮MW$^c /u~JSO @W%z @q{VA=Xa{9N~nBd>mʜTlL7c [k=_J?CI_4pjiteuM~핺WZk#*y)Q}נz%~9ք ^qW[)?2{1m aҵH3D[ ~. 2!u6Ll%(630U=Y5 rVAM3C ݷ@LNqXXѹSHW~Q#:BϝϠA 09PhX !bU#*q>2u HȑZqxIB(y}T쯴~-_@6Kt?KQ*ed"+I>U$1Eg2(;;tE7ش]=jZ!B͂ miظ7 -(+H䕞x3*3J.5(VR3m+f̈wәQvشx"*hJ_WP h#mvTXK[ٳ|!Cp.*힙!\|݌}eqƏ*[JAMYCmpM{A62CLf -wql;ݦXYLBfͣáT0cG\gAy\G*,I)931i7̼y| D_L_}Aak;D.ޮJ=.(TipI )ft r ]?]ow*&E!8WIP8 ]kH^k*$YX`#-? $}EQ . Gؐ{g' c'%$(걔Bu4޽P>@ KG)7$O? $m) jY7OPBy0C~o$ߠxewF@/ri ӂnIS|(#Ny%aTVδ?M[)=/šճ:j^q~ *tPeLk@8; +R"[4+` KHmTl zdCDSp_JD >j=(^״~mM~6}(FjhxGƻ&no/Ȭ&]h}($2{alܡHh% SWT:#? +rVm?9||r.o86v:OindYG7l7i/35X<.EAXG%N&Zo*3n=`ʶfB 5K3$;#Ơx{8;Ȁ`',w{9GKFp 2mBF=̀:!MGpwGqQ=uz-cALmB‰CT ?ĥq4|(}iB,15Yk[W0Îukq};O(`^{EhuRm"4N3EkҲMԄ)-?3 W3)94{Л VɁ/XxvD1F8>3Fl']NGY߷'SWZQ o1Az9ImտPKS:0setuptools/_distutils/command/install_scripts.pyUMo0 W.:ۀR (a@w+ñD-4~(YJbg2K$)&Zh3EE]Wz!6eR7:w}JlB$3~->~~xEQՖZ,CfQj XBC>8ibNh1tШ rcܡ]ijQXR{0 Y~D[dm AS,E6jUh4{rNgAgk hQπw8 $2=s3R{VFkKy*ӑ *Taz?1Dۆ YF1%Nu 1o>j7)$s$58I",wr, +={mK/94g]W .du:#~| 0z(t;Y fH/dq-!Id ѸX \7EC3΀ >x ۠MxX/&vl>p{q31?j/Xsx q-ΎjjZǹ0;V\Ҕ3=uO~2tww+xiفyM\ bՖ!|B:f} ʋl EWi5E xЛcoPKSCho+setuptools/_distutils/command/py37compat.pyuR[k0}`mtS.2|DhX$ikqsKn;9|q"+˲"L LrEq-(F*7=#(DTTS`+RKF5%C-}c I˦">ڥJ %ѡ:IǞ5M'pOvm u*Us vn!"x_lE !t9ܸpW!1?j4xnvƘntkz`(^DH֬@::]tPY;"m\H9Nσ `A$ i Rn >KYLa0*,PKSt -)setuptools/_distutils/command/register.pyZms6_!Ȍ8w<6IuJ"UizbX>xegM;ϕJ-V,| ~c"VrQI?ufosZDA0GƂF#[k bS o cgaИ*f bpjoa59X{MS)0Pbw Of!.8:32>|-yL`Hk˜&} *DdOItAw&?c,#)ӈBq̟ =cBF Bv8u"Wg@@^Љ]ZS0"O:ZS)J,kဆ0낑F˥/sm p53X Fd- eJRoh ˥K4$B}X x%K.x|Hlf;p'b]B8X,,F*OtoBN{Q; Y8H!/vfOZlHr%B"E˾ 1{Nb`kAj at A}8ws:Y!'Br[YMcRvpFi#˂g ' g E% ᓐ^T@$vt~9rUv"[WEkOC[*.t4>0Zw.N4W]>2P @:W̉*AMR&:z;!c'{a?U[]J50=B6Psp ^}{yYY/4k!ۘ辳a%lj~S9LXpb:})ß +J^O vAu w􀬛2YYe_w7Kp|xeeD)Ipu;\lD:ǯP2`#({v; %齷f#9*߻TiV9mlDWN`ގs2?2p6`KyDP/s5HH=R3v]OJm>ܡ@GtouE&+U퓟o~@W#Wä '/hom[\WwB<v<rشsAzt@zw뚢%eď2uwjK,?NmC~vS\nEvw8zSkmDɵ^} Jxh<l/rIk߁701gnd $/Kג\|DxY#tm f]P;M2Gy_AvuhgD$f؝eol<9~Q 7;6T'Ljb=p{m*k`-$DĦb,H mޜ,@ob~Rc.D4)^2)ICo]OiQ`[̠CsBٱpd¥C`>65rr\K&:RiVְqlS|׳:J'Xuf E⣵Ӳۋ5{ztҒUhZuzVHXuYct͠MD&_kY.15lr wݛD(<_@}~z L2=_c1(Uc'u MDa;0ޘp㝽kw aI×qC{; 9D-c9 3|{?}Nj^g'O/~ūyr maF6cA+]%?nk?׃tHBFҾmȝp4KKQ?…>EVd~1;gNJC=ruO]RtX#1J]v䅿"W3 DsO\Z5{PKStv=J&setuptools/_distutils/command/sdist.py<]6+rIty5s.ۗ<>DB3#ȑn|AyL$h4 /ЗxuI|tuV(^ s3%4 az P7gz?-+JЏ VzL&¹( AD`)H#]qL4 b@ ;uc PqD0):%Pيܕ9љ OIoR38Tm=+ Yv(aT whSDQ}luSWg?`b'\t쌷 j4[QY/q<rBλp j8*py.Z!,nm'~)wY:+IzF'jh9Af ѮQqk(J{^t,SqkG`Y$Qx?a 6*~LohBh\E-N(Т;N&DP[IZ"c@>;'j 5^sF %R3ba͇4)o-VkHoO'mvRh܍M >!Tٙ\,b(24݀0"!4!K,VYuJZ쁺bx67, Ut-1dP!ȃ&F'1R#ų翾xD}GҩoYw~u@&uٗ*C0Nf6IjZT' "=45́N 8/[N/]#}7't`.~Nk?o8&%8[j2d (wڳAMoFO(FoM^CK^:3L4޲(|(z6tR0,Lt4;/b r44hT7ꅟ-/xn 7:=vYt8w"}{d5hD& Yك!y9FQ:D,)c`yYPSK%ImE6z ɭ-KHjf ̛bC>ԩ^2]6i3HI #1V豍C5GqCtWC00cV2cD0ƴy>BNz2 3҄]Մv0JNFxh& _\3Svv'Њ79 + s))8@ */wC(T JcyRṡ+,(?©mZ+[x獨  U3V~I 4M+Tc2/pvtMIc 3c|v +ezrM0B}C5G8)B>ueYLz\dG ͻIdFAz ,Jmqb"uATf.yʼnmŁ?$F5ݎk5(9Um* d%X-<+ǿ6a+Cg +NxE( Ȣesԥpvwx[ ģq 'K푭ҋ!CchCFfXhJk7> $nJ[&.;Q=;[ ı WF{#ѡM$#Yt1"OX/+g*4EWPؓi3wUK#Dj_ӿN[Dzwx+ށY;m{jƟjBF6CZh7<`̉07t͹?<6ŀX`&S' ))ٞY{VM{^L͗zJi\jl"#ϓ$jp;s'@;8=25KQX b`*FXDLcLZNl.՚-,QIJהUy)Jf`*yWL$f^ՒL\328 9(+@4Ӎ/sMa5oK:V%I嫟~ǥXK ,0,s8VxYF͈n01VtrWN=qsď>a]oeS =靄ٚÉ:'ONHm)gI}玓4vG2CpX9}#)]7\Ez%`&:X>!ĴФ;A+fzfLIiǫ)|f4΄ PG0 lݢ>qPDUƑc!dpOqn̩"jSӡH} ~*E.}Nf>N.AK,\!u>*^XQ)_aH yS=ԏWԔj KA69hݛvK 5qҡ*1C Fh@7 IXf,oun݂m%,1D)+hЊѢI[F94 DKq6k:m]GϏQ}$v9KWz}5_ά[yΞTT%9(YsRz'|n(5.$G[Y#jׄ0͘k&g ^;Xj[zwf8Z[sXiUF^t)T%{:IŸx~vLs*%$C[`òuuUwM0x}o9G/!/[!6O=h;mc&V ։~tΏ0x+D}YdLM-SS[ :@i OLV2A||ׂcE)h87dձ5i'GsNS30F84lԦ$u%Dz!ԭ~:uXX;W'3 dnO$&.eqlc.bȿ %d3q-橅{Cm1nY-K@_u|;Kxa46S[Q5ج;ZalF[Njdx'*>Y/S RAV` ^HRC fN]FҌxۦ}cۻw+v;C ?d/ 5wdNq=?:od:ǿPxOt3F)!Av[Z/Sך; D#!@noYr*caA<ī=G&Oq\Ⲫ% K>"^o@M˴}WD.S_]ҵrEh?fH5>[w*L5OԱEȱG^TU{ PL ±R$hֹ}:7XG #$h,&yn۱1-jrYGNIeX9Jm0"ZljO27v9LL݊v1 &#ML!v̊ 9j}71)Bt,1HV'xn4Gv[kBJN@Gu$6h H@Kw=e(C"CU~Pxhet[| F TUΥ~3Sp"(&n9 gpb=!dP:UIAQG~Z8?- p:Dݴ5%݁\AHnU(~xGϰgW 0[1QfQT(b R :7갎%ޘ^^;* n\txˣ&Q0E4"Zq-Eb״&!,2{#Uj4hv76BXCr[X'~v0'Ѥ*|iZNik!3?8p 2A4N7x: ,ct+&H#$$a9xG'Ʊ^#@=Y}=?oak0-NA&< p1,NwJ7EeӪH݌Fm}V5ɧX}>fN) DF 4~2we,51mZA >sJnCcy9yͽn˻ydtMԝec=H7+2DPBA~O\o|BQYz!b47e|Ue_55tl?d u)6DhE`;>nj ŧ?PKSjP 'setuptools/_distutils/command/upload.pyks:N؋i&]>6M&v<d[[ I}w [ϴ1G ̻f'l[6l*|-ɧweD?or Qp+x,i62,Rlq)vrVVo/?ߞ}]xvs{C3o2{ a5k~k/"˂F[ h{P5T+9 󇋙1 ym('boG4"{-VB㐍;|SuD5ϙD6-FbC6# %y_"zO) !UKeh1ؚל/f50si>߁2]Aw D}Un|(E6Jnˇ`z4xXsCv;o:-Uڭ?4tnEY#(lʌO =L\cOC1-5߀H`K}E8zpz> y#RnJR-p;M 3 \'*xWAXH`J{e7${/0 mg׹cNl6 [{cȵpa*w'1.h)fJL c&(N1Tob4VSA!9dB/yzXiD=#% DU1RC6 ҈d9 KB AO^$\"*紨ʕnَF`u^. yG쁗=-GG3r\S#`\Etjk Y޻Ȼ(PlZ$gȑ<y:pH NpZpM )~3l` Iv Ұ ,FIb8/*69s@;C!HLWP:csh{UhMB6S8Ƴ:W/(<0B5pXddxנN灱Rï@Ac@S<:j~y n醒OL|uJ=3:i_UYkkze]ej?~d.ED5ЅR#~ ptpƲ.%lƸ)] Z P+֔9}mJGmiK81k|4l@ ,XȄrV6ԯ m`Y6 O# fYAc[8e97aAHl\崆^Z\|5XPMx:"{vE^SyW3ē+zkqK# Yg܈P^4nN3K:b:ow}&yTxnZj@4 M-4T%~D 'dwn޺M /2//$T# #QZ\}iN-TƢ$NRh]@-#][|[M 6;T0`p* v[x ,.tV)b8HOJE''z:onPS= N0Θ%Л1㧋Ogn`W7iHI 3Jy}|ɋx˓cɋ2ZYR>(d j6C A0$[BgenU "rY5.)0ɿ>M R۩A.=X|àoi@l5 #cz4EM- vhJ0JtS4rV_G%6 n-,(}4bjc GTHV.lz=GhN\ 9tR>x%;M<Н_ax7M空jki7TCAE!^K~$~`=tPa-IvnuSQ?2|*1rc4M [ Z&3he(5Ȩo<PKSsetuptools/_vendor/__init__.pyPKSD*;!setuptools/_vendor/ordered_set.py[oDJ7B'^PHՠwC Av)}薻\ KC8!%9x<ٿD"qת*2S]e*q+E&(b.*n$ܱ5*9y"h _Eq#Vof߹?+E,7(k4ݱM* &䭸x%;r]V *y 8|+E*l [`?}R\h ٦(᠕(HS']k{ٌ/c_.LŦboiweY-g_RKuto[Gvwsh(XXlv:FX(5)N5(!l+@g2 he@{T+1LP|ęgc#r,^ X\1^U\֠_%X2qqjܡqh%E d PuAA"S5:exY! ؐ^[-L^u D-p1;1i,8 D,/47Vjù.`2HQL+!hq)` zLڑ_>t.BYZఫ:q+Yljy`?1۫|7 P.s6/-Msd sUUDRӦ8Jy>jgm~Fȱ{86\Y_~4by缑IkN0x40^y.bD]qt㿜3>rP5H!gLT%# )Bm^ajA |wbE4Т.=7N98%Mh$<%q-*|(3 h"C^C3(5GbWJ|vEͶ2MɖFQ\D̑Cڞ=/ɧg2;mlA%]\PF*|DŽ]%3]?VVvZ@d,Pʢn &;^܋10|D {t`ԺF v[GV8lɗ#xU^!1jv~\fN莋n0#R&ml{/sD%󐤍)Y*Dq.ΙqYWO{R#b-ʁ޵n"vcΤW<޲gCi=G RcQq>A=]ڒn+zJ!}v0Vz%ڼn`_}B%(| q^A7=\sot?a4 'W3NKyyU9t% w}]h/tAB՞uTJ vad+yQ~JS/7ϙrOXwwAPQ@[@\]5{68(+*~D ]ꀵf S3{O?5#6i"&-z¾fkfM-{ A1\/-QowV(s-a"W 6^:m50ᴷT kH7ru ! sȦ;Cdl ol (Z Fmr(t s[HY9%؊%bA>s_dT*I* -"ZƎ$Z]te76p1V #)ZJ\\>+֫˙b ,.}AԾ سA5B#S7s \SOT^PDonׂNs}R&c>&!h[zˠ#7 {k+4F+ۼY,-6UAoJltb҆RKPgNv#\@4=ZM}VPQQT_ko'uje*e]]Z ^s[x"90{}~ j8;W^%}'T )Έ6Ԡt Vb|5#PW8)Ρci}M/W{q| S)]PJm uQuHe) D0Gzhj|"&r v=g9&{&>B!$i=5>iǀG Nw59gpYЧuf%Lؗ.w!eEͽ'c,+a. 5@{,AHA`C{h O4~BfeEU,twK4Gqض"@6t#B[bC]bIDȡ/`\XY@9PudQI_zN'*[LP6oQOi3q9"1P+; OKO9PKSf]wsetuptools/_vendor/pyparsing.py}m{6>OܮRln]qZ:/7vxmHxSoAIv={K$0`0/i>O`v=2O? vuWA8kkk_x> wH뤘eYyR$'YgU2"I4YUu0K*'Uf:sTU\$P~e@|4&YWi:I α;A@*uz8'A$P:UP$eU#Ad>tJ;R"y CF&4dɼ%>%V=̋L&hu 4PfJ0F_S{HyAɘƝ_Q%i>W0Lh88rS&'eB#c zͽIՓ-qBg$B1{RV@),/]wՏwW~߼޳gAg~w৽_x@7/zl{gݟ_=8^ ^}{/w|)T}0{wp_Qmo=G(/v|O= DvzΏo?y`: { 4b! چwp>5# r뿿Wv]]niiohg/ۥ*)}]zMnv^Dzy~~_9Ե;؍7{o^A ]@՗ 1}G zǃݺGv7''OCXaN')v& qɫ4͘(wWߙNl}G)vhJ x6+xt 9 ;CG#w:׸YÚ\#y} 3 'OFg Nsa[ p|2̙?xK'un`8*ϠX}=@De?i'7̝og $;}}Up Ong\A΀NJ]+0l/3'n{*.Jx3`Vmn"3D tQ;q<ǥ*yO"y@SePr^ D}YG> j s~?vN h:N&w`s'GoG]zԍnYXf*ńbBޯs@=6hE l}I $Edd4)e3. .=)^'*zIUF^$l@ 4RHǭoGNF#{Hf TaX$"&g~"}@+o789 E2& 0é0$z@d.wX<ɂ"%\%*^J+ABi$EQs4O\hSH3AL>AOj4Q{sĎO$3ʧ~]RQmOO)s>ɼc0*w\yY9+YB"i/MAcP`V<][f讙 ֦ $9 KXA<"Y633hiCf@Q½ M +)WŋHT7_ez`v,3uOhuyZޅ`%y"] (|wAI'ه /@I ^c< ykL*P@N;;c]a菐N D8P2P{uj. dPfOKhʜ<2"}X`c1ӄ_ tL][* ( KUY5u dAy6|#wpiq}Ix, Fj!|$=|W{bΊ_q(0Ϊ.IdLOI|2p/Fn?C˜~j;66?&ׯ񩏾S.M ƗTXn ͂G*%UKGrt0lT >?$\ f2f7Y\Cʹ hgy~_$#"?'XUC}^ZL듔Qrga|&?_͒L~I=șpgaGFvM~/w3NE:>؈f1s^ҷ*%h /{cj:1_n_&&zd9A pEM͟:p lW;D?y]$i>/rU,O&ϒHQYSl%)R%Dmy6Rd0=ƯN4Y%(fcpi_0[MeUqv/pJ{$@kFT%S}NQA<q{R t!m>>|eJGki%dy+ 2lxb۪ৈc/U%q xQg[JQC'69 X{ngO&n|$@/GGH#xY>F$2TQ^IL|E5140?g ?+Y?% 9.:ZnG_|՟/3oӝgvGR[rI;1"fwgJ;_4 GbT:2+xeՈj"C C&'u\_QuI\752AnsmW⍃/whQEhR`t7)vI4.IWZKC CA(mSmV#:$UPZ;4Tŋ1Ko\8o;~cš){j†IJ2iGzg#x{sv-tSZG#}X+"ėy:.Xk~N'p-x>?U. Cd؁/ 8{;m=K%ꋲxPC?3|1P|$)YPf̅2'nZtE6ZđvCA: ;0Fvzm`/ kS` R5Y};A Z-&طv 5$)._+>y[4..ټqä8PGΓw܅#IR! |#1*(;!Y2B;5XڎpP e[Aܖ~n21P"AmMGu?f;}d@I1; -"H4f܈A!TוVjI)" wȯ26yP|kMm}+y2̎vsъzPT ngIYF:(v*gcG}$= HĢ|zNOk;XYRk:3ujvݡ0u0(ԾCYLx'$=k cxqfC4[`qt:Mh!0^mJ'/xO(8t|=mk '7pO=3NQ},-z|*qr1f8b4Ո`]8nooLMR$=dU%7lUFuh!d>}[B*IMgHoXmilrƢ*}}AzJlbIi asx2]D)+[5Ĭ[XQ14* mx8C-ܙIJilj3yV L%@fжȞ='CI">A,)Oj[Wgm5hri81"q.PXfj^{6n*y6KqZ[|^o'wx1?Gd F;[fVsnLbJj(GGnmk(d,&sbth28,bH#1 $E4 P bSIg$Y({7=6wXRJhTo֏ojNEm4[.'7-C²4J<\'1` >wv }yHqAuǔɯMMgJ:xP?f&͛{!j8UnuYK]oo<|n B l N'lt^²3F:HBǽN-m}%lu[ i;EwTW$jc>`z-x`-xY_w‹{u/Fb] X0ozfh|Ddž <=D F|rU7^k\n$_xB߭]ԾP*H[t^Rچ`u70sK P(n]ofqtp[,G^.iUX]s(J1W%`?O_ehxU[$`!KHlZ*Q8}j'ߎ6B{WjX4^G؋^x9fs]Z U%]҉in6pEh;U8V `J(uä)לT nY>6P$]/Z;7ŬDL6'lPɨۍ{A 뫃cc/x^y-`͛Q[<^k![5e>Mk5E䰤{Mhk> u5[!o{xT+ψwgJ٥{FtJFzKfs$}m6m\[cQɖy(1"4R7wk..r]eB.z]! ‹6.]`~.-DEdLr{'hr6]Ҷ/aAنrx{S!-uiRZͯzEh^ڼp+hԷB$I.{S cyi>6S[&{n/a6|ޱ/E4b@ pϽܑZ 힦3")ќp\+ W $Th_6 }8DzւK,\$$s wAͧ(M&щE( u٭1ߟX֏ͥlӣ0K{EciJ&RLշkD?U6*HyϤLwURxGYXh-X".=ZmXqIv6*u܊%(Fm6|Ү'Hjzy%&z શ~҃*lu?NR+2R(lj¡D-DC:@u4ŏ\AmSshiC$k/iء+^C.~/I&N01_ ! t!oHP~ZwSz̓6FC"1lF±CxTYNDȴ(*c-F+-:V%Vm"e ܇!ܪVK l?^lPҝ%][ࣨ` _$=j=iBu-jT; {E6;` {5F"{) *Q;Ht,;gt֤hb{pF_|j#Xԕ*_X\it(If|t'OE2sBRCR\%1jc_$,2 ,A 4s+}zLٺ]v(ZOw9}ulR^ `rQ 7b\^LN_B!6T,G-E} RӢK 1 WS2MTK]Ii=ܝeA 1 MGVFtIY.+h-v=fX퇨 btZ_P55¹ެ=Ѱ~Muk.iN[g$'B,YltTW񦪏AA: U'%^yj&6U:B͆#\-/iHFO5i\z,t }[Li_Yņ =۶vMgFzm3<=aA %mR-T JmdYLLzkatO ǹLo ,YcSZ9ccAz=Ea*;t#'SO8;Gcy hp#/S+Q9K(溱%Ζ#Գs1E)m6V 4zV\Lf[ݮ;e; Pxi4܂6ZFmZ޸ V)e`q5%1'iܳ젤u,kD2o mHo$i2_u%l]+7d|K0)_ jI1ٹ/)j} 75tiF՜bĆ{9>q Nt]m +$7ha/dod{F~ YEcl_t(gT0 j/{hU9kG6psm`۬ ⷯZ ;UfnKj^Fjӑ_{xOjJl8 waM=xE\cF㓞 ^j Sk;>hQ_u;~. 6,#JB1:p1f a 2|t[:3mb&F}%"'?KPj :bi~ V'ѹiYMCQz:csiTpmz#|SN^īPGn9d0ou'o_]#t=%hwHp_s>D6v)7||t @w Tg9<{o~ q}%Q~c;l2fVV#n4|I(@oD ]Yɱ3fu(l [Rmf^wZi>ufV6\\r`.Mxuڝl5>FUEeօGDzU,+\F^~>Ӱ. jgֵ,Z5"4%mꀼ-ělXƩ(==MH5Nӳs X#ʂnāz̆rv?Fx 9؅{ݞJMJJnO3v(1BJG6 O?05* _}n Tϒ䩟}ޯc@lF?OpocccS<*R+jƬ@]P% u{ll4hl]._ڗɌ>X.pϋ#%#v^,6պOZY cט*gR}&.7_309zęq{Dm gn g9&(&Z,K`t~"iyBVtR)/S5rЗKQ(=}\!$D5J%>7835l5)?o+, /vYX_H@3 -TaQoUH_52<;@-EIeY۹衳u^_]G/&_P>t>/?/f@"C ާ#h5Aq  z^^2qJ[,9M8 0q\&f` BiM$ήM7KY,'kR!R6F?׮m3f6C9||_%EA!P/J#ser?x2>Z<.+fioV}p8Ao4un;﹵uIT6Re|_y]){ J2ЍF?ߟWlq>*xg='E\\? ʶ+ Wʢ`ϧ #KbuWcen7NhuXǪrVDMa,$ O`^ ]cX[a|tOώ9 @QWSm&ބ:l3śH7|']L^|bj=ħֈO㚪^~erO#vfla1nG#JXn'0gm{;ktXoڕFm54[?)㢙$K<6]X Z /9 >~ՓfPτW *MDL'7Vs>)bhqL+ǩLGӱ3+jW|dRMkϜft|:_B4CsIV<@ϡ->A9(@\! R4@fBFunM;^f \7I+tX8ЖN+*;H@gg F9`1TŌRuROl-G܃M.*۴z++ p%'3qChQK:i6 Av^JOitY@F"oi넟#1lAףL{@@sNl3-Dx6 7znjtH..C#;jtΉF M7l>-7O@gy!C]lPP|Qɽ%~s& adf9lm3]@p@ f`9Y! 0|-pO&%e뎓Q;Ht4X.۸Hk`RAlB=VR`vwGF=R.fӷcjǮie4M*((Dg:&G&S".]EhMQGx̋`LmT̥J&)hKb L&Än,8`Ry] hswQB$H&s]45WOzOga'PZL@dFHЎvR?jH߹=-|QqHЯzKYk~dU'au-"(kVEU9cXvUz)jڑ֬PædzHWxOyUr? Z b2EV0[云J$t A̒,TGPsg{ϟоR=_=yl7~wQݗx x&xE  ^|H3=| r'{yf7џ+30CKvW,"",g W4 0WZ?~;`iZ7V~,;%tY,6˶rmj~)^tL2؋$i>/d{d{n ])6/{70uZNkr 86/'bmbkC?Kn[Ɔ8~kjىZZiKehԊ% H j'0GJ&d,g˨)jv$b<_Se:Kvo8!7mz[H!$N2aXIFc98p=x Ci&!rqzi+@l ntV@Leh <^1*2J:&UpxP`)V[H/)3!}idiySrb[ hc, S$ɢ׋B^@ m0^po9LUw u?y]$ƘPlS  ghIȥl|"ZS`4 E:'IfkR~]txh-`ķm`4PgԶ KyÈqLƹh&@A K p|q I I$ia{ew21 a6'`"(>vVeu|M7VTI㗷l˦,XYYNIAR>GW`:tȼi(Nxm^fTg]"ֶ]eqǣihiwcVFf[FuWŜ~l@T'((|'UςV C19p4XU$-3Bţq^_Qj{ GYiF 6 РcҐjFS"Ԉ+e,L R1P$SxYW`tĈozcڦFyMB28y9$\ԮoȗGmwIm=ɰqxd%9(euDb\ QRTJ,`iGN['RJ 4i?#VNxQD@xvyZƃCt(y~i|3LNKLاadŷ*sD[eL131mjDS E7nF*"C0UHպ$ J ˢ4rQ E#|rbl'ϱHAi [sr-ǺAieT b} }XV|Is8B*o½416ݿ[0/]ì5 CZjD#㾊ׄDbu!fq5Z :-xB&G W5 ZN+<Tj4NkA ܀{6Ž6f6P2rE6u ]2Pᴌ05;m;V]Q]Zc7y%Eѻi>DoNn1>'322F"1Wxέd:#?,&&{FO $aKBժﰪ"'h}mrCvEf}(͍PX yh74r4[J{C4INl(,BD,aLu ~ii;Sro $|:5f-tG^}"dZesǖHgG(c+ݹo ضr`_M+n@ BI5yUy&@Q|Qհ"/E,bu"/f]/I;j.ɿˉKm௳"?MUZN<:okf> ÆQVT.Y˃t';i6rW?>lXD٪ow 6\iźsL0oX^ȃZi4,"m XA^s9Vѡ'l1Pyn*iƅ%mZJ@8; ʏZ ́Pמּ=թ ;ꡪn^b5@$cAVhzhjΉt&zK1Շn-N9@bqc3z1wEX[+ZDjZbY[~ՐP}die[~yK}>ަn kB( wYea,XptX>O:uivև 'M]_%f2ҥ,g]KZ׻òuﰴ ?v ;~`} OSJe1i'ΓXzWc_a+tiǠ[ַ..戧z6k^{%,ɌZ:YH 6&.y .;uCk"z >q'|9wk_b#pJkO{C1}.1l\}k5fm7kk F5A;kK^%d?pf)҈cЙL.,AF~YOħw3a;H@^\}xamk4j2cnd!gA5{$l\rEqK~\,4w(<&N}ܧ{isLreHHD5p_;Vy :XGj#Y1)ӜW lxLtd[QhʭTdiQє\mlfUB)Ha0I.8+b [hc2lʴ?1SE"MlM;*#CŒ?Z$iҲFf:+P  /՛<|*Xo"LǮ` &*ig%"n[LQReNK c,J3H(R 0).qf{xl!a%vv]$Wd\ Ht(ב[Q)}} :=WDvBq,ugI ^sТ>̩+jgLiB ֶdD@9R3kN$zWic!1Yy=׻nhulrÂhGxzC9i9a^N46*\$)uP+)O0,)ăOY۬}A'uߦ q`i5Wi҅{Y[Fw9i}h0vfQg]1J.-20Ji"^8*jGUX"oP IwPVi?TwFm@Jb+BHJJ:½3#(R`&SgYI"hUtY+5:ꢎ& F tY mގ<`\ B]U"/ IAV{;Ea]AE *iFTMqM"pZOlD7`€^ڛ%WRܑW+hY l;T;ײpoQLsb=,HqRǒWgqyn$/>]\m:M(%~ӳ Vnuzug2؎JdJ uRSLTFi|@24bU 6om_ yezSE":>+Զ o Mq(TZ:B9[3nQ!6`bL)Ɂ"SfR'1z.`j&t9A/OO<-Pր4A9B7-+,hЎgًVr}7oa_V|0AkGrs5NfS# ?zGK3:@DaBm$"!7(\]D}st wSOn! pE(|jYBi!6GHCogTmxB#JrR)oX5s :FӠU\%k9/ag'("KegA+ y|Xl q@~"&e2pXH vzUy'\"uT ^EZF˜D* f?wfa9?335\S7 lfg&a02]Ɲߠ,?x}'jok?FIIw<:m%xd4ATA`A_f(4Q9SF_P Sp晰4@V!sͱmTP.T 7xNK ~EjɦR б"\7!>54zAG(os(*.Y8/#nov ޾I%/x0j(yZ:+ ФH`VFѽdF$~+FW_I@1|j۱N #p1㣑LދUNEӶCfeք):Uʩq,u/L-6*5zG3(D'v uMvuCőDU[Њٗ-8/QS_[-f2ĈKU g>R2r̩QeXI}HhS:Zwv?/p D]h22~[~|wmH 7궴nKEgoY2:0yq;QBaNЌyrYŗ^S`q\ŎIFmuzF`?;re>*Qi[ilB2!-cs^c%*<]S2+e@ʉgS>^!]E[DbȔe x42Y"j)n͏Ett$/:=t<:̄J1`|W Sb(JqAH閁-~X:>U3)Ǥ⒁IFZtxx2|' Y#)cYhOQ# LjVBffu-J< Ye>_cP3'`dg]ǶCb`^$ϸ̲ [3 vޓMƻ1^n )**pㅘ[]"\uLD)쌡gdՂQ+ IL/a28`٩h^e~sPZͷjm d,>OtT;CJɬ]1ocukMVP u2 ݻ0= w fq.`%Ӯkzœ.,w2Flbl/zQbDuJ͆ h+f}qj*n5 hj#ZWǵ<8ALaW07@̧cv48&d0wi`+q-,˷w"æ cY< ?Q}= #ZD+OzCۃNb'ScKLA2.#R ꔢ7QU9B2el˭6ц3%HD*1b*|>>Z9&EHhPw'qr$^5]뇸"4fWr_stZ GIjOӝg&m߇-^̕cZE9XA:S{jgUBT -x2[XfJ(jͪn 7 e}"N"`Y6%j $ф>߇Vut.`ZbTr" |񈩯B.1_ԍ?J97 D*-wK(%6+6(ՆA;ϭHAh4LU/3 *~ GN2er]E=ZE2t;(`Kf q'߮@:UrO=ǷFg/Nl zzpo:ɯ!^5\d OL(ojou0g_"rW %5mmy\Il%΅=ɧ: 1vfL-m*m+2c`: &rbE~H '!H0@;CE(^[f ˥&IsZMH'CJ9?6$>ec\L0/ڮ^{!㏜zN5Vy4;]b"%6%2sgz۱E@^XQ~EE꬯Y%[K%Tg?i KۿqagAK2{{QgLޑ@. ɇ. L EVƺpObLTCeFa$`:pr! ]+t#ZS=ðcJ$yUM1q{/8(/w% j i6NGM"W&ʻ/[0F ?E-+C0Cdw(Q'3 &l|vtZ_|i2Vc/q>! І$1lq b JJ>'#_]6ClG ;=+N^mvQ1xyoNF:P4VN d)ѧm;Gq([AHwy6׎p/1hp d9pI 55r]P!&_EZRt a*8PJ"fk#(8_z_h>xuDABa A9g3EN*NӒv‰ӳRX25Us2NoG/_~E1 Z1#xr2*nRQ64#z`CGYfM$$ Ϸ)[G%s/"38:-0DxSiqٺ뽱jc-(K촁প~\bB!&&u#FWIzЁ}pXiXt*?oKa|Kftgu6(( (fPc> _Xx"IbC1c39G 8Nn(6tH5U "PZ+̗,<`Aì\+EKb5_kUhQg̓1~ͺYn${?&P@F"3-44rM Da gKz|nojfLi] 34'o~,s,X'ӄD-Jnj 8ÞN0Q^_ܳ v)@VYl$~4\e=O_7?>{0=6S_-ʷX%eH͆,\wӚy9NL؟~1y轍л a*b[Hǯ)S1"ՀLw!_* e[f} 1qIKM5nء$\%N}>st ̋ 7! e0/]ַ_d6tB;K.-:p)nIbZuCnjD<sqɍ^X ǹXi4 N:Ս6埢C );0ƽe9ztL$>wS3ݗ~ߢi d1E>jKDIw8/;spNĆjbb&̉|\c{뤠tF|m%UA$qsV *rҙZQGi1c嬨LeJ״.t-8cҿΊmP> RuD|D|}BklmbwH|QSz w 0M325\'K]j'f騎NTL 08`d1 bۚ0[>8#Ao1څ:i'õ獵] J_lr0o[>x޽8)9uw{3]U^⥭kxdQqpl蛬q]gV)HҎ CM)fӐew&3<}ݿͳo`*:ձZ%( a#Ys"[ Fm iRxh#E]UFz6WCߌwPyP^YeREk$Mxh*ݸ!2ǪZk1 )c7o6ěFuOiE cP|}9H_ S8wix^n7wO6lIk;"osR3.ې QZ3=#RĔFǐuH,t*BVD)څ6a>Q>G4┎"ꦥ0QTqHAy쌂9|k?]W(x9h:y3u?mm}h-G@`dG#G|o{4Zz5˸H%^fƜ޵C.US Gq*@Z9-F(y_&ȭy0SQ(2,%Q_NQ8^H齲^yrLuqVsϳqƤoX>\.14,̢= ШܩVJ _bk5Y%{t @UR_mrfH } 'mX*uH4[=:Zj=3EW1@uʧ%:ۇ;ﶷn2ucE̶ã7nGGӮ>Zvo۲3ucr{+^3v[s؆cղAnżsZ]82ԟQ:-oc*ow~ݳ{둯hf`i J_R5~/d?/,|l0Ja?5rZ.@=k>2>W-z%`Po\;\n>ll/ͽqƧ愻.A4'˵Bi3*SLgj}5G_bA!p|b|FbV[Y9n1sLOYnp'6Z[د[y{tQ^dLz 4P>vӖՏjwĪ>~^Qvx3 ~ZvD((]C0Х\Ltg'xtH{>%KL}ڼ 1o,-iKFqq3ۜBA#v"A=tY$:USlqlB:H%JF,:B 8*.W(FĄ,BM##:'\ "۽ g B4r.U ;q򨭃*Kјm34ZC$r^HO,4I%hA﬒ Inl2PaP DgfBTzQSvDƀgD qej)͜։RU ׍؁NfI %c'Ct&4aC_dݡH;>3.|HQȮ%gP_wI.n(Q.z]kHЈ_hqy2D#_ *{xc<+DΦ.,)~bnW$h"{BmJ|kgm}_~篿s=e/kg! (z!3)rIoqG+PgHq!*]\oy^VF፤jPݢW`%P1/ ' ˑCDD32Wb{iζ:2mE2>^]q/jܫr[}B cUT)'̮wۖj&êM.n?ZWhFy4atQMsŶhwSV :,A 1C_<[bsfi~s,о;0P~Eu69$U-JPhRp7ȅ8y_. 94TPe*Z#?HVCZ6ރ&!4'kvM2Ͷ鐊W⠥V2}ԣ_-y{8Ya4 QnNd)qk_&l(f@ '_\m~`0X+BU6}\BON&@>i3>Mk䞽޸!u`q 4AW($ew(ŢK2dݹq9ySQ&EXdL()6!}b ,KYH3TWV3=$|O3,ntΟ9S_^?IGIĬqr[ -k-"F1_tvu.v:'o￸Fuގ4Y༪f[M~ 12M7oyx_y:i'VX}Q}~ܗ Tyx}qmo?Ÿw~y,~mo/{ysfnq~\CmX6},ɚJ r\qT}T^aQRKPG&8Ť ad!`,~#4ѠQC4ęNYh0؍ ¸Gfq{3BG{\-~i%Fb0BjeyFPnq1 оH>̬=-e)Y{6nda=N{6&-vER,ۉ[P OlIMZV$okR@IKy3nP(B<Fk"%0W7@j*f5tװ?,a%2¡8 4ZDe$wiLUssZ!zT mZEԚrݱ{ёåEG}CBCߝ _8i,BfNHWheӃ QFϊ#Ks#bv%F| _Yd;zxװ?cY3m#(Fٳ+JwƂASM\ϋmM50)z\Ny0w&#IgKEQ~ "³F8\ŪW 7ݯ eUT닑x<ȳ qw0| eU4T(t WTPw{O +ן6POh{1F D4J}ƭ'3'{W/#B&83eT~YݵXs8/EcvwJjIDqT z?$ƭxmnn[A4$1#rs@eB#F,:ܮp++ƧN9vy]+UP]TDd0Rz LN5T fXAsm.unKbQ*oA C8lDa x##?/cˋL;ʶa(eJ,ac>8u ,qqӨÂSDuU?4tV> V Bѯ*c#Ʉ8?0@DNiEB>-k(s=$f{%M|[^Morc&x~qO)˃'in|nq8/ȻrCf3_A'iڈ9=$.9u, j^gr^&оcnW.&z% vMyꚶ/24W%W/i|2d~~ ?ݳ`o+xI  9BgdċFA `EϬa7An* BuoRW3KNhU:bYuuKt<8UX( #M|(`[(fM-y6WBlC(Q d7n8:<NG 4;(** rZdl +FCo)(Ysd&7P)pO1o3޼ۑ,#z{<{'[& pQlf@Q\!k+@ &dy+HWϦDI׊d_zgosPUȶD7MEf]\D{wiU[Ӈ#<(}ti5C\VG< u^ث%WJX%6}3>tcWܹ`>yhVzo3e'3u gldod4YvL<|2-l79~h E~Q]gOsDu`. +QW=oϪJYf0.ZhX,jYj`~q 6Ben~a6`W˖*X'N` [53)B3u>O&Uf5iE dV]N8:|QK 87}Me6uyᢀđphKIh˗'IbU«>aQT bԎR6̛=$Bބ1 X, D۳ B"OGhE*X./nKo??xq̽84xɠz:;cYR2hy)舅VR| As8Ԣ ]/sէ>~gBNGt#YjT89\J\,Dr[E+Zti>p\՝1/~/fZ`l-^ $Qޖ#Q4ܕEVqbaX[ݼ)D md`KL:G"fkqw!fgBgϔUh%s0F1hxq&o R3>ΕCaQowR_xVzYM6\K^/z?X1U"'iQz%w_^uN?تC:<\qەךs,ȫlp5Gp!~eTcZEѿY~xի`)8GrchJ1ׇrp&xx,Ӏgt DR1%aг9%QP) y񧳆 5VMuNO0?&T 'uяQm4Lk]csvGgquɮ`F>g^wXaumeM[(l0HV؎& >U иI;H&f[1UYy_k. 1k cT 'D@ÉaYh)_i>NKYU%j]HZծ -"E.:vLz5&<ʳ!Jȕ0IDźleVսliW+BL"Ccx=[ݴ&+ *O2 JJ7@%2UGBMENiռp ގ6J϶܆֏J% #wDA6|",%i^^U[5ͣh {XG6RgqsWWNe !01}DNgh4_'%q() ƻlll! +xu䀄@nd%)FLd1tw_Q-$7%nE57V]$-D1bIEM95R]ynMzh%= ((1zSN[vZX xɡYW[?ჽBGE^2ݓ>b2C9[iK^hi- ?tގ^P^Ih$K[N~/PWxbgȑ"([}$.ᄑ7K 9m(v8ӛx;ļMOTw~+iOh)ADTe)n3/i5>^ݥ&ب^ǁ}#I]z.#F~C̊6Cڂ#REi4WPa+3/m%*b#z^`菁C0:JЫiaWx#ŧ<(xIJ%!1^N:ƨ m,cHfN.R[Η)l*6_J=Nь[-d[튲O,_)q߱  6C]ˏ?E{tr~՚hm@0,;nm<4[[_DyQ[([;Jv+wZH/O_NWFMĜzTGT>]!nhM./w3{1u[bA$.o\qDH#MEeښlgS!Lx1`wJ/ޚ*c WɵtBZU!ݡեmcGͨ.䧗cƒloozk Mm-8VWBҾӮbs >`\lzD,u-xAZ,Kaʟ>Hg<;X^a1kB1>H + ! [ZhzP|']PE5=jd_,G_R9?,j3S|ppyy<и:Z!m;8}ڣ+9"}|~BÓo)<aZ9CMd1*S/.bd>_Q˓$~IFxow>}=iׯݽ(l@˿ilwTJe_}4{z~˛O˽WZlk L6)RA d\LAU`BҚ4-*Q_%NW3Ҧ|{%9%zb~9BN=#26$j*P@~^X%ch'T |. k)T !܈vs:3/1HM*4Qk}=Z~&!>znӯ\WXWdCj ʛWƕ02 o\QmBjt~Z_)XN:Ӫ|j˾5P%g. V!$ )6/}%#ۯ*M%<*=oK#;#oB C %RjvatT^6ʤz"ƬL, .仿o߇(@XqO&FHMŹX(uAOp ;MKz[R!dE& V4LT0-% knHÁyd[t楥~Zzk5 j bn&@^4@JK³ ':^8@A˘s щ% ^U[::䵿9,k\#QZ Ψ;ɠўwM/Vou1hHWWhq]Xg;Jdd|FL W"ł{EUy2$ bP ҩ1}:NȐ}71d1aY&V"UG9?(2/F;>e#GwènpfKqWܒpCQ،TAc7HRk4M~iV/uC'l"b>LlŔSNNMi))dGAVV ?L#J_+|#Vb8Ig,Kd&k É{,Wi,Be*Z.b(T n5ʉWu|oP%DkU:hV:PͰ_ۨRK3kP'UB X#4# |v\2~TY *i7+M]KD<w1*RJAq' cUB J-?SA5_R,z6 g÷,VXfmC'&ɮ:cE}~I_l.YGxl*)XG",-n4| KŖxkǧ?ckR4m[@X*YEm`ۢb& Xlf6omH<'/GTvA[ZT7 ]z –9Of1Te[ETP\w$ #6R?t#X{QuNS-7b%[ ٶǷ`b4~K+"gMO_ z3Ky "J=^< vTEوܥ&$;lkj]^gf>BZF~0G^5؉+Ά?_Wn+%PU1i~.X t-P^(29 ؤ GN|wd1J9v}Kh/̄XJe61:Z+N:}. 缳aU!THZNDC|AJT 6@58)bHh`G`!t☙N|ܪ4G*/t`K;2.PAIy? s~x`[awY̏Y\gm)w/Kξ1;˭n"e˦6 W Xȯ\B`KSr \,bVfS 2 /Ų}DB$:+rC.Ac ;REd,+f4N'7;7b2eZ6W|3qhqoS;2B%GyN{p%~Pĭc@~?Mm{u BzHK.!p[e,ѽ(iE( GЫfnqim1#L_ofvT}L`,5KI¸3pB2gJlыg۪j|Ӱg:ѭ@|0 d|sޝ'x|?9Pz.V+ XnG[̾~P&ź1*JS7,DJ2&Ƌ arId:XƣL6Q)݉~|CZap*ѡ7zO"yay^2;P:YP֝m?")CHjЅ֥4xB_Q/2| Pq!%[]"_}ţ :QyW?^_(G5O u'0] u'~|bKZQѣz.kyq󋺷0{V \v EZ@a  Q]mD;dY7 n[}ˡQ ,"bƶgBh=Ԕn#2QrT ˟S4Y].ysޟWI4 )5~"#N]4?U{ ۫.f4Vs}?(k2x804`vs؝ -K8prk9й^L;+#[ЍKzbJIk;#:e\D1tvC+yz6R&8L(j+ A[IG#$O(S6"ҏ, r <Dqn#:ףg,FiVp՟/| |"]$$ gS|Oa`|z=P[}_~ 0|hqq, $`r~itƶP~Y3w^Wj:Փja>3p9|"x&)BcAEdfóSm9pxQ!cwD+c~3o2y}<)m@GSչmVu$2<4;gZkÝ7Jށ'8aI#BRxVArPփb]>h8s2@s/]2 6{dY ?P Wr|E͉`)y@ff5/Eax|CiXD뇄b/=^_byk4KaVN(Te';A܌2/eeO$3=YvE#{P;> @A"U"NH0.Vq|B~/OtöW(Gck $Xd C0A ]!_p<尕9P{uk3~4 ~&Q3dP`6m%dU F6ؕV"F N\ ⛟2:N`[DŽP-I½̀#n{U4J)G?ljhk;=(]+(VĞۄ3"Vf1`ۇqPT# / 2qomD%Kt}eMB:m1a@'CWx|͌RkCzLJ&r" gu Ə /U- <\bog`.2ɖf{K }j IQ)-d,#%clhNۍ6\eZrgrϚt"e! Djjozk0 g؎cTaT[b:|e}tJ>9EQ N18J žQU˼u]7.`W:&7owB1e9M]O]QV*]4cV52M~@*4t9'lV3UQ <.o$a4{`u aHBSѬmp>Z8"Vv{cln 4Skp<\AI5zXAl$._Y2>n07r%/{=^qaOG`F2x㏪^~:u;a?ۣAGeu;'(K:&|2sL;xHP-Dpi|@Bv){/K_%8#;`zqrYy $ 0`M/uz)4R҆(iInҶ 5a 84Mن`9(?%7ˎY 4p\!g`>iTwm0p111@ϧl}QVS"jh4Kz/`U)-8"DK˖rut|Jv 6ZCȩ,#}]|#`NB- qpK^n(+w͛:2y:~K\sh^ %$Kw^*[_Jaӆ:RdDbGHEolNA WB7t!:ZrB,Πmŝ;ܝr-"rir`)z@HQI{6Z\Da?*,jAյq%!;6E硎gg/ONc~I{e7BZGx(e\\dnoTǧs&aQELX ښB϶Dt߼u)@2ha8c jP+ U=G]>2OVi]K{Ͷ\bc1OIg -Q7 qZu#%IĂS^J[ +ށc@CHe{bSx3*cY2w4eM;NJtۂH|3Gxg91W< oؙ7):*)M\5l7y O5Fqk+q"h3W~aFdt^MhR4 CW}?Je.Lр No]YSJ?R.qoOeC_.݃ET z??ՌzgLDK%tiU: zʪ8n)zkKQ$3@w~kONe|87V  dr6yJt6S,`>+9O:_ @wE Ė+TSE*B;( zπ,i~k'of_b x*nCˤ@wɽKeqE'^u΂xWg; 39yn>~ӧQyt.]vǣ~J0f?+R`s6~3օEQ#2 㤸wrVpiK/<;cl4,Ivۋ؀bjc~t,'!}Qέ @}0\LLe, 9J=Arˋ-μ3TY"@aފ¶QDfP HqF)"Rn7"G߬tZxѮ^(;(? ،nKy=F:Ǵ*2jlj`[";&&n\[;Ȇǽ,e* ),VR. 9resDW{fu>CD\>3GiᢓɈQ6N{zF xu'b3aiPIzMzYXcivSO1[ 94 R]%`zۊ#S%5ASMk f"J`R5`S5e;'dud_ٽ_OCF{I6rÊWV"_MpR.F%f/h]O.:NiﺓXٳPT"fјaS x%YTClVSzr&90- †8E t4R7~3-*2ZUqѓ}w3v&TOܪK)6Tsc 7Vy//0pJ+۴ojO:$)Pz"ƞbbzK_`28wwtsJ>jIER6aꛩ(E`=wf34c5=Y| 9wiAW"B~7L Ub89(D :͖o,"uΥ>U͈cbx;rRHgr"xqKC;q0/{ZȉEPuu ;gHpn.+$؋7 lǻT9T Hߊ视(4>˥&46@n9.Yq(N^b/ʹȏ mRRxxd =c i1k(O* 7tCd?ЩSX}'L^:!Yt{Mܰ14DΊ0;K 2f ] ; 2&~8,j#BOYi@2``HP2:ca׌*ĶOY0T_.rv4~=IUU!JԳJi19븰gdV(o䊡F~4-1vI663ɐqedIe4UIl/#mKnkH(>̫Fno<omƂvd̾f~DvtE_SE 8R,=ތ&&$7R[mRwsLϦ&S*TLDm)Jū/ wɉ٪XYLd=ǦA CztyoB&~I*~6=?FwFFA4꫖TxͲwch 7$d5/Ɯe>tg]kp1W?ڢQoȳ[wN11U/n%ci 6V mK@k`  pS2P`&駾K-/Ie_ErFx(}KTa1x"Ǎ8kiL bC> ; Hrlo/h"aDqnq׶jR^`yZ0ԚM=$NJ̻^K.ALEMU1: ̰E<uוI*2_=NM'܈2Zܤ%OԸ*jgRw(*C2xoy}%ץk%Dfl]1GS R+ _chhRL.V00l:omV l@o&ƘkwvxXtkvXUTO;ѿ;mŵȩcᙋ48in ?C+UUQ^ӥ:yěʻ hs1 .u *?áڂq؈jULYx6Ԇ15^{d׀RLyΠR8o;^S6ʘ_{q~x,;a =8)M,\ˆ 'mP+:@=3LzB%oH̨FE;zv3_s/ޕ{l"Bk-OmkglH=$uʏ5gy&M5di5VqcBsc:=ތQuɦmʛ/s@.ll}L1&B$7#%"JX"C+}lCzL26ww"{Vum݇#@L9)Ki/qÄpiPu ;- P .yPhs@X> :]G mVIsF-ٮ H~ b6#L;d}ݹ`2sD^IK9ܚXk)*b,a鵹) v{mle2$5Z}Zmh7-x썦SXUqQol jFJՕ~wso1aّA4XY4o W/KUJ3^I)ri{rJNA9/3n@+A9)^pމO^(( sE[;uitr cV"K_^;6I.٥9[x EAv {}+?rfˁE蘆`p^~skcc0G' u*H`n!x޶5/7n#8:sREEao3 Mb [SL Fw8XOƻ`qs:#(8bAzL=X*@eM]),Ȕ_~駼}KlnAZ0Ebc^7HOx>jkeoX>ވ2v Yn{VBЇ߶:k6ŋG4֠:i rmMMBk_޶vk(a4:Ի'/Ƴ#D)BȝHl'nro4 <ư^,nNB'k뙟ģ䦅&]V 3";*9/O5V+IbTԨV9j}lxLq'Q}Ts *(mOx8)bu؉uJ_ŗ_}f_m O?i1xwkEտtİ~:a d}-M#T~n*`6!PS#]kᴌuVs+F(!jjz v2c`'bIQf]6nP_n!pgj{Ww(6ZpD8̶$jBXˌ;Xcݝ;7&e-*ۖmNY4&SkqП]._r2,yR[dU.E="+mZY)y <4XsCKR+ཐF; 0럠++:4ZfvD6e"p"Wg}gwR^ʸɪWn1Iީ7?amF_e 6 >ؕ٣|I35k6蔚Fb]V9 'ERyfjBw<ɺGqB? /fERxZFeѳgzVZv ]ɛ*I,mO 9Э+NB g cUc B1 D^$ _UCS-[ѵL#[_G>}?p2k?/>{,/_yeU?/̨˓|wo.T-cL튌H3j$GEU`3ܾ#ݡ?z*Nn,?4HD LO  )L2|0Iq2uc4N䘝Oias,0l)-6# }Ӵڿ27ÛǛX1l9'-.7fn*"Wɤѻ@ u3#2]Գ}vk^ &eUn>l}4bBاK L7ٰOJpSNRxT<#nkq)nXA=ԅQxW)59͑gւ􆱒&i)3$ayQzTIp-L<nǩiӅQY.(跷k"34/cTҞt"%NgA[=iFFsl#2!u>%wb#Yҫo%o-6+f N" N v T2k*6}?ض쌚W\BԆjUA \Bh"^dz/ PnL@z02)D^=SQumkǑ2 xlgd}K7/}n801og;4ߺ`ACqcB Ts bOdLG8JV9εwff;HZ4t8D (h1{;r8xkwG2Qd1(B:i8_ مk~66 W+SldeǤ- ioDiVW]|Y Ex_VWrU,=MɄV{8Sp\D( ]Ts ,0ŅN- ]ˍxDfx`}%|+Yv*ZJOXޫD'4St D7 dhdGX}?.#(rB@矢a!SG'IR+%}*?xfq]z}k\D3jݻ1S)DQNg̅jht@^ {b:XÆ'03! ϛ 9M6Ќزe%hm2\fSzSM}/4 Z( f@0lF6+V&lеsTp.}vـ EkdưPE:cnu$.St&Q9̈ҵJ_vl()rd݉=oj7[#Xx'Z{T!@ubXH@L&%s8j+10e~1$1ZEf;/tAmzW6ɩx4n1#YZ<ӵX“]t6 i@CcDK'pR@Pqitd<8ٺsJtt Ý 7ZqJosX\ųZ]W0 U@,S$_qe,CPzt}k! AX=z YeV 2u ݂Ji Z$ucSF0T]7pW㤴ig41X-J巷#? 1%h ڨT%1n]k|cOZYCv'1uގ,O.`B"yr>LZ4_x'\tJi )A!4>袯z*Fܑ|KZ[[n!p´d?t0rV]V8hiaQLE>'-؀,%uƬA].G`ʡ}Km[:E!Jg:s5'$mU 5SZ+.T14,Ø(9lqmiӎ\wX akihI3\WY3GG]V/H7,S! )hΕMW `$n%WY1ĕTaYX%aӤ~eHBII@9504DO:cKhzvpRo7?Ň5:sxHo]!aZ}JQlύdLJ`qF *2TZ\b]XT~T$d*RR}aK'9EkO%67 bYp;Nbe/ 딖(msۡov&>F> y20,94iU_/TK ӌ ¾/o߸WAiIŢl[U[ߺ%WFr!hW(`;?!L.ЕWS eZ@:GE3PV$ E mzf?*[ý+K'뇺zY2C gnԈx#H#`F؀Uu mSmEp4pvguslD;˩59D#`{ߝlHR;~3{J3GQ)l0,LՅ AL8>2:aA;F ywБ4D0N ;'볷VCX?e-L35nW:} 0ch-uI5xMw!+􇾩9DLfv9x]ގ<JWaա$&)I~A1l@Ro1iA Djڈ ݚ|;sL3PGWt ww7`7qߔwf>o-%טG^>cj׵p-%=5aeZk>]XIXp$QBc}6&]7u&ROF+3Jcv ~{d cG`y"Q0T:"%a@AIFZh/V'ż8+QoqMmeOȪti >T񽷷C1JD5AOn`(+2Gd5g?t󃧝w_IuDJvh?C079>h=iI#BAa:RщO7Kb^ϿtQ=o#O5sw$ʪ:1Q^5)ݳy<̷{UV)l#pT 1q6fEm2uV\Kz3R]sw@d;NH{738X- x 9iBl`8Y$e`P{F9SҌUGI]lW꠫=sTaJۮQ|K'iY6TNS kv!sNA`-_!]R)B:gԭ][u;HxS693%o_9`:RS4Hbo(B1Єݳ).Ef)O.;$K 3E]faN]睅p&bޮc=CSz6qimcI.q*=(=ٯO\D`we~r>UǺ⇈)r mGm _ x*0[n7$s^qHSQf쵥.3g0<1`lx;G[n/l]u^jok+J kIkVԃ-xrUmF5>6fhs-A9-;t{Y :ɔ`# E%'R)zJs§J88D9|On<#W]mQ>':w?/xGgǏftWDx›AȻdhT bOo߃=ړB;sZoL'^Z = 9f,)9@?o*QO(ӽ1.pJv*~ٶ7F먬PEwď} cแA9ZC?K5z3?JX=M@%*ǥ^>8ҹkldp^zeK}IgG\u1te/$Աi85w|8p^:Iœ/С-Qy~`/Hd#qe]c ӧ#/sP ]Fj=/\L<'S N%ÝIçYTAQs-z@\$Hv`ҷ"(7#*Y^瞭Y;FY#qEfu zrjf-,t|U_1F/U9gC9U87eH ^̲FBڧ R.&gPN~OPht\p(XKk;[Ga !1ap&SW[9=ܩk*!x<%o%:RZ$9$lc%#Nou8J!K1wg$iNv\_G;bSnPK"e='<(4Xpeoo`u_r=wt>OVC8K;=r`pDZpUc{Qٌݿ!;2$m^7Y>,ؑK_ B: _ 57r5DFx@ptptd`_2 VZ3C:0cxT H3iA #36s/JdO}LH]t5+; N YOXI`cb7Aj+. !y\@5CAmUxy6&̞Ccœ7:wy5o{ l3Iڦf;U9Ѭgj+GVajbxPC~ yRs7s c"wA6m9*gZنMHn 䦂.s ǻv0&d,+ 0S{`')Gip0!.PJO-zX3,ԗH=+/.}VP8iRo*h;tLl3`=Њcc(ќawoku;!ۇ[ۇ_/c7/bz0bJ(ak~5s->h_'[y<ְSVhZNd ;6f`CDNt^?CӲO2 ]T彧Eydp_y%歰;[{ºY%BUImRE14DKOJO4[[v~\7xF WJ}?H' ?|oE=F#eOϞݖS^n ׅ{n<ﬓB$d%*ƬgF_W AĢ(*k4o]w~I183usw_7ka[=qJfmYz"f pAHz^F~q*Ե?r|5jN 5TPIA7|+1?p(j5mDvxDUXk%x<-ĕX 3/fM-.^1%MC}u;6FSU,_ƣzʏ[ҿWt㦞6_=}EV̙ʇQw;MML&NF?tZBn!:Rч\@^&nvYޗrfՅ~:Ymve$ltXVQ E"pz[%I=[9v=J`珶tj<TG C˛$0ACph_Ɍ޻){vB7I{8{)xb8]]mVZ.tpcU,%s`&* 3=dtF3Xz9Y\X7B =QaOְ uidR@Lע nqsY4{lYCp \⌭z00VG?.1 l13!C׼5)Lt@oqୌzPKS!Q8AR-setuptools/_vendor/more_itertools/__init__.pyK+U/JU-/*QRPPV/LJ&gcJsǗg+*[YsPKSahy)setuptools/_vendor/more_itertools/more.pywF( s%;wlMah#|{\PٕDTSaY{}. P{ p~Ͳ~L ٶ?}8U]1Ejmf뚯yvkM3pZl;7\iSvޮf6Ug!&?+ d82Tz@{7'2$u. Qli.ӟ] ԥ 8? hJbQFrI4 ekI]Oyɻt c"c/O4Kj p *8[> OId/ %p!|gӧO?C&3Yr0&bxߋ/Ds1%'t<%GǗc0.Lx~a\r'gS}aROm^'@U%J U s5/+΃y l:5J>%29JEeodWgI>ʋP`]7pfd ȳ Y5Ks#_=~v pGɐW Q;ٛjf~76cH3`7Y&LP"У 뜾OHO,U- sjGb,""t<)e&88{f|QޠACU<>MebpQP[XvȹzDTx]?F k(- ,ہpq+)t᱑u0@‘ F[%ZϬlp!aO[!_݄Cl,/=H蒕Pd z䖡149sN*T0u ]M.er4죏滫zob\VWuN?}~V0봆+tЛXio@P <OZ{jta tڍ. DGNɇĝL愂]@ rMcn, 6YMz .MeY+e^Alwֳ6?CřUY …jVNWl`ޖE;ffAzLK{"ThEj=Ӟ H^{Лh"L2(;&<2L<6zb 4e|v\c,6L=`u [IY=:_\'OaYOqZyY5wݟFBE_ԉ鞨_pYKKr"spX#n'xIC0EW"Va+`o iH ekC\_vnv7U"b_Mm$%]OoJLgESB6i$hZb0uCv9v_*[p +s9>t6FR,o`o.Cx۞!Ce;Hm)o _mat?򥻺dSy3lٝ|1捑"A ^s^(l.>Յen^i@ b(wHp ({q(q~H@x6mݓn'f,1 9ujȃxE nddYRVjk-AtKgfc^!C<];bM՘ %W}H& WZ׵ ۖf33b~2iu䅭&2$[ Eؖ{ R!?u0b!X-kߍ)T'd@~eUe橦޸grWtǡOlot5o78s"G DUo\VbQ5`y7xRـCm{8wѡ.o-u4hw}b:ʔTr!FAMYmu3p*Cj4&C4̘j$a@BĽ&_$֤^,& 8"1)Uq-=-O8C<ـUeOaxf948U\>"O5&w&(!3K+jWp‰=֘ p<}AގS-mZ rX(."yZ`?˼h{@ˋ>1OcDԉB;TEŐ_Ź'n#hP|rdzKM Ass@B,ǥܝ#LܞA0Ni{T tsZ3cĬ*gs/0En$ӄmbfOm?`X=tkɺ?jԚhH,|+KuO{/~/~~|?P}s%7YEbkB'7MX6٦?ywxDZXFTh@+nM0C@ 5;~IUި 4M7M,Qf CS@BPD#(kJw1rCfe>C;~=@BlbP-JB^&N@𿷬TD*H'_KAx9C0t YA -Z>A?'4C}|9ף~NTnE.۴&(/ԪD螱2CG,Tܮ@' hw9JN?DȒ]iM)xK&cPj,iU p")^Ef8l@lj tGdx:| G (zED.6|Xޱ 5ZZD>;9{Oei/|d:Q ۖĦWQ\ajg;@@n pr 6Fڔ#zJ$Yiml9,_k\ȿ^W` GI&8PȓHZp*ȭʠϭ^-ɀ+*&G0q=or[)6+!5>_P5 ·,,πZB t'ҝ @Ȑ'P!+ ГZ#qɴ?9?M&瀒JˏD(Hno &’TY@>0ղ0  A3ϊ5j2œ:dVpVW-R3:% Yy6&~Ȳy-e'K- b|4Rr`$ 0e2a܈/QE9Zfd\N=PO1'fwBtVj]) J8d 8*M'BLD0v >~+xp<\P1 沬%6H]3B^i]N/@aU\CB b]ր%*NC}◚C/XE&q;{Q wy2gmJ|u,c{.Od^t;h?{<̗xүD>ZY{}&b-E0|) UZ7%sOo6CfԼ6c{ƛ>I IƁV"$E'*jQ8m@4xPCѶwtQ0*jdt5N"[HzUn?|a 4 ȄH[8W'5مc ˲\ ?K>߿|7/^y׎8\Z973NX@ط |E!YF{*z5vYہouZ/BUCCŐڇAoeڠxSYPib\y% ?Aq )A}>{`0ۡ;7.zMوi&OtƠI^sB`xG6c]/萺{'M{$Fu5Cö>\TkC4nl{sm>bl¨sc|m3}kHGo`VZ|n(Cn+W<|ܮ&D'ԈLz u$fIzcإM_-țCo|ޅM5-ORCU mLn\tiMehHy'kO-(r}y/_@X?r*nx9oYEDdZ2kY .Mуg^lwh]v5荰Cs&sV|{; ӥô"]pb%bk<316:o@<$%/0?(}_3dcY13&oM٤kײ;k$ŞMs[1n%X og*bnnDHe Qt .o%Ѥ~1S\_3k;o+ͭhh Rx+.țnmF",,ߪ@ ~8pzvltj75<ʂ%zÕ+ OG%m(ɦ6(G` Q6]ܤWhbCA/F3y(p)9/t;odyl~y{E_XTeI'1;;iђ|7vf3[1KE3YqDI\$!`p'\"?NѝD) Eo+V{*Y&3}-> Nihk ;

.`81#ijaTy6_)#iڈ!C h )UBH `?ikr81Rv&4JڃFX,*C\hȯJ(3ķzĆ! _9jH`(j㋆v]Ƽwˌ{Ks;94ږWv}Y1Ai02bN e2L9/U=f &,Y:smo3{Z,?&MGeT#hMX-bnLH WT<#}7ܿDcÞW8W}Y4t4/8Wnz{@r豃CDSi\pGV 4<OM8KWڏ$݋^o@ꩇʴ\6x|GF< /;R,f` |6T-Gmj/yfD+|Z[Ɔ <(x0Be?9$>J^:\` Xlz8yqgXaȔUzY駁Lc8©(NF>{ Q$&YdAyⲅFDlr:|U*B7\pe? yMhI1 z-ioml/IS:{{ixߒkIFH C ]ूbWaNzbb 7É ԧ-zb٦>V:tLhNT '^뜺:We2.LI:{ӍjѭbKȐbߩULFvkZ uc;#F/ +ɯiӄ\)6[%+3&DcY0qŚxvg,N|T8-( K%kN L?kN ~X!CSrrVwǗdK9CW pV|k42qPXЪy1S5K +B: $'^/c\4vUNA3X2L=[MDE ͭݕtF#O{Xz *^r|IJPem3w}yC#{XKޢzY9,)5l.zhp›/0kN`X7"*V'sut郫 ^%n^R} eB9kWKPxnU9r=o%脎'D##X81 sIfKe%l@}h$+2-] l?,^8%(XsRMm&N ̅ xl(s%[pPC'&m Y(حxor9$Nf L𴔬ai,ӞzD_:p[TQ&red.'> *m}["0l hTxz*:72 LM$&^jw۲` v[OYb]ZjKۡWa97v;HH>bf¥GB4w3i؉>eΫx  cB b(+&rMkhTrWiR9̾db3S56D@BcZuSc0ݚA ZQu zDHw85$)ף.rΟ2r^:_@+ f=h2EMaH@R#|[Ǖ_?* T n l]ʃ̘G֜L*ʞbO^io]nϽm05/ei̛ rr@zQܧǞv%Kh2;l}]5qFof6kL-,~ZsV0bI%}}(L],73dYX/LeV#[ ]l0Qf:k}$yBkYJ (pôG,J}z(~rE{!2&S6MFNyr3"I-xNsʢ:bѨz:7z0yÉ>yRtA#K5&p/TP sҲLySz_"ATq@`.O"1iזnZ dqWh[ st8:ۦT5N A d~^fd'cFʢO;4 GmV|H潘a-;F ^'R{wa"lYR$MNs__ E))/L/"{ 6,YrF~-Hcc# %\ #Zh Ӹ+áTr5cMs4ܣ߂.b[*e=Hrc=GFC[\w<,`1PF|rz"x<.79?= >0 NߛxNm * ݼ5>so[xچ2UCԱ{Szٛaz}㼖>^H\JP ~eW=dR$"#jUY4)w}g)#ďBs` jxӈ8ѤD 9i=y8斮͕M^_TqŀgPEk4$Fa I^6_GKnjS]:]Rbc)@O.?A Gh92p V{/wRQ. ڨ$3{^HL+뙻Ǐ\{jYI=a%"N. `B'GહUH)fsftBvqբ8YkPUb] y(T+̒pں) `194TX8v2>}:lt,h0x{qlb> oy DUy'gr}"G8yYC23i U-h)p@Diܢ\6ZEP$Ls$hGEuيy7<@cƑuw=AK;?@6Ŵ9Cm_s<a!PL0j*)eLD]ՙPU7R#v M*a(4+.OCЇRqu{dNLo 7sAiA{6zsG 3CQ|\ "Rc~8[gh9c/ %Vc%M]x˵ 0zYb&w/%˙Y!a$PLY8L A sEF&e*CƽnA\I8gxoy/.Lh`ى8m6%%@_r8% }B."=0|Xb_Np&n'a[d#FhҊONeґ*7ޏ;-7< F &B+:ZJg]oMtV#U4AQeFKܚ S%"hi@ȴ wS~5MƦ'1;hi|,d^ x K]3S;b6^(;5׊~Ypao|q)ˣ@L#($h&?ccF1+i}`a5Օ{)W:kK$> c7$_`|_$Q45+g~T `̬e峣J~74IKPgaAA#d4ʇYK0ω)uQt}X+Ax+>_|D/%[ 25)KG1)/vodv T>Xb\"xYD 9 $f::b+0ӥ8fu})D4a&sDR94ǞV" /d'=svVʿ#F\0t!L0BT{= <|Ȯ4mbDޙ$8|r_~Ư%)J e:]dlg NqanS+X jDty;pK?D;< n'O◖W䏡+aHAgg=Գ]) WnxP,:|7!QfdI-?Ć 5ûsF;^uÖFT'罴'DM%6 eyXyQ}1.Yҵm[[uvg\1`iwz_:,Xb,tC!ukil-'SDxCefڛ0h2BM7])udcfk\G8'@nIv4poR$ql%gX\/qI`?w~H@P fHEfB3d3 FQɷ7 ߃q@Ba9r!\p70giH vV⩶;!V'Y~mp$ґ^tU&#"FNcd/Q^DO-,J+uFݍ$ID]g%Ξ1(Gќn)L&۔rjClMKOMt4׻CC3mlQ\cy} bȾraBowЗuJs$(lVkNWBR:cAX۶KToErI+y\bhy3+ԗEbi5pF$-eˉH=ZVr)[GSx^ax ᪥V/+dB`X"H%/0"C{,8 kZI( $iV6SH (~&ƕtvC|S idJusB'?aa2GNvO*/~Q{ge`D%M׷}w#3{{]X 7P(c^\ܸPnN.HA&ɰ\āByLAF+ nC 9r8HhspR"?>xUYF2>"TEۢ &\YJ+[ʼ%>`Ʊ3)0)e{j<90aAhK b'.)mimZ}؎9ÍPR1Ywm<9[nq9M:*-'rəaS34!,!~95yEx4Srpx;zsnd_ c[B)@sc tݩo!v,b$B"B z>S}]Y/ڑkJO2qtlon˄ 'F/"<_i&ݻfU=8jB7 l2w~FyTm7j b,YFI]EZpHR$ໜ\媁RjKdcbB,2A[{wA(|9VFȆs*ueے-˙&{?fs6fKFr} ż$1\mJLSHn`˵抐I gmA//홹wWRƈFi3nym6mʩj b.}v&c̱B?;6:0X@b&+lK+}xkoVhlTc |7N2ʇs/;L{va,6]AfEOkb9ꊆ3+˗?_zճ>N?us܌%&-egʽ;Kލ_scvΒ^oDr%0j?f)dC|^;e{sRo$9N!enX\ej;Mo4M)aDƏ6N6P\ <(k1Ƣ$7eIwm `n]c=LW_G<(iFsdžyD4-Bxr+u, -XƘNĕ׹'P $}Q C%N>x?uioF Y2HgJ6Ǯs0+cN-VŒؖO:7r3Ya v|<}p$@vuFZXQ3Uh{[n;(A)EP6I%J[nYS{??E.pi}+ƒs8͸ܴGΠDA6+2&Y"(:6'i =ZHօ&AeZf<8fT%2^crc?J ~22=7}ȩG}H)ϔ 3BXy'umXQ#aw3ro OH8R(ۨ{px&LI \B_ʃ(K6h䣓Tmk;ݖg(9d֥_bmorE.4b@a]Pf g3dM拍)WEV2[7m540f5bx>QiX!*=& %cV=~zFiEojĴa2}߽?^CQksl^dıs!NƾNez^ 2+xҴAH76諕$3“ڞO}k.aYzGv=j2+xNgy. ¹u\NIucmx,mRnO߃`ٽGvE"]Y5-j"#UT|.:ڱ>1~\Л'-2K 1\|[U^HR¡`¨ne<6Jb9bo#۱u DwSig7Lp0G\/ #xdBr[vTnp!̤yC2`+ɒvū?6}kx:w}׾ I iBp N˯քRf^1A{(Wv ܜ)L{R?Y- Pr.yoLp1/"q6! b|&oH>/_!\rV,bSLqͧGb+3l)ِ@5E7vp \zl)Ơae~r+Y1f]dlCv-ŀDW)ȗ&AW<&PG. }Q/e9hʆB'qt.rB"`điɷV4H#mhb^Yڇ No[!1w§>ȉٽ?@NB/sI_')$b䀱5}SxrQ99׳='zQg#C<V]O]KMA򤄶#3Ե3P_(z\{2cee6qx';ȒGloOJ34ob9>Sk5S7vx !ٺ=+$S2G&_|M\&>?}ґs= t)D'~3sGcԊ]ZǕq8&LAh$kHBu*)<C$XO99e|OqWኛV5kyVfR+ܱ^~X) l?%l/f.nn~}|,Gsq-Xcz<%e @y1~<ÏG@>%'KY1z sGqL.4\LNHP_&c~B'c%b.4vJ OerzK͈!L =l+o֘+.LiU;xC{4Y6m|QpW-}͍`碽z6kTdmdV}=ve[m6|F[ ETj=L 4*w^Njmft̠b͓Kg :rPotRBvIA6l nGbC.|lhryq|ViO1\J=j鶬s$^ɜ]va"AgvoDRnoH^:WCyD`ul|&6Ҟ%m>bpf##Be%e >ꐤjXC[d& 02} ;Xr814`1n9ˠQf$Đ#i\a0oOjhGb6T˴-~!# 8mK`dVMp\h8ݦT{V6_9^ukT[7 =<>{;ipd.Q=hI߅" eI.(AcL0נ%I0g|ѷx˴MM/AkV MIy# +R8[sҽɃ[uE~ @j8-Z%lgĿ107 "+u_Smyy"K}|Y9ȣV,}{at@6d@HK䃁BܙE1PA&$ ҌLN?gڊ{׎_V@dntdTb(sAX65?N'[a4߈GX/mYxSCo9,F/`[IAc@ {[M@g[a{wNiR+I21v`tA\ xNEƱ.p橑O0a{#$p I΀a!N{L9]RkRb4Hfe)d6*Wk[hH&S R )5}KGޟD|AгK;p=N^4c הt ;yf3(j5ل|ovNd/=o 9:9]4%^W&wH>}8|6W2z|nS\/lneJe:|[ǃ̽@1#6D8+,<9!b&0M \$6^b&* cx͒.;}HE75勓yqKbL==ॽIRʒ ;AYtاk֛>kvOsc>Z6sޣOcy`"mRn6= k4,(ZI>9y<2{.l&/i"J[D!?4`~s}jBD!7^d 4T{\;FaF&6VޟƹYL"AaatהE(oeV^6wc/,iVooy 1Bm9g# 2SQ |lUX%=y$RL[!"!Q@TƔ*Vtw>i- fl5b-mVёi \;`f|K"|kv}]nGRJhGJSgGSJg[0Nڰ[f ;7 =]cq& `\'`F0Q(O>;XwktY(>mX^Èӹ[)G1Wdn~|Ke#(lE,zOvҴ!F.O i mjܶ |12[J"# y9d?fP/8sx}K|$ v7o40P4ᇆWF!!Q lJڤ5ts QwJDJSHvWF{a "L|">YnQH*h)l/t->dd#HPDr_IၟwM /߄L@cCz_dSܣ$D$C>>zϏ#`52c;ɡИߵQs̔V1t]u/c4Hahk%%ӅuwQttWΒ7SVSo(PzcӐ8SZ 5Xlr'D2@s,t1;Z9T׻0;Ej=)ߥz_4'x3:Z/lJynjH8w(d|jrޔT cOQ:v68@ ]@۰§YZL1lX2IϺ#):6y 8aPCԊ]$!@j [J괐,aNQ8nc1éj0EطjЯV;qD B38\fN&lM<(E]xCt*ul볏>B]=*+҃? 0]ʣJ4$#d=Ca9Jj(E@]W4jyjn;5ǶJE8 iNf| SVAFj[]-\l%eMv܆hq@ݬUɮJ4pg50{v.feN;.ml*9{ͽTU MtA=YE-$BB%v0^YA;TŽ}m?FlJZW)^T)`K0{1l/m sŽ)/@& YI e'BDA $}pFc|IeɆ&zY  ӁTJKgI)I~YMYڍbfhK6sKBq:l~{\-cÏc F"bhFJ.+;%&! Mk"$#sEw4E3O 5}>2 r6H!A;ٱd!OJbKan:s+͝FO'e>aHh/>c Oؙ/S#3lF!T l<g~5B'=Ɏ&}FNo[.v&K X<}n0$[qsY[u5/֋c[+fE̜I(۔Ѐmk;$.]tu:B/7SscX hb&V5Gؔ 6W7K:l. QgFtMypDqKb@F1'64>׷d'.;XfM|ʡ{6f̍]r A`gn=US9 Mj9\nN7{l6(9c?gi9#䡐-彊b".Qc<]_ֽ6~MOxKOu:6#k{e4%莒@>d{(7Z]oT/p3&(X"HA?SB 7#FgBYN7=a0J7q![+mokIBao8<;Q~ j[#B8&Vͱ i2mu@Yi)qaN).u%t@߈obP{`-jM.)-N1"c<5},\8=<x8̔wxswrJA9~s;%#^{ܲnFY3>Od3i(.`Q;.Ej Scb c١*UrJ &*]ì#QꗿTF1H}MQLee_HB0g4E5-d.o'ܴbU1,.&ԥ@,# h[g$)ⶬ2EѤ֙ rMTь-05$5ݑd<khEolK:Bbr} `lhì~1)Ш?N͆pՍ'> u{*Э9ɿaʻ@˰e{^/>%8Ձ̠+92![%xI,6UB5BCeF ,OuiH]TH3 X'^ORk:eͤgA\.\ݺɁm.C[|1  R}}2!+>۰Qf&^|#9Ho_{ŘqR.w%[1?[1ɘF>v 2Y8 W\٠Y2wəX pz=W<9;!=xcw V&?P0 vM~yߘElَ,JlY!,DyMCŊ)oF&*+8v0+,2̇c>}1BB\Q?'cdɜd+n3FAIž/O_?$_?u >{a;~OZ2~т6E -*;4_'˫73}2gZV,ZGl'X 'Kg73licS(ߍ~YZ =Bf"RiGqtmM(" Ƌ3벜&f<Go~qgw>G Hŝ MoYЃQS (Js:ndM/PGA{SqhJlILmbf3Z@Irh&AiT#wUO~#`%>+-na!P!Ǚdع0XŒriɓc@b i*oEN?v &_K~.֪ uCu?M5^kT&+p]wNX]aȯUSd(ȑ4Pp**YWaƝ Լt!#-mJvև੪J">-(I{Z3PS7Q2%2SX\VfڔS"mIAgEqTF b8?R6 "C4V3h۰VASd q0o 3?ax~h8aС@~=GKZsy|PYgOlFgef3>/:b .6B2[éT:M%MV㜱 =u6w X@p#;8g@ #Z̳pa0+ͽ(Qf^L$c;JmSf4=,Й4ڭ״klBd,f,V䙳2vłvZ]ΗA( FV#nhWv)bL#!RWk I-G*6搎ی?,ZĆybpPz#B\fߣ!Ƙ4KXR ??\XlwrxjS|{Z{SuZG̶4B79?i,:_p둜gJ" 9mL M8H7/Qv kyߤwS֑h2WX½)fc,Q``)LX5Dq-ٟ渾5K̺ uC&G3k,o45Ǿd%6~g##@YiJ)3w,{z*6F^A``GvȔȬ)S<| Ai @ j&o|G>p"iƙﯶ1fԇ 46+ MB|ah8_cvzG 4nf*J|o~[F;ЂgW3oaHZqmOw0{* -FIC=zg({?2j`{hGɐ-L$pq}=x :x'&V^>q!HWh<JB8J Vj:)J7=J-]/ jdtM#<"vQ?c[Q=cãI626h|! zR75 He `?),8D*s{ag8nnXCSq%=ڥ;c9"H, t"$Iw+#֌eRniP>8?S~CbO&gdD)vKIs c$ ي҆RcM,hXÜқʝ ]13%.֟WjOn)ՔYZ`|5L#9R.rM0\Ŕ#n‰]lcʹ& WTLv^!I)ziQ;e$@$$Tٚp؎+YI Gr”z:1!Bez-X`zzM̟zM  Eg˾ rg`jGcJ赞A^HjB6 f{J"Ę骨 I.+&\A`n_7 Bqg*dpQ޹@f(Vүc}lA5ݼH㙇7PEki/?p4JDŴ|VD4O]""g*(Nud!G25rS!18JdW那@Ssu@"bL{Ʀ*8wPRi .(ع"9#ifc]vB:_ B5oėsRoD&h55JW9B8|W{0ph $9\Q,DO{`Ll)A^~غ a"[vo2C-v}5:٣+ HOC3J$MmϷfEү`ӒB1%Wld03la%G< %ס;[꫇ n'a7sI[b/ѭBڷ~ݸxXTtW1gEJ&t>d箩݉%?4˿޼B@7"AE Y2t% vЙD4h:>N/4ɢP|Qz=H?3\ 86==DNȷ [SetLdF7:5؏{&H[el ĝW#渱V5OLԮ7- HC%*xkJEg~!J #ԍ}}v0nPo6GB"lzi?[tcs~˖wHX&5dr %\ nnǓlp;͙Ջfz{Ћ}wc-;o5sq'scLooP4<֮AmidYU{h}T&x9¿AB= {qI+?b'|.+$ a`aqXlHyb֏,̍ku2a(jo&ᄋ2llw-t.j (zW9Xx~a],/|]򈾍:5_o@b#̕dG?+ew%5D_PKSʀ8?,setuptools/_vendor/more_itertools/recipes.py;ks6+pN]Rh$d7x晚ڭV&w{.5Ej ʖ_?"E{|DAot7Z矶iU!MNaTuK#:oUJ|==;{SbhWտԫF6GjnzJ).zV{#WQaĝ| BFөHmwW/^ uyaw|q޵&@Ɯ=y]ʒi'{oI]r&_~'uz͸}گǼTuڔ:/S7lr3ݲ20mȨwm0 ėQ0r<;[.eY.Z>n(]?u b*yFֺ1m~κm*H="SꐫQlˈnx'T>Qiug}<;CUGG=3{cD0UIe{7]fPijVYWz ;iYdIH;YJ]L Nٚ |!L +ׯ_3T~&x_R1OW|" ϲUgT2[D⫊!<3x-8 ;WqE8]׳1Xkw5%fHh8XhVEpөx& rq!C[!sEر^V&Ё0p`U ߺphtkIHM'DBxyCصi8 z*Y'r2` kQp%b2,:Wr|*_ T$φe9+yz+ }]>k72/eߖ&0'`ћh_f|30I05EB][y(Uuٞt/*7,g:9U;3%Hs Z э*5 GwTu~}kI\j`-t<C~±U~}"cb_wtxR${unuc+Ah,}1,˞"N4g߈0*iaFye.kQ͡"'\fKE5M{gca6dQڀ6ʯeGG,*wdc쫽. plW觮2A]鳂س48Ϧ;.gC YrfR483sR`L@ޜK[t.ВcpEM1o_:$K^l=(GW;yP9 >ÔTa:Fy hAOYE9=1!ns[H? ٰGUC RZW)CZƩ%_Szԛ*byHNQ Yy1&B=eW)HY%6'F{.&xF!c2.R%{'>K >^2pmrޒ`w.+!*Z9qe+p]E"0)ЫSGhuk ޳R'z'Jq.CāR~4V%[ūo?_ JpHj/{ bF$lt6JiE4w KW{@dxBZpސ@PQl~'IM_t زJjr:с,WZ&ԘևۼIC1WQr1/*ma%y6GpmU9 >4M00ZD)̧ ͦ%(/15܍`w\l%8k}Pp}uo0Xu~Q^ޒF^sFoF2_hW^wjs LjJwk1/Ic Ppխ`L*彂44?dT9D|f}e/uC$/[1.. +wv IIw% T_ZqR#a)x(:vCɢhXjG9 |j\p /r0e LaxPq':Azi3]3] #B#~R"Y B0 ?1j6l*愀@rba /wb[1 ,Au_/C2HκNUumE&Ni0u|^,\x }-IOZ=S֚l 66ڂݘf⁂؎5Y YEѫX1#7- ;WKwα7{j8*N0; %7vbAąA3].d87@+8 tFf3Xx#>QoQ,7k|r*(4z-B3 p!$0e.-.lĐᐳ5ߜ5BqN&zѧ;o Pٯ`]!߸3>V49(3=6t1"W>[dp6%~QըWy)p {1C*9#Þns-<Rڢڻ~DƪC Qj)>'Z]=}sbY/}-zmݐu ֛ɈcqCG48vް6jy3eg%}\Cuhe^E@kT@u8);%Fo۷o߽{O3yS6 Zc:6%56BÕ)N;+$?+ǂJ9Ew{e j짤8cAZ ll<ː ,kJzO&d{f^6;PC']Lcn8lI zYل%Rԏ'7xd+r|-n4ka ._]5&GiӐYVC}L?ʊxS~FN7d 6EU4e*>ȳy &/KSҌd<5 EAh-%siJqL:3-.ؘKR(2BW&vonY,]%4o(O'9oe_;J93cw`שK|(rS _Z ۫z{ xKlMۯ|}]9s&:ӽHC.JeK~Nʻڵ(*:Bd+"E#uw30CV ZrǚZmz\/pGoC8SaR%a X!qe@oEY׻Rŀ9ZNw.Bnw1r1j0,}#o5,[kIQ XC lԞ#Qm z  M&pS՝iXScN'v@xf~3xۓe(=yGgueP\2x|+ 8j3}'>݅X8WpNZ0]Ʉ3ίA딲uBbNm$W5F=sՓr[iAC]`E oi˳U95"׉(:TX-%/Gp8B@:]KNplg?i"PȅĢV#S}!bzv~O!$ _xB3шxE } Oc5L9!%fB9_Tɩ?6^Tq"J]xmؼWޡ ;F1qE2sQw bB') зXVcN4h6bx4J?.O!g X ,c~*໬nE+x~du (QGOvNxb}~, >u{?@K4`SGL䮿+w_V]EIK @ 0m1Hc;Ƌ*Nt1ᓂ'uޢ}suuatnξa3;|zfi;^ę5qbEp}^4̈v1pPKSYf)setuptools/_vendor/packaging/__about__.pyMMk0 "6` e :v#9vBlݜC^IGG Bej4-&^Q8-%lci)uwx;UdFkr{m}Ft?HdYE,2O^L,, XŒ)re"&%)'EFCm~W;a#ZRm%—6I (4h$`Vse5X% nmk%d 'vMq[jP}:;XQd #D/˝"ne*S-69~PKS(setuptools/_vendor/packaging/__init__.pyMj0 E 1i!2.Ea&C77QY.:7WG6@oB]4mq A;dA}xLe9XNCfs fxy{97u.`(X!_O -ɡ t(ƺP+3y6Ek~"S^QbU4l)}*rM\@ +J.Y#|a|6= b(`QMPKS*:c,*setuptools/_vendor/packaging/_manylinux.pyZs` A^5qRYlMeɵU9G*%&Ҳr2ɳba"d#o4,nodB4ʪêZ$wHe(G"KXq̳K$cg(xy,iOZ*/K+9R0^KYu!X6W:%ᙸa]Y,Y"XKQzXE'Hd E'2qb#Bitۀ N,YX `2=v_>9?e? c^,SX#<'oe."XlI{ĀQnũKO3y,#k?g(b8zP X4oKi[+h7GΎo^c/ACq|~tugSn4~:zs~OQ ݛ`.w˫z>?z{Ӂ!9%ٛ)OO'3x|n_L7_^Igd.s2UR!bzDy3f[?,MhQyo|A^.Ze)aovV{!zr3jN}$|!CHlDu~8s:>rO/ݡW[D{d(x&tS%Dv|R9[r2%OeU;+)KW4CFI 6}GNiue)jfTbYVx7J|RylQ#u,b)' C(D dr CW!2 yXj9JsxP[ERxxUD-aG|}qݡ e덋|gk7,j:nc 2!1֗}g2b' M:(ոcs3vx[S,Dd7lY]߬ bů^94s ܬet~ϰI 豼p"RYSM ̶XNu D(P&fYfdQnaP\0v=S55W;ΜQA݋g@_:-N+L=8;c6;#\?\!T<,p~>FL#B*Q ,O|$\PrJX"tZ!;ʿKrCx. 8&)( i"]VR˅>וG*6h2wof?Kjn*c"H4kQnJGlGݑ} 'RBȅ.Q*U{ƪ1#(ng"&.{ʣQ?˪ɎQDٯ03|E5hN ZISU4)__H6/<,ZG XLy,P/.JU#uU`0jJC]1NUX"8]d&"j KADWz@ KzX?P͡R" lpj̲XJ\[x1qh~AeIg ܎঵>9EjATdBad/QV-WT8!P=N{G: DP} PygqA.zGelҜEm4}P#8=\(M{A =[b`ZCFbb!sFAEV 1DHE,CJH3<[Ÿi()1>רT -5n *\hCҴ0mg.էȀnsGW!3ڙLJ@?˭gl@=$Ąq [z/x}/=? it }Y fiG<0mH_96ȪCMoxջ:d"e鞍ihkw_Ym m_qQ!y{>ۍğhVjۓl/I;.k`QJ-F3AZlȺ>e)JRV2ʑuxtF!V }cطXL &taFS1UQqK#Hjys+(+jO!RMʲ #9u`^55)mz!Y@Y=-zۂfm TB}3`]͌w-Ȏ6[r8+߅HF_uov\B(;{ּग़]v` eR'6)TR2Ih]ueZ4KiZ`M5[oF ]JֲAh#k5IkjI=pFn1 5z^p1;{_  8G^}IngG Ͷ};bXCjo$-EFFk͎0$I/†2:8zZwP;uF otf⃄J?SYK3=[YI^!э;9|fy1ob]Uw=VCmz@mkuu</jc9PKSo0*setuptools/_vendor/packaging/_musllinux.pyW[s6~ׯ8<,pNYv5&Ƴ/HPšYLf{/mg9p߹ k86M-Ln@Um)@VM)* l " [Y5{ЭRRmzoi&T"R Uk)p×-Yh#ih$Ţ.ʊ-[)Zٺ.MP7Bs[aGXfծ]gN2 ,/>Laa=)oZt>4uh[L&( Ղiq1C BQ)=R*;j6|VAYH8a'ef䯂$7\yJnMɜTH '}dt>.$ q:=k ;WDZ.x1zPlmx#eieuu\8?9=o_go/3.(w.z[4Z螡iDfªur"m=<{ymϘlkqJܗ{zd88N!:!bZ׺BV­a8 2KqMF ,g^* 6U[2=5"JpOBb #϶R ~!BFNx"uX}W 5`l4B@lAl:+QCKz. #מSk%N=3>='3>WWWm|_gpPקGkiو?~StO>y8S[0VC[/ 4mҍ v5I+*\,N|^;r#+zߓ$UQ;[-:~JV#j'E DAsq'%"' @-dr89Ȼ!:4ccZU`{]rlIo.s=+xhsw0 α$ 5Mݾ^[A<<:d%7ҟQ}uZ0B6uPTcaHeUHүy4&NZuU*v; N ժ+ޟσRF e1: B|Ln⹞N0ŧzkyu^+u'TwG˧~Zabn ̍>BЏ pVVA r#'h(MRvߍe!q++^DJC&TkE>FeM=:+ Sʱ"Ԩ E1Mhm+a$b6UEzqfvN?CɉM2_pLr''KCcܠ:{JPw J4p Î}PDžqDtt24Ƈ!elm,F{׋)JRDy*ťF"50ϴj\g>;xP,\ D&zx:91C0^֧m2Zgھsһ~Yg3ݝXۊ.o:d/48yJk=73;4xAF !QM Fr9f|oO[I~0> 6{)0Et/P)~uK ꟦HScI UKYh @~ebfr=O14V \읅ڇfđ&]1"MD$3lk 7:h(D%T> 3uqJbNdG+Ӡoqthyv /ʯPKSqt i]+setuptools/_vendor/packaging/_structures.pyk0{`eX`?:(^Zv >5#M\_v;^I8}),B"1)RT3UD 4G :o*aӕ 'w1peϻKM;vr~Ymw󂪝3ZSv;0Xi+H@DBȐ6 ZX\(Ae00Y`t FAx A/Yr[B$D]ټtNǠSjaƥoF/BX,qb&bh cmRyPDǽ=(79&(,ΈA6bI|a߾pBW9i/007} -⏘=czs=AbԺR5qPKSXQx -!'setuptools/_vendor/packaging/markers.pyYmo8_"!b #.v`I0VcmeQKIIsi DJr+.b gF/6&/uK R+k&mf4[F&v52h?',&7L9/'/Or-_jhrŘ<98ZK9&8ol@ypA2 0f ͋:L]TLPy μd#4U^=$+h]O-[E4U$)]p8 1ikQm8bqA~~6r̒#.UXþ˵iӰ]L`;'6dY]@pܵyFQ0[u4DwC8-yNR[CEA9y7i֬)͈z $rLQN9Zd׎S%MMp(TJӧ@N=DN.LoO0kV6ǘ_W-[7:!-~dA xdq< 靺fHE Rdy:lt9ܘp Grs6͈@M ;IND^?{N(NϓY'۳ULi!#UƹIniЉ ZN8V)G #h[,_Ȝ0$ЪMl y 4GLB>'VQ[ &FaA-.Ef ^j N juy @6֖w In@M JIhr2A^W[,^zrYs`H=/ `]/YRL=$oW g0s|>c[ Yt4D;=l$,Z ڳIw^*G>FA=j^y+n!D-"2&"n7V !;e tf%_o%z$Y+N_ȓI*3V׉&i݋;zXfE~Ah_PKSX\,setuptools/_vendor/packaging/requirements.pyWr6}WɱI:LF02j+ɹTp`R@]@JE/"̮݃SAi H.X.XB6y8׌HWK=tȝsChh7J& SߋFӨT9^`օHe,8Yu$# 4D8j]p KHWhó, ֔ ,y"nuRR!;d0RAfՠCc6 &7kYPnA@r@u~bu欣[ :LY.5svnǂ'Ƌ1.xzfLY_ӞOi4ANX3x,UR66 GVxzM]>۶ ]ѧ$l,9} <ο#\\gl8 3c?U5#T*Bԫܯq80M'F= j"Fpuߌ~Ah;KYv2kdihڊa9< zPfcyj42N?"vʱ2=3677GNgx~ޟDC ꬲsyսZN gK@*1G&UMOJ0/\7 Ik*Oȩ (`A+W@Rw"!F@ 64ݰL7}jiOGzYl Lوs07*RLmK–$U`ű'XƆˮ'O^Q3b~:Hn[V;`- *0 )[eU$ νڜY@f3GO{aw*PDjr5Hz}GMIcG^ovk v¡W=oorOWrN']ܦ, 9eޮ*ٜIʺ{ b?BkŠ4OlשGZ!JZZnWtm{sF5ͪ.5dzIhxYNT]DgglXb?9r/:~SͲ*jJwPjU4 X%W**PiϕZD,vbNI})'I%vqHlˮȨjTQ 5 6԰JX(IV EkrPxDVHγ(5 lLU [Y۹TjUb sx (.a%Hr*|M3V({q3ui"/B㾁yVAuQq3˾Uh9dL"c2qRhoa2 R܉Q [>ALl)6,,(Kq5J2 yTl"_6,po!!Qkb]ghQ]Y50mb T@MfávNB*+Ɗ)ĕ [sI^kRC<<ɤJ/dᆢmwTIVp18G`W|Ƴ!ΡgU\ Q p4oMP[~vIE#IvbMQ_(ЧC w'i0Ni"3©Mi>*;OP" 4|4:`N<m3HSi!yvH}mfAZfYm3kS\Z'@ C36h. *X٬$EԚ&7rhSv뛅rѫ>s}Y6x䜃)ʵ$ M! 5.mɄ꿐4!XJ{?C)/"Hm0`a1Ƭ\9\ eO')載uJKUX[F)蜵nVLJa[kPAMtGl:+JReH{!tqwZf32 'dP9Q}:f).7`$"/Q  #{[ 5B5LV5!7?1x?ZɣA} P0b$\) /c jZp p) :jfU,/gY'I:=x,7+"Y-؟`mY.I䵒4z6prcڴc-t`k+`s\kܹBh|]W =iUkWsڶ3Oa?O2ij؁h08t#op9=DNx&s{Xr!먼)@1ObU Z'H6(.qtppuۢ$;RczD$J8 (+J@Ԛ]!!Rv,֎Jb'p$p'#AD|>aG_89N UL&S;,}s%|Z$*] }]bYV`DK<2G#L*X/ fdšH X{!wu7csU,6Y|PS"h ס?uV7-udvz.LOF!h{mЁ-Ҭִ%``;:Mhˣy'Pu`ӒHƘl<(2@ԗt!hS,IJfe :3&:!fFsbXӹ)3S8'3qi va#TM\jug5|x P^aSK s6%;m8luX mPv" BݹG-9qX$ǎSXML#Zӟ=3Ts*%r5i 8h\Pv-8MՊ_? zx޻3z"UR˜7>cst@M?s}|Ŗ`&77M$&uV]mi*]j ϧ5n7H?b\sd| [{cx]Ou83dNLyrqU!;)BL['lo{' 2(d{7~nOHZI>oϓYdW5m/MDh( tͲƸЌoV3 OPzI_Msf `t?z`([3ɡ7ݽz ȴ IT/)B3si;#t_hj_]KM_dh[RjIupca^no2hT!=8V @+0qb eE`5iY5&7Z~_NxڮjP͸5;γJSjrfmᖱ8GZĆu@uyVXG]'<'2%)Q xspLΣMVS6xV %nG6]:&cѬ0ϡq-S9$;-ۃ>9'_v''2 L ̌*k9 ă2b&yV7C{4n@.qe5y8 W/@cr4:9THTYT ,HL`=D`Г~ N>bP wt,{۶{Fs45tbh\1r1>0ishc++xq7S+W$^,,y8AfsH5"lHVtw;N1)1tܬ0ܗ4}2w!&ש!tJ(V$ˑtpn흧qn1mKϘoܥiTrG1QSgS bnhib(GK?TvIBf} Hd)GyNa;SQ,IǐΦfWϏ Y-CLuc]br1uη5bbƘ!AMrTjؾnMi0z!:(e^z-Pl5MdeC6IZ w]8gx3)i0 v}t>i?ߘh 57 =\0 Hb'WeuEJOcߡ65RWVj$70: Bƨ"(OT|%:ʧ%/LD`4V;% χu[ݭ8Y2I13ʛ8XSaX`+k/YwK5at.v8 U<?IxXgwWըC^:us޺ =z Yc=+KZNwBڅh: `]`-K)ߎӂ2Jv9 ?[LiJV$W ʺRT ^*Q+Y ơ &qվBG\렠kAye⺄srAOsb[;sFC\o7Aq/:bv;b\ ib N;j]ֻ>hǚsJ5.s5z1Ĥ 7"/AsWzQW.7 w=dk:3޵ amsnYbڽko;˙Z.DBg~LѶ1saF-Xa.:x^xg6MԌ.a%/+wUp^ZZdkiu*6ĂU[  /wnߞPч'&3`a`]Gc$VA=ikU^ao`+&gbΗť |1nxaV֪"ۼpEv$ڐ 2$ȅ.)NNwOxD{pG8 sT).`WKzsu!WbUR>D+^Rë!Zر^EqdǏڃi͓4>F`Q"p4&#G F&n#'So=xri/F帨 &)Ȩ!4:]a` ߏ87FE$+-.jLP)oTөchĩK9X[`kϕŰP-F9XWJTwg)`+ILڟXOCd* ˪R<𕶂`֦ ߂@"30FdryL+bUd=<;z/2 =G]dr XD$t/锌*նMVPC-ʡ1la{-Bbh'_–^*BV!]Tx\ϣNuʼ;Ocj406L3f>,4`x1Su7/MnʟWrj \O;ֆd_||ϒp_\*t% [VPvۭ`+RG&M&7ߍF(q$mu踻 %F߀(t`0  hp[L3yaՂGBEeem*̈ݗ]!_EYTw6xwNuFKM SN?UpMS.WG[]76:{gm+]>ьTۮ3S:6hU#[7XWNī* UkZjA2m%͐re2aW~f5pnD^!oPox'Gs 0`BF%ꣳax*j|[e lfT0|޲,ʾۊޭgiR$ĈSr[ pM.5# 9Q]խ-vz%$[3N$cX\5y+V_qVj%Y2Y'6aE>b%yJ`N>pN??|r'YU T,j EŪxYDd2Ī,e/m%5 X{ȗrSO3q`%"Z?c?>'_>~<RK@#ĢǪ'O=v%w`AꨬkINo ziS_rRǎGP|u#3? aTtO,awZ@Pd^ƶ_9_,"~,`b0ODU-Ͽgn4ųi Bo'gol=f)ir0}^V\NPjՕ& T:NJT8 JVM mQW§; Pkvuu$,lJ;O#K#]ı̊Z1,,ADXɅoc'tsj|ʗC䢎PlIb68+nl}.r!r(+n@xpὙer  +~6.tO^ٍ2voIs`Xqq}0J1$d_To,.e+JN@_%kĊ \*hR)!Qur&IIX\rWI~WxBݓFvI9(Ͳ"v\)ЦV`A@YYi*e.foYr6%LP'+f~!H90)#X_Wj30 #LL 1hlXrlf-m&TEĒ&!`δC&8OG]BoLmQcR+p4ӅRD^-_"A":k1d6Bz~Ŏp#.Oh#6!ݑ bwėuwvm0.pgBq" BdIMCJ˹HBˆt7$y6!Gc"w)\CK){ ?̵qd)@d8)A\*UǼ#@ѯAk$&i3ml%0+JXQq̢]ߢ23whlGeX+Y8]nqּQ :Ck^XSΎ! E2:tZ&9Rg`HA}{>֎s Ye/KS@u.8^}kVpB а\ $g\%u VN2E䐱AI_p?`-Z=Wq2BjllXAƘA4* \pPJH^u)^6`z%\ !el-t^Ǯ]2LlӨ\@qUXLܺ%8 z]h40zCځiD?~'Wvߙ0X.Nhr(RpeXχ>'uУX㣙^\Y \G ۷;1=5j<Zg[-p(ƋFdPlAU*HR(wu:rajpɔVjSv8{rn(@ʹAqFE?ʰg })nֲyfB,6 D  I~sL ϐght{efZJS2?>E 05DŔ3j3#荰֥ԂS]wZM5h/ LFzk̽ JY.fRe)/6e'9N7sGu=?3D%}-xm2-@#A~ BԠC)v@-ѺpugDu桋Y킗5UUT >; [?ŢSpNz"W<8LRHi_2ֶ!V|?>ѣ=q) j$Vg;w&o躻tֆ@lL@v󉿠񸇮deVق\pPvN[c uU_/) m1/ zOK8ق &%)88xW}6C"l葳Ѣۨ!2vީz|k "< Ϝy' =< Wp 5:u ġs`}ͤ'QnvĦ\.`?(jG0\Q8L'Ur% x +E#i5/쩷J6@A .qc !ZZ$t;wl|/a6!ΦCk =uۭY=?q?3K}å-y>baƨu= %V QF|us}eɿ&*(&sO4g]I?4 g$%NJTϡ}*U-B,BƳ Qd`w@KiXHIUKT0(˅[AE|F@t9lD&r/P6vzhPr|{WDG-9gsn)ƅ>*)P- t?2-뀢m}ϖ[ź1(QfY솸bl/Jm^EE'eY+* ]5f%'OnUH`:[럴&ym㣶;>;%_9A]K8;ePKSA3h%setuptools/_vendor/packaging/utils.pyWnF}WL"cp\@.`pIUɑ ew/wf)KZ\=rb1PY!Tk ra)j>B$Ef^odb@gN/Nž))Mm"PXJ-Tdo!r]h24uyb]JeH[(s[b wX\7%ExY>fiW&YF2YFP&J㜎u\#sZ\'\]JY̹BFf޹Tk2syFRqoB<Ѻe  >'y'JIN< E]+5,J.T2U .'𷸵E&4kDgߓ%זe`Y !ӤH-`sK!,3)Ptm\s;=;Lp~⃑Ryz?xýʷ&>_P?oR nB7<\haQ؝ne\*;sGvHFz69G}O=^c.Kvy^H8tT[ٿ﫴n\'7Z^jgмjYgGމ6l^x~5d:_&=E]{!QV] $ttst>ʂ~.FΌY~2+Q,Vi.njD&>oR|aN}o9Q6|;v;iZ=7Q5A#sHc.Gr: e )"gk>] xD_Sñ:gD:ET'ZkF_j؎*: ++60֌\ixwhQ(Ḳؙ"Mʋt ,ks-XMfS6 zc3׬7HBMKbSy{rb%Lr~(oL^ofmi ic}{hxm[:j.<Ts~" ="G>]`Pr!0eQ 57,ɥu WdJ1M4;*lT|^5sL۾ 5jX)pa UFXZ2z=^f^Kui~ij%)E$ewH1I|F)K_/N: 0NnϩMZC+V(]1^ XEqwadƫDdi֯y2QL"[$v~l 9Tg>u_ʌ.Rн)>>y[2 rs/ )e[,P0EBRos`Fm\=?{3f|okYMC4?7~me;[oC0z3a_Nn'O"I@_Ϧm<ք﷫yW}kD0ЇZd7ʠvtmSރPTlHsuE༣iO`"W'o|Y*Q^aG+%1ll4 WEEX*H!Vx YrE((Q}2J!#Li֚ǟϏ=Yʄ眎.Sd*U{Xf9]XyyHiM]T=Q`@#J 2IL:y\U};5z@&m0 4[%=vi1smL>+dGКBԊ(=tIulG~V ~YԾҙm'-Ih[4~Tw$wJ:`dy0a8muφV-3r]ۚ#'y2˺Vxt \d3#üݐ8`oiyGu 9MӞxۼ Ә۾yRJT7cOgWf4#yBg'՘u=vΦ#}{iLgJ4V 7n|6&6&HYF 8T{y5[lĎӒ!ԬԈu 8fCbd0whWupzvZO>Gl~y7 V+P}`5NV.m?4$VZŪ }Sl*J4橞9U橾PtMAWUIk,GGϘ]_+s3mmsj>G!=2$Yo6V5bId0SdȢ2F/؁ݚWlGbpeSVb 8XTAmD.Nia+BTLY.ɴFSA$RP[9 ˜qǭV]DjmětaetShNFJoF;-ǭYZ[|䤅2Ƅܭn.4JV,ѳÚn61oYPz;S7y }Xp6s-Dž΢?;wGpHNӜV9=^Z;y eg]B0kӹ]yE&{J<߽,1݉>2^?c b͑  TgԱ 25IU#;E\oe뙁.3@mB8zʹ Hֈ+õ2od7{B U@'i5N}@ BAԵ?Sr&kCLIņ[zaHP7A0TQZ "Kp!O2X`-jtNN G4è_0}ZuIG@ÿ~,7C$p{5NR.EYSM-/}~Ew9~G%mkoʨ; _kSv`]<PKS=/M setuptools/command/alias.pyUKo0 Wp hb9 0`40[Nْ']}ö|P"H~Z*tYr* X ~8i&g#ژ(N 6h[«D[Z1]laQtYC(h DUqဧ}KZHh:"{ѶϹ ͬ,qHdqhs`>V;%t0ObrO'mL'x E+{̵lR@FTP2|Ok1i 9,{ @R$~ReY+$Ϻ2)[R2 ks(.X3SH*b~=uzEe20AHڊ''.v iϱ=2LlapvG";_;l2Jx.?fa;RcL3MM 1if#3&$s.){\ 7t vIOl'~ђGϤvxӱIK3}s^:W&vdO pl3CJ]oT{n:Mr!=K\Xs>:ɸNOᣳKJwdc:#CٹwG [ 7@T fxRY=za&y~ 6$$?.=NZ)׍)չ0)L%?iK?sn͂ MWUHWb?/Re %D/K"zhogϩ 47bG$"$˥.$1W࿆edoGjDy-8hh{}#l' q|k`}qEPKSut@setuptools/command/bdist_egg.py;ks8rWrH)}Im*s9j벵Yod!1#8$H @h жHvϛ2ݔ2ۭVy꒥pa_mC6"j۷{z X~`=߷w<zfGN7O_%+u/B_70yy/nZ ;>d\am}^[Loġ,C%2g0)զEUmΦȫp6qjU- PUW(>[10O(PXᚺlߖG۪M ڲ0 Y0B>ǟ~q+ٵF)}r0"՗Wg_K/4^fy}f(d [$ rz65g15%$ހlvj`&&`m_^OBA<& ^$'U[tHv; =p^e(;' _f*NdUmxN.>pFQ`n8f!y4d_kyd`iG|Q MIz B-E.fA(#&#kBnI jYfʠge>S%;a;;wM&EV`CBLς*h8դV,bkހH?SS~@m]&U]]!* 0ʯKW@+A l ᰄAq99=zt6'˪D42x>z{ 74(7Y 4Nw)0dη-O;>Y%kÒ+d9Ϯyz g+0/^k悰yIQj^O(}`DjsJ Ԧq-YzhԴ>z|Ʋȏ5NZV)ĊYaC6Kei{ 3]{-LAo2Ϲ{! ;EJٰw/_C˟>e=zDG zyS?4Z*c nV dkt\<3x>Ehڿg<{wՇ] 7~<[=rmՋa0_ w~H džÖrf}Y?qHD/|4Ds<GpZ$>Gur9I#kk- &3Po3z­/´;B<ѾKI1޿. Ǟ]UQ.St{l v]uט*`G!:/(&8K78p6ƏU}w[Ĝsph߾=x槱6h1 CƜ8 '$7tЗjXSDZX ́- ا< tMn|Wmw̴̆ö Q,s#F8lLRj"Xv¢EtD<ʹ}R5C*MPUԭ$p%Rq]ЀTߺl5㔽̷|8f:߹9ַi TCAL \iFVӟ//?xE!=Dkȭ VA6G,y1>Yp' ;=>^2u[ǐɻL"`ΘW{xvMx 횆lm\)MvїGcQL? T|:\xYh׎gDxY* ^Sh#0i$yV\Q_> }4C/YJPD f"e nb!wlt׷`B$3"8*`­"MbzD\iF'fa'YaG,ޱ`y7>}/r!pKŵ,Z n S;o⨪ r y@e(c=R>~Sf3fiZE!ùǔ$V~ە?.>J}Wp|jW0x,a(LFC70Bx2eYGU:7 +2k=֒=,$OR"'"ẞo;@TBZdFְCǜ@RX{zl唠R qxZ 4@"!n6=ة*囉A"acRW#7iI-[:Z[qKKvHδf* ߿k_uܦ5켭su ‹qxϳO>^ZZ<1\.|(p!KࠕZǩ8CQx}"O#ëLbV3[n۫OBoE-e?;\ (3WP|^V3fUVb[~$xl SZZJżKQ=:d/x5oءV< YV]b':3p,٦HF#k4,TS¦0w:iq+rnEt *Vف?a2X@' uZ̊/XX)ss14FS)aPԒ"o2y\&)"t^Jۿ$aq. ISP{z%̭ h}~ Ǔx`nÞ˸O1q膊ٺ1"%h[],6v55Fm4SS/x DZ96A1guզ>b9S-9NaOUl&F|o1Ϩ>x~M҂̌.|")q< _ y|f)K>n0~FREbNGrL¢Mؿ6] dؿ`3?BVR?/_,!%v^(F^FQ>k䏶zmqqo= _}^F=&SWff\_;^KUqw>?|R_V2z(  x sڴ;B,eeWu `ԝ|e= `B^:H1^ǰI#aSQdj=> D-^ =H̪>_eng_)ؒ_;D 0U)2yCY wPI8ߧEKw1Xrg+=t:b$jzz9 aNH6OC:Y{b;]7,*zO}??B(4%\{A4Sbܵ!O G kgsq+;Y9r9)X`<9GrJO벍: I OA\ h !:C$ MtIgUbĚaZj( HX'4Q(FfRF:,Di_&|yjK_F(O:i@iO_vyjGY VP'.HUF!ӝ̴XIE@MNAdo~xyy ѣ(@uF}r3؈Z'6)km0}xLm82m.(=ĺn,O[~^y>-PKSȹsetuptools/command/bdist_rpm.pyM0CJH=.P赴l)=b{KBqò#qjE4gd[4ʇyQǴU9ۃ` 5i;_3=x cca-2טUEM{Ivx(f3:pBh-xgeA!2[=YჀǨR5)nԲGr}<_$Xg,:@-$6"k}yXrhѳeIĿKHe g!\<19 ߿.8u 3#4isꍓ?/9@BCYLqb? de$ (yPxA"ż|wmQb.q і 1&Tӻﮝ'|cbxC[ +oZEƜZn:)¡%Y]u`~[^޲W(5lSO^sM5_- Azo|g^9p?PKS!1? setuptools/command/build_clib.pyXM6WL h@MMbaf"ڍ}gHI֗MemsfpPJ/ SUBJ@80VVGk%Zk#'&2m(ǖUbgF3}-}'kzZJ8Wh)@Ͷ+g^o,ģhxIƂ7P`v4JgOU}W )%>9/ CD]\]*HZ*LvBO4 A`C?%T"<12DR Fm| qO܁DG'8!ZDe=,iTIDѯB%( J[iQ!H"Q9.QDTU{[ޗrR " (*J}RcQ2PA4#5͛[ aG{"c+4ҙpq;>NJ {&hTg c;yu'iҮ$^{JUjұ.0m-6 P*̲+.>]jMH$`jf:ڲweDP5+Rcmхe k'Jtkx  nٷc%[Lz `]1|]֛A+CI{Itx?$^ޝL+'C:Zp" ,>!tN66A[[2>O\*!OQh-:cpm+d6ѝEA(竖/֝k[Ü}g.M<6Lo63&+/k,#~RJ!DN!ߖTF+Gsۑ:h~c"XDc"'v&S R]oaRsnfG uڂ^ҲZ"ma0۶uTIO~ dm%H &RYЧh<'{ `>MlwϜJ,]q!Y(N]DNpy~qac,Mjnꎟjo.Y6u7l 6≗MK<43|n7JuPHgq"%,:eNZ~7kY2Pz>RD :~y8'$ G'<#F~zZs YVPKSIV3setuptools/command/build_ext.pyko~FƁTB3Ou{4\1S$åV̾|ռvfv^m5rQOh?b5{Vry+k{wWo޿ˮ~yͧWW (eJyHׇ*2qT%ˊCf$6e%2hP=f:bZX d-26 M)A;( ۊ>SPg>"!i_Uv~?6-jY6z[;;^,}/m`/6MTY[fȄ?kR +>dg-DQ=0UuLB~Mq+ v +٤ذo/)-geq{e>7GUJqˁ-؞ &` _ Xo_^ëՃEmxg| [7bQ~se`L\fi^i[`- ݕR(mZNq(;X#9l* էNVG }+#l-v-ȪQ31i%l٭z"X4mN+ޞl -(XE_ ZrEzM1+aӧO'Q_0Ml? k]n'm0o֕]i@g{߈n@8Ŀ6Ur~΋ce9?8 WinruًOpy꽂W>B<x/fyy%̋ڂ") QI蝔b@3en kb]VHMX}{ku08DɊ*:t"IEBfcrP[PXʲ=sՄu¬Ð`Vwagd=TLUGq0dHJWۡHVe}KiQWc pz('hDEu 7CѠ;ή͚èk|F9ϻ X^߄?h__')!4舉ICoڦn5 N)v^8_e~DKlrP$~zAEA({bY'*xKp%}~&H86b\ޒTz;*;UoKk(&¨Q{ >jZ}*H ÐS7m;Ȏ\Y⸲![D= P5kWKяKIDaY"m+3QtfلfŔJ܋aSFK+& Xzy:\5-4"5c>ZRNwg.FPPJX.Iy1f>J<"Pygh $b* (gXa1Uy3T8A(֝2ARQ;ݍwM@bo!R k31[;~}i,|Q>>>J<"2fQ78S3vTofThJ<"❍3NGnYf&V (@(>j2a^-Y=W-ҽH+#2j̺+(q9ӡ"InP8,d3ޯ+e~2KwBK:v`]j@%4bY kUa;Qц[c8Kj$m;>Px5!jՉ7DL/ %#sLz,nc&rh!+I,86ҋ*iVK=f 黎HtAA(=dАO\8 QN/ d_MOFHA]7i-$`/#Ű%8D,:LQ\ tBT2 lle[ WC:jC'Tn^o [],/vjּ 1J:}R^e'^t?J^)58XQ-WhŀMj>yrFsuigpqB>PS0]q+{Fc:e"Y=ֹ z ݐ)#b~W<<'Qo+#cy!Fې6*5$N[S5S\ͰQr`!|-u-릧Dwc!(Ri:*_X{P4:)K=jgmG R=,(=A n·5)⩜1;= U8mIIߜfW32b{1$h +f=b_Ej:g>ْv5n^v٬ViSyՏAWA̭15VB?㣾vNp1A|뺎g-9aZUy/;'! x_3&Uoo~ÿUW:Z%u U( 1TEHi$u@Ł(꽝;Za.v-sO9}{'{KIs!CDlCݾ[oS7g$xWטRAgw<}φj}*=:SJ}<:M_;qקm|/),)`N AKcL$x"9ؒxPꦧJ/|thXK2'T~j"-Քtgd=03~:5 Ax.#P `^dA1d*$߃jĐNHB&-e}D sEPp-hߋ"1! 04ĕp3_`*zbVDLR;>Оj1 +wNFͱn0~bQ;FJQh"̓ ' p6Z7b1x卮E+>ݾR2zav(%*a)DP Z5Cdr#rpx-uq6 K ]i%=o6~^l@oy 7oCAA06z=zJ2)>$Sň ,Qt3F ،ICAvѬvץqV[hk?55~[5@Pe]%wcTk"ww5ozBv*+,<ǶN/%g&m0.-c Z2[8rEǑ mh)VHiT4QZ*@̑?!·*2 "rC98|8 ɂwL|E,^϶0>"*{1|El)S5fV|y}|t D|&&pAcdi'dFNLj7䣄rVUNɓs׌PbǽH{8c*>}Gz zl{28b"OV0'Qē"YsxU!nBj65GY>eD\WU=_wddI eE;؈)4=ՀT|jL=)BX%:U5:Bqd z ."E[? 4QƴZ aP3][d'6 & :%ʇ ͬ򔶔/Ͻqe-,H u a]u"LіBϘ5P*pZ[Fɑ&!goz.2=?]ƨ[U˓ #@o7dcbDa-[vlCrt 7 DVh6aJ%c3l"Q*U4ͦH_<;ۿ؂j>-Fe zڍ5:͊bnNm}> gŠ(B`aRmxP MKqka#hXvu֚>%Yh mv\wS5ֻ_]z}8a0@eda.Y_O#͇q ) O-g0d\ ~:hZsXƎ=ۚ'o˚%rE@(b3 2h6۲e+6^X{* /' Eٖyߜiâ^[JOe;tAΦpVMx: EGػوņ3foo kKFf􊽎p3C`-I&PX44͓>[Z]E\͐,Wyj=y ^aoȸV18pk.о_O^|C> pklYǿBL>9x:бM{2Xl 1ʍa;_/>7yKBFU(# .gޕ_C8_뿥)tֳ밫 my@iIyOd,s-nA}sD?tZ4~Kzuݪӈ]rM8 _Wfcg :_OL:>m5JW&KTiq=6 ^GQJҤ$|pG=26RvɶMi!ضC)jǍ<"8pOfh aW-tam8JTsyC Llcvg`~C>&}0c=$v}Eksni^{h"6#fc-ȕ`xx?A} nfC ՟]m.q?T-kI%kݖ%Y5Ceёɢ3\}|KUqCj:$IirK3[To)6R|8h 6EPRd,tInt۔ mEc*Z,bh b_PKS&ddsetuptools/command/develop.pyY[6~( $%yA@ohhYTIj<9H${)A~ٱo4q]l~kPY~ƈ{T# 4NTpIދpm0\sp:F&QO!hLP^2)D "ݝ+k)מogs򶆎V"t?UeTPO(TZqAX( A.zmF,ج!Pq-[!662]%|K8Ѽܛ3܃#V?oj+B^Bf'Lf; DPggcn~E~( G)7pJ 78 \1[i)g1/`LӚjinRƛ\YySRNĪ([7b(3*ͷG:Ē6l2Kk8f-Xei!7h ӁAX̀T0(u0u]- 4~(+x7TZX`ar*Aز XW]e;LԘɍ)J ;廔!Yt3c z?Jr:"B1߼ }=jmSؘdSP^1R匥 u+)fWi4e7Jۥa,K}}JB72(eO8`FXnސWt %LVWXk4 RR7E~ŽmYGgn%3Ŭ ;MaUت, 5jľXewoV$3 qVyRVA.!Vh幂x|s!c~;v*(2SC1:`WL TIM+;/.~mgCe =2ߟr3amr&;cN~})j9sg謱Vwc K=xk/oS ~ };``/ro :'%#%BkxT*.ƃtzE>}DAPi Uhp ƅ>nf0IhvG΢Kh`&ς@|rم8UDx05(5kg ;ώrO\xv*檦 crp+n̘zdrkV3$TY.w'hPkPb9Mm9 GnKe7vP"0Z sn< >?qQڲ9ni4p;0z%w%lT-Bf{Eh]ױm~B^/ ^ÛִÁlfg~욳WȬv5,-py7Z < 㪓Nߗ_ Ɂʄ xFX]}nXtո~W8W2 )a7ZˁoVrWG^'cgPKSsetuptools/command/dist_info.py}Sn0+V #P*䘅X/v 09{uPP9ԁ'{Pcc,`, ?6*Gf\5,7RC~WL1);Gjڙ!E#=/cN@\)GWQ9ô m?+Gg2hAkl e­ z>PKy*؇`4mN}sÄ|'tY,['!J}? ^|9p)٧w .d9_] wi2>MnuPKS t[O"setuptools/command/easy_install.pyͽi{DZ(]b] dZlJEccK:'3CrB HѾ)'y΋ꭺhnW/W3yE7*;olԛͺ٬rз|Wˬ9ϖuzʮZfoof`[.ʋgzb6=@m6ӬrhrsbCjN3r]wuOWef]e[h?xPeowU⠺v[qy*/m[-; 4yٯW`:X5gY6mO﫾|rfs]P/avg]_\m֩ڶi;S+sE{qћ-+? %J/$h4j.-i;XuY n<[ԪTE[5myq%7ˢP-v}yJ+,vkcPo-uI_}"RgkAKD }hć-MnwmQvp`>wg۶YT}>u[}  aԔqT{8O>-8-hK^gSm z 4>*U*m*"of4mD @G_m13ӢzyDUn.v[EWzZX{u; 7,i\: ,vmU6}u޵َ-m4m;7|o/˾ǷM{}Tz^7ndp\ ,z޼->ug[&v5>{lfaUk~eu^Vh!99`=@<4qPO](XmQ>z%Ř=ƅV:?TP)l_cVwů>;|ʶ50REZthfjs)3G-Zsi2D`WmY 2'&VzeαܴLAv- PseR לT!Y_uqU`^Ϛ0E&@ل`ھfeW}KZ9㚢A gNM}8|3Twb}OK,aJWT o[c.@9,q?xbumKCƓpR޷UնϾXxh(W]edjZq9m>0R w_h,U I6|V:R!bv2 ǰemqh3r%9퀡:2 ,mO>fjpc{ 4FMؔYs4mȕ7Jؗ+ֳk&XuMWPi`]60-ȉ<3۷H`V&>8 CL w~E^0[ -jSj)o٢by ?2Em ٮ]Qk%'d;PlN%#V UGΩ;exSr/E^meȕI}wUUm!8#ޯBk@"C[$75Ry6{h1{Ny2HgoEv"}rw޴K U6xJho.kI"X<[% k 6)q qC5g@܆+{ T120 XV| 3J=ۇTׂpmE}^kD8kҦMxl,xbV첁cF%V70 _wzㄉY\`V 0HnSn˦6"UhTFXѻoZ\5s^9ڼFے v̈́ >MwV] modЙ!x=oǯI*{Z l@6fF@rgc }a^4 岂yn+/Lޥ+MwU;iӚᠸiT˽;ЅT!t8zO_xnh?8>_zU[q6k) @xo+FN `0FyRql}1.pf.­\c@*3e߁aRyA wy6ͪjp6L;#IZ \,aCpe/cd J-O)9Dk"}L7HA`4#5r٣%<[5J#4:[Ϫ%2YV,ۢݥ yWJƼ0rDx>MDU#WtYt$o⸛eܽ3hS19@:Mo >Yy L 4M3U&]u7ueYx< *kXۮGP0ΟT?>yjY_c% >_>]:\fjv=yrF jQX/j4:M mjAm1ݧVY-Me>&pTj]S & l+{6Ͳ +f갢f U|?({rUmV>?o>_06O >@|Gk5ԨzLWvi#%q/z<vPb^";,?~0UR U88cR neɜJw Oj+y26pG!cr^(Q勞}W*VuQoJ|5?J/Q6P ū[H}>IWAKƪip_bv#az|;^ Q'V,BM1ㇺ7S); p<}^/:o3PyN( ҫA*.΃jS4{LP.xb{,q/]|x׺N(7h`Ϙj rT uo98s SpL)y^ԍgm^Rv,{~ѽE Agh6}#s|=kg4a>5=sd;kB➎Ʈxv 81,MЂGP=ތ(e{d@Һ7hm+m.vIͮzN_69V ?r98VċLmZ'm+Z~p$;'u| ǬmtO<Z~}RCzVѾEr:pnn.+:``tt>T8")NѮz\yw'3d? V1Z>E'xt\٧~w܏8/bʥFJ^sQvJCuV^vqWȨ!4PDh2׻L+dMOVN$i<f {I!rB\`2z+1Wzm!ZIJ/ջ}MҘvDFX:C4Ws4+(ͦ!nS,>GXR|ףtC !{btWVos HjI7@v^=7 48SdP ՝(N<;I4-~kYfV\RL|"Bޖ*zҹs"!|tbz4EiaN MM=ۍjQ"2w&[a7sE5SC\Q_ SFѝmWMtQwyTJљ),rD#&t}B" 0u6e}]qPc]>mRbF .4Mm)Whw0j-K K4|ׂ1?G'\e'r]:OH Բ=fHgfafЖZ!, p[v(k:S@\*@o>xĎ}V5Խh^1fͱDx&u$ Tۑp<_eWVZ>+|_y/H+q$A?Hh©{gt @giH3''٘OGٙw (TvlNrx2_Te ^ڕ /ީ8.,0;U4St|IC>v-i/diρ f 4/ӭdwľS-FঃkEhiޖXtR#oPʜПZ3 RG5t71%Iȃbkj=h)p$,)#m9gv~M]zA4ΟYNCI^1VUUzqwW|e.0k!4 fjߒ/b]if7xp,{=Ã@NyQodSAKuEkMȬd~ <ovbqS@|1D6-{wd;knнI!YǑt}eᩖzRPϩ/kٸJr.5oy߱ZdFޢJzӠvt?mw]2w;#xiW>u"v_^诬-/eQw qFx[শ0(%ih21 u/\' $2 o9E0CTR$|r4qGE0@x!itEn;yпP~m 2\+vRڢJq?p cM)<^b&:]Z@G;W!<ק԰nƺ-#iEOM #ldhb/Ʋ@>~_ћ[2A1`/AfjInO֢b}tz^SM=ń}"dNgWaH:O9ML=qQ²}͔mTK&\Nq=c'1lYff, @d){Jw$TBQAaPɾnD$(t6Hs Z4ҏ'6%EN'nhv"!޾8>>9l<+3BNh;D7:k"kޥW3 e>I<=3v)Mec`ȟܥp^_x߼OV|! c S#}n[2:? ?`ȰWxH\吥GwK+\KĂ t6jc#KDWG~о6?X%ֈ)%rjD&.@ԩBW`[^[C3(a 8S=Bq3[xAwF{Iјj_*O^ٛӷ4fucimZ!w sANu[K) qVH,3cCM^m&p_}Nr,صh(.e>@Xg) .cOFAYo}􊤧;3!=>P[_U'ak8E! w2ͅVtdLN*Nxmw-%Mjs RF{4`EzA0meriso8'39wh#`yC,W߶;3W} {$6WNg.4s`?mTfd%oBnXKn` &F`iYF.@C-W:O4c5V;SGXCGka$ה z.px0[z @"N$~&kEqF.\4%$>lO-T## h0F ^$-|6Sq%jVB1!'9ԥhdXC!z͡r$1[A` D4*%|tJ*Ԑb41RapmMb+@\aM݁IB(W`LX1] o nZcD]n<kHIlьEܷ0 vxlc/ĺ8TJLYGjp\s&ӫj [tFl.1QP7Uvin)}{Kи5G_4;'iJx5OnC< t[8< /ŏxk]: Qem8,R)i/.|Pv񾺣iD# {Cԡ`v Ct;Pė3&`e7,qoZ9٘;ԦK1dxdŠ󹟬#tIbVLFH^fp1S&^@ 1/t i)"BNu]*n;+ULEt݃=12ZɦV˲S*=V<= =ݤu>nh,?C}`EQ -a5!AU m٢#O׿P ceE4pmk\N!x=T ^jG:y[ޣ&<]ӯ@c>QOcԈC&Nw8I:SlSJg ҙpBM(J1M-s%ڼpu]3_.M2 PsݫpTxS%9_eTFAOǯPXHA&Pu (=]y^Wj]CcH%}.oϪfOަXr1AQv[rqU -lEQ>\v2UE <04yW[" #M*)IM{NғPx[pZ }6QA=Y*i8HZ]vlI@,0:IJԿq8g`Om +5A{䚣<1s[Ewd^sݽAEϥ sٯn^!#imx/ zsPfiYdEAyz_x߆5-BcT-;ErqkEҰ^iρ>) ywD ΚMQBLA~97d3cOk@xKk{hh –\ 5a6!ɠenJ癩mhDc%Ӝ!6ȟR$udΤm-7wնw:ӌAv\Uָ^1Z]O?RW1Vf PLjn6ȤmE,;gF1(XOʰb„*l^atzaCE&[}loU.fL4BdwY0 OWmhrjs,KsaZ4V(5t̷10DoObFf8b) SL+{# ^()97SL[,g]İ`]vI&hZS\"2O0Ι~fnF@ 04ҖuoPBy׿f4ya[@2z*64,12=uI 4MHhm.ql|%ziަaUTC\(Qu*& qqToꌡ f U 2E%#V[Dw1O/ީ|e&AN8qK$fc /5CKYkQPrGd (^_|QT+:!*zE1sXQ#,Meo5Dk"W{HV"´  =u'E~w 25*pjBc=أb$ݱba%,Rj"xJ"%4g{M I0M?b_:2ݿ80B F0 CRaӿPaݦo43IMN&&S163tL X>y]fщ218 o69S|oT8٫_5V];=޲~"f]+qاi:4_ߗ*"qM]Z9htYšXHl0 vR ,mڭަ]Yr`\f0BsY1nZ5APVap0U;<'zv6yo uq(;(F ws榺%-ꮀ}%VEKTyS"F f4J# 24txa3o!2L&a;}NBh>̞] TǍ1>з&W2r3.γ}+s;Xi:4PxMv@}(P{r$`K3!.c W #]a{4V4k/D{PڕcIu5/io&Ef/n 6T!bULb _*зe\>}/ADZ[9Ël(;*JlBCs^{m\an8VQ$~tq2/4̏cD4@}# Vx#T;:ݵ&fս"(ȩcJN`kmRXZo+1f4Q8f1^RHV>ێLX˧4x@7zlvJČ-P`z_3=ϞΟ| 7mv5ͮQGlFNs1 ƬZv@g=1W ɼfͮ'^ʰAj5p [4muŋRo#jj9Q@ҽ'@gPByHZǢDfG~tDsMKKH+mߤYmak61\RVsOgHZx{R²ʿK.+y{܅ئc_G]ẹF-RgC!0v~ o '%;kl(f oz#Bf pIZiyj L-; O 4q r=)]b}] Ӻ?:E$+;gYf=_0Vn7rG>;#%`UmA vXŜݘC(sH]:3u^-b:$z%ʮ:TGax$f!j 9o# zKݛi|0'L#&P`} ÇT3`i*@prꌽ!=uCQMFSg3^W/& Yh~1n 6llc-fQwPnuvqzy>f,ߝr.Ƌ== E#߂j=߭[Jl fÄ^ aM@B xIP5G7 (v݊y;r!a 62uӱṼ6F6kTHp3L)[X(*Տh=Gm1=" //L@a)&Dx`@])yykSsXGRrb*ȘE#y<$新q1rvt>R`xyg-(~:*Xtkd75jľwhMYrXW*8}$G< -(c*!&Î3]0cU'Yy$ȹʘ \-YUBDnIH'rv3o´ȞD8{yi/Y.(0SxS}߇mE 1{ZLǪMl5XV6<}~>"GJH gCM?X|78_~=0)Sp'c aNoW 79pD٘ޏN%J?p/0\V*RD4Ň.0h'@.EO|#]V:薬=H]kJnx85S GRdO-~*6_ޕi(wdcOWdxfd)]@|(oCv`Qffw"7D!I DPWk"iAX9[kFwsi@CFhehC>@X&u]H{fc2L FV!sQBm9ڈ2M&OA1NuQ1Gk\,Mb[Y[VfzcNL=λ>^bN$afrB־bB9qXZ#6VP±[<t̉OuʁK'P{C%06*e@N+T;^C ʭb0yZF!Mm_sH4t~ CT:&lLSW;#a_k.ćt 7dDd]:/Y m٥j&,br V-5-hws:&l.bWigIsD&́sX3.I3k/UBYa#QL8*Mwmz8w qt`܁\a`  B=@`09v<`uW0ȥ`޵Hn5:kֹK (tt jEZOG}Oa#kN[)"P ,0lw1/I"mn ܾsHpvS@h$$KK_ وs O`CF`hg012ʸ^?N>͉p]3rCyZPS7ɕlZ#yr%忡425$Aq /~$ٓ旿$_L◿8qαPԶFh{ƦĚxqqnUH$(6*V0re dU}G/uϫ0H Of}Ifǫ뵘<=.fsmm} B >~Yk9[cAGY/wVx7^hI9dc+fSC#;(Uq>Sng wzɞ6ݲJBE &#jmI•[WQE)h9çY=S\Z_A ):/<{.EqGj:W=Y=]qrD@NA#6ưnBvIIJ}MCϴD] 4NkM+x\. pCkj,`"L}f8JXOֿ:\h[).] _(saAK7JՈ{'b{}ѸegI! |FJl/9XRBbl?e17?\8l5xyr'KSWcJQ1 c#di! zHgF%>w/^|{pD~ },U^Bf=eRc}l"h?A8(|2ytY1hN` (EnfZZkp!ae2_VGj8Ku;Q ܋vg],;]|!~]V#F>Ar]T/Ph^뛓o煡'H#Mgm& Dmeh)x!#]E:ed#Iw4jw\$s<鎃:[s Do(>Z Q.8q*n :YTfc'IS$#X&5i u9_ Ly,,RN(SQZκvU2K_]U͖Hqn Eäb7ܵ̉w9M0`Ye~: 4hDx]6 |}+y><4ZSIZe`)aѷu]/.6@um3Tf۬YP9RG7r\:Z Iv>$ʤy4r%NqPכO-S@|#na4֙G3xV4CIat1kwI{xaթޑɻbXY`9n׊zB1;4`]ʖߕ7/[=w Hˁ=»SRv2/6ws3tQL)(Fla js}l&N~y:q?~urU=}&QffU}0AШrna//hzE nj>}]3J.ެBO><}gկ_L3OLSxuh?/E!lS0SQ f0F;&-P`Kb&PvŤ@F(ҞWx=JQphSu3? PKN"~ bcQ2鮣",0kC+RuY:)T?11:Αu2v$WuPSʧ ^O ؘ0*ʂQ>~ R2"~AtDd_䮕uh"8Ds|ʉ( ɳSؐxIV>= aiȶ*2Ճ]U|t! o>qjoH8̞rOy6cAf'R V#rr?0&2+ 2fjmʖա[#;P@+/ď}o@ecb)"Ʉv$M~"i0ဦ٭oZzUwU/tӼX]/u(.W=:PHdH5kk^#xe|Ptǣ,1#|rEmBlh $΃!+y\ 7e8RڡS!BN{Z Y=+Hpp[0c.Z9|Wխt)Ԗ 2s:+D_+r;sBqɎ$flgLMoCOuMY,vmҞؐt[㘅zX]E;=I ՐPbEVO[ LZ\'߭cvPi[[&J"Kk:Kמ %w\`\ւmoO9y0Z[5OFn?xgr|߼8qxׯ#2+oƤNJt!2Axg 銀 ~muà2@J{ <sows Ow՛E{pzŰ%}3^Yc_ONaψgU4Z#qJvjҽ/ӶS)^-sJ玽:qSq8t+.C&WY`9~)iV] i'aA# GΉS@ٷTeÎ)I@$G 5v>&vRI;Stt;?E`QΨ}YxF鑨~+hqnˈ[yucr:kn䜴/ŊFHCw3 P#H.gYQcGp]6r@͋ha..-m  nQI$VЙuY:Ϩ-ߡP\2qa$K iKp7LjV AJL3 Uu^+*9gG@ Lz> iЁliԶx+, 2.,Vbޡ֍]ՙO> kqEK-1wzU [ię=Js() ӈDwP):"k.+\1٢Tx1{Ӵ&ݡ(KgFtD(օ2l{ oW+gj1X0eͼl*jb~y?Ş,!13l@Knlj)f(lg'Z~ 4 "QŢ(-TDna("auB(Pܩs=V渷\' dZ|62)m`> ([6>L7 uA9J8D>QuǗpipeMqY-G 1M#^`k>40 PE5<s+x8M aym()0slxh-xyЖqmqv#OAy.?e&6X  F1r~5j.;D|y'Htո?[JIRf\ HmǏe^ẎrnekT|QA{]-0گu텄ݢN8 N[1(EA|g@|jٮqh|.kA#i)fё _ٳ5)bԷ |4kLF??lav<'V4_+/ X$yPq:$$M8\ٔ\ 4)Ⱗ;S`wjWŷt7 >UQ*{ϳwrLC X EE'$qi4"*siE|^ `\kvtHdV?<.>ݶij3׭窇dOO֔/؈2UY)Ƒj;Ƽ=$<W DfYHوjH24n$B č?SdxGU$gƴraIpk;tMXҬw*ظu3 5kJ1 2E6':?sEm#6ˉ g O*Zy@Y3GԬ)>YLY@J1՝w|΄g7u" X옷Õ_,z1jvw[+sfb fY"wFW%7fmga30qwWy1 ]=~}C0 3xۧ~I &<}uo]v3zh{cj/ߤ9hdܘjKaH(ӛc@|gTA4V( $㮸z/̜|Ut t?Ap\9O?~8(PF[р簵&EDE#YŘ/!GqXø7-Ew~vJsa!TҍX-"V$-٢Fs UhQGKY y[>hႳ·<HE<͵j  (*1Yvs ÓՔ#N( +XFx5/˨?T“ 3Dy#W ;^T}0~t{Mm$zc Ff;cg=DGEB+Jm`KʔH{MAuonoxGˆyZM'^lН"^PŮ_y"SC[&Y)~$ #OD Br8pu'r6܇38ٌ^ursM/ ޸er@k$-`foQfkv5vO1rl#Yq]qe{2;LNH⍗ =9;Hxa3{*V[fˋCEoٙ?Eoez^ `/29Ǯ, ;Jk3: )O뭑псxW3l;}<[1?.Jn\h}4W{ wYt@._D(MKǫ`0Nv-Z j 8`ue{WP}_=Ijx(i m7^@{k6hƘ E{CPM5}E'NpGlc8,=g>-ު@fH`k+X7L6[smu bFwݒɑQ"Z8p z x{Hfc+a6 6#MŤg:Ϯj{s >5ބo@*(L(ł$ICyMB~ 'K)F>*zBY]:Աt#_649 Sr3FyQ_^7_~yDm`)&`~uh2,H1죪x’2J3$*Z 4gO_Waz\ӻГ]&OEXS}S;+&ޥpS*1@~o:u R;A!2NN.=! ~0j2|djӋR+8R!v ٫ "UfU6ΐloB?ypdf2񪓬9zAt8nQ׹JϟRxA30^Y{T48Ikɥ3ݪrQ2-_n?%vo<ƙex(ir8aC|N~K ѡE.BDXjyxF[}7oSr;oх= HD̚.sJh35P\g6rۑ6JP)MM R͞@v6Z}1Jwx%uos8L"̎^G&6dNWIJλZ$%(A ]q,<0gOl=Ld㠢PlęniKK[oH^l$nWCiK XԦ Pq M3ZHK1*ğ w :P0C: +,mW&sU,KQ<{>PP_0@6~QtzA6 p2XLn)H9U/>'āj cC4?īy"`,@@ʃ0m52|$;T~BA$V})33':$PZygp(zxK1OC<0gjwC]ITZWn0~jڐ,~Gǁmc UzDsYh-QYT#i>. J~9@17+/afAHO{trf(9O'w-dҮwV0wMk M[696ĩ$-91`D Qs1hLJ)-aq`$gRntI8 B80fDcˊVmBd m"ѝN]ywyCfr_FK o*c:@%&OԖB:GhM!1494eQ h {OãVMj'}t,N%"__h壷խ`A]训ԕ73dXH?yB%9XzEw 69yzrB[@=xW4dˬ\.P8 ߐV.ObܡZN2(wnWlxI$vgr]߸K,7iks HG ~3I\kXOCҩQ䟎dQ`QJP/. e]J!RyLCPީ"_cFeχ9X9por?E݋F#s"PsE'xSa:O*wZnշؔ0rum_Lyj+&P-✅a٭T$!s 4 <e*N '}gJy DEGmB1C#!^0*R\`E &d~lM$߅ěsNJя'H>nԂbw?a[lAu ܂`ք>O3؞mѕ 2wdDP_g!{CS DDž 0r8k$d88-jZsG Г:|0/t݇~5ӝt5MhIK w'5(FS&e(ey[]]eR"YyWP}f[ĸZ,ɷ+O$ K76?S4@ќ1lk--^R 7^8V`⎃G$;T+!)H9!̺Ybv짂WI8.K ?ӸPxjs 4a\7nڿ ˑ@3|VVN+舨Y@F8 ɳ.~x4QJ^SPwD5qKCpJ7?}iD7XCȾ]iX("G"7{u( QS]M /ȽCcƺ ODΏ X\ʽ) u):IZ]o0 *v%E{_곳:6s`рϑfiW1ua)Etml4<|hK"d|D)dRS7 Rau$ o(%ۭn9*~)'$0,zM|$4X]Me6UX)E=ZRU@vf x ҅`2CNI+ a:Z*.kfL8؀XKt*VQY/{Jӳ2~N Cb0' 6@vMjpœ>9RvFtQl6shް Ƚ|p>tWk TRTC2vP;dal(l\Že*?WcXoXKuV֔ 3؎/} ߇.8 ^͇Yg.v벻28կ%v6?}4t]Tsܬa.ULڕ'UځmQfB+9ҭf*h_ľe>/JUDg.y@sWϑyj֯aWY9 `^ i&],bsvKQ2~d999JtmZ*J:qDUg)~+,6|/:ş_^DFܻ߷$l=D eq#E8w(*}Zޕi+{Q!)bZڦ]I,nSde}]QY戨4JSq Tphw`Hä [inWB[8S\(:oxT)TS+!گ EVJIu\6( Sd]u:1!pq,fS'D,m$FlM"㜈Nu$NE fzTf<rGº S7aR tgHMG^,<Ty)s1/ P(ઑY"hwLP)m= Gza/JϾO,-zU\ fvtHpg!O|Tw?;Lt5:3_O zU RR@xsS4Эǟ|vM3ZYX?cp5!:R7G5BO T1 uV 55Uo(a(~Qt_6K/.F>> Bl{^赳Rq53n<7}5 O|oPܦSMREfXj [Fvj|%D^ F fsVzTrMԚWOoچp= 8<4lHx3=  @zLeR`ϣݓ/(f (އ;9qѻeִG 8]CXZ]|˯/_`~@%Ļuz;wz܁ zVKi=;lq4z6ȡčiK^D>Ǡ]6/FfBrf4~4 N%ڃ"2e.5;HVLgK$35=9U( #&*H#Dǀ #Zx2%}P<}:Χg eƒsD YY;ś6 x?$@~'g=ݞiH8="Ӆ03Y̆1̏33y p Y[4/|=<4aj( &%#f"Ϥ! aCD8MD LLwewjfh}t29YΐH|炴KF2Y'wOu ;CpeZA,2R0=ЪA=wrK+k3^e JZ\W̶M>~.*Q~h4d c|C$9l_)(>x3P$ I1W 7B&e*1(%]"gJAAI!%,R8eHcvta촓!BW魵d^["dBVK^Tla% })ӍST3-ȦLԭ]ֻ `T,6JFqw[4n=9Cr\O1Sۆ Vh+S5|-jFojPG 1a@iTJJa8[mZ(98cJkj=BˊrOgI+̺{pkޟSuT;w8_/{I05")e,r|wL`a?b,G* -dJGEP4nL$SL#Zp[$?:_$2N٢3:Z'f ԍ(qJ\JL ^r{JLݡ_e% ~Tqr|`MNO9>nT|/._|=-֛%ה?Бl @4P3KoeNbԙ3IM>|t"^'=<ˍi(O 0񲍧A#OBKR6` y>nߵEF6g&/ȍݹX`2baF.P[0x6ڑ Lz Ѹ:HAsINYZ,mBvX$Tw|ygR$f?Z,\XvsPeeA0YXpv;41Iv6ulR7.-ъX3뉞=q ;fñxb+2 ٌ"T̲^'H e3USĘLB&sdpݳbwØ]5 ]പ@!g$H]8T ]؂p E^++\J:$:SAkZDe\Yd&8AR=I.?:`!Gŋ},ʋ|oAk'`\OU۴xQJو.ݻ`` I~HDJ4+t[禕J4Do'QpLXK!.s,f؝ǟM zmĉˀYĦ^38PwDD=E N?Nk +,ȿ!x=d|ع;o3- ]P`;֢Ct7z,?~>[NZJC˒>N} m]՗0E*BlD M7ʽY`O|L݃V;@?ƃP dpuchmߒx;|ubl}902>^_ǾMY,de"ȟ0%a}q~$' ]"L^+==:сJG;fgg|>J:T<ަc3 *?4Ʌ[鷌J (gsDcoVXhΌ|}"@צsiK%F1y~O:t&فlvU.i*8( 0hf tj"yu=h| Y{#A%uӎ$= ݬ7}^ַ+퍃 ɋ e*OMlY6X<펲xlcC#壈.3:.u kVkpZf (݈30lt\#HބQ%a\~ŋCFpeV}]Z0ÝHw1^8] g$ &^M<&p2D,:3Mv-V[ˋn_gq Fh~6 wwEhx}+K0C5YK@dg y8n!+I|X?.bd%@7 ~@ Jkp Քb Ł|CxY75 2u[G[PFu[ \@5Võkm@I(Vhݐ=@~,1%  8p'JPLvVGOrߝ޵IYPaN T Ϟ^V Φh^ur]_'LGQ!e3ݤE;r8Mfҙ*tKҝ XxW=`#x=ʽ_B,r8RTlesݩιՎ$ s4, 6] RVc_B4V%-o LP-2X0Vg0XZt:nE{2W\R˚#zب EaI fmt/d(WT 0*B_u׆꺬b7V^8J>+XT=d1,#$新nNF]S%ܺldpT1IbV3}й?Ww&*AiL4f$Sv xXSeC9nꓼ`;̹n(nu@G"OVrֆ?[H k?}˱(we03=\ez$Kѱv%S5q.Щ!e&-Ic|U@sr #Tir,2P;0O Íwx RͻŤ-r}:|zۙٲi/]AE;? aGy-Xycu 2ٯ;(6t}ȵ3[Z=cͯ؄b5 |q'Uk3[:@u2%K"gߎ\0=ԝ,3pnq]x_=듘B MFª]*DZyl _8#28U^V8൞9-~.|v9=f^?}E?Hѻ$ىv8n*̏b3eI} g|[YoicE%:9KnSQ _qC/-Nw _4jaMCHDO+g:Х=AC{W$?}x `˯3K{1sRp {TV<(v~4Zӧ +-A oBI=1rD3tc(M+aJOq!At ác}WG+6([Tn%f4c;<s<}Kad%аFهDjE-wթK|(P2yg)" fp4|eaoOx8gG Za4dS}<ߎ8g_$3}͛@<ő_R3/k|rhڝwYS%IL>}5?S(㤻5Γgm.tN=b8`NVr S-;=p=HXKsKlJ7mQhFz*P PKSvQ1*setuptools/command/install.pyXMo6Wv]iO1`;@z(ES]6T6_7(: -7Ù7tetJi]dm3a6ɦƱZIl+ ^އ7J m]M']n `5i#IiZum䊽6R4S]ӞŖ5̈Z *掂2eVL:S)c ε ݱۓI77im'/n$I[ˆ|qs0V?`ӌ0;~ɧRBB8$Yar:]XEkؽur?:wkyZAs; !Wv&oZ c0 :ϻ ` [d3gDNK I8lP}S^.ԑ?(3 8IIܧ9F4+ 7uu0ladGsU@e) P ̑NZ'քjC.fC ϐI5@Tʌ]=3X+[WA^ܔvw7j!L>><(NBQ:w2i aU>gJ<7J%Ajt|%E_qz+v43JV)U(YHЏx&֏6z;th:ݮԞBDCX] U>^p~2\!_+&>,`0 VP']Ad 6"00*R䊽:(mr@ orEe;STy< ;-΅0}E|"zkKi6 %8وѓ}7gT;CpXVGaX0"5U$ʼܕUczY2MGMk9+YaYV\F]? 'oNU1~ =?h4ۄrH)C@cES)˚rixk%1>{ZUy=4~\[25*,gq_!neX*R  vhگ`K_a-)n4voo_A+_oێB1 pe)>djML:&t3~爫t{`Y`z0"rP8c/2V"k`, :OYFf@"1,GS5xR|ҟa?gem*d#4T5?gFĔѰRTJJC gyQD!$ݾ&B*/ڒk>,bl׸D`?PުccO)F:i9x /`dʼn $h0夥* e0;eyR`⇛u̵qnrѬ'Z)UPHiĄ_ m(}0 c%l4x%'QO1CNa~C;),/^ƄnWVt-Bjߖo{\Vh-oz`Lyc(JƬm8Ymk2.՞ָY>Na3\*i<txVm d6[#p;T+H?F;ke+2tNDD B6;:)I+Rŵe1hьn$̘vPJS@u4iR~Cx57v$VclՒ,sx(fJ믽;j-n jf:Z(zUu<3G Q/D¢V>k\z' e%NW=oh0¶U%; w Q^:[\<+[);hϽ%4bJGUtV m;z 0* 6 uPCL٬{Տ 2@f_(ŋ-ñԾ@KJR1%/ {)Ƒ= i3{> 1 ՙPE2yRcΙ0l bIh@9_9R,"kƽ3b@hRԟfSlɨ1޲䒃~NUnem_85Cjt[R,g(0p{-N`&E'oPOI MJHm-(+TX>[HEWhȪXojb j%Vtvȹ~!)LNmyȥ>,U=lmZSf9Ã!ѣ'nTm-3Y -fndYc&%0B:RTy}8ɵ:$% -X0Ey@RBlW )a`ԜstK#kUPQS';e(%'+@PKS}! %setuptools/command/install_scripts.pyVK6WLSUm{C9-dv%R u_AQNAs8|vctnt AnʊJPu!uJ[98 ‚6M@cY/;ń^m2 OmiTy"r* :Q 'r@eGe- VNk$U',t31iAiӋ&ѢЍ䫺m)Ub0_ZNlw&)G pӕ,[f4ցLaףkdvC8FQP~Wjkz| rK>IFl rMo(F,&`lEim+; M̢< qg/ to)ϟXU!<;w82Ī=pdbN:3C,V=uOe!SͲJ;]V/IHFY`qUƅBF 78wVuaGB~kpNmsuKsx/[ZrXoEAn@|KX^xfmT 1!f &)(xteF첏;aZ6  ri[pЈ#ݲ]VK˞&̄x >ɢ=Js?Q.YCzIé\%{iiY|"wwwPKS])B7t(setuptools/command/launcher manifest.xmlOK11 !]kAJ҃B1;gɮooRR*&\ޛK g[AL8 ]%wPA.E覤V`% zu۩$;FYt ^׾ڢt菈j+ 8GTh1RM9Qpyk: }U_ڍoy= +`iV2DPFZLFQGC&pg`m4xyDV1PPwq\KazRX8ܞ,ʔ0mzBhU\CY4wH;`,AZ >Aʇi܏pdW$v`uLwhq: Mpoi ZB%q *& _F +#$sDD &$\]J:u~∎Yo|T IRD]ˑ ;'F4g/8⨋ZV鮎x' {.K~]B9ݦҰ.Ĩ 6}iy)Ubz YWzWJd+k2D"i5Q^ @!FgH#/'+GeYMm/i%_^sj -x/z&RzF9U hmt{fN.2h_TEcݳm7:XDS)ŌӼoߙmGšc$x!BeCa;߹F?|Bk \n:!#⇌ HܢoMyaB-6 0dC0=Th6VSN=z@1_%4m[viҘܘ4+&8\4&G؛eURۿsC6,Yn& h [&4a$=QwuM-fA(ިZE=ͩٔlԕ`N+ez9h~-6}!kꮴ%eD2@ kê7tη2~67(V]nFg5/n0@'ًoʳ[h8Izg.ވ/)]o7K(lإ pJ~/WCĭ>9)MNv%n/@^|jorY~> <}W}bXݷG,3|?sY8L]}.iERKO+WPKSvsetuptools/command/register.pymAN0 E9U+F+4HfTqк& ;;< .%98Lӣgzކ0NRCMJ0/1Md&>`z[~.=T?۔UA[Zgb<$ !hw;Xp]/FnM6*<>Mq&,9??]ba3h"sLm5:C<5]R#-6 c]wZBǧfubwDR/PKS!Psetuptools/command/rotate.pyUMo0 W KP uu] PljK$K(9Z_$'R9{8XѿS'%V~Kc,5vrx2k0&7q㓻dr3gbV2I΁5^zd1Zi>a4%Ȫs:2&ѫDWX݈^;kxòR9ܔ#[E)}iܮBUW (0ZC`Ea'-I䷙NSNZ@&TL`]g|jh)ktiOp^(>;?dc (v LRDXM9PNi.#΁D7;܍ayNM1N?Y/Yg|s\+ΩSIJc9)3;y6ty3糬m7}?RI,T7<9͡A ]QSmZ8|SFכ b>gƉ\Өic0)^QފP 'zg"QH,҇2z294Y3M~?;󱌱;YtkP;W ۰D*ǻ9T*C7q>%uK PKS4Fsetuptools/command/saveopts.pyeMn0 ¥r9EU2!0UUu2a4Y!9:x D [+s/.>DPQzqxF:5f;TwB!t0bU"0 ubPM߲^|TnikH]2Rdx;eM]n&U{Y(i'@[Xc5ܕN[- Օ=WVPKS: setuptools/command/sdist.pyXmo8_sPH9-dq]æ8[(Dl$Q $b EPygfժb44LVҖjw쟥*^# SZd_Umŋ-l"p86z7EbҚ3yeZ\']G$.y%(:cY,d]0^l+KaX[B3 T5U tDUzD*ЙC(Y[GFضJsxɞܬhR"N~RQayɍq.X v+ zL۠wE6YQkPXxf_z5ђݨZ,#2ع2IMXLtaD5G0"Yh.GQMV V-w bܢ :^> JL"  #p*rYŚ֒ su7Fz.܏EZ8H'k&%^䈅DُsvPimF2Jpco)P{M<#yLJ "Xs|@$VSeOY>)Ou. `a%#2uDÛAZZIu'{Uh<~8wT]REo h Lߦ=5{M d? /풽n j7u=IC`nqL?UC}L޼{v9MJ!04(PiO9*J w2 :ibrZvGh"~lZ2wZw? t W1(聎fĩ7?l/{eP~ fP'C}3)Qz|3 G#P݈ՖtRjѪ+>^5Pl $5F0JVUe4.pt甾 UL@H;7=tρcEV Rٴ,@DO%c)d:Zi]סʡjvv4O=$t۔.{NZ0@d/r@'n7u?a'ٕ|zbS-|81Trl#`dSʸ J cꨍPBvhaƲ-Dt}[{"'1=aCպժSNwCsRe '6?0W-lB`%hAZsDz "E ܦ `<|' ^}b58ͥD6+ 7^tDž 7lY8ACCK泐gd=E"$44 Oq)N[< ݵC#VZ+=fT]u/. oK,GDc7Y7͘Vj_T8 qIbqu}wzw#n>1QH:JEBᘃ{ό2818FFw9̵*Q0qtm2 `w&Ag9%g~D%{<-`ziy߅Zc}Sa>\|e:x45uϵDD9\{*#4S]\0(`HvrMu+&]hWnܔٌG6 qmqm ^C)6>;nV%jlX`iPKS. nsetuptools/command/setopt.pyXKo8W Ib@v!dZln)DZJr$|̓Q*5r^ 7}'RtCᴪ9+Rwǫ 'x~ŕYs:E?TH&Vڂd]75 m*i]9ّXkY!1+w)J &_V%|mꮠuެ\Q2A6tzvlRِcgb;#h`OQ827$P;/ݎJ')*>+cjFAtU呡#-ddoa3K^/ęDPy=y/Jr(Bow)-3BnHh+Tj60#X;pQ( jȍt@ oqhAXJ)[9Ns6JO f&0%]ZBNmt@ӐP~>{zN&LwǪ hմ9<ސIDZʠH4Hpe|`Lisr`@n]=ɽ[{ag7ܵMXnD; 2(>ka+3P*GJQ!iHhӲ|T8us7#?xMYl-fH`g(̺͢cPYVQysfa=;͌h3HϕXsù[t~pk8W{]AgSOyK~[m}QL e``%] ä``L5ϸMcּ 7ջ׶Bp v"/#o&<5q|@/v6CDuB $~]EWlCQxUGx3.֪>yQTz$XU'o3"}~]׫oɝ>c>%RlK\qiՄ]g,;+g/Npo ٶsS<,TFi F[Sdaڹ=ؽ _g- kZ@'oڷܲμ|PKS$ setuptools/command/test.py]6ݿ 8|Hڴmls8B%ˬ,̐(JV&9<6JLtoмUmVV|m+Wd+tT5jٶ´VGVJvL&V0wm#.VV =hv(^ CQ.yKU]>JW oڣ>FvAxVGC2E+OyD-Ǐu]j]C)A. "t6: mWUQqcok` ,eEس< W\῕?0B܈0,Xac(n\jaN:RJ1q]-`8]ME&TNx!خU1b -oeI)- [:,:W"I#61#<[vrRxLKP=Dd'A *)bMIYSKDvȀ*Ii4")R!42"jѓ7 UX9G"@dDCH_QHu{Y/[rH#]Hď怶ؑ P+W`b-T-۩>: B8 ҫ4.zX.kVZ r')_0'g䯝Gړ`/wF^5^8E'nUv|'.,IɁA:A\fb4?|7$ IAbOQ 6n=6=,ƶ}z"qWr3sj$s<71{|/X3ogAklI$[ǻքxX%W={Ύ J\~ה( I+ sY0X~.ȅ.ğ7eISY*[. ^(??3IjUEN\KmB ] h`ALja)Fx% Wxд NEBsFR<)-x"4 ?"k/EAME: vNSjUgq42 &5ZZj,Lw1;׍B@b_ Y@ j+l\r_ rUlc؏'(mp/9E{Ke yrd߬vĆh뙢>Qi6{XF pM8df[7q`v ꗍq50$Q1rA9W ü@!>֫SMk\deH!;qzlq_7܁v9>ɐ? q1a)[J>vmo$*n~% ;jR*(?b{ \s(2?)a?PKSm  2!setuptools/command/upload_docs.pyioF~@AI. lIhkˆISvfGY w wo,[LFo7|ԅ*ޕuJViE(yÕn4/fUNb{@A435SDDhE>?qv*5ORd?m(ɚ*R8jU 6Py+,vp2)lZ>( ܙP-+7`QvH?R Q6M^촮Ӭ`EiMbv%X+=_ܯj+6uVl6نb|$ӍžTR͘h͢(dUvvsNe m xOrL"4:zXX1t0IXMx5΅8#~X7( 2B6J l >EFr)+9-W*s` 7ı1DXSe:H<]DʷyM#4ɐdg$+Z82b,A0 |W@M館eP}X,k:&+Ҕ\B :xԕf{AӪ'AK# cD[`8t1I,WUP^ V`q<F}¾G41jB/P/eS rGqdː9>_:44+xo9J0wO3ПҐ-!`3N? \:6MZ( SAI+VOADp,%NBQ!ցR b XlaDΚ O? geVn+Yۆu}SESpb\쪊!rw.B'Kn0JҒiSM(%S3YyRIo TO~Xxؤ̟RKƼLW8WfNVÈcr}[_ϴh)ʵOt]CT%䡩`#zD`,t cAxFOb {6 ,\aX| RwQԊ~eҼÈQbcA4MBk?^=aYC7)=g008F)'TV.,Vӣl ZFc5&&HJ*vW |lvh1! zp4#US v\ ޮ秷翜Oo_8|~/Oߞz|:|a1V\FCSqfUb:`1u1Bq۽ܤ `=^~\N藣@@VFJZN'}WF(R\'QKIP9I|bo0 jZ[uhn+MkqPZl8<׭ȍޭ,ɢǡka'wzGD E71Fr%xU'cA^&B@G9:GGfXJH2 '$&տ5Y(}z+hzsd9 (:d4ok;wB=$Ʒq9Ndm֋]Z{'j)w|HY\kbFLН Ru.fzǀ#؟Fup;o2^,>#U3F3 0FЍq$ tz}V*۱t!Z`%$5bHug Paˢw n {FR0( ײۋO0aṲXl5 W1Q0$;?nYNg'nD][M(eYd|T7ڹ=c7bI2;~LƑ\:iCDG[T(1wImSHd"bO`@RX 5e ˭sٗWv 6Qn'ggl꼈a_@G0=ymRtnn}@%GV%@ Ėt_YjMQ DyvQ" ȵ7x !p.8e&j)k{J~D;Kynu縡h[1g_ZJߑW/;U`qPKSeg setuptools/extern/__init__.pyVM8Bۢ\bW\V$n 6L[e 'nu۩zzU9XGɇf RҒV gНq ߲>^b ~>1c4Z(5hbܣ6RC8g3szq. T_o5[-n> UEy73ۀr<2߬ny3zlX%Z( xfOEXpaZ{=s~$c$0Ӗf3$b܄$sV4ŅMQ4nT3(KSQ)93# g Ƥ_Hqكn}Dc tY^$=زá6!2;N lP Qs}KUE@Q-= Ad|j [M"M?m렗OLx]M](o30WXֱ`a'I7&,\Ym_l_ނl`sθkr CnuByp\H1Y5BwmxN?4 dFFkG ;[ޝɇgHʗU]}Pyx :DefM bӵ:tQu,8.ʹXgҙ(VXlyJ> ȉ0r;Vlobf(OFvP0DuAMj&Zn5Z s:.,HE<v9?/`bMS%2(_ԇ1)聎:%nPKȫSYď`#setuptools-60.2.0.dist-info/LICENSE]QK0W8RDy,nC9fYy*(6E;WHg{ͤ:SWz &0VBpXuz;NS=F%pM zW؉h|k75(p2H1puu5Aَwt -N"n꽵b&ZHpyxk gs@ίξsG9 . tkbbkGBa~b18=gp7ϐʅ+uo?M;^%nd8ɇwfc.Q#RkZYf"H`/F 9Z/[YԢ@i&e.dLOB\ r+ $"|%si [KSZiPrmd˹rKU ϐZ؊,Qk Ն9I1CAʃOg+*w) \n?E3FP8~*g)ye%ZVhBzZ'"LBYh"8B]% !lfmi0̄U QyX%7Uȭ㥔;'Ek[r.dRale4J(y" ևnnui$:f*r(,h I@B7J&fwg7jA,~\Nr;U:_?1]*DeX!LPx0wUX(RH"bka h[Vsd߮[,ck^dO;U):]p [ Ds-lH`^T 9=d&愈X=ɰj0"8w@ L=W7KʿH,mT%r/ ^r&WDF#5OTP.͇ϣ93hxZmK1 qƲ(o/s} $4Ekb$ZL|e-gVZ 1rc)@䰏ƶ6CK 2b?` ,5uYO{ADNz|4U28CQN NxQ?G/~y1b.EVPsAQ}PȳЈD8~,/C鱳IJ7åyՋxGS]X6CxfT )24=Tq7/VRٻ~߉6$i »~dl-Iv?rixQsb;EO \mYG?Dw< =lt&dF10i}wP/FZ˹J3a d5 p09ŽhޒdIt+EolhTHG9G 9tq+v$Dai8|`[r5QQC'0ztpd 0XtlMm/Y,`5oO:qۨaVi9 k9E=n$h+zI :tJlvj,~Y՘z/w;;Lzi!NeL/U4 7XkWP3lC 5"0raF- &Rv\<yZ3*}9aqA[O/wƥ,s)OV3E!^h?F.Y k5z!B+lp/CE?hU k*UpBOu{j[Ѧ5]4ja IE9Qp-OCŽj/ w-X> #"&פ+-Cb^te;sTSQT<PKȫSh\\!setuptools-60.2.0.dist-info/WHEEL HM K-*ϳR03rOK-J,/RHJ,./Q0363 /, (-JLR()*M ILR(4KM̫PKȫS $|L ,setuptools-60.2.0.dist-info/entry_points.txtUM +4[ժ='Yz}b|\y NaҸi(MJл`D'kF~a$xKB0kz;jT43=̳$np u򴲸evBa-0HU%/Fn#*nYCSvb J]yduia(O`qfV#L /b|ZXN[ىζ< /lƶeqtt`ځ^$" 0xeĢT@ h{£" UfyQѾA{%{"NYU$R/2+hFPMJ#2HQrΠcۙެ?:hNgSẻNFI>(wkayBnΞRԈ~|;<;lM݇ك=HOѝ7"хmjC]LHQ8r~8uy['x?,'E;UB!)C%AƹĦyh׷B) WcPKȫS;*))setuptools-60.2.0.dist-info/top_level.txtA 0PP\3z9.1J;\A{#PKȫS"7"setuptools-60.2.0.dist-info/RECORDzɒX5 @ FᕕY{DUakl1+ :~k0OsL/%`n?>so]9 i ~0n'zAfu6o'COcF1k;d36&< 菘}F/@.Gߧe,<4%$?I#T=-fh]k7Lsg~!LP9E\Q%HbsF#9yfބ`"Mzdȭx:k0T9fft+]+p%=NFk n *`oۭ![N2{<!b+j Ϫ#0a߁|7ӻc8 5)2i[J$ o]b+/6~O] L˚R̼OHxW-T-=_J6QyVf? &mq"orj#4َtw`ff-QM hc]TNm !+O8b>j8;ȅO"YyXp-wziͮ׊ZpWMsHi)*W;R!ngQbIU7[ȫ/ yy$T~>:k;CYb'P$d"Z<9]%h߰<,RhG?||ԝRT1=ۜ_;5 7 Vg\P99L*:\WqC܂fO+?h-[u{>CTi6 gWz&efbV8 xq=Fj>~|G'8gZ8E:Vy&(mi#䜪?Ǧ)=Bdwti+3On?B#XrR@;\}qo}.^_ܤpg# 9^?\$h{ .U0K7AU|-XO'_>H9r?ģ< ]CpE H)h㸂$WHЭ{LY@9O쳃7G"FB&5RebEkWM̲RY܈eʰ@ +Y::G_.LXuSEn?`Gs>jސ, va&03W UkL"Y F0+t" }>Mg7&! .lҗN&Urvז N=] yEss0bL3Wnٿc!xwRۼ 5*슀nh*кl\PdXOWa;zc*vVTޣ*םZ BJ+>}oKG9}~\IƧ$Rq@IΣH-lL @a,mch=_\<"6$R9# 7qp3uZ3\;mXVn<:P}mVWQ?,#ᔪXB [lpf|@HsKom s3TObm`>m}#(s1+Mu WSr< eפ)NeIE`r}PShK9ִ_@ #0z0 AF !#\5='Bbp隋/HOR8 vU{U4$krw4[s$7o3P) cJ57^~>8ۗ]L ^s1`:?m#딝ώL^G;!n4U뽶kIE#9Y6-ow疗¡<ա߼2Hd/ xK<9qȸnϢɲݓA>![I AoX埨ԟnz/qWgv ~(`OkD/1!| 4$HNgģSgWbTgAR^#*ߠiǓs:J8]p(}eΏ$I`z> T\|keѴUr}zܸ݇oQ:Ac&5}l6<x 6Kø#B80˞z2ԶM1ةtǭJ~VES.u|\cXP %oyq[*|A964i^|׳ 6:;̀oqBp&*6S JsylqR:|>M%,n|U"vɞq0ԥϴ8 (}%ev)X8vip^fj䃾?l&b|O)cH]c ňp?Pn>F0dfƬMumcb޽:# WۿM4.Ό6T X2 `rQ,!G!ثMi_]jk 9 #)wԌ:*f h8iϹUv ¨+|sHVXU%4B tc,[߅<{ &{AS|Ń@M9, u ]~ `Ȍ[CھIF BAd%|O|9xtN' OHz}.1~ hfAMWP] 5KqGٲ+TܡCfU%&EA.3_J&գw]WݩZ6Qb=YnePxdxe5}{60]df`9+o9tk4c7f8~$ &ZEl . GdN(\}NCׯdKFӊ֏;HrENOXc s@]qK={O v ?Ra3fmd}㱝KdpIE"\^mrGaxU3T@eUyTCp\]]!~ۼwoW7KX>#~t$'hI=gv@PӜ? D)4J&*)/M`O્^;|.0|JW?@?`,@ {["Z쥋!6v:qb';X1W:| A @r zd@UxEw/;կh4*m2O6;a*WBot;e8ykĺS$Oł^Eب|m/HeZ^/m]Ԃ0U枥:ݔm? rvV y5G1ڄ =Hu{$Pn;7>E[5Rv| OSܤ$FῊHFA*(X<dQG0hSꉞ9`/6(#~kP N~IP=] w˗і\fHljt'(v{vxo :{δs{/mg{i:߲[]ñk وfuJ/'dw{Ed?dXGfξ3LLjAf!碥e_>1ŜV[* 4GWGZGo 0pԻ@WMqj{OB ]n`sVe /s[x>qFYbJ˖D: sf9egOWI7}baGceÿߺ+ -_;V~n,5} w`^KILj *fLrso66KB.OFL$ˍiQ{<Ͱ߽SNO녰`o&  of\G0^`n u-g2xb`Ooze潺$}}JG=Vz"֔$R;r*+xȄ}W͝,Mm1?R_9$G=A B`)>q}gZY[9kwJ Л+xG4$t1>rOe|?_SQ@ņ!sg笤⟨>l+*ԍ:P2f_ɫrQ3p, c4J -PS t PՖƍNn |Mȱ6,\Qټau 8%\-فF3-w }Ik'DtaOB0!M2 S E[4LѶ9ۣ~y( .9F;店3G6|<_R_: :c8шK4ZQڽPYr%b5$J`p<9$ƶð8H+0"bC?fPgDBddSGI" _w넾KA~V2(,v~yBqϵ!MX&ʹ; { GԀ9NAޱܪK˗gH)m|1shk>h3 4^XHKP/Ev\pjN[xzQ]ؤso+Ҋ#$Cd[9{ʌkC$8 y' }I_FcUBaip?܀&j?Ғz-@Jo[u)L0QVsDL7l@V[ (깝&T<#=9;l\[h;kqϫ <yq8@r ooo>rʕ t.j setuptools/_distutils/command/bdist_wininst.pyPKS&f} setuptools/_distutils/command/build.pyPKSv3;V+Z setuptools/_distutils/command/build_clib.pyPKS\%,"|{*x setuptools/_distutils/command/build_ext.pyPKS.8o@) setuptools/_distutils/command/build_py.pyPKS84,K.: setuptools/_distutils/command/build_scripts.pyPKSm& setuptools/_distutils/command/check.pyPKS,V & setuptools/_distutils/command/clean.pyPKS7\=3'x setuptools/_distutils/command/config.pyPKS9Ou( setuptools/_distutils/command/install.pyPKS  -q setuptools/_distutils/command/install_data.pyPKS(? 1= setuptools/_distutils/command/install_egg_info.pyPKS*Rj&0 setuptools/_distutils/command/install_headers.pyPKS , setuptools/_distutils/command/install_lib.pyPKS:0 setuptools/_distutils/command/install_scripts.pyPKSCho+ setuptools/_distutils/command/py37compat.pyPKSt -) setuptools/_distutils/command/register.pyPKStv=J&l) setuptools/_distutils/command/sdist.pyPKSjP '&? setuptools/_distutils/command/upload.pyPKSNI setuptools/_vendor/__init__.pyPKSD*;!I setuptools/_vendor/ordered_set.pyPKSf]wcX setuptools/_vendor/pyparsing.pyPKS!Q8AR-, setuptools/_vendor/more_itertools/__init__.pyPKSahy)- setuptools/_vendor/more_itertools/more.pyPKSʀ8?, setuptools/_vendor/more_itertools/recipes.pyPKSYf)- setuptools/_vendor/packaging/__about__.pyPKS(ڽ setuptools/_vendor/packaging/__init__.pyPKS*:c,* setuptools/_vendor/packaging/_manylinux.pyPKSo0* setuptools/_vendor/packaging/_musllinux.pyPKSqt i]+\ setuptools/_vendor/packaging/_structures.pyPKSXQx -!' setuptools/_vendor/packaging/markers.pyPKSX\, setuptools/_vendor/packaging/requirements.pyPKS4dx* setuptools/_vendor/packaging/specifiers.pyPKSdx^=$d setuptools/_vendor/packaging/tags.pyPKSA3h%: setuptools/_vendor/packaging/utils.pyPKS 2 I9'K setuptools/_vendor/packaging/version.pyPKSR/, setuptools/command/__init__.pyPKS=/M >- setuptools/command/alias.pyPKSut@0 setuptools/command/bdist_egg.pyPKSȹoD setuptools/command/bdist_rpm.pyPKS!1? F setuptools/command/build_clib.pyPKSIV3K setuptools/command/build_ext.pyPKS?z /"xZ setuptools/command/build_py.pyPKS&ddd setuptools/command/develop.pyPKSPm setuptools/command/dist_info.pyPKS t[O"o setuptools/command/easy_install.pyPKSnKbf setuptools/command/egg_info.pyPKSvQ1*m setuptools/command/install.pyPKS\Ҩ+& setuptools/command/install_egg_info.pyPKS,,#! setuptools/command/install_lib.pyPKS}! %s setuptools/command/install_scripts.pyPKS])B7t(g setuptools/command/launcher manifest.xmlPKS3|R setuptools/command/py36compat.pyPKSvsetuptools/command/register.pyPKS!Psetuptools/command/rotate.pyPKS4F!setuptools/command/saveopts.pyPKS:  setuptools/command/sdist.pyPKS. nsetuptools/command/setopt.pyPKS$ setuptools/command/test.pyPKS"]K"setuptools/command/upload.pyPKSm  2!8$setuptools/command/upload_docs.pyPKSeg .setuptools/extern/__init__.pyPKȫSYď`#1setuptools-60.2.0.dist-info/LICENSEPKȫS $r4setuptools-60.2.0.dist-info/METADATAPKȫSh\\!;setuptools-60.2.0.dist-info/WHEELPKȫS $|L ,M<setuptools-60.2.0.dist-info/entry_points.txtPKȫS;*))?setuptools-60.2.0.dist-info/top_level.txtPKȫS"7"?setuptools-60.2.0.dist-info/RECORDPK0YPKx"TLc>virtualenv/seed/wheels/embed/wheel-0.37.1-py2.py3-none-any.whlPKbSdwheel/__init__.py/K-*ϋWUP7363TPKbSLwheel/__main__.py]Pn0+F|˵HEr`)VJ5N@i639gE~5B%{Z'}g/3.9ena 4ikxa򬥟ML )CUBIꙤ86]^'VЋ(,24 m쵣?Vj46bwۊԴ98^vmzT|^R|,W_ۦ\ى,VZ\&OXM{V#gћӟ_ӯOOtnQE GbՑ}Wg *m>ʳ9_ID}?PQHiĬ'FMW )p> 8[:`S ILϣ$E("?VP85/x7e1^r3@+#[DaF(z];{J_EǗ?KR +V ,e׼iy7/껌zz( Z2.F(QLC2ZwϽ9h_F/_xp#/A|Eox)@MxrdX/Z "!8wYgRqg#g ee$jͷW-V vtfgD2{ߋwϟx×/^4'J_{~v-uRm}:?l8+8Oyʤ3#d05-_×,'^< aID;" ϑ~tp?;~pe8#>u up6ޱ̖ "5o)md[E0gCj$NS^N"efooogM2nX< TY'DZs\. Js(zJ en; ЅF G[#ZĆOc)T'rijtCl-LBMa6~nퟭ33t޻A[o>*Q{r֔M| I/EK.԰ 5N'hrvޝLf"(=z;ُA㴳a/ıg'oNOg=XrJϞ399s0#{,<A)>xtζsJ9&8m73ɼO*g\2 < !_.աK ^f?FCM:"/,zwrŀqtT9jΔ\仑 M$Z#\I2$2N"H權 UVj9:_=e$#J628,Oٗ}JDKoq$`KL"}U_LrY$K,.=9@<`#:QhX!t9%/YU=Z"#rYñ,aD+Ems6cҀ* M9N0XQk1|`L YkX3IVLRzy#7"MEV>0jVƐC؅<}Ώؓ D4S-1~Vm , IsFHzPd!C@XŅq0>ԓ?9[)i.شUr}<OA %ѐL' Av1qIׄei, ;rمqQQYBM= 4c$*bWsj jb>г4[g4^ϑ= cm3"k\?s|к!;Tä_e_eŒvn 5Ygs<_)4 e5G|aZ'"^J\ ٳ#\49琴^m92Um=N5291jtRQGwMJGQN[;caq]Q"e'8E#9tҖ=咭|~k3a)E|_!'GYJXxұȬ=:כmG¸bcc:F?w+uAhPr;dPjaӺ.k{:΀+E7o1|gd &a$ ڻIp_!? ??MZe;&P@~|}M,"~DP9M~ zIp hKq,$HUCA7gc}fGKiJ/0 $|';vE&s ~)Q+e z4+tRjEPwk0̈eG 2-t+)T %]%L,{-ee߻J]\FJPʡnh\݉k%(гUFE̕ԯ]ȃQ1;@15uKFsxpfsV0T}@i&(mg24CDp4?x캀8d7Vپ.4͂V*Gzs?`EC~轍ܓvGua`hl6t>9R^˄h?4C9RG28 AH[-;Ħls&wXͲ!GZn.J*uAD?tjLN},52ObwܴE`جDVFhvLdUʹk{-n?Ml_\ ,B1`(dw:Хl'/7*"L WV$׈$.T9.fl'~ޜ^;Kv@Y Up>1̲ALzQ0 K=ARF{(KCi^iYQ; \1m/QhDcTyY„5TũpdMTCtmH9sHW,&W{<ٷmR6Y7DO:$A {94GÄ-p6&:@x=Hl7Z)`G%+9 r,_x P^gT}ݞƔ5!L=9C-9wRgָX#ojS1g;ֲ"p߭QЯߺ(sRtDn ''kn5eyy6t̆؛>Hz% 8`Rȏ>bFj|`3 ~*#qA2TTqBf5cn|ߔhZ'C0 sY5ޜKZ Hө6Ӡ;HcZ^N_{{J#.HY"-Xѿ12tyz$gA|wr]nXVfq5Sy@l+Av Qlnm̮3%ݝG[J|呕s~\ $VʓRj1O@J&mY[eκ˼V^wP{svuq$lmV0Rw>D=磳'9nf=:fbN]|XNTGHbڂ>Y׍P 32mAuwi*Pu 1}.?|E?Ѭ#e&-)i33~٩kQf|kpÅ9]s2C^|6ŏf jQFWY/*Gm=\=4E6GřX\Z5)Ȱ`;F#rw)7%]%toɈs2?Sӡ1Hw@ǘx-->\Tx21?O n#7bc65=M<_B6%P΋A'<^Z'~}{b/K‰MT0QӠx&]zտWUJ=pFb#,G 9D.t$@¦WAl_Ã]cwE}KԖa%Jz596itch@(fN[ns\}q^lKu\=QAzIL͎`Ľ"mq̡F7jYXĬ7 UL#8M}M%߻\ H)H9taJ{NN?\|>pr~ه%ǟ/tf"'QSX}/EX\ T{ʃ*F繡YC//l5. /7j,fx}œ̊vdOMѨ,̓Ԕ;D]:cPq}:NI8:Ccf~/QKZМHNU9Ίf3z=`XEQh ߙ8JWBWg`N9\ T,ϊĪdZU±M&' BwUY9#G*LقsS{!U4 (\і)|IBZ#7'ݓv~v~t-S=u9?xrI܋{).~Ϫ)o{ ئSG8"-QAb wG*:F\ cձ7y{zy 8IYQ2q1k lĂ+ PKbS#e:>wheel/macosx_libfile.pykoFs+B52+;>pk'$ݴ=`WRb͇@R\|Ȏ{;N {`\̣%t diɣ`2 (KY1x]6]<Gkg.TUdź(E¢4#9ZHxͲvƃw?;If b%˂F1[E<O2Jg˨ R̋=a,aʢx)pJe2ϳ GhE$Xab#GX"xZ8fDfAی(QRqoWzsrx!6Y9deZ!g4 ,>P)$S1iYr ۱9kksKpB ]֒Y*j3ijݥJ#j0,:Rj% O%IaA7a{A;A2e[Qq$S% a2+yt%foh$>M-^$W7Ggwx\db{m?#/<#/<}FoN*nT7A2r&"KRt>ɖ%K4Jp26pM"K^נ-v"189JH$8ˮ &E]E2 (3t4'EF0 `eM3 % ZZ)T9g-xpgEVWcA.p)l 2R!R;A e %(?KZU@iOQ$;RlhC.KC5+,!WA -d|JE搿@H2y&wj'\5Z. m]T'&AdXuB33[ 7& b(%IR]!/@r"@PVӿA@J HJJ*RyFVoeՈ c ,+^uaLBs`!^"p]T+o00;N+g;P_?pH uKMK0ʤ2Kpg; ynG:I'E4iv  |C Wʉ /t[#G]>-o V#;Tz `$\3t*ɴ* `܄$m5(TǢR+Y4C5)_s圊 <44ws:,óKwi^7b }^#X\)^Nt} Һ\1JvKfDPvAbjT#q+uWZINow:o1nF uh.@ |]+ 4T鷯!m_CJ`td͊O;'9PItopP$y:`]Y^0=&@}g C/=ٚ܋B M3HOyۋ.A 5J%#e+B[\5U$` ^3 *FPZ؇\y3Wi'2\(1#&/ QI|,(ԯ|PO |['QnQDMFt},v{z> ߽=~w?^~G2\ЊQJi; ~{" 2!WHWk3?vn yoYļĝ,J z}Eۻp-~[d'![*n`ӂX7a=Dk?ZPu?F\b3E T(n . Gt)nَ\@iL+lgwƫ?,+$x,Ạ^$\f) JҙPAļ(| c8XbFBm (K^_LczcWo0+p2B%>^6A,]áG~^9UQɹ|殗jntY=}1Ä&7|U. }VQY(EcS^rk*v0mW=7ٮcV,5 NsH>0U2l!{#6'!h:t;j;g'ڛixdm%ƃ+Ϥ^& :N^t״VlBPEk/ޱÛ*6+Yxu@VwZUbtY-2̠!{m|'|H=56hgPrŸ!ʀAP ae]VG6k 0hfsp:NI'e#{ՓJ<{taU?N ZD;5uHgЄ?t4ze >; XݚF؅pR K&x&UD<|gNmWӆVQs[}`ljNn  1XdETSs>]}\MuueEgoC;qk-źUC5dVQqbm :yEVǦS}.hkD´=m JqUe@ihҗhC'zmк F@.ՈG,qy)̫\jngY9bFa:d,7W;% ?3pCt6_%-:%j 2>Fk^}Ĩ?Q.{ ]ḧ́R`xIysu}|ԶB5 誃@yI 2Ѭ2?zZwqWHo}0ND4M^z @M <5T'Cf1oٓJE epMZ&6zpwj6m*ؓ+Bwշ˱vnn rKZ뷦cnL خTּS¥j$񸳾l&Fke/&iA rS`/}zI,p |Y5Ѿ$oiˤ]Pj#,ZA뮕8mL];nz0 " j$8! >Ù]6A>BBT/]'6i]d ѝ73K[06;|i̶͹$PKbSXwheel/metadata.pyWmo6_A($!,kQx0`maXـ!5TFl6tcII8{8UTĤݚ^-HǞJZFLӚjZD1(E| PEOf^?Iڏu);Y1E[R!Ad.Q(Yg8(Z5W:u߶2"@$Ɠ,k(U`+Ro;u92B!)bG_}ấۇ]Y2˂Yq| g/Lu2\hcrz [ LI';G3,`a36"%UI;Pz:wޡOV|:@`7qSs UljMXjT #`g \h,_PKbS1wheel/pkginfo.pyTMo0 Wln|Ȱu9䲓ش#̖ F?I.i<H>>Zknv89^@x kREӬ;dO  lRϷ ք@{O ;fǷ:FEٚ,1;U~-λunlOp:&$=ۉy  z%aҡ.Dud 4!30ZKcMedB?ӛ\iIf5~x3jID%9 Q<fߞF ] 53~&o]RܵdL/+a>Ӿؑ>|m qz& +̵v}H+HOPKbSMh`J wheel/util.pyRN0+VE" hUUp@ENMJۄؓW;}G C*-Φt{+?KZ%rr 0Yp %6:C PS.i~'*3RoCvK$C{.n - .aEõgkJ4>E=;pa߫ShܯPKbSI wheel/wheelfile.pyYsԶ qyo,)4M0 %ǐydZf \Iqdy/~."'aV, K!5)%/4-bE1ԯcunבZg| HݣdNH7[n5$E2f('L&L$\JĊD [1ii>2s'<}8yyZ<]Y3qݪ7b!](*(e(aH  " ![n5S3r3kF T`f h}ҧgodToC%!8e/:-@&io9l=oFܫtz',S-bR! 'Gז,!oU^xԉ2\'O&(WdKHkPD%LeŁoQK&hKh!H1+h<WQRRD9SdórHFVWQ*;DhO ,+zG÷U0f?\V >ls)2s,JP#٧v_}i+!|m`-o^FwQU{اmMpP1֮ mLZ]1.C,Kg6LFkq ƙB8] 궲k@Auմ?|kr(]m[Ulܵ_ UpQn!xqh?n 0iCA[<ʋwTKE z}c@Bכs$:_?y_d[M}8uXA"sNMPHu錔乕aUb72Mp !-^E2^Hs`p6@3ηײ1J\"1~qư$|yW_Εid l4vJ, mK@ ڎܠl'FEܧiql虽9~S0j:=S w앰 }d!b^I^C쭬qj<KQ|q4A'I u}acG$)t3/RiY93(i>x1j:XB$2cAU{;0{o4@c[Y?FI='=;?u#%lmzLEjT+lm-H{EJM:ZC.% )h/>RE&9޹ hL;yX^adwCg`YN;K9iyYNi"#΄y>ˇ)e1eۼoz׾O9~YT8eq}6@ ҿ*Yq xVqf x,Fao|3v}%qnxY| B龳N`Y~ ɽ.bh#@~3P\q ;3PKbS; Of\ wheel/cli/__init__.pyVMo0 W CctNrح0h(6%WmK$ߣ%Jyg?=k0p٭z!MF^|pѰZk mF le^S0 3򧼷 LQǪ7>͊9<ˀ<ɑwͶ$u0E3OP?Z᜹qh} x@f Mf}i؀L1`|a·gkQHR##MDƯ2wj3 N]"uڲ'68$]Xy84fw0ta✹⇯˶^ƻX2* FŪKW4%$i |ͺ@6_bM c,mXd/"}"-: (eSm^ DY3ͯiwU(./uWU$ݱ]c%?IfrM~veED9K1٣BK}<<Pڎ.'kP `+V,+9R|u'8֗K;/ $m1QϣVDXGS3%{H{UY;ؐJ2>`7 `[zȍ*X&*=aԉ2Hsx0 V=?kzh:zƇ/PKbSl2 %wheel/cli/convert.pyZm_k%_IjFۈ8c+i%m"]Ҋz3/\A(aݙٙy[CSVԶhdhiTxe:ڪCev[SFۖ4ve >&n(V<*@2V 0oiY\?56ssZ6;lݙ햺K `u}h@(7YMɫ?WRvĺԪ^ԢFooVve+vRFj#VAГx@TД+YeEsjxFȕ&"SJWؘ0+Vkxl01V.7b+iń]*Yڮi {LV f1翵RLߚRxhHVBTz02pzVH1f2 =zj;S #$)hcdt(mt\ȌЋ<d,9偆>HF6R[<{^}=Bkq1+`@&S/v^[ba.pvۭfTWid2-<8YA7G%򃂹851z_W]7dA# Kki[& Ȥ]\e O-mM#B_"KpKc:ԺJ FrmNW2Q- 5J9w 6wdægҽkgruw$hhv&S6;C\# ?2 NYv9Ni%o^t ވld{YÍ[* ~&sn.ΨR2{1UaJ[^?W|vɌo."O|@qxRrŻxVJ/_ I#ө%LگhBH;!aV紧s>/7+=gc友;,~Aq~YoX@rOvųl>\=bn2&Xjumns2vګx[*DGlLΤm c28yIt́]`Hc]erh9Onp:>u]T+7SB,'M_F`0x@ʠƔe2c2w^z2S#"!6>S>BS40Ͷa6"5DN:Qþc[A*\Kd_Hoz8!ks+efyBe]%q ᗚS_ 2y؜WTS[\0U@HHO!$:qfֲ!hI[R3Vbls~Hq  Ǚ}]Ml$/.2ݚjHN뢢˟RǽFp)hq)غ6t2<<_aDM M^=`hYPS7" g՜E/.PT#uIA|MU{F]/|,Nҹ;V` H,Dʋ\:F sYt: &kld,_ G\$lg R0.:(۾s˝$9%txMpג-cVkfX/P&WmUGGe@*}C+(&,M@*Ze KS:8먻vUMޒbhBn5*M ˼5A?x%Z8S⫿s;$MqݑsC=߇|j zI~Āf0=5N:}VF>B1ʱbΪиT$64FR=R{"H1ywϿ.t|Lرﭮ!-he~ƖeM`1"P,c4}.T@X:~\Dh$S$>}=&Hd2E\^z(3 oݠ!# MG3r)IT{TH)@ ]*"}OZnW흸π K$UJ=+Jy z&I)/.*:Adܫo?Ϸg}55dyi#֞`|qVvhU¥F"s-վizIM\'HS@; *Pl^zV?|.m_p}U[nNfu2k|5I h.2Wx^4I\J~6C%8 "w#mq,.bUI[29G^c ?Χwp);aؓEqBWŶ> W#~zI[yz7PKbSߕ$ wheel/cli/pack.pyW[o6~ׯM P$鐦C D\%R xACFYR0DwsHgJ(T1E)AH "eIIͮ}U}O:2kkc,'I[S¥RR;9]B\|z\5x!,J -#Sg9:]ݤymHʵ9"oQO#[?Th%2;j.f>x eaUI-W. * 2+tO\P/Un42ETJ1azHdÁkuXCQ22~,8 {ၓg- V}[r3 Q(D擔$Zά_(kxxO&̙* =`iS/:3o!6aSE Fn0[ h# q]CDcKؚ % *K ́= K~߭X}('vm}>VF -!4ʜ=Q(^ѰF>q:eW<6ҡIV;`k;fjǟ둞S3ӱWVOkHbeN|[föN+3|,KT(fзjNu 0ڣ5 9Cth%*l1ר[QLHdBLu9FN"[lN'sbFLp|⌥vM)~aCmΏn GkfH-#kF'5lɯ5+9翝v_, AB0Nkź%:"s_tMz_rIRB9=ܝ;& __&w ,p#na,{͍u@ |h]v Q8%p02$+o(bл_kPKbSi+skwheel/cli/unpack.pyU=o0 h#VuХUGs%Ӊ85ǯtލ4LǦ3NLXm8+& 'EA Rzġ3 l'~_@\e- ,S$IO h%'3  5 NjU#.KjcPiPVCď;֓jZ[ʤ1e3x=*h%P<g5Zʽ>X:4TS{fx>nxˣwT۞f;o3Pco۱{k,RLvΏ;hYZ}J!i79-/yՒuk%PKbSwheel/vendored/__init__.pyPKbS$wheel/vendored/packaging/__init__.pyPKbSn_#wheel/vendored/packaging/_typing.pyuT]H|_h#@a_ǣ5QÎ}gl,4]]]U=UU}tzֱvC' QGk(= <~w0iEI&v 6Pt S c}S.5;gLԛhlWnJyg Oܳm;.;\\jk:|t$0]'h(nt&N<(V'A\TtbE U%;z׉,bПIRVubj\9("= L}##$^᭓V>PQ)1{ʜNIl G{+%iZd-MC #.Bɺ,E뒬zn$H [X3)ɪ*E˂>nn?oJ=Οn;Լ~|R&ְi3m$Byߪ*v;;TbRH) =DAZj>BRYi$C@;$іli<-קNoT/(0W<~WeRHaD2~؟ m+:ya'X~v!ۮjk-Xen!Uxo'6~O.n+g5̫rhy*op.Md{ьU&o闬^EWmn--Bx˹VPKbS(% xs wheel/vendored/packaging/tags.py=SJW̉ڍlK$`ٷ8Jы,#M͌$fꮎJ%L6M\ip*HX<-xĪ49+o8+y>/X6EŸgyg&z;}x`8<8.ϲR rȊ%f9 "%g/8)i͙Oʹx"KycC⢬Jl76|b@I<08R!<%{|v_|<:: dpYMȃY:klAB/=?mAܟW3p]aٯ<ƫ33j0Ix ~s⠟ o.OCe0Q~Lx쉙=_7Y*&UR _>j k@66p~AjQLNi0EjO/?8Ż{ԍ R㔼 qC .jؤ~Y!o7fy}|$ zwE^ِ _OO?>d<-.3vfLFg=?4vҋ4QI0D`Unfk -*QE]GB.]94A!8נ!F.M~={ǡr^\922 bXl<9N2rS(yU^7Aqo=v;p,. W<<% E@#>~de{xDoLb< =`^Sqn)XIOI ]3*Azl;R^!J$ 4$3kCW|  h=0yKVkax0 5*GЃCG= p| -OlF` nbh? Do HTa:uc8sA!P`֧hF(հAAiVBmFLj#[XPXYh E Rx ,C]䘰tO66\݇c:߶!#qan{(x|cfo,jB8}$Q`qܲP2,Pϱ}A 8ƈ=7>-|]z8)CS VP2%htZ"Tbt8B=fEOb򰥊w#BR<|2c|/1uyBJ^]gMЀ2Jcb)@O}t(8ս5-+ayA~O@ S=-( Wgyh MJCZ gm4Y׶R g9%o(V{?io 7:+zO'2IV&K{yDhjb" @&(KPfe(6/q VHzJm5-BJ :t",y +# X$&(-I؛\/g0jrl/v\/GM ߢm {~C.m~-ّa* 5MZ@Mpjj>T$I~nSWlwONy5i1U 9;H0:t掉E_Tif;vン7(hlߊd,0s.dR~v;Gc>Uv4kfve(cdAaL{_n&Ssi>\lH q-ʰnN1!%" _h._ivVN,V5'wt*D"Wb[ט~뱌Շ>x U)|-]+m2y^`]m$\YfJxgAF_Z}S?O?ICwmϨ טɥK!ҋy5/ %"),&j%0~!Z .AL0_ 바݃sno0|xP4 dyvcwH镱)+6a[rş[oڔ_|KT+t.'NTmc}oPҚ:؜elk[4c_ʣ-o\αGI\;#oqB jm/b?z ^QyYػbB7D9 &1zᢢ6pq\+ L:w]Z)NvUћG9ȽrpiPva4>l@iZɿ \|XC̔ŊMvy;!Z`U% @@P@l 1Ϫ x?u 3St3TRxvs1RX9* :I$})"}5Mi~H/U"!&"ֶӵ7CXZ$Xa#U,cT])p$}X:Vf[1 O鉗P`V D_8FG#1 4C @1L <[1;r>EuXaQyc2~P]3KP3縒g5WR ѳ (¥" GD=E'nt0:1(j'с[[~'T׸0L;x8` AAuKTyƒbC 1 NJEB?.6XhNN S(a!mXp6Na(Rl5Bm,\@Yq˕EbXfC[۔^SQ--ɡ="R/kNŦ!& Q8A!ryhH b_-5C&/5"]iTοFfj)a"|>ھڒ:ÍB:V=0Y{ԥ,hO@m T0~ѕ.C "c7i2j QMbXqK-ՙ^xXin,ĩMr4%+L`F:?GhŸD#ɦmd5 (cwuCsMk+`Lx)U9l}<kWB tM&;B'u^f<<{u2x>j;]sp=I~o'e_rAw8:mDL ]jn8)zvUCLJ ,m`C^f,B_tKhMaD*|>t)ZoI:F**qBs\J\NHz_YCUpdVu~?Ns! I&!R]zE@]J,=qg֣$[=xrH/$"t2B~]* T2Zc<ܑ6X/.oɈ`"h YUJll=)aVah+Vp6R;I(Y,e `9sP^ )%!82pTYuOlu-( P֍"1S\(T*j!mqGc0&JeCMEJhr9:H3:#5b̑H >V,p4gqID?.Aʉ" @@bnHDlpkyvVN ֹW&Geǒa= Dmw& ɰiʵuJV"ҫ]R%'hE,heNjm2.@_ۨ[|%/J]Ŭg*DΩ`h+lhvy=lS!Ș&.T,l~u:Z6^po#)0w}"j:AqcрԾ6V> kS#u;S[i}0Thl+'@4nP(.BpU:yLoUYEhEXP7mm "^£mKCMH\DpIaf5{$(jlj [ov5z`X֋.lqsKJ{+zX{~V%8(C|:n(=$AmK-V޷d'P8fJ_-^S)νYU WiOe0RL* 72Q]A_efVÜXLV rGkŽfZķGEY_8mQyX J.ݜ+@VImv ;ӥا7D^+x 5@Mp[PM7ܢNsTnRrT2+c`p"R)UZÓ#|xu;EczS6/x^϶iЇ.?hKd)sxj( ~Vg=>O?M=;}{ N/.FCL[hPz?_36~k~+?Q@v%S05&ާOK*w1C]Inѹ/B}°Cx//5z$gs>vvqˍ<9=}(u,:* #gG hT in苪ST_$uVF]{oY{V$7tN1RXdb56ɬ̆VrC^6 |u(H[٭kRbl 6Un?^$oWZ(p* Wj[JASpR6>uNF\0#o5]g7麱ľ.[8cҾ'q% GBM!Rڅ'K";ë/1qKo*',X7G4)9Q5"K~zg-.I^Z1̳gdqi8SL2+\$] tz9^--}.붼(64S꼁PKbSpe"wheel-0.37.1.dist-info/LICENSE.txt]R_o0ϧ8J۪=MS5CLc-đx4C<f~w$DyvgPh]>}~_ у5=|k:~oGmy{|=4Q09ϣ EMfh;:": =R{W[xи|4CЁZw%>1;ݽ^ņΝƣ0blsC^{{WƧ<)?{t@:c8ƶ5y[XM SJq>>{B{."ˉ &Kuq@J34#:P[Bp%Guz~w/cp^%No[]NfD.b'7N|ۤ'r(2AP(,xŰU*7`byȓB".2&eID %>PA+ Dx$5Wl!2Qh%0WRJ,7SPlT!K "_)dkWsdg<@, W)V,X\pTRe:\IDQSUlS>oY +]ѭ(y1%J d$S8!'6-tޔMKYX% oGPKbS wheel-0.37.1.dist-info/METADATAVr6}Wln5KR84Q$Dz ҖզM v F/r;ZMit"nd lrB< s͚v.GBȌ-[J7%xErkJYF)z[˸1lH&0ޛKT·o3<DY)o_=%)D+km^miqSQ܋5bwWƤMdSȢT>GeRi#GVX7PXeq, Mk-mkVvn7*GW+1-*%p1*s:Ӝ1rÌn$ %դx&Ja4V)23F{oj|uK m53חDp;Y$I!++˒^Q1PvvWC#~:qp#~9qr,S-A{wgqzҭz֭h}s!/k~L;c|O7+ kAj_G\;( H.yɂKAoGU}f4 ):=_#!&rǃ5D#}S{c 7g=k<#xf4.LbTyY,^R%Qlt/{Z`\ r [*Qz=:(nyê-E,L!t4g^hpfYlN'(yݵl:T!2v+\5֎ I3];$ i0u;R,=#/nRa84I]*zcVZ{wg#S,.hjys˸1l#;+\JF^_R5tW3[*wk2Җ13Ea6b:{#;韲0˘Wv|9}7ތFQ=_PKbS_nwheel-0.37.1.dist-info/WHEEL HM K-*ϳR03rOK-J,/RHJ,./Q0363 /, (-JLR()*M ILR(4KM̫#DPKbS7Il'wheel-0.37.1.dist-info/entry_points.txtN+I/N.,()*HMQUz9Vy\\)%%9zy)@I xT-HbVHl..PKbSce$wheel-0.37.1.dist-info/top_level.txt+HMPKbS&ywheel-0.37.1.dist-info/RECORDǒH< aH8'.0NX_D;1}KU2(j~2HM;?F!tX=C=OkxDQDGT"04qǩE2ΟKa\5eI545!&@JBIVS뽳%_"J|&&,!]:B:ի.M~jMv3$jO k;i0{G^bV[iwheel/macosx_libfile.pyPKbSX`(wheel/metadata.pyPKbS1`.wheel/pkginfo.pyPKbSMh`J /0wheel/util.pyPKbSI 1wheel/wheelfile.pyPKbS; Of\ ;wheel/cli/__init__.pyPKbSl2 %R?wheel/cli/convert.pyPKbSߕ$ Kwheel/cli/pack.pyPKbSi+skePwheel/cli/unpack.pyPKbSRwheel/vendored/__init__.pyPKbS$;Rwheel/vendored/packaging/__init__.pyPKbSn_#Rwheel/vendored/packaging/_typing.pyPKbS(% xs Vwheel/vendored/packaging/tags.pyPKbSpe"4wwheel-0.37.1.dist-info/LICENSE.txtPKbS zwheel-0.37.1.dist-info/METADATAPKbS_n/~wheel-0.37.1.dist-info/WHEELPKbS7Il'~wheel-0.37.1.dist-info/entry_points.txtPKbSce$Vwheel-0.37.1.dist-info/top_level.txtPKbS&ywheel-0.37.1.dist-info/RECORDPKPKx"TSvirtualenv/util/__init__.pyfrom __future__ import absolute_import, unicode_literals import sys if sys.version_info[0] == 3: import configparser as ConfigParser else: import ConfigParser __all__ = ("ConfigParser",) PKx"TdP``virtualenv/util/error.py"""Errors""" from __future__ import absolute_import, unicode_literals class ProcessCallFailed(RuntimeError): """Failed a process call""" def __init__(self, code, out, err, cmd): super(ProcessCallFailed, self).__init__(code, out, err, cmd) self.code = code self.out = out self.err = err self.cmd = cmd PKx"TM̳virtualenv/util/lock.py"""holds locking functionality that works across processes""" from __future__ import absolute_import, unicode_literals import logging import os from abc import ABCMeta, abstractmethod from contextlib import contextmanager from threading import Lock, RLock from filelock import FileLock, Timeout from six import add_metaclass from virtualenv.util.path import Path class _CountedFileLock(FileLock): def __init__(self, lock_file): parent = os.path.dirname(lock_file) if not os.path.isdir(parent): try: os.makedirs(parent) except OSError: pass super(_CountedFileLock, self).__init__(lock_file) self.count = 0 self.thread_safe = RLock() def acquire(self, timeout=None, poll_interval=0.05): with self.thread_safe: if self.count == 0: super(_CountedFileLock, self).acquire(timeout, poll_interval) self.count += 1 def release(self, force=False): with self.thread_safe: if self.count == 1: super(_CountedFileLock, self).release(force=force) self.count = max(self.count - 1, 0) _lock_store = {} _store_lock = Lock() @add_metaclass(ABCMeta) class PathLockBase(object): def __init__(self, folder): path = Path(folder) self.path = path.resolve() if path.exists() else path def __repr__(self): return "{}({})".format(self.__class__.__name__, self.path) def __div__(self, other): return type(self)(self.path / other) def __truediv__(self, other): return self.__div__(other) @abstractmethod def __enter__(self): raise NotImplementedError @abstractmethod def __exit__(self, exc_type, exc_val, exc_tb): raise NotImplementedError @abstractmethod @contextmanager def lock_for_key(self, name, no_block=False): raise NotImplementedError @abstractmethod @contextmanager def non_reentrant_lock_for_key(name): raise NotImplementedError class ReentrantFileLock(PathLockBase): def __init__(self, folder): super(ReentrantFileLock, self).__init__(folder) self._lock = None def _create_lock(self, name=""): lock_file = str(self.path / "{}.lock".format(name)) with _store_lock: if lock_file not in _lock_store: _lock_store[lock_file] = _CountedFileLock(lock_file) return _lock_store[lock_file] @staticmethod def _del_lock(lock): if lock is not None: with _store_lock: with lock.thread_safe: if lock.count == 0: _lock_store.pop(lock.lock_file, None) def __del__(self): self._del_lock(self._lock) def __enter__(self): self._lock = self._create_lock() self._lock_file(self._lock) def __exit__(self, exc_type, exc_val, exc_tb): self._release(self._lock) self._del_lock(self._lock) self._lock = None def _lock_file(self, lock, no_block=False): # multiple processes might be trying to get a first lock... so we cannot check if this directory exist without # a lock, but that lock might then become expensive, and it's not clear where that lock should live. # Instead here we just ignore if we fail to create the directory. try: os.makedirs(str(self.path)) except OSError: pass try: lock.acquire(0.0001) except Timeout: if no_block: raise logging.debug("lock file %s present, will block until released", lock.lock_file) lock.release() # release the acquire try from above lock.acquire() @staticmethod def _release(lock): lock.release() @contextmanager def lock_for_key(self, name, no_block=False): lock = self._create_lock(name) try: try: self._lock_file(lock, no_block) yield finally: self._release(lock) finally: self._del_lock(lock) lock = None @contextmanager def non_reentrant_lock_for_key(self, name): with _CountedFileLock(str(self.path / "{}.lock".format(name))): yield class NoOpFileLock(PathLockBase): def __enter__(self): raise NotImplementedError def __exit__(self, exc_type, exc_val, exc_tb): raise NotImplementedError @contextmanager def lock_for_key(self, name, no_block=False): yield @contextmanager def non_reentrant_lock_for_key(self, name): yield __all__ = ( "NoOpFileLock", "ReentrantFileLock", "Timeout", ) PKx"T virtualenv/util/six.py"""Backward compatibility layer with older version of six. This is used to avoid virtualenv requring a version of six newer than what the system may have. """ from __future__ import absolute_import from six import PY2, PY3, binary_type, text_type try: from six import ensure_text except ImportError: def ensure_text(s, encoding="utf-8", errors="strict"): """Coerce *s* to six.text_type. For Python 2: - `unicode` -> `unicode` - `str` -> `unicode` For Python 3: - `str` -> `str` - `bytes` -> decoded to `str` """ if isinstance(s, binary_type): return s.decode(encoding, errors) elif isinstance(s, text_type): return s else: raise TypeError("not expecting type '%s'" % type(s)) try: from six import ensure_str except ImportError: def ensure_str(s, encoding="utf-8", errors="strict"): """Coerce *s* to `str`. For Python 2: - `unicode` -> encoded to `str` - `str` -> `str` For Python 3: - `str` -> `str` - `bytes` -> decoded to `str` """ if not isinstance(s, (text_type, binary_type)): raise TypeError("not expecting type '%s'" % type(s)) if PY2 and isinstance(s, text_type): s = s.encode(encoding, errors) elif PY3 and isinstance(s, binary_type): s = s.decode(encoding, errors) return s PKx"T+#virtualenv/util/zipapp.pyfrom __future__ import absolute_import, unicode_literals import logging import os import zipfile from virtualenv.info import IS_WIN, ROOT from virtualenv.util.six import ensure_text def read(full_path): sub_file = _get_path_within_zip(full_path) with zipfile.ZipFile(ROOT, "r") as zip_file: with zip_file.open(sub_file) as file_handler: return file_handler.read().decode("utf-8") def extract(full_path, dest): logging.debug("extract %s to %s", full_path, dest) sub_file = _get_path_within_zip(full_path) with zipfile.ZipFile(ROOT, "r") as zip_file: info = zip_file.getinfo(sub_file) info.filename = dest.name zip_file.extract(info, ensure_text(str(dest.parent))) def _get_path_within_zip(full_path): full_path = os.path.abspath(str(full_path)) sub_file = full_path[len(ROOT) + 1 :] if IS_WIN: # paths are always UNIX separators, even on Windows, though __file__ still follows platform default sub_file = sub_file.replace(os.sep, "/") return sub_file PKx"T virtualenv/util/path/__init__.pyfrom __future__ import absolute_import, unicode_literals from ._pathlib import Path from ._permission import make_exe, set_tree from ._sync import copy, copytree, ensure_dir, safe_delete, symlink from ._win import get_short_path_name __all__ = ( "ensure_dir", "symlink", "copy", "copytree", "Path", "make_exe", "set_tree", "safe_delete", "get_short_path_name", ) PKx"T0#virtualenv/util/path/_permission.pyfrom __future__ import absolute_import, unicode_literals import os from stat import S_IXGRP, S_IXOTH, S_IXUSR from virtualenv.util.six import ensure_text def make_exe(filename): original_mode = filename.stat().st_mode levels = [S_IXUSR, S_IXGRP, S_IXOTH] for at in range(len(levels), 0, -1): try: mode = original_mode for level in levels[:at]: mode |= level filename.chmod(mode) break except OSError: continue def set_tree(folder, stat): for root, _, files in os.walk(ensure_text(str(folder))): for filename in files: os.chmod(os.path.join(root, filename), stat) __all__ = ( "make_exe", "set_tree", ) PKx"TX X virtualenv/util/path/_sync.pyfrom __future__ import absolute_import, unicode_literals import logging import os import shutil from stat import S_IWUSR from six import PY2 from virtualenv.info import IS_CPYTHON, IS_WIN from virtualenv.util.six import ensure_text if PY2 and IS_CPYTHON and IS_WIN: # CPython2 on Windows supports unicode paths if passed as unicode def norm(src): return ensure_text(str(src)) else: norm = str def ensure_dir(path): if not path.exists(): logging.debug("create folder %s", ensure_text(str(path))) os.makedirs(norm(path)) def ensure_safe_to_do(src, dest): if src == dest: raise ValueError("source and destination is the same {}".format(src)) if not dest.exists(): return if dest.is_dir() and not dest.is_symlink(): logging.debug("remove directory %s", dest) safe_delete(dest) else: logging.debug("remove file %s", dest) dest.unlink() def symlink(src, dest): ensure_safe_to_do(src, dest) logging.debug("symlink %s", _Debug(src, dest)) dest.symlink_to(src, target_is_directory=src.is_dir()) def copy(src, dest): ensure_safe_to_do(src, dest) is_dir = src.is_dir() method = copytree if is_dir else shutil.copy logging.debug("copy %s", _Debug(src, dest)) method(norm(src), norm(dest)) def copytree(src, dest): for root, _, files in os.walk(src): dest_dir = os.path.join(dest, os.path.relpath(root, src)) if not os.path.isdir(dest_dir): os.makedirs(dest_dir) for name in files: src_f = os.path.join(root, name) dest_f = os.path.join(dest_dir, name) shutil.copy(src_f, dest_f) def safe_delete(dest): def onerror(func, path, exc_info): if not os.access(path, os.W_OK): os.chmod(path, S_IWUSR) func(path) else: raise shutil.rmtree(ensure_text(str(dest)), ignore_errors=True, onerror=onerror) class _Debug(object): def __init__(self, src, dest): self.src = src self.dest = dest def __str__(self): return "{}{} to {}".format( "directory " if self.src.is_dir() else "", ensure_text(str(self.src)), ensure_text(str(self.dest)), ) __all__ = ( "ensure_dir", "symlink", "copy", "symlink", "copytree", "safe_delete", ) PKx"T^dvirtualenv/util/path/_win.pydef get_short_path_name(long_name): """ Gets the short path name of a given long path. http://stackoverflow.com/a/23598461/200291 """ import ctypes from ctypes import wintypes _GetShortPathNameW = ctypes.windll.kernel32.GetShortPathNameW _GetShortPathNameW.argtypes = [wintypes.LPCWSTR, wintypes.LPWSTR, wintypes.DWORD] _GetShortPathNameW.restype = wintypes.DWORD output_buf_size = 0 while True: output_buf = ctypes.create_unicode_buffer(output_buf_size) needed = _GetShortPathNameW(long_name, output_buf, output_buf_size) if output_buf_size >= needed: return output_buf.value else: output_buf_size = needed PKx"T~d:~TT)virtualenv/util/path/_pathlib/__init__.pyfrom __future__ import absolute_import, unicode_literals import sys import six if six.PY3: from pathlib import Path else: if sys.platform == "win32": # workaround for https://github.com/mcmtroffaes/pathlib2/issues/56 from .via_os_path import Path else: from pathlib2 import Path __all__ = ("Path",) PKx"T.d,virtualenv/util/path/_pathlib/via_os_path.pyfrom __future__ import absolute_import, unicode_literals import os import platform from contextlib import contextmanager from virtualenv.util.six import ensure_str, ensure_text IS_PYPY = platform.python_implementation() == "PyPy" class Path(object): def __init__(self, path): if isinstance(path, Path): _path = path._path else: _path = ensure_text(path) if IS_PYPY: _path = _path.encode("utf-8") self._path = _path def __repr__(self): return ensure_str("Path({})".format(ensure_text(self._path))) def __unicode__(self): return ensure_text(self._path) def __str__(self): return ensure_str(self._path) def __div__(self, other): if isinstance(other, Path): right = other._path else: right = ensure_text(other) if IS_PYPY: right = right.encode("utf-8") return Path(os.path.join(self._path, right)) def __truediv__(self, other): return self.__div__(other) def __eq__(self, other): return self._path == (other._path if isinstance(other, Path) else None) def __ne__(self, other): return not (self == other) def __hash__(self): return hash(self._path) def exists(self): return os.path.exists(self._path) @property def parent(self): return Path(os.path.abspath(os.path.join(self._path, os.path.pardir))) def resolve(self): return Path(os.path.realpath(self._path)) @property def name(self): return os.path.basename(self._path) @property def parts(self): return self._path.split(os.sep) def is_file(self): return os.path.isfile(self._path) def is_dir(self): return os.path.isdir(self._path) def mkdir(self, parents=True, exist_ok=True): try: os.makedirs(self._path) except OSError: if not exist_ok: raise def read_text(self, encoding="utf-8"): return self.read_bytes().decode(encoding) def read_bytes(self): with open(self._path, "rb") as file_handler: return file_handler.read() def write_bytes(self, content): with open(self._path, "wb") as file_handler: file_handler.write(content) def write_text(self, text, encoding="utf-8"): self.write_bytes(text.encode(encoding)) def iterdir(self): for p in os.listdir(self._path): yield Path(os.path.join(self._path, p)) @property def suffix(self): _, ext = os.path.splitext(self.name) return ext @property def stem(self): base, _ = os.path.splitext(self.name) return base @contextmanager def open(self, mode="r"): with open(self._path, mode) as file_handler: yield file_handler @property def parents(self): result = [] parts = self.parts for i in range(len(parts) - 1): result.append(Path(os.sep.join(parts[0 : i + 1]))) return result[::-1] def unlink(self): os.remove(self._path) def with_name(self, name): return self.parent / name def is_symlink(self): return os.path.islink(self._path) def relative_to(self, other): if not self._path.startswith(other._path): raise ValueError("{} does not start with {}".format(self._path, other._path)) return Path(os.sep.join(self.parts[len(other.parts) :])) def stat(self): return os.stat(self._path) def chmod(self, mode): os.chmod(self._path, mode) def absolute(self): return Path(os.path.abspath(self._path)) __all__ = ("Path",) PKx"Ty#!!&virtualenv/util/subprocess/__init__.pyfrom __future__ import absolute_import, unicode_literals import subprocess import sys import six if six.PY2 and sys.platform == "win32": from . import _win_subprocess Popen = _win_subprocess.Popen else: Popen = subprocess.Popen CREATE_NO_WINDOW = 0x80000000 def run_cmd(cmd): try: process = Popen( cmd, universal_newlines=True, stdin=subprocess.PIPE, stderr=subprocess.PIPE, stdout=subprocess.PIPE, ) out, err = process.communicate() # input disabled code = process.returncode except OSError as os_error: code, out, err = os_error.errno, "", os_error.strerror return code, out, err __all__ = ( "subprocess", "Popen", "run_cmd", "CREATE_NO_WINDOW", ) PKx"T.-AA-virtualenv/util/subprocess/_win_subprocess.py# flake8: noqa # fmt: off ## issue: https://bugs.python.org/issue19264 import ctypes import os import platform import subprocess from ctypes import Structure, WinError, byref, c_char_p, c_void_p, c_wchar, c_wchar_p, sizeof, windll from ctypes.wintypes import BOOL, BYTE, DWORD, HANDLE, LPCWSTR, LPVOID, LPWSTR, WORD import _subprocess ## ## Types ## CREATE_UNICODE_ENVIRONMENT = 0x00000400 LPCTSTR = c_char_p LPTSTR = c_wchar_p LPSECURITY_ATTRIBUTES = c_void_p LPBYTE = ctypes.POINTER(BYTE) class STARTUPINFOW(Structure): _fields_ = [ ("cb", DWORD), ("lpReserved", LPWSTR), ("lpDesktop", LPWSTR), ("lpTitle", LPWSTR), ("dwX", DWORD), ("dwY", DWORD), ("dwXSize", DWORD), ("dwYSize", DWORD), ("dwXCountChars", DWORD), ("dwYCountChars", DWORD), ("dwFillAtrribute", DWORD), ("dwFlags", DWORD), ("wShowWindow", WORD), ("cbReserved2", WORD), ("lpReserved2", LPBYTE), ("hStdInput", HANDLE), ("hStdOutput", HANDLE), ("hStdError", HANDLE), ] LPSTARTUPINFOW = ctypes.POINTER(STARTUPINFOW) class PROCESS_INFORMATION(Structure): _fields_ = [ ("hProcess", HANDLE), ("hThread", HANDLE), ("dwProcessId", DWORD), ("dwThreadId", DWORD), ] LPPROCESS_INFORMATION = ctypes.POINTER(PROCESS_INFORMATION) class DUMMY_HANDLE(ctypes.c_void_p): def __init__(self, *a, **kw): super(DUMMY_HANDLE, self).__init__(*a, **kw) self.closed = False def Close(self): if not self.closed: windll.kernel32.CloseHandle(self) self.closed = True def __int__(self): return self.value CreateProcessW = windll.kernel32.CreateProcessW CreateProcessW.argtypes = [ LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION, ] CreateProcessW.restype = BOOL ## ## Patched functions/classes ## def CreateProcess( executable, args, _p_attr, _t_attr, inherit_handles, creation_flags, env, cwd, startup_info, ): """Create a process supporting unicode executable and args for win32 Python implementation of CreateProcess using CreateProcessW for Win32 """ si = STARTUPINFOW( dwFlags=startup_info.dwFlags, wShowWindow=startup_info.wShowWindow, cb=sizeof(STARTUPINFOW), ## XXXvlab: not sure of the casting here to ints. hStdInput=startup_info.hStdInput if startup_info.hStdInput is None else int(startup_info.hStdInput), hStdOutput=startup_info.hStdOutput if startup_info.hStdOutput is None else int(startup_info.hStdOutput), hStdError=startup_info.hStdError if startup_info.hStdError is None else int(startup_info.hStdError), ) wenv = None if env is not None: ## LPCWSTR seems to be c_wchar_p, so let's say CWSTR is c_wchar env = ( unicode("").join([ unicode("%s=%s\0") % (k, v) for k, v in env.items() ]) ) + unicode("\0") wenv = (c_wchar * len(env))() wenv.value = env wcwd = None if cwd is not None: wcwd = unicode(cwd) pi = PROCESS_INFORMATION() creation_flags |= CREATE_UNICODE_ENVIRONMENT if CreateProcessW( executable, args, None, None, inherit_handles, creation_flags, wenv, wcwd, byref(si), byref(pi), ): return ( DUMMY_HANDLE(pi.hProcess), DUMMY_HANDLE(pi.hThread), pi.dwProcessId, pi.dwThreadId, ) raise WinError() class Popen(subprocess.Popen): """This superseeds Popen and corrects a bug in cPython 2.7 implem""" def _execute_child( self, args, executable, preexec_fn, close_fds, cwd, env, universal_newlines, startupinfo, creationflags, shell, to_close, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, ): """Code from part of _execute_child from Python 2.7 (9fbb65e) There are only 2 little changes concerning the construction of the the final string in shell mode: we preempt the creation of the command string when shell is True, because original function will try to encode unicode args which we want to avoid to be able to sending it as-is to ``CreateProcess``. """ if startupinfo is None: startupinfo = subprocess.STARTUPINFO() if not isinstance(args, subprocess.types.StringTypes): args = [i if isinstance(i, bytes) else i.encode('utf-8') for i in args] args = subprocess.list2cmdline(args) if platform.python_implementation() == "CPython": args = args.decode('utf-8') startupinfo.dwFlags |= _subprocess.STARTF_USESHOWWINDOW startupinfo.wShowWindow = _subprocess.SW_HIDE env = os.environ if env is None else env comspec = env.get("COMSPEC", unicode("cmd.exe")) if ( _subprocess.GetVersion() >= 0x80000000 or os.path.basename(comspec).lower() == "command.com" ): w9xpopen = self._find_w9xpopen() args = unicode('"%s" %s') % (w9xpopen, args) creationflags |= _subprocess.CREATE_NEW_CONSOLE super(Popen, self)._execute_child( args, executable, preexec_fn, close_fds, cwd, env, universal_newlines, startupinfo, creationflags, False, to_close, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, ) _subprocess.CreateProcess = CreateProcess # fmt: on PKx"T=,22$virtualenv-20.13.0.dist-info/LICENSECopyright (c) 2020-202x The virtualenv developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PKx"TOV00%virtualenv-20.13.0.dist-info/METADATAMetadata-Version: 2.1 Name: virtualenv Version: 20.13.0 Summary: Virtual Python Environment builder Home-page: https://virtualenv.pypa.io/ Author: Bernat Gabor Author-email: gaborjbernat@gmail.com Maintainer: Bernat Gabor Maintainer-email: gaborjbernat@gmail.com License: MIT Project-URL: Source, https://github.com/pypa/virtualenv Project-URL: Tracker, https://github.com/pypa/virtualenv/issues Keywords: virtual,environments,isolated Platform: any Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: MacOS :: MacOS X Classifier: Operating System :: Microsoft :: Windows Classifier: Operating System :: POSIX Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Software Development :: Libraries Classifier: Topic :: Software Development :: Testing Classifier: Topic :: Utilities Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7 Description-Content-Type: text/markdown License-File: LICENSE Requires-Dist: distlib (<1,>=0.3.1) Requires-Dist: filelock (<4,>=3.2) Requires-Dist: platformdirs (<3,>=2) Requires-Dist: six (<2,>=1.9.0) Requires-Dist: pathlib2 (<3,>=2.3.3) ; python_version < "3.4" and sys_platform != "win32" Requires-Dist: importlib-resources (>=1.0) ; python_version < "3.7" Requires-Dist: importlib-metadata (>=0.12) ; python_version < "3.8" Provides-Extra: docs Requires-Dist: proselint (>=0.10.2) ; extra == 'docs' Requires-Dist: sphinx (>=3) ; extra == 'docs' Requires-Dist: sphinx-argparse (>=0.2.5) ; extra == 'docs' Requires-Dist: sphinx-rtd-theme (>=0.4.3) ; extra == 'docs' Requires-Dist: towncrier (>=21.3) ; extra == 'docs' Provides-Extra: testing Requires-Dist: coverage (>=4) ; extra == 'testing' Requires-Dist: coverage-enable-subprocess (>=1) ; extra == 'testing' Requires-Dist: flaky (>=3) ; extra == 'testing' Requires-Dist: pytest (>=4) ; extra == 'testing' Requires-Dist: pytest-env (>=0.6.2) ; extra == 'testing' Requires-Dist: pytest-freezegun (>=0.4.1) ; extra == 'testing' Requires-Dist: pytest-mock (>=2) ; extra == 'testing' Requires-Dist: pytest-randomly (>=1) ; extra == 'testing' Requires-Dist: pytest-timeout (>=1) ; extra == 'testing' Requires-Dist: packaging (>=20.0) ; (python_version > "3.4") and extra == 'testing' # virtualenv [![PyPI](https://img.shields.io/pypi/v/virtualenv?style=flat-square)](https://pypi.org/project/virtualenv) [![PyPI - Implementation](https://img.shields.io/pypi/implementation/virtualenv?style=flat-square)](https://pypi.org/project/virtualenv) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/virtualenv?style=flat-square)](https://pypi.org/project/virtualenv) [![Documentation](https://readthedocs.org/projects/virtualenv/badge/?version=latest&style=flat-square)](http://virtualenv.pypa.io) [![Discord](https://img.shields.io/discord/803025117553754132)](https://discord.gg/pypa) [![PyPI - Downloads](https://img.shields.io/pypi/dm/virtualenv?style=flat-square)](https://pypistats.org/packages/virtualenv) [![PyPI - License](https://img.shields.io/pypi/l/virtualenv?style=flat-square)](https://opensource.org/licenses/MIT) [![Build Status](https://github.com/pypa/virtualenv/workflows/check/badge.svg?branch=main&event=push)](https://github.com/pypa/virtualenv/actions?query=workflow%3Acheck) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black) A tool for creating isolated `virtual` python environments. - [Installation](https://virtualenv.pypa.io/en/latest/installation.html) - [Documentation](https://virtualenv.pypa.io) - [Changelog](https://virtualenv.pypa.io/en/latest/changelog.html) - [Issues](https://github.com/pypa/virtualenv/issues) - [PyPI](https://pypi.org/project/virtualenv) - [Github](https://github.com/pypa/virtualenv) ## Code of Conduct Everyone interacting in the virtualenv project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the [PSF Code of Conduct](https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md). PKx"Tnn"virtualenv-20.13.0.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.1) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any PKx"Tܥ-virtualenv-20.13.0.dist-info/entry_points.txt[console_scripts] virtualenv = virtualenv.__main__:run_with_catch [virtualenv.activate] bash = virtualenv.activation.bash:BashActivator batch = virtualenv.activation.batch:BatchActivator cshell = virtualenv.activation.cshell:CShellActivator fish = virtualenv.activation.fish:FishActivator nushell = virtualenv.activation.nushell:NushellActivator powershell = virtualenv.activation.powershell:PowerShellActivator python = virtualenv.activation.python:PythonActivator [virtualenv.create] cpython2-mac-arm-framework = virtualenv.create.via_global_ref.builtin.cpython.mac_os:CPython2macOsArmFramework cpython2-mac-framework = virtualenv.create.via_global_ref.builtin.cpython.mac_os:CPython2macOsFramework cpython2-posix = virtualenv.create.via_global_ref.builtin.cpython.cpython2:CPython2Posix cpython2-win = virtualenv.create.via_global_ref.builtin.cpython.cpython2:CPython2Windows cpython3-mac-framework = virtualenv.create.via_global_ref.builtin.cpython.mac_os:CPython3macOsFramework cpython3-posix = virtualenv.create.via_global_ref.builtin.cpython.cpython3:CPython3Posix cpython3-win = virtualenv.create.via_global_ref.builtin.cpython.cpython3:CPython3Windows pypy2-posix = virtualenv.create.via_global_ref.builtin.pypy.pypy2:PyPy2Posix pypy2-win = virtualenv.create.via_global_ref.builtin.pypy.pypy2:Pypy2Windows pypy3-posix = virtualenv.create.via_global_ref.builtin.pypy.pypy3:PyPy3Posix pypy3-win = virtualenv.create.via_global_ref.builtin.pypy.pypy3:Pypy3Windows venv = virtualenv.create.via_global_ref.venv:Venv [virtualenv.discovery] builtin = virtualenv.discovery.builtin:Builtin [virtualenv.seed] app-data = virtualenv.seed.embed.via_app_data.via_app_data:FromAppData pip = virtualenv.seed.embed.pip_invoke:PipInvoke PKx"TP *virtualenv-20.13.0.dist-info/top_level.txtvirtualenv PKx"T2%virtualenv-20.13.0.dist-info/zip-safe PKx"Tui--#virtualenv-20.13.0.dist-info/RECORDvirtualenv/__init__.py,sha256=SMvpjz4VJ3vJ_yfDDPzJAdi2GJOYd_UBXXuvImO07gk,205 virtualenv/__main__.py,sha256=ypkUDuc5Q8XVyFpW-wEWgzx0LuAdK1yF2FsCUYlgPEk,2900 virtualenv/info.py,sha256=bM4pRJWf-UUkJojD53zW4PjUJAUqgycegr9kYawljms,1995 virtualenv/report.py,sha256=z7Jwg6iYLnyioSIY_G4Yt_ZxcKmJNEAoWCEHpoFcaYQ,1445 virtualenv/version.py,sha256=3Hkpk9HOWydvrtK_FGtFb5SppHBqfi0WPQOP6CqOH-c,66 virtualenv/activation/__init__.py,sha256=e1R_85pvWPaxrrHQSIl_Jfly1ZIM6w6_pind6MxoO-Y,486 virtualenv/activation/activator.py,sha256=noNMsjprUWDesvRVAyv63ITjDpPZw7UAkHWUl9KgyE0,1411 virtualenv/activation/via_template.py,sha256=U8LgH-lyTjXIQBUdbd0xOZpXNICpiKhsfpiZwzQg7tU,2372 virtualenv/activation/bash/__init__.py,sha256=7aC1WfvyzgFrIQs13jOuESuAbuiAnTsKkOe0iReRoaE,312 virtualenv/activation/bash/activate.sh,sha256=8NnbBA0VpoUEZzP09qO4Wp_3mfIq_j_7NXRGvJHBQq0,2179 virtualenv/activation/batch/__init__.py,sha256=K0gVfwuXV7uoaMDL7moWGCq7uTDzI64giZzQQ8s2qnU,733 virtualenv/activation/batch/activate.bat,sha256=l4zrCkLCIGP8epTUs_rP9yvjrpXLDcIRoQUP2dwjOTc,1019 virtualenv/activation/batch/deactivate.bat,sha256=6OznnO-HC2wnWUN7YAT-bj815zeKMXEPC0keyBYwKUU,510 virtualenv/activation/batch/pydoc.bat,sha256=pVuxn8mn9P_Rd0349fiBEiwIuMvfJQSfgJ2dljUT2fA,24 virtualenv/activation/cshell/__init__.py,sha256=pw4s5idqQhaEccPxadETEvilBcoxW-UkVQ-RNqPyVCQ,344 virtualenv/activation/cshell/activate.csh,sha256=wm_0n7o83RXSTUJsWc2PPV33Yh9Gad8AJQIuRvL6EYg,1471 virtualenv/activation/fish/__init__.py,sha256=hDkJq1P1wK2qm6BXydXWA9GMkBpj-TaejbKSceFnGZU,251 virtualenv/activation/fish/activate.fish,sha256=FkJpM8png8v9Sk3yGNJCcGzUKAAMF1Hz0dYrskut0z0,3056 virtualenv/activation/nushell/__init__.py,sha256=glvGnNDjhHEzUhtcQNBtD_1lRWZvqJNQkWtuXvOiAJw,1078 virtualenv/activation/nushell/activate.nu,sha256=6ZwkehNka4J_fJP-vQQoco9VJgSZVV4_-yEYR5aHb9o,1309 virtualenv/activation/nushell/deactivate.nu,sha256=4jj-dsqK3FWRRZcSH6dxDeB3sQpY7wY1RaC_0-qTKl8,333 virtualenv/activation/powershell/__init__.py,sha256=EA-73s5TUMkgxAhLwucFg3gsBwW5huNh7qB4I7uEU-U,256 virtualenv/activation/powershell/activate.ps1,sha256=fitBG2YyeKTfkRn62CjocDb_PLjrgvi2FmpuBkFCcBw,1810 virtualenv/activation/python/__init__.py,sha256=Uv53LqOrIT_2dO1FXcUYAnwH1eypG8CJ2InhSx1GRI4,1323 virtualenv/activation/python/activate_this.py,sha256=Xpz7exdGSjmWk0KfwHLofIpDPUtazNSNGrxT0-5ZG_s,1208 virtualenv/app_data/__init__.py,sha256=OkJ7iHAF3-j6nDjomzaF3dPKO0Ulrua741V1BM7Igds,1468 virtualenv/app_data/base.py,sha256=dbS5Maob1-Cqs6EVqTmmbjAGeNYA1iw3pmdgYPWCJak,2129 virtualenv/app_data/na.py,sha256=N2lR5VV4coM4Lym_E-nW_8Mh3x5-U6Jsq9x4wJn3wBM,1310 virtualenv/app_data/read_only.py,sha256=MD-4Bl2SZZiGw0g8qZy0YLBGZGCuFYXnAEvWboF1PSc,1006 virtualenv/app_data/via_disk_folder.py,sha256=UP1gx7WzG3USf_rQdKR9F5w_zuSPQQaqvbd58cqJHLw,5624 virtualenv/app_data/via_tempdir.py,sha256=Z_-PoU7qeZe-idzi3nqys4FX0rfsRgOQ9_7XwX3hxSA,770 virtualenv/config/__init__.py,sha256=8ArZTco6Meo0W9i4dqnwmDO8BJYTaHX7oQx1o06vCm4,57 virtualenv/config/convert.py,sha256=CWqO9z6j4ifUlAfadtB60xqTZpyAnPT0oDcpNomW7ek,2694 virtualenv/config/env_var.py,sha256=h1oipwjVqHgelK0YI80q3RvckBibdKtvi2mw-OEMUqI,869 virtualenv/config/ini.py,sha256=eHN1m4J6L-DvhhQwRjWbXelvYoZoCSSwqCms8gEemi4,2840 virtualenv/config/cli/__init__.py,sha256=8ArZTco6Meo0W9i4dqnwmDO8BJYTaHX7oQx1o06vCm4,57 virtualenv/config/cli/parser.py,sha256=HMbn7rDjM3knXhlJ-HP-79Q6mOOwJBgDuBA_GO842C0,4666 virtualenv/create/__init__.py,sha256=8ArZTco6Meo0W9i4dqnwmDO8BJYTaHX7oQx1o06vCm4,57 virtualenv/create/creator.py,sha256=rvdFhBeKZA0zCKoVFu83Rw7xa4PCPupwQ_kVLx7wjKQ,8928 virtualenv/create/debug.py,sha256=ETOke8w4Ib8fiufAHVeOkH3v0zrztljw3WjGvZyE0Mk,3342 virtualenv/create/describe.py,sha256=m_vJWNSpblQWQKluBiSp3EZrhFOCOOOZ49SXMXvukUA,3540 virtualenv/create/pyenv_cfg.py,sha256=VsOGfzUpaVCO3J29zrhIeip4jZ4b7llbe45iOQAIRGg,1717 virtualenv/create/via_global_ref/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 virtualenv/create/via_global_ref/_virtualenv.py,sha256=aEuMB5MrpKhKwuWumv5J7wTpK6w9jUGR1FXPCdCT5fw,5662 virtualenv/create/via_global_ref/api.py,sha256=5MPq3XJBuUOBj53oIigeWWPm68M-J_E644WWbz37qOU,4357 virtualenv/create/via_global_ref/store.py,sha256=cqLBEhQ979xHnlidqmxlDjsvj2Wr-mBo7shvGQSEBxU,685 virtualenv/create/via_global_ref/venv.py,sha256=p5RkDcXhr1pmOwnl1dpS06UYHmfNVy2ld4sTwsYjYWU,2955 virtualenv/create/via_global_ref/builtin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 virtualenv/create/via_global_ref/builtin/builtin_way.py,sha256=hO22nT-itVoYiy8wXrXXYzHw86toCp_Uq-cURR7w6ck,546 virtualenv/create/via_global_ref/builtin/ref.py,sha256=xCTICJhE-OiopBxl6ymo1P1NqgK3KEF8ZUOtQDtDTVA,5477 virtualenv/create/via_global_ref/builtin/via_global_self_do.py,sha256=d569fX7fjq5vHvGGXDjo-1Xi__HhqU2xjDJOuYrmGjw,4552 virtualenv/create/via_global_ref/builtin/cpython/__init__.py,sha256=8ArZTco6Meo0W9i4dqnwmDO8BJYTaHX7oQx1o06vCm4,57 virtualenv/create/via_global_ref/builtin/cpython/common.py,sha256=U7EvB9-2DlOQTGrTyPrEcItEbJ1sFBzo1EAOcAIjQ5Q,2392 virtualenv/create/via_global_ref/builtin/cpython/cpython2.py,sha256=NixgnZITjDP8qBWlnN40lUTeaPNoDUKPSS2ByUBs7Fk,3752 virtualenv/create/via_global_ref/builtin/cpython/cpython3.py,sha256=jz4mbuhu9BcbcZSwmKBT8eSIvKi6kgkx_V-fuAmtmjc,3312 virtualenv/create/via_global_ref/builtin/cpython/mac_os.py,sha256=gAtr3u0G3akU2eczFK4Q11MWSlLiNIrBS25OAR3jyQ8,14324 virtualenv/create/via_global_ref/builtin/pypy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 virtualenv/create/via_global_ref/builtin/pypy/common.py,sha256=t7XRfNtWFuVpZsnBAc-9Mgc-UXN8gbFs514jQ9viqsU,1762 virtualenv/create/via_global_ref/builtin/pypy/pypy2.py,sha256=YbakUalkwuVVJp0leN1Kuuk3hzx74sm8kzOzviTNSBc,3725 virtualenv/create/via_global_ref/builtin/pypy/pypy3.py,sha256=MD-gP0A4v-Qeg0hxcvRxMYzjHD6e25vNR9wKi5_nDvo,2777 virtualenv/create/via_global_ref/builtin/python2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 virtualenv/create/via_global_ref/builtin/python2/python2.py,sha256=jkJwmkeJVTzwzo95eMIptTfdBA-qmyIqZcpt48iOitU,4276 virtualenv/create/via_global_ref/builtin/python2/site.py,sha256=4kiq0cs57rbrqtFBsl7MyyGB2G2zjWn-1CHuH8C7gPQ,6903 virtualenv/discovery/__init__.py,sha256=8ArZTco6Meo0W9i4dqnwmDO8BJYTaHX7oQx1o06vCm4,57 virtualenv/discovery/builtin.py,sha256=LYvYqlyfrzULHeAwm4J4B9y4hLJHczNsivMtvsCoX78,6384 virtualenv/discovery/cached_py_info.py,sha256=Lo74BQutsLR8z2JFKXdX6HizKrP5-sxsPCCVQZRzB8Q,5312 virtualenv/discovery/discover.py,sha256=dq-yReN-vZHs9ZCBEOHN97KZErE2K26bPZRfVnNESIU,1241 virtualenv/discovery/py_info.py,sha256=sa4Eg6ijopVJ3WTCoprvpLfjePFX3NdLy5kjZJZCB9s,23382 virtualenv/discovery/py_spec.py,sha256=wQhLzCfXoSPsAAO9nm5-I2lNolVDux4W2vPSUfJGjlc,4790 virtualenv/discovery/windows/__init__.py,sha256=9LjYTjiPygcERmWUugyHcv5jHmZSfHO3H2RvwzIvQvU,1200 virtualenv/discovery/windows/pep514.py,sha256=YYiaJzo-XuMtO78BMFMAudqkeJiLQkFnUTOuQZ5lJz8,5451 virtualenv/run/__init__.py,sha256=yRu6KoU7JGlyg5zFTa51aiYKIq36tUphxHaHzmSdjbU,6090 virtualenv/run/session.py,sha256=S4NZiHzij1vp895mN9s9ZwYobJjjdP37QOHCb1o-Ufo,2563 virtualenv/run/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 virtualenv/run/plugin/activators.py,sha256=f6ZdG-Na6_jquTuG-E7kT40CAknGeB7YLgZzIPnDbsM,2225 virtualenv/run/plugin/base.py,sha256=nm5_Yal-XMFYmIxZ7HPpB6tv7cXih1aYHen-PHMS9oU,2277 virtualenv/run/plugin/creators.py,sha256=PIxJ85KmrQU7lUO-r8Znxbb4lTEzwHggc9lcDqmt2tc,3494 virtualenv/run/plugin/discovery.py,sha256=M1S8CZPqUsIpJ88FT8CyGB32lRuflEY5pgK_XcCnK60,1156 virtualenv/run/plugin/seeders.py,sha256=c1mhzu0HNzKdif6YUV35fuAOS0XHFJz3TtccLW5fWG0,1074 virtualenv/seed/__init__.py,sha256=8ArZTco6Meo0W9i4dqnwmDO8BJYTaHX7oQx1o06vCm4,57 virtualenv/seed/seeder.py,sha256=YAxyIOONsXRJrwzL8GbfSOoZjIMR7fcPREVyE2Tn3iQ,1209 virtualenv/seed/embed/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 virtualenv/seed/embed/base_embed.py,sha256=46mWtqWj_MjOQEqMJyosL0RWGL6HwrHAL2r1Jxc9DuI,4182 virtualenv/seed/embed/pip_invoke.py,sha256=6pRRy3_jmGRKc1L7TDbqoXIHy_2_X6t7p_dF27I4cWs,2167 virtualenv/seed/embed/via_app_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 virtualenv/seed/embed/via_app_data/via_app_data.py,sha256=w2Xtd56g1AfntfxNZtfFlg2t8yqrl5zTzvLo2xMiR94,6032 virtualenv/seed/embed/via_app_data/pip_install/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 virtualenv/seed/embed/via_app_data/pip_install/base.py,sha256=ZZDgaZxWwYAqCHwlYaKHDRJaNoWV0vSxilsvkjjWNjY,8481 virtualenv/seed/embed/via_app_data/pip_install/copy.py,sha256=gG2NePFHOYh-bsCf6TpsaQ_qrYhdBy67k0RWuwHSAwo,1307 virtualenv/seed/embed/via_app_data/pip_install/symlink.py,sha256=wHCpfKobvjjaZLUSwM3FSCblZfiBFw4IQYsxwlfEEu0,2362 virtualenv/seed/wheels/__init__.py,sha256=1J7el7lNjAwGxM4dmricrbVhSbYxs5sPzv9PTx2A6qA,226 virtualenv/seed/wheels/acquire.py,sha256=NsQ-uf-h4vHRIvpEBw9h5foWEpcLPKnqcx4iDkIqXkY,4737 virtualenv/seed/wheels/bundle.py,sha256=ovNzr-J4zn1EEvhIse4zeElYqrzUB_lyl-noZq_mk_I,1887 virtualenv/seed/wheels/periodic_update.py,sha256=JHR82w7TSEJaqa73hgoRDloZepa8gRH9k7nWMzOCAVk,15361 virtualenv/seed/wheels/util.py,sha256=Zdo76KEDqbNmM5u9JTuyu5uzEN_fQ4oj6qHOt0h0o1M,3960 virtualenv/seed/wheels/embed/__init__.py,sha256=5rTDfBiHJP9VaSxjrG4jv2nQHXF-fIWOG5HFSxxEGF8,1968 virtualenv/seed/wheels/embed/pip-20.3.4-py2.py3-none-any.whl,sha256=IXrlFhoOCMD7hzhYgG40eMl3XK_85RaLUOyIXjWMGZ0,1522101 virtualenv/seed/wheels/embed/pip-21.3.1-py3-none-any.whl,sha256=3q8y3Nmrgh41nNgzB4a80HdgS1xXMMCwlu2kb5XCSi0,1723581 virtualenv/seed/wheels/embed/setuptools-44.1.1-py2.py3-none-any.whl,sha256=J6cUwJJTE05gpvpoEw94xwN-VWLE8h-PMY8q6QDRUtU,583493 virtualenv/seed/wheels/embed/setuptools-50.3.2-py3-none-any.whl,sha256=LCQqCFb7rX775WDfSnrdkyTzQM9I30NlHpYEkkRmeUo,785194 virtualenv/seed/wheels/embed/setuptools-59.6.0-py3-none-any.whl,sha256=TOkvHh-PASM-6ZUsBPa4HR4Ck51uG0iEKBVJdKTQeD4,952597 virtualenv/seed/wheels/embed/setuptools-60.2.0-py3-none-any.whl,sha256=XImxoUpnrF8JVvHLCut9HT9Mi6Tk4at78a9JM_mi8P4,953071 virtualenv/seed/wheels/embed/wheel-0.37.1-py2.py3-none-any.whl,sha256=S9zX2EATgIYSbNCSVNxhlftPxvAcBQodcjbyYw2x0io,35301 virtualenv/util/__init__.py,sha256=om6Hs2lH5igf5lkcSmQFiU7iMZ0Wx4dmSlMc6XW_Llg,199 virtualenv/util/error.py,sha256=SRSZlXvMYQuJwxoUfNhlAyo3VwrAnIsZemSwPOxpjns,352 virtualenv/util/lock.py,sha256=qjbBwtJFbNrqapalxtzEnAEhqOapATmEw27jKsuvSIQ,4787 virtualenv/util/six.py,sha256=_8KWXUWi3-AaFmz4LkdyNra-uNuf70vlxwjN7oeRo8g,1463 virtualenv/util/zipapp.py,sha256=jtf4Vn7XBnjPs_B_ObIQv_x4pFlIlPKAWHYLFV59h6U,1054 virtualenv/util/path/__init__.py,sha256=2aA04ZAJ53nk3ZKPxvL_DvOwismyH8r_WCujrObxT5o,401 virtualenv/util/path/_permission.py,sha256=XpO2vGAk_92_biD4MEQcAQq2Zc8_rpm3M3n_hMUA1rw,745 virtualenv/util/path/_sync.py,sha256=G-LJ8gZBL8cbYD6PMZuUw7gudKPmvKW6vsq6CkvUUH4,2392 virtualenv/util/path/_win.py,sha256=cxXH1z5pyqwOlcq8PmRC38ASfB1QZjEyPEF3aQmXRb8,709 virtualenv/util/path/_pathlib/__init__.py,sha256=XqzX7bagsBo3dNdzW8TTlkNzQf-pjSxvWbVPFSYUvb0,340 virtualenv/util/path/_pathlib/via_os_path.py,sha256=fYDFAX483zVvC9hAOAC9FYtrGdZethS0vtYtKsL5r-s,3772 virtualenv/util/subprocess/__init__.py,sha256=1UmFrdBv2sVeUfZbDcO2yZpe28AE0ULOu9dRKlpJaa0,801 virtualenv/util/subprocess/_win_subprocess.py,sha256=nnYCcATKY_5ektDgGlk6OTdDQNyF_onbpfzCf13J5Qs,5697 virtualenv-20.13.0.dist-info/LICENSE,sha256=XBWRk3jFsqqrexnOpw2M3HX3aHnjJFTkwDmfi3HRcek,1074 virtualenv-20.13.0.dist-info/METADATA,sha256=EypJ26IqjGoF6joNjcvbSJeAJUkqT7O9Y85EQAHryeA,4656 virtualenv-20.13.0.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110 virtualenv-20.13.0.dist-info/entry_points.txt,sha256=fZvQAmsETUCLoxi8dBcQPIYaNW_xd-zWhenomSPxa7E,1732 virtualenv-20.13.0.dist-info/top_level.txt,sha256=JV-LVlC8YeIw1DgiYI0hEot7tgFy5IWdKVcSG7NyzaI,11 virtualenv-20.13.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 virtualenv-20.13.0.dist-info/RECORD,, PKx"TI9EEA__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/__init__.py# -*- coding: utf-8 -*- # # Copyright (C) 2012-2019 Vinay Sajip. # Licensed to the Python Software Foundation under a contributor agreement. # See LICENSE.txt and CONTRIBUTORS.txt. # import logging __version__ = '0.3.4' class DistlibException(Exception): pass try: from logging import NullHandler except ImportError: # pragma: no cover class NullHandler(logging.Handler): def handle(self, record): pass def emit(self, record): pass def createLock(self): self.lock = None logger = logging.getLogger(__name__) logger.addHandler(NullHandler()) PKx"T&8++?__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/compat.py# -*- coding: utf-8 -*- # # Copyright (C) 2013-2017 Vinay Sajip. # Licensed to the Python Software Foundation under a contributor agreement. # See LICENSE.txt and CONTRIBUTORS.txt. # from __future__ import absolute_import import os import re import sys try: import ssl except ImportError: # pragma: no cover ssl = None if sys.version_info[0] < 3: # pragma: no cover from StringIO import StringIO string_types = basestring, text_type = unicode from types import FileType as file_type import __builtin__ as builtins import ConfigParser as configparser from urlparse import urlparse, urlunparse, urljoin, urlsplit, urlunsplit from urllib import (urlretrieve, quote as _quote, unquote, url2pathname, pathname2url, ContentTooShortError, splittype) def quote(s): if isinstance(s, unicode): s = s.encode('utf-8') return _quote(s) import urllib2 from urllib2 import (Request, urlopen, URLError, HTTPError, HTTPBasicAuthHandler, HTTPPasswordMgr, HTTPHandler, HTTPRedirectHandler, build_opener) if ssl: from urllib2 import HTTPSHandler import httplib import xmlrpclib import Queue as queue from HTMLParser import HTMLParser import htmlentitydefs raw_input = raw_input from itertools import ifilter as filter from itertools import ifilterfalse as filterfalse # Leaving this around for now, in case it needs resurrecting in some way # _userprog = None # def splituser(host): # """splituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'.""" # global _userprog # if _userprog is None: # import re # _userprog = re.compile('^(.*)@(.*)$') # match = _userprog.match(host) # if match: return match.group(1, 2) # return None, host else: # pragma: no cover from io import StringIO string_types = str, text_type = str from io import TextIOWrapper as file_type import builtins import configparser import shutil from urllib.parse import (urlparse, urlunparse, urljoin, quote, unquote, urlsplit, urlunsplit, splittype) from urllib.request import (urlopen, urlretrieve, Request, url2pathname, pathname2url, HTTPBasicAuthHandler, HTTPPasswordMgr, HTTPHandler, HTTPRedirectHandler, build_opener) if ssl: from urllib.request import HTTPSHandler from urllib.error import HTTPError, URLError, ContentTooShortError import http.client as httplib import urllib.request as urllib2 import xmlrpc.client as xmlrpclib import queue from html.parser import HTMLParser import html.entities as htmlentitydefs raw_input = input from itertools import filterfalse filter = filter try: from ssl import match_hostname, CertificateError except ImportError: # pragma: no cover class CertificateError(ValueError): pass def _dnsname_match(dn, hostname, max_wildcards=1): """Matching according to RFC 6125, section 6.4.3 http://tools.ietf.org/html/rfc6125#section-6.4.3 """ pats = [] if not dn: return False parts = dn.split('.') leftmost, remainder = parts[0], parts[1:] wildcards = leftmost.count('*') if wildcards > max_wildcards: # Issue #17980: avoid denials of service by refusing more # than one wildcard per fragment. A survey of established # policy among SSL implementations showed it to be a # reasonable choice. raise CertificateError( "too many wildcards in certificate DNS name: " + repr(dn)) # speed up common case w/o wildcards if not wildcards: return dn.lower() == hostname.lower() # RFC 6125, section 6.4.3, subitem 1. # The client SHOULD NOT attempt to match a presented identifier in which # the wildcard character comprises a label other than the left-most label. if leftmost == '*': # When '*' is a fragment by itself, it matches a non-empty dotless # fragment. pats.append('[^.]+') elif leftmost.startswith('xn--') or hostname.startswith('xn--'): # RFC 6125, section 6.4.3, subitem 3. # The client SHOULD NOT attempt to match a presented identifier # where the wildcard character is embedded within an A-label or # U-label of an internationalized domain name. pats.append(re.escape(leftmost)) else: # Otherwise, '*' matches any dotless string, e.g. www* pats.append(re.escape(leftmost).replace(r'\*', '[^.]*')) # add the remaining fragments, ignore any wildcards for frag in remainder: pats.append(re.escape(frag)) pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE) return pat.match(hostname) def match_hostname(cert, hostname): """Verify that *cert* (in decoded format as returned by SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125 rules are followed, but IP addresses are not accepted for *hostname*. CertificateError is raised on failure. On success, the function returns nothing. """ if not cert: raise ValueError("empty or no certificate, match_hostname needs a " "SSL socket or SSL context with either " "CERT_OPTIONAL or CERT_REQUIRED") dnsnames = [] san = cert.get('subjectAltName', ()) for key, value in san: if key == 'DNS': if _dnsname_match(value, hostname): return dnsnames.append(value) if not dnsnames: # The subject is only checked when there is no dNSName entry # in subjectAltName for sub in cert.get('subject', ()): for key, value in sub: # XXX according to RFC 2818, the most specific Common Name # must be used. if key == 'commonName': if _dnsname_match(value, hostname): return dnsnames.append(value) if len(dnsnames) > 1: raise CertificateError("hostname %r " "doesn't match either of %s" % (hostname, ', '.join(map(repr, dnsnames)))) elif len(dnsnames) == 1: raise CertificateError("hostname %r " "doesn't match %r" % (hostname, dnsnames[0])) else: raise CertificateError("no appropriate commonName or " "subjectAltName fields were found") try: from types import SimpleNamespace as Container except ImportError: # pragma: no cover class Container(object): """ A generic container for when multiple values need to be returned """ def __init__(self, **kwargs): self.__dict__.update(kwargs) try: from shutil import which except ImportError: # pragma: no cover # Implementation from Python 3.3 def which(cmd, mode=os.F_OK | os.X_OK, path=None): """Given a command, mode, and a PATH string, return the path which conforms to the given mode on the PATH, or None if there is no such file. `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result of os.environ.get("PATH"), or can be overridden with a custom search path. """ # Check that a given file can be accessed with the correct mode. # Additionally check that `file` is not a directory, as on Windows # directories pass the os.access check. def _access_check(fn, mode): return (os.path.exists(fn) and os.access(fn, mode) and not os.path.isdir(fn)) # If we're given a path with a directory part, look it up directly rather # than referring to PATH directories. This includes checking relative to the # current directory, e.g. ./script if os.path.dirname(cmd): if _access_check(cmd, mode): return cmd return None if path is None: path = os.environ.get("PATH", os.defpath) if not path: return None path = path.split(os.pathsep) if sys.platform == "win32": # The current directory takes precedence on Windows. if not os.curdir in path: path.insert(0, os.curdir) # PATHEXT is necessary to check on Windows. pathext = os.environ.get("PATHEXT", "").split(os.pathsep) # See if the given file matches any of the expected path extensions. # This will allow us to short circuit when given "python.exe". # If it does match, only test that one, otherwise we have to try # others. if any(cmd.lower().endswith(ext.lower()) for ext in pathext): files = [cmd] else: files = [cmd + ext for ext in pathext] else: # On other platforms you don't have things like PATHEXT to tell you # what file suffixes are executable, so just pass on cmd as-is. files = [cmd] seen = set() for dir in path: normdir = os.path.normcase(dir) if not normdir in seen: seen.add(normdir) for thefile in files: name = os.path.join(dir, thefile) if _access_check(name, mode): return name return None # ZipFile is a context manager in 2.7, but not in 2.6 from zipfile import ZipFile as BaseZipFile if hasattr(BaseZipFile, '__enter__'): # pragma: no cover ZipFile = BaseZipFile else: # pragma: no cover from zipfile import ZipExtFile as BaseZipExtFile class ZipExtFile(BaseZipExtFile): def __init__(self, base): self.__dict__.update(base.__dict__) def __enter__(self): return self def __exit__(self, *exc_info): self.close() # return None, so if an exception occurred, it will propagate class ZipFile(BaseZipFile): def __enter__(self): return self def __exit__(self, *exc_info): self.close() # return None, so if an exception occurred, it will propagate def open(self, *args, **kwargs): base = BaseZipFile.open(self, *args, **kwargs) return ZipExtFile(base) try: from platform import python_implementation except ImportError: # pragma: no cover def python_implementation(): """Return a string identifying the Python implementation.""" if 'PyPy' in sys.version: return 'PyPy' if os.name == 'java': return 'Jython' if sys.version.startswith('IronPython'): return 'IronPython' return 'CPython' import shutil import sysconfig try: callable = callable except NameError: # pragma: no cover from collections.abc import Callable def callable(obj): return isinstance(obj, Callable) try: fsencode = os.fsencode fsdecode = os.fsdecode except AttributeError: # pragma: no cover # Issue #99: on some systems (e.g. containerised), # sys.getfilesystemencoding() returns None, and we need a real value, # so fall back to utf-8. From the CPython 2.7 docs relating to Unix and # sys.getfilesystemencoding(): the return value is "the user’s preference # according to the result of nl_langinfo(CODESET), or None if the # nl_langinfo(CODESET) failed." _fsencoding = sys.getfilesystemencoding() or 'utf-8' if _fsencoding == 'mbcs': _fserrors = 'strict' else: _fserrors = 'surrogateescape' def fsencode(filename): if isinstance(filename, bytes): return filename elif isinstance(filename, text_type): return filename.encode(_fsencoding, _fserrors) else: raise TypeError("expect bytes or str, not %s" % type(filename).__name__) def fsdecode(filename): if isinstance(filename, text_type): return filename elif isinstance(filename, bytes): return filename.decode(_fsencoding, _fserrors) else: raise TypeError("expect bytes or str, not %s" % type(filename).__name__) try: from tokenize import detect_encoding except ImportError: # pragma: no cover from codecs import BOM_UTF8, lookup import re cookie_re = re.compile(r"coding[:=]\s*([-\w.]+)") def _get_normal_name(orig_enc): """Imitates get_normal_name in tokenizer.c.""" # Only care about the first 12 characters. enc = orig_enc[:12].lower().replace("_", "-") if enc == "utf-8" or enc.startswith("utf-8-"): return "utf-8" if enc in ("latin-1", "iso-8859-1", "iso-latin-1") or \ enc.startswith(("latin-1-", "iso-8859-1-", "iso-latin-1-")): return "iso-8859-1" return orig_enc def detect_encoding(readline): """ The detect_encoding() function is used to detect the encoding that should be used to decode a Python source file. It requires one argument, readline, in the same way as the tokenize() generator. It will call readline a maximum of twice, and return the encoding used (as a string) and a list of any lines (left as bytes) it has read in. It detects the encoding from the presence of a utf-8 bom or an encoding cookie as specified in pep-0263. If both a bom and a cookie are present, but disagree, a SyntaxError will be raised. If the encoding cookie is an invalid charset, raise a SyntaxError. Note that if a utf-8 bom is found, 'utf-8-sig' is returned. If no encoding is specified, then the default of 'utf-8' will be returned. """ try: filename = readline.__self__.name except AttributeError: filename = None bom_found = False encoding = None default = 'utf-8' def read_or_stop(): try: return readline() except StopIteration: return b'' def find_cookie(line): try: # Decode as UTF-8. Either the line is an encoding declaration, # in which case it should be pure ASCII, or it must be UTF-8 # per default encoding. line_string = line.decode('utf-8') except UnicodeDecodeError: msg = "invalid or missing encoding declaration" if filename is not None: msg = '{} for {!r}'.format(msg, filename) raise SyntaxError(msg) matches = cookie_re.findall(line_string) if not matches: return None encoding = _get_normal_name(matches[0]) try: codec = lookup(encoding) except LookupError: # This behaviour mimics the Python interpreter if filename is None: msg = "unknown encoding: " + encoding else: msg = "unknown encoding for {!r}: {}".format(filename, encoding) raise SyntaxError(msg) if bom_found: if codec.name != 'utf-8': # This behaviour mimics the Python interpreter if filename is None: msg = 'encoding problem: utf-8' else: msg = 'encoding problem for {!r}: utf-8'.format(filename) raise SyntaxError(msg) encoding += '-sig' return encoding first = read_or_stop() if first.startswith(BOM_UTF8): bom_found = True first = first[3:] default = 'utf-8-sig' if not first: return default, [] encoding = find_cookie(first) if encoding: return encoding, [first] second = read_or_stop() if not second: return default, [first] encoding = find_cookie(second) if encoding: return encoding, [first, second] return default, [first, second] # For converting & <-> & etc. try: from html import escape except ImportError: from cgi import escape if sys.version_info[:2] < (3, 4): unescape = HTMLParser().unescape else: from html import unescape try: from collections import ChainMap except ImportError: # pragma: no cover from collections import MutableMapping try: from reprlib import recursive_repr as _recursive_repr except ImportError: def _recursive_repr(fillvalue='...'): ''' Decorator to make a repr function return fillvalue for a recursive call ''' def decorating_function(user_function): repr_running = set() def wrapper(self): key = id(self), get_ident() if key in repr_running: return fillvalue repr_running.add(key) try: result = user_function(self) finally: repr_running.discard(key) return result # Can't use functools.wraps() here because of bootstrap issues wrapper.__module__ = getattr(user_function, '__module__') wrapper.__doc__ = getattr(user_function, '__doc__') wrapper.__name__ = getattr(user_function, '__name__') wrapper.__annotations__ = getattr(user_function, '__annotations__', {}) return wrapper return decorating_function class ChainMap(MutableMapping): ''' A ChainMap groups multiple dicts (or other mappings) together to create a single, updateable view. The underlying mappings are stored in a list. That list is public and can accessed or updated using the *maps* attribute. There is no other state. Lookups search the underlying mappings successively until a key is found. In contrast, writes, updates, and deletions only operate on the first mapping. ''' def __init__(self, *maps): '''Initialize a ChainMap by setting *maps* to the given mappings. If no mappings are provided, a single empty dictionary is used. ''' self.maps = list(maps) or [{}] # always at least one map def __missing__(self, key): raise KeyError(key) def __getitem__(self, key): for mapping in self.maps: try: return mapping[key] # can't use 'key in mapping' with defaultdict except KeyError: pass return self.__missing__(key) # support subclasses that define __missing__ def get(self, key, default=None): return self[key] if key in self else default def __len__(self): return len(set().union(*self.maps)) # reuses stored hash values if possible def __iter__(self): return iter(set().union(*self.maps)) def __contains__(self, key): return any(key in m for m in self.maps) def __bool__(self): return any(self.maps) @_recursive_repr() def __repr__(self): return '{0.__class__.__name__}({1})'.format( self, ', '.join(map(repr, self.maps))) @classmethod def fromkeys(cls, iterable, *args): 'Create a ChainMap with a single dict created from the iterable.' return cls(dict.fromkeys(iterable, *args)) def copy(self): 'New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]' return self.__class__(self.maps[0].copy(), *self.maps[1:]) __copy__ = copy def new_child(self): # like Django's Context.push() 'New ChainMap with a new dict followed by all previous maps.' return self.__class__({}, *self.maps) @property def parents(self): # like Django's Context.pop() 'New ChainMap from maps[1:].' return self.__class__(*self.maps[1:]) def __setitem__(self, key, value): self.maps[0][key] = value def __delitem__(self, key): try: del self.maps[0][key] except KeyError: raise KeyError('Key not found in the first mapping: {!r}'.format(key)) def popitem(self): 'Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.' try: return self.maps[0].popitem() except KeyError: raise KeyError('No keys found in the first mapping.') def pop(self, key, *args): 'Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].' try: return self.maps[0].pop(key, *args) except KeyError: raise KeyError('Key not found in the first mapping: {!r}'.format(key)) def clear(self): 'Clear maps[0], leaving maps[1:] intact.' self.maps[0].clear() try: from importlib.util import cache_from_source # Python >= 3.4 except ImportError: # pragma: no cover def cache_from_source(path, debug_override=None): assert path.endswith('.py') if debug_override is None: debug_override = __debug__ if debug_override: suffix = 'c' else: suffix = 'o' return path + suffix try: from collections import OrderedDict except ImportError: # pragma: no cover ## {{{ http://code.activestate.com/recipes/576693/ (r9) # Backport of OrderedDict() class that runs on Python 2.4, 2.5, 2.6, 2.7 and pypy. # Passes Python2.7's test suite and incorporates all the latest updates. try: from thread import get_ident as _get_ident except ImportError: from dummy_thread import get_ident as _get_ident try: from _abcoll import KeysView, ValuesView, ItemsView except ImportError: pass class OrderedDict(dict): 'Dictionary that remembers insertion order' # An inherited dict maps keys to values. # The inherited dict provides __getitem__, __len__, __contains__, and get. # The remaining methods are order-aware. # Big-O running times for all methods are the same as for regular dictionaries. # The internal self.__map dictionary maps keys to links in a doubly linked list. # The circular doubly linked list starts and ends with a sentinel element. # The sentinel element never gets deleted (this simplifies the algorithm). # Each link is stored as a list of length three: [PREV, NEXT, KEY]. def __init__(self, *args, **kwds): '''Initialize an ordered dictionary. Signature is the same as for regular dictionaries, but keyword arguments are not recommended because their insertion order is arbitrary. ''' if len(args) > 1: raise TypeError('expected at most 1 arguments, got %d' % len(args)) try: self.__root except AttributeError: self.__root = root = [] # sentinel node root[:] = [root, root, None] self.__map = {} self.__update(*args, **kwds) def __setitem__(self, key, value, dict_setitem=dict.__setitem__): 'od.__setitem__(i, y) <==> od[i]=y' # Setting a new item creates a new link which goes at the end of the linked # list, and the inherited dictionary is updated with the new key/value pair. if key not in self: root = self.__root last = root[0] last[1] = root[0] = self.__map[key] = [last, root, key] dict_setitem(self, key, value) def __delitem__(self, key, dict_delitem=dict.__delitem__): 'od.__delitem__(y) <==> del od[y]' # Deleting an existing item uses self.__map to find the link which is # then removed by updating the links in the predecessor and successor nodes. dict_delitem(self, key) link_prev, link_next, key = self.__map.pop(key) link_prev[1] = link_next link_next[0] = link_prev def __iter__(self): 'od.__iter__() <==> iter(od)' root = self.__root curr = root[1] while curr is not root: yield curr[2] curr = curr[1] def __reversed__(self): 'od.__reversed__() <==> reversed(od)' root = self.__root curr = root[0] while curr is not root: yield curr[2] curr = curr[0] def clear(self): 'od.clear() -> None. Remove all items from od.' try: for node in self.__map.itervalues(): del node[:] root = self.__root root[:] = [root, root, None] self.__map.clear() except AttributeError: pass dict.clear(self) def popitem(self, last=True): '''od.popitem() -> (k, v), return and remove a (key, value) pair. Pairs are returned in LIFO order if last is true or FIFO order if false. ''' if not self: raise KeyError('dictionary is empty') root = self.__root if last: link = root[0] link_prev = link[0] link_prev[1] = root root[0] = link_prev else: link = root[1] link_next = link[1] root[1] = link_next link_next[0] = root key = link[2] del self.__map[key] value = dict.pop(self, key) return key, value # -- the following methods do not depend on the internal structure -- def keys(self): 'od.keys() -> list of keys in od' return list(self) def values(self): 'od.values() -> list of values in od' return [self[key] for key in self] def items(self): 'od.items() -> list of (key, value) pairs in od' return [(key, self[key]) for key in self] def iterkeys(self): 'od.iterkeys() -> an iterator over the keys in od' return iter(self) def itervalues(self): 'od.itervalues -> an iterator over the values in od' for k in self: yield self[k] def iteritems(self): 'od.iteritems -> an iterator over the (key, value) items in od' for k in self: yield (k, self[k]) def update(*args, **kwds): '''od.update(E, **F) -> None. Update od from dict/iterable E and F. If E is a dict instance, does: for k in E: od[k] = E[k] If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] Or if E is an iterable of items, does: for k, v in E: od[k] = v In either case, this is followed by: for k, v in F.items(): od[k] = v ''' if len(args) > 2: raise TypeError('update() takes at most 2 positional ' 'arguments (%d given)' % (len(args),)) elif not args: raise TypeError('update() takes at least 1 argument (0 given)') self = args[0] # Make progressively weaker assumptions about "other" other = () if len(args) == 2: other = args[1] if isinstance(other, dict): for key in other: self[key] = other[key] elif hasattr(other, 'keys'): for key in other.keys(): self[key] = other[key] else: for key, value in other: self[key] = value for key, value in kwds.items(): self[key] = value __update = update # let subclasses override update without breaking __init__ __marker = object() def pop(self, key, default=__marker): '''od.pop(k[,d]) -> v, remove specified key and return the corresponding value. If key is not found, d is returned if given, otherwise KeyError is raised. ''' if key in self: result = self[key] del self[key] return result if default is self.__marker: raise KeyError(key) return default def setdefault(self, key, default=None): 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od' if key in self: return self[key] self[key] = default return default def __repr__(self, _repr_running=None): 'od.__repr__() <==> repr(od)' if not _repr_running: _repr_running = {} call_key = id(self), _get_ident() if call_key in _repr_running: return '...' _repr_running[call_key] = 1 try: if not self: return '%s()' % (self.__class__.__name__,) return '%s(%r)' % (self.__class__.__name__, self.items()) finally: del _repr_running[call_key] def __reduce__(self): 'Return state information for pickling' items = [[k, self[k]] for k in self] inst_dict = vars(self).copy() for k in vars(OrderedDict()): inst_dict.pop(k, None) if inst_dict: return (self.__class__, (items,), inst_dict) return self.__class__, (items,) def copy(self): 'od.copy() -> a shallow copy of od' return self.__class__(self) @classmethod def fromkeys(cls, iterable, value=None): '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S and values equal to v (which defaults to None). ''' d = cls() for key in iterable: d[key] = value return d def __eq__(self, other): '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive while comparison to a regular mapping is order-insensitive. ''' if isinstance(other, OrderedDict): return len(self)==len(other) and self.items() == other.items() return dict.__eq__(self, other) def __ne__(self, other): return not self == other # -- the following methods are only used in Python 2.7 -- def viewkeys(self): "od.viewkeys() -> a set-like object providing a view on od's keys" return KeysView(self) def viewvalues(self): "od.viewvalues() -> an object providing a view on od's values" return ValuesView(self) def viewitems(self): "od.viewitems() -> a set-like object providing a view on od's items" return ItemsView(self) try: from logging.config import BaseConfigurator, valid_ident except ImportError: # pragma: no cover IDENTIFIER = re.compile('^[a-z_][a-z0-9_]*$', re.I) def valid_ident(s): m = IDENTIFIER.match(s) if not m: raise ValueError('Not a valid Python identifier: %r' % s) return True # The ConvertingXXX classes are wrappers around standard Python containers, # and they serve to convert any suitable values in the container. The # conversion converts base dicts, lists and tuples to their wrapped # equivalents, whereas strings which match a conversion format are converted # appropriately. # # Each wrapper should have a configurator attribute holding the actual # configurator to use for conversion. class ConvertingDict(dict): """A converting dictionary wrapper.""" def __getitem__(self, key): value = dict.__getitem__(self, key) result = self.configurator.convert(value) #If the converted value is different, save for next time if value is not result: self[key] = result if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result def get(self, key, default=None): value = dict.get(self, key, default) result = self.configurator.convert(value) #If the converted value is different, save for next time if value is not result: self[key] = result if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result def pop(self, key, default=None): value = dict.pop(self, key, default) result = self.configurator.convert(value) if value is not result: if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result class ConvertingList(list): """A converting list wrapper.""" def __getitem__(self, key): value = list.__getitem__(self, key) result = self.configurator.convert(value) #If the converted value is different, save for next time if value is not result: self[key] = result if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result def pop(self, idx=-1): value = list.pop(self, idx) result = self.configurator.convert(value) if value is not result: if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self return result class ConvertingTuple(tuple): """A converting tuple wrapper.""" def __getitem__(self, key): value = tuple.__getitem__(self, key) result = self.configurator.convert(value) if value is not result: if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result class BaseConfigurator(object): """ The configurator base class which defines some useful defaults. """ CONVERT_PATTERN = re.compile(r'^(?P[a-z]+)://(?P.*)$') WORD_PATTERN = re.compile(r'^\s*(\w+)\s*') DOT_PATTERN = re.compile(r'^\.\s*(\w+)\s*') INDEX_PATTERN = re.compile(r'^\[\s*(\w+)\s*\]\s*') DIGIT_PATTERN = re.compile(r'^\d+$') value_converters = { 'ext' : 'ext_convert', 'cfg' : 'cfg_convert', } # We might want to use a different one, e.g. importlib importer = staticmethod(__import__) def __init__(self, config): self.config = ConvertingDict(config) self.config.configurator = self def resolve(self, s): """ Resolve strings to objects using standard import and attribute syntax. """ name = s.split('.') used = name.pop(0) try: found = self.importer(used) for frag in name: used += '.' + frag try: found = getattr(found, frag) except AttributeError: self.importer(used) found = getattr(found, frag) return found except ImportError: e, tb = sys.exc_info()[1:] v = ValueError('Cannot resolve %r: %s' % (s, e)) v.__cause__, v.__traceback__ = e, tb raise v def ext_convert(self, value): """Default converter for the ext:// protocol.""" return self.resolve(value) def cfg_convert(self, value): """Default converter for the cfg:// protocol.""" rest = value m = self.WORD_PATTERN.match(rest) if m is None: raise ValueError("Unable to convert %r" % value) else: rest = rest[m.end():] d = self.config[m.groups()[0]] #print d, rest while rest: m = self.DOT_PATTERN.match(rest) if m: d = d[m.groups()[0]] else: m = self.INDEX_PATTERN.match(rest) if m: idx = m.groups()[0] if not self.DIGIT_PATTERN.match(idx): d = d[idx] else: try: n = int(idx) # try as number first (most likely) d = d[n] except TypeError: d = d[idx] if m: rest = rest[m.end():] else: raise ValueError('Unable to convert ' '%r at %r' % (value, rest)) #rest should be empty return d def convert(self, value): """ Convert values to an appropriate type. dicts, lists and tuples are replaced by their converting alternatives. Strings are checked to see if they have a conversion format and are converted if they do. """ if not isinstance(value, ConvertingDict) and isinstance(value, dict): value = ConvertingDict(value) value.configurator = self elif not isinstance(value, ConvertingList) and isinstance(value, list): value = ConvertingList(value) value.configurator = self elif not isinstance(value, ConvertingTuple) and\ isinstance(value, tuple): value = ConvertingTuple(value) value.configurator = self elif isinstance(value, string_types): m = self.CONVERT_PATTERN.match(value) if m: d = m.groupdict() prefix = d['prefix'] converter = self.value_converters.get(prefix, None) if converter: suffix = d['suffix'] converter = getattr(self, converter) value = converter(suffix) return value def configure_custom(self, config): """Configure an object with a user-supplied factory.""" c = config.pop('()') if not callable(c): c = self.resolve(c) props = config.pop('.', None) # Check for valid identifiers kwargs = dict([(k, config[k]) for k in config if valid_ident(k)]) result = c(**kwargs) if props: for name, value in props.items(): setattr(result, name, value) return result def as_tuple(self, value): """Utility function which converts lists to tuples.""" if isinstance(value, list): value = tuple(value) return value PKx"Tpd1A__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/database.py# -*- coding: utf-8 -*- # # Copyright (C) 2012-2017 The Python Software Foundation. # See LICENSE.txt and CONTRIBUTORS.txt. # """PEP 376 implementation.""" from __future__ import unicode_literals import base64 import codecs import contextlib import hashlib import logging import os import posixpath import sys import zipimport from . import DistlibException, resources from .compat import StringIO from .version import get_scheme, UnsupportedVersionError from .metadata import (Metadata, METADATA_FILENAME, WHEEL_METADATA_FILENAME, LEGACY_METADATA_FILENAME) from .util import (parse_requirement, cached_property, parse_name_and_version, read_exports, write_exports, CSVReader, CSVWriter) __all__ = ['Distribution', 'BaseInstalledDistribution', 'InstalledDistribution', 'EggInfoDistribution', 'DistributionPath'] logger = logging.getLogger(__name__) EXPORTS_FILENAME = 'pydist-exports.json' COMMANDS_FILENAME = 'pydist-commands.json' DIST_FILES = ('INSTALLER', METADATA_FILENAME, 'RECORD', 'REQUESTED', 'RESOURCES', EXPORTS_FILENAME, 'SHARED') DISTINFO_EXT = '.dist-info' class _Cache(object): """ A simple cache mapping names and .dist-info paths to distributions """ def __init__(self): """ Initialise an instance. There is normally one for each DistributionPath. """ self.name = {} self.path = {} self.generated = False def clear(self): """ Clear the cache, setting it to its initial state. """ self.name.clear() self.path.clear() self.generated = False def add(self, dist): """ Add a distribution to the cache. :param dist: The distribution to add. """ if dist.path not in self.path: self.path[dist.path] = dist self.name.setdefault(dist.key, []).append(dist) class DistributionPath(object): """ Represents a set of distributions installed on a path (typically sys.path). """ def __init__(self, path=None, include_egg=False): """ Create an instance from a path, optionally including legacy (distutils/ setuptools/distribute) distributions. :param path: The path to use, as a list of directories. If not specified, sys.path is used. :param include_egg: If True, this instance will look for and return legacy distributions as well as those based on PEP 376. """ if path is None: path = sys.path self.path = path self._include_dist = True self._include_egg = include_egg self._cache = _Cache() self._cache_egg = _Cache() self._cache_enabled = True self._scheme = get_scheme('default') def _get_cache_enabled(self): return self._cache_enabled def _set_cache_enabled(self, value): self._cache_enabled = value cache_enabled = property(_get_cache_enabled, _set_cache_enabled) def clear_cache(self): """ Clears the internal cache. """ self._cache.clear() self._cache_egg.clear() def _yield_distributions(self): """ Yield .dist-info and/or .egg(-info) distributions. """ # We need to check if we've seen some resources already, because on # some Linux systems (e.g. some Debian/Ubuntu variants) there are # symlinks which alias other files in the environment. seen = set() for path in self.path: finder = resources.finder_for_path(path) if finder is None: continue r = finder.find('') if not r or not r.is_container: continue rset = sorted(r.resources) for entry in rset: r = finder.find(entry) if not r or r.path in seen: continue try: if self._include_dist and entry.endswith(DISTINFO_EXT): possible_filenames = [METADATA_FILENAME, WHEEL_METADATA_FILENAME, LEGACY_METADATA_FILENAME] for metadata_filename in possible_filenames: metadata_path = posixpath.join(entry, metadata_filename) pydist = finder.find(metadata_path) if pydist: break else: continue with contextlib.closing(pydist.as_stream()) as stream: metadata = Metadata(fileobj=stream, scheme='legacy') logger.debug('Found %s', r.path) seen.add(r.path) yield new_dist_class(r.path, metadata=metadata, env=self) elif self._include_egg and entry.endswith(('.egg-info', '.egg')): logger.debug('Found %s', r.path) seen.add(r.path) yield old_dist_class(r.path, self) except Exception as e: msg = 'Unable to read distribution at %s, perhaps due to bad metadata: %s' logger.warning(msg, r.path, e) import warnings warnings.warn(msg % (r.path, e), stacklevel=2) def _generate_cache(self): """ Scan the path for distributions and populate the cache with those that are found. """ gen_dist = not self._cache.generated gen_egg = self._include_egg and not self._cache_egg.generated if gen_dist or gen_egg: for dist in self._yield_distributions(): if isinstance(dist, InstalledDistribution): self._cache.add(dist) else: self._cache_egg.add(dist) if gen_dist: self._cache.generated = True if gen_egg: self._cache_egg.generated = True @classmethod def distinfo_dirname(cls, name, version): """ The *name* and *version* parameters are converted into their filename-escaped form, i.e. any ``'-'`` characters are replaced with ``'_'`` other than the one in ``'dist-info'`` and the one separating the name from the version number. :parameter name: is converted to a standard distribution name by replacing any runs of non- alphanumeric characters with a single ``'-'``. :type name: string :parameter version: is converted to a standard version string. Spaces become dots, and all other non-alphanumeric characters (except dots) become dashes, with runs of multiple dashes condensed to a single dash. :type version: string :returns: directory name :rtype: string""" name = name.replace('-', '_') return '-'.join([name, version]) + DISTINFO_EXT def get_distributions(self): """ Provides an iterator that looks for distributions and returns :class:`InstalledDistribution` or :class:`EggInfoDistribution` instances for each one of them. :rtype: iterator of :class:`InstalledDistribution` and :class:`EggInfoDistribution` instances """ if not self._cache_enabled: for dist in self._yield_distributions(): yield dist else: self._generate_cache() for dist in self._cache.path.values(): yield dist if self._include_egg: for dist in self._cache_egg.path.values(): yield dist def get_distribution(self, name): """ Looks for a named distribution on the path. This function only returns the first result found, as no more than one value is expected. If nothing is found, ``None`` is returned. :rtype: :class:`InstalledDistribution`, :class:`EggInfoDistribution` or ``None`` """ result = None name = name.lower() if not self._cache_enabled: for dist in self._yield_distributions(): if dist.key == name: result = dist break else: self._generate_cache() if name in self._cache.name: result = self._cache.name[name][0] elif self._include_egg and name in self._cache_egg.name: result = self._cache_egg.name[name][0] return result def provides_distribution(self, name, version=None): """ Iterates over all distributions to find which distributions provide *name*. If a *version* is provided, it will be used to filter the results. This function only returns the first result found, since no more than one values are expected. If the directory is not found, returns ``None``. :parameter version: a version specifier that indicates the version required, conforming to the format in ``PEP-345`` :type name: string :type version: string """ matcher = None if version is not None: try: matcher = self._scheme.matcher('%s (%s)' % (name, version)) except ValueError: raise DistlibException('invalid name or version: %r, %r' % (name, version)) for dist in self.get_distributions(): # We hit a problem on Travis where enum34 was installed and doesn't # have a provides attribute ... if not hasattr(dist, 'provides'): logger.debug('No "provides": %s', dist) else: provided = dist.provides for p in provided: p_name, p_ver = parse_name_and_version(p) if matcher is None: if p_name == name: yield dist break else: if p_name == name and matcher.match(p_ver): yield dist break def get_file_path(self, name, relative_path): """ Return the path to a resource file. """ dist = self.get_distribution(name) if dist is None: raise LookupError('no distribution named %r found' % name) return dist.get_resource_path(relative_path) def get_exported_entries(self, category, name=None): """ Return all of the exported entries in a particular category. :param category: The category to search for entries. :param name: If specified, only entries with that name are returned. """ for dist in self.get_distributions(): r = dist.exports if category in r: d = r[category] if name is not None: if name in d: yield d[name] else: for v in d.values(): yield v class Distribution(object): """ A base class for distributions, whether installed or from indexes. Either way, it must have some metadata, so that's all that's needed for construction. """ build_time_dependency = False """ Set to True if it's known to be only a build-time dependency (i.e. not needed after installation). """ requested = False """A boolean that indicates whether the ``REQUESTED`` metadata file is present (in other words, whether the package was installed by user request or it was installed as a dependency).""" def __init__(self, metadata): """ Initialise an instance. :param metadata: The instance of :class:`Metadata` describing this distribution. """ self.metadata = metadata self.name = metadata.name self.key = self.name.lower() # for case-insensitive comparisons self.version = metadata.version self.locator = None self.digest = None self.extras = None # additional features requested self.context = None # environment marker overrides self.download_urls = set() self.digests = {} @property def source_url(self): """ The source archive download URL for this distribution. """ return self.metadata.source_url download_url = source_url # Backward compatibility @property def name_and_version(self): """ A utility property which displays the name and version in parentheses. """ return '%s (%s)' % (self.name, self.version) @property def provides(self): """ A set of distribution names and versions provided by this distribution. :return: A set of "name (version)" strings. """ plist = self.metadata.provides s = '%s (%s)' % (self.name, self.version) if s not in plist: plist.append(s) return plist def _get_requirements(self, req_attr): md = self.metadata logger.debug('Getting requirements from metadata %r', md.todict()) reqts = getattr(md, req_attr) return set(md.get_requirements(reqts, extras=self.extras, env=self.context)) @property def run_requires(self): return self._get_requirements('run_requires') @property def meta_requires(self): return self._get_requirements('meta_requires') @property def build_requires(self): return self._get_requirements('build_requires') @property def test_requires(self): return self._get_requirements('test_requires') @property def dev_requires(self): return self._get_requirements('dev_requires') def matches_requirement(self, req): """ Say if this instance matches (fulfills) a requirement. :param req: The requirement to match. :rtype req: str :return: True if it matches, else False. """ # Requirement may contain extras - parse to lose those # from what's passed to the matcher r = parse_requirement(req) scheme = get_scheme(self.metadata.scheme) try: matcher = scheme.matcher(r.requirement) except UnsupportedVersionError: # XXX compat-mode if cannot read the version logger.warning('could not read version %r - using name only', req) name = req.split()[0] matcher = scheme.matcher(name) name = matcher.key # case-insensitive result = False for p in self.provides: p_name, p_ver = parse_name_and_version(p) if p_name != name: continue try: result = matcher.match(p_ver) break except UnsupportedVersionError: pass return result def __repr__(self): """ Return a textual representation of this instance, """ if self.source_url: suffix = ' [%s]' % self.source_url else: suffix = '' return '' % (self.name, self.version, suffix) def __eq__(self, other): """ See if this distribution is the same as another. :param other: The distribution to compare with. To be equal to one another. distributions must have the same type, name, version and source_url. :return: True if it is the same, else False. """ if type(other) is not type(self): result = False else: result = (self.name == other.name and self.version == other.version and self.source_url == other.source_url) return result def __hash__(self): """ Compute hash in a way which matches the equality test. """ return hash(self.name) + hash(self.version) + hash(self.source_url) class BaseInstalledDistribution(Distribution): """ This is the base class for installed distributions (whether PEP 376 or legacy). """ hasher = None def __init__(self, metadata, path, env=None): """ Initialise an instance. :param metadata: An instance of :class:`Metadata` which describes the distribution. This will normally have been initialised from a metadata file in the ``path``. :param path: The path of the ``.dist-info`` or ``.egg-info`` directory for the distribution. :param env: This is normally the :class:`DistributionPath` instance where this distribution was found. """ super(BaseInstalledDistribution, self).__init__(metadata) self.path = path self.dist_path = env def get_hash(self, data, hasher=None): """ Get the hash of some data, using a particular hash algorithm, if specified. :param data: The data to be hashed. :type data: bytes :param hasher: The name of a hash implementation, supported by hashlib, or ``None``. Examples of valid values are ``'sha1'``, ``'sha224'``, ``'sha384'``, '``sha256'``, ``'md5'`` and ``'sha512'``. If no hasher is specified, the ``hasher`` attribute of the :class:`InstalledDistribution` instance is used. If the hasher is determined to be ``None``, MD5 is used as the hashing algorithm. :returns: The hash of the data. If a hasher was explicitly specified, the returned hash will be prefixed with the specified hasher followed by '='. :rtype: str """ if hasher is None: hasher = self.hasher if hasher is None: hasher = hashlib.md5 prefix = '' else: hasher = getattr(hashlib, hasher) prefix = '%s=' % self.hasher digest = hasher(data).digest() digest = base64.urlsafe_b64encode(digest).rstrip(b'=').decode('ascii') return '%s%s' % (prefix, digest) class InstalledDistribution(BaseInstalledDistribution): """ Created with the *path* of the ``.dist-info`` directory provided to the constructor. It reads the metadata contained in ``pydist.json`` when it is instantiated., or uses a passed in Metadata instance (useful for when dry-run mode is being used). """ hasher = 'sha256' def __init__(self, path, metadata=None, env=None): self.modules = [] self.finder = finder = resources.finder_for_path(path) if finder is None: raise ValueError('finder unavailable for %s' % path) if env and env._cache_enabled and path in env._cache.path: metadata = env._cache.path[path].metadata elif metadata is None: r = finder.find(METADATA_FILENAME) # Temporary - for Wheel 0.23 support if r is None: r = finder.find(WHEEL_METADATA_FILENAME) # Temporary - for legacy support if r is None: r = finder.find(LEGACY_METADATA_FILENAME) if r is None: raise ValueError('no %s found in %s' % (METADATA_FILENAME, path)) with contextlib.closing(r.as_stream()) as stream: metadata = Metadata(fileobj=stream, scheme='legacy') super(InstalledDistribution, self).__init__(metadata, path, env) if env and env._cache_enabled: env._cache.add(self) r = finder.find('REQUESTED') self.requested = r is not None p = os.path.join(path, 'top_level.txt') if os.path.exists(p): with open(p, 'rb') as f: data = f.read().decode('utf-8') self.modules = data.splitlines() def __repr__(self): return '' % ( self.name, self.version, self.path) def __str__(self): return "%s %s" % (self.name, self.version) def _get_records(self): """ Get the list of installed files for the distribution :return: A list of tuples of path, hash and size. Note that hash and size might be ``None`` for some entries. The path is exactly as stored in the file (which is as in PEP 376). """ results = [] r = self.get_distinfo_resource('RECORD') with contextlib.closing(r.as_stream()) as stream: with CSVReader(stream=stream) as record_reader: # Base location is parent dir of .dist-info dir #base_location = os.path.dirname(self.path) #base_location = os.path.abspath(base_location) for row in record_reader: missing = [None for i in range(len(row), 3)] path, checksum, size = row + missing #if not os.path.isabs(path): # path = path.replace('/', os.sep) # path = os.path.join(base_location, path) results.append((path, checksum, size)) return results @cached_property def exports(self): """ Return the information exported by this distribution. :return: A dictionary of exports, mapping an export category to a dict of :class:`ExportEntry` instances describing the individual export entries, and keyed by name. """ result = {} r = self.get_distinfo_resource(EXPORTS_FILENAME) if r: result = self.read_exports() return result def read_exports(self): """ Read exports data from a file in .ini format. :return: A dictionary of exports, mapping an export category to a list of :class:`ExportEntry` instances describing the individual export entries. """ result = {} r = self.get_distinfo_resource(EXPORTS_FILENAME) if r: with contextlib.closing(r.as_stream()) as stream: result = read_exports(stream) return result def write_exports(self, exports): """ Write a dictionary of exports to a file in .ini format. :param exports: A dictionary of exports, mapping an export category to a list of :class:`ExportEntry` instances describing the individual export entries. """ rf = self.get_distinfo_file(EXPORTS_FILENAME) with open(rf, 'w') as f: write_exports(exports, f) def get_resource_path(self, relative_path): """ NOTE: This API may change in the future. Return the absolute path to a resource file with the given relative path. :param relative_path: The path, relative to .dist-info, of the resource of interest. :return: The absolute path where the resource is to be found. """ r = self.get_distinfo_resource('RESOURCES') with contextlib.closing(r.as_stream()) as stream: with CSVReader(stream=stream) as resources_reader: for relative, destination in resources_reader: if relative == relative_path: return destination raise KeyError('no resource file with relative path %r ' 'is installed' % relative_path) def list_installed_files(self): """ Iterates over the ``RECORD`` entries and returns a tuple ``(path, hash, size)`` for each line. :returns: iterator of (path, hash, size) """ for result in self._get_records(): yield result def write_installed_files(self, paths, prefix, dry_run=False): """ Writes the ``RECORD`` file, using the ``paths`` iterable passed in. Any existing ``RECORD`` file is silently overwritten. prefix is used to determine when to write absolute paths. """ prefix = os.path.join(prefix, '') base = os.path.dirname(self.path) base_under_prefix = base.startswith(prefix) base = os.path.join(base, '') record_path = self.get_distinfo_file('RECORD') logger.info('creating %s', record_path) if dry_run: return None with CSVWriter(record_path) as writer: for path in paths: if os.path.isdir(path) or path.endswith(('.pyc', '.pyo')): # do not put size and hash, as in PEP-376 hash_value = size = '' else: size = '%d' % os.path.getsize(path) with open(path, 'rb') as fp: hash_value = self.get_hash(fp.read()) if path.startswith(base) or (base_under_prefix and path.startswith(prefix)): path = os.path.relpath(path, base) writer.writerow((path, hash_value, size)) # add the RECORD file itself if record_path.startswith(base): record_path = os.path.relpath(record_path, base) writer.writerow((record_path, '', '')) return record_path def check_installed_files(self): """ Checks that the hashes and sizes of the files in ``RECORD`` are matched by the files themselves. Returns a (possibly empty) list of mismatches. Each entry in the mismatch list will be a tuple consisting of the path, 'exists', 'size' or 'hash' according to what didn't match (existence is checked first, then size, then hash), the expected value and the actual value. """ mismatches = [] base = os.path.dirname(self.path) record_path = self.get_distinfo_file('RECORD') for path, hash_value, size in self.list_installed_files(): if not os.path.isabs(path): path = os.path.join(base, path) if path == record_path: continue if not os.path.exists(path): mismatches.append((path, 'exists', True, False)) elif os.path.isfile(path): actual_size = str(os.path.getsize(path)) if size and actual_size != size: mismatches.append((path, 'size', size, actual_size)) elif hash_value: if '=' in hash_value: hasher = hash_value.split('=', 1)[0] else: hasher = None with open(path, 'rb') as f: actual_hash = self.get_hash(f.read(), hasher) if actual_hash != hash_value: mismatches.append((path, 'hash', hash_value, actual_hash)) return mismatches @cached_property def shared_locations(self): """ A dictionary of shared locations whose keys are in the set 'prefix', 'purelib', 'platlib', 'scripts', 'headers', 'data' and 'namespace'. The corresponding value is the absolute path of that category for this distribution, and takes into account any paths selected by the user at installation time (e.g. via command-line arguments). In the case of the 'namespace' key, this would be a list of absolute paths for the roots of namespace packages in this distribution. The first time this property is accessed, the relevant information is read from the SHARED file in the .dist-info directory. """ result = {} shared_path = os.path.join(self.path, 'SHARED') if os.path.isfile(shared_path): with codecs.open(shared_path, 'r', encoding='utf-8') as f: lines = f.read().splitlines() for line in lines: key, value = line.split('=', 1) if key == 'namespace': result.setdefault(key, []).append(value) else: result[key] = value return result def write_shared_locations(self, paths, dry_run=False): """ Write shared location information to the SHARED file in .dist-info. :param paths: A dictionary as described in the documentation for :meth:`shared_locations`. :param dry_run: If True, the action is logged but no file is actually written. :return: The path of the file written to. """ shared_path = os.path.join(self.path, 'SHARED') logger.info('creating %s', shared_path) if dry_run: return None lines = [] for key in ('prefix', 'lib', 'headers', 'scripts', 'data'): path = paths[key] if os.path.isdir(paths[key]): lines.append('%s=%s' % (key, path)) for ns in paths.get('namespace', ()): lines.append('namespace=%s' % ns) with codecs.open(shared_path, 'w', encoding='utf-8') as f: f.write('\n'.join(lines)) return shared_path def get_distinfo_resource(self, path): if path not in DIST_FILES: raise DistlibException('invalid path for a dist-info file: ' '%r at %r' % (path, self.path)) finder = resources.finder_for_path(self.path) if finder is None: raise DistlibException('Unable to get a finder for %s' % self.path) return finder.find(path) def get_distinfo_file(self, path): """ Returns a path located under the ``.dist-info`` directory. Returns a string representing the path. :parameter path: a ``'/'``-separated path relative to the ``.dist-info`` directory or an absolute path; If *path* is an absolute path and doesn't start with the ``.dist-info`` directory path, a :class:`DistlibException` is raised :type path: str :rtype: str """ # Check if it is an absolute path # XXX use relpath, add tests if path.find(os.sep) >= 0: # it's an absolute path? distinfo_dirname, path = path.split(os.sep)[-2:] if distinfo_dirname != self.path.split(os.sep)[-1]: raise DistlibException( 'dist-info file %r does not belong to the %r %s ' 'distribution' % (path, self.name, self.version)) # The file must be relative if path not in DIST_FILES: raise DistlibException('invalid path for a dist-info file: ' '%r at %r' % (path, self.path)) return os.path.join(self.path, path) def list_distinfo_files(self): """ Iterates over the ``RECORD`` entries and returns paths for each line if the path is pointing to a file located in the ``.dist-info`` directory or one of its subdirectories. :returns: iterator of paths """ base = os.path.dirname(self.path) for path, checksum, size in self._get_records(): # XXX add separator or use real relpath algo if not os.path.isabs(path): path = os.path.join(base, path) if path.startswith(self.path): yield path def __eq__(self, other): return (isinstance(other, InstalledDistribution) and self.path == other.path) # See http://docs.python.org/reference/datamodel#object.__hash__ __hash__ = object.__hash__ class EggInfoDistribution(BaseInstalledDistribution): """Created with the *path* of the ``.egg-info`` directory or file provided to the constructor. It reads the metadata contained in the file itself, or if the given path happens to be a directory, the metadata is read from the file ``PKG-INFO`` under that directory.""" requested = True # as we have no way of knowing, assume it was shared_locations = {} def __init__(self, path, env=None): def set_name_and_version(s, n, v): s.name = n s.key = n.lower() # for case-insensitive comparisons s.version = v self.path = path self.dist_path = env if env and env._cache_enabled and path in env._cache_egg.path: metadata = env._cache_egg.path[path].metadata set_name_and_version(self, metadata.name, metadata.version) else: metadata = self._get_metadata(path) # Need to be set before caching set_name_and_version(self, metadata.name, metadata.version) if env and env._cache_enabled: env._cache_egg.add(self) super(EggInfoDistribution, self).__init__(metadata, path, env) def _get_metadata(self, path): requires = None def parse_requires_data(data): """Create a list of dependencies from a requires.txt file. *data*: the contents of a setuptools-produced requires.txt file. """ reqs = [] lines = data.splitlines() for line in lines: line = line.strip() if line.startswith('['): logger.warning('Unexpected line: quitting requirement scan: %r', line) break r = parse_requirement(line) if not r: logger.warning('Not recognised as a requirement: %r', line) continue if r.extras: logger.warning('extra requirements in requires.txt are ' 'not supported') if not r.constraints: reqs.append(r.name) else: cons = ', '.join('%s%s' % c for c in r.constraints) reqs.append('%s (%s)' % (r.name, cons)) return reqs def parse_requires_path(req_path): """Create a list of dependencies from a requires.txt file. *req_path*: the path to a setuptools-produced requires.txt file. """ reqs = [] try: with codecs.open(req_path, 'r', 'utf-8') as fp: reqs = parse_requires_data(fp.read()) except IOError: pass return reqs tl_path = tl_data = None if path.endswith('.egg'): if os.path.isdir(path): p = os.path.join(path, 'EGG-INFO') meta_path = os.path.join(p, 'PKG-INFO') metadata = Metadata(path=meta_path, scheme='legacy') req_path = os.path.join(p, 'requires.txt') tl_path = os.path.join(p, 'top_level.txt') requires = parse_requires_path(req_path) else: # FIXME handle the case where zipfile is not available zipf = zipimport.zipimporter(path) fileobj = StringIO( zipf.get_data('EGG-INFO/PKG-INFO').decode('utf8')) metadata = Metadata(fileobj=fileobj, scheme='legacy') try: data = zipf.get_data('EGG-INFO/requires.txt') tl_data = zipf.get_data('EGG-INFO/top_level.txt').decode('utf-8') requires = parse_requires_data(data.decode('utf-8')) except IOError: requires = None elif path.endswith('.egg-info'): if os.path.isdir(path): req_path = os.path.join(path, 'requires.txt') requires = parse_requires_path(req_path) path = os.path.join(path, 'PKG-INFO') tl_path = os.path.join(path, 'top_level.txt') metadata = Metadata(path=path, scheme='legacy') else: raise DistlibException('path must end with .egg-info or .egg, ' 'got %r' % path) if requires: metadata.add_requirements(requires) # look for top-level modules in top_level.txt, if present if tl_data is None: if tl_path is not None and os.path.exists(tl_path): with open(tl_path, 'rb') as f: tl_data = f.read().decode('utf-8') if not tl_data: tl_data = [] else: tl_data = tl_data.splitlines() self.modules = tl_data return metadata def __repr__(self): return '' % ( self.name, self.version, self.path) def __str__(self): return "%s %s" % (self.name, self.version) def check_installed_files(self): """ Checks that the hashes and sizes of the files in ``RECORD`` are matched by the files themselves. Returns a (possibly empty) list of mismatches. Each entry in the mismatch list will be a tuple consisting of the path, 'exists', 'size' or 'hash' according to what didn't match (existence is checked first, then size, then hash), the expected value and the actual value. """ mismatches = [] record_path = os.path.join(self.path, 'installed-files.txt') if os.path.exists(record_path): for path, _, _ in self.list_installed_files(): if path == record_path: continue if not os.path.exists(path): mismatches.append((path, 'exists', True, False)) return mismatches def list_installed_files(self): """ Iterates over the ``installed-files.txt`` entries and returns a tuple ``(path, hash, size)`` for each line. :returns: a list of (path, hash, size) """ def _md5(path): f = open(path, 'rb') try: content = f.read() finally: f.close() return hashlib.md5(content).hexdigest() def _size(path): return os.stat(path).st_size record_path = os.path.join(self.path, 'installed-files.txt') result = [] if os.path.exists(record_path): with codecs.open(record_path, 'r', encoding='utf-8') as f: for line in f: line = line.strip() p = os.path.normpath(os.path.join(self.path, line)) # "./" is present as a marker between installed files # and installation metadata files if not os.path.exists(p): logger.warning('Non-existent file: %s', p) if p.endswith(('.pyc', '.pyo')): continue #otherwise fall through and fail if not os.path.isdir(p): result.append((p, _md5(p), _size(p))) result.append((record_path, None, None)) return result def list_distinfo_files(self, absolute=False): """ Iterates over the ``installed-files.txt`` entries and returns paths for each line if the path is pointing to a file located in the ``.egg-info`` directory or one of its subdirectories. :parameter absolute: If *absolute* is ``True``, each returned path is transformed into a local absolute path. Otherwise the raw value from ``installed-files.txt`` is returned. :type absolute: boolean :returns: iterator of paths """ record_path = os.path.join(self.path, 'installed-files.txt') if os.path.exists(record_path): skip = True with codecs.open(record_path, 'r', encoding='utf-8') as f: for line in f: line = line.strip() if line == './': skip = False continue if not skip: p = os.path.normpath(os.path.join(self.path, line)) if p.startswith(self.path): if absolute: yield p else: yield line def __eq__(self, other): return (isinstance(other, EggInfoDistribution) and self.path == other.path) # See http://docs.python.org/reference/datamodel#object.__hash__ __hash__ = object.__hash__ new_dist_class = InstalledDistribution old_dist_class = EggInfoDistribution class DependencyGraph(object): """ Represents a dependency graph between distributions. The dependency relationships are stored in an ``adjacency_list`` that maps distributions to a list of ``(other, label)`` tuples where ``other`` is a distribution and the edge is labeled with ``label`` (i.e. the version specifier, if such was provided). Also, for more efficient traversal, for every distribution ``x``, a list of predecessors is kept in ``reverse_list[x]``. An edge from distribution ``a`` to distribution ``b`` means that ``a`` depends on ``b``. If any missing dependencies are found, they are stored in ``missing``, which is a dictionary that maps distributions to a list of requirements that were not provided by any other distributions. """ def __init__(self): self.adjacency_list = {} self.reverse_list = {} self.missing = {} def add_distribution(self, distribution): """Add the *distribution* to the graph. :type distribution: :class:`distutils2.database.InstalledDistribution` or :class:`distutils2.database.EggInfoDistribution` """ self.adjacency_list[distribution] = [] self.reverse_list[distribution] = [] #self.missing[distribution] = [] def add_edge(self, x, y, label=None): """Add an edge from distribution *x* to distribution *y* with the given *label*. :type x: :class:`distutils2.database.InstalledDistribution` or :class:`distutils2.database.EggInfoDistribution` :type y: :class:`distutils2.database.InstalledDistribution` or :class:`distutils2.database.EggInfoDistribution` :type label: ``str`` or ``None`` """ self.adjacency_list[x].append((y, label)) # multiple edges are allowed, so be careful if x not in self.reverse_list[y]: self.reverse_list[y].append(x) def add_missing(self, distribution, requirement): """ Add a missing *requirement* for the given *distribution*. :type distribution: :class:`distutils2.database.InstalledDistribution` or :class:`distutils2.database.EggInfoDistribution` :type requirement: ``str`` """ logger.debug('%s missing %r', distribution, requirement) self.missing.setdefault(distribution, []).append(requirement) def _repr_dist(self, dist): return '%s %s' % (dist.name, dist.version) def repr_node(self, dist, level=1): """Prints only a subgraph""" output = [self._repr_dist(dist)] for other, label in self.adjacency_list[dist]: dist = self._repr_dist(other) if label is not None: dist = '%s [%s]' % (dist, label) output.append(' ' * level + str(dist)) suboutput = self.repr_node(other, level + 1) subs = suboutput.split('\n') output.extend(subs[1:]) return '\n'.join(output) def to_dot(self, f, skip_disconnected=True): """Writes a DOT output for the graph to the provided file *f*. If *skip_disconnected* is set to ``True``, then all distributions that are not dependent on any other distribution are skipped. :type f: has to support ``file``-like operations :type skip_disconnected: ``bool`` """ disconnected = [] f.write("digraph dependencies {\n") for dist, adjs in self.adjacency_list.items(): if len(adjs) == 0 and not skip_disconnected: disconnected.append(dist) for other, label in adjs: if not label is None: f.write('"%s" -> "%s" [label="%s"]\n' % (dist.name, other.name, label)) else: f.write('"%s" -> "%s"\n' % (dist.name, other.name)) if not skip_disconnected and len(disconnected) > 0: f.write('subgraph disconnected {\n') f.write('label = "Disconnected"\n') f.write('bgcolor = red\n') for dist in disconnected: f.write('"%s"' % dist.name) f.write('\n') f.write('}\n') f.write('}\n') def topological_sort(self): """ Perform a topological sort of the graph. :return: A tuple, the first element of which is a topologically sorted list of distributions, and the second element of which is a list of distributions that cannot be sorted because they have circular dependencies and so form a cycle. """ result = [] # Make a shallow copy of the adjacency list alist = {} for k, v in self.adjacency_list.items(): alist[k] = v[:] while True: # See what we can remove in this run to_remove = [] for k, v in list(alist.items())[:]: if not v: to_remove.append(k) del alist[k] if not to_remove: # What's left in alist (if anything) is a cycle. break # Remove from the adjacency list of others for k, v in alist.items(): alist[k] = [(d, r) for d, r in v if d not in to_remove] logger.debug('Moving to result: %s', ['%s (%s)' % (d.name, d.version) for d in to_remove]) result.extend(to_remove) return result, list(alist.keys()) def __repr__(self): """Representation of the graph""" output = [] for dist, adjs in self.adjacency_list.items(): output.append(self.repr_node(dist)) return '\n'.join(output) def make_graph(dists, scheme='default'): """Makes a dependency graph from the given distributions. :parameter dists: a list of distributions :type dists: list of :class:`distutils2.database.InstalledDistribution` and :class:`distutils2.database.EggInfoDistribution` instances :rtype: a :class:`DependencyGraph` instance """ scheme = get_scheme(scheme) graph = DependencyGraph() provided = {} # maps names to lists of (version, dist) tuples # first, build the graph and find out what's provided for dist in dists: graph.add_distribution(dist) for p in dist.provides: name, version = parse_name_and_version(p) logger.debug('Add to provided: %s, %s, %s', name, version, dist) provided.setdefault(name, []).append((version, dist)) # now make the edges for dist in dists: requires = (dist.run_requires | dist.meta_requires | dist.build_requires | dist.dev_requires) for req in requires: try: matcher = scheme.matcher(req) except UnsupportedVersionError: # XXX compat-mode if cannot read the version logger.warning('could not read version %r - using name only', req) name = req.split()[0] matcher = scheme.matcher(name) name = matcher.key # case-insensitive matched = False if name in provided: for version, provider in provided[name]: try: match = matcher.match(version) except UnsupportedVersionError: match = False if match: graph.add_edge(dist, provider, req) matched = True break if not matched: graph.add_missing(dist, req) return graph def get_dependent_dists(dists, dist): """Recursively generate a list of distributions from *dists* that are dependent on *dist*. :param dists: a list of distributions :param dist: a distribution, member of *dists* for which we are interested """ if dist not in dists: raise DistlibException('given distribution %r is not a member ' 'of the list' % dist.name) graph = make_graph(dists) dep = [dist] # dependent distributions todo = graph.reverse_list[dist] # list of nodes we should inspect while todo: d = todo.pop() dep.append(d) for succ in graph.reverse_list[d]: if succ not in dep: todo.append(succ) dep.pop(0) # remove dist from dep, was there to prevent infinite loops return dep def get_required_dists(dists, dist): """Recursively generate a list of distributions from *dists* that are required by *dist*. :param dists: a list of distributions :param dist: a distribution, member of *dists* for which we are interested """ if dist not in dists: raise DistlibException('given distribution %r is not a member ' 'of the list' % dist.name) graph = make_graph(dists) req = [] # required distributions todo = graph.adjacency_list[dist] # list of nodes we should inspect while todo: d = todo.pop()[0] req.append(d) for pred in graph.adjacency_list[d]: if pred not in req: todo.append(pred) return req def make_dist(name, version, **kwargs): """ A convenience method for making a dist given just a name and version. """ summary = kwargs.pop('summary', 'Placeholder for summary') md = Metadata(**kwargs) md.name = name md.version = version md.summary = summary or 'Placeholder for summary' return Distribution(md) PKx"T2HQQ>__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/index.py# -*- coding: utf-8 -*- # # Copyright (C) 2013 Vinay Sajip. # Licensed to the Python Software Foundation under a contributor agreement. # See LICENSE.txt and CONTRIBUTORS.txt. # import hashlib import logging import os import shutil import subprocess import tempfile try: from threading import Thread except ImportError: from dummy_threading import Thread from . import DistlibException from .compat import (HTTPBasicAuthHandler, Request, HTTPPasswordMgr, urlparse, build_opener, string_types) from .util import zip_dir, ServerProxy logger = logging.getLogger(__name__) DEFAULT_INDEX = 'https://pypi.org/pypi' DEFAULT_REALM = 'pypi' class PackageIndex(object): """ This class represents a package index compatible with PyPI, the Python Package Index. """ boundary = b'----------ThIs_Is_tHe_distlib_index_bouNdaRY_$' def __init__(self, url=None): """ Initialise an instance. :param url: The URL of the index. If not specified, the URL for PyPI is used. """ self.url = url or DEFAULT_INDEX self.read_configuration() scheme, netloc, path, params, query, frag = urlparse(self.url) if params or query or frag or scheme not in ('http', 'https'): raise DistlibException('invalid repository: %s' % self.url) self.password_handler = None self.ssl_verifier = None self.gpg = None self.gpg_home = None with open(os.devnull, 'w') as sink: # Use gpg by default rather than gpg2, as gpg2 insists on # prompting for passwords for s in ('gpg', 'gpg2'): try: rc = subprocess.check_call([s, '--version'], stdout=sink, stderr=sink) if rc == 0: self.gpg = s break except OSError: pass def _get_pypirc_command(self): """ Get the distutils command for interacting with PyPI configurations. :return: the command. """ from .util import _get_pypirc_command as cmd return cmd() def read_configuration(self): """ Read the PyPI access configuration as supported by distutils. This populates ``username``, ``password``, ``realm`` and ``url`` attributes from the configuration. """ from .util import _load_pypirc cfg = _load_pypirc(self) self.username = cfg.get('username') self.password = cfg.get('password') self.realm = cfg.get('realm', 'pypi') self.url = cfg.get('repository', self.url) def save_configuration(self): """ Save the PyPI access configuration. You must have set ``username`` and ``password`` attributes before calling this method. """ self.check_credentials() from .util import _store_pypirc _store_pypirc(self) def check_credentials(self): """ Check that ``username`` and ``password`` have been set, and raise an exception if not. """ if self.username is None or self.password is None: raise DistlibException('username and password must be set') pm = HTTPPasswordMgr() _, netloc, _, _, _, _ = urlparse(self.url) pm.add_password(self.realm, netloc, self.username, self.password) self.password_handler = HTTPBasicAuthHandler(pm) def register(self, metadata): """ Register a distribution on PyPI, using the provided metadata. :param metadata: A :class:`Metadata` instance defining at least a name and version number for the distribution to be registered. :return: The HTTP response received from PyPI upon submission of the request. """ self.check_credentials() metadata.validate() d = metadata.todict() d[':action'] = 'verify' request = self.encode_request(d.items(), []) response = self.send_request(request) d[':action'] = 'submit' request = self.encode_request(d.items(), []) return self.send_request(request) def _reader(self, name, stream, outbuf): """ Thread runner for reading lines of from a subprocess into a buffer. :param name: The logical name of the stream (used for logging only). :param stream: The stream to read from. This will typically a pipe connected to the output stream of a subprocess. :param outbuf: The list to append the read lines to. """ while True: s = stream.readline() if not s: break s = s.decode('utf-8').rstrip() outbuf.append(s) logger.debug('%s: %s' % (name, s)) stream.close() def get_sign_command(self, filename, signer, sign_password, keystore=None): """ Return a suitable command for signing a file. :param filename: The pathname to the file to be signed. :param signer: The identifier of the signer of the file. :param sign_password: The passphrase for the signer's private key used for signing. :param keystore: The path to a directory which contains the keys used in verification. If not specified, the instance's ``gpg_home`` attribute is used instead. :return: The signing command as a list suitable to be passed to :class:`subprocess.Popen`. """ cmd = [self.gpg, '--status-fd', '2', '--no-tty'] if keystore is None: keystore = self.gpg_home if keystore: cmd.extend(['--homedir', keystore]) if sign_password is not None: cmd.extend(['--batch', '--passphrase-fd', '0']) td = tempfile.mkdtemp() sf = os.path.join(td, os.path.basename(filename) + '.asc') cmd.extend(['--detach-sign', '--armor', '--local-user', signer, '--output', sf, filename]) logger.debug('invoking: %s', ' '.join(cmd)) return cmd, sf def run_command(self, cmd, input_data=None): """ Run a command in a child process , passing it any input data specified. :param cmd: The command to run. :param input_data: If specified, this must be a byte string containing data to be sent to the child process. :return: A tuple consisting of the subprocess' exit code, a list of lines read from the subprocess' ``stdout``, and a list of lines read from the subprocess' ``stderr``. """ kwargs = { 'stdout': subprocess.PIPE, 'stderr': subprocess.PIPE, } if input_data is not None: kwargs['stdin'] = subprocess.PIPE stdout = [] stderr = [] p = subprocess.Popen(cmd, **kwargs) # We don't use communicate() here because we may need to # get clever with interacting with the command t1 = Thread(target=self._reader, args=('stdout', p.stdout, stdout)) t1.start() t2 = Thread(target=self._reader, args=('stderr', p.stderr, stderr)) t2.start() if input_data is not None: p.stdin.write(input_data) p.stdin.close() p.wait() t1.join() t2.join() return p.returncode, stdout, stderr def sign_file(self, filename, signer, sign_password, keystore=None): """ Sign a file. :param filename: The pathname to the file to be signed. :param signer: The identifier of the signer of the file. :param sign_password: The passphrase for the signer's private key used for signing. :param keystore: The path to a directory which contains the keys used in signing. If not specified, the instance's ``gpg_home`` attribute is used instead. :return: The absolute pathname of the file where the signature is stored. """ cmd, sig_file = self.get_sign_command(filename, signer, sign_password, keystore) rc, stdout, stderr = self.run_command(cmd, sign_password.encode('utf-8')) if rc != 0: raise DistlibException('sign command failed with error ' 'code %s' % rc) return sig_file def upload_file(self, metadata, filename, signer=None, sign_password=None, filetype='sdist', pyversion='source', keystore=None): """ Upload a release file to the index. :param metadata: A :class:`Metadata` instance defining at least a name and version number for the file to be uploaded. :param filename: The pathname of the file to be uploaded. :param signer: The identifier of the signer of the file. :param sign_password: The passphrase for the signer's private key used for signing. :param filetype: The type of the file being uploaded. This is the distutils command which produced that file, e.g. ``sdist`` or ``bdist_wheel``. :param pyversion: The version of Python which the release relates to. For code compatible with any Python, this would be ``source``, otherwise it would be e.g. ``3.2``. :param keystore: The path to a directory which contains the keys used in signing. If not specified, the instance's ``gpg_home`` attribute is used instead. :return: The HTTP response received from PyPI upon submission of the request. """ self.check_credentials() if not os.path.exists(filename): raise DistlibException('not found: %s' % filename) metadata.validate() d = metadata.todict() sig_file = None if signer: if not self.gpg: logger.warning('no signing program available - not signed') else: sig_file = self.sign_file(filename, signer, sign_password, keystore) with open(filename, 'rb') as f: file_data = f.read() md5_digest = hashlib.md5(file_data).hexdigest() sha256_digest = hashlib.sha256(file_data).hexdigest() d.update({ ':action': 'file_upload', 'protocol_version': '1', 'filetype': filetype, 'pyversion': pyversion, 'md5_digest': md5_digest, 'sha256_digest': sha256_digest, }) files = [('content', os.path.basename(filename), file_data)] if sig_file: with open(sig_file, 'rb') as f: sig_data = f.read() files.append(('gpg_signature', os.path.basename(sig_file), sig_data)) shutil.rmtree(os.path.dirname(sig_file)) request = self.encode_request(d.items(), files) return self.send_request(request) def upload_documentation(self, metadata, doc_dir): """ Upload documentation to the index. :param metadata: A :class:`Metadata` instance defining at least a name and version number for the documentation to be uploaded. :param doc_dir: The pathname of the directory which contains the documentation. This should be the directory that contains the ``index.html`` for the documentation. :return: The HTTP response received from PyPI upon submission of the request. """ self.check_credentials() if not os.path.isdir(doc_dir): raise DistlibException('not a directory: %r' % doc_dir) fn = os.path.join(doc_dir, 'index.html') if not os.path.exists(fn): raise DistlibException('not found: %r' % fn) metadata.validate() name, version = metadata.name, metadata.version zip_data = zip_dir(doc_dir).getvalue() fields = [(':action', 'doc_upload'), ('name', name), ('version', version)] files = [('content', name, zip_data)] request = self.encode_request(fields, files) return self.send_request(request) def get_verify_command(self, signature_filename, data_filename, keystore=None): """ Return a suitable command for verifying a file. :param signature_filename: The pathname to the file containing the signature. :param data_filename: The pathname to the file containing the signed data. :param keystore: The path to a directory which contains the keys used in verification. If not specified, the instance's ``gpg_home`` attribute is used instead. :return: The verifying command as a list suitable to be passed to :class:`subprocess.Popen`. """ cmd = [self.gpg, '--status-fd', '2', '--no-tty'] if keystore is None: keystore = self.gpg_home if keystore: cmd.extend(['--homedir', keystore]) cmd.extend(['--verify', signature_filename, data_filename]) logger.debug('invoking: %s', ' '.join(cmd)) return cmd def verify_signature(self, signature_filename, data_filename, keystore=None): """ Verify a signature for a file. :param signature_filename: The pathname to the file containing the signature. :param data_filename: The pathname to the file containing the signed data. :param keystore: The path to a directory which contains the keys used in verification. If not specified, the instance's ``gpg_home`` attribute is used instead. :return: True if the signature was verified, else False. """ if not self.gpg: raise DistlibException('verification unavailable because gpg ' 'unavailable') cmd = self.get_verify_command(signature_filename, data_filename, keystore) rc, stdout, stderr = self.run_command(cmd) if rc not in (0, 1): raise DistlibException('verify command failed with error ' 'code %s' % rc) return rc == 0 def download_file(self, url, destfile, digest=None, reporthook=None): """ This is a convenience method for downloading a file from an URL. Normally, this will be a file from the index, though currently no check is made for this (i.e. a file can be downloaded from anywhere). The method is just like the :func:`urlretrieve` function in the standard library, except that it allows digest computation to be done during download and checking that the downloaded data matched any expected value. :param url: The URL of the file to be downloaded (assumed to be available via an HTTP GET request). :param destfile: The pathname where the downloaded file is to be saved. :param digest: If specified, this must be a (hasher, value) tuple, where hasher is the algorithm used (e.g. ``'md5'``) and ``value`` is the expected value. :param reporthook: The same as for :func:`urlretrieve` in the standard library. """ if digest is None: digester = None logger.debug('No digest specified') else: if isinstance(digest, (list, tuple)): hasher, digest = digest else: hasher = 'md5' digester = getattr(hashlib, hasher)() logger.debug('Digest specified: %s' % digest) # The following code is equivalent to urlretrieve. # We need to do it this way so that we can compute the # digest of the file as we go. with open(destfile, 'wb') as dfp: # addinfourl is not a context manager on 2.x # so we have to use try/finally sfp = self.send_request(Request(url)) try: headers = sfp.info() blocksize = 8192 size = -1 read = 0 blocknum = 0 if "content-length" in headers: size = int(headers["Content-Length"]) if reporthook: reporthook(blocknum, blocksize, size) while True: block = sfp.read(blocksize) if not block: break read += len(block) dfp.write(block) if digester: digester.update(block) blocknum += 1 if reporthook: reporthook(blocknum, blocksize, size) finally: sfp.close() # check that we got the whole file, if we can if size >= 0 and read < size: raise DistlibException( 'retrieval incomplete: got only %d out of %d bytes' % (read, size)) # if we have a digest, it must match. if digester: actual = digester.hexdigest() if digest != actual: raise DistlibException('%s digest mismatch for %s: expected ' '%s, got %s' % (hasher, destfile, digest, actual)) logger.debug('Digest verified: %s', digest) def send_request(self, req): """ Send a standard library :class:`Request` to PyPI and return its response. :param req: The request to send. :return: The HTTP response from PyPI (a standard library HTTPResponse). """ handlers = [] if self.password_handler: handlers.append(self.password_handler) if self.ssl_verifier: handlers.append(self.ssl_verifier) opener = build_opener(*handlers) return opener.open(req) def encode_request(self, fields, files): """ Encode fields and files for posting to an HTTP server. :param fields: The fields to send as a list of (fieldname, value) tuples. :param files: The files to send as a list of (fieldname, filename, file_bytes) tuple. """ # Adapted from packaging, which in turn was adapted from # http://code.activestate.com/recipes/146306 parts = [] boundary = self.boundary for k, values in fields: if not isinstance(values, (list, tuple)): values = [values] for v in values: parts.extend(( b'--' + boundary, ('Content-Disposition: form-data; name="%s"' % k).encode('utf-8'), b'', v.encode('utf-8'))) for key, filename, value in files: parts.extend(( b'--' + boundary, ('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, filename)).encode('utf-8'), b'', value)) parts.extend((b'--' + boundary + b'--', b'')) body = b'\r\n'.join(parts) ct = b'multipart/form-data; boundary=' + boundary headers = { 'Content-type': ct, 'Content-length': str(len(body)) } return Request(self.url, body, headers) def search(self, terms, operator=None): if isinstance(terms, string_types): terms = {'name': terms} rpc_proxy = ServerProxy(self.url, timeout=3.0) try: return rpc_proxy.search(terms, operator or 'and') finally: rpc_proxy('close')() PKx"T)}A__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/locators.py# -*- coding: utf-8 -*- # # Copyright (C) 2012-2015 Vinay Sajip. # Licensed to the Python Software Foundation under a contributor agreement. # See LICENSE.txt and CONTRIBUTORS.txt. # import gzip from io import BytesIO import json import logging import os import posixpath import re try: import threading except ImportError: # pragma: no cover import dummy_threading as threading import zlib from . import DistlibException from .compat import (urljoin, urlparse, urlunparse, url2pathname, pathname2url, queue, quote, unescape, build_opener, HTTPRedirectHandler as BaseRedirectHandler, text_type, Request, HTTPError, URLError) from .database import Distribution, DistributionPath, make_dist from .metadata import Metadata, MetadataInvalidError from .util import (cached_property, ensure_slash, split_filename, get_project_data, parse_requirement, parse_name_and_version, ServerProxy, normalize_name) from .version import get_scheme, UnsupportedVersionError from .wheel import Wheel, is_compatible logger = logging.getLogger(__name__) HASHER_HASH = re.compile(r'^(\w+)=([a-f0-9]+)') CHARSET = re.compile(r';\s*charset\s*=\s*(.*)\s*$', re.I) HTML_CONTENT_TYPE = re.compile('text/html|application/x(ht)?ml') DEFAULT_INDEX = 'https://pypi.org/pypi' def get_all_distribution_names(url=None): """ Return all distribution names known by an index. :param url: The URL of the index. :return: A list of all known distribution names. """ if url is None: url = DEFAULT_INDEX client = ServerProxy(url, timeout=3.0) try: return client.list_packages() finally: client('close')() class RedirectHandler(BaseRedirectHandler): """ A class to work around a bug in some Python 3.2.x releases. """ # There's a bug in the base version for some 3.2.x # (e.g. 3.2.2 on Ubuntu Oneiric). If a Location header # returns e.g. /abc, it bails because it says the scheme '' # is bogus, when actually it should use the request's # URL for the scheme. See Python issue #13696. def http_error_302(self, req, fp, code, msg, headers): # Some servers (incorrectly) return multiple Location headers # (so probably same goes for URI). Use first header. newurl = None for key in ('location', 'uri'): if key in headers: newurl = headers[key] break if newurl is None: # pragma: no cover return urlparts = urlparse(newurl) if urlparts.scheme == '': newurl = urljoin(req.get_full_url(), newurl) if hasattr(headers, 'replace_header'): headers.replace_header(key, newurl) else: headers[key] = newurl return BaseRedirectHandler.http_error_302(self, req, fp, code, msg, headers) http_error_301 = http_error_303 = http_error_307 = http_error_302 class Locator(object): """ A base class for locators - things that locate distributions. """ source_extensions = ('.tar.gz', '.tar.bz2', '.tar', '.zip', '.tgz', '.tbz') binary_extensions = ('.egg', '.exe', '.whl') excluded_extensions = ('.pdf',) # A list of tags indicating which wheels you want to match. The default # value of None matches against the tags compatible with the running # Python. If you want to match other values, set wheel_tags on a locator # instance to a list of tuples (pyver, abi, arch) which you want to match. wheel_tags = None downloadable_extensions = source_extensions + ('.whl',) def __init__(self, scheme='default'): """ Initialise an instance. :param scheme: Because locators look for most recent versions, they need to know the version scheme to use. This specifies the current PEP-recommended scheme - use ``'legacy'`` if you need to support existing distributions on PyPI. """ self._cache = {} self.scheme = scheme # Because of bugs in some of the handlers on some of the platforms, # we use our own opener rather than just using urlopen. self.opener = build_opener(RedirectHandler()) # If get_project() is called from locate(), the matcher instance # is set from the requirement passed to locate(). See issue #18 for # why this can be useful to know. self.matcher = None self.errors = queue.Queue() def get_errors(self): """ Return any errors which have occurred. """ result = [] while not self.errors.empty(): # pragma: no cover try: e = self.errors.get(False) result.append(e) except self.errors.Empty: continue self.errors.task_done() return result def clear_errors(self): """ Clear any errors which may have been logged. """ # Just get the errors and throw them away self.get_errors() def clear_cache(self): self._cache.clear() def _get_scheme(self): return self._scheme def _set_scheme(self, value): self._scheme = value scheme = property(_get_scheme, _set_scheme) def _get_project(self, name): """ For a given project, get a dictionary mapping available versions to Distribution instances. This should be implemented in subclasses. If called from a locate() request, self.matcher will be set to a matcher for the requirement to satisfy, otherwise it will be None. """ raise NotImplementedError('Please implement in the subclass') def get_distribution_names(self): """ Return all the distribution names known to this locator. """ raise NotImplementedError('Please implement in the subclass') def get_project(self, name): """ For a given project, get a dictionary mapping available versions to Distribution instances. This calls _get_project to do all the work, and just implements a caching layer on top. """ if self._cache is None: # pragma: no cover result = self._get_project(name) elif name in self._cache: result = self._cache[name] else: self.clear_errors() result = self._get_project(name) self._cache[name] = result return result def score_url(self, url): """ Give an url a score which can be used to choose preferred URLs for a given project release. """ t = urlparse(url) basename = posixpath.basename(t.path) compatible = True is_wheel = basename.endswith('.whl') is_downloadable = basename.endswith(self.downloadable_extensions) if is_wheel: compatible = is_compatible(Wheel(basename), self.wheel_tags) return (t.scheme == 'https', 'pypi.org' in t.netloc, is_downloadable, is_wheel, compatible, basename) def prefer_url(self, url1, url2): """ Choose one of two URLs where both are candidates for distribution archives for the same version of a distribution (for example, .tar.gz vs. zip). The current implementation favours https:// URLs over http://, archives from PyPI over those from other locations, wheel compatibility (if a wheel) and then the archive name. """ result = url2 if url1: s1 = self.score_url(url1) s2 = self.score_url(url2) if s1 > s2: result = url1 if result != url2: logger.debug('Not replacing %r with %r', url1, url2) else: logger.debug('Replacing %r with %r', url1, url2) return result def split_filename(self, filename, project_name): """ Attempt to split a filename in project name, version and Python version. """ return split_filename(filename, project_name) def convert_url_to_download_info(self, url, project_name): """ See if a URL is a candidate for a download URL for a project (the URL has typically been scraped from an HTML page). If it is, a dictionary is returned with keys "name", "version", "filename" and "url"; otherwise, None is returned. """ def same_project(name1, name2): return normalize_name(name1) == normalize_name(name2) result = None scheme, netloc, path, params, query, frag = urlparse(url) if frag.lower().startswith('egg='): # pragma: no cover logger.debug('%s: version hint in fragment: %r', project_name, frag) m = HASHER_HASH.match(frag) if m: algo, digest = m.groups() else: algo, digest = None, None origpath = path if path and path[-1] == '/': # pragma: no cover path = path[:-1] if path.endswith('.whl'): try: wheel = Wheel(path) if not is_compatible(wheel, self.wheel_tags): logger.debug('Wheel not compatible: %s', path) else: if project_name is None: include = True else: include = same_project(wheel.name, project_name) if include: result = { 'name': wheel.name, 'version': wheel.version, 'filename': wheel.filename, 'url': urlunparse((scheme, netloc, origpath, params, query, '')), 'python-version': ', '.join( ['.'.join(list(v[2:])) for v in wheel.pyver]), } except Exception as e: # pragma: no cover logger.warning('invalid path for wheel: %s', path) elif not path.endswith(self.downloadable_extensions): # pragma: no cover logger.debug('Not downloadable: %s', path) else: # downloadable extension path = filename = posixpath.basename(path) for ext in self.downloadable_extensions: if path.endswith(ext): path = path[:-len(ext)] t = self.split_filename(path, project_name) if not t: # pragma: no cover logger.debug('No match for project/version: %s', path) else: name, version, pyver = t if not project_name or same_project(project_name, name): result = { 'name': name, 'version': version, 'filename': filename, 'url': urlunparse((scheme, netloc, origpath, params, query, '')), #'packagetype': 'sdist', } if pyver: # pragma: no cover result['python-version'] = pyver break if result and algo: result['%s_digest' % algo] = digest return result def _get_digest(self, info): """ Get a digest from a dictionary by looking at a "digests" dictionary or keys of the form 'algo_digest'. Returns a 2-tuple (algo, digest) if found, else None. Currently looks only for SHA256, then MD5. """ result = None if 'digests' in info: digests = info['digests'] for algo in ('sha256', 'md5'): if algo in digests: result = (algo, digests[algo]) break if not result: for algo in ('sha256', 'md5'): key = '%s_digest' % algo if key in info: result = (algo, info[key]) break return result def _update_version_data(self, result, info): """ Update a result dictionary (the final result from _get_project) with a dictionary for a specific version, which typically holds information gleaned from a filename or URL for an archive for the distribution. """ name = info.pop('name') version = info.pop('version') if version in result: dist = result[version] md = dist.metadata else: dist = make_dist(name, version, scheme=self.scheme) md = dist.metadata dist.digest = digest = self._get_digest(info) url = info['url'] result['digests'][url] = digest if md.source_url != info['url']: md.source_url = self.prefer_url(md.source_url, url) result['urls'].setdefault(version, set()).add(url) dist.locator = self result[version] = dist def locate(self, requirement, prereleases=False): """ Find the most recent distribution which matches the given requirement. :param requirement: A requirement of the form 'foo (1.0)' or perhaps 'foo (>= 1.0, < 2.0, != 1.3)' :param prereleases: If ``True``, allow pre-release versions to be located. Otherwise, pre-release versions are not returned. :return: A :class:`Distribution` instance, or ``None`` if no such distribution could be located. """ result = None r = parse_requirement(requirement) if r is None: # pragma: no cover raise DistlibException('Not a valid requirement: %r' % requirement) scheme = get_scheme(self.scheme) self.matcher = matcher = scheme.matcher(r.requirement) logger.debug('matcher: %s (%s)', matcher, type(matcher).__name__) versions = self.get_project(r.name) if len(versions) > 2: # urls and digests keys are present # sometimes, versions are invalid slist = [] vcls = matcher.version_class for k in versions: if k in ('urls', 'digests'): continue try: if not matcher.match(k): pass # logger.debug('%s did not match %r', matcher, k) else: if prereleases or not vcls(k).is_prerelease: slist.append(k) # else: # logger.debug('skipping pre-release ' # 'version %s of %s', k, matcher.name) except Exception: # pragma: no cover logger.warning('error matching %s with %r', matcher, k) pass # slist.append(k) if len(slist) > 1: slist = sorted(slist, key=scheme.key) if slist: logger.debug('sorted list: %s', slist) version = slist[-1] result = versions[version] if result: if r.extras: result.extras = r.extras result.download_urls = versions.get('urls', {}).get(version, set()) d = {} sd = versions.get('digests', {}) for url in result.download_urls: if url in sd: # pragma: no cover d[url] = sd[url] result.digests = d self.matcher = None return result class PyPIRPCLocator(Locator): """ This locator uses XML-RPC to locate distributions. It therefore cannot be used with simple mirrors (that only mirror file content). """ def __init__(self, url, **kwargs): """ Initialise an instance. :param url: The URL to use for XML-RPC. :param kwargs: Passed to the superclass constructor. """ super(PyPIRPCLocator, self).__init__(**kwargs) self.base_url = url self.client = ServerProxy(url, timeout=3.0) def get_distribution_names(self): """ Return all the distribution names known to this locator. """ return set(self.client.list_packages()) def _get_project(self, name): result = {'urls': {}, 'digests': {}} versions = self.client.package_releases(name, True) for v in versions: urls = self.client.release_urls(name, v) data = self.client.release_data(name, v) metadata = Metadata(scheme=self.scheme) metadata.name = data['name'] metadata.version = data['version'] metadata.license = data.get('license') metadata.keywords = data.get('keywords', []) metadata.summary = data.get('summary') dist = Distribution(metadata) if urls: info = urls[0] metadata.source_url = info['url'] dist.digest = self._get_digest(info) dist.locator = self result[v] = dist for info in urls: url = info['url'] digest = self._get_digest(info) result['urls'].setdefault(v, set()).add(url) result['digests'][url] = digest return result class PyPIJSONLocator(Locator): """ This locator uses PyPI's JSON interface. It's very limited in functionality and probably not worth using. """ def __init__(self, url, **kwargs): super(PyPIJSONLocator, self).__init__(**kwargs) self.base_url = ensure_slash(url) def get_distribution_names(self): """ Return all the distribution names known to this locator. """ raise NotImplementedError('Not available from this locator') def _get_project(self, name): result = {'urls': {}, 'digests': {}} url = urljoin(self.base_url, '%s/json' % quote(name)) try: resp = self.opener.open(url) data = resp.read().decode() # for now d = json.loads(data) md = Metadata(scheme=self.scheme) data = d['info'] md.name = data['name'] md.version = data['version'] md.license = data.get('license') md.keywords = data.get('keywords', []) md.summary = data.get('summary') dist = Distribution(md) dist.locator = self urls = d['urls'] result[md.version] = dist for info in d['urls']: url = info['url'] dist.download_urls.add(url) dist.digests[url] = self._get_digest(info) result['urls'].setdefault(md.version, set()).add(url) result['digests'][url] = self._get_digest(info) # Now get other releases for version, infos in d['releases'].items(): if version == md.version: continue # already done omd = Metadata(scheme=self.scheme) omd.name = md.name omd.version = version odist = Distribution(omd) odist.locator = self result[version] = odist for info in infos: url = info['url'] odist.download_urls.add(url) odist.digests[url] = self._get_digest(info) result['urls'].setdefault(version, set()).add(url) result['digests'][url] = self._get_digest(info) # for info in urls: # md.source_url = info['url'] # dist.digest = self._get_digest(info) # dist.locator = self # for info in urls: # url = info['url'] # result['urls'].setdefault(md.version, set()).add(url) # result['digests'][url] = self._get_digest(info) except Exception as e: self.errors.put(text_type(e)) logger.exception('JSON fetch failed: %s', e) return result class Page(object): """ This class represents a scraped HTML page. """ # The following slightly hairy-looking regex just looks for the contents of # an anchor link, which has an attribute "href" either immediately preceded # or immediately followed by a "rel" attribute. The attribute values can be # declared with double quotes, single quotes or no quotes - which leads to # the length of the expression. _href = re.compile(""" (rel\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*))\\s+)? href\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*)) (\\s+rel\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*)))? """, re.I | re.S | re.X) _base = re.compile(r"""]+)""", re.I | re.S) def __init__(self, data, url): """ Initialise an instance with the Unicode page contents and the URL they came from. """ self.data = data self.base_url = self.url = url m = self._base.search(self.data) if m: self.base_url = m.group(1) _clean_re = re.compile(r'[^a-z0-9$&+,/:;=?@.#%_\\|-]', re.I) @cached_property def links(self): """ Return the URLs of all the links on a page together with information about their "rel" attribute, for determining which ones to treat as downloads and which ones to queue for further scraping. """ def clean(url): "Tidy up an URL." scheme, netloc, path, params, query, frag = urlparse(url) return urlunparse((scheme, netloc, quote(path), params, query, frag)) result = set() for match in self._href.finditer(self.data): d = match.groupdict('') rel = (d['rel1'] or d['rel2'] or d['rel3'] or d['rel4'] or d['rel5'] or d['rel6']) url = d['url1'] or d['url2'] or d['url3'] url = urljoin(self.base_url, url) url = unescape(url) url = self._clean_re.sub(lambda m: '%%%2x' % ord(m.group(0)), url) result.add((url, rel)) # We sort the result, hoping to bring the most recent versions # to the front result = sorted(result, key=lambda t: t[0], reverse=True) return result class SimpleScrapingLocator(Locator): """ A locator which scrapes HTML pages to locate downloads for a distribution. This runs multiple threads to do the I/O; performance is at least as good as pip's PackageFinder, which works in an analogous fashion. """ # These are used to deal with various Content-Encoding schemes. decoders = { 'deflate': zlib.decompress, 'gzip': lambda b: gzip.GzipFile(fileobj=BytesIO(b)).read(), 'none': lambda b: b, } def __init__(self, url, timeout=None, num_workers=10, **kwargs): """ Initialise an instance. :param url: The root URL to use for scraping. :param timeout: The timeout, in seconds, to be applied to requests. This defaults to ``None`` (no timeout specified). :param num_workers: The number of worker threads you want to do I/O, This defaults to 10. :param kwargs: Passed to the superclass. """ super(SimpleScrapingLocator, self).__init__(**kwargs) self.base_url = ensure_slash(url) self.timeout = timeout self._page_cache = {} self._seen = set() self._to_fetch = queue.Queue() self._bad_hosts = set() self.skip_externals = False self.num_workers = num_workers self._lock = threading.RLock() # See issue #45: we need to be resilient when the locator is used # in a thread, e.g. with concurrent.futures. We can't use self._lock # as it is for coordinating our internal threads - the ones created # in _prepare_threads. self._gplock = threading.RLock() self.platform_check = False # See issue #112 def _prepare_threads(self): """ Threads are created only when get_project is called, and terminate before it returns. They are there primarily to parallelise I/O (i.e. fetching web pages). """ self._threads = [] for i in range(self.num_workers): t = threading.Thread(target=self._fetch) t.daemon = True t.start() self._threads.append(t) def _wait_threads(self): """ Tell all the threads to terminate (by sending a sentinel value) and wait for them to do so. """ # Note that you need two loops, since you can't say which # thread will get each sentinel for t in self._threads: self._to_fetch.put(None) # sentinel for t in self._threads: t.join() self._threads = [] def _get_project(self, name): result = {'urls': {}, 'digests': {}} with self._gplock: self.result = result self.project_name = name url = urljoin(self.base_url, '%s/' % quote(name)) self._seen.clear() self._page_cache.clear() self._prepare_threads() try: logger.debug('Queueing %s', url) self._to_fetch.put(url) self._to_fetch.join() finally: self._wait_threads() del self.result return result platform_dependent = re.compile(r'\b(linux_(i\d86|x86_64|arm\w+)|' r'win(32|_amd64)|macosx_?\d+)\b', re.I) def _is_platform_dependent(self, url): """ Does an URL refer to a platform-specific download? """ return self.platform_dependent.search(url) def _process_download(self, url): """ See if an URL is a suitable download for a project. If it is, register information in the result dictionary (for _get_project) about the specific version it's for. Note that the return value isn't actually used other than as a boolean value. """ if self.platform_check and self._is_platform_dependent(url): info = None else: info = self.convert_url_to_download_info(url, self.project_name) logger.debug('process_download: %s -> %s', url, info) if info: with self._lock: # needed because self.result is shared self._update_version_data(self.result, info) return info def _should_queue(self, link, referrer, rel): """ Determine whether a link URL from a referring page and with a particular "rel" attribute should be queued for scraping. """ scheme, netloc, path, _, _, _ = urlparse(link) if path.endswith(self.source_extensions + self.binary_extensions + self.excluded_extensions): result = False elif self.skip_externals and not link.startswith(self.base_url): result = False elif not referrer.startswith(self.base_url): result = False elif rel not in ('homepage', 'download'): result = False elif scheme not in ('http', 'https', 'ftp'): result = False elif self._is_platform_dependent(link): result = False else: host = netloc.split(':', 1)[0] if host.lower() == 'localhost': result = False else: result = True logger.debug('should_queue: %s (%s) from %s -> %s', link, rel, referrer, result) return result def _fetch(self): """ Get a URL to fetch from the work queue, get the HTML page, examine its links for download candidates and candidates for further scraping. This is a handy method to run in a thread. """ while True: url = self._to_fetch.get() try: if url: page = self.get_page(url) if page is None: # e.g. after an error continue for link, rel in page.links: if link not in self._seen: try: self._seen.add(link) if (not self._process_download(link) and self._should_queue(link, url, rel)): logger.debug('Queueing %s from %s', link, url) self._to_fetch.put(link) except MetadataInvalidError: # e.g. invalid versions pass except Exception as e: # pragma: no cover self.errors.put(text_type(e)) finally: # always do this, to avoid hangs :-) self._to_fetch.task_done() if not url: #logger.debug('Sentinel seen, quitting.') break def get_page(self, url): """ Get the HTML for an URL, possibly from an in-memory cache. XXX TODO Note: this cache is never actually cleared. It's assumed that the data won't get stale over the lifetime of a locator instance (not necessarily true for the default_locator). """ # http://peak.telecommunity.com/DevCenter/EasyInstall#package-index-api scheme, netloc, path, _, _, _ = urlparse(url) if scheme == 'file' and os.path.isdir(url2pathname(path)): url = urljoin(ensure_slash(url), 'index.html') if url in self._page_cache: result = self._page_cache[url] logger.debug('Returning %s from cache: %s', url, result) else: host = netloc.split(':', 1)[0] result = None if host in self._bad_hosts: logger.debug('Skipping %s due to bad host %s', url, host) else: req = Request(url, headers={'Accept-encoding': 'identity'}) try: logger.debug('Fetching %s', url) resp = self.opener.open(req, timeout=self.timeout) logger.debug('Fetched %s', url) headers = resp.info() content_type = headers.get('Content-Type', '') if HTML_CONTENT_TYPE.match(content_type): final_url = resp.geturl() data = resp.read() encoding = headers.get('Content-Encoding') if encoding: decoder = self.decoders[encoding] # fail if not found data = decoder(data) encoding = 'utf-8' m = CHARSET.search(content_type) if m: encoding = m.group(1) try: data = data.decode(encoding) except UnicodeError: # pragma: no cover data = data.decode('latin-1') # fallback result = Page(data, final_url) self._page_cache[final_url] = result except HTTPError as e: if e.code != 404: logger.exception('Fetch failed: %s: %s', url, e) except URLError as e: # pragma: no cover logger.exception('Fetch failed: %s: %s', url, e) with self._lock: self._bad_hosts.add(host) except Exception as e: # pragma: no cover logger.exception('Fetch failed: %s: %s', url, e) finally: self._page_cache[url] = result # even if None (failure) return result _distname_re = re.compile(']*>([^<]+)<') def get_distribution_names(self): """ Return all the distribution names known to this locator. """ result = set() page = self.get_page(self.base_url) if not page: raise DistlibException('Unable to get %s' % self.base_url) for match in self._distname_re.finditer(page.data): result.add(match.group(1)) return result class DirectoryLocator(Locator): """ This class locates distributions in a directory tree. """ def __init__(self, path, **kwargs): """ Initialise an instance. :param path: The root of the directory tree to search. :param kwargs: Passed to the superclass constructor, except for: * recursive - if True (the default), subdirectories are recursed into. If False, only the top-level directory is searched, """ self.recursive = kwargs.pop('recursive', True) super(DirectoryLocator, self).__init__(**kwargs) path = os.path.abspath(path) if not os.path.isdir(path): # pragma: no cover raise DistlibException('Not a directory: %r' % path) self.base_dir = path def should_include(self, filename, parent): """ Should a filename be considered as a candidate for a distribution archive? As well as the filename, the directory which contains it is provided, though not used by the current implementation. """ return filename.endswith(self.downloadable_extensions) def _get_project(self, name): result = {'urls': {}, 'digests': {}} for root, dirs, files in os.walk(self.base_dir): for fn in files: if self.should_include(fn, root): fn = os.path.join(root, fn) url = urlunparse(('file', '', pathname2url(os.path.abspath(fn)), '', '', '')) info = self.convert_url_to_download_info(url, name) if info: self._update_version_data(result, info) if not self.recursive: break return result def get_distribution_names(self): """ Return all the distribution names known to this locator. """ result = set() for root, dirs, files in os.walk(self.base_dir): for fn in files: if self.should_include(fn, root): fn = os.path.join(root, fn) url = urlunparse(('file', '', pathname2url(os.path.abspath(fn)), '', '', '')) info = self.convert_url_to_download_info(url, None) if info: result.add(info['name']) if not self.recursive: break return result class JSONLocator(Locator): """ This locator uses special extended metadata (not available on PyPI) and is the basis of performant dependency resolution in distlib. Other locators require archive downloads before dependencies can be determined! As you might imagine, that can be slow. """ def get_distribution_names(self): """ Return all the distribution names known to this locator. """ raise NotImplementedError('Not available from this locator') def _get_project(self, name): result = {'urls': {}, 'digests': {}} data = get_project_data(name) if data: for info in data.get('files', []): if info['ptype'] != 'sdist' or info['pyversion'] != 'source': continue # We don't store summary in project metadata as it makes # the data bigger for no benefit during dependency # resolution dist = make_dist(data['name'], info['version'], summary=data.get('summary', 'Placeholder for summary'), scheme=self.scheme) md = dist.metadata md.source_url = info['url'] # TODO SHA256 digest if 'digest' in info and info['digest']: dist.digest = ('md5', info['digest']) md.dependencies = info.get('requirements', {}) dist.exports = info.get('exports', {}) result[dist.version] = dist result['urls'].setdefault(dist.version, set()).add(info['url']) return result class DistPathLocator(Locator): """ This locator finds installed distributions in a path. It can be useful for adding to an :class:`AggregatingLocator`. """ def __init__(self, distpath, **kwargs): """ Initialise an instance. :param distpath: A :class:`DistributionPath` instance to search. """ super(DistPathLocator, self).__init__(**kwargs) assert isinstance(distpath, DistributionPath) self.distpath = distpath def _get_project(self, name): dist = self.distpath.get_distribution(name) if dist is None: result = {'urls': {}, 'digests': {}} else: result = { dist.version: dist, 'urls': {dist.version: set([dist.source_url])}, 'digests': {dist.version: set([None])} } return result class AggregatingLocator(Locator): """ This class allows you to chain and/or merge a list of locators. """ def __init__(self, *locators, **kwargs): """ Initialise an instance. :param locators: The list of locators to search. :param kwargs: Passed to the superclass constructor, except for: * merge - if False (the default), the first successful search from any of the locators is returned. If True, the results from all locators are merged (this can be slow). """ self.merge = kwargs.pop('merge', False) self.locators = locators super(AggregatingLocator, self).__init__(**kwargs) def clear_cache(self): super(AggregatingLocator, self).clear_cache() for locator in self.locators: locator.clear_cache() def _set_scheme(self, value): self._scheme = value for locator in self.locators: locator.scheme = value scheme = property(Locator.scheme.fget, _set_scheme) def _get_project(self, name): result = {} for locator in self.locators: d = locator.get_project(name) if d: if self.merge: files = result.get('urls', {}) digests = result.get('digests', {}) # next line could overwrite result['urls'], result['digests'] result.update(d) df = result.get('urls') if files and df: for k, v in files.items(): if k in df: df[k] |= v else: df[k] = v dd = result.get('digests') if digests and dd: dd.update(digests) else: # See issue #18. If any dists are found and we're looking # for specific constraints, we only return something if # a match is found. For example, if a DirectoryLocator # returns just foo (1.0) while we're looking for # foo (>= 2.0), we'll pretend there was nothing there so # that subsequent locators can be queried. Otherwise we # would just return foo (1.0) which would then lead to a # failure to find foo (>= 2.0), because other locators # weren't searched. Note that this only matters when # merge=False. if self.matcher is None: found = True else: found = False for k in d: if self.matcher.match(k): found = True break if found: result = d break return result def get_distribution_names(self): """ Return all the distribution names known to this locator. """ result = set() for locator in self.locators: try: result |= locator.get_distribution_names() except NotImplementedError: pass return result # We use a legacy scheme simply because most of the dists on PyPI use legacy # versions which don't conform to PEP 426 / PEP 440. default_locator = AggregatingLocator( JSONLocator(), SimpleScrapingLocator('https://pypi.org/simple/', timeout=3.0), scheme='legacy') locate = default_locator.locate class DependencyFinder(object): """ Locate dependencies for distributions. """ def __init__(self, locator=None): """ Initialise an instance, using the specified locator to locate distributions. """ self.locator = locator or default_locator self.scheme = get_scheme(self.locator.scheme) def add_distribution(self, dist): """ Add a distribution to the finder. This will update internal information about who provides what. :param dist: The distribution to add. """ logger.debug('adding distribution %s', dist) name = dist.key self.dists_by_name[name] = dist self.dists[(name, dist.version)] = dist for p in dist.provides: name, version = parse_name_and_version(p) logger.debug('Add to provided: %s, %s, %s', name, version, dist) self.provided.setdefault(name, set()).add((version, dist)) def remove_distribution(self, dist): """ Remove a distribution from the finder. This will update internal information about who provides what. :param dist: The distribution to remove. """ logger.debug('removing distribution %s', dist) name = dist.key del self.dists_by_name[name] del self.dists[(name, dist.version)] for p in dist.provides: name, version = parse_name_and_version(p) logger.debug('Remove from provided: %s, %s, %s', name, version, dist) s = self.provided[name] s.remove((version, dist)) if not s: del self.provided[name] def get_matcher(self, reqt): """ Get a version matcher for a requirement. :param reqt: The requirement :type reqt: str :return: A version matcher (an instance of :class:`distlib.version.Matcher`). """ try: matcher = self.scheme.matcher(reqt) except UnsupportedVersionError: # pragma: no cover # XXX compat-mode if cannot read the version name = reqt.split()[0] matcher = self.scheme.matcher(name) return matcher def find_providers(self, reqt): """ Find the distributions which can fulfill a requirement. :param reqt: The requirement. :type reqt: str :return: A set of distribution which can fulfill the requirement. """ matcher = self.get_matcher(reqt) name = matcher.key # case-insensitive result = set() provided = self.provided if name in provided: for version, provider in provided[name]: try: match = matcher.match(version) except UnsupportedVersionError: match = False if match: result.add(provider) break return result def try_to_replace(self, provider, other, problems): """ Attempt to replace one provider with another. This is typically used when resolving dependencies from multiple sources, e.g. A requires (B >= 1.0) while C requires (B >= 1.1). For successful replacement, ``provider`` must meet all the requirements which ``other`` fulfills. :param provider: The provider we are trying to replace with. :param other: The provider we're trying to replace. :param problems: If False is returned, this will contain what problems prevented replacement. This is currently a tuple of the literal string 'cantreplace', ``provider``, ``other`` and the set of requirements that ``provider`` couldn't fulfill. :return: True if we can replace ``other`` with ``provider``, else False. """ rlist = self.reqts[other] unmatched = set() for s in rlist: matcher = self.get_matcher(s) if not matcher.match(provider.version): unmatched.add(s) if unmatched: # can't replace other with provider problems.add(('cantreplace', provider, other, frozenset(unmatched))) result = False else: # can replace other with provider self.remove_distribution(other) del self.reqts[other] for s in rlist: self.reqts.setdefault(provider, set()).add(s) self.add_distribution(provider) result = True return result def find(self, requirement, meta_extras=None, prereleases=False): """ Find a distribution and all distributions it depends on. :param requirement: The requirement specifying the distribution to find, or a Distribution instance. :param meta_extras: A list of meta extras such as :test:, :build: and so on. :param prereleases: If ``True``, allow pre-release versions to be returned - otherwise, don't return prereleases unless they're all that's available. Return a set of :class:`Distribution` instances and a set of problems. The distributions returned should be such that they have the :attr:`required` attribute set to ``True`` if they were from the ``requirement`` passed to ``find()``, and they have the :attr:`build_time_dependency` attribute set to ``True`` unless they are post-installation dependencies of the ``requirement``. The problems should be a tuple consisting of the string ``'unsatisfied'`` and the requirement which couldn't be satisfied by any distribution known to the locator. """ self.provided = {} self.dists = {} self.dists_by_name = {} self.reqts = {} meta_extras = set(meta_extras or []) if ':*:' in meta_extras: meta_extras.remove(':*:') # :meta: and :run: are implicitly included meta_extras |= set([':test:', ':build:', ':dev:']) if isinstance(requirement, Distribution): dist = odist = requirement logger.debug('passed %s as requirement', odist) else: dist = odist = self.locator.locate(requirement, prereleases=prereleases) if dist is None: raise DistlibException('Unable to locate %r' % requirement) logger.debug('located %s', odist) dist.requested = True problems = set() todo = set([dist]) install_dists = set([odist]) while todo: dist = todo.pop() name = dist.key # case-insensitive if name not in self.dists_by_name: self.add_distribution(dist) else: #import pdb; pdb.set_trace() other = self.dists_by_name[name] if other != dist: self.try_to_replace(dist, other, problems) ireqts = dist.run_requires | dist.meta_requires sreqts = dist.build_requires ereqts = set() if meta_extras and dist in install_dists: for key in ('test', 'build', 'dev'): e = ':%s:' % key if e in meta_extras: ereqts |= getattr(dist, '%s_requires' % key) all_reqts = ireqts | sreqts | ereqts for r in all_reqts: providers = self.find_providers(r) if not providers: logger.debug('No providers found for %r', r) provider = self.locator.locate(r, prereleases=prereleases) # If no provider is found and we didn't consider # prereleases, consider them now. if provider is None and not prereleases: provider = self.locator.locate(r, prereleases=True) if provider is None: logger.debug('Cannot satisfy %r', r) problems.add(('unsatisfied', r)) else: n, v = provider.key, provider.version if (n, v) not in self.dists: todo.add(provider) providers.add(provider) if r in ireqts and dist in install_dists: install_dists.add(provider) logger.debug('Adding %s to install_dists', provider.name_and_version) for p in providers: name = p.key if name not in self.dists_by_name: self.reqts.setdefault(p, set()).add(r) else: other = self.dists_by_name[name] if other != p: # see if other can be replaced by p self.try_to_replace(p, other, problems) dists = set(self.dists.values()) for dist in dists: dist.build_time_dependency = dist not in install_dists if dist.build_time_dependency: logger.debug('%s is a build-time dependency only.', dist.name_and_version) logger.debug('find done for %s', odist) return dists, problems PKx"Tx5g99A__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/manifest.py# -*- coding: utf-8 -*- # # Copyright (C) 2012-2013 Python Software Foundation. # See LICENSE.txt and CONTRIBUTORS.txt. # """ Class representing the list of files in a distribution. Equivalent to distutils.filelist, but fixes some problems. """ import fnmatch import logging import os import re import sys from . import DistlibException from .compat import fsdecode from .util import convert_path __all__ = ['Manifest'] logger = logging.getLogger(__name__) # a \ followed by some spaces + EOL _COLLAPSE_PATTERN = re.compile('\\\\w*\n', re.M) _COMMENTED_LINE = re.compile('#.*?(?=\n)|\n(?=$)', re.M | re.S) # # Due to the different results returned by fnmatch.translate, we need # to do slightly different processing for Python 2.7 and 3.2 ... this needed # to be brought in for Python 3.6 onwards. # _PYTHON_VERSION = sys.version_info[:2] class Manifest(object): """A list of files built by on exploring the filesystem and filtered by applying various patterns to what we find there. """ def __init__(self, base=None): """ Initialise an instance. :param base: The base directory to explore under. """ self.base = os.path.abspath(os.path.normpath(base or os.getcwd())) self.prefix = self.base + os.sep self.allfiles = None self.files = set() # # Public API # def findall(self): """Find all files under the base and set ``allfiles`` to the absolute pathnames of files found. """ from stat import S_ISREG, S_ISDIR, S_ISLNK self.allfiles = allfiles = [] root = self.base stack = [root] pop = stack.pop push = stack.append while stack: root = pop() names = os.listdir(root) for name in names: fullname = os.path.join(root, name) # Avoid excess stat calls -- just one will do, thank you! stat = os.stat(fullname) mode = stat.st_mode if S_ISREG(mode): allfiles.append(fsdecode(fullname)) elif S_ISDIR(mode) and not S_ISLNK(mode): push(fullname) def add(self, item): """ Add a file to the manifest. :param item: The pathname to add. This can be relative to the base. """ if not item.startswith(self.prefix): item = os.path.join(self.base, item) self.files.add(os.path.normpath(item)) def add_many(self, items): """ Add a list of files to the manifest. :param items: The pathnames to add. These can be relative to the base. """ for item in items: self.add(item) def sorted(self, wantdirs=False): """ Return sorted files in directory order """ def add_dir(dirs, d): dirs.add(d) logger.debug('add_dir added %s', d) if d != self.base: parent, _ = os.path.split(d) assert parent not in ('', '/') add_dir(dirs, parent) result = set(self.files) # make a copy! if wantdirs: dirs = set() for f in result: add_dir(dirs, os.path.dirname(f)) result |= dirs return [os.path.join(*path_tuple) for path_tuple in sorted(os.path.split(path) for path in result)] def clear(self): """Clear all collected files.""" self.files = set() self.allfiles = [] def process_directive(self, directive): """ Process a directive which either adds some files from ``allfiles`` to ``files``, or removes some files from ``files``. :param directive: The directive to process. This should be in a format compatible with distutils ``MANIFEST.in`` files: http://docs.python.org/distutils/sourcedist.html#commands """ # Parse the line: split it up, make sure the right number of words # is there, and return the relevant words. 'action' is always # defined: it's the first word of the line. Which of the other # three are defined depends on the action; it'll be either # patterns, (dir and patterns), or (dirpattern). action, patterns, thedir, dirpattern = self._parse_directive(directive) # OK, now we know that the action is valid and we have the # right number of words on the line for that action -- so we # can proceed with minimal error-checking. if action == 'include': for pattern in patterns: if not self._include_pattern(pattern, anchor=True): logger.warning('no files found matching %r', pattern) elif action == 'exclude': for pattern in patterns: found = self._exclude_pattern(pattern, anchor=True) #if not found: # logger.warning('no previously-included files ' # 'found matching %r', pattern) elif action == 'global-include': for pattern in patterns: if not self._include_pattern(pattern, anchor=False): logger.warning('no files found matching %r ' 'anywhere in distribution', pattern) elif action == 'global-exclude': for pattern in patterns: found = self._exclude_pattern(pattern, anchor=False) #if not found: # logger.warning('no previously-included files ' # 'matching %r found anywhere in ' # 'distribution', pattern) elif action == 'recursive-include': for pattern in patterns: if not self._include_pattern(pattern, prefix=thedir): logger.warning('no files found matching %r ' 'under directory %r', pattern, thedir) elif action == 'recursive-exclude': for pattern in patterns: found = self._exclude_pattern(pattern, prefix=thedir) #if not found: # logger.warning('no previously-included files ' # 'matching %r found under directory %r', # pattern, thedir) elif action == 'graft': if not self._include_pattern(None, prefix=dirpattern): logger.warning('no directories found matching %r', dirpattern) elif action == 'prune': if not self._exclude_pattern(None, prefix=dirpattern): logger.warning('no previously-included directories found ' 'matching %r', dirpattern) else: # pragma: no cover # This should never happen, as it should be caught in # _parse_template_line raise DistlibException( 'invalid action %r' % action) # # Private API # def _parse_directive(self, directive): """ Validate a directive. :param directive: The directive to validate. :return: A tuple of action, patterns, thedir, dir_patterns """ words = directive.split() if len(words) == 1 and words[0] not in ('include', 'exclude', 'global-include', 'global-exclude', 'recursive-include', 'recursive-exclude', 'graft', 'prune'): # no action given, let's use the default 'include' words.insert(0, 'include') action = words[0] patterns = thedir = dir_pattern = None if action in ('include', 'exclude', 'global-include', 'global-exclude'): if len(words) < 2: raise DistlibException( '%r expects ...' % action) patterns = [convert_path(word) for word in words[1:]] elif action in ('recursive-include', 'recursive-exclude'): if len(words) < 3: raise DistlibException( '%r expects

...' % action) thedir = convert_path(words[1]) patterns = [convert_path(word) for word in words[2:]] elif action in ('graft', 'prune'): if len(words) != 2: raise DistlibException( '%r expects a single ' % action) dir_pattern = convert_path(words[1]) else: raise DistlibException('unknown action %r' % action) return action, patterns, thedir, dir_pattern def _include_pattern(self, pattern, anchor=True, prefix=None, is_regex=False): """Select strings (presumably filenames) from 'self.files' that match 'pattern', a Unix-style wildcard (glob) pattern. Patterns are not quite the same as implemented by the 'fnmatch' module: '*' and '?' match non-special characters, where "special" is platform-dependent: slash on Unix; colon, slash, and backslash on DOS/Windows; and colon on Mac OS. If 'anchor' is true (the default), then the pattern match is more stringent: "*.py" will match "foo.py" but not "foo/bar.py". If 'anchor' is false, both of these will match. If 'prefix' is supplied, then only filenames starting with 'prefix' (itself a pattern) and ending with 'pattern', with anything in between them, will match. 'anchor' is ignored in this case. If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and 'pattern' is assumed to be either a string containing a regex or a regex object -- no translation is done, the regex is just compiled and used as-is. Selected strings will be added to self.files. Return True if files are found. """ # XXX docstring lying about what the special chars are? found = False pattern_re = self._translate_pattern(pattern, anchor, prefix, is_regex) # delayed loading of allfiles list if self.allfiles is None: self.findall() for name in self.allfiles: if pattern_re.search(name): self.files.add(name) found = True return found def _exclude_pattern(self, pattern, anchor=True, prefix=None, is_regex=False): """Remove strings (presumably filenames) from 'files' that match 'pattern'. Other parameters are the same as for 'include_pattern()', above. The list 'self.files' is modified in place. Return True if files are found. This API is public to allow e.g. exclusion of SCM subdirs, e.g. when packaging source distributions """ found = False pattern_re = self._translate_pattern(pattern, anchor, prefix, is_regex) for f in list(self.files): if pattern_re.search(f): self.files.remove(f) found = True return found def _translate_pattern(self, pattern, anchor=True, prefix=None, is_regex=False): """Translate a shell-like wildcard pattern to a compiled regular expression. Return the compiled regex. If 'is_regex' true, then 'pattern' is directly compiled to a regex (if it's a string) or just returned as-is (assumes it's a regex object). """ if is_regex: if isinstance(pattern, str): return re.compile(pattern) else: return pattern if _PYTHON_VERSION > (3, 2): # ditch start and end characters start, _, end = self._glob_to_re('_').partition('_') if pattern: pattern_re = self._glob_to_re(pattern) if _PYTHON_VERSION > (3, 2): assert pattern_re.startswith(start) and pattern_re.endswith(end) else: pattern_re = '' base = re.escape(os.path.join(self.base, '')) if prefix is not None: # ditch end of pattern character if _PYTHON_VERSION <= (3, 2): empty_pattern = self._glob_to_re('') prefix_re = self._glob_to_re(prefix)[:-len(empty_pattern)] else: prefix_re = self._glob_to_re(prefix) assert prefix_re.startswith(start) and prefix_re.endswith(end) prefix_re = prefix_re[len(start): len(prefix_re) - len(end)] sep = os.sep if os.sep == '\\': sep = r'\\' if _PYTHON_VERSION <= (3, 2): pattern_re = '^' + base + sep.join((prefix_re, '.*' + pattern_re)) else: pattern_re = pattern_re[len(start): len(pattern_re) - len(end)] pattern_re = r'%s%s%s%s.*%s%s' % (start, base, prefix_re, sep, pattern_re, end) else: # no prefix -- respect anchor flag if anchor: if _PYTHON_VERSION <= (3, 2): pattern_re = '^' + base + pattern_re else: pattern_re = r'%s%s%s' % (start, base, pattern_re[len(start):]) return re.compile(pattern_re) def _glob_to_re(self, pattern): """Translate a shell-like glob pattern to a regular expression. Return a string containing the regex. Differs from 'fnmatch.translate()' in that '*' does not match "special characters" (which are platform-specific). """ pattern_re = fnmatch.translate(pattern) # '?' and '*' in the glob pattern become '.' and '.*' in the RE, which # IMHO is wrong -- '?' and '*' aren't supposed to match slash in Unix, # and by extension they shouldn't match such "special characters" under # any OS. So change all non-escaped dots in the RE to match any # character except the special characters (currently: just os.sep). sep = os.sep if os.sep == '\\': # we're using a regex to manipulate a regex, so we need # to escape the backslash twice sep = r'\\\\' escaped = r'\1[^%s]' % sep pattern_re = re.sub(r'((? y, '!=': lambda x, y: x != y, '<': lambda x, y: x < y, '<=': lambda x, y: x == y or x < y, '>': lambda x, y: x > y, '>=': lambda x, y: x == y or x > y, 'and': lambda x, y: x and y, 'or': lambda x, y: x or y, 'in': lambda x, y: x in y, 'not in': lambda x, y: x not in y, } def evaluate(self, expr, context): """ Evaluate a marker expression returned by the :func:`parse_requirement` function in the specified context. """ if isinstance(expr, string_types): if expr[0] in '\'"': result = expr[1:-1] else: if expr not in context: raise SyntaxError('unknown variable: %s' % expr) result = context[expr] else: assert isinstance(expr, dict) op = expr['op'] if op not in self.operations: raise NotImplementedError('op not implemented: %s' % op) elhs = expr['lhs'] erhs = expr['rhs'] if _is_literal(expr['lhs']) and _is_literal(expr['rhs']): raise SyntaxError('invalid comparison: %s %s %s' % (elhs, op, erhs)) lhs = self.evaluate(elhs, context) rhs = self.evaluate(erhs, context) if ((elhs == 'python_version' or erhs == 'python_version') and op in ('<', '<=', '>', '>=', '===', '==', '!=', '~=')): lhs = NV(lhs) rhs = NV(rhs) elif elhs == 'python_version' and op in ('in', 'not in'): lhs = NV(lhs) rhs = _get_versions(rhs) result = self.operations[op](lhs, rhs) return result _DIGITS = re.compile(r'\d+\.\d+') def default_context(): def format_full_version(info): version = '%s.%s.%s' % (info.major, info.minor, info.micro) kind = info.releaselevel if kind != 'final': version += kind[0] + str(info.serial) return version if hasattr(sys, 'implementation'): implementation_version = format_full_version(sys.implementation.version) implementation_name = sys.implementation.name else: implementation_version = '0' implementation_name = '' ppv = platform.python_version() m = _DIGITS.match(ppv) pv = m.group(0) result = { 'implementation_name': implementation_name, 'implementation_version': implementation_version, 'os_name': os.name, 'platform_machine': platform.machine(), 'platform_python_implementation': platform.python_implementation(), 'platform_release': platform.release(), 'platform_system': platform.system(), 'platform_version': platform.version(), 'platform_in_venv': str(in_venv()), 'python_full_version': ppv, 'python_version': pv, 'sys_platform': sys.platform, } return result DEFAULT_CONTEXT = default_context() del default_context evaluator = Evaluator() def interpret(marker, execution_context=None): """ Interpret a marker and return a result depending on environment. :param marker: The marker to interpret. :type marker: str :param execution_context: The context used for name lookup. :type execution_context: mapping """ try: expr, rest = parse_marker(marker) except Exception as e: raise SyntaxError('Unable to interpret marker syntax: %s: %s' % (marker, e)) if rest and rest[0] != '#': raise SyntaxError('unexpected trailing data in marker: %s: %s' % (marker, rest)) context = dict(DEFAULT_CONTEXT) if execution_context: context.update(execution_context) return evaluator.evaluate(expr, context) PKx"T=XŘŘA__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/metadata.py# -*- coding: utf-8 -*- # # Copyright (C) 2012 The Python Software Foundation. # See LICENSE.txt and CONTRIBUTORS.txt. # """Implementation of the Metadata for Python packages PEPs. Supports all metadata formats (1.0, 1.1, 1.2, 1.3/2.1 and withdrawn 2.0). """ from __future__ import unicode_literals import codecs from email import message_from_file import json import logging import re from . import DistlibException, __version__ from .compat import StringIO, string_types, text_type from .markers import interpret from .util import extract_by_key, get_extras from .version import get_scheme, PEP440_VERSION_RE logger = logging.getLogger(__name__) class MetadataMissingError(DistlibException): """A required metadata is missing""" class MetadataConflictError(DistlibException): """Attempt to read or write metadata fields that are conflictual.""" class MetadataUnrecognizedVersionError(DistlibException): """Unknown metadata version number.""" class MetadataInvalidError(DistlibException): """A metadata value is invalid""" # public API of this module __all__ = ['Metadata', 'PKG_INFO_ENCODING', 'PKG_INFO_PREFERRED_VERSION'] # Encoding used for the PKG-INFO files PKG_INFO_ENCODING = 'utf-8' # preferred version. Hopefully will be changed # to 1.2 once PEP 345 is supported everywhere PKG_INFO_PREFERRED_VERSION = '1.1' _LINE_PREFIX_1_2 = re.compile('\n \\|') _LINE_PREFIX_PRE_1_2 = re.compile('\n ') _241_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', 'Summary', 'Description', 'Keywords', 'Home-page', 'Author', 'Author-email', 'License') _314_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', 'Supported-Platform', 'Summary', 'Description', 'Keywords', 'Home-page', 'Author', 'Author-email', 'License', 'Classifier', 'Download-URL', 'Obsoletes', 'Provides', 'Requires') _314_MARKERS = ('Obsoletes', 'Provides', 'Requires', 'Classifier', 'Download-URL') _345_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', 'Supported-Platform', 'Summary', 'Description', 'Keywords', 'Home-page', 'Author', 'Author-email', 'Maintainer', 'Maintainer-email', 'License', 'Classifier', 'Download-URL', 'Obsoletes-Dist', 'Project-URL', 'Provides-Dist', 'Requires-Dist', 'Requires-Python', 'Requires-External') _345_MARKERS = ('Provides-Dist', 'Requires-Dist', 'Requires-Python', 'Obsoletes-Dist', 'Requires-External', 'Maintainer', 'Maintainer-email', 'Project-URL') _426_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', 'Supported-Platform', 'Summary', 'Description', 'Keywords', 'Home-page', 'Author', 'Author-email', 'Maintainer', 'Maintainer-email', 'License', 'Classifier', 'Download-URL', 'Obsoletes-Dist', 'Project-URL', 'Provides-Dist', 'Requires-Dist', 'Requires-Python', 'Requires-External', 'Private-Version', 'Obsoleted-By', 'Setup-Requires-Dist', 'Extension', 'Provides-Extra') _426_MARKERS = ('Private-Version', 'Provides-Extra', 'Obsoleted-By', 'Setup-Requires-Dist', 'Extension') # See issue #106: Sometimes 'Requires' and 'Provides' occur wrongly in # the metadata. Include them in the tuple literal below to allow them # (for now). # Ditto for Obsoletes - see issue #140. _566_FIELDS = _426_FIELDS + ('Description-Content-Type', 'Requires', 'Provides', 'Obsoletes') _566_MARKERS = ('Description-Content-Type',) _ALL_FIELDS = set() _ALL_FIELDS.update(_241_FIELDS) _ALL_FIELDS.update(_314_FIELDS) _ALL_FIELDS.update(_345_FIELDS) _ALL_FIELDS.update(_426_FIELDS) _ALL_FIELDS.update(_566_FIELDS) EXTRA_RE = re.compile(r'''extra\s*==\s*("([^"]+)"|'([^']+)')''') def _version2fieldlist(version): if version == '1.0': return _241_FIELDS elif version == '1.1': return _314_FIELDS elif version == '1.2': return _345_FIELDS elif version in ('1.3', '2.1'): # avoid adding field names if already there return _345_FIELDS + tuple(f for f in _566_FIELDS if f not in _345_FIELDS) elif version == '2.0': return _426_FIELDS raise MetadataUnrecognizedVersionError(version) def _best_version(fields): """Detect the best version depending on the fields used.""" def _has_marker(keys, markers): for marker in markers: if marker in keys: return True return False keys = [] for key, value in fields.items(): if value in ([], 'UNKNOWN', None): continue keys.append(key) possible_versions = ['1.0', '1.1', '1.2', '1.3', '2.0', '2.1'] # first let's try to see if a field is not part of one of the version for key in keys: if key not in _241_FIELDS and '1.0' in possible_versions: possible_versions.remove('1.0') logger.debug('Removed 1.0 due to %s', key) if key not in _314_FIELDS and '1.1' in possible_versions: possible_versions.remove('1.1') logger.debug('Removed 1.1 due to %s', key) if key not in _345_FIELDS and '1.2' in possible_versions: possible_versions.remove('1.2') logger.debug('Removed 1.2 due to %s', key) if key not in _566_FIELDS and '1.3' in possible_versions: possible_versions.remove('1.3') logger.debug('Removed 1.3 due to %s', key) if key not in _566_FIELDS and '2.1' in possible_versions: if key != 'Description': # In 2.1, description allowed after headers possible_versions.remove('2.1') logger.debug('Removed 2.1 due to %s', key) if key not in _426_FIELDS and '2.0' in possible_versions: possible_versions.remove('2.0') logger.debug('Removed 2.0 due to %s', key) # possible_version contains qualified versions if len(possible_versions) == 1: return possible_versions[0] # found ! elif len(possible_versions) == 0: logger.debug('Out of options - unknown metadata set: %s', fields) raise MetadataConflictError('Unknown metadata set') # let's see if one unique marker is found is_1_1 = '1.1' in possible_versions and _has_marker(keys, _314_MARKERS) is_1_2 = '1.2' in possible_versions and _has_marker(keys, _345_MARKERS) is_2_1 = '2.1' in possible_versions and _has_marker(keys, _566_MARKERS) is_2_0 = '2.0' in possible_versions and _has_marker(keys, _426_MARKERS) if int(is_1_1) + int(is_1_2) + int(is_2_1) + int(is_2_0) > 1: raise MetadataConflictError('You used incompatible 1.1/1.2/2.0/2.1 fields') # we have the choice, 1.0, or 1.2, or 2.0 # - 1.0 has a broken Summary field but works with all tools # - 1.1 is to avoid # - 1.2 fixes Summary but has little adoption # - 2.0 adds more features and is very new if not is_1_1 and not is_1_2 and not is_2_1 and not is_2_0: # we couldn't find any specific marker if PKG_INFO_PREFERRED_VERSION in possible_versions: return PKG_INFO_PREFERRED_VERSION if is_1_1: return '1.1' if is_1_2: return '1.2' if is_2_1: return '2.1' return '2.0' # This follows the rules about transforming keys as described in # https://www.python.org/dev/peps/pep-0566/#id17 _ATTR2FIELD = { name.lower().replace("-", "_"): name for name in _ALL_FIELDS } _FIELD2ATTR = {field: attr for attr, field in _ATTR2FIELD.items()} _PREDICATE_FIELDS = ('Requires-Dist', 'Obsoletes-Dist', 'Provides-Dist') _VERSIONS_FIELDS = ('Requires-Python',) _VERSION_FIELDS = ('Version',) _LISTFIELDS = ('Platform', 'Classifier', 'Obsoletes', 'Requires', 'Provides', 'Obsoletes-Dist', 'Provides-Dist', 'Requires-Dist', 'Requires-External', 'Project-URL', 'Supported-Platform', 'Setup-Requires-Dist', 'Provides-Extra', 'Extension') _LISTTUPLEFIELDS = ('Project-URL',) _ELEMENTSFIELD = ('Keywords',) _UNICODEFIELDS = ('Author', 'Maintainer', 'Summary', 'Description') _MISSING = object() _FILESAFE = re.compile('[^A-Za-z0-9.]+') def _get_name_and_version(name, version, for_filename=False): """Return the distribution name with version. If for_filename is true, return a filename-escaped form.""" if for_filename: # For both name and version any runs of non-alphanumeric or '.' # characters are replaced with a single '-'. Additionally any # spaces in the version string become '.' name = _FILESAFE.sub('-', name) version = _FILESAFE.sub('-', version.replace(' ', '.')) return '%s-%s' % (name, version) class LegacyMetadata(object): """The legacy metadata of a release. Supports versions 1.0, 1.1, 1.2, 2.0 and 1.3/2.1 (auto-detected). You can instantiate the class with one of these arguments (or none): - *path*, the path to a metadata file - *fileobj* give a file-like object with metadata as content - *mapping* is a dict-like object - *scheme* is a version scheme name """ # TODO document the mapping API and UNKNOWN default key def __init__(self, path=None, fileobj=None, mapping=None, scheme='default'): if [path, fileobj, mapping].count(None) < 2: raise TypeError('path, fileobj and mapping are exclusive') self._fields = {} self.requires_files = [] self._dependencies = None self.scheme = scheme if path is not None: self.read(path) elif fileobj is not None: self.read_file(fileobj) elif mapping is not None: self.update(mapping) self.set_metadata_version() def set_metadata_version(self): self._fields['Metadata-Version'] = _best_version(self._fields) def _write_field(self, fileobj, name, value): fileobj.write('%s: %s\n' % (name, value)) def __getitem__(self, name): return self.get(name) def __setitem__(self, name, value): return self.set(name, value) def __delitem__(self, name): field_name = self._convert_name(name) try: del self._fields[field_name] except KeyError: raise KeyError(name) def __contains__(self, name): return (name in self._fields or self._convert_name(name) in self._fields) def _convert_name(self, name): if name in _ALL_FIELDS: return name name = name.replace('-', '_').lower() return _ATTR2FIELD.get(name, name) def _default_value(self, name): if name in _LISTFIELDS or name in _ELEMENTSFIELD: return [] return 'UNKNOWN' def _remove_line_prefix(self, value): if self.metadata_version in ('1.0', '1.1'): return _LINE_PREFIX_PRE_1_2.sub('\n', value) else: return _LINE_PREFIX_1_2.sub('\n', value) def __getattr__(self, name): if name in _ATTR2FIELD: return self[name] raise AttributeError(name) # # Public API # # dependencies = property(_get_dependencies, _set_dependencies) def get_fullname(self, filesafe=False): """Return the distribution name with version. If filesafe is true, return a filename-escaped form.""" return _get_name_and_version(self['Name'], self['Version'], filesafe) def is_field(self, name): """return True if name is a valid metadata key""" name = self._convert_name(name) return name in _ALL_FIELDS def is_multi_field(self, name): name = self._convert_name(name) return name in _LISTFIELDS def read(self, filepath): """Read the metadata values from a file path.""" fp = codecs.open(filepath, 'r', encoding='utf-8') try: self.read_file(fp) finally: fp.close() def read_file(self, fileob): """Read the metadata values from a file object.""" msg = message_from_file(fileob) self._fields['Metadata-Version'] = msg['metadata-version'] # When reading, get all the fields we can for field in _ALL_FIELDS: if field not in msg: continue if field in _LISTFIELDS: # we can have multiple lines values = msg.get_all(field) if field in _LISTTUPLEFIELDS and values is not None: values = [tuple(value.split(',')) for value in values] self.set(field, values) else: # single line value = msg[field] if value is not None and value != 'UNKNOWN': self.set(field, value) # PEP 566 specifies that the body be used for the description, if # available body = msg.get_payload() self["Description"] = body if body else self["Description"] # logger.debug('Attempting to set metadata for %s', self) # self.set_metadata_version() def write(self, filepath, skip_unknown=False): """Write the metadata fields to filepath.""" fp = codecs.open(filepath, 'w', encoding='utf-8') try: self.write_file(fp, skip_unknown) finally: fp.close() def write_file(self, fileobject, skip_unknown=False): """Write the PKG-INFO format data to a file object.""" self.set_metadata_version() for field in _version2fieldlist(self['Metadata-Version']): values = self.get(field) if skip_unknown and values in ('UNKNOWN', [], ['UNKNOWN']): continue if field in _ELEMENTSFIELD: self._write_field(fileobject, field, ','.join(values)) continue if field not in _LISTFIELDS: if field == 'Description': if self.metadata_version in ('1.0', '1.1'): values = values.replace('\n', '\n ') else: values = values.replace('\n', '\n |') values = [values] if field in _LISTTUPLEFIELDS: values = [','.join(value) for value in values] for value in values: self._write_field(fileobject, field, value) def update(self, other=None, **kwargs): """Set metadata values from the given iterable `other` and kwargs. Behavior is like `dict.update`: If `other` has a ``keys`` method, they are looped over and ``self[key]`` is assigned ``other[key]``. Else, ``other`` is an iterable of ``(key, value)`` iterables. Keys that don't match a metadata field or that have an empty value are dropped. """ def _set(key, value): if key in _ATTR2FIELD and value: self.set(self._convert_name(key), value) if not other: # other is None or empty container pass elif hasattr(other, 'keys'): for k in other.keys(): _set(k, other[k]) else: for k, v in other: _set(k, v) if kwargs: for k, v in kwargs.items(): _set(k, v) def set(self, name, value): """Control then set a metadata field.""" name = self._convert_name(name) if ((name in _ELEMENTSFIELD or name == 'Platform') and not isinstance(value, (list, tuple))): if isinstance(value, string_types): value = [v.strip() for v in value.split(',')] else: value = [] elif (name in _LISTFIELDS and not isinstance(value, (list, tuple))): if isinstance(value, string_types): value = [value] else: value = [] if logger.isEnabledFor(logging.WARNING): project_name = self['Name'] scheme = get_scheme(self.scheme) if name in _PREDICATE_FIELDS and value is not None: for v in value: # check that the values are valid if not scheme.is_valid_matcher(v.split(';')[0]): logger.warning( "'%s': '%s' is not valid (field '%s')", project_name, v, name) # FIXME this rejects UNKNOWN, is that right? elif name in _VERSIONS_FIELDS and value is not None: if not scheme.is_valid_constraint_list(value): logger.warning("'%s': '%s' is not a valid version (field '%s')", project_name, value, name) elif name in _VERSION_FIELDS and value is not None: if not scheme.is_valid_version(value): logger.warning("'%s': '%s' is not a valid version (field '%s')", project_name, value, name) if name in _UNICODEFIELDS: if name == 'Description': value = self._remove_line_prefix(value) self._fields[name] = value def get(self, name, default=_MISSING): """Get a metadata field.""" name = self._convert_name(name) if name not in self._fields: if default is _MISSING: default = self._default_value(name) return default if name in _UNICODEFIELDS: value = self._fields[name] return value elif name in _LISTFIELDS: value = self._fields[name] if value is None: return [] res = [] for val in value: if name not in _LISTTUPLEFIELDS: res.append(val) else: # That's for Project-URL res.append((val[0], val[1])) return res elif name in _ELEMENTSFIELD: value = self._fields[name] if isinstance(value, string_types): return value.split(',') return self._fields[name] def check(self, strict=False): """Check if the metadata is compliant. If strict is True then raise if no Name or Version are provided""" self.set_metadata_version() # XXX should check the versions (if the file was loaded) missing, warnings = [], [] for attr in ('Name', 'Version'): # required by PEP 345 if attr not in self: missing.append(attr) if strict and missing != []: msg = 'missing required metadata: %s' % ', '.join(missing) raise MetadataMissingError(msg) for attr in ('Home-page', 'Author'): if attr not in self: missing.append(attr) # checking metadata 1.2 (XXX needs to check 1.1, 1.0) if self['Metadata-Version'] != '1.2': return missing, warnings scheme = get_scheme(self.scheme) def are_valid_constraints(value): for v in value: if not scheme.is_valid_matcher(v.split(';')[0]): return False return True for fields, controller in ((_PREDICATE_FIELDS, are_valid_constraints), (_VERSIONS_FIELDS, scheme.is_valid_constraint_list), (_VERSION_FIELDS, scheme.is_valid_version)): for field in fields: value = self.get(field, None) if value is not None and not controller(value): warnings.append("Wrong value for '%s': %s" % (field, value)) return missing, warnings def todict(self, skip_missing=False): """Return fields as a dict. Field names will be converted to use the underscore-lowercase style instead of hyphen-mixed case (i.e. home_page instead of Home-page). This is as per https://www.python.org/dev/peps/pep-0566/#id17. """ self.set_metadata_version() fields = _version2fieldlist(self['Metadata-Version']) data = {} for field_name in fields: if not skip_missing or field_name in self._fields: key = _FIELD2ATTR[field_name] if key != 'project_url': data[key] = self[field_name] else: data[key] = [','.join(u) for u in self[field_name]] return data def add_requirements(self, requirements): if self['Metadata-Version'] == '1.1': # we can't have 1.1 metadata *and* Setuptools requires for field in ('Obsoletes', 'Requires', 'Provides'): if field in self: del self[field] self['Requires-Dist'] += requirements # Mapping API # TODO could add iter* variants def keys(self): return list(_version2fieldlist(self['Metadata-Version'])) def __iter__(self): for key in self.keys(): yield key def values(self): return [self[key] for key in self.keys()] def items(self): return [(key, self[key]) for key in self.keys()] def __repr__(self): return '<%s %s %s>' % (self.__class__.__name__, self.name, self.version) METADATA_FILENAME = 'pydist.json' WHEEL_METADATA_FILENAME = 'metadata.json' LEGACY_METADATA_FILENAME = 'METADATA' class Metadata(object): """ The metadata of a release. This implementation uses 2.0 (JSON) metadata where possible. If not possible, it wraps a LegacyMetadata instance which handles the key-value metadata format. """ METADATA_VERSION_MATCHER = re.compile(r'^\d+(\.\d+)*$') NAME_MATCHER = re.compile('^[0-9A-Z]([0-9A-Z_.-]*[0-9A-Z])?$', re.I) VERSION_MATCHER = PEP440_VERSION_RE SUMMARY_MATCHER = re.compile('.{1,2047}') METADATA_VERSION = '2.0' GENERATOR = 'distlib (%s)' % __version__ MANDATORY_KEYS = { 'name': (), 'version': (), 'summary': ('legacy',), } INDEX_KEYS = ('name version license summary description author ' 'author_email keywords platform home_page classifiers ' 'download_url') DEPENDENCY_KEYS = ('extras run_requires test_requires build_requires ' 'dev_requires provides meta_requires obsoleted_by ' 'supports_environments') SYNTAX_VALIDATORS = { 'metadata_version': (METADATA_VERSION_MATCHER, ()), 'name': (NAME_MATCHER, ('legacy',)), 'version': (VERSION_MATCHER, ('legacy',)), 'summary': (SUMMARY_MATCHER, ('legacy',)), } __slots__ = ('_legacy', '_data', 'scheme') def __init__(self, path=None, fileobj=None, mapping=None, scheme='default'): if [path, fileobj, mapping].count(None) < 2: raise TypeError('path, fileobj and mapping are exclusive') self._legacy = None self._data = None self.scheme = scheme #import pdb; pdb.set_trace() if mapping is not None: try: self._validate_mapping(mapping, scheme) self._data = mapping except MetadataUnrecognizedVersionError: self._legacy = LegacyMetadata(mapping=mapping, scheme=scheme) self.validate() else: data = None if path: with open(path, 'rb') as f: data = f.read() elif fileobj: data = fileobj.read() if data is None: # Initialised with no args - to be added self._data = { 'metadata_version': self.METADATA_VERSION, 'generator': self.GENERATOR, } else: if not isinstance(data, text_type): data = data.decode('utf-8') try: self._data = json.loads(data) self._validate_mapping(self._data, scheme) except ValueError: # Note: MetadataUnrecognizedVersionError does not # inherit from ValueError (it's a DistlibException, # which should not inherit from ValueError). # The ValueError comes from the json.load - if that # succeeds and we get a validation error, we want # that to propagate self._legacy = LegacyMetadata(fileobj=StringIO(data), scheme=scheme) self.validate() common_keys = set(('name', 'version', 'license', 'keywords', 'summary')) none_list = (None, list) none_dict = (None, dict) mapped_keys = { 'run_requires': ('Requires-Dist', list), 'build_requires': ('Setup-Requires-Dist', list), 'dev_requires': none_list, 'test_requires': none_list, 'meta_requires': none_list, 'extras': ('Provides-Extra', list), 'modules': none_list, 'namespaces': none_list, 'exports': none_dict, 'commands': none_dict, 'classifiers': ('Classifier', list), 'source_url': ('Download-URL', None), 'metadata_version': ('Metadata-Version', None), } del none_list, none_dict def __getattribute__(self, key): common = object.__getattribute__(self, 'common_keys') mapped = object.__getattribute__(self, 'mapped_keys') if key in mapped: lk, maker = mapped[key] if self._legacy: if lk is None: result = None if maker is None else maker() else: result = self._legacy.get(lk) else: value = None if maker is None else maker() if key not in ('commands', 'exports', 'modules', 'namespaces', 'classifiers'): result = self._data.get(key, value) else: # special cases for PEP 459 sentinel = object() result = sentinel d = self._data.get('extensions') if d: if key == 'commands': result = d.get('python.commands', value) elif key == 'classifiers': d = d.get('python.details') if d: result = d.get(key, value) else: d = d.get('python.exports') if not d: d = self._data.get('python.exports') if d: result = d.get(key, value) if result is sentinel: result = value elif key not in common: result = object.__getattribute__(self, key) elif self._legacy: result = self._legacy.get(key) else: result = self._data.get(key) return result def _validate_value(self, key, value, scheme=None): if key in self.SYNTAX_VALIDATORS: pattern, exclusions = self.SYNTAX_VALIDATORS[key] if (scheme or self.scheme) not in exclusions: m = pattern.match(value) if not m: raise MetadataInvalidError("'%s' is an invalid value for " "the '%s' property" % (value, key)) def __setattr__(self, key, value): self._validate_value(key, value) common = object.__getattribute__(self, 'common_keys') mapped = object.__getattribute__(self, 'mapped_keys') if key in mapped: lk, _ = mapped[key] if self._legacy: if lk is None: raise NotImplementedError self._legacy[lk] = value elif key not in ('commands', 'exports', 'modules', 'namespaces', 'classifiers'): self._data[key] = value else: # special cases for PEP 459 d = self._data.setdefault('extensions', {}) if key == 'commands': d['python.commands'] = value elif key == 'classifiers': d = d.setdefault('python.details', {}) d[key] = value else: d = d.setdefault('python.exports', {}) d[key] = value elif key not in common: object.__setattr__(self, key, value) else: if key == 'keywords': if isinstance(value, string_types): value = value.strip() if value: value = value.split() else: value = [] if self._legacy: self._legacy[key] = value else: self._data[key] = value @property def name_and_version(self): return _get_name_and_version(self.name, self.version, True) @property def provides(self): if self._legacy: result = self._legacy['Provides-Dist'] else: result = self._data.setdefault('provides', []) s = '%s (%s)' % (self.name, self.version) if s not in result: result.append(s) return result @provides.setter def provides(self, value): if self._legacy: self._legacy['Provides-Dist'] = value else: self._data['provides'] = value def get_requirements(self, reqts, extras=None, env=None): """ Base method to get dependencies, given a set of extras to satisfy and an optional environment context. :param reqts: A list of sometimes-wanted dependencies, perhaps dependent on extras and environment. :param extras: A list of optional components being requested. :param env: An optional environment for marker evaluation. """ if self._legacy: result = reqts else: result = [] extras = get_extras(extras or [], self.extras) for d in reqts: if 'extra' not in d and 'environment' not in d: # unconditional include = True else: if 'extra' not in d: # Not extra-dependent - only environment-dependent include = True else: include = d.get('extra') in extras if include: # Not excluded because of extras, check environment marker = d.get('environment') if marker: include = interpret(marker, env) if include: result.extend(d['requires']) for key in ('build', 'dev', 'test'): e = ':%s:' % key if e in extras: extras.remove(e) # A recursive call, but it should terminate since 'test' # has been removed from the extras reqts = self._data.get('%s_requires' % key, []) result.extend(self.get_requirements(reqts, extras=extras, env=env)) return result @property def dictionary(self): if self._legacy: return self._from_legacy() return self._data @property def dependencies(self): if self._legacy: raise NotImplementedError else: return extract_by_key(self._data, self.DEPENDENCY_KEYS) @dependencies.setter def dependencies(self, value): if self._legacy: raise NotImplementedError else: self._data.update(value) def _validate_mapping(self, mapping, scheme): if mapping.get('metadata_version') != self.METADATA_VERSION: raise MetadataUnrecognizedVersionError() missing = [] for key, exclusions in self.MANDATORY_KEYS.items(): if key not in mapping: if scheme not in exclusions: missing.append(key) if missing: msg = 'Missing metadata items: %s' % ', '.join(missing) raise MetadataMissingError(msg) for k, v in mapping.items(): self._validate_value(k, v, scheme) def validate(self): if self._legacy: missing, warnings = self._legacy.check(True) if missing or warnings: logger.warning('Metadata: missing: %s, warnings: %s', missing, warnings) else: self._validate_mapping(self._data, self.scheme) def todict(self): if self._legacy: return self._legacy.todict(True) else: result = extract_by_key(self._data, self.INDEX_KEYS) return result def _from_legacy(self): assert self._legacy and not self._data result = { 'metadata_version': self.METADATA_VERSION, 'generator': self.GENERATOR, } lmd = self._legacy.todict(True) # skip missing ones for k in ('name', 'version', 'license', 'summary', 'description', 'classifier'): if k in lmd: if k == 'classifier': nk = 'classifiers' else: nk = k result[nk] = lmd[k] kw = lmd.get('Keywords', []) if kw == ['']: kw = [] result['keywords'] = kw keys = (('requires_dist', 'run_requires'), ('setup_requires_dist', 'build_requires')) for ok, nk in keys: if ok in lmd and lmd[ok]: result[nk] = [{'requires': lmd[ok]}] result['provides'] = self.provides author = {} maintainer = {} return result LEGACY_MAPPING = { 'name': 'Name', 'version': 'Version', ('extensions', 'python.details', 'license'): 'License', 'summary': 'Summary', 'description': 'Description', ('extensions', 'python.project', 'project_urls', 'Home'): 'Home-page', ('extensions', 'python.project', 'contacts', 0, 'name'): 'Author', ('extensions', 'python.project', 'contacts', 0, 'email'): 'Author-email', 'source_url': 'Download-URL', ('extensions', 'python.details', 'classifiers'): 'Classifier', } def _to_legacy(self): def process_entries(entries): reqts = set() for e in entries: extra = e.get('extra') env = e.get('environment') rlist = e['requires'] for r in rlist: if not env and not extra: reqts.add(r) else: marker = '' if extra: marker = 'extra == "%s"' % extra if env: if marker: marker = '(%s) and %s' % (env, marker) else: marker = env reqts.add(';'.join((r, marker))) return reqts assert self._data and not self._legacy result = LegacyMetadata() nmd = self._data # import pdb; pdb.set_trace() for nk, ok in self.LEGACY_MAPPING.items(): if not isinstance(nk, tuple): if nk in nmd: result[ok] = nmd[nk] else: d = nmd found = True for k in nk: try: d = d[k] except (KeyError, IndexError): found = False break if found: result[ok] = d r1 = process_entries(self.run_requires + self.meta_requires) r2 = process_entries(self.build_requires + self.dev_requires) if self.extras: result['Provides-Extra'] = sorted(self.extras) result['Requires-Dist'] = sorted(r1) result['Setup-Requires-Dist'] = sorted(r2) # TODO: any other fields wanted return result def write(self, path=None, fileobj=None, legacy=False, skip_unknown=True): if [path, fileobj].count(None) != 1: raise ValueError('Exactly one of path and fileobj is needed') self.validate() if legacy: if self._legacy: legacy_md = self._legacy else: legacy_md = self._to_legacy() if path: legacy_md.write(path, skip_unknown=skip_unknown) else: legacy_md.write_file(fileobj, skip_unknown=skip_unknown) else: if self._legacy: d = self._from_legacy() else: d = self._data if fileobj: json.dump(d, fileobj, ensure_ascii=True, indent=2, sort_keys=True) else: with codecs.open(path, 'w', 'utf-8') as f: json.dump(d, f, ensure_ascii=True, indent=2, sort_keys=True) def add_requirements(self, requirements): if self._legacy: self._legacy.add_requirements(requirements) else: run_requires = self._data.setdefault('run_requires', []) always = None for entry in run_requires: if 'environment' not in entry and 'extra' not in entry: always = entry break if always is None: always = { 'requires': requirements } run_requires.insert(0, always) else: rset = set(always['requires']) | set(requirements) always['requires'] = sorted(rset) def __repr__(self): name = self.name or '(no name)' version = self.version or 'no version' return '<%s %s %s (%s)>' % (self.__class__.__name__, self.metadata_version, name, version) PKx"TՀD*D*B__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/resources.py# -*- coding: utf-8 -*- # # Copyright (C) 2013-2017 Vinay Sajip. # Licensed to the Python Software Foundation under a contributor agreement. # See LICENSE.txt and CONTRIBUTORS.txt. # from __future__ import unicode_literals import bisect import io import logging import os import pkgutil import sys import types import zipimport from . import DistlibException from .util import cached_property, get_cache_base, Cache logger = logging.getLogger(__name__) cache = None # created when needed class ResourceCache(Cache): def __init__(self, base=None): if base is None: # Use native string to avoid issues on 2.x: see Python #20140. base = os.path.join(get_cache_base(), str('resource-cache')) super(ResourceCache, self).__init__(base) def is_stale(self, resource, path): """ Is the cache stale for the given resource? :param resource: The :class:`Resource` being cached. :param path: The path of the resource in the cache. :return: True if the cache is stale. """ # Cache invalidation is a hard problem :-) return True def get(self, resource): """ Get a resource into the cache, :param resource: A :class:`Resource` instance. :return: The pathname of the resource in the cache. """ prefix, path = resource.finder.get_cache_info(resource) if prefix is None: result = path else: result = os.path.join(self.base, self.prefix_to_dir(prefix), path) dirname = os.path.dirname(result) if not os.path.isdir(dirname): os.makedirs(dirname) if not os.path.exists(result): stale = True else: stale = self.is_stale(resource, path) if stale: # write the bytes of the resource to the cache location with open(result, 'wb') as f: f.write(resource.bytes) return result class ResourceBase(object): def __init__(self, finder, name): self.finder = finder self.name = name class Resource(ResourceBase): """ A class representing an in-package resource, such as a data file. This is not normally instantiated by user code, but rather by a :class:`ResourceFinder` which manages the resource. """ is_container = False # Backwards compatibility def as_stream(self): """ Get the resource as a stream. This is not a property to make it obvious that it returns a new stream each time. """ return self.finder.get_stream(self) @cached_property def file_path(self): global cache if cache is None: cache = ResourceCache() return cache.get(self) @cached_property def bytes(self): return self.finder.get_bytes(self) @cached_property def size(self): return self.finder.get_size(self) class ResourceContainer(ResourceBase): is_container = True # Backwards compatibility @cached_property def resources(self): return self.finder.get_resources(self) class ResourceFinder(object): """ Resource finder for file system resources. """ if sys.platform.startswith('java'): skipped_extensions = ('.pyc', '.pyo', '.class') else: skipped_extensions = ('.pyc', '.pyo') def __init__(self, module): self.module = module self.loader = getattr(module, '__loader__', None) self.base = os.path.dirname(getattr(module, '__file__', '')) def _adjust_path(self, path): return os.path.realpath(path) def _make_path(self, resource_name): # Issue #50: need to preserve type of path on Python 2.x # like os.path._get_sep if isinstance(resource_name, bytes): # should only happen on 2.x sep = b'/' else: sep = '/' parts = resource_name.split(sep) parts.insert(0, self.base) result = os.path.join(*parts) return self._adjust_path(result) def _find(self, path): return os.path.exists(path) def get_cache_info(self, resource): return None, resource.path def find(self, resource_name): path = self._make_path(resource_name) if not self._find(path): result = None else: if self._is_directory(path): result = ResourceContainer(self, resource_name) else: result = Resource(self, resource_name) result.path = path return result def get_stream(self, resource): return open(resource.path, 'rb') def get_bytes(self, resource): with open(resource.path, 'rb') as f: return f.read() def get_size(self, resource): return os.path.getsize(resource.path) def get_resources(self, resource): def allowed(f): return (f != '__pycache__' and not f.endswith(self.skipped_extensions)) return set([f for f in os.listdir(resource.path) if allowed(f)]) def is_container(self, resource): return self._is_directory(resource.path) _is_directory = staticmethod(os.path.isdir) def iterator(self, resource_name): resource = self.find(resource_name) if resource is not None: todo = [resource] while todo: resource = todo.pop(0) yield resource if resource.is_container: rname = resource.name for name in resource.resources: if not rname: new_name = name else: new_name = '/'.join([rname, name]) child = self.find(new_name) if child.is_container: todo.append(child) else: yield child class ZipResourceFinder(ResourceFinder): """ Resource finder for resources in .zip files. """ def __init__(self, module): super(ZipResourceFinder, self).__init__(module) archive = self.loader.archive self.prefix_len = 1 + len(archive) # PyPy doesn't have a _files attr on zipimporter, and you can't set one if hasattr(self.loader, '_files'): self._files = self.loader._files else: self._files = zipimport._zip_directory_cache[archive] self.index = sorted(self._files) def _adjust_path(self, path): return path def _find(self, path): path = path[self.prefix_len:] if path in self._files: result = True else: if path and path[-1] != os.sep: path = path + os.sep i = bisect.bisect(self.index, path) try: result = self.index[i].startswith(path) except IndexError: result = False if not result: logger.debug('_find failed: %r %r', path, self.loader.prefix) else: logger.debug('_find worked: %r %r', path, self.loader.prefix) return result def get_cache_info(self, resource): prefix = self.loader.archive path = resource.path[1 + len(prefix):] return prefix, path def get_bytes(self, resource): return self.loader.get_data(resource.path) def get_stream(self, resource): return io.BytesIO(self.get_bytes(resource)) def get_size(self, resource): path = resource.path[self.prefix_len:] return self._files[path][3] def get_resources(self, resource): path = resource.path[self.prefix_len:] if path and path[-1] != os.sep: path += os.sep plen = len(path) result = set() i = bisect.bisect(self.index, path) while i < len(self.index): if not self.index[i].startswith(path): break s = self.index[i][plen:] result.add(s.split(os.sep, 1)[0]) # only immediate children i += 1 return result def _is_directory(self, path): path = path[self.prefix_len:] if path and path[-1] != os.sep: path += os.sep i = bisect.bisect(self.index, path) try: result = self.index[i].startswith(path) except IndexError: result = False return result _finder_registry = { type(None): ResourceFinder, zipimport.zipimporter: ZipResourceFinder } try: # In Python 3.6, _frozen_importlib -> _frozen_importlib_external try: import _frozen_importlib_external as _fi except ImportError: import _frozen_importlib as _fi _finder_registry[_fi.SourceFileLoader] = ResourceFinder _finder_registry[_fi.FileFinder] = ResourceFinder # See issue #146 _finder_registry[_fi.SourcelessFileLoader] = ResourceFinder del _fi except (ImportError, AttributeError): pass def register_finder(loader, finder_maker): _finder_registry[type(loader)] = finder_maker _finder_cache = {} def finder(package): """ Return a resource finder for a package. :param package: The name of the package. :return: A :class:`ResourceFinder` instance for the package. """ if package in _finder_cache: result = _finder_cache[package] else: if package not in sys.modules: __import__(package) module = sys.modules[package] path = getattr(module, '__path__', None) if path is None: raise DistlibException('You cannot get a finder for a module, ' 'only for a package') loader = getattr(module, '__loader__', None) finder_maker = _finder_registry.get(type(loader)) if finder_maker is None: raise DistlibException('Unable to locate finder for %r' % package) result = finder_maker(module) _finder_cache[package] = result return result _dummy_module = types.ModuleType(str('__dummy__')) def finder_for_path(path): """ Return a resource finder for a path, which should represent a container. :param path: The path. :return: A :class:`ResourceFinder` instance for the path. """ result = None # calls any path hooks, gets importer into cache pkgutil.get_importer(path) loader = sys.path_importer_cache.get(path) finder = _finder_registry.get(type(loader)) if finder: module = _dummy_module module.__file__ = os.path.join(path, '') module.__loader__ = loader result = finder(module) return result PKx"TE8E8E@__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/scripts.py# -*- coding: utf-8 -*- # # Copyright (C) 2013-2015 Vinay Sajip. # Licensed to the Python Software Foundation under a contributor agreement. # See LICENSE.txt and CONTRIBUTORS.txt. # from io import BytesIO import logging import os import re import struct import sys from .compat import sysconfig, detect_encoding, ZipFile from .resources import finder from .util import (FileOperator, get_export_entry, convert_path, get_executable, get_platform, in_venv) logger = logging.getLogger(__name__) _DEFAULT_MANIFEST = ''' '''.strip() # check if Python is called on the first line with this expression FIRST_LINE_RE = re.compile(b'^#!.*pythonw?[0-9.]*([ \t].*)?$') SCRIPT_TEMPLATE = r'''# -*- coding: utf-8 -*- import re import sys from %(module)s import %(import_name)s if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) sys.exit(%(func)s()) ''' def enquote_executable(executable): if ' ' in executable: # make sure we quote only the executable in case of env # for example /usr/bin/env "/dir with spaces/bin/jython" # instead of "/usr/bin/env /dir with spaces/bin/jython" # otherwise whole if executable.startswith('/usr/bin/env '): env, _executable = executable.split(' ', 1) if ' ' in _executable and not _executable.startswith('"'): executable = '%s "%s"' % (env, _executable) else: if not executable.startswith('"'): executable = '"%s"' % executable return executable # Keep the old name around (for now), as there is at least one project using it! _enquote_executable = enquote_executable class ScriptMaker(object): """ A class to copy or create scripts from source scripts or callable specifications. """ script_template = SCRIPT_TEMPLATE executable = None # for shebangs def __init__(self, source_dir, target_dir, add_launchers=True, dry_run=False, fileop=None): self.source_dir = source_dir self.target_dir = target_dir self.add_launchers = add_launchers self.force = False self.clobber = False # It only makes sense to set mode bits on POSIX. self.set_mode = (os.name == 'posix') or (os.name == 'java' and os._name == 'posix') self.variants = set(('', 'X.Y')) self._fileop = fileop or FileOperator(dry_run) self._is_nt = os.name == 'nt' or ( os.name == 'java' and os._name == 'nt') self.version_info = sys.version_info def _get_alternate_executable(self, executable, options): if options.get('gui', False) and self._is_nt: # pragma: no cover dn, fn = os.path.split(executable) fn = fn.replace('python', 'pythonw') executable = os.path.join(dn, fn) return executable if sys.platform.startswith('java'): # pragma: no cover def _is_shell(self, executable): """ Determine if the specified executable is a script (contains a #! line) """ try: with open(executable) as fp: return fp.read(2) == '#!' except (OSError, IOError): logger.warning('Failed to open %s', executable) return False def _fix_jython_executable(self, executable): if self._is_shell(executable): # Workaround for Jython is not needed on Linux systems. import java if java.lang.System.getProperty('os.name') == 'Linux': return executable elif executable.lower().endswith('jython.exe'): # Use wrapper exe for Jython on Windows return executable return '/usr/bin/env %s' % executable def _build_shebang(self, executable, post_interp): """ Build a shebang line. In the simple case (on Windows, or a shebang line which is not too long or contains spaces) use a simple formulation for the shebang. Otherwise, use /bin/sh as the executable, with a contrived shebang which allows the script to run either under Python or sh, using suitable quoting. Thanks to Harald Nordgren for his input. See also: http://www.in-ulm.de/~mascheck/various/shebang/#length https://hg.mozilla.org/mozilla-central/file/tip/mach """ if os.name != 'posix': simple_shebang = True else: # Add 3 for '#!' prefix and newline suffix. shebang_length = len(executable) + len(post_interp) + 3 if sys.platform == 'darwin': max_shebang_length = 512 else: max_shebang_length = 127 simple_shebang = ((b' ' not in executable) and (shebang_length <= max_shebang_length)) if simple_shebang: result = b'#!' + executable + post_interp + b'\n' else: result = b'#!/bin/sh\n' result += b"'''exec' " + executable + post_interp + b' "$0" "$@"\n' result += b"' '''" return result def _get_shebang(self, encoding, post_interp=b'', options=None): enquote = True if self.executable: executable = self.executable enquote = False # assume this will be taken care of elif not sysconfig.is_python_build(): executable = get_executable() elif in_venv(): # pragma: no cover executable = os.path.join(sysconfig.get_path('scripts'), 'python%s' % sysconfig.get_config_var('EXE')) else: # pragma: no cover executable = os.path.join( sysconfig.get_config_var('BINDIR'), 'python%s%s' % (sysconfig.get_config_var('VERSION'), sysconfig.get_config_var('EXE'))) if not os.path.isfile(executable): # for Python builds from source on Windows, no Python executables with # a version suffix are created, so we use python.exe executable = os.path.join(sysconfig.get_config_var('BINDIR'), 'python%s' % (sysconfig.get_config_var('EXE'))) if options: executable = self._get_alternate_executable(executable, options) if sys.platform.startswith('java'): # pragma: no cover executable = self._fix_jython_executable(executable) # Normalise case for Windows - COMMENTED OUT # executable = os.path.normcase(executable) # N.B. The normalising operation above has been commented out: See # issue #124. Although paths in Windows are generally case-insensitive, # they aren't always. For example, a path containing a ẞ (which is a # LATIN CAPITAL LETTER SHARP S - U+1E9E) is normcased to ß (which is a # LATIN SMALL LETTER SHARP S' - U+00DF). The two are not considered by # Windows as equivalent in path names. # If the user didn't specify an executable, it may be necessary to # cater for executable paths with spaces (not uncommon on Windows) if enquote: executable = enquote_executable(executable) # Issue #51: don't use fsencode, since we later try to # check that the shebang is decodable using utf-8. executable = executable.encode('utf-8') # in case of IronPython, play safe and enable frames support if (sys.platform == 'cli' and '-X:Frames' not in post_interp and '-X:FullFrames' not in post_interp): # pragma: no cover post_interp += b' -X:Frames' shebang = self._build_shebang(executable, post_interp) # Python parser starts to read a script using UTF-8 until # it gets a #coding:xxx cookie. The shebang has to be the # first line of a file, the #coding:xxx cookie cannot be # written before. So the shebang has to be decodable from # UTF-8. try: shebang.decode('utf-8') except UnicodeDecodeError: # pragma: no cover raise ValueError( 'The shebang (%r) is not decodable from utf-8' % shebang) # If the script is encoded to a custom encoding (use a # #coding:xxx cookie), the shebang has to be decodable from # the script encoding too. if encoding != 'utf-8': try: shebang.decode(encoding) except UnicodeDecodeError: # pragma: no cover raise ValueError( 'The shebang (%r) is not decodable ' 'from the script encoding (%r)' % (shebang, encoding)) return shebang def _get_script_text(self, entry): return self.script_template % dict(module=entry.prefix, import_name=entry.suffix.split('.')[0], func=entry.suffix) manifest = _DEFAULT_MANIFEST def get_manifest(self, exename): base = os.path.basename(exename) return self.manifest % base def _write_script(self, names, shebang, script_bytes, filenames, ext): use_launcher = self.add_launchers and self._is_nt linesep = os.linesep.encode('utf-8') if not shebang.endswith(linesep): shebang += linesep if not use_launcher: script_bytes = shebang + script_bytes else: # pragma: no cover if ext == 'py': launcher = self._get_launcher('t') else: launcher = self._get_launcher('w') stream = BytesIO() with ZipFile(stream, 'w') as zf: zf.writestr('__main__.py', script_bytes) zip_data = stream.getvalue() script_bytes = launcher + shebang + zip_data for name in names: outname = os.path.join(self.target_dir, name) if use_launcher: # pragma: no cover n, e = os.path.splitext(outname) if e.startswith('.py'): outname = n outname = '%s.exe' % outname try: self._fileop.write_binary_file(outname, script_bytes) except Exception: # Failed writing an executable - it might be in use. logger.warning('Failed to write executable - trying to ' 'use .deleteme logic') dfname = '%s.deleteme' % outname if os.path.exists(dfname): os.remove(dfname) # Not allowed to fail here os.rename(outname, dfname) # nor here self._fileop.write_binary_file(outname, script_bytes) logger.debug('Able to replace executable using ' '.deleteme logic') try: os.remove(dfname) except Exception: pass # still in use - ignore error else: if self._is_nt and not outname.endswith('.' + ext): # pragma: no cover outname = '%s.%s' % (outname, ext) if os.path.exists(outname) and not self.clobber: logger.warning('Skipping existing file %s', outname) continue self._fileop.write_binary_file(outname, script_bytes) if self.set_mode: self._fileop.set_executable_mode([outname]) filenames.append(outname) variant_separator = '-' def get_script_filenames(self, name): result = set() if '' in self.variants: result.add(name) if 'X' in self.variants: result.add('%s%s' % (name, self.version_info[0])) if 'X.Y' in self.variants: result.add('%s%s%s.%s' % (name, self.variant_separator, self.version_info[0], self.version_info[1])) return result def _make_script(self, entry, filenames, options=None): post_interp = b'' if options: args = options.get('interpreter_args', []) if args: args = ' %s' % ' '.join(args) post_interp = args.encode('utf-8') shebang = self._get_shebang('utf-8', post_interp, options=options) script = self._get_script_text(entry).encode('utf-8') scriptnames = self.get_script_filenames(entry.name) if options and options.get('gui', False): ext = 'pyw' else: ext = 'py' self._write_script(scriptnames, shebang, script, filenames, ext) def _copy_script(self, script, filenames): adjust = False script = os.path.join(self.source_dir, convert_path(script)) outname = os.path.join(self.target_dir, os.path.basename(script)) if not self.force and not self._fileop.newer(script, outname): logger.debug('not copying %s (up-to-date)', script) return # Always open the file, but ignore failures in dry-run mode -- # that way, we'll get accurate feedback if we can read the # script. try: f = open(script, 'rb') except IOError: # pragma: no cover if not self.dry_run: raise f = None else: first_line = f.readline() if not first_line: # pragma: no cover logger.warning('%s is an empty file (skipping)', script) return match = FIRST_LINE_RE.match(first_line.replace(b'\r\n', b'\n')) if match: adjust = True post_interp = match.group(1) or b'' if not adjust: if f: f.close() self._fileop.copy_file(script, outname) if self.set_mode: self._fileop.set_executable_mode([outname]) filenames.append(outname) else: logger.info('copying and adjusting %s -> %s', script, self.target_dir) if not self._fileop.dry_run: encoding, lines = detect_encoding(f.readline) f.seek(0) shebang = self._get_shebang(encoding, post_interp) if b'pythonw' in first_line: # pragma: no cover ext = 'pyw' else: ext = 'py' n = os.path.basename(outname) self._write_script([n], shebang, f.read(), filenames, ext) if f: f.close() @property def dry_run(self): return self._fileop.dry_run @dry_run.setter def dry_run(self, value): self._fileop.dry_run = value if os.name == 'nt' or (os.name == 'java' and os._name == 'nt'): # pragma: no cover # Executable launcher support. # Launchers are from https://bitbucket.org/vinay.sajip/simple_launcher/ def _get_launcher(self, kind): if struct.calcsize('P') == 8: # 64-bit bits = '64' else: bits = '32' platform_suffix = '-arm' if get_platform() == 'win-arm64' else '' name = '%s%s%s.exe' % (kind, bits, platform_suffix) # Issue 31: don't hardcode an absolute package name, but # determine it relative to the current package distlib_package = __name__.rsplit('.', 1)[0] resource = finder(distlib_package).find(name) if not resource: msg = ('Unable to find resource %s in package %s' % (name, distlib_package)) raise ValueError(msg) return resource.bytes # Public API follows def make(self, specification, options=None): """ Make a script. :param specification: The specification, which is either a valid export entry specification (to make a script from a callable) or a filename (to make a script by copying from a source location). :param options: A dictionary of options controlling script generation. :return: A list of all absolute pathnames written to. """ filenames = [] entry = get_export_entry(specification) if entry is None: self._copy_script(specification, filenames) else: self._make_script(entry, filenames, options=options) return filenames def make_multiple(self, specifications, options=None): """ Take a list of specifications and make scripts from them, :param specifications: A list of specifications. :return: A list of all absolute pathnames written to, """ filenames = [] for specification in specifications: filenames.extend(self.make(specification, options)) return filenames PKx"T@Wzz=__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/t32.exeMZ@ !L!This program cannot be run in DOS mode. $qv%%%[^;%%Ӎ%%Ӎ=%%Ӎ %%h0%%%%Ӎ %%Ӎ9%%Ӎ>%%Rich%PEL9a  c2@FEft"tjPYYu Su׋uӅt ]]j hd ASa3ɅSh AQ{ftjP<YYt3@3Sh AP ftjP YYuf?tjPYYuf9ujPYYt3fWSh AjXx=AP*f;"u&3f>"Sh0 AP 3f jhx ASk tf{"t3f>"Sh AP ft&jP9YYt3fjP$YYt fuE 0_^[U0"A3ʼnESVW@f8"tj j"YQP7YYu Dž A$pjPYYt fu牵W`;AVj0@f=`;A"t Džb;A3ɍf B.APx3h APY3Y;s t tA;r3hAPYYWP+VSjh8@33;h,APM3fuYYf9tjPYYtf9u3f>#hXAPYYj_jPwYYt f;u3f>!hAPYYjPGYYt f;u荅PVS3hAP39hAPyj[SWhx A$uvh`;AhPx PP@f"u+j[G j"P 3Wh0 AP3f_PPPT@ǍPffu+Hffu+Hffu+ȋPffu+jt1VD3h$AP_WhXAVVS, 0S; "Au$j h@A;3}3];;uq3{3u ;;t3f9>;tE;u ɉ}f9;u jEPh"A PuVSEE Eu^YËUVuu"j^0$huu  t3^]ËUEfU f;tfuf9t3]j h`A3u3;;uHK39} ;t߉uV5Y}V ؍EPWu Vc!EVS E EudYËU}t-uj5 2Ah@uVH@PY^]ËUQeVEPu u, u9Ett M^ËUEVF uc8FHlHhN; h+At )AHpu6F;((AtF )AHpu.FF@puHpF  @F^]U3SW9E]u} tVuM0ExuA+;Ar Zw Ar Zw MtDft?f;t8EPP:EPP:Mt ftf;t+}^tMap_[ËU=P2AVuy39Euu.cM t+Ar Zw Ar Zw Mt ftf;t+juu u^]ËUS]woVW= 2Au>j8=hH:YYt3@Pj5 2Al@u&j ^98At S>YuH0A0_^S>Y- 3[]ø AáVAVj^u;}ƣVAjPEAYYFAujV5VA,AYYFAujX^3ҹ AFA  "A|j^3ҹ AWEAt;tu1 Bp A|_3^C=|2AtA5FAYËUVu A;r"`"Aw+QEN Y Vp@^]ËUE}PDE H Y]ËE Pp@]ËUE A;r=`"Aw` +PCY]à Pt@]ËUME }` QCY]à Pt@]̋D$ StRT$3ۊ\$ t 2trt2urWߋ_t 2t@u[Ãr 3˿~3σtJ2t#2t2t 2t_B[ÍB_[ÍB_[ÍB_[ËUEt8uPgY]ËUQQ"A3ʼnESV3W;u}j^0!,uVEYY;Er3fՋE @;u)f9tAr Zw ff9u3SSjVWPDȃM;u*9Ms3fj"];~Cj3Xr7D =wD;tPY;t M؅u  놋E QSjVWp[DtSuV Pj*YSYƍe_^[M3/ËUuM[MEPu n}YYtMapËUju u ]ËUEPjuuu u]ËUMS] VW}M]t}tu93_^[Ëut 39Ev!t SjQM t39Ew}F }tFEEF tDFt=;r;}W6uuL)~>}+߃)}};]r\}t3;v uu+ ;w;Ew[PuV:LYP=K t{tdE+)E$VHDYtR}t"MEFKME&E} tu juwL *"N +3uN j hAP3u9ut/9ut*9uu-} tu VuL p3UugYuuuuu uEEEuYËUuuu juZ]j hA3ۉ]3};;u839] ;t܉}WY]G @uoWJYttȃ EAx+AA$u)ttEAx+A@$tIM9]u#W#EPSu WnKEWVE EuzYËUQf9Eu3øf9EsE -AAEPjEPjx@u!EEM #ËUQEu3Vu t Muuc3Wft.>u ftf;t fuf>t fuf9Mt tat0rt#wt)3a 3ۃM M3AWf;y@St  tRHtCt- t!9EE @@EE ljE}utE nTtZtEHt0 tuE G}u;eE1}u% UEut3 ؃f}j _f9>tjVh@j f9>tf>=uuf9>tjh@Vr u Ajh@VS u "jh@V4 uf> t3f9>tahuE SuPit3 E.AMH M x8xxH_^[jh`AX33}j/Y]3u;5VAFA9t[@ uHuAFwFP.YFA4VYYFA@ t PVYYF둋}cj8}*Y FA;tNhFA P@FAu4YFA Pp@FA<}_ ;tg ___OE Ë}j-YËUE2A]ËU("A3ʼnES]WtS5`YjLjP:0 ffffffEMDž0IM M@j@P@uu tS@_YM_3[ËVjVj V@P@^ËU52A@t]uuuu u3PPPPPËUE3;͐"AtA-rHwj X]Ë͔"A]DjY;#]u#AÃu#Aà ËUVMQY0^]h9@d5D$l$l$+SVW"A1E3PeuEEEEdËMd Y__^[]Q̋US] Vs35"AWEE{t N3 8N F3 8E@fMUS[ EMt_I[LDEEtEx@GE؃u΀}t$t N3 8N V3 :~E_^[]EɋM9csmu)=FAt hFAetUjRFAM UE 9X th"AWӋE MH t N3 8N V3 :EH*9S Oh"AWASVWT$D$L$URPQQh<@d5"A3ĉD$d%D$0XL$,3p t;T$4t;v.4v\ H {uhCfCfd_^[ËL$At3D$H3 Uhp pp> ]D$T$UL$)qqq( ]UVWS33333[_^]Ëje33333USVWjRh<@Q辧_^[]Ul$RQt$ ]UVuV4PeYYt|' ;u3@;u`3@.AF uNSW<2A?u S$YuFjFXFF ?~>^^N 3_@[3^]ËU}t'Vu F tV%f f&fY^]ËU@ @txtPuQeYYf;u]]ËUQC @VEt {uE C'} ~5EM PE>Yu?*uj?~Y} Ѓ?uE^ËUx"A3ʼnEESVu 3W}u9u*'8t `p ;t3҉f; j[ AfXw(A3HAjZ; $I@3  tJt6t%+t    f*u,j X k ɍDЉ= 1 f*u&  k ɍDЉItWhtFltwf>lu 6uf~4ud3uf~2u@d7i.o%uxX QDžd/St~At+tY+t+ Dž@Dž0 0u u u -AQPcYYtFF9|X+++3F tBPƅPPbyf6t:Ht3t+Dž-AP aYpegitqnt(oDžtaU7`c t ffDž@Dž Wufgu]DžQ9~~7]VnYt Dž5@GPPSP5.AЋtuPS5$.AYYfguuPS5 .AYY;-uCSDž$si+Dž'Džlj0XfQfGM t@tGGG@t3҉@t|s؃ځu3} Dž9~ u! t-RPWS_0؋9~N뽍+Ft_tƀ80tT0=u -ADž Kf8tu+@t+tj-tj+tj YfDž++ u$j OYtPYYt/u&j0O-Yt⃽uk~aPWPK\~$Y.%YY|3t*j OXYtރtYft/k>t `pM_^3[]ÐqA@[?@?@?@7@@C@@@@A@jhj@3Ʌ 2AËUMtj3X;E s 3]M VuF3wVj5 2Al@u2=8AtV_YuҋEt 3 Mt ^]-t"t t Ht3øøøøËVWh3FWP'3ȋ~~~  ~$A F+ο@Ou@Nu_^ËU"A3ʼnESWPv@3@;rƅ t0;w+@P j R& Cujv vPWPjj^3SvWPWPWv Sf]DSvWPWPhv SA]$3EtLtL @;rRDž3)ЍZ w LQ w L QA;rƋM_3[yj hA )AGptltwhuj Yj Yewhu;5((At6tV@u$AtVY((AGh5((AuV@E뎋uj YËUS3SM$2Au$2A@8]tEMapE,(AD;FG;v}>uЋuE}urlj{CijC C4(AZf1f0JuL@;v~0C@IuCC Ss3ȋ {95$2ATM_^3[pjhAM}_huqE;CWh :Y؅Fwh#SuYYEuvh@uFh=$AtPY^hS=@Fp )Aj YeC42AC82AC <2A3E}fLCf E(2A@3E=} L &A@3E=}('A@5((A@u((A=$AtPY((ASE0j Y%u $AtSYeEpÃ=FAujVYFA3ËUSV5@W}W֋tP֋tP֋tP֋tP֍_PE{$)At tPփ{t CtPփMu֋P_^[]ËUW}SV5@W֋tP֋tP֋tP֋tP֍_PE{$)At tPփ{t CtPփMu֋P^[_]ËUSVu3W;to=8.Ath;t^9uZ;t9uP[YY;t9uP([YYYY;tD9u@-P+P+P=()At9uP.W[YY~PE$)At;t 9uP6Y9_tG;t 9uPYMuVY_^[]ËUW} t;Et4V0;t(W8jYtV>Yu*AtVsY^3_]j hA@ )AFpt"~ltpluj $YSj Ye5h+AlVYYYEEj Yuj@@V5p+A@u5D2A@V5p+A@^ál+AtP5L2A@Ѓ l+Ap+AtP@ p+AjhADhL@@uF\Af3G~~pƆCƆKCFh$Aj Yevh@E>j uY}E Fluh+AFlvlYE3Guj ^Yj UYËVWH@5l+AЋuNhjl YYt:V5l+A5H2A@ЅtjVYY@N VY3W@_^ËVujY^jhAuF$tPVYF,tPHYF4tP:YF7֋5FA֋5FA9]u9Et]܉]ЉE؋}ԋ]E@}@sEtЃEE@}@sEtЃEE }u)2Aj Yu}tjYËUjju ]ËUjju ]jjj jjjz ËUu2Yh̋U3M; @t @r3]Ë@]ËU"A3ʼnESVuWV3Y;lj]Yj]Yu ="A6h@h2AW4 h2AVSf4A0@uh@SV t 3PPPPPVf0@YW@t3%>uN@ uNhF P@t,F N@Ch5EA@3_[^ÃUVW3u.Yu'98AvV@;8Avuʋ_^]ËUVW3ju u} u'98AvV@;8AvuË_^]ËUVW3u uIYYYu,9E t'98AvV@;8Avu_^]ËUVW3uu uY u,9Et'98AvV@;8Avu_^]jhPA 3ۉ]jY]j_};=VA}TFA9tE@ tPYtE|(FA P@FA4YFAGE Ej6YËUSVuF Ȁ3ۀu@t9FW>+~,WPVYP_ ;uF yF N _Ff^[]ËUVuu V5Y/V|YtF @tV/Pj`YY3^]jhpA3}}jBY}3u;5VAFA98t^@ tVPV#YY3BUFAH t/9UuPJYtE9}utP/Yu E܉}F3uFA4V,YYE}EtEBjYjYËVW38A<+Au+A8h0@t F$|3@_^Ã$+A3S@V+AW>t~t WW&Y,A|ܾ+A_t ~uPӃ,A|^[ËUE4Ÿ+At@]j hA&3G}39 2Auj\hlYYu4+A9tmjY;u 3Pj XY]9u+hW@uWYO ] >WYE Ej )YËUEV4Ÿ+A>uP#YujWY6p@^]ËU SW3j3Y}]9]uh}Vu ;t;uAkE;w}uEuEBuuPuUE;t5;|"MxEEPSYYtE39]\>^_[ËU}u]S]VuWuu9u u3t} uuuu;v*8CSVh[@uG8"uY8PWVh[@D>u}ud8"u%ZyuE"_^[]ËUujuuu u]ËUE~ PuYYuuPuu u@]ËU39E vMf9t @;E r]QL$+ȃ YhQL$+ȃ YhUQVu V# E F Yuo N /@t T"S3ۨt^NF F F ^] u, ;t @;u u r9YuViYF WF>HN+IN;~WPu Y EM F yM ttEAx+A@ tjSSQuh#ƒt%FM3GWEPu ]Y E9}t N E%_[^ËUVuuF @t F F u VhYFvvVdYPg FF uQV:Yt0V.Yt$WV!V u ju( }t9u sj"YjX^]̋T$ L$ti3D$ur=xEAtdWr1كt +шuʃtt uD$_ËD$A @tyt$Ix  QPYYu ËU"A3ʼnES] Vu3W}uu+6t `p7 F @u^VYx+Attȃ EAA$uttȃEA@$q3;g C39y B@Dž W @9} DžjugucDžW9~~=]V,Yt Dž5@GPPSP5.AЋtuPS5$.AYYguuPS5 .AYY;-uCSDž*snHHXDž'Dž2Qƅ0Dž t@tGGG@t3҉@t|sځu39} Dž9~ u!u t-RPWS*0؋9~N뽍E+Ftbt΀90tW0@?If90tu+(u -AI8t@u+@t5t ƅ-t ƅ+ tƅ Dž++ u% OtP`GYYt.u%˰0O5tヽtu~qPjEPPQ[u69t.EPFYYu#PFYY|2t) O\t߃tBYtrt `pM_^3[(Ðv@t@t@=Yxt"jWbYYtAVWP\ uI4~f>u5.A認%.A#FA3Y[_^5l2A脍%l2A3PPPPP̋V@3;u3^f9tf9uf9uS+ƍXWSyYu V@_[^SVW! UVuWV|DYtPEAu u u@DtjQDjHDYY;tV=u Fd.=u Fd=u Fd=uFdvdjY~d`QY^`[_^]Ã=FAu?V5.AW3u<=tGVYtujGW/YY=d2Atˋ5.AS3VW>=YXt"jSYYt?VSP\ uG>u5.AK%.A'FA3Y[_^5d2A%%d2A3PPPPP裤̋UQMS3VU 9Et ]EE>"u39E"FE<tBU PFIYt} t M E FU Mt2}u t utBe>< t< uFN>}t EE3C3FA>\t>"u&u}t F8"u 339EEtIt\BuU tU}u< tK< tGt=Pt#5HYt M E FM E  HYtFU FVtBU ME^[t ËU S3VW9FAu轻h:AVS;A@FA5t2A;tE8uuUEPSS} E =?sJMsB;r6P4Y;t)UEPWV}E HX2A5\2A3_^[ËU SV@3;u3wf93tf90uf90uW= @VVV+V@PSVVE׉E;t8PYE;t*VVuPuSVVׅu u>YuS@E S@3_^[ËV0A0AW;stЃ;r_^ËV8A8AW;stЃ;r_^ËU"AeeSWN@;t t У"AeVEP@u3u@3@3@3EP@E3E3;uO@u G 5"A։5"A^_[Ã%|EAËU4S3EV]܈]]E ]t ]E E]EPGYEuE@u9EtME+ùtCHt(Ht ڠj^0~MEt EuE@UEjY+t7+t*+t+t@u9UEEE E]E#¹W;3t(;t$;t=tT=u-ETEKEB=t4=t$;t)j^0蜟_^[EEEEt T2A#MxE@tMMMt } t M tM;;u!{ ^S`E= @juuEPuuu ׉E;upM#;u+Et%ejuEuPuuu ׉E;u76EAD0 H@PY蹞Efu@uD6EAD0 H@V蟞YuT@uf 렃uM@ uMu6x8ЃEAYYMLЃEAD$ MeHMuEtpjS6 ;u8tP6vejEP6 uf}uǙRP6A ;tjj6{ ;tE(@@}uE#u M EE#;tD=t)=@t"=t)=@t"=t=@uEM#;u EEE3E@}E#=@=tq;yE;nvv+[E3HHGEjjWW64 tWWW64#ƒ;jEP6B ;vtj}uXEE;iWjWW6x4 JWWW6c4#;E%=u6nY赛j^0u_=uWj6 ;E>WW6w Ej[+PD=P6n% ;݃ EAD$2M0 EAD$M ʀ}u!Etȃ EAD M#;u~EtxuT@juEjPuE%Pu  @;u4H@P讚ȃ EAD 65Y6 EAEUSSSSS蓙jhA3}3u;;uj^0趙Y39};t9}tE%@tʉ}uuu uEP\EEE;t@3u9}t(9}t EAD 65YËUjuuuuu !]ËU}u3]ËU MMtft f;u +]̋UMMZf9t3]ËA<8PEu3ҹ f9H‹]̋UEH<ASVq3WDt} H ;r X;r B(;r3_^[]̋Ujh8Ah9@dPSVW"A1E3PEdeEh@*tTE-@Ph@Pt:@$ЃEMd Y_^[]ËE3ҁ9‹ËeE3Md Y_^[]USVWUjjh@uB]_^[]ËL$At2D$H3zyUhP(RP$R]D$T$SVWD$UPjh@d5"A3PD$dD$(Xp t:|$,t;t$,v-4v L$ H |uhDID_뷋L$d _^[3d y@uQ R 9QuSQ-A SQ-AL$ KCk UQPXY]Y[ËUEur 3]Åx;EArW ދȃ EAD@]ËU"A3ʼnESVu F @W6VYx+At.VYt"VVOdMGdu, @ AM܋ D A @ A9M}Mk W\DE-EuwdSUY]}؃}tj臮YSUYt tuEԉG`uEЉGd3ËUE@;A]ËUED;A]ËUQSV5@W5FA5FA؉]֋;+GruS+؍GY;sH;s;rPufYYuC;r>PuPYYt/P4@FAu=@׉VףFAE3_^[ËVjj 輩YYV@FAFAujX^Ã&3^j hA萁euYEE E謁ËUuYH]ËU$"A3ʼnEESEE VWEPe=H;AEu}h A$@؅=@h ASׅ5@Ph ASH;APh ASL;APhh ASP;AP֣X;AthP ASP֣T;AT;AM5@;tG9 X;At?P5X;A֋؅t,t(ׅtMQj MQjPӅtEu M 3L;A;Et)Pօt"ЉEtP;A;EtPօtuЉE5H;Aօtuuuu3M_^3[aËUVuWt} unj^0_^]ËMu3f݋f:tOut+f ftOu3ufj"Y몋UUS]VWuu9U u3_^[]Åt} u~j^0~݅u3fЋMu3fԋƒu+fft'Ou"+ fftOtKuu3fy3uM jPfDJXdfR~j"YjUMx~ u.A]á.A .A]~}]ËU}u u >dY]Vu u uaY3MW0uFVuj5 2A(@u^98At@VLYtvV|SEAL8$$?tu'MuW| <|{D8 tjjjVVYD'@l39H P40@3;`;t 8?P,@4 3,9E#@?g $3 ǃx8tP4UM`8jEPKPYt:4+M3@;jDSPS C@jSDP/ n3PPjMQjDQP C@ @=j,PVEP$4@ @089,j,PjEP$E 4@,08<t<u!33Ƀ @D<t<uRD#Yf;DI8t)j XPD#Yf;D80E9@8T4D83ɋD8?D49M3+4H;Ms&CA u 0 @F@FrՋH+j(PVHP$4@C(8;;+4;El%?49MH@+4jH^;MsCΉ u0j [f @@fƁ@rH+j(PVHP$4@i(8;a+4;EGK4,9Mu,@+4jH^;Ms;,,΃ uj [f@@fƁ@r3VVhU QH++PPVh @;j(P+P5P$4@t (; H@D;\,+48;E ?Q(Qu448@t(D8 H@D8ulDt-j^9Du]v ev0?DivY1$D@t48u3$v%v 8+0[M_3^WjhA8v]uu u x;EAru u Juҋ'} ~0EM ȭE>u?*u˰?貭} Ճ?uE^ËU"A3ʼnES] Vu3W}uWtsu+esst `pa F @u^V׫Yx+Attȃ EAA$uttȃEA@$q3;g C9 B@Dž GW @} DžjugucDžW9~~=]VYt Dž5@GPPSP5.AЋtuPS5$.AYYguuPS5 .AYY;-uCS*stHH[Dž'Dž5Qƅ0Dž t@tGGG@t3҉@t|s؃ځu3} Dž9~ u!u t-RPWSR0؋9~N뽍E+Ftct΀90tX0@@If8tu+(u -AI8t@u+@t5t ƅ-t ƅ+ tƅ Dž++ u% OLtPYYt.u%˰0Otヽtu~qPjEPP u69t.EPsYYu#PEYY|2t) Ot߃tKYt3dt t `pM_^3[IÍI@@&@@@@ @R@QL$+#ȋ%;r Y$-UQQE VuEEWVEY;uUg NjJuMQuP@E;uH@t PGgYϋEAD0 EU_^jhADg]܉]Euf f Ëx;EArf f LfыHN++ˉN~WPu S EN F =M ttEAx+A@ tSjjQ#ƒt-F]fjEPu ]f] E9}t N %_[^j{YWƃуtefofoNfoV fo^0ffOfW f_0fof@fonPfov`fo~pfg@foPfw`fpJutItfofvJut$t vIuȃt FGIuX^_]ú++Q‹ȃt FGIut vHuY tjY.Atjh@jT jy̋U}uYVU]uj5 2AX@]ËUQ=.Au.AujMQjMQPD@tfEËUS39]u3AVWu趪pjV9 ;tuVWL u SSSSSU3_^[]UWVSM tMu} AZ I& t' t#:r:w:r:w:u u3:t rً[^_3PPjPjh@h, A @.Aá.At tPT@̋D$L$ ȋL$ u D$S؋D$d$؋D$[%@&@Rf~"8J^n~:(2J\n.:HTl*6HVnv.D^l|F @fQ@÷@@@ @ @9aM.AH/AccsUTF-8UTF-16LEUNICODEHH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunHH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunKERNEL32.DLLFlsFreeFlsSetValueFlsGetValueFlsAlloc  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~CorExitProcessmscoree.dllruntime error TLOSS error SING error DOMAIN error R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6032 - not enough space for locale information R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6030 - CRT not initialized R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data R6010 - abort() has been called R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point support not loaded `@@ @ h@@@h@@@P@@p@ @@@ @!@x@y@zh@`@@@Microsoft Visual C++ Runtime Library ...<program name unknown>Runtime Error! Program: (null)(null)EEE50P( 8PX700WP `h````xpxxxx ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~  GetProcessWindowStationGetUserObjectInformationWGetLastActivePopupGetActiveWindowMessageBoxWUSER32.DLLEEE00P('8PW700PP (`h`hhhxppwppCONOUT$Fatal error in launcher: %s Fatal error in launcher: %s rbFailed to open executableUnable to find an appended archive.Unable to read from file#!PATHEXT;Job creation failedJob information querying failedJob information setting failedstdin duplication failedstdout duplication failedstderr duplication failedUnable to create process using '%ls': %lscontrol handler setting failedFailed to get exit code of process.exe/usr/bin/envExpected to find a command ending in '.exe' in shebang line: %lsExpected to find whitespace after '/usr/bin/env': %lsUnable to find executable in environment: %lsExpected terminating double-quote for executable in shebang line: %ls<launcher_dir>\Terminating quote without starting quote for executable in shebang line: %lsFailed to find shebangExpected to find terminator in shebang lineExpected to decode shebang line using UTF-8Expected to find '#' at start of shebang lineExpected to find '!' following '#' in shebang lineExpected to find executable in shebang lineExpected to find arguments (even if empty) in shebang lineExpected to be able to allocate command line memory"%ls" %ls "%ls" %lsH"A ARSDSom_9Nt/C:\Users\Vinay\Projects\simple_launcher\dist\t32.pdb9<@@&@'@ +@.@/@0@%2@92@S7@[M@-Q@T@U@U@W@W@?\@ c@d@`d@f@q@s@C@@K@^@@Ĵ@@*@@@ @t@9@u@L&@Rf~"8J^n~:(2J\n.:HTl*6HVnv.D^l|FExitProcessGetCommandLineWSearchPathWqSetInformationJobObjectCreateProcessWGetCurrentProcesspSetHandleInformationWaitForSingleObjectWaitForSingleObjectExAssignProcessToJobObject^FormatMessageWGetExitCodeProcessGetModuleFileNameWQueryInformationJobObjectgMultiByteToWideCharcGetStartupInfoWCreateJobObjectAdGetStdHandleGetLastError-SetConsoleCtrlHandlerDuplicateHandleRCloseHandleKERNEL32.dllPathRemoveFileSpecWEStrStrIW:PathCombineWSHLWAPI.dllHeapFreeHeapAllocEnterCriticalSection9LeaveCriticalSectioniGetStringTypeWGetCommandLineAHeapSetInformationTerminateProcessUnhandledExceptionFilterSetUnhandledExceptionFilterIsDebuggerPresentInitializeCriticalSectionAndSpinCountEncodePointerDecodePointerRtlUnwindHeapCreaterGetCPInfoInterlockedIncrementInterlockedDecrementhGetACP7GetOEMCP IsValidCodePageTlsAllocTlsGetValueTlsSetValueTlsFreeGetModuleHandleWsSetLastErrorGetCurrentThreadIdEGetProcAddress%WriteFileoSetHandleCountGetFileTypeDeleteCriticalSectionSleep-LCMapStringWReadFilefSetFilePointeraFreeEnvironmentStringsWGetEnvironmentStringsWGetModuleFileNameAWideCharToMultiByteQueryPerformanceCounterGetTickCountGetCurrentProcessIdyGetSystemTimeAsFileTimeCreateFileW?LoadLibraryWHeapReAllocGetConsoleCPGetConsoleModeWFlushFileBuffersSetStdHandleIsProcessorFeaturePresentdCompareStringWWSetEnvironmentVariableWSSetEndOfFileJGetProcessHeapHeapSize$WriteConsoleWFAFAN@D        ! 5A CPR S WY l m pr   )     abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$A`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~CH@D@@@<@8@4@0@(@ @@ @@@@@@@@@@@@@@@@@@@@@@@@t@l@`@T@P@L@@@,@ @ @@@@@@@@@@@@@l@d@\@T@L@D@<@4@,@$@@@ @@@@@D@@@@@@p@\@T@L@8@@@$)A$)A$)A$)A$)A8.AA0AA()A*AA @A0AAA @@@@@@@@@@..0.A ;A ;A ;A ;A ;A ;A ;A ;A ;A4.A$;A$;A$;A$;A$;A$;A$;A8.A.K(p0eH`x bd(fnh(t%ЙxhhHZ( @...GGGWWWiiiuuu ̀ ww ww||wwwwwwwwfwwwww|fwwwwwwffwwwwwwffwwwwwfflwwffffffwfffffflwffffffwffffff|ffffffffR\Ilffl)ffح2L18Ϥ"A< ΣTπU  ؀ ???????( 444MMMSSSzzzp p{p{ffkof_fffk_fff[f}UUUfL4UUU_kJqO_~'[U_Uwwwww{~( @%%%+++000===AAAIIIMMMQQQVVVYYY]]]~dFgggjjjmmmrrruuu}}}u?z=~;gEkCoAr@:IbpƏKУk(,1?5<\CKQsU[cbð/Pp  =1[Qyq/"P0p=LYgx1Qq&/@PZpt1Qq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq_______CCBABADL*(%$""&GABJIIDDJC??AD_-(''%$GG#_DIJIIJIIIDIJDD_+)(''%GG _JMCEJ?ABAECA?BA_,+)('%%"!_IM@AJACDCIDI____.,++>________JMJJJJJJJJJF_..,+)('%$"! #GIMCEJJJI?J__...,+(('%$"! &_JM?AJJJJCJ__...,+)(''%$" _IMJJJJJJJJ_K=...,++(''%$! _JMCDJJJJAJ_K_______L*%$"!_I_?AMNJJEJ_ L'%$"_I_MMMMMMJJ_ _('%%_I_CEMIJJMEM _(''*_I_?BMDJEMDMF _)(-LI_MMMCMMMMM_________< ____I_CEM1;MACDMEJM__I_?A_D1@IJJMJMM_FF_I__6_@/EMMMNMM_FF_I_C80EJDMJCJFF?:AA20?_M_MIEM______MIC4BC/ N______MMMMJIDAI_9/ HJJMMJMMMJ??BAI_A7503 IJMMCBCBA44CCI___BAO;6___C_MJIDIDMI_CI___O; @__C_C?J?AJI_?A_DJJI@ O_CM?;I?JI_________H9MAIJJIJI_CD_____JJI73C;IJIJI_?AMDJJDIMJIE5:JIJI__________MMIA:IJJJJJJJJJJJJJJJJMJ???( 444MMMRRRYYY~eGuuu}}}x>iErCE~7?HVbx/!P7pLcyϏ1Qq/Pp",6@J[1qQq/Pp  =1[Qyq/"P0p=LYgx1Qq&/@PZpt1Qq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq!%///* !*/"(%%'%/) /!#''////+/+"*(/ / !%(/ ( (*/ (///) */   )*  /"///// /+/// # + !%//  +"*+'#+//+'!%*++$++!+! !!!<(0`  !!$& &"   WܱNj+<<:5pi$!!!4888&SNJFB=950,(%%%5ǎVRNIEѹ|Jq?o@ZUQMID@<73/+&"-Ɍ444"ք̴wq?]YUPLHC?;72.*%!"""4888&dya\XTPKGC>:61-)% OÑ%%%5ʎA{;ys`\WSOJFB>951,($(9|:z;xq?o@mAkBiCgCdDuZ;73.*Ǒ%%%5̎È>89}:{;yq?o@mAjBhCfD~dEuZ?:625Оa789}:{;yr>p?n@lAjBhCfD}dEB>:5^ό555"܄ѳ„7789}:{;xr?p@n@lAjBgCeDFA=9"""4;;;&ŌC89~9|:z;xr?p@mAkAiBgCIELɑQQQJnnn~~~Įq?o@mAkBiCHHH"""vvv9~:{;yq?o@mAkB:::'''___sssttt8Ϧuǣvyp?n@lA888T---6fffnddd%%%"""OOOSSSċDҧuʤv{;yr?p?xM<<r?̷999VVV###)))444ѳ͝b@~9|:z;}Cg˶Ӎ󑑑ZZZlll;;;!!!""")))___&&&2:::ppp{{{___WWWWWW:::!!!"""***www"""4888&,̑999ԖJJJ|||lll:::"""BBBXXX|||$$$6,uuuKKKCCC@@@...www* Ҍ666"KKKaaaLLLWWW@$"""4;;;&nnnfff!!!$$$999444]ttt|ȇɑ&&&5ЎvvvmmmVVV{{{OOOڥaaaCCCpppό555"ބ|||MMMfff"""4;;;&\\\Ǒ%%%5Ύݧܦ͌555"ۄۥ"""4:::&ڤÑ%%%5ˎܤׇ ww?ww??ww?ww?ww?ww?ww?ww?ww?ww?ww?ww?wwwwwwwwwwwwwwwwwwwwwwwwwwww?ww?ww?ww?ww?ww?ww?ww?ww?ww?ww?wwwwwwwwwwwwwwww?wwwwwwww( @ !!!0\\\JeeeQ666D555A0$ vH<602\7qڴvvvj&&&D1"gLF@;5?кVQKE?9(aV[UPJD>82-uuun{{{j`ZTOVo@lAb_YSMGB<60+%<aVmt>q?n@bb^XRLFA;5/)$Ywwwn}}}j~Cv=s>p?bba]WQKE@:4.(+{;xbba[VPJD?93-'aV~:{;xr?o@lAiBfD}dE|cE|cEiB<61?9}:z;w=t>q?n@kAiCfD}cE|cE}dFGA;=aVңi89|:yq?n@kBhCeD|cE|cELF@mzzznjʓP8~9{;yp?mAjBgCeD|cEPJ\¯mAjBgC~dEaV}:z;xq?n@lAiCJJJőPyq?n@~YVVV???wwwiiiΡkA|;y>>3@@@y~~~obbb000kkk@@@---U<<<&&&[[[6uuusssWWWIII$$$&&&qqqlllg|||s4bbbhhhƑUUU000QQQ}}}---{bbb(iiiLLLBBBaVggg+++NNN|||nj]]]tttkkkrrrwwwӦaVӦzzznjӦˉ ?????(  C﫫oIਨS=?_QF4aZмoEcaXMB70~Iq?c`VK@58z;u=qv>3Eyn@iB~dE}dFGHYYYuuuġ=xmAhC}dE}eGS444|||gC}cEMMM~>q?kAiGRRR¢Gu=xKʺ~AAAAAAAAAAAAAAAA ( h00 %   h PAPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPAD 0A0Z0t000001)1A12h2y22 33)3S3_3o3333334!4/4P4g44444445.5?5T5k5u555555555555566#6(6|666(737T7r7777#8T8]8d8y888899X99999:):M:s:;;<;L;;x<==+=====>???? `0 0:0I0V0b0r0y000000001*1]1l1u1112766V7]7778)89::}<<=*>2>C>O>g>>0h00111+171=1O1W1b11111112y22222222222222222223 333*3/3?3D3J3P3f3m3|395k555 6/6Q6\6666666777h7z7Z8d8q888889"9E9X999::::;n;;;<= =D>-?X>k>>>A???PLD0P0c0u0000000001 11?1h1y111(2p2233-4G4X44444444445555$50565C5M5S5]555556*60666L6d667'717i7q77777777778 8888(84898>8D8H8N8S8Y8^8m888888888888888999999::::::::::: ;;1;<;D;T;Z;k;;;;;;;'<<<<5=M=W=r=z======>2>~>>>>>?6?5R5X5a5t555,6L677R899::r;;(===>>"?/?pL00001F129333 444478I::::<???!?%?)?-?1?f?s????L00u1114597|7779<"<&<*<.<2<6<:>P>>> ?N?Y?c?t????0B0L0d0000113*3b3l33333355555546:6V6~66666 7767Y7f7r7z777777t99_:r:::::;(;=>X>>>>>>??p000011111u22222373Y333444445c6~77`80999f:Q>c>u>>>>>>>??+?=?O?a?s???1L1d1k1s1x1|11111111222 22Z2`2d2h2l2222233 3-3W333333333333444444444455A5G5O5555555556a6j6p66777&777777777P8s8~888888888888888999T9n99 ;;;o;u;;;;_<>>Da0;1 2<2R222O333#4M4m444g5 6(6N6666::<<< =?o1s1w1{111111 2%2C2221333334424R44445/5\5g555555:6_6l6666 78894999:-:::; ;;\;h;w;;.<<<<<==o>v>>>L?(0)101222 3393444!424v4Hh1l1p1t1x11111>>>>>>>>? ???$?,?4?>> >>>>> >$>8><>@>D>H>L>P>T>X>\>h>l>p>t>x>|>>>>PKx"T/A__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/t64-arm.exeMZ@ !L!This program cannot be run in DOS mode. $z)))薜()薚(o)薛()()()()薞()))I()I`))))I()Rich)PEdBa" $1@ `8\<P DJTpJ8.textԳ `.rdata@@.data$p N@.pdata Z@@.rsrcPRh@@.relocD@B0@AT_{011"@1@G>c2 __S[cks{CsP@uXAw`ByhC{pDa(@@?{EsDkCcB[ASƨ_S[cks{CsP@uXAw`ByhC{pDa(@@?{EsDkCcB[ASƨ_ T!_ "Tb6 ` b6 ` b6"@9b9_BTBcT! BT? @aT @`T L$ L!@!`` Ld LB"Tb06 @" A$B&C!!@!``b dfcBbTb06 L` Lb(6 L`Lb 6 pL`pLb6 p `p b6 ` b6 ` b6"@9b9_!!_ T6!c ` ` 6!c ` ` b6"_8b8_BTBT!BT? @aT @T! @L!$ @L!!c` Lcd LBT!&C$Bc" A @!!fdb `BbT06!c @L` L(6!c @L`L 6!@c@ p@L`pL6! c p@ `p 6!c ` ` 6!c ` ` b6"_8b8_{S[cks!@SP@UXAW`BYhC[pD](@?@BsFkEcD[CSB{A_@xb 4@7 @`T,@_?Tt@Lqn"&"4@| ՠtLqn"&5@`N!Npn&BR@_!@ˢ$@x4!T$@x5ѠA_`7? #T @T,@_?Tc@ˠt@Lqn"&4!˥? CT#CtLqn"&4caT!@T! ˥ˠtLqn"&b4$@xB4!TA_c@ˢ$@x"4!TclT_@8 4 @@T,@_? Tp@L1n"&4@|pL1n"&5@a N!N0n&B R_֥Ѡ_!@ˢ@8B4!T ?@#T @T,@_?lTc@ˠp@L1n"&4!˥?@CT#DpL1n"&B4caT! @T!@˥ˠpL1n"&4@84!T_c@ˢ@84!TclT_C11@c1_1@1@c0TC_ {C{A_Q @s/3CT_t1@?@?T_ NNNN_Tf ib8 * $! )&&&&&&&&&&&&&&&&@q @! @! _@q @! @ _@q @! A9_@q @! _@q @! _@q @ _@q A9_@q _H@ qL@qL_R_TIE)@LTB@_H @TAB@qLIF     )@!LTB@B_+T@LBT__@lTChhb8c`(($TJ ) @ $Z_@(@Tc  `$Z_D@(D@Tc `$Z_@8(@8`$Z_@(@Tc  `$Z_D@(D@Tc `$Z_$@x($@xTc`$Z_@8(@8`$Z_@(@Tc  `$Z_D@(D@Tc `$Z_$@x($@xc`$Z__@(@Tc  `$Z_D@(D@c `$Z_@(@c  `$Z_@(@Tc  `$Z_@8(@8`$Z_@(@Tc  `$Z_$@x($@xc`$Z_@(@Tc  `$Z_$@x($@xTc`$Z_@8(@8`$Z__+TB(($!T_ !T(($aT_ aTBjTB_@mTB @(@TB lT TB chhb8c`J ) @ $Z_c  `$Z_ΐ|ؚtl\JHa_S {@B{ @SŨ_S {@q{ @S¨_S[{@q{@[ASŨ_S {@{ @SŨ_S {@q{ @S¨_{ 5 @R uM@ R? {Ĩ_{5@R M@ R?{Ĩ_S[c{89* ,g(@ q"ѓ{cB[ASè_S[{ )!)C q @BRR @8 R|@ @Q?q3* @ !_ @$@c @h%h~@ j3$Ҁ R K?q @4*R @!B !yh&@cj@h%~@ j3D)R @( sB(* @ !# С^Ё2B`5iQ @?q!R @ ! FhBҁ24s"T @ {è@[ASè_S[{RR6Р@2R?44R$AC @* @S5 @ac@@2R?5caw`4R @q2{è@[ASè_S{@?1@FR%RR?*5=@?(Rq*{S_{qT(5F(-@? R{_S[${CI@? @RC!R?֠4#@ RAq@TR@RC!R2 @?}}}}}}1@?g@raT!@ ?!@@?!@`?mE@?zcE@?@R!R?#jSg@2g(1OQ@R$R?ր5=@?9@*RRR?R(@!R?$%@a@?E@`@?A@`@R?U@`@?a M@#@?S[{YA?s`@y4q@TR5ZA`"?s"8Aqb@y4Rm`4 RR .@x4R*_@5h@y4R*X`5h.@xh5`@yRR`4ys @yqTh@yqys Q`4>@yqTh@yqA `@y4R$`4ys h@y4R*`4h.@xh5{@[ASè_S[c{@?@yqATqJR RAU @y4R*`4.@xh5())@ R?ֈ@y |@q`T )  Rz)x*H(9!Bj BT 8?5qT?)qT CTѿ!/5@K9 RcR R?"*qh~!Tci)xc3@y4R*`4h.@xh5h@y !a#q R*`4h.@xh5h@y !!$qR*`4h.@xh5C % @%5 UA?֨>@yqTARy QA ?yh4(-x5y-h4H-x5yLh4(-x5y+h4H-x5H A*AKt"1&'""- C@R`>C_{R{_C@`>C_{ R>"* # RS4AZ54 "SH4 5R{A_R{R{_{y"{_S { RS( 4RC9dS4BNq` Th5(RB!A `4RBa ! HRB5RC9*sh@SH4s@aA?AR`?gh@Sh4`@!v ""@"@h*\S4U5!R R* *QS4C@9H5!*{¨ @S¨_RAR?*!*{!{{_{`4,!9 @H_hK ȩ5`T!9H_hK ȩ5;R{_ R{*Hy9q)R)I99Sh5R#S5R R{_S{4z9*h5qTw4s5(A9&#5(9"#4R (A9))9 )*) * (R:9 R{S_֠R{IR (@y kT,=@*, RH@ kATH1@y-qT ),()@y a) @y,) _ @TI @A)TH @  A)TJ jR H%@h6R RRR{¨_{S 45(!9ȿ;{A_{(y9S)SH45*L#*D R{A_{)()GaT" A9"q`{A_{Z{_S{4@sXAT c ?@) (? @ |@) ? @ |@)a ?#@C@ @H  @?X(( {èS_ 2-+3-+R_ R_R_(A:( _(:_{@ @  {_(@q_(A_(!_`>_{! ?֠@yIR k!T<@ R (I@? kaTH1@y-qTH@9qTH@h4 RR{_( S{@)h@ kTh@q!Ti"@H(K q T?kTR{S_ֲ@"csm @S[{a< 5<!!BTt@bA?ր?#T{[AS¨_S[{< 5<!!BTt@bA?ր?#T{[AS¨_(Dq_@y-<S54|= A  `N `N+>N7)>N S%Ț*`TIh 86<`N0:n>N1 `N(>N  H!Q qS%ɚ( @T  J(>N )(}@Ӊ H AIh5F N |=  `NsnR `N1 `NN>N/>N7 SI>NJ%Ț(>N  ( `T  ki _ k+T-T(}@ $(!Q qSJ%ɚHI?TT K}@ Ap<`NsnNQ:n(>NHR `NH>Nh H>N )(}@i H+Aj@y_ k`_S[ck#{f@@ ˨@h6 y@52A9HJ@?qZ@ R jT@kBTAжR4@_C(T @_C("T@4@q T*@"C( cl`7qmT@) kThA` a_ 4sAaA?!R`?@"R @ C(H@@"@@!C(h?E @@kTRB@@˟ kT *R4 *@_C(#T @_C(T@r`T R4R4R4R+@B(T @B("T@@ kT @ @ kTk kT * kT @@4B(@z!T *@J @ R"C)@ * @ k *T R{è#@kCcB[ASŨ_csm{Sh5RSh5 R{_{Sh5 R{_S{C9@ kT@qT @  K qT@ @4@)@@ 6 @4@4@ @aA?`?{èS_ csm  {{_{ {_(;@T/_{`{_ S[{6@1aT8 ?*@ ? T@  ?`5 @ ȳ ?4(hz@  ?a * ?{[AS¨_{7( ?(1T(;  ?֠4(hz RR{A_{3`@1T ?h R{A_{=(A RR ?4 HiO R IiR{_S[{jO4=asQ`R ?jO Qj35 R{@[ASè_S{ 3f#R!#{¨S_{@TW#R**S{G#R#L#h@*H6"R*#gh@;rTh@(9~@j@), F @yk ҩ!h@"9Oi@;?rT_q!Tyk!*@96yk!*96a@gh@; SH5#Rh@;6 _qATA{S_S[ck#{l#*~@);F @h{z +! (Ix9q6h@h5L }@h@*i@h9U 7V>ԩ֚>BR*F#aT`@*h@;Sh4 S?q*HH#R*.#aT!lTh@;S4h@;!Sh5@o"h{z @)! *@9 6 S?q*HHV> ֚(֚  {¨#@kCcB[ASŨ_{S[ck s/"h@*h5Ii"@ R*)*I@)3F@hzuWA"!@"hzu"I@? AT@@ R# ?4R*"`@B( T#,A(# _ BTH95qT_ "TH9)qTJS8J)kJT#H@kDcC[BSA{Ũ_H *S_q( T *Aӟ %@x)qkaT` 郈 8J)q_ aT_ֲ8&S[ck{hOh5@R qiR(h}@%&M&GhRh`&C&Gh)7tR 9RR`'GF@j(ziI!+@h  HTy"sbQ5R{kCcB[ASĨ_ |@ ! _S[{F)A(atRG`jh?)Gijh @?s"Q5G%{[AS¨_ ! S {*Tx!R3!{¨ @S¨_h@y4@y5j!RC!) @b!R*M*s @*) @{I!R!R R`?!@R{A_S{3!R h@;5 S4(*(!a*`6`@`%(*{S_S{ 3 !R {¨S_h@;1 Sh4(q*r*{ <SR?k3<S`T?qTEA yix  C'y"R#yK R*4#@y R{¨A_S{ @C *@D*{¨S_S{ @1*@2*{¨S_{S[c R` ?T5s @x9c9SW kCyS9OS#*V6Ts5 @T73bTWs69 @@Tj(8SB$@9S4@HC yI*cC[BSA{Ĩ_t @!T38{S[cC R@T5 @x9c9SW kC9yS9OS#*V6Ts5 @T73bTWs6y @@Tz(xSBq$@9S4@HC yI*[cC[BSA{Ĩ_t @!T3xS {TRRB3hTBhT R)uRB8$3R3$*{ @S¨_S {TRRB3~hTBhT Rb)uRB$3R $*{ @S¨__qT_ qDLz T_4q T(S QR? j RR__q@T_ qTH0QqiT(<S ~ QR? jT RR_ 0B `@,BA h $ R 8@q @zTQ8B5>*I *( qTh +$@ 9 $@) $ K P $@H$_ 0B ` ,BB( h $ R 8@q @zTQ8B5>*I *( =SqTh *K=S $@h(y$@ $ A P$@ $_ 0B `@,BA h $R O|@8@q @TQ8O>+Ϛi ( LqT ,$@ 9 $@) $ K P $@H$_ 0B ` ,BB(O|@ h $R 8@q @TQ8O>+Ϛi (=S L=SqT *L=S $@(y$@ $ A P$@ $_S[c{*q7RMT@ @;(1 S4@ @@*/1T@  ?1Tsk+T{cB[ASè_S[c{*q7RmTR@ @;(1 S4@ @@>S.?# kT@  ?1Tsk+T{@cB[ASĨ_S[{*q7RmT*5 @1TskT{@[ASè_S[{*q7RmT>S9 @1TskT{@[ASè_{b9($@hqA5 )@i)a"`H@h D@i *`@aB*i@(C72*R(jb9{A_{SRCh@@.h@S@jAh@,@i @K@@*@#KCys9?CG*CBA"c@9C4@HC yI*.*C(@SA{è_{SCh@@`.h@S@jAh@,@i @K@@*@#KC9ys9?CG*CB"c@9C4@HC yI*t.*C@SA{è_(@ }@9*@L94* *? kT8*h5 4h94RS Q? j`Th8h5i*9_qT*8_qT(_ k,h885_-@ 9@Sh8?qT@ 8Sihx7Sh8?qAT 9?q }@m @*9j98 *8*5_S[{ @: u@BR@C ' @`, @qT@ @?T RRh@h5U4u{¨[AS¨_S[{ @ u@BR@C & @` @qT@ @?T RRh@h5U4u{¨[AS¨_S{`6B  SH4h@hrD ir? qTR.d j*@i 7l9 S?iqT}@ +}ӊmij Rh.@ *}Kitk.!q`TqT (I8( /Sh5Ro{S_~)h~)9R950qTa]*j@ @* K!kl_l66h2@ Kj6 2i2(R:q`Taj@ @* K!kh_ h:qh:@)i:ASh4h@ 9i9h@)5 ihrD ir? qT`*@S{h6Bhh@ZR}hrD ir? qTR.b j*@i 7l9 S?iqT}@ +}ӊhijR  h.@) *}Kitk.!q TqhTi (I8( RS4a9b` :~)h~)9R94[/qTa)j@ @* K!kl_l66h2@ Kj6 2i2(R:q`Taj@ @* K!kh_ qh:)i:kS4h@ 9i9h@i5 ih.@qGzThrD ir? qT`*@{S_֩S{h6Bhh@RshrD ir? q TR.\ j*@i 7k@yRh =S?iqTh }ӉLii Rh.@ *}Litl.!q@TqTI (I8( 6S4:~)h~)9R94/qTau)j@ @* K!kl_l66h2@ Kj6 2i2(R:q`Taj@ @* K!kh_ qh:)i:QSH4h@ @yiyh@)5 ihrD ir? qT`*@{S_ֲS{h6Bhh@DRzhrD ir? qTR._ j*@iJ 7k@yRh =S?iqTh }ӉLii Rh.@ ) *}Litl.!q TqhT (I8( *RbjR9 *` :~)h~)9R94d/qTa)j@ @* K!kl_l66h2@ Kj6 2i2(R:q`Taj@ @* K!kh_ qh:)i:83S4h@ @yiyh@5 ih.@qGzThrD ir? qT`*@{S_֬9qTqTq`TqTqT0@ 2 0@ 2 0@ 20@ 20@ 2 0 R_@yqTqTq`TqTqT0@ 2 0@ 2 0@ 20@ 20@ 2 0 R_{R;Sh5Rh6B`9 @;(1 S4h6B @a6B*1Th*@ i*h* R{A_{(R`@yhR9h6B @;(1 S4h6B @a6Bb*R! kTh*@ i*h* R{A_{`9R91Th@ @*@K`xhR4h6B @;(1 S4h6B @a6B*1Th*@ i*h*h@ 8i9h5!RR R{A_{a9R9?1Th@ @*@KaxhR4b`h@ 8i9h5RR R{A_{ 9?qT@ 7R ,S`?9qaT@h 7 R ,RRT<@(5?qTT?%qT?1q@T?QqT?qT @(9qT( )R=IR;R<9 R6 @*9_qT(9qaTJR_q!T(9qTjR( < $HaQ S?qTiX(%Ț6)RR?qT?q T?qT?q!TRRR  @(9qT( RiR < R{_  { 9?qT@ 7R ,%S`?9qaT@h 7 R ,rR-RT<@(5?qTT?%qT?1q@T?QqT?qT @(9qT( )R=IR;R<9 R6 @*9_qT(9qaTJR_q!T(9qTjR( < $HaQ S?qTiX(%Ț6)RR?qT?q T?qT?q!TRRR  @(9qT( RiR < R{_  { @y?qT@ 7R ,Sa?9qaT@ 7 R ,RRU<@(5?qTT?%qT?1q@T?QqT?qT @(@yqT(  )R>IR<R<: R7 @*@y_qT(@yqaTJR_q!T(@yqTjR( < %RH =S?qTHX%ɚ6)RR?qT?q T?qT?q!TRRR  @(@yqT(  RiR < R{_ { @y?qT@ 7R ,Sa?9qaT@ 7 R ,RMRU<@(5?qTT?%qT?1q@T?QqT?qT @(@yqT(  )R>IR<R<: R7 @*@y_qT(@yqaTJR_q!T(@yqTjR( < %RH =S?qTHX%ɚ6)RR?qT?q T?qT?q!TRRR  @(@yqT(  RiR < R{_ S {h9 Q_qT(Y ( R$M!fh2@ 2i2ARR i2@(Sh4(2h2R"RRR RhRi")SH 4hA9 5l2@Cy  9S4Sh4Rl6hRS4RC9+m9RS aQ? jTSh4.RRS QR* N55CRhi)8aqTqRAT RGhi)8k i6@ *hR@r)K4KTc*R`h6B @;(1 S4h6B @h*@  i*dBc*C`,i2@( S4( S5c*R`Rh*@(7h2@ S4c*R` RR{¨ @S¨_S {h9 Q_qT (Y ( R$o!h2@ 2i2ARR-i2@(Sh4(2h2R"RRR RhRi")<S 4hA9H 5l2@Cy  9S4Sh4Rl6hRS4RC9+m9RS aQ? jTSh4.RRS QR* N55CRhi)8aqTqRAT RGhi)8k i6@ *hR@r)K4KTc*R`dBc*C`i2@( S4( S5c*R`rR=h*@(7h2@ S4c*R`e RR{¨ @S¨_yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy{Sh@y Q_qTi(Y ( R9$!rh2@ 2i2ARRi2@(Sh4(2h2R"RRR RhRi")iS 4hA9 5k2@  yhS4hSh4Rk6hRhS4Ry*l@yRaQ jThSh4-R RQR  M55R(y*xaqTqRAT R (y*xJ i6@ *hR@r)K4KTc*R`h6B @;(1 S4h6B @h*@  i*dBc*`i2@( S4( S5c*R`gRh*@(7h2@ S4c*R`Z RRB@SA{è_{S[h@y Q_qhT (Y ( R[$!h2@ 2i2ARR i2@(Sh4(2h2R"RRR RhRi")S 4hA9( 5k2@  yhS4hSh4Rk6hRhS4Ry*l@yRaQ jThSh4-R RQR  M55R(y*xaqTqRAT R (y*xJ i6@ *hR@r)K5KTc*R`tdBc*xi2@( S4( S5c*RR h*@(7h2@ S4c*R RRo[BSA{è_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxS {j@ @* K!ku_@b>@a9`@*t&@yS4(RhR9)}S H%h&I%(85H%)R9iR R{ @S¨_S {j@ @* K!ku_@b>@a@y`@t&@yS4(RhR9)}S H%h&I%(85H%)R9iR R{ @S¨_S{Ch2@4Rj:@ 2i2J6hA9R Q? jRR*j: *5h9qT RqaTt:*RHu}@`btS(5h2Bh@h.BA uQi:ib(B(h&j@ @* K!kp_a2Ba@h.BAӡ@abcb h.B#H"Ag"@ e9f:@#h2@ S4h:@5a@`&@hA9R Q? jTh2@ S5a@`&@j&@K9qTh2@Jj& 2i2K9h%Q S?qTX(%Țh79qTh2@kRk9 yi2K9 k4(85( hR RC{¨S_ !S{Ch2@4Rj:@ 2i2J6h@yR Q? jRR*j: *5h@yqT RqaTt:*RHu}@`bS(5h2Bh@h.BA uQi:ib(B(h&j@ @* K!kp_a2Ba@h.BAӡ@abcb h.B#H"Ag"@ e 9f:@+#h2@ S4h:@5a@`&@Ah@yR Q? jTh2@ S5a@`&@j&@K9qTh2@Jj& 2i2K9h%Q S?qTX(%Țh79qTh2@kRky yi2K9 k4(85( hR RC{¨S_ !{b>@a9`@j@S4 @* K!kc_xa2B@abh.BAd@`B 4(Rh9ib(B, @* K!kh89(RhRib(B R(h&{A_S {5RuR9j@ @* K!kb>@a@y`@t_xibS5(BC9Cc@G9 h@ 6u9(B(yib(B RuR(h&{¨ @S¨_S[c{j>@*XS_-q(TI(I8( t@6 Sh@4 !i)85}@7 !i5_83tj@@V S 4 @* K!khx}@% @* K!ku_xtj@@ S @* K!ku_tj@@ S 4 @* K!ku @* K!ku_҉@(S4)2j:@6(Rh:(yA}@`b@ yR9"**T*)@ S4hR@4h&@ 9?q Th&@ R i&*9hR@ iR RR@R{cB[ASè_ֱS[c{j>@*XS_-q(Ti(I8( t@6 Sh@4 !i)85}@7 !i5_83tj@@V S 4 @* K!khx}@% @* K!ku_xtj@@ S @* K!ku_tj@@ S 4 @* K!ku @* K!ku_҉@(S4)2j:@9Rj6y:(yA}@`bU@ yyR9"**T#*@ S4hR@4h&@ @y?q Th&@ R i&*yhR@ iR RRR{@cB[ASĨ_ְS{j@ @* K!kt_c"4j>@_-qTi(I8( j* h*@hRyyh99(Rh9 RR~R{S_S {@ @* K! G) s_9@15& S4($&3$(R~@R9V (%&3%~@*R R{ @S¨_S {@ @* K! G) s_@y@15&S4($&3$(R~@R9&*(%&3% RqTh94 S@ @*@KkxrhkTR R{ @S¨_{@;1 S5q |@ TjFyji@ ,!  95q TjFyji@ +!  h@96&RR R{_ @I@ THa@94H@ IH@a@9H@ I @H @ I @H@9 @ Rh@ i_ @I@ THa@94H@ IH@a@9H@ I @H @ I @H@y @ Rh@ i_{S.ChRA9(4hR@qTu&@R&@xd@#  5@4h6B @;(1 S4h6B @h*@  i*dBc#`2hR@kATh*h6BbR@a&@ @;(1 S4h6B @h*@  i*dBc` RC@SA{è_{SChRA94hR@qMTu&@R&@xd@#5@b4dBc#`hR@kT h*bR@dBa&@c` RC@SA{è_S[c{hRA95hR@q-Tu&@RRc@#yCh@ C*q-Th6B#@y @;(1 S4h6B @a6BI # kTh*@ i*w*hR@6kTw*h6BbR@a&@ @;(1 S4h6B @h*@  i*dBc` R{¨cB[ASè_S[{hRA95hR@qMTu&@Rc@#yCh@ *qmT#@yb`hR@6kT h*bR@dBa&@c`8 R{¨[AS¨_S[{*4@*@ T(a@94h@  H @~@1t@H@ I@H @ I @Ha@95Thh@ i{@[ASè_S[{*4@*@ T(a@94h@  H @~@1B@H@ I@H @ I @Ha@95Thh@ i{@[ASè_S[ck{3@*u38u@T@8 @;(1 S4@ @)@1T @`] @qT@ @;(1 S4@ @@R1T@ !Th@h5U4u{kCcB[ASĨ_S[ck#{@**~@v@7?TR@ '@x @;(1 S4@ @I@!R! kT@`@qT@ @;(1 S4@ @@R # kT@ ?Th@h5V4v{#@kCcB[ASŨ_{RBc+C#C {Ȩ_{RBc+C#C{Ȩ_S[ck{7R9sTiT@1T@qT"@h81AT!Tt@qTp 691TiHRfR!{kCcB[ASĨ_S[ck{7R9sTiTC@1T8@qT4"1@h1xAT!T"@qT 6y1THRR {kCcB[ASĨ_S { *S R {¨ @S¨_֟ qTg*K*f*S{_q Th@; R jTh@;rTh@qT`@; |@*F)@yj +! i9)7h955"RF@h@ (ˋ )ӟ kThӟkT j"@  ?lTh@( THhi@ R(KhR{S_S {h@*;5 S5 R8jRI_)yI5;*Sh5qTRh@hi@;( S4jRI_)uI5; h@;)R qTh@;!Sh5@Rh"`@;* @TR{ @S¨_!|@O{$@TQ R RbyJHiix(%xh4!сy? HR @RR{_@@@@y4*@y * 4 * *kT-@x *i5i4,@x5@yH4)@y *)4 @y * * kT-@x*h55,@xh5$x @@_{ R A`H@{_S[{`R R R"S)4(yh4) ( A6A RRz`5SvR`R*{[AS¨_RқS {3yh4(-x5(i@A(y h4H-x5H ˿"T`@xuxqT`4i@h@  { @S¨_R#R{S[c R< Rl6cTy@@@yJ4RH =S?eqhTHy.@x*5RUR R7*5\ HRY @G~@TyR HR @R= A? T<LT|DӲs/sRRhsB1 R. @@*@ R4* HRTRh_R kaT`B|*mcC[BSA{Ĩ_S{Cco@94 @HC yI{èS_C߈CVbR%@x+$@xHQeqIhQLieqhK5l4BB_{qAh5 R A{_S[{ Rt =VsR9C@h@(&&@xqBT @ ylx6h@il8Sc@<S&@xqBT @ ylx6h@ il8 Sc@ <S K5t4sѓ@94 @HC yI{è@[ASè_S[ck#{c R {è#@kCcB[ASŨ_ֳ ؚTTR3 ؚTh@; R j`Ti"@ R  Rh@; R j Tw@4 77BT*_C7 Ta@~@ӂ  aR  h@B7j@ZC7 KHA7ih~@B)T{@ W4I5>   K_C7CTh@h @*Y 4@7 |@Z @@ 1T@Z(@9i"@  TR\ HRzjRI_)2I5jRI_)2I5;@ ؚlS[{ uTR. Rj {¨@[ASè_,PS[{*sj@K_  T(AkT? T @ T Ra(AaT[w@v@"q TI+A?)A? T@I v@ kT@T  kT  kTI  kT  k*!T(R4R%RR"hRtRHRTRRR kT kTI kT  k*TRR RRRRHRTRhaA?*R?vaA?*?wR{@[ASè_֑O__ @hG*)*-ʚ___S{ @hG*)3-ʚsRaA?`?{S_ @ RIi K,ɚ h_S[c{((v"R8qTqUR@  8h9s8*?" 4@  9h9s545q`T&qT8R9(4q`T%qT94v"(@ R )9+R R8JqqTqTJ749qaTq RJ}S*4JQsw9s@  *59 45qIzTK4`99s! 4@  9h9s@  s9s@  V(@ ){@cB[ASĨ_{bTB> š?T)|  )T !j ғ {A_S[{*u 4QqT RRS Ё RҦ(3@sh9H5c,A"R] R0cq!T@tQHIC )*4 @C  @  @ H@ h@)iI 0 - R*{è[AS¨_S[{!`@h@HN@4t@@RRR`R57 66R?kT R_RS[c{h@*wSR4 QqTCy@R@-49m @S ix69 lq2q `TqT,49l Ru4BqaTB S?%qhTQ ~ S?eqhT^Q S?eqQITh4HR9RkS aQ? jTqRlѵl49 kTjl@lt9lRqU5> KB S?%qhTQ ~ S?eqhT^Q S?eqQIT1@TkT kT k KziTR" Rh@7* 9lh49kTs/7@9y4 @HC yIi@ih@(R1**HS4]HRw7@964 @HC yIi@ih@(R4 @HC yIi@ih@(W6K@94 @HC yIi@ih@(*{è@cB[ASĨ_S[c{@*uS!Ro4 QqTC@R3@y( @%@x*R@52qhQR jT@%@xzrRTqTqbThQp R k Tq TqbThQgq TqbThQa%q# T%qbTh%Q['qc T'qbTh'QU)q T)qbTh)QO+q T+qbTh+QI-q# T-qbTh-QC1qcT1qbTh1Q=3qT3qbTh3Q75qT5qbTh5Q1B9q#Tj9qbThB9Q+B;qcTj;qbThB;Q% KqTqbThQp R k Tq TqbThQgq TqbThQa%q# T%qbTh%Q['qc T'qbTh'QU)q T)qbTh)QO+q T+qbTh+QI-q# T-qbTh-QC1qcT1qbTh1Q=3qT3qbTh3Q75qT5qbTh5Q1B9q#Tj9qbThB9Q+B;qcTj;qbThB;Q% {_{4 {_S[c{** 1T(R,7Ek"Th~@F8@ {w)#*@96*{w)#*@97(R***(Rw{¨@@cB[ASĨ_S {**T(R *C ?5 ?s @Ti~@*F)@yj +! Rj@9H h9{¨ @S¨_֊{yR4@;{_S[ck#{*H@8F@{w )# ;@9)qT(@92(@9jR (9b T9?iqT?5qTi9<bT9)qTIRH(i90 S"RC ?@4@4{w )#  R*@9_j@TC9_)q`TRh9{w)# *9C9)q`TaTHR "R*C9 )qT ҨRh9sCT {w)# *@907H2(9HRh9s`K{¨#@kCcB[ASŨ_S[ck#{*H@8F@{w )# ;@@y)qT(@92(@9jR (9 T@y?iq T ?5qTiyEbT@y)qTIRHiy9 SBRC ?`4@(4{w )#  R*@9_j#@y`T)qTR'yiy{wC9*# I9{wO9+# i9{w)# HR(9)q`TaTHR "R!*#@y )qT ҨRhys #T {w)# *@907H2(9HRhys h A yS{¨#@kCcB[ASŨ_S[ck#{*`5Rc~@5F@zt "I9) 4 i9i79h)S,R 8)5iq`XTh_8(8H4m9hS 858HR;h kaTsB,H@9 R j`TM9k qTzti9k"I9 qTzti9k"I9sA, K}@"R*sK**R R5 ?ztkxS"Ri@9* HRI*i9{#@kCcB[ASŨ_S[c{** 1T(R47Ek"Th~@F8@ {w)#*@96kTR*{w)#*@97(R*****(Rk{¨@@cB[ASĨ_S[ck#{* 1U|@T(Rv!7Ek T~@:F@I{y ' K@96kTv~RU4+7!H@[9qT q!T6emR(*7~SqR41WRJR"R*H{y # I{y ' RH@9 jTH9)q@z Th9(RH{yKRsQ # +94H{y # *9_)q@z THRj9H{ysQq # +9TH{y # *9_)q@z ThRj9H{ysQ # +9*4H{y # *9 6@ ? 4(RC9 qT(@ c~S ?5 ?@\B)4 C9(@ s* ?@q UzT@ H{y # *9 6~@ q T@A *g*AC@9"AӨ4 T*@y_iqT_5qAT(  T@y)qTJRH  jyh ? TH{y # I@9(2H9h A4yS* ?qAT(R@RqaTRn@* R}(R@{Ĩ#@kCcB[ASŨ_S[c{ C ?@y4/@h@ R @q*1E4k48 Ҁ@ TT@967? 4hF{hi@*!_I@9H9sQV5{Ȩ@cB[ASĨ_S[ck#{8R: ;R~@Fzh@3! i@* _Th@92h9*{94q`T`@ (?T?R4u qTh@92 qTh@92h@9z2h9 Gi(yvq T{#@kCcB[ASŨ_{R RR5e3RR *{A_S{`jt`j4s"CT R{S_S { T|)E3 R ?``44ER?R{ @S¨_{" Eh! R ? 5h ?I*{A_S[ck#{A|@I{y;@ji -ʚ` T`  T 3h +k{F@zt;ՓT45ytRH?i(?\qT! 4a @4i(R? ȿ; H_S 5;Ոh?3+AaT@hA@  ?@ RIi K,ɚI  *ȿ;@@i RJ KI-ʚ  +ȿ;{è#@kCcB[ASŨ_S{1 A CRl3haA?`?{S_ %{  CRQhaA?`? R{A_S[ck#{C *! *C R*.9haA?;@*** ? Rh *** ?C{#@kCcB[ASŨ_S{a  C `RhaA?`?ha ?{S_S{  *C RhaA?*?h * ?{S_S{ ! *C RhaA?*?h * ?{S_S {a * C R5haA?*?h * ?{ @S¨_S[{* * C @RUhaA?**?hA * ?{[AS¨_S[ck#{Ca * *C R*V9haA?;@*** ? Rh! *** ?C{#@kCcB[ASŨ_S { * C R"4haA?*?{ @S¨_* @HAL_ 샌)K? T R_S {S5Ai5t`@`T?T R{ @S¨_S[{RR sROkTG sI(@;5 S4Gs81`TG s jHa ?֨GsG3@sR *{¨[AS¨_S{ @j@h@ @))@;(5 S4( qaT?rAT X6h @ @95h@@ @;(S4h@@1Tj@H@ Ih@  @{{¨S_S[{ @ G(ᏹvTh@@ @;(5 SH4( qaT?rTX7H@ Is" @@@c#'+/@C@ {ƨ[AS¨_{SC9Cc#R) R)sGC@9@q@ {Ĩ_S{i@;( q!T?rTh.@ Kkq-Ta@*nk TjRI_)2I5; h@; S4jRI_)yI5;R{S_{R`5h@;- S4`5R{A_ R{h@;5 S4h@;S4`@jR (I_) I5;~{A_{R C@h  R {¨A_|P;_S[{G)ᏹa( ѶT@Sh@;5 S(5kRh_ 2i 5;7h*7} =f_h  _RR_jRI_)2I5;^{[AS¨_S {C @y yA ,@x?qT5R?q`T?qT?q!T3`RR*3!RJR RRRR)RDRREҨ@y** 4MqTTq TqTqTq@T9qTIqa T5s2s2=rTs22'R4f5&R37j3305s2/Rq$QqTqTqTqTq TqTr`Ts2rTs2 5Jy5J2.RqraTs2s`6 Rs2)R?q  5 q@y.@xqT5@yH4RR @ @{¨ @S¨_ֈ b 5(@y(-@xqTq!T4 @y.@xqTZ5h2IAQ5h2  H`5h2jixqT H-@xqT5c9S {*&#@9h5@0R*C$5HO@ IjRI_) *I5;@~h{è @S¨_S{ @h@@ |@*F)@ yj)! *@96:*(R@*{¨S_{1T(R7EkT |@*F)@yj )! *@9J6S)Ccs(RV{è_S {*oaTR@qaTH!C97 qATHB96 R_@R\T*Xh! ?5h ?**~@ F @(yk I! ?94*?R{ @S¨_hA {CH@  @@{¨_S {hT(hE R ?`h.`494ER?(R{ @S¨_{A #RC {¨_{A #RC{¨_S { 95 yKC@*R( @ kaT7 q (@s@9hy R@9H4 @HC yI-@9c 4@# @qTkKT @!Ra@5( @(T94 @@#R @!RO5HRR{è @S¨_ҡS {#y @TSR7sh{@TRNR+c@)R @ kT#@ycGS`qmT|@@#@yqT@TRmHR@R@94@HC yI{Ĩ @S¨_tu9S(Rh*S#RCR4@5S`Rh ?qT@TR;HR@Rc<SS{ @@ @*E@I_)I5;`@{¨S_S{ @h@@`J@`J@CT T@H5J@{¨S_S{ @@ @@!@@@`@{¨S_S{ @@ @ E@_Q 5;5A@T:`@{¨S_{cR#c#RR)+R'R (/h A%@C @AK@(E@iRIyy@ y@pC{Ũ_{{A_{RRRR) @hA%?T @8@@-@@1@@5@@%@@)@@=@@A@@AScCssC:{Ĩ_S{J@SCJ@T T@H5Js{S_S {h ?*B1 TTB`4y XB}5B>pha * ?{ @S¨_S{B1T@TB4y #BҰH5Bҧ ;{S_֧S {h ?*B1 TqTB`4y B{v5Brha * ?{ @S¨_{01aTRR R{_{`B1T h R{A_{Ci@?TI C?jaT`{A_{Di@?TI C?jaT `{A_S[ck#{CK@9qS* .(T.HR@R@HtaT@*R* `49 R-  R*iSKA 9 9Rh9@sRIS6y_)LRT{9@@8(Rh9ws t5R@}@ @(9(9@ @IRҟqmT@ +@h%š =S+j=S_qiTH =SHQj9=s!DӔQ6b7@S4kRl9S Q? jaT{8Tq@T i9h8h8qT*R/sB49RqHkSk Ai9@l Ht ?*?hRh9_9 T }H ɚ  9 aT_ T H ɚ  i9k D J TIH ɚ  i9kH i99R@94@HC yIC{è#@kCcB[ASŨ_S[{*  `@_C1CS*@[@*Cqqן  H y`49 +@RC***{¨@[ASè_S[ck{*qhŸ %)wS*ST"HR@R{èkCcB[ASĨ_C64@q*qmTH9 h4(85(  @@RqaT9q Th9@h9(}@ @*9j8@ 33 Hi"12 5` w4Rh9@ 9?q T@ Qm6 Kz9qkT}( `h 9+}l}K R h 9)qkT}( `h9+}l}K  h9 Kh9 h9? qT9qTb^@94 @HC yIRR҆ QgfffS[c{C*Ss@Rw4HQkT@q**H_i388@qTRh9s@q,T5@ 9(R?q@TR4h4t h9h4(85(tx9t(qT9h4(85(@}@ @*99@6Kq VzԢt4h9h4(85(`4~@R@94 @HC yIR{ècB[ASè_S[c{@*C?}C*S*@c@*C*q@3Q H`49@ Q?1$UzT kTh8587@$RC*\ 7@&RC***{¨@cB[ASĨ_{)S(*T9R{_4R98@TcшS R-ySNQo/ ,yk9 h4H85H 臟  + /yk`5RRқS_{@W< *@K%ךs=S5"q7*5@h @*%ךL=S!qiT RT(!ך * _@TqTK @*%ךKS)L` qT34@qTs4@HR{_AS¨_S[{C*uR0RwT+qTQ qRHT&RG7@tT@aT R   aTRs(*K`2S*]SD 2[@{qlTQyrTqTq+@ * *  :qTqT+@ **  +@} *#@**q'@   ˁA`49+@R*_ +@ * *  C{¨[AS¨_{S[EC@<S;1 S 5j1@Td1T`*]h~@ Fhyl @ I!  (9 S?q TM1@TI1TE*Bh~@ Fhyl @ I!  (96*#z5@RqT#8!1T@sk TR@ Q6*<S@y@* *C@[BSA{Ĩ_(@ Q)I6T(@9)@S**_֨@)C @? _{@R`T RTj`5R R{A_S{Sh4 RTA@RTaHO Ij@;R_jTjRKPRI_) *I5;Ո@Қ@ RhrhIRhii"h R@R{S_{S4h@;% S4ijR PI_) I5;"~{A_{qA5R A{@_T {_S {sR*R#U{@TC@@**!R]5RQ@94 @HC yI{è @S¨_qAH5S {CsR#{@TRY@@c@**"Rc1 5RQ@94 @HC yI{è @S¨_S[{Rh~@QRR[ 4Is:q  T RRR{[AS¨_֨ |@  ! jI(S[{I4hasQ`R ?I Q 35 R{@[ASè_ |@  ! jI!(S[c{C*q**Ta~@տk***!C{cB[ASè_{<SR#y kaTR%c#@yqTh& @ ykx6@@ik8S@ @%RK#RC R `5#@y'@y@94@HC yI{Ĩ_S{3R{S_h@;5 S(4h@;1 S5h@;SjR4I_)2I5;I_)2I5;h@; R jaTwh@h)b"@a@`qTq RR+jRI_) *I5;h@;rT1`T 1T*~@) F @)yk H% ( @9IR  qTjRI_)2I5;h"@qaTh@;S4h@;!Sh5Rh"h@j@ QiH@@9hbT_S[{*4h@94` @9~N95h@hh@94` @9@R` qqh9i 5h @yR!R*|@5h ?@%i@ iTh@94` @t9ӿR` qqh9i5d @ *!R*|@i(hR{[AS¨_S {*4h@94` @F9~R@y5h@hh@94` @:9 ҅R` qqh9i5h @9RR*n|@5h ?֍@'i@ iTh@94` @9ZR` qqh9i@5d @ *R*F|@i(hR{@ @S¨_S[ck#{vR1Rq@HSRRCC9G9K9@i*t5Ȏ@hWB(C( C탉 ҭj@H9 h4(85(  T" WB T˂@H9h4(85(I!@5@wk4"TR{ *C@qTl*{Ĩ#@kCcB[ASŨ_RS[c{9h4(85(4 TR{@cB[ASĨ_!5 5i@?T`@Ҁ`$i@ (iC  T0 @R* `" i i@5h@ !iRRk{S[c#޽ X 9Q S?qhTi&Ț7T 9?qATTy(Q S?qTh&Țh6)R R?qKc9/@)R @ k!Tc@94@HC yI"Rqc@954@HC yI"R4@HC yIRC@RqRH R ?T1*^&@)7C39@)R @ k!T@94@HC yI"R1@954@HC yI"R4@HC yIR3+@q9qT9h4qaT94*35A9h4KH  ?֠5"@  +C T%@ aRA9h43Ha  ?cB9h4C@** #@cC[BSA{Ũ_ 4S {*h@9H49~8@y5h@hh@9H49HR@R9+h @9RR*C |@)H ?b@h@?Td @*R*-|@I(hR{ @S¨_{S HA T|@Ӣ RC ?5H ?4R)SS##9%@)R @ k!Tc@94@HC yI"Rgc@954@HC yI"R4@HC yIRC{#@ SA{¨_S[{ @@ @*E@Aa'@ " RR" R R@ @*E@Le@%h% Th}T@ @*@H_QH 5;(5@ @ @A@TO@ @@*@hE@H@*@KE@i_)i5;@{¨[AS¨_qTq`TqThA q h h h _{*CҎ?  1T(R( I( 1!T(R( I( ?*1T(R( @ @@94 @HC yI*{èA_S{b" RR AhaB) R ˟His8)Qh85fhe  Rhii8JQ(85{S_{ û`@(Rk TH! C ? 4R(8qT R[@99[4*@9qTI(8 kiT(-@85e@R  R!Rg@ RaA R R҉g@ RaA R@Rof,R R%@x6iB,Kig8(a@92(a9 6iB,Kif8(a@92(a9 RKi/8JQ5  R RhQeqTh}QjB(nSIa@9(2Ha9 hQeq(Th}QjB(Ia@9(2iHa9.SRh e9kQ5O @{¨_S[{*6SS*%@*E@ @ kaTREҏ@ERE@v**1TR-*{Ĩ[AS¨_V5@ E@H_QH 5;5@E@(A@T(R@E@I*C_jT'RR)ScCqV4@ @IS {CI?jTJ@hF@R(F@@Th_Qh 5;5A`T@Fi_)i5;ՠR4{ @S¨_;S{Јh9h5'(Ah )Ah&V@cB!R](R(9 R{S_{ '{_{S[Cv*4! R U}@Ө~ iv?k@ TJ_q#TRk@ TH Ȁ>S ?ր4(RkaTh:y pH! * ?֠4ub" RR@t qT@9(4(@94+@9kHT Kj Jj8kQ2J*8Jk5(-@8(5)R)Ji8?q2J)8cT`@)R` Ri J59wb" RROA! ҎRB2 j@9j4h@9(4_kTMqBTJm8Jig8(*J-8h@9_kTj-@85Q5(Rt)* `l2R*kQJyhx%xk5 RC@[BSA{Ĩ_S {*C**e@jS* e@9?jaT4@@ jx*  Rj5R R@94 @HC yI{è @S¨_*҃RRRkTRK%qTTR(%h7qaTRӚRkT(՛RkiTh֛RkTRk`T(RkAT!H RKqR釟kHTRK%qTTRH%7qӚRkT(՛RkITh֛Rk)TRkT(Rk`T!xR?q?qi4GHA S[{Ha ?U@y4 =h4(-x5( A*k h@y5h 7A*RRR|@**RR`4JH  ?{@[ASè_S {Ha ?t#@y4 =h4(-x5( A*k h@y5h 5AjsPH  ?{ @S¨_S[ck#{*RR!V`Tt@9@Tst4@+ t@@ATdt4 ҥ`t@T@H қ@t@ @5@ i8?q$@z`T@Cu@(zuz5zu(@((@hҕҖz54ˡ ?#T?T҂}t49h4(854ˀ !GuR `5 *_q_8z5HR[ XRRP*{#@kCcB[ASŨ_RҴS[ck{*RR &V`TT@@y(@TT@4y T@(@ATT4h @(T@4 @T@A@5@ yyx?q$@z`T@C˕@Hzux5zu(@((@hT z54ˡ ?T?TҺ }TW4yh4(-x5(A A}uR 5(H q?x  ? 5*HR @  @RR*{¨kCcB[ASĨ_RS[{{[AS¨_h@ H@) 4Ti@(9 h4H85U ˠ!&j3Ojs b@5i@ERүS[{{[AS¨_h@ H@) ti@(y h4H-x5H AAj3js b@O5i@ Rts{ 1@*@K @7C@Rq@T R{¨_S[c{ ҷs @tTuWRRR[ RR\8x"828B8R8*I *9?qcT!TҾ{cB[ASè_S[{@t THa?ֵ"aT{[AS¨_S[c{* @qcT*(R R{¨cB[ASè_RRҿ E k+TzsH z3RR*E s  |@*F)@yj ! Ki(S[c{*7EkbTh~@6F@zu "*@_TqT34qT qaT`@ H  ?zuR"4(R{cB[ASè_ |@*F)@yj ! Ki!(S[c{RTRqTs6!3HE IufS*~@ F +yj(Rh9R^*{¨cB[ASè_@T@9H6H ?ֈ@9(6H! ?ֵ@"  ɚ ~@ F  @ Hyli! (R(9Hyli! -sS[{*S7EkTh~@5F@zt "I@96H@ T:qT34qT qaT`@ H  ?֨zt R"*,(R{@[ASè_{1T(R 7EkT |@*F)@yj +! i@9i6`@(R{_֪H J RRq(H _S{A%`@@@TS`@@@TN`@@@TI`@@@TD`@@@T?`"@"@@T:`&@&@@T5`6@6@@T0`:@:@@T+`>@>@@T&`B@B@@T!`F@F@@T`J@J@@T{S_S{A%`@@@T`@@@T` @ @@T`.@.@@T`2@2@@T{S_S {(@ҟ @sT{ @S¨_{```BA``@`@`@``b`B`A`B `RA`VA`ZA`^A{A_bRII @y 4(@y_kT!) @y(@y K_{S[ck+y****t5H@ @q)R(R!R***v5R;~@ A? T<LT|Dks/sRRhsBRe**!R*v`4HA ** ?*Rh_R kaT`B7Hc@94J@HC yI*_!+@kDcC[BSA{ƨ_ @I_)I5; p@I_)I5; x@I_)I5; t@I_)I5; @I_)I5;Ո ! RH_ TL@_)5;H^L__)5;JkQk5@US[{i~@iA%?Thr@@h5`z@@5`~@r`v@@5`~@`r@`~@h@@5h@Ѿh@ѻh@Ѹ`@`@2!vtR_T@@5@^_@H5"Q5{@[ASè_֠H2 T pH_H 5;*_{sH2Th^A;Ո5t{A_֠H2 T pH_QH 5;*_ @I_)QI5; p@I_)QI5; x@I_)QI5; t@I_)QI5; @I_)QI5;Ո ! RH_ TL@_)Q5;H^L__)Q5;JkQk5@_S{CI?j`TJ@SRQCB Rp{S_xS{@aTt@5 `T{S_S[{U ՚TpR]ҵ~jnUTRز{[AS¨_{H ?֨ {_֨  R_S[{@TWv@bA??S4sBT`TTs"h_u@bA?R?sBh"TR R{@[ASè_S[{TVu_bA?R?sBT R{[AS¨_֨_S{SHaA?`?`4 RR{S_{R @+HE*S-˚R{A_S{ @t @+HE*T-˚`@{¨S_qTq T<q`TTqTXq`T(! (a((_{SCcChRiR){¨_ֈ(_S[c{*R3RC9"q,T`T qTqTq T$.q@T>qTVQqT*!5{è@@cB[ASĨ_֩@H E*(@kT)A? aT YR7!RC9s4`R@4(@ V-˚`T.qT"R%6@"qT@R"qTH E@  KiEH _T_JA(@s4`RaTR"qaTHaA?a@R?HaA?*?֟.qhT"R%6"qTs4`R`R{1T(R7EkT |@*F)@yj )! *@9@(RR{_S[c{Uh7RtR }H 6}~@|iw 4`6Qk-T |"(ih7qT }|JH ihR{cB[ASè_S{ @h@@ |@*F)@ yj)! *@9 6vH ?`4R H ?*(R@*{¨S_{1Tw(R7EkT |@*F)@yj )! *@9J6S)Ccs[(R{è_{S[ck+*~@:F@H{y xC"3" (@/hC"I(! ?# C@RR @'T~@)F+R{9_ k8R T+yh R h-"*94qKT@q TH{y"*@9 8. K6Tch"c *,i8kQH85 Rq-Tch8I J_k)8kT H{yQ  &k_9M5cHRq)R8@:`TQi@98(kTq*RIRX@#C&Ts6*I{y & l@9qT& j9B 9hR 9h99_j9HS x6@v TB1T"1 T#@ҥR*RsK* 4H/@ s* ? 43@@jK@T k T+qTR3yH s"Rc ? 4@4@@TF'@@RT H{y Ji8 )&j9}@_ T ! RmT H{y"+ Ji8j9}@_ TH{y " *9J{y* h@92h9H ? @CB94?@HC yI@*+@kDcC[BSA{ƨ_{S[q/(ҋs/ |@ *F)@yj RtB")! 7@TccRc1bTi9s?)qT 9! 8 TK H C*c ?@4@)@ ?kCTTH ? @@/(s/6@[BSA{Ĩ_{S[$/(>s/ |@ *F)@yj RtB")! 6@%cRтc1bTi@ys ?)qT y! %x Tc  AH CzSc ?@4@)@ ?kCTcTH ? @@/(s/[BSA{è_{S[ck+ծO(s/ |@*F)@yj vB")!  9@"THcR*cBTi@ys ?)qaTy %x T AҥR#cR R*4R4#A4ȢKC?@4@ kTiKTH ?@ @O(s/+@kDcC[BSA{ƨ_S[c{** 1T(R,7Ek"Th~@F8@ {w)#*@96*{w)#*@97(R****3*(R{¨@@cB[ASĨ_{S[ck+/**43R~@;F@h{z "T9 S?qHTU7H@9(6BR*8*4h{z"*9*6zH@ @h{z"*9*4h{z"H @ ?4T4qBz TyB5 RRT&@x*" k!T* *q!TR<S5qT)T( ? @C2**h{z"I964qT q!T** ****8@@ ( * ?5( ?3(@) @HI @@h5@4qT6(R)Rd bh{z"*@906h9iq T&RUKRz+@kDcC[BSA{ƨ_bR@8+@8HQeqIhQLieqhK5l4BB_{qA5R A{@_T{_S {RT{@TsRC@ @@8 ij8@8ij8 K5i4s@94 @HC yI{è @S¨_S {SRpR{¨ @S¨_ue4trAT****C*@44i*F)@ yj*! I@9(H9`@T4u*S[ck{*~@*F9)@yj *)! *96uj!TC5@ jATs2i ?@q:RXRT(A@Qyr`T(@QyrT(AQyrT9 3*(`Rh  qT99 r T9 07@ R RR kT R kT R k! T @ 4 qTq Tq! T3R4bRC*q`Az1T@qT qTkaT9*BR*R*T@7~S=R kT RߟR k!TRA*`T9R*z`TS49RqT qTߟRSRsR4RC4bK*1T k TR{¨kCcB[ASĨ_Rҫ@S[{*9r**R TqT q Tw 6 r`TRRR h?qT?yr`T?qT?qT? qTIRRiR?qT?q T?q TRh@ R)Ri BqTqTqTqTqT>  R khRHR(RR Rh)86h92h9x7HjTC5@!@qTh9a2h9@6IJ(** j87(RhT06h@j@ 2ii@H2h*2j`6h@ 2ih6h@ 2i(6h@ 2 6h@ 2i{¨@[ASè_R @S{*i~@*F yj)@)!  R+@9jaTK86BRT @ qT@"R#yC*h#@yq ZzT*O1TR*@TR{¨S_S[ck#{****?@H%@cJ @1h%j T@&1!TR(RG@+RF)Ks* C@[#*E*(A  ?kE) D)T7@ R( kT6(A 6y E*#* ?aT *Fyj)@*! I@9(+iH9(?n@(  ?`5( ?*` *F)@yj*! I@9(H9)(! ?5pRqTc92 qTc92c9@hЈ Ҹ2*Fc9yj)@)!  89KFykI@)! ?936@*4@*gc@C9H%@J @C*h%j @*u4*}@Щ F @(yk C9K! i9KFykI@,! @9(ASJ*S R h J9 jTs6 *Fyj)@+! i@9(2h9 R kT6(!  ?(A z D)E*# ?aT( ? *Fyj)@+! i@9(h9@  *Fyj)@)! R{Ȩ#@kCcB[ASŨ_***%R{*ChqT@@ sx R@94 @HC yI{èA_{Cg T@R kR)Siy{¨A_S[ck#{@6yҚRh9h5"h9h5Bh 9q"C: T`@kTIT A@QR)J*yR U3.xy UA ҟybHR{¨#@kCcB[ASŨ_uҖh9h5"h9h5Bh 9q @TAT{_ .a59?`raT9?PrT* R?<rTR(KqTJ R?( rATkTj R ( a2i 8!|Slh*9@__ HR{_S {**5h9qෟ& @5h9qTTiU4(9(8qT5h_8 RqTh9qTq RaT qTh9qTq R@TR{ @S¨_S[{RRDa_q9H ?)TSRRq*3R@v9u9h4R8BQ_q T97@**SH4(969(8qT(9h9qT@  jH9 h4(85( a&R{[AS¨_S[C@H4'@4 QQ 5*@_qT@C[AS¨_5@J5> ( q藟 C[AS¨_ ҟ1T }@  xiK N>h ΚQ }@ 1Th` )q(RKRh C[AS¨_ kT K k *Th}@ H}@.xi xikTJQ_ kkQTBT 4Q .xjQ 5xj(R RZJK S?qTRK4&!.*"qT Q +xjh%*ҥQ% 7}@Ӧ kT|@ xiRQI xiQ  xj4@%֚! q(!ԚOT Q  xjh%  *@C> Ú@Ƚ }@өT` %@@?T~@ӯ}@j}@ _Ti ? J )T R'4}@ *xiH-* `  xl_ kH Kk%x,k#TA$IT R4Ҩ }@ H xl+xhk(A+  x,O`ӃT*}@QQe6@ *_kTH}@ x)@J_kCT 4kQi xij5 k5C[AS¨_C[AS¨_{S[ck+ͧ,*c @7R}qaT9c 9@RRRR( it)@`T+@6h?Th@aT(R   aTRhs(*Kh2qT qT q`TqTh!53Rhhh@5Rh@g t)R_)@9 @3(RLRJ)T dl`* )ZR x(Kyrq)RHR+KqcT3XRR, 4 R33YjYj kA TJ_ qATQQ }S'RK)(!ƚQ3hQ(Yh*RR%* ZHIK K S_qZ ?q T k藟  6 qHTQQkT K Q kT3NYhR? kT3YiR  %(!J*3jY,Qk`TK@O@R43?Y( kTO@KRKRQQ }S'RK)(!ƚQ3hQ(Yh*RR%* ZHIK K S_qZ ?q T k藟  6 qHTQQkT K Q kT3NYhR? kT3YiR  %(!J*3jY,Qk`TK@O@R43?Y( kTO@KRKq Ts%XRR[ c 4 Rs%3YjYj kTJ_ qATZ(RIKR K S_qZ ? q'V qTRKQ?1T(Q? kT3JYi R kT3hYhRHy3hY))Q?1`TK@O@KȆRKt~S~~Rh)R)!*IY4}~s_0hT6q Z*RHIKR K S_qZ ?q'V qTRKQ?1T(Q? kT3JYi R kT3hYhRH}3hY))Q?1`TK@O@KR9RFBBHU!7~`YS4iR?q Q)=3 Rt @9u@9~ӈ +i@yh~ @ KC?qTC5RqTw4 R RsYk} A)Y+kkI`!T4BqTsIY(BBR RqT *@"}~_0sT9RnHR)BB34q T 4 R RsYk} A)Y+kkI`!T?k'?ksc1?ksb1?k$1qRR4fXn5kT?Y.1R*Re4qTkTY- LXg+Xmk} A/=*A+  )X-7@ET/4q TkTY-HYm A/IY-/`E/5q TkT*}~_0sT9R|HRBB)R4 @I9K5@HS uS* Z  K4h!iQ Yi 4_qT4 R R sYk} A)Y+kkI`!T)4BqTsIY(B"4 R R3M҈Yk} A)Y+kkI`!T)!4K@qT3IY(K@KKH`Sw4IRq Q)=3 Rt @9u@9~ӈ i@yH~ @ ?C?qTC5RKq`TV4 R R3Yk} A)Y+kkI`!Ti4K@qT3IY(K@KO@RKRqT *K3@"}~_03T 9RbHRgI)S4q T 4 R R3Yk} A)Y+kkI`!T?k'?k3c1?k3b1?k$1qRR4fXn5kTY.2R*R4qTkTY- LXg+Xmk| A+, *A/  )X-7@ETO4q@ TkTY-iYm}@ A)jY-O`E5q TkTK~~_03T9RqHRK@O@(RH4 @IK5S uS* X K K4h!iQ Yi4_qT4 R R 3Yk} A)Y+kkI`!TI4K@q"T3IY(K@KK@KK93c#<@(qT)RBi9s4 R RsNҨYk} A)Y+k kI`!T)4BqTsIY(B9sz5Qh9s@@7_k  #@ ?A*H}@)145TK@ N4 R R3 XYk} A)Y+kkI`!T)4K@qT3IY(K@KK93Ac#K@ R*Kq9h} k `ӊ}SHuS L k KjH}STqhJ-8Q1T9%)(T@99q@9h4c*,+@kDcC[BSA{ƨ_Rʚ;S {sR@ RR{ @S¨_ֿSTRwRTSR*{ {_S {C9ch@;r Th.@R Khhi"@q*QjMTa@**i@kC9(9"qIT |@*F)@yj +! h  h@9/6BR5TjRI_)2I5; R"RCq{¨ @S¨_S {#yh@;r Th.@R Kh hi"@q* QjMTa@*b*i@k#@y(y"qIT |@*F)@yj +! h  h@9/6BRTjRI_)2I5; RBRC<q{¨ @S¨_{@; Sh4 R"@;rT$@ @T@;(T( #RC ?ր4(A c ?֠4#A?R{¨A_S{*h@;rT!(RjRI_)2I5;Gh@;1 SH4HRjRI_)2I5h@;6jRSh4h@hI_)yI5;jRI_)2I5;jRI_)yI5;h@; R jTvSh5S5jRI_)2I5I_)2I5{S_S{*Jh@;rT(RjRI_)2I5;RGh@;1 SH4HRjRI_)2I5h@;6KjRSh4h@hI_)yI5;jRI_)2I5;jRI_)yI5;h@; R jTSh5P>SS5jRI_)2I5I_)2I5>{S_S[c{C*q**T~@*qTa~@*44***kh} y* HRC{cB[ASè_{S[ck+C*Aq***Ta~@*1TqT~@*1kTw5@ @S45k@TqTq,T(! A#* ? 4qMTH @ qTH;@9J;H4K@9 4@9H@9?k*!Kz TH-@85`RqMTH @ qTH;@9J;H4K@9 4)@9H@9?k*!KzTH-@85 R|R*!R*n*X4 A? RT<LT|D:s/CtzRBT **!R*I@4R*!R*A*64~ A? T<LT|Ds/CsRNRhsBҳ**!R*4@@****R3h_R kT`BR_R kaTB*@RR_C+@kDcC[BSA{ƨ_S[c{C****!****c@94 @HC yI{è@cB[ASĨ_{jHO! If`ҏh@jRI_)2I5;R I_)2I5;hrhHRh"h@h{A_{S[ck+YRU+@kDcC[BSA{ƨ_vY?T(ci# 7 ֚*_!HTTTbA? ?qt”TTH9kщi8i*8I8kT@HA}bAt? ?qT_Tjh8I9H9i8LbA? ?qT_TLH9kщi8i*8I8kbA? ?qTTH9kщi8i*8I8kTBTbA? ?qT (TbA? ?qT;˿)ThcA? ?qTTTlH9kщi8i*8I8k7 @TIT(aA? ?4 ; ThcA? ?4 @ W@ T_Twk{#7T9Txk{#_bT,7kѵ"W{# +@x@#{AR c9"9RR{_LTi8h84)щ i8h84)iJJJ9iT8 R9HR@R{ R }@?BT?i*8qKT)@9i4-R+C( iil8!H *)@8hi,8)5 @9i4+R( )Cj!(il8_jT @8)5{_֔S{RSSTCe@ @h5` kkџ Th@9 e@9I7h @j @@94 @HC yI{èS_{S[ck+CC*Eq***Ta~@ kw5@ @Hs@*R)RRqA***x5R A? RT<LT|Dӫs/CtRB **!R* 4R**/*U 49P66 4kTD@****u59~ A? T<LT|Dks/CsRRhsB***4*R*5RҎ*5h_R kaT`B8R_R kaTB0*_CC +@kDcC[BSA{ƨ_D@*h_R kT`BS[c{C****x@****#@94@HC yIC{è@cB[ASĨ_{&Sq{_S[{ SC9R;9D@)R @ k!T@94 @HC yI"R@954 @HC yI"R4 @HC yIR 5 @)R @ k!T#A94@HC yI"Rb#A954@HC yI"R4@HC yIRC`5 3@K@ ?A93@*A93@Ru4B9h4K@}*{˨[AS¨_{ R h E (! R ?{_S[{$VHTvE R ?ր4 4ER?֠R{[AS¨_{#y4S!RC`4#@yR{¨_S[c{"R*/*BR* T TMT!RR*@ R*"*1TRs *mT@1Tw@qT}Rz@!*RR*@T*G ? 5aR ( ?*OW@R**{cB[ASè_{ChA)j -?.?(G?g [H @y5@987OqQh qaTLR h qaTlRhqTRR)R K(! Q+  * L@9 SK@ S? qAzT kT 8qaT  * T? T)KKL y SI yRhKqiTADq"TR R(R) (yhkTOq__HRC9{_{*Ax   jTRR9`RR0`-R{A_{``R{A_{`@`@IC @5@h@ kT@Rh@ k@T R{¨A_{ C5 @C@h(25R R{¨A_f )L T@`T %RR#RH/&RaR;@TERRCR X X Tn`t \8pp \ \ \+qf }`r;g;{y*sz | \8 yOT \RX yBXu+qR }yK]Yg^`g^;"Tz \gR1:p.fRn2\ 2lȵm}\l ~\b(-Lgt+KiQ}@8b HAu rymH :uP\VQU\q\st\KT7 yBUymFW\t wfY*u_VX }yc]Rg^`K^_ V]4x?Q#Ib?ƺ??^?AG;BIb?WUUUUU?B.?_D; R J}S rTPq T`qTpq `R R@RRr R_qRqR**qKRI*q**} SK * j *K*`*_(D;*r R_qRqOR**qJ*}SK * j *@ *_rTq TqT q  D; }@(X+Sjq Iq q *q @Iq * qI)* H D_`? r(D; X S KqjqHK qiq *I)D_`(94Th85_{s`DTH (A RdRbRR ?`{A_hD T! _S[{wD ** ?*5 ?qTD T! ?H (A RdRbRR ? * ?**{@[ASè_|S H2rKh2rjH2rKh2rjH 2rK rTPq T`qTpqTk2k2k2rh2`_*RjRTSH2rKh2rjH2rKh2r`L86 2_(D;}@(D{, *D; R J*,**  N*k T mSH2rKh2rjH2rKh2rjH2 rKrTq TqT qTk 2k 2k 2h2rRj @*DՋ{_S {*6@6 Ҥsz6H6@Ҟsz 6P6Ҙsz6X6u 6ґsz 6`6Ҍszq{ @S¨_{S[c#'{yX (@`****bpg*5 qT@iR;(3#C**)S(44@mm@Ac`5*&@*"@5@F'@#@cC[BSA{Ũ_Mg_RS[c{  @** @? 6 @H@ 2I6 @H@ 2I6 @TH@ 2I6 @H@ 2I6 @H@ 2Ih@ @ HӨ @)*iJ*, J h@ @ I @)*iJ*, J h@ @ JӨ @ )*iJ*, J h@ @ K @)*iJ*, J h@ @ LӨ @)*h3 6 @H @ 2I 6 @H @ 2I 6 @H @ 2I 6 @H @ 2I 6 @H @ 2I h@  r`T_Pq`T_`qT_pq!T @H@ 2 *RJR @(@H3( @H@ uI @@ J*+-h J @H!@ 2I! @h!@V4 mi! @@P @ha@ 2ia @Ha@ mIa @@QQ)R( 3h! @@0 @Ha@ 2Ia @)Rha@( 3ha @@1)Z C"RR* ? @H @ 6h@ wiH @6h@ viH @6h@ uiH @6h@ tiH @6h@ siH@ r T?qT? qT? qTh@ j )h@(jhIh@ hi4PQ@Q)@{¨cB[ASè_ {qTQqTHR(R{_(D;}@ *D_D; R J!*-)|@|@  i D_(D; }@K+D_(D;}@_<@ R (I)@yL @y( a4 I@?@)TH@  ?@)Tk kJT_S{4`5R aˀ`R$@h* R{S_@yIR kaT<@ R (I@? kTH1@y R-q@TR_{h@ @+u(kj}@I*@!Ѱ R{_!594  |j7p= S %Ț N2 NI>N*`TIH>N )I87(}@` Hw }@H S %Ț 1 )>N*TH }@Ӏ IilA< N0:n>N1 N(>N }S(>N +j}SA*AV4 N|=   N4n1 Nr N,>NO>N 7 S)>NJ%ȚH>N-  (!Q qSJ%ɚOL ҆RkL ki _ kcTl>Nk>NJ86ki  K H <4n Nq NR N+>N/>NM>NL>N) (!ʚ * KډR) K HQ(!Ț * `TI  K(}@ H_954  |j7p= S %Ț N2 NI>N*`TIH>N )I87(}@` Hr }@H S %Ț 1 )>N*TH }@Ӏ IdlA< N0:n>N1 N(>N }S(>N +j}SA*AQh5N  | 73 Np= SJ%Ț NR N3nH>N1 N)>N.>N  , `TH>N *l _ k+T-T(}@` , }@( SI%Ț0  >N0   10.1 (>N  _ TTH }@ 3 NkAp< N3nNQ:n(>NHR NH>Nh H>N )(}@i H+Aj9_!k`__ BT@8!k`TBт_t3 @3.1 (>N ?qT(}@ _ @1gJ _A cT6 N_TpE@ir = mAn6n0=+A76nJT6n6nNN1N2:nH>N(_T_A#TpN_A"T_!Tp@3.1 (>N ?qT(}@` 53;nh>N(:n>Nh N  N :n>N N  N>Nh >N )(}@ 1 N(>Nh (>N )(}@i A J!k!h@8!k`TJъh__{(@@ {_a{@ @? k{_a{ ȨC@94( @c)ȱc*H@ kaTc( @?qTc(ȩ!@ kTc( !@ kTc(i!@ kTYc()3@R ձS?S ߈{A_a csm !"{ @ԡ {_a{@ @$ ՠ @ǡ {_a{ @@ {_a{`R  {_a{ @@ {_a{@@ {_a{@@ {_a{@[ {_a{R {_a{R {_a{@@ {_a{ @@9 {_a{R {_a{R {_a{R {_a{C@94`R {_a{@H4@@4i*Fh)@ yj*! I@9(H9`@ {_a{@ @R r? k{_a8_J_b_|_______`&`<`N`d`v```````~ene`eTeDeBa\araaaaaaabb"b0b:bRbjbbbbbbbbcc&c:cLc\cjcvccccccccdd"d.dBdRdddndzddddddd e e6eaa*ap5@P/@.@8/@F@p@B@@(@G@z@z@=@p@@@@ @ @ @ @ @@ @ @@ (@ 8@ B@D@P@X@\@`@d@h@l@p@x@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @(@8@P@`@x@@@@@@#@@`@ @@&@@@@@ @#D@P@ `@p@@@%@$@%(@+X@x@ @"@(@*(@H@ X@p@ B@@@@@@B@@@@@@P@@__based(__cdecl__pascal__stdcall__thiscall__fastcall__vectorcall__clrcall__eabi__swift_1__swift_2__ptr64__restrict__unalignedrestrict( new delete=>><<!==!=[]operator->*++---+&->*/%<<=>>=,()~^|&&||*=+=-=/=%=>>=<<=&=|=^=`vftable'`vbtable'`vcall'`typeof'`local static guard'`string'`vbase destructor'`vector deleting destructor'`default constructor closure'`scalar deleting destructor'`vector constructor iterator'`vector destructor iterator'`vector vbase constructor iterator'`virtual displacement map'`eh vector constructor iterator'`eh vector destructor iterator'`eh vector vbase constructor iterator'`copy constructor closure'`udt returning'`EH`RTTI`local vftable'`local vftable constructor closure' new[] delete[]`omni callsig'`placement delete closure'`placement delete[] closure'`managed vector constructor iterator'`managed vector destructor iterator'`eh vector copy constructor iterator'`eh vector vbase copy constructor iterator'`dynamic initializer for '`dynamic atexit destructor for '`vector copy constructor iterator'`vector vbase copy constructor iterator'`managed vector copy constructor iterator'`local static thread guard'operator "" operator co_awaitoperator<=> Type Descriptor' Base Class Descriptor at ( Base Class Array' Class Hierarchy Descriptor' Complete Object Locator'`anonymous namespace'(null)(null)   mscoree.dllCorExitProcess@@@P@@H5@H5@@P@8M@hM@@H@@@8@@H5@-@H5@p@@H5@@X@H5@        ! 5A CPR S WY l m pr  )   Y* `@@@ @p@@ @`@@@ @`@@@`@@@@@8@api-ms-win-core-datetime-l1-1-1api-ms-win-core-fibers-l1-1-1api-ms-win-core-file-l1-2-2api-ms-win-core-localization-l1-2-1api-ms-win-core-localization-obsolete-l1-2-0api-ms-win-core-processthreads-l1-1-2api-ms-win-core-string-l1-1-0api-ms-win-core-synch-l1-2-0api-ms-win-core-sysinfo-l1-2-1api-ms-win-core-winrt-l1-1-0api-ms-win-core-xstate-l2-1-0api-ms-win-rtcore-ntuser-window-l1-1-0api-ms-win-security-systemfunctions-l1-1-0ext-ms-win-ntuser-dialogbox-l1-1-0ext-ms-win-ntuser-windowstation-l1-1-0advapi32kernel32ntdllapi-ms-win-appmodel-runtime-l1-1-2user32api-ms-ext-ms-AreFileApisANSICompareStringExFlsAllocFlsFreeFlsGetValueFlsSetValueInitializeCriticalSectionExLCMapStringExLocaleNameToLCIDAppPolicyGetProcessTerminationMethodccsUTF-8UTF-16LEUNICODE ((((( H   !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ ((((( H ( 0@@@@D@D@H@H@L@L@P@H@`@L@p@H@@L@INFinfNANnanNAN(SNAN)nan(snan)NAN(IND)nan(ind)e+000`@d@h@l@p@t@x@|@@@@@@@@@@@@@@@@@@@@@@@@$@,@4@@@P@X@h@t@x@@@@@@@@@@@@@@ @8@P@`@x@@@@@@@@@@@@@@@@@ @0@@@P@h@x@@@@@@@@SunMonTueWedThuFriSatSundayMondayTuesdayWednesdayThursdayFridaySaturdayJanFebMarAprMayJunJulAugSepOctNovDecJanuaryFebruaryMarchAprilJuneJulyAugustSeptemberOctoberNovemberDecemberAMPMMM/dd/yydddd, MMMM dd, yyyyHH:mm:ssSunMonTueWedThuFriSatSundayMondayTuesdayWednesdayThursdayFridaySaturdayJanFebMarAprMayJunJulAugSepOctNovDecJanuaryFebruaryMarchAprilJuneJulyAugustSeptemberOctoberNovemberDecemberAMPMMM/dd/yydddd, MMMM dd, yyyyHH:mm:ssen-USja-JPzh-CNko-KRzh-TWuk@@@@@@@@ @ @ @ @ @ @(@0@8@@@H@P@X@`@h@p@x@@@@@@ @!@"\@#@$@%@&@'@)@*@+@,@-@/@6@7@8 @9(@>0@?8@@@@AH@CP@DX@F`@Gh@Ip@Jx@K@N@O@P@V@W@Z@e@dE@@@@P@@@@ @ @ 0@ @@ P@`@p@@ @@@@@@@@@@@@ @0@@@ P@!`@"p@#@$@%@&@'@)@*@+@,@-@/(@28@4H@5X@6h@7x@8@9@:@;@>@?@@@A@C@D @E0@F@@GP@I`@Jp@K@L@N@O@P@R@V@W@Z@e@k @l0@@@P@0@`@ p@ @ @@@@@@@,@; @>0@C@@kX@ h@ x@ @ @ @ @ @; @k @@@ @ 0@ @@ P@`@;p@@@@ @ @ @@;@@ @ (@ 8@H@;`@p@ @ @@;@ @ @ @; @$@ $@ $(@;$8@(H@ (X@ (h@,x@ ,@ ,@0@ 0@ 0@4@ 4@ 4@8@ 8@<(@ <8@@H@ @X@ Dh@ Hx@ L@ P@|@|@arbgcazh-CHScsdadeelenesfifrhehuisitjakonlnoplptroruhrsksqsvthtruridbesletlvltfavihyazeumkafkafohimskkkyswuzttpagutateknmrsamnglkoksyrdivar-SAbg-BGca-EScs-CZda-DKde-DEel-GRfi-FIfr-FRhe-ILhu-HUis-ISit-ITnl-NLnb-NOpl-PLpt-BRro-ROru-RUhr-HRsk-SKsq-ALsv-SEth-THtr-TRur-PKid-IDuk-UAbe-BYsl-SIet-EElv-LVlt-LTfa-IRvi-VNhy-AMaz-AZ-Latneu-ESmk-MKtn-ZAxh-ZAzu-ZAaf-ZAka-GEfo-FOhi-INmt-MTse-NOms-MYkk-KZky-KGsw-KEuz-UZ-Latntt-RUbn-INpa-INgu-INta-INte-INkn-INml-INmr-INsa-INmn-MNcy-GBgl-ESkok-INsyr-SYdiv-MVquz-BOns-ZAmi-NZar-IQde-CHen-GBes-MXfr-BEit-CHnl-BEnn-NOpt-PTsr-SP-Latnsv-FIaz-AZ-Cyrlse-SEms-BNuz-UZ-Cyrlquz-ECar-EGzh-HKde-ATen-AUes-ESfr-CAsr-SP-Cyrlse-FIquz-PEar-LYzh-SGde-LUen-CAes-GTfr-CHhr-BAsmj-NOar-DZzh-MOde-LIen-NZes-CRfr-LUbs-BA-Latnsmj-SEar-MAen-IEes-PAfr-MCsr-BA-Latnsma-NOar-TNen-ZAes-DOsr-BA-Cyrlsma-SEar-OMen-JMes-VEsms-FIar-YEen-CBes-COsmn-FIar-SYen-BZes-PEar-JOen-TTes-ARar-LBen-ZWes-ECar-KWen-PHes-CLar-AEes-UYar-BHes-PYar-QAes-BOes-SVes-HNes-NIes-PRzh-CHTsrdE@B@,,@q@,@ ,@0,@@,@P,@`,@p,@,@,@,@,@,@,@C,@,@-@@)-@(-@k@!@-@c@P-@D`-@}p-@@-@E@-@G-@@-@H@-@-@-@I-@.@@A.@@(.@J@8.@H.@X.@h.@x.@.@.@.@.@.@.@K.@.@@ /@/@(/@8/@H/@X/@h/@x/@/@/@/@/@/@/@/@/@0@0@(0@@#80@e@*H0@l@&X0@h@ h0@L @.x0@s@ 0@0@0@0@M0@0@@>0@h@70@@ 1@N(@/1@tx@(1@81@Z @ H1@O@(X1@j@h1@a(@x1@P0@1@1@Q8@1@R@-1@r8@11@x@:1@@@@?1@1@S@@22@y@%2@g@$(2@f82@@+H2@mX2@@=h2@@;x2@0@02@2@w2@u2@UH@2@2@T2@P@2@`@63@~X@3@V`@(3@W83@H3@X3@h3@h@x3@Xp@3@Y@<3@3@3@v3@@3@[@"3@d3@4@4@(4@84@H4@@X4@\@h4@4@4@4@@4@4@]H@34@z@@4@p@85@x@95@@(5@^85@n@H5@_X@5X5@|\@ h5@b@x5@`P@45@5@{@'5@i5@o5@5@5@6@6@(6@86@FH6@paf-zaar-aear-bhar-dzar-egar-iqar-joar-kwar-lbar-lyar-maar-omar-qaar-saar-syar-tnar-yeaz-az-cyrlaz-az-latnbe-bybg-bgbn-inbs-ba-latnca-escs-czcy-gbda-dkde-atde-chde-dede-lide-ludiv-mvel-gren-auen-bzen-caen-cben-gben-ieen-jmen-nzen-phen-tten-usen-zaen-zwes-ares-boes-cles-coes-cres-does-eces-eses-gtes-hnes-mxes-nies-paes-pees-pres-pyes-sves-uyes-veet-eeeu-esfa-irfi-fifo-fofr-befr-cafr-chfr-frfr-lufr-mcgl-esgu-inhe-ilhi-inhr-bahr-hrhu-huhy-amid-idis-isit-chit-itja-jpka-gekk-kzkn-inkok-inko-krky-kglt-ltlv-lvmi-nzmk-mkml-inmn-mnmr-inms-bnms-mymt-mtnb-nonl-benl-nlnn-nons-zapa-inpl-plpt-brpt-ptquz-boquz-ecquz-pero-roru-rusa-inse-fise-nose-sesk-sksl-sisma-nosma-sesmj-nosmj-sesmn-fisms-fisq-alsr-ba-cyrlsr-ba-latnsr-sp-cyrlsr-sp-latnsv-fisv-sesw-kesyr-syta-inte-inth-thtn-zatr-trtt-ruuk-uaur-pkuz-uz-cyrluz-uz-latnvi-vnxh-zazh-chszh-chtzh-cnzh-hkzh-mozh-sgzh-twzu-za Tc-^k@tFМ, a\)cd4҇f;lDِe,BbE"&'O@V$gmsmrd'c%{pk>_nj f29.EZ%qVJ.C|!@Ί Ą' |Ô%I@T̿aYܫ\ DgR)`*! VG6K]_܀ @َЀk#cd8L2WBJa"=UD~ $s%rс@b;zO]3AOmm!3VV%(w;I-G 8NhU]i<$qE}A'JnWb쪉"f37>,ެdNj5jVg@;*xh2kůid&_U JW {,Ji)Ǫv6 UړǚK%v t:H孎cY˗i&>r䴆["93uzKG-wn@  _l%Bɝ s|-Ciu+-,W@zbjUUYԾX1EL9MLy;-"m^8{yrvxyN\lo};obwQ4Y+XW߯_w[R/=OB R E]B.4o?nz(wKgg;ɭVl H[=J6RMq! EJjت|Lu<@rd 6x)Q9%0+L ;<(wXC=sF|bt!ۮ.P9B4Ҁy7P,=87MsgmQĢR:#שsDp:RRN/M׫ Ob{!@fu)/wdq=v/}fL3. iLs&`@< q!-7ڊ1BALlȸ|Rabڇ3ah𔽚j-6zƞ) ?IϦw#[/r5D¨N2Lɭ3v2!L.2>p6\BF8҇i>o@@w,=q/ cQrFZ**F΍$'#+GK ŎQ1VÎX/4Bycg6fvPbag ;s?.❲ac*&pa%¹u !,`j;҉s}`+i7$fnIoۍut^6n16B(Ȏy$dAՙ,C瀢.=k=yICyJ"pפldNnEtTWtøBncW[5laQۺNPqc+/ޝ"^̯p?m- }oi^,dH94X<H'W&|.ڋu;-Hm~$P  %-5 > H R ] i u -C Y p        %  d'@Bʚ;01#INF1#QNAN1#SNAN1#IND??Xt?0 ?A??m?'?~?R?+M?0??ZR???'??$?\g?A)??@L?a???Ȇ?9??3?G?#??@D?M??@2?j?@Bt?@?X?R%?@>r?r? ?T??@_?01?^y?? ?(N??`??a?@?? -*?k?@@??B.?y|6>gsh>ƈ[^>/T,X>0S:zb>|si\a>酲j%M>zz[>ܥY#4o>wHn>G2k>)l>YHȆ>0AvVL>3/c>v ka>zzk>RUWk>q9a>de>B!Ѳm>dNpm>6/EiU>[ >$'<>F(o>BĮ^>&qN]k>YWm>bj ;>L!\>G[%_f>PHIZ>w_FGm>{]>`hj>>duo>3>ҾC`>\_>h_=N>qCF>WN@l>^b @>L-n>4b>\ngd>Z=@pn>6ނBg>?xb>8rZ>Oc>m>Bĩ*Vc>LHT>z\P>[0>'>m>[a>"߹oI>bAe>USY>kX>,HR>log10CONOUT$Fatal error in launcher: %s Fatal error in launcher: %s rbFailed to open executableUnable to find an appended archive.Unable to read from file#!PATHEXT;Job creation failedJob information querying failedJob information setting failedstdin duplication failedstdout duplication failedstderr duplication failedUnable to create process using '%ls': %lscontrol handler setting failedFailed to get exit code of process.exe/usr/bin/envExpected to find a command ending in '.exe' in shebang line: %lsExpected to find whitespace after '/usr/bin/env': %lsUnable to find executable in environment: %lsExpected terminating double-quote for executable in shebang line: %ls<launcher_dir>\Terminating quote without starting quote for executable in shebang line: %lsFailed to find shebangExpected to find terminator in shebang lineExpected to decode shebang line using UTF-8Expected to find '#' at start of shebang lineExpected to find '!' following '#' in shebang lineExpected to find executable in shebang lineExpected to find arguments (even if empty) in shebang lineExpected to be able to allocate command line memory"%ls" %ls "%ls" %lsBaZL4Ba \L\4Ba pLp48p@@~@RSDSoKZ@NYj3C:\Users\Vinay\Projects\simple_launcher\ARM64\Release\t64-arm.pdbGCTL.text.text$mn.text$x.idata$5.00cfg.CRT$XCA.CRT$XCAA.CRT$XCZ.CRT$XIA.CRT$XIAA.CRT$XIAC.CRT$XIC.CRT$XIZ.CRT$XPA .CRT$XPX0.CRT$XPXA8.CRT$XPZ@.CRT$XTAH.CRT$XTZPx.rdataL.rdata$zzzdbgO.rtc$IAA O.rtc$IZZ(O.rtc$TAA0O.rtc$TZZ@O .xdata8\(.idata$2`\.idata$3x\.idata$48_V.idata$6p .dataz.bss .pdata.rsrc$01N.rsrc$02`"Ђ*Ђ**Ȃ*Ȃ*@BȂ&@tȂ&@@ -@(@hP\@Ђ$9/00010 @4p92\3\3 @@@'@"@"!@@".P(@"9\=p= p=B@9@@0@ JɆȂ,JɆȂ,@0@ JɆȂ,JɆȂ,@@9H)@8!@ ɊȆB ɊȆBb0ɈȄP @"9ADA@/P @Ђ$9I(I4 @ P @"9JJ@;@"J0Є;0ЄPЄ<0ЄbPRȄcPSȄp"9KKh @p"9PK\Kh20ЄPȄP@Ђ$9Ԗ>P4@Ȃ$9\x0Ȅ *P@Ȃ&9@@ɆȂ*J@?@Ȃ&R@G@Ȃ&5@0@CP>@Ђ$9dȴp"9!pȂ$90|p"9 p"9HT 9Xpp +@@Ȃ&FpцȂ(9DNpцȂ(9tp9 85pȂ$9X1p"9h;pȂ$9lxp9X@@Ђ$!p"9 ls@E@Ђ$/7*5;@6@Ђ$.@*@"p"9p"9p"9Lp"9@2@ @@@ɆȂ(=`$o0Ȅ@ @"h`Ђ$@@ɆȂ*d@@цȂ(PшȄB0J`$0Ȅ2P-@Ђ$9,,\@+@Ȃ$0VpȂ$9&0'@@ɆȂ*@@ɆȂ(9@@Ȃ$:@@Ȃ$VP$@Ȃ&9?D@8d@A8.P @Ȃ&9>P>8`>x>8o0 ɈȄP@"9KKp9 O(OP%@цȂ(9TQR RR p"9\OxO-p"9T|TFpцȂ(9^^0 ɈȄ40 ɈȄN0ȄL0Ȅ_0 ɈȄ6P @Ђ$9c dH@@@Ȃ&@@ɆȂ(j@F@ɆȂ**@@Ђ$gP V ɈȄ@=Ȃ$0 ɈȄP  ɈȄ8@@+P'P ɈȄr0NP D шȄp"9ĸĸ @@ @@@BB cx\`_6a8_J_b_|_______`&`<`N`d`v```````~ene`eTeDeBa\araaaaaaabb"b0b:bRbjbbbbbbbbcc&c:cLc\cjcvccccccccdd"d.dBdRdddndzddddddd e e6eaa*aGetStartupInfoWSetConsoleCtrlHandler.SetInformationJobObjectAQueryInformationJobObjectSearchPathW-SetHandleInformationGetCommandLineWGetCurrentProcessGetStdHandle$AssignProcessToJobObjecttGetModuleFileNameWWaitForSingleObject-DuplicateHandleMultiByteToWideCharFormatMessageWaGetLastErrorWaitForSingleObjectExCloseHandleCreateJobObjectA`ExitProcessCreateProcessW=GetExitCodeProcessKERNEL32.dll=PathCombineWPathRemoveFileSpecWOStrStrIWSHLWAPI.dllDQueryPerformanceCounterGetCurrentProcessIdGetCurrentThreadIdGetSystemTimeAsFileTimebInitializeSListHeadnSetUnhandledExceptionFilterxGetModuleHandleWRtlUnwindEx1SetLastErrorFlsAllocFlsGetValueFlsSetValueFlsFree3EnterCriticalSectionLeaveCriticalSection_InitializeCriticalSectionExDeleteCriticalSectionYRaiseExceptionjReadFileWriteFileTerminateProcessFreeLibrarywGetModuleHandleExWGetProcAddressGetCommandLineA#SetFilePointerExGetConsoleModegReadConsoleWOGetFileTypeDHeapAllocHHeapFree^InitializeCriticalSectionAndSpinCountTlsAllocTlsGetValueTlsSetValueTlsFreeLoadLibraryExWCompareStringWLCMapStringWGetStringTypeWwFindClose}FindFirstFileExWFindNextFileWIsValidCodePageGetACPGetOEMCPGetCPInfoWideCharToMultiByte8GetEnvironmentStringsWFreeEnvironmentStringsWSetEnvironmentVariableWKSetStdHandleGetProcessHeapFlushFileBuffersGetConsoleOutputCPCreateFileWMGetFileSizeExMHeapSizeKHeapReAllocSetEndOfFileWriteConsoleW2-+] f     @@t@t@t@t@t@Py@0@@@r@t@C abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~y@ @ @ @ @ @ @ @ @ @y@@@@@@@@..uKOOHPdPpPP Q QQQ$QV| V`(V0V[[0 \P\$\ ,\@Op]TOH@O] lOh O fX!Qe# e$yb0%5h%OH(-ex*O8.P.h..O8/P/p/O1(1PP1]1\P2$Ph39a3Ea3Ia04P4b556}6hP(7e7e9i<=<%=tP==>P8>P?ya?Ea@Uh@me@`QXAebBDHQF!GuHQHIaaIb@JQJy0KRxKRKHRHMdRNOSfPTUmexUmeUaVRxW4RYd0ZdZQ]5b@_ bXa)bhdadyahea0fafxh8jkmc0qecxtRwR8{{|~Ȁach5f=bh`Q@R-8dee)=iu``u`ؓE EhR b-0XA SXXSpUbȞpS0MAeSxS0 e]b@Qqax}bybpSSUbUb`MabH]bqe ]TSSS0PAQE8T1`aM\T(|Tpf0Ii=A`X-Ma]bp]a%E@TxTXTaa`))Tc5iUgIi(U8Eb0aa%ieb(YaixmbqbXqbPiueLUpUUa`beaiaxUUPU88-`h-`8-`huVTV VtVV`(-aX`Hmb8VHV`HM9aMa MapqiVf g V V 1dWYa baaxYyPmefx`8W`$W0WDWP XW#W$tW%W'a@(b(W*WH,W-qb-!-W00 2%eH34X070X`:DXH;TX@<E`<fX=e=X>f?dXAeBB-bCbxDQDaEXHQe(JIaKX LybL8M1xMe8NaNQbNY@OtYO1`@P8YR}(SfSYT8UYZZ@[,Zp\@Z]Y_YbYbc\ZpdZXgZijPoaaoIoZqxrPsQtZxZ0Z؊cc ؍}bX}bؐf[(a`4[xT[X`[bt[ȟp!XMp=`f`[(ya1aاe@]eaPe@0ر[(X=p[9PDP PQ4QhRQRRRQ8QXQxRRQQQ PHZ[(p0eH`x ( Ⱦh0%hhP}( @...GGGWWWiiiuuu ̀ ww ww||wwwwwwwwfwwwww|fwwwwwwffwwwwwwffwwwwwfflwwffffffwfffffflwffffffwffffff|ffffffffR\Ilffl)ffح2L18Ϥ"A< ΣTπU  ؀ ???????( 444MMMSSSzzzp p{p{ffkof_fffk_fff[f}UUUfL4UUU_kJqO_~'[U_Uwwwww{~( @%%%+++000===AAAIIIMMMQQQVVVYYY]]]~dFgggjjjmmmrrruuu}}}u?z=~;gEkCoAr@:IbpƏKУk(,1?5<\CKQsU[cbð/Pp  =1[Qyq/"P0p=LYgx1Qq&/@PZpt1Qq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq_______CCBABADL*(%$""&GABJIIDDJC??AD_-(''%$GG#_DIJIIJIIIDIJDD_+)(''%GG _JMCEJ?ABAECA?BA_,+)('%%"!_IM@AJACDCIDI____.,++>________JMJJJJJJJJJF_..,+)('%$"! #GIMCEJJJI?J__...,+(('%$"! &_JM?AJJJJCJ__...,+)(''%$" _IMJJJJJJJJ_K=...,++(''%$! _JMCDJJJJAJ_K_______L*%$"!_I_?AMNJJEJ_ L'%$"_I_MMMMMMJJ_ _('%%_I_CEMIJJMEM _(''*_I_?BMDJEMDMF _)(-LI_MMMCMMMMM_________< ____I_CEM1;MACDMEJM__I_?A_D1@IJJMJMM_FF_I__6_@/EMMMNMM_FF_I_C80EJDMJCJFF?:AA20?_M_MIEM______MIC4BC/ N______MMMMJIDAI_9/ HJJMMJMMMJ??BAI_A7503 IJMMCBCBA44CCI___BAO;6___C_MJIDIDMI_CI___O; @__C_C?J?AJI_?A_DJJI@ O_CM?;I?JI_________H9MAIJJIJI_CD_____JJI73C;IJIJI_?AMDJJDIMJIE5:JIJI__________MMIA:IJJJJJJJJJJJJJJJJMJ???( 444MMMRRRYYY~eGuuu}}}x>iErCE~7?HVbx/!P7pLcyϏ1Qq/Pp",6@J[1qQq/Pp  =1[Qyq/"P0p=LYgx1Qq&/@PZpt1Qq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq!%///* !*/"(%%'%/) /!#''////+/+"*(/ / !%(/ ( (*/ (///) */   )*  /"///// /+/// # + !%//  +"*+'#+//+'!%*++$++!+! !!!<(0`  !!$& &"   WܱNj+<<:5pi$!!!4888&SNJFB=950,(%%%5ǎVRNIEѹ|Jq?o@ZUQMID@<73/+&"-Ɍ444"ք̴wq?]YUPLHC?;72.*%!"""4888&dya\XTPKGC>:61-)% OÑ%%%5ʎA{;ys`\WSOJFB>951,($(9|:z;xq?o@mAkBiCgCdDuZ;73.*Ǒ%%%5̎È>89}:{;yq?o@mAjBhCfD~dEuZ?:625Оa789}:{;yr>p?n@lAjBhCfD}dEB>:5^ό555"܄ѳ„7789}:{;xr?p@n@lAjBgCeDFA=9"""4;;;&ŌC89~9|:z;xr?p@mAkAiBgCIELɑQQQJnnn~~~Įq?o@mAkBiCHHH"""vvv9~:{;yq?o@mAkB:::'''___sssttt8Ϧuǣvyp?n@lA888T---6fffnddd%%%"""OOOSSSċDҧuʤv{;yr?p?xM<<r?̷999VVV###)))444ѳ͝b@~9|:z;}Cg˶Ӎ󑑑ZZZlll;;;!!!""")))___&&&2:::ppp{{{___WWWWWW:::!!!"""***www"""4888&,̑999ԖJJJ|||lll:::"""BBBXXX|||$$$6,uuuKKKCCC@@@...www* Ҍ666"KKKaaaLLLWWW@$"""4;;;&nnnfff!!!$$$999444]ttt|ȇɑ&&&5ЎvvvmmmVVV{{{OOOڥaaaCCCpppό555"ބ|||MMMfff"""4;;;&\\\Ǒ%%%5Ύݧܦ͌555"ۄۥ"""4:::&ڤÑ%%%5ˎܤׇ ww?ww??ww?ww?ww?ww?ww?ww?ww?ww?ww?ww?wwwwwwwwwwwwwwwwwwwwwwwwwwww?ww?ww?ww?ww?ww?ww?ww?ww?ww?ww?wwwwwwwwwwwwwwww?wwwwwwww( @ !!!0\\\JeeeQ666D555A0$ vH<602\7qڴvvvj&&&D1"gLF@;5?кVQKE?9(aV[UPJD>82-uuun{{{j`ZTOVo@lAb_YSMGB<60+%<aVmt>q?n@bb^XRLFA;5/)$Ywwwn}}}j~Cv=s>p?bba]WQKE@:4.(+{;xbba[VPJD?93-'aV~:{;xr?o@lAiBfD}dE|cE|cEiB<61?9}:z;w=t>q?n@kAiCfD}cE|cE}dFGA;=aVңi89|:yq?n@kBhCeD|cE|cELF@mzzznjʓP8~9{;yp?mAjBgCeD|cEPJ\¯mAjBgC~dEaV}:z;xq?n@lAiCJJJőPyq?n@~YVVV???wwwiiiΡkA|;y>>3@@@y~~~obbb000kkk@@@---U<<<&&&[[[6uuusssWWWIII$$$&&&qqqlllg|||s4bbbhhhƑUUU000QQQ}}}---{bbb(iiiLLLBBBaVggg+++NNN|||nj]]]tttkkkrrrwwwӦaVӦzzznjӦˉ ?????(  C﫫oIਨS=?_QF4aZмoEcaXMB70~Iq?c`VK@58z;u=qv>3Eyn@iB~dE}dFGHYYYuuuġ=xmAhC}dE}eGS444|||gC}cEMMM~>q?kAiGRRR¢Gu=xKʺ~AAAAAAAAAAAAAAAA ( h00 %   h Т (0PX`pУ 0@P`pФ 0@P`pХ 0@P`pЦ 0@P`pЧ 0@P`pШ 0@P`pЩ 0@P`dP`pxȪЪت(08@HȬЬج (08@HPXȫЫث (08ȬЬج (08@HPX`hpxȭЭح (08@HPX`hpxȮЮخ (08@HPXxȣأ(8HXhxȤؤ(8HXhxȥإ(8HXhxȦئ(8HXhxȧا(8HXhxȨب(8HXhxȩة(8HXhxȪت(8HXhxȫث(8HXhxȬج(8HXhxȭح(8HXhxȮخ(8HXhxȯد(8HXhxȠؠ(8HXhxЭ 0@P`pЮ 0@P`pЯ  0@P`pР 0@P`pС 0@P`pТ 0@P`pУ 0@P`pФ 0@P`pХ 0@P`pЦ 0@P`pЧ 0@P`pШ 0@P`pЩ 0@P`pЪ 0@P`pЫ@ȪઠpH(HhPX`hpxȩЩةPKx"T;>i8=__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/t64.exeMZ@ !L!This program cannot be run in DOS mode. $`v%%%tՖ%%%ƛ%%%%%%%%%%%%%%%Rich%PEd9a"  (7@'@.<P l0.textN `.rdata48:@@.data@@*@.pdata  >@@.rsrcPRJ@@.relocJ@BumLISMCMK HHH3H3H$0LʺICDBHL$0HD$ !LD$0HH`H _̅umLISMCMK HHH33H3H$0LʺICDBHL$0HD$ 5a$LD$0HH`H H\$Ht$WH BHH3LLBILHtBHA;IDII+LD9Ht$8HH\$0H _H\$Ht$H|$ UATAUAVAWHH@LL' HpRHM8E3Le8 A̅H HM8ED$3p HM8HM8LcAAHE3I LM8E|$AIDeIHHHtHMED$H赩HcI+HHM8AHAHE3LM8DIHHHxAHN HHHMHA6HcHH+H EHM8E3EH+]LM8LIIAH HAEf; uMfHM8AHE3 LM8LII1AH HH1N\+M;r fA9t M+M;sMHM8!L\$@II[0Is@I{HIA_A^A]A\]H\$UVWH03HW.H|$` H-WRHt-AE3H3H|$(Hl$ 4}L HT$hHL$X[HT$hHL$X>uRHL$X$ALH3H|$(Hl$ u3LD$`H HuHL$X H\$PHH#H0_^]H\$Ht$WH@HHH#D$0LHLH׉t$(d$ ؅u DHt$XH\$PH@_H(ttH P/H(HHXHpHx UATAUHxHp H.H3H`L33,3HHL L\$P LEDI̋L\$ t 9\$PuO3HM0LEDˋIQH3HL$`DBh;_HL$`EHrHdHUHHMHF3H^HUH*HCH;E3HAPHUHH0mHUOE3E3HD$HHD$`IHD$@Hd$8Hd$0d$(3D$ DuEHd$0HM`AD3DL$(HL$ @LM`HM3H aH/HNIH NFH NE3H |NHT$PHL$PaH\$Hl$Ht$WATAVH HHHE3AHHtDKft+f"t%AuHHKHHuHt IHHiA Hc AHqL(HwftALuAHLHft AuHfD9&t Au HfD9#u AtfD#HHAHRHLHf?"u)f;"AH]LffD#HHHHAHet f"tf;"AHL ft%AEtfD#A0t HfuH]H\$@Hl$HHHt$PH A^A\_HHXHpHxUATAUAVAWH8HH)H3H"f98tOHH3DfHu L-#LhA}tIAEfuHIA3 f9=It L5I L5IHHpfA4V(9PHHHHHHH;s9 t9 t HH;rHHH_@7HD$P+LAԹDD$(HD$ d΅HQHcRft|PH|$Pf9t$PtAnt Hf97uf?#H@A?t Hfuf?!H>A t HfuHT$@HHt$@H6HLL|$@MHGH DIu|LGH`<H`wSfA9T$u*IL$ Z[HHMHf7HcH`HMD/L3IIIɍPfIHLAIfIHHLIfIHHLIfHI\HHHH@Ƌ~Ll$8Lt$0L LHHL|$(Ld$ 9 HH({ffH; q&uHfuHH\$Ht$WATAUH0Hd$ EHHE3AHuz##3AHtAfD9*tHHD$PHu 6#fD9.u"##H HL$ #3LEHH]HHZHH\$XHt$`H0A]A\_@SH ILHHu"C"$AHIHHt3"H [ f;tHfuf;uH3HHPHHL@LH SVWH H3Hu."!K3HtHt$PH#LE3HT$HHN$H׋#HEH _^[Ht7SH LH 93\u!H K!H [@SH d$@LD$@#/HHu9D$@t`!Ht V!L$@HH [@SH HAHu<HCHHHHKH;.t_*u:HHN)H9CtHC 8*u 1HCHCuCHH [HHXHhHpHx ATH@E3IHHAMHue HtHL$ IL\$ E9cu?H+>fAr fZwf fAr fZwf HHt@ft;f;t4HT$ C=HT$ 3=HHHt ftf;t+D8d$8t HL$0H\$PHl$XHt$`H|$hH@A\H(3LL97uwMtzHueH(HtL+C fAr fZwf AfAr fZwf IIt ftf;t+ȋH(E3UH(H\$Ht$WH HHw|HHEH 7Hu ;C@=H 6L3MHHu,9=tHICt r g H#CR 3H\$0Ht$8H _H@SH ]u;LHcȺa]PFH5MHu$PHˉD]3FHMHuv3HHH0HHt HLE3HEHILJIHIHkXLIt ItMuIH0Iu3H [H(I=6t!GH rLH(a@SH HH H;r>H|H;w2HH*H+HHHH?L@KkH [HK0H [H%@SH Hڃ}KkH [HJ0H [H%SHiH;r5HH;w)qH+H*HHHH?LIH0H% } rIHJ0H%Mt 8tHIuIHH#@UAUAVH@Hl$0H]0Hu8H}@LeHHH3HEE3MHHHuQoMH;rfD3IEHtTALúDt$(Lt$ LLcu?r*ffAr fZwf fHfD93u3II;sfD3'"]~g3HBHHrXKL$Hw1HAH;w HHLH+H|$0Ht)HHtHIHu /IEALËHDd$(H|$ KtLHH ]*HO9u}HMH3gH]0Hu8H}@LeHHeA^A]]H\$WH@HHHL$ ILD$ HH|$8t HL$0H\$PH@_E3LMK H8IC(ICIcH8H\$ UVWATAUAVAWH LLHL$hHMMHHT$pMtMtMu'`3H\$xH A_A^A]A\_^]H$Ht3HIL;v)HtL3IMHHt3HIL;wIIG HtDO$ADL$`HXG At^LcwEtP I;DBEL;LHHL$h4WD)wALt$hH+HHL$pDL$`LH+Lt$hEI;rhEt 3I;v AEA HDID+ DI;EGAH;woHVELt$hI֋kUtkH+vHLtXHL$pHt'ADO$HIHDL$`Lt$hHL$pHHt L3IK"5O H+3HI(OIHHXHpHxL` AUH0IMHLMt`Mt[H\$`Hu"Ht L3#K/HH\$ LMHINHHWH3H\$@Ht$HH|$PLd$XH0A]H8LL$ MLH@H8HHPHHL@LH SVWATH(H33Hur3HtLd$`!G@HTt*t%HcHHLCHkXIH #H #HLBB8u%ttHcHHHkXI A8tSu*HME3HT$XHUH׋cHH(A\_^[fL$SH f;u3Ef;sH&H&LL$@HT$0D3ɅtL$@#H [H(E3MLMu3HtHu5IHu-IfE9tEfD;tHDfEufD9t HfuH+IfE9tEfD;tHDfEufD9u HfD9ufDHH;I IDH(HHXHhHpHx ATAUAVH HHu"ZR{Lc}c3ADB^xҋSu +s;L@+ktt' tuEEЃ@@@E|@uvpEubEA cTtOt2H HtUH0uH 2H L 2I$$H1H H0oL1IcHtccHcH#Hc(K/HH\$@Ht$HH0_H H\$Ht$UWATH$HHH3HAكtEhd$pHL$t3A6L\$pHEHML\$HHD$PLHT$@IE3Ht7Hd$8HT$@HL$`HL$0HL$XLHL$(HMMHL$ 3趸HHHHHt$p|$tHEU3ɋCHL$H0uu t`gHH3UL$I[(Is0IA\_]H(AAHHH(H%H\$Hl$Ht$WH0HH AIHDLHHHt!LT$`LT$ H\$@Hl$HHt$PH0_HD$`HD$ ^H8Hd$ E3E333wH8L 3ID@; t+IЃ-rAw ÁDAFHADH(Hu HHH(H(Hu HHH(@SH Hu HHLHtLP;AH [ffHM3M3Hd$ LD$(rHfDHL$HT$DD$I ffH\$H|$ATH Hd=nH0H;u3H`H;uwJC ucL%HcI<u+Z&IHuHC HCHC$CI C$CHKH K3H\$0H|$8H A\̅t2SH BHtH(cc$H#HcH [̅~LH\$Hl$Ht$WH IILHeI?tH\$0Hl$8Ht$@H _H\$UVWATAUAVAWH$ HHH3H3HHL$xHUHMIMLL$PD$tDD$\D$DD$HD$pD$X(E3HEHu,E3D8]t HE LEMtE(ADT$@EALUfE H]XADYILE AfA+f;wH pALAHcHcHHNT$lʅ# {f) AŹd;$ACHEGSXnZtacIILt$PHt;HXHt2-A sD$X+DD8DT$XH H pE3LmA0uE |$DIDILt$PEHEHDi H~&D8t!HUoE3҅tHAHD;|ڋt$@-D9T$pvA@EA f|$`|$H+A0uE AID$XLt$PfD$dEt7D$hHEDT$iLc LMHT$hHMlE3҅yD$pfEH]ASEfEgA@H]ARAD|$Deg;~˹i;no;pt^s|u;x;AEHD$XHD H fD9tHuH+HDAD$tAAEyvAI fQQfL$`fD$bcAEyNAE II>ILt$PkE3҅EZ Etf77D$pA@A AT$HDt MI9A rIEtLt$PA@tMFEFA@tMcFEFLt$PA@t MyIADu A rEy AA;AOt$tIHH#ʉL$HυMt3IIcHLB09~ƈHԋt$@H|$D+HDE0t8HALjufD;uAAA;AAO|$DA;~']HccHEHpH؋D|$DDIH ILt$PAHcHEHMHL$0MDωL$(HMLHD|$ AtEuH >HUHйgfD;uuH HUHп-@8;uAHHvkt$@E3DAt+fD$`At fD$`x|$H |$H Dt$\Ll$xE+D+A uLL$@MAhHuLL$@HL$`MŋHt$ BAtAuLL$@0MA*39D$XufE~aHAHELMHL$dLc HyhE3Lc~%HT$xL$dLD$@sAIE3҅Ll$x)Ll$xt$@LL$@MAHHt$ tAE3ҋt$@x"AtLL$@ MA~t$@E3Lt$PA HEHEH|$DE3LUA +AŃItPhtCl;tXwA fA9XuIA AE AfA86ufAx4uIAfA83ufAx2uIAdfA9ifA9ofA9tuHfA9gA fA9ZfA9PDT$lHT$xLD$@AD$X?t$@E3fA*u)A>IXLt$P|$D|$D Aō|HЉ|$DADT$DfA*u,AIXLt$PD$\A؉D$\D$\ AōDHЉD$\AA;t>#t2+;t#-;t0;XuZATAIACA6HtDl18AEAADm`tu ШtL`ШtA;AB؋LHu MH3DBlL \LK nL\0@K nIA D0HL0 A:AK nAAIVE`DD0 EtbK nL09A:tQtM K nAHE`DD09Au.K nL0:A:tt K nHE`ADD0:K nLMDH 1H|$ wHcU܅|H;qLQDK nD05At A> uL0d0IcIMIHEL;A AE<A:t HIHEHL;sIE8 uI~LK nLMHUXH 1AIH|$ u uf9}taLyK nD0Ht}X tD#K nEXD1 ;I;u }X u +MHAHJj}X L#tLD#HL;m K nD0@uL0 AEHDE+}`EHuHI;rHB8pQt BpQu*u;uHcH]K nD0Ht;HÈL0 |K nHÈD19uK nHÈD1:HcH+MHAHc)iELmPA+DMƉD$(3ҹLl$ UDuh1;Ë]HJ n@E|0HҺ t fA9uL0d0IcIMIHE`L;eA AEf.fA;tfHI HE`HL;sIEf9u ILK nLMHUH 1AIH|$ u|9}LԂK nD0Ht; f9Ut@fD#EK nD1 EK nD19K nT0:LI;u f9Uuf7MHHDB~g LVf9Ut LBfD#HL;m`"K nD0@uL0 AEfHDE+]LmPM;tIJAD܋Yqu Amu뵋,38 IHXA_A^A]A\_^[]H\$Ht$L$WATAUAVAWH ALHcu3ۉe 3ۅ;=>LLIL=3AMkXKBL tiAu'WiKBD tDIՋ i 4H\$XHt$`H A_A^A]A\_H(HurAH(H\$Ht$WH IIHMu3VHu-Ix.E3҅A tf77D$\pA@A T$LDuA s MI.IA tA@tMFEFA@tMcFEFA@t MyIADu A rEy AA;AOt$dIHH#ʉL$LυMt3IIcHLB09~ƈHԋt$@H|$D+HÉD$HEt ;0 HD$H0uAguCD$D9A;AO|$D~&]HclHEHtH؋D$DIH IAHcHEzHMDHL$0L$xLƉL$(L$DHӉL$ HMAt39D$DuH IzHUHAguuH )zHUHЀ;-uAHH.t$@E3҉D$HD9T$\ZA@t1AsD$P- AtD$P+|$LAtD$P |$LDd$XHt$pD+d$HD+A uLL$@LAԱ HELL$@HL$PLƋHD$ QAtAuLL$@LAԱ0U|$H39D$Ttg~cHDHHMAH*eE3҅u/Ut(HELD$pLL$@HHD$ YQE3҅u(AD|$@"HELL$@LƋHHD$ +QE3ҋt$@x!AtLD$pLL$@AԱ t$@E3HEHtH蒖E3LU|$DLD$hT$`AL wE EGD8Ut HMHH3;H$ HA_A^A]A\_^]AIt8Aht)Alt AwuA A8lu IA AA yAA<6uAx4uIAX<3uAx2uIA?I|$DAD|$D Ač|HЉ|$DoADT$DbA*uAID$XIAD$X AčDHЉD$X)A tAA#t1A+t"A-tA0AAAAADT$xDT$\DT$XDT$LEAD|$DDT$Tq@8uH\$Ht$WH HcA\Hu觵 RDE3Hsvut3t 诵HHH`HHHkXdH\$0Ht$8H _H\$L$VWATAUAVH ADHcu0  xs;=skHLIL5HkXKLtE`\KDtDAԋ袴 跴 \衴 y H\$XH A^A]A\_^@SH B@It HzuAx$f;u H [H\$Hl$Ht$WATAUH A@@H\$`ID#ILt IxuAC#~9AMLHqI?u;*u?LHS̃;uD#H\$@Hl$HHt$PH A]A\_H\$UVWATAUAVAWH$ HHH3H3HHL$xHUHMIMLL$PD$pDD$XD$HD$LD$lD$DёE3HEHu,茲E3D8]t HE\ LEMtE(AEELUT$@fE! H]NYD^!ILE AfA+f;wH .ALAHcH IcHH D ADL$hA AEJM E'P AŹd;5ACQEGSX{ZtOac"Dl$D-D9T$l]A@/Af|$\|$LIILt$PHt9HXHt0-A sDoԙDl$D+DD8EDT$DH[H%E3L_A0uE 9t$HIDILt$PESHEHD HD8HU$E3҅tHAHD;|A0uE AIAfD$`Dl$DLt$PEt4D$dHEDT$eLc LMHT$dHM"E3҅y Dl$lfEH]E}EfEgA@H]Ћ\AD|$He8g;~ǹi; no;ptasu;x;AHHAHDDl$DH fD9tHuH+HDAAD$pEi Ey|fQfDl$\AQfD$^kAEyQD LI>ILt$PU!E3҅D$@EZ EtfD$lA@A A0T$LDt MI9A rIEtLt$PA@tMFEFA@tMcFEFLt$PA@t MyIADu A rEy A;ODt$pIHH#ʉL$LυMt 3IIcHLB09~AƈHLt$PH|$H+HDDt D8+HAD+ufD;u?A;AO|$HA;~']Hc-HEHhH؋D|$HDIH ӾILt$PAHcHEImHMHL$0MDωL$(HMLHD|$ AtEuH mHUHйgfD;uuH ilHUHп-@8;uAHH@!E3D-Dl$DAt+fD$\At fD$\x|$L |$L Dt$XHt$xE+D+A uLL$@LA*HELL$@HL$\LƋHD$ AtAuLL$@0LAEufE~aHAHELMHL$`Lc H>E3Lc~%HT$xL$`LD$@8IE3҅Ht$x-Ht$xT$@#HELL$@LAHHD$ 5E3ҋT$@x_AtYLL$@ LA?Lt$PE3A T$@HEHSH@|$HE3LUT$@A 5Lt$PA AŃItPhtCl;tXwA fA9XuIA AE AfA86ufAx4uIAfA83ufAx2uIAdfA9ifA9{ofA9luHfA9_A fA9RfA9HDT$hHT$xLD$@AD$DxE3fA*u(A>IXLt$P|$Ht$H Aō|HЉ|$HADT$HfA*u,AIXLt$PD$XA؉D$XD$X AōDHЉD$XAA;t>#t2+;t#-;t0;XuWAQAFA@A9A3DUDT$lDT$XDT$LEt$HDT$D|$HDL$hLEXE(fEEtAu=D8Ut HMHH3蝄H$0HA_A^A]A\_^]MڧE3D8]t HEH\$Hl$Ht$WHP3IHHMu3Hu耧HtIwHL$0IL\$0AKuGH+fAr fZwf  fAr fZwf HHt ftf;t+GDLǺt$(H\$ Su'M@8l$HTHD$@C@8l$Ht HL$@H\$`Hl$hHt$pHP_H(E3LD9 _uxHupH(HtIwL+AfAr fZwf  fAr fZwf HIt ftf;t+H(H(DHHfuH+HHH\$Hl$WH0Hd$@HľHHtud$(Hd$ DL33^eHctxHϺNHD$@HtaLD33ɉ|$(HD$ 'et:HL$@3RxHHHu3H\$HHl$PH0_HL$@Ht HL$@ǃHHXHhHpHx ATH0HE3AHuf=tHH\CfuGHc|HHHtH·fD9#tSHf;=pt.HcH?HHtxLHHuQHHcHCfD9#uHiHL%ZL'3H\$@Hl$HHt$PH|$XH0A\E3E333Ld$ `H 藂L%H\$Hl$Ht$WH .e3HHtLf9tHf9uHf9u+ǃHcHHHtLHHHHdHH\$0Hl$8Ht$@H _H\$WH HcJHtYHu @u ;u@`tJHJH;tJHbu b3ۋILHHAH7H MkXBDt ^3H\$0H _H\$L$VWATH Hcكu xe;s]HHHL%HkXIL8t7>JID8t 膢 J荢 e H\$PH A\_^@SH AHt"AtHIbc3HHCCH [H(H8csmu+xu%@ = t=!t="t=@u'3H(H(H a3H(H\$Hl$Ht$WH H蒼E3HHHH99tHHH;rHH;s99tIHRLAMEIu LIA@4Iu&HHy0HHLLH|9uǃ9uǃ9u ǃz9u ǃf9u ǃR9u ǃ>9u ǃ*9u ǃ9ǺD‰AЉ LIIAH3H\$0Hl$8Ht$@H _H\$Hl$Ht$WH0=u.Hc3Hu<=tHNH\uGHcHH HtH;tPH;=pt.HcHHHtsLHH~"uKHHcH؀;uHHH}H%H'3H\$@Hl$HHt$PH0_Hd$ E3E333H V|H%IHHXHhHpHx ATAUAVH Ll$`MIAeLHAHtLI3;"u3@"HË9AEHtH3HËeOtAEHtHH@tu@ t@ uHt GH3;; t; uH;MtI<$IA3H;\t;"u6utHC8"uH 33҅Ht\HAEutOu< tG< tCt7NHttHÈHAEH tHAEAEHYHtHAEMtI$$AH\$@Hl$HHt$PH|$XH A^A]A\H\$Ht$ WH0=u3H=A3H]HH=JHt;uHHD$HLL$@E33HHD$ Hct$@HH;s\HcL$HHsQHH;rHHHHt8LHD$HLL$@HHHD$ gD\$@H=A3DH\$PHt$XH0_HHXHhHpHx ATH@\E3HHHfD9 tHfD9#uHfD9#uLd$8H+Ld$0HL3DK3Dd$(Ld$ ~\HctQH;HHtALd$8Ld$0DKL33ɉl$(HD$ C\u HgyIH\H H\3H\$PHl$XHt$`H|$hH@A\H\$WH H|H=|HHtHH;rH\$0H _H\$WH H|H=|HHtHH;rH\$0H _H\$WH HHd$0H2-+H;t HHvHL$0s[H\$0`[DI3ZDI3@[HL$8DI3'[L\$8L3HL#H3-+L;LDLILH\$@H _̃%HMZf9t3HcHEA IcEHTE+;)DE;D}AHc DeXHAHHkXIƀd8Dd8HcHƒHHkXI Ƌƀd8D8@8}u @tHc HHHkXIƀL A#;AHMzQEDEHMPH|$0D$(ALMD$ ARHu5(QLcIAHMkXIBd 8rHcHʃHHkXI H -E3E333H|$ IH\$WH@d$03H|$pHu/軐3Htك|$xtAtDL$(DD$ DLHHL$0؉D$4|$0t,t!HcHHHHkXH€d8rjH\$PH@_H8ADL$`ELD$(HL$ DAIH8Mu3ftf;u HHIu +H(u  Bx.; s&HcHHHHkXHD@ӏ `3H(H\$Hl$ VWATH@HOH3HD$0B@HHH-0L%yt5Ht(HHHcHDAMkXMLAC8$< Ht5Ht(HHHcH}DAMkXMLAC8$<HSt1HFt$H9HHcH*HkXI,EHT$$HL$ DA:3ۅt 9\$ ~>Hl$$OxHEHHHMHȃtH;\$ |@HcOHOx&Hf1HcGHGxHf0H HAHL$0H3jH\$pHl$xH@A\_^H\$WH H H MHHHuH\$0H _H )3HH9 įHHXHpHxL` UHHPE3IHHHtMtD8"u%HtfD!3H\$`Ht$hH|$pLd$xHP]HMIkL]E9cu#HtfD8et HEHUHMD A~0A;|+IAHLǺ D$(H\$ KHMuHc H;r&D8gt D8e6HM&P*D8et HEAAHAQLljD$(HEH\$ HUK E3@SH@HL$ jHD$ DH@BY%|$8t HL$0H@[@SH@HL$ 3PjHD$ DH@BY%|$8t HL$0H@[ffHHHtfHt_uI~IHMHLHI3I#tHPtQtGHt9t/Ht!tt uHDHDHDHDHDHDHDHD@UATAUAVAWHPHl$@H]@HuHH}PH*H3HE]`3MEU~*DIA@88t HEuAA+;ÍX|DexEuHD`DMẢ|$(H|$ XILcu3I~^3HBIHrOKL-Hw*HAH;wIHʻH+H|$@HtjHHt HHtDMƺADl$(H|$ HLDu!t$(H!t$ AELAJHc"AEt7Mp ;HEhL$(ELAAHD$ I~g3HBHHrXHL6I;w5HAH;w HHκH+H\$@HiHHtH3HtnELAAΉt$(H\$ BI3ɅtfHMH3(dH]@HuHH}PHeA_A^A]A\]H\$Ht$WHpHHL$PIAtf$D$HL$PD\$@D$8$D$0H$LHD$($DNj։D$ |$ht HL$`L\$pI[IsI_@UATAUAVAWH@Hl$0H]@HuHH}PHƉH3HEuh3EMDuHp]pΉ|$(H|$ 4FLcu3~gHL;wXKL$Hw1HAH;w HH諸H+H\$0HtgHHtHHHtM3HMUEMƺDd$(H\$ EtLM`DHAEHK9uFdHMH30bH]@HuHH}PHeA_A^A]A\]H\$Ht$WH`HHL$@AI|dD$$HL$@D\$0D$(H$DLNjHD$ E|$Xt HL$PH\$pHt$xH`_ffLH+Irat6t  IȈHtf IfHt  IHMIuQMItH HHIuIMuI@ HIuIffffffffffffI sBH LT H HALQHD LT IHALQuIqffffHr  D @HuH@L LT L LQLL LT LILQLL LT (H@LILQLL LT LILQuIIq $fffffffffffIIrat6t HɊ IȈtHf Ift H IMIuPMItHH IHuIMuIHɊ IȈuIffffffffffffI sBHD LT H HALQHD L IHALuIsfffffHw H D @uH@LL LT LILQLL LT LILQLL LT H@LILQLL L LILuIIq $HSH HHI:`HK1`HK(`HK `HK(`HK0 `H `HK@_HKH_HKP_HKX_HK`_HKh_HK8_HKp_HKx_H_H_H_H_Hx_Hl_H`_HT_HH_H<_H0_H$_H_H _H_H^H^H^H^H^H ^H(^H0^H8^H@^HH|^HPp^Hpd^HxX^HL^H@^H4^H(^Hh^H^H^H]H]H]H]H]H]H]H]H]H]H]Ht]Hh]H\]H P]H(D]H08]H8,]H@ ]HH]HP]HX\H`\Hh\Hp\Hx\H\H\H\H\H\H\Hx\Hl\H [HtfSH HH H; tF\HKH; ۏt4\HKH; яt"\HKXH; t\HK`H; t[H [HSH HHIH; t[HK H; t[HK(H; xt[HK0H; nt[HK8H; dt[HK@H; Zt{[HKHH; Pti[HKhH; ^tW[HKpH; TtE[HKxH; Jt3[HH; =t[HH; 0t [HH; #tZH [@SH Ht HtMuD|#|H [LM+ACItHuHu^|"3ffH+LtB :uVHtWHuIJ ffwHJ H;uI~LHHI3ItHH3ffft't#HttHtt tu3HHffH+Ir"tf: u,HIuMIuMt: u HIuH3ÐIt7HH; u[HAH;D uLHAH;D u=HAH;D u.H IuIMItHH; uHIuIHHHH HHH;ffMtuH+LItB H:uWItNtJHuJ ffwHJ H;uHII~vHLI3It H3HHÄt't#HttHtt tuH3H(_HHt>/H(H(H 9H H(H H H H H H%9H\$Ht$WATAUAVAWH03|$`3уtbtMtXtSt.tt5!yx@L%}H vL%zH s|L%bH [lؓHHurHHLcS9YtHIHHH;rIHHH;s9Yt3LaM,$ L%H ݚ|$`8LIu3Mu AM̅t3蜦t t tL|$(,LL|$(HuDdžDt$`u9 RщL$ R;}*HcHHHd‰T$ RI$t3;u AA;t t L; DH\$hHt$pH0A_A^A]A\_H əH ə@SH JqHH97HH HuCH#3H [H\$Ht$H|$ATAUAVH LSH ӥ6LH 6HI;HI+LoII9,HI;sUH;HBHH;rI93Hu3HV H;rIIHtj)I H!|$ LL$HEI*|$H3뤋jxHD$PH ˖HAD@t A}2ii =+|$DH H3EH$H0A_A^A]A\_^]H\$L$VWATAUAVH ALHcudi #~4AMLHbIŃ?u;*uLHձ?Hу;uD#H\$@Hl$HHt$PH A]A\_H\$UVWATAUAVAWH$0HHViH3H3HHL$pHT$hHMIMD$dDD$XD$DD$LD$\D$T%EdfE3HEHu,SfeE3D8]t HEAC@L $H菤HsA;t(t#LcL $IAHMkXM n LL $A@8u)A;ttHcHƒHHkXI nB8t,e)eE3D8]t HEA$E3HT$hHtD"ADT$@DT$HELUEH]AHHT$hAD$=[u'tt u 3nHDH 3X Y H\$0Hl$8H _H(uX X Mx1; s)HcH HƒHHkXHDtHX xX XHH(HHXHpHxL` AVH HcLIL5:HkXK4|3 u4O {|3 uHL3##D3 OtK HLH\$0Ht$8H|$@Ld$HH A^HcH HƒHHkXHHLH%\H\$Ht$H|$ATAUAVH@HDE3^ ߄u赅3HK|$$@LcJHH\$0JH H;C{ u< \{ u!HKu DhDl$(C *EudHK{Ct HKsHHEu?CH3LK+H.袋.HLIIH?LDDd$ HXHHRD;XJ~HD$0HtsHcLIЃ I H H;s@H0@ ` HXHD$0|$ HcHHHkXID[DD|$ AH\$`Ht$hH|$pH@A^A]A\H\$fDL$ UVWHH`IHHHuMtHt!3Ht Iv@UTdHU@HM3L]A{E8f;vJHtHt L3HT*T}t HMH$H`_^]Ht0Hu)T_";T@8}eHMUHt}HEe(AKHE(HD$8Hd$0LE8A3҉|$(Ht$ 8t}(3HtzHtHt L3HS"zS}HEH8Hd$ -H8HHXHhHpHx ATH0IcIDE~HIXHHcD$hH|$`~ HHxHHtUInMHH CuQHD$pHHGfD*HEIEOuO*H-Et I-M.E3E333Ll$ VNI-M.H\$Ht$WH@HHL$ AA-HD$(DA|utHD$ H@BY#3t|$8t HL$0H\$PHt$XH@_̋AE33rHHXHhHpHx ATAUAWH H33DGLHtPDG3ҋwHt=HH+H AWHEHHu1>N 3NH\$@Hl$HHt$PH|$XH A_A]A\úDDI;HEMNj#t HH+H~M8u M HAԋM LH3W Uy]E3HՋHTH HHHHu%fM {MH HE3IՋ5H3H\$LcHzMAIMkXJ BD8F\ADA@tXtHt(t uHBLJBd8BL80BLJBd8BL8BdBLJ Bd8EuA%@H\$H(HuJLK n3H(H\$Hl$VWATH DHH舊SHc‚uK K 8@t K"3t{HCHSC{C u/_-H0H;tQ-H`H;u YuHC+HS+kHBHC$C~DŋW SJIHH(LH hb3H(H% fL$H8H \Hu H v\Hu%Hd$ LL$HHT$@A5 tD$@H8H\$Ht$WH0HHtL,HHH'HHt.HVLH2V2l22222223"363F3V3n338877333 4"444F4Z4v4444444 505@5V5d5r5~55555555556$606B6P6h6p666666667(7>7X7f7v777777$8333"@W@@T@ @#@9aM"S@T@ccsUTF-8UTF-16LEUNICODEHH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunHH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSun  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~CorExitProcessmscoree.dllruntime error TLOSS error SING error DOMAIN error R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6032 - not enough space for locale information R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6030 - CRT not initialized R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data R6010 - abort() has been called R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point support not loaded `@@ @ P@@@@@ @p @ @ @@ @ @ @ @ p @!@x`@y@@z @@@Microsoft Visual C++ Runtime Library ...<program name unknown>Runtime Error! Program: (null)(null)EEE50P( 8PX700WP `h````xpxxxx ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~  GetProcessWindowStationGetUserObjectInformationWGetLastActivePopupGetActiveWindowMessageBoxWUSER32.DLLEEE00P('8PW700PP (`h`hhhxppwppCONOUT$Fatal error in launcher: %s Fatal error in launcher: %s rbFailed to open executableUnable to find an appended archive.Unable to read from file#!PATHEXT;Job creation failedJob information querying failedJob information setting failedstdin duplication failedstdout duplication failedstderr duplication failedUnable to create process using '%ls': %lscontrol handler setting failedFailed to get exit code of process.exe/usr/bin/envExpected to find a command ending in '.exe' in shebang line: %lsExpected to find whitespace after '/usr/bin/env': %lsUnable to find executable in environment: %lsExpected terminating double-quote for executable in shebang line: %ls<launcher_dir>\Terminating quote without starting quote for executable in shebang line: %lsFailed to find shebangExpected to find terminator in shebang lineExpected to decode shebang line using UTF-8Expected to find '#' at start of shebang lineExpected to find '!' following '#' in shebang lineExpected to find executable in shebang lineExpected to find arguments (even if empty) in shebang lineExpected to be able to allocate command line memory"%ls" %ls "%ls" %lsRSDSz>>Oh/C:\Users\Vinay\Projects\simple_launcher\dist\t64.pdbd 4 R p8.2p`08C`  20- 5td 4 3 rPxr0  4 rp  b 42 p`P  t d 4RЈ8*1*zBp`08*+ t d T 4242 p8.. d T 4 Rpd42p8u22RP  t d 4RЈ83 4.4C4  4 2p42 p855  4 Rp8d677   d T 4 rp dT4 Rpd 4R p8=>. d4 p Pxrbt42   20/ td4Pxrp  4 2p8&R}R4r p`Pxr8  t d 4RЈ8V8W208Z [7  4 2p8[[R[\r42p8d]]R]]r4  P2042 p d4rp8Saab- dQTP4OJpxr@ tT4 t dT42d 4R p8"kk t d 4 R8l"ml;mtd42dT42p2Ptd42Ј8oYo td4Pd 4R pd T42p  p ` 0 P d 4 2p80bd42 pdT42p0 4dZ p`Pxr4 2 p `8]0 4 p`PxrdT 4 pT 4 R p4 2 p `8d T 4Rpd 4 R p t d T 4 r  4 2p B8@$ $4$p`P  4 rp8-Pb!T4r p `xr0 td 4 Pr0- Etd4C PxrHd4 p- 5td43r Pxr0d4 p2 0 B8MQQ d4 R p8s t d 428V p`P0xrH6 %4q%f p`Pxr 4 2 p `8)[4 2 p `8? d T 42p4 2 p `8)]T42 p  td428' td 4 r8%Lm34p ` P t d T 4R 4R p ` P t d T 424T 42 p `  bd 4 r p,xr0, xr03 "t5"d4"43".Pxr`   4 Rp`P td4rP d T 42p7 &t&d&4&PxrB/31311112*2>2V2l22222223"363F3V3n338877333 4"444F4Z4v4444444 505@5V5d5r5~55555555556$606B6P6h6p666666667(7>7X7f7v777777$8333ExitProcessGetCommandLineW+SearchPathW~SetInformationJobObjectCreateProcessWGetCurrentProcess}SetHandleInformationWaitForSingleObject WaitForSingleObjectExAssignProcessToJobObjectdFormatMessageWGetExitCodeProcessGetModuleFileNameWQueryInformationJobObjectiMultiByteToWideCharjGetStartupInfoWCreateJobObjectAkGetStdHandleGetLastError;SetConsoleCtrlHandlerDuplicateHandleRCloseHandleKERNEL32.dllPathRemoveFileSpecWEStrStrIW:PathCombineWSHLWAPI.dllHeapFreeHeapAllocEnterCriticalSection;LeaveCriticalSectionpGetStringTypeWGetCommandLineATerminateProcessUnhandledExceptionFilterSetUnhandledExceptionFilterIsDebuggerPresent&RtlVirtualUnwindRtlLookupFunctionEntryRtlCaptureContext%RtlUnwindExInitializeCriticalSectionAndSpinCountEncodePointerDecodePointerHeapSetInformationGetVersionHeapCreatexGetCPInfonGetACP>GetOEMCP IsValidCodePageZFlsGetValue[FlsSetValueYFlsFreeSetLastErrorGetCurrentThreadIdXFlsAllocLGetProcAddressGetModuleHandleW4WriteFile|SetHandleCountGetFileTypeDeleteCriticalSectionSleep/LCMapStringWReadFiletSetFilePointergFreeEnvironmentStringsWGetEnvironmentStringsWGetModuleFileNameA WideCharToMultiByteQueryPerformanceCounterGetTickCountGetCurrentProcessIdGetSystemTimeAsFileTimeCreateFileWALoadLibraryWHeapReAllocGetConsoleCPGetConsoleMode]FlushFileBuffersSetStdHandledCompareStringWeSetEnvironmentVariableWaSetEndOfFileQGetProcessHeapHeapSize3WriteConsoleWp@p@2-+] f        ! 5A CPR S WY l m pr   )     abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZPE@`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~CH@D@@@<@8@4@0@(@ @@@@@@@@@@@@@@@@@@@@@@@|@t@l@`@X@H@8@0@,@ @@@ @@@@@@@@@@x@`@P@8@0@(@ @@@@@@@@@@@@@@@@p@`@H@8@ @@@@@@@J@J@J@J@J@R@`@@p@J@PM@d@ @@`@b@@@@@@@@@@@..R@R@xc@xc@xc@xc@xc@xc@xc@xc@xc@R@|c@|c@|c@|c@|c@|c@|c@.Kr,.t.OL)Pp.}`. ..<..(.(2.Po@#pMD#PX'U#X#X'} X' !T*!0".0""L)"#X'##.#[$X'\$$X'%'#'O'#X'z'#|')#)[*$\*y*%|*+0$+,#,,.,.X$..t$./(0M1$P1n1%p1"2p($22$2[3L)\3^4$`44X'4F5 %H55,%5'7P%(7:7.<78t%8:|%:e=%h=>%>@%@E@.H@@0*@@% A@A.@A`A.`AAX'AA&AB&BB& B!B&$BB&B/C,&0CC\)CxN)xNN.NjO %lOOp(OQ4&QRT&R4S+4SUx&UW&WW.X]ZL)`ZZX'Z-[&<[a[.d[\&\\ %\\X'\]']y^X'|^Q_L'T__X'__X'_`X'`7``'8`q` %t`#a %$abl'bcX'@ce'ee.efX' fh'hri'tii'i}j'jk,kk'k-lL)0l|lX'|lhm(tmm\(mnp(n~o(oo %op(pq-qr%rwrX'xrr.rr(0s~s(s u( u v) v^wL)`w~)~).OL)P\)Pp)PL)nj)ȌX',) ) .К)͜-МUp(X %מ*؞X'Q.Tl.l<p(<l0*l;X$<2D*4(T*(` %` %Kl*!x*$̯*̯*Ұ%_.`_*` %%*0u+x+еx+xB+Dڹ<+ܹ:L+<t+л++`#`j+lX'+g+5+8[+\y.+3X'4>+@W.X`,,`X'X'.L)RL)TH,l,k,lX'I,Lp) %,X'p(F-H.a-D-X-Xl%l--K .`--.-. .i-l(. B.`z(z$(($((7(7R(Rm(r(((((3(@b(b$((((.(3N((p0eH`x (h(%xhhHZ( @...GGGWWWiiiuuu ̀ ww ww||wwwwwwwwfwwwww|fwwwwwwffwwwwwwffwwwwwfflwwffffffwfffffflwffffffwffffff|ffffffffR\Ilffl)ffح2L18Ϥ"A< ΣTπU  ؀ ???????( 444MMMSSSzzzp p{p{ffkof_fffk_fff[f}UUUfL4UUU_kJqO_~'[U_Uwwwww{~( @%%%+++000===AAAIIIMMMQQQVVVYYY]]]~dFgggjjjmmmrrruuu}}}u?z=~;gEkCoAr@:IbpƏKУk(,1?5<\CKQsU[cbð/Pp  =1[Qyq/"P0p=LYgx1Qq&/@PZpt1Qq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq_______CCBABADL*(%$""&GABJIIDDJC??AD_-(''%$GG#_DIJIIJIIIDIJDD_+)(''%GG _JMCEJ?ABAECA?BA_,+)('%%"!_IM@AJACDCIDI____.,++>________JMJJJJJJJJJF_..,+)('%$"! #GIMCEJJJI?J__...,+(('%$"! &_JM?AJJJJCJ__...,+)(''%$" _IMJJJJJJJJ_K=...,++(''%$! _JMCDJJJJAJ_K_______L*%$"!_I_?AMNJJEJ_ L'%$"_I_MMMMMMJJ_ _('%%_I_CEMIJJMEM _(''*_I_?BMDJEMDMF _)(-LI_MMMCMMMMM_________< ____I_CEM1;MACDMEJM__I_?A_D1@IJJMJMM_FF_I__6_@/EMMMNMM_FF_I_C80EJDMJCJFF?:AA20?_M_MIEM______MIC4BC/ N______MMMMJIDAI_9/ HJJMMJMMMJ??BAI_A7503 IJMMCBCBA44CCI___BAO;6___C_MJIDIDMI_CI___O; @__C_C?J?AJI_?A_DJJI@ O_CM?;I?JI_________H9MAIJJIJI_CD_____JJI73C;IJIJI_?AMDJJDIMJIE5:JIJI__________MMIA:IJJJJJJJJJJJJJJJJMJ???( 444MMMRRRYYY~eGuuu}}}x>iErCE~7?HVbx/!P7pLcyϏ1Qq/Pp",6@J[1qQq/Pp  =1[Qyq/"P0p=LYgx1Qq&/@PZpt1Qq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq!%///* !*/"(%%'%/) /!#''////+/+"*(/ / !%(/ ( (*/ (///) */   )*  /"///// /+/// # + !%//  +"*+'#+//+'!%*++$++!+! !!!<(0`  !!$& &"   WܱNj+<<:5pi$!!!4888&SNJFB=950,(%%%5ǎVRNIEѹ|Jq?o@ZUQMID@<73/+&"-Ɍ444"ք̴wq?]YUPLHC?;72.*%!"""4888&dya\XTPKGC>:61-)% OÑ%%%5ʎA{;ys`\WSOJFB>951,($(9|:z;xq?o@mAkBiCgCdDuZ;73.*Ǒ%%%5̎È>89}:{;yq?o@mAjBhCfD~dEuZ?:625Оa789}:{;yr>p?n@lAjBhCfD}dEB>:5^ό555"܄ѳ„7789}:{;xr?p@n@lAjBgCeDFA=9"""4;;;&ŌC89~9|:z;xr?p@mAkAiBgCIELɑQQQJnnn~~~Įq?o@mAkBiCHHH"""vvv9~:{;yq?o@mAkB:::'''___sssttt8Ϧuǣvyp?n@lA888T---6fffnddd%%%"""OOOSSSċDҧuʤv{;yr?p?xM<<r?̷999VVV###)))444ѳ͝b@~9|:z;}Cg˶Ӎ󑑑ZZZlll;;;!!!""")))___&&&2:::ppp{{{___WWWWWW:::!!!"""***www"""4888&,̑999ԖJJJ|||lll:::"""BBBXXX|||$$$6,uuuKKKCCC@@@...www* Ҍ666"KKKaaaLLLWWW@$"""4;;;&nnnfff!!!$$$999444]ttt|ȇɑ&&&5ЎvvvmmmVVV{{{OOOڥaaaCCCpppό555"ބ|||MMMfff"""4;;;&\\\Ǒ%%%5Ύݧܦ͌555"ۄۥ"""4:::&ڤÑ%%%5ˎܤׇ ww?ww??ww?ww?ww?ww?ww?ww?ww?ww?ww?ww?wwwwwwwwwwwwwwwwwwwwwwwwwwww?ww?ww?ww?ww?ww?ww?ww?ww?ww?ww?wwwwwwwwwwwwwwww?wwwwwwww( @ !!!0\\\JeeeQ666D555A0$ vH<602\7qڴvvvj&&&D1"gLF@;5?кVQKE?9(aV[UPJD>82-uuun{{{j`ZTOVo@lAb_YSMGB<60+%<aVmt>q?n@bb^XRLFA;5/)$Ywwwn}}}j~Cv=s>p?bba]WQKE@:4.(+{;xbba[VPJD?93-'aV~:{;xr?o@lAiBfD}dE|cE|cEiB<61?9}:z;w=t>q?n@kAiCfD}cE|cE}dFGA;=aVңi89|:yq?n@kBhCeD|cE|cELF@mzzznjʓP8~9{;yp?mAjBgCeD|cEPJ\¯mAjBgC~dEaV}:z;xq?n@lAiCJJJőPyq?n@~YVVV???wwwiiiΡkA|;y>>3@@@y~~~obbb000kkk@@@---U<<<&&&[[[6uuusssWWWIII$$$&&&qqqlllg|||s4bbbhhhƑUUU000QQQ}}}---{bbb(iiiLLLBBBaVggg+++NNN|||nj]]]tttkkkrrrwwwӦaVӦzzznjӦˉ ?????(  C﫫oIਨS=?_QF4aZмoEcaXMB70~Iq?c`VK@58z;u=qv>3Eyn@iB~dE}dFGHYYYuuuġ=xmAhC}dE}eGS444|||gC}cEMMM~>q?kAiGRRR¢Gu=xKʺ~AAAAAAAAAAAAAAAA ( h00 %   h PAPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADآPX4Ƞؠ(8HXhxȡء@ȪЪت (08@HPX`hpxȫЫث (08@HPX`hpxȬЬج (08@Hح8xPLpxȢТآ (08HPX`hpxPKx"T ]=__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/util.py# # Copyright (C) 2012-2021 The Python Software Foundation. # See LICENSE.txt and CONTRIBUTORS.txt. # import codecs from collections import deque import contextlib import csv from glob import iglob as std_iglob import io import json import logging import os import py_compile import re import socket try: import ssl except ImportError: # pragma: no cover ssl = None import subprocess import sys import tarfile import tempfile import textwrap try: import threading except ImportError: # pragma: no cover import dummy_threading as threading import time from . import DistlibException from .compat import (string_types, text_type, shutil, raw_input, StringIO, cache_from_source, urlopen, urljoin, httplib, xmlrpclib, splittype, HTTPHandler, BaseConfigurator, valid_ident, Container, configparser, URLError, ZipFile, fsdecode, unquote, urlparse) logger = logging.getLogger(__name__) # # Requirement parsing code as per PEP 508 # IDENTIFIER = re.compile(r'^([\w\.-]+)\s*') VERSION_IDENTIFIER = re.compile(r'^([\w\.*+-]+)\s*') COMPARE_OP = re.compile(r'^(<=?|>=?|={2,3}|[~!]=)\s*') MARKER_OP = re.compile(r'^((<=?)|(>=?)|={2,3}|[~!]=|in|not\s+in)\s*') OR = re.compile(r'^or\b\s*') AND = re.compile(r'^and\b\s*') NON_SPACE = re.compile(r'(\S+)\s*') STRING_CHUNK = re.compile(r'([\s\w\.{}()*+#:;,/?!~`@$%^&=|<>\[\]-]+)') def parse_marker(marker_string): """ Parse a marker string and return a dictionary containing a marker expression. The dictionary will contain keys "op", "lhs" and "rhs" for non-terminals in the expression grammar, or strings. A string contained in quotes is to be interpreted as a literal string, and a string not contained in quotes is a variable (such as os_name). """ def marker_var(remaining): # either identifier, or literal string m = IDENTIFIER.match(remaining) if m: result = m.groups()[0] remaining = remaining[m.end():] elif not remaining: raise SyntaxError('unexpected end of input') else: q = remaining[0] if q not in '\'"': raise SyntaxError('invalid expression: %s' % remaining) oq = '\'"'.replace(q, '') remaining = remaining[1:] parts = [q] while remaining: # either a string chunk, or oq, or q to terminate if remaining[0] == q: break elif remaining[0] == oq: parts.append(oq) remaining = remaining[1:] else: m = STRING_CHUNK.match(remaining) if not m: raise SyntaxError('error in string literal: %s' % remaining) parts.append(m.groups()[0]) remaining = remaining[m.end():] else: s = ''.join(parts) raise SyntaxError('unterminated string: %s' % s) parts.append(q) result = ''.join(parts) remaining = remaining[1:].lstrip() # skip past closing quote return result, remaining def marker_expr(remaining): if remaining and remaining[0] == '(': result, remaining = marker(remaining[1:].lstrip()) if remaining[0] != ')': raise SyntaxError('unterminated parenthesis: %s' % remaining) remaining = remaining[1:].lstrip() else: lhs, remaining = marker_var(remaining) while remaining: m = MARKER_OP.match(remaining) if not m: break op = m.groups()[0] remaining = remaining[m.end():] rhs, remaining = marker_var(remaining) lhs = {'op': op, 'lhs': lhs, 'rhs': rhs} result = lhs return result, remaining def marker_and(remaining): lhs, remaining = marker_expr(remaining) while remaining: m = AND.match(remaining) if not m: break remaining = remaining[m.end():] rhs, remaining = marker_expr(remaining) lhs = {'op': 'and', 'lhs': lhs, 'rhs': rhs} return lhs, remaining def marker(remaining): lhs, remaining = marker_and(remaining) while remaining: m = OR.match(remaining) if not m: break remaining = remaining[m.end():] rhs, remaining = marker_and(remaining) lhs = {'op': 'or', 'lhs': lhs, 'rhs': rhs} return lhs, remaining return marker(marker_string) def parse_requirement(req): """ Parse a requirement passed in as a string. Return a Container whose attributes contain the various parts of the requirement. """ remaining = req.strip() if not remaining or remaining.startswith('#'): return None m = IDENTIFIER.match(remaining) if not m: raise SyntaxError('name expected: %s' % remaining) distname = m.groups()[0] remaining = remaining[m.end():] extras = mark_expr = versions = uri = None if remaining and remaining[0] == '[': i = remaining.find(']', 1) if i < 0: raise SyntaxError('unterminated extra: %s' % remaining) s = remaining[1:i] remaining = remaining[i + 1:].lstrip() extras = [] while s: m = IDENTIFIER.match(s) if not m: raise SyntaxError('malformed extra: %s' % s) extras.append(m.groups()[0]) s = s[m.end():] if not s: break if s[0] != ',': raise SyntaxError('comma expected in extras: %s' % s) s = s[1:].lstrip() if not extras: extras = None if remaining: if remaining[0] == '@': # it's a URI remaining = remaining[1:].lstrip() m = NON_SPACE.match(remaining) if not m: raise SyntaxError('invalid URI: %s' % remaining) uri = m.groups()[0] t = urlparse(uri) # there are issues with Python and URL parsing, so this test # is a bit crude. See bpo-20271, bpo-23505. Python doesn't # always parse invalid URLs correctly - it should raise # exceptions for malformed URLs if not (t.scheme and t.netloc): raise SyntaxError('Invalid URL: %s' % uri) remaining = remaining[m.end():].lstrip() else: def get_versions(ver_remaining): """ Return a list of operator, version tuples if any are specified, else None. """ m = COMPARE_OP.match(ver_remaining) versions = None if m: versions = [] while True: op = m.groups()[0] ver_remaining = ver_remaining[m.end():] m = VERSION_IDENTIFIER.match(ver_remaining) if not m: raise SyntaxError('invalid version: %s' % ver_remaining) v = m.groups()[0] versions.append((op, v)) ver_remaining = ver_remaining[m.end():] if not ver_remaining or ver_remaining[0] != ',': break ver_remaining = ver_remaining[1:].lstrip() # Some packages have a trailing comma which would break things # See issue #148 if not ver_remaining: break m = COMPARE_OP.match(ver_remaining) if not m: raise SyntaxError('invalid constraint: %s' % ver_remaining) if not versions: versions = None return versions, ver_remaining if remaining[0] != '(': versions, remaining = get_versions(remaining) else: i = remaining.find(')', 1) if i < 0: raise SyntaxError('unterminated parenthesis: %s' % remaining) s = remaining[1:i] remaining = remaining[i + 1:].lstrip() # As a special diversion from PEP 508, allow a version number # a.b.c in parentheses as a synonym for ~= a.b.c (because this # is allowed in earlier PEPs) if COMPARE_OP.match(s): versions, _ = get_versions(s) else: m = VERSION_IDENTIFIER.match(s) if not m: raise SyntaxError('invalid constraint: %s' % s) v = m.groups()[0] s = s[m.end():].lstrip() if s: raise SyntaxError('invalid constraint: %s' % s) versions = [('~=', v)] if remaining: if remaining[0] != ';': raise SyntaxError('invalid requirement: %s' % remaining) remaining = remaining[1:].lstrip() mark_expr, remaining = parse_marker(remaining) if remaining and remaining[0] != '#': raise SyntaxError('unexpected trailing data: %s' % remaining) if not versions: rs = distname else: rs = '%s %s' % (distname, ', '.join(['%s %s' % con for con in versions])) return Container(name=distname, extras=extras, constraints=versions, marker=mark_expr, url=uri, requirement=rs) def get_resources_dests(resources_root, rules): """Find destinations for resources files""" def get_rel_path(root, path): # normalizes and returns a lstripped-/-separated path root = root.replace(os.path.sep, '/') path = path.replace(os.path.sep, '/') assert path.startswith(root) return path[len(root):].lstrip('/') destinations = {} for base, suffix, dest in rules: prefix = os.path.join(resources_root, base) for abs_base in iglob(prefix): abs_glob = os.path.join(abs_base, suffix) for abs_path in iglob(abs_glob): resource_file = get_rel_path(resources_root, abs_path) if dest is None: # remove the entry if it was here destinations.pop(resource_file, None) else: rel_path = get_rel_path(abs_base, abs_path) rel_dest = dest.replace(os.path.sep, '/').rstrip('/') destinations[resource_file] = rel_dest + '/' + rel_path return destinations def in_venv(): if hasattr(sys, 'real_prefix'): # virtualenv venvs result = True else: # PEP 405 venvs result = sys.prefix != getattr(sys, 'base_prefix', sys.prefix) return result def get_executable(): # The __PYVENV_LAUNCHER__ dance is apparently no longer needed, as # changes to the stub launcher mean that sys.executable always points # to the stub on OS X # if sys.platform == 'darwin' and ('__PYVENV_LAUNCHER__' # in os.environ): # result = os.environ['__PYVENV_LAUNCHER__'] # else: # result = sys.executable # return result # Avoid normcasing: see issue #143 # result = os.path.normcase(sys.executable) result = sys.executable if not isinstance(result, text_type): result = fsdecode(result) return result def proceed(prompt, allowed_chars, error_prompt=None, default=None): p = prompt while True: s = raw_input(p) p = prompt if not s and default: s = default if s: c = s[0].lower() if c in allowed_chars: break if error_prompt: p = '%c: %s\n%s' % (c, error_prompt, prompt) return c def extract_by_key(d, keys): if isinstance(keys, string_types): keys = keys.split() result = {} for key in keys: if key in d: result[key] = d[key] return result def read_exports(stream): if sys.version_info[0] >= 3: # needs to be a text stream stream = codecs.getreader('utf-8')(stream) # Try to load as JSON, falling back on legacy format data = stream.read() stream = StringIO(data) try: jdata = json.load(stream) result = jdata['extensions']['python.exports']['exports'] for group, entries in result.items(): for k, v in entries.items(): s = '%s = %s' % (k, v) entry = get_export_entry(s) assert entry is not None entries[k] = entry return result except Exception: stream.seek(0, 0) def read_stream(cp, stream): if hasattr(cp, 'read_file'): cp.read_file(stream) else: cp.readfp(stream) cp = configparser.ConfigParser() try: read_stream(cp, stream) except configparser.MissingSectionHeaderError: stream.close() data = textwrap.dedent(data) stream = StringIO(data) read_stream(cp, stream) result = {} for key in cp.sections(): result[key] = entries = {} for name, value in cp.items(key): s = '%s = %s' % (name, value) entry = get_export_entry(s) assert entry is not None #entry.dist = self entries[name] = entry return result def write_exports(exports, stream): if sys.version_info[0] >= 3: # needs to be a text stream stream = codecs.getwriter('utf-8')(stream) cp = configparser.ConfigParser() for k, v in exports.items(): # TODO check k, v for valid values cp.add_section(k) for entry in v.values(): if entry.suffix is None: s = entry.prefix else: s = '%s:%s' % (entry.prefix, entry.suffix) if entry.flags: s = '%s [%s]' % (s, ', '.join(entry.flags)) cp.set(k, entry.name, s) cp.write(stream) @contextlib.contextmanager def tempdir(): td = tempfile.mkdtemp() try: yield td finally: shutil.rmtree(td) @contextlib.contextmanager def chdir(d): cwd = os.getcwd() try: os.chdir(d) yield finally: os.chdir(cwd) @contextlib.contextmanager def socket_timeout(seconds=15): cto = socket.getdefaulttimeout() try: socket.setdefaulttimeout(seconds) yield finally: socket.setdefaulttimeout(cto) class cached_property(object): def __init__(self, func): self.func = func #for attr in ('__name__', '__module__', '__doc__'): # setattr(self, attr, getattr(func, attr, None)) def __get__(self, obj, cls=None): if obj is None: return self value = self.func(obj) object.__setattr__(obj, self.func.__name__, value) #obj.__dict__[self.func.__name__] = value = self.func(obj) return value def convert_path(pathname): """Return 'pathname' as a name that will work on the native filesystem. The path is split on '/' and put back together again using the current directory separator. Needed because filenames in the setup script are always supplied in Unix style, and have to be converted to the local convention before we can actually use them in the filesystem. Raises ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. """ if os.sep == '/': return pathname if not pathname: return pathname if pathname[0] == '/': raise ValueError("path '%s' cannot be absolute" % pathname) if pathname[-1] == '/': raise ValueError("path '%s' cannot end with '/'" % pathname) paths = pathname.split('/') while os.curdir in paths: paths.remove(os.curdir) if not paths: return os.curdir return os.path.join(*paths) class FileOperator(object): def __init__(self, dry_run=False): self.dry_run = dry_run self.ensured = set() self._init_record() def _init_record(self): self.record = False self.files_written = set() self.dirs_created = set() def record_as_written(self, path): if self.record: self.files_written.add(path) def newer(self, source, target): """Tell if the target is newer than the source. Returns true if 'source' exists and is more recently modified than 'target', or if 'source' exists and 'target' doesn't. Returns false if both exist and 'target' is the same age or younger than 'source'. Raise PackagingFileError if 'source' does not exist. Note that this test is not very accurate: files created in the same second will have the same "age". """ if not os.path.exists(source): raise DistlibException("file '%r' does not exist" % os.path.abspath(source)) if not os.path.exists(target): return True return os.stat(source).st_mtime > os.stat(target).st_mtime def copy_file(self, infile, outfile, check=True): """Copy a file respecting dry-run and force flags. """ self.ensure_dir(os.path.dirname(outfile)) logger.info('Copying %s to %s', infile, outfile) if not self.dry_run: msg = None if check: if os.path.islink(outfile): msg = '%s is a symlink' % outfile elif os.path.exists(outfile) and not os.path.isfile(outfile): msg = '%s is a non-regular file' % outfile if msg: raise ValueError(msg + ' which would be overwritten') shutil.copyfile(infile, outfile) self.record_as_written(outfile) def copy_stream(self, instream, outfile, encoding=None): assert not os.path.isdir(outfile) self.ensure_dir(os.path.dirname(outfile)) logger.info('Copying stream %s to %s', instream, outfile) if not self.dry_run: if encoding is None: outstream = open(outfile, 'wb') else: outstream = codecs.open(outfile, 'w', encoding=encoding) try: shutil.copyfileobj(instream, outstream) finally: outstream.close() self.record_as_written(outfile) def write_binary_file(self, path, data): self.ensure_dir(os.path.dirname(path)) if not self.dry_run: if os.path.exists(path): os.remove(path) with open(path, 'wb') as f: f.write(data) self.record_as_written(path) def write_text_file(self, path, data, encoding): self.write_binary_file(path, data.encode(encoding)) def set_mode(self, bits, mask, files): if os.name == 'posix' or (os.name == 'java' and os._name == 'posix'): # Set the executable bits (owner, group, and world) on # all the files specified. for f in files: if self.dry_run: logger.info("changing mode of %s", f) else: mode = (os.stat(f).st_mode | bits) & mask logger.info("changing mode of %s to %o", f, mode) os.chmod(f, mode) set_executable_mode = lambda s, f: s.set_mode(0o555, 0o7777, f) def ensure_dir(self, path): path = os.path.abspath(path) if path not in self.ensured and not os.path.exists(path): self.ensured.add(path) d, f = os.path.split(path) self.ensure_dir(d) logger.info('Creating %s' % path) if not self.dry_run: os.mkdir(path) if self.record: self.dirs_created.add(path) def byte_compile(self, path, optimize=False, force=False, prefix=None, hashed_invalidation=False): dpath = cache_from_source(path, not optimize) logger.info('Byte-compiling %s to %s', path, dpath) if not self.dry_run: if force or self.newer(path, dpath): if not prefix: diagpath = None else: assert path.startswith(prefix) diagpath = path[len(prefix):] compile_kwargs = {} if hashed_invalidation and hasattr(py_compile, 'PycInvalidationMode'): compile_kwargs['invalidation_mode'] = py_compile.PycInvalidationMode.CHECKED_HASH py_compile.compile(path, dpath, diagpath, True, **compile_kwargs) # raise error self.record_as_written(dpath) return dpath def ensure_removed(self, path): if os.path.exists(path): if os.path.isdir(path) and not os.path.islink(path): logger.debug('Removing directory tree at %s', path) if not self.dry_run: shutil.rmtree(path) if self.record: if path in self.dirs_created: self.dirs_created.remove(path) else: if os.path.islink(path): s = 'link' else: s = 'file' logger.debug('Removing %s %s', s, path) if not self.dry_run: os.remove(path) if self.record: if path in self.files_written: self.files_written.remove(path) def is_writable(self, path): result = False while not result: if os.path.exists(path): result = os.access(path, os.W_OK) break parent = os.path.dirname(path) if parent == path: break path = parent return result def commit(self): """ Commit recorded changes, turn off recording, return changes. """ assert self.record result = self.files_written, self.dirs_created self._init_record() return result def rollback(self): if not self.dry_run: for f in list(self.files_written): if os.path.exists(f): os.remove(f) # dirs should all be empty now, except perhaps for # __pycache__ subdirs # reverse so that subdirs appear before their parents dirs = sorted(self.dirs_created, reverse=True) for d in dirs: flist = os.listdir(d) if flist: assert flist == ['__pycache__'] sd = os.path.join(d, flist[0]) os.rmdir(sd) os.rmdir(d) # should fail if non-empty self._init_record() def resolve(module_name, dotted_path): if module_name in sys.modules: mod = sys.modules[module_name] else: mod = __import__(module_name) if dotted_path is None: result = mod else: parts = dotted_path.split('.') result = getattr(mod, parts.pop(0)) for p in parts: result = getattr(result, p) return result class ExportEntry(object): def __init__(self, name, prefix, suffix, flags): self.name = name self.prefix = prefix self.suffix = suffix self.flags = flags @cached_property def value(self): return resolve(self.prefix, self.suffix) def __repr__(self): # pragma: no cover return '' % (self.name, self.prefix, self.suffix, self.flags) def __eq__(self, other): if not isinstance(other, ExportEntry): result = False else: result = (self.name == other.name and self.prefix == other.prefix and self.suffix == other.suffix and self.flags == other.flags) return result __hash__ = object.__hash__ ENTRY_RE = re.compile(r'''(?P(\w|[-.+])+) \s*=\s*(?P(\w+)([:\.]\w+)*) \s*(\[\s*(?P[\w-]+(=\w+)?(,\s*\w+(=\w+)?)*)\s*\])? ''', re.VERBOSE) def get_export_entry(specification): m = ENTRY_RE.search(specification) if not m: result = None if '[' in specification or ']' in specification: raise DistlibException("Invalid specification " "'%s'" % specification) else: d = m.groupdict() name = d['name'] path = d['callable'] colons = path.count(':') if colons == 0: prefix, suffix = path, None else: if colons != 1: raise DistlibException("Invalid specification " "'%s'" % specification) prefix, suffix = path.split(':') flags = d['flags'] if flags is None: if '[' in specification or ']' in specification: raise DistlibException("Invalid specification " "'%s'" % specification) flags = [] else: flags = [f.strip() for f in flags.split(',')] result = ExportEntry(name, prefix, suffix, flags) return result def get_cache_base(suffix=None): """ Return the default base location for distlib caches. If the directory does not exist, it is created. Use the suffix provided for the base directory, and default to '.distlib' if it isn't provided. On Windows, if LOCALAPPDATA is defined in the environment, then it is assumed to be a directory, and will be the parent directory of the result. On POSIX, and on Windows if LOCALAPPDATA is not defined, the user's home directory - using os.expanduser('~') - will be the parent directory of the result. The result is just the directory '.distlib' in the parent directory as determined above, or with the name specified with ``suffix``. """ if suffix is None: suffix = '.distlib' if os.name == 'nt' and 'LOCALAPPDATA' in os.environ: result = os.path.expandvars('$localappdata') else: # Assume posix, or old Windows result = os.path.expanduser('~') # we use 'isdir' instead of 'exists', because we want to # fail if there's a file with that name if os.path.isdir(result): usable = os.access(result, os.W_OK) if not usable: logger.warning('Directory exists but is not writable: %s', result) else: try: os.makedirs(result) usable = True except OSError: logger.warning('Unable to create %s', result, exc_info=True) usable = False if not usable: result = tempfile.mkdtemp() logger.warning('Default location unusable, using %s', result) return os.path.join(result, suffix) def path_to_cache_dir(path): """ Convert an absolute path to a directory name for use in a cache. The algorithm used is: #. On Windows, any ``':'`` in the drive is replaced with ``'---'``. #. Any occurrence of ``os.sep`` is replaced with ``'--'``. #. ``'.cache'`` is appended. """ d, p = os.path.splitdrive(os.path.abspath(path)) if d: d = d.replace(':', '---') p = p.replace(os.sep, '--') return d + p + '.cache' def ensure_slash(s): if not s.endswith('/'): return s + '/' return s def parse_credentials(netloc): username = password = None if '@' in netloc: prefix, netloc = netloc.rsplit('@', 1) if ':' not in prefix: username = prefix else: username, password = prefix.split(':', 1) if username: username = unquote(username) if password: password = unquote(password) return username, password, netloc def get_process_umask(): result = os.umask(0o22) os.umask(result) return result def is_string_sequence(seq): result = True i = None for i, s in enumerate(seq): if not isinstance(s, string_types): result = False break assert i is not None return result PROJECT_NAME_AND_VERSION = re.compile('([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-' '([a-z0-9_.+-]+)', re.I) PYTHON_VERSION = re.compile(r'-py(\d\.?\d?)') def split_filename(filename, project_name=None): """ Extract name, version, python version from a filename (no extension) Return name, version, pyver or None """ result = None pyver = None filename = unquote(filename).replace(' ', '-') m = PYTHON_VERSION.search(filename) if m: pyver = m.group(1) filename = filename[:m.start()] if project_name and len(filename) > len(project_name) + 1: m = re.match(re.escape(project_name) + r'\b', filename) if m: n = m.end() result = filename[:n], filename[n + 1:], pyver if result is None: m = PROJECT_NAME_AND_VERSION.match(filename) if m: result = m.group(1), m.group(3), pyver return result # Allow spaces in name because of legacy dists like "Twisted Core" NAME_VERSION_RE = re.compile(r'(?P[\w .-]+)\s*' r'\(\s*(?P[^\s)]+)\)$') def parse_name_and_version(p): """ A utility method used to get name and version from a string. From e.g. a Provides-Dist value. :param p: A value in a form 'foo (1.0)' :return: The name and version as a tuple. """ m = NAME_VERSION_RE.match(p) if not m: raise DistlibException('Ill-formed name/version string: \'%s\'' % p) d = m.groupdict() return d['name'].strip().lower(), d['ver'] def get_extras(requested, available): result = set() requested = set(requested or []) available = set(available or []) if '*' in requested: requested.remove('*') result |= available for r in requested: if r == '-': result.add(r) elif r.startswith('-'): unwanted = r[1:] if unwanted not in available: logger.warning('undeclared extra: %s' % unwanted) if unwanted in result: result.remove(unwanted) else: if r not in available: logger.warning('undeclared extra: %s' % r) result.add(r) return result # # Extended metadata functionality # def _get_external_data(url): result = {} try: # urlopen might fail if it runs into redirections, # because of Python issue #13696. Fixed in locators # using a custom redirect handler. resp = urlopen(url) headers = resp.info() ct = headers.get('Content-Type') if not ct.startswith('application/json'): logger.debug('Unexpected response for JSON request: %s', ct) else: reader = codecs.getreader('utf-8')(resp) #data = reader.read().decode('utf-8') #result = json.loads(data) result = json.load(reader) except Exception as e: logger.exception('Failed to get external data for %s: %s', url, e) return result _external_data_base_url = 'https://www.red-dove.com/pypi/projects/' def get_project_data(name): url = '%s/%s/project.json' % (name[0].upper(), name) url = urljoin(_external_data_base_url, url) result = _get_external_data(url) return result def get_package_data(name, version): url = '%s/%s/package-%s.json' % (name[0].upper(), name, version) url = urljoin(_external_data_base_url, url) return _get_external_data(url) class Cache(object): """ A class implementing a cache for resources that need to live in the file system e.g. shared libraries. This class was moved from resources to here because it could be used by other modules, e.g. the wheel module. """ def __init__(self, base): """ Initialise an instance. :param base: The base directory where the cache should be located. """ # we use 'isdir' instead of 'exists', because we want to # fail if there's a file with that name if not os.path.isdir(base): # pragma: no cover os.makedirs(base) if (os.stat(base).st_mode & 0o77) != 0: logger.warning('Directory \'%s\' is not private', base) self.base = os.path.abspath(os.path.normpath(base)) def prefix_to_dir(self, prefix): """ Converts a resource prefix to a directory name in the cache. """ return path_to_cache_dir(prefix) def clear(self): """ Clear the cache. """ not_removed = [] for fn in os.listdir(self.base): fn = os.path.join(self.base, fn) try: if os.path.islink(fn) or os.path.isfile(fn): os.remove(fn) elif os.path.isdir(fn): shutil.rmtree(fn) except Exception: not_removed.append(fn) return not_removed class EventMixin(object): """ A very simple publish/subscribe system. """ def __init__(self): self._subscribers = {} def add(self, event, subscriber, append=True): """ Add a subscriber for an event. :param event: The name of an event. :param subscriber: The subscriber to be added (and called when the event is published). :param append: Whether to append or prepend the subscriber to an existing subscriber list for the event. """ subs = self._subscribers if event not in subs: subs[event] = deque([subscriber]) else: sq = subs[event] if append: sq.append(subscriber) else: sq.appendleft(subscriber) def remove(self, event, subscriber): """ Remove a subscriber for an event. :param event: The name of an event. :param subscriber: The subscriber to be removed. """ subs = self._subscribers if event not in subs: raise ValueError('No subscribers: %r' % event) subs[event].remove(subscriber) def get_subscribers(self, event): """ Return an iterator for the subscribers for an event. :param event: The event to return subscribers for. """ return iter(self._subscribers.get(event, ())) def publish(self, event, *args, **kwargs): """ Publish a event and return a list of values returned by its subscribers. :param event: The event to publish. :param args: The positional arguments to pass to the event's subscribers. :param kwargs: The keyword arguments to pass to the event's subscribers. """ result = [] for subscriber in self.get_subscribers(event): try: value = subscriber(event, *args, **kwargs) except Exception: logger.exception('Exception during event publication') value = None result.append(value) logger.debug('publish %s: args = %s, kwargs = %s, result = %s', event, args, kwargs, result) return result # # Simple sequencing # class Sequencer(object): def __init__(self): self._preds = {} self._succs = {} self._nodes = set() # nodes with no preds/succs def add_node(self, node): self._nodes.add(node) def remove_node(self, node, edges=False): if node in self._nodes: self._nodes.remove(node) if edges: for p in set(self._preds.get(node, ())): self.remove(p, node) for s in set(self._succs.get(node, ())): self.remove(node, s) # Remove empties for k, v in list(self._preds.items()): if not v: del self._preds[k] for k, v in list(self._succs.items()): if not v: del self._succs[k] def add(self, pred, succ): assert pred != succ self._preds.setdefault(succ, set()).add(pred) self._succs.setdefault(pred, set()).add(succ) def remove(self, pred, succ): assert pred != succ try: preds = self._preds[succ] succs = self._succs[pred] except KeyError: # pragma: no cover raise ValueError('%r not a successor of anything' % succ) try: preds.remove(pred) succs.remove(succ) except KeyError: # pragma: no cover raise ValueError('%r not a successor of %r' % (succ, pred)) def is_step(self, step): return (step in self._preds or step in self._succs or step in self._nodes) def get_steps(self, final): if not self.is_step(final): raise ValueError('Unknown: %r' % final) result = [] todo = [] seen = set() todo.append(final) while todo: step = todo.pop(0) if step in seen: # if a step was already seen, # move it to the end (so it will appear earlier # when reversed on return) ... but not for the # final step, as that would be confusing for # users if step != final: result.remove(step) result.append(step) else: seen.add(step) result.append(step) preds = self._preds.get(step, ()) todo.extend(preds) return reversed(result) @property def strong_connections(self): #http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm index_counter = [0] stack = [] lowlinks = {} index = {} result = [] graph = self._succs def strongconnect(node): # set the depth index for this node to the smallest unused index index[node] = index_counter[0] lowlinks[node] = index_counter[0] index_counter[0] += 1 stack.append(node) # Consider successors try: successors = graph[node] except Exception: successors = [] for successor in successors: if successor not in lowlinks: # Successor has not yet been visited strongconnect(successor) lowlinks[node] = min(lowlinks[node],lowlinks[successor]) elif successor in stack: # the successor is in the stack and hence in the current # strongly connected component (SCC) lowlinks[node] = min(lowlinks[node],index[successor]) # If `node` is a root node, pop the stack and generate an SCC if lowlinks[node] == index[node]: connected_component = [] while True: successor = stack.pop() connected_component.append(successor) if successor == node: break component = tuple(connected_component) # storing the result result.append(component) for node in graph: if node not in lowlinks: strongconnect(node) return result @property def dot(self): result = ['digraph G {'] for succ in self._preds: preds = self._preds[succ] for pred in preds: result.append(' %s -> %s;' % (pred, succ)) for node in self._nodes: result.append(' %s;' % node) result.append('}') return '\n'.join(result) # # Unarchiving functionality for zip, tar, tgz, tbz, whl # ARCHIVE_EXTENSIONS = ('.tar.gz', '.tar.bz2', '.tar', '.zip', '.tgz', '.tbz', '.whl') def unarchive(archive_filename, dest_dir, format=None, check=True): def check_path(path): if not isinstance(path, text_type): path = path.decode('utf-8') p = os.path.abspath(os.path.join(dest_dir, path)) if not p.startswith(dest_dir) or p[plen] != os.sep: raise ValueError('path outside destination: %r' % p) dest_dir = os.path.abspath(dest_dir) plen = len(dest_dir) archive = None if format is None: if archive_filename.endswith(('.zip', '.whl')): format = 'zip' elif archive_filename.endswith(('.tar.gz', '.tgz')): format = 'tgz' mode = 'r:gz' elif archive_filename.endswith(('.tar.bz2', '.tbz')): format = 'tbz' mode = 'r:bz2' elif archive_filename.endswith('.tar'): format = 'tar' mode = 'r' else: # pragma: no cover raise ValueError('Unknown format for %r' % archive_filename) try: if format == 'zip': archive = ZipFile(archive_filename, 'r') if check: names = archive.namelist() for name in names: check_path(name) else: archive = tarfile.open(archive_filename, mode) if check: names = archive.getnames() for name in names: check_path(name) if format != 'zip' and sys.version_info[0] < 3: # See Python issue 17153. If the dest path contains Unicode, # tarfile extraction fails on Python 2.x if a member path name # contains non-ASCII characters - it leads to an implicit # bytes -> unicode conversion using ASCII to decode. for tarinfo in archive.getmembers(): if not isinstance(tarinfo.name, text_type): tarinfo.name = tarinfo.name.decode('utf-8') archive.extractall(dest_dir) finally: if archive: archive.close() def zip_dir(directory): """zip a directory tree into a BytesIO object""" result = io.BytesIO() dlen = len(directory) with ZipFile(result, "w") as zf: for root, dirs, files in os.walk(directory): for name in files: full = os.path.join(root, name) rel = root[dlen:] dest = os.path.join(rel, name) zf.write(full, dest) return result # # Simple progress bar # UNITS = ('', 'K', 'M', 'G','T','P') class Progress(object): unknown = 'UNKNOWN' def __init__(self, minval=0, maxval=100): assert maxval is None or maxval >= minval self.min = self.cur = minval self.max = maxval self.started = None self.elapsed = 0 self.done = False def update(self, curval): assert self.min <= curval assert self.max is None or curval <= self.max self.cur = curval now = time.time() if self.started is None: self.started = now else: self.elapsed = now - self.started def increment(self, incr): assert incr >= 0 self.update(self.cur + incr) def start(self): self.update(self.min) return self def stop(self): if self.max is not None: self.update(self.max) self.done = True @property def maximum(self): return self.unknown if self.max is None else self.max @property def percentage(self): if self.done: result = '100 %' elif self.max is None: result = ' ?? %' else: v = 100.0 * (self.cur - self.min) / (self.max - self.min) result = '%3d %%' % v return result def format_duration(self, duration): if (duration <= 0) and self.max is None or self.cur == self.min: result = '??:??:??' #elif duration < 1: # result = '--:--:--' else: result = time.strftime('%H:%M:%S', time.gmtime(duration)) return result @property def ETA(self): if self.done: prefix = 'Done' t = self.elapsed #import pdb; pdb.set_trace() else: prefix = 'ETA ' if self.max is None: t = -1 elif self.elapsed == 0 or (self.cur == self.min): t = 0 else: #import pdb; pdb.set_trace() t = float(self.max - self.min) t /= self.cur - self.min t = (t - 1) * self.elapsed return '%s: %s' % (prefix, self.format_duration(t)) @property def speed(self): if self.elapsed == 0: result = 0.0 else: result = (self.cur - self.min) / self.elapsed for unit in UNITS: if result < 1000: break result /= 1000.0 return '%d %sB/s' % (result, unit) # # Glob functionality # RICH_GLOB = re.compile(r'\{([^}]*)\}') _CHECK_RECURSIVE_GLOB = re.compile(r'[^/\\,{]\*\*|\*\*[^/\\,}]') _CHECK_MISMATCH_SET = re.compile(r'^[^{]*\}|\{[^}]*$') def iglob(path_glob): """Extended globbing function that supports ** and {opt1,opt2,opt3}.""" if _CHECK_RECURSIVE_GLOB.search(path_glob): msg = """invalid glob %r: recursive glob "**" must be used alone""" raise ValueError(msg % path_glob) if _CHECK_MISMATCH_SET.search(path_glob): msg = """invalid glob %r: mismatching set marker '{' or '}'""" raise ValueError(msg % path_glob) return _iglob(path_glob) def _iglob(path_glob): rich_path_glob = RICH_GLOB.split(path_glob, 1) if len(rich_path_glob) > 1: assert len(rich_path_glob) == 3, rich_path_glob prefix, set, suffix = rich_path_glob for item in set.split(','): for path in _iglob(''.join((prefix, item, suffix))): yield path else: if '**' not in path_glob: for item in std_iglob(path_glob): yield item else: prefix, radical = path_glob.split('**', 1) if prefix == '': prefix = '.' if radical == '': radical = '*' else: # we support both radical = radical.lstrip('/') radical = radical.lstrip('\\') for path, dir, files in os.walk(prefix): path = os.path.normpath(path) for fn in _iglob(os.path.join(path, radical)): yield fn if ssl: from .compat import (HTTPSHandler as BaseHTTPSHandler, match_hostname, CertificateError) # # HTTPSConnection which verifies certificates/matches domains # class HTTPSConnection(httplib.HTTPSConnection): ca_certs = None # set this to the path to the certs file (.pem) check_domain = True # only used if ca_certs is not None # noinspection PyPropertyAccess def connect(self): sock = socket.create_connection((self.host, self.port), self.timeout) if getattr(self, '_tunnel_host', False): self.sock = sock self._tunnel() context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) if hasattr(ssl, 'OP_NO_SSLv2'): context.options |= ssl.OP_NO_SSLv2 if self.cert_file: context.load_cert_chain(self.cert_file, self.key_file) kwargs = {} if self.ca_certs: context.verify_mode = ssl.CERT_REQUIRED context.load_verify_locations(cafile=self.ca_certs) if getattr(ssl, 'HAS_SNI', False): kwargs['server_hostname'] = self.host self.sock = context.wrap_socket(sock, **kwargs) if self.ca_certs and self.check_domain: try: match_hostname(self.sock.getpeercert(), self.host) logger.debug('Host verified: %s', self.host) except CertificateError: # pragma: no cover self.sock.shutdown(socket.SHUT_RDWR) self.sock.close() raise class HTTPSHandler(BaseHTTPSHandler): def __init__(self, ca_certs, check_domain=True): BaseHTTPSHandler.__init__(self) self.ca_certs = ca_certs self.check_domain = check_domain def _conn_maker(self, *args, **kwargs): """ This is called to create a connection instance. Normally you'd pass a connection class to do_open, but it doesn't actually check for a class, and just expects a callable. As long as we behave just as a constructor would have, we should be OK. If it ever changes so that we *must* pass a class, we'll create an UnsafeHTTPSConnection class which just sets check_domain to False in the class definition, and choose which one to pass to do_open. """ result = HTTPSConnection(*args, **kwargs) if self.ca_certs: result.ca_certs = self.ca_certs result.check_domain = self.check_domain return result def https_open(self, req): try: return self.do_open(self._conn_maker, req) except URLError as e: if 'certificate verify failed' in str(e.reason): raise CertificateError('Unable to verify server certificate ' 'for %s' % req.host) else: raise # # To prevent against mixing HTTP traffic with HTTPS (examples: A Man-In-The- # Middle proxy using HTTP listens on port 443, or an index mistakenly serves # HTML containing a http://xyz link when it should be https://xyz), # you can use the following handler class, which does not allow HTTP traffic. # # It works by inheriting from HTTPHandler - so build_opener won't add a # handler for HTTP itself. # class HTTPSOnlyHandler(HTTPSHandler, HTTPHandler): def http_open(self, req): raise URLError('Unexpected HTTP request on what should be a secure ' 'connection: %s' % req) # # XML-RPC with timeouts # class Transport(xmlrpclib.Transport): def __init__(self, timeout, use_datetime=0): self.timeout = timeout xmlrpclib.Transport.__init__(self, use_datetime) def make_connection(self, host): h, eh, x509 = self.get_host_info(host) if not self._connection or host != self._connection[0]: self._extra_headers = eh self._connection = host, httplib.HTTPConnection(h) return self._connection[1] if ssl: class SafeTransport(xmlrpclib.SafeTransport): def __init__(self, timeout, use_datetime=0): self.timeout = timeout xmlrpclib.SafeTransport.__init__(self, use_datetime) def make_connection(self, host): h, eh, kwargs = self.get_host_info(host) if not kwargs: kwargs = {} kwargs['timeout'] = self.timeout if not self._connection or host != self._connection[0]: self._extra_headers = eh self._connection = host, httplib.HTTPSConnection(h, None, **kwargs) return self._connection[1] class ServerProxy(xmlrpclib.ServerProxy): def __init__(self, uri, **kwargs): self.timeout = timeout = kwargs.pop('timeout', None) # The above classes only come into play if a timeout # is specified if timeout is not None: # scheme = splittype(uri) # deprecated as of Python 3.8 scheme = urlparse(uri)[0] use_datetime = kwargs.get('use_datetime', 0) if scheme == 'https': tcls = SafeTransport else: tcls = Transport kwargs['transport'] = t = tcls(timeout, use_datetime=use_datetime) self.transport = t xmlrpclib.ServerProxy.__init__(self, uri, **kwargs) # # CSV functionality. This is provided because on 2.x, the csv module can't # handle Unicode. However, we need to deal with Unicode in e.g. RECORD files. # def _csv_open(fn, mode, **kwargs): if sys.version_info[0] < 3: mode += 'b' else: kwargs['newline'] = '' # Python 3 determines encoding from locale. Force 'utf-8' # file encoding to match other forced utf-8 encoding kwargs['encoding'] = 'utf-8' return open(fn, mode, **kwargs) class CSVBase(object): defaults = { 'delimiter': str(','), # The strs are used because we need native 'quotechar': str('"'), # str in the csv API (2.x won't take 'lineterminator': str('\n') # Unicode) } def __enter__(self): return self def __exit__(self, *exc_info): self.stream.close() class CSVReader(CSVBase): def __init__(self, **kwargs): if 'stream' in kwargs: stream = kwargs['stream'] if sys.version_info[0] >= 3: # needs to be a text stream stream = codecs.getreader('utf-8')(stream) self.stream = stream else: self.stream = _csv_open(kwargs['path'], 'r') self.reader = csv.reader(self.stream, **self.defaults) def __iter__(self): return self def next(self): result = next(self.reader) if sys.version_info[0] < 3: for i, item in enumerate(result): if not isinstance(item, text_type): result[i] = item.decode('utf-8') return result __next__ = next class CSVWriter(CSVBase): def __init__(self, fn, **kwargs): self.stream = _csv_open(fn, 'w') self.writer = csv.writer(self.stream, **self.defaults) def writerow(self, row): if sys.version_info[0] < 3: r = [] for item in row: if isinstance(item, text_type): item = item.encode('utf-8') r.append(item) row = r self.writer.writerow(row) # # Configurator functionality # class Configurator(BaseConfigurator): value_converters = dict(BaseConfigurator.value_converters) value_converters['inc'] = 'inc_convert' def __init__(self, config, base=None): super(Configurator, self).__init__(config) self.base = base or os.getcwd() def configure_custom(self, config): def convert(o): if isinstance(o, (list, tuple)): result = type(o)([convert(i) for i in o]) elif isinstance(o, dict): if '()' in o: result = self.configure_custom(o) else: result = {} for k in o: result[k] = convert(o[k]) else: result = self.convert(o) return result c = config.pop('()') if not callable(c): c = self.resolve(c) props = config.pop('.', None) # Check for valid identifiers args = config.pop('[]', ()) if args: args = tuple([convert(o) for o in args]) items = [(k, convert(config[k])) for k in config if valid_ident(k)] kwargs = dict(items) result = c(*args, **kwargs) if props: for n, v in props.items(): setattr(result, n, convert(v)) return result def __getitem__(self, key): result = self.config[key] if isinstance(result, dict) and '()' in result: self.config[key] = result = self.configure_custom(result) return result def inc_convert(self, value): """Default converter for the inc:// protocol.""" if not os.path.isabs(value): value = os.path.join(self.base, value) with codecs.open(value, 'r', encoding='utf-8') as f: result = json.load(f) return result class SubprocessMixin(object): """ Mixin for running subprocesses and capturing their output """ def __init__(self, verbose=False, progress=None): self.verbose = verbose self.progress = progress def reader(self, stream, context): """ Read lines from a subprocess' output stream and either pass to a progress callable (if specified) or write progress information to sys.stderr. """ progress = self.progress verbose = self.verbose while True: s = stream.readline() if not s: break if progress is not None: progress(s, context) else: if not verbose: sys.stderr.write('.') else: sys.stderr.write(s.decode('utf-8')) sys.stderr.flush() stream.close() def run_command(self, cmd, **kwargs): p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, **kwargs) t1 = threading.Thread(target=self.reader, args=(p.stdout, 'stdout')) t1.start() t2 = threading.Thread(target=self.reader, args=(p.stderr, 'stderr')) t2.start() p.wait() t1.join() t2.join() if self.progress is not None: self.progress('done.', 'main') elif self.verbose: sys.stderr.write('done.\n') return p def normalize_name(name): """Normalize a python package name a la PEP 503""" # https://www.python.org/dev/peps/pep-0503/#normalized-names return re.sub('[-_.]+', '-', name).lower() # def _get_pypirc_command(): # """ # Get the distutils command for interacting with PyPI configurations. # :return: the command. # """ # from distutils.core import Distribution # from distutils.config import PyPIRCCommand # d = Distribution() # return PyPIRCCommand(d) class PyPIRCFile(object): DEFAULT_REPOSITORY = 'https://upload.pypi.org/legacy/' DEFAULT_REALM = 'pypi' def __init__(self, fn=None, url=None): if fn is None: fn = os.path.join(os.path.expanduser('~'), '.pypirc') self.filename = fn self.url = url def read(self): result = {} if os.path.exists(self.filename): repository = self.url or self.DEFAULT_REPOSITORY config = configparser.RawConfigParser() config.read(self.filename) sections = config.sections() if 'distutils' in sections: # let's get the list of servers index_servers = config.get('distutils', 'index-servers') _servers = [server.strip() for server in index_servers.split('\n') if server.strip() != ''] if _servers == []: # nothing set, let's try to get the default pypi if 'pypi' in sections: _servers = ['pypi'] else: for server in _servers: result = {'server': server} result['username'] = config.get(server, 'username') # optional params for key, default in (('repository', self.DEFAULT_REPOSITORY), ('realm', self.DEFAULT_REALM), ('password', None)): if config.has_option(server, key): result[key] = config.get(server, key) else: result[key] = default # work around people having "repository" for the "pypi" # section of their config set to the HTTP (rather than # HTTPS) URL if (server == 'pypi' and repository in (self.DEFAULT_REPOSITORY, 'pypi')): result['repository'] = self.DEFAULT_REPOSITORY elif (result['server'] != repository and result['repository'] != repository): result = {} elif 'server-login' in sections: # old format server = 'server-login' if config.has_option(server, 'repository'): repository = config.get(server, 'repository') else: repository = self.DEFAULT_REPOSITORY result = { 'username': config.get(server, 'username'), 'password': config.get(server, 'password'), 'repository': repository, 'server': server, 'realm': self.DEFAULT_REALM } return result def update(self, username, password): # import pdb; pdb.set_trace() config = configparser.RawConfigParser() fn = self.filename config.read(fn) if not config.has_section('pypi'): config.add_section('pypi') config.set('pypi', 'username', username) config.set('pypi', 'password', password) with open(fn, 'w') as f: config.write(f) def _load_pypirc(index): """ Read the PyPI access configuration as supported by distutils. """ return PyPIRCFile(url=index.url).read() def _store_pypirc(index): PyPIRCFile().update(index.username, index.password) # # get_platform()/get_host_platform() copied from Python 3.10.a0 source, with some minor # tweaks # def get_host_platform(): """Return a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. on Linux, the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. """ if os.name == 'nt': if 'amd64' in sys.version.lower(): return 'win-amd64' if '(arm)' in sys.version.lower(): return 'win-arm32' if '(arm64)' in sys.version.lower(): return 'win-arm64' return sys.platform # Set for cross builds explicitly if "_PYTHON_HOST_PLATFORM" in os.environ: return os.environ["_PYTHON_HOST_PLATFORM"] if os.name != 'posix' or not hasattr(os, 'uname'): # XXX what about the architecture? NT is Intel or Alpha, # Mac OS is M68k or PPC, etc. return sys.platform # Try to distinguish various flavours of Unix (osname, host, release, version, machine) = os.uname() # Convert the OS name to lowercase, remove '/' characters, and translate # spaces (for "Power Macintosh") osname = osname.lower().replace('/', '') machine = machine.replace(' ', '_').replace('/', '-') if osname[:5] == 'linux': # At least on Linux/Intel, 'machine' is the processor -- # i386, etc. # XXX what about Alpha, SPARC, etc? return "%s-%s" % (osname, machine) elif osname[:5] == 'sunos': if release[0] >= '5': # SunOS 5 == Solaris 2 osname = 'solaris' release = '%d.%s' % (int(release[0]) - 3, release[2:]) # We can't use 'platform.architecture()[0]' because a # bootstrap problem. We use a dict to get an error # if some suspicious happens. bitness = {2147483647:'32bit', 9223372036854775807:'64bit'} machine += '.%s' % bitness[sys.maxsize] # fall through to standard osname-release-machine representation elif osname[:3] == 'aix': from _aix_support import aix_platform return aix_platform() elif osname[:6] == 'cygwin': osname = 'cygwin' rel_re = re.compile (r'[\d.]+', re.ASCII) m = rel_re.match(release) if m: release = m.group() elif osname[:6] == 'darwin': import _osx_support, distutils.sysconfig osname, release, machine = _osx_support.get_platform_osx( distutils.sysconfig.get_config_vars(), osname, release, machine) return '%s-%s-%s' % (osname, release, machine) _TARGET_TO_PLAT = { 'x86' : 'win32', 'x64' : 'win-amd64', 'arm' : 'win-arm32', } def get_platform(): if os.name != 'nt': return get_host_platform() cross_compilation_target = os.environ.get('VSCMD_ARG_TGT_ARCH') if cross_compilation_target not in _TARGET_TO_PLAT: return get_host_platform() return _TARGET_TO_PLAT[cross_compilation_target] PKx"T2[[@__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/version.py# -*- coding: utf-8 -*- # # Copyright (C) 2012-2017 The Python Software Foundation. # See LICENSE.txt and CONTRIBUTORS.txt. # """ Implementation of a flexible versioning scheme providing support for PEP-440, setuptools-compatible and semantic versioning. """ import logging import re from .compat import string_types from .util import parse_requirement __all__ = ['NormalizedVersion', 'NormalizedMatcher', 'LegacyVersion', 'LegacyMatcher', 'SemanticVersion', 'SemanticMatcher', 'UnsupportedVersionError', 'get_scheme'] logger = logging.getLogger(__name__) class UnsupportedVersionError(ValueError): """This is an unsupported version.""" pass class Version(object): def __init__(self, s): self._string = s = s.strip() self._parts = parts = self.parse(s) assert isinstance(parts, tuple) assert len(parts) > 0 def parse(self, s): raise NotImplementedError('please implement in a subclass') def _check_compatible(self, other): if type(self) != type(other): raise TypeError('cannot compare %r and %r' % (self, other)) def __eq__(self, other): self._check_compatible(other) return self._parts == other._parts def __ne__(self, other): return not self.__eq__(other) def __lt__(self, other): self._check_compatible(other) return self._parts < other._parts def __gt__(self, other): return not (self.__lt__(other) or self.__eq__(other)) def __le__(self, other): return self.__lt__(other) or self.__eq__(other) def __ge__(self, other): return self.__gt__(other) or self.__eq__(other) # See http://docs.python.org/reference/datamodel#object.__hash__ def __hash__(self): return hash(self._parts) def __repr__(self): return "%s('%s')" % (self.__class__.__name__, self._string) def __str__(self): return self._string @property def is_prerelease(self): raise NotImplementedError('Please implement in subclasses.') class Matcher(object): version_class = None # value is either a callable or the name of a method _operators = { '<': lambda v, c, p: v < c, '>': lambda v, c, p: v > c, '<=': lambda v, c, p: v == c or v < c, '>=': lambda v, c, p: v == c or v > c, '==': lambda v, c, p: v == c, '===': lambda v, c, p: v == c, # by default, compatible => >=. '~=': lambda v, c, p: v == c or v > c, '!=': lambda v, c, p: v != c, } # this is a method only to support alternative implementations # via overriding def parse_requirement(self, s): return parse_requirement(s) def __init__(self, s): if self.version_class is None: raise ValueError('Please specify a version class') self._string = s = s.strip() r = self.parse_requirement(s) if not r: raise ValueError('Not valid: %r' % s) self.name = r.name self.key = self.name.lower() # for case-insensitive comparisons clist = [] if r.constraints: # import pdb; pdb.set_trace() for op, s in r.constraints: if s.endswith('.*'): if op not in ('==', '!='): raise ValueError('\'.*\' not allowed for ' '%r constraints' % op) # Could be a partial version (e.g. for '2.*') which # won't parse as a version, so keep it as a string vn, prefix = s[:-2], True # Just to check that vn is a valid version self.version_class(vn) else: # Should parse as a version, so we can create an # instance for the comparison vn, prefix = self.version_class(s), False clist.append((op, vn, prefix)) self._parts = tuple(clist) def match(self, version): """ Check if the provided version matches the constraints. :param version: The version to match against this instance. :type version: String or :class:`Version` instance. """ if isinstance(version, string_types): version = self.version_class(version) for operator, constraint, prefix in self._parts: f = self._operators.get(operator) if isinstance(f, string_types): f = getattr(self, f) if not f: msg = ('%r not implemented ' 'for %s' % (operator, self.__class__.__name__)) raise NotImplementedError(msg) if not f(version, constraint, prefix): return False return True @property def exact_version(self): result = None if len(self._parts) == 1 and self._parts[0][0] in ('==', '==='): result = self._parts[0][1] return result def _check_compatible(self, other): if type(self) != type(other) or self.name != other.name: raise TypeError('cannot compare %s and %s' % (self, other)) def __eq__(self, other): self._check_compatible(other) return self.key == other.key and self._parts == other._parts def __ne__(self, other): return not self.__eq__(other) # See http://docs.python.org/reference/datamodel#object.__hash__ def __hash__(self): return hash(self.key) + hash(self._parts) def __repr__(self): return "%s(%r)" % (self.__class__.__name__, self._string) def __str__(self): return self._string PEP440_VERSION_RE = re.compile(r'^v?(\d+!)?(\d+(\.\d+)*)((a|b|c|rc)(\d+))?' r'(\.(post)(\d+))?(\.(dev)(\d+))?' r'(\+([a-zA-Z\d]+(\.[a-zA-Z\d]+)?))?$') def _pep_440_key(s): s = s.strip() m = PEP440_VERSION_RE.match(s) if not m: raise UnsupportedVersionError('Not a valid version: %s' % s) groups = m.groups() nums = tuple(int(v) for v in groups[1].split('.')) while len(nums) > 1 and nums[-1] == 0: nums = nums[:-1] if not groups[0]: epoch = 0 else: epoch = int(groups[0][:-1]) pre = groups[4:6] post = groups[7:9] dev = groups[10:12] local = groups[13] if pre == (None, None): pre = () else: pre = pre[0], int(pre[1]) if post == (None, None): post = () else: post = post[0], int(post[1]) if dev == (None, None): dev = () else: dev = dev[0], int(dev[1]) if local is None: local = () else: parts = [] for part in local.split('.'): # to ensure that numeric compares as > lexicographic, avoid # comparing them directly, but encode a tuple which ensures # correct sorting if part.isdigit(): part = (1, int(part)) else: part = (0, part) parts.append(part) local = tuple(parts) if not pre: # either before pre-release, or final release and after if not post and dev: # before pre-release pre = ('a', -1) # to sort before a0 else: pre = ('z',) # to sort after all pre-releases # now look at the state of post and dev. if not post: post = ('_',) # sort before 'a' if not dev: dev = ('final',) #print('%s -> %s' % (s, m.groups())) return epoch, nums, pre, post, dev, local _normalized_key = _pep_440_key class NormalizedVersion(Version): """A rational version. Good: 1.2 # equivalent to "1.2.0" 1.2.0 1.2a1 1.2.3a2 1.2.3b1 1.2.3c1 1.2.3.4 TODO: fill this out Bad: 1 # minimum two numbers 1.2a # release level must have a release serial 1.2.3b """ def parse(self, s): result = _normalized_key(s) # _normalized_key loses trailing zeroes in the release # clause, since that's needed to ensure that X.Y == X.Y.0 == X.Y.0.0 # However, PEP 440 prefix matching needs it: for example, # (~= 1.4.5.0) matches differently to (~= 1.4.5.0.0). m = PEP440_VERSION_RE.match(s) # must succeed groups = m.groups() self._release_clause = tuple(int(v) for v in groups[1].split('.')) return result PREREL_TAGS = set(['a', 'b', 'c', 'rc', 'dev']) @property def is_prerelease(self): return any(t[0] in self.PREREL_TAGS for t in self._parts if t) def _match_prefix(x, y): x = str(x) y = str(y) if x == y: return True if not x.startswith(y): return False n = len(y) return x[n] == '.' class NormalizedMatcher(Matcher): version_class = NormalizedVersion # value is either a callable or the name of a method _operators = { '~=': '_match_compatible', '<': '_match_lt', '>': '_match_gt', '<=': '_match_le', '>=': '_match_ge', '==': '_match_eq', '===': '_match_arbitrary', '!=': '_match_ne', } def _adjust_local(self, version, constraint, prefix): if prefix: strip_local = '+' not in constraint and version._parts[-1] else: # both constraint and version are # NormalizedVersion instances. # If constraint does not have a local component, # ensure the version doesn't, either. strip_local = not constraint._parts[-1] and version._parts[-1] if strip_local: s = version._string.split('+', 1)[0] version = self.version_class(s) return version, constraint def _match_lt(self, version, constraint, prefix): version, constraint = self._adjust_local(version, constraint, prefix) if version >= constraint: return False release_clause = constraint._release_clause pfx = '.'.join([str(i) for i in release_clause]) return not _match_prefix(version, pfx) def _match_gt(self, version, constraint, prefix): version, constraint = self._adjust_local(version, constraint, prefix) if version <= constraint: return False release_clause = constraint._release_clause pfx = '.'.join([str(i) for i in release_clause]) return not _match_prefix(version, pfx) def _match_le(self, version, constraint, prefix): version, constraint = self._adjust_local(version, constraint, prefix) return version <= constraint def _match_ge(self, version, constraint, prefix): version, constraint = self._adjust_local(version, constraint, prefix) return version >= constraint def _match_eq(self, version, constraint, prefix): version, constraint = self._adjust_local(version, constraint, prefix) if not prefix: result = (version == constraint) else: result = _match_prefix(version, constraint) return result def _match_arbitrary(self, version, constraint, prefix): return str(version) == str(constraint) def _match_ne(self, version, constraint, prefix): version, constraint = self._adjust_local(version, constraint, prefix) if not prefix: result = (version != constraint) else: result = not _match_prefix(version, constraint) return result def _match_compatible(self, version, constraint, prefix): version, constraint = self._adjust_local(version, constraint, prefix) if version == constraint: return True if version < constraint: return False # if not prefix: # return True release_clause = constraint._release_clause if len(release_clause) > 1: release_clause = release_clause[:-1] pfx = '.'.join([str(i) for i in release_clause]) return _match_prefix(version, pfx) _REPLACEMENTS = ( (re.compile('[.+-]$'), ''), # remove trailing puncts (re.compile(r'^[.](\d)'), r'0.\1'), # .N -> 0.N at start (re.compile('^[.-]'), ''), # remove leading puncts (re.compile(r'^\((.*)\)$'), r'\1'), # remove parentheses (re.compile(r'^v(ersion)?\s*(\d+)'), r'\2'), # remove leading v(ersion) (re.compile(r'^r(ev)?\s*(\d+)'), r'\2'), # remove leading v(ersion) (re.compile('[.]{2,}'), '.'), # multiple runs of '.' (re.compile(r'\b(alfa|apha)\b'), 'alpha'), # misspelt alpha (re.compile(r'\b(pre-alpha|prealpha)\b'), 'pre.alpha'), # standardise (re.compile(r'\(beta\)$'), 'beta'), # remove parentheses ) _SUFFIX_REPLACEMENTS = ( (re.compile('^[:~._+-]+'), ''), # remove leading puncts (re.compile('[,*")([\\]]'), ''), # remove unwanted chars (re.compile('[~:+_ -]'), '.'), # replace illegal chars (re.compile('[.]{2,}'), '.'), # multiple runs of '.' (re.compile(r'\.$'), ''), # trailing '.' ) _NUMERIC_PREFIX = re.compile(r'(\d+(\.\d+)*)') def _suggest_semantic_version(s): """ Try to suggest a semantic form for a version for which _suggest_normalized_version couldn't come up with anything. """ result = s.strip().lower() for pat, repl in _REPLACEMENTS: result = pat.sub(repl, result) if not result: result = '0.0.0' # Now look for numeric prefix, and separate it out from # the rest. #import pdb; pdb.set_trace() m = _NUMERIC_PREFIX.match(result) if not m: prefix = '0.0.0' suffix = result else: prefix = m.groups()[0].split('.') prefix = [int(i) for i in prefix] while len(prefix) < 3: prefix.append(0) if len(prefix) == 3: suffix = result[m.end():] else: suffix = '.'.join([str(i) for i in prefix[3:]]) + result[m.end():] prefix = prefix[:3] prefix = '.'.join([str(i) for i in prefix]) suffix = suffix.strip() if suffix: #import pdb; pdb.set_trace() # massage the suffix. for pat, repl in _SUFFIX_REPLACEMENTS: suffix = pat.sub(repl, suffix) if not suffix: result = prefix else: sep = '-' if 'dev' in suffix else '+' result = prefix + sep + suffix if not is_semver(result): result = None return result def _suggest_normalized_version(s): """Suggest a normalized version close to the given version string. If you have a version string that isn't rational (i.e. NormalizedVersion doesn't like it) then you might be able to get an equivalent (or close) rational version from this function. This does a number of simple normalizations to the given string, based on observation of versions currently in use on PyPI. Given a dump of those version during PyCon 2009, 4287 of them: - 2312 (53.93%) match NormalizedVersion without change with the automatic suggestion - 3474 (81.04%) match when using this suggestion method @param s {str} An irrational version string. @returns A rational version string, or None, if couldn't determine one. """ try: _normalized_key(s) return s # already rational except UnsupportedVersionError: pass rs = s.lower() # part of this could use maketrans for orig, repl in (('-alpha', 'a'), ('-beta', 'b'), ('alpha', 'a'), ('beta', 'b'), ('rc', 'c'), ('-final', ''), ('-pre', 'c'), ('-release', ''), ('.release', ''), ('-stable', ''), ('+', '.'), ('_', '.'), (' ', ''), ('.final', ''), ('final', '')): rs = rs.replace(orig, repl) # if something ends with dev or pre, we add a 0 rs = re.sub(r"pre$", r"pre0", rs) rs = re.sub(r"dev$", r"dev0", rs) # if we have something like "b-2" or "a.2" at the end of the # version, that is probably beta, alpha, etc # let's remove the dash or dot rs = re.sub(r"([abc]|rc)[\-\.](\d+)$", r"\1\2", rs) # 1.0-dev-r371 -> 1.0.dev371 # 0.1-dev-r79 -> 0.1.dev79 rs = re.sub(r"[\-\.](dev)[\-\.]?r?(\d+)$", r".\1\2", rs) # Clean: 2.0.a.3, 2.0.b1, 0.9.0~c1 rs = re.sub(r"[.~]?([abc])\.?", r"\1", rs) # Clean: v0.3, v1.0 if rs.startswith('v'): rs = rs[1:] # Clean leading '0's on numbers. #TODO: unintended side-effect on, e.g., "2003.05.09" # PyPI stats: 77 (~2%) better rs = re.sub(r"\b0+(\d+)(?!\d)", r"\1", rs) # Clean a/b/c with no version. E.g. "1.0a" -> "1.0a0". Setuptools infers # zero. # PyPI stats: 245 (7.56%) better rs = re.sub(r"(\d+[abc])$", r"\g<1>0", rs) # the 'dev-rNNN' tag is a dev tag rs = re.sub(r"\.?(dev-r|dev\.r)\.?(\d+)$", r".dev\2", rs) # clean the - when used as a pre delimiter rs = re.sub(r"-(a|b|c)(\d+)$", r"\1\2", rs) # a terminal "dev" or "devel" can be changed into ".dev0" rs = re.sub(r"[\.\-](dev|devel)$", r".dev0", rs) # a terminal "dev" can be changed into ".dev0" rs = re.sub(r"(?![\.\-])dev$", r".dev0", rs) # a terminal "final" or "stable" can be removed rs = re.sub(r"(final|stable)$", "", rs) # The 'r' and the '-' tags are post release tags # 0.4a1.r10 -> 0.4a1.post10 # 0.9.33-17222 -> 0.9.33.post17222 # 0.9.33-r17222 -> 0.9.33.post17222 rs = re.sub(r"\.?(r|-|-r)\.?(\d+)$", r".post\2", rs) # Clean 'r' instead of 'dev' usage: # 0.9.33+r17222 -> 0.9.33.dev17222 # 1.0dev123 -> 1.0.dev123 # 1.0.git123 -> 1.0.dev123 # 1.0.bzr123 -> 1.0.dev123 # 0.1a0dev.123 -> 0.1a0.dev123 # PyPI stats: ~150 (~4%) better rs = re.sub(r"\.?(dev|git|bzr)\.?(\d+)$", r".dev\2", rs) # Clean '.pre' (normalized from '-pre' above) instead of 'c' usage: # 0.2.pre1 -> 0.2c1 # 0.2-c1 -> 0.2c1 # 1.0preview123 -> 1.0c123 # PyPI stats: ~21 (0.62%) better rs = re.sub(r"\.?(pre|preview|-c)(\d+)$", r"c\g<2>", rs) # Tcl/Tk uses "px" for their post release markers rs = re.sub(r"p(\d+)$", r".post\1", rs) try: _normalized_key(rs) except UnsupportedVersionError: rs = None return rs # # Legacy version processing (distribute-compatible) # _VERSION_PART = re.compile(r'([a-z]+|\d+|[\.-])', re.I) _VERSION_REPLACE = { 'pre': 'c', 'preview': 'c', '-': 'final-', 'rc': 'c', 'dev': '@', '': None, '.': None, } def _legacy_key(s): def get_parts(s): result = [] for p in _VERSION_PART.split(s.lower()): p = _VERSION_REPLACE.get(p, p) if p: if '0' <= p[:1] <= '9': p = p.zfill(8) else: p = '*' + p result.append(p) result.append('*final') return result result = [] for p in get_parts(s): if p.startswith('*'): if p < '*final': while result and result[-1] == '*final-': result.pop() while result and result[-1] == '00000000': result.pop() result.append(p) return tuple(result) class LegacyVersion(Version): def parse(self, s): return _legacy_key(s) @property def is_prerelease(self): result = False for x in self._parts: if (isinstance(x, string_types) and x.startswith('*') and x < '*final'): result = True break return result class LegacyMatcher(Matcher): version_class = LegacyVersion _operators = dict(Matcher._operators) _operators['~='] = '_match_compatible' numeric_re = re.compile(r'^(\d+(\.\d+)*)') def _match_compatible(self, version, constraint, prefix): if version < constraint: return False m = self.numeric_re.match(str(constraint)) if not m: logger.warning('Cannot compute compatible match for version %s ' ' and constraint %s', version, constraint) return True s = m.groups()[0] if '.' in s: s = s.rsplit('.', 1)[0] return _match_prefix(version, s) # # Semantic versioning # _SEMVER_RE = re.compile(r'^(\d+)\.(\d+)\.(\d+)' r'(-[a-z0-9]+(\.[a-z0-9-]+)*)?' r'(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$', re.I) def is_semver(s): return _SEMVER_RE.match(s) def _semantic_key(s): def make_tuple(s, absent): if s is None: result = (absent,) else: parts = s[1:].split('.') # We can't compare ints and strings on Python 3, so fudge it # by zero-filling numeric values so simulate a numeric comparison result = tuple([p.zfill(8) if p.isdigit() else p for p in parts]) return result m = is_semver(s) if not m: raise UnsupportedVersionError(s) groups = m.groups() major, minor, patch = [int(i) for i in groups[:3]] # choose the '|' and '*' so that versions sort correctly pre, build = make_tuple(groups[3], '|'), make_tuple(groups[5], '*') return (major, minor, patch), pre, build class SemanticVersion(Version): def parse(self, s): return _semantic_key(s) @property def is_prerelease(self): return self._parts[1][0] != '|' class SemanticMatcher(Matcher): version_class = SemanticVersion class VersionScheme(object): def __init__(self, key, matcher, suggester=None): self.key = key self.matcher = matcher self.suggester = suggester def is_valid_version(self, s): try: self.matcher.version_class(s) result = True except UnsupportedVersionError: result = False return result def is_valid_matcher(self, s): try: self.matcher(s) result = True except UnsupportedVersionError: result = False return result def is_valid_constraint_list(self, s): """ Used for processing some metadata fields """ # See issue #140. Be tolerant of a single trailing comma. if s.endswith(','): s = s[:-1] return self.is_valid_matcher('dummy_name (%s)' % s) def suggest(self, s): if self.suggester is None: result = None else: result = self.suggester(s) return result _SCHEMES = { 'normalized': VersionScheme(_normalized_key, NormalizedMatcher, _suggest_normalized_version), 'legacy': VersionScheme(_legacy_key, LegacyMatcher, lambda self, s: s), 'semantic': VersionScheme(_semantic_key, SemanticMatcher, _suggest_semantic_version), } _SCHEMES['default'] = _SCHEMES['normalized'] def get_scheme(name): if name not in _SCHEMES: raise ValueError('unknown scheme name: %r' % name) return _SCHEMES[name] PKx"Tp``=__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/w32.exeMZ@ !L!This program cannot be run in DOS mode. $>imimim'vmimEmimpmimDmim}mimimim@mimtmimsmimRichimPEL9a  3@8@|P@PL @.text `.rdata8-.@@.data6@.rsrcP@R@@.relocP@BUVh\@T@%Aut6hh@VP@%Ath jhh@uj V@3^]UVh\@T@%Aut6h|@VP@%Ath jhh@uj V@3^]UA3ʼnE}u4EPu hhPPej@M3 UA3ʼnE}u4EPu hhPHPj@M3 UMW3FPAPQ tA ;uHE+D0ϋ_]U,VWh@E3hhAP}}' 3;h@Q0jWuUuXE$UE;}}Wuu(uhjS?S9 ;t+EjY}E~VyEEYE;}}WuuuVjuu3;h@uPfE+EjEYu}E ,MMj)Muu[uWjSq3; @VPf <@$f;u]TEy3jPu uWjS%3;VP$Df<@f;tH;sEuEY_^U Vj.u3u YYtVhAhVuV@ttFqWh@@EPEPuu ;uIEPP@Wu VhAhPuV@uEPWV ;u3Fu# Y_^U@&jjjVPuP\@3@]U}t}tj5pA @3@]UA3ĉ$ESVW3WWD$D@3;h@t$(PSYYD$Pjp$Pj V8@t |$pu3@3h@P$0YYjp$Pj V @h@PjDD$4WPIOD$(P@@D$T`@5H@jjD$$jD$ t$ t$dD$$@PYYt$ t$t$h$@PhYYt$Wjt$ @t$t$lh$ @P9L$\YYhpAD$,PWWWjWWt$4W@;u=L@WQ$RQPWh,@$Pt$h(@W|jhP@X@h|@PYYWWWWd@WWW$Pt@j5pAh@WWWjWWWWWhX@hp@Wp@WWWV$Pl@Vx@5pAt$((@5tAWj5pA$@D$P5pA0@h@PYYt$@UQSVW=X@@Su׋t>FEft"tjPDYYu Su׋uӅt ]]j h@S 3ɅSh@Q{ftjPYYt3@3Sh,@P[ ftjPYYuf?tjPYYuf9ujPYYt3fWrShd@jXAPf;"u&3f>"Sh@P3f jh@S tf{"t3f>"Sh@P ft&jPYYt3fjPYYt fuE 0_^[U0A3ʼnESVW@f8"tj j"YQP8YYu DžT@$pjPaYYt fu牵WhAVj4@f=hA"t DžjA3ɍf BAP 3hP@PqY3Y;s t tA;r3hh@P:YYWP+VSjh<@33;h@P3fuYYf9tjPTYYtf9u3f>#h@PYYj_jP#YYt f;u3f>!h@PYYjP YYt f;u荅PVS3h$@PH39hP@P2j[SWh@G$uvhhAhP$ P\@f"u+j[G j"P 3Wh@P3f_PPPT@ǍPffu+Hffu+Hffu+ȋPffu+jt1V3h@PWh@VVS 0SV; Auj h@3}3];;u:3{3u ;;t3f9>;tE;u ɉ}f9;u jEPhA! PuVSEE E@uoYËUVuuj^02$huu  t3^^]ËUEfU f;tfuf9t3]ËUh@@th@PP@tu]ËUuYu@j"Yj"YËV%Vy%VV^%VI%V>#V'#^ËUVu3utу;u r^]ËU=6Ath6A+Yt u6AY7+h@h@YYuTVWhGI@*@@Y;stЃ;r=6A_^th6A+Yt jjj6A3]j h@3j!Ye3@9A AEA} 56A5@֋؉]Ѕth56A֋}ԉ]܉}؃};rK[$9t;r>7֋H$56A֋56A9]u9Et]܉]ЉE؋}ԋ]E@}@sEtЃEE@}@sEtЃEE }u)Aj Yu}tjYEËUjju ]ËUjju ]jjj jjjz ËU|,u*Yh̋U}t-uj5A@uV!L@PY^]ËUQeVEPu uk, u9Ett M^ËUEVF ucH$FHlHhN; At p AHpu+6F;x AtF p AHpu.FF@puHpF  @F^]U3SW9E]u%} tVuM0ExuA+;Ar Zw Ar Zw MtDft?f;t8EPP5EPP5Mt ftf;t+}^tMap_[ËU= AVuy39Euu;cM t+Ar Zw Ar Zw Mt ftf;t+juu u^]ËUS]woVW=Au)j(hYYt3@Pj5A@u&j ^9$At S YuU0N0_^SY: 3[]̋D$ StRT$3ۊ\$ t 2trt2urWߋ_t 2t@u[Ãr 3˿~3σtJ2t#2t2t 2t_B[ÍB_[ÍB_[ÍB_[ËUEt8uPY]ËUQQA3ʼnESV3W;u2j^0,uV5YY;Er3fՋE @;u)f9tAr Zw ff9u3SSjVWPS5ȃM;u*9Ms3fj"];~Cj3Xr7D =wM5;tPY;t M؅u = 놋E QSjVWp4tSuV j*YSYƍe_^[M3xËUuMMEPu n}YYtMapËUju u ]ËUEPjuuu u]ËUMS] VW}M]t}tuK3_^[Ëut 39Ev!t SjQ= t39Ew}F }tFEEF tDFt=;r;}W6uu =)~>}+߃)}};]r\}t3;v uu+ ;w;Ew[PuV<YP; t{tdE+)E$V4YtR}t"MEFKME&E} tu ju< "N +3uN j h@3u9ut/9ut*9uu-} tu Vuj< %3u Yuuuuu uEEEu YËUuuu juZ]ËUQf9Eu3øf9EsE AAEPjEPj@u!EEM #ËUQEuM3Vu t Muu$3Wft.>u ftf;t fuf>t fuf9MtEBuu?v E?EuEuuPUE;tV;|BMx EEEPS9.YYt"MxEEPS.YYtE39]fD~^_[ËU}u]S]VuWuu9u u3t} uuuu;v*8CSVhi@uIi8"u]_8TWVhi@h3ɃfL~u}u38"u')y3fu" _^[]ËUujuuu u]ËUVuF u g}F uVE eYVFF YyF ttuFuu V5YPz93Ƀ A^]j h @ 39Eu8  ?ut tuuiYeVu u EE Ey uYËU=6AV5Au3wWu.95AtgJAIy aIuK5AtA}t;u*IY(PIY;vf EP@@3956Au VVjV@MZf9@tu6<@@PEu f9@u܃t@v39@MujSYLujBYu2yjY@6AwNAMyjY+Kyj YjY;tPYJEtMj YQPVh@mE9uuP#J.E MPQIYYËeE܉E}uP )EE# [NU((A $A AA5A=Af@Af 4AfAf Af%Af-A8AE,AE0AE<AxA0A,A A $AAA@pAj$NYj@h@@=pAujNYh @P@øAá6AVj^u;}ƣ6AjP NYY&AujV56AMYY&AujX^3ҹA&A  A|j^3ҹ AW%At;tu1 BA|_3^A=AtZN5&AaYËUVuA;r"pAw+Q N Y V@^]ËUE}P[ E H Y]ËE P@]ËUEA;r=pAw` +P9 Y]à P@]ËUME }` Q Y]à P@]ËU4A3SVu EUUUf> tat0rt#wt)3a 3ۃM M3AWf;y@St  tRHtCt- t!9EE @@EE ljE}utE nTtZtEHt0 tuE G}u;eE1}u% UEut3 ؃f}j _f9>tjVh @UT f9>tf>=uuf9>tjh@Ve u Ajh @VF u "jh4@V' uf> t3f9>tahuE SuP{St3 EDAMH M x8xxH_^[jh@S33}jY]3u;56A&A9t[@ uHuAFwFPY&A4V7YY&A@ t PVYYF둋}cj8HY &A;tNh&A P@&Au4Y&A P@&A<}_ ;tg ___OE ~Ë}jYËUEHA]ËU(A3ʼnES]WtSHYjLjPp*0 ffffffEMDž0IM M@j@P@uu tS!GYM_3[9ËVjVj V@P@^ËU5HA@t]uuuu u3PPPPPËUE3;͐AtA-rHwj X]Ë͔A]DjY;#] uAà uAà ËUVMQY0^]h@<@d5D$l$l$+SVWA1E3PeuEEEEdËMd Y__^[]Q̋US] Vs35AWEE{t N3 8N F3 8E@fMUS[ EMt_I[LDEEtEx@GE؃u΀}t$t N3 8'N V3 :E_^[]EɋM9csmu)=&At h&A tUjR&AM UE 9X thAWӋE MH t N3 8N V3 :EH*9S OhAWASVWT$D$L$URPQQh`>@d5A3ĉD$d%D$0XL$,3p t;T$4t;v.4v\ H {uhCOCOd_^[ËL$At3D$H3Uhp pp> ]D$T$UL$)qqq( ]UVWS33333[_^]Ëj_N33333USVWjRh?@Q莌_^[]Ul$RQt$ ]VW3PA<AuA8h0@t F$|3@_^Ã$A3S@VAW>t~t WW&Y A|ܾA_t ~uPӃ A|^[ËUE4A@]j h@3G}39Au j h}YYu4A9tmjAY;u] 3Pj XY]9u+hW@uWY( ] >WYE Ej )YËUEV4A>uP#YujhY6@^]jh@C@xte3@ËeEeLh@@@AËUEAAAA]ËUE @V9Ptk u ;rk M^;s9Pt3]5A@j h@Y3}}؋] KtjY+t"+t+tY+uC}؅uTAAUw\]YpQÃt2t!Ht=빾AAAA AAEP@E3}9Euj9EtPCY3Et tuO`MԉG`u>OdMGdu, @M܋ @ @9M}Mk W\DEEuwdSUY]}؃}tjYSUYt tuEԉG`uEЉGd3ËUEA]ËUEA]ËUEA]ËU5A@tuYt3@]3]j@@V5$A@u5A@V5$A@^á AtP5A@Ѓ A$AtP@ $Avjh @hD@@uF\X@f3G~~pƆCƆKCFhPAj \Yevh@E>j ;Y}E Flu AFlvlYE3Guj $Yj YËVWL@5 AЋuNhjv=YYt:V5 A5A@ЅtjVYY@N V5Y3W@_^ËVujY^jhH@uF$tPYF,tPYF4tPYFPu6:YYt/P4@6Au=@׉Vף6AE3_^[ËVjj 9YYV@6A6AujX^Ã&3^j hp@euYEE E"ËUuYH]ËV@@W;stЃ;r_^ËV@@W;stЃ;r_^ËVW3(A@(A(r_^ËUMMZf9t3]ËA<8PEu3ҹ f9H‹]̋UEH<ASVq3WDt} H ;r X;r B(;r3_^[]̋Ujh@h@<@dPSVWA1E3PEdeEh@*tTE-@Ph@Pt:@$ЃEMd Y_^[]ËE3ҁ9‹ËeE3Md Y_^[]ËU3M; @t @r3]Ë@]ËUA3ʼnESVuWV3Y;ljE| AD;FG;v}>uЋuE}urlj{CijC C AZf1f0JuL@;v~0C@IuCC Ss3ȋ {95ATM_^3[ojh@MX}_huqE;CWh /Y؅Fwh#SuYYEuvh@uFh=PAtPY^hS=@Fpp Aj +YeCACAC A3E}fLCf EA@3E=} LpA@3E=}xA@5x A@ux A=PAtPJYx ASE0j Y%u PAtSYUeEÃ=6AujVY6A3ËUSV5@W}W֋tP֋tP֋tP֋tP֍_PE{t At tPփ{t CtPփMu֋P_^[]ËUW}SV5@W֋tP֋tP֋tP֋tP֍_PE{t At tPփ{t CtPփMu֋P^[_]ËUSVu3W;to=8Ath;t^9uZ;t9uPs FYY;t9uPREYY:/YY;tD9u@-P+P+P=x At9uPAYY~PEt At;t 9uPY9_tG;t 9uP}YMuVnY_^[]ËUW} t;Et4V0;t(W8jYtV>Yu AtVsY^3_]j h@p AFpt"~ltpluj Yj (Ye5 AlVYYYEEj !YuËUf9ESVu MuN3;uEHfwf Kjf9Esu~YEYt, URjURPQEtE8]tMap^[ËU SW3j3Y}]9]u&}Vu ;t;ukE;w}uEuEBuuPuUE;t5;|"MxEEPSYYtE39]\>^_[ËU}uo]S]VuWuu9u u3t} u2"uuu;v*8CSVh@uG8"uY8PWVh@D>u}u8"u%yu"I_^[]ËUujuuu u]ËUE~ PuYYuuPuu u @]ËU39E vMf9t @;E r]QL$+ȃ YPQL$+ȃ YPUQVu V# E F Yu N /@t "S3ۨt^NF F F ^] u, ;t @;u u YYuVkYYF WF>HN+IN;~WPu gX EM F yM tt%A A@ tjSSQ5P#ƒt%FM3GWEPu W E9}t N E%_[^ËUVuu~!F @t F F u VTXYFvvVdYPg FF uQV:Yt0V.Yt$WV!V<%AYY_ A@$W@t3%>uN@ uNhF P@t,F N@Ch5%A@3_[^ÃUVuVRYuG MWuju P@uL@3t P7Y%AD0 _^]jh0@0]u x;%Ar Gҋ<%AD0tSVRYeD0tuu S EJ R ME EË]SRYËU@ @txtPuLYYf;u]]ËUQC @VEt {uE C'} ~5EM PE>Yu?*uj?~Y} Ѓ?uE^ËUxA3ʼnES]Vu3Wu} Nu+t `p 3;tf; jY9x BfXw@3k 0@j^;O $t@3 ƒ tHt4+t$+t   f*u+f T k ʍDЉ9 - f*u%  k ʍDЉƒItQht@ltwf?lu 6uf4um3uf2uOdFi=o4u+x"XRDžYƒd1StAt+tZ+t+ Dž@Dž0 0u u [u AQPJYYtFF9|X++3F tBPƅPPHyf6t:Ht3t+DžAP"Ypegitnnt$otbV[Gx t ffDž@Dž ދCSufguWDžK;~ȁ~7]VlYt Dž5@CPPWP5@AЋtuPW5LAYYfguuPW5HAYY?-uGWDž$s{+Dž'Dž|j0XfQfWW t@tCC@Ct3҉@t|s؃ځu3} Dž9~ u! t-RPWSF0؋9~N뽍+Ft^tƀ80tS0+~,WPVYP> ;uF yF N _Ff^[]ËUVuu V5Y/V|YtF @tVdP-HYY3^]jhP@V3}}jY}3u;56A&A98t^@ tVPVbYY3BU&AH t/9UuPJYtE9}utP/Yu E܉}F3uࡤ&A4VkYYE}EtEjmYjYËUS]u3}u Vu uW;vjuMߩE@uJU+2Ar Zw Ar Zw Kt ftf;t+7SVSuhP.Gu;}tE`p}tMap_^[ËU= AV}uM t߾9uvi_u+Ar Zw Ar Zw Mt ftf;t+juu u,^]ËUEffu+EH]ËUQQSV5A3ۉ]W;tP=<@SSjPSS׉E;tAjP YYE;t0uPj6SSׅt*ESPFYYx;u3_^[Ã9]tuoYV5AW3uf=tGV9YtFfuSjGW2 YYAue5A5Vf>=Yxt"jWYYtAVWPͶ uI4~f>u5AϦ%A#6A3Y[_^5A試%A3PPPPP4̋V$@3;u3^f9tf9uf9uS+ƍXWSYu V @_[^SVW UVuWV?YtP%Au u u@Dtj?j?YY;tV?YP`@u L@3V?%AYD0t WY3_^]jhx@']u x;%Ar >ҋ<%AD0tSM?YeD0t SYEI ME EË]S?YËUVuF ttv輤f 3YFF^]ËUE8csmu*xu$@= t=!t="t=@u3]h{@@3ËUV2N\UW9t ;r;s9t3tPu3u `3@M S^`N`Hj$Y~\d9 |~d=u Fd~=u Fdn=u Fd^=u FdN=u Fd>=u Fd.=u Fd=u Fd=uFdvdjY~d`QY^`[_^]ËVW39=6Au56AuO@< wt.t$<"u 3ɅPDYtFF< wFu_^Ã=6AuV5AW3u<=tGVvYtujGWmYY=Atˋ5AS3VE>=YXt"jS?YYt?VSP uG>u5A%A'6A3Y[_^5A%A3PPPPPv̋UQMS3VU 9Et ]EE>"u39E"FE<tBU PFCYt} t M E FU Mt2}u t utBe>< t< uFN>}t EE3C3FA>\t>"u&u}t F8"u 339EEtIt\BuU tU}u< tK< tGt=Pt#BYt M E FM E  BYtFU FVtBU ME^[t ËU S3VW96Au%h(AVS,A(@6A5A;tE8uuUEPSS} E =?sJMsB;r6PrY;t)UEPWV}E HA5A3_^[ËU SV$@3;u3wf93tf90uf90uW=,@VVV+V@PSVVE׉E;t8PYE;t*VVuPuSVVׅu uYuS @E S @3_^[ËUAeeSWN@;t t УAeVEP<@u3u8@3@34@3EP0@E3E3;uO@u G 5A։5A^_[Ã%%AËUVW3u趠Yu'90AvV@@;0Avuʋ_^]ËUVW3ju u u'90AvV@@;0AvuË_^]ËUVW3u u?YYu,9E t'90AvV@@;0Avu_^]ËUVW3uu u+@ u,9Et'90AvV@@;0Avu_^]jh@蝸3ۉ]jMY]j_};=6A}T&A9tE@ tP}YtE|(&A P@&A4蠜Y&AGE E\jYËU4S3EV]܈]]E ]t ]E E]EPAYEuE@u9EtME+ùtCHt(Ht I,j^0жMEt EuE@UEjY+t7+t*+t+t@u9UEEE E]E#¹W;3t(;t$;t=tT=u-ETEKEB=t4=t$;t)gJj^0_^[EEEEt A#MxE@tMMMt } t M tMs5;u!͵ 谵襵`E=D@juuEPuuu ׉E;upM#;u+Et%ejuEuPuuu ׉E;u76%AD0 L@P7Y Efu@uD6%AD0 L@VYu`@u踴 렃uM@ uMu62Ѓ%AYYMLЃ%AD$ MeHMuEtpjS6 ;u78tP6ejEP6 uf}uǙRP6; ;tjj6r ;tE(@@}uE#u M EE#;tD=t)=@t"=t)=@t"=t=@uEM#;u EEE3E@}E#=@=tq;yE;nvv+[E3HHGEjjWW6" tWWW6"#ƒ;jEP6/ ;vtj}uXEE;iWjWW6%" JWWW6"#;E%=u6Yj^0u_=uWj6 ;E>WW6n Ej[+PD=P6) ;݃ %AD$2M0 %AD$M ʀ}u!Etȃ %AD M#;u~Etxu`@juEjPuE%Pu D@;u4L@Pȃ %AD 6.Y6 %AEUSSSSSjh@̰3}3u;;udj^0Y39};t9}tE%@tʉ}uuu uEP\EEE;t荰3u9}t(9}t %AD 6J/YËUjuuuuu !]ËU}u3]ËU MMtft f;u +]USVWUjjhH@uL?]_^[]ËL$At2D$H3賏UhP(RP$R]D$T$SVWD$UPjhP@d5A3PD$dD$(Xp t:|$,t;t$,v-4v L$ H |uhDID_뷋L$d _^[3d yP@uQ R 9QuSQA SQAL$ KCk UQPXY]Y[tjY Atjh@j4 j^UWVu M};v;r=%AtWV;^_uO8ur)$@Ǻr $$@$ @$@4@`@@#ъFGFGr$@I#ъFGr$@#ъr$@I@@@@܎@Ԏ@̎@Ď@DDDDDDDDDDDDDD$@ @(@4@H@E^_ÐE^_ÐFGE^_ÍIFGFGE^_Ðt1|9u$r $@$\@IǺr +$@$@@@ @F#шGr$@IF#шGFGr$@F#шGFGFGV$@I`@h@p@x@@@@@DDDDDDDDD D DDDD$@@Đ@Ԑ@@E^_ÐFGE^_ÍIFGFGE^_ÐFGFGFGE^_ËU}u"]uj5AH@]jY̋L$t$tNu$$~Ѓ3ƒtAt2t$tt͍AL$+ÍAL$+ÍAL$+ÍAL$+ËU$A3ʼnEESEE VWE肱e=8AEu}h\@@؅=P@hP@Sׅ5@Ph@@S8APh,@S<APh@S@AP֣HAth@SP֣DADAM5@;tG9 HAt?P5HA֋؅t,t(ׅtMQj MQjPӅtEu M 3<A;Et)Pօt"ЉEt@A;EtPօtuЉE58Aօtuuuu3M_^3[ËUVuWt} u?j^0_^]ËMu3f݋f:tOut+f ftOu3ufj"Y몋UUS]VWuu9U u3_^[]Åt} u貧j^0V݅u3fЋMu3fԋƒu+fft'Ou"+ fftOtKuu3fy3uM jPfDJXdf#j"YjUMx~ uA]áA A]苦]ËUA3ʼnEUS3VW;~EI8t@;u+H;}@E]9]$u E@E$5<@39](SSuuPu$֋};u3R~Cj3Xr7D?=w;tP`Y;t E]9]tWuuuju$օ5 @SSWuuu ։E;Mt)E ;9EPuWuuu };~Bj3Xr6D?;w];thP裌Y;t 3;t?uWuuuu օt"SS9] uSSu uuWSu$,@EW蝍Yu蔍EYe_^[M3膅ËUuMu(Eu$u uuuuu P$}tMapËUQQA3ʼnES3VW]9]u E@E5<@39] SSuuPu֋;u3~<w4D?=w;tPdY;t ؅t?PjS WSuujuօtuPSu @ESgEYe_^[M3YËUuMu$Euuuuu P}tMapËUVucv$vv v vv6v v$v(݇v,Շv0͇v4Ňv轇v8赇v<譇@v@袇vD蚇vH蒇vL芇vP肇vTzvXrv\jv`bvdZvhRvlJvpBvt:vx2v|*@چφĆ蹆讆裆蘆荆肆w@i^SH=2'څυą@ 超諅蠅蕅芅 $t(i,^0S4H8=<2@'DH@LPTX\ׄ`̄^]ËUVutY;8AtP詄YF;<AtP藄YF;@AtP腄YF0;hAtPsYv4;5lAtVaY^]ËUVuF ;DAtP;YF;HAtP)YF;LAtPYF;PAtPYF;TAtPYF ;XAtPYF$;\AtPσYF8;pAtP轃YF<;tAtP諃YF@;xAtP虃YFD;|AtP臃YFH;AtPuYvL;5AtVcY^]UV3PPPPPPPPU I t $uI t $s ^ËUUVWt} u@j^03Eu+ @tOuu j"Y3_^]̋T$L$u<:u. t&:au% t:Au t:au uҋ3Ðt:u ttf:u t:au tUV3PPPPPPPPU I t $u t $sF ^A @tyt$Ix  QPYYu ËUQC @VEt {uE >'} ~0EM E>u?*u˰?~} Ճ?uE^ËUA3ʼnES] Vu3W}uWu+賛t `pa F @u^VY Attȃ %AA$uttȃ%A@$q3;g C9 B@Dž GW @} DžjugucDžW9~~=]VYt Dž5@GPPSP5@AЋtuPS5LAYYguuPS5HAYY;-uCS*stHH[Dž'Dž5Qƅ0Dž t@tGGG@t3҉@t|s؃ځu3} Dž9~ u!u t-RPWS80؋9~N뽍E+Ftct΀90tX0@@If8tu+(u AI8t@u+@t5t ƅ-t ƅ+ tƅ Dž++ u% OtPYYt.u%˰0Otヽtu~qPjEPPu69t.EPsYYu#PEYY|2t) Ot߃tuYt3dt t `pM_^3[qÍI@@Р@,@x@@ʡ@@QL$+#ȋ%;r Y$-UQQE VuEEWVEY;u NjJuMQuP@E;uL@t PYϋ%AD0 EU_^jh@]܉]Eu葏 v Ëx;%Ari N ы<%AL1tPYeD0tuuu uE܉U ]܉]E E܋UVu<YËUWA3ʼnEE VuW34809}u3;u8eS%AL8$$?tu'Mu! 詍D8 tjjjVV>YDR@l39H P4@3;`;t 8?P@4 3,9E#@?g $3 ǃx8tP4UM`8jEPKP Yt:4+M3@;jDSPT C@jSDP0 n3PPjMQjDQP C@,@=j,PVEP$4@ @089,j,PjEP$E 4@,08<t<u!33Ƀ @D<t<uRDYf;DI8t)j XPDYf;D80E9@8T4D83ɋD8?D49M3+4H;Ms&CA u 0 @F@FrՋH+j(PVHP$4@C(8;;+4;El%?49MH@+4jH^;MsCΉ u0j [f @@fƁ@rH+j(PVHP$4@i(8;a+4;EGK4,9Mu,@+4jH^;Ms;,,΃ uj [f@@fƁ@r3VVhU QH++PPVh,@;j(P+P5P$4@t (; L@D;\,+48;E ?Q(Qu448@t(D8 L@D8ulDt-j^9Du' /0?D3Y1$D@t48u3$ 8+0[M_3^Nhjh@]u資 蘇 x;%Ar茇 q ҋ<%AD0tS#YeD0tuu Sn E  ME E膇Ë]SkYËUDAhFYMAt I AI AAAAa]ËUEu芆 3]Åx;%Aro ދȃ %AD@]ËUA3ʼnESVu F @W6V]Y At.VLYt"V@V<%A0YYÊ@$$<VYt.VYt"VV<%AYYÊ@$$<VƭYt.V躭Yt"V训V<%A螭YY@t]uEjPEP4t]39}~0NxL=AD=VP YYtG;}|fE Fx Ef EVP*YYM_^3[TeáA39TAËUSVu 3;t9]t8uE;t3f3^[uMiE9XuE;tf8]tE`p3@ˍEPPYYt}E~%9M| 39]RuQVj p<@EuM;r 8^t8]fMapZԃ*8]tE`p;39]PuEjVj p<@:뺋Ujuu u]ËUu MhEMA%}tMapËUjuYY]VD$ u(L$D$ 3؋D$d$ȋd$Gȋ\$T$ D$ ud$ȋD$r;T$ wr;D$v N+D$T$3+D$T$ ؃ʋӋًȋ^UEVWxY;%AsQ<%A<u5=AS] utHtHuSjSjSj@3[ ' _^]ËUMS3VW;|[; %AsS<%AD0t6<0t0=Au+tItIuSjSjSj@ 3虁 衁_^[]ËUEu腁 j ]Åx;%Ara F Ջ %ADt͋]j h@_}4%AE39^u5j Y]9^uhF P@u]FE09]t%AD8 P@E 3ۋ}j 豄YËUEȃ %AD P@]jh8@虀M3}j 胄Yuaj 1Y}}؃@;4%Au%A;Fu[~u8j Y3C]~uhF P@u]Fe(}u^ S@FtS@@냋}؋uj 诃YÃ}uF+4%Au}uyG,j@j YYEta %A%A ;s@@ `@E}σ%ADWYuME E[j YfQSuƒt7$ffAfA fA0fA@fAPfA`fApHuЅt7tIfIHut3tIJutAHu[XËۃ+3RӃtAJutIKuZUj |@%A3jh`@6~]u} x;%Ar} ]}ڋ<%ADtSlYeDt1SYPx@u L@Ee}t`}MC} ME E}Ë]SYËUVu~ Vu进YYE~ Pu諛YYttPuVuu ut@+ujX 3D^]ËUV5A$WPu菸 ux=tftu֋+A^]Ë+AUQW3υtL9t @9uV@jPYYuuj `Yt+P 7Yu&E^_ËUEV3u;u{{SW];tej=Sh]YY;tU;tQ3f9wEA;Au 6A;uxA9u t3;t/褹A辸yW.tN_{_[^9u;ujYA;tډ095AujYA;t0A;t+}u}FY;9346_3Y9EMM39u twj[SuaYPhYY;tZuuEYPW)o E3ɍGfM#QWp@uMXz*W_Y9utu^EY0ENG49u?NjW5A^ 5A+9uuY;}ߍG;=?zPj5A ;aU qM1AVVVVVxuG^EY03+UuM^E MUTu}tMA#E3t3@}tMapËUjjuj]ËU}u u @`Y]Vu u u]Y3MW0uFVuj5Al@u^9$At@VxYtvVhYx 3_^]xL@PFxY~xL@P.xYʋUM S3;vj3X;EsIx 3AMVW9]t uYVuYYt;s+VjS _^[]ËUSVW3jSSu]]E#ƒUtYjSSu#ʃtAu }+;Sjd@P@Euyw nw_^[huYYE| ;rPuu t6+xӅuϋuuuYYujd@P@3 w8u v u;q|;skSuu u#ƒDu+YPh@HE#‰Uu)v vL@u#uSuuu5#ƒ3US] Vu%A ΊA$Wy@tPtBt&tu=I L1$⁀'I L1$₀a I L1$!_^[u]%@]ËUEuyuujX]Ë `A3]WƃуtefofoNfoV fo^0ffOfW f_0fof@fonPfov`fo~pfg@foPfw`fpJutItfofvJut$t vIuȃt FGIuX^_]ú++Q‹ȃt FGIut vHuY USVu 3W};u;v E;t3{E;tvtj^0sVuM5YE9XfEf;v6;t;v WSV踜 s*s8]tMap_^[;t&;w sj"^0Is8]tE`pyE;t8]HN++ˉN~WPu  EN F =M tt%A A@ tSjjQ#ƒt-F]fjEPu ]f] E9}t N %_[^ËUS39]u3AVWu­pjVU ;tuVWe u SSSSS@p3_^[]UWVSM tMu} AZ I& t' t#:r:w:r:w:u u3:t rً[^_3PPjPjh@hL@D@AáAt tP`@̋D$L$ ȋL$ u D$S؋D$d$؋D$[%@LZlz*<Rh,zj &2DVl&6BZjv ".@P\n|.HP^(~jZH4@H@PT@@{@@@4@9aM00CorExitProcessmscoree.dll AxAccsUTF-8UTF-16LEUNICODEKERNEL32.DLLFlsFreeFlsSetValueFlsGetValueFlsAllocruntime error TLOSS error SING error DOMAIN error R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6032 - not enough space for locale information R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6030 - CRT not initialized R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data R6010 - abort() has been called R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point support not loaded @X@ @ @`@@@`@@@0@@p@0@h@ @!@x@y@z@@@Microsoft Visual C++ Runtime Library ...<program name unknown>Runtime Error! Program: HH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunHH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSun  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~  GetProcessWindowStationGetUserObjectInformationWGetLastActivePopupGetActiveWindowMessageBoxWUSER32.DLL(null)(null)EEE50P( 8PX700WP `h````xpxxxxEEE00P('8PW700PP (`h`hhhxppwppCONOUT$user32.dllMessageBoxTimeoutAMessageBoxTimeoutWFatal Error in LauncherFatal Error in LauncherrbFailed to open executableUnable to find an appended archive.Unable to read from file#!PATHEXT;PyLauncherSTATICJob creation failedJob information querying failedJob information setting failedstdin duplication failedstdout duplication failedstderr duplication failedUnable to create process using '%ls': %lscontrol handler setting failedFailed to get exit code of process.exe/usr/bin/envExpected to find a command ending in '.exe' in shebang line: %lsExpected to find whitespace after '/usr/bin/env': %lsUnable to find executable in environment: %lsExpected terminating double-quote for executable in shebang line: %ls<launcher_dir>\Terminating quote without starting quote for executable in shebang line: %lsFailed to find shebangExpected to find terminator in shebang lineExpected to decode shebang line using UTF-8Expected to find '#' at start of shebang lineExpected to find '!' following '#' in shebang lineExpected to find executable in shebang lineExpected to find arguments (even if empty) in shebang lineExpected to be able to allocate command line memory"%ls" %ls "%ls" %lsHA@RSDS8F X,C:\Users\Vinay\Projects\simple_launcher\dist\w32.pdb@<`>P@@X(@+@.@ 0@b1@2@2@9@@@@@@@B@D@D@TF@`F@I@J@J@EP@T@W@c@mh@Ov@v@f{@ʃ@@Ь@@@˼@@l@:0d TLZlz*<Rh,zj &2DVl&6BZjv ".@P\n|.HP^(~jZHExitProcessGetCommandLineWSearchPathWqSetInformationJobObjectbFreeLibraryCreateProcessWGetCurrentProcesspSetHandleInformationWaitForSingleObjectWaitForSingleObjectExAssignProcessToJobObject^FormatMessageWGetExitCodeProcessGetModuleFileNameWQueryInformationJobObjectgMultiByteToWideCharcGetStartupInfoWCreateJobObjectAdGetStdHandleGetLastErrorEGetProcAddress<LoadLibraryA-SetConsoleCtrlHandlerDuplicateHandleRCloseHandleKERNEL32.dllnCreateWindowExW3PeekMessageW&WaitForInputIdle6PostMessageW]GetMessageWDestroyWindowUSER32.dllPathRemoveFileSpecWEStrStrIW:PathCombineWSHLWAPI.dllGetModuleHandleWDecodePointerHeapFreeHeapAllociGetStringTypeWGetCommandLineAHeapSetInformationTerminateProcessUnhandledExceptionFilterSetUnhandledExceptionFilterIsDebuggerPresentEnterCriticalSection9LeaveCriticalSectionInitializeCriticalSectionAndSpinCountEncodePointerRtlUnwindDeleteCriticalSection?LoadLibraryWTlsAllocTlsGetValueTlsSetValueTlsFreeInterlockedIncrementsSetLastErrorGetCurrentThreadIdInterlockedDecrement%WriteFileHeapCreaterGetCPInfohGetACP7GetOEMCP IsValidCodePage-LCMapStringWReadFileoSetHandleCountGetFileTypefSetFilePointeraFreeEnvironmentStringsWGetEnvironmentStringsWGetModuleFileNameAWideCharToMultiByteQueryPerformanceCounterGetTickCountGetCurrentProcessIdyGetSystemTimeAsFileTimeSleepCreateFileWHeapSizeGetConsoleCPGetConsoleModeSetStdHandleIsProcessorFeaturePresentWFlushFileBuffersdCompareStringWWSetEnvironmentVariableWHeapReAllocSSetEndOfFileJGetProcessHeap$WriteConsoleWN@D&A&A        ! 5A CPR S WY l m pr   )    4@4@4@4@4@4@4@4@4@4@ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZPA`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~C@@@@@@@@@@@@|@p@l@h@d@`@\@X@T@P@L@H@D@@@8@,@$@@\@@ @@@@@@@@@@@ @@@@|@t@l@\@L@<@(@@@@@@@@@@@@@@@@@l@`@T@@H@<@,@@@@@@@@@@t At At At At A8AP@@X@x A AT@P@R@ ..0ALALALALALALALALALA4APAPAPAPAPAPAPA8A.@t@K(p0eH`x BD(FNh(T%yxhhHZ( @...GGGWWWiiiuuu ̀ ww ww||wwwwwwwwfwwwww|fwwwwwwffwwwwwwffwwwwwfflwwffffffwfffffflwffffffwffffff|ffffffffR\Ilffl)ffح2L18Ϥ"A< ΣTπU  ؀ ???????( 444MMMSSSzzzp p{p{ffkof_fffk_fff[f}UUUfL4UUU_kJqO_~'[U_Uwwwww{~( @%%%+++000===AAAIIIMMMQQQVVVYYY]]]~dFgggjjjmmmrrruuu}}}u?z=~;gEkCoAr@:IbpƏKУk(,1?5<\CKQsU[cbð/Pp  =1[Qyq/"P0p=LYgx1Qq&/@PZpt1Qq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq_______CCBABADL*(%$""&GABJIIDDJC??AD_-(''%$GG#_DIJIIJIIIDIJDD_+)(''%GG _JMCEJ?ABAECA?BA_,+)('%%"!_IM@AJACDCIDI____.,++>________JMJJJJJJJJJF_..,+)('%$"! #GIMCEJJJI?J__...,+(('%$"! &_JM?AJJJJCJ__...,+)(''%$" _IMJJJJJJJJ_K=...,++(''%$! _JMCDJJJJAJ_K_______L*%$"!_I_?AMNJJEJ_ L'%$"_I_MMMMMMJJ_ _('%%_I_CEMIJJMEM _(''*_I_?BMDJEMDMF _)(-LI_MMMCMMMMM_________< ____I_CEM1;MACDMEJM__I_?A_D1@IJJMJMM_FF_I__6_@/EMMMNMM_FF_I_C80EJDMJCJFF?:AA20?_M_MIEM______MIC4BC/ N______MMMMJIDAI_9/ HJJMMJMMMJ??BAI_A7503 IJMMCBCBA44CCI___BAO;6___C_MJIDIDMI_CI___O; @__C_C?J?AJI_?A_DJJI@ O_CM?;I?JI_________H9MAIJJIJI_CD_____JJI73C;IJIJI_?AMDJJDIMJIE5:JIJI__________MMIA:IJJJJJJJJJJJJJJJJMJ???( 444MMMRRRYYY~eGuuu}}}x>iErCE~7?HVbx/!P7pLcyϏ1Qq/Pp",6@J[1qQq/Pp  =1[Qyq/"P0p=LYgx1Qq&/@PZpt1Qq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq!%///* !*/"(%%'%/) /!#''////+/+"*(/ / !%(/ ( (*/ (///) */   )*  /"///// /+/// # + !%//  +"*+'#+//+'!%*++$++!+! !!!<(0`  !!$& &"   WܱNj+<<:5pi$!!!4888&SNJFB=950,(%%%5ǎVRNIEѹ|Jq?o@ZUQMID@<73/+&"-Ɍ444"ք̴wq?]YUPLHC?;72.*%!"""4888&dya\XTPKGC>:61-)% OÑ%%%5ʎA{;ys`\WSOJFB>951,($(9|:z;xq?o@mAkBiCgCdDuZ;73.*Ǒ%%%5̎È>89}:{;yq?o@mAjBhCfD~dEuZ?:625Оa789}:{;yr>p?n@lAjBhCfD}dEB>:5^ό555"܄ѳ„7789}:{;xr?p@n@lAjBgCeDFA=9"""4;;;&ŌC89~9|:z;xr?p@mAkAiBgCIELɑQQQJnnn~~~Įq?o@mAkBiCHHH"""vvv9~:{;yq?o@mAkB:::'''___sssttt8Ϧuǣvyp?n@lA888T---6fffnddd%%%"""OOOSSSċDҧuʤv{;yr?p?xM<<r?̷999VVV###)))444ѳ͝b@~9|:z;}Cg˶Ӎ󑑑ZZZlll;;;!!!""")))___&&&2:::ppp{{{___WWWWWW:::!!!"""***www"""4888&,̑999ԖJJJ|||lll:::"""BBBXXX|||$$$6,uuuKKKCCC@@@...www* Ҍ666"KKKaaaLLLWWW@$"""4;;;&nnnfff!!!$$$999444]ttt|ȇɑ&&&5ЎvvvmmmVVV{{{OOOڥaaaCCCpppό555"ބ|||MMMfff"""4;;;&\\\Ǒ%%%5Ύݧܦ͌555"ۄۥ"""4:::&ڤÑ%%%5ˎܤׇ ww?ww??ww?ww?ww?ww?ww?ww?ww?ww?ww?ww?wwwwwwwwwwwwwwwwwwwwwwwwwwww?ww?ww?ww?ww?ww?ww?ww?ww?ww?ww?wwwwwwwwwwwwwwww?wwwwwwww( @ !!!0\\\JeeeQ666D555A0$ vH<602\7qڴvvvj&&&D1"gLF@;5?кVQKE?9(aV[UPJD>82-uuun{{{j`ZTOVo@lAb_YSMGB<60+%<aVmt>q?n@bb^XRLFA;5/)$Ywwwn}}}j~Cv=s>p?bba]WQKE@:4.(+{;xbba[VPJD?93-'aV~:{;xr?o@lAiBfD}dE|cE|cEiB<61?9}:z;w=t>q?n@kAiCfD}cE|cE}dFGA;=aVңi89|:yq?n@kBhCeD|cE|cELF@mzzznjʓP8~9{;yp?mAjBgCeD|cEPJ\¯mAjBgC~dEaV}:z;xq?n@lAiCJJJőPyq?n@~YVVV???wwwiiiΡkA|;y>>3@@@y~~~obbb000kkk@@@---U<<<&&&[[[6uuusssWWWIII$$$&&&qqqlllg|||s4bbbhhhƑUUU000QQQ}}}---{bbb(iiiLLLBBBaVggg+++NNN|||nj]]]tttkkkrrrwwwӦaVӦzzznjӦˉ ?????(  C﫫oIਨS=?_QF4aZмoEcaXMB70~Iq?c`VK@58z;u=qv>3Eyn@iB~dE}dFGHYYYuuuġ=xmAhC}dE}eGS444|||gC}cEMMM~>q?kAiGRRR¢Gu=xKʺ~AAAAAAAAAAAAAAAA ( h00 %   h PAPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPAD,0 000&0+0@0P0^0d0k0x00000001T1t1111122 3[333333324G4c4i444444 5515?5K5w55555556,6<6B6G6Y6j6r6x666666666666666 77d7w7788<8Z8}888 9<9E9L9a9|99999@:s:::::;5;[;;<%<5<>,>7><>N>X>]>y>>>>>>>>>>1?;?a?h???? @[0a0s000 1162233#3E47885::I;=:=>>>>>>>U?00t11111111112G2L2V2233%3+31373>3E3L3S3Z3a3h3p3x3333333333333334 44444C4P4\4l4s444444444$5W5f5o55557777a888888!929?9F9V9h9m999:::; ;;;[;w;;;;;R<,=4=L=g====>)?0?:?L?c?q?w????????@L0T0000 111"1'1,111A1p1v1~1112 2222!2/2222'363E3R3X3w3~3333333333333334 4454J4p44444455@55556'6p6v66666666666666666667 777#797?7G7L7T7Y7a7f7m7|7777777778p8u8~888888%9*9K9P9u9{99(:-:?:]:q:w:::;U;m;w;;;;;;;<5@>???P00 0)030g0r0|00000 1B1U111+222.3:3M3_3z33333333334)4R4c4w445Z55q66717B7{799F:;;<?pp 080Z0C2444444445555!67a8s889.9q9|999999(:e:o:::: ;;;D=Q=Z=====/>:>D>U>`> 01090?0D0J00001L1X1l1111111112 2)252l2u22222 33!3:3[3d33333w55b6u66666 7+7:":[:::::: ;;<<<<%=?=H=z===>>#>(>,>0>Y>>>>>>>>>>> ?????????????090@0D0H0L0P0T0X0\000000(1.1112222.262<2F2L2V2\2f2o2z2222222 34444 55s6677;;;;;<<&<8>%?~?012223=33 4444595S5t555(666779(999^999997:_:x:::::';5;>;~;;;;;&+>>>?&????T00U0a0p0|0'1~111122223444445`5)6@8^8888990;6;;;A;R;;H111111122;;$;,;4;<;D;L;T;\;d;l;t;|;;;;;;;;;X$0(0000181X1x1111111282D2`2l2222223(3H3h3t33333404P4\4x400(5,5054585<5@5D5H5L5x9x:|:::::::::::::::::::::::::::::::::;;; ;;;;; ;0;4;8;<;@;D;H;L;P;T;X;\;`;d;h;l;p;t;x;|;;;;;;;;;;;;;;;;;;;;;;;;8<>@>D>H>L>P>T>X>\>h>l>p>t>x>|>>>>>>PKx"T.A__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/w64-arm.exeMZ@ !L!This program cannot be run in DOS mode. $Lơ---F-F3-F-X-X-X-F---X-XW--?-X-Rich-PEdBa" 2@`'PPp LT8.text܁ `.rdata@@.data$@ @.pdata p $@@.rsrcPR0@@.relocL@B@AT_{1"@1@G>c2 __S[cks{CsP@uXAw`ByhC{pDa(@@?{EsDkCcB[ASƨ_S[cks{CsP@uXAw`ByhC{pDa(@@?{EsDkCcB[ASƨ_ T!_ "Tb6 ` b6 ` b6"@9b9_BTBcT! BT? @aT @`T L$ L!@!`` Ld LB"Tb06 @" A$B&C!!@!``b dfcBbTb06 L` Lb(6 L`Lb 6 pL`pLb6 p `p b6 ` b6 ` b6"@9b9_!!_ T6!c ` ` 6!c ` ` b6"_8b8_BTBT!BT? @aT @T! @L!$ @L!!c` Lcd LBT!&C$Bc" A @!!fdb `BbT06!c @L` L(6!c @L`L 6!@c@ p@L`pL6! c p@ `p 6!c ` ` 6!c ` ` b6"_8b8_{S[cks!@SP@UXAW`BYhC[pD](@?@BsFkEcD[CSB{A_@xb 4@7 @`T,@_?Tt@Lqn"&"4@| ՠtLqn"&5@`N!Npn&BR@_!@ˢ$@x4!T$@x5ѠA_`7? #T @T,@_?Tc@ˠt@Lqn"&4!˥? CT#CtLqn"&4caT!@T! ˥ˠtLqn"&b4$@xB4!TA_c@ˢ$@x"4!TclT_@8 4 @@T,@_? Tp@L1n"&4@|pL1n"&5@a N!N0n&B R_֥Ѡ_!@ˢ@8B4!T ?@#T @T,@_?lTc@ˠp@L1n"&4!˥?@CT#DpL1n"&B4caT! @T!@˥ˠpL1n"&4@84!T_c@ˢ@84!TclT_C1@c1_@1@c0TC_ {C{A_Q @s/3CT_t1@?@?T_ NNNN_Tf ib8 * $! )&&&&&&&&&&&&&&&&@q @! @! _@q @! @ _@q @! A9_@q @! _@q @! _@q @ _@q A9_@q _H@ qL@qL_R_TIE)@LTB@_H @TAB@qLIF     )@!LTB@B_+T@LBT__@lTChhb8c`(($TJ ) @ $Z_@(@Tc  `$Z_D@(D@Tc `$Z_@8(@8`$Z_@(@Tc  `$Z_D@(D@Tc `$Z_$@x($@xTc`$Z_@8(@8`$Z_@(@Tc  `$Z_D@(D@Tc `$Z_$@x($@xc`$Z__@(@Tc  `$Z_D@(D@c `$Z_@(@c  `$Z_@(@Tc  `$Z_@8(@8`$Z_@(@Tc  `$Z_$@x($@xc`$Z_@(@Tc  `$Z_$@x($@xTc`$Z_@8(@8`$Z__+TB(($!T_ !T(($aT_ aTBjTB_@mTB @(@TB lT TB chhb8c`J ) @ $Z_c  `$Z_ΐ|ؚtl\J(a_S {@q{ @S¨_S[{@q{@[ASŨ_S {@q{ @S¨_S {(A@?5:BA(M@?:(]@?R  "wRR#?{ @S¨_ S {(A@?5>B(M@?>(]@?R "wRR#?{ @S¨_ { `5 OU@ R? {Ĩ_{`5oU@ R?{Ĩ_S[c{9* Z( q"ѓ{cB[ASè_S[{! !A)C qA @BRR @ R|@ @Q?q3* @ !@$@c @h%h~@ j3$ R K?q @4*R @!}h&@cj@h%~@ j3MD)R @( sB(* @ !ibbB`5iQ @?q!R @ !QbJhBҁ4s"T @ {è@[ASè_S[{RR_@1R?44R$CR@* @S5 @a"c @@1R?5ca" `4R @q1{è@[ASè_S{@?1@FR%RR? R{S_{qT-F(-@? R{_{qAR?uARR?iA`@?HAeA!RRRRRR?mARRR?aA?{ĨA_S[${CQ@? @RC!R?֠4#@ RAq@TRAp@RC!R2 @?c}}}}}}1@?g@raT!@ ?!@@?!@`?RA ?I@?H 5I@?@R!R?#8A %g@2ga1OY@R$R?ր5=@?9@*RRR? R(@!R?! (%@a@?I@`@?E@`@R?a@`@? U@#@?S[{YAB ?s`@y4q@TR*5ZAB `"?s"8 qb@y4R`4 RR! .@x4R*@5h@y4R*`5h.@xh5`@yR`4ys U@yqTh@yqxys c`4>@yqTh@yqd`@y4R`4ys h@y4R*`4h.@xh5{@[ASè_S[c{@?@yqATqJR RAo1 @y4R*`4.@xh5A))@ R?ֈ@y |@q`T )  Rz)x H(9Pj BT 8?5qT?)qT CTѿ!5@K9 RcR R?*qh~!Tci)xc3@y4R*J`4h.@xh5h@y!qR*=`4h.@xh5h@y!aqR*0`4h.@xh5C A @5 UA?֨>@yqTARy QA ?yh4(-x5y-h4H-x5yLh4(-x5y+h4H-x5H A*AKt"Km""{&!C@R`>C_{R{_C@`>C_{@R* RS41a%Z54qSH45R{A_R{R{_{y{_S { RS( 4RC9dSBNq` Th5(RB!! a `4RBA  HRB4RC9*sh@SH4s@}A?AR`?gh@Sh4`@yd<S<*d*rS4T5bR R* *gS4C@9H5R*{¨ @S¨_RAR?*a*M{{_{`4 !9 @H_hK ȩ5`T!9H_hK ȩ5;R{_ R{ Hy9q)R)I99Sh5RxS5R R{_S{z9*h5qT4s5A9594R A9 )9 )*) * (R:9 R{S_֠R{IR (@y kT,=@*, RH@ kATH1@y-qT ),()@y a) @y,) _ @TI @A)TH @  A)TJ jR H%@h6R RRR{¨_{S645!9ȿ;{A_{y9S)SH45**Z R{A_{ ()GaTT A9rq`{A_{Z{_S{@sXAT c ?@) (? @ |@)ʨ ? @ |@)ʨa ?#@C@ @H  @?X( {èS_ 2-+3-+R_ R_R_A:( _:_{@ @  {_@q_A_!_`>_{C}C}}}}}1 ?O@@yrHR {Ȩ_ֺ{! ?֠@yIR k!T<@ R (I@? kaTH1@y-qTH@9qTH@h4 RR{_!( S{@)h@ kTh@q!Ti"@H(K q T?kTR{S_ֲ@-csm @S[{a.5.!!BTt@~A?ր?#T{[AS¨_S[{.5.!!BTt@~A?ր?#T{[AS¨_Dq_@y-<S54|= A  `N `N+>N7)>N S%Ț*`TIh 86<`N0:n>N1 `N(>N  H!Q qS%ɚ( @T  J(>N )(}@Ӊ H AIh5F N |=  `NsnR `N1 `NN>N/>N7 SI>NJ%Ț(>N  ( `T  ki _ k+T-T(}@ $(!Q qSJ%ɚHI?TT K}@ Ap<`NsnNQ:n(>NHR `NH>Nh H>N )(}@i H+Aj@y_ k`_S[ck#{f@@ ˨@h6 y@52A9HJ@?qZ@ R jT@kBTAR4@_C(T @_C("T@4@q T*@"C( c`7qmT@) kThA`R 4sA}A?!R`?@"R @ C(@@"@@!C(h? @@kTRB@@˟ kT *R4 *@_C(#T @_C(T@r`T R4R4R4R+@B(T @B("T@@ kT @ @ kTk kT * kT @@4B(@z!T *@J @ R"C)@ * @ k *T R{è#@kCcB[ASŨ_csm{Sh5RSh5 R{_{Sh5 R{_S{C9@ kT@qT @  K qT@ @4@)@@ 6 @4@4@ @}A?`?{èS_ csm  {{_{ {_;@T'_{`{_֔S[{@1aT8 ?֨*@ ? T@  ?`5 @ ȳ ?4(hz@  ?a * ?{[AS¨_{?( ?1T;  ?֠4(hz RR{A_{`@1T ?h R{A_{=(A RR ?4 HiO R IiR{_S[{jO4=asQ`R ?jO Qj35 R{@[ASè_S{ 3R{¨S_{@TR**S{RLfh@*H6"R*Zgh@;rTh@(9~@j@ , F @yk ҩ!h@"9Oi@;?rT_q!Tyk!*@96yk!*96a@gh@; SH5Rh@;6 _qATA{S_S[ck#{*~@ ;F @h{z +! (Ix9q6h@h5L }@h@*i@h9U 7V>ԩ֚>BR*aT`@*h@;Sh4 S?q*HH#R*aT!lTh@;S4h@;!Sh5@o"h{z @)! *@9 6 S?q*HHV> ֚(֚  {¨#@kCcB[ASŨ_{S[ck` zs/h@*h5Ii"@ R*)*I@ 3F@hzuWA"!@hzu"I@? AT@@ R# ?4R*o`@B( T#,A(# _ BTH95qT_ "TH9)qTJS8J)kJT#H@kDcC[BSA{Ũ_H *S_q( T *Aӟ %@x)qkaT` 郈 8J)q_ aT_ֲLS {*TRM{¨ @S¨_h@y4@y5RC[ @|R* s @d @l{cRR R`Y@R{A_S{MRh@;5 S4!*! `6`@`s &*{S_S{ 3&R{¨S_h@;1 Sh4 **{ <SR?k3<S`T?qTEA yix  C'y"R#yK R!4#@y R{¨A_S { *SR{¨ @S¨_֟ qT*K**S{_q Th@; R jTh@;rTh@qT`@; |@*F)@yj +! i9)7h955"R.@h@ (ˋ )ӟ kThӟkT j"@  ?lTh@( THhi@ R(KhR{S_S {h@*;5 S5R8jRI_)yI5;*Sh5qTR h@hi@;( S4jRI_)uI5; h@;)R qTh@;!Sh5@Rh"`@;*@TR{ @S¨_!|@O{$@T9RRbyJHiix(%xh4!сy'HR@RR{_@@@@y4*@y * 4 * *kT-@x *i5i4,@x5@yH4)@y *)4 @y * * kT-@x*h55,@xh5$x @@_{RA`H@{_{S[c!R?T5 @x9c9SW kCyS9OS#*V6Ts5 @T73bTWs69 @@Tj(8SB@9S4@HC yI*cC[BSA{Ĩ_t @!T38{S[cuR0@T5 @x9c9SW kC9yS9OS#*V6Ts5 @T73bTWs6y @@Tz(xSBw@9S4@HC yI*ycC[BSA{Ĩ_t @!T3xS {TRRB3hTBhT RuRB>3R9*{ @S¨_S {TRRB3~hTBhT RuRB3R*{ @S¨__qT_ qDLz T_4q T(S QR? j RR__q@T_ qTH0QqiT(<S ~ QR? jT RR_ 0B `@,BA h $ R 8@q @zTQ8B5>*I *( qTh +$@ 9 $@) $ K P $@H$_ 0B ` ,BB( h $ R 8@q @zTQ8B5>*I *( =SqTh *K=S $@h(y$@ $ A P$@ $_ 0B `@,BA h $R O|@8@q @TQ8O>+Ϛi ( LqT ,$@ 9 $@) $ K P $@H$_ 0B ` ,BB(O|@ h $R 8@q @TQ8O>+Ϛi (=S L=SqT *L=S $@(y$@ $ A P$@ $_S[{*q7RmT*s@1TskT{@[ASè_S[{*q7RmT>Sw@1TskT{@[ASè_{b9($@h]A5 )@i a"`H@h D@i J!`@aB[!i@(C72*R(jb9{A_(@ }@9*@L94* *? kT8*h5 4h94RS Q? j`Th8h5i*9_qT*8_qT(_ k,h885_-@ 9@Sh8?qT@ 8Sihx7Sh8?qAT 9?q }@m @*9j98 *8*5_S[{ @< u@BR@C 4 @`. @qT@ @?T RRh@h5U4u{¨[AS¨_S[{ @ u@BR@C  @` @qT@ @?T RRh@h5U4u{¨[AS¨_S{h6Bhh@R}hrD ir? qTR.b j*@i 7l9 S?iqT}@ +}ӊhijR  h.@) *}Kitk.!q TqhTi (I8( RS4a9b`F:~)h~)9R94/qTa[)j@ @* K!kl_l66h2@ Kj6 2i2(R:q`Taj@ @* K!kh_ qh:)i:S4h@ 9i9h@i5 ih.@qGzThrD ir? qT`*@{S_֩S{h6Bhh@TRzhrD ir? qTR._ j*@iJ 7k@yRh =S?iqTh }ӉLii Rh.@ ) *}Litl.!q TqhT (I8( *RbjR9 *`:~)h~)9R94d/qTa)j@ @* K!kl_l66h2@ Kj6 2i2(R:q`Taj@ @* K!kh_ qh:)i:%S4h@ @yiyh@5 ih.@qGzThrD ir? qT`*@{S_֬9qTqTq`TqTqT0@ 2 0@ 2 0@ 20@ 20@ 2 0 R_@yqTqTq`TqTqT0@ 2 0@ 2 0@ 20@ 20@ 2 0 R_{a9R9?1Th@ @*@KaxhR4b`h@ 8i9h5R;R R{A_{ 9?qT@ 7R ,S`?9qaT@h 7 R ,dRRT<@(5?qTT?%qT?1q@T?QqT?qT @(9qT( )R=IR;R<9 R6 @*9_qT(9qaTJR_q!T(9qTjR( < $HaQ S?qTiX(%Ț6)RR?qT?q T?qT?q!TRRR  @(9qT( RiR < R{_  { @y?qT@ 7R ,9Sa?9qaT@ 7 R ,RRU<@(5?qTT?%qT?1q@T?QqT?qT @(@yqT(  )R>IR<R<: R7 @*@y_qT(@yqaTJR_q!T(@yqTjR( < %RH =S?qTHX%ɚ6)RR?qT?q T?qT?q!TRRR  @(@yqT(  RiR < R{_ S {h9 Q_qT (Y ( R$!h2@ 2i2ARROi2@(Sh4(2h2R"RRR RhRi")^S 4hA9H 5l2@Cy  9S4Sh4Rl6hRS4RC9+m9RS aQ? jTSh4.RRS QR* N55CRhi)8aqTqRAT RGhi)8k i6@ *hR@r)K4KTc*R`8dBc*C`Ti2@( S4( S5c*R`(Rh*@(7h2@ S4c*R` RR{¨ @S¨_yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy{S[h@y Q_qhT (Y ( R[$!h2@ 2i2ARR i2@(Sh4(2h2R"RRR RhRi")S 4hA9( 5k2@  yhS4hSh4Rk6hRhS4Ry*l@yRaQ jThSh4-R RQR  M55R(y*xaqTqRAT R (y*xJ i6@ *hR@r)K5KTc*R`tdBc*i2@( S4( S5c*RrRGh*@(7h2@ S4c*Re RRy[BSA{è_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxS {j@ @* K!ku_@b>@a9`@t&@yS4(RhR9)}S Hh&I(85H)R9iR R{ @S¨_S {j@ @* K!ku_@b>@a@y`@t&@yS4(RhR9)}S Hh&I(85H)R9iR R{ @S¨_S{Ch2@4Rj:@ 2i2J6hA9R Q? jRR*j: *5h9qT RqaTt:*RHu}@`b`S(5h2Bh@h.BA uQi:ib(B(h&j@ @* K!kp_a2Ba@h.BAӡ@abcb h.B#H"Ag"@ e9f:@h2@ S4h:@5a@`&@hA9R Q? jTh2@ S5a@`&@j&@K9qTh2@Jj& 2i2K9h%Q S?qTX(%Țh79qTh2@kRk9 yi2K9 k4(85( hR RC{¨S_ !S{Ch2@4Rj:@ 2i2J6h@yR Q? jRR*j: *5h@yqT RqaTt:*RHu}@`bS(5h2Bh@h.BA uQi:ib(B(h&j@ @* K!kp_a2Ba@h.BAӡ@abcb h.B#H"Ag"@ e 9f:@gh2@ S4h:@5a@`&@]h@yR Q? jTh2@ S5a@`&@,j&@K9qTh2@Jj& 2i2K9h%Q S?qTX(%Țh79qTh2@kRky yi2K9 k4(85( hR RC{¨S_ !{b>@a9`@j@S4 @* K!kc_xa2B@abh.BAd@`B 4(Rh9ib(B, @* K!kh89(RhRib(B R(h&{A_S {5RuR9j@ @* K!kb>@a@y`@t_xibS5(BC9Cc@G9 h@ T6u9(B(yib(B RuR(h&{¨ @S¨_S[c{j>@*XS_-q(TI(I8( t@6 Sh@4 !i)85}@7 !i5_83tj@@V S 4 @* K!khx}@% @* K!ku_xtj@@ S @* K!ku_tj@@ S 4 @* K!ku @* K!ku_҉@(S4)2j:@6(Rh:(yA}@`b@ yR9"**Tr*@ S4hR@4h&@ 9?q Th&@ R i&*9hR@ iR RR^R{cB[ASè_ֱS[c{j>@*XS_-q(Ti(I8( t@6 Sh@4 !i)85}@7 !i5_83tj@@V S 4 @* K!khx}@% @* K!ku_xtj@@ S @* K!ku_tj@@ S 4 @* K!ku @* K!ku_҉@(S4)2j:@9Rj6y:(yA}@`bA@ yyR9"**T*@ S4hR@4h&@ @y?q Th&@ R i&*yhR@ iR RRR{@cB[ASĨ_ְS{j@ @* K!kt_#4j>@_-qTi(I8( j* h*@hRyyh99(Rh9 RRR{S_S {@ @* K! G) s_9@15&S4(&3(R~@R9` (&3~@*R R{ @S¨_S {@ @* K! G) s_@y@15&S4(&3(R~@R90*(&3 RqTh94 S@ @*@KkxrhkTR R{ @S¨_ @I@ THa@94H@ IH@a@9H@ I @H @ I @H@9 @ Rh@ i_ @I@ THa@94H@ IH@a@9H@ I @H @ I @H@y @ Rh@ i_{SfChRA94hR@qMTu&@R&@xd@#5@b4dBc#`DhR@kT h*bR@dBa&@c`6 RCE@SA{è_S[{hRA95hR@qMTu&@Rc@#yCh@ *qmT#@yb`hR@6kT h*bR@dBa&@c`8 R{¨[AS¨_S[{*4@*@ T(a@94h@  H @~@1B@H@ I@H @ I @Ha@95Thh@ i{@[ASè_S[{*4@*@ T(a@94h@  H @~@1@H@ I@H @ I @Ha@95Thh@ i{@[ASè_S[ck{7R9sTiTM @a1TB @qT> "; @Oh81AT!T, @qT(  691T! HR R {kCcB[ASĨ_S[ck{7R9sTiT @q1T @qT " @_h1xAT!T @qT  6y1T HR R {kCcB[ASĨ_{ ? ? R{_?_?_S[{`R< RW R"S)4(yh4) ( A6A RR<`5SvR`R8*{[AS¨_RҍS {;3yh4(-x5(i@A(y h4H-x5H ˿"T`@xuxqTz`4i@h@  { @S¨_R#R{S[cs+ R RlcTy@@@yJ4RH =S?eqhTHy.@x*5RUR R*5 HR @G~@Ty HR @R= A? T<LT|DHs/sRRhsB R @@*@ R4* HRTRh_R kaT`B*cC[BSA{Ĩ_S{Cco@94 @HC yI{èS_C߈CbR%@x+$@xHQeqIhQLieqhK5l4BB_{]Ah5z R5 A{_S[{c R =VsR9C@h@(<&@xqBT @ ylx6h@il8Sc1@<S&@xqBT @ ylx6h@ il8 Sc!@ <S K5t4sѓ@94 @HC yI{è@[ASè_S[ck#{ R {è#@kCcB[ASŨ_ֳ ؚTTRa3 ؚTh@; R j`Ti"@ R  Rh@; R j Tw@4 77BT*_C7 Ta@~@ӂ  a`R4  h@B7j@ZC7 KHA7ih~@B)T{@ W4I5>   K_C7CTh@h. @*u 4@7 |@Z @@ ?1T@Z(@9i"@  TR HRzjRI_)2I5jRI_)2I5;@ ؚlS[{ uTRY R {¨@[ASè_F ,C S[{*sj@K_  T(AkT? T @ T Ra(AaT[w@v@"q TI+A?)A? T@I v@ kT@T  kT  kTI  kT  k*!T(R4R%RR"hRtRHRTRRR kT kTI kT  k*TRR RRRRHRTRh}A?*R?v}A?*?wR{@[ASè_֑@__ @h @*)*-ʚ__ _S{ @h @*)3-ʚsR}A?`?{S_ @ RIi K,ɚ h _S[c{((v"R8qTqUR@  8h9s8* 4@  9h9s545q`T&qT8R9(4q`T%qT94v"(@ R )9+R R8JqqTqTJ749qaTq RJ}S*4JQsw9s@  *59 45qIzTK4`99s 4@  9h9s@  s9s@  V(@ ){@cB[ASĨ_{bTB> š?T)|  )T !҆ {A_S[{*u 4QqTR~RSU RF(3@sh9H5c,A"RR0cq!T@tQHC *4 @  @ H@ h@)i Ү R*{è[AS¨_S[{`@h@HN@4t@@RRR|@vA @*RR@4Rz@`@r{[AS¨_S{@hRs /`RTR*{S_S{@hR,s Z`R53*{S_S[{9 4q)h4H85H8H5  94i4H85H?qT!} u`5"h@ @  {@[ASè_RS[{@y Ҩ4qk h4(-x5( A* @y5`> 3@y4= =Sh4(-x5( A7_qTA+ u8`5" h@ @ Ң ҟ {@[ASè_RyS{@@`TSh@ @ {S_S{@@`TSh@o @k {S_S{`"@Sh@T @P @Sh@H @D {S_S{ @H!?Ri@9?qhT)4t4?qaTq *q@4ss?qTh@8*5{S_S[{( *Cӿv@~A?ր?sT{@[ASè_S[{`Tu@~A?֠?ր5TR{[AS¨_S{ @?`@a{¨S_S {bE95)R1 ;Ո@ @5 @K(@ `TI3-˚}A?R`??qTp@ @5 A  @ @5(Rb9 @)R 9{ @S¨_k_csm{*)b5! ?֠@yIR k!T<@ R (I@? kaTH1@y-qTH@9qTH@h4*3cC9SC#HRIR)sGy@4{ĨA_*{*vqT1@ @*!SJ5 ?ֈ * ?* * ?S{ (! *CR ?4 @a ?}A?*`? @ ?{¨S__"RARR"RRR}RARz @@ RIk K T ,˚* ʊ_gRRh{RlRIH;R{_{@Qur!T0@qT!!;RRRR{_|@?@q- F@yl !*@9+9OT? @q T(@@Qyr@T?AqTH2(9(Ryl%H9 H2(9HRH(9H2(9yl%_9o5Rk5RqR(R _S[{ @C9"`Tɂ h@ T  `s"@{è[AS¨_q)R ;_{SCcCRR){¨_{*CJR)RrI1 Ts4q`T qTR y2H  *{A_aA;_{qTR H_@ 5;*{__S{ @*@*{¨S_S{ @oy*@*{¨S_S[c{@ @- @@* ʩ@V-˚* ʩ @N-˚* M-˚ TC @(  U#T4" Tu+"  @  *C 胊kT @@ RJ KR @*-ʚK  @ RI K@.ɚ  !I@ R+ @J K -ʚ@+ H@ R  @HK@-Ț+ H@ {cB[ASè_S[ck#{@ @k?L@i@* i@U-Κ* ʩ? T-ΚHT "џT@`T  ʙhA3-Κ?`?@L@+@h@  h@M-Κ  K-Κ`XT    TU L@@ @,@H@ @*@L R{#@kCcB[ASŨ_{ScCIRHR){è_`  @@ T@ R_{ScC'HRIR){Ĩ_ ( R_{ R{_{ R{_{@B!&"  R{A_{RS{_S{jDH_QH 5;(5`DЈBT Bh R{S_{`B `B `G `G  R{A_{A3!S{_{S4@H% RAQ!S{_{9  @}A?`?"{$@T?RRb9JHi8(8h4!с9-HR@RR{_{!`R!@H6`>`RO7 66R?kT R_RS[c{h@*wSR4 QqTCDy@R@-49m @S ix69 lq2q `TqT,49l Ru4BqaTB S?%qhTQ ~ S?eqhT^Q S?eqQITh4HR9RkS aQ? jTqRlѵl49 kTjl@lt9lRqU5> KB S?%qhTQ ~ S?eqhT^Q S?eqQIT1@TkT kT k KziTR" Rh@7* 9lh49kTs/7@9y4 @HC yIi@ih@(R1**HS4]HRw7@964 @HC yIi@ih@(R4 @HC yIi@ih@(W6K@94 @HC yIi@ih@(*{è@cB[ASĨ_S[c{@*uS!Ro4 QqTCd@R3@y( @%@x*R@52qhQR jT@%@xzrRTqTqbThQp R k Tq TqbThQgq TqbThQa%q# T%qbTh%Q['qc T'qbTh'QU)q T)qbTh)QO+q T+qbTh+QI-q# T-qbTh-QC1qcT1qbTh1Q=3qT3qbTh3Q75qT5qbTh5Q1B9q#Tj9qbThB9Q+B;qcTj;qbThB;Q% KqTqbThQp R k Tq TqbThQgq TqbThQa%q# T%qbTh%Q['qc T'qbTh'QU)q T)qbTh)QO+q T+qbTh+QI-q# T-qbTh-QC1qcT1qbTh1Q=3qT3qbTh3Q75qT5qbTh5Q1B9q#Tj9qbThB9Q+B;qcTj;qbThB;Q%(R{¨@@cB[ASĨ_S[ck#{* 1U|@T$(Rv!7Ek T~@:F@I{y ' K@96kT RU4+7!H@[9qT q!T6R*7~SqR41(%RR"R*^H{y # I{y ' RH@9 jTH9)q@z Th9(RH{yKRsQ # +94H{y # *9_)q@z THRj9H{ysQq # +9TH{y # *9_)q@z ThRj9H{ysQ # +9*4H{y # *9 6ha@ ? 4(RC9 qTi(@ c~S ?5h ?`@\B)4 C9i(@ s* ?@q UzT@ H{y # *9 6~@ q T@A *g*AC@9"AӨ4 T*@y_iqT_5qAT(  T@y)qTJRH  jyh ? TH{y # I@9(2H9h A4yS*h ?qAT+(R@RqaTR@X* R (R{Ĩ#@kCcB[ASŨ_S[c{h C ?@y4/@h@ R @q*E4k48h Ҁ@ TT@967? 4hF{hi@*!_I@9H9sQV5{Ȩ@cB[ASĨ_S[ck#{hi8R: ;R~@Fzh@3! i@* _Th@92h9*{94q`T`@ (?T?R4u qTh@92 qTh@92h@9z2h9 @i(yvq T{#@kCcB[ASŨ_{R RR/5e3RR+ *{A_S{`jt`j4s"CT R{S_S { T|)E3h R ?`h2`4K4ER?,R{ @S¨_{R C@h  R {¨A_|P;_S[{@)a( ѶT@Sh@;5 S(5kRh_ 2i 5;7h*7 ҏ_h  _RR_jRI_)2I5;{[AS¨_S {C @y eA ,@x?qT5R?q`T?qT?q!T3`RR*3!RJR RRRR)RDRREҨ@y** 4MqTTq TqTqTq@T9qTIqa T5s2s2=rTs22'R4f5&R37j3305s2/Rq$QqTqTqTqTq TqTr`Ts2rTs2 5Jy5J2.RqraTs2s`6 Rs2)R?q  5 q@y.@xqT5@yH42R@ @{¨ @S¨_h#b 5(@y(-@xqTq!T4 @y.@xqTh$5h2IhA$5h2  h$~`5h2jixqT H-@xqT5c9S {*&#@9h5@0R*C,5HA@ IjRI_) *I5;@~h{è @S¨_{"Eh R ? 5h ?u*{A_S{ @h@@ |@*F)@ yj)! *@96:*(R@*{¨S_{1Ty(R7EkT |@*F)@yj )! *@9J6S)Ccs[c(R{è_S {*+aTR@qaTH!C97 qATHB96 R@RT*hA ?5h ?**~@ F @(yk I! ?94*R{ @S¨_{h@;5 S4h@;S4`@QjR (I_) I5;~{A_S{ @j@h@ @))@;(5 S4( qaT?rAT X6h @ @95h@@ @;(S4h@@1Tj@H@ Ih@  @{¨S_S[{ @j@(vTh@@ @;(5 SH4( qaT?rTX7H@ Is" @@@c#'+/@C@b{ƨ[AS¨_{SC9Cc#R) R)sGC@9@q@ {Ĩ_S{i@;( q!T?rTh.@ Kkq-Ta@*Jk TjRI_)2I5; h@; S4jRI_)yI5;R{S_{R`5h@;- S4`5R{A_ Rh {CH@  @@{¨_S {hT(hE R ?`h `4%4ER?R{ @S¨_{A #RC{¨_{A #RCҾ{¨_S { 95 yKC$@*R( @ kaT! q (@s@9hy R@9H4 @HC yI-@9c4@# @qTkKT @!R5 @5( @(T94 @@#R @!R# 5HRR{è @S¨_ҡS {#y @TSR7sh{@TqR,R+@)R @ kT#@ycS`qmTZ@@#@yqT@TRKHR@R@94@HC yI{Ĩ @S¨_tu9S(Rh*S#RCR 4@5S`Rh ?qT@TRHR@RS{ @@ @*E@I_)I5;`@{¨S_S{ @h@@`J@`J@BT T@H5\J@{¨S_S{ @s@ @@!@@@`@{¨S_S{ @_@ @ E@_Q 5;5A@T`@t{¨S_{cR#c#RR)+R'R (/h A@C @AK@(E@iRIyy@ y@pC{Ũ_{{A_{RRRR) @hA?T @8@@-@@1@@5@@%@@)@@=@@A@@A~ScCssC:{Ĩ_S{J@)BJ@T T@H5JsU{S_S {h ?*B1 TTB`4y ҬBҽ35BҴ>&ha * ?{ @S¨_ָS{B1T}@TB4y wB҈5B {S_։S {h ?*B1 TITB\`4y BBSN5BJҼha * ?{ @S¨_{#1aTRR R{_{`B1Th R{A_{Bi@?TI C?jaT`{A_{Di@?TI C?jaT `{A_S[ck#{CK@9qS*b.(THR@R@HtaT@*R* `49 R*  R*iSKA 9 9Rh9@sRIS6y_)LRT{9@@8(Rh9ws t5R@}@ @(9(9@ @IRҟqmT@ +@h%š =S+j=S_qiTH =SHQj9=s!DӔQ6b7@S4kRl9S Q? jaT{8Tq@T i9h8h8qT*RsB49RqHkSk Ai9@l Ht ?*?hRh9_9 T }H ɚ  9 aT_ T H ɚ  i9k D J TIH ɚ  i9kH i99R@94@HC yIC{è#@kCcB[ASŨ_S[{*  `@_C1CS*y@[@*Cqqן  H `49 +@RC***{¨@[ASè_S[ck{*qhŸ %)wS*STHR@R{èkCcB[ASĨ_CE64@q*qmTH9 h4(85(  @x@RqaT9q Th9@h9(}@ @*9j8@ 33 Hi"1 5` w4Rh9@ 9?q T@ Qm6 Kz9qkT}( `h 9+}l}K R h 9)qkT}( `h9+}l}K  h9 Kh9 h9? qT9qTb,@94 @HC yIRRҰ QgfffS[c{C*S@Rw4HQkT@q**H_i388@qTRh9s@q,T5@ 9(R?q@TR4h4t h9h4(85(tx9t(qT9h4(85(@}@ @*99@6Kq VzԢt4h9h4(85(`4~@R@94 @HC yIR{ècB[ASè_S[c{@*C?}C*S*G@c@*C*q@3Q `49@ Q?1$UzT kTh8587@$RC*\ 7@&RC***{¨@cB[ASĨ_{)S(*T9R{_4R98@TcшS R-ySNQo ,yk9 h4H85H 臟  + ykf`5RRS_{@W< *@K%ךs=S5"q7*b5@h @*%ךL=S!qiT RT(!ך * _@TqTK @*%ךKS)L` qT34@qTs4@HR{_AS¨_S[{C*WRRwT+qTQ qRHT&RG7@tT@aT R   aTRs(*K`2S*]SD 2[@{qlTQyrTqTq+@ * *  :qTqT+@ **  +@} *>#@**q'@   ˁ`49+@R*_ +@ * *  C{¨[AS¨_֨@)B @? _{]A5R A{@_T*{_S {sR*Rh#U{@TC@@**!Rk5RQ@94 @HC yI{è @S¨_S[{Rh~@QRR[ 4"Hs:q "T RRR{[AS¨_֨ |@  ! jI(S[{"H4hasQ`R ?"H Q"35 R{@[ASè_ |@  ! jI!(S[c{C*q**Ta~@k***!C{cB[ASè_{<SR#y kaTR%cR#@yqTh< @ ykx6@@ik8S@ @%RK#RC R `5#@y'@y@94@HC yI{Ĩ_S{3R{S_h@;5 S(4h@;1 S5h@;SjR4I_)2I5;I_)2I5;h@; R jaTh@h3b"@a@,`qTq RR+jRI_) *I5;h@;rT1`T1T*~@) F @)yk H% ( @9IR  qTjRI_)2I5;h"@qaTh@;S4h@;!Sh5Rh"h@j@ QiH@@9hbT_S[{*4h@94` @9~N95h@hh@94` @{9@R` qqh9i 5h @yR!R*|@5H ?@%i@ iTh@94` @R9R` qqh9i5d @ *!R*|@I(hR{[AS¨_S {*4h@94` @$9~R@y5h@hh@94` @9 ұR` qqh9i5h @9RR*n|@5H ?֗@'i@ iTh@94` @9R` qqh9i@5d @ *R*F|@I(hR{@ @S¨_S[ck#{R;Rq@HSRRCC9G9K9@i*t5Ȏ@hWB(C( C탉 ҭj@H9 h4(85(  T"X WB T˂@H9h4(85(I!^@5@wk4"TRY *C@OTJ*{Ĩ#@kCcB[ASŨ_R"S[c{9h4(85(4 TR{@cB[ASĨ_!ҍ5 5i@?T`@Ҁw`i@ (iC  TH @R* `" i i@5h@ !iRRҽ{S[c# X 9Q S?qhTi&Ț7T 9?qATTy(Q S?qTh&Țh6)R R?qKc9@)R @ k!Tc@94@HC yI"Rq c@954@HC yI"R4@HC yIRC@RqRHA R ?T1*^&@)7C39o@)R @ k!T@94@HC yI"R1 @954@HC yI"R4@HC yIR3+@q9qT9h4qaT94*35A9h4)Ha  ?֠5"@  +C T@ a RA9h4H!  ?cB9h4C@* #@cC[BSA{Ũ_ 4S {*h@9H49~8@y5h@hh@9H49HR@R9+h @9RR*C |@)H ?l@h@?Td @*R*-|@I(hR{ @S¨_{S HA T|@Ӣ RC ?5H ?>R)SS##9@)R @ k!Tc@94@HC yI"Rg c@954@HC yI"R4@HC yIRC{#@ ~SA{¨_S[{ @@ @*E@Aa @ " RR" RR@ @*E@Le@%h% Th}T@ @*@H_QH 5;(5@ @ @A@T-@ @@*@hE@H@*@KE@i_)i5;@{¨[AS¨_qTq`TqThA#q h#h"h"_{*C?A 1T(R(AI(1!T(R(AI( ?*1T(R(A@ @@94 @HC yI*{èA_S{b" RR AhaB) R ˟His8)Qh85fhe  Rhii8JQ(85{S_{ `@(Rk TH C ? 4R(8qT R[@99[4*@9qTI(8 kiT(-@85e@R  R!Rg@ RaA R Rg@ RaA R@Rof,R R%@x6iB,Kig8(a@92(a9 6iB,Kif8(a@92(a9 RKi/8JQ5  R RhQeqTh}QjB(nSIa@9(2Ha9 hQeq(Th}QjB(Ia@9(2iHa9.SRh e9kQ5E @{¨_S[{*6SS*%@*E@ @ kaTREһ@ERE@l**1TR *{Ĩ[AS¨_V5@ E@H_QH 5;5@E@(A@T(R@E@I*C_jT'RR)ScCqV4@ @IS {CI?jTJ@hF@R(F@@Th_Qh 5;5A`T@Fi_)i5;ՠR4{ @S¨_ES{a9h5 (Ah )Ah&~@cB!R](R!9 R{S_{4 {_{S[Cv*4! R U}@Ө~ iv?k@ TJ_q#TRk@ TH Ȁ>S ?ր4(RkaTh:y pH * ?֠4ub" RRv@t qT@9(4(@94+@9kHT Kj Jj8kQ2J*8Jk5(-@8(5)R)Ji8?q2J)8cT`@)R` Ri AH59wb" RREA! ҎRB2 j@9j4h@9(4_kTMqBTJm8Jig8(*J-8h@9_kTj-@85Q5(Rt)* `l2R*kQJyhx%xk5 RC@[BSA{Ĩ_S {*C**@jS* e@9?jaT4@@ jx*  Rj5R R@94 @HC yI{è @S¨_*҃RRRkTRK%qTTR(%h7qaTRӚRkT(՛RkiTh֛RkTRk`T(RkAT!H RKqR釟kHTRK%qTTRH%7qӚRkT(՛RkITh֛Rk)TRkT(Rk`T!xR?q?qi4GH S[{H! ?U@y4 =h4(-x5( A*k h@y5h 7A*RRR|@**RR`4(HA  ?{@[ASè_S {H! ?t#@y4 =h4(-x5( A*k h@y5h 5AӖsFHA  ?{ @S¨_S[ck{*RR TV`TT@@y(@TT@4W T@(@ATT4h ҫ@(T@4 @ҡT@A@5@ yyx?q$@z`T@C˕@Hzux5zu(@((@hrT z54ˡ ?T?T^ }TW4yh4(-x5(A AҿuR 5(Ha q?x  ? 5HR @2 / @RR&*{¨kCcB[ASĨ_RS[{{[AS¨_h@ H@) vti@(y h4H-x5H AAgj3js b@q5i@R}{ 1@*@K @7C@Rq@T R{¨_S[c{ 5s @tTuWRRR] RR\8x"828B8R8*I *9?qcT!TҞ{cB[ASè_S[{@t THa?ֵ"aT{[AS¨_S[c{* @qcT6(R R{¨cB[ASè_RRҿ E k+TzsH z3RR*E s  |@*F)@yj ! Ki(S[c{*7EkbTh~@6F@zu "*@_T9qT34qT qaT`@ H  ?zuR"4(R{cB[ASè_ |@*F)@yj ! Ki!(S[c{RVRqTs6!3HE IufS*~@ F +yj(Rh9R`*{¨cB[ASè_@T@9H6H ?ֈ@9(6H! ?ֵ@"  ɚ ~@ F  @ Hyli! (R(9Hyli! -sS[{*S7EkTh~@5F@zt "I@96H@ TqT34qT qaT`@ H  ?֨zt R"*8(R+{@[ASè_{1T&(R 7EkT |@*F)@yj +! i@9i6`@(R{_֪HIH RRq(HI_S{A%`@@@T3`@@@T.`@@@T)`@@@T$`@@@T`"@"@@T`&@&@@T`6@6@@T`:@:@@T `>@>@@T`B@B@@T`F@F@@T`J@J@@T{S_S{A%`@@@T`@@@T` @ @@T`.@.@@T`2@2@@T{S_S {(@ҟ @sT{ @S¨_{```BA``@`@`@``b`B`A`B `RA`VA`ZA`^A{A_bRII @y 4(@y_kT!) @y(@y K_{S[ck+q****rt5H@ @q)R(R!R***v5R;~@ A? T<LT|Dcs/sRRhsBR]**!R*x`4H ** ?*Rh_R kaT`BHc@94J@HC yI*_+@kDcC[BSA{ƨ_ @I_)I5; p@I_)I5; x@I_)I5; t@I_)I5; @I_)I5;Ո ! RH_ TL@_)5;H^L__)5;JkQk5@US[{i~@iA%?Thr@@h5`z@@5`~@r`v@@5`~@`r@`~@h@@5h@ўh@ћh@ј`@`@2!vtR_T@@5@^_@H5~"Q5x{@[ASè_֠H T pH_H 5;*_{sHTh^A;Ո5T{A_֠H T pH_QH 5;*_ @I_)QI5; p@I_)QI5; x@I_)QI5; t@I_)QI5; @I_)QI5;Ո ! RH_ TL@_)Q5;H^L__)Q5;JkQk5@_S{CI?j`TJ@SRSBB Rr{S_քS{@aTt@5 `T{S_S[ck#{A!|@I{y;ՔЋ@ji -ʚ` T`  TH #H A +K{F@zt;ՓT45ytRH?I(?\qTH94H!:@4I(A R? ȿ; H_S 5;Ոh?3+AaTЋ@Ha@  ?@ RIi K,ɚI  *ȿ;Ћ@@i RJ KI-ʚ  +ȿ;{è#@kCcB[ASŨ_S{H=H>CRl3H}A?`?{S_ %{Ha:H:CRQH}A?`? R{A_S[ck#{CH:*H:*C R*.9H}A?;@*** ? RHA *** ?C{#@kCcB[ASŨ_S{H!;HA;C `RH}A?`?H ?{S_S{H;H;*C RH}A?*?H! * ?{S_S{H;H;*C RH}A?*?H * ?{S_S {H!<*HAqTVQqT*!5{è@@cB[ASĨ_֩@H)C*(@kT)A? aT KR7!RC9s4`R@4(@ V-˚`T.qT"R%6@"qT@R"qTH -C@  Ki1CH _T_JA(@s4`RaTR"qaTH}A?a@R?H}A?*?֟.qhT"R%6"qTs4`R`R!S[{RRsRȢAkT@ sI(@;5 S4@s1`T@ s JHa ?֨@s@3@sR*{¨[AS¨_{1T(R7EkT |@*F)@yj )! *@9@(RWR{_S {SRHR{¨ @S¨_ue4trAT****C*@44i*F)@ yj*! I@9(H9`@T4u*S[ck{*~@*F9)@yj *)! *96uj!TC5@ jATs2i ?@q:RXRT(A@Qyr`T(@QyrT(AQyrT9 3*(`Rh  qT99 r T9 07@ R RR kT R kT R k! T @ 4 qTq Tq! T3R4bRC*q`Az1T@qT qTkaT9*BR*uR*pT@7~S=R kTRߟR k!TRA*Z`T9R*R`TS49RqT qTߟRSRsR4RC4bK*1T k TR{¨kCcB[ASĨ_R@S[{*9r**R TqT q TO 6 r`TRRR h?qT?yr`T?qT?qT? qTIRRiR?qT?q T?q Tn*h@ R)Ri BqTqTqTqTqTZ  R khRHR(RR Rh)86h92h9x7HjTC5@!@qTh9a2h9@69J(** j87(RhT06h@j@ 2ii@H2h*2j`6h@ 2ih6h@ 2i(6h@ 2 6h@ 2i{¨@[ASè_R. @S{*i~@*F yj)@)!  R+@9jaTK86BRuT@ qT@"R#yC*#@yq ZzT*1TR*Y@TR{¨S_S[ck#{****?@H%@cJ @1h%j T@1!TR(RG@+RF)Ks* C@[#*E*(  ?kE) D)T7@ R( kT6(6y E*#* ?aT *Fyj)@*! I@9(+iH9(?F@(  ?`5( ?*8 *F)@yj*! I@9(H9)(A ?5HRqTc92 qTc92c9@4Ј Ҹ2*Fc9yj)@)!  89KFykI@)! ?936@*4@*gc@C9H%@J @C*h%j @*u4*}@Щ F @(yk C9K! i9KFykI@,! @9(ASJ*S R h J9 jTs6 *Fyj)@+! i@9(2h9 R kT6(A  ?( z D)E*# ?aT( ?֪ *Fyj)@+! i@9(h9@X  *Fyj)@)! R{Ȩ#@kCcB[ASŨ_***%RS{ @h@@ |@*F)@ yj)! *@9 6f( ?`4R ( ?*{(R@*{¨S_{1Ts(R7EkT |@*F)@yj )! *@9J6S)CcsW(R{è_{S[ck+*~@:F@H{y xC"3" (@/hC")( ?#}C@RR @'T~@)F+R{9_ k8R T+yh R h-"*94qKT@q TH{y"*@9 8. K6Tch"c *,i8kQH85 Rq-Tch8I J_k)8kT H{yQ  &k_9M5cHRq)R8@`TQi@98(kTq*RIRX@#CTs6*I{y & l@9qT& j9B 9hR 9h99}j9HS x6@v TB1T"1 T#@ҥR*Rs=* 4(/@ s* ? 43@@jK@T k T+qTR3y( s"Rc ? 4@4@@TF'@@RT H{y Ji8 )&j9}@_ T ! RmT H{y"+ Ji8j9}@_ TH{y " *9J{y* h@92h9( ? @CB94?@HC yI@*n+@kDcC[BSA{ƨ_{S[Y/(ss/ |@ *F)@yj RtB")! 7@TccRc1bTi9s?)qT 9! 8 TK ( C*c ?@4@)@ ?kCTT( ? @@/(s/@[BSA{Ĩ_{S[ /(&s/ |@ *F)@yj RtB")! 6@%cRтc1bTi@ys ?)qT y! %x Tc  A( CzSc ?@4@)@ ?kCTcT( ? @@/(s/Ѵ[BSA{è_{S[ck+O(״s/ |@*F)@yj vB")!  9@"T(cR*cBTi@ys ?)qaTy %x T AҥR#cR R*4R4#A4ȢKC?@4@ kTiKT( ?@ @O(s/u+@kDcC[BSA{ƨ_S[c{** 1T (R,7Ek"Th~@F8@ {w)#*@96*{w)#*@97(R****#*(R{¨@@cB[ASĨ_{S[ck+**43R~@;F@h{z "T9 S?qHTU7H@9(6BR*4*4h{z"*9*6H@ @h{z"*9*4h{z"(a @ ?4T4qBz TyB5 RRT&@x*) " k!T* *q!TR <S5qT)T( ? @C2**h{z"I964qT q!T** ****8@@ ( * ?5( ?3(@) @HI @@h5@4qT2(R%Rd bh{z"*@906h9iq T"RUKRb+@kDcC[BSA{ƨ_{*CYhqT@@ sx R@94 @HC yI{èA_{C T@R kR)Siy{¨A_S[ck#{@6yҚRh9h5"h9h5Bh 9q"Ct T`@kTIT A@QR)J*yR U3.xy UA ҟyHR{¨#@kCcB[ASŨ_uҖh9h5"h9h5Bh 9q6 @TAT{_ .a59?`raT9?PrT* R?<rTR(KqTJ R?( rATkTj R ( a2i 8!|Slh*9@__MHR{_S {**5h9qෟ& @5h9qTTiU4(9(8qT5h_8 RqTh9qTq RaT qTh9qTq R@TR{ @S¨_S[{ RRDa_q9H ?)TSRR*3R@v9u9h4R8BQ_q T97@**SH4(969(8qT(9h9qT@  jH9 h4(85( aTR{[AS¨_S[C@H4'@4 QQ 5*@_qT@C[AS¨_5@J5> ( q藟 C[AS¨_ ҟ1T }@  xiK N>h ΚQ }@ 1Th` )q(RKRh C[AS¨_ kT K k *Th}@ H}@.xi xikTJQ_ kkQTBT 4Q .xjQ 5xj(R RZJK S?qTRK4&!.*"qT Q +xjh%*ҥQ% 7}@Ӧ kT|@ xiRQI xiQ  xj4@%֚! q(!ԚOT Q  xjh%  *@C> Ú@Ƚ }@өT` %@@?T~@ӯ}@j}@ _Ti ? J )T R'4}@ *xiH-* `  xl_ kH Kk%x,k#TA$IT R4Ҩ }@ H xl+xhk(A+  x,O`ӃT*}@QQe6@ *_kTH}@ x)@J_kCT 4kQi xij5 k5C[AS¨_C[AS¨_{S[ck+,*c@7R}qaT9c 9@RRRR(it)@`T+@6H%?Th@aT(R   aTRhs(*Kh2qT qT q`TqTHa&/53RHA&H!&H&!@5Rh@g t)R_)@9 @3(RLRJ)T dl`* )ZR x(Kyrq)RHR+KqcT3XRR, 4 R33YjYj kA TJ_ qATQQ }S'RK)(!ƚQ3hQ(Yh*RR%* ZHIK K S_qZ ?q T k藟  6 qHTQQkT K Q kT3NYhR? kT3YiR  %(!J*3jY,Qk`TK@O@R43?Y( kTO@KRKRQQ }S'RK)(!ƚQ3hQ(Yh*RR%* ZHIK K S_qZ ?q T k藟  6 qHTQQkT K Q kT3NYhR? kT3YiR  %(!J*3jY,Qk`TK@O@R43?Y( kTO@KRKq Ts%XRR[ c 4 Rs%3YjYj kTJ_ qATZ(RIKR K S_qZ ? q'V qTRKQ?1T(Q? kT3JYi R kT3hYhRHy3hY))Q?1`TK@O@KȆRKt~S~~Rh)R)!*IY4}~s_0hTϭ6q Z*RHIKR K S_qZ ?q'V qTRKQ?1T(Q? kT3JYi R kT3hYhRH}3hY))Q?1`TK@O@KR9Rt BBHU!7~`YS4IR?q Q)#3 Rt @9u@9~ӈ Yi@y(>~ @ yC?qTC5RqTw4 R RsYk} A)Y+kkI`!T4BqTsIY(BBR RqT *@"}~_0sTG9RHRkBB34q T 4 R RsYk} A)Y+kkI`!T?k'?ksc1?ksb1?k$1qRR4fXn5kT?Y.1R*Re4qTkTY- LXg+Xmk} A/=*A+  )X-7@ET/4q TkTY-HYm A/IY-/`E/5q TkT*}~_0sT֬9R?HRBB)R4 @I9K5@HS uS* Z  K4Ha%iQ Yi 4_qT4 R R sYk} A)Y+kkI`!T)4BqTsIY(B"4 R R3M҈Yk} A)Y+kkI`!T)!4K@qT3IY(K@KKH`Sw4IRq Q)#3 Rt @9u@9~ӈ Mi@y(>~ @ mC?qTC5RKq`TV4 R R3Yk} A)Y+kkI`!Ti4K@qT3IY(K@KO@RKRqT *K3@"}~_03T;9RHR_gI)S4q T 4 R R3Yk} A)Y+kkI`!T?k'?k3c1?k3b1?k$1qRR4fXn5kTY.2R*R4qTkTY- LXg+Xmk| A+, *A/  )X-7@ETO4q@ TkTY-iYm}@ A)jY-O`E5q TkTK~~_03T˫9R4HRK@O@(RH4 @)K5S uS* X K K4(a%iQ Yi4_qT4 R R 3Yk} A)Y+kkI`!TI4K@q"T3IY(K@KK@KK93c#<@(qT)RBi9s4 R RsNҨYk} A)Y+k kI`!T)4BqTsIY(B9sz5Qh9s@@7_k  #@ ?A*H}@)145TK@ N4 R R3 XYk} A)Y+kkI`!T)4K@qT3IY(K@KK93Ac#K@ R*Kq9h} k `ӊ}SHuS L k KjH}STqhJ-8Q1T9%)(T@99q@9h4c*,+@kDcC[BSA{ƨ_Rҁʚ;S {sR@MRR{ @S¨_ֿSTѪR9RT4SR*{DA{_S[c{C*q**T~@*qTa~@*44***9kh} y* HRC{cB[ASè_{jHA! I`'h@jRI_)2I5;R I_)2I5;hrhHRh"h@h{A_{S[ck+ R{+@kDcC[BSA{ƨ_vY?T(ci# 7 ֚*_!HTTT~A? ?qt”TTH9kщi8i*8I8kT@HA}~At? ?qT_Tjh8I9H9i8L~A? ?qT_TLH9kщi8i*8I8k~A? ?qTTH9kщi8i*8I8kTBT~A? ?qT (T~A? ?qT;˿)ThA? ?qTTTlH9kщi8i*8I8k7 @TIT(}A? ?4 ; ThA? ?4 @ W@ T_Twk{#7T9Txk{#_bT,7kѵ"W{# +@x@#{AR c9"9RuR{_LTi8h84)щ i8h84)iJJJ9iT8 R9HRQ@R{ЪR }@?BT?i*8qKT)@9i4-R+C( iil8!H *)@8hi,8)5 @9i4+R( )Cj!(il8_jT @8)5{_֠S{\RSTC@ @h5` kkџ Th@9 e@9I7h @j @@94 @HC yI{èS_{S[ck+qCC*Eq***Ta~@kw5@ @Hs@*R)RRqA***x5R A? RT<LT|D[s/CtRB **!R*t 4R***U 49P66 4kTD@****u59~ A? T<LT|Ds/CsRRhsB***4*R*5RH*5h_R kaT`BR_R kaTB*_CCЩ+@kDcC[BSA{ƨ_D@*h_R kT`BѴS[c{C****@****#@94@HC yIC{è@cB[ASĨ_{Sq{_S[c{UHRtR }H 6}~@|iw 4`6Qk-T |"(ih7qT }|*H& ihR{cB[ASè_{R hE ( R ?{_S[{$2HTavE R ?րa4 4ER?֠R{[AS¨_S[c{"R*G*BRB T TMT!fRR*@ R*"*1TRs *mT@1T@qTR@!*RR*@T*SA ? 5yR ( ?*go@R**{cB[ASè_{#y%4S!RCD`4#@yR{¨_{Ch)j .?.?(G?g [H @y5@987OqQh qaTLR h qaTlRhqTRR)R K(! Q+  * L@9 SK@ S? qAzT kT 8qaT  * T? T)KKL y SI yRhKqiTADq"TR R(R) (yhkTOq__HRC-{_{*Ax   jTRR9`RR0`-R{A_{``R{A_{`@`@IC @5@h@ kT@Rh@ k@T R{¨A_{ C5 @C@h(25R R{¨A_f )L T@`T %RR#RH/&RaR;@TERRCR X X Tn`t \8pp \ \ \+qf }`r;g;{y*sz | \8 yOT \RX yBXu+qR }yK]Yg^`g^;"Tz \gR1:p.fRn2\ 2lȵm}\l ~\b(-Lgt+KiQ}@8b HA2u rymH::uP\VQU\q\st\KT7 yBUymFW\t wfY*u_VX }yc]Rg^`K^_ V]4x?Q#Ib?ƺ??^?AG;BIb?WUUUUU?B.?_D; R J}S rTPq T`qTpq `R R@RRr R_qRqR**qKRI*q**} SK * j *K*`*_(D;*r R_qRqOR**qJ*}SK * j *@ *_rTq TqT q  D; }@(X+Sjq Iq q *q @Iq * qI)* H D_`? r(D; X S KqjqHK qiq *I)D_`(94Th85_{s`DTH ( RdRbRR ?`{A_hD TA _S[{!wD ** ?*5 ?qTD TA ?H ( RdRbRR ?! * ?**{@[ASè_|S H2rKh2rjH2rKh2rjH 2rK rTPq T`qTpqTk2k2k2rh2`_*RjRTSH2rKh2rjH2rKh2r`L86 2_(D;}@(D{, *D; R J*,**  N*k T mSH2rKh2rjH2rKh2rjH2 rKrTq TqT qTk 2k 2k 2h2rRj @*DՋ{_S {*6@6 Ҥsz6H6@Ҟsz 6P6Ҙsz6X6u 6ґsz 6`6Ҍszq{ @S¨_{S[c#'oyX (@`****bpg*5 qT@iR;(3#C**)^S(44@mm@Ac_`5*&@*"@5@:'@#@cC[BSA{Ũ_Mg_RS[c{  @** @? 6 @H@ 2I6 @H@ 2I6 @TH@ 2I6 @H@ 2I6 @H@ 2Ih@ @ HӨ @)*iJ*, J h@ @ I @)*iJ*, J h@ @ JӨ @ )*iJ*, J h@ @ K @)*iJ*, J h@ @ LӨ @)*h3 6 @H @ 2I 6 @H @ 2I 6 @H @ 2I 6 @H @ 2I 6 @H @ 2I h@  r`T_Pq`T_`qT_pq!T @H@ 2 *RJR @(@H3( @H@ uI @@ J*+-h J @H!@ 2I! @h!@V4 mi! @@P @ha@ 2ia @Ha@ mIa @@QQ)R( 3h! @@0 @Ha@ 2Ia @)Rha@( 3ha @@1)Z C"RR* ? @H @ 6h@ wiH @6h@ viH @6h@ uiH @6h@ tiH @6h@ siH@ r T?qT? qT? qTh@ j )h@(jhIh@ hi4PQ@Q)@{¨cB[ASè_ {qTQqTHR(R{_(D;}@ *D_D; R J!*-)|@|@  i D_(D; }@K+D_(D;}@_<@ R (I)@yL @y( a4 I@?@)TH@  ?@)Tk kJT_S{T`5R aˀ`R$@h* R{S_@yIR kaT<@ R (I@? kTH1@y R-q@TR_{h@ @+u(kj}@I*@!Ѥ R{_!594  |j7p= S %Ț N2 NI>N*`TIH>N )I87(}@` Hw }@H S %Ț 1 )>N*TH }@Ӏ IilA< N0:n>N1 N(>N }S(>N +j}SA*AV4 N|=   N4n1 Nr N,>NO>N 7 S)>NJ%ȚH>N-  (!Q qSJ%ɚOL ҆RkL ki _ kcTl>Nk>NJ86ki  K H <4n Nq NR N+>N/>NM>NL>N) (!ʚ * KډR) K HQ(!Ț * `TI  K(}@ H__ BT@8!k`TBт_t3 @3.1 (>N ?qT(}@ _ @1gJ _A cT6 N_TpE@ir = mAn6n0=+A76nJT6n6nNN1N2:nH>N(_T_A#TpN_A"T_!Tp@3.1 (>N ?qT(}@` 53;nh>N(:n>Nh N  N :n>N N  N>Nh >N )(}@ 1 N(>Nh (>N )(}@i A J!k!h@8!k`TJъh__{(@@ {_a{@ @? k{_a{ ȨC@94( @c)ȱc*H@ kaTc( @?qTc(ȩ!@ kTc( !@ kTc(i!@ kTIc()3@B ձS?S ߈{A_a csm !"{ @ {_a{@ @ ՠ @ {_a{`R {_a{ @@ {_a{@@q {_a{@@ {_a{@ {_a{Rp {_a{Rh {_a{ @@ {_a{ @@ {_a{@@M {_a{RE {_a{R= {_a{R5 {_a{C@94`R+ {_a{@H4@@4i*Fh)@ yj*! I@9(H9`@ {_a{@ @R r? k{_a* +"+<+X+f+~+++++++,$,6,F,V,n,|,,,,,,1111n1Z1L1:1*11----..6.J.X.h.t.......///0/@@@Ȫ@ت@ @ @ @ @ $@0@ @@ P@X@ h@ x@ @@@@@@@@@@@ī@ȫ@̫@Ы@ԫ@ث@ܫ@@@@@@@@@@@@ @@@@@ @$@(@,@0@4@8@<@@@ P@ `@h@x@@@@ج@@@8@X@#@@ ȭ@@&@0@@@D@P@`@#@@ @@Ю@@%@$@@%h@+@@ @"@(8@*h@@ @@ @@ذ@@@0@@ȫ@ܫ@@@@@P@__based(__cdecl__pascal__stdcall__thiscall__fastcall__vectorcall__clrcall__eabi__swift_1__swift_2__ptr64__restrict__unalignedrestrict( new delete=>><<!==!=[]operator->*++---+&->*/%<<=>>=,()~^|&&||*=+=-=/=%=>>=<<=&=|=^=`vftable'`vbtable'`vcall'`typeof'`local static guard'`string'`vbase destructor'`vector deleting destructor'`default constructor closure'`scalar deleting destructor'`vector constructor iterator'`vector destructor iterator'`vector vbase constructor iterator'`virtual displacement map'`eh vector constructor iterator'`eh vector destructor iterator'`eh vector vbase constructor iterator'`copy constructor closure'`udt returning'`EH`RTTI`local vftable'`local vftable constructor closure' new[] delete[]`omni callsig'`placement delete closure'`placement delete[] closure'`managed vector constructor iterator'`managed vector destructor iterator'`eh vector copy constructor iterator'`eh vector vbase copy constructor iterator'`dynamic initializer for '`dynamic atexit destructor for '`vector copy constructor iterator'`vector vbase copy constructor iterator'`managed vector copy constructor iterator'`local static thread guard'operator "" operator co_awaitoperator<=> Type Descriptor' Base Class Descriptor at ( Base Class Array' Class Hierarchy Descriptor' Complete Object Locator'`anonymous namespace'(null)(null)   mscoree.dllCorExitProcess@@x(@(@6@6@@x@)@)@@@@`@@P@@6@8@6@@`@6@أ@@6@        ! 5A CPR S WY l m pr  )   Y* ccsUTF-8UTF-16LEUNICODE ((((( H   !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ ((((( H ( 0@@@@@@@@@@@@@@@@INFinfNANnanNAN(SNAN)nan(snan)NAN(IND)nan(ind)e+000@@@@@@@@@@@(@4@@@L@P@T@X@\@`@d@h@l@p@t@x@@@@@\@@@@@@@@@@@@(@8@@@H@P@X@`@h@p@@@@@@@@@@@@ @(@0@8@@@H@P@X@h@@@@@@@@@@@$@,@8@P@x@@SunMonTueWedThuFriSatSundayMondayTuesdayWednesdayThursdayFridaySaturdayJanFebMarAprMayJunJulAugSepOctNovDecJanuaryFebruaryMarchAprilJuneJulyAugustSeptemberOctoberNovemberDecemberAMPMMM/dd/yydddd, MMMM dd, yyyyHH:mm:ssSunMonTueWedThuFriSatSundayMondayTuesdayWednesdayThursdayFridaySaturdayJanFebMarAprMayJunJulAugSepOctNovDecJanuaryFebruaryMarchAprilJuneJulyAugustSeptemberOctoberNovemberDecemberAMPMMM/dd/yydddd, MMMM dd, yyyyHH:mm:ssen-USja-JPzh-CNko-KRzh-TWuk@@@P@@@P@@@@P@@@@@@@@@ @h@api-ms-win-core-datetime-l1-1-1api-ms-win-core-fibers-l1-1-1api-ms-win-core-file-l1-2-2api-ms-win-core-localization-l1-2-1api-ms-win-core-localization-obsolete-l1-2-0api-ms-win-core-processthreads-l1-1-2api-ms-win-core-string-l1-1-0api-ms-win-core-synch-l1-2-0api-ms-win-core-sysinfo-l1-2-1api-ms-win-core-winrt-l1-1-0api-ms-win-core-xstate-l2-1-0api-ms-win-rtcore-ntuser-window-l1-1-0api-ms-win-security-systemfunctions-l1-1-0ext-ms-win-ntuser-dialogbox-l1-1-0ext-ms-win-ntuser-windowstation-l1-1-0advapi32kernel32ntdllapi-ms-win-appmodel-runtime-l1-1-2user32api-ms-ext-ms-AreFileApisANSICompareStringExFlsAllocFlsFreeFlsGetValueFlsSetValueInitializeCriticalSectionExLCMapStringExLocaleNameToLCIDAppPolicyGetProcessTerminationMethod Tc-^k@tFМ, a\)cd4҇f;lDِe,BbE"&'O@V$gmsmrd'c%{pk>_nj f29.EZ%qVJ.C|!@Ί Ą' |Ô%I@T̿aYܫ\ DgR)`*! VG6K]_܀ @َЀk#cd8L2WBJa"=UD~ $s%rс@b;zO]3AOmm!3VV%(w;I-G 8NhU]i<$qE}A'JnWb쪉"f37>,ެdNj5jVg@;*xh2kůid&_U JW {,Ji)Ǫv6 UړǚK%v t:H孎cY˗i&>r䴆["93uzKG-wn@  _l%Bɝ s|-Ciu+-,W@zbjUUYԾX1EL9MLy;-"m^8{yrvxyN\lo};obwQ4Y+XW߯_w[R/=OB R E]B.4o?nz(wKgg;ɭVl H[=J6RMq! EJjت|Lu<@rd 6x)Q9%0+L ;<(wXC=sF|bt!ۮ.P9B4Ҁy7P,=87MsgmQĢR:#שsDp:RRN/M׫ Ob{!@fu)/wdq=v/}fL3. iLs&`@< q!-7ڊ1BALlȸ|Rabڇ3ah𔽚j-6zƞ) ?IϦw#[/r5D¨N2Lɭ3v2!L.2>p6\BF8҇i>o@@w,=q/ cQrFZ**F΍$'#+GK ŎQ1VÎX/4Bycg6fvPbag ;s?.❲ac*&pa%¹u !,`j;҉s}`+i7$fnIoۍut^6n16B(Ȏy$dAՙ,C瀢.=k=yICyJ"pפldNnEtTWtøBncW[5laQۺNPqc+/ޝ"^̯p?m- }oi^,dH94X<H'W&|.ڋu;-Hm~$P  %-5 > H R ] i u -C Y p        %  d'@Bʚ;01#INF1#QNAN1#SNAN1#IND@@@@@@@ @ (@ 0@ 8@ @@ H@P@X@`@h@p@x@@@@@@@@@@@@ @!@"@#@$@%@&@'@)@*@+ @,(@-0@/8@6@@7H@8P@9X@>`@?h@@p@Ax@C@D@F@G@I@J@K@N@O@P@V@W@Z@e@@@@@@ @0@@@P@ @ `@ p@ @@@@@@@@@@@@ @0@@@P@`@p@ @!@"@#@$@%@&@'@)@*@+ @,0@-H@/X@2h@4x@5@6@7@8@9@:@;@>@?@@@A(@C8@DP@E`@Fp@G@I@J@K@L@N@O@P@R@V@W @Z0@e@@kP@l`@p@@@@ @ @ @@@@@@(@,8@;P@>`@Cp@k@ @ @ @ @ @ @ @; @k @0@@@P@ `@ p@ @@;@@@@ @ @ @@;(@8@ H@ X@ h@x@;@@ @ @@;@ @ @ @; (@$8@ $H@ $X@;$h@(x@ (@ (@,@ ,@ ,@0@ 0@ 0@4@ 4@ 4(@88@ 8H@<X@ <h@@x@ @@ D@ H@ L@ P@|@|@arbgcazh-CHScsdadeelenesfifrhehuisitjakonlnoplptroruhrsksqsvthtruridbesletlvltfavihyazeumkafkafohimskkkyswuzttpagutateknmrsamnglkoksyrdivar-SAbg-BGca-EScs-CZda-DKde-DEel-GRfi-FIfr-FRhe-ILhu-HUis-ISit-ITnl-NLnb-NOpl-PLpt-BRro-ROru-RUhr-HRsk-SKsq-ALsv-SEth-THtr-TRur-PKid-IDuk-UAbe-BYsl-SIet-EElv-LVlt-LTfa-IRvi-VNhy-AMaz-AZ-Latneu-ESmk-MKtn-ZAxh-ZAzu-ZAaf-ZAka-GEfo-FOhi-INmt-MTse-NOms-MYkk-KZky-KGsw-KEuz-UZ-Latntt-RUbn-INpa-INgu-INta-INte-INkn-INml-INmr-INsa-INmn-MNcy-GBgl-ESkok-INsyr-SYdiv-MVquz-BOns-ZAmi-NZar-IQde-CHen-GBes-MXfr-BEit-CHnl-BEnn-NOpt-PTsr-SP-Latnsv-FIaz-AZ-Cyrlse-SEms-BNuz-UZ-Cyrlquz-ECar-EGzh-HKde-ATen-AUes-ESfr-CAsr-SP-Cyrlse-FIquz-PEar-LYzh-SGde-LUen-CAes-GTfr-CHhr-BAsmj-NOar-DZzh-MOde-LIen-NZes-CRfr-LUbs-BA-Latnsmj-SEar-MAen-IEes-PAfr-MCsr-BA-Latnsma-NOar-TNen-ZAes-DOsr-BA-Cyrlsma-SEar-OMen-JMes-VEsms-FIar-YEen-CBes-COsmn-FIar-SYen-BZes-PEar-JOen-TTes-ARar-LBen-ZWes-ECar-KWen-PHes-CLar-AEes-UYar-BHes-PYar-QAes-BOes-SVes-HNes-NIes-PRzh-CHTsr@B@@,0@q@@@P@`@p@@@@@@@@@@C@ @0@(@)@@X@k@!p@c@@D@}@@@E@@G@@@H@@@@I(@8@@AH@ @X@J(@h@x@@@@@@@@@@K@(@0@ 8@H@X@h@x@@@@@@@@@@@(@8@H@X@@#h@e0@*x@l@&@h8@ @LP@.@s@@ @@@@M@@@>@@7(@H@ 8@NX@/H@t@X@h@ZP@ x@O @(@j@@aX@@P`@@@Qh@@RH@-@rh@1@x@:@p@@?@(@Sp@28@y@%H@g@$X@fh@8@+x@m@@=@@;@`@0@@w@u@Ux@@ @T @@( @@68 @~@H @V@X @Wh @x @ @ @@ @X@ @Y@< @ @ @v @@ @[@" @d( @8 @H @X @h @x @@ @\@ @ @ @ @@ @ @]x@3 @z@@( @@88 @@9H @@X @^h @n@x @_@5 @|@ @b@ @`@4 @ @{@' @i @o @ @( @8 @H @X @h @Fx @paf-zaar-aear-bhar-dzar-egar-iqar-joar-kwar-lbar-lyar-maar-omar-qaar-saar-syar-tnar-yeaz-az-cyrlaz-az-latnbe-bybg-bgbn-inbs-ba-latnca-escs-czcy-gbda-dkde-atde-chde-dede-lide-ludiv-mvel-gren-auen-bzen-caen-cben-gben-ieen-jmen-nzen-phen-tten-usen-zaen-zwes-ares-boes-cles-coes-cres-does-eces-eses-gtes-hnes-mxes-nies-paes-pees-pres-pyes-sves-uyes-veet-eeeu-esfa-irfi-fifo-fofr-befr-cafr-chfr-frfr-lufr-mcgl-esgu-inhe-ilhi-inhr-bahr-hrhu-huhy-amid-idis-isit-chit-itja-jpka-gekk-kzkn-inkok-inko-krky-kglt-ltlv-lvmi-nzmk-mkml-inmn-mnmr-inms-bnms-mymt-mtnb-nonl-benl-nlnn-nons-zapa-inpl-plpt-brpt-ptquz-boquz-ecquz-pero-roru-rusa-inse-fise-nose-sesk-sksl-sisma-nosma-sesmj-nosmj-sesmn-fisms-fisq-alsr-ba-cyrlsr-ba-latnsr-sp-cyrlsr-sp-latnsv-fisv-sesw-kesyr-syta-inte-inth-thtn-zatr-trtt-ruuk-uaur-pkuz-uz-cyrluz-uz-latnvi-vnxh-zazh-chszh-chtzh-cnzh-hkzh-mozh-sgzh-twzu-za??Xt?0 ?A??m?'?~?R?+M?0??ZR???'??$?\g?A)??@L?a???Ȇ?9??3?G?#??@D?M??@2?j?@Bt?@?X?R%?@>r?r? ?T??@_?01?^y?? ?(N??`??a?@?? -*?k?@@??B.?y|6>gsh>ƈ[^>/T,X>0S:zb>|si\a>酲j%M>zz[>ܥY#4o>wHn>G2k>)l>YHȆ>0AvVL>3/c>v ka>zzk>RUWk>q9a>de>B!Ѳm>dNpm>6/EiU>[ >$'<>F(o>BĮ^>&qN]k>YWm>bj ;>L!\>G[%_f>PHIZ>w_FGm>{]>`hj>>duo>3>ҾC`>\_>h_=N>qCF>WN@l>^b @>L-n>4b>\ngd>Z=@pn>6ނBg>?xb>8rZ>Oc>m>Bĩ*Vc>LHT>z\P>[0>'>m>[a>"߹oI>bAe>USY>kX>,HR>log10CONOUT$user32.dllMessageBoxTimeoutAMessageBoxTimeoutWFatal Error in LauncherFatal Error in LauncherrbFailed to open executableUnable to find an appended archive.Unable to read from file#!PATHEXT;PyLauncherSTATICJob creation failedJob information querying failedJob information setting failedstdin duplication failedstdout duplication failedstderr duplication failedUnable to create process using '%ls': %lscontrol handler setting failedFailed to get exit code of process.exe/usr/bin/envExpected to find a command ending in '.exe' in shebang line: %lsExpected to find whitespace after '/usr/bin/env': %lsUnable to find executable in environment: %lsExpected terminating double-quote for executable in shebang line: %ls<launcher_dir>\Terminating quote without starting quote for executable in shebang line: %lsFailed to find shebangExpected to find terminator in shebang lineExpected to decode shebang line using UTF-8Expected to find '#' at start of shebang lineExpected to find '!' following '#' in shebang lineExpected to find executable in shebang lineExpected to find arguments (even if empty) in shebang lineExpected to be able to allocate command line memory"%ls" %ls "%ls" %lsBaZBa Ba 8@@@N@RSDS/n)#M8%dC:\Users\Vinay\Projects\simple_launcher\ARM64\Release\w64-arm.pdbGCTL.texto.text$mn.text$x.idata$5.00cfg.CRT$XCA.CRT$XCAA.CRT$XCZ.CRT$XIA .CRT$XIAA(.CRT$XIAC0.CRT$XICH.CRT$XIZP.CRT$XPAX.CRT$XPXh.CRT$XPXAp.CRT$XPZx.CRT$XTA.CRT$XTZt.rdata.rdata$zzzdbg.rtc$IAA.rtc$IZZ.rtc$TAA.rtc$TZZ .xdata'<.idata$2'.idata$3(.idata$4*.idata$6@ .dataJ.bssp .pdata.rsrc$01N.rsrc$02*Ȃ*Ȃ*H@HBȂ&@tȂ&@@ -@(@hP\@Ђ$;10202h2x202 @4p;444 @@@'@"@"!@@".P(@";$?8?8?B@9@@0@ JɆȂ,JɆȂ,@0@ JɆȂ,JɆȂ,@@9H)@8!@ ɊȆB ɊȆBb0ɈȄHP @";B C@/P @Ђ$;HI< @ P @";JJP@Ђ$;pKKbPRȄHcPSȄH20ЄHPȄH>P4@Ȃ$;dp 8p0ȄH *P@Ȃ&;@@ɆȂ*J@?@Ȃ&R@G@Ȃ&5@0@CP>@Ђ$; @p";X`!pȂ$;̝؏p";P\p"; ; +@@Ȃ&FpцȂ(;гNpцȂ(;Ƚp; 8p;d<@@Ђ$!p";P\1p";p;pȂ$;\s@E@Ђ$/7*5;@6@Ђ$.@*@"p";p";p";p";P2@ @@@ɆȂ(=`$@ @"h`Ђ$@@ɆȂ*d@@цȂ(PшȄHB0HJ`$0ȄH2P-@Ђ$;Ȑ\@+@Ȃ$0HVpȂ$;<X@@ɆȂ(:@@Ȃ$VP$@Ȃ&;d8.P @Ȃ&;4po0 ɈȄHP@";  p;++P%@цȂ(;-.(/0/(p";+,5pȂ$;P//<6P @Ђ$;01P@@@Ȃ&@@ɆȂ(-p";`<<\FpцȂ(;F G0 ɈȄH40 ɈȄHN0ȄHL0ȄH_0 ɈȄHj@F@ɆȂ**@@Ђ$gP V ɈȄH@=Ȃ$P  ɈȄH8@@+P'HP ɈȄHr0HNP D шȄHp"; @@ @@@BB c(,*X-*-* +"+<+X+f+~+++++++,$,6,F,V,n,|,,,,,,1111n1Z1L1:1*11----..6.J.X.h.t.......///0/=>%>???l@AyaAEaAU0BmeB CebDHFpH0IaaIb(J8JyK\K bL-MOAHOP`RS0WmeWmeXaYdxZd([5bh])bx`aabdecgkk`lnpaxqc@r5ft=vbw@x8z{d{e|eH}E~EE@8 Ubp8؄M(Aehh(@؉ e`]bQ8qa@ }byb|@UbUb@bؖbhqeؗ]8xxAHQ` 1`0aОM00 xP fIiآ=PA`-أMa@`]b]a %HEp ȥH ( Paa)ز) c5 !@uظiؼ gIi PEbH !D! aa0T!hXiat!!xa`bea-`@-`-`@u!"d"h$"D"(-a `mb!p!(M`9aMaMa8qi"fpg"X"P1dYyxmef``""""x" # ##ahb|#l#pD#8qb!,#XH %ep @ #p#`E`fxe$f#8e(-bbQaH$QeHIad$@ yb %i"ebP#Ya#i$mb%qb%qb%x&'i(u(e ))1*e*a0+Qb+$+$,1`,$0/%0}0,%`1p%H4`%67@<%<=%hB&C&D0&PF%hG%JaaJI@KL&LMNQO&Sp&xe`& f8ffgag&k&l&Pmbn&qq!qfrMrsfPu=`u'Xwyaw1axepx]}ea~ep` 'X=@'H9 <,p؏<\Ȑ(PT%`'(p0eH`x ( Ȏh0%عhhP}( @...GGGWWWiiiuuu ̀ ww ww||wwwwwwwwfwwwww|fwwwwwwffwwwwwwffwwwwwfflwwffffffwfffffflwffffffwffffff|ffffffffR\Ilffl)ffح2L18Ϥ"A< ΣTπU  ؀ ???????( 444MMMSSSzzzp p{p{ffkof_fffk_fff[f}UUUfL4UUU_kJqO_~'[U_Uwwwww{~( @%%%+++000===AAAIIIMMMQQQVVVYYY]]]~dFgggjjjmmmrrruuu}}}u?z=~;gEkCoAr@:IbpƏKУk(,1?5<\CKQsU[cbð/Pp  =1[Qyq/"P0p=LYgx1Qq&/@PZpt1Qq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq_______CCBABADL*(%$""&GABJIIDDJC??AD_-(''%$GG#_DIJIIJIIIDIJDD_+)(''%GG _JMCEJ?ABAECA?BA_,+)('%%"!_IM@AJACDCIDI____.,++>________JMJJJJJJJJJF_..,+)('%$"! #GIMCEJJJI?J__...,+(('%$"! &_JM?AJJJJCJ__...,+)(''%$" _IMJJJJJJJJ_K=...,++(''%$! _JMCDJJJJAJ_K_______L*%$"!_I_?AMNJJEJ_ L'%$"_I_MMMMMMJJ_ _('%%_I_CEMIJJMEM _(''*_I_?BMDJEMDMF _)(-LI_MMMCMMMMM_________< ____I_CEM1;MACDMEJM__I_?A_D1@IJJMJMM_FF_I__6_@/EMMMNMM_FF_I_C80EJDMJCJFF?:AA20?_M_MIEM______MIC4BC/ N______MMMMJIDAI_9/ HJJMMJMMMJ??BAI_A7503 IJMMCBCBA44CCI___BAO;6___C_MJIDIDMI_CI___O; @__C_C?J?AJI_?A_DJJI@ O_CM?;I?JI_________H9MAIJJIJI_CD_____JJI73C;IJIJI_?AMDJJDIMJIE5:JIJI__________MMIA:IJJJJJJJJJJJJJJJJMJ???( 444MMMRRRYYY~eGuuu}}}x>iErCE~7?HVbx/!P7pLcyϏ1Qq/Pp",6@J[1qQq/Pp  =1[Qyq/"P0p=LYgx1Qq&/@PZpt1Qq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq!%///* !*/"(%%'%/) /!#''////+/+"*(/ / !%(/ ( (*/ (///) */   )*  /"///// /+/// # + !%//  +"*+'#+//+'!%*++$++!+! !!!<(0`  !!$& &"   WܱNj+<<:5pi$!!!4888&SNJFB=950,(%%%5ǎVRNIEѹ|Jq?o@ZUQMID@<73/+&"-Ɍ444"ք̴wq?]YUPLHC?;72.*%!"""4888&dya\XTPKGC>:61-)% OÑ%%%5ʎA{;ys`\WSOJFB>951,($(9|:z;xq?o@mAkBiCgCdDuZ;73.*Ǒ%%%5̎È>89}:{;yq?o@mAjBhCfD~dEuZ?:625Оa789}:{;yr>p?n@lAjBhCfD}dEB>:5^ό555"܄ѳ„7789}:{;xr?p@n@lAjBgCeDFA=9"""4;;;&ŌC89~9|:z;xr?p@mAkAiBgCIELɑQQQJnnn~~~Įq?o@mAkBiCHHH"""vvv9~:{;yq?o@mAkB:::'''___sssttt8Ϧuǣvyp?n@lA888T---6fffnddd%%%"""OOOSSSċDҧuʤv{;yr?p?xM<<r?̷999VVV###)))444ѳ͝b@~9|:z;}Cg˶Ӎ󑑑ZZZlll;;;!!!""")))___&&&2:::ppp{{{___WWWWWW:::!!!"""***www"""4888&,̑999ԖJJJ|||lll:::"""BBBXXX|||$$$6,uuuKKKCCC@@@...www* Ҍ666"KKKaaaLLLWWW@$"""4;;;&nnnfff!!!$$$999444]ttt|ȇɑ&&&5ЎvvvmmmVVV{{{OOOڥaaaCCCpppό555"ބ|||MMMfff"""4;;;&\\\Ǒ%%%5Ύݧܦ͌555"ۄۥ"""4:::&ڤÑ%%%5ˎܤׇ ww?ww??ww?ww?ww?ww?ww?ww?ww?ww?ww?ww?wwwwwwwwwwwwwwwwwwwwwwwwwwww?ww?ww?ww?ww?ww?ww?ww?ww?ww?ww?wwwwwwwwwwwwwwww?wwwwwwww( @ !!!0\\\JeeeQ666D555A0$ vH<602\7qڴvvvj&&&D1"gLF@;5?кVQKE?9(aV[UPJD>82-uuun{{{j`ZTOVo@lAb_YSMGB<60+%<aVmt>q?n@bb^XRLFA;5/)$Ywwwn}}}j~Cv=s>p?bba]WQKE@:4.(+{;xbba[VPJD?93-'aV~:{;xr?o@lAiBfD}dE|cE|cEiB<61?9}:z;w=t>q?n@kAiCfD}cE|cE}dFGA;=aVңi89|:yq?n@kBhCeD|cE|cELF@mzzznjʓP8~9{;yp?mAjBgCeD|cEPJ\¯mAjBgC~dEaV}:z;xq?n@lAiCJJJőPyq?n@~YVVV???wwwiiiΡkA|;y>>3@@@y~~~obbb000kkk@@@---U<<<&&&[[[6uuusssWWWIII$$$&&&qqqlllg|||s4bbbhhhƑUUU000QQQ}}}---{bbb(iiiLLLBBBaVggg+++NNN|||nj]]]tttkkkrrrwwwӦaVӦzzznjӦˉ ?????(  C﫫oIਨS=?_QF4aZмoEcaXMB70~Iq?c`VK@58z;u=qv>3Eyn@iB~dE}dFGHYYYuuuġ=xmAhC}dE}eGS444|||gC}cEMMM~>q?kAiGRRR¢Gu=xKʺ~AAAAAAAAAAAAAAAA ( h00 %   h  (08@X`hУ 0@P`pФ 0@P`pХ 0@P`pЦ 0@P`pЧ 0@P`pШ 0@P`pЩ 0@P`p<ȦЦئ (0HXhpx@HPX`hpx (08@HPX`hpxȢТآ (08@HPX`hpȣУأ (08@HPX`hpxȤФؤ (08@HPX`hpxȩة(8HXhxȪت(8HXhxȫث(8HXhxȬج(8HXhxȭح(8HXhxȮخ(8HXhxȯد(8HXhxȠؠ(8HXhxȡء(8HXhxȢآ(8HXhxȣأ(8HXhxȤؤ(8HXhxȥإ(8HXhxȦئ(8HXhxȧا 0@P`pФ 0@P`pХ 0@P`pЦ 0@P`pЧ 0@P`pШ 0@P`pЩ 0@P`pЪ 0@P`pЫ 0@P`pЬ 0@P`pЭ 0@P`pЮ 0@P`pЯP 0@P`pР 0@P`pС Xp0@H(HhPX`hpxȩЩةPKx"TE#=__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/w64.exeMZ@ !L!This program cannot be run in DOS mode. $ܭg*ddd,!dd(d/RichPEd9a"  d8@C@PP d.text `.rdataj9:@@.data@0@.pdata  (@@.rsrcPR4@@.reloc@@BLISMCMK SWHHHH3H$0LʺICHL$0DB3HD$ "H 6HHHMHu,HtJH=HHMHu H#L.HT$0A3D$( f|$ й7̅LISMCMK SWHHHH3H$0LʺICHL$0DB3HD$ URH j|HHLHu,HtJHYHPHLHu H#LHT$0A3D$( f|$ йkH\$Ht$WH 1HH3LLBI}LHt1HA;IDII+LD9Ht$8HH\$0H _H\$Ht$H|$ UATAUAVAWHH@LLHAHM8E3Le8@ A̅HxHM8ED$3 HM87HM8LcAAHE3 LM8E|$AIDIHHHtHMED$HHcI+HHM8AHAHE39 LM8DIHHHxAHHHHMHAvHcHH+HYEHM8E3EH+LM8LIIAHH.AEf;uMfHM8AHE3sLM8LIIAHHHN\+M;rfA9t M+M;sMHM8@"L\$@II[0Is@I{HIA_A^A]A\]H\$UVWH03HW.H|$`r H-AHt-AE3H3H|$(Hl$ }LHT$hHL$XHT$hHL$XuRHL$X$ALH3H|$(Hl$ %u3LD$`H*HuHL$XH\$PHH#H0_^]H\$WH@HHH#D$0LLHHD$(d$ GH\$PH@_H(ttH `@H(H\$Ht$UWATAUAVH$PH H4H3HL33E3HHALL\$`A~ LEIDL\$ Et O9\$`tAHM 0LEDˋIH^3HL$pDBh"PHL$pEHHHUHHdHMHHUHAHJHE3HAP"HUHH7mH>E3E3HD$HHD$pIHD$@Lt$8Lt$03Dt$(D$ uJHALt$0DL$(HL$ D3LHM3?H HE3E333HME3E33H =Lt$XLt$PLt$HHD$@Dt$8Dt$0LbHsE33Dt$(Dt$ HME3E3HHDt$ kHzHs=IH k=%H V=E3H D=HT$`H2L$`)H\$Hl$Ht$WATAVH HH&HE3AHHtDKft+f"t%AuHHKxHHuHt IHHA H AHLHHwftA,uAHLHft AuHfD9&t Au HfD9#u AtfD#HH8AHHLHf?"u)f;"AHLfD#HHHHAH t f"tf;"AHL= ft%A%tfD#At HfuH]H\$@Hl$HHHt$PH A^A\_HHXHpHxUATAUAVAWH8HHH3H"f98tOHH3DfHu L-H#LhA]tIAEfuHp8A3f9=[8t L5P8 L5I8HHpfA4V'P;HHHHHHH;s9 t9 t HH;rHHH@7HD$P+LAԹDD$(HD$ 4΅HHcrft|PH|$Pf9t$PtANt Hf97uf?#H4At Hfuf?!HAt HfuHT$@HHt$@HHLL|$@MHH DIu|L6H`H`WSfA9T$u*IL$ ZSHvHMH1f7HcH`HMDL3IIIɍPfIHLAIfIHHLIfIHHLIfHI\HHHH@ƋLl$8Lt$0L LHHL|$(Ld$ I HMH({ffH; uHfuHH\$Ht$WATAUH0Hd$ EHHE3AHu%'%3AHtAfD9*t!HHD$PHu V%fD9.u"C%H HL$ %3LEHH}HHHH\$XHt$`H0A]A\_@SH ILHHu$c$$AHIHHt3$H [ f;tHfuf;uH3@SH H HtHHHtH [@SH ̹.'̹"&@SH M*HH*H!H)H)Hr'HH [E'H;s-H\$WH HHHHtHH;rH\$0H _H\$WH 3HHH;suH HtHH;rH\$0H _H\$WH H=rOtH gOj/tVO.HH ~uZH ?.-HH=HHtHH;rH= OtH O.tE33APN3H\$0H _H\$Ht$DD$WATAUAVAWH@ED%=""D%!H hNHHD$0HH BNHHD$ LHt$(LHD$8HH|$ H;rpI(H9uH;r_HH,(HH MzHH MjL;uL;tLH\$(HH\$0LHD$8HHD$ HH `H|H mEtp#Eu& W#AAH\$pHt$xH@A_A^A]A\_E33fE3APX33DBK̺3D9@SH /p-E3APHt7SH LH .3Pu H? H [@SH d$@LD$@0HHu9D$@tT Ht J L$@HH [@SH HAHu'HCHHHHKH;tup;HHH9CtHC |u y2HCHCuCHH [HHXHhHpHx ATH@E3IHHAMHuYHtHL$ IL\$ E9cu?H+>fAr fZwf fAr fZwf HHt@ft;f;t4HT$ :HT$ :HHHt ftf;t+D8d$8t HL$0H\$PHl$XHt$`H|$hH@A\H(3LL9z,uwMtzHuYH(HtL+C fAr fZwf AfAr fZwf IIt ftf;t+ȋH(E3UH(H\$Ht$WH HHw|HHEH +Hu ,E*[H |+L3AHHu,9+tH#t f [ H_#F 3H\$0Ht$8H _Mt 8tHIuIHH#@UAUAVH@Hl$0H]0Hu8H}@LeHHH3HEE3MHHHuYo<H;rfD3IEHtTALúDt$(Lt$ .<Lcu?z*nfAr fZwf fHfD93u3II;sfD3/"]~g3HBHHrXKL$Hw1HAH;w HH(<H+H|$0Ht)HHtHIHu /IEALËHDd$(H|$ (;tLHHv e*HO9uHMH3OH]0Hu8H}@LeHHeA^A]]H\$WH@HHHL$ ILD$ HH|$8t HL$0H\$PH@_E3LMK H8IC(ICIc[H8H\$ UVWATAUAVAWH LLHL$hHMMHHT$pMtMtMu'h3H\$xH A_A^A]A\_^]H$Ht3HIL;v)HtL3IH<HHt3HIL;wIIG HtDO$ADL$`HXG At^LcwEtP I;DBEL;LHHL$hlFD)wALt$hH+HHL$pDL$`LH+Lt$hEI;rhEt 3I;v AEA HDID+ DI;EGAH;woHEELt$hI֋DtkH+vH <tXHL$pHt'ADO$HIHDL$`Lt$hHL$pHHt L3I:"5O H+3HI(OIHHXHpHxL` AUH0IMHLMt`Mt[H\$`Hu"Ht L3[:&/HuH\$ LMHINHHH3H\$@Ht$HH|$PLd$XH0A]H8LL$ MLH@H8fL$SH f;u3Ef;sHxH&LL$@HT$0D3ɅtL$@#H [H(E3MLMu-3HtHu5IHu-IfE9tEfD;tHDfEufD9t HfuH+IfE9tEfD;tHDfEufD9u HfD9ufDHH;I IDH(HHXHhHpHx ATAUAVH HHuZZB{Lc}c3ADBFxҋSu +s;L/+ktDNj֋!B@ōEH\$0Hl$8Ht$@H _H\$Ht$HL$WH A؋H3Hu-t tuH DËHH H\$8Ht$@H _H\$Ht$WH =<HHHu3H9tuGTH(Sy 2RuWHHtKHtFHQHH Ht3QH;vH fH\$ E3E333 H\$@Ht$HH|$PLd$XH0A]@SH E3LHtHt MufD`H [I+AfBIftHuHufE"3H\$WH HHur FAt:LHˋTH:KSyHK(Ht lHc(cH\$0H _H\$HL$WH Hك3Hu w &A@ta.H5HH\$8H _H\$WHHL$0AMZH=fD9 t31Hc:Hǁ8PEu f9Hu3ۃv 9É$|u"= u&u"= u<:y H8dYH] `Xy MUy )tTD$lT$pA DEL3HDD$ u':$u/H$HĠ_H(YH(RHL$HH E ߸H0 HD$XE3HT$`HL$X HD$PH|$PtAHD$8HD$HHD$0HD$@HD$(H HD$ LL$PLD$XHT$`3軨"H$H H$HHI H H H$H    HHD$hHHD$pT BY3ʷH ;=. u Y HHĈLI[IkIs ISWATAUAVAWH@MyM1AIy8M+MLHfIcqHIKMCH;7HH\ CL;CL;{;tHL$0IIЅ~t}csmu(H=5tH 5tH5KAII ID$@SLcMHD$(ID$(ILIHD$  H;793MA 3E3M+Ǩ t;39v5HOAL;rL;v H;sHLul DIcqHH;7sUHHHߋCL;r9CL;s1EtD;+t1t;kt(;uHT$xFAD$HDCMAH;7rL\$@I[0Ik@IsHIA_A^A]A\_HU@SH 4u;LHcȺe4HWH9$Hu$PHˉH4+WH$Huv3HHH0HHt H#E3HEHIL!IHIHkXLIt ItMuIH0Iu3H [H(G=LtXH v#H(@SH HH <H;r>HH;w2HH*H+HHHH?Ld kH [HK0H [H%I@SH Hڃ}2 kH [HJ0H [H%HH;r5H1H;w)qH+H*HHHH?LH0H%г} rHJ0H%H\$Hl$Ht$ WATAUAVAWH05E3IE~ EHLEEEfD9:u HfD9;tAat0rt#wt-3C AA  HAfȃSytjA+ tGt>t' tuEEЃ@@@E|@uvpEubEA cTtOt K 4@t ""3t{HCHKC{C u/3H0H;t%H`H;u }duHdC+HS+kHBHC$ȉC~Dŋ cW K?t#tHHH,HHkXH H DA t3ҋDBuZHHKD$0HT$0Db;D$0H\$8Hl$@Ht$HH _ffHIrSIII@rHكtL+HHMI?Iu9MIItfffHHIuMt HIu@fffffIs0HHQHQH@HQHQIHQHQHQufDHHQHQH@HQHQIHQHQHQu $TH\$Ht$WH HHuUA@t AA uaHAHH# DG$HWGGu_Ht6HtDl18AEAADm`tu ШtL`ШtA;AB؋(LHuw MH3DBUL ܕLK@^L\0@K@^IA D0HL0 A:AK@^AAIVE`DD0 EtbK@^L09A:tQtM K@^AHE`DD09Au.K@^L0:A:tt K@^HE`ADD0:K@^LMDH 1H|$ HcU܅|H;qLєDK@^D05At A> uL0d0IcIMIHEL;A AE<A:t HIHEHL;sIE8 uI~LK@^LMHUXH 1AIH|$ ;u uf9}taLK@^D0Ht}X tD#K@^EXD1 ;I;u }X u +MHAHS}X LtLD#HL;m K@^D0@uL0 AEHDE+}`EHuHI;rHB8`At B`Auv*u;uHcH]K@^D0Ht;HÈL0 |K@^HÈD19uK@^HÈD1:HcH+MHAHcRELmPA+DMƉD$(3ҹLl$ ݂Du;Ë]H=J@^@E|0HҺ t fA9uL0d0IcIMIHE`L;eA AEf.fA;tfHI HE`HL;sIEf9u ILK@^LMHUH 1AIH|$ u9}LTK@^D0Ht; f9Ut@fD#EK@^D1 EK@^D19K@^T0:LI;u f9Uuf7MHHDBP L֐f9Ut LfD#HL;m`"K@^D0@uL0 AEfHDE+]LmPM;tI&AD܋Yu Amu뵋,38 HXA_A^A]A\_^[]H\$Ht$L$WATAUAVAWH ALHcu^3ۉ5 3ۅ;=LLIL=AMkXKBL tiAuW_KBD tDIՋ C`w H\$XHt$`H A_A^A]A\_H(HuBAH(H\$Ht$WH IIHMu3VHuILt$PPE3҅D$@EZ EtfD$lA@A A0T$LDt MI9A rIEtLt$PA@tMFEFA@tMcFEFLt$PA@t MyIADu A rEy A;ODt$pIHH#ʉL$LυMt 3IIcHLB09~AƈHLt$PH|$H+HDDt D8+HAD+ufD;u?A;AO|$HA;~']HcYHEHhH؋D|$HDIH ;ILt$PAHcHEisHMHL$0MDωL$(HMLHD|$ AtEuH (sHUHйgfD;uuH ѹsHUHп-@8;uAHH$E3D-Dl$DAt+fD$\At fD$\x|$L |$L Dt$XHt$xE+D+A uLL$@LAHELL$@HL$\LƋHD$ AtAuLL$@0LAhEufE~aHAHELMHL$`Lc HME3Lc~%HT$xL$`LD$@IE3҅Ht$x-Ht$xT$@#HELL$@LAHHD$ 5E3ҋT$@x_AtYLL$@ LALt$PE3A T$@HEHSH|$HE3LUT$@A 5Lt$PA AŃItPhtCl;tXwA fA9XuIA AE AfA86ufAx4uIAfA83ufAx2uIAdfA9ifA9{ofA9luHfA9_A fA9RfA9HDT$hHT$xLD$@AD$D$E3fA*u(A>IXLt$P|$Ht$H Aō|HЉ|$HADT$HfA*u,AIXLt$PD$XA؉D$XD$X AōDHЉD$XAA;t>#t2+;t#-;t0;XuWAQAFA@A9A3DUDT$lDT$XDT$LEt$HDT$D|$HDL$hLEXE(fEEtAu=D8Ut HMHH3%H$0HA_A^A]A\_^]E3D8]t HEH\$Ht$WH A3H$<u?At69+y~-LHSDNjF;uCyCK HKcHt$8H H\$0H _@SH HHu H [4gt C@tHP3H [H\$Ht$H|$ATAUAWH0D33N3A\$ ;LcHJ<thJBt^oHoJ At3Au6A;t#Ɖt$$EuAtA;AD|$(H+J蘹pOADH\$PHt$XH|$`H0A_A]A\ù H\$Hl$Ht$WHP3IHHMu3HuۿhHtIwHL$0IsL\$0AKuGH+fAr fZwf  fAr fZwf HHt ftf;t+GDLǺt$(H\$ Ou'5@8l$HTHD$@C@8l$Ht HL$@H\$`Hl$hHt$pHP_H(E3LD9 uxHu˾XH(HtIwL+AfAr fZwf  fAr fZwf HIt ftf;t+H(H(DHHfuH+HHH\$Hl$WH0Hd$@HHHtud$(Hd$ DL33iHctxHϺ HD$@HtaLD33ɉ|$(HD$ it:HL$@3NxHHHu3H\$HHl$PH0_HL$@Ht HL$@軜HHXHhHpHx ATH0HE3AHuf=tHH\CfuGHc HH~HtHfD9#tSHf;=pt.HcH HHtxLHHŭuQHHcHCfD9#uHQHݛL%BL'3H\$@Hl$HHt$PH|$XH0A\E3E333Ld$ HH Ļ苛L%H\$Hl$Ht$WH i3HHtLf9tHf9uHf9u+ǃHcHE HHtLHH'HHiHH\$0Hl$8Ht$@H _H\$WH Hc9u ǃ*9u ǃ9ǺD‰AЉ LIIAH3H\$0Hl$8Ht$@H _H\$WH 39=u HHtvHHD؀; w ;t3t);"u 3 LtHH< w HÊuHH\$0H _H\$Hl$Ht$WH0=UuH϶3Hu<=tHH\uGHcHHMHtH;tPH;=pt.HcHHHtsLHHr#uKHHcH؀;uH,HH%H'n3H\$@Hl$HHt$PH0_Hd$ E3E333.H qH%HHXHhHpHx ATAUAVH Ll$`MIAeLHAHtLI3;"u3@"HË9AEHtH3HËIJtAEHtHH@tu@ t@ uHt GH3;; t; uH;MtI<$IA3H;\t;"u6utHC8"uH 33҅Ht\HAEutOu< tG< tCt7lIHttHÈHAEH tHAEAEHYHtHAEMtI$$AH\$@Hl$HHt$PH|$XH A^A]A\H\$Ht$ WH0=ZuH=LA3H>aH H=Ht;uHHD$HLL$@E33HHD$ Hct$@HH;s\HcL$HHsQHH;rHHHHt8LHD$HLL$@HHHD$ gD\$@H=ӲA3DòH\$PHt$XH0_HHXHhHpHx ATH@aE3HHHfD9 tHfD9#uHfD9#uLd$8H+Ld$0HL3DK3Dd$(Ld$ `HctQH+HHtALd$8Ld$0DKL33ɉl$(HD$ `u HߑIHg`H HY`3H\$PHl$XHt$`H|$hH@A\H\$WH HHd$0H2-+H;t HHԝvHL$07`H\$0$`DI3p_DI3`HL$8DI3_L\$8L3HL#H3-+L;LDL^IL\H\$@H _̃%YHHXHhHpHx ATH =3HAH蔓HHu(t$|_=DD;AAGA;uHl$8Ht$@H|$HHH\$0H A\HHXHhHpHx ATH 3HHAE3HHHHu*9v"^DD;AAGA;uHl$8Ht$@H|$HHH\$0H A\HHXHhHpHx ATH 3HHAHH,EHHu/Ht*9v"o^DD;qAAGA;uHl$8Ht$@H|$HHH\$0H A\H\$Hl$Ht$WATAUH 3IHALLHIsEHHu/Ht*9v"]DD;AAGA;uHl$HHt$PHH\$@H A]A\_H\$Ht$WH03O苲_\$ ;]}eHcH1H<tPH At;tlj|$$|1HH H0V\H H ZLI$돹 H\$@Ht$HH0_H\$LD$HL$UVWATAUAVAWHH3AAHEDg}@}XH}Et}ADeDHMG)u@u9EtE AA#At[tAt8`8 6­H$HĀA_A^A]A\_^]D@tuA@EM`DuAt-t#tt@uE;A AA׋ƹU#AtFA;t9=t*=t=t,=t(=t;t$EA AEṀMAt"EhADȉM@@tAUĉMDu sA ȉM@ t @tM9u!8 ҬǬHE@DEHMPEH|$0D$(LMADd$ ZHEHA#;uC@t9EDEHMPAH|$0D$(LMADd$ Du[ZHEHu:Hc L5HHHkXIƀd2XC8HYuKHc L5HHHkXIƀdWȋHMXu觫 A;uA@ uAHU 5Hc L5FHAHE IHkXD|Hc HHHkXIƀd8A$HEEAtu EŃGEȃu&8tM G HUAf}Muf}uHcUȋ @tċ E33tAE"@@u E#u  #;tC=t)=@t"=t(=@t!=t=@uDEX#;u DmX@}XA@D}}Aǹ#=@ =tp;{ErE;vAv-A]MXDFE E3V%Ht̋ E33E%H HUAwA;tua}u D@DEXE=u >=u E3APDmX E332=EtxE;A E3$H E33l$Hu>EA IcEHTE+-DE;D}AHc DeXHAHHkXIƀd8Dd8HcHƒHHkXI Ƌƀd8D8@8}u @tHc HHHkXIƀL A#;AHM.TEDEHMPH|$0D$(ALMD$ AUHu5SݧLcIAHMkXIBd n2rHcHʃHHkXI H -E3E333H|$ 5H\$WH@d$03H|$pHu触3Htك|$xtAtDL$(DD$ DLHHL$0؉D$4|$0t,t!HcHHHpHkXH€dE3rjH\$PH@_H8ADL$`ELD$(HL$ DAIH8Mu3ftf;u HHIu +H(軩Ht 輩EtA@AH轄ffLH+Irat6t  IȈHtf IfHt  IHMIuQMItH HHIuIMuI@ HIuIffffffffffffI sBH LT H HALQHD LT IHALQuIqffffHr  D @HuH@L LT L LQLL LT LILQLL LT (H@LILQLL LT LILQuIIq $fffffffffffIIrat6t HɊ IȈtHf Ift H IMIuPMItHH IHuIMuIHɊ IȈuIffffffffffffI sBHD LT H HALQHD L IHALuIsfffffHw H D @uH@LL LT LILQLL LT LILQLL LT H@LILQLL L LILuIIq $H(HunHH(LH 83H(H%kP̹RffHHHtfHt_uI~IHMHLHI3I#tHPtQtGHt9t/Ht!tt uHDHDHDHDHDHDHDHD@SUVWATAUAVHPHH3HD$HALL蔧3H9sHH SieNHHH*iHAMHzH'NHhHHMHNHhHHLHMHhHHLHMLHHt"H9hHLHMHHHLH;tbL;t]HLH HLLHt#~4AMLHIŃ?u;*uLHձ?у;uD#H\$@Hl$HHt$PH A]A\_H\$UVWATAUAVAWH$0HHzH3H3HHL$pHT$hHMIMD$dDD$XD$DD$LD$\D$Tn贎E3HEHu,裎0E3D8]t HEAC@L IHHXA;t(t#LcL IIAHMkXM@^ LL IA@8u)A;ttHcHƒHHkXI@^B8t,yE3D8]t HEA$E3HT$hHtD"ADT$@DT$HELUEH]AHHT$hAD$Hl$$OxHEHHHMHȃtH;\$ |@HcOHOx&Hf1HcGHGxHf0H HHL$0H3RH\$pHl$xH@A\_^H uc3HH9 0HHXHpHxL` UHHPE3IHHHtMtD8"u%HtfD!3H\$`Ht$hH|$pLd$xHP]HMI-WL]E9cu#HtfD8et HEHUHMD A~0A;|+IAHLǺ D$(H\$ "HMuHc H;r&D8gt D8e6HM&v*D8et HEAAHAQLljD$(HEH\$ Hi" E3@SH@HL$ VHD$ DH@BY%|$8t HL$0H@[@SH@HL$ 3UHD$ DH@BY%|$8t HL$0H@[H\$Hl$Ht$WH Hڅxg; Os_HcH-_HHHkXHDH<u;=`u%tt u !HDH35u Ju H\$0Hl$8Ht$@H _H\$Hl$WH xq; siHcH-HHHkXHDDtEH<t>=O`u'tt u 3!HDH 3t t H\$0Hl$8H _H(urt Jt Mx1; s)HcH HƒHHkXHDtH(t t sHH(HHXHpHxL` AVH HcLIL5HkXK4|3 u4O v|3 uHL3 #D3 utK HLt H\$0Ht$8H|$@Ld$HH A^HcH HƒHHkXHHLH%4 H\$Ht$H|$ATAUAVH@HDE3^ uuu3H|$$@LcJHH\$0JH H;C{ u< u{ u!HKu DhDl$(C btEudHKSCt HKKHHEu?CH3LK+H.袋.HLIIH?LDDd$ HXHHD;XJHD$0HtsHcLtIЃM I H H;s@H0@ ` HXHD$0|$ HcHHHkXID[DD|$ AsAH\$`Ht$hH|$pH@A^A]A\H\$L$VWATH Hcup ;=s}HHHL%HkXILtWIDt+;Hu 3ۅtprp Yp oH\$PH A\_^HHXHhHpHx ATH0IcIDE~HIHHcD$hH|$`~ HHt tD$(DLƋAH|$ B+ظHHDH\$@Hl$HHt$PH|$XH0A\H\$T$UVWATAUAVAWH03LHuionL!M=IJLHL;f9hH5nDAH;5nuo3HHuZHH9uHcHHHuH MHEHtH+H1 HHH/Hu3H/|$xH5nHHmtIHtDKH,nyy6tpenH$H0A_A^A]A\_^]Et3Hu#H膼HmHtH(H5mHu aHzmHtH(H5kmHHtHM+HILl$pMcHtE=MHI׮3ɅuHfB94hfB9 hHHHuH5mH+HE3L9mHcHLLEtfL9ltHLHHHDHL9luHcHH;H lAHt{rH5{lH+HsLdM.\EyߍG;tLcHL;^H蔼HHHcL$LlM.H lD9l$xtuI.H JHHtUIMHH[]uQHD$pHHGfD*HEIEu#l*HYKEt ILKM.E3E333Ll$ jI%KM.H\$Ht$WH@HHL$ AA|KHD$(DA|utHD$ H@BY#3t|$8t HL$0H\$PHt$XH@_̋AE33rH\$Ht$WH HHHu HBMjHu^J\HwCH xHHDL3LYHHuo9xtPHpt+HvHpj 3H\$0Ht$8H _jHMjjH4jHH\$Ht$WH 3HHHt3HGHI;sEj 3=IHtHHHHHtH;sH+H 3L1HH\$0Ht$8H _HHXHhHpHx ATAUAWH H33DGiLHtPDG3ҋSHt=HH+HAWHE/HHu1ji _iH\$@Hl$HHt$PH|$XH A_A]A\úDDI;HEMNjCt HH+H~%i8u h HAԋ9LH3Uy]E3HՋnHTQHHHHHu%h hHHE3IՋH3H\$LcHMAIMkXJ BD8F\ADA@tXtHt(t uHBLJBd8BL80BLJBd8BL8BdBLJ Bd8EuA%@H\$H(Huvgg v3H(H\$fDL$ UVWHH`IHHHuMtHt!3Ht IvgfdHU@HMFL]A{E8f;vJHtHt L3Hf*f}t HMH$H`_^]Ht0Hu)uf_"f@8}eHMUHt}HEe(AKHE(HD$8Hd$0LE8A3҉|$(Ht$ t}(3HtzHtHt L3He"Be}HEH8Hd$ -H8fL$H8H dHu IH dHu%Hd$ LL$HHT$@AatD$@H8H\$Hl$VWATH DHH谑SHc‚ud K 8@t d"3t{HCHSC{C u/[H0H;t[H`H;u -uHC+HS+kHBHC$C~DŋW S'L'Z'f'p'|''''''''(&(<(V(f(|((((Z)%$$$$$t$$$;@N@\@@@<@9aMppCorExitProcessmscoree.dll0D@D@ccsUTF-8UTF-16LEUNICODEruntime error TLOSS error SING error DOMAIN error R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6032 - not enough space for locale information R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6030 - CRT not initialized R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data R6010 - abort() has been called R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point support not loaded @ @ @ p@@@`@@@@@@`@@@@ @!@x@y`@z@@8@@Microsoft Visual C++ Runtime Library ...<program name unknown>Runtime Error! Program: HH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunHH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSun  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~  GetProcessWindowStationGetUserObjectInformationWGetLastActivePopupGetActiveWindowMessageBoxWUSER32.DLL(null)(null)EEE50P( 8PX700WP `h````xpxxxxEEE00P('8PW700PP (`h`hhhxppwppCONOUT$user32.dllMessageBoxTimeoutAMessageBoxTimeoutWFatal Error in LauncherFatal Error in LauncherrbFailed to open executableUnable to find an appended archive.Unable to read from file#!PATHEXT;PyLauncherSTATICJob creation failedJob information querying failedJob information setting failedstdin duplication failedstdout duplication failedstderr duplication failedUnable to create process using '%ls': %lscontrol handler setting failedFailed to get exit code of process.exe/usr/bin/envExpected to find a command ending in '.exe' in shebang line: %lsExpected to find whitespace after '/usr/bin/env': %lsUnable to find executable in environment: %lsExpected terminating double-quote for executable in shebang line: %ls<launcher_dir>\Terminating quote without starting quote for executable in shebang line: %lsFailed to find shebangExpected to find terminator in shebang lineExpected to decode shebang line using UTF-8Expected to find '#' at start of shebang lineExpected to find '!' following '#' in shebang lineExpected to find executable in shebang lineExpected to find arguments (even if empty) in shebang lineExpected to be able to allocate command line memory"%ls" %ls "%ls" %lsRSDS0I!4=!6 p Pc  td4rP7 &t&d&4&PcBpf$@"$ "%x"""""""" #"#:#V#h#~####### $$.$F$X$H)8)*))((((("%6%F%R%^%p%%%%%%%&&&4&L&d&&&&&&&&&''('>'L'Z'f'p'|''''''''(&(<(V(f(|((((Z)%$$$$$t$$$ExitProcessGetCommandLineW+SearchPathW~SetInformationJobObjecthFreeLibraryCreateProcessWGetCurrentProcess}SetHandleInformationWaitForSingleObject WaitForSingleObjectExAssignProcessToJobObjectdFormatMessageWGetExitCodeProcessGetModuleFileNameWQueryInformationJobObjectiMultiByteToWideCharjGetStartupInfoWCreateJobObjectAkGetStdHandleGetLastErrorLGetProcAddress>LoadLibraryA;SetConsoleCtrlHandlerDuplicateHandleRCloseHandleKERNEL32.dllnCreateWindowExW7PeekMessageW.WaitForInputIdle:PostMessageW_GetMessageWDestroyWindowUSER32.dllPathRemoveFileSpecWEStrStrIW:PathCombineWSHLWAPI.dllGetModuleHandleWDecodePointerHeapFreeHeapAllocpGetStringTypeWGetCommandLineATerminateProcessUnhandledExceptionFilterSetUnhandledExceptionFilterIsDebuggerPresent&RtlVirtualUnwindRtlLookupFunctionEntryRtlCaptureContext%RtlUnwindExEnterCriticalSection;LeaveCriticalSectionInitializeCriticalSectionAndSpinCountEncodePointerDeleteCriticalSectionALoadLibraryWZFlsGetValue[FlsSetValueYFlsFreeSetLastErrorGetCurrentThreadIdXFlsAlloc4WriteFileHeapSetInformationGetVersionHeapCreatexGetCPInfonGetACP>GetOEMCP IsValidCodePage/LCMapStringWReadFile|SetHandleCountGetFileTypetSetFilePointergFreeEnvironmentStringsWGetEnvironmentStringsWGetModuleFileNameA WideCharToMultiByteQueryPerformanceCounterGetTickCountGetCurrentProcessIdGetSystemTimeAsFileTimeSleepCreateFileWHeapSizeGetConsoleCPGetConsoleModeSetStdHandle]FlushFileBuffersdCompareStringWeSetEnvironmentVariableWHeapReAllocaSetEndOfFileQGetProcessHeap3WriteConsoleW2-+] f``@``@        ! 5A CPR S WY l m pr   )    0@0@0@0@0@0@0@0@0@0@ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ7@`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~C@@@@@@@@@@p@`@T@H@D@@@<@8@4@0@,@(@$@ @@@@@@@4@@@@@@@@@@@p@`@ X@P@H@@@8@0@(@@@@@@@@@@@@x@p@h@`@X@P@H@@@0@@@@x@@@@@@@p@d@\@H@ @@$=@$=@$=@$=@$=@B@@@@P @0=@?@D@@@B@ ..B@B@S@S@S@S@S@S@S@S@S@B@S@S@S@S@S@S@S@. @ @KlLAD-\0P``j} - 0 F `  ( !!!!S#4## ###5$ 8$$ $%d%&&B'L`'K)|L))P)))++,,,L,*-,---////11e24h22L2:3 <33T3s4Lt4v5|x55 5^6`666a8d8v8x899;;< <<<7= 8=i= =@8@BTBcC|dCCCDD&DLpDDDDDD E4E@EXE`EaEpEqEtEEEF F~GGGGGGH8HjJJJ JJJKDK(L(LLL LLMxMN NGN HNROTOkOlOOOOOPPPQmSpSSS T TTT4U 4U$W4$WW\WpXpXZZ\\\ ^_L__ _i`l`AaDa*b,btctccLcc cddud8dd(ef0fgHghLhp\pqt qFqHqqLqtt:uLM[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq_______CCBABADL*(%$""&GABJIIDDJC??AD_-(''%$GG#_DIJIIJIIIDIJDD_+)(''%GG _JMCEJ?ABAECA?BA_,+)('%%"!_IM@AJACDCIDI____.,++>________JMJJJJJJJJJF_..,+)('%$"! #GIMCEJJJI?J__...,+(('%$"! &_JM?AJJJJCJ__...,+)(''%$" _IMJJJJJJJJ_K=...,++(''%$! _JMCDJJJJAJ_K_______L*%$"!_I_?AMNJJEJ_ L'%$"_I_MMMMMMJJ_ _('%%_I_CEMIJJMEM _(''*_I_?BMDJEMDMF _)(-LI_MMMCMMMMM_________< ____I_CEM1;MACDMEJM__I_?A_D1@IJJMJMM_FF_I__6_@/EMMMNMM_FF_I_C80EJDMJCJFF?:AA20?_M_MIEM______MIC4BC/ N______MMMMJIDAI_9/ HJJMMJMMMJ??BAI_A7503 IJMMCBCBA44CCI___BAO;6___C_MJIDIDMI_CI___O; @__C_C?J?AJI_?A_DJJI@ O_CM?;I?JI_________H9MAIJJIJI_CD_____JJI73C;IJIJI_?AMDJJDIMJIE5:JIJI__________MMIA:IJJJJJJJJJJJJJJJJMJ???( 444MMMRRRYYY~eGuuu}}}x>iErCE~7?HVbx/!P7pLcyϏ1Qq/Pp",6@J[1qQq/Pp  =1[Qyq/"P0p=LYgx1Qq&/@PZpt1Qq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq!%///* !*/"(%%'%/) /!#''////+/+"*(/ / !%(/ ( (*/ (///) */   )*  /"///// /+/// # + !%//  +"*+'#+//+'!%*++$++!+! !!!<(0`  !!$& &"   WܱNj+<<:5pi$!!!4888&SNJFB=950,(%%%5ǎVRNIEѹ|Jq?o@ZUQMID@<73/+&"-Ɍ444"ք̴wq?]YUPLHC?;72.*%!"""4888&dya\XTPKGC>:61-)% OÑ%%%5ʎA{;ys`\WSOJFB>951,($(9|:z;xq?o@mAkBiCgCdDuZ;73.*Ǒ%%%5̎È>89}:{;yq?o@mAjBhCfD~dEuZ?:625Оa789}:{;yr>p?n@lAjBhCfD}dEB>:5^ό555"܄ѳ„7789}:{;xr?p@n@lAjBgCeDFA=9"""4;;;&ŌC89~9|:z;xr?p@mAkAiBgCIELɑQQQJnnn~~~Įq?o@mAkBiCHHH"""vvv9~:{;yq?o@mAkB:::'''___sssttt8Ϧuǣvyp?n@lA888T---6fffnddd%%%"""OOOSSSċDҧuʤv{;yr?p?xM<<r?̷999VVV###)))444ѳ͝b@~9|:z;}Cg˶Ӎ󑑑ZZZlll;;;!!!""")))___&&&2:::ppp{{{___WWWWWW:::!!!"""***www"""4888&,̑999ԖJJJ|||lll:::"""BBBXXX|||$$$6,uuuKKKCCC@@@...www* Ҍ666"KKKaaaLLLWWW@$"""4;;;&nnnfff!!!$$$999444]ttt|ȇɑ&&&5ЎvvvmmmVVV{{{OOOڥaaaCCCpppό555"ބ|||MMMfff"""4;;;&\\\Ǒ%%%5Ύݧܦ͌555"ۄۥ"""4:::&ڤÑ%%%5ˎܤׇ ww?ww??ww?ww?ww?ww?ww?ww?ww?ww?ww?ww?wwwwwwwwwwwwwwwwwwwwwwwwwwww?ww?ww?ww?ww?ww?ww?ww?ww?ww?ww?wwwwwwwwwwwwwwww?wwwwwwww( @ !!!0\\\JeeeQ666D555A0$ vH<602\7qڴvvvj&&&D1"gLF@;5?кVQKE?9(aV[UPJD>82-uuun{{{j`ZTOVo@lAb_YSMGB<60+%<aVmt>q?n@bb^XRLFA;5/)$Ywwwn}}}j~Cv=s>p?bba]WQKE@:4.(+{;xbba[VPJD?93-'aV~:{;xr?o@lAiBfD}dE|cE|cEiB<61?9}:z;w=t>q?n@kAiCfD}cE|cE}dFGA;=aVңi89|:yq?n@kBhCeD|cE|cELF@mzzznjʓP8~9{;yp?mAjBgCeD|cEPJ\¯mAjBgC~dEaV}:z;xq?n@lAiCJJJőPyq?n@~YVVV???wwwiiiΡkA|;y>>3@@@y~~~obbb000kkk@@@---U<<<&&&[[[6uuusssWWWIII$$$&&&qqqlllg|||s4bbbhhhƑUUU000QQQ}}}---{bbb(iiiLLLBBBaVggg+++NNN|||nj]]]tttkkkrrrwwwӦaVӦzzznjӦˉ ?????(  C﫫oIਨS=?_QF4aZмoEcaXMB70~Iq?c`VK@58z;u=qv>3Eyn@iB~dE}dFGHYYYuuuġ=xmAhC}dE}eGS444|||gC}cEMMM~>q?kAiGRRR¢Gu=xKʺ~AAAAAAAAAAAAAAAA ( h00 %   h PAPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADD (08PXȣУ(8HXhxȭح(80 0ȧЧا 08@HPX`hpxȭЭح (08@HPX`hpxȮЮخ (08@HPX`hpxȯЯد@PXxؠ08@HPX`hآ (8@HPX`hpPKx"T>__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib/wheel.py# -*- coding: utf-8 -*- # # Copyright (C) 2013-2020 Vinay Sajip. # Licensed to the Python Software Foundation under a contributor agreement. # See LICENSE.txt and CONTRIBUTORS.txt. # from __future__ import unicode_literals import base64 import codecs import datetime from email import message_from_file import hashlib import imp import json import logging import os import posixpath import re import shutil import sys import tempfile import zipfile from . import __version__, DistlibException from .compat import sysconfig, ZipFile, fsdecode, text_type, filter from .database import InstalledDistribution from .metadata import (Metadata, METADATA_FILENAME, WHEEL_METADATA_FILENAME, LEGACY_METADATA_FILENAME) from .util import (FileOperator, convert_path, CSVReader, CSVWriter, Cache, cached_property, get_cache_base, read_exports, tempdir, get_platform) from .version import NormalizedVersion, UnsupportedVersionError logger = logging.getLogger(__name__) cache = None # created when needed if hasattr(sys, 'pypy_version_info'): # pragma: no cover IMP_PREFIX = 'pp' elif sys.platform.startswith('java'): # pragma: no cover IMP_PREFIX = 'jy' elif sys.platform == 'cli': # pragma: no cover IMP_PREFIX = 'ip' else: IMP_PREFIX = 'cp' VER_SUFFIX = sysconfig.get_config_var('py_version_nodot') if not VER_SUFFIX: # pragma: no cover VER_SUFFIX = '%s%s' % sys.version_info[:2] PYVER = 'py' + VER_SUFFIX IMPVER = IMP_PREFIX + VER_SUFFIX ARCH = get_platform().replace('-', '_').replace('.', '_') ABI = sysconfig.get_config_var('SOABI') if ABI and ABI.startswith('cpython-'): ABI = ABI.replace('cpython-', 'cp').split('-')[0] else: def _derive_abi(): parts = ['cp', VER_SUFFIX] if sysconfig.get_config_var('Py_DEBUG'): parts.append('d') if sysconfig.get_config_var('WITH_PYMALLOC'): parts.append('m') if sysconfig.get_config_var('Py_UNICODE_SIZE') == 4: parts.append('u') return ''.join(parts) ABI = _derive_abi() del _derive_abi FILENAME_RE = re.compile(r''' (?P[^-]+) -(?P\d+[^-]*) (-(?P\d+[^-]*))? -(?P\w+\d+(\.\w+\d+)*) -(?P\w+) -(?P\w+(\.\w+)*) \.whl$ ''', re.IGNORECASE | re.VERBOSE) NAME_VERSION_RE = re.compile(r''' (?P[^-]+) -(?P\d+[^-]*) (-(?P\d+[^-]*))?$ ''', re.IGNORECASE | re.VERBOSE) SHEBANG_RE = re.compile(br'\s*#![^\r\n]*') SHEBANG_DETAIL_RE = re.compile(br'^(\s*#!("[^"]+"|\S+))\s+(.*)$') SHEBANG_PYTHON = b'#!python' SHEBANG_PYTHONW = b'#!pythonw' if os.sep == '/': to_posix = lambda o: o else: to_posix = lambda o: o.replace(os.sep, '/') class Mounter(object): def __init__(self): self.impure_wheels = {} self.libs = {} def add(self, pathname, extensions): self.impure_wheels[pathname] = extensions self.libs.update(extensions) def remove(self, pathname): extensions = self.impure_wheels.pop(pathname) for k, v in extensions: if k in self.libs: del self.libs[k] def find_module(self, fullname, path=None): if fullname in self.libs: result = self else: result = None return result def load_module(self, fullname): if fullname in sys.modules: result = sys.modules[fullname] else: if fullname not in self.libs: raise ImportError('unable to find extension for %s' % fullname) result = imp.load_dynamic(fullname, self.libs[fullname]) result.__loader__ = self parts = fullname.rsplit('.', 1) if len(parts) > 1: result.__package__ = parts[0] return result _hook = Mounter() class Wheel(object): """ Class to build and install from Wheel files (PEP 427). """ wheel_version = (1, 1) hash_kind = 'sha256' def __init__(self, filename=None, sign=False, verify=False): """ Initialise an instance using a (valid) filename. """ self.sign = sign self.should_verify = verify self.buildver = '' self.pyver = [PYVER] self.abi = ['none'] self.arch = ['any'] self.dirname = os.getcwd() if filename is None: self.name = 'dummy' self.version = '0.1' self._filename = self.filename else: m = NAME_VERSION_RE.match(filename) if m: info = m.groupdict('') self.name = info['nm'] # Reinstate the local version separator self.version = info['vn'].replace('_', '-') self.buildver = info['bn'] self._filename = self.filename else: dirname, filename = os.path.split(filename) m = FILENAME_RE.match(filename) if not m: raise DistlibException('Invalid name or ' 'filename: %r' % filename) if dirname: self.dirname = os.path.abspath(dirname) self._filename = filename info = m.groupdict('') self.name = info['nm'] self.version = info['vn'] self.buildver = info['bn'] self.pyver = info['py'].split('.') self.abi = info['bi'].split('.') self.arch = info['ar'].split('.') @property def filename(self): """ Build and return a filename from the various components. """ if self.buildver: buildver = '-' + self.buildver else: buildver = '' pyver = '.'.join(self.pyver) abi = '.'.join(self.abi) arch = '.'.join(self.arch) # replace - with _ as a local version separator version = self.version.replace('-', '_') return '%s-%s%s-%s-%s-%s.whl' % (self.name, version, buildver, pyver, abi, arch) @property def exists(self): path = os.path.join(self.dirname, self.filename) return os.path.isfile(path) @property def tags(self): for pyver in self.pyver: for abi in self.abi: for arch in self.arch: yield pyver, abi, arch @cached_property def metadata(self): pathname = os.path.join(self.dirname, self.filename) name_ver = '%s-%s' % (self.name, self.version) info_dir = '%s.dist-info' % name_ver wrapper = codecs.getreader('utf-8') with ZipFile(pathname, 'r') as zf: wheel_metadata = self.get_wheel_metadata(zf) wv = wheel_metadata['Wheel-Version'].split('.', 1) file_version = tuple([int(i) for i in wv]) # if file_version < (1, 1): # fns = [WHEEL_METADATA_FILENAME, METADATA_FILENAME, # LEGACY_METADATA_FILENAME] # else: # fns = [WHEEL_METADATA_FILENAME, METADATA_FILENAME] fns = [WHEEL_METADATA_FILENAME, LEGACY_METADATA_FILENAME] result = None for fn in fns: try: metadata_filename = posixpath.join(info_dir, fn) with zf.open(metadata_filename) as bf: wf = wrapper(bf) result = Metadata(fileobj=wf) if result: break except KeyError: pass if not result: raise ValueError('Invalid wheel, because metadata is ' 'missing: looked in %s' % ', '.join(fns)) return result def get_wheel_metadata(self, zf): name_ver = '%s-%s' % (self.name, self.version) info_dir = '%s.dist-info' % name_ver metadata_filename = posixpath.join(info_dir, 'WHEEL') with zf.open(metadata_filename) as bf: wf = codecs.getreader('utf-8')(bf) message = message_from_file(wf) return dict(message) @cached_property def info(self): pathname = os.path.join(self.dirname, self.filename) with ZipFile(pathname, 'r') as zf: result = self.get_wheel_metadata(zf) return result def process_shebang(self, data): m = SHEBANG_RE.match(data) if m: end = m.end() shebang, data_after_shebang = data[:end], data[end:] # Preserve any arguments after the interpreter if b'pythonw' in shebang.lower(): shebang_python = SHEBANG_PYTHONW else: shebang_python = SHEBANG_PYTHON m = SHEBANG_DETAIL_RE.match(shebang) if m: args = b' ' + m.groups()[-1] else: args = b'' shebang = shebang_python + args data = shebang + data_after_shebang else: cr = data.find(b'\r') lf = data.find(b'\n') if cr < 0 or cr > lf: term = b'\n' else: if data[cr:cr + 2] == b'\r\n': term = b'\r\n' else: term = b'\r' data = SHEBANG_PYTHON + term + data return data def get_hash(self, data, hash_kind=None): if hash_kind is None: hash_kind = self.hash_kind try: hasher = getattr(hashlib, hash_kind) except AttributeError: raise DistlibException('Unsupported hash algorithm: %r' % hash_kind) result = hasher(data).digest() result = base64.urlsafe_b64encode(result).rstrip(b'=').decode('ascii') return hash_kind, result def write_record(self, records, record_path, base): records = list(records) # make a copy, as mutated p = to_posix(os.path.relpath(record_path, base)) records.append((p, '', '')) with CSVWriter(record_path) as writer: for row in records: writer.writerow(row) def write_records(self, info, libdir, archive_paths): records = [] distinfo, info_dir = info hasher = getattr(hashlib, self.hash_kind) for ap, p in archive_paths: with open(p, 'rb') as f: data = f.read() digest = '%s=%s' % self.get_hash(data) size = os.path.getsize(p) records.append((ap, digest, size)) p = os.path.join(distinfo, 'RECORD') self.write_record(records, p, libdir) ap = to_posix(os.path.join(info_dir, 'RECORD')) archive_paths.append((ap, p)) def build_zip(self, pathname, archive_paths): with ZipFile(pathname, 'w', zipfile.ZIP_DEFLATED) as zf: for ap, p in archive_paths: logger.debug('Wrote %s to %s in wheel', p, ap) zf.write(p, ap) def build(self, paths, tags=None, wheel_version=None): """ Build a wheel from files in specified paths, and use any specified tags when determining the name of the wheel. """ if tags is None: tags = {} libkey = list(filter(lambda o: o in paths, ('purelib', 'platlib')))[0] if libkey == 'platlib': is_pure = 'false' default_pyver = [IMPVER] default_abi = [ABI] default_arch = [ARCH] else: is_pure = 'true' default_pyver = [PYVER] default_abi = ['none'] default_arch = ['any'] self.pyver = tags.get('pyver', default_pyver) self.abi = tags.get('abi', default_abi) self.arch = tags.get('arch', default_arch) libdir = paths[libkey] name_ver = '%s-%s' % (self.name, self.version) data_dir = '%s.data' % name_ver info_dir = '%s.dist-info' % name_ver archive_paths = [] # First, stuff which is not in site-packages for key in ('data', 'headers', 'scripts'): if key not in paths: continue path = paths[key] if os.path.isdir(path): for root, dirs, files in os.walk(path): for fn in files: p = fsdecode(os.path.join(root, fn)) rp = os.path.relpath(p, path) ap = to_posix(os.path.join(data_dir, key, rp)) archive_paths.append((ap, p)) if key == 'scripts' and not p.endswith('.exe'): with open(p, 'rb') as f: data = f.read() data = self.process_shebang(data) with open(p, 'wb') as f: f.write(data) # Now, stuff which is in site-packages, other than the # distinfo stuff. path = libdir distinfo = None for root, dirs, files in os.walk(path): if root == path: # At the top level only, save distinfo for later # and skip it for now for i, dn in enumerate(dirs): dn = fsdecode(dn) if dn.endswith('.dist-info'): distinfo = os.path.join(root, dn) del dirs[i] break assert distinfo, '.dist-info directory expected, not found' for fn in files: # comment out next suite to leave .pyc files in if fsdecode(fn).endswith(('.pyc', '.pyo')): continue p = os.path.join(root, fn) rp = to_posix(os.path.relpath(p, path)) archive_paths.append((rp, p)) # Now distinfo. Assumed to be flat, i.e. os.listdir is enough. files = os.listdir(distinfo) for fn in files: if fn not in ('RECORD', 'INSTALLER', 'SHARED', 'WHEEL'): p = fsdecode(os.path.join(distinfo, fn)) ap = to_posix(os.path.join(info_dir, fn)) archive_paths.append((ap, p)) wheel_metadata = [ 'Wheel-Version: %d.%d' % (wheel_version or self.wheel_version), 'Generator: distlib %s' % __version__, 'Root-Is-Purelib: %s' % is_pure, ] for pyver, abi, arch in self.tags: wheel_metadata.append('Tag: %s-%s-%s' % (pyver, abi, arch)) p = os.path.join(distinfo, 'WHEEL') with open(p, 'w') as f: f.write('\n'.join(wheel_metadata)) ap = to_posix(os.path.join(info_dir, 'WHEEL')) archive_paths.append((ap, p)) # sort the entries by archive path. Not needed by any spec, but it # keeps the archive listing and RECORD tidier than they would otherwise # be. Use the number of path segments to keep directory entries together, # and keep the dist-info stuff at the end. def sorter(t): ap = t[0] n = ap.count('/') if '.dist-info' in ap: n += 10000 return (n, ap) archive_paths = sorted(archive_paths, key=sorter) # Now, at last, RECORD. # Paths in here are archive paths - nothing else makes sense. self.write_records((distinfo, info_dir), libdir, archive_paths) # Now, ready to build the zip file pathname = os.path.join(self.dirname, self.filename) self.build_zip(pathname, archive_paths) return pathname def skip_entry(self, arcname): """ Determine whether an archive entry should be skipped when verifying or installing. """ # The signature file won't be in RECORD, # and we don't currently don't do anything with it # We also skip directories, as they won't be in RECORD # either. See: # # https://github.com/pypa/wheel/issues/294 # https://github.com/pypa/wheel/issues/287 # https://github.com/pypa/wheel/pull/289 # return arcname.endswith(('/', '/RECORD.jws')) def install(self, paths, maker, **kwargs): """ Install a wheel to the specified paths. If kwarg ``warner`` is specified, it should be a callable, which will be called with two tuples indicating the wheel version of this software and the wheel version in the file, if there is a discrepancy in the versions. This can be used to issue any warnings to raise any exceptions. If kwarg ``lib_only`` is True, only the purelib/platlib files are installed, and the headers, scripts, data and dist-info metadata are not written. If kwarg ``bytecode_hashed_invalidation`` is True, written bytecode will try to use file-hash based invalidation (PEP-552) on supported interpreter versions (CPython 2.7+). The return value is a :class:`InstalledDistribution` instance unless ``options.lib_only`` is True, in which case the return value is ``None``. """ dry_run = maker.dry_run warner = kwargs.get('warner') lib_only = kwargs.get('lib_only', False) bc_hashed_invalidation = kwargs.get('bytecode_hashed_invalidation', False) pathname = os.path.join(self.dirname, self.filename) name_ver = '%s-%s' % (self.name, self.version) data_dir = '%s.data' % name_ver info_dir = '%s.dist-info' % name_ver metadata_name = posixpath.join(info_dir, LEGACY_METADATA_FILENAME) wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') record_name = posixpath.join(info_dir, 'RECORD') wrapper = codecs.getreader('utf-8') with ZipFile(pathname, 'r') as zf: with zf.open(wheel_metadata_name) as bwf: wf = wrapper(bwf) message = message_from_file(wf) wv = message['Wheel-Version'].split('.', 1) file_version = tuple([int(i) for i in wv]) if (file_version != self.wheel_version) and warner: warner(self.wheel_version, file_version) if message['Root-Is-Purelib'] == 'true': libdir = paths['purelib'] else: libdir = paths['platlib'] records = {} with zf.open(record_name) as bf: with CSVReader(stream=bf) as reader: for row in reader: p = row[0] records[p] = row data_pfx = posixpath.join(data_dir, '') info_pfx = posixpath.join(info_dir, '') script_pfx = posixpath.join(data_dir, 'scripts', '') # make a new instance rather than a copy of maker's, # as we mutate it fileop = FileOperator(dry_run=dry_run) fileop.record = True # so we can rollback if needed bc = not sys.dont_write_bytecode # Double negatives. Lovely! outfiles = [] # for RECORD writing # for script copying/shebang processing workdir = tempfile.mkdtemp() # set target dir later # we default add_launchers to False, as the # Python Launcher should be used instead maker.source_dir = workdir maker.target_dir = None try: for zinfo in zf.infolist(): arcname = zinfo.filename if isinstance(arcname, text_type): u_arcname = arcname else: u_arcname = arcname.decode('utf-8') if self.skip_entry(u_arcname): continue row = records[u_arcname] if row[2] and str(zinfo.file_size) != row[2]: raise DistlibException('size mismatch for ' '%s' % u_arcname) if row[1]: kind, value = row[1].split('=', 1) with zf.open(arcname) as bf: data = bf.read() _, digest = self.get_hash(data, kind) if digest != value: raise DistlibException('digest mismatch for ' '%s' % arcname) if lib_only and u_arcname.startswith((info_pfx, data_pfx)): logger.debug('lib_only: skipping %s', u_arcname) continue is_script = (u_arcname.startswith(script_pfx) and not u_arcname.endswith('.exe')) if u_arcname.startswith(data_pfx): _, where, rp = u_arcname.split('/', 2) outfile = os.path.join(paths[where], convert_path(rp)) else: # meant for site-packages. if u_arcname in (wheel_metadata_name, record_name): continue outfile = os.path.join(libdir, convert_path(u_arcname)) if not is_script: with zf.open(arcname) as bf: fileop.copy_stream(bf, outfile) # Issue #147: permission bits aren't preserved. Using # zf.extract(zinfo, libdir) should have worked, but didn't, # see https://www.thetopsites.net/article/53834422.shtml # So ... manually preserve permission bits as given in zinfo if os.name == 'posix': # just set the normal permission bits os.chmod(outfile, (zinfo.external_attr >> 16) & 0x1FF) outfiles.append(outfile) # Double check the digest of the written file if not dry_run and row[1]: with open(outfile, 'rb') as bf: data = bf.read() _, newdigest = self.get_hash(data, kind) if newdigest != digest: raise DistlibException('digest mismatch ' 'on write for ' '%s' % outfile) if bc and outfile.endswith('.py'): try: pyc = fileop.byte_compile(outfile, hashed_invalidation=bc_hashed_invalidation) outfiles.append(pyc) except Exception: # Don't give up if byte-compilation fails, # but log it and perhaps warn the user logger.warning('Byte-compilation failed', exc_info=True) else: fn = os.path.basename(convert_path(arcname)) workname = os.path.join(workdir, fn) with zf.open(arcname) as bf: fileop.copy_stream(bf, workname) dn, fn = os.path.split(outfile) maker.target_dir = dn filenames = maker.make(fn) fileop.set_executable_mode(filenames) outfiles.extend(filenames) if lib_only: logger.debug('lib_only: returning None') dist = None else: # Generate scripts # Try to get pydist.json so we can see if there are # any commands to generate. If this fails (e.g. because # of a legacy wheel), log a warning but don't give up. commands = None file_version = self.info['Wheel-Version'] if file_version == '1.0': # Use legacy info ep = posixpath.join(info_dir, 'entry_points.txt') try: with zf.open(ep) as bwf: epdata = read_exports(bwf) commands = {} for key in ('console', 'gui'): k = '%s_scripts' % key if k in epdata: commands['wrap_%s' % key] = d = {} for v in epdata[k].values(): s = '%s:%s' % (v.prefix, v.suffix) if v.flags: s += ' [%s]' % ','.join(v.flags) d[v.name] = s except Exception: logger.warning('Unable to read legacy script ' 'metadata, so cannot generate ' 'scripts') else: try: with zf.open(metadata_name) as bwf: wf = wrapper(bwf) commands = json.load(wf).get('extensions') if commands: commands = commands.get('python.commands') except Exception: logger.warning('Unable to read JSON metadata, so ' 'cannot generate scripts') if commands: console_scripts = commands.get('wrap_console', {}) gui_scripts = commands.get('wrap_gui', {}) if console_scripts or gui_scripts: script_dir = paths.get('scripts', '') if not os.path.isdir(script_dir): raise ValueError('Valid script path not ' 'specified') maker.target_dir = script_dir for k, v in console_scripts.items(): script = '%s = %s' % (k, v) filenames = maker.make(script) fileop.set_executable_mode(filenames) if gui_scripts: options = {'gui': True } for k, v in gui_scripts.items(): script = '%s = %s' % (k, v) filenames = maker.make(script, options) fileop.set_executable_mode(filenames) p = os.path.join(libdir, info_dir) dist = InstalledDistribution(p) # Write SHARED paths = dict(paths) # don't change passed in dict del paths['purelib'] del paths['platlib'] paths['lib'] = libdir p = dist.write_shared_locations(paths, dry_run) if p: outfiles.append(p) # Write RECORD dist.write_installed_files(outfiles, paths['prefix'], dry_run) return dist except Exception: # pragma: no cover logger.exception('installation failed.') fileop.rollback() raise finally: shutil.rmtree(workdir) def _get_dylib_cache(self): global cache if cache is None: # Use native string to avoid issues on 2.x: see Python #20140. base = os.path.join(get_cache_base(), str('dylib-cache'), '%s.%s' % sys.version_info[:2]) cache = Cache(base) return cache def _get_extensions(self): pathname = os.path.join(self.dirname, self.filename) name_ver = '%s-%s' % (self.name, self.version) info_dir = '%s.dist-info' % name_ver arcname = posixpath.join(info_dir, 'EXTENSIONS') wrapper = codecs.getreader('utf-8') result = [] with ZipFile(pathname, 'r') as zf: try: with zf.open(arcname) as bf: wf = wrapper(bf) extensions = json.load(wf) cache = self._get_dylib_cache() prefix = cache.prefix_to_dir(pathname) cache_base = os.path.join(cache.base, prefix) if not os.path.isdir(cache_base): os.makedirs(cache_base) for name, relpath in extensions.items(): dest = os.path.join(cache_base, convert_path(relpath)) if not os.path.exists(dest): extract = True else: file_time = os.stat(dest).st_mtime file_time = datetime.datetime.fromtimestamp(file_time) info = zf.getinfo(relpath) wheel_time = datetime.datetime(*info.date_time) extract = wheel_time > file_time if extract: zf.extract(relpath, cache_base) result.append((name, dest)) except KeyError: pass return result def is_compatible(self): """ Determine if a wheel is compatible with the running system. """ return is_compatible(self) def is_mountable(self): """ Determine if a wheel is asserted as mountable by its metadata. """ return True # for now - metadata details TBD def mount(self, append=False): pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) if not self.is_compatible(): msg = 'Wheel %s not compatible with this Python.' % pathname raise DistlibException(msg) if not self.is_mountable(): msg = 'Wheel %s is marked as not mountable.' % pathname raise DistlibException(msg) if pathname in sys.path: logger.debug('%s already in path', pathname) else: if append: sys.path.append(pathname) else: sys.path.insert(0, pathname) extensions = self._get_extensions() if extensions: if _hook not in sys.meta_path: sys.meta_path.append(_hook) _hook.add(pathname, extensions) def unmount(self): pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) if pathname not in sys.path: logger.debug('%s not in path', pathname) else: sys.path.remove(pathname) if pathname in _hook.impure_wheels: _hook.remove(pathname) if not _hook.impure_wheels: if _hook in sys.meta_path: sys.meta_path.remove(_hook) def verify(self): pathname = os.path.join(self.dirname, self.filename) name_ver = '%s-%s' % (self.name, self.version) data_dir = '%s.data' % name_ver info_dir = '%s.dist-info' % name_ver metadata_name = posixpath.join(info_dir, LEGACY_METADATA_FILENAME) wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') record_name = posixpath.join(info_dir, 'RECORD') wrapper = codecs.getreader('utf-8') with ZipFile(pathname, 'r') as zf: with zf.open(wheel_metadata_name) as bwf: wf = wrapper(bwf) message = message_from_file(wf) wv = message['Wheel-Version'].split('.', 1) file_version = tuple([int(i) for i in wv]) # TODO version verification records = {} with zf.open(record_name) as bf: with CSVReader(stream=bf) as reader: for row in reader: p = row[0] records[p] = row for zinfo in zf.infolist(): arcname = zinfo.filename if isinstance(arcname, text_type): u_arcname = arcname else: u_arcname = arcname.decode('utf-8') # See issue #115: some wheels have .. in their entries, but # in the filename ... e.g. __main__..py ! So the check is # updated to look for .. in the directory portions p = u_arcname.split('/') if '..' in p: raise DistlibException('invalid entry in ' 'wheel: %r' % u_arcname) if self.skip_entry(u_arcname): continue row = records[u_arcname] if row[2] and str(zinfo.file_size) != row[2]: raise DistlibException('size mismatch for ' '%s' % u_arcname) if row[1]: kind, value = row[1].split('=', 1) with zf.open(arcname) as bf: data = bf.read() _, digest = self.get_hash(data, kind) if digest != value: raise DistlibException('digest mismatch for ' '%s' % arcname) def update(self, modifier, dest_dir=None, **kwargs): """ Update the contents of a wheel in a generic way. The modifier should be a callable which expects a dictionary argument: its keys are archive-entry paths, and its values are absolute filesystem paths where the contents the corresponding archive entries can be found. The modifier is free to change the contents of the files pointed to, add new entries and remove entries, before returning. This method will extract the entire contents of the wheel to a temporary location, call the modifier, and then use the passed (and possibly updated) dictionary to write a new wheel. If ``dest_dir`` is specified, the new wheel is written there -- otherwise, the original wheel is overwritten. The modifier should return True if it updated the wheel, else False. This method returns the same value the modifier returns. """ def get_version(path_map, info_dir): version = path = None key = '%s/%s' % (info_dir, LEGACY_METADATA_FILENAME) if key not in path_map: key = '%s/PKG-INFO' % info_dir if key in path_map: path = path_map[key] version = Metadata(path=path).version return version, path def update_version(version, path): updated = None try: v = NormalizedVersion(version) i = version.find('-') if i < 0: updated = '%s+1' % version else: parts = [int(s) for s in version[i + 1:].split('.')] parts[-1] += 1 updated = '%s+%s' % (version[:i], '.'.join(str(i) for i in parts)) except UnsupportedVersionError: logger.debug('Cannot update non-compliant (PEP-440) ' 'version %r', version) if updated: md = Metadata(path=path) md.version = updated legacy = path.endswith(LEGACY_METADATA_FILENAME) md.write(path=path, legacy=legacy) logger.debug('Version updated from %r to %r', version, updated) pathname = os.path.join(self.dirname, self.filename) name_ver = '%s-%s' % (self.name, self.version) info_dir = '%s.dist-info' % name_ver record_name = posixpath.join(info_dir, 'RECORD') with tempdir() as workdir: with ZipFile(pathname, 'r') as zf: path_map = {} for zinfo in zf.infolist(): arcname = zinfo.filename if isinstance(arcname, text_type): u_arcname = arcname else: u_arcname = arcname.decode('utf-8') if u_arcname == record_name: continue if '..' in u_arcname: raise DistlibException('invalid entry in ' 'wheel: %r' % u_arcname) zf.extract(zinfo, workdir) path = os.path.join(workdir, convert_path(u_arcname)) path_map[u_arcname] = path # Remember the version. original_version, _ = get_version(path_map, info_dir) # Files extracted. Call the modifier. modified = modifier(path_map, **kwargs) if modified: # Something changed - need to build a new wheel. current_version, path = get_version(path_map, info_dir) if current_version and (current_version == original_version): # Add or update local version to signify changes. update_version(current_version, path) # Decide where the new wheel goes. if dest_dir is None: fd, newpath = tempfile.mkstemp(suffix='.whl', prefix='wheel-update-', dir=workdir) os.close(fd) else: if not os.path.isdir(dest_dir): raise DistlibException('Not a directory: %r' % dest_dir) newpath = os.path.join(dest_dir, self.filename) archive_paths = list(path_map.items()) distinfo = os.path.join(workdir, info_dir) info = distinfo, info_dir self.write_records(info, workdir, archive_paths) self.build_zip(newpath, archive_paths) if dest_dir is None: shutil.copyfile(newpath, pathname) return modified def _get_glibc_version(): import platform ver = platform.libc_ver() result = [] if ver[0] == 'glibc': for s in ver[1].split('.'): result.append(int(s) if s.isdigit() else 0) result = tuple(result) return result def compatible_tags(): """ Return (pyver, abi, arch) tuples compatible with this Python. """ versions = [VER_SUFFIX] major = VER_SUFFIX[0] for minor in range(sys.version_info[1] - 1, - 1, -1): versions.append(''.join([major, str(minor)])) abis = [] for suffix, _, _ in imp.get_suffixes(): if suffix.startswith('.abi'): abis.append(suffix.split('.', 2)[1]) abis.sort() if ABI != 'none': abis.insert(0, ABI) abis.append('none') result = [] arches = [ARCH] if sys.platform == 'darwin': m = re.match(r'(\w+)_(\d+)_(\d+)_(\w+)$', ARCH) if m: name, major, minor, arch = m.groups() minor = int(minor) matches = [arch] if arch in ('i386', 'ppc'): matches.append('fat') if arch in ('i386', 'ppc', 'x86_64'): matches.append('fat3') if arch in ('ppc64', 'x86_64'): matches.append('fat64') if arch in ('i386', 'x86_64'): matches.append('intel') if arch in ('i386', 'x86_64', 'intel', 'ppc', 'ppc64'): matches.append('universal') while minor >= 0: for match in matches: s = '%s_%s_%s_%s' % (name, major, minor, match) if s != ARCH: # already there arches.append(s) minor -= 1 # Most specific - our Python version, ABI and arch for abi in abis: for arch in arches: result.append((''.join((IMP_PREFIX, versions[0])), abi, arch)) # manylinux if abi != 'none' and sys.platform.startswith('linux'): arch = arch.replace('linux_', '') parts = _get_glibc_version() if len(parts) == 2: if parts >= (2, 5): result.append((''.join((IMP_PREFIX, versions[0])), abi, 'manylinux1_%s' % arch)) if parts >= (2, 12): result.append((''.join((IMP_PREFIX, versions[0])), abi, 'manylinux2010_%s' % arch)) if parts >= (2, 17): result.append((''.join((IMP_PREFIX, versions[0])), abi, 'manylinux2014_%s' % arch)) result.append((''.join((IMP_PREFIX, versions[0])), abi, 'manylinux_%s_%s_%s' % (parts[0], parts[1], arch))) # where no ABI / arch dependency, but IMP_PREFIX dependency for i, version in enumerate(versions): result.append((''.join((IMP_PREFIX, version)), 'none', 'any')) if i == 0: result.append((''.join((IMP_PREFIX, version[0])), 'none', 'any')) # no IMP_PREFIX, ABI or arch dependency for i, version in enumerate(versions): result.append((''.join(('py', version)), 'none', 'any')) if i == 0: result.append((''.join(('py', version[0])), 'none', 'any')) return set(result) COMPATIBLE_TAGS = compatible_tags() del compatible_tags def is_compatible(wheel, tags=None): if not isinstance(wheel, Wheel): wheel = Wheel(wheel) # assume it's a filename result = False if tags is None: tags = COMPATIBLE_TAGS for ver, abi, arch in tags: if ver in wheel.pyver and abi in wheel.abi and arch in wheel.arch: result = True break return result PKx"Tԝ88Q__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib-0.3.4.dist-info/LICENSE.txtA. HISTORY OF THE SOFTWARE ========================== Python was created in the early 1990s by Guido van Rossum at Stichting Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands as a successor of a language called ABC. Guido remains Python's principal author, although it includes many contributions from others. In 1995, Guido continued his work on Python at the Corporation for National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) in Reston, Virginia where he released several versions of the software. In May 2000, Guido and the Python core development team moved to BeOpen.com to form the BeOpen PythonLabs team. In October of the same year, the PythonLabs team moved to Digital Creations (now Zope Corporation, see http://www.zope.com). In 2001, the Python Software Foundation (PSF, see http://www.python.org/psf/) was formed, a non-profit organization created specifically to own Python-related Intellectual Property. Zope Corporation is a sponsoring member of the PSF. All Python releases are Open Source (see http://www.opensource.org for the Open Source Definition). Historically, most, but not all, Python releases have also been GPL-compatible; the table below summarizes the various releases. Release Derived Year Owner GPL- from compatible? (1) 0.9.0 thru 1.2 1991-1995 CWI yes 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes 1.6 1.5.2 2000 CNRI no 2.0 1.6 2000 BeOpen.com no 1.6.1 1.6 2001 CNRI yes (2) 2.1 2.0+1.6.1 2001 PSF no 2.0.1 2.0+1.6.1 2001 PSF yes 2.1.1 2.1+2.0.1 2001 PSF yes 2.2 2.1.1 2001 PSF yes 2.1.2 2.1.1 2002 PSF yes 2.1.3 2.1.2 2002 PSF yes 2.2.1 2.2 2002 PSF yes 2.2.2 2.2.1 2002 PSF yes 2.2.3 2.2.2 2003 PSF yes 2.3 2.2.2 2002-2003 PSF yes 2.3.1 2.3 2002-2003 PSF yes 2.3.2 2.3.1 2002-2003 PSF yes 2.3.3 2.3.2 2002-2003 PSF yes 2.3.4 2.3.3 2004 PSF yes 2.3.5 2.3.4 2005 PSF yes 2.4 2.3 2004 PSF yes 2.4.1 2.4 2005 PSF yes 2.4.2 2.4.1 2005 PSF yes 2.4.3 2.4.2 2006 PSF yes 2.4.4 2.4.3 2006 PSF yes 2.5 2.4 2006 PSF yes 2.5.1 2.5 2007 PSF yes 2.5.2 2.5.1 2008 PSF yes 2.5.3 2.5.2 2008 PSF yes 2.6 2.5 2008 PSF yes 2.6.1 2.6 2008 PSF yes 2.6.2 2.6.1 2009 PSF yes 2.6.3 2.6.2 2009 PSF yes 2.6.4 2.6.3 2009 PSF yes 2.6.5 2.6.4 2010 PSF yes 3.0 2.6 2008 PSF yes 3.0.1 3.0 2009 PSF yes 3.1 3.0.1 2009 PSF yes 3.1.1 3.1 2009 PSF yes 3.1.2 3.1 2010 PSF yes 3.2 3.1 2010 PSF yes Footnotes: (1) GPL-compatible doesn't mean that we're distributing Python under the GPL. All Python licenses, unlike the GPL, let you distribute a modified version without making your changes open source. The GPL-compatible licenses make it possible to combine Python with other software that is released under the GPL; the others don't. (2) According to Richard Stallman, 1.6.1 is not GPL-compatible, because its license has a choice of law clause. According to CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 is "not incompatible" with the GPL. Thanks to the many outside volunteers who have worked under Guido's direction to make these releases possible. B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON =============================================================== PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 -------------------------------------------- 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Python") in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee. 3. In the event Licensee prepares a derivative work that is based on or incorporates Python or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python. 4. PSF is making Python available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this License Agreement. BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 ------------------------------------------- BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the Individual or Organization ("Licensee") accessing and otherwise using this software in source or binary form and its associated documentation ("the Software"). 2. Subject to the terms and conditions of this BeOpen Python License Agreement, BeOpen hereby grants Licensee a non-exclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use the Software alone or in any derivative version, provided, however, that the BeOpen Python License is retained in the Software, alone or in any derivative version prepared by Licensee. 3. BeOpen is making the Software available to Licensee on an "AS IS" basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 5. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 6. This License Agreement shall be governed by and interpreted in all respects by the law of the State of California, excluding conflict of law provisions. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between BeOpen and Licensee. This License Agreement does not grant permission to use BeOpen trademarks or trade names in a trademark sense to endorse or promote products or services of Licensee, or any third party. As an exception, the "BeOpen Python" logos available at http://www.pythonlabs.com/logos.html may be used according to the permissions granted on that web page. 7. By copying, installing or otherwise using the software, Licensee agrees to be bound by the terms and conditions of this License Agreement. CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 --------------------------------------- 1. This LICENSE AGREEMENT is between the Corporation for National Research Initiatives, having an office at 1895 Preston White Drive, Reston, VA 20191 ("CNRI"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 1.6.1 software in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, CNRI hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 1.6.1 alone or in any derivative version, provided, however, that CNRI's License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) 1995-2001 Corporation for National Research Initiatives; All Rights Reserved" are retained in Python 1.6.1 alone or in any derivative version prepared by Licensee. Alternately, in lieu of CNRI's License Agreement, Licensee may substitute the following text (omitting the quotes): "Python 1.6.1 is made available subject to the terms and conditions in CNRI's License Agreement. This Agreement together with Python 1.6.1 may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1013. This Agreement may also be obtained from a proxy server on the Internet using the following URL: http://hdl.handle.net/1895.22/1013". 3. In the event Licensee prepares a derivative work that is based on or incorporates Python 1.6.1 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 1.6.1. 4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. This License Agreement shall be governed by the federal intellectual property law of the United States, including without limitation the federal copyright law, and, to the extent such U.S. federal law does not apply, by the law of the Commonwealth of Virginia, excluding Virginia's conflict of law provisions. Notwithstanding the foregoing, with regard to derivative works based on Python 1.6.1 that incorporate non-separable material that was previously distributed under the GNU General Public License (GPL), the law of the Commonwealth of Virginia shall govern this License Agreement only as to issues arising under or with respect to Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between CNRI and Licensee. This License Agreement does not grant permission to use CNRI trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By clicking on the "ACCEPT" button where indicated, or by copying, installing or otherwise using Python 1.6.1, Licensee agrees to be bound by the terms and conditions of this License Agreement. ACCEPT CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 -------------------------------------------------- Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands. All rights reserved. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Stichting Mathematisch Centrum or CWI not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. PKx"T0N__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib-0.3.4.dist-info/METADATAMetadata-Version: 1.1 Name: distlib Version: 0.3.4 Summary: Distribution utilities Description: Low-level components of distutils2/packaging, augmented with higher-level APIs for making packaging easier. Home-page: https://bitbucket.org/pypa/distlib Author: Vinay Sajip Author-email: vinay_sajip@red-dove.com License: Python license Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Console Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Python Software Foundation License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Topic :: Software Development :: Libraries :: Python Modules Download-URL: https://bitbucket.org/pypa/distlib/downloads/distlib-0.3.4.zip PKx"TAE*DjjK__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib-0.3.4.dist-info/WHEELWheel-Version: 1.0 Generator: distlib 0.3.4.dev0 Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-anyPKx"T93;L__virtualenv__/distlib-0.3.4-py2.py3-none-any/distlib-0.3.4.dist-info/RECORDdistlib/__init__.py,sha256=y-rKDBB99QJ3N1PJGAXQo89ou615aAeBjV2brBxKgM8,581 distlib/compat.py,sha256=tfoMrj6tujk7G4UC2owL6ArgDuCKabgBxuJRGZSmpko,41259 distlib/database.py,sha256=hBO2dgvDF7W3BqX8Ecns6p_RPerCaIbNKbdUOuJ1a14,51456 distlib/index.py,sha256=UfcimNW19AB7IKWam4VaJbXuCBvArKfSxhV16EwavzE,20739 distlib/locators.py,sha256=4D2hEcHePNuW4mXEZ3Cuw12eW-vbO-4WuAlbf4h5K7w,51963 distlib/manifest.py,sha256=nQEhYmgoreaBZzyFzwYsXxJARu3fo4EkunU163U16iE,14811 distlib/markers.py,sha256=TpHHHLgkzyT7YHbwj-2i6weRaq-Ivy2-MUnrDkjau-U,5058 distlib/metadata.py,sha256=vatoxFdmBr6ie-sTVXVNPOPG3uwMDWJTnEECnm7xDCw,39109 distlib/resources.py,sha256=LwbPksc0A1JMbi6XnuPdMBUn83X7BPuFNWqPGEKI698,10820 distlib/scripts.py,sha256=tjSwENINeV91ROZxec5zTSMRg2jEeKc4enyCHDzNvEE,17720 distlib/t32.exe,sha256=vaRxRsgmHZBVM1b8RF4qbeer3wGP5uqgRRBpyyFOSJs,96768 distlib/t64-arm.exe,sha256=hPtlRuDgtr7-v58FKxJQ70GawAyXu6I322ugN0HhitM,180736 distlib/t64.exe,sha256=YEOte6_T1mGN9rQb6xyKtXapavufffKm34rqI2jEvqU,106496 distlib/util.py,sha256=31dPXn3Rfat0xZLeVoFpuniyhe6vsbl9_QN-qd9Lhlk,66262 distlib/version.py,sha256=WG__LyAa2GwmA6qSoEJtvJE8REA1LZpbSizy8WvhJLk,23513 distlib/w32.exe,sha256=c2B7i0UZfTRDPXMD81gRzyyWyeK46O11iQN_qpP2W20,90112 distlib/w64-arm.exe,sha256=_J7p9sX1pWmoRNU0omKxSacLj9Z8sht5UKEIaPH9sqc,166400 distlib/w64.exe,sha256=6epPlc-TwwyZoJVLXlLPeSr1Ykn8551WZVAgq66VaPY,100864 distlib/wheel.py,sha256=pj5VVCjqZMcHvgizORWwAFPS7hOk61CZ59dxP8laQ4E,42943 distlib-0.3.4.dist-info/LICENSE.txt,sha256=gI4QyKarjesUn_mz-xn0R6gICUYG1xKpylf-rTVSWZ0,14531 distlib-0.3.4.dist-info/METADATA,sha256=176PZzOsaAh7UY_7njTt2p0OPAFQwqsLkGmLM1NE24A,1229 distlib-0.3.4.dist-info/WHEEL,sha256=UuymbziZdNP3gBzIsF7uusdpOQfsYbV3RoYH2LnStow,106 distlib-0.3.4.dist-info/RECORD,, PKx"Tc?__virtualenv__/filelock-3.4.2-py3-none-any/filelock/__init__.py""" A platform independent file lock that supports the with-statement. .. autodata:: filelock.__version__ :no-value: """ from __future__ import annotations import sys import warnings from ._api import AcquireReturnProxy, BaseFileLock from ._error import Timeout from ._soft import SoftFileLock from ._unix import UnixFileLock, has_fcntl from ._windows import WindowsFileLock from .version import version #: version of the project as a string __version__: str = version if sys.platform == "win32": # pragma: win32 cover _FileLock: type[BaseFileLock] = WindowsFileLock else: # pragma: win32 no cover if has_fcntl: _FileLock: type[BaseFileLock] = UnixFileLock else: _FileLock = SoftFileLock if warnings is not None: warnings.warn("only soft file lock is available") #: Alias for the lock, which should be used for the current platform. On Windows, this is an alias for # :class:`WindowsFileLock`, on Unix for :class:`UnixFileLock` and otherwise for :class:`SoftFileLock`. FileLock: type[BaseFileLock] = _FileLock __all__ = [ "__version__", "FileLock", "SoftFileLock", "Timeout", "UnixFileLock", "WindowsFileLock", "BaseFileLock", "AcquireReturnProxy", ] PKx"Tnc9 ;__virtualenv__/filelock-3.4.2-py3-none-any/filelock/_api.pyfrom __future__ import annotations import logging import os import time import warnings from abc import ABC, abstractmethod from threading import Lock from types import TracebackType from typing import Any from ._error import Timeout _LOGGER = logging.getLogger("filelock") # This is a helper class which is returned by :meth:`BaseFileLock.acquire` and wraps the lock to make sure __enter__ # is not called twice when entering the with statement. If we would simply return *self*, the lock would be acquired # again in the *__enter__* method of the BaseFileLock, but not released again automatically. issue #37 (memory leak) class AcquireReturnProxy: """A context aware object that will release the lock file when exiting.""" def __init__(self, lock: BaseFileLock) -> None: self.lock = lock def __enter__(self) -> BaseFileLock: return self.lock def __exit__( self, exc_type: type[BaseException] | None, # noqa: U100 exc_value: BaseException | None, # noqa: U100 traceback: TracebackType | None, # noqa: U100 ) -> None: self.lock.release() class BaseFileLock(ABC): """Abstract base class for a file lock object.""" def __init__(self, lock_file: str | os.PathLike[Any], timeout: float = -1) -> None: """ Create a new lock object. :param lock_file: path to the file :param timeout: default timeout when acquiring the lock. It will be used as fallback value in the acquire method, if no timeout value (``None``) is given. If you want to disable the timeout, set it to a negative value. A timeout of 0 means, that there is exactly one attempt to acquire the file lock. """ # The path to the lock file. self._lock_file: str = os.fspath(lock_file) # The file descriptor for the *_lock_file* as it is returned by the os.open() function. # This file lock is only NOT None, if the object currently holds the lock. self._lock_file_fd: int | None = None # The default timeout value. self.timeout: float = timeout # We use this lock primarily for the lock counter. self._thread_lock: Lock = Lock() # The lock counter is used for implementing the nested locking mechanism. Whenever the lock is acquired, the # counter is increased and the lock is only released, when this value is 0 again. self._lock_counter: int = 0 @property def lock_file(self) -> str: """:return: path to the lock file""" return self._lock_file @property def timeout(self) -> float: """ :return: the default timeout value .. versionadded:: 2.0.0 """ return self._timeout @timeout.setter def timeout(self, value: float | str) -> None: """ Change the default timeout value. :param value: the new value """ self._timeout = float(value) @abstractmethod def _acquire(self) -> None: """If the file lock could be acquired, self._lock_file_fd holds the file descriptor of the lock file.""" raise NotImplementedError @abstractmethod def _release(self) -> None: """Releases the lock and sets self._lock_file_fd to None.""" raise NotImplementedError @property def is_locked(self) -> bool: """ :return: A boolean indicating if the lock file is holding the lock currently. .. versionchanged:: 2.0.0 This was previously a method and is now a property. """ return self._lock_file_fd is not None def acquire( self, timeout: float | None = None, poll_interval: float = 0.05, *, poll_intervall: float | None = None, ) -> AcquireReturnProxy: """ Try to acquire the file lock. :param timeout: maximum wait time for acquiring the lock, ``None`` means use the default :attr:`~timeout` is and if ``timeout < 0``, there is no timeout and this method will block until the lock could be acquired :param poll_interval: interval of trying to acquire the lock file :param poll_intervall: deprecated, kept for backwards compatibility, use ``poll_interval`` instead :raises Timeout: if fails to acquire lock within the timeout period :return: a context object that will unlock the file when the context is exited .. code-block:: python # You can use this method in the context manager (recommended) with lock.acquire(): pass # Or use an equivalent try-finally construct: lock.acquire() try: pass finally: lock.release() .. versionchanged:: 2.0.0 This method returns now a *proxy* object instead of *self*, so that it can be used in a with statement without side effects. """ # Use the default timeout, if no timeout is provided. if timeout is None: timeout = self.timeout if poll_intervall is not None: msg = "use poll_interval instead of poll_intervall" warnings.warn(msg, DeprecationWarning, stacklevel=2) poll_interval = poll_intervall # Increment the number right at the beginning. We can still undo it, if something fails. with self._thread_lock: self._lock_counter += 1 lock_id = id(self) lock_filename = self._lock_file start_time = time.time() try: while True: with self._thread_lock: if not self.is_locked: _LOGGER.debug("Attempting to acquire lock %s on %s", lock_id, lock_filename) self._acquire() if self.is_locked: _LOGGER.debug("Lock %s acquired on %s", lock_id, lock_filename) break elif 0 <= timeout < time.time() - start_time: _LOGGER.debug("Timeout on acquiring lock %s on %s", lock_id, lock_filename) raise Timeout(self._lock_file) else: msg = "Lock %s not acquired on %s, waiting %s seconds ..." _LOGGER.debug(msg, lock_id, lock_filename, poll_interval) time.sleep(poll_interval) except BaseException: # Something did go wrong, so decrement the counter. with self._thread_lock: self._lock_counter = max(0, self._lock_counter - 1) raise return AcquireReturnProxy(lock=self) def release(self, force: bool = False) -> None: """ Releases the file lock. Please note, that the lock is only completely released, if the lock counter is 0. Also note, that the lock file itself is not automatically deleted. :param force: If true, the lock counter is ignored and the lock is released in every case/ """ with self._thread_lock: if self.is_locked: self._lock_counter -= 1 if self._lock_counter == 0 or force: lock_id, lock_filename = id(self), self._lock_file _LOGGER.debug("Attempting to release lock %s on %s", lock_id, lock_filename) self._release() self._lock_counter = 0 _LOGGER.debug("Lock %s released on %s", lock_id, lock_filename) def __enter__(self) -> BaseFileLock: """ Acquire the lock. :return: the lock object """ self.acquire() return self def __exit__( self, exc_type: type[BaseException] | None, # noqa: U100 exc_value: BaseException | None, # noqa: U100 traceback: TracebackType | None, # noqa: U100 ) -> None: """ Release the lock. :param exc_type: the exception type if raised :param exc_value: the exception value if raised :param traceback: the exception traceback if raised """ self.release() def __del__(self) -> None: """Called when the lock object is deleted.""" self.release(force=True) __all__ = [ "BaseFileLock", "AcquireReturnProxy", ] PKx"Tg=__virtualenv__/filelock-3.4.2-py3-none-any/filelock/_error.pyfrom __future__ import annotations class Timeout(TimeoutError): """Raised when the lock could not be acquired in *timeout* seconds.""" def __init__(self, lock_file: str) -> None: #: The path of the file lock. self.lock_file = lock_file def __str__(self) -> str: return f"The file lock '{self.lock_file}' could not be acquired." __all__ = [ "Timeout", ] PKx"T0?Nrr<__virtualenv__/filelock-3.4.2-py3-none-any/filelock/_soft.pyfrom __future__ import annotations import os import sys from errno import EACCES, EEXIST, ENOENT from ._api import BaseFileLock from ._util import raise_on_exist_ro_file class SoftFileLock(BaseFileLock): """Simply watches the existence of the lock file.""" def _acquire(self) -> None: raise_on_exist_ro_file(self._lock_file) # first check for exists and read-only mode as the open will mask this case as EEXIST mode = ( os.O_WRONLY # open for writing only | os.O_CREAT | os.O_EXCL # together with above raise EEXIST if the file specified by filename exists | os.O_TRUNC # truncate the file to zero byte ) try: fd = os.open(self._lock_file, mode) except OSError as exception: if exception.errno == EEXIST: # expected if cannot lock pass elif exception.errno == ENOENT: # No such file or directory - parent directory is missing raise elif exception.errno == EACCES and sys.platform != "win32": # pragma: win32 no cover # Permission denied - parent dir is R/O raise # note windows does not allow you to make a folder r/o only files else: self._lock_file_fd = fd def _release(self) -> None: os.close(self._lock_file_fd) # type: ignore # the lock file is definitely not None self._lock_file_fd = None try: os.remove(self._lock_file) except OSError: # the file is already deleted and that's what we want pass __all__ = [ "SoftFileLock", ] PKx"T9<__virtualenv__/filelock-3.4.2-py3-none-any/filelock/_unix.pyfrom __future__ import annotations import os import sys from abc import ABC from typing import cast from ._api import BaseFileLock #: a flag to indicate if the fcntl API is available has_fcntl = False if sys.platform == "win32": # pragma: win32 cover class UnixFileLock(BaseFileLock, ABC): """Uses the :func:`fcntl.flock` to hard lock the lock file on unix systems.""" else: # pragma: win32 no cover try: import fcntl except ImportError: pass else: has_fcntl = True class UnixFileLock(BaseFileLock): """Uses the :func:`fcntl.flock` to hard lock the lock file on unix systems.""" def _acquire(self) -> None: open_mode = os.O_RDWR | os.O_CREAT | os.O_TRUNC fd = os.open(self._lock_file, open_mode) try: fcntl.flock(fd, fcntl.LOCK_EX | fcntl.LOCK_NB) except OSError: os.close(fd) else: self._lock_file_fd = fd def _release(self) -> None: # Do not remove the lockfile: # https://github.com/tox-dev/py-filelock/issues/31 # https://stackoverflow.com/questions/17708885/flock-removing-locked-file-without-race-condition fd = cast(int, self._lock_file_fd) self._lock_file_fd = None fcntl.flock(fd, fcntl.LOCK_UN) os.close(fd) __all__ = [ "has_fcntl", "UnixFileLock", ] PKx"TsRR<__virtualenv__/filelock-3.4.2-py3-none-any/filelock/_util.pyfrom __future__ import annotations import os import stat def raise_on_exist_ro_file(filename: str) -> None: try: file_stat = os.stat(filename) # use stat to do exists + can write to check without race condition except OSError: return None # swallow does not exist or other errors if file_stat.st_mtime != 0: # if os.stat returns but modification is zero that's an invalid os.stat - ignore it if not (file_stat.st_mode & stat.S_IWUSR): raise PermissionError(f"Permission denied: {filename!r}") __all__ = [ "raise_on_exist_ro_file", ] PKx"T.j?__virtualenv__/filelock-3.4.2-py3-none-any/filelock/_windows.pyfrom __future__ import annotations import os import sys from abc import ABC from errno import ENOENT from typing import cast from ._api import BaseFileLock from ._util import raise_on_exist_ro_file if sys.platform == "win32": # pragma: win32 cover import msvcrt class WindowsFileLock(BaseFileLock): """Uses the :func:`msvcrt.locking` function to hard lock the lock file on windows systems.""" def _acquire(self) -> None: raise_on_exist_ro_file(self._lock_file) mode = ( os.O_RDWR # open for read and write | os.O_CREAT # create file if not exists | os.O_TRUNC # truncate file if not empty ) try: fd = os.open(self._lock_file, mode) except OSError as exception: if exception.errno == ENOENT: # No such file or directory raise else: try: msvcrt.locking(fd, msvcrt.LK_NBLCK, 1) except OSError: os.close(fd) else: self._lock_file_fd = fd def _release(self) -> None: fd = cast(int, self._lock_file_fd) self._lock_file_fd = None msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) os.close(fd) try: os.remove(self._lock_file) # Probably another instance of the application hat acquired the file lock. except OSError: pass else: # pragma: win32 no cover class WindowsFileLock(BaseFileLock, ABC): """Uses the :func:`msvcrt.locking` function to hard lock the lock file on windows systems.""" __all__ = [ "WindowsFileLock", ] PKx"T<__virtualenv__/filelock-3.4.2-py3-none-any/filelock/py.typedPKx"TtT4>__virtualenv__/filelock-3.4.2-py3-none-any/filelock/version.py# coding: utf-8 # file generated by setuptools_scm # don't change, don't track in version control version = '3.4.2' version_tuple = (3, 4, 2) PKx"TaK__virtualenv__/filelock-3.4.2-py3-none-any/filelock-3.4.2.dist-info/LICENSEThis is free and unencumbered software released into the public domain. Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. For more information, please refer to PKx"Tn^ L__virtualenv__/filelock-3.4.2-py3-none-any/filelock-3.4.2.dist-info/METADATAMetadata-Version: 2.1 Name: filelock Version: 3.4.2 Summary: A platform independent file lock. Home-page: https://github.com/tox-dev/py-filelock Author: Benedikt Schmitt Author-email: benedikt@benediktschmitt.de License: Unlicense Download-URL: https://github.com/tox-dev/py-filelock/archive/main.zip Project-URL: Source, https://github.com/tox-dev/py-filelock Project-URL: Tracker, https://github.com/tox-dev/py-filelock/issues Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: Public Domain Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Topic :: Internet Classifier: Topic :: Software Development :: Libraries Classifier: Topic :: System Requires-Python: >=3.7 Description-Content-Type: text/markdown License-File: LICENSE Provides-Extra: docs Requires-Dist: furo (>=2021.8.17b43) ; extra == 'docs' Requires-Dist: sphinx (>=4.1) ; extra == 'docs' Requires-Dist: sphinx-autodoc-typehints (>=1.12) ; extra == 'docs' Provides-Extra: testing Requires-Dist: covdefaults (>=1.2.0) ; extra == 'testing' Requires-Dist: coverage (>=4) ; extra == 'testing' Requires-Dist: pytest (>=4) ; extra == 'testing' Requires-Dist: pytest-cov ; extra == 'testing' Requires-Dist: pytest-timeout (>=1.4.2) ; extra == 'testing' # py-filelock [![PyPI](https://img.shields.io/pypi/v/filelock?style=flat-square)](https://pypi.org/project/filelock/) [![Supported Python versions](https://img.shields.io/pypi/pyversions/filelock.svg)](https://pypi.org/project/filelock/) [![Documentation status](https://readthedocs.org/projects/py-filelock/badge/?version=latest&style=flat-square)](https://py-filelock.readthedocs.io/en/latest/?badge=latest) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Downloads](https://pepy.tech/badge/filelock/month)](https://pepy.tech/project/filelock/month) [![check](https://github.com/tox-dev/py-filelock/actions/workflows/check.yml/badge.svg)](https://github.com/tox-dev/py-filelock/actions/workflows/check.yml) For more information checkout the [official documentation](https://py-filelock.readthedocs.io/en/latest/api.html). PKx"Th\\I__virtualenv__/filelock-3.4.2-py3-none-any/filelock-3.4.2.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.1) Root-Is-Purelib: true Tag: py3-none-any PKx"Tz1 Q__virtualenv__/filelock-3.4.2-py3-none-any/filelock-3.4.2.dist-info/top_level.txtfilelock PKx"T2L__virtualenv__/filelock-3.4.2-py3-none-any/filelock-3.4.2.dist-info/zip-safe PKx"TLyyJ__virtualenv__/filelock-3.4.2-py3-none-any/filelock-3.4.2.dist-info/RECORDfilelock/__init__.py,sha256=XE-RanOqTbJkFCKJbe3PqzNCkVgLQXqs_Yp1rrUPF58,1246 filelock/_api.py,sha256=NWmTqTh4tuoKBXr5O8qZjYkxliYOB0mld2yNA1msU7I,8348 filelock/_error.py,sha256=Gaxp2TfdmgdvYFkllGCBOE37vYIXnHKKW3RYfKH7DYM,399 filelock/_soft.py,sha256=rSpmt4Oi0Eb4JeKzyWImeqf5MYCJR0Dyc_kUN3kHj7Y,1650 filelock/_unix.py,sha256=WQHClmZ8F21IBKObmW9bvw9DM7iwwwDU1dfnbSA7zO4,1453 filelock/_util.py,sha256=BZKOAYTQdmcHmF34-Ft4kMdEvk3a8NGtsAhe6kfxZuU,594 filelock/_windows.py,sha256=BCkkYle6tBgXMvl0UgbebMCDzCOX2XlqrBXSCR7SCkM,1765 filelock/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 filelock/version.py,sha256=ZsffSEmoQYYcUc5dXzHbFpN6krhHEhoXT4nNIf7VHYU,142 filelock-3.4.2.dist-info/LICENSE,sha256=iNm062BXnBkew5HKBMFhMFctfu3EqG2qWL8oxuFMm80,1210 filelock-3.4.2.dist-info/METADATA,sha256=I-ZHsnsS1kEpi1wZvclHwTJISyEEce_sGMYPuIC2qSc,2555 filelock-3.4.2.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92 filelock-3.4.2.dist-info/top_level.txt,sha256=NDrf9i5BNogz4hEdsr6Hi7Ws3TlSSKY4Q2Y9_-i2GwU,9 filelock-3.4.2.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 filelock-3.4.2.dist-info/RECORD,, PKx"T ?__virtualenv__/filelock-3.4.1-py3-none-any/filelock/__init__.py""" A platform independent file lock that supports the with-statement. .. autodata:: filelock.__version__ :no-value: """ import sys import warnings from typing import Type from ._api import AcquireReturnProxy, BaseFileLock from ._error import Timeout from ._soft import SoftFileLock from ._unix import UnixFileLock, has_fcntl from ._windows import WindowsFileLock from .version import version #: version of the project as a string __version__: str = version if sys.platform == "win32": # pragma: win32 cover _FileLock: Type[BaseFileLock] = WindowsFileLock else: # pragma: win32 no cover if has_fcntl: _FileLock: Type[BaseFileLock] = UnixFileLock else: _FileLock = SoftFileLock if warnings is not None: warnings.warn("only soft file lock is available") #: Alias for the lock, which should be used for the current platform. On Windows, this is an alias for # :class:`WindowsFileLock`, on Unix for :class:`UnixFileLock` and otherwise for :class:`SoftFileLock`. FileLock: Type[BaseFileLock] = _FileLock __all__ = [ "__version__", "FileLock", "SoftFileLock", "Timeout", "UnixFileLock", "WindowsFileLock", "BaseFileLock", "AcquireReturnProxy", ] PKx"T=xm ;__virtualenv__/filelock-3.4.1-py3-none-any/filelock/_api.pyimport logging import os import time import warnings from abc import ABC, abstractmethod from threading import Lock from types import TracebackType from typing import Any, Optional, Type, Union from ._error import Timeout _LOGGER = logging.getLogger("filelock") # This is a helper class which is returned by :meth:`BaseFileLock.acquire` and wraps the lock to make sure __enter__ # is not called twice when entering the with statement. If we would simply return *self*, the lock would be acquired # again in the *__enter__* method of the BaseFileLock, but not released again automatically. issue #37 (memory leak) class AcquireReturnProxy: """A context aware object that will release the lock file when exiting.""" def __init__(self, lock: "BaseFileLock") -> None: self.lock = lock def __enter__(self) -> "BaseFileLock": return self.lock def __exit__( self, exc_type: Optional[Type[BaseException]], # noqa: U100 exc_value: Optional[BaseException], # noqa: U100 traceback: Optional[TracebackType], # noqa: U100 ) -> None: self.lock.release() class BaseFileLock(ABC): """Abstract base class for a file lock object.""" def __init__(self, lock_file: Union[str, "os.PathLike[Any]"], timeout: float = -1) -> None: """ Create a new lock object. :param lock_file: path to the file :param timeout: default timeout when acquiring the lock. It will be used as fallback value in the acquire method, if no timeout value (``None``) is given. If you want to disable the timeout, set it to a negative value. A timeout of 0 means, that there is exactly one attempt to acquire the file lock. """ # The path to the lock file. self._lock_file: str = os.fspath(lock_file) # The file descriptor for the *_lock_file* as it is returned by the os.open() function. # This file lock is only NOT None, if the object currently holds the lock. self._lock_file_fd: Optional[int] = None # The default timeout value. self.timeout: float = timeout # We use this lock primarily for the lock counter. self._thread_lock: Lock = Lock() # The lock counter is used for implementing the nested locking mechanism. Whenever the lock is acquired, the # counter is increased and the lock is only released, when this value is 0 again. self._lock_counter: int = 0 @property def lock_file(self) -> str: """:return: path to the lock file""" return self._lock_file @property def timeout(self) -> float: """ :return: the default timeout value .. versionadded:: 2.0.0 """ return self._timeout @timeout.setter def timeout(self, value: Union[float, str]) -> None: """ Change the default timeout value. :param value: the new value """ self._timeout = float(value) @abstractmethod def _acquire(self) -> None: """If the file lock could be acquired, self._lock_file_fd holds the file descriptor of the lock file.""" raise NotImplementedError @abstractmethod def _release(self) -> None: """Releases the lock and sets self._lock_file_fd to None.""" raise NotImplementedError @property def is_locked(self) -> bool: """ :return: A boolean indicating if the lock file is holding the lock currently. .. versionchanged:: 2.0.0 This was previously a method and is now a property. """ return self._lock_file_fd is not None def acquire( self, timeout: Optional[float] = None, poll_interval: float = 0.05, *, poll_intervall: Optional[float] = None, ) -> AcquireReturnProxy: """ Try to acquire the file lock. :param timeout: maximum wait time for acquiring the lock, ``None`` means use the default :attr:`~timeout` is and if ``timeout < 0``, there is no timeout and this method will block until the lock could be acquired :param poll_interval: interval of trying to acquire the lock file :param poll_intervall: deprecated, kept for backwards compatibility, use ``poll_interval`` instead :raises Timeout: if fails to acquire lock within the timeout period :return: a context object that will unlock the file when the context is exited .. code-block:: python # You can use this method in the context manager (recommended) with lock.acquire(): pass # Or use an equivalent try-finally construct: lock.acquire() try: pass finally: lock.release() .. versionchanged:: 2.0.0 This method returns now a *proxy* object instead of *self*, so that it can be used in a with statement without side effects. """ # Use the default timeout, if no timeout is provided. if timeout is None: timeout = self.timeout if poll_intervall is not None: msg = "use poll_interval instead of poll_intervall" warnings.warn(msg, DeprecationWarning, stacklevel=2) poll_interval = poll_intervall # Increment the number right at the beginning. We can still undo it, if something fails. with self._thread_lock: self._lock_counter += 1 lock_id = id(self) lock_filename = self._lock_file start_time = time.time() try: while True: with self._thread_lock: if not self.is_locked: _LOGGER.debug("Attempting to acquire lock %s on %s", lock_id, lock_filename) self._acquire() if self.is_locked: _LOGGER.debug("Lock %s acquired on %s", lock_id, lock_filename) break elif 0 <= timeout < time.time() - start_time: _LOGGER.debug("Timeout on acquiring lock %s on %s", lock_id, lock_filename) raise Timeout(self._lock_file) else: msg = "Lock %s not acquired on %s, waiting %s seconds ..." _LOGGER.debug(msg, lock_id, lock_filename, poll_interval) time.sleep(poll_interval) except BaseException: # Something did go wrong, so decrement the counter. with self._thread_lock: self._lock_counter = max(0, self._lock_counter - 1) raise return AcquireReturnProxy(lock=self) def release(self, force: bool = False) -> None: """ Releases the file lock. Please note, that the lock is only completely released, if the lock counter is 0. Also note, that the lock file itself is not automatically deleted. :param force: If true, the lock counter is ignored and the lock is released in every case/ """ with self._thread_lock: if self.is_locked: self._lock_counter -= 1 if self._lock_counter == 0 or force: lock_id, lock_filename = id(self), self._lock_file _LOGGER.debug("Attempting to release lock %s on %s", lock_id, lock_filename) self._release() self._lock_counter = 0 _LOGGER.debug("Lock %s released on %s", lock_id, lock_filename) def __enter__(self) -> "BaseFileLock": """ Acquire the lock. :return: the lock object """ self.acquire() return self def __exit__( self, exc_type: Optional[Type[BaseException]], # noqa: U100 exc_value: Optional[BaseException], # noqa: U100 traceback: Optional[TracebackType], # noqa: U100 ) -> None: """ Release the lock. :param exc_type: the exception type if raised :param exc_value: the exception value if raised :param traceback: the exception traceback if raised """ self.release() def __del__(self) -> None: """Called when the lock object is deleted.""" self.release(force=True) __all__ = [ "BaseFileLock", "AcquireReturnProxy", ] PKx"Tjj=__virtualenv__/filelock-3.4.1-py3-none-any/filelock/_error.pyclass Timeout(TimeoutError): """Raised when the lock could not be acquired in *timeout* seconds.""" def __init__(self, lock_file: str) -> None: #: The path of the file lock. self.lock_file = lock_file def __str__(self) -> str: return f"The file lock '{self.lock_file}' could not be acquired." __all__ = [ "Timeout", ] PKx"TNN<__virtualenv__/filelock-3.4.1-py3-none-any/filelock/_soft.pyimport os import sys from errno import EACCES, EEXIST, ENOENT from ._api import BaseFileLock from ._util import raise_on_exist_ro_file class SoftFileLock(BaseFileLock): """Simply watches the existence of the lock file.""" def _acquire(self) -> None: raise_on_exist_ro_file(self._lock_file) # first check for exists and read-only mode as the open will mask this case as EEXIST mode = ( os.O_WRONLY # open for writing only | os.O_CREAT | os.O_EXCL # together with above raise EEXIST if the file specified by filename exists | os.O_TRUNC # truncate the file to zero byte ) try: fd = os.open(self._lock_file, mode) except OSError as exception: if exception.errno == EEXIST: # expected if cannot lock pass elif exception.errno == ENOENT: # No such file or directory - parent directory is missing raise elif exception.errno == EACCES and sys.platform != "win32": # pragma: win32 no cover # Permission denied - parent dir is R/O raise # note windows does not allow you to make a folder r/o only files else: self._lock_file_fd = fd def _release(self) -> None: os.close(self._lock_file_fd) # type: ignore # the lock file is definitely not None self._lock_file_fd = None try: os.remove(self._lock_file) except OSError: # the file is already deleted and that's what we want pass __all__ = [ "SoftFileLock", ] PKx"TQ<__virtualenv__/filelock-3.4.1-py3-none-any/filelock/_unix.pyimport os import sys from abc import ABC from typing import cast from ._api import BaseFileLock #: a flag to indicate if the fcntl API is available has_fcntl = False if sys.platform == "win32": # pragma: win32 cover class UnixFileLock(BaseFileLock, ABC): """Uses the :func:`fcntl.flock` to hard lock the lock file on unix systems.""" else: # pragma: win32 no cover try: import fcntl except ImportError: pass else: has_fcntl = True class UnixFileLock(BaseFileLock): """Uses the :func:`fcntl.flock` to hard lock the lock file on unix systems.""" def _acquire(self) -> None: open_mode = os.O_RDWR | os.O_CREAT | os.O_TRUNC fd = os.open(self._lock_file, open_mode) try: fcntl.flock(fd, fcntl.LOCK_EX | fcntl.LOCK_NB) except OSError: os.close(fd) else: self._lock_file_fd = fd def _release(self) -> None: # Do not remove the lockfile: # https://github.com/tox-dev/py-filelock/issues/31 # https://stackoverflow.com/questions/17708885/flock-removing-locked-file-without-race-condition fd = cast(int, self._lock_file_fd) self._lock_file_fd = None fcntl.flock(fd, fcntl.LOCK_UN) os.close(fd) __all__ = [ "has_fcntl", "UnixFileLock", ] PKx"Tcjg1..<__virtualenv__/filelock-3.4.1-py3-none-any/filelock/_util.pyimport os import stat def raise_on_exist_ro_file(filename: str) -> None: try: file_stat = os.stat(filename) # use stat to do exists + can write to check without race condition except OSError: return None # swallow does not exist or other errors if file_stat.st_mtime != 0: # if os.stat returns but modification is zero that's an invalid os.stat - ignore it if not (file_stat.st_mode & stat.S_IWUSR): raise PermissionError(f"Permission denied: {filename!r}") __all__ = [ "raise_on_exist_ro_file", ] PKx"TF/+?__virtualenv__/filelock-3.4.1-py3-none-any/filelock/_windows.pyimport os import sys from abc import ABC from errno import ENOENT from typing import cast from ._api import BaseFileLock from ._util import raise_on_exist_ro_file if sys.platform == "win32": # pragma: win32 cover import msvcrt class WindowsFileLock(BaseFileLock): """Uses the :func:`msvcrt.locking` function to hard lock the lock file on windows systems.""" def _acquire(self) -> None: raise_on_exist_ro_file(self._lock_file) mode = ( os.O_RDWR # open for read and write | os.O_CREAT # create file if not exists | os.O_TRUNC # truncate file if not empty ) try: fd = os.open(self._lock_file, mode) except OSError as exception: if exception.errno == ENOENT: # No such file or directory raise else: try: msvcrt.locking(fd, msvcrt.LK_NBLCK, 1) except OSError: os.close(fd) else: self._lock_file_fd = fd def _release(self) -> None: fd = cast(int, self._lock_file_fd) self._lock_file_fd = None msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) os.close(fd) try: os.remove(self._lock_file) # Probably another instance of the application hat acquired the file lock. except OSError: pass else: # pragma: win32 no cover class WindowsFileLock(BaseFileLock, ABC): """Uses the :func:`msvcrt.locking` function to hard lock the lock file on windows systems.""" __all__ = [ "WindowsFileLock", ] PKx"T<__virtualenv__/filelock-3.4.1-py3-none-any/filelock/py.typedPKx"TAzM>__virtualenv__/filelock-3.4.1-py3-none-any/filelock/version.py# coding: utf-8 # file generated by setuptools_scm # don't change, don't track in version control version = '3.4.1' version_tuple = (3, 4, 1) PKx"TaK__virtualenv__/filelock-3.4.1-py3-none-any/filelock-3.4.1.dist-info/LICENSEThis is free and unencumbered software released into the public domain. Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. For more information, please refer to PKx"T6o- - L__virtualenv__/filelock-3.4.1-py3-none-any/filelock-3.4.1.dist-info/METADATAMetadata-Version: 2.1 Name: filelock Version: 3.4.1 Summary: A platform independent file lock. Home-page: https://github.com/tox-dev/py-filelock Author: Benedikt Schmitt Author-email: benedikt@benediktschmitt.de License: Unlicense Download-URL: https://github.com/tox-dev/py-filelock/archive/main.zip Project-URL: Source, https://github.com/tox-dev/py-filelock Project-URL: Tracker, https://github.com/tox-dev/py-filelock/issues Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: Public Domain Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Topic :: Internet Classifier: Topic :: Software Development :: Libraries Classifier: Topic :: System Requires-Python: >=3.6 Description-Content-Type: text/markdown License-File: LICENSE Provides-Extra: docs Requires-Dist: furo (>=2021.8.17b43) ; extra == 'docs' Requires-Dist: sphinx (>=4.1) ; extra == 'docs' Requires-Dist: sphinx-autodoc-typehints (>=1.12) ; extra == 'docs' Provides-Extra: testing Requires-Dist: covdefaults (>=1.2.0) ; extra == 'testing' Requires-Dist: coverage (>=4) ; extra == 'testing' Requires-Dist: pytest (>=4) ; extra == 'testing' Requires-Dist: pytest-cov ; extra == 'testing' Requires-Dist: pytest-timeout (>=1.4.2) ; extra == 'testing' # py-filelock [![PyPI](https://img.shields.io/pypi/v/filelock?style=flat-square)](https://pypi.org/project/filelock/) [![Supported Python versions](https://img.shields.io/pypi/pyversions/filelock.svg)](https://pypi.org/project/filelock/) [![Documentation status](https://readthedocs.org/projects/py-filelock/badge/?version=latest&style=flat-square)](https://py-filelock.readthedocs.io/en/latest/?badge=latest) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Downloads](https://pepy.tech/badge/filelock/month)](https://pepy.tech/project/filelock/month) [![check](https://github.com/tox-dev/py-filelock/actions/workflows/check.yml/badge.svg)](https://github.com/tox-dev/py-filelock/actions/workflows/check.yml) For more information checkout the [official documentation](https://py-filelock.readthedocs.io/en/latest/api.html). PKx"Th\\I__virtualenv__/filelock-3.4.1-py3-none-any/filelock-3.4.1.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.1) Root-Is-Purelib: true Tag: py3-none-any PKx"Tz1 Q__virtualenv__/filelock-3.4.1-py3-none-any/filelock-3.4.1.dist-info/top_level.txtfilelock PKx"T2L__virtualenv__/filelock-3.4.1-py3-none-any/filelock-3.4.1.dist-info/zip-safe PKx"TGzyyJ__virtualenv__/filelock-3.4.1-py3-none-any/filelock-3.4.1.dist-info/RECORDfilelock/__init__.py,sha256=7hmdv-2sYVASn1w0t5rz7z_hFFBNB6FVRNrWzFLkrj8,1234 filelock/_api.py,sha256=lkOUujw0GeYHMwHEjE1yK0t1Y19bP6p3QHlsZZucXeg,8382 filelock/_error.py,sha256=qwsseugOVv0iCPvuXvMXrACZcvRotWAfYvj3mfnZJ5o,362 filelock/_soft.py,sha256=9j4inHvP5J_SO2DLTd6XC3M_YYSgElT8gwMEH2hNmbw,1614 filelock/_unix.py,sha256=45X8gtLJ57gB48V2gabjXcm5lfT2K9kU2XzmuaR7OJI,1417 filelock/_util.py,sha256=IBHrdchoxK4-IdfYjhrOgaann1LV2YBfbWlU_YQNY_M,558 filelock/_windows.py,sha256=tl-4kiluPwXLwL8bKVdk_lPvC38UuAOJOCRjoN9f8oo,1729 filelock/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 filelock/version.py,sha256=zHXm3XQi2EWYtoIpHxvLNsl9D5iyCZdioisweKeZqXI,142 filelock-3.4.1.dist-info/LICENSE,sha256=iNm062BXnBkew5HKBMFhMFctfu3EqG2qWL8oxuFMm80,1210 filelock-3.4.1.dist-info/METADATA,sha256=9GPiAVYZ9vKpYP9WKF2279KpLsOiXNWkjXFvbQT4loA,2605 filelock-3.4.1.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92 filelock-3.4.1.dist-info/top_level.txt,sha256=NDrf9i5BNogz4hEdsr6Hi7Ws3TlSSKY4Q2Y9_-i2GwU,9 filelock-3.4.1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 filelock-3.4.1.dist-info/RECORD,, PKx"T,,C__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock/__init__.py""" A platform independent file lock that supports the with-statement. .. autodata:: filelock.__version__ :no-value: """ import sys import warnings from ._api import AcquireReturnProxy, BaseFileLock from ._error import Timeout from ._soft import SoftFileLock from ._unix import UnixFileLock, has_fcntl from ._windows import WindowsFileLock from .version import version #: version of the project as a string __version__ = version if sys.platform == "win32": _FileLock = WindowsFileLock elif has_fcntl: _FileLock = UnixFileLock else: _FileLock = SoftFileLock if warnings is not None: warnings.warn("only soft file lock is available") #: Alias for the lock, which should be used for the current platform. On Windows, this is an alias for # :class:`WindowsFileLock`, on Unix for :class:`UnixFileLock` and otherwise for :class:`SoftFileLock`. FileLock = _FileLock __all__ = [ "__version__", "FileLock", "SoftFileLock", "WindowsFileLock", "UnixFileLock", "BaseFileLock", "Timeout", "AcquireReturnProxy", ] PKx"Tpޮl>>?__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock/_api.pyimport logging import time from threading import Lock from ._error import Timeout _LOGGER = logging.getLogger("filelock") _LOGGER.setLevel(logging.DEBUG) # This is a helper class which is returned by :meth:`BaseFileLock.acquire` and wraps the lock to make sure __enter__ # is not called twice when entering the with statement. If we would simply return *self*, the lock would be acquired # again in the *__enter__* method of the BaseFileLock, but not released again automatically. issue #37 (memory leak) class AcquireReturnProxy(object): """A context aware object that will release the lock file when exiting.""" def __init__(self, lock): self.lock = lock def __enter__(self): return self.lock def __exit__(self, exc_type, exc_value, traceback): # noqa: U100 self.lock.release() class BaseFileLock(object): """Abstract base class for a file lock object.""" def __init__(self, lock_file, timeout=-1): """ Create a new lock object. :param lock_file: path to the file :param timeout: default timeout when acquiring the lock. It will be used as fallback value in the acquire method, if no timeout value (``None``) is given. If you want to disable the timeout, set it to a negative value. A timeout of 0 means, that there is exactly one attempt to acquire the file lock. """ # The path to the lock file. self._lock_file = lock_file # The file descriptor for the *_lock_file* as it is returned by the os.open() function. # This file lock is only NOT None, if the object currently holds the lock. self._lock_file_fd = None # The default timeout value. self.timeout = timeout # We use this lock primarily for the lock counter. self._thread_lock = Lock() # The lock counter is used for implementing the nested locking mechanism. Whenever the lock is acquired, the # counter is increased and the lock is only released, when this value is 0 again. self._lock_counter = 0 @property def lock_file(self): """:return: path to the lock file""" return self._lock_file @property def timeout(self): """ :return: the default timeout value .. versionadded:: 2.0.0 """ return self._timeout @timeout.setter def timeout(self, value): """ Change the default timeout value. :param value: the new value """ self._timeout = float(value) def _acquire(self): """If the file lock could be acquired, self._lock_file_fd holds the file descriptor of the lock file.""" raise NotImplementedError def _release(self): """Releases the lock and sets self._lock_file_fd to None.""" raise NotImplementedError @property def is_locked(self): """ :return: A boolean indicating if the lock file is holding the lock currently. .. versionchanged:: 2.0.0 This was previously a method and is now a property. """ return self._lock_file_fd is not None def acquire(self, timeout=None, poll_intervall=0.05): """ Try to acquire the file lock. :param timeout: maximum wait time for acquiring the lock, ``None`` means use the default :attr:`~timeout` is and if ``timeout < 0``, there is no timeout and this method will block until the lock could be acquired :param poll_intervall: interval of trying to acquire the lock file :raises Timeout: if fails to acquire lock within the timeout period :return: a context object that will unlock the file when the context is exited .. code-block:: python # You can use this method in the context manager (recommended) with lock.acquire(): pass # Or use an equivalent try-finally construct: lock.acquire() try: pass finally: lock.release() .. versionchanged:: 2.0.0 This method returns now a *proxy* object instead of *self*, so that it can be used in a with statement without side effects. """ # Use the default timeout, if no timeout is provided. if timeout is None: timeout = self.timeout # Increment the number right at the beginning. We can still undo it, if something fails. with self._thread_lock: self._lock_counter += 1 lock_id = id(self) lock_filename = self._lock_file start_time = time.time() try: while True: with self._thread_lock: if not self.is_locked: _LOGGER.debug("Attempting to acquire lock %s on %s", lock_id, lock_filename) self._acquire() if self.is_locked: _LOGGER.debug("Lock %s acquired on %s", lock_id, lock_filename) break elif 0 <= timeout < time.time() - start_time: _LOGGER.debug("Timeout on acquiring lock %s on %s", lock_id, lock_filename) raise Timeout(self._lock_file) else: msg = "Lock %s not acquired on %s, waiting %s seconds ..." _LOGGER.debug(msg, lock_id, lock_filename, poll_intervall) time.sleep(poll_intervall) except BaseException: # Something did go wrong, so decrement the counter. with self._thread_lock: self._lock_counter = max(0, self._lock_counter - 1) raise return AcquireReturnProxy(lock=self) def release(self, force=False): """ Releases the file lock. Please note, that the lock is only completely released, if the lock counter is 0. Also note, that the lock file itself is not automatically deleted. :param force: If true, the lock counter is ignored and the lock is released in every case/ """ with self._thread_lock: if self.is_locked: self._lock_counter -= 1 if self._lock_counter == 0 or force: lock_id, lock_filename = id(self), self._lock_file _LOGGER.debug("Attempting to release lock %s on %s", lock_id, lock_filename) self._release() self._lock_counter = 0 _LOGGER.debug("Lock %s released on %s", lock_id, lock_filename) def __enter__(self): """ Acquire the lock. :return: the lock object """ self.acquire() return self def __exit__(self, exc_type, exc_value, traceback): # noqa: U100 """ Release the lock. :param exc_type: the exception type if raised :param exc_value: the exception value if raised :param traceback: the exception traceback if raised """ self.release() def __del__(self): """Called when the lock object is deleted.""" self.release(force=True) __all__ = [ "BaseFileLock", "AcquireReturnProxy", ] PKx"TjA__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock/_error.pyimport sys if sys.version[0] == 3: TimeoutError = TimeoutError else: TimeoutError = OSError class Timeout(TimeoutError): """Raised when the lock could not be acquired in *timeout* seconds.""" def __init__(self, lock_file): #: The path of the file lock. self.lock_file = lock_file def __str__(self): return "The file lock '{}' could not be acquired.".format(self.lock_file) __all__ = [ "Timeout", ] PKx"Ta@__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock/_soft.pyimport os import sys from errno import EACCES, EEXIST, ENOENT from ._api import BaseFileLock from ._util import raise_on_exist_ro_file class SoftFileLock(BaseFileLock): """Simply watches the existence of the lock file.""" def _acquire(self): raise_on_exist_ro_file(self._lock_file) # first check for exists and read-only mode as the open will mask this case as EEXIST mode = ( os.O_WRONLY # open for writing only | os.O_CREAT | os.O_EXCL # together with above raise EEXIST if the file specified by filename exists | os.O_TRUNC # truncate the file to zero byte ) try: fd = os.open(self._lock_file, mode) except OSError as exception: if exception.errno == EEXIST: # expected if cannot lock pass elif exception.errno == ENOENT: # No such file or directory - parent directory is missing raise elif exception.errno == EACCES and sys.platform != "win32": # Permission denied - parent dir is R/O raise # note windows does not allow you to make a folder r/o only files else: self._lock_file_fd = fd def _release(self): os.close(self._lock_file_fd) self._lock_file_fd = None try: os.remove(self._lock_file) except OSError: # the file is already deleted and that's what we want pass __all__ = [ "SoftFileLock", ] PKx"T&.55@__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock/_unix.pyimport os from ._api import BaseFileLock try: import fcntl except ImportError: fcntl = None #: a flag to indicate if the fcntl API is available has_fcntl = fcntl is not None class UnixFileLock(BaseFileLock): """Uses the :func:`fcntl.flock` to hard lock the lock file on unix systems.""" def _acquire(self): open_mode = os.O_RDWR | os.O_CREAT | os.O_TRUNC fd = os.open(self._lock_file, open_mode) try: fcntl.flock(fd, fcntl.LOCK_EX | fcntl.LOCK_NB) except (OSError, IOError): # noqa: B014 # IOError is not OSError on python 2 os.close(fd) else: self._lock_file_fd = fd def _release(self): # Do not remove the lockfile: # https://github.com/tox-dev/py-filelock/issues/31 # https://stackoverflow.com/questions/17708885/flock-removing-locked-file-without-race-condition fd = self._lock_file_fd self._lock_file_fd = None fcntl.flock(fd, fcntl.LOCK_UN) os.close(fd) __all__ = [ "has_fcntl", "UnixFileLock", ] PKx"Ttd|@__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock/_util.pyimport os import stat import sys PermissionError = PermissionError if sys.version_info[0] == 3 else OSError def raise_on_exist_ro_file(filename): try: file_stat = os.stat(filename) # use stat to do exists + can write to check without race condition except OSError: return None # swallow does not exist or other errors if file_stat.st_mtime != 0: # if os.stat returns but modification is zero that's an invalid os.stat - ignore it if not (file_stat.st_mode & stat.S_IWUSR): raise PermissionError("Permission denied: {!r}".format(filename)) __all__ = [ "raise_on_exist_ro_file", "PermissionError", ] PKx"TfdttC__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock/_windows.pyimport os from errno import ENOENT from ._api import BaseFileLock from ._util import raise_on_exist_ro_file try: import msvcrt except ImportError: msvcrt = None class WindowsFileLock(BaseFileLock): """Uses the :func:`msvcrt.locking` function to hard lock the lock file on windows systems.""" def _acquire(self): raise_on_exist_ro_file(self._lock_file) mode = ( os.O_RDWR # open for read and write | os.O_CREAT # create file if not exists | os.O_TRUNC # truncate file if not empty ) try: fd = os.open(self._lock_file, mode) except OSError as exception: if exception.errno == ENOENT: # No such file or directory raise else: try: msvcrt.locking(fd, msvcrt.LK_NBLCK, 1) except (OSError, IOError): # noqa: B014 # IOError is not OSError on python 2 os.close(fd) else: self._lock_file_fd = fd def _release(self): fd = self._lock_file_fd self._lock_file_fd = None msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) os.close(fd) try: os.remove(self._lock_file) # Probably another instance of the application hat acquired the file lock. except OSError: pass __all__ = [ "WindowsFileLock", ] PKx"TsB__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock/version.py# coding: utf-8 # file generated by setuptools_scm # don't change, don't track in version control version = '3.2.1' version_tuple = (3, 2, 1) PKx"TaO__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock-3.2.1.dist-info/LICENSEThis is free and unencumbered software released into the public domain. Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. For more information, please refer to PKx"T w w P__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock-3.2.1.dist-info/METADATAMetadata-Version: 2.1 Name: filelock Version: 3.2.1 Summary: A platform independent file lock. Home-page: https://github.com/tox-dev/py-filelock Author: Benedikt Schmitt Author-email: benedikt@benediktschmitt.de License: Unlicense Download-URL: https://github.com/tox-dev/py-filelock/archive/main.zip Project-URL: Source, https://github.com/tox-dev/py-filelock Project-URL: Tracker, https://github.com/tox-dev/py-filelock/issues Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: Public Domain Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Topic :: Internet Classifier: Topic :: Software Development :: Libraries Classifier: Topic :: System Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7 Description-Content-Type: text/markdown License-File: LICENSE Provides-Extra: docs Requires-Dist: furo (>=2021.8.17b43) ; extra == 'docs' Requires-Dist: sphinx (>=4.1) ; extra == 'docs' Requires-Dist: sphinx-autodoc-typehints (>=1.12) ; extra == 'docs' Provides-Extra: testing Requires-Dist: coverage (>=4) ; extra == 'testing' Requires-Dist: pytest (>=4) ; extra == 'testing' Requires-Dist: pytest-cov ; extra == 'testing' Requires-Dist: pytest-timeout (>=1.4.2) ; extra == 'testing' # py-filelock [![PyPI](https://img.shields.io/pypi/v/filelock?style=flat-square)](https://pypi.org/project/filelock/) [![Supported Python versions](https://img.shields.io/pypi/pyversions/filelock.svg)](https://pypi.org/project/filelock/) [![Documentation status](https://readthedocs.org/projects/py-filelock/badge/?version=latest&style=flat-square)](https://py-filelock.readthedocs.io/en/latest/?badge=latest) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Downloads](https://pepy.tech/badge/filelock/month)](https://pepy.tech/project/filelock/month) [![check](https://github.com/tox-dev/py-filelock/actions/workflows/check.yml/badge.svg)](https://github.com/tox-dev/py-filelock/actions/workflows/check.yml) For more information checkout the [official documentation](https://py-filelock.readthedocs.io/en/latest/api.html). PKx"TnnM__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock-3.2.1.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.0) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any PKx"Tz1 U__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock-3.2.1.dist-info/top_level.txtfilelock PKx"T2P__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock-3.2.1.dist-info/zip-safe PKx"T733N__virtualenv__/filelock-3.2.1-py2.py3-none-any/filelock-3.2.1.dist-info/RECORDfilelock/__init__.py,sha256=C6yUtMNwqFm3x4hoD7guhgveHzNASbHdKaV4Yr5AtSk,1068 filelock/_api.py,sha256=hNztVsdkF8BTth3U34miQXg6lOEMgof7IRJQT5UMhaQ,7230 filelock/_error.py,sha256=YQupnKLnDF2D4vh37v-2nHH1IQuD-jJVvouXlt5-_nQ,453 filelock/_soft.py,sha256=DoO4LUNhG8bspfT2hLCL4aNYZSffnA_BvFiNGQWKSi0,1502 filelock/_unix.py,sha256=4cdpXvk-VeFSL6a3vzEj-o1pLQR-gnQpAnI9UixMP4A,1077 filelock/_util.py,sha256=C_gp_VwMxQpoERPsqLMrGbSDQ-TzX-4HGpXBj4a06kM,663 filelock/_windows.py,sha256=nMBnpvvtdfTrJI5xOzvo97YS4YfToEbuw828IFSBylU,1396 filelock/version.py,sha256=4I8Z1zXP0BuD2tmpxk1f03ht75j87IjJzjHHM8gkWoA,142 filelock-3.2.1.dist-info/LICENSE,sha256=iNm062BXnBkew5HKBMFhMFctfu3EqG2qWL8oxuFMm80,1210 filelock-3.2.1.dist-info/METADATA,sha256=YikTOgORIpiSVZRco3RP3wazYZkBbvTDTuGBP3euPpk,2679 filelock-3.2.1.dist-info/WHEEL,sha256=WzZ8cwjh8l0jtULNjYq1Hpr-WCqCRgPr--TX4P5I1Wo,110 filelock-3.2.1.dist-info/top_level.txt,sha256=NDrf9i5BNogz4hEdsr6Hi7Ws3TlSSKY4Q2Y9_-i2GwU,9 filelock-3.2.1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 filelock-3.2.1.dist-info/RECORD,, PKx"TH1H1G__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs/__init__.py""" Utilities for determining application-specific dirs. See for details and usage. """ from __future__ import annotations import importlib import os import sys from pathlib import Path from typing import TYPE_CHECKING if TYPE_CHECKING: from typing_extensions import Literal # pragma: no cover from .api import PlatformDirsABC from .version import __version__, __version_info__ def _set_platform_dir_class() -> type[PlatformDirsABC]: if os.getenv("ANDROID_DATA") == "/data" and os.getenv("ANDROID_ROOT") == "/system": module, name = "platformdirs.android", "Android" elif sys.platform == "win32": module, name = "platformdirs.windows", "Windows" elif sys.platform == "darwin": module, name = "platformdirs.macos", "MacOS" else: module, name = "platformdirs.unix", "Unix" result: type[PlatformDirsABC] = getattr(importlib.import_module(module), name) return result PlatformDirs = _set_platform_dir_class() #: Currently active platform AppDirs = PlatformDirs #: Backwards compatibility with appdirs def user_data_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: data directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_data_dir def site_data_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, multipath: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :returns: data directory shared by users """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, multipath=multipath).site_data_dir def user_config_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: config directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_config_dir def site_config_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, multipath: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :returns: config directory shared by the users """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, multipath=multipath).site_config_dir def user_cache_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, opinion: bool = True, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: cache directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_cache_dir def user_state_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: state directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_state_dir def user_log_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, opinion: bool = True, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: log directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_log_dir def user_documents_dir() -> str: """ :returns: documents directory tied to the user """ return PlatformDirs().user_documents_dir def user_runtime_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, opinion: bool = True, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :returns: runtime directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_runtime_dir def user_data_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: data path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_data_path def site_data_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, multipath: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `multipath `. :returns: data path shared by users """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, multipath=multipath).site_data_path def user_config_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: config path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_config_path def site_config_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, multipath: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :returns: config path shared by the users """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, multipath=multipath).site_config_path def user_cache_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, opinion: bool = True, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: cache path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_cache_path def user_state_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: state path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_state_path def user_log_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, opinion: bool = True, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: log path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_log_path def user_documents_path() -> Path: """ :returns: documents path tied to the user """ return PlatformDirs().user_documents_path def user_runtime_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, opinion: bool = True, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :returns: runtime path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_runtime_path __all__ = [ "__version__", "__version_info__", "PlatformDirs", "AppDirs", "PlatformDirsABC", "user_data_dir", "user_config_dir", "user_cache_dir", "user_state_dir", "user_log_dir", "user_documents_dir", "user_runtime_dir", "site_data_dir", "site_config_dir", "user_data_path", "user_config_path", "user_cache_path", "user_state_path", "user_log_path", "user_documents_path", "user_runtime_path", "site_data_path", "site_config_path", ] PKx"TZ7G__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs/__main__.pyfrom __future__ import annotations from platformdirs import PlatformDirs, __version__ PROPS = ( "user_data_dir", "user_config_dir", "user_cache_dir", "user_state_dir", "user_log_dir", "user_documents_dir", "user_runtime_dir", "site_data_dir", "site_config_dir", ) def main() -> None: app_name = "MyApp" app_author = "MyCompany" print(f"-- platformdirs {__version__} --") print("-- app dirs (with optional 'version')") dirs = PlatformDirs(app_name, app_author, version="1.0") for prop in PROPS: print(f"{prop}: {getattr(dirs, prop)}") print("\n-- app dirs (without optional 'version')") dirs = PlatformDirs(app_name, app_author) for prop in PROPS: print(f"{prop}: {getattr(dirs, prop)}") print("\n-- app dirs (without optional 'appauthor')") dirs = PlatformDirs(app_name) for prop in PROPS: print(f"{prop}: {getattr(dirs, prop)}") print("\n-- app dirs (with disabled 'appauthor')") dirs = PlatformDirs(app_name, appauthor=False) for prop in PROPS: print(f"{prop}: {getattr(dirs, prop)}") if __name__ == "__main__": main() PKx"T؋F__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs/android.pyfrom __future__ import annotations import os import re import sys from functools import lru_cache from .api import PlatformDirsABC class Android(PlatformDirsABC): """ Follows the guidance `from here `_. Makes use of the `appname ` and `version `. """ @property def user_data_dir(self) -> str: """:return: data directory tied to the user, e.g. ``/data/user///files/``""" return self._append_app_name_and_version(_android_folder(), "files") @property def site_data_dir(self) -> str: """:return: data directory shared by users, same as `user_data_dir`""" return self.user_data_dir @property def user_config_dir(self) -> str: """ :return: config directory tied to the user, e.g. ``/data/user///shared_prefs/`` """ return self._append_app_name_and_version(_android_folder(), "shared_prefs") @property def site_config_dir(self) -> str: """:return: config directory shared by the users, same as `user_config_dir`""" return self.user_config_dir @property def user_cache_dir(self) -> str: """:return: cache directory tied to the user, e.g. e.g. ``/data/user///cache/``""" return self._append_app_name_and_version(_android_folder(), "cache") @property def user_state_dir(self) -> str: """:return: state directory tied to the user, same as `user_data_dir`""" return self.user_data_dir @property def user_log_dir(self) -> str: """ :return: log directory tied to the user, same as `user_cache_dir` if not opinionated else ``log`` in it, e.g. ``/data/user///cache//log`` """ path = self.user_cache_dir if self.opinion: path = os.path.join(path, "log") return path @property def user_documents_dir(self) -> str: """ :return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents`` """ return _android_documents_folder() @property def user_runtime_dir(self) -> str: """ :return: runtime directory tied to the user, same as `user_cache_dir` if not opinionated else ``tmp`` in it, e.g. ``/data/user///cache//tmp`` """ path = self.user_cache_dir if self.opinion: path = os.path.join(path, "tmp") return path @lru_cache(maxsize=1) def _android_folder() -> str: """:return: base folder for the Android OS""" try: # First try to get path to android app via pyjnius from jnius import autoclass Context = autoclass("android.content.Context") # noqa: N806 result: str = Context.getFilesDir().getParentFile().getAbsolutePath() except Exception: # if fails find an android folder looking path on the sys.path pattern = re.compile(r"/data/(data|user/\d+)/(.+)/files") for path in sys.path: if pattern.match(path): result = path.split("/files")[0] break else: raise OSError("Cannot find path to android app folder") return result @lru_cache(maxsize=1) def _android_documents_folder() -> str: """:return: documents folder for the Android OS""" # Get directories with pyjnius try: from jnius import autoclass Context = autoclass("android.content.Context") # noqa: N806 Environment = autoclass("android.os.Environment") # noqa: N806 documents_dir: str = Context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath() except Exception: documents_dir = "/storage/emulated/0/Documents" return documents_dir __all__ = [ "Android", ] PKx"T Vp..B__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs/api.pyfrom __future__ import annotations import os import sys from abc import ABC, abstractmethod from pathlib import Path if sys.version_info >= (3, 8): # pragma: no branch from typing import Literal # pragma: no cover class PlatformDirsABC(ABC): """ Abstract base class for platform directories. """ def __init__( self, appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, multipath: bool = False, opinion: bool = True, ): """ Create a new platform directory. :param appname: See `appname`. :param appauthor: See `appauthor`. :param version: See `version`. :param roaming: See `roaming`. :param multipath: See `multipath`. :param opinion: See `opinion`. """ self.appname = appname #: The name of application. self.appauthor = appauthor """ The name of the app author or distributing body for this application. Typically, it is the owning company name. Defaults to `appname`. You may pass ``False`` to disable it. """ self.version = version """ An optional version path element to append to the path. You might want to use this if you want multiple versions of your app to be able to run independently. If used, this would typically be ``.``. """ self.roaming = roaming """ Whether to use the roaming appdata directory on Windows. That means that for users on a Windows network setup for roaming profiles, this user data will be synced on login (see `here `_). """ self.multipath = multipath """ An optional parameter only applicable to Unix/Linux which indicates that the entire list of data dirs should be returned. By default, the first item would only be returned. """ self.opinion = opinion #: A flag to indicating to use opinionated values. def _append_app_name_and_version(self, *base: str) -> str: params = list(base[1:]) if self.appname: params.append(self.appname) if self.version: params.append(self.version) return os.path.join(base[0], *params) @property @abstractmethod def user_data_dir(self) -> str: """:return: data directory tied to the user""" @property @abstractmethod def site_data_dir(self) -> str: """:return: data directory shared by users""" @property @abstractmethod def user_config_dir(self) -> str: """:return: config directory tied to the user""" @property @abstractmethod def site_config_dir(self) -> str: """:return: config directory shared by the users""" @property @abstractmethod def user_cache_dir(self) -> str: """:return: cache directory tied to the user""" @property @abstractmethod def user_state_dir(self) -> str: """:return: state directory tied to the user""" @property @abstractmethod def user_log_dir(self) -> str: """:return: log directory tied to the user""" @property @abstractmethod def user_documents_dir(self) -> str: """:return: documents directory tied to the user""" @property @abstractmethod def user_runtime_dir(self) -> str: """:return: runtime directory tied to the user""" @property def user_data_path(self) -> Path: """:return: data path tied to the user""" return Path(self.user_data_dir) @property def site_data_path(self) -> Path: """:return: data path shared by users""" return Path(self.site_data_dir) @property def user_config_path(self) -> Path: """:return: config path tied to the user""" return Path(self.user_config_dir) @property def site_config_path(self) -> Path: """:return: config path shared by the users""" return Path(self.site_config_dir) @property def user_cache_path(self) -> Path: """:return: cache path tied to the user""" return Path(self.user_cache_dir) @property def user_state_path(self) -> Path: """:return: state path tied to the user""" return Path(self.user_state_dir) @property def user_log_path(self) -> Path: """:return: log path tied to the user""" return Path(self.user_log_dir) @property def user_documents_path(self) -> Path: """:return: documents path tied to the user""" return Path(self.user_documents_dir) @property def user_runtime_path(self) -> Path: """:return: runtime path tied to the user""" return Path(self.user_runtime_dir) PKx"TK _ _ D__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs/macos.pyfrom __future__ import annotations import os from .api import PlatformDirsABC class MacOS(PlatformDirsABC): """ Platform directories for the macOS operating system. Follows the guidance from `Apple documentation `_. Makes use of the `appname ` and `version `. """ @property def user_data_dir(self) -> str: """:return: data directory tied to the user, e.g. ``~/Library/Application Support/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Application Support/")) @property def site_data_dir(self) -> str: """:return: data directory shared by users, e.g. ``/Library/Application Support/$appname/$version``""" return self._append_app_name_and_version("/Library/Application Support") @property def user_config_dir(self) -> str: """:return: config directory tied to the user, e.g. ``~/Library/Preferences/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Preferences/")) @property def site_config_dir(self) -> str: """:return: config directory shared by the users, e.g. ``/Library/Preferences/$appname``""" return self._append_app_name_and_version("/Library/Preferences") @property def user_cache_dir(self) -> str: """:return: cache directory tied to the user, e.g. ``~/Library/Caches/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches")) @property def user_state_dir(self) -> str: """:return: state directory tied to the user, same as `user_data_dir`""" return self.user_data_dir @property def user_log_dir(self) -> str: """:return: log directory tied to the user, e.g. ``~/Library/Logs/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Logs")) @property def user_documents_dir(self) -> str: """:return: documents directory tied to the user, e.g. ``~/Documents``""" return os.path.expanduser("~/Documents") @property def user_runtime_dir(self) -> str: """:return: runtime directory tied to the user, e.g. ``~/Library/Caches/TemporaryItems/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches/TemporaryItems")) __all__ = [ "MacOS", ] PKx"TD__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs/py.typedPKx"TC__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs/unix.pyfrom __future__ import annotations import os import sys from configparser import ConfigParser from pathlib import Path from .api import PlatformDirsABC if sys.platform.startswith("linux"): # pragma: no branch # no op check, only to please the type checker from os import getuid else: def getuid() -> int: raise RuntimeError("should only be used on Linux") class Unix(PlatformDirsABC): """ On Unix/Linux, we follow the `XDG Basedir Spec `_. The spec allows overriding directories with environment variables. The examples show are the default values, alongside the name of the environment variable that overrides them. Makes use of the `appname `, `version `, `multipath `, `opinion `. """ @property def user_data_dir(self) -> str: """ :return: data directory tied to the user, e.g. ``~/.local/share/$appname/$version`` or ``$XDG_DATA_HOME/$appname/$version`` """ path = os.environ.get("XDG_DATA_HOME", "") if not path.strip(): path = os.path.expanduser("~/.local/share") return self._append_app_name_and_version(path) @property def site_data_dir(self) -> str: """ :return: data directories shared by users (if `multipath ` is enabled and ``XDG_DATA_DIR`` is set and a multi path the response is also a multi path separated by the OS path separator), e.g. ``/usr/local/share/$appname/$version`` or ``/usr/share/$appname/$version`` """ # XDG default for $XDG_DATA_DIRS; only first, if multipath is False path = os.environ.get("XDG_DATA_DIRS", "") if not path.strip(): path = f"/usr/local/share{os.pathsep}/usr/share" return self._with_multi_path(path) def _with_multi_path(self, path: str) -> str: path_list = path.split(os.pathsep) if not self.multipath: path_list = path_list[0:1] path_list = [self._append_app_name_and_version(os.path.expanduser(p)) for p in path_list] return os.pathsep.join(path_list) @property def user_config_dir(self) -> str: """ :return: config directory tied to the user, e.g. ``~/.config/$appname/$version`` or ``$XDG_CONFIG_HOME/$appname/$version`` """ path = os.environ.get("XDG_CONFIG_HOME", "") if not path.strip(): path = os.path.expanduser("~/.config") return self._append_app_name_and_version(path) @property def site_config_dir(self) -> str: """ :return: config directories shared by users (if `multipath ` is enabled and ``XDG_DATA_DIR`` is set and a multi path the response is also a multi path separated by the OS path separator), e.g. ``/etc/xdg/$appname/$version`` """ # XDG default for $XDG_CONFIG_DIRS only first, if multipath is False path = os.environ.get("XDG_CONFIG_DIRS", "") if not path.strip(): path = "/etc/xdg" return self._with_multi_path(path) @property def user_cache_dir(self) -> str: """ :return: cache directory tied to the user, e.g. ``~/.cache/$appname/$version`` or ``~/$XDG_CACHE_HOME/$appname/$version`` """ path = os.environ.get("XDG_CACHE_HOME", "") if not path.strip(): path = os.path.expanduser("~/.cache") return self._append_app_name_and_version(path) @property def user_state_dir(self) -> str: """ :return: state directory tied to the user, e.g. ``~/.local/state/$appname/$version`` or ``$XDG_STATE_HOME/$appname/$version`` """ path = os.environ.get("XDG_STATE_HOME", "") if not path.strip(): path = os.path.expanduser("~/.local/state") return self._append_app_name_and_version(path) @property def user_log_dir(self) -> str: """ :return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``log`` in it """ path = self.user_cache_dir if self.opinion: path = os.path.join(path, "log") return path @property def user_documents_dir(self) -> str: """ :return: documents directory tied to the user, e.g. ``~/Documents`` """ documents_dir = _get_user_dirs_folder("XDG_DOCUMENTS_DIR") if documents_dir is None: documents_dir = os.environ.get("XDG_DOCUMENTS_DIR", "").strip() if not documents_dir: documents_dir = os.path.expanduser("~/Documents") return documents_dir @property def user_runtime_dir(self) -> str: """ :return: runtime directory tied to the user, e.g. ``/run/user/$(id -u)/$appname/$version`` or ``$XDG_RUNTIME_DIR/$appname/$version`` """ path = os.environ.get("XDG_RUNTIME_DIR", "") if not path.strip(): path = f"/run/user/{getuid()}" return self._append_app_name_and_version(path) @property def site_data_path(self) -> Path: """:return: data path shared by users. Only return first item, even if ``multipath`` is set to ``True``""" return self._first_item_as_path_if_multipath(self.site_data_dir) @property def site_config_path(self) -> Path: """:return: config path shared by the users. Only return first item, even if ``multipath`` is set to ``True``""" return self._first_item_as_path_if_multipath(self.site_config_dir) def _first_item_as_path_if_multipath(self, directory: str) -> Path: if self.multipath: # If multipath is True, the first path is returned. directory = directory.split(os.pathsep)[0] return Path(directory) def _get_user_dirs_folder(key: str) -> str | None: """Return directory from user-dirs.dirs config file. See https://freedesktop.org/wiki/Software/xdg-user-dirs/""" user_dirs_config_path = os.path.join(Unix().user_config_dir, "user-dirs.dirs") if os.path.exists(user_dirs_config_path): parser = ConfigParser() with open(user_dirs_config_path) as stream: # Add fake section header, so ConfigParser doesn't complain parser.read_string(f"[top]\n{stream.read()}") if key not in parser["top"]: return None path = parser["top"][key].strip('"') # Handle relative home paths path = path.replace("$HOME", os.path.expanduser("~")) return path return None __all__ = [ "Unix", ] PKx"TPPF__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs/version.py""" Version information """ __version__ = "2.4.1" __version_info__ = (2, 4, 1) PKx"Tjo''F__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs/windows.pyfrom __future__ import annotations import ctypes import os from functools import lru_cache from typing import Callable from .api import PlatformDirsABC class Windows(PlatformDirsABC): """`MSDN on where to store app data files `_. Makes use of the `appname `, `appauthor `, `version `, `roaming `, `opinion `.""" @property def user_data_dir(self) -> str: """ :return: data directory tied to the user, e.g. ``%USERPROFILE%\\AppData\\Local\\$appauthor\\$appname`` (not roaming) or ``%USERPROFILE%\\AppData\\Roaming\\$appauthor\\$appname`` (roaming) """ const = "CSIDL_APPDATA" if self.roaming else "CSIDL_LOCAL_APPDATA" path = os.path.normpath(get_win_folder(const)) return self._append_parts(path) def _append_parts(self, path: str, *, opinion_value: str | None = None) -> str: params = [] if self.appname: if self.appauthor is not False: author = self.appauthor or self.appname params.append(author) params.append(self.appname) if opinion_value is not None and self.opinion: params.append(opinion_value) if self.version: params.append(self.version) return os.path.join(path, *params) @property def site_data_dir(self) -> str: """:return: data directory shared by users, e.g. ``C:\\ProgramData\\$appauthor\\$appname``""" path = os.path.normpath(get_win_folder("CSIDL_COMMON_APPDATA")) return self._append_parts(path) @property def user_config_dir(self) -> str: """:return: config directory tied to the user, same as `user_data_dir`""" return self.user_data_dir @property def site_config_dir(self) -> str: """:return: config directory shared by the users, same as `site_data_dir`""" return self.site_data_dir @property def user_cache_dir(self) -> str: """ :return: cache directory tied to the user (if opinionated with ``Cache`` folder within ``$appname``) e.g. ``%USERPROFILE%\\AppData\\Local\\$appauthor\\$appname\\Cache\\$version`` """ path = os.path.normpath(get_win_folder("CSIDL_LOCAL_APPDATA")) return self._append_parts(path, opinion_value="Cache") @property def user_state_dir(self) -> str: """:return: state directory tied to the user, same as `user_data_dir`""" return self.user_data_dir @property def user_log_dir(self) -> str: """ :return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``Logs`` in it """ path = self.user_data_dir if self.opinion: path = os.path.join(path, "Logs") return path @property def user_documents_dir(self) -> str: """ :return: documents directory tied to the user e.g. ``%USERPROFILE%\\Documents`` """ return os.path.normpath(get_win_folder("CSIDL_PERSONAL")) @property def user_runtime_dir(self) -> str: """ :return: runtime directory tied to the user, e.g. ``%USERPROFILE%\\AppData\\Local\\Temp\\$appauthor\\$appname`` """ path = os.path.normpath(os.path.join(get_win_folder("CSIDL_LOCAL_APPDATA"), "Temp")) return self._append_parts(path) def get_win_folder_from_env_vars(csidl_name: str) -> str: """Get folder from environment variables.""" if csidl_name == "CSIDL_PERSONAL": # does not have an environment name return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Documents") env_var_name = { "CSIDL_APPDATA": "APPDATA", "CSIDL_COMMON_APPDATA": "ALLUSERSPROFILE", "CSIDL_LOCAL_APPDATA": "LOCALAPPDATA", }.get(csidl_name) if env_var_name is None: raise ValueError(f"Unknown CSIDL name: {csidl_name}") result = os.environ.get(env_var_name) if result is None: raise ValueError(f"Unset environment variable: {env_var_name}") return result def get_win_folder_from_registry(csidl_name: str) -> str: """Get folder from the registry. This is a fallback technique at best. I'm not sure if using the registry for this guarantees us the correct answer for all CSIDL_* names. """ shell_folder_name = { "CSIDL_APPDATA": "AppData", "CSIDL_COMMON_APPDATA": "Common AppData", "CSIDL_LOCAL_APPDATA": "Local AppData", "CSIDL_PERSONAL": "Personal", }.get(csidl_name) if shell_folder_name is None: raise ValueError(f"Unknown CSIDL name: {csidl_name}") import winreg key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders") directory, _ = winreg.QueryValueEx(key, shell_folder_name) return str(directory) def get_win_folder_via_ctypes(csidl_name: str) -> str: """Get folder with ctypes.""" csidl_const = { "CSIDL_APPDATA": 26, "CSIDL_COMMON_APPDATA": 35, "CSIDL_LOCAL_APPDATA": 28, "CSIDL_PERSONAL": 5, }.get(csidl_name) if csidl_const is None: raise ValueError(f"Unknown CSIDL name: {csidl_name}") buf = ctypes.create_unicode_buffer(1024) windll = getattr(ctypes, "windll") # noqa: B009 # using getattr to avoid false positive with mypy type checker windll.shell32.SHGetFolderPathW(None, csidl_const, None, 0, buf) # Downgrade to short path name if it has highbit chars. if any(ord(c) > 255 for c in buf): buf2 = ctypes.create_unicode_buffer(1024) if windll.kernel32.GetShortPathNameW(buf.value, buf2, 1024): buf = buf2 return buf.value def _pick_get_win_folder() -> Callable[[str], str]: if hasattr(ctypes, "windll"): return get_win_folder_via_ctypes try: import winreg # noqa: F401 except ImportError: return get_win_folder_from_env_vars else: return get_win_folder_from_registry get_win_folder = lru_cache(maxsize=None)(_pick_get_win_folder()) __all__ = [ "Windows", ] PKx"TUHHW__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs-2.4.1.dist-info/LICENSE.txt# This is the MIT license Copyright (c) 2010 ActiveState Software Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PKx"T#bs##T__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs-2.4.1.dist-info/METADATAMetadata-Version: 2.1 Name: platformdirs Version: 2.4.1 Summary: A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir". Home-page: https://github.com/platformdirs/platformdirs Maintainer: Bernát Gábor, Julian Berman, Ofek Lev, Ronny Pfannschmidt Maintainer-email: gaborjbernat@gmail.com, Julian@GrayVines.com, oss@ofek.dev, opensource@ronnypfannschmidt.de License: MIT Project-URL: Source, https://github.com/platformdirs/platformdirs Project-URL: Tracker, https://github.com/platformdirs/platformdirs/issues Project-URL: Documentation, https://platformdirs.readthedocs.io/ Keywords: application directory log cache user Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Software Development :: Libraries :: Python Modules Requires-Python: >=3.7 Description-Content-Type: text/x-rst License-File: LICENSE.txt Provides-Extra: docs Requires-Dist: Sphinx (>=4) ; extra == 'docs' Requires-Dist: furo (>=2021.7.5b38) ; extra == 'docs' Requires-Dist: proselint (>=0.10.2) ; extra == 'docs' Requires-Dist: sphinx-autodoc-typehints (>=1.12) ; extra == 'docs' Provides-Extra: test Requires-Dist: appdirs (==1.4.4) ; extra == 'test' Requires-Dist: pytest (>=6) ; extra == 'test' Requires-Dist: pytest-cov (>=2.7) ; extra == 'test' Requires-Dist: pytest-mock (>=3.6) ; extra == 'test' The problem =========== .. image:: https://github.com/platformdirs/platformdirs/workflows/Test/badge.svg :target: https://github.com/platformdirs/platformdirs/actions?query=workflow%3ATest When writing desktop application, finding the right location to store user data and configuration varies per platform. Even for single-platform apps, there may by plenty of nuances in figuring out the right location. For example, if running on macOS, you should use:: ~/Library/Application Support/ If on Windows (at least English Win XP) that should be:: C:\Documents and Settings\\Application Data\Local Settings\\ or possibly:: C:\Documents and Settings\\Application Data\\ for `roaming profiles `_ but that is another story. On Linux (and other Unices), according to the `XDG Basedir Spec`_, it should be:: ~/.local/share/ .. _XDG Basedir Spec: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html ``platformdirs`` to the rescue ============================== This kind of thing is what the ``platformdirs`` module is for. ``platformdirs`` will help you choose an appropriate: - user data dir (``user_data_dir``) - user config dir (``user_config_dir``) - user cache dir (``user_cache_dir``) - site data dir (``site_data_dir``) - site config dir (``site_config_dir``) - user log dir (``user_log_dir``) - user documents dir (``user_documents_dir``) - user runtime dir (``user_runtime_dir``) And also: - Is a single module so other Python packages can vendor their own private copy. - Is slightly opinionated on the directory names used. Look for "OPINION" in documentation and code for when an opinion is being applied. Example output ============== On macOS: .. code-block:: pycon >>> from platformdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) '/Users/trentm/Library/Application Support/SuperApp' >>> site_data_dir(appname, appauthor) '/Library/Application Support/SuperApp' >>> user_cache_dir(appname, appauthor) '/Users/trentm/Library/Caches/SuperApp' >>> user_log_dir(appname, appauthor) '/Users/trentm/Library/Logs/SuperApp' >>> user_documents_dir() '/Users/trentm/Documents' >>> user_runtime_dir(appname, appauthor) '/Users/trentm/Library/Caches/TemporaryItems/SuperApp' On Windows 7: .. code-block:: pycon >>> from platformdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp' >>> user_data_dir(appname, appauthor, roaming=True) 'C:\\Users\\trentm\\AppData\\Roaming\\Acme\\SuperApp' >>> user_cache_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Cache' >>> user_log_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Logs' >>> user_documents_dir() 'C:\\Users\\trentm\\Documents' >>> user_runtime_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Temp\\Acme\\SuperApp' On Linux: .. code-block:: pycon >>> from platformdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) '/home/trentm/.local/share/SuperApp >>> site_data_dir(appname, appauthor) '/usr/local/share/SuperApp' >>> site_data_dir(appname, appauthor, multipath=True) '/usr/local/share/SuperApp:/usr/share/SuperApp' >>> user_cache_dir(appname, appauthor) '/home/trentm/.cache/SuperApp' >>> user_log_dir(appname, appauthor) '/home/trentm/.cache/SuperApp/log' >>> user_config_dir(appname) '/home/trentm/.config/SuperApp' >>> user_documents_dir() '/home/trentm/Documents' >>> user_runtime_dir(appname, appauthor) '/run/user/{os.getuid()}/SuperApp' >>> site_config_dir(appname) '/etc/xdg/SuperApp' >>> os.environ["XDG_CONFIG_DIRS"] = "/etc:/usr/local/etc" >>> site_config_dir(appname, multipath=True) '/etc/SuperApp:/usr/local/etc/SuperApp' On Android:: >>> from platformdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) '/data/data/com.termux/files/SuperApp' >>> user_cache_dir(appname, appauthor) '/data/data/com.termux/cache/SuperApp' >>> user_log_dir(appname, appauthor) '/data/data/com.termux/cache/SuperApp/log' >>> user_config_dir(appname) '/data/data/com.termux/shared_prefs/SuperApp' >>> user_documents_dir() '/storage/emulated/0/Documents' >>> user_runtime_dir(appname, appauthor) '/data/data/com.termux/cache/SuperApp/tmp' ``PlatformDirs`` for convenience ================================ .. code-block:: pycon >>> from platformdirs import PlatformDirs >>> dirs = PlatformDirs("SuperApp", "Acme") >>> dirs.user_data_dir '/Users/trentm/Library/Application Support/SuperApp' >>> dirs.site_data_dir '/Library/Application Support/SuperApp' >>> dirs.user_cache_dir '/Users/trentm/Library/Caches/SuperApp' >>> dirs.user_log_dir '/Users/trentm/Library/Logs/SuperApp' >>> dirs.user_documents_dir '/Users/trentm/Documents' >>> dirs.user_runtime_dir '/Users/trentm/Library/Caches/TemporaryItems/SuperApp' Per-version isolation ===================== If you have multiple versions of your app in use that you want to be able to run side-by-side, then you may want version-isolation for these dirs:: >>> from platformdirs import PlatformDirs >>> dirs = PlatformDirs("SuperApp", "Acme", version="1.0") >>> dirs.user_data_dir '/Users/trentm/Library/Application Support/SuperApp/1.0' >>> dirs.site_data_dir '/Library/Application Support/SuperApp/1.0' >>> dirs.user_cache_dir '/Users/trentm/Library/Caches/SuperApp/1.0' >>> dirs.user_log_dir '/Users/trentm/Library/Logs/SuperApp/1.0' >>> dirs.user_documents_dir '/Users/trentm/Documents' >>> dirs.user_runtime_dir '/Users/trentm/Library/Caches/TemporaryItems/SuperApp/1.0' Be wary of using this for configuration files though; you'll need to handle migrating configuration files manually. Why this Fork? ============== This repository is a friendly fork of the wonderful work started by `ActiveState `_ who created ``appdirs``, this package's ancestor. Maintaining an open source project is no easy task, particularly from within an organization, and the Python community is indebted to ``appdirs`` (and to Trent Mick and Jeff Rouse in particular) for creating an incredibly useful simple module, as evidenced by the wide number of users it has attracted over the years. Nonetheless, given the number of long-standing open issues and pull requests, and no clear path towards `ensuring that maintenance of the package would continue or grow `_, this fork was created. Contributions are most welcome. PKx"Th\\Q__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs-2.4.1.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.1) Root-Is-Purelib: true Tag: py3-none-any PKx"T;! Y__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs-2.4.1.dist-info/top_level.txtplatformdirs PKx"T2T__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs-2.4.1.dist-info/zip-safe PKx"TǽR__virtualenv__/platformdirs-2.4.1-py3-none-any/platformdirs-2.4.1.dist-info/RECORDplatformdirs/__init__.py,sha256=FmeyZCGBeARXu5KK2-QlOhznwZo1PVVj366jzQSsvvM,12616 platformdirs/__main__.py,sha256=VsC0t5m-6f0YVr96PVks93G3EDF8MSNY4KpUMvPahDA,1164 platformdirs/android.py,sha256=xhlD4NmrKCARe5lgnpBGYo4lOYxEOBOByNDNYy91gEE,4012 platformdirs/api.py,sha256=MXKHXOL3eh_-trSok-JUTjAR_zjmmKF3rjREVABjP8s,4910 platformdirs/macos.py,sha256=-3UXQewbT0yMhMdkzRXfXGAntmLIH7Qt4a9Hlf8I5_Y,2655 platformdirs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 platformdirs/unix.py,sha256=b4aVYTz0qZ50HntwOXo8r6tp82jAa3qTjxw-WlnC2yc,6910 platformdirs/version.py,sha256=bXzLJCe23FNQRQrf7ZRWKejxWnct_wft7dxdkMGT33E,80 platformdirs/windows.py,sha256=ISruopR5UGBePC0BxCxXevkZYfjJsIZc49YWU5iYfQ4,6439 platformdirs-2.4.1.dist-info/LICENSE.txt,sha256=1l7lsqNqOR6Nau_OuArlAGMEml2xS8gk7g8eusmXDlA,1096 platformdirs-2.4.1.dist-info/METADATA,sha256=QH8M9UCCXCZ4hb4wNMvSzmDiDo5R57OEjNpWwxRBrAU,9138 platformdirs-2.4.1.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92 platformdirs-2.4.1.dist-info/top_level.txt,sha256=i0Q-nUAcPabcNxrgdGr0mzOEavZ4cGml0zH0oxKEFQE,13 platformdirs-2.4.1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 platformdirs-2.4.1.dist-info/RECORD,, PKx"T`* 2 2G__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs/__init__.py""" Utilities for determining application-specific dirs. See for details and usage. """ import importlib import os import sys from pathlib import Path from typing import TYPE_CHECKING, Optional, Type, Union if TYPE_CHECKING: from typing_extensions import Literal # pragma: no cover from .api import PlatformDirsABC from .version import __version__, __version_info__ def _set_platform_dir_class() -> Type[PlatformDirsABC]: if os.getenv("ANDROID_DATA") == "/data" and os.getenv("ANDROID_ROOT") == "/system": module, name = "platformdirs.android", "Android" elif sys.platform == "win32": module, name = "platformdirs.windows", "Windows" elif sys.platform == "darwin": module, name = "platformdirs.macos", "MacOS" else: module, name = "platformdirs.unix", "Unix" result: Type[PlatformDirsABC] = getattr(importlib.import_module(module), name) return result PlatformDirs = _set_platform_dir_class() #: Currently active platform AppDirs = PlatformDirs #: Backwards compatibility with appdirs def user_data_dir( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, roaming: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: data directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_data_dir def site_data_dir( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, multipath: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :returns: data directory shared by users """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, multipath=multipath).site_data_dir def user_config_dir( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, roaming: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: config directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_config_dir def site_config_dir( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, multipath: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :returns: config directory shared by the users """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, multipath=multipath).site_config_dir def user_cache_dir( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, opinion: bool = True, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: cache directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_cache_dir def user_state_dir( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, roaming: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: state directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_state_dir def user_log_dir( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, opinion: bool = True, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: log directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_log_dir def user_documents_dir() -> str: """ :returns: documents directory tied to the user """ return PlatformDirs().user_documents_dir def user_runtime_dir( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, opinion: bool = True, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :returns: runtime directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_runtime_dir def user_data_path( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, roaming: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: data path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_data_path def site_data_path( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, multipath: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `multipath `. :returns: data path shared by users """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, multipath=multipath).site_data_path def user_config_path( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, roaming: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: config path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_config_path def site_config_path( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, multipath: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :returns: config path shared by the users """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, multipath=multipath).site_config_path def user_cache_path( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, opinion: bool = True, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: cache path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_cache_path def user_state_path( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, roaming: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: state path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_state_path def user_log_path( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, opinion: bool = True, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: log path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_log_path def user_documents_path() -> Path: """ :returns: documents path tied to the user """ return PlatformDirs().user_documents_path def user_runtime_path( appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, opinion: bool = True, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :returns: runtime path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_runtime_path __all__ = [ "__version__", "__version_info__", "PlatformDirs", "AppDirs", "PlatformDirsABC", "user_data_dir", "user_config_dir", "user_cache_dir", "user_state_dir", "user_log_dir", "user_documents_dir", "user_runtime_dir", "site_data_dir", "site_config_dir", "user_data_path", "user_config_path", "user_cache_path", "user_state_path", "user_log_path", "user_documents_path", "user_runtime_path", "site_data_path", "site_config_path", ] PKx"TRhhG__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs/__main__.pyfrom platformdirs import PlatformDirs, __version__ PROPS = ( "user_data_dir", "user_config_dir", "user_cache_dir", "user_state_dir", "user_log_dir", "user_documents_dir", "user_runtime_dir", "site_data_dir", "site_config_dir", ) def main() -> None: app_name = "MyApp" app_author = "MyCompany" print(f"-- platformdirs {__version__} --") print("-- app dirs (with optional 'version')") dirs = PlatformDirs(app_name, app_author, version="1.0") for prop in PROPS: print(f"{prop}: {getattr(dirs, prop)}") print("\n-- app dirs (without optional 'version')") dirs = PlatformDirs(app_name, app_author) for prop in PROPS: print(f"{prop}: {getattr(dirs, prop)}") print("\n-- app dirs (without optional 'appauthor')") dirs = PlatformDirs(app_name) for prop in PROPS: print(f"{prop}: {getattr(dirs, prop)}") print("\n-- app dirs (with disabled 'appauthor')") dirs = PlatformDirs(app_name, appauthor=False) for prop in PROPS: print(f"{prop}: {getattr(dirs, prop)}") if __name__ == "__main__": main() PKx"T -ҚF__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs/android.pyimport os import re import sys from functools import lru_cache from .api import PlatformDirsABC class Android(PlatformDirsABC): """ Follows the guidance `from here `_. Makes use of the `appname ` and `version `. """ @property def user_data_dir(self) -> str: """:return: data directory tied to the user, e.g. ``/data/user///files/``""" return self._append_app_name_and_version(_android_folder(), "files") @property def site_data_dir(self) -> str: """:return: data directory shared by users, same as `user_data_dir`""" return self.user_data_dir @property def user_config_dir(self) -> str: """ :return: config directory tied to the user, e.g. ``/data/user///shared_prefs/`` """ return self._append_app_name_and_version(_android_folder(), "shared_prefs") @property def site_config_dir(self) -> str: """:return: config directory shared by the users, same as `user_config_dir`""" return self.user_config_dir @property def user_cache_dir(self) -> str: """:return: cache directory tied to the user, e.g. e.g. ``/data/user///cache/``""" return self._append_app_name_and_version(_android_folder(), "cache") @property def user_state_dir(self) -> str: """:return: state directory tied to the user, same as `user_data_dir`""" return self.user_data_dir @property def user_log_dir(self) -> str: """ :return: log directory tied to the user, same as `user_cache_dir` if not opinionated else ``log`` in it, e.g. ``/data/user///cache//log`` """ path = self.user_cache_dir if self.opinion: path = os.path.join(path, "log") return path @property def user_documents_dir(self) -> str: """ :return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents`` """ return _android_documents_folder() @property def user_runtime_dir(self) -> str: """ :return: runtime directory tied to the user, same as `user_cache_dir` if not opinionated else ``tmp`` in it, e.g. ``/data/user///cache//tmp`` """ path = self.user_cache_dir if self.opinion: path = os.path.join(path, "tmp") return path @lru_cache(maxsize=1) def _android_folder() -> str: """:return: base folder for the Android OS""" try: # First try to get path to android app via pyjnius from jnius import autoclass # noqa: SC200 Context = autoclass("android.content.Context") # noqa: SC200 result: str = Context.getFilesDir().getParentFile().getAbsolutePath() except Exception: # if fails find an android folder looking path on the sys.path pattern = re.compile(r"/data/(data|user/\d+)/(.+)/files") for path in sys.path: if pattern.match(path): result = path.split("/files")[0] break else: raise OSError("Cannot find path to android app folder") return result @lru_cache(maxsize=1) def _android_documents_folder() -> str: """:return: documents folder for the Android OS""" # Get directories with pyjnius try: from jnius import autoclass # noqa: SC200 Context = autoclass("android.content.Context") # noqa: SC200 Environment = autoclass("android.os.Environment") documents_dir: str = Context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath() except Exception: documents_dir = "/storage/emulated/0/Documents" return documents_dir __all__ = [ "Android", ] PKx"Tj?}::B__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs/api.pyimport os import sys from abc import ABC, abstractmethod from pathlib import Path from typing import Optional, Union if sys.version_info >= (3, 8): # pragma: no branch from typing import Literal # pragma: no cover class PlatformDirsABC(ABC): """ Abstract base class for platform directories. """ def __init__( self, appname: Optional[str] = None, appauthor: Union[str, None, "Literal[False]"] = None, version: Optional[str] = None, roaming: bool = False, multipath: bool = False, opinion: bool = True, ): """ Create a new platform directory. :param appname: See `appname`. :param appauthor: See `appauthor`. :param version: See `version`. :param roaming: See `roaming`. :param multipath: See `multipath`. :param opinion: See `opinion`. """ self.appname = appname #: The name of application. self.appauthor = appauthor """ The name of the app author or distributing body for this application. Typically, it is the owning company name. Defaults to `appname`. You may pass ``False`` to disable it. """ self.version = version """ An optional version path element to append to the path. You might want to use this if you want multiple versions of your app to be able to run independently. If used, this would typically be ``.``. """ self.roaming = roaming """ Whether to use the roaming appdata directory on Windows. That means that for users on a Windows network setup for roaming profiles, this user data will be synced on login (see `here `_). """ self.multipath = multipath """ An optional parameter only applicable to Unix/Linux which indicates that the entire list of data dirs should be returned. By default, the first item would only be returned. """ self.opinion = opinion #: A flag to indicating to use opinionated values. def _append_app_name_and_version(self, *base: str) -> str: params = list(base[1:]) if self.appname: params.append(self.appname) if self.version: params.append(self.version) return os.path.join(base[0], *params) @property @abstractmethod def user_data_dir(self) -> str: """:return: data directory tied to the user""" @property @abstractmethod def site_data_dir(self) -> str: """:return: data directory shared by users""" @property @abstractmethod def user_config_dir(self) -> str: """:return: config directory tied to the user""" @property @abstractmethod def site_config_dir(self) -> str: """:return: config directory shared by the users""" @property @abstractmethod def user_cache_dir(self) -> str: """:return: cache directory tied to the user""" @property @abstractmethod def user_state_dir(self) -> str: """:return: state directory tied to the user""" @property @abstractmethod def user_log_dir(self) -> str: """:return: log directory tied to the user""" @property @abstractmethod def user_documents_dir(self) -> str: """:return: documents directory tied to the user""" @property @abstractmethod def user_runtime_dir(self) -> str: """:return: runtime directory tied to the user""" @property def user_data_path(self) -> Path: """:return: data path tied to the user""" return Path(self.user_data_dir) @property def site_data_path(self) -> Path: """:return: data path shared by users""" return Path(self.site_data_dir) @property def user_config_path(self) -> Path: """:return: config path tied to the user""" return Path(self.user_config_dir) @property def site_config_path(self) -> Path: """:return: config path shared by the users""" return Path(self.site_config_dir) @property def user_cache_path(self) -> Path: """:return: cache path tied to the user""" return Path(self.user_cache_dir) @property def user_state_path(self) -> Path: """:return: state path tied to the user""" return Path(self.user_state_dir) @property def user_log_path(self) -> Path: """:return: log path tied to the user""" return Path(self.user_log_dir) @property def user_documents_path(self) -> Path: """:return: documents path tied to the user""" return Path(self.user_documents_dir) @property def user_runtime_path(self) -> Path: """:return: runtime path tied to the user""" return Path(self.user_runtime_dir) PKx"TŪ.; ; D__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs/macos.pyimport os from .api import PlatformDirsABC class MacOS(PlatformDirsABC): """ Platform directories for the macOS operating system. Follows the guidance from `Apple documentation `_. Makes use of the `appname ` and `version `. """ @property def user_data_dir(self) -> str: """:return: data directory tied to the user, e.g. ``~/Library/Application Support/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Application Support/")) @property def site_data_dir(self) -> str: """:return: data directory shared by users, e.g. ``/Library/Application Support/$appname/$version``""" return self._append_app_name_and_version("/Library/Application Support") @property def user_config_dir(self) -> str: """:return: config directory tied to the user, e.g. ``~/Library/Preferences/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Preferences/")) @property def site_config_dir(self) -> str: """:return: config directory shared by the users, e.g. ``/Library/Preferences/$appname``""" return self._append_app_name_and_version("/Library/Preferences") @property def user_cache_dir(self) -> str: """:return: cache directory tied to the user, e.g. ``~/Library/Caches/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches")) @property def user_state_dir(self) -> str: """:return: state directory tied to the user, same as `user_data_dir`""" return self.user_data_dir @property def user_log_dir(self) -> str: """:return: log directory tied to the user, e.g. ``~/Library/Logs/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Logs")) @property def user_documents_dir(self) -> str: """:return: documents directory tied to the user, e.g. ``~/Documents``""" return os.path.expanduser("~/Documents") @property def user_runtime_dir(self) -> str: """:return: runtime directory tied to the user, e.g. ``~/Library/Caches/TemporaryItems/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches/TemporaryItems")) __all__ = [ "MacOS", ] PKx"TD__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs/py.typedPKx"T9C__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs/unix.pyimport os import sys from configparser import ConfigParser from pathlib import Path from typing import Optional from .api import PlatformDirsABC if sys.platform.startswith("linux"): # pragma: no branch # no op check, only to please the type checker from os import getuid else: def getuid() -> int: raise RuntimeError("should only be used on Linux") class Unix(PlatformDirsABC): """ On Unix/Linux, we follow the `XDG Basedir Spec `_. The spec allows overriding directories with environment variables. The examples show are the default values, alongside the name of the environment variable that overrides them. Makes use of the `appname `, `version `, `multipath `, `opinion `. """ @property def user_data_dir(self) -> str: """ :return: data directory tied to the user, e.g. ``~/.local/share/$appname/$version`` or ``$XDG_DATA_HOME/$appname/$version`` """ path = os.environ.get("XDG_DATA_HOME", "") if not path.strip(): path = os.path.expanduser("~/.local/share") return self._append_app_name_and_version(path) @property def site_data_dir(self) -> str: """ :return: data directories shared by users (if `multipath ` is enabled and ``XDG_DATA_DIR`` is set and a multi path the response is also a multi path separated by the OS path separator), e.g. ``/usr/local/share/$appname/$version`` or ``/usr/share/$appname/$version`` """ # XDG default for $XDG_DATA_DIRS; only first, if multipath is False path = os.environ.get("XDG_DATA_DIRS", "") if not path.strip(): path = f"/usr/local/share{os.pathsep}/usr/share" return self._with_multi_path(path) def _with_multi_path(self, path: str) -> str: path_list = path.split(os.pathsep) if not self.multipath: path_list = path_list[0:1] path_list = [self._append_app_name_and_version(os.path.expanduser(p)) for p in path_list] return os.pathsep.join(path_list) @property def user_config_dir(self) -> str: """ :return: config directory tied to the user, e.g. ``~/.config/$appname/$version`` or ``$XDG_CONFIG_HOME/$appname/$version`` """ path = os.environ.get("XDG_CONFIG_HOME", "") if not path.strip(): path = os.path.expanduser("~/.config") return self._append_app_name_and_version(path) @property def site_config_dir(self) -> str: """ :return: config directories shared by users (if `multipath ` is enabled and ``XDG_DATA_DIR`` is set and a multi path the response is also a multi path separated by the OS path separator), e.g. ``/etc/xdg/$appname/$version`` """ # XDG default for $XDG_CONFIG_DIRS only first, if multipath is False path = os.environ.get("XDG_CONFIG_DIRS", "") if not path.strip(): path = "/etc/xdg" return self._with_multi_path(path) @property def user_cache_dir(self) -> str: """ :return: cache directory tied to the user, e.g. ``~/.cache/$appname/$version`` or ``~/$XDG_CACHE_HOME/$appname/$version`` """ path = os.environ.get("XDG_CACHE_HOME", "") if not path.strip(): path = os.path.expanduser("~/.cache") return self._append_app_name_and_version(path) @property def user_state_dir(self) -> str: """ :return: state directory tied to the user, e.g. ``~/.local/state/$appname/$version`` or ``$XDG_STATE_HOME/$appname/$version`` """ path = os.environ.get("XDG_STATE_HOME", "") if not path.strip(): path = os.path.expanduser("~/.local/state") return self._append_app_name_and_version(path) @property def user_log_dir(self) -> str: """ :return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``log`` in it """ path = self.user_cache_dir if self.opinion: path = os.path.join(path, "log") return path @property def user_documents_dir(self) -> str: """ :return: documents directory tied to the user, e.g. ``~/Documents`` """ documents_dir = _get_user_dirs_folder("XDG_DOCUMENTS_DIR") if documents_dir is None: documents_dir = os.environ.get("XDG_DOCUMENTS_DIR", "").strip() if not documents_dir: documents_dir = os.path.expanduser("~/Documents") return documents_dir @property def user_runtime_dir(self) -> str: """ :return: runtime directory tied to the user, e.g. ``/run/user/$(id -u)/$appname/$version`` or ``$XDG_RUNTIME_DIR/$appname/$version`` """ path = os.environ.get("XDG_RUNTIME_DIR", "") if not path.strip(): path = f"/run/user/{getuid()}" return self._append_app_name_and_version(path) @property def site_data_path(self) -> Path: """:return: data path shared by users. Only return first item, even if ``multipath`` is set to ``True``""" return self._first_item_as_path_if_multipath(self.site_data_dir) @property def site_config_path(self) -> Path: """:return: config path shared by the users. Only return first item, even if ``multipath`` is set to ``True``""" return self._first_item_as_path_if_multipath(self.site_config_dir) def _first_item_as_path_if_multipath(self, directory: str) -> Path: if self.multipath: # If multipath is True, the first path is returned. directory = directory.split(os.pathsep)[0] return Path(directory) def _get_user_dirs_folder(key: str) -> Optional[str]: """Return directory from user-dirs.dirs config file. See https://freedesktop.org/wiki/Software/xdg-user-dirs/""" user_dirs_config_path = os.path.join(Unix().user_config_dir, "user-dirs.dirs") if os.path.exists(user_dirs_config_path): parser = ConfigParser() with open(user_dirs_config_path) as stream: # Add fake section header, so ConfigParser doesn't complain parser.read_string(f"[top]\n{stream.read()}") if key not in parser["top"]: return None path = parser["top"][key].strip('"') # Handle relative home paths path = path.replace("$HOME", os.path.expanduser("~")) return path return None __all__ = [ "Unix", ] PKx"TjPPF__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs/version.py""" Version information """ __version__ = "2.4.0" __version_info__ = (2, 4, 0) PKx"T80F__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs/windows.pyimport ctypes import os from functools import lru_cache from typing import Callable, Optional from .api import PlatformDirsABC class Windows(PlatformDirsABC): """`MSDN on where to store app data files `_. Makes use of the `appname `, `appauthor `, `version `, `roaming `, `opinion `.""" @property def user_data_dir(self) -> str: """ :return: data directory tied to the user, e.g. ``%USERPROFILE%\\AppData\\Local\\$appauthor\\$appname`` (not roaming) or ``%USERPROFILE%\\AppData\\Roaming\\$appauthor\\$appname`` (roaming) """ const = "CSIDL_APPDATA" if self.roaming else "CSIDL_LOCAL_APPDATA" path = os.path.normpath(get_win_folder(const)) return self._append_parts(path) def _append_parts(self, path: str, *, opinion_value: Optional[str] = None) -> str: params = [] if self.appname: if self.appauthor is not False: author = self.appauthor or self.appname params.append(author) params.append(self.appname) if opinion_value is not None and self.opinion: params.append(opinion_value) if self.version: params.append(self.version) return os.path.join(path, *params) @property def site_data_dir(self) -> str: """:return: data directory shared by users, e.g. ``C:\\ProgramData\\$appauthor\\$appname``""" path = os.path.normpath(get_win_folder("CSIDL_COMMON_APPDATA")) return self._append_parts(path) @property def user_config_dir(self) -> str: """:return: config directory tied to the user, same as `user_data_dir`""" return self.user_data_dir @property def site_config_dir(self) -> str: """:return: config directory shared by the users, same as `site_data_dir`""" return self.site_data_dir @property def user_cache_dir(self) -> str: """ :return: cache directory tied to the user (if opinionated with ``Cache`` folder within ``$appname``) e.g. ``%USERPROFILE%\\AppData\\Local\\$appauthor\\$appname\\Cache\\$version`` """ path = os.path.normpath(get_win_folder("CSIDL_LOCAL_APPDATA")) return self._append_parts(path, opinion_value="Cache") @property def user_state_dir(self) -> str: """:return: state directory tied to the user, same as `user_data_dir`""" return self.user_data_dir @property def user_log_dir(self) -> str: """ :return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``Logs`` in it """ path = self.user_data_dir if self.opinion: path = os.path.join(path, "Logs") return path @property def user_documents_dir(self) -> str: """ :return: documents directory tied to the user e.g. ``%USERPROFILE%\\Documents`` """ return os.path.normpath(get_win_folder("CSIDL_PERSONAL")) @property def user_runtime_dir(self) -> str: """ :return: runtime directory tied to the user, e.g. ``%USERPROFILE%\\AppData\\Local\\Temp\\$appauthor\\$appname`` """ path = os.path.normpath(os.path.join(get_win_folder("CSIDL_LOCAL_APPDATA"), "Temp")) return self._append_parts(path) def get_win_folder_from_env_vars(csidl_name: str) -> str: """Get folder from environment variables.""" if csidl_name == "CSIDL_PERSONAL": # does not have an environment name return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Documents") env_var_name = { "CSIDL_APPDATA": "APPDATA", "CSIDL_COMMON_APPDATA": "ALLUSERSPROFILE", "CSIDL_LOCAL_APPDATA": "LOCALAPPDATA", }.get(csidl_name) if env_var_name is None: raise ValueError(f"Unknown CSIDL name: {csidl_name}") result = os.environ.get(env_var_name) if result is None: raise ValueError(f"Unset environment variable: {env_var_name}") return result def get_win_folder_from_registry(csidl_name: str) -> str: """Get folder from the registry. This is a fallback technique at best. I'm not sure if using the registry for this guarantees us the correct answer for all CSIDL_* names. """ shell_folder_name = { "CSIDL_APPDATA": "AppData", "CSIDL_COMMON_APPDATA": "Common AppData", "CSIDL_LOCAL_APPDATA": "Local AppData", "CSIDL_PERSONAL": "Personal", }.get(csidl_name) if shell_folder_name is None: raise ValueError(f"Unknown CSIDL name: {csidl_name}") import winreg key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders") directory, _ = winreg.QueryValueEx(key, shell_folder_name) return str(directory) def get_win_folder_via_ctypes(csidl_name: str) -> str: """Get folder with ctypes.""" csidl_const = { "CSIDL_APPDATA": 26, "CSIDL_COMMON_APPDATA": 35, "CSIDL_LOCAL_APPDATA": 28, "CSIDL_PERSONAL": 5, }.get(csidl_name) if csidl_const is None: raise ValueError(f"Unknown CSIDL name: {csidl_name}") buf = ctypes.create_unicode_buffer(1024) windll = getattr(ctypes, "windll") # noqa: B009 # using getattr to avoid false positive with mypy type checker windll.shell32.SHGetFolderPathW(None, csidl_const, None, 0, buf) # Downgrade to short path name if it has highbit chars. if any(ord(c) > 255 for c in buf): buf2 = ctypes.create_unicode_buffer(1024) if windll.kernel32.GetShortPathNameW(buf.value, buf2, 1024): buf = buf2 return buf.value def _pick_get_win_folder() -> Callable[[str], str]: if hasattr(ctypes, "windll"): return get_win_folder_via_ctypes try: import winreg # noqa: F401 except ImportError: return get_win_folder_from_env_vars else: return get_win_folder_from_registry get_win_folder = lru_cache(maxsize=None)(_pick_get_win_folder()) __all__ = [ "Windows", ] PKx"TUHHW__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs-2.4.0.dist-info/LICENSE.txt# This is the MIT license Copyright (c) 2010 ActiveState Software Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PKx"T;q##T__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs-2.4.0.dist-info/METADATAMetadata-Version: 2.1 Name: platformdirs Version: 2.4.0 Summary: A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir". Home-page: https://github.com/platformdirs/platformdirs Maintainer: Bernát Gábor, Julian Berman, Ofek Lev, Ronny Pfannschmidt Maintainer-email: gaborjbernat@gmail.com, Julian@GrayVines.com, oss@ofek.dev, opensource@ronnypfannschmidt.de License: MIT Project-URL: Source, https://github.com/platformdirs/platformdirs Project-URL: Tracker, https://github.com/platformdirs/platformdirs/issues Project-URL: Documentation, https://platformdirs.readthedocs.io/ Keywords: application directory log cache user Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Software Development :: Libraries :: Python Modules Requires-Python: >=3.6 Description-Content-Type: text/x-rst License-File: LICENSE.txt Provides-Extra: docs Requires-Dist: Sphinx (>=4) ; extra == 'docs' Requires-Dist: furo (>=2021.7.5b38) ; extra == 'docs' Requires-Dist: proselint (>=0.10.2) ; extra == 'docs' Requires-Dist: sphinx-autodoc-typehints (>=1.12) ; extra == 'docs' Provides-Extra: test Requires-Dist: appdirs (==1.4.4) ; extra == 'test' Requires-Dist: pytest (>=6) ; extra == 'test' Requires-Dist: pytest-cov (>=2.7) ; extra == 'test' Requires-Dist: pytest-mock (>=3.6) ; extra == 'test' The problem =========== .. image:: https://github.com/platformdirs/platformdirs/workflows/Test/badge.svg :target: https://github.com/platformdirs/platformdirs/actions?query=workflow%3ATest When writing desktop application, finding the right location to store user data and configuration varies per platform. Even for single-platform apps, there may by plenty of nuances in figuring out the right location. For example, if running on macOS, you should use:: ~/Library/Application Support/ If on Windows (at least English Win XP) that should be:: C:\Documents and Settings\\Application Data\Local Settings\\ or possibly:: C:\Documents and Settings\\Application Data\\ for `roaming profiles `_ but that is another story. On Linux (and other Unices), according to the `XDG Basedir Spec`_, it should be:: ~/.local/share/ .. _XDG Basedir Spec: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html ``platformdirs`` to the rescue ============================== This kind of thing is what the ``platformdirs`` module is for. ``platformdirs`` will help you choose an appropriate: - user data dir (``user_data_dir``) - user config dir (``user_config_dir``) - user cache dir (``user_cache_dir``) - site data dir (``site_data_dir``) - site config dir (``site_config_dir``) - user log dir (``user_log_dir``) - user documents dir (``user_documents_dir``) - user runtime dir (``user_runtime_dir``) And also: - Is a single module so other Python packages can vendor their own private copy. - Is slightly opinionated on the directory names used. Look for "OPINION" in documentation and code for when an opinion is being applied. Example output ============== On macOS: .. code-block:: pycon >>> from platformdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) '/Users/trentm/Library/Application Support/SuperApp' >>> site_data_dir(appname, appauthor) '/Library/Application Support/SuperApp' >>> user_cache_dir(appname, appauthor) '/Users/trentm/Library/Caches/SuperApp' >>> user_log_dir(appname, appauthor) '/Users/trentm/Library/Logs/SuperApp' >>> user_documents_dir() '/Users/trentm/Documents' >>> user_runtime_dir(appname, appauthor) '/Users/trentm/Library/Caches/TemporaryItems/SuperApp' On Windows 7: .. code-block:: pycon >>> from platformdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp' >>> user_data_dir(appname, appauthor, roaming=True) 'C:\\Users\\trentm\\AppData\\Roaming\\Acme\\SuperApp' >>> user_cache_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Cache' >>> user_log_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Logs' >>> user_documents_dir() 'C:\\Users\\trentm\\Documents' >>> user_runtime_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Temp\\Acme\\SuperApp' On Linux: .. code-block:: pycon >>> from platformdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) '/home/trentm/.local/share/SuperApp >>> site_data_dir(appname, appauthor) '/usr/local/share/SuperApp' >>> site_data_dir(appname, appauthor, multipath=True) '/usr/local/share/SuperApp:/usr/share/SuperApp' >>> user_cache_dir(appname, appauthor) '/home/trentm/.cache/SuperApp' >>> user_log_dir(appname, appauthor) '/home/trentm/.cache/SuperApp/log' >>> user_config_dir(appname) '/home/trentm/.config/SuperApp' >>> user_documents_dir() '/home/trentm/Documents' >>> user_runtime_dir(appname, appauthor) '/run/user/{os.getuid()}/SuperApp' >>> site_config_dir(appname) '/etc/xdg/SuperApp' >>> os.environ['XDG_CONFIG_DIRS'] = '/etc:/usr/local/etc' >>> site_config_dir(appname, multipath=True) '/etc/SuperApp:/usr/local/etc/SuperApp' On Android:: >>> from platformdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) '/data/data/com.termux/files/SuperApp' >>> user_cache_dir(appname, appauthor) '/data/data/com.termux/cache/SuperApp' >>> user_log_dir(appname, appauthor) '/data/data/com.termux/cache/SuperApp/log' >>> user_config_dir(appname) '/data/data/com.termux/shared_prefs/SuperApp' >>> user_documents_dir() '/storage/emulated/0/Documents' >>> user_runtime_dir(appname, appauthor) '/data/data/com.termux/cache/SuperApp/tmp' ``PlatformDirs`` for convenience ================================ .. code-block:: pycon >>> from platformdirs import PlatformDirs >>> dirs = PlatformDirs("SuperApp", "Acme") >>> dirs.user_data_dir '/Users/trentm/Library/Application Support/SuperApp' >>> dirs.site_data_dir '/Library/Application Support/SuperApp' >>> dirs.user_cache_dir '/Users/trentm/Library/Caches/SuperApp' >>> dirs.user_log_dir '/Users/trentm/Library/Logs/SuperApp' >>> dirs.user_documents_dir '/Users/trentm/Documents' >>> dirs.user_runtime_dir '/Users/trentm/Library/Caches/TemporaryItems/SuperApp' Per-version isolation ===================== If you have multiple versions of your app in use that you want to be able to run side-by-side, then you may want version-isolation for these dirs:: >>> from platformdirs import PlatformDirs >>> dirs = PlatformDirs("SuperApp", "Acme", version="1.0") >>> dirs.user_data_dir '/Users/trentm/Library/Application Support/SuperApp/1.0' >>> dirs.site_data_dir '/Library/Application Support/SuperApp/1.0' >>> dirs.user_cache_dir '/Users/trentm/Library/Caches/SuperApp/1.0' >>> dirs.user_log_dir '/Users/trentm/Library/Logs/SuperApp/1.0' >>> dirs.user_documents_dir '/Users/trentm/Documents' >>> dirs.user_runtime_dir '/Users/trentm/Library/Caches/TemporaryItems/SuperApp/1.0' Be wary of using this for configuration files though; you'll need to handle migrating configuration files manually. Why this Fork? ============== This repository is a friendly fork of the wonderful work started by `ActiveState `_ who created ``appdirs``, this package's ancestor. Maintaining an open source project is no easy task, particularly from within an organization, and the Python community is indebted to ``appdirs`` (and to Trent Mick and Jeff Rouse in particular) for creating an incredibly useful simple module, as evidenced by the wide number of users it has attracted over the years. Nonetheless, given the number of long-standing open issues and pull requests, and no clear path towards `ensuring that maintenance of the package would continue or grow `_, this fork was created. Contributions are most welcome. PKx"TP2\\Q__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs-2.4.0.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.0) Root-Is-Purelib: true Tag: py3-none-any PKx"T;! Y__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs-2.4.0.dist-info/top_level.txtplatformdirs PKx"T2T__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs-2.4.0.dist-info/zip-safe PKx"Tu!R__virtualenv__/platformdirs-2.4.0-py3-none-any/platformdirs-2.4.0.dist-info/RECORDplatformdirs/__init__.py,sha256=zwq1yjWgAMFFSuubYcZrMrGnLqfZluTpxuivYqMlE9E,12811 platformdirs/__main__.py,sha256=8upfbb_gtmT-kghCO03cVSdJ9W1kMgN1tsePrr4AhIQ,1128 platformdirs/android.py,sha256=dadYfG2oc900YVi5AONQWw2WEvk-kmgkZs5iiNSiWiE,3994 platformdirs/api.py,sha256=yhRR6RkcZzPBfJD4Sn90vCHZbRMQ9nwtnRaa93X1wR8,4922 platformdirs/macos.py,sha256=vIowPYKkHksJcWVjqHQoa-oI1i2D0S7gsSdyFzZDJEA,2619 platformdirs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 platformdirs/unix.py,sha256=7JdDnsyTFn2IHC8IFdiNYH7_R8VS-rPx8ivh4_dT1DU,6905 platformdirs/version.py,sha256=uUssQTtUqVP-PxbOSNBzNGRW27X5u1GvOllg--kzyuw,80 platformdirs/windows.py,sha256=91nNccR0CSxX_myMppSvUT1qtQao6kaO96e6ior8-Xw,6416 platformdirs-2.4.0.dist-info/LICENSE.txt,sha256=1l7lsqNqOR6Nau_OuArlAGMEml2xS8gk7g8eusmXDlA,1096 platformdirs-2.4.0.dist-info/METADATA,sha256=HrKuexj7HOhZW2typV0NpqYwH01JXyTnNRQIB15Tqes,9188 platformdirs-2.4.0.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 platformdirs-2.4.0.dist-info/top_level.txt,sha256=i0Q-nUAcPabcNxrgdGr0mzOEavZ4cGml0zH0oxKEFQE,13 platformdirs-2.4.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 platformdirs-2.4.0.dist-info/RECORD,, PKx"T=VY+ssB__virtualenv__/platformdirs-2.0.2-py2.py3-none-any/platformdirs.py# -*- coding: utf-8 -*- # Copyright (c) 2005-2010 ActiveState Software Inc. # Copyright (c) 2013 Eddy Petrișor """Utilities for determining application-specific dirs. See for details and usage. """ # Dev Notes: # - MSDN on where to store app data files: # http://support.microsoft.com/default.aspx?scid=kb;en-us;310294#XSLTH3194121123120121120120 # - Mac OS X: http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/index.html # - XDG spec for Un*x: https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html __version__ = "2.0.2" __version_info__ = 2, 0, 2 import sys import os PY2 = sys.version_info[0] == 2 if not PY2: unicode = str if sys.platform.startswith('java'): import platform os_name = platform.java_ver()[3][0] if os_name.startswith('Windows'): # "Windows XP", "Windows 7", etc. system = 'win32' elif os_name.startswith('Mac'): # "Mac OS X", etc. system = 'darwin' else: # "Linux", "SunOS", "FreeBSD", etc. # Setting this to "linux2" is not ideal, but only Windows or Mac # are actually checked for and the rest of the module expects # *sys.platform* style strings. system = 'linux2' else: system = sys.platform # https://docs.python.org/dev/library/sys.html#sys.platform if system == 'win32': try: from ctypes import windll except ImportError: try: import com.sun.jna except ImportError: try: if PY2: import _winreg as winreg else: import winreg except ImportError: def _get_win_folder(csidl_name): """Get folder from environment variables.""" if csidl_name == 'CSIDL_APPDATA': env_var_name = 'APPDATA' elif csidl_name == 'CSIDL_COMMON_APPDATA': env_var_name = 'ALLUSERSPROFILE' elif csidl_name == 'CSIDL_LOCAL_APPDATA': env_var_name = 'LOCALAPPDATA' else: raise ValueError('Unknown CSIDL name: {}'.format(csidl_name)) if env_var_name in os.environ: return os.environ[env_var_name] else: raise ValueError('Unset environment variable: {}'.format(env_var_name)) else: def _get_win_folder(csidl_name): """Get folder from the registry. This is a fallback technique at best. I'm not sure if using the registry for this guarantees us the correct answer for all CSIDL_* names. """ if csidl_name == 'CSIDL_APPDATA': shell_folder_name = 'AppData' elif csidl_name == 'CSIDL_COMMON_APPDATA': shell_folder_name = 'Common AppData' elif csidl_name == 'CSIDL_LOCAL_APPDATA': shell_folder_name = 'Local AppData' else: raise ValueError('Unknown CSIDL name: {}'.format(csidl_name)) key = winreg.OpenKey( winreg.HKEY_CURRENT_USER, r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders' ) directory, _ = winreg.QueryValueEx(key, shell_folder_name) return directory else: def _get_win_folder_with_jna(csidl_name): """Get folder with JNA.""" import array from com.sun import jna from com.sun.jna.platform import win32 buf_size = win32.WinDef.MAX_PATH * 2 buf = array.zeros('c', buf_size) shell = win32.Shell32.INSTANCE shell.SHGetFolderPath( None, getattr(win32.ShlObj, csidl_name), None, win32.ShlObj.SHGFP_TYPE_CURRENT, buf ) directory = jna.Native.toString(buf.tostring()).rstrip('\0') # Downgrade to short path name if have highbit chars. See # . has_high_char = False for c in directory: if ord(c) > 255: has_high_char = True break if has_high_char: buf = array.zeros('c', buf_size) kernel = win32.Kernel32.INSTANCE if kernel.GetShortPathName(directory, buf, buf_size): directory = jna.Native.toString(buf.tostring()).rstrip('\0') return directory else: def _get_win_folder(csidl_name): """Get folder with ctypes.""" import ctypes if csidl_name == 'CSIDL_APPDATA': csidl_const = 26 elif csidl_name == 'CSIDL_COMMON_APPDATA': csidl_const = 35 elif csidl_name == 'CSIDL_LOCAL_APPDATA': csidl_const = 28 else: raise ValueError('Unknown CSIDL name: {}'.format(csidl_name)) buf = ctypes.create_unicode_buffer(1024) ctypes.windll.shell32.SHGetFolderPathW(None, csidl_const, None, 0, buf) # Downgrade to short path name if have highbit chars. See # . has_high_char = False for c in buf: if ord(c) > 255: has_high_char = True break if has_high_char: buf2 = ctypes.create_unicode_buffer(1024) if ctypes.windll.kernel32.GetShortPathNameW(buf.value, buf2, 1024): buf = buf2 return buf.value def _user_data_dir_impl(appname=None, appauthor=None, version=None, roaming=False): if appauthor is None: appauthor = appname const = 'CSIDL_APPDATA' if roaming else 'CSIDL_LOCAL_APPDATA' path = os.path.normpath(_get_win_folder(const)) if appname: if appauthor is not False: path = os.path.join(path, appauthor, appname) else: path = os.path.join(path, appname) if version: path = os.path.join(path, version) return path def _site_data_dir_impl(appname=None, appauthor=None, version=None, multipath=False): if appauthor is None: appauthor = appname path = os.path.normpath(_get_win_folder('CSIDL_COMMON_APPDATA')) if appname: if appauthor is not False: path = os.path.join(path, appauthor, appname) else: path = os.path.join(path, appname) if version: path = os.path.join(path, version) return path def _user_config_dir_impl(appname=None, appauthor=None, version=None, roaming=False): return _user_data_dir_impl(appname=appname, appauthor=appauthor, version=version, roaming=roaming) def _site_config_dir_impl(appname=None, appauthor=None, version=None, multipath=False): return _site_data_dir_impl(appname=appname, appauthor=appauthor, version=version) def _user_cache_dir_impl(appname=None, appauthor=None, version=None, opinion=True): if appauthor is None: appauthor = appname path = os.path.normpath(_get_win_folder('CSIDL_LOCAL_APPDATA')) if appname: if appauthor is not False: path = os.path.join(path, appauthor, appname) else: path = os.path.join(path, appname) if opinion: path = os.path.join(path, 'Cache') if version: path = os.path.join(path, version) return path def _user_state_dir_impl(appname=None, appauthor=None, version=None, roaming=False): return _user_data_dir_impl(appname=appname, appauthor=appauthor, version=version, roaming=roaming) def _user_log_dir_impl(appname=None, appauthor=None, version=None, opinion=True): path = _user_data_dir_impl(appname=appname, appauthor=appauthor, version=version) if opinion: path = os.path.join(path, 'Logs') return path elif system == 'darwin': def _user_data_dir_impl(appname=None, appauthor=None, version=None, roaming=False): path = os.path.expanduser('~/Library/Application Support/') if appname: path = os.path.join(path, appname) if version: path = os.path.join(path, version) return path def _site_data_dir_impl(appname=None, appauthor=None, version=None, multipath=False): path = '/Library/Application Support' if appname: path = os.path.join(path, appname) if version: path = os.path.join(path, version) return path def _user_config_dir_impl(appname=None, appauthor=None, version=None, roaming=False): path = os.path.expanduser('~/Library/Preferences/') if appname: path = os.path.join(path, appname) if version: path = os.path.join(path, version) return path def _site_config_dir_impl(appname=None, appauthor=None, version=None, multipath=False): path = '/Library/Preferences' if appname: path = os.path.join(path, appname) return path def _user_cache_dir_impl(appname=None, appauthor=None, version=None, opinion=True): path = os.path.expanduser('~/Library/Caches') if appname: path = os.path.join(path, appname) if version: path = os.path.join(path, version) return path def _user_state_dir_impl(appname=None, appauthor=None, version=None, roaming=False): return _user_data_dir_impl(appname=appname, appauthor=appauthor, version=version, roaming=roaming) def _user_log_dir_impl(appname=None, appauthor=None, version=None, opinion=True): path = os.path.expanduser('~/Library/Logs') if appname: path = os.path.join(path, appname) if version: path = os.path.join(path, version) return path else: def _user_data_dir_impl(appname=None, appauthor=None, version=None, roaming=False): if 'XDG_DATA_HOME' in os.environ: path = os.environ['XDG_DATA_HOME'] else: path = os.path.expanduser('~/.local/share') if appname: path = os.path.join(path, appname) if version: path = os.path.join(path, version) return path def _site_data_dir_impl(appname=None, appauthor=None, version=None, multipath=False): # XDG default for $XDG_DATA_DIRS # only first, if multipath is False if 'XDG_DATA_DIRS' in os.environ: path = os.environ['XDG_DATA_DIRS'] else: path = '/usr/local/share{}/usr/share'.format(os.pathsep) pathlist = [os.path.expanduser(x.rstrip(os.sep)) for x in path.split(os.pathsep)] if appname: if version: appname = os.path.join(appname, version) pathlist = [os.path.join(x, appname) for x in pathlist] if multipath: path = os.pathsep.join(pathlist) else: path = pathlist[0] return path def _user_config_dir_impl(appname=None, appauthor=None, version=None, roaming=False): if 'XDG_CONFIG_HOME' in os.environ: path = os.environ['XDG_CONFIG_HOME'] else: path = os.path.expanduser('~/.config') if appname: path = os.path.join(path, appname) if version: path = os.path.join(path, version) return path def _site_config_dir_impl(appname=None, appauthor=None, version=None, multipath=False): # XDG default for $XDG_CONFIG_DIRS # only first, if multipath is False if 'XDG_CONFIG_DIRS' in os.environ: path = os.environ['XDG_CONFIG_DIRS'] else: path = '/etc/xdg' pathlist = [os.path.expanduser(x.rstrip(os.sep)) for x in path.split(os.pathsep)] if appname: if version: appname = os.path.join(appname, version) pathlist = [os.path.join(x, appname) for x in pathlist] if multipath: path = os.pathsep.join(pathlist) else: path = pathlist[0] return path def _user_cache_dir_impl(appname=None, appauthor=None, version=None, opinion=True): if 'XDG_CACHE_HOME' in os.environ: path = os.environ['XDG_CACHE_HOME'] else: path = os.path.expanduser('~/.cache') if appname: path = os.path.join(path, appname) if version: path = os.path.join(path, version) return path def _user_state_dir_impl(appname=None, appauthor=None, version=None, roaming=False): if 'XDG_STATE_HOME' in os.environ: path = os.environ['XDG_STATE_HOME'] else: path = os.path.expanduser('~/.local/state') if appname: path = os.path.join(path, appname) if version: path = os.path.join(path, version) return path def _user_log_dir_impl(appname=None, appauthor=None, version=None, opinion=True): path = _user_cache_dir_impl(appname=appname, appauthor=appauthor, version=version) if opinion: path = os.path.join(path, 'log') return path def user_data_dir(appname=None, appauthor=None, version=None, roaming=False): r"""Return full path to the user-specific data dir for this application. "appname" is the name of application. If None, just the system directory is returned. "appauthor" (only used on Windows) is the name of the appauthor or distributing body for this application. Typically it is the owning company name. This falls back to appname. You may pass False to disable it. "version" is an optional version path element to append to the path. You might want to use this if you want multiple versions of your app to be able to run independently. If used, this would typically be ".". Only applied when appname is present. "roaming" (boolean, default False) can be set True to use the Windows roaming appdata directory. That means that for users on a Windows network setup for roaming profiles, this user data will be sync'd on login. See for a discussion of issues. Typical user data directories are: Mac OS X: ~/Library/Application Support/ Unix: ~/.local/share/ # or in $XDG_DATA_HOME, if defined Win XP (not roaming): C:\Documents and Settings\\Application Data\\ Win XP (roaming): C:\Documents and Settings\\Local Settings\Application Data\\ Win 7 (not roaming): C:\Users\\AppData\Local\\ Win 7 (roaming): C:\Users\\AppData\Roaming\\ For Unix, we follow the XDG spec and support $XDG_DATA_HOME. That means, by default "~/.local/share/". """ return _user_data_dir_impl(appname=appname, appauthor=appauthor, version=version, roaming=roaming) def site_data_dir(appname=None, appauthor=None, version=None, multipath=False): r"""Return full path to the user-shared data dir for this application. "appname" is the name of application. If None, just the system directory is returned. "appauthor" (only used on Windows) is the name of the appauthor or distributing body for this application. Typically it is the owning company name. This falls back to appname. You may pass False to disable it. "version" is an optional version path element to append to the path. You might want to use this if you want multiple versions of your app to be able to run independently. If used, this would typically be ".". Only applied when appname is present. "multipath" is an optional parameter only applicable to *nix which indicates that the entire list of data dirs should be returned. By default, the first item from XDG_DATA_DIRS is returned, or '/usr/local/share/', if XDG_DATA_DIRS is not set Typical site data directories are: Mac OS X: /Library/Application Support/ Unix: /usr/local/share/ or /usr/share/ Win XP: C:\Documents and Settings\All Users\Application Data\\ Vista: (Fail! "C:\ProgramData" is a hidden *system* directory on Vista.) Win 7: C:\ProgramData\\ # Hidden, but writeable on Win 7. For Unix, this is using the $XDG_DATA_DIRS[0] default. WARNING: Do not use this on Windows. See the Vista-Fail note above for why. """ return _site_data_dir_impl(appname=appname, appauthor=appauthor, version=version, multipath=multipath) def user_config_dir(appname=None, appauthor=None, version=None, roaming=False): r"""Return full path to the user-specific config dir for this application. "appname" is the name of application. If None, just the system directory is returned. "appauthor" (only used on Windows) is the name of the appauthor or distributing body for this application. Typically it is the owning company name. This falls back to appname. You may pass False to disable it. "version" is an optional version path element to append to the path. You might want to use this if you want multiple versions of your app to be able to run independently. If used, this would typically be ".". Only applied when appname is present. "roaming" (boolean, default False) can be set True to use the Windows roaming appdata directory. That means that for users on a Windows network setup for roaming profiles, this user data will be sync'd on login. See for a discussion of issues. Typical user config directories are: Mac OS X: ~/Library/Preferences/ Unix: ~/.config/ # or in $XDG_CONFIG_HOME, if defined Win *: same as user_data_dir For Unix, we follow the XDG spec and support $XDG_CONFIG_HOME. That means, by default "~/.config/". """ return _user_config_dir_impl(appname=appname, appauthor=appauthor, version=version, roaming=roaming) def site_config_dir(appname=None, appauthor=None, version=None, multipath=False): r"""Return full path to the user-shared data dir for this application. "appname" is the name of application. If None, just the system directory is returned. "appauthor" (only used on Windows) is the name of the appauthor or distributing body for this application. Typically it is the owning company name. This falls back to appname. You may pass False to disable it. "version" is an optional version path element to append to the path. You might want to use this if you want multiple versions of your app to be able to run independently. If used, this would typically be ".". Only applied when appname is present. "multipath" is an optional parameter only applicable to *nix which indicates that the entire list of config dirs should be returned. By default, the first item from XDG_CONFIG_DIRS is returned, or '/etc/xdg/', if XDG_CONFIG_DIRS is not set Typical site config directories are: Mac OS X: same as site_data_dir Unix: /etc/xdg/ or $XDG_CONFIG_DIRS[i]/ for each value in $XDG_CONFIG_DIRS Win *: same as site_data_dir Vista: (Fail! "C:\ProgramData" is a hidden *system* directory on Vista.) For Unix, this is using the $XDG_CONFIG_DIRS[0] default, if multipath=False WARNING: Do not use this on Windows. See the Vista-Fail note above for why. """ return _site_config_dir_impl(appname=appname, appauthor=appauthor, version=version, multipath=multipath) def user_cache_dir(appname=None, appauthor=None, version=None, opinion=True): r"""Return full path to the user-specific cache dir for this application. "appname" is the name of application. If None, just the system directory is returned. "appauthor" (only used on Windows) is the name of the appauthor or distributing body for this application. Typically it is the owning company name. This falls back to appname. You may pass False to disable it. "version" is an optional version path element to append to the path. You might want to use this if you want multiple versions of your app to be able to run independently. If used, this would typically be ".". Only applied when appname is present. "opinion" (boolean) can be False to disable the appending of "Cache" to the base app data dir for Windows. See discussion below. Typical user cache directories are: Mac OS X: ~/Library/Caches/ Unix: ~/.cache/ (XDG default) Win XP: C:\Documents and Settings\\Local Settings\Application Data\\\Cache Vista: C:\Users\\AppData\Local\\\Cache On Windows the only suggestion in the MSDN docs is that local settings go in the `CSIDL_LOCAL_APPDATA` directory. This is identical to the non-roaming app data dir (the default returned by `user_data_dir` above). Apps typically put cache data somewhere *under* the given dir here. Some examples: ...\Mozilla\Firefox\Profiles\\Cache ...\Acme\SuperApp\Cache\1.0 OPINION: This function appends "Cache" to the `CSIDL_LOCAL_APPDATA` value. This can be disabled with the `opinion=False` option. """ return _user_cache_dir_impl(appname=appname, appauthor=appauthor, version=version, opinion=opinion) def user_state_dir(appname=None, appauthor=None, version=None, roaming=False): r"""Return full path to the user-specific state dir for this application. "appname" is the name of application. If None, just the system directory is returned. "appauthor" (only used on Windows) is the name of the appauthor or distributing body for this application. Typically it is the owning company name. This falls back to appname. You may pass False to disable it. "version" is an optional version path element to append to the path. You might want to use this if you want multiple versions of your app to be able to run independently. If used, this would typically be ".". Only applied when appname is present. "roaming" (boolean, default False) can be set True to use the Windows roaming appdata directory. That means that for users on a Windows network setup for roaming profiles, this user data will be sync'd on login. See for a discussion of issues. Typical user state directories are: Mac OS X: same as user_data_dir Unix: ~/.local/state/ # or in $XDG_STATE_HOME, if defined Win *: same as user_data_dir For Unix, we follow this Debian proposal to extend the XDG spec and support $XDG_STATE_HOME. That means, by default "~/.local/state/". """ return _user_state_dir_impl(appname=appname, appauthor=appauthor, version=version, roaming=roaming) def user_log_dir(appname=None, appauthor=None, version=None, opinion=True): r"""Return full path to the user-specific log dir for this application. "appname" is the name of application. If None, just the system directory is returned. "appauthor" (only used on Windows) is the name of the appauthor or distributing body for this application. Typically it is the owning company name. This falls back to appname. You may pass False to disable it. "version" is an optional version path element to append to the path. You might want to use this if you want multiple versions of your app to be able to run independently. If used, this would typically be ".". Only applied when appname is present. "opinion" (boolean) can be False to disable the appending of "Logs" to the base app data dir for Windows, and "log" to the base cache dir for Unix. See discussion below. Typical user log directories are: Mac OS X: ~/Library/Logs/ Unix: ~/.cache//log # or under $XDG_CACHE_HOME if defined Win XP: C:\Documents and Settings\\Local Settings\Application Data\\\Logs Vista: C:\Users\\AppData\Local\\\Logs On Windows the only suggestion in the MSDN docs is that local settings go in the `CSIDL_LOCAL_APPDATA` directory. (Note: I'm interested in examples of what some windows apps use for a logs dir.) OPINION: This function appends "Logs" to the `CSIDL_LOCAL_APPDATA` value for Windows and appends "log" to the user cache dir for Unix. This can be disabled with the `opinion=False` option. """ return _user_log_dir_impl(appname=appname, appauthor=appauthor, version=version, opinion=opinion) class PlatformDirs(object): """Convenience wrapper for getting application dirs.""" def __init__(self, appname=None, appauthor=None, version=None, roaming=False, multipath=False): self.appname = appname self.appauthor = appauthor self.version = version self.roaming = roaming self.multipath = multipath @property def user_data_dir(self): return user_data_dir(self.appname, self.appauthor, version=self.version, roaming=self.roaming) @property def site_data_dir(self): return site_data_dir(self.appname, self.appauthor, version=self.version, multipath=self.multipath) @property def user_config_dir(self): return user_config_dir(self.appname, self.appauthor, version=self.version, roaming=self.roaming) @property def site_config_dir(self): return site_config_dir(self.appname, self.appauthor, version=self.version, multipath=self.multipath) @property def user_cache_dir(self): return user_cache_dir(self.appname, self.appauthor, version=self.version) @property def user_state_dir(self): return user_state_dir(self.appname, self.appauthor, version=self.version) @property def user_log_dir(self): return user_log_dir(self.appname, self.appauthor, version=self.version) # Backwards compatibility with appdirs AppDirs = PlatformDirs if __name__ == "__main__": # ---- self test code appname = "MyApp" appauthor = "MyCompany" props = ("user_data_dir", "user_config_dir", "user_cache_dir", "user_state_dir", "user_log_dir", "site_data_dir", "site_config_dir") print("-- app dirs %s --" % __version__) print("-- app dirs (with optional 'version')") dirs = PlatformDirs(appname, appauthor, version="1.0") for prop in props: print("%s: %s" % (prop, getattr(dirs, prop))) print("\n-- app dirs (without optional 'version')") dirs = PlatformDirs(appname, appauthor) for prop in props: print("%s: %s" % (prop, getattr(dirs, prop))) print("\n-- app dirs (without optional 'appauthor')") dirs = PlatformDirs(appname) for prop in props: print("%s: %s" % (prop, getattr(dirs, prop))) print("\n-- app dirs (with disabled 'appauthor')") dirs = PlatformDirs(appname, appauthor=False) for prop in props: print("%s: %s" % (prop, getattr(dirs, prop))) PKx"T vbII[__virtualenv__/platformdirs-2.0.2-py2.py3-none-any/platformdirs-2.0.2.dist-info/LICENSE.txt# This is the MIT license Copyright (c) 2010 ActiveState Software Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PKx"TEb((X__virtualenv__/platformdirs-2.0.2-py2.py3-none-any/platformdirs-2.0.2.dist-info/METADATAMetadata-Version: 2.1 Name: platformdirs Version: 2.0.2 Summary: A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir". Home-page: https://github.com/platformdirs/platformdirs Author: Trent Mick Author-email: trentm@gmail.com Maintainer: Jeff Rouse Maintainer-email: jr@its.to License: MIT Keywords: application directory log cache user Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Topic :: Software Development :: Libraries :: Python Modules Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.* License-File: LICENSE.txt the problem =========== .. image:: https://github.com/platformdirs/platformdirs/workflows/Test/badge.svg :target: https://github.com/platformdirs/platformdirs/actions?query=workflow%3ATest What directory should your app use for storing user data? If running on macOS, you should use:: ~/Library/Application Support/ If on Windows (at least English Win XP) that should be:: C:\Documents and Settings\\Application Data\Local Settings\\ or possibly:: C:\Documents and Settings\\Application Data\\ for `roaming profiles `_ but that is another story. On Linux (and other Unices) the dir, according to the `XDG spec `_, is:: ~/.local/share/ ``platformdirs`` to the rescue ============================== This kind of thing is what the ``platformdirs`` module is for. ``platformdirs`` will help you choose an appropriate: - user data dir (``user_data_dir``) - user config dir (``user_config_dir``) - user cache dir (``user_cache_dir``) - site data dir (``site_data_dir``) - site config dir (``site_config_dir``) - user log dir (``user_log_dir``) and also: - is a single module so other Python packages can include their own private copy - is slightly opinionated on the directory names used. Look for "OPINION" in documentation and code for when an opinion is being applied. some example output =================== On macOS:: >>> from platformdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) '/Users/trentm/Library/Application Support/SuperApp' >>> site_data_dir(appname, appauthor) '/Library/Application Support/SuperApp' >>> user_cache_dir(appname, appauthor) '/Users/trentm/Library/Caches/SuperApp' >>> user_log_dir(appname, appauthor) '/Users/trentm/Library/Logs/SuperApp' On Windows 7:: >>> from platformdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp' >>> user_data_dir(appname, appauthor, roaming=True) 'C:\\Users\\trentm\\AppData\\Roaming\\Acme\\SuperApp' >>> user_cache_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Cache' >>> user_log_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Logs' On Linux:: >>> from platformdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) '/home/trentm/.local/share/SuperApp >>> site_data_dir(appname, appauthor) '/usr/local/share/SuperApp' >>> site_data_dir(appname, appauthor, multipath=True) '/usr/local/share/SuperApp:/usr/share/SuperApp' >>> user_cache_dir(appname, appauthor) '/home/trentm/.cache/SuperApp' >>> user_log_dir(appname, appauthor) '/home/trentm/.cache/SuperApp/log' >>> user_config_dir(appname) '/home/trentm/.config/SuperApp' >>> site_config_dir(appname) '/etc/xdg/SuperApp' >>> os.environ['XDG_CONFIG_DIRS'] = '/etc:/usr/local/etc' >>> site_config_dir(appname, multipath=True) '/etc/SuperApp:/usr/local/etc/SuperApp' ``PlatformDirs`` for convenience ================================ :: >>> from platformdirs import PlatformDirs >>> dirs = PlatformDirs("SuperApp", "Acme") >>> dirs.user_data_dir '/Users/trentm/Library/Application Support/SuperApp' >>> dirs.site_data_dir '/Library/Application Support/SuperApp' >>> dirs.user_cache_dir '/Users/trentm/Library/Caches/SuperApp' >>> dirs.user_log_dir '/Users/trentm/Library/Logs/SuperApp' Per-version isolation ===================== If you have multiple versions of your app in use that you want to be able to run side-by-side, then you may want version-isolation for these dirs:: >>> from platformdirs import PlatformDirs >>> dirs = PlatformDirs("SuperApp", "Acme", version="1.0") >>> dirs.user_data_dir '/Users/trentm/Library/Application Support/SuperApp/1.0' >>> dirs.site_data_dir '/Library/Application Support/SuperApp/1.0' >>> dirs.user_cache_dir '/Users/trentm/Library/Caches/SuperApp/1.0' >>> dirs.user_log_dir '/Users/trentm/Library/Logs/SuperApp/1.0' Why the Fork? ============= This repository is a friendly fork of the wonderful work started by `ActiveState `_ who created ``appdirs``, this package's ancestor. Maintaining an open source project is no easy task, particularly from within an organization, and the Python community is indebted to ``appdirs`` (and to Trent Mick and Jeff Rouse in particular) for creating an incredibly useful simple module, as evidenced by the wide number of users it has attracted over the years. Nonetheless, given the number of long-standing open issues and pull requests, and no clear path towards `ensuring that maintenance of the package would continue or grow `_, this fork was created. Contributions are most welcome. platformdirs Changelog ====================== platformdirs 2.0.0 ------------------ - **BREAKING** Name change as part of the friendly fork - **BREAKING** Remove support for end-of-life Pythons 2.6, 3.2, and 3.3 - **BREAKING** Correct the config directory on OSX/macOS - Add Python 3.7, 3.8, and 3.9 support appdirs 1.4.4 ------------- - [PR #92] Don't import appdirs from setup.py which resolves issue #91 Project officially classified as Stable which is important for inclusion in other distros such as ActivePython. appdirs 1.4.3 ------------- - [PR #76] Python 3.6 invalid escape sequence deprecation fixes - Fix for Python 3.6 support appdirs 1.4.2 ------------- - [PR #84] Allow installing without setuptools - [PR #86] Fix string delimiters in setup.py description - Add Python 3.6 support appdirs 1.4.1 ------------- - [issue #38] Fix _winreg import on Windows Py3 - [issue #55] Make appname optional appdirs 1.4.0 ------------- - [PR #42] AppAuthor is now optional on Windows - [issue 41] Support Jython on Windows, Mac, and Unix-like platforms. Windows support requires `JNA `_. - [PR #44] Fix incorrect behaviour of the site_config_dir method appdirs 1.3.0 ------------- - [Unix, issue 16] Conform to XDG standard, instead of breaking it for everybody - [Unix] Removes gratuitous case mangling of the case, since \*nix-es are usually case sensitive, so mangling is not wise - [Unix] Fixes the utterly wrong behaviour in ``site_data_dir``, return result based on XDG_DATA_DIRS and make room for respecting the standard which specifies XDG_DATA_DIRS is a multiple-value variable - [Issue 6] Add ``*_config_dir`` which are distinct on nix-es, according to XDG specs; on Windows and Mac return the corresponding ``*_data_dir`` appdirs 1.2.0 ------------- - [Unix] Put ``user_log_dir`` under the *cache* dir on Unix. Seems to be more typical. - [issue 9] Make ``unicode`` work on py3k. appdirs 1.1.0 ------------- - [issue 4] Add ``AppDirs.user_log_dir``. - [Unix, issue 2, issue 7] appdirs now conforms to `XDG base directory spec `_. - [Mac, issue 5] Fix ``site_data_dir()`` on Mac. - [Mac] Drop use of 'Carbon' module in favour of hardcoded paths; supports Python3 now. - [Windows] Append "Cache" to ``user_cache_dir`` on Windows by default. Use ``opinion=False`` option to disable this. - Add ``appdirs.AppDirs`` convenience class. Usage: >>> dirs = AppDirs("SuperApp", "Acme", version="1.0") >>> dirs.user_data_dir '/Users/trentm/Library/Application Support/SuperApp/1.0' - [Windows] Cherry-pick Komodo's change to downgrade paths to the Windows short paths if there are high bit chars. - [Linux] Change default ``user_cache_dir()`` on Linux to be singular, e.g. "~/.superapp/cache". - [Windows] Add ``roaming`` option to ``user_data_dir()`` (for use on Windows only) and change the default ``user_data_dir`` behaviour to use a *non*-roaming profile dir (``CSIDL_LOCAL_APPDATA`` instead of ``CSIDL_APPDATA``). Why? Because a large roaming profile can cause login speed issues. The "only syncs on logout" behaviour can cause surprises in appdata info. appdirs 1.0.1 (never released) ------------------------------ Started this changelog 27 July 2010. Before that this module originated in the `Komodo `_ product as ``applib.py`` and then as `applib/location.py `_ (used by `PyPM `_ in `ActivePython `_). This is basically a fork of applib.py 1.0.1 and applib/location.py 1.0.1. PKx"TȝnnU__virtualenv__/platformdirs-2.0.2-py2.py3-none-any/platformdirs-2.0.2.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.36.2) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any PKx"T;! ]__virtualenv__/platformdirs-2.0.2-py2.py3-none-any/platformdirs-2.0.2.dist-info/top_level.txtplatformdirs PKx"T]6~V__virtualenv__/platformdirs-2.0.2-py2.py3-none-any/platformdirs-2.0.2.dist-info/RECORDplatformdirs.py,sha256=vwvsSuJFZ4ETQO4EA7vd6eM7s8d6NEY_Ev7icuu2vig,29618 platformdirs-2.0.2.dist-info/LICENSE.txt,sha256=Nt200KdFqTqyAyA9cZCBSxuJcn0lTK_0jHp6-71HAAs,1097 platformdirs-2.0.2.dist-info/METADATA,sha256=NfQCBZPpq60Fu8iUw5jYkLRnjCs0NWkhhcvcx_FX5tg,10370 platformdirs-2.0.2.dist-info/WHEEL,sha256=Z-nyYpwrcSqxfdux5Mbn_DQ525iP7J2DG3JgGvOYyTQ,110 platformdirs-2.0.2.dist-info/top_level.txt,sha256=i0Q-nUAcPabcNxrgdGr0mzOEavZ4cGml0zH0oxKEFQE,13 platformdirs-2.0.2.dist-info/RECORD,, PKx"T1__virtualenv__/six-1.16.0-py2.py3-none-any/six.py# Copyright (c) 2010-2020 Benjamin Peterson # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. """Utilities for writing code that runs on Python 2 and 3""" from __future__ import absolute_import import functools import itertools import operator import sys import types __author__ = "Benjamin Peterson " __version__ = "1.16.0" # Useful for very coarse version differentiation. PY2 = sys.version_info[0] == 2 PY3 = sys.version_info[0] == 3 PY34 = sys.version_info[0:2] >= (3, 4) if PY3: string_types = str, integer_types = int, class_types = type, text_type = str binary_type = bytes MAXSIZE = sys.maxsize else: string_types = basestring, integer_types = (int, long) class_types = (type, types.ClassType) text_type = unicode binary_type = str if sys.platform.startswith("java"): # Jython always uses 32 bits. MAXSIZE = int((1 << 31) - 1) else: # It's possible to have sizeof(long) != sizeof(Py_ssize_t). class X(object): def __len__(self): return 1 << 31 try: len(X()) except OverflowError: # 32-bit MAXSIZE = int((1 << 31) - 1) else: # 64-bit MAXSIZE = int((1 << 63) - 1) del X if PY34: from importlib.util import spec_from_loader else: spec_from_loader = None def _add_doc(func, doc): """Add documentation to a function.""" func.__doc__ = doc def _import_module(name): """Import module, returning the module after the last dot.""" __import__(name) return sys.modules[name] class _LazyDescr(object): def __init__(self, name): self.name = name def __get__(self, obj, tp): result = self._resolve() setattr(obj, self.name, result) # Invokes __set__. try: # This is a bit ugly, but it avoids running this again by # removing this descriptor. delattr(obj.__class__, self.name) except AttributeError: pass return result class MovedModule(_LazyDescr): def __init__(self, name, old, new=None): super(MovedModule, self).__init__(name) if PY3: if new is None: new = name self.mod = new else: self.mod = old def _resolve(self): return _import_module(self.mod) def __getattr__(self, attr): _module = self._resolve() value = getattr(_module, attr) setattr(self, attr, value) return value class _LazyModule(types.ModuleType): def __init__(self, name): super(_LazyModule, self).__init__(name) self.__doc__ = self.__class__.__doc__ def __dir__(self): attrs = ["__doc__", "__name__"] attrs += [attr.name for attr in self._moved_attributes] return attrs # Subclasses should override this _moved_attributes = [] class MovedAttribute(_LazyDescr): def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None): super(MovedAttribute, self).__init__(name) if PY3: if new_mod is None: new_mod = name self.mod = new_mod if new_attr is None: if old_attr is None: new_attr = name else: new_attr = old_attr self.attr = new_attr else: self.mod = old_mod if old_attr is None: old_attr = name self.attr = old_attr def _resolve(self): module = _import_module(self.mod) return getattr(module, self.attr) class _SixMetaPathImporter(object): """ A meta path importer to import six.moves and its submodules. This class implements a PEP302 finder and loader. It should be compatible with Python 2.5 and all existing versions of Python3 """ def __init__(self, six_module_name): self.name = six_module_name self.known_modules = {} def _add_module(self, mod, *fullnames): for fullname in fullnames: self.known_modules[self.name + "." + fullname] = mod def _get_module(self, fullname): return self.known_modules[self.name + "." + fullname] def find_module(self, fullname, path=None): if fullname in self.known_modules: return self return None def find_spec(self, fullname, path, target=None): if fullname in self.known_modules: return spec_from_loader(fullname, self) return None def __get_module(self, fullname): try: return self.known_modules[fullname] except KeyError: raise ImportError("This loader does not know module " + fullname) def load_module(self, fullname): try: # in case of a reload return sys.modules[fullname] except KeyError: pass mod = self.__get_module(fullname) if isinstance(mod, MovedModule): mod = mod._resolve() else: mod.__loader__ = self sys.modules[fullname] = mod return mod def is_package(self, fullname): """ Return true, if the named module is a package. We need this method to get correct spec objects with Python 3.4 (see PEP451) """ return hasattr(self.__get_module(fullname), "__path__") def get_code(self, fullname): """Return None Required, if is_package is implemented""" self.__get_module(fullname) # eventually raises ImportError return None get_source = get_code # same as get_code def create_module(self, spec): return self.load_module(spec.name) def exec_module(self, module): pass _importer = _SixMetaPathImporter(__name__) class _MovedItems(_LazyModule): """Lazy loading of moved objects""" __path__ = [] # mark as package _moved_attributes = [ MovedAttribute("cStringIO", "cStringIO", "io", "StringIO"), MovedAttribute("filter", "itertools", "builtins", "ifilter", "filter"), MovedAttribute("filterfalse", "itertools", "itertools", "ifilterfalse", "filterfalse"), MovedAttribute("input", "__builtin__", "builtins", "raw_input", "input"), MovedAttribute("intern", "__builtin__", "sys"), MovedAttribute("map", "itertools", "builtins", "imap", "map"), MovedAttribute("getcwd", "os", "os", "getcwdu", "getcwd"), MovedAttribute("getcwdb", "os", "os", "getcwd", "getcwdb"), MovedAttribute("getoutput", "commands", "subprocess"), MovedAttribute("range", "__builtin__", "builtins", "xrange", "range"), MovedAttribute("reload_module", "__builtin__", "importlib" if PY34 else "imp", "reload"), MovedAttribute("reduce", "__builtin__", "functools"), MovedAttribute("shlex_quote", "pipes", "shlex", "quote"), MovedAttribute("StringIO", "StringIO", "io"), MovedAttribute("UserDict", "UserDict", "collections"), MovedAttribute("UserList", "UserList", "collections"), MovedAttribute("UserString", "UserString", "collections"), MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"), MovedAttribute("zip", "itertools", "builtins", "izip", "zip"), MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest"), MovedModule("builtins", "__builtin__"), MovedModule("configparser", "ConfigParser"), MovedModule("collections_abc", "collections", "collections.abc" if sys.version_info >= (3, 3) else "collections"), MovedModule("copyreg", "copy_reg"), MovedModule("dbm_gnu", "gdbm", "dbm.gnu"), MovedModule("dbm_ndbm", "dbm", "dbm.ndbm"), MovedModule("_dummy_thread", "dummy_thread", "_dummy_thread" if sys.version_info < (3, 9) else "_thread"), MovedModule("http_cookiejar", "cookielib", "http.cookiejar"), MovedModule("http_cookies", "Cookie", "http.cookies"), MovedModule("html_entities", "htmlentitydefs", "html.entities"), MovedModule("html_parser", "HTMLParser", "html.parser"), MovedModule("http_client", "httplib", "http.client"), MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"), MovedModule("email_mime_image", "email.MIMEImage", "email.mime.image"), MovedModule("email_mime_multipart", "email.MIMEMultipart", "email.mime.multipart"), MovedModule("email_mime_nonmultipart", "email.MIMENonMultipart", "email.mime.nonmultipart"), MovedModule("email_mime_text", "email.MIMEText", "email.mime.text"), MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"), MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"), MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"), MovedModule("cPickle", "cPickle", "pickle"), MovedModule("queue", "Queue"), MovedModule("reprlib", "repr"), MovedModule("socketserver", "SocketServer"), MovedModule("_thread", "thread", "_thread"), MovedModule("tkinter", "Tkinter"), MovedModule("tkinter_dialog", "Dialog", "tkinter.dialog"), MovedModule("tkinter_filedialog", "FileDialog", "tkinter.filedialog"), MovedModule("tkinter_scrolledtext", "ScrolledText", "tkinter.scrolledtext"), MovedModule("tkinter_simpledialog", "SimpleDialog", "tkinter.simpledialog"), MovedModule("tkinter_tix", "Tix", "tkinter.tix"), MovedModule("tkinter_ttk", "ttk", "tkinter.ttk"), MovedModule("tkinter_constants", "Tkconstants", "tkinter.constants"), MovedModule("tkinter_dnd", "Tkdnd", "tkinter.dnd"), MovedModule("tkinter_colorchooser", "tkColorChooser", "tkinter.colorchooser"), MovedModule("tkinter_commondialog", "tkCommonDialog", "tkinter.commondialog"), MovedModule("tkinter_tkfiledialog", "tkFileDialog", "tkinter.filedialog"), MovedModule("tkinter_font", "tkFont", "tkinter.font"), MovedModule("tkinter_messagebox", "tkMessageBox", "tkinter.messagebox"), MovedModule("tkinter_tksimpledialog", "tkSimpleDialog", "tkinter.simpledialog"), MovedModule("urllib_parse", __name__ + ".moves.urllib_parse", "urllib.parse"), MovedModule("urllib_error", __name__ + ".moves.urllib_error", "urllib.error"), MovedModule("urllib", __name__ + ".moves.urllib", __name__ + ".moves.urllib"), MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"), MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"), MovedModule("xmlrpc_server", "SimpleXMLRPCServer", "xmlrpc.server"), ] # Add windows specific modules. if sys.platform == "win32": _moved_attributes += [ MovedModule("winreg", "_winreg"), ] for attr in _moved_attributes: setattr(_MovedItems, attr.name, attr) if isinstance(attr, MovedModule): _importer._add_module(attr, "moves." + attr.name) del attr _MovedItems._moved_attributes = _moved_attributes moves = _MovedItems(__name__ + ".moves") _importer._add_module(moves, "moves") class Module_six_moves_urllib_parse(_LazyModule): """Lazy loading of moved objects in six.moves.urllib_parse""" _urllib_parse_moved_attributes = [ MovedAttribute("ParseResult", "urlparse", "urllib.parse"), MovedAttribute("SplitResult", "urlparse", "urllib.parse"), MovedAttribute("parse_qs", "urlparse", "urllib.parse"), MovedAttribute("parse_qsl", "urlparse", "urllib.parse"), MovedAttribute("urldefrag", "urlparse", "urllib.parse"), MovedAttribute("urljoin", "urlparse", "urllib.parse"), MovedAttribute("urlparse", "urlparse", "urllib.parse"), MovedAttribute("urlsplit", "urlparse", "urllib.parse"), MovedAttribute("urlunparse", "urlparse", "urllib.parse"), MovedAttribute("urlunsplit", "urlparse", "urllib.parse"), MovedAttribute("quote", "urllib", "urllib.parse"), MovedAttribute("quote_plus", "urllib", "urllib.parse"), MovedAttribute("unquote", "urllib", "urllib.parse"), MovedAttribute("unquote_plus", "urllib", "urllib.parse"), MovedAttribute("unquote_to_bytes", "urllib", "urllib.parse", "unquote", "unquote_to_bytes"), MovedAttribute("urlencode", "urllib", "urllib.parse"), MovedAttribute("splitquery", "urllib", "urllib.parse"), MovedAttribute("splittag", "urllib", "urllib.parse"), MovedAttribute("splituser", "urllib", "urllib.parse"), MovedAttribute("splitvalue", "urllib", "urllib.parse"), MovedAttribute("uses_fragment", "urlparse", "urllib.parse"), MovedAttribute("uses_netloc", "urlparse", "urllib.parse"), MovedAttribute("uses_params", "urlparse", "urllib.parse"), MovedAttribute("uses_query", "urlparse", "urllib.parse"), MovedAttribute("uses_relative", "urlparse", "urllib.parse"), ] for attr in _urllib_parse_moved_attributes: setattr(Module_six_moves_urllib_parse, attr.name, attr) del attr Module_six_moves_urllib_parse._moved_attributes = _urllib_parse_moved_attributes _importer._add_module(Module_six_moves_urllib_parse(__name__ + ".moves.urllib_parse"), "moves.urllib_parse", "moves.urllib.parse") class Module_six_moves_urllib_error(_LazyModule): """Lazy loading of moved objects in six.moves.urllib_error""" _urllib_error_moved_attributes = [ MovedAttribute("URLError", "urllib2", "urllib.error"), MovedAttribute("HTTPError", "urllib2", "urllib.error"), MovedAttribute("ContentTooShortError", "urllib", "urllib.error"), ] for attr in _urllib_error_moved_attributes: setattr(Module_six_moves_urllib_error, attr.name, attr) del attr Module_six_moves_urllib_error._moved_attributes = _urllib_error_moved_attributes _importer._add_module(Module_six_moves_urllib_error(__name__ + ".moves.urllib.error"), "moves.urllib_error", "moves.urllib.error") class Module_six_moves_urllib_request(_LazyModule): """Lazy loading of moved objects in six.moves.urllib_request""" _urllib_request_moved_attributes = [ MovedAttribute("urlopen", "urllib2", "urllib.request"), MovedAttribute("install_opener", "urllib2", "urllib.request"), MovedAttribute("build_opener", "urllib2", "urllib.request"), MovedAttribute("pathname2url", "urllib", "urllib.request"), MovedAttribute("url2pathname", "urllib", "urllib.request"), MovedAttribute("getproxies", "urllib", "urllib.request"), MovedAttribute("Request", "urllib2", "urllib.request"), MovedAttribute("OpenerDirector", "urllib2", "urllib.request"), MovedAttribute("HTTPDefaultErrorHandler", "urllib2", "urllib.request"), MovedAttribute("HTTPRedirectHandler", "urllib2", "urllib.request"), MovedAttribute("HTTPCookieProcessor", "urllib2", "urllib.request"), MovedAttribute("ProxyHandler", "urllib2", "urllib.request"), MovedAttribute("BaseHandler", "urllib2", "urllib.request"), MovedAttribute("HTTPPasswordMgr", "urllib2", "urllib.request"), MovedAttribute("HTTPPasswordMgrWithDefaultRealm", "urllib2", "urllib.request"), MovedAttribute("AbstractBasicAuthHandler", "urllib2", "urllib.request"), MovedAttribute("HTTPBasicAuthHandler", "urllib2", "urllib.request"), MovedAttribute("ProxyBasicAuthHandler", "urllib2", "urllib.request"), MovedAttribute("AbstractDigestAuthHandler", "urllib2", "urllib.request"), MovedAttribute("HTTPDigestAuthHandler", "urllib2", "urllib.request"), MovedAttribute("ProxyDigestAuthHandler", "urllib2", "urllib.request"), MovedAttribute("HTTPHandler", "urllib2", "urllib.request"), MovedAttribute("HTTPSHandler", "urllib2", "urllib.request"), MovedAttribute("FileHandler", "urllib2", "urllib.request"), MovedAttribute("FTPHandler", "urllib2", "urllib.request"), MovedAttribute("CacheFTPHandler", "urllib2", "urllib.request"), MovedAttribute("UnknownHandler", "urllib2", "urllib.request"), MovedAttribute("HTTPErrorProcessor", "urllib2", "urllib.request"), MovedAttribute("urlretrieve", "urllib", "urllib.request"), MovedAttribute("urlcleanup", "urllib", "urllib.request"), MovedAttribute("URLopener", "urllib", "urllib.request"), MovedAttribute("FancyURLopener", "urllib", "urllib.request"), MovedAttribute("proxy_bypass", "urllib", "urllib.request"), MovedAttribute("parse_http_list", "urllib2", "urllib.request"), MovedAttribute("parse_keqv_list", "urllib2", "urllib.request"), ] for attr in _urllib_request_moved_attributes: setattr(Module_six_moves_urllib_request, attr.name, attr) del attr Module_six_moves_urllib_request._moved_attributes = _urllib_request_moved_attributes _importer._add_module(Module_six_moves_urllib_request(__name__ + ".moves.urllib.request"), "moves.urllib_request", "moves.urllib.request") class Module_six_moves_urllib_response(_LazyModule): """Lazy loading of moved objects in six.moves.urllib_response""" _urllib_response_moved_attributes = [ MovedAttribute("addbase", "urllib", "urllib.response"), MovedAttribute("addclosehook", "urllib", "urllib.response"), MovedAttribute("addinfo", "urllib", "urllib.response"), MovedAttribute("addinfourl", "urllib", "urllib.response"), ] for attr in _urllib_response_moved_attributes: setattr(Module_six_moves_urllib_response, attr.name, attr) del attr Module_six_moves_urllib_response._moved_attributes = _urllib_response_moved_attributes _importer._add_module(Module_six_moves_urllib_response(__name__ + ".moves.urllib.response"), "moves.urllib_response", "moves.urllib.response") class Module_six_moves_urllib_robotparser(_LazyModule): """Lazy loading of moved objects in six.moves.urllib_robotparser""" _urllib_robotparser_moved_attributes = [ MovedAttribute("RobotFileParser", "robotparser", "urllib.robotparser"), ] for attr in _urllib_robotparser_moved_attributes: setattr(Module_six_moves_urllib_robotparser, attr.name, attr) del attr Module_six_moves_urllib_robotparser._moved_attributes = _urllib_robotparser_moved_attributes _importer._add_module(Module_six_moves_urllib_robotparser(__name__ + ".moves.urllib.robotparser"), "moves.urllib_robotparser", "moves.urllib.robotparser") class Module_six_moves_urllib(types.ModuleType): """Create a six.moves.urllib namespace that resembles the Python 3 namespace""" __path__ = [] # mark as package parse = _importer._get_module("moves.urllib_parse") error = _importer._get_module("moves.urllib_error") request = _importer._get_module("moves.urllib_request") response = _importer._get_module("moves.urllib_response") robotparser = _importer._get_module("moves.urllib_robotparser") def __dir__(self): return ['parse', 'error', 'request', 'response', 'robotparser'] _importer._add_module(Module_six_moves_urllib(__name__ + ".moves.urllib"), "moves.urllib") def add_move(move): """Add an item to six.moves.""" setattr(_MovedItems, move.name, move) def remove_move(name): """Remove item from six.moves.""" try: delattr(_MovedItems, name) except AttributeError: try: del moves.__dict__[name] except KeyError: raise AttributeError("no such move, %r" % (name,)) if PY3: _meth_func = "__func__" _meth_self = "__self__" _func_closure = "__closure__" _func_code = "__code__" _func_defaults = "__defaults__" _func_globals = "__globals__" else: _meth_func = "im_func" _meth_self = "im_self" _func_closure = "func_closure" _func_code = "func_code" _func_defaults = "func_defaults" _func_globals = "func_globals" try: advance_iterator = next except NameError: def advance_iterator(it): return it.next() next = advance_iterator try: callable = callable except NameError: def callable(obj): return any("__call__" in klass.__dict__ for klass in type(obj).__mro__) if PY3: def get_unbound_function(unbound): return unbound create_bound_method = types.MethodType def create_unbound_method(func, cls): return func Iterator = object else: def get_unbound_function(unbound): return unbound.im_func def create_bound_method(func, obj): return types.MethodType(func, obj, obj.__class__) def create_unbound_method(func, cls): return types.MethodType(func, None, cls) class Iterator(object): def next(self): return type(self).__next__(self) callable = callable _add_doc(get_unbound_function, """Get the function out of a possibly unbound function""") get_method_function = operator.attrgetter(_meth_func) get_method_self = operator.attrgetter(_meth_self) get_function_closure = operator.attrgetter(_func_closure) get_function_code = operator.attrgetter(_func_code) get_function_defaults = operator.attrgetter(_func_defaults) get_function_globals = operator.attrgetter(_func_globals) if PY3: def iterkeys(d, **kw): return iter(d.keys(**kw)) def itervalues(d, **kw): return iter(d.values(**kw)) def iteritems(d, **kw): return iter(d.items(**kw)) def iterlists(d, **kw): return iter(d.lists(**kw)) viewkeys = operator.methodcaller("keys") viewvalues = operator.methodcaller("values") viewitems = operator.methodcaller("items") else: def iterkeys(d, **kw): return d.iterkeys(**kw) def itervalues(d, **kw): return d.itervalues(**kw) def iteritems(d, **kw): return d.iteritems(**kw) def iterlists(d, **kw): return d.iterlists(**kw) viewkeys = operator.methodcaller("viewkeys") viewvalues = operator.methodcaller("viewvalues") viewitems = operator.methodcaller("viewitems") _add_doc(iterkeys, "Return an iterator over the keys of a dictionary.") _add_doc(itervalues, "Return an iterator over the values of a dictionary.") _add_doc(iteritems, "Return an iterator over the (key, value) pairs of a dictionary.") _add_doc(iterlists, "Return an iterator over the (key, [values]) pairs of a dictionary.") if PY3: def b(s): return s.encode("latin-1") def u(s): return s unichr = chr import struct int2byte = struct.Struct(">B").pack del struct byte2int = operator.itemgetter(0) indexbytes = operator.getitem iterbytes = iter import io StringIO = io.StringIO BytesIO = io.BytesIO del io _assertCountEqual = "assertCountEqual" if sys.version_info[1] <= 1: _assertRaisesRegex = "assertRaisesRegexp" _assertRegex = "assertRegexpMatches" _assertNotRegex = "assertNotRegexpMatches" else: _assertRaisesRegex = "assertRaisesRegex" _assertRegex = "assertRegex" _assertNotRegex = "assertNotRegex" else: def b(s): return s # Workaround for standalone backslash def u(s): return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape") unichr = unichr int2byte = chr def byte2int(bs): return ord(bs[0]) def indexbytes(buf, i): return ord(buf[i]) iterbytes = functools.partial(itertools.imap, ord) import StringIO StringIO = BytesIO = StringIO.StringIO _assertCountEqual = "assertItemsEqual" _assertRaisesRegex = "assertRaisesRegexp" _assertRegex = "assertRegexpMatches" _assertNotRegex = "assertNotRegexpMatches" _add_doc(b, """Byte literal""") _add_doc(u, """Text literal""") def assertCountEqual(self, *args, **kwargs): return getattr(self, _assertCountEqual)(*args, **kwargs) def assertRaisesRegex(self, *args, **kwargs): return getattr(self, _assertRaisesRegex)(*args, **kwargs) def assertRegex(self, *args, **kwargs): return getattr(self, _assertRegex)(*args, **kwargs) def assertNotRegex(self, *args, **kwargs): return getattr(self, _assertNotRegex)(*args, **kwargs) if PY3: exec_ = getattr(moves.builtins, "exec") def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: raise value.with_traceback(tb) raise value finally: value = None tb = None else: def exec_(_code_, _globs_=None, _locs_=None): """Execute code in a namespace.""" if _globs_ is None: frame = sys._getframe(1) _globs_ = frame.f_globals if _locs_ is None: _locs_ = frame.f_locals del frame elif _locs_ is None: _locs_ = _globs_ exec("""exec _code_ in _globs_, _locs_""") exec_("""def reraise(tp, value, tb=None): try: raise tp, value, tb finally: tb = None """) if sys.version_info[:2] > (3,): exec_("""def raise_from(value, from_value): try: raise value from from_value finally: value = None """) else: def raise_from(value, from_value): raise value print_ = getattr(moves.builtins, "print", None) if print_ is None: def print_(*args, **kwargs): """The new-style print function for Python 2.4 and 2.5.""" fp = kwargs.pop("file", sys.stdout) if fp is None: return def write(data): if not isinstance(data, basestring): data = str(data) # If the file has an encoding, encode unicode with it. if (isinstance(fp, file) and isinstance(data, unicode) and fp.encoding is not None): errors = getattr(fp, "errors", None) if errors is None: errors = "strict" data = data.encode(fp.encoding, errors) fp.write(data) want_unicode = False sep = kwargs.pop("sep", None) if sep is not None: if isinstance(sep, unicode): want_unicode = True elif not isinstance(sep, str): raise TypeError("sep must be None or a string") end = kwargs.pop("end", None) if end is not None: if isinstance(end, unicode): want_unicode = True elif not isinstance(end, str): raise TypeError("end must be None or a string") if kwargs: raise TypeError("invalid keyword arguments to print()") if not want_unicode: for arg in args: if isinstance(arg, unicode): want_unicode = True break if want_unicode: newline = unicode("\n") space = unicode(" ") else: newline = "\n" space = " " if sep is None: sep = space if end is None: end = newline for i, arg in enumerate(args): if i: write(sep) write(arg) write(end) if sys.version_info[:2] < (3, 3): _print = print_ def print_(*args, **kwargs): fp = kwargs.get("file", sys.stdout) flush = kwargs.pop("flush", False) _print(*args, **kwargs) if flush and fp is not None: fp.flush() _add_doc(reraise, """Reraise an exception.""") if sys.version_info[0:2] < (3, 4): # This does exactly the same what the :func:`py3:functools.update_wrapper` # function does on Python versions after 3.2. It sets the ``__wrapped__`` # attribute on ``wrapper`` object and it doesn't raise an error if any of # the attributes mentioned in ``assigned`` and ``updated`` are missing on # ``wrapped`` object. def _update_wrapper(wrapper, wrapped, assigned=functools.WRAPPER_ASSIGNMENTS, updated=functools.WRAPPER_UPDATES): for attr in assigned: try: value = getattr(wrapped, attr) except AttributeError: continue else: setattr(wrapper, attr, value) for attr in updated: getattr(wrapper, attr).update(getattr(wrapped, attr, {})) wrapper.__wrapped__ = wrapped return wrapper _update_wrapper.__doc__ = functools.update_wrapper.__doc__ def wraps(wrapped, assigned=functools.WRAPPER_ASSIGNMENTS, updated=functools.WRAPPER_UPDATES): return functools.partial(_update_wrapper, wrapped=wrapped, assigned=assigned, updated=updated) wraps.__doc__ = functools.wraps.__doc__ else: wraps = functools.wraps def with_metaclass(meta, *bases): """Create a base class with a metaclass.""" # This requires a bit of explanation: the basic idea is to make a dummy # metaclass for one level of class instantiation that replaces itself with # the actual metaclass. class metaclass(type): def __new__(cls, name, this_bases, d): if sys.version_info[:2] >= (3, 7): # This version introduced PEP 560 that requires a bit # of extra care (we mimic what is done by __build_class__). resolved_bases = types.resolve_bases(bases) if resolved_bases is not bases: d['__orig_bases__'] = bases else: resolved_bases = bases return meta(name, resolved_bases, d) @classmethod def __prepare__(cls, name, this_bases): return meta.__prepare__(name, bases) return type.__new__(metaclass, 'temporary_class', (), {}) def add_metaclass(metaclass): """Class decorator for creating a class with a metaclass.""" def wrapper(cls): orig_vars = cls.__dict__.copy() slots = orig_vars.get('__slots__') if slots is not None: if isinstance(slots, str): slots = [slots] for slots_var in slots: orig_vars.pop(slots_var) orig_vars.pop('__dict__', None) orig_vars.pop('__weakref__', None) if hasattr(cls, '__qualname__'): orig_vars['__qualname__'] = cls.__qualname__ return metaclass(cls.__name__, cls.__bases__, orig_vars) return wrapper def ensure_binary(s, encoding='utf-8', errors='strict'): """Coerce **s** to six.binary_type. For Python 2: - `unicode` -> encoded to `str` - `str` -> `str` For Python 3: - `str` -> encoded to `bytes` - `bytes` -> `bytes` """ if isinstance(s, binary_type): return s if isinstance(s, text_type): return s.encode(encoding, errors) raise TypeError("not expecting type '%s'" % type(s)) def ensure_str(s, encoding='utf-8', errors='strict'): """Coerce *s* to `str`. For Python 2: - `unicode` -> encoded to `str` - `str` -> `str` For Python 3: - `str` -> `str` - `bytes` -> decoded to `str` """ # Optimization: Fast return for the common case. if type(s) is str: return s if PY2 and isinstance(s, text_type): return s.encode(encoding, errors) elif PY3 and isinstance(s, binary_type): return s.decode(encoding, errors) elif not isinstance(s, (text_type, binary_type)): raise TypeError("not expecting type '%s'" % type(s)) return s def ensure_text(s, encoding='utf-8', errors='strict'): """Coerce *s* to six.text_type. For Python 2: - `unicode` -> `unicode` - `str` -> `unicode` For Python 3: - `str` -> `str` - `bytes` -> decoded to `str` """ if isinstance(s, binary_type): return s.decode(encoding, errors) elif isinstance(s, text_type): return s else: raise TypeError("not expecting type '%s'" % type(s)) def python_2_unicode_compatible(klass): """ A class decorator that defines __unicode__ and __str__ methods under Python 2. Under Python 3 it does nothing. To support Python 2 and 3 with a single code base, define a __str__ method returning text and apply this decorator to the class. """ if PY2: if '__str__' not in klass.__dict__: raise ValueError("@python_2_unicode_compatible cannot be applied " "to %s because it doesn't define __str__()." % klass.__name__) klass.__unicode__ = klass.__str__ klass.__str__ = lambda self: self.__unicode__().encode('utf-8') return klass # Complete the moves implementation. # This code is at the end of this module to speed up module loading. # Turn this module into a package. __path__ = [] # required for PEP 302 and PEP 451 __package__ = __name__ # see PEP 366 @ReservedAssignment if globals().get("__spec__") is not None: __spec__.submodule_search_locations = [] # PEP 451 @UndefinedVariable # Remove other six meta path importers, since they cause problems. This can # happen if six is removed from sys.modules and then reloaded. (Setuptools does # this for some reason.) if sys.meta_path: for i, importer in enumerate(sys.meta_path): # Here's some real nastiness: Another "instance" of the six module might # be floating around. Therefore, we can't use isinstance() to check for # the six meta path importer, since the other six instance will have # inserted an importer with different class. if (type(importer).__name__ == "_SixMetaPathImporter" and importer.name == __name__): del sys.meta_path[i] break del i, importer # Finally, add the importer to the meta path import hook. sys.meta_path.append(_importer) PKx"T^خ**G__virtualenv__/six-1.16.0-py2.py3-none-any/six-1.16.0.dist-info/LICENSECopyright (c) 2010-2020 Benjamin Peterson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PKx"T 4H__virtualenv__/six-1.16.0-py2.py3-none-any/six-1.16.0.dist-info/METADATAMetadata-Version: 2.1 Name: six Version: 1.16.0 Summary: Python 2 and 3 compatibility utilities Home-page: https://github.com/benjaminp/six Author: Benjamin Peterson Author-email: benjamin@python.org License: MIT Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 3 Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Topic :: Software Development :: Libraries Classifier: Topic :: Utilities Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.* .. image:: https://img.shields.io/pypi/v/six.svg :target: https://pypi.org/project/six/ :alt: six on PyPI .. image:: https://travis-ci.org/benjaminp/six.svg?branch=master :target: https://travis-ci.org/benjaminp/six :alt: six on TravisCI .. image:: https://readthedocs.org/projects/six/badge/?version=latest :target: https://six.readthedocs.io/ :alt: six's documentation on Read the Docs .. image:: https://img.shields.io/badge/license-MIT-green.svg :target: https://github.com/benjaminp/six/blob/master/LICENSE :alt: MIT License badge Six is a Python 2 and 3 compatibility library. It provides utility functions for smoothing over the differences between the Python versions with the goal of writing Python code that is compatible on both Python versions. See the documentation for more information on what is provided. Six supports Python 2.7 and 3.3+. It is contained in only one Python file, so it can be easily copied into your project. (The copyright and license notice must be retained.) Online documentation is at https://six.readthedocs.io/. Bugs can be reported to https://github.com/benjaminp/six. The code can also be found there. PKx"TȝnnE__virtualenv__/six-1.16.0-py2.py3-none-any/six-1.16.0.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.36.2) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any PKx"T!:M__virtualenv__/six-1.16.0-py2.py3-none-any/six-1.16.0.dist-info/top_level.txtsix PKx"T.#F__virtualenv__/six-1.16.0-py2.py3-none-any/six-1.16.0.dist-info/RECORDsix.py,sha256=TOOfQi7nFGfMrIvtdr6wX4wyHH8M7aknmuLfo2cBBrM,34549 six-1.16.0.dist-info/LICENSE,sha256=i7hQxWWqOJ_cFvOkaWWtI9gq3_YPI5P8J2K2MYXo5sk,1066 six-1.16.0.dist-info/METADATA,sha256=VQcGIFCAEmfZcl77E5riPCN4v2TIsc_qtacnjxKHJoI,1795 six-1.16.0.dist-info/WHEEL,sha256=Z-nyYpwrcSqxfdux5Mbn_DQ525iP7J2DG3JgGvOYyTQ,110 six-1.16.0.dist-info/top_level.txt,sha256=_iVH_iYEtEXnD8nYGQYpYFUvkUW9sEO1GYbkeKSAais,4 six-1.16.0.dist-info/RECORD,, PKx"TXcuuT__virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata/__init__.pyimport os import re import abc import csv import sys import zipp import email import pathlib import operator import textwrap import warnings import functools import itertools import posixpath import collections from . import _adapters, _meta from ._collections import FreezableDefaultDict, Pair from ._compat import ( NullFinder, install, pypy_partial, ) from ._functools import method_cache, pass_none from ._itertools import always_iterable, unique_everseen from ._meta import PackageMetadata, SimplePath from contextlib import suppress from importlib import import_module from importlib.abc import MetaPathFinder from itertools import starmap from typing import List, Mapping, Optional, Union __all__ = [ 'Distribution', 'DistributionFinder', 'PackageMetadata', 'PackageNotFoundError', 'distribution', 'distributions', 'entry_points', 'files', 'metadata', 'packages_distributions', 'requires', 'version', ] class PackageNotFoundError(ModuleNotFoundError): """The package was not found.""" def __str__(self): return f"No package metadata was found for {self.name}" @property def name(self): (name,) = self.args return name class Sectioned: """ A simple entry point config parser for performance >>> for item in Sectioned.read(Sectioned._sample): ... print(item) Pair(name='sec1', value='# comments ignored') Pair(name='sec1', value='a = 1') Pair(name='sec1', value='b = 2') Pair(name='sec2', value='a = 2') >>> res = Sectioned.section_pairs(Sectioned._sample) >>> item = next(res) >>> item.name 'sec1' >>> item.value Pair(name='a', value='1') >>> item = next(res) >>> item.value Pair(name='b', value='2') >>> item = next(res) >>> item.name 'sec2' >>> item.value Pair(name='a', value='2') >>> list(res) [] """ _sample = textwrap.dedent( """ [sec1] # comments ignored a = 1 b = 2 [sec2] a = 2 """ ).lstrip() @classmethod def section_pairs(cls, text): return ( section._replace(value=Pair.parse(section.value)) for section in cls.read(text, filter_=cls.valid) if section.name is not None ) @staticmethod def read(text, filter_=None): lines = filter(filter_, map(str.strip, text.splitlines())) name = None for value in lines: section_match = value.startswith('[') and value.endswith(']') if section_match: name = value.strip('[]') continue yield Pair(name, value) @staticmethod def valid(line): return line and not line.startswith('#') class DeprecatedTuple: """ Provide subscript item access for backward compatibility. >>> recwarn = getfixture('recwarn') >>> ep = EntryPoint(name='name', value='value', group='group') >>> ep[:] ('name', 'value', 'group') >>> ep[0] 'name' >>> len(recwarn) 1 """ _warn = functools.partial( warnings.warn, "EntryPoint tuple interface is deprecated. Access members by name.", DeprecationWarning, stacklevel=pypy_partial(2), ) def __getitem__(self, item): self._warn() return self._key()[item] class EntryPoint(DeprecatedTuple): """An entry point as defined by Python packaging conventions. See `the packaging docs on entry points `_ for more information. """ pattern = re.compile( r'(?P[\w.]+)\s*' r'(:\s*(?P[\w.]+))?\s*' r'(?P\[.*\])?\s*$' ) """ A regular expression describing the syntax for an entry point, which might look like: - module - package.module - package.module:attribute - package.module:object.attribute - package.module:attr [extra1, extra2] Other combinations are possible as well. The expression is lenient about whitespace around the ':', following the attr, and following any extras. """ dist: Optional['Distribution'] = None def __init__(self, name, value, group): vars(self).update(name=name, value=value, group=group) def load(self): """Load the entry point from its definition. If only a module is indicated by the value, return that module. Otherwise, return the named object. """ match = self.pattern.match(self.value) module = import_module(match.group('module')) attrs = filter(None, (match.group('attr') or '').split('.')) return functools.reduce(getattr, attrs, module) @property def module(self): match = self.pattern.match(self.value) return match.group('module') @property def attr(self): match = self.pattern.match(self.value) return match.group('attr') @property def extras(self): match = self.pattern.match(self.value) return list(re.finditer(r'\w+', match.group('extras') or '')) def _for(self, dist): vars(self).update(dist=dist) return self def __iter__(self): """ Supply iter so one may construct dicts of EntryPoints by name. """ msg = ( "Construction of dict of EntryPoints is deprecated in " "favor of EntryPoints." ) warnings.warn(msg, DeprecationWarning) return iter((self.name, self)) def matches(self, **params): attrs = (getattr(self, param) for param in params) return all(map(operator.eq, params.values(), attrs)) def _key(self): return self.name, self.value, self.group def __lt__(self, other): return self._key() < other._key() def __eq__(self, other): return self._key() == other._key() def __setattr__(self, name, value): raise AttributeError("EntryPoint objects are immutable.") def __repr__(self): return ( f'EntryPoint(name={self.name!r}, value={self.value!r}, ' f'group={self.group!r})' ) def __hash__(self): return hash(self._key()) class DeprecatedList(list): """ Allow an otherwise immutable object to implement mutability for compatibility. >>> recwarn = getfixture('recwarn') >>> dl = DeprecatedList(range(3)) >>> dl[0] = 1 >>> dl.append(3) >>> del dl[3] >>> dl.reverse() >>> dl.sort() >>> dl.extend([4]) >>> dl.pop(-1) 4 >>> dl.remove(1) >>> dl += [5] >>> dl + [6] [1, 2, 5, 6] >>> dl + (6,) [1, 2, 5, 6] >>> dl.insert(0, 0) >>> dl [0, 1, 2, 5] >>> dl == [0, 1, 2, 5] True >>> dl == (0, 1, 2, 5) True >>> len(recwarn) 1 """ _warn = functools.partial( warnings.warn, "EntryPoints list interface is deprecated. Cast to list if needed.", DeprecationWarning, stacklevel=pypy_partial(2), ) def _wrap_deprecated_method(method_name: str): # type: ignore def wrapped(self, *args, **kwargs): self._warn() return getattr(super(), method_name)(*args, **kwargs) return wrapped for method_name in [ '__setitem__', '__delitem__', 'append', 'reverse', 'extend', 'pop', 'remove', '__iadd__', 'insert', 'sort', ]: locals()[method_name] = _wrap_deprecated_method(method_name) def __add__(self, other): if not isinstance(other, tuple): self._warn() other = tuple(other) return self.__class__(tuple(self) + other) def __eq__(self, other): if not isinstance(other, tuple): self._warn() other = tuple(other) return tuple(self).__eq__(other) class EntryPoints(DeprecatedList): """ An immutable collection of selectable EntryPoint objects. """ __slots__ = () def __getitem__(self, name): # -> EntryPoint: """ Get the EntryPoint in self matching name. """ if isinstance(name, int): warnings.warn( "Accessing entry points by index is deprecated. " "Cast to tuple if needed.", DeprecationWarning, stacklevel=2, ) return super().__getitem__(name) try: return next(iter(self.select(name=name))) except StopIteration: raise KeyError(name) def select(self, **params): """ Select entry points from self that match the given parameters (typically group and/or name). """ return EntryPoints(ep for ep in self if ep.matches(**params)) @property def names(self): """ Return the set of all names of all entry points. """ return {ep.name for ep in self} @property def groups(self): """ Return the set of all groups of all entry points. For coverage while SelectableGroups is present. >>> EntryPoints().groups set() """ return {ep.group for ep in self} @classmethod def _from_text_for(cls, text, dist): return cls(ep._for(dist) for ep in cls._from_text(text)) @staticmethod def _from_text(text): return ( EntryPoint(name=item.value.name, value=item.value.value, group=item.name) for item in Sectioned.section_pairs(text or '') ) class Deprecated: """ Compatibility add-in for mapping to indicate that mapping behavior is deprecated. >>> recwarn = getfixture('recwarn') >>> class DeprecatedDict(Deprecated, dict): pass >>> dd = DeprecatedDict(foo='bar') >>> dd.get('baz', None) >>> dd['foo'] 'bar' >>> list(dd) ['foo'] >>> list(dd.keys()) ['foo'] >>> 'foo' in dd True >>> list(dd.values()) ['bar'] >>> len(recwarn) 1 """ _warn = functools.partial( warnings.warn, "SelectableGroups dict interface is deprecated. Use select.", DeprecationWarning, stacklevel=pypy_partial(2), ) def __getitem__(self, name): self._warn() return super().__getitem__(name) def get(self, name, default=None): self._warn() return super().get(name, default) def __iter__(self): self._warn() return super().__iter__() def __contains__(self, *args): self._warn() return super().__contains__(*args) def keys(self): self._warn() return super().keys() def values(self): self._warn() return super().values() class SelectableGroups(Deprecated, dict): """ A backward- and forward-compatible result from entry_points that fully implements the dict interface. """ @classmethod def load(cls, eps): by_group = operator.attrgetter('group') ordered = sorted(eps, key=by_group) grouped = itertools.groupby(ordered, by_group) return cls((group, EntryPoints(eps)) for group, eps in grouped) @property def _all(self): """ Reconstruct a list of all entrypoints from the groups. """ groups = super(Deprecated, self).values() return EntryPoints(itertools.chain.from_iterable(groups)) @property def groups(self): return self._all.groups @property def names(self): """ for coverage: >>> SelectableGroups().names set() """ return self._all.names def select(self, **params): if not params: return self return self._all.select(**params) class PackagePath(pathlib.PurePosixPath): """A reference to a path in a package""" def read_text(self, encoding='utf-8'): with self.locate().open(encoding=encoding) as stream: return stream.read() def read_binary(self): with self.locate().open('rb') as stream: return stream.read() def locate(self): """Return a path-like object for this path""" return self.dist.locate_file(self) class FileHash: def __init__(self, spec): self.mode, _, self.value = spec.partition('=') def __repr__(self): return f'' class Distribution: """A Python distribution package.""" @abc.abstractmethod def read_text(self, filename): """Attempt to load metadata file given by the name. :param filename: The name of the file in the distribution info. :return: The text if found, otherwise None. """ @abc.abstractmethod def locate_file(self, path): """ Given a path to a file in this distribution, return a path to it. """ @classmethod def from_name(cls, name): """Return the Distribution for the given package name. :param name: The name of the distribution package to search for. :return: The Distribution instance (or subclass thereof) for the named package, if found. :raises PackageNotFoundError: When the named package's distribution metadata cannot be found. """ for resolver in cls._discover_resolvers(): dists = resolver(DistributionFinder.Context(name=name)) dist = next(iter(dists), None) if dist is not None: return dist else: raise PackageNotFoundError(name) @classmethod def discover(cls, **kwargs): """Return an iterable of Distribution objects for all packages. Pass a ``context`` or pass keyword arguments for constructing a context. :context: A ``DistributionFinder.Context`` object. :return: Iterable of Distribution objects for all packages. """ context = kwargs.pop('context', None) if context and kwargs: raise ValueError("cannot accept context and kwargs") context = context or DistributionFinder.Context(**kwargs) return itertools.chain.from_iterable( resolver(context) for resolver in cls._discover_resolvers() ) @staticmethod def at(path): """Return a Distribution for the indicated metadata path :param path: a string or path-like object :return: a concrete Distribution instance for the path """ return PathDistribution(pathlib.Path(path)) @staticmethod def _discover_resolvers(): """Search the meta_path for resolvers.""" declared = ( getattr(finder, 'find_distributions', None) for finder in sys.meta_path ) return filter(None, declared) @property def metadata(self) -> _meta.PackageMetadata: """Return the parsed metadata for this Distribution. The returned object will have keys that name the various bits of metadata. See PEP 566 for details. """ text = ( self.read_text('METADATA') or self.read_text('PKG-INFO') # This last clause is here to support old egg-info files. Its # effect is to just end up using the PathDistribution's self._path # (which points to the egg-info file) attribute unchanged. or self.read_text('') ) return _adapters.Message(email.message_from_string(text)) @property def name(self): """Return the 'Name' metadata for the distribution package.""" return self.metadata['Name'] @property def _normalized_name(self): """Return a normalized version of the name.""" return Prepared.normalize(self.name) @property def version(self): """Return the 'Version' metadata for the distribution package.""" return self.metadata['Version'] @property def entry_points(self): return EntryPoints._from_text_for(self.read_text('entry_points.txt'), self) @property def files(self): """Files in this distribution. :return: List of PackagePath for this distribution or None Result is `None` if the metadata file that enumerates files (i.e. RECORD for dist-info or SOURCES.txt for egg-info) is missing. Result may be empty if the metadata exists but is empty. """ def make_file(name, hash=None, size_str=None): result = PackagePath(name) result.hash = FileHash(hash) if hash else None result.size = int(size_str) if size_str else None result.dist = self return result @pass_none def make_files(lines): return list(starmap(make_file, csv.reader(lines))) return make_files(self._read_files_distinfo() or self._read_files_egginfo()) def _read_files_distinfo(self): """ Read the lines of RECORD """ text = self.read_text('RECORD') return text and text.splitlines() def _read_files_egginfo(self): """ SOURCES.txt might contain literal commas, so wrap each line in quotes. """ text = self.read_text('SOURCES.txt') return text and map('"{}"'.format, text.splitlines()) @property def requires(self): """Generated requirements specified for this Distribution""" reqs = self._read_dist_info_reqs() or self._read_egg_info_reqs() return reqs and list(reqs) def _read_dist_info_reqs(self): return self.metadata.get_all('Requires-Dist') def _read_egg_info_reqs(self): source = self.read_text('requires.txt') return source and self._deps_from_requires_text(source) @classmethod def _deps_from_requires_text(cls, source): return cls._convert_egg_info_reqs_to_simple_reqs(Sectioned.read(source)) @staticmethod def _convert_egg_info_reqs_to_simple_reqs(sections): """ Historically, setuptools would solicit and store 'extra' requirements, including those with environment markers, in separate sections. More modern tools expect each dependency to be defined separately, with any relevant extras and environment markers attached directly to that requirement. This method converts the former to the latter. See _test_deps_from_requires_text for an example. """ def make_condition(name): return name and f'extra == "{name}"' def quoted_marker(section): section = section or '' extra, sep, markers = section.partition(':') if extra and markers: markers = f'({markers})' conditions = list(filter(None, [markers, make_condition(extra)])) return '; ' + ' and '.join(conditions) if conditions else '' def url_req_space(req): """ PEP 508 requires a space between the url_spec and the quoted_marker. Ref python/importlib_metadata#357. """ # '@' is uniquely indicative of a url_req. return ' ' * ('@' in req) for section in sections: space = url_req_space(section.value) yield section.value + space + quoted_marker(section.name) class DistributionFinder(MetaPathFinder): """ A MetaPathFinder capable of discovering installed distributions. """ class Context: """ Keyword arguments presented by the caller to ``distributions()`` or ``Distribution.discover()`` to narrow the scope of a search for distributions in all DistributionFinders. Each DistributionFinder may expect any parameters and should attempt to honor the canonical parameters defined below when appropriate. """ name = None """ Specific name for which a distribution finder should match. A name of ``None`` matches all distributions. """ def __init__(self, **kwargs): vars(self).update(kwargs) @property def path(self): """ The sequence of directory path that a distribution finder should search. Typically refers to Python installed package paths such as "site-packages" directories and defaults to ``sys.path``. """ return vars(self).get('path', sys.path) @abc.abstractmethod def find_distributions(self, context=Context()): """ Find distributions. Return an iterable of all Distribution instances capable of loading the metadata for packages matching the ``context``, a DistributionFinder.Context instance. """ class FastPath: """ Micro-optimized class for searching a path for children. >>> FastPath('').children() ['...'] """ @functools.lru_cache() # type: ignore def __new__(cls, root): return super().__new__(cls) def __init__(self, root): self.root = str(root) def joinpath(self, child): return pathlib.Path(self.root, child) def children(self): with suppress(Exception): return os.listdir(self.root or '.') with suppress(Exception): return self.zip_children() return [] def zip_children(self): zip_path = zipp.Path(self.root) names = zip_path.root.namelist() self.joinpath = zip_path.joinpath return dict.fromkeys(child.split(posixpath.sep, 1)[0] for child in names) def search(self, name): return self.lookup(self.mtime).search(name) @property def mtime(self): with suppress(OSError): return os.stat(self.root).st_mtime self.lookup.cache_clear() @method_cache def lookup(self, mtime): return Lookup(self) class Lookup: def __init__(self, path: FastPath): base = os.path.basename(path.root).lower() base_is_egg = base.endswith(".egg") self.infos = FreezableDefaultDict(list) self.eggs = FreezableDefaultDict(list) for child in path.children(): low = child.lower() if low.endswith((".dist-info", ".egg-info")): # rpartition is faster than splitext and suitable for this purpose. name = low.rpartition(".")[0].partition("-")[0] normalized = Prepared.normalize(name) self.infos[normalized].append(path.joinpath(child)) elif base_is_egg and low == "egg-info": name = base.rpartition(".")[0].partition("-")[0] legacy_normalized = Prepared.legacy_normalize(name) self.eggs[legacy_normalized].append(path.joinpath(child)) self.infos.freeze() self.eggs.freeze() def search(self, prepared): infos = ( self.infos[prepared.normalized] if prepared else itertools.chain.from_iterable(self.infos.values()) ) eggs = ( self.eggs[prepared.legacy_normalized] if prepared else itertools.chain.from_iterable(self.eggs.values()) ) return itertools.chain(infos, eggs) class Prepared: """ A prepared search for metadata on a possibly-named package. """ normalized = None legacy_normalized = None def __init__(self, name): self.name = name if name is None: return self.normalized = self.normalize(name) self.legacy_normalized = self.legacy_normalize(name) @staticmethod def normalize(name): """ PEP 503 normalization plus dashes as underscores. """ return re.sub(r"[-_.]+", "-", name).lower().replace('-', '_') @staticmethod def legacy_normalize(name): """ Normalize the package name as found in the convention in older packaging tools versions and specs. """ return name.lower().replace('-', '_') def __bool__(self): return bool(self.name) @install class MetadataPathFinder(NullFinder, DistributionFinder): """A degenerate finder for distribution packages on the file system. This finder supplies only a find_distributions() method for versions of Python that do not have a PathFinder find_distributions(). """ def find_distributions(self, context=DistributionFinder.Context()): """ Find distributions. Return an iterable of all Distribution instances capable of loading the metadata for packages matching ``context.name`` (or all names if ``None`` indicated) along the paths in the list of directories ``context.path``. """ found = self._search_paths(context.name, context.path) return map(PathDistribution, found) @classmethod def _search_paths(cls, name, paths): """Find metadata directories in paths heuristically.""" prepared = Prepared(name) return itertools.chain.from_iterable( path.search(prepared) for path in map(FastPath, paths) ) def invalidate_caches(cls): FastPath.__new__.cache_clear() class PathDistribution(Distribution): def __init__(self, path: SimplePath): """Construct a distribution. :param path: SimplePath indicating the metadata directory. """ self._path = path def read_text(self, filename): with suppress( FileNotFoundError, IsADirectoryError, KeyError, NotADirectoryError, PermissionError, ): return self._path.joinpath(filename).read_text(encoding='utf-8') read_text.__doc__ = Distribution.read_text.__doc__ def locate_file(self, path): return self._path.parent / path @property def _normalized_name(self): """ Performance optimization: where possible, resolve the normalized name from the file system path. """ stem = os.path.basename(str(self._path)) return self._name_from_stem(stem) or super()._normalized_name def _name_from_stem(self, stem): name, ext = os.path.splitext(stem) if ext not in ('.dist-info', '.egg-info'): return name, sep, rest = stem.partition('-') return name def distribution(distribution_name): """Get the ``Distribution`` instance for the named package. :param distribution_name: The name of the distribution package as a string. :return: A ``Distribution`` instance (or subclass thereof). """ return Distribution.from_name(distribution_name) def distributions(**kwargs): """Get all ``Distribution`` instances in the current environment. :return: An iterable of ``Distribution`` instances. """ return Distribution.discover(**kwargs) def metadata(distribution_name) -> _meta.PackageMetadata: """Get the metadata for the named package. :param distribution_name: The name of the distribution package to query. :return: A PackageMetadata containing the parsed metadata. """ return Distribution.from_name(distribution_name).metadata def version(distribution_name): """Get the version string for the named package. :param distribution_name: The name of the distribution package to query. :return: The version string for the package as defined in the package's "Version" metadata key. """ return distribution(distribution_name).version def entry_points(**params) -> Union[EntryPoints, SelectableGroups]: """Return EntryPoint objects for all installed packages. Pass selection parameters (group or name) to filter the result to entry points matching those properties (see EntryPoints.select()). For compatibility, returns ``SelectableGroups`` object unless selection parameters are supplied. In the future, this function will return ``EntryPoints`` instead of ``SelectableGroups`` even when no selection parameters are supplied. For maximum future compatibility, pass selection parameters or invoke ``.select`` with parameters on the result. :return: EntryPoints or SelectableGroups for all installed packages. """ norm_name = operator.attrgetter('_normalized_name') unique = functools.partial(unique_everseen, key=norm_name) eps = itertools.chain.from_iterable( dist.entry_points for dist in unique(distributions()) ) return SelectableGroups.load(eps).select(**params) def files(distribution_name): """Return a list of files for the named package. :param distribution_name: The name of the distribution package to query. :return: List of files composing the distribution. """ return distribution(distribution_name).files def requires(distribution_name): """ Return a list of requirements for the named package. :return: An iterator of requirements, suitable for packaging.requirement.Requirement. """ return distribution(distribution_name).requires def packages_distributions() -> Mapping[str, List[str]]: """ Return a mapping of top-level packages to their distributions. >>> import collections.abc >>> pkgs = packages_distributions() >>> all(isinstance(dist, collections.abc.Sequence) for dist in pkgs.values()) True """ pkg_to_dist = collections.defaultdict(list) for dist in distributions(): for pkg in _top_level_declared(dist) or _top_level_inferred(dist): pkg_to_dist[pkg].append(dist.metadata['Name']) return dict(pkg_to_dist) def _top_level_declared(dist): return (dist.read_text('top_level.txt') or '').split() def _top_level_inferred(dist): return { f.parts[0] if len(f.parts) > 1 else f.with_suffix('').name for f in always_iterable(dist.files) if f.suffix == ".py" } PKx"TmFFU__virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata/_adapters.pyimport re import textwrap import email.message from ._text import FoldedCase class Message(email.message.Message): multiple_use_keys = set( map( FoldedCase, [ 'Classifier', 'Obsoletes-Dist', 'Platform', 'Project-URL', 'Provides-Dist', 'Provides-Extra', 'Requires-Dist', 'Requires-External', 'Supported-Platform', 'Dynamic', ], ) ) """ Keys that may be indicated multiple times per PEP 566. """ def __new__(cls, orig: email.message.Message): res = super().__new__(cls) vars(res).update(vars(orig)) return res def __init__(self, *args, **kwargs): self._headers = self._repair_headers() # suppress spurious error from mypy def __iter__(self): return super().__iter__() def _repair_headers(self): def redent(value): "Correct for RFC822 indentation" if not value or '\n' not in value: return value return textwrap.dedent(' ' * 8 + value) headers = [(key, redent(value)) for key, value in vars(self)['_headers']] if self._payload: headers.append(('Description', self.get_payload())) return headers @property def json(self): """ Convert PackageMetadata to a JSON-compatible format per PEP 0566. """ def transform(key): value = self.get_all(key) if key in self.multiple_use_keys else self[key] if key == 'Keywords': value = re.split(r'\s+', value) tk = key.lower().replace('-', '_') return tk, value return dict(map(transform, map(FoldedCase, self))) PKx"TX__virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata/_collections.pyimport collections # from jaraco.collections 3.3 class FreezableDefaultDict(collections.defaultdict): """ Often it is desirable to prevent the mutation of a default dict after its initial construction, such as to prevent mutation during iteration. >>> dd = FreezableDefaultDict(list) >>> dd[0].append('1') >>> dd.freeze() >>> dd[1] [] >>> len(dd) 1 """ def __missing__(self, key): return getattr(self, '_frozen', super().__missing__)(key) def freeze(self): self._frozen = lambda key: self.default_factory() class Pair(collections.namedtuple('Pair', 'name value')): @classmethod def parse(cls, text): return cls(*map(str.strip, text.split("=", 1))) PKx"Tȉ""S__virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata/_compat.pyimport sys import platform __all__ = ['install', 'NullFinder', 'Protocol'] try: from typing import Protocol except ImportError: # pragma: no cover from typing_extensions import Protocol # type: ignore def install(cls): """ Class decorator for installation on sys.meta_path. Adds the backport DistributionFinder to sys.meta_path and attempts to disable the finder functionality of the stdlib DistributionFinder. """ sys.meta_path.append(cls()) disable_stdlib_finder() return cls def disable_stdlib_finder(): """ Give the backport primacy for discovering path-based distributions by monkey-patching the stdlib O_O. See #91 for more background for rationale on this sketchy behavior. """ def matches(finder): return getattr( finder, '__module__', None ) == '_frozen_importlib_external' and hasattr(finder, 'find_distributions') for finder in filter(matches, sys.meta_path): # pragma: nocover del finder.find_distributions class NullFinder: """ A "Finder" (aka "MetaClassFinder") that never finds any modules, but may find distributions. """ @staticmethod def find_spec(*args, **kwargs): return None # In Python 2, the import system requires finders # to have a find_module() method, but this usage # is deprecated in Python 3 in favor of find_spec(). # For the purposes of this finder (i.e. being present # on sys.meta_path but having no other import # system functionality), the two methods are identical. find_module = find_spec def pypy_partial(val): """ Adjust for variable stacklevel on partial under PyPy. Workaround for #327. """ is_pypy = platform.python_implementation() == 'PyPy' return val + is_pypy PKx"T:oiO O V__virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata/_functools.pyimport types import functools # from jaraco.functools 3.3 def method_cache(method, cache_wrapper=None): """ Wrap lru_cache to support storing the cache data in the object instances. Abstracts the common paradigm where the method explicitly saves an underscore-prefixed protected property on first call and returns that subsequently. >>> class MyClass: ... calls = 0 ... ... @method_cache ... def method(self, value): ... self.calls += 1 ... return value >>> a = MyClass() >>> a.method(3) 3 >>> for x in range(75): ... res = a.method(x) >>> a.calls 75 Note that the apparent behavior will be exactly like that of lru_cache except that the cache is stored on each instance, so values in one instance will not flush values from another, and when an instance is deleted, so are the cached values for that instance. >>> b = MyClass() >>> for x in range(35): ... res = b.method(x) >>> b.calls 35 >>> a.method(0) 0 >>> a.calls 75 Note that if method had been decorated with ``functools.lru_cache()``, a.calls would have been 76 (due to the cached value of 0 having been flushed by the 'b' instance). Clear the cache with ``.cache_clear()`` >>> a.method.cache_clear() Same for a method that hasn't yet been called. >>> c = MyClass() >>> c.method.cache_clear() Another cache wrapper may be supplied: >>> cache = functools.lru_cache(maxsize=2) >>> MyClass.method2 = method_cache(lambda self: 3, cache_wrapper=cache) >>> a = MyClass() >>> a.method2() 3 Caution - do not subsequently wrap the method with another decorator, such as ``@property``, which changes the semantics of the function. See also http://code.activestate.com/recipes/577452-a-memoize-decorator-for-instance-methods/ for another implementation and additional justification. """ cache_wrapper = cache_wrapper or functools.lru_cache() def wrapper(self, *args, **kwargs): # it's the first call, replace the method with a cached, bound method bound_method = types.MethodType(method, self) cached_method = cache_wrapper(bound_method) setattr(self, method.__name__, cached_method) return cached_method(*args, **kwargs) # Support cache clear even before cache has been created. wrapper.cache_clear = lambda: None return wrapper # From jaraco.functools 3.3 def pass_none(func): """ Wrap func so it's not called if its first param is None >>> print_text = pass_none(print) >>> print_text('text') text >>> print_text(None) """ @functools.wraps(func) def wrapper(param, *args, **kwargs): if param is not None: return func(param, *args, **kwargs) return wrapper PKx"T:V__virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata/_itertools.pyfrom itertools import filterfalse def unique_everseen(iterable, key=None): "List unique elements, preserving order. Remember all elements ever seen." # unique_everseen('AAAABBBCCDAABBB') --> A B C D # unique_everseen('ABBCcAD', str.lower) --> A B C D seen = set() seen_add = seen.add if key is None: for element in filterfalse(seen.__contains__, iterable): seen_add(element) yield element else: for element in iterable: k = key(element) if k not in seen: seen_add(k) yield element # copied from more_itertools 8.8 def always_iterable(obj, base_type=(str, bytes)): """If *obj* is iterable, return an iterator over its items:: >>> obj = (1, 2, 3) >>> list(always_iterable(obj)) [1, 2, 3] If *obj* is not iterable, return a one-item iterable containing *obj*:: >>> obj = 1 >>> list(always_iterable(obj)) [1] If *obj* is ``None``, return an empty iterable: >>> obj = None >>> list(always_iterable(None)) [] By default, binary and text strings are not considered iterable:: >>> obj = 'foo' >>> list(always_iterable(obj)) ['foo'] If *base_type* is set, objects for which ``isinstance(obj, base_type)`` returns ``True`` won't be considered iterable. >>> obj = {'a': 1} >>> list(always_iterable(obj)) # Iterate over the dict's keys ['a'] >>> list(always_iterable(obj, base_type=dict)) # Treat dicts as a unit [{'a': 1}] Set *base_type* to ``None`` to avoid any special handling and treat objects Python considers iterable as iterable: >>> obj = 'foo' >>> list(always_iterable(obj, base_type=None)) ['f', 'o', 'o'] """ if obj is None: return iter(()) if (base_type is not None) and isinstance(obj, base_type): return iter((obj,)) try: return iter(obj) except TypeError: return iter((obj,)) PKx"T.Q__virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata/_meta.pyfrom ._compat import Protocol from typing import Any, Dict, Iterator, List, TypeVar, Union _T = TypeVar("_T") class PackageMetadata(Protocol): def __len__(self) -> int: ... # pragma: no cover def __contains__(self, item: str) -> bool: ... # pragma: no cover def __getitem__(self, key: str) -> str: ... # pragma: no cover def __iter__(self) -> Iterator[str]: ... # pragma: no cover def get_all(self, name: str, failobj: _T = ...) -> Union[List[Any], _T]: """ Return all values associated with a possibly multi-valued key. """ @property def json(self) -> Dict[str, Union[str, List[str]]]: """ A JSON-compatible form of the metadata. """ class SimplePath(Protocol): """ A minimal subset of pathlib.Path required by PathDistribution. """ def joinpath(self) -> 'SimplePath': ... # pragma: no cover def __truediv__(self) -> 'SimplePath': ... # pragma: no cover def parent(self) -> 'SimplePath': ... # pragma: no cover def read_text(self) -> str: ... # pragma: no cover PKx"TxvvQ__virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata/_text.pyimport re from ._functools import method_cache # from jaraco.text 3.5 class FoldedCase(str): """ A case insensitive string class; behaves just like str except compares equal when the only variation is case. >>> s = FoldedCase('hello world') >>> s == 'Hello World' True >>> 'Hello World' == s True >>> s != 'Hello World' False >>> s.index('O') 4 >>> s.split('O') ['hell', ' w', 'rld'] >>> sorted(map(FoldedCase, ['GAMMA', 'alpha', 'Beta'])) ['alpha', 'Beta', 'GAMMA'] Sequence membership is straightforward. >>> "Hello World" in [s] True >>> s in ["Hello World"] True You may test for set inclusion, but candidate and elements must both be folded. >>> FoldedCase("Hello World") in {s} True >>> s in {FoldedCase("Hello World")} True String inclusion works as long as the FoldedCase object is on the right. >>> "hello" in FoldedCase("Hello World") True But not if the FoldedCase object is on the left: >>> FoldedCase('hello') in 'Hello World' False In that case, use in_: >>> FoldedCase('hello').in_('Hello World') True >>> FoldedCase('hello') > FoldedCase('Hello') False """ def __lt__(self, other): return self.lower() < other.lower() def __gt__(self, other): return self.lower() > other.lower() def __eq__(self, other): return self.lower() == other.lower() def __ne__(self, other): return self.lower() != other.lower() def __hash__(self): return hash(self.lower()) def __contains__(self, other): return super().lower().__contains__(other.lower()) def in_(self, other): "Does self appear in other?" return self in FoldedCase(other) # cache lower since it's likely to be called frequently. @method_cache def lower(self): return super().lower() def index(self, sub): return self.lower().index(sub.lower()) def split(self, splitter=' ', maxsplit=0): pattern = re.compile(re.escape(splitter), re.I) return pattern.split(self, maxsplit) PKx"TQ__virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata/py.typedPKx"T;;a__virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata-4.10.0.dist-info/LICENSECopyright 2017-2019 Jason R. Coombs, Barry Warsaw Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. PKx"TV8b__virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata-4.10.0.dist-info/METADATAMetadata-Version: 2.1 Name: importlib-metadata Version: 4.10.0 Summary: Read metadata from Python packages Home-page: https://github.com/python/importlib_metadata Author: Jason R. Coombs Author-email: jaraco@jaraco.com License: UNKNOWN Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only Requires-Python: >=3.7 License-File: LICENSE Requires-Dist: zipp (>=0.5) Requires-Dist: typing-extensions (>=3.6.4) ; python_version < "3.8" Provides-Extra: docs Requires-Dist: sphinx ; extra == 'docs' Requires-Dist: jaraco.packaging (>=8.2) ; extra == 'docs' Requires-Dist: rst.linker (>=1.9) ; extra == 'docs' Provides-Extra: perf Requires-Dist: ipython ; extra == 'perf' Provides-Extra: testing Requires-Dist: pytest (>=6) ; extra == 'testing' Requires-Dist: pytest-checkdocs (>=2.4) ; extra == 'testing' Requires-Dist: pytest-flake8 ; extra == 'testing' Requires-Dist: pytest-cov ; extra == 'testing' Requires-Dist: pytest-enabler (>=1.0.1) ; extra == 'testing' Requires-Dist: packaging ; extra == 'testing' Requires-Dist: pyfakefs ; extra == 'testing' Requires-Dist: flufl.flake8 ; extra == 'testing' Requires-Dist: pytest-perf (>=0.9.2) ; extra == 'testing' Requires-Dist: pytest-black (>=0.3.7) ; (platform_python_implementation != "PyPy") and extra == 'testing' Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy") and extra == 'testing' Requires-Dist: importlib-resources (>=1.3) ; (python_version < "3.9") and extra == 'testing' .. image:: https://img.shields.io/pypi/v/importlib_metadata.svg :target: `PyPI link`_ .. image:: https://img.shields.io/pypi/pyversions/importlib_metadata.svg :target: `PyPI link`_ .. _PyPI link: https://pypi.org/project/importlib_metadata .. image:: https://github.com/python/importlib_metadata/workflows/tests/badge.svg :target: https://github.com/python/importlib_metadata/actions?query=workflow%3A%22tests%22 :alt: tests .. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black :alt: Code style: Black .. image:: https://readthedocs.org/projects/importlib-metadata/badge/?version=latest :target: https://importlib-metadata.readthedocs.io/en/latest/?badge=latest .. image:: https://img.shields.io/badge/skeleton-2021-informational :target: https://blog.jaraco.com/skeleton Library to access the metadata for a Python package. This package supplies third-party access to the functionality of `importlib.metadata `_ including improvements added to subsequent Python versions. Compatibility ============= New features are introduced in this third-party library and later merged into CPython. The following table indicates which versions of this library were contributed to different versions in the standard library: .. list-table:: :header-rows: 1 * - importlib_metadata - stdlib * - 4.8 - 3.11 * - 4.4 - 3.10 * - 1.4 - 3.8 Usage ===== See the `online documentation `_ for usage details. `Finder authors `_ can also add support for custom package installers. See the above documentation for details. Caveats ======= This project primarily supports third-party packages installed by PyPA tools (or other conforming packages). It does not support: - Packages in the stdlib. - Packages installed without metadata. Project details =============== * Project home: https://github.com/python/importlib_metadata * Report bugs at: https://github.com/python/importlib_metadata/issues * Code hosting: https://github.com/python/importlib_metadata * Documentation: https://importlib_metadata.readthedocs.io/ PKx"TP2\\___virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata-4.10.0.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.0) Root-Is-Purelib: true Tag: py3-none-any PKx"TZg__virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata-4.10.0.dist-info/top_level.txtimportlib_metadata PKx"Tf`__virtualenv__/importlib_metadata-4.10.0-py3-none-any/importlib_metadata-4.10.0.dist-info/RECORDimportlib_metadata/__init__.py,sha256=70l2jeZjz3YeOXwk1GVI9HKxFbeCDNQnAp0dWZ-ccCs,30173 importlib_metadata/_adapters.py,sha256=B6fCi5-8mLVDFUZj3krI5nAo-mKp1dH_qIavyIyFrJs,1862 importlib_metadata/_collections.py,sha256=CJ0OTCHIjWA0ZIVS4voORAsn2R4R2cQBEtPsZEJpASY,743 importlib_metadata/_compat.py,sha256=EU2XCFBPFByuI0Of6XkAuBYbzqSyjwwwwqmsK4ccna0,1826 importlib_metadata/_functools.py,sha256=PsY2-4rrKX4RVeRC1oGp1lB1pmC9eKN88_f-bD9uOoA,2895 importlib_metadata/_itertools.py,sha256=cvr_2v8BRbxcIl5x5ldfqdHjhI8Yi8s8yk50G_nm6jQ,2068 importlib_metadata/_meta.py,sha256=_F48Hu_jFxkfKWz5wcYS8vO23qEygbVdF9r-6qh-hjE,1154 importlib_metadata/_text.py,sha256=HCsFksZpJLeTP3NEk_ngrAeXVRRtTrtyh9eOABoRP4A,2166 importlib_metadata/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_metadata-4.10.0.dist-info/LICENSE,sha256=wNe6dAchmJ1VvVB8D9oTc-gHHadCuaSBAev36sYEM6U,571 importlib_metadata-4.10.0.dist-info/METADATA,sha256=N1FtYY7tzLu7LlsAS0HnBccOwldt0hm8rUNHZEZcVtM,3989 importlib_metadata-4.10.0.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 importlib_metadata-4.10.0.dist-info/top_level.txt,sha256=CO3fD9yylANiXkrMo4qHLV_mqXL2sC5JFKgt1yWAT-A,19 importlib_metadata-4.10.0.dist-info/RECORD,, PKx"T'w'wS__virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata/__init__.pyimport os import re import abc import csv import sys import zipp import email import pathlib import operator import textwrap import warnings import functools import itertools import posixpath import collections from . import _adapters, _meta from ._collections import FreezableDefaultDict, Pair from ._compat import ( NullFinder, install, pypy_partial, ) from ._functools import method_cache, pass_none from ._itertools import always_iterable, unique_everseen from ._meta import PackageMetadata, SimplePath from contextlib import suppress from importlib import import_module from importlib.abc import MetaPathFinder from itertools import starmap from typing import List, Mapping, Optional, Union __all__ = [ 'Distribution', 'DistributionFinder', 'PackageMetadata', 'PackageNotFoundError', 'distribution', 'distributions', 'entry_points', 'files', 'metadata', 'packages_distributions', 'requires', 'version', ] class PackageNotFoundError(ModuleNotFoundError): """The package was not found.""" def __str__(self): return f"No package metadata was found for {self.name}" @property def name(self): (name,) = self.args return name class Sectioned: """ A simple entry point config parser for performance >>> for item in Sectioned.read(Sectioned._sample): ... print(item) Pair(name='sec1', value='# comments ignored') Pair(name='sec1', value='a = 1') Pair(name='sec1', value='b = 2') Pair(name='sec2', value='a = 2') >>> res = Sectioned.section_pairs(Sectioned._sample) >>> item = next(res) >>> item.name 'sec1' >>> item.value Pair(name='a', value='1') >>> item = next(res) >>> item.value Pair(name='b', value='2') >>> item = next(res) >>> item.name 'sec2' >>> item.value Pair(name='a', value='2') >>> list(res) [] """ _sample = textwrap.dedent( """ [sec1] # comments ignored a = 1 b = 2 [sec2] a = 2 """ ).lstrip() @classmethod def section_pairs(cls, text): return ( section._replace(value=Pair.parse(section.value)) for section in cls.read(text, filter_=cls.valid) if section.name is not None ) @staticmethod def read(text, filter_=None): lines = filter(filter_, map(str.strip, text.splitlines())) name = None for value in lines: section_match = value.startswith('[') and value.endswith(']') if section_match: name = value.strip('[]') continue yield Pair(name, value) @staticmethod def valid(line): return line and not line.startswith('#') class DeprecatedTuple: """ Provide subscript item access for backward compatibility. >>> recwarn = getfixture('recwarn') >>> ep = EntryPoint(name='name', value='value', group='group') >>> ep[:] ('name', 'value', 'group') >>> ep[0] 'name' >>> len(recwarn) 1 """ _warn = functools.partial( warnings.warn, "EntryPoint tuple interface is deprecated. Access members by name.", DeprecationWarning, stacklevel=pypy_partial(2), ) def __getitem__(self, item): self._warn() return self._key()[item] class EntryPoint(DeprecatedTuple): """An entry point as defined by Python packaging conventions. See `the packaging docs on entry points `_ for more information. """ pattern = re.compile( r'(?P[\w.]+)\s*' r'(:\s*(?P[\w.]+))?\s*' r'(?P\[.*\])?\s*$' ) """ A regular expression describing the syntax for an entry point, which might look like: - module - package.module - package.module:attribute - package.module:object.attribute - package.module:attr [extra1, extra2] Other combinations are possible as well. The expression is lenient about whitespace around the ':', following the attr, and following any extras. """ dist: Optional['Distribution'] = None def __init__(self, name, value, group): vars(self).update(name=name, value=value, group=group) def load(self): """Load the entry point from its definition. If only a module is indicated by the value, return that module. Otherwise, return the named object. """ match = self.pattern.match(self.value) module = import_module(match.group('module')) attrs = filter(None, (match.group('attr') or '').split('.')) return functools.reduce(getattr, attrs, module) @property def module(self): match = self.pattern.match(self.value) return match.group('module') @property def attr(self): match = self.pattern.match(self.value) return match.group('attr') @property def extras(self): match = self.pattern.match(self.value) return list(re.finditer(r'\w+', match.group('extras') or '')) def _for(self, dist): vars(self).update(dist=dist) return self def __iter__(self): """ Supply iter so one may construct dicts of EntryPoints by name. """ msg = ( "Construction of dict of EntryPoints is deprecated in " "favor of EntryPoints." ) warnings.warn(msg, DeprecationWarning) return iter((self.name, self)) def matches(self, **params): attrs = (getattr(self, param) for param in params) return all(map(operator.eq, params.values(), attrs)) def _key(self): return self.name, self.value, self.group def __lt__(self, other): return self._key() < other._key() def __eq__(self, other): return self._key() == other._key() def __setattr__(self, name, value): raise AttributeError("EntryPoint objects are immutable.") def __repr__(self): return ( f'EntryPoint(name={self.name!r}, value={self.value!r}, ' f'group={self.group!r})' ) def __hash__(self): return hash(self._key()) class DeprecatedList(list): """ Allow an otherwise immutable object to implement mutability for compatibility. >>> recwarn = getfixture('recwarn') >>> dl = DeprecatedList(range(3)) >>> dl[0] = 1 >>> dl.append(3) >>> del dl[3] >>> dl.reverse() >>> dl.sort() >>> dl.extend([4]) >>> dl.pop(-1) 4 >>> dl.remove(1) >>> dl += [5] >>> dl + [6] [1, 2, 5, 6] >>> dl + (6,) [1, 2, 5, 6] >>> dl.insert(0, 0) >>> dl [0, 1, 2, 5] >>> dl == [0, 1, 2, 5] True >>> dl == (0, 1, 2, 5) True >>> len(recwarn) 1 """ _warn = functools.partial( warnings.warn, "EntryPoints list interface is deprecated. Cast to list if needed.", DeprecationWarning, stacklevel=pypy_partial(2), ) def _wrap_deprecated_method(method_name: str): # type: ignore def wrapped(self, *args, **kwargs): self._warn() return getattr(super(), method_name)(*args, **kwargs) return wrapped for method_name in [ '__setitem__', '__delitem__', 'append', 'reverse', 'extend', 'pop', 'remove', '__iadd__', 'insert', 'sort', ]: locals()[method_name] = _wrap_deprecated_method(method_name) def __add__(self, other): if not isinstance(other, tuple): self._warn() other = tuple(other) return self.__class__(tuple(self) + other) def __eq__(self, other): if not isinstance(other, tuple): self._warn() other = tuple(other) return tuple(self).__eq__(other) class EntryPoints(DeprecatedList): """ An immutable collection of selectable EntryPoint objects. """ __slots__ = () def __getitem__(self, name): # -> EntryPoint: """ Get the EntryPoint in self matching name. """ if isinstance(name, int): warnings.warn( "Accessing entry points by index is deprecated. " "Cast to tuple if needed.", DeprecationWarning, stacklevel=2, ) return super().__getitem__(name) try: return next(iter(self.select(name=name))) except StopIteration: raise KeyError(name) def select(self, **params): """ Select entry points from self that match the given parameters (typically group and/or name). """ return EntryPoints(ep for ep in self if ep.matches(**params)) @property def names(self): """ Return the set of all names of all entry points. """ return {ep.name for ep in self} @property def groups(self): """ Return the set of all groups of all entry points. For coverage while SelectableGroups is present. >>> EntryPoints().groups set() """ return {ep.group for ep in self} @classmethod def _from_text_for(cls, text, dist): return cls(ep._for(dist) for ep in cls._from_text(text)) @staticmethod def _from_text(text): return ( EntryPoint(name=item.value.name, value=item.value.value, group=item.name) for item in Sectioned.section_pairs(text or '') ) class Deprecated: """ Compatibility add-in for mapping to indicate that mapping behavior is deprecated. >>> recwarn = getfixture('recwarn') >>> class DeprecatedDict(Deprecated, dict): pass >>> dd = DeprecatedDict(foo='bar') >>> dd.get('baz', None) >>> dd['foo'] 'bar' >>> list(dd) ['foo'] >>> list(dd.keys()) ['foo'] >>> 'foo' in dd True >>> list(dd.values()) ['bar'] >>> len(recwarn) 1 """ _warn = functools.partial( warnings.warn, "SelectableGroups dict interface is deprecated. Use select.", DeprecationWarning, stacklevel=pypy_partial(2), ) def __getitem__(self, name): self._warn() return super().__getitem__(name) def get(self, name, default=None): self._warn() return super().get(name, default) def __iter__(self): self._warn() return super().__iter__() def __contains__(self, *args): self._warn() return super().__contains__(*args) def keys(self): self._warn() return super().keys() def values(self): self._warn() return super().values() class SelectableGroups(Deprecated, dict): """ A backward- and forward-compatible result from entry_points that fully implements the dict interface. """ @classmethod def load(cls, eps): by_group = operator.attrgetter('group') ordered = sorted(eps, key=by_group) grouped = itertools.groupby(ordered, by_group) return cls((group, EntryPoints(eps)) for group, eps in grouped) @property def _all(self): """ Reconstruct a list of all entrypoints from the groups. """ groups = super(Deprecated, self).values() return EntryPoints(itertools.chain.from_iterable(groups)) @property def groups(self): return self._all.groups @property def names(self): """ for coverage: >>> SelectableGroups().names set() """ return self._all.names def select(self, **params): if not params: return self return self._all.select(**params) class PackagePath(pathlib.PurePosixPath): """A reference to a path in a package""" def read_text(self, encoding='utf-8'): with self.locate().open(encoding=encoding) as stream: return stream.read() def read_binary(self): with self.locate().open('rb') as stream: return stream.read() def locate(self): """Return a path-like object for this path""" return self.dist.locate_file(self) class FileHash: def __init__(self, spec): self.mode, _, self.value = spec.partition('=') def __repr__(self): return f'' class Distribution: """A Python distribution package.""" @abc.abstractmethod def read_text(self, filename): """Attempt to load metadata file given by the name. :param filename: The name of the file in the distribution info. :return: The text if found, otherwise None. """ @abc.abstractmethod def locate_file(self, path): """ Given a path to a file in this distribution, return a path to it. """ @classmethod def from_name(cls, name): """Return the Distribution for the given package name. :param name: The name of the distribution package to search for. :return: The Distribution instance (or subclass thereof) for the named package, if found. :raises PackageNotFoundError: When the named package's distribution metadata cannot be found. """ for resolver in cls._discover_resolvers(): dists = resolver(DistributionFinder.Context(name=name)) dist = next(iter(dists), None) if dist is not None: return dist else: raise PackageNotFoundError(name) @classmethod def discover(cls, **kwargs): """Return an iterable of Distribution objects for all packages. Pass a ``context`` or pass keyword arguments for constructing a context. :context: A ``DistributionFinder.Context`` object. :return: Iterable of Distribution objects for all packages. """ context = kwargs.pop('context', None) if context and kwargs: raise ValueError("cannot accept context and kwargs") context = context or DistributionFinder.Context(**kwargs) return itertools.chain.from_iterable( resolver(context) for resolver in cls._discover_resolvers() ) @staticmethod def at(path): """Return a Distribution for the indicated metadata path :param path: a string or path-like object :return: a concrete Distribution instance for the path """ return PathDistribution(pathlib.Path(path)) @staticmethod def _discover_resolvers(): """Search the meta_path for resolvers.""" declared = ( getattr(finder, 'find_distributions', None) for finder in sys.meta_path ) return filter(None, declared) @classmethod def _local(cls, root='.'): from pep517 import build, meta system = build.compat_system(root) builder = functools.partial( meta.build, source_dir=root, system=system, ) return PathDistribution(zipp.Path(meta.build_as_zip(builder))) @property def metadata(self) -> _meta.PackageMetadata: """Return the parsed metadata for this Distribution. The returned object will have keys that name the various bits of metadata. See PEP 566 for details. """ text = ( self.read_text('METADATA') or self.read_text('PKG-INFO') # This last clause is here to support old egg-info files. Its # effect is to just end up using the PathDistribution's self._path # (which points to the egg-info file) attribute unchanged. or self.read_text('') ) return _adapters.Message(email.message_from_string(text)) @property def name(self): """Return the 'Name' metadata for the distribution package.""" return self.metadata['Name'] @property def _normalized_name(self): """Return a normalized version of the name.""" return Prepared.normalize(self.name) @property def version(self): """Return the 'Version' metadata for the distribution package.""" return self.metadata['Version'] @property def entry_points(self): return EntryPoints._from_text_for(self.read_text('entry_points.txt'), self) @property def files(self): """Files in this distribution. :return: List of PackagePath for this distribution or None Result is `None` if the metadata file that enumerates files (i.e. RECORD for dist-info or SOURCES.txt for egg-info) is missing. Result may be empty if the metadata exists but is empty. """ def make_file(name, hash=None, size_str=None): result = PackagePath(name) result.hash = FileHash(hash) if hash else None result.size = int(size_str) if size_str else None result.dist = self return result @pass_none def make_files(lines): return list(starmap(make_file, csv.reader(lines))) return make_files(self._read_files_distinfo() or self._read_files_egginfo()) def _read_files_distinfo(self): """ Read the lines of RECORD """ text = self.read_text('RECORD') return text and text.splitlines() def _read_files_egginfo(self): """ SOURCES.txt might contain literal commas, so wrap each line in quotes. """ text = self.read_text('SOURCES.txt') return text and map('"{}"'.format, text.splitlines()) @property def requires(self): """Generated requirements specified for this Distribution""" reqs = self._read_dist_info_reqs() or self._read_egg_info_reqs() return reqs and list(reqs) def _read_dist_info_reqs(self): return self.metadata.get_all('Requires-Dist') def _read_egg_info_reqs(self): source = self.read_text('requires.txt') return source and self._deps_from_requires_text(source) @classmethod def _deps_from_requires_text(cls, source): return cls._convert_egg_info_reqs_to_simple_reqs(Sectioned.read(source)) @staticmethod def _convert_egg_info_reqs_to_simple_reqs(sections): """ Historically, setuptools would solicit and store 'extra' requirements, including those with environment markers, in separate sections. More modern tools expect each dependency to be defined separately, with any relevant extras and environment markers attached directly to that requirement. This method converts the former to the latter. See _test_deps_from_requires_text for an example. """ def make_condition(name): return name and f'extra == "{name}"' def quoted_marker(section): section = section or '' extra, sep, markers = section.partition(':') if extra and markers: markers = f'({markers})' conditions = list(filter(None, [markers, make_condition(extra)])) return '; ' + ' and '.join(conditions) if conditions else '' def url_req_space(req): """ PEP 508 requires a space between the url_spec and the quoted_marker. Ref python/importlib_metadata#357. """ # '@' is uniquely indicative of a url_req. return ' ' * ('@' in req) for section in sections: space = url_req_space(section.value) yield section.value + space + quoted_marker(section.name) class DistributionFinder(MetaPathFinder): """ A MetaPathFinder capable of discovering installed distributions. """ class Context: """ Keyword arguments presented by the caller to ``distributions()`` or ``Distribution.discover()`` to narrow the scope of a search for distributions in all DistributionFinders. Each DistributionFinder may expect any parameters and should attempt to honor the canonical parameters defined below when appropriate. """ name = None """ Specific name for which a distribution finder should match. A name of ``None`` matches all distributions. """ def __init__(self, **kwargs): vars(self).update(kwargs) @property def path(self): """ The sequence of directory path that a distribution finder should search. Typically refers to Python installed package paths such as "site-packages" directories and defaults to ``sys.path``. """ return vars(self).get('path', sys.path) @abc.abstractmethod def find_distributions(self, context=Context()): """ Find distributions. Return an iterable of all Distribution instances capable of loading the metadata for packages matching the ``context``, a DistributionFinder.Context instance. """ class FastPath: """ Micro-optimized class for searching a path for children. >>> FastPath('').children() ['...'] """ @functools.lru_cache() # type: ignore def __new__(cls, root): return super().__new__(cls) def __init__(self, root): self.root = str(root) def joinpath(self, child): return pathlib.Path(self.root, child) def children(self): with suppress(Exception): return os.listdir(self.root or '.') with suppress(Exception): return self.zip_children() return [] def zip_children(self): zip_path = zipp.Path(self.root) names = zip_path.root.namelist() self.joinpath = zip_path.joinpath return dict.fromkeys(child.split(posixpath.sep, 1)[0] for child in names) def search(self, name): return self.lookup(self.mtime).search(name) @property def mtime(self): with suppress(OSError): return os.stat(self.root).st_mtime self.lookup.cache_clear() @method_cache def lookup(self, mtime): return Lookup(self) class Lookup: def __init__(self, path: FastPath): base = os.path.basename(path.root).lower() base_is_egg = base.endswith(".egg") self.infos = FreezableDefaultDict(list) self.eggs = FreezableDefaultDict(list) for child in path.children(): low = child.lower() if low.endswith((".dist-info", ".egg-info")): # rpartition is faster than splitext and suitable for this purpose. name = low.rpartition(".")[0].partition("-")[0] normalized = Prepared.normalize(name) self.infos[normalized].append(path.joinpath(child)) elif base_is_egg and low == "egg-info": name = base.rpartition(".")[0].partition("-")[0] legacy_normalized = Prepared.legacy_normalize(name) self.eggs[legacy_normalized].append(path.joinpath(child)) self.infos.freeze() self.eggs.freeze() def search(self, prepared): infos = ( self.infos[prepared.normalized] if prepared else itertools.chain.from_iterable(self.infos.values()) ) eggs = ( self.eggs[prepared.legacy_normalized] if prepared else itertools.chain.from_iterable(self.eggs.values()) ) return itertools.chain(infos, eggs) class Prepared: """ A prepared search for metadata on a possibly-named package. """ normalized = None legacy_normalized = None def __init__(self, name): self.name = name if name is None: return self.normalized = self.normalize(name) self.legacy_normalized = self.legacy_normalize(name) @staticmethod def normalize(name): """ PEP 503 normalization plus dashes as underscores. """ return re.sub(r"[-_.]+", "-", name).lower().replace('-', '_') @staticmethod def legacy_normalize(name): """ Normalize the package name as found in the convention in older packaging tools versions and specs. """ return name.lower().replace('-', '_') def __bool__(self): return bool(self.name) @install class MetadataPathFinder(NullFinder, DistributionFinder): """A degenerate finder for distribution packages on the file system. This finder supplies only a find_distributions() method for versions of Python that do not have a PathFinder find_distributions(). """ def find_distributions(self, context=DistributionFinder.Context()): """ Find distributions. Return an iterable of all Distribution instances capable of loading the metadata for packages matching ``context.name`` (or all names if ``None`` indicated) along the paths in the list of directories ``context.path``. """ found = self._search_paths(context.name, context.path) return map(PathDistribution, found) @classmethod def _search_paths(cls, name, paths): """Find metadata directories in paths heuristically.""" prepared = Prepared(name) return itertools.chain.from_iterable( path.search(prepared) for path in map(FastPath, paths) ) def invalidate_caches(cls): FastPath.__new__.cache_clear() class PathDistribution(Distribution): def __init__(self, path: SimplePath): """Construct a distribution. :param path: SimplePath indicating the metadata directory. """ self._path = path def read_text(self, filename): with suppress( FileNotFoundError, IsADirectoryError, KeyError, NotADirectoryError, PermissionError, ): return self._path.joinpath(filename).read_text(encoding='utf-8') read_text.__doc__ = Distribution.read_text.__doc__ def locate_file(self, path): return self._path.parent / path @property def _normalized_name(self): """ Performance optimization: where possible, resolve the normalized name from the file system path. """ stem = os.path.basename(str(self._path)) return self._name_from_stem(stem) or super()._normalized_name def _name_from_stem(self, stem): name, ext = os.path.splitext(stem) if ext not in ('.dist-info', '.egg-info'): return name, sep, rest = stem.partition('-') return name def distribution(distribution_name): """Get the ``Distribution`` instance for the named package. :param distribution_name: The name of the distribution package as a string. :return: A ``Distribution`` instance (or subclass thereof). """ return Distribution.from_name(distribution_name) def distributions(**kwargs): """Get all ``Distribution`` instances in the current environment. :return: An iterable of ``Distribution`` instances. """ return Distribution.discover(**kwargs) def metadata(distribution_name) -> _meta.PackageMetadata: """Get the metadata for the named package. :param distribution_name: The name of the distribution package to query. :return: A PackageMetadata containing the parsed metadata. """ return Distribution.from_name(distribution_name).metadata def version(distribution_name): """Get the version string for the named package. :param distribution_name: The name of the distribution package to query. :return: The version string for the package as defined in the package's "Version" metadata key. """ return distribution(distribution_name).version def entry_points(**params) -> Union[EntryPoints, SelectableGroups]: """Return EntryPoint objects for all installed packages. Pass selection parameters (group or name) to filter the result to entry points matching those properties (see EntryPoints.select()). For compatibility, returns ``SelectableGroups`` object unless selection parameters are supplied. In the future, this function will return ``EntryPoints`` instead of ``SelectableGroups`` even when no selection parameters are supplied. For maximum future compatibility, pass selection parameters or invoke ``.select`` with parameters on the result. :return: EntryPoints or SelectableGroups for all installed packages. """ norm_name = operator.attrgetter('_normalized_name') unique = functools.partial(unique_everseen, key=norm_name) eps = itertools.chain.from_iterable( dist.entry_points for dist in unique(distributions()) ) return SelectableGroups.load(eps).select(**params) def files(distribution_name): """Return a list of files for the named package. :param distribution_name: The name of the distribution package to query. :return: List of files composing the distribution. """ return distribution(distribution_name).files def requires(distribution_name): """ Return a list of requirements for the named package. :return: An iterator of requirements, suitable for packaging.requirement.Requirement. """ return distribution(distribution_name).requires def packages_distributions() -> Mapping[str, List[str]]: """ Return a mapping of top-level packages to their distributions. >>> import collections.abc >>> pkgs = packages_distributions() >>> all(isinstance(dist, collections.abc.Sequence) for dist in pkgs.values()) True """ pkg_to_dist = collections.defaultdict(list) for dist in distributions(): for pkg in _top_level_declared(dist) or _top_level_inferred(dist): pkg_to_dist[pkg].append(dist.metadata['Name']) return dict(pkg_to_dist) def _top_level_declared(dist): return (dist.read_text('top_level.txt') or '').split() def _top_level_inferred(dist): return { f.parts[0] if len(f.parts) > 1 else f.with_suffix('').name for f in always_iterable(dist.files) if f.suffix == ".py" } PKx"TmFFT__virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata/_adapters.pyimport re import textwrap import email.message from ._text import FoldedCase class Message(email.message.Message): multiple_use_keys = set( map( FoldedCase, [ 'Classifier', 'Obsoletes-Dist', 'Platform', 'Project-URL', 'Provides-Dist', 'Provides-Extra', 'Requires-Dist', 'Requires-External', 'Supported-Platform', 'Dynamic', ], ) ) """ Keys that may be indicated multiple times per PEP 566. """ def __new__(cls, orig: email.message.Message): res = super().__new__(cls) vars(res).update(vars(orig)) return res def __init__(self, *args, **kwargs): self._headers = self._repair_headers() # suppress spurious error from mypy def __iter__(self): return super().__iter__() def _repair_headers(self): def redent(value): "Correct for RFC822 indentation" if not value or '\n' not in value: return value return textwrap.dedent(' ' * 8 + value) headers = [(key, redent(value)) for key, value in vars(self)['_headers']] if self._payload: headers.append(('Description', self.get_payload())) return headers @property def json(self): """ Convert PackageMetadata to a JSON-compatible format per PEP 0566. """ def transform(key): value = self.get_all(key) if key in self.multiple_use_keys else self[key] if key == 'Keywords': value = re.split(r'\s+', value) tk = key.lower().replace('-', '_') return tk, value return dict(map(transform, map(FoldedCase, self))) PKx"TW__virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata/_collections.pyimport collections # from jaraco.collections 3.3 class FreezableDefaultDict(collections.defaultdict): """ Often it is desirable to prevent the mutation of a default dict after its initial construction, such as to prevent mutation during iteration. >>> dd = FreezableDefaultDict(list) >>> dd[0].append('1') >>> dd.freeze() >>> dd[1] [] >>> len(dd) 1 """ def __missing__(self, key): return getattr(self, '_frozen', super().__missing__)(key) def freeze(self): self._frozen = lambda key: self.default_factory() class Pair(collections.namedtuple('Pair', 'name value')): @classmethod def parse(cls, text): return cls(*map(str.strip, text.split("=", 1))) PKx"Tȉ""R__virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata/_compat.pyimport sys import platform __all__ = ['install', 'NullFinder', 'Protocol'] try: from typing import Protocol except ImportError: # pragma: no cover from typing_extensions import Protocol # type: ignore def install(cls): """ Class decorator for installation on sys.meta_path. Adds the backport DistributionFinder to sys.meta_path and attempts to disable the finder functionality of the stdlib DistributionFinder. """ sys.meta_path.append(cls()) disable_stdlib_finder() return cls def disable_stdlib_finder(): """ Give the backport primacy for discovering path-based distributions by monkey-patching the stdlib O_O. See #91 for more background for rationale on this sketchy behavior. """ def matches(finder): return getattr( finder, '__module__', None ) == '_frozen_importlib_external' and hasattr(finder, 'find_distributions') for finder in filter(matches, sys.meta_path): # pragma: nocover del finder.find_distributions class NullFinder: """ A "Finder" (aka "MetaClassFinder") that never finds any modules, but may find distributions. """ @staticmethod def find_spec(*args, **kwargs): return None # In Python 2, the import system requires finders # to have a find_module() method, but this usage # is deprecated in Python 3 in favor of find_spec(). # For the purposes of this finder (i.e. being present # on sys.meta_path but having no other import # system functionality), the two methods are identical. find_module = find_spec def pypy_partial(val): """ Adjust for variable stacklevel on partial under PyPy. Workaround for #327. """ is_pypy = platform.python_implementation() == 'PyPy' return val + is_pypy PKx"T:oiO O U__virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata/_functools.pyimport types import functools # from jaraco.functools 3.3 def method_cache(method, cache_wrapper=None): """ Wrap lru_cache to support storing the cache data in the object instances. Abstracts the common paradigm where the method explicitly saves an underscore-prefixed protected property on first call and returns that subsequently. >>> class MyClass: ... calls = 0 ... ... @method_cache ... def method(self, value): ... self.calls += 1 ... return value >>> a = MyClass() >>> a.method(3) 3 >>> for x in range(75): ... res = a.method(x) >>> a.calls 75 Note that the apparent behavior will be exactly like that of lru_cache except that the cache is stored on each instance, so values in one instance will not flush values from another, and when an instance is deleted, so are the cached values for that instance. >>> b = MyClass() >>> for x in range(35): ... res = b.method(x) >>> b.calls 35 >>> a.method(0) 0 >>> a.calls 75 Note that if method had been decorated with ``functools.lru_cache()``, a.calls would have been 76 (due to the cached value of 0 having been flushed by the 'b' instance). Clear the cache with ``.cache_clear()`` >>> a.method.cache_clear() Same for a method that hasn't yet been called. >>> c = MyClass() >>> c.method.cache_clear() Another cache wrapper may be supplied: >>> cache = functools.lru_cache(maxsize=2) >>> MyClass.method2 = method_cache(lambda self: 3, cache_wrapper=cache) >>> a = MyClass() >>> a.method2() 3 Caution - do not subsequently wrap the method with another decorator, such as ``@property``, which changes the semantics of the function. See also http://code.activestate.com/recipes/577452-a-memoize-decorator-for-instance-methods/ for another implementation and additional justification. """ cache_wrapper = cache_wrapper or functools.lru_cache() def wrapper(self, *args, **kwargs): # it's the first call, replace the method with a cached, bound method bound_method = types.MethodType(method, self) cached_method = cache_wrapper(bound_method) setattr(self, method.__name__, cached_method) return cached_method(*args, **kwargs) # Support cache clear even before cache has been created. wrapper.cache_clear = lambda: None return wrapper # From jaraco.functools 3.3 def pass_none(func): """ Wrap func so it's not called if its first param is None >>> print_text = pass_none(print) >>> print_text('text') text >>> print_text(None) """ @functools.wraps(func) def wrapper(param, *args, **kwargs): if param is not None: return func(param, *args, **kwargs) return wrapper PKx"T:U__virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata/_itertools.pyfrom itertools import filterfalse def unique_everseen(iterable, key=None): "List unique elements, preserving order. Remember all elements ever seen." # unique_everseen('AAAABBBCCDAABBB') --> A B C D # unique_everseen('ABBCcAD', str.lower) --> A B C D seen = set() seen_add = seen.add if key is None: for element in filterfalse(seen.__contains__, iterable): seen_add(element) yield element else: for element in iterable: k = key(element) if k not in seen: seen_add(k) yield element # copied from more_itertools 8.8 def always_iterable(obj, base_type=(str, bytes)): """If *obj* is iterable, return an iterator over its items:: >>> obj = (1, 2, 3) >>> list(always_iterable(obj)) [1, 2, 3] If *obj* is not iterable, return a one-item iterable containing *obj*:: >>> obj = 1 >>> list(always_iterable(obj)) [1] If *obj* is ``None``, return an empty iterable: >>> obj = None >>> list(always_iterable(None)) [] By default, binary and text strings are not considered iterable:: >>> obj = 'foo' >>> list(always_iterable(obj)) ['foo'] If *base_type* is set, objects for which ``isinstance(obj, base_type)`` returns ``True`` won't be considered iterable. >>> obj = {'a': 1} >>> list(always_iterable(obj)) # Iterate over the dict's keys ['a'] >>> list(always_iterable(obj, base_type=dict)) # Treat dicts as a unit [{'a': 1}] Set *base_type* to ``None`` to avoid any special handling and treat objects Python considers iterable as iterable: >>> obj = 'foo' >>> list(always_iterable(obj, base_type=None)) ['f', 'o', 'o'] """ if obj is None: return iter(()) if (base_type is not None) and isinstance(obj, base_type): return iter((obj,)) try: return iter(obj) except TypeError: return iter((obj,)) PKx"T.P__virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata/_meta.pyfrom ._compat import Protocol from typing import Any, Dict, Iterator, List, TypeVar, Union _T = TypeVar("_T") class PackageMetadata(Protocol): def __len__(self) -> int: ... # pragma: no cover def __contains__(self, item: str) -> bool: ... # pragma: no cover def __getitem__(self, key: str) -> str: ... # pragma: no cover def __iter__(self) -> Iterator[str]: ... # pragma: no cover def get_all(self, name: str, failobj: _T = ...) -> Union[List[Any], _T]: """ Return all values associated with a possibly multi-valued key. """ @property def json(self) -> Dict[str, Union[str, List[str]]]: """ A JSON-compatible form of the metadata. """ class SimplePath(Protocol): """ A minimal subset of pathlib.Path required by PathDistribution. """ def joinpath(self) -> 'SimplePath': ... # pragma: no cover def __truediv__(self) -> 'SimplePath': ... # pragma: no cover def parent(self) -> 'SimplePath': ... # pragma: no cover def read_text(self) -> str: ... # pragma: no cover PKx"TxvvP__virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata/_text.pyimport re from ._functools import method_cache # from jaraco.text 3.5 class FoldedCase(str): """ A case insensitive string class; behaves just like str except compares equal when the only variation is case. >>> s = FoldedCase('hello world') >>> s == 'Hello World' True >>> 'Hello World' == s True >>> s != 'Hello World' False >>> s.index('O') 4 >>> s.split('O') ['hell', ' w', 'rld'] >>> sorted(map(FoldedCase, ['GAMMA', 'alpha', 'Beta'])) ['alpha', 'Beta', 'GAMMA'] Sequence membership is straightforward. >>> "Hello World" in [s] True >>> s in ["Hello World"] True You may test for set inclusion, but candidate and elements must both be folded. >>> FoldedCase("Hello World") in {s} True >>> s in {FoldedCase("Hello World")} True String inclusion works as long as the FoldedCase object is on the right. >>> "hello" in FoldedCase("Hello World") True But not if the FoldedCase object is on the left: >>> FoldedCase('hello') in 'Hello World' False In that case, use in_: >>> FoldedCase('hello').in_('Hello World') True >>> FoldedCase('hello') > FoldedCase('Hello') False """ def __lt__(self, other): return self.lower() < other.lower() def __gt__(self, other): return self.lower() > other.lower() def __eq__(self, other): return self.lower() == other.lower() def __ne__(self, other): return self.lower() != other.lower() def __hash__(self): return hash(self.lower()) def __contains__(self, other): return super().lower().__contains__(other.lower()) def in_(self, other): "Does self appear in other?" return self in FoldedCase(other) # cache lower since it's likely to be called frequently. @method_cache def lower(self): return super().lower() def index(self, sub): return self.lower().index(sub.lower()) def split(self, splitter=' ', maxsplit=0): pattern = re.compile(re.escape(splitter), re.I) return pattern.split(self, maxsplit) PKx"TP__virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata/py.typedPKx"T;;___virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata-4.8.3.dist-info/LICENSECopyright 2017-2019 Jason R. Coombs, Barry Warsaw Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. PKx"TŨ`__virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata-4.8.3.dist-info/METADATAMetadata-Version: 2.1 Name: importlib-metadata Version: 4.8.3 Summary: Read metadata from Python packages Home-page: https://github.com/python/importlib_metadata Author: Jason R. Coombs Author-email: jaraco@jaraco.com License: UNKNOWN Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only Requires-Python: >=3.6 License-File: LICENSE Requires-Dist: zipp (>=0.5) Requires-Dist: typing-extensions (>=3.6.4) ; python_version < "3.8" Provides-Extra: docs Requires-Dist: sphinx ; extra == 'docs' Requires-Dist: jaraco.packaging (>=8.2) ; extra == 'docs' Requires-Dist: rst.linker (>=1.9) ; extra == 'docs' Provides-Extra: perf Requires-Dist: ipython ; extra == 'perf' Provides-Extra: testing Requires-Dist: pytest (>=6) ; extra == 'testing' Requires-Dist: pytest-checkdocs (>=2.4) ; extra == 'testing' Requires-Dist: pytest-flake8 ; extra == 'testing' Requires-Dist: pytest-cov ; extra == 'testing' Requires-Dist: pytest-enabler (>=1.0.1) ; extra == 'testing' Requires-Dist: packaging ; extra == 'testing' Requires-Dist: pep517 ; extra == 'testing' Requires-Dist: pyfakefs ; extra == 'testing' Requires-Dist: flufl.flake8 ; extra == 'testing' Requires-Dist: pytest-perf (>=0.9.2) ; extra == 'testing' Requires-Dist: pytest-black (>=0.3.7) ; (platform_python_implementation != "PyPy") and extra == 'testing' Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy") and extra == 'testing' Requires-Dist: importlib-resources (>=1.3) ; (python_version < "3.9") and extra == 'testing' .. image:: https://img.shields.io/pypi/v/importlib_metadata.svg :target: `PyPI link`_ .. image:: https://img.shields.io/pypi/pyversions/importlib_metadata.svg :target: `PyPI link`_ .. _PyPI link: https://pypi.org/project/importlib_metadata .. image:: https://github.com/python/importlib_metadata/workflows/tests/badge.svg :target: https://github.com/python/importlib_metadata/actions?query=workflow%3A%22tests%22 :alt: tests .. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black :alt: Code style: Black .. image:: https://readthedocs.org/projects/importlib-metadata/badge/?version=latest :target: https://importlib-metadata.readthedocs.io/en/latest/?badge=latest .. image:: https://img.shields.io/badge/skeleton-2021-informational :target: https://blog.jaraco.com/skeleton Library to access the metadata for a Python package. This package supplies third-party access to the functionality of `importlib.metadata `_ including improvements added to subsequent Python versions. Compatibility ============= New features are introduced in this third-party library and later merged into CPython. The following table indicates which versions of this library were contributed to different versions in the standard library: .. list-table:: :header-rows: 1 * - importlib_metadata - stdlib * - 4.4 - 3.10 * - 1.4 - 3.8 Usage ===== See the `online documentation `_ for usage details. `Finder authors `_ can also add support for custom package installers. See the above documentation for details. Caveats ======= This project primarily supports third-party packages installed by PyPA tools (or other conforming packages). It does not support: - Packages in the stdlib. - Packages installed without metadata. Project details =============== * Project home: https://github.com/python/importlib_metadata * Report bugs at: https://github.com/python/importlib_metadata/issues * Code hosting: https://github.com/python/importlib_metadata * Documentation: https://importlib_metadata.readthedocs.io/ PKx"TP2\\]__virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata-4.8.3.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.0) Root-Is-Purelib: true Tag: py3-none-any PKx"TZe__virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata-4.8.3.dist-info/top_level.txtimportlib_metadata PKx"Ty]^__virtualenv__/importlib_metadata-4.8.3-py3-none-any/importlib_metadata-4.8.3.dist-info/RECORDimportlib_metadata/__init__.py,sha256=XhHmqt9N3hxrHy3QGw_RmCD8CCgHapfv24ZEv2SHKJI,30503 importlib_metadata/_adapters.py,sha256=B6fCi5-8mLVDFUZj3krI5nAo-mKp1dH_qIavyIyFrJs,1862 importlib_metadata/_collections.py,sha256=CJ0OTCHIjWA0ZIVS4voORAsn2R4R2cQBEtPsZEJpASY,743 importlib_metadata/_compat.py,sha256=EU2XCFBPFByuI0Of6XkAuBYbzqSyjwwwwqmsK4ccna0,1826 importlib_metadata/_functools.py,sha256=PsY2-4rrKX4RVeRC1oGp1lB1pmC9eKN88_f-bD9uOoA,2895 importlib_metadata/_itertools.py,sha256=cvr_2v8BRbxcIl5x5ldfqdHjhI8Yi8s8yk50G_nm6jQ,2068 importlib_metadata/_meta.py,sha256=_F48Hu_jFxkfKWz5wcYS8vO23qEygbVdF9r-6qh-hjE,1154 importlib_metadata/_text.py,sha256=HCsFksZpJLeTP3NEk_ngrAeXVRRtTrtyh9eOABoRP4A,2166 importlib_metadata/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_metadata-4.8.3.dist-info/LICENSE,sha256=wNe6dAchmJ1VvVB8D9oTc-gHHadCuaSBAev36sYEM6U,571 importlib_metadata-4.8.3.dist-info/METADATA,sha256=2Hof_9LzHNI5bBH3ux4BK1Q21G3Ad8qpyl0DtqcBeLI,4008 importlib_metadata-4.8.3.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 importlib_metadata-4.8.3.dist-info/top_level.txt,sha256=CO3fD9yylANiXkrMo4qHLV_mqXL2sC5JFKgt1yWAT-A,19 importlib_metadata-4.8.3.dist-info/RECORD,, PKx"TLLW__virtualenv__/importlib_metadata-2.1.2-py2.py3-none-any/importlib_metadata/__init__.pyfrom __future__ import unicode_literals, absolute_import import io import os import re import abc import csv import sys import zipp import operator import functools import itertools import posixpath import collections from ._compat import ( install, NullFinder, ConfigParser, suppress, map, FileNotFoundError, IsADirectoryError, NotADirectoryError, PermissionError, pathlib, ModuleNotFoundError, MetaPathFinder, email_message_from_string, PyPy_repr, unique_ordered, str, ) from importlib import import_module from itertools import starmap __metaclass__ = type __all__ = [ 'Distribution', 'DistributionFinder', 'PackageNotFoundError', 'distribution', 'distributions', 'entry_points', 'files', 'metadata', 'requires', 'version', ] class PackageNotFoundError(ModuleNotFoundError): """The package was not found.""" def __str__(self): tmpl = "No package metadata was found for {self.name}" return tmpl.format(**locals()) @property def name(self): name, = self.args return name class EntryPoint( PyPy_repr, collections.namedtuple('EntryPointBase', 'name value group')): """An entry point as defined by Python packaging conventions. See `the packaging docs on entry points `_ for more information. """ pattern = re.compile( r'(?P[\w.]+)\s*' r'(:\s*(?P[\w.]+))?\s*' r'(?P\[.*\])?\s*$' ) """ A regular expression describing the syntax for an entry point, which might look like: - module - package.module - package.module:attribute - package.module:object.attribute - package.module:attr [extra1, extra2] Other combinations are possible as well. The expression is lenient about whitespace around the ':', following the attr, and following any extras. """ def load(self): """Load the entry point from its definition. If only a module is indicated by the value, return that module. Otherwise, return the named object. """ match = self.pattern.match(self.value) module = import_module(match.group('module')) attrs = filter(None, (match.group('attr') or '').split('.')) return functools.reduce(getattr, attrs, module) @property def module(self): match = self.pattern.match(self.value) return match.group('module') @property def attr(self): match = self.pattern.match(self.value) return match.group('attr') @property def extras(self): match = self.pattern.match(self.value) return list(re.finditer(r'\w+', match.group('extras') or '')) @classmethod def _from_config(cls, config): return [ cls(name, value, group) for group in config.sections() for name, value in config.items(group) ] @classmethod def _from_text(cls, text): config = ConfigParser(delimiters='=') # case sensitive: https://stackoverflow.com/q/1611799/812183 config.optionxform = str try: config.read_string(text) except AttributeError: # pragma: nocover # Python 2 has no read_string config.readfp(io.StringIO(text)) return EntryPoint._from_config(config) def __iter__(self): """ Supply iter so one may construct dicts of EntryPoints easily. """ return iter((self.name, self)) def __reduce__(self): return ( self.__class__, (self.name, self.value, self.group), ) class PackagePath(pathlib.PurePosixPath): """A reference to a path in a package""" def read_text(self, encoding='utf-8'): with self.locate().open(encoding=encoding) as stream: return stream.read() def read_binary(self): with self.locate().open('rb') as stream: return stream.read() def locate(self): """Return a path-like object for this path""" return self.dist.locate_file(self) class FileHash: def __init__(self, spec): self.mode, _, self.value = spec.partition('=') def __repr__(self): return ''.format(self.mode, self.value) class Distribution: """A Python distribution package.""" @abc.abstractmethod def read_text(self, filename): """Attempt to load metadata file given by the name. :param filename: The name of the file in the distribution info. :return: The text if found, otherwise None. """ @abc.abstractmethod def locate_file(self, path): """ Given a path to a file in this distribution, return a path to it. """ @classmethod def from_name(cls, name): """Return the Distribution for the given package name. :param name: The name of the distribution package to search for. :return: The Distribution instance (or subclass thereof) for the named package, if found. :raises PackageNotFoundError: When the named package's distribution metadata cannot be found. """ for resolver in cls._discover_resolvers(): dists = resolver(DistributionFinder.Context(name=name)) dist = next(iter(dists), None) if dist is not None: return dist else: raise PackageNotFoundError(name) @classmethod def discover(cls, **kwargs): """Return an iterable of Distribution objects for all packages. Pass a ``context`` or pass keyword arguments for constructing a context. :context: A ``DistributionFinder.Context`` object. :return: Iterable of Distribution objects for all packages. """ context = kwargs.pop('context', None) if context and kwargs: raise ValueError("cannot accept context and kwargs") context = context or DistributionFinder.Context(**kwargs) return itertools.chain.from_iterable( resolver(context) for resolver in cls._discover_resolvers() ) @staticmethod def at(path): """Return a Distribution for the indicated metadata path :param path: a string or path-like object :return: a concrete Distribution instance for the path """ return PathDistribution(pathlib.Path(path)) @staticmethod def _discover_resolvers(): """Search the meta_path for resolvers.""" declared = ( getattr(finder, 'find_distributions', None) for finder in sys.meta_path ) return filter(None, declared) @classmethod def _local(cls, root='.'): from pep517 import build, meta system = build.compat_system(root) builder = functools.partial( meta.build, source_dir=root, system=system, ) return PathDistribution(zipp.Path(meta.build_as_zip(builder))) @property def metadata(self): """Return the parsed metadata for this Distribution. The returned object will have keys that name the various bits of metadata. See PEP 566 for details. """ text = ( self.read_text('METADATA') or self.read_text('PKG-INFO') # This last clause is here to support old egg-info files. Its # effect is to just end up using the PathDistribution's self._path # (which points to the egg-info file) attribute unchanged. or self.read_text('') ) return email_message_from_string(text) @property def version(self): """Return the 'Version' metadata for the distribution package.""" return self.metadata['Version'] @property def entry_points(self): return EntryPoint._from_text(self.read_text('entry_points.txt')) @property def files(self): """Files in this distribution. :return: List of PackagePath for this distribution or None Result is `None` if the metadata file that enumerates files (i.e. RECORD for dist-info or SOURCES.txt for egg-info) is missing. Result may be empty if the metadata exists but is empty. """ file_lines = self._read_files_distinfo() or self._read_files_egginfo() def make_file(name, hash=None, size_str=None): result = PackagePath(name) result.hash = FileHash(hash) if hash else None result.size = int(size_str) if size_str else None result.dist = self return result return file_lines and list(starmap(make_file, csv.reader(file_lines))) def _read_files_distinfo(self): """ Read the lines of RECORD """ text = self.read_text('RECORD') return text and text.splitlines() def _read_files_egginfo(self): """ SOURCES.txt might contain literal commas, so wrap each line in quotes. """ text = self.read_text('SOURCES.txt') return text and map('"{}"'.format, text.splitlines()) @property def requires(self): """Generated requirements specified for this Distribution""" reqs = self._read_dist_info_reqs() or self._read_egg_info_reqs() return reqs and list(reqs) def _read_dist_info_reqs(self): return self.metadata.get_all('Requires-Dist') def _read_egg_info_reqs(self): source = self.read_text('requires.txt') return source and self._deps_from_requires_text(source) @classmethod def _deps_from_requires_text(cls, source): section_pairs = cls._read_sections(source.splitlines()) sections = { section: list(map(operator.itemgetter('line'), results)) for section, results in itertools.groupby(section_pairs, operator.itemgetter('section')) } return cls._convert_egg_info_reqs_to_simple_reqs(sections) @staticmethod def _read_sections(lines): section = None for line in filter(None, lines): section_match = re.match(r'\[(.*)\]$', line) if section_match: section = section_match.group(1) continue yield locals() @staticmethod def _convert_egg_info_reqs_to_simple_reqs(sections): """ Historically, setuptools would solicit and store 'extra' requirements, including those with environment markers, in separate sections. More modern tools expect each dependency to be defined separately, with any relevant extras and environment markers attached directly to that requirement. This method converts the former to the latter. See _test_deps_from_requires_text for an example. """ def make_condition(name): return name and 'extra == "{name}"'.format(name=name) def parse_condition(section): section = section or '' extra, sep, markers = section.partition(':') if extra and markers: markers = '({markers})'.format(markers=markers) conditions = list(filter(None, [markers, make_condition(extra)])) return '; ' + ' and '.join(conditions) if conditions else '' for section, deps in sections.items(): for dep in deps: yield dep + parse_condition(section) class DistributionFinder(MetaPathFinder): """ A MetaPathFinder capable of discovering installed distributions. """ class Context: """ Keyword arguments presented by the caller to ``distributions()`` or ``Distribution.discover()`` to narrow the scope of a search for distributions in all DistributionFinders. Each DistributionFinder may expect any parameters and should attempt to honor the canonical parameters defined below when appropriate. """ name = None """ Specific name for which a distribution finder should match. A name of ``None`` matches all distributions. """ def __init__(self, **kwargs): vars(self).update(kwargs) @property def path(self): """ The path that a distribution finder should search. Typically refers to Python package paths and defaults to ``sys.path``. """ return vars(self).get('path', sys.path) @abc.abstractmethod def find_distributions(self, context=Context()): """ Find distributions. Return an iterable of all Distribution instances capable of loading the metadata for packages matching the ``context``, a DistributionFinder.Context instance. """ class FastPath: """ Micro-optimized class for searching a path for children. """ def __init__(self, root): self.root = str(root) self.base = os.path.basename(self.root).lower() def joinpath(self, child): return pathlib.Path(self.root, child) def children(self): with suppress(Exception): return os.listdir(self.root or '.') with suppress(Exception): return self.zip_children() return [] def zip_children(self): zip_path = zipp.Path(self.root) names = zip_path.root.namelist() self.joinpath = zip_path.joinpath return unique_ordered( child.split(posixpath.sep, 1)[0] for child in names ) def search(self, name): return ( self.joinpath(child) for child in self.children() if name.matches(child, self.base) ) class Prepared: """ A prepared search for metadata on a possibly-named package. """ normalized = None suffixes = '.dist-info', '.egg-info' exact_matches = [''][:0] def __init__(self, name): self.name = name if name is None: return self.normalized = self.normalize(name) self.exact_matches = [ self.normalized + suffix for suffix in self.suffixes] @staticmethod def normalize(name): """ PEP 503 normalization plus dashes as underscores. """ return re.sub(r"[-_.]+", "-", name).lower().replace('-', '_') @staticmethod def legacy_normalize(name): """ Normalize the package name as found in the convention in older packaging tools versions and specs. """ return name.lower().replace('-', '_') def matches(self, cand, base): low = cand.lower() pre, ext = os.path.splitext(low) name, sep, rest = pre.partition('-') return ( low in self.exact_matches or ext in self.suffixes and ( not self.normalized or name.replace('.', '_') == self.normalized ) # legacy case: or self.is_egg(base) and low == 'egg-info' ) def is_egg(self, base): normalized = self.legacy_normalize(self.name or '') prefix = normalized + '-' if normalized else '' versionless_egg_name = normalized + '.egg' if self.name else '' return ( base == versionless_egg_name or base.startswith(prefix) and base.endswith('.egg')) @install class MetadataPathFinder(NullFinder, DistributionFinder): """A degenerate finder for distribution packages on the file system. This finder supplies only a find_distributions() method for versions of Python that do not have a PathFinder find_distributions(). """ def find_distributions(self, context=DistributionFinder.Context()): """ Find distributions. Return an iterable of all Distribution instances capable of loading the metadata for packages matching ``context.name`` (or all names if ``None`` indicated) along the paths in the list of directories ``context.path``. """ found = self._search_paths(context.name, context.path) return map(PathDistribution, found) @classmethod def _search_paths(cls, name, paths): """Find metadata directories in paths heuristically.""" return itertools.chain.from_iterable( path.search(Prepared(name)) for path in map(FastPath, paths) ) class PathDistribution(Distribution): def __init__(self, path): """Construct a distribution from a path to the metadata directory. :param path: A pathlib.Path or similar object supporting .joinpath(), __div__, .parent, and .read_text(). """ self._path = path def read_text(self, filename): with suppress(FileNotFoundError, IsADirectoryError, KeyError, NotADirectoryError, PermissionError): return self._path.joinpath(filename).read_text(encoding='utf-8') read_text.__doc__ = Distribution.read_text.__doc__ def locate_file(self, path): return self._path.parent / path def distribution(distribution_name): """Get the ``Distribution`` instance for the named package. :param distribution_name: The name of the distribution package as a string. :return: A ``Distribution`` instance (or subclass thereof). """ return Distribution.from_name(distribution_name) def distributions(**kwargs): """Get all ``Distribution`` instances in the current environment. :return: An iterable of ``Distribution`` instances. """ return Distribution.discover(**kwargs) def metadata(distribution_name): """Get the metadata for the named package. :param distribution_name: The name of the distribution package to query. :return: An email.Message containing the parsed metadata. """ return Distribution.from_name(distribution_name).metadata def version(distribution_name): """Get the version string for the named package. :param distribution_name: The name of the distribution package to query. :return: The version string for the package as defined in the package's "Version" metadata key. """ return distribution(distribution_name).version def entry_points(): """Return EntryPoint objects for all installed packages. :return: EntryPoint objects for all installed packages. """ eps = itertools.chain.from_iterable( dist.entry_points for dist in distributions()) by_group = operator.attrgetter('group') ordered = sorted(eps, key=by_group) grouped = itertools.groupby(ordered, by_group) return { group: tuple(eps) for group, eps in grouped } def files(distribution_name): """Return a list of files for the named package. :param distribution_name: The name of the distribution package to query. :return: List of files composing the distribution. """ return distribution(distribution_name).files def requires(distribution_name): """ Return a list of requirements for the named package. :return: An iterator of requirements, suitable for packaging.requirement.Requirement. """ return distribution(distribution_name).requires PKx"TRAAV__virtualenv__/importlib_metadata-2.1.2-py2.py3-none-any/importlib_metadata/_compat.pyfrom __future__ import absolute_import, unicode_literals import io import abc import sys import email if sys.version_info > (3,): # pragma: nocover import builtins from configparser import ConfigParser import contextlib FileNotFoundError = builtins.FileNotFoundError IsADirectoryError = builtins.IsADirectoryError NotADirectoryError = builtins.NotADirectoryError PermissionError = builtins.PermissionError map = builtins.map from itertools import filterfalse else: # pragma: nocover from backports.configparser import ConfigParser from itertools import imap as map # type: ignore from itertools import ifilterfalse as filterfalse import contextlib2 as contextlib FileNotFoundError = IOError, OSError IsADirectoryError = IOError, OSError NotADirectoryError = IOError, OSError PermissionError = IOError, OSError str = type('') suppress = contextlib.suppress if sys.version_info > (3, 5): # pragma: nocover import pathlib else: # pragma: nocover import pathlib2 as pathlib try: ModuleNotFoundError = builtins.FileNotFoundError except (NameError, AttributeError): # pragma: nocover ModuleNotFoundError = ImportError # type: ignore if sys.version_info >= (3,): # pragma: nocover from importlib.abc import MetaPathFinder else: # pragma: nocover class MetaPathFinder(object): __metaclass__ = abc.ABCMeta __metaclass__ = type __all__ = [ 'install', 'NullFinder', 'MetaPathFinder', 'ModuleNotFoundError', 'pathlib', 'ConfigParser', 'map', 'suppress', 'FileNotFoundError', 'NotADirectoryError', 'email_message_from_string', ] def install(cls): """ Class decorator for installation on sys.meta_path. Adds the backport DistributionFinder to sys.meta_path and attempts to disable the finder functionality of the stdlib DistributionFinder. """ sys.meta_path.append(cls()) disable_stdlib_finder() return cls def disable_stdlib_finder(): """ Give the backport primacy for discovering path-based distributions by monkey-patching the stdlib O_O. See #91 for more background for rationale on this sketchy behavior. """ def matches(finder): return ( getattr(finder, '__module__', None) == '_frozen_importlib_external' and hasattr(finder, 'find_distributions') ) for finder in filter(matches, sys.meta_path): # pragma: nocover del finder.find_distributions class NullFinder: """ A "Finder" (aka "MetaClassFinder") that never finds any modules, but may find distributions. """ @staticmethod def find_spec(*args, **kwargs): return None # In Python 2, the import system requires finders # to have a find_module() method, but this usage # is deprecated in Python 3 in favor of find_spec(). # For the purposes of this finder (i.e. being present # on sys.meta_path but having no other import # system functionality), the two methods are identical. find_module = find_spec def py2_message_from_string(text): # nocoverpy3 # Work around https://bugs.python.org/issue25545 where # email.message_from_string cannot handle Unicode on Python 2. io_buffer = io.StringIO(text) return email.message_from_file(io_buffer) email_message_from_string = ( py2_message_from_string if sys.version_info < (3,) else email.message_from_string ) class PyPy_repr: """ Override repr for EntryPoint objects on PyPy to avoid __iter__ access. Ref #97, #102. """ affected = hasattr(sys, 'pypy_version_info') def __compat_repr__(self): # pragma: nocover def make_param(name): value = getattr(self, name) return '{name}={value!r}'.format(**locals()) params = ', '.join(map(make_param, self._fields)) return 'EntryPoint({params})'.format(**locals()) if affected: # pragma: nocover __repr__ = __compat_repr__ del affected # from itertools recipes def unique_everseen(iterable): # pragma: nocover "List unique elements, preserving order. Remember all elements ever seen." seen = set() seen_add = seen.add for element in filterfalse(seen.__contains__, iterable): seen_add(element) yield element unique_ordered = ( unique_everseen if sys.version_info < (3, 7) else dict.fromkeys) PKx"T;;c__virtualenv__/importlib_metadata-2.1.2-py2.py3-none-any/importlib_metadata-2.1.2.dist-info/LICENSECopyright 2017-2019 Jason R. Coombs, Barry Warsaw Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. PKx"Tdn d__virtualenv__/importlib_metadata-2.1.2-py2.py3-none-any/importlib_metadata-2.1.2.dist-info/METADATAMetadata-Version: 2.1 Name: importlib-metadata Version: 2.1.2 Summary: Read metadata from Python packages Home-page: http://importlib-metadata.readthedocs.io/ Author: Jason R. Coombs Author-email: jaraco@jaraco.com License: Apache Software License Platform: UNKNOWN Classifier: Development Status :: 3 - Alpha Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Topic :: Software Development :: Libraries Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 2 Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7 License-File: LICENSE Requires-Dist: zipp (>=0.5) Requires-Dist: pathlib2 ; python_version < "3" Requires-Dist: contextlib2 ; python_version < "3" Requires-Dist: configparser (>=3.5) ; python_version < "3" Provides-Extra: docs Requires-Dist: sphinx ; extra == 'docs' Requires-Dist: rst.linker ; extra == 'docs' Provides-Extra: testing Requires-Dist: packaging ; extra == 'testing' Requires-Dist: pep517 ; extra == 'testing' Requires-Dist: unittest2 ; (python_version < "3") and extra == 'testing' Requires-Dist: importlib-resources (>=1.3) ; (python_version < "3.9") and extra == 'testing' ========================= ``importlib_metadata`` ========================= ``importlib_metadata`` is a library to access the metadata for a Python package. As of Python 3.8, this functionality has been added to the `Python standard library `_. This package supplies backports of that functionality including improvements added to subsequent Python versions. Usage ===== See the `online documentation `_ for usage details. `Finder authors `_ can also add support for custom package installers. See the above documentation for details. Caveats ======= This project primarily supports third-party packages installed by PyPA tools (or other conforming packages). It does not support: - Packages in the stdlib. - Packages installed without metadata. Project details =============== * Project home: https://github.com/python/importlib_metadata * Report bugs at: https://github.com/python/importlib_metadata/issues * Code hosting: https://github.com/python/importlib_metadata * Documentation: https://importlib_metadata.readthedocs.io/ PKx"Tnna__virtualenv__/importlib_metadata-2.1.2-py2.py3-none-any/importlib_metadata-2.1.2.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.0) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any PKx"TZi__virtualenv__/importlib_metadata-2.1.2-py2.py3-none-any/importlib_metadata-2.1.2.dist-info/top_level.txtimportlib_metadata PKx"TCggb__virtualenv__/importlib_metadata-2.1.2-py2.py3-none-any/importlib_metadata-2.1.2.dist-info/RECORDimportlib_metadata/__init__.py,sha256=GS4J3WdDWNDq1u57e1H47lI8eI8qYIEn0q0z67nUiMM,19588 importlib_metadata/_compat.py,sha256=DnM55BbJKFCcZmJOkArmyO76-0g7pA6HEfzSYWXN88k,4417 importlib_metadata-2.1.2.dist-info/LICENSE,sha256=wNe6dAchmJ1VvVB8D9oTc-gHHadCuaSBAev36sYEM6U,571 importlib_metadata-2.1.2.dist-info/METADATA,sha256=QQtSbKfGdoWaD_ZauKkXc7JUCjbBdE_aMKuE9v9ANtM,2443 importlib_metadata-2.1.2.dist-info/WHEEL,sha256=WzZ8cwjh8l0jtULNjYq1Hpr-WCqCRgPr--TX4P5I1Wo,110 importlib_metadata-2.1.2.dist-info/top_level.txt,sha256=CO3fD9yylANiXkrMo4qHLV_mqXL2sC5JFKgt1yWAT-A,19 importlib_metadata-2.1.2.dist-info/RECORD,, PKx"TBq8 .__virtualenv__/zipp-3.7.0-py3-none-any/zipp.pyimport io import posixpath import zipfile import itertools import contextlib import sys import pathlib if sys.version_info < (3, 7): from collections import OrderedDict else: OrderedDict = dict __all__ = ['Path'] def _parents(path): """ Given a path with elements separated by posixpath.sep, generate all parents of that path. >>> list(_parents('b/d')) ['b'] >>> list(_parents('/b/d/')) ['/b'] >>> list(_parents('b/d/f/')) ['b/d', 'b'] >>> list(_parents('b')) [] >>> list(_parents('')) [] """ return itertools.islice(_ancestry(path), 1, None) def _ancestry(path): """ Given a path with elements separated by posixpath.sep, generate all elements of that path >>> list(_ancestry('b/d')) ['b/d', 'b'] >>> list(_ancestry('/b/d/')) ['/b/d', '/b'] >>> list(_ancestry('b/d/f/')) ['b/d/f', 'b/d', 'b'] >>> list(_ancestry('b')) ['b'] >>> list(_ancestry('')) [] """ path = path.rstrip(posixpath.sep) while path and path != posixpath.sep: yield path path, tail = posixpath.split(path) _dedupe = OrderedDict.fromkeys """Deduplicate an iterable in original order""" def _difference(minuend, subtrahend): """ Return items in minuend not in subtrahend, retaining order with O(1) lookup. """ return itertools.filterfalse(set(subtrahend).__contains__, minuend) class CompleteDirs(zipfile.ZipFile): """ A ZipFile subclass that ensures that implied directories are always included in the namelist. """ @staticmethod def _implied_dirs(names): parents = itertools.chain.from_iterable(map(_parents, names)) as_dirs = (p + posixpath.sep for p in parents) return _dedupe(_difference(as_dirs, names)) def namelist(self): names = super(CompleteDirs, self).namelist() return names + list(self._implied_dirs(names)) def _name_set(self): return set(self.namelist()) def resolve_dir(self, name): """ If the name represents a directory, return that name as a directory (with the trailing slash). """ names = self._name_set() dirname = name + '/' dir_match = name not in names and dirname in names return dirname if dir_match else name @classmethod def make(cls, source): """ Given a source (filename or zipfile), return an appropriate CompleteDirs subclass. """ if isinstance(source, CompleteDirs): return source if not isinstance(source, zipfile.ZipFile): return cls(_pathlib_compat(source)) # Only allow for FastLookup when supplied zipfile is read-only if 'r' not in source.mode: cls = CompleteDirs source.__class__ = cls return source class FastLookup(CompleteDirs): """ ZipFile subclass to ensure implicit dirs exist and are resolved rapidly. """ def namelist(self): with contextlib.suppress(AttributeError): return self.__names self.__names = super(FastLookup, self).namelist() return self.__names def _name_set(self): with contextlib.suppress(AttributeError): return self.__lookup self.__lookup = super(FastLookup, self)._name_set() return self.__lookup def _pathlib_compat(path): """ For path-like objects, convert to a filename for compatibility on Python 3.6.1 and earlier. """ try: return path.__fspath__() except AttributeError: return str(path) class Path: """ A pathlib-compatible interface for zip files. Consider a zip file with this structure:: . ├── a.txt └── b ├── c.txt └── d └── e.txt >>> data = io.BytesIO() >>> zf = zipfile.ZipFile(data, 'w') >>> zf.writestr('a.txt', 'content of a') >>> zf.writestr('b/c.txt', 'content of c') >>> zf.writestr('b/d/e.txt', 'content of e') >>> zf.filename = 'mem/abcde.zip' Path accepts the zipfile object itself or a filename >>> root = Path(zf) From there, several path operations are available. Directory iteration (including the zip file itself): >>> a, b = root.iterdir() >>> a Path('mem/abcde.zip', 'a.txt') >>> b Path('mem/abcde.zip', 'b/') name property: >>> b.name 'b' join with divide operator: >>> c = b / 'c.txt' >>> c Path('mem/abcde.zip', 'b/c.txt') >>> c.name 'c.txt' Read text: >>> c.read_text() 'content of c' existence: >>> c.exists() True >>> (b / 'missing.txt').exists() False Coercion to string: >>> import os >>> str(c).replace(os.sep, posixpath.sep) 'mem/abcde.zip/b/c.txt' At the root, ``name``, ``filename``, and ``parent`` resolve to the zipfile. Note these attributes are not valid and will raise a ``ValueError`` if the zipfile has no filename. >>> root.name 'abcde.zip' >>> str(root.filename).replace(os.sep, posixpath.sep) 'mem/abcde.zip' >>> str(root.parent) 'mem' """ __repr = "{self.__class__.__name__}({self.root.filename!r}, {self.at!r})" def __init__(self, root, at=""): """ Construct a Path from a ZipFile or filename. Note: When the source is an existing ZipFile object, its type (__class__) will be mutated to a specialized type. If the caller wishes to retain the original type, the caller should either create a separate ZipFile object or pass a filename. """ self.root = FastLookup.make(root) self.at = at def open(self, mode='r', *args, pwd=None, **kwargs): """ Open this entry as text or binary following the semantics of ``pathlib.Path.open()`` by passing arguments through to io.TextIOWrapper(). """ if self.is_dir(): raise IsADirectoryError(self) zip_mode = mode[0] if not self.exists() and zip_mode == 'r': raise FileNotFoundError(self) stream = self.root.open(self.at, zip_mode, pwd=pwd) if 'b' in mode: if args or kwargs: raise ValueError("encoding args invalid for binary operation") return stream return io.TextIOWrapper(stream, *args, **kwargs) @property def name(self): return pathlib.Path(self.at).name or self.filename.name @property def suffix(self): return pathlib.Path(self.at).suffix or self.filename.suffix @property def suffixes(self): return pathlib.Path(self.at).suffixes or self.filename.suffixes @property def stem(self): return pathlib.Path(self.at).stem or self.filename.stem @property def filename(self): return pathlib.Path(self.root.filename).joinpath(self.at) def read_text(self, *args, **kwargs): with self.open('r', *args, **kwargs) as strm: return strm.read() def read_bytes(self): with self.open('rb') as strm: return strm.read() def _is_child(self, path): return posixpath.dirname(path.at.rstrip("/")) == self.at.rstrip("/") def _next(self, at): return self.__class__(self.root, at) def is_dir(self): return not self.at or self.at.endswith("/") def is_file(self): return self.exists() and not self.is_dir() def exists(self): return self.at in self.root._name_set() def iterdir(self): if not self.is_dir(): raise ValueError("Can't listdir a file") subs = map(self._next, self.root.namelist()) return filter(self._is_child, subs) def __str__(self): return posixpath.join(self.root.filename, self.at) def __repr__(self): return self.__repr.format(self=self) def joinpath(self, *other): next = posixpath.join(self.at, *map(_pathlib_compat, other)) return self._next(self.root.resolve_dir(next)) __truediv__ = joinpath @property def parent(self): if not self.at: return self.filename.parent parent_at = posixpath.dirname(self.at.rstrip('/')) if parent_at: parent_at += '/' return self._next(parent_at) PKx"TYďC__virtualenv__/zipp-3.7.0-py3-none-any/zipp-3.7.0.dist-info/LICENSECopyright Jason R. Coombs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PKx"TD__virtualenv__/zipp-3.7.0-py3-none-any/zipp-3.7.0.dist-info/METADATAMetadata-Version: 2.1 Name: zipp Version: 3.7.0 Summary: Backport of pathlib-compatible object wrapper for zip files Home-page: https://github.com/jaraco/zipp Author: Jason R. Coombs Author-email: jaraco@jaraco.com License: UNKNOWN Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only Requires-Python: >=3.7 License-File: LICENSE Provides-Extra: docs Requires-Dist: sphinx ; extra == 'docs' Requires-Dist: jaraco.packaging (>=8.2) ; extra == 'docs' Requires-Dist: rst.linker (>=1.9) ; extra == 'docs' Provides-Extra: testing Requires-Dist: pytest (>=6) ; extra == 'testing' Requires-Dist: pytest-checkdocs (>=2.4) ; extra == 'testing' Requires-Dist: pytest-flake8 ; extra == 'testing' Requires-Dist: pytest-cov ; extra == 'testing' Requires-Dist: pytest-enabler (>=1.0.1) ; extra == 'testing' Requires-Dist: jaraco.itertools ; extra == 'testing' Requires-Dist: func-timeout ; extra == 'testing' Requires-Dist: pytest-black (>=0.3.7) ; (platform_python_implementation != "PyPy") and extra == 'testing' Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy") and extra == 'testing' .. image:: https://img.shields.io/pypi/v/zipp.svg :target: `PyPI link`_ .. image:: https://img.shields.io/pypi/pyversions/zipp.svg :target: `PyPI link`_ .. _PyPI link: https://pypi.org/project/zipp .. image:: https://github.com/jaraco/zipp/workflows/tests/badge.svg :target: https://github.com/jaraco/zipp/actions?query=workflow%3A%22tests%22 :alt: tests .. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black :alt: Code style: Black .. .. image:: https://readthedocs.org/projects/skeleton/badge/?version=latest .. :target: https://skeleton.readthedocs.io/en/latest/?badge=latest .. image:: https://img.shields.io/badge/skeleton-2021-informational :target: https://blog.jaraco.com/skeleton A pathlib-compatible Zipfile object wrapper. Official backport of the standard library `Path object `_. PKx"Th\\A__virtualenv__/zipp-3.7.0-py3-none-any/zipp-3.7.0.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.1) Root-Is-Purelib: true Tag: py3-none-any PKx"TBOuI__virtualenv__/zipp-3.7.0-py3-none-any/zipp-3.7.0.dist-info/top_level.txtzipp PKx"TmB__virtualenv__/zipp-3.7.0-py3-none-any/zipp-3.7.0.dist-info/RECORDzipp.py,sha256=ajztOH-9I7KA_4wqDYygtHa6xUBVZgFpmZ8FE74HHHI,8425 zipp-3.7.0.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050 zipp-3.7.0.dist-info/METADATA,sha256=ZLzgaXTyZX_MxTU0lcGfhdPY4CjFrT_3vyQ2Fo49pl8,2261 zipp-3.7.0.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92 zipp-3.7.0.dist-info/top_level.txt,sha256=iAbdoSHfaGqBfVb2XuR9JqSQHCoOsOtG6y9C_LSpqFw,5 zipp-3.7.0.dist-info/RECORD,, PKx"TBq8 .__virtualenv__/zipp-3.6.0-py3-none-any/zipp.pyimport io import posixpath import zipfile import itertools import contextlib import sys import pathlib if sys.version_info < (3, 7): from collections import OrderedDict else: OrderedDict = dict __all__ = ['Path'] def _parents(path): """ Given a path with elements separated by posixpath.sep, generate all parents of that path. >>> list(_parents('b/d')) ['b'] >>> list(_parents('/b/d/')) ['/b'] >>> list(_parents('b/d/f/')) ['b/d', 'b'] >>> list(_parents('b')) [] >>> list(_parents('')) [] """ return itertools.islice(_ancestry(path), 1, None) def _ancestry(path): """ Given a path with elements separated by posixpath.sep, generate all elements of that path >>> list(_ancestry('b/d')) ['b/d', 'b'] >>> list(_ancestry('/b/d/')) ['/b/d', '/b'] >>> list(_ancestry('b/d/f/')) ['b/d/f', 'b/d', 'b'] >>> list(_ancestry('b')) ['b'] >>> list(_ancestry('')) [] """ path = path.rstrip(posixpath.sep) while path and path != posixpath.sep: yield path path, tail = posixpath.split(path) _dedupe = OrderedDict.fromkeys """Deduplicate an iterable in original order""" def _difference(minuend, subtrahend): """ Return items in minuend not in subtrahend, retaining order with O(1) lookup. """ return itertools.filterfalse(set(subtrahend).__contains__, minuend) class CompleteDirs(zipfile.ZipFile): """ A ZipFile subclass that ensures that implied directories are always included in the namelist. """ @staticmethod def _implied_dirs(names): parents = itertools.chain.from_iterable(map(_parents, names)) as_dirs = (p + posixpath.sep for p in parents) return _dedupe(_difference(as_dirs, names)) def namelist(self): names = super(CompleteDirs, self).namelist() return names + list(self._implied_dirs(names)) def _name_set(self): return set(self.namelist()) def resolve_dir(self, name): """ If the name represents a directory, return that name as a directory (with the trailing slash). """ names = self._name_set() dirname = name + '/' dir_match = name not in names and dirname in names return dirname if dir_match else name @classmethod def make(cls, source): """ Given a source (filename or zipfile), return an appropriate CompleteDirs subclass. """ if isinstance(source, CompleteDirs): return source if not isinstance(source, zipfile.ZipFile): return cls(_pathlib_compat(source)) # Only allow for FastLookup when supplied zipfile is read-only if 'r' not in source.mode: cls = CompleteDirs source.__class__ = cls return source class FastLookup(CompleteDirs): """ ZipFile subclass to ensure implicit dirs exist and are resolved rapidly. """ def namelist(self): with contextlib.suppress(AttributeError): return self.__names self.__names = super(FastLookup, self).namelist() return self.__names def _name_set(self): with contextlib.suppress(AttributeError): return self.__lookup self.__lookup = super(FastLookup, self)._name_set() return self.__lookup def _pathlib_compat(path): """ For path-like objects, convert to a filename for compatibility on Python 3.6.1 and earlier. """ try: return path.__fspath__() except AttributeError: return str(path) class Path: """ A pathlib-compatible interface for zip files. Consider a zip file with this structure:: . ├── a.txt └── b ├── c.txt └── d └── e.txt >>> data = io.BytesIO() >>> zf = zipfile.ZipFile(data, 'w') >>> zf.writestr('a.txt', 'content of a') >>> zf.writestr('b/c.txt', 'content of c') >>> zf.writestr('b/d/e.txt', 'content of e') >>> zf.filename = 'mem/abcde.zip' Path accepts the zipfile object itself or a filename >>> root = Path(zf) From there, several path operations are available. Directory iteration (including the zip file itself): >>> a, b = root.iterdir() >>> a Path('mem/abcde.zip', 'a.txt') >>> b Path('mem/abcde.zip', 'b/') name property: >>> b.name 'b' join with divide operator: >>> c = b / 'c.txt' >>> c Path('mem/abcde.zip', 'b/c.txt') >>> c.name 'c.txt' Read text: >>> c.read_text() 'content of c' existence: >>> c.exists() True >>> (b / 'missing.txt').exists() False Coercion to string: >>> import os >>> str(c).replace(os.sep, posixpath.sep) 'mem/abcde.zip/b/c.txt' At the root, ``name``, ``filename``, and ``parent`` resolve to the zipfile. Note these attributes are not valid and will raise a ``ValueError`` if the zipfile has no filename. >>> root.name 'abcde.zip' >>> str(root.filename).replace(os.sep, posixpath.sep) 'mem/abcde.zip' >>> str(root.parent) 'mem' """ __repr = "{self.__class__.__name__}({self.root.filename!r}, {self.at!r})" def __init__(self, root, at=""): """ Construct a Path from a ZipFile or filename. Note: When the source is an existing ZipFile object, its type (__class__) will be mutated to a specialized type. If the caller wishes to retain the original type, the caller should either create a separate ZipFile object or pass a filename. """ self.root = FastLookup.make(root) self.at = at def open(self, mode='r', *args, pwd=None, **kwargs): """ Open this entry as text or binary following the semantics of ``pathlib.Path.open()`` by passing arguments through to io.TextIOWrapper(). """ if self.is_dir(): raise IsADirectoryError(self) zip_mode = mode[0] if not self.exists() and zip_mode == 'r': raise FileNotFoundError(self) stream = self.root.open(self.at, zip_mode, pwd=pwd) if 'b' in mode: if args or kwargs: raise ValueError("encoding args invalid for binary operation") return stream return io.TextIOWrapper(stream, *args, **kwargs) @property def name(self): return pathlib.Path(self.at).name or self.filename.name @property def suffix(self): return pathlib.Path(self.at).suffix or self.filename.suffix @property def suffixes(self): return pathlib.Path(self.at).suffixes or self.filename.suffixes @property def stem(self): return pathlib.Path(self.at).stem or self.filename.stem @property def filename(self): return pathlib.Path(self.root.filename).joinpath(self.at) def read_text(self, *args, **kwargs): with self.open('r', *args, **kwargs) as strm: return strm.read() def read_bytes(self): with self.open('rb') as strm: return strm.read() def _is_child(self, path): return posixpath.dirname(path.at.rstrip("/")) == self.at.rstrip("/") def _next(self, at): return self.__class__(self.root, at) def is_dir(self): return not self.at or self.at.endswith("/") def is_file(self): return self.exists() and not self.is_dir() def exists(self): return self.at in self.root._name_set() def iterdir(self): if not self.is_dir(): raise ValueError("Can't listdir a file") subs = map(self._next, self.root.namelist()) return filter(self._is_child, subs) def __str__(self): return posixpath.join(self.root.filename, self.at) def __repr__(self): return self.__repr.format(self=self) def joinpath(self, *other): next = posixpath.join(self.at, *map(_pathlib_compat, other)) return self._next(self.root.resolve_dir(next)) __truediv__ = joinpath @property def parent(self): if not self.at: return self.filename.parent parent_at = posixpath.dirname(self.at.rstrip('/')) if parent_at: parent_at += '/' return self._next(parent_at) PKx"TYďC__virtualenv__/zipp-3.6.0-py3-none-any/zipp-3.6.0.dist-info/LICENSECopyright Jason R. Coombs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PKx"TD__virtualenv__/zipp-3.6.0-py3-none-any/zipp-3.6.0.dist-info/METADATAMetadata-Version: 2.1 Name: zipp Version: 3.6.0 Summary: Backport of pathlib-compatible object wrapper for zip files Home-page: https://github.com/jaraco/zipp Author: Jason R. Coombs Author-email: jaraco@jaraco.com License: UNKNOWN Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only Requires-Python: >=3.6 License-File: LICENSE Provides-Extra: docs Requires-Dist: sphinx ; extra == 'docs' Requires-Dist: jaraco.packaging (>=8.2) ; extra == 'docs' Requires-Dist: rst.linker (>=1.9) ; extra == 'docs' Provides-Extra: testing Requires-Dist: pytest (>=4.6) ; extra == 'testing' Requires-Dist: pytest-checkdocs (>=2.4) ; extra == 'testing' Requires-Dist: pytest-flake8 ; extra == 'testing' Requires-Dist: pytest-cov ; extra == 'testing' Requires-Dist: pytest-enabler (>=1.0.1) ; extra == 'testing' Requires-Dist: jaraco.itertools ; extra == 'testing' Requires-Dist: func-timeout ; extra == 'testing' Requires-Dist: pytest-black (>=0.3.7) ; (platform_python_implementation != "PyPy") and extra == 'testing' Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy") and extra == 'testing' .. image:: https://img.shields.io/pypi/v/zipp.svg :target: `PyPI link`_ .. image:: https://img.shields.io/pypi/pyversions/zipp.svg :target: `PyPI link`_ .. _PyPI link: https://pypi.org/project/zipp .. image:: https://github.com/jaraco/zipp/workflows/tests/badge.svg :target: https://github.com/jaraco/zipp/actions?query=workflow%3A%22tests%22 :alt: tests .. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black :alt: Code style: Black .. .. image:: https://readthedocs.org/projects/skeleton/badge/?version=latest .. :target: https://skeleton.readthedocs.io/en/latest/?badge=latest .. image:: https://img.shields.io/badge/skeleton-2021-informational :target: https://blog.jaraco.com/skeleton A pathlib-compatible Zipfile object wrapper. Official backport of the standard library `Path object `_. PKx"TP2\\A__virtualenv__/zipp-3.6.0-py3-none-any/zipp-3.6.0.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.0) Root-Is-Purelib: true Tag: py3-none-any PKx"TBOuI__virtualenv__/zipp-3.6.0-py3-none-any/zipp-3.6.0.dist-info/top_level.txtzipp PKx"T̲B__virtualenv__/zipp-3.6.0-py3-none-any/zipp-3.6.0.dist-info/RECORDzipp.py,sha256=ajztOH-9I7KA_4wqDYygtHa6xUBVZgFpmZ8FE74HHHI,8425 zipp-3.6.0.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050 zipp-3.6.0.dist-info/METADATA,sha256=qZcCKAkx7YTb17tMj97MF7A930rB-LWXw_5SwbGPefs,2263 zipp-3.6.0.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 zipp-3.6.0.dist-info/top_level.txt,sha256=iAbdoSHfaGqBfVb2XuR9JqSQHCoOsOtG6y9C_LSpqFw,5 zipp-3.6.0.dist-info/RECORD,, PKx"T Z2__virtualenv__/zipp-1.2.0-py2.py3-none-any/zipp.py# coding: utf-8 from __future__ import division import io import sys import posixpath import zipfile import functools import itertools from collections import OrderedDict try: from contextlib import suppress except ImportError: from contextlib2 import suppress __metaclass__ = type def _parents(path): """ Given a path with elements separated by posixpath.sep, generate all parents of that path. >>> list(_parents('b/d')) ['b'] >>> list(_parents('/b/d/')) ['/b'] >>> list(_parents('b/d/f/')) ['b/d', 'b'] >>> list(_parents('b')) [] >>> list(_parents('')) [] """ return itertools.islice(_ancestry(path), 1, None) def _ancestry(path): """ Given a path with elements separated by posixpath.sep, generate all elements of that path >>> list(_ancestry('b/d')) ['b/d', 'b'] >>> list(_ancestry('/b/d/')) ['/b/d', '/b'] >>> list(_ancestry('b/d/f/')) ['b/d/f', 'b/d', 'b'] >>> list(_ancestry('b')) ['b'] >>> list(_ancestry('')) [] """ path = path.rstrip(posixpath.sep) while path and path != posixpath.sep: yield path path, tail = posixpath.split(path) class CompleteDirs(zipfile.ZipFile): """ A ZipFile subclass that ensures that implied directories are always included in the namelist. """ @staticmethod def _implied_dirs(names): parents = itertools.chain.from_iterable(map(_parents, names)) # Cast names to a set for O(1) lookups existing = set(names) # Deduplicate entries in original order implied_dirs = OrderedDict.fromkeys( p + posixpath.sep for p in parents if p + posixpath.sep not in existing ) return implied_dirs def namelist(self): names = super(CompleteDirs, self).namelist() return names + list(self._implied_dirs(names)) def _name_set(self): return set(self.namelist()) def resolve_dir(self, name): """ If the name represents a directory, return that name as a directory (with the trailing slash). """ names = self._name_set() dirname = name + '/' dir_match = name not in names and dirname in names return dirname if dir_match else name @classmethod def make(cls, source): """ Given a source (filename or zipfile), return an appropriate CompleteDirs subclass. """ if isinstance(source, CompleteDirs): return source if not isinstance(source, zipfile.ZipFile): return cls(_pathlib_compat(source)) # Only allow for FastPath when supplied zipfile is read-only if 'r' not in source.mode: cls = CompleteDirs res = cls.__new__(cls) vars(res).update(vars(source)) return res class FastLookup(CompleteDirs): """ ZipFile subclass to ensure implicit dirs exist and are resolved rapidly. """ def namelist(self): with suppress(AttributeError): return self.__names self.__names = super(FastLookup, self).namelist() return self.__names def _name_set(self): with suppress(AttributeError): return self.__lookup self.__lookup = super(FastLookup, self)._name_set() return self.__lookup def _pathlib_compat(path): """ For path-like objects, convert to a filename for compatibility on Python 3.6.1 and earlier. """ try: return path.__fspath__() except AttributeError: return str(path) class Path: """ A pathlib-compatible interface for zip files. Consider a zip file with this structure:: . ├── a.txt └── b ├── c.txt └── d └── e.txt >>> data = io.BytesIO() >>> zf = zipfile.ZipFile(data, 'w') >>> zf.writestr('a.txt', 'content of a') >>> zf.writestr('b/c.txt', 'content of c') >>> zf.writestr('b/d/e.txt', 'content of e') >>> zf.filename = 'abcde.zip' Path accepts the zipfile object itself or a filename >>> root = Path(zf) From there, several path operations are available. Directory iteration (including the zip file itself): >>> a, b = root.iterdir() >>> a Path('abcde.zip', 'a.txt') >>> b Path('abcde.zip', 'b/') name property: >>> b.name 'b' join with divide operator: >>> c = b / 'c.txt' >>> c Path('abcde.zip', 'b/c.txt') >>> c.name 'c.txt' Read text: >>> c.read_text() 'content of c' existence: >>> c.exists() True >>> (b / 'missing.txt').exists() False Coercion to string: >>> str(c) 'abcde.zip/b/c.txt' """ __repr = "{self.__class__.__name__}({self.root.filename!r}, {self.at!r})" def __init__(self, root, at=""): self.root = FastLookup.make(root) self.at = at def open(self, mode='r', *args, **kwargs): """ Open this entry as text or binary following the semantics of ``pathlib.Path.open()`` by passing arguments through to io.TextIOWrapper(). """ pwd = kwargs.pop('pwd', None) zip_mode = mode[0] stream = self.root.open(self.at, zip_mode, pwd=pwd) if 'b' in mode: if args or kwargs: raise ValueError("encoding args invalid for binary operation") return stream return io.TextIOWrapper(stream, *args, **kwargs) @property def name(self): return posixpath.basename(self.at.rstrip("/")) def read_text(self, *args, **kwargs): with self.open('r', *args, **kwargs) as strm: return strm.read() def read_bytes(self): with self.open('rb') as strm: return strm.read() def _is_child(self, path): return posixpath.dirname(path.at.rstrip("/")) == self.at.rstrip("/") def _next(self, at): return Path(self.root, at) def is_dir(self): return not self.at or self.at.endswith("/") def is_file(self): return not self.is_dir() def exists(self): return self.at in self.root._name_set() def iterdir(self): if not self.is_dir(): raise ValueError("Can't listdir a file") subs = map(self._next, self.root.namelist()) return filter(self._is_child, subs) def __str__(self): return posixpath.join(self.root.filename, self.at) def __repr__(self): return self.__repr.format(self=self) def joinpath(self, add): next = posixpath.join(self.at, _pathlib_compat(add)) return self._next(self.root.resolve_dir(next)) __truediv__ = joinpath @property def parent(self): parent_at = posixpath.dirname(self.at.rstrip('/')) if parent_at: parent_at += '/' return self._next(parent_at) if sys.version_info < (3,): __div__ = __truediv__ PKx"TDG__virtualenv__/zipp-1.2.0-py2.py3-none-any/zipp-1.2.0.dist-info/LICENSECopyright Jason R. Coombs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PKx"T[-H__virtualenv__/zipp-1.2.0-py2.py3-none-any/zipp-1.2.0.dist-info/METADATAMetadata-Version: 2.1 Name: zipp Version: 1.2.0 Summary: Backport of pathlib-compatible object wrapper for zip files Home-page: https://github.com/jaraco/zipp Author: Jason R. Coombs Author-email: jaraco@jaraco.com License: UNKNOWN Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Requires-Python: >=2.7 Requires-Dist: contextlib2 ; python_version < "3.4" Provides-Extra: docs Requires-Dist: sphinx ; extra == 'docs' Requires-Dist: jaraco.packaging (>=3.2) ; extra == 'docs' Requires-Dist: rst.linker (>=1.9) ; extra == 'docs' Provides-Extra: testing Requires-Dist: pathlib2 ; extra == 'testing' Requires-Dist: unittest2 ; extra == 'testing' Requires-Dist: jaraco.itertools ; extra == 'testing' Requires-Dist: func-timeout ; extra == 'testing' .. image:: https://img.shields.io/pypi/v/zipp.svg :target: https://pypi.org/project/zipp .. image:: https://img.shields.io/pypi/pyversions/zipp.svg .. image:: https://img.shields.io/travis/jaraco/zipp/master.svg :target: https://travis-ci.org/jaraco/zipp .. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/ambv/black :alt: Code style: Black .. image:: https://img.shields.io/appveyor/ci/jaraco/zipp/master.svg :target: https://ci.appveyor.com/project/jaraco/zipp/branch/master .. .. image:: https://readthedocs.org/projects/zipp/badge/?version=latest .. :target: https://zipp.readthedocs.io/en/latest/?badge=latest A pathlib-compatible Zipfile object wrapper. A backport of the `Path object `_. PKx"TXnnE__virtualenv__/zipp-1.2.0-py2.py3-none-any/zipp-1.2.0.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.34.2) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any PKx"TBOuM__virtualenv__/zipp-1.2.0-py2.py3-none-any/zipp-1.2.0.dist-info/top_level.txtzipp PKx"TKTF__virtualenv__/zipp-1.2.0-py2.py3-none-any/zipp-1.2.0.dist-info/RECORDzipp.py,sha256=uw2fKH3c8O07ReW9L27THYalYWMMWv_juvr-5BG-3zA,7039 zipp-1.2.0.dist-info/LICENSE,sha256=pV4v_ptEmY5iHVHYwJS-0JrMS1I27nPX3zlaM7o8GP0,1050 zipp-1.2.0.dist-info/METADATA,sha256=5-1p1kkPwGBPcQe6naFJUH024SFYA4rOmDzqvrLFRGM,1795 zipp-1.2.0.dist-info/WHEEL,sha256=kGT74LWyRUZrL4VgLh6_g12IeVl_9u9ZVhadrgXZUEY,110 zipp-1.2.0.dist-info/top_level.txt,sha256=iAbdoSHfaGqBfVb2XuR9JqSQHCoOsOtG6y9C_LSpqFw,5 zipp-1.2.0.dist-info/RECORD,, PKx"TaLmTmTH__virtualenv__/typing_extensions-4.0.1-py3-none-any/typing_extensions.pyimport abc import collections import collections.abc import operator import sys import typing # After PEP 560, internal typing API was substantially reworked. # This is especially important for Protocol class which uses internal APIs # quite extensively. PEP_560 = sys.version_info[:3] >= (3, 7, 0) if PEP_560: GenericMeta = type else: # 3.6 from typing import GenericMeta, _type_vars # noqa # The two functions below are copies of typing internal helpers. # They are needed by _ProtocolMeta def _no_slots_copy(dct): dict_copy = dict(dct) if '__slots__' in dict_copy: for slot in dict_copy['__slots__']: dict_copy.pop(slot, None) return dict_copy def _check_generic(cls, parameters): if not cls.__parameters__: raise TypeError(f"{cls} is not a generic class") alen = len(parameters) elen = len(cls.__parameters__) if alen != elen: raise TypeError(f"Too {'many' if alen > elen else 'few'} arguments for {cls};" f" actual {alen}, expected {elen}") # Please keep __all__ alphabetized within each category. __all__ = [ # Super-special typing primitives. 'ClassVar', 'Concatenate', 'Final', 'ParamSpec', 'Self', 'Type', # ABCs (from collections.abc). 'Awaitable', 'AsyncIterator', 'AsyncIterable', 'Coroutine', 'AsyncGenerator', 'AsyncContextManager', 'ChainMap', # Concrete collection types. 'ContextManager', 'Counter', 'Deque', 'DefaultDict', 'OrderedDict', 'TypedDict', # Structural checks, a.k.a. protocols. 'SupportsIndex', # One-off things. 'Annotated', 'final', 'IntVar', 'Literal', 'NewType', 'overload', 'Protocol', 'runtime', 'runtime_checkable', 'Text', 'TypeAlias', 'TypeGuard', 'TYPE_CHECKING', ] if PEP_560: __all__.extend(["get_args", "get_origin", "get_type_hints"]) # 3.6.2+ if hasattr(typing, 'NoReturn'): NoReturn = typing.NoReturn # 3.6.0-3.6.1 else: class _NoReturn(typing._FinalTypingBase, _root=True): """Special type indicating functions that never return. Example:: from typing import NoReturn def stop() -> NoReturn: raise Exception('no way') This type is invalid in other positions, e.g., ``List[NoReturn]`` will fail in static type checkers. """ __slots__ = () def __instancecheck__(self, obj): raise TypeError("NoReturn cannot be used with isinstance().") def __subclasscheck__(self, cls): raise TypeError("NoReturn cannot be used with issubclass().") NoReturn = _NoReturn(_root=True) # Some unconstrained type variables. These are used by the container types. # (These are not for export.) T = typing.TypeVar('T') # Any type. KT = typing.TypeVar('KT') # Key type. VT = typing.TypeVar('VT') # Value type. T_co = typing.TypeVar('T_co', covariant=True) # Any type covariant containers. T_contra = typing.TypeVar('T_contra', contravariant=True) # Ditto contravariant. ClassVar = typing.ClassVar # On older versions of typing there is an internal class named "Final". # 3.8+ if hasattr(typing, 'Final') and sys.version_info[:2] >= (3, 7): Final = typing.Final # 3.7 elif sys.version_info[:2] >= (3, 7): class _FinalForm(typing._SpecialForm, _root=True): def __repr__(self): return 'typing_extensions.' + self._name def __getitem__(self, parameters): item = typing._type_check(parameters, f'{self._name} accepts only single type') return typing._GenericAlias(self, (item,)) Final = _FinalForm('Final', doc="""A special typing construct to indicate that a name cannot be re-assigned or overridden in a subclass. For example: MAX_SIZE: Final = 9000 MAX_SIZE += 1 # Error reported by type checker class Connection: TIMEOUT: Final[int] = 10 class FastConnector(Connection): TIMEOUT = 1 # Error reported by type checker There is no runtime checking of these properties.""") # 3.6 else: class _Final(typing._FinalTypingBase, _root=True): """A special typing construct to indicate that a name cannot be re-assigned or overridden in a subclass. For example: MAX_SIZE: Final = 9000 MAX_SIZE += 1 # Error reported by type checker class Connection: TIMEOUT: Final[int] = 10 class FastConnector(Connection): TIMEOUT = 1 # Error reported by type checker There is no runtime checking of these properties. """ __slots__ = ('__type__',) def __init__(self, tp=None, **kwds): self.__type__ = tp def __getitem__(self, item): cls = type(self) if self.__type__ is None: return cls(typing._type_check(item, f'{cls.__name__[1:]} accepts only single type.'), _root=True) raise TypeError(f'{cls.__name__[1:]} cannot be further subscripted') def _eval_type(self, globalns, localns): new_tp = typing._eval_type(self.__type__, globalns, localns) if new_tp == self.__type__: return self return type(self)(new_tp, _root=True) def __repr__(self): r = super().__repr__() if self.__type__ is not None: r += f'[{typing._type_repr(self.__type__)}]' return r def __hash__(self): return hash((type(self).__name__, self.__type__)) def __eq__(self, other): if not isinstance(other, _Final): return NotImplemented if self.__type__ is not None: return self.__type__ == other.__type__ return self is other Final = _Final(_root=True) # 3.8+ if hasattr(typing, 'final'): final = typing.final # 3.6-3.7 else: def final(f): """This decorator can be used to indicate to type checkers that the decorated method cannot be overridden, and decorated class cannot be subclassed. For example: class Base: @final def done(self) -> None: ... class Sub(Base): def done(self) -> None: # Error reported by type checker ... @final class Leaf: ... class Other(Leaf): # Error reported by type checker ... There is no runtime checking of these properties. """ return f def IntVar(name): return typing.TypeVar(name) # 3.8+: if hasattr(typing, 'Literal'): Literal = typing.Literal # 3.7: elif sys.version_info[:2] >= (3, 7): class _LiteralForm(typing._SpecialForm, _root=True): def __repr__(self): return 'typing_extensions.' + self._name def __getitem__(self, parameters): return typing._GenericAlias(self, parameters) Literal = _LiteralForm('Literal', doc="""A type that can be used to indicate to type checkers that the corresponding value has a value literally equivalent to the provided parameter. For example: var: Literal[4] = 4 The type checker understands that 'var' is literally equal to the value 4 and no other value. Literal[...] cannot be subclassed. There is no runtime checking verifying that the parameter is actually a value instead of a type.""") # 3.6: else: class _Literal(typing._FinalTypingBase, _root=True): """A type that can be used to indicate to type checkers that the corresponding value has a value literally equivalent to the provided parameter. For example: var: Literal[4] = 4 The type checker understands that 'var' is literally equal to the value 4 and no other value. Literal[...] cannot be subclassed. There is no runtime checking verifying that the parameter is actually a value instead of a type. """ __slots__ = ('__values__',) def __init__(self, values=None, **kwds): self.__values__ = values def __getitem__(self, values): cls = type(self) if self.__values__ is None: if not isinstance(values, tuple): values = (values,) return cls(values, _root=True) raise TypeError(f'{cls.__name__[1:]} cannot be further subscripted') def _eval_type(self, globalns, localns): return self def __repr__(self): r = super().__repr__() if self.__values__ is not None: r += f'[{", ".join(map(typing._type_repr, self.__values__))}]' return r def __hash__(self): return hash((type(self).__name__, self.__values__)) def __eq__(self, other): if not isinstance(other, _Literal): return NotImplemented if self.__values__ is not None: return self.__values__ == other.__values__ return self is other Literal = _Literal(_root=True) _overload_dummy = typing._overload_dummy # noqa overload = typing.overload # This is not a real generic class. Don't use outside annotations. Type = typing.Type # Various ABCs mimicking those in collections.abc. # A few are simply re-exported for completeness. class _ExtensionsGenericMeta(GenericMeta): def __subclasscheck__(self, subclass): """This mimics a more modern GenericMeta.__subclasscheck__() logic (that does not have problems with recursion) to work around interactions between collections, typing, and typing_extensions on older versions of Python, see https://github.com/python/typing/issues/501. """ if self.__origin__ is not None: if sys._getframe(1).f_globals['__name__'] not in ['abc', 'functools']: raise TypeError("Parameterized generics cannot be used with class " "or instance checks") return False if not self.__extra__: return super().__subclasscheck__(subclass) res = self.__extra__.__subclasshook__(subclass) if res is not NotImplemented: return res if self.__extra__ in subclass.__mro__: return True for scls in self.__extra__.__subclasses__(): if isinstance(scls, GenericMeta): continue if issubclass(subclass, scls): return True return False Awaitable = typing.Awaitable Coroutine = typing.Coroutine AsyncIterable = typing.AsyncIterable AsyncIterator = typing.AsyncIterator # 3.6.1+ if hasattr(typing, 'Deque'): Deque = typing.Deque # 3.6.0 else: class Deque(collections.deque, typing.MutableSequence[T], metaclass=_ExtensionsGenericMeta, extra=collections.deque): __slots__ = () def __new__(cls, *args, **kwds): if cls._gorg is Deque: return collections.deque(*args, **kwds) return typing._generic_new(collections.deque, cls, *args, **kwds) ContextManager = typing.ContextManager # 3.6.2+ if hasattr(typing, 'AsyncContextManager'): AsyncContextManager = typing.AsyncContextManager # 3.6.0-3.6.1 else: from _collections_abc import _check_methods as _check_methods_in_mro # noqa class AsyncContextManager(typing.Generic[T_co]): __slots__ = () async def __aenter__(self): return self @abc.abstractmethod async def __aexit__(self, exc_type, exc_value, traceback): return None @classmethod def __subclasshook__(cls, C): if cls is AsyncContextManager: return _check_methods_in_mro(C, "__aenter__", "__aexit__") return NotImplemented DefaultDict = typing.DefaultDict # 3.7.2+ if hasattr(typing, 'OrderedDict'): OrderedDict = typing.OrderedDict # 3.7.0-3.7.2 elif (3, 7, 0) <= sys.version_info[:3] < (3, 7, 2): OrderedDict = typing._alias(collections.OrderedDict, (KT, VT)) # 3.6 else: class OrderedDict(collections.OrderedDict, typing.MutableMapping[KT, VT], metaclass=_ExtensionsGenericMeta, extra=collections.OrderedDict): __slots__ = () def __new__(cls, *args, **kwds): if cls._gorg is OrderedDict: return collections.OrderedDict(*args, **kwds) return typing._generic_new(collections.OrderedDict, cls, *args, **kwds) # 3.6.2+ if hasattr(typing, 'Counter'): Counter = typing.Counter # 3.6.0-3.6.1 else: class Counter(collections.Counter, typing.Dict[T, int], metaclass=_ExtensionsGenericMeta, extra=collections.Counter): __slots__ = () def __new__(cls, *args, **kwds): if cls._gorg is Counter: return collections.Counter(*args, **kwds) return typing._generic_new(collections.Counter, cls, *args, **kwds) # 3.6.1+ if hasattr(typing, 'ChainMap'): ChainMap = typing.ChainMap elif hasattr(collections, 'ChainMap'): class ChainMap(collections.ChainMap, typing.MutableMapping[KT, VT], metaclass=_ExtensionsGenericMeta, extra=collections.ChainMap): __slots__ = () def __new__(cls, *args, **kwds): if cls._gorg is ChainMap: return collections.ChainMap(*args, **kwds) return typing._generic_new(collections.ChainMap, cls, *args, **kwds) # 3.6.1+ if hasattr(typing, 'AsyncGenerator'): AsyncGenerator = typing.AsyncGenerator # 3.6.0 else: class AsyncGenerator(AsyncIterator[T_co], typing.Generic[T_co, T_contra], metaclass=_ExtensionsGenericMeta, extra=collections.abc.AsyncGenerator): __slots__ = () NewType = typing.NewType Text = typing.Text TYPE_CHECKING = typing.TYPE_CHECKING def _gorg(cls): """This function exists for compatibility with old typing versions.""" assert isinstance(cls, GenericMeta) if hasattr(cls, '_gorg'): return cls._gorg while cls.__origin__ is not None: cls = cls.__origin__ return cls _PROTO_WHITELIST = ['Callable', 'Awaitable', 'Iterable', 'Iterator', 'AsyncIterable', 'AsyncIterator', 'Hashable', 'Sized', 'Container', 'Collection', 'Reversible', 'ContextManager', 'AsyncContextManager'] def _get_protocol_attrs(cls): attrs = set() for base in cls.__mro__[:-1]: # without object if base.__name__ in ('Protocol', 'Generic'): continue annotations = getattr(base, '__annotations__', {}) for attr in list(base.__dict__.keys()) + list(annotations.keys()): if (not attr.startswith('_abc_') and attr not in ( '__abstractmethods__', '__annotations__', '__weakref__', '_is_protocol', '_is_runtime_protocol', '__dict__', '__args__', '__slots__', '__next_in_mro__', '__parameters__', '__origin__', '__orig_bases__', '__extra__', '__tree_hash__', '__doc__', '__subclasshook__', '__init__', '__new__', '__module__', '_MutableMapping__marker', '_gorg')): attrs.add(attr) return attrs def _is_callable_members_only(cls): return all(callable(getattr(cls, attr, None)) for attr in _get_protocol_attrs(cls)) # 3.8+ if hasattr(typing, 'Protocol'): Protocol = typing.Protocol # 3.7 elif PEP_560: from typing import _collect_type_vars # noqa def _no_init(self, *args, **kwargs): if type(self)._is_protocol: raise TypeError('Protocols cannot be instantiated') class _ProtocolMeta(abc.ABCMeta): # This metaclass is a bit unfortunate and exists only because of the lack # of __instancehook__. def __instancecheck__(cls, instance): # We need this method for situations where attributes are # assigned in __init__. if ((not getattr(cls, '_is_protocol', False) or _is_callable_members_only(cls)) and issubclass(instance.__class__, cls)): return True if cls._is_protocol: if all(hasattr(instance, attr) and (not callable(getattr(cls, attr, None)) or getattr(instance, attr) is not None) for attr in _get_protocol_attrs(cls)): return True return super().__instancecheck__(instance) class Protocol(metaclass=_ProtocolMeta): # There is quite a lot of overlapping code with typing.Generic. # Unfortunately it is hard to avoid this while these live in two different # modules. The duplicated code will be removed when Protocol is moved to typing. """Base class for protocol classes. Protocol classes are defined as:: class Proto(Protocol): def meth(self) -> int: ... Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing), for example:: class C: def meth(self) -> int: return 0 def func(x: Proto) -> int: return x.meth() func(C()) # Passes static type check See PEP 544 for details. Protocol classes decorated with @typing_extensions.runtime act as simple-minded runtime protocol that checks only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:: class GenProto(Protocol[T]): def meth(self) -> T: ... """ __slots__ = () _is_protocol = True def __new__(cls, *args, **kwds): if cls is Protocol: raise TypeError("Type Protocol cannot be instantiated; " "it can only be used as a base class") return super().__new__(cls) @typing._tp_cache def __class_getitem__(cls, params): if not isinstance(params, tuple): params = (params,) if not params and cls is not typing.Tuple: raise TypeError( f"Parameter list to {cls.__qualname__}[...] cannot be empty") msg = "Parameters to generic types must be types." params = tuple(typing._type_check(p, msg) for p in params) # noqa if cls is Protocol: # Generic can only be subscripted with unique type variables. if not all(isinstance(p, typing.TypeVar) for p in params): i = 0 while isinstance(params[i], typing.TypeVar): i += 1 raise TypeError( "Parameters to Protocol[...] must all be type variables." f" Parameter {i + 1} is {params[i]}") if len(set(params)) != len(params): raise TypeError( "Parameters to Protocol[...] must all be unique") else: # Subscripting a regular Generic subclass. _check_generic(cls, params) return typing._GenericAlias(cls, params) def __init_subclass__(cls, *args, **kwargs): tvars = [] if '__orig_bases__' in cls.__dict__: error = typing.Generic in cls.__orig_bases__ else: error = typing.Generic in cls.__bases__ if error: raise TypeError("Cannot inherit from plain Generic") if '__orig_bases__' in cls.__dict__: tvars = _collect_type_vars(cls.__orig_bases__) # Look for Generic[T1, ..., Tn] or Protocol[T1, ..., Tn]. # If found, tvars must be a subset of it. # If not found, tvars is it. # Also check for and reject plain Generic, # and reject multiple Generic[...] and/or Protocol[...]. gvars = None for base in cls.__orig_bases__: if (isinstance(base, typing._GenericAlias) and base.__origin__ in (typing.Generic, Protocol)): # for error messages the_base = base.__origin__.__name__ if gvars is not None: raise TypeError( "Cannot inherit from Generic[...]" " and/or Protocol[...] multiple types.") gvars = base.__parameters__ if gvars is None: gvars = tvars else: tvarset = set(tvars) gvarset = set(gvars) if not tvarset <= gvarset: s_vars = ', '.join(str(t) for t in tvars if t not in gvarset) s_args = ', '.join(str(g) for g in gvars) raise TypeError(f"Some type variables ({s_vars}) are" f" not listed in {the_base}[{s_args}]") tvars = gvars cls.__parameters__ = tuple(tvars) # Determine if this is a protocol or a concrete subclass. if not cls.__dict__.get('_is_protocol', None): cls._is_protocol = any(b is Protocol for b in cls.__bases__) # Set (or override) the protocol subclass hook. def _proto_hook(other): if not cls.__dict__.get('_is_protocol', None): return NotImplemented if not getattr(cls, '_is_runtime_protocol', False): if sys._getframe(2).f_globals['__name__'] in ['abc', 'functools']: return NotImplemented raise TypeError("Instance and class checks can only be used with" " @runtime protocols") if not _is_callable_members_only(cls): if sys._getframe(2).f_globals['__name__'] in ['abc', 'functools']: return NotImplemented raise TypeError("Protocols with non-method members" " don't support issubclass()") if not isinstance(other, type): # Same error as for issubclass(1, int) raise TypeError('issubclass() arg 1 must be a class') for attr in _get_protocol_attrs(cls): for base in other.__mro__: if attr in base.__dict__: if base.__dict__[attr] is None: return NotImplemented break annotations = getattr(base, '__annotations__', {}) if (isinstance(annotations, typing.Mapping) and attr in annotations and isinstance(other, _ProtocolMeta) and other._is_protocol): break else: return NotImplemented return True if '__subclasshook__' not in cls.__dict__: cls.__subclasshook__ = _proto_hook # We have nothing more to do for non-protocols. if not cls._is_protocol: return # Check consistency of bases. for base in cls.__bases__: if not (base in (object, typing.Generic) or base.__module__ == 'collections.abc' and base.__name__ in _PROTO_WHITELIST or isinstance(base, _ProtocolMeta) and base._is_protocol): raise TypeError('Protocols can only inherit from other' f' protocols, got {repr(base)}') cls.__init__ = _no_init # 3.6 else: from typing import _next_in_mro, _type_check # noqa def _no_init(self, *args, **kwargs): if type(self)._is_protocol: raise TypeError('Protocols cannot be instantiated') class _ProtocolMeta(GenericMeta): """Internal metaclass for Protocol. This exists so Protocol classes can be generic without deriving from Generic. """ def __new__(cls, name, bases, namespace, tvars=None, args=None, origin=None, extra=None, orig_bases=None): # This is just a version copied from GenericMeta.__new__ that # includes "Protocol" special treatment. (Comments removed for brevity.) assert extra is None # Protocols should not have extra if tvars is not None: assert origin is not None assert all(isinstance(t, typing.TypeVar) for t in tvars), tvars else: tvars = _type_vars(bases) gvars = None for base in bases: if base is typing.Generic: raise TypeError("Cannot inherit from plain Generic") if (isinstance(base, GenericMeta) and base.__origin__ in (typing.Generic, Protocol)): if gvars is not None: raise TypeError( "Cannot inherit from Generic[...] or" " Protocol[...] multiple times.") gvars = base.__parameters__ if gvars is None: gvars = tvars else: tvarset = set(tvars) gvarset = set(gvars) if not tvarset <= gvarset: s_vars = ", ".join(str(t) for t in tvars if t not in gvarset) s_args = ", ".join(str(g) for g in gvars) cls_name = "Generic" if any(b.__origin__ is typing.Generic for b in bases) else "Protocol" raise TypeError(f"Some type variables ({s_vars}) are" f" not listed in {cls_name}[{s_args}]") tvars = gvars initial_bases = bases if (extra is not None and type(extra) is abc.ABCMeta and extra not in bases): bases = (extra,) + bases bases = tuple(_gorg(b) if isinstance(b, GenericMeta) else b for b in bases) if any(isinstance(b, GenericMeta) and b is not typing.Generic for b in bases): bases = tuple(b for b in bases if b is not typing.Generic) namespace.update({'__origin__': origin, '__extra__': extra}) self = super(GenericMeta, cls).__new__(cls, name, bases, namespace, _root=True) super(GenericMeta, self).__setattr__('_gorg', self if not origin else _gorg(origin)) self.__parameters__ = tvars self.__args__ = tuple(... if a is typing._TypingEllipsis else () if a is typing._TypingEmpty else a for a in args) if args else None self.__next_in_mro__ = _next_in_mro(self) if orig_bases is None: self.__orig_bases__ = initial_bases elif origin is not None: self._abc_registry = origin._abc_registry self._abc_cache = origin._abc_cache if hasattr(self, '_subs_tree'): self.__tree_hash__ = (hash(self._subs_tree()) if origin else super(GenericMeta, self).__hash__()) return self def __init__(cls, *args, **kwargs): super().__init__(*args, **kwargs) if not cls.__dict__.get('_is_protocol', None): cls._is_protocol = any(b is Protocol or isinstance(b, _ProtocolMeta) and b.__origin__ is Protocol for b in cls.__bases__) if cls._is_protocol: for base in cls.__mro__[1:]: if not (base in (object, typing.Generic) or base.__module__ == 'collections.abc' and base.__name__ in _PROTO_WHITELIST or isinstance(base, typing.TypingMeta) and base._is_protocol or isinstance(base, GenericMeta) and base.__origin__ is typing.Generic): raise TypeError(f'Protocols can only inherit from other' f' protocols, got {repr(base)}') cls.__init__ = _no_init def _proto_hook(other): if not cls.__dict__.get('_is_protocol', None): return NotImplemented if not isinstance(other, type): # Same error as for issubclass(1, int) raise TypeError('issubclass() arg 1 must be a class') for attr in _get_protocol_attrs(cls): for base in other.__mro__: if attr in base.__dict__: if base.__dict__[attr] is None: return NotImplemented break annotations = getattr(base, '__annotations__', {}) if (isinstance(annotations, typing.Mapping) and attr in annotations and isinstance(other, _ProtocolMeta) and other._is_protocol): break else: return NotImplemented return True if '__subclasshook__' not in cls.__dict__: cls.__subclasshook__ = _proto_hook def __instancecheck__(self, instance): # We need this method for situations where attributes are # assigned in __init__. if ((not getattr(self, '_is_protocol', False) or _is_callable_members_only(self)) and issubclass(instance.__class__, self)): return True if self._is_protocol: if all(hasattr(instance, attr) and (not callable(getattr(self, attr, None)) or getattr(instance, attr) is not None) for attr in _get_protocol_attrs(self)): return True return super(GenericMeta, self).__instancecheck__(instance) def __subclasscheck__(self, cls): if self.__origin__ is not None: if sys._getframe(1).f_globals['__name__'] not in ['abc', 'functools']: raise TypeError("Parameterized generics cannot be used with class " "or instance checks") return False if (self.__dict__.get('_is_protocol', None) and not self.__dict__.get('_is_runtime_protocol', None)): if sys._getframe(1).f_globals['__name__'] in ['abc', 'functools', 'typing']: return False raise TypeError("Instance and class checks can only be used with" " @runtime protocols") if (self.__dict__.get('_is_runtime_protocol', None) and not _is_callable_members_only(self)): if sys._getframe(1).f_globals['__name__'] in ['abc', 'functools', 'typing']: return super(GenericMeta, self).__subclasscheck__(cls) raise TypeError("Protocols with non-method members" " don't support issubclass()") return super(GenericMeta, self).__subclasscheck__(cls) @typing._tp_cache def __getitem__(self, params): # We also need to copy this from GenericMeta.__getitem__ to get # special treatment of "Protocol". (Comments removed for brevity.) if not isinstance(params, tuple): params = (params,) if not params and _gorg(self) is not typing.Tuple: raise TypeError( f"Parameter list to {self.__qualname__}[...] cannot be empty") msg = "Parameters to generic types must be types." params = tuple(_type_check(p, msg) for p in params) if self in (typing.Generic, Protocol): if not all(isinstance(p, typing.TypeVar) for p in params): raise TypeError( f"Parameters to {repr(self)}[...] must all be type variables") if len(set(params)) != len(params): raise TypeError( f"Parameters to {repr(self)}[...] must all be unique") tvars = params args = params elif self in (typing.Tuple, typing.Callable): tvars = _type_vars(params) args = params elif self.__origin__ in (typing.Generic, Protocol): raise TypeError(f"Cannot subscript already-subscripted {repr(self)}") else: _check_generic(self, params) tvars = _type_vars(params) args = params prepend = (self,) if self.__origin__ is None else () return self.__class__(self.__name__, prepend + self.__bases__, _no_slots_copy(self.__dict__), tvars=tvars, args=args, origin=self, extra=self.__extra__, orig_bases=self.__orig_bases__) class Protocol(metaclass=_ProtocolMeta): """Base class for protocol classes. Protocol classes are defined as:: class Proto(Protocol): def meth(self) -> int: ... Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing), for example:: class C: def meth(self) -> int: return 0 def func(x: Proto) -> int: return x.meth() func(C()) # Passes static type check See PEP 544 for details. Protocol classes decorated with @typing_extensions.runtime act as simple-minded runtime protocol that checks only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:: class GenProto(Protocol[T]): def meth(self) -> T: ... """ __slots__ = () _is_protocol = True def __new__(cls, *args, **kwds): if _gorg(cls) is Protocol: raise TypeError("Type Protocol cannot be instantiated; " "it can be used only as a base class") return typing._generic_new(cls.__next_in_mro__, cls, *args, **kwds) # 3.8+ if hasattr(typing, 'runtime_checkable'): runtime_checkable = typing.runtime_checkable # 3.6-3.7 else: def runtime_checkable(cls): """Mark a protocol class as a runtime protocol, so that it can be used with isinstance() and issubclass(). Raise TypeError if applied to a non-protocol class. This allows a simple-minded structural check very similar to the one-offs in collections.abc such as Hashable. """ if not isinstance(cls, _ProtocolMeta) or not cls._is_protocol: raise TypeError('@runtime_checkable can be only applied to protocol classes,' f' got {cls!r}') cls._is_runtime_protocol = True return cls # Exists for backwards compatibility. runtime = runtime_checkable # 3.8+ if hasattr(typing, 'SupportsIndex'): SupportsIndex = typing.SupportsIndex # 3.6-3.7 else: @runtime_checkable class SupportsIndex(Protocol): __slots__ = () @abc.abstractmethod def __index__(self) -> int: pass if sys.version_info >= (3, 9, 2): # The standard library TypedDict in Python 3.8 does not store runtime information # about which (if any) keys are optional. See https://bugs.python.org/issue38834 # The standard library TypedDict in Python 3.9.0/1 does not honour the "total" # keyword with old-style TypedDict(). See https://bugs.python.org/issue42059 TypedDict = typing.TypedDict else: def _check_fails(cls, other): try: if sys._getframe(1).f_globals['__name__'] not in ['abc', 'functools', 'typing']: # Typed dicts are only for static structural subtyping. raise TypeError('TypedDict does not support instance and class checks') except (AttributeError, ValueError): pass return False def _dict_new(*args, **kwargs): if not args: raise TypeError('TypedDict.__new__(): not enough arguments') _, args = args[0], args[1:] # allow the "cls" keyword be passed return dict(*args, **kwargs) _dict_new.__text_signature__ = '($cls, _typename, _fields=None, /, **kwargs)' def _typeddict_new(*args, total=True, **kwargs): if not args: raise TypeError('TypedDict.__new__(): not enough arguments') _, args = args[0], args[1:] # allow the "cls" keyword be passed if args: typename, args = args[0], args[1:] # allow the "_typename" keyword be passed elif '_typename' in kwargs: typename = kwargs.pop('_typename') import warnings warnings.warn("Passing '_typename' as keyword argument is deprecated", DeprecationWarning, stacklevel=2) else: raise TypeError("TypedDict.__new__() missing 1 required positional " "argument: '_typename'") if args: try: fields, = args # allow the "_fields" keyword be passed except ValueError: raise TypeError('TypedDict.__new__() takes from 2 to 3 ' f'positional arguments but {len(args) + 2} ' 'were given') elif '_fields' in kwargs and len(kwargs) == 1: fields = kwargs.pop('_fields') import warnings warnings.warn("Passing '_fields' as keyword argument is deprecated", DeprecationWarning, stacklevel=2) else: fields = None if fields is None: fields = kwargs elif kwargs: raise TypeError("TypedDict takes either a dict or keyword arguments," " but not both") ns = {'__annotations__': dict(fields)} try: # Setting correct module is necessary to make typed dict classes pickleable. ns['__module__'] = sys._getframe(1).f_globals.get('__name__', '__main__') except (AttributeError, ValueError): pass return _TypedDictMeta(typename, (), ns, total=total) _typeddict_new.__text_signature__ = ('($cls, _typename, _fields=None,' ' /, *, total=True, **kwargs)') class _TypedDictMeta(type): def __init__(cls, name, bases, ns, total=True): super().__init__(name, bases, ns) def __new__(cls, name, bases, ns, total=True): # Create new typed dict class object. # This method is called directly when TypedDict is subclassed, # or via _typeddict_new when TypedDict is instantiated. This way # TypedDict supports all three syntaxes described in its docstring. # Subclasses and instances of TypedDict return actual dictionaries # via _dict_new. ns['__new__'] = _typeddict_new if name == 'TypedDict' else _dict_new tp_dict = super().__new__(cls, name, (dict,), ns) annotations = {} own_annotations = ns.get('__annotations__', {}) own_annotation_keys = set(own_annotations.keys()) msg = "TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a type" own_annotations = { n: typing._type_check(tp, msg) for n, tp in own_annotations.items() } required_keys = set() optional_keys = set() for base in bases: annotations.update(base.__dict__.get('__annotations__', {})) required_keys.update(base.__dict__.get('__required_keys__', ())) optional_keys.update(base.__dict__.get('__optional_keys__', ())) annotations.update(own_annotations) if total: required_keys.update(own_annotation_keys) else: optional_keys.update(own_annotation_keys) tp_dict.__annotations__ = annotations tp_dict.__required_keys__ = frozenset(required_keys) tp_dict.__optional_keys__ = frozenset(optional_keys) if not hasattr(tp_dict, '__total__'): tp_dict.__total__ = total return tp_dict __instancecheck__ = __subclasscheck__ = _check_fails TypedDict = _TypedDictMeta('TypedDict', (dict,), {}) TypedDict.__module__ = __name__ TypedDict.__doc__ = \ """A simple typed name space. At runtime it is equivalent to a plain dict. TypedDict creates a dictionary type that expects all of its instances to have a certain set of keys, with each key associated with a value of a consistent type. This expectation is not checked at runtime but is only enforced by type checkers. Usage:: class Point2D(TypedDict): x: int y: int label: str a: Point2D = {'x': 1, 'y': 2, 'label': 'good'} # OK b: Point2D = {'z': 3, 'label': 'bad'} # Fails type check assert Point2D(x=1, y=2, label='first') == dict(x=1, y=2, label='first') The type info can be accessed via the Point2D.__annotations__ dict, and the Point2D.__required_keys__ and Point2D.__optional_keys__ frozensets. TypedDict supports two additional equivalent forms:: Point2D = TypedDict('Point2D', x=int, y=int, label=str) Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str}) The class syntax is only supported in Python 3.6+, while two other syntax forms work for Python 2.7 and 3.2+ """ # Python 3.9+ has PEP 593 (Annotated and modified get_type_hints) if hasattr(typing, 'Annotated'): Annotated = typing.Annotated get_type_hints = typing.get_type_hints # Not exported and not a public API, but needed for get_origin() and get_args() # to work. _AnnotatedAlias = typing._AnnotatedAlias # 3.7-3.8 elif PEP_560: class _AnnotatedAlias(typing._GenericAlias, _root=True): """Runtime representation of an annotated type. At its core 'Annotated[t, dec1, dec2, ...]' is an alias for the type 't' with extra annotations. The alias behaves like a normal typing alias, instantiating is the same as instantiating the underlying type, binding it to types is also the same. """ def __init__(self, origin, metadata): if isinstance(origin, _AnnotatedAlias): metadata = origin.__metadata__ + metadata origin = origin.__origin__ super().__init__(origin, origin) self.__metadata__ = metadata def copy_with(self, params): assert len(params) == 1 new_type = params[0] return _AnnotatedAlias(new_type, self.__metadata__) def __repr__(self): return (f"typing_extensions.Annotated[{typing._type_repr(self.__origin__)}, " f"{', '.join(repr(a) for a in self.__metadata__)}]") def __reduce__(self): return operator.getitem, ( Annotated, (self.__origin__,) + self.__metadata__ ) def __eq__(self, other): if not isinstance(other, _AnnotatedAlias): return NotImplemented if self.__origin__ != other.__origin__: return False return self.__metadata__ == other.__metadata__ def __hash__(self): return hash((self.__origin__, self.__metadata__)) class Annotated: """Add context specific metadata to a type. Example: Annotated[int, runtime_check.Unsigned] indicates to the hypothetical runtime_check module that this type is an unsigned int. Every other consumer of this type can ignore this metadata and treat this type as int. The first argument to Annotated must be a valid type (and will be in the __origin__ field), the remaining arguments are kept as a tuple in the __extra__ field. Details: - It's an error to call `Annotated` with less than two arguments. - Nested Annotated are flattened:: Annotated[Annotated[T, Ann1, Ann2], Ann3] == Annotated[T, Ann1, Ann2, Ann3] - Instantiating an annotated type is equivalent to instantiating the underlying type:: Annotated[C, Ann1](5) == C(5) - Annotated can be used as a generic type alias:: Optimized = Annotated[T, runtime.Optimize()] Optimized[int] == Annotated[int, runtime.Optimize()] OptimizedList = Annotated[List[T], runtime.Optimize()] OptimizedList[int] == Annotated[List[int], runtime.Optimize()] """ __slots__ = () def __new__(cls, *args, **kwargs): raise TypeError("Type Annotated cannot be instantiated.") @typing._tp_cache def __class_getitem__(cls, params): if not isinstance(params, tuple) or len(params) < 2: raise TypeError("Annotated[...] should be used " "with at least two arguments (a type and an " "annotation).") msg = "Annotated[t, ...]: t must be a type." origin = typing._type_check(params[0], msg) metadata = tuple(params[1:]) return _AnnotatedAlias(origin, metadata) def __init_subclass__(cls, *args, **kwargs): raise TypeError( f"Cannot subclass {cls.__module__}.Annotated" ) def _strip_annotations(t): """Strips the annotations from a given type. """ if isinstance(t, _AnnotatedAlias): return _strip_annotations(t.__origin__) if isinstance(t, typing._GenericAlias): stripped_args = tuple(_strip_annotations(a) for a in t.__args__) if stripped_args == t.__args__: return t res = t.copy_with(stripped_args) res._special = t._special return res return t def get_type_hints(obj, globalns=None, localns=None, include_extras=False): """Return type hints for an object. This is often the same as obj.__annotations__, but it handles forward references encoded as string literals, adds Optional[t] if a default value equal to None is set and recursively replaces all 'Annotated[T, ...]' with 'T' (unless 'include_extras=True'). The argument may be a module, class, method, or function. The annotations are returned as a dictionary. For classes, annotations include also inherited members. TypeError is raised if the argument is not of a type that can contain annotations, and an empty dictionary is returned if no annotations are present. BEWARE -- the behavior of globalns and localns is counterintuitive (unless you are familiar with how eval() and exec() work). The search order is locals first, then globals. - If no dict arguments are passed, an attempt is made to use the globals from obj (or the respective module's globals for classes), and these are also used as the locals. If the object does not appear to have globals, an empty dictionary is used. - If one dict argument is passed, it is used for both globals and locals. - If two dict arguments are passed, they specify globals and locals, respectively. """ hint = typing.get_type_hints(obj, globalns=globalns, localns=localns) if include_extras: return hint return {k: _strip_annotations(t) for k, t in hint.items()} # 3.6 else: def _is_dunder(name): """Returns True if name is a __dunder_variable_name__.""" return len(name) > 4 and name.startswith('__') and name.endswith('__') # Prior to Python 3.7 types did not have `copy_with`. A lot of the equality # checks, argument expansion etc. are done on the _subs_tre. As a result we # can't provide a get_type_hints function that strips out annotations. class AnnotatedMeta(typing.GenericMeta): """Metaclass for Annotated""" def __new__(cls, name, bases, namespace, **kwargs): if any(b is not object for b in bases): raise TypeError("Cannot subclass " + str(Annotated)) return super().__new__(cls, name, bases, namespace, **kwargs) @property def __metadata__(self): return self._subs_tree()[2] def _tree_repr(self, tree): cls, origin, metadata = tree if not isinstance(origin, tuple): tp_repr = typing._type_repr(origin) else: tp_repr = origin[0]._tree_repr(origin) metadata_reprs = ", ".join(repr(arg) for arg in metadata) return f'{cls}[{tp_repr}, {metadata_reprs}]' def _subs_tree(self, tvars=None, args=None): # noqa if self is Annotated: return Annotated res = super()._subs_tree(tvars=tvars, args=args) # Flatten nested Annotated if isinstance(res[1], tuple) and res[1][0] is Annotated: sub_tp = res[1][1] sub_annot = res[1][2] return (Annotated, sub_tp, sub_annot + res[2]) return res def _get_cons(self): """Return the class used to create instance of this type.""" if self.__origin__ is None: raise TypeError("Cannot get the underlying type of a " "non-specialized Annotated type.") tree = self._subs_tree() while isinstance(tree, tuple) and tree[0] is Annotated: tree = tree[1] if isinstance(tree, tuple): return tree[0] else: return tree @typing._tp_cache def __getitem__(self, params): if not isinstance(params, tuple): params = (params,) if self.__origin__ is not None: # specializing an instantiated type return super().__getitem__(params) elif not isinstance(params, tuple) or len(params) < 2: raise TypeError("Annotated[...] should be instantiated " "with at least two arguments (a type and an " "annotation).") else: msg = "Annotated[t, ...]: t must be a type." tp = typing._type_check(params[0], msg) metadata = tuple(params[1:]) return self.__class__( self.__name__, self.__bases__, _no_slots_copy(self.__dict__), tvars=_type_vars((tp,)), # Metadata is a tuple so it won't be touched by _replace_args et al. args=(tp, metadata), origin=self, ) def __call__(self, *args, **kwargs): cons = self._get_cons() result = cons(*args, **kwargs) try: result.__orig_class__ = self except AttributeError: pass return result def __getattr__(self, attr): # For simplicity we just don't relay all dunder names if self.__origin__ is not None and not _is_dunder(attr): return getattr(self._get_cons(), attr) raise AttributeError(attr) def __setattr__(self, attr, value): if _is_dunder(attr) or attr.startswith('_abc_'): super().__setattr__(attr, value) elif self.__origin__ is None: raise AttributeError(attr) else: setattr(self._get_cons(), attr, value) def __instancecheck__(self, obj): raise TypeError("Annotated cannot be used with isinstance().") def __subclasscheck__(self, cls): raise TypeError("Annotated cannot be used with issubclass().") class Annotated(metaclass=AnnotatedMeta): """Add context specific metadata to a type. Example: Annotated[int, runtime_check.Unsigned] indicates to the hypothetical runtime_check module that this type is an unsigned int. Every other consumer of this type can ignore this metadata and treat this type as int. The first argument to Annotated must be a valid type, the remaining arguments are kept as a tuple in the __metadata__ field. Details: - It's an error to call `Annotated` with less than two arguments. - Nested Annotated are flattened:: Annotated[Annotated[T, Ann1, Ann2], Ann3] == Annotated[T, Ann1, Ann2, Ann3] - Instantiating an annotated type is equivalent to instantiating the underlying type:: Annotated[C, Ann1](5) == C(5) - Annotated can be used as a generic type alias:: Optimized = Annotated[T, runtime.Optimize()] Optimized[int] == Annotated[int, runtime.Optimize()] OptimizedList = Annotated[List[T], runtime.Optimize()] OptimizedList[int] == Annotated[List[int], runtime.Optimize()] """ # Python 3.8 has get_origin() and get_args() but those implementations aren't # Annotated-aware, so we can't use those. Python 3.9's versions don't support # ParamSpecArgs and ParamSpecKwargs, so only Python 3.10's versions will do. if sys.version_info[:2] >= (3, 10): get_origin = typing.get_origin get_args = typing.get_args # 3.7-3.9 elif PEP_560: try: # 3.9+ from typing import _BaseGenericAlias except ImportError: _BaseGenericAlias = typing._GenericAlias try: # 3.9+ from typing import GenericAlias except ImportError: GenericAlias = typing._GenericAlias def get_origin(tp): """Get the unsubscripted version of a type. This supports generic types, Callable, Tuple, Union, Literal, Final, ClassVar and Annotated. Return None for unsupported types. Examples:: get_origin(Literal[42]) is Literal get_origin(int) is None get_origin(ClassVar[int]) is ClassVar get_origin(Generic) is Generic get_origin(Generic[T]) is Generic get_origin(Union[T, int]) is Union get_origin(List[Tuple[T, T]][int]) == list get_origin(P.args) is P """ if isinstance(tp, _AnnotatedAlias): return Annotated if isinstance(tp, (typing._GenericAlias, GenericAlias, _BaseGenericAlias, ParamSpecArgs, ParamSpecKwargs)): return tp.__origin__ if tp is typing.Generic: return typing.Generic return None def get_args(tp): """Get type arguments with all substitutions performed. For unions, basic simplifications used by Union constructor are performed. Examples:: get_args(Dict[str, int]) == (str, int) get_args(int) == () get_args(Union[int, Union[T, int], str][int]) == (int, str) get_args(Union[int, Tuple[T, int]][str]) == (int, Tuple[str, int]) get_args(Callable[[], T][int]) == ([], int) """ if isinstance(tp, _AnnotatedAlias): return (tp.__origin__,) + tp.__metadata__ if isinstance(tp, (typing._GenericAlias, GenericAlias)): if getattr(tp, "_special", False): return () res = tp.__args__ if get_origin(tp) is collections.abc.Callable and res[0] is not Ellipsis: res = (list(res[:-1]), res[-1]) return res return () # 3.10+ if hasattr(typing, 'TypeAlias'): TypeAlias = typing.TypeAlias # 3.9 elif sys.version_info[:2] >= (3, 9): class _TypeAliasForm(typing._SpecialForm, _root=True): def __repr__(self): return 'typing_extensions.' + self._name @_TypeAliasForm def TypeAlias(self, parameters): """Special marker indicating that an assignment should be recognized as a proper type alias definition by type checkers. For example:: Predicate: TypeAlias = Callable[..., bool] It's invalid when used anywhere except as in the example above. """ raise TypeError(f"{self} is not subscriptable") # 3.7-3.8 elif sys.version_info[:2] >= (3, 7): class _TypeAliasForm(typing._SpecialForm, _root=True): def __repr__(self): return 'typing_extensions.' + self._name TypeAlias = _TypeAliasForm('TypeAlias', doc="""Special marker indicating that an assignment should be recognized as a proper type alias definition by type checkers. For example:: Predicate: TypeAlias = Callable[..., bool] It's invalid when used anywhere except as in the example above.""") # 3.6 else: class _TypeAliasMeta(typing.TypingMeta): """Metaclass for TypeAlias""" def __repr__(self): return 'typing_extensions.TypeAlias' class _TypeAliasBase(typing._FinalTypingBase, metaclass=_TypeAliasMeta, _root=True): """Special marker indicating that an assignment should be recognized as a proper type alias definition by type checkers. For example:: Predicate: TypeAlias = Callable[..., bool] It's invalid when used anywhere except as in the example above. """ __slots__ = () def __instancecheck__(self, obj): raise TypeError("TypeAlias cannot be used with isinstance().") def __subclasscheck__(self, cls): raise TypeError("TypeAlias cannot be used with issubclass().") def __repr__(self): return 'typing_extensions.TypeAlias' TypeAlias = _TypeAliasBase(_root=True) # Python 3.10+ has PEP 612 if hasattr(typing, 'ParamSpecArgs'): ParamSpecArgs = typing.ParamSpecArgs ParamSpecKwargs = typing.ParamSpecKwargs # 3.6-3.9 else: class _Immutable: """Mixin to indicate that object should not be copied.""" __slots__ = () def __copy__(self): return self def __deepcopy__(self, memo): return self class ParamSpecArgs(_Immutable): """The args for a ParamSpec object. Given a ParamSpec object P, P.args is an instance of ParamSpecArgs. ParamSpecArgs objects have a reference back to their ParamSpec: P.args.__origin__ is P This type is meant for runtime introspection and has no special meaning to static type checkers. """ def __init__(self, origin): self.__origin__ = origin def __repr__(self): return f"{self.__origin__.__name__}.args" class ParamSpecKwargs(_Immutable): """The kwargs for a ParamSpec object. Given a ParamSpec object P, P.kwargs is an instance of ParamSpecKwargs. ParamSpecKwargs objects have a reference back to their ParamSpec: P.kwargs.__origin__ is P This type is meant for runtime introspection and has no special meaning to static type checkers. """ def __init__(self, origin): self.__origin__ = origin def __repr__(self): return f"{self.__origin__.__name__}.kwargs" # 3.10+ if hasattr(typing, 'ParamSpec'): ParamSpec = typing.ParamSpec # 3.6-3.9 else: # Inherits from list as a workaround for Callable checks in Python < 3.9.2. class ParamSpec(list): """Parameter specification variable. Usage:: P = ParamSpec('P') Parameter specification variables exist primarily for the benefit of static type checkers. They are used to forward the parameter types of one callable to another callable, a pattern commonly found in higher order functions and decorators. They are only valid when used in ``Concatenate``, or s the first argument to ``Callable``. In Python 3.10 and higher, they are also supported in user-defined Generics at runtime. See class Generic for more information on generic types. An example for annotating a decorator:: T = TypeVar('T') P = ParamSpec('P') def add_logging(f: Callable[P, T]) -> Callable[P, T]: '''A type-safe decorator to add logging to a function.''' def inner(*args: P.args, **kwargs: P.kwargs) -> T: logging.info(f'{f.__name__} was called') return f(*args, **kwargs) return inner @add_logging def add_two(x: float, y: float) -> float: '''Add two numbers together.''' return x + y Parameter specification variables defined with covariant=True or contravariant=True can be used to declare covariant or contravariant generic types. These keyword arguments are valid, but their actual semantics are yet to be decided. See PEP 612 for details. Parameter specification variables can be introspected. e.g.: P.__name__ == 'T' P.__bound__ == None P.__covariant__ == False P.__contravariant__ == False Note that only parameter specification variables defined in global scope can be pickled. """ # Trick Generic __parameters__. __class__ = typing.TypeVar @property def args(self): return ParamSpecArgs(self) @property def kwargs(self): return ParamSpecKwargs(self) def __init__(self, name, *, bound=None, covariant=False, contravariant=False): super().__init__([self]) self.__name__ = name self.__covariant__ = bool(covariant) self.__contravariant__ = bool(contravariant) if bound: self.__bound__ = typing._type_check(bound, 'Bound must be a type.') else: self.__bound__ = None # for pickling: try: def_mod = sys._getframe(1).f_globals.get('__name__', '__main__') except (AttributeError, ValueError): def_mod = None if def_mod != 'typing_extensions': self.__module__ = def_mod def __repr__(self): if self.__covariant__: prefix = '+' elif self.__contravariant__: prefix = '-' else: prefix = '~' return prefix + self.__name__ def __hash__(self): return object.__hash__(self) def __eq__(self, other): return self is other def __reduce__(self): return self.__name__ # Hack to get typing._type_check to pass. def __call__(self, *args, **kwargs): pass if not PEP_560: # Only needed in 3.6. def _get_type_vars(self, tvars): if self not in tvars: tvars.append(self) # 3.6-3.9 if not hasattr(typing, 'Concatenate'): # Inherits from list as a workaround for Callable checks in Python < 3.9.2. class _ConcatenateGenericAlias(list): # Trick Generic into looking into this for __parameters__. if PEP_560: __class__ = typing._GenericAlias else: __class__ = typing._TypingBase # Flag in 3.8. _special = False # Attribute in 3.6 and earlier. _gorg = typing.Generic def __init__(self, origin, args): super().__init__(args) self.__origin__ = origin self.__args__ = args def __repr__(self): _type_repr = typing._type_repr return (f'{_type_repr(self.__origin__)}' f'[{", ".join(_type_repr(arg) for arg in self.__args__)}]') def __hash__(self): return hash((self.__origin__, self.__args__)) # Hack to get typing._type_check to pass in Generic. def __call__(self, *args, **kwargs): pass @property def __parameters__(self): return tuple( tp for tp in self.__args__ if isinstance(tp, (typing.TypeVar, ParamSpec)) ) if not PEP_560: # Only required in 3.6. def _get_type_vars(self, tvars): if self.__origin__ and self.__parameters__: typing._get_type_vars(self.__parameters__, tvars) # 3.6-3.9 @typing._tp_cache def _concatenate_getitem(self, parameters): if parameters == (): raise TypeError("Cannot take a Concatenate of no types.") if not isinstance(parameters, tuple): parameters = (parameters,) if not isinstance(parameters[-1], ParamSpec): raise TypeError("The last parameter to Concatenate should be a " "ParamSpec variable.") msg = "Concatenate[arg, ...]: each arg must be a type." parameters = tuple(typing._type_check(p, msg) for p in parameters) return _ConcatenateGenericAlias(self, parameters) # 3.10+ if hasattr(typing, 'Concatenate'): Concatenate = typing.Concatenate _ConcatenateGenericAlias = typing._ConcatenateGenericAlias # noqa # 3.9 elif sys.version_info[:2] >= (3, 9): @_TypeAliasForm def Concatenate(self, parameters): """Used in conjunction with ``ParamSpec`` and ``Callable`` to represent a higher order function which adds, removes or transforms parameters of a callable. For example:: Callable[Concatenate[int, P], int] See PEP 612 for detailed information. """ return _concatenate_getitem(self, parameters) # 3.7-8 elif sys.version_info[:2] >= (3, 7): class _ConcatenateForm(typing._SpecialForm, _root=True): def __repr__(self): return 'typing_extensions.' + self._name def __getitem__(self, parameters): return _concatenate_getitem(self, parameters) Concatenate = _ConcatenateForm( 'Concatenate', doc="""Used in conjunction with ``ParamSpec`` and ``Callable`` to represent a higher order function which adds, removes or transforms parameters of a callable. For example:: Callable[Concatenate[int, P], int] See PEP 612 for detailed information. """) # 3.6 else: class _ConcatenateAliasMeta(typing.TypingMeta): """Metaclass for Concatenate.""" def __repr__(self): return 'typing_extensions.Concatenate' class _ConcatenateAliasBase(typing._FinalTypingBase, metaclass=_ConcatenateAliasMeta, _root=True): """Used in conjunction with ``ParamSpec`` and ``Callable`` to represent a higher order function which adds, removes or transforms parameters of a callable. For example:: Callable[Concatenate[int, P], int] See PEP 612 for detailed information. """ __slots__ = () def __instancecheck__(self, obj): raise TypeError("Concatenate cannot be used with isinstance().") def __subclasscheck__(self, cls): raise TypeError("Concatenate cannot be used with issubclass().") def __repr__(self): return 'typing_extensions.Concatenate' def __getitem__(self, parameters): return _concatenate_getitem(self, parameters) Concatenate = _ConcatenateAliasBase(_root=True) # 3.10+ if hasattr(typing, 'TypeGuard'): TypeGuard = typing.TypeGuard # 3.9 elif sys.version_info[:2] >= (3, 9): class _TypeGuardForm(typing._SpecialForm, _root=True): def __repr__(self): return 'typing_extensions.' + self._name @_TypeGuardForm def TypeGuard(self, parameters): """Special typing form used to annotate the return type of a user-defined type guard function. ``TypeGuard`` only accepts a single type argument. At runtime, functions marked this way should return a boolean. ``TypeGuard`` aims to benefit *type narrowing* -- a technique used by static type checkers to determine a more precise type of an expression within a program's code flow. Usually type narrowing is done by analyzing conditional code flow and applying the narrowing to a block of code. The conditional expression here is sometimes referred to as a "type guard". Sometimes it would be convenient to use a user-defined boolean function as a type guard. Such a function should use ``TypeGuard[...]`` as its return type to alert static type checkers to this intention. Using ``-> TypeGuard`` tells the static type checker that for a given function: 1. The return value is a boolean. 2. If the return value is ``True``, the type of its argument is the type inside ``TypeGuard``. For example:: def is_str(val: Union[str, float]): # "isinstance" type guard if isinstance(val, str): # Type of ``val`` is narrowed to ``str`` ... else: # Else, type of ``val`` is narrowed to ``float``. ... Strict type narrowing is not enforced -- ``TypeB`` need not be a narrower form of ``TypeA`` (it can even be a wider form) and this may lead to type-unsafe results. The main reason is to allow for things like narrowing ``List[object]`` to ``List[str]`` even though the latter is not a subtype of the former, since ``List`` is invariant. The responsibility of writing type-safe type guards is left to the user. ``TypeGuard`` also works with type variables. For more information, see PEP 647 (User-Defined Type Guards). """ item = typing._type_check(parameters, f'{self} accepts only single type.') return typing._GenericAlias(self, (item,)) # 3.7-3.8 elif sys.version_info[:2] >= (3, 7): class _TypeGuardForm(typing._SpecialForm, _root=True): def __repr__(self): return 'typing_extensions.' + self._name def __getitem__(self, parameters): item = typing._type_check(parameters, f'{self._name} accepts only a single type') return typing._GenericAlias(self, (item,)) TypeGuard = _TypeGuardForm( 'TypeGuard', doc="""Special typing form used to annotate the return type of a user-defined type guard function. ``TypeGuard`` only accepts a single type argument. At runtime, functions marked this way should return a boolean. ``TypeGuard`` aims to benefit *type narrowing* -- a technique used by static type checkers to determine a more precise type of an expression within a program's code flow. Usually type narrowing is done by analyzing conditional code flow and applying the narrowing to a block of code. The conditional expression here is sometimes referred to as a "type guard". Sometimes it would be convenient to use a user-defined boolean function as a type guard. Such a function should use ``TypeGuard[...]`` as its return type to alert static type checkers to this intention. Using ``-> TypeGuard`` tells the static type checker that for a given function: 1. The return value is a boolean. 2. If the return value is ``True``, the type of its argument is the type inside ``TypeGuard``. For example:: def is_str(val: Union[str, float]): # "isinstance" type guard if isinstance(val, str): # Type of ``val`` is narrowed to ``str`` ... else: # Else, type of ``val`` is narrowed to ``float``. ... Strict type narrowing is not enforced -- ``TypeB`` need not be a narrower form of ``TypeA`` (it can even be a wider form) and this may lead to type-unsafe results. The main reason is to allow for things like narrowing ``List[object]`` to ``List[str]`` even though the latter is not a subtype of the former, since ``List`` is invariant. The responsibility of writing type-safe type guards is left to the user. ``TypeGuard`` also works with type variables. For more information, see PEP 647 (User-Defined Type Guards). """) # 3.6 else: class _TypeGuard(typing._FinalTypingBase, _root=True): """Special typing form used to annotate the return type of a user-defined type guard function. ``TypeGuard`` only accepts a single type argument. At runtime, functions marked this way should return a boolean. ``TypeGuard`` aims to benefit *type narrowing* -- a technique used by static type checkers to determine a more precise type of an expression within a program's code flow. Usually type narrowing is done by analyzing conditional code flow and applying the narrowing to a block of code. The conditional expression here is sometimes referred to as a "type guard". Sometimes it would be convenient to use a user-defined boolean function as a type guard. Such a function should use ``TypeGuard[...]`` as its return type to alert static type checkers to this intention. Using ``-> TypeGuard`` tells the static type checker that for a given function: 1. The return value is a boolean. 2. If the return value is ``True``, the type of its argument is the type inside ``TypeGuard``. For example:: def is_str(val: Union[str, float]): # "isinstance" type guard if isinstance(val, str): # Type of ``val`` is narrowed to ``str`` ... else: # Else, type of ``val`` is narrowed to ``float``. ... Strict type narrowing is not enforced -- ``TypeB`` need not be a narrower form of ``TypeA`` (it can even be a wider form) and this may lead to type-unsafe results. The main reason is to allow for things like narrowing ``List[object]`` to ``List[str]`` even though the latter is not a subtype of the former, since ``List`` is invariant. The responsibility of writing type-safe type guards is left to the user. ``TypeGuard`` also works with type variables. For more information, see PEP 647 (User-Defined Type Guards). """ __slots__ = ('__type__',) def __init__(self, tp=None, **kwds): self.__type__ = tp def __getitem__(self, item): cls = type(self) if self.__type__ is None: return cls(typing._type_check(item, f'{cls.__name__[1:]} accepts only a single type.'), _root=True) raise TypeError(f'{cls.__name__[1:]} cannot be further subscripted') def _eval_type(self, globalns, localns): new_tp = typing._eval_type(self.__type__, globalns, localns) if new_tp == self.__type__: return self return type(self)(new_tp, _root=True) def __repr__(self): r = super().__repr__() if self.__type__ is not None: r += f'[{typing._type_repr(self.__type__)}]' return r def __hash__(self): return hash((type(self).__name__, self.__type__)) def __eq__(self, other): if not isinstance(other, _TypeGuard): return NotImplemented if self.__type__ is not None: return self.__type__ == other.__type__ return self is other TypeGuard = _TypeGuard(_root=True) if hasattr(typing, "Self"): Self = typing.Self elif sys.version_info[:2] >= (3, 7): # Vendored from cpython typing._SpecialFrom class _SpecialForm(typing._Final, _root=True): __slots__ = ('_name', '__doc__', '_getitem') def __init__(self, getitem): self._getitem = getitem self._name = getitem.__name__ self.__doc__ = getitem.__doc__ def __getattr__(self, item): if item in {'__name__', '__qualname__'}: return self._name raise AttributeError(item) def __mro_entries__(self, bases): raise TypeError(f"Cannot subclass {self!r}") def __repr__(self): return f'typing_extensions.{self._name}' def __reduce__(self): return self._name def __call__(self, *args, **kwds): raise TypeError(f"Cannot instantiate {self!r}") def __or__(self, other): return typing.Union[self, other] def __ror__(self, other): return typing.Union[other, self] def __instancecheck__(self, obj): raise TypeError(f"{self} cannot be used with isinstance()") def __subclasscheck__(self, cls): raise TypeError(f"{self} cannot be used with issubclass()") @typing._tp_cache def __getitem__(self, parameters): return self._getitem(self, parameters) @_SpecialForm def Self(self, params): """Used to spell the type of "self" in classes. Example:: from typing import Self class ReturnsSelf: def parse(self, data: bytes) -> Self: ... return self """ raise TypeError(f"{self} is not subscriptable") else: class _Self(typing._FinalTypingBase, _root=True): """Used to spell the type of "self" in classes. Example:: from typing import Self class ReturnsSelf: def parse(self, data: bytes) -> Self: ... return self """ __slots__ = () def __instancecheck__(self, obj): raise TypeError(f"{self} cannot be used with isinstance().") def __subclasscheck__(self, cls): raise TypeError(f"{self} cannot be used with issubclass().") Self = _Self(_root=True) if hasattr(typing, 'Required'): Required = typing.Required NotRequired = typing.NotRequired elif sys.version_info[:2] >= (3, 9): class _ExtensionsSpecialForm(typing._SpecialForm, _root=True): def __repr__(self): return 'typing_extensions.' + self._name @_ExtensionsSpecialForm def Required(self, parameters): """A special typing construct to mark a key of a total=False TypedDict as required. For example: class Movie(TypedDict, total=False): title: Required[str] year: int m = Movie( title='The Matrix', # typechecker error if key is omitted year=1999, ) There is no runtime checking that a required key is actually provided when instantiating a related TypedDict. """ item = typing._type_check(parameters, f'{self._name} accepts only single type') return typing._GenericAlias(self, (item,)) @_ExtensionsSpecialForm def NotRequired(self, parameters): """A special typing construct to mark a key of a TypedDict as potentially missing. For example: class Movie(TypedDict): title: str year: NotRequired[int] m = Movie( title='The Matrix', # typechecker error if key is omitted year=1999, ) """ item = typing._type_check(parameters, f'{self._name} accepts only single type') return typing._GenericAlias(self, (item,)) elif sys.version_info[:2] >= (3, 7): class _RequiredForm(typing._SpecialForm, _root=True): def __repr__(self): return 'typing_extensions.' + self._name def __getitem__(self, parameters): item = typing._type_check(parameters, '{} accepts only single type'.format(self._name)) return typing._GenericAlias(self, (item,)) Required = _RequiredForm( 'Required', doc="""A special typing construct to mark a key of a total=False TypedDict as required. For example: class Movie(TypedDict, total=False): title: Required[str] year: int m = Movie( title='The Matrix', # typechecker error if key is omitted year=1999, ) There is no runtime checking that a required key is actually provided when instantiating a related TypedDict. """) NotRequired = _RequiredForm( 'NotRequired', doc="""A special typing construct to mark a key of a TypedDict as potentially missing. For example: class Movie(TypedDict): title: str year: NotRequired[int] m = Movie( title='The Matrix', # typechecker error if key is omitted year=1999, ) """) else: # NOTE: Modeled after _Final's implementation when _FinalTypingBase available class _MaybeRequired(typing._FinalTypingBase, _root=True): __slots__ = ('__type__',) def __init__(self, tp=None, **kwds): self.__type__ = tp def __getitem__(self, item): cls = type(self) if self.__type__ is None: return cls(typing._type_check(item, '{} accepts only single type.'.format(cls.__name__[1:])), _root=True) raise TypeError('{} cannot be further subscripted' .format(cls.__name__[1:])) def _eval_type(self, globalns, localns): new_tp = typing._eval_type(self.__type__, globalns, localns) if new_tp == self.__type__: return self return type(self)(new_tp, _root=True) def __repr__(self): r = super().__repr__() if self.__type__ is not None: r += '[{}]'.format(typing._type_repr(self.__type__)) return r def __hash__(self): return hash((type(self).__name__, self.__type__)) def __eq__(self, other): if not isinstance(other, type(self)): return NotImplemented if self.__type__ is not None: return self.__type__ == other.__type__ return self is other class _Required(_MaybeRequired, _root=True): """A special typing construct to mark a key of a total=False TypedDict as required. For example: class Movie(TypedDict, total=False): title: Required[str] year: int m = Movie( title='The Matrix', # typechecker error if key is omitted year=1999, ) There is no runtime checking that a required key is actually provided when instantiating a related TypedDict. """ class _NotRequired(_MaybeRequired, _root=True): """A special typing construct to mark a key of a TypedDict as potentially missing. For example: class Movie(TypedDict): title: str year: NotRequired[int] m = Movie( title='The Matrix', # typechecker error if key is omitted year=1999, ) """ Required = _Required(_root=True) NotRequired = _NotRequired(_root=True) PKx"TO 11]__virtualenv__/typing_extensions-4.0.1-py3-none-any/typing_extensions-4.0.1.dist-info/LICENSEA. HISTORY OF THE SOFTWARE ========================== Python was created in the early 1990s by Guido van Rossum at Stichting Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands as a successor of a language called ABC. Guido remains Python's principal author, although it includes many contributions from others. In 1995, Guido continued his work on Python at the Corporation for National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) in Reston, Virginia where he released several versions of the software. In May 2000, Guido and the Python core development team moved to BeOpen.com to form the BeOpen PythonLabs team. In October of the same year, the PythonLabs team moved to Digital Creations (now Zope Corporation, see http://www.zope.com). In 2001, the Python Software Foundation (PSF, see http://www.python.org/psf/) was formed, a non-profit organization created specifically to own Python-related Intellectual Property. Zope Corporation is a sponsoring member of the PSF. All Python releases are Open Source (see http://www.opensource.org for the Open Source Definition). Historically, most, but not all, Python releases have also been GPL-compatible; the table below summarizes the various releases. Release Derived Year Owner GPL- from compatible? (1) 0.9.0 thru 1.2 1991-1995 CWI yes 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes 1.6 1.5.2 2000 CNRI no 2.0 1.6 2000 BeOpen.com no 1.6.1 1.6 2001 CNRI yes (2) 2.1 2.0+1.6.1 2001 PSF no 2.0.1 2.0+1.6.1 2001 PSF yes 2.1.1 2.1+2.0.1 2001 PSF yes 2.1.2 2.1.1 2002 PSF yes 2.1.3 2.1.2 2002 PSF yes 2.2 and above 2.1.1 2001-now PSF yes Footnotes: (1) GPL-compatible doesn't mean that we're distributing Python under the GPL. All Python licenses, unlike the GPL, let you distribute a modified version without making your changes open source. The GPL-compatible licenses make it possible to combine Python with other software that is released under the GPL; the others don't. (2) According to Richard Stallman, 1.6.1 is not GPL-compatible, because its license has a choice of law clause. According to CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 is "not incompatible" with the GPL. Thanks to the many outside volunteers who have worked under Guido's direction to make these releases possible. B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON =============================================================== PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 -------------------------------------------- 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Python") in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee. 3. In the event Licensee prepares a derivative work that is based on or incorporates Python or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python. 4. PSF is making Python available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this License Agreement. BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 ------------------------------------------- BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the Individual or Organization ("Licensee") accessing and otherwise using this software in source or binary form and its associated documentation ("the Software"). 2. Subject to the terms and conditions of this BeOpen Python License Agreement, BeOpen hereby grants Licensee a non-exclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use the Software alone or in any derivative version, provided, however, that the BeOpen Python License is retained in the Software, alone or in any derivative version prepared by Licensee. 3. BeOpen is making the Software available to Licensee on an "AS IS" basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 5. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 6. This License Agreement shall be governed by and interpreted in all respects by the law of the State of California, excluding conflict of law provisions. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between BeOpen and Licensee. This License Agreement does not grant permission to use BeOpen trademarks or trade names in a trademark sense to endorse or promote products or services of Licensee, or any third party. As an exception, the "BeOpen Python" logos available at http://www.pythonlabs.com/logos.html may be used according to the permissions granted on that web page. 7. By copying, installing or otherwise using the software, Licensee agrees to be bound by the terms and conditions of this License Agreement. CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 --------------------------------------- 1. This LICENSE AGREEMENT is between the Corporation for National Research Initiatives, having an office at 1895 Preston White Drive, Reston, VA 20191 ("CNRI"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 1.6.1 software in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, CNRI hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 1.6.1 alone or in any derivative version, provided, however, that CNRI's License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) 1995-2001 Corporation for National Research Initiatives; All Rights Reserved" are retained in Python 1.6.1 alone or in any derivative version prepared by Licensee. Alternately, in lieu of CNRI's License Agreement, Licensee may substitute the following text (omitting the quotes): "Python 1.6.1 is made available subject to the terms and conditions in CNRI's License Agreement. This Agreement together with Python 1.6.1 may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1013. This Agreement may also be obtained from a proxy server on the Internet using the following URL: http://hdl.handle.net/1895.22/1013". 3. In the event Licensee prepares a derivative work that is based on or incorporates Python 1.6.1 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 1.6.1. 4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. This License Agreement shall be governed by the federal intellectual property law of the United States, including without limitation the federal copyright law, and, to the extent such U.S. federal law does not apply, by the law of the Commonwealth of Virginia, excluding Virginia's conflict of law provisions. Notwithstanding the foregoing, with regard to derivative works based on Python 1.6.1 that incorporate non-separable material that was previously distributed under the GNU General Public License (GPL), the law of the Commonwealth of Virginia shall govern this License Agreement only as to issues arising under or with respect to Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between CNRI and Licensee. This License Agreement does not grant permission to use CNRI trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By clicking on the "ACCEPT" button where indicated, or by copying, installing or otherwise using Python 1.6.1, Licensee agrees to be bound by the terms and conditions of this License Agreement. ACCEPT CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 -------------------------------------------------- Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands. All rights reserved. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Stichting Mathematisch Centrum or CWI not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. PKx"TQQ[__virtualenv__/typing_extensions-4.0.1-py3-none-any/typing_extensions-4.0.1.dist-info/WHEELWheel-Version: 1.0 Generator: flit 3.5.1 Root-Is-Purelib: true Tag: py3-none-any PKx"T^__virtualenv__/typing_extensions-4.0.1-py3-none-any/typing_extensions-4.0.1.dist-info/METADATAMetadata-Version: 2.1 Name: typing_extensions Version: 4.0.1 Summary: Backported and Experimental Type Hints for Python 3.6+ Keywords: annotations,backport,checker,checking,function,hinting,hints,type,typechecking,typehinting,typehints,typing Author-email: "Guido van Rossum, Jukka Lehtosalo, Łukasz Langa, Michael Lee" Requires-Python: >=3.6 Description-Content-Type: text/x-rst Classifier: Development Status :: 3 - Alpha Classifier: Environment :: Console Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Python Software Foundation License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Topic :: Software Development Project-URL: Home, https://github.com/python/typing/blob/master/typing_extensions/README.rst Typing Extensions -- Backported and Experimental Type Hints for Python The ``typing`` module was added to the standard library in Python 3.5, but many new features have been added to the module since then. This means users of older Python versions who are unable to upgrade will not be able to take advantage of new types added to the ``typing`` module, such as ``typing.Protocol`` or ``typing.TypedDict``. The ``typing_extensions`` module contains backports of these changes. Experimental types that may eventually be added to the ``typing`` module are also included in ``typing_extensions``. PKx"TT\__virtualenv__/typing_extensions-4.0.1-py3-none-any/typing_extensions-4.0.1.dist-info/RECORDtyping_extensions.py,sha256=1uqi_RSlI7gos4eJB_NEV3d5wQwzTUQHd3_jrkbTo8Q,87149 typing_extensions-4.0.1.dist-info/LICENSE,sha256=_xfOlOECAk3raHc-scx0ynbaTmWPNzUx8Kwi1oprsa0,12755 typing_extensions-4.0.1.dist-info/WHEEL,sha256=LVOPL_YDMEiGvRLgDK1hLkfhFCnTcxcAYZJtpNFses0,81 typing_extensions-4.0.1.dist-info/METADATA,sha256=iZ_5HONZZBXtF4kroz-IPZYIl9M8IE1B00R82dWcBqE,1736 typing_extensions-4.0.1.dist-info/RECORD,, PKx"T?U  U__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources/__init__.py"""Read resources contained within a package.""" from ._common import ( as_file, files, Package, ) from ._legacy import ( contents, open_binary, read_binary, open_text, read_text, is_resource, path, Resource, ) from importlib_resources.abc import ResourceReader __all__ = [ 'Package', 'Resource', 'ResourceReader', 'as_file', 'contents', 'files', 'is_resource', 'open_binary', 'open_text', 'path', 'read_binary', 'read_text', ] PKx"T'V__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources/_adapters.pyfrom contextlib import suppress from io import TextIOWrapper from . import abc class SpecLoaderAdapter: """ Adapt a package spec to adapt the underlying loader. """ def __init__(self, spec, adapter=lambda spec: spec.loader): self.spec = spec self.loader = adapter(spec) def __getattr__(self, name): return getattr(self.spec, name) class TraversableResourcesLoader: """ Adapt a loader to provide TraversableResources. """ def __init__(self, spec): self.spec = spec def get_resource_reader(self, name): return CompatibilityFiles(self.spec)._native() def _io_wrapper(file, mode='r', *args, **kwargs): if mode == 'r': return TextIOWrapper(file, *args, **kwargs) elif mode == 'rb': return file raise ValueError( "Invalid mode value '{}', only 'r' and 'rb' are supported".format(mode) ) class CompatibilityFiles: """ Adapter for an existing or non-existent resource reader to provide a compatibility .files(). """ class SpecPath(abc.Traversable): """ Path tied to a module spec. Can be read and exposes the resource reader children. """ def __init__(self, spec, reader): self._spec = spec self._reader = reader def iterdir(self): if not self._reader: return iter(()) return iter( CompatibilityFiles.ChildPath(self._reader, path) for path in self._reader.contents() ) def is_file(self): return False is_dir = is_file def joinpath(self, other): if not self._reader: return CompatibilityFiles.OrphanPath(other) return CompatibilityFiles.ChildPath(self._reader, other) @property def name(self): return self._spec.name def open(self, mode='r', *args, **kwargs): return _io_wrapper(self._reader.open_resource(None), mode, *args, **kwargs) class ChildPath(abc.Traversable): """ Path tied to a resource reader child. Can be read but doesn't expose any meaningful children. """ def __init__(self, reader, name): self._reader = reader self._name = name def iterdir(self): return iter(()) def is_file(self): return self._reader.is_resource(self.name) def is_dir(self): return not self.is_file() def joinpath(self, other): return CompatibilityFiles.OrphanPath(self.name, other) @property def name(self): return self._name def open(self, mode='r', *args, **kwargs): return _io_wrapper( self._reader.open_resource(self.name), mode, *args, **kwargs ) class OrphanPath(abc.Traversable): """ Orphan path, not tied to a module spec or resource reader. Can't be read and doesn't expose any meaningful children. """ def __init__(self, *path_parts): if len(path_parts) < 1: raise ValueError('Need at least one path part to construct a path') self._path = path_parts def iterdir(self): return iter(()) def is_file(self): return False is_dir = is_file def joinpath(self, other): return CompatibilityFiles.OrphanPath(*self._path, other) @property def name(self): return self._path[-1] def open(self, mode='r', *args, **kwargs): raise FileNotFoundError("Can't open orphan path") def __init__(self, spec): self.spec = spec @property def _reader(self): with suppress(AttributeError): return self.spec.loader.get_resource_reader(self.spec.name) def _native(self): """ Return the native reader if it supports files(). """ reader = self._reader return reader if hasattr(reader, 'files') else self def __getattr__(self, attr): return getattr(self._reader, attr) def files(self): return CompatibilityFiles.SpecPath(self.spec, self._reader) def wrap_spec(package): """ Construct a package spec with traversable compatibility on the spec/loader/reader. """ return SpecLoaderAdapter(package.__spec__, TraversableResourcesLoader) PKx"T0Q} T__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources/_common.pyimport os import pathlib import tempfile import functools import contextlib import types import importlib from typing import Union, Optional from .abc import ResourceReader, Traversable from ._compat import wrap_spec Package = Union[types.ModuleType, str] def files(package): # type: (Package) -> Traversable """ Get a Traversable resource from a package """ return from_package(get_package(package)) def get_resource_reader(package): # type: (types.ModuleType) -> Optional[ResourceReader] """ Return the package's loader if it's a ResourceReader. """ # We can't use # a issubclass() check here because apparently abc.'s __subclasscheck__() # hook wants to create a weak reference to the object, but # zipimport.zipimporter does not support weak references, resulting in a # TypeError. That seems terrible. spec = package.__spec__ reader = getattr(spec.loader, 'get_resource_reader', None) # type: ignore if reader is None: return None return reader(spec.name) # type: ignore def resolve(cand): # type: (Package) -> types.ModuleType return cand if isinstance(cand, types.ModuleType) else importlib.import_module(cand) def get_package(package): # type: (Package) -> types.ModuleType """Take a package name or module object and return the module. Raise an exception if the resolved module is not a package. """ resolved = resolve(package) if wrap_spec(resolved).submodule_search_locations is None: raise TypeError(f'{package!r} is not a package') return resolved def from_package(package): """ Return a Traversable object for the given package. """ spec = wrap_spec(package) reader = spec.loader.get_resource_reader(spec.name) return reader.files() @contextlib.contextmanager def _tempfile(reader, suffix=''): # Not using tempfile.NamedTemporaryFile as it leads to deeper 'try' # blocks due to the need to close the temporary file to work on Windows # properly. fd, raw_path = tempfile.mkstemp(suffix=suffix) try: try: os.write(fd, reader()) finally: os.close(fd) del reader yield pathlib.Path(raw_path) finally: try: os.remove(raw_path) except FileNotFoundError: pass @functools.singledispatch def as_file(path): """ Given a Traversable object, return that object as a path on the local file system in a context manager. """ return _tempfile(path.read_bytes, suffix=path.name) @as_file.register(pathlib.Path) @contextlib.contextmanager def _(path): """ Degenerate behavior for pathlib.Path objects. """ yield path PKx"Td?ɐ T__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources/_compat.py# flake8: noqa import abc import sys import pathlib from contextlib import suppress if sys.version_info >= (3, 10): from zipfile import Path as ZipPath # type: ignore else: from zipp import Path as ZipPath # type: ignore try: from typing import runtime_checkable # type: ignore except ImportError: def runtime_checkable(cls): # type: ignore return cls try: from typing import Protocol # type: ignore except ImportError: Protocol = abc.ABC # type: ignore class TraversableResourcesLoader: """ Adapt loaders to provide TraversableResources and other compatibility. Used primarily for Python 3.9 and earlier where the native loaders do not yet implement TraversableResources. """ def __init__(self, spec): self.spec = spec @property def path(self): return self.spec.origin def get_resource_reader(self, name): from . import readers, _adapters def _zip_reader(spec): with suppress(AttributeError): return readers.ZipReader(spec.loader, spec.name) def _namespace_reader(spec): with suppress(AttributeError, ValueError): return readers.NamespaceReader(spec.submodule_search_locations) def _available_reader(spec): with suppress(AttributeError): return spec.loader.get_resource_reader(spec.name) def _native_reader(spec): reader = _available_reader(spec) return reader if hasattr(reader, 'files') else None def _file_reader(spec): try: path = pathlib.Path(self.path) except TypeError: return None if path.exists(): return readers.FileReader(self) return ( # native reader if it supplies 'files' _native_reader(self.spec) or # local ZipReader if a zip module _zip_reader(self.spec) or # local NamespaceReader if a namespace module _namespace_reader(self.spec) or # local FileReader _file_reader(self.spec) # fallback - adapt the spec ResourceReader to TraversableReader or _adapters.CompatibilityFiles(self.spec) ) def wrap_spec(package): """ Construct a package spec with traversable compatibility on the spec/loader/reader. Supersedes _adapters.wrap_spec to use TraversableResourcesLoader from above for older Python compatibility (<3.10). """ from . import _adapters return _adapters.SpecLoaderAdapter(package.__spec__, TraversableResourcesLoader) PKx"ThttW__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources/_itertools.pyfrom itertools import filterfalse from typing import ( Callable, Iterable, Iterator, Optional, Set, TypeVar, Union, ) # Type and type variable definitions _T = TypeVar('_T') _U = TypeVar('_U') def unique_everseen( iterable: Iterable[_T], key: Optional[Callable[[_T], _U]] = None ) -> Iterator[_T]: "List unique elements, preserving order. Remember all elements ever seen." # unique_everseen('AAAABBBCCDAABBB') --> A B C D # unique_everseen('ABBCcAD', str.lower) --> A B C D seen: Set[Union[_T, _U]] = set() seen_add = seen.add if key is None: for element in filterfalse(seen.__contains__, iterable): seen_add(element) yield element else: for element in iterable: k = key(element) if k not in seen: seen_add(k) yield element PKx"T.1 T__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources/_legacy.pyimport functools import os import pathlib import types import warnings from typing import Union, Iterable, ContextManager, BinaryIO, TextIO, Any from . import _common Package = Union[types.ModuleType, str] Resource = str def deprecated(func): @functools.wraps(func) def wrapper(*args, **kwargs): warnings.warn( f"{func.__name__} is deprecated. Use files() instead. " "Refer to https://importlib-resources.readthedocs.io" "/en/latest/using.html#migrating-from-legacy for migration advice.", DeprecationWarning, stacklevel=2, ) return func(*args, **kwargs) return wrapper def normalize_path(path): # type: (Any) -> str """Normalize a path by ensuring it is a string. If the resulting string contains path separators, an exception is raised. """ str_path = str(path) parent, file_name = os.path.split(str_path) if parent: raise ValueError(f'{path!r} must be only a file name') return file_name @deprecated def open_binary(package: Package, resource: Resource) -> BinaryIO: """Return a file-like object opened for binary reading of the resource.""" return (_common.files(package) / normalize_path(resource)).open('rb') @deprecated def read_binary(package: Package, resource: Resource) -> bytes: """Return the binary contents of the resource.""" return (_common.files(package) / normalize_path(resource)).read_bytes() @deprecated def open_text( package: Package, resource: Resource, encoding: str = 'utf-8', errors: str = 'strict', ) -> TextIO: """Return a file-like object opened for text reading of the resource.""" return (_common.files(package) / normalize_path(resource)).open( 'r', encoding=encoding, errors=errors ) @deprecated def read_text( package: Package, resource: Resource, encoding: str = 'utf-8', errors: str = 'strict', ) -> str: """Return the decoded string of the resource. The decoding-related arguments have the same semantics as those of bytes.decode(). """ with open_text(package, resource, encoding, errors) as fp: return fp.read() @deprecated def contents(package: Package) -> Iterable[str]: """Return an iterable of entries in `package`. Note that not all entries are resources. Specifically, directories are not considered resources. Use `is_resource()` on each entry returned here to check if it is a resource or not. """ return [path.name for path in _common.files(package).iterdir()] @deprecated def is_resource(package: Package, name: str) -> bool: """True if `name` is a resource inside `package`. Directories are *not* resources. """ resource = normalize_path(name) return any( traversable.name == resource and traversable.is_file() for traversable in _common.files(package).iterdir() ) @deprecated def path( package: Package, resource: Resource, ) -> ContextManager[pathlib.Path]: """A context manager providing a file path object to the resource. If the resource does not already exist on its own on the file system, a temporary file will be created. If the file was created, the file will be deleted upon exiting the context manager (no exception is raised if the file was deleted prior to the context manager exiting). """ return _common.as_file(_common.files(package) / normalize_path(resource)) PKx"T}>..P__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources/abc.pyimport abc from typing import BinaryIO, Iterable, Text from ._compat import runtime_checkable, Protocol class ResourceReader(metaclass=abc.ABCMeta): """Abstract base class for loaders to provide resource reading support.""" @abc.abstractmethod def open_resource(self, resource: Text) -> BinaryIO: """Return an opened, file-like object for binary reading. The 'resource' argument is expected to represent only a file name. If the resource cannot be found, FileNotFoundError is raised. """ # This deliberately raises FileNotFoundError instead of # NotImplementedError so that if this method is accidentally called, # it'll still do the right thing. raise FileNotFoundError @abc.abstractmethod def resource_path(self, resource: Text) -> Text: """Return the file system path to the specified resource. The 'resource' argument is expected to represent only a file name. If the resource does not exist on the file system, raise FileNotFoundError. """ # This deliberately raises FileNotFoundError instead of # NotImplementedError so that if this method is accidentally called, # it'll still do the right thing. raise FileNotFoundError @abc.abstractmethod def is_resource(self, path: Text) -> bool: """Return True if the named 'path' is a resource. Files are resources, directories are not. """ raise FileNotFoundError @abc.abstractmethod def contents(self) -> Iterable[str]: """Return an iterable of entries in `package`.""" raise FileNotFoundError @runtime_checkable class Traversable(Protocol): """ An object with a subset of pathlib.Path methods suitable for traversing directories and opening files. """ @abc.abstractmethod def iterdir(self): """ Yield Traversable objects in self """ def read_bytes(self): """ Read contents of self as bytes """ with self.open('rb') as strm: return strm.read() def read_text(self, encoding=None): """ Read contents of self as text """ with self.open(encoding=encoding) as strm: return strm.read() @abc.abstractmethod def is_dir(self) -> bool: """ Return True if self is a directory """ @abc.abstractmethod def is_file(self) -> bool: """ Return True if self is a file """ @abc.abstractmethod def joinpath(self, child): """ Return Traversable child in self """ def __truediv__(self, child): """ Return Traversable child in self """ return self.joinpath(child) @abc.abstractmethod def open(self, mode='r', *args, **kwargs): """ mode may be 'r' or 'rb' to open as text or binary. Return a handle suitable for reading (same as pathlib.Path.open). When opening as text, accepts encoding parameters such as those accepted by io.TextIOWrapper. """ @abc.abstractproperty def name(self) -> str: """ The base name of this object without any parent references. """ class TraversableResources(ResourceReader): """ The required interface for providing traversable resources. """ @abc.abstractmethod def files(self): """Return a Traversable object for the loaded package.""" def open_resource(self, resource): return self.files().joinpath(resource).open('rb') def resource_path(self, resource): raise FileNotFoundError(resource) def is_resource(self, path): return self.files().joinpath(path).is_file() def contents(self): return (item.name for item in self.files().iterdir()) PKx"TR__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources/py.typedPKx"TD T__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources/readers.pyimport collections import pathlib import operator from . import abc from ._itertools import unique_everseen from ._compat import ZipPath def remove_duplicates(items): return iter(collections.OrderedDict.fromkeys(items)) class FileReader(abc.TraversableResources): def __init__(self, loader): self.path = pathlib.Path(loader.path).parent def resource_path(self, resource): """ Return the file system path to prevent `resources.path()` from creating a temporary copy. """ return str(self.path.joinpath(resource)) def files(self): return self.path class ZipReader(abc.TraversableResources): def __init__(self, loader, module): _, _, name = module.rpartition('.') self.prefix = loader.prefix.replace('\\', '/') + name + '/' self.archive = loader.archive def open_resource(self, resource): try: return super().open_resource(resource) except KeyError as exc: raise FileNotFoundError(exc.args[0]) def is_resource(self, path): # workaround for `zipfile.Path.is_file` returning true # for non-existent paths. target = self.files().joinpath(path) return target.is_file() and target.exists() def files(self): return ZipPath(self.archive, self.prefix) class MultiplexedPath(abc.Traversable): """ Given a series of Traversable objects, implement a merged version of the interface across all objects. Useful for namespace packages which may be multihomed at a single name. """ def __init__(self, *paths): self._paths = list(map(pathlib.Path, remove_duplicates(paths))) if not self._paths: message = 'MultiplexedPath must contain at least one path' raise FileNotFoundError(message) if not all(path.is_dir() for path in self._paths): raise NotADirectoryError('MultiplexedPath only supports directories') def iterdir(self): files = (file for path in self._paths for file in path.iterdir()) return unique_everseen(files, key=operator.attrgetter('name')) def read_bytes(self): raise FileNotFoundError(f'{self} is not a file') def read_text(self, *args, **kwargs): raise FileNotFoundError(f'{self} is not a file') def is_dir(self): return True def is_file(self): return False def joinpath(self, child): # first try to find child in current paths for file in self.iterdir(): if file.name == child: return file # if it does not exist, construct it with the first path return self._paths[0] / child __truediv__ = joinpath def open(self, *args, **kwargs): raise FileNotFoundError(f'{self} is not a file') @property def name(self): return self._paths[0].name def __repr__(self): paths = ', '.join(f"'{path}'" for path in self._paths) return f'MultiplexedPath({paths})' class NamespaceReader(abc.TraversableResources): def __init__(self, namespace_path): if 'NamespacePath' not in str(namespace_path): raise ValueError('Invalid path') self.path = MultiplexedPath(*list(namespace_path)) def resource_path(self, resource): """ Return the file system path to prevent `resources.path()` from creating a temporary copy. """ return str(self.path.joinpath(resource)) def files(self): return self.path PKx"Tc  S__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources/simple.py""" Interface adapters for low-level readers. """ import abc import io import itertools from typing import BinaryIO, List from .abc import Traversable, TraversableResources class SimpleReader(abc.ABC): """ The minimum, low-level interface required from a resource provider. """ @abc.abstractproperty def package(self): # type: () -> str """ The name of the package for which this reader loads resources. """ @abc.abstractmethod def children(self): # type: () -> List['SimpleReader'] """ Obtain an iterable of SimpleReader for available child containers (e.g. directories). """ @abc.abstractmethod def resources(self): # type: () -> List[str] """ Obtain available named resources for this virtual package. """ @abc.abstractmethod def open_binary(self, resource): # type: (str) -> BinaryIO """ Obtain a File-like for a named resource. """ @property def name(self): return self.package.split('.')[-1] class ResourceHandle(Traversable): """ Handle to a named resource in a ResourceReader. """ def __init__(self, parent, name): # type: (ResourceContainer, str) -> None self.parent = parent self.name = name # type: ignore def is_file(self): return True def is_dir(self): return False def open(self, mode='r', *args, **kwargs): stream = self.parent.reader.open_binary(self.name) if 'b' not in mode: stream = io.TextIOWrapper(*args, **kwargs) return stream def joinpath(self, name): raise RuntimeError("Cannot traverse into a resource") class ResourceContainer(Traversable): """ Traversable container for a package's resources via its reader. """ def __init__(self, reader): # type: (SimpleReader) -> None self.reader = reader def is_dir(self): return True def is_file(self): return False def iterdir(self): files = (ResourceHandle(self, name) for name in self.reader.resources) dirs = map(ResourceContainer, self.reader.children()) return itertools.chain(files, dirs) def open(self, *args, **kwargs): raise IsADirectoryError() def joinpath(self, name): return next( traversable for traversable in self.iterdir() if traversable.name == name ) class TraversableReader(TraversableResources, SimpleReader): """ A TraversableResources based on SimpleReader. Resource providers may derive from this class to provide the TraversableResources interface by supplying the SimpleReader interface. """ def files(self): return ResourceContainer(self) PKx"TUm[88a__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources-5.4.0.dist-info/LICENSECopyright 2017-2019 Brett Cannon, Barry Warsaw Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. PKx"TQ? ? b__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources-5.4.0.dist-info/METADATAMetadata-Version: 2.1 Name: importlib-resources Version: 5.4.0 Summary: Read resources from Python packages Home-page: https://github.com/python/importlib_resources Author: Barry Warsaw Author-email: barry@python.org License: UNKNOWN Project-URL: Documentation, https://importlib-resources.readthedocs.io/ Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only Requires-Python: >=3.6 License-File: LICENSE Requires-Dist: zipp (>=3.1.0) ; python_version < "3.10" Provides-Extra: docs Requires-Dist: sphinx ; extra == 'docs' Requires-Dist: jaraco.packaging (>=8.2) ; extra == 'docs' Requires-Dist: rst.linker (>=1.9) ; extra == 'docs' Provides-Extra: testing Requires-Dist: pytest (>=6) ; extra == 'testing' Requires-Dist: pytest-checkdocs (>=2.4) ; extra == 'testing' Requires-Dist: pytest-flake8 ; extra == 'testing' Requires-Dist: pytest-cov ; extra == 'testing' Requires-Dist: pytest-enabler (>=1.0.1) ; extra == 'testing' Requires-Dist: pytest-black (>=0.3.7) ; (platform_python_implementation != "PyPy") and extra == 'testing' Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy") and extra == 'testing' .. image:: https://img.shields.io/pypi/v/importlib_resources.svg :target: `PyPI link`_ .. image:: https://img.shields.io/pypi/pyversions/importlib_resources.svg :target: `PyPI link`_ .. _PyPI link: https://pypi.org/project/importlib_resources .. image:: https://github.com/python/importlib_resources/workflows/tests/badge.svg :target: https://github.com/python/importlib_resources/actions?query=workflow%3A%22tests%22 :alt: tests .. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black :alt: Code style: Black .. image:: https://readthedocs.org/projects/importlib-resources/badge/?version=latest :target: https://importlib-resources.readthedocs.io/en/latest/?badge=latest .. image:: https://img.shields.io/badge/skeleton-2021-informational :target: https://blog.jaraco.com/skeleton ``importlib_resources`` is a backport of Python standard library `importlib.resources `_ module for older Pythons. The key goal of this module is to replace parts of `pkg_resources `_ with a solution in Python's stdlib that relies on well-defined APIs. This makes reading resources included in packages easier, with more stable and consistent semantics. Compatibility ============= New features are introduced in this third-party library and later merged into CPython. The following table indicates which versions of this library were contributed to different versions in the standard library: .. list-table:: :header-rows: 1 * - importlib_resources - stdlib * - 5.2 - 3.11 * - 5.0 - 3.10 * - 1.3 - 3.9 * - 0.5 (?) - 3.7 PKx"TP2\\___virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources-5.4.0.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.0) Root-Is-Purelib: true Tag: py3-none-any PKx"Tgƞg__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources-5.4.0.dist-info/top_level.txtimportlib_resources PKx"Tdq`__virtualenv__/importlib_resources-5.4.0-py3-none-any/importlib_resources-5.4.0.dist-info/RECORDimportlib_resources/__init__.py,sha256=zuA0lbRgtVVCcAztM0z5LuBiOCV9L_3qtI6mW2p5xAg,525 importlib_resources/_adapters.py,sha256=o51tP2hpVtohP33gSYyAkGNpLfYDBqxxYsadyiRZi1E,4504 importlib_resources/_common.py,sha256=iIxAaQhotSh6TLLUEfL_ynU2fzEeyHMz9JcL46mUhLg,2741 importlib_resources/_compat.py,sha256=3LpkIfeN9x4oXjRea5TxZP5VYhPlzuVRhGe-hEv-S0s,2704 importlib_resources/_itertools.py,sha256=WCdJ1Gs_kNFwKENyIG7TO0Y434IWCu0zjVVSsSbZwU8,884 importlib_resources/_legacy.py,sha256=TMLkx6aEM6U8xIREPXqGZrMbUhTiPUuPl6ESD7RdYj4,3494 importlib_resources/abc.py,sha256=MvTJJXajbl74s36Gyeesf76egtbFnh-TMtzQMVhFWXo,3886 importlib_resources/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/readers.py,sha256=_9QLGQ5AzrED3PY8S2Zf8V6yLR0-nqqYqtQmgleDJzY,3566 importlib_resources/simple.py,sha256=xt0qhXbwt3bZ86zuaaKbTiE9A0mDbwu0saRjUq_pcY0,2836 importlib_resources/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/_compat.py,sha256=QGI_4p0DXybypoYvw0kr3jfQqvls3p8u4wy4Wvf0Z_o,435 importlib_resources/tests/test_compatibilty_files.py,sha256=NWkbIsylI8Wz3Dwsxo1quT4ZI6ToXFA2mojCG6Dzuxw,3260 importlib_resources/tests/test_contents.py,sha256=V1Xfk3lqTDdvUsZuV18Kndf0CT_tkM2oEIwk9Vv0rhg,968 importlib_resources/tests/test_files.py,sha256=1Nqv6VM_MjfwrmtXYL1a1CMT0QhCxi3hNMqwXlfMQTg,1184 importlib_resources/tests/test_open.py,sha256=pmEgdrSFdM83L6FxtR8U_RT9BfI3JZ4snGmM_ZZIegY,2565 importlib_resources/tests/test_path.py,sha256=xvPteNA-UKavDhKgLgrQuXSxKWYH7Q4nSNDVfBX95Gs,2103 importlib_resources/tests/test_read.py,sha256=EyYvpHJ_7F4LuX2EU_c5EerIBQfRhOFmiIR7LOc5Y5E,2408 importlib_resources/tests/test_reader.py,sha256=hgXHquqAEnioemv20ZZcDlVaiOrcZKADO37_FkiQ00Y,4286 importlib_resources/tests/test_resource.py,sha256=DqfLNc9kaN5obqxU8kn0sRUWMf9MygagrpfMV5-QfWg,8145 importlib_resources/tests/update-zips.py,sha256=x3iJVqWnMM5qp4Oob2Pl3o6Yi03sUjEv_5Wf-UCg3ps,1415 importlib_resources/tests/util.py,sha256=X1j-0C96pu3_tmtJuLhzfBfcfMenOphDLkxtCt5j7t4,5309 importlib_resources/tests/data01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data01/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 importlib_resources/tests/data01/utf-16.file,sha256=t5q9qhxX0rYqItBOM8D3ylwG-RHrnOYteTLtQr6sF7g,44 importlib_resources/tests/data01/utf-8.file,sha256=kwWgYG4yQ-ZF2X_WA66EjYPmxJRn-w8aSOiS9e8tKYY,20 importlib_resources/tests/data01/subdirectory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data01/subdirectory/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 importlib_resources/tests/data02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data02/one/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data02/one/resource1.txt,sha256=10flKac7c-XXFzJ3t-AB5MJjlBy__dSZvPE_dOm2q6U,13 importlib_resources/tests/data02/two/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data02/two/resource2.txt,sha256=lt2jbN3TMn9QiFKM832X39bU_62UptDdUkoYzkvEbl0,13 importlib_resources/tests/namespacedata01/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 importlib_resources/tests/namespacedata01/utf-16.file,sha256=t5q9qhxX0rYqItBOM8D3ylwG-RHrnOYteTLtQr6sF7g,44 importlib_resources/tests/namespacedata01/utf-8.file,sha256=kwWgYG4yQ-ZF2X_WA66EjYPmxJRn-w8aSOiS9e8tKYY,20 importlib_resources/tests/zipdata01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/zipdata01/ziptestdata.zip,sha256=z5Of4dsv3T0t-46B0MsVhxlhsPGMz28aUhJDWpj3_oY,876 importlib_resources/tests/zipdata02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/zipdata02/ziptestdata.zip,sha256=ydI-_j-xgQ7tDxqBp9cjOqXBGxUp6ZBbwVJu6Xj-nrY,698 importlib_resources-5.4.0.dist-info/LICENSE,sha256=uWRjFdYGataJX2ziXk048ItUglQmjng3GWBALaWA36U,568 importlib_resources-5.4.0.dist-info/METADATA,sha256=i5jH25IbM0Ls6u6UzSSCOa0c8hpDvePxqgnQwh2T5Io,3135 importlib_resources-5.4.0.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 importlib_resources-5.4.0.dist-info/top_level.txt,sha256=fHIjHU1GZwAjvcydpmUnUrTnbvdiWjG4OEVZK8by0TQ,20 importlib_resources-5.4.0.dist-info/RECORD,, PKx"TLObY__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources/__init__.py"""Read resources contained within a package.""" import sys from ._common import ( as_file, files, ) # For compatibility. Ref #88. # Also requires hook-importlib_resources.py (Ref #101). __import__('importlib_resources.trees') __all__ = [ 'Package', 'Resource', 'ResourceReader', 'as_file', 'contents', 'files', 'is_resource', 'open_binary', 'open_text', 'path', 'read_binary', 'read_text', ] if sys.version_info >= (3,): from importlib_resources._py3 import ( Package, Resource, contents, is_resource, open_binary, open_text, path, read_binary, read_text, ) from importlib_resources.abc import ResourceReader else: from importlib_resources._py2 import ( contents, is_resource, open_binary, open_text, path, read_binary, read_text, ) del __all__[:3] PKx"Tv1 1 X__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources/_common.pyfrom __future__ import absolute_import import os import tempfile import contextlib import types import importlib from ._compat import ( Path, FileNotFoundError, singledispatch, package_spec, ) if False: # TYPE_CHECKING from typing import Union, Any, Optional from .abc import ResourceReader Package = Union[types.ModuleType, str] def files(package): """ Get a Traversable resource from a package """ return from_package(get_package(package)) def normalize_path(path): # type: (Any) -> str """Normalize a path by ensuring it is a string. If the resulting string contains path separators, an exception is raised. """ str_path = str(path) parent, file_name = os.path.split(str_path) if parent: raise ValueError('{!r} must be only a file name'.format(path)) return file_name def get_resource_reader(package): # type: (types.ModuleType) -> Optional[ResourceReader] """ Return the package's loader if it's a ResourceReader. """ # We can't use # a issubclass() check here because apparently abc.'s __subclasscheck__() # hook wants to create a weak reference to the object, but # zipimport.zipimporter does not support weak references, resulting in a # TypeError. That seems terrible. spec = package.__spec__ reader = getattr(spec.loader, 'get_resource_reader', None) if reader is None: return None return reader(spec.name) def resolve(cand): # type: (Package) -> types.ModuleType return ( cand if isinstance(cand, types.ModuleType) else importlib.import_module(cand) ) def get_package(package): # type: (Package) -> types.ModuleType """Take a package name or module object and return the module. Raise an exception if the resolved module is not a package. """ resolved = resolve(package) if package_spec(resolved).submodule_search_locations is None: raise TypeError('{!r} is not a package'.format(package)) return resolved def from_package(package): """ Return a Traversable object for the given package. """ spec = package_spec(package) reader = spec.loader.get_resource_reader(spec.name) return reader.files() @contextlib.contextmanager def _tempfile(reader, suffix=''): # Not using tempfile.NamedTemporaryFile as it leads to deeper 'try' # blocks due to the need to close the temporary file to work on Windows # properly. fd, raw_path = tempfile.mkstemp(suffix=suffix) try: os.write(fd, reader()) os.close(fd) del reader yield Path(raw_path) finally: try: os.remove(raw_path) except FileNotFoundError: pass @singledispatch def as_file(path): """ Given a Traversable object, return that object as a path on the local file system in a context manager. """ return _tempfile(path.read_bytes, suffix=path.name) @as_file.register(Path) @contextlib.contextmanager def _(path): """ Degenerate behavior for pathlib.Path objects. """ yield path PKx"T0nnX__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources/_compat.pyfrom __future__ import absolute_import import sys # flake8: noqa if sys.version_info > (3,5): from pathlib import Path, PurePath else: from pathlib2 import Path, PurePath # type: ignore if sys.version_info > (3,): from contextlib import suppress else: from contextlib2 import suppress # type: ignore try: from functools import singledispatch except ImportError: from singledispatch import singledispatch # type: ignore try: from abc import ABC # type: ignore except ImportError: from abc import ABCMeta class ABC(object): # type: ignore __metaclass__ = ABCMeta try: FileNotFoundError = FileNotFoundError # type: ignore except NameError: FileNotFoundError = OSError # type: ignore try: NotADirectoryError = NotADirectoryError # type: ignore except NameError: NotADirectoryError = OSError # type: ignore try: from zipfile import Path as ZipPath # type: ignore except ImportError: from zipp import Path as ZipPath # type: ignore try: from typing import runtime_checkable # type: ignore except ImportError: def runtime_checkable(cls): # type: ignore return cls try: from typing import Protocol # type: ignore except ImportError: Protocol = ABC # type: ignore __metaclass__ = type class PackageSpec: def __init__(self, **kwargs): vars(self).update(kwargs) class TraversableResourcesAdapter: def __init__(self, spec): self.spec = spec self.loader = LoaderAdapter(spec) def __getattr__(self, name): return getattr(self.spec, name) class LoaderAdapter: """ Adapt loaders to provide TraversableResources and other compatibility. """ def __init__(self, spec): self.spec = spec @property def path(self): # Python < 3 return self.spec.origin def get_resource_reader(self, name): # Python < 3.9 from . import readers def _zip_reader(spec): with suppress(AttributeError): return readers.ZipReader(spec.loader, spec.name) def _namespace_reader(spec): with suppress(AttributeError, ValueError): return readers.NamespaceReader(spec.submodule_search_locations) def _available_reader(spec): with suppress(AttributeError): return spec.loader.get_resource_reader(spec.name) def _native_reader(spec): reader = _available_reader(spec) return reader if hasattr(reader, 'files') else None return ( # native reader if it supplies 'files' _native_reader(self.spec) or # local ZipReader if a zip module _zip_reader(self.spec) or # local NamespaceReader if a namespace module _namespace_reader(self.spec) or # local FileReader readers.FileReader(self) ) def package_spec(package): """ Construct a minimal package spec suitable for matching the interfaces this library relies upon in later Python versions. """ spec = getattr(package, '__spec__', None) or \ PackageSpec( origin=package.__file__, loader=getattr(package, '__loader__', None), name=package.__name__, submodule_search_locations=getattr(package, '__path__', None), ) return TraversableResourcesAdapter(spec) PKx"T,n22U__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources/_py2.pyimport os import errno from . import _common from ._compat import FileNotFoundError from io import BytesIO, TextIOWrapper, open as io_open def open_binary(package, resource): """Return a file-like object opened for binary reading of the resource.""" resource = _common.normalize_path(resource) package = _common.get_package(package) # Using pathlib doesn't work well here due to the lack of 'strict' argument # for pathlib.Path.resolve() prior to Python 3.6. package_path = os.path.dirname(package.__file__) relative_path = os.path.join(package_path, resource) full_path = os.path.abspath(relative_path) try: return io_open(full_path, 'rb') except IOError: # This might be a package in a zip file. zipimport provides a loader # with a functioning get_data() method, however we have to strip the # archive (i.e. the .zip file's name) off the front of the path. This # is because the zipimport loader in Python 2 doesn't actually follow # PEP 302. It should allow the full path, but actually requires that # the path be relative to the zip file. try: loader = package.__loader__ full_path = relative_path[len(loader.archive)+1:] data = loader.get_data(full_path) except (IOError, AttributeError): package_name = package.__name__ message = '{!r} resource not found in {!r}'.format( resource, package_name) raise FileNotFoundError(message) return BytesIO(data) def open_text(package, resource, encoding='utf-8', errors='strict'): """Return a file-like object opened for text reading of the resource.""" return TextIOWrapper( open_binary(package, resource), encoding=encoding, errors=errors) def read_binary(package, resource): """Return the binary contents of the resource.""" with open_binary(package, resource) as fp: return fp.read() def read_text(package, resource, encoding='utf-8', errors='strict'): """Return the decoded string of the resource. The decoding-related arguments have the same semantics as those of bytes.decode(). """ with open_text(package, resource, encoding, errors) as fp: return fp.read() def path(package, resource): """A context manager providing a file path object to the resource. If the resource does not already exist on its own on the file system, a temporary file will be created. If the file was created, the file will be deleted upon exiting the context manager (no exception is raised if the file was deleted prior to the context manager exiting). """ path = _common.files(package).joinpath(_common.normalize_path(resource)) if not path.is_file(): raise FileNotFoundError(path) return _common.as_file(path) def is_resource(package, name): """True if name is a resource inside package. Directories are *not* resources. """ package = _common.get_package(package) _common.normalize_path(name) try: package_contents = set(contents(package)) except OSError as error: if error.errno not in (errno.ENOENT, errno.ENOTDIR): # We won't hit this in the Python 2 tests, so it'll appear # uncovered. We could mock os.listdir() to return a non-ENOENT or # ENOTDIR, but then we'd have to depend on another external # library since Python 2 doesn't have unittest.mock. It's not # worth it. raise # pragma: nocover return False if name not in package_contents: return False return (_common.from_package(package) / name).is_file() def contents(package): """Return an iterable of entries in `package`. Note that not all entries are resources. Specifically, directories are not considered resources. Use `is_resource()` on each entry returned here to check if it is a resource or not. """ package = _common.get_package(package) return list(item.name for item in _common.from_package(package).iterdir()) PKx"TeNNU__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources/_py3.pyimport os import sys import io from . import _common from contextlib import suppress from importlib.abc import ResourceLoader from io import BytesIO, TextIOWrapper from pathlib import Path from types import ModuleType from typing import Iterable, Iterator, Optional, Set, Union # noqa: F401 from typing import cast from typing.io import BinaryIO, TextIO from collections.abc import Sequence from ._compat import singledispatch if False: # TYPE_CHECKING from typing import ContextManager Package = Union[ModuleType, str] if sys.version_info >= (3, 6): Resource = Union[str, os.PathLike] # pragma: <=35 else: Resource = str # pragma: >=36 def open_binary(package: Package, resource: Resource) -> BinaryIO: """Return a file-like object opened for binary reading of the resource.""" resource = _common.normalize_path(resource) package = _common.get_package(package) reader = _common.get_resource_reader(package) if reader is not None: return reader.open_resource(resource) # Using pathlib doesn't work well here due to the lack of 'strict' # argument for pathlib.Path.resolve() prior to Python 3.6. if package.__spec__.submodule_search_locations is not None: paths = package.__spec__.submodule_search_locations elif package.__spec__.origin is not None: paths = [os.path.dirname(os.path.abspath(package.__spec__.origin))] for package_path in paths: full_path = os.path.join(package_path, resource) try: return open(full_path, mode='rb') except OSError: # Just assume the loader is a resource loader; all the relevant # importlib.machinery loaders are and an AttributeError for # get_data() will make it clear what is needed from the loader. loader = cast(ResourceLoader, package.__spec__.loader) data = None if hasattr(package.__spec__.loader, 'get_data'): with suppress(OSError): data = loader.get_data(full_path) if data is not None: return BytesIO(data) raise FileNotFoundError('{!r} resource not found in {!r}'.format( resource, package.__spec__.name)) def open_text(package: Package, resource: Resource, encoding: str = 'utf-8', errors: str = 'strict') -> TextIO: """Return a file-like object opened for text reading of the resource.""" return TextIOWrapper( open_binary(package, resource), encoding=encoding, errors=errors) def read_binary(package: Package, resource: Resource) -> bytes: """Return the binary contents of the resource.""" with open_binary(package, resource) as fp: return fp.read() def read_text(package: Package, resource: Resource, encoding: str = 'utf-8', errors: str = 'strict') -> str: """Return the decoded string of the resource. The decoding-related arguments have the same semantics as those of bytes.decode(). """ with open_text(package, resource, encoding, errors) as fp: return fp.read() def path( package: Package, resource: Resource, ) -> 'ContextManager[Path]': """A context manager providing a file path object to the resource. If the resource does not already exist on its own on the file system, a temporary file will be created. If the file was created, the file will be deleted upon exiting the context manager (no exception is raised if the file was deleted prior to the context manager exiting). """ reader = _common.get_resource_reader(_common.get_package(package)) return ( _path_from_reader(reader, _common.normalize_path(resource)) if reader else _common.as_file( _common.files(package).joinpath(_common.normalize_path(resource))) ) def _path_from_reader(reader, resource): return _path_from_resource_path(reader, resource) or \ _path_from_open_resource(reader, resource) def _path_from_resource_path(reader, resource): with suppress(FileNotFoundError): return Path(reader.resource_path(resource)) def _path_from_open_resource(reader, resource): saved = io.BytesIO(reader.open_resource(resource).read()) return _common._tempfile(saved.read, suffix=resource) def is_resource(package: Package, name: str) -> bool: """True if `name` is a resource inside `package`. Directories are *not* resources. """ package = _common.get_package(package) _common.normalize_path(name) reader = _common.get_resource_reader(package) if reader is not None: return reader.is_resource(name) package_contents = set(contents(package)) if name not in package_contents: return False return (_common.from_package(package) / name).is_file() def contents(package: Package) -> Iterable[str]: """Return an iterable of entries in `package`. Note that not all entries are resources. Specifically, directories are not considered resources. Use `is_resource()` on each entry returned here to check if it is a resource or not. """ package = _common.get_package(package) reader = _common.get_resource_reader(package) if reader is not None: return _ensure_sequence(reader.contents()) transversable = _common.from_package(package) if transversable.is_dir(): return list(item.name for item in transversable.iterdir()) return [] @singledispatch def _ensure_sequence(iterable): return list(iterable) @_ensure_sequence.register(Sequence) def _(iterable): return iterable PKx"T٧{66T__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources/abc.pyfrom __future__ import absolute_import import abc from ._compat import ABC, FileNotFoundError, runtime_checkable, Protocol # Use mypy's comment syntax for Python 2 compatibility try: from typing import BinaryIO, Iterable, Text except ImportError: pass class ResourceReader(ABC): """Abstract base class for loaders to provide resource reading support.""" @abc.abstractmethod def open_resource(self, resource): # type: (Text) -> BinaryIO """Return an opened, file-like object for binary reading. The 'resource' argument is expected to represent only a file name. If the resource cannot be found, FileNotFoundError is raised. """ # This deliberately raises FileNotFoundError instead of # NotImplementedError so that if this method is accidentally called, # it'll still do the right thing. raise FileNotFoundError @abc.abstractmethod def resource_path(self, resource): # type: (Text) -> Text """Return the file system path to the specified resource. The 'resource' argument is expected to represent only a file name. If the resource does not exist on the file system, raise FileNotFoundError. """ # This deliberately raises FileNotFoundError instead of # NotImplementedError so that if this method is accidentally called, # it'll still do the right thing. raise FileNotFoundError @abc.abstractmethod def is_resource(self, path): # type: (Text) -> bool """Return True if the named 'path' is a resource. Files are resources, directories are not. """ raise FileNotFoundError @abc.abstractmethod def contents(self): # type: () -> Iterable[str] """Return an iterable of entries in `package`.""" raise FileNotFoundError @runtime_checkable class Traversable(Protocol): """ An object with a subset of pathlib.Path methods suitable for traversing directories and opening files. """ @abc.abstractmethod def iterdir(self): """ Yield Traversable objects in self """ @abc.abstractmethod def read_bytes(self): """ Read contents of self as bytes """ @abc.abstractmethod def read_text(self, encoding=None): """ Read contents of self as bytes """ @abc.abstractmethod def is_dir(self): """ Return True if self is a dir """ @abc.abstractmethod def is_file(self): """ Return True if self is a file """ @abc.abstractmethod def joinpath(self, child): """ Return Traversable child in self """ @abc.abstractmethod def __truediv__(self, child): """ Return Traversable child in self """ @abc.abstractmethod def open(self, mode='r', *args, **kwargs): """ mode may be 'r' or 'rb' to open as text or binary. Return a handle suitable for reading (same as pathlib.Path.open). When opening as text, accepts encoding parameters such as those accepted by io.TextIOWrapper. """ @abc.abstractproperty def name(self): # type: () -> str """ The base name of this object without any parent references. """ class TraversableResources(ResourceReader): @abc.abstractmethod def files(self): """Return a Traversable object for the loaded package.""" def open_resource(self, resource): return self.files().joinpath(resource).open('rb') def resource_path(self, resource): raise FileNotFoundError(resource) def is_resource(self, path): return self.files().joinpath(path).is_file() def contents(self): return (item.name for item in self.files().iterdir()) PKx"TV__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources/py.typedPKx"TVQރZZX__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources/readers.pyimport os.path from collections import OrderedDict from . import abc from ._compat import Path, ZipPath from ._compat import FileNotFoundError, NotADirectoryError class FileReader(abc.TraversableResources): def __init__(self, loader): self.path = Path(loader.path).parent def resource_path(self, resource): """ Return the file system path to prevent `resources.path()` from creating a temporary copy. """ return str(self.path.joinpath(resource)) def files(self): return self.path class ZipReader(abc.TraversableResources): def __init__(self, loader, module): _, _, name = module.rpartition('.') self.prefix = loader.prefix.replace('\\', '/') + name + '/' self.archive = loader.archive def open_resource(self, resource): try: return super().open_resource(resource) except KeyError as exc: raise FileNotFoundError(exc.args[0]) def is_resource(self, path): # workaround for `zipfile.Path.is_file` returning true # for non-existent paths. target = self.files().joinpath(path) return target.is_file() and target.exists() def files(self): return ZipPath(self.archive, self.prefix) class MultiplexedPath(abc.Traversable): """ Given a series of Traversable objects, implement a merged version of the interface across all objects. Useful for namespace packages which may be multihomed at a single name. """ def __init__(self, *paths): paths = list(OrderedDict.fromkeys(paths)) # remove duplicates self._paths = list(map(Path, paths)) if not self._paths: message = 'MultiplexedPath must contain at least one path' raise FileNotFoundError(message) if any(not path.is_dir() for path in self._paths): raise NotADirectoryError( 'MultiplexedPath only supports directories') def iterdir(self): visited = [] for path in self._paths: for file in path.iterdir(): if file.name in visited: continue visited.append(file.name) yield file def read_bytes(self): raise FileNotFoundError('{} is not a file'.format(self)) def read_text(self, *args, **kwargs): raise FileNotFoundError('{} is not a file'.format(self)) def is_dir(self): return True def is_file(self): return False def joinpath(self, child): # first try to find child in current paths for file in self.iterdir(): if file.name == child: return file # if it does not exist, construct it with the first path return self._paths[0] / child __truediv__ = joinpath def open(self, *args, **kwargs): raise FileNotFoundError('{} is not a file'.format(self)) def name(self): return os.path.basename(self._paths[0]) def __repr__(self): return 'MultiplexedPath({})'.format( ', '.join("'{}'".format(path) for path in self._paths)) class NamespaceReader(abc.TraversableResources): def __init__(self, namespace_path): if 'NamespacePath' not in str(namespace_path): raise ValueError('Invalid path') self.path = MultiplexedPath(*list(namespace_path)) def resource_path(self, resource): """ Return the file system path to prevent `resources.path()` from creating a temporary copy. """ return str(self.path.joinpath(resource)) def files(self): return self.path PKx"T"uuV__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources/trees.py# for compatibility with 1.1, continue to expose as_file here. from ._common import as_file __all__ = ['as_file'] PKx"TUm[88e__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources-3.2.1.dist-info/LICENSECopyright 2017-2019 Brett Cannon, Barry Warsaw Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. PKx"TlJf__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources-3.2.1.dist-info/METADATAMetadata-Version: 2.1 Name: importlib-resources Version: 3.2.1 Summary: Read resources from Python packages Home-page: https://github.com/python/importlib_resources Author: Barry Warsaw Author-email: barry@python.org License: UNKNOWN Project-URL: Documentation, https://importlib-resources.readthedocs.io/ Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Topic :: Software Development :: Libraries Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7 Requires-Dist: pathlib2 ; python_version < "3" Requires-Dist: contextlib2 ; python_version < "3" Requires-Dist: singledispatch ; python_version < "3.4" Requires-Dist: typing ; python_version < "3.5" Requires-Dist: zipp (>=0.4) ; python_version < "3.8" Provides-Extra: docs Requires-Dist: sphinx ; extra == 'docs' Requires-Dist: rst.linker ; extra == 'docs' Requires-Dist: jaraco.packaging ; extra == 'docs' ``importlib_resources`` is a backport of Python standard library `importlib.resources `_ module for Python 2.7, and 3.4 through 3.8. Users of Python 3.9 and beyond should use the standard library module, since for these versions, ``importlib_resources`` just delegates to that module. The key goal of this module is to replace parts of `pkg_resources `_ with a solution in Python's stdlib that relies on well-defined APIs. This makes reading resources included in packages easier, with more stable and consistent semantics. PKx"Tnnc__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources-3.2.1.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.35.1) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any PKx"Tgƞk__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources-3.2.1.dist-info/top_level.txtimportlib_resources PKx"Tx%}d__virtualenv__/importlib_resources-3.2.1-py2.py3-none-any/importlib_resources-3.2.1.dist-info/RECORDimportlib_resources/__init__.py,sha256=hswDmLAH0IUlLWwmdHXPN2mgus2bk5IwDP-BFzg7VKo,977 importlib_resources/_common.py,sha256=RN8cXOZtlygvlbyTewd-ni9wC1hwXpfbZnrl7kbx0nI,3121 importlib_resources/_compat.py,sha256=NDCXOf1097aDJJx-_pQ0UIktzVx2G1aPIQTRFGx0FHI,3694 importlib_resources/_py2.py,sha256=G9M5mv1ILl8NARGdNX0v9_F_Hb4HUKCS-FCNK63Ajvw,4146 importlib_resources/_py3.py,sha256=5_FhUUHWFG1c3HcLrmDy65ZFB7EYxmHfOV3ybv4uTHM,5710 importlib_resources/abc.py,sha256=6PX4Nprv39YnAht3NymhHIuSso0ocAKqDJZf-A6BgIw,3894 importlib_resources/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/readers.py,sha256=fGuSBoMeeERUVrscN9Grhp0s-wKMy7nMVbCx92vIlGs,3674 importlib_resources/trees.py,sha256=U3FlQSI5--eF4AdzOjBvW4xnjL21OFX8ivk82Quwv_M,117 importlib_resources/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/_compat.py,sha256=geKWJe8UGXjC181JxmtxR3A_o5VrR4yxolS0xbnxMlw,801 importlib_resources/tests/py27compat.py,sha256=9lDJkGV2swPVQJg6isOorRNFWuP6KeoWd4D2bFNmzLI,965 importlib_resources/tests/test_files.py,sha256=91rf4C74_aJsKNSt-a-03slVpY9QSAuCbogFWnsaPjE,1017 importlib_resources/tests/test_open.py,sha256=pIYWvuTDpQOJKX0SEuOKGotssZcEeY_xNPDqLGCvP_U,2565 importlib_resources/tests/test_path.py,sha256=GnUOu-338o9offnC8xwbXjH9JIQJpD7JujgQkGB106Q,1548 importlib_resources/tests/test_read.py,sha256=DpA7tzxSQlU0_YQuWibB3E5PDL9fQUdzeKoEUGnAx78,2046 importlib_resources/tests/test_reader.py,sha256=yEO0xyrYDcGRmsBC6A1n99GXiTZpVvp-uGA313s6aao,4638 importlib_resources/tests/test_resource.py,sha256=GbrMeHJ74N6KJG38TDodCp--nsRnFHXJc7NrAEqUPaU,8766 importlib_resources/tests/util.py,sha256=8hBFwqIZRJFNvkboEB7aWsCqTtgUjlWI_iQ0KV158Yk,5914 importlib_resources/tests/data01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data01/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 importlib_resources/tests/data01/utf-16.file,sha256=t5q9qhxX0rYqItBOM8D3ylwG-RHrnOYteTLtQr6sF7g,44 importlib_resources/tests/data01/utf-8.file,sha256=kwWgYG4yQ-ZF2X_WA66EjYPmxJRn-w8aSOiS9e8tKYY,20 importlib_resources/tests/data01/subdirectory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data01/subdirectory/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 importlib_resources/tests/data02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data02/one/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data02/one/resource1.txt,sha256=10flKac7c-XXFzJ3t-AB5MJjlBy__dSZvPE_dOm2q6U,13 importlib_resources/tests/data02/two/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data02/two/resource2.txt,sha256=lt2jbN3TMn9QiFKM832X39bU_62UptDdUkoYzkvEbl0,13 importlib_resources/tests/namespacedata01/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 importlib_resources/tests/namespacedata01/utf-16.file,sha256=t5q9qhxX0rYqItBOM8D3ylwG-RHrnOYteTLtQr6sF7g,44 importlib_resources/tests/namespacedata01/utf-8.file,sha256=kwWgYG4yQ-ZF2X_WA66EjYPmxJRn-w8aSOiS9e8tKYY,20 importlib_resources/tests/zipdata01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/zipdata01/ziptestdata.zip,sha256=AYf51fj80OKCRis93v2DlZjt5rM-VQOPptSHJbFtkXw,1131 importlib_resources/tests/zipdata02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/zipdata02/ziptestdata.zip,sha256=e6HXvTEObXvJcNxyX5I8tu5M8_6mSN8ALahHfqE7ADA,698 importlib_resources-3.2.1.dist-info/LICENSE,sha256=uWRjFdYGataJX2ziXk048ItUglQmjng3GWBALaWA36U,568 importlib_resources-3.2.1.dist-info/METADATA,sha256=d_tMNLHsZ_lPU-wq04MWr0yEfpwbNFKgfO_CU5GCC9g,1783 importlib_resources-3.2.1.dist-info/WHEEL,sha256=ADKeyaGyKF5DwBNE0sRE5pvW-bSkFMJfBuhzZ3rceP4,110 importlib_resources-3.2.1.dist-info/top_level.txt,sha256=fHIjHU1GZwAjvcydpmUnUrTnbvdiWjG4OEVZK8by0TQ,20 importlib_resources-3.2.1.dist-info/RECORD,, PKx"TLObY__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources/__init__.py"""Read resources contained within a package.""" import sys from ._common import ( as_file, files, ) # For compatibility. Ref #88. # Also requires hook-importlib_resources.py (Ref #101). __import__('importlib_resources.trees') __all__ = [ 'Package', 'Resource', 'ResourceReader', 'as_file', 'contents', 'files', 'is_resource', 'open_binary', 'open_text', 'path', 'read_binary', 'read_text', ] if sys.version_info >= (3,): from importlib_resources._py3 import ( Package, Resource, contents, is_resource, open_binary, open_text, path, read_binary, read_text, ) from importlib_resources.abc import ResourceReader else: from importlib_resources._py2 import ( contents, is_resource, open_binary, open_text, path, read_binary, read_text, ) del __all__[:3] PKx"Tv1 1 X__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources/_common.pyfrom __future__ import absolute_import import os import tempfile import contextlib import types import importlib from ._compat import ( Path, FileNotFoundError, singledispatch, package_spec, ) if False: # TYPE_CHECKING from typing import Union, Any, Optional from .abc import ResourceReader Package = Union[types.ModuleType, str] def files(package): """ Get a Traversable resource from a package """ return from_package(get_package(package)) def normalize_path(path): # type: (Any) -> str """Normalize a path by ensuring it is a string. If the resulting string contains path separators, an exception is raised. """ str_path = str(path) parent, file_name = os.path.split(str_path) if parent: raise ValueError('{!r} must be only a file name'.format(path)) return file_name def get_resource_reader(package): # type: (types.ModuleType) -> Optional[ResourceReader] """ Return the package's loader if it's a ResourceReader. """ # We can't use # a issubclass() check here because apparently abc.'s __subclasscheck__() # hook wants to create a weak reference to the object, but # zipimport.zipimporter does not support weak references, resulting in a # TypeError. That seems terrible. spec = package.__spec__ reader = getattr(spec.loader, 'get_resource_reader', None) if reader is None: return None return reader(spec.name) def resolve(cand): # type: (Package) -> types.ModuleType return ( cand if isinstance(cand, types.ModuleType) else importlib.import_module(cand) ) def get_package(package): # type: (Package) -> types.ModuleType """Take a package name or module object and return the module. Raise an exception if the resolved module is not a package. """ resolved = resolve(package) if package_spec(resolved).submodule_search_locations is None: raise TypeError('{!r} is not a package'.format(package)) return resolved def from_package(package): """ Return a Traversable object for the given package. """ spec = package_spec(package) reader = spec.loader.get_resource_reader(spec.name) return reader.files() @contextlib.contextmanager def _tempfile(reader, suffix=''): # Not using tempfile.NamedTemporaryFile as it leads to deeper 'try' # blocks due to the need to close the temporary file to work on Windows # properly. fd, raw_path = tempfile.mkstemp(suffix=suffix) try: os.write(fd, reader()) os.close(fd) del reader yield Path(raw_path) finally: try: os.remove(raw_path) except FileNotFoundError: pass @singledispatch def as_file(path): """ Given a Traversable object, return that object as a path on the local file system in a context manager. """ return _tempfile(path.read_bytes, suffix=path.name) @as_file.register(Path) @contextlib.contextmanager def _(path): """ Degenerate behavior for pathlib.Path objects. """ yield path PKx"T0nnX__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources/_compat.pyfrom __future__ import absolute_import import sys # flake8: noqa if sys.version_info > (3,5): from pathlib import Path, PurePath else: from pathlib2 import Path, PurePath # type: ignore if sys.version_info > (3,): from contextlib import suppress else: from contextlib2 import suppress # type: ignore try: from functools import singledispatch except ImportError: from singledispatch import singledispatch # type: ignore try: from abc import ABC # type: ignore except ImportError: from abc import ABCMeta class ABC(object): # type: ignore __metaclass__ = ABCMeta try: FileNotFoundError = FileNotFoundError # type: ignore except NameError: FileNotFoundError = OSError # type: ignore try: NotADirectoryError = NotADirectoryError # type: ignore except NameError: NotADirectoryError = OSError # type: ignore try: from zipfile import Path as ZipPath # type: ignore except ImportError: from zipp import Path as ZipPath # type: ignore try: from typing import runtime_checkable # type: ignore except ImportError: def runtime_checkable(cls): # type: ignore return cls try: from typing import Protocol # type: ignore except ImportError: Protocol = ABC # type: ignore __metaclass__ = type class PackageSpec: def __init__(self, **kwargs): vars(self).update(kwargs) class TraversableResourcesAdapter: def __init__(self, spec): self.spec = spec self.loader = LoaderAdapter(spec) def __getattr__(self, name): return getattr(self.spec, name) class LoaderAdapter: """ Adapt loaders to provide TraversableResources and other compatibility. """ def __init__(self, spec): self.spec = spec @property def path(self): # Python < 3 return self.spec.origin def get_resource_reader(self, name): # Python < 3.9 from . import readers def _zip_reader(spec): with suppress(AttributeError): return readers.ZipReader(spec.loader, spec.name) def _namespace_reader(spec): with suppress(AttributeError, ValueError): return readers.NamespaceReader(spec.submodule_search_locations) def _available_reader(spec): with suppress(AttributeError): return spec.loader.get_resource_reader(spec.name) def _native_reader(spec): reader = _available_reader(spec) return reader if hasattr(reader, 'files') else None return ( # native reader if it supplies 'files' _native_reader(self.spec) or # local ZipReader if a zip module _zip_reader(self.spec) or # local NamespaceReader if a namespace module _namespace_reader(self.spec) or # local FileReader readers.FileReader(self) ) def package_spec(package): """ Construct a minimal package spec suitable for matching the interfaces this library relies upon in later Python versions. """ spec = getattr(package, '__spec__', None) or \ PackageSpec( origin=package.__file__, loader=getattr(package, '__loader__', None), name=package.__name__, submodule_search_locations=getattr(package, '__path__', None), ) return TraversableResourcesAdapter(spec) PKx"T,n22U__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources/_py2.pyimport os import errno from . import _common from ._compat import FileNotFoundError from io import BytesIO, TextIOWrapper, open as io_open def open_binary(package, resource): """Return a file-like object opened for binary reading of the resource.""" resource = _common.normalize_path(resource) package = _common.get_package(package) # Using pathlib doesn't work well here due to the lack of 'strict' argument # for pathlib.Path.resolve() prior to Python 3.6. package_path = os.path.dirname(package.__file__) relative_path = os.path.join(package_path, resource) full_path = os.path.abspath(relative_path) try: return io_open(full_path, 'rb') except IOError: # This might be a package in a zip file. zipimport provides a loader # with a functioning get_data() method, however we have to strip the # archive (i.e. the .zip file's name) off the front of the path. This # is because the zipimport loader in Python 2 doesn't actually follow # PEP 302. It should allow the full path, but actually requires that # the path be relative to the zip file. try: loader = package.__loader__ full_path = relative_path[len(loader.archive)+1:] data = loader.get_data(full_path) except (IOError, AttributeError): package_name = package.__name__ message = '{!r} resource not found in {!r}'.format( resource, package_name) raise FileNotFoundError(message) return BytesIO(data) def open_text(package, resource, encoding='utf-8', errors='strict'): """Return a file-like object opened for text reading of the resource.""" return TextIOWrapper( open_binary(package, resource), encoding=encoding, errors=errors) def read_binary(package, resource): """Return the binary contents of the resource.""" with open_binary(package, resource) as fp: return fp.read() def read_text(package, resource, encoding='utf-8', errors='strict'): """Return the decoded string of the resource. The decoding-related arguments have the same semantics as those of bytes.decode(). """ with open_text(package, resource, encoding, errors) as fp: return fp.read() def path(package, resource): """A context manager providing a file path object to the resource. If the resource does not already exist on its own on the file system, a temporary file will be created. If the file was created, the file will be deleted upon exiting the context manager (no exception is raised if the file was deleted prior to the context manager exiting). """ path = _common.files(package).joinpath(_common.normalize_path(resource)) if not path.is_file(): raise FileNotFoundError(path) return _common.as_file(path) def is_resource(package, name): """True if name is a resource inside package. Directories are *not* resources. """ package = _common.get_package(package) _common.normalize_path(name) try: package_contents = set(contents(package)) except OSError as error: if error.errno not in (errno.ENOENT, errno.ENOTDIR): # We won't hit this in the Python 2 tests, so it'll appear # uncovered. We could mock os.listdir() to return a non-ENOENT or # ENOTDIR, but then we'd have to depend on another external # library since Python 2 doesn't have unittest.mock. It's not # worth it. raise # pragma: nocover return False if name not in package_contents: return False return (_common.from_package(package) / name).is_file() def contents(package): """Return an iterable of entries in `package`. Note that not all entries are resources. Specifically, directories are not considered resources. Use `is_resource()` on each entry returned here to check if it is a resource or not. """ package = _common.get_package(package) return list(item.name for item in _common.from_package(package).iterdir()) PKx"Ti\gqU__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources/_py3.pyimport os import io from . import _common from contextlib import suppress from importlib.abc import ResourceLoader from io import BytesIO, TextIOWrapper from pathlib import Path from types import ModuleType from typing import Iterable, Iterator, Optional, Set, Union # noqa: F401 from typing import cast from typing.io import BinaryIO, TextIO from collections.abc import Sequence from functools import singledispatch if False: # TYPE_CHECKING from typing import ContextManager Package = Union[ModuleType, str] Resource = Union[str, os.PathLike] def open_binary(package: Package, resource: Resource) -> BinaryIO: """Return a file-like object opened for binary reading of the resource.""" resource = _common.normalize_path(resource) package = _common.get_package(package) reader = _common.get_resource_reader(package) if reader is not None: return reader.open_resource(resource) # Using pathlib doesn't work well here due to the lack of 'strict' # argument for pathlib.Path.resolve() prior to Python 3.6. if package.__spec__.submodule_search_locations is not None: paths = package.__spec__.submodule_search_locations elif package.__spec__.origin is not None: paths = [os.path.dirname(os.path.abspath(package.__spec__.origin))] for package_path in paths: full_path = os.path.join(package_path, resource) try: return open(full_path, mode='rb') except OSError: # Just assume the loader is a resource loader; all the relevant # importlib.machinery loaders are and an AttributeError for # get_data() will make it clear what is needed from the loader. loader = cast(ResourceLoader, package.__spec__.loader) data = None if hasattr(package.__spec__.loader, 'get_data'): with suppress(OSError): data = loader.get_data(full_path) if data is not None: return BytesIO(data) raise FileNotFoundError('{!r} resource not found in {!r}'.format( resource, package.__spec__.name)) def open_text(package: Package, resource: Resource, encoding: str = 'utf-8', errors: str = 'strict') -> TextIO: """Return a file-like object opened for text reading of the resource.""" return TextIOWrapper( open_binary(package, resource), encoding=encoding, errors=errors) def read_binary(package: Package, resource: Resource) -> bytes: """Return the binary contents of the resource.""" with open_binary(package, resource) as fp: return fp.read() def read_text(package: Package, resource: Resource, encoding: str = 'utf-8', errors: str = 'strict') -> str: """Return the decoded string of the resource. The decoding-related arguments have the same semantics as those of bytes.decode(). """ with open_text(package, resource, encoding, errors) as fp: return fp.read() def path( package: Package, resource: Resource, ) -> 'ContextManager[Path]': """A context manager providing a file path object to the resource. If the resource does not already exist on its own on the file system, a temporary file will be created. If the file was created, the file will be deleted upon exiting the context manager (no exception is raised if the file was deleted prior to the context manager exiting). """ reader = _common.get_resource_reader(_common.get_package(package)) return ( _path_from_reader(reader, _common.normalize_path(resource)) if reader else _common.as_file( _common.files(package).joinpath(_common.normalize_path(resource))) ) def _path_from_reader(reader, resource): return _path_from_resource_path(reader, resource) or \ _path_from_open_resource(reader, resource) def _path_from_resource_path(reader, resource): with suppress(FileNotFoundError): return Path(reader.resource_path(resource)) def _path_from_open_resource(reader, resource): saved = io.BytesIO(reader.open_resource(resource).read()) return _common._tempfile(saved.read, suffix=resource) def is_resource(package: Package, name: str) -> bool: """True if `name` is a resource inside `package`. Directories are *not* resources. """ package = _common.get_package(package) _common.normalize_path(name) reader = _common.get_resource_reader(package) if reader is not None: return reader.is_resource(name) package_contents = set(contents(package)) if name not in package_contents: return False return (_common.from_package(package) / name).is_file() def contents(package: Package) -> Iterable[str]: """Return an iterable of entries in `package`. Note that not all entries are resources. Specifically, directories are not considered resources. Use `is_resource()` on each entry returned here to check if it is a resource or not. """ package = _common.get_package(package) reader = _common.get_resource_reader(package) if reader is not None: return _ensure_sequence(reader.contents()) transversable = _common.from_package(package) if transversable.is_dir(): return list(item.name for item in transversable.iterdir()) return [] @singledispatch def _ensure_sequence(iterable): return list(iterable) @_ensure_sequence.register(Sequence) def _(iterable): return iterable PKx"T٧{66T__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources/abc.pyfrom __future__ import absolute_import import abc from ._compat import ABC, FileNotFoundError, runtime_checkable, Protocol # Use mypy's comment syntax for Python 2 compatibility try: from typing import BinaryIO, Iterable, Text except ImportError: pass class ResourceReader(ABC): """Abstract base class for loaders to provide resource reading support.""" @abc.abstractmethod def open_resource(self, resource): # type: (Text) -> BinaryIO """Return an opened, file-like object for binary reading. The 'resource' argument is expected to represent only a file name. If the resource cannot be found, FileNotFoundError is raised. """ # This deliberately raises FileNotFoundError instead of # NotImplementedError so that if this method is accidentally called, # it'll still do the right thing. raise FileNotFoundError @abc.abstractmethod def resource_path(self, resource): # type: (Text) -> Text """Return the file system path to the specified resource. The 'resource' argument is expected to represent only a file name. If the resource does not exist on the file system, raise FileNotFoundError. """ # This deliberately raises FileNotFoundError instead of # NotImplementedError so that if this method is accidentally called, # it'll still do the right thing. raise FileNotFoundError @abc.abstractmethod def is_resource(self, path): # type: (Text) -> bool """Return True if the named 'path' is a resource. Files are resources, directories are not. """ raise FileNotFoundError @abc.abstractmethod def contents(self): # type: () -> Iterable[str] """Return an iterable of entries in `package`.""" raise FileNotFoundError @runtime_checkable class Traversable(Protocol): """ An object with a subset of pathlib.Path methods suitable for traversing directories and opening files. """ @abc.abstractmethod def iterdir(self): """ Yield Traversable objects in self """ @abc.abstractmethod def read_bytes(self): """ Read contents of self as bytes """ @abc.abstractmethod def read_text(self, encoding=None): """ Read contents of self as bytes """ @abc.abstractmethod def is_dir(self): """ Return True if self is a dir """ @abc.abstractmethod def is_file(self): """ Return True if self is a file """ @abc.abstractmethod def joinpath(self, child): """ Return Traversable child in self """ @abc.abstractmethod def __truediv__(self, child): """ Return Traversable child in self """ @abc.abstractmethod def open(self, mode='r', *args, **kwargs): """ mode may be 'r' or 'rb' to open as text or binary. Return a handle suitable for reading (same as pathlib.Path.open). When opening as text, accepts encoding parameters such as those accepted by io.TextIOWrapper. """ @abc.abstractproperty def name(self): # type: () -> str """ The base name of this object without any parent references. """ class TraversableResources(ResourceReader): @abc.abstractmethod def files(self): """Return a Traversable object for the loaded package.""" def open_resource(self, resource): return self.files().joinpath(resource).open('rb') def resource_path(self, resource): raise FileNotFoundError(resource) def is_resource(self, path): return self.files().joinpath(path).is_file() def contents(self): return (item.name for item in self.files().iterdir()) PKx"TV__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources/py.typedPKx"TVQރZZX__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources/readers.pyimport os.path from collections import OrderedDict from . import abc from ._compat import Path, ZipPath from ._compat import FileNotFoundError, NotADirectoryError class FileReader(abc.TraversableResources): def __init__(self, loader): self.path = Path(loader.path).parent def resource_path(self, resource): """ Return the file system path to prevent `resources.path()` from creating a temporary copy. """ return str(self.path.joinpath(resource)) def files(self): return self.path class ZipReader(abc.TraversableResources): def __init__(self, loader, module): _, _, name = module.rpartition('.') self.prefix = loader.prefix.replace('\\', '/') + name + '/' self.archive = loader.archive def open_resource(self, resource): try: return super().open_resource(resource) except KeyError as exc: raise FileNotFoundError(exc.args[0]) def is_resource(self, path): # workaround for `zipfile.Path.is_file` returning true # for non-existent paths. target = self.files().joinpath(path) return target.is_file() and target.exists() def files(self): return ZipPath(self.archive, self.prefix) class MultiplexedPath(abc.Traversable): """ Given a series of Traversable objects, implement a merged version of the interface across all objects. Useful for namespace packages which may be multihomed at a single name. """ def __init__(self, *paths): paths = list(OrderedDict.fromkeys(paths)) # remove duplicates self._paths = list(map(Path, paths)) if not self._paths: message = 'MultiplexedPath must contain at least one path' raise FileNotFoundError(message) if any(not path.is_dir() for path in self._paths): raise NotADirectoryError( 'MultiplexedPath only supports directories') def iterdir(self): visited = [] for path in self._paths: for file in path.iterdir(): if file.name in visited: continue visited.append(file.name) yield file def read_bytes(self): raise FileNotFoundError('{} is not a file'.format(self)) def read_text(self, *args, **kwargs): raise FileNotFoundError('{} is not a file'.format(self)) def is_dir(self): return True def is_file(self): return False def joinpath(self, child): # first try to find child in current paths for file in self.iterdir(): if file.name == child: return file # if it does not exist, construct it with the first path return self._paths[0] / child __truediv__ = joinpath def open(self, *args, **kwargs): raise FileNotFoundError('{} is not a file'.format(self)) def name(self): return os.path.basename(self._paths[0]) def __repr__(self): return 'MultiplexedPath({})'.format( ', '.join("'{}'".format(path) for path in self._paths)) class NamespaceReader(abc.TraversableResources): def __init__(self, namespace_path): if 'NamespacePath' not in str(namespace_path): raise ValueError('Invalid path') self.path = MultiplexedPath(*list(namespace_path)) def resource_path(self, resource): """ Return the file system path to prevent `resources.path()` from creating a temporary copy. """ return str(self.path.joinpath(resource)) def files(self): return self.path PKx"T"uuV__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources/trees.py# for compatibility with 1.1, continue to expose as_file here. from ._common import as_file __all__ = ['as_file'] PKx"TUm[88e__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources-3.3.1.dist-info/LICENSECopyright 2017-2019 Brett Cannon, Barry Warsaw Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. PKx"THf__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources-3.3.1.dist-info/METADATAMetadata-Version: 2.1 Name: importlib-resources Version: 3.3.1 Summary: Read resources from Python packages Home-page: https://github.com/python/importlib_resources Author: Barry Warsaw Author-email: barry@python.org License: UNKNOWN Project-URL: Documentation, https://importlib-resources.readthedocs.io/ Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Topic :: Software Development :: Libraries Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7 Requires-Dist: pathlib2 ; python_version < "3" Requires-Dist: contextlib2 ; python_version < "3" Requires-Dist: singledispatch ; python_version < "3.4" Requires-Dist: typing ; python_version < "3.5" Requires-Dist: zipp (>=0.4) ; python_version < "3.8" Provides-Extra: docs Requires-Dist: sphinx ; extra == 'docs' Requires-Dist: rst.linker ; extra == 'docs' Requires-Dist: jaraco.packaging ; extra == 'docs' ``importlib_resources`` is a backport of Python standard library `importlib.resources `_ module for Python 2.7, and 3.6 through 3.8. Users of Python 3.9 and beyond should use the standard library module, since for these versions, ``importlib_resources`` just delegates to that module. The key goal of this module is to replace parts of `pkg_resources `_ with a solution in Python's stdlib that relies on well-defined APIs. This makes reading resources included in packages easier, with more stable and consistent semantics. PKx"Tzܕnnc__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources-3.3.1.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.36.1) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any PKx"Tgƞk__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources-3.3.1.dist-info/top_level.txtimportlib_resources PKx"T-VWd__virtualenv__/importlib_resources-3.3.1-py2.py3-none-any/importlib_resources-3.3.1.dist-info/RECORDimportlib_resources/__init__.py,sha256=hswDmLAH0IUlLWwmdHXPN2mgus2bk5IwDP-BFzg7VKo,977 importlib_resources/_common.py,sha256=RN8cXOZtlygvlbyTewd-ni9wC1hwXpfbZnrl7kbx0nI,3121 importlib_resources/_compat.py,sha256=NDCXOf1097aDJJx-_pQ0UIktzVx2G1aPIQTRFGx0FHI,3694 importlib_resources/_py2.py,sha256=G9M5mv1ILl8NARGdNX0v9_F_Hb4HUKCS-FCNK63Ajvw,4146 importlib_resources/_py3.py,sha256=Bc-p0UYfPVWXFJ21HLNfVvbVrPJFXBA0g80rqPInkq8,5564 importlib_resources/abc.py,sha256=6PX4Nprv39YnAht3NymhHIuSso0ocAKqDJZf-A6BgIw,3894 importlib_resources/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/readers.py,sha256=fGuSBoMeeERUVrscN9Grhp0s-wKMy7nMVbCx92vIlGs,3674 importlib_resources/trees.py,sha256=U3FlQSI5--eF4AdzOjBvW4xnjL21OFX8ivk82Quwv_M,117 importlib_resources/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/_compat.py,sha256=geKWJe8UGXjC181JxmtxR3A_o5VrR4yxolS0xbnxMlw,801 importlib_resources/tests/py27compat.py,sha256=9lDJkGV2swPVQJg6isOorRNFWuP6KeoWd4D2bFNmzLI,965 importlib_resources/tests/test_files.py,sha256=91rf4C74_aJsKNSt-a-03slVpY9QSAuCbogFWnsaPjE,1017 importlib_resources/tests/test_open.py,sha256=pIYWvuTDpQOJKX0SEuOKGotssZcEeY_xNPDqLGCvP_U,2565 importlib_resources/tests/test_path.py,sha256=GnUOu-338o9offnC8xwbXjH9JIQJpD7JujgQkGB106Q,1548 importlib_resources/tests/test_read.py,sha256=DpA7tzxSQlU0_YQuWibB3E5PDL9fQUdzeKoEUGnAx78,2046 importlib_resources/tests/test_reader.py,sha256=yEO0xyrYDcGRmsBC6A1n99GXiTZpVvp-uGA313s6aao,4638 importlib_resources/tests/test_resource.py,sha256=GbrMeHJ74N6KJG38TDodCp--nsRnFHXJc7NrAEqUPaU,8766 importlib_resources/tests/util.py,sha256=8hBFwqIZRJFNvkboEB7aWsCqTtgUjlWI_iQ0KV158Yk,5914 importlib_resources/tests/data01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data01/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 importlib_resources/tests/data01/utf-16.file,sha256=t5q9qhxX0rYqItBOM8D3ylwG-RHrnOYteTLtQr6sF7g,44 importlib_resources/tests/data01/utf-8.file,sha256=kwWgYG4yQ-ZF2X_WA66EjYPmxJRn-w8aSOiS9e8tKYY,20 importlib_resources/tests/data01/subdirectory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data01/subdirectory/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 importlib_resources/tests/data02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data02/one/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data02/one/resource1.txt,sha256=10flKac7c-XXFzJ3t-AB5MJjlBy__dSZvPE_dOm2q6U,13 importlib_resources/tests/data02/two/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/data02/two/resource2.txt,sha256=lt2jbN3TMn9QiFKM832X39bU_62UptDdUkoYzkvEbl0,13 importlib_resources/tests/namespacedata01/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 importlib_resources/tests/namespacedata01/utf-16.file,sha256=t5q9qhxX0rYqItBOM8D3ylwG-RHrnOYteTLtQr6sF7g,44 importlib_resources/tests/namespacedata01/utf-8.file,sha256=kwWgYG4yQ-ZF2X_WA66EjYPmxJRn-w8aSOiS9e8tKYY,20 importlib_resources/tests/zipdata01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/zipdata01/ziptestdata.zip,sha256=AYf51fj80OKCRis93v2DlZjt5rM-VQOPptSHJbFtkXw,1131 importlib_resources/tests/zipdata02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 importlib_resources/tests/zipdata02/ziptestdata.zip,sha256=e6HXvTEObXvJcNxyX5I8tu5M8_6mSN8ALahHfqE7ADA,698 importlib_resources-3.3.1.dist-info/LICENSE,sha256=uWRjFdYGataJX2ziXk048ItUglQmjng3GWBALaWA36U,568 importlib_resources-3.3.1.dist-info/METADATA,sha256=ulI0eHuldtC-h2_WiQal2AE2eoE91x_xKzbz9kpWvlk,1791 importlib_resources-3.3.1.dist-info/WHEEL,sha256=oh0NKYrTcu1i1-wgrI1cnhkjYIi8WJ-8qd9Jrr5_y4E,110 importlib_resources-3.3.1.dist-info/top_level.txt,sha256=fHIjHU1GZwAjvcydpmUnUrTnbvdiWjG4OEVZK8by0TQ,20 importlib_resources-3.3.1.dist-info/RECORD,, PKx"T:C__virtualenv__/pathlib2-2.3.6-py2.py3-none-any/pathlib2/__init__.py# Copyright (c) 2014-2017 Matthias C. M. Troffaes # Copyright (c) 2012-2014 Antoine Pitrou and contributors # Distributed under the terms of the MIT License. import ctypes import fnmatch import functools import io import ntpath import os import posixpath import re import six import sys from errno import EINVAL, ENOENT, ENOTDIR, EBADF from errno import EEXIST, EPERM, EACCES from operator import attrgetter from stat import ( S_ISDIR, S_ISLNK, S_ISREG, S_ISSOCK, S_ISBLK, S_ISCHR, S_ISFIFO) try: from collections.abc import Sequence # type: ignore except ImportError: from collections import Sequence try: from urllib import quote as urlquote_from_bytes # type: ignore except ImportError: from urllib.parse \ import quote_from_bytes as urlquote_from_bytes # type: ignore try: intern = intern # type: ignore except NameError: intern = sys.intern # type: ignore supports_symlinks = True if os.name == 'nt': import nt # type: ignore if sys.getwindowsversion().major >= 6 \ and sys.version_info >= (3, 2): # type: ignore from nt import _getfinalpathname else: supports_symlinks = False _getfinalpathname = None else: nt = None try: from os import scandir as os_scandir # type: ignore except ImportError: from scandir import scandir as os_scandir # type: ignore __all__ = [ "PurePath", "PurePosixPath", "PureWindowsPath", "Path", "PosixPath", "WindowsPath", ] # # Internals # # EBADF - guard agains macOS `stat` throwing EBADF _IGNORED_ERROS = (ENOENT, ENOTDIR, EBADF) _IGNORED_WINERRORS = ( 21, # ERROR_NOT_READY - drive exists but is not accessible ) def _ignore_error(exception): return (getattr(exception, 'errno', None) in _IGNORED_ERROS or getattr(exception, 'winerror', None) in _IGNORED_WINERRORS) def _py2_fsencode(parts): # py2 => minimal unicode support assert six.PY2 return [part.encode(sys.getfilesystemencoding() or 'ascii') if isinstance(part, six.text_type) else part for part in parts] def _try_except_fileexistserror(try_func, except_func, else_func=None): if sys.version_info >= (3, 3): try: try_func() except FileExistsError as exc: # noqa: F821 except_func(exc) else: if else_func is not None: else_func() else: try: try_func() except EnvironmentError as exc: if exc.errno != EEXIST: raise else: except_func(exc) else: if else_func is not None: else_func() def _try_except_filenotfounderror(try_func, except_func): if sys.version_info >= (3, 3): try: try_func() except FileNotFoundError as exc: # noqa: F821 except_func(exc) elif os.name != 'nt': try: try_func() except EnvironmentError as exc: if exc.errno != ENOENT: raise else: except_func(exc) else: try: try_func() except WindowsError as exc: # errno contains winerror # 2 = file not found # 3 = path not found if exc.errno not in (2, 3): raise else: except_func(exc) except EnvironmentError as exc: if exc.errno != ENOENT: raise else: except_func(exc) def _try_except_permissionerror_iter(try_iter, except_iter): if sys.version_info >= (3, 3): try: for x in try_iter(): yield x except PermissionError as exc: # noqa: F821 for x in except_iter(exc): yield x else: try: for x in try_iter(): yield x except EnvironmentError as exc: if exc.errno not in (EPERM, EACCES): raise else: for x in except_iter(exc): yield x def _win32_get_unique_path_id(path): # get file information, needed for samefile on older Python versions # see http://timgolden.me.uk/python/win32_how_do_i/ # see_if_two_files_are_the_same_file.html from ctypes import POINTER, Structure, WinError from ctypes.wintypes import DWORD, HANDLE, BOOL class FILETIME(Structure): _fields_ = [("datetime_lo", DWORD), ("datetime_hi", DWORD), ] class BY_HANDLE_FILE_INFORMATION(Structure): _fields_ = [("attributes", DWORD), ("created_at", FILETIME), ("accessed_at", FILETIME), ("written_at", FILETIME), ("volume", DWORD), ("file_hi", DWORD), ("file_lo", DWORD), ("n_links", DWORD), ("index_hi", DWORD), ("index_lo", DWORD), ] CreateFile = ctypes.windll.kernel32.CreateFileW CreateFile.argtypes = [ctypes.c_wchar_p, DWORD, DWORD, ctypes.c_void_p, DWORD, DWORD, HANDLE] CreateFile.restype = HANDLE GetFileInformationByHandle = ( ctypes.windll.kernel32.GetFileInformationByHandle) GetFileInformationByHandle.argtypes = [ HANDLE, POINTER(BY_HANDLE_FILE_INFORMATION)] GetFileInformationByHandle.restype = BOOL CloseHandle = ctypes.windll.kernel32.CloseHandle CloseHandle.argtypes = [HANDLE] CloseHandle.restype = BOOL GENERIC_READ = 0x80000000 FILE_SHARE_READ = 0x00000001 FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 OPEN_EXISTING = 3 if os.path.isdir(path): flags = FILE_FLAG_BACKUP_SEMANTICS else: flags = 0 hfile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, None, OPEN_EXISTING, flags, None) if hfile == 0xffffffff: if sys.version_info >= (3, 3): raise FileNotFoundError(path) # noqa: F821 else: exc = OSError("file not found: path") exc.errno = ENOENT raise exc info = BY_HANDLE_FILE_INFORMATION() success = GetFileInformationByHandle(hfile, info) CloseHandle(hfile) if success == 0: raise WinError() return info.volume, info.index_hi, info.index_lo def _is_wildcard_pattern(pat): # Whether this pattern needs actual matching using fnmatch, or can # be looked up directly as a file. return "*" in pat or "?" in pat or "[" in pat class _Flavour(object): """A flavour implements a particular (platform-specific) set of path semantics.""" def __init__(self): self.join = self.sep.join def parse_parts(self, parts): if six.PY2: parts = _py2_fsencode(parts) parsed = [] sep = self.sep altsep = self.altsep drv = root = '' it = reversed(parts) for part in it: if not part: continue if altsep: part = part.replace(altsep, sep) drv, root, rel = self.splitroot(part) if sep in rel: for x in reversed(rel.split(sep)): if x and x != '.': parsed.append(intern(x)) else: if rel and rel != '.': parsed.append(intern(rel)) if drv or root: if not drv: # If no drive is present, try to find one in the previous # parts. This makes the result of parsing e.g. # ("C:", "/", "a") reasonably intuitive. for part in it: if not part: continue if altsep: part = part.replace(altsep, sep) drv = self.splitroot(part)[0] if drv: break break if drv or root: parsed.append(drv + root) parsed.reverse() return drv, root, parsed def join_parsed_parts(self, drv, root, parts, drv2, root2, parts2): """ Join the two paths represented by the respective (drive, root, parts) tuples. Return a new (drive, root, parts) tuple. """ if root2: if not drv2 and drv: return drv, root2, [drv + root2] + parts2[1:] elif drv2: if drv2 == drv or self.casefold(drv2) == self.casefold(drv): # Same drive => second path is relative to the first return drv, root, parts + parts2[1:] else: # Second path is non-anchored (common case) return drv, root, parts + parts2 return drv2, root2, parts2 class _WindowsFlavour(_Flavour): # Reference for Windows paths can be found at # http://msdn.microsoft.com/en-us/library/aa365247%28v=vs.85%29.aspx sep = '\\' altsep = '/' has_drv = True pathmod = ntpath is_supported = (os.name == 'nt') drive_letters = set('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') ext_namespace_prefix = '\\\\?\\' reserved_names = ( set(['CON', 'PRN', 'AUX', 'NUL']) | set(['COM%d' % i for i in range(1, 10)]) | set(['LPT%d' % i for i in range(1, 10)]) ) # Interesting findings about extended paths: # - '\\?\c:\a', '//?/c:\a' and '//?/c:/a' are all supported # but '\\?\c:/a' is not # - extended paths are always absolute; "relative" extended paths will # fail. def splitroot(self, part, sep=sep): first = part[0:1] second = part[1:2] if (second == sep and first == sep): # XXX extended paths should also disable the collapsing of "." # components (according to MSDN docs). prefix, part = self._split_extended_path(part) first = part[0:1] second = part[1:2] else: prefix = '' third = part[2:3] if (second == sep and first == sep and third != sep): # is a UNC path: # vvvvvvvvvvvvvvvvvvvvv root # \\machine\mountpoint\directory\etc\... # directory ^^^^^^^^^^^^^^ index = part.find(sep, 2) if index != -1: index2 = part.find(sep, index + 1) # a UNC path can't have two slashes in a row # (after the initial two) if index2 != index + 1: if index2 == -1: index2 = len(part) if prefix: return prefix + part[1:index2], sep, part[index2 + 1:] else: return part[:index2], sep, part[index2 + 1:] drv = root = '' if second == ':' and first in self.drive_letters: drv = part[:2] part = part[2:] first = third if first == sep: root = first part = part.lstrip(sep) return prefix + drv, root, part def casefold(self, s): return s.lower() def casefold_parts(self, parts): return [p.lower() for p in parts] def resolve(self, path, strict=False): s = str(path) if not s: return os.getcwd() previous_s = None if _getfinalpathname is not None: if strict: return self._ext_to_normal(_getfinalpathname(s)) else: # End of the path after the first one not found tail_parts = [] def _try_func(): result[0] = self._ext_to_normal(_getfinalpathname(s)) # if there was no exception, set flag to 0 result[1] = 0 def _exc_func(exc): pass while True: result = [None, 1] _try_except_filenotfounderror(_try_func, _exc_func) if result[1] == 1: # file not found exception raised previous_s = s s, tail = os.path.split(s) tail_parts.append(tail) if previous_s == s: return path else: s = result[0] return os.path.join(s, *reversed(tail_parts)) # Means fallback on absolute return None def _split_extended_path(self, s, ext_prefix=ext_namespace_prefix): prefix = '' if s.startswith(ext_prefix): prefix = s[:4] s = s[4:] if s.startswith('UNC\\'): prefix += s[:3] s = '\\' + s[3:] return prefix, s def _ext_to_normal(self, s): # Turn back an extended path into a normal DOS-like path return self._split_extended_path(s)[1] def is_reserved(self, parts): # NOTE: the rules for reserved names seem somewhat complicated # (e.g. r"..\NUL" is reserved but not r"foo\NUL"). # We err on the side of caution and return True for paths which are # not considered reserved by Windows. if not parts: return False if parts[0].startswith('\\\\'): # UNC paths are never reserved return False return parts[-1].partition('.')[0].upper() in self.reserved_names def make_uri(self, path): # Under Windows, file URIs use the UTF-8 encoding. drive = path.drive if len(drive) == 2 and drive[1] == ':': # It's a path on a local drive => 'file:///c:/a/b' rest = path.as_posix()[2:].lstrip('/') return 'file:///%s/%s' % ( drive, urlquote_from_bytes(rest.encode('utf-8'))) else: # It's a path on a network drive => 'file://host/share/a/b' return 'file:' + urlquote_from_bytes( path.as_posix().encode('utf-8')) def gethomedir(self, username): if 'HOME' in os.environ: userhome = os.environ['HOME'] elif 'USERPROFILE' in os.environ: userhome = os.environ['USERPROFILE'] elif 'HOMEPATH' in os.environ: try: drv = os.environ['HOMEDRIVE'] except KeyError: drv = '' userhome = drv + os.environ['HOMEPATH'] else: raise RuntimeError("Can't determine home directory") if username: # Try to guess user home directory. By default all users # directories are located in the same place and are named by # corresponding usernames. If current user home directory points # to nonstandard place, this guess is likely wrong. if os.environ['USERNAME'] != username: drv, root, parts = self.parse_parts((userhome,)) if parts[-1] != os.environ['USERNAME']: raise RuntimeError("Can't determine home directory " "for %r" % username) parts[-1] = username if drv or root: userhome = drv + root + self.join(parts[1:]) else: userhome = self.join(parts) return userhome class _PosixFlavour(_Flavour): sep = '/' altsep = '' has_drv = False pathmod = posixpath is_supported = (os.name != 'nt') def splitroot(self, part, sep=sep): if part and part[0] == sep: stripped_part = part.lstrip(sep) # According to POSIX path resolution: # http://pubs.opengroup.org/onlinepubs/009695399/basedefs/ # xbd_chap04.html#tag_04_11 # "A pathname that begins with two successive slashes may be # interpreted in an implementation-defined manner, although more # than two leading slashes shall be treated as a single slash". if len(part) - len(stripped_part) == 2: return '', sep * 2, stripped_part else: return '', sep, stripped_part else: return '', '', part def casefold(self, s): return s def casefold_parts(self, parts): return parts def resolve(self, path, strict=False): sep = self.sep accessor = path._accessor seen = {} def _resolve(path, rest): if rest.startswith(sep): path = '' for name in rest.split(sep): if not name or name == '.': # current dir continue if name == '..': # parent dir path, _, _ = path.rpartition(sep) continue newpath = path + sep + name if newpath in seen: # Already seen this path path = seen[newpath] if path is not None: # use cached value continue # The symlink is not resolved, so we must have a symlink # loop. raise RuntimeError("Symlink loop from %r" % newpath) # Resolve the symbolic link try: target = accessor.readlink(newpath) except OSError as e: if e.errno != EINVAL and strict: raise # Not a symlink, or non-strict mode. We just leave the path # untouched. path = newpath else: seen[newpath] = None # not resolved symlink path = _resolve(path, target) seen[newpath] = path # resolved symlink return path # NOTE: according to POSIX, getcwd() cannot contain path components # which are symlinks. base = '' if path.is_absolute() else os.getcwd() return _resolve(base, str(path)) or sep def is_reserved(self, parts): return False def make_uri(self, path): # We represent the path using the local filesystem encoding, # for portability to other applications. bpath = bytes(path) return 'file://' + urlquote_from_bytes(bpath) def gethomedir(self, username): if not username: try: return os.environ['HOME'] except KeyError: import pwd return pwd.getpwuid(os.getuid()).pw_dir else: import pwd try: return pwd.getpwnam(username).pw_dir except KeyError: raise RuntimeError("Can't determine home directory " "for %r" % username) _windows_flavour = _WindowsFlavour() _posix_flavour = _PosixFlavour() class _Accessor: """An accessor implements a particular (system-specific or not) way of accessing paths on the filesystem.""" def _wrap_strfunc(strfunc): @functools.wraps(strfunc) def wrapped(pathobj, *args): return strfunc(str(pathobj), *args) return staticmethod(wrapped) def _wrap_binary_strfunc(strfunc): @functools.wraps(strfunc) def wrapped(pathobjA, pathobjB, *args): return strfunc(str(pathobjA), str(pathobjB), *args) return staticmethod(wrapped) class _NormalAccessor(_Accessor): stat = _wrap_strfunc(os.stat) lstat = _wrap_strfunc(os.lstat) open = _wrap_strfunc(os.open) listdir = _wrap_strfunc(os.listdir) scandir = _wrap_strfunc(os_scandir) chmod = _wrap_strfunc(os.chmod) if hasattr(os, "lchmod"): lchmod = _wrap_strfunc(os.lchmod) else: def lchmod(self, pathobj, mode): raise NotImplementedError("lchmod() not available on this system") mkdir = _wrap_strfunc(os.mkdir) unlink = _wrap_strfunc(os.unlink) rmdir = _wrap_strfunc(os.rmdir) rename = _wrap_binary_strfunc(os.rename) if sys.version_info >= (3, 3): replace = _wrap_binary_strfunc(os.replace) if nt: if supports_symlinks: symlink = _wrap_binary_strfunc(os.symlink) else: @staticmethod def symlink(a, b, target_is_directory): raise NotImplementedError( "symlink() not available on this system") else: # Under POSIX, os.symlink() takes two args @staticmethod def symlink(a, b, target_is_directory): return os.symlink(str(a), str(b)) utime = _wrap_strfunc(os.utime) # Helper for resolve() def readlink(self, path): return os.readlink(path) _normal_accessor = _NormalAccessor() # # Globbing helpers # def _make_selector(pattern_parts): pat = pattern_parts[0] child_parts = pattern_parts[1:] if pat == '**': cls = _RecursiveWildcardSelector elif '**' in pat: raise ValueError( "Invalid pattern: '**' can only be an entire path component") elif _is_wildcard_pattern(pat): cls = _WildcardSelector else: cls = _PreciseSelector return cls(pat, child_parts) if hasattr(functools, "lru_cache"): _make_selector = functools.lru_cache()(_make_selector) # type: ignore class _Selector: """A selector matches a specific glob pattern part against the children of a given path.""" def __init__(self, child_parts): self.child_parts = child_parts if child_parts: self.successor = _make_selector(child_parts) self.dironly = True else: self.successor = _TerminatingSelector() self.dironly = False def select_from(self, parent_path): """Iterate over all child paths of `parent_path` matched by this selector. This can contain parent_path itself.""" path_cls = type(parent_path) is_dir = path_cls.is_dir exists = path_cls.exists scandir = parent_path._accessor.scandir if not is_dir(parent_path): return iter([]) return self._select_from(parent_path, is_dir, exists, scandir) class _TerminatingSelector: def _select_from(self, parent_path, is_dir, exists, scandir): yield parent_path class _PreciseSelector(_Selector): def __init__(self, name, child_parts): self.name = name _Selector.__init__(self, child_parts) def _select_from(self, parent_path, is_dir, exists, scandir): def try_iter(): path = parent_path._make_child_relpath(self.name) if (is_dir if self.dironly else exists)(path): for p in self.successor._select_from( path, is_dir, exists, scandir): yield p def except_iter(exc): return yield for x in _try_except_permissionerror_iter(try_iter, except_iter): yield x class _WildcardSelector(_Selector): def __init__(self, pat, child_parts): self.pat = re.compile(fnmatch.translate(pat)) _Selector.__init__(self, child_parts) def _select_from(self, parent_path, is_dir, exists, scandir): def try_iter(): cf = parent_path._flavour.casefold entries = list(scandir(parent_path)) for entry in entries: if not self.dironly or entry.is_dir(): name = entry.name casefolded = cf(name) if self.pat.match(casefolded): path = parent_path._make_child_relpath(name) for p in self.successor._select_from( path, is_dir, exists, scandir): yield p def except_iter(exc): return yield for x in _try_except_permissionerror_iter(try_iter, except_iter): yield x class _RecursiveWildcardSelector(_Selector): def __init__(self, pat, child_parts): _Selector.__init__(self, child_parts) def _iterate_directories(self, parent_path, is_dir, scandir): yield parent_path def try_iter(): entries = list(scandir(parent_path)) for entry in entries: entry_is_dir = False try: entry_is_dir = entry.is_dir() except OSError as e: if not _ignore_error(e): raise if entry_is_dir and not entry.is_symlink(): path = parent_path._make_child_relpath(entry.name) for p in self._iterate_directories(path, is_dir, scandir): yield p def except_iter(exc): return yield for x in _try_except_permissionerror_iter(try_iter, except_iter): yield x def _select_from(self, parent_path, is_dir, exists, scandir): def try_iter(): yielded = set() try: successor_select = self.successor._select_from for starting_point in self._iterate_directories( parent_path, is_dir, scandir): for p in successor_select( starting_point, is_dir, exists, scandir): if p not in yielded: yield p yielded.add(p) finally: yielded.clear() def except_iter(exc): return yield for x in _try_except_permissionerror_iter(try_iter, except_iter): yield x # # Public API # class _PathParents(Sequence): """This object provides sequence-like access to the logical ancestors of a path. Don't try to construct it yourself.""" __slots__ = ('_pathcls', '_drv', '_root', '_parts') def __init__(self, path): # We don't store the instance to avoid reference cycles self._pathcls = type(path) self._drv = path._drv self._root = path._root self._parts = path._parts def __len__(self): if self._drv or self._root: return len(self._parts) - 1 else: return len(self._parts) def __getitem__(self, idx): if idx < 0 or idx >= len(self): raise IndexError(idx) return self._pathcls._from_parsed_parts(self._drv, self._root, self._parts[:-idx - 1]) def __repr__(self): return "<{0}.parents>".format(self._pathcls.__name__) class PurePath(object): """PurePath represents a filesystem path and offers operations which don't imply any actual filesystem I/O. Depending on your system, instantiating a PurePath will return either a PurePosixPath or a PureWindowsPath object. You can also instantiate either of these classes directly, regardless of your system. """ __slots__ = ( '_drv', '_root', '_parts', '_str', '_hash', '_pparts', '_cached_cparts', ) def __new__(cls, *args): """Construct a PurePath from one or several strings and or existing PurePath objects. The strings and path objects are combined so as to yield a canonicalized path, which is incorporated into the new PurePath object. """ if cls is PurePath: cls = PureWindowsPath if os.name == 'nt' else PurePosixPath return cls._from_parts(args) def __reduce__(self): # Using the parts tuple helps share interned path parts # when pickling related paths. return (self.__class__, tuple(self._parts)) @classmethod def _parse_args(cls, args): # This is useful when you don't want to create an instance, just # canonicalize some constructor arguments. parts = [] for a in args: if isinstance(a, PurePath): parts += a._parts else: if sys.version_info >= (3, 6): a = os.fspath(a) else: # duck typing for older Python versions if hasattr(a, "__fspath__"): a = a.__fspath__() if isinstance(a, str): # Force-cast str subclasses to str (issue #21127) parts.append(str(a)) # also handle unicode for PY2 (six.text_type = unicode) elif six.PY2 and isinstance(a, six.text_type): # cast to str using filesystem encoding # note: in rare circumstances, on Python < 3.2, # getfilesystemencoding can return None, in that # case fall back to ascii parts.append(a.encode( sys.getfilesystemencoding() or "ascii")) else: raise TypeError( "argument should be a str object or an os.PathLike " "object returning str, not %r" % type(a)) return cls._flavour.parse_parts(parts) @classmethod def _from_parts(cls, args, init=True): # We need to call _parse_args on the instance, so as to get the # right flavour. self = object.__new__(cls) drv, root, parts = self._parse_args(args) self._drv = drv self._root = root self._parts = parts if init: self._init() return self @classmethod def _from_parsed_parts(cls, drv, root, parts, init=True): self = object.__new__(cls) self._drv = drv self._root = root self._parts = parts if init: self._init() return self @classmethod def _format_parsed_parts(cls, drv, root, parts): if drv or root: return drv + root + cls._flavour.join(parts[1:]) else: return cls._flavour.join(parts) def _init(self): # Overridden in concrete Path pass def _make_child(self, args): drv, root, parts = self._parse_args(args) drv, root, parts = self._flavour.join_parsed_parts( self._drv, self._root, self._parts, drv, root, parts) return self._from_parsed_parts(drv, root, parts) def __str__(self): """Return the string representation of the path, suitable for passing to system calls.""" try: return self._str except AttributeError: self._str = self._format_parsed_parts(self._drv, self._root, self._parts) or '.' return self._str def __fspath__(self): return str(self) def as_posix(self): """Return the string representation of the path with forward (/) slashes.""" f = self._flavour return str(self).replace(f.sep, '/') def __bytes__(self): """Return the bytes representation of the path. This is only recommended to use under Unix.""" if sys.version_info < (3, 2): raise NotImplementedError("needs Python 3.2 or later") return os.fsencode(str(self)) def __repr__(self): return "{0}({1!r})".format(self.__class__.__name__, self.as_posix()) def as_uri(self): """Return the path as a 'file' URI.""" if not self.is_absolute(): raise ValueError("relative path can't be expressed as a file URI") return self._flavour.make_uri(self) @property def _cparts(self): # Cached casefolded parts, for hashing and comparison try: return self._cached_cparts except AttributeError: self._cached_cparts = self._flavour.casefold_parts(self._parts) return self._cached_cparts def __eq__(self, other): if not isinstance(other, PurePath): return NotImplemented return ( self._cparts == other._cparts and self._flavour is other._flavour) def __ne__(self, other): return not self == other def __hash__(self): try: return self._hash except AttributeError: self._hash = hash(tuple(self._cparts)) return self._hash def __lt__(self, other): if (not isinstance(other, PurePath) or self._flavour is not other._flavour): return NotImplemented return self._cparts < other._cparts def __le__(self, other): if (not isinstance(other, PurePath) or self._flavour is not other._flavour): return NotImplemented return self._cparts <= other._cparts def __gt__(self, other): if (not isinstance(other, PurePath) or self._flavour is not other._flavour): return NotImplemented return self._cparts > other._cparts def __ge__(self, other): if (not isinstance(other, PurePath) or self._flavour is not other._flavour): return NotImplemented return self._cparts >= other._cparts drive = property(attrgetter('_drv'), doc="""The drive prefix (letter or UNC path), if any.""") root = property(attrgetter('_root'), doc="""The root of the path, if any.""") @property def anchor(self): """The concatenation of the drive and root, or ''.""" anchor = self._drv + self._root return anchor @property def name(self): """The final path component, if any.""" parts = self._parts if len(parts) == (1 if (self._drv or self._root) else 0): return '' return parts[-1] @property def suffix(self): """The final component's last suffix, if any.""" name = self.name i = name.rfind('.') if 0 < i < len(name) - 1: return name[i:] else: return '' @property def suffixes(self): """A list of the final component's suffixes, if any.""" name = self.name if name.endswith('.'): return [] name = name.lstrip('.') return ['.' + suffix for suffix in name.split('.')[1:]] @property def stem(self): """The final path component, minus its last suffix.""" name = self.name i = name.rfind('.') if 0 < i < len(name) - 1: return name[:i] else: return name def with_name(self, name): """Return a new path with the file name changed.""" if not self.name: raise ValueError("%r has an empty name" % (self,)) drv, root, parts = self._flavour.parse_parts((name,)) if (not name or name[-1] in [self._flavour.sep, self._flavour.altsep] or drv or root or len(parts) != 1): raise ValueError("Invalid name %r" % (name)) return self._from_parsed_parts(self._drv, self._root, self._parts[:-1] + parts[-1:]) def with_suffix(self, suffix): """Return a new path with the file suffix changed. If the path has no suffix, add given suffix. If the given suffix is an empty string, remove the suffix from the path. """ # XXX if suffix is None, should the current suffix be removed? f = self._flavour if f.sep in suffix or f.altsep and f.altsep in suffix: raise ValueError("Invalid suffix %r" % (suffix)) if suffix and not suffix.startswith('.') or suffix == '.': raise ValueError("Invalid suffix %r" % (suffix)) if (six.PY2 and not isinstance(suffix, str) and isinstance(suffix, six.text_type)): # see _parse_args() above suffix = suffix.encode(sys.getfilesystemencoding() or "ascii") name = self.name if not name: raise ValueError("%r has an empty name" % (self,)) old_suffix = self.suffix if not old_suffix: name = name + suffix else: name = name[:-len(old_suffix)] + suffix return self._from_parsed_parts(self._drv, self._root, self._parts[:-1] + [name]) def relative_to(self, *other): """Return the relative path to another path identified by the passed arguments. If the operation is not possible (because this is not a subpath of the other path), raise ValueError. """ # For the purpose of this method, drive and root are considered # separate parts, i.e.: # Path('c:/').relative_to('c:') gives Path('/') # Path('c:/').relative_to('/') raise ValueError if not other: raise TypeError("need at least one argument") parts = self._parts drv = self._drv root = self._root if root: abs_parts = [drv, root] + parts[1:] else: abs_parts = parts to_drv, to_root, to_parts = self._parse_args(other) if to_root: to_abs_parts = [to_drv, to_root] + to_parts[1:] else: to_abs_parts = to_parts n = len(to_abs_parts) cf = self._flavour.casefold_parts if (root or drv) if n == 0 else cf(abs_parts[:n]) != cf(to_abs_parts): formatted = self._format_parsed_parts(to_drv, to_root, to_parts) raise ValueError("{0!r} does not start with {1!r}" .format(str(self), str(formatted))) return self._from_parsed_parts('', root if n == 1 else '', abs_parts[n:]) @property def parts(self): """An object providing sequence-like access to the components in the filesystem path.""" # We cache the tuple to avoid building a new one each time .parts # is accessed. XXX is this necessary? try: return self._pparts except AttributeError: self._pparts = tuple(self._parts) return self._pparts def joinpath(self, *args): """Combine this path with one or several arguments, and return a new path representing either a subpath (if all arguments are relative paths) or a totally different path (if one of the arguments is anchored). """ return self._make_child(args) def __truediv__(self, key): return self._make_child((key,)) def __rtruediv__(self, key): return self._from_parts([key] + self._parts) if six.PY2: __div__ = __truediv__ __rdiv__ = __rtruediv__ @property def parent(self): """The logical parent of the path.""" drv = self._drv root = self._root parts = self._parts if len(parts) == 1 and (drv or root): return self return self._from_parsed_parts(drv, root, parts[:-1]) @property def parents(self): """A sequence of this path's logical parents.""" return _PathParents(self) def is_absolute(self): """True if the path is absolute (has both a root and, if applicable, a drive).""" if not self._root: return False return not self._flavour.has_drv or bool(self._drv) def is_reserved(self): """Return True if the path contains one of the special names reserved by the system, if any.""" return self._flavour.is_reserved(self._parts) def match(self, path_pattern): """ Return True if this path matches the given pattern. """ cf = self._flavour.casefold path_pattern = cf(path_pattern) drv, root, pat_parts = self._flavour.parse_parts((path_pattern,)) if not pat_parts: raise ValueError("empty pattern") if drv and drv != cf(self._drv): return False if root and root != cf(self._root): return False parts = self._cparts if drv or root: if len(pat_parts) != len(parts): return False pat_parts = pat_parts[1:] elif len(pat_parts) > len(parts): return False for part, pat in zip(reversed(parts), reversed(pat_parts)): if not fnmatch.fnmatchcase(part, pat): return False return True # Can't subclass os.PathLike from PurePath and keep the constructor # optimizations in PurePath._parse_args(). if sys.version_info >= (3, 6): os.PathLike.register(PurePath) class PurePosixPath(PurePath): _flavour = _posix_flavour __slots__ = () class PureWindowsPath(PurePath): """PurePath subclass for Windows systems. On a Windows system, instantiating a PurePath should return this object. However, you can also instantiate it directly on any system. """ _flavour = _windows_flavour __slots__ = () # Filesystem-accessing classes class Path(PurePath): """PurePath subclass that can make system calls. Path represents a filesystem path but unlike PurePath, also offers methods to do system calls on path objects. Depending on your system, instantiating a Path will return either a PosixPath or a WindowsPath object. You can also instantiate a PosixPath or WindowsPath directly, but cannot instantiate a WindowsPath on a POSIX system or vice versa. """ __slots__ = ( '_accessor', '_closed', ) def __new__(cls, *args, **kwargs): if cls is Path: cls = WindowsPath if os.name == 'nt' else PosixPath self = cls._from_parts(args, init=False) if not self._flavour.is_supported: raise NotImplementedError("cannot instantiate %r on your system" % (cls.__name__,)) self._init() return self def _init(self, # Private non-constructor arguments template=None, ): self._closed = False if template is not None: self._accessor = template._accessor else: self._accessor = _normal_accessor def _make_child_relpath(self, part): # This is an optimization used for dir walking. `part` must be # a single part relative to this path. parts = self._parts + [part] return self._from_parsed_parts(self._drv, self._root, parts) def __enter__(self): if self._closed: self._raise_closed() return self def __exit__(self, t, v, tb): self._closed = True def _raise_closed(self): raise ValueError("I/O operation on closed path") def _opener(self, name, flags, mode=0o666): # A stub for the opener argument to built-in open() return self._accessor.open(self, flags, mode) def _raw_open(self, flags, mode=0o777): """ Open the file pointed by this path and return a file descriptor, as os.open() does. """ if self._closed: self._raise_closed() return self._accessor.open(self, flags, mode) # Public API @classmethod def cwd(cls): """Return a new path pointing to the current working directory (as returned by os.getcwd()). """ return cls(os.getcwd()) @classmethod def home(cls): """Return a new path pointing to the user's home directory (as returned by os.path.expanduser('~')). """ return cls(cls()._flavour.gethomedir(None)) def samefile(self, other_path): """Return whether other_path is the same or not as this file (as returned by os.path.samefile()). """ if hasattr(os.path, "samestat"): st = self.stat() try: other_st = other_path.stat() except AttributeError: other_st = os.stat(other_path) return os.path.samestat(st, other_st) else: filename1 = six.text_type(self) filename2 = six.text_type(other_path) st1 = _win32_get_unique_path_id(filename1) st2 = _win32_get_unique_path_id(filename2) return st1 == st2 def iterdir(self): """Iterate over the files in this directory. Does not yield any result for the special paths '.' and '..'. """ if self._closed: self._raise_closed() for name in self._accessor.listdir(self): if name in ('.', '..'): # Yielding a path object for these makes little sense continue yield self._make_child_relpath(name) if self._closed: self._raise_closed() def glob(self, pattern): """Iterate over this subtree and yield all existing files (of any kind, including directories) matching the given relative pattern. """ if not pattern: raise ValueError("Unacceptable pattern: {0!r}".format(pattern)) pattern = self._flavour.casefold(pattern) drv, root, pattern_parts = self._flavour.parse_parts((pattern,)) if drv or root: raise NotImplementedError("Non-relative patterns are unsupported") selector = _make_selector(tuple(pattern_parts)) for p in selector.select_from(self): yield p def rglob(self, pattern): """Recursively yield all existing files (of any kind, including directories) matching the given relative pattern, anywhere in this subtree. """ pattern = self._flavour.casefold(pattern) drv, root, pattern_parts = self._flavour.parse_parts((pattern,)) if drv or root: raise NotImplementedError("Non-relative patterns are unsupported") selector = _make_selector(("**",) + tuple(pattern_parts)) for p in selector.select_from(self): yield p def absolute(self): """Return an absolute version of this path. This function works even if the path doesn't point to anything. No normalization is done, i.e. all '.' and '..' will be kept along. Use resolve() to get the canonical path to a file. """ # XXX untested yet! if self._closed: self._raise_closed() if self.is_absolute(): return self # FIXME this must defer to the specific flavour (and, under Windows, # use nt._getfullpathname()) obj = self._from_parts([os.getcwd()] + self._parts, init=False) obj._init(template=self) return obj def resolve(self, strict=False): """ Make the path absolute, resolving all symlinks on the way and also normalizing it (for example turning slashes into backslashes under Windows). """ if self._closed: self._raise_closed() s = self._flavour.resolve(self, strict=strict) if s is None: # No symlink resolution => for consistency, raise an error if # the path is forbidden # but not raise error if file does not exist (see issue #54). def _try_func(): self.stat() def _exc_func(exc): pass _try_except_filenotfounderror(_try_func, _exc_func) s = str(self.absolute()) else: # ensure s is a string (normpath requires this on older python) s = str(s) # Now we have no symlinks in the path, it's safe to normalize it. normed = self._flavour.pathmod.normpath(s) obj = self._from_parts((normed,), init=False) obj._init(template=self) return obj def stat(self): """ Return the result of the stat() system call on this path, like os.stat() does. """ return self._accessor.stat(self) def owner(self): """ Return the login name of the file owner. """ import pwd return pwd.getpwuid(self.stat().st_uid).pw_name def group(self): """ Return the group name of the file gid. """ import grp return grp.getgrgid(self.stat().st_gid).gr_name def open(self, mode='r', buffering=-1, encoding=None, errors=None, newline=None): """ Open the file pointed by this path and return a file object, as the built-in open() function does. """ if self._closed: self._raise_closed() if sys.version_info >= (3, 3): return io.open( str(self), mode, buffering, encoding, errors, newline, opener=self._opener) else: return io.open(str(self), mode, buffering, encoding, errors, newline) def read_bytes(self): """ Open the file in bytes mode, read it, and close the file. """ with self.open(mode='rb') as f: return f.read() def read_text(self, encoding=None, errors=None): """ Open the file in text mode, read it, and close the file. """ with self.open(mode='r', encoding=encoding, errors=errors) as f: return f.read() def write_bytes(self, data): """ Open the file in bytes mode, write to it, and close the file. """ if not isinstance(data, six.binary_type): raise TypeError( 'data must be %s, not %s' % (six.binary_type.__name__, data.__class__.__name__)) with self.open(mode='wb') as f: return f.write(data) def write_text(self, data, encoding=None, errors=None): """ Open the file in text mode, write to it, and close the file. """ if not isinstance(data, six.text_type): raise TypeError( 'data must be %s, not %s' % (six.text_type.__name__, data.__class__.__name__)) with self.open(mode='w', encoding=encoding, errors=errors) as f: return f.write(data) def touch(self, mode=0o666, exist_ok=True): """ Create this file with the given access mode, if it doesn't exist. """ if self._closed: self._raise_closed() if exist_ok: # First try to bump modification time # Implementation note: GNU touch uses the UTIME_NOW option of # the utimensat() / futimens() functions. try: self._accessor.utime(self, None) except OSError: # Avoid exception chaining pass else: return flags = os.O_CREAT | os.O_WRONLY if not exist_ok: flags |= os.O_EXCL fd = self._raw_open(flags, mode) os.close(fd) def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ if self._closed: self._raise_closed() def _try_func(): self._accessor.mkdir(self, mode) def _exc_func(exc): if not parents or self.parent == self: raise exc self.parent.mkdir(parents=True, exist_ok=True) self.mkdir(mode, parents=False, exist_ok=exist_ok) try: _try_except_filenotfounderror(_try_func, _exc_func) except OSError: # Cannot rely on checking for EEXIST, since the operating system # could give priority to other errors like EACCES or EROFS if not exist_ok or not self.is_dir(): raise def chmod(self, mode): """ Change the permissions of the path, like os.chmod(). """ if self._closed: self._raise_closed() self._accessor.chmod(self, mode) def lchmod(self, mode): """ Like chmod(), except if the path points to a symlink, the symlink's permissions are changed, rather than its target's. """ if self._closed: self._raise_closed() self._accessor.lchmod(self, mode) def unlink(self): """ Remove this file or link. If the path is a directory, use rmdir() instead. """ if self._closed: self._raise_closed() self._accessor.unlink(self) def rmdir(self): """ Remove this directory. The directory must be empty. """ if self._closed: self._raise_closed() self._accessor.rmdir(self) def lstat(self): """ Like stat(), except if the path points to a symlink, the symlink's status information is returned, rather than its target's. """ if self._closed: self._raise_closed() return self._accessor.lstat(self) def rename(self, target): """ Rename this path to the given path. """ if self._closed: self._raise_closed() self._accessor.rename(self, target) def replace(self, target): """ Rename this path to the given path, clobbering the existing destination if it exists. """ if sys.version_info < (3, 3): raise NotImplementedError("replace() is only available " "with Python 3.3 and later") if self._closed: self._raise_closed() self._accessor.replace(self, target) def symlink_to(self, target, target_is_directory=False): """ Make this path a symlink pointing to the given path. Note the order of arguments (self, target) is the reverse of os.symlink's. """ if self._closed: self._raise_closed() self._accessor.symlink(target, self, target_is_directory) # Convenience functions for querying the stat results def exists(self): """ Whether this path exists. """ try: self.stat() except OSError as e: if not _ignore_error(e): raise return False except ValueError: # Non-encodable path return False return True def is_dir(self): """ Whether this path is a directory. """ try: return S_ISDIR(self.stat().st_mode) except OSError as e: if not _ignore_error(e): raise # Path doesn't exist or is a broken symlink # (see https://bitbucket.org/pitrou/pathlib/issue/12/) return False except ValueError: # Non-encodable path return False def is_file(self): """ Whether this path is a regular file (also True for symlinks pointing to regular files). """ try: return S_ISREG(self.stat().st_mode) except OSError as e: if not _ignore_error(e): raise # Path doesn't exist or is a broken symlink # (see https://bitbucket.org/pitrou/pathlib/issue/12/) return False except ValueError: # Non-encodable path return False def is_mount(self): """ Check if this path is a POSIX mount point """ # Need to exist and be a dir if not self.exists() or not self.is_dir(): return False parent = Path(self.parent) try: parent_dev = parent.stat().st_dev except OSError: return False dev = self.stat().st_dev if dev != parent_dev: return True ino = self.stat().st_ino parent_ino = parent.stat().st_ino return ino == parent_ino def is_symlink(self): """ Whether this path is a symbolic link. """ try: return S_ISLNK(self.lstat().st_mode) except OSError as e: if not _ignore_error(e): raise # Path doesn't exist return False except ValueError: # Non-encodable path return False def is_block_device(self): """ Whether this path is a block device. """ try: return S_ISBLK(self.stat().st_mode) except OSError as e: if not _ignore_error(e): raise # Path doesn't exist or is a broken symlink # (see https://bitbucket.org/pitrou/pathlib/issue/12/) return False except ValueError: # Non-encodable path return False def is_char_device(self): """ Whether this path is a character device. """ try: return S_ISCHR(self.stat().st_mode) except OSError as e: if not _ignore_error(e): raise # Path doesn't exist or is a broken symlink # (see https://bitbucket.org/pitrou/pathlib/issue/12/) return False except ValueError: # Non-encodable path return False def is_fifo(self): """ Whether this path is a FIFO. """ try: return S_ISFIFO(self.stat().st_mode) except OSError as e: if not _ignore_error(e): raise # Path doesn't exist or is a broken symlink # (see https://bitbucket.org/pitrou/pathlib/issue/12/) return False except ValueError: # Non-encodable path return False def is_socket(self): """ Whether this path is a socket. """ try: return S_ISSOCK(self.stat().st_mode) except OSError as e: if not _ignore_error(e): raise # Path doesn't exist or is a broken symlink # (see https://bitbucket.org/pitrou/pathlib/issue/12/) return False except ValueError: # Non-encodable path return False def expanduser(self): """ Return a new path with expanded ~ and ~user constructs (as returned by os.path.expanduser) """ if (not (self._drv or self._root) and self._parts and self._parts[0][:1] == '~'): homedir = self._flavour.gethomedir(self._parts[0][1:]) return self._from_parts([homedir] + self._parts[1:]) return self class PosixPath(Path, PurePosixPath): """Path subclass for non-Windows systems. On a POSIX system, instantiating a Path should return this object. """ __slots__ = () class WindowsPath(Path, PureWindowsPath): """Path subclass for Windows systems. On a Windows system, instantiating a Path should return this object. """ __slots__ = () def owner(self): raise NotImplementedError("Path.owner() is unsupported on this system") def group(self): raise NotImplementedError("Path.group() is unsupported on this system") def is_mount(self): raise NotImplementedError( "Path.is_mount() is unsupported on this system") PKx"TP?S__virtualenv__/pathlib2-2.3.6-py2.py3-none-any/pathlib2-2.3.6.dist-info/LICENSE.rstThe MIT License (MIT) Copyright (c) 2014-2017 Matthias C. M. Troffaes Copyright (c) 2012-2014 Antoine Pitrou and contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PKx"TU P__virtualenv__/pathlib2-2.3.6-py2.py3-none-any/pathlib2-2.3.6.dist-info/METADATAMetadata-Version: 2.1 Name: pathlib2 Version: 2.3.6 Summary: Object-oriented filesystem paths Home-page: https://github.com/mcmtroffaes/pathlib2 Author: Matthias C. M. Troffaes Author-email: matthias.troffaes@gmail.com License: MIT Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Topic :: Software Development :: Libraries Classifier: Topic :: System :: Filesystems Requires-Dist: six Requires-Dist: scandir ; python_version<"3.5" **As of January 1 2020, this repository will no longer receive any further updates, as Python 2 is no longer supported.** The `old pathlib `_ module on bitbucket is in bugfix-only mode. The goal of pathlib2 is to provide a backport of `standard pathlib `_ module which tracks the standard library module, so all the newest features of the standard pathlib can be used also on older Python versions. Download -------- Standalone releases are available on PyPI: http://pypi.python.org/pypi/pathlib2/ Development ----------- The main development takes place in the Python standard library: see the `Python developer's guide `_. In particular, new features should be submitted to the `Python bug tracker `_. Issues that occur in this backport, but that do not occur not in the standard Python pathlib module can be submitted on the `pathlib2 bug tracker `_. Documentation ------------- Refer to the `standard pathlib `_ documentation. Known Issues ------------ For historic reasons, pathlib2 still uses bytes to represent file paths internally. Unfortunately, on Windows with Python 2.7, the file system encoder (``mcbs``) has only poor support for non-ascii characters, and can silently replace non-ascii characters without warning. For example, ``u'тест'.encode(sys.getfilesystemencoding())`` results in ``????`` which is obviously completely useless. Therefore, on Windows with Python 2.7, until this problem is fixed upstream, unfortunately you cannot rely on pathlib2 to support the full unicode range for filenames. See `issue #56 `_ for more details. .. |github| image:: https://github.com/mcmtroffaes/pathlib2/actions/workflows/python-package.yml/badge.svg :target: https://github.com/mcmtroffaes/pathlib2/actions/workflows/python-package.yml :alt: github .. |appveyor| image:: https://ci.appveyor.com/api/projects/status/baddx3rpet2wyi2c?svg=true :target: https://ci.appveyor.com/project/mcmtroffaes/pathlib2 :alt: appveyor .. |codecov| image:: https://codecov.io/gh/mcmtroffaes/pathlib2/branch/develop/graph/badge.svg :target: https://codecov.io/gh/mcmtroffaes/pathlib2 :alt: codecov PKx"TXnnM__virtualenv__/pathlib2-2.3.6-py2.py3-none-any/pathlib2-2.3.6.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.34.2) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any PKx"Tq U__virtualenv__/pathlib2-2.3.6-py2.py3-none-any/pathlib2-2.3.6.dist-info/top_level.txtpathlib2 PKx"TvON__virtualenv__/pathlib2-2.3.6-py2.py3-none-any/pathlib2-2.3.6.dist-info/RECORDpathlib2/__init__.py,sha256=dnnY0V6WFrj4jPRKav-5wHiccg1DjtOwYiIy29uwgG8,61436 pathlib2-2.3.6.dist-info/LICENSE.rst,sha256=hh-BMAShUax3AkrURXlGU4Cd34p1cq7nurGNEd8rocY,1175 pathlib2-2.3.6.dist-info/METADATA,sha256=jF4L3KQUpyocdlJ2_J-yNWZCow4oBvo72NvCLrWrHjw,3478 pathlib2-2.3.6.dist-info/WHEEL,sha256=kGT74LWyRUZrL4VgLh6_g12IeVl_9u9ZVhadrgXZUEY,110 pathlib2-2.3.6.dist-info/top_level.txt,sha256=tNPkisFiGBFsPUnCIHg62vSFlkx_1NO86Id8lbJmfFQ,9 pathlib2-2.3.6.dist-info/RECORD,, PKx"T1^MJ``A__virtualenv__/scandir-1.10.0-cp310-cp310-linux_x86_64/scandir.py"""scandir, a better directory iterator and faster os.walk(), now in the Python 3.5 stdlib scandir() is a generator version of os.listdir() that returns an iterator over files in a directory, and also exposes the extra information most OSes provide while iterating files in a directory (such as type and stat information). This module also includes a version of os.walk() that uses scandir() to speed it up significantly. See README.md or https://github.com/benhoyt/scandir for rationale and docs, or read PEP 471 (https://www.python.org/dev/peps/pep-0471/) for more details on its inclusion into Python 3.5 scandir is released under the new BSD 3-clause license. See LICENSE.txt for the full license text. """ from __future__ import division from errno import ENOENT from os import listdir, lstat, stat, strerror from os.path import join, islink from stat import S_IFDIR, S_IFLNK, S_IFREG import collections import sys try: import _scandir except ImportError: _scandir = None try: import ctypes except ImportError: ctypes = None if _scandir is None and ctypes is None: import warnings warnings.warn("scandir can't find the compiled _scandir C module " "or ctypes, using slow generic fallback") __version__ = '1.10.0' __all__ = ['scandir', 'walk'] # Windows FILE_ATTRIBUTE constants for interpreting the # FIND_DATA.dwFileAttributes member FILE_ATTRIBUTE_ARCHIVE = 32 FILE_ATTRIBUTE_COMPRESSED = 2048 FILE_ATTRIBUTE_DEVICE = 64 FILE_ATTRIBUTE_DIRECTORY = 16 FILE_ATTRIBUTE_ENCRYPTED = 16384 FILE_ATTRIBUTE_HIDDEN = 2 FILE_ATTRIBUTE_INTEGRITY_STREAM = 32768 FILE_ATTRIBUTE_NORMAL = 128 FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192 FILE_ATTRIBUTE_NO_SCRUB_DATA = 131072 FILE_ATTRIBUTE_OFFLINE = 4096 FILE_ATTRIBUTE_READONLY = 1 FILE_ATTRIBUTE_REPARSE_POINT = 1024 FILE_ATTRIBUTE_SPARSE_FILE = 512 FILE_ATTRIBUTE_SYSTEM = 4 FILE_ATTRIBUTE_TEMPORARY = 256 FILE_ATTRIBUTE_VIRTUAL = 65536 IS_PY3 = sys.version_info >= (3, 0) if IS_PY3: unicode = str # Because Python <= 3.2 doesn't have u'unicode' syntax class GenericDirEntry(object): __slots__ = ('name', '_stat', '_lstat', '_scandir_path', '_path') def __init__(self, scandir_path, name): self._scandir_path = scandir_path self.name = name self._stat = None self._lstat = None self._path = None @property def path(self): if self._path is None: self._path = join(self._scandir_path, self.name) return self._path def stat(self, follow_symlinks=True): if follow_symlinks: if self._stat is None: self._stat = stat(self.path) return self._stat else: if self._lstat is None: self._lstat = lstat(self.path) return self._lstat # The code duplication below is intentional: this is for slightly # better performance on systems that fall back to GenericDirEntry. # It avoids an additional attribute lookup and method call, which # are relatively slow on CPython. def is_dir(self, follow_symlinks=True): try: st = self.stat(follow_symlinks=follow_symlinks) except OSError as e: if e.errno != ENOENT: raise return False # Path doesn't exist or is a broken symlink return st.st_mode & 0o170000 == S_IFDIR def is_file(self, follow_symlinks=True): try: st = self.stat(follow_symlinks=follow_symlinks) except OSError as e: if e.errno != ENOENT: raise return False # Path doesn't exist or is a broken symlink return st.st_mode & 0o170000 == S_IFREG def is_symlink(self): try: st = self.stat(follow_symlinks=False) except OSError as e: if e.errno != ENOENT: raise return False # Path doesn't exist or is a broken symlink return st.st_mode & 0o170000 == S_IFLNK def inode(self): st = self.stat(follow_symlinks=False) return st.st_ino def __str__(self): return '<{0}: {1!r}>'.format(self.__class__.__name__, self.name) __repr__ = __str__ def _scandir_generic(path=unicode('.')): """Like os.listdir(), but yield DirEntry objects instead of returning a list of names. """ for name in listdir(path): yield GenericDirEntry(path, name) if IS_PY3 and sys.platform == 'win32': def scandir_generic(path=unicode('.')): if isinstance(path, bytes): raise TypeError("os.scandir() doesn't support bytes path on Windows, use Unicode instead") return _scandir_generic(path) scandir_generic.__doc__ = _scandir_generic.__doc__ else: scandir_generic = _scandir_generic scandir_c = None scandir_python = None if sys.platform == 'win32': if ctypes is not None: from ctypes import wintypes # Various constants from windows.h INVALID_HANDLE_VALUE = ctypes.c_void_p(-1).value ERROR_FILE_NOT_FOUND = 2 ERROR_NO_MORE_FILES = 18 IO_REPARSE_TAG_SYMLINK = 0xA000000C # Numer of seconds between 1601-01-01 and 1970-01-01 SECONDS_BETWEEN_EPOCHS = 11644473600 kernel32 = ctypes.windll.kernel32 # ctypes wrappers for (wide string versions of) FindFirstFile, # FindNextFile, and FindClose FindFirstFile = kernel32.FindFirstFileW FindFirstFile.argtypes = [ wintypes.LPCWSTR, ctypes.POINTER(wintypes.WIN32_FIND_DATAW), ] FindFirstFile.restype = wintypes.HANDLE FindNextFile = kernel32.FindNextFileW FindNextFile.argtypes = [ wintypes.HANDLE, ctypes.POINTER(wintypes.WIN32_FIND_DATAW), ] FindNextFile.restype = wintypes.BOOL FindClose = kernel32.FindClose FindClose.argtypes = [wintypes.HANDLE] FindClose.restype = wintypes.BOOL Win32StatResult = collections.namedtuple('Win32StatResult', [ 'st_mode', 'st_ino', 'st_dev', 'st_nlink', 'st_uid', 'st_gid', 'st_size', 'st_atime', 'st_mtime', 'st_ctime', 'st_atime_ns', 'st_mtime_ns', 'st_ctime_ns', 'st_file_attributes', ]) def filetime_to_time(filetime): """Convert Win32 FILETIME to time since Unix epoch in seconds.""" total = filetime.dwHighDateTime << 32 | filetime.dwLowDateTime return total / 10000000 - SECONDS_BETWEEN_EPOCHS def find_data_to_stat(data): """Convert Win32 FIND_DATA struct to stat_result.""" # First convert Win32 dwFileAttributes to st_mode attributes = data.dwFileAttributes st_mode = 0 if attributes & FILE_ATTRIBUTE_DIRECTORY: st_mode |= S_IFDIR | 0o111 else: st_mode |= S_IFREG if attributes & FILE_ATTRIBUTE_READONLY: st_mode |= 0o444 else: st_mode |= 0o666 if (attributes & FILE_ATTRIBUTE_REPARSE_POINT and data.dwReserved0 == IO_REPARSE_TAG_SYMLINK): st_mode ^= st_mode & 0o170000 st_mode |= S_IFLNK st_size = data.nFileSizeHigh << 32 | data.nFileSizeLow st_atime = filetime_to_time(data.ftLastAccessTime) st_mtime = filetime_to_time(data.ftLastWriteTime) st_ctime = filetime_to_time(data.ftCreationTime) # Some fields set to zero per CPython's posixmodule.c: st_ino, st_dev, # st_nlink, st_uid, st_gid return Win32StatResult(st_mode, 0, 0, 0, 0, 0, st_size, st_atime, st_mtime, st_ctime, int(st_atime * 1000000000), int(st_mtime * 1000000000), int(st_ctime * 1000000000), attributes) class Win32DirEntryPython(object): __slots__ = ('name', '_stat', '_lstat', '_find_data', '_scandir_path', '_path', '_inode') def __init__(self, scandir_path, name, find_data): self._scandir_path = scandir_path self.name = name self._stat = None self._lstat = None self._find_data = find_data self._path = None self._inode = None @property def path(self): if self._path is None: self._path = join(self._scandir_path, self.name) return self._path def stat(self, follow_symlinks=True): if follow_symlinks: if self._stat is None: if self.is_symlink(): # It's a symlink, call link-following stat() self._stat = stat(self.path) else: # Not a symlink, stat is same as lstat value if self._lstat is None: self._lstat = find_data_to_stat(self._find_data) self._stat = self._lstat return self._stat else: if self._lstat is None: # Lazily convert to stat object, because it's slow # in Python, and often we only need is_dir() etc self._lstat = find_data_to_stat(self._find_data) return self._lstat def is_dir(self, follow_symlinks=True): is_symlink = self.is_symlink() if follow_symlinks and is_symlink: try: return self.stat().st_mode & 0o170000 == S_IFDIR except OSError as e: if e.errno != ENOENT: raise return False elif is_symlink: return False else: return (self._find_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY != 0) def is_file(self, follow_symlinks=True): is_symlink = self.is_symlink() if follow_symlinks and is_symlink: try: return self.stat().st_mode & 0o170000 == S_IFREG except OSError as e: if e.errno != ENOENT: raise return False elif is_symlink: return False else: return (self._find_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY == 0) def is_symlink(self): return (self._find_data.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT != 0 and self._find_data.dwReserved0 == IO_REPARSE_TAG_SYMLINK) def inode(self): if self._inode is None: self._inode = lstat(self.path).st_ino return self._inode def __str__(self): return '<{0}: {1!r}>'.format(self.__class__.__name__, self.name) __repr__ = __str__ def win_error(error, filename): exc = WindowsError(error, ctypes.FormatError(error)) exc.filename = filename return exc def _scandir_python(path=unicode('.')): """Like os.listdir(), but yield DirEntry objects instead of returning a list of names. """ # Call FindFirstFile and handle errors if isinstance(path, bytes): is_bytes = True filename = join(path.decode('mbcs', 'strict'), '*.*') else: is_bytes = False filename = join(path, '*.*') data = wintypes.WIN32_FIND_DATAW() data_p = ctypes.byref(data) handle = FindFirstFile(filename, data_p) if handle == INVALID_HANDLE_VALUE: error = ctypes.GetLastError() if error == ERROR_FILE_NOT_FOUND: # No files, don't yield anything return raise win_error(error, path) # Call FindNextFile in a loop, stopping when no more files try: while True: # Skip '.' and '..' (current and parent directory), but # otherwise yield (filename, stat_result) tuple name = data.cFileName if name not in ('.', '..'): if is_bytes: name = name.encode('mbcs', 'replace') yield Win32DirEntryPython(path, name, data) data = wintypes.WIN32_FIND_DATAW() data_p = ctypes.byref(data) success = FindNextFile(handle, data_p) if not success: error = ctypes.GetLastError() if error == ERROR_NO_MORE_FILES: break raise win_error(error, path) finally: if not FindClose(handle): raise win_error(ctypes.GetLastError(), path) if IS_PY3: def scandir_python(path=unicode('.')): if isinstance(path, bytes): raise TypeError("os.scandir() doesn't support bytes path on Windows, use Unicode instead") return _scandir_python(path) scandir_python.__doc__ = _scandir_python.__doc__ else: scandir_python = _scandir_python if _scandir is not None: scandir_c = _scandir.scandir DirEntry_c = _scandir.DirEntry if _scandir is not None: scandir = scandir_c DirEntry = DirEntry_c elif ctypes is not None: scandir = scandir_python DirEntry = Win32DirEntryPython else: scandir = scandir_generic DirEntry = GenericDirEntry # Linux, OS X, and BSD implementation elif sys.platform.startswith(('linux', 'darwin', 'sunos5')) or 'bsd' in sys.platform: have_dirent_d_type = (sys.platform != 'sunos5') if ctypes is not None and have_dirent_d_type: import ctypes.util DIR_p = ctypes.c_void_p # Rather annoying how the dirent struct is slightly different on each # platform. The only fields we care about are d_name and d_type. class Dirent(ctypes.Structure): if sys.platform.startswith('linux'): _fields_ = ( ('d_ino', ctypes.c_ulong), ('d_off', ctypes.c_long), ('d_reclen', ctypes.c_ushort), ('d_type', ctypes.c_byte), ('d_name', ctypes.c_char * 256), ) elif 'openbsd' in sys.platform: _fields_ = ( ('d_ino', ctypes.c_uint64), ('d_off', ctypes.c_uint64), ('d_reclen', ctypes.c_uint16), ('d_type', ctypes.c_uint8), ('d_namlen', ctypes.c_uint8), ('__d_padding', ctypes.c_uint8 * 4), ('d_name', ctypes.c_char * 256), ) else: _fields_ = ( ('d_ino', ctypes.c_uint32), # must be uint32, not ulong ('d_reclen', ctypes.c_ushort), ('d_type', ctypes.c_byte), ('d_namlen', ctypes.c_byte), ('d_name', ctypes.c_char * 256), ) DT_UNKNOWN = 0 DT_DIR = 4 DT_REG = 8 DT_LNK = 10 Dirent_p = ctypes.POINTER(Dirent) Dirent_pp = ctypes.POINTER(Dirent_p) libc = ctypes.CDLL(ctypes.util.find_library('c'), use_errno=True) opendir = libc.opendir opendir.argtypes = [ctypes.c_char_p] opendir.restype = DIR_p readdir_r = libc.readdir_r readdir_r.argtypes = [DIR_p, Dirent_p, Dirent_pp] readdir_r.restype = ctypes.c_int closedir = libc.closedir closedir.argtypes = [DIR_p] closedir.restype = ctypes.c_int file_system_encoding = sys.getfilesystemencoding() class PosixDirEntry(object): __slots__ = ('name', '_d_type', '_stat', '_lstat', '_scandir_path', '_path', '_inode') def __init__(self, scandir_path, name, d_type, inode): self._scandir_path = scandir_path self.name = name self._d_type = d_type self._inode = inode self._stat = None self._lstat = None self._path = None @property def path(self): if self._path is None: self._path = join(self._scandir_path, self.name) return self._path def stat(self, follow_symlinks=True): if follow_symlinks: if self._stat is None: if self.is_symlink(): self._stat = stat(self.path) else: if self._lstat is None: self._lstat = lstat(self.path) self._stat = self._lstat return self._stat else: if self._lstat is None: self._lstat = lstat(self.path) return self._lstat def is_dir(self, follow_symlinks=True): if (self._d_type == DT_UNKNOWN or (follow_symlinks and self.is_symlink())): try: st = self.stat(follow_symlinks=follow_symlinks) except OSError as e: if e.errno != ENOENT: raise return False return st.st_mode & 0o170000 == S_IFDIR else: return self._d_type == DT_DIR def is_file(self, follow_symlinks=True): if (self._d_type == DT_UNKNOWN or (follow_symlinks and self.is_symlink())): try: st = self.stat(follow_symlinks=follow_symlinks) except OSError as e: if e.errno != ENOENT: raise return False return st.st_mode & 0o170000 == S_IFREG else: return self._d_type == DT_REG def is_symlink(self): if self._d_type == DT_UNKNOWN: try: st = self.stat(follow_symlinks=False) except OSError as e: if e.errno != ENOENT: raise return False return st.st_mode & 0o170000 == S_IFLNK else: return self._d_type == DT_LNK def inode(self): return self._inode def __str__(self): return '<{0}: {1!r}>'.format(self.__class__.__name__, self.name) __repr__ = __str__ def posix_error(filename): errno = ctypes.get_errno() exc = OSError(errno, strerror(errno)) exc.filename = filename return exc def scandir_python(path=unicode('.')): """Like os.listdir(), but yield DirEntry objects instead of returning a list of names. """ if isinstance(path, bytes): opendir_path = path is_bytes = True else: opendir_path = path.encode(file_system_encoding) is_bytes = False dir_p = opendir(opendir_path) if not dir_p: raise posix_error(path) try: result = Dirent_p() while True: entry = Dirent() if readdir_r(dir_p, entry, result): raise posix_error(path) if not result: break name = entry.d_name if name not in (b'.', b'..'): if not is_bytes: name = name.decode(file_system_encoding) yield PosixDirEntry(path, name, entry.d_type, entry.d_ino) finally: if closedir(dir_p): raise posix_error(path) if _scandir is not None: scandir_c = _scandir.scandir DirEntry_c = _scandir.DirEntry if _scandir is not None: scandir = scandir_c DirEntry = DirEntry_c elif ctypes is not None and have_dirent_d_type: scandir = scandir_python DirEntry = PosixDirEntry else: scandir = scandir_generic DirEntry = GenericDirEntry # Some other system -- no d_type or stat information else: scandir = scandir_generic DirEntry = GenericDirEntry def _walk(top, topdown=True, onerror=None, followlinks=False): """Like Python 3.5's implementation of os.walk() -- faster than the pre-Python 3.5 version as it uses scandir() internally. """ dirs = [] nondirs = [] # We may not have read permission for top, in which case we can't # get a list of the files the directory contains. os.walk # always suppressed the exception then, rather than blow up for a # minor reason when (say) a thousand readable directories are still # left to visit. That logic is copied here. try: scandir_it = scandir(top) except OSError as error: if onerror is not None: onerror(error) return while True: try: try: entry = next(scandir_it) except StopIteration: break except OSError as error: if onerror is not None: onerror(error) return try: is_dir = entry.is_dir() except OSError: # If is_dir() raises an OSError, consider that the entry is not # a directory, same behaviour than os.path.isdir(). is_dir = False if is_dir: dirs.append(entry.name) else: nondirs.append(entry.name) if not topdown and is_dir: # Bottom-up: recurse into sub-directory, but exclude symlinks to # directories if followlinks is False if followlinks: walk_into = True else: try: is_symlink = entry.is_symlink() except OSError: # If is_symlink() raises an OSError, consider that the # entry is not a symbolic link, same behaviour than # os.path.islink(). is_symlink = False walk_into = not is_symlink if walk_into: for entry in walk(entry.path, topdown, onerror, followlinks): yield entry # Yield before recursion if going top down if topdown: yield top, dirs, nondirs # Recurse into sub-directories for name in dirs: new_path = join(top, name) # Issue #23605: os.path.islink() is used instead of caching # entry.is_symlink() result during the loop on os.scandir() because # the caller can replace the directory entry during the "yield" # above. if followlinks or not islink(new_path): for entry in walk(new_path, topdown, onerror, followlinks): yield entry else: # Yield after recursion if going bottom up yield top, dirs, nondirs if IS_PY3 or sys.platform != 'win32': walk = _walk else: # Fix for broken unicode handling on Windows on Python 2.x, see: # https://github.com/benhoyt/scandir/issues/54 file_system_encoding = sys.getfilesystemencoding() def walk(top, topdown=True, onerror=None, followlinks=False): if isinstance(top, bytes): top = top.decode(file_system_encoding) return _walk(top, topdown, onerror, followlinks) PKx"Ti隸[__virtualenv__/scandir-1.10.0-cp310-cp310-linux_x86_64/scandir-1.10.0.dist-info/LICENSE.txtCopyright (c) 2012, Ben Hoyt 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 Ben Hoyt nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY 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 HOLDER 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. PKx"Tpq%q%X__virtualenv__/scandir-1.10.0-cp310-cp310-linux_x86_64/scandir-1.10.0.dist-info/METADATAMetadata-Version: 2.1 Name: scandir Version: 1.10.0 Summary: scandir, a better directory iterator and faster os.walk() Home-page: https://github.com/benhoyt/scandir Author: Ben Hoyt Author-email: benhoyt@gmail.com License: New BSD License Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Operating System :: OS Independent Classifier: License :: OSI Approved :: BSD License Classifier: Programming Language :: Python Classifier: Topic :: System :: Filesystems Classifier: Topic :: System :: Operating System Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: Implementation :: CPython License-File: LICENSE.txt scandir, a better directory iterator and faster os.walk() ========================================================= .. image:: https://img.shields.io/pypi/v/scandir.svg :target: https://pypi.python.org/pypi/scandir :alt: scandir on PyPI (Python Package Index) .. image:: https://travis-ci.org/benhoyt/scandir.svg?branch=master :target: https://travis-ci.org/benhoyt/scandir :alt: Travis CI tests (Linux) .. image:: https://ci.appveyor.com/api/projects/status/github/benhoyt/scandir?branch=master&svg=true :target: https://ci.appveyor.com/project/benhoyt/scandir :alt: Appveyor tests (Windows) ``scandir()`` is a directory iteration function like ``os.listdir()``, except that instead of returning a list of bare filenames, it yields ``DirEntry`` objects that include file type and stat information along with the name. Using ``scandir()`` increases the speed of ``os.walk()`` by 2-20 times (depending on the platform and file system) by avoiding unnecessary calls to ``os.stat()`` in most cases. Now included in a Python near you! ---------------------------------- ``scandir`` has been included in the Python 3.5 standard library as ``os.scandir()``, and the related performance improvements to ``os.walk()`` have also been included. So if you're lucky enough to be using Python 3.5 (release date September 13, 2015) you get the benefit immediately, otherwise just `download this module from PyPI `_, install it with ``pip install scandir``, and then do something like this in your code: .. code-block:: python # Use the built-in version of scandir/walk if possible, otherwise # use the scandir module version try: from os import scandir, walk except ImportError: from scandir import scandir, walk `PEP 471 `_, which is the PEP that proposes including ``scandir`` in the Python standard library, was `accepted `_ in July 2014 by Victor Stinner, the BDFL-delegate for the PEP. This ``scandir`` module is intended to work on Python 2.7+ and Python 3.4+ (and it has been tested on those versions). Background ---------- Python's built-in ``os.walk()`` is significantly slower than it needs to be, because -- in addition to calling ``listdir()`` on each directory -- it calls ``stat()`` on each file to determine whether the filename is a directory or not. But both ``FindFirstFile`` / ``FindNextFile`` on Windows and ``readdir`` on Linux/OS X already tell you whether the files returned are directories or not, so no further ``stat`` system calls are needed. In short, you can reduce the number of system calls from about 2N to N, where N is the total number of files and directories in the tree. In practice, removing all those extra system calls makes ``os.walk()`` about **7-50 times as fast on Windows, and about 3-10 times as fast on Linux and Mac OS X.** So we're not talking about micro-optimizations. See more benchmarks in the "Benchmarks" section below. Somewhat relatedly, many people have also asked for a version of ``os.listdir()`` that yields filenames as it iterates instead of returning them as one big list. This improves memory efficiency for iterating very large directories. So as well as a faster ``walk()``, scandir adds a new ``scandir()`` function. They're pretty easy to use, but see "The API" below for the full docs. Benchmarks ---------- Below are results showing how many times as fast ``scandir.walk()`` is than ``os.walk()`` on various systems, found by running ``benchmark.py`` with no arguments: ==================== ============== ============= System version Python version Times as fast ==================== ============== ============= Windows 7 64-bit 2.7.7 64-bit 10.4 Windows 7 64-bit SSD 2.7.7 64-bit 10.3 Windows 7 64-bit NFS 2.7.6 64-bit 36.8 Windows 7 64-bit SSD 3.4.1 64-bit 9.9 Windows 7 64-bit SSD 3.5.0 64-bit 9.5 Ubuntu 14.04 64-bit 2.7.6 64-bit 5.8 Mac OS X 10.9.3 2.7.5 64-bit 3.8 ==================== ============== ============= All of the above tests were done using the fast C version of scandir (source code in ``_scandir.c``). Note that the gains are less than the above on smaller directories and greater on larger directories. This is why ``benchmark.py`` creates a test directory tree with a standardized size. The API ------- walk() ~~~~~~ The API for ``scandir.walk()`` is exactly the same as ``os.walk()``, so just `read the Python docs `_. scandir() ~~~~~~~~~ The full docs for ``scandir()`` and the ``DirEntry`` objects it yields are available in the `Python documentation here `_. But below is a brief summary as well. scandir(path='.') -> iterator of DirEntry objects for given path Like ``listdir``, ``scandir`` calls the operating system's directory iteration system calls to get the names of the files in the given ``path``, but it's different from ``listdir`` in two ways: * Instead of returning bare filename strings, it returns lightweight ``DirEntry`` objects that hold the filename string and provide simple methods that allow access to the additional data the operating system may have returned. * It returns a generator instead of a list, so that ``scandir`` acts as a true iterator instead of returning the full list immediately. ``scandir()`` yields a ``DirEntry`` object for each file and sub-directory in ``path``. Just like ``listdir``, the ``'.'`` and ``'..'`` pseudo-directories are skipped, and the entries are yielded in system-dependent order. Each ``DirEntry`` object has the following attributes and methods: * ``name``: the entry's filename, relative to the scandir ``path`` argument (corresponds to the return values of ``os.listdir``) * ``path``: the entry's full path name (not necessarily an absolute path) -- the equivalent of ``os.path.join(scandir_path, entry.name)`` * ``is_dir(*, follow_symlinks=True)``: similar to ``pathlib.Path.is_dir()``, but the return value is cached on the ``DirEntry`` object; doesn't require a system call in most cases; don't follow symbolic links if ``follow_symlinks`` is False * ``is_file(*, follow_symlinks=True)``: similar to ``pathlib.Path.is_file()``, but the return value is cached on the ``DirEntry`` object; doesn't require a system call in most cases; don't follow symbolic links if ``follow_symlinks`` is False * ``is_symlink()``: similar to ``pathlib.Path.is_symlink()``, but the return value is cached on the ``DirEntry`` object; doesn't require a system call in most cases * ``stat(*, follow_symlinks=True)``: like ``os.stat()``, but the return value is cached on the ``DirEntry`` object; does not require a system call on Windows (except for symlinks); don't follow symbolic links (like ``os.lstat()``) if ``follow_symlinks`` is False * ``inode()``: return the inode number of the entry; the return value is cached on the ``DirEntry`` object Here's a very simple example of ``scandir()`` showing use of the ``DirEntry.name`` attribute and the ``DirEntry.is_dir()`` method: .. code-block:: python def subdirs(path): """Yield directory names not starting with '.' under given path.""" for entry in os.scandir(path): if not entry.name.startswith('.') and entry.is_dir(): yield entry.name This ``subdirs()`` function will be significantly faster with scandir than ``os.listdir()`` and ``os.path.isdir()`` on both Windows and POSIX systems, especially on medium-sized or large directories. Further reading --------------- * `The Python docs for scandir `_ * `PEP 471 `_, the (now-accepted) Python Enhancement Proposal that proposed adding ``scandir`` to the standard library -- a lot of details here, including rejected ideas and previous discussion Flames, comments, bug reports ----------------------------- Please send flames, comments, and questions about scandir to Ben Hoyt: http://benhoyt.com/ File bug reports for the version in the Python 3.5 standard library `here `_, or file bug reports or feature requests for this module at the GitHub project page: https://github.com/benhoyt/scandir PKx"TW iiU__virtualenv__/scandir-1.10.0-cp310-cp310-linux_x86_64/scandir-1.10.0.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.1) Root-Is-Purelib: false Tag: cp310-cp310-linux_x86_64 PKx"T9]__virtualenv__/scandir-1.10.0-cp310-cp310-linux_x86_64/scandir-1.10.0.dist-info/top_level.txt_scandir scandir PKx"T1]{V__virtualenv__/scandir-1.10.0-cp310-cp310-linux_x86_64/scandir-1.10.0.dist-info/RECORDscandir.py,sha256=97C2AQInuKk-Phb3aXM7fJomhc-00pZMcBur23NUmrE,24827 scandir-1.10.0.dist-info/LICENSE.txt,sha256=peL73COXREGdKUB828knk8TZwdlWwXT3y3-W-m0FjIY,1464 scandir-1.10.0.dist-info/METADATA,sha256=BuKVp0Sn8CSvG1Ayp7tLOjyg4zrwWbUFxrUNz439u6U,9585 scandir-1.10.0.dist-info/WHEEL,sha256=nTy_Z8ivGEB6qFwVLg7_h6rq0Jt0JU5Pz2cL2_FjSMQ,105 scandir-1.10.0.dist-info/top_level.txt,sha256=Ixze5mNjmis99ql7JEtAYc9-djJMbfRx-FFw3R_zZf8,17 scandir-1.10.0.dist-info/RECORD,, PKx"T|BBF__virtualenv__/contextlib2-0.6.0.post1-py2.py3-none-any/contextlib2.py"""contextlib2 - backports and enhancements to the contextlib module""" import abc import sys import warnings from collections import deque from functools import wraps __all__ = ["contextmanager", "closing", "nullcontext", "AbstractContextManager", "ContextDecorator", "ExitStack", "redirect_stdout", "redirect_stderr", "suppress"] # Backwards compatibility __all__ += ["ContextStack"] # Backport abc.ABC if sys.version_info[:2] >= (3, 4): _abc_ABC = abc.ABC else: _abc_ABC = abc.ABCMeta('ABC', (object,), {'__slots__': ()}) # Backport classic class MRO def _classic_mro(C, result): if C in result: return result.append(C) for B in C.__bases__: _classic_mro(B, result) return result # Backport _collections_abc._check_methods def _check_methods(C, *methods): try: mro = C.__mro__ except AttributeError: mro = tuple(_classic_mro(C, [])) for method in methods: for B in mro: if method in B.__dict__: if B.__dict__[method] is None: return NotImplemented break else: return NotImplemented return True class AbstractContextManager(_abc_ABC): """An abstract base class for context managers.""" def __enter__(self): """Return `self` upon entering the runtime context.""" return self @abc.abstractmethod def __exit__(self, exc_type, exc_value, traceback): """Raise any exception triggered within the runtime context.""" return None @classmethod def __subclasshook__(cls, C): """Check whether subclass is considered a subclass of this ABC.""" if cls is AbstractContextManager: return _check_methods(C, "__enter__", "__exit__") return NotImplemented class ContextDecorator(object): """A base class or mixin that enables context managers to work as decorators.""" def refresh_cm(self): """Returns the context manager used to actually wrap the call to the decorated function. The default implementation just returns *self*. Overriding this method allows otherwise one-shot context managers like _GeneratorContextManager to support use as decorators via implicit recreation. DEPRECATED: refresh_cm was never added to the standard library's ContextDecorator API """ warnings.warn("refresh_cm was never added to the standard library", DeprecationWarning) return self._recreate_cm() def _recreate_cm(self): """Return a recreated instance of self. Allows an otherwise one-shot context manager like _GeneratorContextManager to support use as a decorator via implicit recreation. This is a private interface just for _GeneratorContextManager. See issue #11647 for details. """ return self def __call__(self, func): @wraps(func) def inner(*args, **kwds): with self._recreate_cm(): return func(*args, **kwds) return inner class _GeneratorContextManager(ContextDecorator): """Helper for @contextmanager decorator.""" def __init__(self, func, args, kwds): self.gen = func(*args, **kwds) self.func, self.args, self.kwds = func, args, kwds # Issue 19330: ensure context manager instances have good docstrings doc = getattr(func, "__doc__", None) if doc is None: doc = type(self).__doc__ self.__doc__ = doc # Unfortunately, this still doesn't provide good help output when # inspecting the created context manager instances, since pydoc # currently bypasses the instance docstring and shows the docstring # for the class instead. # See http://bugs.python.org/issue19404 for more details. def _recreate_cm(self): # _GCM instances are one-shot context managers, so the # CM must be recreated each time a decorated function is # called return self.__class__(self.func, self.args, self.kwds) def __enter__(self): try: return next(self.gen) except StopIteration: raise RuntimeError("generator didn't yield") def __exit__(self, type, value, traceback): if type is None: try: next(self.gen) except StopIteration: return else: raise RuntimeError("generator didn't stop") else: if value is None: # Need to force instantiation so we can reliably # tell if we get the same exception back value = type() try: self.gen.throw(type, value, traceback) raise RuntimeError("generator didn't stop after throw()") except StopIteration as exc: # Suppress StopIteration *unless* it's the same exception that # was passed to throw(). This prevents a StopIteration # raised inside the "with" statement from being suppressed. return exc is not value except RuntimeError as exc: # Don't re-raise the passed in exception if exc is value: return False # Likewise, avoid suppressing if a StopIteration exception # was passed to throw() and later wrapped into a RuntimeError # (see PEP 479). if _HAVE_EXCEPTION_CHAINING and exc.__cause__ is value: return False raise except: # only re-raise if it's *not* the exception that was # passed to throw(), because __exit__() must not raise # an exception unless __exit__() itself failed. But throw() # has to raise the exception to signal propagation, so this # fixes the impedance mismatch between the throw() protocol # and the __exit__() protocol. # if sys.exc_info()[1] is not value: raise def contextmanager(func): """@contextmanager decorator. Typical usage: @contextmanager def some_generator(): try: yield finally: This makes this: with some_generator() as : equivalent to this: try: = finally: """ @wraps(func) def helper(*args, **kwds): return _GeneratorContextManager(func, args, kwds) return helper class closing(object): """Context to automatically close something at the end of a block. Code like this: with closing(.open()) as f: is equivalent to this: f = .open() try: finally: f.close() """ def __init__(self, thing): self.thing = thing def __enter__(self): return self.thing def __exit__(self, *exc_info): self.thing.close() class _RedirectStream(object): _stream = None def __init__(self, new_target): self._new_target = new_target # We use a list of old targets to make this CM re-entrant self._old_targets = [] def __enter__(self): self._old_targets.append(getattr(sys, self._stream)) setattr(sys, self._stream, self._new_target) return self._new_target def __exit__(self, exctype, excinst, exctb): setattr(sys, self._stream, self._old_targets.pop()) class redirect_stdout(_RedirectStream): """Context manager for temporarily redirecting stdout to another file. # How to send help() to stderr with redirect_stdout(sys.stderr): help(dir) # How to write help() to a file with open('help.txt', 'w') as f: with redirect_stdout(f): help(pow) """ _stream = "stdout" class redirect_stderr(_RedirectStream): """Context manager for temporarily redirecting stderr to another file.""" _stream = "stderr" class suppress(object): """Context manager to suppress specified exceptions After the exception is suppressed, execution proceeds with the next statement following the with statement. with suppress(FileNotFoundError): os.remove(somefile) # Execution still resumes here if the file was already removed """ def __init__(self, *exceptions): self._exceptions = exceptions def __enter__(self): pass def __exit__(self, exctype, excinst, exctb): # Unlike isinstance and issubclass, CPython exception handling # currently only looks at the concrete type hierarchy (ignoring # the instance and subclass checking hooks). While Guido considers # that a bug rather than a feature, it's a fairly hard one to fix # due to various internal implementation details. suppress provides # the simpler issubclass based semantics, rather than trying to # exactly reproduce the limitations of the CPython interpreter. # # See http://bugs.python.org/issue12029 for more details return exctype is not None and issubclass(exctype, self._exceptions) # Context manipulation is Python 3 only _HAVE_EXCEPTION_CHAINING = sys.version_info[0] >= 3 if _HAVE_EXCEPTION_CHAINING: def _make_context_fixer(frame_exc): def _fix_exception_context(new_exc, old_exc): # Context may not be correct, so find the end of the chain while 1: exc_context = new_exc.__context__ if exc_context is old_exc: # Context is already set correctly (see issue 20317) return if exc_context is None or exc_context is frame_exc: break new_exc = exc_context # Change the end of the chain to point to the exception # we expect it to reference new_exc.__context__ = old_exc return _fix_exception_context def _reraise_with_existing_context(exc_details): try: # bare "raise exc_details[1]" replaces our carefully # set-up context fixed_ctx = exc_details[1].__context__ raise exc_details[1] except BaseException: exc_details[1].__context__ = fixed_ctx raise else: # No exception context in Python 2 def _make_context_fixer(frame_exc): return lambda new_exc, old_exc: None # Use 3 argument raise in Python 2, # but use exec to avoid SyntaxError in Python 3 def _reraise_with_existing_context(exc_details): exc_type, exc_value, exc_tb = exc_details exec("raise exc_type, exc_value, exc_tb") # Handle old-style classes if they exist try: from types import InstanceType except ImportError: # Python 3 doesn't have old-style classes _get_type = type else: # Need to handle old-style context managers on Python 2 def _get_type(obj): obj_type = type(obj) if obj_type is InstanceType: return obj.__class__ # Old-style class return obj_type # New-style class # Inspired by discussions on http://bugs.python.org/issue13585 class ExitStack(object): """Context manager for dynamic management of a stack of exit callbacks For example: with ExitStack() as stack: files = [stack.enter_context(open(fname)) for fname in filenames] # All opened files will automatically be closed at the end of # the with statement, even if attempts to open files later # in the list raise an exception """ def __init__(self): self._exit_callbacks = deque() def pop_all(self): """Preserve the context stack by transferring it to a new instance""" new_stack = type(self)() new_stack._exit_callbacks = self._exit_callbacks self._exit_callbacks = deque() return new_stack def _push_cm_exit(self, cm, cm_exit): """Helper to correctly register callbacks to __exit__ methods""" def _exit_wrapper(*exc_details): return cm_exit(cm, *exc_details) _exit_wrapper.__self__ = cm self.push(_exit_wrapper) def push(self, exit): """Registers a callback with the standard __exit__ method signature Can suppress exceptions the same way __exit__ methods can. Also accepts any object with an __exit__ method (registering a call to the method instead of the object itself) """ # We use an unbound method rather than a bound method to follow # the standard lookup behaviour for special methods _cb_type = _get_type(exit) try: exit_method = _cb_type.__exit__ except AttributeError: # Not a context manager, so assume its a callable self._exit_callbacks.append(exit) else: self._push_cm_exit(exit, exit_method) return exit # Allow use as a decorator def callback(self, callback, *args, **kwds): """Registers an arbitrary callback and arguments. Cannot suppress exceptions. """ def _exit_wrapper(exc_type, exc, tb): callback(*args, **kwds) # We changed the signature, so using @wraps is not appropriate, but # setting __wrapped__ may still help with introspection _exit_wrapper.__wrapped__ = callback self.push(_exit_wrapper) return callback # Allow use as a decorator def enter_context(self, cm): """Enters the supplied context manager If successful, also pushes its __exit__ method as a callback and returns the result of the __enter__ method. """ # We look up the special methods on the type to match the with statement _cm_type = _get_type(cm) _exit = _cm_type.__exit__ result = _cm_type.__enter__(cm) self._push_cm_exit(cm, _exit) return result def close(self): """Immediately unwind the context stack""" self.__exit__(None, None, None) def __enter__(self): return self def __exit__(self, *exc_details): received_exc = exc_details[0] is not None # We manipulate the exception state so it behaves as though # we were actually nesting multiple with statements frame_exc = sys.exc_info()[1] _fix_exception_context = _make_context_fixer(frame_exc) # Callbacks are invoked in LIFO order to match the behaviour of # nested context managers suppressed_exc = False pending_raise = False while self._exit_callbacks: cb = self._exit_callbacks.pop() try: if cb(*exc_details): suppressed_exc = True pending_raise = False exc_details = (None, None, None) except: new_exc_details = sys.exc_info() # simulate the stack of exceptions by setting the context _fix_exception_context(new_exc_details[1], exc_details[1]) pending_raise = True exc_details = new_exc_details if pending_raise: _reraise_with_existing_context(exc_details) return received_exc and suppressed_exc # Preserve backwards compatibility class ContextStack(ExitStack): """Backwards compatibility alias for ExitStack""" def __init__(self): warnings.warn("ContextStack has been renamed to ExitStack", DeprecationWarning) super(ContextStack, self).__init__() def register_exit(self, callback): return self.push(callback) def register(self, callback, *args, **kwds): return self.callback(callback, *args, **kwds) def preserve(self): return self.pop_all() class nullcontext(AbstractContextManager): """Context manager that does no additional processing. Used as a stand-in for a normal context manager, when a particular block of code is only sometimes used with a normal context manager: cm = optional_cm if condition else nullcontext() with cm: # Perform operation, using optional_cm if condition is True """ def __init__(self, enter_result=None): self.enter_result = enter_result def __enter__(self): return self.enter_result def __exit__(self, *excinfo): pass PKx"Te__virtualenv__/contextlib2-0.6.0.post1-py2.py3-none-any/contextlib2-0.6.0.post1.dist-info/LICENSE.txt A. HISTORY OF THE SOFTWARE ========================== contextlib2 is a derivative of the contextlib module distributed by the PSF as part of the Python standard library. According, it is itself redistributed under the PSF license (reproduced in full below). As the contextlib module was added only in Python 2.5, the licenses for earlier Python versions are not applicable and have not been included. Python was created in the early 1990s by Guido van Rossum at Stichting Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands as a successor of a language called ABC. Guido remains Python's principal author, although it includes many contributions from others. In 1995, Guido continued his work on Python at the Corporation for National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) in Reston, Virginia where he released several versions of the software. In May 2000, Guido and the Python core development team moved to BeOpen.com to form the BeOpen PythonLabs team. In October of the same year, the PythonLabs team moved to Digital Creations (now Zope Corporation, see http://www.zope.com). In 2001, the Python Software Foundation (PSF, see http://www.python.org/psf/) was formed, a non-profit organization created specifically to own Python-related Intellectual Property. Zope Corporation is a sponsoring member of the PSF. All Python releases are Open Source (see http://www.opensource.org for the Open Source Definition). Historically, most, but not all, Python releases have also been GPL-compatible; the table below summarizes the various releases that included the contextlib module. Release Derived Year Owner GPL- from compatible? (1) 2.5 2.4 2006 PSF yes 2.5.1 2.5 2007 PSF yes 2.5.2 2.5.1 2008 PSF yes 2.5.3 2.5.2 2008 PSF yes 2.6 2.5 2008 PSF yes 2.6.1 2.6 2008 PSF yes 2.6.2 2.6.1 2009 PSF yes 2.6.3 2.6.2 2009 PSF yes 2.6.4 2.6.3 2009 PSF yes 2.6.5 2.6.4 2010 PSF yes 3.0 2.6 2008 PSF yes 3.0.1 3.0 2009 PSF yes 3.1 3.0.1 2009 PSF yes 3.1.1 3.1 2009 PSF yes 3.1.2 3.1.1 2010 PSF yes 3.1.3 3.1.2 2010 PSF yes 3.1.4 3.1.3 2011 PSF yes 3.2 3.1 2011 PSF yes 3.2.1 3.2 2011 PSF yes 3.2.2 3.2.1 2011 PSF yes 3.3 3.2 2012 PSF yes Footnotes: (1) GPL-compatible doesn't mean that we're distributing Python under the GPL. All Python licenses, unlike the GPL, let you distribute a modified version without making your changes open source. The GPL-compatible licenses make it possible to combine Python with other software that is released under the GPL; the others don't. Thanks to the many outside volunteers who have worked under Guido's direction to make these releases possible. B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON =============================================================== PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 -------------------------------------------- 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Python") in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee. 3. In the event Licensee prepares a derivative work that is based on or incorporates Python or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python. 4. PSF is making Python available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this License Agreement. PKx"T fb__virtualenv__/contextlib2-0.6.0.post1-py2.py3-none-any/contextlib2-0.6.0.post1.dist-info/METADATAMetadata-Version: 2.1 Name: contextlib2 Version: 0.6.0.post1 Summary: Backports and enhancements for the contextlib module Home-page: http://contextlib2.readthedocs.org Author: Nick Coghlan Author-email: ncoghlan@gmail.com License: PSF License Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: License :: OSI Approved :: Python Software Foundation License Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* .. image:: https://jazzband.co/static/img/badge.svg :target: https://jazzband.co/ :alt: Jazzband .. image:: https://readthedocs.org/projects/contextlib2/badge/?version=latest :target: https://contextlib2.readthedocs.org/ :alt: Latest Docs .. image:: https://img.shields.io/travis/jazzband/contextlib2/master.svg :target: http://travis-ci.org/jazzband/contextlib2 .. image:: https://coveralls.io/repos/github/jazzband/contextlib2/badge.svg?branch=master :target: https://coveralls.io/github/jazzband/contextlib2?branch=master .. image:: https://landscape.io/github/jazzband/contextlib2/master/landscape.svg :target: https://landscape.io/github/jazzband/contextlib2/ contextlib2 is a backport of the `standard library's contextlib module `_ to earlier Python versions. It also serves as a real world proving ground for possible future enhancements to the standard library version. Development ----------- contextlib2 has no runtime dependencies, but requires ``unittest2`` for testing on Python 2.x, as well as ``setuptools`` and ``wheel`` to generate universal wheel archives. Local testing is just a matter of running ``python test_contextlib2.py``. You can test against multiple versions of Python with `tox `_:: pip install tox tox Versions currently tested in both tox and Travis CI are: * CPython 2.7 * CPython 3.4 * CPython 3.5 * CPython 3.6 * CPython 3.7 * PyPy * PyPy3 PKx"TFnn___virtualenv__/contextlib2-0.6.0.post1-py2.py3-none-any/contextlib2-0.6.0.post1.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.33.6) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any PKx"TCq g__virtualenv__/contextlib2-0.6.0.post1-py2.py3-none-any/contextlib2-0.6.0.post1.dist-info/top_level.txtcontextlib2 PKx"Tw`__virtualenv__/contextlib2-0.6.0.post1-py2.py3-none-any/contextlib2-0.6.0.post1.dist-info/RECORDcontextlib2.py,sha256=5HjGflUzwWAUfcILhSmC2GqvoYdZZzFzVfIDztHigUs,16915 contextlib2-0.6.0.post1.dist-info/LICENSE.txt,sha256=xqev-sas2tLS3YfS12hDhiSraSYY2x8CvqOxHT85ePA,6054 contextlib2-0.6.0.post1.dist-info/METADATA,sha256=_kBcf3VJkbe-EMyAM1c5t5sRwBFfFu5YcfWCJMgVO1Q,2297 contextlib2-0.6.0.post1.dist-info/WHEEL,sha256=8zNYZbwQSXoB9IfXOjPfeNwvAsALAjffgk27FqvCWbo,110 contextlib2-0.6.0.post1.dist-info/top_level.txt,sha256=RxWWBMkHA_rsw1laXJ8L3yE_fyYaBmvt2bVUvj3WbMg,12 contextlib2-0.6.0.post1.dist-info/RECORD,, PKx"T|C>6,6,O__virtualenv__/singledispatch-3.7.0-py2.py3-none-any/singledispatch/__init__.py#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals __all__ = ['singledispatch', 'singledispatchmethod'] from weakref import WeakKeyDictionary from .helpers import MappingProxyType, get_cache_token, get_type_hints, update_wrapper ################################################################################ ### singledispatch() - single-dispatch generic function decorator ################################################################################ def _c3_merge(sequences): """Merges MROs in *sequences* to a single MRO using the C3 algorithm. Adapted from http://www.python.org/download/releases/2.3/mro/. """ result = [] while True: sequences = [s for s in sequences if s] # purge empty sequences if not sequences: return result for s1 in sequences: # find merge candidates among seq heads candidate = s1[0] for s2 in sequences: if candidate in s2[1:]: candidate = None break # reject the current head, it appears later else: break if candidate is None: raise RuntimeError("Inconsistent hierarchy") result.append(candidate) # remove the chosen candidate for seq in sequences: if seq[0] == candidate: del seq[0] def _c3_mro(cls, abcs=None): """Computes the method resolution order using extended C3 linearization. If no *abcs* are given, the algorithm works exactly like the built-in C3 linearization used for method resolution. If given, *abcs* is a list of abstract base classes that should be inserted into the resulting MRO. Unrelated ABCs are ignored and don't end up in the result. The algorithm inserts ABCs where their functionality is introduced, i.e. issubclass(cls, abc) returns True for the class itself but returns False for all its direct base classes. Implicit ABCs for a given class (either registered or inferred from the presence of a special method like __len__) are inserted directly after the last ABC explicitly listed in the MRO of said class. If two implicit ABCs end up next to each other in the resulting MRO, their ordering depends on the order of types in *abcs*. """ for i, base in enumerate(reversed(cls.__bases__)): if hasattr(base, '__abstractmethods__'): boundary = len(cls.__bases__) - i break # Bases up to the last explicit ABC are considered first. else: boundary = 0 abcs = list(abcs) if abcs else [] explicit_bases = list(cls.__bases__[:boundary]) abstract_bases = [] other_bases = list(cls.__bases__[boundary:]) for base in abcs: if issubclass(cls, base) and not any( issubclass(b, base) for b in cls.__bases__ ): # If *cls* is the class that introduces behaviour described by # an ABC *base*, insert said ABC to its MRO. abstract_bases.append(base) for base in abstract_bases: abcs.remove(base) explicit_c3_mros = [_c3_mro(base, abcs=abcs) for base in explicit_bases] abstract_c3_mros = [_c3_mro(base, abcs=abcs) for base in abstract_bases] other_c3_mros = [_c3_mro(base, abcs=abcs) for base in other_bases] return _c3_merge( [[cls]] + explicit_c3_mros + abstract_c3_mros + other_c3_mros + [explicit_bases] + [abstract_bases] + [other_bases] ) def _compose_mro(cls, types): """Calculates the method resolution order for a given class *cls*. Includes relevant abstract base classes (with their respective bases) from the *types* iterable. Uses a modified C3 linearization algorithm. """ bases = set(cls.__mro__) # Remove entries which are already present in the __mro__ or unrelated. def is_related(typ): return (typ not in bases and hasattr(typ, '__mro__') and issubclass(cls, typ)) types = [n for n in types if is_related(n)] # Remove entries which are strict bases of other entries (they will end up # in the MRO anyway. def is_strict_base(typ): for other in types: if typ != other and typ in other.__mro__: return True return False types = [n for n in types if not is_strict_base(n)] # Subclasses of the ABCs in *types* which are also implemented by # *cls* can be used to stabilize ABC ordering. type_set = set(types) mro = [] for typ in types: found = [] for sub in filter(_safe, typ.__subclasses__()): if sub not in bases and issubclass(cls, sub): found.append([s for s in sub.__mro__ if s in type_set]) if not found: mro.append(typ) continue # Favor subclasses with the biggest number of useful bases found.sort(key=len, reverse=True) for sub in found: for subcls in sub: if subcls not in mro: mro.append(subcls) return _c3_mro(cls, abcs=mro) def _safe(class_): """ Return if the class is safe for testing as subclass. Ref #2. """ return not getattr(class_, '__origin__', None) def _find_impl(cls, registry): """Returns the best matching implementation from *registry* for type *cls*. Where there is no registered implementation for a specific type, its method resolution order is used to find a more generic implementation. Note: if *registry* does not contain an implementation for the base *object* type, this function may return None. """ mro = _compose_mro(cls, registry.keys()) match = None for t in mro: if match is not None: # If *match* is an implicit ABC but there is another unrelated, # equally matching implicit ABC, refuse the temptation to guess. if (t in registry and t not in cls.__mro__ and match not in cls.__mro__ and not issubclass(match, t)): raise RuntimeError("Ambiguous dispatch: {0} or {1}".format( match, t)) break if t in registry: match = t return registry.get(match) def _validate_annotation(annotation): """Determine if an annotation is valid for registration. An annotation is considered valid for use in registration if it is an instance of ``type`` and not a generic type from ``typing``. """ try: # In Python earlier than 3.7, the classes in typing are considered # instances of type, but they invalid for registering single dispatch # functions so check against GenericMeta instead. from typing import GenericMeta valid = not isinstance(annotation, GenericMeta) except ImportError: # In Python 3.7+, classes in typing are not instances of type. valid = isinstance(annotation, type) return valid def singledispatch(func): """Single-dispatch generic function decorator. Transforms a function into a generic function, which can have different behaviours depending upon the type of its first argument. The decorated function acts as the default implementation, and additional implementations can be registered using the register() attribute of the generic function. """ registry = {} dispatch_cache = WeakKeyDictionary() def ns(): pass ns.cache_token = None def dispatch(cls): """generic_func.dispatch(cls) -> Runs the dispatch algorithm to return the best available implementation for the given *cls* registered on *generic_func*. """ if ns.cache_token is not None: current_token = get_cache_token() if ns.cache_token != current_token: dispatch_cache.clear() ns.cache_token = current_token try: impl = dispatch_cache[cls] except KeyError: try: impl = registry[cls] except KeyError: impl = _find_impl(cls, registry) dispatch_cache[cls] = impl return impl def register(cls, func=None): """generic_func.register(cls, func) -> func Registers a new implementation for the given *cls* on a *generic_func*. """ if func is None: if isinstance(cls, type): return lambda f: register(cls, f) ann = getattr(cls, '__annotations__', {}) if not ann: raise TypeError( "Invalid first argument to `register()`: {cls!r}. " "Use either `@register(some_class)` or plain `@register` " "on an annotated function.".format(**locals()) ) func = cls argname, cls = next(iter(get_type_hints(func).items())) if not _validate_annotation(cls): raise TypeError( "Invalid annotation for {argname!r}. " "{cls!r} is not a class.".format(**locals()) ) registry[cls] = func if ns.cache_token is None and hasattr(cls, '__abstractmethods__'): ns.cache_token = get_cache_token() dispatch_cache.clear() return func def wrapper(*args, **kw): if not args: raise TypeError('{0} requires at least ' '1 positional argument'.format(funcname)) return dispatch(args[0].__class__)(*args, **kw) funcname = getattr(func, '__name__', 'singledispatch function') registry[object] = func wrapper.register = register wrapper.dispatch = dispatch wrapper.registry = MappingProxyType(registry) wrapper._clear_cache = dispatch_cache.clear update_wrapper(wrapper, func) return wrapper # Descriptor version class singledispatchmethod(object): """Single-dispatch generic method descriptor. Supports wrapping existing descriptors and handles non-descriptor callables as instance methods. """ def __init__(self, func): if not callable(func) and not hasattr(func, "__get__"): raise TypeError("{!r} is not callable or a descriptor".format(func)) self.dispatcher = singledispatch(func) self.func = func def register(self, cls, method=None): """generic_method.register(cls, func) -> func Registers a new implementation for the given *cls* on a *generic_method*. """ return self.dispatcher.register(cls, func=method) def __get__(self, obj, cls=None): def _method(*args, **kwargs): method = self.dispatcher.dispatch(args[0].__class__) return method.__get__(obj, cls)(*args, **kwargs) _method.__isabstractmethod__ = self.__isabstractmethod__ _method.register = self.register update_wrapper(_method, self.func) return _method @property def __isabstractmethod__(self): return getattr(self.func, '__isabstractmethod__', False) PKx"TuN__virtualenv__/singledispatch-3.7.0-py2.py3-none-any/singledispatch/helpers.py#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals import sys from abc import ABCMeta try: from collections.abc import MutableMapping except ImportError: from collections import MutableMapping try: from collections import UserDict except ImportError: from UserDict import UserDict try: from collections import OrderedDict except ImportError: from ordereddict import OrderedDict try: from thread import get_ident except ImportError: try: from _thread import get_ident except ImportError: from _dummy_thread import get_ident def recursive_repr(fillvalue='...'): 'Decorator to make a repr function return fillvalue for a recursive call' def decorating_function(user_function): repr_running = set() def wrapper(self): key = id(self), get_ident() if key in repr_running: return fillvalue repr_running.add(key) try: result = user_function(self) finally: repr_running.discard(key) return result # Can't use functools.wraps() here because of bootstrap issues wrapper.__module__ = getattr(user_function, '__module__') wrapper.__doc__ = getattr(user_function, '__doc__') wrapper.__name__ = getattr(user_function, '__name__') wrapper.__annotations__ = getattr(user_function, '__annotations__', {}) return wrapper return decorating_function class ChainMap(MutableMapping): ''' A ChainMap groups multiple dicts (or other mappings) together to create a single, updateable view. The underlying mappings are stored in a list. That list is public and can accessed or updated using the *maps* attribute. There is no other state. Lookups search the underlying mappings successively until a key is found. In contrast, writes, updates, and deletions only operate on the first mapping. ''' def __init__(self, *maps): '''Initialize a ChainMap by setting *maps* to the given mappings. If no mappings are provided, a single empty dictionary is used. ''' self.maps = list(maps) or [{}] # always at least one map def __missing__(self, key): raise KeyError(key) def __getitem__(self, key): for mapping in self.maps: try: return mapping[key] # can't use 'key in mapping' with defaultdict except KeyError: pass return self.__missing__(key) # support subclasses that define __missing__ def get(self, key, default=None): return self[key] if key in self else default def __len__(self): return len(set().union(*self.maps)) # reuses stored hash values if possible def __iter__(self): return iter(set().union(*self.maps)) def __contains__(self, key): return any(key in m for m in self.maps) @recursive_repr() def __repr__(self): return '{0.__class__.__name__}({1})'.format( self, ', '.join(map(repr, self.maps))) @classmethod def fromkeys(cls, iterable, *args): 'Create a ChainMap with a single dict created from the iterable.' return cls(dict.fromkeys(iterable, *args)) def copy(self): 'New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]' return self.__class__(self.maps[0].copy(), *self.maps[1:]) __copy__ = copy def new_child(self): # like Django's Context.push() 'New ChainMap with a new dict followed by all previous maps.' return self.__class__({}, *self.maps) @property def parents(self): # like Django's Context.pop() 'New ChainMap from maps[1:].' return self.__class__(*self.maps[1:]) def __setitem__(self, key, value): self.maps[0][key] = value def __delitem__(self, key): try: del self.maps[0][key] except KeyError: raise KeyError('Key not found in the first mapping: {!r}'.format(key)) def popitem(self): 'Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.' try: return self.maps[0].popitem() except KeyError: raise KeyError('No keys found in the first mapping.') def pop(self, key, *args): 'Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].' try: return self.maps[0].pop(key, *args) except KeyError: raise KeyError('Key not found in the first mapping: {!r}'.format(key)) def clear(self): 'Clear maps[0], leaving maps[1:] intact.' self.maps[0].clear() class MappingProxyType(UserDict): def __init__(self, data): UserDict.__init__(self) self.data = data try: from abc import get_cache_token except ImportError: def get_cache_token(): return ABCMeta._abc_invalidation_counter class Support(object): def dummy(self): pass def cpython_only(self, func): if 'PyPy' in sys.version: return self.dummy return func def get_type_hints(func): # only import typing if annotation parsing is necessary from typing import get_type_hints return get_type_hints(func) or getattr(func, '__annotations__', {}) WRAPPER_ASSIGNMENTS = ('__module__', '__name__', '__qualname__', '__doc__', '__annotations__') WRAPPER_UPDATES = ('__dict__',) def update_wrapper(wrapper, wrapped, assigned = WRAPPER_ASSIGNMENTS, updated = WRAPPER_UPDATES): """Update a wrapper function to look like the wrapped function wrapper is the function to be updated wrapped is the original function assigned is a tuple naming the attributes assigned directly from the wrapped function to the wrapper function (defaults to functools.WRAPPER_ASSIGNMENTS) updated is a tuple naming the attributes of the wrapper that are updated with the corresponding attribute from the wrapped function (defaults to functools.WRAPPER_UPDATES) """ for attr in assigned: try: value = getattr(wrapped, attr) except AttributeError: pass else: setattr(wrapper, attr, value) for attr in updated: getattr(wrapper, attr).update(getattr(wrapped, attr, {})) # Issue #17482: set __wrapped__ last so we don't inadvertently copy it # from the wrapped function when updating __dict__ wrapper.__wrapped__ = wrapped # Return the wrapper so this can be used as a decorator via partial() return wrapper PKx"TYď[__virtualenv__/singledispatch-3.7.0-py2.py3-none-any/singledispatch-3.7.0.dist-info/LICENSECopyright Jason R. Coombs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PKx"TND*@@\__virtualenv__/singledispatch-3.7.0-py2.py3-none-any/singledispatch-3.7.0.dist-info/METADATAMetadata-Version: 2.1 Name: singledispatch Version: 3.7.0 Summary: Backport functools.singledispatch from Python 3.4 to Python 2.6-3.3. Home-page: https://github.com/jaraco/singledispatch Author: Jason R. Coombs Author-email: jaraco@jaraco.com License: UNKNOWN Keywords: single,dispatch,generic,functions,singledispatch,genericfunctions,decorator,backport Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.6 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.2 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Requires-Python: >=2.6 License-File: LICENSE Requires-Dist: six Requires-Dist: ordereddict ; python_version < "2.7" Provides-Extra: docs Requires-Dist: sphinx ; extra == 'docs' Requires-Dist: jaraco.packaging (>=8.2) ; extra == 'docs' Requires-Dist: rst.linker (>=1.9) ; extra == 'docs' Provides-Extra: testing Requires-Dist: pytest (>=4.6) ; extra == 'testing' Requires-Dist: pytest-flake8 ; extra == 'testing' Requires-Dist: pytest-cov ; extra == 'testing' Requires-Dist: pytest-black (>=0.3.7) ; (platform_python_implementation != "PyPy") and extra == 'testing' Requires-Dist: unittest2 ; (python_version < "3") and extra == 'testing' Requires-Dist: pytest-checkdocs (>=2.4) ; (python_version > "3.6") and extra == 'testing' .. image:: https://img.shields.io/pypi/v/singledispatch.svg :target: `PyPI link`_ .. image:: https://img.shields.io/pypi/pyversions/singledispatch.svg :target: `PyPI link`_ .. _PyPI link: https://pypi.org/project/singledispatch .. image:: https://github.com/jaraco/singledispatch/workflows/tests/badge.svg :target: https://github.com/jaraco/singledispatch/actions?query=workflow%3A%22tests%22 :alt: tests .. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black :alt: Code style: Black .. .. image:: https://readthedocs.org/projects/skeleton/badge/?version=latest .. :target: https://skeleton.readthedocs.io/en/latest/?badge=latest .. image:: https://img.shields.io/badge/skeleton-2021-informational :target: https://blog.jaraco.com/skeleton `PEP 443 `_ proposed to expose a mechanism in the ``functools`` standard library module in Python 3.4 that provides a simple form of generic programming known as single-dispatch generic functions. This library is a backport of this functionality and its evolution. Refer to the `upstream documentation `_ for API guidance. To use the backport, simply use ``from singledispatch import singledispatch, singledispatchmethod`` in place of ``from functools import singledispatch, singledispatchmethod``. Maintenance ----------- This backport is maintained on Github by Jason R. Coombs, one of the members of the core CPython team: * `repository `_ * `issue tracker `_ PKx"TnnY__virtualenv__/singledispatch-3.7.0-py2.py3-none-any/singledispatch-3.7.0.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.37.0) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any PKx"TH@xa__virtualenv__/singledispatch-3.7.0-py2.py3-none-any/singledispatch-3.7.0.dist-info/top_level.txtsingledispatch PKx"T JXLLZ__virtualenv__/singledispatch-3.7.0-py2.py3-none-any/singledispatch-3.7.0.dist-info/RECORDsingledispatch/__init__.py,sha256=k22H3L3_7Mokc49w9P7yv2qLX5IIxYTxdZI_e6Wwm6Y,11318 singledispatch/helpers.py,sha256=zOUbJn-lQ9UMKabSDUgMrDu5Uw-DYaZBRl5DREHED7Y,6941 singledispatch-3.7.0.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050 singledispatch-3.7.0.dist-info/METADATA,sha256=MjNbHOEK8W_657HG55Tzj6D8HNElC9J1bUbs7b_ZYY0,3648 singledispatch-3.7.0.dist-info/WHEEL,sha256=WzZ8cwjh8l0jtULNjYq1Hpr-WCqCRgPr--TX4P5I1Wo,110 singledispatch-3.7.0.dist-info/top_level.txt,sha256=t_1HQQSQKXhafBcgOJoZZ5y-hPzkVV0gIWP2WIjL7JA,15 singledispatch-3.7.0.dist-info/RECORD,, PKx"TK J J5__virtualenv__/typing-3.10.0.0-py2-none-any/typing.pyfrom __future__ import absolute_import, unicode_literals import abc from abc import abstractmethod, abstractproperty import collections import functools import re as stdlib_re # Avoid confusion with the re we export. import sys import types import copy try: import collections.abc as collections_abc except ImportError: import collections as collections_abc # Fallback for PY3.2. # Please keep __all__ alphabetized within each category. __all__ = [ # Super-special typing primitives. 'Any', 'Callable', 'ClassVar', 'Final', 'Generic', 'Literal', 'Optional', 'Protocol', 'Tuple', 'Type', 'TypeVar', 'Union', # ABCs (from collections.abc). 'AbstractSet', # collections.abc.Set. 'GenericMeta', # subclass of abc.ABCMeta and a metaclass # for 'Generic' and ABCs below. 'ByteString', 'Container', 'ContextManager', 'Hashable', 'ItemsView', 'Iterable', 'Iterator', 'KeysView', 'Mapping', 'MappingView', 'MutableMapping', 'MutableSequence', 'MutableSet', 'Sequence', 'Sized', 'ValuesView', # Structural checks, a.k.a. protocols. 'Reversible', 'SupportsAbs', 'SupportsComplex', 'SupportsFloat', 'SupportsIndex', 'SupportsInt', # Concrete collection types. 'Counter', 'Deque', 'Dict', 'DefaultDict', 'List', 'Set', 'FrozenSet', 'NamedTuple', # Not really a type. 'TypedDict', # Not really a type. 'Generator', # One-off things. 'AnyStr', 'cast', 'final', 'get_type_hints', 'NewType', 'no_type_check', 'no_type_check_decorator', 'NoReturn', 'overload', 'runtime_checkable', 'Text', 'TYPE_CHECKING', ] # The pseudo-submodules 're' and 'io' are part of the public # namespace, but excluded from __all__ because they might stomp on # legitimate imports of those modules. def _qualname(x): if sys.version_info[:2] >= (3, 3): return x.__qualname__ else: # Fall back to just name. return x.__name__ def _trim_name(nm): whitelist = ('_TypeAlias', '_ForwardRef', '_TypingBase', '_FinalTypingBase') if nm.startswith('_') and nm not in whitelist: nm = nm[1:] return nm class TypingMeta(type): """Metaclass for most types defined in typing module (not a part of public API). This also defines a dummy constructor (all the work for most typing constructs is done in __new__) and a nicer repr(). """ _is_protocol = False def __new__(cls, name, bases, namespace): return super(TypingMeta, cls).__new__(cls, str(name), bases, namespace) @classmethod def assert_no_subclassing(cls, bases): for base in bases: if isinstance(base, cls): raise TypeError("Cannot subclass %s" % (', '.join(map(_type_repr, bases)) or '()')) def __init__(self, *args, **kwds): pass def _eval_type(self, globalns, localns): """Override this in subclasses to interpret forward references. For example, List['C'] is internally stored as List[_ForwardRef('C')], which should evaluate to List[C], where C is an object found in globalns or localns (searching localns first, of course). """ return self def _get_type_vars(self, tvars): pass def __repr__(self): qname = _trim_name(_qualname(self)) return '%s.%s' % (self.__module__, qname) class _TypingBase(object): """Internal indicator of special typing constructs.""" __metaclass__ = TypingMeta __slots__ = ('__weakref__',) def __init__(self, *args, **kwds): pass def __new__(cls, *args, **kwds): """Constructor. This only exists to give a better error message in case someone tries to subclass a special typing object (not a good idea). """ if (len(args) == 3 and isinstance(args[0], str) and isinstance(args[1], tuple)): # Close enough. raise TypeError("Cannot subclass %r" % cls) return super(_TypingBase, cls).__new__(cls) # Things that are not classes also need these. def _eval_type(self, globalns, localns): return self def _get_type_vars(self, tvars): pass def __repr__(self): cls = type(self) qname = _trim_name(_qualname(cls)) return '%s.%s' % (cls.__module__, qname) def __call__(self, *args, **kwds): raise TypeError("Cannot instantiate %r" % type(self)) class _FinalTypingBase(_TypingBase): """Internal mix-in class to prevent instantiation. Prevents instantiation unless _root=True is given in class call. It is used to create pseudo-singleton instances Any, Union, Optional, etc. """ __slots__ = () def __new__(cls, *args, **kwds): self = super(_FinalTypingBase, cls).__new__(cls, *args, **kwds) if '_root' in kwds and kwds['_root'] is True: return self raise TypeError("Cannot instantiate %r" % cls) def __reduce__(self): return _trim_name(type(self).__name__) class _ForwardRef(_TypingBase): """Internal wrapper to hold a forward reference.""" __slots__ = ('__forward_arg__', '__forward_code__', '__forward_evaluated__', '__forward_value__') def __init__(self, arg): super(_ForwardRef, self).__init__(arg) if not isinstance(arg, basestring): raise TypeError('Forward reference must be a string -- got %r' % (arg,)) try: code = compile(arg, '', 'eval') except SyntaxError: raise SyntaxError('Forward reference must be an expression -- got %r' % (arg,)) self.__forward_arg__ = arg self.__forward_code__ = code self.__forward_evaluated__ = False self.__forward_value__ = None def _eval_type(self, globalns, localns): if not self.__forward_evaluated__ or localns is not globalns: if globalns is None and localns is None: globalns = localns = {} elif globalns is None: globalns = localns elif localns is None: localns = globalns self.__forward_value__ = _type_check( eval(self.__forward_code__, globalns, localns), "Forward references must evaluate to types.") self.__forward_evaluated__ = True return self.__forward_value__ def __eq__(self, other): if not isinstance(other, _ForwardRef): return NotImplemented return (self.__forward_arg__ == other.__forward_arg__ and self.__forward_value__ == other.__forward_value__) def __hash__(self): return hash((self.__forward_arg__, self.__forward_value__)) def __instancecheck__(self, obj): raise TypeError("Forward references cannot be used with isinstance().") def __subclasscheck__(self, cls): raise TypeError("Forward references cannot be used with issubclass().") def __repr__(self): return '_ForwardRef(%r)' % (self.__forward_arg__,) class _TypeAlias(_TypingBase): """Internal helper class for defining generic variants of concrete types. Note that this is not a type; let's call it a pseudo-type. It cannot be used in instance and subclass checks in parameterized form, i.e. ``isinstance(42, Match[str])`` raises ``TypeError`` instead of returning ``False``. """ __slots__ = ('name', 'type_var', 'impl_type', 'type_checker') def __init__(self, name, type_var, impl_type, type_checker): """Initializer. Args: name: The name, e.g. 'Pattern'. type_var: The type parameter, e.g. AnyStr, or the specific type, e.g. str. impl_type: The implementation type. type_checker: Function that takes an impl_type instance. and returns a value that should be a type_var instance. """ assert isinstance(name, basestring), repr(name) assert isinstance(impl_type, type), repr(impl_type) assert not isinstance(impl_type, TypingMeta), repr(impl_type) assert isinstance(type_var, (type, _TypingBase)), repr(type_var) self.name = name self.type_var = type_var self.impl_type = impl_type self.type_checker = type_checker def __repr__(self): return "%s[%s]" % (self.name, _type_repr(self.type_var)) def __getitem__(self, parameter): if not isinstance(self.type_var, TypeVar): raise TypeError("%s cannot be further parameterized." % self) if self.type_var.__constraints__ and isinstance(parameter, type): if not issubclass(parameter, self.type_var.__constraints__): raise TypeError("%s is not a valid substitution for %s." % (parameter, self.type_var)) if isinstance(parameter, TypeVar) and parameter is not self.type_var: raise TypeError("%s cannot be re-parameterized." % self) return self.__class__(self.name, parameter, self.impl_type, self.type_checker) def __eq__(self, other): if not isinstance(other, _TypeAlias): return NotImplemented return self.name == other.name and self.type_var == other.type_var def __hash__(self): return hash((self.name, self.type_var)) def __instancecheck__(self, obj): if not isinstance(self.type_var, TypeVar): raise TypeError("Parameterized type aliases cannot be used " "with isinstance().") return isinstance(obj, self.impl_type) def __subclasscheck__(self, cls): if not isinstance(self.type_var, TypeVar): raise TypeError("Parameterized type aliases cannot be used " "with issubclass().") return issubclass(cls, self.impl_type) def _get_type_vars(types, tvars): for t in types: if isinstance(t, TypingMeta) or isinstance(t, _TypingBase): t._get_type_vars(tvars) def _type_vars(types): tvars = [] _get_type_vars(types, tvars) return tuple(tvars) def _eval_type(t, globalns, localns): if isinstance(t, TypingMeta) or isinstance(t, _TypingBase): return t._eval_type(globalns, localns) return t def _type_check(arg, msg): """Check that the argument is a type, and return it (internal helper). As a special case, accept None and return type(None) instead. Also, _TypeAlias instances (e.g. Match, Pattern) are acceptable. The msg argument is a human-readable error message, e.g. "Union[arg, ...]: arg should be a type." We append the repr() of the actual value (truncated to 100 chars). """ if arg is None: return type(None) if isinstance(arg, basestring): arg = _ForwardRef(arg) if ( isinstance(arg, _TypingBase) and type(arg).__name__ == '_ClassVar' or not isinstance(arg, (type, _TypingBase)) and not callable(arg) ): raise TypeError(msg + " Got %.100r." % (arg,)) # Bare Union etc. are not valid as type arguments if ( type(arg).__name__ in ('_Union', '_Optional') and not getattr(arg, '__origin__', None) or isinstance(arg, TypingMeta) and arg._gorg in (Generic, Protocol) ): raise TypeError("Plain %s is not valid as type argument" % arg) return arg def _type_repr(obj): """Return the repr() of an object, special-casing types (internal helper). If obj is a type, we return a shorter version than the default type.__repr__, based on the module and qualified name, which is typically enough to uniquely identify a type. For everything else, we fall back on repr(obj). """ if isinstance(obj, type) and not isinstance(obj, TypingMeta): if obj.__module__ == '__builtin__': return _qualname(obj) return '%s.%s' % (obj.__module__, _qualname(obj)) if obj is Ellipsis: return '...' if isinstance(obj, types.FunctionType): return obj.__name__ return repr(obj) class ClassVarMeta(TypingMeta): """Metaclass for _ClassVar""" def __new__(cls, name, bases, namespace): cls.assert_no_subclassing(bases) self = super(ClassVarMeta, cls).__new__(cls, name, bases, namespace) return self class _ClassVar(_FinalTypingBase): """Special type construct to mark class variables. An annotation wrapped in ClassVar indicates that a given attribute is intended to be used as a class variable and should not be set on instances of that class. Usage:: class Starship: stats = {} # type: ClassVar[Dict[str, int]] # class variable damage = 10 # type: int # instance variable ClassVar accepts only types and cannot be further subscribed. Note that ClassVar is not a class itself, and should not be used with isinstance() or issubclass(). """ __metaclass__ = ClassVarMeta __slots__ = ('__type__',) def __init__(self, tp=None, _root=False): self.__type__ = tp def __getitem__(self, item): cls = type(self) if self.__type__ is None: return cls(_type_check(item, '{} accepts only types.'.format(cls.__name__[1:])), _root=True) raise TypeError('{} cannot be further subscripted' .format(cls.__name__[1:])) def _eval_type(self, globalns, localns): return type(self)(_eval_type(self.__type__, globalns, localns), _root=True) def __repr__(self): r = super(_ClassVar, self).__repr__() if self.__type__ is not None: r += '[{}]'.format(_type_repr(self.__type__)) return r def __hash__(self): return hash((type(self).__name__, self.__type__)) def __eq__(self, other): if not isinstance(other, _ClassVar): return NotImplemented if self.__type__ is not None: return self.__type__ == other.__type__ return self is other ClassVar = _ClassVar(_root=True) class _FinalMeta(TypingMeta): """Metaclass for _Final""" def __new__(cls, name, bases, namespace): cls.assert_no_subclassing(bases) self = super(_FinalMeta, cls).__new__(cls, name, bases, namespace) return self class _Final(_FinalTypingBase): """A special typing construct to indicate that a name cannot be re-assigned or overridden in a subclass. For example: MAX_SIZE: Final = 9000 MAX_SIZE += 1 # Error reported by type checker class Connection: TIMEOUT: Final[int] = 10 class FastConnector(Connection): TIMEOUT = 1 # Error reported by type checker There is no runtime checking of these properties. """ __metaclass__ = _FinalMeta __slots__ = ('__type__',) def __init__(self, tp=None, **kwds): self.__type__ = tp def __getitem__(self, item): cls = type(self) if self.__type__ is None: return cls(_type_check(item, '{} accepts only single type.'.format(cls.__name__[1:])), _root=True) raise TypeError('{} cannot be further subscripted' .format(cls.__name__[1:])) def _eval_type(self, globalns, localns): new_tp = _eval_type(self.__type__, globalns, localns) if new_tp == self.__type__: return self return type(self)(new_tp, _root=True) def __repr__(self): r = super(_Final, self).__repr__() if self.__type__ is not None: r += '[{}]'.format(_type_repr(self.__type__)) return r def __hash__(self): return hash((type(self).__name__, self.__type__)) def __eq__(self, other): if not isinstance(other, _Final): return NotImplemented if self.__type__ is not None: return self.__type__ == other.__type__ return self is other Final = _Final(_root=True) def final(f): """This decorator can be used to indicate to type checkers that the decorated method cannot be overridden, and decorated class cannot be subclassed. For example: class Base: @final def done(self) -> None: ... class Sub(Base): def done(self) -> None: # Error reported by type checker ... @final class Leaf: ... class Other(Leaf): # Error reported by type checker ... There is no runtime checking of these properties. """ return f class _LiteralMeta(TypingMeta): """Metaclass for _Literal""" def __new__(cls, name, bases, namespace): cls.assert_no_subclassing(bases) self = super(_LiteralMeta, cls).__new__(cls, name, bases, namespace) return self class _Literal(_FinalTypingBase): """A type that can be used to indicate to type checkers that the corresponding value has a value literally equivalent to the provided parameter. For example: var: Literal[4] = 4 The type checker understands that 'var' is literally equal to the value 4 and no other value. Literal[...] cannot be subclassed. There is no runtime checking verifying that the parameter is actually a value instead of a type. """ __metaclass__ = _LiteralMeta __slots__ = ('__values__',) def __init__(self, values=None, **kwds): self.__values__ = values def __getitem__(self, item): cls = type(self) if self.__values__ is None: if not isinstance(item, tuple): item = (item,) return cls(values=item, _root=True) raise TypeError('{} cannot be further subscripted' .format(cls.__name__[1:])) def _eval_type(self, globalns, localns): return self def __repr__(self): r = super(_Literal, self).__repr__() if self.__values__ is not None: r += '[{}]'.format(', '.join(map(_type_repr, self.__values__))) return r def __hash__(self): return hash((type(self).__name__, self.__values__)) def __eq__(self, other): if not isinstance(other, _Literal): return NotImplemented if self.__values__ is not None: return self.__values__ == other.__values__ return self is other Literal = _Literal(_root=True) class AnyMeta(TypingMeta): """Metaclass for Any.""" def __new__(cls, name, bases, namespace): cls.assert_no_subclassing(bases) self = super(AnyMeta, cls).__new__(cls, name, bases, namespace) return self class _Any(_FinalTypingBase): """Special type indicating an unconstrained type. - Any is compatible with every type. - Any assumed to have all methods. - All values assumed to be instances of Any. Note that all the above statements are true from the point of view of static type checkers. At runtime, Any should not be used with instance or class checks. """ __metaclass__ = AnyMeta __slots__ = () def __instancecheck__(self, obj): raise TypeError("Any cannot be used with isinstance().") def __subclasscheck__(self, cls): raise TypeError("Any cannot be used with issubclass().") Any = _Any(_root=True) class NoReturnMeta(TypingMeta): """Metaclass for NoReturn.""" def __new__(cls, name, bases, namespace): cls.assert_no_subclassing(bases) self = super(NoReturnMeta, cls).__new__(cls, name, bases, namespace) return self class _NoReturn(_FinalTypingBase): """Special type indicating functions that never return. Example:: from typing import NoReturn def stop() -> NoReturn: raise Exception('no way') This type is invalid in other positions, e.g., ``List[NoReturn]`` will fail in static type checkers. """ __metaclass__ = NoReturnMeta __slots__ = () def __instancecheck__(self, obj): raise TypeError("NoReturn cannot be used with isinstance().") def __subclasscheck__(self, cls): raise TypeError("NoReturn cannot be used with issubclass().") NoReturn = _NoReturn(_root=True) class TypeVarMeta(TypingMeta): def __new__(cls, name, bases, namespace): cls.assert_no_subclassing(bases) return super(TypeVarMeta, cls).__new__(cls, name, bases, namespace) class TypeVar(_TypingBase): """Type variable. Usage:: T = TypeVar('T') # Can be anything A = TypeVar('A', str, bytes) # Must be str or bytes Type variables exist primarily for the benefit of static type checkers. They serve as the parameters for generic types as well as for generic function definitions. See class Generic for more information on generic types. Generic functions work as follows: def repeat(x: T, n: int) -> List[T]: '''Return a list containing n references to x.''' return [x]*n def longest(x: A, y: A) -> A: '''Return the longest of two strings.''' return x if len(x) >= len(y) else y The latter example's signature is essentially the overloading of (str, str) -> str and (bytes, bytes) -> bytes. Also note that if the arguments are instances of some subclass of str, the return type is still plain str. At runtime, isinstance(x, T) and issubclass(C, T) will raise TypeError. Type variables defined with covariant=True or contravariant=True can be used do declare covariant or contravariant generic types. See PEP 484 for more details. By default generic types are invariant in all type variables. Type variables can be introspected. e.g.: T.__name__ == 'T' T.__constraints__ == () T.__covariant__ == False T.__contravariant__ = False A.__constraints__ == (str, bytes) """ __metaclass__ = TypeVarMeta __slots__ = ('__name__', '__bound__', '__constraints__', '__covariant__', '__contravariant__') def __init__(self, name, *constraints, **kwargs): super(TypeVar, self).__init__(name, *constraints, **kwargs) bound = kwargs.get('bound', None) covariant = kwargs.get('covariant', False) contravariant = kwargs.get('contravariant', False) self.__name__ = name if covariant and contravariant: raise ValueError("Bivariant types are not supported.") self.__covariant__ = bool(covariant) self.__contravariant__ = bool(contravariant) if constraints and bound is not None: raise TypeError("Constraints cannot be combined with bound=...") if constraints and len(constraints) == 1: raise TypeError("A single constraint is not allowed") msg = "TypeVar(name, constraint, ...): constraints must be types." self.__constraints__ = tuple(_type_check(t, msg) for t in constraints) if bound: self.__bound__ = _type_check(bound, "Bound must be a type.") else: self.__bound__ = None def _get_type_vars(self, tvars): if self not in tvars: tvars.append(self) def __repr__(self): if self.__covariant__: prefix = '+' elif self.__contravariant__: prefix = '-' else: prefix = '~' return prefix + self.__name__ def __instancecheck__(self, instance): raise TypeError("Type variables cannot be used with isinstance().") def __subclasscheck__(self, cls): raise TypeError("Type variables cannot be used with issubclass().") # Some unconstrained type variables. These are used by the container types. # (These are not for export.) T = TypeVar('T') # Any type. KT = TypeVar('KT') # Key type. VT = TypeVar('VT') # Value type. T_co = TypeVar('T_co', covariant=True) # Any type covariant containers. V_co = TypeVar('V_co', covariant=True) # Any type covariant containers. VT_co = TypeVar('VT_co', covariant=True) # Value type covariant containers. T_contra = TypeVar('T_contra', contravariant=True) # Ditto contravariant. # A useful type variable with constraints. This represents string types. # (This one *is* for export!) AnyStr = TypeVar('AnyStr', bytes, unicode) def _replace_arg(arg, tvars, args): """An internal helper function: replace arg if it is a type variable found in tvars with corresponding substitution from args or with corresponding substitution sub-tree if arg is a generic type. """ if tvars is None: tvars = [] if hasattr(arg, '_subs_tree') and isinstance(arg, (GenericMeta, _TypingBase)): return arg._subs_tree(tvars, args) if isinstance(arg, TypeVar): for i, tvar in enumerate(tvars): if arg == tvar: return args[i] return arg # Special typing constructs Union, Optional, Generic, Callable and Tuple # use three special attributes for internal bookkeeping of generic types: # * __parameters__ is a tuple of unique free type parameters of a generic # type, for example, Dict[T, T].__parameters__ == (T,); # * __origin__ keeps a reference to a type that was subscripted, # e.g., Union[T, int].__origin__ == Union; # * __args__ is a tuple of all arguments used in subscripting, # e.g., Dict[T, int].__args__ == (T, int). def _subs_tree(cls, tvars=None, args=None): """An internal helper function: calculate substitution tree for generic cls after replacing its type parameters with substitutions in tvars -> args (if any). Repeat the same following __origin__'s. Return a list of arguments with all possible substitutions performed. Arguments that are generic classes themselves are represented as tuples (so that no new classes are created by this function). For example: _subs_tree(List[Tuple[int, T]][str]) == [(Tuple, int, str)] """ if cls.__origin__ is None: return cls # Make of chain of origins (i.e. cls -> cls.__origin__) current = cls.__origin__ orig_chain = [] while current.__origin__ is not None: orig_chain.append(current) current = current.__origin__ # Replace type variables in __args__ if asked ... tree_args = [] for arg in cls.__args__: tree_args.append(_replace_arg(arg, tvars, args)) # ... then continue replacing down the origin chain. for ocls in orig_chain: new_tree_args = [] for arg in ocls.__args__: new_tree_args.append(_replace_arg(arg, ocls.__parameters__, tree_args)) tree_args = new_tree_args return tree_args def _remove_dups_flatten(parameters): """An internal helper for Union creation and substitution: flatten Union's among parameters, then remove duplicates and strict subclasses. """ # Flatten out Union[Union[...], ...]. params = [] for p in parameters: if isinstance(p, _Union) and p.__origin__ is Union: params.extend(p.__args__) elif isinstance(p, tuple) and len(p) > 0 and p[0] is Union: params.extend(p[1:]) else: params.append(p) # Weed out strict duplicates, preserving the first of each occurrence. all_params = set(params) if len(all_params) < len(params): new_params = [] for t in params: if t in all_params: new_params.append(t) all_params.remove(t) params = new_params assert not all_params, all_params # Weed out subclasses. # E.g. Union[int, Employee, Manager] == Union[int, Employee]. # If object is present it will be sole survivor among proper classes. # Never discard type variables. # (In particular, Union[str, AnyStr] != AnyStr.) all_params = set(params) for t1 in params: if not isinstance(t1, type): continue if any(isinstance(t2, type) and issubclass(t1, t2) for t2 in all_params - {t1} if not (isinstance(t2, GenericMeta) and t2.__origin__ is not None)): all_params.remove(t1) return tuple(t for t in params if t in all_params) def _check_generic(cls, parameters): # Check correct count for parameters of a generic cls (internal helper). if not cls.__parameters__: raise TypeError("%s is not a generic class" % repr(cls)) alen = len(parameters) elen = len(cls.__parameters__) if alen != elen: raise TypeError("Too %s parameters for %s; actual %s, expected %s" % ("many" if alen > elen else "few", repr(cls), alen, elen)) _cleanups = [] def _tp_cache(func): maxsize = 128 cache = {} _cleanups.append(cache.clear) @functools.wraps(func) def inner(*args): key = args try: return cache[key] except TypeError: # Assume it's an unhashable argument. return func(*args) except KeyError: value = func(*args) if len(cache) >= maxsize: # If the cache grows too much, just start over. cache.clear() cache[key] = value return value return inner class UnionMeta(TypingMeta): """Metaclass for Union.""" def __new__(cls, name, bases, namespace): cls.assert_no_subclassing(bases) return super(UnionMeta, cls).__new__(cls, name, bases, namespace) class _Union(_FinalTypingBase): """Union type; Union[X, Y] means either X or Y. To define a union, use e.g. Union[int, str]. Details: - The arguments must be types and there must be at least one. - None as an argument is a special case and is replaced by type(None). - Unions of unions are flattened, e.g.:: Union[Union[int, str], float] == Union[int, str, float] - Unions of a single argument vanish, e.g.:: Union[int] == int # The constructor actually returns int - Redundant arguments are skipped, e.g.:: Union[int, str, int] == Union[int, str] - When comparing unions, the argument order is ignored, e.g.:: Union[int, str] == Union[str, int] - When two arguments have a subclass relationship, the least derived argument is kept, e.g.:: class Employee: pass class Manager(Employee): pass Union[int, Employee, Manager] == Union[int, Employee] Union[Manager, int, Employee] == Union[int, Employee] Union[Employee, Manager] == Employee - Similar for object:: Union[int, object] == object - You cannot subclass or instantiate a union. - You can use Optional[X] as a shorthand for Union[X, None]. """ __metaclass__ = UnionMeta __slots__ = ('__parameters__', '__args__', '__origin__', '__tree_hash__') def __new__(cls, parameters=None, origin=None, *args, **kwds): self = super(_Union, cls).__new__(cls, parameters, origin, *args, **kwds) if origin is None: self.__parameters__ = None self.__args__ = None self.__origin__ = None self.__tree_hash__ = hash(frozenset(('Union',))) return self if not isinstance(parameters, tuple): raise TypeError("Expected parameters=") if origin is Union: parameters = _remove_dups_flatten(parameters) # It's not a union if there's only one type left. if len(parameters) == 1: return parameters[0] self.__parameters__ = _type_vars(parameters) self.__args__ = parameters self.__origin__ = origin # Pre-calculate the __hash__ on instantiation. # This improves speed for complex substitutions. subs_tree = self._subs_tree() if isinstance(subs_tree, tuple): self.__tree_hash__ = hash(frozenset(subs_tree)) else: self.__tree_hash__ = hash(subs_tree) return self def _eval_type(self, globalns, localns): if self.__args__ is None: return self ev_args = tuple(_eval_type(t, globalns, localns) for t in self.__args__) ev_origin = _eval_type(self.__origin__, globalns, localns) if ev_args == self.__args__ and ev_origin == self.__origin__: # Everything is already evaluated. return self return self.__class__(ev_args, ev_origin, _root=True) def _get_type_vars(self, tvars): if self.__origin__ and self.__parameters__: _get_type_vars(self.__parameters__, tvars) def __repr__(self): if self.__origin__ is None: return super(_Union, self).__repr__() tree = self._subs_tree() if not isinstance(tree, tuple): return repr(tree) return tree[0]._tree_repr(tree) def _tree_repr(self, tree): arg_list = [] for arg in tree[1:]: if not isinstance(arg, tuple): arg_list.append(_type_repr(arg)) else: arg_list.append(arg[0]._tree_repr(arg)) return super(_Union, self).__repr__() + '[%s]' % ', '.join(arg_list) @_tp_cache def __getitem__(self, parameters): if parameters == (): raise TypeError("Cannot take a Union of no types.") if not isinstance(parameters, tuple): parameters = (parameters,) if self.__origin__ is None: msg = "Union[arg, ...]: each arg must be a type." else: msg = "Parameters to generic types must be types." parameters = tuple(_type_check(p, msg) for p in parameters) if self is not Union: _check_generic(self, parameters) return self.__class__(parameters, origin=self, _root=True) def _subs_tree(self, tvars=None, args=None): if self is Union: return Union # Nothing to substitute tree_args = _subs_tree(self, tvars, args) tree_args = _remove_dups_flatten(tree_args) if len(tree_args) == 1: return tree_args[0] # Union of a single type is that type return (Union,) + tree_args def __eq__(self, other): if isinstance(other, _Union): return self.__tree_hash__ == other.__tree_hash__ elif self is not Union: return self._subs_tree() == other else: return self is other def __hash__(self): return self.__tree_hash__ def __instancecheck__(self, obj): raise TypeError("Unions cannot be used with isinstance().") def __subclasscheck__(self, cls): raise TypeError("Unions cannot be used with issubclass().") Union = _Union(_root=True) class OptionalMeta(TypingMeta): """Metaclass for Optional.""" def __new__(cls, name, bases, namespace): cls.assert_no_subclassing(bases) return super(OptionalMeta, cls).__new__(cls, name, bases, namespace) class _Optional(_FinalTypingBase): """Optional type. Optional[X] is equivalent to Union[X, None]. """ __metaclass__ = OptionalMeta __slots__ = () @_tp_cache def __getitem__(self, arg): arg = _type_check(arg, "Optional[t] requires a single type.") return Union[arg, type(None)] Optional = _Optional(_root=True) def _next_in_mro(cls): """Helper for Generic.__new__. Returns the class after the last occurrence of Generic or Generic[...] in cls.__mro__. """ next_in_mro = object # Look for the last occurrence of Generic or Generic[...]. for i, c in enumerate(cls.__mro__[:-1]): if isinstance(c, GenericMeta) and c._gorg is Generic: next_in_mro = cls.__mro__[i + 1] return next_in_mro def _make_subclasshook(cls): """Construct a __subclasshook__ callable that incorporates the associated __extra__ class in subclass checks performed against cls. """ if isinstance(cls.__extra__, abc.ABCMeta): # The logic mirrors that of ABCMeta.__subclasscheck__. # Registered classes need not be checked here because # cls and its extra share the same _abc_registry. def __extrahook__(cls, subclass): res = cls.__extra__.__subclasshook__(subclass) if res is not NotImplemented: return res if cls.__extra__ in getattr(subclass, '__mro__', ()): return True for scls in cls.__extra__.__subclasses__(): if isinstance(scls, GenericMeta): continue if issubclass(subclass, scls): return True return NotImplemented else: # For non-ABC extras we'll just call issubclass(). def __extrahook__(cls, subclass): if cls.__extra__ and issubclass(subclass, cls.__extra__): return True return NotImplemented return classmethod(__extrahook__) class GenericMeta(TypingMeta, abc.ABCMeta): """Metaclass for generic types. This is a metaclass for typing.Generic and generic ABCs defined in typing module. User defined subclasses of GenericMeta can override __new__ and invoke super().__new__. Note that GenericMeta.__new__ has strict rules on what is allowed in its bases argument: * plain Generic is disallowed in bases; * Generic[...] should appear in bases at most once; * if Generic[...] is present, then it should list all type variables that appear in other bases. In addition, type of all generic bases is erased, e.g., C[int] is stripped to plain C. """ def __new__(cls, name, bases, namespace, tvars=None, args=None, origin=None, extra=None, orig_bases=None): """Create a new generic class. GenericMeta.__new__ accepts keyword arguments that are used for internal bookkeeping, therefore an override should pass unused keyword arguments to super(). """ if tvars is not None: # Called from __getitem__() below. assert origin is not None assert all(isinstance(t, TypeVar) for t in tvars), tvars else: # Called from class statement. assert tvars is None, tvars assert args is None, args assert origin is None, origin # Get the full set of tvars from the bases. tvars = _type_vars(bases) # Look for Generic[T1, ..., Tn]. # If found, tvars must be a subset of it. # If not found, tvars is it. # Also check for and reject plain Generic, # and reject multiple Generic[...]. gvars = None for base in bases: if base is Generic: raise TypeError("Cannot inherit from plain Generic") if (isinstance(base, GenericMeta) and base.__origin__ in (Generic, Protocol)): if gvars is not None: raise TypeError( "Cannot inherit from Generic[...] or" " Protocol[...] multiple times.") gvars = base.__parameters__ if gvars is None: gvars = tvars else: tvarset = set(tvars) gvarset = set(gvars) if not tvarset <= gvarset: raise TypeError( "Some type variables (%s) " "are not listed in %s[%s]" % (", ".join(str(t) for t in tvars if t not in gvarset), "Generic" if any(b.__origin__ is Generic for b in bases) else "Protocol", ", ".join(str(g) for g in gvars))) tvars = gvars initial_bases = bases if extra is None: extra = namespace.get('__extra__') if extra is not None and type(extra) is abc.ABCMeta and extra not in bases: bases = (extra,) + bases bases = tuple(b._gorg if isinstance(b, GenericMeta) else b for b in bases) # remove bare Generic from bases if there are other generic bases if any(isinstance(b, GenericMeta) and b is not Generic for b in bases): bases = tuple(b for b in bases if b is not Generic) namespace.update({'__origin__': origin, '__extra__': extra}) self = super(GenericMeta, cls).__new__(cls, name, bases, namespace) super(GenericMeta, self).__setattr__('_gorg', self if not origin else origin._gorg) self.__parameters__ = tvars # Be prepared that GenericMeta will be subclassed by TupleMeta # and CallableMeta, those two allow ..., (), or [] in __args___. self.__args__ = tuple(Ellipsis if a is _TypingEllipsis else () if a is _TypingEmpty else a for a in args) if args else None # Speed hack (https://github.com/python/typing/issues/196). self.__next_in_mro__ = _next_in_mro(self) # Preserve base classes on subclassing (__bases__ are type erased now). if orig_bases is None: self.__orig_bases__ = initial_bases # This allows unparameterized generic collections to be used # with issubclass() and isinstance() in the same way as their # collections.abc counterparts (e.g., isinstance([], Iterable)). if ( '__subclasshook__' not in namespace and extra or # allow overriding getattr(self.__subclasshook__, '__name__', '') == '__extrahook__' ): self.__subclasshook__ = _make_subclasshook(self) if origin and hasattr(origin, '__qualname__'): # Fix for Python 3.2. self.__qualname__ = origin.__qualname__ self.__tree_hash__ = (hash(self._subs_tree()) if origin else super(GenericMeta, self).__hash__()) return self def __init__(self, *args, **kwargs): super(GenericMeta, self).__init__(*args, **kwargs) if isinstance(self.__extra__, abc.ABCMeta): self._abc_registry = self.__extra__._abc_registry self._abc_cache = self.__extra__._abc_cache elif self.__origin__ is not None: self._abc_registry = self.__origin__._abc_registry self._abc_cache = self.__origin__._abc_cache # _abc_negative_cache and _abc_negative_cache_version # realised as descriptors, since GenClass[t1, t2, ...] always # share subclass info with GenClass. # This is an important memory optimization. @property def _abc_negative_cache(self): if isinstance(self.__extra__, abc.ABCMeta): return self.__extra__._abc_negative_cache return self._gorg._abc_generic_negative_cache @_abc_negative_cache.setter def _abc_negative_cache(self, value): if self.__origin__ is None: if isinstance(self.__extra__, abc.ABCMeta): self.__extra__._abc_negative_cache = value else: self._abc_generic_negative_cache = value @property def _abc_negative_cache_version(self): if isinstance(self.__extra__, abc.ABCMeta): return self.__extra__._abc_negative_cache_version return self._gorg._abc_generic_negative_cache_version @_abc_negative_cache_version.setter def _abc_negative_cache_version(self, value): if self.__origin__ is None: if isinstance(self.__extra__, abc.ABCMeta): self.__extra__._abc_negative_cache_version = value else: self._abc_generic_negative_cache_version = value def _get_type_vars(self, tvars): if self.__origin__ and self.__parameters__: _get_type_vars(self.__parameters__, tvars) def _eval_type(self, globalns, localns): ev_origin = (self.__origin__._eval_type(globalns, localns) if self.__origin__ else None) ev_args = tuple(_eval_type(a, globalns, localns) for a in self.__args__) if self.__args__ else None if ev_origin == self.__origin__ and ev_args == self.__args__: return self return self.__class__(self.__name__, self.__bases__, dict(self.__dict__), tvars=_type_vars(ev_args) if ev_args else None, args=ev_args, origin=ev_origin, extra=self.__extra__, orig_bases=self.__orig_bases__) def __repr__(self): if self.__origin__ is None: return super(GenericMeta, self).__repr__() return self._tree_repr(self._subs_tree()) def _tree_repr(self, tree): arg_list = [] for arg in tree[1:]: if arg == (): arg_list.append('()') elif not isinstance(arg, tuple): arg_list.append(_type_repr(arg)) else: arg_list.append(arg[0]._tree_repr(arg)) return super(GenericMeta, self).__repr__() + '[%s]' % ', '.join(arg_list) def _subs_tree(self, tvars=None, args=None): if self.__origin__ is None: return self tree_args = _subs_tree(self, tvars, args) return (self._gorg,) + tuple(tree_args) def __eq__(self, other): if not isinstance(other, GenericMeta): return NotImplemented if self.__origin__ is None or other.__origin__ is None: return self is other return self.__tree_hash__ == other.__tree_hash__ def __hash__(self): return self.__tree_hash__ @_tp_cache def __getitem__(self, params): if not isinstance(params, tuple): params = (params,) if not params and self._gorg is not Tuple: raise TypeError( "Parameter list to %s[...] cannot be empty" % _qualname(self)) msg = "Parameters to generic types must be types." params = tuple(_type_check(p, msg) for p in params) if self in (Generic, Protocol): # Generic can only be subscripted with unique type variables. if not all(isinstance(p, TypeVar) for p in params): raise TypeError( "Parameters to %s[...] must all be type variables" % self.__name__) if len(set(params)) != len(params): raise TypeError( "Parameters to %s[...] must all be unique" % self.__name__) tvars = params args = params elif self in (Tuple, Callable): tvars = _type_vars(params) args = params elif self.__origin__ in (Generic, Protocol): # Can't subscript Generic[...] or Protocol[...]. raise TypeError("Cannot subscript already-subscripted %s" % repr(self)) else: # Subscripting a regular Generic subclass. _check_generic(self, params) tvars = _type_vars(params) args = params prepend = (self,) if self.__origin__ is None else () return self.__class__(self.__name__, prepend + self.__bases__, dict(self.__dict__), tvars=tvars, args=args, origin=self, extra=self.__extra__, orig_bases=self.__orig_bases__) def __subclasscheck__(self, cls): if self.__origin__ is not None: # These should only be modules within the standard library. # singledispatch is an exception, because it's a Python 2 backport # of functools.singledispatch. whitelist = ['abc', 'functools', 'singledispatch'] if (sys._getframe(1).f_globals['__name__'] in whitelist or # The second frame is needed for the case where we came # from _ProtocolMeta.__subclasscheck__. sys._getframe(2).f_globals['__name__'] in whitelist): return False raise TypeError("Parameterized generics cannot be used with class " "or instance checks") if self is Generic: raise TypeError("Class %r cannot be used with class " "or instance checks" % self) return super(GenericMeta, self).__subclasscheck__(cls) def __instancecheck__(self, instance): # Since we extend ABC.__subclasscheck__ and # ABC.__instancecheck__ inlines the cache checking done by the # latter, we must extend __instancecheck__ too. For simplicity # we just skip the cache check -- instance checks for generic # classes are supposed to be rare anyways. if hasattr(instance, "__class__"): return issubclass(instance.__class__, self) return False def __setattr__(self, attr, value): # We consider all the subscripted genrics as proxies for original class if ( attr.startswith('__') and attr.endswith('__') or attr.startswith('_abc_') ): super(GenericMeta, self).__setattr__(attr, value) else: super(GenericMeta, self._gorg).__setattr__(attr, value) def _copy_generic(self): """Hack to work around https://bugs.python.org/issue11480 on Python 2""" return self.__class__(self.__name__, self.__bases__, dict(self.__dict__), self.__parameters__, self.__args__, self.__origin__, self.__extra__, self.__orig_bases__) copy._copy_dispatch[GenericMeta] = _copy_generic # Prevent checks for Generic to crash when defining Generic. Generic = None def _generic_new(base_cls, cls, *args, **kwds): # Assure type is erased on instantiation, # but attempt to store it in __orig_class__ if cls.__origin__ is None: if (base_cls.__new__ is object.__new__ and cls.__init__ is not object.__init__): return base_cls.__new__(cls) else: return base_cls.__new__(cls, *args, **kwds) else: origin = cls._gorg if (base_cls.__new__ is object.__new__ and cls.__init__ is not object.__init__): obj = base_cls.__new__(origin) else: obj = base_cls.__new__(origin, *args, **kwds) try: obj.__orig_class__ = cls except AttributeError: pass obj.__init__(*args, **kwds) return obj class Generic(object): """Abstract base class for generic types. A generic type is typically declared by inheriting from this class parameterized with one or more type variables. For example, a generic mapping type might be defined as:: class Mapping(Generic[KT, VT]): def __getitem__(self, key: KT) -> VT: ... # Etc. This class can then be used as follows:: def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: try: return mapping[key] except KeyError: return default """ __metaclass__ = GenericMeta __slots__ = () def __new__(cls, *args, **kwds): if cls._gorg is Generic: raise TypeError("Type Generic cannot be instantiated; " "it can be used only as a base class") return _generic_new(cls.__next_in_mro__, cls, *args, **kwds) class _TypingEmpty(object): """Internal placeholder for () or []. Used by TupleMeta and CallableMeta to allow empty list/tuple in specific places, without allowing them to sneak in where prohibited. """ class _TypingEllipsis(object): """Internal placeholder for ... (ellipsis).""" class TupleMeta(GenericMeta): """Metaclass for Tuple (internal).""" @_tp_cache def __getitem__(self, parameters): if self.__origin__ is not None or self._gorg is not Tuple: # Normal generic rules apply if this is not the first subscription # or a subscription of a subclass. return super(TupleMeta, self).__getitem__(parameters) if parameters == (): return super(TupleMeta, self).__getitem__((_TypingEmpty,)) if not isinstance(parameters, tuple): parameters = (parameters,) if len(parameters) == 2 and parameters[1] is Ellipsis: msg = "Tuple[t, ...]: t must be a type." p = _type_check(parameters[0], msg) return super(TupleMeta, self).__getitem__((p, _TypingEllipsis)) msg = "Tuple[t0, t1, ...]: each t must be a type." parameters = tuple(_type_check(p, msg) for p in parameters) return super(TupleMeta, self).__getitem__(parameters) def __instancecheck__(self, obj): if self.__args__ is None: return isinstance(obj, tuple) raise TypeError("Parameterized Tuple cannot be used " "with isinstance().") def __subclasscheck__(self, cls): if self.__args__ is None: return issubclass(cls, tuple) raise TypeError("Parameterized Tuple cannot be used " "with issubclass().") copy._copy_dispatch[TupleMeta] = _copy_generic class Tuple(tuple): """Tuple type; Tuple[X, Y] is the cross-product type of X and Y. Example: Tuple[T1, T2] is a tuple of two elements corresponding to type variables T1 and T2. Tuple[int, float, str] is a tuple of an int, a float and a string. To specify a variable-length tuple of homogeneous type, use Tuple[T, ...]. """ __metaclass__ = TupleMeta __extra__ = tuple __slots__ = () def __new__(cls, *args, **kwds): if cls._gorg is Tuple: raise TypeError("Type Tuple cannot be instantiated; " "use tuple() instead") return _generic_new(tuple, cls, *args, **kwds) class CallableMeta(GenericMeta): """ Metaclass for Callable.""" def __repr__(self): if self.__origin__ is None: return super(CallableMeta, self).__repr__() return self._tree_repr(self._subs_tree()) def _tree_repr(self, tree): if self._gorg is not Callable: return super(CallableMeta, self)._tree_repr(tree) # For actual Callable (not its subclass) we override # super(CallableMeta, self)._tree_repr() for nice formatting. arg_list = [] for arg in tree[1:]: if not isinstance(arg, tuple): arg_list.append(_type_repr(arg)) else: arg_list.append(arg[0]._tree_repr(arg)) if arg_list[0] == '...': return repr(tree[0]) + '[..., %s]' % arg_list[1] return (repr(tree[0]) + '[[%s], %s]' % (', '.join(arg_list[:-1]), arg_list[-1])) def __getitem__(self, parameters): """A thin wrapper around __getitem_inner__ to provide the latter with hashable arguments to improve speed. """ if self.__origin__ is not None or self._gorg is not Callable: return super(CallableMeta, self).__getitem__(parameters) if not isinstance(parameters, tuple) or len(parameters) != 2: raise TypeError("Callable must be used as " "Callable[[arg, ...], result].") args, result = parameters if args is Ellipsis: parameters = (Ellipsis, result) else: if not isinstance(args, list): raise TypeError("Callable[args, result]: args must be a list." " Got %.100r." % (args,)) parameters = (tuple(args), result) return self.__getitem_inner__(parameters) @_tp_cache def __getitem_inner__(self, parameters): args, result = parameters msg = "Callable[args, result]: result must be a type." result = _type_check(result, msg) if args is Ellipsis: return super(CallableMeta, self).__getitem__((_TypingEllipsis, result)) msg = "Callable[[arg, ...], result]: each arg must be a type." args = tuple(_type_check(arg, msg) for arg in args) parameters = args + (result,) return super(CallableMeta, self).__getitem__(parameters) copy._copy_dispatch[CallableMeta] = _copy_generic class Callable(object): """Callable type; Callable[[int], str] is a function of (int) -> str. The subscription syntax must always be used with exactly two values: the argument list and the return type. The argument list must be a list of types or ellipsis; the return type must be a single type. There is no syntax to indicate optional or keyword arguments, such function types are rarely used as callback types. """ __metaclass__ = CallableMeta __extra__ = collections_abc.Callable __slots__ = () def __new__(cls, *args, **kwds): if cls._gorg is Callable: raise TypeError("Type Callable cannot be instantiated; " "use a non-abstract subclass instead") return _generic_new(cls.__next_in_mro__, cls, *args, **kwds) def cast(typ, val): """Cast a value to a type. This returns the value unchanged. To the type checker this signals that the return value has the designated type, but at runtime we intentionally don't check anything (we want this to be as fast as possible). """ return val def _get_defaults(func): """Internal helper to extract the default arguments, by name.""" code = func.__code__ pos_count = code.co_argcount arg_names = code.co_varnames arg_names = arg_names[:pos_count] defaults = func.__defaults__ or () kwdefaults = func.__kwdefaults__ res = dict(kwdefaults) if kwdefaults else {} pos_offset = pos_count - len(defaults) for name, value in zip(arg_names[pos_offset:], defaults): assert name not in res res[name] = value return res def get_type_hints(obj, globalns=None, localns=None): """In Python 2 this is not supported and always returns None.""" return None def no_type_check(arg): """Decorator to indicate that annotations are not type hints. The argument must be a class or function; if it is a class, it applies recursively to all methods and classes defined in that class (but not to methods defined in its superclasses or subclasses). This mutates the function(s) or class(es) in place. """ if isinstance(arg, type): arg_attrs = arg.__dict__.copy() for attr, val in arg.__dict__.items(): if val in arg.__bases__ + (arg,): arg_attrs.pop(attr) for obj in arg_attrs.values(): if isinstance(obj, types.FunctionType): obj.__no_type_check__ = True if isinstance(obj, type): no_type_check(obj) try: arg.__no_type_check__ = True except TypeError: # built-in classes pass return arg def no_type_check_decorator(decorator): """Decorator to give another decorator the @no_type_check effect. This wraps the decorator with something that wraps the decorated function in @no_type_check. """ @functools.wraps(decorator) def wrapped_decorator(*args, **kwds): func = decorator(*args, **kwds) func = no_type_check(func) return func return wrapped_decorator def _overload_dummy(*args, **kwds): """Helper for @overload to raise when called.""" raise NotImplementedError( "You should not call an overloaded function. " "A series of @overload-decorated functions " "outside a stub module should always be followed " "by an implementation that is not @overload-ed.") def overload(func): """Decorator for overloaded functions/methods. In a stub file, place two or more stub definitions for the same function in a row, each decorated with @overload. For example: @overload def utf8(value: None) -> None: ... @overload def utf8(value: bytes) -> bytes: ... @overload def utf8(value: str) -> bytes: ... In a non-stub file (i.e. a regular .py file), do the same but follow it with an implementation. The implementation should *not* be decorated with @overload. For example: @overload def utf8(value: None) -> None: ... @overload def utf8(value: bytes) -> bytes: ... @overload def utf8(value: str) -> bytes: ... def utf8(value): # implementation goes here """ return _overload_dummy _PROTO_WHITELIST = ['Callable', 'Iterable', 'Iterator', 'Hashable', 'Sized', 'Container', 'Collection', 'Reversible', 'ContextManager'] class _ProtocolMeta(GenericMeta): """Internal metaclass for Protocol. This exists so Protocol classes can be generic without deriving from Generic. """ def __init__(cls, *args, **kwargs): super(_ProtocolMeta, cls).__init__(*args, **kwargs) if not cls.__dict__.get('_is_protocol', None): cls._is_protocol = any(b is Protocol or isinstance(b, _ProtocolMeta) and b.__origin__ is Protocol for b in cls.__bases__) if cls._is_protocol: for base in cls.__mro__[1:]: if not (base in (object, Generic) or base.__module__ == '_abcoll' and base.__name__ in _PROTO_WHITELIST or isinstance(base, TypingMeta) and base._is_protocol or isinstance(base, GenericMeta) and base.__origin__ is Generic): raise TypeError('Protocols can only inherit from other protocols,' ' got %r' % base) cls._callable_members_only = all(callable(getattr(cls, attr)) for attr in cls._get_protocol_attrs()) def _no_init(self, *args, **kwargs): if type(self)._is_protocol: raise TypeError('Protocols cannot be instantiated') cls.__init__ = _no_init def _proto_hook(cls, other): if not cls.__dict__.get('_is_protocol', None): return NotImplemented if not isinstance(other, type): # Similar error as for issubclass(1, int) # (also not a chance for old-style classes) raise TypeError('issubclass() arg 1 must be a new-style class') for attr in cls._get_protocol_attrs(): for base in other.__mro__: if attr in base.__dict__: if base.__dict__[attr] is None: return NotImplemented break else: return NotImplemented return True if '__subclasshook__' not in cls.__dict__: cls.__subclasshook__ = classmethod(_proto_hook) def __instancecheck__(self, instance): # We need this method for situations where attributes are assigned in __init__ if isinstance(instance, type): # This looks like a fundamental limitation of Python 2. # It cannot support runtime protocol metaclasses, On Python 2 classes # cannot be correctly inspected as instances of protocols. return False if ((not getattr(self, '_is_protocol', False) or self._callable_members_only) and issubclass(instance.__class__, self)): return True if self._is_protocol: if all(hasattr(instance, attr) and (not callable(getattr(self, attr)) or getattr(instance, attr) is not None) for attr in self._get_protocol_attrs()): return True return super(GenericMeta, self).__instancecheck__(instance) def __subclasscheck__(self, cls): if (self.__dict__.get('_is_protocol', None) and not self.__dict__.get('_is_runtime_protocol', None)): if (sys._getframe(1).f_globals['__name__'] in ['abc', 'functools'] or # This is needed because we remove subclasses from unions on Python 2. sys._getframe(2).f_globals['__name__'] == 'typing'): return False raise TypeError("Instance and class checks can only be used with" " @runtime_checkable protocols") if (self.__dict__.get('_is_runtime_protocol', None) and not self._callable_members_only): if sys._getframe(1).f_globals['__name__'] in ['abc', 'functools']: return super(GenericMeta, self).__subclasscheck__(cls) raise TypeError("Protocols with non-method members" " don't support issubclass()") return super(_ProtocolMeta, self).__subclasscheck__(cls) def _get_protocol_attrs(self): attrs = set() for base in self.__mro__[:-1]: # without object if base.__name__ in ('Protocol', 'Generic'): continue annotations = getattr(base, '__annotations__', {}) for attr in list(base.__dict__.keys()) + list(annotations.keys()): if (not attr.startswith('_abc_') and attr not in ( '__abstractmethods__', '__annotations__', '__weakref__', '_is_protocol', '_is_runtime_protocol', '__dict__', '__args__', '__slots__', '_get_protocol_attrs', '__next_in_mro__', '__parameters__', '__origin__', '__orig_bases__', '__extra__', '__tree_hash__', '__doc__', '__subclasshook__', '__init__', '__new__', '__module__', '_MutableMapping__marker', '__metaclass__', '_gorg', '_callable_members_only')): attrs.add(attr) return attrs class Protocol(object): """Base class for protocol classes. Protocol classes are defined as:: class Proto(Protocol): def meth(self): # type: () -> int pass Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing), for example:: class C: def meth(self): # type: () -> int return 0 def func(x): # type: (Proto) -> int return x.meth() func(C()) # Passes static type check See PEP 544 for details. Protocol classes decorated with @typing.runtime_checkable act as simple-minded runtime protocols that checks only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:: class GenProto(Protocol[T]): def meth(self): # type: () -> T pass """ __metaclass__ = _ProtocolMeta __slots__ = () _is_protocol = True def __new__(cls, *args, **kwds): if cls._gorg is Protocol: raise TypeError("Type Protocol cannot be instantiated; " "it can be used only as a base class") return _generic_new(cls.__next_in_mro__, cls, *args, **kwds) def runtime_checkable(cls): """Mark a protocol class as a runtime protocol, so that it can be used with isinstance() and issubclass(). Raise TypeError if applied to a non-protocol class. This allows a simple-minded structural check very similar to the one-offs in collections.abc such as Hashable. """ if not isinstance(cls, _ProtocolMeta) or not cls._is_protocol: raise TypeError('@runtime_checkable can be only applied to protocol classes,' ' got %r' % cls) cls._is_runtime_protocol = True return cls # Various ABCs mimicking those in collections.abc. # A few are simply re-exported for completeness. Hashable = collections_abc.Hashable # Not generic. class Iterable(Generic[T_co]): __slots__ = () __extra__ = collections_abc.Iterable class Iterator(Iterable[T_co]): __slots__ = () __extra__ = collections_abc.Iterator @runtime_checkable class SupportsInt(Protocol): __slots__ = () @abstractmethod def __int__(self): pass @runtime_checkable class SupportsFloat(Protocol): __slots__ = () @abstractmethod def __float__(self): pass @runtime_checkable class SupportsComplex(Protocol): __slots__ = () @abstractmethod def __complex__(self): pass @runtime_checkable class SupportsIndex(Protocol): __slots__ = () @abstractmethod def __index__(self): pass @runtime_checkable class SupportsAbs(Protocol[T_co]): __slots__ = () @abstractmethod def __abs__(self): pass if hasattr(collections_abc, 'Reversible'): class Reversible(Iterable[T_co]): __slots__ = () __extra__ = collections_abc.Reversible else: @runtime_checkable class Reversible(Protocol[T_co]): __slots__ = () @abstractmethod def __reversed__(self): pass Sized = collections_abc.Sized # Not generic. class Container(Generic[T_co]): __slots__ = () __extra__ = collections_abc.Container # Callable was defined earlier. class AbstractSet(Sized, Iterable[T_co], Container[T_co]): __slots__ = () __extra__ = collections_abc.Set class MutableSet(AbstractSet[T]): __slots__ = () __extra__ = collections_abc.MutableSet # NOTE: It is only covariant in the value type. class Mapping(Sized, Iterable[KT], Container[KT], Generic[KT, VT_co]): __slots__ = () __extra__ = collections_abc.Mapping class MutableMapping(Mapping[KT, VT]): __slots__ = () __extra__ = collections_abc.MutableMapping if hasattr(collections_abc, 'Reversible'): class Sequence(Sized, Reversible[T_co], Container[T_co]): __slots__ = () __extra__ = collections_abc.Sequence else: class Sequence(Sized, Iterable[T_co], Container[T_co]): __slots__ = () __extra__ = collections_abc.Sequence class MutableSequence(Sequence[T]): __slots__ = () __extra__ = collections_abc.MutableSequence class ByteString(Sequence[int]): pass ByteString.register(str) ByteString.register(bytearray) class List(list, MutableSequence[T]): __slots__ = () __extra__ = list def __new__(cls, *args, **kwds): if cls._gorg is List: raise TypeError("Type List cannot be instantiated; " "use list() instead") return _generic_new(list, cls, *args, **kwds) class Deque(collections.deque, MutableSequence[T]): __slots__ = () __extra__ = collections.deque def __new__(cls, *args, **kwds): if cls._gorg is Deque: return collections.deque(*args, **kwds) return _generic_new(collections.deque, cls, *args, **kwds) class Set(set, MutableSet[T]): __slots__ = () __extra__ = set def __new__(cls, *args, **kwds): if cls._gorg is Set: raise TypeError("Type Set cannot be instantiated; " "use set() instead") return _generic_new(set, cls, *args, **kwds) class FrozenSet(frozenset, AbstractSet[T_co]): __slots__ = () __extra__ = frozenset def __new__(cls, *args, **kwds): if cls._gorg is FrozenSet: raise TypeError("Type FrozenSet cannot be instantiated; " "use frozenset() instead") return _generic_new(frozenset, cls, *args, **kwds) class MappingView(Sized, Iterable[T_co]): __slots__ = () __extra__ = collections_abc.MappingView class KeysView(MappingView[KT], AbstractSet[KT]): __slots__ = () __extra__ = collections_abc.KeysView class ItemsView(MappingView[Tuple[KT, VT_co]], AbstractSet[Tuple[KT, VT_co]], Generic[KT, VT_co]): __slots__ = () __extra__ = collections_abc.ItemsView class ValuesView(MappingView[VT_co]): __slots__ = () __extra__ = collections_abc.ValuesView class ContextManager(Generic[T_co]): __slots__ = () def __enter__(self): return self @abc.abstractmethod def __exit__(self, exc_type, exc_value, traceback): return None @classmethod def __subclasshook__(cls, C): if cls is ContextManager: # In Python 3.6+, it is possible to set a method to None to # explicitly indicate that the class does not implement an ABC # (https://bugs.python.org/issue25958), but we do not support # that pattern here because this fallback class is only used # in Python 3.5 and earlier. if (any("__enter__" in B.__dict__ for B in C.__mro__) and any("__exit__" in B.__dict__ for B in C.__mro__)): return True return NotImplemented class Dict(dict, MutableMapping[KT, VT]): __slots__ = () __extra__ = dict def __new__(cls, *args, **kwds): if cls._gorg is Dict: raise TypeError("Type Dict cannot be instantiated; " "use dict() instead") return _generic_new(dict, cls, *args, **kwds) class DefaultDict(collections.defaultdict, MutableMapping[KT, VT]): __slots__ = () __extra__ = collections.defaultdict def __new__(cls, *args, **kwds): if cls._gorg is DefaultDict: return collections.defaultdict(*args, **kwds) return _generic_new(collections.defaultdict, cls, *args, **kwds) class Counter(collections.Counter, Dict[T, int]): __slots__ = () __extra__ = collections.Counter def __new__(cls, *args, **kwds): if cls._gorg is Counter: return collections.Counter(*args, **kwds) return _generic_new(collections.Counter, cls, *args, **kwds) # Determine what base class to use for Generator. if hasattr(collections_abc, 'Generator'): # Sufficiently recent versions of 3.5 have a Generator ABC. _G_base = collections_abc.Generator else: # Fall back on the exact type. _G_base = types.GeneratorType class Generator(Iterator[T_co], Generic[T_co, T_contra, V_co]): __slots__ = () __extra__ = _G_base def __new__(cls, *args, **kwds): if cls._gorg is Generator: raise TypeError("Type Generator cannot be instantiated; " "create a subclass instead") return _generic_new(_G_base, cls, *args, **kwds) # Internal type variable used for Type[]. CT_co = TypeVar('CT_co', covariant=True, bound=type) # This is not a real generic class. Don't use outside annotations. class Type(Generic[CT_co]): """A special construct usable to annotate class objects. For example, suppose we have the following classes:: class User: ... # Abstract base for User classes class BasicUser(User): ... class ProUser(User): ... class TeamUser(User): ... And a function that takes a class argument that's a subclass of User and returns an instance of the corresponding class:: U = TypeVar('U', bound=User) def new_user(user_class: Type[U]) -> U: user = user_class() # (Here we could write the user object to a database) return user joe = new_user(BasicUser) At this point the type checker knows that joe has type BasicUser. """ __slots__ = () __extra__ = type def NamedTuple(typename, fields): """Typed version of namedtuple. Usage:: Employee = typing.NamedTuple('Employee', [('name', str), ('id', int)]) This is equivalent to:: Employee = collections.namedtuple('Employee', ['name', 'id']) The resulting class has one extra attribute: _field_types, giving a dict mapping field names to types. (The field names are in the _fields attribute, which is part of the namedtuple API.) """ fields = [(n, t) for n, t in fields] cls = collections.namedtuple(typename, [n for n, t in fields]) cls._field_types = dict(fields) # Set the module to the caller's module (otherwise it'd be 'typing'). try: cls.__module__ = sys._getframe(1).f_globals.get('__name__', '__main__') except (AttributeError, ValueError): pass return cls def _check_fails(cls, other): try: if sys._getframe(1).f_globals['__name__'] not in ['abc', 'functools', 'typing']: # Typed dicts are only for static structural subtyping. raise TypeError('TypedDict does not support instance and class checks') except (AttributeError, ValueError): pass return False def _dict_new(cls, *args, **kwargs): return dict(*args, **kwargs) def _typeddict_new(cls, _typename, _fields=None, **kwargs): total = kwargs.pop('total', True) if _fields is None: _fields = kwargs elif kwargs: raise TypeError("TypedDict takes either a dict or keyword arguments," " but not both") ns = {'__annotations__': dict(_fields), '__total__': total} try: # Setting correct module is necessary to make typed dict classes pickleable. ns['__module__'] = sys._getframe(1).f_globals.get('__name__', '__main__') except (AttributeError, ValueError): pass return _TypedDictMeta(_typename, (), ns) class _TypedDictMeta(type): def __new__(cls, name, bases, ns, total=True): # Create new typed dict class object. # This method is called directly when TypedDict is subclassed, # or via _typeddict_new when TypedDict is instantiated. This way # TypedDict supports all three syntaxes described in its docstring. # Subclasses and instances of TypedDict return actual dictionaries # via _dict_new. ns['__new__'] = _typeddict_new if name == b'TypedDict' else _dict_new tp_dict = super(_TypedDictMeta, cls).__new__(cls, name, (dict,), ns) anns = ns.get('__annotations__', {}) msg = "TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a type" anns = {n: _type_check(tp, msg) for n, tp in anns.items()} for base in bases: anns.update(base.__dict__.get('__annotations__', {})) tp_dict.__annotations__ = anns if not hasattr(tp_dict, '__total__'): tp_dict.__total__ = total return tp_dict __instancecheck__ = __subclasscheck__ = _check_fails TypedDict = _TypedDictMeta(b'TypedDict', (dict,), {}) TypedDict.__module__ = __name__ TypedDict.__doc__ = \ """A simple typed name space. At runtime it is equivalent to a plain dict. TypedDict creates a dictionary type that expects all of its instances to have a certain set of keys, with each key associated with a value of a consistent type. This expectation is not checked at runtime but is only enforced by type checkers. Usage:: Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str}) a: Point2D = {'x': 1, 'y': 2, 'label': 'good'} # OK b: Point2D = {'z': 3, 'label': 'bad'} # Fails type check assert Point2D(x=1, y=2, label='first') == dict(x=1, y=2, label='first') The type info could be accessed via Point2D.__annotations__. TypedDict supports an additional equivalent form:: Point2D = TypedDict('Point2D', x=int, y=int, label=str) """ def NewType(name, tp): """NewType creates simple unique types with almost zero runtime overhead. NewType(name, tp) is considered a subtype of tp by static type checkers. At runtime, NewType(name, tp) returns a dummy function that simply returns its argument. Usage:: UserId = NewType('UserId', int) def name_by_id(user_id): # type: (UserId) -> str ... UserId('user') # Fails type check name_by_id(42) # Fails type check name_by_id(UserId(42)) # OK num = UserId(5) + 1 # type: int """ def new_type(x): return x # Some versions of Python 2 complain because of making all strings unicode new_type.__name__ = str(name) new_type.__supertype__ = tp return new_type # Python-version-specific alias (Python 2: unicode; Python 3: str) Text = unicode # Constant that's True when type checking, but False here. TYPE_CHECKING = False class IO(Generic[AnyStr]): """Generic base class for TextIO and BinaryIO. This is an abstract, generic version of the return of open(). NOTE: This does not distinguish between the different possible classes (text vs. binary, read vs. write vs. read/write, append-only, unbuffered). The TextIO and BinaryIO subclasses below capture the distinctions between text vs. binary, which is pervasive in the interface; however we currently do not offer a way to track the other distinctions in the type system. """ __slots__ = () @abstractproperty def mode(self): pass @abstractproperty def name(self): pass @abstractmethod def close(self): pass @abstractproperty def closed(self): pass @abstractmethod def fileno(self): pass @abstractmethod def flush(self): pass @abstractmethod def isatty(self): pass @abstractmethod def read(self, n=-1): pass @abstractmethod def readable(self): pass @abstractmethod def readline(self, limit=-1): pass @abstractmethod def readlines(self, hint=-1): pass @abstractmethod def seek(self, offset, whence=0): pass @abstractmethod def seekable(self): pass @abstractmethod def tell(self): pass @abstractmethod def truncate(self, size=None): pass @abstractmethod def writable(self): pass @abstractmethod def write(self, s): pass @abstractmethod def writelines(self, lines): pass @abstractmethod def __enter__(self): pass @abstractmethod def __exit__(self, type, value, traceback): pass class BinaryIO(IO[bytes]): """Typed version of the return of open() in binary mode.""" __slots__ = () @abstractmethod def write(self, s): pass @abstractmethod def __enter__(self): pass class TextIO(IO[unicode]): """Typed version of the return of open() in text mode.""" __slots__ = () @abstractproperty def buffer(self): pass @abstractproperty def encoding(self): pass @abstractproperty def errors(self): pass @abstractproperty def line_buffering(self): pass @abstractproperty def newlines(self): pass @abstractmethod def __enter__(self): pass class io(object): """Wrapper namespace for IO generic classes.""" __all__ = ['IO', 'TextIO', 'BinaryIO'] IO = IO TextIO = TextIO BinaryIO = BinaryIO io.__name__ = __name__ + b'.io' sys.modules[io.__name__] = io Pattern = _TypeAlias('Pattern', AnyStr, type(stdlib_re.compile('')), lambda p: p.pattern) Match = _TypeAlias('Match', AnyStr, type(stdlib_re.match('', '')), lambda m: m.re.pattern) class re(object): """Wrapper namespace for re type aliases.""" __all__ = ['Pattern', 'Match'] Pattern = Pattern Match = Match re.__name__ = __name__ + b'.re' sys.modules[re.__name__] = re PKx"TO 11M__virtualenv__/typing-3.10.0.0-py2-none-any/typing-3.10.0.0.dist-info/LICENSEA. HISTORY OF THE SOFTWARE ========================== Python was created in the early 1990s by Guido van Rossum at Stichting Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands as a successor of a language called ABC. Guido remains Python's principal author, although it includes many contributions from others. In 1995, Guido continued his work on Python at the Corporation for National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) in Reston, Virginia where he released several versions of the software. In May 2000, Guido and the Python core development team moved to BeOpen.com to form the BeOpen PythonLabs team. In October of the same year, the PythonLabs team moved to Digital Creations (now Zope Corporation, see http://www.zope.com). In 2001, the Python Software Foundation (PSF, see http://www.python.org/psf/) was formed, a non-profit organization created specifically to own Python-related Intellectual Property. Zope Corporation is a sponsoring member of the PSF. All Python releases are Open Source (see http://www.opensource.org for the Open Source Definition). Historically, most, but not all, Python releases have also been GPL-compatible; the table below summarizes the various releases. Release Derived Year Owner GPL- from compatible? (1) 0.9.0 thru 1.2 1991-1995 CWI yes 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes 1.6 1.5.2 2000 CNRI no 2.0 1.6 2000 BeOpen.com no 1.6.1 1.6 2001 CNRI yes (2) 2.1 2.0+1.6.1 2001 PSF no 2.0.1 2.0+1.6.1 2001 PSF yes 2.1.1 2.1+2.0.1 2001 PSF yes 2.1.2 2.1.1 2002 PSF yes 2.1.3 2.1.2 2002 PSF yes 2.2 and above 2.1.1 2001-now PSF yes Footnotes: (1) GPL-compatible doesn't mean that we're distributing Python under the GPL. All Python licenses, unlike the GPL, let you distribute a modified version without making your changes open source. The GPL-compatible licenses make it possible to combine Python with other software that is released under the GPL; the others don't. (2) According to Richard Stallman, 1.6.1 is not GPL-compatible, because its license has a choice of law clause. According to CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 is "not incompatible" with the GPL. Thanks to the many outside volunteers who have worked under Guido's direction to make these releases possible. B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON =============================================================== PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 -------------------------------------------- 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Python") in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee. 3. In the event Licensee prepares a derivative work that is based on or incorporates Python or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python. 4. PSF is making Python available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this License Agreement. BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 ------------------------------------------- BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the Individual or Organization ("Licensee") accessing and otherwise using this software in source or binary form and its associated documentation ("the Software"). 2. Subject to the terms and conditions of this BeOpen Python License Agreement, BeOpen hereby grants Licensee a non-exclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use the Software alone or in any derivative version, provided, however, that the BeOpen Python License is retained in the Software, alone or in any derivative version prepared by Licensee. 3. BeOpen is making the Software available to Licensee on an "AS IS" basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 5. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 6. This License Agreement shall be governed by and interpreted in all respects by the law of the State of California, excluding conflict of law provisions. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between BeOpen and Licensee. This License Agreement does not grant permission to use BeOpen trademarks or trade names in a trademark sense to endorse or promote products or services of Licensee, or any third party. As an exception, the "BeOpen Python" logos available at http://www.pythonlabs.com/logos.html may be used according to the permissions granted on that web page. 7. By copying, installing or otherwise using the software, Licensee agrees to be bound by the terms and conditions of this License Agreement. CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 --------------------------------------- 1. This LICENSE AGREEMENT is between the Corporation for National Research Initiatives, having an office at 1895 Preston White Drive, Reston, VA 20191 ("CNRI"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 1.6.1 software in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, CNRI hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 1.6.1 alone or in any derivative version, provided, however, that CNRI's License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) 1995-2001 Corporation for National Research Initiatives; All Rights Reserved" are retained in Python 1.6.1 alone or in any derivative version prepared by Licensee. Alternately, in lieu of CNRI's License Agreement, Licensee may substitute the following text (omitting the quotes): "Python 1.6.1 is made available subject to the terms and conditions in CNRI's License Agreement. This Agreement together with Python 1.6.1 may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1013. This Agreement may also be obtained from a proxy server on the Internet using the following URL: http://hdl.handle.net/1895.22/1013". 3. In the event Licensee prepares a derivative work that is based on or incorporates Python 1.6.1 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 1.6.1. 4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. This License Agreement shall be governed by the federal intellectual property law of the United States, including without limitation the federal copyright law, and, to the extent such U.S. federal law does not apply, by the law of the Commonwealth of Virginia, excluding Virginia's conflict of law provisions. Notwithstanding the foregoing, with regard to derivative works based on Python 1.6.1 that incorporate non-separable material that was previously distributed under the GNU General Public License (GPL), the law of the Commonwealth of Virginia shall govern this License Agreement only as to issues arising under or with respect to Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between CNRI and Licensee. This License Agreement does not grant permission to use CNRI trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By clicking on the "ACCEPT" button where indicated, or by copying, installing or otherwise using Python 1.6.1, Licensee agrees to be bound by the terms and conditions of this License Agreement. ACCEPT CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 -------------------------------------------------- Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands. All rights reserved. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Stichting Mathematisch Centrum or CWI not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. PKx"TrN__virtualenv__/typing-3.10.0.0-py2-none-any/typing-3.10.0.0.dist-info/METADATAMetadata-Version: 2.1 Name: typing Version: 3.10.0.0 Summary: Type Hints for Python Home-page: https://docs.python.org/3/library/typing.html Author: Guido van Rossum, Jukka Lehtosalo, Łukasz Langa, Ivan Levkivskyi Author-email: jukka.lehtosalo@iki.fi License: PSF Project-URL: Source, https://github.com/python/typing Keywords: typing function annotations type hints hinting checking checker typehints typehinting typechecking backport Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Console Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Python Software Foundation License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3.4 Classifier: Topic :: Software Development Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <3.5 Typing -- Type Hints for Python This is a backport of the standard library typing module to Python versions older than 3.5. (See note below for newer versions.) Typing defines a standard notation for Python function and variable type annotations. The notation can be used for documenting code in a concise, standard format, and it has been designed to also be used by static and runtime type checkers, static analyzers, IDEs and other tools. NOTE: in Python 3.5 and later, the typing module lives in the stdlib, and installing this package has NO EFFECT, because stdlib takes higher precedence than the installation directory. To get a newer version of the typing module in Python 3.5 or later, you have to upgrade to a newer Python (bugfix) version. For example, typing in Python 3.6.0 is missing the definition of 'Type' -- upgrading to 3.6.2 will fix this. Also note that most improvements to the typing module in Python 3.7 will not be included in this package, since Python 3.7 has some built-in support that is not present in older versions (See PEP 560.) For package maintainers, it is preferred to use ``typing;python_version<"3.5"`` if your package requires it to support earlier Python versions. This will avoid shadowing the stdlib typing module when your package is installed via ``pip install -t .`` on Python 3.5 or later. PKx"T\\K__virtualenv__/typing-3.10.0.0-py2-none-any/typing-3.10.0.0.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.36.2) Root-Is-Purelib: true Tag: py2-none-any PKx"T]ݺS__virtualenv__/typing-3.10.0.0-py2-none-any/typing-3.10.0.0.dist-info/top_level.txttyping PKx"TϙL__virtualenv__/typing-3.10.0.0-py2-none-any/typing-3.10.0.0.dist-info/RECORDtyping.py,sha256=yP2fxy8eprK-cHMe9bAcvU7QL7n_YGtoTFOG3bsWVJQ,84492 typing-3.10.0.0.dist-info/LICENSE,sha256=_xfOlOECAk3raHc-scx0ynbaTmWPNzUx8Kwi1oprsa0,12755 typing-3.10.0.0.dist-info/METADATA,sha256=ZMrqFtMBF5truoFjyvYNNd44n84-wErUFcPTKMNrln8,2265 typing-3.10.0.0.dist-info/WHEEL,sha256=bK8TJl-oUKFDa18qkB68zwTZhIBCifqi4qjS_NS4aFQ,92 typing-3.10.0.0.dist-info/top_level.txt,sha256=oG8QCMTRcfcgGpEVbdwBU2DM8MthjmZSDaaQ6WWHx4o,7 typing-3.10.0.0.dist-info/RECORD,, PKx"TE  B__virtualenv__/configparser-4.0.2-py2.py3-none-any/configparser.py#!/usr/bin/env python # -*- coding: utf-8 -*- """Convenience module importing everything from backports.configparser.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals from backports.configparser import ( RawConfigParser, ConfigParser, SafeConfigParser, SectionProxy, Interpolation, BasicInterpolation, ExtendedInterpolation, LegacyInterpolation, NoSectionError, DuplicateSectionError, DuplicateOptionError, NoOptionError, InterpolationError, InterpolationMissingOptionError, InterpolationSyntaxError, InterpolationDepthError, ParsingError, MissingSectionHeaderError, ConverterMapping, DEFAULTSECT, MAX_INTERPOLATION_DEPTH, ) from backports.configparser import Error, _UNSET, _default_dict, _ChainMap # noqa: F401 __all__ = [ "NoSectionError", "DuplicateOptionError", "DuplicateSectionError", "NoOptionError", "InterpolationError", "InterpolationDepthError", "InterpolationMissingOptionError", "InterpolationSyntaxError", "ParsingError", "MissingSectionHeaderError", "ConfigParser", "SafeConfigParser", "RawConfigParser", "Interpolation", "BasicInterpolation", "ExtendedInterpolation", "LegacyInterpolation", "SectionProxy", "ConverterMapping", "DEFAULTSECT", "MAX_INTERPOLATION_DEPTH", ] # NOTE: names missing from __all__ imported anyway for backwards compatibility. PKx"TxqPH__virtualenv__/configparser-4.0.2-py2.py3-none-any/backports/__init__.py# A Python "namespace package" http://www.python.org/dev/peps/pep-0382/ # This always goes inside of a namespace package's __init__.py from pkgutil import extend_path __path__ = extend_path(__path__, __name__) PKx"T44U__virtualenv__/configparser-4.0.2-py2.py3-none-any/backports/configparser/__init__.py#!/usr/bin/env python # -*- coding: utf-8 -*- # flake8: noqa """Configuration file parser. A configuration file consists of sections, lead by a "[section]" header, and followed by "name: value" entries, with continuations and such in the style of RFC 822. Intrinsic defaults can be specified by passing them into the ConfigParser constructor as a dictionary. class: ConfigParser -- responsible for parsing a list of configuration files, and managing the parsed database. methods: __init__(defaults=None, dict_type=_default_dict, allow_no_value=False, delimiters=('=', ':'), comment_prefixes=('#', ';'), inline_comment_prefixes=None, strict=True, empty_lines_in_values=True, default_section='DEFAULT', interpolation=, converters=): Create the parser. When `defaults' is given, it is initialized into the dictionary or intrinsic defaults. The keys must be strings, the values must be appropriate for %()s string interpolation. When `dict_type' is given, it will be used to create the dictionary objects for the list of sections, for the options within a section, and for the default values. When `delimiters' is given, it will be used as the set of substrings that divide keys from values. When `comment_prefixes' is given, it will be used as the set of substrings that prefix comments in empty lines. Comments can be indented. When `inline_comment_prefixes' is given, it will be used as the set of substrings that prefix comments in non-empty lines. When `strict` is True, the parser won't allow for any section or option duplicates while reading from a single source (file, string or dictionary). Default is True. When `empty_lines_in_values' is False (default: True), each empty line marks the end of an option. Otherwise, internal empty lines of a multiline option are kept as part of the value. When `allow_no_value' is True (default: False), options without values are accepted; the value presented for these is None. When `default_section' is given, the name of the special section is named accordingly. By default it is called ``"DEFAULT"`` but this can be customized to point to any other valid section name. Its current value can be retrieved using the ``parser_instance.default_section`` attribute and may be modified at runtime. When `interpolation` is given, it should be an Interpolation subclass instance. It will be used as the handler for option value pre-processing when using getters. RawConfigParser objects don't do any sort of interpolation, whereas ConfigParser uses an instance of BasicInterpolation. The library also provides a ``zc.buildbot`` inspired ExtendedInterpolation implementation. When `converters` is given, it should be a dictionary where each key represents the name of a type converter and each value is a callable implementing the conversion from string to the desired datatype. Every converter gets its corresponding get*() method on the parser object and section proxies. sections() Return all the configuration section names, sans DEFAULT. has_section(section) Return whether the given section exists. has_option(section, option) Return whether the given option exists in the given section. options(section) Return list of configuration options for the named section. read(filenames, encoding=None) Read and parse the iterable of named configuration files, given by name. A single filename is also allowed. Non-existing files are ignored. Return list of successfully read files. read_file(f, filename=None) Read and parse one configuration file, given as a file object. The filename defaults to f.name; it is only used in error messages (if f has no `name' attribute, the string `' is used). read_string(string) Read configuration from a given string. read_dict(dictionary) Read configuration from a dictionary. Keys are section names, values are dictionaries with keys and values that should be present in the section. If the used dictionary type preserves order, sections and their keys will be added in order. Values are automatically converted to strings. get(section, option, raw=False, vars=None, fallback=_UNSET) Return a string value for the named option. All % interpolations are expanded in the return values, based on the defaults passed into the constructor and the DEFAULT section. Additional substitutions may be provided using the `vars' argument, which must be a dictionary whose contents override any pre-existing defaults. If `option' is a key in `vars', the value from `vars' is used. getint(section, options, raw=False, vars=None, fallback=_UNSET) Like get(), but convert value to an integer. getfloat(section, options, raw=False, vars=None, fallback=_UNSET) Like get(), but convert value to a float. getboolean(section, options, raw=False, vars=None, fallback=_UNSET) Like get(), but convert value to a boolean (currently case insensitively defined as 0, false, no, off for False, and 1, true, yes, on for True). Returns False or True. items(section=_UNSET, raw=False, vars=None) If section is given, return a list of tuples with (name, value) for each option in the section. Otherwise, return a list of tuples with (section_name, section_proxy) for each section, including DEFAULTSECT. remove_section(section) Remove the given file section and all its options. remove_option(section, option) Remove the given option from the given section. set(section, option, value) Set the given option. write(fp, space_around_delimiters=True) Write the configuration state in .ini format. If `space_around_delimiters' is True (the default), delimiters between keys and values are surrounded by spaces. """ from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals try: from collections.abc import MutableMapping except ImportError: from collections import MutableMapping import functools import io import itertools import os import re import sys import warnings from backports.configparser.helpers import OrderedDict as _default_dict from backports.configparser.helpers import ChainMap as _ChainMap from backports.configparser.helpers import from_none, open, str, PY2 from backports.configparser.helpers import PathLike, fspath from backports.configparser.helpers import MutableMapping __all__ = [ "NoSectionError", "DuplicateOptionError", "DuplicateSectionError", "NoOptionError", "InterpolationError", "InterpolationDepthError", "InterpolationMissingOptionError", "InterpolationSyntaxError", "ParsingError", "MissingSectionHeaderError", "ConfigParser", "SafeConfigParser", "RawConfigParser", "Interpolation", "BasicInterpolation", "ExtendedInterpolation", "LegacyInterpolation", "SectionProxy", "ConverterMapping", "DEFAULTSECT", "MAX_INTERPOLATION_DEPTH", ] DEFAULTSECT = "DEFAULT" MAX_INTERPOLATION_DEPTH = 10 # exception classes class Error(Exception): """Base class for ConfigParser exceptions.""" def __init__(self, msg=''): self.message = msg Exception.__init__(self, msg) def __repr__(self): return self.message __str__ = __repr__ class NoSectionError(Error): """Raised when no section matches a requested option.""" def __init__(self, section): Error.__init__(self, 'No section: %r' % (section,)) self.section = section self.args = (section,) class DuplicateSectionError(Error): """Raised when a section is repeated in an input source. Possible repetitions that raise this exception are: multiple creation using the API or in strict parsers when a section is found more than once in a single input file, string or dictionary. """ def __init__(self, section, source=None, lineno=None): msg = [repr(section), " already exists"] if source is not None: message = ["While reading from ", repr(source)] if lineno is not None: message.append(" [line {0:2d}]".format(lineno)) message.append(": section ") message.extend(msg) msg = message else: msg.insert(0, "Section ") Error.__init__(self, "".join(msg)) self.section = section self.source = source self.lineno = lineno self.args = (section, source, lineno) class DuplicateOptionError(Error): """Raised by strict parsers when an option is repeated in an input source. Current implementation raises this exception only when an option is found more than once in a single file, string or dictionary. """ def __init__(self, section, option, source=None, lineno=None): msg = [repr(option), " in section ", repr(section), " already exists"] if source is not None: message = ["While reading from ", repr(source)] if lineno is not None: message.append(" [line {0:2d}]".format(lineno)) message.append(": option ") message.extend(msg) msg = message else: msg.insert(0, "Option ") Error.__init__(self, "".join(msg)) self.section = section self.option = option self.source = source self.lineno = lineno self.args = (section, option, source, lineno) class NoOptionError(Error): """A requested option was not found.""" def __init__(self, option, section): Error.__init__(self, "No option %r in section: %r" % (option, section)) self.option = option self.section = section self.args = (option, section) class InterpolationError(Error): """Base class for interpolation-related exceptions.""" def __init__(self, option, section, msg): Error.__init__(self, msg) self.option = option self.section = section self.args = (option, section, msg) class InterpolationMissingOptionError(InterpolationError): """A string substitution required a setting which was not available.""" def __init__(self, option, section, rawval, reference): msg = ( "Bad value substitution: option {0!r} in section {1!r} contains " "an interpolation key {2!r} which is not a valid option name. " "Raw value: {3!r}".format(option, section, reference, rawval) ) InterpolationError.__init__(self, option, section, msg) self.reference = reference self.args = (option, section, rawval, reference) class InterpolationSyntaxError(InterpolationError): """Raised when the source text contains invalid syntax. Current implementation raises this exception when the source text into which substitutions are made does not conform to the required syntax. """ class InterpolationDepthError(InterpolationError): """Raised when substitutions are nested too deeply.""" def __init__(self, option, section, rawval): msg = ( "Recursion limit exceeded in value substitution: option {0!r} " "in section {1!r} contains an interpolation key which " "cannot be substituted in {2} steps. Raw value: {3!r}" "".format(option, section, MAX_INTERPOLATION_DEPTH, rawval) ) InterpolationError.__init__(self, option, section, msg) self.args = (option, section, rawval) class ParsingError(Error): """Raised when a configuration file does not follow legal syntax.""" def __init__(self, source=None, filename=None): # Exactly one of `source'/`filename' arguments has to be given. # `filename' kept for compatibility. if filename and source: raise ValueError( "Cannot specify both `filename' and `source'. " "Use `source'." ) elif not filename and not source: raise ValueError("Required argument `source' not given.") elif filename: source = filename Error.__init__(self, 'Source contains parsing errors: %r' % source) self.source = source self.errors = [] self.args = (source,) @property def filename(self): """Deprecated, use `source'.""" warnings.warn( "The 'filename' attribute will be removed in future versions. " "Use 'source' instead.", DeprecationWarning, stacklevel=2, ) return self.source @filename.setter def filename(self, value): """Deprecated, user `source'.""" warnings.warn( "The 'filename' attribute will be removed in future versions. " "Use 'source' instead.", DeprecationWarning, stacklevel=2, ) self.source = value def append(self, lineno, line): self.errors.append((lineno, line)) self.message += '\n\t[line %2d]: %s' % (lineno, line) class MissingSectionHeaderError(ParsingError): """Raised when a key-value pair is found before any section header.""" def __init__(self, filename, lineno, line): Error.__init__( self, 'File contains no section headers.\nfile: %r, line: %d\n%r' % (filename, lineno, line), ) self.source = filename self.lineno = lineno self.line = line self.args = (filename, lineno, line) # Used in parser getters to indicate the default behaviour when a specific # option is not found it to raise an exception. Created to enable `None' as # a valid fallback value. _UNSET = object() class Interpolation(object): """Dummy interpolation that passes the value through with no changes.""" def before_get(self, parser, section, option, value, defaults): return value def before_set(self, parser, section, option, value): return value def before_read(self, parser, section, option, value): return value def before_write(self, parser, section, option, value): return value class BasicInterpolation(Interpolation): """Interpolation as implemented in the classic ConfigParser. The option values can contain format strings which refer to other values in the same section, or values in the special default section. For example: something: %(dir)s/whatever would resolve the "%(dir)s" to the value of dir. All reference expansions are done late, on demand. If a user needs to use a bare % in a configuration file, she can escape it by writing %%. Other % usage is considered a user error and raises `InterpolationSyntaxError'.""" _KEYCRE = re.compile(r"%\(([^)]+)\)s") def before_get(self, parser, section, option, value, defaults): L = [] self._interpolate_some(parser, option, L, value, section, defaults, 1) return ''.join(L) def before_set(self, parser, section, option, value): tmp_value = value.replace('%%', '') # escaped percent signs tmp_value = self._KEYCRE.sub('', tmp_value) # valid syntax if '%' in tmp_value: raise ValueError( "invalid interpolation syntax in %r at " "position %d" % (value, tmp_value.find('%')) ) return value def _interpolate_some(self, parser, option, accum, rest, section, map, depth): rawval = parser.get(section, option, raw=True, fallback=rest) if depth > MAX_INTERPOLATION_DEPTH: raise InterpolationDepthError(option, section, rawval) while rest: p = rest.find("%") if p < 0: accum.append(rest) return if p > 0: accum.append(rest[:p]) rest = rest[p:] # p is no longer used c = rest[1:2] if c == "%": accum.append("%") rest = rest[2:] elif c == "(": m = self._KEYCRE.match(rest) if m is None: raise InterpolationSyntaxError( option, section, "bad interpolation variable reference %r" % rest, ) var = parser.optionxform(m.group(1)) rest = rest[m.end() :] try: v = map[var] except KeyError: raise from_none( InterpolationMissingOptionError(option, section, rawval, var) ) if "%" in v: self._interpolate_some( parser, option, accum, v, section, map, depth + 1 ) else: accum.append(v) else: raise InterpolationSyntaxError( option, section, "'%%' must be followed by '%%' or '(', " "found: %r" % (rest,), ) class ExtendedInterpolation(Interpolation): """Advanced variant of interpolation, supports the syntax used by `zc.buildout'. Enables interpolation between sections.""" _KEYCRE = re.compile(r"\$\{([^}]+)\}") def before_get(self, parser, section, option, value, defaults): L = [] self._interpolate_some(parser, option, L, value, section, defaults, 1) return ''.join(L) def before_set(self, parser, section, option, value): tmp_value = value.replace('$$', '') # escaped dollar signs tmp_value = self._KEYCRE.sub('', tmp_value) # valid syntax if '$' in tmp_value: raise ValueError( "invalid interpolation syntax in %r at " "position %d" % (value, tmp_value.find('$')) ) return value def _interpolate_some(self, parser, option, accum, rest, section, map, depth): rawval = parser.get(section, option, raw=True, fallback=rest) if depth > MAX_INTERPOLATION_DEPTH: raise InterpolationDepthError(option, section, rawval) while rest: p = rest.find("$") if p < 0: accum.append(rest) return if p > 0: accum.append(rest[:p]) rest = rest[p:] # p is no longer used c = rest[1:2] if c == "$": accum.append("$") rest = rest[2:] elif c == "{": m = self._KEYCRE.match(rest) if m is None: raise InterpolationSyntaxError( option, section, "bad interpolation variable reference %r" % rest, ) path = m.group(1).split(':') rest = rest[m.end() :] sect = section opt = option try: if len(path) == 1: opt = parser.optionxform(path[0]) v = map[opt] elif len(path) == 2: sect = path[0] opt = parser.optionxform(path[1]) v = parser.get(sect, opt, raw=True) else: raise InterpolationSyntaxError( option, section, "More than one ':' found: %r" % (rest,) ) except (KeyError, NoSectionError, NoOptionError): raise from_none( InterpolationMissingOptionError( option, section, rawval, ":".join(path) ) ) if "$" in v: self._interpolate_some( parser, opt, accum, v, sect, dict(parser.items(sect, raw=True)), depth + 1, ) else: accum.append(v) else: raise InterpolationSyntaxError( option, section, "'$' must be followed by '$' or '{', " "found: %r" % (rest,), ) class LegacyInterpolation(Interpolation): """Deprecated interpolation used in old versions of ConfigParser. Use BasicInterpolation or ExtendedInterpolation instead.""" _KEYCRE = re.compile(r"%\(([^)]*)\)s|.") def before_get(self, parser, section, option, value, vars): rawval = value depth = MAX_INTERPOLATION_DEPTH while depth: # Loop through this until it's done depth -= 1 if value and "%(" in value: replace = functools.partial(self._interpolation_replace, parser=parser) value = self._KEYCRE.sub(replace, value) try: value = value % vars except KeyError as e: raise from_none( InterpolationMissingOptionError( option, section, rawval, e.args[0] ) ) else: break if value and "%(" in value: raise InterpolationDepthError(option, section, rawval) return value def before_set(self, parser, section, option, value): return value @staticmethod def _interpolation_replace(match, parser): s = match.group(1) if s is None: return match.group() else: return "%%(%s)s" % parser.optionxform(s) class RawConfigParser(MutableMapping): """ConfigParser that does not do interpolation.""" # Regular expressions for parsing section headers and options _SECT_TMPL = r""" \[ # [ (?P
[^]]+) # very permissive! \] # ] """ _OPT_TMPL = r""" (?P