summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog52
-rw-r--r--generic/tclInt.decls13
-rw-r--r--generic/tclIntDecls.h12
-rw-r--r--generic/tclIntPlatDecls.h15
-rw-r--r--generic/tclStubInit.c5
-rw-r--r--generic/tclTest.c14
-rw-r--r--generic/tclUtil.c25
-rw-r--r--macosx/Makefile4
-rw-r--r--macosx/tclMacOSXBundle.c9
-rw-r--r--macosx/tclMacOSXNotify.c1048
-rw-r--r--tests/unixNotfy.test6
-rw-r--r--unix/Makefile.in13
-rwxr-xr-xunix/configure439
-rw-r--r--unix/configure.in8
-rw-r--r--unix/tcl.m439
-rw-r--r--unix/tclConfig.h.in34
-rw-r--r--unix/tclLoadDyld.c12
-rw-r--r--unix/tclUnixChan.c20
-rw-r--r--unix/tclUnixInit.c24
-rw-r--r--unix/tclUnixNotfy.c6
-rw-r--r--unix/tclUnixPort.h9
-rw-r--r--win/tclWin32Dll.c25
22 files changed, 1713 insertions, 119 deletions
diff --git a/ChangeLog b/ChangeLog
index 2c41c95..2838972 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,55 @@
+2005-05-14 Daniel Steffen <das@users.sourceforge.net>
+
+ * generic/tclInt.decls:
+ * generic/tclTest.c:
+ * generic/tclUtil.c:
+ * win/tclWin32Dll.c: fixed link error due to direct access by
+ tclTest.c to the MODULE_SCOPE tclPlatform global: renamed existing
+ TclWinGetPlatform() accessor to TclGetPlatform() and moved it to
+ generic code so that it can be used by on all platforms where
+ MODULE_SCOPE is enforced.
+
+ * macosx/tclMacOSXBundle.c:
+ * unix/tclUnixInit.c:
+ * unix/tcl.m4 (Darwin): made use of CoreFoundation API configurable
+ and added test of CoreFoundation availablility to allow building on
+ ppc64, replaced HAVE_CFBUNDLE by HAVE_COREFOUNDATION; test for
+ availability of Tiger or later OSSpinLockLock API.
+
+ * unix/tclUnixNotfy.c:
+ * unix/Makefile.in:
+ * macosx/tclMacOSXNotify.c (new file): when CoreFoundation is
+ available, use new CFRunLoop based notifier: allows easy integration
+ with other event loops on Mac OS X, in particular the TkAqua Carbon
+ event loop is now integrated via a standard tcl event source (instead
+ of TkAqua upon loading having to finalize the exsting notifier and
+ replace it with its custom version). [Patch 1202052]
+
+ * tests/unixNotfy.test: don't run unthreaded tests on Darwin
+ since notifier may be using threads even in unthreaded core.
+
+ * unix/tclUnixPort.h:
+ * unix/tcl.m4 (Darwin): test for thread-unsafe realpath durning
+ configure, as Darwin 7 and later realpath is threadsafe.
+
+ * macosx/Makefile: enable configure caching.
+
+ * unix/configure.in: wrap tclConfig.h header in #ifndef _TCLCONFIG so
+ that it can be included more than once without warnings from gcc4.0
+ (as happens e.g. when including both tclInt.h and tclPort.h)
+
+ * macosx/tclMacOSXBundle.c:
+ * unix/tclUnixChan.c:
+ * unix/tclLoadDyld.c:
+ * unix/tclUnixInit.c: fixed gcc 4.0 warnings.
+
+ * unix/configure: autoconf-2.59
+ * unix/tclConfig.h.in: autoheader-2.59
+
+ * generic/tclIntDecls.h:
+ * generic/tclIntPlatDecls.h:
+ * generic/tclStubInit.c: make genstubs
+
2005-05-13 Kevin Kenny <kennykb@acm.org>
* win/tclWin32Dll.c: Further rework of the SEH logic. All
diff --git a/generic/tclInt.decls b/generic/tclInt.decls
index c457741..f4f29c7 100644
--- a/generic/tclInt.decls
+++ b/generic/tclInt.decls
@@ -12,7 +12,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: tclInt.decls,v 1.88 2005/05/10 18:34:41 kennykb Exp $
+# RCS: @(#) $Id: tclInt.decls,v 1.89 2005/05/14 20:46:44 das Exp $
library tcl
@@ -891,6 +891,10 @@ declare 222 generic {
declare 223 generic {
int TclBN_mp_read_radix(mp_int *a, const char *str, int radix)
}
+# for use in tclTest.c
+declare 224 generic {
+ TclPlatformType *TclGetPlatform(void)
+}
##############################################################################
@@ -993,9 +997,10 @@ declare 23 win {
declare 24 win {
char *TclWinNoBackslash(char *path)
}
-declare 25 win {
- TclPlatformType *TclWinGetPlatform(void)
-}
+# replaced by generic TclGetPlatform
+#declare 25 win {
+# TclPlatformType *TclWinGetPlatform(void)
+#}
declare 26 win {
void TclWinSetInterfaces(int wide)
}
diff --git a/generic/tclIntDecls.h b/generic/tclIntDecls.h
index 7364d0f..3e5827e 100644
--- a/generic/tclIntDecls.h
+++ b/generic/tclIntDecls.h
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclIntDecls.h,v 1.79 2005/05/10 18:34:42 kennykb Exp $
+ * RCS: @(#) $Id: tclIntDecls.h,v 1.80 2005/05/14 20:46:45 das Exp $
*/
#ifndef _TCLINTDECLS
@@ -1156,6 +1156,11 @@ EXTERN int TclBN_mp_init _ANSI_ARGS_((mp_int * a));
EXTERN int TclBN_mp_read_radix _ANSI_ARGS_((mp_int * a,
const char * str, int radix));
#endif
+#ifndef TclGetPlatform_TCL_DECLARED
+#define TclGetPlatform_TCL_DECLARED
+/* 224 */
+EXTERN TclPlatformType * TclGetPlatform _ANSI_ARGS_((void));
+#endif
typedef struct TclIntStubs {
int magic;
@@ -1400,6 +1405,7 @@ typedef struct TclIntStubs {
void (*tclBN_mp_clear) _ANSI_ARGS_((mp_int * a)); /* 221 */
int (*tclBN_mp_init) _ANSI_ARGS_((mp_int * a)); /* 222 */
int (*tclBN_mp_read_radix) _ANSI_ARGS_((mp_int * a, const char * str, int radix)); /* 223 */
+ TclPlatformType * (*tclGetPlatform) _ANSI_ARGS_((void)); /* 224 */
} TclIntStubs;
#ifdef __cplusplus
@@ -2174,6 +2180,10 @@ extern TclIntStubs *tclIntStubsPtr;
#define TclBN_mp_read_radix \
(tclIntStubsPtr->tclBN_mp_read_radix) /* 223 */
#endif
+#ifndef TclGetPlatform
+#define TclGetPlatform \
+ (tclIntStubsPtr->tclGetPlatform) /* 224 */
+#endif
#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */
diff --git a/generic/tclIntPlatDecls.h b/generic/tclIntPlatDecls.h
index a3c900c..e9c1184 100644
--- a/generic/tclIntPlatDecls.h
+++ b/generic/tclIntPlatDecls.h
@@ -9,7 +9,7 @@
* Copyright (c) 1998-1999 by Scriptics Corporation.
* All rights reserved.
*
- * RCS: @(#) $Id: tclIntPlatDecls.h,v 1.26 2004/11/03 19:13:40 davygrvy Exp $
+ * RCS: @(#) $Id: tclIntPlatDecls.h,v 1.27 2005/05/14 20:46:45 das Exp $
*/
#ifndef _TCLINTPLATDECLS
@@ -249,11 +249,7 @@ EXTERN char * TclpGetTZName _ANSI_ARGS_((int isdst));
/* 24 */
EXTERN char * TclWinNoBackslash _ANSI_ARGS_((char * path));
#endif
-#ifndef TclWinGetPlatform_TCL_DECLARED
-#define TclWinGetPlatform_TCL_DECLARED
-/* 25 */
-EXTERN TclPlatformType * TclWinGetPlatform _ANSI_ARGS_((void));
-#endif
+/* Slot 25 is reserved */
#ifndef TclWinSetInterfaces_TCL_DECLARED
#define TclWinSetInterfaces_TCL_DECLARED
/* 26 */
@@ -348,7 +344,7 @@ typedef struct TclIntPlatStubs {
TclFile (*tclpCreateTempFile) _ANSI_ARGS_((CONST char * contents)); /* 22 */
char * (*tclpGetTZName) _ANSI_ARGS_((int isdst)); /* 23 */
char * (*tclWinNoBackslash) _ANSI_ARGS_((char * path)); /* 24 */
- TclPlatformType * (*tclWinGetPlatform) _ANSI_ARGS_((void)); /* 25 */
+ void *reserved25;
void (*tclWinSetInterfaces) _ANSI_ARGS_((int wide)); /* 26 */
void (*tclWinFlushDirtyChannels) _ANSI_ARGS_((void)); /* 27 */
void (*tclWinResetInterfaces) _ANSI_ARGS_((void)); /* 28 */
@@ -520,10 +516,7 @@ extern TclIntPlatStubs *tclIntPlatStubsPtr;
#define TclWinNoBackslash \
(tclIntPlatStubsPtr->tclWinNoBackslash) /* 24 */
#endif
-#ifndef TclWinGetPlatform
-#define TclWinGetPlatform \
- (tclIntPlatStubsPtr->tclWinGetPlatform) /* 25 */
-#endif
+/* Slot 25 is reserved */
#ifndef TclWinSetInterfaces
#define TclWinSetInterfaces \
(tclIntPlatStubsPtr->tclWinSetInterfaces) /* 26 */
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index 8240c9c..ebe7d40 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -8,7 +8,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclStubInit.c,v 1.116 2005/05/10 18:34:49 kennykb Exp $
+ * RCS: @(#) $Id: tclStubInit.c,v 1.117 2005/05/14 20:46:45 das Exp $
*/
#include "tclInt.h"
@@ -308,6 +308,7 @@ TclIntStubs tclIntStubs = {
TclBN_mp_clear, /* 221 */
TclBN_mp_init, /* 222 */
TclBN_mp_read_radix, /* 223 */
+ TclGetPlatform, /* 224 */
};
TclIntPlatStubs tclIntPlatStubs = {
@@ -356,7 +357,7 @@ TclIntPlatStubs tclIntPlatStubs = {
TclpCreateTempFile, /* 22 */
TclpGetTZName, /* 23 */
TclWinNoBackslash, /* 24 */
- TclWinGetPlatform, /* 25 */
+ NULL, /* 25 */
TclWinSetInterfaces, /* 26 */
TclWinFlushDirtyChannels, /* 27 */
TclWinResetInterfaces, /* 28 */
diff --git a/generic/tclTest.c b/generic/tclTest.c
index 68b8963..22859a7 100644
--- a/generic/tclTest.c
+++ b/generic/tclTest.c
@@ -14,7 +14,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclTest.c,v 1.89 2005/05/10 18:34:50 kennykb Exp $
+ * RCS: @(#) $Id: tclTest.c,v 1.90 2005/05/14 20:46:46 das Exp $
*/
#define TCL_TEST
@@ -2457,11 +2457,7 @@ TestgetplatformCmd(clientData, interp, argc, argv)
static CONST char *platformStrings[] = { "unix", "mac", "windows" };
TclPlatformType *platform;
-#ifdef __WIN32__
- platform = TclWinGetPlatform();
-#else
- platform = &tclPlatform;
-#endif
+ platform = TclGetPlatform();
if (argc != 1) {
Tcl_AppendResult(interp, "wrong # arguments: should be \"", argv[0],
@@ -3697,11 +3693,7 @@ TestsetplatformCmd(clientData, interp, argc, argv)
size_t length;
TclPlatformType *platform;
-#ifdef __WIN32__
- platform = TclWinGetPlatform();
-#else
- platform = &tclPlatform;
-#endif
+ platform = TclGetPlatform();
if (argc != 2) {
Tcl_AppendResult(interp, "wrong # arguments: should be \"", argv[0],
diff --git a/generic/tclUtil.c b/generic/tclUtil.c
index 278380d..2c787c2 100644
--- a/generic/tclUtil.c
+++ b/generic/tclUtil.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclUtil.c,v 1.59 2005/05/10 18:34:52 kennykb Exp $
+ * RCS: @(#) $Id: tclUtil.c,v 1.60 2005/05/14 20:46:46 das Exp $
*/
#include "tclInt.h"
@@ -2993,3 +2993,26 @@ TclpGetTime(timePtr)
{
Tcl_GetTime(timePtr);
}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclGetPlatform --
+ *
+ * This is a kludge that allows the test library to get access
+ * the internal tclPlatform variable.
+ *
+ * Results:
+ * Returns a pointer to the tclPlatform variable.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+TclPlatformType *
+TclGetPlatform()
+{
+ return &tclPlatform;
+}
diff --git a/macosx/Makefile b/macosx/Makefile
index bc469d8..5914122 100644
--- a/macosx/Makefile
+++ b/macosx/Makefile
@@ -3,7 +3,7 @@
# Makefile to build Tcl on Mac OS X packaged as a Framework
# uses standard unix build system in tcl/unix
#
-# RCS: @(#) $Id: Makefile,v 1.18 2004/11/19 06:28:29 das Exp $
+# RCS: @(#) $Id: Makefile,v 1.19 2005/05/14 20:46:46 das Exp $
#
########################################################################################################
@@ -124,7 +124,7 @@ export CPPROG := cp -p
${PROJECT}: install-${PROJECT}
${OBJ_DIR}/Makefile: ${UNIX_DIR}/Makefile.in ${UNIX_DIR}/configure
- mkdir -p ${OBJ_DIR} && cd ${OBJ_DIR} && ${UNIX_DIR}/configure \
+ mkdir -p ${OBJ_DIR} && cd ${OBJ_DIR} && ${UNIX_DIR}/configure -C \
--prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} \
--includedir=${INCLUDEDIR} --mandir=${MANDIR} --enable-threads \
--enable-framework ${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS}
diff --git a/macosx/tclMacOSXBundle.c b/macosx/tclMacOSXBundle.c
index 8d50494..75b871c 100644
--- a/macosx/tclMacOSXBundle.c
+++ b/macosx/tclMacOSXBundle.c
@@ -51,8 +51,11 @@
* license.
*/
+#ifdef HAVE_COREFOUNDATION
#include <CoreFoundation/CoreFoundation.h>
#include <mach-o/dyld.h>
+#endif /* HAVE_COREFOUNDATION */
+
#include "tcl.h"
/*
@@ -119,6 +122,7 @@ Tcl_MacOSXOpenVersionedBundleResources(
int maxPathLen,
char *libraryPath)
{
+#ifdef HAVE_COREFOUNDATION
CFBundleRef bundleRef;
CFStringRef bundleNameRef;
CFURLRef libURL;
@@ -199,7 +203,7 @@ Tcl_MacOSXOpenVersionedBundleResources(
*/
CFURLGetFileSystemRepresentation(libURL, TRUE,
- libraryPath, maxPathLen);
+ (unsigned char*) libraryPath, maxPathLen);
CFRelease(libURL);
}
}
@@ -209,4 +213,7 @@ Tcl_MacOSXOpenVersionedBundleResources(
} else {
return TCL_ERROR;
}
+#else /* HAVE_COREFOUNDATION */
+ return TCL_ERROR;
+#endif /* HAVE_COREFOUNDATION */
}
diff --git a/macosx/tclMacOSXNotify.c b/macosx/tclMacOSXNotify.c
new file mode 100644
index 0000000..9de3c98
--- /dev/null
+++ b/macosx/tclMacOSXNotify.c
@@ -0,0 +1,1048 @@
+/*
+ * tclMacOSXNotify.c --
+ *
+ * This file contains the implementation of a merged
+ * CFRunLoop/select-based notifier, which is the lowest-level part
+ * of the Tcl event loop. This file works together with
+ * generic/tclNotify.c.
+ *
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc.
+ * Copyright 2001, Apple Computer, Inc.
+ * Copyright 2005, Tcl Core Team.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: @(#) $Id: tclMacOSXNotify.c,v 1.1 2005/05/14 20:46:46 das Exp $
+ */
+
+#ifdef HAVE_COREFOUNDATION /* Traditional unix select-based notifier
+ * is in tclUnixNotfy.c */
+#include "tclInt.h"
+#include <CoreFoundation/CoreFoundation.h>
+#include <pthread.h>
+
+extern TclStubs tclStubs;
+extern Tcl_NotifierProcs tclOriginalNotifier;
+
+/*
+ * This structure is used to keep track of the notifier info for a
+ * a registered file.
+ */
+
+typedef struct FileHandler {
+ int fd;
+ int mask; /* Mask of desired events: TCL_READABLE,
+ * etc. */
+ int readyMask; /* Mask of events that have been seen since the
+ * last time file handlers were invoked for
+ * this file. */
+ Tcl_FileProc *proc; /* Procedure to call, in the style of
+ * Tcl_CreateFileHandler. */
+ ClientData clientData; /* Argument to pass to proc. */
+ struct FileHandler *nextPtr;/* Next in list of all files we care about. */
+} FileHandler;
+
+/*
+ * The following structure is what is added to the Tcl event queue when
+ * file handlers are ready to fire.
+ */
+
+typedef struct FileHandlerEvent {
+ Tcl_Event header; /* Information that is standard for
+ * all events. */
+ int fd; /* File descriptor that is ready. Used
+ * to find the FileHandler structure for
+ * the file (can't point directly to the
+ * FileHandler structure because it could
+ * go away while the event is queued). */
+} FileHandlerEvent;
+
+/*
+ *
+ * The following structure contains a set of select() masks to track
+ * readable, writable, and exceptional conditions.
+ */
+
+typedef struct SelectMasks {
+ fd_set readable;
+ fd_set writable;
+ fd_set exceptional;
+} SelectMasks;
+
+/*
+ * The following static structure contains the state information for the
+ * select based implementation of the Tcl notifier. One of these structures
+ * is created for each thread that is using the notifier.
+ */
+
+typedef struct ThreadSpecificData {
+ FileHandler *firstFileHandlerPtr;
+ /* Pointer to head of file handler list. */
+
+ SelectMasks checkMasks; /* This structure is used to build up the masks
+ * to be used in the next call to select.
+ * Bits are set in response to calls to
+ * Tcl_CreateFileHandler. */
+ SelectMasks readyMasks; /* This array reflects the readable/writable
+ * conditions that were found to exist by the
+ * last call to select. */
+ int numFdBits; /* Number of valid bits in checkMasks
+ * (one more than highest fd for which
+ * Tcl_WatchFile has been called). */
+ int onList; /* True if it is in this list */
+ unsigned int pollState; /* pollState is used to implement a polling
+ * handshake between each thread and the
+ * notifier thread. Bits defined below. */
+ struct ThreadSpecificData *nextPtr, *prevPtr;
+ /* All threads that are currently waiting on
+ * an event have their ThreadSpecificData
+ * structure on a doubly-linked listed formed
+ * from these pointers. You must hold the
+ * notifierLock before accessing these
+ * fields. */
+ CFRunLoopSourceRef runLoopSource;
+ /* Any other thread alerts a notifier
+ * that an event is ready to be processed
+ * by signaling this CFRunLoopSource. */
+ CFRunLoopRef runLoop; /* This thread's CFRunLoop, needs to be woken
+ * up whenever the runLoopSource is signaled. */
+ int eventReady; /* True if an event is ready to be processed. */
+} ThreadSpecificData;
+
+static Tcl_ThreadDataKey dataKey;
+
+/*
+ * The following static indicates the number of threads that have
+ * initialized notifiers.
+ *
+ * You must hold the notifierInitLock before accessing this variable.
+ */
+
+static int notifierCount = 0;
+
+/*
+ * The following variable points to the head of a doubly-linked list of
+ * of ThreadSpecificData structures for all threads that are currently
+ * waiting on an event.
+ *
+ * You must hold the notifierLock before accessing this list.
+ */
+
+static ThreadSpecificData *waitingListPtr = NULL;
+
+/*
+ * The notifier thread spends all its time in select() waiting for a
+ * file descriptor associated with one of the threads on the waitingListPtr
+ * list to do something interesting. But if the contents of the
+ * waitingListPtr list ever changes, we need to wake up and restart
+ * the select() system call. You can wake up the notifier thread by
+ * writing a single byte to the file descriptor defined below. This
+ * file descriptor is the input-end of a pipe and the notifier thread is
+ * listening for data on the output-end of the same pipe. Hence writing
+ * to this file descriptor will cause the select() system call to return
+ * and wake up the notifier thread.
+ *
+ * You must hold the notifierLock lock before writing to the pipe.
+ */
+
+static int triggerPipe = -1;
+static int receivePipe = -1; /* Output end of triggerPipe */
+
+/*
+ * We use Darwin-native spinlocks instead of pthread mutexes for notifier
+ * locking: this radically simplifies the implementation and lowers
+ * overhead. Note that these are not pure spinlocks, they employ various
+ * strategies to back off, making them immune to most priority-inversion
+ * livelocks (c.f. man 3 OSSpinLockLock).
+ */
+
+#if defined(HAVE_LIBKERN_OSATOMIC_H) && defined(HAVE_OSSPINLOCKLOCK)
+/* Use OSSpinLock API where available (Tiger or later) */
+#include <libkern/OSAtomic.h>
+#else
+/* Otherwise, use commpage spinlock SPI directly */
+typedef uint32_t OSSpinLock;
+extern void _spin_lock(OSSpinLock *lock);
+extern void _spin_unlock(OSSpinLock *lock);
+#define OSSpinLockLock(p) _spin_lock(p)
+#define OSSpinLockUnlock(p) _spin_unlock(p)
+#endif
+
+/*
+ * These spinlocks lock access to the global notifier state.
+ */
+
+static OSSpinLock notifierInitLock = 0;
+static OSSpinLock notifierLock = 0;
+
+/*
+ * Macros abstracting notifier locking/unlocking
+ */
+
+#define LOCK_NOTIFIER_INIT OSSpinLockLock(&notifierInitLock)
+#define UNLOCK_NOTIFIER_INIT OSSpinLockUnlock(&notifierInitLock)
+#define LOCK_NOTIFIER OSSpinLockLock(&notifierLock)
+#define UNLOCK_NOTIFIER OSSpinLockUnlock(&notifierLock)
+
+/*
+ * The pollState bits
+ * POLL_WANT is set by each thread before it waits on its condition
+ * variable. It is checked by the notifier before it does
+ * select.
+ * POLL_DONE is set by the notifier if it goes into select after
+ * seeing POLL_WANT. The idea is to ensure it tries a select
+ * with the same bits the initial thread had set.
+ */
+#define POLL_WANT 0x1
+#define POLL_DONE 0x2
+
+/*
+ * This is the thread ID of the notifier thread that does select.
+ */
+static pthread_t notifierThread;
+
+/*
+ * Static routines defined in this file.
+ */
+
+static void NotifierThreadProc(ClientData clientData);
+static int FileHandlerEventProc(Tcl_Event *evPtr, int flags);
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_InitNotifier --
+ *
+ * Initializes the platform specific notifier state.
+ *
+ * Results:
+ * Returns a handle to the notifier state for this thread..
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+ClientData
+Tcl_InitNotifier()
+{
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+
+ tsdPtr->eventReady = 0;
+
+ /*
+ * Initialize CFRunLoopSource and add it to CFRunLoop of this thread
+ */
+
+ if (!tsdPtr->runLoop) {
+ CFRunLoopRef runLoop = CFRunLoopGetCurrent();
+ CFRunLoopSourceRef runLoopSource;
+ CFRunLoopSourceContext runLoopSourceContext;
+
+ bzero(&runLoopSourceContext, sizeof(CFRunLoopSourceContext));
+ runLoopSourceContext.info = tsdPtr;
+ runLoopSource = CFRunLoopSourceCreate(NULL, 0, &runLoopSourceContext);
+ if (!runLoopSource) {
+ Tcl_Panic("Tcl_InitNotifier: could not create CFRunLoopSource.");
+ }
+ CFRunLoopAddSource(runLoop, runLoopSource, kCFRunLoopCommonModes);
+ CFRelease(runLoopSource);
+ tsdPtr->runLoopSource = runLoopSource;
+ tsdPtr->runLoop = runLoop;
+ }
+
+ /*
+ * Initialize trigger pipe and start the Notifier thread if necessary.
+ */
+
+ LOCK_NOTIFIER_INIT;
+ if (notifierCount == 0) {
+ int fds[2], status, result;
+ pthread_attr_t attr;
+
+ if (pipe(fds) != 0) {
+ Tcl_Panic("Tcl_InitNotifier: could not create trigger pipe.");
+ }
+
+ status = fcntl(fds[0], F_GETFL);
+ status |= O_NONBLOCK;
+ if (fcntl(fds[0], F_SETFL, status) < 0) {
+ Tcl_Panic("Tcl_InitNotifier: could not make receive pipe non blocking.");
+ }
+ status = fcntl(fds[1], F_GETFL);
+ status |= O_NONBLOCK;
+ if (fcntl(fds[1], F_SETFL, status) < 0) {
+ Tcl_Panic("Tcl_InitNotifier: could not make trigger pipe non blocking.");
+ }
+
+ receivePipe = fds[0];
+ triggerPipe = fds[1];
+
+ pthread_attr_init(&attr);
+ pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);
+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+ pthread_attr_setstacksize(&attr, 60 * 1024);
+ result = pthread_create(&notifierThread, &attr, (void * (*)(void *))NotifierThreadProc, NULL);
+ pthread_attr_destroy(&attr);
+ if (result) {
+ Tcl_Panic("Tcl_InitNotifier: unable to start notifier thread.");
+ }
+ }
+ notifierCount++;
+ UNLOCK_NOTIFIER_INIT;
+
+ return (ClientData) tsdPtr;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_FinalizeNotifier --
+ *
+ * This function is called to cleanup the notifier state before
+ * a thread is terminated.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * May terminate the background notifier thread if this is the
+ * last notifier instance.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_FinalizeNotifier(clientData)
+ ClientData clientData; /* Not used. */
+{
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+
+ LOCK_NOTIFIER_INIT;
+ notifierCount--;
+
+ /*
+ * If this is the last thread to use the notifier, close the notifier
+ * pipe and wait for the background thread to terminate.
+ */
+
+ if (notifierCount == 0) {
+ int result;
+
+ if (triggerPipe < 0) {
+ Tcl_Panic("Tcl_FinalizeNotifier: notifier pipe not initialized.");
+ }
+
+ /*
+ * Send "q" message to the notifier thread so that it will
+ * terminate. The notifier will return from its call to select()
+ * and notice that a "q" message has arrived, it will then close
+ * its side of the pipe and terminate its thread. Note the we can
+ * not just close the pipe and check for EOF in the notifier
+ * thread because if a background child process was created with
+ * exec, select() would not register the EOF on the pipe until the
+ * child processes had terminated. [Bug: 4139]
+ */
+ write(triggerPipe, "q", 1);
+ close(triggerPipe);
+
+ result = pthread_join(notifierThread, NULL);
+ if (result) {
+ Tcl_Panic("Tcl_FinalizeNotifier: unable to join notifier thread.");
+ }
+
+ close(receivePipe);
+ triggerPipe = -1;
+ }
+ UNLOCK_NOTIFIER_INIT;
+
+ LOCK_NOTIFIER; /* for concurrency with Tcl_AlertNotifier */
+ if (tsdPtr->runLoop) {
+ tsdPtr->runLoop = NULL;
+ /* Remove runLoopSource from all CFRunLoops and release it */
+ CFRunLoopSourceInvalidate(tsdPtr->runLoopSource);
+ tsdPtr->runLoopSource = NULL;
+ }
+ UNLOCK_NOTIFIER;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_AlertNotifier --
+ *
+ * Wake up the specified notifier from any thread. This routine
+ * is called by the platform independent notifier code whenever
+ * the Tcl_ThreadAlert routine is called. This routine is
+ * guaranteed not to be called on a given notifier after
+ * Tcl_FinalizeNotifier is called for that notifier.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * Signals the notifier condition variable for the specified
+ * notifier.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_AlertNotifier(clientData)
+ ClientData clientData;
+{
+ ThreadSpecificData *tsdPtr = (ThreadSpecificData *) clientData;
+ LOCK_NOTIFIER;
+ if (tsdPtr->runLoop) {
+ tsdPtr->eventReady = 1;
+ CFRunLoopSourceSignal(tsdPtr->runLoopSource);
+ CFRunLoopWakeUp(tsdPtr->runLoop);
+ }
+ UNLOCK_NOTIFIER;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_SetTimer --
+ *
+ * This procedure sets the current notifier timer value. This
+ * interface is not implemented in this notifier because we are
+ * always running inside of Tcl_DoOneEvent.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_SetTimer(timePtr)
+ Tcl_Time *timePtr; /* Timeout value, may be NULL. */
+{
+ /*
+ * The interval timer doesn't do anything in this implementation,
+ * because the only event loop is via Tcl_DoOneEvent, which passes
+ * timeout values to Tcl_WaitForEvent.
+ */
+
+ if (tclStubs.tcl_SetTimer != tclOriginalNotifier.setTimerProc) {
+ tclStubs.tcl_SetTimer(timePtr);
+ }
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_ServiceModeHook --
+ *
+ * This function is invoked whenever the service mode changes.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_ServiceModeHook(mode)
+ int mode; /* Either TCL_SERVICE_ALL, or
+ * TCL_SERVICE_NONE. */
+{
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_CreateFileHandler --
+ *
+ * This procedure registers a file handler with the select notifier.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * Creates a new file handler structure.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_CreateFileHandler(fd, mask, proc, clientData)
+ int fd; /* Handle of stream to watch. */
+ int mask; /* OR'ed combination of TCL_READABLE,
+ * TCL_WRITABLE, and TCL_EXCEPTION:
+ * indicates conditions under which
+ * proc should be called. */
+ Tcl_FileProc *proc; /* Procedure to call for each
+ * selected event. */
+ ClientData clientData; /* Arbitrary data to pass to proc. */
+{
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+ FileHandler *filePtr;
+
+ if (tclStubs.tcl_CreateFileHandler != tclOriginalNotifier.createFileHandlerProc) {
+ tclStubs.tcl_CreateFileHandler(fd, mask, proc, clientData);
+ return;
+ }
+
+ for (filePtr = tsdPtr->firstFileHandlerPtr; filePtr != NULL;
+ filePtr = filePtr->nextPtr) {
+ if (filePtr->fd == fd) {
+ break;
+ }
+ }
+ if (filePtr == NULL) {
+ filePtr = (FileHandler*) ckalloc(sizeof(FileHandler));
+ filePtr->fd = fd;
+ filePtr->readyMask = 0;
+ filePtr->nextPtr = tsdPtr->firstFileHandlerPtr;
+ tsdPtr->firstFileHandlerPtr = filePtr;
+ }
+ filePtr->proc = proc;
+ filePtr->clientData = clientData;
+ filePtr->mask = mask;
+
+ /*
+ * Update the check masks for this file.
+ */
+
+ if (mask & TCL_READABLE) {
+ FD_SET(fd, &(tsdPtr->checkMasks.readable));
+ } else {
+ FD_CLR(fd, &(tsdPtr->checkMasks.readable));
+ }
+ if (mask & TCL_WRITABLE) {
+ FD_SET(fd, &(tsdPtr->checkMasks.writable));
+ } else {
+ FD_CLR(fd, &(tsdPtr->checkMasks.writable));
+ }
+ if (mask & TCL_EXCEPTION) {
+ FD_SET(fd, &(tsdPtr->checkMasks.exceptional));
+ } else {
+ FD_CLR(fd, &(tsdPtr->checkMasks.exceptional));
+ }
+ if (tsdPtr->numFdBits <= fd) {
+ tsdPtr->numFdBits = fd+1;
+ }
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_DeleteFileHandler --
+ *
+ * Cancel a previously-arranged callback arrangement for
+ * a file.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * If a callback was previously registered on file, remove it.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_DeleteFileHandler(fd)
+ int fd; /* Stream id for which to remove callback procedure. */
+{
+ FileHandler *filePtr, *prevPtr;
+ int i;
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+
+ if (tclStubs.tcl_DeleteFileHandler != tclOriginalNotifier.deleteFileHandlerProc) {
+ tclStubs.tcl_DeleteFileHandler(fd);
+ return;
+ }
+
+ /*
+ * Find the entry for the given file (and return if there isn't one).
+ */
+
+ for (prevPtr = NULL, filePtr = tsdPtr->firstFileHandlerPtr; ;
+ prevPtr = filePtr, filePtr = filePtr->nextPtr) {
+ if (filePtr == NULL) {
+ return;
+ }
+ if (filePtr->fd == fd) {
+ break;
+ }
+ }
+
+ /*
+ * Update the check masks for this file.
+ */
+
+ if (filePtr->mask & TCL_READABLE) {
+ FD_CLR(fd, &(tsdPtr->checkMasks.readable));
+ }
+ if (filePtr->mask & TCL_WRITABLE) {
+ FD_CLR(fd, &(tsdPtr->checkMasks.writable));
+ }
+ if (filePtr->mask & TCL_EXCEPTION) {
+ FD_CLR(fd, &(tsdPtr->checkMasks.exceptional));
+ }
+
+ /*
+ * Find current max fd.
+ */
+
+ if (fd+1 == tsdPtr->numFdBits) {
+ tsdPtr->numFdBits = 0;
+ for (i = fd-1; i >= 0; i--) {
+ if (FD_ISSET(i, &(tsdPtr->checkMasks.readable))
+ || FD_ISSET(i, &(tsdPtr->checkMasks.writable))
+ || FD_ISSET(i, &(tsdPtr->checkMasks.exceptional))) {
+ tsdPtr->numFdBits = i+1;
+ break;
+ }
+ }
+ }
+
+ /*
+ * Clean up information in the callback record.
+ */
+
+ if (prevPtr == NULL) {
+ tsdPtr->firstFileHandlerPtr = filePtr->nextPtr;
+ } else {
+ prevPtr->nextPtr = filePtr->nextPtr;
+ }
+ ckfree((char *) filePtr);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * FileHandlerEventProc --
+ *
+ * This procedure is called by Tcl_ServiceEvent when a file event
+ * reaches the front of the event queue. This procedure is
+ * responsible for actually handling the event by invoking the
+ * callback for the file handler.
+ *
+ * Results:
+ * Returns 1 if the event was handled, meaning it should be removed
+ * from the queue. Returns 0 if the event was not handled, meaning
+ * it should stay on the queue. The only time the event isn't
+ * handled is if the TCL_FILE_EVENTS flag bit isn't set.
+ *
+ * Side effects:
+ * Whatever the file handler's callback procedure does.
+ *
+ *----------------------------------------------------------------------
+ */
+
+static int
+FileHandlerEventProc(evPtr, flags)
+ Tcl_Event *evPtr; /* Event to service. */
+ int flags; /* Flags that indicate what events to
+ * handle, such as TCL_FILE_EVENTS. */
+{
+ int mask;
+ FileHandler *filePtr;
+ FileHandlerEvent *fileEvPtr = (FileHandlerEvent *) evPtr;
+ ThreadSpecificData *tsdPtr;
+
+ if (!(flags & TCL_FILE_EVENTS)) {
+ return 0;
+ }
+
+ /*
+ * Search through the file handlers to find the one whose handle matches
+ * the event. We do this rather than keeping a pointer to the file
+ * handler directly in the event, so that the handler can be deleted
+ * while the event is queued without leaving a dangling pointer.
+ */
+
+ tsdPtr = TCL_TSD_INIT(&dataKey);
+ for (filePtr = tsdPtr->firstFileHandlerPtr; filePtr != NULL;
+ filePtr = filePtr->nextPtr) {
+ if (filePtr->fd != fileEvPtr->fd) {
+ continue;
+ }
+
+ /*
+ * The code is tricky for two reasons:
+ * 1. The file handler's desired events could have changed
+ * since the time when the event was queued, so AND the
+ * ready mask with the desired mask.
+ * 2. The file could have been closed and re-opened since
+ * the time when the event was queued. This is why the
+ * ready mask is stored in the file handler rather than
+ * the queued event: it will be zeroed when a new
+ * file handler is created for the newly opened file.
+ */
+
+ mask = filePtr->readyMask & filePtr->mask;
+ filePtr->readyMask = 0;
+ if (mask != 0) {
+ (*filePtr->proc)(filePtr->clientData, mask);
+ }
+ break;
+ }
+ return 1;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_WaitForEvent --
+ *
+ * This function is called by Tcl_DoOneEvent to wait for new
+ * events on the message queue. If the block time is 0, then
+ * Tcl_WaitForEvent just polls without blocking.
+ *
+ * Results:
+ * Returns -1 if the select would block forever, otherwise
+ * returns 0.
+ *
+ * Side effects:
+ * Queues file events that are detected by the select.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+Tcl_WaitForEvent(timePtr)
+ Tcl_Time *timePtr; /* Maximum block time, or NULL. */
+{
+ FileHandler *filePtr;
+ FileHandlerEvent *fileEvPtr;
+ int mask;
+ Tcl_Time myTime;
+ int waitForFiles;
+ Tcl_Time *myTimePtr;
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+
+ if (tclStubs.tcl_WaitForEvent != tclOriginalNotifier.waitForEventProc) {
+ return tclStubs.tcl_WaitForEvent(timePtr);
+ }
+
+ if (timePtr != NULL) {
+ /* TIP #233 (Virtualized Time). Is virtual time in effect ?
+ * And do we actually have something to scale ? If yes to both
+ * then we call the handler to do this scaling */
+
+ myTime.sec = timePtr->sec;
+ myTime.usec = timePtr->usec;
+
+ if (myTime.sec != 0 || myTime.usec != 0) {
+ (*tclScaleTimeProcPtr) (&myTime, tclTimeClientData);
+ }
+
+ myTimePtr = &myTime;
+ } else {
+ myTimePtr = NULL;
+ }
+
+ /*
+ * Place this thread on the list of interested threads, signal the
+ * notifier thread, and wait for a response or a timeout.
+ */
+
+ LOCK_NOTIFIER;
+
+ waitForFiles = (tsdPtr->numFdBits > 0);
+ if (myTimePtr != NULL && myTimePtr->sec == 0 && myTimePtr->usec == 0) {
+ /*
+ * Cannot emulate a polling select with a polling condition variable.
+ * Instead, pretend to wait for files and tell the notifier
+ * thread what we are doing. The notifier thread makes sure
+ * it goes through select with its select mask in the same state
+ * as ours currently is. We block until that happens.
+ */
+
+ waitForFiles = 1;
+ tsdPtr->pollState = POLL_WANT;
+ myTimePtr = NULL;
+ } else {
+ tsdPtr->pollState = 0;
+ }
+
+ if (waitForFiles) {
+ /*
+ * Add the ThreadSpecificData structure of this thread to the list
+ * of ThreadSpecificData structures of all threads that are waiting
+ * on file events.
+ */
+
+ tsdPtr->nextPtr = waitingListPtr;
+ if (waitingListPtr) {
+ waitingListPtr->prevPtr = tsdPtr;
+ }
+ tsdPtr->prevPtr = 0;
+ waitingListPtr = tsdPtr;
+ tsdPtr->onList = 1;
+
+ write(triggerPipe, "", 1);
+ }
+
+ FD_ZERO(&(tsdPtr->readyMasks.readable));
+ FD_ZERO(&(tsdPtr->readyMasks.writable));
+ FD_ZERO(&(tsdPtr->readyMasks.exceptional));
+
+ if (!tsdPtr->eventReady) {
+ CFTimeInterval waitTime;
+
+ if (myTimePtr == NULL) {
+ waitTime = 1.0e10; /* Wait forever, as per CFRunLoop.c */
+ } else {
+ waitTime = myTimePtr->sec + 1.0e-6 * myTimePtr->usec;
+ }
+ UNLOCK_NOTIFIER;
+ CFRunLoopRunInMode(kCFRunLoopDefaultMode, waitTime, TRUE);
+ LOCK_NOTIFIER;
+ }
+ tsdPtr->eventReady = 0;
+
+ if (waitForFiles && tsdPtr->onList) {
+ /*
+ * Remove the ThreadSpecificData structure of this thread from the
+ * waiting list. Alert the notifier thread to recompute its select
+ * masks - skipping this caused a hang when trying to close a pipe
+ * which the notifier thread was still doing a select on.
+ */
+
+ if (tsdPtr->prevPtr) {
+ tsdPtr->prevPtr->nextPtr = tsdPtr->nextPtr;
+ } else {
+ waitingListPtr = tsdPtr->nextPtr;
+ }
+ if (tsdPtr->nextPtr) {
+ tsdPtr->nextPtr->prevPtr = tsdPtr->prevPtr;
+ }
+ tsdPtr->nextPtr = tsdPtr->prevPtr = NULL;
+ tsdPtr->onList = 0;
+ write(triggerPipe, "", 1);
+ }
+
+
+ /*
+ * Queue all detected file events before returning.
+ */
+
+ for (filePtr = tsdPtr->firstFileHandlerPtr; (filePtr != NULL);
+ filePtr = filePtr->nextPtr) {
+
+ mask = 0;
+ if (FD_ISSET(filePtr->fd, &(tsdPtr->readyMasks.readable))) {
+ mask |= TCL_READABLE;
+ }
+ if (FD_ISSET(filePtr->fd, &(tsdPtr->readyMasks.writable))) {
+ mask |= TCL_WRITABLE;
+ }
+ if (FD_ISSET(filePtr->fd, &(tsdPtr->readyMasks.exceptional))) {
+ mask |= TCL_EXCEPTION;
+ }
+
+ if (!mask) {
+ continue;
+ }
+
+ /*
+ * Don't bother to queue an event if the mask was previously
+ * non-zero since an event must still be on the queue.
+ */
+
+ if (filePtr->readyMask == 0) {
+ fileEvPtr = (FileHandlerEvent *) ckalloc(sizeof(FileHandlerEvent));
+ fileEvPtr->header.proc = FileHandlerEventProc;
+ fileEvPtr->fd = filePtr->fd;
+ Tcl_QueueEvent((Tcl_Event *) fileEvPtr, TCL_QUEUE_TAIL);
+ }
+ filePtr->readyMask = mask;
+ }
+ UNLOCK_NOTIFIER;
+ return 0;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * NotifierThreadProc --
+ *
+ * This routine is the initial (and only) function executed by the
+ * special notifier thread. Its job is to wait for file descriptors
+ * to become readable or writable or to have an exception condition
+ * and then to notify other threads who are interested in this
+ * information by signalling a condition variable. Other threads
+ * can signal this notifier thread of a change in their interests
+ * by writing a single byte to a special pipe that the notifier
+ * thread is monitoring.
+ *
+ * Result:
+ * None. Once started, this routine never exits. It dies with
+ * the overall process.
+ *
+ * Side effects:
+ * The trigger pipe used to signal the notifier thread is created
+ * when the notifier thread first starts.
+ *
+ *----------------------------------------------------------------------
+ */
+
+static void
+NotifierThreadProc(clientData)
+ ClientData clientData; /* Not used. */
+{
+ ThreadSpecificData *tsdPtr;
+ fd_set readableMask;
+ fd_set writableMask;
+ fd_set exceptionalMask;
+ int i, numFdBits = 0;
+ long found;
+ struct timeval poll = {0., 0.}, *timePtr;
+ char buf[2];
+
+ /*
+ * Look for file events and report them to interested threads.
+ */
+
+ while (1) {
+ FD_ZERO(&readableMask);
+ FD_ZERO(&writableMask);
+ FD_ZERO(&exceptionalMask);
+
+ /*
+ * Compute the logical OR of the select masks from all the
+ * waiting notifiers.
+ */
+
+ LOCK_NOTIFIER;
+ timePtr = NULL;
+ for (tsdPtr = waitingListPtr; tsdPtr; tsdPtr = tsdPtr->nextPtr) {
+ for (i = tsdPtr->numFdBits-1; i >= 0; --i) {
+ if (FD_ISSET(i, &(tsdPtr->checkMasks.readable))) {
+ FD_SET(i, &readableMask);
+ }
+ if (FD_ISSET(i, &(tsdPtr->checkMasks.writable))) {
+ FD_SET(i, &writableMask);
+ }
+ if (FD_ISSET(i, &(tsdPtr->checkMasks.exceptional))) {
+ FD_SET(i, &exceptionalMask);
+ }
+ }
+ if (tsdPtr->numFdBits > numFdBits) {
+ numFdBits = tsdPtr->numFdBits;
+ }
+ if (tsdPtr->pollState & POLL_WANT) {
+ /*
+ * Here we make sure we go through select() with the same
+ * mask bits that were present when the thread tried to poll.
+ */
+
+ tsdPtr->pollState |= POLL_DONE;
+ timePtr = &poll;
+ }
+ }
+ UNLOCK_NOTIFIER;
+
+ /*
+ * Set up the select mask to include the receive pipe.
+ */
+
+ if (receivePipe >= numFdBits) {
+ numFdBits = receivePipe + 1;
+ }
+ FD_SET(receivePipe, &readableMask);
+
+ if (select(numFdBits, &readableMask, &writableMask, &exceptionalMask,
+ timePtr) == -1) {
+ /*
+ * Try again immediately on an error.
+ */
+
+ continue;
+ }
+
+ /*
+ * Alert any threads that are waiting on a ready file descriptor.
+ */
+
+ LOCK_NOTIFIER;
+ for (tsdPtr = waitingListPtr; tsdPtr; tsdPtr = tsdPtr->nextPtr) {
+ found = 0;
+
+ for (i = tsdPtr->numFdBits-1; i >= 0; --i) {
+ if (FD_ISSET(i, &(tsdPtr->checkMasks.readable))
+ && FD_ISSET(i, &readableMask)) {
+ FD_SET(i, &(tsdPtr->readyMasks.readable));
+ found = 1;
+ }
+ if (FD_ISSET(i, &(tsdPtr->checkMasks.writable))
+ && FD_ISSET(i, &writableMask)) {
+ FD_SET(i, &(tsdPtr->readyMasks.writable));
+ found = 1;
+ }
+ if (FD_ISSET(i, &(tsdPtr->checkMasks.exceptional))
+ && FD_ISSET(i, &exceptionalMask)) {
+ FD_SET(i, &(tsdPtr->readyMasks.exceptional));
+ found = 1;
+ }
+ }
+
+ if (found || (tsdPtr->pollState & POLL_DONE)) {
+ tsdPtr->eventReady = 1;
+ if (tsdPtr->onList) {
+ /*
+ * Remove the ThreadSpecificData structure of this
+ * thread from the waiting list. This prevents us from
+ * continuously spining on select until the other
+ * threads runs and services the file event.
+ */
+
+ if (tsdPtr->prevPtr) {
+ tsdPtr->prevPtr->nextPtr = tsdPtr->nextPtr;
+ } else {
+ waitingListPtr = tsdPtr->nextPtr;
+ }
+ if (tsdPtr->nextPtr) {
+ tsdPtr->nextPtr->prevPtr = tsdPtr->prevPtr;
+ }
+ tsdPtr->nextPtr = tsdPtr->prevPtr = NULL;
+ tsdPtr->onList = 0;
+ tsdPtr->pollState = 0;
+ }
+ if (tsdPtr->runLoop) {
+ CFRunLoopSourceSignal(tsdPtr->runLoopSource);
+ CFRunLoopWakeUp(tsdPtr->runLoop);
+ }
+ }
+ }
+ UNLOCK_NOTIFIER;
+
+ /*
+ * Consume the next byte from the notifier pipe if the pipe was
+ * readable. Note that there may be multiple bytes pending, but
+ * to avoid a race condition we only read one at a time.
+ */
+
+ if (FD_ISSET(receivePipe, &readableMask)) {
+ i = read(receivePipe, buf, 1);
+
+ if ((i == 0) || ((i == 1) && (buf[0] == 'q'))) {
+ /*
+ * Someone closed the write end of the pipe or sent us a
+ * Quit message [Bug: 4139] and then closed the write end
+ * of the pipe so we need to shut down the notifier thread.
+ */
+
+ break;
+ }
+ }
+ }
+ pthread_exit (0);
+}
+
+#endif /* HAVE_COREFOUNDATION */
diff --git a/tests/unixNotfy.test b/tests/unixNotfy.test
index fc9cdde..42090d9 100644
--- a/tests/unixNotfy.test
+++ b/tests/unixNotfy.test
@@ -10,7 +10,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: unixNotfy.test,v 1.17 2004/06/24 10:34:12 dkf Exp $
+# RCS: @(#) $Id: unixNotfy.test,v 1.18 2005/05/14 20:46:46 das Exp $
# The tests should not be run if you have a notifier which is unable to
# detect infinite vwaits, as the tests below will hang. The presence of
@@ -24,8 +24,10 @@ if {[lsearch [namespace children] ::tcltest] == -1} {
# When run in a Tk shell, these tests hang.
testConstraint noTk [expr {![info exists tk_version]}]
testConstraint testthread [expr {[info commands testthread] != {}}]
+# Darwin always uses a threaded notifier
testConstraint unthreaded [expr {
- ![info exist tcl_platform(threaded)] || !$tcl_platform(threaded)
+ (![info exist tcl_platform(threaded)] || !$tcl_platform(threaded))
+ && $tcl_platform(os) ne "Darwin"
}]
# The next two tests will hang if threads are enabled because the notifier
diff --git a/unix/Makefile.in b/unix/Makefile.in
index c5f8da2..7245368 100644
--- a/unix/Makefile.in
+++ b/unix/Makefile.in
@@ -5,7 +5,7 @@
# "autoconf" program (constructs like "@foo@" will get replaced in the
# actual Makefile.
#
-# RCS: @(#) $Id: Makefile.in,v 1.166 2005/05/13 17:12:19 dgp Exp $
+# RCS: @(#) $Id: Makefile.in,v 1.167 2005/05/14 20:46:46 das Exp $
VERSION = @TCL_VERSION@
MAJOR_VERSION = @TCL_MAJOR_VERSION@
@@ -323,7 +323,7 @@ TOMMATH_OBJS = bncore.o bn_reverse.o bn_fast_s_mp_mul_digs.o \
STUB_LIB_OBJS = tclStubLib.o ${COMPAT_OBJS}
-MAC_OSX_OBJS = tclMacOSXBundle.o tclMacOSXFCmd.o
+MAC_OSX_OBJS = tclMacOSXBundle.o tclMacOSXFCmd.o tclMacOSXNotify.o
OBJS = ${GENERIC_OBJS} ${TOMMATH_OBJS} ${UNIX_OBJS} ${NOTIFY_OBJS} \
${COMPAT_OBJS} @DL_OBJS@ @PLAT_OBJS@
@@ -504,7 +504,8 @@ DL_SRCS = \
MAC_OSX_SRCS = \
$(MAC_OSX_DIR)/tclMacOSXBundle.c \
- $(MAC_OSX_DIR)/tclMacOSXFCmd.c
+ $(MAC_OSX_DIR)/tclMacOSXFCmd.c \
+ $(MAC_OSX_DIR)/tclMacOSXNotify.c
# Note: don't include DL_SRCS or MAC_OSX_SRCS in SRCS: most of those
# files won't compile on the current machine, and they will cause
@@ -825,6 +826,9 @@ install-private-headers: libraries
do \
$(INSTALL_DATA) $$i $(PRIVATE_INCLUDE_INSTALL_DIR); \
done;
+ @if test -f tclConfig.h; then\
+ $(INSTALL_DATA) tclConfig.h $(PRIVATE_INCLUDE_INSTALL_DIR); \
+ fi;
Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in
$(SHELL) config.status
@@ -1352,6 +1356,9 @@ tclMacOSXBundle.o: $(MAC_OSX_DIR)/tclMacOSXBundle.c
tclMacOSXFCmd.o: $(MAC_OSX_DIR)/tclMacOSXFCmd.c
$(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tclMacOSXFCmd.c
+tclMacOSXNotify.o: $(MAC_OSX_DIR)/tclMacOSXNotify.c
+ $(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tclMacOSXNotify.c
+
# The following targets are not completely general. They are provide
# purely for documentation purposes so people who are interested in
# the Xt based notifier can modify them to suit their own installation.
diff --git a/unix/configure b/unix/configure
index 3496807..95d4611 100755
--- a/unix/configure
+++ b/unix/configure
@@ -851,6 +851,7 @@ Optional Features:
--enable-shared build and link with shared libraries --enable-shared
--enable-64bit enable 64bit support (where applicable)
--enable-64bit-vis enable 64bit Sparc VIS support
+ --enable-corefoundation use CoreFoundation API --enable-corefoundation
--disable-load disallow dynamic loading and "load" command
--enable-symbols build with debugging symbols --disable-symbols
--enable-langinfo use nl_langinfo if possible to determine
@@ -1322,6 +1323,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
TCL_VERSION=8.5
TCL_MAJOR_VERSION=8
TCL_MINOR_VERSION=5
@@ -7913,19 +7915,344 @@ echo "${ECHO_T}$tcl_cv_ld_search_paths_first" >&6
CC_SEARCH_FLAGS=""
LD_SEARCH_FLAGS=""
LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH"
- PLAT_OBJS="\${MAC_OSX_OBJS}"
- PLAT_SRCS="\${MAC_OSX_SRCS}"
+ PLAT_OBJS='${MAC_OSX_OBJS}'
+ PLAT_SRCS='${MAC_OSX_SRCS}'
TCL_SHLIB_LD_EXTRAS='-compatibility_version ${VERSION} -current_version ${VERSION} -install_name ${DYLIB_INSTALL_DIR}/${TCL_LIB_FILE} -seg1addr 0xa000000'
TK_SHLIB_LD_EXTRAS=' -compatibility_version ${VERSION} -current_version ${VERSION} -install_name ${DYLIB_INSTALL_DIR}/${TK_LIB_FILE} -seg1addr 0xb000000 -unexported_symbols_list $$(f=$(TCL_STUB_LIB_FILE).E && nm -gjp $(TCL_BIN_DIR)/$(TCL_STUB_LIB_FILE) | tail +3 > $$f && echo $$f)'
- LIBS="$LIBS -framework CoreFoundation"
+ echo "$as_me:$LINENO: checking whether to use CoreFoundation" >&5
+echo $ECHO_N "checking whether to use CoreFoundation... $ECHO_C" >&6
+ # Check whether --enable-corefoundation or --disable-corefoundation was given.
+if test "${enable_corefoundation+set}" = set; then
+ enableval="$enable_corefoundation"
+ tcl_corefoundation=$enableval
+else
+ tcl_corefoundation=yes
+fi;
+ echo "$as_me:$LINENO: result: $tcl_corefoundation" >&5
+echo "${ECHO_T}$tcl_corefoundation" >&6
+ if test $tcl_corefoundation = yes; then
+ echo "$as_me:$LINENO: checking for CoreFoundation.framework" >&5
+echo $ECHO_N "checking for CoreFoundation.framework... $ECHO_C" >&6
+if test "${tcl_cv_lib_corefoundation+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ hold_libs=$LIBS
+ LIBS="$LIBS -framework CoreFoundation"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <CoreFoundation/CoreFoundation.h>
+int
+main ()
+{
+CFBundleRef b = CFBundleGetMainBundle();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ tcl_cv_lib_corefoundation=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+tcl_cv_lib_corefoundation=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$hold_libs
+fi
+echo "$as_me:$LINENO: result: $tcl_cv_lib_corefoundation" >&5
+echo "${ECHO_T}$tcl_cv_lib_corefoundation" >&6
+ if test $tcl_cv_lib_corefoundation = yes; then
+ LIBS="$LIBS -framework CoreFoundation"
cat >>confdefs.h <<\_ACEOF
-#define MAC_OSX_TCL 1
+#define HAVE_COREFOUNDATION 1
_ACEOF
+ fi
+ fi
+
+for ac_header in libkern/OSAtomic.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------ ##
+## Report this to the tcl lists. ##
+## ------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_func in OSSpinLockLock
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
cat >>confdefs.h <<\_ACEOF
-#define HAVE_CFBUNDLE 1
+#define MAC_OSX_TCL 1
_ACEOF
@@ -7943,6 +8270,103 @@ cat >>confdefs.h <<\_ACEOF
#define MODULE_SCOPE __private_extern__
_ACEOF
+ # prior to Darwin 7, realpath is not threadsafe, so don't
+ # use it when threads are enabled, c.f. bug # 711232:
+ echo "$as_me:$LINENO: checking for realpath" >&5
+echo $ECHO_N "checking for realpath... $ECHO_C" >&6
+if test "${ac_cv_func_realpath+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define realpath to an innocuous variant, in case <limits.h> declares realpath.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define realpath innocuous_realpath
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char realpath (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef realpath
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char realpath ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_realpath) || defined (__stub___realpath)
+choke me
+#else
+char (*f) () = realpath;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != realpath;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_realpath=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_realpath=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_realpath" >&5
+echo "${ECHO_T}$ac_cv_func_realpath" >&6
+
+ if test "$ac_cv_func_realpath" = yes -a "${TCL_THREADS}" = 1 \
+ -a `uname -r | awk -F. '{print $1}'` -lt 7 ; then
+ ac_cv_func_realpath=no
+ fi
;;
NEXTSTEP-*)
SHLIB_CFLAGS=""
@@ -14904,6 +15328,11 @@ echo "${ECHO_T}framework" >&6
echo "$as_me: WARNING: \"Frameworks can only be built if --enable-shared is yes\"" >&2;}
FRAMEWORK_BUILD=0
fi
+ if test $tcl_corefoundation = no; then
+ { echo "$as_me:$LINENO: WARNING: \"Frameworks can only be used when CoreFoundation is available\"" >&5
+echo "$as_me: WARNING: \"Frameworks can only be used when CoreFoundation is available\"" >&2;}
+ FRAMEWORK_BUILD=0
+ fi
else
echo "$as_me:$LINENO: result: standard shared library" >&5
echo "${ECHO_T}standard shared library" >&6
diff --git a/unix/configure.in b/unix/configure.in
index 7403e15..8c9a91c 100644
--- a/unix/configure.in
+++ b/unix/configure.in
@@ -3,12 +3,16 @@ dnl This file is an input file used by the GNU "autoconf" program to
dnl generate the file "configure", which is run during Tcl installation
dnl to configure the system for the local environment.
#
-# RCS: @(#) $Id: configure.in,v 1.128 2005/05/10 18:35:26 kennykb Exp $
+# RCS: @(#) $Id: configure.in,v 1.129 2005/05/14 20:46:48 das Exp $
AC_INIT([tcl],[8.5])
AC_PREREQ(2.57)
+
dnl AC_CONFIG_HEADERS([tclConfig.h])
-dnl AC_CONFIG_COMMANDS_PRE([DEFS=-DHAVE_TCL_CONFIG_H])
+dnl AC_CONFIG_COMMANDS_PRE([DEFS="-DHAVE_TCL_CONFIG_H -imacros tclConfig.h"])
+dnl AH_TOP([#ifndef _TCLCONFIG
+dnl #define _TCLCONFIG])
+dnl AH_BOTTOM([#endif /* _TCLCONFIG */])
TCL_VERSION=8.5
TCL_MAJOR_VERSION=8
diff --git a/unix/tcl.m4 b/unix/tcl.m4
index bbed997..fc4247f 100644
--- a/unix/tcl.m4
+++ b/unix/tcl.m4
@@ -402,6 +402,10 @@ AC_DEFUN(SC_ENABLE_FRAMEWORK, [
AC_MSG_WARN("Frameworks can only be built if --enable-shared is yes")
FRAMEWORK_BUILD=0
fi
+ if test $tcl_corefoundation = no; then
+ AC_MSG_WARN("Frameworks can only be used when CoreFoundation is available")
+ FRAMEWORK_BUILD=0
+ fi
else
AC_MSG_RESULT([standard shared library])
FRAMEWORK_BUILD=0
@@ -1406,17 +1410,42 @@ dnl AC_CHECK_TOOL(AR, ar)
CC_SEARCH_FLAGS=""
LD_SEARCH_FLAGS=""
LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH"
- PLAT_OBJS="\${MAC_OSX_OBJS}"
- PLAT_SRCS="\${MAC_OSX_SRCS}"
+ PLAT_OBJS='${MAC_OSX_OBJS}'
+ PLAT_SRCS='${MAC_OSX_SRCS}'
TCL_SHLIB_LD_EXTRAS='-compatibility_version ${VERSION} -current_version ${VERSION} -install_name ${DYLIB_INSTALL_DIR}/${TCL_LIB_FILE} -seg1addr 0xa000000'
TK_SHLIB_LD_EXTRAS=' -compatibility_version ${VERSION} -current_version ${VERSION} -install_name ${DYLIB_INSTALL_DIR}/${TK_LIB_FILE} -seg1addr 0xb000000 -unexported_symbols_list $$(f=$(TCL_STUB_LIB_FILE).E && nm -gjp $(TCL_BIN_DIR)/$(TCL_STUB_LIB_FILE) | tail +3 > $$f && echo $$f)'
- LIBS="$LIBS -framework CoreFoundation"
- AC_DEFINE(MAC_OSX_TCL, 1, ["Is this a Mac I see before me?"])
- AC_DEFINE(HAVE_CFBUNDLE, 1, [Do we have access to Mac bundles?])
+ AC_MSG_CHECKING([whether to use CoreFoundation])
+ AC_ARG_ENABLE(corefoundation, [ --enable-corefoundation use CoreFoundation API [--enable-corefoundation]],
+ [tcl_corefoundation=$enableval], [tcl_corefoundation=yes])
+ AC_MSG_RESULT([$tcl_corefoundation])
+ if test $tcl_corefoundation = yes; then
+ AC_CACHE_CHECK([for CoreFoundation.framework], tcl_cv_lib_corefoundation, [
+ hold_libs=$LIBS
+ LIBS="$LIBS -framework CoreFoundation"
+ AC_TRY_LINK([#include <CoreFoundation/CoreFoundation.h>],
+ [CFBundleRef b = CFBundleGetMainBundle();],
+ tcl_cv_lib_corefoundation=yes, tcl_cv_lib_corefoundation=no)
+ LIBS=$hold_libs])
+ if test $tcl_cv_lib_corefoundation = yes; then
+ LIBS="$LIBS -framework CoreFoundation"
+ AC_DEFINE(HAVE_COREFOUNDATION, 1,
+ [Do we have access to Darwin CoreFoundation.framework ?])
+ fi
+ fi
+ AC_CHECK_HEADERS(libkern/OSAtomic.h)
+ AC_CHECK_FUNCS(OSSpinLockLock)
+ AC_DEFINE(MAC_OSX_TCL, 1, [Is this a Mac I see before me?])
AC_DEFINE(USE_VFORK, 1, [Should we use vfork() instead of fork()?])
AC_DEFINE(TCL_DEFAULT_ENCODING,"utf-8",
[Are we to override what our default encoding is?])
AC_DEFINE(MODULE_SCOPE, __private_extern__, [Linker support for module scope symbols])
+ # prior to Darwin 7, realpath is not threadsafe, so don't
+ # use it when threads are enabled, c.f. bug # 711232:
+ AC_CHECK_FUNC(realpath)
+ if test "$ac_cv_func_realpath" = yes -a "${TCL_THREADS}" = 1 \
+ -a `uname -r | awk -F. '{print [$]1}'` -lt 7 ; then
+ ac_cv_func_realpath=no
+ fi
;;
NEXTSTEP-*)
SHLIB_CFLAGS=""
diff --git a/unix/tclConfig.h.in b/unix/tclConfig.h.in
index 1f83e5c..0806e0d 100644
--- a/unix/tclConfig.h.in
+++ b/unix/tclConfig.h.in
@@ -1,5 +1,8 @@
/* tclConfig.h.in. Generated from configure.in by autoheader. */
+#ifndef _TCLCONFIG
+#define _TCLCONFIG
+
/* Is pthread_attr_get_np() declared in <pthread.h>? */
#undef ATTRGETNP_NOT_DECLARED
@@ -12,12 +15,12 @@
/* Do we have BSDgettimeofday()? */
#undef HAVE_BSDGETTIMEOFDAY
-/* Do we have access to Mac bundles? */
-#undef HAVE_CFBUNDLE
-
/* Define to 1 if you have the `chflags' function. */
#undef HAVE_CHFLAGS
+/* Do we have access to Darwin CoreFoundation.framework ? */
+#undef HAVE_COREFOUNDATION
+
/* Define to 1 if you have the `getattrlist' function. */
#undef HAVE_GETATTRLIST
@@ -33,12 +36,18 @@
/* Do we have nl_langinfo()? */
#undef HAVE_LANGINFO
+/* Define to 1 if you have the <libkern/OSAtomic.h> header file. */
+#undef HAVE_LIBKERN_OSATOMIC_H
+
/* Do we have <limits.h>? */
#undef HAVE_LIMITS_H
/* Define to 1 if you have the `localtime_r' function. */
#undef HAVE_LOCALTIME_R
+/* Define to 1 if you have the `lseek64' function. */
+#undef HAVE_LSEEK64
+
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
@@ -48,9 +57,15 @@
/* Do we have <net/errno.h>? */
#undef HAVE_NET_ERRNO_H
+/* Define to 1 if you have the `open64' function. */
+#undef HAVE_OPEN64
+
/* Define to 1 if you have the `opendir' function. */
#undef HAVE_OPENDIR
+/* Define to 1 if you have the `OSSpinLockLock' function. */
+#undef HAVE_OSSPINLOCKLOCK
+
/* Do we want a BSD-like thread-attribute interface? */
#undef HAVE_PTHREAD_ATTR_GET_NP
@@ -78,9 +93,6 @@
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
-/* Define to 1 if you have the `strstr' function. */
-#undef HAVE_STRSTR
-
/* Define to 1 if you have the `strtol' function. */
#undef HAVE_STRTOL
@@ -159,9 +171,12 @@
/* Define to 1 if you have the `waitpid' function. */
#undef HAVE_WAITPID
-/* "Is this a Mac I see before me?" */
+/* Is this a Mac I see before me? */
#undef MAC_OSX_TCL
+/* Linker support for module scope symbols */
+#undef MODULE_SCOPE
+
/* Do we have <dirent.h>? */
#undef NO_DIRENT_H
@@ -261,9 +276,6 @@
/* Are bytecode statistics enabled? */
#undef TCL_COMPILE_STATS
-/* What extra letters do we insert for debugging binary code? */
-#undef TCL_DBGX
-
/* Are we to override what our default encoding is? */
#undef TCL_DEFAULT_ENCODING
@@ -386,3 +398,5 @@
/* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t
+
+#endif /* _TCLCONFIG */
diff --git a/unix/tclLoadDyld.c b/unix/tclLoadDyld.c
index af14fd2..c131050 100644
--- a/unix/tclLoadDyld.c
+++ b/unix/tclLoadDyld.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclLoadDyld.c,v 1.15 2004/04/06 22:25:56 dgp Exp $
+ * RCS: @(#) $Id: tclLoadDyld.c,v 1.16 2005/05/14 20:46:48 das Exp $
*/
#include "tclInt.h"
@@ -23,7 +23,7 @@ typedef struct Tcl_DyldModuleHandle {
} Tcl_DyldModuleHandle;
typedef struct Tcl_DyldLoadHandle {
- const struct mach_header *dyld_lib;
+ CONST struct mach_header *dyld_lib;
Tcl_DyldModuleHandle *firstModuleHandle;
} Tcl_DyldLoadHandle;
@@ -59,7 +59,7 @@ TclpDlopen(interp, pathPtr, loadHandle, unloadProcPtr)
* this file. */
{
Tcl_DyldLoadHandle *dyldLoadHandle;
- const struct mach_header *dyld_lib;
+ CONST struct mach_header *dyld_lib;
CONST char *native;
/*
@@ -89,7 +89,7 @@ TclpDlopen(interp, pathPtr, loadHandle, unloadProcPtr)
if (!dyld_lib) {
NSLinkEditErrors editError;
- char *name, *msg;
+ CONST char *name, *msg;
NSLinkEditError(&editError, &errno, &name, &msg);
Tcl_AppendResult(interp, msg, (char *) NULL);
return TCL_ERROR;
@@ -152,7 +152,7 @@ TclpFindSymbol(interp, loadHandle, symbol)
}
} else {
NSLinkEditErrors editError;
- char *name, *msg;
+ CONST char *name, *msg;
NSLinkEditError(&editError, &errno, &name, &msg);
Tcl_AppendResult(interp, msg, (char *) NULL);
}
@@ -198,7 +198,7 @@ TclpUnloadFile(loadHandle)
dyldModuleHandle = dyldModuleHandle->nextModuleHandle;
ckfree(ptr);
}
- ckfree(dyldLoadHandle);
+ ckfree((char*) dyldLoadHandle);
}
/*
diff --git a/unix/tclUnixChan.c b/unix/tclUnixChan.c
index b6a5555..abc2edc 100644
--- a/unix/tclUnixChan.c
+++ b/unix/tclUnixChan.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclUnixChan.c,v 1.56 2005/05/10 18:35:27 kennykb Exp $
+ * RCS: @(#) $Id: tclUnixChan.c,v 1.57 2005/05/14 20:46:48 das Exp $
*/
#include "tclInt.h" /* Internal definitions for Tcl. */
@@ -43,6 +43,13 @@
#define SUPPORTS_TTY
+#undef DIRECT_BAUD
+#ifdef B4800
+# if (B4800 == 4800)
+# define DIRECT_BAUD
+# endif /* B4800 == 4800 */
+#endif /* B4800 */
+
#ifdef USE_TERMIOS
# include <termios.h>
# ifdef HAVE_SYS_IOCTL_H
@@ -261,11 +268,15 @@ static int TtyCloseProc _ANSI_ARGS_((ClientData instanceData,
Tcl_Interp *interp));
static void TtyGetAttributes _ANSI_ARGS_((int fd,
TtyAttrs *ttyPtr));
+#ifndef DIRECT_BAUD
static int TtyGetBaud _ANSI_ARGS_((unsigned long speed));
+#endif
static int TtyGetOptionProc _ANSI_ARGS_((ClientData instanceData,
Tcl_Interp *interp, CONST char *optionName,
Tcl_DString *dsPtr));
+#ifndef DIRECT_BAUD
static unsigned long TtyGetSpeed _ANSI_ARGS_((int baud));
+#endif
static FileState * TtyInit _ANSI_ARGS_((int fd, int initialize));
static void TtyModemStatusStr _ANSI_ARGS_((int status,
Tcl_DString *dsPtr));
@@ -1190,13 +1201,6 @@ TtyGetOptionProc(instanceData, interp, optionName, dsPtr)
}
}
-#undef DIRECT_BAUD
-#ifdef B4800
-# if (B4800 == 4800)
-# define DIRECT_BAUD
-# endif /* B4800 == 4800 */
-#endif /* B4800 */
-
#ifdef DIRECT_BAUD
# define TtyGetSpeed(baud) ((unsigned) (baud))
# define TtyGetBaud(speed) ((int) (speed))
diff --git a/unix/tclUnixInit.c b/unix/tclUnixInit.c
index 1cd06a4..ec708f2 100644
--- a/unix/tclUnixInit.c
+++ b/unix/tclUnixInit.c
@@ -7,7 +7,7 @@
* Copyright (c) 1999 by Scriptics Corporation.
* All rights reserved.
*
- * RCS: @(#) $Id: tclUnixInit.c,v 1.56 2005/05/10 18:35:27 kennykb Exp $
+ * RCS: @(#) $Id: tclUnixInit.c,v 1.57 2005/05/14 20:46:48 das Exp $
*/
#include "tclInt.h"
@@ -26,7 +26,7 @@
# include <dlfcn.h>
# endif
#endif
-#ifdef HAVE_CFBUNDLE
+#ifdef HAVE_COREFOUNDATION
#include <CoreFoundation/CoreFoundation.h>
#endif
@@ -328,11 +328,11 @@ static CONST LocaleTable localeTable[] = {
#ifndef TCL_NO_STACK_CHECK
static int GetStackSize _ANSI_ARGS_((size_t *stackSizePtr));
#endif /* TCL_NO_STACK_CHECK */
-#ifdef HAVE_CFBUNDLE
+#ifdef HAVE_COREFOUNDATION
static int MacOSXGetLibraryPath _ANSI_ARGS_((
Tcl_Interp *interp, int maxPathLen,
char *tclLibPath));
-#endif /* HAVE_CFBUNDLE */
+#endif /* HAVE_COREFOUNDATION */
/*
@@ -511,13 +511,13 @@ TclpInitLibraryPath(valuePtr, lengthPtr, encodingPtr)
*/
{
-#ifdef HAVE_CFBUNDLE
+#ifdef HAVE_COREFOUNDATION
char tclLibPath[MAXPATHLEN + 1];
if (MacOSXGetLibraryPath(NULL, MAXPATHLEN, tclLibPath) == TCL_OK) {
str = tclLibPath;
} else
-#endif /* HAVE_CFBUNDLE */
+#endif /* HAVE_COREFOUNDATION */
{
/* TODO: Pull this value from the TIP 59 table */
str = defaultLibraryDir;
@@ -724,7 +724,7 @@ TclpSetVariables(interp)
CONST char *user;
Tcl_DString ds;
-#ifdef HAVE_CFBUNDLE
+#ifdef HAVE_COREFOUNDATION
char tclLibPath[MAXPATHLEN + 1];
if (MacOSXGetLibraryPath(interp, MAXPATHLEN, tclLibPath) == TCL_OK) {
@@ -756,7 +756,7 @@ TclpSetVariables(interp)
Tcl_StatBuf statBuf;
if((frameworksURL = CFBundleCopyPrivateFrameworksURL(bundleRef))) {
if(CFURLGetFileSystemRepresentation(frameworksURL, TRUE,
- tclLibPath, MAXPATHLEN) &&
+ (unsigned char*) tclLibPath, MAXPATHLEN) &&
! TclOSstat(tclLibPath, &statBuf) &&
S_ISDIR(statBuf.st_mode)) {
Tcl_SetVar(interp, "tcl_pkgPath", tclLibPath,
@@ -768,7 +768,7 @@ TclpSetVariables(interp)
}
if((frameworksURL = CFBundleCopySharedFrameworksURL(bundleRef))) {
if(CFURLGetFileSystemRepresentation(frameworksURL, TRUE,
- tclLibPath, MAXPATHLEN) &&
+ (unsigned char*) tclLibPath, MAXPATHLEN) &&
! TclOSstat(tclLibPath, &statBuf) &&
S_ISDIR(statBuf.st_mode)) {
Tcl_SetVar(interp, "tcl_pkgPath", tclLibPath,
@@ -782,7 +782,7 @@ TclpSetVariables(interp)
Tcl_SetVar(interp, "tcl_pkgPath", pkgPath,
TCL_GLOBAL_ONLY | TCL_APPEND_VALUE);
} else
-#endif /* HAVE_CFBUNDLE */
+#endif /* HAVE_COREFOUNDATION */
{
Tcl_SetVar(interp, "tcl_pkgPath", pkgPath, TCL_GLOBAL_ONLY);
}
@@ -1131,7 +1131,7 @@ GetStackSize(stackSizePtr)
*----------------------------------------------------------------------
*/
-#ifdef HAVE_CFBUNDLE
+#ifdef HAVE_COREFOUNDATION
static int
MacOSXGetLibraryPath(Tcl_Interp *interp, int maxPathLen, char *tclLibPath)
{
@@ -1142,4 +1142,4 @@ MacOSXGetLibraryPath(Tcl_Interp *interp, int maxPathLen, char *tclLibPath)
#endif
return foundInFramework;
}
-#endif /* HAVE_CFBUNDLE */
+#endif /* HAVE_COREFOUNDATION */
diff --git a/unix/tclUnixNotfy.c b/unix/tclUnixNotfy.c
index 32e0e3d..c80e566 100644
--- a/unix/tclUnixNotfy.c
+++ b/unix/tclUnixNotfy.c
@@ -11,9 +11,11 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclUnixNotfy.c,v 1.23 2005/05/10 18:35:28 kennykb Exp $
+ * RCS: @(#) $Id: tclUnixNotfy.c,v 1.24 2005/05/14 20:46:48 das Exp $
*/
+#ifndef HAVE_COREFOUNDATION /* Darwin/Mac OS X CoreFoundation notifier
+ * is in tclMacOSXNotify.c */
#include "tclInt.h"
#include <signal.h>
@@ -1080,3 +1082,5 @@ NotifierThreadProc(clientData)
TclpThreadExit (0);
}
#endif
+
+#endif /* HAVE_COREFOUNDATION */
diff --git a/unix/tclUnixPort.h b/unix/tclUnixPort.h
index 59c9709..eb4dbda 100644
--- a/unix/tclUnixPort.h
+++ b/unix/tclUnixPort.h
@@ -19,7 +19,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclUnixPort.h,v 1.41 2005/05/10 18:35:28 kennykb Exp $
+ * RCS: @(#) $Id: tclUnixPort.h,v 1.42 2005/05/14 20:46:48 das Exp $
*/
#ifndef _TCLUNIXPORT
@@ -563,13 +563,6 @@ EXTERN char * TclpInetNtoa(struct in_addr);
* #define gmtime(x) TclpGmtime(x) */
# undef inet_ntoa
# define inet_ntoa(x) TclpInetNtoa(x)
-# ifdef MAC_OSX_TCL
-/*
- * On Mac OS X, realpath is currently not
- * thread safe, c.f. SF bug # 711232.
- */
-# define NO_REALPATH
-# endif
# ifdef HAVE_PTHREAD_ATTR_GET_NP
# define TclpPthreadGetAttrs pthread_attr_get_np
# ifdef ATTRGETNP_NOT_DECLARED
diff --git a/win/tclWin32Dll.c b/win/tclWin32Dll.c
index a0e2d8d..25eb7b5 100644
--- a/win/tclWin32Dll.c
+++ b/win/tclWin32Dll.c
@@ -9,7 +9,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclWin32Dll.c,v 1.42 2005/05/13 21:20:36 kennykb Exp $
+ * RCS: @(#) $Id: tclWin32Dll.c,v 1.43 2005/05/14 20:46:48 das Exp $
*/
#include "tclWinInt.h"
@@ -627,29 +627,6 @@ TclpCheckStackSpace()
}
/*
- *----------------------------------------------------------------------
- *
- * TclWinGetPlatform --
- *
- * This is a kludge that allows the test library to get access
- * the internal tclPlatform variable.
- *
- * Results:
- * Returns a pointer to the tclPlatform variable.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-TclPlatformType *
-TclWinGetPlatform()
-{
- return &tclPlatform;
-}
-
-/*
*---------------------------------------------------------------------------
*
* TclWinSetInterfaces --
DDBl{ s)Q/[u CĥiVWŧ7/ίo>^~. حગ1EZ[z %Nr6x0ͧwΛѫ[ò32sc]8ˈ( Y9_{;+nZI;<Nkնd4| ip[O eB{GV[J+P>nM哧 G\q8 GGBYBLU68B+$BZ ESF#3.. QU0/e# \}uHj?&^7,6g7F68 'L]K?XE#Oh *Py2 :W5]H]< "qeT X&`y>Za쉗\}Ža3'q6%Ԅ~yycMv'ޚD~-e;]$9_n(sޛM:/|Ipcf}L23$'Xxx1bP=Ce>?s oznA;Y9r$ÎRm]1fݴ-%-V+glFy`b хnL4B'+4(HK a$0E!Ļ=yɭzUXCbMc|jژ!ǥq"PlükY^'Q DdA@\Jˮ᥅)apd(Ph $ZMSpr9DSȽ4q Hޢ=g!XeX?)4:A4{w$8I%tÁH02+6'9{j&8kc+8EI]ҩC?0`~-rTd,"NqJsbPllaɒ´Tn5͂˼b3Lԧj!R!v:)c2x0 c")2ej[7?ɫWW3p"o"Rah穁`U-Џz8(Mz&!61bN ζ;Vs{뻙DUvC#4MQMd[ JcF:I#FYq-]t1wh/)6GMy`HL™Epv&!x͆dS@ ˛Aʶ?lDG@4#M Òb%U.lYXT0z8dp Y}~ܴ$'W?ȇf^Vb*_D>T-12R f`3^οgER$Zb-dHUA$'b)Z#(`/t # 6@C|Bl-3[ߏwIn#lBh- @d3((# VA1K6%y#6C_ S"i uaS9e5RܚTD^h b[a Kc3Lrr./3 O#.f)Mpr \]>@F"& |tѦAij%-FJGx1qMbM|-/h(\cNT l' q4ͥ^/1k\M0ݭټ/_9xzEYQ।=3TVZV*'iR,*(mɅZv]A ~NAh-gi[IT4=緶U}|˷D+{1dGd];)>We6vW5WƋJϦpi4A+W*nts$me%SCHR2ݩ ,K."ы}v<7;cp9+- {;?Qݤ2Oo7Bn:n.Y4~7x eO?@@cr1&8dϡbog?J=j=Se.t\bĵ0  IT/:3Yd]Y}0ڸ S=W5S4s.Gm v^nRCU{4QAcx9k`>;('zeV&[P](.<0{B]KtX R 1"[#oSJ#)rq:ߗpA+i61$1;zS\_I&"?n@ Sz >=$o ^=yWEig<nͻ-5KS???}sWGr~~k0sD+c_zf3v꾥&P%[&EDVt"WhcGs$?A/b5?8' _2m@socD6K<[^H%>EKHPA4a=BiG{rM2 H=+rϑ{4el7p"BNLj8,r}zzbM-qv 0h뛳'7oO~)+ھO؀#>A{Q>wb^#nԎd+>Lsσ+#95"P4E4jvm97fZs0U1ҙKi${G 9n*Ք#<cxSwo ÙFCpLgFnMzof./Ӣ>]ȵ* |q [aovyL0v`hŲ]+Nӌp_pʰilRcz!)m/ ;U8Ϲwmv]4ͺ'u}Ӹ8BUR[o4MFAvfv`) /NTwhkEg~F x`ہWSJ)"ΰN A4XuBID<]gA%^ñ:cǚ9Rn),!"Y9cɝ"r}I}G*ԣN</\B3P|7܃Ly])rz=ڥul04\+_9hGχv !0l뫌-RC~T.8ĉ\߸Dk)sag3(lSFˮQ4ul\OWz(œbfKSi!f\Pr mGbʹJcַb8Y: f1LoAl';iS%0#HYh<Ra"S`!Bo\o,2r+¶J}hF]n "a/$#9Fh A 5 Jea2/sM$XÄ$`X)'h+ ,V7Fm'YIl|a)fgg3vq<b"̻KKi&GXMbzQ /~qXƭnc8&x8[҆}w\I#p N*\.f :^ z }mDShClkBBC"8 Ճ@ %.>4󢅱H&nȒ^i4}FdG[?\8yuyڍ` 0XsGj'bv1b% R붶vE:UKr*N>4vA!hS*#;k5|SO:ngQg"s[ڈpWIՏ{-;`~q:vgA2Y>̩I,'ؠ5M@ƄQ.YZRD5٠U}'@ok^/ޫHVF`q` &6 V>v'z9%CYUSU-\Y&uYzClo7/9cx☐{^a9UơUF. r[ Pw l\\Ak=BXa3 +>b)Y W D_Fj!B:UiK7,'{\Ib3 退},`g:d'㖮H:-1 #Ft#5CKl=`Ch/)oz )*q(*o蒎d9Jh,Ac~;I)_q7:PJmr&Lj_.Hj5/=FP1\/ȁu90G9Wa ';B؞&K9 џmvRC#ZEۼ:O꿓e; 1@dQ<5O?x=I(^9F8DU&iCnQw}a\`O:=N N :oܑ[1ޒDZ5D[R6 Iȹj'iNKΎe?ؕb*7^"CxQv~Jθ+k@6HOh]f6z呕,;C^2k Uo$ ]+"?t%䇮o.| +`m쮇HWb+,C%,iA-i/^0i꾧}[ 4!D7AqzL?Lp5ݵVpoݞp&gdULVf M??e|!+94,}(QmۅLsӞvH>p}(jvQAԵgK3ۆ&\~ >$`vmNRI %#%Am<ú#d{H# 5O?-Pu!>0#r :]LJ٠/eГyձ&v9L-.[m^9trnAFv$-X|"vFo߀hU|N&9|lҢEZ%z ę?dfZ"{".bp7$jDB(V5z-J\Cg"NXƃ_X?>Sr'tCOMԇ"}b_[/^t1k5WRkTnhH- S^ SZZ>8vY $_dvF%]sweCߦ:a.v/9ƥ|6N)^]4},PK )qW%uW ' cpython-3.11.5/Doc/c-api/memoryview.rstUTnHdUn8+TpCo@E6ȦѢōD $eW!vܦ `g罙y2նndd[lv fJpt?<N(C<} SBK% Ŕ\?:Ё-Vy -UVBbW|2^@kpZ aTsX%40tnǬ, e^Zze4s;|0\iA(jaQx&*JXΚ*Gt3T\uz{4=UӐ E9^9 *HaF7$=ER9iuS{ch^ZXH9SP5bշwJoLsUQ6?bIӀ!F#e iM^○w˛+p~B9uQQX7ٛI>u%vُMMٳVtc[y^bDJqxv TƘ7uĚ^vr>.jh VtNp+JҀ| u X,j\iPmOvL1)u-3m<Ȟ&G{4fOLUo .-Vxf/GR"?n$.״̫vZRzəmP;.>rt iΧ)Ήb_ho $t JN<1|˛遡( ~ZMGrp5(+s򷺌o'DHǫs6o#\~X(~\: 7H>86GxƢ"(ZqeOPK )qW3V  # cpython-3.11.5/Doc/c-api/method.rstUTnHdVn0|W# =TJI`#ہ8$\838B.I 8T ];I= x3ZDw/&U$Pc}#:<H vFl6h` ,q &tXIR*W (N#aA]ORXZEǭLeZ|p0y~ 4#/5K~FРq-\ z٥̠Ejn=v1Rp7{-h9 6FXepXKC`bFzDWTrIG\E A!ǛIf.`=֤ØAjbʰiֳ千%U߂ 1*ڶ:yϑT۫_vjE^}EM1\X$C5]!%k}T]ʯ:TtqMBu&cR>Il>=Nzhآ 82+@l-10$4bMx BW=hc Z/4RT]Kq21z: /-Q Hi(Z%[!}7^C#ޒ%&A TyE=η ؎c1&!3jP  nur$nsM$c+aQv6Ў-˞H%O1Q `BWeB}WÏzC2/}៼ B>(l?fk9\JR72 oϏPK )qW]ms[# cpython-3.11.5/Doc/c-api/module.rstUTnHd\ƕοW_<"GM%[5FTɲJ#;ɗ%@9D ̈N9pd,8_~Bmm5˥J&B*ms],'/L?JV zǙ.ቷkR*dM'YVʠy eL6j,2 'Tw6lj&oUgcˆî2:UMeMFFEQE.uӖIU%"+e^?馭KԭV.Oqؒ윩k]ĸ ;xo$:5w!N&r6:I71I#HM=o=_ .B +Z>Z3YE4uKOUrڃ,?q]7'>WqgUﻛfK"w]vPF7(ĵq>37g 1&2ݷ*Ajk9((Y$FCjkRMU֝?%Q&AwUi5p`Jj{H`w)±% +-w6 kq;6.oޗU#叮v 8]X\:rc.y@ל~D0|U_+]&2`Tlk~*3I~YG+Yz<# nRrlFe.Yyl 51o r#6Cji X8 MC)|F*?^a ˺d;'\uė-:e jZRSe.Qpj 0ۧiYUūYt/NMoK={UekX;kh ؑQ6{ٺf8wH[GiX8o>\u"4K[ {ioa6pY%5n)~n ǐ8}Զt*"R{-%+#g m6?#'.a {sO9`]hG2u^%xޓ+n.& 4Y = Z ֵKY+ȼ{g/Z3BjaM]~%P2cRRZN;B>Y~'yXz.t}~>W=F!˜)6()PtSQx'LZ7k Y@c zf9{|oLÿ7ČxGi@10"Cy[Č ̎1XxsIRjK<&`)aAzҪOʬH<6zh*^E4 [ӂ%wa;:3p;u\g0 K=F5cl  ӹPӦx g)U.v;@-Ȇ&^G Y!^FΈ#/ѲÜ9ZA&r #!).6ATK0LFeqPr!iٍ'@[ՠMO |dƦOp8^O1:XWJ_&hn8LݶS>̥p7')]MXѫJ  56Høk:jxvֶV𿉨l<:.&x/WWoGcsAWAN&gَJ$ ?g,~{c߿][@;Wq KW߫VE1JkZČPZr'tJxѬddɫuZRƨoYSf oBK:HvH|ZŤ3H@xf/~bTT3 U~Sk\VøGNlĆV{&]L꒓0iu]M 80*t\ޢ8Ŵ;PX7)-,FYR4I<bI/E/ !EՖ85VQ fRHUoBFQLE/J`ey eųϟRtƬnUJ@*qF,DUDb<}}p>LEwv& U / G F:\k@5sWt]d%]O L!@X6Ϩz(880Tr[f:hc9=xl*%h@exVd͵PddO:FW l 7D2§Deg!T<[mS%/o*~Fm2d:18u\{ɤǤ[(Vwkhv,@сMNeg`P0ca`ΥN@5U{EQM5+͠X_Tdnz hLkʻ*cs"RD oH bnxz;"o]Lÿ=9( i2$5QO'Ej1+Yzbs`{JW˓: AMrpJ0S72Dvs $_X|$WwJb*VW$fujߜZP +QpOl1m!I; hvzm}EHFnVu[\w:ֺ8US]Yn_/>AKަgU̶jsa⶛u2es*\٨}r D 4M߲gMXuVK+Fӭ!4⊵@^);#y$l;@ F9_ɞiN/&fSRĀNcY]akQ3FDtv 6q\̔}me if`3D~ٔe(k M'9\O%1ϲ 0/#WL,)2XJ _#`F#"ǺƸZ!L+}2PU D~,wa1v.ykI&5X1 /x`KޟDC7ꑆO)>D ['&Vz7zqcp1o̴`Q54-ۇcz 5`kr jOb? Y?ػ23ߒ̣o ke}t'[LAm a[?/AiT8qXp tJb'G1 > :sD7M.Il׆鑜,`̴w@/j^Nt<蠣ƐZ(R1 / #I{DѠԨQ%Ip7W Ѓ-gZbfJlkl rpyJώfJqPW/g`*nY._|Nģ1b,(z3Rd8pmcjJ #@#ܲrcGO~mtY2#ƶRNWۉ,wn*lRW\b,Փ ?fv mlzԈ _PI%SVP9 A0*-*ϳ@SZz/MLkÕ0sM˯E>[ 6bXfv"I^ ”Y+{qd ;\&@܁ N_1W؝CkD1VKy68VՎIz(( x|F" S $F<m4?l֕CH捾9u{7#d6RҍdgF0幇@p<\Y%چlB+dDxV5 zPyVb'~mzؼM [T[SVw=uZ(rxY@ܑ"Bta=rQ5r^ <puZ7/LGX]?kVVw}59{6Uᚆ%7,ȁts1Ͻ4}ev><5unv@)Ђ ܿn#ud0{! "0A,m -(9G [Z8GPNj w(p#xw>nuh#ӾZF e7ԔH;{uCٔs>qXI5JAiK˭on[`Qlnl@OfKв`'ݶ6Ӈ>FN8לޙR$ͨq"50G6(y`ΎSg`9J%9'ٳoj'}o V-̰?QBLWPrG3 }߳sH1HP#[:'v-kSıR'.mF;`І#/(VHPĥ=~e؏|§FҪyΩᛉ^g^Un^ȑg`WŒn"AjX>Q'~uSs`f'psX0e*5O[U jMدp_0o#ICر>j5][ A!\ Mc{RugUd>7M /[ jU)e"9γJ]@t/8Ϧ6U 6V} ͩu3F'Wq. oxSq4waרl}.2L"6R5*ȑwfՁFC~Q/f^t: !f۶,5. ;0Ȧ̹;B'FKS=:.@d`:gT#z`rNcsE,D%\/>p+8L;>3QgRHX#T5*Oَ8n7ry`ky*RAFJ ?Do}wA~~`3U);:eGm Z=TǭaPK )qW~kJ! cpython-3.11.5/Doc/c-api/none.rstUTnHdeRKo0W|%ֽSPrȅd{ Y=$wl]UEZct$7WRZSxy#˕Ru~N{ŸXaܫTay*[P5I;n!+Kѻ( Ddl<̓OAru"IJ* 0<;p捪r6uuICR+ڇ۪l=d"^/Ya23!IkUջP펿Wd쮮>vP Lƞi%D՗3 Ft|`x>^d"%÷51&w&!K,GQHxp3 tq3C>ݟ;z&Ͼxb dop&ySK(48 5H. [PK )qW$Ȍ+# cpython-3.11.5/Doc/c-api/number.rstUTnHdZQo6~ M\Il(4h@45 Ph,$C߾dˎcKJjw-xw݉60aAn^|;%}`] Tx=AÃN?+U dlYw~nwK5^(lc<3;Lc,F0Chi1#`K#(z( `<a& !BӦeA <<=nG˔BM@&S(n^:G؜A? "+|{1¤exxs7[Li PR-pIBPdaM` D{ +*恭 dMjDC(4*ރ2&55 VW.n}(:WBEyKݳ<79Թ] #۳?#]Mb,))i! i~2A^TT~$O ʑefu(G N(r-?̖;O!z2Dݜ"Cpg]]TVbҢXY!`5$IQ@# 19fǪxFuЂNP7'`䇀ٕLLgY Yo? w N^p;OedWD+!H;X]8'{J};.OK8e a w p;Weoﰧ}XihN ;]Xx5,x .B'qE+9Vi2u0"1(7#'Ch^I{]T+o9-(<*] (5W}Uӌ\yYMW>LU=RD2}s sGv7h@Xq+H: ˖֕Jp^9vHpыM{-A$qy?zWW]ޟ_fE^tވM],?4doW]t7R l d~oϳI->: ` j2;+?KdPK )qWSCt & cpython-3.11.5/Doc/c-api/objbuffer.rstUTnHdUn7W r-H A7\b0УHqGZ+rCr~}ߐ,;a,75vvLU]w >lh|w_U556:qw۪m92mg.ȁ!Rjxo ~CW/dzG՗q6S9_񽍉96C5vc]W}#7<އdyk"H!^'MA=J?&gY.U}?٤A͏&;{$q) !^@;d|*pC0 F`n0|,=XA9لw=z嬺hiRLtS1]UQj)EX)5S42%Ezn{#h,UحW8C߱n;gvnvg!SiGE9nΙTU2n FZUP/43xOYI2G:F7q;vUED7 CcX7 žQu=24DXjP9,6[ЬTJ5wM@,B@xyߟ8H_;DTZ]![ꍜf3/Ox s& lR[?hWԔZ@|ko?+|/vm_&ƦII\ W>le=PJ-^̎WHv]#"6cr;aTiF=Ţ.7\eGSec4̂HA'`ckMKޘ!3H1>`5:Sq"18 ǯ/ Kȉ\?M 5<[>r|̿tuD<5ykPK )qWPXOH@# cpython-3.11.5/Doc/c-api/object.rstUTnHd[o_>E>Vҗ-'lKeESvy:{͒+пArR)"tǙD,n:d"ff~׍q&7ɋ Od~3rUj*!R,?2auu[*gh*3m%K Y SF:m*-!wwn]+\Wh\ɼ1fn.^x{1 GʵXʪ(hk X|ZH'2hJkԕ%ZUN<1Q)xRbTf57jU*õ  ³"{6SE ̮4)Ff,^_E=7Osxy4Bah"{ڂjLXDLEnQs IN8M[OT rHmpm4h?Ls:~f VBV?иos"uJQuҞ;e!٬+2nA`aw薁 PY o5*D;YPHz햨uEYfTO,󤢙"MY˵R 75_s9W;vP]),AU+_,lv?d־H*>7PY@t0*&kpܖ]l  +6{PwY0U} 'lPV0 QĠujAA6kl)eG7̅h _<|ϼ 9tT@=/<\ H,xxPpsw@"G` `Opz^pX} fVեc@+/@C?8Da21B-OA&Qp}ĭ -{n_߅f_\a^3fa)t$~pќÑ"´mM4. <íly$ӞǞHm鰤Ttџ0~N~@>9jwLWtĊɎ AO\y8vrԃP_wF!N}v|s@;bkjzƁU4, xz!F}/~8 DY2u?jNk;pڀD޲ϣ-5'qm'fT큶 0^˗fUNqڦǯEPX1 [\/4lḩ6Ī<2s܀\l~r7>|H _ ,lmXGk4h4Y'Y+' **L=/|V3& [/(9N[j@mXHK;c?lО'(#X֖t#YPc_OJu9RHVk2St0N`p8"jtq=3X6ut'bkӬ|:dSM/:?lU?y)=! Oǀ'VD=iB~8Kw^PQ%U8tUϰyKK s_Z{ ]9ѧhw(^#;rAb˩K6bp n=oAKpz"BajaRPm%<c6MA0U1 S PSlT"WcX&. IE$uЙOxDcO->oe,[ NNVt) d&i_$C >Zh0+f'Z15mmN9._Gs65 wI t2q3cxztHj3ܞNG7#(saRb 98gqSζ'4:G\PAN\DH]>jRRܲ4Đc|mj0KkdU@6eRųMӪmm #״jnj&pQ :ܶ|z\x`'Q;{v\кh|_wv3@!]Ld;(^~wk물{vi3zo),|Ҩnp0MZ{1%]E~_ 9__>cRGBIQ@ϊ!QIx8·V0D #dSю۽ah]Qq{n P.zdljw ٵ荪n#Xo*)NIJ[s4҆.kt̎{)7`n [_J-B uzEap"k݀8z BlZHݼd#7ϖ6`h ]QHgG( t Qdt KO`h\B7I{jQ Ѹ;:9phoQ hsLpT;zt~Lv޵cwuc9̈́80X2JT?܍4 FNCSd,# xU2[ d;~n|v%Ԫv'Ԗt@5~6$>~>mSXºo>Us0ݱO46Vdx_TisC\k6m ;8z@(+2xϡ!ߩU.]=4IqHy瘖TP( gtɆ@co`\Vx+pWo8dohz]Vv2]W9nw 8 C14kdl]c4_c{ |&ҹqJٓϞPK )qWS`{,$ cpython-3.11.5/Doc/c-api/objimpl.rstUTnHd0 D|ͨ`Gk6bG' %>Yſt_8}fјï1Τ8ny卣: )\sNEdy f*abzƭF_ɀ2Uxsl[!.h&YH jp뚨"+e?s!yW PK )qWWl( cpython-3.11.5/Doc/c-api/refcounting.rstUTnHdXMo8W̭I ]M(PEfb+IeClٛm@X"o޼*jYy$i \Vci$:$X6G kV%*FZ-J0[Z7X@4iŖ: T _[6Qդc},'% Ztŗ[ W2I-d.,?- lmVӓ`h HoJ yCAJuA( XorD{ӋtP'Ԗ 89 N"9glM|jǐpF<)ޝ*lP-ɰt("h31u+Xsx֑zϏ% g,b+a}]4g=z-ggAarsҨB#,vb8S*Y ֧kvž;Gf*WҠ^ C%m}E _mG=/p`ȱ /х nd#3&Fi;kzaZHNa9 -rFGd<\4>Szh=Ͼx7|VXtxPvZZKd 314۱zR+d!PI2Q$OD&e!ݗKHwc>py_YLocxKȴZou3AsUh?;vѹtZ.xׅL ze*}y\3[k_.S5#-ĥoONj_AY7H eh4D;N֟#{ֳ}kp'tK쳖}2>ֹpH3UܾJE(ϑYrmk5< -ŦF)5(P=4GxYzhؤ%HG! Q҆~P`5|VίǐDYǾY5'~mB;N9D_h 7r`-ڤ\IVq˵=!qv9UOp81V%'EՒ^E\Sׄ9n?Sş6uJ 3Wepo{ KS־$pv). K){ klƾj]' ז- F Fͩ}hfQ҅f!}gW9޻ [5*< .HCĒq''4G5lk޺*.܇iurKf|q۬} _oO}]V hdl(x_?Xw^NvʄC /oUKe,$3%:KIK9I3KF+GMS{٢m9|. 5yh+}SV<PK )qWpJ rH' cpython-3.11.5/Doc/c-api/reflection.rstUTnHdn0 ~ —0tE ԲLGT)~RrM7dl#HA2|QӀ,GAI٦(n/d3D;w?Y⻯;a>EmHps, Eނ^HGpBj6?=Z|F/Jim #YHy=X7sF39.γvR3ZtӶ?WugSocK)h9{J!Kއ;D9h&ʦsT־E:\'/`bN\لdzȧ)0@B:&$䀜4!>3=q0/+乃ۢ)ER/pwL#% llc߶'$PA9(2^ylBYeqyhFY|vV,_=51DC ~;Z)lPK )qWSH1c2% cpython-3.11.5/Doc/c-api/sequence.rstUTnHdYQo6~cFGy(ڴ0A,Z:leQ#8~"RbgI2"?ˮ\!*s*T,jUWQ@٢#, D'A2:k#믈M]r*j!2`\$n(E+F(hi_i/-d.3ڸƢy';^d .I~/WW AE#.2¦I} m3]nX\=D$<Nm4[P9<H{'ׅ?dSa[`37Uȯ{v|!OdiɊH uqrF}7b0T LJ~_ !8<a2 P*ag?+zG)F@P~UM=Urm~pŗuSQL/ EG3CM?@TJ_ {B+9Kyk>kK}bɚ-CACg*|>qr ݥMG avXч˶-Ze4zki2IU{Y\!YE"Ɵ!Pz'wtoE 6\Pfq<~д]l#$#SG>7060#r\O}(ߜT="H)KqS&!kch&ܰEf 1Y3u0}vzh{W 4vZ-ΏqR@&@!k@: oh+eł5>wa1Rܻc@ИF҈NE1 XzxfyUK#:>B .>xwڔz[W^&2so٥HJb;.@D73LR,sTd"fNy3KMG+ŧk'jS/ϲ.Lx卲U/6-')~U]f~: !VR۩_C}*z]XdK;JySqzy!ƊiK .%B¨FV2^N8-kN}-JEWܬΕBr+PnGd;oebe7ő.Ӽ4irY<,v_)VҪ_ɓw-/qm_]Z]zA$U+ ĸtYs{鮘|jvZf}U5gi/?پ(/s*V5p->1! '+rQ׷HZWN %JPa_vJUQQ W\ 獕7mY(+CaJ&,SaC2 ^PN!?`Do~XvQ;63ZRqaf..hԆk&ލ6[d ZSK_޿OVGuXa~I#&ɋx V!Lqd|)i1iv8"N l䟘,ֽQqXS6]!3*R-ŕMۋ\bE ېԼ۔*T c;6Y꾔Tt^5JyC7ޅ~Qgf״ήHʜb6KKpͅݎ$ݹ%,9)EfT+SцB%NCevi@{y'Io}wVr5 CoYXc4  όڻtμw4eXV&h3[{N[~7yrr/ Ϳmj ϛq`wKGRxLi~b ,Ld%d~l^ٸVP QbR4JR+S-KNo6P<_5MP>}XJ;#dY93TZD 1}aK5;ƝCA׻X@kXn-(Q FƸ< ӷP9y!2Ah,  09Su?ڤg%6]{R.A ԭfxg b(A[kje1jʼn[+ҖXQUZ ?)tSZPO3kˏ8sPZNֻݦnKæ{ sy< xD0zujxXI[ ,٠aEd =Al Gdk e(mX-|L֦XA`e/B4GExDdM ZA0p!ʊ4;Pjuƅgg@wȇx4SI;jb^m מZ"hKXq,p ICOGsWLmԘ]gY_LYH{iv^[KCx] +T ֓l6  . EAB&zؽHQ=R1 F L*Ih%gP\K%m@uR6%d`Y*CmGԭ@I8h#s`HVAoˏޓɆD+`L}޸,Z:o}NohR c&s C=I&h/^G'DyE!t ? >mIο ]>.l4 ;ۀzG,~$k>]$gv=}5z9J טSt[snUat]=Dx6s2Xdp}qƘ ?ZF/G}U]*+NABKE鍆G,^|%{ÕBƣsDA_}LOvk|h\M/:;؟=3$X(i~IN7sZU.4DX,l5RB,RWw_ڄn}e|xY't%W;ZWrM䝭MeeqB|ݚZhԵ,h|[az'Z'Z֋Bm pq6!JKo{W2R Δwm*ndɍ&#b|ا;bӕmT렝Tҝ%^e[igl%pN͋_q=yu'{oZo[\!_=#lϥj+HOt{8rY<z-OpO˥eqw xmS>-ĽB51es?[(ޒ $իX!>jrR^wʩ/YG/lOK d#T+:V*/nh. :g+3lZ@N4H 0p{w3(\[ ^2h4&8:#_y]\['|)Xf3Jq"JBu0]3&H,k6aT(; 苿/V [HCU<-)5+[0H婐r}BY/pzSmi Ya $[ivp_\/Ѭ$:xR{O}u!\݃5!j#to ~B+LE J$`sGc$ P:#Y3xˆǜA}͏f!$K~ Q |˺gcEm]`b2t pEMGQgS'ES䓪{M/s0/󧇿 3h0Nζv: kLĵZCjr8`8~5z0I:cSᒤd6]l@lv4kHZ#xSt&b$*=~VLs|G8-M[xjud!sq6e@/ˋ H9?KV19ЃQ)1_lpVǃ, `*ÏUq#Rdܙ&O[մ}Fm;wIzpV*#̨ c.U]7ɖΜ'^8rԊ|g"<Ƕ$}¸FQ6DbD { Iov [x[@6őKNݝ~MQ|N&ahjkl0F!-n|Ӫ7uC?;򕲁MFtfM `~\$쁷5I&ZO,nԣf7@F'AȾ "3<e i\A8ޏl^ W)5l 0y\u$ǙإfI<;ϐaH>L3/!h2#t UO =whoZ~_Y<)grudzOlM2/V6BD (c 3AT5*iWFE_9b\22S'@VQc'Z yf71g=“W:3qϕ v%5EC:.xߗdi_~'1yAI|+vCR>x%=,1Suj=(o1_$:T1W鍃|eHgY a4&?;5HLpCTN TCdHcH?dB$mQND^VOZ]`A'9⠇kh6U>K3 M&ȩ7|'ih e,!C82ʼn,=[ql0UE~Un;Bn /4*N vϷ&k]ݢ|v\Fe ;=mhޤ&ބh> vo*Ml֣TGL؏(IW$< |oXz,-\mMU:YfЏ)C$/C2u\W{1mfIGGה8tK4C(fqEUǂqhy uƊ.LO@| yC}Q_PY?>.kf^WrMahtst8^AC;!qF t{N1kB6Z!ޤ7o(o{SlΟO4jG/BiO7e;Հ\B.-Tf:o~v:[$Ŕ=6^\|/BᎹLak"b\qhL x<{)miPbsXJntͬL;3 9~[MgmP3vɽ4DhA"$׹Ϗ ? bm_u|\uɃ?PK )qW)@O' cpython-3.11.5/Doc/c-api/structures.rstUTnHdX\|ܖK,BWU Bl._l;v~y#aa>.]8ElO3LSPMZ&+Yt+%XIX現HT:]J:L%Ydwx7WY)l@Z|K!x(7" 9-s+&sN x@tWagZf`RJ" ȉp<<Xd7i0W y4}V%&rd=<i_Z8XhK+&|^kov Z+&A%S xUjQ 8&Z'@I(42X!TU@^&IWgwN+XJ_ek 9~l  *4cC0ClJp,zPU@bYX7B XA"b\g EwS1N No..ϯ'$nNj),NI^d^JPHZ\"s ܊PDlZ$JRFL%k'Ve%n55%뵒̌o}W!TnB➵#sw÷UL0ID*SF9f 8A[iFً )`@]3PbPfnș~PO )e H? Ģ(%Z g#O^8?:Wh=ӫqݞ2mkmN*'=N`.Fj & uZ>AaB$xyoP"6FJUqlbg=I9Aͺg#x qqh~)Z㥄oQQqƾu]zWwyzAA4A՝+x-nƭ BlE/&laPe@$cj2ou!Z$Y QǠȱ۵o@XhN>AO$R 0r!)J=0nWF!53@~W`04F;n~A)|L m53dO?(-?rE56T?pĜ($`)nGy]N jmd9w-OP ەb4) y䈳rԨ}?z@`dvD/>V[(nBֶа[N}CX=O&'ވI}'(i;h`6d"14~# ݡԡvfHWFyGyzj ,;fn32:9ĞE:%jNΈ8SlR~&[s1Sq -bIHcr5!:C_O"(=Q%^D9cn3,C"MO@߾Q ՚8],:I3)ț0Lgm@~Vd,A`F.\Ӧ5T63,yc.Ae됀TK 8BY8}S<~'}91*%.ч;17?gAtϣcY_sh(|whPa4RUe|q<]OPC x֬M#tT}b~[Q_ _['ˋϾ2Y`k56Jv7SYѼ?M>:~3 ުѶal[zRE0vu ?jЛt+ S\tWƒ>޹ Vpt]sV k%eʻ‚_,) ŒH$ Io9ucǪv[g~|$V9Q@$ xʀt@l}fҫ(u_4>}rb$`4*zoh(iNӶNN {HHnϦ\]Va䞐P B29T{K4!E2A}c2_+@ʗi0Di|[|LljYuNjKIy<'#QzUleNfyL@ \n,0AhQX["4IN4Ze8b:qn$!r*o &jjvđ#z,Eb檢P]OyQdi-AZ )\CC{,?5 Ua- mb9,qhm_̂ʔ:֩h`eSXc_.%xoWq$[)N4Cfr98ykiPdHƿqB6MrȎr yƥ5dupAD(0GTTJVIȆQj*~]aZ3wMiHW6!GہTTV#*`+UPx:cq#!s 7u#2cw{5CČ]Y C RζWkؚ8o24]=8ҶVuP)}˺ 2?jeJ #0`EJRIG=fܲƵYSE$ Ɠ`As^YQw#[@31![xyb PE.?i=sHsPN%Ffܵpu>jD7;0TC%L[䩂jBg,&(7/eGLeu; 1tFrۓyTzAܘ-q0@y%hH5eR=J"dt gEՖ!2338qf篐3աg~~#^ )^?71?jYR}p>K*?9L3ӼWԲ hdNӅ߳JS*5 |} >D#6Bzyg[$Nn-kK/D(h׺s{ON mv:YE탨tڀ;*8gMz=UFp$l~R [P釆3cآ; *;scLg]5Yxy/{CՖ718mŁD=\e&vryT!:I~fo:4 q2Y @xt!:xɌSreO7:uO/sULc .pruv ~)ڳ1ٌ%$Q=*yI腯|,C,#2`ߨ*>UsjJXMtspUrz?ij9kr5ŝGǛ?^Uܞ d%e',FӔP)ķ]1JE[׭UF}*G: `臭 svW2X%ϝ)t$&"*&r,rԡt@m M#I]+7lhw_"5rnw̸&'ǂ@3ᎥwnؐI A}PJ&2I7/۹׬m -* n^YgiL_ۿG婺߁D:QKHOV;t4T?~ N>o&QȋEWp! VV,ñ\;ssc8&NzmfJuTM0[3P#P*)w Jb-38ũ.Є0t=i>ݫt6=$=7.#h?d@Qx3Zc:SO4\OL6NS'dQhKw@T4`wewMz).Wc7Q-tɅlT]4ܻ)#!q/ҡ]WJTX[k72 _4I!?5.pW;(_!PK )qWo~E cpython-3.11.5/Doc/c-api/sys.rstUTnHd\sƵbN$Cui_gZj4Ube+`In |ł/?m@>oUts5ٞ%o3д\"q2y 3N--L%NAO{Kq,b75knOYʪ~GLc-Hf;B&8`<*g3^kiV>}8sTt,mYgmWit`A`@s]8\R&g&U>~Pa *(q \=LqR/C [쿶 :CzS/`п*'((8cн' (j)3R13)0E#XƮs2zЇ~ΐmK(<8X!Crq{!Юn1 RfZPeLԤmȬ5hNe%XiQ0X,AE2`R8Wo!RxR. nDwUp,8ᓅInj0n|Osj -=É 45gnK$ anI.~pNr9޼=e/1|[U]9-24ơa YXؕZ`/9/W5WgH'1yt%m\m+^a >.挰4˲ \r t' h榆=I=4J$vБ e֕^Д)H%o`&$iò $&s,)̂*~k&E?&BfYL1j fj ȃ|u.bp )'ܘ3cL,% dߝC_[*Z.0?&Ο͋^uI;QxOy;Y9:qACbkĮhXy'S3mAhw-D:/Z!4HNg$j8.F+EW$+;}WvqtgEvC( J;i3{>~ GAh˜{{q/rǫ8Nzt ^>uwxo;k9jWb 9yu{b;'Bb EԠ6uoNW㠃'ZF%.7 Cko!* !䃞<'>"!1]H1 xaQj߮ o9Ղ:T-K:a{~H1vo}PZ9 B1&`Qv5ah ^fgս|{#$ ۸prE7ްoҬkϢyDH#6heD2YL[V&\"~6uYݵu8.n?v';?Ƃv.pV ¦ zX9XB0IF kgS^|W{O߶@ 0S̰>7ᡀ)X~<w10+1N tmQHC.np?1/ݼq KҠ<~=,j榎`YYջQ\ ;ƒ?g:Pfξ&PE_(;KB t΁md֛n}Uْ‰!#xx7:~ +9Qфڌ.y$Z @(եiRˆ4oӂ Zj)++!:yRd{oj&kMX@`>_[30[FLMX-h{ǀƷx\~͂9%ɘsUg{?XTǓ#=hĺ@9i dpWoOeڶ;Z^ `1 Cefx]ZHAL!.ݚ\9F ).kbEw)j'OHM܎{N+E6mr]ɥh%@ep6小pP>z0D9./F/ Q~!v J҃S}چWyéR?e +:V!:,Џ{ɝv>`6 Q2;HQmv^K;? ΚvA|M¶U)8*8#&l6(;JXFN Q (NLGX9j6cs: b _I"&h˅;X7c9B%]go pEEڻ{]Þm {ˆ-mBQvh` ->e"}{nfvFW}߮߭mGõPC7GT=NWW@^xlaBLnIH NA?rȵ3+MC-(56L?깯]sK_ NsCZBҎ6LMo5Ϩ>D D(u;I $)-z^"=D ބ ȟ/Az3pm+'3/Lk0.yWϼՏ 7fMR:m"x{VpVXdwg%w":y%XhH=LP I>$!1#vՃoM1`u/{7$dwhٺUbmxiˮ Çt`d%S-.!kU A3@V\cTzX \õ5.m{UcG6ݧ7Z>߆L/sv&bj@xo̠&5Um4x)1zg:|E%>bnѬȿpD#$[ܗw 8Y/.0en )}}f#pNBnʌa*XNtC UլGckNJcF}^ʻ< RUU_Ybx=(vn!T,~t2\l3dϼsdFO}"WOe˷篦ɞ*YVm!ȇPH4QY1~hܶv&^Ǒg ;]5=H]yfQfSCM<2L*6C$ ~`}3U:~, 8pwi*ż(c&G|W/=Ǿ؋9)$冴3YbqC|)8$#?v=D•K1~*8d[eWavUwx%oȡ[zx:BnwyEB6'sd U^Cd< N PK )qW_q" cpython-3.11.5/Doc/c-api/tuple.rstUTnHdYo6_A)a۷O[ zCa`msH{߾s!u-VH$~~4;ݕ^,D>X;TvkQuצP^j| "3:/^GŤf3!N{5v#lȧ2)L &Xɣtp:~Z|̰7`ZԐ-%t4h)_dt>~}"<* iL^kk@rm:ov*F%QՍjQBouȁ=uBobIu,Q!˃<[\_$'_&\Z[bGVwRU-JeKaadލ"e~}&lINnHb`Q֣,呤tk-K_r6k@#IqMEhmx4o f@B3_( 7xtS7/_&Yi"aCnPD|S~|G@a_p7׭P<'+jP΁s1tvƺJ/Uymo 諦J$B8ZQIHɻM.$1 ?@i@2!&H,#s#W^^!'d<HOHcilŤ}Qj~ }[WOq,>Z6ٝA4AmSXR>6J&Q ߰x?~m_pLĸ𵒥1֔T6t}mv:%0An6`3UrأE oeӹ!,2mJuk#l dÐk3k$A6B9m aE|쑚2 nA,׸m=Qʂ fs ^[0hvS!iMI\Da,žiD$e WZ8kAZ7X]83a·j#K.IL0B;o ]c87[HٍD[Z(Qې\+5׹%}ezB$pJ 4ͨd'eȴ>5Y?:R ȃplB{lAN&#[=y?t.uPw;W_ф7UuS:vVlhEɇ"^E0MFiڗBnRAbA#+5!廜 b9#]@^ĩQw0{OO q΃u,\@?;cTð11;`y3'5)QfJVï?#8ΡO(<<)qZbe>7>!@04v?OY8e,ํSy؏׿\w3ָp >Wbm6N|g˶~c=.^.YF8Ka etlƆ @.+'ȩ 5gX9&g+]JS]}pj A!m_PK )qW>:F +! cpython-3.11.5/Doc/c-api/type.rstUTnHdZ[۶~ׯ@5v(l6kgggݴ'"jpe9 w= w.t*VqU??r4No[eVw~_ERak+ @ #z^m+%+}g0KV8XtNUQ)WZPbڿ wHIpXv :'itHeVҹY; |_Frlbi5צtع^6096ܯ oDc5BjUcH|NjYwnyٔʁtfoi͚EUNf~ȺZQJ:ẲTr{Q# , K)!_8؀fsAk%,WꂥRyߵp4FpEY֓uıs("1`e|D 1 Hb<ݱ>\Vl8 RF(Ϸ7?ίn⻠J?Eab!UH汓)rQ+!Kken @gETD ЁZi}Z) 4L!JUyRd}٠oA:k(hSyӞ6^jU ,fbK6O֕1ExXvFy4L A+ֲ/A{#4Y P3 t#в%?<*9#8f1c<\ۀ䋭pa.ഝ:(#B4j[c}^-kd*c14 Gqq4ø|{W.gݳC/'\;^g,` K~Z1M%f GRB@8.W7(kWRV%љϋi<~@P3, L4 *;L_Q:Z] 1]]C:{n =Wum;?9$<@c }!G@Ն O$a0WX7,eW{n^+D=֨pb\4jj$k xI ؗ A5z~{P\]S#Jni]TǕvmɎw)AgZ"@Uj{_&hzK1"p!h%̭B5moA2^Fk@jTMA[reTjPU灾>+.U^m|RPٿ?ֈi {B$\i UK==~VaxRa. Bl`rZA(mŀo@: 2."&56k 91pA Bh-ѽ=5c BLPí{5HPA)JQ s]_Vq*59׼z9J HPXSZa`QaՓ6<4v[UYR #]C_gɚVgJMHHrsӟw@jV1tO<7kqքo0Qi˫Z#_S4\Z\UKpT:U2;C,y_96\ _^Zn)M  _ :f"܈)<9ۉݞp])6lxjiE, A҅,e0f${#XK9aQ-9i"nKv(,z<}{^xN8\9qO\A>H\;qlkT0J` \QV?C6Dxd.wg7Ww9*ޗT-^n0u\,DCs9DM][S2;!8;87DZ'fpnd5Mh*t$?L'5ܾӻ1Z Ȇ>GJc5U8FR]V[[r'{w8ْoq-X <ןʤA LGP<`HQ<4LJrFz{i4 KeAd^vˤF^O.VpL)L^Jz9+&2hYԊ2 Г{=! %v^*Ko9\~;J:@j<R;kJfaz5{M_6̎.Gt'g/>B$u%*]S?>2Yc՝cZ7S cr7S HXXgj>=C T뉔ЅM2,$JqPY?PK )qW_^& cpython-3.11.5/Doc/c-api/typehints.rstUTnHdUmo0_q̈́$`T&I(qKcv:;'},Uu|swcRIy1c%7ӯ{DѤAi,\)ѱԳhĊJ86R@X5 Y`kQ{#gK]:$${O^Ѭ g tu7ZjqFq&ZmAeH57 q#OFnEm{80VΤ"GP~GJB̗O5r!# )(\ 3 $ V5_yTu55;pvI ӴH,L rxϢSr Y"4i#Oyd-XOr6|^.tp\7sT_B+2N}D1 geYnp'9RX\f@Y$>,ciTl.ѣq63TT-Õ[ɆցRHXLS8%+[Q, M]7oħ G!M7ϓ,痰&-#?83 )mh:YkKY;L8 | uy}8?0OulLDcaf@IdY|q49%^:t<^f]83@$i_Yz2@>FP~4-:U j$C16Mǣᱡ-~~!p&Gso!x(Fu.9Ԟ10@~7nOv Fޯdž$>ߪ}?Ə/^y?d>xTowYpwZE99w[s,=x>VqwDnTsX/epa|a/c{u}ǯ?V{#G׼<ʒ0[տ |]+s|g:o/=ػCM+i7WvֵB޴A~Jx%5F޾7)}|cmaw5 fT쟥ɴ3n$JZC2›(3 :2Dž 彏gQXzώɏ8[1,_sdx:_u>0*,*^|٣ٓuʹ 6{]FYlrUk֐߃6Σؠy$)@ek-?EWo_m{ܯÍVWo<~}fH]_'~y{ٷ{wpCy{ >6iJR=wӶwӰwڽLU{wqxm<_8W-Vz~a˞F:D {Ve_k2Q6ޯ 6sG{pڌۑx[iFOYQOyZ>λz6pV;=t{λowB{Wu;_ԹzuWyt8My8ql>{+oc ZS@˹w%h??r{{w_K}yeӀ0Wz?E&9Ɔb,E%+ܻf`-?O2'8+ a2EeE uM0  @bP/^FCYaV:^ĈH; ʼnǡ&sĠ[XebH&l*~@1`EK㪓49ԅ <8eF] M<$%1o.:Po3n:,+>@Xs 9N'%p} %npLa(]GN*w gTCOw8Myy(zvE~dK?Dt Gtz3k 6wЕ΀7q P(> np;nd<%\n}7dE 8Q8_妰ZZGPC#q lIģIk7*%Hޤs';:m(唢< K1}z,ղ?ﭏ/]d_yf(wnF~P lG 0 +H X}ȗlhe)]ze`.=3WIبJ+gY$p,EYĹn >fޜ; 8YqTpWa T^]}9w>wF9bVt% ǛsgSpg̢9H^*g}Oxys,`}*>`YZ&TǛsgHo륽10'ޜ; Xwl|vDuqw*EE].R.aexi2~02M*lq4;/&[]ϒ]\Wkv+YUpg>2P~`L5܇]tg&/Y}l`+nN͹U3܇]6aO]zЧXE/Ďs?vYo@@wYd&?7i05V0vOfts,` ]+gY=/(ףYBmsLeufyɾa,gÚԽ24v.lZ i?xOF&l) ̏M>]d\#|m풻̢EԾKJB6Po7wwdfHkvZea/ߌw!y'&eS$]K>ʷDpv, +vOr*{/vE(4QN]Z;݉]rHn5$s1UХ ٶO:]=o,Sj 5o|%j{\V_q"դ gq+QM7^;kAsѠT~$jsn~5vt5u,!mz'BOҏ}5!/+& O&=;rPkk{5uRAs jJJP9{IPjJ_zMwj*ezMwfO EmzMwfOrfA?Td_YqӮT# Q庇;*T)ѕx mRg$_6F 2j}蠻wk̭Nvo~_}\pM?Jk(~dži/jezP;3GU~=]tnq5pw  QN<Lv\F*[ #a<~3AS.97.i A7w8] ]3htgIyԮG x&Jbt2G(_\=^a~G1 _Y.7'2B41`b>Ǖ9U xLyL Lafm ˡRzDdxL+0X*]3oY- Ձ  &,Σ$?x%ꊈ9ek4%uwT&x|m+Dq UՂăh=, ÛHa\XK]l8ɩW'q8ȹL Mr4B#`N ^]@y8ҁ_n Xj^ -Q$M"xyRD4R| c|Ad 0wud4ѓ'a ~Ax;[)FA*0ixTS0}8> Y/6燨mlF4iLmI, v&D@ S̋>+0u Yt#GFJrC* f@ nQ|xtNAjD`Z\(G#?WC,xjCb&x\d$U.aqqVz*t8_u잷?q0@u2.e0 x(myoSXɂN(L<@b./Bh =ݸ.#Iz-;wfq\NHPloyԝgDpY4e%ZJ x45t/YHg l88KzpH݅;ݿ^|ճ_!ԕڲt3Zp͉=oa*#a y*TH Dael kO[j aҧ!0)%"W8y2|Cv,+>pפxa8~ =S0CeA"_6*ŕࠌο$,MG& >9#*G*շ=1[N2 L ˭q8 J@[yO֏].Y~4n`B?FǗ!+ѦH-ᔙHV+[ێ΂އ8[ydO@*ͱr_rDė:O#.^㛑#+OHr#bD_m4cخ5bûhżCc ;ٜ{Pٙ\Y9OAN6^8kgcĞy8)_:0M?ӱڊ+Gnu x9%`H[4 1'IC Oٗ:.e쇮7^!`7]& 6Ebf>.t&:K4KtIZ Bz9pT#dɄv8D v8$Nsk%A5@肐x@PW+f_z0֜Ϛ'6lre3 $stXULl*_O^o'zQ'd!̆ B,k3v& TU2&+' l&cIƟZQ} ?cMQ9(Sn@e Ĥ9׫ Um6RjFtVD؅*7Y xOQL l"@G"šk^V7F2WpEpU+Z(2jp^g'uMX7a9VIpU`WS m)BrUl5w?[d4 (#Y /YֽEd[#^qy`D圙kibݥ\~Ftt>dmgK79D-8ENZ~%oe%4JЀMxE< Y$WdX:eI2 ;]N fLdٗ liiU兪𻓈[ *Qu;jwYm\dwOʊ%LY"BO8U.YpJ ,Q"\J@Ol/Ll_٥Peg#|}3}kH"^B< jsY4NDe?NXt`V` )%(L ȿdmg&^KFƹb._QXCz$F4J8pnKşD8?ӦOS|}7yyuWW33}7X-!tm /<q_ߜp\r %PtvbWm1236›&;mNIͨE,tQ+|GUUҒZh|W:GLX& M%)#{.&,o"p;"ކx%B]7A&c6͛M/ƷY\uY&`t`Їّ uȩ&4.<+iIx&B[U=~)HKĴ\X.^ 0٥;cǝ1w|1]qbwج:C *YNKFM̢EFl`,FmO)R4Am !Ѩ!XL~ȋElR)3x7aCi62X$MN6fc?Jkl8p58O+kz,B1pO(ԻrAB"#@Q`7װYg5tiDb"97UhĽ{od*Lvl(q24ZJ^5'1ιT?+g- 0l0+kʗm _ /cMV2dEMM5.$* IKRX㇂x>;Q;D|~NM:/tM &sg5nu@1ɊZ.Qh ̄m|=3 Mt,;-mn4:6p4mSGFY^k2re@l+K0dg=Tmy5f߃>V죬${]ޒx~Aƨ.;pSŨOew?Wi~zE7 'l~B(A %D9dIM#!ע @W48[lNlCau>?|E'a[(6j0O p;8ơ{;hRhpf#BHccԭO /W^9BS̜zؒEy*KaaIԷUh lXgUg%{w [O{khY15[>'uы `rm9d}v| %wlJӮsv)GXb /˒Wz˂בR8:edX3ܳzJ8,JB%ai^׉ 4EF-oǦ cG݃0xp,S8#vP@E!ԘB#ќɌ<{) %'T'4h<<- FK`f L7V۷Q~7㜮LwAD54].>kYo3=]JIX[b)JpVS4{K῭d.QY9M˹ r'reVSZ CRO$B"qe#ɔQt6@4iXBm wKi E~ot\d?;Lɋ4<%qfޑbR˒|l#2A9oz©shyhQЈhWNk\L6S1:2>//E@i #9ڴ\^G?7)a?nwUmD)' %|-M5^NO'@Ԣ%T lWM[xdM<4 ,"&r ܔn0eˮpǥD10aE΅+Bқ5ؾpz-Qڡp#[j˳Q(& 7r9Di^.z /7۽~N₋[V# +W"ܜӷP6w% iR1v_gH~#R'?`71.CM+3)$($ .4#;FdJ7/QWQ5,?GAM84 ` h+lR/KNB̶f{ƔmuF2$zkD""":A2voW8#i٧=3adOR@a 92`O %C HX]Bklbۈ=1NIÿofw.ى=ĔpGԗf>F-s,0',1+~hbKc&==~׍2QPUP. ՞y,j]Ap;Xs6P&3Y\rBW-/Z( ["=wXx~9ץS\ݎk^zJ +FGa(!}'QFdYF6´oOAqݰMS52kr]w{3^CYdkV&)*(t^-mE;uܭemeXඑa< @5 7[{JM.$Ap,j_))w i|xWg_yzggo.^RTѵԑN2bFc쪔j#Rf#NkX!|/!Z+C,L5bN ejhᛏ22Fxn@\ye 6_TFQ좾ȁcrZBy/4 ~F /&t"K0[#{xx7ҺȏZ> pRRhYب͉2ZZGɢ|xwu"0^kn݋ׯykóN /S˧8=Wg'uItۮ]C8U AЈR8baFۗ%V%YĖ4i1XK~W5ttpdJnaxIPBQ9BvR>[zO$yykik/{KOtV'`fK uoM6yI9+ X(Z{ ؏+4`ܫ7:!&)\ [kj-6#~@nkIKD~M:(WH CmUCYb94|}m;,D?l bd 27]Hcf'`';3x`Q+F־hw8?NNG.gx4 34,T,kI.l Y4oȇ"6 h(8< ΅ gơ%"< Eh@w]㻋]?w@[c^_?1w7M?zs](ch2%gfq=V*TJjWkRC(*V`'YS:F4s!+GXYv4x*7s4d9}dpf| rگP˧iK_7)vrTuF!=QCBގ^z c.;ŏnjh sKtESiWٲ*ѲSZuieV|G?3nQ wBAnGCZ{+AT{/w®Pq֞1Or d͂ ]Q-_R$̗XȐ ` h>Pk QJ~P;KoiU85ҽpM\= FDy;_eZ$'!/ŝ |M/,aNa8d!% iB&Pg6$GA7r 8e^>;PB0 YDnٞ7M%arc #1r; '&R.$]+3Y "_ $Բ +.2m4+2P{l1T%GxŮp.Yy,/FUj\1k 8J ]& w䞦U6Ŋ-\k}ek'9c92GLֲx:eA*taU ЄJSX;-69zZL} ]ٌg,t{ŔpઘXzI:f2^31h3F՜T*ȯ;_jxO)2\gCt))Eó>lFy5l?h_hxmѾe=}k{ڪW[hdH0k^_ioO/j仓/=yGbKYdŽ<KQ[z}*2rvbZ'>5S J&~V88 Ȃrgi2zɆe"22.J =(N\\HZ|\H!qtr~ىY3_٨kRoDβEHo ܬѧNOe!D^T o. FVZ Z.rg3ͭ|ڷ( -جZὒgE-/c[8^Z/#SɄOLƝ$X52 4pFVjh696=I#^Ng=J ! SnY3k';L@4bDi^Hc,֏{P\ XGGgo 5e2V|Xo.tc"V dK:ZU:yPҦpEx+'=QIBC%ڊX3KƤ.ʅ:C.i5B\WE=K[P6&q<7;p:n'^ P6akZJ?f`*[RIy\q Q,{f*]BPU-SZb zpz&Brvkj B=ά#~nb,"L_6I7v)TLa} fh*W%8G?ns3̙*CyQW?k\qU͔}!KutqF̬-|/"[]czMQyC =+ՙnyÙ߱$" r95Nq>}\'`A{-3r\Hdj\Bj b|,NG8LM`tieN0Ad6J6>xq>kE|Ep,0%b͚M&7}TKrk,NAZzИ۫Up~_邂U >aE@`5fޫArD5R҆\Fס)e5EYqދzכֿ p%Xaօ]gi#xnL0p8: v1T Q6_ρ5=ufu9C![ J~f,d)&TÙ-IK\b. "朂QG6Ƹ6em_"$OߜU(L>*`lv㻐{PS҉kT-?mf44nHUK̀MW(M+ֲkk Y؁Vtt_VbG5z{U~h lRMt]L-=RBaWW2ͬʙmQr ^31j"p@Aˬah;(MKb%f!)i"%^,PLJ(3&H^ bjuYOu[gQ2D׋,FpOO,0U#< EXw{U!~ŔX|b%njk@_ 6*y">rDaO|P0SM m$EpQm\TLvZǨؼR8 WYDW3Z ;! 3D+I-[,QΒDW$YO ߘ~u }gSmZvׇ0 ]\F~ücuq>‘pM 84&-qI,EP"2qpuА3!rOC`\ugpТ] Fg${'+r,~Hj_Ie۴ԕgE'̫bb9XTٖeDypbô#^H Zw%鵿TuuP\<\9MaPO.n.1u3cJ1wD<2]Te#qPI)X=Ã`i9ml, RDR8`cߥ qj(RLS%O}l`wjJěo}ByhϱèC]^+ƱDŽ 2}SڶqE;ceܱ%³}e}yvaLom#ҽQ.n8/9&!{lT!I\/]u|}κQ/IЏl ,\Ԇ!\R:ީIG'zS;F\xL}&Pw.LƼ=ZGӕWf̭!}Sd hxZ;D>mW (@-J#Bf,##oT*Ojib `L+?aê<,.M[0Lsu™[:.uπMSzlPN_f.%+>B LJu ǾBezmں$a W~y ,o$/M:[R# h/"] 0TdqIS,fة?aWcʴ3⁏d9d Ygh!</Zւy5 ՗8Oi:_? dℰvόASJVi!WD=^|=CUCtQ^*@"6wƸ_ aI=U36[ p%q"_\<"pqbf?$Ŷoጥ^\f?8g*w ?t}lNIY9~~NV iq!Iy7bX|l,ri<ReT#'P\Bl\4gE|mM"eYx6,5+-e p)ic !CLH3KwUȰ2S=;xnXplkB\ HLJ_ɒ$q-ҏNmB.jGS&jR$N4* NcZH=ĪElbhLW /Yfb]Az8 q‰NsAݟxSBF"ކ/#8}8 (m8- y`a15Ϋ0*Kq6H &Rt+9` %uUJ6#5k(HUbc 8ˌg\*0YLTOIhXy q=&p$Y]~Uk/OKT~?8nj\g}:*\,W #zHdD^Rskdݦ3l`~Gf䆞S#ȱ7l,7#tU*n.dCYE3 G. D(S{WW?Q|蛊>'f.p"oT <HAzѹbAK}!KR@?<]?.5Ok)UkJDv2$D :e5V\@0p'3=U;X~ʏ>Xx cZH mgܳF#:9ညvft8#k7";}ZY5I|5!U/8N&4e7rnեm4[|i6Jl6Hh _1#Ƹb~KL6dFɌmyd+uNs "XL:Qe3 o 0 fm _f7J]Wg,- &XZ_z&uᭆ<pX{6GK L"GXh3}Ock4Ȓsb zQ6H/Z) SnPv r;#CKoP=xBŋrx~̜VX դj[ \f8,*ME> Ҵim>5MZsj5^tk7޷0i 7? !9n \&y<4r>g{/z~.d]&vWz:suo=pK8n D,)*x癘T<<.Qs =$[3q;Fgs,Km_aHL\bzXOH|JPwoh⏧p㓺O!ɹvXFeuYeھi߸b/!c+>_"G̓0 %zm%^="+uyȼ.Ki6'y!2pJC8SKr.X ߣgn=d4;G-88"y8cEf^~~$VwA@rVaXRK%ny2|O=R_jว'p^J,e1A\*'p%,! XW~*`_PnUzN:UM{?$"g9p`|R$s^{аM4@:/Ocy#v yhvr 8cDȨ *0^tXѭ(#8w顳x.'@| : xuN(i5Ʃ-`oc^jmHL33YZ}yWHﺋ9ؓ*` K) 4*JBK ѽwX`0 gsbƒXmnMߗX]_}C% ,\rKJtS6S>!*,YQ #Y^@TNA/ 'P-RIcC-@e%NT5XJg_R?|RNE&my[e|ty-sq,-@e!hIڷA)nVSg& o@ vרң,W[q$SB7B9#p:jqKSW r\ݻ(ν\7>ZQS._ZŪlY0_Lz,3(T<]аa(tnsp&y6°3߉%1WKNUC\~ nCIM@'4 M2_Ѥv0Io+?V`ΟPJ"Zz(I,N|4 oCN'W:Ktil'PQ8_p>49w\M$z_odg%?fqz4@W+sh\Г iTO9&{2Nݗ3 9.,iGԬ\_0Lpo aш WJw0=r[U*v5+VJ7iRP84T\47\6ڇBj[:>(v[{.؁GjjI[}dRHu z?wfviJ7 A7md6_FJJv^C?X`x&**W)KpZ`nO!ply%t=1O*gO-Bں;=~$M1B*/-+d΂ -BB?h٫}|"5 >CWt26N<:9KN14yzo\A%+?G_`m[=rvU0]2Hg:GdQ 2.'SIau$gWG#Sl{KZ9Nd]/Mk{pul>-4C)yYol/4lRAT[&-zZ-j]=ݸ8<öŖ;(۰'updK蛟0o̓)6E$( l %;rE? Fٴֳ߼[fwm/|tP[/䜸5^p1TT̋l+ތ Zv>Q[= YMօ߀-x)Mps>W-/.?>=>?ŴſJ9Ό} ֟IB~dBC%_}dYAs ZXjwyh-a)jM$!mf+J GCCg`p⽍kꮥ'1Irc}&"fN=ϳh.::(=~d-?M}^Pccf,T{^E}? q%R$,#KU(s;z{G?H }Р^$ PJƸ0p -e'q8) ; d{ TxkYgpi IW1Ka &h#RaazFfpфq\#4t4K˫),[)+p~bN$ĭ/^dL~wi/҄pd:HK& 8#]W0 y Y"+LB`Dف628j\aGpnbZg9'NZL`2Δ౏c!Ϙ:~4|1W׃~p.< k(j e! 7+g-H47$'J8W PWȡ鹛`R #~ L0ÑFxQ| B$|5Guװep~?3x(+e(gP.QFb,z$78E=ÿX,GqVn< $:040~ $i^Gi`xWA)Ã{x;IejϙLh2e;/5ztv|zʺEATęLw]sw YwJb$QYxӴɗ$#E #7xHh4(bJ|PD*,it@d !Y nvAƒq˾頌  !EQ'1Dc X<<NYf)}9r9M5= P9N;E9U [zd@`.oQ&lM>5f.,LϞ(F#Ҋ u(}ض J<.\[أX%W0옦V&2 C )eSjkr%y}X3j筮g=?x~t~T]W5}`Wr_U.43#$D ҆nZj~ȨY8ZeLl0p8sƒD̋n hWj#i}bo!?~#(zjXP#Al-.8z#iZ=O?#@{Ѳ'V>}¡ .Yu*oX﷭cœZ[ C~D(7leu pr@X t,:TGv  `|TC*lSMua[i%~ΣLҮύu]{u7fad&OvCnNOHFH Cz4~nGPs`:,*Ge7W^Г^,b L)$^$Q6;$Ճ!(}e\,Ny.>bkX;} 8Ҽa4\ q$ OפDq> OӼNA+ ֗h9]7=)j'm#̿魷#&S,xcE0K ޥD L] cwp oX$kyqn2 ʸum$]GdIa¸"ѡRuRL: !ǣO³c4+g.B+*X&0:| |r̥X}BL@cD |5D;,s7`1qvj:ƫ>BCU2A/ؓ%F},AUŽ2 evFy}C|/_f qf SIEկT%k?i c]xEu;l̢ܖՆi~:&:ϿGRâSkl#38Ҍ"Fb@%ɚDIrRMLM};BJQo(^Y7dj' 3LXpvR g}QcRPH(mǾ uq\ifO:A3Oie0\ "mN s 3gǪ='z|j]FggoQN[oh%Ép*q< Z0|ɻ-2;60("V[3`u gÆ`}unxSN?=#p_;=Q(o8#ip-L%GxAR-&iJrri^d2n8<.HORfsnL*)W&:M~Gy1Nwl/TݞTuˆI`h`:pȐBdfx",`] Y-K9eۤ~ K*Ir~U`ok< ! h+)f^+1p4i =xBkӛv>.cCJul9 % 9 < |`̡1G$9-=0\1!ulc'gҳޮKjf(d\Tf-v/媇ߒ}'_;>p ςz!0 U#t ~sFl X< (wxQ33\59YZRL@R5b=C*fpMo ,_W(% Iq ]&rxQs1aQ2>JAsB.7V~j"*%:,\&Kلߖ#{GCk~,?jW;y J1%ʲ|\P|TWm2/+]׼@ [ %7`^ k:g,T%E8mSR  P1`.ۀIs\EgQT6VB];;qFb;zfF9\A5`VZthP d:%M L#)@ks`~ĒC#$< x {YQ舟2fah,G(ļ(\-Cð\ʝea r/>fع 8a$L6'ISId)c(\Ŕ ȉȔҀ:*瞞b\F^uFƢ7Yޞwh@ 3@bv/޼{u -veg,JVPѝv}u0UOaA,^B{Kyg]Vx[lH-ϰ&r5_?4>x';·  0"QŔFXl {1t`ZwM;Gj6R,Mrƃzr'(#Զelj_D@.JE}\u-}Ugձ_s{]uܺ:<6$P^u+ ^6WJjMim$$^p^}՟nR vaͪ[w>uVO<-Eq^{#B]5=W0:6_pQ䷝{_>jFT[a.Q7"K|g9#7kcs|] )1}rp аE',U.َv0P7 , h5,n&+N[إ0<z1'Oקh( |Oɣ=AMdFa gK"GYV{$ȧц^45h?fӄpAyL?Ek Um`&a]RAB`0ck(:#J@ˮrs"fpm[YU뱿eA6t|V̟tq.yQ6_K3bnJf6$wR,jCwJP[HKэSt5025IHx}r&=d6k˯| %=W܈21)&m{TӢ{6y~w&)g{壓Qk|GiFudqRhnG> {OS 3pO)g,U0N4jռֵas7U`Aa;)IV?nUM)#]܊;ы1#WZ{Q{Y.ށ%5I]/T::,mlehΪ oٔMp+;i- r~l?3  Vr; ՠU{t"%G~B.CEnf|KV"ہJZ*j߅T듅QwY߶|y^i6yϕ6g9[G|$p͗6/|EWWZ:LVAAk_cRzJQ؝5աJRO@مMl{M'+M?RJsq8wW&o͔a“Z _:TGa٬ġ>GRǴ7) eүt\ЎͅJ=:8sZe}5 <+KTILOѢ`pQ qnqK@{9D*q?wh\!vRd"L7^O6c>d97V6h.D3eYT抺ml{9]GPXJ .ud:RAh+.:wG:MA&qj[4ķ8X|nKFl).$/oe뇝Dl M)ò Fΐj "$#RY{x6Ҁ;)D6ZzGedvp3XF;jl &WMpiCI~'+Alݕ60ىcPn'"qS K?9X/JϐJOx8R.X:0:.V{.]Uu.3'waaki-ɩ[tRܧoBMvBS^HKTnrl}R U~֘rv|C?Ec/`i{ld.w2Un(hoZœr :+;\Eu_E'g{[ {FciN6e+L|:|~njg夝ȏrK#h+zJR/L܂urk`ˎ:V3r8WĠ۫Q1BE&4ō2U4r^l7-ZomfB㟔2[iwL%'0ċ<߽zPa\w᠔G، S<7ZOCj9 mFZ?ԇ5 ieFJ3p#͜ru*iָ1H&@.%,TCO5bK},Wqk@AEc* B̟WPv[ )[e o2R쎨Iܛ{Gb ]5%#"A/*m*\IuM?+ﻲ|fUsP8rgZ6=:p ђ"ԙÀ-gku0kdȭN>isBF[o\̀%-Ss 6z<ώEQk+59WЅ+-LQ%,P&gc|΅+k^;lVqH}b"?r1)$&G9r `#1FT L٢K\lUcT+m#>Mo0 3i5GY%Q&(*aaoM}abc30mvPbwnXa0vJ r%q;yo^tϬXuI9Ύkg.Ǵ믊;|l<if`꼔C v$sn70mPL; j0Jmј.m;Cf6rkl:vVȖ;sY, /WOG0/is@a'Iݡ&uc;AL5A26Zi0Ifue/҄Hk66Wwo'.kEy^W=lY 7#ɆoarC _}@q=kٴs^b쮉qn_԰*FK -ύ~<cbq5k4t%V:?ݟQĽٹASʚb'} IwQfu7/T46] Κe8ŷ j6s[|nO$n'Ϟs0s. )HVfj Ե9V#QՐh2L2lb3BdM1/ZJVtq\6`X֫G&gM$kW4םt#&SIU%tL›fT6/ĵچ^[aosΰJ%dE4FDאט J~͚;sIgCCz2+Av.(q&r֪A3͢FrlT2ۃg\ ***I梎%T ~:~!twAvkNtոJnJ"8:&GL,i9Ό |$a8@n LƄ4ߴh~y&B{oLVh jٮ|ڥTRA1VPIƾצ`qݒLȶ Q)PE >Wד5NXݡ䱜+WuJN>Wo}u?oQڳv9-džߤ&{q'2&l+~lCTEϔR\,ϵr2]k9Hʰ3U'08RO\yN=}s $EbT(>G<<6ŵ:͸f!L+8r?6́]3B8 ɒZ( Yp+%è&P=tj O$(tT R ste#z#![K=m9Y7Ep#n,pwIyħk£Ca7FLcȐvv -mJNpgzWգpo]J5)e<~L_\Пz۝:/wh*# ,jܭu#2H\0gDu$c܊yV_rPٓ`>lgo˙_FZ M{7_S[j.} UV/{HC.⭹VĂZ3g:Bmn Ļ^Υy./?b<Ƴ!i(oLZ$c BT~^#31dnA)I ~i_6^5w!hъΉs[7Jmh78F_ɇbLHt*̝ N.A`w9 ck 2.:y$\]e äB=>hڔ(xZ{#0i*ƺ[+s "Cb}c>@w5KGNb2LdLfIv8"o1h4 $Q\CPhsNZ[[Jh,{ #Xx!Z >k}FŽLzYۧRYjg$-"W}$Jp8M<,>xgo^֐Ry}yGO o9M{e:uu9m}N ^4G$E-߄.Jsk ."7dEc, .ʪRo)'9ۍjW{7Aܫ Rl<>X(Y>Fom F,i7g  qqt"§oA$-3w.ZX ,T|&ʴ8"$Bh-['A(1x/) {u$I%wށv}r&H nzMJЄ_K'ϣ?N`ѱNS'Ht$U{dsA+ [Y UgtMGa괲4,U1$I}Ce[1 ]U ,q=D]p5R$UXnl"fgYBQJAK %ƝK;|ns_?Xѕ,A, TZ1N&]fWV4N>roCz |u\~ВNQ|w 6 K> % ݍ];=|3B$H&yp}6oCv }?ޫ`L#5x_ *Z_@ӫËqq4 }>kTPLwj(n8Lfdc=Y:>ju~ԮGݳ`>Gܪdܓv`i uc.5iW 5(&[@^EJލQq*gbd[{4L\MΔ2L`lADԌZ1N1pL}̩|KxD)GЗ{.sM%S_/,,3̻}[wRPc$9p6]yf]( Ǎ5OTi.@b8^r)Y\@ =/N؍_KYg۔+ك˅R)eLye}5^wdKLDZnI53itbIH+P洇ko&Ro\ fȋgSNv, URQexl샑r=oY96h޾c.;:yF. Sie(u]$bXe0Eq]1>r=L5t- ʅ!ܨE(BCx3jmDY.t&m"-éxxiLFU8J.$M֣(~ӵ e[Vճ3m?Mo9Zhf[tφ dR4=U5W~/IQIߑaEY, έ= se$JK)<5{%!n: $F *2(jY95=i b 4Qگʐ^uoGb _/WܯI%꟤P#p1c-Am*"e[8/rXq+*˽hHqu_kC:.^ zؿRM=I`gb) b˽TX=/^F5B!Dq<"3f~gd$4核̳? UUjj Yq9$ac % 8J/l#VLjFӺwVb1j^ճ#%|Hu0&T39 Ǭuf >(Op\uIBnQ1rƾq"ˑ k] 5Kw$x-;3ÚȕCjɉ#ZWa]u5)IiՍAFAT@Ӹ~|ۻ3.w/_p*[)}WQ6R |sdTM-Ǒe=4)~Xy;F>LmF؞@S5QHu'YPn;|[F L,`٭ yCOsYU 0 oߟ knGL~pݭ܌*?J41XΡeV~ 3򃜯cڻU:%)?MvaxvFefwe1W<.jrglR nGusHd[!;Hd+`өD֧n[Ur/( YxZZõskS1^A֪ztU'VokVޔ<qm~c;(!b^&EhHzrw9@Mhi6ű6DV3PuԺ=\@j] ,^K>@ b>Wʇ,#Vnۇ_mVSRR/X(p|<'YvF~e v3k`,UW P_Xp[E;T9UPVWu<\NhfѦ$曯/A$vRuMV3dWǵ89u9XכCE9U|u~|*a|G!tlר9ĢJ9P&7i\r  t,vh7g`(51LI:a][ȬE0 "ыUK#27q1jiF]yP$5#fffN~r@怈Vbr(3~dcV)j l3# gi >;QA)TZ\ '13,,QjB)voe_teAscߠ>NƯKj?DOuO/SC3SB7CJy aƶv jmaaW)S,ӤrM!D4Z6yR8)~ؔ1f4b*a9 PJj %Ix&p4h ܣbSkB&=(9*܌v)_(9txUۇZRb,<{QdJ>R\%boxEA [C⌟a $Dbvc@TNqww9:fA6 ;z&sNXqOΤie1"Z<24 8ѧ \ ?@9I;ljy_Gz-s3kE]_i}uZb@G`źEx>3vu5#ἓy50 bC35&2M Mt(:&8ׄA8әzI 95Շu(,huT3T؛hٝƤ˘wO wdN'p,>z{pGQ|S>zJ|}}G!m|ȏ=WV6xwĮ!%evg6-Cc]Çw]9< q= ?8nwO~MF@Y*UK\\=MXP& +|X8r4JF@{#ڸ^H `> X)7jwLZlfnӄۛ /p2>u>AiFMW* av%h2sqNJ//0$-S(Rxm5Is]\1,5EYw;ZN Ӊ'D4^86}#$Rb֩i"laHir~0Mg:|uѰ4pa6ԼZf|ĉl "LBA:txm4kM0gǯas4pǜxIWBEJ_[5*`&=楰{gŋShq |n+ b5^u!P>!BbO,{=]oah ۆ1wcC2cසAw[~ޚMQJdtɃfvUn5%inz)dl"=~?;֣"mu0pc4Nf.6C?-;f 3j1Ms$bVo6dP:̝<c.vg JUM> qѶ .Icb4>s{O1ҕ}ԯb&͏EUqKVbub [fj(6ULti0wN-d2ax%æZ  YqxO"CwJ~3XFP 4h2  SXu5MT; ߪ]f4e{\w4Ni`}*`א 8*{ɴK26Z8~IN٥AN-%`ÝJa&p Pcշ msZeacyϤ='u- pM33HL[4XJQ1m^t\ QS$Jk3}t~x?,Ibwm6[T(l^}ML/v!)w:|J{`fLŌnߐ 7d^>Y-xZI,IH>_KkӂX`À`n^Y?K-)RTI\R한6;t0JP)KKztl=p1("qaq˄h+ס4U(uᱱZs mizB), |߷+ӒmQ]5)?% {ۂ=98ۉU$sDzHXYQo'&.T<'N[-<~%-PGHK K!O3ͦ]̳@mfzhJ8qR(x8ŠS. Ht !/*U{` >)VSLA6=fI|F0 /R/x$ $cEP]*uisX}a@W^sI<%9Ďj  CVCB;gѴXE_x8Uyr/sU)fcLgm%e9XJ,B9_e^<Ѹ 쟷;wR77Zmk)wzپnھw'~̻]O}\\Oš4&NMhuȈm]N 9h;bYMI oEi(-T UAA8k끫y1gw 3l`b& U5#/F?+l6Q9 n}s)v~Z-V²(.lPQЙl&@=vɋQBgwQXܝCVREY1@lJyvdGGw i|aD/` cpython-3.11.5/Doc/conf.pyUTnHd;ks8+pN$q2IFYVdvc/"!ceM~ !2=U*$h4~]6\s1_zBD)OxdA3OF`%m #@^xeY:˒p1?HdŔHY*Y*Ě v| m(6S茬Yx łB{@"$@~T/b•orhJ Ca+L?k =OMML,ZmշT|X9JfƬA;7%Hv$Δ.iɺDh-3%nK@%>@5w(Wh ,Yqn`"Aw+)´͊}8 _ڭ y4@ML/ 9XE`ah6m[rM+ i,hD$V&)!XL㦎8G)5i#$=~pgi:wl8 zM:f{OWyoZ `n'xݳ>/> `!@H5ܮO[|sfQz])ۘ®ώ4L=gmJbQs9ӚLU,Jyy?8Wq+7ҵ}r:S:U0COg{'{decKNXE}wC"꺖ޜWFnYRn|~rOHtnzTR^"KJǜ]^ߪ(7{FOKGdO$5c0x0 G<_]Ǘg/F]ad0Y򼿭jik7P789ƽa]Yt[itgnlKm[gh32//ZAՠ;ԳlpeӋ^!Y Du]ˏW}ǵZٍW[χme~FP5Ci7=xM#|&Mh"?| yp-w(uPnB4Uck|6g$ .Ձh{@?'0 .%VD n8NEt<BHO(*Hכ@#'?JL1  5@/7A4K=8{&&!L)lm %l({ha5@D?I=B$az'y0XM$l Τsh&yOX&>% &\6 EjcA+ep1;xE7@R*amԴ?F= ѽ=,c̚xxr|&g 7ʼnOGIPG*G'L5K$$ (Vd*<[B}֠g?1һFJ53l("Lni3ޡpzC57Á#N$eʞ;At0O)̪;&CGΈ 1S a0N£dx$_Ot.}Lՙ\t4=LO͔Y;MlO.;u?cpYJu]ZT*[ afKQѪ`}N{Z7վSac` asL͂t -g͔rex"R0k0kn!&{O VvLIBWTϛJྭ^aT~_s!DBc<3HA.;pΐc|~M)J/`hg-ܐ ]Ulx3OjaQ)P< vϽiwH8UK2b[{g`}ZiKk|uC$]M̦zrV#Ш7"i d(D%1ᘾ ĒarKu<7 CW*4 HGDXxPQ'}n0 SRV"b ZLuH`jryoLk*tڌf+?28f&V3: uy.ZQ}0nuMzdu OFőW2S_'6< 7043+ǥZg^d %ȟ4`BtVD#$3$Y0x.y ++wFhOҳ(X=OseR#M(B/- N*h"$g?RhmY6Ωo0Hͥ`]!tSX觀*phDDֽs&5@`a&&!A*\tHkŦL`qkFX7,KB<f%XkJ]} ӯ/|>a7$+?J]D_"$ ]]_&Xaޢaw Jh| GN:HOd?耖4 *x1 >$[ʹcM6lPB}e*W6a,% q%[t<5Š@Yu>KCqW;%,k\u(P%5mDVUx%Ңi q?o%tei}yʶEs TVMs+ka @ YԦ Jׯh:I~ɳx2a9I޲6?6}MX;*Qk]DTt'qSG^P;i:Spl 9xcn 88Ĺ/b0M Mt{B_o)#u1)D' q$,q6yBB[Z[tk1"Q7D ]$Ś̛ V$(՜ʸf([>S'Nj;0g˹4W 5KW*B>>B{:JMp&峛k&+Ζ2|3ܛL61d(o~|yO? ?c}qT7Vp0\(-f,cMm;g<ϗ]߱ɏTF59ˤV xq|g?޿V۽rto&Ϣ{uIo{|bpPr]_OV"=\Q>o)cb ,B "8q!jj 8Ŷ\OF0b &X.w E|~`JљMssǻH?ʱ7 v s|vO>g-9]*G U/5X0_ܺ#gjhAtX,cc{*vKcO;G;;9/>l717 UPV(ʀݗo޼3PK )qW0tx" cpython-3.11.5/Doc/constraints.txtUTnHd}QMO0WLťfKO؞ulc;]~}'"{>&'D0Dt-1C WR`)2!',L%돠3C鑽mE гEY}eE Ыc+{H9j"7!u4gF4P Jm4rq q8(q!m>f;o.SgmiZ찗]Ub{y6n/+AaxJ{ޗJ@y,L 5>Ŕ<9IBaW@_c< eFRxF >//v"@'0[ PK )qW cpython-3.11.5/Doc/contents.rstUTnHd=R0 {MJBp,y=,'Kzzs,$Wduɹy&*832sUPk&)qQV#.V]ƻ6r5n2 Q`fյ%\,Q)eroפPZD_0A8R>Jkdq$R_PK )qW(2 cpython-3.11.5/Doc/copyright.rstUTnHdJ0yYRڊ۝.7ӛ6)>Ӣ(*;9slye:[Q٧Vށq= (SoPEl /~q}rGHHƀ|>iT->ObZ'<{B!=5Ys$ R|PgXIMl_mjfSS<:GO2߇ge.#_%4{-,,%Kz'޽'MfSJ#ьMw-H`%ƿS[o-_JWaW%׬L"fu9eI^wϺ+(4ۻ5)oq_6%{4N_EtFʤx{qJJ4:|S, Wi}}f<H3^pڙ$#RrI Ri|H>2-08L8IYZqDvf ]:c(lgZܳ8o.ܕy %hz1K1e|I \, k^ z9y "Smk bMBYÐ?4tJ98] fpwA, MPАES wS߻=?qk|K;@34{Y@\:\Kum@6!s,tHkL_@ǁ WZ,X⎪6.2M(jpdy)0!Yny˰`XooQV@.WmdZB0qN'.$jo s|E4"  ('B] Me&ßqg4j4U1f 0GʅX<,!!9O = ç}*p7OwXޥ!$.-8.l){Nt cLTpG>y#z; 7ǝ%7'OL)[#.ܚr 8,N*I!O^FOq%%ʯ_"Q@a4A=]![U^aA"J:uB SҸYB U^글FZ &'t$E9,3EXQxpd'Y 0]X DI"f^Dz䜦؋ 3mc/ ohʮRTb 2PT֡\JS۹…,[8,9{yżV)_c@{PY˹tկM5gBF!1 zI9VPm@п|L O7Q`T} 2 l=9qEO"vMIL?IR%B|$k\w2M"Q=1x.`n y/&γ`ft+)c6ao`_K¢*;IFÉ&~CDu/6 ݰ Jc*o&rawLw`E%{ab*Sh6d@ՐXH:5-˪eYC')V#)r$ !8◩+0 w'4>5ABCf`)cRT=fȤ2 H&x!5 TA3 z5|0+=nptC] @!Zi> h6'NƯ)'qN:>=$ *cN bچl`nlҘGx {`{iV(n9w->c'^} 4~W s!Md\z_Qaꬺc2*4 l󧆁oԑg|  *g1.PTpw€2 ܒxdAC ";Gtpk gRNll0K[H A*L3T x=/M JSV2,:ayV¾Qo>ʅA[HxvhYKi?%I+k8t6qGLʟk$xQS~]^!|2wħQOQL"Ϋ -lDu  ;rAaUj@ʹdM#YrS).O/4 {XƅcH a$B%,l p<^E6@yF<DÅ:}Cta{}>/b5qm ^@ HF iD_Phi"bu0ߏڪ_ L !]+K rmaXu'2狧$ET rV -XƟXZCx] D"WC`hG,^,K$hgJ~qX@ 7K!} b{C}*樇QG72hZU=1Z~G}K^ND!l4Mp ^Pq fj`nhBѲhF`Ƃ5pn\;!+A:␒Au*G<4 nSbmT^8" ͍Wpg9 LcFaEKr*xZ}}.NA~'Uߏ96BA U}r04ƒ8,ȷe;G*SS4?#HCX6>, ΤF}\W\Y |݊ΰF#Clj-0n<8X\R%JL|&jmWX~' N X l_h:/^@L'!$)њ/j~dD:a/%(9ǹBHEմ)2[y+hsK5 SmGK/Wmx GA`@>  ;!:6t7.Qf7tZ%S=JeTV*&g Xfh{Xt js K=7'Ļ:.THWF&⏰Ttz+hu ]*o_\ͱkrМٟW5Xjt:]$!TT86 dG3@\Ъ7;IY@4\ IBhhE\Mshb"jX@Y@.a`Yn%C 5r b-b5>!!E+7| P|g VpK`cpwaܳgh.$K\AMSIG^R޿ek"YCxu1 I8pa]z@I?!+ 1*8;ƻ?xsV1)l2 * xq9#OYA-Xm"N;@ h`#1Nqv"g}eV|Òsx,Ob8 R Ap9-rB4>C ysX`U#H"+aTH jiPjr}w !^ZF"+Snh8ë_o뢚\@k!~ |qJF[ٮA"~8Uѻ+8Yo g8R*6N.<~ +F!'% Ұrlvj J|Bo_U05n>_C._ȆI$ : 8>=~$r7y|@FDSPRahzX[vLZR\)(8M 6KNU$` \8 Z{+YB4-0!QCl!63p"_T1)aBrtdJ@e{WT@%I1͉ .MD.pq͖:b GWQ\Of-7 g~⎛\d\$_!> 1` [˂jI8XRۆ}L*,>> %A_ eпd [ (iRT h( qo(Bk0&I\%9VlpbK( 47ך/.#e[@͝oPÍCنB?1<(q\~j~lS!ᘛ=ZO~; *Pܿy!^khP!ƭS0BXkG5-)qudOH0<9ZY KH3D5 ]n NdQ|ۼ WV`d-+Z[~{p0>w6 9`,دMyͥ!vUFq!;ꓻG 8o5+6IQfl`%j"PK4^䛻 pj?# THi.(QtB5 `qЄ=r-9 S|T)F#ۆ#^:7P .!mGpCq %Oԝ+EQ^zw<C<3 ݗ . UƜ CKiEDZZ]XPSE5Hm.HFS/q׸@fpZpek$ 0f JuH8v{Ѥj(NEjw"\ܝ$`"Hj Fe%L } 9@īmi=r* VڦPApҏQ ~hwL EG:e`ǏD";I+0{*M'vƀho$\mUUM2fϸX|#{*#60}-zBQ`r0YzC"Q d$5)IID (;@b4Jм4UM'e >`Cbq &Sx eO.$P5끆%'x`>!س[Rs,{pdP,@!3nxqMɤӞ7c3&hg54D*!(qP0hjIA^y<_a兆gRbVз9'2IwB򍠑*ł3T!/Ϛ@~R ]ɉ1Agm0"kbtߒ$;fB7".# N0݊ϣoفj+#BD;`T͸LbP @' ^"L#% %KG*, D'vN 4য়WU BDzD)[yN m9߅p2T AiJT+b kdWak XZ ,jD#r #XaH3q\PCH$O w0?? `7s:'I,zL_VUO6ܐ6̀6{NѺ vF!QR@[#Bb@`!UlPp"@X#xE"G€.dZQ8)1Ҽ i!,DT8Tu+ad'I1&AAB4TIIjUªMG+bدg ,Xscte BdT*+88!, a6?E,ϷJ%y,eA˅|עz8qܭ-| %H %,O':X s#MH%3CgxHoˤC$oq9Dzf##e/ TU&+yV(ЊEQ8rLvF&R8TANAr #G&nA_qW:?҂#f+ ϱzpWu$o9d'+ G,i -.+}Pj\3p5U$ .`Lx `BP$Mg As$M**$[%7k" %^LLm`A;IF48,[p7.GUix{X{̡ F2-h^0rB a=pǏa m PETFrYzLHU,rdЯ9^=ą +(BӛP̳^- 9 <*4RŲpHޥ^ٲBT @V0&c [Pq5 s /"_AI:pm01T6aĝty e\EO$ iTu!spJ ^l&aA|EZ8KHs2C[4⒓ewr\2<$5#(wˌ" *c.k$K![PyGSI\א=ʢ2WEuXp}DxJz%vnOV SynT"],fL)a*gQ8(͈Pibv c$>rV}#Z6rdG1D?j5XA,d~W157ru9M݁@'xj92 -nYo22[#A{#R83n m v+:P+ iS 0BO*-^f0ڦH,L >.9つC iXR%<-QAlقE+-̅ͩiB1Gرq i\Aqiq8+)m8kS.\s!\zՔH>_c; ~9SXV8hJyʀ`Qp@98JAdԽQ{tehw {P EK i.IS]~)W_p:*(2 谠W>fƛƊeS䁊S*9:c̤sWj0lzȑJ}V߅S&.=ipʲbܮ- DFx2|@X'j j +$3$OJ yHqLQ2 &0QǤʜħx;晠%qqHCY@#9xT>6R3ƘW[?rkrӐ޾$Io$udQRj< +j,_yF^]Aj-0׻(p{w8;2+n#3qde&Nw[)ה,k>=Y9hm5+Sb WVgtق|- Bv6t [ ϗ2 Aw'(`21#Gԉ(jjj,:Rx65hS j('"9\ 4nq IiUh)g+ඛԩlz ˄+-j`ǑGFXXG{:% bF$'㪹bEɩKتm Ֆ*-3fj?VzkdLըx PS`ddV3DNWz)Por w,tRĩ*!vaД-ܝC-8tx#gTƃ8`=7>!A~jt;yZu\YO :pЇ(](Ct$YxdʠuhxCx&PhAmD1^OƩ2d:ΖF_ܥqʜQ2s@WI@#&&9c݅fraKsXD/\Ly( >oRQ%nǸH#\9).;YZiIA8?,NQiV@(ALBzx؏̥7Yq-K"ݖ#SCP\@ϊGٍq>xd>pcU1UTʌerh"͖:T ϸ W!Cq g [aT|hZ[\9Ude3-_6!48V'K?_A1KXI|1{+c'Ow`MUlq[Vc$h.>  KOW|uU(&I##q(Y|0b_a/tN/ î%p]R' ۑ IAYB^'Er:> A틡bPG.^ 8BȁEAEQ1mMUqVa< 4L~K N TsBp`q|*vSL$(JTn:b %@>xzyQeݕ8F)y{] 2 Y `3R,ka`MGWtT^rBAEK 2XctRfjWG#+_z@#MVDEc>>#7 }[c1a{K9E7(I6wF6b x_Q3C4wr8 POVfLJlRd xPK U!Ч(KW pkITO2 NF_hA( XJKp[4(a@xmD Ϸ =$a1r9BTpBa u}@<-SDW2M3AL 5\'cn|n? Q¿~uF+ jJ޿~$y]J$wIp:Ρr QΠ^Ѭ+-,rI5RHࡉ;zZxN CvmL0,ލ;x҂CfQ 'q`WÙ3`d;x<<5".Q9T_J[鞳6>9yk\{G]!r;SY:ҝ% x\,C+ *,CdP֥qARCUgᄏ\zNqԡ*g3]$5q .yB 73*Ry5e؜@ge)ЌӐHhNOoZ[K>ŜKt3ancI K]Ɗ[V.iۄ EoKʢԩHNwL-r )j%Q8[]~u:u14SFxB7`}aW9N_ҭcT fpB&~V8;Y\TA>q 峄=;鞪u)|[KsN3ԜZ5SrMI("vꭩ9Je^&Ӊ;A5Hsɯu*|hCG2uhu:bKAYTO)Xjw5=\լ3q9葓4OSU,54ޕ9NRU~mS)g7g\8q!JA/BK uh}\k8t3-^չV $gcRxҼ iHkSݫPn&wt Z"0_I*pUgL^KczZo1D^7 ;slT'c_@Pшѕ>%qf9(/iu|TAC%%,Dݟ[hsq@_oV7/\Kh:ba "E7S+{Z:k~N{VO]&eD_-m|]^&Bo4߀z4Sz-޹ng`nˈdvqdN g|A=w♙ϭYi80M_Sus6CoF{ njX:!LH<:QGfo[ ~^scz#lE  %~i+^YYgYN '̓.oP Ö&YT $J&#S͢)77 פ:Nn,7H7iqԆ.o:Ag>2,_.I\Z :tdAxTM;B6m MFȅxT9cK(9N֚}֑A]uȤqj;^XzΤE{Vk)ڒgdIj mGHXȡ Ogҧ}dd#cC<-VB`u:uMSeDnF]©D|jd6nFcQ) ?IH!ce:ߎ|QE4 šoiϘljB72 m8Dvmd׃x&}S,dd2ua Yl׆L&%=Y|D4b4/ }B#e: AФXZ˩p؊qkAk :19Gs1YPy*# D4+`Wu9 4\(%л:Ccd[T e~WƜH*8bIZIvdvRPjI4hkhl /&o%ꍀ k O_A(S]o%ꍀ53}6rLaۉ=cg#eS-9߷F~PvI`2V}'aSAT"wxLyȓ |g[vFwѷFxVIURߑba 5/Y|ە|sۮj*:E$~.Dy86+p,e +C!OBe椿O18mlSqp:SaqxI]sӿʘ<#! UbW5RvOq%bVXhFuxUNsCsYgMR@d8Lvc5}tεxd80u|^D.&zZL_H+/t7o׼b&7od[t Mx3'gaO8LQUe3$SVpH ]3k|vI8.1k~*C< 91Zfx ќ|_B顱hth2Х#gt9b/_Ĉ/vخ dR+%qxMySwIBSx]cуXoJg) KIPJ`pSکoL_eqڥtfAy#ctJg/>tpl ϐcZK+\NǺe2ccfWp'ڒve.uj֨jQ r]E[im5O=RFq,%q+:"Vuhe<YHXGk53rL$t+?MBNSIjg]In]UR2r7V!tˠ\߃NVҟkշn˦*^FuDZ<*MJ[5?#fy[5>̨?K`I^`56D٢*S7u -[}^ǭo zl*+wwN)afFAŽU IERZto6 @&}ͅZjh6mz]L^Km]g+pNSKX:!?O=A/w2BJ  ˗ -%3( 0E$>ȭatAT\c׼5I'Ny6^-_7n^鱪nTmnj߶79p0&1q2CYޖ~[Mzr.',tTrBL ֍ 9sBk9V7m""[K8HQ5]ሓDX"sM>s|CA4<5EnG9R^~o^і='w~d,KcFRTr3@V|6Ņn24nĕϥK1 yp/h/qqKrrdR+F5'H~K]^lF u}`HGvOLGHA =fHCDHu?n~^ Q@J {'|4[ޠav XAoX7}gź`0Lt&B579-;6k}j=xt먛&AVr~WdՇ7v^1R6 $׹÷9 z.D- m"hC>t,[ ~'14tBD<" "J[f 3wdølKH1/D:) ]w+?y[98jc.^ii9i_q+@<,h}F3 [1e-Sp'OkPVmLc &h_+/zFyޱ'p IAC?BgJ~IF#gW7imívY5$$mx>.Dc! dqg@_Ftf6Xz53nK1sѱNh2NnǽYhc-mm%msOJS0Q>蹌(S˩o<>3W8nlZ+5B>toLox4(.j[))MS_Qh]vv=x&ΨJ?goa&u".՝шx1,2UOr*d`r6R4ݼnDE\ 8Jv~m,œZL3,hdte7m#Lqm8d{[UϭJ ?hn4ZBv6LgQ% vq2+)"ߎЕ:l!b?--beYfF 6tCH9)'m/ ˡ/a%&7VaGphIBH3pʘ.JetCOÅI!8|IgpV b3|aDR\=Xs-{|Zn>]΢Y ePjNg#f 8?ig4QB\ !,apqy7R4zcKJ`8ÁcKT8cKT9ͱ%+_aCf ,(`~`1`&ؒP]1ulI )$4ۃ8ƪN0v1 ^Rp)^fSf"-q/4CigTݺ`GRޖi, ~D>y[Z^5McSZʵIKr%O(U+ m56 ұ5cCI5]{vX1ן#qs37}7Ům(l C_;im {SiY[Ykԃ=  qk i/di v 9ͨ^^;B:N&ft%_A.>AkhB ie- ܼmzxЬVz;:ҦS=L+s eFR~0Wm CqLӂݫ a5yc{>M &zG >O>oخώ޽w׷ZL+zz~C ơX:I}kӼ76lu!كT 2S[L[zy>` T@^flCg> 4!\*Ҽ:A;t ck{38bt'E4$1[ 2t/8Fap VxYsR87Fs5\FH5m͚]`LpJ"j μSУ Q)p91c|zbiَ|A[#=ru3ĖF9~D4g؜PaJguc(uP i$`5 H1 $Nrv~htRShxbT3,I=m04 vF2K
,3H={Zx`NҏNMK%774uS 酂.l*LX^mSgdFLܿ)wL+o>ol_cn˛j d2],1ĭHa'2TxLt1 Hs;Df"0V_+y3i|=1^8m0=CfccȌ$ s|t$P9)8Ɔ>7s5X(x$# ϝ]'a4))'9d$g1,0Bq[?sJZuf>l6ep78jZ!^t;[|gdW?$?CgCB$Cܠ.aV뢆Gl`ZK oR )hvUf oc(r/Ȇ6] C4<Ş=k_MT>pN^7K*0a))4`(/آg^N9I]ՖVYrx@I^"Pux0FIq/l&Id4tݶSev11ӑXW#d%<'vx4_ReMM[G 搒1:ݧSʵm6Ȅy09ۭY8U~48PD[P|_Sk u'}E9pW6LU(,ѓOBB3YXK;TWmGBg /s\ U}z%ŴI^Y>`?<kYZZY@hST}6X&gr^`?{G_HSyUalZP\HRI2{!A~GȊlgN6dyy$m4cU.Lgk#khwTe`]LJf&}d',nU=ߢTa7]S#D} vmI8nκ[m[ڍl.m9E<) KrXF>7yA~j'y-eoQ2c21qpJDio'24HȠ/qh%qYKԻ͵L3  hJ&¨C"&,-KΩֿ;PVHRlYmRn2 2x"?N&|ﶺgUiI<;+ey#8#,~DHy1| ᣦ9xY>*l Yu lkR789f,!Z-C6pKJ= t?3s>ymIx`9Kkߖ~\%` ݖbhs.\[bxFBS #a!It[kBG1ڐQ.Gz9B ۓ3x&\mMXK]l,YոƊ>Kd7Vn`o +ћx,vh3)YzZebnb\f&e-`]Q\HL҂5xEk4O[i XPp5@XH2@tVC硘'%ѳ2NY9}gYk.^2ZKP3e괖~-߶ɆAT.`i A[/dAUH4IJޑ TnV[M.!{nU>/b-ꑹ㑾w$˨Nno]7@D̠ F/T *>bCꚛ95 gH8GӪTW@4-XMaPds~ 6Rn0O4Q<$KZ,XԴA eIEk`53yelGf~)K\4s5w-j,l4:A4$,$z}D7J-Y4mByN H.v";5&g\҆ d^ol=l%Ah*ǜS :SI6ВAD/A[cY LBذg&mVBBoplbR2hfp-)*\Pq\O!%n(16٢Qd !n mLfYxM)l!"C*ıC3tƶAUC 'CzVِzQ,Qu/)1t߳K&0*Q=G͝J)f/Y:Ɨ۪)fDQg,eA0o B\󠭳Փ14xgml1~Б@9F㦣 н=ӨМ-,*n3-lAQ%r^NM .m#.<4ႆ.*;u6 v`h?OY6m]M3|I'XmUE1?qh+w{ Ԇs8E9y6YysЬdi)2/b-4[@; l-6lކ%,h^hh,J/Qg2RN56S w:6+LH̦CʹmVX-tc ,Hrulv,Fib}o#He4iE+5>4qkm6?Y. &%nÞuP6yPFE5xO?mK"$8QWCVg^@ZچSwբo.̈́Dߞ?Z0= TcO?SjS顭IzgFAƍUևlC4,{h6)+Hrg8d&dbι?2M+$k]v?G$ uM?lgW6Fm: d5?XM?mgKPf5F]\c9s-g%bL>Q.9Ȍe"LyeГF=[dM DCyPȾt,j$ =`ԷeI#K_5BYٰ{&2o:D؇0a勲سrǠgCA_g/gC mSVK\~ 0ژtHFX+ݦܠm1M,y&q!A#]p m dF{a4􀑍CDZyˠmQ$hI!f|9'ZSh{-q2 xZf_p{m5L8JZ@"\ !It=6bI{%esȜ NR.:&ظkI6kqqwdy %:]A'=&,ק`䅶zrc%m-1㾥s7dkC}KnȲ mj ,#iB hJD\`hKk`SŸC[YÞ9UAF$?oSEȖ" <;aX4 iPf - (pdz<ؒ'xN|iڸ /$O5ї *; uʢ*&eKKBR[ O]Pj`o9 $ЍɄĖ*VA3YuoSp(=@m/EpSNk(//\A2G%ep3o,'O$) s-1ɩlZy\ ,-ɪ]_ 4%ϒ2_\.M/Om9MKMRlp#l84as T0Mul_΅]dh!k^]\C{({^{]f2[hy*^eT/xz9 _m9˩lhOk)9mNY m}yeT ϸfhKhlsm)J; my%.7 V64ǿؒvkvAehZa^q mzy]K|}DZa6<_YBӈ\NQC3 )!ytJB}$/dK\Hy9_=4*+Ü024 |swXB8.x/ZBcyCKw{N]CKx@C{-2[B⒵PTl32 E%=Ӵōs%-Hc 삦|w%B^K@3 P=Kkc _k3o }0,Itn.4YHUFatk%edBuI>b7ת M=K~J%K^nh3YS<wͩ6ޫ.4BxXtHu =` ;"׿Xn M/C]hZ}O\s>MM/t˱)24, BbIw1 ͧ/DH<6R9Q6 no-xEb} D M/o H*0ޅfodRZi*N$%gSz,צ\aLnh&}!n\+Ņº62?N/'.4e׵Qqڠ@+h|!\)]_Tv}sF @=f$ku̅@v64#YRdW&XF緒YANhF|Ok%n6[s!{ Q! n~ C^DI)Cs,!  xu6PX%ФB9Ȥ tY38}=b 3L~`4wMRB澹D9ob́و_ozͯ/tz^<6ׁ_x"dh{!\,$6=\^+/6WϷ̓KJ mq@\R)qQ6zݑ+ti VA y-!bQT ?hb|frSP k 3Rql^o{ ^Elh|!l)'q.}FBx6.4 's۬/G:ۜRa_~19VFiR桵0D=3Fy@m5fc2_n~\o#oU|~ P0ghCT\7V2$e뒕2,wy_Y.W^C%{o.~Fyڃ .?QkWʺ{x" @.46DvI"ݣ,\)'霾Kh:4*c$0rԘwsd!=Υ6^ ?ot\:O=1ob_;a~A\;ndvGx|Z[Nlu.7{ƆKm.p,xY:uMoq׮vî]rGzAKڍLtG]̵0k3\zpevOooP`*CBy~ǐD6u*>4uo^d<5Zo_=*{׃ TY 3DVM=D7"r@7뙂+Q*= 3yߦ^w g t6a",x77νMɊ+֛,,ԛwpE+Y05hz7d|ܼ~P`9 _A{ؒߦlÐ_ WTJ_yac>Hݿ0v qeGfRAo?f' Q0{-,PȦaex3NI295 +(bJg"B+&#sJalAfˌŏ /Ծ(7"6FsEkϑ7+]3Wn %}y8%޶l<]CHq+B),:M/ގP\@ *ﭻ?hS>_7Ó* E^\dOa\ܢ̒kS"ٴh{ͦ b8@t}O86JxBzϵ5Ozv}kd^{l[ٙp“1G6xUn۲MK HAIyx?]nq㸿W~?%̃I>N|EKbQIՒNͧ? A~$   H Qz H2Ò(UG&iÐE21dR|V,qƐR0WiSώe2FK]p,e>x:āoyESajl 9 R 5KtAhW%NktQσ徃l/}}Ib7A-qjJʐJUsօ0.F~b] #48 p@qJ)2+S F\F\5T8Fճַ=[qtٵGz O]`;=\VڱCasS\-0 %< "3qH.O9Cg$q: 87kXc4Ыch! G{ tVnG*>^`, hZ`spOx:(h,1s,kN{[ H XI:<(yzk9q[R/' p$2H{ٹ9ܺQ7Ia K~>'y m8klq.`A,B;58bډPmD EwJWA`0q:WE!H]r|[\˰3&K;n@XtulIkY38.Q7+tT;,c3q) G;R NWwf!2":^{AF┓a,(# #AX/x@[0KDwg$.c>4$. أIV2#hF}Ø{'Qg=7C"pcO-TA[dvR.nZ#qN](>j,$C" ن$Ƀ:!vD 4MIԧ#n`ĵu)W9l;Az/jn;EpC*YkrN܏YGLdI9.=il'u҆;afPDŽƠpY OqNCAr᥎ y/V~BdoFiSG8>1' K {8]#%KqO2F&ғa,С}J",_]w2B,K:!v.dFy3Wwb>*Lz{R<X;8xlxvRjٷpg.]( ]--`)2lXz֘`7&u{<0RwD]A!ؿ`qoPV'H>c0~nܥL^^,1x{.\ :si1_m$EcyA<nYfppn&xCi1Z`3t[‰t-`شm4A4MxPMGEhow 1+c}KUa8qq/ Vv]y-?7F"~)\UڅwMT1]$k. =ts.@Iw)Wc볖:*`:*Ȋ.6!=$p{Vnhn36Vt}̠b6 ԙ!&˺SIG7+5N/U%ܗj:t -"-h|R_W#d#:nkz\OFF`=Yj"00k`EGn?v;9BєSwJ33_0#3 @JC}5ڨ(7 Xr4JM|ذq)-|-?5T| sʛ$"}&#V_]l<R:UywFgv;<1`W*1]bi?$N+HrV /_>ǧD;&ۯ_/r_suˋ]_|,?>K귋?n?^ޤ:zsq{{)/|yI}_Qy"=Qg܅|sP 2楲%@OT @jд scYNѐ*5]GI`% [jy1S ^57' ^$X)@}n Z4:$KO0@rLd1t<))gm]=}61UI&FG`kQޤ + >G=`BAVn~bve}d5gBgθ\ʂ.GԴcglH+i帨uԟH/yrܰp'(7[AC9wrJa`S2m#;ݶ Jzl.m4tr}x1$D9$WSNjidJm{c̥\T0ɔɭ\JwRbې3)j"ܤLnOw[!VK l4 Yog+,lջB5fFQ!|ԕ@hBғ k8#f/nzUKVfͨ!m- z{# kl*R莒 9g}C~ċ9B+u8h+Z|2A'F} EK謒)4:`v̜"H}y ;9M*?)}N8+')ޚ$n6)$)l{6WZAB%9ؔYcNW1m2WD{ĠO:N:`0^E y)rp90X~  B$.wF+.!uq+߸[(i 9ԥ`߆Yt^I]m8N>/åbq:p @nڅZazĠo:#QӮ84B܃QF 7f3;P`VJ~7sZCE6sJw:;O]estR?۝wF̮IM t]Ӂ׮sԂv ^Ic=ZI 2u|dx߳'?5qEY~T#@ء8R8Ao;N+XCjWS;wеT%/~2n*owh+ZdYp\6e-qB9ow a1@ 2!@yk2ʝ#V5f*zGd*i$Vl SPR-$t[aSG2.x[C$ I O,ž޴7@ RJֹkӋۯfz%J;Rrmeh@kKħ>zK|%R_=ً8Ȳ> 7X[J]e&r%KI~HRkh=~@{l&fST 5~ \yrf .#5_-,bwj1 SZ[Y\\ƟְShܶL]q&:"%^d8ϩ]ҟAvؖplX.uLZIؖxRX$,C-&cP,f +u>t٨ lA%2<⎏ڋ3fv@^9LbPlm[ wM0ٓ.}dޱȪkA;Ytז`˔:GEik:}Я3 \X-  ŭ k_y`dc0^@w wAPMPZ>ܲv,^Z ;#bj2#Ч%jbk2y`Mu)Q/[M tF 큥vf`Lr55RYs0Ρ"ZQu;iT?rFt??au֕[CCRM]0)di/[Y& F?%Ckz أz`t-EKUM'`v~C]}:Ӌ)g\&ϡ>1v{92to,ƚ9]Ij1uu DKF-cu9Hw sK;`$ w=2jC]}1tTb7j6#[{.+eBԥgBcV\ F? &^bj6C跻;¥`]&ZjWjF9l[{u]MV+`õڗZ󯻭c\=q]6!=zI s_6PRGÝEbPWHEcPGEto=C]}7!QWHMFm6s ;dfDn3ZڣJTm@.>rRj n,"K9H3K)(|Hgډjf-AJA-஢A/ජA'ζ*(~n%Q^^pQڀI]|04;P]8CmX3ep ]ZC9KVPI e vwAfQGpлd1%I RW6_A֔;.]fEEpGedEԕ̝tZԥ̝XAKݱx]E;L$9#%lCP5wFpge™֊H]Ҝ#K3K%̿[I;q`ԛߤ0T~Q3wFpo#+3ȊHks`ԛ'eʷHQ0wFp'PX'VВQp7P}i&dEG*n (YR?!gV9΃uѹ϶̊͢.g.ڕrV*b-( Pj?ʁ[;BghGN vI5 ?Ìd{ɝ%g;JpOJĔB>1K]q us`|JRkw\"CGvdK pKoalmp+;.ۓo1Rw\';I.uq {ZHQrf,[0j/­<=%qRh(x66\ #\8G ƥ-pEHyi0pύ&&.umqv}ZAJ7;78 -]Jq;ckӊD]Fý: %9J0ȝlY٘SWwpóPwpdkeR0Xwn04rr"+T\ny AXJ&G4pڌ.QW X6l+;cfʬ乻EÝ1t3-J[)up ~Lp,l˩;h3vӖ٥qQn_&Qq ^r' Y w;@َ"6;Q^4wۭ#tߎ| NpJ:Mƙ k~;iS? . nRCQ,/v@ ٛ,Ow߿#H%nDSRI_}iC=4~T`6' ]oIH*/ #rB$vuE$yݐ,Rh>iS09enB%c #sf$ݥA|~X|/y₆dd#uFUcD0|rov,U Z=!n2 7{\C < 4" &NޕL[nCs pcxB6v"9 a,sݹF'rש|qO0Rg6eanPub5b 1ROL#=FCCӠ^I??o%f=zeԟzo8o[odoꂰb^C 3v@0ԗW=@@Ļ/xq>WOAW3|E^'-?aΞqS8g.,%^6@|5N>vS)q|N=.O~8Uςg4~SkGxS-lx3M~c,LoBO>8{_>ȏ7>|Fl|C6c5v5O1BX@[8_R@_ ߡO{Ej( MG:F?=!Isn0,2!i09YÐw< N+Qڟ]\Sb\Λvה,nU,yӓ 7}8j} p(Qo'M]n]V=73;ڭCer^>#VejU/!spts XGƗɸ,+䴞WMg}V~/aܮaլ=uvC6fW Jj62x:OZ]+s 'zDmpA=PSy6\! sҗ4C+qv֝8;e5~Br"-?v]u%}HƑs-WOwL 7L\fRNi`vR(́l,E.$1K fR7dZ*NWbaUY Ҍo7F5^)0^ XNm Cs21=-{Qt%.`xۏwM 革mdLМ\~wҟ5j*칇a8$=sG>c{h{qA#{0C-6Nǰ@Kf A:e[UͶg3V~ɲMً~ :j}N#J#ۜMEH߶cҕJEqnPk=V |F4&A >@Q=-f\c0savfԁ1s62 _ tGf=eiRPYʏ4&f5rtÁۦ c@'&>O4u8$i˧䬒` #RҠstF۬ʁeg P#aE͑`p0d_o^dF_Y*N?_ U>3+(30Q*LóH'w=ŧ+rq2e_ŭ7eݯrGgO˪s]fH|қC VٕlЎNNx%JIhDO6Jv,^2}β@Uz` iNQuRt,]fCyⒹ쇒 >cݳ'#zwpȟCJCiЧ Tp,/֠: R&:]{#X7|N?cJ3  I/wɎcʺ`^cg "fg&G?‚:rpXՋ͹r$biȰfǶzk5H|%=z*zUO|+Hle [UǴUth䭚WP^ 3*yl|юI&w9 U <!n?>q>!uf~aQ?<=&]c{q0Q?=G>^#7kI?1)KOoDNMPD3ƪb[CEDEc%k8 sMSDBW6,dJ0©JDpuGdAqS%'֙ьc^/ZJl<^CP8]P"ٺVB4g(_wH*h>G>:HkpC3 GnP!y6jghSFc; }.}*_pTmH HAS/25EF}?D*砱ԥTLSowRȮUY!^ШU*wʍWī\*7 zS!rï:mӕmǟHmӼGY6)I:%¶, pX<3rW4vBSK|^MVICtQќ T9ٵfz JJDbZz6p|L7d%E"a}&;/: Ks qՙyل6!7j/>N&DQ>J'37ȳ&zwj-9ه( 8Ds x?&;('roN<٭@3З5 hz,E$R1'N^㛪dmP5|x[q?*3lkdŶ(Q\DGUV~.rG\wMv^LGcS@3My{3;?b8 wi}3;?n'YNK89PX"InBKt|ŊU_;~z Jӫ5%%z'J*qݍF^߫J:+HAUz?w3^̴'-%?RƟfB8:7zp#ttu#G} ~jmm^Տ:9YmY##B7_c})nMAh9@2>b4 ҥO48' LIb==q>Gf^m2Vb'a#[YG`d$Dk4% }h^du5`PgUho 8e;3,BWSє6JG9jD޼dUX*֟biN/q\F[IAi<0Lmn 7?۲@rfgo8Q9u3( Lg2Yk{.c!x(|żClrC7ΐ ?)VtdrCVC &e*_LjJ:F׹Zv.ey$6ՔU Ț{i6#3!"(:Q 'C׹CʩHklgG72yP̻DNMnNw>e)aTi-QP˦XY_b~Uz6 c)DjWmylJ60<nymC UpHDb 56rPBo{GWEC&o>1y}ɛ;o~ZIءaε@uU!:N9Ԙ*r&1=>Y('K2[-6m;|1ji?C_K! _{:&v|^|?#zQQZ`Do8d#K3&?\j,{#FှrL.*L-R|#.]p?xʿ\,e"~'~2s7Ǿr^T?_,\p{)y{/݊-qIyԏ(d&" }2|HV9i/+pbA?+D@x}ԭCK9엨7)6=suE̽9A87ne`|,EC;޺s֓ C`=ׯb/ml'T-6{2N*svr"6{ 9{>{A^u";X+d=`d=XWd-m9.S]uk&rdbEݨC/uha9F\2tbb~4@&(yS?؞ūg᯽܂5S,>L߼6r=dk$>Gr#Ң`ABx#0+W؍:=`|iUR2I7$92PՖhrw!EyrgZ2iY UWzYv,:TynP2%JE dT:L7xzɸ%qsЭx% :Q+ y!NLSfMeEǁ.8fN>S+WO!N f,{UݽAgOpZ)ud7Y߽MТ֑Wz@mY{Cz,Ys6'4}&"w+wi( 8bo^G5o%udfuqD#7=#JI\s# 0 2oBE2H D† ʎ BlzȔޡ1 aד 0U8Lt]H[4%]"ѭfqWZsH֝C3PB8ϮS2Z:ZLkdMSo]EY*>12M/@עW s r]"Y9Ps_ݧ{Gkmsk4DH" Q޼2$ZG=.*U e*Zu/[!;X̆L Syt_IpߤTvQgCNlQ@z @RMu+^[17'tmԵ>Ꚓcbi;bŵ9EnGUhkW zsT"oOkkl2fxDVF7MAEK/;N~QZ6"xHYiMBU7uw1'1 vdLjB2J>ms0=2#$qMt-b%=?xNU5ΐff*fۉ5[`$PVɸ3$չ!l+8ȰP1FY=ZVaJ¦Œfc }9m4g蜷)/LdihUpjJ`{Y,y0PzdYYn* .C5 JKfQuWRwɜn7$GY/BWO*!CiP?HE#H- R2 ] -47? W3%khNfclw )-eJIаv6?!͉K$5w[@!kYqjZg1AvCvR2"YZ#MVSk4НZ#ս\oufƏA|0I $ !-X_bV*xT(IR҇G(OZ#rc*\cG!7ypj Lz_VNobafyEM / 򾼉u;&i|{HV/h)Ot2?O9B}njgt0ퟒt%9_DSiLtQՀ%**֦t9g6aCbg$Ja#|Ĕ6ϫ -z4}]{껝z쐔$"2ΐ ߃.a` RJ:/^f謣͋f6wIUuOuð/ɱ²bdZJZg,*+e(l)j gt?~n#Zq ֩n04yyĞԲ-";=matD+UĞ7".y{{ˢWX(!3xkyTćY]4|d҅Abf"٣U ٕRWxYN|c# v~g asL^z4fE3־թfgk[7})9|uhdQu?b8L7)982gc(Eƈ%|V4/@*,VZWmWz"[}<@PHL(NU$]"E$ 븶OۊV̭V%V/Ad= I?5Ր] %>J}=U ˡbE; PR7QV"Q DcP:`Ѻè!vJe/Uyy&s黲д4iF8Y1Okz}lj[>z`I r㋗I#VF{ F䱺Tw,[,ij/Tcd浧8#^3Wc[d: 8,1ϑ܏iHttAN .!l  Ɂ_NPjLjSlU&-oT,ݶ"AdtJ _p,+{7&)E6KdKQ}CIIHCiԿS"xI4?P#Dtc-Arnnhfd-ҥ\iSÞ@Ju^V]($ClDiPo6Cfmy1bO7ۼo=q>%iJ+S1&6/Y.~'F+JT\jBsLvĈDNfsĺ$VIw{rZ5qMH c~੫}\g!ğH=&!)c%j"5RZvADMmB)%~#WYK 9fߗl+qMŮM}KEv/RS7&Yc~ ΎP(<3ӇR?g6eFKFJ)b֜at4"gFIٙ>8;ѐE?ggbi]9dӅҺw1y{ߧ) ūDzzLvRBZh嚍 |R 7I|GM@u~K8OV])!dk*Kc0琹,TlLgr^]_UB|8&& XOϤ䤕r{.4Z`5)w8\J㣁H&0:1`$?i=X3V٣eW;Vxq/>Rݴ@Q1Rm^^u/Д!™vÒ!Ts*$+PvDn S%rDShL!ThU}m!2ȴQwIE8mu%vEG"#lIԾhP*-ʟjOIAt?Ӆ$z:dM[]X/H aOt`K%oa|bBeA\Ib۫ \'IF4†$amLo, ֗! E R/dڦPP"f]$/lˆ uZA 6cګA@;)UNYmtZ_7$؉{"v6Ē& {Ż0e^۟l;(@H@'x>Ē! _7O&fOФBa&̲YARC0M01I$Bp>%4PcaN{6kQÿ?h1?CgB /8puQ?F؆1 [>fH–7u-T8#7үCQco( ',) gQ#vй B$Atyw\[N=ny]PAS J[Y? WnQNc82 b=S!sLrs9@pBvskX|*NtQ gB NW? FV"fA`;5x4Ĕ|}< b>Ihb~M8}G eUNv벌}C'60ذ<\jj~9"f٤G{Ln|<&& ?t%O Y15j ɻP?$yIbҝ7Ol њ,^BQ>6=6j_ KJ >߭9n](;[B;Hcn5`ÍljuXCA8J mS,dB0heuA8WF6np04„9بӃ]K{`j|7b_'ȽGn"LFa„@Y @J >a>֗@a;,٥>V \(N$oY^ vfVAy* 猹20ǧ[$y_$Ka+P"}^`/S&oN =RsC^:?+1y={gyү)P(-JkLWjBWFKkZ"bK~q)ՋY#Q`hs*i߆#Yϝ͉Ou1nqBT55ֽ[5oU){U m$ B6،%ݫR ]Gtב+}՘fPs]MnY) 8 uꖒmhXr~)z#6VJIoCO#`-٫XH4>!^5a iU,$>k0CX&tv1sGbA(MtBEzP٫XHd8*Bѡ WsZQګ* PE[[sw:#UöV_ƪ^U m.`})s0xp\ikńֱT:1=2cn}j( 1׎43q>Щa;dx+m@ mꐒm& {g?ZS2/6%EԤgU+!+XYͭz/?ޟFZTI^jGRƓu e1$ VL},@8"@ʔ42=q3Al4LW(_KDݗ2'0gatzrXvՑF"o6PfgvIJWTi$,T+osV"D-=X>2iJ1ꕕugc c4USiȿњfFJSEpDak~./~mK>D@)ˤ%d;PC>DN`+]O Hgv<{!iB_䩧\Aa[|¸uZj'T|2?T[3.oqI$jC鍧c ͆m,EEa]&Y3|_wA&]8C jkia,\cg.lj3ҝLAb&V FEQS.4#׾"N$ *Af VBL&M@GPƀNaa&[qJ Uqi*ldAAG5VE .cX?Z[_r0Uqֆ'tmnEm*vd~T(s5 ՄK&O5xBJa'3bSr_Γ-Dg il,ӽLc :Sb37ZS̤] $;Vm$<&)p?x&?پÝ\p?z'a|FFIg%=X:}*C縛 PШ#wG92広(Cw@iuN./bG+ h ɋ#/zNlOt*%.}Z+]ZȂyĽ.IQՅD@@|b0EJ;&Y"9oNq*Im) D"Q% u w@DK N@Kvէ o-1t\s~e[kr*),,Ț QS%%:7>w,rsֺ$xD^_ %_ƓUte,I$ڐŌRM0˜5>-R !ŔS!;8 n\aYHxI PB8n]SbII,!p48SR0*ӳ)r[~FSM:eJP(SbIIlAD mxT 4<30c_d]xC>X̏Q۶/b'PD-m7-L xYP}`LHs[? BP:Q * O1!XcZ "wh<oQ`fx `0^ Wо7kvKb1E.uY A#Ѱ;IBKTl!8dy˾ā!Z!4PPN~;8T|/j+Jt9O5զZ sxqEEZ3M~ &x)vj$ H d1{ Ibz(E]puޏnqTKh$4\ EfˀYq0_A&KF1ⵙ2FP殱@ce8r^ M"m?Rq(^drbRy #]<Ki5#$9[RK8ȳS{|(K%1*X\\`%$1U O/2/+ᚈ ?2RtmKF ϥG'dt˾3ikWlU"4ɇu\h0jK\C#Hos&.x#gيB 6_@`4z8[[_T+pEDUVDn nZ0x6aAE$*4Y^>;/Om}y~ ' wBu%uFݲҗG-޲qgO]ĠX})KJ^cR^JP+%q%nVCt4%3rGm]ʐ1sE{uR3 8ӈA&{ )k~I(Zo e0 tЏ/i)r=æ*3z.& ' {!ҡB'ZMғ8lӴ6H:ĞVQV} .ɜS\'2I/WցrVӺ_Nz*3ɬW7;Rώe9[82\q밎SY,RqF&JCѬ-=8PwtR8Ԛ<5 q^ܲDK67d̡UAID6GP,`uR \/b=x KaIGi+60 uZ /wиhjUEuԟc]OWc7/:Z R&E5Q*QFsG(I*XyɌ(dFǺN,`x7IĿ ^|cJa@բF`D(\lYlLֹ%fqs((JRcZd̯W^i7\uq߱JRb,t8.v==Z4|dRcj4O6u7qƔn!R#*/&kާ&O7E'U IhF*]kR՘zu;\Y hTH@4gL5?xkބiIUe %'DniﱖOp#xDw(όiu% 2 (`T rP}3$su+H``Ua jM#Yrvw)'~X|/X*`:<;-8xu.P0OdgA57'Q)& IċZ[R*EE:t:N{6 RcՍ7d MT"Tien\&GeH82B  C!w*!<$UV4Au%kp?fZ[{ܛdt5!MQ"a ~85 )ES#R3UO1pu8#uvL!Gl0mk.7]d!.#kԺr) ͆B%8[ #}$uun^&U[sfBn Ty:@-d 86 Qc3q &|d:qMjH&3r(RBEBqtFM2rRS.aNq*RCVU2#Ħs }MYZd><T鹐DS8D+ޖ_XИGX=7z43xhr%>;x/ןqYKC}t_/Y"85!]z2>2)d4Rv筚 _X.JC{>(6]冨; "f$<:&}C3EʪL?~~Y=d?"gJr.iFOQuɝB_o;IESlV=ĝ -%_D^h"V-ㄶlht)L,JN%@7']_b)E q p#V XU)Q3 pz "64{t6iW譋LHM{TBԼi&m6`p鹣sduktdߔJ! 'Ĝu@6`qB%&Ѐ\{ f{wh:E- gAUhXq(„A#Q<ٳc._bp(/XHBhj/Q8 7IMϑf!U*ʑd uǾv'u#]j O C² D(=^ ʂ:#.z_@:N6B'чyBpYAq9Uz0@-\|BtLeg>̴gݳzէCn9" 7\崘s} ssGpsJj'ğvByc3Mnv G~2l>VߣsFtQb$cJNrFV>RURN@`B1:Ք6n|@ i,TP ~'2Yhߧ4 d9 Ӕ63 i*Xy|-mF՟ jlwyG|Lkjz$*ޏ:8Q7ju&g4pP+e/ +U4n:ZŰ8oh^]=<ZS) ~"::'^ @H_EB"?%W{dLFC@HЗݟ:or`qX+DsS `}m2*ϐ'S+E^0jyΤqs 1G8 pi݋#Y N HT[K*{}{T>@Z̒inؒȻhkC7lэFP/ꗃ@;ZCHvz|8 TG[6=ӱ{k}: ׸W"Y/Cc[I&x<lqgڸ* H񔴺LFHaH(c@)D00n0UjP$W,fib AZ/;[ǠdNt-gH==j/Ƅɿ~h x Û-vCTM GJk1Ɍ*Ǝ4 VJҳ30CI{w,˜hbLd9I#jT^ЯJ1/`Rdh0yRJʞĠH͎(h֍w nIxc^!SQC7aLQ@jRyQd U A*2oꪗ4ՐDdT'(Àͅ(aH gd倚"'OA%XuSqfт^&g{ $,JR>F>]%!S DVǧHiS'nP9CF}:Ӑ6G O0! p tL5ApdqP3$ΘRx4f?=ĎK9Gf^qŀaۡ?طE|R1{D> Vc Ϟl;Ÿ9#^ɊưNFw |~}D>7A_5;R:|q/ Wxãf~\H1pL} /j_UѩHGXE" @᣼p઩MH!2ŅNAgc8['8@EkAB{7")wjnqOHO+9@q/^<䀍 {h?nR!}*RiF뎈nP:-+ iլQϡ4zzں*ũZWEWQ$ǡ& IAZ=@RzQU/e:jb $ҫϐL7ڬTp&fldvV2qlTݙa?Jr&}[sxV{wzE,UM>cE?jrQVU,bAyq45RѡKr(wHjƨ,J EHIG⴬Y^7ЌDEkܐin}BFIOs ea>MY_m,02~[WVXEUO™a~z]P"lAr\!xH&/EEK><(v1.O| ¹޽S:Mh5cdL'ڸًR݋ )U7d4NJJ&{Ie+H Zʙ?݄.88߱bh5;D8~|'A{צq?OeHxF4]ՌiB|&ʠNZ 9}Zq4l20YW|H[$͘(RV\EHy?1-$Gw?v$Y恴'=lB8iFg-THfv%;TQȎ5*p0U?7Ÿ~+V@]nC׸GעP| eT2s*It+C:*7vIt3C:L7°zngXGS](q4m gJSɏ k2-ϠѼ;DfrCO΃H)5(tVyyBUe>̔a$ݛg7Wk-7I)z)W(Ír QTY}[ «n螐'YxKv$җsL~sFW(KvI(4Eў2T١8][h2T&!VFDU~Gɚ"+fcw80Gh=M2?j^5,ٜ(RI3k6HjtJZ";9Z*K9S0`\yrPS97ȷ((^a9Z`4MZϼ5 #ZW 7 rʽA}wjDP{\*GLs1Q)| 綸 VqY!׆ h`pf]kB_CK/( ^b93i9My:3q_pQ_ mXA6j' `XgPqV9ЮV*y?UT!:tDOa;Njr+ މ!ԩ!4uʤ?blV誹۟ckW[fsN$x30S:ZgWol_gqAW?~W 9F*.Ӝz = d.vo0xzW:!UMVO3g0"8KKc^@RB68mCW&p`BJn׽v3p7U'Q9 le\r߿nwwQXx'dI%}lMUzIb C@0ƀ=*YRysIz$5\B6q\a#I- SD-JrLaz @#ejn!ˆF!Y64SlA¶d2^`hC6- V,uoCr 6dFrr7FiCAQ!q!߄Kpgnm#_yx̃۹$ݽy%DI*Xk]beU4 p__+}]bצ1JR98jBc#6r[w䚇Af:&U3B @!'ӁyE/j*=Ķ/3%N%><{2]`CsRg?#e#ThxT-TV(Vj#Jq4q D`  u7Z+ĬYЮUbrcN5 ap%"I[9_o=K[KG ;4-GH>܄YGyqUQ^nǿY@54iгN=r]še"0|\V4pDcWmnωbU"0ǩ"\m&meF5Cw3R {7+ ,"ٲ 0qhۧ:Qrf@ 6 k <)y`m;)VYQwm,^ %ZS DFP4|R;}}ٿo1~`s +ѶihaXDy&՞+b'>(.e\M`{WR`O4Ci c(x% p^g'w, +(N?mV"m% )7>ۧF[x8Dv?X$J8Iԏn`uIt"\i41 [t]% Ǽ~cĿ GƅjE("Lѷ8#m.+Qw9[:!Vm9/ãk#Jh zhOIMvqh3|pd|H<.pgd;k+/go358fyߥM`3&( [\c{s?߼_]| [ aE59A=ܾ *Jܱ51CuTYO|F>&}q7Y? $"4G\ 38=͆EF@d#[<@<]E=yT> &{ ݦgl&1 *#A'f &Z"ϬaimKߧ/,ZA6qzցYljg=OcYnM~*ɌlD<oPWNuMw4p(<TՈ״A3*HWA Q!Cb¼O/ۼ+_7MPBc@zU:`Zth82(т:4Kx@0aGTO C`Cf~$cS  pdNgMW^6,`OuQĭ R%E4(Ql:@=diԡ9=l&A1zX{\Jm<kF uLC،1~ȈJD{|T13wbb Pq"L6KpkaV0/$"J6bx#{F8D''9;:,ZuU>d&Ao%lմ Gx! TP=V]0LE\ᮂA F74:4`n˿%r[ "Exhۍw5ĩMG@XM- Ӗ)on'.9*<V!{5 TNhReo#mrϘz%Jo K➚f"n*$$4s6/x-i?D{~=2i?BJO:6}tՉiot;p'<⻸UqVI~lNbRʭ?m\*A;K:B=d`3DVJou,mWR#2{?vhW#\ Z(?ȋm0l?\e?Iܭ T=RM~3u~ M2/˲+3ǔHEd b(NXܣND[ `p#NDϩ c&,,vs|C_%*mt "&IpEΒs:IY5Bm,UL]ecqh[Ml JEĤ:&V )jȞ94~jsڍtU2״]U^I~sۏ_y{Sߍ=kȧuEcv=" hgD[Y-^wHo,H(.?O2T f9"#4.{IU| AC.lIl锼 4e+A M1X:mDTP)&څ:~!gM( )/X")%TC+=໶ S'=EYpS{F=Lz{sb6{?G(9yU㫆㈹1-Ҡ}ku#!Z'u8DԌH9Rke6FLBMQ7f+#+.>?'_/._ H_ȻnD::ZhBZާɽ=/d/4q 2)yT+FoifxaɷI(*,pWHvDv7J IPľ><*\NڒOZx0'[af=;HC@+_ZX7cg)ud+|3HɮolMRd܃߁{R죃SM`GokKSY2nֿD|f6?Yk {1L",])>_  awo[' o01\Sq]UvZPhwC>c52n=kL-Fs[&gSؽ^~Nl,7ov9*6UF>0qX-8/]C|V'# n*Eyz)X3͹70 xt7wL8 978p7LN>^8)A|cT1,$aq'P ඤc8zsp$%ݓ;e/KuKJu շ+c+W˘ @Ҿw\vf2*6+UND M")d07cAQ { @󮁜Fqj)WRaf( Z2G&E<{Ii/33Xp*ѽ8Z4k$a~fD:\0۲j_τ.‚/Z8̜) lo bhtfC(~"H:͛Dߦ]\iV "-DuQ%!uWxGccR@!¡@k}vj<yuq17)8ƛ PM6=ae#Au8Hp TP$5IB/w3w(G$+ֶqtQ -!IhouؼJ+yTH\@j:OJZLpr=|@yB%0B)((+P@_<3}"CPq zPL>GvRt\ִ=\!SID ~S ^պăbDsOLixup}gS~0$d~jJ<嬆cNq %- W"P= qvnѝF.ұ "dR smvz*XcADC 3^TG`%md5&KG;K ׿Bwj&[BwI[E}1} y+PIaDpQ$&gryN[? 0I}z̃:,@7_SˍjXZ?S+8Ζ?#rIY8oj +W~w?,"c3.~:05/Z)菠-S^. CTս.z!㭄QdKZfG Ą9QniO}|so^ gPeJa3i#wokZf|+sjpRPmK 8qFD aXޚ\Cf @hE;Gv](pZhȐS9`OMO@!m;.IBs;DYѷHBt7q3Y2ԗo[Hވ+>]zl@i D)_B-m:0 ߚ &YKChd~:TzIQU) 7"#O:W;|}/$,|TX)ٜPHRWXNZ.صTɞ0 I{uZ\RxdјrBÂ&sؑM!|L<΋(ٌ*شq!ZVmpؗcoҭVpZecQF4yrȝ8^}*GPr/ IW5™b8=凐;RങxH+;;lXtam5Tuq0]"z3<ƖTtw RLKiՕ40KqfQ @]`K ,xHk/> q#YpkJ&x%|<ACY>n Y>͊x"oEVY;Sh%v!`ăFQ- kަ>GP`Qu` M&гa?&XumĐo8?$WP"7 !+@xh4g3u-|@(})Oz E4ψqJaTYRq rx^!}Xĉ _`3UXAxaNjҼ"nh<48<",}'YR I.CpY,fM14rѼ>jm>3IƩK-hE}gZ7(џ#"ˉ G/+x}B#ˇ(J Q+yv3j)|(SVE)sQ  <.</u_b –\hrI %Ǒ^Tb+ ­Bۇ7{ARQ,wą?'vJuFChX&Y)w 4iU#p3~Rmb x '6X=t=i7Gb1S0p FYߑ3y)qѮMt0<\{!kvaxnлk-^^Q kOrxE 4Kbo@H:}(HttvSUn]!A|Yj5Y; ɥtRlD"a-pIEH+(eD)8hCUP 8n;ԭj^ K"5p/S/tyk 9 _EG'mum5Կ"&0B)tPg!L/a)a(!lF7KkK<.A~5h T> k.4hJ5zg ͠K.^|rY8vi/MmD;, 0B Ƅ`b'iL1p$ SÌkAа&w،\q^R~XQ>P~,MR%Ȼ}usc: h@Z 3iһޖ[ bA4zIZ%[G)h116aeO?F#A_+^.KǸ.)j[5Fh@52O& ߚR7<@CZ afXzKV)"`UGYq0xJ! M$=a!Nq÷}8xSby)I'[Liw[EmKxɫ8K Mq>W7n2$UBZ(,Lr6u"^`-^U~ 'ڱIR I$ 2zwa!,AaXڔ:d ̱&h( u'8֬o 9 AۢT-ZQ↓ n80]Bў;,I}GV0$\5,}m T)cV,,Xe+Dr)tCT_b=!\'DZ/>f| `P%A8hS|r eF㕑g"m Y:4]"h*w\l-DE:W+|o ">bpW7!X'f KhH%TBPʇ7C>LdSQ'PY)qm'qf*zGUWyr7#t^%9/̗_ p"&VPCCbUcA u{v/'{EXDwGYC8KB8tx=O%8T ɲܤI~ So[U;ď| Kuj_Ur>ۻUb|z.um Q: E,;g;qڕ3<˥F=6UXg1GP82{™ԋ?NJCh󺫆ƻ8ˋ NxDhN6soZ>.c`v09,.ei#Mejed@ x4ۢ`J*V'X &[yCrhoڜQz1+}aMF9 (蔡HŋT/NFUބS%|Òg .eúl0ɬKdžXl#IW(bjupu'Y%Y_T+'u] '͟'=ϙcYB34_hc;5֥/O蔡Hq݀:źu+m]z#e8ԡ .D$NjUpH .#߽p b7C\DU3S9ӌܵ+2n]"LI빲q&ŐZ.uZeR#~IQ|AƊbR&E˰wQf]XxkЌsP@Ud1ny4D7сmN=,I>|M Pv!$GQ.8[;I^Lv ^nI.mH vʮW^_(+,BPBu & d0TqDy)#DqEQaMdHfiqC3y[eդO7NylϫYRSyB (B_@_}lڈX*|!`02*bE0љ2I_hsg51fhdrrieaag=b rCWt"gtТ?ґp@OVnx”`qXM"D:^۪F@  NAJSgk.ju Em6줆M /(s+`-r$2YGoC!#OnТq8sn5c^ Yh5pkol*8!uCZ(GNH N_5po9? l÷Ŋ%E/Ckgnn{.G6IڽL"f {;,r4R6 g8_ט29kt[(c9Z۫`vcw -lfT; O~-In!F8 ZsvHy[Ç;Cs]SQ{ Cr{yQf(#ì̻H"낇t!ӂQ齒uחWW2׮'Q-Sy"75̲qHb$P _h%N0sݔMb*j] d9$"RLJ<[}ycP\:N BCB˟!DzL茡C 3~F[$f8iJ} AQ. ο XPP=5cFt`1iSV &ENí8DBb 7%%, Tp}`#iiAl+)4c4(!ecaT:I ]'; 9S,ƈ yh퉛r 84VMuDE'nr}oG8O\}!5$ 炋!^/͗4㼈wLV#I˘81`Us=Bǣ7aqKuTsGHȰ#Wm\YͿki&+K (=R4_؎;và2d76~3FAcx_a*FOļlP;9+RuK#ɉ\a]'iގV)<%l=g6+~<&}mt'Ez~p/JxײNfd@¢(S @gڞ~=.R LMEz~*0%4E^?ҪQ^g?{Y-Jck/5%S:X+RZ?SrSzL*@]rħg⍔!0;hr:Gx+QDȆf 8r6MwC[fE͔f?fL¥?03fs2M89:(54]xd|LVT X‘UtXvVA)!oD)^lipħ~b[]|;]}RMEoXɔTfQEiW 7xhY~Pb /ALVB |(?2.Ðkj?onRuNk̒eR'*)deM fIL$fcHত<\J66zuI(:ȣ]55JEw7/;;it !R)K?jQr2]6pc!u} 9a21l%鱖rppt:Q.^OCUsf軨+%p*,"Bogr>Fߪ#%B̄K(tL,ܔ6p*,@2ΗjEw0KF<_0T<f(7.ʢyؕc7Z4]}5w W-#aMi. XQѢh=mp[ŬƻZř"NWjPޙ4~˂ ϕHSDZk[Ne{h^Stڞ/!xzkswS:L "gbמaO YR_nN_ nbvx(v]P!MdY~(/Q5+YDiG OU)(ބ"o$)!}=ptM>.a]N<~JW\ӘՈpx:ԧJMwC{ B1/JGGc|2C!rH4=ЈH&ЊKgu>P`OV j#uc&Y1lQ`Bz-A:wD͗`}vSQMtrB5Z#&%A|xZނ+ɹU[Ԁ6/,Ph_\'/,_ ~Ѷ1i"[EeZ8,K+ 3gEi؉7k="Njs}zǷT !z)x7h?i7`x~k9 #'D_Ý1U¯hs,Q]noE# v5M {'Wmoz{fAIwk((*zSB-|/*Fb?(G d/ڨYAxŽA4Sv7QEǴ&:BB%%;!S(|;сWǡh1qfjCSqq+w,flEQ>@Pn;TC\pkcSnD(ͷ.eǥ A>=A]~4AuB͇Tr Kϭ,%qbMV˰ v}tJd JsY ⢰(89eddė5쭀;L(8ʲ"zH6&^U?D}4y **0)B n<b] ".t(hڋQ=yn;r]!KJql1!ُ1fѳ+LT@Nn - h*kG=e&gYHABTA.Ļ65Ѵ1" ѿD&4܍K "c>qGf…/ C`@pC2>a}4%ƹK jfYʤk}YPep<vྎ!eqq+O֐>PTiߖI&^#My~L a\oJRa%;-xT"Ȼ*D,MTtZvdZyj88Q|{t]#6wyFU"I!\\D.ew&`JM"31qCI,AFZ җ*c}/("ؼYɟjKHI#uZK͉LZMi_k_tqrr;BQmcs}8Q q* kedndT xTnlfٖLYE1/a5PHlYJiFߎ*RD'¥ E(j( iFfEŖR?+ʯJT426:^ȦC}G}GIpgR"=K곺tiMJZեQd&=}k%}58Dz4y4HjZ֐!Ҩ2\Lȋ"6lGany8&PmZkە}Z:lcFSI~uJ):)#?J< ө(m_ E |܎bJpu>=RN署sKƿPgIYn:@Yn9R?կSf q&1*4} `.o4#8(AAT!!jqsΘj JP` YyD~+ 8,̋ W6m%H OE-7T |D!F4 |ozt4Zxo@ŝ VLBՐ9~Vy2y: QrX_>ej CAh<|1["@ޡ5 w0Ĝ;\>D/nU*V0N:4\gy`T! 7 |{_?Xr(B dPWe};?"i Jp֨'xr!STaN33 g2Smn;`82\v,!& E黸_++KA\9wE$R/@̂s $ k-MF )M"-$ܕ:*M"a[*Ok4 h }EEQPF;Xv0\Yw(({u0QwS6CvR߰8fhWD,iIaJ3֨wi3Ψ/6cjQOkA@OYL'[TfJɦV(7Ŧܔ.*Fb/[ܔ5ErSN0{["ǣ"FDP6,ݛ,Kҁ,TnK^ 0BaڜwQq-.6UJP,ǻ6±I Xm)sY-Z][qGgǛ,ͣMlj cZ!7D;EK5m@Ǎ-Yv@RkanJq.u± 4{{jn=@P½F|_ZNU@MүK OD4<\)^Y[)_>r%UK*Uس?> `IoIO[0YbR>I3kLǃ<6gT}fcu gB TAM6g2M}~9*zD -QCRCږ"Gٗ$7u}Ky0X+>AddMT)/Q#J!TtqSK GGp-P@p7vJfm͝7RK{4xȼH'MʸT񖪥,L=&kWUsVFgtj/2Cοq^Z'<^ɏHZ^$>_8kR'NjhSzQ3 5Ji QI 0x@9t9 *:Q$/`"P?@]%,GIj#D(VjZ|<!Nd"&nJ-DwB^x GpY2ztބpG#=ZiM?R 5mU 7sLz~C:4|EZ ٦$%  %i n/R2A'I%`RhQʼJAXG}Yt=NQߓH. u@4 A l7MQ |oC|uJq5Namm\ p^hDL՗{Zwyv?mV{.1G߰Jo6i;:..EAg*垔[?FuÛAN;0!eÆi;WxR%u zx^.E/-:?sNY#§|bgEۢS·7ppLy *qh[O 풴oj pPk6`]r9kR5= dЂ鰳zdYeKt$Nho'0lvϸx~d> =?dagMakLj5>gKҼ+lha^tKk]nu_7'_`+*(p:ޯ\0rFEq?6[Z:&(=Z9wwa8FYX Xjͯ)}P7jR}+[՛JǴ#dߔ?ͮ1ƒ0I}z̃ i{UifaeIxi+Aelg ``fT*H3% j@Oę4.;CqۙfI杍szxʏ_[S6^?b&-ih̙vm.I%N>_T_'t=8L~Y}6g2?Ff]Fp|G*pEP,Z;??@59S!\ 9 ŒH"ԑا.]ќ0yR4a]` A9ԣ.PySO/$r%;xY 5D/ G\IJ5_ wJ@MRupGcR?ȃ.ӈ&:TFmmƫ,lyZ k~; ?H*$_Hއm+i@7:*~`ME%?FyX>-yŷ0IYhTU0C^mâ՘ZJˣ.R9dhUxQY|{&CHR1`)YT2dgSxs< +_򺼺k#Ǖ%CP7Z6'6sP,a- s9d!U>CNt7&զ2d x wnj78g,3Yh]s!3׬hڍ˥\$ 6sBϒ\K4yd@y+oThnA2* zq?IsOABy\u."ӟ7!ucVfǻ UN.%,yץcּ;C&0%ŘIЬ.b̬w}2ߜŵg{AՑo ^PYdf8, %ÜBd<'K+Io0Yգq={"74}-Z枥/ѿe' ނвٽi=YMҘKϸa4P8ai) ے,3OL@U~_, -ɩt7d*_Ehgh4J{ATi:*#85&"")vq'^ 3#58ޓLÖbzʗ7k2EwԲ9=4A6Ҝs?iW?hfqz} ֱ`^]oaIbԐ+,cC L~% ~Z4ɡk9E-'k;,\|N~KӬm0A? DJyYbdLG7dQps'tL^S惎.#˒ 8KswUj */I u{WtXp:H-MoTP?2PAta@Ǝ|4u4bcZ2j#ιɝ譴Z%2gћ]nE$iP4}IKL^|+Iأ6%z~f^=Ys5L A(ףkwtVSܦV2{|өHH l"rR' Y ٤LY!$N 1HKdYP'P 'kD] :C~&F{R0#6ES\yc!o @c~"rebј+MDx&dYf'2 ln&yXVt99݅#Ruh!O͐kN49厛s?w4ɵ$N`h ~XwTŽxG RQ]TsՔsasS*O~ VoڝJ.&b#)Cfs89f6鑪ihyܘX?XnVZ?ujjټlGI i]O;Ч߿ٖK\!0~YkTd-$k,fO~4N_/>ˌ}+ tY='B<}қp9a~/ЙfMo.8Iso.qXM>oƉo.8zVY{ #x]>bMk_ݖ%hu_?gg=!y][[XnREosޔ5HR%wll9Y> ݧ` G^GqP\zò휩)1Tt,hЧb$U?9愃G4>tJȆ^4*=>]I|w͙Ӈr 2Lr)StI]6clɜ_ckIdIX~#!@O ܒ΋$﮲lzXbavw:zH}biwWDZH^\T !L̋ _RXc\EcrŌ7-2l-^iƷaNRko).yœ;,]{WvZ9 ,1X 5eh؏b[xE=ZXշmY7ܺyg>u%mň JM\7G=~41yshxeǭ{;|t6]r,y6aEX3̍Rmf9ԵR0Dc(6L9Jrl+sh'k?mg2O[*!cDZTiiFgiR-spd6arQUfvΠf6s5>_Rlv0\.uIf-3§m@} slqrAwEѲEGEM>Z˅e=]\^C_4b?`U'&)7]ZtQ\AeN+8cwoҒLE:O=O`"NWrVsp8cɵd~)KX 5$~cZnjG.eP4Ǫ>.a"MJ[eFd3(%gKƫG"ߨwbet=i"r4 o).M]*/kXD &֜Shi ׶0G1c%?34rNڅK蓷9b+o֓ߓVb.)Ƃ-0R.<1 Us޷/8%N=kdvuj):~Oj} x>'gT+8byT$cyn=~Ҍ9i:x|)"#ޖwqֶ2;CזIǬE!N_1ok/眵6_b<_PQ7s(ۅ5֑OwK x8z~trWTNQv(H}p`#y|Iߙ9(ySL?}ű$myܸkk6ΒT3O[! >MNkf]jC6+EgpsPmgjz /o?K@ӣ(>lU9>. &$FXduJ6X:)}XDU'mɢ: BϪNڱRF;=P?P*iюR;$AE2wh너k,b΋}!=I۳k (xؗg.|=`sG=G}=ou3]{ OJ@3Nmi4r3=s럢 ǓvwS&2P)}ajq˗.fbѧVZSf$ps撾,Ó~8Ē+bcXf qTkY YTmLJ8P_ԾM$N%@}[r߅Yka;2#MvCŧNj f͉cEHפlWsM1tKotC>dmX<ɫM?6mBU&rtK_ߥGC%ߦ"͙9G.6{+@a<7n(-*Zo@ %=񾊉C &)7Ku&U7'Ix;?>m\ ^Lmo_9C%4nvi-4˃`h2/WyVE1/?}]p>'g/O X0~6>m1HN+!-g i@HIDQ ~ m )#zUl9ਔr;ᘺ8+ƆykEe]I. ^ɹ{M[OP 2J`Ix{?JIF n}O;C.? Ȧ7Ѕ#O$>" $!x=+ӯ.)[kDJv?ѦK5MW/ $[^ sV0962=<^H{o b5@7#n4ȸ0\Qw-ݨtEGR`;o&Y(*\ޠ(4*in EYfFl/o,q)iXvFLj;[<6 D1~G>{mm_@Er}0#ќw}܏rC'2{ANR@P_RE6#LK0 cRߧw>ǫD !: | nP"Z.t3˄%\d rˍJ5k@M)M+ &(a +>J)Cdt0HQ5Aֳe0 J`3,.ߓ,v'X!(&+?i@B$.AXP[f"9{bpp7=K: (A1?F.t?܅jR \eSHɺ s %S1̚B1OʀZrA DHVEfhiN7p VG(| 8,%%!}3?rAo_Rk`GyQbJCꜼĬ?d:]+ %E _D朓qkpKЯv|I-te$Z!$NYi@UI ^WCox` ʷ>:Z`^pʷYT(=\ojiXkⵦXk{j az Y~HpgOV ]Qڽgɷ%C'Qm/8%z f>18a#P,c03z8&#dDM7s(]fnԑ?;kEnM <}qxMn bz/hJEs41L뢢r^tiDqWfAY_1mmq 4 )V/Xˇ0Np*pZi8Tx#HԤh4xKJu0w@H?0) 97iɜRonJj5MA" y˿<ٱ$&ƛo`> @cB9m)S /}w(!rpBv:P1꣏lu4JDH&R܅jJ(py(!.yAz밚["#+Sq5Sd+\;=-xGMS`ua.TSbjz1 W^V7kA&+,fhK %24M4vEѰtt,p0Ќs(~RcKQ#A@hSaA@z—_Hw`G>hsNOO3󑽉JyQr֩鰈Z' 0zQ?"T˘dgA)er@4G:gt0@tBcayWF*% +֬n0NYA1Ec4y&I<*,Use\ =2M $-Q@fæ3loU6Ȫ6҂WphNDw5ޤ$ưmk$ 1slT|LqccJ'udQ[q`5o~(X~XMdw1isfK5 rn׉tۆ$>*XTCbU괋>} t~$Uり1?PT^_޸OiC^ n#[m%gY@}E3z Q|=9fRU-`to4]9؀ Up -EwT! >v߁fjA詢T #g>s 2,^D@K4(PVCGO!|QzUJK#@v3LR7Z…P4jΑOaGPb<<_ *㦨_ZR*PSOڳ㡭s/Dn"eo 77]\yۏ"h./~s24K^uB\y}i|q_P3Eed Hƨ[6ǼHA5DA")YG_1'+S bh[Ʉ:h}ͱehxYh[I淢v2V)]W&Iw-}SS9CAPTh(pxz{sP֐R3֚xS%uQʼnܙ8#\NHY?]'[ Ư:TuۃK V_j8q=0^x7 e`ZH]|2\ r9Qd:Sδ'*gԁ3m 3I3L0x]f4Q]V+?]\ڿI-'jp*hdY0[)f m#իE=a^wjidau:RKHӠ*xP2^ǂ^E v~!&1ЂhAC\i!+|}}oPyRq?#a|BpF/ns2)x#^ )GB0DJga{VHB9A]PG#BC,`&v 2BEL+N@y4@ $I ./Gq\X$0cԘi>.*.O}+okK:iL8O_-(4Kd~SrZ.ͮ06ܨӍKN-pAےr6/Ysܬ59n>XR2I+EffQPو{ qxaN`{ `5 >j>Y>~L,D0j>jn30vcr,|3h`PbB1_˶.IY@ B˳Ln/Q1 }G]9tVkJ~Tڠ&3~NSbcz['CHL*#)TL%bBjMXvcʋ%gb&i&:tiwOoLQs-PϱYIݵ%n[Pp|my,(+5$QQméƝ?M+!u@vOk}J"t¼_] } 4]ؓ%e푙{a8hmvE\p>FK^/5xiƿKm1U 'h1{=)  ̖8xjȊ. G%#|~$79￘l?&cikl +EE$LV&$yǛD]5Ѧӻʳ' wU$ryMQZK%P@BP5%b] roSxoCl5%PcU~$ P$]]ks( O[{`f!XpyNozdP$#Jo`KłV'6N?+wZ/IцT@?G4֗EIÇ䖷-GxjG_{l%THQC2WMa@,i8wY@'5q\ΐצCSg9W^9Znh 9Z.:G:h5?'i IVZh|!OZT7?r怸bqŇ;"_dտ;KLiHLdkM!Y`Ԕ9Q|n46؀ZFWfO5Jbc@ W2{,21/Vj)D{Er: MJyhAAP çqo+Z#ÎC!:  !WHbddw`jJo#\Ib\Q bQOnj<| "[>mr 7E hR,W 5DhՠGF4Pm c+,*%'\>4|p<|Ns#tBzQHfX;V̢N:SU> `@\a!}M8JQh/.6ʭ n#+Pyz|Zjr=e2A2&lAbr]E&?@͗i>l|jzw*[.45uAIkp-?=We9 GJ;QD #IejRxGZzF:KuykcuToO 陼rV¶h$J"FNfRDMLrCr_f! `ᛱ8HysP d]k8XBeqȚ+[?b%6gAUAUd]!H0$@d>^,_.L=_qW#eKu+,c"({0+J\-)[8z]n\qu:!=0њ`{3T03)f4J3`- ш(Kd0oc/Ltөb:/r1mU+u> 8S1: LPifo8[ rEE9;n 28Ź+zJ2!8z;33) R뚚?:e]f¾dh"o.jH ciBĴ* B=(nTe~z=.xm֍'N94~z4]lYN췢pϗ O%y _3iG+4#ydO*WHDo`DIPPRoC+#65?lWȾ퀄O;4p增 L,wSeφj%4!!ZGLn0;)o/\~tW7$@UG:;Wdiva=[cWW# Uoʔj!!1=(T)O$@egT51Û!ǐoI_8B4V_wV:3{cG h,k@yC %%f{8(sCqAnT}1VAuhV(_4Vq%rr ݼ D?Pg3TZl4z,v$Gj VL[m 'y#"tA專'zٙ$Ug!bݕq{SP`zЋP7S3ےweAʶL'S$P%?@~ ߊI62NaNlͯ '2_^XڇѓuޅĿA?ZVT#~fI{ؙv2\F`LJY5Π !";s*d"21M˂ξdKVx& xѲΤFe12)bp&魪cbJT˶~$ug)6M/Qbc*a¨kRep 27w=-`ӫ+Y 3"&G7~ :@k6y/ LJOM|IVF&j'<`|Jr旊C3mGUvhƻ=3]hue4 7Ѻ#@6&#|;lY7cc(]5d>Y Ǜé:tN3U>ѤԣG؉!݈q=-L@iyH շk1T :v'dBfN<9{6 j ~ 4' nqԼ5Vc{J:n6$Mm8Q+CTt,X 1M(3Q=t4x<4/DҶ: GU愙[pHiGJh.!J%v)v‰gF4A(et֟Rv=$S,5@ ATac0VhK4"4YD %oEV;5}ypW|쭙zP;/7_GMȍ&ěUO7F7܈7Rid]̳n#2!A5NZ)>A O on3۽$֦ tlOysp I#L]bs Jroe]7`Ƿo#q J`r:Ze8ܞ_IG۬rP1bTo ܳ#c1 2ƿ$1}"R"s&ÄJIŎGDb+ 6MyT=vS*vy:aA3M` Y~ Ca+##SvS_Di(T R ڪ{c4J'nt#lrz٫b/k(ӔUu0EU#ކY&hB郍W^>>vr7y k ub kmTz^C*Xނ?oUg= +37e{PUhn$Zt[*U)-3fW٧CJ:3+{>dgR* }5D>x휈&WʈzEo^Rry?XRs,jEhPcXzU.N[.ʀ]uW$/ad(IT.LClu|_5>x`kxrK^d~a>wT&mX25Ppna&YWxE׭O7Bnœ̗!A1Oy b8қY$f#[S^:rʀQ\{lye+,aTiWig FMVf۸iW20X("ޤp[TfbG-J6͵,T|*eMyFLL}cx$wنQ0BBeYu1Iu#s,8կ_D;s.R"彬NսN6-xamY|+CoxsyGiZRŢ v &PGiVF)# EZ ZKAZFS?s:Ah5&O t;zlfNٚ$~oRxX*gNӇ0{Na/ecMGm#9f_yUFaTwgrw)hQTÞvhagў y: A&"teCyU$T"\a*`%x+LgNK;#);y_? Khrv# }8SݷsH9t#yEx{w1twTۜn~+6֒tSIܰu{Hl7"郮7ļ4=9;-~ gfu'd[vzMP|iӀ1w X(*󌈽Q$(=ST,7^|\^9A@aFJ޲aL|[6]9q"}DVckl @4{S7Mu4 dj@44a$iX~yhA=)αʨXV-h* A~l7u`$_hukiۖzkϿa)$Lyq=x\_#vlC| ,kCG;vS gV?Ӂ+'B8̇gDu&[~KR3xt |sRЮ\s<`XAI':M|ǰ ({ 3ߵ;a{EfGUBrr[-WN$p>_mrGp6ebNkQhk"dK8Y '3rNkx>F3QwJ$UoX2jnU~ ^5BR% /aM9B& :H؀;kQHڛ9* vmS3?B53z!Y.jP>o͟n ]Rϫ0:)+exm'9v̖-8 "1JtuI`Ib"T,ܨִ, {:0`1'LȲ ~F#9iD+t^ c)#9 (a|Ϋ(氅o~H-̧dC et6;O+`)%x]ƕ3~2>'BiqgYu 2|`OjQH@7˩I-V4t2`&dh<[Q5:m.sla$)Pȶ*5K8i)OU¿힧ߎJ"#@J(;H/eQtC6"E⭨QӒM+l2}vd=GUd$ݰ,2X(wmtf&VLRю+Ւ,JNTI?0}k-0/SQ>L]20}H.`Ny`hWd:~HnTaX%A=RZRpX )r+_s` ׌hFo3so ZPWv&(#ES:0A씎]<\"t%)&⼴t'{ff67 􁈥Ǩ`]K y KT>dXʼOKF.݉e拄k݇뗊AH!P/dXL%(#<))A6:K1200F&ftYxy2S.)Du?LKZjkgo m W930,ɒ M@vӏF 8tSE]V tJXNDX9@co.pdR?^]^tk"p#!S )!P~cBvt\f,ox#e[ndVq6@9nu昷Ó>&czC"ٿ`$уC qaj+HS8&TD0gAn r5nX~n8?y7O6v.XkSيGw#i`l#oN9Fj.$:| 0x${@az&+JU*d(%5mY F /PC}y(>Hv^@Ĩ^oXBMfg9tPؓ4kKJpmydU7vR߲0Nrl*D:+k+t x[,k,;y$tβ /M(>Gv7._,9rOf}EX|6'䏪~0;n_IAyLK4j†LfDD.ǟ:jL.:u`M4t@kD{WJH #" 6DtjZ]f[)[A=0iSǭOW3jfk@Q B%U,N$PV ޸=I*lysva_f!QvjNY PYO7V abdUw bt@ROͩ==F4pz2XޤeXߖg*+ K*-3u_Ω#ܢ w,cHNkU1.)V百- 5Ώ^ +C4T#A`J+.ydUA >"8%̦ͻՂDכZ$b12AY(XFmFP=%%j[ے s[R!, gnv707Pܴx7sw;bX9ﻃE |1uT]Q=!cg'(,0mч!𩢌AD?{ ]?lIeSIbLȄ4s(>3r2HAQEl==kU̺_NW]7zU#4~PCR._zsQ!DE)J Q'ŘD՞C͑QD}vw ӪPn4u [8%}!۝amήcr} '6ˍ~24M*H/ ~Ȯ eF5ު=`{07uG@OlAAj+ijzoqS9QtT6+ Ev _E0QՅ-I\TkWȚ@CW#uL^sm,qxi{"z';nՠ4^Fou!4`A%ЁC(;?`'!*j@_Za䡳 6U(eMX4>;2;f>'z AXhJL@EV3IpL 4NԜ{lF`S/Z(Mچ`gRD$#}fjGΌVD(KmV ) E3Y.rz %i mDUFĭE&f4OtHO L!+/+D܍$NPj%>g#ʂHPnC*۱Tfjv8@'z3c%ch ҖgKLEgGX4 h~LU&9P 8ES݉ѳ>daA| b^C-؞ӒY/תln'-gXogAbpcȈ 5@C%cnp 2ɽAfNbdcIr rzhy84ѧqgkHn_dj v0fpQ}0 ?V|C:B[0 nCf3m@zIQXcwpCu6XzFzz)7t:K;4: e,1H|F74py`PDwOvd@K=a<,ɈdG(Ң zX<*`"< d!f5rlYErۑ#E6DopnhY BY%K 0u%kR#B$cnHYN6RRQ#AUUuZ9Sw=&mَqtRRneol _׈CMU LXZڎCsz  9R~;7l S[q=Wtw klY(Jxqz§b֝& MZЕW%. ˃% aa\FHMsSgƛ-yr|Z}0򟯨R vAuaW B? aem Nk#g)%p|*i'pA鳳!erdisWth])ͫX&"cZ[eg6yjQ2 vT"il 9;cR"66M'cPZ&Dilzdb#>)10ɓ8s`#>(O߇,1G|QSeƹtf4f ź- 3ڦ=yu{W?`M 0^3x6 8xzqVzJj;k@[J>Uم^x;nZTU~  <3~ 2ٞ_ G65mٵYK?g!Wx 0w}*vd$ I޺R39%%:ҌexvlK"' [1o7sID%J8Aety?=U=hsSmhfxfW2ca's6|&ޑb[tۗ/.يci'`?~&z0y&?~wm]|?jˏ_ ?YZ}s‡}aTiwkZcdjtŒ*&D0i  'ZowˆN'w΁7,䩄 rݎ>:'7j18Hx_D x 8;IɈW 9,|MtCL=$dH"\HFb0Le-1a$B0 YNHdE܀L[:ۨFg# sNj&.u gbB.J痲z]:iYH^p4-? ]/O J+ŦBMϛp;,*6ZDD_R&Ie" 6g%iP Jm#K(@5? ZUЗD=tӋeAQp jaEd1k*o ! ,WCA e+g{Y=uj6D, JFƭAJИ=OT.r nKldi(YB%boBoP[;f>oGٴylՃIojh s&ŏ$QUf#J`mxb&ƨM{#HةQf$ɋ}f%&97CJCb"oH|KjMh#;0S+xrAR&=痦i'~mh6T4 _Zߦ`cN;+ bOYoywtxiAe=07/ȵ(k jٯ7׼_D 2Bn8+:IY N`PX6e !(QKT͍+K+_T/:-l^ޗ?ܰc<4FLijj4'.^[Pڪ?A{mwt6㴐ZjkzkfMDe!`PVYCƖ onWsˮ~h1_ /q_ ӡX ж $N ˀqtxЄP~?wT]Ln0pnwo,6[.K4p.1;ĩ 8Ot|O)u$e!+13漤b eeUhv&9qv6ML9/nיq23 5%=hKq'S7Sɸvp{*I)BfW]Vq,>b~vOC[wSރcBO6I^tsvwYdA+ *3U& J/zғMz ĔD /F2y&^ Ne=L1L0-u;f#N%^SǢT_3 ^sݔͩ4 ^3{JGKeQkpO]nSjx]*k]Y+z%.p񸌉Mvxke{ .6+O6-Lb:@]#Dč@XFuE^swgKϝu|H.Gu}Li&o30WʌoΥbc[T}c3 g~mDG"Kdo0) ridIO t}cK\tWAO&qLwW^-S'{t7A|='P)QcR_iɃXjn"5wuw>+˔맻9].7īlRV~m%n-h;d*PiL~}/cjŗ?8T ?LDq:Edw,s]\9qʹCoB^ʩJ^ Ja\o3$˙-z c7xtF҈ϥ9ƌKoA @'8g~`&E.oL4-=od:tM1nuMͦ&˥ێOhH.<:U1>[BRvϹv N3(҇R{,}#['V->KDr5^U\$忺 +3XHJ*9ͪzSx$q= #d$t.{%l^a$ E%%¨*0a8d,}hjo.<&$st]$F,b[st}e;SpY[O4#'\phtTE vl|{:Suj*t MŹjߪUTKB[7Ny{NUxeͽ|e D2B3apjKs\m]2b`:jK`%\nYg, ,X(3+I,vӋ{FQsu(PI8SB#Ӹ=;mV NSn 7d~R埗FGiDh'{M@!rtDF1xvT}-& vy~DN--ص+(!3SW@D>δ:xjT ۲\_9v3qN@t@E.Xcʇ ZA@!]QݍTxQTP1b'酗U (&beI V)3i"gNKQLZZ0aGt@"Q槤ZF b_fNٌ,)mx /&htD%[(nCVZF;LlslxO>4 lF{"3Y5JLȫدa~b(y>I/7>y?Nj ^_g\W|fXDx)h/O]5qke<agԦP }Z/R9RT8x(74Gikr)*8d\ঘIR(3R|}Hb AJQi0a†p,Kv8|{aCRno.e:Qϗ${>ݞKΞm ! юo eA)*LԼ$6` #JvFmSo&ȖdQ1F$ؙlK?;{Tĝz|hPn v}1w /g]1_- ).3~PǛ 4MYW!oz)JY၆O0_ǔIM᲎eR|%!+?:\ õM=ĈApMF"QPZ1ZDO@(4j~ cP =$Ѹ]"6Ɂ^ٷ%r`ؚ +e GFT/,Rd7}Q@Z#nPE5@|z5_hᙦ.3=?KmȜKssqAN.0BlS@C=@ɏעY4 7H5$!tNsCs~o:*`p7Ti1K%Q11vը5j]a' T @"$_5>!Jcb#vMf"K i'GCEƂ( 4Cfk+ }II e8 hv #]]|سO7)~0}YVK268+:&Sc7 2_Œ}{ᴌFCIM8*}Ft\8h69ˊYqw~M83 ,d;ešB&k4JIp;/B4 Dup%#C/5lFmi$ qG`MT:~ Cm@ܟߡEРs@s,MQJ1-Ŧv+x_m9>eQlTJrGa1i aL?r$; AEO1H;h֣&&tqPDN+,HF- YlvǗ^u ^r}W$̃vc٦~ʆ:$ >i"qQYҞ0QIϦA T eL"m޹pEm$?E_#%U9S >//Gմ|4W̘'v}cǟTZj+\0pȣm&KT֡ph^X̂M4M%a8?h]ϺݮQb^ :^!KϢ Oe$u2o Վ0mF;$Urwz|UPT,(#lgAj$wgF07VsxUIEn-3ɂŝq)D2-@j"aPvŠ7+_(l\1%q@>;T.EFEW0EYfA<&YfdQYG'y㌽j}H˞]55. b{Hȷ.Ge\: +9assWXL?%7_̘VuΘ[fZuR5u،eb05YvVg+)k68WM'|#/WB x+ɍ3G!!">-~AZNΉgT5VJ7LΉw- _7͐΢s$, ޲];}?"\Cw>属ѥ/Q<﫦x֒M[+o[fEIM@a; ŝИ zfG$E{-|NTJy9/7k;ԧ?^ZKWM&ݧRO`|ӄA Ё3d8Iwڶ zBVEb\{n2rۧ[r;ؓ՜ZU 7f!,Klxd%iצ 4`Ov9-Bf"dI\Q>ŇQ pɒlD) ɂNkN=)IKYT%o#5#$|~͏f6P( ׯVfd6cCf\]gqP>DNzm[(( =IaDG[aY -(Aq *\PPl68d$hGfxYr#BOk2td>;cQsKŪ(^Nf'bf :iܜ[U558X^njzEql2ta '&᷼q/B8's}_cv__yYgWY|SqJf7˩Ɛקdxs֟ F e {'1ZH`ڍ!RaցUsA,"PK)(~S*C4yaK [`T|\S*ND~~QCPը{F~S:`8'µR*)*`a/훾Mc1ᗕb~+877Sgv-e=e*մExևX q{:o<kB]J,hē=_Q28kGRbw2t$ChboXP{#EOUĈ.g-2Z4՗:rxoG+G6\m]AprZȞ i%dJ$jr` >J8sAcg8XC`1iGtf&K$ 3Ԭ*6Q^) 3#Re{4XO$$b4|$i9wseё"jȏ82jNk =hF!X~LoRf 9M%QTp"wSs%?J 9Yu3F3?f[W(B[EQ[JJ3X~k.Sb䮭a&&0x{\gWQn ƒ8nCtֻ)\lt~0+tUh&\]&%NGB/o:]4 h!5mU(qV>ԛ&ۡ׋o2UKGa4;4fbZ{z㧇]6Lߜq B%և]p,+QD`oNS6JGCfOVe WMtI[qi Xۈq-Rm%.8OɷG@[ #wzmE't0!:sp(501qcdlm(s{qj˘NvV,t=,4#?D߆UN *9R86@> Fn5nOQMU{(w ,~Ycc HxHIQRƛ-Kj@MZ~E,z=KTAuMpu)V$5ed #iMtϳ^$q1<1P],S?!#`z]P@nBY2w2xO ׏V@ z[~:AJ:݇Di RlZ}8¦U,&M{zjmΦZדܢMKI ~UFP~3*'=dj |5DO@0]*I!_|CuAѡ\&2]0W=B59glM>] X:VN_gɒƀ&#D4Mp}3TIqV̈C\6Y;=XHQ-Ω LK>H&& #M½)5>\AsQ kA`'^3h %P[+JI7ń ( e&Ydaf~{0~JFn*IEa z] ؘCX?g[gzO˔tl#tNs.@tSn\K.U k|BU(iPha6H?:eSE!AX1~,*֩-ʡLln/iuH3V◂/Pd,C ç`qtOCy׊K)O,[̍8$g°JDx}ЛPvlH`R˖gn4z 4#3rjDYџˆ*P M#E u܌//bdA]`Scqn?'iրWW2Q=5O]ucA7oQ$AV0_u!mF%o/!e,o7_o s$?0UAAU&J˙$+&J9kUL5s\+'{~[y :%x$Y㬝!FwQ$J(z7Ό抈$U9E$9ṇr*8ܞ_IQ]|zvߺuekMkڰY}~(ɒtgQsbȅ8ojg,~}3KH螚?e=/Thz_vx͇ W׋MAڑis#hپ] 5C1]V5«>rOۼ|SǨ'si$B4i*K24~_4Ͽ{=Gp07pjgeU`y74Cr+;Z12QFKSkCm}qbӲLR22X۹~Z &m: Ux:UuyٯRza^(+#KU]J<ƝעCQ,4+ct&Fc\PiXmq\/V{yeM&)Dn%Z(Ե뉭U6\ZCsDD2@FQ!M-VD/3 fx-R;T,l/J* !Y>T]gj*_YgӀHkJR-!1aـUD%v|FeH`ZSG)p=1<qtW ҿwܳh]]wls1/?jxTgB,;Q1J,V_{H79)%]PD(3&nhk',"z-WhG$o?J>|UyP{*#)֡30`gGua~`n 8{ѫqx2m*^'N>qMk$x3{)ї˫kHHjDkGsPC 灺>%kPS=@Ad߅S96 h~ŸCf.|`xl;6f/CsVS8rbJllO PJY4~9&2#t\SڙǜD4lYS4(д&G074nd1ٿN42 'Li0& $'q~YI0V7ru0}!i$敋[ٕDYPӮrXQEOf3Mi]A<g :,͗juu\CHwgJgyxh:5,z-E%y]_l3[19k=v2rz6,G}d<|Hߕrlg6>DuY=U-xN6#\4!d$$8V|SUTk({32A C&[f}-kY0Jnp_^2+4%z4xfƼ 'jۦ|[މ-ŶXJl1qǴI]ĜE0`&ܑʁ\eH`C@ƬVkQD8 yNc-e#H E6.h2 MvwЇ]4ͷO| Yn)'K-tXi=7dM+ iu-UIHPb%6M ު!IUtYl(^gI}jYzѝ?ՔiC^dbF$xj•ot J:{#iAfŤViUws ϲBeGZERb*a%UrޚՂ'ǛÑ-n'(^N8(c-U9J:5}Л曨cEֿ6&Q1=6j3alŮ~=N0\7 %O?{蹥g i YyNXzEx qӫqQ\FLcN(pyu& a%(9 e l[›RSJqxE3Ş  7]ʲB߲4r4Ћ4/#6Fb)9km ],OC}vʯ>7}z}LN+(TW臯yQkAe~x@&A(rp*_ʺof Zg?މݫޤ9Bޑh*D(TAoLH[JU&\]α@VrbT:?{4?oelImȮ Z =$%r9Ԯ* 7qQmb]*-P8 uJѤه$( ` Cޓ=ePGhx!ua]h:$H"C`ʤw}Z=pd0 MFٽR: $ q(FO@HMPP hhD&y[)Y̓hզ9PW_P G,t'Gcl MIt Zh\y84Q-:.*>r_0zU Ro/ ʣ]*$D!s>BF+Ll"F}V5L\ӑ`ՓX jb UIM1Rz@*j"li#P{=IgB(cJ]NxܛOdFrFg,HB<\cLѧq՟tk} J]+i7UZ `Xg\X#k/,2Jo9B!EQ--] bS9z ]I[YRmrsʄh|k#n#Ao%{Oa/T9d(&sUB?n6;S:U O|qf_wn]`z Z_ rtTY9>8u%D t<vVT;oLWcLS/=})mD/NpAHn9zG P-{1L Â9|ٍ(3k?HXᅅg~[T\p|XDbl"p|HRC%QFY7*8c㪧s$+-Hre6. dx2ݴ2=d*=9Ud?rB̧?1pnD]~/w({Pq5nԧ<+ vZS֫ɀv8pxRݛz3K@`% $M a^t]qGܱfSd2\,=  }r6Mb*(a#iǣ,U 6So'B¼CUnIci"d1٪܉2zy{I>ӫ3RO%n6)]vb ;iWvy[XዺnӻsNɍ9=Fd/^l~V\gܫ|:?V;'eՇߒ}C$dUs%`tި /He!9Cb1RB0U)vJ)Q⁡$Vyl5UOKf"t*Lz\pNyl(n=,<4&`ɠK."})IyAlŎǪ%I}ZJOVC=8. %4Umkojl{ޛ==ٴ2Yn^4T G$! CB,Z8G+W W  mo;LJ$i0'/LaA u:9XrzY '8¾blNsQUvFjKZ:5FQeM4(=TcI4Œr ?!*'cҔzOj^㧷`G<ǝl`yԦ>%~"^`)BG" Öap Fu,C-D 2l:m!jmEwB.`=]Y) T0kv0{^ E9qWO=8̡Eq4$R␢>y$DQ}GqEEo`2oIV_e1w̲ Uwr{4PYR \#K-_,̩B0c1֬S'wXs%2Mvokif,%N)+>omעj bHeH{[|g.ΥIٙ8/&W"{Z˔Xˉ&QYY/;:gx.Sw?b-ْ8{F<[qd)^cbOM>QQPm%-L'Ӈ6 hXPZѩIh\N?MGPlw3^AD7n0YU=Y~@C7<Ƹ+d 9;y#aN@*7\u0CҝU*(+^2*IGnVL>?MS}E!cYz"CZdk;^zQNKaJG7LŅތK/D~AVv ws,d Tw]-c%bqeV`iS:>˞.Hph3C0Yc_!!? ! AD J X(5P(4l(;j(?nHz/};'9VP=PAa s/I Ϝ%Eì'J>7H; 'mwHۋ̒z&gKj?Go˷E)_c>s)QjTߚ۷q,*8Rm{X@Դ?]F3X@)<5vZ>y-:)ϱRͲnhH3WJ;-2[\Uݺyo'o&o%Hrd~hYL r/ pITTrMVoijђďhvLXݘ Ԟ*צR)>MS]wضŦm a!PZ4΋oi#aq 8h =}qI@D:ƅ0ʨY"b.Dq~N@R(T'{LtP y[Pg,qp(pTa7jc}lй$ȗ"5+}5pZ/vhϚ68OPeeѫB_oŮi!l_bwPҕhuz~NdTۯWp߻(7a~t?$|陵cy4c DfاEhB1.C0( }oSuntBP8@uw sGlCRfYZ)th+ʤE{ǻapR:DX2BWGcPG u7z USg1\âmQ'z-_D&ŀ)4Sԍ=P :LC@d] ޸_`#͍- )A-[ҙ`Jm}<8IxϜ0DD㭓pK>]5P p8MI #K犇q&,yhBYv I=Z+:lWOeADFyN@xДp,I6UՌa5E[[R'WNz,pB8efCLt}yd03$v_ x({B/;3BRR#60O￟uRfB]%yτ  ޶'ˎ⎬" YN4:&V&+6j)E#ߒ ;>6=֌!s<5k $2*1C'Rͅ &"|fHDAFP3pԚZ&Yy5EeaZNN3w<H>#S#ɭ:i5L?dr;wPJtZ5zCT n xCh!'fD0&I:BxS*@HY1 0b1`HOM`!H$OeilDt5^QKbE ٸs97F!%Ì0;8?#lnS䆶}'RdRs9QxX1hP_e<aCYh!qp;q/aCᑜ7IUaN'Qvu|`s'zUIб;85/&ۡĠ;E} &( ExWvnp+0d~z^73ɔYɴYl][.D%Sy,&nU+9s6LpڢD7EbUi/C$e2}* VFҾp8kȺy$tX}SOi+)lDq5cww=F4!^.a~!i),- 1*)1VDDd x"ΑOd ?aF!OiS#02x$c } td"&+q'wFdXgeMޖIx9b<ㄴæ#ط$"-tr殒$QfdKSs ⣶|.@VAU&j6sylk>01p#+7y&cb7啍 ۗ[gƥNuY_x<fD; {{LL 6%+gפEgz ٪ߊvxӎjJq reMwv: yZ3{CqrA /JP*pʧޯkz <2P3p-:X+\o%G"w\}+-}Ƃ4٧w:$]GdB*IoI$Q>_cw7˧l!FSQqk6cqH"aO[U(GzYmY>4eo1H[:(|,.` &FDxҕpKރrԼ%#,@cwMG/^N?@[py< a%9 zvBa[F‹z{Tt38;}grH;)WjSn* Ac8FN1%зj=os"ES(D<0!ef_qYRX=0+E0$C ًytc/>1U8M vlV&~!^8\ӽP7T&s?.?PKͳ !BF(A`dÐGCXVۣCf=< &X6!C:4j0^x,vH)g(ӎ55P껬F[` 3s=nA{Y2$_Є*.c$d&ÀBIEw&GC+@Pv wIjH6iБv"cz,8ٞ])#Hׅ:,l3il>;g~o7BO׶2I#nL@Ȕ4dyVH:a L:$U=B\)O`~o89.yuZ;lZ 1}mKȜiq*R(v/dӌGe9jQM(kEp|~)Bc{dOO^4>)%´WLT2Z_.iLjCۢf8']ŃRsAF#B>ݜwg7ȩ@ѩGYcCt{/͵Hj {e\gxq_Zv=vFzi"ӖBz2bcFS/?Ǐ0!sB-;Bti)Y-$e$kB\tsH6bYFBl@K2xP4'Y?FWxXXտg0AK/č)5ZTkk&n#gy#=^g=I͑=-=ײ![1r@ttc>.&OyPrVT/%d._|eY)R~!0Ĵ^̵3)Un'*Ul,. MbeVoncirOR%NJ寃2$O=(L#2(tr椼j\d/9>fٌl^N D*~Et⥂d͜;+B J[@P5Z cT)cT틧NaSD9pT<| j_7mQwUANR~9 R_MI\.Š8m;~~Sվ7q" QԳ[04ab^;Z^LhhdKq@P>. dbhN³̈́!/^fYd8G9ms]}?J2\\B1Rozp4,m6͚z2rw7GSy\GRU:wA(! dH=NXzx7r!{cyfO4/NԖ4^5L<|'3A>1@2Pd'TXTKHv]|L֣g2uLs\8+4y ϶8t3,Y䲽o?}$jy>[_LՊn|mbzHPL}[f,"~jzPt< 3PgP͘;\h5|*1+M8q:UJ/S:0球HGi:W/h$@nWi)vә;%~$ϋG(z:β2%A3a"$Vy 8'h=+组%ϩQ^u|ŷV0\ٮ5XB1gV;>LN)li^1s)am0I.QT@.V<U- `'*_>^5xnCYm?7e{Z.rL4մ>X7&z߿Tso 7ypjt ; BXZڬUG4=†{&&9~цYN:}N,$+]$n, KgYHP3w c岺MWgE_TsfufE&mՕl^ 1򗪩E蝝|;w \nqW],|8y4|+4*cR'HRUѫn6wm?m(,ڮC;_)~Or{$SK\=r0HZ{Y"^Z0MZEQ.DQ>Vk{&WmY1PW2Lv\A_*Jξ:M۫vVNv9QɣFp^\OД=BldK&Y31$=T+ Hp­f-w֛F0dE^C⎔ G;4d>^{OO\liyAP_} mPnͻ6Ov {R2H3PK )qWǛu& cpython-3.11.5/Doc/data/stable_abi.datUTnHd][۶~?Uq6ve]ZEg83NDBbPrft~nSg@*eί vW,xv%o Y+UuZmNl"۾.Jjs+^nG}uCvJ5 =<ϊ;2S88g gr;TxQ5VjWOx9#~2߮Jyš"QkqDeQC-kT8#I_{`ztҼk^m(tӜ93A/Z*(99^*>+Kv1ChΌۮ@9ԅd@mX4=ؠ!Wà~;HE"`UP^ X,x*3T)+%s8uZ?v{n.UCTGZ;\U<ӯ EKxQ ˷x: [^e2}궛`Q/ 20]`gUkh)n8Z 2<Ĭ`:Mp֧,uY+фNLhm2IɰMZx9S]~JvF65Np9g)_, bVQ^%,#[i~ay*3RBjKKg}6(Cƈ >{xI;gͷ։ T]q{3??iͬQ Yk O0SF%G^ZQxS.2k0Z-?09{[ÅV'5V*QҠ֑5b% oJv-F_:x}Bε9ug@Җ!4+RFSrsPfA-/L fJ/]pJBI&edtsqVˢ>%ks둓5qHƮKA3 |JbdL|KUZq t893@օ(Yγmb .&BQjU/KBw\HqiZ%G@7z5P|@y(s@^˔`eao(I[NL:!L*t,>/ҀW"煵 =~5ealj _DO'NsXCج{x=NRR \мe}2TZt' "CkhKFV }%"甲9 7vP ї/,ҿjQr]՟aQ;,F,NK `%+e9`T aUӺ9k- YF.Hob4\p`Y61ĭZAN^WQ0xaӪj;ӃxH};Õ⥙8\鉿+p`34w`8V-{__zx)b#Μ́Q;l>8?<Hʕ³Xg;b*I ~.աT+\RЬ>E'ȁiXFoBU(JU.uċ_U]r׼%sJף|-F.2գ(-`XB/1{z9N2 caY 0nՌbmҔ5l$>!rWI(Ef12Sv%/RBNcg.*A فTJgRsXkGd`8lE_TOTJa4&$ltɞ ^cP  5DaJ|,YrFE If\$[$ǞTG'/B5P{eҬfz댵/ɜ1s3K4;Zf-/Pbԭ =EG71*0̠_slOi>5+>xwbPne&x[x*C}TgW{yŎ## ]Ș% ӆ~=^]EಠhD(\gjl%9 e )@.hq`0j]þb;$נö,HY5UlG|)H}Hd7:N►4ͮvqnA2=N#/aWP=ίHW)?&jI7 (NO[: FW{ F7qȣNjFyq,!0 DCz׋dC@}F;øqńrSH]G " !@Tp-hTAs P%:"#ƀKVxK4'`9؋@Y5Nihjf -֛VaPP,X.-SrCA٦BC6kKԺ# !(&tƐE7ջ2ViLuz ihߘΑc>˅0i`<ƤAoxq|4T5h/ɜclUr,W6 :iL F JvYW3xtkƭi@{iR4TѸ&5lGi9pFﱬ4퇷s0n5`4ڗw*B !D0mhW?n@>\ҪY|8>A')\wݰFNOwz2,S0*+4Y]&% Tʌ?Vf&x(:] ]z:hAYY&Ė) gEM;EZR%qePrSg\9w@قmik!xZ,4NYP$.Mw(+>?JNǥ" G)IG2e= 60 aIzYLse*FG^߰]S*LQށp\BtZσ0PB= eT;#K8,b9^2-~P5~Uc 2xd, '7{8]oL+HE5 ~Iu4.5Zm씠xQ66Lm9X{l=dЀ"=UP؏9 Ƀgc&6IEB8hj6:x'?=J8 0 Aj-+c?h\=3P?)DP" gDϩOq;:%7PF)X@*e%+F"tnџtA-ɜ|5 4EXHMٷZ?F i ܹļic@\ gfV }>FB}^nS ؀ϚxQLO>{xImN!q!$UKl YcF3k}vU&&h{k 6=.*UDyx pf C],-Ć Q,8fʣP:ҧPR>{c@ϡЫLUETEL p`X=+Cb>7n2fopn;[BPއz3LQ'(#) MTۊ>8G*}kl,`)_XB[OM9sغ` '(J$ 5IQVۂjV)%v<]AJh ;O4MM M] x&lco/NŻF1Ưis 3 8xhp LYzcLF1p*!rNfOl [ hSZBS,1k,PfG ?!1 t/1u%"ƽ.D?/r.Jg!Hq*e)l-48;=LsZ$Zxw'Izħk=F$=`G8`OocD;j1XKЫ1ɎDZ6NDG5yAS",eg'v$&GDrKcA8!KGW'}O0|xuxĻI6S6է_&Ѿt/TM>oBn/Ed"Lx'k[n9ԀFޤEm{813^ DIt@ݰ&&:!lU{VD>( @@|=$Z~D+*5(I$.1'$!#S8 ܮ3̈́ҥ6ń`!J8ZȻ#/v5ue>3 cC >iJaeCaRLOM_ #Q<МoV)M$*$6dzZ(xqq Q0HNrα ,2,4H5 ;m9NEG&Cn)WaўCyt{4Ϭ ޶8v %{TW!J 县7׃Џi-xQFeT8`u~AY8ubi)n;}-~}?!·Ɯ9jQ,˻?}xyp?ݳg/! ̓a0_w?ཿ@pq!6ȜDvSutqqv6j?dﯚǤk#&@B9O7zv  z@nwF<ݫ:[~.Q$o݈:|4F|c=b]S{[5b z1Gv : D0ç\{I]G g/<67Bw~rO"+(hnhfZ`E| UqId%ĈsmK;lApܬ[%1lPD݀#m苳.lEQQY.6_kmǝVe5e+B|*dY"w2_L,8r ?zjP@F y1T'Sð$ zk1=.*EJdbƁو J(.r؝i#!Uj312MwPK )qW cpython-3.11.5/Doc/distributing/UTnHdPK )qW7#) cpython-3.11.5/Doc/distributing/index.rstUTnHdn!D_J銤a91 v/> )1}3lJv&];Ö́ wA6>J >S 8}xTAu XHbivvEV-wjyO.U6$)tt5-9 =11$_ya/-L&m9cw\9l[v{Yxb> %sjS&1_@.KVNFuw=8LW:/Z2õy:Fbq@tPK )qW cpython-3.11.5/Doc/distutils/UTnHdPK )qWnO7 cpython-3.11.5/Doc/distutils/_setuptools_disclaimer.rstUTnHdMA y_¦ 9v&R_Jm/3uYVjiQA  SW?iU&+:l=\Ѩ}=zhJq`ٜDIi͔FkJPK )qW]x' cpython-3.11.5/Doc/distutils/apiref.rstUTnHd{{'>wD1$۹rӎ8g8'Nt&#@$$&%u˾ EIvOc{2$'ٲY^4?>8?O{|ov;L&ϳySӋIWIVΒEV3]-'uE^MRi[U&=kEiE,M٬IJ<͖i1/"oJZ=~*mQ :%4d[ 4ʦhZPMiYqƫlEU&yf,H|Z-h=3ZcEO&(i63j ^z˜:)n]6_姓^>|'>z?~}{ԿN٤NUP,*__U\9O(,?>N&O<ZtM{ppf~iUi2[}# [|~ cbؖf]VKc>@]388#ӗ!8 U9_GEg|N陒9o1',1c=ꢘ^`)IjŲ="0\rL43֛l>8]&Oҷi Qc#@idVs:tCp=Ҭ9.MGՊe5Iּgv-rwQ0 %s\)-ڐX7 1 s Vբloo{~z?oܺ2[B$|Ira7z`۲!V:,'1@[ ̦?%8^2`Ѳb<8|Ҋ~c} ]~v %ʺ >H7Suo' /yio;㭯fxyUD~|M >^fxlEܺvZ-jYIȊ0X1-Iֿp)j7{G5al;`kY]s+TɌ,PY}l$V*#4{]W mEuD䪘Y*HCo[|W5"m e3~5~/R}:QHv.?Wtqzk=^agJ$e׬lhNr"_`Gfx*WWf'J梏' +P=$l +dMWXde\ͳ wy^ [ZPGnڬeQj!vtU[gΠջ>8vSu=؀p94ghoA-៘(hN"naZ8&ʳ\EU1bo$ 0 Y,>O9iJX(I%9{n&VNbiP Jl0P6p[@f4h&#wiĶ^]%+KӼAdY/N _lw^^ *u%D1@;9-ʢ Ĥ:j *9}Je%V|1޴ {Ivd(ѱEH\煑P\+HtjzA6uD6A-\0nJ\l~ nn݆[s-r( ײe! l|t@aqA@NT֪Ye*[MW b Lv6: )o#Q&DhĔpЃ9|ސh`CwF0~wxdT r 'IsQm74ϦDւfD=u>/3" sK qp$'jhbN(㧠O?{\ʋ#NVI,t/[9>ubYABU[ _;2+:؞;ܥgG숽$]lI١ۭv-yfJVzWd]Ńо$QaY5 ^w[w.YB~>6ժq8:)?!D2#R뺪Z *`9ucYm]D!2{G=Kb$cwҟ&YdkOG` ^ _%IA6Y⬘t'a- %#h#Ð{^8 =c6S{NȦ<|7$Fv?p{^5-d*# PsÛ w|.lF'N.Ϡ(CО&apMZ )' N,H]"톸&B>-!A: ę&Կ a'@ttgº tn:/xEq]œ1;V%Xy3b ?v XVgF!c C8N36J叧Ku*[niȪ钐^O.:5~uV:kqp^텐]4XУ.:ǵw\6GƷ!:;NQͩO}D2?!DU_]‚=Ps?}Y5nŊ~n:Y|Zhvx~O/mr"̸3IAg;완0h>:DHpO/xA`AiT}ot4I[;^e7:8wv/YdwE5u_q<@5q4p} F{=,mBLU9w#O`Ym^/{4I8Ţ$N7$|xҬsl""8 stQђ c>UE2nfʗ*Z4 UHij)WHZE>ַ"S+(ch5quiV Z0N0tvh_9E_FgNƴSfHB 9uȟH & cxXeT;wT]FCK[k)4O>(,ǣ+p֦͗ '7\[2 ;pMvOlqō桃`A`8y i+"}]$Yq 1yJ6ÏgZG 7,cYrW|hGHFz0wQZXa[$lAXhUGz%x @ƈak kE+)yy!)1+; DhO&qR8]틥Ds6̨SFgVN0N-005<[:q'&6%*H|Q#ċvYFyٞ9RҹMӪ4R.O8fޕZdCtq 2VylFvcB`x8ЄDZL$)j?%3"D+ >d`ьvBKL5E!~OcMcU Kx˪)^]ЇB 2is!ރ趑(;Sf:MK282Fͷ3l=t$"[]ϲi~nJ3"x': H'y_$5 &]h .+5T7)ZAK䧢q&%ؤ(cyHTh-"x~FD]HsJ$υ1.GEzudW?2!h|;N*+S;j!)ɟDUSɡlB^,=bHqsyqvs( i"/^WUEDZo~:%!(=(n郟w8}rz.|S˝nթ^HL8ύx(4_!7Cv}s"A|N;3E' (NSV|; GǸDy;$ZЬVk+kEcF_xDhzzE7d9]̉YICˤT0#WU`$?,ZCp7** $Nr t TH^̚!>`{"`raOcƜyv.3&c\ČzYU"]k5Vsd TyQ碆nRsIkrQ*r ul<32 d+!VggGaE}g:DHEy^!-e EP=D-uK&-b3vjJ.$]ũb^]ZˡTgsI 4Tmw]„}@!~fUYM kl$̺(qEud\3cvC s5RB!`igN4*+lloYT 6TGtWj6 쁴i xGW:[RHS4]1U_ Jf dԽ!%U%YX^31T] ~]gt&Q F1{ MS'V+8! |͛}+3O>[~ I!KU)8kQ,̏?ar@\$͚nN{"Icq= R6^?q֭-w-,.ͭ/ DugoQލR6T߶aa^@K1qB,Y UFoSrk+m &epgፚ.}[yʥ fAuE'&Pܫ 3r0Ar1K'sqd5p _94|Ǫ ۗϓv"v)]q0_W:czY_8hcʕh6L[-EWtz )nRHU Y>8򳷉uRlb b1(`Tn%e =mJsOL  KS`! RQӂccc$J> 7d s*yGaIuZ(&:Uġ[Euz>V2kG,>>ۼj+"Zf` ;hYMXcz(-95w 02C4 &` -˹|5d:@քPIcc8A֮w6dQϺڴGbAZ\4:3X␳tu|X2uBn .rAgð8+y%@%o_N\ZUq8)fڃLS|sڕЫXvUZ.l³-Jt7Uڂ9Wpr,Lsޫ%='TffMsM۪jAfW\41yR/pԾ](;ᥟ0Y:9ڥWիܨjQNƠߤ~Do3SJ Kc*-$A7ks2`UG)t|ll4!@k4o݇|8qFEi5Z_9 28k!Yhlx"U f+ pZttwОf)Q|}M$h9E1Fo,H ҷ20mX)=#i;YX"a ?L't}<͇pHƌ-z.h(JLr]Mp}Uf>a)iZ, +T5O~?InV>,u 8.!}5XwKVristmi;kvfYMiw\8ņO1lui8Y= 万hxl8!mTHdi>$DUŁcXV0/B={k*Wǁ͜j<ІDA<-!+`W=_O9#= ay(XA9 ;ODA' ^hܑ0ZW)>gg}W"N{m`lhy:HMMY2#Ne4^-/EF>Xb*k/ۀN;;\ pnTshl+$2Iȟ։/~)2A^ôTDÞ|[RE}lڂ,nhEut+N,t-5$B-2F yHFn(e=)MН-(,Wr9}I2`tM=6w;!0M|.EEf[[DNk휹KmڲHʖNXQ8U x|7< 1uR(-`ڄM͸N|2!WŁ$/t^p^7Ju_'O7UMݘO6ԞTá1AM~7#.s37vӻ63 y$ aZo[Ro&zs>,[}?G{t 8ec`ITpݒc J/1­rPig0t5QxS>;D[dH0SA#XHZo XQgS6vezB8cS*DwGܞFЩ;ý͟k!O[xiUNQf:y!sljDH)TU.O@ӭHݺ/p\,ĝ!Q-W:`MJOIMu1b׷Оwo2*lϥP’Kֈ>H/p'B0+Y:+X࢚`@3OS <}qXUTiEH˒&}SեܠASQ54U:p:O{ʍCشMgeI{?tv9?@H"7FGkni<@@fH\S)P:nUqv),tGQ7%Ƶ+&D#1^(/\H~|uaC#R '?+/t# G1na :2jMKvk|ʱ̗Wh4bd=u8ZeeoU^7T^[V8 [GQɩ/T:Aأ ]K6o:  M¢L?爰 >ʏ\o'?և0{+ lkA`#NSpP&Bv8\{8t\, FVeB:+[.1XܰEsٹ`*][عd=#Hı خ2 ͖W,ȱ.ܦg觩u,_YQM6py{7C&j:q. C9P8p%[чDL> >x8~8f}q~tD>`5;|!gp>UW80bRX~?'?|v9<`7/_^ s͛QBu590spܗy<]H͓,( {g}pA=Z\gSHyߴB>{ܷJ?7/O:lG#Qj&os>.1cUϹ`\I ѬԈ1"}6DTv2CJdAWO:̆kfUT-Ih6w3JZL`|Crգ jC [ȃ6WO&3} *`,o4(٤ ͑sڱY])S-AfR޴,6OQoXZdw~gY~pWUaӭ!t1=J|")uU!~WWϧ.`,)(iJnRb9OMUsV˝fz2a9>8Ღ )l!nNͱՉlZSkU"Ml0&}ot^{' gN/ *b ;ϐE wW,ԷG]-x"2Z˚l|͚UaT |ԉk ߮>@i ;W4Tޱz`\$sE,ei>?pj&5@v1WcHK|}}8'"X9_+5,: &5O;2KUS$Np"FSZ8@ ti%]P89Cߍ.NE_4EHi8-ZǖCp\x`;ˀoG/>p<8A?~R!t1iL-,X#]< :''M4sG-"V܈Us66\Ų/Ly:Gv#O~@vM/rMj_&( mקbP#)fevvHq jlgYE`k$a!kifZo6IkYL5rF\ $5"B!СNԬCJ@,mbCњylF =KJt .܃# '¥,չi<,V&0d~毸+FK#T ]9&9i1~#/Q0[ 1 0>25#w$ynĞZѨ|zm4MIUq9:R-:)[GA !k1=vxj<1i/4-b> l7'?$Qk1g>ӄ)~tjUY}%tu32Y'BGB`J$/^g.kL`yN[ZѰ\gZ+aH`2t@y c]iV +e&NAc̊5&yӬj͈nMpSqd AAEIu[uuz˲u%ݽFcj*~^R״.B<&&W繖e93lg:^,S!%/Mgє6¼D">O?t?yZKeds7[%& KLܞlOq1NV5pkL]1AЪ!5Oұ,؁< 2 -h\`U%PAFr^$IU "$r:rwq@=o "0t ]Hž7f+-vłUs%xre1+ 9܎ ɫzG,W 0zIwJht'\ש/o6'XIY]:?4uDluqт%kҭ};(9k1Q(džGo߃|gl)ZF'VFY>ǞlҗfRIhbq&jl*X.iV+{@--˗ɗO_.yhes|>7ɝ8'e~2>

{b1v&FOxK:ļsɨq S<-^_-"'qTm߉UT5q,LgmhϮ-+3m5&SKfL3xX ?R;B;_bC'ޥ#;l'Ҷ_pL5Sjql"2٢=ds #Ff^:%a Ƈ8';H_H%m; 7Ш%R0M`^1c2.cuƋB#NK,2+fI0+A)PF1b L9 zhD}7aqfGuв*+We0lZ5p'5, 2>}F_.vjFZUFZZە&eAj4ګ}*  _) >A9G= /8ʢSnqb1Ɠ%F_ubBKӏz ivj èiǮb4 Ax_"~l\2pą GJi]!37yCGw{xM>; EnA'QCV4#2[Z0ƥKOf%8ʜ(mCJ]:Go>[deE?l*l'Uъb.ߪ?G^ei^JԄ>fϥaK39/؊l5n4tXdv$nqPXlV*͓/^g}}N~xW~EV#GHȑIZCz=U Z00P wivdpsQmpՄbxj|nß7 ^"JQ%U|7X|4y gDj[˒G!,$@>d쓓O>A$Map(Xsve^|8y4i~{=2#G*!u%4C{YH"p:R6p5M8 5Ғ4f:_gԤ 7:E@z0vKsJ$ȧeE:i I)5*b\}B#h\g[nQxknYN3_\]?.ZڎAcAO~ѧGnR6~NN -z1ޣO~<~c\eD`'@z@}<`b練3TBA(x?UfAj03DRA j<qƓ?>wZVHrUUz:O%E#A*#dc3GIYTߠGdbZ\H{M6è{ԆX\OU $UI8D=!P3_l:Feo\>.%Ibڡ8Åm^䕤-DrN-el p/DM<46dhB8E6.tzO H/wĉ=?r`{2L;f6G`4kU~"nt^D><5չU2.S^U|#,W !*: ;U)ͪZ=d8M%qKJX$6&Oj9PFai"4q<#G;l8rO1?O~{a4i4˪v㰖\]$EradQɠ=4ud yv>5׬uC_+ul%C{Ʈj*3ZN?/!,_: IϞF O3Nx!n0֬9'> b>.NLQlVSR> ǹ։6R`B6^z܊j ;݁Ԉ&2iQPsgCA.ZoǰZn5Ium8,C)f6T>EQ+՞% NA-k9%j850/p6SlX 966 қN`v>`Q >>JU-kZ&?|J )DSe%?x}>L Bc%PJ[|u[qzm#|A:mǔIk3R1*,>GplaТhn.TxYd嫓.#v|rB7f|y>zѧZӓ# Dt6A .!"2eFjDF[hכVȠ8vpfkmMNs#rl%~;vF7Uwqq /;1H`.!_6%*AįtgGbxV,QL^Lv;n6?: I},pM ~6wnkuD-G]҄aSH;L/X1,AmJj]g6=-uF) l@HHq\ـLn?XD #"th/ ޮQ3lV}Jm8Ӗ/-XWwqbÎ `وNaS&0=~_|/:(or6V{fYdi6x Jv5dg4b&jiMJiZXˮ+6ӉKj"$-UWD;$RTgbَ9]]9n:wWL*6dՎ z 2УS5'A \4j`q `$ڗlK߹LŒwj*F шNRgJ+-il8$UNH%gºxyރrӼWF,yAjWsODqVmUm*[7qy5>ݽ&ȨAL D"r\l6+n2Ĕ $'->ŸzId-UrA)gf'z? bOthll~>;L7=f"qW]>yP9c#|quyM{\+gC.%)mtP+3EgI5.C$OslCZ}iL mGt,&J~_E wʝE3jzZ%ؗD/HcghXjlHcJ,N8 ,A1 >}/=oE8O1uslLx6Y,GuJ I%I\ׂ7r45)N[A돈&h?qOY3i%]2-Gx,5vJ6PG qIR|=NIJE E$&sk5Zk'qF}.չbse@1>aIJ6ܮ"d "hiDz'Z%͚eOGծ7Pinfَ;Lȉ)-KI=rl19x\_^uӠVzgn?zR7eHdnRhU)9nlK<%]W'gK}kag8&|( d+>y)>7k<e+@\ד䋚dQ?It1U'?:+翋+5.q5:hql,Hb1J4HW2Fo;U# ʷ-3pts.o4҃)9[HA]n뙵q{k.|Ѝ¹Ä>eAMttZr%#>zln'] JWbaxm1޸n5 VmkTԳ1˵QN9X^iI LÔUV/b9_HEMno: 6 o}Mi{ZxppX,a\HuFP_kSr*KHE,K^}1T-12Z(#s9gUܳ>x>l6rQtd5ntԋ.%RW9I<6 ?Q)>JNY. A` F.hg?ס9GG-vx. ٝJm! X_9[hsq&J_I wXhH-*Oe. 'YciMOgWh.$ImME6qpekTYeg8'/}:#b*p3*I}NK(SgJ pkn)bij_4áb[jAM2NLJeiI )vX7c.#!Z o+TBJinaӬ+L{Uzkɬ>Y;4UYyokK dͮFH~G fXġ39kMԝ x,O ã7;WK^!RBWh[2̤S+"C !*}C 3'0+7N˭N・=@5@>Z"ZB*(NLMC .BLV]ܪNx:E fk?xm|o -񛾉*7q=,6iGY neGB85M`x,8+ y"ܶ:c*> Bzvb:ZZ~ t@Nd#AXK@<x+b8-Ab`F>QxBVZ%Jf!pE{5K:E:s26mS{A؛= )愥AkDrqqҠfot2䴫_=鞸|*F;}kSq4؉(?{@`Yh5/C} "֣H Z~߈j h~otB>au K}OB>p=Ba-}9#;ąupja WAо2!Zqg~ l6xz8E|i%d{U^Gp1>x;!e`÷Ė;#T}pY.UX LݞLӁ|!oCn ~_|W;>TBz(np5`0yCIH-jP>ԲNx-Nmb7\)ix0np,_,Bh\ J؟j>ͺ {ѡ)a.7YK|ʥS6Y]u-F RTuB ]A 5.a׌X3<şd{iP<׆e_R@NۀNt'e 9"_ 0-g(GxNұJzb=W/I9HEob ~ϠπK(Vh-Z&fi45%5BWXiϱ ۑ;dFY]z-@:'8#\q* :ت] "}D6_p+wTh'P5w$e|LRQ܈!Kr t 5Vl?ca~ldQI Bƙ(H֫ݻB̷ #y+ ہ+`?^5a9[!7>&Lz'=ݵ?szmXhNl6 ҁ`ґzVQArݵnsV3F]Q#ihıM9UcmGv|ng1DȫO25Fљ4\hX19 X#?` ȅ ,bx? ϑ^&$yefHw\y{D }?O3'tͅQ` r:g=쫄Mt_Il=HJ,gHX$^Ǘ+ALVŞdx1osV Ő醒!Tp[ wNJAh+4R0 k:+E3{ʒ'.#R@׫2?҇%1 *,A΢G<*KGV|QW!G9Yiom0\Znu B.}Z'eˢv _"Q.;gYcJNذ:(s>BW >AWelZ11aL̥:9м }*ǡoCUf25- N B9o A\uf| "V> w@ = )xׯZ}XY!%eж' z-uUcu&@ϗWfzǠy+z,E™$Vz">C|pn#1[T eQbu &qN8[WöEaW̞cEZJh 9BLh%:oV1nhxuxpjlbոv!_dRV0,b _cY.3;٬g I2k䬪W)Kg%ۨ.)d7ޤ|'makLIh~ܢeaU~L߱qh{0O԰1[alpӎLAH򍕀 5>q k̳rɽlQ$Qސ qQtcU<Ŝy6gIgzEWODNCyBӳ n% 02_ KSM5¡#LI }p'tsLQ-!m]t#jif(ZK9At*e""ϫhW34xm:gFrIT>0͝t" 4'Xa$;0j&=nIߙ PΦ^D"rh4p\uh_]"\"O6-BZG]uToʪd[n.S>vW%7 0&@zNyY][\fĥ+,(ooN}ZEP֗ݹ&ș1=Q*u zdCVE&kwԻ r[nd\?כaZƛ}{;}b-ޝQ20 2wŐnz=Qnv3K۠췎0l;"u7;Cl< -͵Y³B_b;B, Bh GtZcNےoĵ9wALǝuA8h '\mmYy ff "ڻC-ނg390cf_l*{fxC/6>3!u~>j^ iwJl:סƦM.%a Ȝ06por`9)\G:M#M~ )!WE4*toTm 2b̡+]7/ôţY]Z(͹y%,'eH?C I+Q8*/yQڬa?X5o(iXoPK )qWZ%L* cpython-3.11.5/Doc/distutils/builtdist.rstUTnHd4+UBOAAnS+}eTf`yoW.m~izvxGf AJmmڶ,uf7)noqkJT&_EiVn:BKќ:puU57.#U$밽,skonEMLx(RJbIv׍"=Jz!kmM`:1^l((u/Ov@*\q&\ ;5 ]Ma=j 8#p78hHdȝz5J C"7MÔhP謞gklXނ+"~6BADI6`$Q 1T-s FwBl ]FDųкaɧH@uevO` t+Z&p\u  r:XөIE w4# l[XeٌkԨ+UIU`B`,ێv( K{mel)r{=^'pT_UiP3ɥncޢ%aXP,.*,HȕK_)]>"I$ F2 ݸD}1@fe4S6(xsFژ\sX5b`qu#e5 `%k C$##74XC:A[MZD`LC4dP AJMYlL3Fn cZPJGj8܁ d 1=az/ku˨"H>ŊdXeU/!erFQk84ʎ^0D_k H'Χ}IF=dD7s\DQOE-Χ}+f_fr -Pec & 9n~=ęTQmW<;=\?7To>7 t (wGC@6u 8  +[+fţ;ǿwŲX5+Av챸Zb V}ӢtIU7A=xYϯC!W\yPMJz\*!˝@4tN4EJ <881D;%HWwUi7)(15oT}jKq@=0%?Li i"=E͘0 !B$A!v켤 DDM@ xAߵԔC dt9$LQGݐZ!X/,fKr@`prmW.b@51E^|Q*`CsA` L/?E \=b Fs~ɑcyGJ'Uͥ "5;s%{mx;D,rd%YoB8u$=nqFx+1W+` :h,%y~c_HAtK!S `^qmu6p>;37s۪W2H7>ڰtdcsHwĐH&Zo:DRs#KѠg 80$-:Uޫῤ型wZ4$%TY"teBл&"=+l)DЉAb`㴼Qtryq4"sSd63%F]/G.so?&\~5cPҒ :TD'RP*^(s؛}J^ $t6eNS9Rp.1b`K 1wP;zNe67l, t|aup ;7W(tR+,2?$?6Oqa/{bY{E FG-ZjOЬSKn5G{&"xmy]l&8GRbS¬ Ą=a# ,hK>&K_ 1 G}Wl=gir^~QfO ^hh+ob]PB4-BŒJxCR[hV` TLZr(71)Fj[!eB/Ԟ2Vۓb6X)ʬ W5kcJSB{ScҶ35g\ϖ"q$se E&E-dƁ | ӣC&}Rl_'M| 9]Kt"% _hC,tRIIUAEK4XGF}t:~FonӈwĻc k/! ^GQ r(s Qo0˻11Y^ kװ~IFp9M^Kr'@΂p[.N'?t{8ۑodlu*߃)5m,,-,5fas[Tm1GcTI 4y{F'Qz1np4Wbx$#AR85eR#fiej nO&o˗/_wZS1l_Utxc[CG$hńP״LY+*-xMުЄBǫ:gׁ@@yz+x͇\:I<n 2H]`4HVY)`VB75࿪do?ta/CxloN3C.>1$e ITMJVzMBO0 hA _..e2n'o)|pì@Q|Xk(Iv(:tI|;/bv]ZIЁ^`)yYnI@x XA58lK ^E6ku&&aqH25Nme# .܀whcJ8DA#C1_fSSIOAn޹ŧX/>5v{~ߎ2򍈽7_6+FQ`%&\gEhcл5ֹ63' אhgn$[hl@D߮Kp(c>v ѪMhƑ\QdvLlH:w!Dr$RC']!&Gr=uh @RyUC.|鿒*L(>,).ꄏ}:c%:`/>mkK4zB3j,N\DA=vZ6 nK9a aYYeDD/Oh-»g@<޸$CخseL&i~fV&~Šzdع.&J.MrEK̈EȲ) M.@UWOlmd{M]A; 0^ ӶZ)8v<.5 4bt)#Pi" }PPԹ%<]HD"pEKKLz˘Aw5B:h|DwsJ\A{ f0~J^[r>zw"DDےdJtR]Pɔ^PPU],ꪀh6L|!Zͨ4T>AB5nnڕyHa9$_`LA://XY!^sWǘk7mݡtir\HqTZ;K wK (՝un-7)N($tt n@ Gb R'rFs7NoMj?|<|YI*s$;#3'I-﷬׳2ѐ@ zH"9-Nu: ;4hA: P|ލ44Og~csۇ٬󶔆-XP[:qtwl2tY~ 3nM3fXtNxj(hRΣ5F t0-lQ*3c59ISwwv,"_!=h$B˥tC$_ڻIZ}:<e$c &^QFɹF 1Ev|B˙[Μ`dZְ(8-:f|!.. !f 1uPJ)P7"nzvTiQORPOםV5t~\H;¯$r [G01׭J#5S5:{̸"P_(k(4ߔ,U )nU%bPSYhKf*,k-kÿYN:={t7gx)cY~뾾(q=©-lvP^ TAOX;MiQ+s"g =Lxihm 6rxLr԰"j’c!3s $=36L52*2\n4C$nߑjiji`"f_v3LM z׼c=Րi-j%Bcw b؊V>$;9Fr헦xIٖk$ӷcSR M2 Kaow=*c+x& {]W&>{8r,Y#1],*]L" q P|k Frz])(4?^#_]WڂrɿG;QigLg+ "Iޔ9x]{wPK )qWnn胭 + cpython-3.11.5/Doc/distutils/configfile.rstUTnHdXko>uZͤ鷪uQo^k]7 P3D"$NJ}ϽFd_lK}{x.J<l]ռ(nOJĵ_Q;+i[5er':gcCc(_eTv&t º(:^%[xDVgwqMYZ^VHEOn7Rt^;obz;BV*6 -ߤm8>(?Ώ NZ|*O:X 8%x`[ڛ]3,K) n j"&ED,{#6mԕw=[U*ۋxE$]Zww6 &;_y;?x(xΤFGpDlڋ+Np7#ZDŽWG sqG\ Uac ɳЩHN[#5 YA)`4(9_=럕ؐE>Kh.G.aUpn-a$%X}dkdh\ht9odMQW_yj庖}tA//Zt.g A=}L%A7ǙF涉Ɓ`/#/^%kh$rUojK[;r]]ƘqlDOƹ8gݮd!NQHGn=uġ#FLT*PM|<^M=ÞIi3n oNתra\-pBoJmѾJu7V NqU%ypbaNY}=cIG[?@:c;Ћ7 帘JeFTZ%ъ@:QNmܕS#Y`TAr^OʕU,Xli`Yg ј/.wN߃c [Wta3Mw~n!<6RFlaBg; m[36'R?NGzrsD(C7~Wg3V:OrLW1!L@t3,:t@$KBas*~9.|m!58ȤoƆn o{\U&lSerYWھzmgd`H'gD;J)&<,j qEIj};з%(%".*Uf\ڱkp&SiBI-;ydoU ܅}2>ݿD^TO.|!5Z8E ^:W.jGf⴩k,}5)m4$fXC%}MVژ9A (.-z#Q$Y =V>i/򥅏8#n^gwuΪTn|8̉gU͞|94/Iir:^:[;zV:IÚ꘨F7xQ 4xHLĚo6Jkv0ir~_T9 gK4P(R\,j/ͳ2μH^tM""h2:,z9!̅dl:?O2go_! &0ALJ^&EwJcgEGpgolӈf32[nhd+yLkv|ICq}P jt.dˣ>C5 qN ۠ɋ<1Bx? 5U&3JC]|(3RM<0I~6vxZ-icWwbAJs7iat1rm3ٸsLh&i`:s1(~a܁BbZG])|)?x_HBt (iOmQ/ڂߗ,H>\x/֠Ԝ/ޯ|8C Fu8H., C%iIbdMq8 \ TM&%4LK5)>&r.j1w3iT@Byk듚p9jzZHCL/6jq1˂ O໼6˼ +q+^!'n{V \mfkS"o~zIO~}{s||{ X~yYkx9B TD8!8b ځ iP8t>dνZ2pifIuqF}ÇW9qH@xF,PHg![zA_x  b/[:<>o>$'PK )qWLտ () cpython-3.11.5/Doc/distutils/examples.rstUTnHdZmZΐh %g4phѤHڥ$Fܵ}fHR+_`n/Ùgy\,JڮՕ[WrTͳOE'qFey.t]T]s,j5czln]e/ډb+VYXR )n+t!\5bFlT+\+mJq6ϐ yYVZVdm^_BL׊z#ᢐX)6]]bh*9#cv+3>SJV̡!|l۶Nͱݚ:7vs7'  Z ?LU%Ź*t9EVJU0ukM%KjPutVQAr${8ɉ1pn;\U%)em>dApʍmYhEeDI5!2A@HZ+/) [@R \CF ^!a;: h+P;*I>Pko4Dq],8Lң뜲đrUg Q`5&>'wEҫ}(GZPgͯK2Y^|Un5rTRIG^*y7w9bǚM{J|H( XL1K-)䇲-j{d2hgݬI肸b3qdݞ c& ޭ<fq{JLiEʞW2@&|D558sU?wp9Ow"!;ɉuԒՇ0i"҆4uyD+A/#9"^ʧ.2EKn@H!2ԸUƨ?bB fc520kIyo`zril2! /T2 u=a-`Sy(e(:kQf?eӰ0>hWBSKi7 df)L k 8aMdZ 9(|6,$IY,YHx{TPO-fn!}> r45>^l;QXsp>݋~݀wD;V)CW=]K {J߹sn_PL⻫̲ǣ>OK}ރU:y6* FUJܣRB$=6 Ŭzs!~dqȍ B] 6/&?^gntA"䱾Gq{u6gmY-u5D}f㦱/7 #,qt$-D্~[,h\4n^ I[Qa R9Q{Y)[U 滽%qw;M ,'Ԭ`]P̦~',YD@- Ep.cea5F`߿+{rG K vFz;$2qΰ]]|;Vt(']u"TUe|.VU)=#U^gww6<< kZ+#.''s YX U|x(eoOßqFh(wl!2SXYMk;P~#$\'-|5nI"Le,Mv].ˑV/1k#յJeFZ$#-dLmv9rK77xGĭ裏~࿟E~4 z>G]Rޜa;cPH v  o/-KE8vB󛛠N`o9 c+kv>@Q*,-%DVɽou=)9zGJ뱊CNeAWQ8׎A'$e z O/ӻm2{r>,XƏ/ ctE_2:ԕԧӘo ]h6Qcqh&E}oduO.-&#QG:R FIW |+ު~EÝ,w}r+~_ituYI)j/k_s7ס#\/'gQg PK )qW0* cpython-3.11.5/Doc/distutils/extending.rstUTnHdWm6_6h!e[{+bK% }f$r.]kޟyTr?m[c6a [!]O1|(KilMne|u\wtz,GX4FYYk-4{57yyT/{㬗A}2ܻn/>n:^aȧ7}\^q4fdpO@e2n4rPuE2Ӆ<L;-ELN5Y:(JlܑJ7QJR,ArW19p@{H0W7h8 ʆ]v Y3{䊔l`P|Tr(0d29>#\`56Kkp9;[6OA9)b߷"_6}[:*oHkFkA+r?~іSaR䥘06/VKy=3癣V--KvKno_Ok_Us:کZwbnϗ!E$mOxo6o޿an  Rι67D)0.ؠ6G>BAœG|g%$uTbPat1".H:W3*$OJܩddUF큅pu/$?*tзT[^Y9ݛVFip FrgyPcjGl%'C;}XC*Q@՝J7u{ "zEIrvX5y[x?欃ݨK;&tj2TKZ֓0W4;Ay&ɰe6Yn-} hC -jEjȼ^U2gdGpd,v&pwpW)voCI/dU%]U%ooM^E8###թk56j0XPt1vֈ?HRE2 :{c(#sy BJm 91r7T՟wYJ[C Vk_;oʰeb¡[G8. E?ÌRK'縏UgTΜ-O51 f mS^̪hp 3WN} 3DO`Cv@~g@z#(C$4zxD*j:U<[VdE4JqK]D)@:Ld6g"S&F"S|+*]PD:T k=K0xΉZIB:4#7.%_@Wm3 _(NDzzp xy/si% ґUq/RgVU %*mE6#7hU5.O ۢ"^S? Stˣ?v~&gسjv7V4 c,u a%zN 5tp ~ &1\(>ycLj 4TPK )qW& cpython-3.11.5/Doc/distutils/index.rstUTnHdTn0+-hz)RA GkMl"a]ʲ=D8;3;뺆61dl0NsSUo^T ̊Qi|:[+QaK!޿jn2]5sP5_z4YK4OCaRH6@kZ}|!?6yAc"gګܓK(Xj8P@=k[P=`VDCC U4Ӱ3`lXė7%4NP"x@NxgGIH@D16wal 6X]|1N٬H){%|ʢ)!-dUl(+FA)eWX-]8I \0$rCPe=z^|\ /IT"/N>l)C!w6i=7R9W,cgXK='zQl r].c#ѹ`!2Z"`ШOp0ȼN9{]}%-Y?P< ޸b|*"Ba v/KUi`*81^GB#jQ-) $O 8N^@Uy"Ҧ˲v_1ɬ4pؒt+D-]g֝tH=tA,e^Y&򴃃VPK )qW:˝| |- cpython-3.11.5/Doc/distutils/introduction.rstUTnHdYk۶_C2jI\OlO_YA$$!K,= )SObKpq V꾲>~iйuQ}OQo`]Sf YV6eWfVބ ՞JGӭ:zU?&=ΫfL'xm\ߩwC8@#T_kJHtv r;UGSt/G1[+Qsܷs]a}b7řܬu:3ı֛FX^foG[tG۸?E^f.hWR{WK]@G9~nw8خZ C6~k73u[[`W7ԮsGuDǻV u2NDyw_ V0sE[ʗmYlmyj= C2XX W1 6s-.X&ZLZUQ*| Q$'"W/.pK )Z&Q-}^:;_~4ٙFlId`UD ٩og/"u`K >-K/Jz/w3"_g=L.KTz$,5q͂"fd3Z W7@ R'!1 Hi {kv=rpK}hgZ:m(5f!hnڪx=,kt҇.Pcjxx"GBj hc#$rDզh@曝?it^Wx̚ɗuῖR%Bt3 &O'ITlcJV%9t5G{&z>W=-1UT؜ Po[$DlW~f^= Gn/(oԫ6_rOAr"il!b `;Z%UGtVZ5mJɠ묓cfei78  i' y&HMztsV{4X~S7$xpq,IHUS`!+ȣ9dp?֛.M]*lc\gQ|6N> $ c( *C@\x-,E2wĸٛjQZpIKiM̚(ԕ@ҍYW@"`8k}lBͻO=sQ빣 a/o%LglP.ն[9}bmÅMw$^S-Gp$d!O>&C'sW(ࠦv:+Ār)&ѹ!XD &Ջt#h2SE 2v2y-gcMA;2tNS&ԹReI߳+M3]SX[Li@ұ#Qr ^ όzKή@.IRڼhjIGu C:rmB5'Cp}\z.+ٵQs YwL3 ^dΒ9 I*H\$SY="f&QadwχaZ?i$i&E:Ɩ{8zd޻Z#>7ÞWrg%_g)V_O[@/rǝkw"v(]"4-JnjE>QEqìCkYθJ~7OQm)PHC:hAy QV9?q],~@6=}e8ʣ: ثx>$@3 ̛ M`v).]ϒ[4c[zfB`t33]DƀTBZCVFl"T1F-=B9⊁#4Dx&BҁaY*ybmYk=8:e=ZfyLH*zZniP\CmЍ8P&^Siفޅ5۹7w [1y‹]DB׉+ GJd|'3׳i7+EC?-AolqW{ ǟ8]5&H2P (5[}Q}Js ]քoU+R5ctص7_~)=x+ahm)7}R YqeH=Y;JGƃn}w IVj?=bfj3_czkQ6 ")&b7s!u˂Eꈃi{M{%)[xWZw1Ȓ[8ԭT䂃3oqA@; ͥLj:Al+2716ϪH{+/Q2]\.7E_vseұ8yCYRRrGT6\y6RS|(7ͮ{#%tq3MzKCŋ $ލe^;eWLB:硁).շ}i;K?J'T58Xt__#-8`֊-5 ֔|''\RcQ௦s :MFMMvp 2>S>Fo@F_GB$sV3RQKΎdfMdbK51O#ݰ~ϴ$/94ON:|Q0+FOWſPK )qWI- cpython-3.11.5/Doc/distutils/packageindex.rstUTnHdQAn0 >Ua7TĐD-o®TB},fLvW5k^xՖQ΀Izv 9 iW/۬Ui;N[ kITX'ԽTt{kZ]nVFfΒϦ5@*]5De}T4sݔψVh Hm>`z.e*QGj^޲oo'~C>O&},=#}ny#4Mqk57kC}b>ЀG;neM. C3% C{@Y+  #['պ/X'9 ~~kOe}jtOɭE۬RGٌ7rn^@ףXx疐@e_F7G=T,Ebz5Ǣ{mO*M=i鉛_w秧www>״Ӯ\v!.Owܯ:b1z6fIx5dUXE"#bFSCtLHmYdQ%]#br&}@Μ _L_̋ةnmf墜 #Qk,XqGC?IIk\Gi$bIJGŚ3y>o:A=SqrD|(1@OJ#9ZxһfS ) rRsijX;mLo֊0/K=h|^Jdg`MHȗMoT2@c#lltכ~%pY(d.= @oP[" DFUEwsҙuEbF)ޓ*/DkIm6}KD%@ od*Ye7gw@2Y ^[bȒԊdHA2M+6]t[ѫNuNkڴ$i4(kD {{)=^(Ovp=+rd"_ȀqY6R@Zb&4R!_IYu/)%E:{Y5 Dtքh C$cn۔is@! &?㶀aMd9V{C5l*JjsDMYV[rL_U_?&=&5'HN KD Mf\7c9o-n ధmC8m6kNRH+,'pͦf` CWN8$PX-YmЍ Y *jAG٭8$F ytʊ'&7-s( UVj3eL+Q)e:J,>q-5=.Dtf4}Fa`j!bkz-fYֻ"G ^*тcAO˺쯯#O+v"h'̝yk PܪXb.=tǻ+=+zZ 7mM^=Me(ʮŤddX=!N+ciۼ]%asAh~U',@fr&o7{@gucuCt;T8nw!<6̻Ca&0ID.h3UPUb=˴$i(=#Lha0|>M5V&{0Zo%Sa] 1ք+ hthߓd/Cc'-YJ* O$YNjo{:(injcĻD&<`(w3HI'=B dwEu?v xk2]JX1E6=C$~8m8!T% HM,k,'֪c{!q"Os穰D[;'&Jn tp+{ Aa#~V&,sHX`s~ dcz8y`;D❈?`t;z\AZ.RF"x8ߧÎF:}kLUmX8|@ R8PKFSyh%XawLS H'a!/f!fC&*hu'''d(,.+Y[6N<'D~:/Ň'x;@ }I"t } F2މS{$V{&O"K3p\?.[Roz"c*ņ-!#{0Ӈ~d6v m$Olz4YQ7<6j5p~5 :@K=VQ!ܹH1MJa; PAҔ)q]і蒤8)9瑬"h'e H>=2洦eþ+b܀sk];wFdآX/Od#, ?F9Iae3c ^;ܑ}L5ӿVp8Oʦ(iB6>pS$uJ_R#T84MiHnc&B_\@IiYMI"țzK k8Sxb:)=J3ͽ&B*˲ұ/@?KBD?;f W;h}?UawXJ 3fC<%!I".o;j_RW,7}:IײW9D'OP;҉[  3VG$tSv7%D6El^H[4@glDG2Dgsslr`BBZд 0*t#OGѥk@/tx!_@Nm=(ÐY6; #q  J-Sedn]( @p6N&ÁNÚ7Q#S6 PAѲOz\⣌JtwC4N^d٩P ƒUkHe+KÕ}U*DrSG$ :a)Xi#_ϝ[K5dZDyp63y{]E{jIӧv&b_2rUBJ:(LBy@=gim_2 a#X!nuȇ N؁ 77 |!_C2U wѷ3_\SEܘjgw*F)J60%8º&F9_IPtܻrUsy//?2׉"Y;?(1܊뇽Hk(ˋĨߔO,iT~gXsOt,}&?=Vl\ۺ6eE*rϼK'yX)WS-YkۦkLYp']]7Iڪd-}.q*,E %,Of+,M@;*W `h}gy} ۂHYѰK4)F;-'ks}h*$ZB~G&*'Jc1V ]TYS7)YGoX xNRHBoi Aơi~[~+@?Fo!nq$ڰ:oþ`q`$$2u<-ڶ؊/,\^SV鱾#÷.i,dKȰTXY Bw˓a d$wY(F+ɍF%JGk[~yqF!c4>ly&3 \[f%,F+@Cj?k>v%O'_U@-3EWcGhQ ILy*e"Ve~ZdG8l T=\l} %_65= ۀjyͫWqYh`oШΜ  ~Y =g|&\圾,:u]άb,=l9m6kdGfY5#h-1zgoK;.x.O;L0I.+GlIFtFpd=2#s_i_׿bEö) ̐lPZ#̖H[>d]蝦LQXJ`1$$D~QV֑m2rvljp=lb 9oJigŵةf+54#Q!.iWr6"ϱ 8C袒Tq%"`-z뚸Vma8m`mv]%W7qdu&ờiS`d7 @-N]ȟ GBW&+e24p-9vLL.*4 8R ue#֒aҜHJZS[ ]_#\%GAGƔ6Hƒ۰F-k/n[#/i[:Fz/ Ӛ-<-{#AwS}'['7XWtǼVVݍ4ϸjFԵKN@=ԯ2Kq|47 #rrk 3E1FB{l9)"ATT'CїΠЭ|l T߅dժy$m Wb䃮x9J{]S;lNz.)>Z utpoO*,{3v+BF{:$kυm;j+O}XUٺh,$)rr2@pp@ۦLht^`Fb腲_XPɯ^ff =d?_bgp '6լ\2!2sR]c9q}A dRM0)/lM\4%[3I,峰Za /le̷.񑔬M9ѯVc'&}2dC VT$+oB4I<2ay _T\1^˄<єC L^ڤ˝6@7Lp=|APA"NIc0XDGJwK0q1FKElJj=Z!='T7-4e@< ּtr^ tbq.!H:\5\$Z1J_H,_mQrߝ4x ~~ vztui{;V- kkH}Vwm,ǀ36y^& 6PפydPh|Yli$D콍)Eb\p3a o4\ѭ , `QZql7TDcYB: 'W W2g@q\Tԃq+?B"tr${kT۝J[8,r->3Ǜh)\Z׈P'M:6R;ϙO-͝U|$|[B@zT3U#W_%*(s#If> rQK+N4S々 %z"6̛_omj֐Z N#:R_s ppcu!t|H+ Ա9vbQRe]$H)G4Az.xK3??OqRRcN:Y'V|O._՛;OId3ĞvrX並E~!YT+U$+r!YLJAt `y3kq3'T#-pe[V:vP]w:1+Ov*CGҽ1U^s11E]%$Vߕ? fp?9NH%]z-M@_K+"y,oO {|^yymZSrM'[[Br66Dtҥ y0}txc" %wT(= NzVӳlY.`~ ߞ-;_vg!BS1A9qcnELɬi }6TfZi]ؓ_ڥPPWcGYJEaUVrQ씋l5$[v8Xd.R(wWCIb91z ITjuC& (ʣ9ܥM,J$WtjdXG)BUC [C-B#"V5t Ԓı+0p٣q 9ھm2<cҊ0Tܤ]ṫf٤s@Iեv?&u秒LWc9- +C6*N_6 }z!$ sWc@K ?2y>a(ݓѻ/{]V:0jG6ʿ{R_n\0 Gݠ{?|gOdF\oj#=_xKr_`V"dI>m,뵇>'>~xܞ|Ǧvr 7B[h!?| Np*MLnCʞ ]zq;$>{9#c$~Lq˖{x`F'A7~4Z;'f.n%zA K?|. sݽO#x|v_ULݙؾҋ;#+ 0Ip &7L5k( y)Eωz{yM]8ݻct-5q1 ϐ&7@gZ?x+xS$.-6 `Fڧ|L+-"BѶH@r4]47S!-:+',͐IIƁQ74T`y<(}C8)~SwB!r&A,Y̑.iffijs|%CtXLN nƋS-.&F۲mj~|JfMSL/lMf^rXzNhM-Lo֟3_ 團:NvUoz^'*׮T6a)}kwWS:?]1{u*q͸O{5-d$Kle>Y3!jSߘ#tpeNFt YUF9|}x|СcôP!ݢvpl>bejMg%[3m 2TstdCf@<x9uhG1;ܥ|؊?uQFCWI[=ɦ=ipRN4Y#ˍԓm-} (pdZ~,iJu<8lϫߠ1mў^\͋o,|k:M`WVSDC"HBwkoVŦ-g%fO/r'W_E 0,#.4+ҧC7PK )qWPZM &+ cpython-3.11.5/Doc/distutils/sourcedist.rstUTnHdZk_q?Xtk;nia@#7m\I[S\v }MS!H̙ qLg 5/kYvO*z#uYZmVguQuZ.֩kZc*wJꝲ ,{ۚ}©ċUeNb͝5;I3q0Veav;Yъ\YkDAf(kŻVҩX=Bn A,H~ רB**vtd#oH2+nXh\Fu3J[l{%̚j-kcwrYV4lli<ޭ@6Y?|+͇|*nJ7]YץٻE(dp҉y;Gy,/dk3Z*B?~g'Ş,l+YUlvRWrVa/g3eQ.x|){Cq ߲/?ÿǟ+aLhHa{Sܙ<&OqhWǓz;y B"Шʹc5WȨ55-4 BbRk)؇m/*fu8VU=Y<%DzVpXU>K|'8.q.?VӈP{4ֲƚ%ۃ.˝)*y%֑i[JkҖ⍇J@WTp/>Zi UpiA *ӀvzWU]R9 ߕ 8I @~;~sݵU1&Z.2;I"xkm6ny}ݨ-|1Y?`}C9ET*P *D5geh9'#Uş厊aIYZ>{f1DYD)9ˮ>)eZk:R;2Et,*/؊ڭ 7dE0U_gByϽZʖ(NZp1mK8-=/1݂Jbz- Sʙ>YQ&o8v6.tC`? t 8Ί}3LMST4 w8St 8;CTY xՈjgp@7x'7|)P(XÖDd" @~Q-7{0M\$ʚw&K`Svc}hWnY-`V*@Uy[@>($ .)Ɉ+^[(uhP>+9Sy.+EKxkW$9CeH{C;RK"AGXICc/{璅h_^ H v\5~|w/A `g؀j:ABp1Co+}B\ iKSߞDM_* з؆m)[sIsqs^yFXHe%c ty:lMf,:f# Pj/cqդmo5TW<;j2, _ia@z_.Ȉq)Q=Im;;)jT71F!+"©uv\ųnMA,9&EƌQߕ΀0kh+sJMVeًT@u80Ĝէqʑ_xy"_~Ɽd U W?w;vϔPb!U4*FQcBұM3"d%w+@"L50f7Kduc]I?Dl:fR (=Y cW#I™#b,X'm} 4BN5hѻHѰ&_TY49kڜsqՄzԘP]끻't!'!aq#jGt L3ӎ7'>|?|=Ne%.7푀c&p р%0*Sj=tEu5o͝F&vufJYPWr~jĽ$ Y1ll71)!b3'&?Y&L6.rОpD VLZ"Qe 1< Tj^w f` 6|(4/v%,o{6Ku RDft%;"!GdC5,$ ž=m(Kg hSAT~IMTd tdNLa!_ ~N1g{љ컛DkAq'/:&Jo*ce[FovxxAmrPeT0kO%΋ٙB||[?%q2q9:bK)ZT?tzgse,H${Σ28֠!2JSF|aŨê@ܸjaNVqU1~ (gF2'p$ -skU~ 7 q[?l1IU J>kbTńK%KN/Cܷ̮A uL$J9""LyjJ9҂jN8Hyq9fѐ@1 $y{x+1aHHgtS hph:%my q} 9k! Oe/i"nAjJg*T=~A/oXdߨmkouHL"~D~d:j/t[q}sT|@ Lqj+ʜp3h͉G}j8O@9fj,qhj3)Y肻T%PBnl$(\M !iΰg}r*t93z}T·^jMCWK|> qtzmCxb4 ]ERVӿaF 6p϶EU -PK )qW:X|* cpython-3.11.5/Doc/distutils/uploading.rstUTnHd1 0 EwBs!=o-G4D"Csyp97ۢ8P|%nye_Qۇdq򪂑'ƬMCX9ڴԭM^T:WxPK )qW cpython-3.11.5/Doc/extending/UTnHdPK )qW|] ) cpython-3.11.5/Doc/extending/building.rstUTnHdXnSYIq8c+,vvggfS#i{ CΟ~l] <$Gݾ~i*WVw !N>?ōB|HxU;mjNn+_^k'3U,f TKyNYVJb]7P;>}uaq":CIcZZ{gm'(+ڜmJHWͨZi[vv…2X_w/>^'"m BWVhVj'㲦:jL*>U-[Ga.ץ Z{T,$@[M7,N28bU8^;͠0,KEF!vڮ\RravE  ín zn_.sS2?Ƴ$m?1q3"ДY?7ʙ1[[48WyPi6-׍(LܚkUrYCCB\J~:7 fV˛>IA,`hज़ģ eV969HY$~ڲdwEy{A?nF>j&oi0h\q@ciwYk2?y;;NcG|bLb\n1io"@IT}n mB9G_LM")ICjCC1ΡtEst IFY%&dP.2cpr"%wՐ jpZ:mu TEOxncfgT(YʢQ=Ji!f^y75/JK!-ԏB.a),yR'ꮁE|Tv3&LܪP|,v|Ȥu@3{Q\9YMh UYݠ e.Kh^aۢH{a5 Q'rA5X;4LN1/] h_ (ڡ2Q5rӖhc.Q7A13t|S OwzSBX쒭Jj!_Y*3K&@2ZDG;|1 c ss" Z鷓BP!zKE 񉚁$\Y ^q1% DCtewKZZb=AuFP#R54B]PD)`$2WQzL(wp^Uɘ~+l Um7SQD{tTc@U CǟI{Lܨ HRWJd.b7btcRQju[mrKu6yRGkouq3e .@;@m`Ipƅ̒ h CfZpGC~8mɪ/$Uf=zbdYQh$ @ZpX+L`roM<`@n5qH pP7k:9rX[&bMгzݘ/(4 ٝI;RުBi-}i},8T%Fy8oۜLO@:!\I,/;e,N5 FXdq IP}qf5n̜&Qt9 BKuhBľR 9ͼ3cJKt}A7a QHAYUYn ~/g_;ў=?xΎ{P@$W+0O[gO/>ý_|"P_ꢴIܰWEm]3cЯMQ˭k>T|Z}BUg8ߧvlު| ݡThx/! nLlo1/%בDHm-۳_!aWHO,z|ZFwd;66{ a0kRT'Tb:g+f*d͌4nE)A u6i jF!Pzg`%r>HbkqNG'2hM*7퇐Wba`]a_61) Q)'" }p\s4i"t6XX][R4zڕԚф@% c%v ù2-l2mB* r[h7%Yfe!F;v놽N66|~2"NVgjᤶ(HIdqN_!cwuj, ?K&Sz@FX~Ef35/JR"6-mD{@Qe>JGA4HѠ~tI( e>vݤjn͉h*fekqN/l}D/r 8M ,Q}Ky0R&- qx鞎>'@qLRy9&h^/<"W>XQ o'[`Lҁ9 eg!& /}A;zޗlI%9z&2kj+:uB Rgb^`ج2RI#'79 $~)j{~q.!~qqҬ43&?gI>vXhdf%𗯊Ʉ%soį\\Tt)$0T|6)/XN5:bb?að~TugV.Xxs9Ӻë+VZu:JcץYRs'7߀d~F'8c:Fa~6y)x3r(+)X ϖPxxNum+8ŸBIa0(D2!M/I8jm-uSnK LQ#dT|us )Lҷ>I>QNVkG&x_R'w# ł63bA@;w{Cax*w(jJ_Dcr%  S[MHA!uޖnRMӟ/Mh`8>EH#|j:4O^? D4< F JhZ)v"?'B_tww*Jj-4u:zh8yN֡k'G.!d6T85 ij "x&#I bB"l톯#A 2kFe2OG8f6_t> (&$ʛ-ByD#h0pupR(Y OFzBn;=oo r憠1r4~壛`לtWLQP?_-o|zu~w~[֎BS|ڹƟ$|,Hi90 4 )ɳ'yBC<64?A350 I CJ:Zp]v҈dx+Gr]!)oy{;-K AS3*en  ۭu[I64ܵ*_iwȮ72tVFTE@Ŏ˟ba^?  ua3_*e ՛7/H<3M;DŏEZzQ9$H欅54up6e8;;t' O__zu>!h&/_ys7YMod}e,|J3j'ٖ,gq/HqJ$"*tPB7tNS%ŨHYS? ~v/͖&ېu'*=p{g lOL c+T+0";h[Μ" &r6\P&7CjvA 颷§FVd|#M:;%\_!?,RGϰ ʔK>b, ֆ~{ M|x"Ԥ-cnaxo]ze ѧ U=V? ǏGhV'PK )qWԧJd* cpython-3.11.5/Doc/extending/extending.rstUTnHd}[wו%d:n2NB1eIK8^D(U誂($}9B{gFkI"sg}f]y{ypfu+eYݞUΝ>ǽ7..Olە]yϺ:˗ˬ*]h٦^EdiV}!]M}䛌^eٻ.;_9o-k?<[Ui']vSe]ٲlEcH+vٮMQuZ뛿;Y4˫%"_ 2ɛ}US ?Μ{_gn.h,7Wv.97EfWUW4|QLܲX/ڢUwmESoC,|(Zn;[]a4+7n>]'qY-w̳KֻfQdr]d7bcTwE,l>@|wz-ײmZ ٲ^J:L4w-m :_;£O m/./nE|]qFt_+dhvr@^IXhn8=[W@(Wm[qbp\fM2M͇"7&)1Wt90l ,,s{$>ŀ][/tii8]kpN9/Vi|7_V%]m?^֋vV֟n~WBH}Wص]/e13ɬ`xţ7q+/\ Ѧn (CQ'YWotwh>hx9>' }ˢ;#u‘=mϳ1`EPYӭršlXm;=D? z6rͮCt}4|.4Ͼ3:3>P3v)+P G׸m0LqowLб̆(A׃s[4tվsFGjt4^Hqvs{t }V p&.G~_Y"`Zz3sZ)=l]\\ʀN"`b vcTUa\}o^'w MGcs Ad<_Wݻ_w‡x~]IĖ,`.9n*ѲhMycDl#H^L",_iLx;Z_n TDψ}ooJ!.|b @V-f12a݈`if0 +pИ r;+3Com3yt~"/*`yX]A l|7ŜaC`ٚ Zs5gJa~sSm=Kܴ@#bhu~rqQloE8d2IC?gFBGY)Z>p=KZ>$"dIK=1&Hn\9۶[5>LﴵMS@ay4Dn=IM$pDz" 0b}!&{f}ҏMケɂ-fWQg~lrp~ZUQښ#˫WWﯿե|_#d'ՄoOf}xחLAƟ|yC~ÆgVfnFs2{(sEÌwZXvRL{UG[ti@<">5I,g6#DA$'462lC?5U!hIc.|uHaPe5$}:͞] "44~g8XA!ZnQF1T40%4($*9ƒȳ%Qgs =ޙ! ;ԤfND1B f FK" /+8^wVl1UgkFb)A@lYU[͈/a@'1j܉V7b0~aM@'J2B=/K NSAޱE9xdl{pED! O *E5r zS8&*׎(PM\z!ZSX/=P%=Vce rDmaDjʌb563/Wxm1]qP읅=]N]XRlFS@>pÝp]h#G1#K5ѣ1Sfw额=h(-4mtELx"bY+‰XB]a&Sx -L(pWBض8|А4 ăӛqW$d\j٭jsx0>/#|1d+n:QĉC,7fcQnǬ߾}usO'b|טW?Ś"4at@vk" [qnjaɃq, [S&2"j;\;Hi}OKʂ!$c7(^MW>>1/q)A,aoxP.#ds5\SќeFt"G}QH6ebL~khf,Xb,8Mo^>wS/6^;ؔ@F?NF4{*?hc}~*Ps*.%}zg<^8Y[vՊ.ʼnc[ػTf{C=rċ@_^og.Oy>Jo1櫱 aWur<Gi?SH6ێ\ED͢%%msBK@U] NAV2d>pQ揈&⪊=@8@Sږ"꛶)` x 웂e#{VeElY(gF(C}'pXxBL3X* $>ܰJGj/\?xa_ Hl ѭ: ojC}Ve#dy@*sJico ƬDO\P<=`;"T!3nY/xʖX/v>ej8xlM {! OY"cχdXSϞdb^J;d#wL<| īRLb;iDmdvQ|̾!N۩ vXo{@gD3 |ib32\s>adMǭ" I$V)8 z1fę,Vi\FrlmZjiKȻ|6_/5erkWF`J#K{:?C0'"Wۆ"MI7F_<%,$`J&s3Fnl2!5{U&b7&tD(4Ξ}jk/tSHL>/ mBd5svH;WtZNc;E<ї-o2?GC] &=I' H.6o󇯚">~ZS{pqdW%AlcYhШmYp\DuWB3J| yEZ7L#IEe2kb'P(UDpJAF}q;/xh%I%^_` h+o \x;5|Oie H[ XHVh&Uay&~śof{."7XKY-#vjm`elqO%j |bRF;,ՏDՠIثlz⻲ZaxFJ<2hm:R gޯ AJ)Y&/$P‚FG#,m^*;D*owKJ5$'nq_"j"18FW ZoǢp>(+ ɢ׉SreuwRiWm=!jUb.\ow]tG";,9 T=5NΕ">$wV̦~hc/sqY)+]ju?EN۳'p݇gȔ`+`G7;a<6jh4A$S5%5|09#;O,gxvgόc`+5㈔@9T2ȹw5IōwX `Rk+ #į$sm3)f 4f-:vm}Gp(KcVӆS4ޱ9݂+bt뜽m ]nzOH06R_23D{{ؾ o$0ΕDw$8tӵG6=o޼~twu U]:ZvW*{0%g#ÈK*ZKan} 4f,bC} |O}.Tȋԕu|~8K\[ql,"R!˺Mm<VvO&u0R{C%!D36-rBd R%&@7lf8 eݓ| 6"nh,ez,B DP 6k龈#a` Qr $;*Qw,ByIO K%ח2z2B^/If BfCHflUɜ>uV$b ?`,, ;-F,[-<d1H’R᱅c4v>cuᲇ"be|lL:<Jŷ;8So!0"࣪\ϙmzdIwD/P6B+iMs&lGRIF#?jUVcϗĀطwWqAΆW^ բ}CdorOb} 4Xn^)ϓIc&:TAS%5 %b);ܽWq>$jWB{ܔL .I/~i-ZDMqi!d zA$U9# N/䜔٢P.qnD<:DZ%q]Wn=٣1[#7EZT~A 3{>fb#,% >{FKC9"yDWqGu|!Ѹ-S18%[OqF*{Zhf}(c?>aٺ'ZgL ΪbGh=ljX~Nok{FYQTj4ҁGDJJJFB{…FSs6%0δ_ Fdb>kwAcd,:p2`U PՖĸW Cp%QEP>Ay)Y6Qz#' {VX~Y!ej􋟤5DH1<ڃ&.^3I%lPjj{F]qPW]gO@[6"KQ {5&5(b/3X@]"л֐Ru1HlFxgEϸYD. avg W)-餃BɕV)"yVZt 5)2B ˗XIW5,#" fNK *AWVJ4ծ4ZH'xE l=[>"+B,˂xe4{%wNxG A8"!t?]@ϸ`05b}/Ժe*=̕ǗCƼ ʎV e>:2g2sCқㄮZm0u=Ԉ?R?gϦM.32. `-K m^rѷ[Y9Ǵ:΋ ~,C_lpۿF()q[m `"og:L2%!Z1嚔>pi#N>#=}&yY@zSDL <;~@&F[,4 1[4|yٛ-|ʶ62g~kUpœgD;IDqjc,Mb3q' Q'$?.bSޟ!U~C"+:Der%RQך?A6iU6mF$~P\gȐ"LdPb j 'bwRzhlZ\ !xsEBDy;&4\j]N"4bkB9WZp(b_ekbDy@}:,`1Cx >IʭS4 A{~`s70Ʒh" X+ qAH!ȌL8%}|*O&Қ*!Q7Zx7-VuqɕcuVPJX [Ϯ`/ˁ$!#~cs𸍻&v` 0P1I@3K5\'ӣ ߡb81D E D(I.wIwfٕ4M߃Ule&r m]'Y]XO^~ Kc!ٌw8N -8#MLV4XYVt,+ $"KgJ+X"')fإ4dG/T~=}:|oLfQ h_u';fHT[/>=\/3spG_9xrCbbLzgMkk? }kNz(/ 9"miF }wr.ߝw3}Іu/;bUNf wƏLTtQ,?\펤V:T\fRgɖ$̨)3p+x(,'oQ piDo\mFk;_䃜fH$ߐ@Js.} |-V.Rbm afZ0 CЦ[drÇњTҾ[ǰs;,⭮ Κ5<#ê Ž"pQ0c-o]M\.c,oEtrDH+/x|*-bLR~G >KIFs^eZu {c' {ѱ^ }6$ExZ%=gD$4I.,i,^0}ˇ AJ$ G VZc9 uYk#reݱ:\B2m\g*և-Hl0cྶ~lj;`07SB? 8qHr8Xp#t~;a;SNYZjZa98Lfjـ6qf ӪvwӭvTꑂ\* >m/`m]C#Ot"1݅> :leLf5)vSip.)l?stabV%udeOhKv}9Ed)d|"eb2QmA2I~O2Tgv~4p׮ɘy-h\kQF=Po_0~>5:N lAM:!6*p7"tS a"4r_7e260?ޏQ/!]\Xy%eR_pùUv(P-GIvr>IbZE<+5 -o4E-33gKK[r31*B#i6|htteҜPtϻ֮f,΄T\s1'!5tOP L(Q:6oM{>ɀh{%cx=͗"^#&a,8'ReM,L_&˥ħvmbT1vY#qBo H\#-íQ1clZJ ,"zk66WGؘG+]zs=GTkm hgCOsű訴 mdRw#FK#;@wp}|c +i7/'! rƥm$\+?< iiԶHL9qf=@*UaC#90xYA6R-x4́NDL8Z&^QҪ]}KFּfm < sTqMgp[i̖U?&? ekYhl$o]"XҳK,&-, tǦQiP2u%|Hav-3Eh'l)]m-ۉ0̅Ix1jhFw{OR PmwQHGLO6[8ylSblօ6r!.DgDYy c*|<2Z֋2j]S읇'f3*nX$R\2:Sc~΅k_c؛!ҍ  $Q f1m/ ѤZuD`$βxW/zI$#F\Ike%R)bCmYY쨥1!rȵ˂^ Q UPʣԢ5t$A[|1Nյq)ZHC`Y#` @ zzv闽Tqjzs+ sඡUIµcGˆ1$G Rۜ E_2c@tEh(SI!}Qm^/_w/N)犜 dĤfYxū/{!b !X-X$ M:9_rؒd˗Q^߰P OYaL.[p6@,j?NJF[-ݢX *4e]*vZGI7pV@S='jI)ȁ(E봺l8vCEbXhrTTQ6BrH_^5J%րml6vUGrpxKDÔ5X؃w`:m-Ǟm&|?W{%IG۟OTZ ?Yws*ws,}1[lME>IS5[q^c57RYʧ% LavnY ]YMLC5FqIqL ҳdnv}WG&eתx/*vj4!ODW8 bgbg]X0Y AX]pq (0MAS:y9Xl7TM]k|ʣZx4Q.m1U;Z)DndsRm}!%8NAWnܩ/+[4#w¨K%' J_8vڱ`6^')GeW*q;1W1&vvkw h%W'; UkZ:e0Iwp'dݑ<9q.G/BQ PI2XFsGrj!F'Ii?ff3ay._C^ՙf,3K@\eGJ8+;ުWMTLʚ2 Պ짗㙴 >?|}6U;UӞ U;[!M6:ā!LFHl- *V28a& ERcb~AinBGjmNj׹n5D5TJ˃ENRFFTX ~N >Z͜R!b'*wg53˱KZ7p=~PX 36ݠBKnq[i4)U.-u=š# Y~$I}8iC˾?'(;eP|gi"J1caWIҘ3߱v/k'%::u, 5 E]K4r.9)cX:X'¾u&H$ZʽToVS/3A>qMSW Y@ rng]9U8=RK@a* Չky(3_>rJ+ o8E-0ea-T.eX7պp.)*c!5}rA⨭}1 Lk9qq?HaBIU?-sجmT:NYG&|f@`j$74'"D C?*%6ʦ3Y6Tf]l@Ep631E|?&՜T| aj]N@r&PcVJ͇9)bzAt84LyraZX3x{xQa %I/>HFFM '=Lj` vϊ%@D"ui$@e/#BU=w hzgMWeX)ݬA 沤Ӭ2CN}t%7,m(DoZSK+֬UQ:״?IN_0q{<T;;^*RmpsEp.I(Ef8\8ph.ute/,G4NMsv?e#d b~ͨ;#Gb5cs|"boc>ʠ:\jyy84/%|cPĹ3_p`^n @ p@ YD N8a(@V"e*XxRw$Da9E'_&.>P^n~yWEHirbf ^W;wfC:T`ƾZƦ9%>3^VZU)Ƭs SP5)}^d(eYaM^~8O/5,HIj<!=5O{ѣrnf)=k<4a2Gif3I~>O{f̩3ՠ1n&JHTO.Yf$ .(sNޘzt+iZ37{-̉!O<ώYp/~2K]ҦuaN44f=s":$ۋKH{Ihhmyik#!apu6!h݌A>QI:]m~sŶ|X~s6w=L RF/rY Y[rݜߌ >MR 7߼ۗ/vz7s- EwyȝrS^*w|Fl e_I15byI^2^`. P T (PUS b{mye%ġWS8O5GF| cMGշߠX=IL<*ze`P.ZG %M$͏{`Uyv}ߴ:$ϗKkHW)'osG/z3!QҼq "tmu9" u-Fbo|R7ۤÁ. Zl:phr'IeEEk!XQ wٟOǃ,}8uV.39`Zо/Df}VJDcmi+[#|~(r)Vu{遤3z('9:jc)@|qH۴,„fbױ[}m ֋T7/A9mš$"J]}J"yTz!CtR?z-}uk:j,JJ}&XQ^R"q"Y:[ߦbgbӮ5 9%paJ}cK@7N]<i17q;q[`i; =-jlENc!2:dBJoW{(X#,B<Ę#C(o:N{"m׈VS$j0um5;a:?ϾZ_Pae(\DݹmkT2B%-(~>#I(OO-1 ʵ2)F_ֺk(HyÓZ$ODшWx,UBF׾:βRp+vAAQPK )qW8> & cpython-3.11.5/Doc/extending/index.rstUTnHdVM6W Kx@F[ 5`/Ţ٢ǘF)}CJv)Dr>{3Sd[{1⧃R?>-fHۊ>uW)6LSl;#>CcU:*7jHMd\5xi,y:~ 9M4ʬhbCqaVjKEr6ze4U t\zguk3\aniG&R+~zr5q=~qFGS¤`jh5Y!w:,E{ۥ<6 {-v=0A|:/uC@GƖ3((I@F ӭUbv>7q_ٖúvS$7k8)QJA}ڳ4/.ZdFSu$L=%eXrhiʄr/7 iʹ¼s S'%Bb6>D[]JQ+A&m \n<ٌry%U4$uƵH&ِZ@M@صh* 9ڡ5d%<IF=]E4:nBBN?U@?g0*zUڃyYZeJ\X+oQ=,F4ѧ+_n!e?AIgwZGL"wU2(7ײN]xf֢ iiRŵ(!U.+=%PqPK )qWV~P%"e) cpython-3.11.5/Doc/extending/newtypes.rstUTnHd]{7r֕=d'WENV*r@rNfgO }8u֝Mr0@w݀G#Vߌvahd6MؘnY4Wkl뺬+wPEP 7Y)Zgݢ*ImSUvlb2 ;KI-iNcwekIa6wW46)R{Ni92[W9Ka15˥/Ƙn<{F&kֶ.7.3:el[Yaƕ[g+;o3< 73[n5fqUg"oSG;5=/ުjhmySI&*es0ۑqcoʪJikzlWk;lY'$B)|I0D]F uR,-Cv4ݪ,S^[^򜱎IKQ;"l¶*ɜ~ -[Q%cZ`U-i5z[)+gbYVDa^Moױr*GGhLxRv1g }ۊ0EBۈ'KD>PSV"KDjb_( ԞZ&ISB TR=0Ӓ7JzQe[<_Ԭf3"h ;AoWw]t$ZR@}3vM_^|<=NDR#(>^/wdx;-)&- iB'Jm&-O}l 6G*ATrԄ{Uu3=+ Q_'Bk5]i{扡\ z)V5U`$.}$EwךJYz(Ioi>yOfbP ugc,!ӕæ׋5yn|BU'~/+G&&mU.Q%uCSo9_MzA]47%IUЁm(n늡' c6\4uy9}L8vOOgpE^?N-tB p.X|HSN$vCVs2o%DR9$[/FG5MOلp*}ws'#{,2NbvCA/ȍ|iדGhaFY:&W$Ɵ?>cwo0]} D[`(`l{ݤ$rHTϵEFMHl.aW3S"Bd0_x8U(Al j?)hXz'Ztt]9$YR.);gyRݏPJǖ3үMR%Vͫ@ qD 8QɋbL`=Y9oh]4g_'9`Pcw(EvU5j-VRUd0 Y*>DUs )لte~WhNI%]n-N%;0QNbJbw'g09274m3Εusp,ERSV&u-Vi QlF 5LJWfVwb ou8iW8o@FJKi"͖>Y4`mU9[rHjQ %u cF$ D|!Ě h`Tn.UQ;W~dT]P8Y 'WDOQ*UhZS{wIH NM#{pmj"$zG bIqg[|\'d)pC :tv!n}3Uyǟ1|=8v9gD|&KZxAEB/zGw(JCCoʠ B[!q ,?8Jy D +U",PDĐgj-tpaa2sV.wר `93;idwTrd8WeH|A혼 Zq`\VZ<3yc?TރUbYn<ӟ7XFX'HqbQ(dN G^ g,H@2(_ fD]cY.z"!Нt}%Ӂ6IE*A"(xViweE=,6q_s6[rV'{CV7s!/]5~0xYtjD:\`IU%`Lg]S1q$j\*u0=yǨbÞmr( &J˝]0*zi/J >v7Ev]B,dUO5$Q"j(|QHU1^<[pcFV&N0Qw}ɞX&>z;<źɽBpZPAϟJ3Lb,\sڎSjHu`#@e\ϬHxskX=o+T4xn4db$;3GHCVDrkuSd& H.!^I3cLlrA\9H2nY!hD}\' XųGm>$n QGI?IFǫT5܌Ѫ|oD~E<IUg +.KoG17J\QLC+7RgMVh?v׳coB.~3Nٻ߿YC8x,t0XIg jXiq Xa$&#*u8Iӵ#KcQ|H9=S5ly >uZ՛cC9H%g"E0DggͺC\zp~kV{³$5e[khC8] ϣ݌%]h- ~8ny)2!2N`vB[?.R>e 8D? nFG-W}W8P|ƿ \>h]|dJy2Ndeؓ_'B54!Q"!M`Aewҧ+7xf $K'k9!䒻Y>(ۤ5Z]k2*w]s4϶Qt&ﺬ.E ,Q{@ _6CJ>sk9Dt :"JnsIk bYt`K ʜMN5_&i?ZT(1DrܿUF{uU5PrV^'@ppwZ"Bq䌦Pjo|""<ܬ R?"~[`jٞ>Nyu†wej5>H=^"\wJU9D*ǟ-tVedӀ[͖{03F>X@`.p8u| !k9OJG8@rHsyA߫:W-'kr\~'vty١*;|d_HG[R9Ic'd'Dw;BDG^ wD=($M'KT!3jHdUe 9 .% =nZylr{='Tu Χg4$mV2w~2RYv1pg1i.>ulLzk[N0QJ]МW|їG}7?g2ξroqQD>> ^ j*8k)ʦ\}/{ϒsgV''ŕQ_zjspx7@uU d=uXsn-OOC%ui[=?S:P+RmTu̶ qrLBwg|nagmX,B\Zk\clթM1==O[h0\|6YY So[ekM(nPd&WJ5m;M\6-->t0jidRӯ(PY`M{# $fX8b8xüZ7]I=Șʪ~^ wt2G׽Uژy\$\FRIo3m7~(oɵJ_T'$I.$5g"hrQ_G X6NՌ4 `J&υm~-NVH$CR^Ό6j ݵFxh>6=   -7nGų?󟤣_D"ҞtgOóa;,2™J[w#hp{HVx'iw~͆OɿgeW0gAH@5]5;HQ^-?mVĢ~(k#Bݙ0ѫgGDylrK/ ~$q \}:ڛf}|n<^l'}N>\ќlkx8VӷIU+7Yz*nR@wݠ7fl摒HXD6_ HUު@_#gwٽWݺr\=b i#Ghd.8{1MՋԛrG9zQ>48-ewlc5yzۃg='|"=z |H|___Ͷ<(xGű4lS|碟\Q c%$I;g~  O…pJ=6VT8H,Z ,~ORk &Cc&J%\ Ēj{+3hHY/ GrkSMA/tU "% 3-c/O n!*;P4^JlH[+C\ sp#3'rFY8ڞrCut 'fqrxC՟(pɕ{pJ3qb#{rdegJI[\қ}6U|W6M;GsO6d/pb{.Jpqw1F\V\wj#}GwVD v9B^?I#Ns|J8XD`׽r7:a+08\0Eɞe_׆SQmB;i$#ܾYVsg0Yd"ܗ`'|34K\^TG\,ZhP>)30z%hHHwa[ 6V%b}-ձz q Nf[$Q&V \2tCV.>^M35Y'eotg纯o=4h {Ïڿyt˚ ʢf8/}5cj7r6>JS%vc8OyyI>E[Gtul'777-IO=UmRrׅ}5߶AԛFX:?Wd$d!6PK )qW&H*22 cpython-3.11.5/Doc/extending/newtypes_tutorial.rstUTnHd}ksHzw63C)vTEd5exlXMjjJɖ5pPdo?^ ){T>5S6IїWL&.ͳl2q YTEuu\nI'{ujr|;_wuSCFZ?|] Mb~^4WT{w.9ݰ$cm2;b^K+/g{~˲m]wmStqݙaz.jmm.ӄflպ;pMtyc\ϯ]Y|ٺ(r'2oۓi5,ዲhcDW|)V,o9?dOf/j^]n2Z?_vNHqoT.\fYC]9 iI\K w[(!t(X'`nz:ҁ+ˢ8{@?LHm"9:=: D֭=ʥ*R_q\< .d0~M&s)5)=3iNM1/O3'^UNĦ* P4k395y/ QozjHDYMptׅ^ě抉nz^.Or 6a"J mV I׹Tŏ/N]z܏Ds0ɯ)Pnx4/nN,t\Dt$]@ޡZ6Hz{:g6PnA8d|j -f-ƒ/ _?xy gJ*n|9TF*|Feb|F[cIȌiX!D0R rB9.l} qfO1z6 &fYH7NLXVz2 pް*hjRP9); Fiti^.qMKCZDsMoDQ$Q=\kDEd,mx &SR Gd6!˲λ&YkM^>&{y.F%](Ā&Ng#׉z]i:?M2ŋo_~|f9&b)ՐbyDޑ]HgXۢv$Zդ8 b{Q)AyC>s6U;}KżHj+7f`{ULY`c+RKc[wXzT>{DS0"R jXǴ4_A}]l?e9aȐ:_|cɞr!gH ` #b47 :k~q*OŊxFpՆDٳgM}Br:Ďp@kaOڎ̳c g<y/)8Rۍ@7m<Џ@Ȑ$/gCtDžKev0A$  9 @ҨY ?3[oN\Nj{K'\1@&X`ͮa|Ty CfcJC.cnw!U! 8PQĶ0'jSlXq-, {i2hF lS`!dSN 7c[=Et=R9EVê_']x֌ x5tKDj]N8)Ȓ*35=wيWO3VUܩM\'ǂEA&M##TNPI0 Ŕ=FyNJ v!Lue( Jw+mlA} Unnp9Iʃ:ʵX<ַ xB8bZ&џ CMܐ˼L҆hڐy1i_L˘63˶IR/R\*>'䣢w1QXDg52LEKiOS4v)8W[3w3F/^,ĥ,[ق|%(Ij(iiA }?~XQYQ8Y6n`K@'ûDw#>`r`ږ&;) myEդ!48 M3EZj iIe=+.Tw" ŃB8DY/2JY I\VM6S7وYYռcZܯ:>t) 3y0$K7fe4ݓ(l|n .g^qJ,6g+SX9cGI34zmb&cQ@}'I/^8OJ.N yh9vqGnkRS^/e&,nmme5BF}6+ hoJ|W(e_.7h|ia/G \*k᳢+ZRf`i1LWs39m7ä5 v2gM$ Y1rn|7~)~zDžۧaF_z+mpAfc'͔tPZX{@3;]!dG [dɊf˶vj[d}L>}/nv+ǬЏG8SnVqz]g}&B=9^Y,L=W"5|bn=Ğ=7v(VA2_G7J8bhZQ*֠xLe4KOT1Qnʒۺ)i L",{)B~]]4gHB0-Z:6I޷zx/ "J: ƫ5ē['_'R7W_[Į{agȵy ZT4>l3 ̷$'x7>\,4bx\0Mb?LOB2;Q)U>#^"!)Ia3JbD?'lG;/η6ߪEM³Xn`q0ڟ\? C~V֦6 &oʘ~@5Ϙ3n0C|3BrjaPJB4 ֣;H,#ّ#5_$ (L oȖp#cE!I;8y %^-םI;}}3f?b. J+5=A[;="SU=V54O]6$SϐE^>~Fgi%FZ޻LYez}Ϲ厐 Đ;őH??}0MFx;<~wCoԂ{GYT}jH/GsL;us8sߩE'2'i#ًҶq[Ĉ8f*Q22X%' 7WF%KdEͫ{S e91kεn!8hs:tKH'&ui'H?N~x3\ I~4 #lolg,#M\FV F@wӐXUFc Yrn^e TEK##QqiߙvlWK$?1 ي~^y<]7Ib>`-uX)DMB}0lH4mԋA ^Lզ?.ھۖAq$%L,D3F=)[։nêPeWǪY%YbM8Z:bm}+??oϐ'(wWOSM2\l)9_$">)zp[و;-EVJpL4ȫW DfIy" }oZII&C"h!!5,Y#dA BLْ@Иw$1ɈPrs78?RŇ9_NnB4"Ӟ2yB?_28\y$x.7qV퇒Qm xba|h*9c ?T%*f܂醄:%xrjڪ#eZFF7d/⤂Cf#HWKx\DP#5G"}!|~BDh:ைm;7$y0D~l5Hdr_,<8~@-3Te:sS9k,:5 H%k?iDOWvm5$0>3=|]a7[yhW5<8av!:K}|m)>harE$l @e0 15b@8:tv'HwZ$>%cwC"mx7o?~x|$a~X E\|o#Ġv~~>eg<[g/ntŇqAnWy٥,J|˰G$&xbk]/f;7\CQ[)&FҔ5T$&wbCRZKgPJs, ;9{iHfI]@_j͝db.ɀ6hBt Lx"&$+[z$ȟ}QKe $y-[/v 7ofÚ $}gAT^Vڲ05WDsD3v*2dMNb D[Uҏ`H7* dB]RY0cӋ/޾;Շa{rټ^$uo?p Hk xڨdfSC*"Vݬ:q "3Gx+ލyw @EOAeQoɇA۝ +0*?qilu~eބQ_ v\IX8XzGq0[+K~885 c)\Tx̨ H}BZtIڨ9r@jkBfxÁ=cm BۛVl4 )o%"Ӟ<=Ez{KGw_]rw;n@II+&3󌛺th5tDxK QnlЎ][S4Cb *ukN$O%J\X2h|/#.zSʂQU.-T pp{2OW) Oz}hK2ե?߽nޏ39Q.• m|$4puCϝX_虐`*ѐ|NskeMJVNa1ĩ33^fbQIS! Ǽ:f RlwYIM, uX,;i;=8ߞVs~ČxS=!+wy"$Vrg$mݘ61sJ'!ZLBzd Xegs/4H]s);[@,9~?!Mb^wh:DvcCR@C h6onZq;źP./6 8_dͼh935< -:pZ2Y>M^p4A ]Dow3zH i8vW {EBpQ"e{=#9á &bu^F;q$u70o,e5hI:g*\m DZ{[j`AFöj#mOLIvmt۝i&gE7Y"nqtKnGn"eAz\:zzʩƛzF,VD7"c+6 DzzutE3CjԉA^]Z hi;[8go^f +ɵ]q^pIdث^$)1I)PoӴt#ţ}#2q9o~_[O4gO+M3 ?)<2  HoA!Vt27Sι\8KRGzp}M',urMd(ٶ#z(f8"{(-`F[>wT-dD*Ϸfh^FxKoL_֧Mm WWl w{&0 TB[kʙe1ԮKW,;DZTm[(ʜP"sx^j) m؆lu5ӷ7;IK\/*'m-&pYjzطkj{3j}<DՊp7*}EK; wwl'{@X \I#|[RK=QZ3 ,j0R'I(b ބ_y튩G{?>^ V;6-1b[MLb#UcG%flR^ aFJ>6 iv8R[+}pGG!j|<ҫ$;ҟԳ~goFHm[*I̔)kFmޗ,fNXثsW Iv *U#f͌N߸q-X8sf.`de!Jȼ@䥽Is&cB7I6|9&M2{3f6 ܝ5v R?D۳ -3, ٱ3U٬mldjwJpe[s;l sǷg gëGn8Ke1Se2}OёܼgL/uƲ~eH#w}R ~[&Wk|bCjoN%mv&Ʊd!0LoMV Q{F/C DnNF'UR kkN˵ax2i n&#cluؙqe2nJ5OF c!Wt/b9*)?ou2Ҫ^C 1ؑEr"n(vm{i-Y 8-2ۯ%sq\n,:"L6^cCߝGiQV c`BK"yĶ`AZR@cNA"(^H$T(<>)g]Z7) j|yS)X^}G2N$QW|L79O^`71̆wDB~Q(TYʻ]";L#g wu]eG]5=9wy1' uǝIis@_Ȝ"E<(Ae9UT(,gw@  jandL*g9Gt8w7Ռ։R_7UX*%Aj̖^grR)k<єTNN 3G = NpDiѳ᎝.ORCYBB´41!R\mJ,,=ŗRGM1:(a"KƯ;䚃ĖΤTB<(a f3j͔$+M?8T9"R!<[A[JuS81,qmmZ #ڇ}ZʋXFKtzBz"3n KǗ4@i!ܜR5}O;zp3(hL<;`B>iM` ֑Þ{Сs2:Y^-hHhRB;uޞq5[s_Nm+.RG 3Uodq^i Uڝwfvu, 1 5oz }⦬5] _#;7e/?oe'_uOpmX{,/FfŲ*pYػn}t}ͮE˶Us)Yt~޷&T~^bw򿺑\=-r},Z*tu Qv;.}2ŁޕmueRo~/We ʪ:WδmW܆*|ln|-eÆzF JXwƟwy}N?\;e|>ޘ_Ŭ07Ww+_O 8|kXu04)6t^ɍevW3W]l}'ܒl'Eq+ۑϲJBAN![x|˖Ǒ5dRY 'x_  w2v{ɅjӮ?TҺ ˾~Zц UXmywU|7s]~lq 9N=yL~Ԇ2>cs6-} Yp_EzJeo1N$8B^p '\oAUʾ,LYu@nh2PSeO%;wҷ}@6u3NR so.l7e'"!5/S-B~;Lv('^WMNwM<^F%u\eOlȹwcXJ,ڷ6t*"0N9xT}O.?ygJܥD!?'EڔX+ #AO83in =lu ʔ t~ HW 9KyR.4'aW_ G^5{;a`PD?t'S4{!b!& $Bίe-F}L1 %U#YG pKQdd K-.M0`wM;!-xa1B_֦[ζG\f)DY1~SBE#QC%t ՞OmIzrH6E0N>hL"+ w/ĉjl9eA\Iބ  {?˕w;h/'q:.c7nV̀}ex#\ F.{l?7\\#9C.k=<'/r?{='}ӗ/xy0V*'C$Fp7xi/O/\*\ U2Aw qZU+]LlȜ>~O׻iw̋AK2*ɨ e3{J,{h o'L{*@y%d+eB}nмۆ vDPQ-Ufqva'b.{3>Bn ;ofy aX>e qBTcU otV ǹ1KPT س{j1+{3yg@"͉X*|x1*~\utSݩ K7cCa8U@^dte2ĢYms}.nEV2AaD)ߖǑca/ړ$tAsB8E?W{"3_ʎG >Z%xn!z7M7ՁG`(Ds"}ˍУZ *HOm U?qЃN<."+95D(ǧY]9$;:yu5B %3Q l *.&DүD\BV{w / <eUBdM4ޠ몽oNE%4PVd4L:`4OySAOR4W?YIԃw֙+x6{/ yXoX3D=ܖU+-xaʍʜd.;Z o~n'KDG2VG._>U UPӜnN&eY x7Iq>Hec}=WQ}ʰ2{Trg2ǃ|eC,'c5ck{j"d|8.Y-cE$#QSK[FRP-ᘥ_xP@澀ePFy7+4: KT'_,eALwF;1xh#;b]'J2Y5)D[7 BSB[j{" ˗?oKaNDr4DIlZ"6M_tf2wZ E};Ioh#ˮ4jW_ߗM5 g͎u7IDw1͡0sEuwI H _ZE#H92HL[ʔy,{y8S>utMps.z|HÙl&ombLm~]>~-C5۩i!>|N=ypӿ'O}( :#sW8MO F-  |Ңt}Kً^UdT2Y_?P1  V=bjl׏JA hT w7Q`˥~tj>ۉZC},4[aKڳIq6~}~q>)Οw{ tSs\LI!YA7MKju)=V Y.,>N,Tv tj0Zh#~9~|6=7b,ꡛ3;Zj OT3݇jS Vc ]+}=`ZS;P >utX(&-p+VF, S@L`D[8EeXK'=_盗L87.FCm- ;7k&++:1ASܑeE#"0A1~SV,>8N-{ؕS#0mQ_XSc %w:Z243lĞgj&GT-HZJ*W>嫐tcICRQ> bk b{iDjCu5)ke<JUG-HgvhM]z[ٶ!3OzI8- _pڋV-ᱎ-b7=K~GZdcQsDanYˍi4iιbxuɽuQޤ9OgO1vlB5GBaע|l>iۦMóa0 >??6# P8 APLC\)N)if'?+>n!J3:DJrfKJMh6( S"-KXT1 NѶa 31߬ L5qGc@҅n>߂ ̍S͝]nD`LJxҵB,.,l4]\QQMTM=$1-iXQ.P,aɛI<ɟE>2 Ů՛ed8L%SΈGvOP<*-aз%#$3Zb&[d&_1(r :j}v }߄ha`G` x' X.uۑ?\ hg<00frTQ fj\41$n Dz&Ǝp"'X1JKL \*:8^jL|;ޢԢYa;)4dz\\Q˧lh OWWK\EZ3ibI??h\\s1ɽ`1I_c҆ (!3$}UCDSA w+zzIr pAjS!ϯ_p<mV4,ff[@-tAz\_[kj~6}u2ӊn*X75j{iuw1PakV~zU50^4z׶[mÿV*7EiVa)A%oHNKa˹eX D!ŅEzx'B28H7Z4A1Ș ݖGSUx,DڡG._iSk9߲nYbjvưr'+Qf97ť˹yդo,,v{0%YPXBCKu4%rTӞ3eF״ Q󄐀%bNn2ᯇ1`#d櫨Ye5C=]+ktQ56: KoZ$%}~ sUuԦjBEtj?^UX߯˰@vyNףI%I݄k2L^5IV&X 8CC4geO6UAyePIT C?CuTR!ܻC)L RqvHK61F_2Az{xin˚<[h9w&?S)pGtIE:$owH# ~߫> Mur.+ΐ $Q@%1dB wk;vw`J&OTE+0ޚؽej"uR{;֩ddu:PIDN݇ehprW ŠVܙ 3Pa}C+g17V+<g[1.U3#S|kNȘ"7A)@]ܭA1=ښ+ҵ9@>DN,]E @ҥtR-@!Tk)r;B]N2 ZbИ!KoY%<'+r?4SQ5af'f,[Y#[ZSV8yt(k:X3e KD<="pet[Fg0̙I%PT9p æ47Gژ 2o&A2ݲxhp׆Ҝggxm gy;zat!oR3V6 hI_+Q3qy,q9xDL)g>oPr7RNPzRJ T@Edh oJ=/+[`u> (REz64)ZD:YhZT27+0!;e5K% YRwQ,1[ cηl(кn1J]C%bZ4OJ(E 5M2AoPע $bPIQJ0諛ZfuB֧z/[ba:zsR!')5Ľ~Gծh CuPG˩ eX`oH6([Cd9A1cX;݅ДJ+ 5؁ҧqX'BXNtr+'sKhKHsnp*Ɋi)`B9Qga pz䚔9EQs#b-vQ)tybɱ9QHɏz (iq;$`a2 m2l7WiĘ'Pnj.۱61$Z Ч]: >ΏE[iq}8./.}/_; N]b3o1؋Y$bO t* UcXRo5ATIkRԒr\lv^Uܭ.̭-wPS~ցw$4m̥Q"CG#k)?z g:.52 |FfuIǵQhS@7SOZSu5GKaE|ܴ zP(FO?8yQUD ]ynPL)ᐡA x0bKmDH8xzOR+,QG@aVGYRkgEH%Wi6o yD@MN֓\=ng**qׯc Z?Cki2F\ &+,;A9C( 5/̔+)>(f;k=s\xjGge{4z%c.֘2f)]̪+Ei߈^ۧx? i]7Sm A(3C-8VJ댧|TI%cs1u7sfZݕ]Ɍ&X!1X̓uyXcqPbq&h`ݾYG<"|jXE9ø T&KWr:<odVG*y[Z(btCw%ZOMK:5"Ne-kaQFtyVL -T.нLyȷm1Cw*  ęK$h&v"s1!vv[!3q@ |cD/l^FYgfl~ eNgR?t()2xqYqY Wͣj[eff9u36wsWoQԟ1={usic8ΌPːogڴܱ3'mMc炫e跆§u T4\JS=eg(>h.>OEf3CYr_{?4GO$>m6֙d;$ݣ#zoZi: ,bzo'8.jo>m&$H3W#FF6,au6k4%~( }LE6k3 - $ 3zUKf+ZxB41zЬrv%w65۟ћDuJ}`n.65'&U:n=d؋xfyηɲt9B=Ea].kXֺT_qC%iAe2˥b2A/>Ҧ$}Ai 8B`1nU~kHLT~4ն>]\vɊM9u;ɖmbK4-8 T})&;DSܑי% Y ~k PR]7+utFR]ԤUUNwȹV[e_ިwd*sT%[,c=JJ҃v}8BԴOf}jt8?8*60k@~gZ7zØ *CcbE/5 X\uknvtY4)u*ʝa},D \ ױO~;ި"?5*{uFID8rz d+{RXo3ggvfk)'4QY *M*(B5U RIhÍ3U˩P,]5KL>WDGmix3)PN>1k;˺gtfB;.""C|35cO䝧7S H S$Mn7oy*z:*gv ζ{d3+"bϡ6WE"#Q؜jCyjeE ˛ c^< ]Ma,w̓hI |i]ڜZkޟ ֑À@ʕc7?$ O $ ?Az_GO>\am-î;sܕ,d')+(smMͼ{o2 Gԏ&E khe6}isW,Z1;(ϋUy'n>*W9t BFMemȦk>wԺiVܑ:3{o1Ju~J kq$ΒIr\.[Y~(#F 8,lAF*Y51"_zx3ӥt1f"$Ϛ_]b(ؐQFF;0JK$/w% ߽zF_{b˚5Ā{و؞*;j}*i|twlXx JRu `HrMm]=%s -ޕneC}ӗ |Ku-6Jee Tz. zBI؛-֮ ]N"wa9/`yˢ#oX/,5اxpZgK!}PH#-&將 ~ Cb੢&:Ȧ&7Ҝ'$mxdJm2?{4^5$^#Jg;n]樰A8b"tV/SKfS+_]Qn Su8ԩKW1%cPDIM3*Q QsML6CwDWYy gwgYM45maG8OzgW*n,%A V0ccL90&선.'GOnK` 0"=O͍Q֊T'cHMb+M}5Xo_}(s?b]+tK7M%4դ&u>ؼIj(IQي;3?>wG/dO(F~9-PֶG.װ W!ۨ[~6.2Ay*`[m:x!% 4ްE rn`vаgLOd:eEhpHD_rikĦ o;ҍ&uN,WA-N$=(libbmbhK?^"2dk{VZ/lumL0g*,f(:>Y4Q^l*X ;F1>VWz4fsilŕ&fV`*-bt5}KR1~y#g; H`ӁGç{N*nf7LeTxt|::ЋYOW×gkD ~9o2Wr$-ɪU 9* 5P7IU5[7"ÕZ_hMΠ3䏚k~(r0j::&/@^*. yR0zh𽗃=R\Z]~oK[Vi.TVkuh=j۔7tʔjDߵ6*oӘŸM㛚/۴6 .?2WV@|[iA'V4*Ys?eDwL K@-:[Y8S-@umqx=WÇpvw;hoF.`R{}kjІ :}])H@g2S#wZF7:1.AA8F; _#s2YCQog> 8j B > X-%,a}or}mU} Pʍ(C/eM}ɸ(459=P|'@(T\.!4t)bktM%VBK,/U]:A%CD-ն0 Obe'eJ&B *V7e%=ߦEWx |$ 5'~EV䈉^*wƊ/8Zӹ+ZW=l`Cଉ)a`v.F{m\NiMwlby/` i'?9dޜ Ύn ;s= ]!BaR t+:]z8"U:H7R3(9" >mdWM$xNyAdAz_(k# YA|>:mz#2Rՙ|@&!9`Aw3Iuz3GVYcq[ e%_2I挶'sGV{$# ,K){n:h߉q pe#gCr{n(W8?`SP/]>8mSS,/]|D|$7Q4*P6kG<֗ ;6QJqE$mS#lC]#_T`XѮ VW!wp#/P #HD n5?{%O;_~tW)t 8YNN!GG&Fb0d2)2=w&R<Udz%tBx0XUBr*na0`QHءVBU;:tZT*<&ᱟ~`b % OElr#O;:ydKl+}OòR"f"Ki# &o@X{¬Vo_NκAE߉a.fabZ'Ȧn&ĕV;s5Mk|4:އp`̂PQal>3_|9US>T"ģi&.`'zl(B|c1 ^}ƙjXNt@@5^W[àGOI&Xɜ[VH@"L ֊OTyD'~&躞"#+¹ħ.ࢂ ,.IŸKEǞ#ݕWWIBZ IR> H&̂**ƅ,eP}_O-cspg#e )C:)E6^Sg(ޫP@ݖ$$Jqz)lv\cK~B)*cn܂Nglkg{̇"հ8p:;y;ҟ1(z2*<Pp:r2ZX{ SgƩkFmEV)x7/Rg(x,5 1t~i-8{oS_̧/lGxJ/(ɳ[D OspSi8.3kjwN}`e)wsaB3v- @ų v eTl4Z151]|xgToF) D<=t̤?7G㸞ri2}R"}K`qJFjA  m`T*<8A'lw<0 zs)L]cg ;. TS+m*RF!t졈 8AMr/h gzT\'g)$ϯ'$|#4~e7` G5uZ|?Φ)UENUF 5ePKx?œ / ߞ լ']|Aݔ@CH\-vEJ6I W qB4qصtvAQaR }1 e&{a ɓqI.tNzsv N SߡT:JZ+['ͪ(z/=)B˗/$][xqVؔ4]QHnXeѳ PJsrxoȡR#OimW?̐TɄshwy.wONaN8RXqmWo{[nOQrI8.EjQ>5EZkķ c&Licd9S|_QׅziD8Ϲ= 19nHir(<|zcR*U?φz_L Kc%O *DZt'f;ˢrdE5jGPfnR= ڨ!0=nT ,x6}9 D$=xEmhI_]' O7*ű@um9}ďÀ8Ma7J#3Fdu_sdQ+0.AWsc_E.*hl3KOd΅ĥ'/!< * m/PK )qWPb[N" cpython-3.11.5/Doc/faq/general.rstUTnHd\Yw7~_b;3(3ǖX3I2sn`ݢ_*e.ZZ۴#,v_]c+skW6o^Qlf|]펎̪]WYfr_nQ%J'7kۖ~e[S_ZhifӸycr?5llz]KSz٥sfefۺ`־*&]Z&.v]iwz|b\3r2rUhuaʆOcBIZrSђ6E\3w;_=|el+:0-:ǒ`,,yY&ͥc ~-ە*mLխa+9=lm[VU๫rXZ,U\ѧʺ[}PT]k)ksl|c<ጫMx\c4$Rl2gi!D# +SNfMI|v Î5MGsǺXhW]c;-+z{leo%>Z$3iG[]]Kl)s+g.^eY<曮,xkm7p[^ 8p0>/>ԗ|]$mHsvgr kpTaOEΝE3o|W|7Ġ{ %=';迚S:m/2|Ur5-C' , fOy#W!Vt^-l;ir#1WrGܪ,8;mg#nNbZ.Ep+&ă`+v; h¼[ V@6 독%p#^lI6ypxd׮I#0 3+SAIX!rQ8M00ŶjbsD~6yM[ޙ" mIW%옹;,/r~iԜ;'GD.@#:  j]v]Ea%$u*"Nf n|#W@X\3++6[ĨcZH| 㙧UֱOloh1 qޑG|eƱS(Вޓ-ږeoII4y  ,%"Nn!/0l%on;vq uEttbն\Ax77{,mȤO_6 րI 2|+ zi…r)THn16"*+1kXdk-oR$[ae,W~ `tȔaDjڊb G O $]_i> N[ -M FnL̜ccmyF:F:t| !BIsg.=Sj]3 Ip 6 xHXHeU;"|tdKEh!U3@OQ3 bh de I 0[v%V >)$-m!Oq,F+,=1 TR$E;NY 0eޱˁkZw5fCl930ȕTiF@s184xnzhzfkħ`&V93zWjܰ?Ac /3 BI(cNYEH+¶2vD@^,@ Hħar8!"; T]JǔŸW]V>."`lNAR1o I+@ 7 J.t|vz,ʹȓ-;$:LjiNWl]M7o:_~/?ud#ihC,f~odxkM~< xatʐ=9w?^\@0T,g#w7N+L7n0+ $\pEbXx,$&B\zWf iM̚t2]2x2X\䇐 h6nI֝J:ud44Y:ϓ:Wg`gxٲڱk=IA>Mwt1I݋G,0䉜>jΒ3T#J^چ4 H3&dqz8<Cp|vxrF /]@z 'I\Dd(9e\X@U+IC_! ڝ)v" >>=ʂ3L VG2ݦ%e#CDcmBxKT(/m|EzIR;/f/gxy@yqD.k}5^#4VkdŚ%ÂCI29b@MEbQ+$'XC pF =QIn 55dLedz[Ⱥ$濙ĝ;bzM~?\2gN$%yl}GB2 INFpVNMf<2o$: n A}Cɣ)k0.ϔd]#Ƚ'֋M.sNYNL0PңAF4GͱQQ<@r}:orO ubW)I9HuI"gt@B0׿ ^ZYRn68~Ÿb~ |8Hc:=;߬z* 3:D("b=TwE1ʌ2Ar )TޛGmon#Նe^u0nkQ=FfCՄyd_5ٌ[e>ӄ5dUa4Xi44!9eXK"~њ&م|;&fb̈~mÊBqO8.CZȉrf YI%DG E ҹ<^aQjK.cUWVq{Maw¼!j·FÚpbB *RW"qGlP׾saw)-Ӈo4͋1 h@gC3$'}#7zω*j,u7Z'ŝa+xpspGg8\ ZW*22069鐍5p{@ kdvV#$Fg7oRW (<߃7lLCXĶ}HV5;YWJ;?t5J8C(cߛ]5\kdAf^dѡ5Y0cc|TVs#Ѕh$eJ+L~U:1^M܍lm(>)ߒ5ul7!ΝRaSC!kM:XԄk!p!ok5G͊< >sk+^f ]}ρrVWç__\Hr׃ ͔be>d~"ļXzkϞ:L!#ȱMqW.u\O%F iGamP(-cKmOj9"1Zqwr2EֻqO"j,[%~ALH!o* &C~ 0EcCU0, `Yтlɘg3/ҽr5 cg&wB-I$eD(е^e ӛ0mQ}qGĈ[o9. =r Gf,vxwK /X쌦SZ Ef-s=A-=ѐC˟;' *4"tsU9(ɣ̠u*C[<ÚD"G%WmGY_ ҈Hm*\+,)߻$>o} Mgtvk~/ -Zr~ wv$@6;.p0AٗoNyIZNљjgb$:c}E WY]p{R%=H~Ч8cꈜRlY+Wc| YCN6?i|B<{xX`'**$ͫ}ue m$ 7mjJ|DX#e9 jタr a_lB {=).w`y6殸˷.bԊȶ\38; ;&h7#&“`3=1R}ג`,WfϞRXn8t4 ] Viz-#Uu9S_w5-S[QG-6$hzQ.5^,Ř{EaR1Q74B{*b (R~# BH`^Ǖ)tR. 9 i\de>4\ P0b-c|O3P8ڽ5W$ a;ҷb>3uN80 q}1DDw}@a h4e$'٠%֥[$ͤ)h7ƋUN2>쟘f/9#w6z/4hFMܹ֖nf^|Gֶcj+^I&ˮlhJ)mzI(xO( 47/]y/~6i[:A6E7bEH:`?tbN^Y{" %&Н=<{}/5Ku* _^n''ݮ!~{ ,d4 |^ [U{u8.eq0(kqgُo :)8*[6SC?H/5f4>;NҔ`t0JP֕%}sQ1hĶU;axB褎R\ l!ih Q4h,b+[ic n_⚸c%[pE2 N\tPB$-\eChA@ X[l ikÂWrWr,}p-0!%Vcw9Zx̺04ӄ@ ᖱ__ۤ=(\Il򧋨eoCCofۮdLP (Ҫ .tTcHMJ*8>zKsXo+icޥp^9GWTdi 9t,C'O =Ɖ4wz#cAua~N2k6`CRγDF41gingQDv^cn ^BZ{zV p6|2\ 1:W8JCCw-nJ/V$WR+s\VTR^.Y 6pMz%א%_pP$6kKw[FC wGπ?0$d2JqS&Q@`+9YǺcXT&y*U{`x&n"(9m8焔Wje}q]y2'݋ӓۓ^<,O&^F9p6%Ũx Jy|~-ѥkA/8MOXץ^J_ezUUʀHW{{B6M=PKLn{vE~0iQ)1 +%f yB+nˍrJA׏I#*sim!?W;t&S>§oMx25_|of3&CAHkT+vrz*j$Q-grSױ1PsA1{W(QN_K!o|%הmp[eV7Z#lv?"yyZ砱iIے+*=F9G ٮSyq]G<Aq"y͆M/3p|]FFDV~r1=rހl\O_A];2w );Bwp݇JAPK )qWU.  cpython-3.11.5/Doc/faq/gui.rstUTnHdVao6_q>4lؾ]4C2c-6 }(8KJRv_w8Zt3xw=2 (U~o~ą] *Y(:?($dMKSCADxTX$0i\qwwGFh:څ%B\(lvI{僶B|e+ZO >Ht)+)uSzJKEҐRE[Q*{fP+)ZluR 3*d`iTfaCM:gs7IIQ; m|@:H0*?+iCMAd6N}^!t>],mŪVnMceoOPjIW8uTdn@7ٸ6+l,O xۻBP"(+M($=0U߀κ>&rE+},5+u hx!TLDmYcB;ۓD9RD?7>!Ted:aYYSRP^Cr[+'[麟{5ޟZ?ٔw;UJmOj4+ K*7p؁nB:/D!~[*--rJ)d51G!T Ps dxF粱F= |美GaSel`!/4DqlaG)BΝ9/ CGAӔ~+ 8cb%כys*HfG7g/}:g^#P;kZ8Ic7ػAdľp ̔7C;QM\ENG۴x[4 1q ]{q}6xe'3̺.hA^(i k2x@TbTXwl1.67T)g AlliV)RÚDWuQS{Lre Ӿh >3?Mn|\\>K`d`wُK"1GDp`K; \_~W(,ϔ=qr՗^od KO݅Ӳ\Yl |FN.~+ȇ,.e&N0n 頯 8`mP>qh>X2R cd 05Qg%[7XI]Jg^tv(b2G#8Ņm^+ҁ"gt3(!xyVɘQw{K[hv[A\ݤO4>>?ޞdU 1$w=hgLVl!?)1X l[fE_MgB46vxE\D^FNk7cYw|GqͰP\acBz\5tբ jcPK )qWVv cpython-3.11.5/Doc/faq/index.rstUTnHd10 E3X0 P &XNkj{{ZHl''K{>'N8v΋=+Ip,p&F=X B✰gDFFŋچ,sS 27*t(KC 9}}O:i PK )qWjf $ cpython-3.11.5/Doc/faq/installed.rstUTnHdUMo6W r1PȻn5g 4SBR! -g͛777?dtgikCTpIxiGumGϤɲFcesUQyW{նd{Uh*UvRW{T] xT[ ejtP( Jؒ jƋ\x [О tD*VѢV&>8R& L%?q{UIF9W&O`BJcʲmEiС9!;0cpew. 51vz='Ǖuڮ~/@diUhϡJrOOa uU$-{Yy~P0apMIzf]l)_hǾQHGBc1l Wv*\3UDPd`C0=C$\ T-S:Т `78}ya*xo:xg ӗW3I_<4|9U޵tm{qp iPMN dAZ|%~4&MKM\ 6Qh 5t+A*L:1L?`8*/ q=yľ&*RR03"_r$[OAb| -)}Z!D*I!?XP/RJAIΎSɕ T<0g=d‰Ҧacoa[(~u*ܱ-oHB ̤U [tf̓5}wHO&^@mkL]榎6e2"ur)f5T8NoGIy&TtX A$oG] OG fnD+3R{. ϳnJHz)E+OdIVyŔFi]teꠑv6=+fz(OL^fĎw [ Gd/%PK )qW!7.{" cpython-3.11.5/Doc/faq/library.rstUTnHd}k{Fw36ٲs#gee9ɓ@I"I3}뭪n8m}{|6E7{Appq2-rcln]6<3ϟ=}04ynͪ^A`GGAٲ LdW*nHZɹ b?Dgф] 3ơnvV@#̖ j{Wc:71GqPcjW:'U8~/&r_IM$}mFtGލm2Q8OӉsGBc=xXi[ZnkQZ.4!Ι^TvjYo 2i?:ؼMAQ@#2f$ٙVn+-\ ~5+6Κ=)K>˜h'4n(D/#3~ 5Sž&j,|+((둦%M7!Mt+ddXyN#SOE3 {KJisb |/?<+Kl%DJh% i~c?zQPpָ#4'r~/h)@}Ha?$Ӛ >bBSRl^ *Osr+Ɍ"6oeXAXTD뢻(lX>,׃ YP,bUՉ3ӭвQ!o4M cHIpLbÈLg@G5of*' M 6l,E4 yJ=iL24aEgp* pHЊhRS{r]&-j6s˧.vxk)z0_7kl%?eT^/So 8M&ka:, Aidžxa*f%ɴfXh;KHO_]^Ulh$Ϩ:o^TteC5 n`wy@@룭$ÄLnMY^YkߡF.mzqtFF*:s+~^jH2bKz!_U 8)рOΉ%,[a0˅KMtc*I *I^N*vnYaIdwۦؔ Atat xj.W;ϋ_ܯ]XBNrZbFlm]IKe9./9zR gt@q]|&hRΏ>GO^>yv u⟾9xSh65W3[Ԥh>+˼6]&lϏ:~0FtOu1u $2Vt&rdUǨ%\5Va[ DF'-Tx>VlKBޚ*)!/V*vR gp`PsTaLIr6| W$&ю ƀhb!qk'M&VEvdSH[6`XfMk4aŬ}BH.-~jMىՅ-|<(Z_;~D+SȔ9Ru4b*3NXެ0W; J w0GkV_)n ms&@|{w6ĭvxZ. j!" g1O˝x_ ^'*g[rqƬ7Fz>Ӈq x:I 25 v=6, v^4}]X&N}ue9_e/ 'NU l`aItTʬbdLvƗշT-s#y~7vNpKܢQM8S"4x{m7`n܃Q !>,\V#BQ2KKWQe 3Lç'tQHf趍@W(fE:ʖaqQX1L@T:7Pl"-[ON2U$hK'=x=k*\h2ͻpm%(nEˎIH޽(2c}FY6mnSR/qg?P4 252 ]u\`X[𨤂w~﹍B& u$~UboafgZ(@Zs q X(U'Fئ2:]xk wM=.ӌ5hrO; >!M.6`C'SGJhؽ; lU_N]:g!m_02#9Ⴗ~"%v+NyI ֺ~LAZ q EHSoO%fc|oyUn]S{&`VlhGڈn4Ů/!F8<~tGNDg-$\,uR٤lSr"gY~WÃ.[q/h@MO 1)bf?KQíaJ{ Cŀfiov'`ar1$a QRL(]F?GW(l~i:j *FvjBK%BM4>1)P7iguSV70 *gA<-POz) r[-j)1];NJBГww{Gݩ E0;Ĺ'ޑÒe  J| gfܽrǕ?5qؚ{0wiM  %nEG@V"\ ^iD: @R_EF]p}#NmH=:ѿS'7m7zHz'"9Wz_>cs#{wm=[Ghv{=n}<|xhnѾ뽽/xxGOsvpg{3eXm辈ojVᲝp {9$ت#R@*^|d7}0Hg!fEfxX>/5 M _/;F8[Jĵ 6,:*q֑4Kkի-Hdž#H2^FRkXy('QDc n#PGgln+8zg-8lTBȇR*=Jݑ;PIN"O$\"!]@ľ25N! 9"`p{ِVrV12Sj7ېY֩i$KV a6>1g :0V{*kbeA A@ȡxTlsv)vt<1DNtek1"H89҈U(Z>rC!Q\QwfP$U.Iڃ w6Z2㉎i5%N ,R2ʎ \[p-imZ{W+< l\h ȚS`,+XB#m]vhA WUbD=#e;M^u$0"4>>,%dŲJeֺ&^-@DeTl~)ʴI|þZ5A.9 I+Ό -llƺ_JUڠC0C8ײqטTrKMآ0t>O8ap}$ HB55d|`ȩES(S&*E RǗR7YS ^+MO;$A^V#$LF) 꼉qDzQ'Η,uWI?r3,Ք狃E_vk +聫ZL dh9>#t~pIzfq J8P-H3v3(w44"t#ł}N7esSU7~ XQGfLÂ*^ oQO0w;bv8(3q/F`1a]ȬzYd\^3Ys^.=Y^l8}r>]p=NL7pfmuvt;7MԤ-tWoj"GsN&ӕ)D:+'Jp54Ι` ưEmۇڶ81rk-벥]r^Ȇf|~l88'O'ec`\!r 3mW= r+ @\ tl#ݦ"ݫX+wR+?eE a GR@b۔i܃$lt-CN%: K/J^)R,9L.%-:q qhR*I^nJ<Pt&R-S5jhpmɉΛ1@1؈vx46muYЄ ffLnRwRP c$Hx7=WdQSՊ1ct9Pf"B@yq)g\]VWJ|tQ.WA/߾:ɫV7 e:ȅFmq_,bqFl;3Y@L){db ,4^Mk3Ibׂ%]\G"c,5d]̔H`9cDUgD37]J-+TZ'K3]3aVJHDM.}q]Ok"ŝl:tr>5ՓwO7^4\3ĽfЍyEjh!g]RNP̜;QK6 } k*ā^wqF` +_S<(]E3:44T6;.I2U?dLk?V6">;lŒ &v\1M9:v ~0*36bnݴ:v?V͵샦eBא`r}S{\|3+/J?xg{<#lǹ-2*^}BJX#·8@>MY= ϫ[{Diu"kN',4ӪNJ $ O35-yL6 鵔 `5}P%LWQ3U\(|YS[ 1@st#u}iT smqFX(UUlkf𴨼*xprEM;uTȿZ] F\k:Kc 3O LJ6MeӉ741GeŴۗ:+GI' 0j|pZs BK8y$O[>xɽ |ujNJ*E8| >hiV俭`+i]Ro:GvڱPa3wCl ;6J lMImh4jx'lCcHZX iw&2FdÓ'B*̒Rnólr4hwtbxպ$E!ߊyV..-/ sMe\N8g'8W$^mKm(!k}m҆.UjۉFðM7wf.2kpwHԺ5⺆>}JOeG$vi + .ZN/wƒ&r;)H [–ڔ`PMhc~opݾ ؔDfU<.Etob3.KU8V.`k]A|-Lad?28۷PJS< rA3MqԨ(FDצa~BgE?&xt8J)V.u$BlZ0T܊w+E -]m%DК$; vk.7$%e8|9W\Iw| "hP^ᭉ 'F.! T6{L@,4B[ᅝvrmgz; 5Vvwozw,nyH؅3ćt}V:AJzs#I5|pJ8Q9͸L셜WRKJ4t7G#+މa b6~ٖג jdeG˔ːs[;j>`&SU93sσ̚ˣ8giGªX MOV/*\ԍxt´ÀޠmΖ,'l9xWoeVˉYK왞.&LǤ/ }Mkrp@ Q^)Ⲳ } N6'i_4[ #I>^<过to[7tsޕw[&$TCW,s: !+<~K2 #SS…+{(pԢ] rcRu>nS%ɫI6"-#,cUZnާGVmcu] [mJ;/ v±ˑ"0,p˼O_yA8X ymRAGRɾ]]eڷor + 'ԭEaOڪaj5 G$F[Z4dƞ[ lx3`ܨS@BJʼP =%#Svkνzg&u}jI/}q Ss#*:=h$_Ġ1"7 AD޷ps7E/l؝P ںOz18"?#4]f'Ս81r[~"K]M $#6usko;QsMwHj2 Fepy'{Pjb {[CTQj)7 8 K#+O{^0uoha%&HF8kbAZ8|%%nSJ`qb%p& @y^ӿtHb2hwd&!Y csqiLKxNe_W`T_d q#%᳣WEy}igwMch_8;vXxßfc}8Hjt4F5TkoqW?Mm.Tyza+ Ȝ.)b'\x<-5CƬ ֈQ1Q ĉ_\_ Z0Z :K-u\<^9MjD`.%XXonȼa+ &όjrR;ԆV|!a1WXQLR|Ug\JaȽ,zRg 2$2#7:yۙы$ƽA؆+ΧwS2_;4e } ̎NJ<԰ !7Z5EjGǼQI`DdԢ ^x̎6GARĊD\<{g fSohPK )qW&yPi2& cpython-3.11.5/Doc/faq/programming.rstUTnHdŽ}Ǒ.| s@!RB[#Fv`HN`H$'糟z@unlp_.z(7E(˞ɾiXuų>N?˚imSdM^߮f|d Z Y:/ ,`/?|dGFz]k7?̖NnɇYv]Q-h髺^Ǜ}X-۴^ rngyzaٲ=\N/GZϗ[AL9oqgbp>EҢ]I ܒBy m*VKQtFFjTm[F)G+'@w$nv\׋H Z;3v{M# Hۉl~WN5rU;E^JZfN暟WDVl O=?i˹@Z.\T'kU5X?~{M=>>զaz1;]VoqU8/g;6hA69t])[ 2V@v Uw+dQ,h;z ^`W2m[ ptnnKB{އoۻfhVZvBuk&"˞ɢj3MWAFh Td+rVϼޒI/e7[0xx[.CUy7]4񒯯[c)gҡ6AvdrVl譠|ƕxtB>wM52Omvq+tY؍1ϦLؔ&4pck&pւ;}nHk*2BWNBH;0%bYQP-;}k#\hvv˯z^? z=uY*!*fղvHPJH(O+V]-t!Kgld^xb˰˺X"ikRZQ0J?ʱKjN/##CRPyβ=Q7U 8n -f5 eh%ΪҳyOIu&@WMY]O~‡ bP۰.~S6C4d U-uds)vǶrn?Q[Æ&LYT[nRY[=sLI(Ӽ-61@fir#++|o->)76 LguwqՎ˺&wQwSt$9f~M|[#XY.ҺU_MXk))!wD P,dqf%;' \ȇ$ىSRIi|!2SSβXRT%Ď E[BG=uUTخ_ȧ1t\Gad@kJSJE;")M."l&⓬IM$K4G#|9O틉EC"{nk!L[2GaEXηʆT/[U7N+h:V^ 3<эIlњjwf:={T^6#oNp:J-M)Оa|P!D#I r]w)X:=R__.Ki?x 8 -Y[Lϡl@`IJB6CnPЀ#=3leDfl.ё<.36cE}y9xWW NصЄweoHT+@X6.|"_1y&@:&fzO ";n8誉%xz=<]YM_X)f`|cݕF 0c@hBvYUZnȮq5&$Ϧe{v\ %2@8ӆ(El`>2 frrP'kU/opJg\o-Ãf&zSiwPȍaֳ:HpXr7_-.oj6X3W߼rb%}M&(Ӆ.-UK8TAWPPLPUu9!yeB&\& _~5 QŮU|1Ie1U` OSҏwjWrsDO.A.81`=L:SffxP 4>'P'ZKWΣE.;Jl 8U n+gNv, t}.Z#_ =V]nٸ2Hr+`V7<$XP2`!3뭅"aצ߯SuV]kdY VN/9}1jԥ{VSrFWڸNILc#W楫mlT_wto3Μ#||nZyOږIBPzcK'2ILvC%/JQRcozTgɈ!{ԃܦ̺fgEMI?b㉲Q:^}\7J$MiL=J]/JHwz<9,CCVA5MOhb'x"oAJ*~ tφ{is0ThSKi,v 4Oeh.}/*.v}CSGC)3kLԎbr@.h%3]ȭYFTGoUv>a7?5] e-]Wx֛8jj|mLaV;?9I4n33LA2dS̢to:"e0?sj=*YZ_1T2_v#Gm{vdaZڙ/P5;Yy${UqJK2rӁFsCLk[ՂEjI_XT*.SfI'_\ M\;'4ӳW< >3"Ka42}G1pjS6Nс@Q`0G[\AM*œ3@XjN>oW&֕&BfWVoOSj d8M TA8~&Vjm`pȼZ)܂>|sz|XwMrP^9%z::?H`mWKZNGnzeh৘_.=7M>w]mg ?^/ƒt'V$Z7&P tfL**QY$fͲQ_ц .=qA<1;PdX VYZ֜כ^rKCw13L/S6Ɍͨ:^!} 9mCpP 3s\L[ܜAk1o2{b~ NԪ55IjlWdYrZ!ia,2LRH=S컈$}N#"ޱw9m}e!nozG,Uݩ\U؀lpݭꦌBXi$UF_FJx>NE:W#gr%tN%d XLjmơ%q< gG]K2v[:墼O8G>#4Myutunq"]A{vA0"iؘ[m/&t="Ja yZ?Q΋ݣ=cdQbPZ:wTF7ìIPM)Gݍ#7BjStW+*h݃EtQ6+t[-A5J ja&gnɜ:*តq@(5oڠ3jq#>!<&3EU\k PT)JSxhOn|sWZsj}w`B/b{B]7z'Xdxf@T4ZNYq.7Z  b+^@Ӳ|9~mTvo G.ڰkY#RMWq0{S,o]fg X)kG$b{?<%&k˅I]80Y8??/ wM7z qTwލ3SXBN5\C\$=fj3*45(aqů_b8./N la܊ڙz_P@ٰaovPU&>g'Qֺ\ut==SX88*]hG3v+,4F ]^zXsK&(3>_#z!3F[{F>@ֶPڿ!Rx>R{8\\„V/05E56B~tޏIgf0΀nxOz0{ߏPT!P%irM9Ww|+u'3xojZ1Iz%f,+Q LwN%fok; ~N̮܂`SbtL)U/' U$##S8=3H *)\0^iܿFw̨HSޤ{1B!/wfX-nB,@lh:x $DbzȗWy\I.0hYGjDЩuc Vg" ƒ%@F}+[|4F9Cyz݌FBcK譠fQo=EbAYvN/$BE=-6IN)upQ}Jp 2JMk2IM=4yпk46X74fr=˓\llzDv=lX_.. c/<=,G :ZwQ՝aK~TMm$|H&ez4!YL-jJ3^ exTP>aW-?4qƗ\^"Xr,ܷ]~vw~7&{\olL_Si9Z>a2cծ~+4lj:^t-YͣDf:YBHp^ wcq>Z63!Z[ |=c" ܠ'\)݄$'ԛ~IU*.iKjFYdTi5' *U1m N&ܮ"^L2߃C0ƒ}єz)P/w~mn^.iR;MR/qry1߅.9Uө+nN6Po.̪n#P?a.@hG)-I0":)0i ?=A_ IuCw{e%UEâ}ЮK S? ޼H};) S͛J-&@fMn? ЋwxPͫ\,Y٦Cժz"Q…𜽙7|EDriIqNf'cQd"h{0W 9`La,$Yx “F0Nodlk/>JM{T0 [r!~O# BM nwH$dUuOz,$yXdZeN$GpJEUXigB"lO>/t\`b:n *@צoRm#qdCLpv,Y,bòuު,a1`bh$G_cJceSuidն S/S~gכ_w QUON+$/~eo`~3cjd` $:bQl:wNOf8mcniQ4 1JJS~ rZB+x Oƻ_=97Oʛ'_ƚon|6hh4kLcl~_0L~DЛ+nڛloЫ'jxwz>}oD}%TS'r~+9&ra,ݎ///wG /, 't {"]=y)FnDNI5K۱4~8}x1|ɓ 9O|89cw-w"4^GfH/?boo2?ix&W^]|9| _ԧ/p^sR8?vOs߁`8)?{?wn',K_Qd?+v]wjx[U-Nryr̈́V삄ƳΔC@'g'w9q+4_FzV!%g_#0] zA <RHPRdwG& (]H̋V55sA"K%Jv c,MrK(YI%%O_a9B2zZ+Pau?*ti4kh&\@qDn‡Y+=SpڤytuBpӷԤF/=;-З@kcG⯖.Pu@YJW%z$ K5ReR8&N JQkʴ۵PQ$Qj<ijA[Ggg>AcW\K'?~aGztԏߞMEBUAȕ3BYh 4%$?Ò Y4C ӣ3P++b;Dx⬰̦^B!Ж&6 I8\^RyL4_ _q"0Aj`5U0PzHR-&}XA$&5\ d̓`תgMf14il".s5swjբ"Sgʌ}D#sa!nV}$BnA[G2Sn8̵)[A?)Eo6QԫiG1SM{8Q5ܪREx_} q6nKBVi7=K5OH@gf6SZqU,=S(0ߵ G1FRs] ۂ 3uQT7L@ _4-;ƒ(2dlcfە̈dpݠ̄J`So/P2LVIƛDMV[o66.p˵syjnI4?|')N!8y= 2=w*sG~Hzz9g~F_9'#)tzYfS~450>':phrYK5EN^|R;ө{*NIm`C9c,!|!گk<T4,4 kJ}K7Ct35T*sZ߄>r*{jgH!zĵ?O&p(R`R(!'擳'glŀU?^lWR,徚3 jN6pͻm,jivV,tzp[iFԤh#xFoו]n^iQb%gi>EԽM+J 7)Jkϓ?rb[.N›wHvsJV}Ri`osڀ'dum>_כJ|0ῇ\qKҠLv~wIWێJzsrV(<4O`brHt`UcMVŦMff5!U|&D_^"O YlC6QS;dyC,} <1Jd ʠY|#j1L=P5Kx9e% ?zpgA9c6.]B5<(9`elp>]jMW~マiXֿf̊f0ӯueuQt9e-^ C Qpy|{1 ֝I[0@_uur||Nǖo1 lK_@Qd6}j;fe0b;UݎfNQ^Rt]@Z0܀|jt"$31l&=>2of &aG7Wc\js%jUX*ɗn'i&G%C\7:L'% 0/` Kv@&<|n\QXuASQҼX /wfČ)%8̼ oI })E'DU)9=:;K zb1ƺҬy0U]y9r1ʒ=-=6ym52;bL=5DU)d+ :wh+\2qiOݳ'!-ki ;zb$VPDb *}lF@n>I8iIbTSY7(K*1bf;a8'(I1=$Ho/QϯJ嚶۲\8\ڦS}r/<+ڷ Ew}V ru\%_NNtw%=oXlMqk)l4 x "&RL^,OY:%YU3TvmʄP\w$ _//€/2s{fIufҠVj 7Jyw0P5k2`L-DUU%tQ*]w3Tx8qker]&-d] Ep}3k])h)V jQS1EZH2&OJ'f LVi/OU?=-""$# xn&,b=$K,8dnz:ˀ_7špKOpϰ!%)<.:<#l!T%qx '|,W"9(|K*!i#ʓlSF v!+V(Ĉ[l&Tx9R-g%L"TQ`K4êi=x-2t[Ľ-d`~ib:тc/Mu&Ue%".݃A[K p,pzw1X!N2(f#Y&*& j)J$|8cF<2>^'FBHA'7]i/>k\\?^29}AfX4lZK_O<jlX^1ѥacB#،H Ӛk¸LIF-\Y[Ѳ,0f=Od[A6"ԭףi'E3k<:)WPC&*]mrU:M'e}P7%χ J>/+ʢ/ҚFڦh8 _xdk*qǣ!տ7jöp1Ӑ!gs꟰6ϣsUߘFҢ>M ~:,PiGfQ߶ܤL\_wlbY u! a4#4 bPިT17Xe蒿3iAze2heC/YR n@GݣVx+&mV,{\lќ#`@S ɹ^T< Sd9~2o+x=ْ =A 4i UEQ4:rԀq,v>F#w:~/mq>9Gl,NW !FU(3Z-UՠWHgnVѶ@ZM0ק~k ;3!91iPJٌ&c0߻=DmKRr 9R{Di&j6omGV&*Cz%F<2__`@MbF"kOC;Ԇ[_8z#*=;WKJ>5S:.]RS$>BbY~װaBq^!&k@Oob>"fWrDḥNr M8=ڟ%Ts *E ʮmiT+x\mL]s\Skbpx*)8yi]7R`=.@.KK_ }FzXp64:.PLհ uS]W྽C͊,?g=&L^^JK/fk8?nѲey] ڶ.ΐE%B@I irb",Ca*~ߜ= BZYUWȕVQK.Fxx̥ r4㦶 gH4۫Z#޽/xF0 )FG-2@^ƷKN>DqpR+Fd)_^v<F4ۙP^7E{r-]lM.4XvɻsPP݋D f7R-"K!d59?dٳOIw]Aط8tuuʥVՌxHaQy .pFan-4ϽB93{sz2^{xI (ԵydZ`d{)׻x[XS6v.RPAw~Vq b3at B՛G&@CSɜOƈ=Ꮣbd,wz=h Gi@1+%7q7ǩe%tN(n S(N͉ufuU'dY:?d1s[r@M,7 (-LL yeܮEŌsU2OqJkvH#0[ %DOɫF>OJ澺"4ҔԲӶ1mi]T^9Lhx#m.6m)Hqfk$ԿC;sӇ&Jjɚl+w.D I">s"AуJ_ӿjx[vJ67]8,d"$&vU*w )V%H^j RL46U{w5r5<{ ~?_fi(*?DSW &vc=M.9ڦxbObϪZ{Q;sc)o$ۯZ#$ЀQvEXVy'' !x m v#ZC|ݟ jěS%urG3֏̎_n`l NjQRh NTTW?Ӽaǣ2IC,JHP:AmR^`)AײN鉃ҘႡ*JaHfүVpW8 s(y$IҀ \CO>֔pל0i\T]]6œPϔ}]Ҋ0u9ggM) }ӌnu]aYgf#z4>ͣjA-)xvpLLӷf뺾ft}k-g;!z Q#f1SusꉗH ԋ`O a -gTE ft5^[} ^yzr^z >UЅz3Nc( :[$×}k8Bu)<67Rޚϔ66plwB ~HtnIk󹐛wnSKIk~5^>(!)*zɽ[1+`2adАcQ+adPoͭܬP;]~% M$'$bڜTG;^ VI%J8'jN=uDnݰ}}~vqzO L~WHso7* .vk\Ml)8*]b'TYmt`y/Lqeb?g$}Yɦx0yX{7MK@61v`emîGX6Fo; 8׊SС}H7 }m1w`!v ,ժĚ'M,NXHSVHil&s>HYQT+\.cFb2F8'B\7+4,]kv{XuNQ닡 ,ўɔM>9^ A.JPo5(#aiQ"X,p45j&LZjTkӕ2iUp$0@MVm36cJ++yh=zrA-XεZ/wagM# Cgu:WkO<  Cg4g+6ǂT(+*QAaتJ{Z1k\\CN%=hy+֨Vo4 A`̚WoN'l3K=D z QY:L!_-7氤` 84-W:[T%nG>GMf9ܥӝUq;ŢY7}sNj*3]/"%#ybݽ LF"ħO6;ZX^D(>kaQsz1%Ƌ e"=|}nXTjw "UA{mpkFwlRHi]12RL:H$RWKqc;ygk(iHH@21j-qS^W-Kuym_ 쪈PBjr4!|m./SQaPg 00Bt$ 3ۯ'9Zj:@9)fsnaC7GM~ֺ800#96 }cen4ÐI}= ֡K p4˫dCO|tr.ftX6R ^ѓ%+#SԖ-یt~ǽ-Yo\ȣPL4uZ7*H xuGU&U,ag4`<}jZ,9pصرb^ $*3?kQă~F2N 3=c̉`{eO*r޴\3a=zwKy?E{F}.MDw;2'l=z=̜}P: ~^6h 7a4YYh`lMHjg#&Ef\R!b֣Ie N9b}خ2K:Rx 9.4d'1 >2t?"~.%󒣦Uq4< B4b8U`9R=MYbn2.vl<A1t\d=8dJ$pjHO(VpIUeuxi&=OEx̌//8R^)r=[.vIGXj0!<&Ey^>MSDfaHOZk3J(J ~bXyƲ=2dt>"Zd"j0NNjEU;"]UZOcArh) *N+WTk頁9%kj+.s=;,OT7́ʥm6’R*JmedEPoY?Fk-_m,-DCE83Y{w; ArDL*g γx?%DSJ{ꃧfv3QpW0E,'`(c{ss2<qQ` -CL*[-0:c2tOQios9:CDW~=v5&?nXnf^ sacg93mTx;B֦P$Б{S0J]6qBRi}`ԠKn`ļjb[].k@=~'`/0-XD}՚S,¤.0"2Y`8mT;x3kt3Bs%'K|/vBT wT-ʍeNxi C6,*_>Wllc7>#=MF@4\h O|Oa~ ~<\># RSyRI]s+-n?b"(F, W\1$4)v%|niՎ>pG>g'YU+N?8j{9>U|>ҏ#/e^ C^s| ]JWWNOjO.){>Oc0%T¢6Lmv .L)TbH)ąskd)s3'?)l鰪62CzX0D*9(% ލP&hh=PKEn˺X)It`3W[{!HjMi^}BDb'0o&-bB# ԩ4gJH^\=G@6?$?D ԿO>dp]$% T||Oϴ* ܸ!irT<Vo/NyvOR=a~ kV"(mt4Հ}@DEIa7J e+~2a9#g6=^Yr%z$>*$Vq3Vyx|&7Ŋ ._ 2\v@f14x(3HK;;Y@k&z2I#(Q'nֈ;p @^UhGz"zm}l~S g[2V83c).Z0`Y7WH Okt)cgvGǺrx,V4$SUwT2o;0J$JKBP=ٟI@x:رTy֍!@WՄ`EGk\ py{3Ŭ_\0- U.ꨗN|"qxu?װ$yنx;4 P n%D~Q5OSF?S=oL ޳E#9 ӼY.YڲNxX${iCyը ZU 9G e4  s 2 _77EP>#- RTu࿱0$N%7|lu@+A}|7E3,`qjHL ̞AJ T1ӑTl]^$sSʼYKU9/(1d*%*fEL3Z;ׂI'aꢹRf)g!Ԧ7Cry1H|*}XvH^Џ掖 NjTFqKZQ\)fօ1udt`#>\LQiy|$> Wk:֟CuViYYWe)\\45~֎ܣVֽG7;=f5K_s.@RbQ%JvB\%ypË*XT:DW{F#du܃hCv^'yRL}XAUJGL-Q@?|y:JĄ.3OW:Wg>[̑i4AlɯK($T@$ŖxQVW%:=yy8^hvYX,31F`GeWzޢ2ߣvE. mH:ho4*iZ+n"47@1Bfa\~وY.W1&;G}}O3Z ̑)$qG3ߨp}>MA͌@J ?R,4p'@#Q-z @CΕ,菃Oȵm'#a"%3d_@vv~,b\Դ`)5/ż6Y^)`$/ fH6 s*tZ0e/3VU4-E]zڝ=dapu_(ƒMzbMsJg BTiMfzD(eS%Tv=G߈ Խ=n`&.Aa_ | E7G@l$dg ¤l@j|YeT"2KH>z4WBM^:nB" WBtj 7m2==(n0尥H?] J>rVg=7wV鳲*Z ks^w!K<2u{#BRW$Ӽ5T3,ԍ9cR@9gQH|6Fb.@IܳEDAWxNM.ۺj.(sQ݄(mJp3y7D5O3kS7Ƣ9W$|H=YVc|w5>e{t0/^;xc'tQ0Xq8;74@0u“ɯ޿#nvK \ kzk,U-˗t-Cin"E/iyF+2abmYчi;N^[\s'{/QBä7?^$-u3f${:3}( 7tY__}>z3y{h~-'xe|+ҮS:RmESfҽ%%203)h8ᐋKWjl/] ɞT53"m;-L`o. :P4ДL,k&.U/k`Ql(t⠪m/Χh4mJ mY8+4źfg <󀍊aZʗ2JNUp܁âLA\w \kNrzPܯ5_L~ᄍʫ+&҂}&yŜ;|8/8T.A%B0n2k޻A;TgˈE9^.XmcX,'=4-:1yr=M௡'D%U SR_[9H`Tu[DH,O۪*~Y-/.a׸&<ӦUt]Mz31K䄂>[#>`yڬ-wdoW󧧩^]&qkO{1EdE!B,1 š zKLz,PFp8CC'~Q^RD\o "k V`~UN N~6^~{x`j.|b\-JSq$tsey fR2S)A|Kel*ҽ̳e"s8Ka2q9*\Fa{걄KO?qli1v~/Sj l}!Lѥ>8aU({<8m=cݣc$D^ǣ_>09 >LIBntLJkXbojKvFa.iLb2_h[:cĜ#+"wxN l LuY|\Q o8n5/e\3Mj#ڜd!}q8bkhITE4C!<5d`&"][bUT" zJVPߛ)tPW뎠HNfL˟0jYo 0U_YQW>Z[Dӹ[8ͪ S(Z1Dwʵ2)#~W}Wū?ϟSwUS+{Xr $9G'z8k ZDyaOc䀷/XvsUOz0 MaX:OLn"i`'u;oMǯ ֐pV}Id$ YBU_z"Up  |1l6%ŀ0q"]6+Daz?z{l0 F\-f?س? 5Vu}8T:,jQeRvC: SwS_d_,u6lua!aw4,s Oܨb&A"dBh^2F_#p)+º{_HՂ$E!pO&@wh09R͕e%*53}{oäj{沘f X;mE!XNߚ,gqpr/EY>ɝ Ba>D$T`oAOO(Z3}eYb/vh98&ΌqË*=ݫԋ&Jv.&x.i w% 0ʓEHEaPYH#P1O3IACȼSCX(\E| wYoJ.wLxEV=Htf^ ܨOts" %x-#4]GHN/ewsmi!Ԛ:, z^H}%vf]t[,sd"XE,ut 0)QZ^o+fg))H  EjbI}_NO0}XN.iȢΓB346>5% 흠֟4B!G|~v/X &Ҝf&9 736ګp+D$4+kF42|w5`4UO/((h@j.-0>N:b .ui K"B Gn/\2ײ[@ qE.fc@޽b ;qJ7H}XG?~P~~~t-+WMϟ),,ڞ !~<6 zYJyɓ3gZx.W;!@2HQQ+UQQ!":___Kjjji6#9}޽{*g=xbOqq2#@Nnی׮ŋR,Gw6^"B @ ;1혘-FBy>9w\N ֟ Iׇ+@P8# 6\zU IҍyHPjj"}7@ ea ,Y&qH؀ a㠭u$Q2o許D.$ CHh{i?C ~=Q@SJC!7BWBuX /7 䋐7 t>qEZ;Zt3|okH}xhY o P{p%YI iWl9k=*mD.RT-7{񡫲n@mT^AgJ@-8"&/t386?6=^G@#sTڮhQ}"g8_ Ah;kӋVp '} >V۷bNi KkZ@$ڽ=0!@ejàm zYP2@, ȠUI p & k_ v_﹎XÁU)O(l=h.ruߓ'O#[lYiC(… ?J> ̙c^ti͛.\L%6:[qhoO&C)֬Ycϝ;׼vޣG BC+@_Foݺ%!+{aS+ruHZdÇyaٳͣΟ?ߔ-t 9 ²,Ȓd%͛g"2O2`| GGGK]B޿߱cG'oƶ6@ O XIgg'SP0Ûi!Y~/dj}MS*ʠ Qe)^P52)*{@YI~Å C OmhѢ~,5klHWJ```+Jݟ~??6r?<._tMBф*@BX&"+m۶||֭jgq߽{Wkzji4|gseqӺ'0}rSF9cb2UUU$l(ˆcl?@DgZ=:|XqΝFq{&,_|Ѿww0NU4wD?V %%%C.e˖-r{JW7o Æ \OOOً[j.kݺurYV@8>~28R9lܸQGVn@o>A}޽*Wud.,_׈qd'z!w<@Ξ=j2VXgoa.@t: mɰW0J%3""b(dCM/>uayN/p\=hٵ!+1 h'&&6L;J-Id'zb&A9-4h%$bX̜9!M6I g]vV\ه=ʑu>iih%C 1>֧'J % BBa ?caԗIENDB`PK )qWU8 }0" cpython-3.11.5/Doc/faq/windows.rstUTnHdZm6_Uj^J#{l'w:v2U8/+"3{n&MrlO70|QMY6Uu77NVMlig_/{V16/#kI7ue<*|ӹ M\iZwSY]] W.ݍkP!Y7g_v}7kϢh1oMͅ*cVq/ޮ`8.\v ]komi~]*|ol댭[g˝YuUWͶU"M\%Y~mP6@-k۪MpnMxiUpSzMT4vfU_),˾kjH#Lkv/Msظ5k\sSgG8qdnNoH͛vTd떮mAl06F5c_Akv޴'WtᝆFn_"qDtMOfVw:8 WQ? ]V" C n,._[(Y Ltq [%"Pզ ;B {g)0% v:} h#n]S7f]48ad5,aF$253~*)}TUk+'bﯰGj@v~Q!fcl'[ln}[fn"H}\JbAe1ˊ <.;I9޵;*KÓ\Z]WH9}f`~\(xb6;uJwfe#s|#G#S+̓95?4Wr|QCƙ$dͮe&/HU&֟.ԍǵFJO OT]nY]y 3^Yֹv;ڶo]|񅐕'9W!lga+YZm"$jR^~^M3j'2sYļIO0z׸f  a"/+h1 vZVbPz*֘LX̰Nא^Z|Q 4W--Pc %d MiZHC i}<+,w9"]IuRoҌڿ QUpA*;%$7%)R lkN<vbx|K*ҡ P8cUnJ-s zmK,xma0%ZyA i>F^<\̴:Hr!BgQ -%$`ZG/_^.٥X룘AE҅;]7K@Sm'0 T'.\];aF=lV$avc┍cC,l+UKrFPd %lRl @6Lay#ӥa,׵F1ܴ'hhdTܪAaD@f$@؈7x7YtC$GL[j/@5{/%Tٕ[5c@'Ԍ+$m BTDɑo9A $ک#󽣈K]4TXWJW IlR8郕< 5I v7dER{JNR>_^X#tV#9#!!x~$`BԲO(|f?=EC/I!>r;G{p`J 8^1%Nxjp#& .9VǎEOIʇs2;~KD3 N@ݥ%qׯO#;IVTr%+ʩJ(b̎*=_U'{tĄ!+ =F9M85 ӁhUh:!{ԕ Z1`CCGypgƒMiPA4 0؍cK^~ADW~Ng#DjC~Zp;u|?Gh'ʣFFG!USl#x$27'w쟤؏zt)Xz<Qn .;)D'>i>W'"k*DNbp%v8^]~l&skls#z)sq@Sy[ =rxܜDV{ѝE&IHxHFP+ HĹ;r=6/јd1KD @ E^})\ӕ4ӽ2P+NKJw+)g>qO}N_k5_M1ף%S4ΚpA͈KHO$s8yЯZ9rN>RTVāaةԶiI_}NߺMmxG_~C}Q`otmݻ UrC"dH%Xvsx1@b}y2.} eym]3̽\j(ZUu`㶋ʝ ?9Fg+^/yIqY(x͚+e\h4q3F XB3]+S4V.aAVF4aʹw@1@I#m;$ӎd*}Ӡl*Ijx>'W<|^\h7:(op&*c tRhqg<7l tFl4xv@0XE`6z@!gq{CZpWi@^"47߸<*9AMSЗ:vtݵe JB_sc#ep(|7E*s?E6#ͥqhz0@F%[xnA[&+9JRz=j1lTu|xjShAr^>?;?OL`uΆ;߾(G}}*2V :SKٹ\sm]d7css{>8ӏg|T'