debtags-1.12ubuntu1/0000755000000000000000000000000012232445366011267 5ustar debtags-1.12ubuntu1/source-example0000644000000000000000000000221511465320073014135 0ustar # This is an example of how to add further sources by installing files in this # directory. This file contains only comments, and does nothing. # # This file has the same syntax as /etc/debtags/sources.list, and all files in # /etc/debtags/sources.list.d/ are read as if they were concatenated at the end # of /etc/debtags/sources.list # # A package that would like to provide a local tag source, should do four things # things: # # 1. Depend on debtags (>= 1.7.3) # # 2. Install vocabulary data (vocabulary.gz) and tag data (tags-current.gz) in # some directory (usually something like /usr/share/packagename) # # 3. Install in /etc/debtags/sources.list.d/ a file containing a few # introductory comments and the line: # # tags file:/usr/share/packagename # # 4. In postinst, invoke debtags update --local if the debtags executable is # installed: # # test -x /usr/bin/debtags && debtags update --local # # Since Debtags calls debtags update --local in postinst as well, this will # guarantee that at the end of the apt or dpkg run, the new tags will be # installed independently of the order of invocation of the postinsts. # debtags-1.12ubuntu1/cmdline.h0000644000000000000000000002027611745010314013047 0ustar #ifndef DEBTAGS_COMMANDLINE_H #define DEBTAGS_COMMANDLINE_H /* * Commandline parser for tagcoll * * Copyright (C) 2003--2012 Enrico Zini * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include struct DebtagsOptions : public wibble::commandline::StandardParserWithMandatoryCommand { public: wibble::commandline::BoolOption* out_quiet; wibble::commandline::BoolOption* out_verbose; wibble::commandline::BoolOption* out_names; wibble::commandline::BoolOption* out_debug; wibble::commandline::BoolOption* out_facets; wibble::commandline::BoolOption* out_short; wibble::commandline::BoolOption* out_full; wibble::commandline::BoolOption* match_invert; wibble::commandline::BoolOption* misc_local; wibble::commandline::BoolOption* misc_reindex; wibble::commandline::IntOption* misc_distance; wibble::commandline::StringOption* misc_vocfile; wibble::commandline::BoolOption* smse_reltags; wibble::commandline::BoolOption* smse_disctags; wibble::commandline::Engine* update; wibble::commandline::Engine* check; wibble::commandline::Engine* tagcat; wibble::commandline::Engine* tagshow; wibble::commandline::Engine* tagsearch; wibble::commandline::Engine* show; wibble::commandline::Engine* cat; wibble::commandline::Engine* dumpavail; wibble::commandline::Engine* search; wibble::commandline::Engine* grep; wibble::commandline::Engine* install; wibble::commandline::Engine* diff; wibble::commandline::Engine* tag; wibble::commandline::Engine* submit; wibble::commandline::Engine* vocfilter; DebtagsOptions() : StandardParserWithMandatoryCommand("debtags", VERSION, 1, "enrico@enricozini.org") { using namespace wibble::commandline; usage = " [options and arguments]"; description = "Command line interface to access and manipulate Debian Package Tags"; // Other options // OptionGroup* generalOpts = createGroup("General options"); out_verbose = add("verbose", 'v', "verbose", "", "enable verbose output"); out_debug = add("debug", 0, "debug", "", "enable debugging output (including verbose output)"); // Create the collection output group OptionGroup* collOutputOpts = createGroup("Options controlling transformations of tag data on output"); out_facets = collOutputOpts->add("facets", 0, "facets", "", "output only the names of the facets (mainly used for computing statistics)"); out_names = collOutputOpts->add("names", 0, "names", "", "output only the names of the packages"); out_quiet = collOutputOpts->add("quiet", 'q', "quiet", "", "do not write anything to standard output"); // Create the package output group OptionGroup* pkgOutputOpts = createGroup("Options controlling transformations of package data on output"); pkgOutputOpts->add(out_names); pkgOutputOpts->add(out_quiet); out_full = pkgOutputOpts->add("full", 0, "full", "", "output the full record of package data"); out_short = pkgOutputOpts->add("short", 0, "short", "", "output the names of the packages, plus a short description"); // Create the matching options group OptionGroup* matchOpts = createGroup("Options controlling matching of packages"); match_invert = matchOpts->add("invert", 'i', "invert", "", "invert the match, selecting non-matching items"); cat = addEngine("cat", "", "output the full package tag database"); cat->add(matchOpts); cat->add(collOutputOpts); check = addEngine("check", "", "check that all the tags in the given tagged collection are present " "in the tag vocabulary. Checks the main database if no file is " "specified"); diff = addEngine("diff", "[filename]", "create a tag patch between the current tag database and the tag" " collection [filename]. Standard input is used if filename is not specified"); diff->aliases.push_back("mkpatch"); dumpavail = addEngine("dumpavail", "[tag expression]", "output the full package database"); dumpavail->add(matchOpts); dumpavail->add(pkgOutputOpts); grep = addEngine("grep", "", "output the lines of the full package tag database that match" " the given tag expression. A tag expression (given as a single" " argument) is an arbitrarily complex binary expression of tag" " names. For example: role::program && ((use::editing || use::viewing)" " && !works-with::text)"); grep->add(matchOpts); grep->add(collOutputOpts); search = addEngine("search", "", "output the names and descriptions of the packages that match" " the given tag expression"); search->add(matchOpts); search->add(pkgOutputOpts); show = addEngine("show", "", "show informations about a package, like apt-cache show does, but " "adding the tag informations from the debtags index"); submit = addEngine("submit", "[patch]", "upload the given patch file to the central tag repository." " If [patch] is omitted, mail the local tag modifications" " (uses debtags-submit-patch)"); tag = addEngine("tag", "{add|rm|ls} [tags...]", "view and edit the tags for a package", "General manipulation of tags, useful for automation in scripts.\n" "It can be used in three ways:\n" "tag add will add the tags to the given package\n" "tag rm will remove the tags from the given package\n" "tag ls will output the names of the tags of the given package"); tagcat = addEngine("tagcat", "", "output the tag vocabulary"); tagshow = addEngine("tagshow", "", "show the vocabulary informations about a tag"); tagsearch = addEngine("tagsearch", "", "show a summary of all tags whose data contains the given strings"); // Create the collection update group OptionGroup* updateOpts = createGroup(""); misc_local = updateOpts->add("local", 0, "local", "", "do not download files when performing an update"); misc_reindex = updateOpts->add("reindex", 0, "reindex", "", "do not download any file, just do reindexing if needed"); update = addEngine("update", "", "updates the package tag database (requires root)", "Collect package tag data from the sources listed in " "/etc/debtags/sources.list, then regenerate the debtags " "tag database and main index.\n" "It needs to be run as root"); update->add(updateOpts); // Create the collection vocfilter group OptionGroup* vocfilterOpts = createGroup(""); misc_vocfile = vocfilterOpts->add("vocabulary", 0, "vocabulary", "file", "vocabulary file to use instead of the current debtags vocabulary"); vocfilter = addEngine("vocfilter", "tagfile", "filter out the tags that are not found in the given vocabulary file"); vocfilter->add(vocfilterOpts); } }; // vim:set ts=4 sw=4: #endif debtags-1.12ubuntu1/nag.h0000644000000000000000000000304111701671046012177 0ustar #ifndef DEBTAGS_NAG_H #define DEBTAGS_NAG_H /* * Output functions for messages with various severities * * Copyright (C) 2003--2012 Enrico Zini * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef ATTR_PRINTF #ifdef GCC #define ATTR_PRINTF(string, first) __attribute__((format (printf, string, first))) #else #define ATTR_PRINTF(string, first) #endif #endif namespace nag { void init(bool verbose=false, bool debug=false); bool is_verbose() throw(); bool is_debug() throw(); } void fatal_error(const char* fmt, ...) throw() ATTR_PRINTF(1, 2); void error(const char* fmt, ...) throw() ATTR_PRINTF(1, 2); void warning(const char* fmt, ...) throw() ATTR_PRINTF(1, 2); void verbose(const char* fmt, ...) throw() ATTR_PRINTF(1, 2); void debug(const char* fmt, ...) throw() ATTR_PRINTF(1, 2); void feedback(const char* fmt, ...) throw() ATTR_PRINTF(1, 2); #endif debtags-1.12ubuntu1/debtagshw/0000755000000000000000000000000012201411063013216 5ustar debtags-1.12ubuntu1/debtagshw/__init__.py0000644000000000000000000000152711707554510015353 0ustar # debtagshw: lib to detect what hardware tags apply to the current system # # Copyright (C) 2012 Canonical # # Author: # Michael Vogt # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA debtags-1.12ubuntu1/debtagshw/opengl.py0000644000000000000000000002045512100512140015056 0ustar # debtagshw: lib to detect what hardware tags apply to the current system # # Copyright (C) 2012 Canonical # # Author: # Michael Vogt # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA from __future__ import print_function import logging import multiprocessing import os import sys LOG=logging.getLogger(__name__) class OpenGLError(Exception): pass class OpenGL(object): # 3d driver detection data, map render/vendor string to driver RENDERER_TO_DRIVER = [ # from tools/unity_support_test.c in the nux-tools pkg ("Software Rasterizer", "sw"), ("Mesa X11", "sw"), ("on softpipe", "sw"), ("on llvmpipe", "sw"), # real drivers ("AMD", "amd"), ("Intel(R)", "intel"), ] VENDOR_TO_DRIVER = [ ("nouveau", "nouveau"), ("NVIDIA Corporation", "nvidia"), # this is strange, fglrxinfo returns this vendor ("Advanced Micro Devices, Inc.", "fglrx"), # but glxinfo/the ctypes based code this one, so we support both ("ATI Technologies Inc.", "fglrx"), ] # from /usr/include/GL/glx.h GLX_VENDOR=1 GLX_VERSION=2 GLX_EXTENSIONS=3 # for the visinfo GLX_RGBA = 4 GLX_RED_SIZE = 8 GLX_GREEN_SIZE = 9 GLX_BLUE_SIZE = 10 GLX_DOUBLEBUFFER = 5 # GL, from /usr/include/GL/gl.h GL_VENDOR = 0x1F00 GL_RENDERER = 0x1F01 GL_VERSION = 0x1F02 GL_EXTENSIONS = 0x1F03 def __init__(self, direct_rendering=True): self.direct = direct_rendering def _find_opengl_lib_path(self): """ This is a helper for the fglrx case """ # fglrx puts its own libGL.so under a private directory and plays # tricks with /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf to # make it the default libGL.so but apparently the cdll.LoadLibrary # does not support the ld.so.conf.d directory (yet?) if os.path.exists("/usr/lib/fglrx/libGL.so.1"): return "/usr/lib/fglrx/libGL.so.1" return "libGL.so.1" def _get_opengl_vendor_renderer_version_tuple(self): """ returns a vendor, renderer, version tuple """ from ctypes import cdll, c_char, c_char_p, c_int, byref # load stuff x11 = cdll.LoadLibrary("libX11.so.6") glx = cdll.LoadLibrary(self._find_opengl_lib_path()) # get display display = x11.XOpenDisplay("") if not display: return None, None, None # get extenstion dummy1 = c_char() dummy2 = c_char() res = glx.glXQueryExtension(display, byref(dummy1), byref(dummy2) ) if not res: return None, None, None # get screen and window screen = x11.XDefaultScreen(display) root = x11.XRootWindow(display, screen) # create a window to make glGetString work attribSingleType = c_int * 8 attribSingle = attribSingleType( self.GLX_RGBA, self.GLX_RED_SIZE, 1, self.GLX_GREEN_SIZE, 1, self.GLX_BLUE_SIZE, 1, 0) visinfo = glx.glXChooseVisual(display, 0, attribSingle) if not visinfo: attribDoubleType = c_int * 9 attribDouble = attribDoubleType( self.GLX_RGBA, self.GLX_RED_SIZE, 1, self.GLX_GREEN_SIZE, 1, self.GLX_BLUE_SIZE, 1, self.GLX_DOUBLEBUFFER, 0) visinfo = glx.glXChooseVisual(display, 0, attribDouble) if not visinfo: raise OpenGLError("Can not get visinfo") # create context etc context = glx.glXCreateContext (display, visinfo, None, self.direct) if not context: raise OpenGLError("Can not create glx context") # make root current glx.glXMakeCurrent(display, root, context) # and get the actual useful gl data glx.glGetString.restype = c_char_p opengl_tuple = [] for gl_item in ["vendor", "renderer", "version", "extensions"]: gl_hex = getattr(self, "GL_%s" % gl_item.upper()) gl_string = glx.glGetString(gl_hex) if sys.version > '3': gl_string = gl_string.decode() if gl_item == "extensions": LOG.debug("gl %s: %s" % (gl_item, gl_string)) else: LOG.info("gl %s: %s" % (gl_item, gl_string)) opengl_tuple.append(gl_string) return opengl_tuple[:3] def opengl_driver(self): vendor, renderer, version = self._get_opengl_vendor_renderer_version_tuple() if not renderer: return "sw" # check the vendor string for search_str, driver in self.VENDOR_TO_DRIVER: if search_str in vendor: return driver # and the renderer too for search_str, driver in self.RENDERER_TO_DRIVER: if search_str in renderer: return driver return "unknown" def opengl_version(self): vendor, renderer, version = self._get_opengl_vendor_renderer_version_tuple() if not version: return "unknown" opengl_version = version.split(" ")[0] return opengl_version def opengl_supported(self): driver = self.opengl_driver() # sw driver is not good enough if driver == "sw": return False # stuff looks ok return True # private helpers def _apply_in_multiprocessing_pool(func): """ private helper to run the given func in a multiprocessing env to protect against segfaults in the ctypes code """ # Launch in a seperate subprocess, since the ctypes opengl stuff might # be fragile (segfault happy). A multiprocessing.Pool would be easier, # but for me it caused "hangs" when the child segfaults, so use this # (rather more cumbersome) approach # multiprocessing is python 2.6+ queue = multiprocessing.Queue() p = multiprocessing.Process(target=func, args=(queue,)) p.start() p.join() if p.exitcode < 0: LOG.warn("function: '%s' return exitcode '%s" % (func, p.exitcode)) if queue.empty(): return None return queue.get() def _do_run_check(queue): """ private helper run inside the "Process" context for extra robustness against segfaults """ oh = OpenGL() queue.put(oh.opengl_supported()) def _do_get_version(queue): """ private helper run inside the "Process" context for extra robustness against segfaults """ oh = OpenGL() queue.put(oh.opengl_version()) def _do_get_driver(queue): """ private helper run inside the "Process" context for extra robustness against segfaults """ oh = OpenGL() queue.put(oh.opengl_driver()) # public API def run_check(): """ get the current 3d driver or "unknown" """ try: return _apply_in_multiprocessing_pool(_do_run_check) except OSError: return None def get_driver(): """ get the current 3d driver or "unknown" """ try: return _apply_in_multiprocessing_pool(_do_get_driver) except OSError: return None def get_version(): """ Get the maximum opengl version supported or "unknown" Note that this is not a float number because values like 4.2.2 are supported. It should probably be compared using something like apt_pkg.version_compare() """ try: return _apply_in_multiprocessing_pool(_do_get_version) except OSError: return None if __name__ == "__main__": logging.basicConfig(level=logging.INFO) supported = run_check() driver = get_driver() version = get_version() print("opengl_supported: ", supported) print("opengl_driver: ", driver) print("opengl_version: ", version) debtags-1.12ubuntu1/debtagshw/enums.py0000644000000000000000000000174411716160122014734 0ustar # detectors: lib to detect what hardware tags apply to the current system # # Copyright (C) 2012 Canonical # # Author: # Michael Vogt # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA class HardwareSupported: """ Small enum type class with YES,NO,UNKNOWN values """ YES = "yes" NO = "no" UNKNOWN = "unknown" debtags-1.12ubuntu1/debtagshw/detectors.py0000644000000000000000000002062412100512140015564 0ustar # detectors: lib to detect what hardware tags apply to the current system # # Copyright (C) 2012 Canonical # # Author: # Michael Vogt # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA from __future__ import absolute_import import logging import os import subprocess LOG=logging.getLogger(__name__) try: from gi.repository import GUdev HAVE_GUDEV = True except ImportError: HAVE_GUDEV = False from .enums import HardwareSupported from . import opengl class Detector(object): """ Base detector class """ # helper functions for tags have this prefix, so the code can find them # via introspecton, e.g. # hardware::video:opengl -> _run_check_hardware__video_opengl CHECK_FUNCTION_PREFIX = "_run_check_" def is_supported(self, tag): """ check if the given tag is supported, returns a HardwareSupported class """ f = self._get_func_for_tag(tag) if f: return f() return HardwareSupported.UNKNOWN def generate_tag_expressions(self): """ Generate debtags expressions for the given HW """ for tag in self.get_supported_tags(): res = self.is_supported(tag) if res == HardwareSupported.UNKNOWN: continue yield res, [tag] def get_supported_tags(self): """ return list of supported tags by this detector """ supported = [] for name in dir(self): tag = self._get_tag_for_func(name) if tag: supported.append(tag) return supported # private helpers def _has_func_for_tag(self, tag): return hasattr(self, "%s%s" % ( self.CHECK_FUNCTION_PREFIX, tag.replace(":", "_"))) def _get_func_for_tag(self, tag): return getattr(self, "%s%s" % ( self.CHECK_FUNCTION_PREFIX, tag.replace(":", "_")), None) def _get_tag_for_func(self, func_name): if not func_name.startswith("%shardware" % self.CHECK_FUNCTION_PREFIX): return None tag = func_name[len(self.CHECK_FUNCTION_PREFIX):].replace("_",":") return tag class DetectorUdev(Detector): """ detect hardware based on udev """ DEBTAG_TO_UDEV_PROPERTY = { # storage "hardware::storage:cd" : "ID_CDROM", "hardware::storage:cd-writer" : "ID_CDROM_CD_R", "hardware::storage:dvd" : "ID_CDROM_DVD", "hardware::storage:dvd-writer" : "ID_CDROM_DVD_R", # input "hardware::input:touchscreen" : "ID_INPUT_TOUCH", "hardware::input:mouse" : "ID_INPUT_MOUSE", "hardware::input:keyboard" : "ID_INPUT_KEYBOARD", "hardware::input:joystick" : "ID_INPUT_JOYSTICK", # digicam "hardware::digicam" : "ID_GPHOTO2", } DEBTAG_TO_ID_TYPE = { # webcam 'hardware::webcam' : 'video', # floppy 'hardware::floppy' : 'floppy', } # all tags this class knows about SUPPORTED_TAGS = list(DEBTAG_TO_UDEV_PROPERTY.keys()) + \ list(DEBTAG_TO_ID_TYPE.keys()) def __init__(self): if HAVE_GUDEV: self._uc = GUdev.Client() else: self._uc = None def is_supported(self, tag): LOG.debug("DetectorUdev.is_supported: '%s'" % tag) if self._uc is None: return HardwareSupported.UNKNOWN for device in self._uc.query_by_subsystem(None): #print device.get_property_keys(), device.get_property("DEVPATH") # supported a (theoretical at this point) udev property that # sets the debtag tag directly if device.has_property("HW_DEBTAGS"): return tag in device.get_property("HW_DEBTAGS") # use our own device detection magic prop = self.DEBTAG_TO_UDEV_PROPERTY.get(tag) if prop and device.has_property(prop): #print device.get_property(prop) if bool(device.get_property(prop)): return HardwareSupported.YES else: return HardwareSupported.NO # use ID_TYPE if device.has_property("ID_TYPE"): id_type = device.get_property("ID_TYPE") if (tag in self.DEBTAG_TO_ID_TYPE and id_type == self.DEBTAG_TO_ID_TYPE[tag]): return HardwareSupported.YES # if we know about the tag and did not find it, return NO # (LP: #1020057) if tag in self.SUPPORTED_TAGS: return HardwareSupported.NO # otherwise its UNKNOWN return HardwareSupported.UNKNOWN def get_supported_tags(self): return self.SUPPORTED_TAGS class DetectorCmdline(Detector): """ detect hardware using cmdline helpers """ LAPTOP_DETECT = "/usr/sbin/laptop-detect" SCANIMAGE = ["scanimage", "-L"] # hardware::laptop def _run_check_hardware__laptop(self): if os.path.exists(self.LAPTOP_DETECT): if subprocess.call([self.LAPTOP_DETECT]) == 0: return HardwareSupported.YES else: return HardwareSupported.NO else: LOG.warn( "No laptop-detect '%s' helper found" % self.LAPTOP_DETECT) return HardwareSupported.UNKOWN # hardware::scanner def _run_check_hardware__scanner(self): # note that this is slow to run (1-2s) #ver = c_int() #devices = c_long() #sane = cdll.LoadLibrary("libsane.so.1") #res = sane.sane_init(byref(ver), None) #print res, ver #if not res == SANE_STATUS_GOOD: # return False #print res #sane.sane_get_devices(byref(devices), False) # device is SANE_device** device_list how to get data? # # Note: you can use multiprocessing.Pool.map to run all checks in # parallel try: output = subprocess.check_output(self.SCANIMAGE, universal_newlines=True) if output.startswith("device"): return HardwareSupported.YES else: return HardwareSupported.NO except Exception: LOG.warn("error running '%s'" % self.SCANIMAGE) return HardwareSupported.UNKNOWN class DetectorCtypes(Detector): """ detect hardware using ctypes c calls """ def __init__(self): self.TAG_TO_FUNC = { 'hardware::video:opengl' : self._is_supported, } def _is_supported(self): return opengl.run_check() def is_supported(self, tag): if tag in self.TAG_TO_FUNC: func = self.TAG_TO_FUNC[tag] res = func() if res is True: return HardwareSupported.YES elif res is False: return HardwareSupported.NO return HardwareSupported.UNKNOWN def get_supported_tags(self): return list(self.TAG_TO_FUNC.keys()) class DetectorPython(Detector): """ detect hadware using python imports """ # hardware::printer def _run_check_hardware__printer(self): try: # alternative use lpstat -p import cups c = cups.Connection() if len(c.getPrinters()) > 0: return HardwareSupported.YES else: return HardwareSupported.NO except ImportError: LOG.warn("No python-cups installed") except: LOG.exception("_run_cups_check") return HardwareSupported.UNKNOWN def get_detectors(): """ hepler that returns a list of all lowlevel detector classes """ # introspect the detectors modules to load all availalbe detectors detectors = [] for name, klass in globals().items(): if name.startswith("Detector"): detectors.append(klass()) return detectors debtags-1.12ubuntu1/debtagshw/debtagshw.py0000644000000000000000000000566012100512140015543 0ustar # debtagshw: lib to detect what hardware tags apply to the current system # # Copyright (C) 2012 Canonical # # Author: # Michael Vogt # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA from __future__ import absolute_import import logging LOG=logging.getLogger(__name__) # get the detectors lib from . import detectors from .enums import HardwareSupported class DebtagsAvailableHW(object): """ Match the currents system hardware to debtags """ def __init__(self): self._init_detectors() def _init_detectors(self): self._detectors = detectors.get_detectors() # public functions def get_hardware_support_for_tags(self, tags_list): """ Check list of tags against the hardware of the system. Check the given tag list and return a dict of: "tag" -> HardwareSupported.{YES,NO,UNKOWN} """ result = {} for tag in tags_list: if not tag.startswith("hardware::"): continue result[tag] = self._check_hw_debtag(tag) return result def generate_tag_expressions(self): """ Generate a sequence of (HardwareSupported, taglist) HardwareSupported is one of the constants defined in HardwareSupported taglist is a sequence of tags that applies or does not apply to the current system. The resulting positive or negative tag lists can be used to evaluate whether a package is suitable or not for the current system, or to list uninstalled packages that could use the hardware of the current system. """ for detector in self._detectors: for supported, tags in detector.generate_tag_expressions(): yield supported, tags def get_supported_tags(self): supported_tags = [] for detector in self._detectors: supported_tags += detector.get_supported_tags() return supported_tags # private def _check_hw_debtag(self, tag): """ helper that checks a individual tag for support """ # ask each detector res = HardwareSupported.UNKNOWN for detector in self._detectors: res = detector.is_supported(tag) if res != HardwareSupported.UNKNOWN: break return res debtags-1.12ubuntu1/bash-completion0000644000000000000000000000510612201400753014263 0ustar # Debian GNU/Linux debtags(1) completion # (C) 2004 2005 Emanuele Rocca # License: GNU GPL v2 or later have debtags && _debtags() { local cur prev options # Helper function to keep up with ":" _get_comp_words_by_ref -n : cur prev words cword COMPREPLY=() options='cat check diff dumpavail grep help \ mkpatch search \ show submit tag tagcat tagsearch \ tagshow update vocfilter' for (( i=0; i < ${#words[@]}; i++ )); do case ${words[i]} in # commands requiring a filename check|mkpatch|diff|submit) _filedir return 0 ;; tag) # the tag command expects one of the following parameters: # add, rm, ls case $prev in add|rm|ls) COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) ) return 0 ;; tag) tag_cmds='add rm ls' COMPREPLY=( $( compgen -W "$tag_cmds" -- $cur ) ) return 0 ;; *) if [[ -n "${words[cword-2]}" ]]; then case ${words[cword-2]} in # add and rm are special: they need a tag after the package name # # TODO: filter out unneeded tags from the add and rm completion input # add|rm) COMPREPLY=( $( grep "^Tag: $cur" /var/lib/debtags/vocabulary |cut -b 6- ) ) return 0 ;; *) return 0 ;; esac fi return 0 ;; esac ;; # commands requiring a package name show) COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) ) return 0 ;; # commands requiring a singol tag tagshow) if [[ "$prev" == "grep" && "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--invert-match --quiet' -- $cur ) ) return 0 fi COMPREPLY=( $( grep "^Tag: $cur" /var/lib/debtags/vocabulary |cut -b 6- ) ) # Helper function to keep up with ":" __ltrim_colon_completions "$cur" return 0 ;; # commands requiring an expression grep|search) if [[ "$prev" == "grep" && "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--invert-match --quiet' -- $cur ) ) return 0 fi COMPREPLY=( $( grep "^Tag: $cur" /var/lib/debtags/vocabulary |cut -b 6- ) ) # Helper function to keep up with ":" __ltrim_colon_completions "$cur" return 0 ;; cat) COMPREPLY=( $( compgen -W "--group-items" -- $cur ) ) return 0 ;; *) ;; esac done # short or long option if [[ "$cur" == -* ]]; then options='--verbose --debug -V --version -? --help' COMPREPLY=( $( compgen -W "$options" -- $cur ) ) return 0 fi if [[ "$cword" == 1 ]]; then COMPREPLY=( $( compgen -W "$options" -- $cur ) ) return 0 fi } [ "$have" ] && complete -F _debtags $filenames debtags # vim: syntax=sh debtags-1.12ubuntu1/COPYING0000644000000000000000000004311011465320073012313 0ustar GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. debtags-1.12ubuntu1/install-sh0000755000000000000000000003325512232305342013270 0ustar #!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # 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 # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: debtags-1.12ubuntu1/Makefile.am0000644000000000000000000000270312201407107013310 0ustar ## Process this file with automake to produce Makefile.in SUBDIRS = doc . confddir = $(confdir)/sources.list.d pkgdata_DATA = vocabulary tags-current.gz conf_DATA = sources.list confd_DATA = source-example AM_CPPFLAGS = -I.. $(LIBEPT_CFLAGS) $(LIBTAGCOLL_CFLAGS) -DSCRIPTDIR=\"$(pkgdatadir)\" -DBINDIR=\"$(bindir)\" dist_noinst_HEADERS = nag.h cmdline.h loader.h printer.h nullstream.h bin_PROGRAMS = debtags dist_bin_SCRIPTS = debtags-submit-patch debtags-fetch debtags_SOURCES = \ nag.cc \ loader.cc \ debtags.cc debtags_LDADD = $(LIBEPT_LIBS) $(LIBTAGCOLL_LIBS) #bashcomp_DATA = debtags-bashcompletion man_MANS = debtags.1 debtags-submit-patch.1 debtags-fetch.1 CLEANFILES = $(man_MANS) debtags.1: $(top_builddir)/debtags $(srcdir)/doc/debtags-man-hooks $(top_builddir)/debtags --manpage=$(srcdir)/doc/debtags-man-hooks > $@ || rm $@ debtags-submit-patch.1: help2man --name='submit tag patches to http://debtags.debian.net' --section=1 --no-info $(top_srcdir)/debtags-submit-patch > $@ || rm $@ debtags-fetch.1: help2man --name='fetch tag sources from /etc/debtags/sources.list' --section=8 --no-info $(top_srcdir)/debtags-fetch > $@ || rm $@ install-data-local: $(srcdir)/bash-completion install -d -o root -g root -m 0755 $(DESTDIR)$(bashcompdir) $(INSTALL_DATA) $< $(DESTDIR)$(bashcompdir)/debtags EXTRA_DIST = README IDEAS \ vocabulary tags-current.gz update_files \ bash-completion sources.list source-example \ autogen.sh \ $(man_MANS) debtags-1.12ubuntu1/INSTALL0000644000000000000000000002203011465320073012307 0ustar Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not support the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the `--target=TYPE' option to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc will cause the specified gcc to be used as the C compiler (unless it is overridden in the site shell script). `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. debtags-1.12ubuntu1/README0000644000000000000000000000476311465320073012153 0ustar README for Debtags ================== ``debtags`` is used to maintain debtags information on a system. It allows to merge the tag data found in the Packages file with, optionally, other tag sources listed in /etc/debtags/sources.list The package also ships the vocabulary that describes the tags found in the Packages file, and can merge it with vocabulary information acquired from other configured tag sources. ``debtags`` allows to perform various kinds of queries and checks on the tag database, mostly useful from scripts, possibly in combination with the ``tagcoll`` tool. For high-level query tools, look at ept-cache, adept and other package managers. For a package information index that indexes tags as well as various useful information to support high-level queries, look at apt-xapian-index. The command line tool also allows to perform some scripted editing of the tags, and to submit a tag patch to the central tag archive. If you want to use the debtags tool for contributing to the central tag archive, please disable the apt tag source in /etc/debtags/sources.list and enable the unreviewed tag source on Alioth, so that you will make sure you are working with the most recent version of the archive. Resources --------- Website: http://debtags.alioth.debian.org Mailing lists: debtags-devel@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/debtags-devel Development and usage discussions debtags-commits@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/debtags-commmits Postings of subversion logs Subversion repository: http://svn.debian.org/viewcvs/debtags/ Browse online svn://svn.debian.org/debtags/ Read-only access svn+ssh://alioth.debian.org/svn/debtags/ Write access Miscellaneous notes ------------------- Some analysis techniques: Consistency checks on facets that should go together:: # Show all packages which have a tag in uitoolkit but not a tag in interface # (same can be repeated for hardware and hwtech, devel and langdevel) debtags facetcoll | grep uitoolkit | grep -v interface | cut -d: -f1 | sort | uniq # Count the number of facets debtags facetcoll | tagcoll reverse | wc -l # Get a list of toplevel facets in a facet hierarchy debtags facetcoll | tagcoll hierarchy | cut -f2 -d/ | cut -f1 -d: | sort | uniq Interesting links: * http://www.itconsult.it/knowledge/articoli/detArticoli.asp?ID=18 Author ------ Enrico Zini debtags-1.12ubuntu1/update_files0000755000000000000000000000253212201410702013641 0ustar #!/bin/sh # Update the copy of the debtags information that is shipped with the package set -ue OK=true # Commit or rollback on exit commit_or_rollback() { if [ $OK = true ] then mv tags-current.gz.tmp tags-current.gz cat vocabulary1.tmp vocabulary2.tmp > vocabulary rm vocabulary1.tmp vocabulary2.tmp else rm -f tags-current.gz.tmp vocabulary1.tmp vocabulary2.tmp fi } trap commit_or_rollback EXIT cat_tags() { if [ $USER = enrico ] && [ -f ../tagdb/tags ] then cat ../tagdb/tags else svn cat svn://anonscm.debian.org/debtags/tagdb/tags fi } cat_voc() { if [ $USER = enrico ] && [ -f ../vocabulary/debian-packages ] then cat ../vocabulary/debian-packages else svn cat svn://anonscm.debian.org/debtags/vocabulary/trunk/debian-packages fi } echo -n "Exporting a new version of the reviewed tags from SVN... " if cat_tags | tagcoll copy | gzip -9 > tags-current.gz.tmp then echo "ok." else echo "failed." OK=false exit 1 fi echo -n "Exporting a new version of the vocabulary data from SVN... " if cat_voc > vocabulary1.tmp then echo "ok." else echo "failed." OK=false exit 1 fi echo -n "Exporting a new version of the security team tag vocabulary data from SVN... " if svn cat svn://anonscm.debian.org/debtags/vocabulary/trunk/security-team > vocabulary2.tmp then echo "ok." else echo "failed." OK=false exit 1 fi exit 0 debtags-1.12ubuntu1/vocabulary0000644000000000000000000017743212232445366013377 0ustar Facet: accessibility Status: needing-review Description: Accessibility Support Accessibility support provided by the package Tag: accessibility::input Description: Input Systems Applies to input methods for non-latin languages as well as special input systems. Tag: accessibility::ocr Description: Text Recognition (OCR) The translation of text images into machine-editable text by means of Optical Character Recognition (OCR). Tag: accessibility::screen-magnify Description: Screen Magnification Displays enlarged screen content. Tag: accessibility::screen-reader Description: Screen Reading Converts text into speech. Tag: accessibility::speech Description: Speech Synthesis The artificial production of human speech. Tag: accessibility::speech-recognition Description: Speech Recognition Converts speech into text. Tag: accessibility::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: admin Status: needing-review Description: System Administration Which system administration activities the package may perform Tag: admin::accounting Description: Accounting Tag: admin::automation Description: Automation and Scheduling Automating the execution of software in the system. Tag: admin::backup Description: Backup and Restoration Tag: admin::benchmarking Description: Benchmarking Tag: admin::boot Description: System Boot Tag: admin::cluster Description: Clustering Tag: admin::configuring Description: Configuration Tool Tag: admin::file-distribution Description: File Distribution Tag: admin::filesystem Description: Filesystem Tool Creation, maintenance, and use of filesystems Tag: admin::forensics Description: Forensics and Recovery Recovering lost or damaged data. This tag will be split into admin::recovery and security::forensics. Tag: admin::hardware Description: Hardware Support Tag: admin::install Description: System Installation Tag: admin::issuetracker Description: Issue Tracker Tag: admin::kernel Description: Kernel or Modules Tag: admin::logging Description: Logging Tag: admin::login Description: Login Logging into the system Tag: admin::monitoring Description: Monitoring Tag: admin::package-management Description: Package Management Tag: admin::power-management Description: Power Management Tag: admin::recovery Description: Data Recovery Tag: admin::user-management Description: User Management Tag: admin::virtualization Description: Virtualization This is not hardware emulation, but rather those facilities that allow to create many isolated compartments inside the same system. Tag: admin::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: biology Description: Biology How the package is related to the field of biology Tag: biology::emboss Description: EMBOSS Packages related to the European Molecular Biology Open Software Suite. Tag: biology::format:aln Description: Clustal/ALN Used in multiple alignment of biological sequences. Tag: biology::format:fasta Description: Fasta/Pearson Very popular format for biological sequences. Tag: biology::format:nexus Description: Nexus Popular format for phylogenetic trees. Tag: biology::nuceleic-acids Description: Nucleic Acids Software that works with sequences of nucleic acids: DNA, RNA but also non-natural nucleic acids such as PNA or LNA. Tag: biology::peptidic Description: Proteins Software that works with sequences of aminoacids: peptides and proteins. Facet: culture Status: complete Description: Culture The culture for which the package provides special support Tag: culture::afrikaans Description: Afrikaans Tag: culture::arabic Description: Arabic Tag: culture::basque Description: Basque Tag: culture::bengali Description: Bengali Tag: culture::bokmaal Description: Norwegian Bokmaal Tag: culture::bosnian Description: Bosnian Tag: culture::brazilian Responsible: stratus@acm.org Description: Brazilian Tag: culture::british Description: British Tag: culture::bulgarian Description: Bulgarian Tag: culture::catalan Description: Catalan Tag: culture::chinese Description: Chinese Tag: culture::czech Description: Czech Tag: culture::croatian Description: Croatian Tag: culture::danish Description: Danish Tag: culture::dutch Description: Dutch Tag: culture::esperanto Description: Esperanto Tag: culture::estonian Description: Estonian Tag: culture::faroese Description: Faroese Tag: culture::farsi Description: Farsi Tag: culture::finnish Description: Finnish Tag: culture::french Description: French Tag: culture::galician Description: Galician Tag: culture::german Description: German Tag: culture::greek Description: Greek Tag: culture::hebrew Description: Hebrew Tag: culture::hindi Description: Hindi Tag: culture::hungarian Description: Hungarian Tag: culture::icelandic Description: Icelandic Tag: culture::indonesian Description: Indonesian Tag: culture::irish Description: Irish (Gaeilge) Tag: culture::italian Description: Italian Tag: culture::japanese Description: Japanese Tag: culture::kazakh Description: Kazakh Tag: culture::korean Description: Korean Tag: culture::latvian Description: Latvian Tag: culture::lithuanian Description: Lithuanian Tag: culture::mongolian Description: Mongolian Tag: culture::nynorsk Description: Norwegian Nynorsk Tag: culture::norwegian Description: Norwegian Tag: culture::polish Description: Polish Tag: culture::portuguese Description: Portuguese Tag: culture::punjabi Description: Punjabi Tag: culture::romanian Description: Romanian Tag: culture::russian Description: Russian Tag: culture::serbian Description: Serbian Tag: culture::slovak Description: Slovak Tag: culture::spanish Description: Spanish Tag: culture::swedish Description: Swedish Tag: culture::taiwanese Description: Taiwanese Tag: culture::tajik Description: Tajik Tag: culture::tamil Description: Tamil Tag: culture::thai Description: Thai Tag: culture::turkish Description: Turkish Tag: culture::ukrainian Description: Ukrainian Tag: culture::uzbek Description: Uzbek Tag: culture::welsh Description: Welsh Tag: culture::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: devel Status: needing-review Description: Software Development How the package is related to the field of software development Tag: devel::bugtracker Description: Bug Tracking Tag: devel::buildtools Description: Build Tool Tag: devel::code-generator Description: Code Generation Parser, lexer and other code generators Tag: devel::compiler Description: Compiler Tag: devel::debian Description: Debian Tools, documentation, etc. of use primarily to Debian developers. Tag: devel::debugger Description: Debugging Tag: devel::doc Description: Documentation Tag: devel::docsystem Description: Literate Programming Tools and auto-documenters Tag: devel::ecma-cli Description: ECMA CLI Tools and libraries for development with implementations of the ECMA CLI (Common Language Infrastructure), like Mono or DotGNU Portable.NET. Tag: devel::editor Description: Source Editor Tag: devel::examples Description: Examples Tag: devel::ide Description: IDE Integrated Development Environment Tag: devel::interpreter Description: Interpreter Tag: devel::i18n Description: Internationalization Tag: devel::lang:TODO Description: Need an extra tag Tag: devel::lang:ada Description: Ada Development Tag: devel::lang:c Description: C Development Tag: devel::lang:c++ Description: C++ Development Tag: devel::lang:c-sharp Description: C# Development Tag: devel::lang:erlang Description: Erlang Development Tag: devel::lang:fortran Description: Fortran Development Tag: devel::lang:haskell Description: Haskell Development Tag: devel::lang:java Description: Java Development Tag: devel::lang:ecmascript Description: Ecmascript/JavaScript Development Tag: devel::lang:lisp Description: Lisp Development Tag: devel::lang:lua Description: Lua Development Tag: devel::lang:ml Description: ML Development Tag: devel::lang:objc Description: Objective-C Development Tag: devel::lang:ocaml Responsible: zack@debian.org Description: OCaml Development Tag: devel::lang:octave Description: GNU Octave Development Tag: devel::lang:pascal Description: Pascal Development Tag: devel::lang:perl Description: Perl Development Tag: devel::lang:posix-shell Description: POSIX shell Tag: devel::lang:php Description: PHP Development Tag: devel::lang:pike Description: Pike Development Tag: devel::lang:prolog Description: Prolog Development Tag: devel::lang:python Description: Python Development Tag: devel::lang:r Description: GNU R Development Tag: devel::lang:ruby Description: Ruby Development Tag: devel::lang:scheme Description: Scheme Development Tag: devel::lang:sql Description: SQL Tag: devel::lang:tcl Description: Tcl Development Tag: devel::lang:vala Description: Vala Development Tag: devel::library Description: Libraries Tag: devel::machinecode Description: Machine Code Assemblers and other machine-code development tools. Tag: devel::modelling Description: Modelling Programs and libraries that support creation of software models with modelling languages like UML or OCL. Tag: devel::packaging Description: Packaging Tools for packaging software. Tag: devel::prettyprint Description: Prettyprint Code pretty-printing and indentation/reformatting. Tag: devel::profiler Description: Profiling Profiling and optimization tools. Tag: devel::rcs Description: Revision Control RCS (Revision Control System) and SCM (Software Configuration Manager) Tag: devel::rpc Description: RPC Remote Procedure Call, Network transparent programming Tag: devel::runtime Description: Runtime Support Runtime environments of various languages and systems. Tag: devel::testing-qa Description: Testing and QA Tools for software testing and quality assurance. Tag: devel::ui-builder Description: User Interface Tools for designing user interfaces. Tag: devel::web Description: Web Web-centric frameworks, CGI libraries and other web-specific development tools. Tag: devel::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: field Status: controversial Comment: how broad is the definition of a "field"? Description: Field Which branch of knowledge is the package related to Tag: field::arts Description: Arts Tag: field::astronomy Description: Astronomy Tag: field::aviation Description: Aviation Tag: field::biology Description: Biology Tag: field::biology:bioinformatics Description: Bioinformatics Sequence analysis software. Tag: field::biology:molecular Description: Molecular Biology Software useful to molecular cloning and related wet biology. Tag: field::biology:structural Description: Structural Biology Software useful to model tridimentional structures. Tag: field::chemistry Description: Chemistry Tag: field::electronics Description: Electronics Circuit editors and other electronics-related software Tag: field::finance Description: Financial Accounting and financial software Tag: field::genealogy Description: Genealogy Tag: field::geography Description: Geography Tag: field::geology Description: Geology Tag: field::linguistics Description: Linguistics Tag: field::mathematics Description: Mathematics Tag: field::medicine Description: Medicine Tag: field::medicine:imaging Description: Medical Imaging Tag: field::meteorology Description: Meteorology Tag: field::physics Description: Physics Tag: field::religion Description: Religion Tag: field::statistics Description: Statistics Tag: field::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: game Status: needing-review Description: Games and Amusement Kind of games provided by the package Tag: game::adventure Description: Adventure Tag: game::arcade Description: Action and Arcade Tag: game::board Description: Board Tag: game::board:chess Description: Chess Tag: game::card Description: Card Tag: game::demos Description: Demo Tag: game::fps Description: First Person Shooter Tag: game::mud Description: Multiplayer RPG MUDs, MOOs, and other multiplayer RPGs Tag: game::platform Description: Platform Tag: game::puzzle Description: Puzzle Tag: game::rpg Description: Role-playing Tag: game::rpg:rogue Description: Rogue-like RPG Games like Nethack, Angband etc. Tag: game::simulation Description: Simulation Tag: game::sport Description: Sport Games Tag: game::sport:racing Description: Racing Tag: game::strategy Description: Strategy Tag: game::tetris Description: Tetris-like Tag: game::toys Description: Toy or Gimmick Tag: game::typing Description: Typing Tutor Tag: game::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: hardware Status: draft Description: Hardware Enablement How the package is related to hardware enablement Tag: hardware::bluetooth Description: Bluetooth Tag: hardware::camera Description: Digital Camera Tag: hardware::detection Description: Hardware Detection Tag: hardware::embedded Description: Embedded Tag: hardware::emulation Description: Emulation Tag: hardware::gps Description: GPS Global Positioning System Tag: hardware::input Description: Input Devices Tag: hardware::input:joystick Description: Joystick Tag: hardware::input:keyboard Description: Keyboard Tag: hardware::input:mouse Description: Mouse Tag: hardware::input:touchscreen Description: Touchscreen Tag: hardware::joystick Description: Joystick (legacy) Tag: hardware::hamradio Description: Ham Radio Tag: hardware::hobby:lego Description: LEGOâ„¢ Software useful for LEGO designers and owners of LEGO bricks and hardware Tag: hardware::laptop Description: Laptop Tag: hardware::modem Description: Modem Tag: hardware::modem:dsl Description: xDSL Modem Tag: hardware::opengl Description: Requires video hardware acceleration Tag: hardware::power Description: Power Management Tag: hardware::power:ups Comment: out of place under power: Description: UPS Uninterruptible Power Supply Tag: hardware::power:acpi Description: ACPI Power Management Tag: hardware::power:apm Description: APM Power Management Tag: hardware::printer Description: Printer Tag: hardware::scanner Description: Image-scanning Hardware Tag: hardware::storage Description: Storage Tag: hardware::storage:cd Description: CD reader Compact Disc Tag: hardware::storage:cd-writer Description: CD writer Compact Disc writer Tag: hardware::storage:dvd Description: DVD reader Digital Versatile Disc Tag: hardware::storage:dvd-writer Description: DVD writer Digital Versatile Disc writer Tag: hardware::storage:floppy Description: Floppy Disk Tag: hardware::usb Description: USB Universal Serial Bus Tag: hardware::video Description: Graphics and Video Tag: hardware::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: made-of Status: needing-review Description: Made Of The languages or data formats used to make the package Tag: made-of::audio Description: Audio Tag: made-of::dictionary Description: Dictionary Tag: made-of::font Description: Font Tag: made-of::html Description: HTML, Hypertext Markup Language Tag: made-of::icons Description: Icons Tag: made-of::info Description: Documentation in Info Format Tag: made-of::man Description: Manuals in Nroff Format Tag: made-of::pdf Description: PDF Documents Tag: made-of::postscript Description: PostScript Tag: made-of::sgml Description: SGML, Standard Generalized Markup Language Tag: made-of::svg Description: SVG, Scalable Vector Graphics Tag: made-of::tex Description: TeX, LaTeX and DVI Tag: made-of::vrml Description: VRML, Virtual Reality Markup Language Tag: made-of::xml Description: XML Tag: made-of::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: interface Status: needing-review Description: User Interface What kind of user interface the package provides Tag: interface::3d Description: Three-Dimensional Tag: interface::commandline Description: Command Line Tag: interface::daemon Description: Daemon Runs in background, only a control interface is provided, usually on commandline. Tag: interface::framebuffer Description: Framebuffer Tag: interface::shell Description: Command Shell Tag: interface::svga Description: Console SVGA Tag: interface::text-mode Description: Text-based Interactive Tag: interface::web Description: World Wide Web Tag: interface::x11 Description: X Window System Tag: interface::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: implemented-in Description: Implemented in What language the software is implemented in Tag: implemented-in::ada Description: Ada Tag: implemented-in::c Description: C Tag: implemented-in::c++ Description: C++ Tag: implemented-in::c-sharp Description: C# Tag: implemented-in::erlang Description: Erlang Tag: implemented-in::fortran Description: Fortran Tag: implemented-in::haskell Description: Haskell Tag: implemented-in::java Description: Java Tag: implemented-in::ecmascript Description: Ecmascript/Javascript Tag: implemented-in::lisp Description: Lisp Tag: implemented-in::lua Description: Lua Tag: implemented-in::ml Description: ML Tag: implemented-in::objc Description: Objective C Tag: implemented-in::ocaml Responsible: zack@debian.org Description: OCaml Tag: implemented-in::perl Description: Perl Tag: implemented-in::php Description: PHP Tag: implemented-in::pike Description: Pike Tag: implemented-in::python Description: Python Tag: implemented-in::r Description: GNU R Tag: implemented-in::ruby Description: Ruby Tag: implemented-in::scheme Description: Scheme Tag: implemented-in::shell Description: sh, bash, ksh, tcsh and other shells Tag: implemented-in::tcl Description: Tcl, Tool Command Language Tag: implemented-in::vala Description: Vala Tag: implemented-in::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: junior Status: draft Description: Junior Applications Applications recommended for younger users Tag: junior::arcade Description: Arcade Games Tag: junior::games-gl Description: 3D Games Tag: junior::meta Comment: not that the target group knows what a metapackage is Description: Metapackages Tag: junior::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: mail Status: controversial Description: Electronic Mail How the package is related to eletronic mail transmission Tag: mail::filters Description: Filters Tag: mail::imap Description: IMAP Protocol Tag: mail::list Description: Mailing Lists Tag: mail::notification Description: Notification Software that notifies users about status of mailbox. Tag: mail::pop Description: POP3 Protocol Tag: mail::smtp Description: SMTP Protocol Tag: mail::delivery-agent Description: Mail Delivery Agent Software that delivers mail to users' mailboxes. Tag: mail::transport-agent Description: Mail Transport Agent Software that routes and transmits mail accross the system and the network. Tag: mail::user-agent Description: Mail User Agent Software that allows users to access e-mail. Tag: mail::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: office Description: Office and business Applications related to office and business activities Tag: office::finance Description: Finance Tag: office::groupware Description: Groupware Tag: office::presentation Description: Presentation Tag: office::project-management Description: Project Management Tag: office::spreadsheet Description: Spreadsheet Tag: office::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: works-with Status: needing-review Description: Works with What kind of data (or even processes, or people) the package can work with Tag: works-with::3dmodel Description: 3D Model Tag: works-with::archive Description: Archive Tag: works-with::audio Description: Audio Tag: works-with::biological-sequence Description: Biological Sequence Tag: works-with::bugs Description: Bugs or Issues Tag: works-with::db Description: Databases Tag: works-with::dictionary Description: Dictionaries Tag: works-with::dtp Description: Desktop Publishing (DTP) Tag: works-with::fax Description: Faxes Tag: works-with::file Description: Files Tag: works-with::font Description: Fonts Tag: works-with::graphs Description: Trees and Graphs Tag: works-with::im Description: Instant Messages The package can connect to some IM network (or networks). Tag: works-with::logfile Description: System Logs Tag: works-with::mail Description: Email Tag: works-with::music-notation Description: Music Notation Tag: works-with::network-traffic Description: Network Traffic Routers, shapers, sniffers, firewalls and other tools that work with a stream of network packets. Tag: works-with::people Description: People Tag: works-with::pim Description: Personal Information Tag: works-with::image Description: Image Tag: works-with::image:raster Description: Raster Image Images made of dots, such as photos and scans Tag: works-with::image:vector Description: Vector Image Images made of lines, such as graphs or most clipart Tag: works-with::software:package Description: Packaged Software Tag: works-with::software:running Description: Running Programs Tag: works-with::software:source Description: Source Code Tag: works-with::spreadsheet Description: Spreadsheet Tag: works-with::text Description: Text Tag: works-with::unicode Description: Unicode Please do not tag programs with simple unicode support, doing so would make this tag useless. Ultimately all applications should have unicode support. Tag: works-with::vcs Description: Version control system Tag: works-with::video Description: Video and Animation Tag: works-with::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: works-with-format Status: needing-review Description: Supports Format Which data formats are supported by the package Tag: works-with-format::bib Description: BibTeX BibTeX list of references Tag: works-with-format::chm Description: Compiled HTML Help Link: http://en.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help Tag: works-with-format::diff Description: Diff-format patches Textual patches in diff's "normal" (default), context (diff -c), or unified (diff -u) format. . Link: http://en.wikipedia.org/wiki/Diff Tag: works-with-format::djvu Description: DjVu File format to store scanned documents. . Link: http://en.wikipedia.org/wiki/Djvu Tag: works-with-format::docbook Description: DocBook Tag: works-with-format::dvi Description: TeX DVI DeVice Independent page description file, usually generated by TeX or LaTeX. Tag: works-with-format::elf Description: Executable and Linkable Format The Executable and Linkable Format (ELF, formerly called Extensible Linking Format) is a common standard file format for executables, object code, shared libraries, and core dumps. . Link: http://en.wikipedia.org/wiki/Executable_and_Linkable_Format Tag: works-with-format::epub Description: EPub electronic publication Link: http://en.wikipedia.org/wiki/EPUB Tag: works-with-format::gif Description: GIF, Graphics Interchange Format Tag: works-with-format::xml:gpx Description: GPX, GPS eXchange Format Tag: works-with-format::html Description: HTML, Hypertext Markup Language Tag: works-with-format::info Description: Documentation in Info Format Tag: works-with-format::iso9660 Description: ISO 9660 CD Filesystem Tag: works-with-format::jpg Description: JPEG, Joint Photographic Experts Group Tag: works-with-format::json Description: JSON JavaScript Object Notation Tag: works-with-format::ldif Description: LDIF Lightweight Directory Interchange Format Tag: works-with-format::man Description: Manpages Tag: works-with-format::mp3 Description: MP3 Audio Tag: works-with-format::mpc Description: Musepack Audio Tag: works-with-format::odf Description: ODF, Open Document Format Tag: works-with-format::oggtheora Description: Ogg Theora Video Tag: works-with-format::oggvorbis Description: Ogg Vorbis Audio Tag: works-with-format::pdf Description: PDF Documents Tag: works-with-format::plaintext Description: Plain Text Tag: works-with-format::png Description: PNG, Portable Network Graphics Tag: works-with-format::po Description: PO, Portable Object Message translations for internationalized programs Tag: works-with-format::postscript Description: PostScript Tag: works-with-format::sgml Description: SGML, Standard Generalized Markup Language Tag: works-with-format::svg Description: SVG, Scalable Vector Graphics Tag: works-with-format::swf Description: SWF, ShockWave Flash Tag: works-with-format::tar Description: Tar Archives Tag: works-with-format::tex Description: TeX and LaTeX Tag: works-with-format::tiff Description: TIFF, Tagged Image File Format Tag: works-with-format::vrml Description: VRML 3D Model Virtual Reality Markup Language Tag: works-with-format::wav Description: MS RIFF Audio Wave uncompressed audio format Tag: works-with-format::xml Description: XML Tag: works-with-format::xml:rss Description: RSS Rich Site Summary XML dialect used to describe resources and websites. Tag: works-with-format::xml:xslt Description: XSL Transformations (XSLT) Tag: works-with-format::zip Description: Zip Archives Tag: works-with-format::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: scope Description: Scope Characterization by scale of coverage Tag: scope::utility Description: Utility A narrow-scoped program for particular use case or few use cases. It only does something 10-20% of users in the field will need. Often has functionality missing from related applications. Tag: scope::application Description: Application Broad-scoped program for general use. It probably has functionality for 80-90% of use cases. The pieces that remain are usually to be found as utilities. Tag: scope::suite Description: Suite Comprehensive suite of applications and utilities on the scale of desktop environment or base operating system. Tag: scope::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: system Description: Class of system Class of system a package provides specific functionality for. Tag: system::cloud Description: Cloud Cloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software, and information are provided to computers and other devices as a metered service over a network (typically the Internet). . Link: http://en.wikipedia.org/wiki/Cloud_computing Tag: system::embedded Description: Embedded A computer system designed for specific control functions within a larger system. . Link: http://en.wikipedia.org/wiki/Embedded_system Tag: system::laptop Description: Laptop A personal computer for mobile use. . Link: http://en.wikipedia.org/wiki/Laptop Tag: system::mobile Description: Mobile device A small, hand-held computing device, typically having a display screen with touch input and/or a miniature keyboard. . http://en.wikipedia.org/wiki/Mobile_device Tag: system::server Description: Server A physical computer (a computer hardware system) dedicated to running one or more such services (as a host),[1] to serve the needs of users of the other computers on the network. Depending on the computing service that it offers it could be a database server, file server, mail server, print server, web server, or other. . Link: http://en.wikipedia.org/wiki/Server_(computing) Tag: system::virtual Description: Virtual A virtual computer hides the physical characteristics of a computing platform from users, instead showing another abstract computing platform. . Link: http://en.wikipedia.org/wiki/Hardware_virtualization Tag: system::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: role Status: draft Description: Role Role performed by the package Tag: role::app-data Description: Application Data Tag: role::data Description: Standalone Data Tag: role::debug-symbols Description: Debugging symbols Debugging symbols. Tag: role::devel-lib Description: Development Library Library and header files used in software development or building. Tag: role::documentation Description: Documentation Tag: role::dummy Description: Dummy Package Packages used for upgrades and transitions. Tag: role::examples Description: Examples Tag: role::kernel Description: Kernel and Modules Packages that contain only operating system kernels and kernel modules. Tag: role::metapackage Description: Metapackage Packages that install suites of other packages. Tag: role::plugin Description: Plugin Add-on, pluggable program fragments enhancing functionality of some program or system. Tag: role::program Description: Program Executable computer program. Tag: role::shared-lib Description: Shared Library Shared libraries used by one or more programs. Tag: role::source Description: Source Code Human-readable code of a program, library or a part thereof. Tag: role::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: security Status: needing-review Description: Security How the package is related to system security Tag: security::antivirus Description: Anti-Virus Tag: security::authentication Description: Authentication Tag: security::cryptography Description: Cryptography Cryptographic and privacy-oriented tools. Tag: security::firewall Description: Firewall Tag: security::forensics Description: Forensics Post-mortem analysis of intrusions. Tag: security::ids Description: Intrusion Detection Tag: security::integrity Description: File Integrity Tools to monitor system for changes in filesystem and report changes or tools providing other means to check system integrity. Tag: security::log-analyzer Description: Log Analyzer Tag: security::privacy Description: Privacy Tag: security::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: sound Status: needing-review Responsible: free@agnula.org Description: Sound and Music How the package is related to the field of sound and music Tag: sound::compression Description: Compression Tag: sound::midi Description: MIDI Software Tag: sound::mixer Description: Mixing Tag: sound::player Description: Playback Tag: sound::recorder Description: Recording Tag: sound::sequencer Description: MIDI Sequencing Tag: sound::speech Description: Speech Synthesis Tag: sound::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: special Status: draft Description: Service tags Group of special tags Tag: special::not-yet-tagged Description: !Not yet tagged packages! Tag: special::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: suite Status: controversial Comment: What is considered a 'suite'? So far the idea was to just use tags in this facet to group together related packages. Description: Application Suite Groups together related packages Tag: suite::apache Description: Apache Tag: suite::bsd Description: BSD Berkeley Software Distribution, sometimes called Berkeley Unix or BSD Unix, and its family of descendants: FreeBSD, NetBSD or OpenBSD. . Link: http://en.wikipedia.org/wiki/Berkeley_Software_Distribution Tag: suite::debian Description: Debian Packages specific to Debian - look into "Software Development::Debian" for Debian Development. Tag: suite::eclipse Description: Eclipse Eclipse tool platform and plugins. Tag: suite::emacs Description: Emacs Tag: suite::gforge Description: GForge A collaborative development platform. Tag: suite::gimp Description: The GIMP Tag: suite::gkrellm Description: GKrellM Monitors Tag: suite::gnome Description: GNOME Tag: suite::gnu Description: GNU Gnu's Not Unix. The package is part of the official GNU project Tag: suite::gnustep Description: GNUstep GNUstep Desktop and WindowMaker Tag: suite::gpe Description: GPE GPE Palmtop Environment Tag: suite::kde Description: KDE Tag: suite::mozilla Description: Mozilla Mozilla Browser and extensions Tag: suite::netscape Description: Netscape Navigator The pre-6.0 versions of netscape browser Tag: suite::openoffice Description: OpenOffice.org Tag: suite::openstack Description: OpenStack Open source software for building private and public clouds. http://openstack.org/ Tag: suite::opie Description: Open Palmtop (OPIE) Tag: suite::postgresql Description: PostgreSQL Tag: suite::roxen Description: Roxen Tag: suite::samba Description: Samba Tag: suite::webmin Description: Webmin Tag: suite::xfce Description: XFce Lightweight desktop environment for X11. Tag: suite::xmms Description: XMMS Tag: suite::xmms2 Description: XMMS 2 Tag: suite::zope Description: Zope The Zope (web) publishing platform. Tag: suite::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: protocol Status: draft Description: Network Protocol Which network protocols the package can understand Tag: protocol::atm Description: ATM Asynchronous Transfer Mode, a high speed protocol for communication between computers in a network. . While ATM is used to implement *DSL networks, it has never gained widespread use as a technology for building local area networks (LANs), for which it was originally intended. . Link: http://en.wikipedia.org/wiki/Asynchronous_Transfer_Mode Tag: protocol::bittorrent Description: BitTorrent BitTorrent is a protocol for peer-to-peer based file distribution over network. . Although the actual data transport happens between BitTorrent clients, one central node, the so-called trackers, is needed to keep a list of all clients that download or provide the same file. . Link: http://www.bittorrent.com/ Link: http://en.wikipedia.org/wiki/BitTorrent Tag: protocol::corba Description: CORBA Common Object Request Broker Architecture, a standard for interoperability between programs written in different languages and running on different hardware platforms. CORBA includes a client-server network protocol for distributed computing. . With this network protocol, CORBA clients on different computers and written in different languages can exchange objects over a CORBA server such as orbit2 or omniORB. . Link: http://www.corba.org/ Tag: protocol::db:mysql Description: MySQL Protocol for accessing MySQL database server. Tag: protocol::db:psql Description: PostgreSQL Protocol for accessing PostgreSQL database server. Tag: protocol::dcc Description: DCC Direct Client-to-Client (DCC) is an IRC-related sub-protocol enabling peers to interconnect using an IRC server for handshaking in order to exchange files or perform non-relayed chats. . Link: http://en.wikipedia.org/wiki/Direct_Client-to-Client Tag: protocol::dhcp Description: DHCP Dynamic Host Configuration Protocol, a client-server network protocol for automatic assignment of dynamic IP addresses to computers in a TCP/IP network, rather than giving each computer a static IP address. . Link: http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol Link: http://www.ietf.org/rfc/rfc2131.txt Tag: protocol::dns Description: DNS Domain Name System, a protocol to request information associated with domain names (like "www.debian.org"), most prominently the IP address. The protocol is used in communication with a DNS server (like BIND). . For the Internet, there are 13 root DNS servers around the world that keep the addresses of all registered domain names and provide this information to the DNS servers of Internet service providers. . Link: http://en.wikipedia.org/wiki/Domain_Name_System Tag: protocol::ethernet Description: Ethernet Ethernet is the most popular networking technology for creating local area networks (LANs). . The computers in an Ethernet network communicate over twisted-pair or fibre cables and are identified by their MAC address. Several different types of Ethernet exist, distinguishable by the maximum connection speed. The most widespread types today are 100MBit/s (100BASE-*) or 1GBit/s (1000BASE-*). . Link: http://en.wikipedia.org/wiki/Ethernet Tag: protocol::fidonet Description: FidoNet FidoNet is a mailbox system that enjoyed large popularity in the 1980s and 1990s. . The communication between the clients and FidoNet servers was usually carried out over the telephone network using modems and could be used for transferring messages (comparable to email) and files. . Link: http://www.fidonet.org/ Link: http://en.wikipedia.org/wiki/Fidonet Tag: protocol::finger Description: Finger The Name/Finger protocol is a simple network protocol to provide extensive, public information about users of a computer, such as email address, telephone numbers, full names etc. . Due to privacy concerns, the Finger protocol is not widely used any more, while it widespread distribution in the early 1990s. . Link: http://en.wikipedia.org/wiki/Finger_protocol Link: http://www.ietf.org/rfc/rfc1288.txt Tag: protocol::ftp Description: FTP File Transfer Protocol, a protocol for exchanging and manipulation files over networks and extensively used on the Internet. . The communication between FTP servers and clients uses two channels, the control and the data channel. While FTP was originally used with authentication only, most FTP servers on the Internet provide anonymous, passwordless access. Since FTP does not support encryption, sensitive data transfer is carried out over SFTP today. . Link: http://en.wikipedia.org/wiki/File_Transfer_Protocol Link: http://www.ietf.org/rfc/rfc0959.txt Tag: protocol::gadu-gadu Description: Gadu-Gadu The Gadu-Gadu protocol is a proprietary protocol that is used by a Polish instant messaging network of the same name. . Link: http://pl.wikipedia.org/wiki/Gadu-Gadu Tag: protocol::gopher Description: Gopher The Gopher protocol /ˈɡoÊŠfÉ™r/ is a TCP/IP Application layer protocol designed for distributing, searching, and retrieving documents over the Internet. . Strongly oriented towards a menu-document design, the Gopher protocol was a predecessor of (and later, an alternative to) the World Wide Web. . Link: http://en.wikipedia.org/wiki/Gopher_(protocol) Tag: protocol::http Description: HTTP HyperText Transfer Protocol, one of the most important protocols for the World Wide Web. . It controls the data transfer between HTTP servers such as Apache and HTTP clients, which are web browsers in most cases. HTTP resources are requested via URLs (Universal Resource Locators). While HTTP normally only supports file transfer from server to client, the protocol supports sending information to HTTP servers, most prominently used in HTML forms. . Link: http://en.wikipedia.org/wiki/Http Link: http://www.ietf.org/rfc/rfc2616.txt Tag: protocol::ident Description: Ident The Ident Internet protocol helps to identify or authenticate the user of a network connection. . Link: http://en.wikipedia.org/wiki/Ident Tag: protocol::imap Description: IMAP Internet Message Access Protocol, a protocol used for accessing email on a server from a email client such as KMail or Evolution. . When using IMAP, emails stay on the server and can be categorized, edited, deleted etc. there, instead of having the user download all messages onto the local computer, as POP3 does. . Link: http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol Tag: protocol::ip Description: IP Internet Protocol (v4), a core protocol of the Internet protocol suite and the very basis of the Internet. . Every computer that is connected to the Internet has an IP address (a 4-byte number, typically represented in dotted notation like 192.25.206.10). Internet IP addresses are given out by the Internet Corporation for Assigned Names and Numbers (ICANN). Normally, computers on the Internet are not accessed by their IP address, but by their domain name. . Link: http://en.wikipedia.org/wiki/IPv4 Link: http://www.ietf.org/rfc/rfc791.txt Tag: protocol::ipv6 Description: IPv6 Internet Protocol (v6), the next-generation Internet protocol, which overcomes the restrictions of IP (v4), like shortage of IP addresses, and is supposed to form the new basis of the Internet in the future, replacing IP (v4). . Many programs already support IPv6 along with IP (v4), although it is still seldomly used. . Link: http://en.wikipedia.org/wiki/IPv6 Link: http://www.ipv6.org/ Tag: protocol::irc Description: IRC Internet Relay Chat, a protocol for text chatting over network, extensively used on the Internet. It supports chat rooms, so-called channels, as well as private, one-to-one communication. . IRC servers are organized in networks, so that a client can connect to a geographically near IRC server, that itself is connected to other IRC servers spread over the whole world. . The official Debian channel is #debian on the freenode network. . Link: http://en.wikipedia.org/wiki/Internet_Relay_Chat Tag: protocol::jabber Description: XMPP Extensible Messaging and Presence Protocol (XMPP) is an open-standard communications protocol for message-oriented middleware based on XML (Extensible Markup Language). . The protocol was originally named Jabber, and was developed for near-real-time, extensible instant messaging (IM), presence information, and contact list maintenance. . Designed to be extensible, the protocol today also finds application in VoIP and file transfer signaling. . Link: http://xmpp.org/ Link: http://en.wikipedia.org/wiki/XMPP Tag: protocol::kerberos Description: Kerberos Kerberos is an authentication protocol for computer networks for secure authentication over an otherwise insecure network, using symmetric cryptography and a third party service provider, that is trusted both by client and server. . The authentication mechanism provided by Kerberos is mutual, so that not only a server can be sure of a client's identity, but also a client can be sure a connection to a server is not intercepted. . Link: http://en.wikipedia.org/wiki/Kerberos_%28protocol%29 Link: http://www.ietf.org/rfc/rfc4120.txt Tag: protocol::ldap Description: LDAP Lightweight Directory Access Protocol Tag: protocol::lpr Description: LPR The Line Printer Daemon protocol, a protocol used for accessing or providing network print services in a Unix network, but also used for local setups. . CUPS, the Common Unix Printing System, was developed to replace the old LPD/LPR system, while maintaining backwards compatibility. . Link: http://en.wikipedia.org/wiki/Line_Printer_Daemon_protocol Link: http://www.ietf.org/rfc/rfc1179.txt Tag: protocol::msn-messenger Description: MSN Messenger The MSN messenger protocol is the protocol that is used by Microsoft's own instant messaging network. . The protocol is a proprietary protocol. Although Microsoft once send a draft of the protocol specification to the IETF, it has since dated out and clients that connect to the MSN Messenger network have to rely on reverse-engineered information. . Link: http://www.hypothetic.org/docs/msn/ Tag: protocol::nfs Description: NFS Network File System, a protocol originally developed by Sun Microsystems in 1984 and defined in RFCs 1094, 1813, and 3530 (obsoletes 3010) as a distributed file system, allows a user on a client computer to access files over a network as easily as if attached to its local disks. . Link: http://en.wikipedia.org/wiki/Network_File_System Tag: protocol::nntp Description: NNTP Network News Transfer Protocol, a protocol for reading and writing Usenet articles (a Usenet article is comparable with an email), but also used among NNTP servers to transfer articles. . Link: http://en.wikipedia.org/wiki/Network_News_Transfer_Protocol Link: http://www.ietf.org/rfc/rfc977.txt Tag: protocol::oscar Description: OSCAR (AIM/ICQ) Open System for CommunicAtion in Realtime, an instant messaging used by AOL's instant messaging network (AIM). The protocol versions 7, 8 and 9 of the ICQ IM network are also instances of the OSCAR protocol. . OSCAR is a binary proprietary protocol. Since there is no official documentation, clients that connect to AIM or ICQ have to rely on information that has been reverse-engineered. . Link: http://en.wikipedia.org/wiki/OSCAR_protocol Link: http://www.oilcan.org/oscar/ Tag: protocol::pop3 Description: POP3 Post Office Protocol, a protocol to download emails from a mail server, designed for users that have only intermittent connection to the Internet. . In contrast to IMAP server, messages that are downloaded via POP3 are not supposed to stay on the server afterwards, since POP3 does not support multiple mailboxes for one account on the server. . Link: http://en.wikipedia.org/wiki/Post_Office_Protocol Link: http://www.ietf.org/rfc/rfc1939.txt Tag: protocol::radius Description: RADIUS Remote Authentication Dial In User Service, a protocol for authentication, authorization and accounting of network access, mostly used by Internet service providers to handle dial-up Internet connections. . Link: http://en.wikipedia.org/wiki/RADIUS Link: http://www.ietf.org/rfc/rfc2865.txt Tag: protocol::sftp Description: SFTP SSH File Transfer Protocol, a protocol for secure, encrypting file exchange and manipulation over insecure networks, using the SSH protocol. . SFTP provides a complete set of file system operations, different from its predecessor SCP, which only allows file transfer. It is not, other than the name might suggest, a version of the FTP protocol executed through an SSH channel. . Link: http://en.wikipedia.org/wiki/SSH_file_transfer_protocol Tag: protocol::smb Description: SMB Server Message Block, a protocol for providing file access and printer sharing over network, mainly used by Microsoft Windows(tm). CIFS (Common Internet File System) is a synonym for SMB. . Although SMB is a proprietary protocol, the Samba project reverse-engineered the protocol and developed both client and server programs for better interoperability in mixed Unix/Windows networks. . Link: http://en.wikipedia.org/wiki/Server_Message_Block Link: http://www.samba.org/ Tag: protocol::smtp Description: SMTP Simple Mail Transfer Protocol, a protocol for transmitting emails over the Internet. . Every SMTP server utilizes SMTP to hand on emails to the next mail server until an email arrives at its destination, from where it is usually retrieved via POP3 or IMAP. . Link: http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol Link: http://www.ietf.org/rfc/rfc2821.txt Tag: protocol::snmp Description: SNMP Simple Network Management Protocol, a member of the Internet protocol suite and used for monitoring or configuring network devices. . SNMP servers normally run on network equipment like routers. . Link: http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol Link: http://www.ietf.org/rfc/rfc3411.txt Tag: protocol::soap Description: SOAP Simple Object Access Protocol, a protocol for exchanging messages between different computers in a network. The messages are encoded in XML and usually sent over HTTP. . SOAP is used to provide APIs to web services, such as the Google API to utilize Google's searching engine from client applications. . Link: http://en.wikipedia.org/wiki/SOAP Link: http://www.w3.org/TR/soap/ Tag: protocol::ssh Description: SSH Secure Shell, a protocol for secure, encrypted network connections. SSH can be used to execute programs on a remote host with an SSH server over otherwise insecure protocols through an SSH channel. The main use is, as the name suggest, to provide encrypted login and shell access on remote servers. . SSH authentication can be done with password or, which is the preferred mechanism, via asymmetric public/private key cryptography. . Link: http://en.wikipedia.org/wiki/Secure_Shell Tag: protocol::ssl Description: SSL/TLS Secure Socket Layer/Transport Layer Security, a protocol that provides secure encrypted communication on the Internet. It is used to authenticate the identity of a service provider (such as a Internet banking server) and to secure the communications channel. . Otherwise insecure protocols such as FTP, HTTP, IMAP or SMTP can be transmitted over SSL/TLS to secure the transmitted data. In this case, an "S" is added to the protocol name, like HTTPS, FTPS etc. . Link: http://en.wikipedia.org/wiki/Secure_Sockets_Layer Tag: protocol::telnet Description: Telnet TELecommunication NETwork, a mostly superseded protocol for remote logins. . Link: http://en.wikipedia.org/wiki/TELNET Tag: protocol::tcp Description: TCP Transport Control Protocol, a core protocol of the Internet protocol suite and used for data transport. . TCP is used as the transport protocol for many services on the Internet, such as FTP, HTTP, SMTP, POP3, IMAP, NNTP etc. . Link: http://en.wikipedia.org/wiki/Transmission_Control_Protocol Link: http://www.ietf.org/rfc/rfc793.txt Tag: protocol::tftp Description: TFTP Trivial File Transfer Protocol, a simple file transfer protocol. TFTP allows a client to get or put a file onto a remote host. One of its primary uses is the network booting of diskless nodes on a Local Area Network. It is designed to be easy to implement so it fits on ROM. . Link: http://en.wikipedia.org/wiki/Trivial_File_Transfer_Protocol Link: http://www.ietf.org/rfc/rfc1350.txt Tag: protocol::udp Description: UDP User Datagram Protocol, a core protocol of the Internet protocol suite and used for data transport. . UDP is not as reliable as TCP, but faster and thus better fit for time-sensitive purposes, like the DNS protocol and VoIP. . Link: http://en.wikipedia.org/wiki/User_Datagram_Protocol Link: http://www.ietf.org/rfc/rfc768.txt Tag: protocol::voip Description: VoIP Voice over IP, a general term for protocols that route voice conversations over the Internet. . Popular VoIP protocols are SIP, H.323 and IAX. . Link: http://en.wikipedia.org/wiki/Voice_over_IP Tag: protocol::webdav Description: WebDAV Web-based Distributed Authoring and Versioning, a extension of the HTTP protocol to support creating and changing documents on an HTTP server. Thus, the client can access the documents on an HTTP server as it would those on the local file system. . Link: http://en.wikipedia.org/wiki/WebDAV Link: http://www.ietf.org/rfc/rfc2518.txt Tag: protocol::xmlrpc Description: XML-RPC XML Remote Procedure Call, a simple protocol for remote procedure calls that uses XML for encoding and the HTTP protocol for transport. . SOAP, which is a considerably more sophisticated protocol, was developed from XML-RPC. . Link: http://en.wikipedia.org/wiki/XML-RPC Link: http://www.xmlrpc.com/ Tag: protocol::yahoo-messenger Description: Yahoo! Messenger The Yahoo! Messenger protocol is used to connect to Yahoo!'s instant messaging network. . This a proprietary binary protocol without any official documentation. Clients that connect to the Yahoo! Messenger network have to rely on reverse-engineered information. . Link: http://en.wikipedia.org/wiki/Yahoo%21_Messenger Link: http://www.venkydude.com/articles/yahoo.htm Tag: protocol::zeroconf Description: Zeroconf Zero Configuration Networking (Zeroconfig), is a set of techniques that automatically creates a usable IP network without configuration or special servers. . This tag is used for packages that implement one or more of: * IPv4LL for choosing addresses * mDNS for name resolution * DNS-SD for service discovery . Link: http://www.zeroconf.org Link: http://en.wikipedia.org/wiki/Zeroconf Tag: protocol::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: uitoolkit Status: needing-review Description: Interface Toolkit Which interface toolkit the package provides Tag: uitoolkit::athena Description: Athena Widgets Tag: uitoolkit::fltk Description: FLTK Tag: uitoolkit::glut Description: GLUT Tag: uitoolkit::gnustep Description: GNUstep Tag: uitoolkit::gtk Description: GTK Tag: uitoolkit::motif Description: Lesstif/Motif Tag: uitoolkit::ncurses Description: Ncurses TUI Tag: uitoolkit::qt Description: Qt Tag: uitoolkit::sdl Description: SDL Tag: uitoolkit::tk Description: Tk Tag: uitoolkit::wxwidgets Description: wxWidgets Tag: uitoolkit::xlib Description: X library Tag: uitoolkit::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: use Status: controversial Description: Purpose The general purpose of the software Tag: use::analysing Description: Analysing Software for turning data into knowledge. Tag: use::browsing Description: Browsing Tag: use::calculating Description: Calculating Tag: use::chatting Description: Chatting Tag: use::checking Description: Checking All sorts of checking, checking a filesystem for validity, checking a document for incorrectly spelled words, checking a network for routing problems. Verifying. Tag: use::comparing Description: Comparing To find what relates or differs in two or more objects. Tag: use::compressing Description: Compressing Tag: use::configuring Description: Configuration Tag: use::converting Description: Data Conversion Tag: use::dialing Description: Dialup Access Tag: use::downloading Description: Downloading Tag: use::driver Description: Hardware Driver Tag: use::editing Description: Editing Tag: use::entertaining Description: Entertaining Tag: use::filtering Description: Filtering Tag: use::gameplaying Description: Game Playing Tag: use::learning Description: Learning Tag: use::login Description: Login Tag: use::measuring Description: Measuring Tag: use::monitor Description: Monitoring Tag: use::organizing Description: Data Organisation Tag: use::playing Description: Playing Media Tag: use::printing Description: Printing Tag: use::proxying Description: Proxying Tag: use::routing Description: Routing Tag: use::searching Description: Searching Tag: use::scanning Description: Scanning Tag: use::simulating Description: Simulating Tag: use::storing Description: Storing Tag: use::synchronizing Description: Synchronisation Tag: use::timekeeping Description: Time and Clock Tag: use::transmission Description: Transmission Tag: use::typesetting Description: Typesetting Tag: use::viewing Description: Data Visualization Tag: use::text-formatting Description: Text Formatting Tag: use::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: web Status: draft Description: World Wide Web What kind of tools for the World Wide Web the package provides Tag: web::application Description: Application Tag: web::appserver Description: Application Server Tag: web::blog Description: Blog Software Tag: web::browser Description: Browser Tag: web::cms Description: Content Management (CMS) Tag: web::cgi Description: CGI Tag: web::commerce Description: E-commerce Tag: web::forum Description: Forum Tag: web::microblog Description: Microblog software Tag: web::portal Description: Portal Tag: web::scripting Description: Scripting Tag: web::search-engine Description: Search Engine Tag: web::server Description: Server Tag: web::wiki Description: Wiki Software Wiki software, servers, utilities and plug-ins. Tag: web::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: network Status: draft Description: Networking Role performed concerning computer networks Tag: network::client Description: Client Tag: network::server Description: Server Tag: network::configuration Description: Configuration Tag: network::firewall Description: Firewall Tag: network::hiavailability Responsible: miope@miope.org Description: High Availability Tag: network::load-balancing Description: Load Balancing Tag: network::routing Description: Routing Tag: network::service Description: Service Tag: network::scanner Description: Scanning Tag: network::vpn Description: VPN or Tunneling Tag: network::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: x11 Status: draft Description: X Window System How the package is related to the X Window System Tag: x11::applet Description: Applet Tag: x11::application Description: Application Tag: x11::composite-manager Description: Composite manager This tag also applies to compositing window managers: for compositing window managers, please use both x11::composite-manager and x11::window-manager Tag: x11::display-manager Description: Login Manager Display managers (graphical login screens) Tag: x11::font Description: Font Tag: x11::library Description: Library Tag: x11::screensaver Description: Screen Saver Tag: x11::terminal Description: Terminal Emulator Tag: x11::theme Description: Theme Tag: x11::window-manager Description: Window Manager Tag: x11::xserver Description: X Server and Drivers X servers and drivers for the X server (input and video) Tag: x11::TODO Description: Need an extra tag The package can be categorised along this facet, but the right tag for it is missing. . Mark a package with this tag to signal the vocabulary maintainers of cases where the current tag set is lacking. Facet: science Description: Science How the package is related to the field of science Tag: science::calculation Description: Calculation Tag: science::modelling Description: Modelling Tag: science::data-acquisition Description: Data acquisition Tag: science::plotting Description: Plotting Tag: science::bibliography Description: Bibliography Tag: science::publishing Description: Publishing Tag: science::visualisation Description: Visualization Facet: iso15924 Description: Writing script Codes for representating writing systems Tag: iso15924::arab Description: Arabic Tag: iso15924::armn Description: Armenian Tag: iso15924::beng Description: Bengali Tag: iso15924::bopo Description: Bopomofo Tag: iso15924::brai Description: Braille Tag: iso15924::cans Description: Unified Canadian Aboriginal Syllabics Tag: iso15924::cyrl Description: Cyrillic Tag: iso15924::deva Description: Devanagari (Nagari) Tag: iso15924::ethi Description: Ethiopic (GeÊ»ez) Tag: iso15924::geor Description: Georgian (Mkhedruli) Tag: iso15924::grek Description: Greek Tag: iso15924::gujr Description: Gujarati Tag: iso15924::guru Description: Gurmukhi Tag: iso15924::hang Description: Hangul (HangÅ­l, Hangeul) Tag: iso15924::hani Description: Han (Hanzi, Kanji, Hanja) Tag: iso15924::hans Description: Han (Simplified variant) Tag: iso15924::hant Description: Han (Traditional variant) Tag: iso15924::hebr Description: Hebrew Tag: iso15924::hira Description: Hiragana Tag: iso15924::jpan Description: Japanese Alias for Han + Hiragana + Katakana. Tag: iso15924::kana Description: Katakana Tag: iso15924::khmr Description: Khmer Tag: iso15924::knda Description: Kannada Tag: iso15924::kore Description: Korean Alias for Hangul + Han Tag: iso15924::laoo Description: Lao Tag: iso15924::latn Description: Latin Tag: iso15924::mlym Description: Malayalam Tag: iso15924::mong Description: Mongolian Tag: iso15924::mymr Description: Myanmar (Burmese) Tag: iso15924::orya Description: Oriya Tag: iso15924::sinh Description: Sinhala Tag: iso15924::syrc Description: Syriac Tag: iso15924::taml Description: Tamil Tag: iso15924::tavt Description: Tai Viet Tag: iso15924::telu Description: Telugu Tag: iso15924::thai Description: Thai Tag: iso15924::tibt Description: Tibetan Tag: iso15924::yiii Description: Yi Tag: iso15924::zsym Description: Symbols Facet: secteam Description: Security status Tag: secteam::etch-unsupported Description: No security support on etch The security team can not offer security support in Debian Etch for this package. Tag: secteam::lenny-unsupported Description: No security support on lenny The security team can not offer security support in Debian Lenny for this package. Tag: secteam::etch-limited-support Description: Limited scope of security support, see README.Debian Security support for this package is limited in covered functionality or to specific use cases. Please see README.Debian for details. Tag: secteam::lenny-limited-support Description: Limited scope of security support, see README.Debian Security support for this package is limited in covered functionality or to specific use cases. Please see README.Debian for details. debtags-1.12ubuntu1/autogen.sh0000755000000000000000000000010511701651666013266 0ustar #!/bin/sh # Rebuild the build system autoreconf -i ./update_files debtags-1.12ubuntu1/config.h.in0000644000000000000000000000460712232305342013306 0ustar /* config.h.in. Generated from configure.ac by autoheader. */ /* Location of apt-get program */ #undef APTGET /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Version number of package */ #undef VERSION /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE debtags-1.12ubuntu1/debian/0000755000000000000000000000000012302375724012507 5ustar debtags-1.12ubuntu1/debian/debtags.install0000644000000000000000000000007012201406157015476 0ustar usr/bin usr/share etc/ debian/80debtags etc/apt.conf.d/ debtags-1.12ubuntu1/debian/debtags.postinst0000755000000000000000000000021111702034220015704 0ustar #!/bin/sh set -ue # Get rid of old indexes rm -f /var/lib/debtags/*.idx* # Regenerate the indexes debtags update --local #DEBHELPER# debtags-1.12ubuntu1/debian/debtags.postrm0000644000000000000000000000222411465320073015362 0ustar #! /bin/sh # postrm script for debtags # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `remove' # * `purge' # * `upgrade' # * `failed-upgrade' # * `abort-install' # * `abort-install' # * `abort-upgrade' # * `disappear' overwrit>r> # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package TAGCACHEDIR=/var/cache/debtags TAGLIBDIR=/var/lib/debtags case "$1" in purge) if [ -d "$TAGCACHEDIR" ] || [ -d "$TAGLIBDIR" ] then rm -rf "$TAGCACHEDIR" rm -rf "$TAGLIBDIR" echo "Removed old package tag data from $TAGCACHEDIR and $TAGLIBDIR." fi ;; remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 1 esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 debtags-1.12ubuntu1/debian/copyright0000644000000000000000000000072412201407530014432 0ustar This package was first debianized by Enrico Zini on Fri, 25 Apr 2003 00:16:36 +0200. Upstream Author: Enrico Zini Copyright (C) 2003--2013 Enrico Zini Copyright (C) 2012--2013 Enrico Rossi Copyright (C) 2012--2013 Michael Vogt License: This software is distributed under the GNU General Public License, which can be found at /usr/share/common-licenses/GPL-2. debtags-1.12ubuntu1/debian/changelog0000644000000000000000000006754212302375724014377 0ustar debtags (1.12ubuntu2) trusty; urgency=medium * Rebuild to drop files installed into /usr/share/pyshared. -- Matthias Klose Sun, 23 Feb 2014 13:47:00 +0000 debtags (1.12ubuntu1) trusty; urgency=low * Drop "Testsuite: autopkgtest" control header, there are no actual tests in this package (Closes: #728686) -- Martin Pitt Mon, 04 Nov 2013 09:49:06 +0100 debtags (1.12) unstable; urgency=low [ Michael Vogt ] * Install files in python3-debtagshw [ Enrico Zini ] * Build with new wibble -- Enrico Zini Fri, 25 Oct 2013 12:41:25 +0200 debtags (1.11) unstable; urgency=low [ Michael Vogt ] * merged patch from Dmitrijs Ledkovs to add python3 support for the debtagshw module, thanks! closes: #686297 [ Enrico Rossi ] * Bash-completion now complete tags as expected. (Closes: #401037) [ Enrico Zini ] * Added /etc/apt.conf.d/80debtags, thanks to Daniel Hartwig. Closes: #670697 * Updated copyright file * Updated standards-version, no changes required. * debtags show: add "Tag:" field also to packages that do not have one already in the Packages file -- Enrico Zini Sat, 10 Aug 2013 12:12:35 +0200 debtags (1.10.2) unstable; urgency=low * debtagshw/detectors.py: - return HardwareSupported.NO instead of UNKNOWN if a udev property for the requested hardware is not found, thanks to Matthew Paul Thomas (LP: #1020057) -- Michael Vogt Tue, 03 Jul 2012 11:17:21 +0200 debtags (1.10.1) unstable; urgency=low [ Chris J Arges ] * debian/control: FTBFS: Add dh-autoreconf to Build-Depends. -- Michael Vogt Thu, 21 Jun 2012 15:36:30 +0200 debtags (1.10) unstable; urgency=low [ Enrico Rossi ] * Typo fixed in manpage. (Closes: #657684) * Re-added the cat command erroneously removed. * Bash-completion react to diff. Partially fix #401037 * Fix "Option --reindex listed in the man-page not supported" (Closes: #491408) * Fix "Permission denied opening vocabulary file" (Closes: #326819) [ Michael Vogt ] * improvements to debtagshw -- Michael Vogt Wed, 20 Jun 2012 12:15:58 +0200 debtags (1.9.1) unstable; urgency=high * Non maintainer upload. * Fix build failure with GCC 4.7. Closes: #672032. -- Matthias Klose Wed, 09 May 2012 22:22:40 +0000 debtags (1.9) unstable; urgency=low [ Michael Vogt ] * debtagshw/*: - add support for matching a given hardware:: tag against the current running architecture * debian/control: - add python-setuptools build-dependency [ Enrico Zini ] * debtags-fetch: cleanup stray commas from tag lines. Closes: #660180, #660222 * A 3-part version scheme isn't really needed: moving to major.minor -- Enrico Zini Fri, 17 Feb 2012 15:34:45 +0100 debtags (1.8.1~exp1) experimental; urgency=low * rebuild against latest libapt * debtagshw/*: - add python library that supports matching a given hardware:: tag against the current running hardware -- Michael Vogt Tue, 24 Jan 2012 15:07:05 +0100 debtags (1.8.0) unstable; urgency=low * Removed obsolete/unused command selfcheck * Removed obsolete/unused command stats * Removed obsolete/unused command todo * Removed obsolete/unused command score * Removed broken command smartsearch. Closes: #644011. * Removed broken command install. * Removed obsolete/unused command maintainers * Removed obsolete/unused command related. Closes: 403137. * Removed obsolete debtags-updatecontrol * Send patches via HTTP using external script debtags-submit-patch (included). Closes: #641968. Added python dependency because of this. * Manpage updated. Closes: #641379, #542525, 516098. * Documented tax expression syntax in grep. Closes: #589953. * Complain about unneeded arguments. Closes: #355634. * Fix tagcat to also show tags. Closes: #625456. * Homepage moved to the Debian wiki * Rewritten fetcher script. Closes: #478590, #481634, #617254. * apt-index-watcher is not in stable anymore: dropping conflict. * Removed obsolete 'rm's in postinst -- Enrico Zini Sat, 07 Jan 2012 13:20:34 +0100 debtags (1.7.11) unstable; urgency=low * Update /var/lib/debtags/package-tags. Closes: #602634. -- Enrico Zini Sat, 06 Nov 2010 19:33:06 +0000 debtags (1.7.10) unstable; urgency=low * Build with new libept. Closes: #588546 * No more debtags smartsearch, which has been obsoleted by axi-search * Switched to dh7 * Removed unnecessary python-dev dependency * Deprecated debtags-updatecontrol * Removed obsolete dependency on c++abi2-dev * Switched to Vcs-Git * Switch to dpkg-source 3.0 (native) format -- Enrico Zini Wed, 14 Jul 2010 17:22:13 +0100 debtags (1.7.9) unstable; urgency=low * Build with new libept -- Enrico Zini Fri, 23 Jan 2009 16:45:54 +0100 debtags (1.7.8) testing-proposed-updates; urgency=low * Solve name confusion between enum values and template parameters. Closes: #512640 * Improved bash-completion applying patch by Justin B Rye at #403137. * Stop smartsearch help from looping. Closes: #511669. * Don't choke on multi-line Tag: fields (although the continuation lines are currently ignored). See: #481634. * Suggests: wget. See: #478590. * Fixed Homepage: field and updated standards-version. -- Enrico Zini Fri, 23 Jan 2009 14:02:57 +0100 debtags (1.7.7) unstable; urgency=low * Updated tag vocabulary -- Enrico Zini Mon, 18 Aug 2008 12:19:14 +0100 debtags (1.7.6) unstable; urgency=low * Delete files left around from #472911. Closes: #473468. * Ship experimental tags from the security team. -- Enrico Zini Mon, 30 Jun 2008 16:59:53 +0200 debtags (1.7.5) unstable; urgency=low * Depend on new libept. Closes: #472796, #472911 -- Enrico Zini Fri, 28 Mar 2008 01:26:33 +0800 debtags (1.7.4) unstable; urgency=high * Ship new vocabulary. Closes: #464790, #464789. * Applied patch from #462009. Closes: #462009. * Build-depend on new libept-dev and libwibble-dev. Closes: #472476. * Urgency set to high because of #472476. * Updated standards-version, no change required. * Removed obsolete and broken mkbrowser script. Closes: #246678. * Added Vcs* tags. * Cleaned up README and put some actually useful information in it. * Passes make distcheck -- Enrico Zini Tue, 25 Mar 2008 15:47:13 +0800 debtags (1.7.3+nmu1) unstable; urgency=low * Non-maintainer upload. * Don't try to run debtags in cronjob when binary is not present. (Closes: #435067, #435235, #435243, #457058) * Don't make cron mail output unless an error is encountered. (Closes: #431994) -- Bas Wijnen Thu, 13 Mar 2008 11:16:22 +0100 debtags (1.7.3) unstable; urgency=low * Allow to install extra tag sources in /etc/debtags/sources.list.d/ * Depends on newer ept. Closes: bug#430567. * Fixed various command line options. Closes: bug#431796. -- Enrico Zini Fri, 06 Jul 2007 14:17:59 +0100 debtags (1.7.2) unstable; urgency=low * Added cron job to update the debtags index daily * Removed unimplemented todoreport command from the commandline parser (partly solves #402923) -- Enrico Zini Fri, 22 Jun 2007 14:52:07 +0100 debtags (1.7.1) unstable; urgency=low * Improved apt fetcher to collect as many tags as possible and to expand compressed tags -- Enrico Zini Tue, 12 Jun 2007 20:05:16 +0100 debtags (1.7.0) unstable; urgency=low * Fixed documentation of search and grep. Closes: #397516, #399102. * Added missing include, thanks tbm. Closes: #417153. * Fixed commandline help strings. Closes: #397516, #399102. * dumpavail separates records now. Closes: #423370. * dumpavail uses the same field names as apt. Closes: #423376, #423377. * Fixed examples to show the -d switch in the right place. Closes: 402852. * Suggests: tagcoll. Closes: #402853. -- Enrico Zini Sat, 09 Jun 2007 21:33:27 +0100 debtags (1.6.6) unstable; urgency=high * Build-Depend on new libept. Closes: bug#400994. -- Enrico Zini Thu, 30 Nov 2006 19:24:59 +0000 debtags (1.6.5) unstable; urgency=low * Rebuilt with new libept, to change the submit address for e-mail tag submissions. Closes: bug#399111. * Updated the tag fetch URL in debtags-updatecontrol * Include updated tag vocabulary * Include the reviewed tag database instead of the Alioth one. -- Enrico Zini Sat, 18 Nov 2006 18:35:46 +0100 debtags (1.6.4) unstable; urgency=low * Depends on new libept, which creates ~/.debtags if it is needed and missing * Added commented out link to http://www.iterating.org ratings tag source * Fixed handling of http sources in fetch script * Fetch script now deletes old downloaded files before getting the new ones * Updated FAQ -- Enrico Zini Sun, 29 Oct 2006 21:54:42 +0100 debtags (1.6.3) unstable; urgency=low * Conflicts with apt-index-watcher. -- Enrico Zini Mon, 16 Oct 2006 05:22:04 +0100 debtags (1.6.2) unstable; urgency=low * Build-depend on newer libtagcoll2-dev. Closes: bug#391815. * Also build-depend on wibble, since we include it explicitly. -- Enrico Zini Wed, 11 Oct 2006 22:13:21 +0200 debtags (1.6.1) unstable; urgency=low * Added --reindex option to update -- Enrico Zini Wed, 4 Oct 2006 17:50:57 +0200 debtags (1.6.0) unstable; urgency=low * Redesign with new libept. * New update algorithm, finally getting rid of apt-index-watcher and allowing to integrate custom tag sources more easily. * Updated Standards-Version. -- Enrico Zini Wed, 4 Oct 2006 10:03:56 +0200 debtags (1.5.5) unstable; urgency=low * Added dumpavail command. * Don't rebuild the database on install: apt-index-watcher does it instead. Closes: #357103. * Compiles with g++ 4.1. Closes: #357360. -- Enrico Zini Sat, 18 Mar 2006 20:31:47 +0100 debtags (1.5.4) unstable; urgency=low * Builds with libapt-front 0.3.8 * Uses the new on-disk index formats * Implemented update --local and used it in postinst. Closes: #343359. * Depends on apt-index-watcher to ensure that the indexes stay updated. * Changed commandline parser. On the occasion I also reworked a bit the commandline options. As I don't know of any particular scripts using debtags except my own, I took the freedom of changing as I saw fit. * Fixed pointers to tag sources to point to the new database on Alioth. Thanks to Adam Conrad who did the work for Ubuntu. * /etc/debtags/sources.list now defaults to getting data from the APT Packages file, and contains more comments on how to provide new tag sources. -- Enrico Zini Mon, 6 Mar 2006 10:57:18 +0100 debtags (1.5.3) unstable; urgency=low * Builds with libapt-front 0.3.6 * debtags maintainers works now -- Enrico Zini Mon, 13 Feb 2006 15:48:20 +0100 debtags (1.5.2) unstable; urgency=low * Builds with new libapt-front, so it does not ignore one-letter tags such as langdevel::c anymore. * Default location of tag sources changed to Alioth. * Added new experimental "ssearch" option -- Enrico Zini Sat, 12 Nov 2005 13:42:49 +0100 debtags (1.5.1) unstable; urgency=low * Updated to build with the cleaned up libtagcoll-dev * Give better insights on install feature in the manpage. Closes: #322954. * Set proper umask during update function. Closes: #326819. * Debtags data are now in the Packages file, so there is now a more finely grained alternative to sections. Closes: #144046. * Upload to unstable -- Enrico Zini Sun, 25 Sep 2005 14:18:57 +0200 debtags (1.5) experimental; urgency=low * Ported to new libapt-front * Don't depend on libdebtags1-dev anymore, as it has been merged into libapt-front -- Enrico Zini Fri, 9 Sep 2005 01:25:21 +0200 debtags (1.4) experimental; urgency=low * Big refactoring after tagcoll refactoring * Use libapt-front * Split from libdebtags1 again, to avoid circular dependency with libapt-front -- Enrico Zini Mon, 22 Aug 2005 23:37:57 +0200 debtags (1.3.3) unstable; urgency=low * Updated manpage mentioning debtags search as a way of seeing what would be installed by debtags install. Closes: #322954. -- Enrico Zini Mon, 15 Aug 2005 19:01:23 +0200 debtags (1.3.2) unstable; urgency=low * Include among the headers the .cc files with template code * Noes not abort on update when local sources are used -- Enrico Zini Tue, 9 Aug 2005 11:23:30 +0200 debtags (1.3.1) unstable; urgency=low * Fixed build-deps for building documentation -- Enrico Zini Sun, 7 Aug 2005 11:32:23 +0200 debtags (1.3) unstable; urgency=low * Merged with libdebtags1 source package Thanks to Benjamin Mesing for the help. * Recompiled with apt 0.6.40.1 -- Enrico Zini Sat, 6 Aug 2005 18:36:07 +0200 debtags (1.2.1) unstable; urgency=low * Compiled against new libdebtags1. * Updated bash-completion. * Saner postinst script. -- Enrico Zini Wed, 3 Aug 2005 23:25:41 +0200 libdebtags1 (1.0.8) unstable; urgency=low * Ignore reading /etc/tagvoc.d on update. -- Enrico Zini Wed, 3 Aug 2005 23:21:07 +0200 debtags (1.2) unstable; urgency=low * Updated bash-completion * Preseed /var/cache/debtags in postinst before first upload, so that installation works on networkless machines * Initialize libdebtags1 in update mode when doing tag add or tag rm. Closes: #319655. * Notify invalid tags passed to 'tag add' as errors, not as verbose output. Closes: #319656. * Correctly return exit code when grepping. Closes: #319756. * New libdebtags1 doesn't complain anymore about tags not in the vocabulary. Closes: #292208. * Manpage updates, thanks A Costa for the patch. Closes: #305803. * Removed lots of old content from README.Debian. Most is now in the Debconf5 paper also available in /usr/share/doc. Closes: #308931. * Updated the manpage. Closes: #318339. -- Enrico Zini Sun, 31 Jul 2005 16:07:09 +0200 debtags (1.1) unstable; urgency=low * Upload to unstable * Invoke debtags update on postinst -- Enrico Zini Sat, 2 Jul 2005 00:11:50 +0200 libdebtags1 (1.0.7) unstable; urgency=low * Catch error while renaming the downloaded file. Also tries to download in a /var/cache/debtags/partial instead of libapt's default, to have more chances to be in the same partition. Closes: #319126. -- Enrico Zini Wed, 3 Aug 2005 23:21:05 +0200 libdebtags1 (1.0.6) unstable; urgency=low * Compiles with gcc 4 -- Enrico Zini Sun, 10 Jul 2005 00:44:47 +0300 libdebtags1 (1.0.5) unstable; urgency=low * Fixed a segfault in Debtags::Package code -- Enrico Zini Mon, 4 Jul 2005 18:54:33 +0200 libdebtags1 (1.0.4) unstable; urgency=low * Ported to new features of libtagcoll1. * Upload to unstable -- Enrico Zini Fri, 1 Jul 2005 23:35:53 +0200 debtags (1.0) experimental; urgency=low * Bumped version to 1.0 -- Enrico Zini Sat, 18 Jun 2005 19:50:07 +0200 debtags (0.2) experimental; urgency=low * Ported to use DebtagsSimple instead of Environment -- Enrico Zini Sat, 18 Jun 2005 17:49:47 +0200 libdebtags1 (1.0.3) experimental; urgency=low * Fixed build-dependencies. Closes: #309534. Thanks to Kurt Roeckx -- Enrico Zini Sat, 18 Jun 2005 16:18:33 +0200 libdebtags1 (1.0.2) experimental; urgency=low * Reenabled outputSystem and outputPatched without conversion to Package or Tag * Fixed a segfault in DebtagsSimple when asking for the tags of non-existing packages * Renamed Debtags.h in DebtagsSimple.h -- Enrico Zini Sat, 11 Jun 2005 18:16:22 +0200 debtags (0.101) experimental; urgency=low * Added facetcoll feature * Added stats feature * Added todoreport feature -- Enrico Zini Fri, 20 May 2005 17:36:48 +0200 libdebtags1 (1.0.1) experimental; urgency=low * Improved the simplified interface * Added build-dep on python-dev * Added DebtagsTODO and DebtagsFilters -- Enrico Zini Fri, 20 May 2005 13:41:33 +0200 debtags (0.100) experimental; urgency=low * Ported to libdebtags1 -- Enrico Zini Fri, 13 May 2005 15:28:40 +0200 libdebtags1 (1.0) experimental; urgency=low * Ported to libtagcoll 1.0 * Packaged as a -dev only library -- Enrico Zini Wed, 13 Apr 2005 02:49:58 +0200 libdebtags (0.9.9) unstable; urgency=low * Removed very verbose notice messages during update -- Enrico Zini Sat, 19 Mar 2005 11:06:42 +0100 debtags (0.99.4) unstable; urgency=low * Updated build-depends on libdebtags-dev. Closes: #277859. -- Enrico Zini Sat, 23 Oct 2004 11:25:13 +0200 libdebtags (0.9.8) unstable; urgency=low * Updated shlibs file -- Enrico Zini Sat, 23 Oct 2004 11:15:02 +0200 libdebtags (0.9.7) unstable; urgency=low * Add descriptions to acquirers to provide more meaningful feedbacks * Don't expand 'Equates' when reading the package database (autodebtag should do that instead) * When removing tags not found on database during update, also prints the involved package names -- Enrico Zini Fri, 22 Oct 2004 12:12:25 +0200 debtags (0.99.3) unstable; urgency=low * Upgraded bash completion (Thanks to Emanuele Rocca) * Added progress report during debtags update download * Check for root privileges before debtags update. Closes: #277624. -- Enrico Zini Fri, 22 Oct 2004 10:52:35 +0200 libdebtags (0.9.6) unstable; urgency=low * updateDebtagsDatabase allows progress notifications via pkgAcquireStatus -- Enrico Zini Sun, 5 Sep 2004 20:19:52 +0200 libdebtags (0.9.5) unstable; urgency=low * Doesn't segfault on packages which are in debtags database but not in APT database -- Enrico Zini Sun, 22 Aug 2004 18:58:06 +0200 libdebtags (0.9.4) unstable; urgency=low * Updated build-dependencies. Closes: #265874. -- Enrico Zini Sun, 15 Aug 2004 14:47:07 +0100 libdebtags (0.9.3) unstable; urgency=low * TagDB can output the database to TagConsumer (useful for package managers like synaptic that could use the Tag class, but already have a different Package class) * Introduces Equivs: fields in vocabulary file -- Enrico Zini Fri, 13 Aug 2004 15:46:37 +0100 debtags (0.99.2) unstable; urgency=low * Didn't fail in some cases if commandline option parsing failed -- Enrico Zini Mon, 2 Aug 2004 20:03:55 +0200 libdebtags (0.9.2) unstable; urgency=low * Added build-dependency on libdebtags -- Enrico Zini Mon, 2 Aug 2004 18:52:22 +0200 debtags (0.99.1) unstable; urgency=low * Previous version didn't make sense: using 0.99.1 instead of 0.9.1 (I'm too sleepy to handle dependencies right, and I have try and get this right, right now... $^@!... :( ) -- Enrico Zini Mon, 2 Aug 2004 03:49:35 +0200 debtags (0.9.1) unstable; urgency=low * Depends on libdebtags 0.9.1 -- Enrico Zini Mon, 2 Aug 2004 03:31:07 +0200 libdebtags (0.9.1) unstable; urgency=low * Depend on libtagcoll 0.99 instead of 0.9 -- Enrico Zini Mon, 2 Aug 2004 03:28:45 +0200 debtags (0.99) unstable; urgency=low * Removed XSI:ism in debtags. Closes: #258850. Thanks to David Weinehall for the patch -- Enrico Zini Mon, 2 Aug 2004 02:08:23 +0200 libdebtags (0.9) unstable; urgency=low * Bug fixes over the previous preview version. * Builds with GCC 3.4. Closes: bug#261972. Thanks to Andreas Jochens for the patch. -- Enrico Zini Mon, 2 Aug 2004 02:03:15 +0200 debtags (1.0) unstable; urgency=low * Ported to libdebtags 1.0 * Only released in a separate preview APT repository -- Enrico Zini Sun, 1 Aug 2004 18:42:22 +0200 libdebtags (1.0) unstable; urgency=low * Ported to libtagcoll 1.0 * Now requires explicit "debtags/" path in #include directives * Only released in a separate preview repository -- Enrico Zini Tue, 27 Jul 2004 18:55:15 +0200 libdebtags (0.9) unstable; urgency=low * Make it optional to remove unfaceted tags when loading tag data -- Enrico Zini Wed, 7 Jul 2004 11:44:13 +0100 libdebtags (0.8) unstable; urgency=low * When checking if debtags update has been run, don't look for implications and derived-tags anymore (Closes: bug#257200) -- Enrico Zini Fri, 2 Jul 2004 22:54:57 +0200 libdebtags (0.7) unstable; urgency=low * Build-depends on zlib1g-dev -- Enrico Zini Fri, 2 Jul 2004 22:54:56 +0200 libdebtags (0.6) unstable; urgency=low * Downloaded vocabularies actually get processed -- Enrico Zini Wed, 30 Jun 2004 03:04:09 +0200 debtags (0.18) unstable; urgency=low * Ported to libdebtags * Depends on apt * Ported to cdbs * Added new "maintainers" option, and a manpage example on how to do Debian Developers' matchmaking :) -- Enrico Zini Tue, 29 Jun 2004 17:00:10 +0200 libdebtags (0.5) unstable; urgency=low * Try to download a vocabulary from every tag source * Filter downloaded tag data with its relative vocabulary or the system vocabulary * Filter out packages in the tag database not present in the APT database * Added -lapt-pkg in libdebtags.pc.in * Added shlibs file * Uses cdbs -- Enrico Zini Mon, 28 Jun 2004 18:59:36 +0200 libdebtags (0.4) unstable; urgency=low * Added Depends to the other required development libraries (formerly was only Build-Depends). -- Enrico Zini Sat, 29 May 2004 22:55:42 -0300 libdebtags (0.3) unstable; urgency=low * Do not try to install the ChangeLog anymore -- Enrico Zini Fri, 28 May 2004 20:11:00 -0300 libdebtags (0.2-2) unstable; urgency=low * Removed changelog * Fixed build dependencies * Fixed package description -- Enrico Zini Fri, 28 May 2004 19:22:54 -0300 debtags (0.17) unstable; urgency=low * Builds on GCC 2.95 -- Enrico Zini Thu, 27 May 2004 00:04:33 -0300 debtags (0.16) unstable; urgency=low * Implemented "debtags install" function -- Enrico Zini Tue, 25 May 2004 17:33:31 -0300 libdebtags (0.2-1) unstable; urgency=low * New upstream version -- Enrico Zini Fri, 21 May 2004 20:41:59 -0300 libdebtags (0.1-1) unstable; urgency=low * Initial Release, fork from debtags-edit -- Enrico Zini Sun, 21 May 2004 13:54:43 -0300 debtags (0.15) unstable; urgency=low * Updated copyright file * Updated vocabulary: * Introduces facet restructuring. Closes: #247644 * Added 'use::scanning' tag. Closes: bug#201532 * Added 'culture::ukrainian' tag. Closes: #249059 -- Enrico Zini Mon, 17 May 2004 17:36:40 -0300 debtags (0.14) unstable; urgency=low * Included in debtacs.cc. Closes: bug#204719 -- Enrico Zini Mon, 29 Sep 2003 19:34:22 +0200 debtags (0.13) unstable; urgency=low * Included the new README.Debian from evan@debian.org * Build-depend on libtagcoll >= 0.5. Closes: bug#202596 -- Enrico Zini Thu, 24 Jul 2003 15:23:09 +0200 debtags (0.12) unstable; urgency=low * Don't crash when displaying data about a package not existing in the apt database (thanks to chlunde) -- Enrico Zini Thu, 17 Jul 2003 12:45:23 +0200 debtags (0.11) unstable; urgency=low * Fixed a typo in the name of Hervé Eychenne in debian/copyright * Build-depend on zlib1g-dev. Closes: bug#195381 * Corrected many errors on the new description (what was I thinking when I wrote it?). Closes: bug#195186 * Print a proper error message if a debtags function is used before running debtags update. Closes: bug#195410 * Propagate http_proxy environment variable to wget. Closes: bug#196055 -- Enrico Zini Wed, 4 Jun 2003 23:02:23 +0200 debtags (0.10) unstable; urgency=low * Added a link to Erich package browser and to the deb-usability debtags pages to the debtags manpage * Build-Depend on pkg-config * Added mkpatch command -- Enrico Zini Sat, 24 May 2003 14:35:52 +0200 debtags (0.9) unstable; urgency=low * Ported to C++ * Corrected a non-working manpage example * If debtags related has an output of more than 30 lines with distance 0 and stderr is connected to a tty, print a message suggesting to refine the tagging of the packages at Eric's packagebrowser, giving the URL -- Enrico Zini Wed, 21 May 2003 15:41:39 +0200 debtags (0.8) unstable; urgency=low * Corrections to the manpage (thanks to Kevin B. McCarty) * tagsearch now shows items matching multiple times just once * Database is now kept packed, with all redundancy removed * Added "cat" and "grep" commands * "show" now correctly handles existing packages with no tags -- Enrico Zini Fri, 2 May 2003 00:46:21 +0200 debtags (0.7) unstable; urgency=low * In "debtags show", do not add Tags: informations to empty apt-cache output * Include a tag database with debtags * Add a commented file: source pointing to the shipped database * Add the possibility of installing local vocabulary additions in /etc/tagvoc.d * Merge the master vocabulary and all the additions at update time * Public location of the vocabulary has been changed to /var/lib/debtags/vocabulary * Extract implications from the merged vocabulary at import time and keep them in /var/lib/debtags/implications * Extract derived tags from the merged vocabulary at import time and keep them in /var/lib/debtags/derived-tags * Expand implications and derived tags at update time, so that applications using the package database will find them. The package database can then be re-compressed at any time with tagcoll -- Enrico Zini Tue, 29 Apr 2003 19:39:14 +0200 debtags (0.6) unstable; urgency=low * Updated debtags manpage -- Enrico Zini Mon, 28 Apr 2003 13:38:54 +0200 debtags (0.5) unstable; urgency=low * Added the mkbrowser example script * When proxying apt-cache show , subtly add tag informations to its output -- Enrico Zini Sun, 27 Apr 2003 22:39:42 +0200 debtags (0.4) unstable; urgency=low * Wrote an introduction on the system in README.Debian -- Enrico Zini Sun, 27 Apr 2003 16:20:41 +0200 debtags (0.3) unstable; urgency=low * Fallback on apt-cache if unknown commands are given * Renamed search and show to tagsearch and tagshow * Added `related' command * Added a manpage * Reworked commandline option parsing * Read package data from apt caches via libapt-pkg-perl -- Enrico Zini Sat, 26 Apr 2003 22:40:50 +0200 debtags (0.2) unstable; urgency=low * tags sources conflict with apt: changed the sources file -- Enrico Zini Fri, 25 Apr 2003 22:11:21 +0200 debtags (0.1) unstable; urgency=low * Initial Release. -- Enrico Zini Fri, 25 Apr 2003 00:16:36 +0200 debtags-1.12ubuntu1/debian/debtags.docs0000644000000000000000000000015011465320073014762 0ustar README doc/faq.rst doc/paper-debtags.rst doc/debtags-edit.png doc/ranganathan.png doc/packagesearch.png debtags-1.12ubuntu1/debian/80debtags0000644000000000000000000000022612201406003014172 0ustar // Update the package tags database from new index files APT::Update::Post-Invoke { "[ ! -x /usr/bin/debtags ] || debtags update --local || true"; }; debtags-1.12ubuntu1/debian/debtags.cron.daily0000644000000000000000000000023511465320073016100 0ustar #!/bin/sh # Update the data and index files of Debtags if [ -x /usr/bin/debtags ] then /usr/bin/debtags update 2>/dev/null || echo debtags update error fi debtags-1.12ubuntu1/debian/debtags.dirs0000644000000000000000000000020611465320073014775 0ustar usr/bin var/cache/debtags var/cache/debtags/partial var/lib/debtags etc/debtags/tagpatch.d etc/debtags/tagvoc.d etc/bash_completion.d debtags-1.12ubuntu1/debian/vercheck0000755000000000000000000000056412232305261014223 0ustar #!/bin/sh VERSION_AUTOTOOLS=$(grep ^AC_INIT configure.ac | sed -r 's/[^[]+\[([^]]+)\].+/\1/') VERSION_DEB=`head -n 1 debian/changelog | sed -re 's/.+\(([^)]+).+/\1/'` VERSION="$VERSION_AUTOTOOLS" if [ "$VERSION_AUTOTOOLS" != "$VERSION_DEB" ] then echo "Version mismatch between autotools ($VERSION_AUTOTOOLS) and debian/changelog ($VERSION_DEB)" >&2 exit 1 fi exit 0 debtags-1.12ubuntu1/debian/compat0000644000000000000000000000000211465320073013701 0ustar 7 debtags-1.12ubuntu1/debian/README.Debian0000644000000000000000000000116611465320073014550 0ustar debtags for Debian ------------------ Some links if you want to know more about Debtags: The Debtags website http://debtags.alioth.debian.org An introductory paper about Debtags, written for Debconf5 http://debtags.alioth.debian.org/paper-debtags.html (also available in text format in /usr/share/doc/debtags/paper-debtags.rst.gz) My Debtags talk at Debconf 5 (includes slides and video of the presentation) http://people.debian.org/~enrico/talks/20050710-Debconf/ You can have a look at the manpage for some example queries. -- Enrico Zini , Sun Jul 31 16:06:49 CEST 2005 debtags-1.12ubuntu1/debian/python3-debtagshw.install0000644000000000000000000000002112232304516017433 0ustar usr/lib/python3/ debtags-1.12ubuntu1/debian/debtags.copyright0000644000000000000000000000054111465320073016046 0ustar This package was debianized by Enrico Zini on Fri, 25 Apr 2003 00:16:36 +0200. Upstream Authors: Enrico Zini Copyright (C) 2003,2004,2005 Enrico Zini et al. License: This software is distributed under the GNU General Public License, which can be found at /usr/share/common-licenses/GPL-2. debtags-1.12ubuntu1/debian/control0000644000000000000000000000444112235660347014120 0ustar Source: debtags Section: admin Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Enrico Zini Uploaders: Enrico Rossi Build-Depends: debhelper (>= 7.0.50~), dh-buildinfo, dh-autoreconf, pkg-config, apt, libwibble-dev (>= 1.1), libwibble-dev (<< 2.0), libtagcoll2-dev (>= 2.0.4), libtagcoll2-dev (<<2.1), libept-dev (>= 1.0), libept-dev (<< 2), zlib1g-dev, python-all, python3-all, python-docutils, help2man, python-setuptools, python3-setuptools Standards-Version: 3.9.4.0 X-Python-Version: >= 2.6 X-Python3-Version: >= 3.2 Vcs-Git: git://git.debian.org/debtags/debtags.git Vcs-Browser: http://git.debian.org/?p=debtags/debtags.git;a=summary Homepage: http://wiki.debian.org/Debtags Package: debtags Section: admin Architecture: any Depends: apt, python, python-debian, ${shlibs:Depends}, ${misc:Depends} Suggests: tagcoll Description: Enables support for package tags debtags provides a system to download a database of package tags and keep it up to date. A package tag is a small label that gets attached to a Debian package to represent one of its qualities. . A package tag database in the system can enable advanced package search techniques, and advanced package browsing functions in programs that support it. . This package has been made as a way to deploy and test package tags support until it gets integrated in the normal Debian workflow. Package: python-debtagshw Section: python Architecture: all Depends: ${python:Depends}, ${misc:Depends} Recommends: gir1.2-gudev-1.0, laptop-detect, sane-utils, python-cups Description: Match debtags hardware:: tags against the actual hardware debtagshw provides a python library to match a given hardware:: debtag against the current system in order to verify that the system supports the hardware. Package: python3-debtagshw Section: python Architecture: all Depends: ${python3:Depends}, ${misc:Depends} Recommends: gir1.2-gudev-1.0, laptop-detect, sane-utils, python-cups Description: Match debtags hardware:: tags against the actual hardware (Python 3) debtagshw provides a python library to match a given hardware:: debtag against the current system in order to verify that the system supports the hardware. This package is for Python 3. debtags-1.12ubuntu1/debian/rules0000755000000000000000000000170012232305276013562 0ustar #!/usr/bin/make -f PYTHON3:=$(shell py3versions -r) py3sdo=set -e; $(foreach py, $(PYTHON3), $(py) $(1);) %: dh $@ --with=python2,python3,autoreconf override_dh_auto_clean: dh_auto_clean --buildsystem=autoconf dh_auto_clean --buildsystem=python_distutils override_dh_auto_configure: dh_auto_configure --buildsystem=autoconf dh_auto_configure --buildsystem=python_distutils override_dh_auto_build: dh_auto_build --buildsystem=autoconf dh_auto_build --buildsystem=python_distutils $(call py3sdo, setup.py build) override_dh_auto_install: dh_auto_install --buildsystem=autoconf dh_auto_install --buildsystem=python_distutils $(call py3sdo, setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb) override_dh_fixperms: dh_fixperms test -e /usr/bin/dh_buildinfo && dh_buildinfo # Custom rules used only during development debsrc: debian/vercheck git-buildpackage -S -us -uc rm -f ../$(RELEASE_PACKAGE)_$(VERSION)_source.changes debtags-1.12ubuntu1/debian/source/0000755000000000000000000000000011465320073014003 5ustar debtags-1.12ubuntu1/debian/source/format0000644000000000000000000000001511465320073015212 0ustar 3.0 (native) debtags-1.12ubuntu1/debian/gbp.conf0000644000000000000000000000040211707005036014114 0ustar # Configuration file for git-buildpackage and friends, see # /etc/git-buildpackage/gbp.conf # Options only affecting git-buildpackage [git-buildpackage] # let package generate upstream changelog before build: prebuild = GIT_DIR=$GBP_GIT_DIR ./update_files debtags-1.12ubuntu1/debian/python-debtagshw.install0000644000000000000000000000002212100512140017335 0ustar usr/lib/python2*/ debtags-1.12ubuntu1/sources.list0000644000000000000000000000300011465320073013632 0ustar # Source locations to get tag database info # # You can specify more than one; during update, debtags will merge the contents # of all the sources. The merged data can be found in # /var/lib/debtags/package-tags and /var/lib/debtags/vocabulary. # # To contribute tags, please visit http://debtags.alioth.debian.org/todo.html # Reviewed tag data from the APT Packages file tags apt:// # Package rating from http://www.iterating.org #tags http://www.iterating.org/tags # Regularly updated, but unchecked, database on the web # # If you plan to use Stable, please be aware that online tag # databases are more likely to track Testing/Unstable; so be careful # about downloading tags from them, and please check if tags are still # accurate for current package versions before contributing them upstream # #tags http://debtags.alioth.debian.org/tags/ # Example of locally maintained custom tag data # # You can provide your own tag data. To do so, place a file called # vocabulary.gz and a file called tags-current.gz in a directory, and use the # directory as a tag source. # # In the example given below, you would place the tag data in # /etc/debtags/mytags/tags-current.gz, and the vocabulary data in # /etc/debtags/mytags/vocabulary.gz # # The format of tags-current.gz is described in the tagcoll(1) manpage and the # file is similar to /var/lib/debtags/package-tags. # # The format of vocabulary.gz is like the Debian Packages file, and the file is # similar to /var/lib/debtags/vocabulary. # #tags file:/etc/debtags/mytags debtags-1.12ubuntu1/ltmain.sh0000644000000000000000000105202612232305336013105 0ustar # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.3 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION="2.4.2 Debian-2.4.2-1.3" TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 debtags-1.12ubuntu1/doc/0000755000000000000000000000000012232305431012020 5ustar debtags-1.12ubuntu1/doc/Makefile.am0000644000000000000000000000211711465320073014063 0ustar ## Process this file with automake to produce Makefile.in noinst_DATA = paper-debtags.html #paper-debtags.pdf IMAGES=debtags-edit.png packagesearch.png ranganathan.png if DO_DOCS paper-debtags.html: paper-debtags.rst rst2html --no-doc-title --stylesheet=$(srcdir)/main.css $< > $@ paper-debtags.tex: paper-debtags.rst rst2latex $< | sed 's/\.png/\.eps/' > $@ paper-debtags.dvi: paper-debtags.tex $(IMAGES:.png=.eps) latex $< latex $< paper-debtags.pdf: paper-debtags.dvi dvipdf $< $@ %.eps: %.png convert $< $@ faq.html: faq.rst rst2html --no-doc-title --stylesheet=main.css $< > $@ web: paper-debtags.rst paper-debtags.html paper-debtags.pdf faq.html $(IMAGES) scp $^ "alioth.debian.org:/org/alioth.debian.org/chroot/home/groups/debtags/htdocs/" else paper-debtags.html: paper-debtags.rst touch $@ paper-debtags.pdf: paper-debtags.dvi touch $@ endif EXTRA_DIST = paper-debtags.rst $(IMAGES) faq.rst tagging-guideline.rst main.css CLEANFILES = paper-debtags.tex paper-debtags.dvi paper-debtags.pdf paper-debtags.html \ faq.html debtags-edit.eps packagesearch.eps ranganathan.eps debtags-1.12ubuntu1/doc/ranganathan.png0000644000000000000000000003132511465320073015022 0ustar ‰PNG  IHDRÈ/7°~"PLTEÿÿú2.(¦£›ÖÒÈöòéÎÊÀÝÙ϶³ª“ˆ\ZRâßÕÁ½´|yrÇûìèßéã×Z qY pHYsHHFÉk>/{IDATxÚí]‰š«¨6ì‚Àû¿í­¿XÄD5ÝgÎÜo˜9½¤¥¬}ešÿOÖ4«ÿ‡5=¦yú¿XÀÈ?½‡ŸäŸÞÂ,õFþ²õFþ¶õFþ¶õFþ¶õ[ùóXþ5Œ¨IýIh~#Jyi…sNXíÓ‚ä‡0¢*ymÅBþÁãA_G›œdÌ¿‹ŸÁˆÊ:XO_­µ!.–¥»;K ~}Ì"&•T£·ë0⣂`°€ tØeqôŠ[h÷ôJdÀ¡‡à”ùW`ù#Ê訃6Qˆ…kÐ ^Jˆèaƒ(„dJô~Ÿþ>Œ(¦—ì ¢.©µ ­; –P&®ÅÃXs¼tÎꟅå[Œ¨0”;Ѥœ‰~dfÊQÉDG$EË>>ðÌaý($ß`D ²²A âÚmyHÊô¼Ë>“ þp†0”ˆ}ݼq 4ósÊæŒ(ãf#q@ás+‡+õU’„“²gï;|Šè‹hÎO?Åô_`D’`µ´5P—7Š˜X¾î‰þ:)âú † «òb›¨åÏ@òF21²õuïªîùeSEHáž6 ^I$µ—F‘ß®»Q“!)dåJ+ØôÞÃUàâ 9þ™Ÿ¤…®tæPr#Ê@†|ð®Ô+0` S*¾²Æ•ê…$ E)¿ä&Fè)ÓÖB^u´ê%c¤QU.'“µô$ºHH9Ò%Á$öZšTÞ,ÈôÏ`DeaW3pE¸_Èæ²Ñx‚C,f$öKH‹ðÀ}…œl†ÍN|”{ÉbaɹYŒ(÷Hud¯-é*Nð†Iƒ'´c+Œ„²­V½ø%NnaDi²AÌËË j0ŸÙ ª,m ¡£¥ØÂËòx,‚ô'-@FãçÙþyŒ$²Ôã“㑲cä 61…–dmiI„%ªB_€ B$À ~¤ÿýg1¢ ÞĨúŠùDZÁÚb`˜Ä¤!¹+%Ù“d›ÀÑ·%Äf^"›(`ˆÖÌîÃÝη_Æ¢((îù^l‘ÑhQ!jªéjy¸{æF¸ÐÒ‘;”Ô×Ñ+£vQÅQÝû‘­kþˆeÎŒ1§¬¾ÁçgÉk—K©£¯ ü Í> °£³„’ü%FXµ2¶\‘Z-ôøSÖïÄzË‘ea¾óiÑ“0¨FõD'«û¡Æ‹ ¥! _ÕÓOŸoR¿ ü”}&¯=p”[¶€¨áÒ§7w #ºFQòU_—ÌÂÒ#kù×E]B“ï*US euâr(åºÏŽh¼GUòynWÆxQ ›È0@yö"qz4vyŒk!RCæj§zçÒýµ«±_V$ZÊ“¡_2¨lt³0Ž?p‹œˆ"oþ‹6ÈeB,èQƒ@PÏ/·\ÞÅH£(m ‚{(Òô†¹Š”M.Çd;Äraò†¯’4ûáPw!<¦‚_ÑQ+‰¯c$¡N”×ÌE¢K±ÁÐb©\Ì6ªÌAÌbQ!µ ŒupÌŽ\F|ˆ‹š×m ¿êðO×0@àËU{¢VŽº’?SÃå¹4‹…5“d,û⥓‘h"Á¤#ÉprFè‹éJ$ÅpMÙ¤:â[Q¾•é®·æ/Ë†È jˆ8™Æ€‰KòŠ–ÅËDLŽ[²"taËHW‹ ¢êE;æ(ûƒÞÐt#ªÖ„6€ÁÍS ňR¥¼!œE¤„v%„]e$ðÜcs•E´Ÿ‰Æ¦!™ò Àˆ•ËaÕ^¨ªß½ïb&àtͪÙÂÙ#mƒ(Íæâl˜ðL )ôc%X²TjCىǬVŒœUI¬è`þpKé2l–k‰ÝI­·ºá±hÛv»Çå^ÒGvCl7QØÆ ÜÌt6N3òÈ9P+ ÏŽ[G¼–0¼ ñcx1{/F(Ø-_–ê;=f™J´˜ÍDá¿/"ÅåÔj‹hjûÒQ¥m…i„x[y\©D^˜{:dQˆ‹zž+— 2®„e7è+ˆàZ ˆAi˜å í,uG?;&`—R•6³k‰~¡ñÈKÛŽ¨8sÉ’§*a—äá G`-p1¡C§Y´¢°.¹D‚—ž]øð”;´b¿–ŒÅòü•Û£Ê9@zü(ŒCšy®\¼èÉ/ÖEhD[)ÁÖŠ ½(Éä*¥&uY]Íñ 4ö«Ôu#ˆi-LÞ³K¿1 §PL0@LJ)[ŽHÚRÁ?[M šmÍÇD<`(ÒV‡ÕŽÔ¤®‚'Ú+£ß=èµÊû<è‚ýïxt3ÊkÏB¹]“¤ö"z[ù{wzjþÈ£WãNúÝäT%1-¡Æ%}'Ö&ÌcB6¹ÅnÄÌŠt]}&šÊbÀgšœ_Ñe¢ÛOöâøú%$ë¬R‘b#u ÏtÙ¶w¦ 7Îïzçµ7Ö“R ¡a™ûÈÈjáªTâ²áh¾/É>XóÜû–1Êñl_¡±mTÚkÔï´V@’ìwÿ‘°Y(¹šöӍ޿Éw9û$gÜrl ÅgÁàѶFïL‹ôú–‚M;·!ëê…Ç G“>¦t,ÉqfL×1â9V3Ç(Ðï¥:kqÿžtÏý»*¼VvpðŒ!Ñ…/¬˜Ì ^€ðÛ)Orªyt?)F–æ®aÍý«cfŸ@ ‹ÞX2úÝ#õ°«ÅÈò¼¸6i!kÁÖ¬yfÛæ_™ýV’LpŸ‡XtŸRn'—¢¶ó|C\»Ä¸Ò’Z‹î=³'ðàB*b“ž‚­”Õ~Ž=CYÇÛø™yJÜïæä´-âP(ïxâõA0 â½±ßÝ0Úºn…–Ú³%p^–f3WáùYw8VŒ¤©ç-ÖLÆ+ð¦2~xdOª_Á©“jØ,p¿½¢m‘òX£ …1'ÅØÕК!¿æÅ /̘=û½ÑÚÊæ»þÈjE¼b¯iml,b‘¼½:òÊ[iKì1¶¿úgRGW5ZÄ·€Ìc‹’´¬zÛPmnÓ/V@úóìq­Ímvmg Yøã¤²F­`OóÖÊCÍø»:g £F@XÊÀ“6§´†°{K³÷Ó´kAufßÅÈ,ü(jÏxìŒï IŽm¿ÌÒ Uù®@˜þh¤‚¿„j\™ÌE¡ƒl~®ªìVþOªë·Óà!N»aâáüÝ 6·˜§¥ë>sõ˜ ×…æ/ NÇ zD¬‘J<Ša,㸴>ß*¢T#¯±+{ÔìÝ>‘ñËëž'tS„.öµ¬CÅ#5Rëãõæ=Mš6“hÏO3«*ïvFI-<¯:‚ž=Ä-Q=‹ŒJ{«ìb­½Ã¸!@ÄTa'­©Z'u6qL+ËoȵϨ”6äÐtUZÍÇ™¦•v FÔ´Šìµ[p»ÕÂk A¤\LA–gê¿ø”h?J™%`“x#ÇLº 47€×ÀCƪá‚-±ä+­U©µ¦°VU°Õ¥°µq“ƒ4åË’WbòˆÛrO²nõ@ì"é/Ýbq@A2W’×UæŒaG¥¹®”Èl @–iC¢§óˆzÙDS(ý¾'8 " Û~…¹gz%#zŸ%ö€mf«¬•ÇX@ô†ÐÆ¢TEbÈÅÍèäm÷Uuï8#¡Tcè:<ÍúÝL—b2Ôc ¹ A²Ôü´R+ˆ€Ðl”+9­É~ ‹$_›Br7j$®-O“EJÂ\ËÚš˜Ê¡d/ÔÔ§ft©5Ú¬S{ï˜õ*áà¯Óˆð¦ª± ¦x¨Ž(Ÿ–Õ2_‚v˜ ‘ÚÃ¥G™¹Ö‹›) ôe››~8CZ$n+všd(€ÐÎ —T*oèR&W}?ú#ú¼Ù0g#Ƈ&ñä©þœs(ÍÂÕy×r µ?™·’¸#_e“ÉTD3»Ö¶ xhk) ügiÉs|²á‘>ü$d4–VRÔ­®;ç1lªÉ镃|I—iÆIû»O²ùGœõ©¹k°#˜˜,IC .…5§u7ÌÎÑK+ý¦ª†?­¬HmXf›¬ 2r¡4~[su¬ª´Òf“uŽ€òôŒ¤ÚhÒÅb­«Á;‰*&K~{·øh ˜!D»À4”€”nx½†§´åK¦I2A%Ó Â,3i²«YuäÔ%zq+VšHçk{Áîh†LâzìXXÒTë,dc‰]ãõa$b 퉪4a„£z¢ŽuT‰hYдÉ&÷Þ”Ù–žuhŠaÊ%|©Šc5­»-ð‰u²ZáTZ¢‰$hV%ªp0˜qœÈÅ‚µQ†‡¶á!”íZ¹¾Foƒ­Œ‰ºAòlT@ Õ ,Ó |HZô¿CÒæTv8 †+ñŽYÝæyP:d%ÙÄÚΑmEôê äC@³~MÃ…æšâ©‘ÄÕ$3IîX”¥ Â©È¬ù™¶¬çÔIUÊ´_bñò¬ˆ–1»(á¡]\Ì’ sVºé”U¦âuW`zY*V¹DôEÆîªàªfSñ¤öS×d¢%b‹`ÀWä Ç#³·:¤® ")à;ÖåÉ€$Yhg µÃðJÉ› Ñ6“x eRFºàÍãäÊ­ÍEæW]‰B¡Ä  ÎEd…(ˆb0U2c.) ”g!W’5g–ƒGõ2“Ñ Q‹X¿„êÑx<$VŽ<.—›l0²â ­šnPêU˜ÑŠò<›GËò°âZiŽñÞÖô`AâـȻIòâËìCÑýއHMCÈ4’Öè&‹×YB!ç¥1ã‹Ä—®z:R©M-Jµ•ªªf­W}6¯UÜ¥_ª!Š,¬¡Ø$섈©z!(Æ œŽçú ]@"ÊéRPœ}ećÈflLQ¢0ÿ.IbV©ÕìÅrÌ“Š©ÒœB”®Õ÷¹:v¦I4~¥ÏUPdŒšy¤4Ƶ97·Ú»W0Ðt‰Bí1"QŠj.TÒk$e`0 Ì–ÈÎ3 “@˦WïÞç€JÍXWEûÕ÷´âŸÙ¹5tSr4?‰ŽÙ}Ã@-Nî²êèÅÙðÝü”ÁÈ ¢^òÎBdŽÁÈjI”*И)£ºFQV³BkêXhV™±ššÐ6ͬª¥£\ÉÄãèrÑ…˜kæx(£(sËYñ±/ã\ƒ`ÞavÒ‡dÈ;zðÏ="¯Çcê ‚O¦'wŒ“d ¬Cÿ`<šTy¤:—¼Ó¼úLÕ·‡1ÕðQ`é•}#(ÕR°‚!`$0°¼jmxÄdâU‹ÐBˆž¼K|#„Ð×(GÅÖ#‘&æ]’å‘oÀdvj»#À×¹¹*S U–ïEšV³KÎ[HÈ'1#ÜÚÒR¶ùʲØP8ì±­ò¬Üú"ÝüXybô|´{TPØRw€‚7Ô·HÈÚsÏXU ”-wšj¦ 3µrqz*i ¹mEõcwa¾¨<²ƒ‘™•¹±ù=è˜G˜Ì,Û7øp€oŒ×`ûHª³×4¾Žñ\ÍöŠ tÍy³»~þeM<‰æWl /U<Ý'^WÍц¥CRœžxòˆ &¢sáZåèuk0¨ócˆ4n"<ÏñüÔ½œi%#eª§€XÁ¨LRÎ"@Ìõ¿U£/Â=[¾¥£veâBnÁþÚd«ß) 6x—tÉçM2»òà!>GäR­™®†´8÷½¡ YB²±g«¸š wv »òw(¼ÎòßnìˆLL‚Ïra¥VµP׬adÏ8܆Pžw%3ö®`ØÍœv¦øï<¦Ç²Zh€ìªC¶-Âf)öZ`pY.ÉqìÊ ŒmhÿƒQ]kå5jÜùæêmLú‚1Ö(aòKu¸Ùv×(×z,´LG.`kUÎí!d6šRPÜ;öŒs¥è¹/¨£…A!ÄhèÄûÝòdÀwwuÙN¥ƒ€BtaÀ‡0ÀÆ’í @Èd"Ox-ò}„«‹J4á1Áè¨Û^*T<™Úò«Ü%䋉² Ä5{½×4z;¡ñLÑ%nȃ=wÜDDÁ"/ØZÈ‹+w Å8ãØ0ù#Gý;]aÀDAÔ ømd¼Û5uÕL–"{9VQ ™.J…þsl.T™qÉ ÇfW–Ãäl¼ƒ+ «wEáuQè‹ æ¥t¯:cûÇZ.°"áÕÒÓÓÛj`¬ñënä4ˆà\‰k„dfl¹ÞãÈï² åsríGx…d)Ïp–‰ #L˜!–Ïýá¢ÂGù‰$:çlx4YMïžAY}#~Fäpb˜ß`T±Ü~«ÑëXõM1ì ÉqR)T>KŽzkÏ7L<^ÓWyI~"F>1u‰¹ò>µ ¬ìçÊ#cöÿ%ß&Y7)¢X»gßlü+ĵ/IWÀ¸–™ü!ŽË¹ã÷¢—²kÝMÖ¦>à„y´eÎy]$AˆÉZ©énÔ×IÍËE襆ª9ØÚ5ŠR¡2øžjäÂ~¤ &@Ïñæ­®ÛxkнEÏ9x›p2E¥?sÀ›,1h2¼ŠÔZÙ}L“Ë„0lr AfÎ7§^좼«|q°; Œµ–ýõD~\*#iŽ‘=¢Ö`íªè I—s¥ (‹k$F=W·e‚WV©± þN¦GR¹gˆý²B²µgv-l (‰Ž=cÄò8\¢¥¡§ýÁµpwPE‚ªR¤k›z­SOÕw×PqP‰¹¾ëK…è²í¦b¶€‹I=büªô‚úÍc|ÔF‹M‚ã)QÉAyËãÚ ZªÊ‡“³ƒ‘F7=?2U¯hñ’#°27Âm‡<,݈beÉñeHBÀ¥ö¢±Çpq‚ü_Ã㹨¦E³jüÓª1%ÔŠÎ"‘Xb F´«l½0ÂaÈœŸÔÕ¢G®‡ÌŠÇ€ Fxk¶ù3V÷En‘ 1*Ñfv ˜Ûé§G¯E,-Žª”Ÿ@J=Àæ‡QR²º=‚äØž¸> ¶",)D?yÎ gò¤ÏCw â÷F[™vÓ'”ÌîÂdDuú­›dhŒ!8 ‰¤ Ï  l©P?žaäу×ìÞg J‹®@ŽÖ,ˆj·§M‘M‘Ó«å|dš”q@Û0ÇÍñ’=û¼V©UJ(¹&Êg>=¾8È -|<Ý‹bB¦OΪÁ …0a—¨äëx ÄoH6Ñ­}hQ‹²¦ÔJÀ'K¤2‚,–) ½g)>,yîëâü2ËL Gé¤?@±îe¿ùóŒ|…=%ÿQƒ£$N[è\™‹ƒ…ŽNãáM¬§ºVA ŸA Ú‚…ß}ú­*}÷ÂëÏï¡ê•ØÅ•ðÕSç¢A¶£Ê©˜ÂêCZ.ö™iÇÓp™v¤+DdõVé…):›ÚÛ5[œò.xä<dzŸM R«Ò°~àbA–U0Eù“›³Ê7×à[$Ù›«0ÍD+ ‘‹}ŒÊñÆkÈÿå/››|n¯™=JR“*Í'8 Uƒ¥Ê*˜Ôs‰/«Tœ“Ðê0–E‘ObD˜ïw5åÛ}ž?HË£y!WWƒ ¹÷ ^‡MÃnpCåzÛñ¸˜t$ž·£Œ{¡5ñi}bõ%«›ç,Ž­F׫߳w¹ªM‰ ,j0‚õ‚§?´è̹²}o1RÏ‹V¥VÛ°i\ï|•eŒèÐ¥ZD>Sb«^ßúõzk¨@dŽ.Ø€ˆ7Éހü=5<²pNcPÄ2þi‚çŸXÀ™‡¨oמ˞-V´'ýP¸ó]HÌ÷V%ûõ¹ñõ1m~{nÔB½S¦ÿ4ϳlûïÂ_0éׇBÌÄZ*è &d*Ÿïw¼#pA@\¡,LäÙ}ph¸¿Yϳa@d çæÓÚ»¶ÉOy÷f`$ñ!3N-jl?_ …ÈMúŠ=’ÐÊt ø¡ï%ßÍf!ïút¿w‹0b8Æ‹snyÊ O<®÷ÃÌœÕKË’ê¨Ú€¡—gÍ~Þå#ûâÕŽx‡‘*g5W=kœ})ZÃón^u¤<&´Úô—3fÐqÃp# ùôPÎÑÍèÆ}>k•H :"q¬ $=ÃWé;øfq•²Ó¾ðþøñ¡·ùhr#Þ€°d~¾m¯ÿ™•ƒQ'0Gà ù½Ož?g…É£Ü<i|”RyŽ""C~îÃUëgim'žìæ0e}p8”R§ tÑ 49¦j?ÒB䇰Vž4ÒZ3Œø•EHh)cON|·+ô Œp8$R‹“„š5ÈÙ`M›·“¥X»†ˆò¶Õ”|HÔ£m v¦I<ÿN1p£ÐÀôD—gî8ؾ˜Öf'&­×÷]ºjÒÛQ% úaA³£—SstúìY¹Ý)"¹½êÃy´¼ÃæêÚóñz0{J½ÃG@Øú5°²È©§Ïüm¸V>ˆW7 ¬¤w¬Ík¥z4!OÁçüYJ°­¹ûJ˳ŽÌ¹ú]FÑO§°3æåèz¾xpx.yäá㟴:¿ ‘ á<ƒ´(©_»!´äUå°ó4®€yѦ퇟Ï1Û» a„KÖ­½àCôZäÝë2´ˆEòÖàì±Øó ÕGaõM9äælá5å"H‚È·Ÿ¾ã k‘6Ö¿-sFÏá“„ù`Û®Œþ€õ´¤Íko÷zÀF ‹ÑÞn±¢6’ä_˜çÚNd³c2~ eÿ÷yçèÉ ÇnFóªÂÅÄ#äã’Í;æ Ô4ZÏxå–KüÕØ"±«H1")‚£Æ{ˆ_m‹ïÎWG¢øpÚׄÑ(%Ê“ºRoéêÎ^p7ol¨ "#QWÛa‡ÐøéÓd|ži ôü(4;œÝâOé‹W÷®Ï± ¾DJ®Cš¬H¡üŽ?²—{Jr®—'3!޶"ê¼Î~œ¥¢qÛÃ%Ö‹õ—VÜÔÉ>ð´°ÍØM6* Œ®ñ-øýÑL ÇùC:yú1°ÔB5°ÛÿÃ]GéÕ“¨·ÅCƒ3J,m¢žÒò(ByŒ4߯wORúóŸFÐer%ß´HFˆ¸1a#Ó¿X-”le:áFl‘z<‡€àº@—ED{Ž®A”¤~2 ¡ˆD…z«[ûõÉ«rùËHÔ{Óe/G€ ½çÒq^M°f ­hÌ™H¡.³k¤‘ä:Z˜R‘z>h'ÁS.z¸'‚©~Wi $˜EµÎÕÓÉ,s+DV<ûê^•ËÛ†ßÓ F”·â' Ö^;Z­š‘À%ýÓ1‚”t§¬2…ÿ4‹(L>l½ôzÞ¸Šâm}0įÿ\àN:7ŸúMÑÙi]=r5»Ÿ,geXzYAiX\ZQïÙ»s{à–ôubV‡ì´µñ{õqÅ„…ZÁÁjƤ†2Îô<Çe¹ ‚a¥1©£DåóžÒÓWS*r;<)ö5¨§H æw±úÓqý2ikñb 0ÙŽ¾RÎdúÅľÛo|²ºkÒÒˆùùtšP¥ D/¼)#óê(¯kgÀ_;j³.c¹¸`¬XÅðtÚÏ~¦raH5Ê\<™ŒfÇ+÷ *s×/ i××ÈÇ&@âY•þTÇÍ«ÜmJQmäõ•uñÌв<Ÿþ'‚ÝœÂp˜ØYðŒ8Ô‹ñL¹2]Yù‹œ;Lò?óîú3§– Yå {sý‰+½£˜`ÐøÄ'ÿÈËÕ8·0 ¢ÅP£!—r>ñ-8ÐOÌóN1%7]ÖÑ÷xd IÌ^XOZUÈK/óIŒ¨çŠ¡ÚÀ‰Q¥p±0Jæêº…Åúˆµ[dr^»ùdS…R»€ðDO£/há·0¢0AB¸¥e/êÈ!¶Îò"êT0yÖ—õsY÷0ÂG¯Öúfþƒà*žrD^$kÃË\Ò‚Ã5îñHàv R&e««åeéTÊK ‡u¹ÇTs‡ªÊºÉ#hÁh>v¡l»ì]ÔdÜÇXÛ¡ÖlÌå-ÝÂÈÄçËr%'"N[au­^‰>¨€l’!7r}ÝÈÁx6a5OŒÇ£'>ƒA¼A*ZýtÝÅþ•îaÄóP>rN uS‡»}stü'V嗂ůëFpj#€ y³+/YïŽ{ó™ÏÝÊá\û›'r#ˆ]ña¹ýa%÷þ*ì‹6yÉlíPhʼ)u×uG&Dc4ô⊨Úó1¾íÊéÕ,çn®’/5îj@jgK÷02ádZ‡ó*wç9‰>b'Ed~Ís7抳üDsÃ=ÁÍyÆŽ³¤Š1t '¨Ê°:? ¥>ÖG¡ þZîb$9žl…9y–CCÇüÉœ_Í«úUºY|Ç]ŒL¹L~s‚Þ·ÅJ?ÛË«u„¸vËO´hÜÇ »Gi¸½áM–’'×½ÚJßc ÂþÓmŒLxà¾=L¦¶(›ß‰H@Šc/¤a߯»A®3ó0ºÆ‰ÃX% XcÔN? ;„áÇÀ˜îc§¾wxÌX?4¾ÉA »9åÒÿuõtÅ»3Åa,mñ!‰úvŽßkãÊ~Óa”èìãqàÆ“ÚRu-ó£0ð…oc„Ÿ€p0ÇÙŸî…®ê,ÑŸ†ãŒL™gú×6íöçe¯,1±ä~õûájêï¹,æ)§V¾ÊÍ 7ÖáóVÃîãE°Ødå:o+ùµ¥»»—o0Ãv[ϪÊdgØì7úó-×Ö7U §[ùCòÚ'iÃQÅ@táwàø #ø|:sŒ‹‡#Ež ªª\•ç‡j]]ßa$OfãpNÍŽb CO¯Ô\ÛÇ—™Ðü¹9>úh§ çEÌáÒ¥¯¬o1êBžºª¡õžW 'Ìöâµ/ìâ{Œpm#üò ?~?ůôòaÖç·ë Œ¬ùCI>íï)ÅYþ¡d{yœNgÝÛÌ`„‹~InI>Фi¿>¯'åÚy^¾éÑ?±¾ç‘Š %ŽÇK•b9N–¦Ù V¿ ÉÏ`„¯”pÖ:F”5©4”1Ðþ¯æšï¬Â¯,êÁ YÄä´\A-÷û‹àüF&_<ÍJ™=ÚÏ̶_áWÑò“ᤨá#‚„Ãq|':SìÖ?‰‘rÅìÚÈ9}5 ÷ÍúQŒTPøÌ'ûÚ³û›pbä+“Ø?Vù}@~#¿¾ë=é÷;Ùûøoóý8ïwçÛ}P^_ûgxäÇoôÛ7ø-ùÅÕŠµ·/þ)Œü(${¦Û¿#­ x ÜgŒüuS&þŸ`$›[ù—¬#FöÖùÛÖ¹»~ë©ýŠõû¬ÿxäo[ÿaäo[óTNÂý·¯Çü?}TÃ}ÙóŒIEND®B`‚debtags-1.12ubuntu1/doc/debtags-edit.png0000644000000000000000000014040111465320073015070 0ustar ‰PNG  IHDRÁò´ pHYs ‰ ‰7ÉË­tIMEÕ',œiÁ IDATxÚìyXSG×À'61(¨ÅÝʪ("ˆŠ­oÅ¢b) ÈW6)ˆU au¥µE «".¸/P—EDEÚb[@¬`hÙ!!ßWocHB!@8¿‡‡'™Ìœ™9wî½çΜ{!€ÞC@q¹\PbÂ`TR(ÆŠøɤìÛ—rârhúÎG.sƒƒ;óò® „y“ÚÛÛoß¾ÓÖÖ.°@WW—®®Î¤I“ÔÔTñÄ— L¬æÃQ€¾sâò!aC`¼cC455®YãΛøv¥ƒûêÕëGž´µµÏœ9ƒ×ŒPVÓ€£ƒ .—+ÌW@ Eø2KWä+¯©©éèèÈW¬««‹Ãá<^ÝØØ˜•u”ÃaÏŸ?ÏÓÞ܇ ú‰?$!„æ²u¨7~Hw† 8——— üéý÷gee9räˆ#ø CC„Ðï¿?QV©¨¨ˆ™ ¼éD¢²¢¢¢P‚Ïzàr¹³!””Fji‘ÔÕÕÿùçÞœ0¢¹r ;§:ØìÆæÖÊ^þzïñ¯÷ŸˆïÎ<ªîÏvÃ÷…I^ôÑ2î ¢ÀÛxì³ì› ÃmB˜zð øÕ«×£Gkª¨¨ð•Â>XXL-)¹§¡¡¡¤¤„ „PCC=‰¤¥®Þ“ Í=`¦CWCMMÕÖÖ¶¼¼\AáÌ0â°bÅ EEEý1c—,]¶a•ã ³/¾Élï賸ˆM¹êÁ¿Úf²ì‹««ë; @HtÚ›ç²uTÝŸ¼‘}³`øØ¡_~¹ÜÑÑÉ·úÀá°—.]ÑÒÒ¢¦¦ÊgC`3 SB3gZihhL˜0 ûéÒ¥ól6‡/¿7x |6‚Ëå 0ÐX`ã:ÏR—¤ÙðoÓùü{'®Ýâ¥pttü`íº±:Zõÿ6úåö™ëwx§.\¸ÀûXÿÁßs¹ÜWMÍwKÿL;}¥¹µ ûÉÍÁúCG[²¦Æsfý‰«Ÿ¯_…œ6ÁèÓNÆcßCTú7ýÔ¯·ïÿñ·(³àÝye¬jGÛUÖ¸|Þ«>÷pCP³ Âç¹Ë澯=zTÝ«sn=8v¥ÓVðë윜æ55Ð` €8Œ©¬ªªJ$ªŒ¡ÀcCt!„»Ïƒeå‘%%÷fδDÍše…ÿtñâ9"QyÔ( eå‘=Ûl6›ÇtxdžèêâŠÿx€À“åd~ñG+–η³ÎÈ:Ù®¦½vÉŸ\rón~{0uµ›ë§kײÿeeýZ„´¶¶‰ŠWjiðóñ[½˜ýoÝÉ›%ó?ÙŠ9`³ød€"»)tg}åïóæÏ PìhŽùþRñÁ¹[V/)¼_òe Ëù, w>`›çÚ£GÅíNzPtÛÔÄôƒÕ«ï°Gª‰?/ò¡³½ï.E‚|Eèboñÿ¿î™•«löºå ½V,BèÇôÔ×í]l²QFná[›îW ÞÏx³W:ÎAÏÎjSR?Qô·›Z¾p^vÎ5Žæ›dff²;œqS¹eI „#F((((ð¹ „E˜P€@PRRÒÐÐàKÔÐÐÀÜ#ø,~‚Ëår8]lv'ÏÜûíÄ›˜‡€>ÎC´µBõõõNg{s£6iB(##Ï©«««ðº¶eÄ›—¨™LfËhîÖVúó!¯kZˆÝ%O77öþ`‰‰ÁU¢2v¶khh(´¾jonÔÕÒD½|ù²UÓ°«í(¼ø·§s}V/MJJêêêú«êyú©œû¿q‘³[ ?&Ÿ¯©Ý¯?“55B -¤ñ­µµ!2™<¢ñe‹â›‰úúú-cnK3Œ"èopˆ·ç»ÛÝ»…‚§:ÍCp:;ùlÞµŒ.aVˆ9ñ¡‹B(??Ÿ;BIYMƒÙðZLZ¿~ý«W¯ðÌ <ùuttZ‰Z!}mvŸ&tu |¸Þâ©5J–¸§¤èŽ:uŠ@ º8Êjµõ¯Æhkikk·ªh!„Æhkñ¿PøðÚ¯y&£•¦Oêéé¹yíšjQèÙÝÝâeýk}m_SEÏCàŸþmÒ=ŠD"µi0{‚ÅbºØ¼™Gj`ÃaðyÁ$«  ãüù3ÁÕÕ !dmmW\\4jÔ(¾©ó]]œÎÎη‡Ífó¾ øC€„tµ·ŒÕÕ^á`ûÁB»ûž=z´CI½½¹1ûòÏ>vÛ¸qã¾“×Ø\” F-š÷yr> àååµ;뇠ô©«#Bèܹs\¥öæÆæÖ65¢žžÞŸos!ÔòŠÅ!|¼æÞó4ûçëVyyyíκÄUPô^éÈûkÌÿmÌÊùõ ½º­ò¥'BííŠÌòF-“çTp²¯ÜøØ¯©çº7ûç‚{ë–/\µjUꥂUó „._¾ÌUP6ÃÇ€Àoê鳡Û=‹ÐÿÝÖuñâ9"‘¨¡¡q÷n¡µµBhÖ,«’’{˜Ñó<nCp8‡ÝÕÅéêêh Á<ˆÃùóç;Ùœ›[è/j“~#÷‡¨AÐ1R&.>ä¶·¬X`wö«ùlÎoåô³W~Uo®íÔ5ÅÊØ ÷žnýë¦ôŸŽ\ºt‰£EQVÓÈú9ÿãEs°EÌ)a×OgüW9ÆÅű^7¿òΛ—î<"Ø«œçŸþ2æE]É«7çΜ‚Í,*«i\½÷ä³ÿ-ž`bÂEÜßËŸý˜ö R!ììèq±ð¡ ãæ4ïTJ싺†c—óç½?UàÜC÷fg]-Tæv:ÚÛ¯X±‚õºñðɳÙÙÙ]šc„M`Àð±!Dgè³cöì÷mmç ,2kÖLÐÝI¯ëÒ¥óD¢2æD‰Â],ÿý·QY™ÈkC¼ A…í¹ÅbÕÿôÓá   W¯:;1·Ê.6»³³“Íå¾1 ~ùåú{ïé¬^ý!VÞvñÿ`¿ è,4B¸Έ‘ÄQÊ£xó(µ½Rn{M`w £¨Ò¡Jb+©âe[ÕõF¶²Ft±»#:TH*o&ö•[F¶°Ü.ôö½Œ-*Í/º:»#ÚU´Tš_"žø #[”Û^ºØzã(ßxþü¹¯¯/ö«RGóÈÖúìv.—Û¥DlSÕæ(©ˆê ¼òG¶6(p9ŲJS þ+VûܽوË%¶²”Úþ%t±»;‰šªd.Oð:0(/ºqûçlžiƒ®––Ö††ú––Öîñ ªª*$’–ººŸ5ÐÞÞÞÔÔÔÑÑ)ðΑ#•ÔÕÕ‰D"o:^›Í5J1ÕÙÙÙØØøï¿ŠŠ#ðºòò®xzúò[.•••Û¶Ett´³ÙØÄöš'Ö¬Y7n€yèíjüQ&Þ¾FñjÈÿ6¡ªƒGæÈwk„×1€a@ •I$- Áñ蕈Då””ÔÕÕ1oþ‹‚‚¢¢"ït_]!ÞX×JJJ£FRV&"„øêzçA&k}õÕþ^_a‘†¿Üyð¹ûŠÁ¸öŽÎ¿ª´]{ïÜhÓÐ넳« ¡¨¨Ø}©¢GFŒÁ·†ÄuaIw›‰Ø/CL>r™{âò 8Ì0$(/ºqêÇô÷F«©ŒTâtq[;:™¯›_U¼ÍÀ á#—¹CÉÄA<þ=‚ùC(€"€wÖ2 ƃFÈ¡Ci ,lC „`Qq€µ À†lÀ†l)ÚбŒ›.ûš 1näƒÄ˜›Vôn¿ ¾Û$^A§WÈàf,ºüW ÅXâö<}úg||bQQBÈÊÊjûömææf=¶“·ºþPȉ !³;¥ŒïÇÏžU¹»{„†ýõ—¡sçλ»{œ9sÒÈȆDúk'1q÷Ì™³ÍÌ,üýššš¥ÕÖŽŽŽ­[ÃÌÍ'Ïšeuð`:_ðÿ¬)ìÛ·ófoÕÕÕÕÕÕ=<>Þ¼Ù{ÿþ\~jêÁ™3-ÍÍ'‡††utt¬ÿÐÞÞaa1ÍÂbZDÄ,?–!3óˆ­­½±±Ù’%®üQ†¥çå]wrr166³µµÏÊ: ƒ6DwøæÉ“Òœœ‹ÅÅ÷ˆDbBB¢´$'%íc±X……7¯^ͽsçŽÀ© É–WnÞ¼µjÕJÞ”U«VÞ¼y ÿz÷nѵk?ߺuãåKfRÒ~ÑÕíÙ“T[[{óf^~þ¯t:=)iþSAAáéÓÙ¥¥]\œÃ¶a‰ÁÁ[CB‚ËÊJOž<þèÑc”€|ÚØ“·ˆÇýcÇNÐhQúúzêêja¹¹—%›Þè^Ñ™3碣#Éd-2™)E-444hkëð¦hkë44Ôã_£££Èd²¶¶vttäÙ³gEK;wîBTT$–ŸF‹>sæþSBB¬¾¾žªªªÏ¦ß~û K$‰µµµLfÝØ±cvíJ€A ¤ïQ[[³`3þ•@ HÐ,µ0™LƒqØg)jaôèÑuuL===<¥®ŽI"iá_ñz) “É-­®®ŽByÓ§¥¥¦¤|•’ò%‘H¤R£\\Á¸äp¢Gtuu‹Š ±I~:½¢ªª\Z’uttŒjìsuuµÛ}Ú÷ßg<|ø !!nûö0(€ajC¬[ç±mÛöª*:›Í)+{êï -É«V­¤ÑbëëX¬z*5¦{MMÍòrIL–  ÀôôŒ#G²ššššššŽÉJOÏ Ä3P©1,V=‹Å¢Rinnn¢«su]F£Åbù££i+WºŠ®= ¨¼¼¢³³“Ëår8l”À0µ!¶lñµ´´tw÷03›´d‰‹BúC„„‘H$›9Î΋­­­º—òóóY¾|¥ïe˜˜gee^¾|uöl›Ù³m._¾š••il<Ï`eeéääbg7LÖ ]]XX(™¬eo?ßÞÞA__/44Dt펎Ž^^Þææññ‰))û`PCBˆËå2•!ƒñ؀ϠøQ—weÁ‚EØOO߾Ʃì§{6_JßÂ…M]€éÂè !—A*ÁV €½¿Á°!°!€ï½ŒC‡Ò@#ôÚ†ÀG€´ýJ_×2°¯Š1žÎápwÏœ9ÛÌÌÂß? ©©Ï™‘ñµµ¡¡ èz\6Ø,ïÇßåˆÖŸö@*ãJ‚œ 4Ù¯¿½mYmmÍ‚ÎøW€ÖÕÕ•úUDØÁ}‡wüõ –t/4=ŠÂ /9¾ú÷±#"ŠÛ¤ø½†ó±ŸTÑ«†I?Æ”®®îÙ³§ôôôà~rŒöÜÒÔÔ,/ÿÏÅaÝ:mÛ¶WUÑÙlNYÙSÿÐ2 àÔŠñáÃGæÌ™obbîäär÷nÑ©S§š˜˜/Y²¼¬ì)ž-5õàÌ™–ææ“CCÃ:::øŠp@G¾ˆâ™™GlmíÍ–,qýã2Ô÷çŽŽŽ­[ÃÌÍ'Ïšeuð`º8Úè^DÏRt/¯M“&M15¸n'“É-¿­­-(h+ÞNÞöl§0ùÂäÓŸd^•"„6U`Õ‹÷Vr1…)„ÍfÓh±3f¼?eÊŒŒŒïø¤=~üÄÊÊî‡~ì•ò¯¼¼ëNN.ÆÆf¶¶öYYGá|q>Jýd”© áçç³|ùJ¼[¶øZZZº»{˜™M Z²Äî=€ŒÉË»Òß>7ÙÙÇJK®\¹bãF¯k×~ÍÊÊ,-}¸x±KxxžíîÝ¢k×~¾uëÆË—̤¤ý|BD8 ‹#_dñÂÓ§³KKº¸8‡…mC½qNJÚÇb± o^½š{çÎñ´Á_xymòöö*)¹_RrÏÔÔ”J-ïÞ䦦¦Û· ®^ͽ{·HbùÂäˆPïÛ{0¿J…5U`Õ‹÷Vr1…)$9yYÙÓœœ‹·nݨ®~Î+çêÕkžž^qq´O>ÙØ*å%8xkHHpYYéÉ“Ç=z 磘ç£TNFñ! „¸\.æÁž—w<€¡n=,X°ûŇ?JD÷ñÏ·.ˆ¥PŒ=z@"‘B­­­ææ“y¿Nž<­¢â/,[~~ž‘‘!B¨¢¢ríZ»w yåØÚÚgfþhbb‚ª««[´hiqq‘øòÅ,ÎÛÞî+neewâÄQ¬Ù••ÏæÏw¸8*Lxuu("‘—ÖÖV[Û¹>!ßÊÊîäÉc !ôìYÕ¼y º¾ ¬‹W¾09Âô#z„ˆP…À®‰é!L²˜8…µÊÚÚ.++ÓÄ„:‡JLMMÿî»ô©S§ˆ>dRQ©ÍŸÍ‹9;F´Šà|ódÄé~Uñº_uøu2/§/ì¹È!¢ãCHå}ì,E©¨¨ð}e³9<ç긷•Rð™^Èâȳ8o{Ä©ÉdâÍ600GoâT×#ÅÅ%ññ‰¥¥¿µ´´ˆÓ&“9vìXìó¸qã$–/LŽõŠ90ð¦ŠèšdCNœ1ðî=CÀ8Öª—/™†††Ý…¤§»fÍÿx ˆ~UiZZjJÊW))_‰D*5ÊÅeœ¼çc¯ÆIôhv l@>1÷ Kwn£{€`0:::|¿öѹŸŠëèèàÍ®®®–™ÞüüüwìØîà0_]]½¹¹ÅÂbªèüÚÚÚÏŸ?ÇvyÛ©¨8¢µµ»Ö744ô(_˜)º‡÷¶kRÇ¡°VéêêÐétcc~+<;ûØš5£FÚ´éS¨túôiߟÊË».Ú††çã AÐoP©1,V=‹Å¢Rinnn|¿öѹ·ÅÅt^µj%[_ßÀbÕS©12ÓU[[»²²²²²2ƒÁgwÅŠå11ñX;i´ÿœ',,,ÒÒ2Z[[kjj""vô(_˜qÔ˧ÒÞvMDq1%‹9ŽCa­Z½úÃÈÈè/jccãñôqãÆeg;|835õ`ÿ©' ¨¼¼¢³³“Ëår8l8e|>Â<„ ¶•³aƒÏ LieeéääÒÒÒ²|ù²@¾_·lñMMMsw÷¨­­555 ø¿^ ïmqÌý¹¹¹›QV<$$hûö66sÔÕÕ7oöþå—_ûC3Ý÷óKJÚM¥ÆøúnÑ×ãë»ùâÅK¢%„††lÛ¶kç§Ÿ~rýú ,}×®øÐÐm_~ù•®®®ŸŸoNN.–.L¾09⨗O¥ÂVµˆâbJs ‡ÂZ›àâ²”Ëå}Æ+gÌýììcîîŸõ‡Jq½¼¼ †±±qJÊ>8ûõ|”˜áåS™—weøÝÊ+ Fe÷1,EŸJ n“GO6J(//ß°ÁëÖ­ƒDÎ0<ƒ_¥p>JpUqÄ|*a-z¸îÀ†ƒVuTjìëׯëêêbc–.]<àrPép|*9[´êû¤<µ rí:88µµµº¸, p9¨lðøò}æxz®÷ô\?xä [cnH¨ÎÇþÖ2¹5 @ý ÌCòÉ |G@΀y†‚ A¡¯_¿‘Ëåò%‘€¡Å¬ehi‘~úéðÆ@û€ 8t( ”ÐWŰ!bci+V|`o?Û Œ:sûöíÎN¶õ¾}{±æŠq\\ÌÁƒé555ãÇÅÅÅTWWõÕ× Fµ™Ù„}û’&N4Gq8œ={’Ž?ÑÜÜâìì´kW‚ºº&¢‹ [Ä*ÖÃ)“ ÄĸÀÀ6›?º°ÝèQŸ·o†yyWxãš3•âüÞ» ²¶¶š3Ç.)‰?úµk—íìl‰D¢††FxxhAAþSbbü˜1ú***ÞÞ^ÍÍ-ññ1Ø×Í›½ŸnßȰ6Ðß d|ˆ &¬_ÿqdd4ž"l7z1±};¼> òcC „6nôd2™ø×¤¤Ý11q'N^»v½­­Mo¥mÙâkiiéîîaf6) hÉ8ÀÐOÈz-ƒÏ·‘@ >ü#þÕÉi¡“ÓBüëúõK ûª  àïïçïï×c½ 1ä|¬_-TÙÔ °_ ‡ðŇè?èô ñoí=:åÌ ºŠòò _ß-Ó¦Í211_¾|å¥K9Òªl`˜2^שׁ¢ôÑZ[[Û7~ùã'11Ô .¡lb›Í¦ÑbgÌxÊ”ßÉ Æää}¾¾›==דH¤‘#GΜ9ãàÁoàè6ô Ù‡¯NNÞ_Vö4'çâ­[7ª«ŸË Æ›7o­X±Ž5øT€t8uêtVVæ˜1ú!*5Käs5àýŠy9ô˜A¯^5ÉÚê×z†£ !þŽ€ÓOo:¼|É444äKä­Bàæ±=fÁèѤúz–®®n÷Ÿúµ^€áhCÀæÎ` ößs¶®®N76–†½ýœ .~ú©}À†\wè«W½gÏ.uuµ””¯vìØÞß5®^½FYYyùòeªªª¿ÿþÇÁƒiàV €ÌŸJ@‘Y|^‚ƒMMM]\–ÚÙÍÓ×—ÅÆoãÇ?~$?¿`î\‡I“¦FDìX¶l)}døTò öz§,_ÍPTTŒŽÞ½SX†×P$Xd155MOOí£Xp†lxÇ€AE˜{¦lb]€ ²@3²y|‡I-àØÈŠAº–!lCñ‹Ã 0 G·À€ÁÉYËàp8‰‰»gΜmffáïÐÔÔŒúâ‹ÇgãyŽ;ñÅ;±9 Řw2œÛ‡`¸1dÞË8pà›'OJsr.jhhDEQãâb¨Ô¨?^¯¢B\±Âõܹ §OŸÉÊ:³œ wâØ±™™?báÿ""Â-Z£¨¨˜šz`åÊKKËÉùùܹSŠŠ‚{&Å04 °ÏâG7k€á@_Âç:”¶`Á¢¡gCÔÖÖ,XàŒ%Ø2™ü¿ÿ}˜”´/:z'™L†Á`ðƇe´J€¡u…ì CÆBWW·¨¨N¯ÀþªªÊ±ô²²§YYGüúàÁ :#dñ!Ö­óضm{UÍæ”•=õ÷@µ´´ïߟ¼té’¸8šŸßÿµ··#„455ËËËy‹ƒO% SbË_KKKww3³IAK–¸ „vìˆòô\=AÊo IDATokkƒrvvZµÊmÇŽH„ŸŸÏòå+Án€þc°ûCྠþþ~þþ~¼¿&'ïáýêíí…[¶ø ”€T€X×€ñ!À† ‘Ùöß}çöí;66s†ÖÒ[¯Z;;8|º`C@¿X´SünÑO·øøD*5JŠËm|Í–ºM0àØN Twl F¥T^€ÆÞ%Æ?÷ÇM«¬ìéÂ…ŽRì;o›E´ðÏ?ÿ²²²KOÿõ³ÃÔ;(¾†Äñ€AE¯Î EÐ ,íííÂâ«ö%%½½}vîüÂÍm…\vº0ƒÑ<§PŒ33ØÚÚ›-YâúÇeø¯¼‹7ŠÃòdd|gmmghhÂWŠN§{ymš4iŠ©éÄuë<™L&V„ÍfÓh±3f¼?eÊŒŒŒïDËï‘‚‚[›6ù¦¤$ã„è®!„:::¶n 37Ÿ3óG„P]]Ý¢EK‹‹‹°l÷ïßÑÕÕX Nkk«­í܇ „¬­í²²2MLÞyp&_„X ÅXQqÄ×_À¢´‰ß5++»'Ž"„*+ŸÍŸïØ]¸¥¥í‰GÇ7B•—W¬]»®¨¨PD…©×ÆfŽÏæE‹œÇŽÓ[eöªSƒêx€Ìè~UáÁ7Úñëd^ÞOOßa·ªSÃÌXfãgK_ ±BHEE…ÍæÌ#l£8„À{B¨¸¸$>>±´ô·––Þ"/_2 Å—/‚„„øðð--’µµ•ø]c2™ãÞ^€ ¬««£PÞüdhhXWÇ”L·ii©))_¥¤|I$©Ô(—E’)S>ŽÈÖ¼8€g Ÿ`¯w œÙ[yºººgÏžÒÓÓ¿ˆŸŸÿŽÛæ«««77·XXL}+J‡N§ï£|„К5ÿÓÒ"y{û$'ïqvv³”ŽŽƒQÍCTWW Ì£­­ç¡ÓéÚÚ:=\}G´¶¶ª¨¨ „ðôéÓ§}ÿ}B(/ïzhh8fCHÖY98^0˜ŸJ@n Ù×Ë·Ù›ÀâDÓÖÖ®¬¬¬¬¬Ì`0p_„ÐêÕFFF¿xQÓØØ/±| gg§ï¾K ÏÎ>)f‘U«VÒh±õõ ,V=•#0«ë2-–Ūg±XÑÑ´•+]EË´°°HKËhmm­©©‰ˆØ§•—Wtvvr¹\‡ÝÇÎÊÁñ°!@¦H+>D¯àÛìMàFq¢IJÚ7qâäµkßl&‡hjjêâ²ÔÎnž¾¾žÄòq¬¬,;²{w’°—,ø "‘H66sœ [ %“µìíçÛÛ;èëë…††ˆ–¹kWüåËW'Ožææö!og½¼¼ÍÍ-âãSRöõ½³rp¼`p2ì|*ÁB¾í†~õ©Z éÆÐˆUq¦>•CÕÖ#¸\n_2߉ÑPÛ÷¶r@6ô‹ !­ Aþ 5$nÛ`[ô…!úÓÈÑ·ð… ]xï@\.×ÑqQO9Ò S?È/…}¹7?þ<$$d„ ÊÊÊ$iéÒ¥×®]l m„Š ñêÕÿîmW®\UUU­õ‘k׮͚5KUUõâÅ‹MMMýõ—§§g@@@XX(G*äå]xblClÙ⛚š†MMMÛ²Ågž@p¬øÞ†©—LêM}3'""BWWWUUÕÝݽ±±K'4229rä¬Y³?~Œ§'''((( ž1!!!:::$)99KlkkÛ´i“¦¦¦¦¦¦¯¯o{{;–^YY¹víÚ“'OÆÆÆš››+))ikk¯Y³¦¨¨¨  àÇIJµ··òÉ'jjjzzz{öìé±Í¡]»v½÷Þ{jjj^^^xux#+**V¬X¡¡¡A$]\\jjjDw–a}áSHkkë† ð6lz½lˆ7,^ìÒÐÐpçÎ]„ÐíÛw^¿~½xñŽëÂbÅó"N˜zÉä >‡ÐðàAqqqmm­ŠŠJxx8þÓ/¿üRPPÐÐÐàæææíí§ß¿¿¤¤¤««‹WNttô“'OŠ‹‹+**ªªª°Ä;vüóÏ?ýõןþYQQ‰¥'$$ÙÛÛß½{×ÔÔTCCƒF£uuõýû÷ïÛ÷æM¶ÈÈH&“ùìÙ³Ç_¿~]œ6ççç?yò¤¢¢âÅ‹QQQ|]±bEppðË—/kkk'MšÜcgq„õ…O!;wîü÷ß«ªª?~œŸŸ€|#êÝNÌ¥ñèÑã¹¹?:ôÃúõ—-[êîþ‘@WGÞXñ½ S/±œÞ†Ðç{·ÓÈÈè矞8q"B¨¶¶vúôéØÓ9@¨««#“É¡––MMÍÎÎN,ýŸþÑ××ÇŸÂ1oƒk×®™››óÖ5vìØëׯO˜0!ôôéÓ… bÑý nݺE¡P¦M›¶iÓ&//¯ŒŒŒàà`.—ÛÙÙ©®®Ž=å7îúõ릦¦¡¿þúËÌÌ «KD›ÿúë/,ÿŸþ¹páBƒ„øT¶´´bó=Â:+N_ø2nܸüü|ccc„Ðßÿ=aÂ{cHýÝNùC¦ïv®^ýÁ¾})ÙÙ'Ÿ>ý @‹#,VøàÉô5iÒ¤éÓ§?~ܸ7û#ÇÅÅéè蘘˜˜ššŽ7.&&¯4))©¨¨ÈÎή¼¼¼©©‰J¥677®Y³—I¥RÉd2…B™:uê¼yóÄi³½½ý”)SƯ««Í×È~øaëÖ­êêêNNN½ê °¾ð£¦¦†µÙÖÖ–oÖ 3`¿ŒàôéÓ›7o Z»v-…B©©©ÉÎÎ.,,•ýq?õôô…};€>øàöíÛÏž=sppPSS›={v~~¾˜ë ƒœààà†††ÚÚÚÏ?ÿüÃ?À–Àëý ì¹50L˜0áÛo¿•¿~™ššNœ8±¥¥ÅÍÍ­ûz `C€`üýýýýýCKÀG ¿µ îð•mô¨¥·oß±±™×M…wÛ¹¿_sô“Æd`‘ÄÇ'R©Q°#<6 .x·}‘³~õ‡BÊË+|}·L›6ËÄÄ|ùò•—.倯z%D2#£¬ìéÂ…Žp¶`Cô•Áðb' Oªªè}´ÖÖÖöÆ_þøãIL õÂ…‹ ÐÞÞ®¨®oØ ÞHÕyyW°²„ÍfÓh±3f¼?eÊŒŒŒïðËwxx„…Å4 ‹i;:::ðÊÇ̙3ßÄÄÜÉÉåîÝ¢S§N;8,411_²dyYÙÓ^e£Óé^^›&Mšbj:qÝ:Ol75¬xfæ[[{cc³%K\ÿø£ KïèèØº5ÌÜ|ò¬YV¦‹xÞ&Ãá$&îž9s¶™™…¿@SSsúINÞçë»ÙÓs=‰D9räÌ™3üfHkIê-û•w©H˜L Å8#ã;kk;CC¾R” pôJp”áÆ°3NÁ]˜€½Þ)Ëܼ¿¬ìiNÎE55Õää,qÏž¤ÚÚÚ›7ó¸\n``HRÒ¾ˆˆ7[¢dg#‘Fûí÷7z988dee’H£ÓÓ¿ 8wî´øÙ¼¼6ÑhÑß|óUgggRÒ~*5öÀ”·Å OŸÎÖÔ•žþmXض Î"„’’ö±X¬Â›q·ný\t¿J8pà›'OJsr.jhhDEQãâbD˹yóÖöí‚#ÙË–¤®±îBèô ¾EÈ|üøqnî%--zwŸdaJ8z%8ÊÀpcxÅ©”ñM%x„J<<%f2ö_œJ¾ ºµµ]VV¦‰É;+Ö––¶'N?Þ!T^^±víº¢¢BÔm;{sóÉw·3/­­­¶¶s>|н8žßÊÊîĉ£FF†¡ÊÊgóç;bÁ{ÄûA [[ûÌ̱íjëêê-ZZ\\$L3ÆÆþü³LQqDwM-- }ÔXwiÂzÊÛa2)ãû÷ïà{ <|J8zÅi30œ/¹bíý r6á„OK×òåK&¾õ9N]]…b€}644¬«câ?ñng„ìn/f¶ââ’øøÄÒÒßZZZл» ÌÏd2 ƽ5¬ D÷K „ÚÚš œÿ{á©Q£G“êëYøMδ$u ë)/"d Ô³%½e`¸þÀ°{w@êïSèêêÐét¾Dmmm£úm½tmmþ葟Ÿ¿§çú{÷nWU•ÿþû.—+:¿ŽŽÞªêêj‰:«[TTˆk²ªª¼Ç"öös„9QÊ«–ú¨±þ)L Go´¬^ýaddô‹5±±ñX¢«ë2-–Ūg±XÑÑ´•+]û£ê¶¶veeeeeeƒ¶­Çü«V­¤ÑbëëX¬z*U’îuë<¶mÛ^UEg³9eeOýýz,øÍ7i™™G^½zÕÑÑñðá#_ß-ò­¥>j¬;šššååå}‘)L G¯TÚ € @Ïšššº¸,µ³›§¯¯‡%†……’ÉZööóííôõõBCCú£ê¤¤Ý11q'N^»v½­­MùCB‚H$’ÍgçÅÖÖVÔ¸e‹¯¥¥¥»»‡™Ù¤€€ %K\z,2~¼ÑñãGòó æÎu˜4ijDÄŽeË–Ê·–ú¨1A³>Ë—¯Äã$)L G¯TÚ È7àS È |>•ô>úT V—\ð©ävp#„d`¿}çî—ï(€a‚ŒlˆÆÆÆ¤¤ýW®\­©y¡®®akkíé¹ÁÎÎVüG–þ~²¡PŒçÏŸwèм¾Çð85LlØà#zvAñ!`l€NlY°eËg††”ãÇŒ3æÕ«×wîÜÙ¿ÿK̆tqqÆß•ÂcÄß#‰ ‰0Ô°!$!==ÕвsgÔÌ™³mmçÒh±s^»vÙÎΖH$jhh„‡‡ôª""‘X[[ËdÖ;f×®>c¥G¬­­æÌ±ã50λI&“µµµi´è3gÎá?%$Äêë멪ªúølúí·ß°ÄcÇNÐhQúúzêêja¹¹—a¨Ie*BÌI@~lˆQ£F}þùÖÜÜ‹OŸþvèЯ_ÿëëë/0gqqÉêÕk&NœB¡››OnhxÕ«ŠÒÒRoÞ,X¶ÌÕÆfÎåË’ìÜ’ŸóÞ½û¼‰bÆâå‹k‹-¾ÌšeÅb±`¨r†¬ßí$&Lˆ¥N™2C`??ÿ;¶;8ÌWWWonn±°˜*¸ÝŠ#Z[[±Øø xúôéÓ¾ÿ>!”—w=44ÜÅ¥×o÷)))íߟäããþü<‹Å‹í¾#N,^]]ݳgOéééÁ“ÖTĆ >ØÿÞNBðî  =â£ÖnØ°ÎÆÆšD"1™ÌôôogÎ|cC`Ñ[±­áл¡X÷àø²YXX¤¥eøølzýúutôah‚(.—ËáüçÖЫ·4'L˜°~ýÇ‘‘Ñx ‹wÏž]qʼnŋň¥R£ÇŽû÷ßõÕ×_ý%Œ6™Ábð6púòÚÚ¡Ci¼¡wddCþðÃO;š››´µuæÍ››šzàíăÏòå+››[°{|RÒn*5Æ×w‹¾þ_ßÍ/^˜m×®øÐÐm_~ù•®®®ŸŸoNN.–ÍÑÑÑËË›Á`§¤ì“¸Á7znØð þ5,,tçÎ({ûù!W×å=ÆâݲÅ755ÍÝÝ£¶¶ÖÔÔ$ àÿ`ÔJe*BüIÞøà?À‹´®ŠëŸ¹ÞXט¡Í`Tö_¬k€áv+į“ëú„€¸{ÃÜÊ„6Ø °÷7`C6"ð]¶‡î6ßýÔrY*öXÈíÛwllæÈÁñ’¼¼+=îí)æUƒw§·~½âô¥.°–ÐB(>>‘Jç6Y>•€|¢/H|= Šß ËÓý ð®0¬®’²ïl¯BÒÉLÔàÔÕ ¢¬ìéÂ…Žpõ“å ^6"V„œÝAe|7€!G{{»¢"<Ë”á¥nˆ 4|èøyy×ãâ***ß{ï½Ï>ÛòñÇk»ßÚñ¯Ølû¥s8œ={’Ž?ÑÜÜâìì´kW‚ººšdíÉÌ<òõ×kkkÍÍÍ““÷Lš4QLùŠqDDXzúw---®®ËâãcGމ¢ÓéÑÑ1·oßîìdÛØXïÛ·WGG!Äf³ããOŸ>Ãfs?Û´éS^i?ñööñóÛüÉ'…IhkkÛ¶í‹ÜÜŸÕÔÔ6oöŽO_¸JêŸ/çÎ_|ûíw55µUUå= ØZñYGGGDÄŽ‹/aø<Ç'ª½½=22úÂ…K¡•+WP©‘˜æ{lUwá©©»A\WÂÞÛÁ§RÞÅWDX—Eœ8'Ÿ­Ð]fwm¡ßãØ´€?ˆKpðÖಲғ'?zôXüY:½¿¨8ðÍ“'¥99‹‹ï‰Ä„„D‰ÛSPPxútviéCç°°m½’÷nѵk?ߺuãåKfRÒ~,ÑËk“··WIÉý’’{¦¦¦Tj,–žœ¼¿¬ìiNÎÅ[·nTW?ç•sõê5OO¯¸8Ú'Ÿl!aïÞ䦦¦Û· ®^ͽ{·/Þ+mˆ£ÿÇçæ^Âîv= ØZñYRÒ>‹UXxóêÕÜ;wîˆsô÷ìIª­­½y3/?ÿW:ž”$ ¿0Šsq„)\‚Á«Rqªà+"N—{Õ5a2»k{ x ®-ƒ„áë{ºá¾Äºæ{T²±™ãã³yÑ"ç±cÇËÃ7Ñ=ƒ­­}fæØîquuu‹--..&MDc(ãG`[Ï·¶¶Nž<­¢â¯åãeóóó°}h+**×®õ¸{·/Okk«­í܇ „¬­í²²2MLŒù„P©‘©©éß}—>uê”î æ•`eewòä1 …‚zö¬jÞ¼X_Äl-–Y þùrÞ¿GWWW´ª*™·µb2++»'Žbj¬¬|6¾cw±|¢,-mOœ8:~¼B¨¼¼bíÚuEE…"Æ$o«Ä9‚xuÂÞÛÁ§R^„‰â+"¬Ë"Nœ§˜2‡Ð€ïqlK—îWEÞ¸|*…X×Àp?[zë^––š’òUJÊ—D"‘J’`gy„PmmÍ‚ÎÿYñ‚ÄÁ „ŠŠ ›Íé•|ƒqoµAa2™Øçââ’øøÄÒÒßZZZx˾|É444ì.$=ýÛ5kþÇ{=&ÉdŽ;ûœ™šzP´„+–ÇÄÄ××7°Xõ4Z¬dÚ¨ÿ¾¨BXkÅ:š¶r¥k÷"ÂZ%ÎìQáR9¢Eñ!¬Ë"NÑ]SCkÀ÷vlƒ !·ÄÆÒ~úé0ïU§½½=<<ÂÂbš…Å´ˆˆbÊÜ·oÿæÍÞ««««««{x|¼y³÷þý)|ÙTUU§L™B¥F­]»fïÞä^•EuttlÝfn>yÖ,«ƒÓñI¾Ùü+‡ÃILÜ=sæl33 ÿ€¦¦f__Ì…j¨QŠ¥ˆ‘‘¡ƒƒS[[«‹Ë¢àà@¸J ”Â¥x à˜‚rÀ†è”””öïOòññ?þ Ï@¯}‰1æÎµ;s期ŸïœÁœ9¶ÂgŽÏk×۲œ̅¹O‹éÈíìì´woòîÝ{ïß/NJÚcc¸ÙF8žžë==׃ò\áR<ýqLûcp€ï?`-£¿˜0aÂúõGFFã)øc¦§g9’ÕÔÔÔÔÔtäHVzzFP¿aÛÚÚZZZEËÊ:¶ukp¯Ê"áNæÂܧÅtä&Ÿ}æÿÍ7þOII Ø@ÏlÜèÉ E_b 㬬ÌË—¯Îžm3{¶ÍåËW³²2yß]¦PŒ MfͲ WVyùò%ì½dqÊâs2æ>-¾#÷ˆ#Æ7Z½úCò¼—FŠžÌ^^›V®\!þ¼K_ÀÆ0ACâ÷2äx/tuuee¥Óé®®Ëd\µÄ€‡¥ÁÀ‘âUl@0RYÈÀ÷ñ™º |d^ Z¤¸h 6 ÿH%ØÀøC6`C0˜éÙBà>@rÛÒðƇ̆ÀÍ…Ý>zöz'xSô’¬eÐét/¯M“&M15¸nÝáœÛÚÚ‚‚¶š›Ož5ËêàÁt|#/ﺓ“‹±±™­­}VÖQ\Ž|ït ¸1°mèqxþñ?ÔÏÐÛ·ïØØÌë .ÂËk“··WIÉý’’{¦¦¦Tj,–¾worSSÓíÛW¯æÞ½[„çÞ\VVzòäñGƒÒÀ`Tö÷$…bŒý ’;w?µgÈÙxóâã©Ô(lö, è¬e`kɼt|®]»Œ} ‰áá¡¶¶s±¯çÏ_£¢{uЗé×8¨ö)q³Ä ‚ššš¡!eÞ¼y›7{“ÉZƒ§×ý¡À²²§ :‰6€üØ=^‹‹‹KâãKKkiiÁ.LX:“É;v,öyܸqxþ´´Ô””¯RR¾$‰Tj”‹Ë¢½îr £âÜY[ZZ***²³O-^¼ìÌ™lÞóTþhooWT„0zÐH²–áççïé¹þÞ½ÛUUå¿ÿþ„ËåbéÚÚÚÏŸ?Ç>WWWãù§OŸöý÷>HHˆÛ¾}'(K:::¶n Ãýðt‡“˜¸{æÌÙffþþMMÍøO©©gδ47ŸÖÑÑÁ;g€„;Q(Æ™™GlmíÍ–,qýã2ñ©ªª:eÊ*5jíÚ5{÷&` ºIQ(ÆkÖB6›M£ÅΘñþ”)322¾ãmþŸ÷«°"ÈΆhkkWVVVVVf0aaÛðô+–ÇÄÄ××7°Xõ4Z,žT^^ÑÙÙÉår96ž+”€<‘”´ÅbÞ¼z5÷Î;xúß‹èèèèååmnnŸ˜’²”ô7yyWd¿´qæÌ¹èèH2Y‹L&GEEâéÇŽ Ñ¢ôõõÔÕÕ""Ârs/ã?EGG‘ÉdmmíèèȳgÏò ¼ví²-‘HÔÐÐ-((ÀJHˆÕ××SUUõñÙôÛo¿IÐZ]]†††l¡07)5 ká©S§cb¨cÆèkjjR©‘ât\‚"£‹…¸9ïä´ÐÉi!ž¾~½öAEE%%e_J B•——geÃÒÝÜV¸¹­!¤Žˆøw®Ý¶s“Båå] Çm5 k¡®®N76îE, Š )ï—addèààdoï ©9*88ô 2ˆÁǪU+i´ẌJÁÓ×­óضm{UÍæ”•=õ÷à±¹cX¬z‹E¥ÒÜÜÜø s<ê ­­­¥¥¥QQ´¬¬c[·` …¹I ¬QX W¯þ022úÅ‹šÆÆÆØØxqê• 2²!<=×—”ÜûãÒýû“UUUA¿Àð!$$ˆD"aþ@ÖÖVxú–-¾–––îîff“‚–,qÁ²²²trr±³›G&k‡„ðÛÜÂ$ƒB1644™5Ë244\YyäåË—(ʶP˜›”À…µ088ÐÔÔÔÅe©Ý<}}=qê•  „¸\.öÄ–—weÁ‚EØÙ„ >t( âCRwôò¦‹¿kF÷²=Þ•¡OÏÞ×6å€!tÉõôôåû@÷<4h¼ƒáeid q lOÌð€ŒQòǀćÀ °!@ Û€ `@ü€? Ÿ€G0@Ó/óÂüÃÁo䘇äœC‡Ò@ ƒÂ†8x0}×®=ááŸûúnõƒŸ |ÀÚÀé‹»_dÈÞÙ]]]‡‰ŠÚùí·ßoÞì­ .™À|#úãªØ;#àúõZZ¤7Œ­yýz>žÞÑѱuk˜¹ùäY³¬Lï1úˆ zgC:tØÓs=BÈÓsý¡C‡ðô¤¤},«°ðæÕ«¹wîÜé1úx½`Ùt:ýѣǮ®ËB+V¸>zô˜Á``?9s.::’LÖ"“ÉQQ‘xaéÀ0²!>ÂbÕO˜0‰B1ž0a‹Uøðì'&“i`0ûl``€–ý ƒQ nƒÂ†hoo?yòÔ­[7èô ìïÖ­ÙÙ'ÛÛÛB::: F5–³ºº/%,€ábCœ?aúôi¼s Ó¦M»pá"BhÕª•4Zl}}‹UO¥Æày„¥ ܾ}ÇÆfN¡ä<Ö»YÛ?ýtxýúu|‰ë×{üôÓa„PHH‰D²±™ãì¼ØÚÚ Ï ,†Š1ö7Èeâã©Ô(Ø{†âƇ¸xñ\÷D'§…NN BÊÊÊII»“’vcéxø)aé0Tú(ІÀ544æÍ³¥‘ÉZCHWeeO.tØ/0,`=;‰ÂB(@ºñ!0g£üü_UTT""¾ZoooWT„ðù0ŒOúãõN¾Éük^Þu''cc3[[û¬¬£X"‡ÃILÜ=sæl33 ÿ€¦¦fñ+"“ÉQQ;nÞ¼)º^ Å8#ã;kk;CCìkjêÁ™3-ÍÍ'‡††uttà·öðð ‹iÓ""vàé7[ @¬UÝ—i¦gf±µµ766[²Äõ?ÊįZXétº—צI“¦˜šN\·Î“Édbél6›F‹1ãý)Sfdd|Ç'íñã'VVv?üð£ mmmAA[ñ@yx/úr|l^„‚ƒ·†„—••žsæ\›-L ø$$Äêë멪ªúølúí·ßz¥1}¼ví²-‘HÔÐÐ-((ÀÒO:C3F_SS“Jý/ÌÝ?üøÅ‘‡ýàìì$ZÂùó##¿ÐÒ"‘É䨨¸„¾_là¾Þ¼‡âxÃâ%0ÏÞG侓––š’òUJÊ—D"‘JrqY„ª­­Y°ÀÏC Äo›ººú¼ysãz̯««ËûéF¡PðÙøºº: åÍ[Ù†††uuÌ>6[˜@ñ!‘ÞØ=***l6û,¦Æö±¸¸$>>±´ô·––Þ²/_2 » IOÿvÍšÿM:O&ÉdŽ;û‘ÖëýëЂJ}ýúu]]]llÂÒ¥‹A!€>•BéG^ˆú<ä022tppjkkuqY °!þŸ½;kâø>QŽ@ ‘#$„[D±Z-õ¦ZPð¢V‹B©¢T¥ròJ9DDlQÐZ*ŠgµÖ£ØŠå¨W[…P9$r… È}“÷µÛü’l÷õý<>>›ÉìîdwØ|3;;Ƹ!bäÑɰ|F;»Mvv›ào Ap/Cb@ €±úT‚1ˆw|- x àUb06aw¾zU¸yóŽ¡ÿ»€‘|y„€üå8|ΆÄ`l‚¸ô©Ä€CbF¼ää_±!"Ƥ1`tÇcø7?ÄìhD}éö¹0ØŠBÛŽ‰üõ×»••rròóçϵ³Û¼`Á|¨cá1„øãúñ&>>vȪÞ„páÂyqò»¹yWV– ®úc׮ݚšÌK—&OžüæMÝãÇ##A  Œ!àú Äüv2ÞÞ{{ n†ý°$'§8pÅ*TQQÙ½{×gŸÙ „ºººÂÃ\ºt¹©©yÙ2³°°ƒrr„PIII``ð£G:::çÍ›{ôèa†5|õÕÞo¿=]YÉ...èìì ½víÇÎÎ.—Ý_`û:w.!::†ÍfDD„NE<÷2˜L`Á ­­­{öìML¼C¡P¶oßÚcÓÅÇbbŽS(²!%%ÅU«V®Zµ{k(?`d‚>•`Ô."þ„º¹y¸»»åädÿðÃ¥þÉÄ¿ùæxVVöÏ?ßJOÿ‹L&<Š¥ÛÛ;lÛfŸ‘ñ$#ã/==½  ýøv233o „"""srrþùÖƒ©¥¥exžû÷^»v%;ûosóeÞÞ{ #4ÃáÃÝ¿{7ñ?þçC¿ïããûäÉÓ¦¦f¾·†ë£FBˆËåbWáää_‡ '½’“ݼyÇW Î{{ï½Óää_mlì++K±:Ìû–øõYp]Ñøú0Λ·pÇŽíË—/SWŸŒ'Ο¿øÜ¹ïuuuBÕÕÕË—¯LOçÿònii™?Ñß?ŶùäÉc:޽5wî‚óçÏéêêðí÷Ÿž*((`ëNŸþ.‹•Ï×!4Ã,øá‡‹L&!TTTlb²”·üB»dÖ××ÇÆžúí·ä‚–’’âŠnn.òòòCüÑ#ðëÀÎΞËãÎ =†{"*ê먨cd29((ÀÜ|9BˆÍ®\ºtÙ1;‰„-¤§g„„„fg?knnæMGáß²¡ª*ަ¦¦à¾°oY„ŒŒLgg—˜8Žºº:¶Ì`0ÄùPï¼óŽ——‡———Ë}ùòeLÌ)GG§„„øaüh€‘b0*ƒÑ_ÿ؃ED ƒô0ÅÌ™ï~÷Ý)„PrrЧ§CÐéôëׯªªªòeÞ¹ÓÉÏïÿ–,ùPNN®©©yÚ´B·I§ÓJJJttæeeå²²2¬¢´´´Wë’H$}}ýýûƒŒŒfáÁÈùh€aý!À¨lEèq0¢!{¼çììZPÀêèèàr¹]]XâçŸÛîÙóÅÅ%]99¹NNÎXzkk›´´´´´ô«W¯DÜõÿôÓõþþ• û÷‡ô³„––«ƒƒCjjj_¿®Ù·o¿8«lØ`sëÖíêêê®®®ÊÊÊðð#ï½7k~4Ĉ@.{úè£ìí·L Š:Š%îÚåhlllmm;eŠ¡³³ëŠæXú‘#‡‚ƒL:ÝÆfÓüùóˆ¶éææ¢§§gn¾rÁ55Õ~–ÐÓÓ]VVfÞ¼…Ë–YÌ™3[B¢çfH77—7n-]ºL_ª¥åºúúú'¾ 0, O%èèSÉÐŒÞ 6o¶ð ul|ÀÐØÙ9Nèñ*¹iÓ.—Kô[ŒóV&SGSSwÚ´wW¬X}ðà¡×¯kÆáE Ú_WWW]]½ÿÁ•+-Fé§Œ=7f***œ9svË–Íp°€ ì—kss3‹Åºr媅Ū¼"fŸÿ±ñÙG--Í%KÌZ[[ÌÍ—»¹¹ŒÞ zî±ÿ¾3gλ†–ØÛ;ééMýüs;‡ƒÿ¬9{6aáÂuu ÌÌÌÿøãÏ«W¯-Ybª«k°bÅꜜ\,[WWWhè¡÷Þ{Ê”iNNÎMp>F)YYY##£  ›‡Gˆ>¿ÉÉ)ffæ::SæÏ_|þü,±³³sß¾ý³fÍ12šuêÔi8¤ƒÄÎnSFÆ_/^dGFFÈÊÊ n !//zÀÅŽ³³“ï-ÒÝ¿ÿÊ•‹ÙÙü±å–-öII¿?.;ûo s_,Ñ8w`ô²¶ÞøûïDŸ_¡ã9Zˆ‰Å¦ó&úG†žXãCÌûÁÂ… Ž9êããÅ›ž”ô ¶@&“}|<çÏ_„¿‚³m›}xø‘`ìåöíÛ¢¢Žay.^¼|îÜ÷X—l__ïåËW8 §dT£Óiµµµ¢Ï/™Lf³ÙNµºúä°°ƒXæ«W¯?nòd5„PP?ßf{œè‹o¾ ÑãCº!äéé¾víú>Zjlü>ž(b@:ÞÁæÁØsDãÜыͮÂÏ5Ñù:ž#Ѩ…¸Þ> OÀH‰!$%%##ìØátãÆx¢˜Òÿf>ν.^¼´hÑÑç—`<ǵpXƇˆ!éëëoÚô™¿ žÂ; ]hhxo÷s¨®®þòå˯¿ŽŽŽ>§d4jii)((¸råÚ­[·üñŠèóëììêââÌdjðŽçˆZ&'G‰ŠúÚÏïÿúY$¼b$L ã=†@mÙb·yóVüå‘#‡‚‚‚w©©MvtÜ~ëÖí^mm×.Ç'b­­mÙl¶žž®³ó—p>F&S‡D"ÉÊÊhjjš˜,þå—ÛÊÊÊ¢Ï/6žã«W¯tttðñÝÜ\öï?hn¾’Ë庺îÀB¯0ô†¦,>>ª7^0N%è…Ñ8N%ÃC ÁŸ Ôv0¼_=S Ä€„B0ð@ @Áã1@Ä •W¯ áñ"0ÍÃó³ˆ!0Fc Æõ" Yõ€ßÁØs2,,ÜÇÇËÑq; 06cˆçH`À0ÆtwwŸ=›ðÕ·ß~·}û¶  ŒzP‰`(¤¤¤***lÙ²yÒ$jJJžÞÞÞîáám`0}öìbbNö˜Ä "Œ@ññgíì6!„ìì6ÅÇÇãéGŽ}ýúõǿ߽›øøñãÓ€€Áw‚¥¤¤äŸ2׬Y²´\óÏ?™¯^½ÂÞúñÇŸý•”•””üñUˆÒ€ À8rölÂë×5úú†L¦Ž¾¾áë×5gÏ&`oq8 ¶¬¡¡¯B”À(Ž!H$ßÂ`¯Øç‚ñ Ƈ#G[[Û?\}𠵤„…ý{ð õÊ•ÚÚÚB4íÕ«R,gii)¾Q:ÐÆ)ˆðÀ8tãÆÍ™3ßåmKÐÐÐx÷ÝwoÞ¼…úä“÷íÛ_SSûúuMPP0ž‡(ˆ!àkfœâr¹pÀxsæÌÙM›>çKÜ´ÉöÌ™³!wwW…yó.[f1wîx¢tF 80¨nÝúI0ÑÌÌÔÌÌ!$--}äÈ¡#GaéøðSDéŒ=·C´µµmݺ•B¡¨ªª†‡‡ó¾¦¢¢B¡Pìíí±{!‹eii)//O&“ÍÍÍ+++‰¶ÜÕÕåëëK§Óeee­­­ðF‰„·F´¶¶:88P©T*•êèèˆïˆ( ¥ÄÄD###)))--­“'O"„ôôôž={†½‹?À–­§§‡x™WäK„c £>†ð÷÷çp8EEE™™™)))¼o¥¥¥eee±X¬ŠŠŠ€€,ÑÒÒÒÍÍ­ªªŠÍfº¹¹m9$$äéÓ§ééél6[FFÆÇÇýÛÖÍårñFo??¿òòòüüü¼¼<‹åïï/: ¥Í›7544¤¥¥ýõ×_!ssó´´4„PIIÉîÝ»›››B©©©¢WäKìO©`|1DBBBdd$F£Óé‘‘‘¼oEEEÑét•¨¨¨„„üçÒ¥Kedd¨TjHHHRRÑ–OŸ>}ìØ1ƒ!//zíÚ5¡Ù.\¸‰íè믿ÆwD”†’ŒŒLyy9›Íf2™§NÂbˆÔÔT„Ðùó祥¥¯\¹‚Åæææ¢WäKìgÁàñNþ¢²²R[ûíµ_à{©££ƒß³xüø±‰‰‰œœ‰D¢P(¯_¿&ÚrYY™¡¡!vÛBUUµªªJh66›­£óvÒ[]]]6›-: ¥«W¯Þ½{wΜ9L&óúõë¡>úèÑ£GXôùÝwßÅÅÅaµâ£>½"_"0êcUUÕ·ÏÙñ¾…§ªªªbËVVVNNNeeeÝÝÝõõõ"úá«©©•––rÿÕÝÝ-4›ŠŠ ¾#‹¥¢¢": %ccã7np8œØØØ;w"„ääättt®\¹"//¿zõêÆÆÆ[·néééQ(Ñ+ò%ö³`0>  akkëîî^]]Íápø:7¸¹¹q8œªª*WWW[[[,±¥¥…L&“ÉäÂÂÂmÛ¶‰Ø²®»„… IDAT££ãöíÛ :;;³²²¬­­±t…œœ<ÛÆÝÝݱ¹¸¸ØØØˆNCÉÖÖ677·½½½»»»³³K´°°pwwǪÄgŸ}öå—_òu† Z‘7Ž-Œú"((HII‰ÉdΘ1ÃÄÄ„÷­Å‹ikkÓéôÀÀ@,1..ÎÃÃCNNÎÌÌlÉ’%"¶¼gÏžE‹™ššÊÊÊÚÚÚ®[·K÷öö666Æ;ð8p€F£éêêêéé1Œàà`Ñé`(­ZµjÍš5 ÅÇÇçܹsX"ö<Ά B666¥¥¥|!ˆVäM„c # !Äår±Vßää_áF2!ð;.œ÷öÞ+úÆDrò¯66ö••¥X†£†×=µ c%·³s„1¦¾Úè ˜/ŒÍƇˆ!èãA¸+CŒ8ÐŒM08 6h‡£tw€‘@H;Äò/ḀawÚÇNÄ»ØÝ hl€aí`ôî0@0*A  ;h‡£Oý! Ã@ €p=Þ΀û0âbˆ»ÑAýÌ@?« 0@0*õØ:LÀ؉!îF-s €#>ƶ ÁYÆú:À´F0^b0V KhãCÀ(ˆ!º»º^¤Üb¿|6QJJsÖ<Ëå¾|ü[ù‹ôÎŽvº¶áRK I)ì­¢ôÅ?êêhWÑŸnøáê 'b¿V±ÿ±¯œ–úÚÜßïÔ”q»»&k™­•’•Cuwv>O¹YUðÛ]þûXþêâ—ùmzóZš"¯=g1cú8y#¼}ÂðÃU…é÷Ûšä”èF¦kå”TDœwÁjÓcFz Qðgr{KӢͮqŸÝû O/|ú{§|î†ÒäÜ´Äü‡w ?\…½U[^<ßf'â¢ì{× þLÖŸo¶Ì)€ï^Æß·/˜¬|×ܪ»»«àÏäÜû¿ÌX¾!ôòß:ÛÛÛ¹r¹Üç¿ÝÀóg'ý8mÉje­)íͬ'ibˆ¯¦´Ðx½¤´Lñߟývc®•ƒˆó.Xm²±qh€QCTäf¾ÿÉ)Y„Á"‹êâ|,½ìyúì5Ÿ“åÞAéÏ7{téC,¶’¡ „¦.¶xúS¼þ|3ÁÍηم-L@zóL?‰½¬ÌÏ6^·U’,‹š²ÈœS”‡¥O”hkjhon$ËS§-]gnD59ð¾Ä#EÃ%«%É2!Í÷°ž¤‰>ï‚Õ¦?Eâí01n[,âãc¡Ë`˜cˆöæF™w°e™w&áémM ÏG ]…'¿B[s£ÐÞÐhÃCHÉʵÔ×ÊRB- oðtiY¹>Ý&M‘\å¿üõo¤ÿ½ÛÍ'óÎýË•5õ$¤¤;;Ú“OÄw×Úðû:áÝÝ;ôɳVÙ „ª‹_>ûí'ˆ!F)¢ó.fµéUG[U•1*Êyôè!›Ïà|0c5ƒwóîÿ2Ýôc.åÝÿOg½ÿ<ùæÔÅ+ÈòÔ¦Úê§i3–н•wÿ—i}Œ7÷þÕ)3Þþ*•&7ÕVS”±—]%$&L”h©¯Ítï¿«ž¾QÞƒ_§-]÷»¬»×tŒ?”‘Ÿ„ÿQ F¢óNTmú ÚB߇ƒÎB÷ƒ%/Rn§9*!%­9kÞAAkö¢¢ôO~:ÓÖÔ@QPÖyß_e’óÑ…ã]í*zÓu?Xòoþ…\9ÕÕÑŽ5}O7]›{ÿNëËd¹w´Þ[È~ùìíîæ.}‘|ÛóÝyÕ%/±tš¦þß·Ï·Ô¿¡LRš±lœ¹‘ƒ¨?„PDç¨ÚÅ1Ä„‰ÓM?žnúñÛPཷw’H$í9‹´ç,âË}…hÍ^È—®5{‘Öìÿ2Ó´¦Ð´¦ð¶j` %$–­3B!ÔT[]öüéÛö‰)3úÿÛ 8¢ˆ/ItÞ‰ª €k$ι•{ÿ—޶Ööæ¦ü‡wéºÓà$£²bèÉR&|ÓÕÙA×™ªk¼N1„X4fkÌ0†sú &Ô€!0“FÔãL¦Î æ .¡÷GÑfÃæÜã1€À¾¤I$…BÑÔdš˜˜lß¾MIIqÊSRÂê1hàÍÓc~€€ÁÒãøØ÷tss3‹Åºr媅Ū¼Â`0Æð1ÁÛ¤¥&jN–_o¦£ª,ÛŸ­EíY5 ˆ!þǯßÂq#?²²²FFFFFFT*õðáˆÈÈ„PWWWxø‘K—.755/[fvPNŽ‚JNN9pà ‹U¨¢¢²{÷®Ï>³Auvv†„„^»öcgg—‹Ën‡/°v…¯¾Úûí·§++ÙÅÅx3“©ãëë}òäéæææ5kV…„ì—’’ÂE°ÿñlØB[[›¿àÍ›·Blä/%%…e ŽŽŽa³ÙᆆbÜŠ}ë·¶u¥=-?{3Ïkë,¨i€>ƒþ „µõÆß€-óÍñ¬¬ìŸ¾•žþ™L>x0KwsópwwËÉÉþá‡Kÿü“‰%FDDæääþüó­RKKËð fff&&Þ...àÛÑü™”tçÁƒÔª*Α#‘xÜPR¼…~„Ífÿþ{rZÚo%%%GŽÅߺÿáµkW²³ÿ67_æí½§W–,=ñ£¹ŒÊê&„—‹n¦í=ö‡çá‡ßÿ”ÛÚÞÅ—ùõ›ÖSWŸ{G<òpâRvCS;Þ¤ázoÛ ÚNg÷üí|¯#ýŽýqï2¨i@ ÀXC§Ójkk±å‹/ïÛ ¦¦*'GñõõNL|;æ:™Lf³ÙNµºúä°°·3}\½z-88hòd5*•äoð«¯ö***î(00@IIIYY90Ðÿúõë¢KõÓO7ü±üûöþøãOø[îWSS•••ݱÃáÙ³g½ú°­m]÷—ªÓ)¡_¾zUÙèµuÖ~ç¹Rn¦ð7ÿœºú|‰±ú繜ç©(É^K*ÄÛ3¢ö,Âogmççß‹›;vû|1ûeɨi@ ÀXÃfW)((ü»\¹té2&S‡ÉÔ™=ûƒ×¯_cé±±'~ÿýþªUkæÍ[øË/¿b‰UUMMMaA ]èŽ44Þv¹`2™Gt©ª««™L lYSS³ºú¿üxiedd:;»Äü˜XËÏÑG2*¶¬ŠzœYùérIòÒd©‰k–jý“óšo•=_ÌÖgR%%&¥'®þP+·Hx@´§ÏªÖ™iËÉJÊS$×™é@M`,>•` êÃø/^Z´hþõýúUUUU¾<3g¾ûÝw§BÉÉ)žž>ææË±Œ’’qŸ#}õªTKK!ôêÕ+&:³²²2ž¿¤¤DY™ÖÏ#µg—‹^¿i½˜_ÊnR¤’ß4´8™Žg ‘øW)*kø)¹°”ÝØÞÑ-4†h;uíJ“ÞίD%Cå`\Ç$‰Ëåö'ðù%ý‡=ÞÙcÇÌ–––‚‚‚+W®Ýºuûǯ`‰Ÿn»gÏÿª««¿|ùò믣££!„œ]]\œ™L .—ÛÕÕ‰eþôÓõþþááarr”¨¨¯ýüþOôƒ‚‚>„7(hßÚµk±D*•ZPP ««Ë—yÍšUûöíCˆ¸ïã× DýGÊ äMk ÇeLÑœôŽœ”Û¦™“䥈òÇ]ÏYû‘–¡Ž¢´ÔĶŽ.ŸˆGB³m‡*'õúM‹²‚ B¨¦®j&cɸ¾—A"úIÆD!:“©£©©;{¶±§§´´Ô/¿Üf2™Ø[»v9[[ÛN™bèììºb…9–þÑGÙÛo30˜õ¶{£››‹žžž¹ùÊ LÔÔT{,Û›™™/X`¢¤¤ìîî‚%îܹcõꇖòööTRR\¼øÃÅ‹—¨©©zzºÔ!š$/¥Ë¤>yÆY8KõÒüêÚÖînn§éûŸrùr¶wtIHL˜PS×záç|<]–,QUÓŒ¿$ÚΜéô+ljéhlî¸v&d`|·CŒ¥_ÿxy ebìÝ!z§ &89ítrÚÉ—¾v­åÚµ–üB_~%bû¼/wîܱsç¾ìÚå¸k—£`~2™&ºü}“jþLÕ›)E[fÝ{\}1«®±®(k±Pƒ/›íª)?þÆúîÇyéæ2þΩÆÒMç1ÿO[{Ö­Òl¾†Ðí¬\ļüKA@ô_d©‰Kç2ž½¬Ê Ä€Q†oH¨©Ú“¦jÏB-›ÏX6ŸA”ÙH_ÑHÿ¿<Í~ÛÖb6a6￵&„oGBbÂg«ô?[¥ÿ6ò˜«'€1£ç{mmm[·n¥P(ªªªáááxzWW—¯¯/N—••µ¶¶nhhÀß SQQ¡P(ööömmmèß»$ ¿}Àb±,--åååÉd²¹¹yee%–ÞÒÒ²yóf|wxþÄÄD###)))--­“'O -*Q‘ˆ>^*¾²`b‡STT”™™™’’‚§‡„„<}ú4==ÍfËÈÈøøøào¥¥¥eee±X¬ŠŠŠ€€ôï].—‹ß2°´´tss«ªªb³Ù†††nnnXúW_}U___\\œ™™™––†osóæÍAAA iiiýõ—Т‰è#`ËÀ ‰0ã+†HHHˆŒŒ¤Ñht:=22O?}úô±cÇ †¼¼|hhèµk×ð·¢¢¢ètºŠŠJTTTBB‚ÐÍfgg/]ºTFF†J¥†„„$%%aé/^ŒˆˆPVV¦ÓéGþ7*ŸŒŒLyy9›Íf2™§NºM¢"} b QYY©­ý¶‹;¾€*++344Än¨ªªVUUáoáÙtttð›|?~lbb"''‡ÍˆãSYY‰Ø£¥¥…ç¿zõêÝ»wçÌ™Ãd2ñÑýHÿ]$¢Æªää_±!" g ¡ªªZXø¶‹{QQž®¦¦VZZÊýWww7þž¿°°Pp Œ•••““SYYYwww}}=~AEE¥¸¸XpwÆÆÆ7nÜàp8±±±;w¾í0ï]t‘ˆ>ÃÄy¼ÀàÆ¶¶¶îîîÕÕÕïµ€rttܾ}{AAAgggVV–µµ5þ–››‡Ã©ªªruuµµµÅrrrð<---d2™L&nÛ¶ O·¶¶öððÀvçîîÎ[ŒÜÜÜöööîîîÎÎN¡E%*ÑGÀñ• @ G=?Û´sçN&“ùÎ;ïxxxܺu Kß³gOXX˜©©iyyùÔ©SýüüðU/^lddÔØØ¸aÆÀÀ@,ÑÛÛÛØØ¸±±k6ˆ‹‹sssûôÓO544¼¼¼._¾Œe Þ¾};¶;—;wî`é«V­Z³fMaa¡Á¹sç„•¨HDÇW60 ÍÔá#ÙæÍ;FKQ/^ 5€Q!>>–wBˆËåbÜää_GÔ¸œœœ•+W²XЕ}\.œ÷öÞ+:&HNþÕÆÆ¾²²«Ã¼o‰3â5qàרää_íìGâSnnnþþþííí^^^ëׯ‡súnmÑï4ñ¾š½++KùGb ¡§§7uêÔæææµk×â·B0¼½÷ŠÎ+4}$ÆNNNNNNpRÁH3æUçF ¾ÝóŒ=0> ˜s ŒDÍh"`½ƒy#k|,2*•º|ùòèèh6~Ž!´O †ã‘¶ö”>‚騗hUU•··÷Ž;xh€a2uÄœÜîe€±éÕ«B¢Û{ØT,wïÞEÄóÇvtt¸»»Óh4…ˆˆ¾->>DçF©øøXì§Ñ?¢ÇBŸJ† s†ÑÐ7BǨ!¸FII [••Å$ëíà<`(++³Ùlü¥˜ BâT8¶0êc¢1g$$$š››±e|;D<ôÐ1jz5pMoçCÀÜÜ<>>žèÝþT’þ”Jüñ!Æ6¢ÞKb®5ŠÊ<ìÅbáˆÆœ™5kÖáÇ›››ËÊÊñt¢¡o„ŽQÓ«kˆ¶Ì7xJAAAß|óMPPPaaagggccã/¿ü2 •¤Ÿ-O)Æo>ø¶ˆC9sòäÉëׯS©ÔùóçóŽQC4ôÐ1jz5p Ñ–ùÏCISSóÑ£GÅÅÅ‹-’‘‘ÑÒÒúúë¯û_I<€¨««suuÕÖÖ–””TRRZ¿~}rrr¯¾£Žõ­/ððÖöÑXfÀ ü¢@½c ÆœCfÀçí´°°ÐÕÕõôôd2™555)))ÑÑÑØlÚbS6rF3ëm{UòAú˜ƒZfcÍÐkìàÎÛéææV[[Ëf³aÌ0z%''‡……ikkOœ8‘F£YYYáúß!FX,–¥¥¥¼¼<™L677ÇçÔæËF4ú…ÐQOˆ~ˆónMè°(‚[³À=jmmupp R©T*ÕÑѱ­­/Ó'O Ʊcdž·ÌD£‰´µµmݺºj8CO¬ÆœcÀÂ… |øöíÛ¹¹¹4mýúõT*‰lonnÖÔÔäp8‚Ùˆ^2™L//¯?þXœ'Ty›î«««±§š›››©TjGGÑÖz[`¡ùÕÕÕSRRôõõB¹¹¹¦¦¦¥¥¥X樨¨C‡ýôÓOsæÌö2kiiݹsgêÔ©!6›=sæL¬Ñ‚Á`¤¤¤èéé!„òóó§L™÷2èÛ5vpïe0Lš4iÿþýMMM‰‰‰µµµVVVBs>~üØÄÄDNNŽD"Q(Þ§RÅA4êI„‹"ÎÖúV`6›­££ƒ-ëêêòŽóqäÈ{{{¡ÄЗ™h4‘ÊÊJmí·?xðÀP‚ŒA=LVK"M›6-:::55Uh+++''§²²²îîîúúz¢_·D£_ôjÔ“‰³51 ÌGEE¥°ðí/‹Å;Þhjjê¹sç"""FB™‰FQUUÅËÏ;t búEð®Ü’%K._¾Ìf³»ººÊÊÊüüüæÎ‹½Å7ÄHKK ™L&“É………ø=~ÁlD£_zÒ·‡…nMÌ‹¶qãFwww‡SUUåââbccƒ¿¥¥¥•ššzâĉ°°°a/³ˆÑDÜÝݱ¡kÄ쀀^¡ÀÀÀ‹/’Éä¹sç¾yóæòåËØ[|CŒÄÅÅyxxÈÉÉ™™™ñkÁ—hô‹^zÒ#¡[³À¢8p€F£éêêêéé1Œàà`Þw544RSSãââøÒ‡¾ÌD£‰)))aCט˜˜@µ`èAŸJ0B xŸJ8¤ ô }*0¤ †Ä91ÄÐÌ”3H{i~€a‹!uD`@.¡#=†€†„‘‚0òòòfffÏŸ?!ƒ'Œà0Ø—Ph‡ý…XZZºdÉ[[ÛÑ@ôötØ¿qá+0\—Ð^ÄDsõÍ€L4/pGG‡»»;FSPPàLW0³à|ÁD³÷8‹1lT*ÕËË k‡èm• š,»?^½*ä{Üo2™4iÒ† °ž„†D½ ¡†ø»œoG0Ñ`À ^BûCôa~a¡ófee¥§§³X¬ââb™ç &š­Xô,Æ`ÔÕÕ:thÖ¬Y}¨}ž,»oM&yyy²²²;v쀳‚¥?DvvöÒ¥Kedd¨TjHHHRRR«ÄÄÄ0 …âé陑‘%ÆÇÇóÍ7 QQQ¢3ó¹páBdd$NWQQùúë¯D§ƒ¡ùYŒý¸‰‰¹téRª„ŒŒLyy9›Íf2™§NìÓéô£GÞ½{/DD„††Æ„ xå5n ÍÏ×ffbbrñâEžˆþÕäÉ“ëêê„¶UˆØQXX˜ŠŠ …B±··ÇÒçÄ)°Ð梖Eøþ}˜_Xè¼ÀºººbfæC4[±ˆYŒÁ`æR|ùò¥¾¾þßÿ݇*ÑçɲûYl|ùÉ“'ø„[‚ùùÚÌöîÝŒgØ·oŸ‹‹ •JZ;JKKËÊÊb±XHXãœ8ÛÚüÓ‡–E}Œ!ˆæê%š™ˆšš‹ÅêÛ#š­XÄ,Æ`hš"tuuëêêz[%v²ìaÓ<š™™á)GŽQVV³Ñ‹(?/sss …‚µÊ¼|ùòÎ;»wïF}Dì(** KŠŠê±uMÄv„6ÿô¡e0N |¢¹z‰f@&bgg·{÷îÒÒÒºº:OOOÑ™ùæ &š­XÄ,Æ`Ȩ««/^¼øüùó½­D“e÷ÑÍ<쀞ž^cccll,o\+˜YDã–Ðü|öîÝ»oß¾îîoooYYY¢œ"v¤­ýö§€ŽŽN÷DlGhóOZãÁ ô‡ š«—hd"†††3gÎÔÖÖf0¢3óÍL4[±èYŒÁqppøöÛo{[%v²lŒÐ¶8ì@]]Ý?üÐccU?·,--%%%÷îÝûðáCÑý7EìO/,,TUUص,À€õ‡À¯,kÖ¬yùòeGG‹ÅÚ¹s'žþÞ{不§wtt”””899áé|—$ü¥¤¤dddäëׯkjj\]]EgÞ³gOCCþRFFæôéÓõõõõõõ§N"“É¢Óá²8ØøŽðòåËŸ>}ÚÛ*ñÙgŸåååuttdgg›››Yí­·[|mf$iïÞ½¡¡¡~~~RRRxb¯väææ†¥»ººâcoðí¨Ï&jY@1ðý!Eļ™'Bo·øÚÌB'NÔ××·³³ëóŽ/^ldd¤­­M§Ó‰vÔ·µ,€˜—PösËšœü+Œ FN Æ.\8?þ‚óÏ›·¨²²«Ã¼éÚ¯^K­¶´´´±±éý€E‰ IDATsï‰ i€!¸Æz{ï1$'ÿjccÏ{MNþÕÎÎQŽ#®»»ûÛo¿e±X7n„£« †`àMœ8QKKëòåËØ8T1@,rndF8ø‘Æ ñn1ÿzÄ@!ÄM5D ?›ú98D¯¾ËGEÇxR0à Œuuu®®®ÚÚÚ’’’JJJëׯONNîÀhùb†1}´qãÆŽŽŽß~û­µµ5''ÇÚÚ:(( b !xÛu„܈…ûÁ#ó,ŒØó’œœ¦­­=qâDfee•’’‚½ÕÕÕåëëK§Óeee­­­°ôŽŽwww¦  :lþO¾ÏÛÚÚêàà@¥R©Tª££c[[ž!&&FKKKJJjöìÙ™™™¢‹Å²´´”——'“Éæææøtmmm[·n¥P(ªªªááá¼9qâ„ŽŽŽ´´´‘‘QZZZ||¼´´ô{ï½—••Å·/å€Áj‡€ïl0ª«ÇÂ…  €J¥"„´´´îܹ3uêT„›Íž9s&öë_CC#))ÉÀÀ@ÄÄ_ª««§¤¤èëë#„rssMMMKKK± ÕÕÕJJJ¡ææf*•ÚÑÑ!æAhnnÖÔÔäp8!ƒ‘’’¢§§‡ÊÏÏŸ2e ¶_¾íS(¡»ÃËÙŸòÆŒ™/úC€±I0ž4iÒþýû322ššškkk­¬¬°·ÊÊÊ ±;ªªªUUUXzEE…®®®˜{d³Ù:::ز®®.›ÍÆß¾°B²²²¢·óøñc999‰D¡P^¿~¥WVVjk¿ýDø‚àöÅÙ]¯ÊDúx/#,,LEE…B¡ØÛÛã÷}ockEDDhhh`½ñ¼k×®ï¾ûßøéÓ§wíÚ%X¢ûÁ‚Û¬©©¡ÑhµµµxžššÞ0à ¢«_M ºëgØ‚¯¨Ó¦M‹ŽŽNMMÅRÔÔÔJKK¹ÿêîîÆÓY,–˜;UQQ),|ȳX,•¾ÞÊÊÊÉÉ©¬¬¬»»»¾¾oóPUUÅ·_TTU0šb^iiiYYY,«¢¢" K¼yŒyòäIFFv]zã9***>>þâÅ‹¡ .œ={6**Jp§D÷ƒ·©¨¨¸~ýúo¿ýÏûÙgŸ)((À)B«_M ºëgëg^½*äkš[²dÉåË—ÙlvWWWYY™ŸŸßܹs±··oß^PPÐÙÙ™••emm¥ÛÙÙíÞ½»´´´®®ÎÓÓKTPPÈÉÉÜãÆÝÝÝ9NUU•‹‹‹8S~ íDÒÒÒB&“Édraa!og[[[ww÷êêj‡Ã{¸`8q¹Ü’VI ëÌ™˜’÷!ždøB~~>¶œ››Ë`0°eƒ‘““#¸zyy9þRSSóÅ‹Øree¥ŠŠ ¶Œµ{yyéèè°Ùl®0êêêø~óòòðòÝæóçϵ´´:;;¹\nGG‡––Vqq1 4ñ«_MàÕÔÔ¤¬¬Ì— «“%%¬°°ýii¿õø¯½½¯Ã¼ÿ°Mq¹ÜäääO>ùDAAABBB]]}ëÖ­ØN»ººBBB455%%%g̘qéÒ%,½½½ÝÅÅEQQQAAáèÑ£XâÁƒåää?xss³½½½¼¼¼¼¼ü¶mÛZZZø2¾ä{ sãÆ ]]] mmíãÇãyZZZ¶lÙ"##£¢¢rèÐ!Áˆ~)f~À8Á{å})ôß™31|ר3gbP¯úTò.tvvNœ8!ÔÙÙ)##ƒõÉ’hmm•º:FRR’÷þ+‰DÂÛƒƒƒýýý###]\\ø~¥a[hkkÃ÷+))‰¥mÓÂÂÂÁÁaýúõ.\¸uëVBBÄ‹ƒq CÌêÁW?~ìíížžÞÔÔÄ{ÖðlýéSÉ›Ž÷©„“¼µø5v¨ûTâ÷e UUU±eqnÝxÎÊÊ:yòä•+WÂÃÃñðþTBÄ÷ƒ‰¶éêêŠÝ‰ŠŠÂ¢ÁZ=øÝõ0Zô1†pssÃîûºººÚÚÚb‰Boóz㹩©éóÏ??{öì§Ÿ~züøñ 6´¶¶ ®Kt?˜èf¶¹¹yuuõñãÇåååß{ï=8ÙCFhõàCt×À‹MNþUÄ¿Ž!/^ldd¤­­M§Ó±Ä€€CCÙ3gjkk3 ¡+îÙ³gÑ¢E¦¦¦²²²¶¶¶ëÖ­C999999-Y²!diiikkëää$¸nPP’’“Éœ1c†‰‰‰èm"„H$’³³³³³³——T‘¡$´zð‰‹‹óðð““333ÃNý]éðÒÖžÒã?¡+öÜ€aÑÏ1¦°šŒõ„€þ0€×XcL1 BapÀر‡†àó)½]Fh‡`”ÙïC0 ¾z‡ë »®®ÎÕÕU[[[RRRIIiýúõÉÉÉØ[ÛnñæÍkkk999ÆÛ6//oùòå …B¡,_¾ÕMD:bÀˆ°qãÆŽŽŽß~û­µµ5''ÇÚÚ:((h0v´k×.™’’’ÜÜ\‹‡`Á‚eee¥¥¥sçÎÅ™&J@ À¸hˆ‰‰ÑÒÒ’’’š={vff&–ž˜˜hdd$%%¥¥¥uòäI¼›ÏËC4U˜ ¡ÓË!â©ãø$''‡……ikkOœ8‘F£YYYásÄà…!ý/Ñû%jS¹yófDD„¢¢¢¢¢bdd$>ûÝ‹/|}}'M𤠠°wïÞ/^ˆN@ ÀXÐãø÷îÝ»ÿ~mmíÚµkñ®6oÞÔÐЖ–ö×_¡ïð–*bª0>B§—CÄSÇñY¸p¡ƒƒÃƒ‰òàc³ž•[·n-))iii¹~ýz`` ¿¿?–>mÚ´ƒbýBCC§M›&:1„ðŸA=¦€qk,UU«V­Y³†B¡øøøœ;wKôöö666Æ?”øS…MG4uŸÀÀÀ‹/’Éä¹sç¾yóæòåË|y?~¼e˾› Dû%²`Á‚yóæ)++GGG_¿~}êÔ©XzBBBZZššššššZjj*~@ˆÒãñ+õ4ç–à ¾0:/‚êÑÏù`p0ç ø5¶×sn }ÜÀår}||}}}!pÉàìÀx3¢ûCœ€!!xïs‡……©¨¨P({{û¶¶6,±££ÃÝÝF£)((DDDàkEDDhhhL˜0 ¢·k×.|t<„ÐéÓ§wíÚ…:sæÌþýûÕÔÔ&Ož|àÀï¿ÿN؈Õcõà« D>âÙúY˜þFh;DZZZVV‹Åª¨¨À³²²ÒÓÓY,Vqq1žùÉ“'ÝÝ݈`½¨¨¨øøø‹/"„.\¸pöìÙ¨¨(„гgÏÞÿ}l#sæÌyö윰QAhõà« "|IJA#ý×#êSŸÊüü|ì÷¼¼¾žŽŽÞ ]QQ¡««+˜™÷kƒh=:¾eË–ððpggg,€@ÉÉÉá#ï644à#ñNhõà« "|g0î~f`¤éc QXXˆ/¨ªªâ—~‹%zE55µÒÒR|® ¬Y!”••uòäÉ+W®„‡‡ã™>}ú“'O°å§OŸNŸ>Nب ´zð±²²rrr*++ëî¯Éu Ô•}„C vñFæ7è¨øÚ†ØŒµÂÍÍÃáTUU¹ººÚÚÚb‰vvv»wï.--­««óôôº¢ÐAôššš>ÿüó³gÏ~úé§Çß°aCkk+BhóæÍ~~~ååå{÷îݲe œ°QAhõà#þ€x!ž>}:o°Âår§M›ÖãºÇøFÌKü`ÇI$½Z½ÿÅ›0a‚´´4…B™4i’²²²šššººº¤¤¤˜Û–8²?;-++sww×××—––VPPX¹r¥ˆ9؆«ŒÄbñâÅFFFÚÚÚt:=00K 044œ9s¦¶¶6ƒÁº¢ÐAôœœœœœœ°Qÿ,--mmmœœB;vìX´hÑ´iÓ¦OŸþá‡~ñÅpÂF¡Õƒø> YYYlF ÌO?ýD¡PÆÒ‘çþ¯!Þ{www[[[SSÓ›7oª««ËËË-,,x¹ê?6›1kÖ¬a?ÔIII³gÏ–••½uëVccc~~¾³³³··÷˜ü£ž5kÖÑ£GÙl6\ß@ïbüJÄ»àííÍf³›ššâââÈd2–.))ùúõëššWWW¡ô„ |}}‹ŠŠÚÛÛ3337lØ€úþûï·oßÎû+ ‚D":t›•844ôFæ—–˜Õƒ¯&¬Y³æåË—,kç΂Ûé¢ñ!|||ÂÂÂð—aaa{öìÁ_ŠxÜ_ˆ‰‰ÑÒÒ’’’š={vff&þ.ïïþ¾m<ùŒ‹E½lÜ&Úßfñm }H»µµÕÁÁJ¥R©TGGGü‘]vïÞ=sæÌM›6‰ùñE|¨ÖÖÖË—/¯ZµÊÀÀàï¿ÿ>räþ–ˆƒ6xŸº°°ÐÆÆæ‡~Ø¿¿¤¤¤²²òÆÿüóÏû÷ïãO¡·µµmݺ•B¡¨ªª†‡‡÷XfDü\tUKè‡å;†B? ßiiiÙ¼y3^f|×GŽÉÈÈ000X½zõåË—±¦b`Î-06 }¼sݺu¯_¿NMME¥¤¤ÔÖÖ~òÉ'ø»"7ÅÝ»wïþýûµµµk×®ÅnÁ`Aïïþ¾m<ùŒá},¶„îŽh³BÒöóó+//ÏÏÏÏËËc±XøÔ\DöìÙC£Ñœ{UA<رc‡ººúÉ“'7nÜXVVojjŠgqÐïSQÝ~øð!6ã<\©Æí5öÌ™h‡cÖ«W…øÓϼ6oÞœ••õý÷ßgggãÍì›â”””°YYY¢ÑJú¼¢'Ÿ‘ØÏ»EDźY¡i³ÙllYWWWÄ}ñÈÈÈ—/_FFFŠ(§8‡óèÑ£+V¬Y³fÙ²egÏžmjjâË â  Þ§f³Ù“'OF=þü‹/¾ P(øÝØÂÂB|û•••øsÎø‚è2=ÝcÕêñŠ8ƒ¼¤²² BZZZ|ijj:{ö¬™™™¥¥åÊ•+?~ —¸—À8"%%åêêºmÛ6777)))Þ·êqÓ>o‡èÉç!&ô!mü‘]‹¥¢¢"tÝS§NaSÛ Tï¥yóæ8q¢¬¬lûöí—.]b0vvv÷îÝðƒÖ«OM£Ñ°‘Ó ããã[ZZ°>Û¶mÃïM¨ªªâ«‰SfÑÏE÷§ŠŠyUTTð[9¼e¾wÁ¸|ù²££ciiéñãÇçÎ —ˆ!_<==;;;=<<øÒûü¸©‚‚BNNNÿ·#ôÉg¡µ±Ð‡´7nÜèîîŽ=²ëââbcc#¸bBBÂ¥K—.^¼(!!1°E’––¶²²ºuëVNNÎÌ™3ÝÝÝûpÐðS›™™]¸p!N£ÑØl¶¬¬ì¦M›œœœvî܉e³µµuww¯®®æp8¼}D”YôsÑ}¨ZxUç "„¬­­=<<°2ógY³fåææÞ¼yóÓO?•––†+ €€ÿôùqSooocccübÝçí}ò¹Wú3>NèCÚ Ñhºººzzz #88XpÅ-[¶Ü»wOFFf@ŠAô+ÙÝÝýŸþÀƒÖ‡O½gÏž#GŽüùçŸ ,(((hll jjjzøðáÆñm)))1™Ì3f˜˜˜ˆSfÑÏE÷ç‰hqÎ B(88˜B¡`ež?>>¼Çßÿíææ†" ÀÛkêi¾ †Ì—F²k×®mß¾ÝÕÕÕÆÆ†ÉdVVV^¹råáÇ?üðØùŒ999+W®ìqôa0>¯±ýš/€‘Œh|ʺuë=zTTT´dÉ …òþûï§¥¥ ͈«ƒÍÍÍ­¶¶–Íf{yy­_¿Î5A“°5¡f0 ôõõ¿ýöÛ±÷¹ôôô¦NÚÜܼvíZ¢qf€ŒñŽ}€M>Ç@ Æ/h€ÁÖsÁnÕbv´æ¿WeêóŠ}+'2pF`|ÅðÔèW sØøžÕe†00l1c@xx¸„„ïDÌý„ÇÖýù†šow¼¨·oßþðÃÉd²’’’µµuYY–ž——·|ùr …B¡P–/_ŽM…ùçŸ,,,äää444ð¹­Côå2't’û¶¶¶­[·âÏó®+4?‹Å²´´”——'“Éæææ‚Ì຺º|}}étº¬¬¬µµuCCƒÐlD\½¦¦†F£ÕÖÖâyjjjTTTxS€h"Žakk«ƒƒ•J¥R©ŽŽŽøÇ =õX‘ ‰Æ‡èîî>qâDdddLLÌpÍF1=zÔÃÃÍfM›6ÍÊÊ K߸qã‚ ÊÊÊJKKç΋Áœ——·víÚ;vTUU=zôf|ô«Bè$÷þþþ§¨¨(333%%¥Çü–––nnnUUUl6ÛÐÐw!!!OŸ>MOOg³Ù222ø”6|ˆ ¸º¢¢âúõëyŸíŽýì³Ï NˆIÄ1ôóó+//ÏÏÏÏËËc±Xþþþ|ë =õ|ÓC÷“ÐÇ;•••¿üòKEEÅ;wîðÆÇ&L@utt¸»»Óh4…ˆˆ<[LLŒ–––””ÔìÙ³333yckÁˆ(ðܸàº|Qo:o9EÄÖBã0<1))ÉÒÒ’J¥ÊËË{yyedd`é/^¼ðõõ4i’‚‚ÂÞ½{_¼x¥~òÉ'²²² ãÔ©SPÿ}!¢¢¢ètºŠŠJTTTBB–˜I£Ñèt:ßÌ¿Bóggg/]ºTFF†J¥†„„$%%íîôéÓÇŽc0òòò¡¡¡×®]š¨BWwqq9~üxWWB¨³³óäÉ“"‚ Ñ1¼páBdd$vÆ¿þúküŒãÄ?õ@ „Ž?Ž=øîääÍûÖ“'O222°Æ‰ÀÀÀ¬¬¬ôôt‹…ÏaˆºwïÞýû÷kkk×®]Ë7"¡`Dø n¼WÁo9ÅŒ­EhjjŠŠŠ255Å^ZXX:t¨®®îÍ›7aaaXúo¿ýV^^>yòd …²aÃh®¼ýe‚zš/ƒD"a—6Þ…ÎÎΉ'bß222! ‰¶¶6<]RRRtþÇ{{{§§§755aÙ°+£à%%%;;;y‹„ç佂€hu ‡õë×_¸páÖ­[‚_u GB!߉ÀÏ8~B{<õhæË`±XóæÍ+))!“É­­­L&ó?þÐÖÖÆö[^^®¦¦öï*III|ÕÕÕJJJ¡ææf*•Ê÷¡x ÒÒÒºsçÎÔ©SBl6{æÌ™Ø-¢ó®Kô’¯œD» ükØ,BˆN§?xð@OO!TVV¶páB,²ÑÔÔ|øðáäÉ“±ºiӦÇ“H$WW×ööö‹/Bå`TÎù2„Nr¯ªªŠ§óN~ü¸¼¼ü{ï½µ¡„Ã7º»»cgÜÅÅÅÆÆ†o-¢S¯  ““3ålmm=sæ ‹ÅÂCI‹õý÷ß·¶¶ ýžîÿ\…D‘«8—hnnÆ–_¿~ÝÛ]ˆO^^ÞÃÃãÏ?ÿÄ^¦¦¦îÝ»ï‘ššŠ¥¿ûî»|íPó}!„Nr¤¤¤„M ØBhhè±—ÝÝÝaaa±±±åååS§NõóóÛ°aÑÆùÖÍÈÈøâ‹/²²²ÔÔÔ|||¾üòK¡].ˆv!˜“/ñÊ•+û÷ïþü¹¢¢âŠ+:D§ÓBÏŸ?ÿòË/?~ÌårçÍ›‡Çonn^µjUll,<ÁÀ8¿Æbý! †c°~cƒC`ïS ‡6†€q*ÁØÑ0 6ˆ!úB“ðn`0G IDATf:ƒÚ!1 †ÄŒM0b#bÆ”ää_±!"pjjj‚ÃZ¿yóæÝwßíÏ,”>Ó—ËõññQPPPTTôõõ%Ú>é_b®+4?@ €|w.Z´(..Ž/OLLÌܹsGÔ‹'Ožüý÷ߟ?ž’’rúôi¢PC0¼±®˜‹Äþñ!|}}#""xg¥jooŽŽöòòêêêòõõ¥Óé²²²ÖÖÖ øo÷ˆˆ & „ŒŒ¤¤¤´´´Nž<‰çÁZ[[¨T*•JuttlkkÃ3ÄÄÄhiiIIIÍž=;33“·m@°ägΜٿ¿ššÚäÉ“8ðý÷ß‹ÿ©û³. J !x¥³EÏÖÛÔ>¯F¸¡<¡¯^ò1{öl«W¯â).\øàƒ¦L™òôéÓôôt6›-##ãããƒçyòäIFFylÞ¼9((¨¡¡!--í¯¿þâÛŸŸ_yyy~~~^^‹Åò÷÷ÇߺwïÞýû÷kkk×®]+z~Z„гgÏÞÿ}lyΜ9Ïž=ÿ#÷g]ÜvøF£š¯¯oxx8þòÿÛ;󸦎í_W²€¨®Ö¥Ö*(¢â“‡Z‘¢ ÔV|¾‡0âSÙhEEûDŸ•ò´ÖµÚW×'K¥PèsÃV‰Ö–ŸÊn€ßÓÞw?IîMHÂêù~øð™LæÎÌ™;÷dæÌ9‰‰‰H\8yòäáÇ9ŽŽŽN||ü¥K—ˆiôôôP˜N§WUU‰D".—›šš*•ùÙ³g:4aÂ6›}äÈ‘ýë_øWÉÉɇÉd†††>xð—»¹ÐÔÔ¤­­Â:::ø¢ˆ2¨s-@ïÊp?UI4*0 [¸páˆ#2220 »yó&‹Åš3g†a•••ÖÖÖHåÐÀÀ ¶¶¿ÄÐÐ_¼xñöíÛ³fÍâr¹W®\‘Ê\$™››£°………H$¿b±X(À`0$ u%µµµ›ššPøÍ›7:::Êß :×ô® 1QR ð¥ˆÏ?ÿðýû÷ã{†††Ý@Ô™ 2{öì«W¯ŠÅâ”””-[¶H}Ëf³_¼ø}ëD °ÙlÕjhkkûË/¿ ðÿû_[[Û¾¹ weâoÄ„„6›Íd2ýýýqõ±ööö72™Lâ¢1Yz@°bÅ æââRSSCV4™Ö(‘õ# úúúă‘ l6»±±‘LÁGn×£Ö«GÝÜÜ***¾þúk±X¼lÙ2ðÙgŸ•––J$’ÂÂB///¹×úøøwtttuuÉ.'xzz‹ÅâÚÚÚmÛ¶y{{«¶èâëë»{÷îêêꪪª]»vmذAùEŠkÐ:Dvvvaa¡@ ¨®®Žˆˆ@‘áááb±øåË—?ÎÌÌT˜~ÅŠ<¯¶¶V$Y[[óx<²âÈ´Þ@‰¬?~¼»»û‰'𘔔”µk׎7ŽBÁ¢ëÑV”FN!ÊÚ‡À_Ã;vìð÷÷ß¾};6þ|gggƒáãã³zõj¹yºººº¹¹1™Ì;v¤§§K}»wï^}}} KKK‡£ZÍ7oÞ<þ|[[Û |òÉ'dò‡¬ÈEq­Üôj2 ÍÚHƒ=#ã–졸aÆ¡9())±´´Ä0ìÙ³gÎÎÎååå†q8œÌÌL_RR2iÒ$êôDZZZLLLÄb±ÜMMMoܸ1eÊ ÃD"ÑôéÓÑ/×#F¼}û½ëêê=z´Âýf@ƒ<}útùòåÏŸ?1b„D"±²²ÊÊÊâr¹FFF™™™VVV†;;;WTT;Ta×cÇ›gÏž±³³WX™yóæ×ÔT 1Œäòòøè/uæX$0øù¨¸aföûŒlnnŽïAÔÔÔàñx€"}^^ž£££¶¶ö°aØLf}}=YqdZo DÖ¿X[[Ož<)ž?ÞÞÞžËåb” †=ízÕ…£¢ «½xñÂÀÀ… ðø—/_*Lïáá±uëÖÊÊÊ®®®×¯_S¬`“i½Y¿”””„aXRRRhh(ŠT¨`¨|׫#bíCE†àñxH},((ÈÇÇEúøø×ÕÕ‰Åb)å¹é[[[i4F{ñâµí2­7P"ëw\\\êêêŽ=ª££3sæL©PÁ¬ëÇWTT­ 0”e‡©S§š™™M˜0!22EFEE±X,.—ûÞ{ï9::*LêÔ©mmíÅ‹/\¸¢82­7%ЀÞcذaD-E… †d]ÏçógÏž Jƒã€)Ò©€~AM}ЩÐø«–N%j ïi­EeŸ8°qÚ½ á‹‹ûè£àÁTŸU«VÅÇÇÒ± 20!³ "Éîe 7BKKË¡C‡öï߬>û÷ï?xð`kkë`Û CC¹–N† 6|øp]]Ý™3g†……!£ð ÁÑø™~œìT¾—G-[¶L[[ÛØØX®éÛÿûß , Ñh,ËËË«²²’ìÞ‰§LnJ–Ø—pñâEGGG ‹Þè»[·n-]º”N§ëééùúúÖÕÕ©Ö&Êä£ÂVh¨¢\¹—[ZZÚÛÛ_¾|¹¿žS!@?{]]]UUU'Ožlii™1c†Ô!dàçÙ³g«V­Ú¼ysmmmnnnNNŽlšƒ†„„ˆD¢—/_ÚØØxxxPÌõ8di”ÉMùû¬®]»¶jÕ*üãŒ3<(k F5y<^]]ÝÓ§OÇŽ+×r¼2m¢L>*Ȧ _áå’]îááqíÚµÁúØtww …¡Ppút²P(耓B¡ !!6;û®Â¿ŽŽ| ÿPVDCÚ8áááëÖ­Ca‰D¦¯¯O§Ó===‘Õ tU||<òÕ²qãÆ¶¶6…é;fbb2jÔ¨™3g>zôÅ·µµmذÁ`°Ùlä÷ Åÿðö¶¶£F211III!¾rdÛ¤´´ÔÍÍM[[[KKkéÒ¥ÕÕÕ•${™ÉBœÚ¨ïZ³ +O_PP`dd”””ÔÝÝÝÒÒ²~ýzÙTù^:::x<žžžÞرcQ¤··÷W_}¥ü(mii¡ÑhÔ5ÑHn=JÓ`jjúüùsüã;wÖ¯_¯««ëêêzîܹÖÖVMÍÍÍÍZZZê· Y>=}0{Ú¹rË•½¼´´ÔÜÜ\SÝJö°Hu·šsìéÓɰ¼ÓlÚ´éÎ;(Læ“#ñöB‘þ?ÿùϽ{÷W­Z…[¿ ó&ãëëõæÍ›ììì‚‚ê S¸˜‘­¤šþGzêãFµ È-qõêUWW×£Gb¶gϞׯ_—••=~ü8;;[ý{‰ŒŒ,,,¼ÿ¾@ (++C‘wïÞ­ªªš8q"“Éüøã‰.ådinnNJJrvv&KÀb±F=yò丸¸ÎÎNêJ*ÌMÉ4}Ó555'NÄ?:;;§¥¥UVV~üñÇ)))FFF›7o&.` #A™} ;;;õÛ„,<˜êÔall\]]­©n%{Xäv7¬C°¡â:DGGǨQ£PØÄÄäéÓ§(\SSÃf³ñ—_II s8…éëêêðŸ #GŽDa###<ŸgÏžá•166>|øpYY™ ¿Ïôôô¨+©ä¯%¹¿oäf¨Ù P\•””dddôË/¿à‰ŒŒJKKQ¸¤¤¤GërKáp8EEER—1bÆ uuuõõõëׯ÷ôô¤¨<†a&LÀ3—‹D"yôè‘““SPPuS(ÌMÉû¦ètzss3Y~úé'Vb¤xðà……Eqq±šmB‘j¦’·FV®ìåííí CSÝJö°Hu·FÖ!@† ¡0ñéÓÉ*Èeee(ÊÉ|²`$Þ^(ÒË…Ì›Œ«««››“ÉܱcGzz:u&.fäVRÊÿHNN·~¨döÔÇ2P²„±±qVVÖ©S§¿•˜˜&“‰ÐÎÎnÔ¨Qʹ¥DDDX[[OŸ>ÝÌÌŒÃá H‡3iÒ$‡ÓÜÜüüC6·•+Wz{{Óéô3fÔ×ן;wNn¡«W¯öññ¡Ó鎎ŽVVV_~ù¥ÜdÊäF–FýU¹ÜÝݳ³³ñµ>äñx&LÐÈÃ" mllð劦¦&ÚM™|zú`âË'ë(åʽüùóç999¸ÑOõ»•ìa‘ÛÝj¢Ø_Úò¤Ž‘Ÿµ¢dJæÓ œš¼kdffúúú–——˶?Ñ–;Ÿ¿ }är͉i„B¾ðàííO´åކ1ò”¡Ž¿ŒA16”¬ä¢E‹öìÙãää4@ž •Û¶¨¨hùòå_•tô^‡*C\\\AAÁ¥K—`S“>úhîܹaaa½Ñ­‹FüeŒ„-Ðï<>Ÿøðad¬F™& p1 䢲’ÄæîÝ»ƒºþ</<<¼££cûöíîîîСýÛ¡;wî„.ÐR*5Ò­}ö°ô`/£Ï0t?¸¤zK………®®®=`Ht  €!‰¥¥å”)S,--ÇŽ+µñ@¿<,#¡­~¤­­­GÛʬ@h–A±öÖï•T­=½jëÖ­[·n…§ÎÃÒƒuâË„„6›Íd2ýýýÛÛÛQd{{ûÆ™L¦Á_|'îììܹs'²ÇéååõæÍŠ|dõMÁŠ+ttth4š‹‹KMM ŠommõõõÅ‹ÃÓ_¿~}êÔ©£G655=~ü¸Ü{Q¾ª úúúDKm l6›Ú€€™äädSSÓÑ£G¿ÿþû?&Ž%©¾Æ{õ´ÀGÅsrík’ í‘aYû¸dæuÉÌy*c£TùªŽ?ÞÝÝýĉxš”””µk׎7F2È5üLü*{Ä õ4À@ÿ¡ˆ)}.ƒ())±´´Ä0ìÙ³gÎÎÎååå†q8œÌÌL_RR2iÒ$”ÞÔÔôÆS¦LÁ0L$MŸ>­%åC¡[×ÒÒbbb‚\6s8œììlt6ïùóçVVV¸…»íÛ·¯\¹’Ëå’ÝvªúôéÓåË—?þÿ²²²ÊÊÊ¢Èü][ií,âP©««c±X¨ïtuu‘Ñ4ÙAE £^`2?bN<—A†Ô¹ d? ¡Î¹ ¹“È=Z È púú\3³ßgdsss|s¡¦¦Ç†UVVZ[[§Wê|¤ÈËËãóù÷ïßonn&^^SSƒL²£·žþâÅ‹111ÑÑÑt:¨óOüíÛ£ªZ[[Ož<ùÊ•+îîîçÏŸ···â YÇwvvŽ1éìì>üë[H€À0ŒÁ`(iªõQé!--¥§CÒp/Î 'ééÑ€!ƒŠ2Ä‹/Ðx¢}Md4ÅKÙ×ÌÍÍ522R2)<<<öïß¿lÙ²1cÆ4553Å#sžhBÖF)†aׯ_÷÷÷G“»ÔÌÞÓªíÛ·ÏÝÝ=))騱c0nˆ+:Ož<™>}:SXX¨¦Œ…z¡««}äñøª ²ñÅÅÅ»víÊÈÈhjjš6mŸÏ÷ððP¡†Äã$*-ÈÙË€F/²cßË(--?þîÝ»½¼¼´µµ>|øÅ_\¸pA•ÇFÞ Y€ˆFö2ÀÖ5ð®±}ûö­[·²X,--­¹sçâD[[Û§Ÿ~ª«««««€5’{®„xœ„ìh Ù¡$²ÓC`€AÈÀ»Â;wÈ>~úôéGÅ0ŒN§WUU‰D".—›ššŠ§‡· aŸ¿‹ú²´´_ß̓înÓÒRÌÌ&A¯÷/N »©7Êe±Xb±ØÐÐPö+‘H„;ð´°°‰DÄ«P@ùs%DÈ%É==0`§åyóæ++C`ʹ,·F€jôöÈ!Ú‡ÀY¼xñ¹sç‚‚‚dÓ³ÙlüœŽ@ `³Ùšª ÙI¹§‡×´ úÀÐDöxgDDDBBBrrrCCC{{{~~þš5kÐWžžžÁÁÁb±¸¶¶vÛ¶mÞÞÞšªF@@ÀgŸ}VZZ*‘H q… ŸâââŽŽŽ®®.âòèT0ˆPV†À.€é¥q%×>„••ÕÝ»woݺeaa1f̘€€Ü8ÄÞ½{õõõ-,,,--9Ž zd„……ÍŸ?ßÙÙ™Á`øøø¬^½Å»ººº¹¹1™Ì;v¤§§ÃH`0¢”) €^#zçÜu9kkëK—.ÉÆÓéô“'OžŸ–ÚaZƺ»»…BP(8}:Y(tÀÉžþ¡1LüCû[†'Ož˜››w“ƒœsR€ç£dzj4’Io °b}Psbdݧr=û«å¿ÿþ{GGG--­ñãÇ{zzVTT øâââ%K–0 ƒ±dÉ’ââbbUñ©[6Rê+²|nÞ¼¹dÉÆb±Ö¯_/‹)*ÙØØèééÉd2õôô"""ðxÖÑÑ¡Á‚v„X,FìÞ TƒŒ3†ºÉò!»÷îî¸¸0™L‡sêÔ)êû%ëh²x<)Ô‰O’=š–ñ9öôéd Æ¡2êbFÆ-)0¸ÃÆÆf ™  Ù96#ã–Ÿ_èC  C¨EÿXÌÍÍ›7ïÃ^­XÈ M0xÙ·/>**ÂŶŸsöìhǯ©©x×eˆììSRRóó  †“ÓÂððÝãÇC_ýöÛÓ¸¸„‚‚_tuÇ„†{x¬zƒ ¨¨ØÙy< ² ãRŠ|þ.ê«ÒÒR|}7Cëj’––bf6 Úè/œQM•5¸eˆãÇOlÚ䟚šÜÚÚvøð‘¿þ5ðÌ™¯1 ^lÚ´9<|×ñãÇþïÿ^:”4$eˆööö‘#a%I>èx§”6¥2Ê• € À`§Ïæ±Á­‘ž~ÚÉi!ƒÁ`±Æ‡…ñóó PüÁƒ‡‚ƒ·-[æB§Ó âd¯årÍKž9söäɶ¡¡üŽŽ/ ýý?µ¶žji9eÝ:?±XŒâ%Itt쌳¦N‘š*í$úñãÂ9sìOúŠ"‡¶¶¶  É“mßNròq\Õ ³³3>þó™3?˜4ÉfëÖÀ¦¦æ?~Lg.^ìbn>ÉÎÎáÌ™³²õGÿQ ½½}ÇŽ66Óll¦íܹ¿)…ü#—kžžþ/;;sóIú“ÛÓ§E(¾££#$„WrP 0€ ¡ÙÙ?Κõ> çääŠDµ|0oòdÛ-[þúêÕ+¹—üüsþ;7rr²jkʼn‰‡P¤¿ÿ§›6ù?xð˃–––QQ±(þÀCEEÅ?üð}NNVEE%1ŸÛ·ïøùùïݽqãŠöï?ÐÔÔ”›{ïöíë?ÿœ_þå—G ŸüðÃ÷÷ïÐh´¸¸xÏã…óŠŠž\¸pîÑ£ÇR•Ç]«¡À_$ŠD¢ÌÈξ+ *l±{÷~ºtéü“']\–ðùa(21ñ`}}ýO?ýxûöõ¼¼¼A-†+”ÄAc€¡MoÏrCD†øõ×ßbc÷ÅÅíE‚·o_ÿùç--­¿ÿ}Ü«"##X,–žž^ddø•+WPä;7íííh4šŽŽÎŽ¡÷îÝCñ/^Љ‰š8ÑPWW7**ÏäÔ©¯ví OK;µdÉbê®^ý><|×øñãX,VDÄÿªôÍ7ßFGGhk3wîä_¿~ÅÓh4‘H$×M”»”Bä»ï®ED„£Û‰ŽŽ¼|ù;…khhÀ`06oþô×_E‘—/Îbg±XáðhÀ\GÆPØMÏËû98x{JÊQsóß—¯étzxø.]]] Ã"#÷ØÙÍ—{¡±1ç&æâ;÷ï?Ø·/þÉ“_[ZZ0‚½ñÚZ±‰‰‰l&ÇŸðôôxゥx Yb±ØÈÈ…‘©5„HTãä´ÿˆ§OI9–”t$)é0FSxþ¢®®ŽË5Fa“º:±Âv7nÞ\I'^I¼YŒá¡ˆ ªdaøŒ×KN’ý:ĵkßòRRŽßâÖÖSˆiÈüŽ”—Wü(×××Gá-[¶úù­/(È-++ýí·BÜ0ê„ úB¡P6“ó翹té QC‚,==½ÊÊß7A**þw¨f„ ùù?áfGËÊJQüôéÓþùÏÔ‡ÿ·—l)GOO¿¡P¨§÷ûíŒ9¢µµ_žQØžúúúx>ÄJ1Àçx ê—…xg¼Á-C¤¦žÜ·/þÌ™4¢aØÇ{ÄÆî{õêÕ«W¯bbö‘€ŒŠŠ©¯o¨¯¯ŠŠÆÝÆ´µµkiiiii•——ãZ†­YãY]]óæÍ›ØØ}x<‡Ã9þ›¯¿N?v,™:‡+þ³¯¡¡±¾¾!::_·Î',ìïeeB‰¤³¨¨xëÖ@TZ*xûömwwwg§„º)ÜÜ\££cÑíDFF¯\é†âmllRRR[[[kjjvîÜ­°I?úhett,ªdTT ?”Åïà°ÀÁa¡¡¡Ahh0ŠOHØwóæm[Ûi«V¹+CFppиqãP%çÎ3HFFÆ-´Òb„F *¨’…x,½»>·zoHJKK}}ýsr²`ˆk\zprZŠþ#ûèÿÙ³gøü]Ô/¼ŒŒ[¾¾›á¥¨?ÁÆÐ888)œë¼½ýU³S >·ú“¨¨ØW¯^ÕÕÕÅÆÆ-_¾ ¤—€ev€>¬ö)¦¦& .nkkuqYÊãmƒé=dÅpeÌ»jÐ,@¿Ð—óØ»+CôËF†Ÿßz?¿õ0Äû¼úœXIDATÀ»À¼yóA†M¢u• ¡Œ6; "`{ /d09 =`Tôp.U‰aXyù ØÂ ×ùÒP–ÜæX‘§IEND®B`‚debtags-1.12ubuntu1/doc/paper-debtags.rst0000644000000000000000000015460411465320073015310 0ustar ================================ A cute introduction to Debtags ================================ :Author: Enrico Zini :Contact: enrico@debian.org :Revision: $Revision: 1.0 $ :Date: $Date: 2005/05/31 23:02:42 $ :Copyright: GNU GPL v2 or later. :Abstract: The Debian archive is getting larger and larger, and the software more and more diverse and complex. Organising software in the archive is difficult, and the existing section system, designed to cope with a much smaller number of packages, is no longer sufficient. The goal of Debtags is to provide a working alternative for categorising software that can cope with our numbers. The core idea of Debtags is to adapt the technique of Faceted Classification to be used for our packages. Faceted Classification is a 70-years-old library science technique which is being rediscovered and loved by modern Information Architects. Debags attaches categories (we call them *tags*) to packages, creating a new set of useful structured metadata that can be used to implement more advanced ways of presenting, searching, maintaining and navigating the package archive. Example uses of Debtags include searching for software, browsing the archive, and filtering out unwanted groups of packages. The Debtags effort needs to face three major problems: 1. Creating a suitable vocabulary of categories. 2. Categorizing the vast array of packages. 3. Having applications make use of `Debtags`_ data. All three issues are being actively addressed with good results: - Debtags has already acquired a large set of tags, even if the set is in continuous need of refining; - a large part of our package archive has been at least partially categorised, and there is a tool called `debtags-edit`_ that every developer and user can use to categorise the packages they know best; - a new library called `libapt-front`_ is being developed as a smart front-end to ``libapt`` which can also access other data sources, such as `Debtags`_, popularity contest (popcon) results, debram metadata and more. This paper gives a broad technical overview of the Debtags_ project, its theoretical foundations, and the tools available for it now. The paper also offers some practical tutorials on how to do all sort of nice Debtags tricks. .. This is the outline of the presentation: - What Debtags is and how it helps to find packages. - The current state of the Debtags project. - How to tag your packages. - How to support Debtags in your application. - Sample faceted-classification search interfaces. - Future developments. This talk is intended to be technical. I feel I am qualified to talk about this as I am widely known as one of the core inventors and developers of it. I am part of the debtags[1] and libapt-front[2] alioth projects. Some posts I have made on debian-devel about debtags: - http://lists.debian.org/debian-devel/2003/04/msg02167.html - http://lists.debian.org/debian-devel/2003/04/msg02272.html - http://lists.debian.org/debian-devel/2004/04/msg07496.html - http://lists.debian.org/debian-devel/2004/12/msg00424.html - http://lists.debian.org/debian-devel/2004/10/msg00054.html .. contents:: ------------ Introduction ------------ Lots and lots of packages ========================= As of May 24, 2005, my Debian unstable system counts 16769 different binary packages, and I feel very powerful. I can access at least three complete office suites, various painting programs (of which at least one is designed for kids and one for world-famous digital effect movie studios), software for massively parallel quantum chemistry, GIS geographical tools, dental office management software, and, my favourite, a tool to have a cute cow read my presentations:: ________________________________ / a tool to have a cute cow read \ \ my presentations: / -------------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || As a Debian user, I am very powerful. However, there is a simple question that I'm having a hard time answering:: What do you want to install in your computer? [ ] 3dchess 3D chess for X11 [ ] 3ddesktop "Three-dimensional" desktop switcher [ ] 44bsd-rdist 4.4BSD rdist. [ ] 6tunnel TCP proxy for non-IPv6 applications [... 16765 more options follow ...] And another one:: What do you want to remove from your system to make up some space? [1563 options follow] If I search the package archive, I get: * apt-cache search web browser: 197 results. * apt-cache search text editor: 170 results. * apt-cache search image editor: 22 results, but Gimp is NOT among them. Now, I profoundly believe that having choice is really good: what we need is not to reduce the size of the archive, but to create some way to make it easier for people to find what they need. What does it mean, "make it easier"? Here is a nice measure: "in front of a list with more than about 7 plus or minus 2 items, our brain goes banana" [ZEN]_ [MILLER]_. Archive sections ================ The way we are currently organizing packages is by grouping them in sections: Debian main has about 16197 binary packages divided in 33 different sections. However, this means an average of 490 packages per section, which is too many. In fact the problem is even worse than this, because some sections are more lightly subscribed than others. After all, the more packages a section has, the more likely that the one package you want is found therein. By this metric, the Debtags team calculates that the typical Debian package is found in a section of 785 binaries. Such a number approaches the size of *the entire archive* at the time when the section system was first introduced. Increasing the number of sections would not help too much: to have an average of 20 packages per section we would need 800 different sections: but then, how does one choose among 800 sections? Besides the numbers, current software is getting more and more complex: for example, which section should a full-featured web browser such as Mozilla be put in? ``net``? ``web``? ``mail``? Sections were fine when Debian was smaller and simpler. Now there is a bug (`#144046: Sections are not finely grained`__) asking for something better. That bug has been assigned to `Debtags`_. And `Debtags`_ is going to close it. __ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=144046 ------------------------------- Debtags theoretical foundations ------------------------------- The original idea of `Debtags`_' was just to allow more than one section per package. That would have allowed us to categorize Mozilla under ``net``, ``web`` and ``mail`` simultaneously, allowing the user to find it under whichever classification they had in mind. That is how we started, and that is how we got stuck. What do we mean with ``net``? Some possibilities are: * The package has a program that can use information not stored in the local computer; * The package has code which invokes the socket() system call; * The package analyses firewall logs; * The package is useful to configure and maintain a network; * All of the above. All of these are probably valid interpretations. And then, why shouldn't all of Gnome belonging to ``net``, since the 'N' in GNOME means 'Network'? Classifying packages is a bigger problem than it seems at first sight. Luckily I suspected that someone has been thinking about it already, and I did some research__. It turned out that there is a whole new science calling "Information Architecture" whose goal is to sort out the Information Mess of the Information Age. It also turned out that our problem had been solved somewhere in 1933, but they forgot to leave me a note. __ http://lists.alioth.debian.org/pipermail/deb-usability-list/2004-January/000248.html Classifying software ==================== .. figure:: ranganathan.png Shiyali Ramamrita Ranganathan Once upon a time in India, a mathematician and librarian called Shiyali Ramamrita `Ranganathan`_ started a secret project to innovate software categorization for Debian. It was about 1931, and he did not want to use the words "Debian" and "software" just yet, so he disguised all of his work under words such as "library", "books" and "`library science`_" [STECKEL]_. Ranganathan_ is famous for his five `laws of library science`_: 1. Books are for use. 2. Every reader his or her book. 3. Every book its reader. 4. Save the time of the reader. 5. The Library is a growing organism. If we do a simple word substitution, we obtain the perfect rules for classifying Debian packages: 1. Software is for use. 2. Every user his or her software. 3. Every software its user. 4. Save the time of the user. 5. Debian is a growing organism. These rules look simple, yet they are important and deep: rule number 1 tells us that software is there to be used, which means that people need to know about it and find it. This is the main reason for organizing packages: to allow people to use them. Rules number 2 and 3 tell us that not every software is appropriate for every user, and users need to be able not only to find software, but also to find the software which is appropriate for them. Rule number 4 tells us that the research must be quick and efficient, and the user should not spend a lot of time trying to search through long lists of packages, or learning a complicated search system. Rule number 5 says that Debian keeps growing and evolving, and any system we design will have to cope with that. This is exactly the purpose of Debtags_. Codified__ by Ranganathan_ in 1931. __ http://en.wikipedia.org/wiki/Five_laws_of_library_science .. _Ranganathan: http://en.wikipedia.org/wiki/Ranganathan .. _library science: http://en.wikipedia.org/wiki/Library_science .. _laws of library science: http://en.wikipedia.org/wiki/Five_laws_of_library_science Faceted Classification ====================== Ranganathan_ has been working all his life to solve the problem of classifying books in big libraries. To do so, he designed a system that he called *Faceted Classification* or *Colon Classification*: A faceted classification [is a way of classification that] uses clearly defined, mutually exclusive, and collectively exhaustive aspects, properties, or characteristics of a class or specific subject. *Wynar, Bohdan S. ''Introduction to cataloging and classification''. 8th edition. p. 320* In other words, with faceted classification we have more than one set of categories: one for each *aspect* of our packages. Every different aspect of an object is described using a separate *set of categories*, called "*facet*". Ranganathan_ has also given suggestions on how to identify the facets to categorise. He suggested that there are 5 fundamental kinds of facets, which are sometimes addressed as "PMEST" because of their initials: Personality what the object is primarily *about*. This is considered the "main facet." Matter the *material* of the object. Energy the *processes* or *activities* that take place in relation to the object. Space *where* the object happens or exists. Time *when* the object occurs. If at first sight this seems unrelated to software, remember that `Ranganathan`_ was talking about books, and we need to do some mapping. For example, `pixelcharmer`__ has been `mapping the PMEST to blog entries`__: * Personality = topic * Matter = form * Energy = process * Space = I don't believe I've used this facet, or perhaps it's the permalink of the post itself? Yes, let's go with that for now. * Time = date __ http://pixelcharmer.com __ http://www.pixelcharmer.com/fieldnotes/archives/process_designing/2003/000348.html Let's follow her steps and `map the PMEST to Debian packages`__: Personality What the package is primarily *about*. Answers the question *what is it?* Matter The "material" that constitutes the package. Answers the question *what is it made of?* Energy The processes or activities that take place in relation to the object. Answers the question *what do I do with it?* Space Where the object happens or exists. Answers the question *where do I use this?* Time When the object occurs. I still haven't found a suitable mapping for this: it might just be that Debian packages exist a bit outside of time, and that would explain how come Sarge took so much to release. __ http://lists.alioth.debian.org/pipermail/debtags-devel/2005-April/000347.html In `Debtags theoretical foundations`_ I gave an example of many different ways to interpret the section ``net``. We can try to look at some of them again using the PMEST: * "The package has a program that can use information not stored in the local computer". Is storing such information the main purpose of the program? Then the program's *personality* would need to be categorised as related to the network. Else, the program's *energy* would be categorised as network-related instead. * The package has code which invokes the socket() system call. This is about the *matter* of the package: the technology it uses, the functions it invokes. * The package analyses firewall logs. This would mean that the *personality*, or the *energy* of the program is related to the network, but *not its matter*: if we look at how the package is made, we mainly see a text parser. The PMEST is useful in that it gives us more mental structure to understand the properties of an object and to resolve the ambiguities in its categorisation. Some use case examples ====================== Let's see how this could help, with three examples: * User A wants to find a simple software to manage their collection of audio CDs, which integrates nicely with his or her Gnome desktop; * Developer B wants to write a software to manage a collection of audio CDs, and is looking for code and examples in existing applications and libraries; * System administrator C works for a radio broadcaster and wants to set up a mail interface that allows people to search the radio collection of audio CDs; he or she is looking for the right existing tools to get it done. Now, let's look better at what they want: * User A is interested in integration with Gnome, not implementation details. * Developer B mainly cares about implementation details, to find good examples to build from. * System administrator C is only interested in commandline applications (no matter how they are implemented) or alternatively perl libraries. User A will probably start searching through Gnome software. User B will probably start searching among software implemented in C. User C will probably start searching for commandline tools. And they will probably all look for software to manage an audio CD collection. These three people are looking at the package archive from different angles. Luckily, Faceted Classification does just that: it categorizes the items from different aspects. If we do things right, there will be something like a 'Desktop' facet, an 'Implemented-in' facet, a 'Kind-of-interface' facet and a 'Purpose' facet, each of these facets categorised with their sets of tags; and everyone will be able to find what they are looking for. The design of Debtags ===================== The key concepts of Debtags are *Facets*, *Tags*, the *Vocabulary* and the *Tag Database*. Let's consider them one by one. Facets ------ Facets are the aspects of our packages that we choose to categorise. Example of facets in Debtags_ are ``implemented-in``, ``culture``, ``interface``, ``media``. Each facet defines an aspect of packages we look at. For each facet there is a set of categories that we use to describe what we see when we look at that aspect of a package. Faceted categorization is like saying, "If I look at what is the use of this package, I see *editing*". "If I look at what is its user interface, I see *a text-mode user interface*". Facets are "If I look at X"; tags are "I see X". The list of facets currently categorised by Debtags_ is available in `The Vocabulary`_. Tags ---- The *tag* is a Debtags category. Debtags uses different sets of categories, that we call tags, to categorise different facets of software. We use the word tags instead of categories because it's shorter, and we talk about tags a lot. In Debtags, we represent tags with a short English name, prefixed by the name of the facet it categorises. For example, when we look at what media types a package can work with and we categorise "The Gimp", we use the tag ``media::rasterimage``. The Vocabulary -------------- The Vocabulary is where we store the list of facets and tags that we use for Debian packages. Having a common vocabulary is important so that we all refer to the same property with the same name. Other benefits of the common vocabulary include the abilities to present selections of facets and tags in a user interface, to store meta-information about them (such as a short and long description, possibly in many languages), and to validate classification information. The `Debtags`_ vocabulary is the file that delineates the facets and lists the respective tags that can be used to categorize Debian packages. The vocabulary file contains whatever needs to be stored about facets and tags. At the moment this means: * a list of facets and their tags; * description of facets and tags; * editorial information; * comments. This information is stored in a format similar to the usual Debian package records. For example:: Facet: implemented-in Description: Language that the package is implemented in Nature: matter Status: complete Tag: implemented-in::c++ Description: C++ This defines a facet called ``implemented-in`` and a tag ``c++`` inside it. The main location of the vocabulary is in the `subversion`_ repository at ``svn://svn.debian.org/debtags/vocabulary/debian-packages``; from there, it makes its way to the default `Debtags`_ tag source and then, by means of ``debtags update``, it is stored locally in ``/var/lib/debtags/vocabulary``. It is also indexed by ``debtags update`` to allow applications to quickly lookup entries inside it. There are currently 32 facets defined, containing a total of 440 tags. To see the facets along with their descriptions and other data, you can run ``debtags update`` and then use ``grep-dctrl``:: grep-dctrl -FFacet -r . /var/lib/debtags/vocabulary A tutorial on sending patches to the vocabulary can be found at http://debtags.alioth.debian.org/vocabulary.html The tag database ---------------- A tag is assigned to a package by entering the appropriate information in the Tag Database. Designing this database is one of the most tricky and important implementation details of Debtags, as it is the way to share the tags and make them useful. An obvious place for storing the tags is in the control file of the packages, together with the other package metadata. This possibility has been discarded, however, for a couple of good reasons: * The aggregated package database is already big enough, and there are no clear short term ways of addressing this problem * "Debian is a living organism": tags can change fairly often, because the classification is refined, a new tag is introduced or a whole new facet of packages is classified, and we cannot afford a new package upload or ftpmaster intervention every time such a change happens. We chose instead to store tag data in a central tag repository, located at http://debian.vitavonni.de/packagebrowser, from which it can be downloaded in the user's computer by means of the ``debtags update`` command, just like the package database can be downloaded by means of ``apt-get update``. This makes it possible to store and maintain the categorization data without causing an added burden to the Debian infrastructure. It also allows to have different *tag sources* merged together. Check this out because it's cool! Let's make an example with a fictitious Debian-Circus `CDD`_ (`Custom Debian Distribution`__) that chooses to categorise packages also from the aspect ("facet") of their possible use in a circus. To do so, they want to have in Debtags a ``circus`` facet, categorised with tags such as ``travel-info``, ``installation-procedures``, ``inventory``, ``artist-management``, ``show-management``, ``propaganda``, ``accounting``. To realise this, Debian-Circus can create their own piece of Vocabulary and Tag Database and make it available to be downloaded as a *tag source*. ``debtags`` is able to download data from various tag sources (listed in ``/etc/debtags/sources.list``) and merge them together. Different tag sources can be merged easily when facets differ, and they complete each other's view of packages by shedding light on more aspects of them. Now, Debian-Circus provides categorization along the ``circus`` facet, and Debian provides categorization for the ``suite`` and ``media`` facets. Any circus sysadmin can now merge this information together and look for ``circus::propaganda`` software for ``suite::gnome`` that can work with ``media::vectorimage``. Isn't it exciting? __ http://cdd.alioth.debian.org/ The main location of the database is inside Erich Schubert's `packagebrowser`_ at http://debian.vitavonni.de/packagebrowser. From there, it makes its way to the default `Debtags`_ tag source and then, by means of ``debtags update``, it is merged with other tag sources and stored locally in ``/var/lib/debtags/package-tags``. The database is stored locally in an easily parsable format that can also be understood by tools such as ``tagcoll`` and ``tagcolledit``. It is also indexed by ``debtags update`` to allow applications to look entries up quickly in it. The individual user can modify the Debtags database locally. Such local modifications are stored as *tag patches* in the file ``~/.debtags/patch`` in the user's home directory. A tag patch is a special patch format that can represent a change to a tag database, and can also be applied to future versions of the database, so that your changes are preserved across ``debtags update`` invocations. Another useful feature of the tag patches is that you can send them to the central database, which will integrate them with the rest of the data. You can do this by using `debtags-edit`_ (it has a "*File/Mail changes to central database*" feature) or by using the command ``debtags send``. ------------- Using debtags ------------- Debtags is not only categorization data, but also a suite of tools that allow to work with the data: `debtags`_ Commandline interface to libdebtags functions and `Debtags`_ administration tool. `debtags-edit`_ GUI application to search and tag packages. ``tagcoll`` Commandline tool to manipulate generic collections of tagged items. ``tagcoll-edit`` GUI application to perform mass-editing of collections of tagged items. ``libtagcoll1`` Library providing generic functions to manipulate collections of tagged items . ``libdebtags1`` Main library with `Debtags`_ functions, and wrappers to many languages. Erich Schubert's `packagebrowser`_ Central tag archive, browsable and editable online. ``autodebtags`` Experimental tool to perform some automatic and heuristic tagging tasks. The suite is quite large and diverse, and it allows to do many different kinds of analyses and manipulations of the tagged data. If you are new to `Debtags`_ and you are looking for some function, chances are that it is already implemented somewhere: if you cannot find it, don't hesitate to ask in the `debtags-devel`_ mailinglist. debtags ======= These are some example uses of ``debtags``: ``debtags update`` Updates the local `Debtags`_ information. ``debtags stats`` Prints some statistics about `Debtags`_. ``debtags show mutt`` Like ``apt-cache show mutt``, but also shows the mutt's `Debtags`_ tags. ``debtags grep 'use::editing && media::rasterimage'`` Shows all packages that allow to edit raster images. You can use full arbitrarily complex boolean expressions such as ``(use::playing && ! use::recording) && media::audio && (interface::commandline || interface::text-mode)``. An interesting one is this: ``!culture::* || culture::italian``: it shows all packages that are either not locale-specific or that are specific to my locale. This can be used in package managers to filter out packages for locales not used by the system. ``debtags tagshow use::editing`` Shows the vocabulary information about the tag ``use::editing``. ``debtags tagsearch edit`` Shows all the tags whose information (such as the name or the description) matches the string "edit". ``debtags cat`` Outputs the entire tag database, including local modifications. It is useful to provide data to other packages such as ``tagcoll`` or ``tagcolledit``. ``debtags todo`` Prints a list of the packages installed in the system that are not yet tagged. ``debtags todoreport`` Generates a report of packages that probably need to be tagged better. debtags-edit ============ .. figure:: debtags-edit.png Screenshot of the main window of ``debtags-edit``. ``debtags-edit`` is a graphical interface for searching and tagging packages. Since I'm always busy experimenting with new features, the interface is quite rough and I'll have to explain it a moment. Running debtags-edit -------------------- Try running ``debtags-edit``. If it does not work, it might be because you have not yet run ``debtags update`` to download the `Debtags`_ data: do it now and run ``debtags-edit`` again. Searching packages ------------------ On the left-hand side of the application window there is a *Filter* area which allows you to look for packages: you play with the controls, and a list of matching packages appears in the bottom left part of the screen. A notable part of the filter area is the *Tags* area, which lets you add tags to the filter. Try pushing the *Add* button of the tags area and add something like "Use/Editing": the list will display all packages which can edit something. Now push "Add" again: the list of facets and tags has narrowed down to only the available possibilities, and if you look inside the "Media" facet, you'll see a list of the possible kinds of media that can be edited using Debian packages. .. note:: If this example does not work for you, check what is in the "Maintainer:" field: there might be your e-mail there. That is because ``debtags-edit`` wants to kindly suggest you to tag the packages you maintain [1]_. For the purpose of this example, you can clear the "Maintainer:" field and try again. After I tell you how to tag packages, please put your address back there ;) Using the filter can search packages by name, do a full-text search à-la ``apt-cache search``, search by maintainer, installed status or tags. This makes debtags-edit an interesting tool already, but let's see more. .. [1] If ``debtags-edit`` cannot find the ``DEBEMAIL`` environment variable, it will instead leave the "Maintainer:" field empty and preselect "Status: Installed", kindly suggesting you to check if the packages you know and use everyday are tagged well enough. Tagging packages ---------------- You can now click on a package name in the bottom-left part of the application: that will display the package in the main display on the right side. At the bottom part you will see all the package data, very much like the output of ``apt-cache show``, while in the top part you will see the tags of the package. If the package you chose has no tags, try looking for ``debtags``: that will be nicely tagged. Now try adding a new tag to ``debtags``: try adding "Games/Toys". Push the other "Add" button below the tag list in the top-right part of the window, and navigate the complete facet list until you find the "Games" facet: inside it you will find "Toys". Select it: the tag has been added, and you made your first step into Debtags tagging! Now try doing "File/Save", then go to a terminal and type ``debtags show debtags``: you will notice that your new games::toys tag is already there. Cool, isn't it? What happened is that ``debtags-edit`` saved your modifications in ``~/.debtags/patch``, and all Debtags-aware applications read that file at startup. Have a look at the file: it's just a patch with the change you made, and its format is such that it can be applied to any future version of the tag database. Isn't it smart? I'm so proud of it! Now go back to ``debtags-edit`` and look in the "File" menu: there's a "*Mail changes to central archive*" option. If you click on it, it will mail the contents of your ``~/.debtags/patch`` to the central archive, and the next day your contribute will be available to everyone when they will do ``debtags update``. What else do you need to contribute to the categorization? Only one more thing maybe: subscribe to the `debtags-devel`_ mailing list. packagesearch ============= .. figure:: packagesearch.png Screenshot of the main window of ``packagesearch``. `packagesearch`_ is a package search program written by Benjamin Mesing. Among its many features, it is able to make use of Debtags data. To use `packagesearch`_, you set search parameters in the top part of the application, and it displays the results in the bottom. The Debtags search is on the right side, on a tab named "Debtags". Try running `packagesearch`_, then select the Debtags tag "Use/Editing": you will see all the packages that can edit something. Then select "Media/Raster Image" and you will see all raster image editors in Debian that are known to Debtags. Compared to `debtags-edit`_, `packagesearch`_ does not allow to change the categorization, but it features more search functionalities, and it also integrates ``apt-file`` searches. packagebrowser ============== Lastly, the central tag archive has a web interface (the *packagebrowser*, written by Erich Schubert) that can be used to navigate the `Debtags`_ data and edit them online. You can find it at http://debian.vitavonni.de/packagebrowser/. One way of working with the packagebrowser is to help with the `not yet tagged`__ packages, following the link at the top of the main page. Another way is to work on packages is from the `Debtags TODO report`__, in which all package names directly link to their edit page. .. note:: The packagebrowser edit page lists all available tags and is very long. However, modern browsers have very quick and convenient search functions such as the `"/" function`__ in Firefox. Using those functions it becomes quite fast and easy to find what you need in the list of tags to add. __ http://debian.vitavonni.de/packagebrowser/index.cgi?tags=special::not-yet-tagged __ http://debtags.alioth.debian.org/todoreport.html __ http://www.mozilla.org/support/firefox/keyboard debram ====== In the words of its developer Thaddeus H. Black, Debram was ``a primitive attempt to treat the same Debian package problem Debtags more properly solves.`` Today, Thaddeus has enthusiastically joined Debtags development and is now in the process of merging the large body of Debram data into Debtags. Unable to attend Debconf5, Thaddeus has asked me to recommend to Debram users that they migrate directly to Debtags at their convenience. Post-sarge, Debian Maintainers need not tag their packages in Debram at all; standard Debtags tagging suffices. --------------------- Where to go from here --------------------- Contributing to the categorization ================================== *Tag your packages, you will* (Master Yoda) Using debtags-edit ------------------ These are some examples on how to use `debtags-edit`_ to do some more serious categorization work. Most of them are ways of identifying packages that need some work: once you find them in `debtags-edit`_, you can directly work on them 1. Fire up `debtags-edit`_ and set the filter to display all installed packages with the tag ``special::not-yet-tagged``. Now look at the results, pick something you know and add tags to it. After you are satisfied with its categorization, remove the not-yet-tagged tags and submit. 2. Click on "Edit/TODO dialog": a dialog will open with various TODO options: Empty tagset lists all packages with no tags at all. Those are usually not reported, because the central repository should automatically add ``special::not-yet-tagged`` tags to them; however this is sometimes not the case, especially for local packages or packages that have recently been added in the archive, so this option is available to spot such packages. Uitoolkit and not interface lists all packages which have ``uitoolkit`` tags but not ``interface`` tags. This might be a normal situation, especially for software libraries, but for normal applications it is probably an anomaly worth checking. Uitoolkit and not implemented-in lists all packages which have ``uitoolkit`` tags but not ``implemented-in`` tags. This might be normal for documentation about user interface toolkits, however it is an anomaly for applications and libraries, and it's worth checking as well. Missing Role Ideally every package should have a kind of role in the distribution. However, there are lots of packages which do not yet have a ``role::*`` tag. Since the tags in the Role facet are still under discussion, this function is good to bring up food for ideas. Specials The options starting with "Specials" allow to see packages whose tag sets are special cases compared to all the other packages with similar tags. How this is computed is a bit complex, but this is proving to be very useful to highlight some corner cases that lead to extra reasoning and improvements of the vocabulary. 3. Click on "Edit/Facet dialog" to activate an experimental new feature of `debtags-edit`_ to find even more corner cases. This will pop up a dialog with two columns: the *Has* column and the *And not* column. Both columns list facets. If you click on a facet on the "Has" column, the "And not" column will list all the other facets, together with a number. The number represents how many packages have the "Has" facet, but do not have that "And not" facet. The "And not" facets are sorted by increasing values of this number. Sometimes all the "And not" facets have similar numbers, but sometimes there are facets with numbers that are definitely smaller than the others. Those facets are very likely to have something in common with the current facet in the "Has" column, since a lot of packages have tags from both facets. For instance, it happens at the time of writing that, when selecting the "Game" facet on the left side, the corresponding "Use" facet reports a count which is one order of magnitude less than the others. This is because of the existence of ``use::gaming``, which is normally found in most, if not all, ``game::*`` packages. What are then those packages that have ``game::*`` but not ``use::gaming``? Let's see them: click on "Use" on the right column, then click ok. That will set ``game:: && !use::`` as the base for the package list, and further filtering will be based on them. You can now see what are those packages, and if you want you can check which of them are installed in your computer. With ``game::*``, it turns out that there is a reason: there are games (many of which are ``game::toys``) that are not useful for gaming. Some examples are `cappuccino`__, `cowsay`__, `polygen`__ and `fortune`__. Howewer, one could realise that these toys have some other use before gaming. Maybe a new "use::*something*" tag is needed? The Facet Dialog has helped finding out. __ http://packages.debian.org/unstable/games/cappuccino __ http://www.nog.net/~tony/warez/cowsay.shtml __ http://www.polygen.org __ http://www.redellipse.net/code/fortune Using debtags ------------- `debtags`_ can be useful for tagging in two ways: both to give you hints on what needs to be worked on, and as a low-level tool you can use if you want to automate tagging tasks. There are three features of `debtags`_ you can use to get hints on what to do: ``debtags todo``: ``debtags todo`` prints a list of packages you have installed which are tagged with the ``special::not-yet-tagged`` tags. No need for further explanations: tag them! ``debtags todoreport``: this prints a text report about packages that need some work to do. It includes a range of simple to very complex checks to find out problematic areas of the categorization, and the report that it outputs contains explanations about the reasons behind every group of packages. The report also includes packages that are not installed. The output of ``debtags todoreport`` is periodically processed with `rst2html`_ and published at http://debtags.alioth.debian.org/todoreport.html ``debtags related``: ``debtags related`` shows you what packages are similar (tagging-wise) to a given one. Try running ``debtags related cdcd``: you will see a list of other CD players. You can use the ``-d`` switch to increase the *distance* of the search, that is, to include more packages that are "a bit less similar". You can use this function to check if the list of related packages is what you would expect: if not, you can check the tags of the missing or extra packages to see if there is anything wrong. You can also use `debtags`_ as a low-level backend if you want to experiment with scripted or automated tagging ideas: ``debtags tagsearch`` and ``debtags tagshow``: They allow you to search the tag vocabulary and show information about a tag. ``debtags tag ls``, ``debtags tag add`` and ``debtags tag rm``: These commands are intended to be run from scripts, and they list the tags attached to a package and allow you to add or remove tags to it. Try this:: debtags tag ls debtags debtags tag add debtags game::toys debtags tag ls debtags debtags tag rm debtags game::toys debtags tag ls debtags Using tagcolledit ----------------- ``tagcolledit`` is a generic tool to do mass-editing of tags. It is not specific for Debtags, so it does not know about packages, but compared to `debtags-edit`_ it can make it easy to do large-scale operations like renaming of tags. Let's run ``tagcolledit``:: # Get a version of the tag database including the local patch debtags cat > /tmp/tags tagcolledit /tmp/tags The interface of ``tagcolledit`` is unfortunately very rough, just like `debtags-edit`_, and it needs some explanation. It is divided in two panels, like `Midnight Commander`__, and every panel works in the same way: it has a filter, and a list of matching items (that are packages in our case). __ http://www.ibiblio.org/mc/ Now try doing this: in the left panel, select the ``uitookit::qt`` tag. In the right panel, select the ``implemented-in::c++`` and the ``interface::x11``. Now, QT is a C++ library, so one would expect most of the QT applications to have an X11 interface and to be implemented in C++. With ``tagcolledit`` it's very easy to have a look at the left panel, select groups of packages that need fixing (the list supports multiple selection), then right click on the selection and choose "*Copy to other panel*". This will add the tags ``implemented-in::c++`` and ``interface::x11`` to the selected packages, and they will show up in the other panel as well. You can do many other tricks with ``tagcolledit``: merge or intersect tag sets, add a tag to a group of items or even to all of them (right click on the tag in the filter: you will see the "*Add to all*" and "*Remove from all*" functions). It is however easy to get carried away and make mistakes, such as adding the ``use::gaming`` tag to all the ``games::toys``, to find out later that packages such as `fortune`__ or `cowsay`__ cannot really be used to play games. __ http://www.redellipse.net/code/fortune __ http://www.nog.net/~tony/warez/cowsay.shtml Once you are finished with ``tagcolledit``, you can save the tag database and quit. If you are happy with your changes you will want to integrate them in the main tag database: first create a patch:: debtags mkpatch /tmp/tags > /tmp/tags.patch This will create a tag patch with the changes you have made with ``tagcolledit``. You can then add your patch to the local tag patch:: cat /tmp/tags.patch >> ~/.debtags/patch And see your changes in all the `Debtags`_-aware applications. Then you can submit it, with either `debtags-edit`_ or ``debtags submit``. You can even submit it directly:: debtags submit /tmp/tags.patch Automated tagging ----------------- While generally there is a need for a smart brain to do good categorization, there are some tagging tasks that can be automated. For example, it's good enough to assume that all packages that depend on ``libgtk2.0`` will need a ``uitoolkit::gtk`` tag, while all packages that depend on ``libstdc++6`` will probably need an ``implemented-in::c++`` tag. These ideas have brought to creating `autodebtag`_, which is a Perl script that does all kinds of automated reasoning that I and other people in the `debtags-devel`_ list conceived so far. Then it prints out a tag patch that can be evaluated, tested and submitted to the central tag database. `autodebtag`_ has also some experimental code to try and bring categorization data from the `debram`_ database into the `Debtags`_ world. Benjamin Mesing is also experimenting with setting up a smart Bayesian engine to infer new tags based on what tags are there now. This has very promising and exciting possibilities: there is a prototype available in the `autodebtag`_ subversion repository, and it needs more people to play with it. Adopting a tag or a facet ------------------------- If you regularly try out all image manipulation software, if you are a Gnome expert, if you are addicted to role-playing games, you might consider *adopting a tag*. Adopting a tag means that you take responsibility for checking from time to time that all packages that should have your tag actually have it. It is a very important task, because it introduces a level of reliability and guaranteed accurateness into some parts of the tag database. For example, `Stefano Zacchiroli`__ is an `Ocaml`__ guru, and is taking care of the ``implemented-in::ocaml`` tag. You will notice that all `Ocaml`__ applications have the ``implemented-in::ocaml`` tag, and thanks to Stefano you can rely on that tag to be accurate. We need more people to do what he is doing. __ http://www.bononia.it/~zack/ __ http://caml.inria.fr/ocaml/ __ http://caml.inria.fr/ocaml/ To adopt a tag, just send an e-mail to the `debtags-devel`_ list, introduce yourself and tell what you want to adopt. If it's already taken, you can team up with the others and share the brainwork. Contributing to the vocabulary ============================== The vocabulary is another area needing help. Debian spans a very wide and diverse range of areas, and knowing about all of them is nearly impossible. There are two ways of having a good vocabulary to cover all of Debian's interests: 1. Wait until I learn about everything in Debian, reach enlightenment and open a Debian monastery in the Alps, or 2. Create a group of people with knowledge on different fields to work on the vocabulary together. So far, we have been working mainly on 1. This was because there was poor documentation on `Debtags`_ and its technical foundations. Now there is this paper, and it's time to switch to the second strategy. If you feel like you could help (and you do not need to be a Debian Developer, but a Debian user with a lot of experience in some field), you can read the tutorial at http://debtags.alioth.debian.org/vocabulary.html and join the `debtags-devel`_ mailing list. You can also make local experiments with the vocabulary: the `Debtags FAQ`_ has an entry with a small tutorial on how to do it. Someone is trying to do it to provide specific sets of tags for their Custom Debian Distribution, but it's also a good way to experiment with ideas for new facets or tags. .. Tricky points in the categorization =================================== why don't we tag all games::* with use::gaming? is verse a game::toy like fortune-mod? If you are a package maintainer =============================== If you are a package maintainer, please run `debtags-edit`_ and have a look at your packages. You are probably the best person in Debian to assign tags such as ``implemented-in::*``, ``interface::*`` and ``uitoolkit::*``, and it's going to be very easy for you to do it. Also remember that you can use more than one tag from the same facet, as your package may contain more than one program, or it may contain programs with multiple behaviours: for example, `mutt`__ or `aptitude`__ have uses both as ``interface::text-mode`` and ``interface::command-line`` programs. __ http://www.mutt.org/ __ http://aptitude.sourceforge.net/ Integrating Debtags in other applications ========================================= Now that you know everything about `Debtags`_, you may want to make use of the `Debtags`_ data in your applications, or play with `Debtags`_ using code instead of existing tools. If that is the case, there is a selection of libraries and modules available for you. libdebtags1-dev, python-debtags, libdebtags-perl ------------------------------------------------ If you look inside the code of `debtags`_ and `debtags-edit`_, you will notice that most of what they do related to tags is calling functions from the ``libdebtags1`` or ``libtagcoll1`` libraries. ``libtagcoll1`` provides generic manipulation functions for tagged stuff, while ``libdebtags1`` uses ``libtagcoll1`` to implement all `Debtags`_ functionality. If you like programming in C++, install ``libdebtags1-dev``; from there, you can either look at `debtags`_ and `debtags-edit`_ source code for examples (`debtags`_ is particularly straightforward) and use ``/usr/share/doc/libdebtags1-dev/html/index.html`` for the `doxygen`_ documentation. The documentation still has missing parts. If you have questions, no matter how silly they could seem, please ask them freely in `debtags-devel`_ list: I have promised to myself that I will turn every answer I give into more documentation of ``libdebtags1-dev``. If you instead like coding in Perl or Python rather than C++, you can install either ``libdebtags-perl`` or ``python-debtags``: they are `swig`_-generated bindings to ``libdebtags1``. Again, for whatever documentation or examples that are missing, ask in `debtags-devel`_, and every answer will also contribute to improve the documentation and examples in the packages. This is an example Python code that plays with Debtags a bit (please teach me how to use iterators properly):: import Debtags # Instantiate the simple Debtags class dt = Debtags.DebtagsSimple(0) # Get some information from the vocabulary voc = dt.vocabulary() print "Facets:" for a in voc.getFacets().getIterable(): print "%s: %s %s" % (a.name(), a.field("Status"), a.field("Nature")) # List the accessibility tags fac = voc.getFacet("accessibility"); print "Tags in 'accessibility::':" for a in fac.tags().getIterable(): print a.name() # Print the tags of ``debtags`` tags = dt.getTags("debtags") for a in tags.getIterable(): print a.name() # List the image editors in Debian tags = Debtags.TagSet() tags.insert(voc.getTag("use::editing")) tags.insert(voc.getTag("media::rasterimage")) editors = dt.getPackages(tags) print "Raster image editors:" for a in editors.getIterable(): print a.name() This is the same example, written in Perl:: #!/usr/bin/perl -w use strict; use warnings; use Debtags; my $dt = Debtags::DebtagsSimple->new(0); my $voc = $dt->vocabulary(); print "Facets: ", join(', ', map { $_->name() } @{$voc->getFacets()->getIterable()}), "\n"; my $fac = $voc->getFacet("accessibility"); print "Tags in 'accessibility::': ", join(', ', map { $_->name() } @{$fac->tags()->getIterable()}), "\n"; print "Tags for 'debtags': ", join(', ', map { $_->fullname() } @{$dt->getTags('debtags')->getIterable()}), "\n"; my $tags = Debtags::TagSet->new(); $tags->insert($voc->getTag('use::editing')); $tags->insert($voc->getTag('media::rasterimage')); my $editors = $dt->getPackages($tags); print "Raster image editors: ", join(', ', map { $_->name() } @{$editors->getIterable()} ), "\n"; .. note:: I'm sorry for the need of that ``getIterable`` function, but `swig`_ does not properly wrap C++ ``std::set`` classes yet. This is hopefully going to change as `swig`_ evolves. libapt-front ------------ `libapt-front`_ is the next-generation wrapper for ``libapt``. The goal of the project is having a library to base all package managers on, and to have it able to access different sources of metadata besides ``libapt``. Including `Debtags`_. `libapt-front`_ is still under heavy development, and `Debtags`_ support is still not implemented. However, I have commit access to the `libapt-front`_ repository and I've recently been able to take ``libdebtags1`` where I wanted it to be in order to support `libapt-front`_: expect exciting news from this corner of `Alioth`_! User interface issues ===================== Once we have the data and the functions to access it, we can improve the way we navigate our package archive. One area where more research is needed is finding good ways of navigating the package archive using `Debtags`_. As I mentioned before, in front of a list with more than about 7 plus or minus 2 items, our brain goes banana [ZEN]_ [MILLER]_. This sets a first goal for `Debtags`_: to allow people to navigate the package archive in such a way that no list of unrelated choices should have more than 7 plus or minus 2 items. Do you know of any existing and very good interfaces to navigate such a large archive using faceted categorization? I don't. I know of `very good examples on a much smaller scale`__, but we seem to have a much more large, complex and heterogeneous dataset. We need mockups and prototypes of interfaces offering an intuitive and efficient way of navigating through tags, keeping in mind those 7+/-2 and EVN requirements. As you can see running `debtags-edit`_ and ``tagcolledit``, I still haven't done much progress in this field, and I'm desperately in need of good ideas. __ http://www.webdesignpractices.com/navigation/facets.html Effective View Navigation ------------------------- `Prof. G. W. Furnas`__, who usually writes good stuff, made a very nice research (check it out!) and found 4 properties that something should have to be easy to navigate. He called them the properties of *Effective View Navigation* or *EVN properties* [FURNAS]_: 1. (EVT1) The number of outgoing links must be "small" compared to the size of the structure 2. (EVT2) The distance between pair of nodes in the structure must be "small" compared to the size of the structure 3. (VN1) Every node must contain some valid information (called residue) on how to reach any given other node 4. (VN2) The information associated to each outgoing link (called outlink-info) must be small. I did some research on this idea related to categorization [TAGCOLL]_, and designed an algorithm that is able to present navigational choices of tags in a way that is compatible with the 4 EVN requirements. It is a good start, and recent `debtags-edit`_ are making use of it in the filter, to reduce the amount of facets when there are too many to display. This algorithm has potential, but the results are still not perfect: you can now start the navigation with 19 facets instead of the 32 available, but that's still far beyond 7 plus or minus 2. The main cause of this is that tag data is still incomplete: the "TODO Specials" features of `debtags-edit`_ are there to expose those packages that are causing problems. From my experience, however, I see that algorithm as a point of departure rather than a point of arrival, and more smart navigation ideas are waiting to come to life. __ http://www.si.umich.edu/~furnas/ ----------- Conclusions ----------- This paper is the first single comprehensive source of information about the Debtags project. It has covered the theoretical foundations, the tools existing at the moment, how to take advantage of `Debtags`_ and various ways of getting involved. Since we would really like to get help, I'll repeat a short summary on how to get involved: - help with tagging (see `Contributing to the categorization`_) - adopt a tag or facet (see `Adopting a tag or a facet`_) - help maintaining the `Debtags`_ webpages - help maintaining the various `Debtags`_ Debian packages (but I have to warn that it's not an easy packaging task) - maintain a language binding (if you know swig_) - help testing the code and writing example programs If you are interested in helping, or just curious to see what's happening, join the `debtags-devel`_ mailing list: that's where people hang out, discussions happens and announcements are posted. ------------ Bibliography ------------ .. [STECKEL] Mike Steckel, *"Ranganathan for IAs"*, 2002, http://www.boxesandarrows.com/archives/ranganathan_for_ias.php .. [ZEN] Enrico Zini, *"Zen and the art of Free Software: know your user, know yourself"*, 2004, http://people.debian.org/~enrico/talks/2004linuxtag/ .. [MILLER] George A. Miller, *"The magical number seven, plus or minus two: Some limits on our capacity for processing information"*, 1956, Psychological Review n.63 pp. 81-91, http://www.well.com/user/smalin/miller.html .. [FURNAS] George W. Furnas, *"Effective View Navigation"*, 1997, Proceedings of CHI'97 pp. 367--374, ACM Conference on Human Factors in Computing Systems, Atlanta, http://www.si.umich.edu/~furnas/Papers/CHI97-EVN.2.pdf .. [TAGCOLL] Enrico Zini, *"The tagged collection: an alternative way of organizing a collection of bookmark-like items and its integration with existing web browsers"*, 2001, http://svn.debian.org/wsvn/debtags/tagcoll/trunk/doc/ .. _Debtags: http://debtags.alioth.debian.org .. _debtags-devel: http://lists.alioth.debian.org/mailman/listinfo/debtags-devel .. _packagesearch: http://packagesearch.sourceforge.net/ .. _rst2html: http://docutils.sourceforge.net/docs/user/tools.html .. _Debtags FAQ: http://debtags.alioth.debian.org/faq.html .. _doxygen: http://www.doxygen.org .. _swig: http://www.swig.org .. _libapt-front: http://libapt-front.alioth.debian.org .. _Alioth: http://www.alioth.debian.org .. _autodebtag: http://svn.debian.org/wsvn/debtags/autodebtag/trunk/ .. _debram: http://packages.debian.org/unstable/admin/debram .. _CDD: http://cdd.alioth.debian.org/ .. _subversion: http://subversion.tigris.org/ .. _restructuredtext: http://docutils.sourceforge.net/rst.html debtags-1.12ubuntu1/doc/problems.rst0000644000000000000000000000756511465320073014420 0ustar Debtags problems ================ The "Gimp is not an image editor" problem ----------------------------------------- Gimp is not an image editor application: it's an image manipulation application. At least, according to its description. This means that gimp will not show up when doing ``apt-cache search image editor``. Debtags should give users a simple way to find gimp when looking for image editors. This is currently solved successfully using the Smart Search algorithm: http://debtags.alioth.debian.org/ssearch.html The "Justin is tagging the packages" problem -------------------------------------------- Justin is a long time Debian contributor who understands tagging really, really well. He does a lot of good quality tagging work. The current state of the Debtags interfaces, however, cannot track which changes have been made by Justin. This means that Enrico, who reviews tag submissions, will have to review Justin's changes together with all the other, sometimes random, changes coming from the various submission interfaces. Justin's submissions, and those of trusted hard working people like Justin, and those of field experts adopting some tags, should go directly in the reviewed tag database. This problem is not yet solved. There is some possibility opening in this direction with the new website backend has prototype support for recording tag patches: http://lists.alioth.debian.org/pipermail/debtags-devel/2006-November/001394.html The "Exotic compiler" problem ----------------------------- Tagging what is the language supported by a development tool seems like a simple task: ``gcc`` can be tagged ``devel::lang:c, devel::lang:c++`` and ``perl`` can be tagged ``devel::lang:perl``. After some time tagging, one realises that we have a constant influx of all sorts of development tools for more or less minor languages. Here is an example, incomplete list: ``aleph``, ``A+``, ``aspectc++``, ``boo``, ``brainfuck``, ``cduce``, ``chuck``, ``confluence``, all the various dialects of Lisp/Scheme and those of ML, ``faust``, ``gambas``, ``goo``, ``gvrng``, ``haxe``, ``kaya``, ``lisaac``, ``mercury``, ``mozart``, ``oberon2``, ``scala``, ``slate``, ``slice``, ``crm114``, ``spl``, ``tela``, ``u++``, ``unlambda``, ``whitespace``, ``yorick``, ``zinc``, ``zoem``. After noticing one or two of those packages, one thinks that it is ok to create a new tag for every language that enters Debian, but when one realises how long the list can get, one realises that doing so would lead to confusing the Debtags language list for very little benefit. Then one is tempted to make a tag devel::lang:exotic that encompasses "all the weird ones". But then who decides if a language is exotic? Would Pascal be exotic, for example? And Forth? And Postscript? Both these two solutions produce more problems than they solve. The best solution found so far is doing nothing, and use the other tags we have to create the best approximate tagging. We do have ``devel::interpreter`` and ``devel::compiler`` to begin with. Some packages such as ``whitespace`` can also use ``use::entertaining``; ``chuck`` can use ``works-with::audio``; ``tela`` and ``yorick`` can use ``field::mathematics``. This shows the amazing expressivity of faceted categorisation: when you don't have a precise tag for a new concept, you have many ways to approximate it and you still get a good level of completeness. After this reasoning on exotic programming languages, we realise that the programming language itself may not be the main aspect of the package, but rather the main field in which the language is useful, or the special kind of data the language works with. When more packages will appear all working with a programming language, the programming language itself will become more relevant and a new useful tag can finally be created. Reference: http://lists.alioth.debian.org/pipermail/debtags-devel/2006-November/001380.html debtags-1.12ubuntu1/doc/faq.rst0000644000000000000000000004713511465320073013341 0ustar ================================== Debtags Frequently Asked Questions ================================== .. contents:: ------- General ------- What is Debtags? ---------------- Debtags is a set of categories to describe Debian packages. It provides a vocabulary__ of categories as well as `tag information for the packages`__. __ http://debtags.alioth.debian.org/tags/vocabulary.gz __ http://svn.debian.org/wsvn/debtags/tagdb/tags?op=file&rev=0&sc=0 Where can I find information about Debtags? ------------------------------------------- http://debtags.alioth.debian.org has a documentation section. Also, various blog posts of Enrico Zini about Debtags can be found at http://www.enricozini.org/tags/debtags.html Why aren't debtags yet (well) integrated with apt & co.? -------------------------------------------------------- They probably don't need to be integrated with apt, whose main purpose is to resolve dependencies and figure out what packages to install. However they should be integrated with higher-level package managers, like synaptic and aptitude. Why they aren't yet integrated, it's a question you have to ask to their authors. I hope that my recent work on `apt-xapian-index`_ can give a good way to integrate debtags support and much more into all sort of existing applications. What are future plans and perspectives? --------------------------------------- Hopefully, to get package managers to use debtags. There is a very interesting discussion going on about creating tags for use by the security team: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=436161 There is also some work on 3rd party tag sources: Myriam Ruiz, for example, is providing tags for parental rating of games: http://www.miriamruiz.es/tags/ And more can follow their example. How many people are working on or around Debtags now? ----------------------------------------------------- There's about 6 active people, but everyone active on something different: * Enrico Zini is working at the Debtags libraries and tools * Erich Schubert is working at the `packagebrowser and central tag repository`__ * Benjamin Mesing is experimenting with `automated bayesian tagging`__, and also working at `packagesearch`_, which uses debtags, among other data, to search for packages * Thaddeus H. Black is working at debram_, with the intention of converging to debtags * Justin B. Rye is active on the vocabulary. * Emanuele Rocca maintains the bash completion scripts for debtags Plus, there are various occasional contributors adding tags, either with Erich's packagebrowser_ or with `debtags-edit`_. __ http://debian.vitavonni.de/packagebrowser/ __ http://svn.debian.org/wsvn/debtags/autodebtag/trunk Are there projects out there using the tags? -------------------------------------------- Benjamin Mesing's `packagesearch`_ is probably the most mature package search application using Debtags at the moment. Enrico Zini's `debtags-edit`_ is another package search program, which also allows to enter and submit new tags. Then there is `libept`_, which allows allow to access tags together with all other sorts of information about packages. It has a command line interface called ``ept-cache``. Peter Rockai's `adept`_ is a recently developed KDE package manager which has been built with debtags support right from the start. `apt-xapian-index`_ is an attempt to create a new system wide index for package information that also integrates debtags. What is the status of the central tag repository? ------------------------------------------------- Erich Schubert is doing a good job on maintaining the central tag repository, although he's very busy and there is always something more to do. Tags are updated continuously, both with contributions from the packagebrowser_ and with contributions from `debtags-edit`_. Every night, the central tag database is exported and made available to ``debtags update``: the ``tags http://people.debian.org/~enrico/tags/`` tag source is thus the most up-to-date tag source (and to our knowledge, also the only one) that is available for the main tag collection. Is there a debtags mailinglist? ------------------------------- Sure: there is an `Alioth project`_ which also includes the `debtags-devel mailing list`_. You're more than welcome to subscribe to it! -------------- Using the data -------------- What is a facet? ---------------- A facet is a group of tags which describe the same quality of a package. For more informations, see the notes on the `theorical foundation`_ of debtags. What does a notation such as "works-with::image:raster" mean? ------------------------------------------------------------- It means that the facet (the point of view from which we look at the packages) is "works-with", and that the tag (what kind of data this package can handle) tag: "image:raster". In other words, "works-with::image:raster" should be read as "Looking at what kind of data a package can handle, this package handles raster images". .. TODO: Is this just a list of several attributes or does it include a further hierarchy? There seems to be a long and a short version of the tags e.g. mail::smtp vs. Electronic Mail::SMTP Protocol. Where can we find a mapping of those? --------------------------------------------------------------------------------------------------------------------------------------------------- You can find it on the web at http://debtags.alioth.debian.org/tags/vocabulary.gz If you have debtags installed in your system, you can also access the tag vocabulary locally at /var/lib/debtags/vocabulary It seems you renamed/removed some tags. When you do that, do you also apply these changes to already tagged packages? --------------------------------------------------------------------------------------------------------------------- Yes we do. It may happen, however, that if you look at the Packages file there are still the old tags: that is because the ftp masters may take time before installing the updated tag database in the archive. ------------------ Providing new data ------------------ Where can I add tags in my packages? ------------------------------------ Everyone can add tags in every package, using the interface at http://debtags.alioth.debian.org/todo.html and http://debtags.alioth.debian.org/edit.html What if I feel like I need a new tag? ------------------------------------- You post to debtags-devel@lists.alioth.debian.org asking for it to be added. Before doing that, however, read `What makes a tag good for being added to the vocabulary?`_. Is there a debtags-policy? -------------------------- No, there hasn't been a need for it yet. Can I create my own set of tags and add them to all the packages I want? ------------------------------------------------------------------------ Definitely yes! You can add any tags sources to ``/etc/debtags/sources.list``. Try it yourself: 1. create a directory ``/etc/debtags/personaltags`` 2. create the file ``/etc/debtags/personaltags/vocabulary`` adding some facets and tags. For example, you could use this:: Facet: personal Description: Personal preference Tag: personal::essential Description: I cannot live without it Tag: personal::useful Description: Tried it and found it useful Tag: personal::bad Description: Tried it and did not like it Tag: personal::interesting Description: It looks interesting, but I have not tried it yet 3. create the file ``/etc/debtags/personaltags/tags-current`` adding some tag data. For example, you could use this:: mmv: personal::essential mc: personal::essential xdiskusage: personal::essential buffy: personal::useful debtags: personal::interesting 4. gzip both files. You should then have ``/etc/debtags/personaltags/vocabulary.gz`` and ``/etc/debtags/personaltags/tags-current.gz`` 5. add the new tag source to ``/etc/debtags/sources.list``:: tags file:/etc/debtags/personaltags/ 6. run ``debtags update`` This is it. You should now be able to run packagesearch_ or `debtags-edit`_ and find your own facets and tags. `debtags-edit`_ will also allow you to tag packages using your personal tags, and will save them in the local tag patch (in ``~/.debtags/patch``). What makes a tag good for being added to the vocabulary? -------------------------------------------------------- This is a list of rule-of-thumb criteria: * It should represent a clear, atomic concept * It should have a facet to fit in * There should be more than 6 or 7 packages in Debian that can make use of it Remember that categorisation in Debtags happens with a combination of tags; this means that instead of having a "dvdplayer" tag, we have the combination "use::playing, works-with::video, hardware::storage:dvd". These combinations also allow to create reasonable approximations of tags that should not be added because they are not yet used by many packages. For example, the tag "devel::lang:brainfuck" should not yet be added because the corresponding packages in Debian are too few, but it can be reasonably approximated using combinations of devel::interpreter, devel::compiler and use::entertaining. Do you have tips for tagging? ----------------------------- Justin says: The following tools have been particularly useful for working out what unfamiliar packages are all about. * apt-cache (obviously; but nb "apt-cache rdepends") * apt-file ("does it put anything in /usr/bin? In init.d/?") * debman, in debian-goodies ("what does its man page say?") * surfraw (instant lookups of packages.debian.org/foo) Any reason why there are no ``license::`` tags in debtags? ---------------------------------------------------------- It has been `tried`__, but we had `discouraging`__ `replies`__. The main problem is that licensing information for a package are too complex to be represented in a single tag. Please also read `this thread in debian-devel`__ for a discussion of other ways to implement this. __ http://lists.alioth.debian.org/pipermail/debtags-devel/2005-June/000406.html __ http://lists.debian.org/debian-legal/2005/06/msg00016.html __ http://lists.debian.org/debian-legal/2005/11/msg00257.html __ http://lists.debian.org/debian-devel/2007/12/msg00664.html --------------------- Integration in Debian --------------------- How can maintainers interact with debtags? ------------------------------------------ They can go in their DDPO page (http://qa.debian.org/developer.php) and click on the "Reports: debtags" link to view the Debtags situation of their packages and edit the categories. When is Debtags going to be integrated into apt or aptitude or ...? ------------------------------------------------------------------- That is still a bit out of reach at the moment. There are proof-of-concept implementations inside the ``debtags`` tool: you can do ``debtags search``, which is like ``apt-cache search`` but also shows tags. or ``debtags grep`` which shows packages matching a certain tag expression (try ``debtags grep 'use::editing && media::rasterimage'`` and even ``debtags install`` that does the same as ``debtags grep`` but also invokes ``apt-get`` to install the resulting packages. The hope lays in `libept`_, which is still in the making but will provide a unique interface to all kinds of package metadata. It will hopefully be a solid and complete foundation to be used by package managers, and will also make Debtags information available to them. In the meantime, if you want a graphical interface to look for packages you can use packagebrowser_ or `debtags-edit`_. When does a new package get tagged? ------------------------------------ Everyone can tag new packages using the packagebrowser_ or `debtags-edit`_, but you can see the new data in apt-cache only after Enrico manually reviews them. When are the tags going to move in the control file? ---------------------------------------------------- Good tags are copied in the Packages file by means of an "override" file, which is a file that adds or overrides a field from the control file written by the package maintainers. Tags are added to the override file after manual review. Think of the tags in the override file as the "stable" tags and the ones in the debtags database as the "unstable" tags. Allowing the maintainers to specify tags in the control file could be difficult for many reasons: * Some tags are more easily added by people who are not the DD. The maintainer can add ``made-of::*`` and ``interface::*``, but some other person could add ``works-with::*`` and ``accessibility::*``. * Sometimes we do a reorganization (for example, moving ``protocol::icq`` to ``protocol::im:icq``) and we can't ask all maintainers to handle those changes, and these reorganisations tend to happen quite often. What should I do if I'm [also] packaging for derivative distributions? ---------------------------------------------------------------------- You can provide tag information specific to your target group of users. See `Can I create my own set of tags and add them to all the packages I want?`_. Since new versions of debtags (>= 1.7.3), you can create a package that installs the tag data somewhere (say, in /usr/share/mydistro/tags) and installs a file under /etc/debtags/sources.list.d/ to automatically get debtags to use them. Is there any plan to drop "Section:" ? ------------------------------------------- I don't think they'll be dropped, as they're serving a different purpose at the moment (that is, splitting the archive somehow). In my view, they should be ignored by package managers, using debtags instead. How come there are different sets of tags in the Packages file and in ``/var/lib/debtags``? ------------------------------------------------------------------------------------------- There are a few reasons: * Debtags supports merging different tag sources: for example, iterating.org provides a tag source with package rankings and debtags is able to download it and merge it to the other tags. Tag sources are listed in ``/etc/debtags/sources.list``. This also allows some of us to use the unreviewed tags on Alioth instead of the ones in the Package database. * For many applications the tags are easier to access when aggregated on a small file rather than by parsing the very large package database * Finally, the debtags database in ``/var/lib/debtags`` is also indexed for fast access. Have the Packages file as the primary tag storage has never been the main idea, although it's turned out to be useful to allow tags to be useable in software such as apt-cache, aptitude and grep-dctrl without them having to be modified to access an extra database. The Packages file has tags like ``network::{client,server,service}`` and this breaks ``grep-dctrl`` --------------------------------------------------------------------------------------------------- Those compressed tags are there because APT does not like long lines. You can use ``debtags dumpavail`` or ``ept-cache dumpavail`` to feed data to grep-dctrl without the compressed tags. ``debtags dumpavail`` also supports tag expressions, so you can even run commands like:: debtags dumpavail 'role::program && game::*' | grep-dctrl ``ept-cache dumpavail`` instead supports all ``ept-cache`` search and sort options, so you can do something like:: ept-cache dumpavail -t gui image editor -s p | grep-dctrl ------------- Web interface ------------- How does the web interface work? -------------------------------- It is explained in the web interface itself: go to http://debtags.alioth.debian.org/todo.html or http://debtags.alioth.debian.org/edit.html, choose a package, then click on the `[help]`__ link on top of the page. __ http://debtags.alioth.debian.org/edit-help.html Where do the tags added through the web interface get stored? ------------------------------------------------------------- They are stored in a file on Alioth, which you can download at http://debtags.alioth.debian.org/tags/tags-current.gz Enrico regularly fetches the updates to that file, does a manual review, then commits the reviewed updates to ``svn://svn.debian.org/debtags/tagdb/tags``, which also gets uploaded to Debian. ----------- Development ----------- How can I experiment writing applications using debtags? -------------------------------------------------------- One way to start is reading the `apt-xapian-index`_ introduction and follow to the next posts that show how to use the index. For C++, have a look at `libept-dev`_, which allows access to both debtags and apt package data. For Python, the `python-debian`_ package has a good ``debtags`` module and various interesting code examples. Otherwise, you just access the data files directly: when the ``debtags`` package is installed, you can find them in ``/var/lib/debtags``. And of course don't forget to subscribe to the `debtags-devel mailing list`_, where you can ask for help. How can I help? --------------- There are three main things needing help: 1. You can take care of the website__, and keep it updated with the news that happen in the list. 2. You can try to use debtags functions (you can now do it from C++, Python and Perl!), and ask questions that could then be turned into Doxygen comments, HOWTOs, tutorials, FAQs, example code and other forms of documentation. 3. If you have knowledge of some specific field and a twist on categorization, you can help `improving the vocabulary`__ __ http://debtags.alioth.debian.org __ http://debtags.alioth.debian.org/vocabulary.html Here are other things that would be needed, but might be a bit more difficult: * Help maintain library bindings to languages different than C++ * Help improve the GUI tools * Help packaging all the various Debian packages related to Debtags * Help writing more C++ test cases for the libraries * Help with i18n/l10n issues, to take Debtags on a trip outside of the C locale * Use libtagcoll1 to bring the Debtags faceted classification approach to domains different than Debian packages: think browser bookmarks, multimedia repositories, mp3 archives, documentation, launcher menus... the approach has big potential in so many fields! --------------- Older questions --------------- Aren't debram and debtags duplicating the same effort? ------------------------------------------------------ Yes, but only up to some point: they started as two parallel projects that didn't know about each others. Debtags has a more solid `theorical foundation`_, while debram_ has data for the entire set of packages in Sarge. Thaddeus H. Black, the author of debram_, intends to converge to debtags and is an active poster in the `debtags-devel mailing list`_. For this reason the debram_ package suggests debtags: like saying "yes, I'm ok, but you might want to look at debtags as well". .. _adept: http://web.ekhis.org/adept.html .. _debram: http://packages.debian.org/unstable/admin/debram .. _debtags-devel mailing list: http://lists.alioth.debian.org/mailman/listinfo/debtags-devel .. _debtags-edit: http://packages.debian.org/unstable/misc/debtags-edit .. _libept: http://packages.qa.debian.org/libe/libept.html .. _libdebtags1-dev: http://packages.debian.org/libdebtags1-dev .. _libapt-front-dev: http://packages.debian.org/libapt-front-dev .. _libept-dev: http://packages.debian.org/libept-dev .. _packagebrowser: http://debian.vitavonni.de/packagebrowser/ .. _packagesearch: http://packagesearch.sourceforge.net/ .. _theorical foundation: http://debtags.alioth.debian.org/faceted.html .. _Alioth project: http://debtags.alioth.debian.org/ .. _python-debian: http://packages.debian.org/python-debian .. _apt-xapian-index: http://www.enricozini.org/2007/debtags/apt-xapian-index.html debtags-1.12ubuntu1/doc/packagesearch.png0000644000000000000000000012627711465320073015334 0ustar ‰PNG  IHDR ©ÇÛÕbKGDÿÿÿ ½§“ pHYsˆˆÄ×@ tIMEÕ C7ÐY IDATxÚìÝy¼$U}ÿÿwU/w¿³/̰ ;(‹¸*(.q— (&¿qÁ%&_¢£‰•ÜQÜ&šDÜÈ(DÙA`€fßîÌܹKoUõû£o÷tWWu-]}o÷½¯çcæÑ÷VŸª:uNÝîϧêT•1|̳M)ä‹*–,-NI’ƬŒš;˜Óòù)è,;ö[êmZf0U”$íµ”I§”í9ÿ§IG~”$É0Œº‡ò¹¦ ^°föíÚF/æÈãVhßȾ¦ez{ʉĒåß§|aã–MJ¦Šš?4OÛwmW__¿Î[zå§?í$Ýõ[ƒ^:ÌÙgŸ¡{ÿPèò#öirrB‡-=Lƒ©¢Ò’T,åHêëíÑï¼GÃYGétFétvêµöçC¯çœõ4ýäßþ^:Ì9g]©{÷J¥‚J¥¢Ç롟G †N\}¼&&'T,•‡#¥Ç´P=Ù ô¨¯¯|êáˆÃ×Àà€úû500Pýß?8¨þ©ß$G:x`½tGzÃå¯ÐøØ¸ÆÇÇ5>1®‰±±òÏSÿ'&Æ4>6®ŸØª¾¾^ äÔ“íј*=¨IÇJ’z{ˉ /:_¹¢žÜºG%IÆs:0ž“vímXÿ³.¼¸aÚÉÇV˜íZÛ1ÿôã&s¤Ô30¬ža-X"=øÄÖ©\`T’4¨‘òУŠÊ…}£“úì¿#SN}Râ8J§Ór§úß¶m©ÔÔûÒ{ÞñfíÔW¿óÃÐ6qp’½ ˆÂ48Ž$C†cÓ>´Qmü+Iï~û›cÇÏ2m.P‘^²R’dYVÛ×üù•Úµo\“çŠÏ41Y~Ÿ,44Ú#÷ýŸrù¼²51Ìÿâ*íÞ½OûöjtlLÔèè˜øÃªeŽ=vU[;ó[7½_’ô†w^ÇžMûtmÛ’Œ©Á0 ™¦!C† ÓaH†Êï Ò°´ÑS›ŸÒð¼!ÍAmx螺ø÷Ôs.”äLý«}uÊ!|íkn·þÆDç·öo¨Öóô‹¯l˜ÿþÿþš$éä義nþJ¢`Y–$ixÉJ¥-Û®f•¡Gµ>ÿ©6Ö‰¼^¶UR:ÓøÜ…B¡¨/Üòͦóg2å·ÜðuÙÏÄd^;vïÓÝ<®ÿ¹ãOäZêÔÊzš©ÔáŠ÷þýŒí|µíP,–ôÔ¶Ýú÷ÿ¾Sÿwßcm]o˜öéDG¬X¢—<ÿ­Y}„æ õ«X²´gdToܦ»î}T÷=üdÇoC˜¶Ï¤³Êf³êíéQOOVƒÊô¤Õ“íQOoúz²ÊfRÊödù ±Ú­548¨=cå :—Ë+Û_þþ-ó*ßaÔ©yuªñ­ªÁ¾#¯oÿVç—¤\ÿ ê/Þq¥Nºà«ó=üËoég¿½_{ªŠÅ|Ãü½½½Õ²–m+]É9êëëñ\ÙÏ~{ŸÇF””Ïç•ÏçtÍßý£ìRI©t¦®¡$ißþÑÀÆ.ä‹u¿¿þí×Ê4 õë´“Vé²—¯‹Ï?S×ßt›žØ´=v§º×“TÙvyýÛ¯Õ`¯ÞvÅKõ®+_®OáŸuçÝ´m}°ÍQyÊj½oí«´uÇÝø¥èñÛÕ›Íèä5GëU/~–ÎÆ©zýÛ¯íøíÓöŽ-9Ž-˶eÛ–Sê)fUÌ”dY–ËV!›’ÆsíãX–úµkÿ~IÒädNÃSño±PÐ{Ö^¦T*¥TÊœz­ÿÿþÜ Ç‘ÎlH4Š…BÝ™„ýÎç$ItÙ;j’ÇwþžõZ}äêwëÓ7ߢ/~óúÓ?~¥VŸ÷mXÿ=ýì·÷W·¡X(ÔÍ/I}}=š:_!˲”¶-»š™¸Ï(ì;0®g½æ½ºæÚ/Ȳ,ÙViêÕ’Uý¹üjY%¥3iårùjCIÒÑñÀÆÎOîpÿ>™Ëé¿~1¢ßß÷¨þþÃkuõ;.Õ{®¹I£c±:Õ½/¯ºò#³–±¼¾¾î?õôÓŽÓ+.y¦~õ›ûÚº¾nsùkž§t:¥OÞ´NÛv–/¶—~¹þ^ÝñÛûµöM/íŠí SÇb± t*­T:§|.£l.¯´™R6›V:“V:Q6“ÖÄ$×üÐN†ah` O–½w*f=ô=þ±kÞ¡«ÿúÓª=P?lÈÑw¿öi]vÅ{5<4¿¨Wš3 ÿþý/èE¯úSÉqô?ø’.yÅ[ë’¿ù9ûú³µWè+ßýW­û·ÛuÙKž[M.:÷TyæKT,æëæ—¦nl4UgÛ²•¶l«Rÿ†köŽëŽïÝàÙ@kžóÚ†D!•ÉLqª–ŸZöÜøû­ÿüŸzç›_©<ïiúâ7TÎzz{ô†W^¤ žq†–/]¨b±¤‡7<¥¯ßöÝ÷ðã ëY´¨_oxåÅzú©Ç«··GO>µM_üæô»û­–¹ý¶%IϽô=‡:üê?Ѫ#Whñ¢y2 C»÷ì×/~s¾¶î?”/æ}Ëû®Õ›^s‰Î9cLÓÔo~ÿ>õ…ïjlõ•š³ SgÒårõ9ç Z~óûõÎ7¿RÏ:ë}ñ›?Òà@Ÿ>óÑ÷hÙâú»ÏÞª»îyX‡-[¬½÷ }ê#Wé}ù\C ù¶7¾\·þóêºÏݪåKéÃï{³>qÍÛõ®knÐÃmò]÷à@¿>ý¥Ût§'«×½üùzÃ+.ÒüáA}â¿ÕPþmo|¹¾ô­ëºÏݪ7¾æ…ºüU/P.Ÿ×õÿøíx;cº|Uz©TŠT§á¡}ö£ïÑÒE ôé/­Ó¯~{ŸLÓÔ™§¬Öeô¼&Á÷|]ÍÛµbÙb}ô†[tûÿÞzƒ}úìGߣ%‹æë7}K¿ùýƒêííÑY§ W¼ðÙ®vÞ‡n=ºI§Ÿt¬þ|íëôõÛ~¢[vÊÞú1üú¢öùŸ¯}¾þ½ŸêÚÏÞ*˶#·}Ø}æÀD9i\0¼@…B¾|…sNÚ7¶¿î(ÇPÿŸâ´I&Ö@Ÿ,Ë’aÔ xÍ_¥Ûò-]øÂ×Ëë:ƒ_þ×:=ç¢K%ÇÑÐPeèÏ¡ø¹XÈûÎþÅ—…š_r´ã¡ÿÑ­?ø©R©”Òé”.:÷ÔrvõŸèÂóÎÐ…ç¡É\^7ïГ›·ëþ?<¡_¬¿§z:0Êú¢öù5×IÅšD.jÛGÝgöîómÇqäL)ÉK§z5ox@ŽmËÑ¡#ò†Qúóìç½Z¿þŸïëYÏ}UõL‚$ýïϨó.xyõ:ƒá©;ækæÿÞ7?§g?ïÕ g"*ßñç]ðr­ÿÅ¿èçÿ‘çüÅb^{ûµ¾ô­(•Në=S?ûíý51|×_{1³mY‡îzTÉ"ꃑq=tG}P´ú¼WÕ' ¥CÃzzúª U16žÌÛ®4Pù÷óÏ=]’ô‹õ÷Ô•{hêÌÀIÇå@Õ•}t£$éäŽiºîS×¬Ò .8[Çs¸-˜§á¡Iåa=Þu=Ô¦ûŒI’æMÍÕ‚yCzëë_"Û¶õ­þ,Rž}v9süåoî µ®ãŽ9\ŸøàÛT,YzׇnÐÆÍ;"·C¥_~}WðµqúÐmëŽÝzë_\§3O>N§´Z«Ž\¡#W.Õ%ž£?ïzÛ_®¿þä—ußÃGZ_Ô>¯Mâ´}’ûLù“ÂäS€61R¦Ì–]¾ÓˆòùòùeKkµ6ŒêöÛnTɲôÔÖúð?|E÷<¸!R*m´t,Ôúnø›w©¿¯W·ÿïÝzjë®Xí°hἩ`÷`àú’èÃJù»û­»Ödþð Þuå«õ¼g=Mö§—é-ï»6ôúZíó8mŸÔ>S18À³hÇq´hÑ‚êü|¡œ(,_¶Dذi*¤vtæ9éî;ËzÏ8ûùuw,’ Õßuhù²%zÓ[ß­¸î¯›Þ5éüç¿ÂwþíH©TJo¹ìÔ»¼|¡gÙ) ÉBfɉ ó÷õõèýW¿K¿¾ã·ºï÷)=8ЯÇ}JÞÿ¨öîohˆ5ç¿Vwã×%%ï;Ù–U¾F!ßž;®œ{ÆI’¤_MݪõÀè¸-Ö‹ßxuÝ•æQÌ›jœ‘}þ·p}Ã+/–$}è“_Öæm»¦u'¬½è7NŒŽkáü!ÍÔÈþàÀýW¿½OÏ>çT=÷™gj|bRŸúºêY˜°ëœœÌkh°_½==š˜l~›Î$úÐÏþÑ1}ú‹ëô¼g=­:\-ìú’èó¨mŸ´‰ñq>Åh³|AreÄKm þÀCÕ]¸|ÊÏ9tFÀue5PÏ×Ïÿî÷}Ðûk!æ—¤w¼ùµJ/:AÅb¡:¿¹à¸êu RùQµóÏÔ-_ýžrùœöîWɲø”§?üò»’¤£Ïzi]RP—(”ÊÓR™Œrãû›.ï”5k4<<¨¡¡! jtì`ÝEº’ôü ê/zèÓ•—=_Ç'µ{^Ï¿àÙÚ´u-Ö;Þ|™î ù@-÷rO?ñhIÒ¦­{Þ«ü¾`^ù¢Ð“O“DŸGmû¤öÐ~¯ø£È4MØþ€”^\M–-[Ò×63T¹ëP‚óó“T¾Ù­òžßün‰Âg\R^Y©äJ% Õ3 ™´ÆŽ ?Ðd(Ò5W]*Iúï_üZ¦ijÞЀž~Ú zÝKŸ¯|¾ \{³6lÜ*Iú¿ßß­þæÝºøÙ§iãæ§tû¿Ÿ:Š;¬3NY­—½àÙz×57Ô-×*Œé®{Q±XÔÓO;AœóbíØ5¢ßøU88ÞPIºàìôœsOÓ‚¡´þù?ÖkÅÒEzÛ_^­s¥œ×¼AÓôƒ—°uºïþtÓµ¦ Ÿq²~wïºãÿî×Ð@ù±œs²>òÉ/x®ï¾Òuõ6uêj=þäSú§oüKèuîØ±U7þí»uîéÇê¿~~‡¶íØ£ÕǬÔå¯zACÙ(}ج­–-¾Hë~t»~}ç}Ú¾s¯úúztÆÉ«õÒç>_Ç&ô·ŸúŠ6lÜz}Iôyܶ»Ï¸Üô;>Åh“Ÿýü—š/Héò¨…Ú#ú=ïYêëëU_o¯úúz¦^{Õ;õÚ×ÛS}¿¢öŒDóg2érùÞõö–—Ñ3õÚÛ›zí©›?™(X…I9Ž´cóF¦¡L6«t&[~Íf•éͪ/;Xþ¹æ=Ã4•ËçeZ~tûm7ʶmMæòÚ²}·~ü³õúáOUwOùÇõ¶üƒ^ý¢óuñsÎÒ[_÷õd³Ÿ˜Ô¦­;uσÕ-3_(êô“ÓÛ¯x¥/˜§Çô‹ßÜ«¯|çߪI‚—OþÓ·eÙ¶®¸ôEzÓ«/ѽoЗ¾ócsæ‰3¶s†­Óî‘ýZ{õßëM¯y¡Þúº—è/ßù‹%=øÈ“ºæú/ù.ÿîÓ‡>ù%}ìê?Ñk_ö<K¥Ðë|ð‘'uõG?¯·¾þ%úÂõÿO–eé¡G7êßÿ©žyÖ)-õ¡—·àSºà§ëüsO×^q‘úûT,•´}×^ý|ýݺíÇ·W‡þ„]_}·ícø Mz{ûˉBM m&õ£ÿ?mÙ¶µ¡üää¤z{{Õß߯ññq9ŽS?>ÙùÝC”r¹Iõôôª¿¿Oãã’ãhb¢~þÁt㵡Ƨ¿ÐYuÄêêx¤í»vèô3ÎÕ¾½{´eëÆ†R©TùTËÊf³êëëÓÈÞCÃzz²zúÙçéÞ{~Ë^„ªåKéÛ7ýµîºça]ýñ¢AÀ¬’Dü<“ó/^4,wNàyFá׿)æz{ \rÁ©ºä‚›h€±}÷>½öí×5L÷¼ÙºQsá&€¹'M¢ r¢Ð Iƒû‰Ês=™™ëíÑÍÛïUw€.JLÉ(4†: 3<CÍá³s½=ºyû Ð͉‚iŠg:àH­gl5‡Ï(Ìõöèæí'OÝ(Ô]€qíÁöLo¢`†œ©¡^ñ×aG¬ñ]àöͨ+Wù½öç¨a%ÍâB¯úÅ]w' Û~ýän‹Vú¦Y´«Í£l³:Ä©c«Û刄tq¢`†*ñŒ_X³cË#¡VÈ…ÑF¨I’¤å‡ŸàY7¿é­hÇ2“n°mÑŽ‹Ûvq„íªCœ:¶´]ä  »SRó‹™ËešÛ¹õ±Èóx wñ겕Ç5¬³¶.ÍÞ ›3Ðmá/æõªŸW[$½I·s’ÛßjÿµÖV\¤º:Q¨ »ü°àC£KW¬Ö®m|çYºbuõçÚrA`„©!Ž »ëåWßÚú¹ëXyoÙÊã|ßóÛ®Êz¼Ê…i“¤ÚÃëlOضñªkm¯Ÿ›µgP{·sðÚÖfup·UØýØ¿–Ý’(˜†ä4{d˜áBžÚrµ?/Y~¬vïxÜ÷÷:N¸±&»w<Þt9µÓýê_™îµœÚi~ë »]KW¬n(箣ï¶8áÇÞxm§×rýúɯŒ×v6[Ž{{ÝËÓ–Im³÷Ãô_³íjºûÕ k…šküTC·=;Ÿh\–ëçÅËV5”Û³ó ÏéÍ‚@¿õ/^¶Ê³.ÍÖåµn¯£Íîiµ¿GÙ.¯ºyMó<"¡=¼ú)h=~GáÃôŸßrüú"h½íØþVû¯Ùv5Ý#Ö 3…{w=j~`P0ÚŠJÝ-=¦i}›ý•À±v¾8ˈR.t £-âöSRe”ÓÞInÿ¢¥ÇÄê¿éÚ:.Q0C\¬i†¼ ³¶\íϵA|œå†±o÷¦êÏ –U÷û¾Ý›ªÓÜïÕλ`ÉQ ËjVß°Ûåµa§EÑj?%U&¨|ØöNzûãô_Ôv˜5‰B˜£¡a˜ú}Ý¿ç©Ä7fþâ#}—»ÏSžïWêä·=•òóéYo÷|a·kºÎ(´ÚOI• {ä=¨½“Þþ8ýÇ0·…Jœã´'õšÞ¢#t`ïf…x,8f½ÜïWR÷tw]ìݬy‹Žªv»ZJlNI¶w»÷‡0ý×R¢@þº:Q0Cáµr×£Ñ}[4¼àpîÛR}Ïý{`tåQ/¯å6[~³ò~ÛèžVû{”í ³lÿv×­öSí6„é¿fË s'¥™Øþ8ýW;ϼEGDØÉ@·' †дz¤úàþ­š¿²î÷$‚+÷rÃ,ßk[¼–ã^Fm™Ê{a·«µ¡GáÛ#j?ùm÷Ðü•ýç.åÈ{˜önÇö»ßÓñ÷cÐõ‰‚Y3ò¨1°;°=ÔÂkËyÍv9Þ#MŒPëmfpÞaMˆYNœí ;ßr¶Gœ~jµ~•§õ}Øõ¶sûÃÖ«Ù{†a†®7i˜‰‚!#à…édD“}Ùݺµ³=Â^®ñÑ3Öža¶`xy¤eúmOÒû×8€®NLèF4F‡f ­Ô«oh™$iòàÎî쵄Û#ÓU‡¾¡eÓמ!¶ºêbFüÉ@7' FM¢Ð©q+rc»º»×f¸orc»Ô;¸tæÚ´ƒöMƒDÌ©DÁ4dL¦v: ®1úöºä¡Ù2Ìp¢àضÛVÿÐRÝûÀC ¯•÷½þW /kxo`øóÕ÷Çö¯•cÛÛ¿¶fžÏ7]&€L‚ŽäQ¨œ˜ç{£#Z7}täO›.ÀôŠuB”à}xáJíß³9ôü$ÀÌó>£àز&ÁüÔû^ÿ½Ì_|„lÇÖÈî·xÎ?ñ—›.Àôjû…Š…KŽÒžOjÏÎ+êæ_¼ì–êÏî÷ÌòD¡œ£]Û¯þ¾ô°oTÞµý$ @‡hz×#?aîzägéaÇʱíº$açÖ?ni™’5-g¶o~¤éüœIæH¢°uÓÃZyÔ‰’¤ÃŽ8A[7=ìzÿµ$ À\J6?ù`àYƒ#޹­¦ü¥ôÐAàÚ¦Çï¯ûùPbp²ïCÔš-³ Àôó<£à<»À‰ùlƒÚù6nxeËË0‰B&“i:SÐûµ¶nzH+:I’tôêÓµuÓC´:Ð͉Âîí´úèÃ^[%ÉÐQ‰B6Ñ•ìÛ½‰–º>QÈrÔ Qp' ŸQ0+…Œ àu…Cöï¨J®Ys=L#“&@¢€D‰$ H( QЩÒqfZ¸pEô‘‘m¹•ºvjý€NùŒ‚W’Ðl:€Yž(Ô&##ÛªÿI€Ù%ÖÐ#÷0ž‘‘m¡Ï4x  ÊT;|Èk(Q˜uD)Ìu±.f^¸p…gÐí¼½÷´(C™¦c€ˆgÜgÜC‘¼‚p¯é ®ð<+&€÷+W™^™ÖÊ:…ˆÜymàvX‘_ð%I𛦠€„¯À»ÙQü08ºtq¢à7œ¨ÙÅÌA‰C³áCfFì‹™›ýî÷^åú„¤Øv‰}1sP°ß¬lœk¢Ö‡k€ø"ŸQˆr±p˜i­Þ™(ìz„—È×Z-%yˆºî‚DgÒH( Q@¢€D‰$ HttØ‚k×^Ek]îæ›?—l¢°nÝ÷iU ËíÛ·=ÙD!ìt?®Q@¢€D‰$ ¦GèÛ£.Xp­³Ìe—½Z7ßü¹†‡jÖ>Œç¡ûÔOÿë¿õÐCÐÞ‘9ŽCÃ…`†-\¨“NZ£^ü|têÉ4 €Ù™(HóhtÃ0tÎÙO×oy3A¢€ôȣꗿN¶mkrrBóe‹{`D®ÒýÒ®];•J¥tÂñÇé·~[ÿèßÐ83ì£û;}èš¿¢!B:8vPŸ¸þ$‰dDɲlõööªP(L]ÀL¢U6›•mÛÊçóêíí•eÙêëï£a:ý!Q88ª¿¼úÏõ‰ëÿDDÉ4 ™¦©b±XžàX’Á×F†aȶm‹EõôôÈ4 e2Yf†åòyú!ÇqtËW¿F²@¢ÝÂ…·Œlë˜ ]¸pEKõ©l_'m´õ "–mÛ*•J2 CŽmËH9’Œ†`Ø/¨h%ÀîþÛ°:rG¶mK’lÛV:æö²ô"ô¤ÇÑË_öRýê×wÐ$ Éá­ç³%ɘÉzΖ>03‰B©TR©dÉ4MY¥’Ò)KRÊ#è²=ƒ}¿÷ÂÚÁñ‹ÙÂòÛÍšJœjÂUN‚ë»ì°c|ßÛ¹ýɺr•ßkF˜D!Ü~ã×qÛz¦û)îúÇÑšŽ×¿üëÙyH’ ¢GF¶¨@—Êf³²,K–UxK¥’ÒYKîÛ¨–£ˆBã$;w(˜Ÿú9ZdRH¶Ü (•J²,K¶m˲,e³ÙÐG²wl{Â7`óû£äÑß°¼úbÙaÇøöQ’ë–¤å+VÅ^Wë—S>;fš\£D¢0 j‡)ù‰ðJ:Üɉ×p ¨ËJb*壮«Y›•k¥MÜõL²î^õ Ó~ºW&“‘mÛuCgÛû(¬ßôfï›éC7\µKžó4+SyÏ0{ëÞ¯§ÙòÝË6ÓýuåÜËñZFJûUþWÚ4ì¼A¶mÙPW.ì²­­¼ÊnÛ²AËW¬Ò¶-ÚºîvômäeÍŠ¡€˜‘D!è¬AÐP˜ ß£”‹³ì 3~ۗIJ“l¯z&]w†6sì bj<}%¨°,KöÔÙ7«Tò]N17*3ݯbnôPÒ;\÷»û}¯iîß‹¹ÑºåX¥RÃrýæõZívx-Ç«ŽÍc+£z6Á¶m9ŽS¾îà ™(„(wøQÇk˦G}ç9ü¨ã«?×–«·¶Œ_9·0˪”iV‡¨ïû•‰,[v"e½Þ Ú¦Úy‚Ú·òþŠÃWû¾×¬]¼ÊDÙöjâî8²IHZI¼ƒ  Ò̆ :ìq—5°o¨ÇÙ–vÕ»Õº“s/Q¨ jŽŒ7$ –¸¼J™ÞÊï«›'7¾O™ÞaåÆ÷ÕM *ã^·{ž(ëïXP7Ík9a¶³šX˜f5A¨mÓ$Ï(¸ËÕþ|ä1kôÔ“¨ k3ͽŒ(˪¨ÍêTG¯õ{­;V¢Ðâ…JÝÜï…i÷ÊñP}k–WùùèU'iãÕ½·ñ‰‡tä1kêæw—q/Çï}÷zýÊzM‹ZÇfõk)Qˆ° ¯¾ðÚ¶¨Û¥}k³¿2G¯:)VûÕîÇ QH$0÷ª5ö?×$Ù&$Â% ™jp`†J¥¢l»G…B¾¡¬×´fe*Á{³2~ËtOwÿ>QýgÜþ½Û4ÑŠHËÞ¿w[]=+¿G‘Íö¨T*6YV)ÜY‰Ç½ßsº{þÚßý~S¾Ù:j{ü©õ;-Ìú^uR][<þèý¡ÛÐOoOO¤exõ…»^I´{”ömWÿz–·¬êÍ QˆtF¹ëQ˜‹‡âÒÞ6¡}„ t§…J +i*YˆvFaá’Ã5²{K]™‘Ý[<˶zF¡².¯÷ã,»²¬JòáWo/µIBíkØáKqÊÕþ\ 8Ö÷+sü‰gÔ½÷èÃ÷èøÏh˜7ìP­(u|ôá{êÊU~OB”ad^e}ø{ü© uŠÚîqÛ7©þ ƒDaVÂ$´€Öz‚S ¢+çFI‚‚ûŠÅËŽÔžOµ”(„/¨Œ».{v>¥ÅËŽŒ4ô¨ÒVî!–2ˆQ®öç‡ü]¤ò^eN<ùé Ë©¼çž×kYAÓÂÔ±¶\%¨ö›/R¢`[‰”õ«k˜vo¥}“è_ HË7Äm6Æï.ìðc«Ë÷[N”3 µ×wøµe»µË©]†×²ýÞ³=nµ·F­Z™LFvÈ#´qÊÕþ|ßÝëëÃûî^ß°L¿uT¦»—Q™vÚ™çé”ÓÎÑ}w¯oº¬ iAuô[¿ÀQî(Ëð+[©_m;Di÷°í[[Îkšßz¼Êœvæy‰´HsX&“© +úýÂÆ•G§­O=+¹‰“dÕ¾f3…Yýw¯\Îkž{kX'ä:ÜÓk—QYNeZкÃNó«£ßúéŸå‚ú¢ÕvÓ¾ ˜Öl{ÜeÂî[‰ I¢®.3›ï£Þ,yˆ«Òvµí–Éd¦mø‚û‰ V¢©û½òÀµn·õ©Ç´òÈ㦵#u£™LZ¦i²suú!Z[9SæƒDÓˆ1þ:UOOLÓ, 5Ož Á‚ßuIW©Tª.iÈd22 ¶:#ø¥"µ•E{‘(à•(TÎ$8ŽÃ‘؉‚û®GÙlVí×è‡mE’@¢ÇÚµWÑ‚Ð%>ó™›ÔÓþƒ¾¾ÞêŽ,˪'Q§··¯ú…ÊÙ…¾¾>‚.‚ßnl,Ú‹D!žuë¾O+@رcG¤òÙl¶üE‘NϪaGÓö›N˶m¥Óå‹ÂS©TùŒmH¢ÐeÜgA¢˜ãúûúdY–2™tõ™•'#˜mÛJ¥RÕDÁ0 õôd•2S4N ¢´•)Ë0d¤RzæyçÒ $ €¹n``@¥RI™L¦î k ebbB===êéé‘ã”­ÞÞ^Ú¯CЂũ³cޤãWKƒ(æºÁÁAY–­LFuÉÂÙ·oD©TJCCƒšœœT©TÒ@¿Ž?ñ g†}õ–oÑ1z:gºÝe—½Z7ßü9@|§œ~¶öíÛNC$‘teËϤ˜·pm  kpë $ H( Q@¢€DÐá.\Ñðß«Ì\k“¹¸LW›ÌÅöH]ŽŒlkøO ‡¹žð7ÀœO¼,Ì=~û€îÆ“™Ó–\—µejß÷JLÂNózßo=~uZß0‰UÜu-+ÌöÄ©k³iîŸk_Ýý%ÁhuYI´KØ>ªsRýµ À´ò Xý‚—0ÁgÐïI&,qÖ›Ô|­®#‰zµ«mƒ’™¨õheYI´Kœ}Ò/¸O¢¿§»/†Z à 3 säØ]¦öȘáLa¦fë S×0õ ªS+ëˆS8ýšD[GÝæ¤–•D»$Ù¶Iõ7@¢èªd¡6a˜®kÜÃ;¦k}Q¨Át;·¥•á*ÓÝÖÓi&‡ñÄmO†a:1ôHÂ7@neí ^½‚±¨G£Û½Ž°ër‘Ó7ÝxzíÒλ7ÅiÓ$ú Q´= ºëQÒAL³å&¹¾$–åu‘o»êv9Q‚ÌéjëéJ^ã¶K'íS$ ˜ = ÁÊ+àžÉz0T%Ùv™É3+ô%¦[Kg>ó™›´cÇZ昤8‡½SŒ»\œ³qîdã—x-'LÙVÖ§Ý’èãv)š®ý3jÝÛÙ¶qûèªD¡§Ç¡`Ž' ^Ó“X^»oßé·žfÁ¾Wা~Awœuµ»=Óµo$1Œ+β’h—¸û¤»ÎIõ÷Lô%HˆÄÅ-÷¶¡IÜB2̽𓜶ÞIµI’É[}e¾ rIîOI´m+m×®:Iá:ÃNèo€D„&9¢LÓ…¡Gt Æ£Óßô7º:QȤL™†y>ÛqT´lZ0íÁõý LC¢°sÇv{ü‰’2ágrrzü±GµpɲÀ¢IÞM£âžô‡ØiIœòä´)ÀLFöîÕ±VQJet×úÛËŸ}Þs%#­‘½{50<_===‘ÌÙx6{T|7o‰‰‚öíß/M =úôg¿¬tºùâ¾~Þs«ó îÛ¯åË—E6»é/q“‡NÙ¾¤Ø€9–(ŒŒJúúúôÕ¯~U’´yã#uåŽ8ú„r¢ðõ¯Uç[¼,—è†=%h“û‰š~OF ³ìvÇIÔÃo^Û_›°x=qÔ½üÊ{~˳͞l:m@¢Þ½{«? Õ%¶]’$™¦{ŽöìÝ«ã›& ÛÏ*x—aR.β[=#æ±ñí¨{P½ƒÊ‡9Û·ý¼’–$Û & ¬ûݶKÕÄÀ T9VÃ|Í‚e¯Ä (@t¬qžü˜ô²[¦I,#êÓ ÛQ‡éjSHÊÚµWÑ:Îg>s“zzœ™KÆÆÆäضŒ”w²Ð$Hrl[ccc‘÷ !7qƒï¸:5pwkPNr “¬[÷}@GÙ±cGËËh1Q—U*) ?ã8˜y›xƒïôÀ8JR5›ç¹´­3¥õ3 Ný)ÆkÊÓ*gò¹\à…¨w= »müºß‚h€îHÆ'ê…Ú$Á}1s%Y˜˜˜ÐØøÄŒÛݰì¸õð»°¸[¶¥•öï¶³C@· ó÷6]×o…YÐÍmHÆÇÇU,”í“,XÐ$T~®M ÆÆj||<ð &ìŠÂÜ!¨•/º8ËnõK/Ì¿Që‘Ä2:¡f^'ÝuŒ§Ç@‡& ““9+Ÿß¢w¿ó-úË¿x§ò¹œöîÚ¬TÊ”a˜’¤½»6ªP(è©'®Î6¨ ó¥t¿ûò/\¸"ðK"hÙ­&a¿ðânc’Ûfþ »U%Ñža¶ø|€NÆÆÆ”J•¯fžW:“Q*•V¡P$¥Ri¥Óiõöö)΄N¢~¸G½µ§{ZPžÄôV¿´’Xn”:‡µ]“hk¾øîöÀˆû BRGû›¡®} û M÷ƒ!/½ôUt2·K.¹X¯¾ô‘ç[sâ ´<Ì‘$!Î/§ãº£fOò`Hž£€DÁÃ{Þû.½öu—éî»ïÑöí;CÏwØaËÔ××KëÀ,æŒ@³‡1†™7îz£Ö…g· QˆhÁ‚ù:óÌ3´fM.ô<}}½Z°`>­sP’g Ø ƒ…žž-_¾Œ–œåø2TbÐé·4ævËP¢@³ »Û4p`ÊLš€à„H˜Æ Ûk(ÒLæ~uá,€¹ˆ¡G€i ¼½xéõ0Æé¼Ejåg¿º‰1‚í¨ïÇ} cœòqçÁ0Û0ô0£ÿ$ „N8r3‹¡G€åw€D@²@#@‡a耜Q ŸùÌMÚ±c €D0·­]{nݺïkß¾í$ –J¥Ô“Í(•JÉ4 d°G–e)_(ʲ,‰zß»×ê}ÿï víÚ­[o¹™ýhñïè¯>ðçz≱æ_µêèDêA¢0’ÃPJŽdÛ²Gé¾A•òÊårÊç&U²,YV‰†êöÄÀ²eÛ–ÌTZ¶U’™JË4 *e¦e9„Ä<ãÙçë§ÿñ/4|ù+·° ü=ñÄF}ø¯?¨T:-3Ý/»4!«T’3õ}^~5T*T*–T²,Ù¶%Ã0uß#Q@˜à±¤ÉÉñòe;êííÕ°a(Ó; þTJÙlV†aTw:t¯b±¨±±ƒ;(˲”I—Ï"äs9e2Yõô*ÉÐPHHZCÃóh4Èf2ì@"GR>ŸWi|L%ez‡d¦-ɱ䨶 ÃmÛ2 ©T,©X,ªPÈ«¿ ÁOzÌjc¨X((•Jɲ¬ò40 ŒS’™Î*35 ɱm«Ë™¦©TÊ”ãØ:°¿&'sÊd3J§RÊåsÊå œ·@ÙlFÃÏÐ2C2ù Çžaì@"G’U*ɲl‹ez­òß–‘’aªš,†!†ò¹If²74å¯x–;8:ªþ¾¾r’/È4 Ù¶SÞ¹R†ŒTFr¬Äw,„³g×N-^º¬á5V¢`J¥Ó²599©ÑÑQÙ¶­TŸLÃÐèÁƒ²dhÁ‚…ÊdøÓÐ6ž€öü9–d’ãÈ0äXc²m»<*ÄqÊï%Œha–ËMæÔÛÛ«R±¨B±¨l&­R©(Û²¦.j¶Ë;fLålŽû5úá‡òD*•R&“‘ã8*–ʧ"Sé´Š…‚Š£588D¢€¤¾Êjv¿¾à}Ý™¤ÉæÆ§ZÃþÑlé´ýÂ0úZ®SËGÞLfoy?K ªT8ÐÖáãD ³Üd.§†¡R©¤R±¨”iʶíò]p¦NW1 eì©»¹_ã&• Ó4å8ެ’¥b±¨t&£\>/§h«TâÂu$õ=æÔìõ’Ùß0ƒswÿðÛOj¯÷:©îMöwL["Û[Ègç)7¾‡DñäryÉq¦îldɲ-Ùvùî8†eÈ4MÉ5ì(•–$YÅQÏe¦2ÃÕ÷jFtÅb±|äßõ7Q(Ÿª,ÏoÛåÛ£–,Kråry™q«T$IžýâÚ§¹È¾û‡×4»4V ¶+?Ï$»4kß­'î2€ú¿#wBê}‘rïÀbíß³¹3…… Whdd[G4jm]’ªWÐr.\áû^í|í¨[¸D!§R©$Û.' iËV©TF-«$ÃÈÈñ ›Ý®}Ï&ðŒ­P(ȶ¬†×¸,«þ¶i%ËRÆvT*•”ËåÔcf¸Ã’ ¨öÕfï§{ïˆSÊhZ®”? tϼºrîåx-ÓœBN}Æxõœ}ƽíKaö£Úé•ýÊks¿ïµüÊ{fzÐw? Ú¯õ°?ówTk`xyÓòó¡ßßy‰Âtý®Õz¶s[ÇÇ'dÛ¶JÅb9a°,år9õõõW³UÛvjvÄeÝ)IÊô.¨þìàzýŒh&&&T(^ã0M£þÌ„mW‡œÙvÆÇ'”í¤Ñ‘ÔטŠÅæûªßû}ƒK49¶Û3˜«î.W ¢*ËõZŽ{˜~•3 ^ýßlŸ™Ûjhö~ØýÈï÷JýjëÙ¬|¥ÞµëðZFP¢LÃ\ú;ª‰çFw¨pÈó¬Bn|r““Ú`ÿÜIf›™JzÆÇÇå8šnTÿßœº^Á}€¹6‹õ;ú¦ ‚¦{÷«Ûà¼åÁ}=ºCŽãxöµã”÷…‹is$Å Ææ÷þؾïU¦Î[ÞPnìÀ Î[^7Ík9 ¯ëÜý#Lßí}ƒK4v`G¨} Ì2¼öGwù :xÕ#êvøý]°?c&%ž(TŽŽ»‡ä¸åfïWÞ«¼ÖÙi%¯ßo¾0eZi¿õ¹·5¨.îvö«k.——ã8S¤Sósyì¤×…­µOiö{bs˜2V*•dY¥†W·#[B-ëPbÐØç¹\žGâûo+ïך¿èð†yüæ¯>8o¹öï=ô÷±ï.Øïàý#Lß$½x-£¶LP=ÃÔ!è÷0Ë» «¿ 8hŒ~í´Jì7Æ?LT.¨~‰IÒ¼¶5n}=…|¡(NýîHÕëä¤êŽ^/\r”Fvoª½Ù½Ió®‘Ý›šáàhG|ÅbQ–e5¼Æåض,Ûòìó\ž!bHÐÔ50M¾&ï/^zTÝï{vmÒâ¥GÕÍã7eúž]›ê’ŒÊï˜YÆÔ}Þ½ú¯âó­¶L¥o[Ùâì§QöÃ0¿‡YFØõ`ýÕ}ä:Í˶é–mIÚ1̦•ezÔî½Y™0ËO²ÎaêvùµãÝ+G–Ë·Í,ÉII)׎öâ3.fNFÔ‹™/_Õ0mÏŽ'%m¶-{ê‚æÊ¯}HBÜ‹™—¶J»¶?áY6Ìg‹{zeY•äýlLs€##Ò÷‰{¿¨-ã×—Qö8ûiœý°Ùïa–aǸ±fÿß‘$Ù¶¥R±|©c—cºÊ³—¦¾ç3¥¢ ÃPj¶<™9NÐ6@Ÿn|Ñu>ŸküЙºÈÕ°,•Œòµò¨}ÑÅËWi릇]ËÍ{þŒè‰B>ŸoxÖÇùšdЮZ´/-% ·lö¾ß{µÓƒÊ,_¹Z;¶n¨Nß±uƒ–¯\Í“g˜i¾ýuŸñ*_Ûïaö eÕ3̾ô{û;ææß‘$†)˶•Ïå”N§k¾ó ìëмᢠł2éäÂûIÜׄ ´½®k›,tJR1ÝIPe\zåñÞÕÇ|Ww°C;Ù–y.ãð£Oj8åÅÅÌÉ(•ÊGÿݯQxöEM_W¦q’O¬Øï»ß[qÄ uÓ·m~DËW®Ö¶Íø–ñ[GP½ÐîÇŒÔ7•~ݶù‘º÷ýöw¹fë ³Œ z†©ƒ×r¢Ô¡Ù~Ëþ<·ÿŽRétuX‘eYÕý¡T²”J¥ê¾ÿ‡çÏW©XL´3z×£( C«·í–[­&]ß|͸tG5Cl{ji͵M>ŒÜïÕþnñ![±X’e[ ¯nG­:Õw‡}’$iÓ÷W?,ªÿkÁ<×( ñ/²t¬÷wl}\ËWë9mÅ'hÇÖÇ=ËU~¯,×o9èŒÇ«ÿ+IAØ>óÚÂìKQ–áUÏÚiAó»ËTÞº ¿¿— ¿3ÌÞ¿£U«ŽÖuŸøûXó¯Zut÷& ^ÃŽfâˆ7=«!n}ó>ãÒmÛVùÚSG{šžÜpïQ‹'7Ü££Vª'7Üãy„ƒ£ñ•ïTd5¼zõÁ1«Ïð]Γî™Jow´/q5»vnç¶æ»×ûa§Õ®7h=˜~•£œîý#n_Åٗ– ³ÏFôu„Ý—ãÔsçï¨`X—_þÇêííUO6«þ~õõö*“ÍÊHe$™SÿÝöÝouo¢dàF˜»(ù•™ Qîú¤öVCFÝíQk/’3Òo,%ã'ãËç ²m»áÕËãþ^Çÿ4Ïé•þ¬$ •~®½Š‹™‘4³æ´wÒ–,;Z»wnœöõ"¹Da¶ôûfòïh¦ÍØ5 AÏYp?#Àož… W„ ¢Ýó{•÷*3·H­­W˜ú†Jò†Qwë¬CwÃ1ä8¶6<ò{ ‹¯-ã÷3¢+ßÊ´ñµY?¬>áižýâ8v]ÿVú¼Òÿ†!I†Ñö/2÷ò.>B#{6Óö.NMËþ1×6ÌÁ¿£Ù(xø­”‹:ß“‚ʶº=Qø8uk¶ì°ëÍåó2MCéTJ¦iÊ4M9Nãýy13œº ËÃ]^I6<ò{ŸøÍ¨¾š¦9Õ÷†rÜ 3 ³mËÞ¿w«æ/ZÙ0 ÝX·sÿ˜-û9Ðé *WÈÌr…BAf*%3•R:ªK¦ž‰ƒ.äŸ$¨šš†¡t:U톡Ûti`mšìƒ@GvÄh$ ³\±X~G:æôébLöwGétZ†a¨˜ð-Ón Ÿ ö ‰¿#´ÿ‹¼|gL:­t:]÷$¿òØuU/~Å 10L9ŽÓð79¨;2M¥¦„L:-˲dY\tŽÙ¶r9âŸ/ö õ¿£@¢0Ëõ÷÷i||BÃCƒÊd2*‹²m[¶mË4ÝÂŽkf(Q0M™¦Ñð+QQíSÛ¶•J™J¥L¥Ó)ï˜ £0;lÝò”~óÛ;i4(•,ö ¿£N¸ã‰Â,wÄ‘Gê©Í[têÉ'ª¯·G9£|gÛ²d›fu8RåŽ9˜^µ×¾ÆJ:R)¥Så³¶m+›É–“@ÓÔS›·hxÞ¼Y5v3kå‘kôê#×tÍß™×™:¿éHF»öúsÅmß½•Díõâ¿PŸýÌMú›¿_ýýêïëS©dɶY¥’¤ò•õé»ÂLpGéTºá5Ö²¦^•Ê¥•2MÙ¶£±±1Ý}r[3 IDATòõoë¼gž§TÊ$Y@GéÔ ô'Ðùˆg¹³Îzº.¸ðýåþFrååZ½úX T?TmÛ–ã8*ÑT3â쳟¦|¡Ððë9•’c¦tptT’4>>®G{\Ÿ¿ù«:fÕÑ:á„ãÕß߯l6CÃcZ“áN¨ƒûlAewïSô'@¢€„\yå:ùäõ½ïý@Ÿºñó;8F£Ìýý:òˆÃuÁ…Ïщ'ž¨ùóçiÁ‚ùÊd²4¦M§é%$@¢çœs¶Î8ã ŽÐÈÈ>MLL¨T²ø°AZ:R¿.\ ááy\Ô :‰êÆl6£ h``@…BùîG˜ýLÓT6›Q6›U*•âW˜öÏ’ Q@|a§§ž§ÐßO{h?’è^ÜþÐ6Ýp«¶Žœq›]ûý (:g€DПÀ,Â5 €Ä¬_ÿóÀ2çwaÓ÷+@ש|^ÓÜó‰Íʸ/¾öºBð ý (˜„I$šxîiQ~86›¿ÙtПÀlÃÐ#@Çñ Üšs^Ážû(¶_™(uý (Ïô'0W0ô0-˜×0’$‡}´#ès/Ó}TÝÄÓŸ‰`†ÿ•÷“’ôÐÆ®wö>DíÇÐ#À¬ÅÑbú‰`óBâ>‚ìW†@•þà-±¡G ®h˜62²­¡Œ{Z'éôúÍöú·c›ÛÙ&µËNr=•¿¥(Ë›‹}Îö¨í.ýî´ã.ã,z½W™Æ0ú Qh1H!1}ÚžúO÷vò·‚°ÜÏPˆ€…½•fÔ[nú•q¥Nb ?Ù å¡G͈‘‘mžg€¤¼Ý$ºÃŒÜõÈ<øðzß+1 ;Íkù^ÃAK3µïú÷IìGÓ½`ú‘$@÷Jä®G•@"Ì0£ À+H¨=f8S+F«õ‹²ì0gâ®ß¯ ZYGRí´%Ý·qö…¤Õv´×tî»íÚ0ûqWè^‰ =òŽ0AAí°ˆÙ„„ âj¾¨mÑÎëH¼Žšwkßr½M{Ú§•}oÆÎ(<ñ—4þLZõ Ú QðO¦3À›î‹¦ÛX·²maʶºŽ°ër'qìÏT€žT;͆`¾]í“Ä>‚Ζô5 \ó]”(„¹ëÑt]_0]ÉÉtÜ—¿ÕºMGû„]N”`p¦ûv&Ö5’|ÖC’íCÂ0{%Ô“$ÀôáÉÌ –´þ™:ú]»Nîfþg¿Åì’ô5 ³ñšãØëgý>àõŸ}˜‰B³€4î…§a.Ìuyn×Ù‹¸õ …™/LÐìÂ夆"µR¸m<Ý}Û΀ºíÕ)uˆ³aö›Ígf{€Ÿt¿¹ÿ·3à&˜’‘È5 ~i+wšŽ‹¢ÝwSjwý‚æójÇÚ;J¹ç0ë÷ ºã¬#( »=Ó ·²®°í4SûõLî»##ÛÛfbÁ4Ó\£D?~õœMº±?þ…˜KÜ2qoã™Ä­ÃÜm%nýâ´SØuE©S˜vJªÚÕNqû&Ê|­,;êõI´×Lï»IíG$³?œÉåÇ^/çñ««Gÿ+A¹×ÙwÀî.Sû~å=÷rÝóy-Ó]ŸÊ4¿2~õª¯_â^†{ýA뙎ä2¨ßÝej߯¼WyõzÏo™µg:üö5wr㞯vÞ õ…Ù¿ÝËðJ®š­èˆD³¼û’ úfúŒ‚_ Þ¬œ_ð\™Ö,ÀZ—ßúƒ–ã•4«o˜úx%aÛ«}é׿µÓƒækL{øIì¯^ËöJRšmC˜:z%a¶ ÝiÇÿ£m~k^Ó4%]N¢‚>°¡suÂ5 î ·]GȽj¯„"Ìú½Ê4›/Ì2›Õ/ê6Ä ¤Ãôe»\¯àÙ+¡ˆ»þ¨Ûf=Íêu»Ð½Þó×EžçÆk¿“ØúIЀqã`?B;´NZ^m€XwÛµt±u˜£çQ’Œ¤üNû[¼l½ëgZvØ1J/=\ÊOH¥¢ä8’e«˜›ÐÈž-2Ì”öîÙ)˲]7‰Â4MÔì÷˜kÚuF¡v\¸×kÔ :蚀°IÂLçAÛÔi F˜ñöµå¼ö(ûX§âAÛI‚ŠR©¨‰ñQ ç'¤TZ²lÉp$«¤J÷2”Ï[J§“ÝHm †Úq´·v<º×kP 6ðš0ÌÔY‡$¯#˜É3'Qö—¨ CGÝZ7Á¿ †Í¥Œ¡xègÛšêÿò«m—d¶áéh-% k×^E§@—X·îûÚ·oû´®³[ƒ¯aGq´·ëbànMD’²[y&ÃlËÏ5 ³˜eKŽ%Y%ɶÛÞÏ-ŸQX·îût «–$†Û4»Õi'l“_ý:y*ûP k§ßÈo(R³»uÃv¡ÉBQ’©ba¼í«bè m:1`ñ:;P™V ŠýÊø-Ç}ÛT¿yfr›üêözví^·6õ*S)çWÆkžÚ÷ü®u˜©¿‹ íô«sØk80Ë?[K¹iY‰ mfúè¦_æö£ÓuÓ0ëmç|QÚ­É¢W§L˜õ¶zËÒ¸õMr¾nIÈ1;˜³a#Ü÷ž‹_ÄЉ`:転ƒn— ¾ÛA¢>ð9G#txòÐíZϵ¿'’oL§Y7ôh.þñ¡€Ï'öEˆë.ÐY;A×b]™(Ô>øÆ½s]p悜fe‚îv¯‡úømG³åú½_yÏëþÏa¶¯v>¿úGmÿ0Û䵌 æðÁÌ]í¼d$ÚÀŒ& Íöf·ð s‹¯0‰@ÐTÔ/®°·óJ0üÞo`Gmƒ$Ú?l[…inÕ`ÆUŸ ñ Em»F!ê•û^Á¤û¨¸_™V¿ ‚–çn I$W^mvýí¸ÛC˜ö» æþö€DaÎiùYŸŽƒ/xг‰Ð½:êbæv¦A&i×rÝׄý²œÉà<©¶"ÁPûy0ÉCÙoÌòD!é…v}ÐDYnÔ„a¦>“l+>Üðyݯã‡uëÑé$‡͆#ôœeè.sF¡Ùm>ƒÊ´°&q—ž$á0m0ÓÉNPûwÚ6˜^ë×ÿ<°Ìyç]ØôsÇë–ÔîÏ›°7`ˆRíù¡?…D“…f^eü‚t¿;†ÑRðf¹aîVäõᦠ¦£íýÚ*LûÏÔ6è Í0‰DÜ[G·RíOèO€D¡i€wZP÷Y‡¨ëˆ²¼V–ÛJ[µºÞvζžã|‡4»írØgå4+ö¢?îeÒˆò…€¹!M Õä#:¼>Ü?{ içÝé0;÷'$ è@qŸ `n~^Ô&~ï·ë3„Ϧٹ? QÖ8΀ҟ¢á@Û$ÈyÍl$F-éß'èO ;pF¨0·@m5¸ ó”{nÓÜ=Éý (f9÷3¢ùz{èfïLvFB@$ Ü@‚®{ÿu:0–W&ROÆœú\•,»üÙj;Ž,ËQ._’aH‹æ÷©oÞÑ$ íT{,êÓ"|F@ÞÝû#Ïsãµß!QàK:Ÿ—_œ3 ÿwÿ]pþ3I:áKŽ/AðÇÁˆoÖQðûRpOóà® ;x-Ó].Ì]š•qCª}u?U´öI£Q·/S³Ÿkßœ¼FÁ/ oôÇ ¤Ã&Í÷^œkÂlÌF€ø¸F!ä‹WîU&Ê2š•‰+è ±ë€NE’ñÍÙk‚‚~@÷ëÖ3 QëÍ™úh‡9yFÁ=æ?h + €™C°ñÍéç(4K’ørá À÷èOt«9yFÁkØQ˜£ÿIœ ät"´Ïúõ?,sÞy~Nûy^w—‹sG» 2an:ÁwIøï]úˆgN\£u×…ËQï&f~eÚ}Tƒ»˜Íš%A‰DRwÅKªLœé ?¤Ìº3 ~Ïðzn@³L>ì†(uñZF˜ºù•ûu0›Å$¾g¼>SÃÜÑ.J™V¾@I˜•×(øäQÿP£>9Ìz£.'h™a®«ˆ[/ ¹˜ÞÏ˰ëâàý Lž£0Ç?0`¶~Ö¹ö›îD¶zæ6éÀ/èL9šêô'Ïœ}ŽH̱ÙYÕ 3±qÌ$?SùŒžù„þÄ\Å…9øat}ÌUqT€HIfÓúÿЂ…Ë5¼t¥d¤¤RNN± R©(Çq´oïIÒÎ;ešÉž3iþ™IjÿÀlþ¼kGð5S&J@³g‰ ó,…f‰EwÅKªL³:†Ákú Q ÷3â^IܯÕ2QïªGpI³C3$Hs c¿€D€œQ$}FăD‰€@@¢˜¸FHhÀ Q ÁLœQà,û@‡ë„3 š$H`¸ý !iš”õëXæ¼ó.lú¾ûˆqm h†gàX;Ýýsí«{Y£íG$ &A‰„WàèL†á8N¨e¶²ПÀlÅÐ#@[Ån^+(fG2B$ €9\pd˜þ03zhkpè7žÜk‰{,z»‚JŽ6Oú QÀ7@ô +ÓüÇv˜Õž] ý ´Cc&‡©pTšþ@¢˜&ÓF ½.tå.9›\П€K*##U&Û×öU1ô¨0ÏRˆô¹¯aðz¿YpYû~í'î»?=‰"ý ´Æ¶J²mGrÉd¤¤”#©äy=‰ #¹Ÿ¡çÈnPùf×<„yŸ`rú“úˆÏ0SÑüŇ•Ç9–d—$ÇQ¦w@}ýÃSŸ·»H³'H}Ž–?KÇG÷(›í©N·m[¦™ÑðÂ¥’¤£{U,$’(:cÅ 5Ç<ëšʭ\²²üÃ/¾C¢è|$ ß×~gF×Ï]mÃ-* ¾‹Î?uF×Ï@ÛpFâY¾êyJ-:Y/ý‹Õ“ͪ _}½½Êd³2R•÷{ó¿í»ßJ¤œQ´ g {‘(Ú†3 @¢@ƒvœQ˜®³•õ„YgNèO€D€¦ãŒB'ušô'0ç…uë¾O f]ò1êDÒŸ@«ZºëѾ}ÛiA@Õúõ?,sÞyú¾ç÷€¶ÚéîŸk_kç­= ìø…)¦žaë4×ПÀNˆ’„I$¢pÇ3møE)%ø ªèO€D€ˆÁZ»×éö”é”ía¢?17<¸_·ÞúÍXó®Zu4‰³9éý‰¹ë‰'6êÃýA¥Òi™é~Ù¥ Y¥Ru¿-¿*• *K*Y–lÛ’a˜ºáÆÏMo¢pÙe¯¦Ç¡ƒ0÷Ï^ÃBº%Xã®7³wÿ:Y>ŸWi|L%ez‡d¦-ɱ䨶 ÃmÛ2 ©T,©X,ªPÈ«¿ ±õ‡Nn¾ùsôÌBk×^•ø2› ©}¿[Žèmº ý‰na•J²,[ÅbA™^K’!)¦ªÉ‚a’a(Ÿ›”a&û䞣@„“£Ñô'03;¬%©|FÁ0ª‰®ã8’ãHmØ—Im ÄZ5ó þÜGŽÃ”!¸lúh-t7ÌòÐ"#5x(Qh.f$ª•[ zmA\íûµCš‚LÐ:ýæñªÓ\MéO ÉD»·>ÏÎSn|‰ ó¹Ÿ¡g x³k¼%P º~³2qê4W“úH I0½/RîX¬ý{6·e =Lkˆf`xyÓ÷ç/>‚DÐ]û ­Ý!Ç÷|/7¾‡3 €îÃè^‘¯QH¥RêÉf”J¥dr¤hV³G–e)_(ʲ,@dܧæH¢2 ¥äH¶-Ûq”îT)?¡\.§|nR%Ë’e•hÕnM ,[¶mÉL¥e[%™©´LÓÐÀÀ RfZ_ö""I€9(ØVI““å±QŽí¨··WÆ¡Lï€úS)e³YŽu¹b±¨±±ƒ;(ËúÿÛ{÷(I®û¾ï[î™éž],€ÅX@A$D‰´(R$¥È&MùDÇ4 YÔƒ$Må(ŽDE2J‘2’%à¡6Ç6M¢È¥p,'>V”01eÙMJ¤Lˆ‹×b±»ØÝÙžé•?zº·º¦÷Þºõèîïçœ>Ý]uŸ¿û¨ßï¾*@ËÍ" ú}´Zm,uVá¶Z!D>!ÄaؾïMúV!Dý†ÂÖ¥‹ð†C8Žƒ 0ÐévÑ }Øn­ñùÂ%&–”‹mÛpa(pñÂììôÑj·à:úƒ>úƒ!V÷@»ÝâEBˆäCF!„Ì*҆¥ÍMtVVFFÂ`Û¶ DˆPXŽËií¾Ršû£gÖP°,8®‹}ûvvv°¹¹ !œÎ lËÂæ¥K`áÀƒhµø BH>œQ „0¶{ÛX^^†ïy ‡h·Zð}ïÃ|ÌE¥p]´Ûm„aÏ÷1á¶Zø±ººJC"B1CÚ ×”v<ª´¶·³Ó‡mYz|σãØ‚"`YÖèS`6Áv÷Mýþ¥=÷ãת&žÆ¤tÖ¾"é …@†CË;¡c£Ýncg§Ð àyܰN!„R%¡è–“¸G¡¿³S³¡Ðï#€ïûp|wd(Ð÷áº.B#4Ý¥u€?¸°Gé_5Ñé.­ïIOZ:뤨Œ|ߟzͽïûpƒ‚ ÀN¿§m•ºi†2Û<þø—sݼéMoO½—¶T)~=¾O*ÍOÖ}R>,OBfù¥GÛÛ#CÁ÷áZ»šý`–°`Y€j»]îB¿wv¢ Fé÷ÎÂ]ZŸÜOrSãt&ÅŸ”Î:)"#ËÂÄBþn™A€íímtÝ%vЄmC@ÆÐQ>“Ϭÿ¤ÙÆË“3z½í‰9V"=oô".Û-CÒi³Y/òêmžžºwÛ]»zÊmœèý$wݵ«ÑÛ<=q—†L:«N[VØAì ;+_qCA!ĨöÚ~+5‚`´6ªÝna8t!"ÇyZ»KSÆ›`ɬ —?Û¶áì„ívkôΠߣ!8vì1 BJæ?òn¼óGÞ]k¤ …n·‹K[=¬í[E«Ý†ïyB@ÛvvM.EšiCìÝi¬0 áºàŽf‘.mõ&ëâ!‹ÍÆÆË!„,Ò[£o¸ñF¼ðâ X–…•å%´Ú-"€²l­·3“UÇë¸h¹-8Žƒv«¥v–mã…O`mÿ~Ø6˘B!d"~×»ÞO~âSøèG>„n§ƒÎÊ |d$þèŒ~gWÑ$³ÉxÑXwuNß…cÛ"ÄÖÖ>û»¿7}ÿ›à86B!„ —ùÞïý¼ííoÃ/þÒGñþ÷½·Ýv+VW»“ר 1:ƒß§Lg·28BÛÁ¥ÍM@¯×ÃSßyŸ>úÜräfÜqÇíèt:h·[!„B …˼ï}?…»îºðÿÿäáOcëÒ%8ÇtºÜxÃõxÛÛwÞy'Ö×÷ãÀu´Zm ‡B!„†Â4o|ãpÏ=÷`só"ΟßÀöö6|?àiGsŠeYp]NÀÚÚþÑ&gBÈ\ñøã_Þsí¾ûî¥`!„†‚šâØn·pàÀt»] ‡£ÓÈübÛ6ÚíÚí6ÇáÉV„ÌG>‚øÀžk„Bh((3e½ˆ«Ó¡ !dŒB!$ ¯!„B!„ÐP „B!„ÐP „B!„ÐP „B!„˜ u3sü B!„BÈü‘v …›f$;ö¥F!„BÈóøã_N È95 ô!„BY@rߣ°±q†R"„B!„†ÂˆÇÿ2¥C!„B …Ë=ú73B!„²=ú^÷ƒï•3Æ!„B!‹ ߣ@!„B¡¡@!„B¡¡@!„B¡¡@!„B¡¡@!„B¡¡@!„B¡¡@!„B¡¡@!„B¡¡@!„Bi,®Šãƒ¯Í¼þüÉÚ34NcÒB!„BȬbtF!ϨÓxhjÚ!„Bi"®Ž§¤Ñz*â„B!„,¸¡ J܈54¢îÒ–å-5І{ðàµ\’D!„BˆF–eÍ&$Ý‹_KóÏY B!„BêAkF!M—íïˆ_OšA(Êùó'¹Á™B!„* S†Eš»óçOR©'„B!¤F´–ù¸B¯; 6ã@!„B©#3 Ñå=2†@ž›qXÜ|L!„BH=TòfæøÉCñƒøY〳„B!„”ƒñ= ÑY€èLƒî©&ÎPB!„"Gé3 IŠyÖiGi×eÂQI!„B!$¥…,…[÷^Q7:F!„B!$›" „B!„ÐP „B!„ÐP „B!„ÐP „B!„ÐP „B!„ÐP „B!„ÐP „B!„ÐP „B!„ÐP „B!„ÐP „B!„Ì ®¬Ãø¥E!„BÈŒsôè#f …cÇ£T !„B™q66^6k(ÈH!„B™}¸GB!„BCB!„BCB!„BCB!„BCB!„BCB!„R |á!„mŽ{ /ïyFD_æã8–Ú-8ŽÛ²(4B@„!‚ À`è!‚ZÒðÇÿæßT×ý?þ3©¯hJ:´ øù>€Ÿÿ~A«š IDAT…5›ãÌ™WðègªW&˜7™"Ëûæ'qüøsZ~¹Àh )úRÎÇÿ2xà8zô8–! DÂ]Y…?ØF¿ßÇ ¿?> ‚E0 !ØŽ ø°¶m¡Û]…c»°–tÝÿã?Óù4%Ú†Â÷½å­øã?úW¬éÄÿ쟶p½2ƼɄY>öñßÄG>üËp\¶Ûð·ø>ÂÝöèÛ‚ïá{>ü €,ËÆo?üH,´ ¦øØÙéÂ!–——±fYø®W݃v»¥¥6–——Y„4Œûïÿ{øÿ½ÆÃõ<[[—°µu A åŽúŒA¿V«¥Î*ÜV«–<{ý ¥†ÿØcIMI‡–¡¸Ø·¶Ÿ-ˆ£Ýj®W&˜7™¢Â`0€ßÛB·ë£µ¼¶a€PX–!, ð=žça8 Óé&†µ±qfò{ëÒExÃ!ÇA#Ý.Úí6~ò' ‡Æõ×_Ï ¤alllÀu]ãáÚ¶ DZ†/\ÀÎN­v ®ã ?è£?buÿ´Û-X/S CÑÙ7%š†‚Ø.[1†e[…땉0æM&„¨ø>‚@Àó†h-£úg9°lLŒ˲Ë ¿Ë–;ãÒæ&:++##a0„m["ÄÒR‡Æûßÿ~ Ÿ†ñä“Obß¾}°w …³gNãÐUWïùÖ2, Žëbß>lnnB§³Û²°yéX8pà Z­jŸaMËžššMC³!ƼɄý§TX†°ì.Â` BˆÑÃ+ G÷$éïô±¼¼ ßó0ô<´[.|ßÃòò2gi(wÜqöïß0ò,ÿŽ+³Û8ŽƒV«…0 áù£™JÇuá ‡ð6/auu_å†BSž½MÓ4JAÄÊ|a¸“Q'²ï“…×J´ê•LñðF–zyu1šfÕz?í>]&É£Íj_&Ú<ûº±aÙ£½–³ xQk”k§ßÇË‚ïûð=ŽmÓ&dÆ»§Å¿µžøãAŒ–!…aˆÀàyÜV ýÁ¡'àûÕpÀS†BB,k¡ØVòCHnQ­72îË®‹Ñð‹¦?ÁR;›AYm° å™eؽég¿Q£±7½ÁØmïG¿wV9œ~„áîÉFÔn(X–Õ¸1!Í|,Ú‰çy£‘ÿØ·®¡0êFþ…ê†è÷°[¨å¨Ô°!ƒálÏ(„‰þ,»áoÍD¦I“+µ^ÉÖ›¬0ÀvW'u3«žEø[‰SµªƒªLªÈ[9ètŽºamÒNÞ¤¼Ü=„ g_T4úð}BŒŒ7ð}o&û)dÑÏ ‡Cˆ Øó­KLŸªæZ"„ïûè÷ûX²[µ´7Ñ6.f}F!©räMGů»K{Osñ÷¸ñ§ÜŽÝ$]K ?é>iÞˆEV½*FRXIõ1­E¯çÕÛ¸ûh<2u~쾈L’î«´Õ6o§ãßѶšÖŽãaÛîjb2ùHЇí_îÚáÌûë‡nÀsχ’Íp8looc8îùÖÁ¶­é™ !&K…XB¯·öÊjM}O=2`(„𼽕Ãó†ØÙzîÒ~ìl½’xÌÊꕉn’üƯ•€øµèÿxøii"Í`ø³æ_’§¼ô(i'züZÞÿ8ëW\/í/ïZZ\uì 'fë•NºõH·ÞÊÔE¿Ed¢ÚV÷Æ…s—;ø çNä†ucªMfý— ƒm¿†Â`8RÆ#e€´"Ÿ7ÒŸ¤Äë(ó4Étò<AìùÖ%û†þ`X[~óFòßñ#7ᥗΕ>â_$üO|ê3øÿíO×h(ìn:Ùó Ž\;{æy¬_q=Ξy>ñ>ºê¦©ÿgϘéÿÒGòßù·nÁK/› iüŸÿúÙRÓñÈïün®ÿO~ú_àÿÍOÖd(@nƒå™—ãÐU7áÌËÇ÷Ü¿êš#“ëqÿñpd7sF¯ÅÃÎòG`(ÀR*kÕ0ÒêÃU×ÙSoÆuv\GuêmÒoU¿º2IJ·l{»4Q:¨³6§]Ïú/†l<$¥Eßm8EowdKL-߃eYp$ßÌ<ôâ)w£^Ò,BÔ å}0ìùÖ k¬÷)Èô•õ)ƒ¯{ý~ç&ÿǃJ&Ò¡Â#¿ó»øûüDM†BÒñŒ)ÿøzü~ž{Õ¸¢×’î¾î6œzéi¶úbÛ–r½2F–{z.û;Ïo™È´¡h{ˆ·S/=Ã×ݦԦtÚ¤LZuåWµb:7F»e#ƒ~®ëN)ÚcV:]ì_ó0ô†h¹ùñzãñ['ow.ÑHàR"BÌ0nK¾?ýë„5õ;Ò'Œ¯Õ¹G!íHîÓ§_ÂÕW_W( éPåÊÃGpædqÝWÃP¤®|ñI¾î¶Äûñÿ×Þp‡”»¼kã8O¾øäTØ'_|2Ñi‚¡`+•µlyåžTWÆ °lz’ê­Ìï4¿ãô¨ÊdV<¿²í¡h›ÊK§l›Lû_$*õh‘q\w²¬(‚‰Ì|?€ã8SøµõuøžÜ»‘õÆ!êYzDÑ#ã= >ìùŽsÓ‘»SúþæWž?þĤ/™|&öuF{ô…Vpí—…Ó§_Êc¥´t¨ð‘|ÄXXʆ‚m»R×àÔKÏàðu·NÝ_Krwí wàÔKÏ(Ç•~4<Ò\CA¥^Ɇ!ã?©î$ÕÙz oü[Öïå0Òe26 âa¥‘×ÒÒ¦†‰6u“$K™0ÒÊ[¶-*GŽÜŒ‡>öÚ~3 ÉõÆI' éœz”—¢Çå´41öçÙ§ÿ·ÜvOjxÏ>ý»ÆHXÔ¸G!köùÄsK¸þ摱pâ¹%­0L¤ã¿~ßý¸&A€~ô£SFÂ˱ÐÊ …xŸ{úd¶"žt_æš®?™4‘æ0­T­WyaÈøW­;yîÓ~«ú5!“¢mTÖŒ -K=eþ@Ž}ûÖñž÷ü8–——±Ôn£Óí`ey­v–Ó`ï~öòÅ/|.3ìèÆD VæŒBÒ;òöÈž”dYV¡eIÑp9#BÇP)¬ƒÁBˆ=ßI<óÔ×pëí¯O¼.„À謎‘¡0îÆûòâ}FÕäµíŸmã†[^B¶kMÇɾzol$d¹)ÝP°#ÓЄ˜2ŠÔ+aÌ›LšûŒÅe8N”tH(Ú2Jxž›¤û‰ë£3ÂÊ ƒE`\åGG™îýNãé'¿†ÛîxýÔÿËÛ.01Àwû˲04óÔ£1/wKs²nøïÿé¿xéùoMš¡`YSëU )\]§p½2Ƽɤ‰†Y<úƒlÛ‚ë8°m¶m'*Ü„LH“ †0ñ;‹±±ðô“_KQ'/¿ñܶíÝ>ÂBPã ×òFä"éxñÙoš×IT=Ø–ÍVCŒ+‘Eꕉ0æM&M‚}Æâ2a;lÇë:Jûh<2Û¤ £Ù ˲`[\×™ôM}Â"¦CÛP ĨiÛcÞdÒ.œ{‰•|ñ¼Ñ{\×ÍœY’y 3!d¾°vgÎÃ0„뺰, žä‰jå(èÍèsšÖ÷¹³ž2ó=Eñz5o› ¹i’Ì a8:1¥åºp]7ó|p½„òVÛ²†ážo]ã`²ìȶáì-×E‚úFÓ·cçMI‡ž¡ úý>[1«I­W&˜7™Ò:ôzÛXÛ·ŠV«ßó¦NKyòÉ'qÇwPP„4ñË?Gû‹¬=ßZ†,ض³«R 8Ž Ç±áº.mõF{ôêRˆ¢ »³l(¼tâüÇÿô¶b ß ×+aÌ›LQPJ ù†oÄ /žÀÝw݉•å%ô­Ñ‰)÷ßÿ÷°±±}ûöaÿþý,BLtãqô[«·q¸ÎhAv« ËÍ.¼ðâ ¬íß_Ûò[  …ën|î½ñUl5Ä8&êÕ¼ÕM¶5R_ü£¥…ý®w½ŸüħðÑ|ÝN•ø~€¿ù×ß<It]ìl†csÃ;!MÃuF*b†pwÏ·ãKÝÕU8}ŽmCˆ[[[øìïþ>Þôýo‚ãØµ 4  „Bˆ,ßû½ßƒ·½ýmøÅ_ú(Þÿ¾÷à¶ÛnÅêjwr¢‘a§¨i,oxÃë1÷|ëBÛÁ¥ÍM@¯×ÃSßyŸ>úÜräfÜqÇíèt:h·[4h(B™wÞ÷¾ŸÂ]w݉?øƒ‰òð§±ui‹B!„:Ýn¼áz¼íí?€;ï¼ëëûqàÀ:Z­våi¡¡P±¡ÐÄ3°y.÷â¡RæÑu—eú)’—*â!æÊ¤Î>§IýÝßøÜsÏ=ØÜ¼ˆóç7°½½ ßX— !»G(;èt:8xðÖÖöײ©ùÿðÿh„<š’ŽÒ …ET4iìÌO9ËÈYÇÛÊü¤‘mQMVív @·ÛÅp8}ú!d±±mív ívŽãÚ0­Êý?þ3SßuÑ”tTf(ðJš œè*|ã@5¥GÓB•Ìj{twß§ÐéP„f°±ñ2ÓQ–¡_v‘¥ÌŒÿ'-ÕH[¾‘åG'}2Šd<þèwRzUÓ•—×<1žž¸ŒTÒ8ÏoBMª;yÆ®âÞã"-ϳX7e ¿¼6Vße—pUV\N22ב q!„Tb(ä=°Tüd)%ºË;òÒ'ó Nz`Ë>ÀeÓ¤Wš¡“F™pf•|Ì£4ËuS7_ºiT•‡é°tÛž®¼9#E!D­ƒjÓFSu²<i£¶EÓ§û ,òÚr¼è¤‰J@ñrlê²£¼z£“æy¨›&ó`Z2a•%•™B!Ĉ¡0¯è>4M=l£ „iE5)\’Ð|#¡I†U•uSÆˈ2!„R.3}êQчd’Ù%TYJTZšdÂ6µÎ=/oñõâT0š)‹´zeZaoRÝL‹;¯Œmtœm˜B ‰¥®²bj™†lšTÖ3QÈTüRÙ0¯tWUÏM*ÆM¬›ªõuQëî,´áo=ñMüñÿýÿà[ßú6Î?O£¦¦>ñêW¿ ïøëÿ^}÷] !d¾ …ySPó6–©›Z“¾(F‚ÊFwÖÍúêë3h(ÔI»Ý†ƒÁËË˕Π“üÉèÒ¥Müâ/ü÷øØÇ“†)ÇP ñ@!óÃÏýÒýÊ~~ðó†„Û¶áyÞèBÏШ ˲ „€çyXZZ‚m[hµÚLýÁ`ne†!>û™Ac˜7¸¾Bæ‹—¾ú%\}Í-p¯ºl¾„!xýmœ?{–íàÜÙÓ!÷€q]!àûþh0IXNÀÚ£À¦=kš¦h›xH=ùíMbTvB¸®Ëg·¤Î3g#Â0Äþ— úïÿ ˜˜7ªj8ìÀ!¤|ßÃvokƒmÀq@V>Æz¼ ƒAו;¸Âu]ø¾ß`Û6߇뜄þ^$*Õi÷jTu2;!ýu<Û‚]C!œo#C!_¶W_sKâõÓ/?[y.®¾æ–I¼Ñßåê"ú2ŠË©Žô§éW¯ºãvü«ÿý_³ó#å „BæÑbð.ÿÁ®R1ú‡­°Å Ýn#ÁHIõ}n;$h.ý—Dÿ²²½û»VAôÓ™ïqX< #Æ   „@h·ÛÒr§NOUŽ“îÉpøÚ#Z~«~Ñb%ù¯ýE‘»'Ú6÷  „BT Äh?AàBh+3­V Bˆ©å.¡)J¸ÈQÒ÷Þ·ÝË® ;󾌛è}Ûí@øÛ“ûãßc7ñûIáïYörb2ùHŠ'-/yŒËbü—¬ß8'O<=QøÇ¿uÒ¤ÂÉOOùQõ_feÜÕ‘þ=pO)¡¡@!¤˜±à°á {ú˜Ý5ðce(ˆÝÙ…=Ñù~j8^¶Û×ß¼l„,¯MýÏ»/ã&~?úœ¾h:³ÜÓ#)Œ¼4¨\ËÖ ­Él‚Ø5þ\×…Üo’ç.éþõ7Ý>ù}âù§ï]{ýmS÷£~’ü^ÓíSÿ£ñÆýÆãÔ6 É(/ýy23™Ç0 !h,: ž‚DBf›Ð/¶ÜÇuÝiÅ$2š½ÇP‚|Ûe×Ír÷ú½)?ýÞZËkè÷62ÃT #~?¦L’Ò¡š¤tÈÊlbXØöÄ@ˆ–‰Ñòžý6®¿év¼ðì·'×n¼åUSÿã÷_xöÛSn„{ü¤ùM‘Oò÷§m(œQHK¿ŒÌLç‘ú©ÕP „²Ø´Zî”B5t”,™%ÑëËÝؾtnòûÒ¹Ü0¢nòÒ)“†¼ÿ2aÈÆ#£Ž?#CÁÜ(.ãnìææ#¯ÆsÇ¿5åç¹ãß·¼ ÏÿVj¸q?iîd~«¤ÛDÞÇŠ|YyV•™©ùì”Û¸»¬xdÂÈK§L’ÂQICZ:²®§=·…“çôøÛÔhy^žà5¯}#þò_Qö¿žô;ö_~ã+xÍkߨ$#ݼq—WÎÑ|•™GBŒ ‹„ÌLÉ,ÆE!Uõkñ¾-i$|lDyùÄ3©î_>ñÌ”Ÿ—O<3å.~_ÆMü~ÞŒBžÿ¸›¤üÈ„abF!ºW$­\TyÍkß8QX£ŒØèõ$#A%ŽyǤÌdë8`IæÝPÈÚ'`2̲ø*ã"„:ˆ.ít]®ëb0˜Þ„{òŧ3ý¦õ—ä6nž›èý“/>½Ç}üZ†¹iˆÆ1vŸnZIî³®§=u¬(¶Z-ÉÑè$…ý_|vBßøúãS~¾ñõÇ÷¸‹ºùÆ×ßãg|ýµßý&¼æµoLŒoü;ͯ00Ú.†Ž»èï<™•™GBæÒP0½|§ÊýÜ‹@™wZ­ÖT_‚”®ñTMZ£ßíV 29øÏ» úž0ü…9n”¸Â˜›ÿüõǧ܆é4U:²2Ru—ä'Ofe呹4!„4ÙPp§–¸ðìöú—C´ Z­g±%eG Å‘ St¨î©GMê dO…"„ù1Z{žª/ #f …¸!gÛ6…“üÉȶm„‘í„7¢ÆBÚSè¾GÁD\Ñk*JV8¦ã"„¦²´´Û¶GŠIä­Àó  ¤í«h²rè8ΔÑÐjµ`SYÌ—ÝœÉȶ,,wR¶¡§´'k*ã_çUÙ´É\Ës“–üêÆE!³f(ŒgÂ0ä(vM†BüÔ£v» ‹e‘˼Ɉ3 ¤tC#Þ„BòXYYžœtÁd$›†Bõ,/¯LÞ£0ž]XYY¡Ò¸ˆŠµ£q „B Ñn·G׫eG3ù°w]!ຣ æŽãŒfX g(Ägù1n(¤­¯'„2{<ô¡‡pqk€–ë`©eïöé@ FýºCAˆþÀ‡eW¬¯`eÿ͹ávVVZ-wrŽTPj@Çq&†‚eYXZjñ '‡y“‘cÛ, –ãàûßô×XÀļ¡P•a@ãƒBÊçC}HÙÏÃ~>×M·Û…ïûhµZSïPø‚¨ÊÙÞÞÆÒÒ–––†#£myy™e!Á¼Éh<»¸ý¶[YÀ¤CBÈ| 3£ðgOœÂÛÞúý™á®®®"Z-L ¤z66ÎÃqìÛ·Šø¾n§ƒÛ'ÂÉà3ŸýÜ\çïî×qFa¹ï¾{qôè#4!„äSÖŒÂk^÷Üwß½pƒùħ~‡B d‘Úü'>¥äž†!„,8eíQsìØc2!„àŸÿÓGpüøsZ~¹YÙOi†Â<ž‚Ä“f«¬ÆÈ–™¬Ÿ¼0TêˆLJ‹ÏD]dfÿ”7£@!Ä,Ç?‡|ø—á¸.l·áo#ðýIÿ?ú¶àûCøž? D˲ñÛ?¢g¨DÍ}¹É*ã²~Šº$Å©S?Y§ÙW$QÖB!æ ð{[èv}´–÷Áv î¾+eôÎÀ÷|xž‡áp€N§«Wi†•Ò…m|œoZÔñcBY,jT褑$8£@!³CàûÏ¢µ°Ëecb,X–XýBo/d(Ä—jD•–´Ú¤åiK>²üÈ(lyáf)zÑ×Ü'ùÏ3Š²Òœ”>Wóg ¨ÖÑ2⟅:åG6_yý„J_¢Nôw’\eŒÃ¼>O§D ½‘ „˜’EË÷`YœªßÌÌ—BHY žìóGf”1kD4/,Ý碉XÓá•Y&¤^#hÖ÷vÝ|Ÿ–ÿy¯·–e#ƒ~®ë&ö_+.ö¯yzC´\½¹·®‚nB§Gc‡Ì›rÅ:MæÅ0Èz©œî©ºaéæEç­Æe¤Mv¦1ëTY¥+ÍmÖlC•/K›uC¹ÉéÉ+GÝ}`¦ör™£)º®ãº“eEA@ˆàûÇ™ÊÃÚú:|ÏÓŽ«ÐffSkÕP™"óë4Y„º,óìÉRTË|ŽéìiÚ3ÖÔìJž±PEÿerOŒAUe˪eÉL¥È¤¡Šü§ÍH6áY{äÈÍxèc¿¡í·C¡êN‹J!¤H{gŸ€¹yÛ¸Éò6½ïF'mºû{Lí/Ò Ãdúʪ7*{‚Ê”gQY›ªºåª*³*Ònr¯C•åm‚Þ+_Õ]¡é÷<€wWc(B!„½«Õòs¿t¿²Ý#­i(B!„mšb$,Ò~½—¾ú%\}Í-p¯ºl¾7~S&¼þ6Ο=ËvpîìiÐŽÇfõ&„B!ó`°,Ê̆ï{ØîmŽŒÇ½ÿÆvˆÉë,X ‚BñÐPH±Fg1½<®XyŽ7K•í§h\¬›óݦ B‘·< ðG¿wO? ÃÑ·>삚> *ɘ:MAöd?Eü±¾²­°ÍBÙC €0 B¼ ¡c–G†8ª¥§4%mÂ*K×+ëX8B!„,º±à°á wŒ[h3sülÙø›$eϺÍ;£6),ÙóžUÏ¿MRäŠÄaR²qEÝ-ꋸT_dRáoš¬óêžnû2yzV}-Ú.ÊŽ[%=qY«Ä•'ï2òAÔûRNÿU¶œeû™¬tÈÜ/GÖó> ÖÑÅ!ôûÆÃt‹4ª´QžÒõ–;Ù77f½AR5lÕ|ªÆaJ22oºÒZYc)xÖö<+2*u+­Nš~ÃjZ}Õmªåo2\Sm[µ_4Bãbd•eX›êãLÇQÕKë4—¥¦ªV\•eªá›XN’†l&ä +s2óxZʘ)Qm_UȦH»(*Ÿ¢KIJüÉn¦ÞZå²:HYíç“ÚˆêÛ¥MÆAH“à{øp  I£¾e?(’ ²â!Õõ¥ËÛiÁ –íb8Ø®¬åµ“KLM,÷RYn+»$T&}E–±%¹ÉÊKÖSKÓÒ§š¿,¹Ìʳ>kE@ÙËj Y(C!«!©Žú×™VRm˜¨ Yõ+é!šVþñ‡¥ªA@›¬çIyd=.¯ýëÊ[¶LDàCˆpô £3¹€_ÛQ·&—iÉ$:Ë`UÒ«²$´¬e­2ÆXQyè,–U–uåbr@H¶eûh.G#4j¢î¥³0rAŠ?4tÊÓÄ …Í´ÁÀ[µí¿¨R#U¦¶ƒÞÖy¬ºf´(5 áaˆÖr+µÝ´œit»•U¼òüéîµ)«N$åKe[Öþ"™%³Eû,S0:r)«Í6m‰*õ BC¡! aU•±æÖ‰´%De*|&òÆQÿÙ©ceÖ•d…kT?z›gÑn/M® !`Û-¬¼ p`ónyó»¤dsÝ•×~üÉç+Q–¢y•ÝGPV^tC{Þå!st“û`Bc($uº†©Ó=Ê ;/ Sé— GUæ¦6t-âP¦ÈÈ?*ÓøÇtýJŠO5í:nTë¨Ìµ¤pUêfVZ‹¶ ÃH7n•ôèæAFÞEòñÃo½{& xéýœm%% ÕaÌР uâê6 VXB™}ù!8WÜ…ý±wa©ÝF§ÛÁÊò2Zí6,§…ÑxRò˜Ò¿ð¹Z•³"KÏÊZîeRe,}3¹ŒµjeÚôRìãeUVId¹Í;–º™KCÆ!„J_Ö5ÙÓxÊX"VÆòº,ÅQ5}Eüé,.KE뉥Cq£ÇÄ2eSq¨Åš—GB*3ª^gM!d>…¼k¦–àéøËKŸÌòº¢ËáLß+â_·¼te sÂɺ ZM‹­#?ê_¤q†+&!„2{pöŸRž¡pü)1bž#£ !„Æ!d¦ B!„Ì,\:L¡¡@!„d(Ë‹œ>„Yì¦'кõã,%¢^ovOâP9¾OÇOÔ_Sò•—–ø}U÷2iÓ•¥jœ$Yf”!„,N –ÛF«½²X† ¢£0E_0%£4éø‰ú«Ê@ˆ§1-u)ŠI/­«Òˆ"„Bø"Æ:ˆåŽ Ø¶Ñ£Æ á3¿ÀÚ@*1,â oSϨ¤”'¥³Ié×I —FÌ›Ëû¨<äŠÖõY22ËN«Ì #g59x‘—ß&ä}ÞåoÙz[ç@ì>8@ø@¢µÜÅJg +5C¡= Ñ‘ûð™_€uëÇ'ŠýøwÜMVIîòÂLrý¦¡A¥_ö…5&âªKŸåJR>¢²M{KjÒ[NM¾í4/²þâ~’ò#óB&Ýô4‘4™êúEUwªo®«LëL‹Ì[° 1W×Gu¬·yíöÒ亶ÝÂÚÁ«6ÏÁó†6«5¢ |šÂŸä&ëÞõ´{Ñkqƒ…YV´M¼¶îüÅÓ–¦<%%K¹4W4ʤ3K&2ÆRSÕYoó$Ã:ÒšVϲêg“”d´°]‘¦sË›ß%åîº+¯ýø“ÏWg($)ây#ýIJ¼Ž2O€4AAŸ­ê‡µÌ¨·NZª–u§Î”ñ¶Ùyk“i2I3¼dåWÔ’¿xÛËšIRiCM˜m›‡úÉYÍúg5eÚ™éô䵿Yáá?_Y\Û£ÀȤéFBÒgb nY pü£û@œÅB÷áWezæ©MÊl’WqkÒ¿Ìyn’â΋?/½ÑY7Á³šMëÓ«”³® tÒ¨RÓÇH󧛞"é4ÝCKšÈ¿õîÊâªý= I³4HŠ êècʸŠÂØÄu²IÊtÕ›4UFždÓ•3)ó:dÖ$tÖd^lo›³0Û¦k,pV³Yñ5}V3o9›jzš¾ŒÊPMudM꛴ɱ¬4š6¸¡˜¼Š*uʾ‰Æ`“7Öë¦cÞf5«¨¿&NSMgÞ¬1ßÌLæŠ$…Øô~ƒ&m*eÇØ|•eT¢¨k¤•9+¤Ó¦›X‡8«ÙÜ46mV3mVÍD:UÓþX­= I˃ÒN=ŠÿÏ›Aà²#ÒTÛ„Õóã_ÚúMU#Jöz•Ð<æ51=‹ø€”y1a™þ‹šª{|ª|iJ8ó*gÓi4]uÓ“çG7:éIÚÓÀ™Ú|´g’Þ‘·ß@ö¤$ëÖZ– —K›™“Ed©¦M§=±AÕX(ë„”´‘ S'M-ÕRM£Ìºô&Él^ŠÌêpVhþŒ|ÖknÒiº¿cÿY¢¡ «„ç¹Iº½–ö[% ²˜Æ‚ì}•‘Õ{y›èt—E S6­¦e®’™òQÝŒg"?E×Ъ„+S®ª2#åNd±š¤”È()MPòÒŒð´cCu*ê~YZŠò,ee¦Gw±ÉðÈ­¥G\D!³Á¢= £3-:3.ºþãþÒ »,7YqQÊL,A‰/Ñ­Wy³qEÊÎD×-ç¢i,Zÿ«’™L:³ê›NzLÔßEÄØffž`D!ÍTœg923J¦gêŠ,+ꦮÙ6Ù ÇœÕT“EÑå”uÔ1•r-2«YÔJzf©?œ CAæ-Ì„BÈ"ÀÑIÂúBh($ EîB!TÉ¢ÁzAæ×P8ò1JŒB‰)~eœvUW>¨ÈÒX$DÏP „BH¢’]äþ¬äƒP–d±°)B!„BHÎ(¹DçÅdE^f¦;Ŭê//²oz΋[ö|w•sÏuòÊ9B!„†!F—5ùE,i/;Š_3q4ôÙ¬ç”e9kå–Ôg•OV\2/ò’}ÑW‘Á—¸»¼ÖYBCš •M}º/בõ—õò&ÓJ&Bã‚̃üeWФÉtio­&df …¸Ôtܨ6œ¤×È'YälpTúËŠOÕXÐõ—D]FB’\£ù’™¡‘‰+⦎>De‰˜LZÒ”‘¨R÷—ä~ûASo%óoˆd ®¨>'ªÀ!d& …$EÀ”›¼†–fläYõl¸¤)JJчQUÖ*ã”m×*nêèCòÒ¬“§øµ¬AÖ©Ìéì»É+o]#K6 •0Õ<5ø²Ò”v•Æt’üu è"u¸®úŸUGLR»¡e›r†¡Ñ×±B«XÔe$¤=DóÜ4­ÉKn¾uóPõ ›icQgc¼®‘UÔàÒ]JhÒà+:8W…1-käÊÊÅä ‡lÛqÃwRy¡‘Ç£ª®á#ÄÄ(ϬÔ3˲ö|Š*jº#YQIÊXÑ÷¼ô!Tää"3ÃP…¬uEÙxóò¬jð©¦I7ݦŒiU»êvÔ´Qý¤þ¾h¿Oˆ ßÌœÔQ°²EëY™8™5ø³ ÀVÕŽÙ‡Ì,;ÊØD~š´ü(k0…ƒ „†‚â(!evàM «Êé몧Êçuï¡¡G7»o—9v”}!#¹ôˆRTÙUQg¹¾™N»Ž‚ ²ö¾ªü4­LÙ§3ô¢B›îÃTщƒ†YhCAfMw7Ü£@êVÜòŽñ­ãÁ§ÚVæÁ ËsÓ´>$/=:é­Úp&d‘ûþªû?¶GÒt\=í¤ëFÆ=Q©›ªÊTÓêV•ï©jÚ]¦œŠº©£ÉK³‰ »ñpdN™ibÝÖ}‹zSú˜²N=’/©®ë¤©n«®Û×mªGÊÎ*Ⱦp­êöDH­†‚lC(êF÷Ô—JcAå~õÔT*R¯Ë¸§â^µ’îÍbb"ߪé)£~ÖmÔ—eè™8_÷]ÃM×h–]_¥1]…Akjp%ÏXÐCå(ÖYkׄ†­VB!µõY’ #K7 Sy.jð•a„š6¦uLÊZu ¨è}]ùQÏ"MÀØff„B&î•ãþ=ÖIê`¤ ´ffaM7!„|.]º€Gý=-¿GŽÜL6XQ£ò¸8°œI£ …"•’•™BšÃñãÏá#þe8® Ûí@øÛ|?¶GÄ‚ïá{>ü €,ËÆo?üÈÂ*eM,ã!¤Q†!„ù`0Àïm¡ÛõÑZÞÛ €0@(,Ë‚–øžÏó0Ðét +¶³n,4-Ï4 !¦±)BYlßGxÞ@À,–mO¿Çò0èïP`„BCBÈÂ#c! `ÙÝ©7÷" nš%„ ³ O EꂊŸñH«jÇDýrm1lÍÊÓòÔ·½nd}‘X´í¦¥¥Ž4Æû†¼4Îc=O’ûJöWTöi(ë`){6,&&^¾Ôä¾o<“g¹{h®Œû$¥4©ýë ”©8³¢ÎÀ² 3c(ħ“¦aÓ¦ eGo¢aÇÃQ ›,–‘ Úá¨øIr+ûW'«®'¹Éj£Ym8-ì"m¸HÚtÒ«*«¢ùNÊ_Z˜%7SË*²Ò&~wípæýõC77äóê†N9/¢’R´­«<‡‹´·²„Òò§ÒO™Î«ªLÊîÛ²òVTç“-ë¼¥dª}˜jžd—u3OK‹Ý"3Ú©&^¼ÓÕ}ùKZ\ñk´DI‘~•õ'Ú^òâMªÿ2m+Ï_žSmX'm¦ÂÑ‘•J¾ÇÆa‘º£#‹èý,·ªeØÛ<…Îê¾ÄY…~ï,ú;;¸pñ‚±6Zf]61x`²œMömªòP©Yƒ :íX§¬L ‰ÇT^UÂÊÓiLÄ_¤çé|EÚiVšLæÉDL··YÀ6ÕˆÊ@ÚšY6dd—ÈÌ\ÈtJu-[¨*m²áVÕw$Å-ó@1YN³ØOê(üUÔí¦.û1)2fU‹Ì¼ÊnfÎJ³L;4ÕgÉÊNU§©»o“ÕùòÒXçžLdäܤgkU¸Uv`Tî ôh]JF^ÇYw®*=ì»U¥sÖóªÒÖ›n0’ùmƒ‹ÐÞf »ÌFÞ„“©«“¨{}bÞH\^-³ ëy({BMQÙWÝwÕyTî¬öͦd¦zšN“gŠ´u>£§Î7-³¨@mo4h0Òˆãüd¬Ã`(rìaVzL§h"ßQÅ2kŸC]G@¦Å†}„þ¼þ†;ç1Ü9ßèö%#3SJ~ÝÆBÚÒ‡"m}ÞOT’i‡³öL™Å£bãÇÏê(»©gë u­ &¤êOÖ<¯]ÔÑQ˶Ѫ۰êI,ª'GÍRßÅA•êe6o2WiëM1‚û‰Ejosm(¤)I¬ôdž;زF#ó ƒDשB®e¥­®<‘K“Ó|ß›¸B ¿³Sj­¢í}þí_L÷ e¥UçÙ[EWFm¢Ï*Ò·˜u99ÖµÌgFýnyÔÕ§7í÷(B!„ù†:ßbc›¬HÉ'„B™ã:ßb µôhÞÖ_B‰*Ë{®õ{g)Bê|4´+!¤üšBØ‘&—%Ëz~±)B!„B B!„B B!rt×§¾Ga¹{ë‡n Ñ@õÍó„Ì´¡°(š w¶Ë.é ¬¦ýÄý•YgÊ¿¬öÑ´tÏ{M‡jšz›§2ï›~áZe/óÆÙYk¤Ù픹3ØðIÓëC†“LýÐñ“䯉o¯3=QùPᘠBÑK¼ÎS)Ю¸Ù—Ì(.+<¡aa¥¾‚=«®WyŽt4.ž_ME ¬4]~kó6,«3¹x›ð=0ðÀðοñƒ8~ü9íÈŽ¹½W¾F©“…áð‘¢H&ûV—ñïÿì%î#GnÆß¾÷ÞBa8p î»ï^;ö€gðío?‰ßú­OâØ±Ç"÷ö*gyë×UÖ¸›Ø£æÎÔš~™k&ó¬â¯èá &å«#Óò50¢ƒCño•xuË…,_ü£¸ûî»°¼¼Œ¥vn+ËËhµÛ°œF‹…쿟üí‡ñÁþ,Ž}dÏý×ýà{· ”fŽúňÀ÷•2å¸.–––ðÑ_ýu\Ùø¹_ºŸ%m˜‡>ô>ôЇ´¿‰Y~ðóøá·Þ 犻( ’É£þžV¿Z„hŸḺˆJ]Óó¬›>*脌P^z<ßG ض#å'D¸g=ëK_ý|ßc ââÖ Ð÷óÿ…Xø°laÜòæw¾ôïžÀþØ»(RJ¿Z„¤>¹‰¤- 4¥Àé.©"]e…­›ö<uˤ¬|©øåÒSBCaÛ¶áØ.Ü–+ÕѶZmØngêÚÕ×Ü‚íÞ&KÀ-×)ô}ààa ±ˆ¡ Bô¶Îïy@,µÛ)¥_-Ô_$ôÉM7¢ÿ³Ü¤)ii›æ£'ô¥…•w-+Þ:ól:íyþš$¹•™n•r!d. ÇqÐn·±´¼ Û¹<òeÙÝä7zZÂßžŽøªë±6Ø8«`„¥–]è{íªë(Äb½>Ö]ƒÞæôÛk;ÝeCÌ÷«’$úOé“ë0d¯ËŽîê¸1}­ª°U|]¿&òÜ4™”)Ýz­âF –¸®;z˜Y–µyE,ÁÞõ·ƒmÀÙ>,‰º±Ê üØ@»½4uyey™²!†ûÕ¨¿e„a?ßX˜¸Éè“ !„¢†BÌÔ…e/O=´¦n‹`…@쵊}ï²@À™…‚EQè~ŸBÔÅi”¹0Øs«Å¥GÄt¿êoM».+ü–»šnPŒgÒúdB!¤¨¡àûÚm ¶»Oâ¡ "Y³µB@»:!•Umú½!…¨‰pB@ì¡UFˆ¹~5~„ì¡“eHi}2!„RÔPpaJ aú)¸<&¼a¥Q«¢Â]Z¶ ÀÂbfS@Äh¿ªó6稱 üK<™¥Á°\(B²¸té}ô÷´ü9rsù†ÂDÏ÷6á´Ö2Ý!`YÖ®ò4}Ú„×߆e!§À ve¨ûÍ2Ðg8؆eYh-waÛ- D™~µhøã¾9Þ'Bi>Ç?‡|ø—á¸.l·áo#ðý©S¼ ¾?„ïùðƒB°,¿ýð#Õ 0Ø>‡¥Î©÷}Ï›Œ\ùþôÒ–ógO°´M*AXè{ãÜ) ± +5¬¼Š‚ …ÈëWã³VBrQ¿w6³O&„2#ωÁ~o Ý®Öò>Øn0YV: ·,À÷|xž‡áp€NGïÝ9ʆB«ÕB«ÝÆÎvžçãÂÙ±~èÀ…³/N¹ÝÙÞÆî´Ážp,Û Bðä ô~¡oBH}¨ô«ýÔÿq·Ñ0&îRú云9Ç^÷ÅXIþ’¨ê ¾E—~ÍãÒ±ªòTfud!«ô«¦IF¾¦dW…ŒdO=Ê’•lþTdžf4éÄ!ÓF B! 6òYU?²þÊLwé1•o]7EÃ6U¶ªñ5LÓþgL&ËÎdœºõ¬ìr3Y7LɆ!„²àp³5afŸß”®¨ö…k„BÈ"A#Ðx`ßO‰`9‰{ú;;4!„EQèhÀ¢Æï,@Å<Ö B!dF BùÔ!§Y“-ëB …ƒ¯Åùó'¯GIr“æVƉ4649˜”Å<ÊB!dѱ¬å=×ú½³õ YJm’‚™§t&¹_DE•Š9!„BiÊof>þ¤’R«ªSa&„ùgÞ€ºoimÚËÒ(+BšÅLìQÈ[Î$»Ü)>S¡îùó' û/KY39Ñï*ÒI!dþ‹EXÎãq јQUjÇŸ¢ ñøt&#ê&ï~ž‘ ®NºÆ÷’üëÈ$/YþuóI!d~¡"LÈìÒ];œú…åî!¬º¡pÆg’rÕ ÍQ÷q¿IÊl–û´4è„«z?oÞH½ŠTú¢ù „²ˆ.çHRZ“–{ÄÝÉ…˜¬UãQi•ãÓF²£×“ÂÕ‘_^˜Iî£ßºr’•³)ÙÆÃÉ›-Èʧ©úFHQz›§Ð];œzÿÂÙqáâ…f eìI(:Ÿµ©¨Q”•¯è¬J^>¹ä‡²ˆFBšÒªª0 7ɉ<¨\ËRdMå3/î¼xd”l]ã§,Ùê”mZ>M–!&E/qV¡ß;»/\KR´UGÓÓÖð WEù_Ô“œ!$OËRÎL(WIJZ<ž,7EÃ6•ªäWUZM”›L¸ºe«›Ùtb²]…á6,«3¹x›ð=0°ßžA¨*ØIKkò–ö4)ý„BÒ±¼kó E•Y“J&O9"d>"€ïùA„!BÑ]÷/ÜV ­– ˲àØúêþL I›oUî§ EÃß—IG2Ð ›BêT&£Ÿ¤ÑÚ±R¦xÆÃ˜ÕÄHtžüšT–óZgi‘rê™@ ú}xƒ¼ÁÃóð†Cøžßó°ÒébÿÚ~´—–Ðrõ]z”·Q¶H˜Ñ¥BÑ¥<ñûYqF—!©†›tÄhV¼yG’‘AZ\iiÕ‘/!„4Aá’U&£Ëˆ¢ÿã¿g1ÿºJu“”ñEZzÃ%F¤l×,+ ‚Bßà8ÎT]\[_-CÒDÛPÈRÆ‹†‘ç.ïÖõ¼•TÒgjƒ²Œ;Õ¸²N[*šoBiª1!»þ¼éŠ«‰ Äd6^B²xË›¿}ì7´ý*×Ý^÷ŽðÈ ·¡?èccó^>s Ïÿù¾ â›eO/"„Eã>€cÇ`cã ¾ýí'ñ[¿õI;öN:EBHƒøàG>²çúë~ð½ˆÛ.Å•ŒÊ’&BYtüË{®Ýwß½ !„Ì04rŒB!Ù=úxà{®B¡¡@!„Æ…@!s†MB!„Bh(B!„Bh(B!„Bh(B!„Bh(B!„Bh(B!„Bh(B!„Bh(B!„Bh(B!„BšŠÖ›™¼6ñúùó'+ÏÀÁƒ×Ö/!„B!4$*í„B!„ÌF—?2u¶B!„2;¸UE5 Òf#’ ÙpÒf38ËA!„BH͆‚¬²ž÷_Å!„B!¤A†‚Ê @üúx‰ÒøºÌˆV8Iaf „B!„’ …²—ùp¶€B!„ò9pೆBšñd,È(ýq7:££ñs6B!„|#á¾ûîM6¶zÛ¸õöñ–7ÿ5!~îþŠñä)ìTê !„B©ÏHH² lÇqðÌS/à¡;;ƒÊVæÒ".["„B!DÎH8zô$Ù¶c_~•ÂÎNßx"’–ÉÌ È,EÊÚPÍ B!„Bò„®A’MàÚŽ°, ý~qC!i@\ÉÏ:½(~-~:R<ÎB!„¢o$Üwß½H² \ÇY,é…¼Ñú¤û¦ü$Q¸ßB!„y#’lÛ±ÇÖC9K!„B!Í5Ž}I6kïZ0´ô¨.¢/^#„B!„È \ƒ$›ÀuÆë‘`Uzê‘ih B!„¢n$Üwß½H² &§Y3>£@!„BQ7 É&°7_yitÓq¸GB!„3Ž}I6 †!„B!‹e$8p ’lkßmï _ÿª[±±yÖ×ðµ'¾»Ž\‡îjÎ*ºÝîäÓY]E·³ûµ‹ng¿ú«¿ÆÒ „B!¤a|øÃÿ½í-ô¶zèõzèm÷°½µ5ú½ûÙÞ½ÿÍç7· ÜUœÇ`x=zÛ=,/µ/ž8×mÁuÛ»ßÑß—¿ÿ«Þƒ+]ÇR „B!¤iXÀçýCøþ¾ï%|_þ½ Mà@ËmÁ°ÓàõwÝ#÷Wþìk8wö%!„B! ã+ö5ÀÜVn«  ›é^1± ÀÝ Z¸pé"VV:°, ›&Žûƒì= ý¯péâY–!„B! ã?}õëØ8¿‘éfyiyêÿÊJgòÛZ»åÍáøÏpàÁó\µ6:Gu+he¼u©ÃëKB!„†qêB€Õ}Ë™nVpf3@ËuÐ^º¬ÿÿÿÏR߄ĩIEND®B`‚debtags-1.12ubuntu1/doc/debtags-man-hooks0000644000000000000000000000531311744534444015267 0ustar DESCRIPTION end |\fBdebtags\fP manages package tag data in a debian system and performs basic |queries on it. |.P |\fBdebtags\fP can be used to perform basic queries on the Debtags system: the |vocabulary can be queried with the \fBtagshow\fP and \fBtagsearch\fP commands; |a package tag database can be checked against the vocabulary with the |\fBcheck\fP command; the whole collection can be copied to standard output to |be processed with \fBtagcoll\fP or other tools by the \fBcat\fP command; |packages can be searched by tags using the \fBgrep\fP command. Finally, tags |can be listed with \fBtag ls\fP, edited with the \fBtag add\fP and \fBtag |rm\fP, and submitted to the Debtags database with \fBsubmit\fP. |.P |The \fBupdate\fP command can be used to download extra tags as listed in |\fI/etc/debtags/sources.list\fP: see the contents of that file for more |information. OPTIONS end |.SH EXAMPLES |Here are some example invocations of \fBdebtags\fP: |.P |.nf | # Update the package tag database | debtags update | | # Show apt-cache informations about the mutt package, | # adding tag informations | debtags show mutt | | # Search the tag vocabulary for mail-related tags | debtags tagsearch mail | | # Output a list of all packages which can edit raster images, excluding | # shared libraries and dummy packages | debtags search "use::editing && works-with::image:raster && \\ | ! (role::shared-lib || role::dummy)" | | # Show all mail clients | debtags search 'works-with::mail && network::client' | | # Output the collection of all mail clients, ready to be reprocessed via | # tagcoll | debtags grep 'works-with::mail && network::client' | | # Produce an easily navigable hierarchy with the collection data | debtags cat | tagcoll hierarchy | | # Produce a local tag patch | debtags cat > work-tags | ...edit work-tags... | debtags diff work-tags > my-tagpatch | | # Submit the patch | debtags submit my-tagpatch # Edit the tags of a package (the patch will be stored in ~/.debtags/patch) # then send your changes debtags tag add debtags implemented-in::c++ interface::commandline debtags tag rm debtags devel::buildtools debtags submit |.fi | |.SH FILES |.TP |.B /var/lib/debtags/vocabulary |.br |The normative tag vocabulary |.TP |.B /var/lib/debtags/package\-tags |.br |The system package tags database, only kept as an easily parsable reference. |In the same directory there is a the binary index with the same content, used |by applications for fast access. |.TP |.B /etc/debtags/sources.list |.br |The list of sources to build the package tags database from | |.SH SEE ALSO |.BR tagcoll (1), |.BR axi-cache (1), |.br |.BR http://wiki.debian.org/Debtags |.br |.BR http://debtags.debian.net debtags-1.12ubuntu1/doc/tagging-guideline.rst0000644000000000000000000000132011465320073016137 0ustar ============================== Guideline for tagging packages ============================== ---------------------------------- Tags that should always be present ---------------------------------- * Every package should have one or more tags from ``role::``. * Every package containing software should have one or more tags from ``interface::``. * Each package containing software or libraries should have one or more tags from ``implemented-in::``. ---------------------------- How to add to this guideline ---------------------------- This guideline is maintained at:: svn://svn.debian.org/debtags/debtags/trunk/doc/tagging-guideline.rst Please send patches to:: debtags-devel@lists.alioth.debian.org debtags-1.12ubuntu1/doc/main.css0000644000000000000000000000237011465320073013466 0ustar /* Generated by CaScadeS, a stylesheet editor for Mozilla Composer */ BODY { background: #fffcfc; color: black; } table { background: rgb(255, 252, 252) none repeat scroll 0%; font-family: sans-serif; -moz-background-clip: initial; -moz-background-inline-policy: initial; -moz-background-origin: initial; } h1 { border-bottom: thick solid brown; color: brown; margin-bottom: 1cm; } h2 { color: brown; } a:active { text-decoration: none; } a:link { color: brown; } a:visited { color: rgb(64, 64, 64); } p { color: black; font-family: serif; font-style: normal; text-indent: -0,5em; margin-top: 0,5em; margin-left: 0,5em; margin-bottom: 0em; text-align: justify; } p.close { border-top: thin solid brown; color: brown; font-size: small; text-align: left; margin-top: 1cm; } table.close { border-top: thin solid brown; margin-top: 1cm; } td.close { color: brown; font-size: small; } a.close { color: brown; text-decoration: none; font-size: small; } a.sign { color: brown; font-size: small; font-style: italic; text-decoration: none; } h3 { color: brown; } h4 { color: brown; } debtags-1.12ubuntu1/test/0000755000000000000000000000000012100512140012221 5ustar debtags-1.12ubuntu1/test/__init__.py0000644000000000000000000000000011716160122014333 0ustar debtags-1.12ubuntu1/test/test_pyflakes.py0000644000000000000000000000103211716160122015457 0ustar #!/usr/bin/python import os import subprocess import unittest class TestPyflakesClean(unittest.TestCase): """ ensure that the tree is pyflakes clean """ def test_pyflakes_clean(self): basedir = os.path.dirname(__file__) if not basedir: basedir=os.getcwd() basedir = os.path.abspath(os.path.join(basedir, "..")) self.assertEqual(subprocess.call(["pyflakes", basedir]), 0) if __name__ == "__main__": import logging logging.basicConfig(level=logging.DEBUG) unittest.main() debtags-1.12ubuntu1/test/test_hw.py0000644000000000000000000001574312100512140014262 0ustar #!/usr/bin/python # debtagshw: lib to detect what hardware tags apply to the current system # # Copyright (C) 2012 Canonical # # Author: # Michael Vogt # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA from __future__ import absolute_import import logging import unittest import tempfile from mock import Mock, patch import sys from debtagshw.detectors import ( Detector, DetectorCmdline, ) from debtagshw.debtagshw import ( DebtagsAvailableHW, HardwareSupported, ) class TestDebtagsHW(unittest.TestCase): def test__check_hw_debtags(self): hw = DebtagsAvailableHW() # run over all hwtags that we support for hwtag in hw.get_supported_tags() + [ # TODO "hardware::camera", "hardware::gps", "hardware::input:joystick", "hardware::memory:1GB", "hardware::power:ups", "hardware::storage:floppy", ]: hw._check_hw_debtag(hwtag) def test_keyboard(self): # this may fail on a buildd with no keyboard hw = DebtagsAvailableHW() self.assertTrue(hw._check_hw_debtag("hardware::input:keyboard")) def test_laptop_detect(self): d = DetectorCmdline() d.LAPTOP_DETECT = "/bin/true" self.assertEqual(d.is_supported("hardware::laptop"), HardwareSupported.YES) d.LAPTOP_DETECT = "/bin/false" self.assertEqual(d.is_supported("hardware::laptop"), HardwareSupported.NO) def test_scanner(self): f = tempfile.NamedTemporaryFile() test_bytes = "device 'uri' is a foo bar bar" if sys.version > '3': test_bytes = test_bytes.encode() f.write(test_bytes) f.flush() d = DetectorCmdline() d.SCANIMAGE = ["cat", f.name] self.assertEqual(d.is_supported("hardware::scanner"), HardwareSupported.YES) d.SCANIMAGE = ["cat", "/dev/null"] self.assertEqual(d.is_supported("hardware::scanner"), HardwareSupported.NO) class TestPublicAPI(unittest.TestCase): def setUp(self): class MockDetector(Detector): TEST_TAGS = { "hardware::scanner" : HardwareSupported.YES, "hardware::printer": HardwareSupported.NO, "hardware::gps": HardwareSupported.NO, "hardware::testme1": HardwareSupported.NO, "hardware::testme2": HardwareSupported.YES, } def get_supported_tags(self): return self.TEST_TAGS.keys() def is_supported(self, tag): if tag in self.TEST_TAGS: return self.TEST_TAGS[tag] return HardwareSupported.UNKNOWN self._mock_detector = MockDetector() self.hw = DebtagsAvailableHW() self.hw._detectors.insert(0, self._mock_detector) def test_get_missing_hw(self): # test tags = ["hardware::scanner", "hardware::gps", "hardware::xxx" ] result = self.hw.get_hardware_support_for_tags(tags) self.assertEqual(result, { 'hardware::scanner' : HardwareSupported.YES, 'hardware::gps' : HardwareSupported.NO, 'hardware::xxx' : HardwareSupported.UNKNOWN, }) def test_generate_tag_expressions(self): res = {} # test for supported, tags in self.hw.generate_tag_expressions(): for tag in tags: res[tag] = supported self.assertEqual(res["hardware::testme2"], "yes") self.assertEqual(res["hardware::testme1"], "no") class TestCasePrinter(unittest.TestCase): def _make_cups_mock(self): import cups cups_mock = Mock() cups_connection_mock = Mock(cups.Connection) cups_mock.Connection.return_value = cups_connection_mock return cups_mock, cups_connection_mock def test_printer(self): cups_mock, cups_connection_mock = self._make_cups_mock() with patch.dict('sys.modules', { 'cups' : cups_mock }): hw = DebtagsAvailableHW() cups_connection_mock.getPrinters.return_value = {} self.assertEqual(hw._check_hw_debtag("hardware::printer"), HardwareSupported.NO) cups_connection_mock.getPrinters.return_value = { 'deskjet' : { 'print-info' : "some info", }, } self.assertEqual(hw._check_hw_debtag("hardware::printer"), HardwareSupported.YES) class TestCaseOpenGL(unittest.TestCase): TEST_DATA = { # these are the strings returns from pyhton debtagshw/opengl.py # (vendor, renderer, version) ('intel' , ( "Tungsten Graphics, Inc", "Mesa DRI Intel(R) Ironlake Mobile", "2.1 Mesa 7.11")), ('amd', ( "X.Org", "Gallium 0.4 on AMD REDWOOD", "2.1 Mesa 8.0.1")), ('nouveau', ( "nouveau", "Gallium 0.4 on NVC3", "3.0 Mesa 8.0.1")), # binary-only ('fglrx', ( "Advanced Micro Devices, Inc.", "ATI Radeon HD 5570", "4.1.11251 Compatibility Profile Context")), ('fglrx', ( "Advanced Micro Devices, Inc.", "ATI Radeon HD 5570", "4.1.11251 Compatibility Profile Context")), ('nvidia', ( "NVIDIA Corporation", "GeForce GT 440/PCIe/SSE2", "4.2.0 NVIDIA 295.20")), # ensure the random one is right ('unknown', ( "xxx", "yyy", "zzz" )), } def test_opengl_driver_detection(self): from debtagshw.opengl import OpenGL detector = OpenGL() func = "_get_opengl_vendor_renderer_version_tuple" with patch.object(detector, func) as mock_func: for driver, mock_data in self.TEST_DATA: mock_func.return_value = mock_data self.assertEqual(detector.opengl_driver(), driver) if driver != "unknown": opengl_version = detector.opengl_version() self.assertNotEqual(opengl_version, "unknown") if __name__ == "__main__": logging.basicConfig(level=logging.INFO) unittest.main() debtags-1.12ubuntu1/setup.py0000644000000000000000000000023511716160122012767 0ustar #!/usr/bin/env python from setuptools import setup setup(name='debtagshw', version='0.1', packages=['debtagshw'], test_suite="test", ) debtags-1.12ubuntu1/loader.cc0000644000000000000000000000611311701663676013053 0ustar /* * On demand loader for data files * * Copyright (C) 2003--2012 Enrico Zini * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "loader.h" #include "cmdline.h" #include #include #include using namespace std; // Initialize the environment with default values Loader::Loader() throw () : m_apt(0), m_debtags(0), m_vocabulary(0), _editable(false) {} void Loader::editable(bool val) { _editable = val; } /// Access the apt data provider ept::apt::Apt& Loader::apt() { if (!m_apt) m_apt = new ept::apt::Apt; return *m_apt; } /// Access the debtags data provider ept::debtags::Debtags& Loader::debtags() { if (!m_debtags) m_debtags = new ept::debtags::Debtags(_editable); return *m_debtags; } /// Access the tag vocabulary ept::debtags::Vocabulary& Loader::voc() { if (!m_vocabulary) m_vocabulary = new ept::debtags::Vocabulary; return *m_vocabulary; } auto_ptr Loader::make_coll_printer(const DebtagsOptions& opts) { auto_ptr printer; if (opts.out_names->boolValue()) printer.reset(new CollPrinter(CollPrinter::NAME)); else if (opts.out_facets->boolValue()) printer.reset(new CollPrinter(CollPrinter::FACETS)); else if (opts.out_quiet->boolValue()) printer.reset(new CollPrinter(CollPrinter::QUIET)); else printer.reset(new CollPrinter(CollPrinter::TAGS)); return printer; } auto_ptr Loader::make_package_printer( const DebtagsOptions& opts, PackagePrinter::Type default_type) { auto_ptr printer; if (opts.out_names->boolValue()) printer.reset(new PackagePrinter(PackagePrinter::NAME, apt(), debtags())); else if (opts.out_full->boolValue()) printer.reset(new PackagePrinter(PackagePrinter::FULL, apt(), debtags())); else if (opts.out_short->boolValue()) printer.reset(new PackagePrinter(PackagePrinter::SHORT, apt(), debtags())); else if (opts.out_quiet->boolValue()) printer.reset(new PackagePrinter(PackagePrinter::QUIET, apt(), debtags())); else printer.reset(new PackagePrinter(default_type, apt(), debtags())); return printer; } auto_ptr Loader::make_package_printer(PackagePrinter::Type type) { auto_ptr printer; printer.reset(new PackagePrinter(type, apt(), debtags())); return printer; } debtags-1.12ubuntu1/update_report_on_alioth0000755000000000000000000000056011465320073016121 0ustar #!/bin/sh echo "Generating the report..." src/debtags todoreport 30 > /tmp/todoreport.rst echo "Converting to HTML..." rst2html --no-doc-title --stylesheet=main.css /tmp/todoreport.rst > /tmp/todoreport.html echo "Uploading to Alioth..." scp /tmp/todoreport.html alioth.debian.org:/org/alioth.debian.org/chroot/home/groups/debtags/htdocs/todoreport.html echo "Done." debtags-1.12ubuntu1/IDEAS0000644000000000000000000002754411465320073012045 0ustar Miscellaneous notes ------------------- Some analysis techniques: Consistency checks on facets that should go together:: # Show all packages which have a tag in uitoolkit but not a tag in interface # (same can be repeated for hardware and hwtech, devel and langdevel) debtags facetcoll | grep uitoolkit | grep -v interface | cut -d: -f1 | sort | uniq # Count the number of facets debtags facetcoll | tagcoll reverse | wc -l # Get a list of toplevel facets in a facet hierarchy debtags facetcoll | tagcoll hierarchy | cut -f2 -d/ | cut -f1 -d: | sort | uniq Interesting links: * http://www.itconsult.it/knowledge/articoli/detArticoli.asp?ID=18 TODO-list items being worked on ------------------------------- These are the TODO-list items currently being worked on:: noshadow> enrico: is there some way as maintainer to regulary (i.e. low efford once properly configured) look at one's packages' tags (and best to also edit them) without needing root, something newer than etch or something doing javascript? enrico> djpig: indeed (wrt the 15000 packages bof ideas) enrico> noshadow: comment the apt line in /etc/debtags/sources.list and uncomment the alioth line enrico> noshadow: then debtags update will get the unstable tags enrico> noshadow: then debtags-edit, or debtags tag add, debtags tag rm, debtags tag list... enrico> noshadow: and debtags submit enrico> noshadow: without needing root it's partly possible but a bit tricky enrico> noshadow: it's never been requested before and it'd be quite a bit of work to make it work properly enrico> noshadow: not too much work: getting sources from ~/.debtags is already implemented; only, they are merged with the system ones enrico> noshadow: one'd need to implement a ~/.debtags/sources.list that overrides the system one - Smart querying: 1. full text search 2. get the n (=3?) most recurrent tags (possibly multiplying their cardinality in the result by the tag score, to add a user-defined weighting) 3. Add all the items whose tagset contains the n most recurrent tags 4. Allow to AND or AND NOT for tags, possibly allowing the user to choose among the most recurrent tags Resulting query: ((Full text UNION "similar" items) UNION and items) INTERSECTION and not items - Allow to have ~/.debtags/vocabulary merged in - Try to get rid of the Singleton Environment - Remove throw declarations altogether except when the function obviously isn't throwing and won't be throwing anything. - perl bindings crash at shutdown: it looks like #186104: check what it was, and check how it has been corrected - Does not seem to be the case: TDBReadonlyDiskIndex's destructor reports garbage in the size of newItems, even if nothing has been ending up on it (that is, ~/.debtags/patch has been moved aside). - Remove all PackageDB-related functions: libapt-front should be used for that. PackageDB itself probably needs to stay for the APTFilter in Update. - Impossible now to detect out-of-space errors because TagcollSerializer isn't checking the return code of fprintf (changing it would break libtagcoll binary compatibility) (fixed in libtagcoll, should handle it appropriately in libdebtags) - Sending mail to central database aborts if the mailserver fails - See if mor standard c++ features can be used use of functors (``operator()``) The Debtags::Matcher is a good candidate for this one, having the same implementation like the match function. With this the code in TagSet::getFiltered could be implemented using a the copy_if() algorithm. Uhh... the above is hard to read. I mean the operator() could be added to the Debtags::Matcher() - where it could be used in std algorithms. - todoreport should mention that the number of packages has been limited - specials: given a facet A, for all other facets Bn generate a list of packages that have A and not Bn - generate one todoreport per maintainer - debtags related does not work ("debtags -d 14 related debtags" doesn't output anything - Statistics and automated checks: - Experiment with theory: - there should never be two packages with the same tagset: if it happens, a new facet may need to be created - Make a debtags function to detect when it happens - In grep expressions, allow to use and, or or not (hiddenly replacing them with &&, ||, !), now that tags always have :: in them - Code - In debtags update, print the names of packages that are not in the debtags archive - On debtags update, filter out tag data for packages not existing in the system - On debtags update, output a list of the packages not present in the tag collection - Usare "foreign" nell'inizializzazione di automake, in modo che non richieda il changelog (e cancellare il changelog) (anche negli altri pacchetti) - Make a CommandlineParserWithCommands supporting command-specific switches: addCmdSwitch("command", ) addCmdSwitch("", ..) adds a switch that gets interpreted when no valid command is found The option parsing should then scan until it finds the first non-option argument and see if it's a command, then re-scan the commandline with the good set of switches in effect. There's a problem in this with arguments to short switches, like '-o file': `file' could be interpreted as a command and not as an option to `-o'. Could be solved by having all switches be considered when scanning for the command, or (better) by scanning once for each command until a valid match is found - debtags install: Allow to call aptitude instead of apt-get - [erich] I had the idea that people can "adopt" a keyword, looking for volunteers to review a section regularly. Future TODO-list items ---------------------- These are the TODO-list items that are to be addressed in the future:: - Try wrapping with http://www.boost.org/libs/python/doc/index.html - Make a small LRU cache of Facets and Tags in Vocabulary, so that some TagImpl and FacetImpl are reused - Update doesn't really merge different tag sources (need more info) (seems to work for me: where does this come from?) - Implement failover strategies in case the vocabulary (or other files) are not present - Create new tags / facets - Save a vocabulary patch - Make a more efficient collection container than InputMerger for the operations performed by libdebtags - port foundation libraries to libboost when possible - Merging different tag sources - Scenario: I want to edit tags when I have multiple tag sources, submitting appropriate, separate tag patches to the tag sources which are in charge of the tags that changed. - Including a local, user defined, tag hierarchy (preference::interesting, preference::useless, preference::tried...) - Add origin to facets and save a different patch for every origin - [me] It could be interesting to outsource the first tag layout of such parts to the relative communities: for example, we could ask the gnome people to provide the right tag vocabulary for gnome-related qualities. I guess they may be happy to do it (and to be kept in consideration by the Debian people), and surely they know what are right qualities in their world. - Add Extends: apt to control file (like guessnet does with ifupdown) - Allow to manipulate a local vocabulary (~/.debtags/vocabulary ?) - Integrate with APT - See if it's possible to hook debtags update after apt-get update - Patch apt-cache to exec debtags for some things (when debtags is installed) [zufus] - When adding new tags to the vocabulary, announce them to debian-devel (no faster than weekly) - Maintain an upgrade checklist for the vocabulary. cvs diff can help generating it - Since we're somehow similar to semantic web, have a look at what it is, how it works and how crossing that path can be useful - Navigazione: l'utente induce nella tagged collection una struttura a lui specifica, avvicinando categorie e allontanandone altre. Questo può anche essere mappato bi o tridimensionalmente, con animazione. - Erich: This to improve in synaptic-debtags: - make the tree less deep, don't make subfolders if only < 10 packages are left etc. - show tag descriptions. - handle "virtual" tags in the tree, such as "ui", which basically is a union of "ui::gtk", "ui::qt", "ui::ncurses" etc. (virtual tags: tags where all packages are in a subgroup) Things to improve with debtags in general: - more tagging. Too many packages are still untagged - inconsistent tagging. New tags were added, so many tagged packages are incompletely tagged. For example many applications don't have a user interface specified. - inconsistent tags. some features have tags, others don't. - structure is becoming to deep IMHO. but if you want to keep the number-of-results low you need such a deep structure. - [Javier Fernández-Sanguino Peña] Have a look at TFIDF systems (implemented in bow) to use them to find out tags. The suggestion comes from Javier Fernández-Sanguino Peña , who's happy to help with problems understanding TFIDF - Ask for someone in the i18n team to join in, to help with the design of the language dependent files with tag names and descriptions. Discarded TODO-list items ------------------------- These TODO-list items have been discarded:: = Note to the vocabulary task force: "mail,net" is a single tag, "mail, net" are two tags (this is an old note that doesn't make much sense anymore) = Note to the vocabulary task force: rub "debtags check" from time to time (this is an old note that doesn't make much sense anymore) = [chlunde] Don't crash when giving data about a non-existing package: it might happen, such as when using the full database on a system without non-free. Don't show the application, instead. [chlunde is working on it] (old note, fixed since long time on debtags-edit) = Consider implementing version information in Package, allowing more Package-s with the same name but with different versions in PackageGroups (can do by changing Package's comparison operators) - Consider then doing dependency computations, like PackageGroup PackageGroup::getDepends(); PackageGroup PackageGroup::getRecommends(); PackageGroup PackageGroup::getSuggests(); PackageGroup PackageGroup::getConflicts(); ... = Allow more flexibility in Package representations - Make PackageImpl somehow more public, so that people can subclass it and write Package-like classes with more informations (as you can't subclass Package, being it a smart pointer) - Make PackageSet a template, to which you can pass Package or something else - Rename Package into BasicPackage - Make a Package virtual interface = Bring in dependency info from synaptic (rpackage.h) Subversion: https://oops.kerneljanitors.org/repos/synaptic/trunk PackageSet Package::getDepends() PackageSet Package::getSuggests() PackageSet Package::getRecommends() PackageSet PackageSet::getDepends() PackageSet PackageSet::getSuggests() PackageSet PackageSet::getRecommends() (no: leave that to libapt-front) = Environment: accept the filter as const = Implement filters, searches and consumers also for MaintainerSet = Find out how to efficiently search a std::set given the package name, though: #include could come useful, hopefully, as it would come useful to see what operators are supported by the set iterator (it would be wonderful if it had tree operations...) = See how it is possible to be a base for libcapture = Integrate Maintainer info with Echelon data (from Debian LDAP database) = Do popcon researches as well (older discarded items are archived in the DONE file) debtags-1.12ubuntu1/nag.cc0000644000000000000000000000311111701671075012335 0ustar #include "nag.h" #include #include #include // isatty #include static bool op_verbose = false; static bool op_debug = false; static bool op_stdout_isatty = false; namespace nag { void init(bool verbose, bool debug) { if (debug) verbose=true; op_verbose = verbose; op_debug = debug; op_stdout_isatty = isatty(1); } bool is_verbose() throw() { return op_verbose; } bool is_debug() throw() { return op_debug; } } void fatal_error(const char* fmt, ...) throw() ATTR_PRINTF(1, 2) { fprintf(stderr, "debtags: "); va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); fprintf(stderr, "\n"); exit(1); } void error(const char* fmt, ...) throw() ATTR_PRINTF(1, 2) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); } void warning(const char* fmt, ...) throw() ATTR_PRINTF(1, 2) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); } void verbose(const char* fmt, ...) throw() ATTR_PRINTF(1, 2) { if (op_verbose) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); } } void debug(const char* fmt, ...) throw() ATTR_PRINTF(1, 2) { if (op_debug) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); } } void feedback(const char* fmt, ...) throw() ATTR_PRINTF(1, 2) { if (op_stdout_isatty) { va_list ap; va_start(ap, fmt); vfprintf(stdout, fmt, ap); va_end(ap); } } debtags-1.12ubuntu1/configure.ac0000644000000000000000000000501512232305161013542 0ustar dnl Process this file with autoconf to produce a configure script. AC_INIT(debtags, [1.12], [enrico@debian.org]) AC_CONFIG_SRCDIR([configure.ac]) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE([foreign]) dnl Make it optional to compile the docs, since it's time consuming AC_ARG_ENABLE(docs, [ --enable-docs Turn on generation of documentation], [case "${enableval}" in yes) swig=true ;; no) swig=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-docs) ;; esac],[swig=true]) AM_CONDITIONAL(DO_DOCS, test x$swig = xtrue) dnl To use subdirs AC_PROG_MAKE_SET AC_LANG(C++) AC_GNU_SOURCE dnl AC_ISC_POSIX AC_PROG_CXX() AC_PROG_CXXCPP AM_PROG_CC_STDC AC_HEADER_STDC dnl Use libtool AM_PROG_LIBTOOL dnl Use wibble, tagcoll2 and ept PKG_CHECK_MODULES(LIBWIBBLE,[libwibble]) AC_SUBST(LIBWIBBLE_CFLAGS) AC_SUBST(LIBWIBBLE_LIBS) PKG_CHECK_MODULES(LIBTAGCOLL,[libtagcoll2]) AC_SUBST(LIBTAGCOLL_CFLAGS) AC_SUBST(LIBTAGCOLL_LIBS) PKG_CHECK_MODULES(LIBEPT,[libept]) AC_SUBST(LIBEPT_CFLAGS) AC_SUBST(LIBEPT_LIBS) dnl Directory where the shared databases are kept databasedir="$localstatedir/lib/$PACKAGE" AC_SUBST(databasedir) dnl Directory where the cached downloaded data are kept pkgcachedir="$localstatedir/cache/$PACKAGE" AC_SUBST(pkgcachedir) confdir="$sysconfdir/$PACKAGE" AC_SUBST(confdir) bashcompdir="$sysconfdir/bash_completion.d" AC_SUBST(bashcompdir) dnl fn_tagdb = '$(statedir)'/package-tags dnl fn_vocab = '$(statedir)'/vocabulary dnl fn_dist_vocab = '$(/usr/share/debtags)'/vocabulary dnl fn_sources = '$(sysconfigdir)'/debtags/sources.list dnl path_cache = '$(localstatedir)'/cache/debtags dnl path_tagpatch_d = '$(sysconfigdir)'/debtags/tagpatch.d dnl path_tagvoc_d = '$(sysconfigdir)'/debtags/tagvoc.d dnl remote_tags_fname = tags-current.gz dnl remote_vocab_fname = vocabulary.gz dnl Look for apt-get AC_PATH_PROG(APTGET, apt-get, /usr/bin/apt-get) AC_SUBST(APTGET) AC_DEFINE_UNQUOTED(APTGET, "$APTGET", [Location of apt-get program]) dnl I want gcc to tell me as much as possible extra_warnings="" #extra_warnings="-W -Wsystem-headers -Wfloat-equal -Wundef -Wendif-labels -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wsign-compare -Wstrict-prototypes -Wmissing-prototypes -Wmissing-noreturn -Wmissing-format-attribute -Wno-multichar -Wno-deprecated-declarations -Wpacked -Wpadded -Wredundant-decls -Wunreachable-code -Winline -Wlong-long -Wdisabled-optimization" dnl -Waggregate-return CXXFLAGS="$extra_warnings $CXXFLAGS" dnl -Werror AC_CONFIG_FILES([ Makefile doc/Makefile ]) AC_OUTPUT debtags-1.12ubuntu1/printer.h0000644000000000000000000002061312201413037013107 0ustar /* * debtags - Implement package tags support for Debian * * Copyright (C) 2003--2012 Enrico Zini * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef DEBTAGS_PRINTER_H #define DEBTAGS_PRINTER_H #ifdef HAVE_CONFIG_H #include #define APPNAME PACKAGE_NAME #else #warning No config.h found: using fallback values #define APPNAME __FILE__ #define PACKAGE_VERSION "unknown" #endif #include #include #include #include #include #include #include #include class CollPrinter : public wibble::mixin::OutputIterator< CollPrinter > { public: enum Type { NAME, FACETS, TAGS, QUIET }; protected: typedef std::string Package; typedef std::string Tag; Type m_type; public: int count; CollPrinter(const Type& type) : m_type(type), count(0) {} template CollPrinter& operator=(const std::pair& data) { for (typename ITEMS::const_iterator i = data.first.begin(); i != data.first.end(); ++i) { ++count; if (m_type == QUIET) continue; std::cout << *i; switch (m_type) { case NAME: break; case FACETS: { std::set facets; for (typename TTAGS::const_iterator j = data.second.begin(); j != data.second.end(); ++j) facets.insert(ept::debtags::voc::getfacet(*j)); for (std::set::const_iterator j = facets.begin(); j != facets.end(); ++j) if (j == facets.begin()) { std::cout << ": "; std::cout << *j; } else { std::cout << ", "; std::cout << *j; } break; } case TAGS: for (typename TTAGS::const_iterator j = data.second.begin(); j != data.second.end(); ++j) if (j == data.second.begin()) { std::cout << ": "; std::cout << *j; } else { std::cout << ", "; std::cout << *j; } break; case QUIET: break; } std::cout << std::endl; } return *this; } }; class PackagePrinter : public wibble::mixin::OutputIterator< PackagePrinter > { public: enum Type { NAME, SHORT, FULL, TAGS, QUIET }; template static inline void printTags(const TTAGS& tags) { for (typename TTAGS::const_iterator i = tags.begin(); i != tags.end(); ++i) if (i == tags.begin()) std::cout << *i; else std::cout << ", " + *i; } protected: typedef std::string Package; typedef ept::apt::Version Version; typedef std::string Tag; ept::apt::Apt& apt; ept::debtags::Debtags& debtags; Type m_type; public: int count; PackagePrinter(const Type& type, ept::apt::Apt& apt, ept::debtags::Debtags& debtags) : apt(apt), debtags(debtags), m_type(type), count(0) {} template PackagePrinter& operator=(const std::pair& data) { for (typename ITEMS::const_iterator i = data.first.begin(); i != data.first.end(); ++i) { **this = *i; ++*this; } return *this; } PackagePrinter& operator=(const Package& pkg) { ++count; switch (m_type) { case NAME: std::cout << pkg << std::endl; break; case SHORT: { std::cout << pkg << " - "; Version ver = apt.candidateVersion(pkg); if (!ver.isValid()) ver = apt.installedVersion(pkg); ept::apt::PackageRecord record(apt.rawRecord(ver)); std::cout << record.shortDescription("(short description not available)"); std::cout << std::endl; break; } case FULL: { Version ver = apt.candidateVersion(pkg); if (!ver.isValid()) ver = apt.installedVersion(pkg); if (!ver.isValid()) return *this; ept::apt::PackageRecord record(apt.rawRecord(ver)); bool tags_found = false; for (size_t i = 0; i < record.size(); ++i) { if (record.name(i) == "Tag") { tags_found = true; std::set tags = debtags.getTagsOfItem(pkg); if (!tags.empty()) { std::cout << "Tag: "; printTags(tags); std::cout << std::endl; } } else { std::cout << record.field(i); } } if (!tags_found) { std::set tags = debtags.getTagsOfItem(pkg); if (!tags.empty()) { std::cout << "Tag: "; printTags(tags); std::cout << std::endl; } } std::cout << std::endl; break; } case TAGS: { std::set tags = debtags.getTagsOfItem(pkg); if (tags.empty()) std::cout << pkg << std::endl; else { std::cout << pkg << ": "; printTags(tags); std::cout << std::endl; } break; } case QUIET: break; } return *this; } PackagePrinter& operator=(const ept::apt::PackageRecord& pkg) { ++count; switch (m_type) { case NAME: std::cout << pkg.package() << std::endl; break; case SHORT: { std::cout << pkg.package() << " - " << pkg.shortDescription("(short description not available)") << std::endl; break; } case FULL: { for (size_t i = 0; i < pkg.size(); ++i) { if (pkg.name(i) == "Tag") { std::set tags = debtags.getTagsOfItem(Package(pkg.package())); if (!tags.empty()) { std::cout << "Tag: "; printTags(tags); std::cout << std::endl; } } else { std::cout << pkg.field(i); } } std::cout << std::endl; break; } case TAGS: { std::set tags = debtags.getTagsOfItem(Package(pkg.package())); if (tags.empty()) std::cout << pkg.package() << std::endl; else { std::cout << pkg.package() << ": "; printTags(tags); std::cout << std::endl; } break; } case QUIET: break; } return *this; } }; #if 0 class GroupedTagcollPrinter : public Printer { protected: typedef aptFront::cache::entity::Package Package; typedef aptFront::cache::entity::Tag Tag; Tagcoll::TextFormat writer; Tagcoll::ItemGrouper grouper; virtual void consumeItemUntagged(const Package& pkg) { grouper.consume(pkg); } virtual void consumeItem(const Package& pkg, const Tagcoll::OpSet& tags) { grouper.consume(pkg, tags); } virtual void consumeItemsUntagged(const Tagcoll::OpSet& pkgs) { grouper.consume(pkgs); } virtual void consumeItems(const Tagcoll::OpSet& pkgs, const Tagcoll::OpSet& tags) { grouper.consume(pkgs, tags); } public: GroupedTagcollPrinter() : writer(aptFront::cache::Global::get().packagestringconverter(), aptFront::cache::Global::get().tagstringconverter(), stdout) {} virtual void flush() { grouper.output(writer); } }; #endif #if 0 class Installer : public Printer { protected: typedef aptFront::cache::entity::Package Package; typedef aptFront::cache::entity::Tag Tag; Tagcoll::OpSet selection; virtual void consumeItemUntagged(const Package& pkg) { selection += pkg; } virtual void consumeItem(const Package& pkg, const Tagcoll::OpSet& tags) { selection += pkg; } virtual void consumeItemsUntagged(const Tagcoll::OpSet& pkgs) { selection += pkgs; } virtual void consumeItems(const Tagcoll::OpSet& pkgs, const Tagcoll::OpSet& tags) { selection += pkgs; } public: virtual void flush() { const char* parms[selection.size() + 1]; int i = 0; parms[i++] = APTGET; parms[i++] = "install"; for (std::set::iterator j = selection.begin(); j != selection.end(); j++) parms[i++] = j->name().c_str(); parms[i] = 0; execv(APTGET, (char* const*)parms); throw wibble::exception::System("Running apt-get"); } }; #endif // vim:set ts=4 sw=4: #endif debtags-1.12ubuntu1/loader.h0000644000000000000000000000423011701663704012703 0ustar #ifndef DEBTAGS_LOADER_H #define DEBTAGS_LOADER_H /* * On demand loader for data files * * Copyright (C) 2003--2012 Enrico Zini * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "printer.h" class DebtagsOptions; namespace ept { namespace apt { class Apt; } namespace debtags { class Debtags; class Vocabulary; } } class Loader { protected: /// Apt data provider ept::apt::Apt* m_apt; /// Debtags data provider ept::debtags::Debtags* m_debtags; /// Vocabulary data provider ept::debtags::Vocabulary* m_vocabulary; // Whether the debtags database is open editable bool _editable; public: Loader() throw (); /** * Set to true if you want to load an editable version of * ept::debtags::Debtags. * * By default, a non editable version is loaded. * * Of course this needs to be called before using debtags(), if an editable * database is needed. */ void editable(bool val=true); /// Access the apt data provider ept::apt::Apt& apt(); /// Access the debtags data provider ept::debtags::Debtags& debtags(); /// Access the tag vocabulary ept::debtags::Vocabulary& voc(); std::auto_ptr make_coll_printer(const DebtagsOptions& opts); std::auto_ptr make_package_printer( const DebtagsOptions& opts, PackagePrinter::Type default_type); std::auto_ptr make_package_printer(PackagePrinter::Type type); }; #endif debtags-1.12ubuntu1/AUTHORS0000644000000000000000000000135311465320073012333 0ustar Authors: Enrico Zini Many thanks to all the people around the debtags-devel, debian-devel and the previous deb-usability list for the ideas and feedback. Contribution history: 5 Aug 2005 Benjamin Mesing helped merging libdebtags1 and debtags source packages 24 May 2005 A. Costa provided a patch to fix three typos in the manpage 16 Jul 2003 Carl Henrik Holth Lunde provided a patch that fixed a typo and made debtags work correctly with packages not available in the apt package cache 08 Jul 2003 Evan Prodromou provided a corrected version of README.Debian (past contributions are not listed here because I wasn't maintaining a contribution history) debtags-1.12ubuntu1/nullstream.h0000644000000000000000000000263111465320073013622 0ustar /* * nullstream - iostream that does nothing * * Copyright (C) 2003,2004,2005,2006 Enrico Zini * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef NULLSTREAM_H #define NULLSTREAM_H #include namespace wibble { class nullbuf: public std::streambuf { protected: int overflow(int c) { return c; } int underflow() { return EOF; } int sync() { return 0; } public: nullbuf() { setp(0, 0); setg(0, 0, 0); } }; class inullstream: public std::istream { public: inullstream() : std::istream(new nullbuf) {} ~inullstream() { delete rdbuf(); } }; class onullstream: public std::ostream { public: onullstream() : std::ostream(new nullbuf) {} ~onullstream() { delete rdbuf(); } }; } // vim:set ts=4 sw=4: #endif debtags-1.12ubuntu1/depcomp0000755000000000000000000005601612232305342012641 0ustar #! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2013-05-30.07; # UTC # Copyright (C) 1999-2013 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: debtags-1.12ubuntu1/tags-current.gz0000644000000000000000000137565512232445366014275 0ustar ‹õJjRìýÉšã8²6ïã*j_Á|2<2³²¸þ÷½é€HHbˆS¤\ò«oÀ IydçïþNe8E†Ù`ÃûþNò$'=I²¦ªš:ýW×”4MIÛŠÇ_~'yú¯ ©ø3Öw¤§—ç×U[ÒŠÖ=Í“¢NÓìßÿæùŸÝ™düÍÇ·o_ǂڮ¹t¤úú¯¡è›¦¼=/(/W¿?Þ‹üB{ÆŸ2þ T×–äYÔ—¯ÿâe qÊ"#}ÑÔ_~œùÿ—þ‹äÔ}%]þN:úõ_Ó¿Òt`'DÈ•ˆÐ\RçeQSCT–5-”ÒeÑ?¿¼µ\Ô(¯¥]i/’Ö7YS¦iÑz*[MjR>™h³ø»¢„ øû½én,y/úkšÖ´‡?>çs‘}y»g¼Ý6ñôA`BÎúN»Þ(¹-ª/ßßþóû<ŒÖæÆ÷¿ÿ›ä,9F“œÞÓñÿ¡¼ÅeqêH÷œÞOþðË÷<»RƦ ujxÉ_Õ?RñûWÿ„‹™n^uÐÌúžÓ¶Èú4¢l}ê*ƒhÿG^\Š~n};||”Ô>ƒÂ…¸ô· öýqù{T>À¼9½Þ]Oßå¯>[ý9ä->Ç”~pMÞ?—¦ÿ:´ÌÓôÿýþÿo°sB¹ì_ÿ5Åg íøt¶­1¥ý«>«³¡ct66uÅ"lrnºŠô“Pj+òÓúo^a{e_þꇺæó?HÚùÁ½­×Ý}ÿ ïRþ×öËn„ˆhlÖò—Ó%WÞi¸$ìYš’‰_‘½ÙPöè?HKjÊè×HÅ D8Rú?ÿš{º"Ù•Ë«ï«wľÿ<Ú˸ÏT„/ØæÌ'û¡ˆW§­…tÁ*7÷¥[¾ç¯Ø}ù>k¬}ódûFâ^ÐwØs ùQ¥^½z<©D÷ú 7N"^E;Ôi(ÊÞ`ÈôzöW8RØ Ysî…ÆÌg—Q!É› c|Ä^ï1“8ó¹öU©üÙæçyj²2žÆI®üHLwl›büh^˜ŠnQñÝ‹WÑs•u¹4Ü‹œ6QûôÞ‘—+Bgk9…D_ȉd„)øðîm`³>Å·‡+åÿSd,úl·Ô4I‘ùg?J\RÒÕ–%x:=Ó½—Ĺ"~àÔeCr[]YNÕaUŽïWóQšåoË.µ±j¿£Ï›ËåÞt§‚¡¿¾“ûzˆ ZY‰3sXÒõ츶Dœ)ÕÀŠ,©l Ëó†KÊøtóI¾¨ ÖÃpÚû~rÉ:I–<ÉÿHGÒñð]«ë£×<áCßQœ…´ðAד¢^ú~]Ñ…ß!¦»F[—¢_ã )ÿ$þ]Á¯ùÙÍuÌLêëøgOôpò“¼DÝid‹ 0~ðÝ…ÔMÄsÚ¥áR æ¥t~ç–¬ó´œÿâ=;Ç¢æYÌ«¨ ~¥ã Ÿ´W~û†]_? >ùláÁ·ceraF†ùL‰“OÎvë"D~ Ô§>ºË ¹·*KÀ?¡a‰\= \‘ÎÒNm¡aM˜&›yëE·˜Uå -€²¡v^ù‘(´kxMsó©{^-+ÌÚÓtR¨äè‹j¹[Ãß!;¨vK'§îírêÒíÚqUpÍp“Cêvªbo–‰ä:d‘YÌ’ËP€"†\胀„̸#à;¯>9w¼È '<òŸ}zï̶¸¬,(X!|¶Å-×RÑ®²8F;ù ;?ü×ìÓŒçÚ–že´Ë F‘¹6ÝÍŒ/À‚Ä qEf±ÔϸhÝhî©Dׄg{¦¼ã,6²Qw¥f øŒ^ @£}[WÔí—­²¹˜Ûä|-톺S,£ù)iøµªKN´¼©×.Üô—BÒІWýä¿-)W IVäl>ÉÇßõ¿á¿E-÷Tó 7·#Eî¼é{¨y“àÉ…k:gs¼MZZóm Æ<™òoÄ÷q”‡Ö]o‰´#̳Œ«q5-ÕKaQ·Co<à/>G©¥,“="£ì;Ò꾩iÁšÔrÛ4Ÿæ÷üë+´˜ùºì¹paÿû×_¿£w&µ!WRuDìCË38|«½²‚U¢&šŠB¨L—{Áø¿ÞwŠa]õ^a:÷ø;ÿ~uÑ(¾ý]¿ö!þ•t?îôZåk§Z ?ûó¹£uvýzP%E)$Ö÷‹5ØT»‰ä6\TCIzÛÂ-ré92èÚ®ª§'õˆ¹ö}««§Œò-‹ïØK—?y»áœü ~TðrM‘øÕ=5´]˜S˜'àp;¤ó9péh›9yy©å[z7Kø¦Ù+3VuÄ©7ò²`íWŸuÑÐÒÑû䬒;ÍÀ³„¡²é!¨¬ZÊ/íW—\óA&^µ«ódù–ã¸|Û5fÑÂDø3:Pu5¨† Mñß,äá¥e쥊-ÎiÇ’¬Áå¼@%çš`ñø.!WäÙ+žZ\ÍǬ÷‚M7Þ¬v<ðz›ìö8óiN?ìƒõÜä·+ÖÓv}U˜Ÿ ›YQÑ¥íú„§p€U7ó½×ðÕ¥ÏT/ƒ. ÕgIqiêšf=¿I¥±N;ùd½Éš®NÎyÁnxäÊ1šqÃ'J‘'gþ,BQjéÄd¿S’ZÜòO¸\ͱ& ´¬ó_Ás© “Ž2®.2},¾N5ËZÖóø¶Í»¶ý,w<ñ›ñ …ï ¦à%åˆdŠÒ¯ì¼ê¡jÿ9‘°¡m›N1ˆ }S*‹ µ×°±üR’¶oÚà&ÅJhØ•–¦cLn-Ó&5ý5‰3݇k¤ èŠ;qYzR”©µwTëÀ!s)z€ûC+6° é9;/›ZçªS$¶‡‘’ æ&ùHãöÐÝ}ÏG¿ú¹Þê;â‹•OWçt‘Qs+à%ò.IÀ$0F4&¼czþ¿Ëãɸø›ß¤¶ û©‡Ç¯>~ãYïù‹fŸÈ‡Ëàë2ÆÅùX?7Ž>ÌŒ‘“ìR¤ñÒ ‹¡xYL@scÀœÃëÕÊq «>¨É£`—¶Ä­•&ýñÜ2sÓýÑðñ)²›úKVòÒ¯|Ïñ;å |œ)X )LÙ”ö (zÄ›îëÔ4*Ià븚Ð[ûÊŽˆ×‚…ÖdmDPMm~­È÷P¬OEAEŸàÞþ}fÓ´¹2T=-÷½ªù(Ê’¸bz¬Ûļâs®úò»ïog>ƒ©X¿‡\AW±T\0<ùÚýs’#¹4M^€1½é’±´‰BŽ2ÛeÙr.úxÚ¼ö¿M4ÐŽ_£×ìžÛ0Aá!5¾ìò májSA`s¤í¢Ý·$»ñZÝ–ŸîÀU½þ^¡M,}kꄌo$1`³@ŽmAOÊn¼ãYŠÆŠ„´+fµí6Ù½ž ?ÀLõ0|ÃÇ*ÔŠ)ŒWYQvõ†eo³9Ì[ð½Ó·àï9ô`Éë¯Y",SÓžµhQü-CIιâªâ*µk/!á8Ó·«Ïì÷Òä‚äð[èÒ‘Çð…p Ú¢Çì‘Q¢>~S‚Abé®ùd;/¦zV—Ê=¦äeôËœ´&û:1’‹6ÔòŒòį°¾²~è¢ ;Œ€Ðo¨VR/ô¼ë°Cg\Zfb(2 ïM qÅ/ˆ¬Z8­Ñç–ç…vØ‹þN}a£"sy”v„wnm-’Éž™¢ÌÚ†t®/R”×è©Ê=g…bŸwÉÄ+ ìÍ?øŸš…[\cA]™´iæ‹cXeþŽWÚéú¡…SšîŒÙQºuKÚº^ Å¥ Ûîøï.cAáý{ óZH4äÍžuvíl«5,ùлÏ: iËÝPI ö÷·]ÝØgåÞ°-$È|WÚ¦ËpzIœ¿Õ,öhì¶ ›”ß~7qSä ÁzÝ?ùq“z\@”¦ñ/¶1ÚHë€#ä_Óàìäß±·?ÿ–¼??‰EãʺgÛ7yá¹òL㙑1b—2áo ¼ÊµÑsQ$´‹—‡’ØŠO°L4J{ ŽLx›å†Â¾5½Õcƙܬ-Zš;R¼ØwRRš‡+÷—¾Wÿþ÷d ÚµÝØu ¤O¡ÖÝ™±x鄇õ fK`Ñç¿ÿ‹+UþùËÅ °¤MþZëô7Sp¿Žs`æµ`I0µ_sÇf'r9Ôú€P¬©XÓ¶5f ùäjŒG±XµÐÖí`ù‹€ ºÒ VO3'èJˆtÑ™¯7éµá[)îQuçãZ9­! s*d4ÁL16ÓÏáÇ¡Y4gv.c,»gÚ‡l¼Eòúk%Qvì ýSµ2vÅ“×ABPEõ!w”¥éóœ5îŠÔA' v±. üèr®Ÿ u -²Í+zI8Ãu’Ïf‹ÃrùÙêן^Ù‘Qˆ®2<™Èv¨ôégêɽòé³¥Œ•îË3`é 6)ÝZÞr!wzŒž2USQÿÙÏkÎIrâ•¡÷•@(d‹âÅNó°¢=} ²:ÖçbÏÕ'~Hþè…æÃÁ\.gˆ<¥.´ÎÉžCj-Ó0X®¢pí~±e„/•P}´LØÑ<Š=?ïšA.¤ýP˜¦wÅXÐsm¡›µFˆ-àË•ò"êÚ ³qvšs-sl”L8Îæ¢¦ÑêDóœznfLNÌü1Ö•n(×Ó>­–¾œoÏ:_惲˜Mp /äJ^˜n„ é0ÄšñØrX¯Y‹›l Ì͉ GòÒï´vùE–y Ëy©E`XòªøÖc kÙzòÕüY“ªÈ‚¯Ó—˜œ´LB(ïÒ1Ÿ> ˜ÿe´ÞÒ¼#C7ìð/†ã†ä…Œõìž¼^áçÁî.!–ÃЋKÑe$;b€Ë!‡‘0ûÙÑ`‘Q%¤‹ô˱ë21.VÅ¢ƒ íÉÕ‹!(ØÖo¤‡ªb}WÜèÔž`OùTÉøŒüôãW¢éÓVÀñÈäyð2«4$Åbg7m!q¨ÒzÅHXMZv…¶z²so|ååE÷w®^&Õ“ý,•yècàÙh¥4ù)Û]ø¯¸t„<¼Œb‹-†¯n»Ùã£Ì‰3Šm?JÇny¤4£&\¶…~‘„ÉlÝ—’Jã@¾“U€¹t9£ý ìv7“W+.)M—nt›xV©ã Aç7©ÏÓŽ1lÜJÂ7¾Þ‚Ȱcí¿þ›×-LÊ®JDFi"CêÒ}§ÄR±=}t©3º¬¢ðÊÓPYÌcðÓ1†§µo ‰³\…viˆw OvÍ€²+ii—¾~fíUÇÃØæ–ýh/‘ Cf#$XCÂ.U)mFHŠ=XÞoŒ±Š ÿ`Ðùg´UÛÒ›@eCóf¶ð&]†‚õöËÅ6„Š5 T¢Gëâ¤+é½Ï1|êYQZ ëÆ€2Î-\Pì`¦m˜u¾¤?l;:ÿi¦Z)I-rFD1³Þ=×.$ŸM]èdÝpBØ9|ƒ‹ª+mÜb¬Q!Ss‡ˆî¿v“7&­)Ë/ȯ//M?µ0¾Ã8Ññ³®€d,¸†–™¬Ê`@Xàªh‹^‘H-À«èÌp$X` ï˜z¡ò²Ú– Ë”?J&õ;5Ä_¤3úCü—¯yXò¹ü¥jFƒÒ#½Ü›M°aBéé¾£43 ÿ}\ÆÞ>_XŒ÷ö„Í©§‰m‹\Þðš}¶0¼öïÂ#nþøe'J_çA…ò{ÒÄë™Oãü¸2Y|GÆžÈނл=f ÒÍe§€Ÿ ˲¤—®Ir>ׯ¹¢»˜ÖÓCþ¯‡íKñQ%û&\È“U/9 VЕIžzú%UÈÃô`i³iÚÔ„ ‰ Þç{v ,Aà.ø\¼ul^=´¤Y>BÔV¤júâ _óV&MMÆ5ЙÑòšáë¾#Ï#˜Àô. ìaڀؗkúy#§jÈx´|¶»öù;Bb€†cˆ×#~evŒÈh¯NC¿1­\ m¤+Ë߬êW¿3VĦ`þ:Ùê¶Èšôø˜äñJõ“”¤RŒ¤¦ ‘–7² ö÷3Yb–JF;Ÿ rgÊ¡u!N×l^Á¹è*ø>{ 펡2ôã…TŃv$Í'ÔaùÕ7ÍCK=—úš·oæ¼õ cˆÐÇÆ9’T¹ò”JàŸVš×yÓŒ<ØŽ$>²ôà(~ Oíî£úóZ$µ}÷äЀÍþñ£DYþ?<Ç.ýÍ=–…5“Üɯñ Z÷C YÿÏNMXx$ýóƒŸ ÿ£‘F±gÜ?¾YÝÌⶃ@stzŒpÕÉ@9ö+jSÚËŠro1ø¼°[MÃz‰PCkÝ{Ësv·#LlÃù¿¬W+zÇÜü¾ @ˆç°¬`3`­ì®™7V§Ó>§]UTqQœªBÄ´/x}£LÑ{1ªü^iºÃ:eb+ûŽRÅÉí3ßõT6%ÅŽ ¥Gд(««îZŽí¯ZÒEX[búenzÉïÏ& x{\¡š]Kb2=Cë®TÏõzv‘ÐÚÌÚsËÂÓ>£8ò>_ÑœÉE³w ¬N—M£Ù–_Ë‹K½=ï ]ˆ[©ÎY‘®¹Í³mã„øMÕ@÷A»Žs¾,¡xSiv¥ø==Úì3éo¾ @ù¾E׫Ú,\t(²«&@²ýŒÜX ÷‚åI%N^ç (丹óÚ<ŸÇÏkAO¦èvàð”€ðš»iQÿn¹æ¦}¢xyÆÏ6+e¼^k[vŒÞi(Ú¤yIdžœrš…i ˆ[FV[팕Pðú›tók%2ÂQ`t£¸ÉÆ‘dj8ž“£*XKª ¥ à³®Š÷*="p ÙUzZ¤;›Å§ÚWñèÛÁ1Ëk’tKK– ùcº™38΢âzÏ­­ß‚—¿Oå@yáý5€PbŒÜÙ¯Û@¾­heK<®…#¢jNb‹ÀÎZÆqn¼t~u¤f|z³%ÒÝ4ÐðÇŠ®â’~j?9# ðîÂ9v¾ÝPØCkg:z.JJô¨¦›[톉ƻÿ®ÈAªfŽei+Í Zl-ÐvòXvEç hzårª ш¤ æD®ËºM»>Wí•öü,€¨±ÉùX¬—ÌøÜÏŠ;ƒjÒ—ÝwZ|•Ñ*áŠT7£¦mâg;YVƒ´þKw¹½ó_q\ñ«< Í. ¦ŒYÄWåÒ@²TÀ œdAèZÙU¦K€Ïº¿¦ÇG@7[C ÂíÎUgºš¡ÃÕPÒ€›IýAR3S{IÞ(¥Ýñº-ßß„n¯OÞï°e¹7ÕÍXyU“å¤U–¢}(¢®B/cʶMggB#zè; OÝ­ CŽ V¦A¤+ÅU`º ÀVhÅ ‚Rm‰šO¶($ꀷƒô!h ÛÜ1k+ÐçÂ+­kp ©¶Ï+©:"î˜;¢¥Ê¡×‰ÈŠë­ó !}}A.1¿ÏA–ÔñI|1›u‘Íé89è´i„ÊåJÂ0J§åŽ»¡—Ñä+Z‘Œ¹d*xÝ‹ž"AR4?‰ vG² ,YøÇPM'µ~ƒ-±*ráy»òÏF¡´‚q8Aªq¨>}‹Þ.ú²û„à"eÞŒ¥#ª_ ÿk² ‹”ÎJd&›:ä ;<’¦k¦Œ8h õZ7,¥FlÄFþ,Z7RW˵6„—jQ‹îM`°ÀºîYºƒÅ=+@>é@ÛÀ·V§bmÕw¥.õ€üÏŠÂT Š÷Eôè1h j-S»ƒ­ÝÄõ!øRkZ½uÈÂÇ…¯ÉÃú Y’ ü–ꌇZ߉ðRÚÜP5ÝYNPGö׎òÙ—¿¶']ÉÉ»sD·.—-ÄÚ’ ?ŒÅ}³0™ŽT.Ö.Ø‚?¬‰gõÇ¢42¨ÏÆ 7iO‹¥‹×Rñ©jÛ·˜=y`èšNp5*OT7ŽÈòÅt÷n¢2Z!¢do©¦“1t€¡†¡UÐ!Úæv#¯a%âõ—šøÍx-óE:Úrl(o|3njAÂõ#[å¾Lý™|IœÄÇwlp ÓÒE´L½[ïV¯ßõœ–F?,_ÒšëÒjp_W%  b…Ëo)îˆs!¬%uÁ®‘…4Iæ'”ñwIÝ7ѯ¤SŠÙ)1óI¼µØK©{ èârÛÞÓà'.Ã:¼fkm]£ÔÖ5|JÑŠa=š'Â~{¥M//—ÆQ‚sçö‰F"¦]çnÝ®©Œ}½ÕdkY¥ißjçe®$ÕÊÜ$gÛûúT™‘%ûVÓÖ¢{~<¦Q!gúŒ:ÏX!æ/碣ï¤,Ã4mO¸Ó|žN¥FÒ¬*„|s&—zJÛsàüÕËÜ.ÞªžÏ»ƒ™TëT•ç3bÂ<ÔÃ?Ì Õ™ Ã4UJ^à¶’×¶±s5%gv^]1ÊôY1(ÔCy`‘Q“imû b³–ž°ø‘vH¤»Œ‚äP4Á(ûí1Sªk“ R…]6JÂ×N %ó·S¬÷úòv)ΩíMW0ÿÎî³GXÛ¦YoÓÞ<>ã]ñÅYƒÑ¸C‡W¶¥,W8q »Æ#ćoVrØ=êú¶Ð*©Ô£ˆë-÷جg ÞX@n[Fû¡MuA~ð5뼑h[.úüìƒÀ;ŒÒ»æÕ9#,ݳó„™l·o·˽±¶yÈAÜOcíkât)Kq)¶‹U;h9v.󶵌 ¥Z#)-1‘£°wN+$YÐx”fydÈ™#íó¼¶Ÿ†ÙSƒf¨…ˆÞä?áÚ¸ˆtvÌtXuÍö‚+nSmî­Ë}ÔÃ%&»*[-huIfÕâ4He!bŸ±2=E­lϨcqÛ’Ä·8'•Þ: æ _›‘p Lv ¾Çálá1‡á‹¶×ØnÞ95K>3ÿp¢TÃÝOÀS¯[—P‹vÓ‚àxWûXøö5Y®MAéáÊÆ &fÇÍDuå^CÙD ¤çÜQ%îTŸ¾¾òoo#‚Xª¼ÇÈÊÄ¿çtÕ®Õ›ŽKÜ[à¡™··KÒѳ{ö[ñˆ ‘²ü¥è2YL@Íhk m"é®ãÑ‚6€ŽcœRà/‡£uÕ<þ˜v"/bȶC¹ÁqZ×Ì\s3Aì3ŽsqÀ!¢ïîÅ ¸+ÙëÀDÚŠzÇe¯²r7oÑ–«r°;$;{nŒÍ«qßš+p×¾#zÈl5½~æ½Å´ÿAÁ¯âK5'É\­Ãj G¨pUØ´Ùõ[Á¹«à\Ô²‚ :wõN¨Õý aÕ-‰£;*Tx6u!«ÑÎÞç2wõ°;<ô0ͰrI§MÉïœÙ•ÔÏÔý„ãEƒt(©-©Š®kºtkY dC»õÉ PQ~lUªæNÓüù}èXsV‘>9›ó¹,"o“‘_<@¡MJT†@’’•hß9|vrª©³<î–ƒ ãðˆÜ•³™ÛÖ’ö­MÖoDR ¶ã¬h/´çˆfu9mi³ô“m ö}“]C{~Ü>}m³kó>SX!]yJÖç "²ï²:h¹Ôù{§Ëö™ãÃÛöþØïMóE±” pK Jx\üNeó V)wni‹Ð îÙ%hNÝuPÿî{ï–k\]£T’wÂÞ¨“Û’§•¿(?`²]Ç.°ºj7ä ðÒïå=%dYB.¬Ž6?óòß É&•Ü2#Wsîç °ë‹FIy.jRg;½xÉ´æés/º~ eñaƒê'^2·TS_ÿÉ ¦ ☌Óïòõ4˜„Â.žd?·ãn|ÏÁJZ¢ó^À{»;ž¾+šÙJAøjžV¾Ç4]þk"|Kë!£%-²„dEξAø¶µ¡Éj¹ôeÂèÏ€‘  6€Co V,ðË®ýŸ+gy§ZjîEN›×Þ¼=«¹T&U$¾Ã”;6”`tbVÈŠ¬½6æ¢BŸLÞBûÎQ5=D{bÅôf }—1gŒ°gFT!è·œÿïr»î°Y%ì¶ÇÖf ¿u ÞA Ô8™œx¡Ö;—Kä—‡CMw%ÞÅA8ÑgââÇÃÑY/TŽ^ëÁ–ì9v¿¤K$ÈÉð'޲ñÓ£G}¦.º‰Í“ÿ·R§„ˆW?4œÑ¥RñÊ ÛI‰”µvüžÙ·©ÛßÉS[ÃGØ9ׯ|dÏÉ® D-E5zÅÂ*O?£‹•‰ù£9A/yµmDÖœ·±{Bà‚õ¿•;f• À ’úxÄ»œok ){Þâ,µü\üõ÷_ŸÂᣳÈÊ?;š5¼96½tÖ§7ɦŒBoýÿ;*¤£†¢nFüÀQâZ{ÖÃÞ“­¸(iu¢yNóé£Ð÷}ló­a]†ê™IkÝe`:ç9É28uóz£ùd€e4wA`Œâil‚ñLÏM”jŸ¯b ¿›:kAÞÒÃþOE?š¯÷úWÝf¥±Åʼn0<Ç …ÑØ’çæÑZGX„®h,\bâ7ÿIP0ßœ>f?^ày<I_î!³ ’ÍÆ\??ÿ(Z´-èY‘œ“xY\®=±g&0ú3ç:P¶aã$ù<_ÖðñÆìQ¾ÈšðÒõÜx¸®ô§§ŽR—QC,X½±I¡Vñc«h{râw3[Ý…‰4Ú½‘¤t•”Öšs.SÁd5¤;¿^aç¢AÆ„е]A8;§lÉöl—qg^ìKx©ÈêBCÙÐ’’v=>þ.2ÊÏ„ŽOožI×JâN8æ–`Ìtsxq@?¤Ëìßµ TüÊVЂrݦ›j]Ö£ŸÚ6Hb†LêÚµ+7¼‹ÖPʬê[¬§ÂÒÓ×1ñ¨ª§e«qÉ;òLÀ„žzˆ 3„Âÿ8Q„úzk©-céòþJ€L²m¤÷®Dwö}Aäu&ß›ç7Ë,ùV,˳tS\J”q`=m&Á•‘eù Eq?>9ÃÙ˜eC&5„ñ)ßÓËs+m;c°B²¢x;@ ”îàÉ™î3Pœv,O¶ÜÆfÜ4+.ÇR?î-” Ò'±©Uþª6U©”¶Ã\Z/ñ+Õ*m úåee“ÝŽ` [?€Úr£´]OJ¹`@’]/^|+^;[5°YqÆVwM‘ËU,“Ü‚›Kk¤`+]ShËüzå#u]' ¢Ú(=öåbÀ©ŒD…úɇۀF™ô é,5܆³š{È [óÊô) vætç¶îÉ»sWIæË 4çW¬Ày0ÖÖß2…ÿ«jù¦Þ,"¶ùfL°ú›ØÐ¬Œb±ì9:<kiÖóãÓ'2J Š9Öó#}-áÙTͶk-ÿ¶,R¥Ö4¾…ÐŒ_éïsaRéȩȋS‰°,E'%éÀi»­´P0/—CyËp}”ȧZ-Ö€‰xXÙݶaóŒãCT¶Šg©'¨î+ù©”üNKvXɹÚ9ÑòB÷MÁ ª‚fR®•ÖÇÿº¢­û ÜË݉¤öRé @´£ôv”¼´¶©ž:~47¨´Á±#KŸ‹CŸu SÜ7õ›Ÿ @xûf}VWâ™tì°Íô¬òž›ÉßûÊnÖR7ëÄë}ew©#‰|Wѵ³‹îÀ¹”IUÔEÕ0.ø JcÁ¬ùöçßþàŸ ?º£*ºª›ì•ž:ú~XÑꬼu^lÞE®êDɺ†ïÈÇõõ•T!¯êÈ]‡úX•ìú|‘ÚT¨³¹È(ךòã”ßBÝ© ®“Ø%·Û£w«_Ô¿·áE¯0~©ºäÈcs–âI?°ìª<¸Olüï¨ÁRаû2•T«É‡þ¸£¬VOàSs«)ý¯nºwzYCÕ×Oþ”¦~6¯º¬µê)Ýõ~!Þ<­:mSxæ©Ú§Ž|Gnb+Æ •h`e¡µs“9E·~ŒìþŽC O]„ãV'Áöý S·én`ìÀ1fêAÅÊæN[ À{PIê~ÏÞi~à*êÕÕÞ“ª(7¯õžµo÷å‹ö¶AîáÖ‘âÈsyøPKÿ8ckOR€?½MÃÃLXç…J\dío¼€7%ýtreh⯦Éh@˜­É¦wˆ]Z»ŠEõHí/© è¦ÃPPç蘲¹$¨ñCİc¸–dÅ9™ †‡–¨`׊ƒ`]zûæÉ”(luãÙ%ýŒðÙš 'j‹Å˜_˜œ™ç–¡wé>O fþR5[ÅK§ö¥ô»A°ÐHÿ4Þšé N`\Ü)Ù>ÔWîÿõtK =ÿ‚$Ù-¸$#í ª|Y•ºfïMaø«pŹP{‹Œöü{GáBd@wùÏÛ›r’ÂÐYµùÛwrßø-…v9#‹cÕ¥‰†SÚ¹Ó›j˜ì"K[µtgaë†Æ–“k^¤Ú¼69Åç×­ùój¨ñ[Œ/# Y’¶’0ÖhKyvÚ!­L0ï€ÁÌ2ˆÔ? §,Ì*\[^*b1lž õ)pÉW¶Èy.AgùÇ‹yýþö=µ мÁÙ¿e\dmÕ°,x ©+¹±f*[:¢jN¥;t9ñ6 ¶HÈפiŰEž«/c õèӢj¿§Èôçó«z qËü”Šg®®j״ľàoV€%¹_ñR­Ö.ýX,°¡6Ø‘tDѯ)—Ÿ.¤«ø­‹"'Ì!Åóˆ*?‡×T‚[à÷—Ë(f/ØQÁaz@A¿wï*‡Xþí‰w ­asÖ”ù[ÝTȆ”p·Zx矾\Ö?KjMaš¿V¦ ©É5Á…t´ïŸ‚ÀêXø>+1‚Âø`Ñ.=*“À¬lͯfü³Üvýö›,#Ê{qC‚¯»áô à/aZ[аÀ„ÕYá8PCç³*pü¿¥±Yðß šž¢Zª?¶f) µè7ásK ˜§Ÿæ”ÑÞJÔ&xL 6ÈôN3‘ƒsÚl€¨±¬%FœWFj.>Nâ7=ÛÓHºî3%HÖcžèIWüýûïü¨è„/ÀTíÂ_§$ÛµX-áfþDÓsŠšŒÒ¬Ý’"ÑhEs>v!lûS p‰ùÜD+6³Ý|ݥ˫•Ú—U=ß¡²~AÌ<5ÍúÖA¶m«Øø0×ä²Ó÷Å‘~¢B!"\3­ÀÎkãâÍÚbwÐBÈÛ_ix=ãX÷”ÁΚü$ÁÔæ¼„š$?šþ¸t%^hÑß›¡ÀÝÛQG™¹Ü⊻&-0…¼§v@uB[R¥êvùœ{Ðó;dðW¢O]y§jr±Ò¨¼+B WWcò`©&ðTÍøœæ¬Œ8×Ò›fï¸ûÏÏGYuMr‰¢’¾ÑõÑTL§t;||”Vª§-úMÈq Ž–t¬¤ÏôxÝ^3‚”ä‚3!>k’X¯Rþ‡MjDºÒ8Û¹^Áüüª÷wü¡ìí^u»7uyDû<#YÔ…¹bE cq£ öM‹B*¹! ¼DhNke¶úˆ7Êåkƒ¯Ôë»òáÙ´^ÆèþÚ>i›5é¸v2_z íÌÛöiöŒt® P6—‹cËÃ0#ô,!—xÑð§‘éaÕñ¬}ÂÀKª»#2~1¨“Ž’\ÍÆ›õßЮF|äKOƒdè%ÜÑÒ@2qßJú1©ûÞaC@d|³ˆ‹7&I'?nè”)®<­l}ßE]\ŽK›75øát CY]ïFd›‘Á†SÑL X`ÔÁõ½‚Ïfîãhš«—„hÀv;Üú†œdE30Ó\’;Ÿì@G,k´è¾¬®^÷‡ºµXߎç¯*@ɆóØEš1Ú´—‡ê*áb¦îzöõ([M|þ¢S ¿é0Ï$;%htÆWÝÑ7Óœw7ûÅÀ¢£ÐýÓµàWw£ùi§M‰H­ëûã½È/´gèMc™#ã {V^@¦Šªô.U︩[4|£¾­uYáÞJ‰­û—ÝÑn:“=úpgÛõ°xÚ0–îôSa|{ó²)®úõvÚF~Qm·Óªê!˜8hcä=Éu&>ÉC¯ÜüÖæŽMm½¥‰úÅ0ºèò›¼" ì[ÓÑšÓUü!ïûgºÑ I®mݬ××LWlÐpf“^e×Ao€lh±rÈèªHãÚâ/”Œ¿ÛTì}¸s ·%ù{¤n f4¯øQÐ7€Ý´:† -$, Ù‹%’ÎFð«`!íBqúë[~²w¢üYb¤2ÛïÁàÆüõSDt®ðË¢‡bxUë#em'ú&!mÊL·—maoåþá’f%a‹ú¼†µÞqT-‡¬ì°–üê!(ö ØM}~ûíÛw匎kˆ— ä¤òçÿ‚$ãey0ÚØ¬Ü$ËEN,¿hÿŒþQMmª ÂA¦"kd]³¸Ød—ù¬µxG[ÎRMáU=ÖR˜ŽtM0/2Vx8)ÐS¦or ,1'a£öÿw„óžóÐÑŒ0h\¹¯Y`& vî™þv¨aõwÍ­É@¤‡õÝõ¼Öòëш›J&WmfDTÂkskpÑG5Iƒ{T×QÓ«â\bâÆÚ×ì˜!µ›Î=ïB+€!PúŽËRôÝØ·bËÂÃÂô”9“cØt¬)lv\žòÊi¨îEMâfŸ»k«?³?Cn+ÑlmQ7!FRæ¤U£wáo,òV¼ž¾ŽSÎ"`r¥\-ÍÑŠÃjqmB¶Je§P¥Ú›A^Œ\võðÈ.Ð1P[?£+ò}ûóÞˆ;ô,ý¯ÛyûYOFкØ;ƒ(A¢=[Có¼v DûÒØ$D57ˆ\Ñ\­77Ü C#†á"–¬T í¸y‹Ÿ¥#.´ÝZ×Ï>$~F‹â³Íž}³ÿ"ƒ¤oôÛoß~¹¢ØJùãÀ«×ä§ÓíGJ÷Ÿ_~ “rü÷Ÿ"‡õB¼9‰–µo\ , 5zªµ´`ÏA¢ñ Ã^ÌUɾà%&Ù’æ­ÃðÈšïªÎ,–´ûéLâúÉHGI8Þ·ð¤j¾\!—Âi æexÕiÔûoÙÒ„ÿJrÐz)i÷ØÖùßB [öBDojIÝ$¬8÷èж·‹TpVçèê-Ÿ8†jæO´.ïÕÜÍ÷¢ëRËh´MQ› ÜðC×ü Y¿aë²Y=b#°\I F"‘ZÊk@t{. þâ Û:¼¦WMÔ" =»ô¥tôªGXˆ²¬Y&È*‚î2³r-È%9²8⯖<ËfÑAcßp=™*ÓÖŠ*€zašÑߦ„ðØÎ¸”™•FÙw"ét÷åËOåʬôä&¸Òê¤üØ £Þ¦€‰5–9°>ÏêN,ÌRÛLwr- hóèy¬1 cE²„½õðŸi–ŠåÏÚ k}Ø•y:ù'ñ­~hùsÁ ¹ÇìQ„Á16íû¬¿˜;˜¼fÐ'&À!bR Å %µ3¯z*0¤´` î×'MÝó…^çÍ{R“{qe` g³®ôe«D??à~']‘pñw3úûï¶ŒUËó0-YAï#÷Õ @§™sóÐL—j²ñº,ÖU½i…`àeÔ´i–ÙáÎåüì¸?À¶áck<r5 3 ÙÛ@‹$“€VÃcŽnE.š"+[O«Œ a|éçú:—Úñ§ÔQ3V$"êÍúY'f¡=3ƺ݋1u÷þ˜£¶½A¼ógüRþ•Mÿ3Õ÷£¥— rÊ£ÁÅ|Dz}zÔvL 5úVœ1aD2:4¦ûíýÊóý혢¼âFHÐÀúTÔÐØÍ{s!y×X¢»Ç_±”É€ìœqÔy1E]ÆòŽ16í㜄÷.®µ_* ¶!M®,¡›¤ áC»w ½÷yº¡™Ÿçú&ÌËçWÓÌ Eν éP`Þ+›§ütàýn•ÊÎËÿ­¼¿™‡#ïÿœfAk{íI„OŸéÖæ¾S2\Ô ÈHjº0Ýǯå¾Sv~ ‰ÿ[íRS\+0Ãx#©yåME'`0Ãe9}s•¤!QÕâëX¼Ñ?ã]B:Êø|x?Ÿ‡²ÜÀJ®êèA8Ïóº|/·ñ'¾×‰$ÁLàŸ*ûélT0fõêy HFA†ÍŽrŸ}†±êHWϳlåîVþ §ÓÚµW1¸11FëËú‡†edõàI®M£¾„ï<³3˜½ûÑ}O~¸â}©ØÔ,¤ã>†ŽkÇ—Žó©uªÖÖûuiì©è¹šÕ‰Îµ·SQPܧìéïÉù=úÞ‚í^'râ§ô·ßþøíwä˜ÃÛ¶VHE ¸“Û®X´ë¿î¡[Ñ»óKÇ ¢‚š&6DÚÆhÌ8ˆ'<Ÿ·j™-ޤþÕ^ _DzEm÷]å Õå d Ô°\€Arz-ßrŠ‚_.‰Þó³ ¬§æÕ]ÖûV]ö³/ÜÓ‚Àè\Ôp-ø‰sƒ‡v2+úMéüÕ ŒŽD.7­ñÑ€}òú¨ÇÛzÈßâ6Û2…­I±^¢ÜéûŽæÙU’®W^– ,¶i>#Ί ²Kï{Q‘vúwÛÌÿ@|E­fŽi`–_/󾯲ö*»crµ¶ÂÌ_¥x;ì] +:l:TçïEÞ_3R*:uV¤»a[¤;¥h)1ß7f¢º„RÕ¸R¬ÍˆqèàŒ<Ÿ‹LZS|¢{rU~Q{÷oá…tpønƒ†Ö8¦=îk99Ê¥ÄeeW*-ÈC Þ¼ f6õ‹„n2TrúÚ±ÈæB~Èt•Aûê4ðEÒ¿w…ðXÄ~^qù¯4þ»¶µÇù!¯¿kèýÈ;Y)œ.ç²yGhûï|[oI»¡òAŽ;eM}Éi/®‹Öj•­ìÖN#SµMÉÎ œË€dÐË?øITçMtóo|M ‚›ÈïJÂúsu.ÀÉ(2âKÈòøoŠ.óN¦bÉ!ª)¾øg'B+\ŸY¡lÑDéú4kªÈ¥&ýPÇw|UˆýØÏø_ßÛèÏD?2i8Ó1.4º >1«ÓSNïð‰ FÞí;Jª‰è Z²ž–´%ýõýåpø5 ©i5€ñ¡ÃÞ¯>hÑ_€ä4U¾{@¢Q‡wrJNÔÓûùA8Ù\(økþû×_¿¿ˆƒ`$—´n¥—éìæDNéltK2zЮÝmÐ27ê/–†N¸8T ñBº»)‚@mÔì:*Xfƒgl8‘Óÿ´õÏ2ì0v~àãZ7ïeò;…ÐÀ—rƒ^_¦?…ê~Ž>ßËPxݳ!Š·7I«Ô9'»'–50sÒÈWDœ¸§ñÎÎ/¸šˆäû¹›Vþ0Ý«´Bu_×? d⥶„±÷/ö0ž4Ý­€W¤`@UµG4ã¡¥xƒ³b ¼Q `… `mßõ^H 4ìü¸ÌÙ5#q/ØYvA^­8°+‹ÍdŠNC‡d8ÇOxÃIÆS[¶y$9(š z1hw((-xµá‚*h†¢f?…dP7û‘ªÓ˜ Âѵ g"æÅšµx¤`µd‹ìíÏ¿æXb|Õmù*Ä (¸,ØíÍ‹?Áß¼Ñ>ÝCý…ÙƒŒ<êbo‹*(1äXZ}‹«MÄ43>f%ÅÝ7Q×Ì[y‘³€©Øg}A³Å,©Õ²|×AÝó¢’ß#C9å ê÷S¿¿3NV-Ó…r_òäBzúNž{Ú±òÚÆ¤1-ÊPÏo/¿ñÅa~Þœ~dÈû|Æ<“1érq´—¤í›Uˆ@Û¼¯ATž«ý Å FIÁ¥c¨ÛzÝd~zúÝßG(t¤g$‰Â[æ‚:‘áTbXPÇÄ+[*Ò¾'ß(L,…py›Yu à¥D†° 3°S 0ËþÍëekêšÚiܦx}UÛ³VÚÊúgödØïëg'~Ø`)ƒ‹ŠÞ(mÍ`ŠÆZG‚åSî]j»ô#jg;—Ц‡±HŸNÓÞÁ§IÃöB‡!„’ÖÏét£ÏÕn9!ïÇ ™9ÝNbg Ó»ä&¤Â+ø£o«áa`µj¾_1‹Zw0'¬Y·7NÈÁÁsèr}ûD``†Ú¶Lgx­DذÖM–do+ÍÌx0{jÖ=§l/HÏV”)áMÓµfï„ßw‘j)xMÑùÊ›ù*=Z~v¾¼¹’‰0óÆój™òÅȹ7)¯‹(6’28þ2ò¯|J·j­/Ö:tæ1é,´Y¦-Ë…#ï®ë¸:v)­ÈfÀ'ÊH÷¥¢©'ËP€´39·]ÅIYŒBðjÅïõ]ñ¡p,-q2ï*C=þ® ÀÉoöÉ÷‘'L§Äµu‘©“M’ÇÍ4´36;xG¿ÁyŽDÒd¤*3o>v¢µ´1=úT÷lÅP{Œˆ´1ÃÀ;À–Ã7hì†j=TbçˆNiàXÅ&¾€0ÜÂî­ýQº˜ÝJú©0˜#ânýbá(ÿâÉUÑŽ¶¤Ð ±Ópù¹µKòhÞ-rþÆZOŒ°{*×9æ-ò‚!$Ë"NòìÂÁËš÷O~Ã=A.õüàJO}©?Î{žœn¤§‚ÂM|îSäöqI@·È2ë.dYÇïû"Á²8[iz–í], pÛS^êâD·EˆøÝîÐ:°Euyr)mÑôûdɘÀv¡CC ¤y^Jÿ –Y”͉ŒMrž.Üdna}Çuá‹í⿲ðˆ¢<¥lAa~ÞJQÿýב¬Ç¼À ·¤FNf!Àe‚™³7w‡ÞSÔy¼YîÈÉ&^÷Aœ½&C¸¨ýÞýàh7ë‘êÚ ÎEÞðßñ+ïÒšUcbÅb+¡qÝê&2'8‡Ìëþl.®J6 Œ:)°ޱ$"óå\Jh ª“=»‰ÆÒ2꺰ä;²Ù3$ƒt\8ŠÞ`:½ŠZœ- ¹wHÐôü¦jŠÆT©êѨM*žKµ”x\¬Ö¯]sŒKÛ*º4ežš‚üñú÷÷ßO®hø»ô»©úëïköí8ÑPÂá…áóÿ=yÿë_1aøµ/À®—¾zMþìµ {óãïß?µ+ø1˜5D&[úrùdòå6n7^°|¬O‚ùY€AOªÙLI@$=¸R¾¿JÚ(š ­)+,ž c¼Z‘»ÑܨúUB–P ƒ“LØÓïdDÂòÖŽQˆ ö‡õQ”šíRhrð­½£†I(§‰IL %’V€Cê V\¦øªmÑߢŸC‘¯§,˜{ã‘H¬±úô€²÷’Í8c(]®#}éË'¼míKÌ‚-¤Q 2vÑåEË2§¿»ìf&žxÅ%pÝE:ë L–ðÌÓ±<¨¹¿æñ¬÷f,ù|ù53óŒ”Ü‚]›tßÖ/U°¦æw8…R«pªtDgäè—3W€ZcåQR ÓpËkê°Æ…´õÅÞ ò†&ñ'ˆçˆ¼—÷/÷†¦²Yvܽ!»2Ÿa{Dïã#){8Qy\@·»[úŒŸ6Ë¡dÍKÑ áÀòÆ¢­­¶`g¡>ëìÚ5Ò/6I)ø†ô𒾃(òJ²Åù9À`ü¾žÁ· ¿bòòj’705t*îs„ñï@¯[•îA7PÎù_Ñþõõf[@ÿ÷F¶”œ-Âh#ÿ#&Zò^DÆ;Dùì.Û?ƒh对Á»@&ëÝC¿1¡E·]pK~ýHNÍã×x£¡vQùÎü; ¦—?>á§ŸŠ ò\i"‚þXêŒäï²oI{_†Ï‰ñsn:ð`cU( ’w” …)ƹ,ÈDS 7”¿\¦DñPÚ|Ý:¾†+ßšª2 ¢Úò‚¤”NІ…ãÚo¢ÅB·öS×¼+ªôz7À©l‚ЬÕçiǾXÿ–þk2-§õÑ’YB2;ÿÐÒ¶/ò"ûú™Öé1ì(¾æ˜U7DI@Z)FìÞæÉÂ`ñ ‰öx§~P¤‹=ã4@‹Â\@î|uv¦ðŠÒpÉí2ë"‘j§“ ¾´ ë§R™;¢SgÓ‘‘é£6ÂåUó„/i´ªs\`ø6ýj¿«Ê7^”¨ÔeOo™Z!/wÌÇ0Ë_¯Hí§×Š:ЯÀ£Êýêðø‚HMn¤FéBøGQAÀÐt'gfÁ>ûIL#Ú9£0«(w.5/ ¹9\­,â ?/•+×y U%»èýÚÉ0üñG ýƒ…NÝâå+–“hºåaa\ KBJFâZþžÛB»B|—µ 8äÒsª¯d£bÿÄäß튿E Ý-š#zb˜tAcÿté,ç^÷‘\$ѵI-~½foa{x‚üL³%ji³*+È’ìÒ HKGc+f0&g Š "ˆPåºZ. –(õ©É¹™ŽÞÊC»5îavŒê¼}Ì4ôlêXxApzµ-l ,åBYUÕIÞùü1µ!ùAFfÌÜÓ­ËÛ ä½×çlsœµú`>†Ì³žX»!ì\Z€¦ä7„oÔ5ßõƒ_PisúExzy¡S~S)jȱ©ÁÞhqš¾¸JIóÕ~¾XÄb¯G’ºìõ ¿9++ÿÍæ<÷•Û—ÌÊ® Ò¸ÒU.îìºvPP@pãB™Ò“„–‚IEÄ‹ä˜9£T\¾ Åš™¥ì~!1Eª~þ©ŽÄ&Êhéeš ¦ðsʆ¨ìý±±*u}˜•(ô¢š×Ôò'S“wæÝº¹”ÉIö¤ÃZqæó…k¡çsÀ9îæ[êBæRË *^qÁ7£nº¤£—"⯹4RqIPBÊìë‘Î{ ·ÆM©J6¹›ÑÕh±QÍךéŠöd¦ÿòPË:2ôV±Ÿ–Pî_ØåE½PfåÀT >Âu†¦n*j¯T.†Ž,d=Jh&Þ6>k¯ü`SþlïÌÁ‹b÷<@@Xr"üÄËVf×PZ‚© Tg<×M'»6¹ZåíùI¤f¿†5˜˜:ø\£}‘š:¬uLç!ˆVÖø÷««¿Ž®…«Éü ÚÊ?œš©XD7rAÝ%†Ï÷Mê`H:ŸÓeê®±}vKˆüÙÔP/;Ö¿eŠ*æwQàhnÛfõFtY(S꠼蛤}øH¹MR”RP-§:qÅ£X" ætGž§““»Êòúh—•MM-Vÿå…ý\îáÉüÁ®k!Þ!®þ˜P'TŽ0Ð=ÞTÀŒÚ¦›ÓÓ–Ë¿¹w%êO¯­ãB®=7yañðíáh´*§¼ã¸"Dá:äøp­HwÓÌ’öЩݔŸëªŠ6Zóš&µ2/”‘Aôf‹á¼O47h멃«Iºlh¤ÓÂç´–z‰Ìêæ§œËý%&8ÿUÚƒ® üÌèù&>kz=,Ž«iXŸˆ´!$‰Hþ,'ül°3Ú›¦Ïr<©G çà yͧç²iÛ§Íluk)¸šÝ†vFüi3Bˆ/®mKüÂ;bú<ŒÃk•,¨ÅwÀ`ÖšðÏ’èÚçˆ$ëäïõ–]mí{À#0UÍ… ÙZž³ûž¤fùË]¬|ѬÖî91õý5°ËLxÍZ+¶Ôâ]ú ÿ-ÿÕBd1èš’Y•ŒH×Vé‹m´(BÑÕøƒC Ôšý£ÀœQ@ïí8÷+õÏÔ’åþ˜”Œ½š(4ºø7÷¶Z Z ácÀ‰qO`j «¯“tpŽÁz !@Ó“úÛoß~w]gÅ+;ßè¹¶×d7ºÜ÷)h@ JEæämG‚0âÖÕ‚^(²wJÔùŠªRü[$Õ =KX—¥ZNZ3ÔÙÓwóBü}تøÁU~®‹ÍÅ8ÂrÊ!tÜ¥âW\ ßû‚º@?•ß98ßS±yò=±tÙèdº¦¾F©äg:°§(+¸ÿþý¥c¥õ$.NÃÑñiÔ”VYáÇÐ(ÄÐ첊ßy|¶°Í¬ìEêךՕŸZÐ^œëµ£¼ƒ½™|g5dL(k)¹™´-¥ÙÕ“75•q–Ñuîví©@¾œï“FÉ#£¾‘pí‰o ëÉÌÄã…öÂSu $Ð߸~”î8Ë8C–äË]eó gõ6Ȇº¼l©£G»ä k³[¥Aâ9-™+m{tµÆ£æ»+ËHKÄ›-iÙ£Ð#hö¥&¨ ÆÇiäLV]üŽïgt× âæ[7"¨œ4fàþ*A\˾¹“~m"ëåÑ™B·§Âøh ^«Ts›%¿x]ä½ÌV´PÕàpHŒoàø[îh¥è†ž”\©a ¥t¤â÷Ï9‡žž.~Ÿ)§*³%ÇÍÀÞNIIrÖ’ñêŒ}ž¥¯@–ùÙ‡Á³žpì€è—¦c–'`˜lÈG`œƒòßl…|ã\‡D"ùIÐüž,çÿ­-´ÕÙK§ TÎW—- –N’Õ²8 rÖû³ewÓ IY}FmSð,þ5ö] V´Uv‹,¦1:¬ƒ±Ø”ó›…Í®©×úgò™Î!ˆ~Pá ïR© $E‘}É~¤Áâi×þ9ÀŠK=÷¨¥J´ÎºšyéÌxZþqMÙYvNŒ¨•²áž1æÑÚ“Kºk×táÕxMŒP}³!Ɖß6E½ƒ¶æÑâúâÈ#H\{ª"ëJº7ÅLêëG" Xû‰îDiê´ Ú>Ûy?| P»Ì(¼¾;3 mÃXü5÷ÒXkK•òTk Ä^Ý3úD" 1¼bÊ“äb=IfdørN§R@>=…™Ù®¤ñ·žùÒ¾2P YŽÃî± Ñ5,ìqÈø(7©“­VW‚ ôàÒQö³ÔSF¿ÈÄåt+#ÿúÉ7­@q̾¼«Ie núâ<_ÎBÎZÀŠ6Ží™|†<Á!æž«ˆ¤áÂpiXBÀäýJ;•'ñX¼7̪kñ–뵉²&ÎO|0ñª8ɇï¦é€1Tì^0@wf¶`1Ýô¾E›O~W š†Á ä‘£‡Xd}*²¥¦h%/(fq·K¢•­JeÃŽXuê¡ÈŠ$`×=„nÊA¤ðëWQAë3͆N„*e²´_qx¶.Öt‘0ÓFPFÂý™ðƈyk²X Ý…v¬Å:ó“‚®†®NÃÓwYp?#ʋ٠GÊЙó*Âxmп`Ê>ã²¾¤^à=ež=uÔO ÍódœÅì¡RÚDÀ‰,‹¨„Œ##/²ÖÆêžŒ¿’ljm+×ßIžîEè´¢ðØæF@cÏ•ÑO87wæÇGÏwˆäÄœ„`7æò=n[ÝoKsq"YÃŒîEzppƒ“éüS¨ù‚šìN5âÍ9‘. Ø/Øòf±axbiÐ\q'–ËÊÞ5@Æ ¸^ß³¾Ô3¤ÈÐ7UPL]hèzûíGÄí–ÅÖ±ÂÅÈÔ9^b¤¸™…ÁÂî€mïUR_pKêÑÞc1’r¬¯k›ªâ7ǂӦû¯ Í:6_,º¨7\ê¤äÓžír<¹ÃÊpÚ÷u÷í›4…Ú잠ɨšJJéüP$’¢¶Q(ÿð0$Pu:ˆu¶¨Ë&’¦#^壓@Q9=…M“Þø¤Ã4=Ÿ… ûÅìóÆÊÅÎî¬e ¯RÐ='†Aßý¼´ «ÃÎî í“ÓJv¥ç3íwÆ®qÉdæó ˆÁC«¶5$:‡—A…Ï1¨—,pcÏ›ŽO(ýÑ–MGã‡! ±)˜Aàž¡®F.Þ™ßbæ³­ÅŽ·KX_(v*2h½m_¸tÚH†cĤÀJòõ–™ãI!ðz©±N¼^bW‹o¨¦Ö–BÕ<ŧmÑR¡}Óx¥ý(‰K»aè(¿ŽÓ#ç¤~û•¼w"«j_ßøöQ—\ ›O.e1éA,Px/ø96Ív¯÷Ï[(iŒ ;nÄ| ®§´O¬d«¡…œþØ^9c'¿Ñݪl†"öâ‡+{ûýÏß|Z#ÌÿšY*{£¬õäNïËÞ®,è’lÞKä´ë³ĵ*Ak9´!^Z¯À–iDJ`#쟢S·Úy°4æ4<ÕÎÏœ”}ûŸLË„íiifQÉȉ”¼-|‹)KoìÆË†ßÅFà™ ätÒ‚ü°èOS‘ú!> ¿Îά@¼F^AG²>=¢¹”/¶¤ì½¸„1}éÔ^ZXÍb=À¤g u²»ÌAʈÁT)ÎIÁÁtÞ«”(# ʲqx9l#Žj´ÄZ.Q’Á&9)K@è7¡(VêÑå—¬{¶=ˆÜ^Ÿz-›+€¼Rá:Î]žä 8ÈkååA0~€\¢Ã»wI»›kF¢ª„µBý 3Ê+½TWmlu99uæ ÀÉ‚ïï~¶Ÿ°ÍËBº„¬ñj‡S_žJþÎ¥8:2yFŠ®IþÌ {¨üA"&W~P€ËZ NP^9"¾5B»£¥9ÈyX"AWd=ƒ¸¸âå¬éhHz«çK)3y^y¿¢Œ £ÿW=„H=¾2Ù¯˜ƒ¬Ÿ¼ínØÄã""Ÿ²%í™çÕ–O‹iCwÇ¿d¤$é ¶Û„Æ_*ëϧÂÍ{jÙ\á&ÿX’À5lS៙Ñ2⊠ À÷€n5»ò¼mCZŠíbÝzŒª fjKÛ6Å’Ö9é’KÓ\JšðÒÀ1ԥ܊Ú>0—7yCŽhi²[þæG×fîÛåy!owœ,è# ”%Œu¾ò ìlvv À(’SQ‡S½XÑ!~öVËæTSú"zÕ®Êè É€Õ ™]+ô9m‡Sêi“Ÿñ@”ü„àýv¦:ýø—H>_ûZšCy+KaSÖî²,xǃ~t§¶_«æ„RÕïÄ-Äú@ÔÇ'rXÛ¯õý Y¡›ì‘$é(˜þ/·M¨' Y-ÖÊÌ¢ùqpÑìJiÏ"{µ€Ë$>é:ÿRЊ¶ö5ëÑÄ!ϰS6Ygp.vÎ^ƒÐ‰ûYwƒŠÐ²©I5ë¬Nø‘Ï Þ­¸ÍÜ[>Š»‰¢ m—ÑÜ«rcW )²Ûg¡ £9^nGd/-vMù)èô#;4¥v~f Àz$ ,€ß›$6g¡/¦‘ÉäðqêÊ–‹âÛ!:Pfh„ì 0EƒH‚Eµå (ƒ<ˆ!º5–ÙÓ™©!éOf O"¥Wcñ“zê ؈P×L1Ln·ê÷\4္V®ß|!Îy5ŸaÈçydñT÷>ÿ¾²-fq”Ç>Yï½+Ÿ€e+ù2@ËØ$Å´õ™åÈqmõcøqâ›í‰0ªÿ_kÖŸÿ·Ôðz*©Q‘àÙ[Î+|›ƒë¿Gì°Ì¿©0®èë ô\u®ä.cÊⲜÊÀ¾_žŒ²3»P¹Ú2uMlP¾3 öÒ’šÊ Š'”xP°æÛŸÿ}ûT1ÆiÁ'ìZ¬pºç!Z¾ùjZÉ¡Œ £,´éX3µ6iÓéßÿNxMœ €‰Ù áÆž…–†[®°m “NCŠÐ+F*DÖ–fWyI~/ì—ŠuƒlaÁ¾*tÕÇU‡u1ú*áÚ}¼º%|ÐB«Ø8¾IË‚kPB·7TÔ?úКäL©ƒÔM7XÐÍÆÓ#6Jlïë›4&K}‡{Zõȧc²öNðúÒ:On¤¼PáÄÜi’Z•ZH0:¶Ì&ë¸Ç‘evÇÇì–­¸#\Ê/`÷\ÝX‘éÛ\Ÿ%9“LÝÈä ¢å_ˆÏ! ªnÒ |ɯ+L¼ IGå8½§ÚÖ  nV$£9±ÀwPc+¼šØÆ¤öªP}PÚeE=sFàøP©¨¤Á¾éIQ[Ç›i˜¥ÊÖRzC<¶].´vîÆ_¦}º7…»Aåç´ +²Ù’âÔ 6=- ;h,„ŸeÀÖW| ºQiI€|ØâQOÃõ@øhÿøÙyjšjl€úµÌ-M¬Vl8žÓ_”¨²<ÚèÏ•ÆØIÜxb?xvN$ ó3JùàþŸ¹",!ÛŒ·¿ûz(—e$=NŒïþ QÔ­B™÷m  ¥Ï5ÄgLB€,¼F‘eYf›|. È,,p7Ëòm¨if´™û7ÊÈŽ`Ä¥{+X“ZÄÙ®èxm¼&±?¢&þÓîcáv3®ŽÎhaÞlü™*!» )0ŽèeS:_12ƒþ ,ÁnUæK–d¼ó;z¦P\GÖ«&— ò ¶ó"Yò²EÔµ_kz»¶5<îk{HÞ2šë¦ýHÉÊÿ´­Ò½ˆûYNºK€3& †*áýT»_Ã6ŸÊ!/Òð]ˆh‘ðgÚ¶ŸØ6  ×½zÜ,ÏH¿±ÕæȺxŹ–~= 4&29ôÖ*¨+Ø9O²¢ËJ*ö‹tß\²gsÈ‚ˆ£Ž>ür>ï^®³7@™1v´œ¾K"zä‚ç§©Ý IPÚÌŸb[A‰ŽžHméšVX^‡ÈرXsG¼lñšË,ìW5Ê¥{§¤×lßd÷̧øœ”€y3wA;A|3ÞY0fiw™‹Ÿ`.k…:²½<Ӹ̟7MÈå(•sE\†øSñ3¼®ßFšÓÌÌy×ß93IÃåO ÜŽç£1¹Bþ¬Œó”õ×pµßé¢À|Ë¥$'Z^hª¿EÕ†Ýÿg#:¯\I£=m:[³Íñk ¸Þ "µ=¼,xÌ,Û¢UxΰIžãAÈ#÷¥3ìXywú¹cG ±faÖ«H¬tecDT¾.'V[À'º«=ÝñæêÁnÓËåe³[ñɘöPkß Ûn³Ð鲞GÌ(0Ô&¤iç^M|Pì v{a\$6ÄÂ+{?LGÙ?ëMbqÿ˜ÑŒO¥Å Bº~[.¯5ÉbþyF!ûV^ìßlt J?†8²KU DsŠ$±ñÈ®›+÷¤À& »Ú¶ýËad£9íç N³éI+’±¹Øu$¨‚yku®igØBø[eI‚(¥´»ºGO®ž`-êÆb²ýE\, Ò²ž«fÓèOW䛺©€âõ ý·ïKƒãMµ{.Å^J@-3 [¦7_{õ%Rè{¾¦ z§Ø®áVXK^$w@”W|#nù/h‚5H0ZþTUpài)°­aQîñ 1!q ´ìÍ€ ¼žòz£òS×Û©?Õã©kmx–mÒê@¾ÓÌÐúŒÂ ­*ªy³t|éÌ£"/_וž:únÓÑΈ.ÃÛ–'«hßžÖ?4,#«OrmõÝxø·±=á¾æéH$Û›{\ë’¡?ÿþ¯L{¹TòiÔù¡¿jØà÷çg^»û/„í(A(•B°àãZD2©@ººŽçK¦æDgo¾ǸÁFy`KÚ׃…s'­J>¾T‘–Ê/÷xAùÜS¾¨ÊæÐ²ï+ˆÍvsj>›¬Z{ÖÙ•kBˆ ÇzÏè}AßÛää×Ü“=îF1ý’ù¾ÆKYnÙY9È0-G²ÀW7¹AöšÝ¿Ÿ’Ía ±ãk`¶©'p³4jV6ÐòÆ2¾‡ù3k=ˆç#°4ñßOÛ Ù„R·Öf—b¤Èq·@ ƒ:`& Æ  ‹ˆ@Ðß'(ÐKQtˆGߨ¹×‚ T‘í¼N¹ “Pii`ø¡Ç2Û-–Hµ Àß›€:G…õBç%·¥Ûƒºu5\=²³EÙ=–mö˜ÆðH“â¥k†Vfì¥ë]î—ôÈ7‹qÌ^ÉÑ*u窪ü0®¤KÜÝ•ÃG|-}@–€¹³NrŒ(0›.ì/j׉a¿Á'\1† Ôî³ê¦Bˆš.\¸zÝ4«ÈdR¼@Y˜',Á¡¤ïX$¯a€ÀiQþ_ÒWkpÞpPk#‹Œ_Møæÿ9óe€WÇ~SëÖl*8áSœ-'ÞZñÝó”,¥BîÌ­«°æN,ËâËpˆD‚d ÒR¸‘™ï*ê ®âõ_Mé” …'#úÃkÅp2v­Äêù|eá:†C{ë³6,=qÙ0̃tȺ§ôƒæœEåX[áaþš>ÝjlˆÑþ±óÖIøH~šÈÙð“Wí Ë,´ ï©\n‹rY‘tʨ½}Ú©‰ô.\²ãFÚ'‡…I  ð{½ _n¶£‚äIuKøu¯c•ÀUûýx*`×Dã¢rðMÛðõ÷Lõxi¼U·×€w+z|Ä—ŽA§±¬Üü”¶ìgé#æÄ­W“D?K5èè÷’uú%ó:UÍï«e)FŸœivÈ©b¡L¦»í¸²*ÅéŸ%]oL’+`o”/½-ÓZjÅt Âi¹Ã*ϘËp¥\™˜Ãîr®f23`K¼‚a~'å!ª#Ñ–» ¶ Ï<Tô‹¸ßY™^²èÍ(X«Þ ÔoнÒó¼ò=¡©ÈÊ÷†yê°ÃÓÊôžkF;ÏŠþ\X NHĦK´¼Ç瑉ï=#eRC7-‰ÀŠ èýdÉ—]Jå¯\XH±ºÅq^ñµWÊ $¯_¥«–(‹Ó¸ZÛb5¹d2°?v¨¶RE!¦¼E6dLÙýb†-¾®¹QšÈÕc(xòÇuê¥Tõ-ö`-ÝRÜÜåsqi ¾ð\õà‡DQ’Ó8¬QŽGÝ'P´÷¿|v͵!3r;R3>þLoWäu¨ëž}G·Ó;¡“FMVÇÆøÝbÇì‘v€ðQ)+HwK,hsþd™ U>÷28mÖ?å‚käÌ—½Ÿ†óÙ’ztp‚—;WÊ#m Ë­!¸O”KBÍ6i¤«p Ia)Ñöß>¥_õZâ«,Ô¸ a©ªM2qâ"Wäñ¹¶ÌÔhù%œ%!e{%'Ú'Bâ ¾(V¯ÓP^øñ²‚eUCEµ–˜•†¿\úËÃp?í5@„û\Ã…vÕÑð1P*à;ÜmO‡ðp9©½Ì—ì:è#¾HÕVÉZ¾_úË‹ë‚s§Ôp¨ ƒ+€ôí¹‚‚Ï’âèQ¬ÕN¯›î^vNíZùÐÝ'­Ú'À7\†5oÀ•tRIÇo(õÎ^éµÀkG$Sû]Cˈ×€/®æ%_%j†tÇ+KK®ØTÏÅ\¸1µJ+)­[•;Ä[ãÀðKc kjb†› ?™ˆŒPKQ±h«¡¥Sæo¿§9B3À(|Ú­¨ç®¤êˆ2o]!RlIMFð‹n¶¼ICB`©´ñmÈÀ" ®·®izhù‘a‡ªêÔ[#΂‘KÆy›•¡z¤ÇÃ*{yhy½P?ó_;%ÕİÅ]ë¾}÷'DÒå‡Ëéá®ßTSšî¹õ’ä@nIؽ6 ã·Vý.>‚aÎK€º“ãbþln‡“Šm¼*²®˜¼^q¢¬|•W,2öÚz©ÕEmVÈWóZÔtyQèØ ;u÷ÒÀŠ,™øl„t´©›"·ä¡+¿[“É”wšÌ’g9¿£)2‡¤ ïcÉtmO÷N?ÿgvKt’ý02²éo±Tç_ÀpPC•Œª‰µï¿®™µÏ6%Н÷8®h­³ÜG@´Ê…ô®Ö'¼[a¥u‡¿ ­ñn´@%­ÞòÛï5²N¦·Ø`[IË¿ ÕaAp=uR¯ÅHíÛ)üqàçbµBË)‚{f‰SôiûzNòym±¾4íÕçbÓöl£7Ó=Ù½,ÍëÅ lä¢;Ãp×/0^p÷Ì[£Å‘,Üë— ×ŒšŽØ~½7Ý©ÀÁ×ø\…aô!8ó67Ž Éäâ³þö`eïJŠr.ûp ÂÑãjµn8u‘•tg˜‡Š~?ÆM¤™Í $z¦;s;}<VVpB¾=áOjN|'»QÚN{Ó ´Ü+B)V¯]KúëáA`h t,ØDYPÈzì¼óþ`ŒºTÂ'{íÞ´$Ô(w5~Ý‹n`ޤ+$î›Ï#°[jæ®eP°Áš¦uÃt­ tqfÉšñÍQº Á–U§Ðx5Fªß6 •à2†¹¼"ÛØE• ³wÕ7œ9Tg%x5žvd¬`¬ñÖ{‘‘å§SŒVjmÉo¦¿ùëuMD`–ìZ´Ã#á›~°+ˆÇµù I*ÐîªcmÍé?›&p‘/÷ø]×fñàø{Ânq_ v‘™DZ£d+ÑkŽl0.AcÄî\áasl(xêŒýŋƗ3ïgyЮ$ZÇüê‚_µæß ×ņëÈ"¶ÚwÝ…Šž—TŽçâžÃË‚œ _!O-ºÛø³Ý¢2½€lLøV$߯`e´½ˆ¾DN˜–¡+c¹SJF÷ Þ#Gê”S(²&%Ï)‚ë2~Ã7¯¬X“Sˆm)Ät!üPÀ/0RUܸ#†]^íºâ¾ Òμ ?n±¶ÉœƒdÿÌnMGÁ­9?èIñná^·˜ÏÐMD5ôy nðMžZˆJÑ´UUêíª¢×ÍØ!\¸Û.£ë§Ù´ZŒzvµ%¬o(yAJ—õ`ì,ÈÎÐüob €]Gš"õHüî‡eÿ¬ˆ˜Æ™¸“ÓÇßDgâÄç-ϺÛÒ‡ž`Fßf¼ ãKV&$GAKúµBÂÊúT^ù–‘;_¾ÿEÆf8É#B᳘v¯RÂøÍ³¼Opg÷*$&ÖªpÈs€Õºårßk‘Ð:kû-t[àHGOoFÔ}º¤®ÜÁ•Æ2~ÒdÌs•BeÖ9gö ίãì ÿÞ;ô›†•(Ð-ø…öÂBÜ+û2191¢¡mb¿&FãˆÕS‰Yj_zñBWƒCs=Ò«ct÷n©œ>¢¾¡:s)&FÅ÷I†u‚Í“¹Üõ¶9Úˆêâܦãõ ¬]êØ]“·Ë†â%³DQmX*²‹Ç™-5|Å„…{E –ñmº×s¹1Ž HUq [b[E¥Â pX!fæm ¿¸nBæ8.¿0iÓhŸ~ì2ƒ8Ö·ºØ ¦úbOUõQXö“†‡ñðzQöµáÊo¬ñU“–Ÿ½ Â1WýÎUÀäß~qã¨A_±6Ð5—ætRfŒ®íOàf!ÓÙcšåbòE×;… œâd|hÂÈ]A­["Ë·Œ¿u²MÊø\5W¿ò¹´ÖïÜçT× AÜŽ»‹†›ÆÌ:q’1JêY¹Ž¢0S qûÑô—Bƒ:ÅIK”kw»Y¾HM•>ö®~8“:{¾«¹¢–ͬ%C&J!©nDh‚Û 4 Ø[CzÐpMU‚âÛ߈£zþ=âÜ(*ÒNÿn›v}ý–ÿ,£_Ú -J²Gí–ùú÷º^{âxíßÍë¼õëF F!1Ýtk\’˜åê‹¢’Ì+èÿ¢ ËR\þ§ ÁOZ‰ßæU]öÐõSKÀŽð¶¸`ôÂù±3/MûžwÄ¥dÝœÚÎݦ½´E ×ê4>'Ìž¶ke$p[Ÿ<‚¶Ò?^̵j`ã(ò""kçYëK½°âú{Æ©³«1kåXF¯WwqÑáóö ·gù@Õ\]’Ñ{¯P;¦ ÊìüÖ`'®Ò«è̇-¸ÆKW¾®é9iIÇßÿA¢‘ñìÇç\#òvä ]—cÀ‰éª{FJZÑôa³( OI¨(`¹ƒx¿þØj¼ƒ20ŧÇYóD´6#e ~’´ø÷Í“‹!¼¸²ò‚Y=³²àM‹5ßÚ_å#a§¬ÜÞeëˆùRpwsý²Œ‚ŸšÐ8÷k °+±¤lþ¬å§Pñ˜xŒ>åï±¢«£H?ØF”„f"x‘ídE¸F¶•²PBÔ3LTc¡ ‚'˜S¸4¨VB8+âÁÆb~Ë3{¯iÔÅäâW#~s:˜cç¾=Â?uîmåÂõ]hß´;âóð%Ãø_h}Xè_à$Ó¶t&×'?"e2Èqþ”ÈäAT²bò·©YAz û³`RÉ>žQ$„8Uðͽ¼˜½•®¬ #uIy Ð³ÿ²½èpë3°> ×Á¬3Â9ð9J7R­ê5+j¾.3c¯¿cÏ›3…J –å²hϳáï\Ô¤ÎèN2=Q¨–Ó°ÅiˆXvŠ–éžq'š¸sæ`~$²AQ£xõ鯢Â[û NÝ%e@ú_Yüÿæ váž)Á·ÿ(„<›‰(<ú,Åe5³i½¢N”OI ÒÔ\3ÏC•B›I:¶ëv¡÷+޵«sÄPï¼ëÔÀ»ÑP-‘ÊDemº³vkXIXŒ³w¥­5K¥Ažó:[Y‚žÆX}}Šw/6€¤¸ÓWóûàÙ`¶èÖ‘ ›Âqñ"k úXêOnU·ý"”d¨³kø·õ·ŽgÍK¦Ú)K”9ךiGrÀq±oeU¾}ª®»hÛ¼ê_Uó»#É6ÖUÆgl"ñø÷P$"^0¦ƒÐztË‚¬Òƒ.‚aG ‹°ŠåHöa…I˜ÿyÜÔB²ÚDM¾:·¢ë7ið\á¨h²tã§’*è>‘þâ¹#•‰mVš¦wé]ö©9ì  F%³!n95Mïdq¹]wãw±W‘ÈãEšxàLäÒ£W®¤½¸¦ÃlçÛ»ÅV½¤½òÄìamÑ*ëõ€ã£-Û²9ÐX‚³Òϰ¥`>Þ7W˜aºÀ£(ži³Žúfƒ\Þv¯ÕMªÝŸvG’ë²`âáTÑ<¤¢Ç: ùzÙ£uuôÖ×cžÕŽíx9 ’ÑÉÏí¨okÎkÄ6.TÿâÅÄHùAžºë“5‘]I^@ÚY!¼¶J¹Cxµ¼ð„ÑŸƒ0WxÆð#3!M~Ê>õlå…}v}IõüµþŠ®MšŽd% ªÖ? —bÒOoÑRušìFûO—€ÿ¿Q|?¼Se¹ŸÞØ_Ù¦Zƒ7h¼âë—¶©äÔ·˰¼(ò#5§KUþ¹ÊƒÈ? Tðö…OWƒïý#9p¢à ¿}/¿ñ=æÕÔ4¿÷Î2×-Ÿ @ËýžþkBŸKGµ‚”\§šÖCÆ5°"KH&ø‚çZÚöE^d_m—¡¨vÎÔÑm.%ý2<"|žs×$U[¤Þ»Aöþñ×=•DÉÙ°¤4^SWH¾£«Pçë÷R™Ò°=ŒçŸ/å@?’É/D¸¢^Ü×0²ÓN„aLÌ5±«YOX<»Ã¯‚á¤)#9‡§Z¹DÊ{em¾¡ä¦¢ E”†Mõžˆ 8ð¶e딃°3¾ôZÇOVöR_†<º“‡0ù¼¶1EëÊ ä?§Çóµ()É^JÓÉÅþÑž’¾çGüêǦæÃ^‘Mä´L.CâGì ÉñÇ^ $pR·ÍÍ+X5b ¦ò•ÔUoÓÐá„b>½w< Ù4Ýç‚û*¾üÙoò]JHŒ¡¹IW«­oÒÚ)S‘6!ysâ3¸fß0ÐT}Í._\N‘ØUõ›‡ÕóÑ[äGÍU­i‚w5?é»bÆ@6Ëí3Ïz&Áˆw=WaÄ¡$ËO°U¬k™çüdIã7˜âÂÏI+¢±üÙÑAÖø(þeG‘¶ÉHUnæÇ®Ö¾çÇíۼĄ ÏBë3,8E³W*d\s9 _E9ž1°—££U¯XŸúa>d¼xUŒeW”i¯(±òR¶ý6¨¼£˜j Ý,Œá²Qjp”ŽT¶ˆsîg€ºÏ¥ÏDwêÍ™öp' ¼(Qð<¤/I4ñƒç)¼rÐ4Z§žÞçh·‚8:ê@ôüNáêyM-•«7VÜ#Žm“÷P¡j‹~^×!òsÁÂÂòšó™Rµ¹í®ÌË¡id˜²†n è©®ub¥ ÂM5¡¨›ŽŸ¬¹Ë*¥¾:Pâ¾Çd§ìwoÑã{©qkX¿h±^š ³ìnAã;×q)ÃÚÇßs·ïRF·ïRnœs e&=Ï-}ÙFK_¶¯þ/q] kåü¶»­ÓkÑ-^>Ü5jù3pØàÅX!å7Þq‰ø\6-¼ ™§wC0¾Û¶ù³O»¢mÚ>¨µòMg[Å+ß‚ ûæ/,¶ÛÆŽ +~_£Cê‚`Š9"äl3!¶Åâ“cÛË[Òr­ä4-æ— ›ÞZ·NSÚý]Љ[_£{vPÂ{ÎVób‡S|â4ƒ K|+(¯•õV ·¦äZ(è†AQ™©™Bs‹tí(Ç%9õx.âµýjeµãå rN•èÓ“¸a²|Bå\1ØçHà LŠ8âÏKŸ%‘à O½:º»u+à¶xØG©m—¶BÐs,a|0ò"«>mó®q¼š˜ß ‡!¼m¯§pûØ ðò\ùB˜ørÍC:Ê[ñâ6ÈÚk4ÃÓfxâô×8d{Øì%qm‹«®•QNaø…{p —ÚFðÑôXß”ßÁdJ- F@`hHƒäÅW4/¹ÀæÁ»Ñ®¦%’L9ê¬ãrT({EA]¤µÚ†­ºôi3­¯ÇªâMm:–”ôÜ_yWó›–ühêÄÖÄ? ÿ¦+.×­õ)ßdãµ0ý« É¹UU³áÔ5ïŠX›‰;.Å}þ£µÛè˜I‡?×Οù‡¢ ! 4RwDÆ%Ë5ˆÝ¼.ˆµØFŒÍxQt7Ô5DMóQ¢}ôX[°g$˜¦¢–AG·ãùð©Öú í…ÈD[ô€~bѾŒ˜u"Cø'A7뜸C`ÎݪÜegà>îÀ¶ÊU_ u`܈°¿z{9üÔÔ‡IŠÁØÈ²qú¾©Êø0¿ÊÔfè/¤$î÷ß{ýc¸ÆrŽÀy`ÀfsÊš6h’Ù×ì²@‹Ñ"«Sº‰¡I°/!{¥ù&ߤjïÌ2§ÆòD@£}Ýîhœè /⧃®qÿ^€lÖ¸²‹Ÿn¹_6u;j ŠN/ ³©ÌZØzt„Dذ¼D{t/”2Y˜¶Çó’±;–›ùg»f|å¶e´é$ þ BÝ’se2G˳y­Òíº’E Új‚í¶TØ£xMÕw®½§\`$ÚØ 1וõ…¤|ä–]ÝVg@´. K–í°¨y«Õýq`§¨Üå@šë›ºqð™Ö[h@Þtþ¼ÔÐ4ñɻț_í„`bØ „´éÏ)…tú{Äm³ž³BzÇF !ðÐþYã`u1F1dM]Nl#·ÎÝ`D®,õ9ã·ìÛ«öËú|¡Ë•×™h½;MT)q&À¯0˜ƒ—Äd¾y„„oúÏ}» <×XÝ Ütþ¨þ5ì‚€84ÛŠbIÁL"Öž6­òE ¾›†s#<›Ô#­¨\CPv&íÎT‘'™‰ê1¸´#sñ¼Ýy)ÁO¸ ¤¡×/1.ø’Urä°  Í]#£aK{&=ÌļMŽn€«Ìæ=Ê\›;7Ú5¡¤7ú´¸†„c ¶‰@{ˆØ0‹Ïs½´KZâ5#¾„Ò.6Ñ5ÀüöÎï›]WÌäJËÖÏ¢íŠ!Çö¾pªP .ÉtÜž )Ë 1‘»b °i§R×µ^áåõÒ®‰®Å-pª¥#ÁWL‰ñùÅ=Φ Kø¦ß¨+ý´Qg"rYSú‹–õZ×|…Ê—G[‹ar¿¦NÜ—ic\3ì-×¥ºï¸±a¤ñû„¾“²\µç/h1H£dÞlw[¤Iýs€xiŸaA¬‡3ðò Ár¿7?=8«4¹”f½ˆ%xmP:B|®K¡ €7µçúºÇé>èyõtÆ4<ãcÁA Þg5ñX@É´]‚„W(䟖܃®|0õ`4F”(ƒ?Hø€ËŒ8Í.=WPÀ‡Ñ( ˜aìjaØj,¹+-O–úì¸XE†—;#wœ†òB:qÙ˜Ÿqi.M¹~Ö ¼i«'¼WNÚ“²¹“›ò`¸u`„…—Œ†„a`í’W@_)ZíÆºn €ÿˆK¶-xÖ‚ü0·‰žnA)SŽ‹¦£5×9ì ‰(™jl“”‚Ñ~hc»ö5´ºøí\B¨Ò \•˜ûŒ3ÆSP°)È›VÉpt¬¯œ“m)Czöuvö¬Œ°-ðÚj–|øPRÕ@ÚgÜÚÜ‡èµæià2¬ç÷C~´ÁÎm* â÷tû¥ ""œy›Õ¤eצG‡nÊ›,©ùt”†%‹ÏäëaÞx_‡3òÚOø[³ˆ¦x¶åÖ7Cg¦ëˆp-2H;Z¦Ç—1¸Fܳc0 – œ©ˆ¤½Ô«@|À aAþ›XQKÑ-–Îc Á½,ú#¡q‚¿0B[k e8•¬Û¡¾W vÇ·¿ëƒõPd$š®þ¾Â¢ÚÜVþ€ú¶Ñ eŽi‹QÌOèò6wìêJ>èZÈ<â ž>C² +b—s®Ï1çM)œd5¸ÎjÀQ›KÜg2½{È}µiéçP)åôö[[°/u”eÆ_¦(žhÓ^Ñx¸]i"íóÌPó€4«Ÿˆ%ÄùîqžÀÚüÜâD"1§¢’>U¸[Q~ÌuË·­ág‘k˜;Ûzx³ÃÆ ò<ƒÃ!ËègÂ…kº‚"VL~C#éèÒV¡ð•§_Hf¤÷²µ!}SH4æ¾ÖËm£•OM°BätåžâCM;òõSôh=’,*”™'üÕ¬£ï©ß8|oëx¶¾ùjùqC²§iPïð²C<(_„ òí ¤U®@çMBàŒ*{|Iˆ5Gl¿Þ›îTˆðƒ†¤¯@BFFxÈ®9I‡ ñ“Œ)º&{J3ð›Éœõ^BÊq;áÓbp¸†"ÿNK’®ê 7K%`ùÁl1gÇú¥2'­ê‚¿¿ê!¿ëOF¶(ûì}¬f®ŠNÈl\»‰N+Na`rªª¿\%ÄXÁ< sEéAWa•:ÆùDEç”TcûŽÔ¬å ϳL5kEBŸAëÑ#ÐjQmÇZ×™<¤nnftn ‹p^ÎÉÃ%GQBÐ+è¹Úïºçå·,jqó¿Ý0):,#umˆ¬J8Â;†„ĺ¥57'…åxŽ®£—¡îÔ'šÑ‹«EF­kË;³á턱ò2¨Nö2\$¹!‡Lv˦wrèc¶’þÈ»Æ5D€ˆÉ¥yîÞd*@æ¶VSlWáàšÚ±SºF[%â ’Ä3áŽfÛ܃,ÉÜ‘DêW'çb, ÿáþ7Ù[mÖ¦›7~›í ²^ªtNw±AF AmümÏôØ*ÁÆíhï\ÝV-Ì=`'Û>«“lC‰2ñ;µ††ø¼L¯¡«Áô:ÚÎü¢Sg‹Í„γïËîVš¯¿Èˆw>¯Chn¸G¼Åg±)šN"±ÙåHý~djîÕ,Þ˲b©Á2¤¶¥nS™ªÚ“àÿ.òƒ:Ôb:ŽŸ¼Ú†hn¦ r´ò¼3òÔÈoö}@“à%¹nn·kÀËbfåÜ^ðܼ2+/€Rœ†c³Zï6Ô¸5Ø ŠmÓ’zŽø‡"tpÏ*¤ã¼¢¢ u¦`!””é¶áO™±P@Ж™Õ mAÑù^›þÚ¹&µA l¾»M^è¯ïäŽÒÞ´Uº=HÂæñ²ÙÐÇ‘ƒZ×±.+G Zµ/ñKî$m›üñÛ·ÅEæí6ð'„O ‹ ÛØN¥x^ò&¨%£†ø(jùþéhØÇ;å{x§ÄôÂx/üªVþñšVþ9)OØê ÿùšæÿ•þ3[,<†éX{à—MZÉ—²3_yÚ´«D÷ö ‚w…´gÂù&z9iÛ+ó7òJØbÚÔòà âzÚŸ¤ëÈÏ5ŠÖÁ6¹…Å:”îí¸Uçî–!ê®îÏ`ÆmšÖuå¶q‚|'~M·_V+ÿÀþ™ñÑÚ!.õŸš¦GîÇ¢Loœg«Èêv€„§ð%ùu›Á7¸pý™ÿOö*|Ûa½a`’ç|wÌäÄ7š›~tn€¶] EžâÂî©qún‡²¨”Œ'ÀûvîПÈYÚq%UÇ/àÇb÷%ƒ´À„ô½È[ ,´ïà’—¦©“‘TåµckÌ“V'Z3 z9TqÕ&/Ä4 ÝS–žîW¯vÔ}¾[÷Ee1Qºh9©ò?e§ûgÂ÷\þ+ÀA•g„ÔûóXµRû†U"ÆÿØ’-Ô_ÐVëVaufð»×p¿‡¯©wgC‘¨’½“­ÑØu_¢ ‚°«6¾Øô‡ËExë÷·ÐhSÏÇèò˜ ¤ÑQä ß¿|e¢*jëk´˜9JÞ¯\›kÉš¤Ý¨Ì?ªRÇïpîÈ{ie·…§•Ùµ—”4XéCu>Ê„®Ð Äk!h«æ(‰<î¶sÑw¬çÞ¬]Á }¾¸–0’ßVb kŽu¼œG‹™F·YtaÆM¾ŒD½Ð¾!,õ¾¼n!ݯ&±-·Ý'¦4ªwíéüh¢[ 'l š5[Gc*ÒºF~žŒ!Ö—Ö`VÖaòë¾Öð]3|5Ÿz}Ëâ_‡ÎâÐíéöÁiÿ?ìÇl«œ"ŒuüÀa~5ÃèP8¨’)Iž¤6ƒê½gnâC ›;^tQ¥ÚþÄŸ÷U;¢…e:.¤a— ¯\Œ>ÂIËνËÊ…qÅܳ¯Ÿ@*ˆ^ ,@û£ðl{>(™°B €¡sâ/¨½/+ÿ÷¿)b(“Ü[¶ü¸uÁ0-nCDMsP"”§%~;1 6¤¬é±ÝRÓFV/ ‚lTTÚèF[Wš™Ëø” –nk²,` h¶Ú¤=hCàØ’µ×F©'DíÎÔ‰¸&dò-ÊÏßèÔ³XXÍü j)ئˆÞ»Õ=R-@KäT>ÐT–å#ã}×–}vræ—‚6íŠK‡Á¶|†Åyÿ9±üK–°â¸›™»ºGÉ»5+¹2Ð’€”ë1pÙŒñ7®é±ëNóÍæ«ÅX9×XX6”_#À¼ !miƒ!i¿¯}‹ä0®ê"9æ&(ÎAÐêŒRD?—&²¾Ä¹˜Z!þêš9y5amæêz¥…_³‹AG¥ÇÏþq9ˆúÿ•fØ–¿ð}¡Õ®¿©-{¦üdŒéÑ‹cº^}TÆš®ƒ1šG™ ùƒ×ã,¶piOÆÝ+è3±ëïß$ÃD€ û"z]JVd?ê!NbÀë워Ol7û ÙõSÜ6“ß$—t¯ ·ÖêÙý+7ô‘¾€„gŽ`wìnD r\zÇžà«æ O3ÔTOÚb­wy"È"L«ûÔÐÕúŒ¥>[x¯ ŽÌl[Šòœäèâ4„Øß},\óÙv-Èë"ä4‰Õà°Ä1P®w"A¡—:³u²úÉ–ÇÃHu"8;¸ƒRË ÇàÝå bè¯Cu:ÝnµíQ4ÀrâòÒ/äÍ8^ÄãÔâ²É*œc*{ áÄ£Æ÷E>ÞTlópé—.Ü /:HÔ(D{†Àv}Fµ‡Å X?Âݽïž-½Ë£ €)·á¶Fw8vz󣳎"ŸIÄÅ3±¬~)ãò÷©èÇÂÍ¿«4Øž_­W“äT€;μ$Û”KÛÌq29¡îßsh> ÷Ù Û§GÂ{ÏÁ¢ ®%¯¼/ï´÷*°;;xLJü<áj»è@ßz˜gjÙV¥W;™D·:‡6(aÏ­aìIÐZ–œØ*§íDEÛB;mv³=tÆ=åE‰ã$˜BM„À‰ÉVåYòQWí·þkžß4N9ñ‰òH.COkQXpï¡ THY&ñ†¡ ³\÷@‰¶±ï¬†éCœ(óÚ"ª¸Í¬žÌM´6Ïëf@×qÂ$µ¡£5Bž-e´çRP#H6_±ÿ—¼>±ŸËBÄ~Z­©ÕOêZ=Z(Hp¶}ö?™QS{s¸2†®<÷í§Ñ¸Uu²‹ãd§n½d~žÚCY´÷¿Ô¿o´;Ñ®afÖµ;N“„¼˜oËŸ=-5ƒP%¦6õ.Íä ðîëA Q¥¾ŒÍoœ,.&Â¥é³iñú¹f_ñS* €(SÏ–#ÐÈxí=ik9üÐTi@·øŠåR˜ð”„¡˜`"/ÐòÌ-´¯Úï8/ƱàØ™°¡W¢ÉÙ$^ ¸Ì>27)Ö’ñÓIœ)ãÌ¿ ¢ð-À'…¥x+ºÇÂî«?$Cl蟙ÿ>Nßç…>›Ñ¡:‹0ú%1_Ÿ¢È?=‰;è¾ôc¨‹¦[üÝq–œPžß{ö}O7ñ*ƒ½íØôb¨b‚Wgð‚dj=Yˆ×Ý^~UÝì-+ÍÜ×!óŠ”!»÷dÎ à’®Hg~¹l/ š“"¯¼ì^{Zq -ãìš¼3 h:ZR¨z„Gá¾¬ã±Øä‡Út$òö‰†ŒGÃÿ¹ÖeW¾!P>©f„Y¿°OÚº¾{ÆD’}]´ç¸º+È܈›×©©n>ŽØ×ïa¶Ó9Ñ7TŽÔûeðrZÂ~@  I½VÑï¾ûA”£]ÃÜ[{¤¢CΜKÃá]Nò‘Ÿâ¨±À.{è±OAð$Ô³&‹~ñdFoÞYÝ9U¼éOžáÔÁÓ‘ß²GkNõ Ô<î!‘Š«Õ]³¢ýÑ Ó7 ÇögÎ^6(¨‘þý-#fK(¨éçÑHd–o8à·c*L´ïˆJTz¿o ÜbÀ¬Å-Ïî´èž%ïþ5¤ò–0\/\Û0šÒ×h¼qºÈ»¢=êKRôw$5]DwÉÞzCEƒÇ€ÏŽ é7î«Ë.AlíûDµ†IûrJ©QzJÆÈÅ42å´ ð§‹Ï'×¶ÔRÁQ†³ÁœjÁ(uԜڣÜ0ƒŠ" f|/º,j‡¢(wF‡%{ pö‡Ž`Mztô0U>%ÂÅO ¾eZA ­ÆHG‹}<ÜZ|˜ûWµX„ÆoYmï\{¾±Êb¢äwµú™o0ípâÏú™•|$䳤œ] .;«Ò,42ðšiO…'´F£°JH]Š4¯¤`}𫚮žu-†šþFZ«9ý°gYTî5Ærå“´]ïuó³U QñFÕfQHG¶¤g{¥¬` `—˱fkàƒ°(W'E+wéHZHÂ*]Tß×àâšce`¥Ú£Q º„`å»RdŸÝÀ±ˆ“·ßÞlÑü6jÎõ-z‚ï€^uŽóCÖºå{h k>¸µ&Ë?k"Ÿ­Bu7ªü°‘mðò/­ w–ö‡YšJÇidÎÈO›L âw*Ê" ü#Å™nW¢¬=–ÓשïUÔÛ*¾†Oò¹DWDN5ê“||ž|A"¥­m M¡:T+ ÍQ:ÖÈÚüàpYv̈H’K!u]÷óÔŠâ™…7M–©Æ?öÔ¸îzQäžâ¼ƒ ±OV NÐDÇÕ§“x|šxAʼnÊêFXùæˆäU_B²Èí{µüæJ‹*ç7ƒ  ª¢w½ØóªKbÉÙŸ ¶3Œ_LºÓ¹eј–PÈUaZt…\ÍW“#Ýå_òo¤£§¢ãGÇÉß¿ýñ˜£R­Ñ:80ÿ4õc8X£,q³5f¤±ÂDZp|ò?ß6¢^焼¬I?-%iJÊI–5 ?†ŸU†;ïé’¨nÌ…'ÀnMyT¥9\²Žq¬ç ä™XZ$­/†ØQ¥F¶¢OÃÁǃÿÿMÞ¸[wΫõTXc&S;Ê£|ì«|ëìå9À [»óCV§¨üu *Øì¾ÛÇ+3ï>rþÙms`h$»œ759ÕC!¸O3˜‰pQ1²¢â`dá^îè9œ!g¬ Nidã/Sæ‚ÀîhÖ€—ÉDb>Íïù‡§”$ùÙ§;*‚Bn;cKƒêìK[.joZÎË㚃K ÞYÙ=âaN÷è(-Z3 ¡ Šv…í­•˜îÖ5M¥§¥ÂsV7ï[ÌZǹ¹ÏÈß&ÕÚ—¬× ÛµÜ ²=Žv+èdèÉ rQ\T¼¢‘“E^‘K)Ú#R¹‡³„>ø]º;ÛÌnÇÙÁÇõ{^¦Y£Æá)Øvb¶"3µ™c—Yá:šy9/êvè·á;¹º‘Qúq/HNüàÜ! ÜPPòNúìš7—4Gf¢§QÎ¥yS™„!Ñi–àˆUk‹Oúé•kô\ÕêƒÁ™(Ìþ|!×–¥3ï,ËÆ²tÎOv~°2Eíí ДÁ,&È&šú<åõø˜ÞІÝÌ3Eº5a!êÚIOÏC®\\ŒáÖüÑÉþ©½Á¡{•ðA…%W~g±˜µBœ`JhÿøÍ ÇìC.aW:)åýÌÞÒ|^;íò7?µyþ=î. í6lQÓ·Èsm’x°@_wÍÐÊYßÍ^tØRBЊÔÒå¹Ð ì!sÑcç~ÍOüö—5dÜ‹ò¼`µ8êƒ>+ÃFHHý—Ƙe¡›ø—ÿq·CH(Äp!JÿþGuÞߣÜG»Ä×øh©è?ûvÔ @QüíÀ€·ÃÞ$Y™úÉ«áŲ´’àÉ_åž6]8ö'ßzáVJmn¸fÂ…“w®Yxì çgs`-ê¨âD8¥ËD{ÖŠGª–Å §§èšæÐ%zNDð.ßg—ûüUUD4pz<¯àüv0 ‹3EÌæ1Á%yóàðñwj~é;Éä\3^TÄÈÙCRÕ5ËzCbäduVè‹FÃE!6 ›àBЇW•Ÿê¼féÑÙéQþ¬¼fæôeÖsËBÕ“vâƒpYn·<É€‚aŽøÁuûšO¸¯ywVƒ5 ñºû†¶Ã) afKHúTÅëXòÍaÞߢ“žÅìßf¡½çŒ“–j‘œŠÚ]|Ò®,V0Õ,°©æŸV§ù* ÖXÅ Ž¤Çš¬Nö=WhšŽÖL¤ÜNPqf¯ô\¯„´aÌŸðf) öC]óÏ.¬@¿˜—ã½­ñ|¶å½*ðÖ<€  ÀfD±Œ•žbÕˆì%êf@ãM No-óP‰ao;*€^'í8,€§ýHÆ« ¨»¾ì\âÓ2àΈN@~4½Ž€7þá£6~ù˜ è¬l\äPS³$<0ͦA6«ú›AéÊ~Ž0zZc ½‘d U2”;ùÙ’÷÷÷4iO‡ Ë Ç§®Õ­îß0çYH"™ÓL¥QüxÕm–€7ƒÖyU¥Á³*‹Â¨9LwMÖ‘wÕ-œ‘Švä³! ~´ÑS©ïÊ·‡‚¬83¿–—žYÜÒ£<Èž¬c„C(ÔãðÅtwݠˣú”lbžñ>ë¹ høËôº9mT¦_åU佃 ç¡K¤›t9ŒÌØE*ÏÕi7@hûÚFErgÄ›Í9nË^Køf¢÷d Д#Ï!¨*AtYÖTúÙ¸gž’y¾¾Õèý%®9®ˆq./¥èuìñköÝÿh¿~kᮩ‚NŶGɈ‚óK:ʲ¦ñD‡xÅyì­']”e}N³ÉçКŒK÷‚ ÃUPJÎn7›³>ÀààcQåô†)ïÅ”¶+JÊ%^ÇÒöo•¯2í‘p)ÁoEáñq˜O…M¨è©&}±áN/ð"Nã”ìÂ9>#.—Ë5<ø¥ý$UMÏÔßwå6Öª€VLf=z¨@ÑQ |óenyH¸˜»xèmäP×’ Z.;ùr:"És«Ã@¶Ùº8”!ô'U9ʇØÅ‚]Sk¹nÃ.VdñíïÅ.¸áþ‘é+й宠7奉òh'¥ÚOŒM{ªgŒæÇ& ï–±cAa],ð—å´¸!øT¨¥ÏG\gÛ%)†Ì‡—vnX¯du¢‰;ºdí2¶åÖa‚]hnîlã¢ø>G·¸Àn5ÊK.Ò~ôoñaΦ a@¼jû6¯Ø:œ–ù0üO?»—S¿“ŒjEr£OXÆ©rËu‘[³Ê:õ,ž¡}ÔDÓG6Ö6j¤M|ày¸¬aÙìë9¤øto!‘.†ÍýŽ7¡È‘ccE-Õ.=Žþ±ÖPPƒæ@BóAŒ­Æ!œš[EÀÌ6?©›î^ìÓa•1¯–]Ô¬'eiZûÇW¥Ãô mÌ£%Bu&?ùåAcpR´£éåaªäTéY]7ç‚¢^_)dõÏ•¼‹‹Ohjúòf}\“LEë`FŒ¾¶e—¦É ,ž|§ëÄãfpó XŽžäZÀÑöD¦œ9;ßü0 ‡ËðòÎ7å–4>‰)„ë|~på=ûì\”|nӤ K=+ÍU¹»Çi¯%(SâB;‹ T^Õø#˜Tëœu^ŠzA†jچߞ΀©€±œÊ“%|T` 1Sëw\âV¬ÈŽžÁJ›jr‡ËÄ  °–°cÃ@º¥0ô`ÙR5±Èܳ5$„ÂW§ŠTÆøNPµî–’УnKAøñµ¥¤  ÜRT«b9ÁÚÚÚM»”i¬¸ß·7–B{…²žÔ[ZÈ ëß•ÂzR¼G$D+Á¹<§ %Á hV‘iÿÓCq´çÍ×ÇŽù9KW«%}}‡ñ‚hÕÌ5Œ*¿'ì¶³C`ñŠ(µä-O£¾c?ɘòp±»sêN:°ÛÍ«¢ëšÎÅæ·™èæq`¶!÷„·3<Ð šÌ^bM5úJhßÙA†õ/†B¶¦æ¼2ë^ðSžÏ¥²"eµyß<öÓ}㆙šH穦k¯¤ŽB;6¤o‡ÿ¬%]Ä>ÓÓâß(×誊Â-°'a·`ñ c­ÍX–ûæêGO§ lLc~KVÜ…ìºwéÀ„þÑ_xD}MeÅ%(.õeŽ7»­aþ%ëžmßb\ïähor§]q~ÚÃ#\hÝ¥Ã÷36T,jáÇu˜W†è>èÉ…‰#ßNn²þ0·±U%Þ -J_©ª¯wQeÓu* ZÐÀ›Aþê©èÇÊü‡[‚C^¢3¥£4}=Õ<ï²òÉÂðeLô±1ø ÊYq¢e"@âfìeßÔ¶±Ùc!\œ™ÈÄ¥?È3Ÿã’±¨n=£Ï6¥ŒfÜ76×yá*%•â¬÷V¡9©¬ÈÒÎÞðÀHk Œ2/ÀÖq鮿ëÍ„zn⼈Ö%í }ôe·`Jh^ªù(Ê’¬¿ ÇÆ´ãëô™æ˜œ«x»ÓžÙФ4…²Í:z­ßnv*r`þ =“¡ì“ùM†Ää´ÅMó{®›pZð»nçJ™:|ʳj0šíTs© ‚9‹lÛòÔ§ï;mª¬ä^äŒ ^³ó¡c–$¹R’—”±‘Ð>¡u~Šz¼ ÉûW HNM2“ùmýÅðøÕ`ˆPzæ7þ#‚©·…”àp,ç¦îGÑVÁ­kñ"¹„CývÂýà¢)èÝVŒìO}¥q…Hÿ —zB½Û“ס&cѲÑÈMŽÛ'ñðd1Au#?+7'® pü¦fM ° ºÛU§•7d"ÝJæ£Ýr‰âeÛB& »Q¯:¢Ÿ’KKÿ©ý’ÌW>…upú- üØ>5¾µPU“u${N|,(Žìú¥4È=·o(Âl³ë=4ú¶@»[î¿Ðœ®'JxÀúÓzù ¹ ôWÚ@Ž}è]!Iµcþû…Iûd×k>l³Dþç÷ ‹:H „ou ëcÖ!ȼ´ðùcIa›YR7=‚GÞ…Ï+øEèy3XÄ«‚x\ãÅ&\ËØ%’l‡vÅ]´`q#®àg,!U¢ËÔ'G ÅŒ„{`3´¶kÎ烡šBBœ+R£QÄìv"ݘª!µ4#ÒW}%ü(³%ëÛw9űÎÄL`îmQ7}ªßã×ï€ õR¸A—/K2\Äàð «ŠÝxÃ+æÑÊ ¬áDÑaí›69FM«¡›JÕôȲ„ÿÚ,³Su—Sq­Up!LÝÜ p=m-‡¬½ÂepÏx;ôÞ°ÉzŒ–4«©ø®’®ÂsÄŽÑÔGfÂ9R|ÃïáL×£@Ã\†7·—‹ªŠö$ãe>÷í›à k!PÒ&ƒÒ¨›ªkæúä^£ ðKT“ÝD&…pR¹¶ñ°Þk¾‹¡S8yÆãZÇo¿Ì‹ lœÆ…‘o ÌEZƒ†Ôþ A,´QÂj‚„V=[|n=3d;컂ܶì¡nO§‡ŸÝÖDôùOä V¡:ã^…Þk_»‹Œ~ÏÏ™£VËÅ01¬l{Ü´ìW„¶¢|.:ıqa0JPü^5}×6ï´‹ü.¯n2ytÛž”—Q²¶ oŸ¡”Oøþ˯ñ£o½[dHaZ©+ F‹¨º1ÌÅ›Xߎ‹©:8$¿§Ø(½Ë`Ý-xÐÇ; Ð(F˜/¥{j£ª„7Sjžfú³3]ìÑ êK½/¦ÅK½&÷ðcº9¢q¢³|'Å&9SÚ# p¶Û±¬ú|Æ kCpjÏMºÃuØxxÀÍcå<$c}"c´»Ð’f=Äg,0aóvÁ@È/¾ä‚×½f-¬Zú£áû\‘Ý‚¼ëÎ@¬í;xð­ìRbgro[æ )Æ©ªüò_äæš@f#ìé h—%û*}ÿ¹¾ýbœÉuòIó¯ïü‘²VAk ¥Š €l¼f­NUîEp”ÂŒ*ýž:\&Q á¾§F%ÂÃReGKòLÝ~½u½.¢øøîÕ,£T3í÷¯k%GRæ¬Q|`œZü,ÿ3šËüõ³;ËG·k¤ylÅe#Êù6îs·á} Œ¿ÚH5³ÑFujÑ›Ó4¡[¬{fMærÖÍ”õü©¨T{ Ž =ÃIF.ÎYQ]œû"=ž!j©ZŽßïçÜ%€jÑ¡„õ0]C%H¨ìaº/´Z¥‘qL¶Ó§Ý]69š®úô„«ë@´¶ ÒxÊõÙêëøsG©ø9suŒÊ´äOŠ!`Ô=pnÎf]†xû:à/p- °6½ðê)üƒ®€ú··#"WUù¹|D]tp×uàø@]玸 æ®­è Ûïà9ØW]Í÷e”†þ•mk›ÎÕ6{|Ž$d5vÚ<á?žŠì°ºøR}Í:…Ð#Ö1Ròz¿{ÝR‚ºÎ®á0xCöÕu-êÿ1/¶öØup•<ÔÒvZÑöêøì¸>[o>zU¶ž1€©ª$½QÕ!¯w4ý’ÜAݵÞÏ´ª^°›uMe¯ÿÈÏØç]70GmcGVÆ2GWžV¯Ù\–ítau ÝéP‰ZÇZ˜)$™²ìlY hIŽc‚ÿ˜¹[ðRí•ñÿ½…V†”ýNK{ÙüǃšÁ$í|¥~µ95×@¨Ë­ÜXÙ¥$‡éZÑü¤v÷Ùæ£œŸÔž’=ÊùIí®î¸£¼èõáxé=ªs·ìÀÊ~´µ¯mKæîõq=ÅRßA…c=w@Ñ|íkr¿ðr•¹¯ÿ‡é]PÕúñÂ}ëp¾Év°š5:{òàú¸Þå®ïÓu/VzLbü…;¹SWëÙ¹¶èyÖÊÞÉ«;×ì<í8Põã%úEŒòR³mGVÆ5Kwe»UÏ ù }Oi÷vK²`e)SèºfBƒFËøÎþú —V¯­-I]WòQ´qߤæOY‘ÓíœkÁ÷÷¬Énáýt³o<•&þÉGoŒñ[Å8`Kf¥ ”¶%tØ-”ÕäŠDµx~Ö˜O³ñŸ–™¾ùÅŽß³£|Nu¿ñé“Úã$XO[_Yé~X]'ÂâßúAºK”c±jNϤ¿RFaÔ þõ¤Ë1Êjy6Xç|Eòͤaû§Š7,6ç:ðC—Wö!÷‡í-àbº;ˆ±£Œ¹çg^àÁY@²—î¤^ÅsÃPt\0\þã>¤vï÷’æÅßã¯S@ð'ÙûÊèùV™Ému…Fã%§l´ J :Œc¥”Òxæ¬Kf™Û­‡zjÀCÇÎçÐ83-[UÝ•Üø±ã á5ñ˜8}…«Oõî“Ú'wüª•U,ðr•ŸÐƒµ-o“ükÏ÷(Ö‹²¶üšk·7 ‰‘d¯{k.—t/¡­#ÈwÞüë; ŒAƒ‚“ì¥%¯ÔšMèßQéÚy¶BâàÅXºð:Qè)[¼{Y´ö=[ãæeÍ-:‘IúT¶ÿP'„–Wh?"£¾ Û¢²¶à^g>£3—Š«§ç3Œg½Y ªÊFWÕ—.vÖà=d!Mvc5ä°­ww¾µz‰ÐvH„Üå¹$ìÏoó\®ˆ0Ûe"W5@%dY"wa­]Ï4¹èx {qQ=FözÜ–™p'¥û•p³}žmÚdß]Dâß}Ã5=Œ gÒÜ¿Zî»ÍH‹Pã]3^2]Ú ©rµeãÄ<ª‡Ž½-»‘”óÓiÛ­€xäľgl$7yùÞÎázXaL>ËQÄn Ï¥axâtºì Öü÷¯¿~×t-ú.6lJp× ‰RKò̈˜H¼…Òq§WÒœ~ØñAֈݳwO…ù™žö“0I~%¼-ÉIzÄbÃwRöD ²Ç¢Ò¶£½ >Û¸{±å.X‡àIWœ9)]ÌÃ94*CœÚuÈ"&1Ø^¼™B*[ÒÚeoŽ”(ŒÂ]ê¿nk<¶&A„ÁÜslÛ‚;G݆ÛÊz~Ë3õÒÞ?úê¹\1Ç%ħn àöyÞ‘HP‚ V“€)>Añ¼Ívzß‹a–íØÊ‡ò\Ô¹•‰tyÁ<ˆ{‚`BIè°=wö‘™ è/a)ï®­É à*ø¿2•Ôý"¸6m£ÙAŸ»Áb9ì@¹Á«¹Sþm#…øŽz¡ †ÆÂ:³ªä3êH>®XÜÇ‹*~€û.ྐྵŸ17GSÒ¢±VBØâã㙺¦OK›.ë?N±Ð­›¶õÕƒ"£6Üiùp±šìWúš»ƒçD±Ú,¼¢?*yŸ·ëhv‚¡ (ö4b„oÅÜδvì)ß|Ÿ<Aæ¼ævƦ 1³9“Íiûcô.w#a¯qiA¨Ÿ‚®K³ñÚ@ÿ¾­#°¶º! Ú m1|ôÇ?@†4’àÅi±]š]bnr„ ÑGgV.vg ê6¨i€›,MNE}`TaÈv$Ç-¢§ií‘Ë+’¿5 hûÜÑ8ÊQt‡µD"顃‹,N$üMϪ¦éwÛ0•âýñ^äÚ;€î·ËŽ-¯[QÏq/Q¨ŠRœ`ü/&~²PåŠÓ¤&¬JðßýìW&2ðKßÄç¨q¤bHÈ2~K[Y¡Ù‘˸€;.¶a>û­i[Ã¥~~¡b2,\:™‘_6¼û©íûåèå–ôGÜœsS Jêc°ŠÝè½ÞÐ0dõ>ôø‹§³"¡ø—rñI–ùo~'­$)&¼CÖÃ/_s‡>™‹lÕ¯.«}#ÎÖ ÜË}á¡Õå­¨.é7ÓOfΩ³âw0 ¦~„g,ÐÉS}÷Üã@\ÏA^`GŠ< ¸§¼ÕpìTŒöC‹Ju8\µÂîTõYëPœàgÃÌU}$ŒÕt½;ËV ô|ë0±ŽÅ{_r¾ cÐóÓ²ÅAŸ·\¸CÙsV]ÒÁ'ì)\Óçý«µ‡ËP†š½‰Áž¾·µƒB¦ÏZç6iØköýí;×°º –T2Þ~µ©U³D†úƒ"÷¶Øã‰&Z"[Í£ˆ‹y.›° z@ÂŽb ²-Y4ˆéâk;Õ3=pÏ@ÉEkVöw¹#&¡Ý„L:V·>Ï}»5f MÃ×439F þ9­\ÂíÆŒ9"N‚9ÓxÆU&üÚ∩nˆÊo=Ó¾0ö¯=Kn+R?²Ÿ¯w Y¥nfŒ[´ËõM~=§æá‰ÂŽô¬µ*T3a¼ÀÏ¢È}ÅvìÌé ¼²Ž×ÑÅç½gyw·q¿J¨â”·Øx¼}wË&[ï/Î-ÅDX6Ñ(º®œ ßçno ¤ý½àޱ˜ndE¸SÛ‰h\åf=ŠüHe`+LVm7@9Z!SÍü{ó¤ãEVñgÂV4nñrP(=s*„«-çËP(¤Xk†• QA‚ÐfTXG¬åOrÆ/Øv«ûÒËåyu “-Ç\; Œüµ¢ÒS}Nc%ŠÁ9GP¼Ê^-‡§+~tôÌçO÷T'Ût­6éÝ^"kPÖê(/DäÀòF‰®W-úe&LO¯)ºäÛãUµû,/«ð%mé›õîg/uì»–Å·?ÊkQ³ö§Sx6Ľ'mh(ÃÆT­—¸æÅ@e:dÆnhf,‹Ð\ˆô¿Ó1ìÙÖ\ò¹·GmkGÐC*â(Â6ÿp)­(á(ItCHA½@$q”¤F¶Ø‹Âb™4³Gåòe ªáƒy*HÝtn‹I§2)ù…¢dý,ñÙ¥²Èw’U¯‰°¨HˆÁ^þR6Œù¡ÈˆrAL,w­I†s—:C5ØÅª)Û*H7´'®ÃMiÁpë€r˜Ôaú½QèˆÒ³'Œ4$­Ïwø,óvÎ/À–¯†IÁû„7ƒ¬¯9–5}£]º/ú]ϱ€{Œh.À4›‚'ôœ¤éw':cL¦H“Á)é¿jƧ†œ¿M~ž*O–X¨ßP\×µwŒÎ5°®›üÄ„÷bþ–þëB*Á¸–‘ÜÛãÑdX>â¡Ð9Ñ®nCÄ5ÞsÍ™U|^’ª”}Tq áMƒ‡¤¢ibØ`ˆbM‚lˆd×3óƒR—xj¬¥Éµ¨Ë#¸¦À츦l¯Ö€}ŸÎïè³aÇÈ>dîÕ7úÜ mÉãlšXõûO“—®˜|ñ;Îo~>ºþ ¬×À«OT,'fšêE÷l ¢´äðóÒÄF¯íD¨ýe]D 2KŽêøëT,8ò{zyú¶8%˜ ö ·¡Ð ÊÞ†ºx¼*~iÜÎdD_/½ð‰ú¨yÀÿ"³-vjÓˆJz‰O¥ÕP’X«ÃN1ˆ\ ‰zƒ×€„-–½½»~\ÚŒw^Š÷¥¾•³3[Ç'½2Lw‰™ª•»© õp½»2V|4@€&69kN o$²»ø7¬±4­ WÌ«þ/Ò4øpí3À¥Ý摈¥e 쫬 Áqmz3hµ”ƒúÃáüûïövHÅÞ§Ì£Ã˸ÿQ¦±°Kcžô+ƒÆ›;Í3µî Öb±–í¤*áóÛ6êW ßç޶inùîò7ÿ»%¯Ïç4“S#è[ rò‡Ž’èbTY[NKH*NÉSŽåÑ¥¼‹ÿ¹£—ÞùÌ®hŽ"\:’ø—'Øûƒ!Y ?âÉäu4d«5HòåX!J¢/ƒù?æž qüÅA„ËxŠ-c~®>Îp¡ÞÇ4ÕžO £ÂZÐUÍðÜÍÇù9Pðaá×Éé÷ÙþÃ•Ó 2<žaÎ=VH*kIH…fú± (ûÐTä@¦ “°˶×'ealÃâ·7ÀÅ›É+ÑG!Ø;iá2’v»D¥9gŸùlY#þQ2ÉÙ%ÐqÀ°Ž’ŠkÏÌ—:ÿ¾ $KÅ#µiúñ|MZÇ·éçÆBÁ#Y—øÃuêô¤´3Ü ”Ë€¿™ü]Šè‡ôÝ$2Ú¹zÆç¡ü-™;ˆ¹CÄ“Ñ`bžû4„ZìJÀˆºü°?lÙpœ€x‚Éi—ÉðnÑ]î2r±jÚoG„F€Fgç¥À£V~´¸K´&OpàÈá“R˜€Ý)|v`šƒ‘ ,[ÎÐ)85üB}žv°—büøp&dL/4!Y~ãËòÊ’Àå6‘ášÑ¢ˆ]˜Ú¼-[ ‰>Œ*P»nû^Fð™ÕQ9(M—ê÷¾Õ¾åV€¨ @ð¡/^IQæ'÷;|ùl*tÞÇç_ƒ>þ9Ðîé®GØü“¹ÇÞ…t®Fe7‰¾ð]{ZpÅ,oð5 ¢ÎÀž(°È‰OòŽœNE_ýt¿%¯at…ÜèÌS*+ɯ4§&ÙhC…¯Û“y_†°¨Ãf]Ö.Ôfí¶^‰š¹@YlaÊ1é¦- Õ=ùýg8È´cªªX0Ë$žùD`šSœÌtå¦ßlÓÁ°KÔ¢i![øPÝîߌL;þ˜ñ¡¹Mع¡¼Vya؃°:[Rþµ-Ák´%cu<éÄXT, KJ„äyßú©oÒS¹«—³ìf¬LåW®;HcFaÖcW+€wï4ÒSG5phJ•ÞþNñíïÚ2Íš’O`9#|N'Dì›Ì%×ürxÙ¢­ aLýF}öz]Šø‚ˆÞ ä¾P*="‘!)b[ªs+xõW¡Z[q¹ö§æñæ ùæ§3É÷4©.b…€NãoªüX§åûÚ‰èËÎò2€ë%üØ´Ö†÷äB =! *SP“KGK2~D÷,âƒK× íéþEЛ|‹æÊ×»œiøœZïõ×*á-ƒ@nb"¾… ¤p˜nàËØ$ê5>þÏ?ûôðøÿoR“¦Œä13#š³@4Ræv ‘,±ÜPšƒ'ãCÆN% ›,–ó‚t³prZÐñ—tW–·é^ü‡`ÞvQ5«eÑ]C@S˜0¯Ç…ÏûEF¼9xÁã:5£Ô©Pœc.^›Ú*ï »òNfé?Š]ŽÕ(Ž`4²XÂ즞¢uó‰]úpN[ƒœZ‡Fþ 3VƒØBÓòô9*LÑëz.T¦P{àþ—7b•âïÞ¸d?]dÄŠ‘( ¿Œks¼i3{^üê«kÃúä‡Jxî~¼¦{Þ5î«ðéõA4­kžaWúäûÀø`Îë–d2oŠ `·Õ¦(% ¥)qw°'ãÛƒis KxÕ{VæZò…Ñ?x©‡~Í|£fGhý ’ê«¿ù•—Ž"ïõ6mjðñÀ Éñì;5X´pàVw5¯4Û&?rÚ²YòàQEV„Þ!‰mX¨ºFXjÆr &pdRÛšˆBÊÛ½èú”Ň%HÕWq”?Y½´âûœhG#[Ò\ïpÈÊŸÝêýå=É•n\áòÊò† }'ei ”œ •Ó›ÓäôŠ(æ¹xðþä¿Ò.|:É>•>f°o^,®^Äk†-ŸÍh¼Qó$h (ÛcC,G·eóòõð¼í™Âû;éA묡†Óæð6Äï5Äöeùòf++jGËôÅgc¬tö}Ε1DñQV¼Xô}uÎ R"q5~ýÞ,y2ÜU±ún_l©÷‡øùx‚ûÍ? aHVé®Á™ôÙ›¤¯U'–;â˜t¾ˆj «¿í#Üb“+'†}€“¶~£ÅÇâ…ãp‡!#¦ŽL ho)Ç'OÆäIr1ŸnvþNGÛ4$þl?QÌ|´Ü¥,†h‹©hgÛ›§–™ûs?% °¢ké×?mË}ò܃9J]Ñ4&`€ š(Â#ä~öñÞ÷SI`ß:æCfrÅCÍ duÓ´iìpÍ=;'ŽZ´ À]^á XXæ«‚1 KG‘³j7gûýfÎÚ)œõžÿ÷O“B➃Ï¢`-Åx”ò÷?ånM4‡‰Ú÷$Q´»O#‘Ë Lš/p+‹ÆôULO½ºc®X/Yóß¿þú=cî–‚‰ûƒ4kóµdÎ!Ý’f¹½g6“è±—{4²‘ò%ÒbK£C9‚ÜÕØc§AtÃÇÃ6ÿw÷ž(¦–i>¿µk¦ïMc8fjO-gý³„9ªŒñûã½È/´mæWXú?¶°¹Ø¼ÄSŠha÷»= Ëp…E‘xwHѼ^eñÆÿ/})ѽÀî<¼æ–ñ—ê<ì y«Qâ»gtA <§@ ¢rÿ ÿ“b×oÿ›r·üé™Üèÿ¤ðkQ¹—Å-”5—õ?²)ý‰Ô·ÿ3¹vôoFQ–%?_y':H»â(¼Ck]²}æQÈnËO×#¸¦sÛ‰w>­Ä8ó ¹Âx>‡² 8élm•–ÅémçmuùûÙk7@ùØ×ÿÑ G¯&E ‰ÃŸ$ÇA¹^SBûÑüƒŒñ6A¹1¯i¥&œnnbA|ŒÙ4Zv³iQû¸œ¿ì~!«™^·f¹†ûÜÆœâþÙjé¤?àFŸoE( NxžéÚC²Ê0^¥upy»é=.p;˜†‚F]ï‹·lÙMÂŒ¿ …¾„˜W ï«5©ò>†˜vPÖœtœÀ4! 6·@C;â¾ÝèÝ †2°éGÎÌ–߇qéÈþWú«jzÈu¶{ÆÜ’GºcY‡U‚ Û£ÍR{^øFÄ¡an)àÀ_òØæÌú“!Õ©cíq¢a,ªÑ§ÉÜåOX1µÓÿçÌ34}ËzøD× òhÕÑÜÖ‘Ãq4¡>¡øk¬Y4²*Z–na óµ8Z.›iv„Y—ô•/ìº@BŽ7tÞ’`©ö•'ªEtdOÓãͯʲ‰ ùàuÔJ+Ŷ¬ùO¹Î *ÔÑ"ÊšGFx|4—)žï6™˜Ê9ŸMr€¬( Ÿ„l*ï­’Ið Þú¸@x_ƒ u?æ“}ÊFø õÛ.àŸb°Š  ¿ÿ.æ˜ÁO…@^½pj;1±,)—,úí¯ah™Î¼t¦ß­àÅt#"®òàê¯_2䜋¯t?Š À«@‚·_&ÂPð§Yƒ­B¾¥’ZXÓG!Rb®qqy’7ÖÛ/8È‚°È‚%ÓZæÉ›h;r£¡og–ÝD¸o‘Í2‰¡é¯sï zÈß²{i—7ê U>{¨”p±$ÚLe¦&ùü pjù|‡ml]($võaË¢ èÇ]Qºï0}sP nÊ{¡oCSÜ•;>êhÖÝ!pZÂ5O¿§ÇRÿØUÙm䡟bgÄÐqò`mO‚2¶9î"/[+ÐkÈ2ÍÌ£€ÔâÓ4(SW[F@…]çÏ4f`eð6…¬v T Pq´^ŠCœ;H»RÌ×N¤GØðb0µ-qI6¾1ÀZõ˜:y×F¦C\´5WÐ¥†âv-éṳ̈®y!h/d¼(Ê;*ؓě×o¿§Gl Ó â[uûýB†«¿l±¦ÎÑ´ŠŽÌTóÏ^Gú_[$pP28yš¿â× €x²…¿¯¹ TÉ`?´ƒµÀìØ ƒEiücˆsÐŒ²ðSO.;Ta?Òáz 6Ý…88+ÀŒGž7—˽éN &}õ”gÉÆ#÷$ÎOÈ¡fIÀm¡>§ŽÍÀÍšdOåiÔ™³É†-bfmúDè©lš[D¨æ®9Œ;l­È‡÷En3 QáK¸Üa ¤|Ó8Ý\^|¥ üñ˲p‚ìŽO˃Ž2mýM¸¡~yÍÍí-{„±h€¦xC°î‘²u^2QCš]“å²–’›ÈšÌ2°”œÄPóQn)Í®‡^\ÖŒi$ó´N˜þ¬¶ÀqׯyBé©''áð\„ä“,)Ãáx¶Èo)ÆHXç²W´Ç²>´4YD³89€ß.Ûy¡ m2o63y·:lAgDÌt·å[¬Ðå/å²;?z ºp§0À`”Is…îJ¤9Ζ±²4β¾OHE†Ô×(EäŸp-ïrê`3Õ{"èîÿ–¥EÍ¿¾“»¥“m.sŒ|[R)ÖÍS_þ¯tÓ)Å(…#ØdÕY¿d†»Nø™Ø”Mï ÒYž&ds‡zh‡*ZûT'ª&!E+H5¦œT ™©Hw õgL`ž¶h ¾…•‰•!ˆ04û¡@ßW-?í5Ì[™Ë”á? =oO˨o|$—]•‡.Ê(¡J+<œGNx·—?IDíI–÷©ƒ«ÛB>°D+á¨Ë*v±îb{›Ñ‰˜µÇŽC7÷§~ —ÏS«lCŠªöªpÁíU'äýÈ{û¤ôuü†ÆiÛæKÛÖæÔÞ¶ÏkÌ"OIz8Špý­_4§ÜÌ ÛÆAÆgw–"ípAWû® |˜ í²vÝC1z¯è"÷wfí%yd~0>*Œg&¯Okß±ÃY¬}äÑEíž_hN2“ K¤·¸½z̰9lÔ«ÐY˜Ÿ Lи¨ikÈ:J뤣$Çb_ÝXú‰Í+ê3©){Òº&Ú'Òˆ‘Ó e¥#$cö(‡ÈÊÕ‘ŸÇNJ·xŸ~¸,+F^99] êíOˆštðª¸cŽìmµ¬›qSTznß_Ö¨­‘YÑK9²x¿ñ›_ºÇ½kãöšˆv5ÍÏÙ}OR‡R º/ùÁ0þn8=1F¹ÒdÌØKNR5ET…0G½·BT؃˜% öx4ÒÚ¢„Nc€MÝŽ€5>XrÁC„(vMFªò¤[7%¸GK´¹k«à6ÿ²FƵjcšð³ÖMõœËù ʸ|8Ç9`‘ÎW~,ü’p5m…Ž#Ÿ %SšÈc×tSÚf ÉÚ"‘ö`†©dl7ïüĆ÷}äØqÌtç¡·SCÕœÁ|èÁñ£#þÆiefd~QìT)0À $eãšö íx›¤Fý Ëú)myÉ®¾õu”Fxêv÷–ØÝâûä+ê#Ķ>Ú¾ý±\j¸†så“ í xP³3N4Ïi¾9”îL2de)´’jÛîn‡ãõ` 籪,wJÅe8ó®½ïɨZ¨bm!ë¶TEz.NMÓW— þ> Y *ÈÓ<ð´¾Ð.06 3çò¿$Aô\Š|˜@ϵÿ€xÎíÌ Þe$§_ñ4&/!8=÷ÔP‚¼€}~íürɈäÕÏ‘ËHú,,ùcê²ÍöY ŽïpläY¶rtV#„¯ÑÒàË4›ß!²™{E¤M/ ŸõcÈìÚKÊ«BÜåçÈ—Að:vs?û3ìMP ÉAþÊID÷¬(ÿ~–Hòn0#`LKÅ6qæ=PòÚJ-*µ9ÐðR±@6&3œ-J­öŒ”´Î¶2‚ßÖQwDßL›¼˜h8ü¿Z«˜R|"wSÊöd¨ýöw(SÁÎŽ1|]‹p:Mž`ÓA&HO]dF¯Q0$¨r-œŠìÜ(†|çƒ/²ÓÓUâ3-IUÿt˜(Ò•-zR”ûÝÒ¸{ ¡cbRÌΠ9ð·Ë# ±³<{w'ÿº—¬à£™-ÌÁ ˆš¿ßœxmÌ%Š„O•8‚=“·BÃq8l¹£ä“ëzyÙ§Žü‚ZÙ“ÁüP/19ßs²ú˜]Þ6eùY'ô¨É+•wÍÞÔ¸Ý@§tÐdPËïèL>#gêç+ª‚HóÒ}îä‹ìÁ5B‘f•EVX’é³ ,É"6WFSQw¾‹Üä Z4^ktœSz#MºÕ¨ŠŠ’Öyæå¨Qè‚TÕÀc𠾯ìFÊ>ϸ¢:™P}©òÊ'òzéØ6Þõ»¨Œ+ëâ¦Ã£h¦ ¥* P7™ ¥Žh Çïæ%}ýB š€þQHÿ  d¨ÿ.®g̹êœ?ûø6Â7!MüÙ¿¾…(;½&,ßð #gnyõ"(%ÌVcKÈ~ª Ùh] ÿªxÌñÒ‡á9¤EÍ=t~ä—Æ:‚“]" á‡à¬ í?Ö–;rDÐ}æ ½@Ö=<â±e é&NIYù„ñw/o i ˆ eë PM7æº];_LpP:nÈœ«³îYqj¦êô³KT¯¸W¸.Z°k\¢®ÇèË_ÞlkÀ+›%òÃYMš’ ü“œ·Ë°Å±<©k$riù³ÏÚm¹¡Ö„ˆ¥÷5êrìêZTضÓľ3ï—zh]#³feÉòÕDÕÂd Ù“±UÛœÔ;ôztpØ®ƒ0_·ZúL ž€spmÞ•îÂ)âH+úÕß“îZ„6ªÕ3j¨GÔ4=çá[èN´²ÇœF#§šµà‹AÖôhX¾¥ J´g sLÝÝgÿæaÝ,Œ­ZŽxdS}jXH#7o‰®¡Û\q!®}®œaó£…á 2³bøD35ä †ÓµÌÉݨëèb¾×çcå¾j;n¼"t È’³Ì33Bt%‹ÑŸo8µZžX&&aáˆã”Ú€KÌ90 Çk:»ƒûæÉ³:ÜÏ]¬óæ½ÎFHÅ c¨šlI铦f;ürë;’œ0³f¸m†ŒåÔò÷Ï]æJ9ZÅ«üJ¾!3²Ò|"-Kå™]S4„Έ…ŠÆô¥—: ƒw¤ØyxE¡–1½À>2––ÅÂ:ñà†sï$h¯™ §§e¸ | ŸWFÛýŠ²Ñ‚k‚Y‚cn¤ü‹³qˆßÖÚœ°˜jäŠÇy}A1n8Zš'z¡ ½.n½èä 7¸Ü43vkð^%^/°w_Ò—ÿ´¾c$ÖÒ‡£ª™+ɼ¹\ú+m:²¾((p®\‚lDCÚŽözê/ƒ az=¤øÔÄTO@[¶/¾çM2¡xø”?5ÅoÞ6GeL@2<Éôl™V.b5„KÁcÎH™Í±vóÓ{Á€JžÍÏÜ(¤&å“EÃÙ#ù Ÿ@°Oœ2ghÝ4Zzgcš‘‚XV´³+‰íwùój׳"n‹—SüR¸¶m—Ró܇ç¼j€êl-Þ—n‹Î{ZÙ͸°|RÎã£{V É*8 t¬µfP–Ϲ™í@gÙ*\¤PnáþÊ@AÑõ ýÊ_Ý©~úßh¯ãõ)¶~ÒHGx>ÐÐŒQ 8€7Ϊ›å-?ˆó vå/Å%ûú-†÷eê=ØCÞ¾›DRƒûÌøž­î1ã[opQ·m'lsãò2—eÛ–w£ðÒƒVˆï„ˆ¦˜B!@Û¢uùR*uv,†×¶oŒN5«>~d©ý=k>Ø\¶Öÿ^v»Ÿâº=ïÛãP7¨ÃØrì[Ú¼o i¾ù*‚Îåâ˜7;‡º`Í·?ÿûö¤R“ú ,Ø9ÑÌŽ¸;ëüëC߉Í)ä=ö´;dƬî»×FgØüù†Ú;eçÂÝ”¾'åy0ÚóØj<|¶5›÷l\ø>5öÃÞáµÂ¸xûÁ…–sì¶íÙzÿ@¦Çz:ü!§ƒí÷D¸-py½{®2Áà¹e¯ [JHW¸%~§ËfŒ ®™œ9ø¬L.M“”©›Ä†Ù ¶ G€Y)ØlÍ.÷0ØÆT¶~2ÔX[F ¦˜’€>f &€‡€LìC;ŠÊ^µÜf´§2ys§áuSOJ`Qnj×ÖaSHXMZvmúÕ9ë=X—ϦOâ—’VÒ?Nwëaëí\ËžÒ­ÖÞq¿ë¹Šµ<2ù…Lô›4.}Ø`Sr ë?ñ~|¸þφ8·­UNñ¢„@º¢ÎQ›Š‹¡"éz`rƒƒ~ °íFiké Dƒ9ÆžIÞðjÒw}3:DNdï-’ñoø/¨ ¹mx¾Êñ¦{2BЛQ(¿ãÃâ ”Ð1J•"8áÝ=á·Ì½½!ûúvǺ@44JcÀZ…#É/“ŠwPÆÖtb¡Mu95åÂ(¹É¢ Ö~®xÁà9ì¾yúe½ôÑ–M=6“Ê_¾îQ'÷øZ#ç %ÍïRŒÂØA»§Ÿ}¶”Qõ‰ ZpË27SåœQ“lœŸû·‹û\%«”â€$zj«0#¬‰8 ¥WA“xñòš˜ŒœÉ>;Ӣ꒒u‹Ó ÂìŒj¹%„m*6ëˆÇ‹Â¿CA°¢Hq¸~nÈ»©%—®hÿÏ4$‘žò׵ǓÜls-‹8>|7¸QßëøÌæõ*ÁSŽFhGvMÓŸˆ,;§é®8>€ì`Á8ä$6Ô %¹}ǰÙÏœ«=ÿoj•è8¿~Õ9áá¦Ñò\½™Ù—íH™£Ï‹²ÿ´BnmGGŸ^O£y݃±0Ó?øk™è0ïU¬æ*/ãå]h÷9Y&_J$<¶È8`°=íLÞžå&ÃÖ—éí¡h¯'} z¯= ¶«*t¦Q¢è„Rn›½+4u§¦”ÊÕ’þú¨²rc¨ Ã1-‰`¦:$´Ä Ž?Û£å éÎ1©‹{’Ä´…¼üð$צq­ñWw#:ŸÛ¢›“vD ½<·GšY-kçTš\‡Rq@%–„”_’3Ò2_m` †¿ÿó[êµÕ°:-›”}V` £0TkRiÌûXê€F²ôm¤“_¢ñŠó9 †Ë™‘ÐÄC á)'}eÒW ;°ÎÛ‰a´£mרšo0  ¸êk®PÆç ?1º²éÁ7O¨sQ×"wyÒA¹ÊƧÜúöŒ×xÒA©fðó·ÏV1-*RÉàÍzB©ìû´kœ[öŒ¢¹¦ÿ¬kòŒð÷+øÔ_FšÍR_JŠì¹= WBAxThÂÄ:I ›îÅCµ•ÿ.\ã m.Ö]ymø‘¯™¾›Ëa{¹ßòäÚ»Yñf¿ãý$G :—;OЂ†Ü`šÞA¡úŠ"¿Ð6?CŸoc@ŒB‘’­£Ë`½¾B³âX¼¢{¼PN„–¶ÈþHøBlS‹™Ò̓Â^è—0?’H‘î†W³Kä·Q®eaø’+¯±!vM@Þ8.I Äc¿NŽ?S/PH1üUÆ‚! Æ÷’] r•‡È.ànÛ5}fÇu„%ÆÄ'ÙamÑ^IýLF°/H?ÚŒoàH´¡uXHÓzn”KïAG#žxmB3yqÞ½éך„{Q(éô1ý,{^–>@¼h^-0½¨Zõ&4‡=Òu#žŠä¢ñûÐf^Þ/´G‡À ÏÐ{ †R3Û4+ña—é¥#º´oãM1„R=ŒrF, hŸÆ`˜œd¾ÐìÖø†ÅqvÍ®FÂaqÜ12ö6ɵg× hÔgN/ÖˆÔ Ï½ª-ßü/U)7‡ —.v!¢]eÆ`Sw¨”'3飆Yi(Geƒ·è2Ø@´v9¥õoª1ðOïÒÝ“À°[f[Æ÷cʲ¶S‘ø…5†ê ¯+–ÁT<üNæò;»-7\»ÍHv¥ÎSßxA! Ûa"×9ŠÌVÁËâ‹£o¹¼Ðwøgºó’\µ@F©åÏœ4ŽØ­9„Kñ„9hö6ƒÑÁŽA”‡¸çb—íSp°³„ÿ[nG‘É5?¿ýþÓTŸ~:z{V'A?INà±Ê‚k^¥q‹']3˜¦‹±Ž¤ïLs€"½ø «´š™x:Ä <•zÙ®Q5ÁGví%Zù9w8þë‚Þß8—ÛA˜ L·\ xBDìŠé–xÛr7ŽÌQäô«‹9@<Á÷^{™FC{"òÅÆ(n4óÚÔ"’kÑÒÔñÒˆî%óppd É}ú®;ÛËįÍßG¼í#[€‘üVµoË÷}ÐɪðŠ \‡¥tó\mÁ·Ïìöí辉œø «g>@”¬o[^€i.uÔ£°i²‘Êr¨[<óTŒè*Êò2`lñQ_¯¾\"öTrnë\UcmC]ôxU‹¿j~yü_/º°4t¾YÎó”Ÿ —Ú'üôhù†Ï<Ó¡Z0¶ÐÙPÑ Éš¨õPÕ”Ä#]“S­©ûÈ1…[V¥â:ÙÖÿê1}Øä€˜«çUŽ¿1cÆáÿ.&°~é9”¦×[Â7áÓÕ-\ Èh·5ä8òæz觨9OY]µªíþžëôi¹¦´ß‚´FÕu]~)ýGi~ÿÉ'áiÐô‚£©XöW×€¦Ñí»÷)F 'cˆ”ðžðÛ§ÚŒ÷‡-ÒXþÊ‚©ÉŸ*áeÃ;GšãŸ§‚™÷œ £>MµUÂÕ*¿£W¾ <äÃ},kå1 …+ Zx`¤Û[êHŠ):…m"âƒD©P?F)ÒšÛ¦ë§XJÖ4š†eÆ8Âk°á¤Ÿ[k͵Ú.Êîà½Ô)›´ÕÉkn:ºÀ«MõÜx‚Çã1G‘:áTÂ*—È K½©.ˆÕn,a‚ª²ÍÛÅßb+#ݒɃÖf=¹„Ðb®!î$`˜t#‚ÍŸXƒ'ÅïP§Dì67ïþ¨œ;h¼¶XQÉÐZåØŸø%õÙJw‹UÅÞl0L£œé‚H"bù´¡:—§Ë¸Ëòm´èMõÖ€v|j -ïáÒ`äÍ/§r•íìs ß*Iaì¾ ¾v!Ž‚ !Ƭ(\õË®&÷añÐqQVL· „`9«ò¾ÐþÛ÷oDª ©làF»š–jZ1O×H´+ÿCOÊ[°©-˜f†ªÎ)Ÿfwõ`‹a‡g ånÚe«ËŽ6hñÐ «ˆ4­eö`,~yæûI3¼¿Ð;éø=žà+æNŒäÿ;Ÿ7š§À~ªæŒ{QÞýĪ!™5Ú½„ü^í,W¹ððîÍ›÷Qûî ø:£ó9°K Ÿîösا—ôaÈšìÆ0ù;ºß1®®ó-] ùû€ÿp/Br™¼ñ{¶T'ÑÄHŠÕõóòÞ±EèÞ›R=Z1¹”†ìšŸÌhµù ø`„èô§¾,æ§-¾`=_Ñϱ<ËE›+sb ¿7Ðp1oÚˆô9c¢¥‘l¢QÍv©6ô1Ö¯ö0t]«–Z4îHÚœcÛŸ( ÖéI‹tqn‡ú»ª³üF»í¶?•Ö2 )Zæ•b*h“÷ 9òß|Ö8ŽQW%= ìê¤úKRœ”;1î÷÷Î~,ÃæsÌš”e®YUA¤Ì€³cnã“ >LõX…˜$?¯gДi (õ´+„ÊP¦ÎâÌÓqùEQ¾ís9ÿ¼-Qc$R^˜Rô;=eK+8s_¶!/௹ۮ%ZVäªdm²§Êüà‹[¼ëÙ×½Iè¸[ï.Uµ[îWGl…þKÕ Œ1‡w½Ÿ§+†ÌšÏ/H€Û‰W1ß‹æâxí"Ú×G³µÑ †‚»!sëA²^D%8NËù Gz8žcq†lØ?ì~‰ ÎX:Fb(¬¢­|g¤é‘Qìv|&å¶\Ø°äÆæI!`¾`y˜Oœ!whßm“oú°jšüDºào3Z–ü¥äTœ‡N6EÏ^Ýd±Ê=hÆz’Ý‚C(ÒŠÀ²¬ÉÝ\Mö¢Ç™”¬I_”½À}„¢Í%/ÎêÉ•À³ßé­ÙqûJqæåîúб8ØvJ ,¯°'öÏé.ð-íf Oõǘ þ™ÓQžÓM̼§ùC5Mž•]çþWìu̼?ˆÆI¯.N3k‰[9¦4É©-š(Ç&¹RrQèdµ8Öª’^üÿÙi26²,.×þu}(Šÿ¿Û‡v•[ü v9#¼@þ4ç—jŸµèiÕj¹ ROÔx5^"h„dŸ;©vt³•>mWSÿijÚ˜:ó[#l6¹GqC"m^x¯äuV×À‹y€ÉÔ®ò‡š±MMÞâWs*vÕW¿> Qᑘ>±u?Îbà{´D!ÙžsJ_qZ§p=Zšõ+ïÉ*ñ*Tñ•¸³ÚD½ÇÔ—Öµ–à¶W„í1úRÓ%D—9éoÿöÝ»aù.áÛÿ.êUýÄ™”§Bê¾æâŽŽÝ“ŠðÀ„ÖfØŸ3ã‹hÔNÛ9¥J¸GIös(X¡ý1]e)Æi~Ö3 5¨ƒÿ*òŸ»ÿYùMÁ7UvË‹¤~ØÄŸÎ‹1*ÔºÒ`„ÎEWÁÔC‚kÍÐZÌ”åë!ŒìÖÑZ܉«nJÿ%F†þû¥£m c|Òñ^5j{€’¡¾?xýJêRd…¶NBý$žh¨²± JΗ »‡4Ï ¾öèyƒ†‡žÎ±‘uMÞzô—¸^"Í*2EùøHkUšpkÒŽÓåž‹P‡#“£#YŸ¾Àø·”Ÿg?S9zµÍŒÑ~hÀ2áÄ™‘»÷ÜŒÅD0–t(ôFC§écˆ("g¾†.*M‘ë´oëÕ'¶{Ç2Ú6­@P$9îjFü"*±öeàçê–±‘­Z ÄõS­ó"J>«ÛRæÜªÍø£ÀPÖå!Æ–Š@e(jŸi%̯ëÀ8›.ÂBÁÒµ™_ E ´Ç‹{¯Wþ¿ä\’Kr ]Í©½ÒÖä•Ô;çÆ#fN,bÏrÿáÆ¸=ay û—£5¹ý„áÄ1S@•ï-¼½N½g.ÚGO{&]›Gù¨•:>Ò™°>ÇÛl*àãr¡"^flÀ~µ'rÉm2à¢ÕBþ~mØî×Ãé‚¶þ ÿ{¶%)ެ  ÷õ羓Z•YÙÕ¼9®p¦DàOdƒÓxdíÿœµöîÊp$“i6ÙðÙJù ôÝ'wfÂÎC8ü„ É %ÙMÜ1…¾³¾Îðç˜jåÿö|k3ª@ÄeÚ³õ])ºÜµ¨Ù%ÔÊ23›½D±›£ôSʱõ2×Óâ-”ËKcÄHÅ ¿‡0¦(ºƒñМxµpÂ:±ÚÕ¯—¥k*[üõF’d#Í ÏG”3‹‹eÄÑ[NŽ3 yŸt¬“‰NœÝ¾jd˜ÖY$)—y’Eïñ¾I÷?n:–Û/n×*5Lʉ>#ÜÏŽ/êOœ1½N¼¦à!ÅLN"Qqp^2ã÷Ø©ø/z98k¥K’È+gŽ+)["mH¿Mzî\+ª“hû`Ã.ÁÌ á&˜HIï„%½ˆVÄMp¹x´â®uI2Êoñ¹(^ªr&_TJ¾¢óNɨ õh»$,>Ä-Ø="ɃÙ$ùÃÃC:‰üè•å×QIØÑ®eº$8X-¹‘'jEý~1ÈHÔÆGŒa^ »ªEÛ-â'ßyz…Øj)Éމ=º‘rlK;½š³€zÙè]Ï-,Ä%á´ó }Òñ³P'j?®.ܤ»ïߣN°ć ù¸maÑįì©‚ñ.>бrIS`™ž|´ )ø/ê@5à4)íÇA=ÀPÀÎCø¤¦‹è¸ÐþãÜbQgÒ]îÜmîë~x2;í¾j®•¹Ñ¥yMY÷±I82üL>R|u#øhöXÄá1h­È¸Æ¢D*ÃQæ< kZ+Mu€~þe»©W%ö¡f.ÎMCÏД7C×Ð;|Û‘K p,U6t%t˜ ˜\½4JþW÷㌮L·ì¶)±¹ÿŠßº%MDü‚´ò¿º¿Cêt$)hDŠ"6ÀÂj›lQEìšà ccæ×©V-%UþÆh`­Œ‘*!5¸ÞÕ£-¼ ‚ª¼“êBÁðV+i¡Uú`Þ>YKª€AèYt Z‰ÃÞë}åo8œteÔrýßTæfSÎBCT‰No‰E¶ÉU°=ÙWÒ8›ªÇY†™`¼Þ>Y³ß!Mvì‡Gf¶ ¤mû.ßÝ\²´¨«eŒÔÖ.éŒ/òC\9Ø›tJJÈ.E™E-fÕÑ·ãRÔMó8hY$Œºde|<#pêáŒ'€Ö]Ù%ÒÃ%“Izô¬·Ø\ŒÎñž)€œ²çIð\(´²¾¡ütÃô˜NƺŠG ë{€0û y-ù“;¤?…)„ò®…T«SƒÒìÖg葭ü:ƒÌ[aßÒ^.•æQF$un‚`°!Çb»†Òâ?ÿ1&Æ߯G“•uˆ•ØÉjŽÿ ¼Ð‚ 9‚¯‡Çà+€øî~L®ˆ>ÆØg^ýIòaY)„ŒÇRn ×]¾¢ô‡—X½IM"«šÃC–èN×/œü„`ÙÐ܂ļ.ÏCÊFCP”«J[b.—£!î 8FÞòÖL9ØZ1Ârµ ‘q…ª¾O|kˆ! ãý8h÷δ…&fºn_ äP¶h_A_l©;)ŒÉ\}Ùlé°«mÂÎLª¡eZW«ÁkèH”~ŠZÆîÌÏžO,kïDEnÔ€!±Åžšœ'ìÃf;|ÆA^#=0ÆlØý€<O,]ZJ°zŒ0J¦ÂîÚaæÁà•™¹®åt ß÷7?e»—ŸÍC9<¦…/ƒîÁ¬QÐ(-{c /çR¯1ƒ–Ø%sóÆ:R i˜õ$φƧ–jRx4•ˆ«EÆÅ!' PÛ« _08÷úCQÆ,iÌ=șҭMÎ!®'$=‡V³÷ôÇ&Èfuulžˆšôû÷›oþø©^õ=´Ê•E¿Å¾g–ß À–i¾ÿ¼}ÁæšÃõeÍ݈œžŸ¾Ó°çéžA9{ÏÙ“X.[¿¥‰!ǘæ®%Iá¹V\›T‘úç J½›FÛ‹¯¤òí'ï릿Îùú\ä/¬ªl,ŽôŠ·`ZSŽ)+£åýdÂ=sõtâ®HÛÂdÓÞL‹èë5e’j’~ Q7*v ÀçoÐ zð/x¨úyØ@û4M³+‘Z æÖÐìA;u, y£4w¿<²ÆùÀfKÆäZ×q`Äg ¼ŒžvñY:1Ýê‚ÌÖÇB#-äKÞµ,éû’k–h0è7ø%Í–néýŠÕ+><ªòbÁå\¥×u¤Ý½\HVGYÒó)zÕž,P²Ú*§ìóæ¸þ”1ÒÔâŸë|µ[Ùeëµ3ô ½€NðEÝxeÇý ;Ïä'¹·DÛ ß5Àño/ô¡ê^“ß*—9® s£®\ÓjAQóšr5™á‰°M/;ß]û2© R@òÔMÕØKkmš[IÈ/’fгÞ2ºFм@Ò›GìÆý²€ä#7ÄX–À¥¥ÕçcR}éÞ_¶ƒç“Š{‚…Ú.• Ÿò ¤‘ÇŒ;˜0…ûñP§|¹}ræUp¶ÓNHpë€öVÑÁÁ>¿ðˆ°6mÉ¥òò¬ÅqY¤+Ȭá'w6ôaÀ²dæ¬öæô׊²jÓ›°Í#ÈI÷ô„§Žü0•(Úˆ”Yš¦Å[v žnÆp옕ež;EÎ'˜~¤wÐýY¶WМ¤¯lö*}·GÀ¹ÏòZq SJ0` ü±£œ¿?°Í Çò—†Çg¢©øÉx¬ŽY64ž7wšn<œ‡1Î_8A[8Ôó{»ð|{b>²ç ”g]ÄpSÐý Ñ‹=RWÞß®FS¬¢&x[ÓÈs²ÂúDÏ[°åÛnàŒ”Ô®)wFmô¹‰‡DO7R½é~°oüU9=ÕOË10C"0Ÿe_“ ºaÆå£"Xkš“Ldí‹Y•pY~_¾YŸìõëWŽ-&”ñú?þ…w¤ ò¦5„ñM$è4@ŸÀƒ ¢ Âôk+O®…^å…ƒÛ}N3›'¡ ¼0 I£ã ía€iNbG 6®%²%1Ci?™­dƒÖAyŠ(”á–üZId§5­Ÿ¥ TÐOVd2Ì™ëD9¾Õ÷<ãF] R{ñ^ÜÞÖ Fý¥C±•[¬!¯„ßä@/Ð…@©ãQ•Ë!Šà͹¶ Û#–7$ªB#‘õ]8‰Ø†¨…£¼ÏÆàæÿü,è‰ñ„{bWe Ø5kU"+f¿Ag˜bEd…à5‡´P¸ÿÉ–c‡2ž…QÕå;ì;²â ˜ÂoðP˜ú…>ÊxÐ9c\T¦ÿúÁC°ÃÀ†—zKCÈîÄX{»Dšž üdBu'¨ûºCÎS–“¬àjÆ6µ#•¼ŠJ!Ñ*_~¨…˜¸øAZ¦ô²Gs„1„k ›!^âøsÕáTê ÆЉV ÍW×°Á`œ³80ΆïCs ­›©Aã¹ÛñFDEF,AnAù'ÌC0ÿÍ I–¸¯gü&Z¡¹½™}Ÿ8µ¯s„M™íþ€ë*amöòç_QZ!»¦qº$¸—ë4qÒ"…ÌÜ\ =%ýpât*šnÎ+šè´ÆÌ«¨uaNËê"£ÆÕ0XË’â8lcï ø>ObpBˆ=Ø¢ëÆe‡,ÁG›²–ηæTDÓEùå…ð[YÖŽ.󄯤ï笤ïÞ+éû¸’ž¾ þ— ›©¹¨Ù´¾-ü5}ð^Éûô3h%‘t‚Èt0W}Ü,ÁyÙYXÅÏëžšéZ¸±®äoÎIËû+Wˆlpé°`ÏôîZÞ_³AÏ[ŠYÅwɈ2˜#¼n$*š»Ô±3jÊ–Kô žjë¹êÇaQQ—µT®”Ô6Õ¬3£™œÚ£öÖäþðj&¼Äéw~?Ú¼øöÁ‹î@â;œZaQ^Ô ) K+¢xŠ€9v«Lº22¸æSŸ®‰â-Óè­|І"EÈi5!iIÂRÄGyÁÚD¢cÊ$}‘“÷·RIè/¢B±ƒ¢0 £é\dóTw’ HB²0T×Úæ-¥·` ½>'„ÿê©‹„a) /º)ÓàÃïbꢯ5p: ŸŸ«>¸Wš´ô=˜„>4×¾Ú·\}ìFã æá0"·Z#r«[ÎG¡÷Å¥`%PÞÀÌaBS;–g«d[‹}»cN[}u™Ci¬4¸>œ¼¨ï$xÿsöÌ^£Ó7§øßÛŽìuÆû[+n÷îCN5õÉtSŠJ guƒÙ¬Wnµ¸Š4H0Zâu-q¸\I_%Ó׺øwx¨µT¦„³šú1¬ o±ËÝçã-¡Åà@f‰ "îã]¦AÔª2Ø?±†®6`y‘U Uav9w @ÔÊì_<†ìÚ/ù°"E:yØN¿jè ÓoMQþx^XÀ¨Uß~Œ‚q? ï4ªÛÈ`¸ý`UZô™¦qpå Kv,]1û,ëhœ÷Ø5bÒåªø–äרµæþ¸ˆc|mÝɺ°ožŠËT@|ýçh.dÒ@7.Zµ|=ÒZˆr´­%¯ŸÚÜ¡kzݵ•°s¶¨¶ÉåÎ×Ð~eÓ]bÙx2]P ûTã×|În*=ë 3“uÀ¨Q£õ>5´bCnLG©J\R≇¾XÈrÑa1Pj5BÖ*‚iñ¬Iºd/(t jÙ¨fíÉûZæ„Ð;!ëºCðû0ˆuWvÀýYw€©GÒ²Ì7ñ®äµÑ/Ñ\•Ö¤÷ºNpø]%:Ïœ?KS³µODÀfvÞMAÞÁí`í¦fQÔ.òŸâ¯l½*‹Œ].ñÔÌK±ðÀ%­g z'e,g†´=SÚ½IwC«~#} 9ëH” î³M~ŒC|à¡Ò‡!ÏÔÓܸ'˜`‰E]ò ‰$IwX³¦+èv¦ž}ºÊ°*…T˜ö.ŒGÓ¦U×½«a­±ê÷Ï®`ãÜféMãÅ6Œ{5ÐAÄV§Õ1¾#þ÷ÍÔ¼‚£¿ÏE`¿üÇ>\ö¶Þò…ïÍÜ›““üÚå”´^¯3o›1/Ž^Z´äS¬Ç¨»Òˆ”ä³®¢_=ÿfÅ&Éîb€úeP©JSÖ=¦ÂFä{†À’ëØX+!Ÿ–•–jº­³rqòÞ›B¤ß}`9ÍžºØCY  Ÿs"Ž-פKr£Â „:²°ê¤núG½ÎÂö_ÿ¢Îõ°ù<4^($òr#WЇW3 ›gñœŸ‡ü6Êh­„€·ƒ ±Þ¥{2W­_¢Ø¿CàœÍ!MÅ‹¸ÃŸÐâAƒ5{P rÌp˜-=%òJÞF4„»­†Ææ%¼dʆÝdp FƒÎ¤’gäÒ3ÏMÑpšÅ§< LÇèît‘Æ·Uwû>º;Zý­¾þ0À«žN Àù1)FÅ;ƒ@Ä"Zk¹´:±vhßñ1wcÀí«ÇpmÞñ¡¾¤¦¡z‡jÓ¤e´ž2=›Ÿ =‹¤ºÆ.ï‹u´KÃ`Û(F_§`e¹åÁbŸH*! ÊËØ„5X²ŒmËsòüQ‰.eB*90…¢*B+§Jck–ªÛŽ…û˜A2/ØyLàlêÔº£‰Ý–á¾Þ˜bSëüïÍ\ïß#‚»è?p©=ò|öôÇœîXÕDÀŒîïÛ’O¦R}z ›8vE*t§êG¦çï-ë,Žz†Ãgy~nÏúr‰½!¤ql¼òT/Ä@‹{˃ÜÒ[r¾›ÞÓõ’p9‘EjÀFøˆ½V¾7Ȱ>ªU@ø70ß=ŸvÕ›QNN&’cÑw}¹¥H)cYÝ=OIýtª9ùdütª­Á rxÇGiÕE~þzmê–×ÕaÞx]ÔeÍÓsØ­Ïšƒ¤ú$a:…[•‘ Wñ÷~sÎtßš…V΃nÝ ±þ »–' ;¿[V€Pw»c”„ŒQWb È€¡z ¡a¡%»·Ð‹òº».Žž]bÏLï1JÐ;··çöõüžN¡VoŒüõò×?go§u;=;m4Ê7ÛXàù­¾‚[@w9´ {9¿‰ àÈX© Û˜7’B.˜¹“p(| ¦Õ=H¥zƒ€Èú&žã™>6¯·+Äq..ñSØKÿÆŠúí°âêV—¤ë+rö꺉ÇHׇͶRì•ueïö¬ µ>¾âÏ:°>Ü@¼“ÖñžŠbÁ•(­<LújzïÑ:½3*F±çDèðšâ-Y+ßǰÚyD’ºe9«H¡|J*6ð,¡Ê6ŒˆD¬®,P‘v•Ðý‡d²cUØ XÜ °¼°êJd†‚ià§ A*‰¸zu‡TË!ìc+Ôêû¤ Ûé%ËK°Û­%Gõ•TgŸCâyMŽ«÷Å&$M}œJW?HTD)ÍiǨ•¤íÅb<ÞÉæ½$âL*e6» šEσjTäBih•ª/#!t,•›'hì%e„d0sò¦8 XMÏ ¤„ÐhH×tŒÞý¡§l¶Q˜øW_Š$"\<#H€^—ö¿¶–ë›x@Þ–f]d¼#b@Ú0Å(œÅY zZÖyð‚~Àób̵B÷£¦œRŠLCò>ìÚmh*cÅ7À}æ›IHád{SÍŠŽ| éÅ GÔ'€ìfèZe•é-”‹þ«žeIT¦÷½ aZú¦­S&µ@•Úþ²CŒãä]JŸ'=ç'rç¼ç9­@ã$þ/z`‘… EÃaÔX!dÖ$Ucé ¤Ä^¾‘Se+ +¤¢–-žŠé£-‚Éd„E ©íÒ²fÝõqèçrºf3˜HN ™ÒÊJ:TìhqC&„/U⻦h vªVèV}Í{ñÁcáK³!?‡™Lù(ÃG€ò®âmöIh´£ªö€†ER¯›+#¢Ó‰t‚¬ýIò«8l"„C×xC"!CÃU¼XYÝ•uÇž’¹‘àCÑC'+éžt„+Zçœß0¢QW¼ë¼e¯Q·÷Y¼È;Ðé§°˜H–ta| ÅYÓö àæN-doL‹×Ú9t‹º<ŸÙri{:‡hU·„Ÿ?M/îÉó‡DžQz:aGWöóIË,êç“=5ôe## O& á1çÎY]rñR>û{‹úG~íÛ œup»ïùÙú±¾íZzLE0R:A{Ñ·¤XŠeÁç½Øsû•ë¢l‡ !RÕäç¾€j‹tŸaµëÏ{ýÿ‘†D"Ê_==zß.©î2øâü¥}w2sÍú“)VôLwäd²£ªçÚC” çæ‚ÞBÂNŠq1e>YóQúAYgv[Yå¡>#®aZùplÁ#js[º[‹FIÔ¯_>߸Ð)õEtÊÜÖŽX6µ.4TÀM¨µ ˆôÿ²røš™¦Å…ºU©®oI$“ö|l4š›PÜj(,:öÄämŒÑù[¶ÞKr“àÈ¿›- ;Œõ2 ]4¢S‹ykš _~Û•:U³/ßHÆZX„0²Ø&‚¹¸*ù%jŽ3’ÝKk U¹¥>åuvŽœm‚Ñ‹fòžyž$š>Á´ÞBR'Ì]ÅöHôH_þÒûAçóÆš&*7¾!‡Pv{s¼‘;qgÒFæGÐNÄîB¤úÀ³…p[ÖðÔq g`åá—VÜ‘'Ç…<ȰÒ*µÎÛü”xæ¼n®v¨BY)íMðÒda‰{¤†ºíþûߨޠ …ZR=ËUÐî…|_Ö™;ü™Ì3'¸ú€'n̕淈jZÛ¬/WñØKE?·¥Ç xf›XηMò¤g2 ¢« 6¼ø„PŒsÏì2­#ÂS¦k)o¨ØÑ]½lÙނﮡõÑ–¶P ú/ƒì¢ƒŒ×¯_Ö?} ófH;øÔÇ‹‹«Õ½ÔÑDg^´°öÙÃtÆié»ð„‚Ï\¬[­/iµ7^_Zþ>Q8壘橼°ê¹¢ßg6€¦=|fƒ>ù 'ìóŠ%Ïš~ÂÞEœ?ËfPq×^3ùüBºeÚí5âî…E•÷Bè•eOJ·|.mép0%¯É…DÞ4I»MB¯L[³yR8ñ´Ö€VüñÎnÌ`jŸ{*GÂó‡ï`w5ä<…¥°™wSWÇeÉm ³¶Öû*ƒrŸÔÆ„ò'¼ÆD‰æÊ]/´¾F$ÏÐmvšú£ë-o¸ i,3Áæ´–m/žï¢À·ðHU¾И$4Ëh6ÿ2ÿ— Õ5il–~†‹ékÒèåÏþp¼›!vD¬çÜ]˜„šôtŠÑH莟ñüŸ|"k —Cܦ‘úçj4½'gC(>2¿ªYeAøœ/ Pf-oЬâaÂ`æ f5›„9c|”‘Í€/HË,9û<R¿#ÑSøÕ€$˨kg2»]%¨ÎÙ},£'·lÛlvfdÊ ÞÒ.„f±­qß<s¼•ê·)_âÃÉ8Pü )i•;vøV'Ë<“ØÔ¶îÕrò¡ÕQÊòQ•cµo´—I^vfÑÖ2\WeãÕh$ž ‹Œ[k—?€¾²5éU'"ataù…åQ2О¹É’Ó»ºÍ{27ö쎛Z¾¤Å§TPnÇ´¦îÏìÇ=\¶ðc;¿|<‘oAý]ý©~ωét¶¯<|{Iûî÷gv]6pœô¢/ö<¡SÓÝí g‡½µŸþ;‹¼X‹¼àìÚOÑ5¿.;iš– {ýç§'›s%™i+Àx2cÆE„öÀJ+Sº«gÁ@¶/:V Ù—÷]\ÿ§ôLÐñ£€ÉˆË›ÔdiÎfÚmçyKŒê=H_VÚ^¤sŽNÙ $]’òzy²?å}¾LazŒ‡Óâ¿D+‰FdLiYgHV#M¤-üügG ±p\*Çõ[nøØ¤Ž?.-I12°Uå—.´äwåä=¼<á  Ò©‰fiI^ÊÆh(P’(]Нzqsçt$;R{½’Mîâ­,ªÒhåÙk<Ä[ •žxsVIVîT"©Bc¿:v·aÁ%ð™Ý¡ë¶è&[J‡l‰Û&>âu[Ê ÏܹÛì‚LÂZÈ,¶D„’%¬­Kcñ°7¨ÛÊA£dáNõmÞ”/s>0¯,9À,ÏT¶:çÁ˜‘{ÿbD8Á™#‹Âæœú#ZjÄù0'ԼѶ¢…!KviÈ2‘ã´Êšµf²„zäšÓÎj<Ó½ì¾Þ[Ñ.—<¥$ó´:…Á?ÒÔCQ`Z«Ã›â¸‰ ]j)¼¡O¸µ³¡gb¨«S,(™å©Lô”@‡I ­³ûóiÊOa9èyV¬kII|ð®õ;š?<<*÷¤„ÙáL¿dUTs³z‚ ÿ²Õòþš=}ˆàjDüª‹aͧ;ÍøP]iý¬ JÄ…¶×G„À˘o1·<¡ÎÓë)\Ǻ5hèOK<¶äÒíX"0ƒÃ#-hüŒtv‚xFù­«›a*A ¢±ð£ 1RòaA"s:|®ÓòQ:?§Ë%‹ÕjAõ¥;Dáê„›GꂲWË:ÕÍ_æS¥/¤Mmr±^nÊïœÝeŒÉѨmòÃwð:¸Í½v%c* Ç£cäOPžugGÁ¬ØT‡½›Õp96{i¸ç‰ŸÕõžZ³bqÑŒiÁ]‘u{ÇT%ÉðiëðôASbš,ÇÖP"^Ìé2Â0I÷BË×9m·$Ø´T†O §Ps}¨°˜3]’,ÀkO‚bäΓ·=lŒMÓ·[› õI[ûÏT{Fz.ј×ÓœèÓʸ•·‰¯ «HŽ€˜ÃkilÆ~‰KI‘N‘mÓ¯rÒ‹qYæŒ_Í›A}µÐP"Þµ!ò¢ï^ÄUìEƒ±=ªL–„‘z¼+Äx­V^>„Š¾ÃšëÙ">%iY'½”7+ÓUݾÓ|éÎßÅÕüÄc‡Çªå¸PµÉ“xeˆžµWxÉaž>häåÉúCR‘âÁgW“QY%9cMÉ¢¤L£wҥ׬Îm€c‚Ρ^¬]Ý3±Ayê>ßì+þm{DzJ´oKÿúu²æ7ñ«8RnßÎñËEÔÊ覇fÚŽ0£žp“ݰ˜Jp57S°qýoÈMz,‹§ñ=œ_)äÄ84M§x’Àã-[LÛ<}G G °*[+Ëû‹EGšµcÏ#Ætý$,)Øä‹ì>í´YB™ÎZfoä gd4¿›äC9j „³fá–%—œl錠¦nJHÝ{À‚#ŠÜ2²åºã`Þfò³[Oãu ø‰ë é6¹x'ûDÉ2¶LB­ê€ipçÚudå [x§ €›ÏgÇÊ8ã…1-:®÷ß^OMÝpµåuÞú`ÄI5¶ñâó«-Ÿ²¾ÚÞDý^5É<áyôßã–¯,±ÀâÔ-¯¼ÚEO¾á]Ÿ:ëŒèÁ{oÆjxr¿£¾kž¶Ñ¥>¾ÕÃàXè@ë¾|už¤ßÓd÷§U']LÝv*oþ} ¥¯Êá['H‚\ÞMèL[âW{­º^æ”9P–òá/A¦Rf—CgšéX%ű #Eß(ÚÛA¸6Û(·y…+ë‹dFê =Ø+ºiH¤«ÎbK™"ì½Ý+2³gb&bu–¤(KÃØÚ­Mþv4v£m锞Ã@‘‘ÆÁyNãåƒÿZùo‰¾}ÕàQÞRÉÃ5983lïã6k{X€sÎG}mÁ»±™¾°—ýǬY°/”·Óeà°‰¢§mGÅ,Ïí-­E^†-EazÀ¸Ævê””…_ô¡ûØèàùºb{Mb3y`Ã)ýGwßzê×G#Žˆv³X(渂 µ—.Óæ,e,¼Þ)6gÃßR¡h8VOtûÝëµåGMŠúÂÿÉâû±c|Л – àÏÞéýJi!ßWމ@°î zUÍ/{Ô‚€2?ä6(ÜJŠÁ§f1Y’ŸÑß)˜!­±`ߨ©ù7Ïæµgìî¶nžmMÙçö´Äþj'ͤ¯sË¢Î>ã†F"^I9[KÜfg…_Ý»”pL¢—8ÕRdl÷†uI[(ˆIÙs–FBªÓãV;¸ãoÚÒ•÷òúÛÚ0tæmt‘êhɘÎF$ãå8~¶ÁÅcïXF⿹Œ£ÊÞjpQÜ«¢â]ØI'•MIÖîפ4W_=ŸTzó}F¨:éH¶´ÍO´:B`mê€ú:ÝÜé@â=lEô÷ÙucWØ¿†?OydZå}žš[¡³~¯¼ ˆ®„ß(¦Ùó‚Ø" 1Qq#ø*¤3ï?¿/•'® º“T|$E4>JÄBÀãõ~Ä·SJi,ˆ¾Aéü¶ËˆÐ>4$e¿¢MÃaŸÀ]Öûgl)§ÌÚVä¦î>6Û Cf±Žªýp_±3k€¬$vK´Ü¨už mÉ[ „¨ ãCû,F¾æ Ï|ü§ (/ÿúï÷¿Êþ# †£7PBÝâ󯺆\DÛ&eôÿ4Ìãu#ŠKgA&%ÏIjÚùòäFø[œì˜Œ-¸®ÖšE.Jfæ^Þ/8S+lÿ ;ªïÐÔ\¢^Fî~£ðmÏ}'ö´h`{qê Á/–„ÉxQHâСáÿk—ŽE5‰ çª&=åE5™hÌo ¶½Vzì]úèœ8ÓŸÙ·#åeâË‚eútî‡Ð–3÷´˜6Hô<Ú±¬j­ŒÚGQRÔémåú‡•; Ùb¦»¼SìHâA:/ÀASpdˆ±Ðkõi8J6µ[r y°tí3>o#s9 ÿ ÙåÜEk^¤îRbÊÞhÚ$¡…Çxð´Ü…¡`ò9š¶)ÿæS'½óà:™à(¼Vκà:×<¸ ¿WžufäDÓæÖ«Ø›<›eaVó[Ý>"AäçåÑ»´×ÖÇadÚ21n™3B™qŸŸqˆâq§*ª?ê´}5½ôñç¾ÓÕ·­ªzí(ò»¨£Úƒ!¸)лeìþ^~ƒUÝrä•>~Zn%©H<Ò!Ü;vZL×+Aa¹C “"t‚!v GOCL_­Ú/­–ªÙÛÂ9çqš”ZÏŽB÷DGŽÇ&pçh’Ã=I‘óï«9HŸ‘”Õý&Žjõþžjlã}Hÿtµ R6>®žù kJn@vqÙswúÙÁÏë!ty æ/b?Þ4VyQßÉí›_ô¼¦Ÿ:ÿª†úÎ-î•¿ÄKÊF]%ä0g>Áåà:g¼Ü§"±„æžEo†ÖÊÿóŸELžèOøí¿÷µ˜z›ƒÂÀŒÊÓ%Äèxk #õúoê×ëyýúñoê×óúõ÷“û…!ø2w^?îêgšu;ZόҤr»-’Àå;×CÖ§™¦)L1'Ù¥xx@#!:–Q$³@ƒ„´’F._«ô‘M/×ÅÛÅC> Ìm¾…‘ËM¢ e×´ñ,{] ú“q¨ ¶ç{S‰`\-‹Ç†Þ¥ÔœxÅ|œ¨èšrþ:¬`T> ¹V p_ˆ¨…gNÐ|Êöú-} Hq’é½<{¸ºœÎ«QÅ+ÛÇ`ÄEšªd½ÿW#U~*»rкt8ØêÚ‹®¬Èê ; ñ{¼xû‚!㑨ƒâhlÔ³M¯ä‚‹­ØÃ®¬ÍsƒG°Í®m7ŽK:Ý,tjѨžóÆàV“§Ø¸îZúxÔ¥#äx udŽ™*©›¹ß‹& ˆ Ad@Ÿ5è+ɧ4Jkh,û–vWÐ üeÒ î— v£I¾‰›”ÊŠ6N—´®®vuIjùèz¢] ‹­0’¨±•<‰„äÔvn€½ÆèÜ™|Š//¦ºš‹"í¢|F?HhœkDôr¡i·£"+CwíP¯ª¾¥BeÛ×@Ùöulû Ûn«DyÁwÖë«u2gi@•YûÕ!k£åu?BË{‰Ðë:;fª ! ÄbTB~ }_}EßUyOAwQËW¬]Tb¹Ž’æSÅGî]”;V¤ÜW_)wU>D¦}ÅeZW¥µä鬰’+­åS³ã¡®iF¥]év7dÚrIÀû’vy€1™P߬ðèC% DšJ]14>6Ú2aݺÛmñ\‡uÙ=ô‘<-Þ6Öb‰}‡4…€v/´ÿ°x[t¬Á"¥ÄJ¿QÚ˜¹•N9Ñð´Dl§Ç¢7¹ r‰»¬–×*™Q®6ºayB})pbõŸ8ÄÇð’qu×¾L*"¦½¸paR1šºªæ Ïá2|òÌ[&KÇaé>•ÏÌ@ì{öˆ–MmpâËì–ÃæDüøD+tØ ÇJWeãúŽ t Mµê¹Ñæ¬t~NL%ûFK_:gÙ–§¥Ý’´äá—ßk*=ÜÞê~c#A.ŠÖ àMÜïIÁ>Íå±ßûi¥.|èÂZgÐ!dše4Óƒ›¹<=Êà†: åVªîzÜñ~{[â%Ïá{öXíˆ/uŒŽŒf(»]‡•hš½Ì~'E¯Žäáï;k;¹*‡cÞxc8/BƒVš®K¿nW£X&¨%y FblŒU+’Š#‘&uÝq1¬wÓH3@7/‰†õmËÅAï±?°”zÃ"êúràîÑŠ:z.š ØH4IE­H¦Fš˜Ø¹¹nšT%É´XMý£±ú!¢B§D.ÑÑZ‹[6ÉиO@S¿O¶ábît=–ì1[ÍöÅšZ>~¦¿$^~¤6±…ç¥I¦¹Ömxj¦ý{Î0_9.bDƒòâýÙDulFâ„0Œ„× B¬õ^,Ã]=’#£‹¬iYåm-öÉÞÍ).HRgY¹3‡’’gÁHˆC·ýÉ‹ôX·ÚŒVÀHZb_ÉE_;nzwŠ»°7Óˆü®gw›×107¶=çHP”5*Ž„‰näóPmâ>1lÓ!æg çCëÜôHØ0@HPǵ‚®lŽ…ÀR)Á}§D•ù:Êî!žºÃMé?¥š:aŸw%Á\Þ;•ºÚ ~äêTª9t8‰Ÿ6Ë7 š1È}Ú Ô‹U´…Gõ“>—è@$öÖŸî•«¶ø‘Û—Qž%%Þ×Í+A•/ðÒõ2Úo‘`c$ÖÝb/•2Ï¡kê"~ºÖ/$Y‰à‰sÞ—X€»þuPµ«3þteÑÈ£èÓ–ê×UHáûÍ/éü†MÜÇrЮ4DV¼ß¶[ wä?hÐ9í~ I÷:Ã{ ˜lßž…"¹]g"N•yÆìÏtjQYC^O±%X“]5ïº!bEýOýŽæ]IlñhW'0˜}ɱ¹“ìBinÎ?UŠ%„ZbÇtzÆÌåõåÂL}”JúBH`2|é`¾ªÀˆñ„µÝ5#Øg©"æl­7 t­¹Ùr›âùmÚLVË7̰ZªǸ} )„=Ó~¢«mÖýc×ï+OÄó¨ræ¶Y¾ à¿pZ·Ó )†¹…¯åµÃL™‰EmÔKu/ß~lo,tu7{…<± !…_Òœ .9FññK ¢Òk1 òW†+± Ä1ë º5áÚ2âJò&¨~Ù4¬]Ãݵ÷,ö4¨o7FJŒ¹†BRíö”]qfJi‹IAÝj®!CŠÚ ŽD¹…™Ÿ$WR¶D.•o­4•XtJ&±£uíi5Ì`_ø,ÅÐx G ÆÆúu!Óª¤ƒÁ°´SãE-–9ëæ,sùcÒûÏ¿7-»“ôáw¦´õÇÃÛ½'}óU=*§Û0—sn²7ƒ2Òvg½ùês~o·~DoÙÍ‹Cwgßt¤s×ðšÑ•’¬Ð1nlcá EÖ»Õõ >½£¯õa±â7 ¼¬ÞX›¡EYoÚ;ú_¼Œ~ž¶Œ~î^F?ñeNbóbÇjO5öM«×XÏž)uGØtúNå‘ÀkÕ6Óú°†Î£_x†>þ–gÀWxUböÿù·µŸÒvŽŠ…bÁ :!‡­`¼Ù¡Ò¬ŸõìÐý‘ .êö%>ÁÅÃ# k~‘‹cˆ-E6ؼ”i>cÊk«é??!—ÌÆýh´9ˆÒÐê`p ^<44FÌ/ U"^¾q;,>!‹d’˜WÎð›n¼m,Ž!ªCfØV{†Ï°ä€Jשˆ´šÑ•´$aº¡Àο"Á»á6ŒB’ã¾™TÚƒl¤º:ý¤`+£‘xk¶-;ùÍfòÝ,7ºËëhëþm܈“{ch]ZN°‹£Z£GyC[Ruu0Wúª™,ÿ¿o˜{}/þ«§¡=º0Ä…UªG4ôÍ8:^ü¶A¹ê;áJ“–¾‡vèªÊ•U¨)‚>3×¾ÚwÊA¼‰Š`£®(ßCF?³YG ö[‡òèÙ]%ú²¯o%!…¦µªêöæ;Æ©ÒO­Á¡(‚~jUÁ >ùý^iúêMÜÓÁ4ºÅ™´ä“;F¤ÑWàöy/Õ¿mñ´úÆšü³~;¼>¸–¹>O“wY {ŒxŸ…Ñèt>&ß´0ýÑýyMõ 4)¤ÝTªËËžL®G1uAî6ÑnAFµ9êºkˆ;Xò ÊF©X¾•;‘ü|C‹½1<tøzòÈ¡X›t¤›Ýùwe:Ìpk—a"TŒ³øøg~ˆbÏɧ®šçþ!µ P8 ‘bŽ´BlËiûà)v˜)=EPnc¾PÚCRlŸbÊ|eI@>Am«¶¼Æúþ1§å ¨ËÇÞsèÈŽ\Æ<#ƒWÆÜƒh‹)Ôˆ[Óý†» \iz›»aÊáú°íÉÍŸDª›òÝn1¡:pK –Ká=ÝY²pd;½Ã/%‘×qj óV»:ô/œŽ“{¸õ¬ó r‚¨ÿwÇhêk$Nü\ƒàŸ»¼ÒdC¥¥Ó–¡¨‹;E ¼¶ »yl(¡¤ÂçÍÄ‘3ae×[fÖË–±„‹\4Vç7›sÈd³eËx)Ï–ƒÜÜíÿpµ¿×Äœ-ÄO§îG·ýdY*îT!¦»%ñ'`~dYKy â÷ÀS+.±ÕÁ¼ “Ê[ÿ, ˜AÈÍÓ„MM6èHÐÿ)%d‡¯íg~¤\ é9žÝÅ 5ù®mX'“ fAy@§<ÖÙà7¹}KdV¹†Û,ìÿêöŒ¿© ù'ãIÙ¢äMŒtB cÏ×x;5K»¹Å¬·»áQ‘bõñÛ‡yí¶DLâgÈþãã+ý;|T¬à £ññ×pvÑ×;äùõã4c&h˜L³ªãÏõ×i»MnŦw)´fö—ñÛtV¨û»¶ÌÈùˆsûÕâˆÛÚú ùËDzÿª Û;ÑŒª¤ThYùŠÌn9 MQK¥Å[qò¢%}wCâ)3°¡&ÃbAÃ>óð / Äg Α@, žYÅ3OÇï¬I£ljÊ#vTŸv} ÖªíN[ûžàÙ*VÂ&=¹Õ'b„ÙTPo þ{c<Ú#°'%U÷úò}8чØzLÖGå@³özD‡‚'š*À‡‘ÕdF"ø8W÷o‹d§ÇÕÖæ“juñaõú/}Å”v ´)Óɲºšï;ƒvV¯T%ž_HyñSD¿«_Õ®Rwèm-«K=`ȳ¼! a±9xÞØJIíšÿ8ä´’Œ9ʰž7 hukèM¦“´•b•¸ˆº SmÅ "VPHW ÖHÖ€= )^’´­cG‘ö/6G)!ÓŽùÛ¬å@?%öªc¤ÄP&T,¡¤W zn+ÞäŽï-íºGÓÊcÂUôÍZ€¯Î­1’H§¡®k3\,Ò’°Â>YËÃʯ¨\Ù¥ó¾¬\„ô#oE¤ò ´YxÑ­ËQ‰-QÜÈILðÁ0b¨®¥T!š#2mìʺ›>÷¸k¨ìŠkAÜç›®/4ŸÍõN8C5tuc¥|ï_ Ïœñóø’mÅr7[O=Ô‹aˆyÛLlCÛvÎ~câ¶‹Þê$UÚ~YÄf…V—6Ý¢"cÑþC‹¦Ö>å–Á)V]•b3 ¡¼ŽùÏ–Ð’Ãæ¬?YQW챇EuúP6¯èïuž‹·•xñ˜¾Þë6aýúNîN4L³8,î™Î*!ê’©)UÓ®$@(;Y¤‰Xxñã⯨±y!Õf Uš+}ƒ‚G5•“®k™zò+–ñ1ËÅ+¾`¼ûJ¾ œHèþr¸ˆ¿xªf—œ³!˜ÅÀ—?ܾ¥ó úàþÇÑw§i;|úñ«é¥I=÷5}âáÄ:O·;YU!y/< #Ä»aÿ;cÝ.Á¯bN=ù&­å ŽÜ‹2CÖ6£ƒ$µ’´Â$”m§&õ«°ub¸{<Œü݉èlýà“vÀ‡Ç ¨¾j~óQV)#Oj‚ÞïÀL yÛ$B+šmŸx@ž,¥:SzÌgÈof9mÓmPp¡Õ.çßÑYt·ÓÆ$ÂNwÕåë†þbÔ¬!•_-ûK~Ï!ËÛe†ñemR·éÎsv9¢SŸÏKv¹v•Ãõÿ*¯¡b|´Ý:íLôÆ^Ö™™æCR"ùÄ7úRÕ<#áŸààõ7s VÔ)nå. -_Ä9䔢®¤µÎBÔøh(1{š²„XBÎé´ô´BÒUæ¶…¡Qð4«E¶ÙMF=IÊ„ ‡N&ç£%8,â ;Ó~ùï[_{¢_ Á)-³¶n>¦Œv-ãOIÜFKçͤ©ÃD5ˆËTìSjNZAÖ0©&ÓþQ?M. „ƒ)Âä«1¬ÝŽr’£_$Ü m2Ÿ—3 ºz©Àpª †@nÄ49žDœM,é iÏ×9xìÏYÂê äT'lãŽE+*êÖízT :¦e)ø¬*†BÁ®ÀÉqåÝ¢xé±'?óÉaiíæ ƒžöÅbx4éNRð¬ì©QŽ@ynrÒ-Çßä-.8IsxLE‰âe½0ê””Hv¦ÐXÄ…#!­µ’‰(ï×0ñí£{¹Ìë\ßÂìYàBÐtN»ºÑAOÅÚ™VÇ—`2Œ×êœÇü6?Åi†ýšÝ³c!Oá0¦mzew:ôà>#—&uÝ}óïËîÙc=7¿¯äWO9ÊÚ2À[c)¼|¥@=1c/fúÞvWg_‹O{,ÔÈaØÔït˜Õahçù”e6?Ä}Ãw8ë7=°ÐÖeÈ ±wAuW::°ÅUŸ ÙŸ¥IY&ú1}hhÓ± PŒæÃ òzš2jKNëúw½vׂ *ÖBZ¡[™i‚§+¹ß)²OÚÈ"\¿™ÏyóؚÍÍ”5Ý»‰k-äËælÆe¾…ŠvgÓû§×¿'Q}+,áÓˆæTœî~9‡pÃC;E{^Z«M/B~?+’ór^íE96*Úe}¸×¬ Ÿžõ ¬ñ”,†D×C{pA/²+kn®ñº„'ž3³G€cF˺]ÀÁ´n3»ƒ>®„ßÖFÌ­‹ kS?9:pAàä§–TŸ mнžLŠ„yΖw÷0?·®œQ×L¼µ6¹‡ªOóÁ§-å×ùJ9JÃl‘ÀˆŽ7iE‹\Ov+ŒŠ“ bÈÙ$÷ÑW.bý!ã %Òoô.~—ø†'Ʊ ¶§‘²G€–ÃdÂW§]t)¿FRÍÆ½\Åì¡‘óÑÿ~‘ô™Éq ÷Bë ñÖŠÝ꜈m˜jÛË`ðRíà¿?â€;é ÷S3þ»©„íx“eç¿EùWÌŽ=uäžw-%åö0ìä–V7¦K[ä«:+Èׄ 2ß%O«TYMº+®LàÞÌÍBLmæÙ¨ S}p_-;ÇJb}.gjµJzóÊ šGij9˜]ÿ i|&¦òH~0©HÀR¿xž¦j÷ñÒ#àÛí°~! ñö¿¶ŒÔŽv¼Í' Ðj/J r!Õ}Ä’ ù@P§7oˆ¶Có-ø>Ü Ômrqý#ØusÑÃùF§ØéìŽ6ÛÔ¬‚–Áûl2']./¤)ê.>CÑd‡ØÆº†&ŽršþÄõ ­,%0mëóNÃlÃ`m°NbÈ~x¼Brœ2{{ËZ$HæRfè†v¿ã/Ø)S·ù|S‹®´ {ø°9’>»BA¾-B=[Ô¡Ûäáj Fž³$‚U˜‹دbùx?<ç•Là7QÒ8ð[qxkgÿ‹ÏaMÐ äÔl/] Òâ?ÙIÜÚpe,Ü.evëH+¸âö `?ÊÀž'íiíÍQ\&ƒÔ$™/;"6¤˜!ç[kI§Rá ]Þ ë‰…oØ‘öñemê1ÅI6ŽÒèÐŒa¾E‚S…œæ_Oq½³ ©4„$¡E—<-Ó;Ϻ£¼GÙpSÌ\åZ<$éè¿W^}:™})'-î°+ϣทü•¾ÄÎÑl;ÜY0ì s ‡–[n ¿¶ì¨âÅçhƒ_”©VöEÌž÷éɹx„ C^AËb/¼Ö”Ýij)4O”Þžò|Õ Cöޙί”ûõŽó¢®!:/7üÜèß_7žñxþ<ܵ‰Z¥1ˆá OÎfÀ±YЛiÚHM}ƒü?ˬ'!Õ8Üi/ü%²8Áç!¸ÿ¼ûÁ=Ř¡ËÄ›º¢…Wúq‡Dx‹ŒïÓÕ{ͬdTó›|O 1îÆ/´ù[˜'7{9YhNã&R–‡Ÿvð-­áŒ}€Ó ò×[-Ñ<­ï±Áíwá©ý\Ëp^8ë Çãpºr—‹ ÙG)ž?ù'à¡*ã½:ð âô˜Rp –f±Ç‘K¿qB¬ôñ¦«¨É.ú_šfÕà òR•>^_P¾»á¥§¯ÐÏÑ´›=Lô1ÖÚ-£–ÖàkXkSØ–z¼sòÏØ‰þ‰Mkij"©©F¼Š‘_;q@¸§g:âEá²rx\^ÓŸžeõí?»Í¸­ ˜‹ÉСé +? z¢£¹g'ÆM»NßXÓ2öÝfÀ¨c¼Co¨‹aÎ5˜Ÿf¯ëkê§&<–Ü5µ Цá4ŒUt¸¿ô¦\ YX2,U2æÏ„G„¬›dä9ßȘ"6F»ˆ†3üî®ôã,§è½è&ùæ *MÆ7yg$óÝóÞ¸ÞæI7ƒ°"ù¦8$±lÒiÁN¿Â^Hú«gœafѲ8·d‚rìÃ?¸MÖ àé¢QÖ2‰   £±4»Q3œ‹¤®ºÓ¼·þ)ó@FißlÁFPë°«Ç ²fؽÐú<ÆÏڹ«9û.ý‘³Düç;?8~‹ÝºŸ­KTx ý²U¯È¢cÍ\^šÊ? ›ÓÀåØÁ"0%ûnœ~õ}Ð(œ¼AYEr{uF{}£¥[9w§CR·v~t í ÇFÜ1›ûÏ]ï|ÉGæ‹à¸áÀ+"lÝC½ÝŇúƒ¥_ãý,g¯¯^íÁ¹ó$§žÏÉõ0CØî—Œ¥ ‘CÖÒËó‚¢Lk¨¡-¯+Rˆ½#âÍ:áLáÅö˜AqM-eë¢Æ5²µÉmÛœ›Žß•ï› $b|\Xçô ÑǦ©‹= Q#×ö¹¶çüDVù]ß4ïâÀ=eÓ´â—¾²œ]ª\\!³ÏaGÙàZÛŠÙ{Lì–zÑçÞ1ˆu0Ñ0iÿèéߊ§rÕ])gŸà/¿SÖ÷‘&N»vã J÷­àú÷ËŠ¡þòÿžLZ‘t];E:B¥Ì4é?'øIVÝò:%ÙÇ Ù f.•º‹Õ²—r4\ûiÛ.o¤!Èœ þD)dF±7 ÆÃ”©/ Œƒ‚vG“%‡°3.R³öûŸEiÑw¢½Hü5fÉBBˆ¢Ù¸«s¡ )/62¹Â7­ýõçw[¹îæ Ô‹•¢XÆÀõ'ëÖ|’d´‹uUÐ=Œ¶M½ÓDŒ¦mx^"’¦u_u|@†u³HIË’ºwºB¨5÷­Ê¿rÿØŠQÊiôª¨|p¨â^8¢PîBüÏk{±‹XÔ\ôá§¥ˆ{‘¾D9DÚ—(’Ýö‘ô®bÔ1Ñù-ÉÔˆKwÌ´Íåî^çLjÃIÑDcwuðe‡Áqð%¥_n‡¥¿øTa>%‘è$Ö}ýâ¹ÿ_Ìûÿ›‰Qá5°‚R¯‡Wƒ¼…¯ªš™™{•ª˜Šˆix Øly/6²¾¡Öÿ,#÷ÆëʾJµk­k "p»ô<è<¨hYVö¸!¯µë ÂbÙü×\f°¬ˆ±–ûÊJOœ8´PaôÃQÐu45”pG ¹ìeÚÄ>'b¹Âäÿ0—èhA!J>d÷Õµà‘SÉI®¨A8-×LWw´´wPi ‰ë˜î¾b¿zj^⵺§úÞQǦ®xckâ…×Ô$¨‡'4G«zÈ ýsa1x#Ö[ÃúÀ¿iïÄ‚V…€{Üu„º«=%­k…[ÖO“V¯’¯‚:|ÛLSzlžsñˆy{líúäÉ<0´°/…§±®?QšÂ(.œ'•üücÓŒ,-¢ÌäÎý²3‚ ó®éT’[ƒ]Z„8ÛàÎcˆÆ”¿@ýõ¨Ò+Y|:â ·#ª…’§Žžšû@Uœ ¤ÝgŠ<;Á@Gk]H%ËÔ“ó¥*NÓye= ê6Þ¢âê¤E–x-“­ìb´¹ÍûÃ$=œxB“ úíaw˜fñÂ+Üt9 ¶¿\\"‹„kÙ›hã3¼8PwÄ!¡‘µAˆÓ±cc3îAà¾Jì£ï|q‘Z0MN«û&ÖŒ<”A»³mð<â@Ç«$›eÉ çó&a˜kâÛ*Z v<4]húÇ‘_ôÐhÇ…ó&êëFó7ÊnŒ?<ôµéaRý-ß«È`Ö‰OŽÞŽÖ°e»ýqiZ’1šÉ%3ü‘ßHÙ#1] ´M•f(¶±-Œ)7!*£Çgö Ž¥M“Ii¦·Ÿxyw±ÿYèħVþµ¸\õVÜ7@¦öކLR(YÛÑnK²Q(œ>FbŒi«SÚš—´é/-ý…¬,ù00Æ*˜ÞÌçð:ü·I½\¦Mkhù ±dê™Ú½fMVnùØròì7K`-)KA¸@^›Ù*HÓ¼3miʯáÝf¼Æ€çmgó1NÄá]z»ŽX›B7JÓÙ¦&­ àÛ¼ËÏY1ðV}']z °åÒB1ðSVmYduu£ñ V¶Ç¿“§ôÁO™¿5Ñ nëSÖ %ò|l‹Šã"“¨Ïè°)a™A ˜âUiõgïÏYŽü÷mÆîʪ["ÄmŸ“ÚÑ÷EÚ¾þ½.z÷цtO=Jö¡½€Œ5uï‰ÿP÷ðž4˜ÿü8¤Øà,sò ›Ù¸%›t<2WºŸ·_˜·Èû+Kòk]wç/è3Ä[±¬³8|kn0µzÈšOCð¥sÚêx§à!Ùþ¦óT/§È+n4É‹e,äó’÷ à@‡AšŠ•Kz1¬UgÏ«)Ÿ€èàð~ðlˆÏjòðûþß!¦NÏp†æ0Ÿ úâ*+ü–gI~öѾ³ð¶©ù4”Ë?~«`N¿˜8”™^ar½6EZ)#ÊL ¼ðe!‰º)›¹ŽŸ¤²·œÑØ™V]ÿA)Š¿ ª­á·ž)ký úPFZ[ž&—žÐÔmåŸ÷ïêü>Uß CÑÝ^¶jùéã’R?Q–ñë©™±¤¾(—/ñ¹É–ƒ-¯šÙeBy!ºÁQ&ðÅë°g!Råe¿W«Ó’ó ò4-bâlûäq0í<6n#”UAú¶$u¥$µ¸G¾éb÷„.ÛBe _èÍ{Uî¶N#;H²ûpf2í9@Ü ¦×÷åÖïÆgÌ-BZA@Š[cÙ62ÁùZ_…Ñ-ñ® J=ý‹ÒUNúì…¢v`‘š?¶’PY÷œ¢#¸q™òá(EßG$W· ¨¸ÐEÀÿ•”R¡tž°t~qÎÓ•€gà0ü>°0Ñt»ìØÈN`~ð»¶2„j™Ñ}–ÑiÁ5؆WPÌè‹ÂÑšçNb< bš¤Zöoñ^okq)=ƃ½üj¢*ºãðY÷¬iÐlMv îêeê {:y.Ù’‚Z[ðÌï»ï¸Ý€Ò uò‚¤êÓöì< 4°nÿål¸Öd™ {2œæ"a˜6®‚Ñ9­C¸ %‘§†ß ””ðA§'(õ<eÃg”’¢¨û.¢m[·,ç7ÃÁ¥Ñ­5¶\O"ØNSYLf¤Ëůh]‰«p–Í Ö…̸Vu˜$ÏÖêæ±³1¨ mñ œ¢VJÙÏ#ú¹¯y )aGíNš¯öT­[x-rÏ5¡—•±éá5LcåÞê$£ºŽm¾ 9/>@*2‰:K  d†zÌh+_#¾•¼|üFM4i×Ë ›ÕæÃÙ•¤Õâzá‚_žB·Iø tGÓc± ÎÌáàXA+wAfOuˆöD¶­g²F"žáMBeÚvêùt´ºõ`†¢Bš;)vµ‚¡x+ì=V¯#¡TöÔæ®L;jsÒ0ïõ C‹E#qá1Þ…µÍ2«”ÆY,ë¬/Âça¬nãBÍÓ¾%­Õ5PoUÏ;W+jãŠég†ƒ¢*j¢%ÆÆsN[î>A‘ ó$¤©;t#§ïuØs’Sg©qÅLÔ‘Ë[¾ÓwUoXCÕ‡e¸‡@ž»w(Ÿ&… O¬à”ÿ£¨‘ÌöEÍÅ»øãÆ¿Í$Ó™üÖm{ÝqHƒ¼J€øì\$ECSÊ×͚ߨӜ,µA Û®›{sm ÖÍ"q®"+¹ÌV*½æã˜T&Mª!-%°hH§¥—%Ú8†¤MIF=ôòo}ÅêV¤¸‹Šs´Æ½X`i!Ó'm5zG —`ÐÚŽ0-GîÙ^Eß6ñÉ:£½ÈßE ° Ÿ²¨EaNY®&2–Ó,2^f8άá6uðgAß寸åÆ×,4ØK€P0‘?rð Mü5¶˜›±%ÂMϨ¦(LmÛXÝÅj-ÅFÈÙõ!.ƒ!)—»”ë`mZxI*×F“{{4õÆ{R’§93sŽñÙ{¬>ó®íÓ®oIáέ 6á)6 ”¶24íc¶Ó^ xƒd<Ù± à† H›zº¤¥V'-ô°Pˆ48»œyû}(Ô)‡©»¤­³"rÏhZgÖ7ÂPÔ~.줆èaÐ#V•ÿ’¤›YÄ®#>©» B°„œ›f§,L]øí4ó³ýäDFĈ”¾#ኴ™IšÑ'YCZØ’el÷µ0:ÑgÌ«…xx!—P0èš8Pü¯X¿øp·ÕHcÁI¨…ô¾Îܳ¨Ä¬‚´(±æ mB¤JŒç5O&T„2j¾B1=Dí&5˜^åóÑ_ç$ÝšWÎѸǀ÷d˜ì ,°ŠöŽ ¥\ù É…ñÉhtøõÄ{4v‡€I”ÃétTßÒßÓ´5x'ԫВƵH-„äÝŒ¶ò ± ²¦Äœ®DšåðJÚ²àƒŒ­=œFMv±rk2îüf¹W—²å‹Y½ìߺD-°…BN£u;¼sž¥c<°¹(d_¥1Æ×.€æDÇöù¡Ú¼z 0è1Ùõ xkù»-Kðß°‡F~ÿïT3Ç¿õ´²1ÙÝFe¿Ã²GsÿŸÿDмXïIlSb;<ÕÊž³T*zP§Kpãà“¬üW‘¦æH¿E\ů㎑Ë)6^I·«Š´ïEöž¬ ¹-!cûfûkvÏž………€rLW7ãõÿ~þükuü*ÃÝ|º$Eû?YNp“ €‰Ó[α 7%ÇÝJU®¸¬^P$C„úÖ’;ÀV]ñ&[l‘m~ÒRrÓd¥m0Ìyi‡uüÙ-ùìÆýoM1”NI‘‚Þ¢n c˜ŠîñÖg*õ¶-ªª ®ˆ\›g3ÕÌè ua?4dcSBdZ2à±n$áoïüO©¢nEÇêZªõFX¢¶ãߎ„¦¸Ÿó‘ØQ€<Ž~Õ¡!ð?>žN›v¥EtDX“tp¶G½O×…Ì:öEÁø4UÄ*ÞÄ„#orʙت+$_ðAãŒm‚„8Ÿv<Þ‘Þo)eh©!•!w`ºh½ø9§«#{ÏÀH+ñµìØ yE€VwÖÖU©bÏéò@°èš)ö"ñPNŸC=GéIl€sÄö©<uFtÀ!¢e>z­ú°ôž%À®z•PÎˤ9Æ—uúØ^½ 6þ#«½jƈ·½zdpÿ˜Ú®5ÛÄL.wû×;_ˆzCc\Ed+å–šb¸Ƥy‡4ÇM^’Ïa¹rG\üáóx“{Pƒ¨3ég¿Gpõ4tŽ¡ïÛÔ„çܦæ\äæp3åx9pLÞ”ÚI}{¸ÕY\šêüvÒÒ^±oÜ‹*ÞónñR[ß*‘/»'SØ;&~ÃweAÁ¿‹Án‰l’cé¢l±˜ÁªÞ‹_"X­;Ô¶þÚshÅ8êÃG_á4xßÿª¸@Ué˜Çð¶ÕGP6‰¾Síߣ£ò O¥]Ëø ××ÙOôœV¬çΈ­½ÀÓ¦V É÷]7%”F£í•J™•à5¬þ-=¢×ŽÆSTîZß9ÿ­hìJ$¤&dø <+ëËE¶æcõ”Å ÎGomdÁ¨I§’7y¼ßʶÔ8NI[ÒöÑtSÁ>M¤1‘™dûJAy±T}͆¹öb=ž¥ÈÄ”ÙO§‡ÎÓõ]¼#úOÁ,KÌ$¢Dß7¸lN¾;´&²"*Ú?³ y¨swos±м‚kÖ¦¿ù=?‘ÑßÖpTõõ½~æðžfô© ÈwKŸÙƃp¦köVWs²¥^QËjÀ-tþd«„#š>=.CãcläñÚg¸ÂVÓýÆ-~Iâû>ZÜ?â‡d¿™ÙÃŒWÔô»x­ßItk©ÜØl4xŠkãQPúíUvÑðж }•^Á¨Ÿk°)ÿ‡¶÷;]`Nñ2ŒWI®ou0Œè€ qK°G«þ<ÍDæ²É®ž'ÁåøÈ=Ű‡Ñ—Ù€¥âï2rÈ…hå9£þ'iÝfnWšÚ˜¨FM‹Bik©=3ªúÙ'g¡û?u• kSº Å ñN>¥ýò½§×Ï™©ÍÊ<8b.M2o©ÆÞeD+Ç)ÚñÐA]²èÐ8cŠ´•£äô{çâ{Äôõ^· ÃÞÞÉý@¼¶>[xxÿ.÷mt3.d¬¾L*ñXç[ÝLíÒŽw¤ƒ¼ò@vA‚­[†3l6«o=êbf¿üZ¯1Þó«ÉnÈß!åû)Ž%b|p1¬Ùd,oiÁr滇ʢ#ØŸ¿° CE:@€«o¤'OH¦tÓ9ôNǰo`Ñ$Bîа%Ãëp¿-”k0Ž$®€»o_—ù,9œ¥à¨¿¶#ªìͤð÷ÄkÄ_×A±tYeŽšøë ÷Ãpl ¾d¬¨{ñr8ìÊ£p<&¶=b¡jýmó_ì™6ô¹”QcN§ù¡4ïÄ{Âj·vëÁR„Ï0¨6 Ò™\,»wJnøƒ…Œß¾öú—†Ç_µaÂÓVŽþK_1ˆ&Ù§è¼g ×¾  0IAF}ÄOÖ³Œ Ê„¼/¸!¦fëjr)ê¦yŠû—0`JOº½…'½§”#ãoXºª½\„ÔΣKKÙ_­kCaHÈZ»‰Ô$8„ʘ~§‰2˜¾‹]s–õñÓh}¤—•/™Û+m“¨*Ã…ïe®Ø)ó3ƒN=¨_¿;¬íw4þ* ‚M¨žUgŽ•~çà`ÆöÞÄîZ¨ýŸÍ¸—)o”~Û:Sþ¨Ï Í_CèN ˜9SXªë!]SĈÁ¤¢MöIîŸ{U,È­s•8RËÖ¶îŸ3÷±Õ‘{¯¿VŸ°Ë%Áû ©2{cîPŠŸÛzI{¤p&ë<6º~#Y?"ž~¹ó–ø»Sõ{NÐúcêP8ÕrËÒBœ_`K^Å j‹1zÙ¸ÔÄK,½)ùZ4oË“¡>[ü@‡aèÄE¼+ˆÌÏåé§lƲnX9¶¶m(àŽXñðT¶-»Í-°P·4àÌůÔàEØKä£(©ë›/<väù.þ‡iCeKtæö:O?WºA¬70 `âèe¶à€œþî&Hú Ìc¡Ïê_^é”ü†iº*—A?½xB0§Aj}F€ž˜Txb© êþ„}#u Gù-v[ïf·xø4A¹v°µ’×¶eæ?¶¦¯”ÝU‹T¯[¨f°XKΗP«`þ%:- ºð½·ÝÀ>¢s™^@»ôŸëŒä£ Ri'‚Ô_¶g—ÍÎ=ý)k:2…laF¸^Ú ]g!bC—ÑÿA®Ö|B ½Òyc¢øõ'‚É^æRÓïJg¥'Cñ†Nî.; Ò[_6&÷dùqºK/8kj‰ý~ ½;þ3eê¾*•3·Ø4Câ\Ü›xˆlª$é5’£}ÿóõÏÿý/úñÏO%•—ضÅžxõZ…“ˆW—*¼¼þ”³ævtîÅZiôJÛýY'oF8goÑÆpú/8Z fÓof+— CdÙ€Õ:5í‹®‡•šÓVæaÝÜeŠ/¸‡—Õ\{Î@*»OÜûÇ;ËrÚ×¶–ˆs4 a¿¬s(Z€ðÕh O²Íh¬î·‡ÔÖ³O#UÉ÷ÆúêìMÓ¦=_KÚ²tâ6,’Àù’dzOÍï©™å¥ëgu±dCšRE.Þ|§>5½ÆÅ´¬`¤ÆŒöÒ†jª<·œ­¿¨+Ê9SÎ*ƯuÎÜ >¬†Ø+K%ÓyäLŠ7£j¾Ú4+ò»Ÿ÷¡,+ÆÐIO–ñ ‰Ø Çú±ŽÔîóØ2áZ9é•t"ä#Ûí¼ú²IÒ3vg#)o¡°Ü°—~ýµ÷oœ_îõ« Õ׆nº"ìï…±49gØzûP¿É_ö›ÿ]èYýæ)¨šTâÖÞÝï×0¢à ‹zEPº*ß„ž€ká0/Û•ªôË.œµñÕ,:m}4;s¤ãœ)Òñ™ÙNO…À90\Í-åß¿G<ͬ;¾¸…,¨š“/ãzËcXe™›4àÊâºpÛ:ƒI©àóã´`¼1ˆ5¢NÊwÅ箸©è”a³¿wι_K§©ªFÞQSy¸BŽöíXõ‡’it¿›:¯64œó)á“Rû D¼åá´v,LîÔÅ…9%lžL6úÁͰW%ê$©v•¿‰× ·HF˜‚ÓÒh<àâÕÑüák( ´`„ÿÅâãÕɤ”DâÂp«5ìT‹ËØð]{é-¶¦É5V„K¬¢t0ìr ”Ñ*Wor×Πò#¼ˆB×UÀ‹jl"Dé$<³^síÐ]bW¬"Ô®äªúqt7/ïËÒ”½6}ó2Ù¾b­ém×'*?”àö¼¶ê2 ûÅ̽C1Wµ|ªA‹õ­WaQV‡~móYšÓºúìYlò¥–©@ži•Ë{Æ~×2 >·€4C!~÷hB®@Œv{ -Ûü6‹H ç}w (nœa»wÑ®wÇ”æMw$âöœ¸‹¡!HÙ|“Ô`9…UN'ÝÞš/ Ù|,’z ùŠr"Ï£•À4åBh6fqK ÖrÞY³ºvSSÂxÀ;lD‘™_Ý>®À~~ô…ÛáìÄ™åâ,(I“{"m‡¬<@\5Ì>18Çy| `ppT7éµn0°Ãìžy<3é‚ I4X7×Õàig›ÅÓNUôÐCâïk%íí‚’S$äPF–+ðRX2ö¢õ}r„‰u¦Dá¨ìY$åSÚ~;ÃBŠ´kN”³öZÚ¿‹Ó·Á£¦}v' °=' «lÜ>õ/­VÿÒ‚H¡*¶æO±Ÿœl1n1ˆg 8i—°¬º£D@Ú¬¨ùïð:[œ•‹bÙ5mtIþþf/.©”ÄF´âö¯nÂì_Ý$ÄCž|Ø¿Ï^Vè÷®¶|¾‰wcâúîææ~J`,%}Ž-ŸYÝÚäo"nŽ/¬æÎ„Ä;X¹‹H¬½¶îyòÙË}¤W!;{–rsW7ܶÄÄÎß]ßÝ­ˆbcÞ! kÅQ΃lÓ5ŽÏDÄa'Þì™G71ø0£—Ú ò—É Œ%8)[S<%³ílþ«g¶^q@â³}uwr8>{‘¨U¶­Ö¿ú‹mªÅ¥‘;V`lÞ¬°ÑïùݲïâQïî[z8}¢Óž¿ÁiR"Nuê\ ‹u ã·AÛ° È• wš$¢ûD¾«ËȧŸXÅÅ¡Z|óq›Ð¤–‚Å0~¢ixø~ÉÍN(nšYØïÛ’vG3²¹ýt„ ù\s$;>/AnFt&©ýÆtćÐLmºUk+Š#üÊú¬ïx‰›‹K/øxƒ;+JÔÖÔÊ[ÍÏ®ªSЈø‡°A-WTƒÜÓ¢‡|0œæ–17óÑt)ûÐkv$ÏmHû;ã%‘ÇüliZ‹óø†éw›KU‹4‹1hÑCÉ*Âùɉœ1Ÿƒï[½àDNûÝT#¾”X£vÿJôiݤžú"÷ƒ&]ô}ÃÓÆÝwÓwcgŒ‰¶³ œîñù°v1ËÓ¨ò €fN‰]æœ4àÖìc ohDªªî+G| öç•iL UGf‡FÚé˼ým .ärÑFpœ=”–÷71Ãð ÖÄö púÛ8ÃÑ ¾ÀrQCö×ÕúGS¬ <×Ý&öðƒx‡çzý-±³‡îDଠŸ.¬¥ïòɳc{(h |»„fÆ8Û3ý¦¼¿†Û¸ÁD •?‰È,L§.@Tn Þ4œPã&‚[ä·v!Èþhh%cjÖ ~c'Öøæâ4M§Ô4;7{'u´& Gã]Ë’^ñö/\}¦”¥ Ø’ !¨=~׊;ú ¢Ò9má]tRG\cíð3jhh¨´4bõœØ+€…ÿÇH¢gç[_0‚ƒy©±íêÿ­KÛ¦BG¿`ùµãæTF¿yqÈl¬±&l°óŽ8à laãH‹‘âäƒnŽIÊeÏÆWúW>{¬‡Ö>èódä…×c˜„åå!': ´(ê ¤fgåyƒæß+/³R¢7éÈÃsÎ:³DÐ3¤18Ô/$°Bõ”‡_ÿ0‚æÛKD|Œ. NðT –·GJ¥zNvqÖ°Ic51ÁêŒÍp‰`áíqŽJh•ðÞ¾Ö€Œ(üZÕQɯ²Óè+øè‹v~‡zÏÚÞ§+>˜pR'@æ¹WÁäI­þ{›y]¶˜fOY]6:t?ï™ý•=ÇûÙùeäÄkw=^Ö:èT)¸gÛ¸ÒRÔ¼6$ú>•ƒÔ~{Þk´á'UçÝRGEŸ&i^ýõ/’æA÷(óXü~=òNåFWƒÓοPwafùtéõ·ò¼UÞ/ø»’ß²–ºïüF<&2Xè! MÎË'æu€îÏÿ÷L 82[ý¢Om*Nˆ–èRÏ“KÛ`œó²–:“ÙI†/µào;qVSsm”2{´‚glƒÉ"ÝÁ‡¤ž90…9rúvøª¸Ù!-ºo–LÎ=|ð3Y“Æ4tK¼LåÿÖ²»œ$ƳáaBÚŽ~“`,§ð(‰ÏÒ/jåØ=*vFë(ñ²ßë ¶!å ûh ~ó»X­DgbÖû‹E*…~, {I‰fwçÏ’2'+ ‰h¯ŒýcèCXÌ’!˘‹ rŧùeýµDL‰§¤8«ÚÕ¯h·Ïô"@ãÀKG˜¦.0 ýsâL@÷ ÌÕ}~ã–óýagM-FŽ‚…üW§Ò¥…û¯‘ùçð>›§ù>kšà», ©ñƒxwqåî¤ô\Ïó’=”åxåÍ…*Κf©À„ Už¦‰«v¤äÚÊÁ tª#qÏ„þƒ–®E¢òL0‡ftyq+ ‹ñçp×åBÕ|%¥ÌŽröÅ2Ä+­¤íÑ"<‚œn¼þ}.6/­ÖB“Õ´²‰3H6¨ƒVk>®yóïö(²OWu¾õ@U<“Õå¨)Û uÖ˜;¯+›.Ñ; NÍX$>/¼Ú(¼ó„$´X$OÒBsæ5)J†÷|¢?w6ŒIhÐÙÃ:‰ñBNÈ›ylr@JqŽÍQLƒFtBHZBô¤öÖ¦÷éîáòÉúüÖä¶Ñ }yÏs§_½÷C`zkÓìsÌácæo¾3òÍ"œëÀ”Ø€ûJE|oqÆ-Ï|v„׋È#ϬµË’ÐH?"¶ÖÐVCõÃòÒ'î‰TTû #Ùouóé+]ôö$èÕ¸xÒ®·g"4 ÂKîÚÈöØh²àì_5‡Œï³:c׈(ÁÀ+-›Jýô£||áZÝ.~{ý£o‰ÍÃì¬àPxñ’q.‹`<‰IDOøýçƒÓ$´#§§ä“_›å‰Ð¥Å7H·é¿âí0+MÛW{ŽÝ7r'!¢€–uã½^²¤Âs_™2åâp mÏâá«7 úP#ä€g÷Ô­r¹È‹8ÈbkwæãwÚ£JW1ž.c ü‹òcŸó'$¸¸4f¬Ý—ðCÐ}?Ýäˆ<î?^ä â¿NNx­…=;¦ôûÒ;žŸžgJt¿âƒO&Êû–“Ù<‘“a´gEgÓþ¶˜Å% ²!,°Ôìü‚¡_<]À}sø}õ[K’4>M3'»_[A­ÛJwTŸ´á“fö˜0SÖ» wÚJb´ë z?§à£Œc¨ÙÊåéßt²Â‘gIÉ>ðm‚Xùb™Ú&_½ƒÇâlȬÌ÷sI;ZKä#Lñ³–ÌÆkhñòñŸ•‘ü,üˆ–°bLLïL/Ø!YÍtø?Ö2~5še'ëi”áôùðÆa;v©¬Ùˆª| ÃE¶)ãõÿ~þüË3¯0`MÞ)Š] lÄî£/‡œÆ’Œ ̯µnzƒ.„V” K|çe⊪¡uƒ[gÄé+þb„rzF2zô–Ñ]Rº`°4—|¬­Í7úãg»Ô³Å ÜOí×…åsÈ-BÖÑ5Qe Ù`¢?IAìp«­CŠÎŒ–õÖ!F|ì »p‘AÄÌènP.Óªìò*jʃÕK^Ÿ PÛÒœáWý!¤)ÑÂ⇮ ¹Fd–\׫rG¥²Óœ` ¢¹ŠiJ‹>£|#R6W1³bú wi–æpo:ª…;ûÔ¡µa’_´ð²uãÚß— ó$ü´åórè…çøPûŠg^*ùç=)wµù„˜~ìΊ²/ü¤‘1¬¶sãÞÔÍñhèà†…{Š‘ÊÏù'øý=â\f$Qqùya|EÔ­êZ97Ùäý-ÜÛàˆÎ‰IØZý.5ǾËZƒNâòÁ«ßù“iõOØjí¿‚¢¿(@Àá·¦¨‡%áØ:®·²]³ºB œ}uÍ«£ZWó{%$].Ê×L…oåÀ–ö{À‹e+íûëÁ„ow¦–çqX}ôué”cç\È|#Æ?¡±ôôdV)f¶Ðc*-ãp¯=Þàø¨ÒñRýa©,sŸè/5lY?+¡­ËX)¿um#¸mïFZ¥ViÂý°¼wäNÖ¶ƒl¸zg“°ì2,¼r_zmšSC¤Ö¡P†4þ£ÍèhŸSÀЮŠn)¯‹;-€z¯™lÈ»b²¾­°|Ääm€š9ÉŠU‹¬R§ —!;Ÿ25®ÉwAm›Ü0?Üy ×Ä-º^Ùá-a'!»Íc@Bºë²s1[)LÔŸ¼\çô@jG¶Û¬Çiì• òô÷ÏN­†`[µÁUA~sñ8“¡7ËTÚÀÁ)r“0H+`°àÏ%2! ü…µ}OMµèL–±Ù_²QDze1ê¼~^f0»G½à´¯‹ÔNƸ'„’Èùj™Ô‚SDyJÍ,ãRÕê uñz³ÏÑY Ê¡ˆfà‡sÊ=âh]Óz¹ÀŸG"ûNËz°~8b”ãŽw§GèŠÉƒ©],…ÅúdÞ1E=æ0ˆþ¸ôeÐÖ×Èé!~íÀ÷¹Ypx´! cØd5„¡Pœ›Ü­‘ué`wLO˜å&_·ÔzÀk±ÃRª8'šl­ÝqDø‡!J /e‹èÙMc¯“±?öÂÂî¯eR¼Ú&|ùK_1¬T?Oéâ9è¤ZGuz³óŒS…g\acg^I—ºòe|}Ý轋7@à¾"ÏŒpV·´âò±`2Dú(·$Gà’‰ˆr± â ñ¢‚9BÐ-0×pá/Œ Üo¶0zx¦ßõ‰;Ðôit·h„7ÐÅ`Ù ‘ÿáoq§´}Úõ-d¦ðjh§”²ñÑÆ¡¢‚”ñ9câÀz\‡œ„åÈž² l‹w¨Áž1·_ÚÈš(KþO÷„uñ)6¿Ø¶®ïŸOP£üG§Ù¾Ww×·±VŸXÉÕiþ5wJºÅ‹ æ¤71È_ ~wy[Ì|…Z¢Û5ðg­óÁ´À]ˆ…æˆ+jïÄh\!ŒÞµ³7·ë5^¿3.á²|s„Õfz4*8ÁhSíqÁ8é¡Ú*Ì“rkÛl ñmÃ4-É(%zeHS’]'¶+Ù'æW)˜]F󈃹o¾Y ;Ï3ÝÙsË–5Áu´}ò‚Æ%îMâûôn]3JiVQq{Rö‰£}¼yÌ‹}qYyh  Îö¬¢Ûr,e€ƒÃŒ(!VÀmÅòöð¹uÓ˜eìyä·~O$Âà\tHë´ìc— ‰Ì} …/¬-¡—Ñ/Y ›´;k;ðaù\4¨éCF)ýþòß¿Í#̪»èLËmauªdAs’>AÜ‘¨o¦gæLÜýG"󊛊4©{;iz}¡I¹¬ôW ”(Ѐb!JØr[©-åiO×,ªo‚_僒]‘†ô)ò‚»NÚ¾Š¿äòã)H–±*^bå/T!¢)ÄùÜN~ë)j˜ ëUSä#Ép ïÀ[[` ò(ÐRš•$ÜÜèÆã†hRž’ê¥É. AMüVa¦Ž]V†hÃ$¯eo÷ý³KàŒÊÐpÇ.ì?èô MzÛb÷öMáFØ.Kßnp¾ àªh6ö•âq“vÓìú«tísÌtˆòßåGá(Iíúbd¬Îà;ÅðjÒÃb3Mysb¼0¾¶‡T<îë.F#8#Þf4¸ÓEK„{ú˜ªÇ¨ âÙ£ŒA›¨L½×©¨ÑpìÒ`c˜jFæIj¿ª1˜WSÃ8ÏBƒ¥œ7žÖ÷ô¤Õýõ‹p±LA÷“¶5¬©Œ“—} Ûà5.9OIŸ§Tr¤G‚˜ŸWŠäƒ4Ð\úD*Õ—IjàÈ爴%E³½MùJŠ–Zz‘.û›ò°¡im5ܪPvöËå-°h²üë¿ßÿ*û42Pš´Ý¤FÞ@ÑïŠÚÅöáa¹®4À¿8‚Iy 06³,ªC6ü«pm¬#ù¯I³|UMhh€'”íÖHñx¯kO¨;A`«–—‘ñ 8eɉu„×·úIÉ6CSá¸Å K©ŹÄÊ÷>ùµ¨'¤_EHÞ'wŒ~–H¢‘Œ‹”Ï&r¯‰oƒ—á£8|ÀQÞFƒo—ˆ'4v¹€Ñ–ø¼ho´MÄmÏM§žGÒRsNγfÆ@:$1êôÁêP¡û²ˆ¦»ï/¯OñRZædóñl7¥bóI. z^Ã?8õÀrÃvƪŒ×VJ{ò—ÍDw-ÍÄ_~ÿ+"'ñỂ ,,ê$âÜêÄ™µò´zXõµóä¢Xü#Å5³17 ‰Vãi/\Ú‚0å^ìfvlè.—²¡¹å)íœ÷ \ŠžVY‰µ:ÙsUš ‘¡ÿ°N›^ÚU6‡íø8ôÊìywÜ/¸g‚Å+Mebq(“Ívœÿ|§I;}å0¾J¹U'øæÄ4t¼'¦ï’›Š;î6÷~(yLðŽ^]§ë;ìt¨Ø¬ 5íâU•ÁCÎOÛjnXwÉŠÂ^fðOHæ;‹*»Ž[ÂsæBg±ì‹Òtqj·§ÌJ7œ’¨/EŸÉÝÈSÈ szxÔ¥ÿ5..Üñl°hÛißÉ$+2¯ëà%©ê ñÜEÙçÅ#´cªÎ¡Ž‰/èØÁíÖœÊf­käi–¿ºU žÙϽ„s»åÿB„tOmÕ¹«&öÏM?z©CíMhTbvXÊ­”³nË’ˆìë2ŽaX÷÷v€q£­DðÐ8¶¢Y’ìã·_Ýóé )Xü 7LAøûä/ßH¹vwÛð ðA¡9Z”1VK>ÆtìðŠ\Xº£I1ÿ³±¦ÓÁÍÕÒ{~ ËΤð® aö2¥÷þôÝ–˜5×J˽±wWBÔ½öe2DÇÕdÊsi©'ó ”¨¯ùá»—X–¿.íÜ TÛf‘ v1Ðáw_טŽ0Ýáü¼ÖsƲÃâ<–T& ;ÓÝȆ´†À×ö¬eåyà0µv·—?ÿŠF{Fl4pô,’ ó úïÌÖåaoÉý9HßÖí¤j4¤ ‘úI½V*¦Z½Ù§SA.^/>oGýÕ³ªþˆmšnig;ÒºÄ.M¯bƒÐꬕu"µ,¶Q,û¶•FŒ½TuVßÈþúõÇ#§•AÃïò\õm¤aI9k\uB¬¹Sý¤'ENšwû3)mŸX^Ö5 CØ»lb¨Oúªë‹º¾q{3ïu%v!dì³F÷ã’"j;íaÏAU†>ä­&ˆwuûˆÀ«íã•Zz¯„ßäd-H8@˜üR–m9|Ýl"[®½XÛqµ$ &f["zÕnŠígRZ—µø¬â±$q´iËlRÓy¡ ñ))(½¯ó¯èR¡ù[ˆÕ hú-‘hžëŽÝIA2êé¡h²©Nl!®Q£ÎÈŽèzµÜR|%ù„—øMvËÑGWC;ÐDÅöL¯òð‹Cs´w·Tœÿ 9Œ1~ÞëØ ÝÝ žëÒRëq~ü!ÖlùEÙ­-i¾Å°‚{Þ2‘ˆøeâo§ ʽkx^ÁÉç»âÉԉˉÄG|hOÃ;5fv3…Mv·\’Iÿ6šË#J·BÒïÕx—ÿ5>-­šAF…,‹¹d%È Ý•0ô>.DãBi$·yï¢è¼ÞQDa€²Ý­`hLG$‹7ñSS.¦xåþ±_Êt¦³öN†¼Äà™ »"a(ƒ’Ú®H>tôxº]zCÁóâEoHü"µ¤ç[É"®œá¢Ç’Ûˆ‹ š^ãã¹Ë ¬mš†Ž´É× L§+c5æ-‘gà ˆ‘RYH"žBr~]aˆ +è^¥c¾_#Æ–üE  Hà%tÖÑ YÀ„ë…ãO¹L)î_ÝíÜiìLm=_—ÏqñOJ&8¾ éiP´¬M¡%¡‹ÎO­à€5]cvNoó:«¿Ð¦lH%v,2¨p ø›r¿ÿS=ÉËÀ1„MmJ©j`ýç¿MøŠ 'Â;%7qúM“ËJt·CMĦpáÓ5³ÏÎê>¯D¼÷Q~x…Ä'À›®Ì9Q`ORRE7(ŒÜ÷<2I0ó)t¹I-RémÓ=*DV‘Úh³Lú/˜–Ä…µôE  ø\Í•‡Ö±š{òâÙ¯Þæs=•q—w×:ÉZ˜u/v‚8…šøYÝììs"sO9—.bΜ¶ºy¡à@^aÀƒ—䣻0Ðbø\ò+ǰ¬îñþòŽû³Ã|º¶¢«ì9Å{‰¡d~×Ð+ÄS dÔ¾ýG.1tÀã{TPßÿü¹¦–ˆ)ô›ËÉî¾@²8(ÖÌ yº¬¸¸sGmH#7>8wE1 Üoì6þÏÛÎoîݵ»¤á°úˆ‹"ÇØZ«æÒÿxy_Z¹ûÇaX|3AHë±ÔsÇN^’bTL{áùɤë.|òX8l| m@öG›µK”:§NP<¾—÷õ&%¬­=½šç §Ã÷lÞûRTËoÈæ—Bî‹h¼ºDç§— èËPCþ'ê™®øÁX ï°à•ñɰ–óè½]`•,}gb±.ŠˆÒm!-¨Zpê.0LA©£•|S!¤V‹PTšÿÕ 0¿•ä‹”aŠw”X3Í¢N‰4i¤}Ñõ3âÒôgRßJ S¦_ÒOš^µ¿3R1¾ø¡ï.-­?@&Ý›ö÷µ¯r±•Àl=ýöFRQNµŸšºX6Ä‹úNtB¼YóÂßi¶ü¥#ì} ŒŒåf_Ý¥ê=sõ`Zh§ç XV î÷!ä.ì!8§%Z=’¶õžLJôæúàÌ–“”¿~ÎJ„Jè § €¿÷úò¶«5%˜bi•ÀÍY T-ç0ŠsL—š½­gp²ÌX§6ü®&Å;{ÊJk")•mðõ§çÿ­ycY)8NSÊ9Käƒ`F>ˆ¦©Øåqζw ÷Óí7–¼qV\Ràu ²f =ÅÛbµ»·UŽ¿:1 H{Øí‘½°ØÛ÷Ÿ©ïVÔpÜ›ûÏåøƒu-L*‚.¡3¬ž8T„Ì÷&¤ ˆË^¸¬aNC.[Û;¹Ñº*HŸ‘o‰íó)ÇØ’mÅÓ´ö(,ºRÚcì˜,ê>wU¹w†S¦i}Xvï{j¹WÞÓøp¶/ÛÌ»Ëì ¢8Þiu}¼_ÈaÜIJ ½§AÊ:÷îXò]ηï9íâ½GŒ¸Mä¾T¼çÞ¯2cò ØfJ³o¦$eæôAÇcd$¯5C–”Ý/Åf“6byÌ“‘Uþs*¹àýÎ’ó=ØyÙJƒ{ÉÒ¶VÞËņŒd îYJ%FäRhU$cyî( 'u}sƒ°…ÖU¨§å¯^ºÛ ¶bF² ¥™£ xØIŸ½˜w8ÅŠ:Dý_J ¿»õŽ2¼#]¯ìËÖr“ÿ ZjtÚ\ëäÊhÄ<}Ì|:.’‘ 9'U»L€åŠÄðiYéu[diQc‘2'†ÚÐ(P¶šñnÕ±oÄëPHWùÃç*Ý*Ÿ¦&ßõ6}leàÅèþœ1å0xvØ 2Мv ×$D¢²áºý2 Hˆè½s5!ûz‡<ˆ×qpü§9l<2!ÎU+‡¶ýÕw·òÌgg z´;ã/aøÝs&‘©ž!= c€B–þ‘€{íZ'­¹Üú`J±·Ë.6©°ë! â%SIéÉî§å!ñ-_ãèP`MYlQáUÅÕÃ祓wÍÙG4jûÎóí}Á²ä/ñ)‘Z,ôj¹¢}»Ñ© p€[mË…aRWK[CÛ Š‹_ú¸üËßžs×!ýƒâ6þ"­à£…œov|OÖÄOÉV3=¥Ë¦…Éܼ¥±X ¥†þl;Ħ²ŸI¿f¯‰IÎrÁ×O?®$!·Ó"Š7G¼ ï“¬Âs$–zf>e3ÚÑÔ'æ7òQÚ iv“f²Ðyh£là~Yˤ,²Lå íê aç®é7h7=î9AÞ;?¢ 5NÇl Œþ˜““K/"<ýʼn:~Ä_XΈJfå·Úl¹î±’€ (RÖbD¢)‹Ò X6–Ÿ(›×Ý9:‚ËKK?ìº9vö ”Óº=}‰†®*Ÿ'¡¡¥,IOçhÖÏ"¬%›}yAW¬ÍWOÚ>˜†hS\YOï‚mXÝa¨”ÁO_žÐHÀR:ØRðÚ:Ø^Øb;Иx7Ÿ½ÔÀÇÒä`W'èÁ‚+Á˜–$åK§€©Á&m!¶/¿vgwEÈ«ȧ±t½ù² =ç*kiN?´,‹ç €¢ jÒ=‡¶²ŸLš·i$§Ÿ¢}/æúl¢Ÿþ4 !½Æ6¶†MÑ*D‰ÆgÁ’­£1‘w¹îôP_ºž«}Áè®s%w±¨²ø¤ -Ó3ñÞÌâÎLp34IÕ±;k{¾ÕK~Ðx«É²¡±ÕâA^„=óÕë`hÏ’¾à ´À~&Á»êÇb9·ãפEÐä°îø9j‡äßI0ƒ‹í£Œ4<³Údü2O Ýâ5O'«Ö K“–¾»Osš,ÐQeYGËá9°pÔ}Ë ÂËSöÂÿ!»üí—k=y}×¹hçZ—´í᩺æ(Gð®YCÚÙþ“€• $íÍ•—ÔÌ{Àt,yQA,,=®åšõ ~xÇ9¡9é(ñ¸t¶Î!”d$½R+XÊxz:TŽ4ä袤…€Re÷l›<d{z¬ñ­séÂî)šì B@…ØŒmWFî„$¨¯¡5&R^ hOòF‹!MRÐXÚ¨à¡Ò.Ñ@–S19Ü`!?¯­Ôk7o±IzC80-D»¬ÌÀi4WîËK¢ÅÀY.³U¸ñ¶ mk®ÿVˆÛÈéHŠOÆå)Óa¬; ©÷øvÚ¹áv{‹ Cù¦”& "Æú×È šŽM×éØ[ºMY/¯1ñ[:_GbæZkêˆÔsrBÖÎr¥Ü²Ô#H¶²‡í­·ÛkèAû˜Ñ¥ \H»m-X¨²u𸱝2OýóÖÕÔÎdhƒãÈA±f/ú°eìÙLÒ¨P²mô1åªh©-꺌Àp÷±÷¸l!ÊtÈJ82Õ¿›zú'/»éßrYŠ5iöNOx†iÁúÒüj4âÓ=ę́ÄX0´]à„Ï$¶ f¸%ctëà&,é ["þ¡ûŠlôܺuˤuXZ¤€²½³ýÔGk†Ý{ÁMÿGÚÇxëÛ|å|;ú æ.Æ„$ZüBh%¨­qßÜØÃö ðoÏàmÞ½XñåžÀDÙѱȇªšBà¥Ü¤µÛç|7å LW资}}'öÁ}:ÅLg¤ž¥Ð¼É4²{em%Šï«›çlƒBç¡Ì°ƒ ´…¬J;¼nl BÂ"z¹Ð´ã{C”ô¶¡aGôÃi¶ŒºÖ¸ËÞ35Öeà G.ØâLËóå#ê¹DZØÿÍ~ºÓÁÛÅäµ#ÆÂæz©«†€XŒ¢úä–Ý@w?š ql4c— Šœ/¾ÑÔÓgP–Ž»»Òrìã¶üö•tn|BGéMæ%˘+j;Æ?>H>Ë ;³@{l“ W"†Ú·O²Å'œä.ü̓›v YfÑ—_øàVxæXH’Q—m'¼#ªf;ŸytBD?>¶­ Jô\'Æ…Çr*žœ÷ (,ôT¸­´é°¬OéœßDÅ/ +Ë«ßÖýëqá@Ðäv^XBÛJÞ†cêÙú}%›iáµðmóCLÒ†;]‚/!áÕm$³_ Éß×)§¿ù=·à×Hß}[lĸ¤t‘ÃïÊò«rX2zL¦yõM÷Â'_áòRQRW¸Ð·‘ÒÜ Ö¯ì­%G(½‚G†vC”µ}bCs±eªš/R0Ü¿ ò!™ì®¬È¤°Œû@6L .Ø~¼¦à?VskoV…†Œ»+Ǫ\S6_¼i¹ç\iIÇÂ*³§¸Ý+Ar³V›N«áÇ>Õèˤ íBÿ’Ð,£™% SÏðÍ IÕ]ȉOâ>‡Cÿ(þñ1q¨d}AÑ"ÈU¦G/.š35‹!û£©c/ÙÈ”Õïx¢ASöLjâ|ÁuéU3šÂ¹õÆ/‡ÚuËœ/ŧHÀEÒúïÁVœ3m£ G-K© Ùs CÓîé™ë°Æ¬ømIê6ùmq¿BUcRÈ\X”þž4F’ѽ{Ķïp»à߆pþ4·ç† tVß»i¥—ÛÀ—ôdoCd,V"þÿ$¬t7™±ºJ ±Š§Útâ%›NXÛ×õßð_P…µ&…ÝÁ×Ü„6ê¯kS† èäJ?iÌÈ¡ 7÷òÿùQ©’s5ØFÅ ~›¸%l»ötã+a)·»³~yIúmÖ¨k$¬Ûqø%u"—-pî†WDÛ«¤˜ŠÑÁ-(Ö¼:rÝÒÁ¿ŽqK¨'´AO_Õ É5Ú½öw›®_ãæ‘£ D’µc€aL§`ÿ¢¢N؇Ç#Éé^hÅ‚ZÚªŒa+Œ<ñû7ăïy®&GÌ`‹&<Õ£ñyþ‡5â=ç µg,ò† \éêâŸÖ§¾.î´M Àš[¾o>ïrJ;0–•Y²ˆù.Õx‚TýlMMð@^†‹O +æÊ‰.¡©ƒkÓáŽØqo=prVk¨î>£Tl p¯ÓŒñcXb-vz´.ˆª0Á-ÙýZ ¹U3†ð‚‡àÆ÷Í´Öé’ I7ñm×lцKšê6ÌÞæ³]a5\ÊT+³Ö¿ 7®ˆ´×4´å—ýÇïýŽŒHEÙ¤u‰6,¥NoY‰ý#ÉÆ^¢’©䵫±Øá×’9K  zƒóë,}O8И—Ñr8ÚŒ¾®€}¯9]%‰&k¬µ©æ()åEn€¡Gi-°£'%«;+ £÷ª•9å%K0çL¹ 3C<úᆲpàh=¯­—K!ÓIxä‡Uœ>,Š_U >A7…ðãϬ!ŒkÞÄÞ‘& Ƙ[e~÷ؼóÒÌÞß;|à1r`úšs•ØxµŸ+#ÜFO|£Èj>AÉ ‘Ðuw£Û°Ñ»NŒiÑJÝ=-5 Þ\ô«Ûøò׌©e`ÂÖí4@,å3¼ŸýÎ O0Ü«˶÷úv¡Å[u Ë`›µ:ËL.‘¡f©“RA‹mÉ@fЈUn¸90§y5 â–sÔí²­»S‘oÇ*R6˜¨$iì—ÁîK°ÝºóˆQ!¾´¢€{AXúYïñRKkK£©Y°W §³¾õÇü±:exÚDípÖË…Ó®­ë32A,'œÑ,¹HOP©òï¼è`àËp„tAª¡E¾ÀÄžáŽî”ËZ¶¡NÈVÑÉzŸnlö öÇ¡ç¿xrÔP[V¨iTááIBב<4¤QSã°¬–'ƒ#”ÔÆ„RÜtr<"­ÚwW6W»Ç¶—ÆZï¤L¾Šý¨¹6]ðÒܲnÑ•…w&c9\e§Ò]†DzA-Ðd6×NGRŸ;ÿ0ßO ZY¢$‰æ_à‰2ÊJŸŸšÓSùKXRû(ÎÔÃ:hbŸÊ0îœ2óû^'GxŸç®ñ)ö fNÁ¯ËUd¤ !÷F7ŸÕçªÙÓr•i[`P¡šØÀäS§¸#f"{0±Y ] ðŠl?w…½Ã»q}Rj#Üä©g"ꈳõZ‚ì±Ï÷•î8­r™qtåi#$M IeíÊ 4BŒî5$®"ÊDoMDºöï¿^£ò¯¿¾YBS7›»«øbÐií ã6_º“×—(qŒ¢X š3]ž¨,óùRÛ¾‚˜d£+ñY.ܓӿÍ|o*7Ÿkek[÷JyÐILTÀ3hõ&0ùo†ÖÜæV[  0Æ–~ìkW?Ÿ ÚÖãùðÇŽtƒµYeýŸÉ))iK¤¿¼³,§ÏÝñÖέz8tcI5þ4¦gšp@¦ô(F“ÏÍfÕõb#,‚$íazàU_)•i5iIÂÒ}” ®?髜´ ÉE`CN´¥Q̆´iø‹DM¢ÃéŽ9ÝÓŒ.¢oì|Êéõ4ŸÅ-ˆ·çÓ|·%“ŸJòêKV½YR„(ÅÁ™LÜ‚yϸŠß8ÔJQ½•„ð_==FóÒ"ÉÌ‹%“9g9;:e×?´ŽÐ¼Ýö­$R½¬?!;àô·¸3*åin½ÖZ¿Õ-=Ú²8uIWôTr­Þݶ{øðüµúš˜x¡ÈÏí3×o!ù'ÇlO§x_öš¿C®ƒgÀ cb矯rÃag™Ûê?5îûτގñ~g'­.>Ë»BPk3O¨€¾ÍpÎ÷O]¾õó ËYø®žLÃÓ]sXüæ™ñHÝññ=$üÙ’“KË{Q§QUÄG¢—HìSðAD#.ýÉ#iY朆ÊiÙÃ*Všl ‹Ý‰¦­Qê­aë0Õ¬%* noNøé ¤ü=_!ÅtÛ—â ßj†ÓV"mǹOb0Ž ùkT!R!ãUé ÖqBZ™°4éÓküܾãeϬò…·Òr0 r!CD©ÅÝ}Qó1ðõ÷As¦´¤â%ã|K Ú´p­¦›ëÑXïÍõÞ_kG; m)dG`×õ`?¾ÄXa†.RÊtàFƈXô€LE¼óbøco/­ú=>»ÒvÐÏsÉÉV©°³KíyÃóÙeŠ}ÿž{© ž â·I`²7 Xô‹„'\4zøiž v£{IÇ7´åÉdz-²WñȸHëÎϲ Â1Æ/ñ´¥´âBØkŒÅó`þì• I´ççÆó,,×ì5z/Í¡ü|0hS­B}Â{ñö–Ö&´ÓÿýDŸðìŸïñw@K³¾…‡XÏó×±nƒkŠ5Pë$¢ÅŽbÎ:ì?ÿŽî$RÑñ¶ï[A=d†‘×ø•Ãó2b¯ÿüDÖã²”½€›„L@î‰ÖbøÇ¼ªŸæÌÀ -þ¨ÎÐ}1 {Ø–“vwT#|§Ù·'åÚ¯„Èô¿Ÿ?ÿÂSì0òíìï®@A¾E=ôB,!¥jð6XÔ„#Ü”çmùÅ)œ°l…L`À˜ö‰`2ºÝXœMÚE®/!¡&«¨Ò#U­®=Þ¢Ûuæ±'æ" ¢Þ—©lÜK#‘1RlX]Ž ¾›I–Ó)ìyîÈ•”Í_›¼,ÖkÅèm`ÎP*ÍOým>þ¶ïäJ„”Ã’üðË!râ—Ó³i2!MU§S-H{>«¼$ §“cD9+Ñøñ©/ÔëYokümgk2ÃÁÒSb,œ†1Û=ʩҷCs#‚1Þ(–—dH½œžŒZ±Ö¶ÄÍa œ­°ùÍ •ÙAU¡ïÄ‹îZµSô)O‡»¶ô°Ä9Ô#1 ™¬>¥xu³’VÕ`ê8<¾ ë*h^̈Ð¼Š»º/œ³7:8x- Y9jH£M ^º+aøÇòû+×ú3=°­tMãµaÕœCýö„^G¼9#PID͵%|㨊þê~xOÙšÁ•ÁHä·Û g‹{­u$)(Þ’V OŽüQÿ3e}^ëñS]P0í%º óÑl£&ȶ±Ê¿z–ÞÎàBZ‰ 8k§5yÁ˜i½÷çŒÌ«®=9ƒÒ£ö8þ=è|^û€­h Dsr Ÿ{F5ÖWìFØi…Š7ƒ­³ímÒ4¤e ÆÖì’w¥ôõ5LüW]‰"?œEHC·ÖþmŠ_¿h‰É%•ºæ®CŤ©Q°•ˆ«ë6ƒ‹>/e¥h ._ކŸ8Ãim~ø˜ŽŽ P}mr‘’ 3kï‰hv¢qÔy~¯Å1ÏN Ò 1 îdÚ?ê¿b§sGfÏÈîθFBøåzÐ’=`VÔáÞ,®8Z%̰&Ù«hP¡¹Î@2Ó|1Ÿ›)ˆÝÁâ´(㽘-»AnБ£Nô« OõZÌ-ª€g|Ò® ñšÎOVœÿ•_C@tWÌP[)YGIô3zkA NÉœ½í+À6ß>ÁVµÞHy_ṪdÜK:c­Ÿ(lß¡¹3#±µô2ø¯«ÎŒûÕ™Ò¼%ÌZB¢õ{5ÈÃîÔÐíxðz ?Úß©xN×Hç:5È>¦«Ç ;ñßÿª¢*‰*ݹ"©o%!…&/WuûNsñVÙT­–U§‚z凸•Ë™}/1ðþ÷¬ÞZÛ^%Eú!Žk&U8Å>ÿS”¬ ñ‹xߨ ›.~ípDC;Öp|šƒêèaþ’mWAÃ\(÷泆WFMr÷¸j!–l UdJª„8Rc~"èi"Ú`©|cuÒ”)n-ºKà3‰¼âw‚†Õ#þV' IÉ”usúÚR¤±ñ³åÎWßëeÕÉL 0sWø;„¤ÆD[ç«e ø6ÉŽ~h‰[Ñ\ÖC Äw&±S²›}|Š:ÄÆ*ŸÓõ5FA  tdÛÝzÃZ²ÒÉj=ÛŽÈ¢ÃîÄê2F ®™¨K±©¿ãá5fzZÌ>ЬIû,ä?I6J–x¾”ŒC‰Ü窡ÒéfÖ®0ÀÞóü/ìoCH‚Ú`®'|€\†6ÉÅ i¹+Á¯+/ ÚùF~îY$O’sÇÃ,ºÏ¾††WÚ(F ‰ÇiøºÙÿx.І¢é¹@caúØÞx³¬Åù'ƒ>ð€[-ħQ4ÿIxòï}:êìõ”ÛÁ/• þØ&Zˆø:Ù‹l73°ãÿ£ryà^n$êÈ90$,£2›CìŒÅ2,FÍ,[éi"þ•_vGWÚ¹PÔ™´®Ä‡}ØY;€4wfZ.+ÜW肚U\<¼ [ ÞºäF”½¥ÛߊY¬g ÜEý ÑNI³+ Å éaA#ÕÔËŸ?'nT·onæ'a1*øÔ=г,¶_ÕEUaàhaYA°Z]x\§ª Çr]è]êý5\Íó‚ËúnqÁÉ¿w5£+›ë~6*y§ÈÇÕŠ‘âÇð‹è)¬UÈÁy÷Ø—nW6á$—}RñVŠ^þü˹X¯ƒ:Ñk$=A6ÿ`4ýþó¯——ÃiŽQñU l¢*‡6£b…r1¤êt…èôÛ¾GyWWKÉñ§}/¤­éCdøe'¹Tì²`Ÿh—IÁ9wÈúz¹°Î3ñ÷øã¨¸«ÇÞ¹®·Çî…V¼ wÉ‹bPnÝ }ÃÎT.+7ñÐüc‚!qÌmãÒL`ˆ*ý±O+FCæ°K.9éhüõ+àÚÄ;’ -ó{0ÐEâˆä–«s•[Ñv“nT tppªÞ8þ‚pµª‡_vnlUyãb~ ѵ‹ù1¢ ÇÀ¸bæóù"n™–¥qðæ³èE½¶b#ÍŸþbšM‰€MP-Šë‹– Í2šéúÊž'±tLH¬Ó3î‹> öt…ÄøgÀYÔ«_[ ÒÁ9z±(ï»ÓÂäÎqŠ6Çç ®1–p Oêo¹» Žø(À´üU•M`€ÛŰ~’x†¹¾‰èþ,ïíKßÀ5­¢q¸/g<Ú[½ Á`Ñ’½#ŠÓ”´>‡·/(õr5ƒ© z<úÌ‘gÆ6Ÿ©sƒ¸ ¦OJôXãœZ'dùõ©ïuú:䩜ЂéÒtÀY–“âåÉ<êÆmæ§ò}Ä;ÄaeÍO‰¨Îywó ËÒãSdºJš¥~[ÿ ;°4µë ðoAó>JX]Ôùc»*”^" ¯z¤é^Ñ^1".@îT(i0ÀÓ9€|13w¯Ñluçy¹FM >§AØ2QÞÇ¡.ç¢ÞYnpFô¾9úy“b„±vùœïN˾ Ò X—Zá7¿œ‰{Óж¬´´§+o\ˆ|´’/F÷{óv#mÏ=Ü‹üeRüòHÇÁn&ÿÛeÖŠM­èW§ž%u­² ® Ò\‚Søª†5·@úd7öÎ ȨOm1±Ù~­c2\}6·žjjB¼Lm:§AƒA§NH±eO‡*d îR¤ß!¶õ¦¹.o1MKБ˜Þ{³º"pi<®£À,› ”31¢g?jÿ€òv ý¨³~™µöV»kOVªßý"IQô€\œÀQ&NÒxë»æ‡üp(9º6ÂKvSDZ»[ïåz¬Ӄ:îM?JÌ5s ž=Ü ^ë+8}²Tn##¼ Wg(9KìÒ¨BþX•Ñç¦ó Χ8{‹ gÖoéÉH=ÓŒMüæìâ“gäc—Kà£þ!rAÁËή½ô¶Øá *ŽÅ޾;æú§‚ϹÜð»óyócÌOh²{¢y §Ïü~Ò2ÀÎ/ø,®G1£}&ð”ÐR´EèeÀ1làM¨˜g<]pø¢9œÐ~ý"dNH-… ŽÑ E.!)~©ƒ.AÐVy(²HЩŠòYçyw¥uëí ô°ÑË=¢BIчǶó¼¯/z¤§þ6f‰ZÊæÂ§žìezó¶—0ÆÚ¾øúñðõöB[WãåhÛ(Éöq@m Ö“Š-`*¤PnðZÜ»ú±Ó 82,þgÂ'„øÊÅñ;Fü_š¥4ûšyÈJ3ŸeÝÁ ã [—ñƒ| 70m¼AÏ´=d>)‡\ 8ÏA¨ô ‘ä郼Ÿ4‹YóŽ‚$ÌܺgcK‰À«iõÛ§¥H©çM #˜©Å`+XidÊ,1¥{t°nàªòá‰á½\^¼\MO0jYlɃ€ŸsJoñ^—IÇ­;‰-MØÛÍråœ}bxe®»vð§=¯ò{W7y‰ûü–¨ˆò8TYäÚÐ À®½Ä¶¯¯æ¯ þ:R |ÏcݦeÌøˆê3ò‚²£ÎWUç%T•bhúŒ¤¬î=rÚ®ì”6$ÄEÌþi˜,Àï­îßö$.š+ÝöQjZtF»'‹*piÄë™þ'~rxÕÂg/à?wM ûòNýZ¥|íFŠ¿}ç¡ÌÊ ä6ᕸ§·!V扱tY)£ n~?ÚæpB=}æQ0=Wº)g€Úà;Z*Îr”¸/Ž;kgß!ø£'ûô54ÍݱpÞ(߯Tb‰šñÿ‡ÉYý fµçtÛFE²GuÔûÖ†¤•U|3ÓUÚÂ!9t“ô]]ÆÛqÈ{•Q-`ÕvöÔî!ˆó¢%L’Ì& BòºPɞ¯OÈ禲LÇ´yòOÖå"~ít²ÊÚ ª¸÷- O/k`¢Óä/ÚN¥H bðA»m8æ[å50{ŠÿÒcd2Á©T²¡2Ü2A+j/CëALÞ·nÃà¶®…zF: ÐY..Ær–"¥_Ð3»Hå¬El!Åh±-eÆun.¡Ò/WÎ*{(G™TŠ÷'¹î9•&+ôU?hЭP+Ø“Ñ|Ñ¥k²¨/f4ÙMx¨òhÓ9´Œ«‹£BÌDµâþ•='£oãvžz¢qÔ(øÿC®ù[°0¾\²ÚäC¿r›:Á\<ª²í kç@{.à ‚ib¤#ÅmÿüÚVÞ"5ô²Á#kÏbÇØ …ZÙó°êÛñCAÑÝǦJe½æñœƒâT¾”åci8?X{bÌÞ™ÇV´$ô´³bŠGq¡=Ð|…¬¡*Õ…¶@L.õ¢HŸ y€¥IYÆ¿m\î—Ãô ®I<”+ÌÄ3ñ=±f“.Æð. äÓéÊäYÅÁn”1’oÑð¹—’Tñ—/ÍøÆ¢i\K*L9œ¾¿¿Ç=†÷„M,z2{¸¯;«uê2‚Ï!eÓrZ¸‚¤Ø YC«(#®Ò+„9:nMâ²™H%ìm]—¤ «kRNYü„|rKN#¥ÚݸdnÙ]´Ú·†n¶%“_CÛä6X¤6,%ôZ¸ uήTu$¯ú×§*¯¿3¶xÇï{Sª¼/IìÊP2°L\Tåe-$u={%Èô!ÞBÇðÓ€ÉôÍYæ‚`óðš’k އÊ·m‡ª“QÁ…uŸ»¡’¶1çóú¼%E ¹7¦ ?riÿ©n¾Íœaî€ö„üÕÐx>÷iž“Foß^½ëlë;‚ªêe WkÀ¨¶âñê&vÍ\Ð>A“‚ØïÛbU¼ó³‚­þ¼N\(õ~_;<Ðý »>C{OëI])8=ss¼À¼,F~™×ÕX†Äç&›öycª˜.X›",Ÿ‚‚`Îm)¿ ðtÃéJ˜ ä-ä¸â,/LÅÚëÙ8oÄàf6½‚*áïÎeFm·Ñ͇r¸8»Wõ.Jy0›öL )³Ÿ?â½;T€ -µ¥æBòÌ–Øë??¿¦!òEc'í£Mú%mñ†´Ïn©¥*Í”ì"=ë vÑ|Äd´£)î}sì‡2)ÝÒèÉ"!díãQA2q?Å®„î¨:NðþâAÍ–«p¢.ê×m¤ôÈãöp$ŸÞèkjiÜ=e`Ž&ÃÁ–%{™ ­Q“ÃÑèñ¾bY”Оi ”B»fBN1´7€åœ}mrðã Î’•.ÿU|;7ªuÖJ!34wB±Šžæ§mÌÞ»VZyq™Í­¦ñ:G\iž€Š‚c:¡VêSD5â‘YW¯V¯D ꉗÒwc„è ¢â“-ZA‰ ZèëCÒ½¹:¦ÑÃ}Ñ‘пÉ:äjÜ’]b»7ñæŒnm>(µ•”p°¸þÕ“}µh_†Û\ÄZt°‚nþY0[åÎ#ó5ó°;mí; âãø,mû*ò{3¢¯@í |,˜z¹>…ˆù:ëÁhº$í-8qæ|5/ךw¡Ž.¶H ÿ<•¨WdC2@œEÂÒliþæ£[P¤šsådc¿ÃÒˆ[¯ÌF¼1Óø\\Bo¯"h^åÒ Ww£,¯D åþ¤qób‡¶¡w5@>AÏë|Þ54> €à<ÛõÕ¸=źå× ß{0µý€Í›Ké•É­9µQA!yB³‚ò•Š™ÌD+uYÚ8Ì%ěޤÁSV´pë«üÒÇ!¨$gû OÀ…µô]êÄ‘í]2ƒîï™f¦ÎžÚ¢ŽÓ­K@eõþGHSûÇÐ(Ï´¦n#DDW×ɽõZ EŸ÷ËSó;»ÛÖæñû[¶Aªí&ml^ÕMÓdXö+ÿ\'^ÒgÆH¡Æ¡¥BOo`ëÁ†ÃmON…ƒý´KZXD|q¸Ãê<•¼¨—>ÆEµe¼PæëS×±¡Í"ö}Àµ‚¤8—'´)w§Ì&)Xª~¤¬">ùÓ†d냥±tã Ò³LVñþV‘f ¿gñ9öMGéÑqÖ˜/b,Ñ’IÐëÒÅŸ}¶=O‡9Ç¡àF®coiÀSNSCáÜ€.=³k\6ûqË70Sw¤´Ÿ&¿Â¿\œh‹?ŒÇVš@†ò7Qo7õiîvX¶Æ}bðõéÑÿþÕGÁm®ÒL S¼d£¢éHûœ¨[בþU¿Î'äÄ‹Œ+„üßÏÐý'®ÁI}÷ÿÎÄT³dtçb 惰辞aÅ5WFîB€'ÉМ«ûï¤K¯Y”+ŸÕ­Id({8q6øi¾–ž*Ú}Е“á²UiÆbgæ–€ìß(2Ô²¢ÝÚ³ Z {mòýÏÜŒ«°;½f ÿÅ=4ѬDZŽÎêaØ&Þý •LyãW+|b¯¤egYdi”¬I5/þçåw6Þÿ¶ÆÅþNêË«|.ôeÈv'æ6eËü¯¨,æ1Þ²™>b`&’q#ƒ]NZs}<Ã]Jó[²mGXeRxS6£Å¶i¢ÁcësˆÚº=@æiÐ]íb›) ‚ò@]Arµ™’ÛŸ£ÏD’ZÖdÉ©°¾'›n½Û?¥SÙZŽhõhXÜøJlôvm}¹`xÌ!†àý>u5^忣«®àº²•ø•q­iZcØÉ{Ïz89à cޏh”S‚§<DïqG³O Ý—Ö„6z üI¢ºkã…‡Éò3gEj›»UÑx[<=?ÓöÑtÓ1maè£lÏ¡è9h6o$I–D×ñÏ7ÉÊQ£ÃmÂ}v鯰0 e/Ú]¸† ¿ì³Sp¢…¦iÝÅ.˜©.-¾ä‡_ŽQæäVžʆjŠ «z0%<„°ÅA\l°«¸îÕª´,ýeÁcQÌ^×´ñ17- ‹ʸý%;?EÇz豺æisÌŽµ¥-ÉcÕ,{C]z)ë­ÇÚ9ndÖfÕ—„œÑ‚Òmg¯WZEIé‰c°mìŒþ#tyš#âÕê„dÑ¡xK –ãÉ«ža0…xÍ¥:2 …A1'R!î §0ÓJp›þLh%Ž6¦ýr…ü$ÚßM_½‘„-RÀ•LŸhb)Éʦc“âÓhe„´v w ÉA4ËP ú:ú*QM´™ÔõÍÐ…é®KV-ÓoûîY1ðL^c˜/(÷ÖjçÜeX½]Ëx§½v=ÞX¢Ÿ'¤ß]¼è‡6¸Wš´ôý›!ß=æL¿.ï å´3®ì †¬šæ»|åé(¹Øw–å´ã?vˆ˦A.À–ÅÈ€‡¸`X¯iðbOú;,e ϾÿpùoO£%øï­ÇÅ-ý×–´³¾,§>9ËÔgæ“Ñ_ñ `cCÃ%ûÀÔèJ@~¦…óFˆaŸãèôõÜÑŒ"¦yˆFÄ#ÓF-<|WާP³¤] ©k/f,’Ó{ÂEÖ‚wc­\#†¶Æ#õœ¦x'>z˜ù 0j=B¤uWfÙð6¶ÙÏê´Í ½îZÖÄ;sZÏ#{è­áÔîâ¥NÕJúF2áIÙîxž”:ø›—Osü%îÒ*©×8˜®T3Á@;¾ì:48o2Þ K@ì+ãÆ|ö¼~o€‡ý"¿h"e; ü•'¶ôÖßv‹žˆÏ@·ns2JƦí¼“Ê&=å®2ž)˜ Ze¤õ²z‰)neÖ@/­Ž‚§»—=}s–D=+2y?>[4Å*,SòÈÂÏÉÌú0óÜ— )<ï¾ÍŠÆ„žò^bª°5J$"HW¬ªý«ÎCk@—Þ7²›këCjýÆ²ÍØåâ¯Ü{޵9xlOA•v@³…¨Üñê÷wñ>mà\7³¦6X¼ÁÌ ã½'y#¼„ÀÒpGÏ¥;y]é $!sßÝC íB<–NusΠ—ü¤©–$@¬ƒœV´%R³ýìÕ•¡[ñ 6œBì q&PP,Ñæe¯n~"p’†~¤§m@ý–òÙ“gæ6QÃ=èæl@÷(â‘óv‡Mû- ¶uSs¥á\!p|õP!òñ(Ûð´^ñ¼Ëš0¸Äi‡cAQéEÃé¼È‰bxÓÚÚOô]³Yt§Àì|ŸÉ÷ r…~²&Ôª;pùèaŽ…êòß²™°DÅC l{ LØõ>[dÕŽC”fÉRÜqó•¿d4õѳ$bûžu&õ…]©ñ|RæYlRÁm¥@P­ËúÇdÞæÛÎmµ~dn—¦´&`»Q÷öyó”L1h×ða$ô¶JsH´~Ü¥¢—e]gr*¡‰±ƒÛèЧ¨­c÷ß2|w¹ÝÃ-+Ûyå—%Ýø[ÖR^wjŠP>]Ov†¥¿‰6WòÙ˜`uB£jã@rÜ \ùæ6æj7Î\Fâ¿-ÙðêvotRfsÌïðiaÐl¹[“²‘¾%l<‚JÔ€d榺A’&n-ýiÎ9òM±ÜS‹ôC|— ‘8JÎjË?¶XÒ²nÑà!sÖÍ6ï¿E-%éHSÞ‰- á÷ÓîdÊ[š…úaè¢òr0À@¸›sl DÂ>±Î#ÏÇíZ AhPD{½~æ…KzˆÌì–žt³ñ”òöÞQ•/Ñ»±¸¦˜oùóo!h¶¥vÊp "7ãôÓ­‹µZxì²÷­pzœÐ¤€?ÑK\@8ÂÍ–ÞÂM‹ÉZ3ù`ŽC²ío6ŸæFb¥, Í 9U‡l³EôÊà lÐÞ/ñéo²ª:ÁÓ[ŸåÔ':ÀøX%­¥ËuÓ±ò *|ÃyÓ½†}°é\?·uU—^^È}u%$½õ³øªþÜ“ûä$= _r—¾=¦dâ¯aÕÓFß°ÒÈÿ|‘îL7co¶ˆš'u¢¢w¸ºëÖÇ…°©o³'@Š^4-Éø\×nýµø®p6Þæî Ö·pVNoP£H²†¾@#àÅgø„L0¾éÍ\O:ԇɪßâ/R<2ú\AÛú<¯[,o6QÅFß:3¢‘$)‚жAC —a ‚‹Uõ0Íèø“»Q—f„ÀñQíj.k¨bÒaÐç¥tÈßj0§„á7q€pÔIa1©¨YÐÃo}škÀ­¼RïpÝÕ»l I[¿óÉWfòÖ÷S3)ƒáV8—#6‚ä­í‡ÚLj7€†”iÞÙÍǬ!ÇM²DEéú%Ž\T¶ÂÇîcdÙœ˜s{¼ñ{ÛãÁü`×Þø‡Á+ýÜô›PO<ÃÎɧŒÁ^‚›GÙ\Ï3t´#[S…;^GL ˜›pæÕÒnÓB¦åövÓZ…ðZ#$¶ÃëÔØŒŸ{Â"œmewÂ8´e[ÔE´¡ ýUUv«v"ØN½ÜnBŵ[ù=¼Ñ8Ýf›éò-jƒ´Á÷½Ôn®E³q^¨R±/ذë͸P«íUbۥ뀃Àe(o¹r@Áš4qVÍ•¦¯Œ—߼ߗ£Ÿ?݉nÚ‚X”±Ô›E=PmÔqxªÂú} Z¨ñ?㫈´‘ômtA£ ‹ð Ã´· ÒÈMTÀiÆ]L¡1#Z€ ´n#UMM}Tå(jà6‘ J»ÛŠöé-µ0èQ¥8AGM2¢d±xĬ>ÊÃ`É•Éå@7‡âG…¤CÁ£T‚S-ÔCá?ÊæîªöÁ]p9«³ èyùÒøš=›¡Š:—Ã6QÚÙLÈ”§_; -¿áÏÙhfÇV³ãȘz%›ñ˜LÜâ¶í| "/CSû·ì@_ýì,ª¡Åû{qñûb³»¿¢7œÿ¥ô&Å‚Ad':Òûuã ûE‹ZIyžC`=9©‚ñ¥§­+Š¢Ý‰gö8LðïSi™Ý4JÝ£‘Ó<4þP@LGç]Vï­¼+}‡pe+CoÚ ö+"ÉU¬û{hË0÷¾3h õùJ!™Û÷ Wî`¿¯[“`è×Ë]1–Ör»°Búþ¨ì<ê/Cfpõ϶óÖ7Í~#>–&ÄþÒ‡™÷gõ»\ÂrYHÖ0ß¹‚@§>ºôÞ „xV³å/b­€ÇøowV q´ªú ‰n>Û8[¦ ]+²V+óp½c|úý~­ý¡9AþZðþ2—¤h©<$ I2*¯–wVeõû€BÞþñöÑu‹9€ánPs·À±uŸ×Óâb@A[¤øb;@mˆ§¡#&I:ÀÝ‹Qt]Jt̪7<Á²»(Û·ô°“ÛõD Ü^“Áûqãè8ÉêÉX%Nˆ¿”»=!2o¯6Ò¡~ Î’iŽI¼½fè(« »À°xÍ`ú ¨{žjÖÏrhï%ïÛ‹_PôšÑ×ìÈ‘ˆ¾Òn?2Ö‚îÕE½£1µBàÎD ˜[Nþ'¨=,{H~O]ñÏÙI˜ø,ñ‚§ªÔù¬ñ²ùòÐzö_£w&†f¤§{Yú/l‡(ÕU%³Vo>4LBõÌSÚÔïâ^†Þ¾–£WâdBÄ!ÙXüe Ž7;……}ÍëÈUÓhtó1°ÝHAÚò÷œF[óµ^Áï`[èö,*rš´dŸ€Înìé6¦bvvñÆó»1¸§u&„yŒ+¶R¸žù2öF—>rq×$¬.êücr0I!VâôcÕ§´ ,HÊ2®}hhÓ1±7&óôðeý7üÜø[ãˆ÷l'ÆG ª`Rv€‚¶ëD}Œ®`ý`§ÅfEÞ xEq¿´¶%ë߀ÁÁ'ëËaX¶ž•ÓÁøQ"™Žõ—®"„Ñ8ã%äèÒlÁ|åP0 ˳ŽÀ }(#ñ‘^z‚,·68?ãÚÚCôeˆõŽÂaïÆô„£Šp7Ù‰‰†D :5¯Ã` œTÄ$¬Ö4Z8ˆQç¡ãAá+»¿-OaqRCD¾Ã3Ëûmn¾7v@2 1#jD6ºÉGCöàËaX¹kIrœÜA7î!0#ë“§-¥•$Ô*b¦ö¼âºu~u‡'¤ØVQ“È&˜{( •½àk¼3€Ëˆ¬‰=d¶f!àVPéh|ÊLl¤ƒäßYȆlš «24+á.¥•ô0™²¼`ÙŽ–àh¨E¡vg¥ÑÓ,Ýÿmê¸ü.âßp[µI]}Ý[Øš~ïžaÞK2fNœ/þž'^ÎʸÃYæ>䬽EXØ(&ã=8ò) `bH!Í©Râ¹$V(šŠ¡Å sÊû’…!Ýé·± Ðñ€ÝêF:Ò’¢îî¨é)ÙÑS,Ðmx°…$:Ú(åc12bùuä#Êçk‹tWÛ!«K¿¾XRņ ®m‰¹O@é1ýp!-gÚßWš´ôÝ%Šíš^lBBM¬XœWìt­[õL¶Ä¬XdvÐJÜÚÙɃàhCÿæÉñ ÜgBŠÂ°aáÓÓ`T—H8Žå—¹CÆ"…Ð#÷âö’8Ÿæ¦›®"Ï•5.üüçoä$ó ;µ‚ÁœàÁµÀM$—âlÅ>f±¯ÐÔ[B—oÙ¤/rqbê”Wšé5‹ÌL#Ÿ]èÎ$eð×5p¹9a…(“Þ’úã_p#%EÞø¿‚‘žŠJàÿ?/VCÒœ#܈–êâû~ÿ+T\íäV‹Ýøo`¥O¯_gÓ²)Ë’>OzÞ-òJæ]+v mOçFßÁ¢Ž3ÄŠ OżCr…ujY-~–·à rQŽþ6’kÒp}QP–~û*ÑH˜ŠÇ*Ëí{ôÏòèÉÓU`x¿Þ>0‚iŽÅÏ´dm `CN¸²î9=ßíKp0{­Å^øèH¸% N9-¤Ã××OðÕü}‚ŽiôxRÄíMjwäº7çWeK+@Kœ~Èi[.2µ=çR‚[ Ö§û×H^sìì5î*¦ª;v™:ð²A±€•K Æ` &ÄÝšápóä$cЦýDÊ´.`Çd~@Ë;¥áiÔ\ž¸‚›ºM¯uÍaÐF¨¿¶ã¿ãÈ^T2¯8·OÛÁ5À‘W?â¯2s¥õݢuõÅ#¹éz9çîó| Ý–žë»¥/â´¹`F{»`X–ŒJå¶Š‡á<óKÜ5&îp÷[#±7T,ž­¢¤<^PEGH¼÷DÊÞX«ÐÙ}Ê€QRzìn=xýŠ&r.7à½øäÝ£S·­Û\D¦:V±tjÖ›—?DÐ'wwWÑr±³7Þä%ÌdvT@XOÔÐ[Äõ·Z‰ßásdønánªš˜vÙI˜²Öµ*9p¹›ëi‡óÆ—_Û¼h·…œÈKò¼9¦† W@nÎsRò8  Æ/Y‘‹–a* ,+ÇnÂuÃÁk«ôuÃ!/D1SÔr.Ø5ÎÅ<7á=vZ•ÑÓªyáìYz«E8ôÐ0€!ctË…@©AÿúXuI7B}å?þówl½!e=q7‰c”[E Mïìã9cet€½ŠÒ,KŽ™¹1Oj¾”ˇ  ¹å0ŒÇ,ës—”u±ù;€JÙ&jZ oÃx£ÙA Û Œh]EæPªSFîWIüT–òÇØI™€½C´kÏv™×X mHw}DBh¯{‰²kæ·îÓkC²ßñ:²¦€ü9œÞ_j¦hÙªðývïÊ¥¡U˜=ª¢Ç}]ú¢ð(7ƒÍyݪ¸­_ªDI®2öÍŸh<ÂãÚ·³3‚ƒÖ›¡†ÏàÄyײœ…]Ö£K¾kÄÑ(¶5)¼w4b·Šöa”VoEFHnµå¡*ý ƒ‰V5#'ðVõ÷º8ƒPýñÈiuˆPñý¯*"-âe_~ª"¬hÌ'Á§nªãô¤àªç]“'½»_=½ÅO™Ìȧ^¦sš‘J†f{UÔ±«Gý¿OE8ÕçŠBæ»yÖ«r}hÀLóe–ÖZMÊÚ’ª«=ëê#+$Fÿ!¢Ý¢Õ®®¼Õ#æ…¼ú«§~/ºSé…UþÜ^ô2Zx¼*>v­Ø\_y¬õæ3_¬"vÞ£š÷»8½êK}ô ôª¨OÆ^žõô©¹Æ}»xÕ»xí«S‹9/桜ñúºŠrÿFôíÄR*NÆÌ÷Hfú†bâTõnõX|­íUo·]‹æVî«Ví«¦p·º¥¾SèCZ°îÚÿSª¸ë•Iw÷®Y¶«Ÿå¾É(‹]ժŅSßJB ÍÈ]Õí;ͽû\e|:óYßùžË•¾”4^çßâWîyý6újúêMHRž5 ýÅ«b—´‹Ÿ|2ÿ-ßt‹fÛ®Ï{ïMßêû©­Ë€MÑê'ðäáS“ïÛ\ß¼¨ïÄsJù¾]ÁõIá´Mü;¨ŸüfÞK¡Ó…ñ޼1Ï.‚n®w%žK¶Ó»(þ÷æÍh¯OFkeØwxÞÉ®ùø¼¦úN‡H@ïuþyíÞ#ËÞ½®F©3M_ˆõ­åa«|~šûÛKÛ0”´h0†_Êú±¦¼Ì¼s×è‡x1H\xâiUC.n¬d«ƒ±æ qxeÒôR¾Ö~{®U®b+X›ž£=Ó1JŒR)N¶’ø(8Kq¼ˆÅ•AÞËøèžb«!b+6n¬Ærˆ:PQY|r -¸Œs% ¢ú­ó3–‘W‰jdØõ36ó ÔÌIZ:µ2 ÒÆŽƒ·OU°;5:b _m†¿5nÜn'v¡îɉ¡{ƒ!6†pþžä{nuÅ™o:Ü2öò;vá ‡ïy J1´³F˜Fó}êt „ò¶îy(àƒ]_ÄtIÍçP.h4Xò›ýûß»§zrk©Šá¿Á—^²ð…r—i>Y쨨e#ïá,e«lß@²ÌâC»²FÐÒ`–¤Ù¢ÐÏWU·ø»©¨A?égÀ³k¬7—ßЪܗ¸ A{G-‹8üŽÙ¢$ïìSˆ' ìíŽ"2™O 逑, žuõ’á·úàê'Ž~ëêÆÇ?Ô‚„Âhv×°9¾éÎpôá)sQ1àŠ9™ã™]V“ß=Þq]S?T¤s’—ºhÄj?Ï<DÇ ?&_:u éØâŽJÆÓØïjrÊ0ƒ¡²r4®Ô C@§!£†\ÈÑ©#nƲÏ'û|ðŠÜèyŽØ5Ñ^›FþÑÀÃÌì ^m¼ezK÷9¨óÊн g—ü>úk{ý®<8ŸÀºxPÁàý¡êþêÄcåN㊿õE#µ¤Lð>«ÿe.~·‡ÍˆïqøÉ¹ÉÆ´/dþžr3×n)v÷y¾âAN»æ+Ùˆ~H Éíâ×J‰y‰®°]%SÀö陣P-^i'ŽMÞÙK•׵¤âÚú1ã”+¥Ì Á^žÓ*“ÍØ‹ÉÌG†~]û2©DÞ ¹$9~Tf”uo3G† ™Ý]Wú J˜ƒñºYËîS®³°L…ÃÀÞiYÂãL»»nÖ*o§ƒVó«L!²9s¸¦t 6«®Ùꙺkiû%ª,høìª‘mÀ§|ê0 kEâZ¥b³ÖíNpN|P£æÚX×ÒTj•éƒöݽÌVW¼¦=¦Pÿ)‹‹·…rªùRÓ—û`Ï¥¾jk½‹[¨!z˜Î—Õy-à¼ÓÞ­¢kÍöêe7œë‡c,R§díŒ=rÀ®f‡Z=‰Ÿ}E2ØX²¡-ó9FâŽB.Ó m/>´´GÁ1@ÏYЯáç(ËV©-e³auafÊ@³¤=ènY$vhe>i[ƒÌ©4 †TTgXŸ2'ÆC‘±ô²Qxâ9’æß‚#É|_•qÆ# ´*þEKXfäª÷`Q½üÕ§z8—»Ð‹„è»GØ?ycÆ8§zéØb\‚Ÿ®’²lÓ[ÁsG¡ltÖÜ-î Ô«¤Ñ–¹(£<+GpÎcHþÏòQƒWK*ð1a°éµ›Ã‚Ù±L]q%)8›û³Ž'wt˜÷§ÁÎiÒë !(-+нI=³dû#´Ò¬)ã½ kˆk„ø àkm:íÒël3[±û„Dö‹vAF¨‘fMj˜´fmà½m}¨›üô¦ß/¬•zí§¶îÕBœ_?Tä¢ná6Òl²ÂLz¦jH2µ¡wxt?ë\¨†ƒæfXñÒ3`5 >‡‹ ¥<ȼ燸‹‚CNsÕö•ÂP“õN3ófA ¸ã?c›ÄJéŸæ=|ƒ¡‰ùQN¯àsw®ön̹ĺF3-ò<ˆšëJ{Qö½³*8^¹´okÀì5¨,ÆÏÏÕñ}2×КŽÙˆFa©®»ó2@l©忊§û<­³J =HÈÝOêõV±!cïÜ¿‘È -T¥—úc\Ú)ᘠ >F‹ûàŒÌ¸ÛˆþrÆhò¨Íñþm Ý&‹Æ21-¦W4CÙÖÓÅ(}kÎsØØ<«†YœžÀÅ[”&oô*nZñN›4âþo±9éMÑd—ÃØ´ôQ¾‚äG³Hc´Kñ7mã€Õ9ŽèZÔTäîw³ë5¸§kjA૾sr¡1º¥†'‘,ÔÕU/¿aSßYÛõâ¹ù9¬Dm³¶ˆŽT¼r=P—ˆQç&²9>¢ÃÁ&y.X33›«w¨§žu¿/Gþ®\®C‰øD,H¦§úô{Ó²;I½Ó§à…|èsBxù³> v°)ÓI€t—Ògº%™4ÂZóƒ v¥Ÿ¸Èô_(<™òŽ^ ;\»;wõ|«^;$£ÓóÆš’Ò§½ë²»uÓ<ü }±*üPî¡Ç=€v}Uº[f,oSÈ¥†#£¿;}Û¥¥4áYt¥â=ÙòèŸèƒVkgˆ¹ØðüJ{8M\ºFð™$Þ†ü?æ*©&¢®þÞ˜²wm0Ÿó@Œi(ZóÏü<‰’1–m4Ž£¨¡)±ÚmANi”³)RC1¦}45·!?#éS ÏnÒ¬ˆfépG{à#Le§ãaúåësyåô‹2q8t 2㌠½E|móºÈ@ÓŸ†iU—ON*;·ñS¤ß­yÝk …0c £ùÿ+ígà:£'Š7.”Ó2¡YF½£u,!qÊy×PYuÚòИӒ‰÷ü$f¢Ð؈k“¨ÞÍxæ˜j “@ïû. k󵨋‹&ž%=7Ô|l÷⌸½³Û¯£$ùæ=ÆÓ–RÈÏ™Wìò$+ ÉiLZÿ/¸ä›Ï¯aõU?ø&ýÞc¯Ëý¸€Zr±I%ñtÝ/•^G̰¥ºç.ŒòL,…CLjÕ}/WI§}ýj-ÇHy) ° ¶ÄN—×npÝξ`C*Û>žË‰ÈX²³pŽÆyú€ut41\Ydu%fäø_çJX'öu»*u<éƒ<]–ã¢Ó…Å¡—ò¤lmKqë‰(Õ<Õž[=¨¤ðBE»ÝVYË*5*_ÏìÄe\¿žqqûkv’žÛ&{yéOàu÷U¡–Oò³,=Œ"Àì_¿4#œo†ö sšA«ö™4†ÅEH/Fû3jÆjùeç‹O íÂ*R¥¾GÉ'2Õ:vXZA™"#ò+!ÕMfõbxi¡Þ*¹¦Œñ$ãw3†ÂTâkÙ‡æž5ca³Ãj㬹¬Ä?öBQÛ ”(è£xk+¨¸•¡O|ÀVñ箎`ñÈ_´2?þ9å¿ šäÈê°ßD£7¼k¿]Ô¯è;÷ÒÝl¤i‹ 5pà?[ä —ÜY±ü:»tjyíP@sþ{³$cÒï%(ú–1ºËÀįJ¯lžYA*qü8Ž‘´Îj¾ÊûdÈêÃfñU4L‘h=rc¯èXÏ(Ö¾&«ø¸ml{g^£‘ÀÑðΕ¨Ø„€±(ÕƒDRÊž$nYûN Z¥Œl\§}IdzÕÑ…Ç»2à[™êIò–Ò[@Ý °}4÷p1Ø!ŒãÞµ»s;÷­Ž¢xW~ìžê|1àD,È ¶M¾õ™>j“ë—oí7<ªÆ·úí¶{تÅJ«o%!…æ²VÕí;̓úRe|?7ú$v¾u›bHQ-ú¦KÚÈð§`ÀÃð%€CaøÖæ÷ òð­Ýéÿ{ ªÝëËOCJö­ÿ¾ÿ€ÿ¼âØþõ»w½ë„½ì=s¢GüŽõzây\±I Û °8ý(}ˆ5 ͬDm­€e¹µˆA‹ª†,^øBXž®ª€Å¿Kù½kôÁb¢/ý+ÖÎÛ Â f±'Xûàôcéêñ¼Õ:>¸ÓØEÀÃJæ–\¹dR=^Oh*›¯¬aþ-jC颢²Y•òQãõvUÎy[÷2Îú†“Á{k¶ `£tÙbq‡×U‡Rœ4JP™畠@S¿æxá#@ížðóA­ânáÏ%ÎŽH ­( ÒêiPýêi[Ÿµ½ö}ß 5\0¡ »–’Cƒê×2\Tñ°%c^"ÿÁœœ’fÏå>ò4xšä• ¥µ,JXÒ-Yž ᕲ$ïþ[uÅë‚~¹¥iøEÏ RŒ|Ü@5œ‘ö\ ô8z{$\Ãà\u$õõZGžDçîf8XÁ°hÌÈRÏW.Ë™$½„Ù„2—:Á ûŽ8wz8ÞÖ™&Ïúºz—¾ê£%«˜¦;†Ñ?,làŽ}ö64ajg£¤9©²›P]€7Õv­5´;Áþž¥‹Õ‘“¬à,+èM&ʰkÌjq©,~xk]Û;v¼‘C‚=ä¨wJweÕ­_žíèªCì`tç!™Â„Gb:–FŽMþuÛWY_þXJÿ€'¾ñl[þO!†D ẉOP¡ ôiL êÚªI`M4‚¾{4BÎî 9GnÅ?[²“]U9º+Ñß—F_Ì3&5Ç[_1!÷®²©:üÓ\2‡8*ˆ8,8²Šïô‹^þxG›Tñâ‘ÝöðÄ÷OG„–Iy-‘®F J‚.÷f  ó†@R]C& 5ý] AÍUF$Ü÷š5§à*h‘"éËç’Û`5»,­9+gxéláZÄ–ëaQ}a@Ñ}ºƒ佩egÑò›èÈÂq`ÐQ¦{ϧ„5Mó›òfŒ¦QR™d½jWÚCyRã[ÜSp¿øò#>y•w铬¸¿–9γ» ß·iÎQb t}zøV?×è’à´èÉάÞ%¤ÇÞC*ÂVmûéÏ–¦u›9bnwÀ-HNãM˜jã8âÙºç3Ýp1+y¡%—î З[RÝðôÅ‹t-iä×^¨NÃìSÌ{mò·ò´ˆ”—@ìm\vû¿ÑVto€Êš‘XecP³F˜‡Ñš1ZÕñêſ͘ô*wÚ Q_ónôÝ7ó¸öM¶®81!g„¹ŒõïX8׊S•'û·³ kÓwÙžs+ÝoYz˜ÊQèO5ZˆèASÖq?uËöTÒhÚ™JÒ M%â/ó13)šñ°¿–f0•DÑÓ®z0t–S¼•u'ÞÒBoÑ_ž/dÓŠ”_侤%˜ññi)ØÿÙÚKqŒÃU†M ëˆÏf‰ÿî!‰ÀL¬šë âÚ'êòÎh‘sšèƦCê`™ÚÚªS²‰””p#~CÛs"]=Í7…*ñ5¼®’W™®ÓáÂå©÷Û‘$xš¡I€pT«Ñ垣5R-LëDrOwÖG³”yy3+¤SNî_‘¬5¸h=úÿÙç+w*OôÄ„°!`dÈä¦ê–ÇGm|x®1’Ë[W¿2N«…›¿ö ÆLÃ×Ôï«·Õ|äÈo¿Á6ÈYÙó(…(©‚òconÑ‘êB…Áå’¤€÷ÿ—º7Ùn\gÖDç÷)Î|'½Ô8¶Ç5?“zˆ„(¤Ø%AÊR>ýE`+´$è½kª§…ÀMˆÆ”ð¦}þ'\*z)¿)¸¯Ê¾ÏU%Åê±Xóyt1áL7u;§‰'¶Iå´p²‰›=tδŒ ¯‹f9e䇫OQ&š$cZ1¤… ÿº…ãç½âùúhfôB«£Äó[Tbûn‚ær.“YŠ¢ #E«ÿ´¨Æôß?0SzAôZ!—°ÚFCYÃÜ ZÜoI+¸æ_ʃù¨AIŠ¥ö«u¶¶Ç–`{:ãMS¶ñEsáeædÁ[ù­Wß8q\”‰qš0Àþ¸sjhK©OF?õ{Í\kP0jÀ÷Q¥î‡\îî;EzYxm…+‹V{lO¸Îxoý±ó=TÛJ­üZmÝdXé55¹*]ŸŽ'àí~ÓÞ¨ák:NõHØžjž¨xzО“D6÷eN¶§¶hÚèÜB. Ù ¢,+ʆœe…è‚3•ÃCKªx¤+¯ž<ˆ|Üý ¯ÒÀ ô˜‘ãièà_žªS[E}üuC”Am\¢¶:«”.ÇáʈL3ËÛ{ÝÊŒ¬)ᮟÁ+¦özÔÄjÕn§ºõÓi+r,êF¤‘)C;x$ÑÛÆ‹hŒ7RÇz› Ó*mP<.±8jÈsó6äe"œæ=Ÿ ²M´€q¤R“€Lœë)ÑåÜÜhô–÷CŸuKgå¿r{pó2^{ë?=Š÷ÃUìÜJ_-Q¤hJ•?-÷·ªˆ5º·(ÒdVì;’Yu_ã‹uÿÙÉðPü:ã¥yÖŒôÏïí"¦$ŠÂ°£_GÇWKŽíÁq‰ÁÆ/.ù$ü½¥¾FR³!%¿Ç‰&Š»eÚÝ]ûêuý!v†P÷-šÅÙsÈÜ£óÍ-¨°V†Uî»ö¹ÖK &ƒãkʆƒ@ýý·àj WÓ¥äJ´‘¬ÍöÓOJ*ØS ›{ûÊ_«¤ü’ªTÍYG´yd8:aZ)’l6Ðeëb¡t—ÞìȇÇà ¾–¦¨´ÎÆÜ䟆Ícß°T~zm³Š_*º'Ιa•u"÷De–¶a‹ÊÁA\»²]HNnw«Ý%94äOKþjn°þ廀¯ê.ÊXµÞDÉÐi|À9Ç n0ìèz:a}}‘$Å µº/+}ÒúÚøŽ OèBY‡µ†±>=-2÷œ; Ì¥SÕQ¬ï¬UM|ù ÖõÏ}¯ËOÿ9\|<½ò=ds5ç/.ð½ÊÊzËèrîŽ~:S ýöš*"Ó"¦nGâÌÿé|KjÔÕ§}5åâ,à¥øÔí†ÃÌøÔeË›Ù/’{ërKÏÏ¥w̆ ·À§;%«Û0»ÈÐ?à ik'Í&1¶?ê$p– ó ‘³ðiY]¦Oa“yˆSžìD÷ÙÀr0æ›§ý]¹Å¼,ç¹SæA¨gÙÆΊ‹¼zº>›…sÙ?s/õÉ/3v"¤›5"§6¢¹C ENÎùe×ì—lðÿ:±e±ù>ugdöm§·}w30[³¦³âűÓ?Ô9Oð‰‡¢æ„p {¬‰Êì@ù\"E‡¶zÑßuŠòÏçã_“* ê׈}BU S("š\lÙ·½9ÇòÑM¾¡“bz ¡«2tEäÓçݯ5Uáa"ÉÀN“©3dÓa§` 2?}<øA]ü|¸zú§­L„p¸*SõfЖ =0Ê+Â;½$¶tô¼™³¼Él›ä»ª*¨€^÷j âöÉå%¬üÛ`)¿”W‘`x7Lnº”iR ÝøB$-ÊköSÃxæ÷T×|pî^¤~̽ÁÌArµ¢ Ho3Ê]‘Pü‡õ9Ïô!¸t-l ¸¸©sï ‰JÛ¬ËTûœhù)óñS^Þ'B…ÉðS°pŸ”Lg;Í~©æÂôùFU‰ºé³/~8f^lâ,˜¯Ðh`õãjô%ħªØ\]vøñÛg·ë.HMµbןïñ¬%US²s[¡ e‰jÔ R ªÙ3®@ð~šóQ];)!Ìq$µ))j›2G]«›yŽììO®í³>Q\‘ª8![Ý5³Àbq2šf ºÁT%¹L݉µG)1Rj\ƒ\Bxî@$îŒç;iM¿ì·—OUD‚å¨||Îþ¡à"Î-Oê½$Ÿžê`§H€N‹So%7¢Ï¬¡ú}$—Ê,u1¢/ž Æ¿´ìˆÎN£'?WÄt ‰£Ó‘ݶ½çªÌ…Å Vôp4gpY(¸ôD‹pakü£mÉk†ît6/µ§éEðÿ³£™­Åp·è´m‘—ާwä阩]ÎgŠ¥¸.ÛèÛñN¬è %ˆûü»¦ÁžM ±´+Ré}[S`ßøœo#êÎþ6™îìÖo’¼%3cAÎ#!ç³£w‘TAò Õdr–%5úzf$^‰—Ä )óÒóÀê}K¿ÏË_|@픫¨É¾Òç±EËýÏÃk÷·všHÃ"A2]xjõeˆ¨ò©ÍË%L¯óÐåÓCÛß9º6Üsßhú¬˜OI|»µ6…{E…Hë£ésÁ§Y²¬®ï¹i óú|…hŒ2啉É%_ÂÛqMZº/7¸3” z9( tMš+\s$;ŽÓ£VOÑA= ÖÓ£>xZUŸˆ^ˆÖ}FåË îÓýËîåÝ$VÀaµPD&ÐÁ­›Ç”¯®”v:kq²¥åi³«]]@Ž?ÍëöbðXð¤õÓÔu³/Í] ¯ö‘ª¼-mªª½ÅËGûîò»Zcø.ôÊS¬±õ²Í5oÌ_ŽÁ6':1WÌ›l f*MyE199ùˆìgÁòìö¢ô¦PkDÉI$$?kÙ6·WÝy‚ß¡¾íu·‹5…^õÚ{j¬GOh ÿ/©ŸÖÀô£›¯~@Õî9×È¡Œ[À¿ë |:Ù¡ÄÉ+c ¡©lŽãäÁ™Kšymø\k¹Íw¼´‰™† C/LªèsºoÍ]Eg‚%@>ýV1…ªßÓ$7µ!Sï¶Ä°ã¶=][Mtº8›jÁ¸õÐk05y× -z>æ31Š’Ù7j"ÇÞö+Y”F&Ó€Ôº"h-ÓòWsyЖ¨=+–C¡¿2ä<$¶5t•Î%`ØšGkÃ"-‘>ž1jŽ* †J$ކ)dóÚéê¥YyÍÚ»"D¤4ó«Yn6c­Q휴Ô~û€¸Ã.;üü:0†€n–›Åd¿»îíàÿ\S’°áj½Ÿ•7œ&צä$Øý- ì(Z„â¸l‹&ê#%¹ÖS¦µo·xÖdÅ·Tˆe(ï ¸$[7½nXäžk\õãé²1êËl…»´âs'®Aüš‚S¹…ØÆ|%‰ŒwNI›çŽ)ôDªvp‹Î'+õ”W¨å'ÄebÚ¹å’MµÕÀ³+:È=Á÷¿~yæl²¶DùÀà<ýŸåtY”Ç e˜›nÌiúim"¦õýx#^RùvŒîIßY§Îƒ'äš4‹a˜:ú³m¿Øg 9+fšÐ~žÂýÎ÷-¬L'¯p"²lô ©¹QGò¹Ør¾KoðèõLAáPˆ6o@®üHÖë(—<÷#Má+À¯V˜tp×2¸î°3i’7@âÈ–ѧÐÛnä,ž×©`=•å5J(_ŸêÌ]zË–À}Iõ¦rÓL}®V9¬»§Fç¢LðâÏ d#‚ËÌdcì*”øË7º0ùD(c¼¯ü=¾Ö;pÔ-ôýÃ<Ü¥“™Í;„U;‘‚”­:mWúiͲínàæûFy‘ªŒD£H ¸£wyãʼnŒW W=Ÿ8k^z¾Ëï*gg6œècÁΧI”¸ŒØô­q#vðH †Ÿ\¾û9>N˜ô4Z•³àslufë§Ppn¼Gâzèsö@d]Kôv,~Z‡8šanI€ ¥ÑÛsP yG_ÙÊŠqÄ fzÀ¼7”¡gs•¶zb;¥r^)ºèŸûƒÎ\Ρ`í (— ß¨õý«?„)#¹¹šho?Ä©»×ÓࡘM§õ‡5åÒeœñä'¶ðÝU}”ŸµNí¬©N —m<áäÓWÍfr÷ÙZ«ÍMÄ‘ct:,˜€UIŸ.XqÉC+ Šð¥<ŸNKÅ7d'Á‚ABÜ¿”ºÜa{–w¹Á>Ò°ì(·6¹ìP¦œâeE+ûì±¥¯4Žü3§º ðØ|û̓zö<,Mæ žô] [8!ûõK¦Ow j¶)“|zŧDçH˜Öe[‰H ó‘,‰sø4 «Nþb¯ãë|€Þ°"0ïjåA¹rnpèvë¥sÜgsYptåõ“Œ< Î|ÿÜ,;r××_ªÂt'ÕÉyH&óì3âz>2¯ô'%JÕí.ª»z†³¡ƒ²û|÷8Z ×+³P›OqKg‡¹§H 4[>„µ±èDï§qTõYÃ(;²58}üXwdŽ+O~ÌC¡Yd›Écc_³Å±Ÿàq¬yTì·>Rü›˜ ÚÒ*äB Ìu…ÆÇþÝÍ¥¨’ÝEg]–ZKoç1{ÖVíêät< ŠŠÝ§âÑEBð’ƒSüÉI -`Sæ$ÞëŠO¹™¤©Ø]”¸ÖÅí)CôU_œ º1ŸÏ¦Òš}FC1­[´l#ÿi({3”ytNÇ{ƒLG¢cÆÊ¢×—_~ YwŸ2âßÑ&gG§VøJu_ÇeÕéˆß®§}}fQZe·ÃBŽ´IØ Ôók‰Jo¬–\bŸî ÆÝs óæ§eœ ”oΔ¿ü»W7ІõÓXêÁìöšE»ñ=¤Ì@¯Fj%¶¦þŒÙß½¨­Žk61ÜäšV&4ÚGG}¡Ë¡1Hú1K ð^ᬇw†‹Ë)AèÚß^ §,(ô;e 5ô¾·ö¼«ŠØ‡#h­¬¦ÜÛ«ö§ ¢‚{»ñ½BÍÞ»‚NZýQ‹—½Êx,Æ£:šÖô @?Ì Ç—7èQ÷4‡NðP7QÝžû—Ùå8üø3 ¸¢`¼–«{''ó7‡ÈIZþ'ÿ åúã¾ …ÃrjÏakívˆñ:[peíÃ`µ¨Â%(XËGp+±h[UeÝ’lжÅGsX.l‚h_qCuÚhOp|ÞŒY¡ÛÕbãòê~^êØ@=00DL?]?ž°ø(„¶S‹M$.šÐ{›ŠÌàùÖ'ÔXÁ•”>žéPàã¨{¸éÊ= j¶Ðh(¶YHG¿Oçºóæ•Y|0FÌQTXÖ:e¬w×m:ë.>è^ yytx9°³ÌÎHãüÏgö¿êÛkÉL ÃeMj¸\F%<ÉuèÊ=ÚQ— ›$ÑîeˆÌf…3Zc"w1¨Œ‚âqep¦uûÐ7¸Ðv+óbU€‰ÉNq ãåãþ„¸ÔŠÈr}Þ3…p¿>YÞ¼¾ˆÕç’í©ªë(îj±`”ù)Ô˜½ ¤Û¡˜¤´X)2mXÇU””‹–( “iÿFwwãgN­YÖYQƒRj²(º²ï¦D1F7Žs{fšK—‡Òãê]3&ä¦àÅ(ÃE‚êWe««[`a¸¤êó‡tR0Fñ»eóí™-6˨ݛ¥µÎ* ”RÌÆc‚ï} mtƒ³²Âp.0dDtrâ™3z? >±àoT±LãqrP¹L¬Ãõb“Õ‡—_›‹dY}Œ£#ØÈ|Iø™þêBë>ý„Ú˜§NM*j`Åx°-Ö“Qã¶ï<]ÜO…‹Òøw`ƒOmp]<ØŸE¡4åÁxo˜$!ÔÊ7FYvB!¼A{IJ`*<_g‚a&§$ªÒ »79‘pÒ2ÕçZž~³N‡y|C8j“* &;Ø$v*àoOŽ[‚×q¸ŽÎqCÊÊ$äv-g‹*¡âS\¦iþ ¸ˆñœ¯áàîyd–EyYR¼IWFì°SeÜÞ¥.A»IH½^äò°üÆ®ÔJ°Táiq–Æ¥Gd[UO”«îËŒîÜV߯–TóŠÜõ@ †³¸ŒgÙ=Dà~#à>ËèÎcÌõû$OY^IxaL,qÁ”È\²”YÉ)ŸP3ì“^мզÖóg?–#/8¬¬É²LÚ&rèªBu^Öæñ (kügX,”—F±îufƒª‘…uSN­y• I¦{>þc¬—àŠëÓ§§—‘R¤áo€ÄuIŠi r޳¬,þå~ËôÏlj²~„èÉ…½¦x™ ]DÑÌì¸èß|Õø"ʼngKu»í 3ŠˆõI7¨ˆí‰\ñÃW ô7b›7€Û/ÊÏPV¸ ɧ«?ÊVÊÎO½*ýoêEL—Lÿz­F iièÉO4âiÞힽɣ¶ w)ݦóïNè!žD-ÕzŒ0§/¥˜½Ry»£b>'5wQ6âK]–Í¢o” œ¹»pKð×O¬‚o$¥‰%hÁ_¦\Äeqöî`\Ä%d>ï§!Ù¿? 1_­JÝSê‚'–7WšŸPgÑψ6qJ¬ýÉÖ"|b¥ä ý–ØÓxjØCeÝ¡KÓ3:AR\’êÓg<¥EÛdÔ2*”A~õËŒ _½n†eÛØxs—y½.¹CÔ-˜Õ ©Ýg¹:—U6Õ7Àl4®Y‡pB‡“žjÚAUEšc¿Zù½Ðk¾~ÉùgrnNGk´/ÜÖ.­+O&ž’LûŠÕê}^,(U0°OE“ô9Šë²eÛo™Ë­Wþ+>I[áÇ¢yßòEO"GwÔ4µÿxTz ±Ë¢ü\+_KIÌ_¶Î¾3dȤÙùâ«&SR~ a Þ–e¢‚ü¹_ªbaô3.¯ŽËlCGM,ðµôøüv‘iIÊNãU¤ã5’ÜËh\“JµÉW¨f+ßqP+àKT5npí㫬n]…(ÅEŠƒ²z4˜!&k¦…7epŸw°†sR_Fº_;öœÖÞqºõ¤hXq(m5UßUUw—©ÓgªKõSýé;ŸÎ–$rüÃQ1:Æ—-5 Œ wÑ£—ê‡í.s(uyD°å~Ц9Úº}]̌٨’³%ˆ+ÀžMuLìFVάÿ”tíNR£")óŠO͇7<èóîÙ©h¶b7qf¤óŸx%¬ÍÖ\O¢x¿'¦:/Ts»ùðéh™»h€×íM‰ó㥺ºý…òCíª5CÓ‚þà÷¤¨z^‘Äv:¦rÒÄZoRfé^AÑ åÔÒsšV'þa\#Ck·l³ùÔî>£R»Ý´¿ ã}†)u¸áóˆu>áÇ„ñî!o×¢¦Fç3‰ŸX­šŽ“àv))@ÑKÄ]³C|D Çrï¥Y­ÚÕÖí:¼+«ÇÑ[ ;S€8UùÖ¼Ó¬ùô9ùŽÓƒè~ÿÔ1#°'ª›ôÄåxÕr6ÅÃ\c Ö‡ hZL×ÚUÍ›¢eGÙï]:„Õf;æMñ‚2 œ2;OìĸпZ³ ºx~`@@ûù¯>¢Ïº&ñܦÃAº'sŽo7âRFâ¶'ÌØ­¶öó£â˜3oô¥,;óãoNâm‹}~çª]âxõ‹§üp°Xoj¼4<¼t—‚#’e×Sc&¹ÿ/R9?'»‰©í¨µÙ«XO9s&}º3ØÀÒ,J!æ@ýXÙrCCé¿ùOŸ5¢Ídn^þ4hwbppS÷µÖÜÜ9€»z®€jÅóäjwù;´#™ÄþÍM> ŠŽXq Ißq8ª’lóñ‚šÓ·‚OPYD§ºü¢˜g»X7ÁÜÌO–²N²Ûpp™þcâ|ÕL9Z¹.ÙŲHqÿ·Ø³yáfõWQàƒÍI›£#$·p·‹ŸÖÓÝO|ojžsr÷²w¡²“X,Æ„Îmɇ„w<ÛŸÑâÁž°ÊuW\ùÄ%?,¯Y›Êc­ÓzôO™½j‘2ïœ$*«WaS¯sJ—ÅË [Ä'¬ª([£ÇÁ²¯™p¡œ< ‡#‚ݱµ(¯š¨“ƒ·Áôb©ÌÁ®„ÀÇ îÓC@‘" +ÝNøaB¶÷‹&ó\×ÊB;z’½ä9-i‡O¥Âð…>íÊf >ðŒOQVpÌ 2¼Ê –8«Fa¦|« s‡B:é\?ÆD¹×'fÊ‘H/¾^¼?Qª?Gmì((ƒÐP^`œEùÃN\´7©?™WFõL­™y6l^×…‰¥¹õÞ`YJ+—Fí‘ÿ‹{ó-fÉñgâ=¸š—å ,7?ãëB¢ò¨š6Yo0êÞÕ_;‚ñY—…Óç‘7˜ÂÃpô¹ ~¡ñŸt0gäY ú›ãzn/4»&ÑxLûô”\Ì*‘§û¶›0^™ÕEüÜBßþ‚d-{Jå\cÜ$‹ÒÕ÷æ#li_mΫyúäd빕É)Þ¤Ò‹nd†ËÈ>«sWÙ¸›H¢ wÎÁ_naeá\«aÅ´Ù¿èR÷¯6‚Ÿz‚êš¾¾ì÷6‚ƒ‘`zã!t¨î<Ø×"¨ð«Õ…@æJ2žÈUÆ är‰nÚ}¥œ¢=»oÁÍ ³xN¨€eóðažrcº@i‹S ¼ÝgÖH^q/b7”ÕÔ‹þ4ŸvËýIåãÑ­3ÇUY’Ϥ@EŒó)lýû‘‰Ú÷£3{U×xd’êøË+“€*¢ð -Y÷îÕt„ý˜~áâòø:£úõ×a•Ho»…]}9Ådï#T8ì<*”绌|÷sQ-á(¡º­ Ê܇S‹ØL:´®ü -¿Þ[ŠæbciÁ®â£×V#Èu·mO-:aPo¿]ÁÐãƒszù’¬G+Œ¯ÁÀÖ}!žDǘI*WÃ98ýu&S kXÆÔøå‚e¿€˜îœ,Ez»Åò:5“ƒYA5kä6[x¶pã÷tuý¼ËÔ)õ°·Ñ£4`'¡§Û¸Ïª¾FS·k¦*9ÿ*i#ìù r¤]g‰G0i66’e¥¶ù²ü`)?ZÊ'á;ÏaGx‰¸X©AŸÿ矃2ù@qX}°c㘀Ì)ã«Nãïžsb‹ [Ë‹eÜúÊzŽÛq›‘="‘Œ1ÄVh^)FÍPìɽèÁUlÓhâµQK5ß ÔøŒ½~ k ò§ ÑßMO.‡å—OºÀ—Z“Õ[É]æ8™.:–°ì³nkú<)ÖúOˆx§X劇mÙy¡nŒÚ£cwvFŒæSûˆp‰µc¼ Ã–·f„êtC륣H›Ü¢õó’âzeÔåþº­3¶ú±$ˆ¨ˆ°õ„GKO ƒ]+ÔkR~ÎÔO½¡4™ýu{ÿÝÄ“â6©tD°éÑœp3Ë¡ öYSê[ç¨üPB»eæöD®j£¬ð|K¡ORÈ«ìw‚ìwž‚ìw^‚ä>øZÚïµ%‡iî‹Ñ9Ä”ÔBã98¼LÔi~ÔŠª9wæÂÚ`'´8GÇ„w@‹{šû|YMËÇ¥›ö}±Þ£ &y‚lo¤s/yWBÀ¢ƒejIšÒ;ϳÊg"÷ËO)Q—ùOk «ßTŒííïõÍnùŒŠíî> §×­,Pø;Èâ2 ­¹>á0ô’ gÙþ§¾Õ™³õu—\«=½ž„†U’pä:ï⃖''ðønÔã†Rt|ùý\yã0À¸K)jød¤£4Dc„l ñ‘jè¾M…žŒžgƒvìÓ–ië–E—ÓhÅc…Þ^ãМ¦ñ¸œ¤CVIÉ ô¡”sœ¾•D,½ÐѦ.£3ihÃÿw{hyóÄŠ27.:=“ fV˜‡¦ÿE,R!‰ûoϵÜp{V)Ū}¹ÓWÝ®ð­0¹£p9®S\•¤±é0À‚îlÖiÚGQ½¡¬êÙƒ3h˜ŠêÆc_‘5¢„OŽÚð,ÅïÌžÂ𺠉Řvÿj).+8´7ɯyí_Þ´®a=¥Û;*oÆÆ?~TŒïÞp‚¯¿ ¢t¤k2D£cR”_â±:Çô,ªéºFÒÀ•°…„R­ ïˆÄ@Á™ø‰ÅlùÚÁ§µ|» ­ÏÁiRsŵ±öñ¡éçñ~]¨_z]l8„н©uKpz.7ˆ C̳uÔkHå/6£îǪiá–CÍÇa™ŸÚ¾™ ‡ÄÚ… £²òBPârÄi¼«ö Å´"RMrßúâi3ÇIàÕ›cmÜÏd¹{Ÿ° b¥skÊJÙ•ÉÖX©nó´œ ºÂîåøi{ÜÓyŽ0ÿ4cÈ×à^[Ô¾gpÐ-ÎæMÓ¹¯ÚÒ©¬TøGÖöD´vkPæ>wµëÅ`›ˆ[•ƒs‚9õÓÃ)k¼_B’cƒÒõÒ\c¦“~¼¼š5¦1¥®û‰ûHˆ*±‹}©)®©Èð¡XáDœÜybVñW•¡Çèϳ¯Ã—1m•QìÊ@q%òôÓgœf!ç誃,î§ñòª›p,ÞÚ6Yœ€\ÀìV¾¶ô8~i±{ð/ˆ˜«ï€Þoíýðë ˆ_jBÏPÌdsƒÚ?ÑáyÇo“³ï15ô Ƚîõ« /÷[#>ßÖHMÝrYR¦Å¯ƒ~ZYfWɆW‰Ì¿^wï!1•L gpÞã%¯bcÔUJd£b³•¡×åé”-ž•lYÙÎ/ÊyñúÊÑ7Ha[$¢{žSùøƒéOUÀóЉÐx¼ùÞ<ä­›bDuÇb^豞ròþÀ)h>^´kyÁ:å¹™Ü ÑIVßã‚ È>VPÁ¢¶óÔlÚŽå¥6¦Ô}{pUSðEþKt"MÌôêk,‡‹QÕÄ—à‹ˆCC {W®Ë™3ìR}%›¯V#–×úôSf<˜‹0Þ5¬”Æ`o17Éôë?Þ˜àV\}BàYÌïQ“(lJÀ!Š&Ë7Š ?âR¢æjúWè†`ùÕ¥†'®ÍyÕ(!- fñ%à–ÍŠhÅz…8ñê5Ïhz7’só#gV¼6Æ3äˆy`Dn¬6/Í¢!)¤éÓÀüÆ$5ÏÌÙÞ¸9¦µÑ!@–ßyô–ÒgPšŸBßÏŒ’‘çŽÝ³Zž ŠQL«,ünÐ1)A‚Hž{B|µèўȕ?\ó­#D“1,;8HØòTÞ#xp –´yµG»DÏm"°GÝŽÅ7nÊ„„étミK¼ì'ÎHšöð» G7I¾4 ­F‚¹‘³\C¾ç3ÞÐ…›Š˜Cð†uáæ)ÏÕþÂ<™Ogc \VF6|Ùðs7ªÈâ}øó/S¥ m‚I^þ(à-¯xJ6Ëö'34Hõ~x÷ŒQQL37ŽLó'ÆÎôp7›l…šèR~eN¾ ú~ÔtI‡¾•äìo&Möé=Äí ×=§±Vã· ²×ø—÷ˆ[ElÔÈ”ýk~xì†1‚Gyú-|dƒK/ƒOŒ?ÍQk9ì"¡Ê¦¬Þ"ö…v$yuhâ‚oÀßÚÄuKvÎ1€œ:TÏE¡ ²å·$ø¸f¬iG•ª©ý¢’óKÒ el›=×(Ç<û¼k¼Š5±)T<;ÝNDë e]﯑Âi0‹™Ì5r²ë›þt# .Çl”b陂Gèù”ìdüSg£)‹}´>QãÕ·F°@ù¦vŠ8«‘¥¹ÕщêÕLÕ´©IU±=[ó«ðµŽÄX_]–û|%Qe“N77ÉØö!¦dG ™c'/]<Î$k°6Å™,ö™"k½kl=I$Ñë–öJªƒÕÑB5ú€z¶Ü’Gÿ}e¹W¯Š*¯ÞU6ÿ‚‹m–LÉŽnd¯2§ÉD¸ÉéîåW|ðqªê…ö¬¸ùdB¹…=y—)JêRg–$‹=TŒSÚJ;:‚½Àƒi$R~>'*¼E Fª“S8Æ.i¢4Ñïf§$ûíKv]4ï2M› .Aÿqß~à¶úõC×mPúÓgñ Ï [/œ‡˜ìæ¦v+ÂÞ…è`$-Zž_YT]™‡Ø¢¼°øió"|yhð@»Pø¢‡—ýîÅÃH°«¡“›ÿòCû¥…1G öˆr:väë|1¾¨ÙñYiv©N’²°êB×áwe$UÓÝËß?mÇ¥ ÊáA¸T7ˆøTžuÿÐC¬[°y¡_ø´Q¢/YÛÌjÀ<Þ‰Käߨ㳠^Іá|6žÞÜóôœÐ güaMó‰‚(nÎND ˜ûTÉ"¸úÚ-¨¢^”/\üdý½ß]ØøZ•µ|=fÛ~ÜÖµ>—µÊòF]qýˆ/¯‘»“çóµÚÆíÝv ðVñ‰{Ú+# ÷œeû—£?½kZXž¯CÛ"¦k ¾jÃ(õå^’¿:û&KúO—' ½üåÛ“²Ž¾ÁëPWÁsì\¿àæçcd,ôáâIìüAëÓcp`™Ïu†ÉRiŠ2a<Šää²ßØLA×È™üÏþðÞÒ§cð÷´"K—Á¬ R%±ƒRÂd/p@Åt#>õÃ~MèF3+Û¿ =F/ÅbW,+\”ç3‰ñKY§Ÿщ{ @ô²|Ï¥$ϼTÛ‰O³I,\߿㊳k)J1.n¤. €Ñ¶§!î¯fNþæô–zç¶€è¸&lüûZ|ªç¥ŠÈÙŽƒ#fl—vÔÀåàá5]°ÈÉLªê@.\ä4k7×!OعÁW©±Ý²x£˜ý&GÆ».o+ã²;2óQ]™)?¶¹rC+ãgêÊŽÎ$á‘ÜÜj*Çu’¼±?a”fxï˜M^¤•Ä=¥IâÂX éÒƒÌD^ò,¦€ýçèïþÙ!¤ƒúôè·Q=ÐKiü/~™áϯû„¤mè³xÖo5&u‘E|ÉQ}PU­wLà ݼ2'Öæ/˜ÒªÊ6õÁ3/óA—û„u—Ï‹ñ¹b\õËsÁO”ëR_q†Ééœ_'™RäP¡M€6€êƒÍfIç±{¨!5köùäq‡Íˆu0D÷ÀEšýº‡/@Ð â±3¥{?Z×{Ñßõ_.ÕI]Ê’ ?\$å™çX?ð$dYE¨(Êf? £ø‚ãk$5mOì¤ß¾…ã¶<ª %I½%Wfä”A FÒ}ÿuœf°l¸²‘Å–ÉG†CaJh,x¥¢ºé&‹æb÷‚ÄWμ{yõH'ÑÕ xF!i‚c’£Ìù¬ Š)®¸“ÎqoØW”bÁ¨H</€Z×ÕEò½íL¥ï>] >ü*DÂ.ÜÜðfÎ=üfîE íóYrÊ´_Äg³êÖ÷²sTI+(ÌM$ÕtrÅ3Å…HN®¼uRÏ5¢•‡ßlx(T] ]Kʈ'ÁdÜküäÖŽ9SY•¬L}Â-V+Á{ÓqŒ/(à…0ã7xO"lˆÅ%Ò.®¢Xt¡lÍçgÑÆLÕ'q„b’°±ÙT¸jHBôéú™þ ÿ¦Z—)¡<ývK63äS¤ ®¦Vâ·®cDY•&Ä^XFüèÌ$÷Íɶ´?F¼E®ÇGO¶êÓs x# KÙ~%û/@ïè„l„ÊŒY‡ ÿ^8üùÔmdìV5Ü<$˜’´²¥–Ãûþ\§xh<ý·Ñ(8lD9·»^<CĬ;O3°‹°Mã» ÁÄLç£øO‹‹xh@|ÞæLQ²ïêJ|TG»%°Â½©ÐcÃ¥—RÆ%°Œ)=Æ¡VPÍ–…G#CLmY:ASæ¨Öå{^IÊÔ“"^^7|u¿I=mû"ñ¦åLW„ÓÎú¦‡ ¯þ§ê‡Õ*©&œòˆá§Éšñâ]ñŒwÉ3Ät™¼"ºQÛ•»‘m*ÛíšË’gõ•ÝÞD¿¶1Ô«fµ§—Kwé˜O ¦™k4õ0ÛôºkË,DZƃÒ}¢ëJB}ú’4wžäâ¸ë~3ò$`ó×ÁàBûA®$qwyâä“g$“™3f/¦åxDç)T|©ÙÖ _ÏÌ` [ÊàÑÁÇB¶.è1ð­Tòç|±BOLsÂÜ|ö-3“ é 6w6‡lÞtéë¤+ؼ»·æ}›w6ËÙØÆÙ„t)›°—L*³tÁo¼-ã¢Úæ‡S“˜Ö=o¡%GÇ÷lkÊbÁW.í Ä”v £ƒ£ÃF–EbJ»†Ñ»G‹Þ×0úð`ô±‚‘m©˜Ò.fäö²~¦˜ã›ú1±î kM!ø€±—}*õdž×Õ;¸ÁÂ[¦MO¶þÝMú÷…ðnðËàm£'[ï¸û¸¼[æçV¡š8pæøÉ'ô‹š7púµ ?<~¬dè4P&ô«zV&¥0¢öÅjBº‚ÍÁÍaËHž®`óîÞš÷l>ÜÙ|,gc«Ò¥l<ëeeŒ2‡#Ø@·”Á‡#ƒ… l½;Ð-bàY v û¤ï¨–œÀËÀ-¼£Zþî$ùû2ð'ðEà¶AÖQ-÷­R‡¯$ˆAÛ¾‘ Zýáý±Úú}‘?´×óÚÑ®¯^=š Ü8|±í9ûÊöï7¢]ÃèÃÑÇ FßvD»˜‘gE¥:*ù僢§¨°šåÁ—åa5KË8VTXÍòÝ·•ï«Y~ø²üXËÒ6ÊÖ±\skΧ âÝ-|’h™ò»"NúÃÇ nÊÁÒ°1u×^=˃s£–ÝÓ;´Ú{bOö¥Wö·¥²¿ÿûýþ¾Tö_ö…²‹¥ê_•ÝñSìñ›I>Ók¶>–&gãúŠ–r [ÊàÑÁÇB¶]p [ÄÀ·NñÝ®Ùõd ánð‡…ð¶Qב-„w“þ}!ü‡üÇ2xëxëÈ–À‡«ŸÆ÷äœ(® ÊÈ_$Þ¨mcõ‰Ü³aóú?v‡•ì,cù‰|%»w¿Ö½¯d÷áÇîc;ÛØ"_ÃnËœ€2‡³÷ˆÐ·}̓+‹Ãb¶Ñ=.fñîÚŠ÷Å,>\Y|,ea¹á2ÛŒVGK ÅV@®@‹­\-[ý¸Zü,¶öqµôYlåãjá³ØºglÙã\ ¢Ú^Gµ üà~XnpÕ2ðw'Éß—8,· ²Žj¸ã (ÿ†äò]›KQâ06{:߯tŽ KØÆhO·”Á»c Þ—2øpdð±u¼öt‹l²kóèàß‘ùJ.ë}¸Á,ƒ·v|G¶Þ³Îº9øKtTËÀNà‡eà–yÞQ-w’ü}ø‡øÇ"pÛ먀{TiPí_öÊô¢Æd4P“WôÍ:¡Db2¼¿ì dà5‹„!{ĆÁ?V‡‘aMH±&ËÓÖf Þ"îXy?$6ÿg ÑmVæ1>ïî´¼­5þ³A›«*ŠËëbÏÊbwQY6‚²=ûá•UŠ‹7"'ðÂü£M‰À §ÏsdV»FÈ€ÍJ½¥ø¡/Y©;Z.˜­)‡H÷±%Á1:š<ø‘,ÃÂ$p¤Ú9´V^Šë2ÊqBÐÎæ¨Í'<¥ (rŒTàS‰êdýr˰®UId:­q 0¾<¦x4Ü'>—ÙxDZ©(#¢ˆ0Øö¥óÛ„T¿ø.l$vbƒ¡¹” Ào`smö›:CÙ½üÔ mQüf*ö˜ôœ\ÌIǘRrâ üü$EÕ6?L\~D'Eù© yÕúMÚ¤=¬È½­Ô¦-ÐÄ#lM"TǯòuÚ3„²ÙCI§ŒF¶HgÖ/¿âOͯ²6%Å|ës™É?¬…?þç ŸXqJº&‡ 5æÑ!ט–mˆ-Oq´{ùé2rˆ—XŸ‰N)G°î˜¦¸$.ãýì™èvZ]›kØ#n]sf'3íéJõçý†çÙ}º¯ç/£1ÊБ'MHIžàj-¸O-!$Úÿç$ 6+7QóyÛóù±æÚ’~eCÎ}vFcüh¨0p^ìé¬4ñPó!üà(«1…‡â‹Üs…s“Ñï•#ºàŒus”£(|_Z­/µìhÑ^Þ÷æÍ“Åe–Êj½O¼N^;¨UÐxÈ“¼Lp6æýa Œ:¨Lmd’< ”3 dY_°ù]#ú}]A²’uA½HÞ<Û%Š˜®^iaM£[ðpËjeªì5OZž›S™<u ÏV§¬›…ÝÊdYRa…œÛàŽJ?†«{E¹yýË—ã]E[>œÕ&ùwK"¹ÌšóÀOu£¶.t**+Z™C”#¨Æ"c”|!ȈLÙa•«™O?}Ɖ¾À*uê)gk‰ï¬íxÊŽé”F§:"!ò1tx1ëYÒÄ>—+ò”v&*bì—9˜gììûCÊÀ$× BO_ôCD˃¢Ñ€he·AzQé½Ùèý‹ Ül;: BŠýkƒ·57¸“Áñ¥ü6†ì¿qY0ž¡{ø)«”—Lç¬üªêoí^;¾|Ëi@7ìƒ×ÿÎ׆Ü2ŰÓĈreB%Ö7‚®¹oÈqªXƒà>v;& ºG7Äšƒ2’¬Ë´mgÖÂÿ«˜Ò‹O~ùéÜYYÂéw‘¿¦H讬d±ûý؃­Ð5ð{ƒ¥ß¿å p«ú÷ñ›<×ûñ¿×WY*^jª^¤âÄj{fVëj|jÅYã;“2†Hï®vÄ9¾¿¹×Ôª&‰â7S±ó×âX‰Ýåb[çÙ•úèÓIGs›Ž>m:ú´éèѦþѼ<ÇÇjç<›Ç¿Ð?™ëôîyhDxó•o>£äÍg”¼y’·åÉÛë§Û]ú²XVŸ–ÕOÈ>WâfVlKYí[ÊÊu~9³ciI©kß~v›ÊcXbAN*êÐÜYâxð©RU±züØùÒß½*T¨ö”éîÞfc¯‹%ÐyZzöÓPÌ¿œ¦|2ý}G¢"gM7åç×q¬#¶òo %™ê.ÎiFˆa¥‘£šò»¡çî¸ø´¯/ÿüƒNº¢¢Ð}mG§ Ó/äÂ1Š‘Òüvd9W0u’bÚ‘û›ÞI€éu?Éeê†yÁì4Ó^uú¨ ÿ»V·(gD›¦¹ª¨¥œƒ¼¼Æç@BR^ÌÝ1|¯HýLêò°î¡ÃðÜ2 XW]ñŠ©|§Ô!¸ol@þ3ÖåÝâÅQBj7çÓÁcAœÔ3§å ]h¶™šŒAžÃ]g;&Yœ°h(e‘èœuÄcפâ3†Jf¾àªo½nÑ™úÝ÷ûùQìŸ5[óAéaäâ…ye…Jìh 2eöôR+ŠDúÖˆ·­ª1<ëFjvLö>Ó”ÓÀ¤ñ1¨€]>A·Kw†‹Õž“¡×|qÓ<ªšÀõ¸ÛlPg’™‹aê;‰ë:ÓÇÀÚï%häÖ¸n"™šGÛ ¬tê<Êß´%ÉAo¹(Š/Úe8÷Ø9„À?D{½Œš{‰|Ø(ŽGÅëÎJa¯–á²X¹ì›Öøœ4×#?o~ÎΟ“r¯Ì8!1÷&˜ýÀan4) ªËƒ:çŸP¸&õâÁÜÓÎ&Nãao½u€êy»>«§ß‹è&U{`œrý~ŽžiO5:†ó:jŠ_<ûÙ*9/¨Õ`ÖHn¶¶ªv4•9Ézx>ÕøOF3~=NÚ­ÕÐ;Á_ cTœp]#³GJOåq5š„³õÐY„—iz+ë¡ÊÒ/t›ŽWÔ&¤œJj=®º…LE^ oàзù§¹G™Þ½sDd”v°cäwŒ ôi{3NËq-¦Ø¶@ÃYT]ãqÑÛÐQ\ßHŒu-kâ ŠjÜýkí§jÀ(©!Åìº[¸F„d±Ž¤º«!^èñÍkr*[Ÿ1Å+ÈMK} æÕ^ÒœyÑ}¯¢_´Áõ(žLWñ¬"”}¡ p9X”͆ 4·©S[¨98ÄÞ3ÌAŠÅ›³Ša¡õ á¼ø¤ óyؼjóúåLîÑ>:üÜb=¤"G0µeÚDÂÔ<꛽:ÖìŸY@܉RƽuàO”E—¦©ÂñaTÃ¤ÏØ±pÔ”`ðâ{†ƒ#´Blóm–!éƒaã‚-•`ca}êžV¨hJÂIÁtÔì1þÅÉi&ã>ÍéØVB…ÿêó€ŒC÷-æ!¤;«ãp}Õ·lÙÉÙA²¬s†RœÅ™dì ·AÁ¡³2í§Ippð¬×<Õë€)¸´ÙÊ€xJäÕL«&ÁÛ‚p'\°ÿ„ Ø3¸üŇwY€³ mÙ‘7ÎÚfï1[ú[gÖ.˜Cš„[ç·4tWT¸ ¹êr̦qXï2BÖð¹C q2Œ®Üï6à´ºË÷g¶Ì"j“an5£½î)œÏ£§3“Ž'R2QŸ´©Û˜­(›xvà ”Ñ&VáìRÜØ!cvï/_œô(R0u#Éjz¡³H&nÕ¤\|YK1c†˜þ=ØQðL¼á.6Å‹îÞÆ†¿²ÃÅÝÇXúç_ Ü梁} Ò#‚îL‘k7ozÌoÔÆAØÑ8Á¾‚Åë¿ÿ“õæYsf -‘u‚Ƹ!íÌÅî͈'-0ÓžICµŒ¡Ðƒ¯ ÷5¤S…‚y>Ƭ+ásÿÒw“¤x×S¤¿„î¦èx²¶ôôÃ~-ãY΄¤&·n¾ wßÃn÷Ë=ôÙ¤Öçè€-•檎•s»_Z»ŽBè;†%ÓTæ1.ê¦Ò"±²½ù³JŠw#EÐØ=óÉËñ}_v,T÷| kÃ#×ÄŸCÉ Ž±¸•µ_ÍÒ¬éòaßJR¹Hä1Üè&6É1;´î£Ÿæk^Iä~©Þ…s¸e1kx]î£þiQ ¸¯E!PÁ'|Ô-H¢ÔÜ»ëHHN{G̱š‘t•UŒº"Р6f‰Î!Ÿ•øûµhü#aOLåt?ý,Ø$à†U®S»ýµü* –Ú“™ ­ ÐPýœ'4s²/J¹ü¡®b·¼Fî:ûHGŸ¼13¾fÅ\úëy >¢Ä$ê‚4¯yHˆ0å^/N¹?êË"öáÑÎR¾·”{Iº2ЙµB5*JblKG³w ñk“4,0‰ì²‘Œ½5“ëO!ƒ’çõ§® Wçxxòx_pNØÙþáØs™s0pòDìGŸ{åPÒý2 ;l•Ö—„–oo;Á·f'býÁ?©=ƧVÍÅñ^[rЖ¸sÆiK¢üz€ß/½rJ«c>&z³íW:U@6NngÝR?À˜¼€Š­ دû¡F‹„ýOÍÎVo/¯öÏð\G×þ¬ÑQVè!juÙ[c:NÕŋәÎç0¶nyXÁ*ð ÄáŒ7QÎ碳îžÓWmÉ›¶Ä½á:”Gó—Q¡wä&‡ØWeþ0\Ε´ç~CO èçÎÖpˆ[§ùôç ßÅåšõë+v”U÷uSƒ SR²b,®ÜÕGww•ÀÜÎcìÜù£ø8û¦(ӪʬìU_ôK_ô®/úб>ÉËÏù-Û¨tQ’,^—T‚Mxÿi^#SGpç—jOC); ýFw« ¨XUYghijåuOܧ–îg<‚˜'è:hÂIZ³lÚšug’yBr »¬p6.lô´\lÆ¡x ¶±˜ZÍmÈÂ#oͤ¬ÛŽk[±aÈn‚çÎÐŽm9„ðˆ70IN—í ‰¼­ÛŒ¾UeÕV[á‡4dÓp`Ø´ÙpÍ` ¾B¤ÔÀÿ¦Û­OîwRP47cR¦[ï=ÒÌ’}æøºИÁΊÖç­XÔl”f$'Íf 🖀Ík¶ ®~› XºZ=íÄä¾É[uB³Ù”ÂñvË%XÆ[è àÂŽ`[~‹ÎQ ‘¬½DeEñOŸã#7@-—ä¸bòœ&ÏÊ‹k¡Ê'âù´“›“Õa„´àå•àˆ²ÑÓ4Oã‚ÅN`X8oʼn%ˆ›™´A) trô)ëaªÏ­œqöµÖcÍÒ,™ã«cØeñóÙUäãÏÅËú;«ÞÁ‘|MÏŽ¤’‰[p-bàLž-±ÓuxʇFͲ¤»gªòÀc'ØÔê´a(2r꜇#Åò/ê9öTC«·/1ñC½ñ2ÏÖ-ó︰=0äoÀA$:U~J"žâµ<9pPÄ–M'Èæžøœ`½åIÖÆÌ1$_ý׸ˆTØA+ú·Ù/ƒ ^®ž—a.KØVþ–ض)²®¾‹ñâö-œØÿ8ÛÚxmxó½­c´Øð5-èÚÓ¡;‚T>“zèÈð©=éÔe[íM…ŒØ‚šÒéñ:wÌ JÜ(_à(ÀÖ'pˆÑWL©à'w©{ª»·ï ÇMYÒ‡¿_ã°´©Ier/gÝÐ>tÊî tATÕÞ£5Sׯ¡-)Ó@H+SkNÁ*DéW ,J}BqH¨P¾±êBn ƒ$¡5ˆ0Ü& JpfyqDº¹ÈKÆR©ß<Ò<Û‰MûYeêŠ}ñ´Ò=.ˆ^v>0d[—I"Ã.·*ÎçIˆŠ‚_{(ÿ£Z!õûëŒ/p³–ñ+ïo/Øç·¹g(£(©o:E£+?XʃÆS«dL}Øk£ pÝâíÓM“j„Xm,B 2G•(óɕʉ­vëºÇA¨ý§‘gÔøqFt^Òµ+~[£4NSÍN}7,Á ¸HØk#SBû÷Ññåh)5•ÊÚ§/xWÏ2÷›?«¾âBŽ~•|¨ÁËÑ/&GŠr,“1v4ÉŒßÒHÜa²}'¾ vÆ  ×ÎaI–Ô¸ŽËÿÜô•[‹á-n4§|2Â?t†yCYµ`C5øH ‡’Ïå Ó %{céÑ85Tq¼üÚÅ]ïÁª8FÁæ.C ’´€£Áî¿'%¯Yß–U`F†Ùg/ 4Øèf°û–Žäj%„DH° Ôñjëdz „Ï*ó¥CßÅœšÌ”.tÚÄa°ãƒCx 4$ÇWŒ«Að‰Ð‰òïA1hˆVVð ýãnÈþìÍ3p¦N6ù‹9\Ó’“ÆU­î\—yìà~å+ÉÏiÂ|Ô7†QȈîñÎÍm$à8kœñã½ê;ÙsóŒÐ çú¹J¿·Ç¿“Uú­ÜdŒ ¹¦ÅeëpÁ±öÓÎ,aìâmò½ˆõíß©ÆMMʲ;O–ølŒËRÝs\Àá ãPŠU‚Ϩ͚Íôœá‚µa Ótž¤ðôó‰fJïjî3‚ËøPWDá †Â¡°Bâhi™‡:Gâ«#E¸ƒ )(6¶›MÆ BA¨¼”?жjJ(ßä,$Ô}›ì6œAŽ®¬°¹” ]xSÁj#ë¹@°f³NÖ$ÊXÜa‚X¡¶üÔ¡.rr'EØ—An5šsƒk¼E(¶ÃÛxðk§0l™Õ”²,ë¢ Ä{£þ}-]}É2ÂûpÐþ6»€gŠm[!/ÊÁZ?ÃMêæ•Vä|~X‡m’õQ‘¦pËf ÔäINIÒ\êòk4¦ô]ÀN’$TûÙq'Mƒm|mp뻑º ’a£}]ØQçR†š²ìГ±R絩¤ŸT5ç·àrßiŒê=BkúSmž?”rl-dú5Žj¨¢úšF,w?úŠºXb¢*D÷5±y¦öãæGl ŒgK±ªU ýQ œÄ‘ÃÔê©_+¸m‰Mø’Ä7+aÑ2Á ?Ô‚{i!Y±èÖ$[jq¤Î½¨ÎsÐe[)›/Œ³…x4£š’Ì!¢(Cå‘ï9ÝððqÁÕAë¥ û]Þ‰Œøàl¡ÙY¼éûÏA*ÖAZc=^êûªÊì±3À±b/¼©õqSçwQË;ÇFø?tÝð§5¬ ¼Ô£´>ˆYáhd)åÙø¿`ö?<‚³¥nVx¶ë·ç»  6@°¶¬,ÓˆP­MyW~´”¿ZÊ=Ô¨[Þ|ëTZëò®|o)÷àÈÎ%Úpe]¹bãï²ä¤=©p a\ANÚ¨5=Y-$n~qJf ,mPV†´eH¶¼¤ìÝûÊ þêÂ4’¡“Ìv©•NBù|–è  ¿Ä |àžïngìHŒŽ cºì—L’ñL Ã1›¯l3øá#q°)Ò(´5†¬–ðÉ\:pVÅÝycZ=è瓲-Ê%mNç2ZbÏ!FmGæ*ËÁ òð²Lâm¾ Ÿ:º4u˜=Öxs:§þô–÷TqÝš8rŒøM¢¾¦k3Ÿ½:¯v18Í»E1ÜŒd½”@a×̈ä Q€I,n‹æ¼Ž÷ŸÖç.†®†ŸÓ3üu“`¥§¢î‡K«Ër÷iŸ£BÆŠ|pªW-ŽÇUBžðx懨nOýËû´ûàÇɪfdMPT¶/ ¨,1 ÆŒÝa%w sI¢oà˜ÀÒ|AJŠ ÅW¶:½|ì>•'bu'‰z߆P£ú+ÊÑÑPîάÔ^íä¥ÇC^]<–¤¼º„\TNÆ­ñ12Q‰« v>-ï+é:²"%åN‘Í|ZUâÀ¨njŒ=\òú*ÈŸ–rŽg«KxŸnyáH(J’ì}Ú¡B@GcŽY¢ïš„v‚Ï¡ô‰Sª¢Ähc­–'\³ÒIJ7¾ùˆ‡FÇý¾dÊQVÆWê³ „|̇Á(žÃ³')Pƒ—ay{„€ƒ—ÐùwËÍƒÇ Òm˜öy„8jHòp1-¶É4Û{|cä?ͪ2Pxá}xQ‡Ü³8œÃ)§'NÙÜ9D{Ýn=¸ÏrV¥b­(wÖ^•t~½Åëx~`Q)hG“âu§ÍØÇK]7€A‘8&nY­Æ<¼sù©ùiàë¶“·¥Íè Ù¼yh.’Ür²ëÿÌQaa­ÿ€ï~b½k¡~ãF7¤º_]T\ÖO¥£ã’¡<9BÖI‚wm42ËpÜ$æ(a¢½ ‘G'òjì댸^–,eVÖ'¦˜'úI?Ì"óتT|)KȶzãgXÉÞcYz¿V'lƒ~&`Œ#õè W c¾V•,“¦®hK¦7>VµOþƒÈ[nlÊ´Ë秉kR5³ˆÕHq"þ˜lØ‹ÌË+GÚ²lQj)Â=IÞÅü‹ÍœIaU=5Ìt$¥ÅßL-•¬¾Ó¡Î9+¿¦RÁžË>wýã{5µqn ÓÊ8æ†J : &æNØÖßÖb&Òè•í¿ùUb8}¤(ÿë2~·pl‹«ØOpôã¦ážÂnú‚<°ª/ÿíO‡ïY0µã÷½BLs ª¥iðïOPñ¸!övÝÒ£o!x[@r=ðÒ2MIßLéÐ!üñ=§û±áû"÷Û.žl Z˜o7þ¹ñÊög,K—ÍEðk x,ËÖ™„bd‡ºœ¢Ý…æücšØ“@vïAO>³¹»Ìè—i~Í¢˜þ]•Õqü7ͧå οÉ/çAWw'ä#®Ò7Ƭ ’kU–ÙwŽäžßÚôÊHÂë­“~Ìå^cÊ8üØ¿i°ÓælÏÓÆÒYù>%èæ­5ÉëÊg|U³‚vX×éÞçå±»¼}J Hr”bÅOŸ5®–ãˆÁ0•áÓÅeÈ_s뉇Á -T–TžÙC¬;ꉮ™—ûË A++,-Àæ´ÿæèþé–tR±ªòäӑ΃¤¾¼ü…ëW=:®8ý%Õa ³‰_£¯•Ó&ñ ÇLþB¢š¹±«dðbXÄ`'ÔT@zØmð ß S éký¯‚hÓû‘ŽSFŠ+N ø•­~È,ÎÉI»\@¡O±}åŸÞ=k¼ûsÐËËàL…ÿüóa*6F¨xøÇò“U+H /ôH/Œ~ŠGß'U¡g$ù´)FÛDs퀆Xœ< õx!²}Œ:h„î;°<+ˆ meŒòlQÍua‚V$¡¾ˆˆ•›m÷QRÂÖ°+&oòÕKg&aÇódye’n×YŒÏغͶ®áå·*Ô縀P¡²2 Äßç$˜t¿iˆPµ+‡X*ÁÀ¸‹ªØéþó„â+f+ÏÊ]G‰-¼ÛîótÑŽÆûàÒÙ02‡%È“xIuMÃ6˜4gç°˜p“HûÕ#\>1²2Hð‰Œ½‡W|³‰=è‚o©ò/·¥¹¶dåz«®Ù±9ë6×ÿÃ(¸—Wcv,P¸u j~1rI®BŠæPR¶­6R vû¨1?RBãóÉ7îô:ÃŒß뛆í}€¿ :û}÷é~)¢¸#VA:+tر4Ži-›B^ÐslÀµp}B‰ÉŸVáD {Ä8—Ew¤¦ âÞ—çì%¸ü„oÿY{‰A›@© CjÜÐädóOïé|îéd§ëEV7áv:Ÿ8?á$Á‰Û<è<Š*¬6Ð!°àÖ×· Bº‘)cɉó†ë&B4&$Bu^¶AƤ-öÁÀ (Îñ‡kç‰àõotAÖñ¸àµ™wÔ|‚ô¹ ÿx#à‹LæàµÜVúö}…ó`XMÏ oÏ >?˜ðà¹ìéNuÞámÁÎfôÉ~ß®·yj©=&HÊo@»'˜¿Ùlé8‰ŸTÑu+óhù£l²èø²´‹§›óáž·Úy%¨PÅVxž`8¾Ò6—œ6_ fBhS “â\†i8) Ëj,žÑ—÷d@¼pH5þÓ’šÓЀ°«o™8Ó Ž±&üÁÚ—aD͈*k¹ó|Z"{‡¤§„Sxˆ¤*Õ­†•‡Q•ñLDf‹¢ÆaçSÃéæTº[!Ú0U·ÌßhLpÁ/ÔQ·™ô.ñ0^—"&gê× ¬‚o'Ãzª:Àñ Ä„©}¥¯=¥OMQQúq‘•ü8µÄIK¼ð«˜§‚Ðy$tåS¨ªiÅoåµññG$>¸ ¦^N(õAƒ[C¦–îÑààmùi»««vŒô¢p7õKËX)îxʬÏ+Ai{‚ÿzEŸV]ªjjÛêù-ClF황»ÞF¦{·ú±ämx„(ZaU6«¥ú„´¼PªÓzVéÆÂˆ]S¼ÅÃÅŸšý¯GtmA¯i¸v¥ªQ|=„tyà€Ÿ[d*»{¢¶¹°ÚÒ¶ÈàåÈ ŽÆØ ùÌgT¥µÆ(ó¼Fuq7\­Ö$§«ÃŒ9Äß6º‰Ž„ØÆUÛÂõ¡Ýê\¦‹ôÈS1ÔÑM§Žà°ô å÷”~˜¢ŠòèyÔBJÏs¯þìêè@˸<:º¿:¥Îî=K8ò§W”²Ø1Pœ…k—:H¡Ä8q—žÏqo&‹ `÷ØäG²‚ ó4'”ê&mQ؆¨éÎÂ/÷¹óêÊÑÝ},„0…ˆ˜ÒByì!OEƒJž÷8%¦•²‚‡¤&7/{ءΧôL26„©Â‹-ŸÏ`ZUÍŸ7=bÊñ˦k'£×€w¿þç5¼xTUûñà5|tÞ¶j; ”_x*渹” ¿Í>}*|¥¸1VP>ÅU_„fhÝ”]eX¥; ÜI°ïå¨`ÿÉyò-ûKŒ —¼êG {!+õù|Í4Ž­J~{¸®>s¤¬.°áÍEÛ(4´¢ÎŽæÛR p 鞊fÚ”ÝÐëì¸|iÑ6™Ï• J?mL;êWÉÂT„þ+Ú» >‹*Ôè r–ísK¾Ä“+ï.bíuF@é”’dë0ïšÕûàÐSÙ×,ô Šu—˜Pä<†„ó²ØMç”ìHýäli’(ÎW‚>‚ˆý¬8¼®Ä_xo0:( îI6‰v/8ˆàþå]uTŸùô]Þ&ÕE ¡"ÖMÀ‰²"KFMI(ÈP0Bª0·Õ ‰bú8,X dã³&L{ú»Tǧ¥†ºD†Ô S°†•üÛ‡Ð_Ê:Eù;ViƒÒ@rò#;Xg×€ vø²k—cÁê{µ1<ŸšÃ‚1x¬\˜þ¡vuÖxR{áõé“Õ'4#|Ú\×NÁL‚ Ì•ÁlÐÉ9Ú讓 [Ùª@1¶×ÂQýÑ®9òÙ˜Èã+†Àìˆ,ùè6ûÃk˜ÁÑc’ê{ÎÐ=ö&š@(1]+!Ãòk¬JÅd>Ú<ƒg§ ‘_1®†O"ù÷Ñ'LÁ#T•ûlÜÌUG±{&ò»&›cq°ËUçZ¾¿íöIþ;Ù8èz`ToÕ-ìûn´Ü¨¸U«æ—¥)Tr=:¿,åéÄ"Úu  Ë:…)ðF(ë†ÇÔMZÁŠ&Šë0G¢1f€ùë<–Flk WCêºí»-øÇ—¯<ÁâFÏ!Fð÷úI¯Cæcá‘O‡%ŠÁ ƒ„—«­Q¨«… 0®Êø²ýX8gøNö'ÀàÓb.>ßi&§ä»zR‚ÐT¸Æ“ƒc§¨¬=ŸøS¸J[ vö£žù~Õ²FñƒÔa‚u,iÂKÆÔŒjõë¬Ó ðuŒ“æl>íN*Üi®¹Y ªÏ–›öw*#^—üÏß5¶:ÓóaJo·žUó÷L2¼)§0¶íaDƒÀÕïµ6‡¼ÔÈè}Þš8ùRKį4!±;·Ó^˜5Ÿ¾™ãúÅÓëËÁd|îæ€lôèÐñ=šøNÕõ_‡ú³ˆZPjÒ,)œ;šQÏÅØèW}“7爞n*sQÿþ4†•|  4MÆõé!Dgî俬õ—×GúåùQÉ@™ÞUL_Ò91Ô¢`ŸÉ\xþÁÿÒht VônýÊïÁ¢’©…{÷ïî —Þw•¿Øj“acÄqÆÄÍ{ ú„¥ âI}˜¶9Ò·mI¤îäôóÅÝ´¯áõÉ8ï`ɨ¶ç'ì«ðé§þHëzøSdAö‡‰Sý¤g5Œ€7`cTn ]ñÑ‹×ÑslWìÝ ›÷Ø8z£g‡£,ƒ8$ΫÐÿüìӇ㗌°L±/Šq©†?Ùilô¹ËÌŸêñ´á@Å[»^æyæ¤ÜK¦ªž=?wíÚ¾ÔvYU½~ú~ùªrô9—Âýßÿý?ÿëî€Îx@þö¯Ï<èêèÖ–$BÅCZvMè©Z,’"§o9tÊÙ ~ÝØ—Ž«êçãYá{Œ³ÿVË“èLj|"!l=¬fÈ õXsîP¯òWŽÍBe‰ƒ¥§g¯Ë>Œ7÷æRvO™Õ!/ãk~çWð^½þ=ù{5Íæ¼.`œÙOîO|ÏeS>@Áü/‰´½4£yî–É)Þ.IɧÿÐhéåù¯~™uÏY–ÕÔ!oºçª1,Éé³âG“%ü¸pÇõSô†]U´":Kô¯ô×¢Ñ\¥¾[›x4=üK››à~\ ññ{´ïŽÙhEŠôÙÇBýGWz!¢ïP«qæVØs¬M"§hå}8éùA†ù}u$Ç)ñçl­*¯';ëU’SO¹>Xg'¼<ê5˜6á¢SȦ/"dñ“¶ƒ%à{ùï,éä¿´”“oZÂgÉ(¯ëä¡DÒˆ›ïX*»8CÉ#Ä´ìÛÒ¹†Šn66Ó«íXçÈå$NðµYq™à„)Êm^„¾à¬‚¼>!!Ùò&c‡Þ@ñ‰­À)± ERœ!™£ì¬sÐÆM±CØ©±›º¤޹“s~ÈC‚Œ(¢S6pÁT{-PrÃm%|cÂIÂB¢.<ƒ·‘듘6(úÀ 6*.NhèõòÇÿüÃÚ°ó²î’ո͓u—gì‰Ó˜m½;¢ ¹KXÇäM¼BÊþd”Ž‘Ö U€aŸî`ïÂŽÒodËZß7¼{ŽK/›„«ßŒIbG׆ Ïg¡¨*ÙÙ­úéÚÓ¼:Ðx-£ZË»_€4Wk šë1zu!òoBsu^„»¤g”!Ã:Ìß´,ÄÍ‘MäÒ_ò?ÍÁsu—Õ6Xv92ÏGõ9· T÷“*ã¬m}%ÌõÊéÇXÓ÷Ñ>>|šåýi¦5¸:¡B9YN€ãýñã5:X¶€*Èá Sçäæ4üUÒF„œÖ¯0S÷}LÔ€˜yjK\u®'›U—ûpH#tñX—g#F;m‰û8ŽQµ×Ãèô¬hy8ǘí‡C’×í|”9-W>EÊTáå'40 ¡YŒ ²=g1Ÿ‹&R¹ìŒ Á^柹äl§õøº¹~c†²ƒÔÁuôƒÒe‚ÌFŠopCú¡¯±÷®aY>?ëí>(â<è æÞG¼’µëцSÿiŒ ›«&îI,Sþé{¦ Ðä6LQë4ª'S]•"­³©ÊPŸÚ £ì…·mÞêžâh¡€¯/q\½WÇË*ú×qýœøÄ¼èáŒ$±JïB/‰ €×[ò¨K‡öÌÙoAwÀ® öº<ª…V¯¹°ÓT5I/[¼ö IuM㺤ԖŽK“‚6àX¿nóÙ•¬–|gP„ïMÖÂÉËVEþ¡n„Ù¿R÷ÆÅ¡Æ©þÀ’"¿ÿA?lŸ¢“#G×Ù“2âç²!Ds“ƒÎ²˜™"oRÔ ‰Ò¦ÓEDRlùñ†sˆþ´°eY,I!–V6rÓ¬ ð8Cyñ†;ƒ rƒÌßÝAƒ§ÕµrR·AqC+¥LuèaŸ1N ›¡¯L)ŸáÞMHj =ùÖËÛ l|‚œ:ÁØd™¢×¾BTí)#ôBÛœµOx½(´¬i úFb|fçVÌÏtëy¬5RœKÇn*ü§Öé­²ØCu’º›Ïç«‘¥'` ÀáÎKYG×@Á«„åÓQ™A^õÅîc÷S ÎHž£fu$WáŠ[Qôz^Uc6ãYè+<Ý8œ1 ððìÇ287£å·ÀhÔ ÅC’²q¦mÚ¬7kUS×l?cÚ“ç5󤚚’Þ,èõ„j¾±_a¡°æ2×÷ ¢bÓkSVJ‹’iŠñÎ2¿gÔºÆMÉ¢øœF)œl<è¯øöZŽ5@ûûTjƒsBžV\øð5Ç9'e”’Ò±]œšøeîÚm·3õ†S[Ñã²e+­x­e‹ýÁ•Ø÷ËeCÎü00eÊE³{yÿå#BWG×: FuZ0}%Ä À«Ðä—ãa¶(däÜlâ/Xlˆ‹38a#’­èÐÏl ÖÙ}ƒk’=ä§ä)…`‚+oKüD݇)¨‚¹®ÐϱHëYjLºÕ@LÀ´xCø6¯n(Toð-= Ô™I7lyš„ÐiVžPÆ–mž;oM¦«Ð’à­– £ëv’gìè™D7“¾„ 'yˆîðÛø¾r½ÑêÀ¯x4^3Óê(àžWLaÀ ÙÂÖ6Ûž\‘ká§Px5Jü2Ww/ï|s/ko:'÷HÒöˆóbk ã‚ÖÁ1m¸h6O{7fY…7Â5#¤NCÉß 7mÚôÚ4¢a‹ÎqBíW±;{È%ÄôËPŠ0;þ?/Wë[3‰¶Xž›/¦¢±%½(ú‹ `l<ó7˜íik’`òlT.|TZzÊç?~~žÛ3Ê›™S]~Ñ¡ý\¤£Öª¤'8˜ ܵpÃÅ qw d þåxà¶û~ÆÉš}Sá´Dhùñö¶›Ž©u$tJó£ ò2ÁÁÀD:èQZw©ötýöc=‹–²ý.- |6xUæØ¡÷ø`µ¼™eJ+Û¾T=²]&èhöÑd¶‘|P"ET•_º<ýÆq³W|Aùƒ {ÆçeO?|¢¸"?,†§ ÂyYhóm$5¹4ÿƒBÖ_ð¢¿Üå·Ôlß} ݇j126Pkÿ†g}YÙüj"VýÙ+ƒšÕ“rZt†KDû[˜ûº­¼ßðæà%ÛªªÊÉò¨7LnÙTÉIÅ*g¸A9ÞzYÁÒ §ºM†ºŒ2;“ÂòˆÓÑ8»Îg ¨µ äÄ›5g}9&åŒq!÷T ìA‡¿)ÉÛ 5Ý»‰Ïç¬Ék€_µ½Ùû—±áª†2¼šš¿þž†ìb£¨ãgÛs^Œÿ¼Ó¬™r2¯‚‰ãk¤¼/„:1mÏgHe³öÂ¥,“L«NðBÙCñÁ7êÄPG'CÃcl¾ì>—D¿Ò<. ÐÖÞJÐL¼Ø¯L³ †¸7s:ÎúâA¹µŸK{àÝ r¤ÚQÙ|ºO!çCeÊx .ô„©®éD_âÑ=™¤«.ýÉœ8™@˜”Öø*Oƒ zVð« `!]Í–ö€H]×Ë*’Ze2Ê©ý(áb$…–êóé¶ÊuKEåqCT囘yÕ諹Z”Aã~HàôLF˜Žé—kxP#žl]¤6SeeÓefæ*Ä7“Á_¼´Woåý¨h×iûû§šüýË_)Ô=ËK÷ÆÒWc©åKK×A)è™oÍ,uG勾Øl¬Î-Ç Îâú¶Ô£a¹Í²¢¬p‘f¦ÚQÖÐèO‹X‹3g®0¹²½­W$™¶©ÀúÏÁ\ì„e{èµaÕ샗…Lâ쑵i=å稷o„áÿ°¢¯¼(!Y[bèvþ¨ ²¯¬aéÓˆ¶¨²Ûl:Qƒj6r·²]®Û<Ó®ÚÙ*Ë-ÔS¹Îk*œxPSošTÑÏ—÷ôl(wgxÇŸ}àCTò¸GËøJ5ÖrO=4˜lG¿?ÈÜSÖ†¨ì< nÊ™?°$qîlA^ßêë§í¡wVb>mDùƒþɬTUêBÅh˜{4ÑéÊ(AE+bSuoy=Ø(ë;<*iß|Úî|ò¼,¢ÃËA«ÎÍÈöv2÷îauR\2½¿~Xe˜î]ýä¨Ib—¡#ÚÛˆ¼xÚd~5¸Íæ¹-T6ƺåþÓÃGÖ9.¨ã!SU=¶[AtÍ'»½®ö¢—Z³„[ç ?Á:Åé†/tïåÛÉvΚhþš¥u$Û4ùmÿe†+ ¾À“‰î"Cï~34ü]°AGáVÃÞd܃%?C¦ýˆîgeNÿkî(Ó4›ø¾5–èVÐ[âƒR ÕTRØ­<ÇgbµµÄŸâ\ÌŠ±$1O7Yæ'™(5FÉ«¶ë Ô&© që1]§›¦§C–NJa¿tKc)Ÿ¸9}¹˜û‚e<‡èÚ²¶çª=ªz†˜Ä\s°½XOH5}$hœ›ý(PV‚ ½>3_G"³í svNò¸Ý–5‚Ù8ʳr^Õ˜v3XŸº[ã ru 1¢þÌöU`åIÉó@÷TS/w^Æ×µ/£ø´wÏK ÄqNû7˜7 äu(ƒïqGŠ÷4šŸ4"»w@ži›—gG}‘‹²¼Š>Òv£°ˆ£•âÕÂäÃR¾Ô¹PˆÐeÒŠŒgLé÷¹ ¦¸ÖØà>Ÿ|Þ4 U4ÊñÛ“ Ô¿ì©nt°.á f'Nñù ¶r°·ü4søe.vþÔ1ª<©µŒiÙÉáåàhŒöl õ…*VÀÊ묎M¼7‹«åp8&e½DòéF^#”)ÅäJÂIbý÷h®±Ãec®-¾”¦Íþeú.Õ™HŒÊm3ö*«#0*«‘sŸÌ AáÌ—ÞCëÌx0Se+ŠÇ\£4þý©Õ„æíçÕ3R\Ck‚±þ³ç=Yr‡ ŸŒ«`gß×…omý3aÃáVD;÷»Ž¾n_QOeze—-`ÊÖ,0šÐ ᢫:zç|ZÅå|ráA²uƒŒÇb³ó!ùyVß…KQµÍ:>€à©Š×ñ©b.¿K—o¸h‚6w—fÞW5ònáP¥oú"‘¹9(L‹üIÿ¸©éƒSÉ×'\—tü¥™å><‘"õ™j×~Qì¾$:XV¯´½ázt!Å»º^ÔEáqïFvt#ûéFöËF¦¹4Pž>'•<º‰ÕêO6ÆæYÏ?SªwªÃÎBeºîÓx5Xx3Z¿» ³·y÷ÓîÍ‘î—Ûo T|·Â ºÅW"c î¶¼wàÈ _] Ýj«GP7ŒÎÇ‘ŒÛOrΟf¹Š4@íl¦~IÕµþDÍ;)Üøãî:ýb®î|… œeÚ;%‡%-0™? Ìx”µ8¦>MGâñ­/VŠYÕÉ›øpþu¸œ4|xW°˜lþ–92Ñ”`A&Üï@g,òUi“ö‹$)n⬌¯>“zRO3„´º»å>Æ)û[‹…XÊä,O&æ9¦¼¬ÖÏr³œ% ?*)§6"«~„Ïbв©Óa¹ë»ó5·[:ÄÇ2Âû?sT8Ž÷s-¾è¢å†WÓ: b (ßIœ¦|ÓæOÓÞuÂ÷Œ0—ùÙà4ÛG9¦fß‹•ëÄ×ðövy®]ó(7¾•ù¤§®MÔŽƒ{ä¤Çùt"®Ë¶ú"X*çž').CÚu  Ô>n!Òq•H'vjˆÎ¨®QZ®4@×hÏ”mNìŸóׇL \#¦þØN¹%–uŠ ò·ÓOU²Mz×ÿmhé^A No$ó lK·bÓ ß-‡´’ç c¹ÇJQêŽÞ¤ô@¡W”5I\Uü×´ÖNH=‚ŽŒ*ºËõ[×Q¿Ý12 )\îITˆD² ÷ö ÕB¯’9 Ê!¹½ÉÁ·c„•JPaø,ÓÚ+uå>Ÿ¼«1Ÿè2O|Á9Ľ~8¯ƒ²~ìÍR‚ˆ&Ví˜Ä4ÃFdþ Þ Áx#5#ûð g¥G‡"Ä #•5<>ßÙÇô¨?âC2RzÙ-õÔ–š½?]” Hr'õ¹ .·dŠ€“-:‘øG¸äKãsn[PUÿ«"˜…‚GÛuçSyþMrÖœš–\¤ÿ|ù©µ5‘½iMZFD¿\Œ“œQ#t¢W{m/U$`É IàNÄ3ÿ•†ù]I›¢´Ç›rc î …}8Îü„<¾’)À:Q’ã+Æ•Evἤ£DM+|‘¬üÊó¯b`VfC|å(‘5 ‘,Fp¯~¥´›L»^ãP7ûT2 Åó)³2}°Š—¸¨ìò*kÎÿ†ÿB>¦Z1ÖmÍÂñÊn½ã}áÓxv_õìÆ'Ð jRͯIìK3H~ª¥N!ç…K¯$y寄£ÊÁn4%\ˆ;M 5¿ìpºÆdçÐáŠÔp-9¦q?«å%…ì2]dÜಖã}ÞùlPÀz¯9"2 y©¢ÂR\´ð *1È2k“.0+qï™"FoŽŒÚ|öäaaÕzÌPýEBYÒš}|@Ÿ®9‘ Ëm"R™pÁ•«„`çjæg4¼•äz-G71ì¬WzñмeãïDâ†ç_»÷Bˆ ’›8 ¸W9Ýûj"eív,HŽª¶9ÿZ¯æ¼ß„®Ê+²+†’6¼Þ]$[€âf'¢ï-ëå@¨YÌ!H²‚ì‘¡úªkæÂÑÈÆÎòæ9ètmRéßA„P]cºßG$•Ǫ̀iœnÑT¹¾¾ »Ej.F1¢ûp:07›ì)‚xXçÇz1«8ÚëEuÅÇqB”¿¸.ÁØô‡¶Š%Õã`:nªÅ)ã¡jKl푞MjÉÊVÕªˆ‡5ެ k%™6Ë,õàÕì>¦\B1ß¿¼¾ìÿª>oîU³*±ÁÒWùíjO;Ç3«ê•Uï`Bî ZR”÷¨¤)ÙÆvJ$Å5 Œ±Sõ7DwÇ5ÇhÿÓ¼»t>ñ¯õáˆþ±Ýy- F/såHQ×&Îk}]Ïo+y“Ó¹¾ç~X7ˆFgRç|6™,ÐÇùÞúK6&È(ÁÙ<âÁ¸øcx#Ö|.ÉaÑÁ( 9 ëé§ 0Qf‚Ò¸ªuú0”¹;šèŒ,*A8/ טº˜‡­v†Óå¡ãE=98èÆ¨ÊÝ¡LÓ[Y³Áª,ýB7­¼ySý\²—ŒsC[_z̽×ߪCí·ÿ’0K7Z/yÔÜ+Œ®àsÇàsâJD…q|±m­‚Ç„å6}<¶‹†§‹yr'{r9“•u®AŽˆ³«zmTžN~ÍèÚ-µHsÛg—È’¯%Ô'§ŸIŠÃËÞK ýwÔІÑ;}"¸~7û )QA½ NH¶¸ë°µñžTÊdVOt. OuŠÃqïÁæRR~<Þ=­BófßP¦‹:ÄQüx.=òóÊòH¿^æ–xˆ]¡«²·fpwwÄqX9ç:I´{ÑFïŠÝ§±i×µ-oIpÔF©éI<Øâ¼Ý{ôÏ“!ɺ+Þ¾þòª}†Ÿ¼Óð~ðø˜´rT6¬ädqH”D>] gåW€mIÀ…õ‹ 2ëðÈʲšßÌ*èr®Xy‡ûíšXuuÊ F>BÛ¥Ó“•0˜¥v~u;ó”³*>ÀLÝ©v½#EŒÑÑÑÙ/ù}kÕ7¢ü½JÎêßKÚóÑA ŸMÁkJ‰:L‘§ytd›îöD’¼¢˜I7Ó»ï­ÌZ¢+Ú&w(7ý°ð¸R¸5Y™îVˆN(ôF¼vƒB倊ÝY}‡ÈIlh³uF}YøÃh@Ó×”˜/LÓ©–…ø\†n¾}C*-w7ì¾Â«Fy÷ì` ɹ*~ú¬mp-¤‹ûO[³m,½’feC~ö{Ê?—åK¹ÇL²3áMޓλΠ.ki Ì/6vpÝ3z‚XA°“7¢p„#Á1Cã5õ#FM| |w•ÎW‘A¥8GUëi|2º=I,åâ8çrA˜Jà¼Ëz‘ÌZ/=G³ôcRw6lv‘£YÃ4>ö¼Æ²^Ô©wÌôbšgÅo]/óÞã(ÅȽO-½’÷»J,¾ŒcÚ\:FO–ä “mNÝNuž¡ë´:+É÷ ª|([ž@å;…_+÷Ȟ컿’‰R/“IQåà]åÍ$‚yåãaC" Ì…•÷2Ú½£ElIµ|SÜZßÏ[µP n¡Ü¸Fì:ø½Cƒõ³¼ÐmUð9ºçA‘T¤IK ù©‚{lÌetÁYÅCBÚySR™æš(5ÿ2»K^¡å>$Êåçžg²Ç_©Lz$ÊŽ]sg[åîòU*„0r°Ü[ ,ÀÎ3›æ¨’îÛW8hL å­¯`Àû_¢eˆGÛŠ!©´í†â•w?ÅÈÃçk•5œZcvn‚œ´$`‚Ù©°ÆáyšÖ`h3%Z!o‘†ClH¢µ ä1^·Z©—¦9¼n8r óÓÆ˜æCk«7P-×sx0²².ÙZ$-Zç>(z‡§=BËrË¢ÑSùhLÈim¸CÛ™[õ\ÁQ2A â©G$&¸ÔÚµ³S¥¦oÁˆ$FÚœ=8²Si£PŽHœͦ-ÈÝ{cÕÒŠÛ6$£j›’õdƒ²,Ä" @ãSK2u(£øGÜÍ?È&Ò! S耀U•¶8Èå§DLp…‹$ àù—Ê­¾Â€ƒrdñÁÁí¥ <ÄQŸ¯ˆV.ìßú·Pòœxº®È¥™ œK…jŠï4ä<±é5XZ¶uwþꤹ¦2N°n„@€9ª`ðžQ›5áïtƒEƽ¯î”­ì«ó×hq*JÝ—ý¿·Ã«vâ… ((<bÅ=ÑÓBà÷t jYÎ?SÜÀ¶¨#@H—µŠœ{„'z‰Žçió7Úõƒ—ú¢ERé° J*_tym`—D¾Øü@cFVäï0â¶—$#ô÷èòÈü7ÎÈZ»Y‹¹㙞+óCdOåñöy>qÃo­Km_>ó£ç©À­Çc%>gï˜kD‹S²Ë’S¦/vµÝ€h®Œ¼¯¶ò)ã ®.c²§Žrt¯ñŸÓfýø‘žEîTùvëØˆÕ6Š/®æØübÂ%¹F†S(u_ ’F7m5³zÆ| ¾ùÆï~Ÿ5¥~R›¾ä 03ðí]œÓ]ÜÎf±p€‹Ø6ú¾Y!ï‰å XßÒô5²fÿü£› ¼Ðù™t\ÅyeäZn]Š«’ÂÙã±Z«å¨çš`r…KË´ìïÁ]ÕÐAÝHf;ñ€In#ï:ë¡ÀkB·Z˜°lç€ ÿu!«Ç‰æ:ÿ‹dIÌOazùoš•§P<èFyµA¼—ÁTò%Ô5Æø˜{ÀÄ鄊kD8÷ µ¡!¾„ÿCÎá°Ú²ÁB›°ˆÎhÒäDV¶ß@]È/çOR~Y‰’~ þÂUÆc˜¹ˆ0fð@—²ü[™œHƒ‘n±‚B¶¹Ó†ëçßp`ÊÎq@Ѫãÿ0¼jA¹›¤>=£ÐÉÁ«Û2=êÏ:®†i¬õ–ÇÝ›‚†t‹#5mÄ*IÿdöYØûylœ¬¿î'-Hºþzá)-^#²€¡ä”GG) ¶ŸË¢%.âÙêÌIëaTvëx­%¥,vÇ»–;/b ßk¹÷Ùka6yâÎPüÏ?š¡Pøîn%›éü‹œ¢^ФŸ`¬SCͲР.ñò< ž¬ûÍB]ψ}íç ù«ÖJ}x]±5„Œ+W[ÞgàÍþòKÛ(}7•Ê|ZÓüŬœûE{¹”ö5GÀð$øžÀ © t–—Wy3A}d•·Ë$o»ª º/†ï9Pãíͨ>ôcŸèKâkÜÖ™9æ@fY’S®¨#ˆ¯^'æØn/‡(&8ŽsžÜ?Ü<0:À˜´Ó†£ji[Á™À„QŸGz–ü„ÆeÅþ†{Ò<$ ùBxµÝ^?B<’ Á×gE<Ö)<ía2Á¦"”5;v»±û:º^û½?¨¾k9ÁJ·ž¬üŠQqCô¨å" ~Ú<šÖ\÷]Øu‚šað“ÉŸ÷ý^ÓºQ4I`0a´|?q”D•)¸»Ä»’{þqðe×ô£&SÄ7ŠŒ¸y]0Û!&¹ó(Ò'1Œˆ£ãˆ°}Ýâš`ÈDõßC¦AEUÅ6™‘¶Ñ\£‘ºä­T/Œ¸R3Iš™ËÅ“…¦% }ÍeééYžMr’I×àh‚;Ã*Cg.ÁšàþØ&x„”ç3‰ñKY+Öã±Vûô=$ˆæ{åµPÜ,×myG°ÒÛh@áÞTXãù(ÎeFÇ.ÎÉ5Œ2=(¼jo(Óu9T1wª pQãd‘¬šƒ(œÊKœg¬°K„ê+;ˆ6¢ui³èœ‡4õeô©¼¯¾`0ñ¥,!ðÉ (½ŒâØr»:¦ ´nvasyèÈç'ðg Ý¯Ö O=Ä‹ÒÎSYî5LpÛ; ˆ>-!­€î9C¹¬½ 5²má)6t/÷›+çãUÆž!À‹â¦Qé/콓“ÊmL77LßfŠp0WìÑð𿼩‰sß ðž´þ¥CoqÏõâèÒæ¨ˆN&„u Wz´QÛÙ«‡Ó…€2¡•hr\·$’1·mL.„,g’éÑ<·›1Eõó|Ó1xÓn–ù_71gkØóÝ«7£ªãn]V«¯ÿ›i4ÜÓù²„Íô8ëä|û¯?¬7©Ý$Z_žvÚä²\×çÇ䎖٠׻OÍâ V³îïDSP§½Ö‰ÍÓg?ã\!²*Ζû+¹€u¼Áöd¥j€O4ÍN6ëúï"§nSèÄÒ˜s‰´Wˆ²Ø«M—$ÛyWÐó¿à*ùý¤¢ã¡ ÉêlºVÖK‡d5)#œŸCÀ€¨’ ’4VvVúj*m.è+ˆŸ\SÖýAN$!l<ÆmÖ´0mPN„5¡ÿá‚O5þê9ýû,YæÂaþ2pÀHHñ-œå 5X'‚°K BåîÛß-«Øþzù¤6з•æhT·qÓÍf¶â-Œ–ü¼Nw^ïÏ]-³¶0P¹®‹ìPÝÝ<ø 4¤ °È4"t«»ñ‰WÚ/©tXRÉÖpÏ« o\ün÷Ý]=›@»L"NÀpÓ ¬[¼dX 'RØÚ×Q¹·R‰Q8-[èõ9zÐã ¶N:÷C¥žl:̓ӇÔ¨öö™j³QŸ6uœW–³–$Ò²ƒRw–MB,6@¡aÖ$Ä©{åÕÎØ©"hÁÕ–]ë׈[Uv«Ê råÓ=úWÊ&õxºh îÝ«“J{àQ­©SÊ*ò§+$˜Í–»Ì2|!§;‹O$êÆã3µ¼{4z‚èÒÖÉNß¼Üç›ÚKPÂ&Lqc¿CV&”B¼¤QÐRª¬ ]QÏÓû–ðf“‘Æå ×ùpµnCeL·ÿ´È«?m˜Î‚óW˜¿–çEN¢›b¬Ì}zÝ:[êÅ'«›ÖÚúæ¡}A^‘½/½†ñ—4Wz7øp ñ!\ÁʲiU t8³ý'9žMR9ç; ;ugÚë¼Á÷޼kµ¯»»Ž•îFšÁŠ„ó²ÉiɼX+iUˆUÛ°íóq*ù3«¥Æ°A/ž(Áë°3^ðÊ$Ç?–)šo“<§˜x­ÐZï¼Ct‰æ¦ÆEÀcâ~>bÄÆµ›—;M`+Zª—"ÊDÓÑ¢Ìñ¨‚Goqòù˜Sß''9^½Å1Ä9q2þà‹qÁc¸­ßt±¦MÑ2³v¥8´;‰²FKt’zÕILj8Ž|y©è)7îБ©ê#߈~0)ŒûWÑóöíÁ:/“–Õ^ÍݯåJË£nNC¡ÇäË(ÉÚj/X½èÜ3–K¨‘è¾YìÀå§ø5¤NÆuß"'ÅNy—å¼È³šÚ«ÂÅçí¯°;ÍXW®áØ#ž8†¿¹[c‚“ñoC+_ú$þœ,¢s̃œ(‚UJÁ'W§yûB7`%b­È£oüôIÔ‘¢Œßhå7YÛ°—è&‚×Ô QZ¤Â—]¶5ÎZ5Bþ-S£r†óÖõº(ÅõÄX;tùUçF “Ž!̼Ýd¹E{í ”º¯çb›ÙôÂÌÉõWîI÷sŒ§õu2óò©f9µX5µûeÏ©ÍMIw¦{šIp©_hºO<ͼJn»š0xšFüòï^>ôyËö–ÏyËöúÊ=yË–ë¬îºm;vÝɇKÓ®;³ÏA€Ooä§11ƒ>å~ÖwPAó=Nî÷ä’6Ê ÇYggÞõk„[µxë.rb¤sE€"÷Å–p@à~Žãèõå—wFÿîCÏ}Ì«M‰ž’Ý¥uÜÕt›ñëø†³š›ÿÞï"ôÕ88¹yìpй¨j“wý¡¯í±Ü"9¼ìÖw£8 <µ„gÖsÛ'¬7U Jtˆ^=: „÷¯09ÅÃ;¹/e¢ ŠÇxÉBKYVÕ1é§Â+ÛÐaiej„Þ¹ÛúmtíŠN5IR¼sÝ„‡*Ž'G HžG‡—·H©qÚ*Y?¶{(NÓ6ôZ'ˆïkšvY©•`0‰ëGÕ”ü½ê!kDGí/t_uê×ýÎph¿Lpƒcñ†0üÇ^þÚ®9b%5¹É'÷¸v½†0uHY6T»½òRŸ>að{ÛY¥# n¤hdåô–fòX_›j—|jË<º´u^dÚ•ªPrˆŠò^å®K”5Õ‚˜Ä½š¾cÅÿ ¹|®C!ѽ9%èYÌ18‰¡:I¦·5éB‹<‡ºíÔ—ŠGl vµœØÃæèéˆ@os½L:Ñ+SÖ^mÝ'¨´=È‹y'Nzl\j¸•½"è^Êêùƒõ”¹E.­1ÕSý4wËO¿fe{=Åê°Î£z®™™à—Î/3ŽlN>Ñ{=¶WÇ<lé’’b¹¿8Ùý8¬J(Û"n#ÃÍsR{}H‚£…À£Ûd…Pz"zŽèí_‘¾Í¢ÜðhD{]‘àDBüZ ñfpåñZ@LÖÒÑ:Ú ¿¾\±†²ÊiY¦¶}à™»lÑ Þð Iìõíä÷¨Ø]Ÿ%§ÜÃb39åáï^õÍX¥´ù âðß#. –æåÖÈ>ÊÌô]¼Ôc=ÅZArÜ ‘Êk$i)X/à[©Ý[cöw…:+8îm3¦Ÿ9Á8þ ü¦&æpÝiÖŸ9Íg!Ž1‹I9˜2¬6rž€:ƒ œ¦0-›'çÑÝòêBèù´ÊºÚ1‘t¡¨Öõâ¢ÁqGaߨ ®;<¯Rš¹Å½Œ Èï±…Ÿw~F ¬‚n±<ûhÚ néÖÃ1gQÿ;½-êqhÏÆ-Yv#‚“¤ƒèß`3˜-m3Áœd 1Ï*iûØ&UÖÒÏ-A üë±{¸SÜ‹&׸mHJÏ}¹´“uJæÑº«¬Û©Ç#ç¤^@Óê)îÒsRâö‚÷LïüŒ7«RÛž¿LyÏ…,Úëï_¡°;Ñ>_—B©¹Ë²hï{ä¡+ß±t¤wR›ÌÇÅ2³¢‹fk0ú(qUE4gúò.> …è­ÙøÔ7Øú^^j`¶pQ²k‰ZuÚ„±„륳|Ó%âÕèK{?¾Å%ÄÊM;ê/EÈ_ÿÛ§ˆiy«ãr0èÁKÑ}ËîèòÄ~IšæÍÔÒÖGwh­îM+•ˆV¦ptóÂòJnÛ+fíàÒ¶YC0*šãaiUyš­.ªŒÏßGU0c§’N³b`ÄFq0–¾Kߌ¥¿Œ¥]¸w{ëçø4œQíèh\UòŽ~¡ò+«ƒ‹®wæ¾D¢ÁëD§qTQ„/ c_:S*qÐ~s(=î>=.ÔD•Ãj™ŽÇÕAõ,=“ÑÀ^õ"ç 5I/èé¾êayÕ£wÕ”Ðf°¼ÚaY5?!t|ÿTFltÝÄëa5D¦Sá(¬@ ÊÒX”®›XÂd °Ô‚ÃÜ{¤Ý‡D±ûR†-ÎX¹³9;gdPóJ3Ö®Ö‡ +w¨«°t{áõFÜ…!†-ŠxíLDô…yà°mñÎ&QµråUl6žõÕùtù tFÏÆ´\¦ãnƒ¿9œlE\ªþø©ëÝl’CC7A hõ™¢Â§ n´w_³zñÐ!û—c´óKÀu"eV¦OÃI!Îl^¹¹Æ’|dòÔ2T ã,‚ôæ-;¤Ø8p.˜×Ðé+i‡OÝ[Ô^ŽºŒ’#š7 …dlºÁûËMŠòj‡¶¬Ã7Ùã Ÿx–*º6O}ŠK6!±Ç}ƒ¨0iŸÝElÕRhÐÝS¯PìãZeeLî5fëà† +EP«–&h·c€Ù eAòmÒäÁ1Kšž‚ƒ¶‚>›Öš¸$²Å8ˆÈ=Ø}“ôéÀBŒvm.<ÎdŠNYár”£ª<ý†üZ@e@öÇOÝ=¢ùp ñXÊå÷g©-ššH6?`|š¢,­I²Ñȼà,ÇuÃñ<ÚÞ×ù¸$Õþsúe”T>§\ó‘ ’WîÔIìÍ‚Žÿ$•cŒ.Û’¯ gŠ|Æs¦›µoÏ ‘·X^ãñ‚Pï5ÉIÃ!æN~#ø+kÚW}‡pŸN)i5ðbd¬JR¬}ºÒ þ8ˬ¡r]þ~ÝhS¡Ññe¯u¤åÜlÓPnPÓYy¼7Z2j|³yö ™u;õÈž,¸é4j+g…×óyoè:(7—®k=ì/úî— G­f^F¿+í­Ø‘Èõ¨âzwÖñh[Nö›ò`ú,‰h[õÉ¢7àqCIøÏܤn“æÐh÷²7ÜÊr÷ïÜUpòª?z£6!¥.¢ìp)²²HW®Âêw}ÉîíÿùÇý±‹Æ±tWŠPü§%” Ëñ^]¯ °ÔßÁ57­ßûµ`(­#ž=`qsÆù«.Ù»(†5Ö¸Š7~iìY…²jþùG»nAqÄFÊ llü ( /Áq†V&º±ŒcÞKžÝá–¤’j¯zaêA½*‰j|™H°La} öå²6&I(°œÜq²ñ cåg6…R~Ê¡BuUƒNmæqıÀµ¼RPSAäFmâY˜N#E†c¯ÑËÁÍ<{‡Z–¡ÎUi‹'2ŽÑÕñ–´FpO /PÚã99´°t^=£Ð¦˜ÏàA]@çðüF9ü"F!Ãܶ€Ç’H·óÒ½±ô`,uVg”é±x¡TDë<"çX—Óˆë7\ë¹ÖùÞPæ!Q ¯åüÌöì+ÃøÌÐt ªæV® J:Ö&EB)†K6%¿–„ëÜ–¶k[ò/u,0þ¶nÍPJµ“ =f€8¦X¼O:*OQìÜx¨äaùt¦üõ_;ûEñA_ln¦OÇqì½ëùSáLiJ-4•×™¶Œoà7ÁÒ7‚fûØqì+ä±}H qþX)JØÖÏ/zv'ÛÈQÅÀ~ïìð‹ÕU^ôQ,‚ýYÑ]B÷Ødü#œKRâê®Å—É⮪S˜‡'Õ\‰•Æ•ÒpTü©SóS’k2šúg6ÉÙ”<ŸÁ”kô;½¥È­ÅœÏj º'¢ÂDåSo³¢fäÌ¢wr®7Ù¨DÈØ|~0£¯5m•¬pÞ~:¶n—óÉkجæÇá%ôÒ·u#ÍÁ†/$Ë[L¿oXÜ7_ùeg]FF,Ì« m-ìöòW§?¤á ôa,õÐ.þúÐBˆ ý-»(3–úsój‹:=Þ¨Ô±Õ‚yµå¿E(U¹|\½â,ûáz=ÇM²g˜¦³[¯< )1³¶ñs®ÍZÀ™n@]—_ÔÕñÞpÙ)‡µx“®Q: Ë\VOü½2.¬h(Ó]Îæ–;‡ÕO©%F(râ„ÿ•Ʊ1"uâsZ6©9ÃÐ=#6nÊ–FümsU¨Ò-Z¡fé‡zðàmg †qª\»y½2+Ûz"ÏrxÒuçÀæ&…`´ëµÛL*—ªª.4ô^&A× ßš°‰V1á[ÜÖÙŠ¥Âœþ ©Âæ©Ã”±îæ§IùUd%JÆÛ„ué–ÚÃHcHµ\Öá;àqo²›ªŒq'<7h nH¾ÁLKð‰ ×ñÜíÊ¡ÀLP ¸’5A€Ja¬ ¬¸FîÚ¹¬Çu™ °M1 ñ=ÛæÂ~#±ûƒÚÒ¾Ïz:Bñ›‘·×èô€Op#\/:7Ci —lÉ·PPÉ–Ù²‚Å“Av[3ÌPòN4¥ÙO, £|åñÊäd†ƒ„%D-B×N-ýz¶X¢=“¡¿8:µ$Kp.äê$=N–ËgÕqC2Õ¯ ±AžØ™;'?1ÕˆçÖðÃO¸p³wHÞðÊǾXˆEeô0ë4zhÇ®žÍÄÞç‘Ø e «=)(fŠ‘‡Í©±Áp¯‡i,c–5o8\ã“$†G瀛ûSJs`bÈ 7¡YݶŘ®Ê:‚Õ|HƒÙÙ%Ž D?Su»3 ª*þ·’n5SnæD1¥îM–|¬Œ‡ ¶}®Ì=˜°±M 'nìB(qž :¥v†Ýj†>Q—Œ8æÛ_ ¶…[ò>kDṏhÆbÂÝPMPˆS²^D#Xy%žéa¾ðÉŒYUA›ªfê ²ó i ³gîEEð£°Î©s‡[7ùo1©.Æì> ÛŠº5þÅý9l J]”ÄôÄÝÀ9q§ˆ‡1²PžÑ78+ð$hcÉãÄ”“:¦–\rÑÚ.Y’ÔÎÝIÝÒ3l• WÞzŒñ¯Ÿ¯@|FmÖ„AsÏej‹Ùy3TÏe¸5ürœ³™‘÷sa癪Մ4JÍŠ’^ÌEæUå¨`ÿÉñÈDEPÿXº”ŠÜ<dÀœ±õ‰nu‹»”«#Srµ6à™œÕ…gjŒ­ã““ÕÈÍ#ê'‡[Œ2ÈCQBjnAô`Z:1p \.Ú0w,‰GP• — Zf·“Ò:Jªk€7‰ä>ð½17®¯€ÆÌµ À\Ò×úf¯5qäQ|o(#ÉÊ;­±)2€öز¬Üþ‡¼ wOÒkñMÊkº3õ½ApN®Pø@ÚË“ü0Ïì+·!†½_v`—tÀ>iz]¯àïyöYÓ~šRöNhV÷\ìàüâ>Ï7¯Jæë5\é®ÉêkbdköÉìœüwœšW*ªâ‚®…'¦«ž§ç•øð<vc¢o:^T—W6”¦eGÏ•mõÈŠë”wœW­1ûd©5Iֈbpl˜­geH;%ZÍÊ3w©UAmBÊéO7’à²gh>$¹gUJ¢eµÑlÀý)#¨ehIütFÍ]Y'Ïf¾ˆÜ*Å…ÐZlc²(¡¨±~ Dõ룈&üŒë“=ÔIP¯°Å2Þd'Þ’øäuj€G®P#^]…@¡ä½Î–Ýs%Þ7¦øä¬ùé,¸ÃÚÉ9b:ê_÷.kŒÖqÊΗÚî);-ö¢Ý_ú˜Xƒmvyß4˜Þà[)@‹²HzsØP¢ôäZqQrG#à}ÃS‰)LÆ”h36‘¿1L_™SANmH§•<—ÌIŠH­(!M8 „`£kLX9£ÚÀð²LÆ(¾„7¢uYº½v¼ýIé £ S—u/6–ÎÀ7á Y„£gì(ûx9 Ó5ÎÐ=„c;€©"·†xŸóè|ç·hwã …ƒäN³ ‡! àG ¯$°&œ’VØ~—Ù‘b'2,OÏñ^HîiÅ=1­s&Ú<”ØnBºiaOyd¦uң̷Ñ?B3”Ÿt*›ÈçTëþ94él]×ÀE-’»»|ojó60r½'s“¾N1ûò.²=²ýº§÷uÎî»(¹¯‰/9±Í4ä$T0ÔÍÈ5Àzä‘ÎØ„R¦$1PÍVHYà4›£˜ç 1~|2(aêky?ÄrÆ`Ñ+³ çTÞ·0Ư0®gຎ‹û¥›5ºgªvLMÍ sð a[ã™kÚ„äžûÙ„²,5³+bØ£è¥ýšiF†yV–U°–T¨lò,Í£mÂl²õAÑ6ÈŽ ˜>Ù=MH¾é² X…ÛËOÙ¢âó€# á}cËëýD·š¡bnZ›Ÿ‚¬RüŽ–i&Ú N© nÈn§ÝX Tb@¯Üä?*¯¬àv^i¹—¼aH>×ófqÓ2Œ*»·¢›=z›YR&"”_:n …—H}öîµ[¢* xÈ›è цéx6È+‚ƒ¬_Þ¹Çݰ–~K¶aÚà–8#¬p½¾ÌP!´hÿ¼çžÑ|sŸ› ÚçÉÏí‚)U_Â¥ü–׋럚ÝïQÕ%;»’vY˜²‚ nüÖ6Ï!.É&ÀªTcó1wBû¿ €‰‹/Ç@·ž£_{ǸxºüõŠ1ãÃÞÊV•³^ËØ+Ýš•5ß[Ba='®×¶Â'W½qU‡jGîz7,\õ¾Ïã5f[ Rp^ s~ŠÛ„ o\S´ÝöDÑ9À†”éú”ê¢8ˆñê 4=ßm|9ɼIÎ_ÓÍÜ%ÑüsrW<婉¶àß4gwNœ7ÎIZ—mU’$Àìêá‚`I˜Ðºôœgw5³î cÒÕl/[.5tÅ´bG}ÌCŒ†¶ ö;°pa‚©Ò £@q ™ (?Ic )äì¹âï¼4GYÆ8!°šJD™çiÑcW 1¾jýÕ„ûóà†jûÚÕ†`IرÒ9ºî™à,aÛ׳ÀçÉC´ÂÒÁƒ‘¸„Ãd‹ø 3N&Ð+½¥2œÐÇiým- ! 3ˆ3d—œâ ïLav¥¥iˆhs*›ë°ï- ª£3ÄYp‘u³çìŽÊÚ”zLA¹ž)$T<—¶ ªn=GÚDçåØãõØÝ`ï㛲˜‰ÿ-ébV„•{|'¿ ^¶åá]êˆAã0aB¹Ò<]3qh·á? )A܈šÆã”Ú1¹õvxäòú(ct"E»É©Ýšm”ø¹y|N°Öȸ6±ºUlÚsR¸s äßÂý!RY'Þ{Á‚±aâØ}b:¾¯ð‹ð•ïáÆuŠ3è2ÃZ&„v#i;Ï>¢Ïÿm"¸PÛ çqùE,| “…äÆ@¢î²f½"Ⴤ …C™b`™º•!>ñ­1Fä½…XPoÍæJs’µ|¾‰ ¶6¿ÛˆÃà]ÐÐGC0B…ˆcùåžO˵‰øt%ÆÀ»ÅÊÀ©'H-?e¿EuÙ6[xü°ÿ´ˆHˆñ…aWcû¯x‹^xßï×_ãpÀ*`ÞÏMá8Ph“”Ûe$¤ý2$ìÍÎ}ãh#›yð@6À÷‘; pŸ9Ç =,dÚÕ@bÒˆ¢‚4ä/Þpp=PàØÇQÙÌ>0-“hë˜q‚Kìîöó Ü áãmëqÀ ×ÛpÙ ÝK¹tDþ‹ë2ÿÓ‡=¡Á3\ÞÐžÏ ÙøðÎ'R$ìÔLÃóV³öî:³ö¿.i=þ®:÷þøŸ–bðWÈÁ*Žò} €XÿS‡3‘àœ-qÙ«¹ø§¹X&H’¯Ó Rö{ß4eRWeþãþyÞ<玜h¶£*hóë³ÛD¬q˜ g…8¨7wrnvŸî•Yä(èÒvAÉ\w—GHH¹ûÔõ”ªYjÚËÏc¡ÍAC·<}Óµ:u’Ê.°\+r Ç5Ÿ} Ñøãع«¯ÑëÚÏØ6¦‰îŸÿÃÊ’/VþùIŠªí[ª¬MI'fJâ½Ç(áô:æyuxÙ9õÉk¡ÒðGѪ—¬BTý'ï¸Ø¿¸7_7üEâðò¾ÿ4-ó.P¼ù%§Tßŧ6è#?•Õ|Dò©çqˆ‰¡ºzÈÞ]qŽ&vO3ñhußy¬û@té/a\Ädº½AHñ(ΈãZR€såy“ÊèŒr]³ŠÈcÊrr6øÑΈÈIö6’£åh@ÁàAi‹÷¬‹wv²èá<ºdZo¾§xQæB¹&¡G›ƒ‡8 ÷„SS6Ãð‹}U4ê¹ pí‰uÑ»¶•ÑWÍôB\`vCµ^™Â½©Ð£·ÿæerÔaA¡;Öoº;iX‘¶ÄÁ?À.y/Ö£¥Ë‰DY¹¤]i«ðÊMŽ+šÙ‚ë0« ë£Â½¯²}”cŠUˆ²†¿,°Ùž-«Ì(™zêY·&+·ò1¾³ÉDøŠ•™÷o]-ÍÇ‘uJžcò‡¹JšÝµ!¹«]%úÅT\úB’úŽQ¼½¿}:ˆ¢§)Xo¡¬ÁuÁCÎЈ ãÁZ#Ã)ŠÙ6ùëx¿óî6Õ:Ttgé 1T÷è!\¢£n­í ^µ ^¯‰PžFxÓÔ•âã´ ræ‘×Ñô‹9–<CÆ¡î ,ýÎZ^Ðrë· —1étÿ‡µ)[Z’%ª$‡±õnHq$q‘bÎRPù}“žmžG‡—×ha Kª•‹á(àÍ›O3µÙ°îxÑåW&À„‹}ë¤uLk;šC||Z<–1^C¯ê÷¯f‚¸Ìó²P& —n“YóyZ½MÄx²¹¦.ÎPEä®ï8b§ÕTj¢bÒþÅ Ä»¥<$òt<Ã/ö-¨Ônn¾ÚS3s¸'Zi7¹­<[¼kX"žØwµ'vºñ`0/!G¥MQ–Fâ£æ>˜ñ¯Ï(f5މvÊÏÆîó ÂGGhóØÄx—ØtGN£ûò˜îG3HA½Ï-ã* N.OÕ½Î.]m}³KŽ¡šG7ÖuÃaU7ÌÝðÅ/ju†G–}M±Èp@·7Ÿ®zØ/SᇾÐK†ü>ï#§zîPüæ øfüe.þ0{ÈrþÒÛÎ_Žºº:9ÁùÇvð“T‡ì·Æç´šêÄôÈ2nÓDc¶%1EØáV{MÏ€c^â5]¥íÉò@¯ƒªíXr0>f.{èÒps<-Ž( Ã%ø1N-ôäܶæ$õÜ„0‡½g[+‹£íwœ‡xôü4õ›ôÔr^6É)*O¿qܰ675ÏTL?HĆ7 n…3Æý¿ÿûþ÷ÇšWŒ<ÝâX•vyï:Dz¨šcQ«G#0¹>Ýyh>h‚ÿÑÆ×7®ùësäŸz(¸ºõ„ãUt¹ã¢¡z”wYHz.Vƒ‡Ù¢ÑÿY%gÃRžPv)žÇÊãÊÑù‹ÎñUà¢f޾é(Å]Õ–r³å¿Úk¢$ŠQ–•máº.kï £D1ÿlº/’£Âãûô܉¸P²ñæ®îzÈSö¾š—ôyù]¡E\Nã-­¬µYWƒš n70/‹ƒ± 3b߯$-3-²ðòàY^œ˜(²Ç¸p©Ëر)åR.N‘úò97U$"ŽíLºƒ#ÝrI6òœ‰è)‡ö®èR]®¡`-I!LÏlüÓØÎ·¢fY= Ùbü­{I¦)ÄÒÓ.jˆÿkFé*>[öܹ¬¯æm“xË_£\Îó£} \ÁcË.¿ËSÄj2í²öÑÍuµ×€¶mt¾áŸ³#]ÔÀ¡ò†í! ,ßb°}Â1í›m·;ìÔñï¹ Ê‚Ú\Ðkd+ªáëdü«aí&çG”?غ?Ü)%œðÄNŽî”ÞÍœÔÝnT\Ë4ÐÍéi5hT{Û&1éÁaYT¹)í¢&joÚ$xä§4sšgsò% ›lÚ69ûÊÛ6Ð.iÕ¸ö74‰uàÞ±EÐ׋Ä+¼¹dú lc9“ÔÞ‚žtI F•7ü"LšøX¶(à#JÿÖŒënÝÖw¯.M>^ÖT¡'d3"v`!Ô¦ì÷t šÑ×ܬ¤4‹ïã½+j@ÊûÒ_cÿºçÙaa5còÊVî˵À÷–šcNâ‹ÛíZ «åeÒf–MhJ»ŽÓ†ã²fJ–8çš/:ߦŒkn× j›Œ@NrW:ïvŽjÜckÿaZwÛ|°î¥ñÃ@¬#ÆŽ}È>+¨yh«ù¶È´Ùj)J-sœ“ø¶å®ãÐ,Àܰ'oò5±ÞiLi—´c\{Ó&UrW;¶iD¼¤Q,èîÌFÔ>Üòhÿ²78/t¾ï6Èw_ÈÃÎyØù@–÷_Ÿ£“¿Ñé4ø?<á—÷w…±„Gu‹á§ð>\$’¬ºÚL?+ýuTuõõ1kûŠ®>N6(Ž®ºOTé2§E§jØéó“§ÚSüôY#ÚÈ© Á¿„`ìë:û5퇖å£jÓ;#¨´ÎóÃm®FÌæê‡÷E’7Ô„)IÁÿu¥wÌeiˆ™^R÷±Ú×X:ZÀ›öØ šõöÔ9.byx‘åµ Êö†²aËòüŸ<¤®ö;s(¬¶‡útÕâ A:´£j«WÑ9õž—\ú gççã&K?Ú!a´W(AäŽfÞ+ìWû¨âDꑨŸ¦ ó‘ 5Žr¸|^ÑupæÞâÿMq}–M · ƒåñVŸF}TÆ(Wúå?/ëYUÝ:Áo^Oßý~Í’SöiˆMiZèE»/CRçOÚ¼ö¤X¦.×ÉÜøàjOѬh¯/rgQ°ÅKØ¢ïUÒÈ0P–Àš§ЕÉ)ö”ªT1¬)ðý“y­Í:1™²]é{ 0L26Ü‘g?uÕ «†DGcù¼MôÚ9ßZˆ´¼ ôÍ/‚…¬¤‡¬êß.rudî'«X8û7§«æ+‰¹ž¦þ.}Ô‘yH&ªè%ãåþ}ÔUó•äÍ(‰¡0œ6,„ '^è!/¶æaðyŒ(p#£L8('ŒV8Ö\ßHŒèZäY_9kty%DgüÀ ßL…¿L…]_æÂr”õGäE¦À.FÅ ÑUA'™÷ýÞU¼>ΚdBöï…®§º°ÎØæi'HVGdƒ…ŒMoá•‚-¥üd(Éù„áÖ•mÍ3™,ýŒÁ'G|F­=Ž­vŠ[2! ärî%áÚ`(ÚëGng:Nš>hƒó[¡¯"¾~ÇX€[ƒ—ýë‹Ã,‘ú,æ}5ÃÚÉi¯/!oq±ë'¬|îJdE{E§¬Å¬£›Ë~ghïˆlïDöˉê݉Êïó‰MM¹—ηª…­ãà´…©yzniGëçì -­#Q|·»ž…mÓ›³ ¶ v8o ³ «—iÏèÒs–ó:€y0©7M@ä%H+â_…š4[ÉҬѽ‡f íªKä”Ôsmk+*3­˜t¿f0Œ£4[̼bÐÍXãëdà‚/–Â/ìù“ ¦×¦¬Âœ»"‰¢½ißê™v꣕v`ö”gºA5Túµ¤’ÿç%à1 °ØQ¾óS÷ˆ`©¨òA௧äÕðåYñ/s±)nxGâ5Õ£+~À|Ú9èp©ÓíAŸt7®UÓ?c¸}CÉifÞMÑÖ‡üti§¥e¶ïØÓ9ÎŒU½£”-(Ž!Mé‰ÇZeŒkŒ (+Èùñ#Ô…Ê5} ?ïÕ€-§íÜ×5Nï9…DHÈ çàèhÈe¦¢÷eV´Ÿömt´ÉÃiüåX³öj¡Ç·^\6Œ,ºÞ ƒö¦›T¨ÀYwaºlMÓ 8ÁvÉJ]nºÁ–ç'œ$8Y< Þë WÝX¨ÎãN¥òÜX¦öLEtçî€,ªsFβ¸Õí’˜?åŒéJõxàj;¤+$X{N7 Õ÷±°î´ë †Ó޳`ŠËu¨¬:4»È±`ð„¾ôщIÙYß´wB¹çÆI+ŒcóÅ¥ 1<û2¢–D:;PmvA9Jc´ýݤƒ[ÇŠ+C¾¤ù]p“Ø’—`=Ê¿~6Hò—_·³¸m7¼9¹¦!p s6N:hè9³1‹YYçgïM b»}燅1µaßèɬ³çAìÆ¼Çª§ªgûßqò‹ó7ý_¤Hʯˆâôº÷¹žÕõÐOZrnvükÍŒ›E‰£a•¹·[©kQŒêøB¦î˽[óúË×­™I æ_벛ǥiªñߌßäïª¬Ž“Í&o*Cñ¢ýÎ+…ÔBº$6Ô^R´¿s$÷â°lÛ\ žî¾…E .q+ˆî“гÏÙýS|ÉÞ~£¶¹|J¯¦ëñ*9kÏ4PhÙ‰ûšR¥Q¯v®5ݱÝs·Ïï┕MDJÚÔå^Ý-›ú@ôü˜/)j”2BÊÊôøòöÂ-x4hsÚŸ6ʆÆÇ—Ÿ/G½‘Ò„òÍÎ[Ò½:SZelÙÿ: )H¤ì_ÝIäŒPFÑΙÒg8‰º§¬Œ¯ÔMôÖ&{ ¯ÒÄ­“;Z{/”¯´vYõÑ_Ç4®­J—¶ºWgJ—vøÿ $% ÊÜz£'¶wȈôÕ‡ØÖ-ç8q“•Úå”d¯®„VùÎ[AöêJheK2¶Ã:Bö´6Ô¢DÈ­·¥½ÝÝ«3¥MÆ ì4Ü„”¤v){ÂWwR›œš´%;"·ÆHR{czÂWwR§Æx/6P¦Ae¡nÍï‰í0"}õ!¶uB{q\Š8¡]NIöêJh•ÖÕÎFpJå½·@5ÿZ<çcDÇ=iDnïâ ñ«¹­»oìä—¸.E=±ƒÌ髱MÞ/Äz;íV#ÒWb½QS|¯_6èï˜$[Z•úœ(²ØgÄÒWÑ Q¼Ù,w²K*t½ÐÕÁfº?%6‡UQ rx}6¨,O¿c¯GE8½¿Tós»pü=ú4ÉØš—ø5?ɼ½ùž0@xÙ¿m3P$¸yœp¢ÃÎi˜HÚïúÞ‚ÝáÙ)˜pVAÆ›ÃT ¥äÜr|V¬|IùUd%[ûµ¯ÉèáÍöá9‘‡É4¯ðî‚ún´¥~zʘV9™[[Mÿû˳‹´Žœc"g]ª¯ô½›ŒãÇt6þïÞìÍŸžûáå)öO3¦ö!¯,Ý€B׿RY3“"w¹d­£ ÕôÕ:o®y)úiažç| ;AÛßÜÈ–»¨Î†’ÉÚà±îLa|Ðe'Ö9õ§2Íp̾RC-oeœ2J³ÒæÊ4"´Bù|N¨Ãºæ m N2 ÔFAz²W72O¡+R¡"ÉHµ¶tƒ[Ì´ŸÏOH2ÉT$©TÃËéƒr“•.RÉ ×Ά¥Ê°¿7n.ÿ÷ÿÏÿŠ`¢ó4AûH»Þ$î_ƒ¢Uâ¤Úïµ×…P¶Æ_M€ x÷òª½:bÅ{}ÑA_äÞOª-A¯—Øaè8sðžìH=DNèNí%=ØÎ“¢‚HÿNÁh”qx±H”ËùºÁëØ<¸5:¬»ècÿ(¥ä8Cm_,‹\Oæ¾VuUœ”r•»“OÖ KžÉãå[< Ê+ùVø¦v)Õ‰ wY½¬ß­'ôi_W)díëµm¾5 ïm T>­å56ýœ³-Qò™T¬ ’d>-U¤ïî)úYØ Í™Õ”WÀÄQó­; œ2Ø[”öI;1õÈPëlW¥9ÞïÃu¬AYàœ|Ú›ãþ9ø\ASD[¥x0󭦱ö«.eSsa Ó8F9®‘ovŒ^Qý]-È0Õ‰êñmD &Ëó„xnËðKKOîú—àQ•uã3KxüT©ÁtŒ,Ú ô‰Ž´žÃL9$§‰ïÎ3¾Â—NqXÒœz“€êFøXàZ,É%Û›%þ³ pÖ£9õ $PYwþ ·(¯ˆ¶8góäIÝýð™—l‡õQàE~HÉÁsÍX(ì;ótÿÍ|;-F…±žCUו%mh\“ª™êvpƒ9ÓÚ’í e? eo†2÷)Ädc'’ J½Ðš ›à ¸ó"D#z 2;Ä P·0.³².Øyamèù§ƒŽŽÍ××—–•›¸2=îæò†ëeé¤FÎá Ù¿¹ß[à7Ë1Ö+$¾þóÏÞgÕ\ZïŸކ)Õ“Yˆ"AþQ×v§'À Ñ>z¥äìr‹ Ë_ÝÿÎVåïl¤½®#T%76ÉÊzÒ¥UMrÖª[Žù±)Š©ËpƒzÀÙà)¼XîÆ§´¦aDGߨoTI+fǃþÏ*9ë î¸2‘Ucn¦_+í} Û~ÕÀ=Þü5mÞ¬XÝÊÅù1c‚ P7o„¶(#TÞZóõâFð™ç©çrÐÐSx÷\%OÄ¿i%44P$`Öv¨¬$’¿uC¦Ê¼æÅ 5¨ŽÚ: n²½q´žI 0ŒÖ'nÔE"y¾äàìÖ°ÒÚe+x‘Ó!O×<¯àñÈ)B‰vI4ÊÉ‹Ì4MaTãÁ¸CÚ‡AâO#oŸ‹ê}øW?öd}áÊs·[G¨¿ ·ÙrîÒåWô5I(Œû]èAIà3º²’[g*Ε7”!í‘Õü9*ËýŠÖxQ¤eÓÐƒÏØU6~ íœÝؾӽ»³ÜH!‚¨m˜oik¢õ!eE>½×ÐË­¦flèëªÚÆýã ðYöç|®ëڥ婄‰I½åß ¦pìŠþ ³C¤!B @›î—y|Ó2/˜æš«vŒ $>¸mEËX›®¸¦´sЖ»3k±ö=ÊÌþ¼‚BïAÛ•¿Z)~Ê}Zs>[ ¥{³]£0SpÒÔÍMjeW:n’³å®Zð×¹ÌæNÑ)¡4ó6œë«ø˜ÍÉJzúÁD’zº\ùí…ùî×^¯œÈbó44Î+)§ÏÛûà\ lBfÃÊãÖCÂCº4ž“¹·ïã™0º<ÜÞ³lçvð[IT¡ºiÙ ?³W5¤=âÛ¶øMDû7µ‰@йí#b¿î‰Q¡“=ÇêàÏ}±ú#[¤—µ)dK{²7T™¯¿åe!¤maÔ9b¸º A4'²ƒÆ ¯H.%ë.uæ9®d7zÜë¨{Bë¦fø†U†ЬÙ'9+Ó©àÆ\ä•\ËFqØz YÅüÕ§“¯Õ?-A FµçC®DÚû (Ûʆ²£¡Ìcû£=в"êaOÁ³ÛUä]0É”}:\†ŠÇ¡âÂSЀ]ëÓOûrQKý! ,]¿;,;Wº¹]PšTü^D;P;‚£ÀÒ•ûxd5–Þ@Ršf-ÖNL^ê#J]ů£¦Ñ]—ÓæÔþýÛ°eg¥ð¯ñ¡=£š’ôÒðX»± 9]çåíyAMóôHË—úéOYÅß×7t^=Ðy¨Ö,®<8®Å'±Ì¤ ­Ï Õ‹} #'5CÞq½}²²éNwLãÝÚ!þ<ÝĨ¬ã#‚•àÝ:c–'4ßné+n¤ÿ¦m·§ÉÚ”4:¡¤›Æ^|ªà?.F.ƒoN¿†!ÅÖY/ˆ-Lâ Ï~–wLšù}{IïÏð†˜:¸¶®^ʆVâÙÚ3£ôÑœâìPC– åsiƒèÕø¾Æ œåüÿÙû»íVq¦]>•g¿'þKæœÙ^ûkç=2V ˆ pìý§’ƒ„ DºŸ5¾1îî¾cU]Uú)I¥*M=s5…+Ï͈s¼»; xô°o0¯•ºÁ5¶PK€h¦c¸ÁQ›d'æ„€3DÀš°_"wÃE3ô£ŽYôu¼OŸ—gòë0VÎágV,Ùæã3Y#·7ûÚ(?ÆMh¬ËcØ/x«€‰]Bé5”å-(¤ ¾ÐÔ±Ý@(œ´É^.«z[(Ô,£à1ܳÓõ@åù!™}¬9Üè?'vq¯ZUÁ= f¤hµæŠA~Q!ÄŒyá©ìÙa]U<_š}JŸÑfì '¶‘I*Ç×5K½6’õns µiB/­'”wç™0PŽÖÐÇ~lfÈø·ºLø19¼¨ºý˜¸e=èiŽ˜J¬ÙŠ´{ «Ð-*ÉqkÊ”µ<Åø>#…j4+j+ô}aÒVuï=[A¯?×åŒWFjPïþ™?'² ©ï »9ð¤ÑùéÀ³{º ²«’ÜX´|mré; KPHŽôâêœ}Öô‡¾â¾¿“°QJƒýô¾ hL»8(T[(kâm“èq4ƒ3¸Ñ;¯[”0“d·0gã ºüQu&1Ù½l/;ì Ðctß>wLÆÏ¨(v‡—§Y4]5Ed¾SNÇ®QWÁ1.cãØ×q÷ʘž†Bœ_‡ìÙf u¥<·ðÔV$“ c¯³ÛëX-+I§;œ6ß'è`Bù5ؼü…7˜^ÿȪÄ9 ‚_1 NtÛù5Ø¢j°ÅÖ`ëXƒ]°™[ƒeièÔ-Ð_':„AÌJUÇ0ØŸ$›Ö‰ß’'æUiȦë!¡Æ–êp³ ~ äÌS¹Þ–k»6 ôLÜ’s÷'€\0IŠš"{âpËbœš]%QIÉÆùDÖù«ìâ“âL{‹úþ|­ªyÛ¿;Vi´o±6JË5êï>¯³ #˜C³jõLË¡]U ±0s?ä~GÖjÙV}AƒÊ)Yä²Nó”ˆIü‰u5Gê|¢× 6ÁÞèÛ S„x»ŸÒž´w‡9Â(ënN—[jþÌÁ«3½™m]>ùisüËÃ×Rjiœ&ëž`8¦Ð‚‘÷aòÐy樻—Öt`LÐÙ£™½¨Xª­€'–Ê;ûÐoxÞüÜwš§3c“÷ô6g„;‰åm]jFßÒ|¸Æ `^PÁØmjk¢@}é<]\Ú±G9S‚­»ÈA¹ܯ<ú>Ugx §tQV&EœžÐy¥8-*¶TSd´û-][•á±Zs/î!ãFwsØA~ã|ú¨ãä'èi ©âäô?Þi;ÄèÄÓ OÌí-Õ:!DŸµ±gÊœí"%îÇyì §ÚN-÷ ¿…ùÝ¿Ìr¾Eµ¡rC3Ÿõµ¨³î:|ævë ÀýxhÀi8¬)xl6Ž1Ñ uUvLR’‹E.d¦ õðýždÜo7_NC´ƒ¢¤UuSN7.æšyÏÓ½×’ŸÔع«1ãTm©fÎu­ô”šÂ6 —ªçÕÔy€žë›ÛÇ v¾Oâúà¾G]{æ6ñîF9I¦Ö÷#óÆí\FëöévÁÁü#Òü[áÒxôŽ·•Y±çT&ëi6u;¦¥“A7[§&‘óÎ=†Ê·qõ"E˜Þ»˜þÐᙚÓ6ûŒ ¿±^ïë¹ÕŒ0±Olnžég6ƒÍЂcUÏ-§ÑyþYÚ3ÌvP¬(œH0-Ùh†e™!dβâÜÀÕ-­æ )¸ä‘~…Þàtœï“à˜Íð8½Ë¹SÚÀÍ-©Jqb Û–ÿ±—[K1ÚK’À‡´IT‡…ŒÛ”îHŒ(¼Ø¿m…6Ó Ê½ÝkI)pÈê|KËu ¾oô°ÒX" ¼¾[#‚µ¤êÐÑ»97l©—½žìŠ˜æñlC(¡´ÓbÊ”ÕhxõëbY=4wM¢­Ï½a­Ò«»N‘’z¢†=›$ ÊØ…§G%'¨éçÑ–(£üzkGCI_CÄŽ5âÔ‰Ù5¥¼i0Ö‘¬iF i#ÿݧ¥!•{Õ¶×NÕ€þFôHÛ, ÷+ë˜V4Òã`VL@Ý.~ÚC™qÚ1¬žÏV¦¨°O@îY|uî1-úLïFe)¢ó6ô0¶šçÅà‡¡“eÿrŠß@$M.› ÷@ŠÕ’G$KçqÙZeâÒÐMT»‡û¿ž¡’Gu)O¶šEÔ>Ù_qèÙÏqK*…œH.­“?ÚÏ×fiM¨‰HšÒ¤änÄîQÓk_J7lOÍí¬Xê¿fð"¶’"NŠž¸NmEn2Ö¦ì_³£rn}à ë QŸf™e:@ª8ûœædº’Õt+ßIQõPl»©žÐQÍ_ÖLK˜YO7qK´w!:¸M«ŽÒãÊ>À]Òj5³¯¨=\oL³¡ñ#Š¡GEsuˆ8Hå®~±“í§-€–iÄ0ˆ}n3Âs#´(5S)sÜ*ð|ò5À™ð?µWë¦l ÄË–Ãô-uñ hê—èõ„ rË/:‚0ïeÿ ‰õd]M­púìk3EàÞð—@™" [ô?׆AZ?¸ˆÉ~ý?VÉÉó!™©Ó`Æ/ÖÑÅyOô¿¼‡§âõ¡š§âÿµZåÖüoÕ‰?¼ôÕ¿ý?÷­]ý/¯f= \ùÃÿc•ü¢ ¶±W7Å–kÝ;Å~’ÂyJmYÚ«­Îœ¾Þ­é»ÍSž–!/WGEa®¦¢8òëö t°áSBðlŸÕa”ËpRòn_GR~ÛWÁ¡¿íZUYÍô¶qTúm³ŠÒoã_hFó2¾®d{$37_, U°k\ô훩—+š­µtg-ÅêãžUµ¡—#ifÕ{¬Ž^Šw>{“¨á=I1GßùŠ_r©šdrFÝz4íÔ!ÁCþP+Ã-Ž¥š»fÐ6ëeqº Ç«ñGC6ÔÑu 5ˆ½ôÔÓJ=4áµ0nÒe‘{£ÞxÅ7HrƒÜ[!n¶2w)ß:ètPÕ)+‚ýËïîi¿ÛÃ#í-Œg g8 l‹iíÞä'ˆ£mת Å»—?[ÄB}",÷wK¡½¶ ‰³†©ûí¬$vZ]qWãú1Z£8½¦ùúÝl ÜU΢Ây»æM^$y ËÅ]Ãm“°òß»þ‰ÇÄòç’¨Ü$]€ Íà|ì1†kº n±Ý6f8‘}êò±³ÈÿóãC>ªí¬ýÎŽéúÞ»Ó—ˆF<éÅž÷¹£ð—öùDò˜›‰iR!æÅ€ì ÷\˜¼¨m$&5øvGuZÕ€værÑÍ!T€fÇñô¯‰³ñ„Ý(ÕlJ:ˆ%—Îd»´"Û©*iŒ»«¶¾Þ“^6‹Rã#$ÖB,½ ‹j“õDʌ嗵!Pœ"Ï ¯qä;øˆº8*¦BŠ™m^”¯þŸ÷H¬¦f8¦¤ªhîE¹y3vUºµ–¸Î“Ñ2ñôy5ÔD´v¢ÍúѸ89K° IkOêU oÏh¹NöÓ7ƒ&é ÈÁJ*?U‚“㘉l)~¡ 5öe(DtÖ¯sžN¬š…hRî«úÈYw^¢÷£”!lw¶BwB’²\eÂ6 ©bw<Åó°8ª)3¨oM[[¹R¿>”¹WDQc@h®ðï½êŸn-hè€áÀòk&AÔlîÑð)>‚M@ÒÊÔÂGc¤'U&9jHâIW\÷j&Ö§7Ý1Þx‚N˜¤›ÇëÕôŽA•!jøêüqRiP9%ð„øÏËÁ¢:ÐÌk%w=²‚E§IMÕÎÚÎ ª¹µp!ÃÌÌÀÞÔÀ4Õ-Ýo”rêb$”ß­Û(æÉE¾:˜¾„A4ЉK´ÎgŒ-‹ÇûÅ} ì­Ó¸W’b¹-FIY…”T;ŒÜ†ÅT–©<œëÚ;8ËüµiÓZîÑöÎi¾’B=\˜Z½­H^¥Ùfåæ*²È4;@âóKê#ã60YŒÃë¢þ™ËgÒ¦übÉëß`7kÞ{€H޼¬J’›d ÆãSˆöûçŒsñËg¨íˆøP!É}_(8̘Ÿ»Y_ë·®¢3À°NLŽ…\îöÎÕ<,úLëÉâÁSÐæTõþC-L79,v …< öPßä”Ôl÷bÚ?µåû‰òƒµÜ^:U›r׸£.,¦¼™Êª5žjðœbÆ?ðý}ÙÎâ|fz"ñxWÂ’”Üxý3——,ylƒ¥÷ λ]ÎÜp`w€™»mÅSq®x±ñƒb«jCã¾H*®M /_BÙô¤rËèÄ ÞÎ&;Ãx0i–êTgaNXê¢ÀئEG…Tå+³Â~e¼¢àÉ/DØFÎÈ޵…9ï|C€¼¨¤ Ö¦¿¨L ãâdY“.Ì%Rô¥ ò¥|Ç ö9ˆR"Û×4GûkaüÀå®É%‹Ã÷)’›´†,Ž ½4/1²Ž<£ÿŒ2)I̯S-XpQ%e/Ñο­·”Ĥiüî¸h?2þgêq…ãSëŸcÚÐýþI…{¶ÄgeÐÿ®b̦‡Yž¨½§$I£:mã5µ¿‚D@¢Ïš Öçt$\ùô‘µåÐk`HÌUÉ˹Û|ñË}‹çÉÎHÔl zé“u‰)IRãµY[îÞÏx©A\…ä=G¡ KúåöòðPÂÛ#;w{<ù¢4v;쵞—i Ó'çç ¥Wå<¿øÀIÔár°">»å„ízÞ­Yv/[‹ó×.²:6™pP†@*YÄ+ôv}À†Ù­ç°öø¢‰0ç\s‘a ]¹ÚÅ¡q³oÛÜO¬Ëw`d`%Ìi[OH}¼»œãMnÿj‰„H-÷Ø:œ}{p jý É儿1)3ØjúuíkäÀ³åLiaÊ=cÎGö¬ /¯/œR’û®ñŒúñâ¶žCaÑõº_–f¼·?%:k„¹ÏGÐʆ‘{#¸nóò…ÁÃ,OHô%î.n¹Š„ ùâ]ßx›|+›èÒÞ'Ç#‹îz”üKî–tŒèuêdFDîUA“\ȽÍ}Ë} Î#m¼ÎµSø¸ ¸%À‰½Óµ™Õ×éäSo×X4CÍV!ˆ8?3¹æÂã@)ü€Å”óŠ%D:ãPUñWžÍãôe!òä0¸ÿ-W|)oì ¨B¯-àîÓO£ƒÛ†¿»XQOHe¯qÜ¿÷Û£yê€]§üZ9ûng: ëp"|LKãzÔ¢éÝOê„Vix4†õlË$" i]a .Œñ°AODœiêЛ:B놘Ô1ãX³±’ØNFDB’"…´þ½²‹½Ì¢Å¬P—”®“b“5?äu»íø:‰ ùß?kȆ e4ósÚܵݺ¯àÇJż.#ÚÓ nœÿ­º…ÿÚ\–(…ÐÝïQtzÔ¹¨EbV TÒˆ{ð“ÌèY•®ÝñÚCT;Œ2“\Yä^ýÔñÜŒ¥Šx±Y¯£—\*Œ@²ìÕR†"·©1‘­)G Vç-í‚Ê™`œòOCšŸJë0À7dÑ2Â×¶F‡Â½­ÑHµ6ï&0.%!šË² 8 7×Qà*ñYÙ >+šJ úŽׯDd¡\’B±uÎ Ðg2UB•ºW""¦°ûP„Âiï«õãí…—5}@ŸXBÎàð R°f§è³¹Ïç| Ò0xÌ—Æ¢hgú܈)SÒª<Á,GØ‘¾ †Á=LÉóHz<œfD›Ò_÷¦iQ—Œ¥­¤ÞLÁ^à!p6œäccÄ¡EǬ,#ÍD·Æ/FéH73+H eSœ”,¶´±*6W° ä«´´f !R ?”Zx墛ٸU¹™ú¾…]›¹¯™J¼¹Ø"B.¼Î,Òæ<’Lÿ/,={˜hå®-€8Þ[ÞɲEÙõupƒzÛ'¶‘ pà þ¼¥Ã»ð7q$G ãj™lëÃÎzÌ©(L‚êÃa’ù`fþ3ÉüÇÌü^†ôàæý¯b\9=—Mºu˜—‹±/ïƒýËŸ—}´›h€î¼<+öN×”^Ðùx™íb‚6Ü™´™9»$kE’ÍO© ²Þ]§“Eí¡¬ën¡çâ,7x¦(ö½›ÔXyPöYâÌú0ÌâÔz¼ñ2$FÖ)Ü:çÛíûXÎ_ÿ#jȪóžä5æT 乯–q¾CdÝ본ÎÊŠüÝ$EßT$±ÅËj̃ÍËÖ,L»+Î÷x{$à7•¥ÁNŸ7ŒcÞIæÀ“L’^˜˜†Ò˜gn„I)àxäN]ÒäêN}5%?{$†®ïDY«xƒš0£Ñ÷ùz„Ðhû¶Ù™{e[îühô¶ýógoÔå¥ùsöÇx{®æ–'÷0È–;2TâÑ-¤å‡lº7CÍŽôxd«$[eÇâð>•/·{BY¨ØåëXLbŽ%ÖEKdÌÂߤ¸UÌêÂ1hzÃ×JDuž0rgq@n¦’{ß÷ I åBΰû×~?PÎã(Í Yþt´Ì29øßKïìZä‰Oÿ èñ#9Ê9 Ù¹ÓýÄø ‰†±¬!–;K… ¿c#Cn¡tíwçKäÒâ½PCH3p~Cø°4,¿ñ,†cŸÙ‡WXíܸÂTgÁ ¤¯@BÝù;ôÁ¾s¶W“#±bGz»’L¯ìèC¤ˆHž›6%Ř.®êÁ¦ÅYÅçL厌#ä)àØdÞùUd™ü¿»U|šû“bù‘ûèã;V„" D\±õ••ü‹Î>úìsû¶Š¹ÔÈý'‚çä%a¹/Å¥ù¬|4ñƒY®— ÂðÅËà³\´Ëœlû&W§2gìa×õ¡¨ã¹‘Ʀôìÿµ¬že©Üׯ±§ÀÒÔv–91l•+D¶™Òͦˆ‡à6öÌÁKÛ­ÔöoáçËKüðÕƒú»¯ÐiÁq 2ËËbIÃ6æ"÷mHf¼íGdboVM·ú3¶Ë‰ì,`/YoœÔâ!D ¦Qã·éÑL\Ü Hà}À5ópÒl¢ž÷GYÁËJ6»‡Üž,»°²=w1åˆGŒ6^Š<1mÕóØà¾á¾ë’©(ˆ.ò`~šáÇÜG±TŠ_íÅcðôºLª³·&íyrï#ï&ÚR’샽 ºÕkûYm&`Ínww ¬\^Ú¥òr¼MRüž¤@«Õ]ö;/§›R ¯UíG¨Hµ€à.àIZn§D™gè`m•ù¶U†*”¹Î;×s>¸’2ŽªR¹$ª]„ÖÄò#ŒËÍËÁxuÒR¼Ú)ö$Låz³ ºÓXM‘¡s«ö™fw —š¾ºÖâuN-^ŸkaT›5^*öMñÀeŽ5Ž,1®2-Á~ŠQ]&÷/rz‰´åÌfÒæœÏ«½xî…ÆP)µ*‹ÍM ¦¾â(¹!]däçÑH܇F¤ýzêNc"Èy{NŒBMâܳxÅŽ7tìq½»>N|¬‹ÆèšËšú™C‘ xÜÉÕÒ»Á6‡æ2}¹¢†¸hÆ(m9BhËq…p&X¹g bÿ²}ëbCýHöÅ_?¨÷h”ËNm(f·qRG×Õ‹>MÓsxÙÿ@¥/‡Ÿ‚è¢R®ßú-ÒÄœ1 5~»†¯‚ËÂÞù]d,fšÝ¼Âl€äj–“T¬³ÈTiPÒüqÞ÷âß<5‡>È_,`¨ÿî0Ô‘­Qôgƒû‹£?&6é²tg+ý³C Ãi'ØöÝ\†èNÑWåÞ‘¼)bù¬ÜBË4Þ‘pè—¨{Xç«êLiÑ ‚?ôÉBˆÉgp×ʘ" *Š7»5Éc‰KŽß“˜¿Í ý1Oú.9)­ê> 1Hã<5¶¯,s_©jù/Lê+Åàqǃÿ|1UüyÕâ’| ngfôLW…îíöµG ±¯¹# ã©quÏÐ%iÇ[ác'Äiî‚׿Ä=™œ›»s5_nºÛ^}þ>Žõ «Š–ï¦"€Z‚sµ†Æ Ñyc.çÌÍ;&p^/t] àárxžkáiF·I€Åƈ}×Þ ä!þCýË«ñõAà­ZI—1€£&&åÙèÏ4ŸC¢éΤ¬HPp6‘¿iD…!«®)-ž-·ÛIIÊŒ ‚PnN« rI~ƒIxÕ1,úè™÷îOÜ$( ç… ¨=…nÞNLñR|£=}JJ³¼ sI=š\KUϗw #QI¨0Mñ¨aIŠ<£R‹F?á3*л¢’ä‚âúßËõiÚ™\fÖR§Vï,šÝ6¾#K‹”‰°Ï÷^2Ê(åÿ†sŸ)GÍ¢-úȦú[;&öTð9*ÐŒ\hi°|ù|- cì ]ˆqÕIÙƒq=±e“4|‡&ô=„í>ѻȒB%áý+¨ê”uGŽg-ãÑ9{[@‰*?)¯ª®¥ _äVTK>º-I‚+)§ŒŸËöI¦³p~FçIráeÈÄhé¹mø:%Æ>-˦š¢vM¬l· /d/:¹íA˜*§ rf.’œgÔu vW¬‡û>º”ÞI@½q •LöïÊ4“Æïò7wTØÓÀZÞ{4í˜Ã€anãgb÷÷ȽŸ|ãmàqUo?K½ S‘K¼~¡;æu•7Ý=IàÁ¯îeáþœ¨ù»,Œáäê'«’°Nˆ`bõ†ga>WÍ ©Hù¯\’H¹*ø­d$Q&-—dWºp‘¸Ú7Wš/ü #M,`ˆ¾@ýÌ–Vñ^¾@B±}Ù{é‰ïÞ*D}?÷³ý¿SãûûfkÚ%¦UCíb!VŠ–Ã ˆÀâBMF•¼Œ”òç4¯JËxR´rþ“Ó[K73wì)‰–$hÉHʾUw¶é‘”æ±qÆ}¦ñ8%B܃è´ü0Qb`öoFvÖfhË}œIôny²Ð¦S<çú'±lFë…ªêBN@/HN]¢¥ÎV¶ŒçG Ÿ“ç—µ2ÎùTŸíu´ºƒî¼z@˜Á1_ê!ˆˆx¦*•8¥‰šf«kNöj’!ŠÕôbZȉ {„'¯0{Ž-44϶?i tòìàGUh)¡[·lÏ„kšŸ­´”ó³XaqÆ_qW÷}kT¢Ã][ùjóò¶lü´0<À\}—S||µŒnY<[a^·/Ûå¾ÝÿôTXsÈ*1»¿¦»Ÿ¨é¿]ÍõëTb©·¼Ä.fGi,ÍÏ{Gò„¢}„†néAȪˆ”ñª2""VŇ³P®–« IcRøðíV[m~!¥­¶$ë(¨´sIå»úšÕ3dAsæyˆVÑœ~yµÜž,ò úÅÎÊ?'$|$X¶‰iȈé9ó`g$p¿+ÔÉ3† Åó»_EµlÃyä²n<‰v]ùJÉÏP¬ÿC!aGŸÈû»Ô‰kÛºÍöŠÄÊKIE¯*¶gëlê͔ɷîûñqÖãMúJMïà|=ûÞ™é‰ jÆÂkv0¾]°]q-lÒBü;Ï»¹¨´ª‡Ž•\hTñò±BÆËˆ²”œ"¿³ý.ôq 0ÿÇÏÃ':¿ÙNž:ã¯ÃÞu‹s±ü«±ˆàÑyç]o®žKš´-÷*3]¼£Ë‘¯çr²ì0)‡wŠ‚yï7ÜwÇ+lÍY9­âpyS–Ȫ™€xLxuá»xÜ,nÆUÕh¥G'rã´[sH˜ñëdä°*\·[§¥TÒu’´^EÕÄøõ]axŸb0ÕܵôÍ#Ù{N<€Ëi_uKhó¼k&Æ_›¼Q´ùt¢ÑùÉ‹'fT¥k&ñ¹|â,hò¶[ΩÅXðò oÒ+™ˆ:³ž|Më`ëØP¸î†ÚÝ­FR£ Áï5ï¾|Ú<6b w!7…¼Sàš²á1Á]2yt¯W>”òWZ’Ö/’¦4Q‰%Ç¡wí QXtyNŸ?7„UnwÏ]·ùEåºmo¼q»ÑÑÒëÂñ(*O©Á†;ŒÑ†iuÌO¶ ënìiêATò¢ ¥K#Ú}3i̧ÉA‹ŽtÝF²ê ˆn§Ýæ‡aµîz4| (€lïºé¯Ô§í]åò<ÝB}HQ¤Í1ùxÒPìZ}ˆI¥j4Ogì~)öN<ÖmµÈk©¾G@}`PDîŸÓµÙ?í=“:`41&t¸éÇÞÜjÿYÓòæ¿Î^Hc£íÙiªU4HÉ÷-å$þ1õ1»ÃÜ0±Òu5£Hv#áç5oÕ°>‰à ,4–§”SZu†kB›‡æ¸‘Ý e<:Á•Ä»}*Ì8W!~à;ŽN8üˆÌ¶>à™=O¿#Ï'^k geU¹Ùö°¸«|ÅÔUÈÿïÿþŸÿ;­Kd²U!ªy¢¢Ø˜Á¢¢@¡éœ»ÓI¾h=}¢d<(âlû;¦mœ³þ:yÈÕú=n(ÎÃ=7à`ž–Ûò˜÷²‡?dçíÈŸiÅö©¡Ÿ±9£ñhIhÁJVáFžŒ(€‰¹8àX!z»ðó½¾NT‚»/)Ó]Ò`¬ʵB]+ ÷™ÀüyëërªÖzgKH™ÄðIÿÖ¬V©Üo¬”í60û¡/غ€•G$3v÷ÜiÄ¥5¬4‰ê”×ÂÏ>×ñ…Ck©„D}<½šÞy@Óµ5*N,¿ªvŸa×¹Ü/ qÏ~“ìZ|yˆOÜj†÷Wð#5çnfgŽ&¨Àòy¨Š§ýàñ™ºž™=mÎQm*÷Šš¼®*÷to•dÍ©7ÙêTRo_ö/[D€î†Ín·4^u¨U6VÅÏŠ^ %Ë+»ËÈÍóÌÑá{œ³+ëS›jý÷5u|ë<6®WÂçf¥Nwõ:eµ{ðõ:#²sĉiìêo¼ º´h¯ýͨz嬒vÞÑ÷ã{W7Ë|÷q¨3Íy(פ$á™Þf#hi:2¸–îÝç»MØçÑEmÌíî¼ßô«N¸×ŠbV¹çÉüüª#^º'i;“0:`t&QÅ.¬bT¼:²$Â顼Í®£X8ïwW:tê9¦vE¼¦ÇpšÉ>–šÒ”ŸIœ½Fi^ýN”e1IG¿ëÝÐ?Ó2¤%£Ö¼1*j'&ÈXõÑuzlpl¢¼üY¿NRÊŒ*5\˜ÅÆkm†Ïtìõ<Á‡)OPEšBXúfØ¢xÔŽ)ŽC4ÃîÜ¢lFxVÈ_ÌDdð†í“¸õ8| Üó«+òWùŽ±ÏŠ£Ýâ ST’¯&fòs>½°÷…öñÕ=Zß &U÷ƒ€›ü»_ì÷)¦{QðÎÕÕcz°¹`˜²èD3¿<}ÉÝžJ!õŠÓ]Nq:Vñ„F»§O††—ͳBÖ‡Y[×4Ç Âÿ2Ų›‘cšÈݳx%¸ºh¦#‹¬®`šÀµÀÒ{1u]vÏ á„§6k¨ÏÆd§E2ðœ^¶K>´”Vòë '7ç‚’2:mý;‘«›6Þ^Kvâ~F_ÇÊf5ž?×q¨sCÆE[L/8Wí“á¬`8óM2üFŒDIDÿƒ¤7ÛeìqM[Õ*ƒ°’¶3UŽª›døAý?„´P ~š…·«¸zpi]§qy0`{wòÞ‚ø®8Õ(Çѳ0zÿg@r^Yè5­·/ÛÓš ¥»SËÈéƒç <ïCÕ¤Çç®hFr’PÁä¦e[šWœ"4fDG;ÄñÓÍûcpÏwØqù›™ ®4f3Ž7ÕÖC#SŒæÂÚ6YjêPˆWÒg¹ä˜ˆdGlí†c†Ùûe"H+ñiê·ªÇ]€j±;ÛÖH‹¾Ÿ§Ô~¥xqLiydâp‘°àXÊmxYbÖsúuø–ø;ÞäàÈpWÈy•âΙùùV¯/o/ûw ÁÛËÆ8wr·Œ¦û…cÄËp<”þ™§ÄldŽÛáw\Øõÿ†E´C½š§‘¦Ø}àùç+öÔx~Ð qhõ**饱"-Ò§;(IÞ¤âq!LN“¤Ôï ©×Ûõ„nB —§Gžýzx°·×E¸Y  99b!ÉQ¡e<ž•®Û"Þ!†§0.õü›o óÍ}:(ƒïî4Nq¬²^¤: J^çú{šñl®-öÛŠØž>ËSœ5”* n‹V°LN'y¥ž¥`9A*¨‰åÃ;S©W¦3Ø*ÜAàgMkãu¦*tðeøì^ïîNξMŠñÍŸ`!^…IòÎÈêB¦(ëîB@»4[÷”«ÐÍ_È#Ð{ÛL=øÆK@·Ç½s{XÓ <¥}W¯Î¯Éؾšâ¯Ñ~mi´ùn²È%Uãz…X JªÃ[âF…l-öë¦âVT¨,#E;ï$§,ƒùxR—þ˜ B‚x-&©½-¦ž­E%¥¹ Z¢¬m‘”¸“Çö¤ Éaö!,ÉIZ¤¼ªÇU¢ÚF#®GÆx¨mûq§ÄŸí?"ª’ç<»¹{‚Œ‹1= 1PC“))‹¿XœÐÊø¥]³y¹ð¢­„ùRw¶ULÈ*§Gœ>˜I{*úz 4DE-¥CÖƒ…ü!º|¯öKY¼6zTȆrø¼9ìNIA\ŸP=|íòRvÖÙYZÛcîÝ&Äæhc èÃÓ\GèØûšçn'Š«ÙLl_6/›¿Ó)HŸl»Ùü"sŸ­¯éEl|ÍÒÕ󕃲ˆô ª•op–%?hN«íÛû$Íxƒ8÷ßTÔ׈sSNÚ…s˧$L“Ñx¾ÐˆêçéÕ«!ëíÔ÷±ÝœLªóàïêü¨Ì;JŠaçmSwÁâŠGžÚbT«QÜ5˜j˜¡ÌœgÔO/@Uõ.Ö©¶sªö㕲§Nè ïf§¬wà4Ì84%çÝCéØy¤¸aÒl˜áHëÂè²›óà¦Ï÷<”Æsí= x¸ ?êQMFË+Mõy»ÒÏÉ›*è+ Ú¡B°?ýà»cljKƒ!EˆÕ'––Íj“°% |o—ÚWâ}Ñk€?ÚzZ”Æ3%™±Åóˆ¦|ìÐêÑ¥%ý¹]*€W$ÙU‡RDÑô ?äicB•ÖòyŸqC­£Ü|-`ÑÀ¦¢ÎšœG†ê<ôŸîÏ~¢nc§lŠÕ¥`‘#¹0~ø&èÓ)”¸«#L×)P¨ -U°Õœ7”Ó$Ý0Ä̬Ãà¾G’å n‰Á­ËW8•ÀÕ13·†,ÜÚ ­§t-‰{ùQ®É´TŽ,V½ú„v½¥Óáø d‚‡$1]|šÚ€©p”žÀ àœ7Í*içxÃâÒ—xÜÿK#Öyt’m¶yÙBŠ1«GáÞa;¦}`ì« 5 .T¤¢‰³mßðºÒÛd?Ð{ ŽfÀ5É#Âc.Øž))C|æÌóvâ;‡Û%è~}æEÅK“Ï|³ã¸[Ä佫J¯‡S9o-‹)f~s̬#©Ý¡U&õ5ް5zÆsÕ½óÜ–({êQÓÄåšÄî!Ûœ,œè³V† $-égÍJz’]wÇÈVÖ=Íçò=ß125æÑ=HЮQß)â£É:P…î*žˆ f(è¢, H¸Ü ²!äMó: å*‘FP#9„©i@êRD]5}ûñ‹uQ’$§ aG1I.Mºæâ(PgnŽ®µxDš«–ïs®Úc×r}ÌŠìVPd7Gw–ô˜­}(EA9{I°<äW£X(DÎ)9›—¿:NOëD¡¢ò(Ær»ÐâP z7Š5w­ ÔOÛ&J¬z¿õòãøÙèÛ$zÓ`ÎP‹–ò«n½K—ïP=¬eqïà Ë„s}›}‚Üˤ·6ãgt¦7¤˜…e7 "b oyi~šÃ•_ܬ Ë—Ï”åÇ–ˆpç°¬w>åŒ èþ å¾…‰“g‘§’wr,5ð´°œd4ˆqƒ,H¹Óµ—·Bu?`‚—1ËIê³> Z¹¢>;[o4Æ,‚±g™x}*’$^Ç’ÜEÇb'«)ÖGÌFù?9É“˜³r.†r¼ùj9& š¦¾;ùâfL2ßï0=¥Š’i «Ë@/¶ý“ÿò¥d_\Èy–=OÁpâT'õS"ÔYM]òìLòGã™Vg Pb;`ÀâÉFñŠ%rþÊ­h“ÇfˆIîgí ZãÄ •à 5çøh¡³š2R06Üë}t᜸àyy=%´?˜ÁÎ+N<§û‰¨7Ί_V„Ãb„å7‘}­[Ë›lÉ’…µr—Hþêã{?aû¼„+ux N ¾Úx’ðLÇ»Üyj Æå"¸'4H CSi•UžÓK6¼®×!qƒ¹«.Ke—³¯h}§Z^”Qµâ—‚`QúvyKƽda ë2ðà¼eóÈïùüä—óýmâ4͸‹±¿×³´½¦6ž'õ‰+†¨É·,¨ÂýóI4å,]Î¸ÑæŒœ½ìŠ—ÔcµTèÃÆ¾Ð^—K·r÷Ž-¶ þÛÔIšr×·CBÝR“Û“‰~‘{íQœÆL-ÎNNs»“~0î^þ 8Ý1ÿX1ÿÎÂükÆÜ½KTáÖV¸³îm…K%!Ù•üP"ˆkØ4Šü ¨†A=@{ˆK˜òíæ¼5žÆëRge¸©'q‰¿üÆßîƒ.ðž•(Ëg RäÉÁØ!šrDKF$¥ATC¤èÖø_yÐSÁ&´‚bkoݵ°œ­bìh°H©êëïJ‰m9¸êNÿq—á[y¡ב!’cV-\AGü ÞRp¿‡`=h‹Séøxîq© ¥>á«ûˆ:ŒxWåÌ^ßë íb·¢ÏŽïÁáÍ[{ª0ûF¬!ÆE\gÀ&÷ ÒYÒNxövDî¿bxwЬÓÁ¯1.TJH„7má_“Tá‚]q¢©!lÆì{×V¤¿PîäØd9«— >}Ì78j“µsÔ»,MoK$&öRLÿÖ V¸nb 64¨¨E’£ÿ‚;>Z¦”äíÍŠPµ‰ì“[d~en ]Ò!©œ‰ÁÓþ`QV¡.ŠW4ƒMB·À= z¢ö»Æó/™ÞA 7ÐR ŒúN‰ëu»q Í`ª¥†°~K€sÝë4ˆÉó±}Ù5W†öì-™SsÚ`aµù–YZ¶S÷‘Ç\ø•ïº$ч¹GBD1I¨ÞÜô}Žú¬¾o`E÷c)M5–щwJB¬²Ç'²SA¦Ÿ:cy7pmÝóŠ õÕµ|Â-¢Ä‰…–ÕŠQ³U%uƒŒª›húÉ©%&|¶Š“f3&KóDÅdæÉÓk•Ño6ow÷øÍ©?,®äÕÝÉæ'¤æ·@Eïý™(Hµ wñݼûÂ[a?‘@Öbçµs€wGží„ÈÕû68%©}øtI¸î“²$7¿úåØ˜uI ©ÀÒ.ð„a0à<áfT9œƒ‚ðÕó Îë”ùÕöÇæšDuP[âUfLíxƳ¢¤êÚêuäå)cZêøè˜uüÕh Àº'nÑǧŸzÁŠÀ‚æ~-yKû¢×w~ ËÊRö“ëq7uxøÌ-–·C£$çef>sRLïJZxqáIóîF,Ï%EHEÄQcMjp˜+©ã5 ¹‰ƒ­#´:•”Äæã ]ŽúxUI"Út±‡£tµ·sÖ¯…X‰ðÐ=Îló²…ëkëö§¡2µÑ¹ c3ÚPh ©Ä±žÜnµ)mÞ ={rñ:Îx]¶Áf¢¾w§Sj«ïã Cø¶÷_„HMVp'd±Ë¥UìCãÕÌôÊv–2}Q0žÀáèŒïæu©sÔugé«]Ÿ‘J(¶·yl³ ³š ýOÕ¾Q¹ãZ›¥!A·Íò›7‰tÍÒ­¥K\ÛFqûþשº^Q5ý*"˜\Áò*yÎCã=L+xz¡¯ˆ3õÏ2˜œƒZ¦¡^e|ÜÌ&?J‡òî–5¸cÉ€$6éŸÅ[ Nlê³¥ØÄÆ"w "2úÙÊ¢7s‘ý›+gø—w4­¢­©]*ÄW‰¬0¦ìj‹xqúÛýÒZR# «¨2¥GÑ…¬ØŒcp 6“M-]ŽD¬EeE”åD0Áùuì_P³Ð£Q¡‹²_•a½{yÃà9]4n‡fêšFîåÏÓf˜"S0—á=)ùº‚’¯cJ"•<:Ó ñ°Ç5³F‘AɉPR­ô—ÉÕ·#š«žE2ª¡$)ÊíûûÒ,!«x±±¢*,n”0K· 6ڻ†àƒ}æ“ÁÚñB…±]Ö¯[ 7‰"ãÏ#Sá^ 3ä¥2u™¢»0Í÷Ñx„Áø88v«·²‚ˆÔÞa;2l§•Ÿu3õ‰%›9‚}+›^ •3÷]דÓýÍZ§;ëŠétWÇ;}ä¯î‹ýCž[ R𸲯eöiÎÜ}ÔHNB šì<®ÜnÄî²=æþ ÿ‰<~5>:Òd)Ï1ÿÊ}|÷,~ \p¢I”"ça%·†;ö¸\pód[¡±ËPe.^n›<‚º åQ½]üMµcö _µ„L$¶“B%ÂÑ7ãÉs–Ø¿fK…ýœÀWD%FªYèÐÖðÏŸÄÞ.â¥~®¸Bw(㉚—1¶Î‚BÈR—›‘Ž-‚“ÂÇ 8.£zÎηcû±L|¦ö¸;YvƒïwÌ;ÖOV²¶%%ž*ÐÁ­0À_þÃ*º÷¤m‹¶†²—|ùÒ%AÖÐíK‚ù^֨˘фG8˜XÞB=°Jçéö1;j$—ùñ›Ë¹ïÇÈ%>Úcçr¸ l‹à³:AlÍËß3`K±µRL)­i¬Ï`ŒÍgÖü9ƒæ8¢³}¨@Ûg\Žo¼ÔC-!WìóÓà‰ Þ¹\Y>¤Ñ]Ó¼%l)]Dþ{këù&BþûuUßGtÆÕäÛA×ÎÑœî Ù<=>ÁÒ™|()£SëÒ=#‡ÛSH%ùvãÞA˜µœ¼ 㳦åMEˆõà€[g*(ëo×#CMŽ Êòpþ1yz“ž§‡ ´7‹FFcšmt±ûTÓÐ#R…(–šÇ–DñN宋¨JzO°ƒ#Û(üeßrÙ;H†¨ìé$Íù­1WæNg27÷%Û‘¢ØÏey”Ų,îú±âòf\ht©;ØG’úŽéÓa¢bøÜ5ùÈŽÓèyóU:?PÓ„WÌËÛ•;(‡ÿúü‹#a›2#µ’Ü{F¨ÀfÕ­ðíDÂñbBx‚a™¦4õÖ@p ÙX uήþƒÉ= ~õ/DÂü"BcøQâYêG›1•ºœÜiìøªúBÎYÜêç›=\Hk‰%o¦… ÿ ®Iþ/†¾Ò±(‘îñ¶w#ôj‰ïض5¦p]dª©êÈ/6£¡:.ð·éÛ›ìˆïC°1îò¿ñä¾í[ýoRfŒÞ"‹vóãð(͆_à’×ê'~³B†„éì&àAØÈRÐj=Þu—\Ç! hÌJ_z”TnE¥!|~7–Ïm¬¢SÈ!ôÀ=›6ÍBÇ46Íàš±¢V§þÙD;ã5® $M¨„h½<´”… Ñû·5Ž/ð?¯þ•=*òˆ–_œÁÆR¼#8H¿™—,`±–Ë$+æôæŽß‹.ðMj•?´„K ¯†ØôªÝæ¼ÌÖ}àœ~U<‡Ëá;¨sVy¡Q*·[ zN4…ϳÞmñRöê„ir_È”^=5 ¸ë©NS?x1-ÙEVëBg0Ó%¹ûvXcL½´á={òÉOu!©[°t—ï9½Ê|<¬l´ø×5@-ÎÁ‘…<'QÄæÍ¸ å…œÅ^òœ³ÕFóì5!)I¼ø&«E“ÿÙ¡ÚW1@Â8n·Ø@ðßÕÚ.+ŽëM³9HYÞæ}œ¼–öf•u. YOFD!iA<<ÈÓp<½%¾ÖТd àÄÚ¡—~“ž˜µD|ÖÒ*so–‹pÁÂ!Ñ ˆW±ZK4r²jm œûl^&óÆl£ÍÊ•­ª?›ÍzBxÇ~ZS¨«<ùKvõ‰x±{¾ ­ní¼jWÎ< ÊŠd5Éù…¬öie»Í«¨d¼õw Ãã>Á•:{‘‹`ÞßX7 ¤Ò¤;ÇUI=m>û¸_ÃBcm#Æw–2Œ1ÔÆq¶H(zp ‘n_þ`ö˜ ñÂL‘Æ(¹8“½ø`/~µc*,GÂW ¿øÊAqúåwýAi®12¬¢ž{Ø…æ»@ÝCù ÂñˆlúØ’* y%'!x.®kq{œ¾0WTƒ­‚–Ÿª÷¦ó™l±Ð°†Œ^륔ä~•»¸¬yÅŽ$ª‚öJd…~ Î¦˜Êaê±1- ¿äÑm-XµøùåWFtÀU¸¹?yèæaÍÒX ýåo’5"¯ËˆôYÜzÊu-#9I”~~@Y.Í.8ßôØw>È ‹›ç›ÂÅ‚¬Š ¸$ñ„Yòi³É†:ò&ù«À*éÃZ¨=ÑOS0iwÞ5|õÈ’ê/¼~Ee«´¬\tc¿ËQ³Œ7&/8~ðThŸõ­H1cýêGüµâ+wcæ«w~yœ]nGx3ØB6¥ê‚—— ÉÙ÷ýµH³p¸ÜÄá@']ÃáS/ç©qMˆ8?3ê9"“Áh×ÊØÃŸ=(^î'ÕSJ„)Φ­›*tßz…ÕEl‘tãÓÝðÜN%u«WF+pn9·ï‘#RÆºéæ«ÖöŒ‘{4äsE­RQ›±p¯—)àûSéÓ¸ 9!D§í‹q–ÑÄÓæåíÅØ¡ø÷ËÖ\ŒeÿÎÖ§ :8ÜÊsa‡ÕR©ˆ¤îgmš âhÍ` ¢Ây7îAI9!{˜8‡è¾ñ¾iɳO_°pù1¾ih=Íxp~ãÞ¼ä8Çtì½;­Hwkº¼f‰XusŒ}=r`Öê%‘Ù¾¬ØÔÁw•Ç¡ëØý5j;o÷;Öq‘¦B#±?Šd$"êÈOï%lT­T–ÄÆà"zéM­N<HʈðñµX]ñÅw\=<Á’œÀñ’XÑ×»mZI ‰ÆÇƒy¢o(Ügû$5yK&é›±Äy6I1²ƒcZÍ IZW–âO[áW[*ðu5±žˆ8í\ÞDøì'##*÷œÉK¶)vnhFÒlgÄJ³½¥ !%*yHüz®>#\#:AŽs­’’òeZ\›7ûÅëÝ î‘98‘ Ï.Øm¶›—Q~C……5±¥yÞà)Ëû; iÄDîvM3ž*tv×ï³8W7IÉוÍÙ˜U ìÖ€Í ÍãOè~©ÌåíË2üZ{hG÷nB§(éE@ƒ7€* ÆÔßò¾‚ºL9zXsvØ&·¥qÚP¥ˆ®¤é“œgtór°£**v@óH~’XÌkx¹ÑJá¤d…°ë^þg;¥¿ é»®ÎÖ=ŒÆÂ­²)Rp „•ÈO÷Sp+‡Ï7\ƒx/’!È“ùëV,Zú«AAEy˜Œn©A½F¸³Ê™<’™k÷ÈÏè#l¯qÆ^žfÕ½©ÔWv^Ø2Ç4H® k6öL^rY>JN&r¡ßs»ÏöàV‹üÁš·Ét3ï{áü‹á_—·§àþ÷?«h@]Ç…S8‘~'i¢JUIŽG *¸n#G;8]~ðéúevòrî¾€¼_ Y ÐC$OŒÖažX£qžsIo'¾Ž¸þ““„¿;’HçzÌH§ª†ŽS†–ÖˆR˜É‡ålû'®gð‹e·¢9F©ŸZ ·ÈÝfrÇ|$MídDæ,þ¸ÔF{W#ŒÒœÕE^D¯ˆù¾aùƒg™»LÜcÙ+Çâºlœ)»ß!²£êGöÙ­Q<È{s‰í¡~¡ÇT/¢MjU•¼}©&æ8³±Ì¸RR/«Äyb3V¥™±sV¨s°+Ëõ‰½úNB¥ñöiÿ× "L{_LøØ_!hýë™9n8(J™9Vì#Éßû©Ã‘Îr;•rg’çòž¦¹ÜÌ»w’–ÃÐã> šh£\Vm’Æ]ªdÑÙ*àüØ$ü,G‡5V²±œ/FÌ‹»–iz. EÜrq^Ò""Åzd{ðîIdN.Ðnt&oië³´2 §•9lZŒ%¯Æóý”Ù)1.™ 7‚úz¶ *†©ÖW„ßm¶55k&»Z7Ï=»ï féÉF3ÅÆÄ'²QÁ…-aD!Xf=ÐÏ ž'›—¿>OZÌ÷ÿIHFU’z§–îAݯHI÷**ÆÏ„XoÌ»½<™qàâ¼HsÄ'äD!€W9F¸ 7:‘‰<:ûðç”0¬â¾ýKTBìa¼çudõ«TðY³èì¡Õâ°¦uG"¾uLÓ”o_‹h4’÷fÓ¨ý0•Dñ€™—„V•9,ëÝÉJ‘[?2-óéßq×`ÛÈؼNØZLøgjD·MÒãqÜ05)šk×Í$B$t¬M´½óÓþ°šAѧÇq=‹Ò²£ORíÑD¬¨¯>f¢;äÌzibkÖÇƒÆ¸Š¢ð¥%8ò‚W.~ÃØðËUT'ô¤Ä“Ë ÉIzÞPuø.lªÖ© V»qðô¥j Wû«}éñHÎ>Ü0Ö…¿5Œh ê@ôÙ”'ÙêõðÌ®ÏrQxŠ‹Ûªàcp ÇKH®Ã¼xµŽ¡CP°5 !:/Íýõ´>tFrv¤¢ò­Î¡Y(%”Â?vq+Yrò®tÌIo×*¨ÿ/ è¾1Õ4´J¿k;†83ïZÏŸ{}kŸ3z,á¡Nì¼*kQÁ3‚›7§!öU¬–@ RÏ ähޙВ±Ž-_ë°“^g¢ÏgnrìØ-,fû¬Å/<|©^§+ž;l~Ïêøœ`w“Pa]´ØMwz^ÊM.ý+2³­K9‡Á‹ÅµiYçÕRGÇœˆH.G“˜nòîý7Ñ)Áÿº ïžáš #E±¸~“¥ÓA¯#¡ªv¾‘E&ÿë Tîä¼ ãEKr/#…E·¹ÐÈH{ÊsÑÄð3M\EŠ &Ù0˜'ݾ¼:Æ6ä{þÁ*>xEÓ¸;/)úæüoëݒΓàó>Kãz„=%ãµ#¦‡5(v% ¼dß« ‰ê×>rŒ€ë(Ÿ+ +‡ÄÖþ'AàcN¯-¼}øÇ z¨-W0åäšéóÌkfÓ»Omy\2â=²;Ï!ŠÀ÷²;§­y˜bÀHÚ‰3#ß¹VqŒGÄ \Û#[{'<}o¼úÇáUVvqúÁõ[ö/–’PùrûÄMÙ…B@!uÝæYç¶Ô3•WN=€=$Ê¢QF ÛuÍæÉì|fv¡¾¤½GV*J7Eå³ ÷1Èáæ4b©YòcÔy³•` p͸$eïþEÙ‰"`¯Àc+L³ì»eìçv_S$\ƒÏúËÎÇGû)‘ o0}ÏÕ=HjöúF½ªá¯N™P—ÌîõB7#ÁƒÊá­¢Ç+„Îz{Ù.ý ÷·jåí?éˆÃ÷즔#_­ÅãºîþãºF¯~vQL[T§C!¬ä3„ÛnÛò©,¢Ð——÷çgQ *cÊ¿´“sì–øGõVßGÐÅ€M 0?U¾„àì»P­å-Åcª®¨IT ¶I»×ÅÓVÝWɤ±æ¾„8 ÿ¦©¤U˜¶ÖÔ®©…_MÙMê€üºôc è YÿÆOŸ-러ВºZ-*xÿ[J<èÐËájs‹D© ÀìüÀU,¶Ëz²­²¿[ÞÃW w¯{Øîbø±Ú-תç¡’¶5bl;m:xzÚm»ž³K%à$¼ºK’Q0ß×ê0Æ©>ò\}d% YKÈíËoïVµûd|ÇÊ…}3¡•v…:úÌÃ$ë–÷n¨`¹2³óã§NAôqö„”±˜QyBãÕɇ5§°$ õõEEå©(¬G¬åULcR¸×nÎ$`æ& ßýç4ZÞÒ÷¼ÏzÀl []GáfyâCÓËC ¶Prx‡!«²OŸúu …ð©`cá÷(ëŸù¬úÝÍJ6òƒÕ<¢¹üÔ?ngÑù‡®ˆ8‹àÀþÁu0(FWàkW{G¼0Q“T¹w@àUp·ëàþñ0—<àúmƒ/Âãx}^Ö8k.o‰¼HÔfd³î±ð„_«¹ûß¡æòñYÔÄMT4 "h%‰RŠ¿¤Ð|»™|Ëõ†@ViJ=´gAIÁV:’RØ»±=TŸ võ°…Q8;O8ªÕ½›%y´ýY‡%=¦T%Å}ºiAòz5úKš’kž¬4LtülÒ0.oö6ûÅJláw믱ÝSª|³bóòöÎ!#!L+RŽþþ a{ÊèÄ.tDó?‡ÿ¥ªïþ×6úîo£ÜU7H–Å–€ñ0·}Bd~¼‰§ùæMY>=Ý´ÚAÍÿêM¾Va÷ï«à«5•÷Ï¥F*Ø’þS¨çÊk‰€{X’ç\ûƒ bza‘×Am_Ž{D/½ GgyÊ]Ânu ^DýKPÈ4"·Ý^;œ‚OYîcòéWÉÖµjÔæyˆ?p –ýÁ•äËË ÅÏ»š·œd,ò†Gµ‹Ôû×g±v£Póù:¨²s¥*–‘?­?„ÇeaìfÕy”]‚¢˜½UÃÃMãd{å6»yŒ”xoµÊiåË“Ë`³Uª¼V¼ÎhÉ"ð±Ö5TºÙ¨á÷]é "rËêñë´¸±4PÔ*ó4Ö FÒæÕø*çTymǦ¥_0ÿMË_|÷ ¨V_¿ke4ˆ™ˆø…–ëè4ieÖÿ¢¡oà¢äð6Ðlu‚g`ñiO°}ᙈ?%ɉüî†eÃz™bÍ#EJXw/è³oÀõ: …z³â»Ri°Ã»­ øÍÖÀëÞpWØa}ï‘Ý«åÔÂvãxâ¢òŠœ]¢­·£pçpï³Æ%ùæåÎ+¢çÕ0W¤òŸBî¥Än P›˜òÛÿR7|ÏŽå1ÿÊlóØÊ}Tµ kG¬¥F飜+ÉüYjW¿XžÁ’Iiåã=F µ\©š‘½?ÃÞ¨@Š HuK'óì—¿º”/.;ÿh]äÅ\!ȯè¸_ÞἘ…$,ådBË òÑê¸F ØÎ£b^*)wÍ%»zºVi&`Ȱáã;ÞѼªæa¬áÇ™ñb·—øºÝbäÿ÷ÿÏÿýõ?’±õ¤ãî?¬ã7•{qžÝÛñî±ÛòZzPK²ø‹7¬HœA»Üfá²¢ðÇ™ #G9‡Ç$hg=yC¯¸„õ§Êµ•ë3ORPÓ`ÅK?é®8èÿÝ®Îß·ñ»¡iÑ|¯`l؈eþ¾Æ„‰[íì2^vö‹XI†WT&øŸ·ÍÖ/(¸ûE„ɺ‚¯=hÈXÇeÀ ¿¸¤÷[A_ï`~å4Ýr^qÛ8 ±_ܺd~/R²T•Ï™«Î妼’ÖA)‘}Þˆ—¢\ïLI~óæñ¨àø;¾l?¯j¼”}|Û‚D¿ƒmr|ÿŸ#£i,m¶“4¡¤În朴´ÀWÒt#¤Ð]Rá< o~)N7Á"ᢴ<ÒZ|³ébDˆ²8­’̇eÒªùéâ Ѳ>_°)€Ž“dñY³J嬛W÷û­¡¾ŒmÛV"ÅRÃRcšýóƒn@„ÑNŠzÇ $ìl¼-Uã"¾YšõÞqaòý!¶TvS% ÷õ[2¸S{ˆøÇŽDJ‘È‘Rê˜ñF¦Ù¥:ìK…¢”dt¤UðÒÓ"ŠžG`©Ïâ2|Éb/ ÈÜ+ÿÂZŠQIÑ÷ÄéÜŸ¿œ›´ÓIJr™‘ûyGåHà /C&Ì0¨H‚òõ¸“=@ò8ey÷ÜGÚ1IIä**"^È¿uÔ[£-/’³o“ÂÖ¾šNuì;Íß—­‰ê`—Æ¥8\Ì©NUáÎVèÞ»"#NdìßQLÇ ÍÝ™Þæ09UfÑ ñDNjI`j—XG¯ØM4d0MYU“Ö1BMvÁKÿnšSД܆èûû :nšGE€¤q@ÐdlwŠ£þ6ÉPŒ…ë(;ý‘EBî±Ü¦q˜ºhÈñs¢ò_ö#Œ'ʃ³¥Øq¼cð½Ù‰Bn å/I^ß¡'FO÷g-c)Ùîöæþ¢JÝ?‹Nàñ<Ê0q¦5ŠfãŠÉrHE´³–ï­¥¨j0“šª6Ád­E N™Ží†ƒnÙ,à猒\l'Ê'¦ÿŽÊY»”^wÖùïsAìÎä(3ÄP,³tíÈ»¹T×o¬>¥lƒ­‘³@Ìj¥NùGª|Ê¢ à:b&ฮ’^‰l^þNP˜÷…šâF…‚»Ùqß ÷Nþ®_ðr­wZéXIv}:2{ÍÜ?¤$–¦|qš«iäm‚ OØ5?eÕ´˜†hé+.Ù…B‹þq#ûëBfz–»$½zÛé2RL ;' $ÁBAó$Q4vœ’BH† ÍÉÅÞØ¿n„vÑ""y ì¥-k‡ìSN`NvÀéÞ#”k$[‹T¼àjpÝìïtv¹QìXšÆ‚#ÄÆ¾–j çIFR›Dûa91zXHåîß]+‘Dë¤íúåïˆr¸·‚ð•à‚Dg“E§K§ºSKEß©Ø@{‡*ãd²_ííC‘Ùjóã‘E4 ° t.áåDul,6"pWôbĹÛñâŽ_…©I€,BàD…IY„À‘dé‘-nתXLÂeÙ˜p]Xüq7±«â/†¸»0Õåðžj·¥ÖáRn;LÃõcU<ïÛç³WÒì”úÆ_Rg©ºöÌìÿT‹Ð¼ÝÎz{Ú§í¶”Ýzž «Ò:>¦¤€dXˆM÷é0‡éuÓÛ¦ßs˜þà™¬}§#Zr0óЛLë圜[ UL+²*¯3ñ¸8Åu–™ÎŸÙzˆѕ'â!½nqõÒ<ïfÐXŽ]‹¤«\‹‚ ýÐXÝ+$MG§ÅGºPZuaªh{IÕàq7òÚý–^xZÃÄᙕY„iM%euš>‡nξâTr}Ie^¢­³ ^0:2 Î !g HPgêIšâ¯ñèP¸÷\ .*q¹GrÜ#P¡£Äé⬉«ó´ Ÿ.*(ª)ù’È]xžP#š,Ã!‘›é¶Ó} 1Zj óÚ_ó¼(Ù…Tt;軟zƒS¤„¨xs ÁúÆZ¦õ`¼AìѨ{%§I¹¦ÚyÄ„ þ÷ímãâäîÊÔ¯b·L¯Æ3Ÿ>Í `¾›ÅëØòw)vÇ( D(‘Ø~ôŠ 4FB `€íaøN_ä+ؼlƒ­¥ÜYÇ+¸ ]Cä^ͰsAÝ!PM»<[iS½k`ËM8ì¶r‚$úX]–§e¤›éƒuÍÒí»«ÊŸÖ[Rðà³5‘›2 XÍpÔ4— 5Mû@ñ"W0* ­ &àÆZßXéÕ] +ÃÈeK>’«û&mÆëíõ±<÷øíÔÐ?v‘¾2%Y|¦ÿüclmYú¶,ܦ†Ø.…Xg ´]¿Eœœö¹Þ'R¼+b×nrÇý³.²ŽEñeø÷[Y'ˆ§®êVÒM3¹_ܼX}‚ÃÁ«•À}“–€÷]u?}Ë÷;RñÌxš ËGöj+|³bI"‹²uÚ±üA±4¾Õ{³ Z™;N#¾1ëÂ-zò¬0·¦ýæUðð#Ú[K± ÐðüÁòŒZˆ*–ëSs½aÕoØŒÊ|o1hߦOCBiò[ w¶Â½­ÐzFÐ’¸ÖD)†˜—Ô¨¾Ú ‘‚ænÍs’0.¦"ó˜ ¸†»¹òZjæ$£B.U:{”RâÓŽ7Í/¾(-<è“sȤµè˜ Õ{oƒzŒ&Gô™œ_³tg¿¥7¿µíëÚ» ¶»ýPu@c|mÚ£2\Hº…[ä‘[$“ÑöHn@á®JÔM¢Ïš ÖSŸ w6õÁ{šPõ×·òÖTÿ:O€áàÖ«î¢G4¦‚úËišøz]ÃÓÆ}J€ÔlR÷ºÍì7ÿ6ó ™½Ãn“¢‘%CßDɩډüÓc•ûxÿÅzœ“zGÙhVÃÆ+_,$ ’ïØ%lQ‘<&e¼y·7ÇLÕ[x§:ÌQÀV=Æ#i(3½·Ë)S {Í’ˆ‰M:As6ºË"õ%~º3¸i¤¼k£{§ýmê9Ïêóîe·Àw¬9¼»?ÚiXàè`Õ Î·3¹•O¬v ëZîßËÛàk¨WT ž Ú[ÎvÅŒoÓ!²ƒ7DˆiC— J5±åW´wÇŽ°8Ÿ/w#¢z ¶/ûöÐx^(úîphhNOOþ­ðw'Üû,ÅŠá_—7cÓi âì*7¬G¹o¨þ&åY:ÆšO'úµ 9 g9¿1JJ(9-ý`eä[Zn4Úù„ó®‡-ö>5•hp$!ü`EÊ …\ dÏô‘ údQøQ®,~—ûø§Ò)%èã 1þåBq1ºˆÆÚü¶ôì^òû^M+äù¯K­r~RRç‘l À¸_} C¬`Q|4®ÔPøöŽË¶£¹ä´kE~ÛJ‘ú_Í`Ç­¥ #Gš¹r*O™%/©m°(n\´tÛZy‡•K MW™U† *Ì}®! Úß̈ŠÂ) Ôm‰ü¬7Q]ˆuÌä*ˆ \?gÄÏ|©S¾/üT½›2ס·§¯«5XeŽO‘¿•ÀÌ’ä²At _ârÑ?²<¡¥ÜCwÉéL«Rœ‹µ”V,O/ê¥¬Š•yIÀ×¢ Ú¶Þ¥4‡TRcAK?Ò¹4xó JãÙ3é½¥b®�d{ù™‹âBN èœE".ýØóqÉ‹_¥ùèÊ1S-£O/é –Ã0j©ƒõÈRx>N¢¨2="ŒuаÁó6iEçýÔ)ÃÔF嵤uÊ–Ø,áT°‚°}¼žnÜŽr†:)OpᇬSªAþN¼RŸ5­é\µ4ó”bŠ e¯ê¥ÈËø?B^zOH”Æ«™( «NuèEÑD.5iÀÀöKIHS? œ'©òõ?‰…z>_G8ß?лǰf©/óqQÖåIãÐÇ"tt’'Œ*«æ,Œsÿfºqf’ÿ‹cŽª‰üÝô^Ô˜^®jj\hs?]G»c F/~æë\iOÒ¶ê©Ü%Å´ eU—4„P½~–Á\=ˆŸõå?gÆXgŠål¥«˜\¤œŸë•ÖêܲW³5$'õ‚ÛûRAs7ÉUü"æ¢Îº™ÉtëÓPf1­(…7-…8ùȯøéKÚ0+-„ Ê“o“lº’EŒø+Âl»™›§gäjÍ”F;„¾zúé½$A®¯Áûœ¬.¾Äÿý·ëÿ÷ß«~PDd¥i¶8ù6Ð"ï)Á0ŠáõF™{Ú5êHª>JòÅ<ž‹˜O$Ë0]p\Ò,ªRÿ6ªÅæ>Ë -¹ðI_×"é÷…ƒÇH¦L.Hþ 9ù¹•âëó~Ëö¹%¢BöëbVÀ¨†}‘.¤{&yîçzJø±˜žxùÆ¡ñ’ÿÔ¾­©2ʰȷ»–Ñë¡—ç®Wqu ¹Ê"áávÂŒ}”†þ‘—”%ùzg exôz2ç(Ñ­Û¬Ü^#(;ñRTRyÛµj$•¬¨<ú¹ÍY1o{&2id/Ý¡ ßoü¯Ë&J#*ðx±xÂ’‡k‡ÇFÜ, dÁ;Ű®À%®’ÿÐx¥±ÜÊZ=Ïüef‘äéÙ\ö‹yãDœvþW±ÁØå¯YGçUÓÖ‘ Vêb ›bÐ?¥ä¶° vUŠðvó&*žyê]µ²Aæô/q‰Dðö²y1;“u$û)’­)é`K‚q“©äâŸ×™A*šê‡"âÞº¼}áÜt¦1:ÕlÖi·cåoæ­”)Ö?8²”DYsŨ\î.Ç!=*dýÞS±J!n±[Ü?Û¤"q––r#±AýL:}¸º¤Pä ×lgåTË|Õ¸\Öm¿hi!£’‡r°µØu‘¯x¯i}x|Éý´÷׉ý¿°$_«Ÿ'6Î 4:OUÔMù  +¨_ |ø ¼BV¯g‡_åÒ¡b„¾ÎÝÝ]›n…zqóôŇ_´ÅþÞÿ}Ý¡{F† ÚÉk÷Íy楟÷Qn.#I‹·Jø’ÿ6¾Ô€B„Ýö•‘êñŠÊw¡ É*YN´ÃjAMãÐxóùUœÙî¹ô“SÝ&`D@J©}JƒœGÔG÷êA®¶¼ä¹ÑEZЇyôNawlù‡çU#¾ˆH¾rµyyuÏ” †»J—ȵÄh®1Íq­æÉÕ6­1ãe¯„ÍÝfa±ÇT¦ÜðÈ·A(U›/ žðhƒåôélXî ù7\^ÈéÁ°Y9Ö·}’À½_½Æ¢4|$ÂöÇ6‘†ÒÎVé2bäCþmjœÉ@l=Þ‡– Þíï\)j‘ÕCü„ñ5´$¨Å:¨ih@™;Ò))Y¦DT$õ°_d5é%‹¶ãáVmþôÅSÖŒûŸÎLù`¤0û°TKó}ÌWwø”23c†²Xl_v¦3>YêÞرb[§ViÍ;³HNÊ¡EíÌܳòÃtað»mRê݃¦ÃN(õ§=.¹[‡sŸ³{·cìdì'ŽÚ^Œ¨&â‘$ËÙvQ~a@X¦F[÷çÕ6ö>BS¨¡pI?KÐrs2׃ve·Úž×í¶¥WÌŒ¹–ÎËÓàæ)ÂFJíiïU¹kãíÌy75Íi°v›‰”= ¢Öûi@¦cêÍ!ûyC‹h? Û’ “{'ñÚó;ø áûMË…¨n~ÄKQ<î2xQ™ìD(Ã!I-·cF¼@_Š˜«ôœ¨mÑ–*j®¥!û~^ꥮý¸Þ8ƒf*ØâC3° >ÇBƒx)ò-Z ÉäY• ì/¢žU©ñw2ÕPU†–Ák»|#B¹KbÃäLÇ'”¹Ëàgž0¹e}¸?¾ß þÞ½Œ$#%™pä;Þ6/G+Ϙ·Ä)­¢¶u¼6ñò7§isŽÎz Ë,wáÞW4¹«©/Ûò«À²,€l6ÆnÞ£YvþÙ"áê ¸¨âpwãhð*«#ã¦R—{k)¢®l^¶»156<cÌ\ °MœSW]DT%Ïyæ>·…É9¤(^_LzÕ q Ô ±ö¸eÀᘠV¸hSZ„Y1±jH\›A‘›Ú!aÇ)išÄY›¤¥ìƒñ„n})h'ÀUùá7¦4¾P¸ªº¢y¡âxû+ÄìÝ«{—1©ˆFjÎT·S£ª/«&rÊdü›¥)i1x™œ}?ùÖÄ­¾AD¢5~VùIMU/Ò:aùý‰¤2ª[—!tú.YXÊÆ qm \µAYpÏÜbéÅ­(ó+µJ)>ùR! Ì5ƒ(ïF]P=J³pk ß1m`—3Ñ&c|•pBè¦n烔DòOóµHûšîIÇaº#€½¸¨ì(»‰Ï4K&èã^A»6A‘HâÝpΑ¿8ô×qá%ayÈ¿vÞ†…{þ§N’hgnz!„¡°:ŠíÆ\ì“߯Öb÷Ŷ: q"4z9Þç¸Ë7QQ9J]â/©T«’»À„ZR(* ›+›¯/£ó|•"tO³¬ß ÑþÎc8ØØ¸hÅš¼9Ô²â.Î~PsØçû³:v` p­£”ʽ]LSv–ÿœ8!Ù™©‘¼o8|É`†ƒ+nÄ‘|Ãq@s8wíîˆîÈJúER»™ÖiQ1}Y„Û )çVÎTô³[EEp’œbÍhHÀ¥œH³ëËï<ŒxHëá%M‘Æ+%']MÛ’Ê‘C®¯ÊG„+ ZIqRmO{ëœU»öÄq¼+Š× Š…gp bú”ÉtŠT ·§â¡-N…CSœ†/`91øÓÔr‡´}›)ÛÊáÌOy'¼ÏÆvŒšùªNs¶.vŸL®ÁηÃÀ]¢úÂbÓ¼(‹iñÚi²ÔX^V ÕNXnÍG^—ªÚ™‹ÜkzFo_Œù+%½Á‡XœŽÂ;œé G«’¥gVšÂ¹i2£ {­Þ{fñ‰‡áí=¥ o·Ó””y»ú7ÑΔ{íÛÝNãd•'œ@>jãUS쮤$oÃÛ¼¼š˜æ†)‘uFëh.µ¿Ã>‹1¯‚ìmL UW'D;µ`I^Èݼ%;t­.Õ¶ËnOî8rü Êf0ИµáwyH¯Çêáz‘q‹hª”*]eØ„‘ÝéJQ˜ôúˆö“Ì{3spxq¿ƒnþ Fá°ÿ#QD…ð`¶xr4pu¾c¥¶=n²nÔ[…%µû·c±7¤\Èm5¤ò˜Õi%?kß5pR—xIÎÖ–”¤ì›)©ü}N*¾°`Q ¡ùžÔ| ÓËYØÏøÊ),ò°fÙ×x p½Jâ>/ýk|JÒþa;ãʦ¢àM—ÿ6–ó/8YIâbD+ãªT ,P‡%ƒ°:^rɘdèü>?'ÂÁDtì?wè £_øÏ¥øå†vݺ·FÁGÁ:^•æ©:ïVÑpÌa¡“ªª]ߤ6îÿµRëvÜ[×0¥<¨‹òï¶÷#‘‡|:uÓýï‚ûçˆ]ÆÐ8Ã/*nG”°A%Äx¯ž Öws;ñ8ŒÖý®ö=§=6ü4ÓýYÄGÛ¤#ÛTI­~Ë>ôq x¼ù®*8¼›Å¤'#"ó!"¾ ޼ÎcÕȦ%{@´s!Ú»½¹¡ªÕe&–Š´$»i’ý4ÉÛ4 ª²Ç-ÊCñÎ^¼·¿Ù‹ÑʪPJ+šÍÞæÍU‹ 5ìQ¦FÀ€nçH·w¤{s¤CÔ¬8º^¨å~o‡|ãJk úxƒ…j~ƒå©üåÑ0Éëåáñ¥N¼0³hJGî:i>½Ê>аÍ1“šŸ¤áâné÷„¾[õºÚt·<¬ê@?× ¥‡ }’T¬åw\LçtÜ­©[¯Ç‚t<ÍBlÉ2KlE.æé Ý¿”4 3×£µ÷^æ×€z³Âa¬9¦ñÝEºñÃÉQË_”¢@a”oÌ¿ …; ÃçØ©%¶ÏZG²1Åî2#WÁleC¿†§¹Ø¦ï16ùƒA‘{½ÔfÊèRÚõ`¿;‘ïí”#ËIÑ_îWÜ’ïÃEÀ£þÃ÷Ýq8'ñ1¨ê”Áþå·Éy@R±ý‹{H€†Þ– Ë$±º$YÁÆëâ™HøêDyIL¥^†¬Õ„A°¨nƧ;=ipÔÄïi È™˜÷GºÑ1’•N#mŸghY:f| Ì»ëQß\1EJnÛ©~ܹ·¤b0~—@+›†ŸÝœÌ%~Eð§"4/ôö½›êߘ™WR›úDJŠ¢:Mãb“F'š1QaÜ®x’•¬0v\(DT7O}ß+&% ¶r-œð·èÈLiÊÖò?æ%W—#š¢¤(bHr"%¼½&+z'µ(ë= ÇÈÓ‰0·öA¿–ÅÄÒÍË~¡UƒáúYr/í5˜áƒÉ¹mû²3v>U¼‡â»Ó"Ë‹ºúe¤w¯£XŽê\ÑŠláYÆ=µaKj†çY‡wóÓ¦³9«‰¥gÚ3ÚåÏ+IŸÒR 9ŠiWõê””ªIÈLSøÕ¤-×͵J’«ááÃ÷ÚrE9¬¤tù¶¢ÃX´¥hPìM¢ÁÜ.v1cZøEú5o—gÈŸ¾²‰Î˜K\Íà´K½O¶4 iÓØùH8Ë™r¦ás?ˆ•ƒ,4õ´flÝ{¤pñ%‹Ùy$cÔ{6G:°¥õT( œ—ŸM?b±Õ©”»—}ë lµšGêÞ±cfÉ;Ÿç'<»²4iš’„ñzIÇsÕ;H*Èäsò Œ{â ^Ãef’Û~Z4Û1”­"X~FsÊIÍs[QFxFµE³]•@76ÄÇBÌ }>ŸÎ-ÀóbJÊVÊXC‹e¥ ‰nÁÎŽÚP¡ÀÓ¥î4ˆE1Ù‘HÕ--¤(Ôßýb„¾!‘‹Ÿ¥qUùa¢|Õã'¿§ÑޱGJ¬VaK‚iÀˆˆˆ`üz<=Ñ7}ÖfRk”ãÉ1GÅÎÔQÁý+Š~ŽrÊWÒQ±†öÕ™v¶BêÔ£UÃðŠc˜£ßÐ ÓQÇG¦W<J×È2ùE‹ç¹9@Qb7I”[Ò€deN쇆´6%Z¢Yz|!ôørÑã ©‡z]xó9²>Bì±âä‰d;]a.ö÷7ø-I½~šU Þõ–$ éûx¥AmìEg}{Ï2öñcB’ÇÔd“Q0û÷pi] +ÿë$¤2DÒ~ÜP¼rø Õ÷i­£¹J7/¿'ÊÿØË­¥8U/A$çÀpï^,&VŸìàB†V®‘X8©DKvp!Ã+QR¥û™eŸñ0«%’üHÕ«k±›üÂ}ʃ#%Z9Ý䓊h¢Ã4V|RÔSÂ% õÄ’SR³)äŽìàB†U‚e‰œ£)%:²ƒ V ½Ò¡¥:8Pa5ÈÒ)é@q˜ ÀJåáGL+0Ò&„÷n„XUНøº"Â"‹ŠU*‡÷zGˆ•P‰)èJ`1ÕµÀÔgiˆÓD³Ä‹Š„Nè@ˆ’‡×-šÁ¬‡‚Ÿ¶7‚@ufÙö1¶e<Ìe|›Ëø{.ãß¹Œèt䨌”‘ÅØSåÛ‰r\ï(Y¶Ás˜U ×ò iI–6(Ç*HرÑ¥¥HRÿÎ[ƒnR²ö'Ë?Ô\ETRš r¡ëxI1§ýnl_¶tLIšòÂs˜ävdßÔÃ3÷–èS颸&±š`ì8·<Ñýº«Ê&´üµ¸õÑ`t™šH6ª f9¤:8›V®‡:Ç™å–Z‘=&¡ITùíËßɽþtW†É o¡ßÚFKG3ƒÓ®Èàäkü ÆðÄ´§@Éü(ˆoÏŪ¹}> ºØ·¡…±Kyµ£Z+£4±|t(Æálk³ŠUù«íú±¡@ }›ÁbÕbrPgíÔÓ¤ˆÒürÍ}N¤u&ÿÅ"1/íy§‡Ø"¡L¬` å²R÷±gl‰t‹ ð\I…ònÏt9Û-Ç#ƒÀ$\j¹Ð›¶Üuü±DN  )weLÉRnl:ð&ÆŒ“’|y0 Å£ÏŽ)ú‰Z¢z2±5UùX¦î;JË'iHPäÝ«˜Š©ÛÒà0͵‚„n›å½AÁØ¥lQ©4:.;èÞ^Œl'R¬µa‘Ü®ª»À×7wçraÍÂÒ]½ –ÉéXÿ2ïêÌaô©i äÁ{ܧÈ<ûX99<×ëÏæß¬×¸9úTÏn"Ymóíà½!—áæïšaÍÒl Të¨çkïü&¤µq^­Ýp½áÄ.ÄzgÙPXv`"•Û¹ÍD9n\g;,½E|öj+Ä *¢Á‹DzÿÎF …á˜Î‚ò,·lŸ,ÅˆÔæ­9îA9‘FåÛà¯é Ý|JÖ¹x‹.È9ªDA,­é%]SaúŽŽÑelY¼¥×â7~ѽs"ÕQ\f•ô‹±ÝyË®0%é0©Ì [¦ŠŸi¾{&1™VD6àýZÀ#gï=ž‘¦É~]Õe.6¶#¨†b7E1Q¾Ü‚m`}¾á`ú–£6³’~j.·CŽiäp(ýï~`v!·’ƒùÃÉÒ=no…;`áV¸œˆ]aÅdC둬,ÇIL¶AFAÏówÆYÒè%H+|ÖDv’t>€¤–V%šßÒ€e–þEžÿ¼?ãÁM»Ó!jµ¦µV¶gK’苤yô:ìxܰMmÍ0f¸lãþäÿ1'5û04+.oMÎ45»,@!¢V•ؽ"ÉM’Í¡lQql%1œ2Z° ØOe×D¼mÕÙ8=¾˜*CV&áæï²°±:ò-#•ükÂTo©í='³¶wCï+¼iÉÞÓèlPP¼Ù Üõg ËPP¸3˜mŠq²äê¥IÆä­ò¬¨…+KiÀÊÅá=z0:œ ˆ¼¹$}¾î™Â\ MlÛ1³­—‚è î ?°àûÉ}½¿Ú3mK1R¥öœRªå<³¸J”Uñ1×T…ÇÄ‚""щ>~CQÈè§ KíóiKã:„Eb~M e¤ˆŸG¨B %eu2+¦Š1xLÅ« yÌêlñí«†+© Þ LJ};eßÕ’¹GáÞš¬KŽP–l…¿m…Žî›]ÞÍ™"ÓcºéÄnBÀÆ ár¡éMŠeA"9ßþ,_D–"3ß/¶å7§Ù ¦`x"È‹ðˆ%×Óo³b$´9]6,¢0m/0AåEQ—Ɖl0P"Mª‹C úÒnŠ f§i:w½Ä¨ÿzW†Aâ^šâq.½Öü . ]§R‰fTœcô.d£mÍm Å8¸ºfñöÍxH|!¦:–[¿ªn)ÝFÖb÷êTQºÅQäVÇ¥~ÕqcÄ&õÕ\Ø÷]2ßÁ83UˆùQÒV%‰¨¹þºXl‚eYLÒ ³3-CZr¼¬Š/ŸG#Uë%æ+“ù¡‰©Zýß‹’]HtëT[;!ý Ü÷RU‰8Ø“ÄäûA_îfÊ ®¢×ªáuWªŽNËm¯:gS9KÍI[/…ÜAØß”Áæeg´ìG‰+ûȽGÉÚã„}»—?ÁÖd°4ů–â¿FÕ¾"ÈXcÇ¿“¼NXä ª{$ÆLÎP†C bF+ùâ¹Ù—ì|¬¤Q%¨œÈük}AvW{3w¯v K#{5zyÅVqaüÒldëgñp,d-#¬ ®G^ÆM‚æ1Y~[l·ÝRWã_Šv“Ì;ìkQ`ZþPPάr¿¼hV_È•¬Ý9“Ö•a$Á)!Q÷J…œ“œ ä/¾·††z& Ó´Õy Û!®„oŽ„ý*mÓèöÈT’B‡aùXm×YªÇ÷Y¹´Ágµ ܨ^¨Þœ¨æUÇ{®mâTš6÷Ö傜~yÃ*Ή7,!çé“g´ë*Y2ZR2X`|èL«¸ÎŠ=ª 5<æ®)ÿ³E!*†D.mr›[qƒ” Q±#ÿÎ8)§ ¥ åv¢¡@ vtêU¹píãáóõp#!üÂN틤g/‹N7ažk®’þzEƒLî–XáYÓŒsAýBæ¼€ 0~Auÿ†÷Ìžqc߀òGù¤eå·bñÍ/ªÈYQPÏ}J4M£Ξq/¹_À ó‹wõ=êoÄâĤiæL³†)ªS#.%É© ¿i”m’…û©»‹ç‘%uÙDÍTÈîÛ+’!22æ²î¨H0Åì5û%,ÊQBÚ ’¢Ûv€¡¸É‰6ûÕþ”r•}"EÊd›*˜Nt ï4nò·„Æì.~Y…œæ3^¢wç’7$%‰É,δ¦]µÚÛ¾®Må¸ÉáÙáýP?owèb“•KvEõ¤q°ÝÉ‚(’(bN}¢¤äua²eù©ä¼zz“¸ç  ^ _ÈS7èÀKmO;‹Î˜‚8¬g5¥ÔEÎYÙ;^‰A¿ž¨gV5y³þÓÆ5ŸÓ<4޲]§ÈäÞ‚BŸÌcs§<²"•¹\?ü?Ó›~¬àmêƒ$üاK8ORôØæMOÝ­æ¤æ9­àæ "Ÿ0u–d¾ôœ3ÇžËðõ¿¡EçìÞ6ÓJŒ$wyiLŠøQ@óW çþáU0 !kÞ©cmˆï¸§}%æÍŒÃë͸gÙÎØRh“g3ª¸U§û«æA“j”ñ¸–Ɖ¾_©Í—ÍȆïË®LÎkÕ¨Qf­R~§YøkƬ’Õ"Ji$M“ù×øí¤ßÄgºÎ‚GØ!1th–ìúøõ¾Ì¾k¡8‘£Ë”Õ`Æ nÉ»#jYE Ts4™¡ÎDÎ$ZþûKZ«Ñ¢}šo•]g|‚#Ú ›· :=W²Ønçdâ+þŒ–´O‡•¨‰Ð›Q:¾4çHl·ž¦“‚§1ó…õëmÇŠýáþÝǺ)=”yâðropr5°i§;šÙ¼k)IÌj¡v¶è¼šlÎ8,­)qçZG¥4iXFŸäð ê;‹9Tœ”ËýC§2µ´¤–ÿû÷W‘Ö¸ó‚Ž1 aJzwÒ¹»$ƒtÒÆo$N ×óg ÍþÑúêGê9-jE!̃ª"‘ÄœužSX~>ʪ÷ †û‰ŸÓ8š<¸«²"få:Ën³ëÎÓ¬]‹pÕÃÜ/–Ëý_<áÇÝÛøtBzVƒåÒ6…ˆo´R¥-;<Õ饛ªÎÏÈ'dn˜óŽüP2šø`vo·1Žw{°h£°±h]Ü:ËnS ñ ü•»ÃÍ!wç°;‘eÁîå-}Ib¬Ü€¡yÂÕ3Ë©¯×!î´$‹íg‡©Ó‹›Ôí'‚íXÐÕ›¢^¸öð©­Î.}¸£Ž+§Ûñ(GÆìÛ—ƒÑaµG2YÍ–óZžyÏúuwr½‚~Ã33Í2)š <ÕÓQ䑃óøöbø‹\#ÓN¿k€îœ×c5ñáøv7Qª_þÌ{æ3ºú£ÿ½xl0Ÿyä'¹«€Àé=} Ä·û`‹™s€a‡e0=zh»ÑhÔ „/Ïèþ÷hà+žÉMÐöÿÆ\¶{ñòn3Sz…òòs‰˜£h厠09ô‡tòjè·Â'O]ßIl°˜ŸŒÙBW!Ú}a>(ånr%Ö$ÞC”›T×(ånt¥7P‘ $©ÙöãyÚ²¼!ÓTÒËùæ<åáoöïi@d÷.=9l7ˆEIA3€eç ýI x“†$:—ô³¦¢²DýmR";Þf5:ðs9)P/í#ÑÔáI/$e1©üH͹å%9(ˆÙT{S‹Ãº™í‚$+ÞGSŽ$±©É…aF0ùF_÷2£{ËW௾C3åÊc¿\ç=Biÿæ%¯v/›—`ÿòf'8L!¼N`SÐ ’¦D ?ñ12Z¼æí†˜3< Uòf‹Kö$#yt‚€…)x=£ 9‚:?··Ä•Jîç”9Ó´Ì£ª‹[ŒÈØé鯋)ìƒ<áIë7ö!ùDÖžBô{­CiPäUT‘d¥çL çÈ®4NižT§U )âTUE^0²;yy6 ™ü„䋼…ò«¹[DÝëc@ÝØG¡Õ·:ñ8,Éu’rOíP°ÇWÌ¥½4b*d©­æÍŒÑM Ëõ6fÞð/ÿùÇëþa¤ýáæ®qI£˜BZ”ê±1äœ!»¶Í-mîRm7¨€jCFÌRØ0×VYoqOËÉì¾ôÅòý®¤‰4&Ë›'Ì®®÷IäO½`m§ÌΩ±Eó€Þ¦}.&Š€AÝŠyø2 âL$÷¨Þ‡—ãôrtª-] ¢>C\Xªv 6S^2!ÿÔy佋]¨zØ>ðŽ,QÇRK.Ûakn„†ªÍ:c¡”3|~°´¦šy¶Sˆ*|Ýc <6MóØÊ8õhø«÷ÄxTëÎ7!ÒÎMÝд4¨Ü“C¥4„û³1õœ»¼œ\ó^Ã`n%[:'+Ë4™bãÉD˜éP!b$ŠdØL”cd!hòú ¼&å&ñªâòn¯{#LP‚ÈxBAR³J1˜ád§–ƒt‹Blx¦@WÙeIti¡ Ù¡É£jBB–]p- ææ¥kiZd1Aõ,ÍaÖŠ×RV…tÄu^ÍbR·¤ÿü³1î'ÖEátA§v°""y~‰#()£S{`ˆ5Fn°Šbc«¢™JºÐÇÜ¡¾ø±–²=c²1eýîÊ£5f¤*†Š’2 A˜§»Ÿà*)—±®ð­žÍ0·*‰9÷±Hƒ9…¥Ü}Iè§Ä iÓØ$µFT0}êRÈeÒUZówQÒªº©ûhÜÙ–b1l™Ä»“¬VM¡d-ß ÅÇ_¥âèA¼R‚Œ×°­œ.l·yÕƒ£üg¢%,ìòß6‡À0¶‡9@Y&ö)R¯’.2hl}çÉ¥Iÿz+¨ Õ¼NUR‰a üñwˆËªoï8 Sê»í"¿Jp2˜8µÒÙƒ}èÙôH³+–Œ§øøºŠCÓä|*ù×’Ó*’m·:†­s‹C‰°z÷Ayëþ:âî ÅÎÖ…"vò<ÙQÒ<‘ßaû7 ¦z©Òî`„«È‰7ó&ÜåSþhÏAdáÓ”ù»š<”€‹¤ý¤^¯Þ“öJ«ù‡‡Ë/ùß×—íÆÝS÷ñ{+~ÓFM—¬¥oKçýQÔ?+ ²u&ž2}S>_«¸”)tzUVŒ44J?]¦ƒDlŠ–¾™¬u©DVóعyjxµW¬óÁˆ˜âʇBî2Jz¤%Í}ø÷Éÿ†$õ†sÊ¥áDål_еÆVà+²"`ÅTTeUAª¾ÙZ*?­dNO'Zv¹fúŒÊv×'K¤¹IçxbiÖä›kµ€„¿0i*Ür’Y¾„¸eÒì=Ï‚?׳ÁK¥„Œ¾6ø “å,«³‹+¶ù… yŽ Oú¥œg>ÕY©û]ù_! å³å|¶Ú5ÈÈ-¤^±VŠ´Måæ5¥qðÙr˜f µ«fûѲL@ðFò"s¦5àÒ÷ñË?m%¢=8ôÚo"zdÎuoYŒu‡ò­‹Ü-VêÖ*s‡…3u²ãqk,q—qÌöJ©†Á$:;` L]óøYÓzòö8êRPÑã@Ȇs ó;Ä#âœ"!*ÓoV0Ói(-™1Éo‘ߌ%e&SZÃ/â3 †“8><¡™vâIÈæXt‡¨c÷¿Y1üëòÖÿ»Ž ã98ºS±£Z¬Ã>ɬ>s)Jÿž†Œ›g¬Ÿ™÷\Æ{ÍÂm×]÷8|/úßøéef!-¤¤¤Æ^U`î¶0+wR@ÜzoI|kÓÈP~Ծ߭q¸!–ÍÇéi(¢šùãÚ÷µßö®Üß—íêê¹jóóíoˆšW,†Ã±N9d -ƒöŽÇ¿ äQ}y}7ÍØS-*ÙŸ˜üÑm£¨›:“Q{"â„0깪ڸz«<ßœFÓšH1W ˆ©D¦×íöùEÕˆp'´2: 6ÅýxÈå¾çð`E/^Î’ëæ:á}{ï Û¸ êÙJ’å†%§AÍ‚Ýf»Ù¼nÛ-ŽGjÓ罓m7v¯dheũĽ5ÑŒ3©ô­•xvû^”VP9x¢»P_ÝAéUZLMÖ)^¥>÷*ê­b¯äj*v›]0™˜«£tpX1Ô¢x ”wTÇ®æ[ðb¢N…CŒ¶/‚—#„]lM³S˜Çáû3Üä24²ØJ¸†´tÀkþ–J´÷i°[Ò˜„B™šïc\-MF’‚Ñr,j¢Â¡ø.Z„"J¿YáPQ|S~uc|Óæ e&¿®ÜèÝP+^š|„¾Y1üÊ_õB»À³•›l8àV„FY“3Ì¡éïK½úbþ4ª˜u=]2Ï, ß ›®¾ÃL"pЬ*¦,>é 9;ç~À.°fsÒÝâê#öM*—sfw™N/k;%û „s'iºg‹œóâfð]Ã’‰^¿Ø±rø|¸o¤ÌJw>ùbâ¼SÓ˜&d(t·)Éo¡ ”@sm¤¸5év'A¢ÚÛ\ryøÙ¹7î”îÎÐ=.ŸFÎv¦£+K1×!@mú4™v3ô²ü¬1›sêéŽÈ]£–ƒqSØÆÎ˜ßX¾Á ½ l‡36œ!u㻗ѳGv˜ºIÒNº‚¹WXëÔòö Sm ('t%¦×}ùË`kð´y#Ü´mˆß'L#ÍSPðj5/]ŒhÁ£ó_ÇpÉ/ a ZX»D+øÉ3øS¡‰8?+Láøµ·'šB\ÈÅ)3-{‚ #ðœÀ;Ô˜Z§“îOõº¡ûëj[ÇSu3Éâ8¥0Ì‚¨äBÈ=Q›øvQ|é1%•·–Gdz=áXÇŽ bè’‚; •‹Àõæ½I†³°òñ[AF .NòO˜ê}Éðƒ¢Ô£WÙ{s’êÌG>EFvœ¥–0µç&â²"ßcŽÇa•£:݆€×i–iêÉe²4ÙòŠ%Jåâ} !Û9V¤ß ƒuø³AÅ7fµ©¬Âɲœ£q'±ºÊ!µŸ:ÑèÎyfàXrŒu”æžó©èë™)´)˜_ïwõâ.ã±c¨møïÔ1ãß.ryã}­V®¦ÁØ]3õØ9è±û=ô³6øXö$Ä&S³ ¤ ã Q€ÖÒþÙcüõ4Ó %ǪÉT¹ÚÁÎÜòÙÁKŠnxà™£¯â²û<„jñÇOíížàަs l{¶l¶š74øV½3ÚàUÔN¬ÞšÉÛMÚx½û¬6M°Š+ž)P¼Ê — ¸Š ¬²À2‰WU3Ù`¿Î!V3Ù`¯1º›‹ ’^!Ç^¤BÛEO[³ÊXKÄ8Í“íãö¡è}=¾Äf^Í“ýûS~á<Á yrEëFvMi"&Y›jîè¡â/AíƒÎȧ‡(ã:Ot(ÈM´Ãô¡†É[GZ¯-yt¦•(N,¿šæ‚‰{¿â×^CÆqwŠ·)Š¿vãêNg‚p6UTù›½|Z EeÉnâ3ÒDM¨Ãã0šR48R¼Þ9QY°|?ÙR¶mòÞô†øÑaõñýHïoaÚ]Z<á$ëQ®|±¢´µaêÍ…jº³õhÍ€ª'Mci23LN+[å øÍZ<­Y!ä÷™Ð(Þ¦(œ4:3ŒªiEeÑj¦¡3ÁFßÖ0ªüÍ^>­†¢2ƒ\3«Püf-žÖˆÌ߬°)ÅoÖâi€Èï‚¡Áx Íyr~ö‚FBÏF*/`rpˆŠä•ð„vQ9-ý‚Ue-*øÅ*Õ%>‚_>¡eužøpÉà‹ü½ö¤%ä@»Ú"HJpоz‘–‘òó¯Ü˜\7/»lE€°a¹éU…KrË#üèdh‰Ý6Õ——>·à™Aë˜ûT%%qægÔ â§ŽÅ딳°vvO,mÍÝ%l¸Ëƒü»+„MýLš¹ð‚ébbb©Jê§g|Qrñ4оhèÁ}þùżaŸÿ˜9Þ_ƒÓz÷2G¿´WŸÙ°üÈ»Jñ2VE'’Ó3Ïj?M%b?½î •ÀGŽ˜™ýWñZL0Ús•‰R¦žhçbaWê‚hÄAT¯\Œå¥ÓC%÷¬ˆ›dß3MO#LgJ ’zIJ;Ÿñ:ÀE›ÚÞr2OÉà°ìùF,#A£Aø: ÝÅÔ©”žÅë81ø+±!u(V¿M£’¶z†Lë$YœWi·…¿Ð’ žúY£û°ÍR½xn3"kÛmE|î½_‘²ãÍ7è-Á&á~¾à‘¥U÷ÝH)¨WX9YĨiàa¦y€•lŸú]³©žÝ€I9/ô±€-\åÇZ¶Œ„äÍS\PÒÇÉõÒf× ›öU3ÓgÌ-J”¼ŠCêê,»½D¨æŽÅd¼¥rüŠtó>~½2žÊôùnE£Œ«5~o3‹x€[Öò{d=bâ¦13¯×¥ˆæ…î¸pVô:@.Èŧ_’èLóxŽÄ;+RfÖÝ0ÀäÓ3¥Aõ ˜ä<£è¦T\+(££mÍù¸wVäÇ•£)Çw{ŵBÈÅÎa«Oƒ¬å§©QOé{|Û™|þ®æÇÂðôò’›—WKÍ;ÕŸ`?AƒhSÍ”œ†pjî‚ÞcÄÈÿ¼‚?·„YM€¥æ•å†I± Éyn± ;4ƒY]Yº·–N4pftȃÜ]ORn÷ó'‘P­÷ÃÅçŒÎ}‡c·üÎî[c% BM·ºÊWòHû_Ô»?ÿÿ60EZ×¥Ýg0˜ <0gþBŒ."È`"EA‹X˜‡GÐô‰üÿ‡éÜ ö‹Þ;Ô›?¨?þ fµJðgbfxÇtùÓÆþ¢HŒbÈ€~[ô%»ŒkuÃ÷ &íÓk¼ŸV‡`ï xÔ¨»Ë9x³‘‚ñmÏ—ÒI­0;Âï–£¬T8%ãÜÖ”ï&ÊmÓcC‚hÓŽcÒ¿ÞÑ›¾C\–¶=rÍä.‡3øÈêV+¥ÒdD­w;ø`¾qD‡psp¡ aóDA#ßO€¥ˆŒÅÌòé¡õåEv´ÀÉRš`×€Tr©9¯Õð!žK>1¾¦r‹²:÷ÂÀ§€“Ê•š¯:JêÆ%€XüŸŽ”E•0ó‹"c?n“Ô‰¨L½¯£q›Dœ3£™¦‘œ&:¸ÉwžUÆ%^·æFQå˜Ã3ͲÊ[·{ÀVŠÜ{”$˜Ò¿%ÛMÕ¹òI+d‘ Rç" IqCÖoÍÒÜÇÇ?ÊÝÞ\ôyå8žÅZIÁ·£û‹a{ú €’$ÒÔdÜjKò•?—ª0†OÖ£Wi¬q(z'bÚ;0P¤uLw s½4(Vq¸™(ëëC‚5öâÜ}œ5ôë¨"HB·¸¸ “±m¡4€h-Ûù÷ Ü½öšÞ5LVɶ/¦ Æç dñÝæ£·z§ñü¸‰v²ÍF61ðæIýŽ?øïaÓôØy%nÓ€ŠÁIà¬'–ÁsÔ"§8ì¦JC²ª;MÉ.,•;3Ù¢%÷°;+y¨çP‘rÞKJ8úÆïøÔ‰¡™ÅÖÎëÜÅxD…€ae'öXßm5;Ðêº7r¯7s·¹Þ¶–²èDX.ö“˜ž|½!©ÕÕ*IÜóSŸQyÇU \DMѨt©{Åu wòÊdÕbâ—‹Šƒ©¨·¥®.fœ_'/j¾±Ú¶¯ëxåœÇ†¨JJ2D÷­‚íËV_H-:ÏêáÌíËuëÙfô&© ÃLÝB.„Ýå` =JÙÔy  5ïìŸKÛ™æÒÃË«ý@§¥qþŠ ýä74~4`ÖøÍ\8Þe{KÛu»m)G'»¥©—º_©<´ÓsUåNN¥š¯Ž*E´üi·qÈ#á ~„Â’¢ªCÌÆ}Àæî~Õ°ÁÂ¥B‹»ÿB1ñ*:¯/ÆÐPØÇGKä,÷æìùx†#g’«ù­›.uW¤NÒÀüJÝ¡RA'î°‰I–, Â’9¡´”îIq¡*Žž¹Šé0\”2 uû1ïqì»ïhp““F=#ˆÆÏ†Žß†Ý<—Ó<\Ãy_hœˆ›bD%J©ÏæÝåÃYâ”%$®øWÿG¯©ÿK&ò £BP–Ú/à""åS°†ûŸ7râ|œõ›–çùhÞ¦ôJ©êêdÖËj¼¤rOµ1|JPÕýC~§ÆëZUèšÃ[; ¾È!Ö¿Ï”Ê`¨Ô%Û¿ÿ‰3ÕÀi­=\–áÏ&ïÎóÄrd4e£C¦(å”!~9Ïc_)Êkí+}Å‘û>ûú¬ |Ó×mËݿٵX8OÚ û¦€Gàm õ˜ •¼å$zµ”!d †q̸U'Fþ`éMšV'žË½ø·^Ä{÷„yT—¢É†w'B¨¤8¦¤Š*–O VÁ_•Éí.~o´]›â½x?Ý&ŠÕ&’cJªK›Ýœ6Ajû)·”›¾’ù}“»y³U å®`Ÿ$jˆ#nؾw嘙´cr>î{àzÜüº™XŸ¤¨¶(5Gzô"QºWÏÅ&¸ÏägiùüÁÔÆý±øgDvÖ݆&Xµe”üw¶ÅLLƒ MÞÞèVB\"Òá‘Ü4g’×Eb•Ú"+nj›ž 1í Þ Ö ÝOT>cSÏŒwêºa¼ŒDR¹3[°Ætjz…ÙÖ4Uɲý?ÿD;s1J"ã›Â¿t튱î<ŠÉèˆð@¡|‹Çi•øœÄÅIЗN®<üêùi÷'?èãf¦8Vž@éµ´d$…·à mHäþ¥Ž¬2ùA©2w¤„‰íËáeã6(êßcgïj„")Äû¡åî)¹cW`Y7ã÷C‡' Ï~³rcž'é¯Ét%ûxêK?çÈhk©Ëgµvï®J95wÚ­oÿt“@¸’Õ*}øUºH2Š2w“BdÙÖ=K—î6¶RÄhUóBÖ43ê4}µ”¹ËÒÔž®s?•çB˜²ê{#·Xó‚g=aάzlv ½Oçÿ‘׸·s_è þœŸ,?²\ZÈ(+¾ešh®ŽÊë ßçÙ’¦gFƒXt£œM å©fÑdÈ&ÑL¦—èVÎÏÏá× Ò>-*Xx×QÛT»5@ýbV±ðxI]\Œ‘,_4Ôi3ÇG‡aLi.÷€*’Þ³ÉxͰãGrÈͧ42 .ÅÄdУEIyÒ:¢95IÎá¥D³Ñ”°y-¥6MÑåö¶ IãÇ\¹4«S8B‹q¡ù¬Ytœà¾XœP›Ò™e&ЖÎ+ÂhYŒ:Ì¡^VÍTŸ™B5ÁDqgÓOÐÁD`&Ñ«ÖT¹ZÕ,DŸ–ºÈ© ռЛt«á3*ao„ËŸ¥¢¢Ÿ¡"ð•Ðó(J†Å 95<®¶NØ›øPZ øf´RŸß¤\wT¡ï˜PîNÌk[ä!1û¯¨BDãÈ%#§‘ÜÓë~ˆJKΊn|m\*&–cÕ(¹m»Ââ÷ƒ’L_°wβÒÉ\LÎBP†è>yÃæüÓ 0”ÆàíëX ISZ"ûpo·º'æ€Æ£Š+Ç¢ùQ›¤ÐÁŸTvé­BzËS3Wt8qSĤ!±•ZÊ0ê»Ç³½3üÈ`St¥¨b²ˆ`»{wóÇ­ÎTG¿36zÊõ™%nt¾ Æ}7‘eÛàÀ“ùg>–¶¥Wú\_Ò‰±B=›­„+¥euÓ]ÊýÚÆ£Cßbc¬sÑÂ×Áññ®QQÔ9«bÓ´× ³Tt#ž*Å¢ù;m»f…qEƒ2G3ÛÁ¢Öh“IÌ{÷UïÍßI—#¶ BZžåžûæXIröïêÖ Ãá2!Œ³:˜Ödô¿¸9sugŸ©;±Ü{¹·Á¯9n¼âñbÞÚ„¨)¶ïÖ¬—Šú›²*¡LT˜T®w.»™Ù#[uŸü-».Œp¬«TIÂUÙ§a^k‹­ x'rœ@JEmXRî†ç<šøü¡ð1Ëù x¤$–ÕÝÉ îŸ‰*vt¦†j þ¢²e÷øìÀîm³Úô~ü²S“`ꢄBLÙŸzilwÜÁˆžn<°Œ¯î¨0MÂÅnêûJ£X.ÂXò¯Í¸ߥ›áíQ#Ð3põ4ŽVUŠE›WWnÍNM]ò”ÛÈØŒPŒÐ­` Ós5&ÕhpG×K¥Ò¸É·ûÑzoi0ÚT¼Ü"ç’†+ÃKü™ÍXY(§¹‰QØPÙApõÛy«_ÉHnT š‰O’î°ô&ÙP¸ŸhÙ†%poXÁëXcØ;ÁnŠ¡Qn­_›u­S” ‡m—kùÚîÿ‚­{X¥–Å%@Ò=Êçÿ÷ÿÏÿu 401ãwª\œ÷¿z8ÍÕž<æTaâW ñ_ ñHÖš¶Ä½C|Í=N-É7/?« B–f0ôã0¶‡ó#«»ajDAŒ£È”xZ– P&Ó >À&ÕÙ¼šDÇÇ€Déâ«(À‰R.jYY/XÙÀ ÍコÜX—Û-¸ð‘ÃúàÙLK¯PÚq”QáUnïRوĎç, è^ÑyªtÊò3!ðŽ¸ŒEr\—Uê§#ç~>ÂŒéAözdWO½à³¦å-höìþ} ÉHodzƒ”[já©“ŽŸµ¥Uš;íãÓ<Ý’ñ–”Ô‰¶}o¢«J–ï½ThCÐ?Y’O=B{C'9ûDu%üA^ƒcG~¼:z :å¸ÊÎzZ¼.¼¹Drëá)ûYNê•=ËLëW+ã]ñŒ¸^,ãŒDÙvá¡’1é…(…ÀÄÛá9LòmÁXÜâ¬hÑE@·–#iL 3”bкˆä<]îŽHw+Eå}¯d×2HT!ó[Â#3iªÐ×A¯UÝ4ég@µvãa’ó$2Eú/C.ÃÑ餃ø6°:@ÏÈßq»ê48•åNŠô²[¤²!AØt×T¸€,# î9+V»xÆ›TÜ’ãÌ· óM(k:WËÂóÔƒAÝ]gœI¯0®©º1cFÄàŒHlŒ]ß”ò.ñÃH'”ï­—sskXØDLíÅ(ϵDcÖË}RRæêϱ‡R O 4iŽoÜÞ5kbÌ×áy°}ùƒçx7ʇâ¿h@Ó…;_›©ÒP¥¼:-‰z7ppúYϹ»@ÿz‚·5jæ®ÿš¢Þuì=ëô«éìk9¬=ìõè1 eInÆ9³)G Šcz;§Q`ðWÆcOh¢¬= %ôZ@hcš… ê ­¨è'ÍKÇ%¯°6EΉFç§T' öY›œVAÄâÒW+6°øÅ¾Ï­<À¼)TÜÖx{ÕÀ·{._ê‚5‘RøÂcÅåÍÖÊ;…IóçR‘òÄW½y!;¤:7ó(ÿ“”…/4q¢)„çÀ%QɳTj†§¹â¾¸%,'MoZ~&ªò¶Á’…¤Ï?צíe&ÏBóþ¸'å}0Ã-x·óÁ†-mB²/î)¹‚G¤Ü¸@2 K.pIjzÄEˆúgQ•"|[ýÜ/ÚF+y×JÿŸiÒ’c|Yû%êÆ¶fÅ©Ùç„ ¯U7èãQÑâÄêÚãàÇ#‹hA 1ežèì/¬{./-SDÒÈ1Õ‡æâ çêDiå´•ä»ëóŽï[[Åš¬×c{ðŽ¤¤¨4%V5›ßÔ‡è¾D·ÑÒ#6©Î£[¾QÖj¹^6À ÂÓǸüÙž×y›Ãï³’|ùû0c g‹ñ“Åãb¦¼¿F~z×þ†K™ë-“nèµA “ÜŒt—qû»E¾4ágÞºÕ€êÈRpn!U0ü?cê‹AfŽ{cŽôáÇ4šÖú7ò3²”ö’»kyRå¿þÔJ÷þ1ttnÑÔŒwôê¼·¶”üû}"MÉ/?8¼È¹ðý¢:…”,²‘äl#ûÿ¯§œL¨‘ qE÷›F'¨q_Û˜äÒ ôK{°rs“ùiƒøÛÁž_"ròÜõ.)={A̓$ì‡ÒDðÔкï>€úÝKÞz­z¸TTGnËàöáݸ¿‡â;ŒÃͺ‡Pǹíf~Ùù±áÜã &ëceîÑœv`év“äØûäX²3!¹xnwSkþ*¹\ØÑÍລµ‚°¸¿{Íc. ¸(ù²/Âú£Zþ*›m~¸mÄ­Ž{n+Æyá49²=Çñ»l½í ÇWÚÿ)«N5™1ŦýýPJª ";/«H–.äï ¹¡HøŒ>™-4óþâŸóò‹&x%ò…–µËÁ ß”ùMÖC` ¡|iC ¾ ®1ñ/œøÂ(Èp¢/êüCn±(.'avó¡—ÓqÕø»”²ßUJžÍ™ÝÎÈì_˾¸`OüLðíëßÝAZß,Ç~9§ã9;ÂÂ)Yô;Ž eˆoT±ð˜CTH›ÙídÐ Qõ’Šd,ÅP¤ÒU2øÁ°_º:õN;ÏT9Vã~×ÿ>Ïhf”Y'X†þªÏ}߃ëþ™Dý¢Ï.ØÞpaH†ë ÉðMLwÓƒv ×£ò)8ÇñÔî £{°Pù/ Óaôœ×\ƒç[Öhº!hù‚…a=û.â£TR®ªÞ/cÎQñqÈÛ;ç2Ù³Å‡gŒ›– «ûÂ\I¡AX³4VŽNè{CÞ¶N‚ˆÃh$âÅsƒIƒzØÈ¢º¥ ¹ ¶ö«æÛB¢# IÉõöŒ0î~=`=1ÈÐ\’çÅn„˜_o Í!3 ·Ò]8;vÀ.'coQ€_ìÌ‚&©¤µ·=Žš/¾¿÷®„!;¹Ÿ¥×±û¥÷I äîÚ¼Bús‰y ý¦êÕ¨OÿļóM³–ôl^³»MæwF1S¡Kº§ÄÅÃëeùÑ dpðs|axGGîÛD>¸¯)¹%Ò0>¡k .ñ*G/o½g-Æ·+CÚ»Ûæ /ÜŒ8@2ÕF¨@{ˆà°-‡Åí¾Qé&É0²™²ßRäSáŸY¥;Ñß™à§Áå€ÊÛ•skñ€ú׃PsMÑ/fDl^Þ¦‚wdˆ·%Šå·òo,roõðRg4ÍÀü§ú¢šÿ|NòÊ¥BšsÚ»ãü=“Óg+¨.{!iݾ¥‰$©ìæ×›Z<,M¾õ3èsÉQ6Ú¨qórÀž¬¤3ÍË ú.ðLóÀæ`Ôiô!D„©4f—†Æ³=ÒMd·Šhág&°C)ùQ®\yì#¢cÀão}“/dLxÉ`è3 "ò‰ˆ‰Ü“šÄ}"rH'3 ŒÊʪ1íl1—,r—#‰q‚r:Õ Œ1Dst$C‹BžðºtÀo(ñ"Ð Ú2šToòßS›:Esß®»ÓÎPe‹ú78kMš¦OôHqÍÑ‹u¸¨³,õ»ñH¸Y` ' OG^ ¬“Ù¬±V½f,¯ÐN“«FKdmxM„”®NŸì²ŸÜFÛõ~¦'Ña¡b‘»ÂUv! kkS ®¡ª’N­X@‚UÿrXÔ8Q­écm9´ÕSœ|lz.(ø7S?aéZððCî÷¼ÁyÁñ©S]2@UJBDüñ†ÁÔeT©ö:Ú`A6t nQBÕdy½‹h˜îΡÌYõ"4J„ØÁtùqp9bGGeålþ–l&–ûåÄUt£båt‚èŠÜ1mÐzø|à¹GâLý¨ ¸Kõ/·ð÷ƒÙüX}É¢÷¾{B‘í¬RœÝR÷ÿŠTå-þ3ͪDí~NÔþGDi‡ ‹ ÑäNÀ0ºÄl7<'5ÿ™ÞÁøî‡äüL¿,ÉM«š.5¹÷|–*ÉÛ“Þª$& J²01o‰°›%-¼9¨~þ„26Y¿%⪪Œ‹…¾æ:“KÅËöïË)cá_;hä€óåÚ‰D¦Þ eî_A¤Fœƒb÷º‚ËÀ»ßȤǽÁH顨 ~‹q–@È›<ÈT!¢ñÄ™U ²«h~ÇÄ*Š¡Û%Ù»— Ú7}fûpÞÝÒhžw‡“Ãì ©J$´cª }7y×'„ 5½G«à0Gr•gÖõ1k—7ãQѧüê‡ £_oMg×Ãð VÕì1Lí¼æ¾ãYÝT56WÔ¿™Mäß ÙÁÇ–õ1ú[!\|BgEáï‡Ä«È^AKEÈ0VQÒªºr‰ªÌú>r»8šñŸ‡Š0Ó$‹Ü窊3Ž@áÈ¿óʦÊ1ˆuÌøÁˆW£Ü«ÖËX=\lKTräMiAªÓ-HäoGEž9µ0¾¥®Žà;¿±–.4Ž[geAÛoý¼|úáÖ>7´TîóMÃá4¡4—/!ã)Ožþ†ÿ²\/=ãw3æÜÈÃG‘úÇû Éî¬VS’FuÚó µе FÌð'­¥\ÖÒ@ÐÏÛO§#Px)‹ÍS"z”¥‡czf†´ ¥ b2F; &ƒXº¼¾Þý%ØÕ×û¹SÏÏÙ_ï:DÕhj ß`o8ìCó¾-±€xiª¿ï¨ú-}ý\‘‡æº?’®c%Ìt€¯KÝ0†ÔôG–ì-€ŠƒÉ šbó²7˜†ê\Ðñ\¨NÙ!_R›*“2½gâè²-ž/™©Ï_Þ£WãtxĔ×êjÌÖ< ~Khª_?lå&פ ¶Â[UIó˜–rµ™Äë(Ý1iïMR Z^\ä7t<±v¦’ØýÁ¤xôæ_p®ö¯W­z£¢kçj|¡”þr|äâ¢&!Ù¡ª"74= Sþx\d|béò"gôhᚥ¦ßeÅÒª§ŠMOoS¢ ‘qd»G‡jQ[Ø/bu ’ècœ¯ôï+G—~½ö cÅŽÇoÔÃ{%1˜º^éΫåuÇîù0MZ2¿KÛ«§…7Ã*KßÞ1KY–þFÒÿÁÑKJEÆõ²)ÇŒ*ÉQ’Šnü΋-ê;Þ'E`aÆâG‚†êç™Ü ¯Õ­È¨Êû .õÉóí$¹©'ä´»¶|㬊G® îeN÷N׫›ºÝéIä6¤£EøXÔGk;tŽHž?ë;¶ï»iÖùWžr7ì)ÎÍ ÚÖØ±‘ûÇ)o[ã6¸¼¡€¦ã}= ©ò“pþÊbt ›iíÖ¯»¤ŒÇuJEA 63„Q"+.ƒDn늲9͡Ն7k É|¼*¼*¬² ÌÆK= H••˜=.›ß•çáðÜH9é€_--ÌÉOíbrkSÜwŸQæ*Ùå2¹½c1Š®J Vþ&Ø›»AK¤Ôslª:6«˜“[‡mŠ8ò¼z€õuó:¦;àÎÓóÅP\‡Yp©ÅÆí¶¤œý4\PetÒ—ûÌAvÏ÷¹–‚–†oUæã GãAz&OPŸ5-o sQ>@^e?´ä°q‹êÙ‹¢¢Pï™ÐÛ6Íwaä6²H \ô^+ƒ#Ÿ2´+“á¦KÝû6,/–›Ò­µ#KÎhÁ60KÓåî€46b!RO(b9 ÍÛ‰ŽÀò(ŒŸèˆ8t¡)Ëëëög¼^aî›8ª£[a>YÃñn´ùÆÑL¤­Žë23ߨ y¬²ñeú…ù2û©;%&4ƒóo=yEï˜H?«²:’µé;‹ÿ¶’‚—âõL³Ö_ÙàXÒôØ>• ¢‡*•ù[Î-Ú©Ç8ÊGh±ª!è žn}zõ*@DË”q`>ð %fþ,ãg«Íd”Ñ’ذA ºuNᵚ¯)ám·,”Çeéá³2þ¬2<â?u”£q2/˜>ÄHjH,ö-?¾ÚPð‚æüxd}áeòŽyt9D²iWð²²çv {ŸŽÕ&9 ß{"ýtZT¤ôrw+ád»_%Q—j93Vþ"gÕÝËÞÙSoÒSq€{pÆí¿Žï †Ü¦(Mf_6?À¨¹ÿ~¥^ÿ3Íûê£y÷Ò~üoT¨ÕÄ篔·GEBÛ-­¤bù‘IcÌÃ[gV‰‚ä^°r*äÏIÉëBxô&ß°Ô(È ŠîŽ;:)t_ˆ,1½õ7kµ¬Kë·¶¼YêbqdSA¯*d(CC^ENhï²øƒÇú¢ãùV.¸î· /Þû5øY/Ô‘pŒæ¶s< ”¤£'·÷B{Ù„œe»çpL£G}&/ â^—,[p°ù]ðoç9Î4©³tûòf÷‘4ºÚÚ¾˜ü¸{$ogSSju7÷+ «ˆ ,ö:Ý©lÕjLz;TGdC79Cgv –ƆóÅò˜ÙqZ#ލ¶Üä œŽîxQmÑÑÜ{¼¨Ü # ù™æ[ãC¥Ž`k'@4JÃPÜöVÌM¬âxEs¼¡9ïymW\L¾hü¾{77F˜‚2̇äžQ¦†Åq"ýŠù1õøD÷øx| ìwòæÖüæ’ƒü;Oz.‰2õX §€-Óµh5?±Íû§OlyX.Kƒ­]žÔùÖ8ý@é›­ð¯­1h€¼f{ZÍÞìÅqu“åç=œE q—ÝÁ)@÷;8 Xü™[¿!@5pµŠ…ù€>Š<#ÂNçø’ûÑßy’\x2aòa=ÎÂ[åT¶ Æ¡Ê&k€ãàÉU ¦ÙFãÊ`+q;ÿ$§p<6ÒÔ;¬~;ü±Àà«=寱³4ä|ù×ΑX—ºƒ%ÒDÛC‰©bu€ñê@ã Øä¨q”c©zxèn­Þ9}i` ʡɖŠÊ <««¨°¤äç ¦½ñûÊBíH…l¸ŒÀ‚&{éÎZ:oÉ’«úÈf쫹3×õzï5ÖZÇYv†°ôú)ä’Ól–F°õ v ]H:S‹¥Qã T{ûñù±ñÒô†¥vu$j£Ž|c.Òiž’Cª"„®üôj<=V/€vÖR„(裱1âPSŒÄƒ`þ\ú‡ ⤼ÏË0lÂT ¬=_™M -W†ÒÃÖe€³$dÉÞ£©] n cîw =‘KôNj¸ÃÞ›à`ži*÷Ž]È­At’î^µ g…I M¾Å‘«3Žð¨Þµ"˜HBLܼJ«R,Z Š„1;Û=Ò!$T²3ˆ“}pŽßŠ¢Fë™e®Od[‡Ïªe÷ýRæl4ÒΈÓý3¼ù"Y°yÙËa±Ì2`™tëѼ9Ðxn´t33¦¦ã%TJÂi.—eîßêº[ãù[çÖ£%ta9 *MÁ"„Ò&(ZDû—ÍËRæŽs[¶,VÕìËîD8©[«ÌÎØºÇÃGcG4Gü)Oõ&—fʃ0eÝ›VOUx°b"•jz3˜9—Ž*D ’äîÜùè/E¥u™í¶XzS@áÎV¸·,…rO°³ïíÅvp\Äá*'&Sd5.»`4{áø‘tŠ‰ÍšM¸µe¦µ9#e‘2.ŒO4ïuäéå™N ˆŽ‰쬌9­6/‡%¯ôzHË’¸‹,4>^'‹O+ðÝéaÍ(¼5ïKW¡’|mÞg½Þ™@ýÁ¦b\ìú´õx—âñ®<ÎÿØûãÎä‘Õq‚˜—²Xn:Lsµ*t=1µyRdGÓ*œ!^bel71± -Ã) _ä™iÛ¥ùG þmª[Zw_?Sræ9‰Ùsq¡ø*h\4[HE3cj>éì_ESA®O…VÀov .h娼‘X³9šBÔW< e<ãxžœ~‰ª>wÁ|Þý ÞB.—Ï%h O²ñ¼ê‚Í–Ó‚gõy.Ÿ úfæg8KD³'žóÏ–i¾ Ù>ÕÍ@˜²êÏ+"ü÷YMÝæ÷FìgµuÞÎ3†í'‚ɬ€Ã¨ˆ<Îd&UfN´ŸUÖb#d–Ëýež`Ä¢­è“Yóó§4Kà)Ø ÆÆfÅ ¯ ’t«¾ÎÇú9Sä%™ÅWQ1OQÝ‹çõ»/Êî?‹õš¥sù iÑ2Ÿ£²à)‹gp%Éù\>½ušË­ßå㸠šlñïF"pºøâ5Gß.,¦¼Ódqàι²E¡r–¿éÈI™ý­ t¼ŠÍßeap •œç] Ù}¹]À<~Þ›*Pg@Coi<ím÷Ë6eGt+ŠÛöeÓÅ‚0æ×”ïæUYQB¸ú<¹“»¯ry [ ±µFúò¹˜Žéè œnØ<üØ™;3#Ú)+¶–øN»xÀxÕÆ›óAÀ³}§Pæ%È’ýf{»ûwù LYþï9Ñí¼NfTRìärÁ ÑBÎl2ò,Ÿ%4Ë|áKÐa£µÈr¢Ù)¯R×Op6…74u¢‡®d®@Îrô•«T)Èê´b¨“s#”OýÌMRܪÏmrÔ/ŠÊ“lËë¬F‚Ê=;5û 9híÈä]’)ó@'WÀºµ0%ãæ_!IÓ çåMîÁM»ü1]Á/Ì=O +¾hÌÄé´ù Y$Ëç+N YyDX›¾ 7Ùν“òµ4ú¶FŠIá.ÆLµ$•˜Òž—mð“31õ±¾(L¹ÉÜØw:2÷÷U-K“4yç& ¥ž-Ç狲'hW÷èŽq e0ZpR$°šhý¥_O³>6f‹ |ÙM|¦s .ªD¿yÜ’M¯=žõL«7o« +.owÜ ùÿ‘÷/[޳J£(ÚŸO±ú³”#}ɬ,·wuö ` Û”uK!9ízúC€îËs3ÖúçWiADDqaYNÂ`¨= ÏBüDø\< u˜§Ðzêž4È…käLm£§å­r6úûc’-¸î”‚,œ=rž’–t-¼ NY0Å@‡";! —0h­„ïº6h (Ƀ ©!¶MÁå«;àv‘­Ù©¼P{¯‡‰“¯€s°ó fÀß#·ÆÔG:¦`cŒ¼$ñŒ,´P­ ±pÚ[¹UšèÀ·KïÑ‘l—ö]Ø@sꂹ†`Ûû9Gx‚ Œ¦%FÚŠ8×.Ïû}³™ ëþõX+n¹ŠûŽDc³«rÏÃG þJ‰ú´cß, åʺPÖÓ¼¸l—˜”díª÷fôÆâfŽºga»†º0AoÝý‰sÒÚ—¦OûýǸçð]îe`(ÿjÎÇàê ƒµ·‚ÛÂF}´2› ™¬‚ÀH6T2LQ¼Ü¶óƒuÅç,} »Ìò§Áç¹ „Q;Ö„ :+Î(%ÿš×5€ƒ7…,õ1ÓUqjcÌ=fŽ´¦‘žÓ¹ýâ䈣G†ÁÎuÖ‚·(ˬ /ïó¤‰vVEÓkn—õó~¾7Ÿø9 2åo¥#¬³_‰†HrÈ迱ávÞc†£D›™×° åª ýgÞ™°q¦é9]åa>=Ê£i`qoTypN³׳«‚Û5²]„8¸ó%fÿW*¥áa³½Y³ÅdüÎ7DRû\·5'ê¾A¯Œ”]åÄôÒÛ ÷ÍÑ©»rîb Fa¸€ ¥(~PŽkìQ"!‡ÿ fuƒ6¦%68%¥(². l[P¤¡\”£šÃ’Y»“H 7JN'p óAM’ï–ûÈÈ}ÉúàyItw*y t%Wª¼»ÍaÇÇT +ß(~r ËeŽÒˆæJHüë\V’E8Ñ×Å` ;O®‘Wçjûß1¾ç…ìáÑ´—’” F·ÇûÛ&¼ûÞP¬*=ßëhUc¤îg3Þ鋉}Å;GßmÛ*Ûµ×üÌS|ÓÊÜ6X÷°#zœiyÐL²(8ÆÙ±Ìîù–ŒZÆpúvfoçðëáç1=šp0q]1zD×Ô÷´ZøK/è*ÍQÈ…¤çÓhNÒKf¬÷ÔiG1¯§nÞ!‹Ž¡M{8Úúkcô€l×”ÛL4‘Mææ]‚x@Ød]ÚT †C…è?0ÝDìkDŸr” $¼ñ,xc63“»!2#¥1”˜·×L¿ã;ˆÙY–5âÝ̯‚ 㘱”ºØtÝÄ$ù÷Ïè¹€;FG’ÅÙùÿ…à-0²‘þ2w”èÜ :‹¡kœ>8ø‚-g¢ñ-ß§«€¬ˆÑŒLP7Raä_-PjÍ–càTÍ…M ì¢ÌßíZ«°–6.Eå®0P×RHT¥ ÑßJû<û¤å øn: 4LTÏé쓜Ë6¨EþžgDÒ+©=f¼û&øæ’¢tMÊ¡¶póK>…Ì~œ…]Cöæ:ørh×òâ!¥±dg§a6B¢íÓø‰•_3£,¦-Þt… ÔP7¢dƒ9TH`qvµ]†|+1,ZN‘àyf‘c»D e¼Ärp’5õã묧~€ê`c<ë‰êưɆÍnÓSŒÃÒÖÜBi@«HùU6‡Wš(Ù†MÝÓH×Â=Ôˆ³l®DÆÂ/SM`ùŽPô·JÙÌ—$Á1W·|äÅäUÜ\ãðúTúK;¿ÔlF®¢Êb&½&6ëÖuÂEaû\œvÑ\Ã\]«×ÄŠNñ<¦R¤šVy¥Á›Wšzñ½Žµ7jd Ìj˜]·Ó©4ÏÚ™R’äÄ´Ý,H»AÍ Æ`sÄÏ]Vyf%9Õ2лÕ&½Í%¶‘Ù•|üÚ.ÆUÉx—¥n²$RR’} ©šÍ±}2 G…J4R“Ѝÿ² 2,Ú D6â•öÏ¥*‡%¶ÁR*Ǥê?SG»ßÎhig0MV3±sœ‰½áLì}ÏÄ~U†Ù;NÓ‡á4}øÝl¢€v/¹‹–ÂçóÃò,…>Ÿ†søé›Õ>WšÏSóÛò6},ñØ<•.0%6ÂÝC%¾[@ÂI‚‹÷h†]êV ïaóèCs•´ΈScµ——ï8˜‚*“RA–n#x 0_&í ²)3Ø=Šò’I¼ÊµŸ-Vì¤6dœâ¥VûÞð|µ ÿêóa¥aUPL[Ä.IZœ‘8º,,:-Ç4ã°bŸ¢¾e²Ô+Œæ $·Uº¾s¿‰€."Å[ƒo­ªW¾@gœœµ©²maƒ´`³Ÿ£ï ?%µVY`”ð\!ÿ¸Ó±…$Ôïé;a«Ó NwCÀ£öã£þFB(#àÃDY3MÉä%Ë‘uŸ0¾3•Eħ=eýÞO®wXòÐ ¦FÙÝ·‘Kœ"޹qþèWÓ…W/LÀ@†(Áqè%=o °wÛgÚT;‘»Á„WZ%¾Ax­7XqŒ¾íAÃEá2LC”{[ôSœÏ¸ðŽ»KÚ»®ö{—þÈ9ÇÙ`%UémÆ®ìvfðÐ/fr…‚V?‘.†I´Ì-óïé,À‹÷_S`S˜øDî>2vBçá1J/8Ž¿«¬t}ûÑK”$$v›÷pn®JÌ>£KBxÓ:ãƒCp1tóPD—‰ÀUïDØæÁ©¯%åÊ ùçoC–E•†ÈÏfd´½Ï¥î"i^•‡$cü4›=¼ÖäL’s3=Ó”ºr·<ýe—å¿,ØÁŸÆ1ÄlæÃ’WŠC…—éçO˜÷{ðþö[j853×~Xºaú¹&$¥¼ßç ð&*ªØ7 ‚xk[£¹Rg~(ó=VÇ€­~ñ¬êø‹ÄØÇæc ðŒ"ìd€K——ÌGÂê>\¸»Û?¼B¶¾¶Á‰¼n~æ±>·ÏZr’2­#Ž— 2-«)ÐH¤딺 è²=Xú\#,Óô´{žá$ ¤1H™"·ˆ'³Ó+H´¬3÷.9~㕤Œ1Hp™‰iÐÓ·¥¢N—ÌX•’² ʺá7úeüæ&`½Ù`‘#±,©C¤Ö"U¬í /:^‚&ÜÔñ´>îŽ3›ì»Ò[6¿ö+r}dº‡+9k"ý*›RFpnˆÔ®Ž±d}@KƒèÓJ7ytR 7½^L& 4ؽ©ýk'½²g<Ö4"(¦Axc ˜’Ú~£I#jÖj;ÓŠDh3ßÄ Ú•É YlÖjޤô†CŠ ‚fá‰Vö«Õô³àΔgËñìÍY¥9I$Ý)Ç)¾[ŒδjgÝ¡õ§HPyÁaË-'Xš*záNöiI°¶ƒñðog´ñàWpÔÌ]kn瀫íîWZ ÉÁ}bA6o%#`h*# Ï}1ùéÀv;×dD/ôĘO â‘Jïójœ)Äã ü$Ÿkàúà]%×ö(¿RÃ[sd'uM”OvCBYzÛ¬‰ê¾)Céoa¦¬­Þ/„5¨ÝêÔÅ.„“h®tY¹¥LËGÔƒL~KÅ“.ŠP^Ú8!Õ0iæ¹rbÓIzn· ä7‹ûÚÎ!êÐtS2¨U’ûX”à’eWj«#ÆaZÃcëÒïL,m¡òÿÔ„ÖNŠV ðH¡X”OqÙÒÆlE¼,-8| )Ьð чh(ê45€g *ù­îÿ]ZyqC‡ß¶ PZþ5ôK¹¥s¦úñgüØÃš²ÿóÆS?øèNf…R½_ÍÏØ”(Ýëá›$%M?6ôœ"Â[X°q´cô ©èj[X“÷¼{"ïKiäêZXçÎ_?$:ã’*ï9­äTâT%¸‰¯Ã่Ñ#«ÊUÒFŒñy´jèûæ)PW›š»ò‹ØV†­Hp¬HÌÔ 4ô œÔå‹unB¬)õ±uJ…W -£J9o4ßôù?¦Ùꤥ¢X}Êó¯[sûŽèàI¹‰Ê$ÂY ¾—’›Î úm­ûU)8êä9k¬œ¯2TÊe]>‚¿)Y²›•r}Ï$wßlŒlWõ+fÚfN'5–~ýg˜ t81ÕhÏñݨ”wúÿú¤ô13ÚfœŠ³ÜBßêCûÿ謉ù‚‹áþ™´zÊfÚÈæ^~¸A ×?Çèÿë³È´ P¼ç˜ï®:˜,|ÌÇè¨*ù8‘™ü¢…‘bhô £òV<6 +k¿y›§}ò¶ò4ê7ovôÇ¢±jq~±x‡æ>M€$ÁʃuÕÔ®9/¦a„0ÈyMíµa+àØ¶¹šWGqËõÑa¹eqUçËRµIâ­;- ˆƒÕ´%ñâ(JÑ›ûÉšîiT§ÀØ[í¯ôDÎïÖ=PžÛwòí¹õH³œúþ¶ÙÚ¬KÛI¹Ðß©«Ó3déºzqQW¯+uÄÊë“‘wððŠwÙÍGœ¦Å®åá²)|Aõæ‚‡Ô Ä¿Ïܺm+cÖ¥(,É”?÷^ÃEŠú›ëgä„7¥V‹cà±3s6R%³>Ì cå Jƒ0¯â ùàlËÞ7’õƒüsì¿%N|qRz™Á7®dû3!éS|†ðKFKîgéyɼÅÙ9`=wo»·½rĽF&>çYÌôð’#{¼–ä¥1Dl…’åÏZ}Êd¶¾—7LçYÝý}€,ö Ã(8%êÄHžÀEÐ6”×^¿‘ ÿón$ÚlÕïGƒF¶ ÿfU‘ªN‡­¬¡³õ"ssÂÛXB®Æ®=ý=×ûÞË÷"m!îVɶ­Jž# ÐωNû›ë©å&Ðç „Ɔ‚rãWì¹ü3I7vÊÒÒÐÁ¯@lA‹†²±R©”Jt„7 “À,hÊfOV1L|2]tŒñàµSŽ-D!ýïÆðùFW}¤¥Dty°ÃèýíyÁ^§?z°æ³rÞ(ãaᣤÁ†ž®9kPTôž$Tƒï†R0+[„ï6$…ï:@Z–®‰ú{Ç[¿ ``KfÅ™M¿:™Ã#Ȩ’•š63Ãþ ñö#&•ûPê–šä;éïÙù|ËŠ#¡’ôkŠ÷à0F¹Më€ýˆ pªó)ŒÃxc0ŒÕ ÊëÌÓU¯‰4£Í¤Ñ\ÿ üÂZN¬wô‰ð’I²Üªœ”°ê½ÿ'­Uó1l¦:Ãñª¿æ>ùetÔ»3BhÞ^îë †¢äˆ†ï:‘À…ÿZ°o®˜7ŒH¬µÐVýÉEŒsT^Á‰ Iàâ;ÃFÓöæk6éëó²‘_æ”?„Ä˨6Ë´åÖböDcÐ;ã– VžQMWž·]°êü©Ö«»MxaêÇÄ߆$2¼®Ì Še˜®oÝzÁ,‰ž»Å=Ÿ²§ЦïxãŽßå^y™ËÚÚ30ôšÝ¦5†Š‡‹àí³sŽÓz¼(Ùp2—>ÍèR DüBIðíŸ$=e¿Ì’ñ·k7h¡IqÖk˜ú™Ó¿$õ¦H”RfqVt¦cm’pˆÇR©ïpn°Â¸"~éq³3h"¿‹X$£3&û^#u‹¶ž×ù¡ &y¹àœe}¿+\<üÁTÚèŠ]Óöö^á& v³ PÀãcpN«'àrk÷5_3µš2µ¿¼á‚úÈ-Tƒ-r&>ñ˜ï É}MoŽR(^‰|ƒÓZþì`VW_G úz÷ƒ'hEöã 'HøHPê Î-]÷Vó'Ûc¨èßcìLÇi„Óx[_r:á‚AÄ Åˆ¾(¡¥ßK äX•ÞN_/³*óè✑ ë4„JÏ…oÈ‹8ßI鋇ž`Ø þ ‚í©/ˆ%ò´–PnC¸ ©Gþ Íמ?‘{â‹:öèRØ´ˆé/ˆz•aø³wÍ )?»Ð=eUáñ”ºX—–ˆ^ünUA²²òá 8Aèü+ì ¥p_yÛZ$m-ïÏÐX¸ñÒ¥ÜG ¤ëŠI‰=±dŒÑµ,PˆŸcæ²ÈJoOœ÷ÎO-}h BåÈGÝ©"ÛÉeA¤ æýgÅC}oœdÅÛŸ@„Л*ñzà'YxõSØ·Ä?¹?hIU1^'̲Á™ÿêÀYš ”FYâqFAò¸BÜC\C‡žÁz‚Æ©¥‘/€¾½ãˆÂ9#O÷zš vöçñ&…§Y‰ŽÞ`™ EÆ·yíôáØ—9efÇÚÁªÊ¼ò‹_aAJâiŸåY4+Ÿ/Èî.x!Íöï{ꢅ„à@äà Ê0÷E nô0 ¶=y¾¨éà l üíV‚(CyàUب~áS˜U¾¶@¹·—¿abXa¾2Óû»"…/¦(Øif£˜iyóZï`•§I–"fJÎ)*«Â×Ô/æÅVùƒ³€î'ׇ—ãФ8öã+ Ð Žž¯1VG(ÛáiŸ5uÅü@ãiô£‚Üpê I˧¼ÝŒàØíÍ$ÿ3o4ZºåÊy´Õ¶uÖo9¶™d#}è£Â!Ålç%ÍÇ3Av]vcB€*n(>ÄÁ3bn§€*µl–é¦ô°Hy –¶=ÌŸ1Ç5Àƒ£¸é†ðêõpTâÕ»b„ìLPž?cIö7{Üg€¤gâ.Å1NIåÉ(v÷庀|¾+Ý!‰€PÜ?ÇŸãÇÎ7ââVnÞöo[ ¯YÑAåy_-©@1‰i6SocX³Ÿªëý”Sü]„WùàÇ{ Ó‰ÜïhU$Ît0ƒü‚£ZW$¶H1S·^øÂ¹y !!e/œ{xË;—¹W ¢æ /gØ×â(«2ó]£å ë ¬ìƒI? ~Sá”{u$Qs?„U šòဠt$l-ÚxÚ•Þß|,ðϯ'V”Ž—I»açr/™ñ®^{ö•{ø5-@€¿ßO©;x2£â‡DŽ7‚*ÝŽf¡»L 1(~¬¡† •/‘J¡oì%A½Fmö_L Ö3%¾NÀ®`ôVÏ‘?€žyC½Î ×®†.º„ c-ú ™ý.|I—¸½ÒG^ŠLÔ~“dã'ô²lÇœÀñœj=±ä)öâÜÜ%Þ’/&­†® Ïþ¥¾’{]UAÛÃVú,º›iƱîŒ]˜Ìˆ8c`á {޳ã".ÇVôC®Ä[*&JÂ"KËž—4Hˆ®ô»PnþæJR{uN©Ë */Ø. ‹ØŽ±ö®³š wN¥ˆÖápô+0«EËS)å›ïÂÉj3·ê¾²À´ èwìœGhY‰£e¢RCÆÄu²*/ÔØI¼çÁgE²t°?)qáé  f‰cD¢ú¢~<Œï«ƒ‘)²£,rÈY8·|µoùßkÁÏÏK§Ã7œ‡^ŨðáÁª²Cñ_oÿèÍ~ïñ:)£`¼ ’¤ä<ŠÐ< Þhª(ÒVÕÈv.ÈL“¶×¸ö3Ï#M³ƒ%¶éäp><Á1£Ú2¿ §ÄÂ:žøµ žô™ò‘×Yn–Ý$UŠÂЛ=Šé®3ÉNµÝo!jÓ¡éÞVzš6ÿ!+Ψ±è ûG™½¿†6?»skNÏI¢9æn<Ñ^îÝÝÙ<:Ôâø!”$"×ä³®Ð.Ãg¾T mUߟI‹#ò2çÛµ0Ÿí”6èFªµßŽF\dä>äéSR'ç:Æmç.Xý7ü’Æm$¤Ë_9Ö3?™¤þNy[o†ÆÂ‹r7¬uýºØ¾†Âo¿d¼­)³ðÆ0¨\“z,œÈfÐ^Y‡pœkP…Wz¢fç³€9ä@Èüœõj¯þº‰' 9‘·¬8:Cä¬ä¡Ê‘Ì6ÚÌÙZ}zª•Ìñyó¡ûjƒŽ†;_þs?'.$½žØ™„•T»2 'MÆË€EŒV ¹©óª4ßî±5È¡2«/—1ò»Â•§©}€ž€Q\{q2äŸóFPƒ®9åi~0ºñú5æÕd™ØùãlNUl»¢¢.)&éL¥ÁŠR¡(ð<íA™6nq`J\äî§p˜žù\—£ 9Ê{M=»Ø òÆ.iÖ;£Mrà ú[›Ìû´; èVYö¬m°Õ70_waÞ ào5À8´‚‚Ý,è¢$A|ßÚƒTOÓ—ÞNjþ‚¼S¢‚çesÊ£Gðþöç².40ã.Õ]4®sÃÔc›T¬üUJó¸öVO¿h¨ôN"¸Mç(¼¢3~Õì®. ôÀüî硬I!ptÁó‰ð⇔0¿ %îMÐÕO¶ɤҕœ»v0Ë/_§añÈYSg D¨Àg•–88Ù­#yâ¬åàÞIýd0`à |â´B€”'€lúsoKÊž(ûñÎ×…†&©yJ›AN'‹h­ºùN§Å¥°»ÖjÔKê’Jo²ñN Y£eƒkòÒ#ëÊ8Úbd.nÑógÕ쌙Ký×êò{’Ÿ‚ÛÕýþnÕ³{¿«§žp‰WÿÝb•Aï/9ëcjòS Rq ä é¤+¨(ZôÖ’·š©†H=+IrŒwSÍUËÁ¾íí@í5 Dz•­Àº“,d‚1Høop´%8r¯I+“Nª‰”·àµâ%êht ™×­u®kp>¢B[¥›5¡¥òÛEØ€‹ÇÜ$±ðNáÍUMçv}lט¬|ŠË0V»ú0%UÍWÈcLC”¦K’‡^­3çìS÷ÍFaàT»u•×±»)ƒÂ}ÙböÇ5÷Ê×Λb=Ûôs×âè…†^’´âÊ£+¶o”|ɰƒ¾ wWUqÂN\¢š ¯+¹÷Ubè8„ ˜RÅI ‚ŠÒ2:ªŽ;ø¶=hoïVm‡¶;‹¶{‹¶†W»Î.«¸æñ‘³­0+*ð›Ÿ8i™âró~P¢˜Yh¹1mùuÐ|üc E>éL±]_faÃAVæòÑfQgtPÑÆ\íæí}ûsÌþÍ}ØáqáH ;Ç*ÞgŸÌ>»>²‰f©zMþÌ7™™Õ~CÍ\™ Áff‚üæ¬>üöÌÔ œâܜҞÐë œuzÝžòQ ´ÜixE´°àÒ¸BÿýïÇ›ÄÉŽ}Y¦*µ€—ÂT@L˜ñ9÷gtòú&gø ]p‡ówS>é wüû â°*Hù`C‚6uhV¿›©ç P.ïm(ü…5ñŠA@7Ÿ¶ÍbÒáf‘ÙnW¯d²$ÃïÊUȰÓ'Û)ð¾Që[lg[(·cÊíÛÛ·÷y…£ßÁbYÌ/ã!Gšu§õ±"qÄÇôËøú€NYQ(ýe@Ø}èÇñ¬CCsi§UCóà”•Ð=8xGs8rçgù×YkdExÙ)='øW`ßÞÚ¶Wâ.Ø(7÷ºÏnAŸ½}c_'ÛIYÃSÌAv˜8CQóâWc0l?~hg°k÷)!Öš¸¿WÀ!äR­`0V' ¼Ùiðg¼¹´ë?½‰jð$ª˜&ˆÀ[œ\Xt^vaÈdúbm-ŽhŸU~>õçýg[t±Èõ²ù­[·«ÞcVŒ‚Pi³6“×l;ÅÔ…ý¿ÿ÷ÿù¿¿,%GÖ|‚òX%5å7SžU Å”À𛹿H¿iÌþ£Rw>…Vp90 yË¥LÙUøv2=LN œ°þÚz{Ö?$YÊø¤h(¹2N­ ¢½¿mÔϱ’¦Æ«%úŠ®¦çž"cà ce®·Ñq€ïð/³‰´µœ¹~ç½¢½ ¢O DŸ‹{íÔýØÍcÌAÓûªâ]”XO4&¼Ñki;m×½1’ýr$ŸÆH>"±åÊ.ÛïØh–ûMm‰ëúîÍÑìÐ|š£ù\ŠÆb®Iº1´U@[‘üArÏ?ZP›RÄ+!4-Î&^9ÈgYfåØÜ¨'ŽÉ³vÓØô:ÌÞ.¼Õ†ümï3ßmÒ‹Q\ºèÜ—£ó¸:“Tà] À"Ja‚’Ü  m ¬Rg ›1c(Å}N]K¾¨¡ó ·©—’2Î 6[Ç9Æg¨‡<$§%­î{#Di&«³ÿ}èÜ\ L”ú|³àÂhd¸7oŸ*xu ¼Ô€ç`¢T%¡1Ï–R•%øZ•8åõu½ÓÁ±PzÙÄåÏB­&4޾qˆA7Ѕ׍ïŒN¶©£ ¢…b¾øu‡Yÿ%Í•×4êCT.z™¥ þ¦DÕ"»aïLP='[jñrWëaà?ê~˜RðÜ ¨™{_P”ªN4*Àú’³ôDΕH£PÿÖºú&¯ÆÙB’}iôÃ!ɘRþkÆxÒsV“ù¥Ý5 kúM´CÏ”Ë6'Å;¶,»·M¸U¢[<üÐë.ØÍð4QáºZ Jª»’?Ø7 H9ÙX°en0­ÃÌØ¹¢ÙO9Æá¥×¿NÙR)%Gn}kšõëœ8ü J¾ô~ %ŠÉ঩¥¤w·ð¤Ÿj:`Ü 2|<¨ðò;JÌóI§€+¨¶{Sé+õçßºÏÆLÀ[gçè4¼¼fhMf¡ØÑ&ôÊxAÐú £Öv¨¾Ëý|Ñä÷\s¼É1ftnŒÃdÚ¦’Ò¨—1a)Îï΄ ¶­’\ul6MôŸ-+ŽÙ_È̸ ‹Š†Rý\UÝC”ïßf䇦• |6§÷ǹ"ˆC”2Ê%ꇔP&þÌþÝDt™ÞGã®ò7q5ßöû{|Ñ€µÏh"`d'v7½{1£[©J±¿'p¦%Jë•øjèª×·:¡*""-ì= ¢{™t[†*4ý6æ<{ÿÙ:g6yä8àyëÀY)ê<û§¸@eV ¡rç¦ùŨ›É¨Ì~´€gémÕïcj$ïú(–ñ72akzκ$ûVeÄ|2ž’êX¥eNˆpˆ© 6 MhaÕw< ž0ixaN«•õÝpZTþÄ|†‰ê¶b;gK‰ú3NTÒcr‚<ñoJëfÛ‚'5’·`ÿó®ùf~§(ÜØµ6TYÒ#<Ãl¥7ª‰ø&úH“ÛéE3õ™–2]U«T¶˜¢|kÛ^‰Û·—*Þ¼;klÉ.:Џ§³Q`ãcKåT‚Õ&adƒSF¼»Yî/ÊQŠÛä¹­ ùý—¤!8ð Î ’å_Þ ¥ y{øKh„ó(«ò´úHëbÍO+oEF^àÜÛpšÍ9¾LO{•3"ûž¢Ó˜P¥BÝkbsú¥Uò¡†X%† lT@ÃÙ äw…uù*ë;£Ãl»¾CÔ],1,|d½³ª‡\ï) zÊÓò¿ÿÕ‡þB€ûÌ£ö#ØFA^›Ú)}ÜÌŠöǧèB®®Á3ûÞ¨•Q¢Ûëö1 üø]ë„ÐP;Dh`“mSŠ ×°}ª·®7¾çYQRn ‘Pä@Di^døë ø»"Öx¥³¶÷@ø>òúÓÆ~’kšEO—%º$CN3^Ïm -†JÔÕú)`eVÀó/HÒ>‚6.Ø!˜]bòËPàÂ<¯.8fXüÀ˲Ì#uLüöÈ Yì›Í¹ÍU»Š^ •‘ŃSÝç-$ý!iôÛb@¼½jDðñËØ—XÀXýo’¿[Âlº)@çi®÷n®[ôpNӳꈀî»÷¨Úµ¼—èbøë$’1DDªs)vW‘Ê$ΨÚÏ{ï6ìýb:«×ËmÔŸÌg«8]IsnÑ» Zª0wM,(8¿[5Vá&P¸ó)ñ¶¶0oÞŸR眰ÎZNëøôç43ªÛ¯€ úýPPÚJø“AL²¤¨m bqGOµ29¼"K¼Ôð`Ü&–£»š_k€u¬ùôÏm[‹}D·IÇz§á½;¾‡Éè¯Ûç0 w« s³j:&nø]amˆ7´¡ ‚älä9‡F‰Yk×2ƒ-0Rzâú2§2 ÜAPtÆ8½‘"K‘jJºRôøßÿBâ”`¯J¨Éšˆæ÷5=6e¶d»¦“iXCù SÛÐÖÃâ¹Ú<§»‚B tÙ4'¹z¹,¢ùX뤺G½ôQ7R"„¯[íW‚,£ÚJ@y?È™JÚØ)0R\2Zªg«mb3DÞI\4ïzÈíÍ5ßȆ€2|ÿ ÔPùçÅÓ6IÐÃO³GyÉRƒó¬n§²y ´E$G¢:.›:ž®ìïÖ¢ë}˜Á×…ú¶±V¨*/€±«ÃÉp¿ÀùÐ]¨ÓƉ i—•©D š÷6 Â1ËJ3±¾s‡å.ÕéÔ%{/ÇbÁö…ú˜-rµ£2ÿhƒÅ¢±úž¶9PÊBD&ÍüM3%ʧÊÍÁY†2·«8XòÃÓÄ´¤ˆ»‰3eF¬Ïù/»×Mf€ÂÜ‚Çʬbê0û)QÚ9zMláòmª‡Ë›ØÂ=cBõ`¡…5Ô‘xlaS…µRš•,f²"‘…Q’µNl¥*Öç z@õ§ „˱k’Ã1$—"6CXOÊ“8Dâ@k©dìÛ>ó‰;Ù/UÛm©*0³¯µkºÁœÜ8@>à'è¬ ®ã ¾‚íÛû›"ˆ}ݽmöoEê>ÆI´ûzÛnm±ü~Ûltûb,¼}·ë¥“n_Ó; ž‹iX¼T *ªlòUaÿRqw3Èæ+ÕÔÓ­[˜/ R1>²€DE¢†ƒ•õÏØÇs|W~ŒQŸW¿*]»9@ý‰0£á‰î[C:¶stlÝèØÒ±Ÿ£c¯LÝÒ´øœñiÁ$¼Çvn•¶ïV ßÝBó8 =6¤°»ê½É5ùeUÀY“e{z.L^F‘PÏ¢XÀLi€I2’áOü‚0ꢕaÈÿ v’ 3ž!hkDÐv=‚Ä i§}ÐÜŸVÕœÕ4ÍTKDðÐàRµQ)2×Ð!”/Œuw¹¼±Ñ`~¤ÑÕ¦¢ïÇúXÉ#.B!´4,ÞÖ롼 ÛƒèÃô÷3·Ø":-ÄPÎL²ôîMCᆹ±#JtÚ YS^wËI® »Wnút½ˆz TcéšüÖ7ñ[üŠA%P·:`§ W çb(!}¥¹f_w@6)?»>ŒÁ»x=„‹ G¤ðqœ%¾BÒ¾o6*óåí¨JÄϾ˜ONø¾àÚÌI":[à‰ ¯•Jn_- QöÏÒ>¡û-R‚°/æè# ¾è[ëJÔðÕÚulíY MÞÚ&{¦è`”æN…Me9Ò”à¬;ó"ž¸°]ÓÅ…æ{t´›RÞa9ÂUg4·LRT[ Ï3`™Ïï ¬)åÅsR Ö+ á²ËÌ`ù¸b‡-²|töSAâlXÙ°ê^¾…\ SP¹{‹=uGïô› šºJ4ŽqXY*/f-+fª–QpÁËN¤{È}­0ëK¨îWmA êƒeJ4þÍüzá­Ïê’‹¢û¾Í·nÞÒFÂRjîUwØ L`Í»BóÑšO±ðbáóÍ“Œ›÷ÿXt"JËA[åó¥' €'-?ÑáÿIƶý˜5/IDºðõ—ñßð_‹¦6üè3-‹*,«Ås^»HU&b~8$8 ùµI+Z¿]õ®î$+É©~HG)Š´«¢8¬bÔ«»‰#ÒûëFðʧ:Ð7Ì r¬†ñ@Æ´ÑbZ## ìL¡üú?l¨CÅ·Y0È¥¿3¸œX®ÈÒi'©ÙãïS.ظe¦´ ÙÍÀ”[’ˆu•pÙ̶~=öŽþÿˆU'“Yƒ弿5¼ŽZ߬Â)«Š0 ¸Fé|­ ˆ…ÁÔD'â”V™1gŒ]}TfmAÒ­¼-˜qœ¦(Œ-®üc©BCÅŒ5]®•p…Ir|ßJd^#Ùyö%ÿtéG8ãè{’µ½¦ò>hì_0['*ªÌ$§›Õ¼æt·Q³Øhy]èMCES™|þ) ‚bHx=‘»‡ûÓÔ¾²ðÜwÿÐLNå¡À6%犰òx)ÊA 3c‚´ÓUÔš…¨ÑuÉl= ãµÞµlÈôËœÈy®ßÈœùX/;Ÿ½®ËaYÂREÇP3ølGP럥Ye4ûxûpHGÁä=µVGm”7"Ó×Ahk™éªï:&àò™'}hac¯bí½^ ­0ÞŠÕÍ–¡¹ÞÈÉá™^´D$Ûì•“ Ÿm¦•l™öšejZ,Z×;Œ ,Ë)Þ‡qX&ƒú4ª¯€’im1I‘·´6ÁÈ·X Ⱦ|˜›câ²h©AÁ×½-8kü>MXqè­Ò’±ÛQàpë.U$DY¼‰3çùÄ*Iï-)¯ïolŽ+ÖcóönÙ÷1> E†‘ÏĶ™bj›ïur1³)k;ɃTõ¶! k*oûæ»ù2fuK±eÐMMLRüõäÖ-,0“ëLþ]ÑQ’Š¢µx.8¼Ö9cÀQÙœ¦Ÿó…]:Oè,†ÜÚµ…¿¶·%8"!I1WĸYöÐdž„Çï¬%M4ësð‹ &¡('Êó¯õ׿àòâù5ƒW¾wd~ßðúã¢nâýi§8;ŸE•=ñ‘m¤­å¸À@¶[Ðg&†cØNVI¾×\"à_tÆvg†›ƒÖ’2¨aw‹ó…/¥ä8ôRõ¯^ Z J¶4oŠ*ØÍ’‘Jü]eE•¨ô¶Áç\óIÏU)’ØýÎË6Xۮܵü>#räwå(Oò»Åèïþ^9‹£…U¤P.n‰ydƸŽâœ%AoÐœ{˜ÿ23¼—8ؾýyþ(Ç'¾OUÛÁ06ë Á- ß©0wo’ò‘-yQü†UA1má-Üze{×è÷O‰Õv+ÕU—“騮¬õ]ªÎJÑ@óqË:ïf¾ë€o5ß>gú~j¾}ÍôýR³àvÖ˜ _Ö¡÷}oGglÛ^9”s&[ÚÍEi¥*Û@Ûú„f¨/AèðR$ˆ›9€9±Íaë™`Í”)3g{[”æqÉ *ÈMnhß`zçÒ]VØÁjñjÏv/Ľ”57žnæœeg&̃:æ, UU‘°ÿS‹õgýaß62Ýê?*t?æ0îñæm£:­ùǽîãoõGc~P¨,kÆ¿Y@Â*Í>mÕŸ,PœëjvþÔ÷Db² •䱯¯|&ÿa;—d6ëÉÛ«F“–Ö¾)?ø“ži@âŸQÌ“E:oÚtç"côÐ’‘Œâ,Å6e^ýUã¾Õ6,ÍWeHøz°Z8¥Ö‘HHIS݈IY1ÓÈ|VÚöA\Òà»b+ŽâE}YC¶ìV]Y·ï™‘°&sƒÕÊŽí¬š®FÝc©5­—+59Ê9Ù HQrDß=‰ç2&4Tƒä_W]4Ç z0p´ÐÜéjwÅ&ÇÕOˆ,’”óÖŠA†ÔüQ5æbÐûAûÙœ.ŒÊ mI”GY-p¡Q¸°˜å€î£«¥çóǨR½Ÿd?øZ¼Ö]ÚTåec±ëWž:š×ºåW\q‘Q‹D„}úl´·íðaÛáÓ¶ƒû!ç6‡5k«×ØÑ5×!Jfç¦ñaÂÛ+·Kà˜F­CRpñé…žJ~:­R{£Â»Í7$“’»ÎmçV®m¨\ަEcÍ©Ÿ×ªÕ!úECCg)c ]×d†Ds …hA$Þ~è†Ò6³àV˜Å6ò ;”@hï{v Û¶º¡7#7¸3h?.‹¹š„\Í´ù^ýÉ{A˜¦c÷„ÚB÷2 øÓø¥ñRçéY3§ÒæÔl¢ÜCŠc Ô bÆøÈ'¸¤¢$dÍIúÏ'XšÅ^G]§ʘÈK™H¿ ŸL-¾¡?²ª¬Ž>¤æ£¯Ò%@OCwJÞ¯X°;/v$‡e´g¶0àâŠÓ·{Þä˜/üÈ»x‚‚÷·] /Öoh£{tÝ>—uóëÙW6}9ý91Å$;þ¥×Ç©*!ï_“{i¥Ž‚}šïÆ„]½B.Ó}Ò/c+"ò 4R" ºî·ÁäYš<3¹’ –Íj»äöfú}’ÙWO@sëÌ]Æ&-ãsVº ä­ ^DN'/€ e«û +g!¿dΉ¼Pš»–®W.Ø[`¦;,Yš˜éd‘Êűù¼Ñn݈'®’*‡m'ãóŠÌåðüˆúN “PO¡™$Íî9 hO‘:ПFïÁ“$S»•ue×*ÄañÈK0Öæ—šØ[,ŽhT)-!yy¯3¯Ó»TºF׆ÝWsíò ôVÙâLußy´·–ƒsZÑç5´àBnøþŒ²?¤8Æ>6@ŒKêù 'åïa8уá—댳íáPuƒ²@§ ·.w.ù™yY}ºÞ‚†f‰ò¥Sźn—wÝ-ïj~0%èŠUà ‚U~’±¿Íb3Yk¬Ád“þyòh¦Šb¨ßðÌgç´8ãßO^ëbîþü^è’’sæ‘Ýz¨Nuö-Ø)MEâ«ñ\Aó‘3*äþÿ5ã™Úö]šÜ:Ó‡2þ¨ùl1Ô0Ô˜µüTêwðÍ¥yÛ,‹h™Ýk+Áø–£(º*(ûA†l^VÄ]úÎ#¦ÚþQyL³Ï_á-HΕyÀ]T›“CÐd€!¯´5µH°¶´djH"¦@“‹õvr”u³`”ãbrLŠÎCIíãR¶˜ƒºS¶èPhcùÌ“7 ¤1oXy€Lƒðzƒ¤ªyê>kæÀfE¨Å¨±h—øŸwgêÖûØEAxØ:8)œ˜ôƒbƒ"Ëú×ôi©2÷`­õt?µÐâ®­;(Ö²ÀyV”}'ôgE Î܈+ÀغŸ›¡ÒB6‘¥- =nëH¡T±![D\l¡ìôÝмþK{µö%ƒ}{´­ØE'éïŒþáN¡9Ø´èãRµ…FC³ièˆKªJJðÉœai-Rîç{ ¬ÄÅû¿¾–©¢hÛ¼ÂÆ{n÷4_‚rûgaú¡Ÿr·]Þu·¼ëÇâ®3aq£™Ñ?•Ñ1s˜;ÖÛaú ÷Ω÷‡Ko öb­á’<’"ro eçʇ(vó<èw¼S¹µ-ì€æ-Ϧn¬Ø@q[¢ÊÎ ”Pìf“M?»ÝæRÀp›ÉÆÎŒwshÕÔSHú5kÆz;¬ôÞ9õþpém1á§ðL¦ º;Ìï¾sëþáÔÝbªÀóÁaª »ÃTñî;·îNÝ-¦ªÄTUØL|Üé>~è>šSQÅ' 쓹ÔͿ݂ÍÛ6Øi¿ªžYo[;«ÛÖ·‡ÌMjÿs–Gºû ŽˆbÕzÍ|%„e‡Y¨öïr¦‘áÜɦéççãíëýËÝØýós,²êÃ!öç'`ÊÇ?U0} SMÄæb³yR"V#ûÓÆåC·ô¦ƒbšàëÖ‹“ê¼Oêp[cÇTƒ0´YûN› O(8‡U““6w‚‘´Ë:,.5= NÏÜveZÀ»3-7Ô,/ÔkG×óvëúÐÕnï1ë]ª(Yïc¬vkà׿á´(º¯U¸BÿötŠÅ)^¨î TX@abRxÅjXõw{ˆ‹Ò&O{[$N¾£jæ–d Œ£XcC]{q¢ô¢Ÿ]t?•6Tüü–+w=E²Ó¦¨knkëö7§íˆ +‰°%YIN’¹aмÕh3BækeÃö»4ì}t=‚<‡Ý÷Í#ßÙøïGú¿«²ñó¯bxò:¢ñZ3„j÷ñÞ2<ƒÅ2Wx @?ÞØ NôPL%|®îïvðª»a¸:´™Š™QRâ÷¹I4õ9Ý=À!|EÛÎëj¨.ôç 5 ^´òK;Àt¡¼ s™ôûÍüÒÎ:Ϧ¥Ý†]Ô;ÿ$Ï'’€é2LÖëØßj’Îñ}ž%D#¯ ÆIÂ0´<¿E5;ðï{ÏÃ@]úŒS¸‚Wü`,B}eL&ËqQ>ìx£í¥f¥Q1¿Ušf^çEu˜•‡YPß´óK¾€êDa“ÙoÚy¦ŸCu¦Ÿ‡Ð?‡8Ú‰Â<¶Ü4¢‹fÇ`j²bÔÿŒ8‰I4,0N)º™0ܰ±×aôA» ç‚rq»iæw¨ñ‰ é‰Â'²!«Ù<Ý¢•_ÂE>µÅ”û<¡4(¼ã1à禙×Ù@]ˆ?}}2UÈ€ü¶¡ßÔ`†@î&{ÛÎó8TúIŠ ” ƒt-ýŽ¡ë2м ii0†¦ß¨.ôƒ;•ùu3¿Ôs .Äß (¿y'ûæFsšP„þéN®¤,tºÆ>§¼ƒ…ÛX4]=è:@æÏ'mÃéä0˜‘Åxó QÒÕ*»‘¢¬PLþ)ª2òÖ*úk`ƒ4c€}6ªÍ±Òçˆ~Èå®T9à£Å\ðZ±Ã…ç+}†0¦iìFÓaê”dÅ¿–r8‡jN¶°`»òk E1“âëR¶Œ”ž¤‘…i„ãmmÛ>¨D'¨ÀJ”î~Íw ôgž™!"ÅÌ+X¯¡ yÛÂ}æŸã „ºTšu=(#åÀ]ŽÁðÿž%ª¤"ðÉbú2%¥ÛgdÃY©ò­ÄॺÑ}Ü*?Bn†µ`œ!ÓÍN³õ˜á«ùÜâ”–Y¡®W~ÇEˆéÈ+aæ.ûgý³<ÇT,NM?Âý^’‰S„Û/ÝŒ³ï‹Øö°Í[Óþy×yBÔðwê&XS< ’`g êcÉ_>òï´x¨È¸&ñÔ=›”l¢Ó½TÆ òæRªM³û)Ä{³â ­¥ÑuQh9í¡º8纙]+ ,èä­µ—{×Ê…¤ºö¼$‰7`_÷d@³åjÜì\0ðŸ^Œ„æø„³ÒØ5ºküK7embÙq/%6_VP ÏÙó‹*š-!J^F1éZ*Ίiµ) þ,=ºšÕ²¥¬û(ýæûÂÝ ¦ÈÝÌ¢ñ6K­¼·Åé#’ì”ò"ÿl-ã7ÚÑeR›¡C$4’ý¼ N-7 V¦Å?ZLN¹AVnÍïØ“Å{¾ªj½Á's8D- ωc©uÃBŽ')ÞÒ'ñ²mšÁêb¡ðZ—ËíøM ?ftõ¨$ÇŸ,ƒJ£Ç${ /ÁÝQÂŽ МxÅ:óZ¶ƒ:÷‚Tq¢e?ÇU´•?Ù,©ÅOÞÿtJr|QƒðÌt8lÑ>!4¯»ø³k£f Û鸪íéšÞ¢BNÐÖW·¶²å­Õ¦ÚŽêFÌ-÷VºÜÝWÉÚvçrk2gåì˜F7(·ï`Ù²ªdç[p:ž°ù=èJï–]áñoþà­F‡¬h¼Ô^ eF£SG"–ñ΋“ÐܯG!–«l7ÍwsŽ¿Át;3½u£©)ÿŠÇŒý¶ô¾€m¨¥86‹îH“ŠÑàb£Š‰®¿/_)C/VÑ6þï7oïÒBiý˲kMS-äY;’4îv2¤ˆÚjÆäœˆªƒbÊAmMQ<ÖhæVá ¤¥DÍ\~1ÌLáv–N.Û6¦’å’àDB5…¢.8¼jr-Ö$¡1 ln²›Vcög¿ÿ2\uBÒ}<üG+ó.¾ÛŒbÿ¶qÅ~lësÓs@e>Ρp—š/yøWp*²$ûqÏðÚLHXd‚rêªW­Óh4ë'F”PÞℱk^I}VTޝ*3Q€mÑøŒCŸ’,*‰!N” ºAÎR.IGj¸›ŸnRrX\bKéSiˆ„BI\¤è¥•é”ôx åí¡(0S'oLÖcg¯jÔŠ S Ã;¥9áyð_ùâ)‘iì¹?6å }ÂÏB_äÑ›8Q–fFÀQžÓªTxIÌhZÛCe€Ò×üRJŸŽƒWÉ¥ñ3ñM¯ „æéC†]?—wý½¸«×z ޳÷b§Šæ5bxÏA œN~NDþ1;þÅaàô‚ÒpáSßÒŒxh g9€çžó…iMwŒbðD´ðEÍC½ÏTI¢ÇzFÛ Lî>È.³«Õû:´7̵DfWìÏ­¬ólföv'lÝëcQ¯ÏE½^’·„ØfUЭ`Ãõù ðò§¬ÊÛS¹ò‡œŸŠ òr2U))~n(&*ýñk`YÐðÂ.l/@=¨sëQ£ðøŒÙ@, _ÏÐuÞ/ r^  Wù¶ÒèçÙŸ[áýÛkˆ‡·fo¥œ*ç›ÑÃûŽ™Ð0&ìƒÆxÝ4ùœkà=ƒ¼“é÷ŠU" ÎìÏÍ“ÓHÇ'C¼|„6È9êuñì·F¼vT6%-'L¨9ƒÐrI¬ú@NöÊ"]ðÑB0g­•€ò½æ5{Ôf¶R¤lòPý’LðHÎèÞ¯þ¢ã2±)%J­"©>¢¤“Êb«à‚±]PTÕFCnµ¸¾ ëk>†’ÛóŸ·÷·OÔM|&üM1V=ý±OzjÞÀxx¸*ìZ«Èº…e¿k¿š#Êßñ45ăÂȦ¡²âœ!$Å‚|™æPeMÍáªò‡vA[¦_ŒvHŽTNÿ9² v."DÒ¨w¾¿íÞ6® mñÉÞøa¾é`H[d…Êó­]ÐYžï,;ÀÜ¢<‡ìLº._×o .[DßÑ1Ù)ïyøj¾ ß$Ž‘ŠYøÇÝÇOÝG×4‹2ðö\^d›ÚÇÊÔɼPÖÖ<¥·h¿ô:æ½-¨nšÛ—Evµ©‰,z²^ß[ÝœA‹BÝâ #ÍŠ.%w5àÑ•lgx1wpxàâ{.²ÊCÀS¾¬Õ¢:—E’ùºƒùá]×ÿ2çBL]“Ç#‘»0Ì^(éJU[\™ýŽGsûã_ò½1kf>q¹õ(æîEsUrÚfæ«Ýt „Êiˆ i½‘†Ð]{89â(‘S&Ðs>ŒÅ¸+eLéXð–‘e(z·°ÿG†ÿŸ:Üeó6“uÓÎ’“­È€Þp(S*o+=03ö¦…êsP¿¾'èL§8‹QçÚžÕtÉQ]ÿÕ+U(`‰çt•Øo–M¿ô”‚x¾à{nacÓdV·É«^¢cÌîQ•ÝÁBg/1C Ïzf._åÍ3¿¡Kª›Tj8­¦.ml7µÑîf¶‡nGôcÏ¢)‰À_eÛ­?[ÀKB×s@˜MJ.ÈóÌÓtÊ¡¥ìQÚy~I²Ï|6Ÿ*^2ñŒ\§«c4euã9ëB=GóÂ4ÀƒÌ¬3*xÛL’þY:™M£–¦„Þs}Ķúfay¹{p·z¨,7I…ƒúƒ1Jã¹p!ÖÄØÃ€>¶Áf/­’‘Ui$í‚>+M“ý`²ö ˜ÅwYÿLhweÉæã.YÆPËõ–n8¼]`JqzVí`-®…"ì,-ƒ5z ¿±~+ò*BÿÆ[õ'cFgñÌ4¥J Ú"†¶t2áOWö¡ßH5/Ñ/Ïë×.×ýËÁ…yþþ¶Óà óÜnŒV›ÿ>Açp‚;âÅí·ÿŽ.™fzÁ±'ré#¼Z{óž%I31O& oß6ª"eâóV÷y¯ï½Û©?ÿÛY°×?%[ÿÛÛ€Ù+ÁÀ› <ßi@íí@©¨2‡å ¡¼GXÅeòÍ‘]›„^~u¿°£ŸçÙoȳ˜·ðQ‰û‡ÇiÙx#øg’ëèd't-ë4„‹‘®Iü8.sí8ÎUÜÍ>™/Þ9Þ[5V༠kãNÿÙ±à¥ÅNl·Ø¯(Tei–ZFc÷;)æ­LñéÝ o®UÉ?ô_=ÌÄ¿¯w|Wˆjü›ñhþ¡ã‘ܨéézýCyö—”ÁûÛ»*¿@ÓÄœºÌ7v+>ì¤óˆZéÆâeŽb8GT¼«?™SÌŸË«ûjí»Ôû¶XŒóíÛ,öQyýÃG 4¤¸Ç4ÞB÷qyxu]½CFᩳ;2®ÞÏOWÏ»^2Mßå#÷ cBnÜ=ï pF2v÷1¡©ý¤°NS?!ûÉÈh´h.´£årõºü]ªç·Hè<9(ioÊ¡þèÌÌ2,8d YÈÎ×neØŸý…"ùísðwŽÖWNPH¥(:Nã›Â-Ö£;üŸÁqÄX ÷°ÿ!ÐÌ[Ad@Á:±#yè×G#žO8æimùUÓ‘(ÎΙò»í_we&ùAJ}œåÜæÓÃоoýÁ÷\X—ÙÀ{ÓÏUç$‹–U£Öλ²¢”0âXå}=€*Üì΂ö®ÕѦ5TYÁÄôH‹fbœÔ$¡’†êj9™78˜Äiiöï¥,sÕRöF0WgˆÏȱÈ~zfÂ(ûIã Eb’ð‘5`«¹,o¹dFÏ—2JÀ0œ ŒK\ô‹Øv¹B¼UÓeìÛ+š|—] sNù.Õ„N=£&6/¬¯”ž–æt1­p`ªÿ®Ss‡|‡êYcͬ*Å…ÑD³ÓIN-ÍQqmõЉù­m¡á즧½;8ækæ·o• ›þœT IsŒ£ö„B´,2¶!ØôŸQ§cö º96?j O‰HÏÓ¬s<ë8»ãXIïwE"} ™¡~€R?z›˜-"áa‰}¤õy”‚BvU™G#¨h£ºà8BNÛ{î(S IãÓL-þÄÊU¢¼îðãä†gbT3‚Qz즄-O_\Ƀ{}tf5Éëw|Ðï8¸]2º¤wYˆïŽû Šôg3¡ÛLЃh¤õ`ŒÎ¤±£ØC%>Ë,ºò’¥r.†¾õ˜lÐ å%Œ§\˜"¾¤}>ëý–;ðí(¥þ³`‡7(¸ípæ„ÅAÑžcÛ¹”W“|'ý=;ŸoYq$Túõk #=s®ø‡PÌóälÞ%WDœþŠ˜þc–• …{Hœ7`,ÌøŸ†ÉK•€ßF§Wsüȳ4RHkb¢9®#ì¥3ÆäÀáŒ%%af2¼.ÄÒ`ÕzeõFÕþÈ‘IÙ'ÓÚ]„LnW¸”[nô;O£‹ÕÜ0s‹Žu‚~i ‰ð>òâ~ÆI_«²o%¡³„¤YSTdaw )í²ñ†ICp1nŽl’Tq=/s„Œk9-<€LàòÝæ»¿Ûìtòâ<‘pX{oÕ’ ‚ùÅÑ ¶T§,D5aÅšÝRüTô°K£›M½^M ë¯æ‡+.Rkü›õåÌÁ5]AnªXI¦«ƒsñ Uq)õI$.ý8fì·~|-¨Ñ<·èä§CM4ÿÁý©"#Òa¶°ºuì ccj£ ƒêÀKmk×ÿšhš(d"´™­AØtkåNÏY9w[Ÿ RqC®„¨ÅôÊŽõ±”j˜Évò¢Û*}TFbžêná¤uÒÞi¨OH…?IËx*Æ ßÖ`Þ@ŒÖ"h£Š¦N{¦B¡hÕëìP* §­ŒÐ…$ý’œ  $qÙC†r©PJP:èqâ5¼å”3Š¡J¯ìÿJ•ûœeõ»ˆµ ¡¼1.Õæ‘IÓƒZ9éë×ó‚Ún×êøíÆ‚jºµaz¿Ÿ-øXNpœö~§·3RÙ“-”0éú©õZóô$c—̬ÙEüq“&|^F3ü 8'éÜT÷fj¡z:dånX dçì\Å-7K-?}ææÍgŒ·Œä’+X`J3î‰'}Øi›Ü]o“çè4§×þ}}AIø¸üŽU âL//ï÷9€f‹8Õ}Óò‚)AŸMä2ÃPƒâˆÙÕÒO4I Ž·þSd ç@ê_ 74dàüF¿,¯³³!@sEÑìTr¨óãà *QEtlâ˜wàãɤI÷'+TÝ£0Ï WHsVHïéŸrFª¨œoÙDÀ“æŽ{ñÎëF>}Ðí`~=æß0'ð¦Q=橹…‘µx†ð”LýrÆUˆ%À“?¡œU7FœÃâwýáž4¡”!e[ñºœØÒÔÝ}N­—ýÞ³ñP;oè~ó:ˆñ‹¤´žÙ¦JE°}û|Ûm‚Í{P”*övªì C¶Y Ù6Øn‚Ý×çzØVÏ[JÂõ19Â+bÍ Œ“|M޶¨ÕnWeÑíŠãZ›E·/aÑíê,º]›Ew«²ènÅq­Í¢»—°ènuÝ­Í¢ûUYt¿â¸ÖfÑýKXt¿:‹î×fÑUYôcÅq­Í¢/aÑÕYôcmý\•EWÄ´:‹~¾„E?WgÑϵYô÷ª,ú{Åq­Í¢¿_¢¿WgÑßk³èת,úµâ¸Öfѯ—°è×ê,úµ6‹þY•Eÿ¬8®µYôÏKXôÏê,úgeݽ¯É¢»÷Q8Ü®‡nÅIü\wd¿WDµîȾVDµîÈþ¬ˆjÝ‘­x2®|Éu×¼äÖ•/9†qåKnó¾"ªU·Ãf³"ªuG¶&ªuG¶ªÈµÙ­ˆjÝyܯˆjÝ‘}¬ˆjÝ‘­ÈøëŠÉ›ß+¢Zwd_+¢ZwdVDµîÈV¼ÍÖ“_â#·[ÝGn·¶ÜnU¹ÝvÅq­Í¢/ñ‘Û­î#·[ÛGn·ªÜn·â¸ÖfÑ—øÈíV÷‘Û­í#·Û¿¯ˆjU¡b¿YÕº#[Õº#[õÀÜïVDµî<îWDµîÈ>VDµîÈVdüu ûß+¢Zwd_+¢ZwdVDµîÈV¼ÍÖ“_â§¿[ÝO·¶Ÿþîã}ET«n‡ÍЍÖÙš¨ÖÙªbòÇnETëÎãŠ+¶öUð’x˜Ýêñ0»µãav«ÆÃìVÄ´:‹¾$f·z<Ìníx˜Ýªñ0»ß+Žkm}I<Ìnõx˜ÝÚñ0»Uãav_+Žkm}I<Ìnõx˜ÝÚñ0»UãavV×Ú,ú’x˜Ýêñ0»µãaö«ÆÃ¬÷T¸_Ý›}ÿoöýêÞìûµ½Ù÷«ú¯÷æ»_Ý“lÿO²ýêždûµ=Éö«z’­÷x¿_Ý“lÿO²ýêždûµ=Éö«z’­ç±_Ý“lÿO²ýêždûµ=Éö«úî¬çà²_ýwÿ’WÜý꯸ûµ_q÷«¾›­ç©´_ýuiÿ’×¥ýê¯Kûµ_—ö«¾.íWÄ´:‹¾äui¿úëÒ~í×¥ýª¯KëùîW]Ú¿äui¿úëÒ~í×¥ýª¯Kë9îW]Ú¿äui¿úëÒ~ÝץՒtÿã%I÷?ÖNÏÞHQV(^ ãn=L«3Íî%L³[›iv«3ÍÇz˜Vgš—0ÍÇÚLó±:Ó|­‡iu¦ùz Ó¬.a|­Í4k¥»ûX=ÝÝÇKÒÝ}¬|Ž#\›i6ëaZi6/ašÍÚL³Yi¶ëaZi^¢=íÖÖžv+kO_ÁZy5ÓºLÓǸÓp¬k2 G¸6ÓlÖô:Ól^Â4›µ™f³:Ól×ô:Ól_Â4Ûµ™fýëi·¦Õ™f÷¦Ù­Í4»Õ™f¿¦Õ™fÿ¦Ù¯Í4ûÕ™æc=L«3ÍÇK˜æcm¦ùXi>×ô:Ó|¾„i>×fšÏ5™&Ø_à Aq‰xó?¿>ÅZØwEIô¹_Ò‘dùn{_Ô³D)©’E]ïùþ¾é•ן,‹–ô³,=Ó, ¶§%Ý“ðJÒ?–ôÍÂgé’žyöƒ‹<\¶¸ug‡®Mò%Ý‹ý5 98|,èûq ÂìÈvÑÒÞ$ß-ÂLwÞ±%=nPp “?›ý×ûq!`ûñ¾èð 9*²IÝuÉZïÞÞßÞ×ÐýD«]“c„«Ü’-Ò•.ÉßZwdp·¢µùe÷ ~Ù­Ì/»µùe¿¢µùeÿ ~Ù¯Ì/ûµùåc5DkóËÇ+øåce~ùX›_>WC´6¿|¾‚_>Wæ—ϵùå÷jˆÖæ—߯à—ß+óËïµùåk5DkóË×+øåke~ùZ›_þ¬†hm~ùó ~ù³2¿üY™_¶ï«!Z™_¶ï/à—íûºü²}_›_6«!Z›_6¯à—ÍÊü²Y›_¶«!Z›_^aßÝ®lßÝ®mßÝîVC´6¿¼Â¾»]Ù¾»]Û¾»Ý¯†hm~y…}w»²}w»¶}wû±¢µùåöÝíÊöÝíÚöÝíçjˆÖæ—WØw·+Ûw·kÛw·¿WC´6¿¼Â¾»]Ù¾»]Û¾»ýZ ÑÚüò ûîveûîvmûîöÏjˆÖæ—WØw·+Ûw·kÛwwï«!Z™_v¯°ïîV¶ïîÖ¶ïî6«!Z›_^aßÝ­lßÝ­mßÝmWC´6¿¼Â¾»[Ù¾»[Ó¾»]˾»]Û¾»}…}·Fg?1*q>^sݱ®Ì«ûÕ­Í«ûWðê~íõûX ÑÚë÷ñŠõûX{ý>WC´öú}¾bý>×^¿ß«!Z{ý~¿bý~¯½~VC´öúýyÅúýYyýV±ýl×¶ýl_aûÙ®m‹Ù®e‹Ù®m‹Ù¾Â³]Û6²]Ë6²]Û6²}…mdû [Ån·¢µ×ï¶ŠÝ l»Ù*vkÛ*vûÕ­Í«¯°UìÖ¶Uì>VC´öú½ÂVÁ®Ö|¼è¬YÛ.³û\ ÑÚ¼ú »Ìîó¼úù"^]Ûµû½¢µyõ6(†t}^ýý"^]ÛÞ¶ûZ ÑÚ¼úõ ^ýz¯~½ˆW¿ÖæÕ?«!Z›W_afH×çÕ?/âÕµíàû÷Õ­Ì«ûWØÁÒÕyu€sݱ®Ì«›Õ­Í«¯°ù3¤ëóêæE¼ºöûÆ~»¢µyõï éú¼º}¯®ý–³ß­†hm^}Å[Î~í÷ý~5Dk¯ß+Þ7ÒõÏšý‹Îšµßrö«!Z›W_ñ–³_û}cÿ{5Dk¯ß+lÆûØŒ÷/²ï×¶ï¿VC´6¯¾Âf¼Íxÿ"›ñ~M›ñÇZ¹l?ÖÎeû±VÖÕµ³®~¬•ïñcí|ke&üX;3áÇZ1–kÇX~¬‘÷±vDÞÇZ±jkǪ}¬Åõ±v×ÇZñMkÇ7}¬••ècí¬DkÅ4}¬Óô±V´ÏÇÚÑ>kÅÁ|¬ó±V„ÈÇÚ"kÅN|¬;ñ±–§ýÇÚžö_ki1_kk1_kU9øZ»ÊÁ×ZúÙ×ÚúÙ×ZúÙ×ÚúÙ×ZúÙ×ÚúÙ×ZúÙ×ÚúÙ×ZúÙ×ÊúÙ×óU³=à°+ ¼¸úÇÒŽ «§/ªœŽÃçŸkk1PcŸKQxͳ¢d+pƒ¯¯Áž¢²|¼u–b²ö¬W(-W0à÷q2„] å"=\/fæ ë2ôýZLM²|·½Û¦¤D)©ën÷|·Fv%Åõ'Ë"Û~ñ1 ¶oŸoL_Qˆ–b]e3 1çÆI^®Œu¥$š}¤Û—,íöeK»}ÉÒn_±´»—,íîeK»{ÉÒî^±´û—,íþeK»ÉÒî_±´/YÚ—-íÇK–öãKûù’¥ý|ÙÒ~¾di?_±´¿_²´¿_¶´¿_²´¿_±´_/YÚ¯—-í×K–öëKûç%KûçeKûç%KûçK»¢·‡ëÚKË0¿`i׫+ÔGúkÔîeÖ¨ÝK¬Q»WX£v/±Fí^fڽĵ{…5j÷kÔîeÖ¨ÝK¬Q»WX£v/±Fí^fڽĵ{…5j÷kÔîeÖ¨ÝK¬Q»WX£v/±Fí^fڽĵ{…5j÷kÔîeÖ¨ÝK¬Q»WX£v/±Fí^fڽĵ{…5j÷kÔîeÖ¨ÝK¬Q»WX£ö/±Fí_fڿĵ…5jÿkÔþeÖ¨ýK¬QûWX£ö/±Fí_fڿĵ…5jÿkÔþeÖ¨ýK¬QûWX£ö/±Fí_fڿĵ…5jÿkÔþeÖ¨ýK¬QûWX£ö/±Fí_fڿĵ…5jÿkÔþeÖ¨ýK¬QûWX£ö/±Fí_fڿĵ_Õµ{{‡\ëê>c¤«-l‹xýÞ¿b†÷¯šáý føó3üùªþ|Á ÿ~Å ÿ~Õ ÿ~Á ½b†¿^5ï¸éþ¼b†ÿ¼j†ÿ¬?ÃÛ÷ÌðöýE3¼}Á o^1ÛWÍðæ3ü yxû*yxûyxåpå1Òµgx÷‚~…Ʊ}•Ʊ}ƱrðîéÚ3üñ‚~…N·}•N·}N·}…N·}•N·}N·}…N·}•N·}N·}…N·}•N·}N·{…N·{•N·{N·{…N·{•N·{N·{…N·{•N·[Y§Û¾B§Û¾J§Û¾B¿Ú¾J¿Ú¾B×Ù¾J×Ù¾BïØ¾JïØ¾BؾJؾBZܾJZܾBrÛ¾JrÛ¾BŠÚ¾JŠÚ¾B¢Ù¾J¢Ù®[CE†tíѾBºØ½JºØ½BºØ}¼n´kÕ4í!}…H³{•Hÿ`Š_!Gí^%Gí~¿bŠ¿^1Å_¯šâ¯WLñ+äãÝËäã?/˜âý+„òý«„r†øSü M`ÿ*M€!~Á¿BýØ¿Jý`ˆ_0ůÐyö¯ÒyâLñ+­ý«-†øSü ínÿ*ínÿ ínÿ Õcÿ*Õcÿ Õcÿ Õcÿ*Õc¿¢ê‘eé™fi°=YW­Ê~bTâ4|¬@eƒj••HÂ+Icü°‘,,q–Z÷*H–~X˳\ä¡}}ɺãÂnMrë®+rûk@r( lG_ñq ÂìˆârIO’ïì1>2èîÏ»5SÑãÇ0ù³Ù½ô·ïÖ%VWò˜h^TÃQ†|ò2ÌkUn¤9*œSu·%*E%‰­ ö®uíÖx^ĆRìëð¡õ³‘œ£ƒ¬5a'B„“,ýõR\þdÅ•}ÎÒ9Wc£ÁïEV•$=÷~[ë×ÿÉ‹¬ÌÂŒQøÿþßÿçÿ6´°_ÏJ~ýŸŠâ*ƒÐЖ 3îÕ¥”•Üž®è«‘-ûKe,Sª»Þ´¿â0í®ÚÀfý·Ó¿uœþ­‡éß:NÿÖmú·ŽÓ¿s˜þãôïÜ\K>]K¾‚ÓFè÷_:Æò)àÝݦ`ã8S°q›‚ãl§`ëa ¶nSàºvŽS°ó0;·)Ø9NÁÞq ö¦`ï6{Ç)øpœ‚Sðá6ŽSðé8Ÿ¦àÓm –ÚIƵè»/˜€¹¢ô†½†¿sþÎ}ø;§áï܆¿wþÞ}ø{§áï݆ÿá6ü÷á8 ÿÃmøŸnÃÿtþ§Óð¾ßnÃÿí>üßNÃÿí6ü/·á¹ÿËiø_nÃÿã6ü?îÃÿã4ü?NÃß¾; ûî<üí»Ëð·ïnÃ߸ ã>üÓð7nÃw“ú¶îRßÖIêÛºI}[7©oë.õm¤¾­›Ô·u“ú¶îRßÖIêÛºI}[7©oë.õm¤¾­›Ô·u“ú¶îRßÖIêÛºI}[7©oë.õm¤¾­›Ô·u“ú¶îRßÖIêÛºI}[7©oë.õm¤¾­›Ô·s“úvîRßÎIêÛ¹I};7©oç.õ휤¾›Ô·s“úvîRßÎIêÛ-—úê‚Éš´éÖMB]ZÑ‘Ž:>œéøðBǧ3Ÿ^èøíLÇo/t|9Óñå…Ž?ÎtüñAÇþÝ•Ž„åtlœéØx¡cëLÇÖ {g:ö^èpÞ·{/ûvï¼o÷Žûß˹>Œ €ì|Ùûòáȧ ¿}ùòä ‹ © @|pìÖÇn}pìÖÇn}pìÖÇn}pìÖÇî|pìÎÇÚ+$$=emÛ$KI™¼¢¾BB˜% J#OjÐ0ËÙßUIbR>êZ5èšòë±"q—Ì<ÓŸr\HÒ Žã15º˜à ·ƒ¯"qvîfí˜eåÂÉ©éc­¡ Æîmón2 Špؤ¢´%0 +hÅ+TŒÁnŸõë)Pÿø„š£2¼qEË›ÀhV![:¨èAƒR^à·Sùƒñq¿Ì’ì‘mÞ~?…-üˆ;N³‘gÐÈþH£àˆh7ɽÚ& <”çA„J4„ˆªˆd´9Z8Ø?çjÈXBܾ½;5é,Z&¸D9 ¯ì0ošW9/…BP„û§ÕÂéqi<_Áv,‚ÍÓ°”YÓÃtíä5~PŠâm+üÜÒðп*Jv{IaI !8vñ´þ÷àŸ®tÓÒÒ€ ­öìTéÈT…d(£‚0r†XvغSøR&±înzH‘ðÓcJdÝ™£>Š­3¿ïrJ ³^jöï_f4C×Á2Ý7›éäà„+)‡ovÿ³&üˆ‹IØ€ùØô–9NëM‰¢P*™¡+u*óþŸ—þ–‹=ÜSŒŸÐK^`JEñ[£°[ýgìˆà¾úð•Ÿáü/&i¦4!5€îNY‘ 6I¾“þžÏ·¬8*ýúƒnòKá»"ÍP~0 ³Á’ª&URßkf#†1aÐg—£û›žü/OBî½ÕQ.VýÍ1/]}1¶sËnùþ73ÈãŠbŠãƒô œ6¤¨i)~’5Êf›p‰Î6جÌ6:! I'öº¬wŒÂå½ÏèÏxŽæ›(¿p~FÎ C£^ÊfZ’‡ˆ–³íþ"¨n8Ó(FÍ‘A³L戣ռ³œ’y´óL—ñˆ1alîP P:¿þ Yñþó-«˜b³¦ÁΤ<ß4¼ŽØñeÀ‚4ŠÇ³Ô»®ÙWY8Aˬ /óàÙ){÷¿ %:Ç ,Ì`//8+æ·Ä-CìfKCƒ†@¢ÿáÜ“.œ˜(Î&øq}ððΰ{ì€aŒp~ô„4®0:Õùõê ­8…e.ÅÝÙäOaË%»šüÆw`Nv—€(ØÂ4â/hšW¥•ÑmåÄÐT„ ßT1¦ eê±>ÀÞ­Ç [ƒ±4$›-=lN oÿÌ£“J¼`ýŬëAeŽ\f¥8¬ ö/®Ú\[ü× ß}N²qÇ,»w#s"ñÈlÒ-£ž²!êzué…&2§ ÷‹Øöb€Ø‚ñ•¡.4œ4T-Ùq^ŠíË)›¬mýo|ç×5[" $ùéJ±|^Ÿs”@J‚B:%«[ÄrÍDødÒrvýû«Ý8R,Ãø(/#…雷¶2F8Tzçݹ¼Žõ;%@\DÞTéÆgƒ½’É)ÃŽ¬Ç1c¿MíýeÉܷö°aŸŽA=.¡%¥vxà,sN«ßùÇh©/3ýå5èÑ’É3կĭbËÕ°i»0UPþßÿÚÜsݺǩꎻá^6FÏõØ#|$¨×JìÝAKÉî”w‡§ v&ø_ÜÄÖnÑXùà³ôàíS"åRB³?ŸŸï‚ÊÓæ`pªMž¾ºYOÙ9O1<‡1Øl9ð¬Ï È„aaOtÉc•ÁôepÏ4=ŽÌ'„³¡œïêÇ n èßR–’b%\&@º‰ÀΫ£±j@ÃaÌòð²èä\î\y/}€KØUà.*Â;Ã\_|iySrõº‘g arîÀÜ˦õ?9àù§c«§3z«s@É‘jâóÁú¸h¯C9EB¶tcý„ƒ°…Ç©ö‘ðJÃ2oN ÞûçT•¨#s</8¼ri.Žr Ýqw"ز¶Ña†¶ÆŠ<:4c\²&l õÕÍh?WÐ!´Óò‘ ‹wö@5½Åkb¾QFè{jö ~þ gª“BÄfÅ¥ä_7¦úm‹ñ>2† ’OYÛr%? D¹$%ÙÎñ5àïK‡ÑèØ—@ð•xÕ(r{¾8v¤ÓØ pjI‰Ktö1«íù ŸcÚ¸ú¨ZöÐ ã–۷ߦ;®im¬àg´Œ¡Ðˆµcø>(¾~YQ÷%¨Ó`ûÒbûc…íÏ,¶?lƘ$ê»â©œÿ ›a|â:­AÅd©-ÿ0Uûûà *޼•8Ëòêß¿/±:I¯ÔÃ_rÄ)؇aþb]yóNG…Å&ÏNt=gAÉhÚÕÞP »ªŠG3i!לo«³X2™ mQõ]‰ŠR¢1CCÎÎ#Œý>ê¹D3–¾ÏÊÞ^§­ø»b«À¢éÞGŽzÑmtƒ{:|Gv¥Š’0H³FŽ–,EÆÆ•ö8IÜ\ퟧ¬·Ffx&L`ʤ ù\™’ýÞ;$ŸK|Ÿš0kÒFs@qJ³b*R®èÍš‚˜8P­k+{Ðþ‰pÉŽÇ[çsöËPª4r¶ø†§H‰Hʈ d]Rб½·%;Œ5ŽÁÌéã•ÁJÀup° ôžbê©–q-Ãô®k©PaŠ*­ç3D1Sò‹3>x295&þÆO²ÆAå>”¥pó•jìëÝæ4£…Û0-ùÇ'58`î”­y‰¼|ìŒbBÐeÇkx©ñ\áu$€ôàCÙF{7¸â €AqiÍûírd ÖXɰÔÑŒ!ϪÎPËÆ\€…ݾ W“]vÇh•2ÏÏ_’—+†æ¼å/(Í€Øg΀&ûèÆ7=NÍé[Íõ …çôÙy2â‹öyDtÀåU9{Œ9Þn<20ê\*Á¿ý2tŠíëËt!ç7õÒuÓ¾§Ú¯'§ŸŸ¨ïöv R‘ÈÍ‰Ž¬cД>˜äœü²~vèÔØ!ÙpqÁ(Šcl8LP#§<üàã¬ÃêÐ{¹¥c úsZLœu³3‰0n¦ÏÃm¡Í…´ n¢BFUJ¼w uúúžÛ}"©•X*÷U3BËý¨*/ n«ÑtÞã@É_”ì_’µwÔŒÅIrkáœn)õS¯ô¬ŸÝ Yaæ§oqðµÀßÒ·Ç¡}ÏøÓë/!¨aÝIÂÖ)Kê5š;%C;Fn½‰Çºz猪%ŠÏ`–\­ÝB°Ñ¦çxþ²ÝÍ[TçsÍ\ð†wÁS¥Yz’Êxª” ^eµý¶7±@þaée%á'q:úôËåÛyºFcÍ‹_Â[›–|£ãI×нÌPý=¢´Õ—Ã*.+àþ#Æà5§½Ÿ"öl¬=Ýú Ú>Ìhp&–*µ‘I²®D\¨5áG’±>l¬²xÞŒ»{¶¤ÔO$ÊåøÁ×MxÆg1ña`v“XTLJ•#ÓJräÎ;ã¤,á Ò$¶i|£%Úÿ¹¢Gï;TÜÒ(KcôÓÌ“âBmä9µ%øçþC¢3.©ì50KÏp—Áfø0-14÷˜AÂÛ鹨ҾWXŒrv -Ÿ±Y·”,»Vy€ã%N…}¦íNЦ›ñª5mè°ärpúíŽÔ°x°Yæ#=¸%fǯú0–÷¬ý6ƹÞY#dߙʺ†BŠÐŒ#ËùÈ"¢¨ó^oÔÚô>çØtŸúª/qî@v1áÁD‰‹üݼDaè4MÒMT–(ýwtpníJSÃX;)•Qö“‚ýXÛHFP•­€ ·¸Ž|–Æo$„êaWÑþઠ,~¤‰ ¹—O8ÿ©„zÃ:ÓÄ /‹Üe“HŸì'gbS*3•h ý–w‚(·`Õ‘kâJWê¥%f!¿D„væ±Úq`»^q3 oÎH„ey‰•!–8} yÁG½ÌD'.Ã#wsÆy;/šXr *{÷L t_ƒ˜€f”¸<7ËD¹ Ÿ³›;^º!êΩùìáÉú+ìj’[ïªgÃ.eGv4°3¡ ýظf{ÿˆ£5°’ ý¢Ïê fÝFg™P‹ôßÀp°] aÿ•àÊÉVOf:»±ŸÓJv³Mâ¼ÿSTy²·â”P³èž¶ÂËuw˜;XÓ±¼~MÖ½ üsëAóD°/SÛ! w§¦ç´­#L¯ì`ÇðkìÂ@„™Mb¡aÞ™ÕZ&öý~û^ñ5Å€XÓ—_ÏÒ5¹Æ²–ßåþ PàóÅ´=f™DûóÎ%MüîÙƒC*ªtDǃ¹6w”½çÐè¦î`ö³›NOCT{#ÐK NÖƒ“u/u½X¨Xì"¼¡ð1|V ½ ¤š3HÝ¥~Å8Ž5Ý&ö Nè(é·ÓsÌD„hfW n£ÇF|­7ë©í‰¦KWyL†\Å“÷£µ€E¸Ä¡7'=ù°É+íçs¯ul;SH÷"E¯Å3T¿Œ-·&›¸ÂÒøúÓ•©(ÓïVg›ˆ¹M³’œZ†µ~“`ˆS’wÞÅŒBa훤ɳ¬R7o¨T¥xÆãUë 0·sNq”†”Vð|QÜ݃?ÉD' 4ìye²‹½Ê]Ïv#†fx/EÖ¼xO™ºÌQ*³ ‡“ªÌ…ÃóDÆ…„†Üš!1Nq–çL¼b2ˆûvxY,–Ö˜6Óî‰Ã_Oq¯/ JN¥Æ0T7èBƯSÿῠuC· ,¿àøÖ`ÝS^̽LÒAH&æ"ß\£*Fr‘¿qgÍ™ÜEÕòІV—ö¯»ÒâÀàžŒý˜–%7Ä7"œµ1‡u/…KÈäg¶üÞ‘=öÎ{Ÿ„›aà k9}@¬Ðþ]Ž3HÐ× Y¿çÄm=ʬjCT…>–m(U Ñßhß6‡gnn4oƒ”*ËÇä;}†Årkôwyºî>àƒQx…”†»Ž5>²=—›7ÿÒ,µh^±UkŠ©m{¹+|~¥ˆZPI<è·exù9غëÀogÜIžpqÕ·Êì~â?NØ,`ÝÒÒœz|Ï‘EóîÞ3îó—”F$´…¥7QÆ7ÃÜ£ªq~Y©¼r,²ÚEmó?µîlS!†M]!‹ýã³Eã3±hœÛ€N¢‹Æ<;Õ„sÍS19Ncr¾Xð$Û´änÞ¼À÷€)3g»y(RµYô°'«´ÂÁfÌüŒ-²ðJMìÏŠc…âМ4Êaóì7¯?WIòè>M~†×ö|‡ÆÍùn×ËötèÍüj-!ã¦OŸ‡#9Jÿ›[úH(à+<ÀÙ°(ÊIp mN£ÄâPüÇþaÚ:¼>„‰dÞbb—fLþšÝáSdÏ©qp»µî·4În誌!”$Hl§úŒŠjb´±ç]¶æŒrXc0üá—˜Iª™»Pu—;\¬¶îã{}ôö%£¤( qp‰ŠÉ{b•¢¢ll˜ºæpèÄ’$øŠq>œ=\ã—!n)ùA&ÄX0{D]’áæ¬NùWZ¾ø÷‰Å¢Êb$ep†ÎâI¯gð*PÃyCmiT‚K3¶òl>ËÁÿ ¨ÇK9`Bz^‚ H /Ý Ò¸nK¦³¸ŽŒQ*“2³È:¶Ñ«}TÄësEC¤ðQ¬?j¸Œ}6³¨)k"œ³ü2l ŽdÝëé£àQ¾ICW³ãßPéú9”–ÏiÅ”®^ìÛ7îÞÐå¡ëcË8ÃÔ·ëAOã,Þ_ ‰–·9s‡ðsgèlm@¼-wÐ7m>}°[8óí‚Ç´ªÄ'B¯æ9Ô ljPJÓ|ȶ5x]=Ìâe äm×Ó˜ý Š[/Èý±ÇÚÝ™š£“ÞÎhþ,58ìn[á^4Ë·mÀD&âWgÁäЉ…4ãGÖ°{Ž´ùǧàzFƒs–EFí³éë–º÷´I.û^×;L¢q-yÛƒaô­iÌ›4xPȬ·d+ÌÅ_ÓìhŠƒY¬ß€KŠ ¼ÑÃÌ]'ò /õ¿+"œñeµC&ÇX­@KdX½Ý˲84 3.LÞØï…l¸ú.TÔ÷ÓÝMxî9ø²Š תAËâv',Q·6hxÉŠ2¬ÊÃsΡÑëaÑè’üI÷Ã&ÍxvGˆ§nýŸøqLÉ¿ƒQýÃZ ú<ÒSÒ)ñ‘œ ƒbEu4É8Eæ#½âŒ ËN“¬•)êYš%£rïÂücæÍ\Û†“ÕØ„é\(,<çgŸÊ{Òùísèj›û[¿œOÇzpÁOrq˜°À@Jzò V_n€_w© Vxzõ>è5K 6Bet0 ¦êâ¾ ÜÖ_ÒU#”Ó'sé²%<îJkôã~xF(…ÊS¥}Ц)›ät3z>Ö%(Ãúw¿ê £Oõ%,ÿ 8Kña®·hk¦Œþ“=C:g­qÆúêg#ËŸ;F³Q%›Ï ÓËaI¼dóÎQ ª‘X>Úœ¢wŸï54ó®$is Î9þ<¸¶ø²h…d»{ÿ™¬¾,€Š!ê;¡_ï2ÙËýyý1G/%s²WšñÈç-ùC°•מ›!ŸgúwþºEv’Wpô–å7:22Bv=@!_bg–)·»ój _w1a&cÃ+¢³ª!9Æ;šJJlCõûÊ ƒ·‡™ôÕ¬Q–“;ÌÚVŸòl¡’ØÏs&Ÿ„Çlø†ÁÇõªFNë–¬/«êó<â´£ÉNÀÑ9y¼Ù„íº%u«ýÀè˜%G\Èmiíç9¿UJ²bâDáàóÁPÚÚfŠ8NöºÉ³»¦z£$¤?âGËPˆÞ­:ºÜPC_®X,—–õW f‚p Zt2^ßÙ$a l€š4A¼yOœž=ר#SóI,Þc+Eg¦—\$Lx‚hº&lîP ÅlÉÚÓ*Ä1&a€Bžã¼ýã¼$ ù Ç[$¯¡B™:«I‘õŸºRfMSVŽi¦ÑP¼JÓiSñÎÁÑ+Û'úÇþº‘у?› ÈS*ø©È%¹˜ÿ²Ë†ÍñÕ Ç¦'2NW¦<äøÇ¹ZPöö5+ê˜,ÏÕyÉ«}ýTbç¶ÿì©M ´Le`¤•úÔî6™+»ª¸<‹Ç ²^H[ZQ…¹sq(¬4ýC•\PYV*p2çx8°¬+chˆƒ$ÓÛ9A®ç•8”ÔÈa‘‡ƒÔ@¡›|Áß 2™ s·ºVï’LìðŒé÷Ö Åè9Ę]Þii¦u™Ôc'.µ¯îÂi¹a!üKvð¼ø“&¯G)èºF†c® ñ[ž Íž üÍ>ï–Ÿg|Q™#µ5ÍÁ¢H£N®ÔâŽH+¨eJÒÃ"êBsá>‘I ÞÖ# OHÙ¡I.1%W2Àéލ±áeІ«Þ²E–K}€ÅE*€ïÎÉ´ÍåQ”Ñ•¤ÀO™7¥£4üO˶{o´Ùù¶Ó¨¹Ë÷݉­y©Y-!Í ~ !ž’Ö{‘[ÊŒ\€•ïdƒµ³JµÙ=ØÂ}ž‰Aâ5øŸGT3]Ã3s³‚Ó>-Y5~ý­…Í‹ ÄW‰cVп†4¦ áL?·þ=Ó•”ðTZ±X!w/HÕ¤¯=3&I!O}”¾e1ÏÐ9ö–œ‰ƒžF.²1ê‡õCîgëªÿ}?…vs!õ‚6•t0ñªKú(ç9àùQú»¤ÌíÊ·ëü8Z.dâd¹ U¥‘ø"- 1Mí¬OÝ£µÀ(’]=âØÔfjŒÍªzÞ–’Mï¬gçü•J.“Ë:¦¸µ¡O'Uͨǒ¬É2œ`™ŽYô°Œ~^嘲¹ÓCZ@ÍrçÈïÌ–!ÿ±¡PTFÞ.ËÙ;B ……Üë°ŽXazc±‚1*'©h%ÐöĬþa'þÍ£ j¹Ø‚—å"˜ùe¾*šH.úq÷G±ðʲ' æ@ÇrÁV3‡ ˜"-ƒsEÀõ£„Q‰â^N#nf5ÈLÔè-À3.’>¼aÊ$m|Ü0 [¿þBû#=ϽOé;üÑ@¨QüŸ£”¿CüxêÇŸ Ìî—ÿ)úÙc^ò¿ÅmÁßþöú‹ò:âþˆÂkÖ£ðš1Yíkó¸GdKûÛ"y9xKDÿˆ`ÂÍEY«ÿµu‡-Límëü»ÈòW¼žÀ‚Ü.YŸ›+¸,ðch¸l+αÏW µ$N½¸SQ[B’ØSq=Ž”»C6áò}—¡IÒó…Þk ¡´"í3ÍôÁ*|ì$”äQðüŒÙ{ý’±JfÛ5¬®¯s9òcC®’\D [WÞîwÀHhÍ6…ÒË¡;`9Éë2I!JüË­h†,Ãu%¦~»ýÔL*K|÷¨L³?ŸŸïRwX>—Š›FG©àË_^ðw©™yø°Ë ÝNRÙĦzV––VŽ(ý‰Á§{Ìí*³Óœpü²Q»A)ÞñÍ£38Q7'¡QújÛ(‹Ñ¡ivB4Ù+çjZÔƒé,–WZ¶cx †Üå‰ãÉ8µ¾1Ò°Ö’iƒ(Á°`fQ xSô¤œÔùgÜ«覊¡¾3kšna&ëB]¾8ߦîJÂGA†‘Mt6ÿŸÄèiD†t¿¥Hår–jhÁ×<®ÚLbIÕ:ÐXúÓY&[4wXKÑ\‚#Ö&D]r8E­heTž9ѽp±YªyøŠoï¹QR5]ý  Ÿ(Îé4Âñ±Š¹ãõä!‘},âcÖù4‰ÐUÙå½2:SLOóD¬3¤Ë‚"»?Ëp`…þ‡‹ Ä¥¥•˜Å@ÚÈíxÂ_¶‰Îܾú0oÑ8õ%ûõK=Mdû¼£æ–I tPÐT¶…ÎY3‘”˜h$SÖ=gãÖ‘Ú(ȇ“Pû>LAhúÀÀ@~QuêÄÕ\Lÿ0ºƒq×^ÛùI1&Ä™2Ï$Âòû SsIãrŸwwçžJ5­׆±©_bZ}gœ°lÎlÅSô%¨@QJŸ“u²üËà„1¯ý6ôÛåª>|3â%“r«MÎᡵ‘jò“Œ—®{NѪ·’EV•fZ,Bó»T?à!Ü©>ËÄÔO–«@™U`‚ž|#¨Ýàš|£_sñb.¹vVåÑ2G…¾Šµüð)ØR\J4ÿâe?é3–Úßû¸6c°=30S^PÂvh–Ë£ù¾åîÇŒv”òENÚÄ-âNô¼o9ã-G™ÎDÃG¢~8¦àµ­y´m3ÄÌYN¤À?È$@½µt]$/Nô›»·M‡gv‚*¼müäUrþˆ XõNÏDÏSPdÿp1Ýï”Þk—aÞºÔîö%i¤,% ¯>6Gâ#'‘ñpPü]ÁÁ.åízT÷KûYmOn›À16|öŸA%Jÿ!×úÕó¥ìgÒÙ!áå˜u¹¿úOGE8’T‘=ÝÊbz@Òw±õ«nƒ rª\yš5«!DZ,E­<ƒ¸ld-ú€$’›«n4É—ûü)8›tçf¸gùÔ9ÏÝZâs/#ÏßÞ¢þ¾Ê$+)ºœyR‰§ÕS79,‘Z`ÌP5Éá9c’<5´U¹‡IÛº ¼G_$ÁÔœÌùG ywD¦ +_žñ_V‹¡;¨.9Èi…|¬’ºK‹²' D$—½“üE74UÞÊËR%.ÀP–ÂÀ0“¬4ÔpúZ9ÒÐd'Š:$MgËxë†B°‘”¤:F©): €0b´Yˆ’xq6Ny–µ6žO6QEÆ.ÇR.ªw§âD8ûå¹&ËP.¯"|ë”7œn¥þ™}+àVžsÀü¹>;ë ´€‰÷¼ö>ÃÂ(Zcb\:C½¤V8Üù IÞzÆE‡ -œSe¨Úû ¶Q,ü†å^ež#*OºÉëÐ8KÝÈA«ï^0Õ¼™¶ÖYPPUò×%™©Š†â1Q™Ö`‰4½®a»Ã––Røõù¾úzÿØp˰,¾úµ…}DØÂa6†CNV@Eúʯ±}3JTðMü 3k8Ç3Ùª²"6CKZt¬cC'IégÝ­MßXu+Ãðh©Ÿ4¸`×To­ÑáÔ\bêòMͽ¦†Nzõ°LG¾ð¹Ðtô²Ã!:rÉy6íºY=bwJ8ûÊ&Zñƒh¶,õÔ'e‰•¹{‹N[B³ƒB4šþÝ¢_Ï é7MY!ÆHñhWÿ– 9fCϬ^$¸¯X[…¸<Žo÷ª„ýËhÁö¡\µá(=hÁr—lƒàËÑÉŒ™ö$¤’f>2ñ7†°Zq¨KN3Õ7{€ƒª<}=ú_ȇòÂÐÏ"½Ž>qZ<)ÎMkç„ !b½‚7â+Ó® ¤H"ªåN-¶Þ¨â/ûI㌓­fPphÝñ£4KŽ£ú­&ßÈ•€'Hü»’D¹˃ÐZåý}~œ.^ÕšñpŸJ“æ§­•PÉj¾ñÓ ±+?4ðÌW;6*\=2&Èü‚¤´‚òu#ÿ Æ¥Ñü|ÄÛ££'GÀoê4ãÌY2¨L LIt°†a¸0#³Ê´@‡Ìà®—<;I;P°³X¹Ž—ÒxƒAP~ÑNÎчº·ý•\wœEiŽá?õ.mœ‡"Q_ÀÎ{¸WAuZÀp÷¤è„SEj(‹¼AOÉĀ猦¹<a:F2R~yPžßM¯þn ­@ìtñÂ[;Èé#¼1ͬC‰è•Ê…–þµž…%ºá_ ©ª-6 ;w>Ø[Ôp'ö€’Š"£Â!¡?˜D=åæ©¢Ü!A"·*Ž™k¾š:ï$=ЮócLå1`*´îÓø ‚ùµÄ°l ÃK÷3Ü[çxÞx¾‹ì µ…|îø8£ Š òölº,YšÊŠòÇÍg9˜j€ž¥õB,£˜{u1Š+™»8Ve'¦#ıSZKÉ[©ôa‘;ßslü\Yš¡§ ?'±ñøåÆ6• Ðã–E^ÊÞ®ªz$f,á(ýÝ]O¼¤‡ˆòJ¸ïÀBË1NB(ªÈÅ7>ùêÆ]BÚ";™ä6‹QkyI‚eœÄYx•×™íÊ®8L ¼veY+ÇÕ]-Ó×âDTž“: ØlôöU'à»ÿõù_P½ïágyþpŠa«_ßRú8J:ä‚é}›û;: ý¥DèòïY_’_™tÑ ÍxE0ã:N#|¿Ô±Dsv8½@4_›Øi£gÌ„/Ä•Ÿ¡+bÀìBÃæ6Ó²éÁ4'T§i¶qZé ‡s7E+-§Up6ÈqÛL·V'}DIÏú]wÔå¶(V7´*Cõ5ÅÄÀáo$m›ÊUm:÷9ÁF«üòÚáíŒÎV,ëÔV[lgáëäp€´:ð«ùe2g_Äk f-ÕaC]Ð4ã9*cÞûÐe>0**¼ >W„ ne”¤42QTöïÒ6ݦ¨Þ@†jÃA\Òà»BLeŠ—u.¸\nØ·~³ÒÝËœ.Puöbn]dSv‰áÙSf¶›h¦V9Q¤¸èn6˜Ü@‰”6ÈOŽK¢¢Ø¾œ§ÆQV€¦GÜà}B¦‘IßdÇþdw¨¥ëšQªjI@n»Íþæg[9’Q΀·W˜þR$‹¨¼;Íè°Õy9 ÖÙ70<¤×ƒ×Å’¾Ë—%ÊÉǶ.n µAÅš›.`î’@7Ò¸¥Øo¸S9õ gÐAxÀO{u‰›6?×¼ÒY²‰62IÖxzíˆ øX€©ë béi2<~ýJÎ=Ö‡ò¬8(o×ìVÙIê_V_FÂ~‚#[‘°SuÚ/ ªt´œÝë#ˆküs¸ŸWu\Ý(GšÅð¥úK7v»i×”$1œíÿ¿œèÓ) NL5XæXÚÙõ{‚!€dÿ i'–oÈ`àz¹G°`yA}ôÙÊ+µüŒvÜ´â…Q:—©h ¥I 9º ¦b¶êrhTÁAÔø `L³ DàOíü&6ý3NU6<Y¤_âÂ2þlHg½…Ƨ 9Ò_Òת3.A ì"…H*É×iÃ\F 蠳Х%ª¦°Nè~Pu’ÀBéÄHË`4àòÛ©~¡Àœ+á¡ÇQÇÆ,p›Ë _äu%|9£r22LÊZ£—Q|ð< =Õ…ó oþª¬­éìc -‹*,«Åsæ¥ÚëPì£^bmñ>tNŒ¤L› •u¥•ëjDÒ•JĆ•4¿‡Çbï9ŸŒœ œhLçªÀ©ÒãBuL„dlåÒZT³¹ffynjF»Ç,»ªŽF®.OÅKxXž³JåË™Cˆî%l¬S³¡ŠR=yƒlA.QÔ«O: ž·ZËô.˜U<'—  Ã ˜5bãÜÊÃÃòøæÚÛpi–ó”¼®„®xêÔûOäø™——tÃÂÝmîêP΋²ÀAq’Èg¤ôÅ“¸©,KšoìŽ7ÝÔœ2)Ü­:ú=XЦVƹ: æhãiÍ!FilZ—„Iá·°Œå1ŒŽ…ªGâ´À—˜ø@Ó(ÜÎÛ;¬R÷bŠÂEîA —ô6Å• <rä¡Â…±)º—‰Õpû‹ÍΩeëXF¦‹Âs§Ì½SsýÊŸ­Zp­ Q:\±œtöýþ8h^/¥uýd°9¤y¥‡i‘iÙὦÓÙöÚê;óuu;@ÇÞD Û¤×Ó"ÇM$Eqد°;¨e!£F´6F{tøTùrÚVô²4T:§d”%3… (€`~qõ®°Š g uY`xÒ“Ê®rMšþÝèQeæ0‘^ˆ]r~®ð?µ‹ä¢œ5&% g¶‹¤:alrú”8[WCO0›`]/‰´ ( >Æa üÔyÎj·)¢R¥Ü„è-˜‡ Y®iìöOìÆ g–]rj¸#Wvk–7÷'Ñ(s‰¯ºÒܲ'—v7ß눈úOH®PD½š2!…ÂSCÄGºA Î~€Rq°ª#ÄGj\1†äó&zÓ'ëi`’P³H‚!fNØf<_gRl>ÁAah®MœM¡Á£è½,Ùk‹yÉPZåp‰ÉÍðK¦z7iäe§ m÷ƒ¿œÑf¹&N‘³Ëñ:I¨Wß”~îºKå—RŸW’n¶÷ûO_~É N¤æÝd¥"êÜ õ¾ôˆ E24þm6{7kEN:y¾ŒbmH*C¦Ì•z7Ö›ªó‹båa0‘kî]æ=¡ƒ`®\À+úൎŒ±Ê(¦ÀñP¯òû ehßäRúû,ÿª]“´ÖB&ƲEɇÌÛþfzx/ +©"³­UYŽJú ç™Íëg5‘'_HØôݪžá~)Hmc0ÿ‰ >×ágÇ•èÚÄ­.»V3[2—ÑÎ9¶¨¡ë°nmZ¿z’¸C¾Ü»¨nQT)8, »qÉ{ýst?Ÿ{Cà¦ùA–ðƒ¤„›#uo¦ªÆ´Û”2&¿¢¸sG´È¥,Eùµ¼Ô.{„Ñ_ØqóFI1jè§È[¹(½"¹ìZÁ„Ø™TÝì^ ¬)áØ—wˆG–œWýM¡{œPH†r_u-]áNC  JqrŒe§S4i”ák³jª ÍwÞúŒ—ý›¾<g!Ÿ-Ú~7Ãåþþíïô¦°†ÓÉ9a œƉ”ÑþpËÓéUoÂõ™P4·ßÿ@™<Œ´ÿ\Ñm„Lel)ºd…¨(©î¹è4œÌ_¦Ïã]áKÕqßòYv>³ƒ3+êë-+Ž„šœƒÂRc3XQdJ¬U‹,†¥¦>€IåQiaEI‡à`WÕtIÖ'BCîÛuÐe÷”´c&Û£89uFˆ^ÎmçÈ*Ä@ßHQQ]RïîõAW¨LDèÁéùbù¢}AôÊ_&>Ò„›1¹ÏCç\ôîc iâ•ÕÑb5íÕfe!‚&½Æ<0U±¥nŽFu=4nz½Që 4ë WÔÐ%?‰‰EZyHî½ åÁìJ’¿ý‡¿3 óæ¢×J•w‡x½TÛ7ï“üéc±]^×ÜDÍžºšût©Ï—a¤ÐÜÃpÍC÷û}ìü¤ ‡å±¥¢[»_…è¬ÎÖ7þrÅÚ¥Y•QÝ>´VV6G÷bm¨µµWn1[Öøºê€s|®sô—×Ãä„l?Ï‘_à ÛTÜñ´=ñÜ”xñ¶Öv—œ„=ç­éÉÏPž”÷\õóA,Ió;£õb(f^Ŧ\Áií/æ9§†¶'wä¢öFëCú¢à7™eÀ¶ ¢ôHfìTcA×ÂÏàóÇ›7 þ x\3~D×Í4rðZå‡y§¬¦ œeÛ¬¶áÿ=žÍIByFÉ=hJº,Ò-ëÎíÕÓ+8jRíH£^xRÿu¢I&6IðD‚DÅ“ôRû$·Ã_*x ‰Øz-±"‰ÛŒß¬ðF°x:Òþ•±Óì’%vªà‘”57W¾š˜즔1?‡Íì­ ¡¸Ô"QkÂ-bó,vÈMä…Åæ•4!h1“N\{ã(K™ôUO»]r³ñ*YD™u©I·[Cʸ¨Uc¡!QP ±/XŒpT$ñ4W;çO›° ²#¾ÖqÕ‚i½ MÀÓZï™$~Ž“ ÖÛ¶”¦ÇXr™3ïkm$}{;܆ÆG"M$çPÌSúè-3î"^îSvã&ÈØ•b¬<$èŠu®h|à}ÙF=I¥Òü2í`´ÜÐפFÃâ÷Ï:"7³:pÒ)HרêªÉ3²*CM¬…I}E>ÕŒKªëÒö_è“„ Xm(Q’ùå`UÒlŽ)ò,=! Ûg%v‡£[¤CøË”®¬è:.N0ˆÖä„EvD™ú•)°çxa>Õ¦û˜\ƒ ËŠ*Œç¼ùÐÓà[­‚ñÓ]R…±ÖÙ¸ c'E¦½0繜$UUf ¡>§Œ‹¶ÃìXB`·(Že–š"ï}¤ËGfÓ®¦Á‰”­ô\ò½9;Æì,:Hýe%½Í•dî¹5®^½>ìá«™yÙvõ`E­”¸ìœ ­¦¾iu=)ôžß5/Å|ý;“¤lÁ$-›aš-0ö„¿¹!É’û˜aI ìs§.??ƒGäõqd(7YÛ#;¢TƈaQ)ó<‘û(/ ë{’‡Þìî0ÝW›°Ÿ’6ÀQk?É¢üô²N¸RiCmŠ.Øuýìv‡€¤ž0Š+#ÂIí%¤ ˆíµÒÇ7I+‰þU?±N‰ã>g ÃW(¨l§#•–³NolqΪK¦'ï^£©ûG+f;€PêÓ`>_ìC)TW‘…±%÷¾ß3ñkø²Ù‹QÐ<Ê$wæW¾*gáD üÃßÈ›+Cì ÿ+ xñ3 ¥å$cocº¬ÃÛÜ1µArݶŠ žedJÖ$”_hžÉ¢;K-ó5óuí>ÎЕ¸f"Û›>Îù95`³8†çR.ý(réÏ—øœ¾‹A ¢¹©óËãà*yë—¤|VÞÇM˜K/¶UÖX iŰ*ÔlÉéaÆÙÙCM<ÿeR:Ö'YâýEe ¼J[ŽÉYšÅÈ.Zgþ•—- ®8¡@­>Õª!ïíLº™W‹É8x ¦%ÔXze .N×ZºQÑËzÌ·@ðú‚êV³v9^wŸ¦~‰¶E‘8‚:V)›zâ²ÂÔèf„ÎGˆ¶êI–B(ר8‹ÄÖø¸7rIFÒ ƒŒÖ:4F¯1ÐsëY¤“çŽé6ç Ì2ˆÆJ]C—ŸE·q²‰Ç¯»xduù¡û–yi»$¦ .óhšÚ¥f>ˆ&ëb›WŸ¼5]º±Û kþ3z„’Þ„cH ü¸ŽÕñ(µÁW©r2cGèå(¨¡Ðü‚!!¥²š#O ®†.€” 3(“‹öÛh”¼®UÕ"}´h—” [ NWþŽkgY7³g8 ÍZB&ÕíÛÞ¬1T] ˜³õr³‘€,â‡ù”sBð p“UQûDŒŸ;[Ì$ü߭å\Îÿ0ÜHO-póþéߣo’R(†÷+`[ Nuß$Rœ@Œ‰É)Ñ™¾ (QvbçæU'<Ãf#»ö¦L×ô&å3Yy¶µBáÐã]'­¤FŸ„Tío?Cþ¢‡ÒË]ÒüÕä&­ñï{ÞÉ<Wnóá ceŸAI/ÔüÙ´p–£VwAGÍðZóH6I½:§K ,ƒ´%÷U¦ ǧ|ÀÖºbàϹ4GJùFþ)e3Zç~€¸Ìyy*¨š™{H((êðHû ›r—ÐÉìr;¦¡Ížš%‡Ä«—fv(‡ÒæÛZG˜†R4 ZrÄÓŽÎ&-£Á±ÜVç`4ph˜X]9­õXf¦\2ȃÕPLìÁ}׋Rî°©p…:¶aœufQB¡&‡C–`…]aΓ€ûOù Æ¿Úæ73Â[âqV¯aýN˜_Tê\ßµWPšE¼ÀÁ|`¥ððëefæh}ß^§q&M,¬‰™hŒý € 4á˜à¨zýæ-61úI)0º¬„ a–`ñ{˜Nc–Œ¢¦I)&¿&Åa¿>‘fA [ð<ïg3Â9Ï+ø¢7g¦Ú¸X{aVH.(‰È1ê—dÿH<µÖgdýµ×Mš¹ ¾×Õç¼7G ¡'%šÚºKÒ8­Z¿àÈYÙ5?Xo3ÜH„|DVu×çd¤ê,#rƒÕ|BÙͺ­Ë‰‡pÎYæPuŽ 1ù÷·¨çÊÃÙ¨³NZÌ£ƒ‰ûrÕ‘O«Vûì¤=‹ü|`=+›ÜeÇpAÊJVRåE^À´dôïAv.: ¾‡‰â ®ìšöÕ°Ìi<Å-‘M%Y5Á}Z9c‡A²×aiÝP?•ˆ§Ùç5I*{åD2ú]Aš©ÎSiQG“c25ðËç—‚”gÔeUO†ÎãsùÐêý_^ªivú X¯ï²í[ ï.Èoñºæ [®}LRmÑ:šdTîÖI8ksu ¼ò$q%£LtDî1Yõ!yšêúÝQæ¨èÏJð¶±7cÿL6Y3Š1$õÀʰ³ôPœ£hQB!£ÞO!¶q[C¶³EÌO×øFWzpãAqäßÐ1Æå#Ç¢÷s8, <²3{R¢Q´Ï÷“Vÿ0ã¦I¬Ó°‚Å·—µ]2¹7HÙ̸5ØÎåÝ4Mk¿`"šH(þ‡ŠRn3œf/ïyä òwš¤ïÖÎqM‡£«‘s+‡Eˈç5›¯¯=>þ…­§Ý„ß¹ /÷Á- g=VDk@³Ó‰„XßC®@E§ì1è-+ÎzU¹ý»ëdŸ†‡™ÂŽ*OØ)suÓM+„É9·%™AQUTP:ñ 3¬õ’ôÕÝê'! Mµlõ¹rNȵCϼA‹i—õ–qTäÕV '"å[ ÈöyyœÑ˜µ½’Pƶ¿£ëèß_ºúr' …y, >çûÛVãlÆ?7OSfR Ð|oQ…&4ä¼ÂPw€äÇî6Ÿˆj6û %szd”l}qŒ$—£Ê‡Gi/eè’¼«’Æ•(hj &ÜlwNÇÁHš/ºÊwO.•“²Ç+p¹½C©üȪÙRÑ wÄö¬¼ž(§°Ì/LK»»ÔÿlŸÑí¯[G/H½]»,Þ8‚˜ÇðM¬¾:ÛŽP%K¥ÓÍGÓ‹\´Ÿž®EÎS†wõ.qŒÃ" $o8 :s^x#Ât&·œÞËëÁ>vñ Gvð^T‹úǘݙý¿Í3ÞÊßaêôÒ3 ®=ªÏò¼ ÐÓ4ÉÝC_òñm&‰|á? îRÁÇð4|àjí4–×ОCâ6†ôˆ=¤ÿ_T!+,añ`É¡ÔÖaß;æ3R»Å Ígæ?e–çI}*OãÕ¤ý*›øüjlg ¹QtœT ‡þËP¯“ç<;5Çþz¿•Aø×ÉÇQ8ºÊ© ÀŠÔãðÑs™y5ìßÄûðhxÆI‹½æŒ29iÚßéí $|¡7íôÆÚM7å”gV0Ë(5‘wµÈ†Š’ÚÕZ1®.Ï«wAæËúEnªcQLØÑÍþs®ˆ¦2Ô -ÚfðO“²µ"ô„§D–j¢ÔC³Æø ºh<¤0Õ58aI‰4¶ Qü›Çø‚®°óűd0iãêÄ)„M“™* Ð.aÜ…Ósï©¶—µ‹¦0oÖÉRD03Iðã\°. x&\ÎTêªÚ4P•Ëž†CUL‹agÛó”䬟UªXç"?ERê*ë Õ“0ý›P˜ çêƒJΤBñ.@!&NñÆS/E¸ëö¤š™Ô´\cÓK„Ò’—Piã–†/çhEVQé–‘yCˆêSþ 2¼|X(ÄP"*Ë‘¨H09ùDN (»H¹Gyõ§¼§0zÙøŸ}‚+£QñÙl æîöPåêÃ¶ß¹ì’½Š‹Râ¡<¯mNîììS®„ü§±8ÊëÁϦ‘Ln¤&zZ¯L]NÌ·ùŠKžó;#ÏœE§˜©.× žç´´¹T]ŸO8¶ Xx*Kÿ@†À2‡£ÎH€ôRqcþÅí ì%ùýo.ÄØñ$Uò$L™Ÿä‹>_'ut·2I°f!«œ1Öüs‰°œ –·2-êúå°:¤†á‡l&ì}B¥üVkœÿIª²iÖæ¼öz¬ùTV<@—¬S›¤DÍm-“wÃÛEOIÐɨKBãfÊÚ„YEÓâUQãS©H2¨ÉjvšQM…úÂ&½DÛ½F3­[Leä*â•SÅij¿æöe6Šáb☉ſQ²îäÿée„kØþYTìèøÉõóÍØ„[TOFr:É2¸Wð0¹<¿ÿÐmÆ ±µ7)MÔŒ©I§ÂÑ°È r¥¿iKD –¹ô>ý.ìæ|ÀƒïÁÀÕ ©W!U¹‰Ïºƒ×’b—H»KRRÀ ¨úÜœžLY roXíTg )Ñű$…3|åj‘}dçŒcÖ¢^ÂG]nr~ IŽQö»å}/ pú¹gSD…ŽÐ(Ö]h’æÓì^+Pyfli¡–Ø›:Úyþmó i›k'¤ ypÑ ÃÆÿ>÷f+¾¬43΃VT ð’f$²étŽÙLé] v©Ø¶×N¤höÏŽ Ö\´Hªâàžº* r‘ŽÞÀ[}…¡™½—¿7Ìí2°J–«¢û/ÜE§bšðN€¬) AÈm„¨C}¾ ˜¡ý1­BcYŠHD{rœ—$"á¯ÿqáL/ƒÁ4²¿4•ª !2…Ÿb|Ìc[ô7vOá>Ã>jE˜Zíd`&ÊBy:»<‹ÒESÙùOá¥R ›–ï ÎBöhÍ–Çýc«&‹ö·¨*Á’91m¶?œq‘ z0åz#Ïbž²¹3Ÿg¬Ë° Í‘Èë§,-ƒs"£ó"óüðÒLs(B¿žœç¢7Ép~³Aqó°¥¥ËÇË4ˆ°7Ó¸¬)ÆJhl¬±xË%2/QÂsÆvÉk—¿Qò]-Ýáé…d;bšÐ¬?ØõÌ(¹Çâ`ô¦3Þ±²³žÜÙ¿¤% t Å¥ù’1º€ÆU‘Œ¾ ÊÊšÍD‹Z:¶ÊåÀ]‚UåŲ_/”¢øA;v4”õš1pëÄô&-K!ì+ÞI‚Z§w†·˜ú»‹rm¡„JÎÊ ­,qar[Jõ–’FÙOPW°jp%Ù1VdZŸyK.g=Ö{Ïӹበ¦Ó¤áCÑ{À:Î}0Ž+èóqlþ€(¿òÅÛ ã<›qä4óÜ¡%SJ÷rí¥£cçÕƒÿ¦²ì;°ªrüŽ‘cUZ†[í¯Û€®ñôyÒã7ÌÒ9W…‚ŒŸÄѓ³žÅHò¬òoµ:– WlB(e"ŠNØ^üŸ7eÈ_ ¼ÂµÆ¦ö¨ fϦ¶U¾KÕ(š—ÑÙ· 5 ‚©xU÷”¦§"áKýKÃŒÁ|ȽWÍ‚Û4gÂ[€N=ó:äŠPJ­ÜêZÿÚ$ÌqgѨâ3׌œ@†¨’ÍŠ]ö­.á? pQŸ¾¨¶£¸ÀÃê;?6&77åd„Ÿ2Èâˆÿé6ŽƒsÑY`|uƒ•U7€çãÀÈNiG^b0+ê™ÈÈ+À~y9Ì~+PZfn û#n-›.Ëe–ºži§þžPA‰8"«Ñç0Ò—aŠÝ]'xÁ¹*ýÂ<÷…®sxŽ|î“óÍ'´Kÿè¾àcÜàõ—7,2&Í8îKÿl½T©Aâòð9…¤Ï}í«‹À«×Û$î“ÇèK…œO­¸Ïƒ1*o®ÓÁ}—]„b7€}±¡~‹393€–:¤¦SYÄD~Q!xâÛÂ>µ7¨äS•–Uazåi›Æõ¬¦.o?µ{ p®®¡-}ø‘ÀrzR‘Âó¬~›pè¯K»/·õJ€9Ù%ð›í)^¦¡JhYn ’+ú&ûÎÅ{1¸å† ´åV•1°3¶{ÈNžóFò{’ݦÒ/àûx˜8¤N"vlÞä“AIñzy Àm§‘âk£€ÍãgOEÆŽs%¬¦ ÊÃ&ÜQ âÒxmðiõÔš'%ûðƒ!í…ì:øŸËÜ÷¯±tä?\d`9a­BtìR™ñŒ®=Oh…h>^þQ¨ÔUU–ïí–Ö!V[˜`uS$×'òtºMõaä·|’x+EGÂ% !—÷‘Ð:RµçË•)ÈCð'ÃeWI qQƒe-ÖÃfë¤è¼…‰s¯·®p··!ç2\ã,LM„ûD2ºs-i¡-s$ê™w§i™Û8ÕJU¥ÜbõëQᙘE¨kVA>]’£Üïºû\๒1†±v H¥[Û —LªÒ .ˆÁ½î µ^e¬¿f¯Èø™¡ ¸oa_(­m“Ò¹ Ò"o“I)ÕDõ÷!4%k$GS'Oã¶ÿ€§©:+Û™W£±\ ÍD4I ˆ!â¡ÇVói²7¨Ý¤¢¢ÌÓb|Œ¥£ö=@‚ÏÈ‹}4QèsY†áH2à (ö¶2qv/yPš¦ªÆ%ÐË„f'~áûÞ@4S,O,Ò/*±0pdI H­×i4“y¸6´°i eð7}¥•tþ¢¥¦Oè=Lt?}9ÀIÐa> šý«¶£[P³Ñ/åÐänª{nüÊ6Ú[Ô t„ïªâå †(qm—VñëÙ³S:—­Œ;˜ÙÓù3„tZˆÈ¡2§r¤(E’bö5àµÞEìr?Ë»<Á£#}¦ò{š…}T•h&ŠQYx³>¹LÖ»¶Ûô,TQv<TX,Ü¥A,½±ûõÿè8-¢æŒ« ؆òµÄhóœÛ ŸGU±4ž >v~ýÌ›ÊìÆcu"?øÎ ÚOÞÊ®•Š•U¬`bð°.y ð»"”ÔZïÊîh\ðT0Lf Šœ“Ùž*. _РÖõK`mq“'pÐæ/3AAEncIf* ¸Yæyæ úOˆk*"“$@é$Ya—¬!cÓ$W’9â5)‚ÅïiÓ$ˆsså{nIE£¦p Á‡Y„ŸS:pZmšTšW}°OS ð‡ipÜ¢`B­Ì™*ªØgƒP»ÐÕL¤«L\E’– Þ(fœHûl¬*vÔO¹pX³áKGW·šäéø¸ÈO…¤‰Vz ¦] ›¾3ÅD%%R¦¯âü©¡#âøoTQ}dK©›…QÁÍ g@WD<+,ÊæÃ§N,yÍþ|~¾æE<·Ë,êíøb”ÐP—‘fDfš–äFŠªÇ2‡£‘ñÇy>—IÉ‹›Ú‚Ù´(²ü˜ÝÕáº}«Â"à/ÐÈ‚çˆóÞ²•·JÓ­¦å|¥ÕA–9V± ÙùZT ؆{ r£hµ5¨w¦q®g+ÝÈèdh«¶ºÖí1Tx.ÏAåÍ ë4NŠñþoŒÏGÝc¿{]· o4+æU½õWS“Äe[ùu ÄEÚäç8L.ë¦N™"àÊ"<– ó©6’ %Ï¡`Ê•jšÚ»Èf‘ù16¬>|œÙLª•ý!9–žbìÆÿ§tEþé`PQÑþyd&q–ÌÐȱ“ñìDИI]x"s\xßeðÍS•ôXßÔwÙ@ª%›ªÙlJ,CÁ)äç‚-ˆ£¬Êk¯ØJv<>1>gò•êÜ1´2öqò¤4® ÜTiq«;§Ž¸tC$FÇúàžÉÈ?JÐhž¯Ü(\¦(6æ‘!—Ý(cO»—>R‹^“#üXÖòðÜœJ ö'½eúò™ Q. PûrÒáÃ# Ž1»äþ{xeV¼>;ÀÀªö]Í©OgÀ6 ÎäβgÞI€qò?1ÇôøR¤8ÿ*‰ «wJ ª宿c*ØÑ<7›‹¦®›6¶Æ¹5“‚/ oT¼¥×ÖW¶/¶Htq&Ù&›R]aéªW”X,È(Ï\„ÑgZUÈMfsë#+!:›×«Y–¡P…ªF^§{~©†Oc‚_ŒX'ñDL £Ò­ÄW§ëÍ'âUšñ€Žj'¢K©0†óTš¿léCcŒ+“)KÏÕÓä¡Åæ,/+s-©Ò½!IynÀy¬iÖ•4Ä%Ίz{/½‘kÝóà\…¡Ö`HUUrHm6ÑzÀu©ÑIü¾lfê=ÄAØý2qÚ‘ýM&•¾´ðõÝÛEóCªû[å‚ïp0ú®(}3¯÷š@ܯ¿:³ˆ¢j·”Ã]¼Ë[Gù™ó?:xGº¿ð1B·ù7¥ÚSƒQBhøéÍýT©øHR×jƒR€.nz0ÙbvyTåOÁ–©—Y»ÆÞhÍ} ¿.r¾4{úð™Ñìôk§`@ktM¨„ÒqY•Á¦i0tÌ7\A˜$:@&¾Œ¡ÏÁã/²Áæí|¥çFÕ-G šy¾PÊwZŒñà21&U@ó]å±?>¾Ôî•Ý^áë_<—ú+KE‹^Êœ÷ÝÈ»5[.`ì:¸;ÖÀ†…•gïìù3füÒÛÁ8ÜvåK™––P]·§#å—‡H,«½ÔÉðʱš`aʼ#MÁŒ)ˆH©y®eSÁÙ-yv_ßS:åÉnp<2`JK¶ÏWšIñ*b’p-Ä×숧Yó5oÖµâÀ:÷¢"µ o©vS’Å-r÷jÓB•<ý;·‹-”~^˜Y?eþ§Ì_Ú¨Žö…M ‰äç éwÇxòÊ …yk:—n±^8Ï’ê*²ï®' eo,+ù˜ANÞœ ÃLõNÞ¼À¥µBǧO 0ìÞrØLµ.-Ò»hrm\‚%Ú`™aL¼ïÌCÇ¡;RK”’dž ?×»¤—¢ÒÚf%.™yŠuh{‘FÒmUB¶«G?NÍ‹ŒÐ.q)¬ú è$<Ö£´S¢ çý3hPì¹ã¨aĨJà 6œbÉùQ²yøtx~²ÒÉj|¾tUI%R3¥Bˆ˜Ý&n 5ÉÜáäH£ç>.(´`(ab’Ý#,A¸â¢÷ÒçÈ¥+0™ïè$÷0¯ÅÅÅVCškª‹ªwÌÉn/ÀFP›{‡ÆeDÐy.ÔÆZ)É™žý`ÂÉ‚„i¿j¹ÜV£¸ÜAƒˆŽ<$íÓÝ/M#›—x»§w&5²;Ý´¸@'+WØ“Ý=8½dFŸÀ#Ê?ApT‰É LÛØðÒ"=‘ÿ xdÛðgœ*ƒtšïÌöDAMdDh˜Þg¨ÜÚ˜AxŸC‘Ÿ¬A…¹r{Ø{xár ˆ¥/JÊ'CÅŒ§˜uhÔÕeð¡0²ÁØDýd3UÑ ñwé2¥æ›«›bɆë&ßqœTšg wP Áó .4SÀ_»×˜]ÃyÈΆY"ºŒÁþ®˜A¦/ïÇ\‚þµû!Šð¤;éÇŒýfï `‘Bø.Ü V")ÎËóÍŒ“ à2Gé?¸\¥Ñ=·m®¹‹E“f^A3.ñèív†].ÓÙȉQ,¿‹G—Ö‰~¾<¼aé»î÷ž há¬Ïgƒ Nê?÷r´È1tjÀˆ-ÅÏÕ^ørˆaÈ=e†h¦§ ̼Ňå9Þd`IŽ™^(ÆR0m!&9QæuX 3¿y¦r&ÚQeQ8Md÷æúäÔ2ÎñHm ~¼ý¥ÌI">TçƒÅK Éöš˜‡ô7×à—¾6… Âìç 9¥ rUÙõg\ •WuÏ;‹g\xmêŸrºZªä=_ˆ.~Ï:ë|0ÄalßöÚWèV粃$ Ù4¬Øþý°¤¼®´Ã…Z? XK}RÄvÃ{¼|†7 '6%§Sž]ꂺ{Ô¤f|{ Œ³7Í1ŽælIž"ùd©¼ä"$< RTz›Þ±! z¿ë2zÁ*iUœ‚ÓQvêòOÜkÈÀ‰Ë,=Ú|ÑeësY:åÈú’[Z|¤Œ±2ÓÇÂcB•NA Xfë·V…N›÷^¹{¢·tRã,3jª³Vß,³‡Ëí'¹él=L–^#í1̨»ÄÝ®ÔÿÌ[µ‡jö‚ä]r„ö„”íFŠÒ=J…^š®g<æG¯˜QC§Bn/7gž5[ êPd­þ>l¸ÌJO÷Àx;@ÇoÓÇUÓâ^–»K˜Ï%Î^ú^Üg ÞŽª€ñ³ëN²ˆmòfšg·úhc÷“*¼w¤k„Æî&Ï\âk„åFa«õåO½¬GŠÃ²™×é³¹ª‡‘¨ Í\n¤,AÎàhvÚ¤>‚_ç‰Ç‡¬éÁïó¼ÌÍ“\íàË28M†&'Ü`Ú(x;žéò=s Fø<ÆàÐ †í| ì>'OؽKF?÷bÌhP ¶tÌ7\™¾Ò¾w¶ïRuœÜÄI¨é OQÑ}V u“¹”¿LÐ-Ix~I²Šâç¼ 0Ú†R3:øÜ¾Q@Õ`5}.gˆ9É?G‚9³ŒßlLžëÈ–ˆpÿèÆ í›ýèùý§®¦`@‘²:ÇäVó´p¢Y¥ñO~%mÚŠÙàB•ÂÄ¡4¹#Ì]OÇPèWF首%$­_"Ì5{éjgÃ¥û¿ Je1òø‡)~ãÂÒ::Ų/‘ß+òOµqÄ7õ™ß›]uÊþøpÙŸŸg½h»ñ‘Ô…šô‡¥TÛæÝëj¢3óÑ2poZ<'=™·pB`Ù«Ó)óƒ=EU’/pX6ÆÔ¢Ð^~óû“-½ò·Dᥲ¼Ö!—õ”iƒmlœV]JUˆJ(<,ØoF­û)q¨3ÙóÓF•N•Ot¸Ø‹öÄ+ï2Œ‰{3£M¼ŸŒ+ih<Ùì|ï #.2:OÉ*{/· ­Û:$á:Ê—íÓÁ9ÿ^Ø£HZîaµ"NÈËI¨™^B…ôpÕÚ$Öù%D‘¬E™ÔÏp–ÅN2í®Œ?åM}ª›æÊ„î"$‹ïź-/È  Fá­N•V·iÛhKKnD×§dù–?×#8Ý19_ʹÁñFªûJ©­JF0EahT/¼ˆÒ°3¹/õŠŽç˜ÐÒÈ Ýt³N7&h5üvi ”ì !¹ø¾v94¾¯Éåàž@ÖG)lyéë…BÄÔ=!‰ ’JYj÷ZKÿQlªf°ƒgßnü‰A=se®€¹Ö“ L]RK[?Pü'Í"T²f ÇädíþêÔþý K(ÇU&¨±e6eáÍ<Á£Äs&Õ´ûÀÌK++庱òÊÆ v–,²™Â¡Áæ„©syX%vhøøä 0¤òÈ¢dÑ›S}–E„‚üÑx2x§¸¢—h&gŠ™[ƒÆu»šéù·¥M sŽ*ø^v\ à¶f¢¢[–ÀYà-{º´Ø`aÿÿ`)%»ã”¹ñ¹-W:Â"ªÎ‰Fnÿ3ÆÉ?pO¡Ã3ó ü@mI2ÌŒoðƒZß\–ì*£ß#'2öƒgíSsc‚^–•˜ç cÇöð„DyõÀ¡ó„3JJŸØØ‘J–ïíZAE)ñ©š‹8Ú&¸sZÀÐt„ˆÜ´T‹r‰Êçnž- ÌÓ¦;ç­h‰ÌûÁçâ ƒ¬a:e笔³ËQæó7óy=E&õ–'ìÎRïok³×ÌŽ”hü¦¤=;kÁ*y„:̓;†"úbÞOŠáî˵ºUUÙx_À¤pñP –¡ˆá±ÃȋξڄôÄìnÏ2[òÒ#ÑåéW¹1w&xIY'[B4#µ°ñ(^|KUN<ÅÉfOvÓù£ùã\,#?ÔgëE˜º\ë#È”!b#’LÏ]iïò3~ªb Hï³vòé9T”lÐlôW`¬+Ï£8spVM©»gáé]PÁNQFIêÇ2šIjAòPX3M’ŒÍ’Øüì¬ÂÝ\îdt30ȧŸƒIö3ON|©â˜D¬Ñ²PŽÑaÀ!Í#ŽÁb3Чhà [—‚ |ò¨<Õ¸¤ÈSûPÅ–z¾@R³sóÌà%`8X _DN§Ãó+º6¯3¨vÊlLUgáõ~°SÇ\*¨É|DÚlÉ“ä壮_×¼ŽåÕ¿ñs^Ǫdf/ÓN+v vÕêC§Ä¸#ø–Dˆ„œ7ª¬P­p;§Ö0A§adäk Ùc­}ˆÇ8‹ý+™NQ¢$Vz™×:¡ÂÉ JVyæÈNÓȳ8F?ªœ.BÇëÆVíLüÐ ™ £ÒºàXtÔ 8Æ'»ñÙ,Fs™:†wÇ6©ÿ,Tý`½Ùÿ¤~lpµÌ]‚Ôou’g†½‰ 7eŠÉŒPÐÆaÑ•qêLQU©NvíæÀfòûŠôî3y,êUU·,Fa'iQl¸'«Ã3ϵü¸çýþ“ÞB¸õDTe·ˆµOWGUãdƒ‚$krÜjÇÖó\ž; ¦)ùnd¥±82¡_mA0›ÂnÔ³a˶yƒÉLèo;2±­*qÀ~> Iyô ^7«"dGt8GG¹yU´©óiŒR~Lâ׌1,÷-a*4¥"0}lF_yæÄØj$óèOEÐÆÿÊ.Ê´c&8~=ÆÁî}¯šE‡Íûl‡ŸQø6¿w÷»iã?Ÿm…ÙªÚÝ­‰Rv­›i²=t{“5d“]»K1ËJIÅv}‘hëZ(ög%kü +®òÃT˜%oåMvĺ1ä”ý~x?¿Yº4 ?ìêVŧðo­GüAhYLcH®x~ú)€'æ&òžÄ|<‡ù"i’³}>xõ.¯xqçhK-Y/ƒ3 å ç烴ÇRklžòÄã»bK¡Í P; ùbïÛ¿£ÈŒ³ÐÚ` ÙJ]Ñ•êÄ Šÿßñàâä.óZýO†®à(5Õ©ÆGØ0Ø"‡F†Ï*¿²#œ\‡×ÜÙ1:çÌmC5ìœOü²#¾óócœË«;õ—•ã™y­˜>»%Q«eÛ1œE ¯Õ|ÛÓð½.ˆàô$ÇJpªö¹Õúæ[ò”#I¶1 ÍœÑå¸+hïYK2Ò™# äã@€.èsQ¸—Qå*†ùoX°¹gÅPvú¹ÿˆi°ëêê°4lÜËÖKûÕÉPx­r³¸å™) ÷Ó“ÍqKÆ„9DåA‰ï¨¦Ã“³¶:8KdG`Ù± ÷¯S/IàŽc~æž½¥Uäµ–Šnì²¼{¢er+(jd°†ˆ|p1Tã* 9“º2Mwðü‡€hÕe×Ð)'¿^:n¾‘.c‡äTôRõ °¥ýz*ÖÆ‘&θ×MYbcˆ¿Õy|…œ-µP&K2æfv¸c´âŒÑ\Oç7¢YQÚŒ÷ 9´!U(WRÄØOuâÇŠÄσ¢c7¤ËpM"Kœ0™MtqAµX|W^p q¸ko’ {'L'„%άÇz_ ï@v‘ž‚ŸÏ}@>¿>5<Ñ5¼}Ÿ{]Ó,2ÛÕ"ÀÂTÏ­¡§lCÝp{TS~7ØœR(ÝtÊ{oÁ=7¨vfåc¯"®IÁo{Ì €Ô¹—ÖÙmUŒïï_ (îLvL`¸AŠƒ -ì #³g‹¦±ÍSG(òZwQ’IÜ4_“œQvÂ8âÓ4ÌiþX‡ZJÔŸ"‹þÞ*t·„K¢¼€Ë c’UdyEÍÆäe·peÕt×–~ñ#ë?;ó»¦5]• VRš|czªzÈmX ;d³¥HÙýøÎŒ²ô«+ݹÀ qü'©› TÓª= ÜÞ²È2iàŠ" fTç‹F¦°D7¼}ûc¢ASEâdw_IužÎ™CÜZz­Gl(:¢¬C݃ĕé¾ó%ë^k+R`\gªÔ›”é§°fµ8Ø6í,8LüýççRÝÍÀ‡&‹àïÞÞ5o=M9v£ÄDì8Ó½>ŠÕ´ðH/ {üÙÙW3¤t>Z”+Í}Æëõj™MÉ.¼•+»H)vã ÈíBà›ºe³³O…&!”m 6y8«´<—ЋF³õκì/Òœs#x)Ò#i ŽD[+ˆU†}óYHUCbÿ £ÓAÛ¹<ç…¶E„ó«öÉØ•4"3Ít rÄø5ÆZžÌÁùÖ|nò­Meš6<ÿ²î»h1órn~pU]R:¦&˜ân"›i‚[»äœê&¹æ*¾¤YxÅ¥vUhîñfpR ;Špxª´Ûœo¸Sµ¦ *™6k5×\…Üìê6÷=ø+ª Øè’”–QysÐû3È£ Æfš!ÌíAòþQ79Ø<Ô ¸¼Ï¦ßšút£†RcI/£Èñó0eé“`FBO&×Y$©ÍÓ+ÅcŸH¼Ÿ½ijô²Ò Ôr±³Ô$õ{/b_JN¹-ïåó»YDß²RBBØ;‰´0’åtr O“nkL×%øˆZï0Ñ`Iµ%wg'&±k6–ølôæMM6™³¹Ât$|Õapy!ó,W45¦æ^ÅÃñ:µ@<ÔY”VT:æµ^þý°Ó$ÏÒIî,_ÏS ×½=nNL¥ã…žš*L² g«@ðZ^„ŽóuQèìÞDL•xÌ—ìnz???ÓÞ’æÑ°FÚ·VF y>×ã8øª§4ÉRl–t™Qrú±{·œOžëfX™•Hõõ–GBÍFcàÿ˜©g5h¶$¯c—Œ@Ÿ"[Ô3EîV˜Ý¤ yäø<õäàßd?û£þºõ=Ê'ok)R Œ‡†DS—"~:š(õou~_M~ &¯ÁLª…õ§†slvÙåùÔ¤=Næ.ƒÝñḐ“5žž@Euœž›—0«ÒÒ2oo¼Í­cwWGcÁ‰?yN`WèàÉb P6À¨>MR¬ÅÔöCå^¤¿‡Ö[Œ 8½&Hb6Ézf[Ò2t®&ASÿ û+Ë sÉgKp¶/,yuŒ ½t&·íµÄ%úÿ‘÷ok’âH›0z^W1ç“ÔS™]]ÍÝãJg<Üãê—Lb#À´<²æ_ÏÌוáÉ$$“m_Û[ çÞï<qã‡Áâ}èô4z^!meŒ›P$[ËÅ<õÖÅÈÀ…¤\ÄîšAoÊ2†¬îî)þkÇ;œ”;Ÿ‰ã‰ØzNøžݪ“\b(î—Ûî[z¸Z¯/¬i]øÐIb­,ÖâøB8 ö,’Ö®ÝkƒÍðŠ_AÕZ“¥FûÕèr„É­­í[ÖFŒL~-ÏÅÌWÏÍ+ðÈ5Ë5C~óþnuý–%·øìô­ÜU ÀŠÔ3#¦N!ë~å\ö¸å¼u}Í1Æz&xêý|c¡ a&Šºk_&Õ/½`(&qtTbSmÈKeYÞ´”d‚Šò5¤ÒýÒlaÀ —¿®ÏXÕ*ôÊÁÈÓ¡DHè mkX@@†©hVu%N¿¯€‚ü'éqùg² §°Ñm¨Ú®XÊN–Sa]¾t<¿ÛM–ó9è ô Lj^<Ò&ÿ9zΠCÕqãVòÔÜM¿‡耕_hÙŽ}ÀlîÓ±Wd†jìcׂ–e¨°¯Yã°dÏ V$…`Q@ÑÚŠÿ‹þúç{¤*é(9åioÐC¥µà¸ ¿ìŽñœýÁ¯2»â4 ‡ÅÄ¥õ¼Žá¶=žGëžv‡ Éócë& :Ür¬[ˆuÖEÜ!±Nóï,æ½àl¦TÓõ:GäÁjO 0Z]í¡‘”GYÊÍŸeÕÐÖæúbY7 ZÆ> U²}BPž·`ª/ „šÞx4ˆ;h#XV4Â;ºE|õZvT?w‡³Î§ŽÒ0ÀɘGÅ0! 0$CÌèó–÷9H»ì%õA‘ˆ‚HúòX"Wüßÿëª#Œe”bå]ƒpU`è«èžN˜œ_[6—N£›`Í< ±ò¯úT/œ´õ7ýzæÄiKaæ`ð4F ,.†äa=ÙyϤÅ&u\]Ê«%õ]‚5¤íàï–*ëBì6?Ì/šjQ,2üÐeÚ s—Öm®uu©çí»©j5Uî*Œ±hÏïHûéoñÔðv]ÝâmÜýVzŽÒ:© ü#ÍewlEM]U4íìõÞTó¦êKÚooLÉd&E“Ñ jèÆ——{ùTÏ]°c³çÉ7g„»_!¹-9}ÂR%Õû»/—ïPÍu§«·’eLûã;oøKQb±ZMìȯ&¼3"|›CIŽ8óAîèA]˰Ðwß é+eéµObs¹ì]B ^ÖL% ˜§©Œ¯3Ú2&Æ­ˆ7”*¬OìƒÉ#â)N`•ãð69 ×Só2Ìb1g^‹{–H'z©Bƒ1<RÅÉL‹‡RN¶½Xl@Áxbú¸¨Î¼šôªDÔB°®ƒœm›È$5šµxËêH5´ñ©êX›" R¥Úy|Ô“x)¶…$Œ Ý8ªRê‘û4!FH»;GBp:§Z¼#ßλÂßX(¶^F}ª7bÁ·HiB½¼­›Ñ@l‘¼V—®®¿_–yZ-EÓ1RŠ5p=µRŽY†J-Ûñ'¿p¤ ËU©à ³÷¼Ç÷ÇKaç!w*«£mû»ú¤â“Ü¥à>¨k¥‡ì:u1yÕÛ”dt“²ßèSSv¶kñnݾ$^¥ÜKv L—D”ªˆñ”3K}/°ëË“xrÕÁù‡Á¸@VÅ|¿šxÀZm9ç_bW|ÿ󇢚¸¼„å—S<1¼¾Ï V±ÃŽ‚DãÜþ¿9±ìým7‰MĆs \@@«þ† J¿zrKÕŸø_[TñÆb&g’k?ñ‡H\W|nH4êLõº¬€êv]`­+OÝI[ŒX|{NlSÌÂ:¥•awV‡áwÎíöVl¯ðÂÝûò¿Áûò¿'ïËÿþ›÷¥N¥Ï>\¶ßn4ß5¬d#ü7h#44åŸÝñê.þÕ‘âfTW‘ôë®sj£D%MI+½PYþ½”µ9VKö :^ÐÜe™‡7£„ˆENå*-#neçeÚ¿À¡ï›É PÃWVOk¡*7–uôNʴ´à¬ñ½ÙÌ)R0O°Æ!1 ýiÞKŸä]ñ9œ_}.? }UäÖE=Ò„†•ÝbÍmw›Ž]9ã¯n™:!‹7œûø9êP O´˜÷ ò‰ þè{JÑ$vRqúÞÓj]Œ K†©NßQüJn)S Ÿ?"±YI#ªŸV5{~>ø€Žî‘E(ã¹§á^Ž·õ+&Yœ¦Y-çêÇ.-Žº°¬GlæFç‘ «®É ™ægع سó]ç’ôÈú˜b6<¯W¯§™cßX 'no¼ÙC©êÔ)àI CÑñpŸåªËØ=mã×>¢u LÊÓF:x~—ÛþYÑ‹˜z ’¬ÛiË­ñá†M­Ïå—k®C‡}¬´ï»&G^iÒÒo^s­ݲË2ê¬Üâ×åžT8“ÔÃp[†‰Ç^eVÎÓ¢¬$ú -ù8=Ãß¹——Æ#lgOWÚ¯ÿ½ .Vâ: Y—EêÏñË}hüà£A!0¦¤mîY-À¦§{]ôÊ;ò…,£Y@»€ê•ã‚•îU»°Br½úW¬…y ‡^ËZ¨·Tu¿•ܘ)-†É/$$ÝfAdžþŠÝSÉüÈ”x}N×·Ê»[ºIÖ}\iшkQcà 4ÄãS«uàŒôSZ2t—éôe¤bü`ú…%D¡òàt³Ï_ü@oð;S×Rz ¨â껊òDë>iç>¸š¢ÏžŸºzo¼9þ½©·@yWWìà§½¾ˆ„¿÷ôP¦0fÕá)£‘ô—g~á+¦© ¬‚p¬#=êäÚW9i~c¦ï&˜âÑ œÐ®oå™_`¦ÞnB#88ßJß3YßÜ‚µi²;Üa6Ùè”7uqô46]”´ ¶K>ÙáýÔt *Û®Ïû£;ªÕÏÑÓu C(Óqäõ»~|Mãà§ø¼F©Îz Zì袉>»­Ïްc‡ûÙ\i%[Gä¢õL.-»RñoኌީMâÛÙ%*Tyù’LÒ÷lÄv˜*¥l“?vÎÅr{îìñª÷˜¶µøõðŠ›î¼¯XtÛå¸s:Å6ºô+f‚òú¯¸Õ¯Û¶çåøB… ™]Ò69¡ËâܳÅÛÓIüì“(úVY‡áµ¤ñ¯5©!Î’à’À&¹¶’`4,ÑxxÈCómâf6°H@Rû:¿{ØÒ‹ïxùªÞô­OZ’°twW'ÜxCGKUìX_ÝI=%4Jžgõ•ë’w_,UÃàÞôÅJ¨¸t ¶»¯ö¬)ê»!©yu`‚'‰†ª/£0¸'}7|ЂïîÉbL îÊlG îêó¤­`¶÷d·îè5ÉzaÐkhKª®ÞÝ›ÅÞÜ—ÍÔÜ™ÙÊÚÕE_ú iùn¦e3U÷uŠž%»Ê‰97µhÌ‹“6mÞŸÖÑyW¶ÅwܕͨÜÙIú²êÌjí 2ºNY{†Dj„+U7ç¨â²/«‰:´³ÛYìþVžÕ‘ÙÂÜÕY§¹8Kf.tSiAºû}PÞN"ª,Nëè<¦Wê 55¯œ™ò,)¾lÏ›bµÜê[IH¡ÝˆUÝ~ÐüÀ¤+z¡F'QpOúÚiœ{Š_ùny¸:ë;WgéîuzVGÞ®µ‹©>kÁêFC–}5}õ‹$»å‹§0¸+—“0¼C«0´»³ìÕª3‹Ÿ1¸¯“ög›Ž¯¿ÿço?!¡ºžr,¸~·ò¢¾“Ý,iv®¿yŽ^õu?;Í|hó‡öÕ‘…g·dÅþž–¬çXgg]À=¹vùbz¿ØîÝ鎬îJv3èî´¹é'FüïíÈž:ëÄôùYéL©¿µPÔc?Gèukfÿ™ì7BÞÏÚæwvRGëI}’SÔG@K0U®X–à+ÊD;0 Џhu6š3j·0ÿ¶šë€¤¿ Ý/ì@Öh_S þ™PRyĶ×y!‹Åvÿ¶oÔ“]Ä4ë¶‹C[ôÒŽ›5r¢R°¨r[O΃°–U‘„CPÉqèK/ð,I#(™• ªß Ÿ7ºgA#ReBº¦Ù!Û©ÒöÉ;Rì~?'°Û¯_áTv­ôïì‚UYÏ»–˜Dýxæ´Š¼Â³»ŽTy½ƒqæ9é…†cp¬î‹4²Œ‚¸\ÏCô–^O‹ö³óƒ({Rä™u$HñìQPÚÙƒœæM™»Ä]gŽØ,ÏâÄ`Bó CÌéà&š³GA­!ç r¯Ùmáñ™¼Õg¥ª°‹†írÈFÌ IècÓo+Þlß Òч=†.$ƒ‘±–„»™êpo ^¥^ó}À°á¹¡xoÿž4hoH½ó’£Ã¡>¢¥›ŒÒ-œø°—m3•ˆš>EYÆåˆš*@j¥–[ùI xÀcgÑC[§7:W¯&w6x©Vì… Ö`jÐEZê>€í,fƒm*7Æ(OIfÇ¢ƒñàTV‹œIFÈÓÂ8'+²½úšžø%‡ë¸@àËo1âŸé54LØPú ±„Ž«èghQ›%ζásЊÊiÆ#tÇðwÏFåùÛö oËyT¶B6°¡Ð4ûí%¯Ÿº¢ïŽìÙq‘°#ÇÖe_¡Ã* ‰‘‹µÀAÖm‹±žúM ebò²ˆTïFµå /E_¹BW³mªþEÓnQ…Àg¯‹ÛŽXjˆëEÎ}…nq J‚¸Vo´ Ï¡Tcl©Á3 Á[âfmmÛºïèô¦àP["x³)С¦ö»B4øE’DÂu¬GU ãiÆr”úKð»á•òÉß dœ,‰å£o^k‡#A*­~Lâ PàðóP‚GsNsãMò`ÉL©c¼–d¬çŽFPÕ F/;Óâ÷{Ô`£´n–GY´³MÓXZ\ënUæaí…öžõp‰ÄדâŸøVEÔ‡ÎÙWØTÛ™”vŒB^Æ~€k¼‰÷[–Ѱ!‡Ñ»Í(Ýœ_£¤ é­\Yñk‹™®Å©Ií,Š‘j;Ðë†ØQhNû}(4n)©Ë/p& ¥Ás1–+°ÍQ‘“î’q¾9(SõXU¡é¡‡ÃE¥Oš¨mRà ¿}âÞ E¼ˆ¶Ð0VtL¿Ã8y»=Çq•¹LŸ|h½çyµ§Œß‰uûx×RÚA Qø?éGˆÏ˜z•­ÃÞêTA¸†övðÞË‚.^¯ßCÊ ñRmJnìÚ!SwŽ/,[ uذ:xÈ寣UËÃê…`£EÄ÷éØ:a«²çËuݳíìY¥£’‘ûéXÓusLÞÑÚhˆY Z^ÛZ)#›w#ïx-¯êcñÆZâ,êÓw]çà_&­2Òº©3ÀÙ.úl¨c…¶Wñ)3`m™êò±ÐÍ-“)t—b°n˜kER”þŰÖo::ç}•°6;åã¿]“oÍþ–…öÈcÜüç]w¢£$½j…«w´ãg¯¬ÍAõ÷Îv´÷y‡¾¤+Æ^ZµPYüd¡Æ%EI— "ËVò~œyLå×^Ù¡awPCÛ=˜—Øã6è/ËV¹*nÛé!¢,ƒ´’^Øl½—rxßö±®ÍÔ'¿œØgßV|%×4à•4 2}.$ S®0IF#«øüuUCˆ j>]•l_¯ùØ-Öb»6úY<”yÓÁìÕ(­wR±¢ +s¨oÉR9±ˆ…)u] ÚÐä‹®*×Èr{ßÜY¤¶nÁkïèÏÞ´u ¡˜ŽN±@s[—Tìè‹xµu9„ó:z5ù::¾Þ^Ô1D ûvìŽ,㞆¯Ò¼^ØÊ0æXóVU!Ø.ÐDq{ùk~'¶¡¤¤ª6%%ðB´7rUÜÇ8Ó]=y«çÚÍxáÉ{‰«’ßwÖv=)اÉ”à‚>G-}T&õ#ö¨b76Ÿ \SЇ]0ÑšQ~ëê-™+tæTcé\±;UÐ&ƒ~½ì{p2XÉ…ÆÁ&µñÍxWÑÐM5Í€€˜#!8ÏF±áÞ–âDÖõt‡«$¯+wÏ¢š­h2P`b<\´L¯öOðAŠªï¢÷îg|F!Ag ÖiÑgtËÈ0í Ù`[/‰ê÷WGòØÒ‰ÍÏòB¨ôé¶Æcø­Ðx’k÷Ié(˜žSx]ÄÝ%»_ÓV*¸é¦¹¶4­ÅÆîf™úõº:],Ñé"ÞkÐèUýM·¡Çñ÷<ðË1¼üjxÈußC»ÓµýaN‘P7!vA ýë-#îõÜÆ9F KuÍ‘[^–:w8ÆÑBçm­L‘‹þný#œßÔ\ÈÚÀ¾ QÞ3Œ¬ýqŸ$t>Â_—TÙVAt;L¶(Í^pçÛ~2Z§|È¡VìXx¤öVö†²µ×ªÕ´:‡†ÐþQ·ä­ÉM'-ìàn£@À[²‡9 Ç=.Æ d=Úim®EWJ}}sá ÈrlIå¦?ŸT—¤ˆh_õéUèƒk@‡Dý·hÛQN«A2úO­šŠí2³,ZИ–Võt]}o¨g´ ûµÎM"ˆæbø´$)GCŠ]1|•XÃ˼ ai™ B¬7ù¸áEËOÞ窖ÆUAÉßìú¶:©[ÈÛ=¤¤.ϯͳúcˆ˜×\éªs™§_Î9«JÓ°}`¡T\Ý(î"¦l~W$2õK£®SR.!ç|°%hÄÈwV9Cf”ì Áú£æÿXKÀª3ÏS[™öÖÓ+…ר6ØÄÖ °Hß©/¤w4¦ð,-j©Q܈ÛKh+Ið €ì÷² ¡ q£æâŒo|`«ØÔ‰Àót|Õü<^qWøYHOb“ãL~x#¡ï>µOusƒè N犵Ã*(Xëˆdš#”2¾âb1¥¡~îo¤pA‡¾[’ãå[â×ò­"wÖy}#ü éÚ›è®É%v¡ø~óeµÅf$ž1N§`ÑÒXzRÈGW×ÏÌÁùî®ÿ ¹ŸG¢ûD³=± Àü“!Òso~Ñ2ÚóŸžÙ3¢;­åð¦^4Òdòá²òz ì«·5-Q{ /×Qþ!~ª„èˆdqƒÈ¡8‹-?&.ºö^-kßÞéîêAÊ)Ùcr–S§‘@¬ÏÂjðGÝ‘œ/ó€FùÄ)¶„g½·»Ë[’]¾LW|4º´”Âì=N²„éÖúPï ÞcK7 ¸CŸQ^wW–¾¤k±¡Ók}n×ë Ci¾{CÇ/YŒ×,…8[ËRmÔ¥¬Mkîj Nþ¨+>ò œ÷N}ÖŸ÷úÿ‘“&UÇÞ{z⬗ìëØ² Vô§}÷:â#šõ¡[û«èGt쩊+"Z³Ã=_K2‡µ´`9êÉ(”7s·?Èä¢íš…€’ìaØ4PËß@‰ò.¿¬½B·(ŽkÏj —Æä0!-ss\溚º"ÇÃ÷¢‘cªÃ„h VÒ°)dÎázt—Ç%x]l=ú…ùÉ[ÒÃCŽï;qZ£ºÍ4Óiv—ñƒ4Ìáb¶Àtšû¾?¢_ ÍM© ³À+„>Úý—ž'úŸ2SÑ)ׯ„ä;)2¯5%ñ(¯—Á·£!Ùu©^Þ ©‘CÂ9²¢´½1ˆTtØ¿Mf¿ðÀ¦íºÑT”kAë.pçY2˜btÀÉñq±ÅâȧFK¤IèÌaÛlëb¾{– …c—ÎÃ0½ô౪àSúxèVÒ+)!,©vû9Ž&ÃfõGUÔb,˜ÐƒH˜Ï ô¿¸µŽ˜ÆÍ)ÊØY˜†2U ´Jê o(‹"Êþä{4]b·áx ?´[¸›ï¥—<3|¿ð†Ý|ÿÁZž¦ÅþѼ­:¹ƒ/ÑÁ›Õ…ã‡~™àÒü€GÃbàÂlŠÆšu žÿ°eØ =åÎÚžÿÑü÷“5ÓÕ$c)2€›Iï—ºÃ` yìï.’,‰Œ.=ðþ¯¤tÉ „Ï€ ¤EÿdMØD[âYvÖº[Üý:ÿ÷ý¯*ó bÆ17 ØB1¥%¹ifÖ´èv¼pìJÌßpŸ+#wq¬H2¬—"Ø35×x;Ž÷ø4Cˆž‹†œ5ÄÇ8·“Íõj¸ œóëe^vÛ÷—úª‡)ÖÏÚÑú%/[¬xçÊ"¨¸;؈ˆž%»ßö|~òú`T‘Ò°JÃO ,"'ž->÷%⟴Ê"ÒtijmáN0ÜGcB6€QÐÔÛÔ)·Ží!kÝIQpí>4àØOغîï[­–¸©(Ù\WëÅ4ì ž]±q‰<ÿ-zNÔ™ãN»tñgŸ5!\Kúñ,Qª†‰I)Ì[ntOÇ!¦‰û&Þ1èOxá÷•b8 ¡2I0ô§)¶Û_çÑÕA5üaWVÓÉü™•‘<ü»Õ;Ž”ËÎ,‹Ì¶. ©ñ‰c¶Ž¡Ür“„3ÙÔŒ„2œ¨Ÿëž^ëšÓ6>r`¦îÚ98ÂÔêùÚfðQ…Ü5íÀ,ƒ)8ùô_(CùiˆÑ(‡"}•^ÝùjŽ¥˜SÏÀ(¬RÎ×ÛÖòµU§!¿èŸ¢Õvuò+5`4çHTÍ*„§!ih1ÊG–p\·_¦z›Ä¡þó³Ø4jÅ“÷ iç`ù’ÈLÐtÍîBtw¶Ú²hä¡Aá,@ÄÌS“ºî̦Á‚AO®6‡¼p‚x¼5·”ÿ®¤<ãí·üÊž'c¤3¦Ósäºá•ð[HxŒÏ>ŽJ.ƒj(åIgƒØÙjqLº‹¶2˜B£wo1/ Á'¼~»¬ð«~òÈ-Dн3üµ›*v'ÏB\UuMx^CòœôÀ²ÏÂS¸¹L¬I*Íf"CÈU/Š•Ž=$DƒwStѾ@¥Á¯FÙ’^8Zµ?¸6×/¹Cláyü‚ÐçEktØÝi*E¦í%¬ÿÒW î Aÿû?Eì~i·:ŠîÚ·™KmãÄp ·Ï0() ZÄFgI/Û€làkZ[›\Cc‹xˆ‘]d¸¤  H½E†ÊØ·ax^2²Ÿ;p•åqt>ˆc÷;÷ÞÜ£m÷VFVI_y…g%;òcñ¹¶^„ãˆï‘Ôõ-L«7iïm—uEA\(дô<´’y!/ﳉúg˜Îâ½…²;YPgr%ùx ¤t¯ |bøAV#/f9ŽnüžkÁ‡€àʶ­ ²Â±ß5K{žá€^Žt®1Œ¬;m¿Ó(]Yj:¿³¥úk·×ué\ß•zž‚×]/¬Ê(€õ»0µÖc0âöyÓÊé2~Í&®%4ì„§Îí¡"*{YˆfE‹‘m=(2DÃp€UMgŸü#¼ ÀÖ×{/D%!ÇÁø)«,÷µQìÞßâpÄ¿­¿pUü*¯›ëÒCwí<ŠëÔ t©ïB$êV8“»… Y1œ!c¬áæg¬?×ry\À'TÖÜ\Šu,@ûNÜHƒ‚Gú²»œ,Fßÿý¿ñ®q¿MYwìâ³^_B–æc%tR[>ÃRƒkô„§†Ó0h„Ú^áI5Iõ a´eQ6 21ñôŸ˜clCŸ€ïãHK>YóæQ²ëw$aÍž‚o‚t¨w `ؼÔ|‚#? \N“·v¿%?bl‚оàSZ bÛs¥ÛK€úµ|bµÿ¥‰­ÝÂq¡Ç°ˆQ$Þöêñ`dÃ%‘¸šß»¼`ÌAÜ@FM;®…/ˆ]#ë£)-:Xoš½ÿÄ8_QÝ\Õµc&Ð@7±êU`SMʆ3lœáÇæƒ™ Ý Ý”¹˜GD̳`œçÈðÐLŠÚ:!CåRÚØ—lðR|À¤­?¸k·¶&ãªúJŠø5ìBŒðõæiÔr¯h!“™vŒ™2²Ü°ŽÍ9ÿX¦«›#™ŽÒÀA‰Ô@±kh™¸kÃü÷9ÇsöeHþõ!ÌÕ>#qñèyb „#4Þ0!ÐVÖ/8XË¥I[š·´9=®Í9°už’ŒØø O³xoÉð"?Ónæé˜´€óø£¶àPžîÓ‰~Pþh­+ûh €Ò{ò ÖOʺçN­Ï#šÈëšpÚh½ŒmYòÖ¼ÛÜ¡°‚B¿‹Ò¶æöTf3·¦¢•g_ëÊæÎ.oÙ¯{¹’£âjXv‘dñ{þÚ\CÞÆO¯€í¼®ö¢M(´{϶÷=}ñªàô"¸µÕÂŽ¶ATŸ,’¦ú¦![Ï´ö¨×\È&¸jÈjƒ«õpa¸)öfrÜú¬­)^!»îu$†Òÿwã_Ñ Žñ³‡y”4²‹`Ö†R)6æSÖ˜üAv^^ìϧèˆikQ óù†6xXS‡©GÃA‚¨Qж‹Š—Ä+}ÛJ]À\²8¶”¿Ó«WÙǵ¿\ ÏEôþ ÎSŠ}Íîûá%l\ºÇ 6ÁlE\³†ž,`á†û®êMØ@vÄh)ô‚É®¦îegz?|=ùcÀ™ÝøuWsöˆF诔ðÈk-1CQ×só©w3;÷ª2Kzçuq(ºYef%E>ß“¦)^íûø´¸4#ÒÏ2û4V‰ñeõg…»$Ë÷#ÉfF½PêªÜbUÛ÷h9°¡@0·¦b™J0C ¿zöCI”¯WrÅã£,{¤‹ýö#öjöu³Îö•`6åuíØh‘ÔÁ*X?žÓÉS`æÂ¢æ¹,k;€ -ˆ×6 ‹Þ줃¹ò/Âcy+!•rƒ‰ˆš¬1Ú‡Œáµ‰Æ+GP–ï2˜v} <±Ê!ÆìËFƒU0åz´}ò¬ Ã" QB3kRƒo ’!æŠ9Êú4+dÔet²MëFoo(mSñOqÓÙVœŸĺ¤5¿&Då¡ÐoYž $ÜvºôÅE)sžÐ«“}ÍI½8ýÉeÏ}Á $,¾Ø¶„µ¿€`„zû([‰Ì9eÿ ÙÛ£¬™çM‹u!†Ý®ÈA6Û¨h•‚z¿-jp„Ã.âz7‰Gêäj Iìû?z½—¬ïÒë·ùïK+6€þõ¯rÒJýnú­ªÛš/ã ©×ßäâƒ_ S6jEn•g9‰­€_|Í ƒòŽ_ ye}M±‘X€ÍÖ;†"ÎLú÷Ú_ R'ì7]mJÀk€ 8$¡yäD­˜ ‰Æ·ûd\ž¶¾(P›eÚ©Ídê±¥„€ ¼ñ-' Ú®Ë xœê‘Ë Eƒ&³‡FÉÚxá5°®øZÆF Í´˜Ž9JÝË©©³$ÓØà¬È[ú¯X!à’nÙέ3Bv ­{jã—õžµÞ‡8Gù^xAEö»Q6—W=§V‹1ù¤LH“x ðIÒÔ »ù´ ,¢ãɆŠLGF‹Dêæ:4rh²Ëz_öRÂ’v¹©çJçðW®íÇî9ñÃHrþm»ÖŒ´3¬ÞºJ¼ï¡VÇ¡ÇHzÛ»õ  !÷±ìë‰ÍÖðr˜¤wbT!1ˆ\ [´5„“É¢í6‰å‚‹JÁ¨ps_|Ì9IHö\g}Ay¼c÷š{…£>hø{tzG 8ŒÞ²Äû„Aò³eOL ñ…§«>¥eiDR–qíA#Dh–AÁˆaa‡'ë¿ãR.4/Òú‚»-SŸ¬(D"`Yš,&2ÏCû>ÔÉYÛ-Ú‚çe¿ú‚ôñÒ!!nz8âö± ª¼þr›ïi9ŽpÛtOzþŠcÚ=3h<`4`M»[|ÖUæ˜#âùòì`§¡­ß{ˆÈ8 4,B õrFQžFÑhaH¥ÁçÓ.mSœ÷EoÏ2rB y+­jf®BµhÇ:(8€Wƒ§|aZË"+ZJS×2±£k›Î44‰ %ZJq?xÕRŽøø¥:ù—g܇_åÚñôÇŸýù—QÄ›Á¼¸ºìï»oÒÇøã8ˆêÀš¢¬{“4±U¼yMl°†È¶®BA4µ`–»ò¸/É[÷=}ÿÝ`퉱E¹X¯ú6ˆ–ç8(àÇt* wÎ]ÁYW8ç¾Ûî"poKJV bÿâÈ–)(+Ì…çÅ€ï C†Ö]YûE,#ÖTñ6hÏÞ9¦7ŽE7Z¸Í.1Dü«~ii{µårãÿ0ÄF»@Ñåm2tû´à‘$näO¡îDsŪÅõ‰çú£Kç*«QuÎã—K^‰áÅ‹g‰¸˜RÚîÎPó^œ%¸â•³Õa„fÉù6'§ú™ø¬¢€r–WH­´mË:åÄŸ“Ÿ¨ñx¸e(ð°9-Õ$]¯{ýHíj_a›±ŠƒËÀ@uÏ4\cq×äóq0ˆikÛùtAåà¶EÌ»¾fõ Óº_€8÷2Ë¡% ¬ì`²Šç•**™ § '%gX¼ÍÏF~ Ï\Ôí͙˴øìl­eÕ¸þßkÆX|“¦¨»ÿÄ^1ꛫ ›7b#¼xø}\èÇØòâq¹:„*^$æ¾¹6XÛNú%¦rφ|/“ºÙÏe:Òøø¿ò®×8ã²fÖ¹iU¦u7V¢€i\á»>ÜüÊs%UW—¿¶•&¯D¨´WvY@5\IÙåwDºX ùÜ™EvìÕiØgõÇ76Ê8ªl_önè÷>f…2–ZõЯ´ªž^$üB‹¾h·ÇàZ0°ä£ÿôôT×!¯vG,ܵzdTƒŸaNV@vN¬,;Œ‰XIzáµ.´•æj¯¦u5'ñ®¥¤´Æëވݥ861-{¯ú¢ïxÝ˽H½ç#Úž2Tc^õ‚׉«æ˜cŒÙ×®â Iº„D…&ÞWœÙGˆª“³ƒU¯Ë ƒ3"s·j»=V׿§•‚Öc8CêrÖ$è?ê—ä®û{ô‡'>\›ÿD$«…üºtö\›oîDI0Ñ¡Ÿ^Ò@|ö¦+sÉxQ/çä3¼»’“ìµ`^­ë€«aœe¹¨¹[\ª€7ú¶@ÚU†:ôZ×”€: ÷‚§›¢VßÏd£ 2¯­®>ÃEü ¶U À›T]ìd5œ“•¶–9ă¤c$çzùÔ3Sb÷¹çìâÃ;易ïþ¾‡×\.eCs$¶}“C3—¬’ÐÔ”žŒÂk/"‰Í–g!ÌΗ4tHk6}ºÒu‰6Ù]ÙxlQ¸€ÔË:c24ˆËçhhœÖs³xîTˆFßsT—‘ïîD¿uü» Á°€°o»A$»³º‡AŠ}{W½_Îk¿ü®*Óÿ‹T‡5°r^l¹`üìh7Å ^›á¹´‘ùœV‚M…ååдL‰¸Ð<•+CLã-¥4ÞÀW‘ûèã2Œ±M®ðIJ „t,;5mCù°ÊBwöÜ-¶{TVÆž¯? £Ëo_)cAÁ:éhßÂ6èº(â9GЀfüöq€†ÅËΜ— Öž‡î%õ–ý cªWK‰Ôl|ÆßP0ô/]#ÃÅ­­R›½Œ/|ûqOr ç*IY¿#¼cb3ŠËK¦­Í®¿ÖœUg ó^ô)Ä! ¸Wz…·áÇçQI'x!¨ß—n8c•âGY(ŠziXÆwʃ42‰È½÷fÅrsõ| ©ÆÈ¿…®œKK~.Rp7& o;òˆ6 ¯Wñóîú¸cVñÉTøE’]^å¨ :³ÕãÞÍ3í‘/¾rÓŠqc1¤Ü AWd k"÷–XÿQZªÌÓÞk•ó¥‘Vƽz¢í.TæKÐ6öönhñ“ÂM©ûÅÖ.I~¼ðÚö—[Îcï_cõ‹øÂ}é™s Xf”€Q­$í̓ Wfdbá;vî.Úyiê&ÜU¯S…"[„z§.Òù­„Ë6tžÏß>AŒ’¢þ¸0~}M-fMrè1E™TZÇÊÈþϼ®w¢:LŽ3‚YÅ3*=vþ ¢C¶Ò’I uä’^¿DÑ-·°Bkž¼j@æ %IWÁ j8Р¶u]ßãg÷~ÊmR?t¸‰ÝÓ¡ JW ”C Ndó”Áöªçims*Ä×'ñ@ãÈ6´`ÒX BÎ!Œ±méèɲó†å˜ûßÿ©Œ—OÞÖ} Hôןÿûóûßþ•Uwá·!„oãªÃeìðü—VXnúQeKºH8OØ¢¯„¹È0³tï™…^Áê/ e!‚µï&6G«*fk´ÞXd¡é$ËUê¨ M\SZyÞ(<‘I½ü/r„¨¥ï½„Ù7’ÅÌç)Ϥ¨0Š/“ÃçÅÊÈ}‚AõÛÎëñæ¿UwHÔ€txÑ(5nLÛ{nT¿ ®wÎŽ1ËdÛL9I‡xvÆ¥ëá«'’ƒeËblÒ…p½U—¶"YQçÛ$‹—ÝÅ^Ù‚*é¥ÜI†òpò²³Ÿ{Õ f•Í0•B(ÏöZœ÷,Ùvø°Óéî7KÞÎTG¡¿H§º\_ …le}0—Èc0?¦‚Œ½Ûî?Sñå#¡àÐcgd—nÜ+åsÉÖV%Ó1`DsΞƒ½­}œnÉpUos«¹LjÝ$\jöåUõt¦*ØNtéšð;úb ']¢>B%=”ÃÉä¸Íýï3ÆÕ`ï‘ÙyÆK8VÐ;(bä6PÑàAö¹ò”TÕ©‹L®©ÛZÅ{{ÒE~–ñ©cΩ»?ŽÓ ,ÿײ8™ Ë‘Žr¿ ßØêß2˜Ö,’ùÍç\ä&;µmVuz£çi†<7—ô”ȨÜà«}á#žúú¸ÖŒX¾«¾Lh+z¬ÛŒ¿PÔ±: ºÛ­v™ï–Ã.â!Ò¶VÔ~ö nÐÁTï¼WÝÉ•Û+í½=UÌ È‡Ñ[*ùgìmµœŒÑàÈãÑ/^W_è:ÃB˜ù°‘'š>(ħ¶gmi¼œ×ŒÙÇxÞ¹s  %wó¥ö¬'l¡oD!ƒKkpJš.½’ßÅU”Ešåíâ=šÓé¬zjçÀ%OÔ¡úŠ…úæÐB%c_N«¯Éç".,Èí¢t'š,‚_¶iXÄõjk­ìOH}˜»Š© Óº—%%’쩵qJX£oIš Ÿ‰Ùù®»ƒÃÊ£ýÉu¼Iì“–ï?ùN†dP >^`&ÄEˆE˹5üÂൂEi›ô-\eZF£øŸ¨á8íp¬¸&Uïùë•^-¦Ø^Œìsÿ. õ_#3»ÊvžºÏ´Ù‹)×iE”1áéY°Ã0Ý ´ŠÿÂ׎ù#^\zîùdà–Mp„w´¨¯k>̰XÃÑmÏ›¡ÿŒÆÑÅí»ÿ½§ÈŒ©ZEF´¬f‰j“‘ªN@Î÷ô=­q"a´ O0îÄ—š¥fÈô–c×c©eÇì °”xÝ…¦Üs–FU=bG!k«ÛãþÂ*TÆšg•^Ûz[vz<üðéÁ±ãw$ú•o´ÙîBʸŒiñbÙSĺn|Nû+ ˜¨¤Ÿa:i´²7¬/½r^B³Œf»SåYZ² Þ KÅv]T¶ÀÄò`úüÒÆ´¨ƒ#䤋Ãòø&&K›ß´vð(öÆD’eÄq w©VM‚Áwý°7…w†z6Ö3úö¢#`­/¾ «À‡¾Ãª"''SÈ¢Œò *¯š‘:Ó £cÍjC`Ÿ,I\ŒàÀRcÄ[4^ìX 0ÁõÓ€Ú]Ü’©,Á)c&¤Hð*’2­Œ0[b ¯|g]uz‹Ýöê•DÐt+X~]aD,ˆæƒÑ¨h³up¼GžÁ†ç¬bM@GH'ðY]yä››°éæß›–ÝIºžò4Ø£kZzá±þѼS‘$YîÝ’WQI9§U¾|ð$׺ÖÁif–°ú0‹ë;Ù0 SH67x7F·Ð².­$Œ­óR¢‘ŦÇ=» ø-^À´Ç1®uw£O{Bš,/JèÁ‹0‹ªÜÀ"ÉúþgƒÀµkkÔ<%Ûˆ–­3?’ªœ˜ïþkgÞcŽPMVúÊõò£„w—2°L‰‰K$|¦©\:ï]ºFGö<¬†ÁY"4vñ©Ÿ5à ÷ÆïØ–,më€Ê]—Œ1R(à;è0¢è‹Ê WÓ\ ”ÝpÖà¨ü¶¾×¬Á¯CÇçå·gCçC¶:á‚_ß(¦ëï¬õÔZtØÑöŒãkÇBµ34t:”7ËÿEî$ÒÓeϣ埱/$梂Æâ…ˆŸ;E H7úß?ÿŽ’OÖ¬=⑇Ý\¶2y&z¦Òº¥{ z“šèÛWÖÒ•0MkÃv`õÆNcÏUAÐ+Gª¬Égòeÿª5Øy–”'îwÜé8ná3ê¬NÃmœèl`èx¢ƒ{Ýô‘÷Ubw÷¤8þÝçiGâ }‡Å=/fU󲂠ö|ÉmÒöµ;Ã\¢sÌr)¡ma+Wywõé‰Éÿ»¢¥Ú‚³ìÄSÂIõż`}ðyV¼vË­ ^ÃÞó/š÷¬Ë1 NÒúÏW‰9ÿsÞì9QcdaÉV b-¥üsTJùçÕRÊ?ÑE¢¥›Ÿÿ)柅#¨ènññMhõ¨þâÒ?g‹Kÿük„Ÿ~“ðóÏ¿Føùçß!oüóyãŸß.oüó{äð\Ã/Ù×ÿH:IlÖ?xŽGl |˜ë ±¢îö)µø’–¥çh`Äì%HˆÀóTE÷\ú,Á]2mFÒ¨2äÛØµå7YÍíD˜¾^ô.˜”FRÏ“—V¥ ÌXõ‰C溾F–¿ôâˆï- tÀ´ußyy“t­E¿UBŠbÏPÁ-œ•2(e–og¦«(ÓÜá¦DǬ¹ÖvÀ€¢îxì‡w­(Eè8iñQIF÷•ß7º£}FêpÆûN¹%U)Ó>¹Ä4‚bÓ¥?¼ äé·àè^/ÚÖ%{'^e^°÷îg¼ë+yd¸;¦±_³ ·˜LÛ{‹o¤îñ$ ¨ ‚áv‘ •‚«¼çK†Òµ¤£ùa'ûÈ!ömýâKN ²’C58Og^“pëßCïâÐ ¶³ÛY˧gUSË‚VõåÉÊÇ× {oSeWÑ™¤4ÒvXŒcÂcóâ€Ucá2ñ?R¤Á[‹®Z¡52µ½å/BUòX$0uiãq…œˆa2Ö©š"¾ÇÏŸšõó{Ùa)Àž6ás˜¸1Šx›Åh¼ãnDI1“†JlÜxw<¤éç×.ƒ‚Kv;ÕàtD£íbš‹aýF<Æ¥úAŠÛü¡Fí¼K³½óÜ#¶ÐP£/KÓ]c•6Àt‰¿jžÞäN^êØ9¸½gv‚ÇÉ.ÄU…"ƒ¢•¼ìø ÓÓÈyö©ÿ…!av¦0Ry!ΟS zÐR-dJÛ˜= =÷.Šm̃ø`>xë#"Ó±È9>Nb°¼Þ‡UêÄ%EñØ#ik{\º I½Grñ¡f'ºâ¹F–+å wZaì‹h—ÏœwR‘_Àårë˜L¹H"µ‰•!_à–òïß²—ó ¯ôe¯¥·Ü Ú>œ;™,Óâ»säÄ@7¡àËNb¬_œ±)VbLä4ºi=©\&®oi–FâõuJÊ-"ŠéK¬ÅôWsÝ¢™[&CÝr°÷YSo’¬ £a‹èuclpø,†IdùšÜŒòv¿!7svgø}n*ÐeúK©GÊz¡;v¹ˆ‰òæñLãC* Wå±¶~¨ FŽïÕOvŽÙñÒ¹†­9ˆè†7Z”¶zÆŠÃxÖ½¯£ЇÑ#¡ßµãØÈ帱&üÛdÁ hÑ=«¢V,D«<\†LDÈaE_’`:Ür‹þÈÜ–1ìnÚŽµdv–°ªé»øWý’kzÛ>¹Ñç B¯Ÿ”µ ÁfpH @/ßV9ðd*}Ùù¬Ípð/Ö%b®!fRhfÆ@yt§•·.ß9*ò” æ@?0xÔ y| V¥ñ¡¥Î·-`Óå®Á‘ñrñÁ¨Ÿ{À-»˜>­›‚ZV€"€žµKVu6<ë n¿‘¯ä“ÙÔ[ÿ¢i·.<6c½ÏY[^’ªß©ŠÁ#3Lo…y±h82!À>w»«yY'¬  Yƒƒ†Û[s*?’½•½ ¡Iÿ¾‘°pø<"Y†§3k–ªåÞºeôÞ1KUtïuýÊ/ÛÀ.›hGëvÀ² gÊp þI>š€‘í cÆ*J[Z´íKgÂ(¿uuï{Íݬ¯ÎÍ0ºÊ^‹H«D®Íbë=Ë®ä c'êt6ª¸­ ½ÿ7Í`Hç%%i”¡ «„ÌZ(cܱ߇^o‚)vÔ:ò¹çLi"j«Gµ‡•ý¦iIF•åôAoLHÔsáu+*ÌRž½{g¯d ÅÍ9}°wšý¢/øpmŸ¬ ÀÂ/çO€#ãz(q¼oh{#âL&äswßuçtü!NtCš³ÙËr!…“ìW/˜F"DŠcm\öF&94Inu&X•½QÚôª\‘µ‘ «.Ù'Ð6Ã[ߺ÷­WFÆÑ{ç‚—21þqĶnÞdá+]¢UWKáQp%ׇ¼ÊûpASz=uC]Ä4nŽu©ß „Ü]wª7)uÛõUÍíFÂMººmiÕºR·>é«®.”f‰ó“ šÒ³sÅPyn‘w¥sõJr£`)ëKXÒ²ç2½ÄÞªêÒžºÎ€tVeVepÂjÇæÌf³šh Õ¶¿xl¶OS %xºìÓ ÒG]\ì­3 ·Övç\A¶™©`-÷¶ãŠe÷t4-뺻Fá·sïNq?¥·÷¾î¨cÑ4eñÄá;JR¡–¸6@G Áàºë3RødžmA9O½›«8º³'ÈR ¡vðŒ®Îs!"HÓ—–G{¨ãRF{l ¥dÜ€æ¹ÂQ•y$å>ˆ ¥cŽ=+ã¯SíqAdÁÄ­JSÂ[ãƒ]˜½ÅCòy[ 0r(æ(Ô-¸´ÿ~{QÅåˆÄ>ÃÒ£³ 9Þl%– 9åN|ïRð™‡QU­¹*ë"Û#V•[Ï•2lÉN´‘bëô©ÄÅ.Ô.ù.î¡CPlÁ³Òñ¢þ(žñYk²öšaÖb³Í3ÞJ¼ÀØ‘í!hÛæ)L!#ˆÁ Ao~Œw¾)FZMrš‹_YÕ?,ßÛË9ŠLRÀÏŠ!¾˜ÜDZ“µëQý• y†]VJ®;Ššï ãûÇP¢q¨o1¼ÝpZ†P¦‰o"óãA2XÇ23ÄÃu#WVÿ)zE"o’_i8¿K=ïh³dãoØD:P÷ã@×à"{AôÁRH=Aj¶Oʤ4Ûix=Þ~â®,£z‹`+žÃäy¼¥Ðo€‹®(ö¿±VjžÅxˆŒŒUÓj å,‚CëÌÉÃKJ?ƒŠ•Y6-«í´ÎX·(aU|Z"iP*µߺ‡UFÖô§ŒÂ·´ì«K B{}ÞEð\ËsßlÍë/HYÚ-´‰s§R:Äâ•y!zŸ?Åæ/¿…@äûl®FÜ1WlŸ„q _m ÷Üøë.ÊÄ]ÄSðQNß4ÜE­„àâ ªC/蘩©·àñØ 3lŠ% ûbœ¥dh¤Æ~£èTñ?–Àt™ø_ôBêT׃Ðò‹4¤¢œ~sB ï΂™s‹gY÷‚ŽiÖu7mA!±å¦Eë§~#øBÈúÎüÓ%°)@eð!ª1¥4Ðç“56ì'kÔ¥ŠÞ’åÇFy+ñkXùº(Û–ÍW”n¯*û‘ůD­9AY“d‚4¿’ªu`ìIºå°ø¹LšŒO*vÒ¢¦mϯ/øú(û!J…Vpa“Q¯yÏ $¹æI£+ðç“—IÊ4g®Qõþÿħl®u]Å®[³Êß{Ru¯Ñ«˜Õp•ŸGú9t•oMCtÄ2©cU.ò¨u‹1“áUPþ Ê.'¨€³»Sè‚ÔŒñüþÑÔ?ghxöýŸêeÚôñR¢`Fv¿ù*y':â Ž¹aø•(cª=Þ¤5ù…–C )×évM¥H¼Më=­éû1¹1ï'E+2µPÝ—I62†£d‚UnR JÆcrÖÙ[“]âsŽc2ÿÜY¼ÓöʦŒÝPTïÍŒÁÐéaÖ«…L”€ý䕼g•ÌwX´œz§½š »CGCÚèJmª3^Pi“C¯ukºÃ¸ œ²º M€^'ý”ЙÑg^vxmýõnÉùïÉñå1៖$F–˜h<͵1]@Ôž P¢Je>ñ¤7 ŸÃ¨ºZör0‚@!í(fµÄó£È ò8ÀÔXsÿÛïËl– R4ì$" 1âU1Û'”ŽXJŽ¢ÃŠ¯¹Ì·)™˜ƒªJì䪣¿¬$¬¶Eñ„J×aðIðÞ0ªØÑw‹]Ik$B Ø¡JÑ<šO 6S¿s?8<É=£^jû ÊõÛúÅÂû8÷ØÂLäÈM¿KЂÜ6 v Lcg^ æƒd3(@ßÏÌ ¸­‹gN«ÅŠʧ£ØBõÀà]¼Ú‹­ûä!øâÓ Á—÷™ËÜ 2–E®¿ù–N\rpÑÀ¶ÌnPÀ‡,I«X—/’ïTÅÑœ"†+X2ºÖ]ñÔ”Cy„ékYÇðRavì+õlÀdWBœ³»ÏIF¾#d¤²1ÿ¥Eê⬥,ifµ™H(̹²Ïå‡{:ª¬Ÿãž•düŠXçY9²„ÖUþæ‚—ñ…Š Çž=!6´®»Â"K½Õ~ò‚ÒŸÅ D©/)á: —­œ€Ñƒ/}õ7“z˜ ñWXUócR²q©JÐRRUS/dSèh¿çd¹ò¯e  j‘—q*ŒwF@”PHùˆx 9¨>âÑfUÔ?¡ƒ-móßêùnˆxŸÐ…ƒíÜl쵽MØ/àQ7 áoþ³æ)i÷]²W†¯ÛjHˆ?©VÀl»uV­8/pûIßæ7Â0r}ÿp½©f©¿`vÇÄO%¹í$’îðrÛ¤'b௥նƒÙP³¶¸,™¿hô Ø´.¾ªñ „Ía¤`ÚH?³Œth2RhæÐ‰èœ ÉAH7|›Uó%¢¿ˆã•Sçì¼L1,|q{X:’Ae4±=\tñU¿ºsÕè€Ì¼µy±’xÚmJR¹ý“ã„Ê"* ¬&Q‡hçj‚€‚qäç‰q*úÁÃë±…ÙM‰]õGXc£:W6uõ¾,R˜wíÖ§XwÌXÌù`,N^w¤ì¹WÔ®TKãŽÌ“£©š¶@&Ísï]ú¨©I6ˆ–ÒABJÞ³½hjFôÑ`à'p¾Z‰ü•Èan„µº§ M5à8NÏÑjêËÐÖóAåY°Ê³Àz¢„^¼ìÃYçÖnŸ0X bî-y¶Ëæ¬J‹>£˜CžÇáÅ2!N\ÔpÃ|dH Þ/Ô|iwŠQx¬¡ÊÏlcèUËœ,Áí%…•ªŸFü‚úÅr¬¼ì"âÖ²œeøµ)ý Ï•–]GÔD+±#½æ8ÌÈωc[­†K}ÿóûón”E»,õxuŒÖ#ŸÉuýo {בÃ(Ê"}@å &­a¯õ ßUv|ó(’Š-²p ûtÙÛr'mÆÔµÄ¢òÌ·ç½É@¡YØìÁHåDp¬ö©M™½$6…:™æÐØ ¥o£ØqÃËÉ_ö>‘C0Ж¥¤aÊbhMÙR·bwzž¢Ö¿WåUˆé5J§6RìÕM˜›Ý'£58îΑÏÔ45UÉù^ûeõCœq¯âö{kž8…Ò¢Ù û ê…ì›CŠS´üX;ŸG¶‘Ö·dÓŒ¥“B©²Í”é±î»ë‡ ‚º/‡2›˜X×84›Õæ1[ðïAFjë^AÿˆÁ¢±€¯-ÈI‡Ï°!1ÞËeÝÖ™nØwvƒ1_mNü!¨³ýñöÏãÌ¥¯o½ŽÛƒ+^&Pm­¯sFo/슖d<Þ ã"ÒÞ.±Ûœ›„DY·`½Š”ÙlW¨7Ù½ýå@®þµü"eÕÝZž]r¬´,>ÒÖà«&ÝQA éf•ˆÇ^=x›š ãxéäN£2j9j®—Ɖª„¥Už Ø¶v:ïy»¶®êr!}\I)6%ìVƒw'sNªœ7Ê9Ù38žTê`Øä/ìÁû‹Œc]4ZªŠ ºÃO%‘9^iÑcbmK)8,A£¬Or„ÃV÷Ãõв@ÕϽšÑ’Í æÉPžÏ ÿU’‡Ìɉ>¥é·(Þ¡‡Â^7¼tëTn©d_ÚKiûlº!ÂM=GѵáQK±áXɲ‘féM50½Ü}ÒY±„¿»§TSÏA/ôÞõp"´$€#5m|A©Ì’ÎO }7Ã#âݳ †¢,¶Ä6¨|+޸ݺ©×R x·&.‡ Wõ~˜¯½ ¼Û‚¬¾hð°S:—pg„¼f‹Dþ8!CxTNPµÂ׃޼cv<¹+tx€µ?B‡x÷`®,.5Fûãÿ!ÔHAp[ƒÝ^I[MÿùY|¡E ßÛ[ €ì)¶›z†nãñs#F~¼­%Øé)"7ü!yµEC ôÀ¿u1û)Ô@‘*+é 鉣âYu `(U•¾ýõŸ¿P{ñ8wùåiÓ†¾t©ë·Ï_<ôµ¼ïh%CÞ\7.ß~üõ×Gèâ|{<‚ß³)Û^ëê>½¿õ(~¯9§ù¾4­ùj×;B²¢¬DÆ—·H™ÔgøÇ,Ö®’Ò[Ö„ac[mƒøÑ#E*­(Š^ò®/“‚"a:áØÏ˜…gÆrÇØ)äJÓ¨#í¦®Õø°¸kÄs4ÇᮮʻLÎñSÐâÚð¨I—€Iú´‡B´¿Þ@Lj ˆ¹±)º áF9_“襺hZˆ™_UåQý!·Ùôàt¿ I¿¯Ï—GB,hÉ– =AbQ”ÿVš§ÍNÌ€.ö9¤@[ìLêQuú }J`Êä˜Ñ˜üs4;ây >ÁƒÉQQBY¼…±AU­Æ\ŶEòºÏïǾhÙ²>ÕŠð ,â“ÙiE¨;·Â^âÁ»[OgiÃãpSûñº_®Íê4ÌÕ™ào#Sˆ«>¥eiDRi‰š4´é˜P¿ýv¾²NÔ<Äg.⢴éCb½ˆ/ä,çH^º&È>ïþ?6®S¤Ù"fÑH–i›̦jH±SeR䵤­ef¶Ö$•pæÇ)É}«…‘öÎÚž/ÞÊ*žñz:ÆA.PwÔBDNkÖXž+„ˆ%tÐð—t'é±b¾4•<·Œ8à>X$ºMïˆÍxî¯Î’4öo>À+ìM¡²X¦'eqswSÉ í•{[×È>û¥J3›P´CõKˆ©Dñ}©%xªˆCmA㛃⦨tW½íY$epÌŽršu»ý$­†ò驅˪¿”e[ë¨Ãæ/8•®o¬ÉôÙK¸ÔÇ»Çe´[¦ŠÂc¯û£·õíYW?치‡#-©'‡*Ál3¹°o >5º”?›,ÁŽ[>çkSV¢­ËšÆg”À¦[_”Ú É½ïøþØ=¿Qr^ŽãÞ‡îdTç(†™¸¾Ÿ&zmA¾ær²%ãé Wµ!â”d$R hñÂØ¶ïÔÊÛš×bt)zbµ©ü"I²1XÉî’†0’éGé¶«!VQ¾KùüUå¼” + å¨Ljº4€©â¡Ãf÷⥮ºÓ2¦¿¥Xݤ¿Di4"Æ#ò›ÞÙ¾±4D¹qUgzÉœ1ÚöKŠæ´õ”l>"B›®ÛAåÚ韰T²„Û Bhû?4ïi ªo¸ J;’ ,é•H0Í-ÚŸ8Ú4Ç!T1ØPKŽWꬼh‡XçS'¤âã›3×<¢¨‘™vB秸Ñʲh4üšÜ/-œÜÀIæeƒ1¦ÃOËpa-ý E¹3¿ƒEóÌ]Åàü‹Zô¯Jáµ²qùðºui9¸ËÆŠ6ö»‚Þ™•wI™·_X³Àî6¢üY‚ºÜ#J߆ÍíŰõRXˆ+ÙÔ4¶JZc޲( \‰±w³ aháù’ûžÏ¤T3Š^óÙÔß«0¶Ü½øãTçTóõŽ™þ~Ìšévÿ|ÐäÆ:ºUÃßø%´ðTša®ÈñIÓ«—õÝâï «*Æ¿´€ö¢ýË”sí\]¼Òöœ³E^%à¦ÿÐ5Ž{-æ_J^E%åâÎçEBèýVé†û>pÙm½<^°Ä†\)Ÿ;Ó½°GÃÅG¨zæãjÙ×·¹‰ëÎS¶’“sq…ãékä`ÅÆL>Ø]~B®4¨ÎûÊ6ú7Àø/ÐcΡµÅhÛ¶ zÚZÖKP´ ¶nZTl º˜sÝ TÔjg¨>ÏÝ€çAñn¨ÈüúÂEÖõ ²´‰…=ßË f6›‰©Ã?âÓH‡j8ÕXS}©o_Q•~iN=« þ"“4ë¯à/&âm’°`g¸6¼X•rWá[ŸÐ8èœU¤€a ’€WmµCŠ\¹Æ1ös<Ûà:å}•%^>¿_Lš<øëêdÆ×Þ®JX[KDó=ûG#qu¼ ùV«ö½|]FrÁÖÖD‰uÜ5¤4¬¯UJþ™Ê¢/±3»ôju‡›Y3­_X¶–«ž6¾yvc˜¯£ŒÓ\£O6Rs¨Ð®…0AoºyTCV7ú Öè=Ћ¬|šI‚‡¸Xóôe÷S(zm½¨°…@„èéDúÊdhɽà"ìqlæ2ˆ¦z¯}–´#yhÙÁ%ÿØŠ©ýeŸ“fk1×=_X„¦hË ›ÛP‰ª)½‚¤ #ößÌh “ÂéÔX¬¸¦BÇösmXo_Ð()z*>kwE8åðà P` q.] P"É6GöZüá¥ÌòÁ/lk“#-!Ô(¤gš´4Ëm¬MC:…öÎN[R7!BûM±Å#æo&NyÈÀÀ|–þ“¶uè‡ßÑÝÈão߬ƒJýÂk(³&â‚‹XAöbk[ÎA£âŽê¾…q#ŽTvM·eú„«%6"Š~F”;ˆ%ý¢õP `ÙjŠxÅÓ÷%–Ú~Ç­ íº”&¹RFŸ¤zj„58±„åp7Ãx%Q¥%Ïúz¬‚2 …ǧñêX¹®2rµ¿cï9±†ô™CépZéX!Vµqµ±ÅìU^mà*¯A¨“Ѝý]<Íí™Q0´ =¶`ÝþÔ¥Å.˜¬ï–,cÚ aÅ’‡?[šÖm¶‚UŸbУ‰È–½ž.üUœÔØB⛯7Åðl¸¡¶O#?Fd—ù${`5ãÇœö\3ö€øùÈiuæ5óí \„|_€væ¶÷À‡ úG|ÈQЙÊtÃ5:‡½½‘•ÍäïJÉœ\hì•|𠃪ö Ñ>hŠƒö=.V Ì-¸ŠOy¨˜»‘ |5=6ã«è³7çÁ‹ñúY¯÷•ðÛÅ/lþð‡ÁiBßVvæ­bÞ}Õ<%­_añm™&Ph}ÓHÃç +Ç7ÿÄ^IkkËÙ*NÏ„ÝÖàkó._¥Ê /zÂ@pgÙÆÐ&èëÖÅ_uÊ æk”¾vÔ÷¬¼g¶gÉ—ø½ "ÔŸ*ÃHŽ¸ŽŒ°†Ax.ÏØ5Mö®ºDI²Æ[ØýÎϤ`*ÁƒŸöŒCå6u÷´ɶ¥s„·¬/7[”ZbrD£ðsQÔüQ—±÷·,Ò‡¥Cžîtµñð–s̈û„ËZðÔ¶“ÒÂò÷;c6<| …̽éô+ޘʢlžlÅÔ¡S¿Þ^ÂFÕ¤ÔÍvÚ¤dèË+%Iø Cë¬?SR® .5ü´TTFú\.çáÕŠ¤2µÔ×9úæ%x›~¹fÏmaÁ©–àî=ÉW†Ïá±Þ ÑñC^0`Nx­g +9pñX‹N8êœZÀåV¢«’¸ç• Ã?²7®" *{ ä´$c²° ¶~·uî™%_sº‚NSvy ³C#P•Vþ¼ä¦ ³¹®l¼ÜwÚ4lÏ"Iz")™ÏüB°hÛ…±ƒFšÐ·¡³hV¥šéõVì§äå3>•ñNçÑ«zÍ3¯A˜>ø-møkj§¨‰|p–¾ÿ«5õ_¤$Ñ9¹äH¹:°c§µ„>o¤%õªplG¥jû'Ÿ;Ãý)¶Í²¸ahÝÈoR0Mçþ÷paˆõXòCB— BÿY¦Ä€´õ,ëbûó®íÓ®oIñ Iü>ÇrbI"˜DBý¬¬Ú§¥<Ƴôäñ^å}Pýzmû¶—aßÃßJ^ù0„q9s:WI»ÏŠÀL]U Âyû ì·Ò¾•N9)^†Ã†š™Ã*Ž“ZlPzÇáv|Î< -Ís.¨ ô@Z(\ÛÖÞ»Ÿ`§Íç;—I¥Ú,.Q¥+"UQáCŸâ´µ¢ös<„\¦‰ß‚*Lüê+V·³®r†*Ô’¼÷ŠéBäëæ†¾i%Foc™ª¥™;°â1ç³üP–|(RhE2…Kû®îÓNh–Ñ,|gïgzkä(¾Xç—{é˜[ˆü(‹¶IOq>/ëž=Û:ÞÁötÓY[Û…h»°,Þžƒ¬Áž”mû—Få"îÉ Ý„ØFªKRí.¦ƒï¥PË^vAಃ:m’Øùž® oÝ×ç.ŸPÌ„ˆWÐpŸÞøæÂŠúí4Qy—AušÍÒœï ͉´fJÀ[𿏏ÁF™`--p&NN˜ae™õŠR­Mf^x68í–%bñéÔÅ%ÕÚëžC¥|ýl·ŽÿF¨‹U ±'¦DèŸBë:(°’P ›î!Õæ]±Í¡níx>Âßú‹ðš8Rdƪš“¾å±«%§ÄÒ&K ÕLVܲ¡3rº­=P/>lñ47^+Š{\!£¤ª|Ó"­þ4˜ØÍ{mÀÍ\³¡Mìí~\Y°í9,è Z~FVXNg =±Žl…ÿÔv}ÞË„ÿ-À“ñ»J‰m3•õF¢—’:`VYzýÖ¥®³ÀWÄrKƒ —øíú¬VÀ0j'ߥ²-×в¹ ÃÖN„t Э,^èHÎ/˘ç1‡ý€Ê0Ä>㘠8MAö.yZ’¶þà8Ô¼Ùh‡Øh¥›-ªj¬pˆ,Xù‡šùÛŸ[R3ç&ëPd“‹|+Ð]ø›HÖ]·½P@Júm§²´Á¿ÐBŒôêï8ªÕ¼R>Ê‹OFÁÔ£ØÃÀIö/àI f¸+&Jÿ«6’euþ{|ý÷µûÈÏðd,qµ•Œ7¥’fÄÕmñ¤u˜-CÀå™VܰíZqÀýoø ØØV‹Þ@ˆwí}‡!¾üùݱÍE‹ß~T-;ÕF÷ÉÌ z•Žø• ±nðç{§ò ü[ºZñw¯Î$|€¥‰ù!éEM ¨Fwêl{¥Eãl4ÊÑ®v®eš©x9w³w®î¹³ DÊ:©ÇÜÙn„Òw4ƒTC›Á§÷Š“Ë»¬êË“y(¢n Jð»|%”h$Ò²¤­Ë>55ô›Ì'xbÞ[Ê–Xóa·r_‰ï˜êa¿UаÆoË0 êöQµþ)Ã0ÎÑz°Ê˜4*‚}¯mĈéa¦¯ ¼ß‹¸m*5tÇÂ-穜/ÕXwÃrô„‰gÙ°jxœ²¬ªpï bµf_®  ¿6E=¨)Žl™)(râÊY¹4¶Ù2.‚vÔŠd?öµ4ÁÙ¹fÕ¡b嫨Ä\mÒÛì í//‹H‘®­ù\ŸÈ¬k`UÙ©.ê™}Ï}[#Gç&+S•Dó8E°ID3 ˆ÷9gO1„:D‡AË÷Fâ<¡Î†vUW´^±ç‹ô Mê NVÝYOÓ¸Ã`iî‹Øû™@¸¼wè:/}È>j|Çf£;Yµ\á³xjô© œ—‹K‡[m‘Ø9_LŸ-:ÞB/IJx\§>Ûaü‚¯3RG¤ÍÒò—¦Î·¬<€@Þдã/þîóhâîižAú†|§ªË§Ÿ¶KF[¢×¥¿5+:4Wuß$}wE«Æm%•ïg2¶MÞÉ•nV²Ë[–ï}¯s’Al3¦¦G䣊„%–Îxƒ}àòÞøÁêòä;ʉNH¢-;9^¦Óì6szS›ÛDr†¯@-0=¦$/hæ«Ün!ÑÍÍ×BáôYë‘WÖkj³jRÈ•n0ñøÒâ2k^¢|"Y›Á¸/«¯É®Èqb1Ä]WAž‘†2,šŽ=ÿQ[Ý?eQ‹ãk`'ÁéIIö¢T?“­>% K½Jnho¼ÜŽd’êf*JZÔÝ˯¹”4™x £‡7‚½‰“ýÃA8ò@Ï´W+—ežl uÞü§™¿ÊàHEo­Ø¥CµÚ’ø¥ÕqWñžÚÑöšQ‹À&1£–’‚}Uªq¥u‚ƒE»/döª“KEOhØ´#×S=9ffá' Vê5šÛöÙ¬‰Ò5iÌb[] að¤8šõU‹Ö°O…r8ßð2ì4\kV×ɯ͵õ¦ñ¸td?l÷xØ!æ¿Ù&„ÁùC–n?JSœè™ó÷§[–:YÛãTér £í“ƒí6:Ž}dÄV*i}çâ^Ù1èÅ 6;ŒØQØÒ!!t6»¤2=²’Þ(m´o—1~5IK%¨Í'È’‹“!¸$À,é¹W£Ã!ƒøçÜŠŠ¢[˜2J÷ÚIksÒ…ÙöצÄríQyei¶Vodž+ ÆÃvbÉ›IIëVÅG¾€«L½6ä†Î(¿uu‘¼ª!a¤¸xʆ‘ø\»Ùª¤™ŒQŽÚkÃܯå qÎ+Ý]w ‘ª^U¹ò2Òàåü%·Œy€eŒ7Pd*63™±æ(õéLHäøówÀÐ †SB— âŠñØ¢©õ/1t-#Þdud?çﺲmöj€Œü"æÐ¢­þyC©­¼½Ã,¦[¼]ç…x .YªR9ó¡©"òp©ÂìËEþE¶7ÃÎ ®l¢Ò¸úfì—Sð8¯]—¹þÕ.v5ä…²*-¹ûp«æBA⾞aÁ(ö]"×EKÄÒL•PxA˜a¯¥9p8¹,ñÎã+w4âè†èHž³MÝìu£–Ò„Ú¼u§l{¯Ä݃š¥&%ïõ¥-:]ûhÂÕ†c^ž5e'#ñD¯IUÓ!÷†QF‘mÑþ@?S)ˆö9ÖéíyN¨Ò¿Ìå˱[Ä2äÑTw£ìNìuSàFVÁj7é\Ú ü~²µÊåÃ…†C2>]Ë—é‹–^ÝvÕî…1?†ˆ#¡@&î1›PŸŸuEqÌò×çÕÒ”H ‘7@Îz³HJOÈ%›†zG:^å,Á’vFQQ!µ±GT>¢„@¾–có­›o ¥ßN²6oL„`CÆŒ2gòïæu°Y‚‰ñìK“ír3ð^ÂÅç}<ÏH“]ö¸—œ÷žöôTrd{ÉáôAHŽìq/9ÀÏç5›¯ˆí8 ù Äó§ü8Õ&Ék9Æi÷,Ûû™ú¶~lÖO§÷â j™Háf«cË ©ÈÖy<,_¨`Ö~idìl¥¥‡1ú>;žTÝïðB[J.ŽsµRIΗD—Éÿôùµƒ{ô˜ReŽ5™Ë´~C½s#Ké¸W£Šô íNƼš:n8+êêE}?Wšsêã>Å E< )^m”!Åÿó¤iwûÔxiº’»&«?ª¢&™¾kîäP|Ä^@Rx±êŠ£aÀ!…ºÖ‰(2‹Äžw7Ëd ža¡ïuÑ+û£÷õ i§‚Žö›Ë½ù¡w+g8îÖ¯&?Ëgµ©1ld÷åè~¤B8Á%hŽ ÌÇ7Ú¢ ~ /Ã}дrAYÛnŽÒe¶¡Oïšr®ÊƒHÖ\Ÿ\©æ QV5}—uÏi°P²ì™Ðeôέ&‹ˆ¤ï=ãl¿¶HE Ù†ŸîŒ÷¤`|–»Äa[#Øê¸l†-0­ü“f?^žê_6?,1LˆÚÂÅëÅCK•q’­ ’‹Ý%Kœþ†4ݹz¡4“ˆ>íë½Å–¤N«#Ðæ´;áVè¿Ç-çfÆv ½eçº2åå’¾|,ƒ®ua¤ûºy²ËRâÙ”ƒt)<6T£ýÒæì)iλ±´žå¢„fÊ(Yw<ݪ¨á:¶Vlì\Èò]YœbÏTRï‡îƒñšÄ5çîëÃËì89ÓÈLÅx™íÒRú˽÷E«»fDk%nìê«Ò;.¼#‰w „Óóc‚*0ýL9ÉdÕÈ/Øè9)Äå˜óÒéÂãHšRÎY"%ÿ8®Ó½`¡;\±ŠçÆ›ÇéTrÍd±jw]/ãÜP²},Ãp#gÿx¨8¬®úü¨åK,žüY¥×¶^74#Š4¬\L^íÓØ‹q|Õ ,–N™óA˜¡œðæ4ƒÁP Ój=’Õ8°"°+°ÓøìKL§yè&ÉéöÍ¿ø8RGÎÌœ¶ÍI¨ì¸g,tGdIy¶“Ûp½d€¡ÐŒ´@7ÏгGÐ+j'1ôYÚÓÆhÆR¨ªÖA4ÇC».{={•EÃÛ„™g…ñ¢§Õ ý '”]Ø*V $]{€ÄLoéî»Ì–ׯwÅ={ècŒ‡"äåi_‚Ÿ²æKrñséž9x(Ê™9Ÿ%gÝ—"i!Fªmš¸+'¿ñþÍßÓ“b…ÞN“4¯¢×ØUJÐçwÖv``þ6‚£„2ö!™ MÉ8iѦôU;oè1¯êr^[øãÍ­‘ ͆Tºui/}-ºÞu’¿yè ¯˜šŸëOëéà‡«´Oʰlî±%Ɔ(vÖI€WÞ׋ô‘4¯ÿìÀ‘-SRÝÍð貉uÃïB 0u£ÏVƨtkÀ|ZÕŽÄ1&vœ´»ðîªO ¿¾F™:PU½<ß §Jî‘‹ºû ÷ËQÐÑc) ³æJJù^°F:Œ½w9„C¡ðöS#éKŒøJ+м%€A$æ3c墡Ùîë! ˆEûмë}„ªæäšosÇu^N/÷Å€ñ·—à0ÄÅ ötÞRZ‰‹Ä-´,»ð×» – Þýõç÷¿âp¬eyx©&ÿfäóÓ…2ó`¿IAÓÜ]ºÝÒi×C¶®f/<©ç¼‚Û÷8d†‚-ï¾Äñ8»IÞè-Öõ§4ÑZÞÓ Eا×Wå—£µaÈÔH{énJИ· µá …º3!_þ^¥!/€Àìݺ—ìÁÄú¯$½Ö¬ÒÚVMÕàÎuÖ}Š2Œ{‚÷,Ø`!Ü©3 ‘¿‘QW–…Ê\=OïÎ+ûÕ’ Ë´¥ËY‹Ð?Éì*Î\]MZ¾ET#óÓ¦©íªØÔÞÀàúuul=ãFàéBk „ÅqhÒ)ÈiõE1»;"t· Ö•MqfýÖ]dtPÍô-̆ûÒ¦'žF¶`Å]xkö1™w[Å%ÈÈß`!ŸýöØXF)ýþöÏÏ3ɘúVε—¥<íÏ'¬ûݱËe——nXï±A£E€ß ’Ĉ%?§Îó~28©Î©€zEçTº5HŽëJ¶Þ´r=\³Ä•e;”6¦8±Š_³ÖUG¿¸˜¬ðô|Ä_TJ[Þ â.ËÌ+"³†G?bÿ`†`ô}.·u>íêо '—5ZE{(Xhœ“’5 ùÒ?Þ‡5s3£q¥Ûô$´{$)Y塌Cý"IBÛ¤>;r^5‚ñ˪ÇgYƒÍ¿”¼+ç´Ê—jž’Ö´*âôìÉ&ýŪ_äíw#µë KQ´“o[8µì÷kªÓNöl˜µ_ _œû–¦BüùY:’§W›_\hn²¦7>!âª7+fN/ê Ózw‹Û0©Ùdu’sØ£Àƒs¦+lú½Îó{Ý&Œ×ašZF:£T ‘§<[™GHÊÁÄ,úø†û ƒ˜ÇZŒ1RŸqnóL„xhº*Öé¶Ð¼¿íà³n£«è<ý$¯ÇK±ûÀ§€‡'•½C“Mu_n !¢ \¼Iá,!¹»kÜ=÷_(¼¾ UæJ-¬[DþùÏÇ`á0”àFŠžÁÒÔ¼S{ÎHÓTvÄiˆ7›¤Ìˆ²ú¦:ÛuUfÍ—Á¤™YêD Múh2±ý" ©(§A޽Ɵ…/Š¡dm|­?:k³NŸÔNVVûu𕎓+O*v'òæ_ÖU¿W ˜¶c[ç¹ØHuKÚc}#¢—Ë‚ËÁ´2öÇvÓëeÅÄ|ÞÎò¶¥¢³9C¯g;Ž$þ‘Ç–GMüó_Z€mÃ4´"_ÿ5X·rÜrïj¤¸jÅô÷«lÑ{z7Ý‘ð4/NÞ·˜òUÎ6H3§Ó;ã¼8G‹\×P48ÛÌá»W;¡WdñKžÓ0<;¿øEÍ˼áÒöìÐ*¦–ÆÊOÌ/[¿î*ã‹X7€}ýÆš®æþÊ/’2æ›'D&»ÏÔ¯`~½%EA‹W˜q ï’Ýê½X\ü²®g}µ­|ÛÑ,DîpøÚ°«&¬r9d»Œ6Eýü²MË»W´ŽJzΈ#²À׌˜]JÁ†ÛßÌâƒ[¸ŠÅ\â54q[Ù¨Ov_j)5•ÊnòÒtÅ4ùW•íl®cNð×ã~6Pðf.n£HlñŸRfaY(RÍ= ˜Vv1$…ýø’”¸†q÷â0T³´-\Eøæ¢{>r¥ìÐ3›Þ¯ò ¡ä^ÃîOCFysË£–*-›Ç»*Àçj0ÒÇÙ)ÇMq~©„µçi‡»E‘½w¦/R<_FД/ÛÓÆ9ß\ë²¾Ñö͈ '.­øÿ@ñTˆâ€è¹EøÏl´_^oðÂÞ3w¹HÞøþOõíå žM=hZÃÐd¿…•²Éöp…|o¤=uªyïiOú†7Ò¼ Ѷ/ÂØÈtó€,Ÿô¯©ÞÙðgªgŒ•¢ä‹â¦åð‹³¸!Á—å†Ú$äÐMn° Î T–Ä—Lw8-Ö·œ&&õ(Tb˜ìÑ IëK…ë-Ú9x«Õ9ê¬àÍ“”·4ý$õ+Jš$é…±D Ϋï_¥=IÇõxJ‡V°=ÊW5ÏÁ折¥›gzº1ßÍæs%Ék;_s±O®áð7‡­ÆÃ¼Ÿxè@ãëåžgZ’ÜcÝp%ÄØ;k{¾l”"£ˆ·úö|/`teRiLöôjã÷ÈꪨI¶ø&YfÐt©Ê ðÅ(Z=Åg: dºqEçÅ…UçÞ‘îlÉ­Ó µŸOì4žyú2þ¿ E F(u¹×P:Ë;±q¦[ì§ ü BëÚ*jf~ý÷€HaÎÊ1äÎ? §Þ#XJêõåÂäŠ ~Ö›¨Öº$Ù×™1=ËÅ ªèËLVî- r…»Mç .;ªöw6Œ¿ïòZ¯°+Žé)‘â/çtÞ,‡?œDÐ<½Ñ1\—Õ"à]ö{>˜è¶Mت°½Á^¾z'öü``8Æ0É28ÜgDSÈùv^PZM/ÍøB8GmPHNõ þÀO¹GŠ»d±¥¯)ž]Úì¦ »ÍœAŽO¨i•}^¨’GôÁÁú*õÚa¨‘!ÓÐ .*Î2º‰!xï– þ|ï2š@»ïÔÕôJ‹ÆÕf İ7 ì­ÆàNG«wwGwç:@Þ¢«zÊ]ÍÚSH+ 1ljR•ÍîšÁð²­Â󟑸¶ùY)>Ðãªÿ×ïu{ã®GÕoÉ~å[§<µÂvŸ°4ï‚Ò7OwrüRÆS#DµìÒWÂ̯:¼BIž§g„†ä\[jöØl[ðç5س(éY‘™Cc´0·ÉðÚöœ3R¹ßSù¿A]óɽä­4ŒûP?R~–5 u2;‚ò·)…Þ¾ž½8鑸Aº®ýMv9¶‡™ãñu&V7¾/͘i‡urfDZÔC¸'=¾íi ½ºŒ›óüðÌAÐÞ(›æå!Lï93Iœïb‚•`Úys¸7´wºµà0Mw»[CH8#H|Ùe^Ø'Íd6tüÓ:,<í¹G“€/øÓûÆ÷ïò˜Ñ:p¬ÿÏȨðÁC!M:^7ëyïݶ”Ûqì |$p=šn ÛK_p¬zö¨;úÝec_häßh|ãÐ?“]ðµîGvp×É.$ÏÂWdxþÓüü? vÛWeOï ô7ËÐ’2ÏZ’$Ï.~dt8àXÌ3JÊUkӬ߶ÙÅ3gh–³ö’¥¦¥ÕªtºæmiS·àz®#ÕË« aîãhú<5|IŸ¬S–¦´x¹j¾’»¦á¿  Þ–ª]ÇGÚ‘%¸5ˆñ“s˜N8›骑{ý[ÈQß1‘•}Ÿßìµ·|^°Œòó,xIÚ 2ûÐèörúõ*Õ‚M>ÃpÒ?LaѳQ¼$2@(jÀ× lY‡0MËåÙ€›™LV¼~’£N3wÃóÓ¹¶6™ÝW·Ixü‘IˆC«ÙñAñ†’›`§ÕéˆaóX¡ª…fç^ÅÍ÷ânײäO1yYìÉmXÊÏWšÞôó,‡ÑúH°ÏËS«]‰¦“ì—^˰h¿MTßÊ«d‘A–ÒH‰ÊQÞÝŒFYiû%¶yþ^MþJËç«+›ù¢Î'©õìtàãjSwR£q^¬£)sd®¦¤Zô-ާW‰aêä—Í÷¤D[ÑEK òüšÁÀ"˜¡ÆÞSjÔ4àÅðA†=¼ øÑeU_¾\‘ÆÍôõsà™BZ–Ô¿9´ Z7¸ýz¿…3œ‡Ï)Ý’Á»ËT#Ñ®’*í…>/bŸôÕÉçZßâÊåÌ×n3ÊØs]*„'Ê>;Pi]Ûcl>ø+P xŸ“ÖX°L>†'Ñ_þóÓ»åßÞ-ÿñmù¿¿¼[ZFo è" $Õf|W¢W¤¿WÇ·ŠëH|01=’žŒbgíya¿ 0o&¡¤,wÖŽ$寈8P=¯–iî?½ÐxÃê a'WÅîHQÔ©Ç—SÍ66³=Ž“e§§vØ·ýyÈF8²¶)b ¯ƒÅ4h¥ôL! ]Ú|´ä#uê*s×{í²äwA9tÝõü“5éX›êþ"I²ŒÐXT1ÒÜkÖ¸ë5Ïs7_7Δ“ÖÇmÿ|¢O æò=kõjg ÈÜËCÜôÜä>éïØ4Ê¥;ê™—¾»tΥדÁº¼¬Ó+ÛDÒ´$cÔÑXD½¯#1¬º§ñhZ£gM‡®¾ôñ¹:®¡2ƒ·õG2èj±Ñ¡Èø[ÿÀÁ®¹ H~ÝTŸvçµ™•¤¾®%/å©mÒ“?Ñ<·„u]ݶ¸{Þ&ÝõmX¹÷’•rÌbGß&uNÅç{‹w2ISÌbÇ—œ„a“®¡™˜#JþÜÍ—EƒûÛ"%q7–í_m¯0 [Qò)àÇ Äê>(½ÜÖf¬(vW<7dY-´PËQ;éž´õDZ Wþ)·­_5xm ‚`$k š,c#!/¤×“83–Rƒ#v±¥NºÎ¥hMB!I°û±Òo{ügnËÄ+ÝKãü¤—Ðk•?‘•àÉVÿnê韼\nfÕlþ[4ý±Øì%Ê£tj¡ã5µ)éiH6YÅ7ýÓÀ C·¸3XU¸¬ªŒßÚ ¿& b5= àËæ±Ïm˜ZzÌ)ë`!Œ à žóö{±6À9è{¶û^2NùÇføº5ÕÊ8Cy¬Þ̈ý± }4u¯cdä#Æ…›2ä/%KÛ:)ê<üú<;™['VÒ›´µëÓ¢cÍ9Å–ûKúòÀûy¬â+ÇRRÖ—E’ê«”¶aSñK_⺜}á˜Xå”߀e<ÌıÁÀR·q@±]ïR“b€Œ¦FdÒ]½+è¾øÌ{/¹Füý™ˆo7»õU½3Õ¬+ 7- &ª 0Ó`m‘·ò^ñ)¹Žò/Õ·,{}T€Ñ-öUö4‚Ö<çaʹ²¸½òÃ18«º3ñé~Gq“] ’Ú#Ž;kh¿0d÷0ÔµÝ>MÞjx,º •iæUþé™ ˜Èi ~ާ5=FËçåã~ÕÊUßë¢oº¾îÏ#_ÇÞ;ŠÕÒµ1š{G_[EÚ6ôíeCk[¹»åYZÚKÐÑŒ¥‰ÜÝÎp¢Ìåƒd…7ºËAD—yÌ*ûÂ\1ÿµH$2°IËšm[GEï hxδåçuµ¾è"¸‡Üì®Y7µ!N…ZJEËQv&¿ÔfìnãÔÉþïàéSÆmoŸ´Ï_†³2 t«,#Uòæ_h9)PÎbŒ¾%=a|1%dÆ”5üâãZ×üzŽAAõu8A냥gÄÇœh¼îä<`Ù°<7 R¬;,¯>ªôv^j¶îúv£ÅÙÞŽ­Ð´¬u›‘}‰eìÙPNÅÔà÷÷žöË:+ùåã‘D³?¸á§mYi¡qæ´Ó»ïnoþ½‘èŒ-mø†[ÇÔ×?Û,|T[„[šà!ƒÄ;@ ‘Îv€#„¸tïo{†Oä|Ór­½Õ•G´Ê¥fÚúf ê† ë!J4A€8¦§Y~®Ò€¥J>n:`kâêÃ<:jYråFûñ³ƒÝ ˆx›): S³æøcÏOÉ8QôÏ')‹ßla:{.r£ÏC¨Xô¿ c싞´JóGñçÌT$ç{:œ:çìÕî i¦ uÎ)“¿ {ÛÉ7Ípùd]ÙüÄ@ø–°Š®ý9ò·ËrÀb&ð×þD} zšèGô{•¾ñËk\?~ ÔìùÑ­Nèª J‘ØFtb0ç¢á^>¥ªåÛxEr÷\m;ðÿ™ª Ëþ¬-N¢2€G쇜‚j¾Qd”Îûφs%1{ãRLª·Ç…l’wÎïˆ&(¸}vëX³wRüÜ®iø³*Dwz\Åtߨ>ràúyU—tkbCÖs HÁ œAAÀ˜7ƒöw{é½dµtõ.¶ ­*2­;-h x¨rÝgëÒ•”-‘ÑÙ'¯Ä´½ÍP£ï¤é¢„tg¹¦ŠÒDÂ!j%›Ë\«R9ï~~M»éD–™ß¹ …ê_)!ÕM!Û´ÓG¹°ŠTÀƒ¼ÆWrí-梧È!4MðÊ€’@¯‡êix®qÐ`Ö™kn~ÇÔ«úákû؂ܮCÊ^2AnK?âWœQde>gL›ò30˜ÞW÷öºÝŽœ’Lªéñ:®@=ñ‹Š7×’“dÓ!Tš !¿Jî6ªÛêÙÞÛÒ ç´Z¨½nX™›ûJAµ×>HI‰¹5ô#pÏIðþÃR¿š°ò~ⵘ@ÔSõ¡IK4U ^^ ‹º¹/„0ÍÒ¤®oçI6ayk£6¾;EW YqC¢p|î+s» ØÏ—Oøh^#Ô²XüY¥Wb>­ÚÆ`a|O£ž'‘J˜lœ7À/¾Yvâµ%6ñÈ’[~Æ¡ã^U• íw§uÝûž‘4­5c‹Ú.³íEð‡‚TßÎØª‹ä)–Âö’ÊövÏeI¥9‹±Ðée–lº#ì ïÖ)¶^ˆ0P½)õüž±œIJÖ¿ß3Ò‹M¼?qº£éÕÀ˜õ£;ÝÚ Õ\ùÎûIm˜í7¤e?më!6Œ}nØšW[_ÒŽŒ˜ŠÐÇà‹-Èa£|.ZKù5vÛKIô£Ãd_ìщ|¥ 2âÛï…,¨×@zAzq7P$úùâÊÇul»ýu5;Ë—~sµiKŸ@BtŒ}”¬á'tÂÓÃ4Íñ>x#¤­Ã½<¶Uþ}ô2ïÿtîãÜOÃè¨|óªáÇ`àw*Öeê>_ݺ(—2øÿ½jO¯®™KKé…<â³E"Ñ'v¼òKj†«a9ã,_]m/(Y@wXˆœNªÌþácÉ›ÔÙUÄØÆÐ´C± Òøô!,õ_D¸ãeœàf[ÁS¥vDb…ø¼ÞÛ¥]é’˜Œ¾\¦1¸|3HÀ‡³æã}qGè*êÚté–£ ˜±ÕóC\±ôûŸÿýó?H£În7:QE6šòztLʸL£3þòÎK—ÅûÚ…Â0§#c%];cßYy%UÞªF+ºäœ%ò)ÆtR ouK‰=°U¿Ãü<6̺ã*ê9IÌy—,D*Ìy'{=ß㣢¦“‘­,W» Îb{å—P¥¤Rt¾ç÷="=[ªÈn¤Õ¯/Sz]ÝF©^hûD\ŸÏÃ7»´ˆyD¾Šíî(Ïï¶ÑŸ5L+Y -QY)v“¶ßo1ñsrà@“]b_£(ûÙ*Ê~Ýûá Æ>ê Òt1uxkZ€`™kÎÍyNÉ( ‹ŠÔâÑõ–kÕðƒ+5#:­›зZ€iG°³404 ø—BD[o¨ÉóN5¨¢ŒyÕµªÈ8@Â`s^ßòkîŒÀU/ǧ™>·Q÷b„zöàêˆÀNËêð*®´\-¯ §søÇ ‹Wg‡îìE€q’„ÐY¶Û$ÓËéLXÓ90$‚êŸfß_³{vŽj?•›ÙN·¥•ÂRr›ÌÛKºŸúЩ{z†…›Í¼í;~Óù„Céºîï\ªmü' M… ¥ƒ-¼þ&^$!0 En—¼iÂÿkspšgjû„ôU5W·]uÈv¬î]Í/Al{ŬEÖÑÙ.¤ÿFϘP$â_ûâEçZšõ‡¸ÅMEå§7lüºð‰+#ßw÷W§çœW¼Ü‹Ý{Ì:É”h¨Ðl²Ý|T‰Äëd5,sLDˆ®Ÿ@Ó’š1Û¬_Ȩžv?"@-õ4Ty$æ{Ù®`ÔMÊÍ&S'Á9äY»Ù’l¾Ål2ÊY^¡ß×LÀ@Õ]1lp·6¤;‡º ­©PGMU²WÓZLÌ1>Éɬ˜– Ͳ5z¸it]:Pï@ÑŠ'×Õ@c‘Õ$•¤2%l–f6oƳ± W·ã}±*˜üU'ê½s¢)`aq}Õõî0ëv?Áám1^‹½¾èbg™yÕ¸¬¹«?Ñ$6V»^ÃÇɯ÷ó Ø¤5ª]º-/y5Q8{|9ê½¾ñòxšV  ÎÔ‹$4töï¥L²ñaæA×Óé,H-@Mz™æ CL\æ+ÌG^,†hõr¸¦¥2ªb³» ©oé±€[+‰/B7‹”“¸óš‘b¸7Þ•.!œþg)J›Ù¬jÜ´ìiËž/¥ë¦óOKÓ–Bä¸MfÖÏs­†*Ëè«ÎüDžAŠï!1ú`ŠàËÏñfïú+ܽzœpâÞDuÚ‘û‰È.#fõñÍ¿R'½ª‚ŠæÂ…ÎëWºøµ%©M ÙîõÂyQ%ƒµ•Ó÷˜f»Ó䪼·ê؇¡ ¶@RúÿÌò\WqKïã‚Í”ÖÃ?´9se]Sq~ç\w}ÁVÐ@äé Þ2à”ºŒÏD;”„BNùûŒ`(bÑŠ,õuV·øJTûV/2´uŒ›˜†jéEì3Äá3 ñg¨OžËÁ/§Î§/#q[Êymˆ–_µÚ$Iõ¤½ù'ºŽ˜¯ØŽÎùäbmCSÃînÛç:MØÊ·¼E¬©Á½”ó¢ ¤‘UE^Ÿœ¡Ä®“€*ýo%R½‰Ì6´•Ä_bF0m~%-ÿ¾å³­º`)Mfpü%©HñäÂ2YZÈÏȤ:!€|;_þÞ³ô‚å4R¼ >%lÆS5°A@‰lEu%¨Ò‚ñζ‰}ë̬â¹ìb 7çV`¬ˆ+Å_Eþ¬h 0h'h vÓ¹æœ, mRJP¼-лeZ/”ËžáÐŒ[ø©}µ\æÔ&v¹8"ãzVU´Ã!)÷‘2Y¡­0²©“)†ìRqæ€Þ±ô£Wmìô(g7xI GPZ‹!ñ¯ú¨;úÝ?>N‚{ɪµXÙ„vB¸wæ.! 4'7¦ß"22ÓžøÌwA4™Ã°Ï’C7“59eû„,zoø Áaý›¢ÓF±­ª(T Mÿ*EÍ'+ ²¬:*:äÄéd Ÿf6Kоø·­9¼l6ˆÈ±OY¦Ð ƒ±ZÞüKÉ«¨Ê­ò僚§dñýfM $‹lÜ¥‡Û÷"+¢ÎÝK¥TØÛ|à:ZÖÅaM$/à«ã†ʶÙíýIEdûÏâ-F*…Ô¯îŒä9#]K+]˜u¤wìŽWKÐGráSY¬ ÝÁÙ@Úö[t?½²¬u2Ѿdœor–`tpvN˜ŸŒ¦(xE !µ •Ë ÷ø!MÿùYÐ3¬![ Ÿb½~3Ÿ¤ˆÀð+„yûŸ–ÛKÎòBòÌÊ…åN oÿÆF:Ü«¸XW¾O.ƒõš¨Pl»Ánè%ž\®`$4fn®,õî=•.ñÖŸWì„Ö´Í=hràðËÞBÒܲ" ôüP¹Šeñ8T÷C¦©W5@¥ÛïKσÜh7aObs£ÆÉßÇ7½"EÛZ‚ú„{ŽðÊ ¢ÇL\?ofYih`ä…®­dIdÙÀ´Îœ¬ÈRœj"VÈê´âRÃCÍ\s^î [– iMh†lMYo@ÍÓÖªžšÁ:ë;)ÈѲnÆY-*`éô,Ä26Gëlm&´ëR#кZã+DlÎÆ£†zzž2RÒ %¤!§<=‹Å®ƒQGƾVýŒpÈm·Ûƒl„ÔNŒ˜ïTÉÆ);/ˆè¶Œ;/ª‰P{~Ä›‹${ ð+¶éÇßdŸuZ,À’†Ú@Öå r¼k¨NjÀø¬Z{˜WŽ ÄÖg|a'¨/eŒtNnbÑdƒ¡.ò÷X“ÒÕ7}Œ¡¡c0YÝm¼Cíü¾«›( 5Ï?¬W%4@¶»èSüõxz¬ÉS%»ìžÅ'„5!L‹À¤–\n¬08憇Ì‚½¨¤ö °0. 6¡ ü]heDþí³Yþø‹ÜÉò—:ùµê©N 0xDZ<1£Ýf€o‰BÕçVÓ®{Ÿoµ­-Z¶[¢^ÃïÅÒê;ØÖ…ùp…_Sš¥"°(c«dd ®É5Í…\®Íɧґb®:ƒw¿ÿùOì±H ;-šŠ;'õ‡©¾ÃÆ„P÷ÁÓK9qIµÌóß2Ê6}jAR+VßÄ\†‡f¶*¸ÌWÂo>Ewа2è¦íÄ@†ø„I‰ašÂGÜ’iAÇ ‰¿‰Ù#“ù€ëbA·R8L¸í+ö—Ó4sA—Þ¨<ú/}Å@>J;ß›GÄûØíÍUº†ÒƘÛ -lk:oŒ Ã`Yó­ %žñ{e4[‡†ùÛ<€-X Ú·)éd»ÓÚ`iE¬z”Å@Ï¿…cÕŒ–ÃÅÒ2RM–khkwN”Ñ5â9ˉsƒ‰"¸6/Ðd&ÿëÇ‘a„“¬_.¼¬‹…½|ŒwíÓbtÔð¦Í¥µÇ’Vj ¬ÿ3Êî˜*® ‡¿“â`ÌŸñà@už™GÖ° «‹:®ÿàú>íÄç-vÙ|qÈ(ë3 æìeJŽ…WH2-uËÔÄ'¤ªª–¯rzË¢2B›®æ$òŒ­%´î¢!ÓØì;WÝb9éÄ7íÃÃMÝ8J¢ë¦fÜmݾó&9¤Ø*âl ð »8 €Izc»ÁŠéˆëX «5²šÃþ§„âÅ/׿›-‹i®ªqPwþÈê< "ÍV°š±;v]à¼ÉÙv¶†&1R-Ý'ÍÆœ=ŠÝUôÕ@Þ5n/šÄKÇÙ–œºYÓØ=r6ü×–6áÉgЛM wx麖ÀfØÜUk&ü‰¡_l”NÀI’8ür8@Gk.~V¥¢×¾§¡I/Ø~Ï Z%ÞdDÀßæE“_÷OûŽ›ZVµXïaÙŒƒAn-ç׈ð[# ‡âÍRÑÂø°þ0O@´ÌO9•oÈãϬó{Np^³4”nãÛÀç¤ÉÇÂBæF+Ûº1ÛÒêo—ÖÚ¬×ù·–o_ÃÂy Œ3Þ !í›p‹9@¬0›ÁÏ_]Äo±@jÙ.Š=³'ÒÇý¢”$­eÍá¦æ`å/Ë_ˆ·uÑ,×0VLJ€ø/Ķ&,&7Ô^ÙÀ3‰o_EŠtYÈa²ŠŽóº²"<áå¬ÇYÄUŸÒ‚²4")ËÜ –Ǭ—ä‰OZHÛÅ‘R–0þ¬2¸æ±Bã-•â5¯B4622T]wšAüåþ°ø¥[í*ÁàíœþO4w¥'u»Ý½ˆKïÕ³ þhS¸ÒW«áƒ¢}ÌHŽe¯éVœÔµ7‡kÆGùSe‘Û´ž/eÄò3àZwÔ–_¥‚»GD(åÙ©×Õ‹CÝj´“|z{HÈ“òG´ó£rKl¥/[‚”°¶Ch·é>—ÍcóöëH»¶ D" )Ô®Èð!ZüJ C§kGiYÃ¯ÒÆTÌW‘vŒÔô|Sí•ËRgä%ƒiPAþ…S¿Ó—†ÅSÃ'ì F_Gú cË_·ÒŒäUÍ/ifb|sÊs¸ˆG£Ó´öÿDù"½\hÚ}Ý®{Dè P˜ü´…Ѻnãþ~sÙ_BUÙ4'¢^3Õö7ì´† ,ìô ]ˆX:ßM86aȱ IU7CÁ^`&zx.€'Óí~BÊ¿dÖèøB<W3ÝK¾`<ðöì|ûQ Ú®?}t­hõ×0ó^òE«ºíLyèlj-á¨ïAwÝÍý/U]Á©$íÞ)Lðw}¡l|Å]¸à^ê‚Õg~—–æíhð5ð¯®•Ž¢½®¯X× ¥ˆûn?¥Æ2ÊÝºÝøNþ§rü8¾—Ut•¥9  úß½Îà-î0håZ=.õ õ´A‘­éÞÍ¥ºÄÌð£u 6dÉxúerb¾’4‚)¾1ç?ŽÃ_×ûC]³ËŽü¥+̾Pꇬ^ nsý²! 0)¦_¦OÑX‹ÑA>!¿‹„woÆ¢„ˆ‰/»WG°°qô†×Ŷ€Óø¸$EÆ$Īæ©h¨E„BòÍ“f=RÎãÂ|I¯;n3§C¾þy]P ”©_/µ^‰1øo"72ñEÞu°YX‰ôʺçD4nÁœñEl­LË´‘IH_5 ÍHv¥­4܆›¦nòôþu4‹{T ÓÜñQ+qûwþ‚nY5_79Žà…Ú[@—ÿï×Q}ï`M¿l¼J\_7XE;—ÅOâôˆ4Bnà‹úïʆ§ÅCÐð§ï žk[ ŽmXI>ï]áKøZ8¼ Z œµ/Û{ïwRôô$6ì;Ž$¨ü/°Äø Œ» ÞM`2=ûz˜@ZfíWˆºËêqp1ó6iU¹à SJ²¤í…u)è#DÞ ’qçá ö…WC›çu²¬”«9ÇÛ¼8‰’U”P}ªD½ù¸óÛ²a_·x%?kÑ–Oþn^á5ÒÃË]·mô¼ó qDÖ£Ng[¶uúmãs»´u–¤ÿ¢kHûu‘-msß%ÃyUQð£`,óòÛ\-oÚêë.ø,õ†‹‹»îƒ¥×],Àgpž’ ¹u÷ÃÛ µB}œª‹q:DÆO"ÿ:u‚W¦/Pià-CÔÒ·/£ªbç×Çõ ÞÄ;¿!"¨¯?x?Ò+$Û¿nÇBáw@"×ÁùÎ T€îÙ_¶óº[«Šœ¼^i´ã´eôë<}›“•÷ž“ U¼]\à£,¾4Šm™ö¬høâx~@ÿ¬ëœ¶”GIAJjGýÝÀ\·)ßYì(Ö)!aŸ•ŒmªmQSS¨÷ÛÑGÐðssæ÷mŠÔ+ƒéêˆéÇ‚-³9w@”~iiZßiû Àkœ:]‹}‡"\륓†Fψär Gó3Êo¿5 RçEHÖÏcõe0>–:™]˜†:eÃ9‚èÆ2†B=‘žrãPÞÐAG-|È3ÑIæ½äíæÃÂñH[ð~iYÒîÜ…Hç=ré pN¾‘‰McH`V ÇÍ“É*γðM·‰D¢ï:ÕñÅŸã}„œ^Ñ”Ž¾IEA™#Lá§Ná Hö£×#¹H¢|5Á°;¿$/S–ÛÝ© ~5Ùe÷8&x—å0‡ŠDÐjpñ±òÃæA4-­Ïª‚FáQµÂ1l²Â$=‘¸¸yãIÕŠƒÁ›¾¢Ó°¨BdM¹‹.ä’sk o~!Ò“îè?ÀO®âÖ)›`ï’ÇØt¡YÝ÷0~}FBziÍqºa.£M‡»v_å 1 ´›J/Ø»ÁÕ ÑGûøEг¡„N ÀÞï‡3º_Bã RR­,¾Æ_ƒ èº×€T*IH ºGBº® h…”-·JÌUèBœúPþôü34øàú.¨·$œ_m†p‘&3Žã˜Œ<ü©<õÙ\jÁþªç= ªRøs]¿Š7”¦×¡6em•iêìû?Õk޶6Ú"Þ>¢Üã7lQ¼¶Ÿ½T¦QŠ”â/{™Ÿj„ëÙ¢;<­…F×IãøJL’Êç¬èŸV%ÅSçŸ qœÛîJk€œrd4`l.ñÖs˜5[«ÔžHIUôXEGV¢V ÒÉeFRGÂ~54÷2e1h ¼!Õ 0¶=ç’3ŸÁ›ÌP°8«FýÀ4ûZ ÊP ge¤€·G…ÆYzÌ„EiªÉ8+þqñ;Q@R@ÃéºJ‰úëÒ,Üɲ¼b|£Ï¤¿mŸ”µ Pÿ`¼òÂ}ÿCˆH€ Ã6qpò¹hÁ\ÖKzȰ*s>•Àà͇d_©¬4$( ‘RÐ65*†ø‰A{ FŸ]³)#zæþåÎdkSqÆ™©S³áÖRX0½ÒCÞÉ*­o¹”¹>dýKhg‹R Ø¢ÕmN&Sæ¶` üòÁnl¤,¢6–©©A“»H=?JêŽ+«ÿª˜öØNt#ÅK´§ªî¨Ppo» d¹kÔÑŒ_Ù¥‹¿¶µNo8‹÷ªT¦ïVÌ/*~¿OÁ„Ö7²ÐÖZ-ÄK9}1 ª:ć›¿ËÎÇhÇvƒ6ൕÉpö^hXˆaYwމ׃ž¡ÿºí„°êeÌtUÃQQ¼„ L‹(©jiwrÙ5»Ð¼×eâ\Abn ô4ðÿk[Têðd0e.̳+Gþ+j7Ò*2uý<º^'>7›f^‰ý¸ŠvS·uÓ=ÛóND‡ï=å]4lªÝ:,¯¸-{:m6—Ýù‹žúuÔõõ ½°¸¼ÍãƒU\§bˆZ‚VÑzsUT%RF>'§ÔÔv຀XÖ“òG—j<*éPÜoò³ ¥¸Ô` ñ‰4-É—€Ö{[‡tùˆS4ªEiSAIƒ–l*jl®N±°Ì)›R ¹¯²Ä»7°®,JÔû°|yC(ÙùÖÝôˆ;Á9í ˜*Zœ|¼#m—ÙýWFîâü‘d˜—Ãe.~mð3ÜU“MlJ/òþƵ®M1>ÙÅ3|Gÿшý^êÍYÚ1isHðÄ{æ>˜w¾€Ù`}Í×6Æäï2Ím:Gâ/ñフKƒ‡¿$8Ü?%{È"âŽâÕ#Ÿ†‚à;cà°RæA5ø‚j›OO?È\Ù~£KÖjʬu åŽÁ=ë«ørc<¸‰Õ^¹< ½˜‚«—ª²•-¤þÑæI<~OÝRÔs‹|ÌI_Ü.>”2Ýfã;‹¯ÿÑ^ ¿¾¬$·èžŠæKª˜jàå’¼²ªÆ‘>‚‘ŠÐ^Otøu?‚앦T÷>÷:ô%Sfß«¶]ä#”`[ì*¨(“úa0ìÎ~´¹‰‡ ·å ãëž~ã4;ƒÓzÄXl”Ì)| YtÆëÿýý÷_ÇyôTìÝ“AO‹?X¬ÓL#¯c–Pd טúª'ŒÌYºW|yµzÑ`¡ Ûþ£;(ä»!76[e”~Û•fOdÛo‰}Æ’ÎÿýùÝUØ.„.Õç™=†ÍÔ"º #ÐVà0©’i©ëáhª‡@ÿ"Pä–SSb`h˜ìÖ‹9d&¶ÁÛ¡»7Pýb!(Þ¡&s;ÀsœnÌ[8Zi݀˅ fd¸|àÑ1ÝôPx›ve(ì¸IQÏí&™bËnÅô]úÞˆ`ÛYîYÙÀÓP¢:Ûä©ÞLqsÏðÛµ]O öi€3;d-ƒr"Ǭ… EI‰èëËÙn6]Êó}Ñ`î†s}Jè°5 T¬odñsA_“i4{®P&òKeÎ"ôÿ&Q œ$´ëê=ºàp@Œ€aÖS¯—bx»öU‡m‹ƒïÄ5ºÈ(Ì v7_7±/æ$PÐSê-vÜ.ó‰9.Öɵ‹ Ýi%rÙ…”5¯¯…}Ñ\Û›B.šûßu¹Pèi¬Pا¥´mÅ­OûNSù‘eoZ}4­¤íÛ©·§èKî;éƒ$…‚tpð¿ í4 ÈD?Z²;ëóìÍ(> K§K~0ý£YÖ©;›ÚÈŠ:$Îâ'm=-ßâ¸YpšY‡ºx:ÛÕÝèlÇ­°¦t@ÈWÄü£‚üø•Ð FG‰ô0'CóÜÐj„\7ˆµ+½Mž·“ñU™%ÈFY°œGÊʸ\It«+Ïg•2&qG¤t¾]½Š\ŸIË²ß Ï¡ÑzI†*Õ J%¿ÚÏk³^Ê`Â*Ÿ6<®Š5¦iUWªÞ«2NŸ»P&«»— ‹=}er…i‰jÒJAÕ¢/ŽMÖÖ;ùn3ñ¹„ `b¼Bœˆ(Ç`j¶"åÖè§±ÙC;œFÖ3]«E°®¢ÖÌKùÖ_Ù+x„þ¯/·.mv;WêóIÑ%±rCÒá³Õê˜ò²ìÜ9à·¬‰u§ÎÉ<~Ë3瘝ޠ³ú‹†.bƒGËc ï÷]¯±•jE?Ø€®+ŠZÚ–n1•ô_d ÿ‘ËÍ'>CL r´O’°vÁÐlDDñi~‰‡2ñkeâ:zåâ—B]ƒ)3×(\í>*‰ñÆZïÀ.RçÉ—eêoì ×:ˆ]±uzËêLºÕ—h/P !S¾ÊÌ<ã8úÇhÙ>a@gÚÝ1- 5 ñ…æ×à£>¿¢Èd!VõÛ&?]4_(¹¹¥S–pevY¹`µ—¾dà716€êCúœ~d²RÛ²MK.oYôÞmŒÖ¨gŽ·6ùÏÚmr-^,Y%z}³Ìb€ù@·­ŒšÄ²á7Kˆ™”J掅xñ°Œ«Jåà"n²š0ªÄ»‚šÇ}7ÍGCAA:”eLä­”í-à±k,A0¸Ò±Òí` %„D‰h5ò±æúä^<ÌÃçg†VW&ÂÀfG,ɵSSk¢ßtsv~¿Mo­g½èQ®~¶ ;ÁäºþíRϵNC/>¯tÒBlÔÜ©‡ÆLO&LäËsš“6£¦ Yí¹Y×ÛLߘ´ÝmÎ~Œ{ÍØ:vø‹Cj ëøÄtcȃ¨êWöb³FUmNHˆjq´â`×? c«Ç²*O×·¤*ƒ¯f³…‹[×u[iˆžÚË7]ØÃ’•u×EWAÓó°A©¡TwP zgñ@ÞA´S±œ®C|T€ÚZ/G½ëbx/8¿ŽIÚ'Übq×fëXQ !º5¶dÀõsÔ_` m¼#‰_FÝÖxY €b |ÛÔÄ à65±@³A›¾9%çÓÏ}¶Å«3®…)Û®î;ØUEçJZQzºwÇëa± ‚ÆÌá]dj•¾»ÈýÜê#°€.Rµ p-sèô=.Š dw¯Dè{"E*Í7ó(ÑÇLJÏHzмS¯Þnb1Ü=-êôfÎÝh긃´4á—Á jH`Þ¨zî]­á6­b Ðmô£–‘ª›»1,M˜îƒx7™¸‘ÿh›ôÍr=6i"ÑpÆj`M0žPuÙfgÀÅ7*íÅKszÆPHôÒV4Ôä©Çæˆ!_²Ëô½_JƦ%•pªbĸí<}K…ÔyÂâMSgDß&h–T$ëm¶)§º¥Ù¦|Kæ· Eb»ë#-ý‚:°°`ÈmÀÎOAÌQUc²Gœ=óÜy´¦ÿR¤v ÆK¾’ó»¬cް¯²®fr„R­°ÍêBã@õ‰U)еõ£©@„‰‘¬/W„]’ÝZ…@R'Û,%BÈË6 ]âA]4Ñ€Iš ^ØéAôºyÊ#´)=â “O'SV°!BY¡§I[$¡—«Aü2VfŽ\USäuiaÀŠßo3œA™}HA _²W Š2šùTµ]´!ê¶È$¡¦^Y@ ¬³À•ÕÓÇŸ:󒵩e»4C¿(°—“}ª²©è+îÀ’FŠ ¸ôÙÔ”;ýÍëí[QçËŸ‰ñ+&¯>—T¶nŽN–4RW3æß9¦~(Ô(™«¿€M×Ï*Ýð᫒ ï`jâê¾2ÁÚÏ»å-ÎjìÐ@"i…,„aÖ:Øwq´†/ã8 .N»ÎY|Œ ½Öfì¢0Æ•½Õ'htxð8zÐmÖº¼“‡»ëÞ~þõ—©N™±·1hxbÕ½ýçÄ®þ{VW?þü'þ¥oVT‚%¦éÚ¶$»Q'šÇnàÔîçcþ÷Çd^ Å4[®èhµ˜GÀÑl«MØ6´=Ðr¤iY¯Ë{æRà¼ÕV~pÑùÍ€ô¼Ò²»²Q¨tª†[ÞVÇQ\Y­~ÕúÜP+5M“¸-Ânºa,ÿ|ã|³ìé’ñ©Ì¹B&颎r8[ÃÎ¿Äƒèø”Aëp»Ÿ²þ`b§>}’Ð6b†©ÒŒîÁ³4¿Pͯ!n,k'wR6û»@‹a¿ÌçäJÙí36euÏc#>Žt?TEé“VÖøüðÕH˜%Nì–ï‚ÍoÊÅ©mäÌ/Q¯»!ݵ`×/ ™A¸Y{ê2ŒM[îŸs×Ïnýi‰¸›8Vl”—cP ôÄ×5)ÒÈy©Ã.ÛúÖ¤E…7öÒÚWC«Ÿ&ê þðllPåµùmu… ›_Â{ä´ôžÈ#‡ñ®uY(É;@¦¬Jqíáæ¸[Û‹~ƒƒÍV¶l˜AAxI<·dSƒ ­ÅoÓ’ê¥L ‡øG¯mCšÂo²L%}€ÔwžJbQ7tS½w‚‹ÐTEŠ˜©ç7ƒÞT¾‰q0°ªŸ¹ñùM¤Ø‹0ß[¾’4T‡p™6< ÔRÛŒq$jâ0 ³ñ¶K\5J2-ohF(ÏŠm!3ùR‚‹ý‡ Ãc0‚!˜Ãyí–×,щšÜG®Lw 2¨Aº¾ \]úh€o¤”ó:Pýæ×º/2ø«H׆¾T Æ IlÈqÒ³L[Y쿜8LE]}{ ù3Ô\S?}Ït=o§àÞQüòx†‘ÊkƒÌqž!P/Lî,õwD«\rnÌÿ\Q¢X«3eä6Ïùú¢E•«Êa!Ñ;Á:Ú³ÓW¬ó E ŒQWGâוÃÁ$úª`¥3ÖVLªå{Ð*lPcùÙy|J i€k쌥Å|÷UöÂá\hiÙë3"–¨³ºÁgg´WüéÞ"\ø™œ­Gè^ZtŸR¾¸ö«:;ø…W^ëS‹HLÑT¢ãø¤˜¯GŸR(ÌŒô¸wQB;¿ ÃeÎ<'ÒŠÑÛÀQY¼dld$Ák¥ÂúöŸ¿…ˆS·Góµ>½r—pe¾îší¶º™þË@ä–sX—IF|%e8eLžAŸ¹•¿ÿù—§ÅR67³]ù8ç]T¾J¯k°éq ¹Ní,I·zà)@¸Ž}ŒÄhHrJš1È=¼¡ÄBnP¢¥ó,žµô¢ê£ñØ«öãÂö-»âËÖݲæü›hΰ,à?ø·ÿþ¥Û0;ZTt}ˆfÿû+Úªð£%‘ÿHË -*ãu!ѸjÖ‚ Gê’L;\>ô,è,Ú^J€6Ñ®æž c{V4¹w~] F“Žz5ÖâY‘Ðäx_Ñ¿0‰°€åeJ¦¹„ðÁ¹ø ¸Ö¿ä$ÿÏ÷¬Ïf¬ YµV`È ¶+6ü?1‚ä„ìK-ã­lép5j%ˆnËIBžZ8¬5]ÉÈæÈ5,^†ç•]atD?x!çZ}&™`×Üœî¤aªT›L%½‹2ß!Á’ˆ™nùѦ% È[ê.ݾUÖ +¨G÷ðÏ«G;^6Ö¬¥Sh´1øGæ‘ìNЕ£Í`‰w6HxÌòÛ‡’ Ðk”¸Ô††ƒ%FƾdÿQcã$‚zè~µW¥®ïT¨_ÖÔ1¤Ù Q9®zo[ ‰ŽàäBSÒ½4]ŽQ7O Ч ÑñùÍGüØÞ‚b€¨-_‚N=Õæ$'ñOßOl'X·¶µ?,ËiÇ÷¤Â+4CÌxË sN¨UÕsÔöÅ,ekÌ&'¼ßjJ`qºéÖ]%[ $XI¼½‚XFZŸi¯N*+R(åé+Hªöñ+¾º­è›¹´Ç@Š®Ô­o˜t¬€m.]žq‰ŠMa_ŸÏ!{ÙQà}µ"‰ƒ¥Ï¶.g²bÃAv„ÕBrnÕC¼Øô"ŽN$N¹vz¦L¦§†'%Í O„èŸÓJÍÛФ!­¸ã¹á)/)È-ëgå[sLBÜSPàW“‡•1Լѽª1¶D~›ë4"’{™Ÿsr,™J¼LLr»ìxê^žHÛnuÂúv¸ÉH½"-7>f¤o_sÝ¡¬âúŸ7Ú&´­¿ALýžyË\,ùûæÑ/7ëð‡Œ}ÿƒ,.j0å~wí3çרisìJÜFûZ #ý›mKê1Z`%%x®œ1u ždQ²¬óäYéJžsæD#=J†¥^9ñî]…˜,I ù¦ogª/¸ †ºVA9„«ÞUžgµA×’¹i P[=Ç‹Š}fÄ}µ;-ùð/A@?æ&°ÛÄþpyBÅ&ÄÌ«,©`R)ÉM«Í•ÝÅúv²ã”}öÍÍȆì¯m¼E˦^´Ä˜ô<ìjcÊ·S>D·ŠF0E¾ðΤâýîcÇàÜÄ{XLJ޹ÁLXÇ>±¬#Ôîe´Pªcw&4:TÏj@r.¬Ø·#¾X˜+Ãxk ¨¡ y±3"`AÚ|Gíœ}÷Ù²0x þhHÑp1«§’–¦bÏ¿H#v1§~I\6;Ð\¾YŽs,Æg ’k6SCpÍá{¨…”oJ06š _°!VEÞ8é~þò«@ˆÖ;Ý„‹Š¶åQÐA´îÖ$Àôý^¨s T ÔS­˜ŒÙ‰±|Û¬ LÆÞ3Á\ù7}¨B¤P2ŸI-~Û>)ëÅü3dËä…ÛŒæ™oÙe(—›d^#Æ'Ðå¹gZê!SüØï,$"jºx'&†LçãÂøuض\ZŠáØ“År‡ÈwL#ì`ší¬›[DQ Lð@!£O¨Dƒ•â³*ês`:œNwtW Øœ¶ñÑõ3ì)ÿ©q¤ •kæ&Ä„(û64¯>3°ARH!`‰PN)M¯û95RÊa!¾bÊËZü(I¾ÿvm%uz]H®Ô\ïxwõ®‚_Üx±Ûð†Q8öÛXRÃðóc™f1Ö¤è…ÔØ­++I -űlTöšî&Ùð¶h¹kèߞʡº\ nK+ꃎQ´2ž”é >ª×ÆÒ˜T©åòNÒRÃŽl][\(¾QÖ¥Ë8®­«=¢ ífXµñŽòRà1   TH²èÎ3¬§|†TáØl˜”$)(øÔ.uÕqÈ>Òø%ü¶e—ÞhX²{dÃc2¨jìﮕ­Ä4„ò¬.L]¶äªª1a]`˜SùWLÚ64 Ù=Ÿ;Íeœ¬¸¹—CfçztÄ5´–ЦžáÅ5Úâ 7´ð ñÖt¦N û²¡íQ¥{–xG3L>­ÍY[…&¶»UVÒkA{ N±¤P$º¥IÏ’;d«"±tY šæœ„ù÷¦ew’¢áZéU¬“¡íöª“n͵B0ÜiŸ‚fS<¿½èð¶ê×p]¡üÒÄT3cÑ×áÁµ]O ö9 ´}¹Çª’ÄJ©ÐÊ{/jУÿ†ÇfÍ-e™ 0ó7 ¾£ñ¢¢£Ñp;Ødµ? Þ—#önŸBd˜1r®`ë2¾®Ý(áQ+]¸ Ûö‚îͲŠw¸¦‹W€QD„CG]>U4×Ç?þjC7@…6=êeð¶o½ïÞ=k<ð¹é—^äMžÂ’ô½gœÁG‹ýû Êi*¯,[𺖮„§0…ö$ø$—Üÿ] ¯!à ԶÙófÀ[SØ=VnÛ»é¢G0º`y¯*ÿMãk¿PP8õ4Ùeòê¤J/N*¢b‡õv´'ÚѺ•hI×ü;Òöºç«&B*RÕ`S ‘ÜÒ«e~;Òß‘¾hßÖ3gÉ!:âNc˺,Þ‘þaÛ¥Â*@ÅŠÉÅ¥LöãE‡ˆeKõy|þÒÖÔ÷{mÔݱ¡çêãv„߸5²ÄðÞ³¡œv¼}ðVù½Q$:ªÃ¸‰'òû3åÛŠã´øŸB_v£¯át(<+¯~Ú ¤gs§­ì-Ï»ŽV¯AÏ7µºñ !4VBoûEµ š¼ìˆUi!SÆ]ØC{Á,ÄüˆÔÚÆþ5E݉mW÷"QÔ´ðcâ?%yØLZZ³SF-7žë¡Æêtb¤¤'mú¥#샬»æ“·¿1¸±R°Ï$Jë#¿ä’¢—VâîÛÂaÑ õvÒBÆg$v¼©²¯«ßE?*ÜX¹—‘ýz†~$æhØÌ¤%ého?`ˆ%‡?’ÐÕÕêèGÛbNŒë¡c¹Kýwó!@öPôå³RådÄè8R–ÅÇðàJòýÁ/iëCÚw½ü«¢K€רÆ;‰¨µÅ ­.9ºcÉ®BÊí ç—¹Õ-%Õ )½•—Bª4_œÔòû+œÐá¹ÊÖ‰xÞ°3˜uÎçc3ï}ì5`µ\Ghœ\±¦¹m„Pxï3Å—³aÕ“UþË´“w7-ÊšÞ;±÷rG~»&€÷Õ¸`Ø,ågáÉ2iê"…m£ùsìÅ{·Úó¸.Þú¼&†®ÄF×û[ŽÞ$º +v£Ol%Afûn’! g¤„Âçd%›si^èsAcAÏZŠ,ØÄ1°þæX<¤:º%³aðä‡C“„ýŠƒ XPÈpóÁ]b½Z}öU¹'áLP‚×–Ÿ}¨‹x~ÄÏVâÎW#Œ®‰ŒÇcešÐ,£ÙöŽˆÿO Ap¼¨cί”v¡{k™o‡ì¯EïbÔº ª¢öLbÏ“ý\žà!³.í„]C6Y]°ãZ²׫+hªq¶^‚hÝBì„IP{nÖÄÇ6k´¬ðl ¯ô 3à#MCJ#ØkàwßT,m;;ÛZè&Ìkj±Â”=giTÕŽò²¢¦K¯Öeí4üÑéTÖ]wi)E’Kñ½;À`”B‹ó¼?hSWÅ3öÁ¢é4^ºJæõއRøîâ'b’úñf žCc]ÇHv7íeìÅŒ5óƾÖIò[ ¯÷]^p Zu…šy`¯ÊÌU’‚x@«H=õüîÛ¹RÈÌ2g`Ùogß\÷‘3Š ÈdôTȲ©WiVñÙnÛð’eº®ì¯|Èí5ryŸÔN=qB ~%ÊäŠqR£l gm–g4¼ª‚®O…×0‹'wl–,IfHIK"´¤–?¸¢´SG£v÷ åRÁòdûõÝùBl·eDv庣œQ•ozÌïëäæuê쉈U–o!!aŸ!ªòøkÿ_±Ú;Ö´£buˆ_Kvö›þ@/6`]í§•Û“÷€Ï5c*]?Ø ëÏØp [S²t‘ƒ…&s™¤Âôª0åðÝA,ÑÏ …ã~”­d Ñ?Ô$ŠªîÂQh°3 W}Ð_Ó¶OPüÆ;Œr€†øŽ¤=·¨dB„Jù5úëÏ¿ÝE¦ÃÂ×§ŽíB—3FÝ™&F ÙôYàíB#ð7Ú¤’œÒ¿ÜXIAª¾Ï¢ÙKvCGŒd†b'¤È4)[F×cš±{b Xn"‘}Ü/“{ÄÇÖÑw4^CÑ™hßuXµÚæÚà…mÁø›¢ç\¥ü«åéê'?=+Q¢µ¤{A@ššÃWy8Cˆ©ª4ƒYIÏ,r:& çqC$–8d6á®ô®ø†,í¹§±Œ3ûÈaŒ^ÖÒ20oåÈ€Ø/EAÀåy††YÄîAY»l#&,%=Ã=*ì| 4¸rnœµfpw}9‹Ï»× ;Å~5á°ž€L¿.ѾM- H¡-Iubj­KIÊ T²‹ñVחغ˜Xdèÿ?-!K# Gq{ÏÃ#(šþ¿ÿÄæƒ ‰«Æ‡E”)Åh@‡ôÁÍpªuŽ ™ çƒÙµ0´À%r—ÙzU®IôÕv¡=©7­Îœpo¬Ó‰dDbncò£Ž8'qXËYEÌBáó»êÖn]3-³•á1õ¡Êjû´à P“=5 )ñ\^ñ¤-ñŠJ/Uk·€7Y#v „to\jY» @Íw@IÂj¤Þ%×Z,M¤¶u슳šïÂ[5fõºF’+ËÛ#é÷c ¥hx¡b›ª mz«t£ÏHfˆÒ66¶Àž@±û*k©Ðp<+:yA¢ûè_«Á,=û`®^Œe¢ôÂPkÞ/¡q þr³¡-ž€—è³Qšò$Ô•g[—èêT¨m܆Uêº÷úDgœšawwÀUcD㮹sæ0†9Ó¬™×”@ Ö6õxù7ü—Uj.¾¹5ŽJÝ›UGë©Z&x)¦jYù Â’Ö”–Þˆ'öZƒ.W"Ž.kšö-õªa0ðÐôd:M!ú‰fCvKfÈ­«ËF«U‹e´ †Š ¯4ÓôÞˆ«eÚ‘â/[mläìÚºïP,D1Dvê¬ô¨ £“ËóDiæ¶æÓ´$£f¶^I eTjÅEP3¥œtÿÁÀNAƆºGwFX«[i6{<)»k€' $l–¤½ùÖ0 bW=ä‹Öky·]¾ÒâŸU /Š\“+Æ\G“äVÊP,@ÿ@FôÚhÃëª,¹ 3:UïK%ãè5~Åiáì¼®Í ´©ËÀ/§é4µØ¦Ï¼ã&ZÐ éh[« [ÓXAó•PMA7ÒgT„Z¢óqbyTÆAnp7Z2ÿ36›*£xȹ·áxØ/:•ú·\K™té(ȵŽï,ð{Ï\×zšËE–þÝ]JÝàન-F–¥ìÚ‰~åfH9Ìûr~KH0}õeMÝvã'XSƒƒa³Ú+*d¾·‰ˆ€·µáŒ[a­mû¹KÛ4Ò‹¡Š÷ 3×Ô¸¤‰Ô÷¢½ÂŒÃ¼v3-Ð5P‡~È_>pn¥[Š‘Â”Œá¯m ¢ëHزFž1®B¯À±úÚ¯ k*ŽŒú šeÓì7Øü"IâvˆÃ“]f$v”˜Â÷ª~Et·¦n¶’ 8F¼\·™îÈWÆìLhBé¦FûŽrè†bÒ’©b zäÍ€OxØîã–b·´h ¦.V2éIë‘(¤…½¿ýŒÏO]Â"ËýN*Ø„ÜÖE¶õÉ…¦ Ro\4´}«h·Ÿ-Žu p ¬µe·‰§,v~„Vʉ -àQTÑÆBÛ_ÁU ý‹QRúû¯¨+ÙQkˆìøòåI˜øy¤¦O÷&ºg%º3=¯ÏùÜkÖ¸ê[ˆÃK¬»¤"ÛTíðdB[¨ýûŠø ˆ ‚«“{±ã|Ù¶ ¥s„SCO×Ùä»¶}~Ò¶9Ù/?nYxo†_^<’ªËGZTSjÖrg±J¬WQh0´:Óö_s«îïÇ?[ó[ýÒN»4óöÅo~ŠÓìTZa½—#Ê`V6)<LŸ1rjºæ#u-OJJÚcT…>¿¶î^ã*¨7¾é¸¯Obß$.ñòà·x@ŒaW·¨qüè†D Má'Ÿ3d[Ú’Dè³^$³®+¿øM”ù «(\mtÄõ~ë¢ qEðË¥«“²‰O v\زÈ#pE9o6¨:ãžù}Mè»\”ß8TA0¸]‡énOø¥h»žco)Á*è=`!|Óß2»mù3¾KïuÑ+<Ù5W›HÝËv©â‹3’gìÿ–Ñ…ù"|‡•“:¥æÒj~ õðòÆü™5®.ýY!«daCRHÖ²;]4/Q[±í¾ôZä(ø¤øýò–å+Ü}¯¾Eh^o88öwo1FÚŽJ†øy°mcŸóœp-²©³°ýˆ6)Û5ey2|.ؼBk¤œN¼âYG>—.6÷‰e÷öñî]4UBr…eF¯÷v|h+îâE†»â–«ÖH†âùY;×S ýâÒÇBtÖEÃÙ¢N$ ù@ µsóò–6§•lw…xOƒvQÓ~J¼u©?¿Õæ½’ÛŒw§—CÜØp{²Í®¤B­o‡·ºOl|œ Zê+Œ¨ ³VŸÃ‘¯³F¡ß§ HBYmæí;5áçé±lªÓ¥¶?g·kO£® ) (fÎDm!ú¨ýè©ô—Œò[W7‘~e0梢õî_ ñꥒ•4‚ÖØRwsO•mŒt*>áMVÍ©hÚm„sÑBÊÄêN4ûÈp…ú•ð ÌâNç¡âÓB M{nÒÛèñtZà¡áÊ„Ë9#|œ*ÎÁá€Q¢K¹7¡IòCþ°ù¬5ËÍuîädÅV¼Êð6‘÷ž´¬/QÓó" ü—–‰€9'ö…?ʼn,.}eI}£CÑ“«jaöÞ0Æ„-Œ»Òz,ý/Õ6Ñm-5 #ù„/^ÙEbÒwbJ5~ÈhÒ·Ò)Lù¶Ø|à£Gz*öØÁ~Làc ?=jü@hz\>ÊÝôd=ïv¿|íÅùØý6+ \tËj€3ÚÙGUCÜÃÞ·? òÖþ—ùΗ+y¾^‚míüïF¤MÄ…ÔÆ.ïÍP bx+ië[ÈKœX 0ý¹þÌ»Åè mk/áLøë—ð™‚jZýI Ä)ôh’ýëäWê75Λåñœ~3«àÕÔ]™+ß6Ý•”õ5k{eS”™yhDJì1êÏä€ÖßžÚ:ð€çc(Ùu¨õÒôlœ{p=ðEqM~vp%Vf•ðé’Ah2OlÀìØ°º.üWÂtU옲yÿ6·qmŽo¦G£ì~x¦ŽãË÷¢3eN65ž°H®dìF<¢½³P/âéõ+ïhٴإFé>PÊO¨7âÌüþÕäùˆz_\ÄœwFU+qå–QCÈ¥ià$òß­‚ÆÇ{¼ëCXTb‡Ý8¹Ðؘ“¼ˆà ðn䨼€)Çð|×bŠÍ¥”¦ºçö6º *z=/p›Bqí;€Š‹HU,¿ÎùÆMý±Ñçx ùÌ8ïõ×Eýâ].´~–pVþ<¦â€¬oÁ™°ŸÉõô\É<*{•¥±I ÓEÑ£—HÑ,“ˆU›„FkàÆ#õÆÙkcЍø¤p&÷p47¸2=anìI³¸ö8DÀèwÍ—d æ˜Ë·yx)–37ô–g°¼$)X^ýî“·V°´ã|ªòŠ]Îö:ck `$¨<ÝÅm²Ë8¹FÌ·Æò¶¾áU¸=  ±õ,WØÔþhâ›@^ÃL»;|1Kùo+û°"µåÁãx¯Ë‚#{ö;Ì…÷—Jð(h*â¶J+Šg£ìåÊvœ®aűrý Uý .ò/¹½ËuÈ1ê;†B$½Å6OéT4 Zç‚Ø·?ÿúó¯ ëÿ´=Æã¾·¸t›¨oV^‰AP]ÙòãˆÐ¿;+YAZ餼ÓøôÛ÷›+ ÜCp¼Y†.“¦ç_J^E¥Ðfi•/Ô\œ³¨0ÿù$׺Ö_ Ô G‘ålesýñö 6D?”‚[Gþéa-êXG*dLÿÈx‰<+¿Q$µ‚Hlç>¥m¼¤iÒŠÑU*hÝâ$še>¢_zãâ–RW‚£ìŸ“²h®ÍÚÿ¢Ã*y¥·n7'âA*^¹¶: ÕMAǯ ¹ƒ‹Bci×õ„†<ú‰9=Ñ{s<Á¤º¯tçôú–çü"wcóˆ•5µÿŸâcá¼Kð¥û|,j>`â*^`Ÿ£†o4 © áíöA‚d–õ c˜îîüÉJS]`oUÉ“i%¹Ñ:ùåÞÃ6àÁ©·†Ü¾¿ýóg"Øaº/~a€äxdÁ û¿î\ô*¥¯/Räa£!–B ÊR*ªB‹?‰a“ŒhÊ&S²Œí°/Ãw!¸ 8‹‡»tM±=:ÓW«™¢–ĘʻmÎ%³sõ¾„¢Ønªá±õ:š?w:ì:ža‘,Žì.ÀªªkÂE,—tèf‡ÍOÿ€N,Ôà5¦÷­¶Ñ¤¤HO¦“ݵÒ°+\ •aÍP‘~áA@”P³Wz°†“[¼{fl3iœ^H¬×!ÔYÊ9Ί]Å®OXYÝùÄZ¬é¯,\ÉxºßXÈ›2íŠxû{a›vUÉ­·kÒöÉ3,7ÙÑe¢MŸœS¨§6¥À~_¥¸™ñlÖ˜Žƒð ÖNßD\éΈ2½¹:ÄK~_vû Ý0\Í»¼¥ü½8>ê`õ½ŠîÐlÉ=v4!íªÂä{ñíÐ*k Ûõ·mX)É|ôŸÖ{Y:ÎPGÚü§˜R•èQ[Q`j‰)•d‡Ð²̲Þ>dr±kHû<µŽ­²y&OÂ|„H«S4†úÇ.zÁˆz T n(ó©ÆÁ’1bxG¥ãGƒ _7Ø/ZåhÔ¾üîyο¹ªÚoOè–®)X—F~C¡H£!_3úÝY3•üì_7Rk´¸×†^V¿½õÒñUˆMÐ^5ß5Õñ°«›8x{öoT~h‘yhzùrü T¨îÙPN;Ï’*›¼ùàzñb.ÞþšÐŒ<ÑsÄSñ? «ž¬Ú$KÞXsaQZ3›÷°UÛ‚A¬~À²îØ·!ÜnPì0ÍÍÚõ‹@É®§ëøkv)»8øz$ÉŽt¢ ]ý’¦ šHem(õ ëÖiß^-9òåoJLt»\Wª©Ääí6&Úï|€Ç=n®XÕÖµ†¹mÈ| dh A(gg“àí H€'“ð˜Ó4<ãs¡è]A‚E"J?Ç–¨?=ò¥ü" §"=€Å8ÈÕ`¿âÊÒ z£´ÉŽ$6lãØ KZ]åw¬¤7ÑÑ@d“þ€ð½“jä©þ¾«Þ -Ÿ‚½6a9Õ-TÔf>üÒR¾;a:™ ˜ã HÇÜÒ ÿ.cÆÒA€eíCçé—ŒKF#SùrA°n@Vk°jÉg³¯™ ©]’²úAªÒfoøzŸ³L4öÚÉ·ÐΖ£…¯ÕQÉi-XéĘ08ü÷Ô1Õ´µÊ» k•º†×-Q¿:k"£Õ=7eô^}wËØ`Š-€ÊQ¯¹$YÙ’Î×è Dó·§cÒä¹5ɬTFUý8˜—± º®rH^·A¯Xm±7êÎ+W2ãrBÔ¯ ’ºÖ<ŒÚ¨±óydþ¡ç‰åfž6¾NüÂÝp4`Jô]§iÝÛj ‰)êêù=z³[sÍÅ3ÕëªèŸGJŽo‘$§’ì²oÙJ¬²Øùø­ìŽ»A‰’óÝ»XëJ ³¡ÁØÐ·=fÃ߃¢c´•ªÕë¡b…L™n84Lp‡+C~Nò*:ve`Ã5½0 ,æÌ–Ï)†_£â¡Tô™2­J¼~ Àw¬¿sËŒ$)‚©ŒÓo¢n0’Ý}KÇ#Ë,”¡{JÑz‚Ö4þ8¾3öM«\/3w«ëv­lãÎÕ9Û^Ò'j)0N[¾KMr™!fÆŒ2!èÏ2sò…¢¨Šm°Gˆíô¶ªÐ)Á›û@ ¯)’ׯúOa‰Û3¾ï¥íO]ÈfI‡MŸ«º-þK(ÍðÅým_ÆKI|`‚g=LhX‘ÌäûœröµÄ>´ºf ¨Ä±»hIÚNè_J”ªW ¿ùõTÖÕ$ƒõÒÏVédgp½A£Å*¢ Áó,„&Ô± Ó_ , °è¦"œ®)×k3°Ò)zS#nØ–Úóã—îÁž+KǵñŒÏSñŸ9þ¥rõ¥.)»rÚç¯æïÿTvÓèÀ¹ÔëwR°ŒÌ¯ÓÓäíããÃCÿ]¦båâ“Ë–“2I[p-à5g@ÃÏÛñœ5 7­âëH î3Ó¶½Ëd¬ï'³z,Šé~œ‰YÆKRÆÂÜG³‡^K:zÁ l ?#¬{nÁŒY)ôçlï™Õ¢Ý“¸|JOìâ·fýSÅ}AÐtEk¦,¨ÆeÊhy9WÃ`òWë†qãï*-“¨"Ý!eÚ¾#‘}0žèÀ°KOÚƒëC‘,´e:•n)HÆo]PPáP¿ê' •Þ¶Onô9“ÎOÄG¨òâë²8ÅÔ<ÓÃÊàN$//’²ß§¹”Ý—-Sg í¶ö$Þ­ëF /Т˜vÅê"21ŒðÜÚÎNÖPˆÄm¦TU·Ÿí.&~ö¢ÉJy«ï"ž2 ÷o®8f/Rò¬¿nŽ×Ö­°zÇCWz$T ÝNè Ÿ©Hÿ­ÛTÞS?åÖ'*ékò7}­ÌuÎè…ôE÷E;ð#!Eñ{#c:3e—Y[7ññ\~è o7\d¸ø»º91gÁcY“æç 9LÇ [Þ‰¶­ê{½­Íàh®“ä{'ayOM¾¶:%ݱ¸nshÿ½©\µûŒXdÒÜ ýI‹Š.¬+}æ© Ž—”D0«ÓÝ›¥"ßx“šc¹D}¿ êôQçoÏka‚ÿ°ÈøŽÀ­ [ãœ_º¨Î©T2Ù»vžeá¬Ïb*ú¾ŸW*g]WÃ⪯/$?ðø0ô„GËÈ'V(2˜§Oh2ôÔõÀ‚IÁ)†‰7V&cYWµÆ®0j¼ŸÍÐ]Bi#Bbó­/…¸â¼àùÒoþe…¶ éÒå}Àß»÷ó¥»òÒD4>Ž}£tÁ=JeŽù®HäƒѶèü((ŠÅ ˜+„´%Í6–óógã6k-èðšÅ-óÎÞÇC Ò~ÔÅecþþ:üt1:S–¼X’l?I`¤íøþ/§½Ç¾ØX¤ÜÓö8Ì¥æƒ ª –EMÝüð¶Ú(;—xÅj™€.=ºuÑš9DI†€ù|C4¼ÐÂ1®ÐÆëÿýý÷_>ñ3”sžßë6aÜÓì­rc|?ò¸V{£Ìq—£SíüÿÜ:VRxñ=º®”=ñA®ÐŒèü£•à«§ðûÍaÏ•áĘ4¼ˆËÒØK½B%#ÑKtg¼'ã°ëWfhi¸,ó%¾i‡¢À(f06b#Ô»zB_Ø \²&³‘c8.º× cÕ­ ˆM _ðrk4»¤×èÁÆüÈ|qç\]#éØ`h„TÑwþ«õIÛzë‹ „½…®J!7ØÆ±?ÀêJR Çà"ÖgÅ64•òmÆ(Yš‰tP‘†á'×ù®œ}¥P"Ò½VMXÂñÎ…¢YZ aöuJly‡a_ÌZjÏ@ïå»íÕŸŠ”]GÀ±h¢qB…“: ¾B¸®Ôv¨J2²•*Ô`NÆu¯ Òä»'ùÀXTÜ«H·/^à6Rëžrœo·œêÏ’x†q®DƒŠ[£CA8hfõm”;<é‘E“Léæs'yÏ,¢ø¢-†x²qÁ;y| L-{1»³­|ŠÙ*º¤¹—ÕI4–ˆîû©·C'î ŸÀCWQqË‚0âM¯Ô‘4t3¯zõäÄ\zÅëÕŒ:pM —”‰QŽäþâõ£½´`1z§nÀ£ Tª/Zö“¬‹z¸×î¨ñ%!Ü“xŸS< l)bCË=ÿå#×ñ«\êæ…í…`,ynÚ,ë|ZumTøb Õƒ‘Ú¾ŒÚºäÖ4n¢%X§fÝŽáÐf-¶ç9m)­¢–©yN»+TGÖ@!8-p¶RðÝÀ*£”ï$JàN?ÑéÌ©æÕ¥69wPz<é„À×éÁ¸;Ãp¶ÛÓÔ°´†ÅóY, /”wìN Çc¬š»è×~Y à¶÷Œy…;OˆÜÕøåD»UÀè7²ØXü¶n–6J(æÜ^uUÞ9+€;Ô9«‚9‡Ñâ½h=a#¥m_Úœªjr¾ÂÛuI;ÌEl™wDÒA¯ÏHȱ(Á+ZÚW/óµœEŸgü¡ŒÏ2ñØ#`7ýIã„©ødí"±˜žvi=|ê¡7¿ma€¹º)Š”ð!_fmlô‰U„2Õç‘j†eZû,6_7•h•E·Î  À„ºvÐõDÍ6ãr¤ofN¨àF%iozjOc•GïäT(ác©wÍÅhýuÁÖæfÄÊuyWEBìØòµž¶‹Ô¶i^YõxSfôúŽÀ¯•‹Ë€yà ÚsG^¡¾–eô÷Íkl[r…ÞéX'× m_»ÍkX*TžBWv ÒtõþR¶®¸d9&ÒCTµ#K¾a29W±ÇT¢l¾<£a7*³=ÂCS&ÞÿXf(€ŠUúæï™³LVZuOó,á]@a=³.!ªü3ôp70"ÎÎÖ|éŸ<ð*d †I)ã¨Öß@ `%7ºåÿ€Jbü:'0'uÝ}3×1´¯ñE,€Pì.s‘ž!fqi$L k³UAf—+-À\Á“ü+²6”ÉÒ•'‚ìñß%´bŠGo·Â³ vú$5ÿ‚õ‚ ò6IMïBd¥‚qaŸÁÿw)²ÿõ­ :ç n“8œåOÞ %s¯iüEîû‚žT§%i°ý^—Ju×R¨½P"8£æm0m1€‹ÁKªT+x¡íZø¥F–Ç< .kRä=òˆèYY ×a>/çÈÐeÝûšÒ»@§Îé¬Î’ô¬¾@œÏ…è}uFNÖ›A‡ÝëR0&(÷yó•€°èVÒäè=á× _Zò)ä'[Lé «¡,Âò{OÉm*G)40bO²AÛ¯å@Õè^¢ÂÞ\Ã+XGzld—ô“Æ;SÝ—”:â¼TZ6 IJ‹o!]Ë’Þڄ󺣴Õó¦.¬¥¤(|¸éTÛÈ£Põ:ÆÖX‰ Å4Öô¡l¥0­ÓQÁÚ×s HÖ£,$~µOhßÊd®6?™ÏòñÖ2¦H™MÀ+w=fk“2ÂQMîŒZ¸¡†Ÿ[oìÁÆë˹ɯ@HŠÀ‚†vuÊgõ]͆”QÒwĺ9…­Û1‡ôÁá\®"^²öƒÏ¯YÝ™CËœð|j¸OAÄf͇ئa˜' ³ãnDñüós .ÿ…l‘Ö+s*Š AP;ܵZíFÁpD—ع^…<8/2”Aûû4¶—qÃÊ™êØ´Ḭ˜múÖAœü3,QDš3¤²O“4"ó¡hZ¡‡qd_ ¿IÛïÊ©ª@c¦¹—n{)c½x—µâpÀÀŽÔðö²ÒzMU,DÓ<ö7_¾®Ù«¤ï¶ŒØ%¥žvm³IÉ4GÀ;ô[nRá\XFm}}"Dz“Þ܇£ØzPuqÚî$óáä&xÛÈ]ãªOiAY‘TVÒp•v0dmCKPb‹ .“ å£‘¾ni¥ {†_þíýÙ¶œ¸²6 Ÿû*þómj”§«jÕæn” Ì”“β™Wÿ+$BöÚïøÖ*ÏB¡>Ú'`ÏŠ}ô: ¢0k_b¡ˆ·šëâw­Qò‡ (áø’tófT<µ®=¾ªo»5ì_í"~MÄI@ɹ/ •ÿj:^Vö àñ\¯jRZÉ…f¸…Æœ­Ìë×·±Àø/eϰrq)n Žd]f77¼øÂѽ«!£±1˜@¨M†òqnâ3%æÎækKu=ˬÈf-î_g'm¾iÏbA2Å„ÃWïƒO à.Düh«]àvè‰cú|5u®«”a{9bï!¯ÄR¼µ§¿÷s¿ä³¼›}cPÌM?†»Î‘uÚ’¢KÕUM;üÌ)7WâWë‰zØ ºk¡ö4¬­8:dK·/’ŒByV×L”]“ÚÁó ss,pž©×pn–Tæ÷*ó/]vˆá´¬õÕÏ]Vì(NŽHç;¡´U «AþCÀ­ÊØô ¡MÇrðu®õ³XkÙ>+†¦©u¤£³QpÙS{« c¤w‰ök1Sí*oÐŒƒW[0·­g ‡ Åz–)ðôæu &EjKLBµ,f´°#qWÅ=ñÇ ¹ÊÇEØ·Þ¶¡'3ï ЀïHÙÍ…¢„·£QÔŸÔŽd…™ó2P6ÓB p#qeصÑ6ì¿QŒr›­æªiúTf¤G¢ˆE/·TX|ëR ú…}i*GB%¶ SÐ@ÊÆÇq 9ÃHmúüÒgWÒÊd€UTä´ªïÖ±¶«Öx”8N-Å,Üù‘Ó\ аñ,EC]«;hÎ-€¡„oÐó˜oºÎíH›ëå˜#¡'i-±Ê¬«*õùÍáUò£¦¨;ì~SÙ’]ýâa9 ‘Øä–é’Yƒ‘]$ž€Ht4¹)P…)àx}Ôü(}CSÄûF…I¶+È…˜ Ò dAô^¿€â^‚Ô¯Ýa’jç&·×ˆh¬Ëî|™jŠŸ;ñŸ‚hž–ˆ¶t”-•m‰ŸO”@•´*ú˜MâÖªûÁÛ—>àö*É–D÷)œ¨²hËÛªˆ÷ Í2^ Ï‚<ÇÙ  f¼P¬£$A][/Œx³€òh!Åé7bhYê´¡…á1žy´%¯h@t42ŸÇi8±$[-C’Ù-,çÅŒnb~‡EƘ!òS*3çb"©W„2Åþó90S‡û~Á²ýcRW½a´nÀÿ³–„42-Y Ñ ½|B‹—+Ëiz´ÿU5b«ü)m…H#%! CcÇU5¿ï€‡–õåpû †°9RÀ>v§ÙPMsî×*£ÚQ­½£Ð³Š?Ä>¨”úôÃŽ–‚Å›¡¡å™<ýfŸÚIÍ"?ï(¥¶3ÎÊ a ¶Ž7ÿž4mG°€s<§;ñ¯[5§!XT!32•«‰k©Úú‡Ä7øŒ‹,8UA¶§CNQ/ºeX jIÇʳhÃîvU/–Ìè~ж4ëïuó¢¢OŒME­„|WóHÃwc·WP0ªh±à?Ä=¥²oôQ–¤°-])ͪ‰Žœ Š6´7“,¶®¾d7’Rî>@#pÜ÷âæaU|}®£bØWÀÎaÑP›%3lˆt¼„e\î:žD1(nopd¯ÐXŒ{¥R‘§ /=½VF*Á€%,eئǃÍ~ýõ,xdÄÞ´_#1ϱ.¢:ÊJÎo´ðúß :*2SÑM­ø[ÙÛºP€£°ú{’¡º(˜´Æ€%Ì ®Å† %`tõGÉž05«êˆÃŸ üJûÓŸ=”l×LXLïlS˜®2>ôü6 mÆds(²`Î0ÎY­ªϾûœv4 Ù„1° ÐÔˆG'’î7 bÒˆ}¶ÓhñÒ難'yèŸ.û'^Š–ÂÆÔÃ`XÕô]ú£~qqPÜ~q'n Ž9;¢Þ°Kó[©'ÞgÝÑ€H 8ƒóöàŸqJù {­c§áùñº 7ñ5×fÊs¶Ý9 !ÞDR* yÜö§—«³Ò|²´5,-g¶Š˜‹]A0ôÍëä‚úŒÃ€ZÃ߬²'ŽH€ÜRÖÚNÜ•ÎdJþ ØáÓP‡0|Cwì®ë£ë¹=·ä‘ˆ[©%6Õm½`å'Ñp.±5Â4–V‹º@âÀ¢$0T/ÃgBî´ÚM¹Š2t&(„T»´ !b›´;`£ü…NÞâù$1;ª+AQ`öîÚà‡‘]%ZÆ á÷'¨“é>`•½¨“ÈÊ/¿²±ŠÕ:£¾ç÷ë~Š g”Ô¾Híl/ Œ¿ØÞó¶”8¥€>öû…x͉U[£9€„W–½_ÒFã-óQ¬ÎRä˜Ô3Ñ.´ÝÕ¬¡GÙ>ìVªDÈÓÉ™ðN\R~Û—º€Œ‚ÍNuÕF0pêY‘NŸT e—2ÂCËÇz¼è—bXØöز;jð^Ý|<¨ÑEôöâ†ÜdåV jù‚7FbJ6D¥$SÐ[—FloŒ³r9,ÏéŠïÉ`ÕuK£ñj‚•"%n´À41xÿÆcÓôœce ƒÃÝ(ñûAJW4.<Þ>6rka ˆŒ¸ScøM¦oŽ…°ÕØp^¥÷l%kD(€XX¦âZ¾‡xAˆ72( ‚<8«h90zúʃtqSÞ:.Úòdóìp0:aÕßÌò!ß+\aß½T -/8ÔÁº+a“Ô/Ú¾ôŒ+oXÈ49³è,ÑšJ/¶¸v6˜¦àѨ¹Í7´-Cgzú€8 °sFttsLÜÝÞ)ùámï9lÿï ±8ßJú=@ ¾¢-ýÚA¶^AÉÀŠÇ9§Ù)oˆµVOÊú“I¤‡Õ³’Eúθ`þ8£éskR€bi‡f’œÅ‹+ÍTßÀ>`g•¶NX¥¹ÊÖ~½;k»^èdŸÃò ¸tÖ>üx‹0ï„”=p%ÝBáíã$œ4+ ʃ]¾ýñ݃6Šå‹{À·3Â[5m¦½ûZ^.YEd G²øwvd9°ë¶?þøsËØ¸¿|C,8Œâàô¶1òzó,ØH¾ò6ÔÛFé/N»ìÌ ð1HlÙØi[½gË Y#êêioS#s5Mè»ZÏíØÈz7(…}›ýk_È©g‰ŒÃç\(c¯bÁ;ôÀM½j3MGðêpÚ;Má{¥ªŸ¾W8-A3Ù´ p-tAýb¨ÏÛi[CI T{˜øܧûD2è³ÉiúP-¥´8¼ -ðkB½j^¦©=¨+¶®¼â µÀ¬m¤ÛY½ú?ÿ“戠5Ÿc¨7öˆGá«x"æÔÿ4h˜eC"Óþ–ñRu« lÛ>YŠ{»ê4üFážìžnÃ…só¿ÎL93cÂÝWn ±¸·&Ùx}‘…4‚ÅxmÔÎ'º/^Es¥‚¦Ýß0½¢Éâe«hnÊÇ1… õfÛð4(Ý. nÊŽäÚÔ`Xó8p\0åH@Ìпɘc¿¥*Ìc–¨Ë==¶é,ð+c“œŠ¥ _¼¨ïä&•bSßø>,|=údUÐéU6ÄÁ¢Ð€½…!ÞYüZÊÅæà,* vŽND«U4×pêÚeò³ÃwR]8:&J4Õ±Ù678ÆÝ‘õû¼GÇ|/y·Á†1;òÓ×÷Dóœæ{†°d„ä÷KSôýÌS7t-¼µ ‡]g²+ Ô>üp£m@4sÿ•‘ ¤ÌZ»j<—dRËî“_ •[S‡ÙÊJqž0øçTÚåö<¶Õ°£«Š&#D¾‡˜P{Eú¨4Â4tFc$m(m9«¦ÛßëB¦ð8OÅk=wSr¦š8ØE Ò‹Çp<çL\Û{m9éÙq—#Ú^^é:øÝŒ†¿Ñ—Ä‹5Ÿ”uσÝ÷ÞµŸA…-í3„O—±Ó)bjË“;e3³yX×wä3O’Û~¹¡AÞÁUì\úÓ[‘ÌíÂbDBl&Í…Ñß4øû-`€ÏQèר“»¸Eê_SuÃÙÂOb­a¼ eûcàÍ AëBUw„À•gñÕÒÆúvd· o Ñ›7&—×réeÚ[P_øˆwÆÛÌ^<êe_›µÍ^=ó!ñ‹6ÂJ_o¼_9²DÐn£® s+êKVÛ%>ô zqÑE-¢[•ŽÂÜò[ÇFÒ_§3©fŒå¥Þ•%¶ÄÞ‘Â:úɲ¤¶.Û[¨$ügOé'E©E#5Rࡹ Å‘„Vbñ¡èÚt”ßq%"éÓ/{(æ§¥æÂ3'H½]Öyòƒkó¹þˆ,™/^W+J‚áKŸÂ‰)/Ï‚ÿYlú¾î;çñ`ä4 KD´¯ô-ñ¸©T›ÂEý®±,ñþKMÙ´_\¼|žîøCE쇑+ôÓ°ñÇ2Š,оj¼Óõ éâ~übðÌ÷;oæ› }{ÏL¨SæMCj¿o9|¼>~? ^n½°°iÁ²ûRF1èÎ$L+&öGd±lsD/}²d6Yj¿£dxX‘wè“6Û0`!þ’uÄdÔm|%*òÇ]0yÍHD0¤±N€pÝ·${µ¬(Àý5¹4Ûžs¶81ÏuÕÙº,­šÝ·)¿Ù†µÃ惜ö±vÝ-ŠcãR®‹œäÎôë"  åÚ(úâBZ9NûF.\©„ˆ›³Š9T()-~ž¨tÅãNA|6V19<dfìyn)ý÷Ÿ¤3'þåv“Æ\ç©;ÒÄÙ–²b‰ ì>.¹k}:½Ò‚^ê8¹eBpì¾ÿ++L§HÉéŸÒÊ¿3òüÒ‘ÓÄñ3›á9N,Œ#+­6#ë2o Œ¿e|.铆´š:W [™wØ 'ác"'[cÏu¼DG2’ñÿ9Ló¶Áí‰v®/ðE.¤[«;¼ŠÔsÏovQ'¸C†¶§}KÈØŽäücUÙbL$ñ—Å_ã™ ¦Y~}èÛX×AØÖªðýœ$’+AÖËÈ¢öͧCÇc.sÑÔ÷]#ö}Lj…£ nÆï›¼X¹ ÖƯõdýGpiÑÈÛéG~×3?žscSžÞÚ– ý×ê¬/­ñx¼°Îv1tâÍ$×!}…"_.„ÏX:ÆK§ú¼œÄiÈ ’ÃaÔ9:)sŸøE6¸‰ú¹Õ¨ŸÁÖs ëmïfÝ:ÝÔO²v«õ:°%Y)¶‚x¾!™ØŒ~œjò‰F/-mK §» ŸøXæ­ù¸ö n¼»³>K Ýôð¶tsØlgYQ¬_=ÁÁ8å£Eé¯[ªMo©ôãFÎì+ê6,(À{—Ó‘[×ßR—\f3:R0D¨/nÛ@X–Àþ@'µÜÙ›±7ÔyÝ7ʾßúôYùx<ÀÔ°škƒ´´¤O˜™Z¥kÁ^ÉŠD çäÒ“,}ä$O§)ðmV«áe“]¯_±ƒ’aeR¨ ;h_ º6Ë–%¼VÔ†¿ÅV)“üµ7rŒWB«Ü5­SéúåøI\]@5£.Ea|‚1U„¯ªÈXÞ ¤þ%술ï«êR¬à°Ž©Ç ”ëD­€œ݃²zÙ×»á›üä£ 1 !¤. ǰ9gY¼ å¿‚\.Bˆí=#ó,“0/´IÆ7NÉå{æ‚\ ûºmY–mµPk@\n;WiæÅk³ÞQÞ¹(‚2G-›¯%Ü <¤wY–yýsÁÎ4{eEÕóÇJœtö{ݱ3Ò,H=±u˜H‘õ ÔÎ#­7T•< Ñi›1ãõâúbƒƒ¡ºMSãY3û¸Á½Ö7®J& ä¦ëÐ5È’•_MöwŠädˆWI=UþFǽ]7&º!m§ð]>×rË›q‹lv±Ö5é¤ì¿¥ GQ‹†Öœ ~ûÑ_.Å»*dÚÀV¢'1o8Ž,ñ˜î4«-–DO$–þt`˦³@—®¬ÈÑ…¯òý6›©6ÊúÄ £†xö³ßªOÒhGª4¶ƒø¬ŽÀÃàmf Š=®]ÁMÏ̧:‡iéÞÆZ’½Rg A$JÄ4YÁ| sù<1¡@›¦¹AÔ;³ Jñúâ¾;òºà°õf˜‚³>ð—ît …Ú‚½Ôe™]êÍáCf—å(b©ñSšåÖúH˜îŒíÄIAn,ÆëÿýçŸ?®ñARÉò1,ÛoÑeÅ¿|7“õ¥ýl'¤^öƒDÉG“ „•–ˆcÁ‰•ážFÕCþ“äeQ†/NAꯘÁúëÿâ`ýuä` Y›]®Ý°ä¿Ïp 4g˜@DAmTmÀRT-ý3-ÿ_œ–¿š–¬ ”¯¦æ!²"µ–5ÇR¾ä )@kåhPuÝŠwëôe_ã̬2Œ^ï¹Ë ë2[½0a õWèîOíöSy¡•áÕȧûƒ¯<÷À:ˆŽ¤WlÔú: àb€JZfWR¯Ç–ÙË­ËÏ€[BܬàÍTî#€§î \Ñ”nîеç`.ÕË6Ì(ñ‚Äy8ªϨ{òùò¢|xS>I#óÍMnÓ/EoчE[‰vËð»àYúO}ñ^é åXÆ:ÍÕ¼ãYËšÎ6LezHéK°uz}ª¦Z–i › {ÄìL›rcBÌr±@Í„k™ävSͱxd‘çr@"ŽdËç3¥ T­µ{jôl‰ÿ‚ݯ·BT»‘þ¬>F6¢G·Ä¢i§;¢Î4ÐY‰u‚èLx\-—5H¾vdp♵ôAŠ…&»â$‡/dû}ÙìEÄ3ÁýtCƒ³Ô /v ç­ "Šî¨RÔïíN¿ö,j³n%ÒÁ›îüï÷ñîáíg_ƒñÉ3õG[S¡‚brF iÜË„0A«°ùvùüè”þ9në¾›˜›ÏéÜ,çHùSh‚ƒó@Çaš̱÷޲$(n@ºw焌ZiÌüFšW„Å®D©÷íŠEòõ‘™ÖQ,‡•²'â ÿ´­Ëåej6M·’çF n·Œ‡÷pÞ€¿HšMzÒ~ljH·×Œ„Ò–È÷â»çËUô¨þ›uéa+žvWHíY÷‚ÁYèÖ¯oI¤2e¾¾b @ûWߢ,¯Š9ºn-3gYî¸Ë?ÄåVÑ. 2¸LùÚT¦yUoz²d Jj90wBÀ‰·™Wx/@z¨ù•l#û%àõ]~æ§eJó,5@‘¢KaÔuv8! P_Q×—6†à‹pÅÄäÈ*P-˜&ñåµ:†d o±Õ‡¯C%Vö@#3dþìËìAÈŽ ¡[º6Æ¿y—Ú{ŋӌ~vÄ“ˆ6ë2ÐÌ$Þ<ʶk3°ä¼ÎOÙ²þ³07£ÝQãÆlî¤d›]* ³Ç[6/¦z¹Ìrn(¹Mñ]ö ì{Íšø0ZÄ=µ©´$BÒר¨BÉŠRõzìDÃhð"ÆiVÕ'RŸÃ ÒäÚŒäÔéE°ÄÖLôÖ¤v®´9têÅñð!ÌŒe<–´MØÉOÁ SpMK€ÌÝq*Á¢” f ÀMA¦}"0dÈxrÝ‘U0P_ŽFÝE.â¨úþLð…5ŽØ¸¿}1F6{Ír¤.䯒–fõE\*Vsx ÷@Mhp­@IÜr#Éhƒ7C ¯q ÍÎLPïŒåƒqMøó~ç Õ :}³{»‘m!ŠH*ÎLµ Ž€ÙPòúQAýúËRÏAÖèP€5jøƒX ˜ŽãžR²ÀkCºë+9õ0V¼Ò˜Ê¦«äURŠ]B«‹/µl=˜[ Táˆ^½¸`2þCZʘó ´WòÌ”‹‡ÕpÎjž‘Å/r­ë†žåÅÎõL3ÂY³Jô™Ÿ‹"îFu¤Å@ºíÒ#SHX6X­M,°r _¤o……ðä?-u3Á0öäE”2ô\jpÇ…ã°^X#pœ–åû¡…4+Z‘ˆ“¨«0Öʽ¬H†§=Ë6Fr'Voe<+F³‰¸Öâ@÷6pƒúÝ-hFú“¬}5Ý”4ŽAýq9g͘ìþÛ»_6 *öbB¡füÐ"޶ jLj‘/EM)„ÖTP‰ò]®Xe2¡TGgÁð¢•t*u&“jì‘0| L•·ä¿£^¹âeÎOÐeX‰·jÃÂôc’¸Ÿ“ pP¿•¬âW¶É¯æîF#„´’]×Už‡›nø­gBcEˆ ¾1d{^øZä™ÿ®ÇVc+F•˜µÛÃR1%aÚ?p{ö˜­?tdìªn æŸFŽ,ü±…gú&(ÊË É u‡ð2ºJàñ甩Wݦ@óþE… v;…¨dâ[¬›øAî$^µ\­]h ":œþŒ€€‡8 *’ôÌ"$JÄägjäÀF†BlGRg­aq¿íÉú_ROrÚã-³†ÍuE&9C莓ñº>d¨ 0wq£«å^Î ú8‰ŒxvN2¬ó‘a^åš JÄ;éä}ç妩[1ÀŸ¬X¢7ƒÒ_z1ï$Ï_g'8A';£'°Ë¿á˜æzewø¼&â${ÅÞß[CÏF—µä½š«/Ÿâçä'±ÓƾŸ»3jÔwHAò1ïZÚÔä¼WìòC”œZØÖÓÔUuû ¹ÂÂ-0Mê%?ÚÙqJèÕ®€³`î’Ú¶ñ;UÓc4Œ&ñL?Jª(@Ì‘,^hPÑVxµ%B{ì<¶ TËýáQ =U!$·¢á,¢ ­Íÿ>†dt€¿ÖMQ CˆüÌß ™<¶=z‹cÚŽ ÿÇZ}ím î1B@cŸÅdÿhúÏÏ‚~}@}þuí&D´€à§5ú½wGAé›ÃC6ñýX’5 ËJ f.O3‰ZóüL.ý+}çÈÉr^–ôböé'wÈØDÕÙfâòj}U"à=6”…øU±I;—ÄÊ›àÅp¿ä4|ýgžðŽW& Kwªs —™>ƒM¬–¸síÆ¯Îe ¼nR@AJÆÿtÞXF4Ð ñÐZKÀÀ/*¨aüm¬èåÌZNnøeñÐÆÇ¢½3ÓDˆ\´g=0[§ÊOlæ¦ñjÅÄ]y$hßôê"·º¥ñ©Ô×,z]lØŽU‘F¹]{³Ñ 6‚'¾›b—âÖ½­è"íEU³G¨`o€3ûé°œ¸1¬uႳÓ7˜øÿ²e}4 ÞÁD£¿ÓfÃÊ»;2ŸúÈ Ñ×1,IifSœ’£ v0ï“ ò;Û*Ï-¤xÌ‡Ž ¥ÆÂÇS#”å>ì“zTs`Ì./¹Çà^#—Z%|TdÝÖ£…„ Œk)"ŽdEZâabö³ÐÅ:vS=ó÷×|Y™ÁVâõj‡OÄÂ6æê¦x<ÅÅ{ {PG ]Únn6éiFË‹e‰ñæp¢yíÅ9Ä:¡õìÛ0àoIÈY°G²lØö_µ-)õ´%§EÉZõƒî´$-g˜ÕH'":ÄÆ]em-†`ñÑøÓ×½³¢˜êñF­±xmÙ½§/Ÿ4»ò¢¾ýÞ–¿ê¾NùÂ×ãŽJŒ•\ª$ºÄ¹p°îs)½¦ó>Òƒnƒi;‡—ŠN˜—/š¸Òí¸â޲D®-ti)ÕדüûޝôÔBxëD[ýàæçÚWÊ ¡7þv _2Æ8gf“­ ©0eZ¤6ì2Ô›±÷å7µÆrìÀ›²»)ß—Œ¿¸„¯®=‰¾&M×®èÐS€ÇÑD 9ö¥JyCe˜Åo]]-CiXFµ|q%·uIV¯qÚž–¿LŠåô˃G–ʨà²2lUfÃBêŠ%ÚÇú`“K­!F;É?h¾"¯~9†|ÇN´ón'ß@÷7Èc_²éß–wF» ôzü#þõ=µ·.£‚§(¶Àv™{$›þþ§Hÿ“»ì¡wØlÃk×QlÚí#G¬ÄXsIÔv{ßzZŽS]±íä4hï,C‹öi_â•븺ÆZ`›ÖHÊ.~"5;P² †z„{öÌH%Ý¿,ôS¸ì9 â*Tù”¡Âá’ýº¤²ÛòÒ° n ·Ý%Ê¿g²ø­Ã€bt„Ãw§ãgè!TOÌn;V#•MséïÚÜNa…¶o™ì‰øî%9”~“cáñ S‚„ßz€e·bÇà:ÿÄc"Ëc·#œ³/NÌ'Õî“-3(€SPÖ÷-qû†¹pŽž @Þ|‰ÈÎ(©KºX‚ûàoÇクuŸoP­*9<=pCt<,ÜÔÁ³£¤bä‘ëçÎq* ã®ú öCOŠôÿ Ãéÿ¯Äc9Ï¢±‰¸dã™ã¤eIÅÓ!9âÐ,!4±wòÃ>a˜ŠŒ`=†§Ï¿Eaø u¬2”©dž.’•Ò\nÖƒ&6A¸ÿÌJÁ AY²¢ (žÖ\·¼‰ee¢¯ê¹h'Âö{ KºDß3S)±×®Ô´E_뱸ZìM,ã{Í£Ä^Dr%±×*}VOõ­$€eˆ¼gdÇv…ìŒ,Ñ 8™Ä尣߯ÈB®Cظ,%¨Ã±ÎÐCĉ»#„;à ήÀ:¸«ŸL¸ûX$ØU)qíOAóÒJkp¨òê04•_ÅÖµ»W¿p'©ßÿ¥áî_Ž8t¾iÝÁ‹XF®ËW³‹Pä V–À@¤ío;~®åPD7«ÉÛç‡÷E”MjÇï úý¡&AÓ<RÑ…9I0©yq´E3&oæ‡8â±ÞRÞ).L#Ÿ¯æÃë{a婃ã„7Çmh<¢iìjÙ4VRÂûv¾l—…çõB] Lr.v6›+Õ¾«Ëñ\9¶BZºe©$R,Ÿ&´ßo}G.CdÅ•p€nñ Žé ž¤U¼Žø¬îµ‚>RK!•R^&[‘H5†ÆVöɯq˰MT7÷ÔÐË_HbBΗƒe¾j¡ŠÅ+^šß¥E`AíùãéP.`œÅ¶MÝÐt¨a[í L¼quAýÉéÏšÛÅØCÀlEB¨½3¾1ÕÐO]˜ÀEâ׋úëâØÛóÃóIÇöÙ_S8jJ™ ]‘ád› \Ú¥Î{³¨ÕGAB—U4ôºVþB±–âUú`MB]gýÒùÍôau·ª*Ðñ†j÷ᨵ.>©––'‚¢}d6$ó°õ•½½Š Ö§µƒÎ¬‹î&È6úŸÿYFL¾1<’U¯Œ¤q*¤¾®…ü”Qå+?Irù«Ê+žnTçÍ ˆ˜rõÊ™,_­iŠøBtØ¢W¹³öТ4$­›Â²^¢yú’!Wë:^G˜É”rç)=ÿÝÔà·Ókú]‡Ÿ´3è"µìk­auŽS-Ï2oi]{E±Ü®h¾Ì(r„Ѭ$c<ä:» æ-CÆhè±…ÃPû§í0ØŽá/èŽæÖƒ «ú¥ýz”éÆÂKžý¥ÝVåõcP*`qÕ'ñ3ÆûÀ_%iozÙ»Ùkk„…•Š2KãA˲´Ì(/Á:!€¾î™ª¦®fkR>kæÔ¿gPÈé„å2¯³ |Á?$_qmÌ®3ŠÂXü¾þK_±LŠäÈn•t+Hñ49µŒžÓ÷$G„¤”¢BÚ‘¬ž#tÖ˜bßD ^ÙØ¾AÛwîö‡­‰€)ç/!4ħå:ºå‚œ‚Ø8‹§¶~p_p¨=¬õæ¼/U°“‘ >³îýEÁzjrv>o˜›C³š_ìÔ-à`†"$øýÀÌ\³Ó"´Ÿ ݱIAy ç&æÒú…ttB1¤•5ZÅð>ÌözHUMIÿªxÏÚDÆb¨Aõ¦5äZ-ë‚TŽåRbÙE¿"‹/†ÿ9 žT¡ýb§€À¸å%Á3RU+9¡*›Ý§¸dçÑgÄŒjÁså›ÂÂÞ}O·†°'D¸U°áµ%¡œªÐ^A°ÿÝÔÓ?yÙMÿÖ£"£¢ä°ä–îxÚù¬oIÅK&øu¹ràï5-Y•o›"Œ›øÐ0ÐYï˜cгS"Ä)$ô ëtAT†æpÏa7òoùÑBÂØp“S ŒIäEó¯,‘“ÀP˜ÐN'Ïë  …Ä#GÊ&Òhi98ܪ * ¨B’³Ö#S#ÖæÑ¬‡u#{c¥ašsÝ #UâôF_–ôcœD»gÜ tT‘h iíÔŒDP¯iåF‘#{t•O;€Ž`!!»T&kôÙì¸2̃GÕ(e{qª6BŸLî5»-òq¦:˜áÞç»Þà/ŸCä&Å”’F‹¯^Dâ™®¤˜Ê<¡Ez»¶î…8Ä w°Wù$ÿ¹D«O©^´†L”…ï.Ò|,‰¯a[Q»÷—®úûãï?ý¡×€ 1ßéþù uóEEË8£b*êEÉÙ_÷Õ·AœíKø&‡`uvËMËÓ€°¥_uù))_ügñ-5ìúÃc@î¹´ÔùŽx(.Ës(Ÿ‹½‰ê¦yŽ ?H7µ#øxu;/M‚²ÉÔOj‹ÚcEVp4‰=3eùëxÃàX¤‘ÀaBµzEy°]cóRŸü0rʍ›æe½7Ï"±A\ŒK¸>·u^ó·îYóRª/ä#ÅÊ¥ùæ±3·]é‚ðW§é–'°ü.Ý„7»Šþ€7;(ùbúžFáöª3rb°ÔNþpÂ=!ZzSNƒ¤8жT&úÝ ª§8®Vý%+Ôü’ufArYøFLI 0å€-ººÔûè–£͵¨Wu¸5(¥%ßp yíhוu‡Á   VÅGÿXªwOÛ1 2´¾þ#‘u%Ïüàöþãæÿ?±üÿçWò?eF·Í%K §‡æÖe=ØÎWâ:k¿.zÆnýª“,ãR±üöÇð0òåk®w\/ÔBª«›U,é|Yg¢›€ùäÛM–¨ wHédêùÑ\a¥êŸ}Ö/[;6›¦à\7lÀcö:B>A/)™\cÙQþtÂ*ƒT e‘Œù$ëërÁÅ™%Ö|Óf2âÃëÚr 40¬v—ü:#,ì,wøm!†¿†²Aö›»]…KJ1áà(üõÌY&À¯`ÕÑVˆ‰g“­«XEøed#Òõñ¹v¤¯*¾>ç ùaY#úóq©q(¯– *rÖÖv•õ ÌH7ý‰Ðê0qÑq—¢|6­ßÖ¹’’ ­YéjØt€5-»“ì¯ïOjë^IྠkÛjðe@QÈ?‡v€é[ % ¸ñî³õaëßrë\·âÔKÔ¨¤áøÈ^‘`I9†#>²IUòiX´¥z·¬KÃ$¬ž4¤L±”¼i{J™åjê…,t¹¥à÷sKé'5Üä_+3ä;uú¶¢¯1ór…Và†AsÀL‹`sÂOe£Ûo>µ¢*‹imÔ_›™Œ¾¬šR™!'ÔøŠ¡Ä`¶0Ëò Š#ŽvyìÒÈ8ê(Tñ˜ïs*ëd“ð’4,Éo%G‡nþQDIó/òí¯vÿ‘B/œYQŒݶÏæØ¬Îô¨ð ¥„¶k›ØO^ˆí‚ëÜöœCMoI&ÄŠL\€ÝtÀØ@¤–G©üR(á ±Ü¸W¬Š:|Ú­V#Ì“f Pz¿AÝ­¯@-už^;ÝÊÙb¹,æ8Ÿm˜¢¶ìûÂ`Þ_¸"–õ¼«K) ªùD¦OHaT¾±BhT¤)[«’úu¤Ú‰!4XËX˜¿<Ø™ã0òªÕ ÷àbç›øŒ‚ý¦›rì'§ÝÄšMèÀKÛÉdâœøM*RÕ—\»2 6ò­sšèž-£tÀð (_wö‰­qpÁ yÄO~¤¥ãÝa@½›ö háDŠ‚/rë›þó³ †m‘clд -Ó;k~¯Æ¡Ûr±Ì! fw»tÐÊ-㯟Ýöᣭgìd)⦨[,ÆczþÕ¥nÀý‹KÏÒ°’G3Øí ¨èDmæMðm!û9´´ x Mߦ‘f2 Q)1>è½.ze~qk˜èA=Ó9ãñFKv§oÔ/RÚO+^e´bƒŠ©€¶¤+D8G’E:Ž‘%mAXƒ0÷9[ç².tÛÙ”p—ñ©ÎÏŠŠ4¯wt`h<—ÍÖxCJ¥…¤D{ ð`Dî¬ízR¨Æ2–±©è» >æªÎö°¥™#J×O;r*¸³­wÞ2g×%uÔÛT/>Ë¢m2“pt¨í䛬@Ê%´¤nAÀZÐ3l‚ ÃhÞânÊ™ÅB¥ñƯõ j!¼Ái‚³ƒ«aFɨ³S]ß‚JÓÖþõ­›‹…ªÚo¢a¾ár_$¨ÖCýF!#$ˆwM~½pŽÌïµmó€Ä ™a$¶Fž×Up$aˆë싞¼›g›aÄÌZsÄòXÃ^Õë| ¾T„µm,¸›nãøŽàÀ¡ŒÏo]ºÛÞ*g±Ó„©t‹°,üZ8N-8Kî‘ùÙ½±Ë˜£2 wr”Îñ5§1Ü@/ù¾ãW|ÿî<³0ùGœ_¼N÷„Sc¡-Íê6_·¬ÓêA[Zˆj0³¼Ëºçô‘4uKZšKK›ôøòOÓuAOˆˆDéá"ë »†,J t°’yhoUZ(MeHÝ_ kßÈŠ/®-,Ò)™U¹d¯d§À_¡ H†œ[økØÀò<¼TÛÎZ ./«’¶Kä¾_ÌñÁ·+Òpñ#çyoSBœÒh²«þØ'·,mõÁh:7ü«üÃra˜‘¼a·Ñ^†MΜq|FC¦ÖëøÚ/ÁXÿ-­ò4<~š}ñ%*g&PN˲[Aßag™ƒ¨i“] vfKŠâe[…Ú+¾4¨í æˆå ]ÅýµÊÊr|Øn`¢œßT\ÉFœyBå§v«¯=PÉ û³Q˜Ý6M¢íÉUÎ…ôÚÑ X­ŒúþÝÈš:O#Pø×ò•oIçÁZŠçÄ„»W• )žR2ÖU2Ñôœ.O¡)ôá—h©¶úëÕ²P?N•C§>Ÿ³{täѦ+¿±´ Z¤ºAµ©›«õXVÏì¶xŽŸ×Û`\ZÚ!îÄæpÔXÀb‰¶¾“Œ4ÖÎ˧æ%ª$Cž¾GAÖ ÓÔÓÁ«¼€2²#™¸Ê–KÀ»¸úM®ãÅ/ìFµ*Å´ë^²õãêÌ:]1¸üí©#>Žþ“8Nâ } Ó*W§l·ƒ =w¾ìHEg}Aù›œ¨áþ´§3«H•Q^Ñä˜GÉ ±ßÚ?¿#ž–ȧ‡ðȪ{Í2z(±äÊÚêu,QXÒ ïÄâ&E]ıXyŸ4–<&åNrEJ`Àï¤ ºˆZ<#µcVÏH­çÇ•ð£ÈqRì$%e¡ò‘V;„svDÙcˆÆQÁª6[˜2åÌÒû®Îë¤ÀÀU½Ò-%*É[ü ý\¬ó6¶Í|&ÙΣ+'üª·¢>»Ô5 JÒðMj®ý˜¯‹\ˆ[Ë\ŽÔ³9 &i!UU4ëVž1x7ª i»È锟$\¨wÝ–ÜÜ#¿UwŠè7jƒj›??ä&) ñNÞ£¼;„^t·~P`¢ Õ¶/[!ùV=ÝôqäGÃEd—=¶P‹û n¯ÅŒÅ~ù…Ø–7õiF¢[“ߊ±X¬IQ‡œ"8•ñÛ l ‘qÁï`dK³¼oiM}mÿ:îK¸ù•†žnSܯO{²˜Ä—¨¿_„:hÂU„ÈÃwˆ3wê*HKËÍsš;³ˆ.[<çºÀéw°Œ¤{Ð…+ˆK$–N/ãG¢/·`H_Ó”ëQÁƒË3 òì sùiæôr»; ã}u±ÔCì1å0]ÉObغ“fÈû.»îrCÌá ¦ ¾ËªïB¶átÎG•M‚9IËêÔ{ó–èÀ!+P2”PÄ+î¼Æ­™|4Ñ?ús™FÄü+³|™ü Š1©:!oY ªÕy Gtñ݉ð›X˜DHS‘R¡iD7waEÁúدش¾·e4‡`ŽþHhµ¤Šf°JDÅHäWm ‹•F~ÅÅšù¤mlc]ËN}ùQ_"€â¢ÇQ|Fª(ż”Q_T7—Þ„È(cÇyýíïÿýø nbØhxï@´Ê$\¡ ,e¦ª«ÜÝ óÅ|W¿È…%·ºÿ$UÒ¡)¿b OóLŽ×œÞØnb-9Ñ@QOtà'–E *Fæ…è܉ûöRl‘Ü6[mseYrºöçŸe£‘ì{¸zÊ«¢ÏKA¿xýˉW+úlxust¤ÞßS9QÞ5R‹Ji@4šïÄMÂKi£¶®iùæ‰Ð[ÙߣbGï…ìuÇâxNL¤‡ßcûzROv󘋸íå1rb1“oÓ³¡æ¼íEìÆ€CÐÅRKY³õãLœÁ½Ðà…¸H @¦ßL¨.ÏuÛ‘Í#›ÓäÞ :-Ý1¬™³¿›Œ¹Äï¬$už]ëǾÙ^%”¡(†ñ!€¸Tõ()Þ!æCì]c눓#Þ8y[ÏÈ@Ú€ô 7¤w¸1 Ÿâ‚º]7¯!š‰Û¶à €Äö}D Èò*ì %)pgG*”sòâßþó×÷˜@Ýy5€ç\‘˜·ñ{þûÏ?7KªG]çÛ?o9{“V¾~Úu{œiy£7€j#FóÌÎÝõZ ¥Yè I~»$B’Ê­ÔöÉ?F@PÖõŽ=ècINÞ?ô &)c„ðË™KøÈ’qPÆæ`Áßmkç€è [ Ž6_D’Lל¸Ù‘ ‚‹²è;Ã;ŽhÎòº{·’ð‘/ä“ñ# V´†”c¡“Úñº¸º.@¯Ž¤È뢖µ# ˆ´7qHHµîódR´ë¢ŽÐKÿC¨°‹.·&$N^"¤‚#…-!¼Õ•ÿ%hy$‰\\Vd-jM7}õC(ö ­­dE@O´ÀÅACÔM7,«n("bž»ëbî õƒñçŸþ{ µm’6N«gÛúéZœœ¨„bÞ¼Àp€‘‰ØZPéHá­lºÍœCý—üÐV»yÜHÆ»ÃLZ(õDºæÃZÀĩĂíÚúFe’.?pqÚÉÉî#ðv-i+KƒNWñS»™-VÔ?Ø‘ý¬³+Ût†Ÿ' ²~û3œŠ_7^±{ XbÜ{ÙçC_‘C'¬$7ïkeB/ëþÊ:Þï5~¤ÖW¶ø³ÞÚ¯BP¶(ÛnK1¨AÞ»\»ã(öÕˆü±›"äW€¸IA%Ù8lŠH÷jjî¿™Ð%!§ºeVá<©©øæIü°!¨ç˜«£B­®ÌiÑöQ€º«›?[¾ù‹×œõ½ÀžÛzµ”Sˆäœ!ÀL¡eÌx9᜔¤ /ñ¿rCihù¹8c{‡ÝÃ;ä%iï5•c=/ùëo¦á³¼@lºÇ8U2!Ä\IuàÉ^ ôväÝ.N)²Oú M}(K]ý"I‘dTÕOX,—^ìÎCDZ¹&P÷¤ÔâBµ¥ÐýfPÉÁi"·–PLyGŠ‹ù°Ýüè°‹¦"gJ7sX‘ª‡ÒA¹´ŸäDy/õѯÖ†—fµ Á«6o$x.N á¤"‰W©\/Aù-í!4l³íµ¾Õ¹m^&u‘«ëv³åœU{>WI­[Lìðu Jy’Ћl»òrwNôgm1i, >ž‹”aËš,Uq@‚'¯jc+lû³Sî´6ÆÉCJÔÉáv‰òáž^N„òDÊúòDáÛg…Ù_âø©„¤³uÛH*bßÝÈ.ÈÈLèa$',9é%8'ŒlÝõ.Æèçâî¸ÒSK{Xº™º;Î'IBj—¸èNDº¢¢ÖÑðíž!ªúš÷àš¢¦Î$Ôœ,B‘Vå¿£9ƒË«PD?Ierœ ÔÍ•ÑÃ#UäȾØîù$—«8Ô 9*~V W±Ì’âVô]§‡_·Ð)ûËæ%òc¯-Uȯ¦?w{HÎhËO¯Øëª#q.=H̪\6Ý‘Ùx-ǪÇß¡Šìá¨t˜âŠËfŸ*Öt¿MBë®âšz"H›úŒÂï13 dºâq‰!áÖRÎHL0GWö‹î~]rñ)nQMõçó+âýþÔW]/:ÕyâATª¼˜9{V„JºÅ[êèðrz¾×úÝWJoWaGΔßB4N%ÍVS´*Ë`F<Ò2cÓm/dÝÅ/áqÓæ*óc¡¾Uc1UìÖ·ù2ú-ònè[RD‰l÷âð#ÿñó%ü¬­¯”EpŸ}ÒJ~´CÌyBxÜ¿ÿ$U]%*ð^ïÊŠ`Â_BvÊbʤ¬ÐäFÎ`B#ÝçÚüwµÕŽ/¿Í†"í«@Ð]y_°Z]‚÷RƒÁŠ&š‡vn眵xàÃP0‘YMZŽäŠ6ׯ,^©G?¥å‹ÿ,V¿5ò'llf0\GñÒiDÔN7¡l—åÕó³p™‹œÙ‹Ú IôEÝ=hæD72Š”ºÔaòña°ÝÀ¸\]wîl¨áþ‹ŠDyËÝ+É ‰f ò>K6ÈDÝ+×û”K4}Þ@Búb&O¿ÀΑ¸®è_ìÕ¢ÅÃË êVmƃÑz5~Zš¥FóÛJ?FL«DÛGÖ…ó,òª®›½ˆ[ŠÏy†NE¥Æ!‚B†–.–òÎIÌÛ—®'{1e×eƒ}xŽ*“h_á }šÇ¨>¹â=UÆ 3|‘}_bYÖ)XçØìü>#¡}àåŠÜ>p¨ÈadUu®Ïû0Ìî“nQ¿”Öº‚5+ v%ìLJÄG·¾ Dw…YèlÉŠÉ\.O…Ì}ÂeIõ8PYa£/…¢õâÍ9[{ ÌK€÷5¶¹Z"ø¿&öq_²K·%‘i—±Û+Ui(Ÿ2ýýœëdéã¡S\Cm¯;:Üñ5”=Ù}EFÓ˜B?×®k¶á„@wZ¡îV!03ˆxw ¢Å–t¡µ\s9 ñ‹*Oá-剙u¨ JZ­F}bW!Šèê‚:¶2F5ÑК€ÈÀ6Ëz€?…öÒ·'ò±<¯•æ§ÎèH|þ ΢½˜Ÿe}ç¾mdõáÐbnë+´ý  ªa¢Æ Ê~q¹Î½=³¼–‚¦tÜ-kôm O«¤ÇİÆÂQUaÕjV_Q±†Õ.8x8!7Å3+‘*Ɖµ¡èÁÃ*ŠÈØœ‹Š<Ý)†{ìèàˆ€¶µ(ºÞËA~Ùµäèßlê -úû'k6Çðˀǣ£ CÔýÕÕ/¾)‚sy7`“p®ëî$a "ï=øø"^"mB NÖE¡€³ñýéZo¼AÂnF‡ýlU¼hmÖÐßsѳœ¿*Í7àóM¯ü 3ö ùp=\Ú³šó ¡T‘`ØáäyêqzT·ó'Ñq¤AAmš@­(;úMý‚¬ªYQJégÖ ä3³gÁ=õç³|Õ¥ªÌªì`ÿl XC¢¬‰+徊ÛçbU­d²E3ØêRÌᦧÕâ§·×í ú06Á-ª²}ÔìA=ï3é‹.Åð³`anPˆ&e£µ‡“æ0ŠÛG L§IôÆ>B“yJ Û¢TáŒKƆ+ëÕØ,IGŸ7÷sA¸éSYïþû¾”½»‚.wY‚7쪧د^061Á ŒZW6ßeÝ.µ¶ûäJn©¿à«<ª²`ÉB!©O¡x°Ëå`" µHJú#®è#^É » fõã^³&H(3Ý@ÖʰW%ÄÅ¿'|Oú$À#*)¾6ƒ…¯lY‚£þ¹·lq˜Óœ]§ZM‹°>@ѱÓ=ˆÀ¾_,bZµH[eºï@VçZÜëQŸ»&Oƒ–µ¦{ pÃn“´“ -c|¶îvü…£u·D°¯Ea+LKKŸáTqUþ¢Õ`uú¯Ëæ;úûƒÜ½Ö²qÈÚ"·\ˆòÙxªµ¿ê¢~4üm·rŒ› <»8gÞ]É-&&ÁY›Mð[JoÆûÛT3NðÕä'yâÿöêwO-½Ð§5ýìPNW¦à©x¸ä£#ž¾ÌúÐzübÊ–Š{¹ q}‘²÷Uõb.Ú§~W·Y˜J¼™é=¶ð"`ã3K½µó>á®JÀʆùw\U\×1“‹–±}ñAºìú–“Do§ÿžÀZÓ¯Dˆ‹Kaþ©ç§gôJ•ì UU4õ}1hwX5Oñ…óm›—¶'Õ«ë+T¸œæùÞÎ÷þÄ~ R¯äÜ å•Vy"¨¥õäT׳WþÀÊnjâIRÞ†R̋׽•@U#ÉPÎañíšgžS~ë ,e0=¾´F…HžL_‘ÓÑ"‰ØîޏZ²\¡‹”l»*,–·„ï ç™Q»s+ˆOUÌ%RÇ2ç?#m£óVrÕÖ½Œøè3жêí¢ˆ'øÂ`<;ãç¨r¼å¥‡ ÆœvA×v/Fý”%ªOã™8õ7,‘uNRD%_TA1&>í²&ÝŒe-Ä¢ïeÙh´¯Ø3 ß F6ÛÃÜJW‡ ­,ã†úd·—D·U7”œ>§é!J}/íø‹Ãl±E3Þh[Ñ"PúËB¶Ê¸XVƒý?ÿ“Úk ÞǬÍ.‰>?/o½ŸÎ+zø)Írì×üž&P &¯Y“9 ›Ãæš?FhpJŒßð1²­=”]{×/,ùÖѪXU’£2Ô((£'f¢ž_Šž¢â]çO`p·`…LÅ݃=c5×Î{h2ÍêÕ¸ñ¾Ö@.Y¤'Õ§W^×÷´²ç 9¿Nÿ‹tê({Чà¹'‘¦ÏU@qFŠ^¹ç´­™ä€1ÉN½ýàõšO©¸ÁZ3`ÞÙýª²«èõÀ¸e&…a¯QÑ|éJaXй¸á;žœX•ˆôç ¹‚/å¥Ãⴧά¥‚@qÙ£ûÇO¾ôZY|ìòÑ:8°¿ ŠÈ1AS ÕœÍkž\k8MÕN<¤OZ}¤&á•*íOÑu$M u2NÖ/=ËØXÄ.´NãÆm›wrù® kÑw^æ#+ï4˜Á¡öˆ\x‘¹™Þ u}šóÍÎŒ×ÒGáÓÀ=&Í2;ÉØ9˜ –Øá.ï 8]æz˜=KNâ…Ük¶ºåXi ¸ UgMðö r_ˆˆŽ~üå-¨L¯x°—®2jZÓõ*nÑ3©{±2!?È3‘,xdqCk§'8êg°˜Íœ32ʶªîúÚÑP¶§mYTx´wyX0±¦*ˆ{|¶òÈÓKkŒÝrê^TÊ·!WÅpmrÐ y«t#½v61Yx[HE6Ø›%+§­ÛÞ;:¶±0çBUŠ4æ"Sp]ï_pcr”k\çU|³¬‹øwÓ$ª=E‚ ·°Œ}ùv²…3m"šðzØ$MÁýÇÆpco]ûó-RÃý€UÚ»ÊK$Ï„‹s™„r=®Wc}ÂÞ«öS©ëÛn"å·ÿTâNر†­¤V½ìÝ +qtÖ°Õß|õw‡1×þ¢Ëïg÷=t‰ýì‚§ÁaËöîÜ’-Úç·Û¯^gŒ¿JøèT•÷74*µÇÔwö³Ý½ÉŸvÉugzƒýt}‘k]'?š÷=o&1YÜ™pš(ð¥AN¢Í:°‘¡ö§ÍV[]Ô÷ŠÝ¢QfP½ÑL3‹ÎÉ5aT‰šÊ/  ñ•§Ûìú¦ú;‘ŒÑÚã«Í2pS«˜¤SMÚæ`7” Œ÷霞dí«é¦Èà° Í}4uH9Œ6ùDZ€ §koK¢X8ÀÛ„r=ˆóïMËî$3=“UVô8ÚŽMƤ-®£*k{Þ1rc-[Úu/Áf@p«3¦³ÊOÏ4†‚‡êÅ\@d«ð@¹¡&Ò[ÿ\哦»O¨©ÿûÏ?Zd„Çþ$2dCä¹éñ­Îü»¯‚[Àzd Vueù¡·¯æ’«[Zq©tÏ?²œþÑžæ>ͯ®9iûÓëÌŒa4à™P› OYË~i¾ÚrT±Â3Æ~?#M¨à&ÿ»ˆRÖëP·xDPúöoõõ- ZS"˜+aÞßž °âägìÚY:l\íõ]uν²ÖMé‰~ƼتÍUÖÄ;à”‡¦Vfá¶{ÓÇ\±sNÏÓ*nvÉý*úñ=+Ù¼s$켊gs.ÌÌ#YñÚšûo‡¿Ÿ²ðû 0÷â'^W|üç¿ÿ£|¦±1G6jëˆìZÓæ‘9 žnUàB[ÿþñÇߘ³Ø¢tk_¥ö7\±rž¨ÓéÕ+Ys~Ýtj 5²½9€mÅ/"ˆA¤«àI Ùƒ×\ÀàŒp)Äu~¨‰NÞoÐw¸Ãb±`ë•|ˆƒµàº2Oýìæàd*œ+ñv!çVb2+Åþ´¼iü1™iEž—.Çc¿Ž©G¾Ç +â{NTUëî8j˜^gv\™øFyf9†K9>ò}/…k,Mq,Âäf…ðàzŒÒ÷³ÎO™5~ŸF¹ö桃-Û_ ¼ "“ã·v ïѶ ½ÁHI°J»í‹Ï‚n_,14€Ì‚ãqK’5,ªÝh!:ájz×Ù©®oq¿u~½ô™ñqýÆÿ®’àÑ|÷ñ•SÒÀimæ)h¹c-7ªÂò%8"±åA«¡‘ ¶° èà{Pp¼&öÀI<oj{ß¾*¡£µ×µdéBÒñ©kÛ’Ð*ž›®]–j t•bíoX¼n»=í:!§ ¤£Ï·"9¹3 m³?‘SoÇy¾N¬ëê¶Å@$—Ê'Zj☼(÷¤z®¿ôMN:*8¢]“ûáh` )c«Cn½ÛkÜ>zëÜ…n_Þ‚§¡¤ƒ1<«cÕÃ ðØØ¾.ÆôS—œÌ¡÷¡]3(¨ŒˆpGk{ÇÃÝ_é N”&ŠÑM€$Nl~H‰Ûo….ÒkSÞè±?õãhª&b¹ª®­õ,ãÕž~rŽõ°Ïo¨¢„_ý’¬aæ¯}Ã7 ¡ƒÐ<¯†¶Íy’]ZÃÚ37w2Ü4kÄ/»°(UÃó8νs¢F?¯wéão8ýöñ}×­¨FAÜ*mÙ‹èÈñO’±ºç.­Ó á/Hˆgø-i€}¸Q.,Þ^`£“õO0{xE8w|°;L`,H×7°Bó#÷†)T®y&U{O™%Á>+Þõ¥ÿYÊóY†û©iÞ‰s™^^h?½Î‡øÚöUx±`AVØH‚^kù@¼9ø³RÄÃ…¼}¯Ù ³¥=yÜ¢ŽUÚLmGxx•¡¡þ¼“)¼7´CíU1¢G o$ªáÿSýj©Ã’ÔR³àÅðw ¡ösŒf‰nÏ7V,ÀUÛóßc>Œ÷šo/cª×ißþèÈ%EQLTÅÍ™(mÁedÕ‚.‰+T•Þ·ÇÓz¸°@Št2 m³‚–nÁ.øÒó“E•_­@xo´BÀIt®%´?Éaçb°`xÂáäÖ›e(ü¶ú©ËŠh3ùZi™ŒÂYtÆ–ÂO%¤ßÄCÿ¨þlG€à æ)ºßCR[x¸¡MxœH¡ý^~ñ*•¬N±áÏ;k»^'ŸƒùÁH™q30ìªé‘´“e °´b rœv}>h¦‰I»k#ÖKœwhúngdö–ˆ7U~É }Ì™Ëó¦xI1NÈ”²+(æ´þ6u»mÀ“œ7IÓk= 0¨^NÜ‚ChÉÒâJCäÞóf¿ym£LÛ‘â–n¬ánŠ òç“’]”)rÀ…Ç*&ýº”e?žž/þra¥TÞÅU´«ÙÉ/ÀÍêèÄlONìÙwG¬a‘ÛIQgD‚eaÅæÈZ±½‹Å/9©=N?Tuû —åg¼ÞZË–Ðþ]‰ ÖcEø,ŸÙÓØ6upwÑÚ ßZrøFÖÒŒüæBý¤Zð7=¹d¾Œ_ÓM®í+á7Š%Íöß>FyŸ5éN d :;kîÿØ\]sÜ‚û‚ÀôgÑ N!GÎb ÒÓå}×›+“ÀîØ(ͭܳ<“Ùžý ÞCãç¼åØbd–h‰ã{Ã+ÄpÏ2ÒÈsjCÑ’{– ½±k ‹ò¬=·ã¦wÒ5kDHbMp´Š2JÂ'î%/_ÐƒÖ gU;µ gŸv€o·¥4§X^‰}`Gꬪ7uãbRmžùoñú÷¯ñù²¦àµüÂ0j£4TÙ]Õ¡VïÚç_>Ú$ÈÛmŸÁRtRR$êºt¼‘ìJ/\˜ë1Í®µóy+Çgè‘te;ßb'÷ Š^У’¶\¯‚±ÁõüǽLÄ©~ä·äç‹ò W‹žüýÇ7Ï?XçzC¬*V;§»aî±n¸{6›—˜¯a¿‡¾è~/€”HK²[ ªßþø7ð½ÿuuÛdŽÇŠºn Q)Éo%wÖÇ:϶‘ó'Œ²ÍËV¼ü}íHYty'‹Ÿe©{wÑê8€Ê_Ìjò—ÄåÔ 4þý'·”P ÂXÛþ—;QKeƒ¡BÊyü•'Rô%ÝV}ÙÒ‚m${ˆ ¶gˆ ¬9Wt\‹>¼#½_4§¬Öë_ ’üùÇ·?`ÛÊ|¦#ocæ»ñÛßþµñÛË­ÚJ^6nøu“’ßfØÙ»ùW·W% Ûlü÷±ýWÛá+é¿£’}›ÍF뎩;ËïwÍÈûw„è^/ëÝ@´ÊÒ$;G³¶*#0Za“a œgY€ÓJRC Ь[,Ý©aný3ÿ)^HãIË@>“æŠuØØô÷sfn2fèßÁk¤ÍHޝ›Ú¨}ϨÈ.û(hŠ‹‘ 2´1WÁÈ»#MÕ Wù–®·ÓÅÀa².­~¿­ÍnëÒ‚ðy±Ï;ÊÁú—ü|[$C³L³¼rH¤1Eß±[Õwi¼‹C…-3hÚ)/½Z6GÒ9ü°Ñ;)­ª‰úzü{…è,ß´Yžß6UQYÑHÍxj­ù–‡ä™Š ioR­ˆ‡&µã~Ï%j@ž¹j>Ú)•—·'ÅrÈ-H°ú˜o`gl| ';§)¼çzª^8sŠ Û©8Æ Þ|€_]Bàð‚-Ú`xáèB‚ÜÖƒ±ú°`à^×ej^~XPÙ]a¾0+©ãDèSÆ¥õ½ï'º.ؾÓX±Ž„ºKiï|)4Œú ï'!œQŸê~ªŸH2Š …tLÒ½fœxÝç&©ëP;>•ÛVé,ãÿ~jϲôበSîi82ÃýÔŸüe÷,—áAm^7!Ú‘*ŽœT°‘È}‘•“׃‹pQÎKí¼ôOÙ+˜åê—Ñ™–°ìµ£üžÝ`qŸ[Ì]™¾´<c†0?Çj9Îx—˽nOŒ£OäŽþþ\gÙ!2ƒôªß³÷²¡{#ÓâÓl‘=ž˜5søñHT»r-¢çî>ÄÑè’oé,¾¶Y *ðè)ørÏéG"¡x3r²žÁ£KP_ßá„yü|f4Ìofá­Y·æ! u¿ pŠŽùí#ézÖÒŸMo[”O ÛVŠb~¾Ÿíu Tòí †Vâ´\j˜ºñ¾Þ—gš!™ÖëyiH¯L߆$ä<òVÒNH¹9‹}·–¥.¨¼uH¹ðp fsÒÌ2˜tµtS¨£{”ÚQVâZò«[1mè‰uât¥¤¬Á&`›Å±Jˆ+õØÞ¨]¿œùÈï'žC@V¶Ž­X¼”ŠGR[öôfó˜Ñ梤‰£8 ëO^U†°H‘Ñ?Z—Z­¾®Y¦ Ý=S©‹†ŒæRä²4fÏÈ0›7i&¡•]4“Å’B81«#m꺸B?…c_’Ð_›mÕ_b ßÊ®îÆ1œÆœtb½Ùy†˜1ûS!8Fè ï81\úÇ6ùÖ¢µ„L¥â=uN 5ÏÇXlÛ˜‹W„0DAÈL÷[1ðŸMKÏ´—Oƃ™ÿ¸e‹µât*ª™îü®Ó[5X>ˆm:¸PòiÅ.¥ˆ·x땾K^ 9‰°Ö±Qy#>r,*u¯‹«#Qý7} •÷y}ëÏÅ¿¹Šo¸GÞpíoݳü¸cjó4=(a’ÜÊ„´gZ,¶pðKUˆŸB|kzcØeE¯šåÆ nb ö!Ò „¥²Ec¶œ í‹nc@î`ZB æêtÒ,êLB%[«Ó =azm¡Qi¯¢6nZܩ᫋ú"몢 eYB2Y¯cÀRž¯ÿ†ÿÂå ·ÔN¬îUBœØ°ºÏJ‚ ~eÄô#´üU+…±H‹Ä}Ùé)ºBðB©–k$#•´4ô  4z[w§¡s†»-#:rHY·©c²ztóék ª‡ Ζ¡»m9xÊ@Xõð]ã£íbŠzFiË ˆIà ÖbÒ¢RNÔ±7lµ²YQ[`JÌ`ãáõ¤Ôk¼(iÿ¾±4˜CkâÏQÖ¯_|s íù'žäéKÚ–ô©Ù, ΄  g„8×~ŠuÍF€¿áQSÔ¨ìôÓq0MrÓ˜4EX Ã/C¿ÜϲéR\}œ<Èß)V]ÄY&Dľ«Ôâ€RÎÇøÐe‰Õ2ÚjpZ—Žjni@Y©ö4b¬€•9ÐÚ0\—ö†6ÉUž·åQ}#0n~ga¸fu›œû4*GØfà]šdæ ?zðýBN2¡ ._ïƒ {ÉÂB‘­«Msñ~/Ä*ñûéôÃA™ØÖÆrw×®@ÎÔMIá‹Ò6ãjCû9ˆFï©„,Åý ׊[r?1åßÖÞ…Vï mrâ–S‡‰ÑÌ*‚júSÖðž%ƒz$.›ïù2`î{¾)¢ 5¦L<ÈøÑÇ¥¨Oéf¯Z&(¼šÊQ '«Y=h5:᜕ˆlŸ>‡Ÿx"&ññ[ꯣ«s°”Å„Æ"öz³ªé7ËðØÊJ ‚à=ëÚènÞñÌteÉ"{·¡ýägOÛ—îXÎånH»M×Ô6V™Â}¡.5vcôqäʃ°«ãÑÛ¢Á…ÂFaÙmh¾í„~e[ñ7™]:ì¼ ¼ðó©wñc:“IÀj`Z²¿Úº¸ä¡‡€nŸh? :¡«¯¦Ñµ5;Žw¼MiŒ4ª54¡»±¡ 7õÔº:¼Û`“xv}ù_R öÎÊ„äy]U œÕ¶”Ï5]ÞÖlNPûk2ùÓ˜4L@tzù«8^k ±0°Òdï=ðG‘§eDç1êáÝÁ.‡oGeG‘Ö'—e~SKQÿEÝ&[ «á˜haŽƒ†=”KUçò÷ Ïa÷ﯦžM»õ0L&?V^i!éÖ`qâ•d²åc.Z¡TÒ§Zh&TÐUæ óXÞóâV¢œÚ+Aá5$³”s!êGž*‡Íý¨g¼uö+ïøí›ä³Mß4´³ÔéDóï¦û¾œ°¢Ð±.äH¢‘Ôd ·ÝãÁe•¿DÃÏäRã²¶«i_ÌU¤zHHÔ³l.( ¶^Û÷×nÑÖ¾DÄÿê¾Ñ Mßy8ÙKÕM3$ÄJÀÝ×ÑÒ,À|ˆuN~¼!ÝÑyo#'‰ ØÕ3ÚjÝÒJevÑ.ðÖÇ€\ºRp0t1¨¡cTßYËr‰8ë…,õÔ—¸t¢Eeã¥ëS{‚d´ œ?«eéG&¾ç]t¶ÒÚTÓv†"„”‡9(Ê—î Ütu³‡³Ü¹%ÁÂŒ:4uªŸ.%f~; äÚ€"Òúµ6.=åè¯lHGv¦[hw€BÂxz_éšìmR±šåŒ·†Ô{Ûà…Á0¬‰ÂНt òìFÇ:Œ ÝôC—jNƒ¥|︅¹&}†uºq~E-~±E²»\ƒol½€íÛm¦°iµÂ÷¡+ÖîîËû²|ù|±‹õgøUuŒ'rÑúÛ¦ÜÕ­Ãzðîk^RȪÆÏnz!äYI&¤D¹.æ§‹©H&ÿüñ ud¯A ,ŸâÖ ÛëHásäMÞñk({˰b|;ؾ½“<95´p¥“®ß3‘÷™Œ\ ÿ(§eó>ã ië˜[ý•:ç®Çm~.ÅäH§‚ý-ÕŒÉÝê­W••vfx“Èꉬƒ¬‹T^¼/BPx\IÄ™tl&5pÐs¨¤}p£(È“JFªŽIÒÛ‚¢!|®nù渦™l”¾Ï)‘K wÄȨhðåAuðÁò,“¾ŠpÓj@UÐôñ•',YñAåú–}Æf¦À«@Æ2žêÉ襤´ñxÀa§'MËî$ƒ;¦¾è¦sø2‹bê Ú‚ì'qø8(üeAF0~yž*VÙëšmµTLÒmiK„Sxðîp(&có á™iöL) =¾lnûÍj^É7•Цá£ÙhWÄ@¼”¦’uªµM]®²¿F›H>¢0ŒyéÄꎞÉÑWe ¨gö,×ÑTPe¼" ¿Ö],s­£âfÐ}M‡TÙubWɶY|±©ƒOꄈÞU.9X¼R¶“祓àî#0ïZWŠy‰o37¥÷nš.ò:¯ÅÿFËLÓ~ôhõt‹úY³Û­NÎLOïe•*«ˆå÷¢iÖhÐØŒ¸\C¡ !}vâ½éã!÷„!8b!«¥9 l1ñJ1cf£í[#iiÆ—ÇÃú ³ù1ž5w%@}yüï£L÷™¬íJÈlh¥¼ÑU€¼ö4‡±É('Ú¼†WŒzìg†Œ‘DœKc¤~ï+06åL¸2ÂäFëJÆnŽ"c]GWmáó4P@-¯hçVo-2ϢȨcP eéV€__æBΣªã²ªËaƒWu"–\û =–¢XФ:˜fAÚ£Ùä%Ò(‡,ûiÅ‚±÷y+æßà´.¿®-f‚CéL¥>­ptºûYÕËMÚ°»ÄHð€4/QS– î‚ZOäà()É!¿ V õá‚.lÆ WØÅ0$!eþ“©Š}ÙX‚ðã°Å§¸a9@öÕêU¶>°ª†á"xdÄ8´eÿÄ£íÇgZùzÃÙ ›ÚÔûx"H‚éèåµ+Äæo uRÂO½•Þ xbA€ )F–êØ¹á_‘¯-ÞX AÆF½*2¥ž”uïGƒQèÞ„¢±¿Ñ÷0žŸuE?¾ýùç0¨Ó¥2„Mcá7NHŸ%M›UX{)õ¯Ð_%¦ó>”*Yˆ±ÔºìšCé„ò¢·ü°o”ÐÛq° ^4|ÿÈòö­áG®z^FнbðzãsÓ*§¨Y“'ÒªÜOHœ (ÁÍò¾=¯‚ƒ%£El vÝ»Ê<Û¼攨µŽì{Cvæ ‰=Øì¼îbSd¼¢´Í©^Øfl–4yÑÑQ®/M u¢œFHÀ¶©ó±pþ9W-5…¸I1mûÊoüHN„ dgÈ"ššÙÐZôMôÓ’K¶:»„ôóÉ ¶Ð,§ß‚T" !vDkiä/ÛTªáãµvzMC?=„êZC=„èZGÝG´/.¤]MóøÛ6’)2ÜJ¿ƒGЬHÎ2sŒÄŽ3sL4sL43sL$3sˆƒ‹‹y~ÙH.?,Kãâ8^ºòeØÐ2hH\Í`§0‡† õêª.‹ÿlƒVRc—.ΡwëH0“뀸¯Ø`"êøeÚC†''ÕòêQ?l[–ù%Á;ܽŠÎ6wëhæÈÙù¬–¾‘üËAO…qÚ+‹ÎÉÆí|eºEy_'I1-g´ÙÙ¯“ÿüBzbáM–ôú.[¬Wø{ÛrUTKÒüÕ¶a`°zÇïd¶A|ü‰ýÕ‘ˆ(š>AtŽ–<*4’ºB=Q$ö”Æü„'#Cs½ØK@ÉõÄhV¹|¡B;>ѶžÌ`ê r$B¨…Ø^×¹Q[2‡}hÃ9Ú’­2)þ+‡cëAÂb8KÒ€è€÷…J«œ´Ë‹ŸÿDroškãï îò,Š{2¼Š«2÷I…æ =Fã¯) ×]…æn`ÉÔdb ¡ñEt`»ßÓÊfàxDÍ£øvÓ æ‰¨ Š$8|K«Yq f¥·¿Iƒ21bñ¹EœÃÄ:‡1™žò¶gyº9ðÝf+GŽo‡¤3œãØOOgžîÏàYŸbh Ï,žÁ¿F"²=]hõç­â[öÔõ±7bê ¨*0¼þwOÆ1¤>µæ§`»ÃÆDÏܨ{HÍA)—¦˜³F,9Tóé6èÄ Ë&$z ÙÊf™1«¬°Æç=åÎ]­^yOÁÍ™ƒñ.¦Uð §=r¯Ø-'ùhòsz¬eza"Ž)×µ,ˆu\ÐO䥤׵°A˜,ÞÿÙ¥ ¼8"ºvÊÁ±ëÖìÑ€åIÔØT …4Tß÷È€K`»nñu·Þü!wÐ[çÃÂoB$F5Ö-f„¸’ñ~ó{•ºKr†HÐñ2?úcQG±åò ƒ¢n$×Urx‚Žwd‹ÒìJ:qeµ¹°†‡ÒèáY|¬ÍÂsl§Lª ÇÝ0¼’‡;½XqnxKÏÐ^L1¯„¶éƒ©’9òÏ4@?‡nÆ×7kó'5åE ö\Êx!WäSW¢±qç«F‚¦öF&K²Ä‘â¸h'бP¨äG¤È¦Ü2tÖ•\§/‚Ðk­ÞoG ÑúQ¤Þ‚»²t´ºÔÐFéñþ±6§xZ©bFÏð+­S0Ä«ZŒç·?¾ý9oË0¡å£hhç›—Ê7?•R3d»ÏÏõ“88ÀiA0Ô_°¶ÚK e»ˆ”ÎÇÔÙK3ÌÙ#q…wÎÖ ˆt=w> ŒÿÒ¾¨Z'Áqx-1ÓÊkÎFëîDot2¹ËõBëÇŽ_ÜÏ»“óy߸õé^¯‹å3¼[Ñ ª¶þrü<èá¨35k$å*€Ù¸Åy‚¶ûÔ2 辕{6p`TÝ?$$s³:Ý$‡"—ÓÐzð ¦Ûš½5ð6„Œ¼«Ó(p˜‹ð7ç8fï»Ã‰å[ˆÁ+­jƒ›^†,£ëfæièF”‡a(Çê` |[’¡/«€ß µù‰"­æ#†FžÑ¡üÃyø®:»}/ŸI[S®‡ ¿ló$À”ç&r†bIÆ«‹züçƒÝ˜ Ö ÙÁšüa#gý.Á/ ¡œ ÄTBzaZ²¶UÍ!*kj'ËH±ímD;Gb} þﱎK¶¶y¨t5c{Ÿ UÅ"\IÇ+ú8—±6ZE(ˆˆÇ< nÄ´ö˜¡ó½Ãh¬9Í¡ ÈÉ`ºw¸ B¥l¬‰¸“ÆŸ›_³Æ«[_YvUÁ×ÇÆ»¡yÌs®ÁJHfâjá}3a<¤ƒ¯6§€n‘º®*Š+ÄX¿ì,|Út„¾ñt¡YD„»C{¢¾¢`ÃâaÈñ“4¬ôT\6Z …>Pð&8ӽœ±©éÄ¥Ã; yƬ1<Š…îcÃ@)­|~¾:ú´óÞóÚetÑÅ__ÉlT¯3üZ3~ÔÝàÜ5î‚u†¶YêºáŒ áâÌ`se®É®ÑÙ]í ¯SJ®¯Éb u‚³ä'±–½^ N×— 9©ÛgøI|¿ÆBq)AAIXW±îÇØ³ùj$È„p=ÎÚÕèÍvX–;!Õu,G¿;ÎUbÔãܵ€sL¡›‚y@^EÀ¬ú㡈ScëdX5­ÛÏrÆg,b) ШêrP£&Þ¦£EE]Æì\JvcNHЦ+غ˜,{#¹å xÇÐa€&dþîÿ¸à£0N­B¦=¾g¹òf–Z*¯4fÊÁGJÆdg™­Ÿ¯5w!õtÞÌžä§'·øUæÇV¯ÊøJXþûñ´h¿$­ ¦¢bÚÙ‡O–¸‰ÎpEZ=³¤%9–Õê8i6nýv.—‚®Iö¨T¾ÜÆlb3hõ`¯/`ú8Qˆ²‡«ñÀÝÍFÈÊäzÅ‚ä(/1Õ@eÄ–0òzÆk«íNq…Va_ÀÎ |/Î0%“W¤‡8™WAæ3E.šë¹ªG´¨Ë¾Ì(R¯²<¬´–^ˆm¦<üÉéÏ ZiLѲ`Y[Çk?[_Y1 ýÊ—µÛFKž·–¹ ‹À½ÇÍËT¥XɵèS1 ÒðuÝ=VÌZAáB§È¬ª–ÿlÔ^Ø…Š‚8x=œAøNX¥¢Uò&(ê1Õ`Š\†È‹S¥—‘нŠµ-ô&>Äœ€„zš8 ø@ôì+¹PY…¡\æ†D2=¦ºéž7C*ö¾˜å& ý×…ÒK}Ù UX•ÿ*ãêlN6ã'åi"½9µÂµÜÐÆ}Ùa[yýP¡OoB+Yzª?뉪üfš¬í Üá9 5©)úí?Ã3åË1/yù¯¸—Ù÷ÿIq-L¸¡¤ÎÒ?iœôÕär6ÌËÚR0‹Ø®+ sPû§Qnm¡(Ñ••Sà!rw‰Òеgý®‰µ= :Ÿ]zQ5fŠûKÿ©—ÅÐ~`cy\Ã~DVFTuÅ>äT¬ÍÕeU4bùùC7ÄÿUïVýÑW¬n×D=ÀA>e²ºðïyÀpoÎÓGò{Æ®gAŒfî[Œp“ÏPðs>¦l+ä6Ù…„ÛN[=ZÁD®üêKïSº¿à÷PÖó$³&µ[ðç+£¥BvàIK/9.8>^Î6«t n‹'3% šR Î¬™‡Z <³7@$0£1Hç-ÇÖ:â<¤è2ºè†NyHGmáÝóæ†_˜ÚpÜÓ+p3ÛÓ¨×;Žê96®×p:›pk!<„€›¸j^‹–áNòïmÁ1ŒÓEž«‹ú2«‹Ãßð_8O[K-‹»¾"[9Ò§lˆYø Á_GVHrÃ/¶ë^Ö…º YVïÈ’èw–T˜Ù%²ÞLº†¿Ó!àŠ÷W™ìó³b™Í.âÈÄc‰ðp±ÄéxƒÞv5n`ÏÞ’zk7þɉvĦY©àV’éßM=ýSºÑ…Œ½ôö˜~ùõüwU-ƒÂÅï{ʪ¸M`¢‡ÿ/w®ü8…ÕÝK n¦Õv¬p­~HáÃhuÆQR~‡ fRÅJ­šP³WA(Ѥ†îmÖ4«®âž½ôáA:Ý ŒÕœª‰á¤ ç ÚŽnzhÖœw6 †6:dÑ0`²Ð5Á§´– q¼-O©ÑÈBzÅóÇÀúá•ÏE°u «ç!±Ø%és²É`i_óúFÝ?ðaµãt÷ ‡GsÈ6N¤´_³a Ö…Ykó¹lüÚ”ÇÖξ­±µ³[¿—ç¸vIÛo`uãzbÎ÷õÅwœX•µí8`y,pÓV õi•7}Ø$ºj•«ÆûÓ© é[š´-›¾ëVÐøo+ ×}˜¾Ý>’°•å˜âìtÌ*BAÎWJj0odRóÕø)ÍòøY9åƒÈ´ð*^ÙeÑsÍ¢A‰Ùñ;0š¹Zœ>5«L¯p€…MEž‚v¶Â·ˆ­~ÚŽ°j#¦1MŸþÒ‹M48¿èè°ñѵÅá‰9&ȇ†Š¢lWeÖŸè[Å"!"Ò_¿åsÆÕŽGŽÅß<ÕyKáU[‚že#ç·–å Ø*Ϭýµ28Ìaa¼ÛÔ€0â[”bønMQ7©÷$^¸Ês u¡Æ+ÚѺ¬à+xyæ%¾äß·¿/X|È^LX¬ý…B½â¡%'qwü¥ˆëò¨xæÞ[qÝѲyëÙ+QF“4­Òå5W û k/ølEc'­*Ú1*ùÊ·cÒizK SÜüwuFÐ7$ˆÆ¤Ðë3ð±YØœXôNæG,~ûËØ 4ÿUóNElZ|@!WwÕÜàÆØn¦ÞWØ»TyÂë‰õT'(ÃïèwË…ì™nT€‡Ry‘¶‰Â-iZÚÑÖƒàùõ¨É;0€LGeH”o·§uuiûÊx¹)î5îùu~«8«%ü†ÎÁÛå\?gI¥ì0}&v ^Zö|—Ö–´ü¯09>Ê#Œ³®&Ïn Æë#ìCÆ9î p¸à_ï°‰;ç¡®«ßd{-¡ÌÑïÕ U¾5€ò½\%¼’*à¾@N òÎÛÇÅ©ºA»_»œEƒêE¦4 ¼ue]¯¼ûMpZÐlÿ8­èö‹­eQXû†ÿÚu-ÎKI«wm0¼F‚,Me0'ädzpt&ù7M£Reçé€`ýw9îsF äøUA‘é*DroOÍLŽò˜*Yóf÷åxuïrfº@uTW(ç´x¹Û!O(zïs;£}å´âuËßznòkßíÕaÀ;ÔkÂËÆ–‚ð;ET-åhy¨i‰µ=`ZL»·m¢úê׋–üÅßïÔ×’-}¬ø¿W”êuG²®žŽzy¿‰<‡oàãwXõàQûžc×ÕjÝüFå¶»cU'ß1ð¶©þ|{¼ÜƒÜé/vbXö×pÐþϯÛèag/z5L·Âod Ø€Izó)è[Aϲäo‘ö-[cž…gKù›ºo—+…w}vUý‡^.±¤!•„[w¡6Tuû —eJÜôÛ6N꜕J‚ùk~ÏÈ \DÑÊ„&!ðQZD)Œ×ÿûÏ?†åø‹:‘uqþ‹ç…Y:¨®rÚò+i´ [JPºó?6:ß¹®Ï©ÔƒéW9äu›_DK2_$Öô{ ‚äDUÔÀ€’‚fkQ‡kzojl‘à)ó!Qd\‰µŽŸ>zòÜéYÓD _.ù7O;ÅiÁD(Él%rÊ‚”ãÞ¥.dedB@÷¥ ,£Uí:å•ݼ‚ú)¹P1ßVt¸ŸÕ”3­yÀÆd±â˜ª”·˜ %Å·?‘ ÆÓã²OcëpžX'ß ñšÿ~–EÛXê-jrÆŠ­ «®WðŒ¬˜N F¬–oaÃÁ¯ìt´èyYÉqzåÙæâ=ÉòޏëîÌ„®39eú™ƒ}{Cš&¤`µNí`ïâ•¢‡;Hüû²¾"póm(!‹ò ¢IyÃlzÄd„ÑànOÔ¦•jÉ2±ØIöq¼rV°þÇ„Ð@ƒƒoÜ[×`‘CÜÑHBC )q0ÒÀ¾÷Bá^zù²¢¬c°ÃÛaÀ òeÇ ²Y¾Œíj †øU]Sù±üˆÂƒuÇI“Fã¨bó7áÐ|y4ÏãÂÞqDÙ,ÇUå“éw~±|`©Ñ)¢ Ò¹?PÌS¿Î†omz™[q5ö<ÉЂƒ±‚æžKª6„÷jÕU]xw7ð…u‚AÐÑôT[ÉXkj]åiò:ïRTø„Ÿ,ÞãÏÇ;ò:Äuhà"¹¤Q»oÁ`],Ñ…ÔÛ4Ö¦n»þÒ/‹½Í?n$Úl«ù4‚¥n‡rm‹Ùî‚pÕ`½x[ñÌÑåá…ÛßíY.ƒ ⯪²³÷}—n.P¶ÒÛÄîß9îÚù•ÔWK¼ØHž„0óRþúƒ§>ýÈ,8¦Kã¶ÝR×RXÍê™=»g—ÄCÛ‚ ÕŠÜ•ÆHú:-¡Uü÷_ Ñì!×*ÉÅ™L;líhÝ×oõýâQĸh0—I؆ÔJñ‹¨›+)áj¬uÊë‚(Û{V4sÌ2ZÁªÙ¾Éã›S0Ïðó–™?h¾"§~ÙJŽq=s&æS(³”äBÁrÑÃVGFŒù&  Í„”«IÊâííô‰8w·ƒa»ŽoÌ(Û ‘UKÁôÛ¶•Ðg0!€…ƒ`¹8,??Éõðdlg‰±;„oé‡J.îLÉžÁ·fX)œ!PL´i\Žƒ°#¸]VçQ–ä)'‚ÿ®%7…ÜùÉX£.€•3 Ø)¾i’E5ÖkS§±È3P¶„P#7€9“ËиÒ þîÚpêÛ³!åVVÐS¢ÅK<Ö`Š’µO­Ô:ëkâŒH¤á½7Ô•‰ÓìËó㬠›³_'Äè%IÖ´:Žt¼iÚÃÚ¾RÀ\ãv·TÏ™ñ㊚$\®( ¥ÚY¼B^[ƒl`Œ}ûñ,ˆGÿ7ôÿþÆ¡ÿ×?ôvLâàqš² ætÄ8Z\×ýp¢“‹F`‹ +(µ½#Nòê P<Ûla'\úóJŸª¦Ž•Á’36ºi^ÿü©K7T•ˆ°Úoõïè×Ü—LM.´¢-YWrй7g‘hËw0Ë;-j¶néµÀ^œÁé´±¼ÊðWY²¢ ÑśŴžêúu…æ L$'’Ý’ò%ÖÍòÜ?8¤ÝÜŠ(_ùiI¿¹àôƒ( 8Ú!œi‡©©Ü(âéÅÉmu¶5[(!wršìLA85ˆ_WÎcí©°p\ö áUW%œìvÙªeñƒÙ°ü1¤]<²fh•5é;àáÁK› óEœÇPc‰oqwèÞ?g³ ÓÓ]¨ÎšÏŒ\)Чt O'd³Oµq I¹’»´ô'„Ä_ˆ ˜Ìš‹cr'•vœÀBÙG¢|îû¾eå´¦OÎìI÷ ÿ¹®º}.þù,€WãR”¡»Xº|,)´•} ‰„¥ŸÈG[¾„ÖÁ‰¶âðkwõ·¥býç;I@”æNJ8ÛE„gmÅÉ}'+ÒÙ°‹Â34…}$@ÀÞEàüï?∅-º›N~!ûi´l7 û¨±UTÅ|ƒ&ã#<ø B 3Ð`Ê­ã–pQê*K”§Ûê³FÆ‚Â[rq0à·_nä “b!,Ö•E¸¹W–ê4êY|Ý=:Ô’ƒ÷<ó° Âþ ësò7ØÐ¨ýÎ:\ªž£d$jü6¬û h€¸“0ùñÏ_GjfrÇóì-½5«Ìfô™C5Ñj4Þ:ÀØ:ø¸ÔÊ×´®3 O”Bi>‘[Â8JCÜðÑûÝáÃÆBzó âë&;úûÇþ Úɳ¦ÛÑÅ5Yz_žâŠd;¶ P@’¸gò =òåIþù{Ú%8 š©Ê–oÙ†kãÝ“œHÖó@;mü!»(#.ZËê­SOAÍ')HåÐß6AíO^ˆLjæÆï²±Pé§à0†š%‡çí¾ÍFF*e³v9GV¾˜EüÏè|•'B”o˜=‡¦fGѯi¯.é…ø –§ƒ6»¸^Våî­,Íæâ;‹ ³F ¸v±Ëê½îÙM[ç% ø@´a›ü½Ú ³·¶T½-‡@wéœhžÓ<©ÔÇG2-"#¡è1?ôOtº%På;ªø¸éà NþY1‹Igúzr°ŽÎ`KЧv !QÚ­¯§Ç‹•ï ÷H 1ýN³e.Òjˆ¥ÔêÒÛƒÄdHc-¶xzåé¯:”æeðæ›w¤Eÿd«À©¡?AizÐùM8’˜Bn‡nК Ž˜·ú`†þ bàr©YÎ}…í1òî ) ÍÚ fñ±ß±¦ï X´åôÈ–jµÌÌÖ¸™V¸¬Y(Ž J•9VñRʧ› ‘¡¼“ ָซž8·ÈM6^¾Û㌞äñ=¿à–¾˜¬þ…0%ñPº7€2 LwË 6»¥€¦ÐM!s*xJÔÉŸüìRG4À`ŸÑ>àá(K=ÛQçåy1†£Ài(‰Ðµ¢L¦ÖüµÜÀ 9‚ð‚]®]zœÍðDŠ" çÛròzÎþ“L•D#<¢0Í%åœqhj¬Ã€{€=’(CÜ$õ•´#“” •HO¤Eq w%”Ô-Ù¼TË‹vÙä0\˜»yZÙ¼z%íÞwæµ=·ŸÞæ«üF_µ¢ƒ{òQ—1."%rø¨ „ 6ĆôÁµ%(çS¹T­£^[*»FÇê‰vêvK…›åmë×´T6å¥MŒç·áÏé&ð™o -Æé‰¾ñ€ém[·oÃŽRuµCË/cÚ´Ú_§þ½¥»n@Bï±h‘ðMh<²MB YyVƒŒ¿³¶ë…óIðÈÐ%ÖÁts4É™Ó0ãpPS€$ B•£‚„˜„9½’U¼#ÑצÁö ^^܉,blîU¦P¥Âi4 úmNÃ,zU€mSïµáª‰Ð÷t| o‰¨^Ëÿ¢UjíÉÂS°y=ÙLN6´P;θ)‰ô-¯ÛDú!4вî°–¾Œì‘58äþ†¨ 5!¸Î‚ˆyåb¸7ƉVS÷l¨• ¢ñ€ZÑ‘ïé†êM'Êä"[˜8ný±äÑJ'UÙ¤ËOgX[ömdÈM@ÑGЈf¨{Nù­«¨÷ÄwUæ¶ä±/n0§‹AÇÑÖ_–âc!O¥o÷C펋ÑÄ‚ÌÇ%ßµIÎZ®‚^÷ÊKš‘yš(¨ü­q_ôìûÜà 4wFÜÛ?cüÖs°Ïì˜C½"Ѐný¿@^êÕ˜7ÇŠ:²Å޽Ð-ô«Uü °ù´ØÔÅ“t•z—×]ºUM晸•39Èî}>Fa‡#9O™aë´GËM ,Ë’l¼%pN¡žª vìþ^Æm‡§Îäýaº¨SØó;»%?Z“l££Ó x´Ì`qìÆg$uyQ;mj§–è¶5¨Ír%¢­€Áçã›,t°üuÛy“V]`e†!©çAøT~»É@˜—xY;ø×AšaXeríi/m`;ö—½²…~¾©§®^ÚÊœh1ö=‰ÐL’r ˆSœ&p°‘äQUF¹žáYõrøp÷d-ÁÝl~Ž_<¥Ú¸¤¡ýŽ_þ¿6âÿ°ñø­³‡n†#…ÛØúû+ýÿc ›¼±“ÿváCë &|,:£CªŽø°|u_Ýï‘MüGÙÿëk5N.~óR4ز¯¹ÿËLâ4ðä¯?¾Y :î°¿ ¼¾ÈC¼ œ2°7ùÞZQ½Ñ¶¢«EwLäèÚ4#¥ÁfJhþ&:΢ÝA3ÑãÏ!a}è¾lLò›|ÿã{êÕ¡àÓ®)´Í#u=tú©û~©ÁDèwÎüÒ‹ƒ9u¦üŒèøèØ¥¡•øá ¤_×9£Ö¨T¯y~ÛØ_j!ÔUBesŽÿ5—ÉàÁ>›"Þ'ê±@ö—ÐGŽû\oT5‚¦Ô&id$J9§Õ…nï»,šú6Þ¢Ìhð°ÎšÖC)èukÉdRþzùuÛÖó÷µÉša$/I¶ ô¬9âÌŠízBË¢ü`9Å*ÑÊÆæ®ï<ÊõüD{6¢ÞSv~å‡÷Õj54ñ …ã7¯Öá‹MàPþ….©§;l¶Žy×·‘(@ç?ò„Óõ¡vŸ–ôi}ÁÞ⽎žþ.IåÔQšŠ•½?±£û³gÙ­ }•]µ;äÂ2xæH‚€Òµ‡LûÍkÑÄ¡¼ ªuËß'Õu!bN á›ÐÑo¸/8•Ù{¤óH“bUt¤ëyתe>ÄK}Ióí5Nlà4vȦ @*D¡Ûñ¬ñ}ÃY¶ô)q.<(8KÚÃŽ N7Ò\™×Ùí.ÇÌÄÌó¬þŒWŒÝmäo'ÄN°ÖbÇ|}Ó%#õD*m—õO}2¥ ’ë±dÆl|Èñù -ž´nt~9ð„?øÎŠÊ~žé[à ´ô’S[?4£$-91¡JN?\ZJoÚßWzjéã+¦tú‚Éæ|•] ‹ 3hZÿe舯£ Äïš”ÍlTâr´ÇN•Ðê‹DÍ 2Q{”¢ c ¾B,çteýqNAˆÑ¨¿G£}´À$Û£}[7t1T‡ìjI|ÜD«Ñ:F¡_´ðê͵Ê+Ëp Å=ä0þüóãÛ÷p¾·‘úº¼íS¦o¤cõуv#MÅØ2a£×?çSh7 ͺ‡JIÚ¾¬°ÃÙ+Iw-m©¯ƒ²®ÈÎ>4EÏï@E.äÛŸ^ÎVaù†I‰>ûÓÄ3RYè&öŠââä­U‚ƒHE-F~³Ì3ÒJòzçHM”êSÁ~öþól_†ÒÂJ0¡]q<Ñ’Tus<ÙŠfÍŽ§ÛÔuU@†]„îPÍáHîXCŽ¿-… ÿÐ8UW‡Œ´ð7Êó›$­­Òôrè(F‘`­^7­ÇÏWµTžß?þóç üéee³¿ñã­äþ Ùés5Ä]×t¿¨hÏ”ÿ,Qœ•sK2ñM·Œ‹ðP`Îbgùµœ–^è#¼¤-ã7´Ð¢VààWÕ<ó¼/›)2jF÷ÍW, G! YÎÙ€š ¤[ u‘MÊ!Ô(0JûhóÔÓõ…W&<”3ïºô Xa¬â/-¡1&/âQ†‡ŠwYšÂƒUyý˜Ñ%£cŒÝ~ˆ! ï"¤Ý 1°aölÃð8$Õøÿüϯ€¦µ2A!Ø7—üÎö€ðÒû †/â3Ù±ùSlU܉©êfœ/ %ˆm)cˆ.9#…ö—Ž@ ™E&!ŽEÈ(|.ÀãZŸ‘þ4Ø€ ±-2®ÊÔΨÕKËò3ëÐø\4pø õŸÏ@ä£áitpVlydæTB&Še–PÑè óÆ° âUþ *2 OnL‚«šMZÀ4ƒÊŧ „%×MQèn—!ƒêc{M‰cpªû®é»„ËðõU|ï¼®Ëú“±5ÞÆA/~`™ ­ŒôËÃ9 ;d{Di›¬¸;ˆ“U°;#*aÛ!pI kb©C®·Ví®äAöbÕý{'ø|Ïß#›°æZs4™ezfßið|²¡´ÂB*Abw¬« kJ~Ic ²&XzBЉBþSEË6@›; G¸“.e£ÿƒ#÷çËcÕø± ë r8Ká 9#ä W)ZÛb÷›r’íK? RØk;ˆ…ÎáÝl&=áÙ$XM^øAt‚Õìh×2VÕsü÷çÑU¶¢p)žê;}CF€–€7ôÒx3ŒQA:ö~¡:w; §5ŽFoO-2 ”â•’Ýn'!½¥h¼·“¬$ëÈh:¦ÚŽçF6ºø1ÙRûK|IŒ®­éÕo†â£kÄ´M7ã½1s@ rZUXµ•~ÚœD̵ÁߊßàP¸ê·¦^”£T¯Ï‹ÇßCÍõ— Jm6žÊÌ+\Š;ŸÃð{ã§4ƒW¨O‡€DÔ3ŸBNC1HŒOÀ„±7É¥%¹ F ¬j¨·Œi˜ÄêQõõn)Í·äZž›kZð´¤SŽõa ^Ê-'$ír^å¹íÝCoZÑLèR¦îàÂÝÀ|&-bMd£X%^³‹|õù+†,æx¨±ƒ¸­ø+“il৸ͧm!¸TüŸ¸÷mË5rÒ‹È, õ%›m$x³åÖh£µ¼¬Î”ñèØâNAº—sG=&;:Šø.¤^¸x‘æ>nXB'V Áäõõ×H¯÷t“üZÒ2=ÐçZ{BŸŽtÇÉ­óðÅÝá L=K‚¾mD¶ÜÚ.Í÷Å|„ò +ʇ1Î+À5®¤ÚlÄPÄÅž‡©] ÄÈ ›fØY|l>˜_ì¬h¿=#@]¶ ”jŒlß;3*\\Š«ƒz뉒j®Ÿ"S6…¼O[‚úÎ~;q„Hê qÑÏ—rÃ9œÊúk;ôÇóÁò íøäê¥Ù ‰ÒÚ7dâ2À !Q3FÐäX³Ðµ/Ö£šKµ^åq¬&h«2³sø«Ê®mmêcl$â¿-è;[öšeY‹ß×Pj­šk¡6-íº— èÿz`ؾ}“–r!Ò%Ã5´ÏíZàÖ¡‘â%ö{A€—eŽˆ}@ÑEèa[kËj£Žß1q2|F«ÉÒ°¬iR³ÐéðƒxiãL-ÚèžóºØNÒXÌrLTcZÍZZ/8;™62›C³öÕtµ  O'‘,u¤-h\2‹f"êž¼k×5ã¶<ÂÍ3 1xñ/Zb™®ƒ½{I|wÊtõ/õPM¤Q!fÏ×¼ãYËšî¨~£ÝWå[zlgñž\zÀ£Göð”ðY2‚‰Ý}›La¯^f V÷38Œ ¬ÁXž¶ìñ‹Ž«²{°Ëh ܳì9iB–8ÌS%ÿH”‘+¢ñw‚zãx‡ ¶¤™ùݪ‹~Ɔ¸ë-{-WKÖ$ž¬Z’¾J’m ÖºÙÑêõ_ÜÕ;³WkÈ­-Ñòëf¤6[ÆÄ4÷|…pLߘŽ/Œ4R¼úŽJ¬Í.%¨Žr8Í“ŸäëA{DUÄð¡ž#ª{>!¬…ˆ¨—£†Ð6h#Ù¢H±ÓØNrý='‡óTGR\}ÞP8ïÖr’i!‹cŠŸ÷qÅŸû¾¿ƒ¹#ÛE#Ës²@Ow~ßâ¥Ö±æŒåE8ýœ–ÃÏ„äû$Û±¦+¼¾\îu{b|Mþ~𺾔Ôí•ñvùr?ó]c¦bâbzµüže”¿qÌYö‚£Q‚ìè%Ë¿ß?Ž`³l¾/)ÿ‡ö.Ön¤%õ¦{íò{¿‹‡2zãÙÇÏjɾ²Ê:‡NÖRk'xP›Ë·ï{öV)D°&~}Yæ&óö¸‚w ö¹o1Öç}÷\Í÷hM±óû¾àûF å‡‰B“L©%mÎò£:/Oaʨ¥u PÞPúzòf›NjlÈÄó¬­O§[7mzmÑc»ÓAZr’Õ*à(-²^ÊúDÚ©'½æëJøMú¸1ßáTŸÐ‘mú86Œ©)ëVb]ü•isÄ+Õ"0ÄÔ ÊË:Þg£zs€–áÖhNÕÿ-n Kú8< H”Ü_J0<èIl…›~ºÑ¶¢Å×€¼GIŠÈšäáÕÔvUµ[ö¤IÄK2V÷|K•Ñ]k²y<ªÙ$í'Åf·ªSVÒmÁWØ à4uF€ú;'óøöœêˆ$Œê”&j48Ö} Ÿ[BÕá™2E»I£XâóÌ›T„,¶ä]ÕÛ ØƒŠf3l6-hÖAL DS¿5×—ÿªÄÁœÁ–L¡7y5¶ßQ_pÀår‹T”ºk³–Ä(9ÿ¥q†ÆE ê¶õ‡™äÀ”N¼ÞýËL¥Ø‚ðåThܵA¸8S&¨x‚GU(™‡Â‚=¥º}jsþ¼ Þ]ž ÏHU!]‹gôY¨CÁó 7`“з6 žï©/.¤]bñfŸ4»j‹¹­«å+ç–V‹w„[.ÞXà 꾤ÑÔã:Â+˜(˜7âÅgZá•ù·Ï´~ Þ¤[zÃÓ.Õl8âDk–ó_Þ(fî¹½dºŽ×^ÄWí%€Õ8ñ†ëŒÎé€ì£ñ OíðÃYL] ~ÂX <˜/ú¥e÷I!›Iè¿”2osˆ'YÇ'ÂK¬ÑÖ½Ò#ó@£e¼Ž÷ r *ÿûÏ?E>§‚‰ ·…*¯mZÖ × Y j'£²RXÈ*xÏãPó<9±ê¿$¡[Ö˜5WRÛûriIu—Aç€zuÎ!óÖøHsˆ6âi= ô“5)9Oüè[!Œ§;o­,µ#ZSra`ƒ‰$[„k›>"#¢±vE£3× >Òÿ>{VCº³•b®M1ŸS­+­2q>åXYª [«ÈØ1NTo³ÅLBΡµ°LF"›¶Ø^¢¨¤ï0ÅíWÛì:Kg;©ªÒRzûØf/u6Ùg`!Ù„œH:›Fœ|߇¨øÐí±lˆ§×GÇÃÇ…·uFv€è/ ¬Š'ʧâ,³a-«K[‘‹˜j-¯,ÓG H« `œ¤¹4â¾$€ ¸¬¹¤_7‚Çk=#âo5‡ñ å¥ z}`hXQw‰˜ÄÖ(N`©¥£¶¦™ã¬(U—1rX&G !XR§×d¡ ñU¶¡2ø.㉵አ+F´”G"i€‘Î1:£Áz92>û™ƒ –žåK½CÈ AÎSi~¹Ð)!+|ì†Óµ1òf¹?dyr¬þcg…BÓvÝ¥¿:Í^»XJäÿÿ!m~ßaS~ѰAqiDñ~2éš„—•²7&!B¼Ï5¤ÿFa­±T¶"§ ÎÀ—ìϳÏíã8æâ=˜îz,« Ê3ì?¡zÍ\¼Ø$ Ú~Ý¥{㦄3+Ä×)ø˜¶ÜŠÆ Q}^'5è´Å5R|ä¢ï†X2?WÅ[Â?~ГPª Y§Àe¢ `/ÏžO§Šç9#ðOó -ÒwÛ/£²¸èJÝò÷ß´SÁ¸)Ì|=<~Òæúj£E¼mq£c›çSŽáùeŸCd„–9âøÖ¯ƒ#墷"¦smgý>2ÚÍÓ›Ð7½²ÕDPÏÈœ„4òV,IÈ0Úžäu¤mÖtôö›Ú@æk/t`i¡ü7,ã¿§‡ô.Öa`H‘ãë¤èxò³'UGŠ(‰Ïøô¶J#†nÝPa›ÃØíë14 ËLÁò²€±â¶0! ˆmv%]g\q¦Wž”‚‡Ã²Ašç¯÷Àî;ò¥wÉÀï5’þàq£CóC°î{E^5(tœu Þ–B¢bGq$nÈ*þ•›±8¢ðDE” N»ô¨^ 5*Éj±œáëAùY'|È/dfYUWb¥ÑÔþJŠ#êh Wêå©]5&Ã/¥ÏkA²^%ÏÙ6d‘?è)¯×SÚ6‡+¨ '¸ôüríî•„Ó’äC¹ËN:†!h„óñ¤¡Up:ÖaM î+U»+ÎiPU•¾%í –›hHP‡Ú£YIFt.â• ™Nû¦ew’Íx±eý À?8dÓƒØ=R»½?E‘@ÕÖ ¶Å] ÅÑŠ Ó‡bí5$ƒ§ðŽƒ¾òLb`ö<¼­3kA @d‚á)˜ºH C%d©â…ÁÚpbøàçÒ\ î§ùËÚWÓM¸w^gÂ`Ë; ·Û/_[ø‰îµÆgÇR“»ÊgФ_ZJ8 7ú üDü}‘å–ðÿ$-9“$oÉ%©ÄÝÉ÷!Û´M¾ýñ¿|X£Ø¼JŒí„÷MS·i_¾zvƒA½ëL}â|s#¿ggb[lh3L#0†N!$b’á@ëÔ³"— h_‡ ±%FÉꢛ:kº÷1;ReDµÂÑ~|']ך á~"ÉÖ>“²Ï±!,‚üù”ZOâ@ADû)åÀèË3ˆ`5ŸÅ¹1'ù Z,„Adæé&ôüvyé/ìLÁ¥fCr8–ÌIÍ:>¨%Ý©tª 6‰¥ Ä¼Ñ5ÏKFB™Ø€é³‰¥b6ÁÄÖ­öÈ_"G]Ñw•¡"FسbwÛ¶‘þÚ ïÞHkUö×Vm»šWï‡àp¯vêƒtZþÂWêij²XÎõ?Eo©R|®Âw6Â0šñ ÏŒ¦uâ+~Тð˜þÜŠÁ±ÆÊz%M‡Ùƒu‡û™”%úµˆCl‹VHаóg2¤Š÷òÍ.¿H÷¨;²©P° 2G£€Í|ˆ²œî«Io3ä.M”èÙ»¬PVÅÎãa¨ï¯1óåùÌÙù<%Þm_•Àɰ(-.:óK¦Ú`EŒ Γ}I”‰»¤ë6㇣Gq/x½ä'ÌEtŒ;yVÞ‘Qº¼•„§Ú¼1ˆ>‡Çö=G·û†°›Ùì#TýáO\{áÞjx°=0ø®ym+F`óm;F\–|R¾øÏcÐù®ß?¾§!<«Oš‹¤ú~ŠùÙý•:²/ôŽFÙB²°-Kg~v€£\¿¯†7ŽÈzÌ2OŸ¨ Ô•;¥Œ%\ ¶ä{î£|œnlÍF0õºl¾£¿‹Ëë^·'ÆqŽóÇÐËú µQ¼Y£ÿ4*TkR²D\»ƒ ~† ©yè™gS¾qû‹ýôûòÊ'´D‡“e¢ÃôËE¨¯`ç›~hêB¾lÕÚ<´JÇ׋&Qr*0GÕTŠ iö*û´h‚pV±è*³ÔBn¨u)Íš·®èÀhR™w!‚£ñÍ'/LYŒ¶œUŒø-?¶…¢å{ékcØ*I×’ó™e_^¢Óâ÷eÜA'ß——TþÓ ¯ÍûäÖP€—,[äÃË›™Å]bMÎ|Ɉ²!÷3äJôÖ GDö‚òO˜if1O¿t„=ˆ;³Ù.7Špµ¼Ayq'èE#ê¼@eúQJœ¨¦ ¨§¿Ï*V.:’ 7K^â$ìúF0Cé¶ÐDkUÃJ´ñŠfý‰ÂŽÄLºIÑÏ­_…5®Õfôm >Û†3и$(wšãa¦usT,ùK1¦Â¡¼ú©7_SÃçVµkx®ÙF"lWnTë°lØ 7ýJÖ—£Ãî>˜ˆ¿"k»ý†ß𫏢3þu#ÛÇÛ33`¾%èlšãµvâUýð×~] Ï›a0 ]Šm«ë{3ˆÒ:¸iG¶¯ùùoãÇ,®Î…õÆ}Ò†Úµ÷µ¶5ÀJ`* Á_7:vUYüy]ü¿3¹Ó4/k z£nÄÙÛȺ¦½[½ÂëWØÞZ*)¿cp'–›WÞŽõìEjÛ Åÿ›zj,›õµƒººt79Ÿ»Çÿ•Ùu«ç1½¾ðâÿÚ’–|·ôî‹ÿÚSSmQƒç~tfþÛÿÙÃ9"£bµ‡ˆöH±Å+þwì³Ï£æ7~òÖ!üËC`Ì`HÏù•• Ïl›Ú>ùB˜p³ D/q ‚àÊÀÃþDÌ ã³pÄæéC#ÑI¾¼Ίº2n\^¦!Þ5ψŒx=_^8üõ|P³£±«è9ÅÙ´X•×­“`¾ÇâÔ¯°·æpM,\·?±}% my-¶;û”êcréÅ:´£D­¦q"Æ”¯ µg¼±Ì¡Ø~öÈ$ÑàhEÞA$gU†–—fXÝØƒ9­áŽË_úŠA´jâ j ƵæàÅ´Ãõ,ÖzÆô’{ ¹Õ¤þ wrXΚࢌªñŽüò)ä•ˈ¨ô fñ9_òóß?w…fíáÍÔ;שf‚»\²çuyþû÷÷?UßPáÂÎß&«`}þû/~A‹ùmZ\ ¡Åô) ÍCÊÐjgªäµC6‘?ÌŨYد·tt9€ c¦An{0† ¯”œ9Äåey×Wšå“œNì©¢Éw€Aφ%œ…¤ßÑ*Oškƒ2¦ ÿ‰˜`Ň&J`? ?¼JLÈ1tÐèÙb‰O„¼ÿ=ÅßD‹uôqSlú›5ćS*ÛXóp†& Þ¥pLš ª.'qYÎÚáé:Ð6—TíiD(ІºD¡ îüZÁ¼ÐÔªÃs~ o1ÒrBvrx!¬g§‘‘@SƒóÜ€š÷žø)4%Zºö- B5_N*=åò‡Ë˜ d`>m»äÓ5ÕŸ© CÐtÒEቴa³ò*…·CSæ>OáÝÐãHTøá[~¿5ó䆇7ü%ü,äa†v4(`Š"É»–tôò²âD£úR,znˆÙ:ä˜Â2˜Wñ“΄æOʺ e¼ò%0tUm¼®°X{BÆôö¹eXC×þôÖÆµæÄÍD+Ö“3¡-ò(¦·RL! ·yæZZ° *çŠtð‘ätø¤å‰¶ô6…ÛÍ¡o}{CcsÃЂh¦Ê%аü“Wá¡”Ø,-êéÅÀ¶^k³ˆ`¬$͆j{€-U¹‹»ÍÉ—m3Ø\_­†v¼½ÈdÐÁã(ý7°2En§?M–ÖEÉ­=ýz÷¬ø¨­³DHµß¿ãûo|ü—óñ”ö%Uûùw0@õ¤X†ð,ã0QU|¯Š¹a°¼Þ[T|Í*q¤ÉJ?d|î&ËØšì‹Ø³o®´Ü,æöóÌ“³„íÙÔãsפf€N¨ïbåʶò5n™1Þ[m‹ÂþòyMH}‘†CgüòM\¾‹„ = ùW„÷¾ßOȤ°åª¬~­³ö««OsFKX7ý‡ßÿXgŒkTpƒÿçªê°¢GEr)z3ÙT¾aX@ÐÊ‚{òh¦‹²äUSÎÊÃ`Ž‘4K›[ËvM'!ʉ,ɇ2%vÃg#ˆºu+MV6o÷#Ö8…OH—E= ¬y/Π7„ÂÅZIÛ Mß’óÔ~CÛ?ÄJ29¨O?²`È€^œéulÐ bÂÔCª 2A’ÔX±(‰iƒòÅËYÚ}Kãêå§¢»2Á¶uØ3ï¥þ žáƒ;ÂÔx¯;w½hÈìjIS²{¡ìôÍe¦žUÝ1| êkǬi!œð®ò5ý7ìfÁLfëñÌ´¥ËÉeVŸõ–äFO„§‘RÊ—Ï*sÌ< 2Š)ÔUM-5ZF @•Y ÆŽoÖf–¤NۦܔIj4ž¨; yÐeÆë5-•§ÍU†6Ñ›‘V‰]£@!¸JÈöˆD“9¼,?‰;mA1àÏøPiBú!Z(/iÚ¶ý$**7Iva6è$»ƒQ¢žÇ¡ïJYJ467Ь%j,ºyÙ¨ÐHsÍ„jßËÄ1ß’ÈZÑfXÜg]ÿ™K;ëJTˆ;YÞëP—˜ 'fEå‹bñ$GÁ;ãR)ùøI}c4kûòT`#*‡Ë¾ܰÅE!A¯k ¢ºêFbúœåúëÈÉ vt¨Œ/ó‡Xš¯à‹©¢Š{M9 Ð WûÀ kÐMV¦Ús†ý¶"…*ö–¶Ò¥ëMì¬KOšB*ýcå·«÷/D6 ×Ù…V©þ¢zü³¯;r®‹œ¾qT–s7±Ö‚°Ñ©PçÛš×2 ˆ]ÒR!ïk`Êñ»'–›QЛ™1/€¹OÊçÀ¢c‰'×tcTRh¾mÔžöÆø«’V1±ýŸu;ch•]KÒ*Ñe:á Àóƒšs´ñüÉJÍ9´x*TѾ \½eSSl_¹ 3W¨Õ\WÕºÒŸAG†Ò×lüŒ7BHÙšöå““3ŽºÀoáÀ1ÑÌõïɉvĦ’Ù@p®°™pc+iLŽU„AÀ«oá"æzB®Žíue}ˆ,õêîüj©Ó2‘¦µ’<»ð[¬³'?•± =nb*Ê-µ.vßr¼¢kæ$8|reìÓm%×CÀåG/0ÝŒ'¿íû&ÊyæX'¬ ;׫ö}ùìè39•¡µ e®ƒo›ÃbˆuX™œÏû‰aQŠãæËæuiÙòSŠý\KDï×qqPëÈ#¡¹¾%IInúõ^ÉsÌÄ)ðþt~n :Uñ’=WgÏŤB¡;v0˜¿ª°îÓ˜š¡Ã§Ÿ¬™MÐÿ>¦Ïþàùÿ>M™žj‰2debtags-1.12ubuntu1/missing0000755000000000000000000001533112232305342012656 0ustar #! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2012-06-26.16; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'automa4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: debtags-1.12ubuntu1/debtags-submit-patch0000755000000000000000000001200211701676767015232 0ustar #!/usr/bin/python # debtags-submit-patch: submit a tag patch to the debtags website # # Copyright (C) 2007--2012 Enrico Zini # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import pwd import os import sys import hashlib import urllib import urllib2 import json import logging log = logging.getLogger(sys.argv[0]) SUBMIT_URL = "http://debtags.debian.net/api/patch" def make_default_tag(): "Autogenerate a mostly persistant, non-trackable tag" m = hashlib.md5() m.update(":".join(str(x) for x in pwd.getpwuid(os.getuid()))) return m.hexdigest()[:20] def submit(opts, patch, fname="[stdin]"): log.info("Submitting patch %s to %s...", fname, opts.url) try: conn = urllib2.urlopen(opts.url, urllib.urlencode(( ("tag", opts.tag), ("patch", patch), ))) res = json.load(conn) for note in res.get("notes", ()): log.warn("%s: %s", fname, note) for pkg, tags in sorted(res.get("pkgs", {}).iteritems()): log.info("%s: %s: %s", fname, pkg, ", ".join(tags)) if opts.dump_http_error: try: os.unlink(opts.dump_http_error) except OSError: pass except urllib2.HTTPError, e: log.error("%s", str(e)) if opts.dump_http_error: with open(opts.dump_http_error, "w") as fd: fd.write(e.read()) if __name__ == "__main__": from optparse import OptionParser import sys VERSION="1.8" class Parser(OptionParser): def print_help(self, out=None): if out is None: out = sys.stdout OptionParser.print_help(self, out) print >>out, """Patch files can be generated with 'debtags diff' or 'tagcoll diff'. Patch submissions are marked with a tag of your choice. It does not need to identify yourself (but feel free to use your email address), but reusing your tag allows to handle all your edits as if they were a single one. This helps greatly when tags are reviewed. By default, a mostly persistent but anonymous tag is generated by hashing your passwd entry. """ def error(self, msg): sys.stderr.write("%s: error: %s\n\n" % (self.get_prog_name(), msg)) self.print_help(sys.stderr) sys.exit(2) parser = Parser(usage="usage: %prog [-t TAG] [options] [patchfile [patchfile...]]", version="%prog "+ VERSION, description="Submits a tag patch to the Debtags website." " Each patch file is submitted in a different query.") parser.add_option("-t", "--tag", action="store", metavar="tag", default=make_default_tag(), help="tag the patch with the given string (default: %default).") parser.add_option("-q", "--quiet", action="store_true", help="quiet mode: only output errors.") parser.add_option("-v", "--verbose", action="store_true", help="verbose mode: output progress and non-essential information.") parser.add_option("--stdin", action="store_true", help="read patch from standard input.") parser.add_option("--url", action="store", metavar="url", default=SUBMIT_URL, help="URL to submit to (default: %default).") parser.add_option("--dump-http-error", action="store", metavar="file", help="if the server returns an error, dump the contents" "of the error page to the given file (default:" "discard the error page).") (opts, args) = parser.parse_args() #FORMAT = "%(asctime)-15s %(levelname)s %(message)s" FORMAT = "%(message)s" if opts.quiet: logging.basicConfig(level=logging.ERROR, stream=sys.stderr, format=FORMAT) elif not opts.verbose: logging.basicConfig(level=logging.WARNING, stream=sys.stderr, format=FORMAT) else: logging.basicConfig(level=logging.INFO, stream=sys.stderr, format=FORMAT) if opts.stdin: patch = sys.stdin.read() submit(opts, patch) elif args: for fname in args: with open(fname, "r") as fd: patch = fd.read() submit(opts, patch, fname) else: parser.error("please invoke with a patch file name or use --stdin.") debtags-1.12ubuntu1/debtags-fetch0000755000000000000000000003044111717462601013715 0ustar #!/usr/bin/python # debtags-fetch - Keep debtags source data up to date # # Copyright (C) 2006--2012 Enrico Zini # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import sys import re import os import os.path import shutil import urllib2 import urlparse import gzip import subprocess import tempfile import logging log = logging.getLogger(sys.argv[0]) CONFIG = '/etc/debtags/sources.list' CONFIGDIR = '/etc/debtags/sources.list.d' OUTPUTDIR = '/var/lib/debtags' # TODO: allow to use more than one config file # TODO: allow to override $OUTPUTDIR with parameters read from commandline # TODO: allow to override everything for tests class atomic_writer(object): """ Atomically write to a file """ def __init__(self, fname, mode=0644, sync=True): self.fname = fname self.mode = mode self.sync = sync dirname = os.path.dirname(self.fname) self.outfd = tempfile.NamedTemporaryFile(dir=dirname) def __enter__(self): return self.outfd def __exit__(self, exc_type, exc_val, exc_tb): if exc_type is None: self.outfd.flush() if self.sync: os.fdatasync(self.outfd.fileno()) os.fchmod(self.outfd.fileno(), self.mode) os.rename(self.outfd.name, self.fname) self.outfd.delete = False self.outfd.close() return False class Source(object): LOCAL = True def dump(self): print "tag", str(self), " # save to", self.dst def infd_to_gzoutfd(self, infd, outfd, sfx): gzoutfd = gzip.GzipFile(self.dst + sfx, "w", 9, outfd) try: shutil.copyfileobj(infd, gzoutfd) finally: gzoutfd.close() def copy_and_compress(self, fname, sfx): with atomic_writer(self.dst + sfx + ".gz") as outfd: with open(fname, "r") as infd: self.infd_to_gzoutfd(infd, outfd, sfx) class AptSource(Source): re_xtags_split = re.compile(r",\s+") re_xtags_compressed = re.compile(r"^(.+){(.+)}$") def apt_normalise(self, tags): """ Expand tags compressed with curly braces """ res = [] for tag in self.re_xtags_split.split(tags): mo = self.re_xtags_compressed.match(tag) if mo: pfx = mo.group(1) for sfx in mo.group(2).split(","): res.append(pfx + sfx) else: res.append(tag) return ", ".join(x.strip(",") for x in res) def __init__(self, dst): self.dst = os.path.join(OUTPUTDIR, dst) def __str__(self): return "apt://" def fetch(self): from debian import deb822 log.info("Fetching tags from apt...") # FIXME: KeyboardInterrupt makes a mess here. Try it out and enjoy the senseless backtraces. # See http://stackoverflow.com/questions/4606942/why-cant-i-handle-a-keyboardinterrupt-in-python # If you have an idea for a patch, bring it on! Me, I just feel like crying. with atomic_writer(self.dst + ".tag.gz") as outfd: gzoutfd = gzip.GzipFile(self.dst + ".tag", "w", 9, outfd) try: proc = subprocess.Popen(["apt-cache", "dumpavail"], stdout=subprocess.PIPE) done = False try: for pkg in deb822.Deb822.iter_paragraphs(proc.stdout): name = pkg["Package"] tags = pkg.get("Tag", None) if tags is None: continue print >>gzoutfd, "%s: %s" % (name, self.apt_normalise(tags)) done = True finally: if done: if proc.wait() != 0: raise RuntimeError("apt-cache dumpavail returned error code %d" % proc.returncode) else: proc.kill() proc.wait() finally: gzoutfd.close() vocsrc = "/usr/share/debtags/vocabulary" log.info("Fetching vocabulary from %s...", vocsrc) self.copy_and_compress(vocsrc, ".voc") return True class FileSource(Source): def __init__(self, basedir, dst): self.dst = os.path.join(OUTPUTDIR, dst) self.basedir = basedir def __str__(self): return "file:" + self.basedir def fetch(self): pathname = os.path.join(self.basedir, "tags-current") if os.path.exists(pathname + ".gz"): pathname += ".gz" log.info("Fetching tags from %s...", pathname) with atomic_writer(self.dst + ".tag.gz") as outfd: with open(pathname) as infd: shutil.copyfileobj(infd, outfd) elif os.path.exists(pathname): log.info("Fetching tags from %s...", pathname) self.copy_and_compress(pathname, ".tag") else: log.error("Cannot find tags-current.gz or tags-current in %s", self.basedir) return False pathname = os.path.join(self.basedir, "vocabulary") if os.path.exists(pathname + ".gz"): pathname += ".gz" log.info("Fetching vocabulary from %s...", pathname) with atomic_writer(self.dst + ".voc.gz") as outfd: with open(pathname) as infd: shutil.copyfileobj(infd, outfd) elif os.path.exists(pathname): log.info("Fetching vocabulary from %s...", pathname) self.copy_and_compress(pathname, ".voc") else: log.error("Cannot find vocabulary.gz or vocabulary in %s", self.basedir) return False return True class HttpSource(Source): def __init__(self, url, dst): self.dst = os.path.join(OUTPUTDIR, dst) self.url = url def __str__(self): return self.url def fetch(self): urlvoc = urlparse.urljoin(self.url, "vocabulary.gz") log.info("Fetching vocabulary from %s...", urlvoc); with atomic_writer(self.dst + ".voc.gz") as outfd: infd = urllib2.urlopen(urlvoc) try: shutil.copyfileobj(infd, outfd) finally: infd.close() urltag = urlparse.urljoin(self.url, "tags-current.gz") log.info("Fetching tags from %s...", urltag); with atomic_writer(self.dst + ".tag.gz") as outfd: infd = urllib2.urlopen(urltag) try: shutil.copyfileobj(infd, outfd) finally: infd.close() return True class Config(object): re_emptyline = re.compile(r"^\s*(?:#|$)") re_tagline = re.compile(r"^\s*tags\s+(.+?)\s*$") re_remote = re.compile(r"^(?:http|ftp)://") re_mangle = re.compile(r"[^A-Za-z0-9._-]") def __init__(self): # Array of Source objects self.sources = [] def _mangle_src(self, src): return self.re_mangle.sub("-", src) def read(self, fname): """ Read one config file and append its sources to self.sources """ with open(fname) as fd: for lineno, line in enumerate(fd): # Skip empty lines and comments if self.re_emptyline.match(line): continue # We are only interested in 'tags' lines mo = self.re_tagline.match(line) if not mo: continue src = mo.group(1) if src == "apt://": self.sources.append(AptSource("debtags-fetch-apt")) elif self.re_remote.match(src): self.sources.append(HttpSource(src, "debtags-fetch-" + self._mangle_src(src))) elif src.startswith("file:") and len(src) > 5: # Remove file: and excess leading slashes src = src[5:] if src[0] == "/": src = "/" + src.lstrip("/") self.sources.append(FileSource(src, "debtags-fetch-" + self._mangle_src(src))) else: log.warn("%s:%d: ignoring unsupported tag source %s", fname, lineno, src) def read_all(self): """ Read all config files and append their sources to self.sources """ self.read(CONFIG) if os.path.isdir(CONFIGDIR): for fn in os.listdir(CONFIGDIR): if ".dpkg-" in fn: continue if fn.endswith("~"): continue pathname = os.path.join(CONFIGDIR, fn) if os.path.isdir(pathname): continue self.read(pathname) if __name__ == "__main__": from optparse import OptionParser import sys VERSION="1.8" class Parser(OptionParser): def error(self, msg): sys.stderr.write("%s: error: %s\n\n" % (self.get_prog_name(), msg)) self.print_help(sys.stderr) sys.exit(2) parser = Parser(usage="usage: %prog [options] [islocal|dump|update]", version="%prog "+ VERSION, description="Fetches data from Debtags sources.\n" "%prog islocal exits with success if all sources are local.\n" "%prog dump dumps the source configuration.\n" "%prog update fetches all sources, saving them to " + OUTPUTDIR + "\n") parser.add_option("--local", action="store_true", help="do not download tags: only read local sources.") parser.add_option("-q", "--quiet", action="store_true", help="quiet mode: only output errors.") parser.add_option("-v", "--verbose", action="store_true", help="verbose mode: output progress and non-essential information.") (opts, args) = parser.parse_args() #FORMAT = "%(asctime)-15s %(levelname)s %(message)s" FORMAT = "%(message)s" if opts.quiet: logging.basicConfig(level=logging.ERROR, stream=sys.stderr, format=FORMAT) elif not opts.verbose: logging.basicConfig(level=logging.WARNING, stream=sys.stderr, format=FORMAT) else: logging.basicConfig(level=logging.INFO, stream=sys.stderr, format=FORMAT) if not args: parser.error("please provide a command: update, dump or islocal.") if args[0] == "islocal": # Return true if all sources are local config = Config() config.read_all() for src in config.sources: if not src.LOCAL: sys.exit(1) sys.exit(0) elif args[0] == "dump": # Dump configuration config = Config() config.read_all() for src in config.sources: src.dump() sys.exit(0) elif args[0] == "update": if not os.access(OUTPUTDIR, os.W_OK): if not os.path.exists(OUTPUTDIR): log.error("Output directory %s does not exist", OUTPUTDIR) sys.exit(1) else: log.error("I do not have permission to write to %s", OUTPUTDIR) sys.exit(1) config = Config() config.read_all() # Delete old sources (this will also get rid of sources removed from # sources.list) # TODO: only remember them for deletion, and delete them on commit. for fn in os.listdir(OUTPUTDIR): if fn.startswith("debtags-fetch-"): os.unlink(os.path.join(OUTPUTDIR, fn)) # Acquire new sources for src in config.sources: if opts.local and not src.LOCAL: log.info("Skipping %s since --local is used", str(src)) continue if not src.fetch(): sys.exit(1) sys.exit(0) else: parser.error("the command should be: update, dump or islocal.") debtags-1.12ubuntu1/quicktest0000755000000000000000000000446011465320073013227 0ustar #!/bin/sh run () { echo " * Running $1" sh -c "$1" } DEBTAGS=tools/debtags run "$DEBTAGS tagcat | wc -l" run "$DEBTAGS tagshow use::editing" run "$DEBTAGS tagsearch edit" run "$DEBTAGS show debtags" run "$DEBTAGS related -d 3 debtags" run "$DEBTAGS cat | wc -l" run "$DEBTAGS cat --group | wc -l" run "$DEBTAGS search use::editing | wc -l" run "$DEBTAGS search --invert use::editing | wc -l" run "$DEBTAGS grep use::editing | wc -l" run "$DEBTAGS grep --invert use::editing | wc -l" run "$DEBTAGS grep --group use::editing | wc -l" run "$DEBTAGS grep --group --invert use::editing | wc -l" run "$DEBTAGS maintainers | wc -l" run "$DEBTAGS maintainers --group | wc -l" # tag [add # tag [rm # tag [ls # View and edit the tags for a package # todo Print a list of the installed packages that are not yet tagged # score Score uninstalled packages according to how often their tags # appear in the packages that are installed already # facetcoll Print the tagged collection where each package is tagged with # its facets only # stats Print statistics about Debtags # todoreport Print a report of packages needing work # ssearch # Perform a keyword search integrated with related packages. # A + prefix indicates a wanted tag. A - prefix indicates # an unwanted tag. Other words indicate keywords to search. # Remember to use '--' before unwanted tags to avoid to have # them interpreted as commandline switches. # # Untested: # # update Updates the package tag database (requires root) # check Check that all the tags in the given tagged collection are present # in the tag vocabulary. Checks the main database if no file is # specified # install [-v] [-q] # apt-get install the packages that match the given tag expression # mkpatch [filename] # Create a tag patch between the current tag database and the tag # collection [filename] # submit [patch] # Mail the given patch file to the central tag repository. # If [patch] is omitted, mail the local tag modifications. debtags-1.12ubuntu1/debtags-hardware0000755000000000000000000001356611716160122014422 0ustar #!/usr/bin/python # debtags-hardware: detect what hardware tags apply to the current system # # Copyright (C) 2012 Enrico Zini # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import pwd import os import sys import hashlib import urllib import urllib2 import json import logging log = logging.getLogger(sys.argv[0]) def list_packages(opts): from debtagshw import debtagshw hw = debtagshw.DebtagsAvailableHW() from debian import debtags import apt cache = apt.Cache() db = debtags.DB() with open("/var/lib/debtags/package-tags", "r") as fd: db.read(fd) for status, tags in hw.generate_tag_expressions(): if opts.incompatible: if status != debtagshw.HardwareSupported.NO: continue else: if status != debtagshw.HardwareSupported.YES: continue pkgsets = [db.packages_of_tag(t) for t in tags] res = set(pkgsets[0]) for s in pkgsets[1:]: res &= s if not res: continue print "#" print "# Packages for %s:" % ",".join(sorted(tags)) print "#" for pkg in sorted(res): try: # FIXME: I wish I had cache.get(pkg, None) p = cache[pkg] except KeyError: continue if opts.installed and not p.is_installed: continue if opts.uninstalled and p.is_installed: continue ver = p.candidate print p.name, "-", ver.summary def pkgreport(opts): from debtagshw import debtagshw hw = debtagshw.DebtagsAvailableHW() from debian import debtags import apt cache = apt.Cache() db = debtags.DB() with open("/var/lib/debtags/package-tags", "r") as fd: db.read(fd) class Pkginfo(object): def __init__(self, name): self.pkg = cache[name] self.rules = [] pkgs = dict() seen_tags = set() for status, tags in hw.generate_tag_expressions(): seen_tags.update(tags) pkgsets = [db.packages_of_tag(t) for t in tags] res = set(pkgsets[0]) for s in pkgsets[1:]: res &= s if not res: continue for name in res: info = pkgs.get(name, None) if info is None: try: info = Pkginfo(name) except KeyError: continue pkgs[name] = info info.rules.append((status, tags)) for name, info in sorted(pkgs.iteritems()): print info.pkg.name, "-", info.pkg.candidate.summary print " ", ", ".join(sorted(t for t in db.tags_of_package(name) if t in seen_tags)) # Use the following line instead if you want to see all tags of package # print " ", ", ".join(sorted(db.tags_of_package(name))) for status, tags in info.rules: print " ", status, ", ".join(sorted(tags)) print if __name__ == "__main__": from optparse import OptionParser import sys VERSION="1.8" class Parser(OptionParser): def error(self, msg): sys.stderr.write("%s: error: %s\n\n" % (self.get_prog_name(), msg)) self.print_help(sys.stderr) sys.exit(2) parser = Parser(usage="usage: %prog [options]", version="%prog "+ VERSION, description="Detects what tag combinations make sense for the current system.") parser.add_option("-q", "--quiet", action="store_true", help="quiet mode: only output errors.") parser.add_option("-v", "--verbose", action="store_true", help="verbose mode: output progress and non-essential information.") parser.add_option("-d", "--debug", action="store_true", help="debug mode: output debug informationn.") parser.add_option("--packages", action="store_true", help="show packages for all tags found.") parser.add_option("--incompatible", action="store_true", help="show packages that would not work instead of those that would work.") parser.add_option("--installed", action="store_true", help="show only installed packages.") parser.add_option("--uninstalled", action="store_true", help="show only uninstalled packages.") parser.add_option("--pkgreport", action="store_true", help="show a details reports of what packages match what rules and why.") (opts, args) = parser.parse_args() #FORMAT = "%(asctime)-15s %(levelname)s %(message)s" FORMAT = "%(message)s" if opts.quiet: logging.basicConfig(level=logging.ERROR, stream=sys.stderr, format=FORMAT) elif not opts.verbose: logging.basicConfig(level=logging.WARNING, stream=sys.stderr, format=FORMAT) elif opts.debug: logging.basicConfig(level=logging.DEBUG, stream=sys.stderr, format=FORMAT) else: logging.basicConfig(level=logging.INFO, stream=sys.stderr, format=FORMAT) if opts.packages: list_packages(opts) elif opts.pkgreport: pkgreport(opts) else: from debtagshw import debtagshw hw = debtagshw.DebtagsAvailableHW() for status, tag in hw.generate_tag_expressions(): print status, tag debtags-1.12ubuntu1/debtags.cc0000644000000000000000000005106512100512140013171 0ustar /* * debtags - Implement package tags support for Debian * * Copyright (C) 2003--2012 Enrico Zini * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifdef HAVE_CONFIG_H #include #define APPNAME PACKAGE_NAME #else #warning No config.h found: using fallback values #define APPNAME __FILE__ #define PACKAGE_VERSION "unknown" #endif #include #include #include #include #include #include #include #include #include "nag.h" #include "loader.h" #include "cmdline.h" #include "nullstream.h" #include #include #include #include #include #include #include #include #include #include #include // umask #include // umask #include // unlink #include namespace std { template basic_ostream& operator<<(basic_ostream& out, const std::set& tags) { for (typename std::set::const_iterator i = tags.begin(); i != tags.end(); i++) if (i == tags.begin()) out << i->fullname(); else out << ", " << i->fullname(); return out; } template basic_ostream& operator<<(basic_ostream& out, const wibble::Singleton& tags) { out << *tags.begin(); return out; } template basic_ostream& operator<<(basic_ostream& out, const wibble::Empty&) { return out; } } using namespace std; using namespace tagcoll; using namespace ept; using namespace ept::debtags; using namespace ept::apt; template class ExpressionFilter : public wibble::mixin::OutputIterator< ExpressionFilter > { tagcoll::Expression expr; bool invert; OUT out; public: ExpressionFilter(const tagcoll::Expression& expr, bool invert, const OUT& out) : expr(expr), invert(invert), out(out) {} template ExpressionFilter& operator=(const std::pair& data) { bool matched = expr(data.second); if (invert) matched = !matched; if (matched) { *out = data; ++out; } return *this; } }; template ExpressionFilter expressionFilter(const tagcoll::Expression& expr, bool invert, const OUT& out) { return ExpressionFilter(expr, invert, out); } template void readCollection(const string& file, const OUT& out) { if (file == "-") { input::Stdio input(stdin, ""); textformat::parse(input, out); } else { input::Stdio input(file); textformat::parse(input, out); } } class SubstringTagMatcher { protected: vector patterns; public: void add(const std::string& pattern) { patterns.push_back(pattern); } bool operator()(const voc::Data& item) { for (vector::const_iterator i = patterns.begin(); i != patterns.end(); i++) { if (strcasestr(item.name.c_str(), i->c_str())) return true; if (strcasestr(item.shortDescription().c_str(), i->c_str())) return true; if (strcasestr(item.longDescription().c_str(), i->c_str())) return true; } return false; } }; struct VocabularyCheck { int missing_count; map missing; unsigned int mtag_width; int max_missing; VocabularyCheck() : missing_count(0), mtag_width(0), max_missing(0) {} void report(ostream& out) { if (missing_count > 0) { out << missing.size() << " tags were found in packages but not in the vocabulary" << endl; out << "This happened " << missing_count << " times" << endl; out << "The tags found in the collection but not in the vocabulary are:" << endl; int mtag_maxdigits = 0; for (int i = max_missing; i > 0; i = i / 10) mtag_maxdigits++; for (map::const_iterator i = missing.begin(); i != missing.end(); i++) { char buf[1000]; snprintf(buf, 1000, "\t%s %*s (in %*d package%s)", i->first.c_str(), (int)(mtag_width - i->first.size()), "", mtag_maxdigits, i->second, i->second > 1 ? "s" : ""); out << buf << endl; } } } }; // Check a collection agaisnt a tag vocabulary class VocabularyChecker : public wibble::mixin::OutputIterator< VocabularyChecker > { protected: const Vocabulary& voc; VocabularyCheck& res; public: VocabularyChecker(const Vocabulary& voc, VocabularyCheck& res) : voc(voc), res(res) {} template VocabularyChecker& operator=(const std::pair& data) { for (typename TAGS::const_iterator i = data.second.begin(); i != data.second.end(); ++i) if (!voc.hasTag(*i)) { const string& tag = *i; res.missing_count++; res.missing[tag]++; if (tag.size() > res.mtag_width) res.mtag_width = tag.size(); if (res.missing[tag] > res.max_missing) res.max_missing = res.missing[tag]; } return *this; } }; template class VocabularyFilter : public wibble::mixin::OutputIterator< VocabularyFilter > { protected: const VOC& voc; OUT out; public: VocabularyFilter(const VOC& voc, const OUT& out) : voc(voc), out(out) {} template VocabularyFilter& operator=(const std::pair& data) { std::set< typename TAGS::value_type > tags; for (typename TAGS::const_iterator i = data.second.begin(); i != data.second.end(); ++i) if (voc.hasTag(*i)) tags.insert(*i); *out = make_pair(data.first, tags); ++out; return *this; } }; template VocabularyFilter vocabularyFilter(const VOC& voc, const OUT& out) { return VocabularyFilter(voc, out); } static void printShortVocabularyItem(const voc::FacetData& facet) { cout << facet.name << " (facet) - " << facet.shortDescription() << endl; } static void printShortVocabularyItem(const voc::TagData& tag) { cout << tag.name << " - " << tag.shortDescription() << endl; } static void printVocabularyItem(const voc::FacetData& tag) { string ld = tag.longDescription(); cout << "Facet: " << tag.name << endl; cout << "Description: " << tag.shortDescription() << endl; cout << " " << ld << endl; if (ld[ld.size() - 1] != '\n') cout << endl; } static void printVocabularyItem(const voc::TagData& tag) { string ld = tag.longDescription(); cout << "Tag: " << tag.name << endl; cout << "Description: " << tag.shortDescription() << endl; cout << " " << ld << endl; if (ld[ld.size() - 1] != '\n') cout << endl; } struct AtomicStdioWriter { std::string fname; char* tmpfname; int fd; FILE* out; AtomicStdioWriter(const std::string& fname) : fname(fname), tmpfname(0), out(0), fd(-1) { // Build the temp file template tmpfname = new char[fname.size() + 8]; strncpy(tmpfname, fname.c_str(), fname.size()); strncpy(tmpfname + fname.size(), ".XXXXXX", 8); // Create and open the temporary file fd = mkstemp(tmpfname); if (fd < 0) throw wibble::exception::File(tmpfname, "opening file"); // Pass the file descriptor to stdio out = fdopen(fd, "wt"); if (!out) throw wibble::exception::File(tmpfname, "fdopening file"); } ~AtomicStdioWriter() { if (out) { if (unlink(tmpfname) == -1) throw wibble::exception::File(tmpfname, "cannot delete temporary file"); fclose(out); } if (tmpfname) delete[] tmpfname; } void flush() { // Read the current umask mode_t cur_umask = umask(0); umask(cur_umask); // Give the file the right permissions if (fchmod(fd, 0666 & ~cur_umask) < 0) throw wibble::exception::File(tmpfname, "setting file permissions"); // Flush stdio's buffers fflush(out); // Flush OS buffers fdatasync(fd); // Close the file fclose(out); out = NULL; // Rename the successfully written file to its final name if (rename(tmpfname, fname.c_str()) == -1) throw wibble::exception::System(string("renaming ") + tmpfname + " to " + fname); } }; int main(int argc, const char* argv[]) { DebtagsOptions opts; Loader loader; try { // Install the handler for unexpected exceptions wibble::exception::InstallUnexpected installUnexpected; if (opts.parse(argc, argv)) return 0; nag::init(opts.out_verbose->boolValue(), opts.out_debug->boolValue()); // Output the full package tag database if (opts.foundCommand() == opts.cat) { Debtags& debtags = loader.debtags(); auto_ptr printer = loader.make_coll_printer(opts); if (opts.hasNext()) { debtags.output(expressionFilter(opts.next(), opts.match_invert->boolValue(), *printer)); } else debtags.output(*printer); return printer->count > 0 ? 0 : 1; } // Output the full package database else if (opts.foundCommand() == opts.dumpavail) { auto_ptr printer = loader.make_package_printer(opts, PackagePrinter::FULL); if (opts.hasNext()) { loader.debtags().output(expressionFilter(opts.next(), opts.match_invert->boolValue(), *printer)); } else { // If there is no expression filter, dump from the Apt database Apt& apt = loader.apt(); PackageRecord record; for (Apt::record_iterator i = apt.recordBegin(); i != apt.recordEnd(); ++i) { record.scan(*i); *printer = record; } } return printer->count > 0 ? 0 : 1; } // search [-v] \n" // Output the names and description of the packages that match\n" // the given tag expression\n" else if (opts.foundCommand() == opts.search) { // TODO: complain if no expression found auto_ptr printer = loader.make_package_printer(opts, PackagePrinter::SHORT); if (opts.hasNext()) { loader.debtags().output(expressionFilter(opts.next(), opts.match_invert->boolValue(), *printer)); } else loader.debtags().output(*printer); return printer->count > 0 ? 0 : 1; } // grep [-v] [-q] // Output the lines of the full package tag database that match the // given tag expression else if (opts.foundCommand() == opts.grep) { // TODO: complain if no expression found Debtags& debtags = loader.debtags(); auto_ptr printer = loader.make_coll_printer(opts); if (opts.hasNext()) { debtags.output(expressionFilter(opts.next(), opts.match_invert->boolValue(), *printer)); } else debtags.output(*printer); return printer->count > 0 ? 0 : 1; } // tagcat // Output the entire tag vocabulary else if (opts.foundCommand() == opts.tagcat) { Vocabulary& voc = loader.voc(); if (opts.hasNext()) throw wibble::exception::BadOption("the tagcat command does not require an argument"); std::set facets = voc.facets(); for (std::set::const_iterator i = facets.begin(); i != facets.end(); i++) { const voc::FacetData* f = voc.facetData(*i); if (!f) continue; printVocabularyItem(*f); std::set tags = f->tags(); for (std::set::const_iterator j = tags.begin(); j != tags.end(); j++) { const voc::TagData* t = voc.tagData(*j); if (!t) continue; printVocabularyItem(*t); } } return 0; } // tagshow // Show the vocabulary informations about a tag else if (opts.foundCommand() == opts.tagshow) { string tag = opts.next(); const voc::TagData* t = loader.voc().tagData(tag); if (!t) { verbose("Tag `%s' was not found in tag vocabulary\n", tag.c_str()); return 1; } else { printVocabularyItem(*t); return 0; } } // tagsearch // Show a summary of all tags matching the given patterns else if (opts.foundCommand() == opts.tagsearch) { SubstringTagMatcher match; // Get the patterns to be matched bool empty; while (opts.hasNext()) { string pattern = opts.next(); match.add(pattern); empty = false; } if (empty) { error("No patterns given in commandline\n"); return 1; } int matched = 0; std::set facets = loader.voc().facets(); for (std::set::const_iterator i = facets.begin(); i != facets.end(); i++) { const voc::FacetData* f = loader.voc().facetData(*i); if (!f) continue; if (match(*f)) { matched++; printShortVocabularyItem(*f); } std::set tags = f->tags(); for (std::set::const_iterator j = tags.begin(); j != tags.end(); j++) { const voc::TagData* t = loader.voc().tagData(*j); if (!t) continue; if (match(*t)) { matched++; printShortVocabularyItem(*t); } } } return matched > 0 ? 0 : 1; } // show // Call apt-cache show , but add tag informations to the output.\n" else if (opts.foundCommand() == opts.show) { while (opts.hasNext()) { string name = opts.next(); if (loader.apt().isValid(name)) { auto_ptr printer = loader.make_package_printer(PackagePrinter::FULL); *printer = name; return 0; } else { verbose("Package %s not found", name.c_str()); return 1; } } } // tag // tag [add \n" // tag [rm \n" // tag [ls \n" // View and edit the tags for a package\n"); else if (opts.foundCommand() == opts.tag) { std::string cmd = opts.next(); if (cmd == "add" || cmd == "rm") { loader.editable(true); string pkg = opts.next(); if (!loader.apt().isValid(pkg)) { error("Package %s not found\n", pkg.c_str()); return 1; } std::set tagset; while (opts.hasNext()) { string tag = opts.next(); if (loader.voc().hasTag(tag)) tagset.insert(tag); else error("Tag '%s' not found: ignored\n", tag.c_str()); } if (!tagset.empty()) { PatchList change; if (cmd == "add") change.addPatch(Patch(pkg, tagset, std::set())); else change.addPatch(Patch(pkg, std::set(), tagset)); loader.debtags().applyChange(change); loader.debtags().savePatch(); } else verbose("No tags to add\n"); } else if (cmd == "ls") { string pkg = opts.next(); if (loader.apt().isValid(pkg)) { std::set ts = loader.debtags().getTagsOfItem(pkg); for (std::set::const_iterator i = ts.begin(); i != ts.end(); i++) cout << *i << endl; return 0; } else { verbose("Package %s not found", pkg.c_str()); return 1; } } else throw wibble::exception::Consistency("parsing the 'tag' subcommand", "command " + cmd + " is not valid working with tags"); } // submit // Mail the local updates to the tag database to the central tag // repository else if (opts.foundCommand() == opts.submit) { if (opts.hasNext()) { wibble::sys::Exec cmd(BINDIR "/debtags-submit-patch"); cmd.envFromParent = true; cmd.searchInPath = false; cmd.args.push_back("/usr/bin/debtags-submit-patch"); if (nag::is_verbose) cmd.args.push_back("--verbose"); cmd.args.push_back(opts.next()); cmd.exec(); } else { tagcoll::PatchList patch = loader.debtags().changes(); if (patch.empty()) { verbose("Nothing to submit.\n"); return 0; } else { string cmd = BINDIR "/debtags-submit-patch --stdin"; if (nag::is_verbose) cmd += " --verbose"; FILE* out = popen(cmd.c_str(), "w"); tagcoll::textformat::outputPatch(patch, out); int res = pclose(out); if (res < 0) throw wibble::exception::System("running " + cmd); else return res; } } } // check // Check that all the tags in the given tagged collection are // present in the tag vocabulary. Checks the main database if no // file is specified else if (opts.foundCommand() == opts.check) { if (!opts.hasNext()) throw wibble::exception::BadOption("you should specify the file with the collection to check"); string file = opts.next(); VocabularyCheck results; readCollection(file, VocabularyChecker(loader.voc(), results)); if (results.missing_count > 0) { results.report(cout); return 1; } else return 0; } // mkpatch [filename] // Create a tag patch between the current tag database and the tag // collection [filename] else if (opts.foundCommand() == opts.diff) { string file = opts.next(); coll::Simple coll; loader.debtags().outputSystem(file, inserter(coll)); PatchList newpatches; newpatches.addPatch(loader.debtags(), coll); textformat::outputPatch(newpatches, stdout); } // update // Updates the package tag database (requires root) else if (opts.foundCommand() == opts.update) { using namespace wibble::sys; if (opts.hasNext()) throw wibble::exception::BadOption("the update command does not require an argument"); // Set a standard umask since we create system files mode_t orig_umask = process::umask(0022); verbose("System source directory: %s\n", Path::debtagsSourceDir().c_str()); verbose("User source directory: %s\n", Path::debtagsUserSourceDir().c_str()); if (!opts.misc_reindex->boolValue()) { // Run the fetcher to acquire new data string fetcher = BINDIR "/debtags-fetch"; if (!fs::access(fetcher, X_OK)) warning("Fetch script %s does not exist or is not executable: skipping acquiring of new data\n", fetcher.c_str()); else { if (opts.out_verbose->boolValue()) fetcher += " --verbose"; if (opts.misc_local->boolValue()) fetcher += " --local"; fetcher += " update"; if (system(fetcher.c_str()) != 0) throw wibble::exception::Consistency("acquiring new data", "fetcher command " + fetcher + " failed"); } } // Skip env, so we don't load the tag database if we // don't need it // Read new vocabulary data Vocabulary voc; // Write out the merged, updated vocabulary voc.write(); // Read and merge all tag sources, and write them out { AtomicStdioWriter writer(debtags::Path::tagdb()); loader.debtags().output(textformat::StdioWriter(writer.out)); writer.flush(); } } else if (opts.foundCommand() == opts.vocfilter) { if (!opts.hasNext()) throw wibble::exception::BadOption("you should specify the file with the collection to check"); string file = opts.next(); if (opts.misc_vocfile->boolValue()) { Vocabulary vm(true); input::Stdio input(opts.misc_vocfile->stringValue()); vm.read(input); readCollection(file, vocabularyFilter(vm, textformat::OstreamWriter(cout))); } else readCollection(file, vocabularyFilter(loader.voc(), textformat::OstreamWriter(cout))); } else throw wibble::exception::BadOption(string("unhandled command ") + (opts.foundCommand() ? opts.foundCommand()->name() : "(null)")); return 0; } catch (wibble::exception::BadOption& e) { cerr << e.desc() << endl; opts.outputHelp(cerr); return 1; } catch (std::exception& e) { cerr << e.what() << endl; return 1; } } #include #include #include #include // vim:set ts=4 sw=4: