From 2bde6827ea4f136297b2d882480b981ff26262b6 Mon Sep 17 00:00:00 2001 From: Brandt Bucher Date: Mon, 21 Mar 2022 04:11:17 -0700 Subject: bpo-46841: Quicken code in-place (GH-31888) * Moves the bytecode to the end of the corresponding PyCodeObject, and quickens it in-place. * Removes the almost-always-unused co_varnames, co_freevars, and co_cellvars member caches * _PyOpcode_Deopt is a new mapping from all opcodes to their un-quickened forms. * _PyOpcode_InlineCacheEntries is renamed to _PyOpcode_Caches * _Py_IncrementCountAndMaybeQuicken is renamed to _PyCode_Warmup * _Py_Quicken is renamed to _PyCode_Quicken * _co_quickened is renamed to _co_code_adaptive (and is now a read-only memoryview). * Do not emit unused nonzero opargs anymore in the compiler. --- Include/cpython/code.h | 157 +++--- Include/internal/pycore_code.h | 17 +- Include/opcode.h | 590 ++++++++++++++------- Lib/opcode.py | 174 +++--- Lib/test/test_compile.py | 3 +- .../2022-03-16-11-05-35.bpo-46841.yUoIHg.rst | 2 + Objects/clinic/codeobject.c.h | 10 +- Objects/codeobject.c | 213 ++++---- Objects/frameobject.c | 39 +- Objects/genobject.c | 19 +- Objects/typeobject.c | 5 +- Python/ceval.c | 39 +- Python/compile.c | 8 +- Python/marshal.c | 8 +- Python/opcode_targets.h | 70 +-- Python/specialize.c | 100 +--- Tools/scripts/deepfreeze.py | 47 +- Tools/scripts/generate_opcode_h.py | 17 +- 18 files changed, 831 insertions(+), 687 deletions(-) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-03-16-11-05-35.bpo-46841.yUoIHg.rst diff --git a/Include/cpython/code.h b/Include/cpython/code.h index ab827c5..1576783 100644 --- a/Include/cpython/code.h +++ b/Include/cpython/code.h @@ -26,91 +26,80 @@ typedef uint16_t _Py_CODEUNIT; // Use "unsigned char" instead of "uint8_t" here to avoid illegal aliasing: #define _Py_SET_OPCODE(word, opcode) (((unsigned char *)&(word))[0] = (opcode)) +// To avoid repeating ourselves in deepfreeze.py, all PyCodeObject members are +// defined in this macro: +#define _PyCode_DEF(SIZE) { \ + PyObject_VAR_HEAD \ + \ + /* Note only the following fields are used in hash and/or comparisons \ + * \ + * - co_name \ + * - co_argcount \ + * - co_posonlyargcount \ + * - co_kwonlyargcount \ + * - co_nlocals \ + * - co_stacksize \ + * - co_flags \ + * - co_firstlineno \ + * - co_consts \ + * - co_names \ + * - co_localsplusnames \ + * This is done to preserve the name and line number for tracebacks \ + * and debuggers; otherwise, constant de-duplication would collapse \ + * identical functions/lambdas defined on different lines. \ + */ \ + \ + /* These fields are set with provided values on new code objects. */ \ + \ + /* The hottest fields (in the eval loop) are grouped here at the top. */ \ + PyObject *co_consts; /* list (constants used) */ \ + PyObject *co_names; /* list of strings (names used) */ \ + PyObject *co_exceptiontable; /* Byte string encoding exception handling \ + table */ \ + int co_flags; /* CO_..., see below */ \ + int co_warmup; /* Warmup counter for quickening */ \ + \ + /* The rest are not so impactful on performance. */ \ + int co_argcount; /* #arguments, except *args */ \ + int co_posonlyargcount; /* #positional only arguments */ \ + int co_kwonlyargcount; /* #keyword only arguments */ \ + int co_stacksize; /* #entries needed for evaluation stack */ \ + int co_firstlineno; /* first source line number */ \ + \ + /* redundant values (derived from co_localsplusnames and \ + co_localspluskinds) */ \ + int co_nlocalsplus; /* number of local + cell + free variables \ + */ \ + int co_nlocals; /* number of local variables */ \ + int co_nplaincellvars; /* number of non-arg cell variables */ \ + int co_ncellvars; /* total number of cell variables */ \ + int co_nfreevars; /* number of free variables */ \ + \ + PyObject *co_localsplusnames; /* tuple mapping offsets to names */ \ + PyObject *co_localspluskinds; /* Bytes mapping to local kinds (one byte \ + per variable) */ \ + PyObject *co_filename; /* unicode (where it was loaded from) */ \ + PyObject *co_name; /* unicode (name, for reference) */ \ + PyObject *co_qualname; /* unicode (qualname, for reference) */ \ + PyObject *co_linetable; /* bytes (encoding addr<->lineno mapping) \ + See Objects/lnotab_notes.txt for details. \ + */ \ + PyObject *co_endlinetable; /* bytes object that holds end lineno for \ + instructions separated across different \ + lines */ \ + PyObject *co_columntable; /* bytes object that holds start/end column \ + offset each instruction */ \ + \ + PyObject *co_weakreflist; /* to support weakrefs to code objects */ \ + /* Scratch space for extra data relating to the code object. \ + Type is a void* to keep the format private in codeobject.c to force \ + people to go through the proper APIs. */ \ + void *co_extra; \ + char co_code_adaptive[(SIZE)]; \ +} /* Bytecode object */ -struct PyCodeObject { - PyObject_HEAD - - /* Note only the following fields are used in hash and/or comparisons - * - * - co_name - * - co_argcount - * - co_posonlyargcount - * - co_kwonlyargcount - * - co_nlocals - * - co_stacksize - * - co_flags - * - co_firstlineno - * - co_code - * - co_consts - * - co_names - * - co_varnames - * - co_freevars - * - co_cellvars - * - * This is done to preserve the name and line number for tracebacks - * and debuggers; otherwise, constant de-duplication would collapse - * identical functions/lambdas defined on different lines. - */ - - /* These fields are set with provided values on new code objects. */ - - // The hottest fields (in the eval loop) are grouped here at the top. - PyObject *co_consts; /* list (constants used) */ - PyObject *co_names; /* list of strings (names used) */ - _Py_CODEUNIT *co_firstinstr; /* Pointer to first instruction, used for quickening. - Unlike the other "hot" fields, this one is - actually derived from co_code. */ - PyObject *co_exceptiontable; /* Byte string encoding exception handling table */ - int co_flags; /* CO_..., see below */ - int co_warmup; /* Warmup counter for quickening */ - - // The rest are not so impactful on performance. - int co_argcount; /* #arguments, except *args */ - int co_posonlyargcount; /* #positional only arguments */ - int co_kwonlyargcount; /* #keyword only arguments */ - int co_stacksize; /* #entries needed for evaluation stack */ - int co_firstlineno; /* first source line number */ - PyObject *co_code; /* instruction opcodes */ - PyObject *co_localsplusnames; /* tuple mapping offsets to names */ - PyObject *co_localspluskinds; /* Bytes mapping to local kinds (one byte per variable) */ - PyObject *co_filename; /* unicode (where it was loaded from) */ - PyObject *co_name; /* unicode (name, for reference) */ - PyObject *co_qualname; /* unicode (qualname, for reference) */ - PyObject *co_linetable; /* bytes (encoding addr<->lineno mapping) See - Objects/lnotab_notes.txt for details. */ - PyObject *co_endlinetable; /* bytes object that holds end lineno for - instructions separated across different - lines */ - PyObject *co_columntable; /* bytes object that holds start/end column - offset each instruction */ - - /* These fields are set with computed values on new code objects. */ - - // redundant values (derived from co_localsplusnames and co_localspluskinds) - int co_nlocalsplus; /* number of local + cell + free variables */ - int co_nlocals; /* number of local variables */ - int co_nplaincellvars; /* number of non-arg cell variables */ - int co_ncellvars; /* total number of cell variables */ - int co_nfreevars; /* number of free variables */ - // lazily-computed values - PyObject *co_varnames; /* tuple of strings (local variable names) */ - PyObject *co_cellvars; /* tuple of strings (cell variable names) */ - PyObject *co_freevars; /* tuple of strings (free variable names) */ - - /* The remaining fields are zeroed out on new code objects. */ - - PyObject *co_weakreflist; /* to support weakrefs to code objects */ - /* Scratch space for extra data relating to the code object. - Type is a void* to keep the format private in codeobject.c to force - people to go through the proper APIs. */ - void *co_extra; - /* Quickened instructions and cache, or NULL - This should be treated as opaque by all code except the specializer and - interpreter. */ - _Py_CODEUNIT *co_quickened; - -}; +struct PyCodeObject _PyCode_DEF(1); /* Masks for co_flags above */ #define CO_OPTIMIZED 0x0001 @@ -151,6 +140,8 @@ PyAPI_DATA(PyTypeObject) PyCode_Type; #define PyCode_Check(op) Py_IS_TYPE(op, &PyCode_Type) #define PyCode_GetNumFree(op) ((op)->co_nfreevars) +#define _PyCode_CODE(CO) ((_Py_CODEUNIT *)(CO)->co_code_adaptive) +#define _PyCode_NBYTES(CO) (Py_SIZE(CO) * (Py_ssize_t)sizeof(_Py_CODEUNIT)) /* Public interface */ PyAPI_FUNC(PyCodeObject *) PyCode_New( diff --git a/Include/internal/pycore_code.h b/Include/internal/pycore_code.h index 0d324e9..82dc9e4 100644 --- a/Include/internal/pycore_code.h +++ b/Include/internal/pycore_code.h @@ -92,30 +92,22 @@ typedef struct { #define INLINE_CACHE_ENTRIES_STORE_SUBSCR CACHE_ENTRIES(_PyStoreSubscrCache) -/* Maximum size of code to quicken, in code units. */ -#define MAX_SIZE_TO_QUICKEN 10000 - #define QUICKENING_WARMUP_DELAY 8 /* We want to compare to zero for efficiency, so we offset values accordingly */ #define QUICKENING_INITIAL_WARMUP_VALUE (-QUICKENING_WARMUP_DELAY) -#define QUICKENING_WARMUP_COLDEST 1 -int _Py_Quicken(PyCodeObject *code); +void _PyCode_Quicken(PyCodeObject *code); -/* Returns 1 if quickening occurs. - * -1 if an error occurs - * 0 otherwise */ -static inline int -_Py_IncrementCountAndMaybeQuicken(PyCodeObject *code) +static inline void +_PyCode_Warmup(PyCodeObject *code) { if (code->co_warmup != 0) { code->co_warmup++; if (code->co_warmup == 0) { - return _Py_Quicken(code) ? -1 : 1; + _PyCode_Quicken(code); } } - return 0; } extern Py_ssize_t _Py_QuickenedCount; @@ -225,6 +217,7 @@ PyAPI_FUNC(PyCodeObject *) _PyCode_New(struct _PyCodeConstructor *); extern PyObject* _PyCode_GetVarnames(PyCodeObject *); extern PyObject* _PyCode_GetCellvars(PyCodeObject *); extern PyObject* _PyCode_GetFreevars(PyCodeObject *); +extern PyObject* _PyCode_GetCode(PyCodeObject *); /* Return the ending source code line number from a bytecode index. */ extern int _PyCode_Addr2EndLine(PyCodeObject *, int); diff --git a/Include/opcode.h b/Include/opcode.h index 7bf0ba7..dfc7b72 100644 --- a/Include/opcode.h +++ b/Include/opcode.h @@ -7,185 +7,187 @@ extern "C" { /* Instruction opcodes for compiled code */ -#define CACHE 0 -#define POP_TOP 1 -#define PUSH_NULL 2 -#define NOP 9 -#define UNARY_POSITIVE 10 -#define UNARY_NEGATIVE 11 -#define UNARY_NOT 12 -#define UNARY_INVERT 15 -#define BINARY_SUBSCR 25 -#define GET_LEN 30 -#define MATCH_MAPPING 31 -#define MATCH_SEQUENCE 32 -#define MATCH_KEYS 33 -#define PUSH_EXC_INFO 35 -#define WITH_EXCEPT_START 49 -#define GET_AITER 50 -#define GET_ANEXT 51 -#define BEFORE_ASYNC_WITH 52 -#define BEFORE_WITH 53 -#define END_ASYNC_FOR 54 -#define STORE_SUBSCR 60 -#define DELETE_SUBSCR 61 -#define GET_ITER 68 -#define GET_YIELD_FROM_ITER 69 -#define PRINT_EXPR 70 -#define LOAD_BUILD_CLASS 71 -#define LOAD_ASSERTION_ERROR 74 -#define RETURN_GENERATOR 75 -#define LIST_TO_TUPLE 82 -#define RETURN_VALUE 83 -#define IMPORT_STAR 84 -#define SETUP_ANNOTATIONS 85 -#define YIELD_VALUE 86 -#define ASYNC_GEN_WRAP 87 -#define PREP_RERAISE_STAR 88 -#define POP_EXCEPT 89 -#define HAVE_ARGUMENT 90 -#define STORE_NAME 90 -#define DELETE_NAME 91 -#define UNPACK_SEQUENCE 92 -#define FOR_ITER 93 -#define UNPACK_EX 94 -#define STORE_ATTR 95 -#define DELETE_ATTR 96 -#define STORE_GLOBAL 97 -#define DELETE_GLOBAL 98 -#define SWAP 99 -#define LOAD_CONST 100 -#define LOAD_NAME 101 -#define BUILD_TUPLE 102 -#define BUILD_LIST 103 -#define BUILD_SET 104 -#define BUILD_MAP 105 -#define LOAD_ATTR 106 -#define COMPARE_OP 107 -#define IMPORT_NAME 108 -#define IMPORT_FROM 109 -#define JUMP_FORWARD 110 -#define JUMP_IF_FALSE_OR_POP 111 -#define JUMP_IF_TRUE_OR_POP 112 -#define JUMP_ABSOLUTE 113 -#define POP_JUMP_IF_FALSE 114 -#define POP_JUMP_IF_TRUE 115 -#define LOAD_GLOBAL 116 -#define IS_OP 117 -#define CONTAINS_OP 118 -#define RERAISE 119 -#define COPY 120 -#define JUMP_IF_NOT_EXC_MATCH 121 -#define BINARY_OP 122 -#define SEND 123 -#define LOAD_FAST 124 -#define STORE_FAST 125 -#define DELETE_FAST 126 -#define JUMP_IF_NOT_EG_MATCH 127 -#define POP_JUMP_IF_NOT_NONE 128 -#define POP_JUMP_IF_NONE 129 -#define RAISE_VARARGS 130 -#define GET_AWAITABLE 131 -#define MAKE_FUNCTION 132 -#define BUILD_SLICE 133 -#define JUMP_NO_INTERRUPT 134 -#define MAKE_CELL 135 -#define LOAD_CLOSURE 136 -#define LOAD_DEREF 137 -#define STORE_DEREF 138 -#define DELETE_DEREF 139 -#define CALL_FUNCTION_EX 142 -#define EXTENDED_ARG 144 -#define LIST_APPEND 145 -#define SET_ADD 146 -#define MAP_ADD 147 -#define LOAD_CLASSDEREF 148 -#define COPY_FREE_VARS 149 -#define RESUME 151 -#define MATCH_CLASS 152 -#define FORMAT_VALUE 155 -#define BUILD_CONST_KEY_MAP 156 -#define BUILD_STRING 157 -#define LOAD_METHOD 160 -#define LIST_EXTEND 162 -#define SET_UPDATE 163 -#define DICT_MERGE 164 -#define DICT_UPDATE 165 -#define PRECALL 166 -#define CALL 171 -#define KW_NAMES 172 -#define BINARY_OP_ADAPTIVE 3 -#define BINARY_OP_ADD_INT 4 -#define BINARY_OP_ADD_FLOAT 5 -#define BINARY_OP_ADD_UNICODE 6 -#define BINARY_OP_INPLACE_ADD_UNICODE 7 -#define BINARY_OP_MULTIPLY_INT 8 -#define BINARY_OP_MULTIPLY_FLOAT 13 -#define BINARY_OP_SUBTRACT_INT 14 -#define BINARY_OP_SUBTRACT_FLOAT 16 -#define COMPARE_OP_ADAPTIVE 17 -#define COMPARE_OP_FLOAT_JUMP 18 -#define COMPARE_OP_INT_JUMP 19 -#define COMPARE_OP_STR_JUMP 20 -#define BINARY_SUBSCR_ADAPTIVE 21 -#define BINARY_SUBSCR_GETITEM 22 -#define BINARY_SUBSCR_LIST_INT 23 -#define BINARY_SUBSCR_TUPLE_INT 24 -#define BINARY_SUBSCR_DICT 26 -#define STORE_SUBSCR_ADAPTIVE 27 -#define STORE_SUBSCR_LIST_INT 28 -#define STORE_SUBSCR_DICT 29 -#define CALL_ADAPTIVE 34 -#define CALL_PY_EXACT_ARGS 36 -#define CALL_PY_WITH_DEFAULTS 37 -#define JUMP_ABSOLUTE_QUICK 38 -#define LOAD_ATTR_ADAPTIVE 39 -#define LOAD_ATTR_INSTANCE_VALUE 40 -#define LOAD_ATTR_WITH_HINT 41 -#define LOAD_ATTR_SLOT 42 -#define LOAD_ATTR_MODULE 43 -#define LOAD_GLOBAL_ADAPTIVE 44 -#define LOAD_GLOBAL_MODULE 45 -#define LOAD_GLOBAL_BUILTIN 46 -#define LOAD_METHOD_ADAPTIVE 47 -#define LOAD_METHOD_CLASS 48 -#define LOAD_METHOD_MODULE 55 -#define LOAD_METHOD_NO_DICT 56 -#define LOAD_METHOD_WITH_DICT 57 -#define LOAD_METHOD_WITH_VALUES 58 -#define PRECALL_ADAPTIVE 59 -#define PRECALL_BUILTIN_CLASS 62 -#define PRECALL_NO_KW_BUILTIN_O 63 -#define PRECALL_NO_KW_BUILTIN_FAST 64 -#define PRECALL_BUILTIN_FAST_WITH_KEYWORDS 65 -#define PRECALL_NO_KW_LEN 66 -#define PRECALL_NO_KW_ISINSTANCE 67 -#define PRECALL_NO_KW_LIST_APPEND 72 -#define PRECALL_NO_KW_METHOD_DESCRIPTOR_O 73 -#define PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 76 -#define PRECALL_NO_KW_STR_1 77 -#define PRECALL_NO_KW_TUPLE_1 78 -#define PRECALL_NO_KW_TYPE_1 79 -#define PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST 80 -#define PRECALL_BOUND_METHOD 81 -#define PRECALL_PYFUNC 140 -#define RESUME_QUICK 141 -#define STORE_ATTR_ADAPTIVE 143 -#define STORE_ATTR_INSTANCE_VALUE 150 -#define STORE_ATTR_SLOT 153 -#define STORE_ATTR_WITH_HINT 154 -#define UNPACK_SEQUENCE_ADAPTIVE 158 -#define UNPACK_SEQUENCE_LIST 159 -#define UNPACK_SEQUENCE_TUPLE 161 -#define UNPACK_SEQUENCE_TWO_TUPLE 167 -#define LOAD_FAST__LOAD_FAST 168 -#define STORE_FAST__LOAD_FAST 169 -#define LOAD_FAST__LOAD_CONST 170 -#define LOAD_CONST__LOAD_FAST 173 -#define STORE_FAST__STORE_FAST 174 -#define DO_TRACING 255 +#define CACHE 0 +#define POP_TOP 1 +#define PUSH_NULL 2 +#define NOP 9 +#define UNARY_POSITIVE 10 +#define UNARY_NEGATIVE 11 +#define UNARY_NOT 12 +#define UNARY_INVERT 15 +#define BINARY_SUBSCR 25 +#define GET_LEN 30 +#define MATCH_MAPPING 31 +#define MATCH_SEQUENCE 32 +#define MATCH_KEYS 33 +#define PUSH_EXC_INFO 35 +#define WITH_EXCEPT_START 49 +#define GET_AITER 50 +#define GET_ANEXT 51 +#define BEFORE_ASYNC_WITH 52 +#define BEFORE_WITH 53 +#define END_ASYNC_FOR 54 +#define STORE_SUBSCR 60 +#define DELETE_SUBSCR 61 +#define GET_ITER 68 +#define GET_YIELD_FROM_ITER 69 +#define PRINT_EXPR 70 +#define LOAD_BUILD_CLASS 71 +#define LOAD_ASSERTION_ERROR 74 +#define RETURN_GENERATOR 75 +#define LIST_TO_TUPLE 82 +#define RETURN_VALUE 83 +#define IMPORT_STAR 84 +#define SETUP_ANNOTATIONS 85 +#define YIELD_VALUE 86 +#define ASYNC_GEN_WRAP 87 +#define PREP_RERAISE_STAR 88 +#define POP_EXCEPT 89 +#define HAVE_ARGUMENT 90 +#define STORE_NAME 90 +#define DELETE_NAME 91 +#define UNPACK_SEQUENCE 92 +#define FOR_ITER 93 +#define UNPACK_EX 94 +#define STORE_ATTR 95 +#define DELETE_ATTR 96 +#define STORE_GLOBAL 97 +#define DELETE_GLOBAL 98 +#define SWAP 99 +#define LOAD_CONST 100 +#define LOAD_NAME 101 +#define BUILD_TUPLE 102 +#define BUILD_LIST 103 +#define BUILD_SET 104 +#define BUILD_MAP 105 +#define LOAD_ATTR 106 +#define COMPARE_OP 107 +#define IMPORT_NAME 108 +#define IMPORT_FROM 109 +#define JUMP_FORWARD 110 +#define JUMP_IF_FALSE_OR_POP 111 +#define JUMP_IF_TRUE_OR_POP 112 +#define JUMP_ABSOLUTE 113 +#define POP_JUMP_IF_FALSE 114 +#define POP_JUMP_IF_TRUE 115 +#define LOAD_GLOBAL 116 +#define IS_OP 117 +#define CONTAINS_OP 118 +#define RERAISE 119 +#define COPY 120 +#define JUMP_IF_NOT_EXC_MATCH 121 +#define BINARY_OP 122 +#define SEND 123 +#define LOAD_FAST 124 +#define STORE_FAST 125 +#define DELETE_FAST 126 +#define JUMP_IF_NOT_EG_MATCH 127 +#define POP_JUMP_IF_NOT_NONE 128 +#define POP_JUMP_IF_NONE 129 +#define RAISE_VARARGS 130 +#define GET_AWAITABLE 131 +#define MAKE_FUNCTION 132 +#define BUILD_SLICE 133 +#define JUMP_NO_INTERRUPT 134 +#define MAKE_CELL 135 +#define LOAD_CLOSURE 136 +#define LOAD_DEREF 137 +#define STORE_DEREF 138 +#define DELETE_DEREF 139 +#define CALL_FUNCTION_EX 142 +#define EXTENDED_ARG 144 +#define LIST_APPEND 145 +#define SET_ADD 146 +#define MAP_ADD 147 +#define LOAD_CLASSDEREF 148 +#define COPY_FREE_VARS 149 +#define RESUME 151 +#define MATCH_CLASS 152 +#define FORMAT_VALUE 155 +#define BUILD_CONST_KEY_MAP 156 +#define BUILD_STRING 157 +#define LOAD_METHOD 160 +#define LIST_EXTEND 162 +#define SET_UPDATE 163 +#define DICT_MERGE 164 +#define DICT_UPDATE 165 +#define PRECALL 166 +#define CALL 171 +#define KW_NAMES 172 +#define BINARY_OP_ADAPTIVE 3 +#define BINARY_OP_ADD_FLOAT 4 +#define BINARY_OP_ADD_INT 5 +#define BINARY_OP_ADD_UNICODE 6 +#define BINARY_OP_INPLACE_ADD_UNICODE 7 +#define BINARY_OP_MULTIPLY_FLOAT 8 +#define BINARY_OP_MULTIPLY_INT 13 +#define BINARY_OP_SUBTRACT_FLOAT 14 +#define BINARY_OP_SUBTRACT_INT 16 +#define BINARY_SUBSCR_ADAPTIVE 17 +#define BINARY_SUBSCR_DICT 18 +#define BINARY_SUBSCR_GETITEM 19 +#define BINARY_SUBSCR_LIST_INT 20 +#define BINARY_SUBSCR_TUPLE_INT 21 +#define CALL_ADAPTIVE 22 +#define CALL_PY_EXACT_ARGS 23 +#define CALL_PY_WITH_DEFAULTS 24 +#define COMPARE_OP_ADAPTIVE 26 +#define COMPARE_OP_FLOAT_JUMP 27 +#define COMPARE_OP_INT_JUMP 28 +#define COMPARE_OP_STR_JUMP 29 +#define JUMP_ABSOLUTE_QUICK 34 +#define LOAD_ATTR_ADAPTIVE 36 +#define LOAD_ATTR_INSTANCE_VALUE 37 +#define LOAD_ATTR_MODULE 38 +#define LOAD_ATTR_SLOT 39 +#define LOAD_ATTR_WITH_HINT 40 +#define LOAD_CONST__LOAD_FAST 41 +#define LOAD_FAST__LOAD_CONST 42 +#define LOAD_FAST__LOAD_FAST 43 +#define LOAD_GLOBAL_ADAPTIVE 44 +#define LOAD_GLOBAL_BUILTIN 45 +#define LOAD_GLOBAL_MODULE 46 +#define LOAD_METHOD_ADAPTIVE 47 +#define LOAD_METHOD_CLASS 48 +#define LOAD_METHOD_MODULE 55 +#define LOAD_METHOD_NO_DICT 56 +#define LOAD_METHOD_WITH_DICT 57 +#define LOAD_METHOD_WITH_VALUES 58 +#define PRECALL_ADAPTIVE 59 +#define PRECALL_BOUND_METHOD 62 +#define PRECALL_BUILTIN_CLASS 63 +#define PRECALL_BUILTIN_FAST_WITH_KEYWORDS 64 +#define PRECALL_NO_KW_BUILTIN_FAST 65 +#define PRECALL_NO_KW_BUILTIN_O 66 +#define PRECALL_NO_KW_ISINSTANCE 67 +#define PRECALL_NO_KW_LEN 72 +#define PRECALL_NO_KW_LIST_APPEND 73 +#define PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST 76 +#define PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 77 +#define PRECALL_NO_KW_METHOD_DESCRIPTOR_O 78 +#define PRECALL_NO_KW_STR_1 79 +#define PRECALL_NO_KW_TUPLE_1 80 +#define PRECALL_NO_KW_TYPE_1 81 +#define PRECALL_PYFUNC 140 +#define RESUME_QUICK 141 +#define STORE_ATTR_ADAPTIVE 143 +#define STORE_ATTR_INSTANCE_VALUE 150 +#define STORE_ATTR_SLOT 153 +#define STORE_ATTR_WITH_HINT 154 +#define STORE_FAST__LOAD_FAST 158 +#define STORE_FAST__STORE_FAST 159 +#define STORE_SUBSCR_ADAPTIVE 161 +#define STORE_SUBSCR_DICT 167 +#define STORE_SUBSCR_LIST_INT 168 +#define UNPACK_SEQUENCE_ADAPTIVE 169 +#define UNPACK_SEQUENCE_LIST 170 +#define UNPACK_SEQUENCE_TUPLE 173 +#define UNPACK_SEQUENCE_TWO_TUPLE 174 +#define DO_TRACING 255 -extern const uint8_t _PyOpcode_InlineCacheEntries[256]; +extern const uint8_t _PyOpcode_Caches[256]; + +extern const uint8_t _PyOpcode_Deopt[256]; #ifdef NEED_OPCODE_TABLES static const uint32_t _PyOpcode_RelativeJump[8] = { @@ -209,7 +211,7 @@ static const uint32_t _PyOpcode_Jump[8] = { 0U, }; -const uint8_t _PyOpcode_InlineCacheEntries[256] = { +const uint8_t _PyOpcode_Caches[256] = { [BINARY_SUBSCR] = 4, [STORE_SUBSCR] = 1, [UNPACK_SEQUENCE] = 1, @@ -222,6 +224,184 @@ const uint8_t _PyOpcode_InlineCacheEntries[256] = { [PRECALL] = 1, [CALL] = 4, }; + +const uint8_t _PyOpcode_Deopt[256] = { + [ASYNC_GEN_WRAP] = ASYNC_GEN_WRAP, + [BEFORE_ASYNC_WITH] = BEFORE_ASYNC_WITH, + [BEFORE_WITH] = BEFORE_WITH, + [BINARY_OP] = BINARY_OP, + [BINARY_OP_ADAPTIVE] = BINARY_OP, + [BINARY_OP_ADD_FLOAT] = BINARY_OP, + [BINARY_OP_ADD_INT] = BINARY_OP, + [BINARY_OP_ADD_UNICODE] = BINARY_OP, + [BINARY_OP_INPLACE_ADD_UNICODE] = BINARY_OP, + [BINARY_OP_MULTIPLY_FLOAT] = BINARY_OP, + [BINARY_OP_MULTIPLY_INT] = BINARY_OP, + [BINARY_OP_SUBTRACT_FLOAT] = BINARY_OP, + [BINARY_OP_SUBTRACT_INT] = BINARY_OP, + [BINARY_SUBSCR] = BINARY_SUBSCR, + [BINARY_SUBSCR_ADAPTIVE] = BINARY_SUBSCR, + [BINARY_SUBSCR_DICT] = BINARY_SUBSCR, + [BINARY_SUBSCR_GETITEM] = BINARY_SUBSCR, + [BINARY_SUBSCR_LIST_INT] = BINARY_SUBSCR, + [BINARY_SUBSCR_TUPLE_INT] = BINARY_SUBSCR, + [BUILD_CONST_KEY_MAP] = BUILD_CONST_KEY_MAP, + [BUILD_LIST] = BUILD_LIST, + [BUILD_MAP] = BUILD_MAP, + [BUILD_SET] = BUILD_SET, + [BUILD_SLICE] = BUILD_SLICE, + [BUILD_STRING] = BUILD_STRING, + [BUILD_TUPLE] = BUILD_TUPLE, + [CACHE] = CACHE, + [CALL] = CALL, + [CALL_ADAPTIVE] = CALL, + [CALL_FUNCTION_EX] = CALL_FUNCTION_EX, + [CALL_PY_EXACT_ARGS] = CALL, + [CALL_PY_WITH_DEFAULTS] = CALL, + [COMPARE_OP] = COMPARE_OP, + [COMPARE_OP_ADAPTIVE] = COMPARE_OP, + [COMPARE_OP_FLOAT_JUMP] = COMPARE_OP, + [COMPARE_OP_INT_JUMP] = COMPARE_OP, + [COMPARE_OP_STR_JUMP] = COMPARE_OP, + [CONTAINS_OP] = CONTAINS_OP, + [COPY] = COPY, + [COPY_FREE_VARS] = COPY_FREE_VARS, + [DELETE_ATTR] = DELETE_ATTR, + [DELETE_DEREF] = DELETE_DEREF, + [DELETE_FAST] = DELETE_FAST, + [DELETE_GLOBAL] = DELETE_GLOBAL, + [DELETE_NAME] = DELETE_NAME, + [DELETE_SUBSCR] = DELETE_SUBSCR, + [DICT_MERGE] = DICT_MERGE, + [DICT_UPDATE] = DICT_UPDATE, + [END_ASYNC_FOR] = END_ASYNC_FOR, + [EXTENDED_ARG] = EXTENDED_ARG, + [FORMAT_VALUE] = FORMAT_VALUE, + [FOR_ITER] = FOR_ITER, + [GET_AITER] = GET_AITER, + [GET_ANEXT] = GET_ANEXT, + [GET_AWAITABLE] = GET_AWAITABLE, + [GET_ITER] = GET_ITER, + [GET_LEN] = GET_LEN, + [GET_YIELD_FROM_ITER] = GET_YIELD_FROM_ITER, + [IMPORT_FROM] = IMPORT_FROM, + [IMPORT_NAME] = IMPORT_NAME, + [IMPORT_STAR] = IMPORT_STAR, + [IS_OP] = IS_OP, + [JUMP_ABSOLUTE] = JUMP_ABSOLUTE, + [JUMP_ABSOLUTE_QUICK] = JUMP_ABSOLUTE, + [JUMP_FORWARD] = JUMP_FORWARD, + [JUMP_IF_FALSE_OR_POP] = JUMP_IF_FALSE_OR_POP, + [JUMP_IF_NOT_EG_MATCH] = JUMP_IF_NOT_EG_MATCH, + [JUMP_IF_NOT_EXC_MATCH] = JUMP_IF_NOT_EXC_MATCH, + [JUMP_IF_TRUE_OR_POP] = JUMP_IF_TRUE_OR_POP, + [JUMP_NO_INTERRUPT] = JUMP_NO_INTERRUPT, + [KW_NAMES] = KW_NAMES, + [LIST_APPEND] = LIST_APPEND, + [LIST_EXTEND] = LIST_EXTEND, + [LIST_TO_TUPLE] = LIST_TO_TUPLE, + [LOAD_ASSERTION_ERROR] = LOAD_ASSERTION_ERROR, + [LOAD_ATTR] = LOAD_ATTR, + [LOAD_ATTR_ADAPTIVE] = LOAD_ATTR, + [LOAD_ATTR_INSTANCE_VALUE] = LOAD_ATTR, + [LOAD_ATTR_MODULE] = LOAD_ATTR, + [LOAD_ATTR_SLOT] = LOAD_ATTR, + [LOAD_ATTR_WITH_HINT] = LOAD_ATTR, + [LOAD_BUILD_CLASS] = LOAD_BUILD_CLASS, + [LOAD_CLASSDEREF] = LOAD_CLASSDEREF, + [LOAD_CLOSURE] = LOAD_CLOSURE, + [LOAD_CONST] = LOAD_CONST, + [LOAD_CONST__LOAD_FAST] = LOAD_CONST, + [LOAD_DEREF] = LOAD_DEREF, + [LOAD_FAST] = LOAD_FAST, + [LOAD_FAST__LOAD_CONST] = LOAD_FAST, + [LOAD_FAST__LOAD_FAST] = LOAD_FAST, + [LOAD_GLOBAL] = LOAD_GLOBAL, + [LOAD_GLOBAL_ADAPTIVE] = LOAD_GLOBAL, + [LOAD_GLOBAL_BUILTIN] = LOAD_GLOBAL, + [LOAD_GLOBAL_MODULE] = LOAD_GLOBAL, + [LOAD_METHOD] = LOAD_METHOD, + [LOAD_METHOD_ADAPTIVE] = LOAD_METHOD, + [LOAD_METHOD_CLASS] = LOAD_METHOD, + [LOAD_METHOD_MODULE] = LOAD_METHOD, + [LOAD_METHOD_NO_DICT] = LOAD_METHOD, + [LOAD_METHOD_WITH_DICT] = LOAD_METHOD, + [LOAD_METHOD_WITH_VALUES] = LOAD_METHOD, + [LOAD_NAME] = LOAD_NAME, + [MAKE_CELL] = MAKE_CELL, + [MAKE_FUNCTION] = MAKE_FUNCTION, + [MAP_ADD] = MAP_ADD, + [MATCH_CLASS] = MATCH_CLASS, + [MATCH_KEYS] = MATCH_KEYS, + [MATCH_MAPPING] = MATCH_MAPPING, + [MATCH_SEQUENCE] = MATCH_SEQUENCE, + [NOP] = NOP, + [POP_EXCEPT] = POP_EXCEPT, + [POP_JUMP_IF_FALSE] = POP_JUMP_IF_FALSE, + [POP_JUMP_IF_NONE] = POP_JUMP_IF_NONE, + [POP_JUMP_IF_NOT_NONE] = POP_JUMP_IF_NOT_NONE, + [POP_JUMP_IF_TRUE] = POP_JUMP_IF_TRUE, + [POP_TOP] = POP_TOP, + [PRECALL] = PRECALL, + [PRECALL_ADAPTIVE] = PRECALL, + [PRECALL_BOUND_METHOD] = PRECALL, + [PRECALL_BUILTIN_CLASS] = PRECALL, + [PRECALL_BUILTIN_FAST_WITH_KEYWORDS] = PRECALL, + [PRECALL_NO_KW_BUILTIN_FAST] = PRECALL, + [PRECALL_NO_KW_BUILTIN_O] = PRECALL, + [PRECALL_NO_KW_ISINSTANCE] = PRECALL, + [PRECALL_NO_KW_LEN] = PRECALL, + [PRECALL_NO_KW_LIST_APPEND] = PRECALL, + [PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST] = PRECALL, + [PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS] = PRECALL, + [PRECALL_NO_KW_METHOD_DESCRIPTOR_O] = PRECALL, + [PRECALL_NO_KW_STR_1] = PRECALL, + [PRECALL_NO_KW_TUPLE_1] = PRECALL, + [PRECALL_NO_KW_TYPE_1] = PRECALL, + [PRECALL_PYFUNC] = PRECALL, + [PREP_RERAISE_STAR] = PREP_RERAISE_STAR, + [PRINT_EXPR] = PRINT_EXPR, + [PUSH_EXC_INFO] = PUSH_EXC_INFO, + [PUSH_NULL] = PUSH_NULL, + [RAISE_VARARGS] = RAISE_VARARGS, + [RERAISE] = RERAISE, + [RESUME] = RESUME, + [RESUME_QUICK] = RESUME, + [RETURN_GENERATOR] = RETURN_GENERATOR, + [RETURN_VALUE] = RETURN_VALUE, + [SEND] = SEND, + [SETUP_ANNOTATIONS] = SETUP_ANNOTATIONS, + [SET_ADD] = SET_ADD, + [SET_UPDATE] = SET_UPDATE, + [STORE_ATTR] = STORE_ATTR, + [STORE_ATTR_ADAPTIVE] = STORE_ATTR, + [STORE_ATTR_INSTANCE_VALUE] = STORE_ATTR, + [STORE_ATTR_SLOT] = STORE_ATTR, + [STORE_ATTR_WITH_HINT] = STORE_ATTR, + [STORE_DEREF] = STORE_DEREF, + [STORE_FAST] = STORE_FAST, + [STORE_FAST__LOAD_FAST] = STORE_FAST, + [STORE_FAST__STORE_FAST] = STORE_FAST, + [STORE_GLOBAL] = STORE_GLOBAL, + [STORE_NAME] = STORE_NAME, + [STORE_SUBSCR] = STORE_SUBSCR, + [STORE_SUBSCR_ADAPTIVE] = STORE_SUBSCR, + [STORE_SUBSCR_DICT] = STORE_SUBSCR, + [STORE_SUBSCR_LIST_INT] = STORE_SUBSCR, + [SWAP] = SWAP, + [UNARY_INVERT] = UNARY_INVERT, + [UNARY_NEGATIVE] = UNARY_NEGATIVE, + [UNARY_NOT] = UNARY_NOT, + [UNARY_POSITIVE] = UNARY_POSITIVE, + [UNPACK_EX] = UNPACK_EX, + [UNPACK_SEQUENCE] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_ADAPTIVE] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_LIST] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_TUPLE] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_TWO_TUPLE] = UNPACK_SEQUENCE, + [WITH_EXCEPT_START] = WITH_EXCEPT_START, + [YIELD_VALUE] = YIELD_VALUE, +}; #endif /* OPCODE_TABLES */ #define HAS_CONST(op) (false\ @@ -229,32 +409,32 @@ const uint8_t _PyOpcode_InlineCacheEntries[256] = { || ((op) == 172) \ ) -#define NB_ADD 0 -#define NB_AND 1 -#define NB_FLOOR_DIVIDE 2 -#define NB_LSHIFT 3 -#define NB_MATRIX_MULTIPLY 4 -#define NB_MULTIPLY 5 -#define NB_REMAINDER 6 -#define NB_OR 7 -#define NB_POWER 8 -#define NB_RSHIFT 9 -#define NB_SUBTRACT 10 -#define NB_TRUE_DIVIDE 11 -#define NB_XOR 12 -#define NB_INPLACE_ADD 13 -#define NB_INPLACE_AND 14 -#define NB_INPLACE_FLOOR_DIVIDE 15 -#define NB_INPLACE_LSHIFT 16 -#define NB_INPLACE_MATRIX_MULTIPLY 17 -#define NB_INPLACE_MULTIPLY 18 -#define NB_INPLACE_REMAINDER 19 -#define NB_INPLACE_OR 20 -#define NB_INPLACE_POWER 21 -#define NB_INPLACE_RSHIFT 22 -#define NB_INPLACE_SUBTRACT 23 -#define NB_INPLACE_TRUE_DIVIDE 24 -#define NB_INPLACE_XOR 25 +#define NB_ADD 0 +#define NB_AND 1 +#define NB_FLOOR_DIVIDE 2 +#define NB_LSHIFT 3 +#define NB_MATRIX_MULTIPLY 4 +#define NB_MULTIPLY 5 +#define NB_REMAINDER 6 +#define NB_OR 7 +#define NB_POWER 8 +#define NB_RSHIFT 9 +#define NB_SUBTRACT 10 +#define NB_TRUE_DIVIDE 11 +#define NB_XOR 12 +#define NB_INPLACE_ADD 13 +#define NB_INPLACE_AND 14 +#define NB_INPLACE_FLOOR_DIVIDE 15 +#define NB_INPLACE_LSHIFT 16 +#define NB_INPLACE_MATRIX_MULTIPLY 17 +#define NB_INPLACE_MULTIPLY 18 +#define NB_INPLACE_REMAINDER 19 +#define NB_INPLACE_OR 20 +#define NB_INPLACE_POWER 21 +#define NB_INPLACE_RSHIFT 22 +#define NB_INPLACE_SUBTRACT 23 +#define NB_INPLACE_TRUE_DIVIDE 24 +#define NB_INPLACE_XOR 25 #define HAS_ARG(op) ((op) >= HAVE_ARGUMENT) diff --git a/Lib/opcode.py b/Lib/opcode.py index eb9dd35..7a52c13 100644 --- a/Lib/opcode.py +++ b/Lib/opcode.py @@ -229,77 +229,111 @@ _nb_ops = [ ("NB_INPLACE_XOR", "^="), ] +_specializations = { + "BINARY_OP": [ + "BINARY_OP_ADAPTIVE", + "BINARY_OP_ADD_FLOAT", + "BINARY_OP_ADD_INT", + "BINARY_OP_ADD_UNICODE", + "BINARY_OP_INPLACE_ADD_UNICODE", + "BINARY_OP_MULTIPLY_FLOAT", + "BINARY_OP_MULTIPLY_INT", + "BINARY_OP_SUBTRACT_FLOAT", + "BINARY_OP_SUBTRACT_INT", + ], + "BINARY_SUBSCR": [ + "BINARY_SUBSCR_ADAPTIVE", + "BINARY_SUBSCR_DICT", + "BINARY_SUBSCR_GETITEM", + "BINARY_SUBSCR_LIST_INT", + "BINARY_SUBSCR_TUPLE_INT", + ], + "CALL": [ + "CALL_ADAPTIVE", + "CALL_PY_EXACT_ARGS", + "CALL_PY_WITH_DEFAULTS", + ], + "COMPARE_OP": [ + "COMPARE_OP_ADAPTIVE", + "COMPARE_OP_FLOAT_JUMP", + "COMPARE_OP_INT_JUMP", + "COMPARE_OP_STR_JUMP", + ], + "JUMP_ABSOLUTE": [ + "JUMP_ABSOLUTE_QUICK", + ], + "LOAD_ATTR": [ + "LOAD_ATTR_ADAPTIVE", + "LOAD_ATTR_INSTANCE_VALUE", + "LOAD_ATTR_MODULE", + "LOAD_ATTR_SLOT", + "LOAD_ATTR_WITH_HINT", + ], + "LOAD_CONST": [ + "LOAD_CONST__LOAD_FAST", + ], + "LOAD_FAST": [ + "LOAD_FAST__LOAD_CONST", + "LOAD_FAST__LOAD_FAST", + ], + "LOAD_GLOBAL": [ + "LOAD_GLOBAL_ADAPTIVE", + "LOAD_GLOBAL_BUILTIN", + "LOAD_GLOBAL_MODULE", + ], + "LOAD_METHOD": [ + "LOAD_METHOD_ADAPTIVE", + "LOAD_METHOD_CLASS", + "LOAD_METHOD_MODULE", + "LOAD_METHOD_NO_DICT", + "LOAD_METHOD_WITH_DICT", + "LOAD_METHOD_WITH_VALUES", + ], + "PRECALL": [ + "PRECALL_ADAPTIVE", + "PRECALL_BOUND_METHOD", + "PRECALL_BUILTIN_CLASS", + "PRECALL_BUILTIN_FAST_WITH_KEYWORDS", + "PRECALL_NO_KW_BUILTIN_FAST", + "PRECALL_NO_KW_BUILTIN_O", + "PRECALL_NO_KW_ISINSTANCE", + "PRECALL_NO_KW_LEN", + "PRECALL_NO_KW_LIST_APPEND", + "PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST", + "PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS", + "PRECALL_NO_KW_METHOD_DESCRIPTOR_O", + "PRECALL_NO_KW_STR_1", + "PRECALL_NO_KW_TUPLE_1", + "PRECALL_NO_KW_TYPE_1", + "PRECALL_PYFUNC", + ], + "RESUME": [ + "RESUME_QUICK", + ], + "STORE_ATTR": [ + "STORE_ATTR_ADAPTIVE", + "STORE_ATTR_INSTANCE_VALUE", + "STORE_ATTR_SLOT", + "STORE_ATTR_WITH_HINT", + ], + "STORE_FAST": [ + "STORE_FAST__LOAD_FAST", + "STORE_FAST__STORE_FAST", + ], + "STORE_SUBSCR": [ + "STORE_SUBSCR_ADAPTIVE", + "STORE_SUBSCR_DICT", + "STORE_SUBSCR_LIST_INT", + ], + "UNPACK_SEQUENCE": [ + "UNPACK_SEQUENCE_ADAPTIVE", + "UNPACK_SEQUENCE_LIST", + "UNPACK_SEQUENCE_TUPLE", + "UNPACK_SEQUENCE_TWO_TUPLE", + ], +} _specialized_instructions = [ - "BINARY_OP_ADAPTIVE", - "BINARY_OP_ADD_INT", - "BINARY_OP_ADD_FLOAT", - "BINARY_OP_ADD_UNICODE", - "BINARY_OP_INPLACE_ADD_UNICODE", - "BINARY_OP_MULTIPLY_INT", - "BINARY_OP_MULTIPLY_FLOAT", - "BINARY_OP_SUBTRACT_INT", - "BINARY_OP_SUBTRACT_FLOAT", - "COMPARE_OP_ADAPTIVE", - "COMPARE_OP_FLOAT_JUMP", - "COMPARE_OP_INT_JUMP", - "COMPARE_OP_STR_JUMP", - "BINARY_SUBSCR_ADAPTIVE", - "BINARY_SUBSCR_GETITEM", - "BINARY_SUBSCR_LIST_INT", - "BINARY_SUBSCR_TUPLE_INT", - "BINARY_SUBSCR_DICT", - "STORE_SUBSCR_ADAPTIVE", - "STORE_SUBSCR_LIST_INT", - "STORE_SUBSCR_DICT", - "CALL_ADAPTIVE", - "CALL_PY_EXACT_ARGS", - "CALL_PY_WITH_DEFAULTS", - "JUMP_ABSOLUTE_QUICK", - "LOAD_ATTR_ADAPTIVE", - "LOAD_ATTR_INSTANCE_VALUE", - "LOAD_ATTR_WITH_HINT", - "LOAD_ATTR_SLOT", - "LOAD_ATTR_MODULE", - "LOAD_GLOBAL_ADAPTIVE", - "LOAD_GLOBAL_MODULE", - "LOAD_GLOBAL_BUILTIN", - "LOAD_METHOD_ADAPTIVE", - "LOAD_METHOD_CLASS", - "LOAD_METHOD_MODULE", - "LOAD_METHOD_NO_DICT", - "LOAD_METHOD_WITH_DICT", - "LOAD_METHOD_WITH_VALUES", - "PRECALL_ADAPTIVE", - "PRECALL_BUILTIN_CLASS", - "PRECALL_NO_KW_BUILTIN_O", - "PRECALL_NO_KW_BUILTIN_FAST", - "PRECALL_BUILTIN_FAST_WITH_KEYWORDS", - "PRECALL_NO_KW_LEN", - "PRECALL_NO_KW_ISINSTANCE", - "PRECALL_NO_KW_LIST_APPEND", - "PRECALL_NO_KW_METHOD_DESCRIPTOR_O", - "PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS", - "PRECALL_NO_KW_STR_1", - "PRECALL_NO_KW_TUPLE_1", - "PRECALL_NO_KW_TYPE_1", - "PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST", - "PRECALL_BOUND_METHOD", - "PRECALL_PYFUNC", - "RESUME_QUICK", - "STORE_ATTR_ADAPTIVE", - "STORE_ATTR_INSTANCE_VALUE", - "STORE_ATTR_SLOT", - "STORE_ATTR_WITH_HINT", - "UNPACK_SEQUENCE_ADAPTIVE", - "UNPACK_SEQUENCE_LIST", - "UNPACK_SEQUENCE_TUPLE", - "UNPACK_SEQUENCE_TWO_TUPLE", - # Super instructions - "LOAD_FAST__LOAD_FAST", - "STORE_FAST__LOAD_FAST", - "LOAD_FAST__LOAD_CONST", - "LOAD_CONST__LOAD_FAST", - "STORE_FAST__STORE_FAST", + opcode for family in _specializations.values() for opcode in family ] _specialization_stats = [ "success", diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py index 8499d28..a4e8080 100644 --- a/Lib/test/test_compile.py +++ b/Lib/test/test_compile.py @@ -641,7 +641,7 @@ if 1: self.check_constant(f1, frozenset({0})) self.assertTrue(f1(0)) - # Merging equal co_linetable and co_code is not a strict requirement + # Merging equal co_linetable is not a strict requirement # for the Python semantics, it's a more an implementation detail. @support.cpython_only def test_merge_code_attrs(self): @@ -650,7 +650,6 @@ if 1: f2 = lambda a: a.b.c self.assertIs(f1.__code__.co_linetable, f2.__code__.co_linetable) - self.assertIs(f1.__code__.co_code, f2.__code__.co_code) # Stripping unused constants is not a strict requirement for the # Python semantics, it's a more an implementation detail. diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-03-16-11-05-35.bpo-46841.yUoIHg.rst b/Misc/NEWS.d/next/Core and Builtins/2022-03-16-11-05-35.bpo-46841.yUoIHg.rst new file mode 100644 index 0000000..99fad38 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-03-16-11-05-35.bpo-46841.yUoIHg.rst @@ -0,0 +1,2 @@ +Quicken bytecode in-place by storing it as part of the corresponding +``PyCodeObject``. diff --git a/Objects/clinic/codeobject.c.h b/Objects/clinic/codeobject.c.h index ee425f6..272bcd6 100644 --- a/Objects/clinic/codeobject.c.h +++ b/Objects/clinic/codeobject.c.h @@ -203,12 +203,12 @@ code_replace(PyCodeObject *self, PyObject *const *args, Py_ssize_t nargs, PyObje int co_stacksize = self->co_stacksize; int co_flags = self->co_flags; int co_firstlineno = self->co_firstlineno; - PyBytesObject *co_code = (PyBytesObject *)self->co_code; + PyBytesObject *co_code = NULL; PyObject *co_consts = self->co_consts; PyObject *co_names = self->co_names; - PyObject *co_varnames = self->co_varnames; - PyObject *co_freevars = self->co_freevars; - PyObject *co_cellvars = self->co_cellvars; + PyObject *co_varnames = NULL; + PyObject *co_freevars = NULL; + PyObject *co_cellvars = NULL; PyObject *co_filename = self->co_filename; PyObject *co_name = self->co_name; PyObject *co_qualname = self->co_qualname; @@ -456,4 +456,4 @@ code__varname_from_oparg(PyCodeObject *self, PyObject *const *args, Py_ssize_t n exit: return return_value; } -/*[clinic end generated code: output=9e8c4a19474ec520 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b1b83a70ffc5b7cd input=a9049054013a1b77]*/ diff --git a/Objects/codeobject.c b/Objects/codeobject.c index 5279f6c..224493e 100644 --- a/Objects/codeobject.c +++ b/Objects/codeobject.c @@ -305,9 +305,6 @@ init_code(PyCodeObject *co, struct _PyCodeConstructor *con) co->co_qualname = con->qualname; co->co_flags = con->flags; - Py_INCREF(con->code); - co->co_code = con->code; - co->co_firstinstr = (_Py_CODEUNIT *)PyBytes_AS_STRING(con->code); co->co_firstlineno = con->firstlineno; Py_INCREF(con->linetable); co->co_linetable = con->linetable; @@ -341,16 +338,14 @@ init_code(PyCodeObject *co, struct _PyCodeConstructor *con) co->co_nplaincellvars = nplaincellvars; co->co_ncellvars = ncellvars; co->co_nfreevars = nfreevars; - co->co_varnames = NULL; - co->co_cellvars = NULL; - co->co_freevars = NULL; /* not set */ co->co_weakreflist = NULL; co->co_extra = NULL; co->co_warmup = QUICKENING_INITIAL_WARMUP_VALUE; - co->co_quickened = NULL; + memcpy(_PyCode_CODE(co), PyBytes_AS_STRING(con->code), + PyBytes_GET_SIZE(con->code)); } /* The caller is responsible for ensuring that the given data is valid. */ @@ -386,7 +381,8 @@ _PyCode_New(struct _PyCodeConstructor *con) con->columntable = Py_None; } - PyCodeObject *co = PyObject_New(PyCodeObject, &PyCode_Type); + Py_ssize_t size = PyBytes_GET_SIZE(con->code) / sizeof(_Py_CODEUNIT); + PyCodeObject *co = PyObject_NewVar(PyCodeObject, &PyCode_Type, size); if (co == NULL) { PyErr_NoMemory(); return NULL; @@ -521,13 +517,6 @@ PyCode_NewWithPosOnlyArgs(int argcount, int posonlyargcount, int kwonlyargcount, goto error; } - Py_INCREF(varnames); - co->co_varnames = varnames; - Py_INCREF(cellvars); - co->co_cellvars = cellvars; - Py_INCREF(freevars); - co->co_freevars = freevars; - error: Py_XDECREF(localsplusnames); Py_XDECREF(localspluskinds); @@ -611,7 +600,7 @@ PyCode_Addr2Line(PyCodeObject *co, int addrq) if (addrq < 0) { return co->co_firstlineno; } - assert(addrq >= 0 && addrq < PyBytes_GET_SIZE(co->co_code)); + assert(addrq >= 0 && addrq < _PyCode_NBYTES(co)); PyCodeAddressRange bounds; _PyCode_InitAddressRange(co, &bounds); return _PyCode_CheckLineNumber(addrq, &bounds); @@ -639,7 +628,7 @@ _PyCode_Addr2EndLine(PyCodeObject* co, int addrq) return -1; } - assert(addrq >= 0 && addrq < PyBytes_GET_SIZE(co->co_code)); + assert(addrq >= 0 && addrq < _PyCode_NBYTES(co)); PyCodeAddressRange bounds; _PyCode_InitEndAddressRange(co, &bounds); return _PyCode_CheckLineNumber(addrq, &bounds); @@ -995,7 +984,7 @@ _source_offset_converter(int* value) { static PyObject* positionsiter_next(positionsiterator* pi) { - if (pi->pi_offset >= PyBytes_GET_SIZE(pi->pi_code->co_code)) { + if (pi->pi_offset >= _PyCode_NBYTES(pi->pi_code)) { return NULL; } @@ -1151,46 +1140,39 @@ _PyCode_SetExtra(PyObject *code, Py_ssize_t index, void *extra) PyObject * _PyCode_GetVarnames(PyCodeObject *co) { - if (co->co_varnames == NULL) { - // PyCodeObject owns this reference. - co->co_varnames = get_localsplus_names(co, CO_FAST_LOCAL, - co->co_nlocals); - if (co->co_varnames == NULL) { - return NULL; - } - } - Py_INCREF(co->co_varnames); - return co->co_varnames; + return get_localsplus_names(co, CO_FAST_LOCAL, co->co_nlocals); } PyObject * _PyCode_GetCellvars(PyCodeObject *co) { - if (co->co_cellvars == NULL) { - // PyCodeObject owns this reference. - co->co_cellvars = get_localsplus_names(co, CO_FAST_CELL, - co->co_ncellvars); - if (co->co_cellvars == NULL) { - return NULL; - } - } - Py_INCREF(co->co_cellvars); - return co->co_cellvars; + return get_localsplus_names(co, CO_FAST_CELL, co->co_ncellvars); } PyObject * _PyCode_GetFreevars(PyCodeObject *co) { - if (co->co_freevars == NULL) { - // PyCodeObject owns this reference. - co->co_freevars = get_localsplus_names(co, CO_FAST_FREE, - co->co_nfreevars); - if (co->co_freevars == NULL) { - return NULL; + return get_localsplus_names(co, CO_FAST_FREE, co->co_nfreevars); +} + +PyObject * +_PyCode_GetCode(PyCodeObject *co) +{ + PyObject *code = PyBytes_FromStringAndSize(NULL, _PyCode_NBYTES(co)); + if (code == NULL) { + return NULL; + } + _Py_CODEUNIT *instructions = (_Py_CODEUNIT *)PyBytes_AS_STRING(code); + for (int i = 0; i < Py_SIZE(co); i++) { + _Py_CODEUNIT instruction = _PyCode_CODE(co)[i]; + int opcode = _PyOpcode_Deopt[_Py_OPCODE(instruction)]; + int caches = _PyOpcode_Caches[opcode]; + instructions[i] = _Py_MAKECODEUNIT(opcode, _Py_OPARG(instruction)); + while (caches--) { + instructions[++i] = _Py_MAKECODEUNIT(CACHE, 0); } } - Py_INCREF(co->co_freevars); - return co->co_freevars; + return code; } @@ -1348,14 +1330,10 @@ code_dealloc(PyCodeObject *co) PyMem_Free(co_extra); } - Py_XDECREF(co->co_code); Py_XDECREF(co->co_consts); Py_XDECREF(co->co_names); Py_XDECREF(co->co_localsplusnames); Py_XDECREF(co->co_localspluskinds); - Py_XDECREF(co->co_varnames); - Py_XDECREF(co->co_freevars); - Py_XDECREF(co->co_cellvars); Py_XDECREF(co->co_filename); Py_XDECREF(co->co_name); Py_XDECREF(co->co_qualname); @@ -1363,10 +1341,10 @@ code_dealloc(PyCodeObject *co) Py_XDECREF(co->co_endlinetable); Py_XDECREF(co->co_columntable); Py_XDECREF(co->co_exceptiontable); - if (co->co_weakreflist != NULL) + if (co->co_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject*)co); - if (co->co_quickened) { - PyMem_Free(co->co_quickened); + } + if (co->co_warmup == 0) { _Py_QuickenedCount--; } PyObject_Free(co); @@ -1420,8 +1398,21 @@ code_richcompare(PyObject *self, PyObject *other, int op) if (!eq) goto unequal; eq = co->co_firstlineno == cp->co_firstlineno; if (!eq) goto unequal; - eq = PyObject_RichCompareBool(co->co_code, cp->co_code, Py_EQ); - if (eq <= 0) goto unequal; + PyObject *co_code = _PyCode_GetCode(co); + if (co_code == NULL) { + return NULL; + } + PyObject *cp_code = _PyCode_GetCode(cp); + if (cp_code == NULL) { + Py_DECREF(co_code); + return NULL; + } + eq = PyObject_RichCompareBool(co_code, cp_code, Py_EQ); + Py_DECREF(co_code); + Py_DECREF(cp_code); + if (eq <= 0) { + goto unequal; + } /* compare constants */ consts1 = _PyCode_ConstantKey(co->co_consts); @@ -1465,18 +1456,16 @@ code_richcompare(PyObject *self, PyObject *other, int op) static Py_hash_t code_hash(PyCodeObject *co) { - Py_hash_t h, h0, h1, h2, h3, h4; + Py_hash_t h, h0, h1, h2, h3; h0 = PyObject_Hash(co->co_name); if (h0 == -1) return -1; - h1 = PyObject_Hash(co->co_code); + h1 = PyObject_Hash(co->co_consts); if (h1 == -1) return -1; - h2 = PyObject_Hash(co->co_consts); + h2 = PyObject_Hash(co->co_names); if (h2 == -1) return -1; - h3 = PyObject_Hash(co->co_names); + h3 = PyObject_Hash(co->co_localsplusnames); if (h3 == -1) return -1; - h4 = PyObject_Hash(co->co_localsplusnames); - if (h4 == -1) return -1; - h = h0 ^ h1 ^ h2 ^ h3 ^ h4 ^ + h = h0 ^ h1 ^ h2 ^ h3 ^ co->co_argcount ^ co->co_posonlyargcount ^ co->co_kwonlyargcount ^ co->co_flags; if (h == -1) h = -2; @@ -1487,22 +1476,22 @@ code_hash(PyCodeObject *co) #define OFF(x) offsetof(PyCodeObject, x) static PyMemberDef code_memberlist[] = { - {"co_argcount", T_INT, OFF(co_argcount), READONLY}, - {"co_posonlyargcount", T_INT, OFF(co_posonlyargcount), READONLY}, - {"co_kwonlyargcount", T_INT, OFF(co_kwonlyargcount), READONLY}, - {"co_stacksize",T_INT, OFF(co_stacksize), READONLY}, - {"co_flags", T_INT, OFF(co_flags), READONLY}, - {"co_code", T_OBJECT, OFF(co_code), READONLY}, - {"co_consts", T_OBJECT, OFF(co_consts), READONLY}, - {"co_names", T_OBJECT, OFF(co_names), READONLY}, - {"co_filename", T_OBJECT, OFF(co_filename), READONLY}, - {"co_name", T_OBJECT, OFF(co_name), READONLY}, - {"co_qualname", T_OBJECT, OFF(co_qualname), READONLY}, - {"co_firstlineno", T_INT, OFF(co_firstlineno), READONLY}, - {"co_linetable", T_OBJECT, OFF(co_linetable), READONLY}, - {"co_endlinetable", T_OBJECT, OFF(co_endlinetable), READONLY}, - {"co_columntable", T_OBJECT, OFF(co_columntable), READONLY}, - {"co_exceptiontable", T_OBJECT, OFF(co_exceptiontable), READONLY}, + {"co_argcount", T_INT, OFF(co_argcount), READONLY}, + {"co_posonlyargcount", T_INT, OFF(co_posonlyargcount), READONLY}, + {"co_kwonlyargcount", T_INT, OFF(co_kwonlyargcount), READONLY}, + {"co_stacksize", T_INT, OFF(co_stacksize), READONLY}, + {"co_flags", T_INT, OFF(co_flags), READONLY}, + {"co_nlocals", T_INT, OFF(co_nlocals), READONLY}, + {"co_consts", T_OBJECT, OFF(co_consts), READONLY}, + {"co_names", T_OBJECT, OFF(co_names), READONLY}, + {"co_filename", T_OBJECT, OFF(co_filename), READONLY}, + {"co_name", T_OBJECT, OFF(co_name), READONLY}, + {"co_qualname", T_OBJECT, OFF(co_qualname), READONLY}, + {"co_firstlineno", T_INT, OFF(co_firstlineno), READONLY}, + {"co_linetable", T_OBJECT, OFF(co_linetable), READONLY}, + {"co_endlinetable", T_OBJECT, OFF(co_endlinetable), READONLY}, + {"co_columntable", T_OBJECT, OFF(co_columntable), READONLY}, + {"co_exceptiontable", T_OBJECT, OFF(co_exceptiontable), READONLY}, {NULL} /* Sentinel */ }; @@ -1514,12 +1503,6 @@ code_getlnotab(PyCodeObject *code, void *closure) } static PyObject * -code_getnlocals(PyCodeObject *code, void *closure) -{ - return PyLong_FromLong(code->co_nlocals); -} - -static PyObject * code_getvarnames(PyCodeObject *code, void *closure) { return _PyCode_GetVarnames(code); @@ -1538,23 +1521,26 @@ code_getfreevars(PyCodeObject *code, void *closure) } static PyObject * -code_getquickened(PyCodeObject *code, void *closure) +code_getcodeadaptive(PyCodeObject *code, void *closure) { - if (code->co_quickened == NULL) { - Py_RETURN_NONE; - } - return PyBytes_FromStringAndSize((char *)code->co_firstinstr, - PyBytes_Size(code->co_code)); + return PyMemoryView_FromMemory(code->co_code_adaptive, _PyCode_NBYTES(code), + PyBUF_READ); +} + +static PyObject * +code_getcode(PyCodeObject *code, void *closure) +{ + return _PyCode_GetCode(code); } static PyGetSetDef code_getsetlist[] = { - {"co_lnotab", (getter)code_getlnotab, NULL, NULL}, + {"co_lnotab", (getter)code_getlnotab, NULL, NULL}, + {"_co_code_adaptive", (getter)code_getcodeadaptive, NULL, NULL}, // The following old names are kept for backward compatibility. - {"co_nlocals", (getter)code_getnlocals, NULL, NULL}, - {"co_varnames", (getter)code_getvarnames, NULL, NULL}, - {"co_cellvars", (getter)code_getcellvars, NULL, NULL}, - {"co_freevars", (getter)code_getfreevars, NULL, NULL}, - {"_co_quickened", (getter)code_getquickened, NULL, NULL}, + {"co_varnames", (getter)code_getvarnames, NULL, NULL}, + {"co_cellvars", (getter)code_getcellvars, NULL, NULL}, + {"co_freevars", (getter)code_getfreevars, NULL, NULL}, + {"co_code", (getter)code_getcode, NULL, NULL}, {0} }; @@ -1562,7 +1548,7 @@ static PyGetSetDef code_getsetlist[] = { static PyObject * code_sizeof(PyCodeObject *co, PyObject *Py_UNUSED(args)) { - Py_ssize_t res = _PyObject_SIZE(Py_TYPE(co)); + Py_ssize_t res = _PyObject_VAR_SIZE(Py_TYPE(co), Py_SIZE(co)); _PyCodeObjectExtra *co_extra = (_PyCodeObjectExtra*) co->co_extra; if (co_extra != NULL) { @@ -1570,10 +1556,6 @@ code_sizeof(PyCodeObject *co, PyObject *Py_UNUSED(args)) (co_extra->ce_size-1) * sizeof(co_extra->ce_extras[0]); } - if (co->co_quickened != NULL) { - res += PyBytes_GET_SIZE(co->co_code); - } - return PyLong_FromSsize_t(res); } @@ -1594,12 +1576,12 @@ code.replace co_stacksize: int(c_default="self->co_stacksize") = -1 co_flags: int(c_default="self->co_flags") = -1 co_firstlineno: int(c_default="self->co_firstlineno") = -1 - co_code: PyBytesObject(c_default="(PyBytesObject *)self->co_code") = None + co_code: PyBytesObject(c_default="NULL") = None co_consts: object(subclass_of="&PyTuple_Type", c_default="self->co_consts") = None co_names: object(subclass_of="&PyTuple_Type", c_default="self->co_names") = None - co_varnames: object(subclass_of="&PyTuple_Type", c_default="self->co_varnames") = None - co_freevars: object(subclass_of="&PyTuple_Type", c_default="self->co_freevars") = None - co_cellvars: object(subclass_of="&PyTuple_Type", c_default="self->co_cellvars") = None + co_varnames: object(subclass_of="&PyTuple_Type", c_default="NULL") = None + co_freevars: object(subclass_of="&PyTuple_Type", c_default="NULL") = None + co_cellvars: object(subclass_of="&PyTuple_Type", c_default="NULL") = None co_filename: unicode(c_default="self->co_filename") = None co_name: unicode(c_default="self->co_name") = None co_qualname: unicode(c_default="self->co_qualname") = None @@ -1622,7 +1604,7 @@ code_replace_impl(PyCodeObject *self, int co_argcount, PyObject *co_name, PyObject *co_qualname, PyBytesObject *co_linetable, PyObject *co_endlinetable, PyObject *co_columntable, PyBytesObject *co_exceptiontable) -/*[clinic end generated code: output=f046bf0be3bab91f input=a63d09f248f00794]*/ +/*[clinic end generated code: output=f046bf0be3bab91f input=78dbe204dbd06c2f]*/ { #define CHECK_INT_ARG(ARG) \ if (ARG < 0) { \ @@ -1641,6 +1623,15 @@ code_replace_impl(PyCodeObject *self, int co_argcount, #undef CHECK_INT_ARG + PyObject *code = NULL; + if (co_code == NULL) { + code = _PyCode_GetCode(self); + if (code == NULL) { + return NULL; + } + co_code = (PyBytesObject *)code; + } + if (PySys_Audit("code.__new__", "OOOiiiiii", co_code, co_filename, co_name, co_argcount, co_posonlyargcount, co_kwonlyargcount, co_nlocals, @@ -1694,6 +1685,7 @@ code_replace_impl(PyCodeObject *self, int co_argcount, (PyObject*)co_exceptiontable); error: + Py_XDECREF(code); Py_XDECREF(varnames); Py_XDECREF(cellvars); Py_XDECREF(freevars); @@ -1737,8 +1729,8 @@ static struct PyMethodDef code_methods[] = { PyTypeObject PyCode_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) "code", - sizeof(PyCodeObject), - 0, + offsetof(PyCodeObject, co_code_adaptive), + sizeof(_Py_CODEUNIT), (destructor)code_dealloc, /* tp_dealloc */ 0, /* tp_vectorcall_offset */ 0, /* tp_getattr */ @@ -1913,15 +1905,12 @@ _PyCode_ConstantKey(PyObject *op) void _PyStaticCode_Dealloc(PyCodeObject *co) { - if (co->co_quickened) { - PyMem_Free(co->co_quickened); - co->co_quickened = NULL; + if (co->co_warmup == 0) { _Py_QuickenedCount--; } co->co_warmup = QUICKENING_INITIAL_WARMUP_VALUE; PyMem_Free(co->co_extra); co->co_extra = NULL; - co->co_firstinstr = (_Py_CODEUNIT *)PyBytes_AS_STRING(co->co_code); if (co->co_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *)co); co->co_weakreflist = NULL; diff --git a/Objects/frameobject.c b/Objects/frameobject.c index 73b6c3d..7ccd300 100644 --- a/Objects/frameobject.c +++ b/Objects/frameobject.c @@ -105,8 +105,9 @@ frame_getback(PyFrameObject *f, void *closure) return res; } -/* Given the index of the effective opcode, - scan back to construct the oparg with EXTENDED_ARG */ +// Given the index of the effective opcode, scan back to construct the oparg +// with EXTENDED_ARG. This only works correctly with *unquickened* code, +// obtained via a call to _PyCode_GetCode! static unsigned int get_arg(const _Py_CODEUNIT *codestr, Py_ssize_t i) { @@ -170,13 +171,17 @@ top_of_stack(int64_t stack) static int64_t * mark_stacks(PyCodeObject *code_obj, int len) { - const _Py_CODEUNIT *code = - (const _Py_CODEUNIT *)PyBytes_AS_STRING(code_obj->co_code); + PyObject *co_code = _PyCode_GetCode(code_obj); + if (co_code == NULL) { + return NULL; + } + _Py_CODEUNIT *code = (_Py_CODEUNIT *)PyBytes_AS_STRING(co_code); int64_t *stacks = PyMem_New(int64_t, len+1); int i, j, opcode; if (stacks == NULL) { PyErr_NoMemory(); + Py_DECREF(co_code); return NULL; } for (int i = 1; i <= len; i++) { @@ -304,6 +309,7 @@ mark_stacks(PyCodeObject *code_obj, int len) } } } + Py_DECREF(co_code); return stacks; } @@ -493,7 +499,7 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno, void *Py_UNUSED(ignore /* PyCode_NewWithPosOnlyArgs limits co_code to be under INT_MAX so this * should never overflow. */ - int len = (int)(PyBytes_GET_SIZE(f->f_frame->f_code->co_code) / sizeof(_Py_CODEUNIT)); + int len = (int)Py_SIZE(f->f_frame->f_code); int *lines = marklines(f->f_frame->f_code, len); if (lines == NULL) { return -1; @@ -838,12 +844,23 @@ PyFrame_New(PyThreadState *tstate, PyCodeObject *code, static int _PyFrame_OpAlreadyRan(_PyInterpreterFrame *frame, int opcode, int oparg) { - const _Py_CODEUNIT *code = - (const _Py_CODEUNIT *)PyBytes_AS_STRING(frame->f_code->co_code); + // This only works when opcode is a non-quickened form: + assert(_PyOpcode_Deopt[opcode] == opcode); + int check_oparg = 0; for (int i = 0; i < frame->f_lasti; i++) { - if (_Py_OPCODE(code[i]) == opcode && _Py_OPARG(code[i]) == oparg) { + _Py_CODEUNIT instruction = _PyCode_CODE(frame->f_code)[i]; + int check_opcode = _PyOpcode_Deopt[_Py_OPCODE(instruction)]; + check_oparg |= _Py_OPARG(instruction); + if (check_opcode == opcode && check_oparg == oparg) { return 1; } + if (check_opcode == EXTENDED_ARG) { + check_oparg <<= 8; + } + else { + check_oparg = 0; + } + i += _PyOpcode_Caches[check_opcode]; } return 0; } @@ -862,7 +879,10 @@ _PyFrame_FastToLocalsWithError(_PyInterpreterFrame *frame) { } co = frame->f_code; fast = _PyFrame_GetLocalsArray(frame); - if (frame->f_lasti < 0 && _Py_OPCODE(co->co_firstinstr[0]) == COPY_FREE_VARS) { + // COPY_FREE_VARS has no quickened forms, so no need to use _PyOpcode_Deopt + // here: + if (frame->f_lasti < 0 && _Py_OPCODE(_PyCode_CODE(co)[0]) == COPY_FREE_VARS) + { /* Free vars have not been initialized -- Do that */ PyCodeObject *co = frame->f_code; PyObject *closure = frame->f_func->func_closure; @@ -872,6 +892,7 @@ _PyFrame_FastToLocalsWithError(_PyInterpreterFrame *frame) { Py_INCREF(o); frame->localsplus[offset + i] = o; } + // COPY_FREE_VARS doesn't have inline CACHEs, either: frame->f_lasti = 0; } for (int i = 0; i < co->co_nlocalsplus; i++) { diff --git a/Objects/genobject.c b/Objects/genobject.c index 6551b93..3ad8dc1 100644 --- a/Objects/genobject.c +++ b/Objects/genobject.c @@ -349,19 +349,17 @@ _PyGen_yf(PyGenObject *gen) if (gen->gi_frame_valid) { _PyInterpreterFrame *frame = (_PyInterpreterFrame *)gen->gi_iframe; - PyObject *bytecode = gen->gi_code->co_code; - unsigned char *code = (unsigned char *)PyBytes_AS_STRING(bytecode); if (frame->f_lasti < 1) { /* Return immediately if the frame didn't start yet. SEND always come after LOAD_CONST: a code object should not start with SEND */ - assert(code[0] != SEND); + assert(_Py_OPCODE(_PyCode_CODE(gen->gi_code)[0]) != SEND); return NULL; } - int opcode = code[(frame->f_lasti+1)*sizeof(_Py_CODEUNIT)]; - int oparg = code[(frame->f_lasti+1)*sizeof(_Py_CODEUNIT)+1]; - if (opcode != RESUME || oparg < 2) { + _Py_CODEUNIT next = _PyCode_CODE(gen->gi_code)[frame->f_lasti + 1]; + if (_PyOpcode_Deopt[_Py_OPCODE(next)] != RESUME || _Py_OPARG(next) < 2) + { /* Not in a yield from */ return NULL; } @@ -485,14 +483,15 @@ _gen_throw(PyGenObject *gen, int close_on_genexit, ret = _PyFrame_StackPop((_PyInterpreterFrame *)gen->gi_iframe); assert(ret == yf); Py_DECREF(ret); + // XXX: Performing this jump ourselves is awkward and problematic. + // See https://github.com/python/cpython/pull/31968. /* Termination repetition of SEND loop */ assert(frame->f_lasti >= 0); - PyObject *bytecode = gen->gi_code->co_code; - unsigned char *code = (unsigned char *)PyBytes_AS_STRING(bytecode); + _Py_CODEUNIT *code = _PyCode_CODE(gen->gi_code); /* Backup to SEND */ frame->f_lasti--; - assert(code[frame->f_lasti*sizeof(_Py_CODEUNIT)] == SEND); - int jump = code[frame->f_lasti*sizeof(_Py_CODEUNIT)+1]; + assert(_Py_OPCODE(code[frame->f_lasti]) == SEND); + int jump = _Py_OPARG(code[frame->f_lasti]); frame->f_lasti += jump; if (_PyGen_FetchStopIterationValue(&val) == 0) { ret = gen_send(gen, val); diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 7879515..4bed3ef 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -8949,7 +8949,10 @@ super_init_without_args(_PyInterpreterFrame *cframe, PyCodeObject *co, // "firstarg" is a cell here unless (very unlikely) super() // was called from the C-API before the first MAKE_CELL op. if (cframe->f_lasti >= 0) { - assert(_Py_OPCODE(*co->co_firstinstr) == MAKE_CELL || _Py_OPCODE(*co->co_firstinstr) == COPY_FREE_VARS); + // MAKE_CELL and COPY_FREE_VARS have no quickened forms, so no need + // to use _PyOpcode_Deopt here: + assert(_Py_OPCODE(_PyCode_CODE(co)[0]) == MAKE_CELL || + _Py_OPCODE(_PyCode_CODE(co)[0]) == COPY_FREE_VARS); assert(PyCell_Check(firstarg)); firstarg = PyCell_GET(firstarg); } diff --git a/Python/ceval.c b/Python/ceval.c index 6f449e3..7c6bfd4 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -1327,9 +1327,8 @@ eval_frame_handle_pending(PyThreadState *tstate) /* Get opcode and oparg from original instructions, not quickened form. */ #define TRACING_NEXTOPARG() do { \ - _Py_CODEUNIT word = ((_Py_CODEUNIT *)PyBytes_AS_STRING(frame->f_code->co_code))[INSTR_OFFSET()]; \ - opcode = _Py_OPCODE(word); \ - oparg = _Py_OPARG(word); \ + NEXTOPARG(); \ + opcode = _PyOpcode_Deopt[opcode]; \ } while (0) /* OpCode prediction macros @@ -1650,9 +1649,10 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int PyCodeObject *co = frame->f_code; \ names = co->co_names; \ consts = co->co_consts; \ - first_instr = co->co_firstinstr; \ + first_instr = _PyCode_CODE(co); \ } \ assert(frame->f_lasti >= -1); \ + /* Jump back to the last instruction executed... */ \ next_instr = first_instr + frame->f_lasti + 1; \ stack_pointer = _PyFrame_GetStackPointer(frame); \ /* Set stackdepth to -1. \ @@ -1722,16 +1722,7 @@ handle_eval_breaker: } TARGET(RESUME) { - int err = _Py_IncrementCountAndMaybeQuicken(frame->f_code); - if (err) { - if (err < 0) { - goto error; - } - /* Update first_instr and next_instr to point to newly quickened code */ - int nexti = INSTR_OFFSET(); - first_instr = frame->f_code->co_firstinstr; - next_instr = first_instr + nexti; - } + _PyCode_Warmup(frame->f_code); JUMP_TO_INSTRUCTION(RESUME_QUICK); } @@ -4067,16 +4058,7 @@ handle_eval_breaker: TARGET(JUMP_ABSOLUTE) { PREDICTED(JUMP_ABSOLUTE); - int err = _Py_IncrementCountAndMaybeQuicken(frame->f_code); - if (err) { - if (err < 0) { - goto error; - } - /* Update first_instr and next_instr to point to newly quickened code */ - int nexti = INSTR_OFFSET(); - first_instr = frame->f_code->co_firstinstr; - next_instr = first_instr + nexti; - } + _PyCode_Warmup(frame->f_code); JUMP_TO_INSTRUCTION(JUMP_ABSOLUTE_QUICK); } @@ -5425,6 +5407,7 @@ handle_eval_breaker: } TARGET(EXTENDED_ARG) { + assert(oparg); int oldoparg = oparg; NEXTOPARG(); oparg |= oldoparg << 8; @@ -6739,8 +6722,8 @@ maybe_call_line_trace(Py_tracefunc func, PyObject *obj, */ initialize_trace_info(&tstate->trace_info, frame); int entry_point = 0; - _Py_CODEUNIT *code = (_Py_CODEUNIT *)PyBytes_AS_STRING(frame->f_code->co_code); - while (_Py_OPCODE(code[entry_point]) != RESUME) { + _Py_CODEUNIT *code = _PyCode_CODE(frame->f_code); + while (_PyOpcode_Deopt[_Py_OPCODE(code[entry_point])] != RESUME) { entry_point++; } int lastline; @@ -6759,7 +6742,9 @@ maybe_call_line_trace(Py_tracefunc func, PyObject *obj, /* Trace backward edges (except in 'yield from') or if line number has changed */ int trace = line != lastline || (frame->f_lasti < instr_prev && - _Py_OPCODE(frame->f_code->co_firstinstr[frame->f_lasti]) != SEND); + // SEND has no quickened forms, so no need to use _PyOpcode_Deopt + // here: + _Py_OPCODE(_PyCode_CODE(frame->f_code)[frame->f_lasti]) != SEND); if (trace) { result = call_trace(func, obj, tstate, frame, PyTrace_LINE, Py_None); } diff --git a/Python/compile.c b/Python/compile.c index 950c44a..e24f425 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -134,9 +134,9 @@ static int instr_size(struct instr *instruction) { int opcode = instruction->i_opcode; - int oparg = instruction->i_oparg; + int oparg = HAS_ARG(opcode) ? instruction->i_oparg : 0; int extended_args = (0xFFFFFF < oparg) + (0xFFFF < oparg) + (0xFF < oparg); - int caches = _PyOpcode_InlineCacheEntries[opcode]; + int caches = _PyOpcode_Caches[opcode]; return extended_args + 1 + caches; } @@ -144,8 +144,8 @@ static void write_instr(_Py_CODEUNIT *codestr, struct instr *instruction, int ilen) { int opcode = instruction->i_opcode; - int oparg = instruction->i_oparg; - int caches = _PyOpcode_InlineCacheEntries[opcode]; + int oparg = HAS_ARG(opcode) ? instruction->i_oparg : 0; + int caches = _PyOpcode_Caches[opcode]; switch (ilen - caches) { case 4: *codestr++ = _Py_MAKECODEUNIT(EXTENDED_ARG, (oparg >> 24) & 0xFF); diff --git a/Python/marshal.c b/Python/marshal.c index 810244b..e7cf655 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -544,13 +544,18 @@ w_complex_object(PyObject *v, char flag, WFILE *p) } else if (PyCode_Check(v)) { PyCodeObject *co = (PyCodeObject *)v; + PyObject *co_code = _PyCode_GetCode(co); + if (co_code == NULL) { + p->error = WFERR_NOMEMORY; + return; + } W_TYPE(TYPE_CODE, p); w_long(co->co_argcount, p); w_long(co->co_posonlyargcount, p); w_long(co->co_kwonlyargcount, p); w_long(co->co_stacksize, p); w_long(co->co_flags, p); - w_object(co->co_code, p); + w_object(co_code, p); w_object(co->co_consts, p); w_object(co->co_names, p); w_object(co->co_localsplusnames, p); @@ -563,6 +568,7 @@ w_complex_object(PyObject *v, char flag, WFILE *p) w_object(co->co_endlinetable, p); w_object(co->co_columntable, p); w_object(co->co_exceptiontable, p); + Py_DECREF(co_code); } else if (PyObject_CheckBuffer(v)) { /* Write unknown bytes-like objects as a bytes object */ diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h index 7c94999..2aa6471 100644 --- a/Python/opcode_targets.h +++ b/Python/opcode_targets.h @@ -3,49 +3,49 @@ static void *opcode_targets[256] = { &&TARGET_POP_TOP, &&TARGET_PUSH_NULL, &&TARGET_BINARY_OP_ADAPTIVE, - &&TARGET_BINARY_OP_ADD_INT, &&TARGET_BINARY_OP_ADD_FLOAT, + &&TARGET_BINARY_OP_ADD_INT, &&TARGET_BINARY_OP_ADD_UNICODE, &&TARGET_BINARY_OP_INPLACE_ADD_UNICODE, - &&TARGET_BINARY_OP_MULTIPLY_INT, + &&TARGET_BINARY_OP_MULTIPLY_FLOAT, &&TARGET_NOP, &&TARGET_UNARY_POSITIVE, &&TARGET_UNARY_NEGATIVE, &&TARGET_UNARY_NOT, - &&TARGET_BINARY_OP_MULTIPLY_FLOAT, - &&TARGET_BINARY_OP_SUBTRACT_INT, - &&TARGET_UNARY_INVERT, + &&TARGET_BINARY_OP_MULTIPLY_INT, &&TARGET_BINARY_OP_SUBTRACT_FLOAT, - &&TARGET_COMPARE_OP_ADAPTIVE, - &&TARGET_COMPARE_OP_FLOAT_JUMP, - &&TARGET_COMPARE_OP_INT_JUMP, - &&TARGET_COMPARE_OP_STR_JUMP, + &&TARGET_UNARY_INVERT, + &&TARGET_BINARY_OP_SUBTRACT_INT, &&TARGET_BINARY_SUBSCR_ADAPTIVE, + &&TARGET_BINARY_SUBSCR_DICT, &&TARGET_BINARY_SUBSCR_GETITEM, &&TARGET_BINARY_SUBSCR_LIST_INT, &&TARGET_BINARY_SUBSCR_TUPLE_INT, + &&TARGET_CALL_ADAPTIVE, + &&TARGET_CALL_PY_EXACT_ARGS, + &&TARGET_CALL_PY_WITH_DEFAULTS, &&TARGET_BINARY_SUBSCR, - &&TARGET_BINARY_SUBSCR_DICT, - &&TARGET_STORE_SUBSCR_ADAPTIVE, - &&TARGET_STORE_SUBSCR_LIST_INT, - &&TARGET_STORE_SUBSCR_DICT, + &&TARGET_COMPARE_OP_ADAPTIVE, + &&TARGET_COMPARE_OP_FLOAT_JUMP, + &&TARGET_COMPARE_OP_INT_JUMP, + &&TARGET_COMPARE_OP_STR_JUMP, &&TARGET_GET_LEN, &&TARGET_MATCH_MAPPING, &&TARGET_MATCH_SEQUENCE, &&TARGET_MATCH_KEYS, - &&TARGET_CALL_ADAPTIVE, - &&TARGET_PUSH_EXC_INFO, - &&TARGET_CALL_PY_EXACT_ARGS, - &&TARGET_CALL_PY_WITH_DEFAULTS, &&TARGET_JUMP_ABSOLUTE_QUICK, + &&TARGET_PUSH_EXC_INFO, &&TARGET_LOAD_ATTR_ADAPTIVE, &&TARGET_LOAD_ATTR_INSTANCE_VALUE, - &&TARGET_LOAD_ATTR_WITH_HINT, - &&TARGET_LOAD_ATTR_SLOT, &&TARGET_LOAD_ATTR_MODULE, + &&TARGET_LOAD_ATTR_SLOT, + &&TARGET_LOAD_ATTR_WITH_HINT, + &&TARGET_LOAD_CONST__LOAD_FAST, + &&TARGET_LOAD_FAST__LOAD_CONST, + &&TARGET_LOAD_FAST__LOAD_FAST, &&TARGET_LOAD_GLOBAL_ADAPTIVE, - &&TARGET_LOAD_GLOBAL_MODULE, &&TARGET_LOAD_GLOBAL_BUILTIN, + &&TARGET_LOAD_GLOBAL_MODULE, &&TARGET_LOAD_METHOD_ADAPTIVE, &&TARGET_LOAD_METHOD_CLASS, &&TARGET_WITH_EXCEPT_START, @@ -61,26 +61,26 @@ static void *opcode_targets[256] = { &&TARGET_PRECALL_ADAPTIVE, &&TARGET_STORE_SUBSCR, &&TARGET_DELETE_SUBSCR, + &&TARGET_PRECALL_BOUND_METHOD, &&TARGET_PRECALL_BUILTIN_CLASS, - &&TARGET_PRECALL_NO_KW_BUILTIN_O, - &&TARGET_PRECALL_NO_KW_BUILTIN_FAST, &&TARGET_PRECALL_BUILTIN_FAST_WITH_KEYWORDS, - &&TARGET_PRECALL_NO_KW_LEN, + &&TARGET_PRECALL_NO_KW_BUILTIN_FAST, + &&TARGET_PRECALL_NO_KW_BUILTIN_O, &&TARGET_PRECALL_NO_KW_ISINSTANCE, &&TARGET_GET_ITER, &&TARGET_GET_YIELD_FROM_ITER, &&TARGET_PRINT_EXPR, &&TARGET_LOAD_BUILD_CLASS, + &&TARGET_PRECALL_NO_KW_LEN, &&TARGET_PRECALL_NO_KW_LIST_APPEND, - &&TARGET_PRECALL_NO_KW_METHOD_DESCRIPTOR_O, &&TARGET_LOAD_ASSERTION_ERROR, &&TARGET_RETURN_GENERATOR, + &&TARGET_PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST, &&TARGET_PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS, + &&TARGET_PRECALL_NO_KW_METHOD_DESCRIPTOR_O, &&TARGET_PRECALL_NO_KW_STR_1, &&TARGET_PRECALL_NO_KW_TUPLE_1, &&TARGET_PRECALL_NO_KW_TYPE_1, - &&TARGET_PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST, - &&TARGET_PRECALL_BOUND_METHOD, &&TARGET_LIST_TO_TUPLE, &&TARGET_RETURN_VALUE, &&TARGET_IMPORT_STAR, @@ -157,23 +157,23 @@ static void *opcode_targets[256] = { &&TARGET_FORMAT_VALUE, &&TARGET_BUILD_CONST_KEY_MAP, &&TARGET_BUILD_STRING, - &&TARGET_UNPACK_SEQUENCE_ADAPTIVE, - &&TARGET_UNPACK_SEQUENCE_LIST, + &&TARGET_STORE_FAST__LOAD_FAST, + &&TARGET_STORE_FAST__STORE_FAST, &&TARGET_LOAD_METHOD, - &&TARGET_UNPACK_SEQUENCE_TUPLE, + &&TARGET_STORE_SUBSCR_ADAPTIVE, &&TARGET_LIST_EXTEND, &&TARGET_SET_UPDATE, &&TARGET_DICT_MERGE, &&TARGET_DICT_UPDATE, &&TARGET_PRECALL, - &&TARGET_UNPACK_SEQUENCE_TWO_TUPLE, - &&TARGET_LOAD_FAST__LOAD_FAST, - &&TARGET_STORE_FAST__LOAD_FAST, - &&TARGET_LOAD_FAST__LOAD_CONST, + &&TARGET_STORE_SUBSCR_DICT, + &&TARGET_STORE_SUBSCR_LIST_INT, + &&TARGET_UNPACK_SEQUENCE_ADAPTIVE, + &&TARGET_UNPACK_SEQUENCE_LIST, &&TARGET_CALL, &&TARGET_KW_NAMES, - &&TARGET_LOAD_CONST__LOAD_FAST, - &&TARGET_STORE_FAST__STORE_FAST, + &&TARGET_UNPACK_SEQUENCE_TUPLE, + &&TARGET_UNPACK_SEQUENCE_TWO_TUPLE, &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, diff --git a/Python/specialize.c b/Python/specialize.c index d84adac..ce091a2 100644 --- a/Python/specialize.c +++ b/Python/specialize.c @@ -15,31 +15,6 @@ * ./adaptive.md */ - -/* We layout the quickened data as a bi-directional array: - * Instructions upwards, cache entries downwards. - * first_instr is aligned to a SpecializedCacheEntry. - * The nth instruction is located at first_instr[n] - * The nth cache is located at ((SpecializedCacheEntry *)first_instr)[-1-n] - * The first (index 0) cache entry is reserved for the count, to enable finding - * the first instruction from the base pointer. - * The cache_count argument must include space for the count. - * We use the SpecializedCacheOrInstruction union to refer to the data - * to avoid type punning. - - Layout of quickened data, each line 8 bytes for M cache entries and N instructions: - - <---- co->co_quickened - - - ... - - <--- co->co_first_instr - - ... - -*/ - /* Map from opcode to adaptive opcode. Values of zero are ignored. */ static uint8_t adaptive_opcodes[256] = { @@ -275,26 +250,14 @@ _Py_PrintSpecializationStats(int to_file) #define SPECIALIZATION_FAIL(opcode, kind) ((void)0) #endif -static _Py_CODEUNIT * -allocate(int instruction_count) +// Insert adaptive instructions and superinstructions. This cannot fail. +void +_PyCode_Quicken(PyCodeObject *code) { - assert(instruction_count > 0); - void *array = PyMem_Malloc(sizeof(_Py_CODEUNIT) * instruction_count); - if (array == NULL) { - PyErr_NoMemory(); - return NULL; - } _Py_QuickenedCount++; - return (_Py_CODEUNIT *)array; -} - - -// Insert adaptive instructions and superinstructions. -static void -optimize(_Py_CODEUNIT *instructions, int len) -{ int previous_opcode = -1; - for(int i = 0; i < len; i++) { + _Py_CODEUNIT *instructions = _PyCode_CODE(code); + for (int i = 0; i < Py_SIZE(code); i++) { int opcode = _Py_OPCODE(instructions[i]); uint8_t adaptive_opcode = adaptive_opcodes[opcode]; if (adaptive_opcode) { @@ -302,10 +265,10 @@ optimize(_Py_CODEUNIT *instructions, int len) // Make sure the adaptive counter is zero: assert(instructions[i + 1] == 0); previous_opcode = -1; - i += _PyOpcode_InlineCacheEntries[opcode]; + i += _PyOpcode_Caches[opcode]; } else { - assert(!_PyOpcode_InlineCacheEntries[opcode]); + assert(!_PyOpcode_Caches[opcode]); switch (opcode) { case JUMP_ABSOLUTE: _Py_SET_OPCODE(instructions[i], JUMP_ABSOLUTE_QUICK); @@ -347,28 +310,6 @@ optimize(_Py_CODEUNIT *instructions, int len) } } -int -_Py_Quicken(PyCodeObject *code) { - if (code->co_quickened) { - return 0; - } - Py_ssize_t size = PyBytes_GET_SIZE(code->co_code); - int instr_count = (int)(size/sizeof(_Py_CODEUNIT)); - if (instr_count > MAX_SIZE_TO_QUICKEN) { - code->co_warmup = QUICKENING_WARMUP_COLDEST; - return 0; - } - _Py_CODEUNIT *quickened = allocate(instr_count); - if (quickened == NULL) { - return -1; - } - memcpy(quickened, code->co_firstinstr, size); - optimize(quickened, instr_count); - code->co_quickened = quickened; - code->co_firstinstr = quickened; - return 0; -} - static inline int initial_counter_value(void) { /* Starting value for the counter. @@ -705,8 +646,7 @@ specialize_dict_access( int _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) { - assert(_PyOpcode_InlineCacheEntries[LOAD_ATTR] == - INLINE_CACHE_ENTRIES_LOAD_ATTR); + assert(_PyOpcode_Caches[LOAD_ATTR] == INLINE_CACHE_ENTRIES_LOAD_ATTR); _PyAttrCache *cache = (_PyAttrCache *)(instr + 1); if (PyModule_CheckExact(owner)) { int err = specialize_module_load_attr(owner, instr, name, LOAD_ATTR, @@ -804,8 +744,7 @@ success: int _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) { - assert(_PyOpcode_InlineCacheEntries[STORE_ATTR] == - INLINE_CACHE_ENTRIES_STORE_ATTR); + assert(_PyOpcode_Caches[STORE_ATTR] == INLINE_CACHE_ENTRIES_STORE_ATTR); _PyAttrCache *cache = (_PyAttrCache *)(instr + 1); PyTypeObject *type = Py_TYPE(owner); if (PyModule_CheckExact(owner)) { @@ -965,8 +904,7 @@ typedef enum { int _Py_Specialize_LoadMethod(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) { - assert(_PyOpcode_InlineCacheEntries[LOAD_METHOD] == - INLINE_CACHE_ENTRIES_LOAD_METHOD); + assert(_PyOpcode_Caches[LOAD_METHOD] == INLINE_CACHE_ENTRIES_LOAD_METHOD); _PyLoadMethodCache *cache = (_PyLoadMethodCache *)(instr + 1); PyTypeObject *owner_cls = Py_TYPE(owner); @@ -1098,8 +1036,7 @@ _Py_Specialize_LoadGlobal( PyObject *globals, PyObject *builtins, _Py_CODEUNIT *instr, PyObject *name) { - assert(_PyOpcode_InlineCacheEntries[LOAD_GLOBAL] == - INLINE_CACHE_ENTRIES_LOAD_GLOBAL); + assert(_PyOpcode_Caches[LOAD_GLOBAL] == INLINE_CACHE_ENTRIES_LOAD_GLOBAL); /* Use inline cache */ _PyLoadGlobalCache *cache = (_PyLoadGlobalCache *)(instr + 1); assert(PyUnicode_CheckExact(name)); @@ -1235,7 +1172,7 @@ int _Py_Specialize_BinarySubscr( PyObject *container, PyObject *sub, _Py_CODEUNIT *instr) { - assert(_PyOpcode_InlineCacheEntries[BINARY_SUBSCR] == + assert(_PyOpcode_Caches[BINARY_SUBSCR] == INLINE_CACHE_ENTRIES_BINARY_SUBSCR); _PyBinarySubscrCache *cache = (_PyBinarySubscrCache *)(instr + 1); PyTypeObject *container_type = Py_TYPE(container); @@ -1663,8 +1600,7 @@ int _Py_Specialize_Precall(PyObject *callable, _Py_CODEUNIT *instr, int nargs, PyObject *kwnames, int oparg) { - assert(_PyOpcode_InlineCacheEntries[PRECALL] == - INLINE_CACHE_ENTRIES_PRECALL); + assert(_PyOpcode_Caches[PRECALL] == INLINE_CACHE_ENTRIES_PRECALL); _PyPrecallCache *cache = (_PyPrecallCache *)(instr + 1); int fail; if (PyCFunction_CheckExact(callable)) { @@ -1710,7 +1646,7 @@ int _Py_Specialize_Call(PyObject *callable, _Py_CODEUNIT *instr, int nargs, PyObject *kwnames) { - assert(_PyOpcode_InlineCacheEntries[CALL] == INLINE_CACHE_ENTRIES_CALL); + assert(_PyOpcode_Caches[CALL] == INLINE_CACHE_ENTRIES_CALL); _PyCallCache *cache = (_PyCallCache *)(instr + 1); int fail; if (PyFunction_Check(callable)) { @@ -1808,8 +1744,7 @@ void _Py_Specialize_BinaryOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, int oparg) { - assert(_PyOpcode_InlineCacheEntries[BINARY_OP] == - INLINE_CACHE_ENTRIES_BINARY_OP); + assert(_PyOpcode_Caches[BINARY_OP] == INLINE_CACHE_ENTRIES_BINARY_OP); _PyBinaryOpCache *cache = (_PyBinaryOpCache *)(instr + 1); switch (oparg) { case NB_ADD: @@ -1936,8 +1871,7 @@ void _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, int oparg) { - assert(_PyOpcode_InlineCacheEntries[COMPARE_OP] == - INLINE_CACHE_ENTRIES_COMPARE_OP); + assert(_PyOpcode_Caches[COMPARE_OP] == INLINE_CACHE_ENTRIES_COMPARE_OP); _PyCompareOpCache *cache = (_PyCompareOpCache *)(instr + 1); int next_opcode = _Py_OPCODE(instr[INLINE_CACHE_ENTRIES_COMPARE_OP + 1]); if (next_opcode != POP_JUMP_IF_FALSE && next_opcode != POP_JUMP_IF_TRUE) { @@ -2019,7 +1953,7 @@ unpack_sequence_fail_kind(PyObject *seq) void _Py_Specialize_UnpackSequence(PyObject *seq, _Py_CODEUNIT *instr, int oparg) { - assert(_PyOpcode_InlineCacheEntries[UNPACK_SEQUENCE] == + assert(_PyOpcode_Caches[UNPACK_SEQUENCE] == INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE); _PyUnpackSequenceCache *cache = (_PyUnpackSequenceCache *)(instr + 1); if (PyTuple_CheckExact(seq)) { diff --git a/Tools/scripts/deepfreeze.py b/Tools/scripts/deepfreeze.py index 954fca8..d208258 100644 --- a/Tools/scripts/deepfreeze.py +++ b/Tools/scripts/deepfreeze.py @@ -229,12 +229,8 @@ class Printer: def generate_code(self, name: str, code: types.CodeType) -> str: # The ordering here matches PyCode_NewWithPosOnlyArgs() # (but see below). - co_code = self.generate(name + "_code", code.co_code) co_consts = self.generate(name + "_consts", code.co_consts) co_names = self.generate(name + "_names", code.co_names) - co_varnames = self.generate(name + "_varnames", code.co_varnames) - co_freevars = self.generate(name + "_freevars", code.co_freevars) - co_cellvars = self.generate(name + "_cellvars", code.co_cellvars) co_filename = self.generate(name + "_filename", code.co_filename) co_name = self.generate(name + "_name", code.co_name) co_qualname = self.generate(name + "_qualname", code.co_qualname) @@ -249,14 +245,17 @@ class Printer: # Derived values nlocals, nplaincellvars, ncellvars, nfreevars = \ get_localsplus_counts(code, localsplusnames, localspluskinds) - with self.block(f"static struct PyCodeObject {name} =", ";"): - self.object_head("PyCode_Type") + co_code_adaptive = make_string_literal(code.co_code) + self.write("static") + with self.indent(): + self.write(f"struct _PyCode_DEF({len(code.co_code)})") + with self.block(f"{name} =", ";"): + self.object_var_head("PyCode_Type", len(code.co_code) // 2) # But the ordering here must match that in cpython/code.h # (which is a pain because we tend to reorder those for perf) # otherwise MSVC doesn't like it. self.write(f".co_consts = {co_consts},") self.write(f".co_names = {co_names},") - self.write(f".co_firstinstr = (_Py_CODEUNIT *) {removesuffix(co_code, '.ob_base.ob_base')}.ob_sval,") self.write(f".co_exceptiontable = {co_exceptiontable},") self.field(code, "co_flags") self.write(".co_warmup = QUICKENING_INITIAL_WARMUP_VALUE,") @@ -265,7 +264,11 @@ class Printer: self.field(code, "co_kwonlyargcount") self.field(code, "co_stacksize") self.field(code, "co_firstlineno") - self.write(f".co_code = {co_code},") + self.write(f".co_nlocalsplus = {len(localsplusnames)},") + self.field(code, "co_nlocals") + self.write(f".co_nplaincellvars = {nplaincellvars},") + self.write(f".co_ncellvars = {ncellvars},") + self.write(f".co_nfreevars = {nfreevars},") self.write(f".co_localsplusnames = {co_localsplusnames},") self.write(f".co_localspluskinds = {co_localspluskinds},") self.write(f".co_filename = {co_filename},") @@ -274,17 +277,11 @@ class Printer: self.write(f".co_linetable = {co_linetable},") self.write(f".co_endlinetable = {co_endlinetable},") self.write(f".co_columntable = {co_columntable},") - self.write(f".co_nlocalsplus = {len(localsplusnames)},") - self.field(code, "co_nlocals") - self.write(f".co_nplaincellvars = {nplaincellvars},") - self.write(f".co_ncellvars = {ncellvars},") - self.write(f".co_nfreevars = {nfreevars},") - self.write(f".co_varnames = {co_varnames},") - self.write(f".co_cellvars = {co_cellvars},") - self.write(f".co_freevars = {co_freevars},") - self.deallocs.append(f"_PyStaticCode_Dealloc(&{name});") - self.interns.append(f"_PyStaticCode_InternStrings(&{name})") - return f"& {name}.ob_base" + self.write(f".co_code_adaptive = {co_code_adaptive},") + name_as_code = f"(PyCodeObject *)&{name}" + self.deallocs.append(f"_PyStaticCode_Dealloc({name_as_code});") + self.interns.append(f"_PyStaticCode_InternStrings({name_as_code})") + return f"& {name}.ob_base.ob_base" def generate_tuple(self, name: str, t: Tuple[object, ...]) -> str: if len(t) == 0: @@ -450,13 +447,13 @@ def generate(args: list[str], output: TextIO) -> None: code = compile(fd.read(), f"", "exec") printer.generate_file(modname, code) with printer.block(f"void\n_Py_Deepfreeze_Fini(void)"): - for p in printer.deallocs: - printer.write(p) + for p in printer.deallocs: + printer.write(p) with printer.block(f"int\n_Py_Deepfreeze_Init(void)"): - for p in printer.interns: - with printer.block(f"if ({p} < 0)"): - printer.write("return -1;") - printer.write("return 0;") + for p in printer.interns: + with printer.block(f"if ({p} < 0)"): + printer.write("return -1;") + printer.write("return 0;") if verbose: print(f"Cache hits: {printer.hits}, misses: {printer.misses}") diff --git a/Tools/scripts/generate_opcode_h.py b/Tools/scripts/generate_opcode_h.py index 75a9c3f..3b79dc6 100644 --- a/Tools/scripts/generate_opcode_h.py +++ b/Tools/scripts/generate_opcode_h.py @@ -28,7 +28,7 @@ footer = """ #endif /* !Py_OPCODE_H */ """ -DEFINE = "#define {:<31} {:>3}\n" +DEFINE = "#define {:<38} {:>3}\n" UINT32_MASK = (1<<32)-1 @@ -75,16 +75,27 @@ def main(opcode_py, outfile='Include/opcode.h'): fobj.write(DEFINE.format(name, next_op)) used[next_op] = True fobj.write(DEFINE.format('DO_TRACING', 255)) - fobj.write("\nextern const uint8_t _PyOpcode_InlineCacheEntries[256];\n") + fobj.write("\nextern const uint8_t _PyOpcode_Caches[256];\n") + fobj.write("\nextern const uint8_t _PyOpcode_Deopt[256];\n") fobj.write("\n#ifdef NEED_OPCODE_TABLES\n") write_int_array_from_ops("_PyOpcode_RelativeJump", opcode['hasjrel'], fobj) write_int_array_from_ops("_PyOpcode_Jump", opcode['hasjrel'] + opcode['hasjabs'], fobj) - fobj.write("\nconst uint8_t _PyOpcode_InlineCacheEntries[256] = {\n") + fobj.write("\nconst uint8_t _PyOpcode_Caches[256] = {\n") for i, entries in enumerate(opcode["_inline_cache_entries"]): if entries: fobj.write(f" [{opname[i]}] = {entries},\n") fobj.write("};\n") + deoptcodes = {} + for basic in opmap: + deoptcodes[basic] = basic + for basic, family in opcode["_specializations"].items(): + for specialized in family: + deoptcodes[specialized] = basic + fobj.write("\nconst uint8_t _PyOpcode_Deopt[256] = {\n") + for opt, deopt in sorted(deoptcodes.items()): + fobj.write(f" [{opt}] = {deopt},\n") + fobj.write("};\n") fobj.write("#endif /* OPCODE_TABLES */\n") fobj.write("\n") -- cgit v0.12 pȷTOhQ6#tE% grqx"!܂'/V'n%@TK'~5,5VYntK]\g7/:tRr_g|lp9@/kM]IOh+ )hPs,7/Yͭe+h 쾮MO#}1H]S,S>'̮s=Z흻{Q멩 Cꘄ3ShYohit~=B&ͫisä9Jzcn܄OawRՕǨb, f&(M?b%8A'WWwӬ3Co0$l֓N$̢o>[pfW3n>J8{(W[N>͋pvu {_G-\e$@aw& qХð{Os/zid4qw]OޚO zW'0eln =<(n20Ã[~(׾ﮎ/(iji6ޚjKCE!M1#^ʾ<] 1}aSӛq:S- a辝~U/^lY +^Y09{(Y]X5w5fM1~ԋ2ܙEV ry^yw#n>$YaIFwӄGqoͧ\/i\$OtVХ'1m pYvI3`v0}SdAVWϥxZ:)cYEib_`vGQB 60bq$ƶHI^0ꅿ_ϭ1^a[ͻǻvyuC͸K?HVd! n# Z2F1mɛ,8fslـDuWW!v> oO4Ǵki}2hbiF!u'=B]_=LDOH}Ѽt+aV}3hez~3 ;RF#LIZRәDtvn) )ߙT2>5/;-Z!R[(1Ak:+bFAܝā,z&& zfi#uw7x.rZՆt͔40ݞ &`mZ+t%!jy8X=7$lh.Ç(NF}/ˢ:b o0pXɹrrgW/pr=MkMd}C|kj{YχsݘٲXKoJq(GVFnӻ*ˌ 6?{懾s7R)X%DjzwwqIk_l=:y;ӛZLǡՕ Xc%f+CWqƤ4Ճ 'δT<{Lvh\tzm".o[/ Y] =7w%ޞ.*$]j!3󺶺G{+йUt1K!k+.6ɿ>6g$5m,sq2΢ȕ{Dai^> AݤoIjjڥD>#h].{bnAhΡڦd{B`9y A3+ȲY]G]t_kV,޹]]y^ꜤGymtוeZD]W#:AH>Ks Ѫ@v V'} $ғMB@ա<2Z]Y?8:1I8wոo{~ ҇R6 H6gk$"DSv2:jaz㽀[IT%i"vu{G}ڽ+V6 =uk]po2H$&}K%nMYiaDZB,1H6ӼL^/{_W[uW1isGcUlkzP={'<8k&wݣã[/ZQavu xvek8ũ8!hɑڝ#^M6QIrL#(d2Pțu#^iM^r|y4i79 ~~6qB{3:Mkg$svyrŧ uھ#s]{0`]ގ<i¡˰nvIG| oxaB,m`t>)xN:|b'Oכ/b&"mL8-ScBoYaQf ;nX""<޾Wַnpkq2nR Ex-&[v~M)qx4oق͠RoX񷬁 #Eg,.tr8ـLg Wоa}` 4+dem5EsEFrqNJZ/ʻȈM2:a틋svu=+ICs ∞da8nX~'bȘP%ϓa%(x"Ͳ`jwacw薎IgŬ:Qtggkz^97mqrsˮGD=ex>MId\^]*$uF"GFIWUVIwlf?xF 4 >C\"֎p&k=FSCk)J'K6IAACe:Dw(ɱODzx[[{e (dÑDeစC1!% f=ok*.uRwo+ ep.Z;/\mq8ބb$#=wgg>+K}&49z9BYtOqs =tb5 $@ǙCDzaW3g3Mz~˳WWvAS.n0 mVKuuEqbi50]a/]Px$o /g@"zGz0gCu`,x3@vmX]9 |4,}/-1~tĠtBnĩ[8lm +܀$]$LZ9!nCj`(@?U ""-v)d{eU-0?}g>rn7wQuR [k8zrЈiiCJhpn{2amq̵PWFvKq?b]ߩ ߻+`LGWNx 3#$-up BZZ];eߝ]<8yxʠ;`l+n\B]va(aS^T ÷/ 2,`::8ɶ La>۔ArRwzd@XuR;Yst_3MM'sËC$HՓD"6V6Di/&M$U;=Ǩ dTMg>F㱡ះA7Z}OB^2&z4v )GgdG{og!pA5 N5_ED tJVBϬa"qՕRϾ(GfiwhI 9@>UO^eŎìoEe U"sX-ãs3tҳnN$C|X>Ł?oiJ '+9;>V-ewogpxNrXo@{;vX߭KP0851R,| ~ rԼ}"x*Eb-28ԌQ$*2&q2 d73"낅`d$t~vq}urM7& 9u?!h1XsNj${h@X<8{Z$7HYX]!,ZED*j{4D}Ӎn8 wO|]ϴn1~3 Ims`g$Mf7aux($IE*9"MV %`_FpFTa>\]!s@2UO L,5бR ͙(E/"-]}*" U`{Eߧh}vFZE?u~yl xޗl F\Ӯ3?QWAQ>Ҷ'U_7M^ʗh b!ۈ-/eUIi~Y_+ #1ك{7kjMIr 2.榏<BehUM;ɳ%HQxޢfZYԂ`fkCd#&]>3wn@՝( L39pzG |ǭiima$ Xx>!@z7^0ҳvw 4۟ЬSs2`6DLyA tc.fGFFI֓$P/X+}V$9)54f i{[6^V#V5G[NR_]fϽ4"T`|ai0<'f/=*gxp,=dPa^N3seœ!b~f08vsBGJJ.]{{2ap+i8Mz>rInB z`^^kͩE2`@2Ғ:4/KebԉQHa5 $=Mq oO M IHىy{?ϴjW$?Y 2|3я |+ǽr^co1mB+1Qb̐J~Kg@3Na֛[״2۲~On>.O//N[z(\^]a])6Ѧ$zbھ7>¦u}u:Y,O64sdڧٗGB˷u r9S̞;Vߏ%i_QI2k9J>sbA[4]WWGsPD[FP8 3c #'Y0ehwF9(=dv ڒNA}=7B S2 e0#gΨ!ap{FisՁv#)*˧STT?mG_جrQeMb*'}/=5o&$(1@c@5T.2Z{5p $75{_:]] 9#CReu~<21&UH'X(} +9lK-Yp{\QH4s1Na"w'W;V+O/Z j GrH58hQ،(^& 0_bv_k{dAȾQla@W1K- لw}܏BX4l%I V>F8kX6X>LcN8Trf0 P U:H rα jzͺrYJW1HsZG+nnh\d,I2᭰QH7Q-,a eM57n3eR;Ln^SJ Rg -QoHRb p{O6pnréhN6fSvB2`Oޝ]]Z'R _8oduE(솭9 '-!3oc4l=/`Aõa)ΫVͺ*,RHv}m΢Aq9Sr V>'z ZZl9IeE?3O0x c\ {Y.2մn!B8LrzAJojLyɆ¥W]xcV>iM1apXhGBN!I)՚V⋌xs1V>%H>^3tf ,)== d:F$d+^m2._@㦱{# "nZk8lw@[-ɥ0iƎ5"ù,_SebB{!!Vf>x/,yabu>_ܫʗD}$?'8ъǐ7`-t ew9ȂUgoǟxfմp[{ a0-e[F=N}LMw[0X5 iҹy/()Z o%)PJHchh.JhJ6k%(NCdxe(1AE.%\~z7|v놱:oBSHi BٝGPFz#2J]APzscz$RnY*1ʝ>ՕMU3zrV{nl6$EQF"ͷXF2c@|"r$mV˓`1$E1zē?;, .Ƕd "ͫS8e Q8SxclOn.IlL": a0Ji?lo,/b3u_U*]1N=:n%}9`~2w1<$n чH(OC,uT A14f#Jgugn[w6:" ?t޾;l^]~X]Q+!sr]Mc-Sd #6VK.bŊlgRG$R7^v<6Kjpd/cxYu`g'KWIU ;G\nͼO!udq3 ǟ?$g.zqw$AV$eʛ8| ]mU L $ל/o5'.B`\l?9BKOQg*'L$m~T/฀ m)\͐ W#KS+[[QPUs8ʻ 1+6gakrgzI̫@rz$/8-keӁ:nX.;ثԩT(o<}*.the~qn555`4+)kBqϿu =r@L SxI5ƙ|p228"p%J' [])Ř$hZ]Lk)^>{m~dFEWSQHRNأVr< e}rVP O)B,toc٥>JC3WG:{K8=qw/ةQ0ȕsh2N̑F&ۤ)!p+3 y KA., <}?zIXܶװDكx,Wtb I [Mߝ2L%P"K\?ҝk> #גEy AAxV ̨e9*" dE4Hg| DR>,&֧璖Wǖ@LycSOOMAoN1IڟfgF oQ]ߺ_ƣP6[/\16cMq6T5ˤ-&7m֭Ằ2^ 5% ҹ,}V-R0񬊔.QD=?jê< ^Ш>V$CIg]yg0snvy kO}/ηLkìS`!=r UchpQ!R-ijVtd$_DaI 3zQT䕏B_ɠrWBm:/=mZYb>- ꟝[SO=WsY:U{z úGB7B/ ثγou~keK!~*W XKPu;eSs3 g s@&8;=($K2.vŷ6«> rT 9svM2e)]cOZ#(iLd&oSɮt<(2X\u?GC~?MaR!ۇ C0):,jJ%GU@^ϸ1'%ܣB'+FE6^JcF@=jnU^2&QAQUvAo{Y7}IE% 0r0y^oMGP4-v~ ΎS:(Fa.8!.ÈW&9gz $n&g-i傠_i p;/}c7N4Ӵh<=s /t3io "V/SLӲ#dBj /8THv(KR!EP XvmjeZ&_WW~s=lr%5!2̱:UL%/U' ?ӊÅlKiX(p$R[ -G"1סHGcach{NrKZx 13 ʌdӠ"wR>"}/RqViwJ>}G(Rui޾:ځp7c#!f_BO8z6})H!\̓z!u[%KeYˊU 1=>m_}=!U+*dpzX/-zjݾk[揭9U_1c:Ni+&o'{FizX=S dyeI[w$v`k[2KEsbSc} rr6- דdFj&ssd0|$PJ5+}-肮sHȫk*P;fnF*Tyl-X-x5TMs<3./;ǝbF^W*"{AٳXCQ@PjDk= 1J*l? Pm ھOV=\Δj^>y'1`CɖЦP()2GKhP>K)Ԟ " l$|0V,9̛:Ou@$j-RX2?q}!BeAV]u}u:*Ŷ Ed{I LX7}UHrxBav Y@@R;Gf_#)O.m1xJTwi߃ ìv\!@%`_ZՠuAKTUUQ/y¯O}9;7fLB(P rS/3\E9,p Q80=OnP I|پk jȫȹdȟURZ /4\I@[0C^oT?Hi= b*gUm iD˜ =ߒ|K{{cxi>SSRD w<;/ 1TŁR'p~\% u*Quhpjn+R"ǤpErZ;'WҖX+wCJx҉I):w&gQO+ƨ4[^DŽ5voO-nVr67pĈ=e!2\+o⮷`jtcH;?a'M6ZT9о=2jUѸ ф ֞%ړD_cCkN{-.e\p$ɆGdZS_`%ZzT`>]0 j[(Lskqq6cy΃czR~e2Zgyr+qG-"JcAe?hfr`vجMw}I<3s2{_2(^MTR6vM99w< wBZz*EbgJE8r_3(+JZG횯JAa xnK޷ T #dY9x%<кMJP b$9nj",LՠZ%`!S&h()qnᅡmL P.:XSݢUAnx9:nSX S7, `{Q0^vUbH{ VLCTk~8.R&ѵeOs36wGI+,:#Ct,cblMmڹ5^E Olf!*f PKЗuјg|ⰷfp,`V..}Srolmnc\Á:zTޯvL!Z?(ৃ4R.(;'q4m zn^GXϑDr^U58Àm|okKО I &@=WsX4b8zhbzWfڇǶȶӽQV1996n`iq q+l}<[ L䤺cGA%9&1m֧,+^O٨aSJ"V=$,G%չ/cdJ@4;T[o_[cfg.2^"VXj0{5إ4u7Z޵B]**i xgۙ E_TOPP=ݱ蛡NjM$U^_2K3 x#9w#hé{Y59g57֟4dxE,DٵnwQK1ZL|+yE{ϕwY3: q[ƍz\̲6Z"2نs%2ũo{i6CMn>{Xo'27O5OΚTQ03pᕐKDdh#(ZL5?}‡g?hSixE1GȩaςKK@1F?vEj8ղctqhAxZ;/T| Fo,{4KZ-@Ґ^! 酰8jˣNoM+Y`Y{ԋ4rTP:ԛ`k 0A"{"J%0gqAy2a! M(4மʏE8g28% (GYZ#J+a͂~‡Qqn?LtJ{.3U[[&>dtSq8 B"$6&)aQ0R8  ̣Pȗ'6-J @4/t[0"s{\/\x+#QAj2gDkjFobfZ_"6k> ׷ T([M- /IqU-uEqw ;\( $2*wk(Aslmw|E_7zok׎'hf) ={4)#n@;κaIGL{Gpo쉎gygm<޳?.NZܗt Ks'-&΅c髻;Ή>s!7|g{N.]?Kްtp3[-I>wCb[D- wY>r;t|&m=>>I#t:<QօAk\-%:%9s͑D6I+̛%)Q%t #(CZw>t^ 8{.t_K]p/J8s7$Y5Ξ)GcX Pq,~z]#֝cZ#(+shcxx1_~>E{ri-vgקw'wOm hk` yr/DC3%~4S('WKV`Rpgjc+9K@TVen]ڛ"5]Xm>Ocm)mT`i}@dQjeX&C ?1}sizh%9_1Ѥ^tRZ'Đġ2W- W}!lïZdg{֬V`͋I7=OkMP5X35J-QidXi<8 , /CWȍ<,܀JπXZe3.(H%M!yY".͡>G0+*"t+IL&@~GG^jHL[`sgya#8[ YSLЫW\4OС~,C-9i(W9)*9Cy"ݨKXhQ". h\ޤ\zxő.:). v ;UZEPy-eŗYf.m >_\")7HZ=h<Ն?GT${O'/2|N]pI|4geY?I%I^?kSTSR >/5Rfgn.{\iqeH-> WW0H3g\H) p8sI O<ˮv{ՕEmGےc׏@0>7QoN^F?W+CPU` #2"},(rUEs̥LOceQ{7Jg(r8#m}̑O &k_rC8暦3.zOfx 2w<$;s uy5qdz7%Y:'@:2NsptkpdpmGPxJ@q}_@6E\pKyĥl01y#[lgwVC9 Z崲cLqՄ \ЖJ8juͤ·Z_qQLcy]Xc6-@ehzӡ](\-qdhd͕jh!j$Ɖ}[S;?CB"~0gCg_%sWK ;8f.!C+R#^>mv.].U<4a09cwS!JMPq;ΑۤЖSzRs0g[H]ƘZL=+ԘoDK+(V3}1tKn2).1β^<4!%#;i EGPsk)ޑ-`ma^~^h_z0~<**:l9 -y+[]-T2 f6vn|ebB1?dkinG:\3>b}>Y'Ty77eeiZNjKNVI5 b ϩT*Z0Vr9cP(h5diO34]y[=h9Lb#HkC_)E*w -L J: bu_\S3: Z훻ŵXwmiN>vyz"KSѿl~_Pp>('n+}&cŸ 4J-%X ԭ~>ӎ8N^\FV럢v pЍهX Ukkx/wmc#nI=avr9yGi䱝jh6LGy |Xy03_S=CLKsHsī%ş`boh4 A04k[ME7S )+Z)Ŷ_:ij j*sO},oϓġGh3m=j@!Y:wUx);o:9faYn?ڿ5'"RS[TD6J}"3hÌl3wasDϒ~:W>k%vd{Z<+1̓QY])"W`q!]LCLtjQ(% Ӟg(x+,O:>'AT*]{pCbRMl:iA:zD 8;&s QH߂bnqbKdCTJ0OE]h6K1iqeī*1S;z6`Еt$@T,'AWV ڗ!˿$ 5__6$Al uY澟ْQ\N`0a~궋tl:_bJ~Wr_oCQ߄0jLhrKAhs*/M eyZAGҚl/ RdqE;SȄt&9h4͜470TN r"#u:AKBdS{U>ar×E[ftӾ^p!|S0~_JUJ(!b'F u-jp\+>b/f*'I~yhG&RU2Ýw5u2KzZ0MXJ5Zw2 ǜǭٙpFצW7Vs{iH#" By Srm࣫-gUer̅n{gw5OpXslzK'~^9pByu샒8\%;fQCeaeQuBNR9+{#x頾}ttrd}eC=WTz P[H/GD e`՗IQI hUmdz֕L 7(J} lfusZ^KAF]78R? Luߟ \% P j6}*R$33U9q,~݋_%K*D]ٖsMfw$[ ~_?WI #]]+Û[IX/BJTshra/e.z8+evKnp:ZXn W@d/+xK;b9T/ؓЧ_Oӫlg.s9,!7>dKIږZe1: ~ GYR9E$o͍˷.T2E wmGj;Wv禬~߮/9lgЪ`W8K# u\zs$+qXo U :Xi߽]BI9Fi^I6 h I<>r4⊄".`Ls 4UUXث1zG\sZ//pn˵PQok(n P25ĞSَ(͙rrqآ2LbNGϭ2Os*wM; k0(]X+j+J4{$)]:4&gϚQFW\Uf3uS7ҬmQ1e cv6V,m'q y}Ü~Q 7,fV0D2/>ܝ3rwo{MˊW#esǴ!`"ff!hNa5=;)|OB:ϟT;:/;|]ZŅ`\[w緦J_1e1uQ݅P%x$UG>6LUًrTwR&@ WBwAxċ.p;ET"|r5o q`7_QoYVWpthTS4Lټh1w盝1<͛*%6HlIVJ(5Y㬗Q*YUbau lYtZ^$Fa"5ꮖjJՊST{]l" 䇣= ,+$cO\)EQk <'JZ>\Y(S\\1#}q΢,\\%{[";,7Z2$Ȥ' ]3cnw:=ڬe}]%L=JP 䎤{xgW7'b Eʸ3fHXߦCGhl\L:5ۍ[{)[O_Ep6ΎJNGI*fc\U(0;!kͻU̙Od`22?$CvLQSȮKԡ|= ŕX=_WYQ Wv)e u)LTma}-ɘZa7t i{ZJP *UM)U T'Op/U\hcIrd > wx 'h/C)Sa >LֿHQ o^R˽gvy%]RqBLKM KV.P䪵n˲`xmEDՊfkݑSX R f[K8lnAA"w˼pzy]$mlnOHt5=!̇gXh8/(4.-fʩ 7-'{qaǹ,MsyгMkS 1mSɒH{z(ʘi7^Ml_AA"9_~4_)&I وr#哾9LAc7_bǤqpd/׏, Zax`mj&scFNh; (1z)ZL>(aQ&PNNbQBrxȴH!O^B:b|ʼ/DG9&(T&qb;:k6$/GpQh?h.Zp@ѥ?S<O=aQ>/iy֖RaD?Y!XRr_Wvp9G<‘z  oў`dݤǝ3`L[F`>?'7F*4s ɡ}P&rsNw7N\B*'$DGj^ ̪FxYvX񋒣JH%U'̊cXOi\j, Qߖ{54S74k&ZZ Eq>FFz/ihQ+#1tZMg{Eyk^.ڦe-0<3$Qu1H3A8}!f-R$_oLrNDD,dKF!aQ Tnggj$HI(pWWψ5Z NsڃѯB pE5q o(BKīhZ b[N9EbR+Gy/Y_Q`~Zk0WE| KLIg85 il6vn}lrC Zv夂U?GZ"CfwGh 6*Kr1ee)wvwH1&= r4%_$DE\zѓYvŤc'pƖz]qk%G 6&'N_ȿD)Y f#hKfQH)fn{h0&Q>Umuƅ-er[-feq xy:72E iZ.CMl N@̱5D׸lU,Q8̢:XзqY0Yc!MvCqdauyD A֍НjE/qV\iI>>1GRCqv#%X2Xb%;$)ҸieV)\h&s _AYT[z IM2))W!19p=&<geuJ㎃ۻGp]n8Qn{^OX٬Tҟ-[]f,.Ndٱ=dhT)ni~lT-TնAy:wZjFPG Q|m/*,B`͸^iSP) W}YQ2A hO3ބΨjj]۹٠ty#WCIIwf\M*g5@/Z?5o%s{3Qbg,`x ݩ,'N5} v{wl,ZҒC6-e\!Kv%~Q`Ǜ㓖. #5df')@#'|)8ē9P7'6ZQaŋbqبQGy^$"m/H= $ݔ6ao6CӼDUӌcNW|]jyy^ޮV|йzG$lӌ~A}VvO6o8't3xiBG+G7T;_^?q/9MY[pG&,JmH#[`9,4[A޳8yf,i vucY)t0WW&d. W9O2ImUJ낺/%]2My0DKY_jyf5=MK^o'$$g΢4y[S8C7KXΘ^ {#_3s }$}5y=Gup|k(bRGqErjfyaz}c 'BOK*8˗/OV "XꎗxP[EBW9rp=!ucׇ׶ ]&6Qf=eM x]Y1]`-oCJ =݁e}WsC:%EMآ=K 50F" }hЅlYXF9= d^3:hv9zL\ %}\qFBtE݈N&u[mnNթKPYZ66zd3cGAvw$X+?}-W ,%f7YA`|Qvxt׭FZĻg,犔CuQ44,"Wߴfo蔽>7?dY{t"ʲ]\OOAv7ճ&53-w|rZ8 &E*i]Vjb@;l׎1t$Wei[}$jzW5uyjXD;{&dyJW*U1 -眠AHR(gMp(m!3T YEmۊ &Ա,;D1mp9G`J]z~C4k2ƇvR6C^͘es_6gooݚqwab5b8UU?X䲐\Oy&:(Mp:+!;9ha H5Uq-PLOBuJ|ri "vURd.GVG\N9\u.𻩃kcul}B<EqùJb/JF-g}>ҫa3+! =Az/L[\hId2͂8s-K @* vw 挩9K$'b K[~~͜ie0F=IZ~9'fg&/<?P_sNTrVff`0ya+' 0AzWp6Zh",|!qr>a8xVI_Oo~2-'pd<Ȍϸ+5iS2W!܀B^1k' הoF¶_M8SUw]CM˭"["H;bha+c ۝dn!zg a8v.հ[iqF5#5Xr߽})a0K!%$F[a<nY`䖠YajFJDc [{kү@K|ܛմD\-KQN_GKHB%@J&}jGU%QvJ,P(T:u>{3cN> c3 %<etS#GIsג2 ?ѷ u uXqS(*t\iB"%&h]/:S7{z##Dq59",q:o TW((z f~›3F_d9y#9<&Hd F6FTIJߵ˛1WG; py` xlJ܈0xa $bYaDQNjV0g{A}sio"~LF+WɉpF%!:'v*@.\f1XbKl#q w XrAlڇX-{Ƒ0 ,g"Ku{I]%tmFV#d?@ً,s%fy1Nyи}[f-6y;`u)s&FOPk<*"fE br9a]qE.Hb9Ȱ||z?-M[|v%P!TsU&Q&ԫFbąl] .<% ,! BX2?;B츋͖37C{(xĜ9/!h@>V{؞\&{b5HlK=u٣d[`Th bdUEXWRA1]FSemɅj|Ky6p0@0Auei3eߠ NG۰Z2$"RQ}n0 IevD/Pjlrьd`j҈a0bի &=2 rma"wI9x.a"_-#@A]`&*HEf>Rʯ2`ֵ6U /- _nELp\' zKe%@i:oh.ת Xj͍.n/K7/gxD64 E/p&(Ɛ{T2hZ^_9_Psi֮?\@M?E ^U8%K!J(Nj7j`aШNQvu)9Uogmwȅ*wVܯ='( W9Dta0]j/]|Ī&#PAbpU< <+.dh EpNvא2sU5M_ERB$T5s= 9U+c`͋R ek&nOl;7+ÁJƲ{r=/xi[y:ԎNq]*-aCcE1ݦoYhkvl9&FID G Aq?ru]tO>\u.>8Г灘[dMh?O >1nsܕS^vAۯRo35#ye4YXɐ+jh'fEk^~P"%H"}oW~^scҚÌ!JKUSP%0- e[mRBCfotZ,[.uJDޓg݉xu=p>.89LGKIzzո ;j1J pe݋w"c%**Wko^_0[]JA9NV}lrY3pEuYayʿ""8I sp#GDȬtDب6r= D!VmUV_c~XʨAS6(YAQ赬|6so7c\H,f^`FL֢Enn`N&,pDyA5HP 4f@%%p Mn*dzsҟD&w;^86n[j3O7u-J6XH' 2pNF'Lؖ@ n2ЊˢTbXk^:6=Y*;} lJR*Q1 p $.qD(HL]%f/$-rAYH^R7Q߹Ռ^e?a,ICR.dFRیSxkNcg 5( /+y]왬~F&{*!YǚqTNZ3(#ȭf])I!1Ŗ\qͳ;kDK-* @%[JkH),IKeМ h9:fJgiح˗Umr_˅D|R?o@vB&a~)UN`.1Xb,^-"^+UcIۯ$WEE) $n5s)rAW?v|=<=\9` 8Up JLO<O=IU09{GBuX| a[Uj,E_̎^`gbQf3%޸/%&c~=a|G{D蹫`pn:o\PWf\RxlV6)#쀡fMtא=-/ԊL,|z:"IikͿt|4|x(zfFMaGbMDEjˀ'E[$MT*=w rP8J˲%NewHT&&3db %6[E* TDC7=rd &\k/z Al_hb Y(xO'x oݓfJWW03Ȯ>uO>F#LY fJWrIZzBSIJ2 QV̱gv9p,>R`<{8Z0UQ Jf( K1JCz"hƨ!0+DZUJޣ/ZiĮ !%߭!s0ě#T›MG ~1q~ߓy%'uL+:O{퓫LmUB܈ GpOA[1Pm6qb F{<#כt<AYLXKT %`aP8>k Џxw^#t/PQ% V1>wtQu`}%e|'{JxN&BH-Ԭ-lQ pӼX&#%oL?@vf+ cv\*N$oICul^gJY~6@$ZItR1*SsRp C[#UCT)%rA)Cxޛ ]8*OXT>[/Y&[_\ͧZ9BD iFdz HnmBG0%?,|m7k9s_yƚ>ꜵ?wJ%>:7- Xir ܄S :9,l1%^ۚ/;k_|㡺l/{s@;wW/t|U_I 8]r#[# L&'hЎB#QЙM2u`RlKC<_snD"#ZVûFt؆*Ip#bJNja5tR>\1;n8Dg@m9W5Ck3$E|Pt{@!-@ $C>aGFmTP>L꘏B ߣBT#|uWwVKOL꺰Lsr}>?o^2/l-HrMM2N~Ȉ4DB:> Vzy]zM%\7KDN͵: iE묮oXgBH"wQݡ( c dzM0>Z0N>R| 6L9ZO3Z"[YOY|Kyud mRvYO7`W&6 љ\E6(( H5_cpEpg8O١ZScf!c W *$ Γec7v5'J̫p*W=B铧ւm[ΎVuB""ܓ)G2Z:"&P3#5Ob{ʹǏl )deϑS1X( s8gGP-)pp?ɢ4|+?z1>GJޙuKG1G~2ϣ`xٿ瑘΁+xa8SHِQfhxp2¶iHLon8D EYx"XzϸJsVo?8}>ԩ0mEpxn`JZ#+4pJl*8[3K.̅sa"<3}rC3\Hl 4᛻i_YTg}>l8(s $(;9Q[j|g f2 ی9֣xN|lr BZ;[ڨ<3Nn%"HklFR 캙SJJd\4aa}dUqR4&.LTo)^uAT#;[}qR]Z$Q8+Шv.3%m;%D|es KHY9Z4w{~S] D[ 2X,F1%bt iQ'cc.jR2ޢWy R"x(39s!$&l"Eߌhp~A`dFps΢qGgq*h#ƶ7qNݏE1X iPh9+XqEģ~q.{WaP9mt\AUW?KWGݓGisF(z^A#~{=#MP&[pqa~ϳ!6;ݳfP*0 BgY#G0 W/ˆi8a6LCH\K*WVye;CQդJEi C*)ph#<{%ak]^s>pF~*g?yZ aFپ5}]-5||3-OYwCgOV>|5Akٍ Z3LajZ^LeVvW\Igqr+rWud9ۇa!:s~wܹqOwA%f: m{"4- .*72w.n{d࿫ՃzwiNVS`:x:+3rZ٥Vh99D$̬:/[`A)2:X`=OS,߄#IG\6$e5FAYk`nB͸1~Ob3PaI)a2[?,7l}> d˜D^hٽt _्h.@>;X 4 9SXuH`yu+ɑR2 No)廖e,ےr`g-tAX`U/Btv $!haW E U%mn#isqZʔxz!cz Z&/K5LC܀m/1:}WOČzP0 -{Q.RuYp2Rz6y'nՐTj$ep}LaE1~̗,澁]3xXJ+ϿwQUF77D'-}mIkEBdu # gʲiJF[\E#A > T@7gTrčfÛ9ju(+6JjI 5}:-Gpdq̄GB " Zg5jӼ9t1)+6%,OڞMeM)+Ou$ ,fղOn8~DՋOYIt,ЫPà պ˙Ya~ wX-րXG`QT܎-oˤ5v鿻nEs-mS}KHrkX-I Ǔ,4w<sSX*q淪fsKOgy uXi%x}>-1=8t|+H->fT&=fγ8I {`;xaO@2j1OVs?ZR\c>s&}~hJS#²lpHQg|s O^zu;(ΕZ!@|ȯnܵYLWa'* +%y9Cwmf^Yr6$>1r(@&!x}n iPYոRVCyn @z*gMY Ԣtd>!:+4k*MDYh]3$,TgדV#6.Jۻf*$-́-!s 668xU%p`9# 4fifnstn8L˘^F A8C))%reP+7PaY-i^6Nu'\}{3q&zOS4 0K''+(m:;|轩wI); BȀa\]s(vPIR u3w7h w8LbA=ԇwz%)F~/YKīАC~E 5Oփh AG7[[[isáєԄnЭjGa*U9< P> ~%G;ʴWvQq, J"R_$`m(ǡb߾܀Gvl7#JkPE2N۪9?mogVYDT>ַjgtԑbPr B@5t e3̴i p_wON:Wv{ӓíoa-ʹV7 1m&\ l"mZ4EQs"¨A-%~Ī0/,JG4_xQ[ >pRx7Ѥ@@^ !݆3 IK:^zJM#f~zL.bX L?0/%㬲}? $t#2n MYI<^c!@WC*/e!|tQPj'B Tqː#uzD\@/Iz.c7(k2\j,ZWs ӽ )YY~ݟ7b -~6g˱Ean孨eN6I_\@iԇ Eqkl>x!f.(JLF"pJ=׃z< /PIGv~Xì!1"5tk\ oJp6Ɯ eF苷IifW{icS{ܽ|^\:"fb$f3#ٌ~ .TO@xϨҏ.s=#nC=p&EE"UY<,Ԉ 8[T)59*8p $JJ.#iX?S] ph^XujOP>7wo&M*x2L&!8CR9PJXfDgYfN\ƻn|vKh2y;sws>W3{s{]O?D+yu]E=YPB摎Xc!OݝZ:Ky c~s\|Ί̥J|=ݚd/;[D!Ht!0M%g̝X?îS̼ưӶ4!UA@`wozW #M*?GAš▢vGꙥy&7~AKdR&\`P« .謁"?(1HV7$>PpJ{;RXl~\- Fhx-+,yxJnۍRЖ)±Ӣ%q2逈H~lI 1Yu9 C:%تV(;H )nnVbö{VCC}>HnCEգs!@6L=Q )p ~R+}4|eʘf4$t-iRz,yBw}^ h#8{J AaJ~djdHw&{q ^"):+c2s{ך1sL?g Ko#L/0yKJfk@Ll1=qo͛amwvPjaltQVv ".y?@ժ}av\YI'-WrtiE"ep2/oo[ Js=|Ӭ/kyGeqp倄P@̀eF@XsC,z1Ps`:}"OӅTNШ 8uhv@,SK|" _bf;GO://LBKxaFoS2=}>&֖f}ve$ 3n;ڬi렖rq>oΣPVp3ya}P=C~<{=ZGA|3odKRw?}K8~Ԓ;]rS,YJK67H@DL/Rد}y۩_.ÚV"UM4 7 ^}uߺƫuα8;=bDr2L:rZ^slT1fB Hf5!9 >*E f(V I!JQL>%".aI#R]L9Ro#q66HBuGV2D7R čKv\5_>"N&gwGQ 횋Id_.ϲ##sm ^KdQDyouY=GƅD +(b d/徫5%|<;fWU1(!-(-\-e PqW^6lD;cm7ٙXց:6_Ccv -G;!fLoKh 7qU J&ղCkX1[- PzI:)?ᖈs}(y7cԗ.hg?ؽHh7/feyo67K43gg.6cst"X)VFg7TL?YkhuKyЇ (&Շ]ּ 5KQ){ x)1NFN="?"k-i4gsVq.SV4ΰ|z_tߜ- ,(I.!4 ȿٚz*2[, !+AeQhޘ*|*9СF#JSzx,nQreI+-|[CұV`qԡBFl@q[fr-f@ VJّ }5]^P.{WRNcv+fRxzcR<;n<_w`ߵP7[~oid,MahckܒRac1G*`kT]Y]CW{(~aq[פEt֞НZT7ywj AcyRx@k!'O1Ntu$D8KO[lܵF2kќZ֘Bӆ6B.XI+6fK#fC:b"Ł3^: ׹L>|&IU*!yz4QU&.%WoBnmqz,~ Ҁ &XM0EbN"F#_T% ? Şj+Qwn@RSxWQGS*[ʚ p k G_u6# $U;C.!'o(EDRMk5G#U\nFZMT,f Ǫ3(.&̫.7 _3(jVԌf R-y}P$9'16 B^pƴ4ՙ GÖb0nx5#6{Mr;-%2!Ŗu'KX[kc.0[Kt\Dr;MR,VԴ`(c3^˟@x(Ã|UeEﶳ{P'2ւ͍&/Y1$ %oim4̫cra>Rb2U>*xp8M_X+NtS8cOUU"E W\P'|Xa*Sfl1.>9=KCqg*Wn@@©VN˓dhx'\MNRNgǗZX| bsNmt⻇f(d>x?S{nIHdppEë́VOS n+c8E*Ry ŖׯB!sQ.u.HZ83{C>(KT7ieV[?70yuEw_\!F>UdZf۸SWl,S^"_"9*dJmT4m tMBAWs\'L{Tۖ- ?n"J!;brU %h-yb,: Zެ4ܖ^is8kk8|fh gy^ (i Ն6굱r=5*gI 3wFCS13O&e={'L<ImH5he nnDf̈́jie"mh?PJ:7+~ m/\Tۥ2BZʃ S-5N6ivN}$y~5^k<:Y MUs3h Н~&0B. nX{ÌfA8ئIEڜFg l.9G\ˇ0!ŵ~vu\랴gEV߶ިA  _O9ďel1HdWSJ 5kA w18/dJ83M9wUif{HHhK凕T?pk`)t@C?oK`8~do!!Q$~+mIwS&Q#΁fpb%2x(G\Z\c]1l $=GG!7YAm~'ʾLQRFG1#"Qjh3Q}q_/RxȪ^RGz6`m,v:D{՘Ol-ée8T$<d1f-]&;Nnh$Rҋ/p/i~KjRtH#$:譒1}](sJ "96emm>O'uƅ~ h9\hJd:2>,~Ӫw40)Q`?2rM"bLY8QܖJѸ6E <֙~:OX֍#fXH`n1ñn%nqk 9>Okݓ[鰊C'Q?88'GA}~箇_k|?PK nc/df]!; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/ChangeLog.2002UTN?ԽiwX-%M"5+J JMW3HBXq@ʶ$W꽾i';Z++&[wQϼO0 Ƀ1wqr<4ss7>ߎ۰ ]wd(4,L7dh`<{&OL~\?}Ɍn4j8Is- qA6_HŸGolcneۺi~|H3jϻ< ;yECaQm$yltEw.aϐ/FaZ7t0q v\ 7_]Ѐva{K} rXOM83A8O>ծ~Bp?jsq>n2RaA mmgMhjaO7Ѱn,ҬkN3=^\DY[rAO5h)6ȣ\G(DG0 jj˄p!&O8XQLfd04oxlFgswd᥼8<:}0OmoֈzO31Wy)Gs}&OiCscKť\.߇Ⓓ x[(e dh\ )ʨT?MF!-hbp6zkmyZ>M/7gu{+qeۏOݤ=8h?ä{+93*Ǎ\<ͫb6PIKg<LI܋ $!ŇAG'fsutca.mnH8 "$y;S;u5OwYѵIBrOd"T&A/ը$#ZQF~ eMBӏ3ĩ01++͕&GS<ɯula:s{D#&QGkI:W|')-_p/[:_`q%<ìq=n1A k&KcVVj`8;uoV=/:k0lӺžqiwPsJS.zUAiB}QlvO!Ӄ$l;w Uj>1)r6VEÐOSYppΥv'y@&O["gAj#}{:iQU;RG9w-f,QJ[j5;,h A\A/ 8zupbfiznD<J0X>ӨaɔơUdN0/a@:GfI#Z^HZɐjR+HTYc~ Z 2c1LVK%Qd!Ed,YE,Og\- XhPVԕYh,/[QYSuw:T58iKE2SЦne¸'xvx6Y4BOY/۸Xޓ&4ƴWu`U>k=:~j>Ak~?=8?=ڿj:% tZYvJiE G4i"Iޅ"R[(5pC_go\$sًYjζ]D]0$7l|lJEx=z=  'c=,7\a7dGӨuyn|U4n;xk;6L8 vuYO7 h8k&Eynͤ1F\K _P=`.Adwo`W !3A͠9ьy }KfJk==R7ɺ!8*{s}ueWV_"vc{P~U}\¢ 9OHSw`Ce,Z4N;<`24bX䍾/|vh {:F I Q8,M<؎g]ѷIs'rѾ:ivuv~tޟ~<+⾰B*m+6HAW=5Hm;-vBJ-dG4`W|&M46 (7y)aa867 ˏceK 5,̒+gydjZg-1$Îb| +>Io1$D!M;nD,Xa2 tBeLڄ ݑaԨy?OdۤBR6joSO_T 猪{N,46oLr/ $iXwa' ߴDp(㇓UOe: ph]l L[gW)F9Sw jc ;ŊJѬ~}X`>YvQ-;u4 =+l[yf o/w'4AG*6$+қ?ڎIVb iiƞ#zE$ jhH+<,!> !-5iB3pN۞d%avQɑ g(oӐz oH3ύ,5 ^26LkUhQAiM~s{KlY=nV0`+¾7{ѫ"ߢ>}ո[1U⬥msC㭷M+b2)fnVckϸ+ՕuOtZk]0Iу/c7Y BJs?diDzU{DAU>HfFE8*)R`ןI 4c!: zmK۫[͕K.QЀsOM^J8u M!|"xW!Ot(1F`bLE#x[7qfX s@E:Rwm'[wנ.hBf>˵(_{x' =09P94dplY.hJ4 !+%dB6cM+jB;k#YL9b8ol53 0K;% r,*R6&`×Nʇy~:FA=UOi}"³{a@_Iá3iHR>֊X55T;aގ{>*H ލ6*$(\ΓAsg$EG's5 e|5-O&յH{/xx CIҘJ-/ c? ?g(؀_?M.|oL)Koe'ڎk:c{=uE3_i=PyL6IdPm0DNZV:Mu?w9#z0ާ*Ŧj,ܹ?e!x.oYM%Fq&aQcY% 6nQ¿oXEgC&0ykN/1p,J{X+R4O^b?&2lJ?/+DZ TgCHk`H=HWm\_Y[d%G4DvhX5 V<,Z%/ƤHӷęWu)_} LjbɀB!T I0 K-ۋ3rMH-~+C\ qbVo L$ ԸO q`@ .[Zqcu!4 @u$|毶Hý{ ݦaďy"G7IArm}ڲI d8'Ul)|.#bNyX P1F Rjlu40~SAЫɈ^q㨽_oٯFgxm$P٧~kJ/ߐ􉐁drExc̵aI n5eg3R;&ҫlӮҟX!VEXdT)@i8>,lSڣQLÓUj}(uGc]VZLn`JÓ"8k9n2/1;`I3cv΄*kg`_zjk6#:&wVVEi"/ })?ae]lX7C6f![+dn^:=4ww'h7*0{Hv1F6";yh ά,վw",ݓ:QcU[G &4 :[A&A(4u2m{"y"LKiHF̾}<$NЌ-],ɲK$hF#颩W_]^N F*Z'd,i#:F.{NuqCKclbQdТ" >|aS.Y0).]O'P﹬n럃Aj_A8OcZ9>Ie`a;MY?6vy?7Zxm0Lx,2S!TGD{7M"qPTj+u(iǜ$9}@d(P[,V VW8<*{F?Y 5l=# :ݨOBx;Նx`MG7AF:y𔃝z ,NEΐ!/dfQi7՛ {9[zbTW($qc"ƫg\ hZzjiMP}P1d O&1{R%79Zd5?vδ=QI%K˟؃QnYos N)C#:tjA/}/v/>8>vW/A0/"~NNd 2[Xua!:\M_*%@Wa";* pW' ikms{c{_zm?8`b= chܟ DtLhplWdcq"z|T_Nna/ɻn:)4tM1՚ѝ/X@ QngD?MJanVaɝZfc5sey w_&0rK1z'iOݶ?_Wt?T.!S"Kh\\09&4{= _yӑdS[]޺cLpCKzn@' 08aM+-a$-z=1Y@)}**ډ*n(R4?d"_JQI0ʥB:(N8u̞' Q.]<6aUwF^ Zkd}[(3P,}?ob1D4qkA"󙮐8u)=͍R3XmݱYd-y5+)J}ra+eSt&ED(砯ɀƕBcL,͍4tjd1Kü mҗ~fA1j^4jN.qq>P^9 pּ\'oV8a4CS@`2Σc<|{10ܜڻDqyJcn>=pu㫃W;,&ٴ2L+ymOvWZ~+[,t'u7~MS}8 ki(6v`bsJ̻JZӯYRtf\s,>4R1?ix뵔9K;ޭ뺏2T:^$i ~tp|/o4-gYBKve,Mg̀?OLI=gÖyqї̡v|Ip-`/.=:S^>aߋԃT՛I?>o἞4p<}!<G.$mRx]:E Z85a ;4N}GFQ\RWInex@zQs[nj6 6L# g9*3$7xU[pbÙi6u|S^WM׈! ~N_SgmgZr@ΏwM+f{*l0pĹH$D<>< )pؖ/0AR@U/DKh? K/968eceJhmYsM $I[O.v1Hݣ}Gz _y.q ZXx#TQ[jf:1BGY8F3I#; J"2`jݩr*OބIӶ""jމ>qbg0tў9ObRp^ Dj_ڸ,w &һEYz3.>κz>xi΍~8q=xFOCvgc8y`@5 Pm!2RCL J8uHf%p|wQ]Lk. lly i,P7e-gs6icmy52lio1K9\{ݳS ve, .H<g5PN k'RԘK# p.=i/#F?ٕk3H_׈`oV6W/+~ExMUxgd \,$~6c9{S ~ٸ640?KC7gg⒏`u? d?hB,#6dEDIB]ÚQvKZ]7}tͿe_efȾ{}~uB,FT ^4N~V q߽8 $Źx^8(0vZIW :xf=X@~wLػTg~ nncWA[22t5MoC΅۳uBbr@[vdҁL /G7 O;hy_W7?Z6'3ёQq1iГZ AL!iڒ]2gBύ|4\.Ђ"]ͩN~Kڃ"5 y1K4:j%WQ=h<*.@ZPU!\ak~yɞJI9@Zn'ls[k+/}L8 Avˠ_wϯ>>Fza%9V][U!0ت ܃mĀ1 &`{Iْzk"𬌺p%IaAVy $gbaXڪ3\#8jЄRɂdgKg[,یD Ґln=:&rjx;\D諠G^x۵ZX%Uy2m o,M=̱ *r Ș'be3<(OxLM[!vl]GVX9f7ΕR?a)1faI26BCqq6YӥK.XiSΖ?6|?GW[qj#kbmm-OwaqN]qdK>ԥt7כ!OneAPr"B.Y͠Q]̌%J#cu#k47W+H:NW !:1UP6}C?i ktzvxо:<]a8)@mow$Y}Ҡ"'7Mc}c$1䂕)reЁ%}/fw!?V y?L+,J Fhd{}=/VDU,(cǺm@ o/3/XV+dcQ#ᔴ  &10G~T6y@L1z񓊷M38 ML _ũqd"'x Q"/ c52L1}&7t6D\QJTZ`r('ܚ-w'O5$A(>! ف%c&5Vŏdz]@'&8(>q`Icþ_jvT3 76/;W5DMä,-Ը[m67/1"絎u˺C6b7Ē?o(S mjZ&:8j33d%Oԅ%(0(Y>`Fddž0mAK d>rjz1K$ALCچÈ|1q;aP@e{w 37rܛ~ƱYr\Du@wcٵ^W3KuL831>H¹4B>pIA ˳!H~Diֽ)ͭ.JkRS  &z_OvUEs){jl VVdbF)$=LDEg/W4?<їGQيe+Z'-Ʃ5^׸iZDG{WV<8IȞ5+?\7AJ;T?YXqsʻ,~xYU+TvF|:S3vְӌtnlR!%lvR qI85psҴsٌXǴd}'Rruh;6<4^])->Pf3E7x@H7dxZT_bf|t< @8 ~ΨO^׹q1 i0c} jOV?)Д4f13yu/u-#,Y/6XқKoxB= kf{Lr`>_#sK-/y6|YH~*^Ւ9Jú:ygWa&TmTuأccejzG"$ ZbsrHdr75c= V/:rQ%1q~?Bfԝd|G]/͗)&h ,N2'kI{ fs SVOtx֚oנŪ&M lvTh}-]+'_iJ6H~D9~d*.R~7kGN?KXZ ąܴUlZE* Fd?]SWɤ]*"' Iܧc>4RPoiLZ+;Fɤ&3$k8T*1܌̺S[N$/fFH ;r'L̈[N-"8m@M!o GJ'EgHޜXlg-=b~P>A)UG DM,{jm"1@ZUښϿ$Ng.śHJ}?WSTPHr\t%&ق>O SmFZ,ۅ&T=v[LmR:OD\r|sc,P-s~B?iv;Spikzƞ[$RMӎM)L+vr |U*` +O@r 'jx2RޣaLE8ڠ%92+9D 7Wd;f#={5(:`͔qa>^t Xa'uz{u':5H˰|ۓQ9Ku$H>]Ku3yny KɊDٍ_;Mp]d懨_Sn0I MrbS~\9IX,]D넯!Yݒq0Qk|}Hf dcCeϜ,u+E,5C:Ãvm^*YmٕL>еʣ*e}B1 ^~“tES" O]ʕocQ͌mDR t1>iUx1c^k-b{o~;YUtVd_3 kq ˘%IvTk 2G';4rkYzjMŘ')=8ʴHYew4ʓ0 f-Ȩ(+@یeuf_.>1zv at4@^_P\n\>m,*Đ.mceۗqNmv:6 c%Jݫ2m2 +6iPq1l6/,Ħ=fhL+pEKVTCB zx#HP箜 J@Q̢+$8. |wo6!&2|W |R!H3;e0Xmd!ceFEzYT/lRM\Սˆ +!d.ʖ3Gfgr}&'YX 1,ƶ^X VODcV6{hMcYKOb*ַ6V/zT-|DLXaXbne`i@c8K`vsBnEQү*Qj6䀩.|Szq*gF~zQQW WE^\ݚ_H& &HGـd 7 h, E:k#2AkQaj|^3 54/(FN>eu,J/N]K(7f5 Zؼ8dxk0b}$v7ބmdԗybceu)-_}-0}݄hn<;5&'Dra0Ju!@iXB+1+'R(<p3.aZ: Ju-yaQjiPLh"g+.*,lC"R1d3\DC8x%n3V8tkeey2!tOƨV-@ =3@DBH|%pP1w̢eY*jmLsQ"Itd5KaT\Εif'6@O+YOteAdapEo wԵ)-",U{ q53E7Gzyݾ|ꫨ)n|ʳe ec ;AYQ0_hr71Pe{Ј(hꔟi!I,T? tA#] dZk[>]ol`JžD뭕KSsE 0#f!9*-[9¥آ5d.mY_=08,Hs:Ma2?G{ZAK1M"BSpMC-dxe?$}6gSgB\(YMGZca0k3A{ ,qZth}FKlQ8j3&]u'Ц{`| ,X]pI{d.2GH,O*;c-gCסXż9Evj-?O(<) h>A޵ϵj}f=$: Sc8Stԗ"+­P * |*P6Wfmq LJZAE9pol^j[j|6zE(b6r|$Q@d=Oy爔G٠CFv im58;}sGs q|陜SGU"/8vCF;%]/9҈+P:Upyrji]Ï@1=~cyHM?ɓqղxcJ"ZwM_s(`gln&uJSmPPIji,ACv:jcbOla1mG↋Mƚ$"XL˭@%e[Jٙ6CF.U|"ͣV5׷/m +fQObg 4ľPJ7ª^oP L wccꜶ^>ɤDcTy;B0NZX"o,jf$|zH6\"WJ(=;{9_驄yc oT!n uR(ʭkW cRN܏-''W#p)r @ K"%g`j^kusE3̅-M ̂BgF0f˝(|e4xoFs `D(fsE"O¢1=|O7uqE'.-.j#كęISszzaBZSkNWѝN|x"rw"kU g^Yf';kp")fD\!5eǮܿ)/y@V_)䎲\3 73_&듇*,\m4DrC0j -.5̡tc[)I < eWP3F?`V̐aF2%l]̟̈ж^R{HOO-<Wg_hz6"Pт{uy&1UBO1R5)ka,%2OpvX0H +3C6 z,xlXj/lP)qF]ÞUL2ߵ.^r29GAggXV'{t8מ,D ^p;'J%tHk3zeGkL;t|,0Ij{KQ`tJ3p׵Y4uS2~չ88=kkBJz}yN[4n)3 Q=1͓+%'/xjT@!Nx*I8cd u/Խ ƟK_:G+nXYe8 ĥ&v>J7VvM.xN]XW>(,Z1WVVxp ޠE\zAx ߔ[>߿w?>LrPL QT$G)ZrTZX7MTJxV@>S4TN3K[jm\kGeŒ Dyf⹩:Oύ"2ʠ͙c{jv蔶u77WWB*ѷP9`U"Iȯ?afz)֊7&ӵWݏ[i` "}l95yE5YBk{Z$ <EoeuqXN]'W_4Aa Q.bb;+5ZXp 9d\f5W-凗gI:@K22K 1-9ۍ5CۍU5\jnZ&cB_JYnpBMgsRYi8^cS!}$<>yE(߹tBP %ɞ%f~v)%q xݒv#iR9h2RgT2}'{v5 ,) 4!9sQ")2onn^EG3h|7n>vحHpDS7n/Ҿ{N&)3 y X<^'ƊrLljLysS0eG,G%^Jlp5Hyc}b6̸<͓&2B^V$tyǗ]; tNh|o&˺P;Pv* o!պl2>'yq^$scn%C'kV>m `L&5ҶlrW!o[6$u{kIulܳķIDmb bž̾޸ޖ|Ns_ӓ9><<۽ uklx[ݸT*~)Sywxv ֯ƃlrZʠͳ~HG|+C(- 5}+wBiE2sqK}ǽ+B}BAB}[AqʹnNƟoeOЌzSwzk/[l>mp)3dBsl{yR%s 8,7bSܛY#E* 8I"ʢOW&ky^]QPˆ}Nvf{ 0կuR7ͥ챽(_܂ X%KzG`9R"Ι|FŗJВE2&(H$A(քxgu8D]N+lMאdY]8\K(So>Le$}XIBӎC0`JOubV̩h-jn[f^ZP{=pf*dV>=>sGݒ(5׉ylqr|TQu\dkk;6{-CdIFX`me*v ptgIL?m&SS!&i#/!0w2vuhiJ+SZ'4T!frȹF,D,CA)gPVAOߢ~Iy{NHZ/]w9 H8zqy_HmbJ[>7N" ر}a8O.B!:/k^EwKSxߡ1~Tt?\5KH:`N$?ᢘ jy)!>6niϚy*kCxOqf0 p!tR ž!c\XWlz %q@[ާ=s>@E" `P3B:kѥ *TՃ$\<^D,usa8{DU5\c>%|\E:}qҽ"~ "(#Y|>;4}Bpv7CjSe;d$fŸT0fɼZ-]il=<,-d=2TJ P؜g3 —^CԯEk= BgY%v\up蘌TJ`oJ=oEMWoQbR]F$l@)̪ gwQ&`I Қ aV% HކXk?B8@eOe08ZIH\& [T|`]91J&Q 2Hsɓ|[LEoW޼}MtJu;ems'e6ʲj9m7 KTssV2bl1 |i$:6zWB^fuY4lH?0t~_8V)q$'C ?kix2xD-yZWf2A3$ӎVi2C;4nXf]m]E/,m `dN1)< ZXA݂l4D5/W[uwn[g2f)UxXd=W{ei|4vYT" (cd1FX+S-K3-ZYL4ޕL\)W].0rM\EMÙ{>μ|>zi݌=8d((dn%vS'm}Lɮޤ(Li̙ m:rRW~O d1BUeK4W}A9Cڤ;,{eo4ye|st"$4)qhU>c(>АXwTuh:3\mroIfyS qJ6(q)^;~8OաY:{:݀$xjKᴯs%?"^tjСɻBwعs(z`ksI5^ӽb>`FT%`sHMb=)g2x>ٿ)5ͺ;.oQIH<ђF+rB '?~)/LfqUցNM9z\Yڪt/3zOI1LE"a?2q"(Ё +yu:YZ{~rxɆ~h_c޼o)"Zf[?nvvJ/l* i T>h-/biX ϺqB~. iLP"K5MXzFe2lO-IeϐvI]yz`fvnfS\ .3͕0s)CEMyEYFZ>2W|nRJ}`ÜZX?l y&=9q)O+E\`^uY( \u*XRjafJ k!g5RxV*GoqGu4VJQzyʎT= t`s [ǫQm.P!4Y}^ܘwމN=ނM|F cZK,f-iג; -ٖzLKf޸>8}xYFY_W{5w@Gm;U_8ΕD\8򧢎^{}6ڀ<%N3Av mm Wt-u)DTM"RKA{,2/Ә=p@YOv)jnԅ.w_?ɵ0WjOrU?$A-4yKYF Or'ٚx~Xso]QWU8*DM]bEWJݏN_ASrSٱrk*o9#WK)w/m1ņk6}n|y¹N0!sx1}و3e'ڨ'<{ ߁;ȟao/XNFHPN /p>ः0Q, l8P+R/K_AZqj]Kjl`7~J)t2Ͱ'8hm9Vͤ Lqb6"ֆC#Cߥs+BĢ7J X!]F "颡TGxvzt֡ŏ#jnlպV6I]$$'lZj΅3Rr_2t8 yj|`vr=5VZmh&Qig#Itj>YɽsF""{X[7K'E/X-XMFc_VIIk:LƞJvROR̈nd^w}JIPH}k[ Ci|dJ5;Z3~!nfbh}I6d|O1@?K_4Ɗie]m-8-VW}]M-)cE[[ͬ{*HICDZא\hWK4IS`Tވ|pGyprK_7.~l{y vQ[_} nxоp?p/埿8lԘon$k/{ߺߕ楳*8tk1H κv !?kxKsFa+eaLhT{HQMo`\:ɤͺw ovA&BLLz(jwdɔ;/u[9;Ґ̶_Y"99F Zr>T$['}D@FN?^\-TRKIK& iɰN5\]> t=mK^ O"u눚]|;ۦҴ7 fy)͌IRZ(Qtun12X ̚3%?Ⲁr5 #dNv-Px5+CɛQ lK1MQ z$OTLhWWT<|xɫdu}cP#9W̻|P,9_W%J3V.g3- B,l(B7J*(AeΡ/IKTwwPi@aK䷳Ra+E2տȈ=R`8QmU7{mCm%6ӑk/U0CR^K0.\h W/0Z=H!/-MdЏG%Noi vq2V?QPZޟyU\Pk eRK"%VЂ :a|ոI%ֱR]*g(@iIGI>ñ?x%(RYPqy|x9'%,4g9W" hPH`WeGԧZռ4SC3 IA+Hi-z-Pg5ey>3" ,(nG6p%9`!7f3OmV 4}~%(OBH̢hUbV djIIͮ)0 5b qhkITnkPs6|-!jױZqQsD Շ&^/A\2cfބ> 8NYB} N#S5 :p %rcQ:jr KYPUyCW5FXGA-]Sխg1q ﵚII)aկ6x5Ug3 HE@nj=uWE!_F" |!e8˃\q!ܸq"F_n{-y-in ƫm8,?êg*. `G)WL`v?I/. ^+s^1cg$@tid6Ǟ_B7ǝ!J7Oa$c,|#ZO\:4Oƣ"NZ] oL B(-v"o1tYș)ؚƙnR-,~\f=vP[Z/>-gcɽd>>ԴIgnlloQ %V} rJV=V˲/)I7MH%ѬkAhkms{*qCEB.2J`3USň3 niꅫؚKaKQ;zj]0%Lgku#04RKa>YᯫbpP.?q\\]tja|JScte3f3jP">=7H/NslMwD#G,R]\Bv5H^51/DtZ1טy? A!ǒ\m}^j"L7Qqf73QMELƷ,(až$Y4q x5"'{c}kkEpHýãË=l {;MKK)c#.@!8Wam{u{{],WVWW89ٵ߈De2ocSᨚ@`⭹,IzƅeS:-d/q* !mmoG7_D6U(f+PΛ?J`,㶡_YXqG6FLcK=9O^o7wBoVy_)dЏ8BQsѲѼI{2Z6F^:;y8ABZ+D|jis:ޮ̒q^]r`Bg !`1ypSI8մXn5|?Z9[!RЕ[,b4Kae]ᲔՋFiЂ(͟=ɶc"wc typ<-X/꒽E\E][KƦ<D8 gWKsV9%H*fӠ )Y òWnVGtCVR?j 3Rʝ^S_򨅕Ou^駥yލE?3{{eiyseTIߏx&%rD-1=>VȂj+z|mLpd$=1#l {J|Q;DzՄ-d ?:i |\ww{01uo9j1"))cje.Peus^4Ӿ^M2[Lt]QN{00L$'Oܐs3H=$Yʳ@+Nƈn2U u|p[:8=i>sH];.SpYVDd<`Y)_#^N5cQjگ꿔 l7&FJGoXd?]XW绿ۡKŸeoJߢ% 87K5nl3j/{oFm ".$#!&gU l*1̺~4+PZR"B`П>oZ]VI13wr\kr9955v/Mbh3NNs9\ [&TIgSRz*b%3&߈tBh2SE74VnE4+CHI&"D47ZgU[Ln}jw[@Ƥ1=Vy4EHK'לJVY%gkh:ǟ;OȖ?%NܺO?zgךY!< Vt7UStI\cMTؠfmū pM\fk.f@8̤3 QP#i,T-~Fo%2sT}8]t!l'eUDc蝯4 9jR$T-w扻4,k1Qիӳ^U8H(zs ْ?ltq5l$ /7gXkrO4у8޷%akYZD+〹rcGrRsi9y)˹9K: . $:GT}~6CI ˄t?[(y.!ܗ+CISZO{O9fG%wB%^"tKhŸ\5׏yhEEM8m.l! L$8S<Ȩe3|`8;pt߯K?J8 oPZtn|o$vl]Wfk2Xˌ+\ڮPmy0zfDY ˥TZtl X.:Ņv]sf讔"KB&N_ [B[nB}$ cP5̹5~(1Gg\5]Q%VHyxOSƀ3ȕ+dT%uMaB˹R2SũJ:!πΥaW KT{0`ST8Vkt|AWu NKNu0aWMv.G8Q^aV6ZJnTq@ƨ%8@%Gjax]7XBY9L1$/;Kqq/I>y8W\T!yBOOT\kUPP)KÕq&WS(ې"WTcxv~{eIEQ_ E_PA閬YIBdDcA!dÎp̘b/\ᐭlн΀g)/Qk<++i|MZ5ķB&hlnbuBP6 OLI_mln!qLz)DU1RW'Yc|񘕝xyc~J;[f3 =]3 1wK*\SJDϋ.9 6iU#ka^]^_Lgjoml9uĹMŲ΀AZs׹Hӑz+ǯqܟY yc Mא.Q{}2̾" U0W)%a-㵵?i=zm`^ XM_@Ve id$zyj wX5n+>h4JDl`ssqtrۺ)b4vb^PXkd9< K_Ӓ`ygQD*y&'[{[bV{]dngYڷc+wL"}?% e#u ፸bOw# ._5*YQB\eO]՚pZL҉W/4Ɨ 68}LLCĿR OεIvغgJOX^@I{F8].ZQLPWE~H[]|ZJ8^rMI:~Lvy)7TFӲۭ|(JM8BpI>=\^rklX?LdYnSS]͂o7\86 Bv^} ۯsqOR/]/M?: xXsG]٫XydON")ͿoK,\ Ij*aA|M'S $#cyx4ȥ0b <1K4Y=c S-<{ odddJ$r$\xZlJN{ss*uYAe<77Fz>!I P'SZH ȷFZ#szL9U*O!M N:AsoodIZ||yU`dJ&_5l<@=[Vz6y[θq%yZst&H>fpʀ]$#uXnڪ5UivfRC:n0n=q\fYY@A#xr&a쉺K+OEѫ4C2]]z/؉$QBEI#WOEMi808Ց׍Pb/>v)  ]&~[h?'C`?${p26c%F,g셮_õnÄ lѷR0FRAmO+x 2@ 3)&n2HIM\j.w_~JzP$\%#wDԿuл(Ȝ =zD{S(v|Sw j7_}_o qzO2lxvafF@kruWWC>HӃ8 vyg4w? |#\N4T1{VA ZYDCӮ&pt+Wz_hO[[{;[яď+XMI,GpB% 0b[E`Fʼn,.J!O" P#鶵w \< +/IJԾ\u;_=P)!ӵ(ԥu&SKrH*lI]SRDCި:G|b;~?)t94̆͠CzKB!4Fn I/{V4Uu~.afVc}@HfsXj}+=XaE9GSȚ{c0\dMɍ0}Nl]:cwn.,?=Qc{ K`  >X\K`teDU1`tS;068?'S"%_?=\ь^mMLژQny1RbɿLm*MwbJu8Vvs!)Ҟ |8gFd'/_ϗ9O(^]vp(Ickgwg1oJ;Cg2/ҝ"1>Xm?)08Sx= '_;eG{c80 G3(crf.!1oJ{有9UdB~PI ś^bo4(p;R.ϛW9Ň8%ߙC=R_gu-حhʼj WfH {s,q`bT;㱆}WnK>HcI% |kˎw 64z쎡=k$U]MjV&6&Lrſɹ&XQD9Vt d>0+B{l:]fb./}^][9=w"z^\q^|lw ґ@<y^˒69ȂM}znc=3ݫ,y =VJ}!p E\A;p]M2K1ğGv*֓$/~,):.B<>M-W8]ga9:ecQ[Z[2QXsJibk(v1FRha|_mI({ 0~(ς<5݊3DRGK @ SÄa?bzWUS1ڸljc/85)$B&Љ1N}\\/g*3]]gP-k*\a7~^-TQAђ Υ;2/X>Ff)P ꬧[Mm-'CΥK 兇&LH>"7aj7Iq"dp3NaZ Vss<$4l# yqStyiHT|ł(6+62Q̋|J9{%>XĘa,p~Ps>5'iy<3˧aԷc|a&⥛+bl݊"@ҴR{+{G cCq6Y Jhbo@sq6` ?T_5毖_+}M Ӕ䈯(. mVD!49XkO^IUoW̨p? 6*HG9 B˜ E|iTƥ=]5hE): }E#zeo 'Rx0Re-jx q<|:~uZ1.o{w{&ڜx!|8Ar|% Մ;Îp !*X\壁 y#"baW]KL]H_&hX^}Z=ߢƮ+j$ ƀ[Cl PxamltI$=Gql!lC_\8=N1+ka,,G\˔Ae#M%d3SS5&ܗɀTG{Uޞ`6>Gk̙ ;e`8CE Q 'r$v~ ԢqS(8H[ f|e{ oqm~o)a`HY)q)fV{$#SP#|%SB~DJE?^h^q$YM=YRs I* 0!0[6* Yqe'Y6~HDҰ2KC}eKȹ:NAb'mN~lIdt-D1dKG]fiBs8+,\6pWu%8t萖Jo: a2 I-ƂBsQ  W~ʯ-2~C *kM`gicl6KkNE܂5Plk뼝]ш:Hg1Y7U;EC_'uN߫zkBNѱךɶں  1ke tbg60ʽ0zF6haG, @#s/5̘8 ה5V Rk|/S(e_V٩QL&7>ͦ 4TiG,Ls .|>햖;L.r:hPz;&`gy,4l!ʨ28{ѩj2 GE`1,OઆNz<29gj.9wQ!#{Le TOkJ| ziY\J,VԊI&qixPidicv`Jo0PJ*DE3eA% !'u(sj&֥/]7T!p8Շ1Z^E8XdpQ8gUn7;?N"!8"U7֠BoWԯ*PBS荅d:'k.vi-cSssowWgzoO{A˪0tBv*њGx Gӻ0p4Ά7jT'9D NkUCx"oLy1N[u8f8Ύ:OW "!A"o5( Qa~ 3T^[E)tۺ&‰b;eg%5C'lq:4C ڌhRl,4F5>#/Az`Czl**Ŕ(w 7' ˚ Ġ`5yh>V5/ e rZюDSHZ$z*SAd |8>Gg(D"jfz:D׌)Cґ"ԺtuOaC)q걬 LoTTk/XgpGM_ZG-hPaVt'V"Noi$^NKzSkS]']AuQA)\>_1w  !u5T=ֹ ?$suRq[hO9D2 >t֕];VU9R(o18JpR SdM%B^|XZʯ-uťaܠ)rT􆖏l=V]ih*"KޣL6]^v pSzVun6{]V@Z.1Fb BC`ƵKY抺Fd{([]Nˇ ;yTTG4{S l6c^I4d`ޘ"$ ,P7OGm]{4VƬ%AooZy2=9w<:-`\WE#h̡W\RгQ'܃ּ;_˔G鱥#|^ޑCݮcDѼhy0 +ui)OK:ü-OZΆ)Tt֯(Do)mdZͽ m29 fUCtpȬ{Vżc)Sm7@{#(лn]&@\z<(nr ⾯I SQ! ,쳩4T8t6bD)k D2K1:B^UB-[Ohyx1aXel7,X1dbc%<jk쵛.BW9Z){tz}Wb"hA6H6t6ɕ)ycb]öT1󑖡8'sH \;ن|Q>ǻI,˦ i|;@e4UwI?y)cȧc1 I1X)&h^2r3uXiPk&Al']{MniR=ƒܒz$%0!ӍÝ(EF̈6FLjό95㯽R^iҔnw[!"͠$c X:გ G"f>4kl2%,\1C;i>68 IO^ {uڟ9-ԵLtm\]VA4ܖ?=sB^sr^#hr[퍭gz) d_:uБz/-`ҀXzͰ5QBvɳo5^TVEk)D#n. jj*Oi4]n+Hv, z4$^,nnl6$ Vӗ_Pƪv3R{H{^eڕʹ0 G?{ĉ7[Plxt絠\e:Xܕ_8~r%SR5^a.Sr&t<.kWhk\\~>#CQuZpeҗm5 S,;_LKTb}`fp*[;&+{^p<`y;{' cU (hS"A0i+{e K/L_5$⹽hixg0v'f< e10o[D.Ntߎ%Glӵ+|Q&݇Hkhhߕh,k:'7 䫟TBb> m_UjYw!Ljl4Z'-X+ !_fb"9lr+lڂu`@1L:?tֆ!xJޭO SUC-V9.y*CPnJڕD% EAx'W/&/'LtKڐ"芢*.3Frma _0Ac)Q۔ v0t1d-B ދS X4FAGU\3LMNehA m >`K$6Xv˚Kr{ rbXs;VTk}T' I &xEƼLE35P< LJ>8⫫,y L1X$ Osdc%ŠQyiNvG}}g F8Y1/'HʚJ\nFF  ȀeI%MU9NÑqꂗf8t!A nmqIr>~M$쮕Mj~`y[X xZeY^7-7JQk^61 €4܆⤃O]E11q2@/#)2,HS~OMC|Χ,G]({鍼FȑI#؏BBgY3/C7LFe# !.#56Ba|GBYaʅRThGAk=ӟ;-@*vFNJ͙R]sgGq+wJ$ ި x[] komscWA+w}]cڠ$8 wLʋD)_~nK{{ ×ic704-pz֗玲l聕Oh+vFUѣp:s q9,]$ͽ]SA"$t>=3\1GBk>0~H~J-C\9G9%qZcb!_ѡ /X7U(FxRz@w#O s `< L%@#β 2Gsڃ 123X*z``h^o}+;CJǃȕ$d>6C~v~uںFUJZEh\C`̧(LH!YC*- œ zR.AdsJjSSK/vClT&t0 й78T6$p|BMsrMf>QfJU&u3z*E!1:Î\Ms¾@8;=sο[C{Ra/ ,%ٺ A1K0K w(W-/vlm^s㇋20E9DTo!;|{g xO.2tΆc֣0\+Pc '1i4|VYhL.׃u=k" 7d  ^[.P4SobsP'%pJ$ `^_Hw>Bȗ*$buU-iJ 5j(K;xZ+Aݑ6ɵ>s㡄TF <=W]MiZV(0*8 qNȠAibqbf 䍉2x0ʹ]/tvmI`Ivx3޷>Kp$ ' T&^A٧-?1 o4ӇTƑ\OH{G_?sdn88) H .LfTbX-f~v (w;'Wg=x ´70,Mg\~v99aGh͟( l!s }FJ#u7w6xKwI `X) F2a O.FBf8os2LwXdξa&N%ϣ[ AIHiIQK͘yYHkxwng:0%vj`V9@bL+ ."RW&!"}yBR$W||:AM1JJed * To>P7LjaӣT&囁NNp٬x=r14 R,woFzq; nB/VC|W%UbQŅR i1`kQjb-U r!Ŵ1߬宿.dkHC>Un ~2V9 Xy+"S$mOIX\ZC{AKqƂ ',]7%llx.V0ȻHR!! ec 57.Qc6GA{{k "d1/vvZdkZz/RT+d)5% 5o+c3G8ˋ.:cvNu4 P7ٜs.e^]Z Օc|X#M\w&} mp{n0σR;䬎ZrPRhK8//^,y5k^'BvRXHȷ^^BJjd35@rJ6Hhn?Hs\ 9L2 N„OdM\le`M"y cZ_yl4e)tcc0^nF7!f4z?);Z:QF*vƄ]Ax}F(O ;!0>s/NFe!28"L%8`(9CNE0@uб2"Zdؽ[^Z;񺾎CO#K &ή IG\XQ:֢Ga̒ mj6<=!|a\eZLp,J,by{Ctl\C)`?/2ҵIKC—(RTȼ`?fq\Z2̱-/9zֺ7d#kyisݯ]R7m>~:UeAζ +Cԓfc(q% 8^.&'”k|IL^ %jQ&,&%=cBP:菾o50yFۡP$X'EjC&@\ k,쯲.RkP_ mV.MČb:dXUY0|Eg_}x} p5S'Ӄɞ)q[n{,-ucUugE'G<Ɔ*FK?MiCuh;<c;#ZMS2j:DiUc8|^:|;`5 v8ѓHz/5k*^2/xuȂ|^`Ԟ|bt'>fȬZqb]tT-4 ڵڕR oqvlacӫ; "^>y(*232 u9:7_7 C˺^c&Q]p0]W> G O(,Kti9"f3M,qlDcpئVvrkܱ8>-?r~-df7o lz~K}G7jtf˰GxO;ԋ{LL7V, \B>kS7gdvҝN:ѧ83kJFhe!,GNaRQO73CDWD|C1HZ")X''9noԱ)c8խCЋv#]jF)*HTK#d̾i`Q";Q nmI*=ln.FђA7Vj@[<I>-f{Osj H5󄙯ƃw|d_|ϖ(ΑDz*i*dZ;>\W'gx1 f4o2fN*4_"]\iΊ4PkF#ZQ]$8lG|13QbQjbicЄ>)S_PiԚ_LcZtgc8-=疚{FX9Ld\"uPZSr@UN2l"a:AH]T'{% .P#b,*Ô$]x_a4K / kN?ևxG)n*_З)Ƽt̫O[ɻ`ԭh4F?&q4KD_ NKf20wç?O}5S46z';xֿ#O݋y #l((3aD'4 Pwv~ -^?//`Ŏ?t>tN{FOU"&՗۱wLe)OH/i5 :(՗Nd7ژ`ţRjlǛ|,Wұ^F>c "@FrweD!rݾ`NM鷹'nV} G92/楨&Z>@,ڛ7tԕY+,BQC&g$1 ~DE\hl WZdSX~R_JxۦL4-WG; E[&"C>5 y(*5*dʼh^O(Ūڨ?'2줉 E}c&` kҚQ18.,ASiOcyx缍{j{MovacҖ0/;twkyW~`&HClBU 7<d1l6:`B{:n<"a&pd;&1 OXm8[4NYD4|!h ЏWB:ַrpPĖ_6D}@eޠ Qȿ)jcMV;2Է}t"amu# vԅoe܎'0zh1Ḷ#|AoNh܃`a)(3=78wK MXN.N*fiY&NZso8PXZ %j@5z{k4'*bKb6i@^rڥ4Iܯ v'f]*;,yNw.+nm恺0q$*`8Z6*kt; b-w9E4ޝ:’dx)qO[͝Mj??=>pӸ|rቃ ]X!~Fw^h%N xN_ M0_sƍIO(<gT\HGߝ"ELćg]2=Qy D%f@{&t;8MfXg`S߆@Kh`]>[SUWEF$3=  (aA 4ӑ KMsOB)X`ƬgajLzs@T#Jl<+Dz02wbO#ڱ+sܛKabV4 5ѧ6 ŵvVx|?mO;{R݈plvmҴ T$R?3тSm@!FCžbUe<9F¡' ]09ig{y=zdtׅ*8A\P{wɋa[Z)uR nR%_jDڬ`LIWWpX,2I'c+\9l &e r_a?; s9Rg7/_h nW)K{+ߛu,8ws4~*Հ"pOL!PB~-; C.YfME׉gZ:n0*HQbF$FW$0_^bjxg7l~@Z>GƤ q{3K!|>#g3cy,* PṚnTkQ p:[l*-Xqyq_ 0~z=-&\ oɥz%i66O_=fI Wd%J a^^(jfc?3bK-ŐEHd!r-;BPk֩&ٝ>p?9=L]DP'BmL:eP+מ/PjcksS D!o1i[)@S7_Q.y#,/OV@@x@kN'FۣBo1w9U,TJ . |$[;[֣fBH腣~ep[GQ&@lD&80+:0Pbm&n7uLrb_eg"ohܒ`?f`L{:ژ޸gR=^d"[&!82p)ٳ0XӬi*'VYv8/3(ݩ)Pz70 ( h0{V6A<V 16cy(7l E/\C;=|Vԁr}LY[obڢ<׬\N☶5˲E6%[ hr$UR<-E3m#z{B?wbo,*G9%@KnW5CDZ>|<#$RokZ-@ P_~!q%"@ᧅ' à~۹:5O[a4srf>@\ـW#\!D[*Y JdDpT_u/m*eJSRH/ Prgy/(gN\|Ok{ j6MySkRWSVԛʭŕ;u'gW)G;Tp <9~{=}|뾳N5M6'#Vɡw.QWP0qFzJ=Ph*`籛?xC2PNv5徼ţD9 `kPuoҼy5nLv(QaG#eBL_ ɿx)[SUHԗ~4Yja^[ KQ@Y؝]㸮~D*{G.qP, U<«3|+nF 着5Wŗ,F lF&SC_a:>p[U,I| *b܊xc0Et!'($Pj|U+VH9[Ɉ3[^SQSSCLC{&%_Рgݧ09 5e0 \; W׹ 8h-31R#/="~·cgݞWmC$ +'dz6 L1yD']ٴzIjBc7/!$$$k%lxZor FL>}U2C-_ɞ۝l LGPLtKPhZYd]yyKYx&hЫ38R㛬\,rU?'92o0d >-Kbs 1!/R08lTz\ QUV,~J4:x_Ce>} jҗ0[yI:qNJ=\/׌J-ERe>.F }EI~Om-hBut49X1"9h&(eܼd(IL MEAVX"M*ty3&; #Xa]\ Ȃ,Q,VܪV ] XآB@$JzdyoY+2? p MO0E'[G'C8HWtl|]!}cZuwWǯ8US<='-T>%/5%-JkIas(8)f 'g3Oqy82}vxʦRj, p;u-O㯼\5Fv]΋_@ p)Cna }+pRei:OG4ǫ{W 1|FD 8 z9 o邟+WwX8my!9: Yݢv:?uÛҿ^`}NW3+ӡ\U& qc1tT?G8,(G)F>J' è1S|:ԋd?Lp\HdA#kDLk7;faHOaJkς"i/PckYq)sfBd?X3dex[9m~+k45OjE1&o]\ëŁsݹg}J/*߰)\UFX{A S7Zh*F@u[jrIVv&x/O:2Kj·:>O \Nɣe?Xڂ |L7މR-hihƀB(1;[mp_mYE8K\h K#g㩀P$4eH"[l J4AbvPn2r a1^HYueU{ՆCEKmf{'O&_b`2N.}klY8 r?3745S.";=XOcXO7 V7*; Q4k_ugѨoR\xm^pp6aI`(,]4UjZ?dI粫ʘr?&B?Gw[=~3 x39 WUôjW{^v. >Wy{^0mԧJ-%g0phvlٯ0 f4}6Z܎%0%dlr۩1J'(1gdF{&R[*%b%(Ol["Xx@dp!_K/+s$' n6̝9=``OPɰjyHu7EFn&'y"S7yMd8FPd {qpՇkFD' QcGLDe.6NK! h#h '6.ˉԎp$uE3 ]l?ŤJ&߮-DCϗHiFa5mr7>y1bptE$Am *^b\xָm;%W+|U[L{ :[ws֝}FW^hsPN2sgkdAB/G  xWJdns翃M*[nP՝Sl Zg\_s]#\(-w->~}w| 9KKJlBDiB/v\Dl l" 0͸B.rZ$i&XH9S{q FF@*_ QdvC7c-`A]Qlޖ0:[ArHdLJf:Kf#6YaF7Vڝ 0`BVo/[ӌtwSD*>w)b2>`P6dސ3r %WRM6F SB:l2-g־,F8TOr#/'k]ڷU8FF<.7qDQDNȥy2(ؓ$'̅p|kߚ'VS]\ه sC'-n(g `dZO5ǻqOzzwDs4˖ˡR'8@ECWHq4*(3.~VȨAo/ IKwx%ND9{EX8rq"8H^J(aDaU0:\(cOwMCsPZ-~hz"2ι HV\q;ͭ<_-R>~屛[ĻO7f j L ρ.U p9g٬c8nIsaCD@nDVn?oq,jڥڴY i9BH E[NkZ dmc5mڣI9sݻzo\6ޮEko/]۞د%Fd{.C>@(zzJ~`)Tf{1͖Y+uxfVq}O r7x8ldd@헄 P: #2wu!D(oGI?ZMmi?ѹ"C~Zlܦ?|cpnn.ڏOA-ɻҦ,ĊZQ 3[" P\ӤVvUIfS3XUIP[N#χ-٘<;t̕|"'s3-!4A|.*Ol3z(1L7Mowa2f]UKQ#}:noQ ;uD?J& Wd'тy&i IKF $L,1/"cYmi6[<[הDl5wD|6o?@0K="#Y_WNGM>/NaQ)i3 {ӬB%0YCM zd8`԰#ԤβrYV4+_ l i#XL bg}2ve=BfFsPuoꥃ T+W晪> g|8Z?F_gݣg۽{*9ʇ0 óE x zIʦC6y!k7Yk׶j/ 0<<-sJu*Kּ۹Üi9tOݎL|i{Oqw8AǪD_E< g򟤑e~Gy;[V$A)`U_z<")'sMHgP/܎ڣEQɴ%l*:&7-c{_^? ;O Pv#3>*dXRP6: 'ZT cņ8^z7SU 'lF :*oj @]BTE,VZF1 6_h ͤ]*r=NJ!ضGqjꩊ:=)9 Zi77++MV`N94mK!}vGQf@ХC[DPf5P2$i6>9@ok8{:'m":;48_5)`i4gô' Vi^yݵ*H_ͲUoݎLxM s<i5ܡ/FeZ$^{_5L/P驁W#^M1yE[bTEb2K*@..w$&':1..Kh;{Po>żj M5\&JTԮ7\D@->D4|ќ\[G'@4nϳB_?f:c:r62S̸,a/sÒr]k9)g~W s"~Uʌ6#ݭLڋ$wޟ"r8׽] /D];Obxq2xv|%e} adI|Ouه`b ablƣk5tM%ܑE)-cO Gj=($t/&Q2>*J}f<1hjq_n/2$O3Z}.Շ·ۏ@a|:ΈYɂ)j4BDcF$|GDs ;=JwҚ3E=xg"(ZY+Jc)O_8 0x#WY -IʲdfsB_O/n'1f9znV`Qɏ|淊0 <:~7Zn?E!8 YI=b&UHGR>bY`6WnԦ_83-4$}Gc-Xy4JOJꯍ(J/7_iփFo̾Z~L. q6;dQGƌq6~q!Ljh2XXCf"mͱBz \Չ_p8'2_`XTl0!>j=48}tP&oig s+Om6&H(M`z衴)BQ*%]mxD&q)^|'&]Ėdr+o`r=u[)JRO]Ecj= o6WsJViMTRpX%\/D4YM_WlߘOLզ]k^gYoInz-7NuY~P,ù`};=Y0||; jXQϻ/èi^7) ne`P[GJi28Qm r$HOAu=r0]W5͹ad\r9 1Y<_D$^EdHRc?}1 ? CW"ygce{?PK nc/7 3 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/READMEUTN?Yko@@9n֋55oSY j!gId-KhGv?4H Y!se/>\]Jy[Bq;xNdp/L̻h-ݮU'FZk+?ݜoV1Y,"p~ wd\(Gz]kt 6g]ö-L}hO]jcRE^nO7oGz)N5=WŻ͌ߜ}w;Y-[yqo8w6j8Wѻ+xu!?kZ _)kZӖƆj[7v-+su]n[ K/,a{+|2͏Ku9Ԟ/JԈ]:Btm|dn2+'lTGNtnTj]"H׈L0k9RRmmJLSQD9a=20/QѕTVzcJ«Fo_Bܭ2QښJ^s&N -)Ç U;_.-}g%|[Xs,}T ]X';\.:华;VϏE *CrnB1DtMCOkeZndE6Hp?]MnIutFgM|rS2 $%#r֪XdS`}?_gO,K:?0hv[fq=U+{v>gVkSPءHw\Wf9 tY@h)}%("A7QjØ6VnWϭFh= {]0I3JJ%2aq{X@%J@q!(-Dj<IpyCJJpU^S+KM- DHgO֡9s:U돩m@jxxEKi{pz .,ܖEjʜ_S q9.24MDrm}қ`AZt5PףέCAZ.9&n> F8*~ =L(?sP} hn!^7 92 Y"H1N,x5aN #hMGWtTQ0諗?0Ͱ<{HC"ѧߵ4JҜIGdV  < ͌%K!\X홺3ke!Z1_9y%`sS(+4x(R*yHbD;ԅ8RAXM[,UhK1Ԩ;(o*^5I@z,ey2Na49"$#KQi]]Q$X}<&hj&4a dr'{ yglSb6mRiP rҮ@c#=$>Zd'<)"Q_os_Y>?'V(r(>*94 xe 𙥖*Z! %2g}*8FQ$wiK|R@PD7Kܪ޲F_͙\DQ=Rc/ T=l *Z{\kHwܕMnxtQiR *`{5}͖KN SpE\xS<Z`գQbINj[^-yTN(uBddAtF6OILC~8  YL$֘-yP6f.?8S(kRz L2ܓr~U,'じ.̽^dv[L_#+v85 4QV SCJ0u0d,U#htF]ebO!8)`o"5mQ5c9zl98RkgA`ϋ^Q[n5 ~CIdzɣ ,ˑ&/̄L}f&/vFas!t-0Jk1bܾ<Du_d G *~O9uG>yܦhjO JDITnj7VwK%_0N:ʊVbԻ\ gɒۿB>md4uv <.JW8G|M0\z-&T# ՙ@F5PMYK{'vF .):j$RtRH]UPi.A<0Z@t"rY34E+^L2eb|7up}T~-fiS+Z2kYCY7(245Eiv(|Wii̯vC9',kׂMӹH@WVSՁ@Cw"4 (>jgMC-"] r~x/?\àڶz. iɨPWh6@,™ֹ$}% t@q;`7o' 5+0IrDA >Z/[Єaʮ汫!A" QjO/ S[Xs(wyʄ"a8>5nw"nO Ͷ T[EcqH+xNc51Iշ/.$R+Ce- 1ꦍI- )rfفHh:qckv!0M-M9ˈz8@eu|hV}3=}W}ax={{/devyƹ0{[g)ԋE^MG-Uj֓U6캩˲\ WY]eyw|˪:7fŢL9]UY~IL?̾rWy+?N]v7XluSdݠeE>eWk]Y識mvU.,?]|4tnKf\xa7yOVEC8]{"Ga íyqW鲣a/O+k\ՄHfy-fUNG+QC{]V=+EKO>Rgu9_ µ,mdxz^_閳MY~_ЏhѪf{2^h}|EfxEwyS<{9ݹ-:aݗMحh7&g񹘬W XaVO&)40;եȯW%zf'bo@۷Mp]Uh]^|x/M1Uyf(`F C(>/i5s\rFjP|._uM1+l颺yf^8PeQ@ شL |3}YMryÔ@_)=JX`Zꦦs›+'Ϧ?i^mi%hh^}XQcyO\n,z|,E.w]݇_ߞ{_7|K:Zy7JǛ1οn %vFHu63 1*|Y7>G٨M'?~;tO1ɟgg'{)WM^j%v,KzY+.7nQ/yteSߔW89QNg:?pïu5٬ 5DR@o~}aEr}EsSKDR[N څs'a2v\֍!{״}hIN[ tN5o̍¼ =uGq2ۀ$ |>W$ yi19~}e54IbQ, @>}:tl'(0]ypmp0q8NqOAe1CAKdp8h".iDxxBYΎxƏN!tQ7t[|z2MH/vP[^W&]ʚMˇv:v*:feV"Jƪ A` rQV0o?ҭ\=k͋J7<;mOK9 R:h>׫zAc.gwϒz ,}Ux:z6n~\fދN?8{AO5gOldHi1|z7c!{%6r|K6FI+o ڥs`yh/HXYi׭^Jz6Á5v-1_EVNrZa|-c(!fvkz5Umcىn|5a^ i]pDm7}xw|/HZ_D);3 qє ޚg=wtσ$i?E ^ ?_+3ˆYM%Ef36V$(o짧aI]9#P4rR}#i[o9L:^qӧbŹU,S4%!@BFYMm9N^daşx߾]qK1-LAb|>hYǒ]j^^']mb诚Ӳ\DLK>:usKc5]3n!% sIjF=|z 2~5e0P{JrH79RHXcX$Xu]\|:Ż../<3@5Tdw~&v|.xB 1fMqؕXeU%42ٹtx+U_; ohjڝ|?iXms%Z.qG`H->R9amdOZ`4NT=<$uvWT%\(:昍d"tbL гϢ%{9ok`bʦ~R|*)[4_[lSJpOd-ʔfw{b3!.#'Y膡@Ӕc;tjsvcO]EFGxw,[KB,=JG&4/`mCIӓ#U3(Yιx] [?6JT>GCM` G:9e}FdVPќdfNa+ளO[h]-FZRm!M1eQ9GzEI`m0'Le΋X .a:ql(o ;F -ݴΓ9$] ^<1[W0ò` A߶X˳O$H{U՘ƍ~M= =(V*[hc_L!߁e^of (ֺKZN9^$&H:2 V)!bky&InQ6zya;$!#QZh,!|GlaO8*zjF(z:}ʋ>Ʋepz,һ_'^C}ujaI5>{B#D|ɴ{b?fVhSiHd-̮,gxEښt 3]Jzd̖; OZ#?79I /.UQ1 5\`;k m6P_HߜU+-EG 4Լ'!lX!4,R n˺d7=ϟyD ̒憼x*!&W֓E$unYo]%{t6G|N486;$Bf=.u?`Ni/"P: *"4G Lh!(f0zyM$s9ߐkJn;/o:-{=;=a=mV*\`׺L x]k)Xe{V[4GϢ?򁌹od;℟Y4Qi망~sL;%-șSAzee!|$rkBMIh OO 9K ׫bEQ' AbIt_dIEÖsa81ZuͬDfwB)jw7Hͧ/SJSzs+V}''bI8?>Du(4,J?ɋψs?M^"u[դ*XM@F^wPI6 N{v/DVxfc4&RQz-HoLVk3HvvڷQ֣K:`$ln2/ZبK IXf|J*I՝ST%Db.S{f?gL!Lj7$'߃^tD4oEECo'|'$$>Ca82kD;.63qYuǀcXH1]$ F<΢aqӃpSIjyϦ\X70z! a9V2*O#`,)s-ǎ^׭BDa?{jh{}G6z-TlnoL֯Q1#ux8.? nC<~oK*\ E e^9G0$LF)!DрI®"H`$*v sNQCnHYK`ibx+ɥ8N- ͨ4)nMl^~:i Ctۑu2 ,GvZ= ^u ?>ſS角_ //bE?.y+1f?ٹ*fؼ>U%:yRK#!OxGUbk;횖f2ώWA~]gVKCUs^0XMds"4!+asְ[!,hz ˎ!@ՄELnLѶk\$󭎓8iT"הH#mR@IrAJrF#'ɰ ;JLjJ ȉ†){7O܂a*/"YETyEdw8*[`J?JI|1)R9^ `+m34̓MG%wE/ 4g9;:&EҚ)Ntz)``qKT7S14EOp,(r<~jtwfNfNBCof-cHɢq)l!vtPLxtOlPgliQ^q%B Da 4dNH}|{W %:C J2D%O%4u}(Fp}3^BMYsPh} ^\V=]iWQd.=ipT@keh~&G~ DNL.kh S(qɧP fnO|Mƶ׌*^5l!CL8`i$<8 ivgERޑ+%72,ݔX33ms*jyՊ΢یj2P0’iR,|+bo3}8ٖ>f*3GOT|7D"vFF^z;mxȥ} I#-+EA]`Xū$uYc'#hx)2Ozg/jcmFHwY;Z:e$KeWImzEf i5.giqL(bD 76}bOC Ɨ,MY[[ x(LXO7˯bn^ d*S'@ѕTv=Lw7?}l[hNyE"=my땱{>1\/^+ K~rd5QxeV,@W8 JGݠToYN?L(zix AmAiꏉlo' {m߱='ۯmM\“T ʯuJmg*i x{ Dd*B +3`):w1*_dqnˌߕWF\͖>t1}=KJK10 zQ|1s1I-:ffqFD`1kF1IyBD'h+cͬ_qBENNtK ב{7rIwӿ};Pbd>1JkuQ'Lr/o`KrT}9?ZR|JC̨) ؗRӪ+Λ'H8$5E0d˿볷lCfpM}TtЧG=*Ƃ}M|P-5}ó'!͒$P&e4>8 8eeNd)7P𠚽\nUEr@%@ʾeӰX@FJSs 9/;& ۢ^{/v<IF1u>QvLyo) !͉>.g_@cdQrn"<^1}+UmHQɨcڃ h% sQ;oHeF]N'q("|\5@0N(>X5&6s;`XI1eMJԦb!&NJEhE|FJ+E,z"-" =,K?cދqJxuftf5YyQ?ɰGq/E$73@K{,._TXUy9YjNNF\,&xc\c[Q~Km,݁ (gRG}c"Mh m4bb,A8Y:yMl/%d୬FVwVoxF/31D+G<(et*8¬)Z7 #>ߺLId~~\N ]9 Fgt/56V JZ_cscJ>:?̸[;l\YVL@4Cfs[\ S_!XVGvvX2[^QlD}˻ۍ^kL=/;k%uR)mڐ7aTd{)F.!}nH9{,) x8~NhGUۀD}ZOQaa,"ϤO ty@$ |x\ْ$2k1*U5P$[k@༡kKv`RRd֐v}_D{@ vWU(i!ib̓楤}0l*wv:xw;{`qqDTLՈ~W6"B0)tQ 82=1jFfr< jq8}u\ *ϐbUr`bB.nue;h~FAu?q2#FztVy{3Q:vjz`JK7O{֘ FudZr='vp1(A[ Ȳ@!F<*Fnؓ"rPc =ymLEpFǂ8+3)sQ\S'^>TNkuA\WL(i(lL!92PI6fϛ/CB OFPp ^(;4y2+#bq{.en.~h2Zo%W~miR~2[E=M/fP1#~p}T7(+fF\F#9 YyIyr5myr~xI orZŷ՟b|KNV8ʗ0@ [sM)nLG~EqM׉vf.Ícz d۩js.1pL`GQmP|'33`\V *.<3 [Xb)Ɨ":2L1 MimJQp#w,M[[RLfWҼ Ɩ(8C&,;rRVdWh$} h &*1I )*D;!GESKvŬը+qMF3X C-/ѣW1r c@#dԷdrqKޞE>*sɮk8$_F,}UkJYɻ(Z^sL]<&.> wJogH*?+txmlߓP8.vĎBM{EiP*HFF[l3BdF|&BrEJ,kd I+;6xE9@l"t,ki}Ԉ[\R@Mci=ܹl|.HXG{iN͠%q?b8irYYK" cU4h9jJneO5l8qexV0B@+e bhƮS^mg\fᴞ.o5Y})cl5pГaNNF;6!!k98^ Zq2аuY!^(m%G {DJŠ`dC1$$eW+` L@*y hlC+v*^Ek\L)@éjuÍsRkd) +Q~;> 'e/T]!aOKk+_KFBV>DC,0{ lH GpM RLRe+)&jkƣbbŐzIB'WB&_Yy>B"l3r(h &))jFonjH  ]h ݡ muŬF\v:=e+6ob0YFLGixݸ^2)W*Laf!I0ȢZ +AlUV5SUғ\p򮹀"A%V@3+Wz1(m{Y㘜'L~Mfv}1*c_͔QILXӽqԌ}r#j)v1s }q*.< ߚbFR!I4@1Lb!&AI͉^l( }H,°i ~"+Z -PH6s0]Y4V-oܴWryaTwyTGjW< ch/rH?0N-;>Cܘ4<=/j|^pb2+Pfh1G+ ;D2ّ_JnlҖBxAǚJ҂a#~͏VKJGPfс'Âa6wpi^ǪHy9ˇ)tcf :x'aOK/XepR&U' ۭ'FXxx7%ʓaZ:F5o F'&%m ' |s^g"Larw]陳=0LDw)cTm6|Q!s+}t`lٵ{^l4C;O>4Dz>bnsVhs^LQPNl›#o6ɴ .:zџ_ŏp!>Ƈ1!V_M5b,pi\!ȭH2ʩu UkO'\ %>*F iZY/yO(tjBN H RĘTQOH[#OJnwߧON1[g$ңӐVP^lߵuJ9ieil&i? Lyֽ 1]aG{IKisbEߜg3#dZ, `".S*bECER~ETDh[}]`!@il;㕆kˊE6iBnEg-hG%;8Rp +޲W(9pORZݣ)o! JQFR~:bME(<O h'6X3&Xڒ쟩!9휒C-8Xu[bHW+m:ğ&PF)C L\|uaD_䤥=O@} oԎ+dJ:)5/2mXp#l/ ppU`JY$2ՈcgX$\ճuJ`9*b9j$1+-oMS! }AR$B|עM~_VFb`ԁ#~ޡ4[vk]|zg~̎T3ao\#uV:t2QŸ&H] MxYKwۻ{3ݮk'cl0v}Mi_XB;C$Iyٻ5oL&Fm5{2$zwi?E>cwN TuR2Mp瑶`\qQ_>dsh3v_iBO?{3!5䃑);Mcq~bsvKxS>Zmp17~c<~v2XOc 9  _h;0/)F(Bd>L9AݓEg+}bdNJn28GXެ+ +ڗYY|+CRiRĽ d,x褗_^{4ʺ4ZcZ|}#\bp'W92ȘJ"Tk!zv*IZ0<1"%/ggm 3AsJ8tUsBoD-8M1pk[bTlS |e.B rFӸɤ 8`ڲ0I hCaV%gR&WDMEEFk˿5I!lǠGr`l!²9=ջ>}<ӳK)+އRE v?UO>9]gPs&-Ewk$kʼtyx$;i}6W+T⏪VB^%pRyxLa95_޾% [ /Kz=x zbãըo='`Edmt=;&yzL<Bϣ;k`kL<?)+p]s<X;+7Op9DzjC$J]mG!RI1}jS8˭wfil8 '^O&/a(m/͍Zq@@ W\k!fנGnM{$?eEa#CDF"&_L;ߞE+}r'bN;VdmWί,4-cIMK Fn)<_geaVIO]I mLn]S=9el/ZN<;l5a(Pb Nrσ-*ľ$\tliBޏU$?[G@#=>Z+o\Sv 1f?F^g$J/Qu+b`58ɐqp[hm hY'@$!E,/M\$*38׵ x@ UomG౳)  !e5P\ON]:xpYo*%w@NҁtޫggɾT3bfdI'р6DdAL z!)(T+3.uφaPs"Λ:I%daZbS\0?ϸ3VȀ [@eŶׇ (N Qҳ.rTnzzd; + ޷'Hj-|j˝~8Y"BMRUE1m-[3=t5X$Mً |'AO)mIeԙ >)j 4`HQpx$5;WTGb*p[^. bE>Pmj-1̅ן~x;R=7Im:5~DYa+_gSza}[R ji׋g#n7 +0/z6պ,BT*V&uQ@*זcUl.ZF ?$C&$x)oی;ӆHr`uOZly|]m[XUe ,W%eb.[}'4!ٙ\ƈrz5V*ViCs˸aw7Fh싱J)q µ>ͺԣB6e0◮XS(/}>w'ۀ qj޾|s~X,-9B \J4t9'b{EZKb4\wP*}B]^ѥ*}t;۠-F3.,胠 tK;"%.H27t9T(f,rPƼ-SS 횛dc3\<*I5 ' $3F3~"Gd,V_|73,†W +F jݘ>,ь͞#|ooE|i:xkRx )I##=m͎ڴ!2`'ٛOξ`[+)bH| (M '0I5c]_ǃ4PbUN!{YNVȲsJSnk 9uf&{1-p+غR+kaNHcPsa X(\M#u2MpXGY;JLbsz6:. '}/&ffj_6r^;rg9-hhZѲ͗ukgz%0).8F,6 !EpD'Y@3>*oz2nXC-${>2xzzXN=oUGK yæ<}7hai V原O3<ܰ__`d(nrCDZAv(ha[ JsN#NEyg Ňѧ>|]b3!G2G]NSx+G220wۆnYU^.zU3CA_^hri(bJ8 uJ=}h@@ud`gO%ίMϧ),_t y&ir#ߺ,hG-b Ӫ3Qoq@Y8!u-mڷٯ㔈DǷ:kF;{>q*`Ǜzn i/-v_A Lj&e>AkyttN&$vL+/\m|m 1t쉝N74m8 =`KD^>>' {81t4:eJ6% C`@ʤOp_8IiM>X?0^Db?u=AFV &8g0 Wmdz&,;ƕ蒫nR%[6TdzD+C 2C\j}n Tjț_d2jHpW[Q)+AMjaAEgbnrW?QH"*wtq D3 0q|p˼ae]id1]`}y*~6.E\UF2.jUsǎ*bx,νkBAi@^Ċ9vY^R:R K4~;p>ڣϡ^’B^poښ]^FKj kւLC^%}uȅ_!ifSqY?+UJ"hgWJ~<4@8kZ:uqI/yB헴F%kT,NQ/z]>'Ѕ$+q_—r10cj.T&ճ1#55kMb\ O@\;/e -bot q@idmP辨U`=Hx)ym"'51b2L-ueͭY+ ;n__/{Lxr3j9c%g61UVƯ$NF*$B -URB OdwnmvS0w,bގ\x#npKK]NŴh(V^ HqGk&qBiPϧJk's-v7'X@t5[єןգ/nanwKi_XT $6;,jj5{d cKD.Q/+2<钟$V&hW]K~/ i- |iXD'Ph"!-EVe36zBtǫXroQO\v(̙Ggpn -<"}b # =%SҠ +aN͞ {J| YEӑQ{֋%vUjP%^[z #N.ec^J}w䤔]ӿіp S\R6۾{8NyvD:)tcG?1%U,E%su-_|TF9'{\Z;h0ԇ[)B'7+Me@*<(JT|jLLR(G70D ~X@ec%ߑfL*d1. G7xp[s*6s1{WQE<1^Kqcg%]ȫ>pڐߨ<(*SpkB5%*n8#g@PHbvҘyvZH.3.MAޭ4Rx;("ZHo͍y ǸpWP| ؓ\?OgڷHJ4m#>AX\Nh \?ala:rS(@}f T² 0S$#-zH,w 3:"t6<>wU.s+>e5dn@ .\P8UN[#.# [ICxO>|>h! 0L+N!@6ַlk=sem9w> )mdw *oikT&&s*aYK[.;1S.es]5mZ;$YBMok‰6jmLX +qx1֛EP>3G1e;[@ƜUcO7Y6}6VsW!>6 nPw|3Un"!۲`/xcS*ȧ}H)Otɓ1E:G[ ]*7|&yD^Ԓѷ?a$3f?s2gz&{]v9dPKB 4ya xHvL̷h`]`6[Ǫ|ٹ6z=z/6~#ך jBbdtpD+JIÆ?fpp2Ƕ4y J| riG[tVKjU k1- Ib{$ ÐAt?xh7zh_s(nWxqG(n ".+>BCloSnic/Ks7<ac;z(,BS6M\῜(r54Cf>r0|3}*<͋}yM#{]bJD2ӥ2O}6F9ݰ5K "j+rOǤ)UfnJk2q<. cZ,\n9av$ Vo}\IB݈ړJmn,3me",g OdL̳꡻j* $zm8X %Fwׂ3+/MUSܺ^L}3< ,\*7- y/y9%|4H9on҇jU.$b,89Efi6֬ {<Ň+w=݉K0I Tҥm5ع=Kq4T;B!P 7 `%]%dM1w)ߥus5b$6nicS?'e" xH%pm9<>w3%(\tƵ^?㲺HYLe4p PtnqCY\fxڟjo7eD|(š7wZ/5(2mrqэܴBOd\5Iw>!e)ԁWR=~IBl_Gx45 4vreYa hU՞#g"*nQNnmpm,S*y$)#O0ciD8!{$~bdߓSl_l-$M>.,,;"V^_ 2}^Yx 0RQ4\X~FGk:Jظ :#t)T"rFs; S uWIKDNU2%s !Z/gKCjvYd @ 6ljH"b(MZsDpʕp3#/Z؞}2n[L.3`g @?e5j&7 ZAwvXpec ^cMx22TZ42@-~2໿mA>a4` 6i:`'iD76!a];]VڋD7 }G~ lu'I(#&'4w{Un@6/2T5@sv#w=36L2K$lF1sPeڢj@j<>bL Ib>-|I#85Q4b7ddZ]}-_ЏBv뉼e̘GbT7bzNtǙɥqsc9ߨN1淃SyK&aj}{SU%w|1GթOpS#l)Ŋ˱8">k5}\$GsY#ypp+sz=Q2X'KthPZهDz'! .?܎A[ӡ. %qݧ?_ňъ-JSN at,daTogÿj Z!gϞ;(iCs_D2"]6dăS M[D!s(aH'8A^&Ҷ0JjmU8JjP$Uq]V1+K/py L22]qUdt.:`9rgR[y 6dp#2Cͬ72[_~8~vmpP{  ^,oD۸m}%F*L*H*lg (n? 5"h>Ȳ4H5q֒#uä:paČkW%GPSYo~ڒ#O2OQ7+k8jZ ᆶ0wLPn%wx0 DWvVJ *XxpfvVpI V[{yD&>F%nq͝8O5$ ȑe@ 21-,zto.=_ }GEY%\yXWxokvq|"a`NF\"5AgOX$GڏLoeԮI)]." 'WV̓ʤxS6ߗM櫱a]cGp:g{}@| >MS\ R.v=#XGlP_--bgp?h)`۝6ӄq^ȿS,Rjik![zU\n h)^ X%)>nGbWV9[?3eZAU~3 4܄kZ7+[!U uZ*(Ā%sVoKWQŒHP\1:ZlUE+>͚7J;: G6֍jRo*rK8~/,$ k('Z.+8Gw=/PMXV0IƝVcv=V$o@Tl#`K]߮0 Sc<4*}:X\<5|T< mKƤ]}BCлF)jIk]cT%M$7i}CE9jx[|%Ut٬C^/\H nX%xy5UZtuYh?F\_|W اZTsU}^/PbWX;|thH,| 9,ƥKHֳ󬍴kkX˨R߳8/ ō#"^ej2B>fK#T _A# 9B6q=eg8ڪ;$Ù߅"w1fҌ%5Pԉ<6R3a%~9Au,,_%-t~Cӆ0/"au'cn$&ιFD%< 0KŖn:5Dd-hkɰԴ;q"v#@ei[8ADP89Pw#ľ1_dI4ݍY}ٹl^BrK 6۔4Yk.?Ғr ״ccAP4n`<>kՑaEd 0#s =QgU":+?Po(i'RLXFg߃6udR\ N#R* Z6)#g;uhyo?S6 DV/ƬhZhW}%FvD<6a\`g. Y?p<kMn6nGn \´L܇TPk`Ijk|LIMnk)6b+ {6p*[?>nz*ҔoݗW~ҳp6 /Q2]b"R=O Uԏ9n,Ƙ}&R<ГUp3vFP8)X(~඾y`⁣FHnk91,`5Yͨ^umEfy/t]ڷ8ݥ1`mI<00z4n?7фp312X2yj);o՛hmwz%?-@!=^TL Q_V~|/P:{ KM X XJ*kj_2EɔUHJ @:Rg[q\MxjSͺ/Kf\ȼo>#Ƹ+%HjF%ÌB#L8ٖM"UF챡\#7Kg60.7aVR?]O_}B?n}X\ Dɥ)Oˀt\a:Ža pouz]&g7ptnVj_ y-SBy@4?&QUk@׃ =B1U%I`@3B<<&8TlHqh"(O_C\l+ h2TT@72F^S/+ 0XŸH=;|>&7" Ȃ8`GHS҂zMds~c,]|zhqECߧ>4*|m0"f[P"`'6F]SACLߺ{0ǔ$$7M[f}ri|\Q  ᫖ǑgwxMC';vr?s=a% +.FoלgD79H▾oMxXS&+*ds{WU}YN^EGVF\Muض)E ˄|J#qS_]tg,5?iTªg//.'iI|_E"9ع]0E6SʋnI^ZUKtf9^ZsSCWPh7Ԭ98T _^W ]nbk"N\w~N#[G.Y,&>Ji(O#&nWAf{Ego 0^1i=W[p۟G3:bZoloLϷ~{ךBm?&0Z`&\w/ ez6k=r W- ݦԉJSBڀJXrϠObW½cq>MY,ˮ!=y{^vj<~!9㪟}u`79oLjIJMyJb6_q!M!v[ `2r e0*=dǡ\L~^|LL;Luu|E߭/#(\wDThtNJ6q(g t M`Fy-x7(bn\&@rDhҷgE8=Y2y+'8.tk`hZC)Me8|u} q&.:D;a‹7c^jb )Q;H#m$6*۽;m޼9x#ϳ3x^cש |ZQ2d"bNZq\ҶG?K\cӍ[$nI3b4s7 67wIFg)_a}fР(::aF|ƍUIX1IzܻH6SOܒ# 6Kjoqyѫ AvXZ jKx0|CjU@is-`{UL_->;||E~iN[4奱ˇqDz~#NE6zpSpVja(`su&&zm0),;dDkRPk!⃇ʳ8Z۝؀葱2ndk&+: w͐iVoˏ4Ԉ!MDswjΣCXLǹlzΕ걷i!%_Z~&B(HJ#}m7Xhi1.5)>Eďi<~*##XH ?pNYFb\_NEi#EVf]ѼRȡg:1`:1+Vw#W\굙ҧ'%i{X0 &ki/'19Ch=q8񷤤p{m'$) BdTxMGC/p[zs{`f-KOk"fD>mQPx޸*P xT-?r[W$T3BJ֪ ڞhYT`J!([5Uo,2~9l7ծUӰmq!ۣ -[rMBGfgdqؾ490uW&O $ֲH0K8wezcs\_V8+}є~Sn$k4yn;GpZaF s. *6VӑқC8 B9s83pҐ8eQKOn-=jUlrĩ.T 2? Wgwn֨H%srD8O@ v=uY&5)"obD7l'tdI}y95T$GӞyʓ ҡ?fʣ%lR@6(]vVv8vAam#}}rO8}UٴIy4VDdeR4>z[6mK%,,-YPà{S?dsKS7 /1DW h~^)%qt>H^P ԤۧaA4B},֕? Ĵdӝۈ7!A<:Ze%rE&A]3C?Kf.cV6=<4BzANd#]҂p4KZ ?376 _7՝$Fh.-9у 6Rl[ʁ+K QwɤUBNV:@FORA'駞jJ.vR={dͥu&II oi.[I^KBl@n$)+L?c å%<F獁M6K.&XԶ-ıȉ@K!%^I43`/*̶ >;VQ$yĤ,Zmp幒0rp>W|(]s@m &vƳ[g5^F (gA_azDѾ ݣ 8<NtIÔUtԪ@, S@FHtLuQBlT. TYgP #P0=l={]<&Ć/ G>e8<h^fg٠k/E;7'TdԔ"6ܼ'HPnbb}<&MwiI5ᇤQd tm(޹7 h=Zx`;k?Bru!|Q"S!MvZpN۝O^9[ Up#\У9D/+t p5 (xđkb\e^ dRt7Y}qu4)Md,QS9goa $jnG\Z)wm%GۍL|6 qn4fI /T2;ZѶyA:>F<2G=k#{Yu@JYRry+̣RT:vڡ:z磚{@r6 AŽJӆaCi(CZٴk.gZʶ;?c8"ڵlMSB<ݏDtydr%0{v4|tҜOt,ԺTP= ewd̋7@6=K)V EbP5yrHC2d²B0ʼn쮊!0BkPH<5ʤO^Opx9B|䫦|񶜐M$'2ڌAʽl0sԦ-96JIdַja,K g=&.ZBx*xxL>,#LE_d(qSd@nK;F-rowa忪R rOݫłnY#ד͎RYOI?S9:=J rYqYΓF-f3ixnfnVmշ~{gg#!yO80d3\i [dvgBx¶X g;Bw:YS~9zZW!mI\im3R*h3̞p㓻hRt5J\5řP0 {$Dܚ)#I'-`ɼtP)@ʖUZPr0:yǕ0)adVt,mjxH-+_Ex#AgiVȭ9@Ԙ"TIB0{7s%16P,`J_,"- DMkI'^z#My\!?4)C+ǤқE2oiiz}pvJ6ěT,tW։=gaWMmku~̗7Ek\BG"\sy{] y9 48#߮qz)}ۡO$F$rRTqWat=0|ZWIT{\|2z<:4jK]n;"m*W+cY 6wyORWqiJ26Bkwꍓw>?zT1-/X@x @1@%n 7) 49gk]EY%}q=R)ephYTld]1M7c,wU ncvܟ?n zh]aGo9s6;z&~MRCAT6 E)^1{A+uBzF:Q޴ci2z gO:囇WעCO~5'L3 YIX/ZK u !p:@Uj[ `.bKtCt(7tD mI(ptuw>^'w3Bl.]B? Qyby#Wk$E>RA7 K!7'h~Ǚ2X0 A-b~Ip6{ ɦBwP*2ΙM[>8r: ע!Yi.R'wYWHu9Z`8gK*,E6%ʈݫ{,D5@\o|-#88Oġd^mg˸J H8wemIm0^-Ƕ}VTބ?{{zf2q̇[Pդ\n&ڎS̗ yٌ<rLHzq'7tZp "' 5tퟝ8%_.Ȧ\U"b/ P2yc;hRo֛ l 3$U/)ã AWI( +˱)՛ /zI&U(i jƤ3فPPhCWW m3I Of,1Ųr $Ʋ6 eBQ~v%͗?}cz :)ZC ҟ3\8~N a"ꊫ<OQ3RN[y-M{1!MxGpe, , LC!nIG܏DcVe8O#v7tL>gVI/(i'mEL =pT,aKdq.J /C+ա?C\<׆!grz%UZiO&l@ҥd3= ġS,ֹ9|8O-/OɎRY pp8,,wJB?S($V<0;T aܞtR#봱SZ6Ļ~Zvx> Z#YD[VJ3TO)ee, H BBc{*!oHYu?\EB@Uv[MtL iEr€0( jqrOx %hA4Of8i cX hR2?lG`Y @. }&YIȅ G=\5O CSeL8c1KfG\-8~&mi"F( 8J&3k0[{M(M% <[%-"FyFj<.+$ψ*%Q5x獨lShN}h_|yq/Dt8-k'E8_ՕMub4ӯkOmI.('w 8,NTdoBIE49}pЂ௤<E_O4e}3BU=.mX!];> ?¢i(cDuIXjml2sX^hNdTBk}'bhmue{pǩѡ+2Km1ۯ$$3VB>#$DCYUjL}<#@+k,6o. Y$Vw͋_px\wz̨Ej`e#.͖͌,g* 7AL.١P(UfI2c :G(O8X ;zݫ8'E%J ^HvW,9M/׊#[++PNq᧝Bdu-o|uӓ!BK0AщH* bvQjDXʪPzRT{J(B }{j\힐![Z/|fU~g|u4Tb~*ɮz9I3H- )$k0ɸ Y'_&BuBt=JR_Kf!EAW\Rk/Fi "6v_;2_~ SN'bq^+Am5<+5OFx&'];h%?Jd9 9 c6yӂqZ +#F>%-ˋ˕Mi|hOl0íK2#S ./gpΨH!2GD_LIH)UDdўQəW٫|Z(NYy5W㳵qaĢ4P<Wȧ6+'0|}g6wvXVZG eop8$|6lle#TkEwѶcn:L9:/7:  1t1))_5y 8ulloXN}2q5 GBr~Չf CA>W Ogc5*o-`SIlQ "Mcpvy.耸QfzFp}i{B`T08^t5QWN2519Sj5K!A-t@m[;7.H6.0bB_M a.GI>GXg};T!O `ǡ|osAM?6{0DK8rj4I+Xi*JS@f5 xC*$ ªeMлX3>1ֶx!gQJ:Ρ )J13KtTYB&LnHE X3LL$HS7iPc3VD{ O)PBdTҋ`͎SruhLjfMPzHq3mfNhL)@A]D XTltcwU [PŽVfwLl*0yˇչs~ZǵF:זW-Uyjklzv]GĒv{3Myu&A_ȦOQ{=6\xx o$VU Rb( UA1n,?!2XxEi K0J8MJrϩ(o{yAKѓ!!1G JUјQ:Bg3ؙUW ,˶)gT_R.1yM/E&ك]_72tӹi$j ͥl .vJJ| L .Rޝw2$ߟ4FwF^|Ai3T*2)0&>QΊ.8+z7ALCt9]!8Dbw߫e6^-Ku}9lL!xp}(sSiP1#ra$?UD{52Bi벌R2K.zT^]JF".KSyfBy"~^/5/mޞk aU/d ׼^Be\_|ve1H^P(e,C@3 Fg T56SN_ZJ1$`>c <%c2A XDP ¥@sp xT:УW[\(P'sF8=*'"S}fQ-YW;A_(ֈ{F75o`hO79a%Xoe4 s>"CW|h=&㡱αvFI\Wљ_X3,$xu*^ ?ɹp"<'NI^]K,XaBpr=YrWμVAyi?jE*+ċL*;5.fӷ;L?t}8˽ȃz Kc pN%gCU/ÕL2)~p/oc=r뒥 :Oh[)&&`"`6Grn"var hbi߳BHS-V=!cZ(t`P a9{rg'H GTҙ/5Ydt_n>17z!_$B\7J )~ZFwzqsj׿і鈼O*8kdn`PJ.`5 ,V`t2n PNX9T cb8yDrI-iU9P˅ pOn D 9`0ʉj.myVB"k j-)rtyҤ&IIΉҵ9Ƚ%%e{!`L^mǯ(%A)8$VTkCy?Ospbjr,׺g8PV9*HMw҈ʾM_-y !*/5Y}J|BV4Cه| u iZ_+zFȲ鴸SJjnf:\0+#b]*pDsihVM+x%QxGH!Ā%}ЪjɁ"Jc$a0n:Am }!52XElcRԴ_' !zbc )MeE% 0a_U+,.3}w5~[Mu]3g#rۺ .W36ù5,ZQ1J·dT[kz}~66w\N }t1 (Rp#r@vKkZ ЊmdI{C+2$3& yC2k2&u@B$HPV>\(u8g*uc kk7cAA~($4V†yG;Mf`[L\[V4/`isP",zt VL$V*38[,h=bVWq8=%՛E.Sm)ғkZHI!҅5[iWL0̥"UU|ok#M* *#m:?Oo 2K΀ŃtΖ&TY uUftߥgTOt܋@ݦ+۪D-%vE Ւ^-E6ħnT,4hٮ @tū~QKg @h!Z!x)#T )Ҟ4+"}t-[!W*2ҷ,A^[.ܐ\v2#CĪV; +z+ &r+0p*(V3.AXcb8mݸ*nȠ,|}N%-wR7@3CDo*և!Úu&P';qԪelO۫MNNnfc#5mF :דa܃?^bב % a&xY).0nuXH{ 4~y_cPJ(>f"D :Q̨T132ѽ*BCo66†q&4]bOa跆UK 1 'H9 [$Oj~A":>*ŮVǏąEoifyo.F:(a{-ր|J;PA8\%qε@m1_X2xS7L3v,ilZ3p(DnlfZWhʼnz jGd\z},8Ei8}ܦ9.Lx#QU~j.؇RBCksQ;I7s 5϶&%0-GǍĵ~_\B6{ԍ/APɆs WVK77'b:M|800(( ݆n"-ĉ֯7St9uF$Vjtʌ <TlĥV[zR!lKd|/ L(w[K`;юD$GC#񇫊|$ȗU(+*~q˝QGo:_Q/px\|%˻]}JƑ N~&ZrhgJ- aZc@Qt,@sn4F/JmE2WRoUʌb5PS?\swNh[_@ < vulĬa1?䕨"rR53QTBE: ~5`<܊i:)`DЁ),5 R 1rTǖ4%'C&z]p]>aG,PV~|Zj3z 6yJPt_޿ }Iڽ eJC9zd/Kb&7-ԗL]"k<_ :(3$Et]J~X-72&9إXM=!Eq5$*-fx9v SfbTU0D&LH2^&lXM$eJL| Qw?#تؤ %^>H"b/Мb=dY\ؖb*ѥR|;WtE'}JJ)l.^r2p}suup뮠TkP&& +,ЮT}D@q7$g'nZI86 iQc wzka!X3$cm13$8 7t*^yߐ'Kf@}P?U jPhTP n9Eس3 #.۵.sДFCJqF2Mz 2to?S19sM{O72ԁq[ex9,̵ə#G+Y(xrPT|HO_a $:mޤ<F' jNn~ao0e0+;_O MQ/a/N|@bUmiqEipP L9D[~.fӰE&]7 @W`j X%gemQKlX vGS{pIwi)⽂a"O[*YXAlSHx+?"@:4N5n{>8KD9>yurmwrN˓gH7$s)Ȼ.8PeiirŐΣL)Q*kV\voA7TmAF\N'bn뤸pr;9NxRL@0_H9'q,ſHw~-zᬸQj9rr_.nG,cgU5~ߐ%;1;0K*V}-/ ^`XRR@d =1פjzg Ww–5౅";<7J3_L3#MDbd5O{u EiN'2ȌlPB(![r=ŞVC3dT2^񹻭2|" Y_h+R7&< e >ܳjƒʜH//ǩӳrtRUʥ/`yh! atN5dn7of*.x SCMt:./lDʳ-0[z9ͽ5?;r,67!nVSdCdϗ4!W{ pY-/s@;_Gq|y>//h 3{)> ݨo?[4bb~BC0ME+}<ߔX l#GH-*)t5,l/," nN„T{uׇoNl?[d?؅,Bġplo|qlgekƜ/K׿x\ZHj,R U?|FNSWZ}J;T'/z8F=6W^#=ev^"ː:]}:=m;U9t&p j+|rz9}'b@κX*'iJ"auOMy7n6QdBk]l/b~OӧCz祖`)JaH+6DVC)&pv)u#LrR$((ē3bwԳ8x{#JZ'r5R6T"/J5NK(+m)tP%o'eo,x0Ԏ.!zIߙ>n-#v+R4ד/]jڧE<&?圦BI^F5]sʗao9~*MjGB; R}Foa$jV ͲJ S< нʗI%NC,o$;Uc#mSTgbQ"Z+*n` TH1Oa_e$pO9"*_s:3g.R+ɡ¬[|q*ٖBbCZ+Ѐ im,/JRT.j+uDr56h w|FF>VEnJc9id6~E[&9>ŹΡX:I;#E6O]zzk꘲~ jy¶eh4^c0y5.0\Kgz*}̈́t9)8-IMأM5Uz/''z!<i X[`wv$zhJ!MtGǚt ȝxclX_|Qb'n\??'FuiihfWrM ZA"0 fo?X\Ai. ҥ%[//oFoS=;B*q-su8^k[k-[~}tՒg]<NycMi"5E\hZXs20ݼ5 b>9.>0˛l%5;XXSֶl9/j>ľXo GEMrNxsgA(Sl")"(|}JńFC'ȑ2(Ʋ pD،)1& 9eɻ/M{Gj ok& r0oMA΅* t }E(~V/"nC+7Hג#L%ߑDv\ضVn^K|ֈs¥VhaW4p*jGCqNUځ'-~֜?>işӃؤk/~x)gP0v@ˀcL.夞-L-{@V@2f&bO0fZg94ToIX^S(}5zBBX_YXr-COu+)&2cjtwWWr\D1@bzP#%jHpVOS\ T5{(Z/ 9zN'hz-®kB>H8 eT=s$bx Nҥ*O&,4~ %o{ӛ+kQOxng:% V)Ymx9lf~˜wN{ɳ*^eZWdDB`ZA>^Qjij5"o|&nӞolDOsyqdW`8F¤0I1s6}2Ibh::|;tb=p"KW_4.ƙi}JX?O/|Əs }y|'D~`g+!2P !<8K2e ڭV7$43:@ gbkֻsk/yUҠ ţV&dI u>Vfz[.h=6qNg6СTDw $*P/LltyFQ;;W"SN* &j喱<#ӆ=_!z UR/w9VM 8pw +q<+VJĎd 3@IVsdL8 ԂlO8d{6 "Ȃ :-<>Q/EQh6tQzKLʈbevive%{4' =Ku!ڥR\1:o2iRɜ*XTN{rhPeUfJDڒU ϟY#T\"̴R80o]Փ^0;J"Ye K4D$*E7>0$P "8imObWg2'{m|b+Q&w[MmϜ Ptxktpjg\[~|#xlx[eqQt3Q~%hh.Ǿ"~ґ;i'} DPhf5! śX胪KXQ< b\`EfIQ䣀+ byƿ?hGfO"&1_Jy(|I8jO|uO^*XrUXiKM6;repH0Rw$FoDmi{wR }'ПKրd5WY oV_V)Qu S* ӧk7߮mדظ$q*%)e8=Bf@1?HQ2խ׵$Ӊד=бM\ {@+pdܱt#n8NP.2zoi ZS/e*a4aA#g$%!MY }$&pK+U0gT^G]7=pTCs)L DAUKK Bh@Ay"8x>8M %i.]PC`7ƒtBque%<{8q7Z0˜A@K utoB.Gk_!Impc"Y42IZv/`u9Ɗ!4̹ӷ 0N76ٍ"\PPxUNBy.oxS4/4rD:G]`W02+aeE4kS-`c%WtKH;%H4m4\͠Yp5 njRgSae]Vog/]Z*hH9o\=S!9I0xB>H:08^}UxmgM%=m YA?=VѻH[?Mۜ4@G- g>KCUKˁފGl7} T#W"+Rxd3ɰzJý]<`4ǫ򪸎vAÂ$:o?q5-"A FX?ZRv `88|8"z! m %P !*SCBk l3a (5mݭ}qLd?ȮmŅ>vٹ@@ .nR{,yI6pA8fʃÜgMdW"4mJ$yJ,G&P7R]ϻR2{enůه1m ꛛtDXbH̓vc(4ec"lDPll )"m(Ku9f@~ؤz$ R'hV*ʞG<. kHk tl}m+C˔ϗTFH>]P.)5czb^gIRA5![TxS`DeIdљK S`gaJc*\W(D>1‚NVo~VzےbcS˜MܰĄ3%f~̗_Mq͡8pn@ ˼\H!BȼtcgLy? F#z+&Bh>,4s / 3]IF)vayWfCZn ; yJ$+b4¦sc6$}V/^pCϞ?G1&qsgB\#_XVm!%'wq]ڨjfͰ>rDIcxgp4&nW<|e= N$E%j`Jz7Zz$Ng7^gm*Qn|6!uEF )PNʓNh *oAW:βyyt>_ϵ(yjѴ"Tr @)!&"3vxCQwwH sxuJ;䰴 Ts '!kaۚe ٦mw'EXӹ{iIc/a= Kn ¯Fz Be vcNҾR 9+7mluc3_Ss6_b-h3lQw`i8+!P611OН r t EuIip]DIP3&XfYC.%ү|ǹP\zkN2 OA;ʻFP@b\6 F:5h_z7}V'Sd3z2ꯞBs`] &GcEZ[|SC]b -o@Ͽ-XѼaudmw]D~lc 1"T=u$p0v:nWWU>9vԤQ.--a\DhQr` qC/6t"';a`B3dM?|ye\(@d)NE>I0,=U!.{Per\VةZlE C؜tfeg! ΄$r63zA9韃NVC&= %c޴/J6դȧmw>F\ǧ\gZ; [%ELp ! U1~=c$4\lሤ=B[g.]ާwoފ@rI e"e^XhY`H#f6Ȭщ©g.#,AeT|Z"3X0Ob*cֻL( $yxѣt(y - ⥒^ 1-yQ2kSzds- Bj+U/K?X/|j6L5vdH0B5aum7\AHm ljzhI+B{u+#K|`¥ 4{C-S)(";kb\UF)N ,,iƁ2.ȫ[d8$[B+eHʖ,_SCmD`vGAa: ty`+V©(B+C!=eqA@=o;an{8_u\ڤ-\Ja;Fȷb7d~<,wdvAF;x 2鸀 'ts¿+rX5ʊɊ/* OMj( K `eo*mh]ϹLc ֛'هjP>!pIs|#;tRuyU=v##4+lP*R2@L XȂ qnX.f,K&P : B 59〮Ͼ5J!יG>kex&o7Q1B>?n[yоk@!S4y:?7°'HI綢ʧ*lÙ@ʬg@A7肇`T/Y>WxsY]T)1 ՝I\bw D'iEM9l{j@Gv.`W lJR^pZJ1LWCO_mm9ӄ15HƇGᓌ* yIq_ ɝ(9k"!)bBu~)]bY$xH=t{݋1'b^R J Z/R!݋խHZq<ǪrݑZ Ka*VZs8bΙ =' ÚkC/G;`T&#,+o|)hSeYٍK3eυ 2F{!ҋ \XDt8Uܪ&=O0⥚+PGb8ؾ~EBq#<\d9.;;۷=)Z^THtnpg2P,vJ-J3'MXU`!4#B+KZiU,dN  UaGUw@t kC9U/yfC6u6tlo2+@E˅r{NpˢGHzwF9Qp }t;ny_Kf?P^^$)vR+VAa%;\b=^ )~exMo=|~{ZVm&5=>uPT A1:l=FAUԕ *6=Bdݝ\] nd*p rbcxRfPfm; ~OELMJGH1zvŘmYp=&P}M6)NK4(=u{=zK' k1GHx3hp8*D(F>tx8z@q BM2(JX]˶[.ևB\~t Ѩٺ)>y=Y%wkxBp3Y)V 7>,7q5q*$Ay.$kA֠ cojr5 I `2#"G>ih9iHHy+v@}^r[xE9?{D_-gq{y}'q2Ļkro aDYiI}ٖ/*4j&R_e |{Bk|ppl\nY0G#I-DZ@aoG+By!egJ^Hx]獢6LNIU " 5&9d|2̴(D=Ū}gjN o0 ^+re :\{BE$ML̜Sges/bcǩoHY<6\Y\%@ 1"ZYQyd33DДsRB+ ܜT603eB54ezh~*rOF;o-wYY𤧤RIε$C</44b.2(SsUHmul$x6oR<|qSi!Z&)L`88S+|Nߜ˭ 4(-'>7k1n\>P)SŵDw5q9*8x'Ajs7RYSİo"m(r)WN%yH;ZwV5.T&ث )=/Eࠖߠ˃y:"qhGE\vVE %~kNG4-ٚs@й#6hY,B|zjtP:]M;}YUl)$uG{ꯨjJ+~uLmč+y' J];8^o2ON/DbaTAJmzN\ o~ڱ5ۊSD1dNnzhy"F=6Ȱ>.})AYTGPrM#Ӡ f,lט \qZʘ8Zr۳J %+IuSVg.b"Amͫ8PNa~S ;“SNǚ±%ȧ8x}rۛK[E{` [}Y vPdU{3 8)XpIkzd3t8?>c1/YD  |sUc>rN!j SݧZyaO'-?Gbb7n DL?$lTPy$T'=[>7(؍GFNJFinK, 6[89x5yBз ktw,$oZ[V?oXSsS$<57,+#Vَjfeo [zKWaPaR(mul {q Z㿉!&nM[zfiJ:$+ 5W݈1L>EJhI>!mf=DLhlISш2LZ!]2`\ktgў.{TS4@mV7﫩; v|Ǹ#ufurR(Bˉr?H^2KL INEj5WȌ}H8a0r%!HhIuВj NSfZ,Uށo )&/Ї8g0; $^)A8(RsU& č܎}Pҭ. )u0XJZC;[K I9&de;JaZ#?υַKnL4zb=ޖSK=<ܲ 9 $}oݑ>bQpHj[F^\v\1Ⱦn)Q!a)d.~:9^IP.ft\]gm|_ jHŋe#/ wrk @+vIPJGѾ4:&y C,|Db@ mGbx=&MɛggK&nCl[%9q'"̴BC@ rM܋Rs&d:<&j?W}YM>!?d j{/+J.sǯFhܴQv%۳\(\UYv RX2rKb\%t)8(_gAx?N0}Wo)Wj[ [ vVcqr ""dyx6 Ya[4=:(TC+t b%Rz5@XV ݿ+זfg?>imbliRC֗mUMn5(_BI^%kD^|/%gag\># Uz }&g:4k5A^$f,ԠT۳K:?+Pio;A\ɗc<R ^f~5Ch* HFR<+4P6r98o~3ʏ\hL\6*zs-:0OFT[R ERN=1ôrHN zAzYA 9T&[2 촚e'C.2Q\,UCH[-2, R| wX% K `GҩM/!uB" 1T74ͪ8,`rH*r c +:yrUJSvM^r&Qh|EE̕R hō+5`,P& fg7ͩ?1֯@ĉ$'Y 2\s:m A Ok _3Z~aJHbJ2j(BIb AV0!.xIQ(Y1qB ۿAԌnA_e3>yBQՀ0me}8N83mFKjDQ3as Lz/ō=ZpH}rޅcus-cyZ/o^׍_.}m-Yb8,hO񿁩8kFY=?:}.F[nm|pIū;HsѣMio/Kzӑ ~52Ss w׺wM>bɖwثg[i.}'7sfqN_8ATx|mE`uiXDOyJd,z,A3_jhA6`ΘIzFsջE4Pnyq,9%Owm7KIB3dk =MƇ=V** G<\GK.E!ZbJ[TK'u5*t@Հ`sxIF\e1..hCS8 Q D o7^}(ăŃ9ziĆrnN`JZE#Y,i9b^!\D7(hC;_r H`AtpTr$܂iZT1%L%Utv~Ŧ/IpKO9D3S`"l*j::Ɏ1Z-63FŪڕqAE ȵI8s-^%bŏ^G*H:=~kN(x `s%ؒ?d3xݱ+Ym-J)lwע4{`rZᵳg\W5j.X"aZ**"ybYasYT"I&\fȦ;1Dse'OpЮ5elceZPdra=it`LZ vj;(}B 9= !W}|xx{\PW,\mS%Iߒ%ۓB)ev2EpHgZAC^*sfdcVNN_)NJBMdc_٦7ԿȨXM(˚SuۥT&5lϷt47EMEKD|A#Rc0ŅV 'ࢃo\B (xZФ'#Q krbKk!U4gHUKZJ#K6}~wSjHү+)HCӲĤ^:k \ M vHM۫ݫ%jRR?kwɕ%+!Y@r=,-j*7ͫ$"H@mgG<2sg]N^VHDFFF>h=&fS\ܐkD11 Ӏ``ϗsbLW6V2-IŎ -w* C)5T;qFN𝖖64 ЦRb)@ 1-Gd5R* o''M*Y)nn9\[>sI")t4{02XP{.$+xj4{zO K  wanWnȭE'ͳ֜0Rڝ <ńRA<i.>y>?pS 'G83f},{#9nhzti9`B{h _ DJ/3KZ}t+0= í0cKʁ-P1C`J,al#T^oˇGTÚ,F#4o5 Rյ$~8p-ATpFg2+>Ss$LK33Z0 ۰>d呑'ۿl¯m7ʦqEJ^?gۈZOnx6A@}'NI-墰^! ڃiˆ ҋH%Z(E.A#d9W-R-pvC[bIkő20M=`ZpvX4>"5G[|`U>Q*]üM: D,Z#I)^:X,81&),Por#[o}2[IqnH]Sت3\.jCQ-tRN)ڏOm 8}K3L1fZ̙*О ]Xe5Koη Yjzhlʘstct}r!m \r_09<BM6k9Kg鲮w" F)'ftٜINwIM"YIp̛aD^ӊզ<L&< +g18]%/9Vٍ5u鳅كVW=b{֣Ţ2٦ c56H[QMُ8P6_=`H<|ȍv)d޵>dr~DZzJ8Lubp*~)+e(#/H D`,<Բ/"2h "["cOVHkš&/>|r+v|W1GNwMX Gy'9Q$ib[.4#g`%Θ­%dKvQiqu Ö+:uTiBxgL_n.= q3}ۥn6r5MxNmxKVx8wsl `Ee4\9** tT[ke%[h-)YNk"[u7H%܉0I\MLW@тO>`L+.ǰ6%hZWH&x G?# g "@Rl(brY{ڒ];Lis| јgϮqp*ros >FAήK72Bo3Hr+# X\7d5ҲшGln4 ߠΟld{x vmjrGɿf1Ttdz8O`iܺb:(At@ gcہ7; tlvН]il}Jh,`tE98 ]AWx.4ǃŊF&5Ɛ8ds|B4~\#%FQ;~w(`3z?kq#Bl^4fb 3vlP=<==9\cwNmހPʌ%*(8pw =eB)VUeHȞm V jE_kvzor[&PSb^ z+)/+|?X\i+pf#J&D6nyUfA\XIߨM\sмBdE)c|~D>qmF?#9t9wT9PgdO8>$l[Șxl )l@&UfEVz×$*B*Ebc 0ʆ4ת W̢.͚]6nFr8z%kUobkRK)jNB ll]gls1uF.W^25f慭طwͱ7~@(( ^\?^y %)o:t*:;Fn@QVѸ.O Mڈ!2̦"of7ΞuԣS( eT$u]d,/j7aI%]Fv$@wnԚcI*+, 墆q+120Tt_?B=0H/B/*AKrD-OgEw^$5n?NvefP6{/?8.w tsvda)x&k<A6 $j2CcCh0BZ*pT,gZ*J۝5z.;lm0V(uy0l~SU1bald!"=0/ݗJ"E'DhNܬ-Q#ejxT 7JW./p'+A0Jo5%:<1#*(\}Mf=gsppfWl+ >ט2aC}"14K% gXVm$z=:K** ŸR.Y[ǟh.֓Y]h$K{MJo):"#)xKX4 ٪ [% Q!(" *TR*LUDX握˴sE%?$>ٿѨ$e0_n:*&Jؤ^Ņ5H]po8WZzVߖlحjٷ3$A lqcg|?H.W~R%j9_}I,W+8 W'r%OV:h?~Vv t~߁,ΥmXoĪꢚ[{^sgVet8CC)('"=/ȻIdy*ؿA$OlWFzjAOY1КLI1~ K~d%iVIv? M6$KAq/:*|̝-ToXX(d dzHg ?xCX8GXDdyPy3kb<o4+Me_Ps5 k&mᠸݧm sg鬌ӊLxB .* ތWw혫'ic vYC}~37d{!*{鬇fbn鴥[frx1J[Q-V6m5?ccKȞ~=+QͲ1z.&p`Ia2 1_GMpJ |l;T2]XVI﷡W,o@!ʨ72}}^\x+kxTtTWRr/NF#2>|sݱy+ oDQu}g$b?TVeAujWFb΋z-ǏՃ@[Sew=6d>![_e] Uo\ax\T7CaA+-NS! q# c)]>)}Ć9XڢbWJ[Y̮mlAø$l7ڟ_e2dVO2sеF>9,(›P,揻Q4-̦im-6q*MfhwP 5FJX^rΗ3XW4Cw7 hylݎhF&MhoV C49z.ӟG= ΊgӚhWk߳=ɶ|<=D㩧656M4HQtR1MG+W+m_V!ҷF) ^R4k!$T]ːn]sd )2n!~I643'}&݌7|g9PU(o;-0\GMH_w/<<ߓ(ZڴIU >ReA:X$ΩEdR24Zǿ(I0gjzh(`W`7biuM%a6I/"S9cwnۑeV-eaix|hrKSS,G ZmXhxiW@7/[[OT,/6e -'{;[嘟k,s5Lme1bSV=+D "FB0@%|azu`g?dm'r8JZy}s2r`+4_l5#:s[^1Nku` On2RQsY`7]Ŗ"7溓b5[EH,P2~H*L0l*.s~SQ_Ȑ`BtCe$\y)ָh1wՓ9S)2JXهFzCCf4bPeOC7x\gF|vtLc -fz7Amâl50f\aJK뱮&]ޠj a:8wr+36jtѕt_"NHkMIaE#R!z.V2L [yx-xvSvIl43>S'777$}ra69hﻫxڛlnb߭ϗt)=J)l$ުl9E- >?Dsr9K=܎/g7 b>{ DZ3oعpOczQtU Vk_~qwu3Hqp`5oR&Ċ{d~܃n.f)LYy3 :4; 1.!M:>n#dZ~+k(VZVDHy+O,O݅jRl,p|W+΢4n[+q16F~#SR7륈 3#+ r{)ɢYYf p0W(Yh$DdJU%3kH?gWO|LKp|jk}&ڭf/EA[T\%4ґˤߪ %qՐ b;jD& u 7cU`wzww4v Yu(M?سר vuͻrHx6PG6|K4iq |iaAs-o#ʠb*'sZPRsMVP5,g&#` ;mw+)lA4%UOxNfRU*{4d~z`Vzd.{j  /%{x;ᗵw-8Ͻ!F'e5䯱v]_1|9Mٖ87>f8у'x͊guPDQ-%V)o@: Z~hЅ 1>Nr&&lOFgxػ|5)WX1M+|XZʼ +H$ `p ƚՋ)*lJկZ$RA).yv#gdn~qQvL QHsnMqC}oJ5l9nmIh#Qiܗ:>H)ҁbj'XADJ %{Eݮ ״cp ZĮi7Z}wf9 lfZHz˽G֨3.}׍fYQ+/.df{͡Zv~:Z1bYC ?M6홻,$jo `Y@GOo( QY}sZܛ5.)9DN|Scpu]L?9cT j4JyleщA7GűtR^g'1"ǽ0Ʒw:<-LfiD6)\*UCHFB0 AWĈ]*V)̏sc($tCGހ'fvc: T$OiքO*D.C/"1/]tKI":Mqdrm7U?h>l4dsH;.g8ZP*h8a"  lϥ{ON, $c-Ӽ!<L@L{UJ[g`\u85:Ԃ qKFhoIyɾC0RaMWwT]RYq!_/%S۵kdHҾ1w?G:q5ѯG՚۩G2k0yì*+z&ρ kA2Nչ֨&᯶VҶ/+;&]8Wuܗք4o8ܕ-pM^ Zkv1ϭ(8x!bhM=W?Ҹ$XO#<݂f]hS#2RP)G9b߮7{BP+a'/wsE"g *invf*MJS)OgAH;7?zJ<d99W Ǭ=|,e jW$Uq.\`t5n[ʩU;EjL(#=H$!pG]!cy{PKW%닽[lMrF_Jƥ_P, W'B,zJ(&Uf?TE\9am]4 N8e rhK)Op!$קf2o'<7n)$MyZ'kjchqs; Pm| ur} u1mZ1&Sj1QDKTWܲ7~Y$&]54Xp-}ɘLx>&|o&G0ܖYDF`3:~j˺@|zX 9,<[t*|?ŤqRMgt:q;~V8|;]s3sg _/r$:1k*@d9 V&w|݀jLz/-dp"{YK˅k9M>OŪAo3 43EɤĎg㥔-;o&鴔IZpXvdN}'_dG~o4wSqiA֟8zd7Rf!~Nw$) }[r|o w+ tp]W?# oK]O5p0̸^',q>nẐF>9zMTiGD34WT(og7̴oIr2Wl%v'5!˃[{7Ɋ_Z{9xo7llj;A':+%3"B ['ăV T`"6]?OXJ y[o*/*B[c dYqr&Kl{j\'9W(4`٣S"W* &3 ql+M.3i?ailm%R] LDv(2GV{?\i}+[6V RQ3'l;D mt rqRIgAB ?N$dC[)#R C[__ېzZ&Hl_ 1YO/yoF#>W(oFfCɬZ!XС1&xdVGхЉ&SzVfy]0Ò8K_UJw)e=wPZ'vYR S"ŀKa4(%ްlt f'<.ml(=~\A.&)9:>;~?ҿ'߽9<=:СqCVj`';<{ <[D`D- a#:絤\l@J•Lǫ;[w#"P,JI Q$vJӝ[f+΃eEYDf1&ސ>oY5'0bv0eİhܰh7zDUfKk/I:7#c m+)ִI}v v_ ){,ZSpUZ3?wv27$qcIlM_ _mClKV~&v¡9qzc(1le({gʽYVmQx!/N2dy&$ry i ]v1(%d;R2_N^J!,l'.lNSzx9$t[m[3vxv>c#c 5Bf6 P1q7j#Q&^5?dk$t^ueߑ,!e0Z*^c(gl8V9 fWe܏WqLZ~O<ՖJ3dS0, "JUEGb:BS^4'7Q:'gH kɦcl'om wdibłoo/L3&nqhnq-S> ktY4^)3Lr˪+9GtĒ%(N@ܝ/7}q4/qS %U ieBVzY<{{B*M̅H)P0;·q>vKeڃL]Sl:o ~X)8B]d $EIłH}3hՓHZYn^gV-f6/%NBM[Cu@Q6'{(r& [eEU7)WJTCkUC'6rv@:ƢB68ruhnE:m7:z|>(7a@LV1?bTsKlmNyīVUpp F囕@l?~%mig}5W<!'TGJ>.[7rk־Un N߾>!ųݩwZf@}d [ .Jx3))(鬵uv}xH׊̻ߕ&.ZPz/g񈩚E@kxr]Jr+U'RDDGW%vuXtiLlNWw౷oEdp2X)̗~6|%Hr?PyNҟlf M1IsA=A;tBƺGrXJSě={<(RSZ\ݷi9jp_jo+-._]I~-gBl_&OsK(U%u ;Y ,SZ3h_/m^gmU[xClBV$ʂ[%gy3K[ː>/N‹/_wad*ף1p,b9C-ĝ-p>ajԃ@!ԋxF`k 㕸RC窨odk|jΜ{VVp])?e|imHuy]gh?gR.a .ĻW[7bgnvYtw7l×yG1fOOy?+]cष$#D KLW4asrh0B $Źgb ; k<3iE:Ye\p^kjKYK]D4~뎙Z6vPuNZY9YdnEy; 퀚$v:EޒHJ>DCY-svx>;7I9*c>%$҇1 btXԸJ/{=fh\zIbp|#w$t*?g?$kY#Ht L?.i~W~ES6W*[l`cc䥔gd@;{~r?t)7q$̈W%v}~3;L2$]Pއˈ?1k[|2Gd7n_(joLCD<8'yF>OƯ?,O5Ư@vZZ81#q,'tF_;]"{ÓWL0Y pHY8WEVoPdiMWD "vV70O.b\CsL~jIi9hcz' Ga[ŠؾZk 8AiV>97*ZQBR[_#r܌1ECtwH@Lmj~hn`&e@X\gDmnLK Z yUiܾmr,a3;YRķ>HLlZA$mib31YR`-U]DY6,)*͛SHFVc-dr^ݠx xDzÐhfЂd(;gAnD 񈽲~8VA_2zhK*e ׸rqܿTKs2A᡻~Aq4rC׫f.=V@&.gJCꋹ%_FU)[.zgg'\tq%Y)䳾?-;l.cc#Xnrޛo?Y]* w? ַnt1Zjv#/EYny!eM2^1(Pki./|I~;DEь`Z}Ьu[Q:iK x>-;Y i /H~T;2tAv|K\9\3RDz'uR?_.tkNpHʩ@w?;8: *V\`'LvmޭjH"GMB(ݚ.A]ۃ^B)ɄkM3w>@K\^ʃJ;/CX ':`QaWe^9ϬE ׯ@WSIt%Be\B>ڤ_e7EA];`lCx^}+'sg9-*!C3q<4s:u/RMuϷk)i˕Nq)jm4)8i/+%6M}@:κe)6; ϡaГ0['gHpҟyRf&a|VXqQ $m1&H:yl<(_&)n c)O4Ou: ɍ]t~N Mֵ&[/;Cya oo7 B^vpDtOnFoW7_-EvxrlXLƙ-AFr@, VGIp~vtw' 2|OXqs_;s|YgدrHxY@ oS̻nуD/zhWRSѐ1HqBx$lS?wò?2=Y։\C< -Vw@,8V+~v; cWZXENM #W %qNC-FDOKlмzJJYCKО֯f\C\TEbt'2/7w3gm$뚰vw^7e!D̽`_-?hpj6?>.VXX!ѼVU1 * !hqAӂ9*2Q1 gŐ,'A- r[#{v;oLVH J gW,]ߙ"GV8+a 3qvzW jðpnK9:_6# lw(WDҦDKO̍h,YDaSZn(Ӵ\/R_q1&+-@^ i8|Kr3O $=!0͛EaIF@q}$!ێ^ _ %xMyq/V;} -OVk] I-1g=9r40 D:=+¶A(s ,P3-z#B+p,]p/’ē;D(%]uC G-zŤ^h U Cl9x9ԑVm-bQ wp"?bʫƇIIϋ@b҈GeaUqXps=FM`xQ俔?[pZ[kA(ym8H4^?{{x M?h$SQgʩth_Zewg/㊵QBL~aUȘpFPj 2Q.ۢjUgZ3?QF:|"RkWtLz0z!*U7)Jv΍RX,w b޾#gtK$Kptu33ok뀪~ Hq<5DN:oܣ]CduM L'gN[ky܍>rTWE?U2/#0.![hꫥQgl?''cMAy /!l’Za^vx4W['-#_tGM2. C=P~X&.!Jo)=e/c6]%eI..T~K\TS:臶9 X!TY lP$s~#o/{ge2JF30wi-L^ZlaB586C{5-v,VX=2ۍ1׈l=4X. _õ4ywqT=5~u0Ukvs+mF!LsEf9Ͻf=\^vݮ2~p!sWMwF|I~,$Y' jR0Fh?\6IlyLQxFikR[W}n͊i?䂗{50s枛rL[Ł&c8>8,]odJ(s>ngݴK[8 ߳ղΑk>츞}8,Vk?6pe҆\xVbaUky%^4V\:dLcLl҈*_]hA9t)2F"uEZa(埾Z<9+:2V7<ۊؘčlxxf&dzmec5i-vhvq%vng߱![^єݟWh:!9;}|VkGQ2!ҳ(j kZ-/ ]$Wn%VsV hiE|c-Rp~߼t}T{TX]¥sidr?P;3g[lrC"?X{tJ8V=6(); PhfZ^6BRa5Ѱ/vi[ĝk.Yy 䥭&gdM@anKHnIҳ.awX,{$v顿E8h턷Xa-xvj9{ QOTAAeIuwAk;;||rMueZ'y3.KA(UEh| >=.f1G }3LבXLҫ,":*CNoXCY֨^xu5D;v N12Q>0} "% :" n6`J\q EzkajLVܡ܈q\z w(u.5db H;B+QV0DI*XpÉK$5hŢ)cL q4QͶ\$ N+vL^o8kWj6Is' %+xNz34tFO~<<}KY> G ,pRV}WUT>2~/+S4q{^υP~~}W=lFIҿo'YN3  q &t`k%HxhpB\QrDmE]7gJR% L{l7bw$4*ĽaF f.%v>,5pv4 :*mbOTʈR{4h @x0켴Dʩlz_p`J.&]~_1\ 7^2xtJHU@rHx#w{3 un2WA MHt?Hy~݋,zWB>z}7rئ]a&!dQFbTE\\|Zn敜t  $ ʹ(z7$@ُI=6J~:Z\ a07r Rq\(Ҋ䕂Mj|^4K vЖ3u}e1AI\jIlVeʼn$`w$=|YƋgaݴo~B <y!z·:-'#G$ۍ鵚dG ҅m ~͏G; kQ\i^e.Wot`N]>jQ#8ʄ J =qX*¸P Z)X '64*?Fd85kfXm-Viln6(9'}78l#9 1#H!_teFU+n7Pa4RvрS=:ÂC\o: Lj[ث$n5H]{7Q1ZEtN JU,9EZ؞m5< ˂ǠWR'Xhx=U;>~Ŧqwxy(cE͸NGq}Hbo~-.B̋ ɓ:IgVzw + xO dH]Zt%h5uuZ m}M8}OQ7WWq4cи M\bHz  1 AzV]E?_(/TT rՅRaF10*;ޥB4PZ\JZ2rt:m#_"v_j"F`HmW$rˣۯn:nY{/FVrג#&S6 ECl׾ 2˗r^~\.zYϥe׍=NP[k3k?wcs')X<GwӺ.!-Iv|,{reNp)^rѓbQx"&Gnj;:35H[֑F-<{= wxLI XoBuZgzEB+ȕ6.V6F)!> = ̭pc8T`)vm&wOa\2Uj=.?݀wE=e{5{'꒷pdvka~ ×y7?=9^?oI>K^_ia.HR\z[-x)F<;tRYTF;9jZɨl\r^Սҏ q`TZc!y-2g(|seL8T?uVE;9vč8gJXVr^640}bNd"#FaL##d.W4/=yI3$S$Tw(k`m#bٔJQ$ĹtA8$`cCN*4`;lVɂz;ǣ`t68G(l>^J m*0gvCOKi]n`IfLɧෝx"#pű8;XGe;`b`~ >P+zdzaO5l !p9a}kG6=zS=.j3P*74'RQ iU&hjz. |<@Mk [-)h<4i dC;L׼eA3t[)dycЯR G-KK*:2ݼS[>\s3I%-KPL/lr95vG%άx(EWbMIt{{C6W=!)e-- "["7)WDgD:uS_L '*ܩΥX }΃XS_z^Q"`Y.du1~9Ġ[IPe\eS0@vX[?PЎHk!OG6bRk#uibm@۬oK-{a i *HWBр$S=NB,  E2͘q166Zl1c gsE.Y!C< A e2np8∟xGLJlj9hARKC"[  >V<J5H'=5rCF ҉h]8b1Npѫ3h@3p r=|s-2 ޓaf[͐eËl3!'ڡG94<~@q~/Qm៼O3'^;YK)qmѢUd ZC[ET)DK%l+.q”(]YeU}'k7?`&!(KBf*T-D*>٤Uv@xQp~i1{ Q+N/%Ujrk2Y ȟ^?:>t.i$Œ0fx#z,|N's^s#y(84z*k2t-݊4j܍B6+:>z w 9}8 ǒFLe ILqp>8YWd^#_G#횾เWgoEns)UhF~cܗq}.8`u]0ܴ{qd@2׽-r֎\M_7 nh5e fu(ipdjKzgC68K]ODx$T&0F[KkfC 61of8;(Ԧ. ֺDyZ>@lq' Hc=$4""OώNt8Oc˾Hѐџ`r;} 5M7" MȖ$b=~eZ3ychz\{NdMkԥ;=ow8{}RGvCrXK}Z\^gMwy\VXhK$ PK nc/4 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/UTN?PK nc/#: tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/READMEUTN?]MO0 Hcv؁mCpFK*NWq7K~<7e06`)PzZ u+AT-Z6DhtYhoˏ+g5O6}cK\?>vj(^Uwzp!d>rCXy2P轧'ᤌ=(=HH8}ߙ+j8c:V..a4O dy>^lټ͋ 8 <,oPK nc/jVj<< tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/dirent.hUTN?mQJ@|6_1>hi}EV IG9M^E߻mA;vofvv7x cCF# m ȹ$ȫ`.UJ;A! {[G; W(גmSוq2cY;m_ YguR `^{"D8؈\L[kQO2ݾUN#i4֜`yHǒ Q'ڵ+9%mwdvuZr\iid<KѴV0aiQ2_͢2ffq<{D#'S<\/qer붏jcӛt6ȄTkQTO \p1Kuu9T5]!mmp]^\ rPC}R.ԟRQ q YJrmmn%3D젔žC@ }7ylBRrY+6`2&qz5]w0xoiXLvY*FdN '磗S&S(M0q|(WJ t1ćt 燀Ɍ@xx/^LJ\ P `y? (t)쓹5jI[WAk\WNC~I?RD.N(HIMUY|-m m '*%$$P]~i#NPl/6'ClxLs0xTuS;;i9#[ĭgm߮XX‡wx)x*(Z[)pWk/fыK Ve2ZC`mDur%F1I DH@?'&)e$ [v@l$ю&R+RD/5& y,tztv6>E+>0y%!~@b*1썩 S/I0&l2`L %]FĎ+rqz6u 'SZ=fKZeL!(9zZ҃U c~j&BTT4 gWgWJD֝Dj Ozd~|-6PBzd@.(-MPypSX/^G[MJ8t j^a[mp`kح,|"fhK>@G^ɥpW5=vX^>zEo<)ެU`Xe_"Ggn_?CieMi =7d< tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/gettod.cUTN?UQak0<#-# o)4I[ 6},[2ҳY2'9MI0wwO Cؕ|x)E.KVf‚ 5J 4 ϒf|:r6q{˿kM/KnvxMpI>d6=H6 &׸M=lFsDՇj>urhtK>>Floo~Ƈl c'cߓ7PK nc/ h < tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/memcmp.cUTN?mo0_'ڇ7 AEh!Q:i{9f~PŪ~@źY5!&Xre'=A*bLnR!4*|2u%U Lx3hpǙ 3)nyA3U~S.h.3åzrLl@k:c-q gt>,&9,ŷMzc:M/St"`4^2axqHν00 _2n1yT;^I#ajCi [ $֭6A!&t,?(/o~v M  ƕ]_MF]:g CoY KԶ0ҽ1T2!R>pCfj(8U3ґ n $B\'e*A"2V }$ QAu,m|l)WڛOƤt1qRS<8G3ك`֤a5SRNYU`!OwZ.Z)I+%c] 1vX{$5/Z~1sPEnvPd<# qMDCNZ-wV+0 \QafL~cg%x%+v(&*=,6sPK nc/%æ= tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/opendir.cUTN?Umo6,C\4(5^e[?sMa"eIhCc Pð=y'F}k4CnBFo$AC(;lVfhDƥZ8\ڈ mo裒T52ĵ:6:_v`#ۥp`mB* #\K}-IKVuUeC+g4}K5 0P::||z1N'O_]L'lV~M/`cXO"ټVv<ڗ YV\RuBǕG ︲m[I$t]w*[BJMl׮Q6x|"#m3uuRY*8$jEDNt8htDSހ2.8T]q_0MX6n>[ y%Vm0 xIDy+ApX|`:;OQː=,Ta[_~Ւd:Lq\T9fڡߤscݘ-1_3tX`BH*}ám bB3e%q>5&[Ia]bFƅqlrRuLԞξxWlKm3|ݛ0U15#aQˢ1VoGc,Ǒn`Dx#";s]  :"a3 [ֹp4ח? nb VVZlq?KOkȱ[|{O.CS^ׇ @Phn_N׽I8hEjKKdgfuЌ0 RU!U%+WXuX/H-([%(xm{%gWIKf l>/"N|?PK nc/uY< tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/stdlib.hUTN?Tao0L~ * PeN()-aGd#8v(JZ&Vݽ{nۂ6(|DВ1`|s/nשr:Beu0<L ɝ08+N&5-E3xT* T;J:"4?Lm@ s?vLq2$N&vvJcȴ'w-7 21ZDeZ2-2M۳ˣFZ>'!*#`NS8 t<44no{ CZ9w7(;3d1_Rp朄パܗ^ ˾bUoLw4DՁX虰Dd$R 1$/33X9ɽvc\o8L`2l8w^c6h9WFmۻMRh]At-W",h[ Zp5%?&%dY%6)j5х`[4&jݕyA-cLMb+7?bq8a^خ|ԯfBP Y211e[Z SIPᖿ'OLgܕѪD7-O,eiTVIhZ`(l֞aQ=w˪2uB"ZK)VM_Qգ(.G9;w/P*`s>;_VTt[nnPK nc/qj]0> tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/strftime.cUTN?Z{WJ[>E]fTqug"D]. xᆤ!$AoUw'$xLGWWWWR=@ș26ߞ1qB;."B0aa6< t|1Dz N*' ᘊ%TJ>x4.?,V}?[$Ϗ#l»! ;9E@g.fpB]BVX0 Bg!A9 |*kNLGjGL)Zhj Gfİ;NߊfPzz~B ;|z\?6wo3 Ts&#@?syQz9тZ<$!B2 1$ Փ3[Fg iXG'N]yD(,n܉"tY?86D3Ⲏ}mOݔEt_52Y#a?sTs?܇@'$&E]@I#`t]Nӻ $}м֯ 35vhF> s0C|sw C\$B&FOVn60.sԌikw$`]Ĥ#\|yl11 {V)c:"Dߥ0GSR?Zg>K&㬖7g/r|vh*sΘ8czĹ=Qa4OsmmԤLhr7p1^ C~t2 ;"p9MW~C[|Y ,`vzz-/)% j96s/_w|oa6O"pnFx* Q| X!@(oK,HYW5=`#otii%i;ftY]]ZaG%57ˎ+@6KX 9'(_ѡN#_00 B素C6MZX$rH$| t ʈk stl/=f 9e8[B\HzgYдm66l/a((Y!C$*]l|q?35Y&vrRDBØp T2ڭ"Uⳃt-kD\v'- 7#t0˰uYZqC~3\.0GD:`x 1h1\ _,H#(>_ϰ<իT!yRHExN?u/\&^)mB0ޒKOK}qj~Tݑ;Q*msT@l$U$ؗu'dft DI2;LQ,C-R 9p隞e^2s D60ÅkQN[{\3X>MB{W/S, ۥ&\ςm/ĈEcļwBخju^XpY;f{߽S GGJv<%PWJVa~_%o`s$>2 okY4MOON( qZpCjLNX8|9% Lm{g&" U w8sAg,D ݣQ( D YTPIOϒ -ۤ+W\PMYh]L§^_A"p?:5Ae"+Z91 )ƃyl$I4cTG\$oj.)d?R-aUٌAct%|l2QGD4$(5rɟ-(͌d?SNj| pTZ+(Numdo{JJƶǣ|xT+=_iY8;,㌮ǻaoc/fYZev68 @Rmtx7eԏx9>7F 0]VdwAן Luvp 515/WKd0Φ?oiy6H=»]| Bn7L-U<hLM(Ő/HĠUr+wÙn[ɋ,ig ^[5xb٭44%(k:{:?N#!s3؃s AiM₆tn0Bj&xA2RD$B6< h OdTa.2EXٚ8C/q9 NΕἅ0eRsϣbMNX*crFWh- 7Hh]gUdf9;xc:Yo?b<[`c>k?[Ƚp8dQ^``Yg,1& : <ᓎ27lYznct"LܛٿEpcbJ`/MƮ<(@EI!sȓPC,P7L3F,F jRxhn\rJ&-+#wl.]: &eUf H>E?ӱZzvP?[gcX>P 8Di()(2__m{Ys)Vk#l ya@k|X^@*6u[۸0fd:B\ܡSC/:ر|v1'j11Uv޲R*)kޑX{le @wz7?i-g&oenQqTg5G3|V}I.#TN{GT{iy>$$e 2 tSA]ګcs|_^PK nc/nA tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/strncasecmp.cUTN?ko66#@7J. @q}؊ln2[wV4.H- G"ëu4>]q,ʪ0*)lGuy]$eE wz/"^B^KM&rԌWXfM[x"~ L&[JJ))J?8 RP(2=p$ G‘p$ G#H8#H8u8ǁq8q8p8i Džqp\8np\8. Džq[ǃxp<8^xp<8ǃZLJp|8>:>g g g g g:j<>LJN' p8u8N'  pB8!N'lN' pB8a(8 (8 ZGQpGQp:N'Dp։Dp"8N'N Cpb8ZCp!8:)N 'IpIpR8 N'}t<O 'I;?T|m_oy75j=#n\iC<Ȇ9q՜&t s0O|= Q/ԍ&D<1g.TD+|+Hںy,ې4Ѐ ^SAL ;9cGO,>wO?{|PK nc/yO< tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/strstr.cUTN?TN0}nbEZVH[uATX8"Tcn#=qm j}}hT9W1B4;LDh[!_``;-֩&opt}FWH%QZ*TOR6̌eH~*p/Vfg,nLWyW4GioQo̙/$7 %Fn4Ƃv$ܭ9.O1jol!{wr0 1Lܹ{CD;o!s}`NI񖺿^sXǞ:U(dbYSt @i|}XXL}PK nc/\I +< tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/strtod.cUTN?XmoH Qì.@`v&,E$F:JnoL7rf߯l{VEzꩲϺЄ.(ksY D 2fвb-"lsjrZkh'.>|G?#j?Z\cO?\q'qq1;`^ē\lz0wΘ1 2s7R*^1E 9K9/ Z#[?!1<_Nfp[ar8νK[m~!g0Gg;zѻe4t-g[.ẗ́[ge^Sw[6X$Hͷx37ۛ| [&R *wOAnJCaCgDq qbJV*EDC`Nv0f0H)dGЊ 2iF"@?e&_!uDy!A0"sDi8M98 +) qy;1b . %BCOzh5ToEu+אoП|E]=VRDYփ8wpGyE<UFϛ_gjC0 >( +qa #L׳6g eZ,76)z-ZTiuiahI8+e(D;Rs\8ф. -FNRSHG@7d}zmL"q#O*7]R3Ycc\y4ȁO92 [.Ys ;ܦFƨ1?B׮MLB<LsϨg1Dv5 6NgT`i{hgiK30s5bJx&J=ٓ^R, W~%ضy5W"&) ך,D$Gߜ2 (Nր 6A "#Ds*$#il.LwZTܿ1#kwa)yaB+LHѷUĤ$M)l(Ut^ q20 lͲ>=HvtS+*{kI2NО$Zꈖ[/8pIU5-eMA)0H=,/JxjN dFkQ5Ku+vLxe7;$|,`J+s$U\7{3Ui#EB*t!J,&!mv: 7pNgLr-=b\Ywݜ5*9);.+]/:{^wuz04]2Gc% E:t7#棱k*j|]LD(YxC'K'e5jL Ѱk/OI'Ó-lɚq]J^yfߨ.GK~oL t SG{C%rs0{Mŵ:)(5Bk_s pI;?Է#חSi^טf|A~EN+" Sz37hu4R_&h-7~i,̋Qn3o֭WooC0=@ Zx8_/j®|{s!arK͎}7%4ELԑ3M#;v@Qݽ2o>[ήڱF`${@ҬRқ ؙu\򾸯=}c5\n\zmPK nc/`1< tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/strtol.cUTN?Umo9~%好^K8HZA~6ށb=ۛ;w!u;y晙Ǔ)$p eơףWV2a  0hye0Q0ވm ~x(p[T΂k%nX2cRP%X_ªRp!vol7)Wt#$194;̅;V@ʲ-S9U$֕?X|<Ol1_/g.m\N/竆rßCG0h03 ƣ7;ȷ%ߗIB(.+jK̊GSq9W.+Om_ 䗤Y~SWK8JbQ_`A-5ioo94m%P/2 n~hu?A@ucPҪwyXt}xqbsƒ;ኀ f'!`,$ʋ9cJf\#ͦ;FN]%a jVўR󐞤EԳFȂ iIJ>is%IgEtb'zf_.WWpZ>1sEb+R[+r衊Jh,=!ؒq~kuk bCcw@Ʊ*K2pŽat1j~m̿&kܠ{P%hu񫂇+biP)IJ`5Ѽ4x-}c.Y{~dexm!S {co=c()iȑ~ҎAUa!BC犩 dJƘ 2(\h!>~3 VGT]SY >i.J6MD\":ObcZu.{ kD`" <{a5`)Fz8?dzh8-yLs:7Qriz38vO;9}wg,3>g;A8ͩuU}Tfol2l3.4ƳoF1;m$Lh_FR,.5Z0ACбISNS) KjvNTUPyju"Rhr%956p=A"=mh(FY rRƷQ: 8;bBxa+XLBlA?r4VtӐ1eJi9؞uO$jqd< (i*XJZJ>_L\x  P͊<˃@-\,0.6&wkڽUZ4݌)) WSA)=R/B ϼYt s1 x:scouQu(;*N—$Ȥ|n=TL!$j|O+ntb|ltz]bCT>jTaeolsYI8x*0ѷK$ 4D%+BUkR|ZmФǟP-/O;VF%y:YJ!JL߻&ʬX-SEiPr핎,58:/: +|n{*cR;E74SwZi |]D.i.S#^j!p{/4Evv@%nokGO~\nώ;xfIVS&txrt$-n\;u5n', C280~(.͗ *%$Ezw:l p:)yjFt3Ef!Z_D`33A֊Yn}ރP*wSz"־g'm}E=9Qv??Vv;m$\)QڒBxXUP^/dyW+;UmPK nc/^0x= tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/strtoul.cUTN?WsD%0#M&Ix&MsMdIII\γw'iS@O=jgMEV&]<ۘd$EY,ii*%j^QHƥ=FYj(uOy)2- e3ku6XʩH\J2q&eJ/T32\iTHiT^!lUKQ,%|K#D‘Դ=eS |<9=_]oht~N?./Gg*!}C55{4]ꇇý9wT%%*d3m;##[)=IvC42"CR \LgKMNc\!KU$Z$HPh\R)Y9_PmuUZ ڰv? -@ivyBN@>]7tL5 0~@= h7Ahl:h-VYLt95w}apه>udT{@wBwt@wtBv! Cw16QǷ||X7SXzres&\ƋxuIS&9dU-R ;W 8TL 6,x}~2wAR)ݨbamDge1?v9NRHa(^uq&M*h ':~{([3ɝW=FF\UT!r6QGK,ʽL#.J2tx #;x//&\vRG&ogƨij6r-q tE7 UH2$`͉Jtp$gOJs,DЭRgmy)Wc.p)]2#XK?K*E}#UMثL??ٯ9n4 E !.*|çiS1IEfdZno+E̘d+vR6sEH\]P&p$bH@9b$b -O`"./r\㍵  ^b^MpM^q9|x:gPWu[F:l1 bFئcju[e򧊖jnÀ|a{\{`R9Ʀk4+F ? p6m͸b%s U~l9k W׮kr5-km]q3]U-FA2cZI3k:&6دh6T2 OcxkR" A7EzME+9|Scvcx S&ˁ _J1+i$fyRc2+UlIm{HPܱ|G(<&ۮ]>O!vmf(Vfܻ}zO-6q><;},(_I0vt6^M"m ;O/D7,$Ok~?ݭ%[ӧ tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/strtoull.cUTN?Xmsl?pF`'~ %n q:ƙi'Yv"$uWCZ>gWi4̀:/ϞGQd:K(jjaI@Rfl!iܥHM+Ju0ײh+拌A#꥜83̬ڨl+C)ho3q|@<*ЉYL.G8(]NFg*H26I4Jb;7b.I!i*IMsǶ,>e-ʰAFx0z}~IoxLq9O(<وwC~Nwu'!?- jOUD9BQ{{Dg_*Yo!p31E2Jn ;ɍ )K!h% &шB5W n V*_su#"dM4h)R:|:8Cra ӱeSZȆi&MT7(=Qϣ=z <:vv,ՏlUK8rGJ·?}x҇ON}xᖽן+]v*tB .tB{Yd{ ۃlk_?}Aw7p/*,uqX.xΔKx^UQfNX+A,1ɹR&QlPkeHOfPa_=VFMr"BenU+ '17)ѭ0 ܃pzH3.Lmo7U$u~ehݣum52Z-Y6N"g3Aˬj3ߍ^_.Gjyl)JU= ~toGq8TZIۄW$ʣ0i:|s1reI8 ⛍ϣ41FMUm/$LWtP$@"7ߣSε.!ף p+u] ie]ڳmBʕ^d!e.?" 4bpUσbڶKӠl ; z 6:Q,Ҧ_g 1Ebd\C’^cn:;)w;wi)Elh!?z./ +29 Pj)uG:ɅMzaN6o3a VW.}Z,HԍtNO~T UȦ?vqɧ-(mAO e,Co?.{i٤8( ؈\BT`n'g}򝙻h |(dx~:\ll4 gNPێG45ur[Q?CHfW솿Yi>A>ߩ_eǙ\hV1q!,mq^ӆU-VA+@LkzRvIjvU6 㨄Wggw3>E+Vl3bir4k$H鼯w0ޏ{qL;ۇ>cV8r6a#@jbv}&pom6税@Re|,jn) ϻlq6n ǟ)NTWc^4/aQ QIOJ9gp Ig8_iY*ەJ/>$$mc[-'hqL`o6 _i=٫[LkaWБ}ً}=Q>(Gvvܐ;;<<.x 17G<:R[[x9Xl_h>2JRNo!O"yR}wkI9{& >&NsK!YgxKH/?> k*t#yc< /5Z>rWPK nc/Ӛ]> tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/tclErrno.hUTN?}X[s6~ Mۙ;w'K\٤o2ȶ&$vg2N { UBzh$QP7,8",X(~#R:Ϙje ˙bAq)i{5Ʈ18{o7gƮ,h\]0m͸cYҌB xB+M<OylSwܽ}ӟ#y#! !'S203r}e,\<>)5FM?,׊Ldf9|f& ?$[3ł&L*֥N2fdgN8u-ga؟cuw+,/rG0 ;I0}tz7Mg;} 0p a x5I%/50DKl@B]-TT\aGƔACm/B=e +. 0>"?V( 1NjZ!QwI6}pQ^*UوYK xSdžmKJ7qkaKlK]XqSoۥxjyBE3QL;-8!IUXBD;@:uKChf3ۚ/"֖I7Β*G ]N$Z,lMLPtEqF6tj o]jHМ:V.p;8ODhbr1NLId1R6cP;6uyf?Aq SB^nSBDNEEfgn{5P ℕԑ'^o06|ITLH!" fjZmpI_p$LsXfKM4=c3j(5{H|uВø)Fn6< \:KISi))m"szSIxHUu<`rۨShAp"+T`E3Mٯ'@+LOa鵓 }3b{d(Sudf1C ' 4g7RN;F_&tr0DQ5<ۓa7uH*E=fCN UcGYOёਘ&˪RCh0 $y5ݐLgXZ5jgUat- k[#|[O]Zp`YnsChаZTsj.q%W\ZnK!xwЁ#4k$0 NN"[ y*kа_a;DL[đ •/ cΟ .7y @gtXZəḩUg4U'̒[(ѿrWؐ5i=,ғ- /3QUK2Yρ34ꞔc;Vpak.4FSZ&ٚCTgvg-tz=Qc{$0KuZс2vNKQFqSiDaש}{LN]gFFpc6duU[rE()M|,}~ "P4oV7^.[4d  85[]$W bx-cS5i.paEPq o^gʫxp׋sKh|+HnnF Wyf&-\8 x\H+$]0 2?vt7ߓ];ȟHZ5@C`d0PK nc/0!Q< tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/tmpnam.cUTN?}Rak@ l -]Bl-$6}1 c܈wtNj$ C==I8J}]Gf.]d5• +rnj|pdJP02 Z-q "yYB"gB0bh(F*!V|(_|$ʿvp*lPV|;0?b)\J3 >_ӫXcUAA6>ڮX +y*nu-ŵ"p%UT6Nj fYvD𸝛^ꉚ&)b0._lgش2l`6}%AX̋E1;|z<9—K~o@$4+"ឋX{ />G+ -ybpx%K-ėD#):M<}`}Ȅwu\0k12d5!|=)%Ӄ ^2P~ isK!@$TcKÓvzS<8OiKD NٮشY~ UPvv(l,9rx\\doQI=*r.؟/PK nc/ < tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/unistd.hUTN?VMo6=׿b!1f(p@qfH"",?lCVlIP7fqRXG)|LEF!L/L: LrF9rbeIYHIZps1U:7"I\On& *"JFc×)`f%JS-ɿ·R\hpl;$U0žX\E~EQ [&sheKp.cDR4!10aHw-8r\A- FEz+h̀,X#|W썊)ힰ |zRd;|#ZntB6 fi}q0nC41^L y>Oe >mG_\8XGx*V'r1"cX>/5(q!Q;ezf.FEA_*BNsMq>8Dax֡EE HXb6ЊcϬp?>Ob6*Fc$p0-?1_\^ BWW?GE)G(%m 4s鰰Ӏ5pracaG4/BR,±ji2feYe]F6O>EppfuZ\W8̡.@`Vtц;KNp0l_YgP`nZ$sb[1$i̻82G)@f 徊cdInZ(-tˉX\ob4-*Hx扤fGBTH/n:KP2?ލun;+{drN:R {n LE'WLqxaxS:Ve(PN6GfrPpwznnNVEMӼȁ~wVtl\|j`˳Kz?Ê'^, PK nc/Ct= tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/compat/waitpid.cUTN?XmoF,?bdȲUjUmΑ K9} VRZ%K+j~3BRRk #332)l0Hz15f+!/T̓7e `V'XB be$:ӆoȞH|m`y(v}W`'%by.a#XõL_\=-R˕v܁~/4Tj7A ѝ+TRWCR{ c%۠8D̥=Ë~ Ŀfh[SjvO6Z [Ybu `p=^ݎonoa>zxMfij:_'~ ww oy޼1+Xh>Ngهo043Z"!^,a"ZE+@ 4bfy*'so |X /.bF&F¾ދKFU+|{|'>OUA1z˜}kc6/e ^YUogV*^w+֘NZYr\ɹh{h/>~7\":~6/oݶU]RU%\}s> ^5+g|VN x J[uj69py80qiiPA~¼(!3D$J~4PlJC!5.q- u{4!}QҞ0#:A҉ώծS 57 TaiK@CɄ%ns 76-{Ƴ`=B 5w?5~fGMsS<>c G L>]:5$NfO}A"̎tKZwD 'Ǘy50 ;קa=|KM@M=xVh(rGԿ6G"h)J-$;prF4{pNsdCBLDf(  פߝV|/GXv*\$zjf%NRg A6-^-ZH6-KV j=3Da7eP&Pj$S6^]Y:Y*nkWiCϢ728UQx| NğPK nc/1 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/UTN?PK nc/ Z\4 9 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Access.3UTN?uVo8 _,\\Wum8Co@AD#$iQr~; 0I|$)Wwn~D>ֹ WY'km [L)fT)uWiwhfi2~sET}KC c^Rn{qf2gi EvNw_AqN&/Bџu^fcD^ mj޹Fn6dkBx_BˣE vݿ ^F԰kSzFٱ;BkFAKkꦶ-KgҀfk)W6sƱp'\~M6<3z➸ݬmmc ZPm|bqh!=DX9]G-231_s.p1Z^l}_pL~@PdM-&8w!AAcbҔ5`>E~v1&HG#cIӟx**7xjermɋr ۔MPLjT(-FEpU,脗Ir+u6^.˒: X`iv~ TiIuHXʧP)E:wMaW*R qhރGti3Lyg -4E9ƪi#wPaؚ²47M",澙:R}[@ ^I/A}iNbӴkYw5._P "(J=کr 3떐 >=8qq%vslt!"zVmx^B %+jzYA(Sٍ PK nc/H߅ " = tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/AddErrInfo.3UTN?Y{o8.Фpvoiޫqnn{ (hȤN> I,R7yg옫Ͷy}_n%ˍԅf V{[UHjmrDK$_Tqnrg|cBRJ%HU,Q!@+ ;Q(9Vl$:L-r*#A%b:?Ydp|x~q$G{~_|~~ͯ}_r͓MǏ;@Yq3D⯣_Tr]nb,z`~3O`VPuOF&'|gwƪGz@&M\"V,[^y;[L@zfw?(e"EFۿݯ` _o/ـEx*۫蘧sԀwEsT NDQe9~o?MO<f f%w]՝QI8vesԱ;Q2m;<;\@&D?w'O**"*NSO q|1FQ ȺۂĴ y.(s3b HGDDX#TFl$Lp]gW (h@az# )ruL>дu "q` sChIͬ, b$ɺ LˬJ`J ^&Q%4K'0"p$:,Hm5efIET`_BtqW"$_S} ΅݊RAU(LĥM~!,_|P,鏢X;9.trGa E,yO?׈'ePgW=r (8 2L1 ĭDto;8/(ma'h Q{?^擻dvˢ;U,RF*+SC~je֤hD!y_xR/lwhdh*g2nrL? 7q\# ܹ-AIy=bbAI" Vi!7Q.`[+Op8Nޔ9eH&w_'Z# ᏸޔ+2H峬m'q6S2 hZb+y@WbHԆSZX:, X=ݛ\$)=UCAEK}P:AclCZk1H vNm #u\DOؾ;WL-SXM|,L-$W6C0J+(@Te X{wd( |1+e櫢2ȼWBo-.K% }3HjI "kv头.So&[P6k<MDPŲ0xvdcGuU+_yf|HjBqZ9VwP+|:jM> 4 4>֔yLVZ=Ո}؅&`0BOeեU gbRlRWA'P'md՝P# ̶آcbYA&7N-XCg=بonlNh໙3C?VX͊ +~Uj oo՘Q.KAI&+T~v'{ҳ^WO_w}5<3PIV2+Opmxpv sk2HK.?lt=g ,b[Af!αFP%mmƤ+)][Y9MzЈyH[]A`QuUSbXGD[00ySRnc2'Ec5$e )fB5@8#OC֟S[l_zU!QwR&.վv}mKT~y؍wrUZc+zۋծ4=:ND>&.mWT%AcEcAE c]0pbb}m4Fϻکf5!04bR{,|. N#p\!ɱ8\UšjG~OumP,Z6d>dHgX{ޑLF05q)'ZjjOmvML`q雤]ȶYo}Nwf<ƅ'7g*Tz=ᦴI1,黀O0lfC-;T N̓B@c뫺 B ~06͖ ۲ja=ǂ/O`cm2K`ҔhĻ3ESYC8s ꛈKw}4pumɽp]w !E:$w %=W0el풧㎏_,Bg99WobF w{dPK nc/nEwr; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/AllowExc.3UTN?uTo6h28l Gm8!9- (hsHHٵd!w}X؇eƺvp`b0 aFH Kpt|TrJ󖱨d 4~U s:m'YKY!*A*I~OB`j/D `p#M$Jf!L[tY}9{w9|WW/Fp5\P<5?7VC-, !?yg"WF̍αh 7LM xK nDՆt6V%[7ʫ@_,S*7lY&RA f~y| Po.onWΝ!dYg1H_v-!Vx( N}Yzg4/ٔ%%1G 7XAiФ:oAd BQ2!d]ӆQWHYN,xhݮіvI .LByiF'4E]I݌oghpĒ~id0+BEcc\4̒[O&÷oKcCӤ+(37ܔ\iZt9asb Bdܒ}klqx(\ٹa%Z=+MFƅV*Fŭ'61f31˞;hL ksOa=ahVVme2u{q ɍ wR\^B<'>ͪaJ,~a.$1 ƅ1ôSaJ Δ;/BnMR)A2sd>0yP[f[qLMbI˜#f xP.*iYYNh&l73)h'lQt8D^* VpMbV5%,$,"[W B?a*qs6zH x:'Kv W(Hkq{(qRwМz -&mp腅Ffm$ʫBCU%Mo~R`+x=2]FifLu; G%9sHQʺ#ޫex>-)e-#zQwxopmX_F6P /%כ%ˌ>zEq[AJv+j6n!^and:(ֈ* E!~HAm;Ï 4\+aM-\iߖH n)!S^ԥ4~SFT%_H:+SU:}烙 c"r n>A ~x6& Ar<=gei%w<~<~ _:x{Zo0/K+Y<3Ho}^C>r5Be'_`ܿ2  z2t= g;,)N/TUPRLRڽQnIaXbh[Us|3IFQg6TiW?_( WR;BU'(L̉RL~mgbwa~F 0xȯ xBE"xB|٨R%8^ ‚H~8Xrۃ߇+>z E۝R:ce&ˬYߥ>|UrmG2i9d;U|vNt,FRÎzdqv8@as#]Cx\hӦUO $L"MTCP{T͢`+.T5֋G|%rV :]umm />paI(!3BTǫy#+<_oنRt!~ JL^s6Q72`a(áR'Y)-n;h t`cZڍUmrӽ[پ~UT'=Z۴Ih&U6ZE32&"+_T-}lV69S"7Q6 Wf38ہ^;ItԒ̺z#d{ʥEde; K̔c.XBj%&.~ZZW%|SBVR\*I%mN8JßH.tƭ̔Zʑz~ϟr9}X\r8.5dN~o§o/]\N<{mћ8K''&Ss+E%{dO Y &Ym;a+6Y}ⷳkv? {% 9ذ"k9Bl nѦv\1tۻ9{?tZԙbc:>=k܅bKxZ(8JTOXO MRx)LaS)@0[1[J^oSG0!{|$xߋ&c;?Dn0]}y|ŘcMbJ{ n q~~Ty}W4Af"𜐀>M#sУܚڊv1pPÄ[SpkF8^͗-3 O'h+0d;K^n\I $P)YU[6RWS- 7aqs_4l h\jծB)#HUJsJ08iSC1-¤xv)Kc$+o{Eˮ%Ec6NA4\C_*QTNVpR^ T&赶Xlb*ƥu*tj1&pP@[T` k " erocR3נ89* lJȁo1><~T* N+dM5;!\j.y8f]؆s n,; FWBia-eF@CU &h?|tS: J(<*% H%uێA9I*]DT"AqE2,IV U;<O,X$y/JX,ل}Evpjur#\U5SϸRc!*&f"v۾8𣿔S"! ~i ;0:lr*nCB`rg2TAlG} ^k+R#S>p3VOM77:ȧXoB߳1q=IћTͣAMجÏ @Sw{Q NC1. 3w0 Wd+=ǝB|~/EfnJ4丨i ǮLYbG:ld^>T 5hQmzKl@4zy"g4 V*4 EQ0Y@9HRpc) +]Dg,(OMD^+PF}k r2/@;76RX# URdas[GAY48q̤kdGS6Bay.qgT̡9't~g,HQezU2V.(U嚁jXכ^/*g/̳= >(u߲¤A 9]Q^鰠*@.5vs6< E3$v2t`h!4YER~7.GcT; ih2[߻^r~2ºs?zZ|LB6PK nc/8 HP < tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/BackgdErr.3UTN?}Uio6_1.dhsm 6BsDl$R )'gxq.:8:Gg7X40ycy 4Q%)hͯ`2!Ddu F_h4\ILS~ DD܎n&bU x.deCP=H&pY2nnx)ĢMV6CVF? ii(bm0Y50hAG mi$*p$ޏ+]`"e"I2y|w+T)FA:e">"+eς1H zxH6P@eS::Q-IF<7yuLF޿5;oH`ߔ6ZeԘ m*3v}ceĴpgT*'Vfeq7;HG:BNf5S=aCT: qok.DI1xUh|AnK;}@2Vu.{*l2$:kmJ,A=} cJ =3k .̦b|]-$6|HBv^$bz,庯,}:qm\lXa4N˴T|[ UXJ0mWdlbBDnh[<7Tj( m K;g^zJbvbӆ r/W;__qS힩} cTXr΍.G<7H͏?wD<0CPK nc/Fy  < tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Backslash.3UTN?Tao0_q&&RmQm(n4olhLJIQ{|22d,Qѣ@  ZFۭubm;(JBY&D/d) *% Y9S[TF:#_ `<$m= F#2HxY>avZ<ɯdvE{ t<{ ˫%|jYJW0j5kM#xm=.i7Qk$-L"Gnc~~ 3}ЊP\x2DPϤe xxIWoE4+WGؚ5\MX; wxЃ |=%ahbԎLT&8\\j?8q/4c_Dе#IH HNF_zq.X9D@xv#%4Bqƾ^$4&Άi2%1)3@u5Ҟ? #@.*#8s"\ ўN;W>ƇھX,62={fr +EAVA G7y#_'c$=3?`WeC#K}h}ӐAkWZzO3#u. >oʏYJe;>"[Tэjg;a=,Lp]1^e$wCK;4^;t4~734?PK nc/;d : tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/BoolObj.3UTN?VoHňVjR.4>-*ӫ*E{ []7y%^=on[t6rppBݻ/RLkpiC$b#[ d2Gh2Ae1rh6 ]I~sR0J댜Œ Gp5{?{;vG7~Ks)<pu>}t3xnz~:o;g翼(i(BEK=GIo xpo6?_rfYҠmeDGun!ct>l7zɹn_p1(sԳ8 ¬K>au4ʮ6|"U)¯.ɣoٔ:,|M9+NncwJ3!w5MnS{WxBLst͜!a N O"EGkAI-DIO4:5؝@lG)K]=UvZBSq#q:<Vhun܇FQ6H;q; 2Yl d&P8H52rd麪!+ LN97D\2]-v4hQ84IRR3RPgLh*Q9fGmo t}Ơ2w  6n}y86d|^f`E.$(cӔtFO)TDk?]詈~w`< $Y ب]H{::ZAS=4?*%1B]Cd:v|E~?anY+ܧ:ՉrЯ(8-0$fk8Ƌ }w1Q4j{HZ/mhy'gVheDGQ 3l0<;aX'kS"4>5ȵoYr&:vP/SjzVky @?L wdw9n6RСVɥmW`EtY+c#+?>vhxmxKC+ӡBOe7SƟJb]HSrjgY#lEB IЋ gIμu0s/E(Ӎ_u|,cjFgv'W LIF[*Tn:V*V_txYJlfp%YӤ, 4/9؀ jpH,dz~q|-_abXk ы짞UO_ӫp{HxlƼ9FBPK nc/ K= tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/ByteArrObj.3UTN?WaoHbD+5kUGi%aRװ=KuRͮc =Rw{fyq/[5e3KG1RӍsS, +E:xJIv&)UVb Xϋ&'>2*h*) 2Qդg̤RkEe?^w7 s}M_:Qg0B Q7<~rNK+;y>| ޴,xCOO^~~)+^;ޏ=`Aah`q"qSFK@zk5ɣ|IeRh"A`|cj(j_^fwS;V-,Ed&dl 𢈗\ 6B aTܧϔ2􇍳`> 5gIӾCnSwnQ 66Ҭ6"[i?@ 52xqWP܋aPMo0F:!P[r}.dʔn15z6c#iQY`5x2S|j9p(m`W_'D}K4O:(k}4pA۾i!5C㿀 srr!I }?lO2T)`q?J+a-(+R)y3"Aɳ\Fң3FOi.]_2lyT>REO8}^;"ekS\+F^F;7JʕyȎ *Ez vSGY\33Y _f[!t(XId#T(c!n*{| YsМN<{@|ή8h$;j6:M#sBI#PW'`rK J|"9a-DG)}lZL:ʚ19#†վ>{_$T4kd&d܋8 O衡:/"1^guNag2:ĸ"V'FMXV7!%.ܟRAВ]WezTN )O=e0hQ8y*jCm=ڇu*h詮sjW=α uV-"Yt{b˪Vм8vn\bqv*ֳ|;ɲ^Й)QX㕫T(ϔ sR!OѐJi΀]TE]>-R62̓ Fա۷_cџ<& uISPHT"*st͖bӈ[ĵk P*Q[4ywCoy.i>L!<?_l =YTmr_<~;{Z+C6ľQ2ן;ɴ˞翹o<߽_p}'3Wl6śƴWa APK nc/h*: tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/CallDel.3UTN?Uo6@Ba%ho*4q EP@SU"o#t`Ȗy٬Cfjm"wp/X, ~Ur)nBf(iK|V(vm(m%%BL:BYA0T,Z~jJTZgg,$*mG`0C/~N7Fx4هǤt&Nb z-kx?vo:57 Jh|фN?Ôy\(DNp;xsFsF gFZc%a p<3Vh"ACdBHɷ81,-/To4}MOgYKVaA߼8PsF:QF{?>GS,v@zna6 mB!?$nQ.G$i`j.'y*=j{z ش]_ bi+i3s´h%.WڤdE+LB! Iӈ6kdžcy }3ޗ]>`.q8k'KA[7qV)HR-wt1F.Z3L7Xm)@x+o(JZ9\E 9[E]1lօG@&?l] r< %TdԘ)s1ȫĶNA/*fX\WRt,NP$ Dt]IǵJK7K*_JpINR }]Ozk"k+{%(pUSuSH\Ѱ+>xKi Xm/iQ\k)um5w'[3n{R#\P'iչ̵e$=E/cKڂ9z6dž)4Ll9+(f~^Lk6ڨ"u<_ GH._]~uy.___^^_Dת4RX6VQl5royf{̊;onJ]+Zf'ʕfFg"'Q6ʹ׌)Vr{6~B*v LŞDwÉw裲~RDljβ 9]R"8\SR]:Ny6_4]^r~qYo~]'^'q8vzHX8<R(w μa\i bpd=+W;LF ?~ϖl%"¯MwNTa F89ː`ig?PSb&_tEQ?ԏcQ9饇J:O}N=d}0I&[#r(wmIN gQ\,ەTAe<%]2 NǸ5`aS2Y5O;# C$%E2Ǭ Bosuo C3"Bo3j<΍|ٍ Y хfݟ$e.IuBe.]e"AM.zvqY%vن "D-hEO:38-0N<.q" F|G\D@ұń(tVW #~0jH@OԪZ.µN prӱDs:NhԪҬ=Xs<Ϩ5E@ "PӠr쑥iJ{ataEى%.N֞DY "5o63>N&@)jP')E&425ZM]OǞF G921=Kh0# Vun9͓iժG|ݴ|\1"VB- +*!PHŀ&ya}= a7Q$X" p/Ee7"?(QpxI twFTtFwwMSsgNߥD U~REUե KF dG>b~3$< n6E) w;qtQ8mwsOVD~*K PQahf?x?_KRY8q=\1~x?YRw_qNY0yrFmFzsTPK nc//e; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/CmdCmplt.3UTN?u}O0ϧ8$کvӴoJR8"q:ہm&N{󓓵}NMa#0_OVBT@7J>6\$k$goFL ]XJ)mZsY" 22>V A*4VV4-rWqNx% t AU{풄tpg,e# qdx>!l!=*X][]J?ºhFma6wTkwԵh|]Ka"-CbhB $Ԩm4&ʽu~y$( %+>zRYFU:Y籨2mAfWD R<](uy4;T5X4mG)4("-ua/Wb‹ xzT!:I*OrR)j޳gdȜ5yem&~655;Hs!#גߓ5攬DyE{*Ӷr4FG]'ixG=]$W+=rm%PK nc/- 9 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Concat.3UTN?uTo6-dp$n9?`-yhJ@R-HݻwjaVzofB\M]r+i!7R{G ϏZuʈ0V+|&HYi5nL\ZĔI UJJHd⥭\OJYq&7\9oպ {,U.ucP@t?F$]= pN4;(o/.8#-Oz$oo7}3)ԔSH U\'d@KQu,P'<r5B捕Ò%MRWW$#aR(t6[w/eKŋ2*Yl-IlBs5D\1fˈ=\|8IK8^شҶ$1ӮB!3d Vy3!4Ӗ$ VP.e}r_?SpQ8$sZI8GQ$>{wI6iǀPK/ 6`fF:Ys  (,yeQBZQAN kÁTU#E=0mH8lPk4TbFx&<b8;O>$ a%zH?$cWG$ IS -CFT<'*%!y'> u' SlgT0q0>pR(#C kBkۅ}A(],ǒ,(]pܟlFzm6*YYƟrpgIN'AW1_Q `)cg{+%pp&(gM9UeT!Tcob2;a0~m!2>RN̳YuU/g=ٿPK nc/=*"= tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/CrtChannel.3UTN?=ksƑ=bIHr-QĖQ%m"u\J\ec$",_? `rs`yTn򪕻|؇QNו|_Mouz$'U>O>_29u[ԕT)^)(J%w"WVV5K#u# 3 [RɬF 6ŌUhlDpLLN'yxr"?^L _ۓ_ȣ=ʪJklr?~|͋_[\WeBћO:'jv۾@:?s›y;cW}\:oޔkσ|-LW0\\] *hF5]!CGܷǿEui,U@%^ $Qs\9!ϑa~j]򃜿 ӿ}Nb\-ďW+\ϕS㫿8^`Qa)b|h])kO0|=* UNϖfܭ*΂>:;^ M߇Ev_hTΜzŤ6nS_6x'Л>P~8Ae`#>nDH@D0Pj$kzȄ>N17aһϬ rp.yz0`88[L"M-]V1`CFJ7O7L)U;rڮ3{Ól5SIܛ;3u,Vw/f*l˾* a t;v\o5<۴o)}w,<͝svPg5]qxǧ`XNe"䗁|15H+-yy v͊ mt A5^eȳ ge LR :VrH5Lź"eI cqNj.`t^לJfZ3{z)kݒK3ïSbv H!?-)ysUtyU, vwSW\!< "k ?lfEKW]\+,i]煛8X SxxJ` mp'5g8p@a^Ί8 DOLJ_tx|Ʌ} @ռt+V_lV;}-1Nglk "wvJ(܍Qd`|_lEj杯:36񓀁pГO@Kd4W@GlW*/En@LHAnƒBТE G=m.pT3'mKZH="ΡVrsa*1p䠥V|z]^| 6HvK6#iIc{~޼)N >bn>avjωkY]r8fZ`h8+vw#YT5$"a_J5ɤc!.Qi/ꪼ 1~u,H>O,T4(4c{S-9&*ZEB~,'-ʒk0p]x 7-XO.lCQ GžhDuţA k ?)coA: 45o`5:+,.atX[cq l0Rs؜62P8L 5hժnZ"o*b$x D}_.D{X;40ex#8nVj8_"L򪾑&6\! c@@W2Nq|:5(X 0qo tHMvH2s <$$2!~dU|@J޼(R-aIk kmt !n{ S`JyœT`4 @h$Y GOOO.xWT"5[iΔxHbSFXSEadAGf 7Hd3O ;)云kiYӳ@L޹`胓ȡpM| 8=}cFΆ8C*sSxN2 y._5й8xTpC۴ %;2sFrP!",Z9&\9K$ Lebc~^|1MFbh­[mxqqaҁFMu#g9pO@٥k9:g*%hu!m鯀U+^5[gv&]i2Hem18. Hyfu~i팃xh1~p;E|P)!ka4̜P5! K- 'B mlwpleGQ'h%~2:p!s'x" ?ûc6 Sh g.y{^äkP2DYm2Zf (P |B)رَߵ;q=J·;7A`DŽ]B{"Fpdv #,кlaDi)> *rAq( 4.japم:4d1G,؁Qq zXbD+S@MmXg?kVo#-0 5γلMb(⹭Oa)@jm0=u+|@bբltA7a#nR(pguc]=0Y_ù(=j)4 & >#-dUÍ ˬ`?$Q1Bv4%V؁C V@CU;lv'Qzb^p!O.!H$Pd+ev@xAa,g.MV]zN5!= QCv'fAJk*ōMXi2 `l\FvfFn[#GƴNd$d^Y"_/}8?;Bxi& tu#TT<\4biO8&Iqa٢U >AH#} R-22vu-JβFgEZ :(GJ6I p2sh\rS- %*k0LjZnZT' ڼ^WrJEb<fF(Q(B5-#e IjU0g.0J?Y>cGEG_bwB3Qt4[vg|1l0Nl]P–1^=ɾ%UB˪}ogY 喥 QYGn#NjjAKymمuHFFDReakظmgF䆍 43 sBْ@cjD'kdut+MEI2MA HGgLw%Qa0M`O@-BTtѼD%UxQ% 8>P]s|!Cߌqx(kK>ʇc|N^KZM ީbap`rI-9&][ b|4سN/r3ヿ_!M^z83SEÂz2+:,:.>}V2(*qU4mgA YuT<ҋσ}C;Kj _~j`"ǽ \$W!*R{ yHJiěF KVX)H`Oq$zvd#Gi@HgZP Jʳ6.bN-q{mD\8g&<9%Y94w>.428qA8fI%gl7m 7bx\9xk. :aA= o[p&RJJJwm%$F"*iy3>x,Gw_G15FR_ IaGΚ\㚮֭`=Fr26PO//2243Zfi3-M"aL%huFw`9Rlh'vz!/N#y,8 !uQ0*xC0dž,fFU6 L8`~>vɖ5n'l؈/Hr96oƗcaJSM.opu LϦx~/۲p3rx'?O]A#^`Ą ||y˜ύ+Tq i[k^ #2f&Jcgh* NE/Wly}Yre!M"6LG~FeKat,{ ":+1C뽧 !0yw^c.$ԪIY\6c}Κ&rSm2"NRe};ѫT)\'"wG 㱜ًȞ1+1Z& LԸ -Ǔxr6& zuzvHЯ=ŧw|0XVNsoc`lg_MU|`Is=aLzvi0Xx`$P[`&@萰)׋Ch4E WP(`4(8e>@4c ŗ_EK۲>$$ў`;G'gS_t u Qze(ߛ. 0Whw3?K鶐ga~ݾ[f@ıS2_VtXS#c>IrE&I$廉=Vл]JM2xf$W930L-$&\k$U,i\](Ҧl;^Eʜq>[Kg36N_ PT M$]xWn_<į)}!HkU/EDE̟`ʃeaI9\ގ[|;@gE@J@ZNW>[Ԏ18ɯ)K FዮK"(YeEhX\$!3(MF5FO @g雠DGP~b1u$NF~ KsKt;!% B !oDN?SYcY۪u30&(뙦rޠ _tv OfXk*>U'{zNs.>*8wCͻŘY5b#2mQ"rm:$oS\$B+=/NY3R}Ҝt}d L/Ռ3 O(k*ϷIhnoQ(zy.*F? 8"v=ؙ :鷦g~Xó'K%^.=*{u*ٍ-iwu*e怪cN!M i .ktmlQHv4G&tq t.)40#ޮ@ }3GBEiuWt8h]9ʚ麙a$U^aWO k -A&)gR`z| |>@Phpkb45ɽ#8EEgP 3ZζN*k? M^!]҃ \)ST~x 66" ,!qgtk Z[UҲ by$mIJޡqZr0(rԻݔU<"E@NBVzb'vkXT7 9T'}\3)a,P;Ou z\a[A@b|gEהMtVMOѷo_XO}XʵYT⶙gSiB,[=LdvZgp-3'vV8Εei_^ᙑ( Q4ߕ-3L ^ 1eK1<`O%2=8NmVv?jTI? >FVƢw_&έoDH;6 x1 QjlO *n%\xpm6V佌mtMDf ke︶S۹FS**Fd,M {մ}rRL\\t[/l6Ǜ "RYmH a_>`,|HHtq 鱌 tIH,,ڵ—ÌCL\lmFדz(֕b6amM%=sO=-Mo# >3TƤ4 I1׋$'iǽ25n ".& hv-nC|Mo\zSєܥr |h)_YvZϳ-YbYcDžX1fadN"G-Lx_mD WiMs>dU-}ͦX 3%E[woXqiߐֈ鈡IoIkDi{j6&8]j18hy_PaCۣaa^orטZ`?%le !?]b~\_x;,h .lF>M_rV85.EK!:mrh$yFCBKt㴓]2+%%8wgNKqg>6&ne+ćZPk$y͉\6'W\4Id jp}˺1(오&$(-&+ X@u: [`8`&Ba9R˃q|ަ'iG3j-&;2Mod?]hm؎s}Vs2! ?ȒOLEpMGA}3C}\vz CײE&p3_pq&j;^B/+%;L8ۙwNFp۵}/j&0Rj5>j#dj:)ޜ|?혎QwVmM+vGCd"=YN"s܄wɛȘzC-kqGSdȇ֓-dF1uA^Ä3o1Zg_Q5֜ ."Ex^ Y}JZ-/'fMP< ʘ: {qM|ks,u+mX+(,n&ĮW 8)ӑT_uS+0e؇[7+ Uf/b}kֲ-K\$Rn[d9ClmKl{xE7;A-0:7Brwd=;v\ :=51HU2$k ΋@4O8 <Nd^]ӯ`؈M0feݷE#f)k=U5ʩˌJaԕ~b\~;Ki?!a'Vɞm&5cPF?OK ;PK nc/*B> tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/CrtChnlHdlr.3UTN?Wo67@AQt8b,CW @AKTDD"5}Q?(iHݻ#a]lJZ8[l`"V7B! e2ߊ27#Ht R[Oeb(E,-岢g.N04.QWpr3s} |4{(IxW\*ʪX/6ׇdleLAuGɴC͓yeR({-Uo7@xuM\qǔTTOSE)p"V1,7/uỘRY0hKJXu*1&C9+`R]eT l~`R5vrXLñ&7=h}O=gv$_Lgw BD(EQjXB?k@,QhS @|EJi]c#Z1=e@9v6xRS->|I=¶;YvԎIWAM θ\J8Y2-1? UNSG£oe#:Zנ+&!XR֒ʒue5gΜjtT]t]$,[-}O55Ɖ)$itg O8ĔN*r F,HE('M#6<%{(cmD XIj问?`pVkW(G;rDBBe dTK#lU\/Ǯ?;2-rNd3: cQ]޴}㽞<ȶS6&Gms%4Xӫ 4W!FjԮ9)L>`*q;afnEhZ _q9>"fQ7b1OgD;Jv~S%0Zf:z"O(fsUڞZ-7~}8AdlDUGgo5H7A>ͯB󜆗<¯p?G3hPK nc/dXC? tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/CrtCloseHdlr.3UTN?Ua6\)wұn{\U iut: 2C&6(3]Xm+ g+рX)V-k0#r6(da_`<%,N[>ǥq^6m*Կ|H-g oY T\GY4yV[ɽlX)-\' BjiԚLJa]}a@*٢ƃJ%BQN,{n`/rCYrKrb/%v-Z P)6LQ"E~F鬬_|VFů|(AI"`89/xiA) wL rI$ݶ %+TP®۹p܅x{*a R0aF˭6ܚ;G(Ae.aAaƳt>Y4[;4.t#eCU0Ch 6s[ hk+ ۖ\6>dH) iY Ot.TOdJ<0v8e2uwOgLO Yxll^\|+>Xo &>wO?x?z⒧O*NPd43V,ZʗIǸJ/_UJT;~_Du%̀E,Zʧ ;xն @N.~1)2}^I^&yc6cK'ܝtw'Y HJ96-k\ 7Š!Oe.D/)1p7.b޴oC高N+8ܓ ELJ6ja "}^6Ϧ%O6z}0PӝJgzIh{$f+!Bs?<+2Ke!p W_)LՓ_0nU+e ,gϺJk(1` A%{9 5` r I79JoUk'B.R&*S &EQqƧC<_Bze7UxQzpӄn&<_Ƴ)_B5T!1A.\-ܛBduaB&00a۬(>yR4/e5:a} ]"[, weDb@^ 볕02eckF*ƽ5:V|Ø\TVDȜ", h"*ӫ2&bؐΐCMZZ+W@\%èuhw<(--(zGTƵ}}24~Q@| C-vl_ɐt@&@*\`mnpdn"仈rhB j,QܨC10_b|g/H!b$ j[a2:oi{2BE gt)r o]ѕ ۠ԹpוO.e;i؇F9rVڠQ/`A]/ʼnxt%oϢ%XTSYDdux>w 91 Z 4b-DZ"<&]|F0q#qNe h@5($և$r:rN3 ">Jd\ YywndK/ ȹe{QªE#_]ޚR$Y$^i# ZLÛY; =M=e&GqJ +7s(T m5 %.E8D8,7MUF<Ɏ! @ui{+e67ǁ+ A=;w¾ F._p& xXI‹'x^ `D73\ZK%EEta\NW>ҽvB,솇KP~^5#K1@ubiT$4h L=vPDȅqKR:fa+t񊯋zhC'ncOB TAQ4zipcw_v㝗yܪ\rBJFS3[0AjW&6g蘄qЩ#"a@lZ cEpXӭh e`= hHp\Znʖ"چMٜ ?OiɧdV2>L$x{kAcLO %CLqT^GH-l= N'^n@EcЉ ܝ $zu7 "ee{ MALZc7ÛcmfmVs[C@U!`@. YC F3oK2aA:p—܋7hl/ϻi) < 52|ql]Cǂn);߿KqÐsphl>R L;h1`bЈ2}5+4[ge|;!f|k ~2%)FCp#qk&i;{3P{i޾2~qytktZVӵe ^|umb2l-tЇ{.ݳőg=4tV6l~`+ ⶊywPK nc/j!> tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/CrtFileHdlr.3UTN?}Wao8 < zp4nMd (0(u$$'Ϳ?d NcIȾ~8gˍE//NqӅ+<~lJ9Æds댖aCdL*w:uo|PK߁I(s](8*tWIPn6\ʠ+&2ӳ;=& f0vw1 ?BvtПD1M'j]AυhSVmg7go/˫w4]?*ZK4RR"~iZ|9%b\=nI*H'"|]_a7PNAzoSۡlLB*b&Gk AVcLb]lNɷh2@/L.ڤE)#E! .{Auaw:v# '~w~oߟS;ac;z!~9):]ɂ,+k-(I6A5&yL:]zIѡ*2EUv%SAj3mjR@1nݛmOvw_ǃiN{t0DžNn gb+-IJB f9Ma#+ڬȔQXZm-N1ݙm(xZJxЁt /Us̈́%ڔd\꺙\֨ӵudQ%r>`~'hLx fE@\I$ڟ) E@( qϗ{=# A""SJB[\-jYA:i-5p\Q~ ,U(i+t;GR=eIE03[Xֺ(f$D<gDDP(g-% {ꯐ| ϓXakPyUPr%O")Cj,,拃' c2Q3m$ZK"͐Qhrͫ%_{Y/36jh\7L尲:+cbN=$Q,|@s}ǽX:ʬ9#XE<)`3!EdiF(Sޚ7M瀏Vs,cϯR.<|h3Y ഖtot3[S[x]D5\3sVw2͢Kx[p!UI.)um7[ <)FP#e03ll*کth Ȃ*}#vJThozNqVv2%Hb+Q8TU!Wo xǼ F#%)cDƃ7QyҐ4ire| OʐH wxL %x!q')q7(j=^~T o\MlQ#;χͿͧ8CwL:U>d3ķ۳n֝ǾC65헰_;QX GGO'7t4}wB<;{M eeB#G4F'dzFwwGm2RwLdTj[YzpdHK\x;GmqsOW҂.B-uơ.jLAڊSBl%|mbTT am#.PVP~~(;c)ee#m gUQl2P_H%2Y6}2BR2Pc 〨WQ\?UaJ= *jPך[q/`&u !I9%8[}o1#u ~2M9Ky=}ףѧ q=U+Pi˿dH p~? GfE5 rQxDivP\i=v!M3EБYXև lʵJpv@,GMOHWJTk N M 6igɯl ZXH ^/mB$4r;jS9~IUvDUHy*QJ"΁b["H)Oa.8{:<' TT,TLKTcÈŠ1J*kaC9S ̯0UӂSr]/=C9*/Q}V6wE"EZֹ eG-l]o'sj'A[Saæ :4"Sg"c & 15"AF$X֔i '7J:SYY'hzKqLHyTD!]6DD91ԴC'3Cӏ-3]ZT *gVL貺䷙uu @Uv @݉i323rԴ/>6UX?Iۧzcrw@ R p}ӫ6kg':G/ZIX^S>yC֋Z[q[ʚZ(y?G1F"br7K{׈3q"n.h֪8jWb7 EÀ*X`7[0y<`NE7i~[Nv=:HlBa LAYϷUcV N>Z \+i/vSG'UփJZ\!Cv9p<f3g7 =x_8qĂS+OYt% %6:B%N$h0"]H $,5E:!hoQzH,P9e;!dߣ:a^>-kM:_0ڷHmY#$U\"* Z.P),aJQFvVK+ʕwjQO V@rY/- u)L<_d% H'AYBh(#W_9\QEȬd6F"- + 2hcbѣKQL0tk,94/kn*4|ɛ ԧ3uTq)-3I=ӏqc mF/ Uj-ebkIKN_/>?vb:0Oɽxۏ4Qe<EdS^Pr~KKKᅱ;=TPmÀAZ8^l#96èPߐ4ԱhcD ˪ʩ7n,X~q1|4G-uewREJ*:63< zk,LCE/ZeZ>mUZ&S3.@yVft#4)b.sTYٖ`bCI|UTa@#4; dˈi׮jr)iOJX$7$q(Txn;X5I;){=(  $ʝ2l9\%fX9>)bt3_!6wYA0x3&K`q[W6 8~ Dg$N,HR@N"H/zP^P!3F뤈0~jVegb%€4ueHDʩIm("zY{rq,(QY8uw[~";c  ;!"@̓gIKN0 U\&ppfi-&5795I-5q~ӓtk9]G2ly=K7.l~u*xD+='ӻ |DQy+>_$ta2x:6w5uuMdJSȸɣhAI8/1U ;չa?.]Pc];쫌8!yH.TJUʕ0Wiǐ qGPB'lϊ_r]5(ښ2Q܍-k)Mh++kKdk2Q M3&ywhD'; nv{%PPD u:mQ+7[p4M~⩁E]C{MmHGNSic۽ey/1 $Ӊ>Ҋ^Uh[ȟQtޱo@Ճ gLj7#Ui%ҊRch^9fK 5-9t!ƶ<)vEg)<1n/gej`PبWWPxoD'Z"NHa1DH>@`6rҨ(njPaǓ[+RO[lmQ9 ζ6%F@bXސW\Pсi"&|4!Y|X6tB[[ f#;,Xlo`i :;çnToteG@*X8|T Dg2/*㜜{Xɵ@5n5pԼ'C ń-BDLDvU6ypeɺ6y7NٕF{w i f:LkcԨ'QBo$q+ 21OŔB!=v]_ h3p1|)Q}<퉔wۍA؎v' SBJE24n@ڼLJD$@D w8;z3%( [kJ%> oFcp#Avki_hFb,~[ӂ:.nS6)c_^r=kj"^r HxPZ pTY|9~mZ r~I vhM|7 D$tJ&9'^O *L' $f",+O);m fn։hM(GPb\vtT>cx?K-> RS9蓯Pl%%vd[j䛝ɺ%+w[VWf ց`D=);X95 \zZ6{VvDUx'Ej,%NoS뒮n˳wm: )~ztP:8y~.eۺQ.աa)zu|8y&~R[n^!b+ &OL*\R_~[:6B1dɁ>;˷~=[>Q~&.$\ _i, ?\{PҨNk|ƣ#7$ ğ Uϛq(RJ-Sq*(`A Ƥw؄ϛ,:!]l+l&m.O{ngx-nbaBCQ8[LL)F&صIqqh"aO%[5:l7 2k^ sz?\Úeyv%w#vF; =d]Ѹdְ|Z\]wv'6UKs0UУy$RrY5X@`-? rVvK A05cuV ]#!C@w"?]^IwzUtaӢ.q3`3.u?,8nǎ2=vEĨyJ̷7L.#^< Co70<1 :jշ;egN#3K'4,O=[d"xC6rC-@" ?x$lkyzl>&.vEʪK7`X.}6uY;|k;.؊yDtIBI% .] :ǶR|ݛNUDCA>yz|Y*d8~*>sH7s%ۃ@{5.l욃RQm9 gmG:&ꃷ]q[69fࡰՆl@ t֍2m*rEj -yh{P'ൿem2ԽD2;Ez {=y !1o/pϷ;dkom# ­^ b#>2kǹKY:[퉷=#^OLD-n PO,mGxj6Dۻ_h/tݘc̷ s=[@i;JwT"ŖFΩHloD~h]ZC=nvcyq59;% }hMofbnpT3`[PK nc/˂V '; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/CrtSlave.3UTN?Zo7οp 6m\Is؆(`v)͊J73$wph}y~vwĞqQ*u8=/_~w?y{V+fħ:Mp mKJ%?U*eQqw-*4j#%:̔ZK " ||y1}?v1]\N'sbl<y zsɋц'ϟߜϿ{/yv_$k@YrߦJ +Hǧ.բՎTE*%,W' O\,A&~/>.,mWT]y#*&p+a\/lE+]P9. zSYxP'hu[UQrET~@ҐV*ˤoR4n+Ӽ$Md _2 [7'eA =aGΦ7JA*~N0!"mv}Tja>)}?Ov $1/>Υ/(9v'Kޡ^.P GIY`(^5!BȞx~ y63` Z΃ eL6B2$_R!֔%(=TZL<@S!u:#RH#aNŻ+RO-j7'*(*~=aTdz%77*F#Ti"pdK\_VWbsǥbzCTH(SIp ]r AT2'0+U>],QD2*7uP:SJMThL+7"]eWEWyt_&y DSIT_1OfV(j34#*3^M Ep$W@gCy)g +_&h.!6ރar!'Y B6p6E- i  ؚ+[DeˈQK8:~BJs;Wp+q}` S:P9y^溄B;B[i=56zxO`Y AQ:'z=r&=r' 1O}Nߖ] w` {W^^|ZPƿnUׁBhZ"FH]b~vv2M mx2SU4>#Mʁ9`m%b1hlmLI˰jйhjeOp7.?+cEv<i<H2!¡.cl[ߝY evƢʴJ]Z޻,Xl%J9;ք?GP \-N=r(aڒ2])Ĝw܈43=Pi4֠v؀@tM(]0½o$qbnBsmT& (fKw렡߄"ߊzQVhfSP &E 4폲oT޲_K0ᛟ[8ƃb{WRri=yX$@4*Z7a5&T(B,\W k~,@Pph7'q'Cmхvea!W[4!󻂤kAy}NU.ʼnJȾ`r4@Z)2T7l У9W;6ȅဥp #vW.@`WY KLz +E8,awg1x̦^J6e,%~|v!}q;'vyxÄ:?0!Xfe3T.jЏ)+'U)EKWYWAud2q/ThǛ_QőܸJ๞>U:-v{dBHP0S UC%a]I$uqI-pMe]Jytpƚ k{zi8ChZ:pϓ4$־=PvѢ\lQ?"(ߣeҤ*ZPK45f#뵭>q|2#?v_&v={3gV#~:CoFlfPK nc/ٌ3 ? tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/CrtTimerHdlr.3UTN?Vo6!-dpf&ˇa( hdHiVf@"y{ԋFnZ~p2k\(Mh%9X̕V-^ Bʅ`#Hn<0lx?X}+h<ZMHSKi NJ?Yŵ2+,/lTY)ҢoDaMT;gT҇d:<܋d:}@ z.Ի-PD@P1{UF `26trGHkq(IO;Cd{,:IxjACR`AB޲pmD xPd0+N4М k hR rw&+|q&O$v޿ ?/fשʯ)0]PK nc/# !; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/CrtTrace.3UTN?Yko7 -P9qmtXEq[mX.bb3L3vKrEH3}?νÉÉն6FSyWg^wk-oJ65vғ*̪Q^}Cw&Ku޸Е_Z.`|3k)E!v~9g Y)<)LӓFw"!471u^KesʍkjlcEcbc>D|;_.wG9立ӫ«ng_/N]2=y9~H×{ο߾9}%/>WKOfJQvQd11YeYU|)ON|alVhb-XAvdÙчXB?b,+h6YaoUp)RQVG ove@9&<;e+Lo0]xKo(ێM1be G#;O0_ޝKdSNod[i'b*Tj"JLRRvY宙9?=EQƧ5ZIIp<J D'g ~"Ze>* W.0dG /u"BF;H'$u9d) 0WZ}Xy䩔pH`4$'TA;'t}\kx)){3Jɫ_LhUh\9,brmPdI[ "D3eѨOȲͻQ}3t 4P7EVʻf3YfY[aѥ`?ZB{d&}JrG0\~GS4QzQ2SSH`[TYl6ZS$S-&S+rhNث2n\ըkk%=C4hddʙlgV}zxXjԵrOElMќ85liji|ЖM_,c^rJd0sMtҳ"2~>Ih-Sis((XדB&6ѳ=v#H⯵%*hi|Ւց<~V-wch4bt=xОrhR9! s! }u@`rϘ`gcעgWR҃- w"uifP>ʙ.h d#p(H72nMEr  uĝzQOD 7θgM]R\J BUˀs !)8$C8n~vAq0ZjRSm  ֫3~A&ީi{`oGՍLttC!E!>DM/ Gf:Q^n%V d`cW:˕'LCf̋V 6+H1*z7c&HDltFJAW+84R zPpgf0<)p,rP.A>;cj$V}djpa,4^HǗ7qFY_Ekh7jseGTme :c =*vΣ˴T] [;O~*TwL2nr)=du^)JFnuLϲw p2+6qZ&~pqm~|X͐zba5I+O7QÈRsW2,k'jC'kz g4\jnE̓[lzCMDࠊ|DO-hxz w5w5owF^xo҉[&1C#WiU#8^z8_g"z2,7:d +*>rhȶ՚ƈ&+zz$xXi@S)6sjfOW qΑ0Tu!Q1mk-O ?vKBG*"f=yԕ瘯-N ~'njEs?S'z p ԗ/ŗ).czmR,LՂsQke?IGPaz^BrwZi ;18ƯĔ3P% Lrh\RUM "[nƫm8^_HCnc>cFok+Hՙ }Vbg]FoI\O^UuQ7~S]&j0ʉe( z{uW;%)kɧ :px 7!ȶ{\{ukAӢp'Xq<2*,lXߚMLv| xW& :JC;Ye=Dgy5 \[\{K@Zw蛏Bo=l Eb׼_S] Ch0^ڭ5z_T+1{.{ua[\y*άwը3+|_o)|zL<[@u H;F|BԂTIt=WxbLQԢ 6ۀ_ƿv7 YX?PK nc/ K = tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/DetachPids.3UTN?}VaO8_1Y8NWTjYVnV;J͌SPI7ӋϴSXՕू4JiRR"})z4=3']cg3NH/"7F(Y1vQA(hR9T=f2[-M{L!nhi~NsH?'SESLpi>4uyU:GcJbMMdKE|1H?n0z@)&qhC-3|)G^iȬ R,dHlYK,}z |s4h&V]/W;ls?۽c\$3/D=ԘCLuhR8E--ZEJ(mX\ ,haOUMb1kkj:>BIL-znϒ qQ!K{e6' {TTDfF`:"oE^uiES]mO, EG\VZI)[՘PB*ᑖcaI` _ lKiSC[']gT5^xc؉ެd_tD Bh[k$l}͝-[l1ַK]A]غ %},X;YUHTFǨ̨ko{/ر^pfL۷(lJ+Zz|"ȈmU0d>rاlG1~ڀh73I?O7\9l&PK nc/F&y : tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/DictObj.3UTN?Ymo6_s 66Ӵ@;α7k( (Z+ $~ )/s(p#3yy݁xuw jeH~wrN^D~y^>:Zk'ZK?rfr-rkprVZi ^(oBv^KUd8oʹw,Aq,lHñ}gWWr8Ix'ON9^f¤~4=y7Xʷ[>țߜ Oޞ;Df39|AJJPEP-Hn?4-JDЯ+3ʮ-SVS)R23;*|g27fJN5<7,Z?F僮%7'X/ʥ=?>S7~ҫ+vokbouTNf؁p+kN~L.'")fnSyiw1R7(Ǵ,9/"`/$!?yx}>2#ȃ{Dz^vqP3@ 4s۴,zSӂPdҗ`f[hf Z) y(ah *W͢.rlqP~Uio\7%682TlY]FЁ'!EYʭVJV$;^/*/M@.w#6J^ۍ܋o8|RB:s(Ec-65i1hxgUCquOT9\%G}si+U5͉ZilaDt5)?E`7 wX(ꤜd)w2Y; [t [Ey?t*m:Té:cC*{z1Nrewz|-aii3v\ZW[>A--akة ЗbXZEvx5ynF?7*7ǘZ%sb/=¸iDM0(dMrrہօX0:֗&2}h:8-8qұxeGkIC{8EO4 v V蠁roQhKY d]%Gkm:5bntvR8*7cZEŒ4"6*4{9=O=fk! а|1P & -Zpr>]憘9ooX`" Ǘ;g3!UÈB3% j-ibvl_f.Qiu,|c L?,22@nm8dd^8宩C*@?$Qն+vq g D7ii |X5F1mT=s{SDo7KT%5. T|j 릎4)S]\a]čs ^>?#`'ٱDo8kGmP˼=muПx4j6f S5`rprެE;]tB}a ;J+hVtKceG:op0״  uiP,[{c<0Y)S2ۼ'oC̒hNi=8_ֆm):^3rOK,* ߄z#Ib8K"&:)~|x@N'hԈ2"H{x  S͔"k]?UăXѮ !Q1ɔ&7xvH0bʠ=<=j:Q&rJZi $ oO%ݦ#2C9+,`8ꬶM`XiVlF@1)ВEf3=ybECMPe]B۳3j;B]1O+0˭ۤX0|_d=3o' 5 $hQFߊvl)aP桃gW^(YFBN@3?S뼭 )`R%L|Y cnԹmRyy_3d&&ok<ʋPP}h& D4׽f݃a,80S= tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/DoOneEvent.3UTN?}Wko>»@lIMܢז-H 0(rd Lp9;CR`>ιyp=ѥyZ5tٗ/O+MSm-ּڛf+Yi&K}bAYkk緾krEʹKSj:*Mi?"'c,_'M-օMm-01x!xvys165]tzq;fz^?✮ܝգ@~L^,n}_>_?}&de::cU:J||H/HGscuVoiR\mJtn/SduXVJ%BfMfcHK'c-4tVW؆aa9^ٓ'"b߿ny1f~/5gF>,Z[]J4n֖+MOuA[/X춋¥+K1I44H/oǷWwY,]oFœ`oe|upv?_)h)j4'ݭJ'gG >Z9q; *F`Gx7=+>&_>˔:k4+3ÓoeK9%~ 7AhB{m͹YEJ1+?{#Ruhn IrgluْKFñ?BI=+ 훓 "k\8{jV|R&4mm}nl[ױ,NgAKC.dŠms:A-;+]B8 ZFC~$E }#YMYd8"lGR;g5%"fq?ډ/\(=_j]yjmcJ4]VBYUaYB)X( /f؂%}g-fF0bWY",BW mOo(MCA&^t|lY'SJGbKj K)].~K7fث=C.2ZIРum\L\ (xc*(ppS/&.] t,Yυ;Ÿ:!2LfC5 &@m`=4&b8??xܿ ' z&'Cz9N΍eI&z7'SE > O 풅Urno-_i]W>5Y]ӉJ&1T{n]j (Z{T.=X'FiwW-uQKR?[@`C%Pφxt}3Tv3pЩifk鲄 OM8i$\AY%`rҹeJ .2!EUK 7:%AVzj()At04+`GѤ*#b5WV٪ GD7:nڱp[j2v"d6}҆]GqV_fcw] t:"ɦIKu0̹W@d1PQnp\_qNT2bfrZzm `C&|[pn47O di[e媛#ߟT].4Àqu*&~ k5eN#4u̹ Ҥ6ֈi8ȡ|M?5+ ,rLe ,eeA-~6a|g1̍+%34bl܈ e#= A0f}o#=Bw0('a?v{D<}ud1q4\k ~n.^^ۻ7 _V%,$]==} L1 B 0>==ͮhZ'G%WE r K$Zb%0fy5 G8 DMW\$y"n4MvV9K8m*ɥ'gqA2r7I}ϩp< GC/5jg'ԳC)϶~,MpM{VJ\qX]M-N2=˽]wu{GB^5P/x,JoAr \6y?sF-׻c6 %R8VZ1NB-T2(1Bڳث.',Lk>{y&,DFaܷa9Ci*D xJ؂SDd4Ϛ_g e8B܊2\zoW_uد~ʑlB-)7ڏQdW^xh ?jDj5`^vTzߪ,MGXLNI?kyc''_!qQ|H, ~<NּMkrчoPK nc/f( C tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/DumpActiveMemory.3UTN?}Un8}W M G u5j;FnQASED"r~}g(97/PsfΜwػyLj{8л_5|嶀̥^ZZ:1OpSεN///aDXUy%>+AQ@p`v-AxKn7v}]VZei&ꮡADG_\ysՃtUA \ \G%8;@g&1fc|.H--Z#dZc&,Jd0)./ZBK,9lS(3^F@i/mƅ]c0Mȭ36n(-:E=Ίa=>^9gLrKCڨtKҨNOIG](nhB d5 H,m*O Ϲ9xNaf9)d$ʚ¼9bFN^=!#@[F#X!>$ NW(\9|w5ЭniKzfU7W-Y5f˟s Nw:~in4Mfy>Q_ٻځ`i@8X%Fn]b[?F!Hq"U(7'a>/364 2"\eE_z]P9`F`>恬dt}~r qquϖyϖ͇֮y'\4ng)vqq ޺c I4{g ݟ2~ou{dCg ㆞g<-ZX;(Xأ,*C-F݆~cQ+I ʴEJmKؔ`?_nK;3?zr8>nhXؗrLsk[Jm VWyBZaZ?X/~l}'/['0=oe`J!~< Y/iiNҜ]y:NvQa5yG-m E'Kh&\&y_`G -8ϒs(SjDu4ش6iƹ4#kN [zgd32:H`K+ns((gUg" CZ4+xE${tZA eujH%@ܐ[;'ٙ@#'D2eC -ݍ²R=,Pv^5DXٗ9Hj$K'\OX{PuGqG2Q8#B>>DDKj ˓Bl(d|CO<7ǼU! 3w?G7W<;Ytfk̇&zY,(3^ozLf@KbZrW@1:oD`˥]UFr BE136VXTbu:Lɭ.)N6cy&A|A"} %:/jk \y"(2Q"W,ѓOy|?K.?ܼѣfﲇd$7)`Vsجive-- $W 4y_ }F'ļtzb C<lAҲfyod+fXFPH~?@! gBa z|@j5ˑbYG!|XH\$iHGJР lY3#8wH$4, y܄픵mő~2-1]sXv!1 :@ńߥȚE: 2`1,7/4].$5a_&5b ]: 2Q7X >r 'j@J̟Yj H6`pnժ{]F.-a'Ň(?`x0 yP)ZmV;(2.8[Z@EK@岨xD,d*sc5A7$VeM鑕l2X 4' it@*z1iŠ.ʼ-s_ꂼpU`n琲=*l@dP̅Ua:||MznA`k6plYM8|4wwFZSNOiWb[}`|eJ11DWw7FwW7ת=dt0M8X"#H~_KƊ^Q!`;eͲ# U3fN)؀<4%v?7Q 4 4+0,yFF7dU/bQd,0ϑ$mŶد I{\ß!lp.%{1n6{KQœ7l̎#}?YtX=d2"Gv4vE+b,D`231xiiO~ EZNEEPhRV186~e7 Ly4q{FLG.]!C$2CRVMAigF Ľ+ҕMkߪc=HH:`!wo%ج}y ="bͮ:Ԇ$c޺ FA8t@>kռ{۟oF*%yN/E7gC+#iޑr"!XۓCr"i7PU'_œ$(ME݇wW?HrVk>f[sGFL-zNDsG&SD DI^q?} [wv)+{3!dr'Ɍw8wcwtk%EZa2!pVVKMqV>JLωgVb"iq iKp686-E_+JҢX)u t`^f/5ۼc h ygꚶJ %3i'l 5UW"yt+RJ1"lHy=GR)p8[vlx\쎨BVt{41 S QCh}עf@U?z=bJޯ/WKsRXVc%yUXU}jQ[ ȍjD,D[?t[!9+K8Rp>kz# ,%`&FofR~I}xj2i{a]{y+jgl^Pib4o?\s=>TXuU;Ϡ]V^dBm#iY$tnԽtaԢ;* $|t|7wYLjC/hu==4RRTO:3G\_hUYAQ^?O͢ yW-]&UN[hp8 6YM>JݱUt='Uv Oʩ-'c{(00$mq&45Y,c>@H빌YJEc:ofj!1QGQ!Yڹ^# u%ADl# pM7YC}Ŷ]6|"u q3߃-@!8^ -}g*Wt׺S9izTp*b|Q1'OrK{EҢȥsW#rNcNZi!@?%5v{uIsqv]7yYR1QXG$Use\2?ʾn?/.PNR,,Oҭ-06Ek]F 5cǗ*r2 w!usTܱLfNc [hd^~Nn@X^ ||BcٗvsrH^p`R@M\ے4ykC(Ety,^zORS|(D'QeqZAcke79v[yɅŜ"VQ q Y@eo{>ʘ ӺKR)KQF]%KOF n;[M@VIgm̉2X.L`b$x~eM%CabBX{q(}cWYjBь"Df[#aq6=5 }c_V{[cf4Vq vBEbh+)v!yd4p|]hkmA&@S''K}OO -\m\\zp5u~-h@ Z-h@ Z&n@6 mh@6Mt~@:t茉J| p q p p p p pJ^]@.t ]@.t =@z=@z=@;>}@_}@mA N?!/pykj:55u1Kuy>}@>}@`0 `0 0! `C0! `C^O Evt2\bZع=|?<Y:N9w`1s.p!~Ǭ$Q*0hMM m05lwv2Xh:=]e NpՓ.OZNmRP!}CDe =ߠAk=\} iw?iPhNKw)ֳ6M@<Iq]v +?jw1l ||ye ,`3\h ,e&R.Nٌ(Yi64yRX4m~wx/p zN`.q]– &e Ȇ+Qn$ SΑ9qH.:5&zG|TU,Mҏ> /ћ[l2OKx笼y|C} &cy~^ۦeZ'G41S[6\׺YRjKo`7RT=i_q[Rloy{ӊXIF#IP+EfB꩔24fV[]b% ScR9A'ޜ@"Ep 0O0/Yvwy IrҊT[n{v'e@qk9V<< Z0Gc9N 4(ZpHn۽,#HF5A,!%E=k^Ra9MP!I>R|[R* ⬆[wV+[")dT2eZEyQhUSnt?QS7-UGQ:qQb&Xٍ{a$j7mOE&뫏ZsfMj}en`n ̍osyն7/ q>e3`bĨfW.|,77KJRwbid2^|! AiyhOGz.ҤoZ伄~I[2!Vp5ՙUuMJ,U~2R6΃B~-i)ycY20/ ů^UށZ[Kb~ӽӔLסujؼS˶9l(deU% ,ZW<>oTݭy?xs{1Q8o]PK nc/L;i\> tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Environment.3UTN?mak0WnHh1/V1KWŖ1Y6-~'+}|w:YdvZⴈ i9n vUpЬcʑ10 $~^E}3bU2ؗ5wJdn }zHII!`_k`X_7uҿ^ _E:R5+︖;G0^Yp:{nsrPѾPK nc/= !7 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Eval.3UTN?Zo۶ HR8^p팹I`;6kiȢ&RqsI"y#=~8bGJJ֖$g_䋵35\gB=('W"W %PIX1>)-ߟyRҪbUJX zv̥$Q2K~DF6戃4\]F$E+*c+q# d~5M>gMl6YLs'8}̮oO9N7|$^ʼ.^ӛ.x*Kɿug Q 7Æ_"?9%5?jYj*ȴ9b97c6.4#͢ŧ[[>K֬a{QTqθ"Jِ 7n>Y=dߨ"T$yf` ?Ι*,QO ,ɪpVbe`6mDoF>msxUBO纽}N^>Ƚ>EYirY}eLJ= OjCNS~s?~崏DBL-2&&#d} +ww=sO* o*Ys`"m8; 9j7S+6:U)n^<~AV|n!j*ns(݈DVmdu| v%zT'RA۵ܔ2Qَ4U Ј.3$O\M??Oo/G(xz2_-h< ?qS@VNۛۏY(%Ʉ#HOCCw:jyDU/5܁ԓo89P휵UڜM^zB) 7 '+z%{˥pyo"Fkx~h*7alĤdbNJ:9 !DO 8brjbhx]H(*:^K(M=h;fsi+H~k~GhŻW $_ S:,Eey$>@%R(ЇzaSïk$R-VA%ZpI|1-(lK0c.E ]Wbr{Æwwв<(NYYOQЈ(j$*kC%1̪:VЍ8]4|TpĆ[M &l#ըb}.ʹTxG}K<L. Aƅ BpM|p( $fϼ!5gM ̃RQX "CpoS4\V`a;PT2XpdoK Q%v\*Jd c0rV[pװ 䥺*2}>?Ab<7ƺH;%$`й$>[Ӆ N[M Cngxq?'!v.gπ<qx\jcxѱfJkh Z_,L&Ad6%i;~ty86{$e7{STGI F.O%':5m +*A)*1<*L߀G;ظd9+Rqűu*g"oq<{!Ы@:#6 _>~xx1?S_ZKd Np?B?1[|B@ t9Aϟc<~/SVaBCeḅgP7S,A Ǥ}Rg3Ըr>ZTXïOs˄:* MՕ7Yx#XіqɤS) S.pU¿1QQAehBH,&6 sVͱz8jJE0J\Z3~Y#?xPIVOjU }okWȠ"-$Xm M z h~5Evo˸SF,;P)f;bΤtNb kB,:IX &8p8r\BRj< A G_}9V\q+1UK0Q4QCݗ^89?%ѥ:nRÐhRu S `r'?$2#mXmģ"0sodO,`H'rw@Mr} x!w@X f}UDazx,SEämOrpJ 3Ƞ2eQٕbg|4=C*=Vs.@`D^tsj/:޶fT>HNV@bJ,݉XQ=Y9Q{]ӗް3lFx"Fmf=gIE4AݨBԥaN-k7o"=O)־]ACR^FAU2s miZVWGcYV`׹T V7m;\?T a$< Ll;=mu\rU@Fsr2#ʥ((t D=xv#Qv l٩L nog" Kf [|6-[K^¡s[T*M8҈hiΨ‚$!Cwh$ow[`ƀ:Mc~i Lϝ9O Tw` m;i/@j C pH tJguݫxyarnSJɼxU-ſA؇#_-Vw5Kno=h]j94JC+g@}cD*\S`eK" _dxWc L;j{|3ద&qS/,]*C K+S!z`{oLKQ'[P 2ƕlX2ܔN ^ Q,pO’װ8y= en) vMछPÕDȰTekO! ^N\zI2lk1kmXB9HV74BXyz <=ؓݼBB7 @|DkQgO\䉚[`XXuP^.&=nhҜڣh6WΓ64EngYԻ#y% OU+L@~ kM(]ȕ0L&qύ;0:`(w9E!K ?t;;AOawFNHw45&dd1;PlѬcSSbF;FQ@5?xf~Ip8Q|  aP ?8~G^ՊŪ9m,@1g+Sd癃vfPK nc/rN; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/ExprLong.3UTN?WmO9_1J{ w-ti(T]ovcG.4o޷@'"<̋k_\FEpt 1*󳒷Xi圧2FITt0Wp%#fbi;0PqbNy"STFBYd,m P?HKIrXYN{N*SqHAx~\'0zKڛLzzgr{/ >jwn(^w_u߽oNO jaU1 aKUp o.-A~.pёs#lg! 0]YSS<,ϴNWBC"]8>"9)EpBZ?n7.LTW_"2t DPYLQֳ|/! 8C0B^L__œD?436. :ehA6W$I) <Ui!I5nD`3-u_򈙳>sYp't0`16RƳkƩ}7' swm_\gpw{cN{4*m:Ȋe"ŭid05#иc$>?#ken3Ң*sA2 6|stݡEjvsj-fk%F@[y <3_;k)RKs/ə]w+w2CVbL'cY~03&Ue3ZB G-5 m?6^S"dwtgPK nc/o o> tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/ExprLongObj.3UTN?WmkH_1'Q wׄ8'q[$6R44wʩ̮'))FX3]'uRZ,C89;CTHVfk,LF2 !]"d"G"Ai0W $=WJ /bTż=2Ɓ!Fj]^F7)> l4pet:ףZx5ߎ'шd,.^ EMp]6%ց]6M׉=iS+\OjUA?x.Y-n ogdA;ryTaĤu xFz+<,AH~`U'.D(ӣ=>QNic! e[<^wNbHh>܂N2 tĠ!8\Ѷ\ 1oNvc1ˤŰϱh.c TxCEbFd6d̖HqBú,3c$h\w*Yɴ\MbD|b[GE8 $`ovÅ8Ipm1q.X $jE6 wZBMğ2D# CVREZ&"85DÄAI Mugy ὆䕆Cmfd"cr/=q6]^d=WfCld:c"Ϸ7y0N&Zc]9Ls!<.a0y I(ˊsN$ԯ+$"`,nHja@YߣԚ:]#m$^e:k!Ӕp4>tx\4J~ʱMCRXS2؁瑋rjrF2m Ul$HȍT캾]ץt8;pX.'-w{Ud>]zRj "/ <&T"ܜтʫxfdt'h/X+5A5[sN67'{~Vi3:ee?)DcsArA#4yfUZfU%;BRGYJ%-nu_ W<nj+{WevP뚶S?Il9eJAp/DO1T*˴RZBF끤k|OEJ.d,ml t҉CƝ̣z!r;??O`;ZNe_PK nc/?= tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/FileSystem.3UTN?}sGz HHIv.Zo EZt9+`g=nmY:LMoO^(Ӈ+VG_ﲗG_./_<~洰ly-y*V[wtli>-=YyCg|;vꎦozzYfU\ywT]{rW7\/~Wtai]ݚ{a]%<״)f]rr;/Lu uY٣eg/L}/Bk>qȳ,*Q몶WNh:h8|yYի&%<p>/@rYp,J@)`cwSj>.@f^dfˣ\\ή ce 8huxV@Ky/~ď^_<<_k3C!!@/ny/ll^ݻ{qV4 fP1mzz M_#\m@B].dPN!ȿp8?uY^!dt(Y=l>XOhtᑆ|ۇKWctt/ sS-a0d[2@O6|@ 8:vWd%{Et5׎g(ldN)t9XF0qɢJj^|6뮯^GF>i4ٮ*ͳg aJKwʪѡ '7Lx60Ƒx)pdܲmvAK x[ ;ybVW?PH$^m7m_<ȷDE 0Ws}_q(A⽌D?+ T=>9%w&ʛǗ߽;99x텙e,Oby,{Fƛ:]s Kfց(\wyY 9D\n{wnW5/2y7eipTOH ^ş!85kx`i VS~\7 GYvּyWuKPg<}_:u8 %-qWLcU,(M8㖦*󱏳M/7Lll9 ŲkF0[eߤO<廻aPI>Z/+hv\|ф~ ^@Fj):L=tU \ :gSW42Z5UH*{ pgM&dPq4ǀvs0CVu !G:h*([,6ᓀpka߯x8b:XNYbd\ _i8I~!ێx:N7T́"V7SpWuH$EeFJYFu4MvzRv_#)QO Q UD'&$_Si ?LjN8o U@ۿb[V ʘڬ[QS-gY{[os¯)tGV@Зa<`~)Y3U}zpgg Qt 1"0r3'ly1O{tm >Oij y)a\RX&)]S(^Tj%ˀ'bYk.¥:~ݐ2,c8E@BM~pmvOWW8?yſ??RWvS}!o  k m0vMٱ(f2D޾X.8OOSY0} eGg5Ⱥ@CBN&n֒ā;~ΐ /{iaYןZ!9j"r]/.^c~'hq0`azHCftbSX.fwjۘm(ذg?mp0d+%=aGW ·_բ}OϢď6K"1hX+WhQ>\7cDB#"t")PPۂ2Z0md(Vm}0lE¶e+]̠-f~AvU (`F`+XSgPu1=a=-r m.w˜x_[8; 08~l=2Fi.~v&6#F  )r g1Ȥi$>Y_$/qhr|""DGbKm c};qzLO.O]^wp 6Ń@AT"\"3oAQ༟h\̈́7Pn+ʮ" up;TǠq ռӛ\E=w;WWǢ hKw77I.Ń@讛p7z-YS1`,(D["C]ҺO4 .ma,Ec x7x+@pu4 ~<7o5h5^{[> Al Z{3яarߙNo wZۦ:!h脪 G;Ғ )e m=SßyVlpQnEQĄl (lr8p@NCgD52"mUwN4L~65ؐEK 0+NQ9w@]jGAy}Ȱ7M jR~E_ qZf3!#z6FWhi#[Xw"D<Дw @2%〃BQiT|BVU G7GY[tLr@@fv #|` -Aȳʵ>:UT [֢h{oZkIE0aJ K9|Q(zG>vyB k02 ![45bZX#Mawf$ @Ng˼)$7H6R֢|W$]u;T@cd@ t>y}C*fhm0}SYLsOLʮ fx;]$$"[EaG9j?Nݕt01P\5]FRV˼jtU5J.TTL2Aj]?%UCb(utd=Opx帕ehxۊ Sl5ua#ZYp >lPM] R&F6;|$MIGj&ߏܺnbn%z/b@#gSYQ`l)r<):ԋωno9)NH5Ɍl\e( Ջ&3;}y tdۦЏĦHoJELoqIp*br8méGT NvґÆV h=V}!V)Xҳݱ`2Zj)5dĎIJ#, 865ey=p*T351G/dJYBKNlA?%tG, %5F;Uqw٠Xv[⮢̮k ~m:Jp P4[x5-L<8\ZNF6W7y5X&Ozbi φׅ}> KE@Q aǏ_5_%%xrF u4B!WX/zIb$qL~?~1B?6/^G@7xueJp {k`2)ـV4Qb1:NGBt!9?)zpjנm-$.IJ^,FbDCci((H[EI}^,eZ5 %޶@Kw],kT}{DŽ?D;ă *oaU9{1ʴ*Ÿjwxf?((&S὚DZ".:T2rpƗr2y3W'Mc,3L ~,SQ+:PO Gm,L4SB%7K&7dRi 6ҾJ.f=M'Z3~N[1t瑩?ڗ#Ɲם1A#mmH ѭl mi;Tcp4̏2$TFפ,rx3L3im<,Ӣa L DP$8<'Q2=[JVdDVQ? RjWy hw7 JM2NH r e|Dl?3WC:9^],B#6?yEL'IC{>NA! ,$F&<"Dps'4eq$Z8Dj{P[<ގ|xH ϰJĝ"A!*H)sn!: hdZqaثO.'W?dzsd27_Gm]|~y4~>4L[f̾B2cV !3%co|Xs,(xn^ǛysMEpGG \~xt BT f,6/2,dyMFfDqR:z: R*:1=J40:Yʧ&/UX/I)Z9Hi:sğ0v@`d 0&fUa ϣ\}6򭬁eӋG@8[ ;rJ/ J^T<mIVG,b4!)םB * AZb^:#=kMlqꀵhƛ0wEc4ސ׷w@](P<bdJG9ҥ.;^< C|h{6*G*OߵU;+Mҧr`xӱB52̚!8! c9(f ;G ƥG3:D¨W2's- Y وPqNf"ER؋y&7;y] SV}1 P -cBa $KdXceh󬭢49_E|?O_?1 sQX,\6@l+9ze0g?q<`]pD\4GB\)RtvBEW ~氒"$ܓ'-W2 Lq F 3'‹!fҾ%e$S+'8Ϟ )z{w 7 'cNR ^})W=Awhazn -&@^ЪU nb#Y%oPnG]kq{$) p10&i2(}URoZ\ {rcYŽ_.bME?9QHnY6s$A 8$^1x |5Ƿ8>"V!z:GSkF( SqMDl`Ԁ:5񫭳D9ŎG+ 1o l;,PTq]La!|r![o۱}kb𮅑şiGӱGSJ07wѦ;R"Q@ȡ.d[FBf˼\?(@3lquh{v>1|VK<|*i` ` ZOcFv1}}*5%dDRgdg+DZ !'yiOri8\AoPPSFn6nU 4+؏٢M R $&F#ֿaRs @MQteph oYt|l:L"[Ojb Bwæ*>,E\#Mo輷ō&ܝDe/z6oqB[RTO2%_"̔f}}bk)I-9ybd.X0. I$¥* C<Ԏ$K-[-RÉ,1DxUbYV_^ Nc6/ݳʷof쫙03\X|4O`cS@l}\iH )`ՓzP>⫉쌃"ZYM؂@*8sda6PrNӲ m;$lKH1>y5%ᴒ1׊u-l]'@~$B&揄ROdX,_%V6S>8#QC'֣g5b]AD^*+SgS'Kuk.jM)hs/ۧһw&Wc'/k^L_Ʊbi,ٲRMYēIr+6Tn'}CROoA@i_w!OqBJJbE~\DТ(+JR>]/yF 4#e۴Lykn|4:w\!OOpxm87}~1EI"Ry֏rlX1K?^!"ִӚ _anxh!ˎ=/ .5v!!Z$c/cm }!xl{r@Ue{!Q(ʹM%U ȋa胓Lu&PO&ͨt&INPa`'1v5_ݨ6(*PaT.**T#a ]Gb#}C]-2na>I#bӐ @ nGGX-$=juqSBQ)6hԚXfVd9 V"z,3D&`/ j%X1+ "A ,%{"qd۱%&_d%83p/4I@J)pu.w Sw,e]y1Eg\r ‡@z\F &.RQ*yqZ>ۭt_>;7HR9COV w`:,nmt_P^1yk0МshȼhˆbTo%a`_M11h_9t7 r K]` }03&zp@ONCXHWρl7IQf<^Xm#Z[l8QAF *OѤ P="O8婐<(՞ [Ѭ7̘rWWjSKjT7{ND-SC<"XK ykjTloȡiN^FE Zti3(^>qi&/T@)X`ucWM*B KvVB:fsĠp'C'l~eH*ŷ`Ъ9Do=jXl<4OC-ZLgwRUyLcTp_8\_~?3co']iR=݋e-U=55Ibem=rTy'4Ej̟`.Iӣ|"9=\~J!ja]ZW<'%5zS.)Iboh_M?L&ol KPR joXn(K\(ƒ}Vi~9s!hJl@y]>l[s"GS_'DyOZJ'9-&bkbL61$kaPd'^(T4)sDuܠyiPES:O,R\?C+ᄂWT2Id`g04ȓ9 ^m9Jui{)QN] &(IJlIk=<#TQ\oh|7άgFK@^|ڠ0c/wMz}:kS]cE6 g{I&ip̧)&HL:b2շg <}Bضm֐m4G$%6WT1Jko1B@Ξlg;::^O{}B\+R hWX?gؾi 1UWVm}Y'&Vzs޻ЋM{U^n1hf[m?4E`UzU"Hta탷ҍ0{(WZA5ql,?$kJ"[uz4ܿу\ʬlcv)?*$1щ$SzmLޙaJE}Pr)KZ{-\H./2s}a`KҫCzcK7j;+ _ao5L*h$ +,Y ~*N1m-O%F Z. BڣJMLY,w741u΃l{E]_7`}Y]NE[_܈Rx %m:Pn+GdMk&\LEruoh԰2&{c/ͨڷu;bQ ǓPrzm!bMձK))x:_'d0r3ͺ:`mIQ$ j!$1;EBMV em70 /M )Xt.+JBOl EvR$'3Po1mHo4G)RF !)#8ԎDj 4RY$6$m G5@?fѪ%H |o\qİgArMQׂ>{B$gt#n]20( 03D4"YIS=| K!,I܄$ 0QW`L2i1rrtM3*nm8AJ _cL:)6F B0Inď~ߋ[?~?^6_X; o<!yDG,R=л3q#5HfϞkb>.o1$T8’L춮ֵ 8G[f"Vc2,C !ߛ ē BO_߉6nFCz_BwQ N&Rr W\(%S{5ÍDXg!Mu#NI|4i2EJN'VOydT6{#/AR?$Wzj+|j:=ށ$X%Z^pMDXz9K>u]+!a';1~x79?~;16kb$,Zmݷ`Sf^h|Ѣ#04aCDO:f' }{yUP lN$;:<o81Ȃ=[[w:GR2Q,O֭=o펓}Bb7$x8m޿;=\]N*`Qb%fnvvYi'*FRY/%EHe'Aa[?23HPڞ?xwl6~r2Iw5nmUDTnz|ϕܖY͈RBdr}8|{|vW4_~m%$Q4 oAzܲmSUfA9 PQ`g"& {%Chp>)DQ4!ҐSwL6qy`~≱I@Bh&솈)h~aʁuJd{O 6dG2_;Ba-G; 0r_1_҈3k1"nn7y.HDhмpCx!26$>LQTdeSh&BʪIF˘[Ż1#O*/fVꅅE& 7dZ,ouFqi)WGk2B {q%J1Oڞidy1nlO#9UԸj\hEy8w!rU<oRL%9\O }J5)DQV, ]E}4=NjɑZO A2:`["A147;22c} -c#JjzX8giDG8ǍfX Yxoɵr H*!L1.g#[‡bk|olxz/Q9B?\_n+KwO8{ZIKt>J۞߰vT΍H0n%wsӘ'Ur (?s)d?!>{ 6ΝsS1>KUNXmtb-]JHEFA4;(M#)KJӋlݕAx''8u]Ip. 8/IX$ aq[!庽iG̉K!Һ]͉W:R*A䖉BV>4ЫL2HAp%}Tɘ# ICKD s^S%-uDJzzCR UR%;-q;HM 9wbgm<*b .S޺Gea2m;ʝȧ)L]`k8HSZ9NEq,tB FcfiLTlۖY|ZJZiFn|'e b$!L wZ:LƨbV g5tIE,1KI ZTnRIO:$eI)3==#ɖ!(&ZKEA<@|2ZO9yb;{tJduDGsJ\5qG`ŷ?oG=Ox~bp(3Ljb_![ tV T{maBI!L eh]b]MA>DbxgMB[ka/FSS0kq"R8rR N{kG8F7=ڊ?.,-UsE wrUVni'ƮG;7잗^cPfgXducqZv&q&ӷ]Fr-e@E쥍,a}V,Ș|@Mu{BFƭeǾo:Kc6 V S_bgܭZGvcnLTFڍT0`%y )؃/A`'-f⤁O^MiZ#9u}|SR@׶#nloOF>4tҩͲ»RszM'/Di?T8"F=G Cͯ~7Љ<1S]j,-Ґ60m(΃2-2]W7MGٴ(hNND#< A/;Ȃ%HC(7m֧>_wa6l rzx ul= ͖S}4}x;  2"e!ڈ1JmA۲T@x~:M'd'L75A4YB[1{ f)v2؜M^9ާ쓣6Wu`#,>7h/6m&L`̇.WMcqx}\ktʭ&;XG->#ߩ󣌚D!n5qB.D tlYNyܘb(R?ԋSW\ 4J"g6()SfUBHvNT/Jhd/k[nr5-$/vjVv"U&R|xmn<ٗ+(<p _$yG&S[c-ԉ U8_#88/ &@oII '`-$ ?0oaǿ:zYL9 Y9 1"KF`-u0r3rTI/qgr}jj]Lٵ3y!֠_Ad80>9J,)?3lb`L=Xw@G#gqIwoNiR"§\i{ _vd#?5P) w@@Gk0ixYQNK;>S|yB Q f!l(OK~%> c LMDYAİjr6 "T=4Nߐ .# %dJS.AY#vq/qrh4?uK;b7ۮ"sg,~_Ǒp%Ai˨ >kG*wGlq >)FmGPf0i{aZ mЛ, }bg4)H*ov/ RUsYcܜG WM0KH2C$_!3V.}m8gӺ.I%I h_W dŒK.@O.G*PvR pm8l|FF\qnVqk.]BpE䙣bEQ JK6= WfS@w3j41Է$U^G O$JZ cQXː;+x'rgoT/A 6f'f21܆?@[t?btTkE$Ka/>\\=i(E/PK nc/yG; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/FindExec.3UTN?Tko8_p $986&w88P6,mQHJRvoIWq!X"w8;;ãYZWebi89)=~p#Lm, LW"DKL\$( uaZ) BҳV( _ pTżrkLe%kMef0CڛN{8D Ǵ]ǯNu^]{ v:77o?BE{(P྄ R`\wM 8ݢUϩw1hP55LJ04 >E,aԻm8g RVd5PmWYF%D/|B K,i^s >OȌͲOL*E&ykM풭HSx\/Vǣ(d5-{W{yooM$ЧO76,h&i.$UAUREK,a!Vh;xʀy2? 'q8`2Ի;cRV9*ϡv s_q?J?Lbt` 5RwzNܙD-S$):D?~O)81&5Wt 'MV #BFRsR늼mvor8O>,x<5%y.OB@]X(v@ ЋK0|H5* D3f]}@koHf5\e-F[?Z4%!xiXQnᦇKoЎXvUݜ]QfVfoKT^[' +N>J_"']UMuF*7'}S(8sipSRQ?:f,J[qW' cp7_)iӹ.yNq+q:`i 4Z&(G4F1Ȋ&}c@J+J6YъXeKflꢅ-&Ț7 H־)+4Y `]# ֔R|S<-Id( 9Q5Ch|(Q"Pyjfh@(M[79KEWst=/f|,[.T>Q+*O[bL8og=vv(dՇ؇? [<Г!o'(bv߯ F̱PK nc/ׄ$> tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/GetHostName.3UTN?mRak0_H MF044](#ɱ-I.YQEN޽{]zںuPh4¾E*\m]5Cݖ%:S^%ݱ| p<0>,J z\^$Erj28I>A1UĽE^eYv(Æ1I]ZJ6]x:یqPP0n..JTAj.lߝh#F*|ŗ]!5>ĺwݨ? =3ֱf.VK=24A:_B㕌+MuVdXZMh &(`@&d[D2 m TU?: 16`TԨ"$[z"ktA!cKʑĪ!#We8])z8{ܧ,(gPK nc/ ; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/GetIndex.3UTN?WoF@-P=NqV-\\J\vwiG,!潙ѳQzD;zVmM&s}ЕӬR>-7VZSi*LiTL^AʏLg5jI99ٴNcc9/&irqA&dMW cy:>}=gfu?oƷt7_yW?wgSʷ M?7uzKJqIYjDoЈfӕ[(I߮t ' k@/m@b@tw^/V3x5;deuDNMbpϯh׌n>]7Sc*JcE|K/?؎<- 89GM%.5OV4:_Wkvʍ䤏ᙸxRit.4b14ޚ\iӃG&I^6$kH+*[}:iFx\[g\@HŒRt`)Le.K vl@H(\v#H2dsjF,_M<ż|JıiopP8|-b:bHK5zi/'{'| эZa]ӷDzݻ|9Z$JӦ30iQ )q80̑~hg JxzSR9nOP5W׶zZDdr; #q(mpVfBTP2F*ŠN'j+Clae":MNa`9 Sjq UƌzDjHqNz̛@љD4eѶ$M7;]zLT6s'r {.B{R3-CzgA:ʊ7~ۑu0hCG(#CE=פ`},Q`Lu Cw,inyr"uE- xPr۶#OuM MS1U|@ qu{076'JG>6y PBapv'#ppu|G/j¾3W4yϱZ$?L:([bX 'έь!L78F*3 / wU%ڈA.Ii1k1½n*L2ógLbBP١Ku <`pօٶ[+tunga{MqQ4Mx"u܂e.H&v0V)~"#z;oxw[n܍_PK nc/V&So 9 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/GetInt.3UTN?Vmo6_qp 8 dNbIaFذ]4DdR#ޯ)NW P,so|hCzX9_88INsesyyӅ , ~QI+ݚVz<6J([zRLkF0P7f!}϶QrEV^k VXK98sXCAZYb:f;|&2]*T.*n>fNb/pV5F AhffR5eD/%U" fo $%OfٔN첅ei{9dĨ*'I%B&a5q)=,Ne 5^h!9蠍+D-5BDn<,oU]+fEgBS"3% ?OxM?[lʪ'֜DG^@iO,9ckK>;حC'9{W.d=s BNABқJH$BO\xqCHoGxXjV ]6A,dNmCm K#6P9]j+xRߏD4("ND2lTzt/"|WlMN1l8R揄0Um8ӽ #D,b,{Ricm$U"RVJz{7e]U#ƒyy2xymu[v˾)ۮRӮ(%KGIX]%Wk(^˸J4j#Fn "S>ɍ??OuGNcƅTqUB^kx<6xԥ @]~}VEt/%ZCXkLQn{ߍ */WM̲=6Vdhx6CdA]&~<N&c8x0(^\8:$!`777o70pGHW%66xe#)f-B:cV>:gbN-"_\ n9-v?W:x&MQ=?di=M;lvp1J@e.G:[ޘ"(>"B%slA277}6cwS'T mǘP!?ƔNIKjǡ+t^%Z? kKMrݳsB'@ɤ&p2= pt"n!肇 %reɻZ(VBeVyHM1lGmFtDu¦$JfOVyZ1: .%p=¥L}[gDGɲF*& $yݰ8b~뚽K99yrv,<EoF;zR?8}Іz*KĥsfO-@/ͮjYqTq>8saDsm#lGeGlBpY&U3CyJf#xˬl=d^Y۬ q4Jl҇:^nӜlqԼwWj6PІKs(Z|ڪ!uͫqzE09ˡNf=ջy4?QWҿ?fD?CPK nc/$: tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/GetTime.3UTN?Umk9_1&8qm "K^]"iLH^;>>xgy/Vb5mwNmg^FG*0fEd]"B*Z 4evoP*Zw.يO`d8v\ -܏tYe鱘Wٳsx^[h.,[~_cXWx'0[v`@9],+?t|Sl0aPdY~eAnb2Bw tVīW'xtz3<?%K`K6RvTZ:`ݾlI'&7y9Ye1l>gKrOPuFr;}sh{q:HHuv$ `IMžkPY2X)"+MJv-YJ}e@mţx֥oG˷g)ΙaI9iOD30&YLP{f5[#c

Hp5TuO9.G@/G6vG1RDڊQ\Rm)r7Ǒ8TReD(YlC}ТK%!u]$˚z W_2iKtlqSPK nc/]AkQ= tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/GetVersion.3UTN?Tao6_qp 4)\5N a4ǐ tQFRIwY&w|X7#VkG1... /h(,mFV>8rDpkJH*CSTڀPi-_!pURXgIJ AW%l  :Ǔ8K2x2oqyQ@W6/ᷣw>-/+?X"ΆO0dytyt'_.O/O\54#іE[qGgs_MpA;`U΢]~/> ]0i΍ L܁i5~Ĩ* UȶD2Z2ʺ[RqҚjO]!Mtd]2N_K4}ބmun_X8u"5X[DnqNgݟ*2DPI*JQp61{yD0ĘVa?<Ɠm%$rwo\%uJmni<ۤ:Y:Sfo^3صneIPa N-/U9poWpw =DTV5"+7dOD' Fa]37tpFu\d`^#)UJNX&{ }/O<ވmzTPqh^^Ö "-K4])IQlaDChQm<+^nn5Z$H U7%OB' ;hwˋga@/ D{U[r6:pJ J)d?%|@Pص8@~HXK* 굣NOϮss;jd7jPhahavPK nc/'c;27 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Hash.3UTN?Zm6_Al _i{Mr8vf$ޅ4!@"K]YrEip慤HޤxEJ䐜g8~$/ͮҷZOO?}DWJNխ*j#˥׷W\&^U^AOGA?YS7:J3Z)Mi3HRJ:UQZUks$A\'. *TM]EHmT6A(!/Ƴ7E^~-]Lx4ӏ7qL^%f5|2sO;I}.ۍ}oYДru#ȣ#MzQ%NTeRH JN.ތƹdq.S=/wPUe~8*jO^~x5mX'ﮧ/Gog7݌̧v(OVC-d:WH ,vtj|`L-uB*AaK1iփ(-P)h)Ik|6`'XvB$NPLJG E1<Ķ2` aTRΥ^BFSQ(mbL`\^%9vi' X6\ nJO+M#xn Pւ0i_`Zb- r@7Ei= Äak,M$),T*E%[_wJmd]%|JʚQ"m{׊^'<"\y1]N7D onEx, p1?UUbʋM`vֵZսYІݒI1Gp+,4)ҝ]yC3TհCҜ|i ZK0HYI]5-`<$U&D4JL;@luX N a v *Xbbgp23 M90I* cC"( +b#6*%"z5"\]t! Bt(/E,z[6)': ,ZaoT]Y,mBS!Vpb*v5*mR"?~y|,7+` F@R)|3gRU۔ԏ {]Ys| A3NΏզ Df2~Eb\rJpekqqG E hRdJAc M| .%sDNR.6ʪhѤw`cWC !b |H#<@;MP<\`a`c>3̉ڰ3/lhI)Uk"R[E_;B<6EVfC)00Ui 򬷏=1D5/`@_H_R[jos5uJt Djep|,nr$H{= ] tq``@{1![J[bFl򬙅íE9G)DAYJM=&LX,3O"6@" G8Op4}dV*SקNOH g=1%W ]S㪦~7T?]CjńAi F`۲?c& ]#`he}j~Z#fȉmuOE%d;KZ Ey$ T゛ibT&05>~9J[锟H?GuXxA.1O 9 Ωpv Ant(`m|DgqVl~ kCSԧgql; f5J-[B(}ºtМ n6=ub46W8CxbܔB"jCD^oURvIpV;7f+5sGV)Ci!7揑  q4 jlq~{ז&8h^5#A[[Rw߆mh" tA(.u EcX xRWmC,qShgzOYe"tj"i%[VGئӖ܇)DЂjv\ d怸5!D+ i/=U৴[mJ43PQ;D +V%"*2PX峯v(5iA=RB2C5Y[Qp[QE}.tNB@{_Q@#M^G{\~jAJ^=T>{CxڮG@UR!RHm P-ڿlnWo< <5!!Nldl9$ܧ":Z=>? s``pҷNZ}8YV;4\2-4ąHJ[qu\+R6b(ޭ6tQ{ƪAb1,i*!쵣$Y׉& PC412|>v.Zorrlx^ˆgY@+^UaM}ac>]خ?6 `ܓO@DZoPBƾWls^ur9=+GEXUE \$ٽ64 ?Shx;N@!ݸeG \vshoPUm#T0Vk($|[N m -iɐ#k..j, vD cgյ"P+}{#[V[mz#\l&Wk [zbR0:)T{iqxԪ33"w Ȑu=v aZU@Q̬qcA~f@APc[{Z7 G:{.[ ck,,9tx`㈬8T+pL3xòګo A/\/J \]1rn0pN*~M$;ߠNar&p=xg6!?,Zq'{eyrk@~&`Ī=wI},e?[=\{HSh/ vO44)& +EC9ovB7˸۶lla%J5VL[Lp ,ڸkw\ cS$]gV!?Z~GДkT[}RDW+%VG[)G,TX8ꉺ70WƐxD_[kFc9k b\kߕClu ]"Mco3~"Wq83ؽH|P=WIrf_sAa C) @ʓNʓ(^qKn@C~7mq9k['%=~sn_>l|YZڃ^GDh+-|d>3k8(BV?uAo3h.G)ԓ^m7?VyGw'_tS 0|NӱS g吣n7}5VbԚ/N0!95َUo' X_ u5r%+d4/4LW%a TZ&vaJs<zBğqyA>J˦{'z^.~D2_|S ^Az߿NX褾AC@S(lk잉>lWPK nc/ݕf7 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Init.3UTN?mRkk1_18$Q.cJiRt=IHrwK6ڝݙV=\ugp(pzy98>˲ [iTq"h5j.rRX\C|:;b8姈'Y6x?@9-ȟ,; ֢k!/o͏s xpp[̝6=Ư ƋLGWǨt[Bf㤂'©Řpڊ=fS*|U--m/C(}ƔU(_MFg&Bڃu("':9K8z1/dz)j,A9jqSOG:<qba:xkiJ'ɶV"TRZ M"IČj EY(h-d/8*.L76-! )҇3UiW+KIѶ&^рMK_jղ[*Q9sڗҝwF<趘_dDk~}\0amC"?;PK nc/v- < tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/InitStubs.3UTN?Wko6_q f0VcX  Z.R\Ҳe#s}@W ^NyOitㅫ%T5 ]*:SƫQ*#m_J499k8l;d >(GA4_'sFWWi4f$Md9W4?MڴK>YޜۯN߾ߕY䩦/[I*9E@SHo]rg4ϕ^:6tl)?E*F'PFRc%>U*F*ήo)4B_hm&+9z.^{xjCzT!'5|L?~5Jp77sߜ—C^$H < :_y`VY TF_Y(WdI^LT9-7GSp!g֜RY6Yn휨aA'@nρ2T%GۑKOF< *AފJP%kQ`e޷b7-חz&xV@F!ZK@a)YL@fM.S"Z iRU4k 50 GDL"3Ke` jYSȹH7ta ̑,܊- Z7e*2[.9%*yPy\x?\a'z9 'DE5dMұj0>rKbPP\=(ZnƤc",d䮵n L A%nmW@ `zH>3Xk :&S?fz4PV“TK[I.2bva zpjC=$v .e۬e& M:cm-̬ar n4q/Q eN4>YJǾQ8{j߅|]OGhb*6\}wl۲k(8Ы1c̔AԇBܽ؉8HE.#Ym:_}N-LM+kHڶ%]'E)WfyͿeW(֣:p{taX22荢7tB҅%\$?Hs." {^mׂn0Nq pj7Ј{l Kn}};aiioh=G$u{f#Am7(-˭R_lG ͐1l'E3a|4ۚxeI9Ud,kA<}N&'~_&~_"PK nc/^X`9 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/IntObj.3UTN?Xn8}W @Q4KvX7q[NlXi YbveQ dQ]PB3<3s"\Nyf`7ڃ7o^E,\+8|-bJA-)$,0HYD3I}EJ XU? o(Y L*( b(!!qp:GsdW|xq9 48vq|8t¡??z?+M`=_rX ĿQT/\o@?&l!B Aobx>"Zޕg7iH@UkH-H|R=+i@[" 57) ĸ)zC4aCzX|΂1%:yeQZ੿T˿937NwCGu2Fô땰.")\s9ݸˊkcGFTBuze[P7]@?ЍJ&8x܃l[Cp4F4+\=.zTijUAH%iZu_C%lƠ8~ SIoi6 /ꣿ V^J_+xy|`~&TPEsb -*($_rdJ<C YAM~^YshEH"Rc¬9xT5nZL&|6]z.w)wSm95 ,VŢN|ǑV'-[Hxu&&,8K¦Zemg[6ݨ%mw7f%ߚӟGB{N:Xpq|sp4'`1܃`--D0-GGDIז7q;eYpE\HՆ_eRlMv|Y"fʼ"VxSKV Ի/)asЬ=;;sO?>=?? -Q7K;ޘvބ5>R[5t $g]#ߛYA~$'MA[hLk2>7)tu4Y`l#QKՔL;2FOF-(f2O[yy}-?\N7񌽧BznR^F4;/ONN~8y+SyK+c3VMV+Xd}Q}bSL+6Sn--t9DLdwX$[eQ(xW1]TCKO 銀l6xi+9Ua>[֭.<|BF,8iy Hw .!HDe{"c4!D."XUY:p!1A+s3?bfr6ubh8kOc8ָ1jG+2]as1 44A0CstMgjVز2Ȉ[,!Ld'XN#UðW(6NVFb gE9RGL`mrrܴPK{Vg5:1 Q'&J]TUT9dq[hCzB}n9.J&Ñ5Htl({u[T@]J"IS4,PqBH`ZAc+Ә``Lỷqd~`H稔ϱ:QBǨ穽:4(zv.JǫbZ@vqEG0An@N6Ƿúc"O%y2鋄pN>y:~}i6w5 ꕇKghHpx>BaQ$¶kaBW,$ ؂9NtY!{?"vcȠ lB$0 Un4VsEacAqO (zR%yilGj{^n)a?;FND ߹x=Ɩb]F~:175'0O`-XzJ)q$)rxө%o',X^BZ<9zuh릜^NXHDJ`$kMPK nc/t-: tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/LinkVar.3UTN?Xo7}[@v o&MZp8YVEdɐ .%%T_3Cl1oyЭǓx]S/*8M^d!a$RW *zRZ5tEfj%e9Ǐ05ܪv,\6T.$WNƕ;Jg!*e4O\X)WY5iʱ6" nqIn{#~:Qg0Izco=+7gm]A_OƯKxpꇷWo.!o( AGLK] } ;kRV(G :hn|kJ s}ְV)Znn"=g(u&_UNj?FI)]s8KpCڲMR M֥g|9\Xգt 3fD> +*nnwFWBip(:9v2 xQHm5HkmtDQp0@^#_繙mbGJ;rFSɁGˁ$萰 ޓJokWyo'_v3Qi ?oCr㳸ߺΠ fq<%VR<_pBWZlz/A3U'l+EvntF'{S7I2D1)nD+R>IYr)i1D~UZl/_ډ FVZ4ǪZ<,KށSP7"eS~w4TGS'3_V/ɤIלwLX숢lB 28Ï?im]ZPyw2ϥT-HdG8VhIh4y< IVnѶ*8H՘B Շu\)S5SmItvD !F/d5fE^39w'4Oɠ|&0^4sLJkJi]i*˪i$ek7TA(+$҈a3< {cdZm@9FTFPEOL Le nXW`AV /AB?L&8ŬLtF&|6 K`}s>U o􅬅2!Bˮ.KcU?μ}Wc2G+LU 3a~92xʮVN^Z;M尌FɨaxX ;ԧ/b959_? Sȟb~4>6 MDBayd魢IEc_EV cY Dž&R} ,!\a+ <̶F`rzN8b&b!D#RyriTULOM/5F1PLܐOCyn 6M~1<>%h_`1PSWcS"gg&WU\MU&"UB͒E݄yV)~I.60\R^:l>|'jC3QѴHŇBl8sTWnwy\ R\Ixxg)z~fE7"wSP.lW@ĝ@=$q6u2 0xB [9.i%\Key˲您pJxgm h1,&G_y3f1%q@.7AӤySNƨ~zf(!j X?Z@I *" Wv+se;ijrVo% Y(n@ Fq-g[qUUMX8m~A M}ћ #vZLonk >\,{4)yJ[tme,6d4JMSOZ񭛏x*TCZ *\ShX=!pS2;:F ;gUW` O@Mv f$N@e/c??Lbwz_NE-Ժu.h#$ Q2 rpW.{ )1}6`m0ee7A<^>wax{HDWb1_XOvÀk} #U!x*&=TH}-샙ԠLFĆCovb2.иl6Bʠ00 j8z+ܯ5*@ֈ3lSbjtj_L6 њ2J}XZc;*;i ~ B^AjX@2^S}TBc؅L׌k _ @L!Cv?`o"XP(ST%h:@9:N0ll6$ r7+fLLcñF1 XDxH[ڵgAՒӇZ#dB;p6kk&;ã#.̦Lz[NL ak2ǔLI7%2+"+JPqQ$sQldj}z*mib+>l'5;P0 aSϛ@n 3%=N`Q懓T4z TQJZs a(jAFo9p: 8}%> ?w#CwIVRP936lC>Sm_Ac/{ \rt5^5;`2)Q+z 1*G\y,JqabY?0 "z+va=7ޡ.^fZo~X#S/d_wloDTVxJJBZ@01kNmn9L^BS镂aWVyyT @lئ^UaSQc_!=bՒ<ťgq U?R# ʻ Asj-%R >b<@RB&j]j^ai6i C Brn- hq#\6Cjl9l9?cfw1?z )ٕտi?0qѧj4lJ0Ӈ#Ȯ衩@"PK nc/Onbr< tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Macintosh.3UTN?Wko6_qHZv}a9nk, V FKTUJKJ$>\f܌hQ[GtûxJF۝ucUi"^,VR IB2vҔvD6*h//|M j|_?{AͲt%RU9m?^ջۏ?挲ۚ][MRpQBwrKSzMوhďK1weiGQk_MG;]IV7&N?*;\,"Yjr;&j2 ݼ-r:C뫡Qi3صLURLd<}h2I??+ ۏćoHS{sQ[Sn{^xVӁG0 =& 8#?͕{!3[e[(C6Ѫ[:ay[{` `9ӡ-Gx%| T/=g k('4O#kmnᏡ5_TmR6ʤUMdM6'f=cݗwM[$MF{DpTqTc.ui^6u r 4 Jv1@[=F f LZ<![иD> #sV\Z)Lb ]Pzڷ EIH( ^~ ]^C-|8.U)D 2u 0+_ +'@OMW: zA~-A*Q0(#KyntX,ƞ`ԷtYN!t5E8,JwgOsP5oԻ{Zl*I2T#lx6_דl12ZC-sU0r.d EéD2`b Y4'B w''a*wz#NDy1%R wsP3>< |4{Qd0y'9PikIQऐ7K#mJqq[ĀYa ֭ v!ãĽG.$~.s_:eff ֑QҙcC냡8VO("Q\ (R>0 tkaV08K_=W@4\ґ){j>ɨRmpr>;^F4|-n3 MFo-9z5r8WJB~r|@" =t ,nNr 2 9d,~D*}oi3[eL֧ G;U.@ Ƃ-Lyl(ΈdsϾ^m~~}H>1ǾPK nc/zG< tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Namespace.3UTN?Xm6_1p %@=zFamX`AKDu͐ެm{ERW>P?0]Jyp+D {C! ?D Hrf;A{T)ƠE,M嶠wVڡ.iD8b2m`u >M6a> +i63|55,QG"? ow?@uo|WY9u+a0"WTk!+؊D1`(l@3k$MAaW?(848H+Â_!J8 >? g!3Bf! _`91dHcP| [S-x.*nF$bI[SuDzVZNЭVr$^/iь/Mxgق7< Fcl::cn{}|%()bʣ$8qg״']{ 1DDoxLҹ֑\jԔuo^2ɍL8~ٌwjkVjkBKgOZOM!~Tz P<{-CBji)-TX..ꮣTr)UeG,p:,+m* xݔŝkWv7ߪ"gHnE858dx*s6Ӂ^A"3B&4"0Ij652Osֿt  :p=VLo;LkY  a5O+hP)LlXUk4j]d(AleXA3IYV9K;cvłI0myqP̱[w5`HÂB45eF9uDHf X XN3;P8ڤAG"VkVD DŽ,n,sGzc3Y( qJ<.D_ba"+/-;Hoiħ(u/N;dTĤ Aq9'Dfi6'"d+bʲ94,3y/݋&'*r ^\ "p @gRhrQS+E۹0-poU>6.46 syjíL!}[LJ *I(sujK5((a;EGѨ)2kx.j̆Mj<9k(n.Fckp=ά)~)t6gO fO^.&z=?gx^r̎@f4d<+apޱt35)ՠ)sEvERCc4 T/~Nq-xx_Ju;cyW( w 6g3,Հ՝E JNqnܫPs:i YDPK nc/'!Sl; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Notifier.3UTN?]{oɑ{S44cn.Yp8LgȒ#qۅoD63$&~Lw tWWWW}mL??Ջe[riv״EW6uӋ}ߕ˶ۙy'.+OrijkiDV5y4oEҭYk˻YX&P7F_痗| R4qsxWg+}t4Ƀ~9VWy߼x_W߼[7SoNǚFoz-pjzK?}o>?.˻h},j{-tߜ)xEkL-}72 ӽ+r+7{~}{cO+ʃ?b߶4y]vnmYUw>Xۦҗ`HWRq^Uɿ!HyY&DI ~WMQ])ku48^nYM lN=4 ntznMN,?_^|Stv6l`=:~B^6D[a@Y|-7=eB1>ї](̴Gg)3:H(>,?cӒ4>AO2褍NaXuUlln&}EDY%rEћ):7nvu '|AHxwPo ԳY6 %?VWźkgۮ5Ea=/h'Iu90MpUm:("XYz(N-kknfijB7l3Q-j-D;|+;2TMm?6J?՞SX9VO@89^ P"8^KPD ӧrbh|K~ P,<-Nz(קͣ࣌p6AkwQ4㽩f;khh~8;HՇK`{iAnh8+VUm2Y`OKidHG"rzbmX۽IʝX J%<ZE+P.? PIV(zޏG,PG> 8?}}}=_,7"aoJ N gDq=._aS/=g֘7@<H&ʬ*`[;8 r験}F>@HoXBVΘjCo}a$*9k1U@M١٧YB @+5}^PWƂr!;%l ~bT4;9#]6-Ha.,ʫ%l"P%6uC3<8~,{6 & kEb)jݮ];Q8!A 32 #i ]``G/KTԳr=>02{Й@+'_wZ6C` tI+q*o-m[wkɀJtǀ.qG/hlɥ+5GRfEe҄ \ 1A!o@?^ݖD+hĖ] =ME ,0_'ef&rꧼO@|'-:Y%c>8vm -Ƞki[gxu:uCyTuȒ3R#d6ɨBrF=)mFk};tX@ `&sX^aF "x(l`** ۈ$iacA50t0ի.KX/~Ex%RvEڎemSTbGYc2 9)ҋk}GLmn`VߥhQ 1OK<6;}79@sb=.rN^?NRzT\e l/5FRjI) _{1,V) ;RC! cxBe+ˎ2 H<_BT'N,kק n? tlpOi;HNLڡUR;sa  ^5  =w0ɡ̉&Q^c@M$w>m7# e}Ubj oOy)ء.4%!8v ;T#AI:iSz 0&O 9=tBE愈g;7( -1T>+jh hf t5)GO#ыMƭ&GfEe.~9k3ڧ{%}N |MA\_>2;עٴs^ФѰXB F[{SPרBꧾ4/"BpNr;_/'색` [ (5/@-FU@sF^_Ub3eqF[[: 8g6-ktD΃imv<>ֹ B ?Lu~FBX1JN(|7!Wv΂8G"/S'] -0qV<&I-Dl^j>Z4H XZ.{/xDYQٞIۊ.Ed4LK~y.xp+QAcֱQ,wpNh$bDIe;@E4mo FkU^D`Y2 +X2Pq7lt=Yh>{'D1([ü|c,pHjb:UnQCI05YM3j߁ŷxĻSoJb~\\8-st+[Bo v56r/IF$q*Bx#EXFhéȣņuoA(5_@ѪLLK0 鏻k +`{nI%G5cʏ KAL^,7p [lgv@3G8A`ʑړyvun.f'&|9݃8^Ę]([wE$~ϓP⧢mzZ:~\Oգ-ƹ$lp{')82=ѢQsA`L6ୂ݋ hD}d KzhIM#tx;D+OC=PoPgQJ%,SHCu &IU],meݙ"u@$kuF&~e 9nrI.Kxc Ntɛة[,޽?NJBU ]aB]BX S`SA痗Hs,pH&:(;S^Z9r8w#R$*3vvq1B_kdb] * N8y/9"†Yx}k`!> 'x 3Vw4H0  Uqʠ {S&.rHR` snk#l7`1N1G*Q s$$85>D:V7 Zv {gGLaq?j+ -U{Q #T&>2x8Y\AB.A?Lhj<H܃k9?Z&ʻK+e֓1F1pp؏@ɂBj$lM6xShT}N_RIw< yez;^`EFcû]q BO(EI <9bk"G-ciC^(}{p˶ Tx R1?H `*=_~wP@06|ǚ̜;|Lѩ!$6O*Gy XRqW8MAk,+~CGY_ uw'n xEzHx dCn)*AIc4 T"+ YݳU7.tDyO+HSRfpڂALnh#pL վŤ-k!*@SHu#yp\9i/H.P<eE15;5Xq eҷEEW1:%A|T UsYF{yXT&{W:ۍc__Rw/tPb`DpXOP2YXDD炵=ahLRAރFA*'{o01*~ܾGn I084 f-4w-I?Ҹ\Ⱥ(nyGw!%1:.EIskזpNM}qpD 3;2$A"Jc=z7ʈd|' r!WL@lu|68$pLRm4N O-3W_jg+yP4Ϟ2+ 0T:F2Xݮ\'U5A<7ohr| ew6Ep(}j*|ja:}MP+MnTEas!0q8Aj 7ea?1Df:5Ajz@b3bbbH3pǼx;;lo AQk)Q" egckIH[ے貨TBR'Tm#BTJ)\żuQ_G.D␣ʥ o:,Q\H5>y9,4&e7 Oĵ9osF΁?|$3!lvvrΰGod8DW][#m 7P ~"W(k`5P]y |5܏ϕ8%Ȓq4E>1坅޴F5mg(Yzw`{˲% [FJsX\X|Th 6"[}u=3} 4ռΜŤLiMz?H+CL`8jzaId svMc'c^")//ԳM]'zEFӮs[?O eL~硇`D C ad@EVPZ(F}2>q3]h=vHItZT?R 2=qyGC@Ĕuľ`K&#P֘1+.S5rn *l^$Q}SU0 ;)R٣8)O7U D! SuRmzq^Hԯ9ȣѶM|T6q@UpN>1qqd\W]=%]p"i$]Zڐj(Ӑ+2bcĺvbѦX- |G4wtPE ^W26X!pzH7Z<7$,߹zcvOⶃ<[g!jy޴Cg Wq!Pwz`'NeܨN>Aow-ڀlM/kpʮ:8m sj+ fఓӖ7A":5#+\qȒUffTnyMQC31$~$v^ZۜcEE_ZT4 %@1A 5gao(L$X vae 8c: ң1K6 2T1;:>%eYJ|kL{]&[|k BԞqT]bEcv]w:Q8)<*z}6<*A-AGFo'ئW=sAA Z^g.3S/b4/Z z8A(y[2?\Sb8O}d][Ջ 59b:bJ'~Z61)mp_'/'ԕ' :~8mq9%XDH-]P$*Ӌ]xV $ƱY21zP$D:W1J"CeDa_k}]XbUÊ\%7KחǷw 3ǝodUZJ&|'8̱}biR9QłFB|J7X+.$Y5݇:Kpɯ"saϴ %}ǯ '/rb%8ZPe1\<&t:Gt~VwTv:vAEXp @.gB,ڸ[VǠ[և)<ق%j\35r;:Ltg-;X!0R7Lclj7~1яtQpxoL}H 3o`)?$y{ͧqv+ 30%+4PgjAfTje+5 %PnH{C#(ڲtKwǀIoQCxʷ4w:- %zBc\aS-B,K\[ègEC%zm0vٶ- zkNk]$YC lСn !lMčEԝ(k*-H|32D—16ۏ{T?U2}*5BiI!ûw2!2Ca>ggpeęBGU2P4fN$o~x`G.L**yHenjB-i*+ ;XDy-6m?2ciMTG#[V%tlJU"G];UhDuI4s+WR9a {@:k5:iF"$Оd`F Fd.%n2LK켯0C[Xv{4KRAK7ӤSKXc/;\! ӷ[H=*r)Mu8/7c d/9P j.0PN%V_5WvWDAݰhԧpVA,JjՕ0,B*R'&Z+"2_~Hl*wmRl4#n[c_e=Usf/BHNMHsL_$ʪv]Wף9;SwJ]ۢG#🛘0J>Qa nLם!!rm: W!V,V-X{BP$!8B\uA>b6痋X̀3#-s_Q*_?^߼Y(0ՍSMf ߏ1!9INĕVPK nc/ _|F69 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Object.3UTN?[sFr[)xt-q"sl)IV&\EWWX` 1ɽX,/*mˑ:rֵ>IN?|wF?EϛBʒ;[YD?ѫ,7(SXզ#*+sYYhHueUl'+W4Wfy  0_]_>MG}y}Y̦sE['8ҷvIQGׯ/xwoF_Wz$-&.Mh^$_i"F7}ٲĤMe쑊U4I\~*|wc ْrڴOHսY]MQ1fdfx,I椷l3Hm|%o۲(?g$WR_VIޤFk߿i[w-u~0jF "6_~|`VN1`=}'5]fAz&VF㻱w%du]:Sz?4 hme:5#M5Y~|ިN-doET@htN2îh\Em {="ŽYm.$0D+g㕥@6,Foɦ6*(~ #oS"WpK]uڠwMRR92WnJ:dM'kY,iJ? T 4#- hӚ @a(Y ǴYf)/ڟ&L:1&ZfH4x46dkk d77:-N HX}9g4fwZ*ncvGjO! N,2Bk19j~BMusHusa[UNZ*o^kȉh,-KLE(')CBúdXwFuB~sla:6mLS?m(,ucE";Ho[t=3ˆODzF\ezEUN2bwhԕ)Wߛ$vU!!/Y)8=kTϐq`UUf2ɠ>j^ز4; 8kAun}FF2zS6&*yZ@R ;lqC[2NFUy\F2 ! 5wXcV&f)Ĉܘ!^ ePd] XH|Ix1eq)aaF oM̌q%' F4Ki7r!S?^!!.wT)_RU/,$(5fF8ï%<68nMӢWRIs9FJQQW%+aC!#5'CcV.L>k4IJ:ʠHLHC WHM6CO&p k+Jw{@+}A4NGzqu{j>OXcSTNm:LFPd98mEOWs7+IQWBU!^u;oPgn`nz-4$*ҿ˦6iW3|O{pvd@oڙ_]`nථ w,Dp ~ zGʛ2N tцi jb6KI1 ൊ~Qa|^|<~4M:K3K)i|^4Lȼx`8a7TsdMN.N|G~[Vp1G*%O([\2+m =:W4Y &,Jn*'44/1 /C NW׾ry9&ej XO 4$'E?OWqcGꨂgSn>__3B;{&cnT! b%g^% ]b֑;(]v #tx֒N]Ϥ'`]A]I9*/c a q%"@y ݂ecA(!Zf5U(H^5A}"QE -cFI=$z>RH^ e4}-j)@6ifZ^ HN8__8՟.o?^AS^--Zn}mXZ}m7;C*#(ȉƱa-oܒ |KNX>%D$ʂW{qgQYܮMڪeψӨqe²= P3 8;\}z֨uavuܱ*>,698x\}e10Q]HqĂ'hʽq"HNną`$,@5 [>D8M b4cȊ27q Yg@*ҟeL 3cdmuU_gmUoyU9>J'(ɕIflPdikl21p^ꔘg+B85*$ AZ6OsX;2TmW&vE;ڎT-d9g\80q'mХҚYoBFqK1&xOqX %;JCޢgF b$\X/AufH#+fQz(`; 5W cT䳋Ab@V&|[L%"48TVLCsP2j Zw?Tݦ}z 0zq}/owuHImpؾeD/&0Ybj,8Ťc]Zӣf\5޴L`>po$ƑQG^z*V=7G~ N[$쀶( Ep=@zBVb+jNMx UFBN^ ,>D 袆kE=c8G lp%UcL3r_ 褝FH/ታ;@pL`W9|)OCo,s*J>?zHmQh?Z b9r8腩ܲlf#CD$mH)p7zw9pXՕ6t+ E%*&]x:etr{֌{kǚ@xA\ /9ֽۖ꟏wr[ t koU?zt]Z[~}:ӵ? '5P)Lzq3e$tsVz*j\ cn'\$FIuwlS\5 %Ǡo)Tx/()=p'+zjg>X5WR,쑋787j huj5-Jf.z.36R3'*lp0P8]w)KN'Z;,ڲpʁkڝiyHK8Fn TO[ _nъOd9bH|khxw{RsOz4cio`⮡&Bj=c] 3iWeI[2+q}`9L|{zbLsppC](gGY?\kwC'+482FoՏNN,\5|w")9cږhSh9ݓ.RJ|ń>* {>pFFpqVMzvoUէl{]bv|z +?S,Wгk;SyX9o$t7.nǽS+2OÞH84~Y~='"D /r P)! zc;by C"g'@"ltCv>QLZ `u]iOz~{&{^s; ޛgߒlЈ$5/&IiLT19p}fx\PK nc/u  = tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/ObjectType.3UTN?YmoF\[v Isp4:!)0Pȥj%o^v)R"P P,r_fyItp"l+j]\WFIiUjFbjдRZ+\\'8WܸRhYik\)!M*JjWzY;Zfv؈ R\OW7LܽqċW"B| Ί4FQx'I+,+9>'q,w⾴JR(~3;q;~?pLSU5FO|28SǏyTex@tQRd%/ESh/w)`!{6I^JJxׇlN8x{Mqo4 0uBk֭ܨf6U|䟟CTYЏzgD^a<P;|f㗰%~S뤂ĚJjͪmuECG 䴫lԮ~Tm"; Wv&4&sOn eyuf{HZJNT~u7L cIq9!TYg [V`|܆U<0 68܊Z'HWBlGJ& 9p[\m:\f5@.%m!bGmk'0f8os!Dj6_LnV4@) H&{L%0➥OeaԶ3t^Zb3 1hz싀F2gr]O x k&:zQ'wJKK(0 VAwv@w`e+:L)|5_2/LwA0c5k R+)?GHtU.awL 0J@w8*D,n~{/1_>\->&RvۉyW/ @\mNoݺ@U L˸yaI3HoRHXZtTif$xT'2L4 Mↆ%2dC\&x2!N' .h*擻r-1PX40by+Rldt4ܸe{W"BiRc{/9˕8S` &c77j Ԓ7rꄅFbOY* 4C$!!1"{%9 G's`WQ[#vq= r.-5).LuT0:EJ\}h^#\(s 0ju-OQ3K0_F7qFM<W8-qHc%#1hxh>W4hc'REe/P3i9WU4"*d% IZNuD6-ťN# )OÝ#8s)8UͤhioO#Է;pW}-,xWq(?E̷rVArC|k.hnu>պTmBw=GR"L 5eVv3` ̛+mP.nw+Ic779еQkp.bs*/Zysq4v41K hdF>{T {J>I V\q]o)cպJ VzGU-B?' ،+yդC)wlte7)'acws䈼Yؔ Ά{hBN'JE=- jn"9[''ڢt6nbT3CC۾f@&\;NGhX]= f :O;Yd"VRjRLl烡-7J‡ Bu~|r+Qp E:%@[F_^SIƁEUp[]m-3su >\+*g9_sq9~Gj(R\gMPHM/$Q×>)'˷,`+T38=oq¿GA;4mdЇߗXjPM)ɷݾ~6#*yðpX$j/[ e|e;.@kG#?/o.+6|I9$0t[&܉(;O&b|3;?|_3]!\#C Oyǻ|HGQ[(G%EfIvxXYnd h5bn)]uv=YG"^zU#G~KO1=mUάHOrk3ct4zQ>ZUw]#hZ]誦F\f^ٮ ,``#zG(tvzq2};WB?>Nf_{}19 tWoGo7_W?W7~oFFz.pj|)W6+[F?][;mJ3߶ut{獮NyƳۉ^Uz (:;jI#Oioe6vGV6n>>3]Q.vEyjq]kï {u :?ߢw|K$tcV=&\mP ݓCN,l7`'´m춾+%^X+zՕ^eXP%eI:fz7Ը^o~Wj;7_r5^ϋk ,'xϋiUnnF(#Xw\Y C[%seR,C/s4-%$lpFJĜWky?Pi@x?iF2'`jrB?4ܽ0C&z-xTx#^ůy3 pWC7 ېb29?Y" vvql0ZuLɾ7 [ ͍€y*nRLe>ȣ|`S1ṘƗZ7fh@~f9ԤxZh7﫹w[j k@,|Lfbx>ec?Xm.w6x]O};z2ӑom rL!m <'~sk cYӶok6Mۡ?G5z4vPWΈ{UnL^]nHM 7)k0tJLy!볍)e=`q{Y ke ~LjU ?YNo.B ;րyƯK 0< ARj6c퀬mRVテ1! E0 FC?V$M xޮL7+Bqm`=CNT]-Y# YX̜G"-lZ,}V7}:d$ehʘ~yD568|Ͷݼj41Zbc3W0]UTӋ_f7gKz}pu{}2O`t%N.ϯO': oq{1q4mE_`"# |>VsO sE~1 } a|jeEB0p|"ʢVC=-oԀI1qYKΐ}e3@ VumQI #=+E&-YBDmAmY K ҏ`m]}W(Re[mp!ͣ.'gQTA8aqd\z=q0_U1Qd(ZRjF5{LG䶞=KhtԻB;'݃z(ڪ[|daLEv]-\=s2;4U1xV Ry"$hr)!/6u6P;28N_ͯ 0+a}Cffhc fbX]90b#lVE 6QmAut >M={W>g(ޅDžBB\[V$`}u'j۶FHSy 1ym+D%I۾r۶(NJvC{z@0}w`t Y~3(όFU7WݷH/OXyȜU_p9#;n|Q(%91vlAp'6r W5A"NB7ئﳘ['Ol4ZsΘIDp"z3#Kv^  lX F l`н{@`v*$9$oV 8Y. ڀu#Q Ǖ7N".aCbλa7SL DFv+3/?Ϩ{@;-.,iH _)/Z&.ڬ[\#+C[&-qNf Er oYJxBoL. McM&?2PL立>L.@͐ejə0KF EE0;Lp\$.XAxya {jblˤ;**c 9tTb7ti%$< %n'XywL&黛ե{GCԵ*FQ6sP!T0K0RZO }5M;'=LAhg|k1ٱ1-m,DJfFlD071Mx,YEY[`gyC૯)r Dp05Gwl0a-(pPJE]:Dh˥mlS @a (0eAZl)q; ZTs% tŨ- jbW|OMpUK;vin%x kG"y\ɮo)AzYldɲH_,%?mX0Tz7<^LN!\e(h8(~Xuc@'IZP] ULZ[r)X/5DptIlKJrFZXG%!fuub!V)z2EWXS9:]nJ@#폔=1^ivJe3Oz.!&m[7$$ge =ɸ=Dʀakp)b?D1 )"2FQ(y|W@l@jN+'nm $_ч>0!c̖śP'CZi݂[d{`ZǍr!~{1!QjjR">` 0ǰ1VZX'%aUI*d 3羦tb9G)s.('-CWoߞ\1Enح ~qZlkI {L]yL;Rښ_$(0InOyj24Z+F*Hζ)(ktPZrV*0mZC?k 3/)5,(dw]f[.qJWE f.}j96PqiA2~2He@d Yh)!DRqt>&[))VURoq|vU_ڑ<-JHDpH8Ev4TNщJgZzynkWTۤ/Ť` V^'K Hj0bĊP4IrSJXe5,NzVsNztaⴛw "ΕM~[ɞ@r. pUQ]:Er `z:8 UxiC7?te)9Ņ2LO4iXȁ M:\__Q[I7wyWfr=}8 kN*漑hZei>l 9ukLrIAzb`ڵl40|A A?#X%9:kE.qvIKBYx^IS.`aӯm#hЛe[GZ,Sf?(m=+dUx% ]BbeQ쒡7 nX϶ww(aש!I5  }ТY5m$'C".;s>~3†;vS%ddIg| |C:(-plMfT{Ug`W#u [9i4/jp`;"nO`#ӅF@mSViۭ=y~;%,/j[ LnI*{< `Z=ب$E;KS!9YnibQW)lrsr.ho̮!Rt璬l3c)eAPr]BX`}CA IK* T^Ig7')uz3 Edx:ݜ\\U,̓QV[[3'?bYrKlC@bO*-|zCA~qy̯_:k?'5tG:Mby0+F&IarC58k%](@THO0Asa';5KVtXmbZRT#w{}{dxeG0LM Itt--(?ܷͶ*;C O ;Rޠe&%sVBj(ʉJFEx 3tdPo@~W~rAeԜdOK >ڐvV) &G|kk(*{pJ6s%1 Y`ow̛~ x!'0y0|Xg.* d т*0̻fLgU×.Dk7 1U/y 䋣f)S @U$oψEGJ)(xO'Gi+wM6\<noΏcS#c{ |[z]k%Gqu`u+NW%ipk:+1NL`)QdU/-z*'>Q@TϷ`̾g\ ɻQOXRKFy(KSЮd\AE)([Gi~SsZjI:x.Ys+۪a"g F{([x{vUux0LX9 c+4hkL ]dE\5g:]~Xȵ9,&?7ts 0-`Q&Om(e gW"(3`e?i0mສx ڢ+ZuB'Er&$,p `ҽb0I3}gq3=_;<'4%O0KNvw΃=G sEۂeLN9rO#!6O/0k!t.e0e>p< Z^F$(r^m %qo`\{Sږ%93WL]h?b4-`Y D&mOA]U//k(OaWWD𬖉4z `GSN[nNCJqV]l۸$"i2z1DZO(@wl$UXW-` |}R! r PS_ؗ 9> MG{"Up' }'S!Hk-M0~%$Lq,fF%XP "I+{2Vz`2g3r8ćR曓Z5QJ}\e܅2Gq06hՀY8ԥ]e_ϫäx:dR9e<ʢz $Ԧ_ɸ}U|e^M!wΣG4|w)14+ya ( mv|O;7*ՀxNQZZ#=ȄFHf^Mla0Ie; $woyly0Pa=<ib4~@r^>\9>" `Ni8TP*mKvйp!+F8Ud8gLmActAOa/T>3)DEr9ᝧ@NY~ڐ6> wg \cCN~ |LLLnQ2Tr4.![l)ث~}BjjU?>+u??[h?>%ْf?E#,[WUrYޟ2pfS?/=M̦wqOfS?7{g*KjSԦSx˳SρTJbo 2MKG}'`034uH. ҃Ye?-uF0/$˵< m{bp;A&`ܑ:<27:(B=/#.xN^'mI?"(kr69K^OQ5a qv7QK9~D<\!c_؜\٦Շ2ڮ&4/ g^R2XP~ȁ4ħ^j9A=1$r4a8@c(ÉЊ8I6YV9r">1> 6/f[phA xdUWo fVKOw[yOdTVE^k~w};R73$%I{/-G/><<4H}$?e?O,k`kQ!]k5p ꖭ fu~'jK"fI6ɧo˦/u^ۿO%jGy[ṓOTP !ioOwۃӧ?汗^H)Xt\R1,/n&eHL aQcs znJs`ߌOLcU0>@ ;)c ԏ:~*qVXefcxlt(794~T LJXLx@a@ D0 ߕCg68qb{_L z,u 1\<*z?%6w.7 _I0 (z@ HIE$/4ӿ(:> X8^ lVM`.%\ dΠIնWN4(Ŏ=N$qܢ ^Aq|j ؃Q0 D/lj?kyJY˚P]+qiyِ!h {=I"&x9]Y.j+EAYJPa3=]or]UXL#GDuÝ l +aB <kjpF0nj5<_)$ߞ|0ZtFEB0!ۂ6pcIB'ә3(06.V ؇5/k9^ H2j^[H~F|mSPbH]NxHhF4!k$5Fx~៯H"<8F@`N\&8K^y| w3LnMpg2]E-+0c瞊h=8~#ix@ mv8N8:W*ʰnԸ3MN*~pK0 >4 %i"l O"֚ w'eoBy.T>sn\m!GV:: 5蕸Aj~c G4HM??WLaK !6]|n-Orl: Bu:@BMEPX*+hX/Guä`4*"&ո-oAi*N%x!-!yi ѩW,A$gJn10 X61 G(rH$ċ@n^pc4tUٴlӰq%g_1@AKx -7iH 䵠=_qzz3_ްid\wJ~i E[c@wT,ͷmPs| :ݦJǰ`x&.UZh1m'7H9C=yy*wT*tzD:AN>~/$ g7ɿPK nc/j~8 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Panic.3UTN?Wo6[Ii E: sSo5_D$R $ާ߻vl6Dxݻ˛xy3ֲ^i0dڗa KcTqV_RKesunBͼ56e&Izz679:;ףtt1ӄOiz"=x~(_Lyɒ|wGGo}xG<}r̗WE'KeRe̾YV|g;X~HӻП33ʯw@$R6$/\O̝b(%y1:X-MYUb-pw?]<|(w{(;k [9_˅U!!Ts|oW$]ŧfEksꗛ`T֙;ppČe($Ix,z?8Jy>Q4O\^^3U(17^.PeO$~ٔv:?spVNaKo|^*O+ vԭc-SUuҦ3ӳ_GS~Og`D7msGWB|*M1:tTO*r,89tr5\^J\ A![`=jQ)\kis Vx"/wUa"r וr=r®%)BHoŁxU?gC ~?c6?Z8D"~ z eXݰQES,}p$w }vHM!NdN( ʎ?ý $4İ>7:щY}M /&"eMlUXpXg[%Z;R<@)v, pxlln2= $Lx]5gQE"+c1..qサ^oKI1UcT bj%__:(4fZ[BUUANM,yʊdZ O];VV؍'wFzXIrK &J|rXRW+(,(Aܹf6ޚ`0FuuiT rj))OsŽ}!P45#]l0mfABQS?mLnBH-< m{8s3uvb\I֛~a:jo@8vvHX cr Fܚ-KDo@o7ls:.<8 DT!^ʣK*u?/kiEfBS iGi?m 7g$t8&`ed*Nr-r.K r~s-J}t˧7́<+7*HrmJյZ?{39;/d6\\OD?fg_'鉼J*^_xoϓ.ۍ~'XruG2*k$%^ǛlQ%V^URMky1y;F~Iع ~|U%K nZs`Sq\KR]$k_៾+>ɯ HIT<|NU51_qJkvqy5?+qzYV,&Ue> YQj3h֯5P0QsUWQȵ]uB!w- WXg<_]RgVmdr`35ZWmプ^jH).t1uēWN/œ99%ͫ&/-˦_M8]% VRdߡ׮ӌ$R3ߒ TUVjSV5Td+y͛Byb R2WZ&+ 1GKH %%,#jh$ o !d=N;\7kPt1c@>c+W% $ N7d oy)x).qѬ8?V[GD [6\,),<nױ+`֌,dIӸa`-Z;f7ųV4d',ee po`<0^Y:JNRL\%pglSW*\) .WOQ,ɉP8XӰq: 0Y`Ɂ@J%%<Rx}J/ԃ.*e#v%q -{#dUzJhFlnx&n5w |8~1vFt{!k$,k5zlwޢ2X`ûpʒjPnRP8d` =0ɹ>" XAeuk7U-g"E08F&2/|SB3ApP -J*,GcovCz9"/Dp,y]~tZA^ۣ#t$Z7K8^5yGtַIR\IV *">"mр `ǯ|lv~u}~y!WWlʡoq,"fV܁A+[-R-Nxm'=zP5Ň~_E6ͪdd!hKάVT #}vb )3M89{7s_^ALOǎ\.J;~u:]Hsg|9zJ8]gZXF9^.qpҘ я:\- %w5"D0|W7EL0/ym*ׁ/fɁ?! YIE$#X >Ԑ/T^>P$`h6Dv78tA EЁӡ_bDs$bzc+E.R7Xa;;0`CW;0ia|)KoY| /Pa 1G=! ,'\R7753Q' gE6+fb0`ΌUgP11/I>"7{=o 8cV1=vqqH.%$Ah! 7w]<svFa|6[1ׂl znGYVB>IdaXXD%Qn_1 o \咀Oқ' ҳ"Uߏ-6ܟ8'qF8K<*¸xtxD9p σILFi>J@ %$tDG }MDˌudbTDHT29 )?"1XʇIJxVuMnAْR|<`eF{u =Uݸ* { AqV wܣbW>d?,Wv*{hpWdwRYc+JX }rce$/sa6~7y5NSkg򦄔zo`@È66nmBf5?3}>Ŗ6XKL݃XmGdW\|?~-n3 !j}J^ xGIױ2}Y9 ͅz<6hP]MQ[aղ㳹#R2/(~Nc[1vI*TS񻌳a{#zϋuxýh[/:i1;A~c?˩;&/YZQ-5 \LO~S`EiRTTr+s E&h0~Y_M:z v&\Ob'"m>8RD /[icZۨ*Uad#@ *tWW=3uuh7IFg7y ,R`4'X|V8 9h@J賵#Z®2oiP$ꐽhl&d 1YL :鲠P{>lDci]A m\NmNY}`>{F KZA^S dEK!6S\m5yxI@îMmzZ5+-T! fK6:6ƂvW>aE^YL XoNO9UT?)fZa[P\c7::(Z8"Z/{̔H^:V>^F#e.Ē8$0WP3Ǹ>|$DחL/r$| ' &eG O3+̱V4{5b^X+>D1uI1>q`JcR1@A N{>Nbq7hj B)@"MCGκ|:. l &fZ9 $/CIԜ]};x=L Vc[_ iԥ{XKP%N ͬ6zg睰AcXݖ|HI eQ0p2PVEXxl t6:sgIQq!˰VLW5~mD^(xP& Gڐ;TtFEGhkjfwӿ^͆t De*NRp L.1[+nh$`o+GTec!SG`хf8 ٺ9~]I])r l ^Yh7HrA]Z|ի~LeAt6p+GQNLeta VQh<9MRUX12ʴUhYcAB:Nڻj4vnqOd%|\8e%12`F_PH|:u_|>nJM= ³~9hJ̑*M-Z%Hn5R||v*{Sϐ-=kYvOdg{޳Y>1}+u^bGpμ=~AʸJю.4K2{8ċXYI |z;@ҺL38gz6hOpcA4hZv,Ր(;fopM"ø)%O`9}nCn%\ `<|;}A ӛwKМ??ҡPMsSM=2i>($VV5Gx?o9[c7+2kS!}XҺT@+BQa'7څL-PXC-yea0:X}Hp$>=ff|$T!d2G(5&AyG/@B[7dqA*pkkɢXUq=`Pٙ)_!ӝI/I{ d`,WP0vq}d0+-]&\ -GBg& k2M;H3nM34hRMc5_P_pT/Zgq8̼7ӿa3A5j-/694kb/PK nc/ = tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/PkgRequire.3UTN?Vmo6_qp X0VmX. Zbd5 u|:ﱣ Ma8=Wo\BRi5n(\bFdv$B_ ȥS2ډ [Ƃx/F^L:o墢w%]#Bp'A|77l6Q@͆z^L<_"z_./~/.:Y,JxYCE@uTpEw0O-izt ֤"p=]',Jxp7b=S2ŽB玅YL? J~uho DO4}~BTU}/ #/p2N.SrE<+\AlA<ԣw 7H$qO1[x-k>n4c [.a|9 `8z R`7-SD4+._(6=8%5_ !Ӧoz61i~^vA0H),] Ü(-֐jWU]@賿A\;TSv/JaO$JtˀL4 kc@ %_:(lq34Q,zH]HdkUיT=Jܤc`;x.Sy65wT< SvtK_{Jl( 6~@kt6><w,tk+J%ȇ0Rk zh܌,ɘE)/qlLPp\\; 5 L TKA>)Aڂ#Z6ض5eg}8xvHXkCl>2VܧSVܘ AuFyaTSԸq~8h8զ0JfUQn5tgWoͲwٖm`w^(RK5V&IU޸,E&M+ ߶ϕ -hMYEv(fR~v ];o?O N޲zb4Mf[nk=ph»+ek>w'X6 u 2=ub_( .Z⌇TDku&T ?G>Nf7I#xf2'63$8oT?/3W-įjcrLl}]uCk, MxIPzLKyNNonr9}XWz~,g?_ɯ[y_ol_](/.^w!br_A/d\+YDOIƮ+U&nDDW+釹Ɍ|5*v*\ma8ެH_E9k^hYj.W鬉Y1Y©ƶcЙתVp6ؚ=8>aW(< ,.a~+»va^ %'dlBF׈ D L+MIѳTYX lM^ ^Lls M_I|.Ⱥ vz-[ ce!6/3C gSET9sAj3 |8 +*q E +R-J\g[xSPf8'EbT&פdx*P)EvT'͒L<h?WFU,O>E5c6LV_S+sAZ(6EųMB cȾM)]1]tL: ~.R Z94)|QX"ωڐEAZ*GB {?Puvە~Ey6B F?:%S##;O :Aޏ/Ƕ=뎟U/>-ۑH< 62ZCmIg䆪$p7,WϮSMb GWJ}TyXPFA֑XPrb SeF1jGʻR,w.Kn{nwM(rwJ> c;7#^ɭ6JMލ'ZTFۣubo#JU  ȷԪd.fo[~ =wR+¯UAF:#7 dA, yN4M4Y &,*MF}x,GYxwIӢO #o:zn/Uc^Gq+@js﹯ū/ʫNzMK-ȍu.b0cqfi~ů;[! GJU#jxɛξ,ڲvN AwK=_zb-!j#*e,?M ,TC(P <QhȀgd#Y&܆cbvf0 +"[6st*BL'{ T:oB4$MoaJ Y ޥgMѓt;KlYd[M%Er=nO1pH[XvЭP%CEU맍R=fM/ e]q|9kGN켴u2Q:'< PK nc/Z = tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/RecEvalObj.3UTN?}Uao6_qp )Mt͆aNBې DL(#)'$Sw{G{dރkYZ{ӧda9/*ACF.TzJB;{a+׃ 5>+р+\`E)rQӻf%]B!pI0K2|h߆Y6$@xd%s o2Q$[&"‡`p9Ã+% mbg:8g uƖC]pz=zr5(k+\W9/0%(  (LUgT E/ *^z4O\/|yFBե}e46LjOUƐ|bzRw0.ϰ0*!5y9B |i{] L B8JAix4(w.NS ]rS{NU|EES1TbaRf]XHb~WRјƐ'i7gn6v mNU:cSۍqai;F!yڧ4^=$(~mڝuFJ )6huڹ&Erbfji~' ~IR;Md7yPԬ[ԭT)^QkϨm PK nc/wc 6= tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/RecordEval.3UTN?uUko8_p $)d5mr9 u,r[0Pm3II9]Jr<C,u0 u5rrpȏy f+SY pat[ZR.QE/ O n$7nkB?eBx,JɅ"r¬m9৶l)(uF5y0_,A*ɆArO!~xYSL{&Y?>y?^^A ](LEkFhfm|B4\=F27lab4EmeDWn9¼mp^Q;(%~C.5,5N'Yjoe]2Z3_L@HhYZ?/ %[Z87x)g`x '/c%4'+p##y0g3+fz!a+!ފj k'-xDIt| sZ-|`6ݎ`kE7Ldk  cҵ(t1MC,KcK+18`Mߊ8N,IA4PD{2 a5X$,iI┢M ҵ'+aTԚj‘v;EAPWWZk43X6*Ky/DcR ?.3֥ mC['D>ӊt ],ZݟԵWzc,ErZ>(A:]yԂVo}&o.6~x:tawM_Z[ N)S]*/$0dacH|n^}}ԙn<\7FtAtZQr-QD t~'Z/oΌrͷ<Jxbl^j5mY{šo* 6vîöPK nc/T< tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/RegConfig.3UTN?WaoFbN-$P((J+ԑIAP"$%73KRm+3o޼yz~Ėg Cᏺt=7_kG.Ժ-FVp8 Bj a Q.` 7ו[J+g65?`6XK>Vt W`|y _xMWQe9Yg=g"5D\W;n-+J^Q"uWwX $B\x ?E??f;ڡJm#Ba+mb҃~2S <'Vt6?T{@=%]2,qLL 8iF$WίJEEߙ"*΢/(՝5 ?NԞ8-TBè&miͬ?q[}ƗA_W 钨%QPK nc/~?;9 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/RegExp.3UTN?[[o~b@PEE)ʒJqCr.+ {.37Y RPMr̹~2'yYo y˳oZnN +,ܚb\Ĭ<5j<@I.T6Qٽ-֎,^_V. Yx"e*LBkbge-q=4)KWZRulle h=|9[\\Nfsy\^ʷ|ru;.y3X=X>/PaӇѝ<}%|/ξ~I"VyϘfrVL*J~3>o4\{yg\1>_╼EݑW*]~}m?ڬCR #ߝUR4ZޛbYʥ~؁$,dIOW7Ļs%_ޭ栻0i?wޭfwa$DvOǏtPPMIibFTnAP^?gPyQl#;;M&CM:q9 ry`RSlssZY]O)9DS':P*U1%UN?y=ߝ,(fĪCp :Z zIV4rɎ.%.m!7N9t eȝJr/@8n 0:YP<f[P>Ȟ;/qrW܂_2ڒzmU\W/Pйʶ~I1@#kTĽItV$ٽOIJ鈹a/|!s*evg* k~\ZQq\Ũ0E–ӆ|h'>H(gier>"a%-2Jy `(і^}~9gh'>fn$,ODu2ѤЦS p4ipS q`6I=Z8O$%BcIOUg7YWcpYGdHfX"2b` d̳p5>{r$eP^rdTLm5  Ed]`hQ>K='kjgLNXxm 1IgL?Tٖ@1m}dSժJ+o/.ϧ?=n*jz}9Ou{N 0j(,rz 4BJ8]ש]I|Eb>]_MI 5$Sf}_'&Ғ C_ Xa{{i ʄ">~oXփ,ЏBRxb@G r~!9[hvo_}NBYjEe^[;\0CP\9~xwzFh(jlhqV@L~9~R3[|ـFCwv:챈x(pdwlU !~PQ:)1wZ\;r*`JEUDt.F9zTpuĢ*?MN;\n.w]p`ej=VU@Yy65TkCQ]kI}F#L㻔en|G)VS"08e <8* B\5CRTL=S⑘ olCpcQCQw3bU+ +a$FJ2$,4dm7eᚎx笨FS{Bk'l܍7yfeS D?`-)Kmg|-}G@CCVNJcfvy>2@΍BEQ4`*]aO?PhyoU:uJ{(5_4mע?>\d7B-ZASЈhDro}&.iruP<6H]>h\P̱*7mܤ65r1z=zeR; ShC.nƼM,p~d 10R#w: *&j@19+~ꎿ<-,(~\^<Gw0_-~b0/5w͐'M杰U#zYu$7"7=.1ۛ:EۂZ<"ɭN`}S(Z!K479ek~QPZŐ*FKJ2F$.9GqbOGV2Dw%wZڴ:ׄXt4.,|b{{5OqՁ:nˇ'GT ~(̉L̥)]o yr!.rM]]uB%(wug6[Q&r͗U 헧4)0>gUdZ2ڈauws_:|ϖ\. %N;m{.E /:/w!rѓ Bv͍zdw;K̠2$ƤZvNtJ_,wV{%W^"~ g3 c$K2F+zdĴ¡wx槜zk19 v*|@Jr!zR,FMa{kBѷNh|U3a߅d:\†dg'×A:Wl6Q@̆#r#$|3t}w}:1]:Yd5\Euh B^p)fAcS¢# ti9z6&k@߁F~$oiW_ۀ|OIL*gP2\*ϋ|Fzu־zts!1|[">h<'d/u+CApXxWÓ,>H,]t]]Jf fckA|i:]#$}#izЦ핇zP([j?g%h^ cX; s  C@./i>0|It̳"@X[%[f3Jn[%n߾~妃{/IbT&-dI K}7Kr_?ZSVNs3 ǂ$gCUl`ڃkCeXf|PJnBt6/rD +>5eMRȱ#[%JLJ{*)ǘח!XH{lZ,TO=lϖ|lDBi6+|92iƱ,Mg$xS Ub|6%|0A@V`NiK~7mZ!|A;K3Kx8 i]Ѧ1Tu)'he (c]sFl#= gTJeɚ!=ZU:Z+'Kw<'cm׃~rwx$3 E{1_kT·A49dxx:XS4gx{D+cǵeD+!.  kzUY^x~NF8<ֻgRh=tsk8dp-b)ý%C@PicOU&q}2[ǯq/PK nc/GӞ< tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/SetRecLmt.3UTN?}Ua8_1TMȲׄl6ךKN)XԖr]Hv .%͛fo=fۃ>4F W5 6B{T΂g%ht_R()EVѶ+ۇH!$%<%B)*ܡlw% 詭#LZg{,6! >JfiL 2j͓}xųd^Q6!j.tQ9>aG^d4rDlt-*x%l7`x5UP~z;#LkSj]x V]Fپ2>ɪ@~;*BCWP! ;&_W$ *gTiYg<&1Fq~bz:sͣ梵`6a"Dm2eXh./A75iءWٲ  ;C~[c˄T)EIB‘g@xwsϓY7ÊM=NVz)Z2bx˫Q2m숬#Q“?<[:-@鏥މlJ| BCV|J3ޣ`|O(]h65t$u邠 jNRkK)WJ۷c35>36g~tQNNauE S ufg/ѥL [л_hU6~diN!m~&@JiE }X,sC4sf>pY6rhtmi!BA2L=!5{.`C`!x,Eݟ S ;*>3o`04SlOO ގ_< ;oǝaPK nc/uS<| &< tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/SetResult.3UTN?Z{o8.pt>8q[$],P`h,{_fQ(R["̓>|?*"^?F\˲6\x _J$+>BtU* zM?`j5#>+3BR)J*I-9@nEt_cZrQ漒2u #bĨ2DlD׳tr3}{>b6M-g>I\|wɿoz.MSɏ'*z_? ?|ӯ;ͷLEf#_d_g ܨe%t&%RӔw/}8zN RPNw;Y槞>M GK}% vM!jIUDHOg ObWSeV4"y5U_Pxuy5S%8n}]Kڀa)~85li{`g$#.q9{$E:EGdgk]a`xv>0N󠆃=V’ຩ}TIms/q^k|sR2yȑXaUf5E#Lo={KjiX+ d1A&+ FBJvgsP nēe U ]1Q8b<HG@/E`НݔW]O|vݲa 1<&T648hYx9 Z*Lޗo8Jd*O[WcM~&a#pA( _~y*џZRUp0h#n6=b/?J#z.pY0Wz Ҁǁ4V b4ʐtb_1> yA7ȹBK%Ì1QU\;τ !\gaF`]!21,61brU:b VJ0_:l$,`$ʐ+J.2gq aJO(>GV@%OUxV`@<=Jj'@Bc~pX +K)\hLƢ{- ]86UτF7§. w5 * 0]<ŨRXMZspB0e*r R&8s԰FBfEC "6D]>0|ZS ybTyp)E$@oT&k f:e .C8ϧ$F|qG/b>Mn0" Ol=R,qT0ץNJ^4=zL$7s(;h3pP`Ϋл x%]*nyn?pyV4GFKj! v<-7 tœt5QT,ajcJW]Q@K#QR9Pbjf]$V=|$?VG 1+-@\>.HftfJ#uAǝ=TمL ('`GI?ږzOJ[_vk2ak%D)toN,9m'\a!.QM8;5978ra;vx ߸q]A# s{7Ui]m;\W&/ Wf ¸0G e Pǀ&r#\Z׃4!ɟzmzf*5Yۚu BTm 8vknS@߸tYg-3Sv8Xnwi}ɐ+ng -+ NSwGtd'Am">&nQ']=gV*fu9͛P88^ܠ`]&1Fo%%ݓR@u qԙYPF;>.A-6`4xbK3 3e70S鈂LMyqEy8F{GRk:7U _5mE 2gPƏ K]^M\T֬umuG3,ܼ1Պ#-: b3 qb<>d5LR/sOZ坋s 8{ =MS+q`N|0_|>Όgz:;?;^i[ς;~>9?/?pė ~oPg|-p-,(13<<|L"_Y$e. _X8{gCVo=~ `::!)3ʧ1O<»;#h'hgoc0@iL\osxMtZAtQU0\{o_J]dw |U[!GZI`uɀAPLtq'<5GVN玊ySx T'04YyjFm(MWؓUZ#GlIZnUcd1\?iifkgZzӱs,Jy.L`f4.pQr16rj= l5IAĸ3[/!~ Df.d$,7Ce2 .iGn1{{<(fSu7 cx6$k}=s9>a7sg蕖XaQ]сԼ[А8t\Ucu C!Cxt Gh$ó+<< .dq/j$uI$t ߊ;Ll]E٩x%QDtǹavv^Ίόfz0qC&2j`u@9]g \ {WC5טZsl|`L$ȩB]$OGhU"}+n z% oJR1×4 9h̦rgT4 (Y3ʀ^i`b[b*ر_+^g΁ 83(K^2ZRhy ',ۘKBAm3UE#.,I{?gVsS`&P'vZdG^n ;Qd+A"֨rl.(͕j%c5e]t :fJ5oHU-o&GຠU^6 ;4$VSs74(4Oueamv98/s[݃@@jfså# O^">U1zfԇ-NS+y{ h]5VaTl{/۵!' ؽ}mvnESڃ7.l3*˰r&ZimkZ)Î!g9mU뛷pGLL̠(>˪#l@x!&uE-A`RX<{6STۢ\7OL7AG"@aSa-̯4RM kE5)?5wAdFC8V p5>P6Wƹݵ"vU߿>4ظn_4qS/0Urwx&jLVU+ O)h=G>aH`вDycu8=059'5ە;R/+w mҗ#=C{ۿ#!%GB uH3f!Lf{݌T[߄s ad2|YxQ54IrYOfPK nc/K+O9 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Signal.3UTN?}k0ק8BۑIƘzY^ñX`KFCwRR9.VX0UNMmᲸp8b˙-LstG]8[sD!hDrݚ*AHmnOo \y)bݻ*d a9l: yb4Nx 4IN7~BFp"7D+Υ=U[j+J^=unw_ ɯ5|l푄TiE%. ZVoȽ7̺7VAկ @@7sgpzY8H՜gțfTYRuƂT*cԪRT|=#37PK nc/Q i8 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Sleep.3UTN?mSkO0_qUR tFiZ)aDKIB4Mk-#wRįs9hcGLUjY80 !ĸEi ,MxBmmʔPZ |qqBWH sieZc2dk /D+E``QWBXq+z÷\1jiܞD`!pl0aǓEI4>FO0 8EWg ˥%RK N`T\wYA<÷͡熙h[Xiah4=\',H`1r,y HMAW,Lxq\%ʂ!۬ v?ELkV֎ET{I~.R'*C/0XƻGzBndG4Z.XZ5~Uީ3> '$6M4Juϼk^!hhi/܊q VT;n @l[ Ǡa ʔVӒ7%)xmo,ws94+KGή.OΓ$ ne%wdcFxjSp®E>|8?CaZE>(53ENקo I-+ ҟ la:+qk-\B.E؆0|spQ1-kKACxOE]Y}/5Wm%.e6dmd/?ՙ^Ǒ:?}i) KPVV<|bw)Лٴ&cBumCIi$gJmbRP>)(J#8:=&⼶f3̙5ÅAQQ&!wא\  P+m8ƓJԡp/@bp\c̴G A7Nt$=`uP[z:Au;aU%*ں{2nIYtn[٭?M$)kX5ZrsUXRDV:Im]ޱ064,lċH'ӳx*/?ɓ3d:=gzΎ^&ɱYZAGft'_G?z嫣?}{',K9~(NNd +劎,:ξ.zE}JUkyUNJ}hY^`jݟXqs=8- TѢӢ1N7tl2Uk64f~M`YŇ&uE,@)RSxw Ee|UW}T%>@[vq_]VXol3fY0tzwBkb/9]K5_vw+\q'}y Q)jtUeQթYFRNوHS%TuE.g, G╤5Ky+YVEϛF8 !|z, ؊o^q5'痾?X tiY&D}=N*IP *E(Jw,KedR5V9`ubbvj6Vު;,|B,@BYVC|-dž; SeY$%$;&,5"vk90c"״L"6>=*9Y䔭M_\ E6H*2ċhRs=hyTFKefOaDgaۻėWbуʻ{Nm VYXege,w;;p{ypp (]ߥEcE5Cɲ6gky9=ԉӳo//}}gƂ!xv:\]O./DtuEmgE_[e E)gQ_۶mcrlJ) ޳uZ7Fymm6TA:Xd/X$_WD< lX6Nfy1k ۨLTMU|k3eQ͜@%9t"u^SC PE&kB(b|^RWSN"GBe֥&y$ `:!ڵp-qtf]+NDhB'j~*/CڦD6j6뢑+uE'[K*28ST"":#~ޓWf{ク1"A? r/0(o$t"鿻P47l] jZ= 3R;ɀOظܗ=eTj\a#H~jUΐkel{emb$]4- ꓊ήc '^x:D P$(Ic1]zmv=hc&.\ӝDi>E-%WmUQ-IH; %4ڑGA:TaQױ>g|mS=4 YQS;'AޗNY!OнkzT SԨCQD 88qG{VF%Һi./w~a6aڄ-s_sx L}ӏ4Ge;8֏qմmˢ-;Z;AL&!6 㣇}w` =CR)aPk~Ġv4wN,R]'F>F܅/A_pZ;p>;'!R BA} 1LȾ-> (&zɎf$Por[m& 0oH =bnga.=ZȠ @vKEO1! l3N*W}p=Ź\?z+T`ui'ׯMZb&̶850tk)( gFU׶)h-2 ړ$)[bS9ᾥ b;mpwӶ'y_s[df@ 73m·iS60]5@ u&hHE+؆y< 韔G=ZSJ _T12 Å[Zi '6WJ4/z\DTL% pTٕGWbP\3a퇻mژ$x+4?9ge6u٠p-B[$.bjư ̾w<:`9 goBX5=1O#YFٽxM'U+ Qh Vܤ N~b;DIF9\1ҍSe($՘nEz{Axzw$.nKayfAT 6$[}εPWd ^8)z9. SEv:k4ąb< N6k;hئ ?"Ut=h_Xad|VE(0!)Oos @|CI.|MHf 3#_I N9yt$/=jw߂${BReYeeWn*ٸ*&噎fFL*c\ZdҩE*2+Mq(@ |4RQ;Q ]q׋Nu?!^tpUT#*0SUjAbb-BYk*;xᄛ.ZcoA76*50hd(xAiqϋmh -T?Ȏcdqu cФ}@:rtmrJwYpwך\5tGlr 53-s6/yvY `29h8OIN\ ;Ehl] B-ؙRDWiDQ+ȳxTc@:q5_Y3!^y8?4G3Naa67|Ne<-TrIZy *ᶤ,5ىZEd߭ eZ5p^(.2@H}RnW"$mgq[g\I** &Yknʦ HJeȴbgFO:@; -$*MA2b&R$1r7h~GE.҄S-yYmлl7r7v[t܂ ["0R)ZVPe^+*`\Au|]@k^E^&o@,^ѸHYUdoa<{~䥳Olq ..Z ,z<4%)5>L_ȣ:NNSvE!K{3.SQ:c{;̕A MqMvXr1"F ISo?I/V )2^YPo!_<)ݮ⛍ӏ. Qpqrqhf>_Qm\qr1n`g2 h}9^rS?PK nc/2V < tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/StaticPkg.3UTN?Vo68jے ]:a (h K@RNO;Rrz ~ݽ{w瓧;y@[#W)\^_8˯W dbZ' ۃJ":B[ d.D(+"'La;iRNjWY,HuF.+ }Iyp?a8G؟hP_9blm2..]\o.o~Pj^{ oj( Nih IǓ5~>{e,-̌NDZa;,YIa=<#esHta#:JcB8\,9>z:B#o(7/PK nc//8 > tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/StdChannels.3UTN?Xmo_1uXpt-H]Y'|XУ%*&V&]Ό(KW@ X93|g^q3?: 0F&94 YA+:5wJA*(t`PL7U^>)&rӛ1@[ڳ1/" nn2_azw_t^ӄwe5KoOߏE~ig[i*}r=~I:''`ǛO+`jK&Y/gM.]\O'Xg% r7N#<8rDs&6܂v6őAKϰ~C!$ty*wY ?  >[B$kHu;%sQ8`E:8l5tQN=Ut#+G#8ʬ@ y"Kn#>smYI-ŸhW<;=)XK]^߫Lޅ4Na{z2t@+,v :i^$ 'MZWS$G|&5x垱%#l b2SHyYc).5\/ZDb"p.<[q]#E]zE3Tm utUɀ)CQ^ DR% S2]@CV\FBVegYV*eC9>YRuHĢI)>DA'ngGcA>$n#7KWD9-+^R8[ڮ84s}N'b;ux&^K㦚]&4gD'Ms;jĎ'yDګ{r]))H+(\0r)5Fٿɺf,w*pyeO3C\o}5fSw 0zD JKKL'W .'˜f#Vg0B7) ;%o!q-?5DVOn=ة9}G EaɃF3ۼ͑)7Էfi<87N) ,Д)m8׺c.Bn 6zB0V kuG0hoIρ6Q,ж5"~^eYle^(C_g_Sc&Dynⴓmd?)YlJ=rj8H"2߄"mO,z?Rx:(Fb_.NBzQY%[6$ 0抿LIE:x"t>]z?"^\Nq6NO˧+Vp(l!6ĿPK nc/Yu; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/StrMatch.3UTN?To6]8EG[? +zXiJARI{Gک&yݻ;[vٲct Wpx J@&6B9 ǏJ>c͘ײFI= 4|C@ oLdaY'ۇTŻBxR:,"r4RNjZXK\wT@|Gٟ'tGs(*n>AX} #=*?5RaN0;(rx v+ kF0@Gэ^_0S|=,% !mz +k˹EKݸ0~z&aI>"MY4IDkAS$SM0We` Cr}<|>e]f(1miztUZ+ˆz>67Gv'qgg4شq5vP hs[foEALv9& -!*y`u-寜w"=)ױ'T20* ]_x^OQ]# YrkI=p ޾A('0,&,p8n/Dx~|4nsք=cPK nc/G/< tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/StringObj.3UTN?ZyoF>-;x]8n+cbDi(ZQ?l[u$rwޥg' V?/+hJFe2{c֌&-v#J*+֜U*VXUkXK.ʜk+cZ6Vp2t؈ -.7s~^]nv R8_,^~r?//7& />WϿ|/_~qu/?SwT|+V lrˊ_assZ=U&FKs&l_O\2}-wOޖ*r--'E߇Ej{4~F\rm7\kaZײx{=xH2>7Md5Sr.2=΂E6]Ǩ>U7T-5\nͤO7h\իOTM.mVL6ޯ` 5 NWJHggGw[٢MPq̓wwޕ凸S6Ѻ{:|wJic;a6'-_? ;B)S`<' Τ۫<ݴO^_#MqXГ!B[5!v==Xo\^dMzq=Sჵ~V5߆ř[Emc9X YFdQдwߍm$wac& ʛk3$r%+5S3G߂&,2_-?lr0X^TIXpC47(sPQ}OeEBٹ<Omtnw mwoMkxR2w8hHFK#ыUb[#uKv`nfHJẙ86Qc#'$xvw LJKB-yYH[p'a'_ɮX$R 7hq 3įD)ĺ"ӻFemFK1CI]=aT2Ctfնn !ڪ?0f]&,( nwzL Ə|;(d% [5erI8˛⽉zx)PJFmJ[80F=z ع;x+K6UC@s WسNyR].!Scp[D5\LKlNᅁZUV{xukݛ X2o^ak%XK=w{1AiBc!J QJ{&(e?4P}L}|LeKc(+0ELC gkt wivAgH- |uD&ҕJK^0; ~Xvv('t69Mj<>T)2PȆ0pwHr~ /QGr-Kטw:bB1BD]ٮ N:ɢ޻vB[>)ɾxlWo t_2!JlB$0z`okZTtԥ[o.?d> n(ueSR`/# `zf)F!n}BaRJH@֥Uic_AhW]26" A:"CYP72o1}0QɆ@ 8㑐HH|;BsrzfF;!bk%tfL{q͚tr hq]`nD{:ׯ4:9@:,"E%04aEf7!qԶ#=^ 7F'L= /##pERJڂ`Zi=ߩ^ 'Ƴ0Axy#I^ KCKiwXi(@@Հ},-<mGݎc1c=:bj:)8`Uc$(ޒ_kH4]g nM_L17kp*s;ؼ :vUw{e"MɘUSdu+I7hXUzBCZ4:FG!u6\|TQ젊;22,:o0]"kp\|DQq+)^N`p\AS3P˂ဈ+!3ҤaBf3h0/!!j\G[33Al@I)mԅ_6b= jIv)s ,i,3J|4QBgda.z>c0ǤKC+|B9xUR&oR;̽-S5Lbd *7:C+J; YfAÖ<(^Gu3]iȴ:~|B43#H>Kc{jź$ -/,+X ?z!1YKaE+[BK-Q4Sb9^ x@<6{$R^-mݍnF!}% m=R,n7 v̀fFb|  fDh-t0x拾񷝑< VO-Rp*<'J5 =Z)~k*ټ#mM8d vK7緮]܂R>А sBv?Td?G=r/%uFZw =HOW 8J=QQZ7 (I_E5˜~#Lhؓ4=1RMcFx{6';.whjT Y5狉!p5X lj^]kQ]Kno8 ^StK|}ZSTݢ6P^E7pvxU <&8Z'dK압ҁ55(@^dMQRzZgn4AM4bnyJ*ctKF)9 ;?h1@|I{s8 WN54㩶[w@fPazO!W v\v,,./jqs~"}~;+3= 垼?x3cEk9(λ9NbtP0PK nc/  ; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/SubstObj.3UTN?Vo6hRxjnؖ ]:a+ ((I(? H޽{Q/.F&[upP룣c83Z>X7CET0Ua*cAizWFN^"H]R9oUZf*\68Y6o!c^l%dx' ~e%y38TWǯ'G?CyUkcIdals O FJ5E7i&,L8~|(1/_.>-lFt%.gJu[":vQ lp염n6ppQ͔^4cv U-/,ņҤYt˗B: +1"U7I?f-xcV5ޅf\ \Kd^KfZ)ֺq#@ؙRU KN5u iCJnVb 6C1F{җ!ː5O'%T@\r;uWarE,TFtɈ ;(.N柳dy~.2X VL׳t>`4i[(Z{4z,XsJPRuZ.0XIwTu!Rhu}H %:E^'O"lMֳf\d\CB"KpZ{TDl!7&#]O|NpXM<\b(ECLQKQL=㮐Z1k_[ieAr"+ơOGK,:%L:QZ:Gtx{P@jWX+Es%{jԛtw<ցr@&(y&n-tt\)]:PB?n1O' 2kӻZqBeqj=w9Ŧ4! ,-\ctK!V؃M4d1 ?ڤ;;R7wbqɡx@",Q=_i LO"Ѕl U̍_ lM30B'~@p,1NhrJغQ4s`!lcjS;tKH`7 (o;O%2N!c"4`J1ʦS˖#Nø~r};~G#PK nc/ Ӥe@ tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/TCL_MEM_DEBUG.3UTN?}Vmo6_qi~x1'lņ %QaH*wGRb$^{9ޝ;şivV+pû3q`&*3 \p.T\ ߽},s+/smc,xa p>"~?#zr}9|5|?xݛ7/7(6%L5c5tj5ϭqlt sX Ng&3nEbf'lxd']O3,ng^J 3%Z"kkC7ad9^LoW { . J_]yq\RjQ Cc–'<3xe[R-Э+I5Vt,aB)9uy96Gb)|]"\)yֶc9 Ž( LnF`l-[@?-zvi'}_liM .G*b!T CrdJ~C3یaa.TXv~Y;/:~sV/ CU/SSBД(}"PU6#{W2 qW%FPkAiI6~LRs"&[; HY/BPTZƒX2AiD:rpm 4-:; =S/\lp}[7#(Yh\ŮҘ coƊi_WGKg~3YFqxV02u`b{0y!!%l"B 0׍-*g)D(q#D|C'x+b)(YC-hNO(N8ړ/J&]`Vo4 jE41Bl ?n6zp3y`iz؂%U-Ibe*|qvn:Hr ;"]#r۵zj>פRx"HcnF{/Nc4{B4~g ؉8d[,D2\RVs-EA+Y&ʄTLZbk,ʧVgdgl P *dp4tM/X ݎ l/ |'ؤAA6S:u~E4m!8ZChSBxJZ5@$LY;ZaZ pGݛ+OTF}gVz1\Ns:<[uz<_,> .uҲbR:$.[o͎n0U r^]ф7F@>L/I,,nJv%T;G2oﱌ\nZ_!h^Ei)L$ie^6(` djdD;u:Iǔ)=&T2M/G2ؿzP-B,U_'sjb ȬM,k;* q ˛`JSC{g&@HcgJJ"{=sZ:0 [O"&/N> Zss Q.>_N'S1dЦ<,nST!jry=|!KAl{S,dYɹLᷳI0s,ɥvN6Mv'NxKK$$y >Zls-zeR±! ZuK\ӵ3|i:-gJou?By W3W!RI khxLCe Y[XDSjXj]jZ:~TTWMm9wDЏk]RДܺe Z#tj,sѺ㇤$V;l`M!]6հ,"ˊTuՈ5/cZb\ {3aBIHc[J%a|ުذʦՀ+WcH ]* hpڈO{e6ݹқ29 MK_ k[40[Tˑ~H51}ƴt̢x+I? $ HMnOؗRP1 퀷=ѭ*朗on.HbBXltuov:12EsJh}kYGWӇ!lFR" rC^Dn{HǷC m3i \erIi 4x${^ %1S"npwH Y8@@O y؟/|IcP[3JqNܐUBBU3be˖^茅ɶݕ[@!j=5ZrddE(0!} =jOX!)No"Hp!r'a*[(ұԩqddukթpRr RDhoń$i9fIOۂr:CKZz&h<t`,b`32,PhLB^`wL`}AsNlY%r' խ^U"KNB sz5y,?fLn'K)Jy&ẑIt?"O9K&X!9'bָ: }ÑbL뼕 d`)piKI_uvb}${e*<^\:}]N#;>+Yhb`U2UE4on.Xb=ꡭӃη a$1ENGhp>o)@o%,rW{D#\{659I:x]uwLVĐ4y%j]mB72B;9`8%RNv20uS)?^>?A:(ӻAځtn4.FX*x00%c۔jXR3\[|ssGP{"oʬT׍λ.s=JBWG^CN4 t@D~ =gOTSt["XBWc ȴEo@yOK@~-n(w CQ5|_^ kgc7o 2Z+3 9 /?.pͨ>g˂*Zvfm=- RKkf5 \4t!f;%uhc"Nbrn9{^jx,qz^F}SK>KaEF7݂)JQMpsZ% :aUហt{@ \DV<F"My%JF8A)<2o#ltb%,;Z'G<ÅjI#OXV\oѴ`jW)ev atQ+K4t1qa/:Q&eG%9~Z]ٻ{ 'J{@Jbs4QT䁜P@Ba@o{(f`f1C8T;JeJ%",X4c͹`D )m71,c :-a|âšq72ƪ,bu"ͦ%g:\LTj?{Bf܅i&Iu&PK nc/, ; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Tcl_Main.3UTN?Ymo8_Adhuݵ{=7uƥIgQ,.--67$]ﯿgL)N-3Cݑxrw$jgrUD>{]iy,_ ֙zGOUn-JqYSȏ&۹ZHNЖgggrG3WrVMm{Lk6bar-rv$쐦Z6SK-UI3jk,CƱD|7_'7_\O㛛t2&w'iFަ)|<;#W^xdzW7^y\fJNT{/'q\"Y+ Hn?tr %GqaVٝejw$3>ljh7XL,+yw %Xri՚]$U洜) ݧst&UU!Lzf]^]ϦPZ,wH&u'-nREK5xt|*Lc܌H;"uvo~gx/S>k&)f=זrsf`#2 $#]) 9xЮN*NeQ2|5RФa^LcYDrm"tjBjPezPWmAŹQy9m V5*w26ѹ& |Pӻfz};2Xas\=V:EDʱb in\-p!]D_M`^n7ES\:%gv+"Th]t(h+>yKX;Ů<9a v:_xîi$Ѱ<^sޣYWQ!<ւJڤM,p]>A|r,uTy'CO/ܖMruECдA[hC[enL2L?*e20\ @-UQ#p"_)ؔC$CzC ST'8VM&M}D~)l>e֊Ma(DaZ5;juG'NyVزiB:ٽ΄ZRjjXOyr /52.cRw d _cO' 88k+0;uj@ +XY ݰq8@@2ڰӓks&@} ժtAF8FS7y|GjgouME$ Ġ ]|B rẗ!ctZ) vю[|}[T;Z _#FP\!Bx 0&qf2x~ -v?h<רaiZϴ2|Ė!P Br"TWP>dnM& NvBu"tۮS}6?lWgMl !c0趥chAy&" (hP@Zb[hFYCT"wSq~E:VV (|LsCcIS`~}{~:vh" A0܍aNN,I|m -ϫTLEL&d6qSn_5.б+[sD`bF$3^ |sL|zhg}|%LSVpQ>߃OK ar.N"2E_Sf % )LL͞Ws~m犡L\}2R\*6EamyP6}3jND"BcT:1SçGْGֿoB\|/zwyf 7=FgJh5pM]VB;b{%PПLma)nk-{DIA\c`2 cSNg!O3[?JQ,"`x@a8SےX7Doh<,DQ0A`m#YEe;ԁI`~E5pn =L*D×lh`9 b=|z[ ה-I@ɞ? Mm=X~^"0E.9LR辳6\мL$D~qwG  htN\[[plcK(7bN&$NM\[iZ &HM aSb#f^S )~,m#ƪ? Fy*.aZ@Z~#3ߥJa{4Lbvu$2?Ώ/[8 5ͻ#ͯ/PK nc/< j"9 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Thread.3UTN?ZkoF>bhl&X,VDc{-A19&gҊ>fHQsϽOO乫Y,=_6UcRժ1_\V~0i79iiBk٬MQaRmN]H殖ߒ_JKe3Y6wmw, -//[yVN//j9-HIno俟p,gor]k%&49E|/Sy뛗yZ0~-g_+#x'KeR"YGyJeZ#sijUoMRG"9[d^^M?,rlfP+ט|;;/?)ӌ^5Vt_Fm^~/vO9ߜ,?J ?hbb*\|~06-L6i9U QUÆ(^>RcN_rfcobdNdZm ߨ~AjFw2ַE!2>~]-!4 ޒ|v7-8L6s6ypK ɍiրd6M [HC<2|)M@KL8zDlND9j@+Ph5 5e洷?5-dlKEMnkPKJYxTx|A%H_OZ!Xy#'rHژUgxH(<5H_ndvíD|)hJ'YO%UNDcƂg(I27]Pj@+^H Dҵ ^k*@aQc@%fʔ2*/jݴWw[Z*]i%=RS̳04:&LAw1T2B`Tyv ث -_C*l-5)P-aKz-`_}gƐA0t9=<סܾre'b431G x5X:ȕ-ak!rq C zP)-(u( 4t~fJ镱JH^-V^O`e@iֵ(@'y#]_j ("ӵt (J-1^H"Y5LS&RI|{ @1UQ޻ &D G45bE \ KwzM+5Q(P|I?S$T1P|:Ç$!Q (n$@Ee3|w튳X $T_ogӋ//ӏ˨@. .t*H 4p"USI@Wlk,89')G\][ݏ]ϯg3 |>{5-Md ]D~,\U?!< -bA إ@,g t# zV%FlY[MmJF^C8ȯ֚',`P1ĐS䭥4[#7,`tzt[O2\23 ~P)9}ld$C*A1z2*[e߃%!  ;# a/$ |+ְ@lݘc ^^a}KJRjwAr$"}Vpi:)Ԩv҇DPFNtQN_r!!->#4L@ƃ|BN+@Q`u_[MN|({2$IH|vP/!f$$1( g Dxh罡fR43TXutZ!:ot@9<c4´((ѣc~ԑ(kȭ|P!VOO[=،R?O! O("qEc!C'm-fgrʮZb΍El]Wphîܞƣ^>CqWmҽe~F]Ɗ  S rV2R@ ͆. gޤ;b %IIC=Jh #UȂlg1"t8"'Ņ=nujV O ' Ab8P'24aKʜ{  OQ tpޝ%XuuY♼49$fㄻ,4i{])O} @)z[hJ^j&Þ t`ݍEn#17//PɂlΌkQÓ0 ax(:1,,Lĉ\b3uQb)vo ^qYkh^MÝ#a:ڮ7w_HdF#OKՂqJ^&Da %=xr7ECcagnYcyt *M ]8W ehAiWb!ڦ{ozk a' 4⻀&2^I DtIO< w7O8ۏEӯ`Ajr(D=(wU<9qp=yAInUtIdΗS" w.Ȃ5Bӆ]MӅnߺPpz]_xk7a}?,cvk 1(w!Nv,u1 wEϠ(]Co$6ؒVc\`q)G|Ϗ3iYhIG9.W$#2f`7 劐2LVE\#qj*qОIIitD5mOUSDqa4G 7wwNnڡ+\k1_X:W)*$݊X+6KC;E]pJEƩKCun:*MB7gV(I+ sb2!a½`*0atut77?&AS!3.菃7v\D=,\?;Fǽ'׻xe"ӒޖHQ3̑g_6:gI=3FZ<)47 0LwAZ0]tٳl"y}{{VTr,2@}bfSqbXȹ =(LizF8+p4Ce3% Ãi:8\.BڴV2ӽv ^k \vp7r M?=f%.-^_0Amd*:J< H{f9-3s\ G]F>Thc&c]Q{LJ$Z SڔþTpid9Y*_@ i2>\QGʸJ4\̝pS,G{O=ҮJjrb6lur3/- h΍ubŐͤ%[~Ncl Yƍl2#}%t;|'Symy2"ڶ\6G ZV2[o?}9atvv'>h;HKS'\pVf TI9~|MXhI<0Z'Ely PK nc/)g 4; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/TraceCmd.3UTN?YkoF@@f袻bwIIȖ!0PP 9#pH;>d:)([$ǹK?;+y\W/^Sk\~;}tZ)YtYe*ULfgW .)T*ծ*kdf`K;26B,d1_VrN iZ7:'|!o䦌5)^F__/oo^CO]^ξ/l+rV8)$g{-~ï~,ˣ)mҺTLDo"Z㫙@Y3onM=R RQ*QjR ~2{zLeo&TVIu ăZjW15]6yɤHxF⧺o퀙` fd2h4i^ͮ7Z<t|ΧSB=J(bmQcDdydg пP`;KKD]PuR"% )bԲ d!MrAo]noҧg;C&*I8Z .@n"0r9);AdgvAmo!!N GPt Q:uMXWHA߰'3כlcɬ,r7Ui*@wzoq)a D Or5hB$TH:c97VTa HtN~luT.8x,?^ M'F^1^ԠevDD*)CB&)@reA_D]%WtvSRpi )(pa=7KI|վ{C7#}g)֤^K+A9UR4MpD(2[}pm,$NAƅ k^{Wh=彲 hDž:ryYX"svAf1'40L' 8*9LO/7 )P LgXD87<Hךű%/t`b|'Cb_Pa~nu>U[|uvx^=cݐD~4m9qA EGnT ^Tg!F&;奜~|Ϛwش'Q#YnK1"|K`}+AnA~UwWlCv`|@*w#D=9b8c:gHl/ O+Ćt M(T78'Az jr,NtX4X"plv?Uێ.zd}nK(WRK12O$_7,zx`Ӯv]yjz F >>Zkꎑ-OPK nc/2:m0ZA; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/TraceVar.3UTN?[moH+bvM2)эcۺtus"ob8U^OD Y+~G+ӹViQQYF7@i6jYhfv>ʕzWSf>۬nj{ Sq,.z75fU5=Ya.Uѳ,uUB/oZ.4-5W Zߏco*Fww' 0<-4΃p-3WjppWj ?eV2)zF'U>Mۥ|Vr0BR5ndY~Ȋ&6%wmtcG bl7s4KS^{b6O>& a6]LEr|͛+{k"~j#2S<M ХZn A6 My_}CRCځدrYtMBʲ}"GҴnam;P@i$69kX;S[:E+NqԒ[T5s`w[p אiU"p2oPT@HZȘwWWGKuRNB5#8.4z (^ࣁI;Cc{0L ZVE[%biu ~DP0dzbzs-܃]l>9ů*'S?C}1^4s᭞C5**3|M`jx47 nm,= (eXU XhuhKz.b/>tfV !XH,Ivx7wƲf&h֞P^-1 PU :s3|?sv0ps H{Gj7 &j,<HN%.Xhe+eQ:DP!tٗU1aMSE\]i~h[,?e[7<B0** fU{ $1aOu1;N3948-Cg ץLh)MH(heK3A[}\XBc SIu qK^?B2o9^{XCa=t s7zE*wo;9 K\jB?"4=.r:8<cXjH[Ζ WV"eZq`W<[0C SD hZ8.͒"+ C1\jtZp*M.mPP$h#ۇtע_micQk(.1B;׭2EsF½u4 [bndA?QPMu*oу@bt L]!W!0eى`\a⾖ņ+(%fu_Vhi[CH0@^[kٛIR'0'A|6A,U/;!R%$2Bdt*8VXa'u"T5|9/f7'+Fl]0$w[W"-Ԋh  e|JS &8wR;5 v AYgtȼXD2̩bznoNHu0dݭ1"5s pԏ)i[t$,nWv{$1Ocr!a.K[0HCbĐnv=igUT*t SDS1Ц\m+Rpɀn @J \r*92|[tC|8 (J-b!SmIx+&J!YyZĠԄEN`5t nqGr]"(ԀUZ2Ո`E'^kW $+plO@GךGi<4}On4=VW|ғ_쾣xِ~M܉ Xt~F"nv z\tz6WDZ<$ ݸfyg Dfb30]i9DbU]cE^1 qXHژ7վZA_tI A+N)HڋtORZ$"~Q~A`ף&]ڂX+ݞ[ %;PQG71H9_4(Ī 37 ?ZBjedOD$l|jDwKCr]Im,t7CX,@h1MH j"s 4/>ȶQƨb( aͬOR Ҥ O͒zGV0pf0ATE =Q;;rI6q@7[EqE2% *iﶴh69g_O(hO+C,m0Ftΐ ȮR i|ƣ7or1}si` ]klTޜ BKqA MAJP\=S~:* ݙN!(ڂq?K<@!M]tI]⨓Q4s{dMt:~%7r!hp# dW4ҟ2 诙?x~]x̅e=BzB5:!o2ak)(y,1 BtdGNicTdz"{?]QWBmb)u'LV&˽l6tq)\[# h68e裓`hkSҬULc)E?j;#FN͇us&b8[1U5^yР惽J8gmN[8%8F#QGtq_-Y,p)mEhj =n [%"J3{]x Ѱ0Mע7>C",0w]y8mT%R\@e=S ] <*-nڀx1*YXk ۫Ij @t/Z+lؾCQ;tLx 2cQ9aF$qxF9A"8K }t:*=hI5W}+˾"*,8w5ȓ$RJ?b [^_ \ %iٰb3acfNL ن5aEHgùTS~aȺ1[ lnO!w!0eRD߻־,0G#<^(l<'SQC  fK/Mre'\S\4֧MIZK8ڠ3tU(Xga̾Y[U^8NpW)[C jQ3Zt!9$_wpS} 59 MXەр ͑8Ik8ro8l,8vR)KkYfG/iʎMYbijMQx M3!*o츉e (Ui̛=-[0)΂]Wzn6<cŽ> r%)\uy=U maIkbHTil6k٘VvƤ, (C`uORA-NH'yV!گ}~ŒQ@ZG _Wh c.",cE8F6aJ?7a{BLf[Xl `mgL0k.o9k†0CϧW4@~.hLm*\N߁: Jy"@VuF`lT3E'[#eUi;k{ыF~|p30`U PK nc/ԾAe < tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Translate.3UTN?Vko7_PGnQTX- :A }Ǔ+ɓ~o,$;|-wgfڹ]jth7ۣӳT0dB9Êg.d 댖@g?qSJkC:s֯|Psߥx,U*/tSLwI|2hkj/ɩ\Ck1XLT7qI7z777A?mEzN٣&N_ʠt|xxS::>? KWm1$sŋdrMs I\ &GF'݊Ff*|HE^ӰwۣPf  '1t+Z0\;Vnp)} ,k5de2Jd3hwl v6  Kf!Pr0o?~'F.SlٌQ\\f)|1Lg3e[@# ).0X%1TnN~D0v0s"$D$}ND杭dUmWg9O 0jd"z!چdYg.szPTmth/R q7 PlU- 穮BH5L9|He?FP$p˒͢Z Z}RIPe`Je8<yr>(Ny +\Q9Lfs2A>QPiQ9J94 X UXgu)Y'a}Fu1knWn|!F`#lTPL>g.֔tq~Ta0cZpͺx=&Ю n,J4SDwQ}\9d(6|_b2{GgZ&(Yh󘏄,c0 B.k:ٌcXa~uҳJ2[IM񏒎|pG+[oVB"9"2M5K#[\4cGqvEc`A]f*ۋZ0n9cEZ_|A}T ,gOKƄ֗E92+.ᮊe ϽVD_c0sVى,a%o6X*˂ R:VIjڼ;dvvU2Mp(MGr.eZLV)l hQPdp o6܎SɨTE@1~zw|+D|/ %G,xU d2<ֆmo1i͙X5p<ѨKb[YP ޡ,kb3JLVyz0VVMfᄝ+ 7ie!,phG9،C*r\0. ,ׅA4ׂZ$2tÁ4OZ+T\x9 WQ1gGIj9V1k-:w F Zvmpm1:p{6ͣe*@m'rѵaǘGMiBK,>T?M.bR PK nc/<9C 8 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/UpVar.3UTN?uVo9ߟbD+TdKHzIO#" WUT V/I$Rbvc潙7=uS==Ӌs,\ek\g5Z&l`ƥ­WKנIÑplT0\Q-ש2N%^٥6J'犤U3ӒׂT`6I׽qtG4D~G`#0:KftO@j5Ϳ7efuV6H\AKid"|Iv>$N5zj]ӭ-R5+r5\E2BMWN6*#-?\i"lQ`x;}vF4/gi,Fx^Yg=)jPfR W6<ϔ)!k :l4ڣw7<XX*z^bm ] 8cFJ 6wsd̕NE(k1Z*$خu҅5zBgZde32~/q67rM b^oKHZy"* X\Bb3L$/i 0WYd>_j`-w1U"# 󆤵عJZDl>[m<snP~\hS*/ؕIU8z[_,1D(*kD7jL#_zB#YCJ|Do&UF3'Uc85I9l`$Ly1 !lC")/- jϦ:nR8zx_~B%3Oڂ?hȅZF$&T{xЈ`i(&hVy p \-!(3fo">+`wpUWtwFIo8ǹE3IAu|Vԯ%wO Œ+%Xq>|t Z|='櫜,M[[TTde:4F[;dўOUK9 TG+Br*"|*,zXHQR vI!&j=yYr< T|jK"Q.n/80Fj;9PU-:͗l]c#Oh8_<xlriuu#]WkH&\vme(0gv5~0n4+@#4grɗsXCY[e;../l>+\-Kܦ^P_߿ Gcj{*PK nc/lZ )6 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/Utf.3UTN?Zmo6_Al ֪\4=n8^WvHVlR)iukIp^y2a?|3ٖjA|O~-_TqT27S>/WӎZKLIbYǗ䪀.8XI.2Q*ղoDL@K"6EHAl~y~˯?cv{;/N?n?;ϓSFo$:>>~Oׯߟ}'|KoIDF\Q.PZ$>yL] PR[~SX&u)̈́E -~Ws~*ZS= #/EW1MNM9Za*,VåBc8&/ܽ7H>T ὸM)3gռHc|*o&fͿRsҐmԦt7$HW79Hٗ;UYH*΢?` ȔGQ3 }TE{j_9nY`{ڔ뛪~_whc PKO󖱡43wc`16#2 Q$ԅE?vZ2l"qtԳmiOl~.Dns"U& ݳCr/R3wyI TR.1N.ϯf >lxLȃu7O@oN4MZkʹK$ؔTm6; ^͗ V-SƒΌF8VG|)y{YVZ>`;["8$>,Z8ne-}^f|gL:N+0rzkI{Cg`,;RF9UN^DO h~]bFFXrPpЈXiYL?Xo1:*r1ڻS!QkGC"Obr Sk°9njz.L lLJY)JYՐ?EVFʾt66R;`2I:1VS8UC7uIIWMqgim!_S ֈH躌@J+pКp'plYcqDI Kd)'|%瀀`.s]nf|+Cአ^ZNldAhbSwARo@.k;5$d.3'PrԾ6lC0dg4dyw<+΢W(0PI7%֛$ֵCoSMX1'~Lmz9_08)E5F힀8cq~gWf㔍+WU-\*J*T29:LY[+P~Z@E .Edq#w`МVlY ʭɆO2؋ŮT Hܠa6H 7BO8u+  X4 - v )rlQ̺zR%Nz|Ptn:v㔰Hlcw_dc1$Tmg]TʪW$kZи^!R@;_qlkJ1rpGXt |B i T`)%~밆fb?@SL:aF&NAݵ KVf{n5<\ ӿQ.Ѡص 8˲L0 <ҼAYw8v:RV;* ۥqU dYRҜ ,ӱP)Ll| X0vԟ  mʕe֧FR/eԂ 2ݾ5?8pζmfz !~13ั(GgmXb ֬auz'' Asw;v2!C W˫'a+}*^QVxIɲ!CHN%7K fO^'ÿ="Ab#S %gd=9j 3|JLU[VJM t]59HQvTl]9 `|; ٿ7._tC9NMݣŵAgl=_vꣻ7h#yD܎m"3Uq^_VzBĥZv'ޙFδ?q}ajڍq= PK nc/>z ? tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/WrongNumArgs.3UTN?Vo9ߟbD*6?zjNGiQX:NW]^fm؞y͛NZp҂Y=Gpr~=>>A\hUv^ }-":RKHU&)!6w-Hs+I:+UӂB0b,BvD8\M:77:q(n|=87ѳAwEg%DOONjsxz)7ޔ"g :9Qg+E_3&~=nr;kL +]E10O&a&KprIH]SiI#ngE.w!t}0Gl^(-"Y4k͂^4k3}lqQ} Ƙ)ux/25U?XO|\yEv -0Kݮ3 d2 *|CuSV)|b@ 6be' ۈ59 mB%!32G:cMuRsDMX #Lk{$t[|bm Ռ)r( Uj4; -,)Id0<0SK@.\x>vk3 }(k::8Ś5A=rՋݸ?n߀|9TRJkJ/͓L`fMM#5A[aH= ?,$$2 ҳW#d{Z03"ZO!vئj%lV_Hi4gLfBnt޷q|& ihAU% I.Sch)fM$Nz#=9YW4YM;0YfVh]FW]Wu;z psSd l!p͍cvџUUbĨӫ1ppE/oWN rL=IjC]7~B v52 W߸rt۴ c`+epeV" +N\0he//u"q3&圩ʤB3+`a48WS_pBm! n(KhV FMvDȿP꼨#(gUe=XWޝAJ^0Ue҆Ca*c\pp]\yvdtƢ Bt&𥻱$M˝inmVt Mp7]EGjʬFtZq_^AS0]mޅPK nc/}98 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/after.nUTN?W]o6}ׯ 45M$Pc(Zm)\R/ pdYs w0ƪAvH/߾=> V&r)wd7:7|BjaV"HZӕʬqe4YXM 4(T&tB|Rh_R9Y+筚[U.8j4_>M&g׳h)|!=$H#5LW/߾8~C/ON_9=yMZ?hPѳ'uJRpI:㐦7ke V?kV |b\/OrCx*MQ:@gW#*/ eaK2Yeq&A^rYMX6t}s;Oyz1.bGw9 W.)_ ɂWIݏ_ _rog\jW<( M/&:Ioo 9y!#p ⨬YZQ24EyiMoΔ24k_[=#'4Q0}$ԹKV@Tu]%;fSvOqqTX$QN\h;rq3ROn*s-HL;hBI1#ean :0w*o=zn2i2$&j>0Q[Õǥ჉1_2ʕ]ZY jZFu2E(P_@1lk_jvyDxF)^\+S;e+@ZH !]Y_2@vj^ȹ?xJe2ZS)N>CCb?B׉J<&ӛxxZl /B0鹻(\oNMS#@DL Jd2qVx@ IE6PoN. 0ux=s^%JV.w}h^\[@vVo56f}=1qb~`>MnB;>k|G4Z~𼉆-Ƴ7O0~s$`1A?;7u ڿ2>Nq=9oΛBfxczDZ h`cJͣ̇ x8};`|<@h4 uh/?U2Cӷ6{KN_qwRwϤft ќ<2v#=aa,NP=x^2k 2N8g2$DjB8mC BÔ{ $ۡID6HGm/o{nPz7ôVԀ:B3v'e8*|q]ޠV$d0s!b =}6G0b70 ?'PK nc/˳ f9 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/append.nUTN?mS]o0|!JԥPT^jt- ©CMZhT)Zcwv<;i/#^F06}%g9\aA` p++ޟk ? 5<ʬ2voBI(Kx!Bd"wX6)Iڊ59TK*] D `&aO4IٲR&DZN#՘8ϓ"NءPh#ՁuD|eVWtFG'l$#n;7@I45SӴ꽕6*G`_̻B[+o5YgȊ?'mev2GK, I{+2FkvijU=gwj|cZ+jn{emAqY|x/Z+AŞoqL?M:X>jZҺ??M~5PK nc/͂R 8 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/array.nUTN?YmobP(ɎueEZ uwKr-' 33ʣ"(jґ77;uxW',;pj^dlt\"q?TCp:OT}urG%_*4Eb%VAX= #۪{+rg)2T,gawUq51r ΙyOʵ\v-mhe[6@ UhtN,\v'u=Ѝ0[N@n[ 0vx,iZ% <-oNмS3,Wn@&&Rik-w1(wZ䩚k v8ƾz4j*jKm)ֵ.?{3Jq#E $./j G 6}ζX2=?hY)ABNɥ&H(܉Y^l."tVE5ą~CsB= Xt/'i`d#o h2.23l~]5Fk^I"B՗}{r'T~;:ݲe.XІCXIS0U 9vJLm҄ * ݫb[2+ip6S?B4c`}TaGbw|Cc-CD Ϲ[hƇ@aCllfOMW"KWHVtX5({^SZQxmJ}L3,j(*>YxCӗмG)B6#>xB5H̯s3n0KJ:: 10U1Z9Ōy+izTӠڒY/*@mUՌN :E@;\^faWC 4= 7U)b X6f W%rni0TAe1L kц|+1DS"%{(v\*EנoaB4֑x!V< ͅYLBHɋoث%-~,Ot i }+Ygu\Zc`XK+q+DƷEK":!$3l_WS&ӓw)~$&361oz_/,+~)_6߅} "`MwIߟË% 'o('Gp~̈wΚwΫr/~?F\Rz?\ߜȜ~/[gin ưľ>%- 3|4`ܨ;~JNjN)r)3~/p|x} |<\O/_Oͤw>%ٻ>.?BК_x"eAmVkNZe_H`S 5U>qtX@txc0ܻ ?oz*8夦DS@@Jތݭ gBޝ^8 m|%c>r H$]Y!m Hd@J\[(d&?yƇi].Z'`DkX`F4!D%B2I) 9>[D$\Rt< F4?! S0!X"a )VB!E `;u̩RO 4X!2ѤK꯭ʌ9%}hItlp5!EjzKbkeTB #ĥڮbu kN+b GBTxl)kH"h1X5@QHDUkW,J]{0Oef^5ڢG:pqm،h"#K"y|#Î3k%\-l=U#+KsPY\)7+0w9BNgϮzlѳw8d<N DS㖪~-vy4b{mJ @5ˬWJ[Q*Ck`PlOwAI4%b^ݧ̜>c/tyEWrŗw|J(./"?$`*4sgQ,^2e"4Q QDiU.$I3FyE~F3+ʩzk9޿_F磏 u+qODdwwGW.in|!BY❮'|E=|9]Eqq8Nl ({s:J>|y$-" 3y?>8J$ 0(d|ǧ2Nonˬ c"AqV҅2ʩɏ?}'rv?V.z7߉Nai`IoZdBrQ?9:? r ǗYz$(߂h:ВL( b.,s#xI0nI-bJP[hTފw]˄> m{8ׅz &`2(VB0p pzWZ'46&G()rlE*4$OV)|Ls P,6kt $LaP\y jTd[FƩ[L+0ɱy 4~JQy|tqt#bO{]6yJ&2kt<%]*@'_ 0 lkTHL B$DFH="F6l&Uơeev5x+,4*KÒKaU͗" !5plΠh8[ˆ} EXLz$E>HW >yQ<ӄGc(^@ߦM!.0mZL9pSl\!"Œ '(D/MBaPJ=HyD憎:TNvvo9 hL2$)~lZ" Y/?W3d #{Xyݏq uR86M_F6_RR]; xC»_ڃ죇`bxG5n%JT' mJ(#GT(UB7Լ CW{ ss qUyMZ8kx9S qˤ~yyOGt峙_'vO4jv<6 1+l={'Fp;qqd\5{G|)!]86UzrݓQ+O{f7xuijv X5Y5 \6XFY v".GO­qs^qÏ>>A{|ɯdU#}8}'8[lnpӃKɠ ޑ+l72Tq]Qgѿ&=sWLN$9cJ-mE|kB:>է LGi]ɖiV<+!y&VyJVx4JDَ.Sp=ӕR+!ɾGO$sK)5qcjyw4fݶ2Vј^ α]krn]z߾ +d(lJWVЋS}\:7ga6:jK ,CNft )h,, b@_$Dd+} IGcF?iUÁY9z楇 n/K_V=ȴ=XtDyf>?gPކݍvsTXf))Ց$Vz[+z\L$~5v<t0mPRʺHdS|[? l DZ\[`j"j>|qe͇,T{fN"op _bw]}߇:Pq!m{?-0[NL4^4hkYEI8\M299EWfn%,d.2{fn Lϣ /c,YR@23Ri S+(t&hVl%)U+ؖZ+׀׾'|NItv?ii'͊ufIZd9jYwM{TFSfreD9 .eV['А *$ <~GJw:U#̕Sr$t=h;./!l0tMJ6ڰQ 4Kt:]F˶ty .ۦ|Pm*azj*>KQ+fɢQ闂^!{UjWj:e^^Wgm/BI{Y]ڛ!J[*UHV3R@5ŪkV EO d̽b7cJ>2j0QW5sF]Oi{T9{y᷈ [f7B^B~MRQʍ䫩 hCu¡—s慾GU~]jQc_+V*gTE4갲Muv@vDF`e:Uá%%sv na e36ZP_0(ӹA]enkjؚmBN30#땜jCLoFnDFG5 unvוw2tb!SMB#Bт6 @dѻPQ#yHM}kv3D̴fo(D$z&N5-׌nNPo;3. Zl0x8 ٲWFoh[`XrmXu-R)s0wOo6nKWF(P;VNRzYlg!ozbU8Ƚ 9u5;`*v3|?z>4wXOr)PKMF"6_m`¹<[\m0I~nGc<߬ȬLlMnbF4-Y[bT~fɕ|0 wN]%Rℬ/4XZqkR_a<Ԕn3)h'?~](^mJ0haf/s߱k VU98w|Š q~w97e]X0>1ΡXFѺw0GSY+X誯Qq/Q_No/d K[ v"uPyu  Z0?}WuۈӋfVp5`㭃Am=>N~c4J[q:GsCU$୳#sj*mu_lmD.4[-ܼUbkz!g֯j[GBU {ͮ|ߋfӼi ^x톖Ќ^+-taop4|$=lLъ6_ <+-~MG%.tNl+ql?Cb!#nY½|cכk S~/\o%K(lbWAyCXF1t(K<^{tY Z:eG|R 9!7Z*t5ٟ=ڃ <'qk>!քSkWJ)&=+蟩/&pz{?K~TBFo'M}!>wDwi|eG׼Qk7E+QЄ;Uvî>ߺu5X/^o˶ JN符](mlun%ȥzbT]QΕG;Aݹ~t_6Ǔɟ&{l.d-d!$:|r ʯ~s|=`V4< >1+|\ߗ(}fAfL8F_XE~yy:׋%듳3>z?E@OX0?˧';p[Q%ؿPK nc/~58 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/break.nUTN?mSmo0_q*h T> hFd&vd;i$pr=ݝvN`ۣ q +ZnaG(pY[pto[mn=')G백=ȕ.D [Y#$,Mc |ֆ;Я|U+iο<SV;g3xxʳ2fbZK8˫l T0Hoa\C܍n] { g#҆{,]=F P$5$~tvW"2lI ҠFWr{ #OR!Ȧ!a} ;q}6j[v b`W2/z; mA)d,>dȗ|1grV^w;RBKuЯH*q{(&"&=U)uFY[Mg&E6AUP΢]`iBt&e?O>Wz5`Pgyհb 7N*Eq<-O +,H;М($_&L4 %PSɡ-&l4{]"' &"~"緑moO"#oXu&QMc;$eȔp aɆm'"܏yQ@{62Ȭ%57q\^]We%n#8owxL^ Am7wEQC?s30Myu)kSf6#}{g6tSl~{`DoDO-wҵqPh,4x.k̀ɴl uȀ8&;"*lLX. EI|b,#%mC+Utt{e^eQ5r$3ߦ(žbeNhCɽ:jXt{+S_.g taKBli3\lͽLՓwd,Z|ZkCGF{sGk)AQt[/ \Y@( URw}P!W9_hM%Zq9mlbG)!x+6mݕ a%׉̞GGm ׄU'>H5G{}7Ut+PqRԼiHEutmA%4yp.,% ='#` #KNf=Y+H5$vG}o|F!c&=WTPt-5r|wdG{K&X(so"fx%Sg?fI5შ|'yٗWU )0E;.-PK nc/|հ8 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/catch.nUTN?XmoFbN P'} q$Ct"W^]bR\3ϼۻn]\pٻwoO XP_?)zG_&+m䣗]A((3֢C,^Q˦ZYX]{FZ!̦OOߎ6Zç9ԕ, evh-H?KN6p5Ns[Z'lr1Y'ϗv1c1Io4C~8wp~6x78|]AP/cd5\JN^(0~YqȢ>*Ut-¯Թ\Bg]~LJ,KעRz0 /<63"LT/Ǻ1ʺoM:MI[MG|56E 73^ U;iv3:0'}Nӛ|F77_ +92bda6l|Lj0*xvAֽ&W}g"p Ǹ&+{JRj4ֈOPYduDۖ!O lYWB`/F_Rz}U!ҥ U.{W3끱#6W/*腵JgF Kcf٪1.1^BtwX(czN|= ]R+gT2h:U~ ؟PK nc/P55 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/cd.nUTN?m]k0+y&-͖5k`eBn )I_?Y`sly2a9X٬=zewwWX 5;NCw3Rg\sx5<)7@8Qײ%$,I;J=Y>V /FxN4+XVݿJa(9<OOxx3~>bGI^PVp^r8·]ގo1m#$uJT^.IE"V,סa*h+G4*m)"MY:?.rkmX1 3=6TZR&ɏP(靴F.NX)V-!k0UMXLjRz&=, 糄u4Yŏ; {2+8PK nc/JS^)8 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/clock.nUTN?Zms_X9R$;2W嚭eyD%SwH^uoD3.po$&$2yX볋}g_*/6&^Jy˿)z*2MV*˟MnlSi>%-9Eȍ*<۳d<>a?YJMKWQVJ~%6XɅSY,Tj1Z0N2V &L~|WWlfZ3Eh9HPgVJmR;8I*N ؖ&W :1 8(f:z9o#BGit!$FY(' x|vˋgAga.;hdsl*rݿsd&_Hr@^WqR<>1z=cR_HxDfy)<6hN~Ii)L_$9I PKgl UB#W2ۏL|YkӼ ~YWR^Akk\Ϯ立Ga:md IQivj#sQUɵ|TI=хq*mp80TIIJ9U0k:CeL#W%/Yګ&z WqbZGrFt-Q~駭qC-e؈JLP !",PVJCX#O8$YK*"px2te^joQ\ťVv+eҮ*.ڒGQʼn'ZQ:fPb>(M+dFțVݞM' )a/4N0G %Y IJRFaY Q&k,٠kJHٛ 8Upn\n)# x<&uTXfZW`/žIZ^]HgIm|b--3m aLF >-aW3cRuS)j$lzFXW<P2*(@|ʄںjD}ʐ{U 'P%0ltɍ!j$Uz 2BZrJ=LeEUAJ6ƐbJdz@ I }0(0ca h9C?Hp"Fj-ˤWh|3-LH>4JB'徽cO273' a/;eP׻A-|PQzEF:j=S{ >~:oӆ¨=o# zv|Ԑ4U>[p.v[Nb uknyN@փ=!\ƴZ uџoGFVLQӂBԛS^ Fd`(5%klRs`IlN,"ɛT69]{ۺ/k=hf6h$䬷Wf0!|᷎>3h~J@X*Vxx:8?ȉf߰xLP>sbkp7GzFꆛ*U7u);'jXNNkI@$/iP@@!O5g`9|=+y#G`|?!YavvݛeZvs$?PK nc/rD> 8 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/close.nUTN?}Vn6}WL6M[$}Xasn@%l")bCRR4((9)]~IVfo,6f ,CHxDԢnk,WF`7Vw,&M"&緳nav{ Orvyd.y~z Jn_f>Ij. -Ho~l>z3{r"񚣎; ƕ`X3b^SV\lEhjMN':-a˄#jro<C/؃v( KIe,+Zm)KB%"3 WH: ™ =j,T&L_ù좩KJ iv4{.ױ(׆Wz[@*Bvm`_%GM : BlgЋR) 3K^OJi8Kq®Ia\.D&fU:︯2|YkEhV}Dv#= ϣx^wմ-Z!SZ!l[ SvCG4"%lwXvuK08i m6:}Fg k(__@wiV<7"ɓg3ސ6͛5ZZ VާCSE!PDi`gl)4Ld%W뙳ʟ%I?d<ɟxS-vt|͋xz>A_kgt ҨPXljQ# EkYvp@!/Hhq~H#>OJQ X$7Zܪ_o6&aݮoZS9?c EFV#i`Lj[=U2߻Ά PK nc/▩; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/continue.nUTN?uSmk0_q k!uOK]IRJ!0YNDmHrA"ȏmnNFL/qA@.B9 g%߅ҝM*Yj$ tn $7ڞAxp nT^J@TI. >Hk͜ ZTF:#w `!Qi(yM)a |d)K<~gY1$x|}5Oar;&S(  u0P3WL 6/e= vbPhPA YI1})J*Du t{ M6t@PÁDz? -J&xjM3J}-s+%!I7jIl<ټpN|zo/ENR{Ob[~fâ^P ?|](,c9ߵFY$? \>ZhVxE ќ&&Շg,7qN' [ד*~օ8L*_/ to=BLs1D}v@*p G3KXWcy:{߿a1toh (6 i3DW١>obz¾(lp~/TuPK nc/Q o6 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/dde.nUTN?Y[o6~86Qg2h.:49}{8K~Rs'uUy3W JA N*q^kX@ jijl+s-! r6:}/pvuή܋ο.›Yv Y3y͇899})>sr,LTJl ki$d+dN"-1Y2#*dDr>gץSY t.3oBW>4BzFѬ(7 .(J;5rSNt% 1-(h_gsyB#Z}~O0|fUj$O)}Efj U]++/v(+/~${,x /6S|~#]`vʺRYo}8kGExzŷ|*رv1XP|σ,8dUa(s%XoQsty9}+"Jcy4'2wY 'PVHX+H!z(ka_%0 P jiLYjTMQɪBj nEQ%9; r(d*>rc}*x_N&e7:g?sRBL|U7<`4B@ Z+Lt-ʍ5U2_8Z'M)zIb%[0#X=^{TUIv>tyq{Oή/-$:* yST0=ǀd66LXTw$l[+6lRk,bcA B euMm:`۴ke\j]-P9F3+ UFHGI`y!Zlf(iC<_ZOcs!>ݪ<1Q2?"m'1'@ P8(m G,UwSLrKrd|I|WA:4/9cdSkŐjc=Lxq*kjWv(/"F{tnK>RdE)ɂҒ.!b;vY7֑$!]zu2ԩ~h/KtLojHХA~MkUX(BKx 񉥍ʄn>]\'wC[D!0ϓEx 4{S֏('2"k>ڧN.~o!Is i+7I "CmXե)ty*wc/5 uO :'M٘bӫD6G"mG*⼼˵ߐ30۲R+J;%G3`D@"do%^EdR)MݒJvPPPZ6@}DTiˑlivOD`LsFn){slu9f]2|tJ[`ohP\+~G{0jEK;Xo6`hez!WT_ .0iDG&q?0G"ԠsM/JH?mcSXEhm|nW=A,NVGE.(ġ#˜\r׌ظJe!{URs)-Yo5Uh$hsH$4Bp_ocFGط|KJIlats]9zc/) 'N~)L>5DW&Ǿ`EOJ7:c&z/;/]gq:0H?D:c{ٛƭ+9vQ<;p,ɇ,P^ŞA͞^A { 53&ZUL_ӠqqlՁ85`nxygpv-"yxӡl1?f~ s?s9ul[ϏK|/x$j0HFvW%)ȓXV%O9ÜlEl9rm3 ˟.E/]>S[{VՋ䩛a_8[^d0>٨‚qvoZ徟5{ߣ)HHã4yFޏ{KtX /irӋ7woW :# [ql:-*i#S?3R}` h[X0H/*lZi-(uxm]IkF&LLwE멸yJ}k/-j7TVA4xDY4ؼhPLJ6%i*ĸg2N+^ YBN@&'yΊ2}-{#۠N2eu`y2K>>ec`*P҆hT&\>[VЮupxzm`O)&S2#ծ 3/+)́pG; o?Q!120ĝ͇PK nc/.Y` /"7 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/dict.nUTN?Ymo_N}\Gi$! @RrV _P H6Zr8<Q|̿?9ו(e )HRGeedfe5G|*{+?kEUFF-[|G d)C&%~|>2g|>?MYTe~8~̊3^f䎟fߓoOpvzzv'^ܮoHBf4ߊ*ۊцe7I?G׻VxV0݂οVq^h^i˷P&[|_Tj˅/%8w,,`tcETnKXDJDh˫l޹ Y?/e42~ϮofW,fײDy'o:vNxjXҰ\WVJU /d-_)q~)Z,}a~ =r;X1 :/jurVu.+0I#,)nb8F LژU[ q)ؾH4op*hDn!Ƭ $WxO\uU!WHyDp_0p_$cFD|wF֑0aɤjD3(x43J`*r#nĊ|o o(qRiX -hWG ;Bj(O,w`,;՞JDJe)OJoۚ(c,e% 5.pj:8 xbu`}OnMSkf?< ?㎟bʠhqm bF;$3Y]B<"Q[U~d4bÀQ)Nfo8 ȆMa{$GaMI)l][1Eٕu!1 ZAkNָ H7UfZz- ѧP@ oP"r|01=;dg`gO'ۃHvNc̈́ZJ'zsg>~эPRUf](S|-5l2-#е)uFoT{|wKrWp rl{ :wa:/xĶKכּ Ew)XH@7"o8]R3O ?? hoY L: p)'1UխMK}ҏ8_4O7srP;T^@IQ ]tsHM BTM *5D$\Op7 ݈)N5]RTۺ_Uхk0V'!! kh扻D׺5cXķ-b^]tj&6ck(Gw$=Ji< ^ۥFqޏϯ(Ԛ'D@sOD-gz̃0?O"x%.kȭphΌCחZb|pL acRI8&s`..0 P6!~q~#R^@7YM/ ^/i|| /JTu$xWWүiSBUPD]P08Np0(RMA}̂&!"#JVuέw2r7Q̖}@z ~̅Gw}4c|bs#Q"E)h%-|Rd5O0\,Z(Jx3O⤪kǪAv>+Qz?.:7odfG+ޣvzӼG6" %L^fk^Jح3#z32h3)N ΈoxY b)prOQ}r r@ L7;O7sh'vD"3>b{nI\  YI)lBu^nfCH u)S˿"I `D S f?56F4䣩ؓ`RJJIvڈ41s|`RP;8x[f? B 쎛M!B(,DMUY5z ^,*U Y9]㋃t q$rQfu"[3O#$+lgѧps%umi #uIτA9n}nRWn\ %!8b/5 *["ֵLvBh~kD%sZ?Kؖu6;AT(:JciMvTD+΍mW D!f'KsCOz‡qLc 썥r0yӫ2ϠwCW-4ՠuFR5WA4Icr8  냰ac2?PK nc/Ǔk6 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/eof.nUTN?uao0WܲJвMӀfjPZUBslP5m}~.08_0U[7(Uo)w2e(Ef /hY-QpXL,CBa)8JE]BZ1+ՆmAc.b];BrI6}'q _0~xqg$~I~vv,GdohWs9Rihw|̼;-@Q\As4#K^BI-J{H܄A4d;< 4E$R ){n;Rq/Cw;`hU#q g`˅ށ?ZIʐWjnV(Ϛ{e4u|!,VZQX?di_>hEd/G?AV@Zkl+8K>wN/|bp~ZAI2K&#h`"*U?4Vcxz,-x9( h6oDIF7)TJKPup/ de?OoRK1Ebϣcl:BY-I;p$;/”9,@ܥ0'xĒGKZP49Ю>J,AIK![,*VǺz)VM3ETi@Γ%m%mxӠw%Kzx:ƯŰF/@6~~]5E!tcJ:>u7}BfUX{]5:xQ`ŭⳊࣸY<#a{ P\nP)L[.$9R`k<ⶰ .J-*nô>+33Hj/5ҽ0 K:ۇO$lypV0L6ݥ֪B+$EY쇽d(b' E=YN9 &zy ٞn2|AHl*N0uR&aIGm0Ge[WE{ U,w oh2 ;Qզkh 8*Cl=oY9$218F7FbtB <,8÷$Iӗ`Nzp|%K ڱO  H^wvcuy*ŊWmPy=@U-kOtKԶ] feTli*8퉕 atª&^G;rqؚV2Eg[qUC^THG,|+Gp4ظq=6Q^*/lCGWE{lhhlwPK nc/q$7 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/eval.nUTN?mSo0U*HcjQZ@ SU/&ĦVLŹ{wtjjZC-Bր*)ۙJJK1Fg\CHxV5kA"s_2D^ !D kა %~. XcX7 "8'q<)'i:-8K:su'I1hlWW7W7p9/x-!~IKVs6`y[QٳD`5e& ]fP Zl8,{)JHQD[ZXc_7\ALφRkjr-v֧e/"K`Uue>d7+|}MdL泀-5$!4)]+Mo"8lE6H,4ian(ڕ )wܜXIUِ2Ơf<Í#1%A|EX>NA!ɓ; h-;lgEn4{΋Ԛ"Z}uK4,p>G[oo <(]x!yp'FKҠRh#g?MXwyzGDГ7 8KÀR@^Nz>r|`uټsm(PK nc/87)57 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/exec.nUTN?[aoG޿OX@e9"Q"drr͙&٧4wzF}U=CRZ;rbf_U=p ?v|ȧ|7/Bk=U㤝̝i6kU+2<Ə夭[m\n$UίkY̔Z&וY;/MK[I:5RUua\SiKcaq,l%O^9W?7o/7㋉מ\b\I}ɗN_ϞȅN_/YTUTdn~d!Ukx\gK<^K3) ++ȥ-l&?4fFNui!Wp 7[-];]6=zyn2W}4B;ߍU=YoB/&nW"{Nܐsoljrd$)Ƹ伫favjiTa-{mt&FJ nRJz!W|p4 %g~@f /Dӌ81i*S] fHyᘾ{ w wUy1A DhÙpH1 ԉB9K>nyiE:vBmԶŌހ8S _ LLZ`G"Pwƞ%GPٱ'?~+HR- [_ mtM+J8 vI:'x>$++LR}aԮTSV(+񛘄5Nmt{ ZȴX=D+_@Xt_|&^n^'+ gl+Ht麶 ŮrΜc  p(%//tp8sEF+]QBF,Agurwۅ&u Rq\p/B$P)DbMkݴu%TjlEpgl䍔?)dILU}4UIB#(.>^Ü0TAj>Trg'CzRVb(tĸ[ר7;r\#*=z(j'~^>n_?=1cڋnY* ϢN"k }jɾK610s! !OUgI>t+^hpJ .HgrSWOw'wqϻJR :KFۃ{cF:]&rQԴ휭:<:J -4k43BjձW|-.Bo)CQ ^= -QTWTTovk[0SQ2(@UOQS^Re:j Uz[jn[a}DŽ?ЫEBwj$#)>Vz\<-HRw^l4ml\= x./Įɩkˆ7`"NB̨}C&6[Cֵ# 9EXD z{1lS?(#<왶Кa8C*'[`tm8>wbџ8ӄERT:v[Y M uVQ!k3UFQU~+rG"Kl2:-u^!2$^Η/Lgvϼ!²P1 ]-ҏPOhߩ$O Pڪ$ga\AW,ׄy'hLYc5n_uMJMռf1BRwJlv ՝mţFVu]PeC+Y6AsdR2uX@xwxUа2/W )6uV<?.?縒< 'D&D]]ߜ*ǓQAkSRBa#k?m׺X?~-bt!jOL_̟EzJ>x _5 ~=]8v y"=l*`P!LC͊'Q]U$yQ٩PpH*ms:CX'uzb3U' r![qP既sCʺCR#}6_!o1TރޡRK8jaJqNICh׈΅2ݷS!r9L< f5 3s +E}Z "wQ0RG>HJ/챦Q*h#z]UinDi< E 9@p\<:VtCcZVL,Ϧ7xZ~y&z5xPtگGw`rfZSPӢ;zFHG|>ty{1_#NjO8]b2qmGqbЏo^eyodd*\`FAGK ZF\j>Sͳx?~$SϳBϐnc*B"(9Bq=<<7C;o^h|O{(E@cV %펈`dmSw@L^-W|_@:ChFZpXY2#?{[,>$D)Jo3k6FEx}3O_K,3RVU"R!*!*x[:˾O 3GϢ@|yk ڛP;D|9'AK(rl0R8g ExhK:0&P4Pȧ$ uЏz".& _`ukPQr iWdxƂo8^xCS[?S9]O ~/-dtuɓI:>[D|nl*4GF|I.R{$uyt?f!R /|RzDdJwLOI TqjU4s1dkeArjpZM@_!`|w ohC%sUz:,[n?4J6+aA3b}nHFZÒ4ȼ#lw`&TAQ,%״e:F5c'x2= shFi {_v.p̓D"/߿9#:݂qH%TV5ۚ@rAs 7RN }$x6&aǎ,}{rn:. \MKYAt~DmBc ^2k3٢> ;5L/N1l|_S2ڶG\?) 0 Li7ƀ,Bntm@A]j'r_ ,֏J2!eMtm(FMOKȓ6h^UO%.pMsD V8zk842,~s0F;8 yaB`;C[:=669ag!8穙2ȟHl:ݟq%t$Um11qd2+/QU9-==GAPnwx;yY\}e! u;#KZ\3;@uw=Ņ<3:O_Oru$: ΣWPK nc/Y 7 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/exit.nUTN?m]k0+μBHԤ ͖85G)Fd,9k'f%s<8lp ˛a6rBTր.OEWl [wʒ (ą/ Z{mnbe[M zxA%BPR T&R.VҒV T94 7u Xu8~n$Y8}>$X ,W+#'ҶEF ƌ Bߋɱmi s)k DŊclFcYyqG|LhQ8PK nc/8v=7 tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/expr.nUTN?[mw6\ f$;ImGLbXn=Iv Q E*e[t> AJvܝ֢D⹯y%vnb*Y%w=P^̴<ח:,ןJ&V˱iQ橊7h2Ӥ,Tzn"9~i͓OL˭,Mtnt\rn$isUE.ҨK-U>*dLhjx J_ _Kyb8Yؓ3oeGW$9|{.=~@NOf!)\\"琹:~,/Lnџ49D6OqRTBE%$X?K?c ?b0:>] OOD|v&< 97n6A? Ҏ)֞ż-*,,jI:M$(3E!fXe%",7S@ܐ]Ŕaxz61:bxn`j)zxzLf?"spc4eVBL*hmSD072$ Rz%Ͱl."֐ޢ1eKN{띠 z2KddX3("[$KދiZ *Ti9T%<̆Zz;YDu]43TuC)-sR2~̟{ڳopOP@_Z9xcL*-ۗnW,D/*d4' gL j8Ri!)@^/H _=iz\YIlX\*X`'Sh(pS=-2g%tYV G0(_O޸WV~؉ּ=&f=r˪)=0mZ@_"!2 <<u><^{,!v{7_=+19*R_[iw(I'n2Es\Os9jR*rYgynPf{ D<oɌdD7{%,"e Dd!C@MDI.Μ#I]=32|$cYX{?!TRdM?C&ZYÆ@epy1fm9_N;u7r\Ph k!A, yڥYb "K4?gW(ӑ%p`"XOs&vDϡSTxY R yf!H|zXqTgУ`Jɜ" OuS}Ʊ}\)$Cø[}$lBmo>{??>zۙ_V3Dlk{߯hoV[|YC_(tPԬK H.bP@]ץWM.ΐqOo?K>'*~U/%z.$ {C?a]OKΧ $`2;{dƦMN9YB<@G`A*r`g +>y&{1soqNۓ&I3|3U_˺cyiw|Q(2 a %7 J"0v܀X 9evȾti[B ==YP\HJj]qwzך6ݬ :"op=KA %u*t|Dz% f٥LȲ(-<*QC¿ JbR"!UnAs.탷}]B"4^-  ɋy[#1IEN-O?>e:3p#y˂HmTj0)Գy4Aޭ\C4٩ 1IHns`'RiVlt_jc\f6*sbQY/T]iƄeXVwزEqM2s]5%KN. 2$Q]ԑTDhXi8ݯ}(t\F y-nů|rsIէi}&2qHN$PIal;0Ok[Awr >W5T:˵0}%o;L m 0͒ gN h|(+ҙQ$g>GtD*:>yo e<녇odc8"@XHDZְfJ8=qpMm'I[z}t|1/,j;'0:â}xeQ&e#C܌`KGSGzͶ$\)\MgJ 3sH<ܕPVW[j{~8a׏Gz~KTK vS`=/z5̘4sVd~'˫/pHNR9_yp׉񭃰'9F)nQv&6T_k]4 @kҼM_mli n~F\x'J5Ia3+!VwwÃ< (>AaEs?Ed~ R|eZ8IK'/d!^+"ĹKpa3)B[=Լ"!Z$ad ƦfAbJ'¾#$\;5dv;eid4FG"K7*w׌D!gA8eIGcj5P1 ֡֎as~a#4ğTD#^K&jB׬#~Wȶ!YvIz%n2/CgPrjDM$Wh,ݔ\$/Uy>*r}B46s㪰nys?w0p QZ|%\d|>t=pI_˄OaW+:l҂w: [:,bҏڞԻ%$/!.)=<ޣ DLJ8Dfw:WsR*1nZQQem~T%k!a/UjlD.eWnRњQ#5=pPXɅ 2T*曭Ey1$9'|UvYXѱ5wBtJB%$k>g)'IZTbF9R5_sϭ蛋V=Qgˌ%KAO@qq,B"]?ns%\ ɡޯRBCZf\h*3ZldA1KK.upm,4koQPvTN@P.'M+kv؆?Qt(yor?TO)>gX+ʟًОQ=0f"} p\ jmA Զ"npO .fQHWս)ɗ|̎:c;mG)4@֋Jdi M;PbHDzu'GNֱ1cN˼wp |ŇMS`MqQJ` 'zA7>*]_zE% &HϦug7TgQjV]5/.auYpBuQ!ͺʎ{jYk'mq†,tK`ﶸUqtD :gaU,Go;}+rq=v'JdRss. cд߾`bˇ ;;Q`Qwv`dAUMO5Fy臏^W$oxj&䯮#ݏ`9ؙQӗO(@/S{J9)xĵ OT w^{j"⮠=dIuzj['[N-ۍ4ER*5:דZf ?lYjʡ5]%w'>L6eNpL0lw;ܒ˭?B5nֺvĽ|В"ˬf@SGSXl{f?׶F͆ṐjqqP봩ϕxtJ'Fx*p1J^ȘhE-[}6Ѷ c$%Ǐ^Xuqyo$~;]FaQ#L"^Oͱ7"f룓<hۓz3is`ɨ1a0%  丹 +:VA43\q1{a^]CC=AV J`uRcAsmnm:3.R}߷\AK):>P+8d.,7 [mj^YݴKֹ9wA=h?^/+n4Jy^ҳ@~ gvDY eӲah*A56..kJuuG%6iq.(j֘e7@q=O+Rag:) ,fi1w{@fefɦ)fQPkJbSnu}㴖[ "Bp:PC9B t 1zV^/~|ڱhwsEBǏTPK nc/@6; tcl-f4af0965449025714b1cb4d66f771290f1ce9efa/doc/fblocked.nUTN?eTmo0_qc uʧQZ@TR:6^&@IyK `tΈfւH+"3Ҷ!QYCGnPА"Ce1rhJۀB%wB+_eW9̅uF,*,邰 `P8&a/!f6Nd2K#M&lFsQ&i%H'κHqTFT-0#Oa)+P$Nx)UO0鯕2:YڳyJN2UFt'.vl`r;B?[-]2?5?GduB= &Ï 4"'8Qڕ):p̖@Qq:M~|$~r5 ]pEhh hu-neE]oV!{ 1hb+|1?j =[&{;*qC5S4SOZA8!O\p჆i$} t[~,f(02,|Kz 8ǺX% |ᮭqsx;]lz"ZoB1br]@ 8W4yBAAx<)m p ё>P}F䎴Hq?U`0Y0>2GXjU O{Zṕyh=mT LNɹ )1!2ebkb#I?zӍAdx(i8ÈjK o]gB(B8GX 3{}=11AAaP>04,EN='ix۔qYrΥnߐHYE;G6"2!TAށ/h;<ϦA2#ޘ@ZX &ozB}Z3DZGJ m F8XGT7YKUʎo"Oف%"qn߰A!+N : L ޱ$ʌHQDDCab%R퇴hh0CpC`@y_FYtZ*)A? +T́%v\C=u}S8샙hUP yB0BJLRnd'|CrxZjdh.EKck#k v "т3Wɱ δ#W|18,y,o)0xX .qEq=:m8ě˿@u >7"~*!/Φlxg#fiSb%d6Gz;4';<@a!_m TS"  3 (cHhc\Gf䴣RWDFiE4s)j/=46$4Ԫ$7*[6< |1O>7 1"!98!D"./|(q~պf :ڂTN4iϺ9iGE`l?F$/Z`j)G)3ъ= o)-!;bఈx2H'fRs'$,ӟ>n52vfl_4SQMuH񡥃n(kc je(1*9  nO[[q_oP68;ST$r&23 od `ÖPgymYṛśyđڎhi+jnҌBG{>T;EP3n#KΘ̸SbtCw!d ElM lXXeek6ѾX\[Ew7jO<8;xe>ۑ9slUVŖde1%r=>&Xu:; p>%Z<9쁔PȫS)N.W\Yy*ܣ QAnܜiќ|2{a65 (Qc1'!MV Y&ԣL:rMYDl-nBKl(x&lmAr*& V1"^D)5"j~ڃrXDd3NEoB׾i#0֦Q'~2' XSUQ—%Y)]hs@4Jv،v =##; gb^jE6;<p{l8^">ObƣA {'J0]8;ߐv i"e#j8GS~zc% jmR&QX$|u5>|p6kX8tί6vb5wZz `*-1Sk2'E)i-C{d9nR% e1 j@щ!Fo뒼t䡡Lv4%eeZ`1݉LI[îge7L)\d#:8Tǫ~?lcxivA#gcʄ)E}@}hH" :/£Dŋ:HA6xRm"ϬM!ICX&I',5YZ1OIk|.~byE1xIIi3ndtdpLn BCD0z߿f nDvJ9ߝ^]^wWWG?Zdb$_ur:Gw'v[ܠ]~hi yw.ҤᕻZ;YRߞk#4Ӧ,578YÑ_I=K G# X[S[+BՂ!QxPD>투A/pЗHP745'}@,`r#Axg} /˟>^^E˝tvA'95 8|f 4ɯ')'yLRt;2pV&/