From 54a9333747364b42d51703029051a878a9035d86 Mon Sep 17 00:00:00 2001 From: cuu Date: Fri, 7 Oct 2022 19:40:58 +0800 Subject: [PATCH] add devterm_keyboard_mini init code --- Code/devterm_keyboard_mini/README.md | 13 + .../DevTerm_keyboard_firmware_v0.1_utils.sh | 1042 +++++++++ .../DevTerm_keyboard_firmware_v0.21_utils.sh | 1093 +++++++++ .../DevTerm_keyboard_firmware_v0.2_utils.sh | 1055 +++++++++ .../DevTerm_keyboard_firmware_v0.2a_utils.sh | 1081 +++++++++ .../DevTerm_keyboard_firmware_v0.3_utils.sh | 1055 +++++++++ Code/devterm_keyboard_mini/debouncer.h | 53 + Code/devterm_keyboard_mini/debouncer.ino | 23 + Code/devterm_keyboard_mini/devterm.h | 42 + .../devterm_keyboard_mini.ino | 71 + Code/devterm_keyboard_mini/glider.h | 29 + Code/devterm_keyboard_mini/glider.ino | 60 + Code/devterm_keyboard_mini/helper.h | 19 + Code/devterm_keyboard_mini/helper.ino | 10 + .../hex/devterm.kbd.0.21_48mhz.bin | Bin 0 -> 65536 bytes .../hex/devterm.kbd.0.21_48mhz.hex | 2050 +++++++++++++++++ .../hex/devterm.kbd.0.2_48mhz.bin | Bin 0 -> 65536 bytes .../hex/devterm.kbd.0.2_48mhz.hex | 2050 +++++++++++++++++ .../hex/devterm.kbd.0.2a_48mhz.bin | Bin 0 -> 65536 bytes .../hex/devterm.kbd.0.2a_48mhz.hex | 2050 +++++++++++++++++ .../hex/devterm.kbd.0.3_48mhz.bin | Bin 0 -> 65536 bytes .../hex/devterm.kbd.0.3_48mhz.hex | 2050 +++++++++++++++++ Code/devterm_keyboard_mini/keyboard.h | 54 + Code/devterm_keyboard_mini/keyboard.ino | 203 ++ Code/devterm_keyboard_mini/keymaps.ino | 443 ++++ Code/devterm_keyboard_mini/keys.h | 27 + Code/devterm_keyboard_mini/keys.ino | 106 + Code/devterm_keyboard_mini/keys_io_map.h | 49 + Code/devterm_keyboard_mini/math.h | 56 + Code/devterm_keyboard_mini/math.ino | 23 + Code/devterm_keyboard_mini/ratemeter.h | 38 + Code/devterm_keyboard_mini/ratemeter.ino | 47 + Code/devterm_keyboard_mini/state.h | 37 + Code/devterm_keyboard_mini/state.ino | 47 + Code/devterm_keyboard_mini/tickwaiter.h | 30 + Code/devterm_keyboard_mini/trackball.h | 25 + Code/devterm_keyboard_mini/trackball.ino | 130 ++ 37 files changed, 15161 insertions(+) create mode 100644 Code/devterm_keyboard_mini/README.md create mode 100755 Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.1_utils.sh create mode 100755 Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.21_utils.sh create mode 100755 Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.2_utils.sh create mode 100755 Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.2a_utils.sh create mode 100755 Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.3_utils.sh create mode 100644 Code/devterm_keyboard_mini/debouncer.h create mode 100644 Code/devterm_keyboard_mini/debouncer.ino create mode 100644 Code/devterm_keyboard_mini/devterm.h create mode 100644 Code/devterm_keyboard_mini/devterm_keyboard_mini.ino create mode 100644 Code/devterm_keyboard_mini/glider.h create mode 100644 Code/devterm_keyboard_mini/glider.ino create mode 100644 Code/devterm_keyboard_mini/helper.h create mode 100644 Code/devterm_keyboard_mini/helper.ino create mode 100644 Code/devterm_keyboard_mini/hex/devterm.kbd.0.21_48mhz.bin create mode 100644 Code/devterm_keyboard_mini/hex/devterm.kbd.0.21_48mhz.hex create mode 100644 Code/devterm_keyboard_mini/hex/devterm.kbd.0.2_48mhz.bin create mode 100644 Code/devterm_keyboard_mini/hex/devterm.kbd.0.2_48mhz.hex create mode 100644 Code/devterm_keyboard_mini/hex/devterm.kbd.0.2a_48mhz.bin create mode 100644 Code/devterm_keyboard_mini/hex/devterm.kbd.0.2a_48mhz.hex create mode 100644 Code/devterm_keyboard_mini/hex/devterm.kbd.0.3_48mhz.bin create mode 100644 Code/devterm_keyboard_mini/hex/devterm.kbd.0.3_48mhz.hex create mode 100644 Code/devterm_keyboard_mini/keyboard.h create mode 100644 Code/devterm_keyboard_mini/keyboard.ino create mode 100644 Code/devterm_keyboard_mini/keymaps.ino create mode 100644 Code/devterm_keyboard_mini/keys.h create mode 100644 Code/devterm_keyboard_mini/keys.ino create mode 100644 Code/devterm_keyboard_mini/keys_io_map.h create mode 100644 Code/devterm_keyboard_mini/math.h create mode 100644 Code/devterm_keyboard_mini/math.ino create mode 100644 Code/devterm_keyboard_mini/ratemeter.h create mode 100644 Code/devterm_keyboard_mini/ratemeter.ino create mode 100644 Code/devterm_keyboard_mini/state.h create mode 100644 Code/devterm_keyboard_mini/state.ino create mode 100644 Code/devterm_keyboard_mini/tickwaiter.h create mode 100644 Code/devterm_keyboard_mini/trackball.h create mode 100644 Code/devterm_keyboard_mini/trackball.ino diff --git a/Code/devterm_keyboard_mini/README.md b/Code/devterm_keyboard_mini/README.md new file mode 100644 index 0000000..4b896fa --- /dev/null +++ b/Code/devterm_keyboard_mini/README.md @@ -0,0 +1,13 @@ +Arduino 1.8.13 + +http://dan.drown.org/stm32duino/package_STM32duino_index.json + +STM32F1xx/GD32F1xx boards +by stm32duino version 2021.2.22 + + GENERIC STM32F103R series + + gd32f1_generic_boot20_pc13.bin + generic_boot20_pc13.bin + + \ No newline at end of file diff --git a/Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.1_utils.sh b/Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.1_utils.sh new file mode 100755 index 0000000..10a8bb5 --- /dev/null +++ b/Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.1_utils.sh @@ -0,0 +1,1042 @@ +#!/bin/sh +# This script was generated using Makeself 2.4.3 +# The license covering this archive and its contents, if any, is wholly independent of the Makeself license (GPL) + +ORIG_UMASK=`umask` +if test "n" = n; then + umask 077 +fi + +CRCsum="1711078027" +MD5="a8e693b02e07b55609d244f703d0b97d" +SHA="0000000000000000000000000000000000000000000000000000000000000000" +TMPROOT=${TMPDIR:=/tmp} +USER_PWD="$PWD" +export USER_PWD +ARCHIVE_DIR=`dirname "$0"` +export ARCHIVE_DIR + +label="keyboard_firmware" +script="./flash.sh" +scriptargs="" +cleanup_script="" +licensetxt="" +helpheader='' +targetdir="DevTerm_keyboard_firmware_v0.1_utils" +filesizes="98895" +totalsize="98895" +keep="n" +nooverwrite="n" +quiet="n" +accept="n" +nodiskspace="n" +export_conf="n" +decrypt_cmd="" +skip="678" + +print_cmd_arg="" +if type printf > /dev/null; then + print_cmd="printf" +elif test -x /usr/ucb/echo; then + print_cmd="/usr/ucb/echo" +else + print_cmd="echo" +fi + +if test -d /usr/xpg4/bin; then + PATH=/usr/xpg4/bin:$PATH + export PATH +fi + +if test -d /usr/sfw/bin; then + PATH=$PATH:/usr/sfw/bin + export PATH +fi + +unset CDPATH + +MS_Printf() +{ + $print_cmd $print_cmd_arg "$1" +} + +MS_PrintLicense() +{ + if test x"$licensetxt" != x; then + if test x"$accept" = xy; then + echo "$licensetxt" + else + echo "$licensetxt" | more + fi + if test x"$accept" != xy; then + while true + do + MS_Printf "Please type y to accept, n otherwise: " + read yn + if test x"$yn" = xn; then + keep=n + eval $finish; exit 1 + break; + elif test x"$yn" = xy; then + break; + fi + done + fi + fi +} + +MS_diskspace() +{ + ( + df -kP "$1" | tail -1 | awk '{ if ($4 ~ /%/) {print $3} else {print $4} }' + ) +} + +MS_dd() +{ + blocks=`expr $3 / 1024` + bytes=`expr $3 % 1024` + # Test for ibs, obs and conv feature + if dd if=/dev/zero of=/dev/null count=1 ibs=512 obs=512 conv=sync 2> /dev/null; then + dd if="$1" ibs=$2 skip=1 obs=1024 conv=sync 2> /dev/null | \ + { test $blocks -gt 0 && dd ibs=1024 obs=1024 count=$blocks ; \ + test $bytes -gt 0 && dd ibs=1 obs=1024 count=$bytes ; } 2> /dev/null + else + dd if="$1" bs=$2 skip=1 2> /dev/null + fi +} + +MS_dd_Progress() +{ + if test x"$noprogress" = xy; then + MS_dd "$@" + return $? + fi + file="$1" + offset=$2 + length=$3 + pos=0 + bsize=4194304 + while test $bsize -gt $length; do + bsize=`expr $bsize / 4` + done + blocks=`expr $length / $bsize` + bytes=`expr $length % $bsize` + ( + dd ibs=$offset skip=1 count=0 2>/dev/null + pos=`expr $pos \+ $bsize` + MS_Printf " 0%% " 1>&2 + if test $blocks -gt 0; then + while test $pos -le $length; do + dd bs=$bsize count=1 2>/dev/null + pcent=`expr $length / 100` + pcent=`expr $pos / $pcent` + if test $pcent -lt 100; then + MS_Printf "\b\b\b\b\b\b\b" 1>&2 + if test $pcent -lt 10; then + MS_Printf " $pcent%% " 1>&2 + else + MS_Printf " $pcent%% " 1>&2 + fi + fi + pos=`expr $pos \+ $bsize` + done + fi + if test $bytes -gt 0; then + dd bs=$bytes count=1 2>/dev/null + fi + MS_Printf "\b\b\b\b\b\b\b" 1>&2 + MS_Printf " 100%% " 1>&2 + ) < "$file" +} + +MS_Help() +{ + cat << EOH >&2 +${helpheader}Makeself version 2.4.3 + 1) Getting help or info about $0 : + $0 --help Print this message + $0 --info Print embedded info : title, default target directory, embedded script ... + $0 --lsm Print embedded lsm entry (or no LSM) + $0 --list Print the list of files in the archive + $0 --check Checks integrity of the archive + + 2) Running $0 : + $0 [options] [--] [additional arguments to embedded script] + with following options (in that order) + --confirm Ask before running embedded script + --quiet Do not print anything except error messages + --accept Accept the license + --noexec Do not run embedded script (implies --noexec-cleanup) + --noexec-cleanup Do not run embedded cleanup script + --keep Do not erase target directory after running + the embedded script + --noprogress Do not show the progress during the decompression + --nox11 Do not spawn an xterm + --nochown Do not give the target folder to the current user + --chown Give the target folder to the current user recursively + --nodiskspace Do not check for available disk space + --target dir Extract directly to a target directory (absolute or relative) + This directory may undergo recursive chown (see --nochown). + --tar arg1 [arg2 ...] Access the contents of the archive through the tar command + --ssl-pass-src src Use the given src as the source of password to decrypt the data + using OpenSSL. See "PASS PHRASE ARGUMENTS" in man openssl. + Default is to prompt the user to enter decryption password + on the current terminal. + --cleanup-args args Arguments to the cleanup script. Wrap in quotes to provide + multiple arguments. + -- Following arguments will be passed to the embedded script +EOH +} + +MS_Check() +{ + OLD_PATH="$PATH" + PATH=${GUESS_MD5_PATH:-"$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"} + MD5_ARG="" + MD5_PATH=`exec <&- 2>&-; which md5sum || command -v md5sum || type md5sum` + test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which md5 || command -v md5 || type md5` + test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which digest || command -v digest || type digest` + PATH="$OLD_PATH" + + SHA_PATH=`exec <&- 2>&-; which shasum || command -v shasum || type shasum` + test -x "$SHA_PATH" || SHA_PATH=`exec <&- 2>&-; which sha256sum || command -v sha256sum || type sha256sum` + + if test x"$quiet" = xn; then + MS_Printf "Verifying archive integrity..." + fi + offset=`head -n "$skip" "$1" | wc -c | tr -d " "` + fsize=`cat "$1" | wc -c | tr -d " "` + if test $totalsize -ne `expr $fsize - $offset`; then + echo " Unexpected archive size." >&2 + exit 2 + fi + verb=$2 + i=1 + for s in $filesizes + do + crc=`echo $CRCsum | cut -d" " -f$i` + if test -x "$SHA_PATH"; then + if test x"`basename $SHA_PATH`" = xshasum; then + SHA_ARG="-a 256" + fi + sha=`echo $SHA | cut -d" " -f$i` + if test x"$sha" = x0000000000000000000000000000000000000000000000000000000000000000; then + test x"$verb" = xy && echo " $1 does not contain an embedded SHA256 checksum." >&2 + else + shasum=`MS_dd_Progress "$1" $offset $s | eval "$SHA_PATH $SHA_ARG" | cut -b-64`; + if test x"$shasum" != x"$sha"; then + echo "Error in SHA256 checksums: $shasum is different from $sha" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " SHA256 checksums are OK." >&2 + fi + crc="0000000000"; + fi + fi + if test -x "$MD5_PATH"; then + if test x"`basename $MD5_PATH`" = xdigest; then + MD5_ARG="-a md5" + fi + md5=`echo $MD5 | cut -d" " -f$i` + if test x"$md5" = x00000000000000000000000000000000; then + test x"$verb" = xy && echo " $1 does not contain an embedded MD5 checksum." >&2 + else + md5sum=`MS_dd_Progress "$1" $offset $s | eval "$MD5_PATH $MD5_ARG" | cut -b-32`; + if test x"$md5sum" != x"$md5"; then + echo "Error in MD5 checksums: $md5sum is different from $md5" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " MD5 checksums are OK." >&2 + fi + crc="0000000000"; verb=n + fi + fi + if test x"$crc" = x0000000000; then + test x"$verb" = xy && echo " $1 does not contain a CRC checksum." >&2 + else + sum1=`MS_dd_Progress "$1" $offset $s | CMD_ENV=xpg4 cksum | awk '{print $1}'` + if test x"$sum1" != x"$crc"; then + echo "Error in checksums: $sum1 is different from $crc" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " CRC checksums are OK." >&2 + fi + fi + i=`expr $i + 1` + offset=`expr $offset + $s` + done + if test x"$quiet" = xn; then + echo " All good." + fi +} + +MS_Decompress() +{ + if test x"$decrypt_cmd" != x""; then + { eval "$decrypt_cmd" || echo " ... Decryption failed." >&2; } | eval "gzip -cd" + else + eval "gzip -cd" + fi + + if test $? -ne 0; then + echo " ... Decompression failed." >&2 + fi +} + +UnTAR() +{ + if test x"$quiet" = xn; then + tar $1vf - 2>&1 || { echo " ... Extraction failed." > /dev/tty; kill -15 $$; } + else + tar $1f - 2>&1 || { echo Extraction failed. > /dev/tty; kill -15 $$; } + fi +} + +MS_exec_cleanup() { + if test x"$cleanup" = xy && test x"$cleanup_script" != x""; then + cleanup=n + cd "$tmpdir" + eval "\"$cleanup_script\" $scriptargs $cleanupargs" + fi +} + +MS_cleanup() +{ + echo 'Signal caught, cleaning up' >&2 + MS_exec_cleanup + cd "$TMPROOT" + rm -rf "$tmpdir" + eval $finish; exit 15 +} + +finish=true +xterm_loop= +noprogress=n +nox11=n +copy=none +ownership=n +verbose=n +cleanup=y +cleanupargs= + +initargs="$@" + +while true +do + case "$1" in + -h | --help) + MS_Help + exit 0 + ;; + -q | --quiet) + quiet=y + noprogress=y + shift + ;; + --accept) + accept=y + shift + ;; + --info) + echo Identification: "$label" + echo Target directory: "$targetdir" + echo Uncompressed size: 300 KB + echo Compression: gzip + if test x"n" != x""; then + echo Encryption: n + fi + echo Date of packaging: Fri Dec 17 12:53:50 CST 2021 + echo Built with Makeself version 2.4.3 + echo Build command was: "/usr/local/bin/makeself.sh \\ + \"DevTerm_keyboard_firmware_v0.1_utils\" \\ + \"DevTerm_keyboard_firmware_v0.1_utils.sh\" \\ + \"keyboard_firmware\" \\ + \"./flash.sh\"" + if test x"$script" != x; then + echo Script run after extraction: + echo " " $script $scriptargs + fi + if test x"" = xcopy; then + echo "Archive will copy itself to a temporary location" + fi + if test x"n" = xy; then + echo "Root permissions required for extraction" + fi + if test x"n" = xy; then + echo "directory $targetdir is permanent" + else + echo "$targetdir will be removed after extraction" + fi + exit 0 + ;; + --dumpconf) + echo LABEL=\"$label\" + echo SCRIPT=\"$script\" + echo SCRIPTARGS=\"$scriptargs\" + echo CLEANUPSCRIPT=\"$cleanup_script\" + echo archdirname=\"DevTerm_keyboard_firmware_v0.1_utils\" + echo KEEP=n + echo NOOVERWRITE=n + echo COMPRESS=gzip + echo filesizes=\"$filesizes\" + echo totalsize=\"$totalsize\" + echo CRCsum=\"$CRCsum\" + echo MD5sum=\"$MD5sum\" + echo SHAsum=\"$SHAsum\" + echo SKIP=\"$skip\" + exit 0 + ;; + --lsm) +cat << EOLSM +No LSM. +EOLSM + exit 0 + ;; + --list) + echo Target directory: $targetdir + offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + for s in $filesizes + do + MS_dd "$0" $offset $s | MS_Decompress | UnTAR t + offset=`expr $offset + $s` + done + exit 0 + ;; + --tar) + offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + arg1="$2" + if ! shift 2; then MS_Help; exit 1; fi + for s in $filesizes + do + MS_dd "$0" $offset $s | MS_Decompress | tar "$arg1" - "$@" + offset=`expr $offset + $s` + done + exit 0 + ;; + --check) + MS_Check "$0" y + exit 0 + ;; + --confirm) + verbose=y + shift + ;; + --noexec) + script="" + cleanup_script="" + shift + ;; + --noexec-cleanup) + cleanup_script="" + shift + ;; + --keep) + keep=y + shift + ;; + --target) + keep=y + targetdir="${2:-.}" + if ! shift 2; then MS_Help; exit 1; fi + ;; + --noprogress) + noprogress=y + shift + ;; + --nox11) + nox11=y + shift + ;; + --nochown) + ownership=n + shift + ;; + --chown) + ownership=y + shift + ;; + --nodiskspace) + nodiskspace=y + shift + ;; + --xwin) + if test "n" = n; then + finish="echo Press Return to close this window...; read junk" + fi + xterm_loop=1 + shift + ;; + --phase2) + copy=phase2 + shift + ;; + --ssl-pass-src) + if test x"n" != x"openssl"; then + echo "Invalid option --ssl-pass-src: $0 was not encrypted with OpenSSL!" >&2 + exit 1 + fi + decrypt_cmd="$decrypt_cmd -pass $2" + if ! shift 2; then MS_Help; exit 1; fi + ;; + --cleanup-args) + cleanupargs="$2" + if ! shift 2; then MS_help; exit 1; fi + ;; + --) + shift + break ;; + -*) + echo Unrecognized flag : "$1" >&2 + MS_Help + exit 1 + ;; + *) + break ;; + esac +done + +if test x"$quiet" = xy -a x"$verbose" = xy; then + echo Cannot be verbose and quiet at the same time. >&2 + exit 1 +fi + +if test x"n" = xy -a `id -u` -ne 0; then + echo "Administrative privileges required for this archive (use su or sudo)" >&2 + exit 1 +fi + +if test x"$copy" \!= xphase2; then + MS_PrintLicense +fi + +case "$copy" in +copy) + tmpdir="$TMPROOT"/makeself.$RANDOM.`date +"%y%m%d%H%M%S"`.$$ + mkdir "$tmpdir" || { + echo "Could not create temporary directory $tmpdir" >&2 + exit 1 + } + SCRIPT_COPY="$tmpdir/makeself" + echo "Copying to a temporary location..." >&2 + cp "$0" "$SCRIPT_COPY" + chmod +x "$SCRIPT_COPY" + cd "$TMPROOT" + exec "$SCRIPT_COPY" --phase2 -- $initargs + ;; +phase2) + finish="$finish ; rm -rf `dirname $0`" + ;; +esac + +if test x"$nox11" = xn; then + if tty -s; then # Do we have a terminal? + : + else + if test x"$DISPLAY" != x -a x"$xterm_loop" = x; then # No, but do we have X? + if xset q > /dev/null 2>&1; then # Check for valid DISPLAY variable + GUESS_XTERMS="xterm gnome-terminal rxvt dtterm eterm Eterm xfce4-terminal lxterminal kvt konsole aterm terminology" + for a in $GUESS_XTERMS; do + if type $a >/dev/null 2>&1; then + XTERM=$a + break + fi + done + chmod a+x $0 || echo Please add execution rights on $0 + if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal! + exec $XTERM -e "$0 --xwin $initargs" + else + exec $XTERM -e "./$0 --xwin $initargs" + fi + fi + fi + fi +fi + +if test x"$targetdir" = x.; then + tmpdir="." +else + if test x"$keep" = xy; then + if test x"$nooverwrite" = xy && test -d "$targetdir"; then + echo "Target directory $targetdir already exists, aborting." >&2 + exit 1 + fi + if test x"$quiet" = xn; then + echo "Creating directory $targetdir" >&2 + fi + tmpdir="$targetdir" + dashp="-p" + else + tmpdir="$TMPROOT/selfgz$$$RANDOM" + dashp="" + fi + mkdir $dashp "$tmpdir" || { + echo 'Cannot create target directory' $tmpdir >&2 + echo 'You should try option --target dir' >&2 + eval $finish + exit 1 + } +fi + +location="`pwd`" +if test x"$SETUP_NOCHECK" != x1; then + MS_Check "$0" +fi +offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + +if test x"$verbose" = xy; then + MS_Printf "About to extract 300 KB in $tmpdir ... Proceed ? [Y/n] " + read yn + if test x"$yn" = xn; then + eval $finish; exit 1 + fi +fi + +if test x"$quiet" = xn; then + # Decrypting with openssl will ask for password, + # the prompt needs to start on new line + if test x"n" = x"openssl"; then + echo "Decrypting and uncompressing $label..." + else + MS_Printf "Uncompressing $label" + fi +fi +res=3 +if test x"$keep" = xn; then + trap MS_cleanup 1 2 3 15 +fi + +if test x"$nodiskspace" = xn; then + leftspace=`MS_diskspace "$tmpdir"` + if test -n "$leftspace"; then + if test "$leftspace" -lt 300; then + echo + echo "Not enough space left in "`dirname $tmpdir`" ($leftspace KB) to decompress $0 (300 KB)" >&2 + echo "Use --nodiskspace option to skip this check and proceed anyway" >&2 + if test x"$keep" = xn; then + echo "Consider setting TMPDIR to a directory with more free space." + fi + eval $finish; exit 1 + fi + fi +fi + +for s in $filesizes +do + if MS_dd_Progress "$0" $offset $s | MS_Decompress | ( cd "$tmpdir"; umask $ORIG_UMASK ; UnTAR xp ) 1>/dev/null; then + if test x"$ownership" = xy; then + (cd "$tmpdir"; chown -R `id -u` .; chgrp -R `id -g` .) + fi + else + echo >&2 + echo "Unable to decompress $0" >&2 + eval $finish; exit 1 + fi + offset=`expr $offset + $s` +done +if test x"$quiet" = xn; then + echo +fi + +cd "$tmpdir" +res=0 +if test x"$script" != x; then + if test x"$export_conf" = x"y"; then + MS_BUNDLE="$0" + MS_LABEL="$label" + MS_SCRIPT="$script" + MS_SCRIPTARGS="$scriptargs" + MS_ARCHDIRNAME="$archdirname" + MS_KEEP="$KEEP" + MS_NOOVERWRITE="$NOOVERWRITE" + MS_COMPRESS="$COMPRESS" + MS_CLEANUP="$cleanup" + export MS_BUNDLE MS_LABEL MS_SCRIPT MS_SCRIPTARGS + export MS_ARCHDIRNAME MS_KEEP MS_NOOVERWRITE MS_COMPRESS + fi + + if test x"$verbose" = x"y"; then + MS_Printf "OK to execute: $script $scriptargs $* ? [Y/n] " + read yn + if test x"$yn" = x -o x"$yn" = xy -o x"$yn" = xY; then + eval "\"$script\" $scriptargs \"\$@\""; res=$?; + fi + else + eval "\"$script\" $scriptargs \"\$@\""; res=$? + fi + if test "$res" -ne 0; then + test x"$verbose" = xy && echo "The program '$script' returned an error code ($res)" >&2 + fi +fi + +MS_exec_cleanup + +if test x"$keep" = xn; then + cd "$TMPROOT" + rm -rf "$tmpdir" +fi +eval $finish; exit $res +a]wƳW +:mɯ!@K{Na-mY2Z)o3+q!hs>fggv>3;굑D,k=>;oO%WNEZ۰ hZ hހv{{ +T&<Rn\ϫ`ğ-4 :Ӳ[ݞO~uFî9^6Z\5n, @kY; ָJG}\;{߽w1ﴚvBw_۽v69_Dm_(mvY9y=wZf30zi ;f +l$SٯA~FuLat8$ЬSP, +?ĵAi:va6fslmW;eۭ_a/Y/h -}\[3nq6 +]m/HCFuM~=wر noi| +y%&pe\Nmjf7v _׿DŽо%?]oQ8G>Z6nX {t6N)ܿk_֒;][WqQ,^XL#'Q<F'G` +(d[a~ &'[( x_<-F<b1LO̊P+̌b&t<1J)"w է//YW}ozĐIC$j*b&"tc|},ῖ.+uKmtyo2 KƾdhYeA8*,րbRPZQZțP5i cR6Z^)~,mv,S}7n[uG>x "d0!6 Т^uQGY( <<1 [yIR01Lpͩ>hȰ&ɕI4]=`h'X"bM, +  +a+}4 `4eV f5eɱ%EN <2k9`LBy+dYyV}P*O RF@Hf,C&d3ᎁU66Bid^: |',$`i- {\";6JLFqHC lDU/Y-׽J|gvtH~mo('Q>9<,i4oz6vߥh_w9ӵ +2& 8q`[ľlc)xߛ4>0 ZZ1@z&qu+Mt<XmB&8\0Pɥ)h9˲Y4 3fW pCL0BD* G!0(Mi=PQ#nGS(Uf#Hk= Tj{ú8@a"5aX"D"dB{<Q~_zqNS ߈x @y F7E) eIC7b?<.a2}ui7;Ol?ctA,*4;Qg(* T˟=3NerM,fr/\-"/?ݶ O假Q.tC@%c=%,y<7m=qT `϶݆Fd N$?y3.Ipi2Mf*'%dގc0D=bVJW)6C6Rbc;ӝ]ڍ<~āzT p\Y pjU'Bm.$E\S{gHJ6 xW &G'T?|<71$uң& +lɇ-ХC +؟6Hg1KrT?bL@዁)&(cE )0$68R(CL35&{PeEugC61=QbM +LhXbI2pL{ÐQ*ݨHg%qu]%zTI1 cƠdAObQOHRB +V3Jit,[qCsq`,̂ me߬ =&۳;w>A[3 +{ώ]fUz֊n>qwB.,AX%N k.hˑ p0âةp=BAq.:3ZϡFȗ lh|{Ҵ7dGn7$ z)]Rw؂-dMA"vU`9KǤ} .@ L_q]~oL)IzՑw㜠<}r&^K|?X+}WT~^6 _rھwڍֲw_GϖL?nu06G9:[xu@ ~2@&A3!T;~œV=Ѯ"y0Uˉ!>U+̲أL80h4]U;vU<ҋB /OU|Opgّ1”#|M5PΊo˃RSB?@1 )_K'W(EÄ# vmA,g96|ф'1NұNAx~N?ƴ3Tڣ95}l5G^ "`I>8ajl5>2 `!;1!M院#5Npq^O&)CQRMX`59;}Fg `Y3u:i8C/*b!n-ﯨn}IRV9 ΉNQIl[ k%<]|; +ϓAG@y<2_e 2ىx)FdzQ|} +E9uzKkI5UhRCck?.8/UmZgvAo'b4Nؚ[e,{' 08͹Ę9PѼ *i5$+"n{f /;jHcF?xiU=Oexn.x?_ҖRAj9RZckiT6PΎ_G$.] rDx3()I%8I@ x]B%SJ. 4 hl4% XC^ l^u53u^&bTGop̅[NMQBh̥y޿׻ y"BmtLN9ўHԖ4e t: z0@;[UiwAxD?@ԎA&̱0w[ >zQyX1GTMœL!;1 ĆesBL(t ua]̅KQy 9,[ʗXNҫ\.橶L-"szU%&<GȬZ>=. ʅX֥Kdcc zCCQNaG٠cbC{99/^fS~UBu9Z@:rӚ z6'Ru\33IvΛlIJr*I=I/]h2OU{d袩;0'ss-:N~ 5$TƋM}"[Y {XE60Q٪ׇY@:5SuM~qk*?Jk`8N~V?<=B'iɥ6ljZ.;4sv^T'tO IV^uhmNtQu0 n>7(JB6qb)mf!|3I2Ϯ7Ro9Ã}O<6AԇsMo"#r=s;3g̜WdT& +S&86(" sB;듻f4` ||@$$'To[y$,=Ϲ6 [fO(#!7 CƉ8 BH+ ϐd!ј b,b ^y$ykH\øm@dچ! XLB 5M5!Aɨ%KC2!g!sY851/n霁XB,*}٘B _ׅ]G]M x͍a0b#HYHT%Bl%>"N`BJH$+ @ [~n #f;G+ݩЩBI6$y fj#f&xD65ƜJY +Q8 - B0O& yȄ"8UE'4P{<v*(T · S]!,@C06 Lj(طYBt <$ӷ] +܄BDu)R]vCQZsM<><ݡPA8C"jʧR{$G)JH-\.=nB5j &&-C)B<# fǤ?"+ +zP $}.)x֫2)I 8<i_ 6fj!EnsKenXm܁h[a)4qYja%d` e#RARe2MF3 ]PEn 1d6 - ~#Ь\;\i ˇ'FF C+J;!>B΢P"|7M_j]s?Z̪s~_2([҇`x;H)\-"4ûb\e&[)"u<<NCZԘn;xT VqDsSZ{5A{l^}o`%uSJ"IڤsH!b/mTУ~% Ox#IUh(rq*WA&u{B +Xh٥ N ҂p7$3lb"P&?z&\)?5;ߵtN &O*WWwS(Q:";±Bx7vz]fqx +!FQ5I@ |w:] Ċpy*v脂lzȭ$RI 2y K +A]2p0F*IR\@WO7 fg!QPy&`wђ( MmbqWШt{i +Dzyv(te"?wPY}r2ű­AyCf*ɠil8Dc`S h+3M$QTNS +Xl\J"xS&Y # +T"Kg9B0D,53`|2G 6 aBNNj_P3h zKJ$_:?\F BDqAIYnsѴ!+ 1ձ_|K]Hfh,Pjrr|>rV_-_- +a?QK?TE+_ S&298!\>BêT +fI(A{0;ݥA0@X"ZǞH /XDiR-4T\-G%ሓ 2hb v^Lk.I #ؕ`çBqOHŕ#A8tjKv<-S: ^]U}S`$JG +'Fi3Jd@GKQ09z9ExO"Gjpg==D5O'eFwaD1Ҟx>ฎ@ϭ`nҐIeK$a`$N/fh3ߘS±o8MƃtO,- )#wu aza[ZA +K@QYTѣ jDI V:QVc m 5=}NFBS-o/ʀ$z^(5TA,iI+OJJbf~v#bD߾$Rw 2\X +\ (l +t3GH$*$`7&jFGV i8 DM~ uq9#(>%pL7&H|2 +V$a{rtwhם._q_h=}\ՙq =p&uq>=٨<3O~kpT Б-t<rW5Ï^{UE7٦9\.s4oĩ&E4&iEpRғ186-A^'?vX8T8yNᩚ7+ +W2*դ^ax۳pm7%˜0ޙlɥ'.3;~]b9bxV o ?fٛ07|h S=?cN3zf* +,<ڪS( qLϏg/w;ň4\>RaaG]MʕeU6lQIrNJe]LϸV?yQ[N5Mi%M/]v:'ju>c_[V&/ɫپjŲes^2T?#ʚqRʖ6{\kNQZ}(G|W9=^1NQtmkK?uȓ8ϓ~QuxofC}ͼZ#NၗJ?+7H7qwͶn:vwp#I׎X>Ϗho{/~zMiyM?t)kxq#z'&o,e ؾ}6*' ?tĠ#7DVŖ^xkUmWYo_)%m~0umw8]f.r-ٻaZGW-ޜ4XkԖ(ŵExܝmhQV3}cJ>[w۔{۔ <3J^i2o}~MN uGz4 af+޴ҟ]f\2m;$uf31ёez4^閼v0fe:tHf&ݻ偳?mij~ހ[ώuV%RJ;W'߮V,~7_Z IhV;Zv}_VЏ?%#clI;>}gk֢o:3gֱvCGakrMY.unIr`o/{gOeREʖs>H.Be"E֔PH"dIRIB5%i/I3gOLcF߫۟}_{}tܼ'{wN|[dd҄wx))Nߔ/el$vv^Oᐸ( N3<lxCs`0FE2l*bw^_pB;13(I3VL=\ 6rN8 4WyPQzivdG70Je]fZ!9IEY:a+ng7k[^*`Oown远}hd/]3$БxvO"/^ƺCیoȭ{9@_|`ܿboNώ^#SFkow?7hh9XS[ssڑ=F8mtUtf׶-)ϲ9N6m;{MtRAY⦪3oA)//'>T5L1 nQ"|ms#D.9z{Q|tɼukD#-Si .-hպ`}ɓnAE_?4Ex ?"+oYb_%Ҳ*A!#jNY$2Qմ")HwwI4h)l!U>I N3`U95W)6KH+:wb"E `mslOp!N +J efm׽5n~ϑ0yDϳe0]:h;a^c9v:$M3_٬?e @CRڿ\?kZ"X:Xm#Y"b+v#FuH¾JvHcz +7$K.`C5pmu92C|+b(_#~Df?kJRHH@!!BQ Ɠ$/ (x;Rڿ" xw/!eqſ + ֨,׬V蘸/l + MOL?MI2)4wκq^< iΎ:4Tjs% kռHZ$m}+"%J|pc;scΏ_(Zm'1Sx̄ނ>W1BȽ- 3'~yX|uxZyM6x",=4_'YTy9IR #@d4qiǯ_vu9D! <HWJ0p_%\b-F!莱$.qXeH)+[!~ZHuG77a٦[QzcO\6uӲsS]Y;Ou(1Uơ?*'/fmRa|jI?G;q{O/4=#3ecҴ#n|zҌ CiE%US`!'cp " ,DQ(*@2 +`4(_Q  ? +1ǠajǢ)BG#w! :i>ikbw)ݺ{hRfjɜ[ɝd;%Gb2@q,1ei8:ێ4hʼn;d!E:F$;3;AɁ7F8}{!ϾDF¬8{Uh+RrBw}=ѐs.W#QG?$.D_4j+p2 Y|kj}DQh(2%.8L0RT*?V <04/Rڿ(_\GE|][9fmRA `PXD&*HMIuTմU5_ikHњJ'1bbNx7_ó #~/i%hX*Q$@c4D`qL#CpGeWaAp9(DO;>w;aގ0ӠkoSN-M{GwC" nt +#GR aaNalwcafZ I%XʫI d^䆜<~/o~;17 +Rcs?و!#vVs31'8.ݬm'âo HFhFMFEԨ(Ό Mlu<ڑ.tB93A ­Oʒ{sBS+{|bNxj"꼫.'غ',ODH2&E܁Il +w<&lrm˼0Mna~cK2?ŅkǼ#q#o$Ir,< .ᩮ7=yDX#XőٔLALOO])^/+QhBm22 z/oaB9fmx +~m D +!xGXb S^ǐCG)ڇvBEHtt=OKS;k:#w 3k$C/12% $8¯԰QNv$̎7grlɄ+ȮF,np|7=h(Ygo\:OphFaS#ogD"]DaHx4E hA"ZǟBh?^?[cCmT٬sdЛ:t<,ޛp;uyoB[!<*{~imBYԁ)Vq2?&(|tlC$i{˨}'ߠ0-滮ri5r*rr3^$qU߭dS `yi[7%r;# LM?Yp2Gp^!j=恃]I)MI.ttû<ۤ +bw2k,bjx@s M`yVTOc9{, 96W˴8fQh 4lNQ`8k7GS+;*m{ I^~g%WP~tڏ$j + [a.lRB#Yq~r:Jv#U'B]PbN}ᓱczqUe}N}B"6T$)sV, ܵ^s{$j_S:}TI͗!ј'"[.2,I2R)|A*'i.l-dj',_׹X&;efG.Gߛ!E#q!qh4 ApPłQ@__p3?O|" ?K!k<9WbbQ;O.S'yLYX71C9R1kOZ&}oMXsp33D³  SǑkHIkֽ߲% 3nz/?}tУh8&+vߛ @8Ab0 E"`4bh;100Y\3P.Jlm{R^h)Unio /maR>t&>GCۖE!8;y TDmAi_q?3?K??_`8WV=;h+ɤK/|< y)߈dX"55[ hy4lcRl}J[Ʋno~c! ah("0H۾1.!L<?K?ggR @Xss74?}`@FC(ɡ)-ع4Uk~’'Tߝ{ p@Q08`,c)'3?Sgiqc?1/;տ; eJ{`2ʟ#O; Q Q΁g!̐G<L a -qq25c<QPVx NθOkjYQ!u'`0 qL]ACC?Ip/GKh%;gزϰ""/J:rxxK4Y|"#(-s +!|LEX"|y0㗕e6gq,CduѐI7kzWьWz"*:dXmw݊*1BӞe׹8!z?Gp;Em{6Zl/Oڑ]&Uxi{fwhoMiKfzTeCՊV3VIIQu,B{)$тǷ?ٚ7.4'S,uV,u|L?vLXr ^åw0DXss5j-OD>v1Sj*D#Z{ WuVʛ՜cO/ʋ?c䢋Ti:ݡ⁷nVƒȞ׷L(7R`qT#h owO?۹SP$hV-j~3QJ.6ιG\WNd.V5-ʧѬT Yr6dR^%i~1IAiˠrиh9O⤌oIW}| N%#F{4r\lQ`q{A #W%/,Qk[v tBmnwbŬ8)YT/G=P;DX,[:f[ +jf)؆Zq*+#+n}CUT֣.Rl@eh&C="kzυ.-\Hz+*h `SsVWBoB&Bseme0-zp5لIʊnw|^}B,]&ԥ,/ +<Wʦ)m 6.E x,[Ri|ҍ[ ]A).Q7|T͈SafeɕO}ff޳( +4q%/6 JǑ0ѺS=z$ZFI>熠cڧ` f ʢ׎\n7uJV[45|%ct>v[qj̞>ޘKy2j4H^2.HM5c]9L Ak)4t}WW|=\FsCf,әW{vfT*\Ϯ +t .eT5[>^R&Lr4ZŁ]nj 09 't!Z:Jy+Ӹ%el@ټDccs5S*XiK5JY?e\ꨉIKt@SX;C0vxeޘaS +‡uxa*"1TLIKmQdT\&}ײ|p5Ļ:XQ-ku4N<2q%FkKuI&n'DQcu%oEpU>a>ުNj-O@I +Vr ==yR$iGqhGV?eU!O|ݭB*f봤%86ޒaՇFQ1>)QBo֘Bh^CPfEn/w@kӞYAZ5#mE @j¼ew1,-mQHI 1F񊴊 mEHu'r~۷eoi7\gzajmوj^:ZީlƋzj:DJ↤ (AWδ^h[b⩅дN>)tXT2nWMEmEg|ڼ(# F7PEm96KRf,Rb7O {wj͏/֬o곁H/Lw +27\O6fuIl=l]dƙJV⤿҆ X['-#zs͟WM }58jAnxviX9&suMn`Kʺ'9*l6ln,8N.=jf!8r^qBgIetۉd@ +_{H|֓vӰZU(Jل9K'0vyPOof8i+u# C"#]<}3eh+24:Zw+ȿ*Z2ϲyZ›&-\3yFSbMnz j웃/4Ǽ]jXVA_ VMLƧZ\QPs_P]Zͪh]10RIg(S,1R9t9N"O5c[iNo`x?zP_9[Cv~~0ɓu]ݭf+绗nWB5s֫.޽Et7M)~p"2SYP_ څn?hJ1]d'՝Q1Fa +G<_ժk#irV/SLS9Mlizs2ji-jC{b!{uzje5g%D뽖*C2#0jY~+^zߴfך+sԩmw7Z+=}^Xji mYE@y&..i"(j$:Q&Ng* +S7DO IIXk4=Tf ż| >' +%%CEeH"m-`'D H4E ev i(x'(^^['a9{L}F@ 2c7?/~QUÑngUruĺe3ѩS$۶\'8/ 0E؁66 i'%m H4j? 9UBc [M12o˿uu$|eK:gKe%b 5szk~zd%=AmPǟz=NvdK_P? Ҳl`;[)K}ga.pxQ??/ :/svxՂ<2oL{0$:n)*GFzZ_~YyrP5Qݟ`Xe`Vcjcr#w+9JD7"nH{!ml]P#vu{ }Aj6ZȻ&Ufj >*^)n]5)$;[I}v;m3LbfӮPJ\Ј"_dW +:rcy*5juaS̆w߻ĉl(ҋ>ݙtߠ/~>'[6YH4&DR-,IH@mp:EDYP\dE O]I[U5cfk }s0f5Z:PNٍ"ڭ + nQ`6CV,Q~E~?8.uĞTވ9m"vA46Ȥ-,uMzӘD<͎Ĺ_Ga!Mb]bS-fּumzWa]٦˽&ݯ&)+0G e)fD3Y:E1đhڀs1#N +)؈3k +4 +"o5%r;j>UzfddQxXM춪(bໃ Q,^-5'/]/=_eI8z|遼/#@x2Go=P0V|vAFD h՝0Z6ܨ^;n/ٯR[ LܧK65JAݚS={ΰep +KP^ֻ垡 h^E1tbf{ntEt~@s^.lO +lFr|9Z_;M +jz<7/l5XZ+:<ў+fBDJ|Л״<$7 3A;rS[QbƾL41]ZK + mo&,MshQz4]|:'{W) e˭WQ:h˦]3ڒGwgj<HGJe\4 +0|/'.Bx+{){‹Z>Ƴ{,(%=K3>^uք3uCDMEYs[w0RW/HU:$W7m,|^}~'ΞPm;RS;:6NuvNew"fᅈۥ 񈤺P6'cD,Ih Li|>$$#ӁOIx5݂,zn= 9JW%ܟy OcSV߀}ݬ$8H %$+|()__ T N\qVqm i`q+źtLr#snYLZH^ DZxobnsE.CA,MSs8NhFK!dG0׮!EiO<'1)Lo8ZPL/T]Uy}őB*8b% ]ӘU.z ~<||\ tjrO~<0fEHi(h2F/|^ ,Ŕ^N&JIgjJ̳㜉y_;yZ# UibSO_3QHG`mM/s%Ycuj- իה)Z}z6j@%kzerHE?&82gs&6kpX%͏oAϠ,D=$TW 5 +P *brJQEa*d$d{驔! ŷ?s,-T ozp 5|',qbgP9u:78Bv͠@vKF5<%O=ܛNWag*x|Ӫ h +IgjUyU-"+i iё= w_`F-25v0'BS_g27^z 4+A-cgD\+~-*;DklR$pkMNm: 5Dw9 V4hItb4SS116˛xAVk[qe^&e,ˮ,DlNGNGg{]݈+-| /U9-R{ +_t.sTA4vnʆxs˜,7{[sjִ~EcҰO`cH+`y9EN4o-|nmLKҼ_iF]D5aC&/po;o >4ȻUl흓kgtXBJn/SPg?| F5. M<Y[\AO ~˨wneHVREis$6(ݗ̿5!,96y9LbYdSaoV_izU:]agv-;T &uwveCzW ީ8^$8-EDdgފϋ(Wس@$ozK/ɥRqR-G2'yyuPv։"#w&`)?g;ˬ;{g~4a}҈ 32^$s࡝5A$LSk/mPW-쿾$-ad{U R;T?Ӧi}DZNCʲLvq~*|;CA(KAXga8nk +c 8 a;矘gi{a~nK[Q#] u,r C刭mX04_]@(  mY!÷~AWx*@{ FN8)f K@c_Kr?;>:D|).У32,1}WXwDx<4K>Ӫ{clD{'͟_Qg bǒpfAK(f#9);6R??[QV Ţ?NaHE-` +@o_÷/?* p_3a+q{|aֳ^TGDbrU׷ /sPboEV'fǸt٭Dw :qXD`eM+LΊSzVߙQ$9!4N>I$aWam0񱶘Tlp`qzo?#`H Ât0A `4#P4i?K? +/s?\2g.ݧ7IDrm2 .1G3:>Aj*GXPہ3U;' |ILcڸ=h.rovP8wFMg +ˏIπEVD ^k#1f1 9|`:AÜ-~G&(>{{-~lIߙe^cW>f>Y]KҞ*z,?zwgM>dt]iո 7̵(i9>Pysq5FG,mt99H##TgIBbLw x!Pk%ڸK} YGߗ;a᭡*)cĩQe%wM&o0bg0h;2Y'M +NR} ,-&?q}9Vk܃ 5IpϷb1? y|3"i\%F=2J +.MŌK饛5Sh> {Zu 5vGr/%;k6fGe;r|ۃ(tf,.!Gɛwt/Aq~,m49SոqAWo`i?+"+rVK:-($ cZă89@,|T@5'6$m+1ڛjgNߔ)f*cC\|\6̹mϾ⪙#獱OjUMC\^Z*+g`oڂ +:gOŗsgA&^kj2rnFz++!ZUf=7B| 9X5ަS[UN2 ;9&UR1 hA~˓H>2-~}"po#@iVy뽻1@go#a$\&CJj`oP6x=NEjbxeGi`3wWQÝJZq8T%ǤF[fUi~}/CVyrn![iݤq +TCm\ Z_#U6N25+'+ž&1eZ22&^MV0،f2PᚻS׆[vKk3dٙdlN>y~5tA1" "iW/b߾LeMQh8%όqbv``.;6TmK-.Q4EUR)VTNr**iBIF힋$R; +=~2Ng ~W'!O| +@ߏ=(4OPwQM`HSA!4eB蠂H ]"I@H'қHDz@JM@ș[׺Ώ9kΚֹ~[Vo baJ ZN*K4zd$곒"avmG1kDHbNU=ڕTp~%/W%xpL΍mA,"*V7eЂSãc6/q y5xTW~-.dZ~Xqy[vDNLq;$W-A/ Նt|l-( -zy|蚖#kPTPxAdžICO~ou^Ac52,ř$GX0k<Б)4'rLS%u<c#_jb3ʉmR|;Q = WSfs)+H1ZoZIk1mBٖo6&xK٧;2ml-+.I}MSomctI*#uuC+\DwjuvL*>\%`wo(`)1G b9ԕ~\v72#f`104q6 2E35\{BK4Q/1{挩ם!ɷfiZjݶ%UOcmr1bA={PҥQ C3E+ݒv߇-,բW9˘r]-Y2K'C  `9XэkYJM- V)-hT̼9ݔY[<"w~h[k{7Ν86tajs/ƧY~QR4t;L amiL uk x+C[Rr4"@" b[ $Q3#m7p=- 2BZT]?02WMMҧPXD:nTXh5Q~ֹ]՛"GTVJjS;ɕYԸ+ +[\I8"Q/EB"-aϦmJhG!ق]90 oSv]\SAQ5>q|+ +K^@SX٪-ȗYӂoÖ{uң.9 + _u}Sפ 21k`ל+˚_O'5O ą, L#buOupO|\z*ꥵKvO]),]UxTJ3((ua=nZEdl dwɌp#S]|~yOw( #H%,TQI!o@AP "`]? ?2yk!X_NSleWT YEY{Y90nG;Be O0TZ*C?K߯r5)*7Hh1lW"pK ~u\fwwld^To*=eazf߽޾X8u!3ا3]KנZS'}G{ VE?]gq|v[oue'6m)K 0O9ܟb;ގ?a:s-E*pv]}ַO>ܟn +fofoT4CфÜ0q!u444¨Ait4tc]A $vFƍe=Slxz_zPJHzJ>F3>E0=rwlgHGaK樴euhFȸmhc{čy5ZNiR +Q}NZ 'Uk쳫<Z+sc86&twBް2n>C?c¡hBkz%Q? ^w\*HQJՎ,Ad :uC%3r7:P1:KD+B 9\CWѧ71M(H<1xä |l.%I.HUHל'edEI]1(OOFƈ#g"*%,u_Ȯ\ð,:U~7o M-3S{Z1`ުl8JSy;Xq̎;$ѼPN]7c8++mt4EYXPuIڈ/z V bI)OLԷҫI`bv7\@2%\A \G|Ña{ "oeF%7-*Cjnga mM p!SUXCxUYkp2-eZaNcsrwykʵ`9dkxf)zvj 4+G C-NK-0>B^ +Qm2]o0SsՖl4'^AkwI-i+}ma2:76=E_p 8bz'F+Hl_O'H::rT[mAڠ!5ݕ3b٘'ulaT1pfD$-YLIt5M*F܈BE6smk4㯔ʚy#fMTZ=f,[x7? [I3Y(9޹$۩M@zV M:d2P|>_IL<̀TpY}dZN_1-TIfEu`"uv&3?.a,ؐ#ck6[RlRJP\B?cjZAlamF3Lx/_qwan[GPuP/OV'c?W y"#I"_;_1uYPy;<[ eE;ZtH3lxCh8k#s7L瑯-K v6g{t^kcƷ/"8LL+[bN̓ DuowRkN_c5Od$QgŮ7#!$Xz"|qU7%+LGs +R=Kc7_\d|fn;1&dw>OZe)"W4‘8LQs,J^h3tsLP@֊P|t*_s߱y\zT tvYW_/iЫC72;"hvwqf%(~>94xH~.gˎ" +F8!}Լ#㲈 ̻PC6܍napU.ޛPE@AN 6 inoops;<=Y&ZǷU!i"D+3U I5&>JE~|.:MRpj5o冩5%YVu0T j`4ĭrznXB}WԜZxoڇ Y`] r{ioM}z#gl҄jWæ1Gj*eV-4͌_{E֑"_P+U̜7|p^`퐩Ӓ.fȎCq0ZyV&1~LZ*&^pJzy&nE@5_^d,w|RLuyW4(D(<ܜ{F4Fyhи骘#rEߣq*eq*ȑ ӗԅ./edRq'a{Rv/ㄷ5gDfYs5W;󔁴тr+5juLȺJ~-Qטa8ɡE,9 DJߓ[quᒥn )~c'i,-%;_+nbr֖Z X*r\吷PTXĊs=2{Km ŝA$"-A<-}剝k@Ѿ0QaQAwn!%h@qKU1YJx ҸSUex/;H'=8lhd7>ԕ}%~N+&kr  j6T6"81cn.qFqrgq +lN)ʋִ}YTzЄ;vtfp>Kd-.5ͣ7>lMr5fȄ6*R9>;m8ԟ;&e"f~AzJr*׼'m$H%Ivܻ<7X5I<|}̋vU9gCw>=0z sz +T2-;6o4"?}yƈҮ cIgV Jf(znUu2m6,#:c"D#ZN yƭd@fAĸc,#ytknjT+߅ewE'uSͺwS3[s> l,*g 6Tj;ei1\Ļ%oriم^SԧWߌ>=[\0k]b f;pJi9q{ cA)9P!k6{V)*A3i:=S2{C D"R!(8+Ѭyi>uxTSCi$X7 6ρ?>2)C\{^ p[ih:.]IRr 50[BRϋ\ aQ-Iʉ#qCYnE_v޻`.wa9`}KU9-p)81 B^Oݻ6|P!Tm)l:;+mJH9wo 5[PC鹑:) Q(a7XcTL'p#ԗcjnbo5nYqJʛA +0o++_C%Pr5l0=ްҁ=ELaIT*ʭw=BgL[h2$-';Ve0yJ{#PDQjU% 2lRLUDWPZE)ȱN@fyfujjyrexv┹6]75fB,"K,ʆVCs}q(ϗ2ɓ?x0f2w0c՚{~\Iȏ]oge[x&|)@B4kDeZ/{9#b||۩5op{iuˎxh2Ra5JB|34k;cwhlPeFĬ;J~ŌD}9Byf,8L,ߪ>IE5br,9*V|iIu6YVpᆘݷ"颛J¤$?8bEI鼦/y+l3ʪle: +Z.CY&T>W?ξ5'ʧVBX'y r. U{Ʉ3P1q ESmuAUZ}=OEge) n[+(o "> P##)Gzo|sUXa +Mf֐tJtJa'4M-۹ +,sb;WQD2<Ǚw|o5|aLȢK7Ώ amسê\0m¤HZQ -u(Ƕ Y/F[r/e./I'ymJe!ꤹڐ>̕Y#L`%#[6VyV#idy@@9$ +PHSOt]=)"=Q@ I8TX|Qa +CR,seNP/:v_ +r"ٮ')YN- M߇teA"|_FQ~Z^Zƭz+;8՝G߆v=`+R#Y~誐 Iiѓܘf{H +1ʭ.d%DدAv󊾫^/UMmq/+L3UntQqJ61g!A/U'6lj:79RIy}3nQ1mT}"-7bdRS!nCc[.^܊EEysMNve8aw5z6ә5qx&"[,l'׆C& Fy`^X+尼ŝ-†m5)w,r C1O;vsPwa}bb jDa=s:",L&Z[EyScE!}z)L;mFna ѺD C/Z_UZ yj2: _,c[ц1XPKON|*D}ƅ>N˽~6NGnyLG(>OwL\ _g>W<Ȏb ާu/eVѦx%L_ LJ Q:jݤuzXzK$\DзJUU䚮.=k.RS=w.7Y\Im)n *q ^ב߇STp +f~.g*ZU2)_Ц=EL%dyf]2;6&TQw/vG"*t -}-ӤShׁ0/!wΩI頶̈P1~zn"TeD@S4uf O,qE6rI`*S6/ޘ74}_TZXfJZ{Sx|F@^h$yL:@%tOr%[2:ߢV7 G*MV:[߇brX.tbWTzQ*`eqS;(KJZV37n5VL-bSA뾄"ߘz$en5g_ +W0bE Nr8 AyC +v < }ak͛vinͱ8f:wHeǪ%ES}w-@kl;&PCY&'kt1y߻'+"T:`grM',]a`yOueB'HM2|.Vmxna~DB=f/ V Wʘ׺f K!Q!^h_E7{FGZ-v=@T݁C_݁]oO[g]ov&\%+jתH|ǁSKg-ƂvIZcQۃW?:z1eG ֫?z[PM/z]' [?{v=zr-4y1F9yC݉{5:7> +y ÔQz #_(r^kj&pbs~_@bs]s@FźY뗪 +跿tXzQRS*Π|,[M&aw۰o ^Ojg,I6o]@6YjCf)g'%m4χfeeV~ҋ)BZʏv$ϗ8&[8WB1%J.CIC虗#=G>=8CU +hMae*i +;L%Ru v355K~.ht[w%LF2iݏBdyyG]Gͨ觠eRg+QnK9B"yubz%ZG?5c' بZ+5¡=*'΍^IVC/]$j6tPa +L +yWxq͠w*9.5>h +#vN8sj ZX{ηsMN6wBY.6'L +Y]#]kLI +b͡559]{i݂ͽj3̇f,E_lu+f={|m_n`w˶a#%KP6ݭyߐaӪmMV]M9 +oQ3?lJ:1To?aOL3d՞Π?2>E9H?*!VfEZ 4+d޹c#7 8D!OgyP((L/~OOHxor+#[M pmK)УOw\OzJ\geTq$b=:VDuYFУP";N"]oK\aۯP:J|*B +%Ό}§wBxrcz Xdj5Z61b21/bA9y +u~2kBV;;D.m\rTCՖ"nol<[|[G XϞ`̨tOa2d^)n R]1 Nm tZDG_QT(B|`ds\o0jp[ ?'-|t" h=u&NTk2iՉ-*WeTeEybj׍ܕyW9%Ҏؤŗ2k>,+RR B\Գf$,E;IP9θ[Տ8swuu;$BUF+T m1vPC鷾]uy**;-菱JѣupV>>w^ajo}`F1R%3; .$tƬDt[&f-Y]<͈|P9aS(.+ wH 9ymgPWն䡌GGdG->*'i VM1\́&[ +<~w]V5^=!x):.nuʸ{dGݬf< d{-):,“{J`g7.N(Iu32.USePmN#h/:[$&kbjVAk!dOP}5~"-B]@'#fZWk1@SXhĺ2H&G\ )5 F ;/ %)E"HVn} $Iq3oˀ=v kHE01WrlaoawnϢ#}LG +rJ}Sg w;&$e}Ӯ2BI~f|>Q SFS/yt:bd!/5ڦQ:pylД-&u.b,g봓7Z@8ʲ_J^{k=IЎ^ЂW' b y9+au{NUȰopF ?(QWxS/}h?7ZzZ73@Nr)̃Dd$+ oթ[.o&LEWy5,U oƝ6^ǩijjP=&sug 7}գZ737W%;0\9uQt0'(E|TQk."N`=fza_5g86LsTRE4'뢷<@x Qϙcӗdʙɧ}7uY6Tsp_3:=Wr +~7:Ǿ(pW$SB,jrM- Sj3~T!试C3P~}{uk~;E=CchW{LMmN-+"~.ڛ-[ +_*`o6L%aqz^o P殇_GE\dʛكx|y#&+~!n ='|gr{#`ߤW+q/-\q*Q u-}G¯ӯEƬ#LgMb*au|tPeIH١EH/axEa)X2mհV^~X`V3aw!CRaբ_% 9/[>;8:Ƚ#s.T-<9?0׀@aWG鲮YlIQ^el|T>to6q/t\sN!cX/:T[1fRŤi'U:;'2!@B͂:j3HQu50B8 ;YWucxM9Eq2-'9$t]AٸČęX5JMJJR!{ ފc<,9 coÀw-;*b7Sl32wM#Fwj0CA&;VA޾MxsZ[C~;ã2m>J)'r@4%c]_aQHT'r[هe(u@33F`52ED ^"K}_4G\}'? >Nٚl."wrr'$,oա"->a;2]RDa)X`[dF7c'*vߞ +G*BO\y' \_XQN15]Uz B#-կk|1_ua?^*JQk,AeA_GQY^4 +aۨ"z+-: M" η NU2܃Mm,_Ua0|5_B`k7F-qY@z4H#c8z= +[\ӶQK|{0J-L~}SXȤAn'mp%UdaeJ4Ezgq4;얩fhuj?j-rkL(yG>eΘ?.1B2_Nqsiɠ'eXOaVg!TQ^iBSTUԥc708@򞾫_`ax&{R,>J=UݰFBoeTFğk`]o6QY qu>n>ߞSٽc!BA^ u1n" +|II1# s}p`C&|e2Dz LbyLj'sEY}wDC[h;oݢTkY50m:DDڼ{kAgZ1||f?mt\yb_{ym$uxv +%a#ogK +_H,ЇO\ByY:iE*&c֙LFŵ H!PU{5 }[{qW, HߔX\`I_ՍF޲ɩUo\ Wllțe +7UlB%%\qcJG{q2(:*GҷV$6 .?=<9|XL0TO_bo_7q뎟PWti1ayN?Q/m'MrۑSbTn~0(1҇9yt}[jv?9/ +./asfd58 +ExÄ^$Tb秲75}3i#{ZX W= tM{0B^iYF;'N^AV\чzz9$^xjj&^fꨵY oۨMs:7L {1U!AG nERmq+B%{ﱙ[U0M}iI!2ԯղ³53 @vA">{ƪ[[+5W: wO IP2=}K +1N2e6oZSÀW#Id[OQg;ɑ˗ct_űe{E+Ek/gph[#ݕB4<ϡy4ԋn"M09}C{i{iV!\xV1P| 2=/e[[%^uFؘ=;fY=s=1| +;;"jSU*+ɕP|Ov_UR^X}czŞhYWHۮ+qNY62E|+RQW^鲅E!#SriMi>T1N[*Uݴ2قn7} +B[E ,=CƐ&I:560kg+=;]C]jһto b+k4B /*(at>Jj{gҌ{"TlBiz[k99,.!D*fjSf=}FslPN>nDpUˉ,6&Jgk RAH %[@ֻ:X5yʳmЂX1cX`~ ]Ȗjо!1,Wzl[ I)=[@iiLIDZ*Ԟ7 +646}Ga;7 MhGyJI_ivvP}+}Yk + åEe+(5YwԌ|F-q>.0v/>(-1)057y=_wxh^*QHb76WXl*H }aP%%;ӅJJDDe$gڱnJl[ U4b(;CE8_ {"zo%햡0WGR-L*T" +SGJWlVM`( _Mrɯ +7^d&e:'6yQX> 7D@4qakFbB;S;+d$= $֬OO03 NWNxRd=E GW^hY0f!o-CD*Iu /㺈9 +$JY$#/):i^Y?8^6RZJ'3G&rGF_uG;XCc` ev5 c~vUP8. pd@VɜA&I[񝝆]_f +%*$o%F׸}@h O5g7c1ƶY"$f@ 'ļL9ҍ駁k;׋פCpu +9Bv~ȳ1f&q+y0V(_Ɇxw]lӔ_KK.ܻ"_贝EՙEYLHv3weLR}BzG.>7?%IQ'AA}%l/f':vTBlqɳ +1KdQ# (U[~B +jAl,ݝm6usτ!")2gbpX)߱S2(+pMvt;bG#_{@r?"~ܐ.]ue۰ +i1G<nzߊΟ 27O=gŹICY^Xso_WǢA3f-ّ5x5 T,~-z@tzg)-qP9?u< w:퇥,yZ!=,:3dC  8`~ +ipː\ZI;|ڧ@b"Uoi){ԿV>/$ /-/mRT~)OG{fG]"ڇ7hb6])駄5D@"1>7-! Rp}u Y9xFLCEDzfj*v@Ę + +Wűhtj/,Zj6I؈]0R&`׌o2cSXg2,2x?(b(pN&M[wO +B&TjVBU.!DC;m](5V,A!-%͚ei{d|r=K?b<˹?,E`ҁ+P:`l\q?4pI@Ͷ[ڔ{f- 6@?q2eK][ֿos1qi`fJtz&̘XWd)vu'3KEA0 \)ѽJKjw[u ܪwKZJ8o@d + +AQnJ&º#D+e{Pb(7"tCtvP^l8'#}ձB 'Y=Za(o H^3C5WWN.#yf!KvvIt/,PZ~cFzd#PRh`!NE<.OaDWyÍ!Ԩ(X3m΂yF)S^.] r ]QfxnFsP \;s_qPj?kӛ,kbuf&$ +c.aݯ͐{zt#'RRu6#у*ZKJ9֠ iFJzFFd3Av3A&ҽǻ+W*"Zx/65E*;d6XA謺Ϻvo(Zi+n1j _$7Rڤ!_~X>4vwݍ;k\yQ$_vlH4y?UVdMtohk|Df2W*&; 1 Z=jn2~PK譆''Z)OZi +1+1Jb}gXёO^^'0{P&@'w"X +1`S+t o|r{pthL}Kljt8F'Ӥ\WMG+Gc]S{2w> +NMX+nfqQAv;嗆 G*b[ Vӡk;Q{kvtnjZ-F>8sw.qYo n-,|`V/G9PS]|%!SnXT[S]3Ebw}8d=}TmC[8 +~r +rJ ++k_lXa'D%4( DtI.g'w9{*,TX6ݨj?5J +O`1r^BkD@"l]ݬe"[Mꍅ[{TlXJ؏OlFC/~7$;*l1Xwa~d m} D"@kLb~mV!e}|6fWK,/1* +]& FW "uS9И r.P*۝s*݈.φbцzyR KG#ʫxLZ߽aO<?Dک?4o` cHK V4T+Pz?D_0\:&&S\J?ZlEu@Zl" ̗30Ӂm8 3 #ݥ_-e(4x95TUDx%9)>z&II (QL@g#u=*6{T!PPsi! +Ug'kqųeTuAlzy/\.9RV6Vdb?ALGifpiAg(wq77\\AOg`qcegbfb|?5_:KXOS4?䟑o:*friYO9X?HYEKSl%>}D4LL?.aabffbebeefc'_-|Qi/Dl z <6`@LYW׊@]WDTD`bGOfo@OY1hJJQ >#P2D@Q*  >XFbE`'L5 ~rNJSH1 [Ʀjj`oB` )Na4R+j  ? ꓻQd?gx+؞^?@L7߷gTi/o`3qZ.Ѳ23Q13г3\!/==3EOKw<D~aHى+gZ`g] ·~s\8~1΄WE{,oOKB~Cx{.9_I9!}'bp>= }5U|~·vJ~>4<j]-j]Aeb@E{͓1|DM)k +118 P'yNܙއ:S߿SA7xC \ 7t_ \7oߴ+ o |7&?opxB%dll` _UTW( M`ljj 2P5]6TU]Dlj P50 A`\$;j TWղ??ޤeae +:ɦl +2Z~2alQ2BR@eb +25I)Bhk <ˌ?U?9;bD,d\BCBrWzWӡ%x.h' 8 rKp?7䇂=oO:gi >~G=ooXߝ>,gpسq?38\ ~V5*.5gp38YtG>;<;agrwqw8olR`@ЁM0 +uxxh^|ϧiഏi?1x<8G<{&g*gyәx32Hg═?B#^L36Hg]{!B?0 I"4_ۂ;Pu]p 4??wu\+pH`~Q_J놔h͋<>o <߾ʏ?Tk@0 %>V(fwa:`yv<|?G %>"΁sg܆9#S +!O@Ax9S\gz.O*4 ./8|:.4`P:AS +o #AAy>̓NL5/E&G LF'I\ Iџ<;À<HalNơxVxx[7],'|V/rZ(m0/`!+F!ߑF98 NO{;C?@^C8}Ҧ^Bs̗^9Jp O$uRߩ:y$R:"C:5.4F&ޖ*Lx\L5h^ \w! 0 &ۓ0Xi&W0i0ȕܽ7 $yS7RTSljߝ!sgХzd] +^KHI'c#|$.y(%`bn้S XKY +7Rqpj@tZ@=-]]- d=DWBO߆Ia!k+#AR0v}h 8=:Va{GGcphxpt !˞8:e-ăAa?.GG4g ( -0vzCpkc!/ +A4l _ ё=Dx]la0,Z4t iz ((1J !TpD_bu0ð}p_A;4qHpqyk1p|WÆ< +݃rGe8h+Sc4` |.|.<g"¹=m;7~a'ng' ӳӳ[ ?'N]c?=>=[<=;k^=ǻ>_@''N|7O:b$~o'7g%ř^Ds3}S3V*z*JZfQZ{:*c?u ><<%SW~՟rr9~λ8}G){gvGgqGG㨀_h?y) +OyO}t98 X=˝8O^h)w2/7O_SC<~ykesmA'=;~o~Ӈ$?s3 uΟG?'eϟm:Ə_D?燓va䇽@'8Džqy K-/;o`8t~CGn73\̇S~Nڅ:"4E}uEvB~#;y >?JпW1 k g} i/ ?K显?zCD 07q{o8, 1M$}~Co0UoLACY?&XI1~y$>=Bz\Ou~_OzOשh'ɏ`.s5?7tR~L8AjRte +ԬTTs:<8HRĖ9u0q-0qUe]]HY?Q>cSS3uu*U~j@S=*5t T f&@e3K.FJKL:-ojlP7VEĀ粞hW ti@ꔐ"Tc<7 P@WӇ@ V=?  >}|PL@@PO_PG+Oyx;0;OoN׍|lRry!+WȀɟ<5ϕўs7B!/U=Bq538K?մf& c qϜПΦ^`<'n. +pb=LLUqy \dl70QJLKWRK4UHT6PY) c-s 8 xPR% ħ261Ѩ@'fGı8& +LT`բt[\87<}NN_??LʟOCv=D˔щU"% Rk+A/M.:> J%o{~=?WqMw)ُ:_/#N^c!bPڤ./XK7i8 \ob?) $[nOƴe0ٺe,6Ɣ1wp0- iI"`Z-B!>>enJdЭucig-^ 2qqhx=\NU+zХQ!ף/2A>0/3d'3A'.+gGVKvݎ6 +~+&FHoӟK@7m +6@h68T og0RCxKV/g>(㖒H"?Ic;|876 24mFE{4J+utFi*[ mT +LyM29cƶrml{TK3 Q76u鮤(b?MwwǑSto{<IO#4JSR?ht0~|LcwF +㉍-gp{24J1\L"{JTU?,E^8rsH[%1ƄO[ſB_~RE?I,U:Wg1C,VU:+ŗ*P"\8ŞZU*6H,hz`+**%ŵzQ\ӽ$a1Xl(2Mep wnDU=^#k /l·D;ͩmU9Uu7 d\o Çs)WL9{^s& +6@7J9X`%|3Hfw>J؀(.}nDPXH)(Eݱ|ȗJ"G= [(;Rc{`?\{xht,)5]0F|CiUD7pFp_limD ^ׁo38?4]Yۣ:BDuw?[UC'Zm;h:45yM{[FPE:TiYCDCkiVj0][;246mѣ,~E7Pm%  jhcKye)W1exj$Q{/A>494'~ 4uw 1B[Siʡ[GY+^dO?L;-Bཡ\kU41hZ== b61BeA 𠷟5uIM0RptoBs톇B!!S[ : jjFm`oD3ZEl479:q _̪䛎eڲ,<uc%g *lwvTwN;95~j'B$R_z3vvq69=Ⱦp@qvpҾyUھۦ=:8 ݶHqJL헡ڣogy{$@~;e{/{.gpBޑyQ 82'ϱ&X?!8P9@kNN)Wp8`v$Ӂ8|7|)d2ci1Zu+@!it_@C3J<}h.uD4n9m_5|v38;F۞i]Dk͘uzOҎ?: _:$𴓺K .:v>q-۽tqfT9ݒӘ%2^DgX +?k Ct(?i?Y>ԣ>4V{Eξec y().:WwQ17409fY'2zhm<,+A ||J(/L,hj< ex?_h|{ +őf쵀dO 'Ab8Mnž(u>;ݡxIa!>P}eC:ݣ{&#!2ZkM44+@j0[7wwꪒ.Oi81<)zq[M}lMX-q8|5z07os4.K `Cii1ƭhgy}6IQ=A(5גo'z=HLw[v7`>ދƢ:ہ=^TBTXw,cu`5ڒڌgζ8 S vCulFzDl-`XȚaP]r4-(O:F=nwp4ݖ@SfwT/h'y3Yqu~2۬*:,Ǡn^j|ྋU󒝚ؼbY.Qpuaxf o8 C :&Mh_I4FHJ3$&YըFn32w?jԩSUN:U]] .ʎJ;m0RNױ,ĸ^(O~EVZ'.ުMZ ,Ɏgݣs^pVBY8ӣ0WYlc-{C7΁Qb۳Z9g[]î. %aYBpz"Mh;䨎2]Xe_C/4Fӱ2<ב\3tq7|rGqA^+;::[sQ3)fuα0lpUmwN@ۜjնu8<Tp?0.V{awvgbT _mt8TN`OFӱmv~dK?M6dr9.e3Dw Gpң)vM:SMlfuIuaKz2"6hew3-nUG-GQeJYHiNHF8a$ 0h<:9 t&uS3J&Y3-m(j'NܑX}RѤhG#Y,y0)Jكl%#f3/44oTke7eP7e^͕s&C7'( E욁st}OhYGW9ƲKvqCeGMM8^v|vI f*'ĸ||^WQ%VPvL6 =Em bzkKzNSeapgTVHΆUIDg]x*8`;Ӷ]qR0QPӖЖ&oyQ@ eSzi> Hr_YB$P06Ġ)] Զ̡P|y +Ilǫ#\7,Gnҡtfh8с228PG@>EfEvshhM yMjxY UF+Uv^%wzI8ȏ>+1@!޼yyt=RK֛+8/!C(tFEXƆVH@e..k,Du8N|_z)~Ա D('l3ICA8=}* 'j>#bKm}Rf!%&T2R%MoEb)S|XfPfE$;oKqŰLiFjШeT.Gӝ.Z1~Ԧ"r,v1phcj.G+bؘ-eaVH!Ou-Z%HL|&-)su fG&,ky$t#_2lUn";ZH#Z4OM؉R!sy~FMܲ=jHUɷ)}I1#.Eh-\uQEʣUuO)d϶EU +6c'PKyƖo:_ðQD^[+}I?D.9Z/.qJ8K>-^ʩlqF|O7Zg"_rZ9zq$$夐OZ UrR%? 1#Kzd~rHzIy>ɋ!nJ'ng8%=vt8IgI:G%E%655DE['U\rF%ed 7qH1pA[̄CCv9iS龜=_dhYu3!cYm clsp %/^`o^^3vyXawM7bRl6Ik$rl,+3+aٛH]/3SO5QXQ7h*OedpXoc<CYe sŪ63 ͏4^@Ĕ`Hsf"5=r-sއ9YsCM~_}N=9tD!'=)82g䬰CN}N+!wN 4N1 f_s%$3Ϝy^w&ͳ'N_%m+R%/CLP\aO=lxhb@6i+?F嘘pvTN`ѥ kt ^g o)]Ln׏:E-cGj?c>.&PĻ=pGRSۑ +1h 3Hdü50)9ejECE9F1o2㸤Hg{\wZZ#˱0AYGׅhfP%oSr7|V|"ȮUOzCWlFutE 3ZV+(3lh78KCAg%.eS.>)v]&SvBJZȪB| 16e)jk|2jf *n0zx%bPk/H3:"n\+;T+MM.B)X(˱E1u])JĆXxVIp:Zd.ǟzֈhEr|#J,-@SH@9 +a~@2"s"-z=޶U\U_h8PQ?Y.РY-sbz9t%nHicw08 ]Lm3g[|) 9сFurfw¯v5 mJm*&R VđzE>3[g\q{ʎBSt;v9.q}sڎ9G rߙBȒ#d!ꜳ>͈ {l!&QՙU4dVMA@h7뮻93yY# OoRdot? ':gwZQDmc7~C.mr|!b$4Z@iG)V\Nݨai&83^sk+F-^*>= + >GOI&` %q4[sĐ竒N6a^x^$B{ɞ)/Tav)ם?u778Hsi͙C?K憨k9HdЛ};V5 uD܂N+C}_pz +sBZqFoZ6rSKi9uM ɩƼ qfMNA X4|-8ڐ f|RA߁mOYITTM>|-b'a1AG{GVyӷהxKdWRN]#rk#Dфol i(ȥ쨸E+ZαR j(P[Шx0+ Z&?OO)l*&Ƌ!؁N7#3^SUeq|#&X#4p=| =JD@;fyK}KՈO,qETQq}s⤤Tˊ( iHt|Ԣ"D Aĩ~#}TN*26ՂNj=Tty\v848Eڤ8)fƍ_M _eFZq1Dln)&IfDoo^v?lNwC]J$=4$S٢9R%0ˎgЖSڐǣ="Æ5XQܣm$\7mX&l8DZdz 6.?4zL(yrBL f|Ҏd(]WC2@v?i8C@f:кhmcVQVAٕHeݽ6qڐBYPCm?Pk7(tfL  ;Mxj2vjM7Q3*ˌdv16ˡ 9=;.-f$|yvTI̦6F3 ~*[/4[ߧ%j_`Ys濵kR_m>?oq"!m)pԸږvk卿WXCF-\FD,Y|9caaTߖ[9sr3؊D`npea.G֏dMT31VTHg[M(B&=8YÎ*cؑ˅->R3%D4`ID'y)64iD[0$ODÆEj}߉}dD --d>!V= +Uu&x Zgΰ)p6 *-rIs|)*+ށ;qǰPVѬ䟀*g +ы.ȳ[)J eKvlPnřZh+W+4,GC!;уGmUBPu@LS +Ws\mMLH{iFI<1bqú,FSDxmY\~`mq~`y(cE!ޓqzZhI@ +B-c=;T)+U#9o32r.c}:FAf6"5]qזPeߘKpiR+XҎޗs_n(KzNE( +ȨaiMh~SpΈ!Dѝ349E 63z{:12's@_]g{t9\x}H1%H\ Q,=; p>^HT X!@\{ l7o$hV"i)o,G9/&ߖ{8 NAZv\g ,GdUY;:,!kIuǔw)v0Bה ei\^[`Sr+5c$Rq61O ^4O;0+ dٗ!lG!*2lʆ\D1;zPBb>_R %yn>]2&̢n xu[NbD[͢\`v i @Jz5<'gKxTXLzzМvt3I+bfezX#iEF("sȥYu }$"tffvՉ͌Ebe*A7M'jcYr*N:h߀txz4I}ό["=jr +(ІjT9/Rg7HA;CRMgApR+/w:=)뤍رmbqy#+Zb mbQI,`5{ZbÌ8o,}{1=;G~pX| d^?'Ԙ{Kncqա:jE%9C5̃QY39Q` #8czn=!ˑe2Q/Hu9.NSu fs,,a8m4{F# Gb"'ЩV $g"ɌEFZĒ/+JAD4OMD)Q!#-MW\ö(G|r!̲#:*  +Pך`V9TATPED粠goy#F1쨾fY@"R=}|C'T#F@&IHqQ)+fGFp:*zTٸ.Dt`q cT"TtvP κC +!Bt9cj8IX)^MlBx|%4>P;Q!\p)?ar.GZ;:Nu>"η=#Z`D<=3rF//H}nXP'IF3b@WpEZAf1d0VQTˑ@NY_ѨaO4.ObS=F%-8ޭ1,E~˪GÀץ9ao8qɛƶ-?Uh廄֥=ivӊG醃TPo4h^xB)qB7z-nzx~ׄcpr7}=OeG%ig} %ٹlu>qWDZj;MM~ M%OǷn%R6N@̕yC+MHZ!4,QCa1gkk5.}@kmkj +^L*ؼ)Ԍ,4iVmrs[q2ʦf/.>J#t Olg!]L4:\Z%vKbhușyS:<ݿP-NEX+^TFZUO5-*[\Hf_)Sb}X2 +]`DE&sU¯hA5=>pLY<5gEF=TVdCCL W2$']RDvR>eX Cjt/fv,HrviNiG˜Er+[v:œSIt. .T=>Un-blHXrvܛ^J8/ +f#&gQHghOp%f$&$MsQn~YӢhS0 a\u 3!S V%a0geYLկ\sXYݭI+Y&0oQ׆ѵHs&A]D՜w';ݻ>vHyViWbYq+12%~xCcsc!W6= -|CAݳ)0 !a}qpP^'`4ºNSDO275HDQkψazGB]=}b%=U>9п2wɆ.ndt*A$]>` ܛWQqsl5`FV0Fw'q)ܯp9#Qd휑w(z/ΎQL \/3:[lQ^QوWUee("$KmiL,l{ďMfF4CigDSM?>/2a3}U+ugܻm\Жǀ#Ua{i0g93QT"k()[&I?%c4Fi9sPg8:JoN(f4%1L;Uꌆ9A@q>-b,? 5`cϹ15=,A-%4E-QLhVwԣr]h癰gO +{4iTFw{ =$?+ ;`gU/J +zS*m܆}2g]b|`lm"ƳRڻRtݓwhtcܻrt2)?)I+rBfɶ~.5SvHp{y5޳ :Fu0hVuc8<ƒJ3$nA3frhl(&9T3x?b/!lV8LSSyA T9E5sN]%٭>l=u%Ev]j^q|Uz=-~숴3}sX 8xvϺue͋.kT5kz[}~] +$$/m3Tz$,ZhrQ9E?`YTbs-֢lKڱ0o#k:qXM + +2 @N_էB1ɭ6$Vyͨc΅wь6q7:GXܷ5-;9nm5 ;5#+ع.Ct1~ցkǓy|3jVM+:5$?N#]Zl3^}*VqӺ={1N(+mۚj8)zv9vN=x r)愚$9*u]Nṡ8689Yۚ Q(džnkC_R`² Mvm=%U(6 +lǓ`*lM(Ze:-{@Ju(nb 6+m]C3֢-òx.tJW8xyW!n;;k%bE,U-k*Xܖjٳƅ͞R,/hY4Ʋ(r^|Ca[=xh*`Plcn ݼYOXjJFրfzumB1_%j,ybOhh+W"m|._A7}OVUy +EۺDW:P/#mxzO1JA^Xu Ǹm3ZQ΋6QNz֏XW.B(pGfųuT*K(Vo>r7?y:k6Kz^#:PP8dio~l} +K0&IoҢ=z\KIkXc sr5Df8ç:UGY҆/zt=ux<fHƜhcu +#٨dALe3G ;zH&nF |U$d.XđNH۴ylFsepƗ3p'F9_irNI fF@;=W\뛲خ,>MQ`xc.9/_xW<У9mh6Cl/ýqT:#=㰕iab} 6-Kd쮔zDgJ'-9DD8H8v# ll@A׬SvZ^W"ߋ̊sfC/?r|Ӧe\Gj57}X{:vSӶzi[hՄW(bu9w5jkCMMɝbHҴǤ:} T1NKv}- nSnkڵ[lUԚ65o[B@he3uJUsvw!=2yV?e$g0[Z{9y.} cDخlZyܽ)c .ǒL=>4\ަw"Čaw)"D\vyX4zl=chndz6{1ezδ ["DeGL:5||eA#ԁV)RW _Z2JDE'RAǃ8vu=~ۻ6p%ZX /8r}{}?.LJz +5Fb&{ʎ`1IŽQ fG>0gkf\:C׌"֋OE$n{vʸZCP=-\w܃=-߸o{q9&l ^mFS{N\ x1l֌zʎw0Ѫ^ܰyyb'43d'acCf`\ޡS{l9Yr m). V,"3~΁% aF9].]ؑnҎS7׭aI;N7Ke3OGl1=]?[>#,"-Nn2~d??5Y=)YrgRـ9LVrsسD"Xˈm=6bJ@ܶ@+c_l{\"o]nF zf*H$-ڰ:2m%l7IG0OM.dz."xߢĭ( ;`. {>Fl 1E&`ݼݤ>]]jYT|R'J"ոMj  _:(-_IEg HXd%j +nF:.:Սټ[BL iBшT!V3Rde?3)~HmErڃg{XeJ$;)bG!^ _g?!On0b޸"QAi'j{?W+X_"Tc`f%i5M'L6fS̊esJ2l}nn6u5om&43{͟0EZp"2U"y EVF̹$Û1D[kw3KB7;bִ'Zu<UOm/&>aDTGYcƣ%gwJ9bY +B-Im.jXƧ0Q]9n`ŌE57G;wc :V%vM>Gjv&w@|Ϛ$NiK4oĄwf"uӔu_;M(3 MG, >_8kUs("Qh^[&H1ymH9To+\h nk7L+KSIVQTMB@zjk#mIdNߞNp*%-0l/hϠpΈ;!:k}] ;}՝t;"N_Xk hs.G*q\K=Fp(Sz6CHvVDMӘӍ7l6-kA~ym97M~&n};ʓVζ#.z0MLh/mUӁi . э7df:݇zNʯɲK=H*ѩ":I +#;Nw*/۔Drfr/mL Z{Qd} Nin()FA>+XbE|l =w@ 7t%?JL{3،[4ŭEF鶶Q~ao,mDlѡhs:HxMhi :IO(#H{<>`n#R%9mxLƚ|@?O #"{hmǫ ,Nq=߉$pds>c;>3>X6cP2㰛7jACZ()31$ϺՓҶKw\G}=r_vraպ6A鈷ۗ>2iWp<.eTt)>od"=uXaw {lКS%0&qYNW0:(\Fh%%KZ#^ԔXs0anh:}ҶtI ZMZ0M .ӭ0s1@ e!Pt'r~t9:\J3臝.dv\ww<~idM0Ҏڗ 8&s} #^?1[ F'3¯9zgefM!)j$|f#n#{ey}A(la7^BQ8yXBV#{ Ͽ x7wBy$|\Ʉ"Q\]0Ð0~ n٬_pFN auNV|.5.:6+ J^ +%4Ի@cS:crQW@%E:\䩍adFF.ge6a\ m;u0voV6vqNˢnBf>lK:[2+yݩ-IYPHwuTvQtn[j[JqshF,Ih(NY}`6v`)³mw|SEt̘ԷQN';خOg''R]w(Nsӌ6jƻ#ەRIJةw3CΓ1O2ׅۥ簅D)N[cp2)&zZԣ\0m:7 FHl6r8$ FDfDxOvZBwJnduJoΈPy&acz DNk["Dє)Hsvȫ-[@ocO&).:Ɨ>|KkxK|{L疮L!beG1mC]3 gfZ1qö|wo3*t&)++AZs 2Q'yS~>]bʩI|xp]Sސt~(>BiGzFa32l- )#:SPd h2gۓCvR1l5g9ONϰF1FEH[7kuqY[620Af[t5}Xʘf_'>T~NqF _yZhƲ-nXţ' +rVdlY' +tZ]nSdh$:EStDo%ZOINb +G9"mlUA Sp_9$^&?ML>SETemPqoofbob((>5=R=(x~J:]NUItD(34NY*Iﴈ8?1ڥΏfԌh28E;ϩ`I%D%o)wY8@0:{Js?AZӎkXgL;b{$<(7[h0ʔ=1k%;ހCS 2Mv|pu ڝ!@4uC|KȖ\N +|ޗ%>o|w +Džs:?u-(}'aFh3VyC&w1iJnp߫Hx +VXv`J"gcK;uףkN;0|*| +X-A;߅<@)H*`;vS踺Kv{xoj޳vƹKa/hUrK̰A D$ [IF$1 jS`ci.2]&E 4vB)vK!%8"k_Y"e9PKxO_ t S>Q4|.V`S. Ίؑq*D&jlX_qǓ`ARnqP5t2\n|ݾ:էn;y)g }eEx(G1G׿b RFSpiY](pI_3|%e%təNJK`N px]&˛ -5Ѹxl&/Gݸc̄=P_@[Np+K>*fKg_ëCE iq) ZO К+(*L =o+{'_}wɤj~T'%,#,I͡ +;R\߱K YxUP>t!uFn(hWzr}JQ7{edjwj燐j/FBSi o^ԃ0JN'~zboK~1Ql+g%L֥:f#sc(mwUƍB~;\|Cc岪P5<%qU2nQEQXDŽ֑U ,4{\hV=h{"ߋy;)ehoj4̽oywe$t^ƩK-˪L}yncKߏ HnNtܒ H4=@t\SKTh&/ +&3Ew(Ŏc~c*2hoHq&;ObN̺j+_( IKW=w|wieם;LK`Ld07T咓m aZCjy!}7 O/c̄xzz7=P)~ mGɡ@, +^J&oqll'`*2>vהk,.=Ug(\BzCnm'ͷJq B}Q{Y~t9Zm'9w^{3ԮŠ}5X]Y]΃gZX`b͡#|yB_rpox{;WwM:faup[;>L|èfy5 _|ֶn^z Y}ڧZztVF5Vۺ,cnL8(ڈ8 W| c^K؋|//);ÌXzS#(ˊhV;ӻiEр88{5'p(j Bg5s̾\_}΀ZL?YWPNQ}="M:lץi fw?'eVܶbKߌl/P`b +؂ޟ2"߫F, +RC]ߎMz\luޠXң՞|tз*A="k\)g|'XGrE8h#-3Pж4_:=R`;W%Km޺dױ>K7&/48RS2qa|h!R>+#@>[rlnvqrjn>!fEh2k*ՠ؋v\z=aR9S0T1D~MK<:,i-ZF`;9Ȯ%>kڡD (!N"e=rcn[ݬ{D{.ukJMPOUOϼxo~b'Q;!jPoI8Ɯ}UՀ[7PnFq>x3&tU7c +KxZW5(5q 񸿏!s#˗/'s,=y Pk\^ZSGXJ9ݏYxzɩ<5s).Ff oڟil/}OJL-]$]$D\I/#H})1NQ<*]?# +Bs\G ~JUkm׌)wl8vE3~ۻQ|~cm5~bܲ!O yK2eN+pAA71{كQ"gH~uA^20[X-?)z<J.*i얤}43=nG5iZchiסtx/53RѺ̥ShO>Ij7{TSs_(ʊ6]㝧pf/w<$\9E+ƦC4A9i +ojJo#_嵩mV)9t̶LSs-Ͳ)<=+zJZO&!&4qʎ3~zA@,Nsi[|Eb +~1`Ar}g͘0y'u#{?ǗĴcKvc#Gꪜ;Ε`v%O=0ьsq,d|-3 %N v$FZZc<ůCHHD5sSb1cwۻx[C/}}v&ىckPlr}da hdyB9qfѴȝNQ$ul*N}?#l9Di̱}q#?si6:<4٦fM϶0g vDE rNy>H;eMD7lˡ?+Wߋ(iåElJs}b/ocav|۵T\ ,#Oa+RCk7`rB(p?vb۞vfʝ= ?`b9P{)OfS٥k㎣]:$O{zfRRn>~)fgPEgzqF.TO舻4GUG#u7.(@شsr7e 9l͌6Ȟ#"F$#J[(م(F B[Be[ )Q|q?]L2Q3]&,mzRR=WC3DƹL0E|)Aܟ݇tܛ5-  +q/GQ,X'e%{NéCAuAM\R%RI">X@@p4)~_QkiPuDbxތ=R&Ig`߭8ňZ?.bFC/ > (JP\u3: V hxnM|K j3ss&< 4*y%{gKXwC*>5~Zv@jJ.Sܰ`}r ReAa0 w"hPm,ٯ@`r*KkwQ$3r[ghjrh?IԌv%qѭۧ$O_֎#l?6/@߸r h~ՍSb;>cПt7Tή{G'3. 2\st{!tD +~ߍW8N3kĵ+`Hw& +?;sN2V։)8-ѡމy?mo#}~,1Q S/F]5U 7mOqGj(=lqd:OF5`=ct[HQanκ{MUSS2p/ +cP{A]UJs0+3zKpbu[}a]RԹuԺuW9UZY*q-v͸"rĿǯwLy[Xk>Q 6،æѸ7d{$D2"&Nwߕdz/xΒ0b^#2UBf([%iC/)o+|&% 0ΧWWع2[ٝ>b}lrˮ[c.6t;iMɌԎ2)l~+d谫[QefUeð}6(_<aՎ?&؄u٠}FVe +._֍oك.g0<7?EՀ4 /r.Aݎn]gA_>.c{}HYDr~/^ Jrz!ǎ[syw>zGH=-]5 paY|fn%)2Ӱs) +^o:-3.? ЕѠ& +e^Ӄ ҝ.Lf㮑ݻV +$I`4Ȧ\[Xw8\5I}f@ܟnKp[/O}}*rXC>] iG久abq+19- ilhFf|f#iAXÈ[|,c}~GtoJ/pqx)]zQ+ F8ͬqMhr^gC[a GHh泰_Cw S > +%,QvweƳ6*AF2bqW|,wv(#_tCl>A~EHl?Aat3Ua .ۗ ݗNjoն_~P%v~(lFoYuط-zMkF( +bՇr_0#?-T|йxap!gփzq5U~ٌ6b,0m& fu/ۉQm$Svu"J3OdF,Eŕ;Bw:3!2EK/u'hI@Rp2ʈ$oSx7%Hw_/#KEg H$SF>of1PϞ1*ar!7k[ÊO9UuOd1cAob63[].g_ԟ4I.I$1DT + gWf9=Hl$J2?%^|+DpYMړWӷ53M)W|^u!ŀCt7fЌf>Mߝ6K#[φY ~EJytn`S0s!u6r&ybf^63-4L]$y%\8ť˫v,Qdi>N Q̌wpb̘|x+%(AV"k*5}Q|'uMc`\ٮBH* KQ´YxmVVJqEIm>3si| h4zGwJ4ОbX!:o))k[h[X1͊.-F$΋:ï:ڃDK(H =&"j \,QaFYAn]qNueFENJ9s*I$\_|swo~hBSYQJkd(F_@tnlYs_a{Pg +hWok߯+qym̕s2w1&iol?ϵgL h׊b;[-qksh XtȧvzpdsAE#'0+11$b{[:l ςU>pM *FqJ3IFtkA,kHK3λSnP=xxQODҐ"Okly;!}v>CLo^hr|Ra:YKqFm#Z$6[+1f=C.0&ۻwD 8)߼|.0VrxOV +C4a1w>2vQl3]E!{0 Et;zxLso?_?SsG#@;Y~;7:b umU/5X^A JbXUJSUf8KU3%o<Nr~0};/3)d-!HQ"Q*>_c0XskʓCۮ͗j{dζ d%H5x-]{dv dDW2i9U/s$3ܳƹ񭪐 NLޤgh0UiR QXP2Hl| mZکƎ¸ۈkcu׏4lX,sGe +hֱT#_+aH[Z3R0_=qa߃[â>7RXL/|VύEV7搔 Ǎ +Cq.+K/ضSݎ&WZ1eɆzĽouYrS3,B6v1_]nǁwJ5;Ę92foTއۀM77oT7*t`G1|!AvA s2eDLe`j&Ը _am&pp7e13`-ufw(+{A*L׭7b=29?57KLY\w+IE³D]/'wJnǣwҘ0ƸVoEP63 F]U6 C+W1ϝ*wP mp +LX"{0j{ɍcܘ0vL/+NN?hlE`8 pUJwFh?%_>U3;"}߽ ɲ?ɚtЇ3r_@_EJ95uQ!(EV$Q  g]x<XBȆ(bl5QMBV$O^~l'U-ii0jb'ͧIK#f +Z( +Iz1O/jNO-EZMx`||SdI4c˪ɝjY5SbQLQ5pAq!-n #JՌ&tG:pwIHTR *iVI8S/nynQ\;}!$` =-t>U.\8%8oȘ.!ݨÉ'tZoх 'wĈ~EΖ[]=: +~ Hޗj{bOy5BbCh*6Z,d;Ben{>nn7ju\qցMa4f@W qҊc97zі:qyԀWW?ݻ]뜤O7`{ .RpKT+y["BRpOn+;$>ܗ;#,!nn\)x +n <-\JW)'Qpn +ۂ{_p KE]\DN) .RpKT+y["BRpOn+;$>ܗ;#,!n|N) .RpKT+y["BRpOn+;$>ܗ;#,!ni WX/8W˭C +iP*/*)azo҂kJWF_+*_I)Iru]XvqȎuՠDCf\ssT]C#'2a4$RP*&( MBZԈB_+z AEUh5*F +TGE+P ZPZV(%qh CMzmDOX3jED_ 1}N CtBgow[$Ir0 AHDđE"I8RDK603N1Lzgެ"$'y%*Emyܢ*lNA;)}[ apz%ʕGDP:s + Dz7{{K/?i#,cNSigsu[m߱vSa\BLQf㑣Z;ɾ/D݁:$[8oaӑlpnxt~-&9$E S"c:8,wX|%_XJJ07?'\rXA\M A8ի< "y5R[; =aXJ˨a?=>a¾¸S & 0 9x)ajCSx@X6 ,V  + /#t0Rc5B,$Fp*(?^Χ}8sWW%5 p"@o>h\]YݛEڮ̀З?xk@y+^ʭx`o-#|=Ì>X¢ت%%1G\٫*\Λ{KB{מp:yߴ11/~W_a^ď*k"_|ݕڗ?u dN\{"=?C@'xd3д =sjԛ \1l;;Kpk"n863rcۙOJfTsKyWcQcדf7ב_ί*/,*H<>95y +6 H:}mI㓒S'&O&uDW;2hh镕+%MHNNNLS@]gdK1nYq@ +,_]4.,U`:VJ鵥5,]YJbCWEtaѯ*W+.+//\_^')K׬ˋ+VL^Ī5vO \.vxڇcNB'['KWBI*+צgtRf:38)ROW&B)2()S?'_TU\Al)ͯ(*k*rȩ좊^=R('0~|Dm2Ԕ{yO4!%5--915ybdvݽ?=@S7MEQ%C[~y[\YTPhzJר:zEtϸ]6aRմ0n旯Ē|[X:!xUew rՀS;*'S]߿137^7b:_1O*mhcx#j@byq/] PRIG&ӑZ4pʕkWOO/6b4,#~5}d7 ȆN%LROp <O{t_WWjD^=_ (Z_XX>MpVT݅vsDCYr`^iZz [ ǰJ._jf=gZd4]PHD#קZ:7oڇT1)cp> ].:{9ww$H^UHC`bsڭnE|܆uIZ:9F#pˊB5MpT!KV`,.))(*]Uվ***YU^3)uk+*V*h<8iUi*] +ҳ$& B4"p8%@lj||xnUO¢eK VV( 3yٹƭ(M7ΓӇ8N2AR=HgNK' gժJAsKկo%O6'ԓtB>] p/t'q{E(|VY/E%J˜3M+ a,B8z*2ndaėɀo[7or6%yRR+yR p䤤D^)/&'AS&Nxog2$ѷɟB{Nѡ44 ~ǠH>9/ǝ.XxOm/p:WxUNG yüY/?&gQӑB:VHNsDSMzn7Ed+f N + 'ӼsjWGƕ/:0xꪄ R+J{˥djqPk>H#^Ѡk2ўljzwm Oވ jj+oxы0<}fxl/?vxyC}o~nrNܠo`1I$ZFK K ~-k9,;T@]^^E%#ҥUKaN_R8K LVBka-W)*X{8-͞7k)),*7+fy䏬,]%]F-8a V1K&.{W/݀/{s5/ yU^p[Nt>{m{^p Wwy^^poU/{vGJ/1/0/x ~ ={{׽uw~;6 ">?OT֬ N|5<1<>Uߺ\:>LaKo)>zb>7,սa)~7,a9~7a>VOjc"5 9 {1=Y1=C'E|e O d.r\|i;|u Ӗ۬MW*Y[-=.׵BhO+!L< i~ Dn/>(ty E<;C ƬMOZEgLjڒ$1޲ m-b1npV+]nNTA90x)w,% o[1Ζy4@vC/-= 3nY7gwкE%(ږc`>bڔyOo̶B_(ȴ;H"tVLj$|ݡ!1$}7|v͆گ<-xoW/L߅i|_;WM%_"Q% -nF=h}%mq@ex}PE(ٛ>?{y雺g= ๹1wx˕rLAnMtW7YNY.nӗ?'/Ow|=B[%N{;޻]{׽uw]+*̛31kF漁naޜXq_Z7.-,UqAԼU<$UKxaYEM*00j +~f r?sNbS|+v?`L_r?ZM +[..woUC ADSJeu,B0A?DgG. U13|LhzؔHp,9W3 zꖄɌa +$EW<8Kp/{' uD<>u+0}Ox-#}Keϊ2}|OK|6HgVj}7X:Gs,̣gp<^wwݻ]{׽uwo<<˼/#'J0={6t!Bس-L{y> fMbN:){t]|^`>~g }X=jiG=dB.i9Ir|@ԯ!z=W_<qBF->ٯ= +قo27 ~#"o|N_+g㌌teWU'%$j&IN&jSc&é}"Ġpq|Kz?\+^SWn}z?\g/|B~H5(\F>t2{{S^>r~AA/K.x( ]J^gj GpD>x ͇twsN׳unSqA X( Wj|!{w_->s, qy_. +GKH [f t>*$/!pQBj8O+W +v_D5?Ҡt|ӄ7+U)d^$tK_y! &U(?Bq`{=*(?OoO5SwD NWVT^<鱴r +GZt#%:~eiyUteYIQeQabvvp$ +JKVUEK3 Wh)>jV BTZRO+^3sge.|t)aYڟJ!ZjX@1+Y,tFn>=wi͜t^>7s|}~u K6:]i ++z)vOtwo~h@r q?KU%Z.UKWWz3 s**Go)/ANoQ P߫McoP~ ? %V]Y rzPʢGVN,+JW-[]\RP\( >ͯ`QbUۯ,wtUR+/*Lj]YI%.M|T(*@"X^ʋgb+tM/C{*e1s'GVBG_g g9{hsiPwz z |6.= gLp 沞K(0'D|JzW1aIyO-=a|k\ +<%Gx! Bz Yi yۋz/=gǷWL#{g7H<{.}2@ |q}0 g?aJ X/.ߎURb;^ 8z߀cA?蟾w~\^G), z{*!i@}/?p=̓>v *0n0?Cain?i?D):3]w_ +Ky'J<iW;_k_&LLK8~ '`?Og )w\bҲŏttF MO)}(/_AO]f PÉ*Wб4vɳeY=(]^?0^DA*xJUJ镥b:[x.]f<0Q8WxU%M}KXX}|vůJ ik<C Xx`GVAVtIѯJqK nv?l?I?Dlu %kq1@0S;ɝ?7_);-A?57N/)^UğOSWXZd +3EU KX]PPTQ|uIbo +M|kN\*M˅]>ciV%_\|PY3OuGxP2"7Wn^f?ӴN7Pe9$nO.9(>R #=cѿ?HAg :g +*@O~xT L2kf:Ky`"`M5`.Ee]#`T7'_BJyZ%e|wfv;P4Ѳ +ݫchܺQa +9f 0#)1 +90L~oxnɪ%]H6<=m8mn9s& |_S䫑$OHNoqy}'[z)^KJN0 oq <z^u¯/]ðg풞İc>Rw֋)x,>vصPϱkcׄUǮ 5wA]!]B?yK' r\W]QO:vCK#;vǮwDtڐ? ss욗D0رk/ϱk!$!=[|!^z;!wA +/L}{t(녯N| Ag^p|/sCy~6x kw=?­Bp޺:\!|0o ^o"?{{—zK釓ӏ&|$,rzj| w|?!_@@m +jz%Sxp~|=?B .?QC{!w!p?Q&k/: ^^phE#g1=vqc7=vpxST5\z#T`'#o`zph4}҈0{)Ya4:cрU ~Q$7JByohyOB׉h=+Z砻Ʌ2XG}c?h'yf_>HGn Jhg7DŽWL{׽uwݻ]{׽uwݻ]{׽uwݻ]?r \ No newline at end of file diff --git a/Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.21_utils.sh b/Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.21_utils.sh new file mode 100755 index 0000000..13a3689 --- /dev/null +++ b/Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.21_utils.sh @@ -0,0 +1,1093 @@ +#!/bin/sh +# This script was generated using Makeself 2.4.3 +# The license covering this archive and its contents, if any, is wholly independent of the Makeself license (GPL) + +ORIG_UMASK=`umask` +if test "n" = n; then + umask 077 +fi + +CRCsum="1811307207" +MD5="b13db8056bc0c9d2bb29758af2adb081" +SHA="0000000000000000000000000000000000000000000000000000000000000000" +TMPROOT=${TMPDIR:=/tmp} +USER_PWD="$PWD" +export USER_PWD +ARCHIVE_DIR=`dirname "$0"` +export ARCHIVE_DIR + +label="keyboard_firmware" +script="./flash.sh" +scriptargs="" +cleanup_script="" +licensetxt="" +helpheader='' +targetdir="stm32duino_bootloader_upload" +filesizes="104476" +totalsize="104476" +keep="n" +nooverwrite="n" +quiet="n" +accept="n" +nodiskspace="n" +export_conf="n" +decrypt_cmd="" +skip="678" + +print_cmd_arg="" +if type printf > /dev/null; then + print_cmd="printf" +elif test -x /usr/ucb/echo; then + print_cmd="/usr/ucb/echo" +else + print_cmd="echo" +fi + +if test -d /usr/xpg4/bin; then + PATH=/usr/xpg4/bin:$PATH + export PATH +fi + +if test -d /usr/sfw/bin; then + PATH=$PATH:/usr/sfw/bin + export PATH +fi + +unset CDPATH + +MS_Printf() +{ + $print_cmd $print_cmd_arg "$1" +} + +MS_PrintLicense() +{ + if test x"$licensetxt" != x; then + if test x"$accept" = xy; then + echo "$licensetxt" + else + echo "$licensetxt" | more + fi + if test x"$accept" != xy; then + while true + do + MS_Printf "Please type y to accept, n otherwise: " + read yn + if test x"$yn" = xn; then + keep=n + eval $finish; exit 1 + break; + elif test x"$yn" = xy; then + break; + fi + done + fi + fi +} + +MS_diskspace() +{ + ( + df -kP "$1" | tail -1 | awk '{ if ($4 ~ /%/) {print $3} else {print $4} }' + ) +} + +MS_dd() +{ + blocks=`expr $3 / 1024` + bytes=`expr $3 % 1024` + # Test for ibs, obs and conv feature + if dd if=/dev/zero of=/dev/null count=1 ibs=512 obs=512 conv=sync 2> /dev/null; then + dd if="$1" ibs=$2 skip=1 obs=1024 conv=sync 2> /dev/null | \ + { test $blocks -gt 0 && dd ibs=1024 obs=1024 count=$blocks ; \ + test $bytes -gt 0 && dd ibs=1 obs=1024 count=$bytes ; } 2> /dev/null + else + dd if="$1" bs=$2 skip=1 2> /dev/null + fi +} + +MS_dd_Progress() +{ + if test x"$noprogress" = xy; then + MS_dd "$@" + return $? + fi + file="$1" + offset=$2 + length=$3 + pos=0 + bsize=4194304 + while test $bsize -gt $length; do + bsize=`expr $bsize / 4` + done + blocks=`expr $length / $bsize` + bytes=`expr $length % $bsize` + ( + dd ibs=$offset skip=1 count=0 2>/dev/null + pos=`expr $pos \+ $bsize` + MS_Printf " 0%% " 1>&2 + if test $blocks -gt 0; then + while test $pos -le $length; do + dd bs=$bsize count=1 2>/dev/null + pcent=`expr $length / 100` + pcent=`expr $pos / $pcent` + if test $pcent -lt 100; then + MS_Printf "\b\b\b\b\b\b\b" 1>&2 + if test $pcent -lt 10; then + MS_Printf " $pcent%% " 1>&2 + else + MS_Printf " $pcent%% " 1>&2 + fi + fi + pos=`expr $pos \+ $bsize` + done + fi + if test $bytes -gt 0; then + dd bs=$bytes count=1 2>/dev/null + fi + MS_Printf "\b\b\b\b\b\b\b" 1>&2 + MS_Printf " 100%% " 1>&2 + ) < "$file" +} + +MS_Help() +{ + cat << EOH >&2 +${helpheader}Makeself version 2.4.3 + 1) Getting help or info about $0 : + $0 --help Print this message + $0 --info Print embedded info : title, default target directory, embedded script ... + $0 --lsm Print embedded lsm entry (or no LSM) + $0 --list Print the list of files in the archive + $0 --check Checks integrity of the archive + + 2) Running $0 : + $0 [options] [--] [additional arguments to embedded script] + with following options (in that order) + --confirm Ask before running embedded script + --quiet Do not print anything except error messages + --accept Accept the license + --noexec Do not run embedded script (implies --noexec-cleanup) + --noexec-cleanup Do not run embedded cleanup script + --keep Do not erase target directory after running + the embedded script + --noprogress Do not show the progress during the decompression + --nox11 Do not spawn an xterm + --nochown Do not give the target folder to the current user + --chown Give the target folder to the current user recursively + --nodiskspace Do not check for available disk space + --target dir Extract directly to a target directory (absolute or relative) + This directory may undergo recursive chown (see --nochown). + --tar arg1 [arg2 ...] Access the contents of the archive through the tar command + --ssl-pass-src src Use the given src as the source of password to decrypt the data + using OpenSSL. See "PASS PHRASE ARGUMENTS" in man openssl. + Default is to prompt the user to enter decryption password + on the current terminal. + --cleanup-args args Arguments to the cleanup script. Wrap in quotes to provide + multiple arguments. + -- Following arguments will be passed to the embedded script +EOH +} + +MS_Check() +{ + OLD_PATH="$PATH" + PATH=${GUESS_MD5_PATH:-"$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"} + MD5_ARG="" + MD5_PATH=`exec <&- 2>&-; which md5sum || command -v md5sum || type md5sum` + test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which md5 || command -v md5 || type md5` + test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which digest || command -v digest || type digest` + PATH="$OLD_PATH" + + SHA_PATH=`exec <&- 2>&-; which shasum || command -v shasum || type shasum` + test -x "$SHA_PATH" || SHA_PATH=`exec <&- 2>&-; which sha256sum || command -v sha256sum || type sha256sum` + + if test x"$quiet" = xn; then + MS_Printf "Verifying archive integrity..." + fi + offset=`head -n "$skip" "$1" | wc -c | tr -d " "` + fsize=`cat "$1" | wc -c | tr -d " "` + if test $totalsize -ne `expr $fsize - $offset`; then + echo " Unexpected archive size." >&2 + exit 2 + fi + verb=$2 + i=1 + for s in $filesizes + do + crc=`echo $CRCsum | cut -d" " -f$i` + if test -x "$SHA_PATH"; then + if test x"`basename $SHA_PATH`" = xshasum; then + SHA_ARG="-a 256" + fi + sha=`echo $SHA | cut -d" " -f$i` + if test x"$sha" = x0000000000000000000000000000000000000000000000000000000000000000; then + test x"$verb" = xy && echo " $1 does not contain an embedded SHA256 checksum." >&2 + else + shasum=`MS_dd_Progress "$1" $offset $s | eval "$SHA_PATH $SHA_ARG" | cut -b-64`; + if test x"$shasum" != x"$sha"; then + echo "Error in SHA256 checksums: $shasum is different from $sha" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " SHA256 checksums are OK." >&2 + fi + crc="0000000000"; + fi + fi + if test -x "$MD5_PATH"; then + if test x"`basename $MD5_PATH`" = xdigest; then + MD5_ARG="-a md5" + fi + md5=`echo $MD5 | cut -d" " -f$i` + if test x"$md5" = x00000000000000000000000000000000; then + test x"$verb" = xy && echo " $1 does not contain an embedded MD5 checksum." >&2 + else + md5sum=`MS_dd_Progress "$1" $offset $s | eval "$MD5_PATH $MD5_ARG" | cut -b-32`; + if test x"$md5sum" != x"$md5"; then + echo "Error in MD5 checksums: $md5sum is different from $md5" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " MD5 checksums are OK." >&2 + fi + crc="0000000000"; verb=n + fi + fi + if test x"$crc" = x0000000000; then + test x"$verb" = xy && echo " $1 does not contain a CRC checksum." >&2 + else + sum1=`MS_dd_Progress "$1" $offset $s | CMD_ENV=xpg4 cksum | awk '{print $1}'` + if test x"$sum1" != x"$crc"; then + echo "Error in checksums: $sum1 is different from $crc" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " CRC checksums are OK." >&2 + fi + fi + i=`expr $i + 1` + offset=`expr $offset + $s` + done + if test x"$quiet" = xn; then + echo " All good." + fi +} + +MS_Decompress() +{ + if test x"$decrypt_cmd" != x""; then + { eval "$decrypt_cmd" || echo " ... Decryption failed." >&2; } | eval "gzip -cd" + else + eval "gzip -cd" + fi + + if test $? -ne 0; then + echo " ... Decompression failed." >&2 + fi +} + +UnTAR() +{ + if test x"$quiet" = xn; then + tar $1vf - 2>&1 || { echo " ... Extraction failed." > /dev/tty; kill -15 $$; } + else + tar $1f - 2>&1 || { echo Extraction failed. > /dev/tty; kill -15 $$; } + fi +} + +MS_exec_cleanup() { + if test x"$cleanup" = xy && test x"$cleanup_script" != x""; then + cleanup=n + cd "$tmpdir" + eval "\"$cleanup_script\" $scriptargs $cleanupargs" + fi +} + +MS_cleanup() +{ + echo 'Signal caught, cleaning up' >&2 + MS_exec_cleanup + cd "$TMPROOT" + rm -rf "$tmpdir" + eval $finish; exit 15 +} + +finish=true +xterm_loop= +noprogress=n +nox11=n +copy=none +ownership=n +verbose=n +cleanup=y +cleanupargs= + +initargs="$@" + +while true +do + case "$1" in + -h | --help) + MS_Help + exit 0 + ;; + -q | --quiet) + quiet=y + noprogress=y + shift + ;; + --accept) + accept=y + shift + ;; + --info) + echo Identification: "$label" + echo Target directory: "$targetdir" + echo Uncompressed size: 312 KB + echo Compression: gzip + if test x"n" != x""; then + echo Encryption: n + fi + echo Date of packaging: Sun Dec 19 12:48:17 CST 2021 + echo Built with Makeself version 2.4.3 + echo Build command was: "/usr/local/bin/makeself.sh \\ + \"stm32duino_bootloader_upload\" \\ + \"DevTerm_keyboard_firmware_v0.21_utils.sh\" \\ + \"keyboard_firmware\" \\ + \"./flash.sh\"" + if test x"$script" != x; then + echo Script run after extraction: + echo " " $script $scriptargs + fi + if test x"" = xcopy; then + echo "Archive will copy itself to a temporary location" + fi + if test x"n" = xy; then + echo "Root permissions required for extraction" + fi + if test x"n" = xy; then + echo "directory $targetdir is permanent" + else + echo "$targetdir will be removed after extraction" + fi + exit 0 + ;; + --dumpconf) + echo LABEL=\"$label\" + echo SCRIPT=\"$script\" + echo SCRIPTARGS=\"$scriptargs\" + echo CLEANUPSCRIPT=\"$cleanup_script\" + echo archdirname=\"stm32duino_bootloader_upload\" + echo KEEP=n + echo NOOVERWRITE=n + echo COMPRESS=gzip + echo filesizes=\"$filesizes\" + echo totalsize=\"$totalsize\" + echo CRCsum=\"$CRCsum\" + echo MD5sum=\"$MD5sum\" + echo SHAsum=\"$SHAsum\" + echo SKIP=\"$skip\" + exit 0 + ;; + --lsm) +cat << EOLSM +No LSM. +EOLSM + exit 0 + ;; + --list) + echo Target directory: $targetdir + offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + for s in $filesizes + do + MS_dd "$0" $offset $s | MS_Decompress | UnTAR t + offset=`expr $offset + $s` + done + exit 0 + ;; + --tar) + offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + arg1="$2" + if ! shift 2; then MS_Help; exit 1; fi + for s in $filesizes + do + MS_dd "$0" $offset $s | MS_Decompress | tar "$arg1" - "$@" + offset=`expr $offset + $s` + done + exit 0 + ;; + --check) + MS_Check "$0" y + exit 0 + ;; + --confirm) + verbose=y + shift + ;; + --noexec) + script="" + cleanup_script="" + shift + ;; + --noexec-cleanup) + cleanup_script="" + shift + ;; + --keep) + keep=y + shift + ;; + --target) + keep=y + targetdir="${2:-.}" + if ! shift 2; then MS_Help; exit 1; fi + ;; + --noprogress) + noprogress=y + shift + ;; + --nox11) + nox11=y + shift + ;; + --nochown) + ownership=n + shift + ;; + --chown) + ownership=y + shift + ;; + --nodiskspace) + nodiskspace=y + shift + ;; + --xwin) + if test "n" = n; then + finish="echo Press Return to close this window...; read junk" + fi + xterm_loop=1 + shift + ;; + --phase2) + copy=phase2 + shift + ;; + --ssl-pass-src) + if test x"n" != x"openssl"; then + echo "Invalid option --ssl-pass-src: $0 was not encrypted with OpenSSL!" >&2 + exit 1 + fi + decrypt_cmd="$decrypt_cmd -pass $2" + if ! shift 2; then MS_Help; exit 1; fi + ;; + --cleanup-args) + cleanupargs="$2" + if ! shift 2; then MS_help; exit 1; fi + ;; + --) + shift + break ;; + -*) + echo Unrecognized flag : "$1" >&2 + MS_Help + exit 1 + ;; + *) + break ;; + esac +done + +if test x"$quiet" = xy -a x"$verbose" = xy; then + echo Cannot be verbose and quiet at the same time. >&2 + exit 1 +fi + +if test x"n" = xy -a `id -u` -ne 0; then + echo "Administrative privileges required for this archive (use su or sudo)" >&2 + exit 1 +fi + +if test x"$copy" \!= xphase2; then + MS_PrintLicense +fi + +case "$copy" in +copy) + tmpdir="$TMPROOT"/makeself.$RANDOM.`date +"%y%m%d%H%M%S"`.$$ + mkdir "$tmpdir" || { + echo "Could not create temporary directory $tmpdir" >&2 + exit 1 + } + SCRIPT_COPY="$tmpdir/makeself" + echo "Copying to a temporary location..." >&2 + cp "$0" "$SCRIPT_COPY" + chmod +x "$SCRIPT_COPY" + cd "$TMPROOT" + exec "$SCRIPT_COPY" --phase2 -- $initargs + ;; +phase2) + finish="$finish ; rm -rf `dirname $0`" + ;; +esac + +if test x"$nox11" = xn; then + if tty -s; then # Do we have a terminal? + : + else + if test x"$DISPLAY" != x -a x"$xterm_loop" = x; then # No, but do we have X? + if xset q > /dev/null 2>&1; then # Check for valid DISPLAY variable + GUESS_XTERMS="xterm gnome-terminal rxvt dtterm eterm Eterm xfce4-terminal lxterminal kvt konsole aterm terminology" + for a in $GUESS_XTERMS; do + if type $a >/dev/null 2>&1; then + XTERM=$a + break + fi + done + chmod a+x $0 || echo Please add execution rights on $0 + if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal! + exec $XTERM -e "$0 --xwin $initargs" + else + exec $XTERM -e "./$0 --xwin $initargs" + fi + fi + fi + fi +fi + +if test x"$targetdir" = x.; then + tmpdir="." +else + if test x"$keep" = xy; then + if test x"$nooverwrite" = xy && test -d "$targetdir"; then + echo "Target directory $targetdir already exists, aborting." >&2 + exit 1 + fi + if test x"$quiet" = xn; then + echo "Creating directory $targetdir" >&2 + fi + tmpdir="$targetdir" + dashp="-p" + else + tmpdir="$TMPROOT/selfgz$$$RANDOM" + dashp="" + fi + mkdir $dashp "$tmpdir" || { + echo 'Cannot create target directory' $tmpdir >&2 + echo 'You should try option --target dir' >&2 + eval $finish + exit 1 + } +fi + +location="`pwd`" +if test x"$SETUP_NOCHECK" != x1; then + MS_Check "$0" +fi +offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + +if test x"$verbose" = xy; then + MS_Printf "About to extract 312 KB in $tmpdir ... Proceed ? [Y/n] " + read yn + if test x"$yn" = xn; then + eval $finish; exit 1 + fi +fi + +if test x"$quiet" = xn; then + # Decrypting with openssl will ask for password, + # the prompt needs to start on new line + if test x"n" = x"openssl"; then + echo "Decrypting and uncompressing $label..." + else + MS_Printf "Uncompressing $label" + fi +fi +res=3 +if test x"$keep" = xn; then + trap MS_cleanup 1 2 3 15 +fi + +if test x"$nodiskspace" = xn; then + leftspace=`MS_diskspace "$tmpdir"` + if test -n "$leftspace"; then + if test "$leftspace" -lt 312; then + echo + echo "Not enough space left in "`dirname $tmpdir`" ($leftspace KB) to decompress $0 (312 KB)" >&2 + echo "Use --nodiskspace option to skip this check and proceed anyway" >&2 + if test x"$keep" = xn; then + echo "Consider setting TMPDIR to a directory with more free space." + fi + eval $finish; exit 1 + fi + fi +fi + +for s in $filesizes +do + if MS_dd_Progress "$0" $offset $s | MS_Decompress | ( cd "$tmpdir"; umask $ORIG_UMASK ; UnTAR xp ) 1>/dev/null; then + if test x"$ownership" = xy; then + (cd "$tmpdir"; chown -R `id -u` .; chgrp -R `id -g` .) + fi + else + echo >&2 + echo "Unable to decompress $0" >&2 + eval $finish; exit 1 + fi + offset=`expr $offset + $s` +done +if test x"$quiet" = xn; then + echo +fi + +cd "$tmpdir" +res=0 +if test x"$script" != x; then + if test x"$export_conf" = x"y"; then + MS_BUNDLE="$0" + MS_LABEL="$label" + MS_SCRIPT="$script" + MS_SCRIPTARGS="$scriptargs" + MS_ARCHDIRNAME="$archdirname" + MS_KEEP="$KEEP" + MS_NOOVERWRITE="$NOOVERWRITE" + MS_COMPRESS="$COMPRESS" + MS_CLEANUP="$cleanup" + export MS_BUNDLE MS_LABEL MS_SCRIPT MS_SCRIPTARGS + export MS_ARCHDIRNAME MS_KEEP MS_NOOVERWRITE MS_COMPRESS + fi + + if test x"$verbose" = x"y"; then + MS_Printf "OK to execute: $script $scriptargs $* ? [Y/n] " + read yn + if test x"$yn" = x -o x"$yn" = xy -o x"$yn" = xY; then + eval "\"$script\" $scriptargs \"\$@\""; res=$?; + fi + else + eval "\"$script\" $scriptargs \"\$@\""; res=$? + fi + if test "$res" -ne 0; then + test x"$verbose" = xy && echo "The program '$script' returned an error code ($res)" >&2 + fi +fi + +MS_exec_cleanup + +if test x"$keep" = xn; then + cd "$TMPROOT" + rm -rf "$tmpdir" +fi +eval $finish; exit $res +a]wƳW +:mɯ!@K{Na-m,BߙٕHBq.isKgfGKVI)HpOIJjכvi~m/~{뭯pMvùe7fn[uq؇[+RHu6JرN޴[Nj:M2-ohTmNuo JOٯo;-V_Q|__ 1cwn /_=:~o;FlC9Ѩ;_[[vgs +|Z% u*,?@Dnl5l\nvdzD} +z1!VXg$n3L{U74dp,ЬcQ, +7_bi 4`(sNgZ/-t7_;Eov_~_6_к[F\wlo7o;Wn >eo"oۮkprm븞͝F6=BZrVukj 斳թbЩ7V-4Foe;~NM} +77iKX_7a6VK;xqz +t`:tX2JGOxҏONQvX(@"O](x7}H Xӱ!b1J3 ݤqosR +B?DtF%kPoX6iDSEH7/nont[M~NfB¶ >e7z|$<6Lx~’/~V +K"5མT-F0ɋPɘFrP|47)>ީ7bn8eD?4ڋh+nP끻,m62fD0eC#8l$B'Yo-LEh8hWdыa0Jz&Od(q`^T2OD|)S?@s8>o>#3lDregi& :E5G B E` 2M +dV @,9Hұw;fy @3'֘R0’PyȔ6кi$B&rބ~'OfgKW_FSJu(nm7[VE{ڛ0͚*d*xDlPd:>F $C!Y})^&.A h"T+f/C|lz:r>{BYQo?6<yzj @!šmeuGQ,p3Q 01'y>1 子UdZzN67.;k:47^2u6& wRvwAHˤE%$q8%L0_cAݱQb2Gf#R{}Jwͫ|ɯmQb:ExiX9uߖynne_,([KeLp,0R >}7٦ߧ<RHut=6>0 ZZAZ&quW 0 y"ڄLBq +`}# %@c.bsei @, &^&8 1QH +7 += ,D<rǢ4j '8P6*{ʓ!+A1$u(r DD;vDD90yx(}*In<6* +cnDjBec~zMZY3}q뀹~% 5W -1 +E6S=o|Bxdvh*A 9wbciE)\,4i!!` luf1{8c"<_0e( #̈bɔ[4l4l\ H qd !^Š;Z, l+>>`;HNdh NBNHNEaՎj}q&5xiFg 2:2JXw{kѝG|'W2 +# $_A R>2GIhizan$MrNE%) Jtt0Y((BOT@7>k@ RsrlF#mdrKs9B}CSJ ;{S;(0h\6bНxұ`BD?݃Qra"xb?R26VK|LˍfHLzz+wݻfRP-IbsO@J%MzWqbi +^0tAM-1W `o+`NQ(Q} "\fw3=Ci ʬ[ +tܨ/ ރ= 4u-,qoXVFMDn^дH j?}zIOYFGoR.`k7M֮k'!RQ?NZݏ"=zTK݌2 +N)ށe^Z:b TWZ~WuV>{\ 2S92Qk 0h,Cmj^԰/o"h~lc?:29CʃS>TzQ|12(`'Z Z`v21Y?Ne[RXR$݋,Hx +} +(*$ 'T_ RK{)tx/]vTiR5vFo1SG=^Hݲ Ĵ&N`wJ#hvQ:tm.)z?&hzζ0Tq}1h oY]kʾ|tZ._A8`'\8y7"ނFtS,CѨ!MQJpBlYRЍXbV`caMڊkAٯ`ۭFߓ'70n/˃J N, +S 2j 2yf\&wl&2, _Ze_7f\wUf*<4py>*9@׌h5S\[I-L9?t%>~(,b:-灦$JCij7 ~O&qaZ=GE=!AH )DZ(UAlY. qŁ0~; &sYr&lxgmyrȬ?_+;uֳV,8wÃ_ea J}/1/4zjL e.G|$[jb"0 +Y]ǹ/hT<2Z_N2Irw|>;$ z)]Rw،^-dMA"v:aHi+Yn('R~$Y;(9UdiFU~9}>U`sҾ^!l+_W6[?#iZoɸ4;8]s L_:{io]SUAWVnVٗN\el?[0N7ff#uU>j8*ьHK yXp? +_\_K9o6^4`5w9loߛ?iGlȈQiN%̱tK\MeU!N{!ۨA홁 Ҧ#C! A i010˂{ڑH]~~-$UsHOmHAh5ZQRC8;~AE+W &wY5 .'@'0S*T2ʈ$3%>8XB)BNF9F=e2WZIz˅.>պ:3-gѻ)7亞Lue+H:FVSIMzJy#CM=ф@R8g8ht'!Z_m#IJPK*OV>oj~ZgtGi ,.OjGamCgWd#"#7&mRV UewaΫuu -CgHZ3]T̂sS":,dgƹ&:_iR1S,If6[ݣ{txЬQVqQǞOəXbrԱn}gI*.;@ExI ݒ4RiK /7MIB)EAYDxZT6; Gd|>}O<6AԇMnп}军3gf9s̙sXf=JdC(T(K0[CFJeh j/q1eb9+c#H"8'`]51 DE&pdE )zNJغ|#WL'`9iEN\0{r0cc5dxh-?y7yC Ҹ(*Wq1.if |䭮;k wP(J8Z}Wۑl +vCt # $VK%{T qQrvl鮘XU&39[A|4oafnA޷:eK*qÊV"CIr 4Q&CŢ 8n2|D.x0J_$q.p\`r+㥔\T3j1rBdBA[Z|;\UCK*OTV"RR8R][>1mb|\d|[Ld*W0VW2B9@ 1۬垭:.Az>CM"ku(hs@2;k;1ͣ^hX UwYFнj=cu.J63b +k@{E; H汧!K/V !88r{T*^pA"Y;~/9njx$#`[Ѹ'$pڢ`u캃f%wږbp/QU߉EM!0s"AX#TUV=hEDW=^EL' $zpsx]LEExk + Zy8$mXDMR3>1^va!r9,a||*72=d(YHZJ,1*Ac4fcc SB\Z%LnXFcPT4N N97"RGK^\KVpަ>w*Sz+|&?n?]V*ԫAN|F 2 ?'N$ +q/H`xòeO/;/r~+]:u[3D5 ~ji `aSZ+CPA* +B#ɴRP `%aL uF*.[/NEU:G Nu$A!FP(v㧧[tcPo,I":NAnu!uWZXN֙v#+#&9yY!ͳIlZ% F&t1 '}ΙmK4{y؇׻Of*lXiUcx6IW#Z74 o_g<;MK/4w.Ct%rAD΋٘,SQf3[I54͹m~w1|!BzLя.蹢[HдYi|sH'ukry~pB.+ԁ>ž sl!p5,EQK 8GC]?Q$ys}m_i- |ONŹeBa'y*v (=fdRޏn!Qn[^?X|>߿ZǦeev=-h9"ueVCfvx?3(\n驶cHq{]çW)vmkU y'8W0[/g/Awg!tSD!-CύM6? fgX٬e6ξ%93A!+bn%騃EJKo-tnڮK +j%;t!9|h-dZ,HӄC_zvv:4\P p=0 cCo>JL8[Ά7iI +RB~ߥ6fǧ?AW3oErNϣV޸@F/G#lg'teοDߌs^M/}oJhM_ JM0}0V[s?@ݠn@UZj6]?nos!pq$!J R8UHDQL&/*TN`9pAIc$ hBjJBd]LN[ar|0KBecx2#(͑"&J ?R փuwaS4VG +2(&f֬0 LbsjYްz0='U7C6z1 r\Ns;0V +;.bո]:*E'DߤޥY=S1 kK]TCwoƢ09\k2UhRi`hf̱HгJUUZkfKbZRY:͢7R_¬2UT:%B3b +rL4Z^_&5m@g6"JS5H)9Zn@JgAkh9BnyN;VV!QTs<}-g֛Uf%c4ҠLfAc԰:@XC|r9QYg,Nn( +VoқLF-*-)Ya#*87U]B#VH}ĺA??B;ԠNԩ:uP~vNk^'SW祻 I R(ju_7[@u]0PjA5c{UiF^aQ@+^&HY4vF +td^a1h +ZT&^wBTiEd + TZBGfUR[ m>y٠ovSo=ËSEp2s{gcPu ?E`6|njSIqJ#wÈMbyYwwꡮ Zu{'?=w^?7k]=^7Mtj@Wcz6yy};e=6/<>lf _9/W-BBBjU,oz8¢70!N4}#]:=kW7[&#~Wj:W_ꨟ]?ɗf[me 0K >pO,~T;}>tÆW_>Q:X{Z.RiidvCʹΝ,W*)ҨSj-coX"|ƅA7a=*O^/?o^7/*/3xrE;ǔ|)qc59؍/ݹ[k O=F۳l閁|) E:} iցo \EڛG_ㆎg|y.?y˦6='˶9>v>=L|ya?Ȟ,kO)zv9É'tQ>x紦":(F=޽YgJiA\u{oA C i@?Fհ|ZIďc34Iv$ry>اFbDZ9&s?6nklsɐk߮iō??V]Z{6٦t^\o*~~dD|H5)Gٙ.$u scٹgr&6ls\|}o6/L)KFQ3SF&lN/ύa/^+XK9cvQ;v5/uMƝ[gV,,5}WG-kk'5#v([[o>O'ݶO~sjґ]'Ywп ZH_ͭ;u{OXFϤ/{gq)KCL"eKc~lGe"Tf(BBɚG&!R!Y*ts:9y='yfk}}>T( &a|靆Nt"}zlM8~uYXC*#mn85xU6m~1o>~NbI{,]ާJ7mèXFrEScm~f#/׆|^wyix:n @zݚi~$c89RCrK*r"6.OB .Wl5b& A{奧?LޕoScۺ"TNGamqk oZtjss9ql L{T {]+pC}'G~\WK,.JK}42lpiC갩ɺ\9MSHJ ãDCډ`t,o *|Go8$igZrAd&EcsG\CJ~g:,tѕg&z,ZjP̧-UPZ xKW_})N@/N2A)"̿]OgkW::t!j zD9P=_U1>BeHdtLdS3J7nOĞ>J={|zGzS6`q]fإY^'3ܸ^FW$M7{xR:rʍiClR%X+kqOrlLv 8ߙ-a̿df':ǃ8" @*p g?8/% 8p/e("a_0f.KF+h9-d?UJW1QߐCl{}_LǕ|.BhdraC}V<5%,[ۑݽ?.Mީ8("(iURb!ЪLMfE_ʄseK?m>̦`a'cp &`,Dh*@2-z0Q BX`/@1 fw _J(GN#EBh~ː׮m)]yDrZH;:"5|v47cL\J[Yh~ɛqcI;B$g)'w8|cM׺^qJPDgZ'ӻ[ǯN\ލٟ6B/YD7޿9l Q#vDtre5ѰcngѽA/޾'>m$qJL7F_2i.p2 +#qA&?.|?Hd&X"`2PhTT*?`Zsq ,okcH3[\!DU^g&ef\ʀ/y K0h,H"KQ @̘>DIdn19`dϞq֏"a_c??;{#"GiY +nFOhk9Vp׋iȽcl\#Qo:ߦG\)~Im^0z |"]~%r:rtdio1^bc6Hys-㨢ߋy?  KŁ4 +DJ`C82 S?ϝR7(?<;@ba_ 8b-#wut{q߭}谊8˨}WWM+M|"H@,Ft + ߪJoK ŃoC1Z-"A>`gOqq'\vK*@UΩ~ȭ&ϫ.Hn myꃣbؕEʼn1\}9+w|DxKLM~گXAk;x?pTZBqD mߴ"*X8}R2]:y-bB&>ģ; 7;I>ZC"坶QYXqBuqGAoJt2y5~t(9>v/G|Μ(ե{j>KLm 𪓩xWnm;F#685m'+Jb w7q0HJIhM)8,z?~w a?0_$ 4,qcnd _yf7 +:fasES1ϐ9@Yg7 Lz}k/wf.!mǗշy(llgOyU ʹ+[i@.Mpdqԫ +}jG2-$s?^~O|9NmVYwl,qxM^t69NW6ݐg՞ZO~F} +__/O!DEgS#jzu.ez47g~l_J˨_[Q5+U?U3GjYB<(x~܀`fc8'}W񀫾6]Rxtgro-Z/+_}rDw1R֒sQ=6˺[HĩQ[exl{+^XR}-%~*^:r6>!weKPyrkɏ.*%;Zϊ[Z ԥdl.7W%v3dȷ'cLψޯ׫ȢƹU^Av(==!iP2iLvK]T+eӊ +^Z ,A\t_Ժ>3MyZNy.SW DUor/ Aλh(6 АHg\>Rdv"ܦMጉԠNőwPխ"{n1E,ɮ1 ي%dɖP,!d.BRY]1cs:~y?Oݯs?g~?߿u]\75T!򑹧sv}Q[\YY @hysObs/b5lK/co:H!p0%@x< _^G/#C[=IUS;fd?д~1X7T6v6*?K a2B`xӗڛyZ7C ==w.n(Coj ykƚҁܠJl/ 6މNݩ2 B/ p$ aP$ Ƃ8(N JIOHs6#;/}v1cǺ:bM&KEE<* +7Eȏ[JNeo??P< l@x H@< BmH8O,_rX?X3? ?`ϯ0OOdg1ڽހhٔgO.MlW~C'@Ȁn⨂kLsz훗xГF{|Ƒ.(N֖L1ʹ[lG! "X(Ć#pHIfVNw,{klՅ*,8Ƨ-(|kluw%R2ùWǏl>Y֓&R̵͵=5?xROEp$ݳxSSUj5_D.~!Wd,L#Yda [z5oK\#K ,?G+5$oܖcsFnm͜5+՛PMucvH-)Po#9ݾM(goZ%bn&+SH6a4̺&@#V ϿٌN,q]7jVd"x1L`ٻJB +=WopMKa\Vϻ0Lo["@3. ( w`N5\hnAvuqј̓:PKn?*d%kZk\*2>,Ss2)Ky'ʢ|GQ25nUEC;e6Vp <\>bt}iMS޽l,>B_/s5XITGf-h%1F.w|[ch}J3Q#e^00 Ҷz.rpv +7PP4vO +n +w˟a£ m6k7ΙQm/:抾^z)'LK˩m#ͭ<&a&mAobqgVkq` &`9u֌`dٮGY}-aV{0lm_0/3k͓P0G[II݋%AN>:mڥkw(͊BKJuQ$6v;JFԻfNIO RmKZ4*LN6᨞ :@ +B{'{k]FEWF/y5z9 gkLԙ6Fk +^ޑ*֭JzW ;^-VпU|Q Wґʧ4b-{y1؉~078ՙſbn;wTZpo7XڝiC};q$5=9HQ (|KWKsr-?h"7b񄣶o|**%ܾ2igK;9# D1K}sQihqBUJr*C +X>u k#ia~sg#? yMS9= +Tf`(ZTZ>!rN1P(1,Z2T.5׹񸎺uխTey5O[Be=K'׻'Q3\u4 @6ɡ)K&wl)DFԐ^NS}  ̼4YLd^H|]^hmud6z7.QS-7 ub)OIbgMȞYXj }]ўαBUrĿ?om_^xR/7KPxl%TbmF'vIO]My*u v-Th9u86#Oԙ;ia"wu?W[围|~c5g:PXT*Y˕1JߴWif|do 5K *w,<]Qʁ TY +|Td\ty4氶p~=))!ժ p6^qN'Qg5pvttfwLkhkBk3= Oovxba%ȅ$]J*p*c>:_5g,՘-qخnu5X͋s>{֌(~hrqQM@9-nnm'mrj86A%N nSw׋FtqLKKZ4J }P$Q=]e49RiqާC:mXWg{9GceӠ`^0wAQ 000C@ AE 9 H$"HA +HI +8Vr4dnjzWw]U_wwww6cYgG n^>y9R(돦kVųe[;!I[{:cs+h=59T:H7`0#MXZr= e?gI@?sJ56Mv +( T5sK0[ŗw\9 >&klF_!$c|azSx3,]еqB]GN=D7o:U= s}d_Gl`v~qi)JKrw(3B϶d|Mn6Uu[J}x5dFT X!2RH $A"m RI kK +N_?[NßO!6A_XRS7c?Q҇{e"߼~ZyV;J6bL9DCS/x~a0Hk#>-wzIqH'F[:RȾòBG}zn|i2 *021*l6UT\u\v"WBJP'_  + +Fm$) B2 FR +<?/4_O'/bfg{y}*l4GOFDH6VL\ǦXsl?" F2IXHjwOtAie@ڿD- ZKeЎ%q5n:Ype7IOQ;(:H7$guN!wBB@))k h%`k+ o=[a(& ?l}w.)C+TIbzNOpX4m\zC7DYM4 х$guiᅚ/ATO=تSlSk ZZ=Oz,~?<=[wB\J> h$׮츠P2hMƪKnդUJZ @upkÜkŭknQ$pG RTwYVÚDFJeK,G}.y F ;ヨ Tm֖M3b8#$ix7C','ggfC^_4bWpgzmPp_ - *\KH"?>m_^l= ;(9Ō6l+:52ngxoQZ7sQ`WޓEZq" + vI\ +ޭPٗB\go5>$&qȚXш9k$|I8:-$y]fӸdծ$/ctY ­.IFJӖ)M3ӽk +ӜYf=dX\(pq3Fzf (G,0Dy;;3DŐp[IizSA:lxdʬK"P[e񩳢Ъ{!,1vf*%oeOEDo'>?'U}i +i-4cI/aݥ"s5]Iki}&)ѳA')AJK1JvQdV-^³5mn xuR^xs>DSw[}PzC? 75VK2t#ş3e@||>p[m71VoGnb[鎒]9)oLpT(NNew<8'˓ikn뷍1; ^Uki~Քe@hg ~{'h!S )oQ1)=N"Ge:$h,ĜߎG|Il- xb:v{Qut@7*@|j򵽱 lMF.v4a)X/ JD81Gg5 S<_L+ z/xs/N^~&2wI)iz^+S|U㗝p_6_Uv&VO?s\ߏ0O`8W!!j^"Njet&;ٸMr€Գ rC**ax|a^ILXwKZ ŲcwG +rDŽ/B%*ۛمl_ +ru>9d7"AL9ڋVr6iʯ WӶKo_\*3dp V0h',V_9ӝݝ:|[=殡)vMQpbj=*IBBibJ:O~rV +%2cuha5Ij +6٫}x +*N[U!I%ԩ9_|`xi$e;>qipW_Y Q/ŔPǃ.q%D2TrDX[Ă7=\0$akxFu_Bg>'"Z +MrDY}6|5rEj fJdh,ͼ;="vy}Y%7D5 ots VMh>!2;_`s.:ѭ 7GbQ]5(d\՞$mWfA&SfPb4ɹC (=?.mO4q0ceiЦ|Wrk^cʢj0: Cc={*';Tc5Gm6~\ӎ`c.|M;r诸o =_-䓫;~Vuiҙ{S!rO*2Ae&#:rXaԇKl7~98Ĩ5Bfֺ{33?R3)ܽ(_>7׽|ɍG>C*a׈776. Tuݼ6fK~3~¦attZ :?V^ǎY+_ +^;lzX8Pd̵hYUѨW=l2j-̻NCY'K dis_O =_&^0yMn~Poo4+=VSDkUk䩠wL(&jXeyK~KbrEm,ϊS* +g460>{gqcYí:&qIҒdf7l8^f$;N*튑?-<[d=exꬊmd4$3!/jAI_O!h< &X,m G,mPA9gGWgk Cjsu$ҧ;$5=meo ^qy^6uK_Ab]ڄuy+ѝ}!ξy:odDvsE`NýScޒȠN>A$nm]ee0k,tgr~X4Eð 6`"p܏/d[aL?g\4e0.푾3&ʥҦߟ۷ ;Dj$+D(Bh㝣mrv͟8^\[Tbo_'Qs#VK!?B!d37H%D?^s=!f1 9|5QM?ar@y?C!(׌ktG 0FX8 + +Qf  ?7?- X ?~57[r%j&];vu9$-[rX/Q]6)<+GOh>~{.09ۢ~sP0 _t7_'iϕ͋Z1t!~oYYs2mDfJ([kr^e5Cł>rwJɤsh8Z)sf Yiw}jדWMqwva5Ztj۸rY5Ixi uF^ 7tI͆:}O&n9<6~}V꫘2LSZj0zqᣄD<?eTt<Pd^!c6=eÑ:h^)[v4KAnGeLI9֓ˊ :zgjӗ6[1 VΜf\垴6 +"_+ \"+>x 0}6*~`ջc {(7p1D߉s{IDC-?WGMNP:I朴z\-E +Cvu~K +O^ॢfU#sFZ@T(T\]e\m43S+tujT!^ʄ-Dݰu9$B S2q}鼌oRS慅 c3Q,tuAc>E}E-ōQY|mFVNqߌ?D ^ zm*Ǐd͹Sbf,$ ѤkLhyhIzP$ F;g>K +m&)OUM&xBj+vBR?z#+6D%6[[cHݷrg1uTiKv^S>h#b<(Dg/֧3[Ls 3壬6)/F0 *hl+eϖ +J sz$SsHkXE'zj٭ȥu!.h 6w0Qphɹ}F:SDx|*bpUxb R*c9plƢ%dU=PbMԱ 6v@Sk' -ŷ6(t䎱&`V%t?ܝZZ3[z!VNjIC { +ڤD`Z[pOYd_@܋̉!VsY;t|X[S+7U\'Kuu6ި5mt}xH7+tx&1`Saa IӢDrZ>;";,8Wn߯+]<6I">[Pg] u0՞L{ ~ a(7rw+cy+_)p~@>"W%wd<}]1~>ȩIhK&CT钛 R;1Jf27d=sg l*qyY;ވSɶ,nY]>zlM@眷3wvyb{贳E\_hoϯԯܧu%Fʡ6 vDV`I K^(asX@mf萳߮rA} ؕ5S;0{sMII,;oWҳ{7ڊ_V4~߯}E0[(/*kx5U9=_tqP 9],$ZLU|$/x + < 2Ѿ:5jwrIta+C[s#Ow6 d23&9kDFVDZ 0q,ǩq6wy߱J0f $ٓpti q=Y +R Uc ǯ"Eu;L`{W .rZ*;"NۉoS"p]t)\I3ZIuUW6M%xÄ|hT$HAHI5S~ۖ-0+.TFu-@LL+BE9t51BIԚC`<=DK%$'6$!l53CD m+1=Q! 3#zaξmuw}>kux<|>Ch(Pۃ/+||7C *_PL((燐Hc̹oo^B+ [NfiwJe%uGAnڌc "D~BdC󳳘j}/)}D'0O)aƠnc}NisN1qGP`psYx"vQ\ +ʮl{aFJvwٞs~asA<70[CDO F/+%]ٰ|)\QL]/'ª1bJ&^XeBdxYrci;ۂW5yqu`(vno\Z|b/C ROƏ̿Q4c'F֐QoO_id # B+$UM/4xFp+c[CTנ^Jc[sTaqwkߢ-}:S-W0N܎?D~a>B- 9TۨԌ/8!Vxh4TG}\sCϽbfzR\B.G${%Ry~@,[h6eL;wJ4~ &ɢm}C*\2MgOnb%1uϡI0`̏+] ?xG{@d/ ={?jF +CّmʈS _EPvY S-JɃk|-uUГPώ`9 妘pSfjScCxFgQ%CT~^Jpbfd~Rǎ)oQfsæ*?G + +|u|薖FK>mf(/m8S/c>'bZA5 +4$@&dt H +9M' [^ ̸JbB宠/(Xz**BQ:}kgHV +{gݝ6a; ٖeJfo4%H;816"j޵So xԉ>$iX]suG@\E }ktLD*=nԳ֬;o sC ޓF_l{TǑ^!@ȹ鬡tv s"Ѥ=ix)[~2Wh)?'T4dܜ139E*s$q]dqו}ݗ?! rs ;y߫6Dv4"#Rh #yG^Zsh|i,z-ڄu <_Vxi4-Xt6mC|*f_ ra ا2vS\s&AQ5>|+ +C^GQ] +X٪-ȗYBnC{tc,kC-8AB2AӸ}C3@zfL΂,ZG54oΑaͫ5 ?H †.O_T5~>CT1o^GLA~͘ު#ץbןĐ|TG&WUxV yw`t1EΟOۼ?)V#0< RT()@P   T<߳Ww?R8??;ƖY( `y($ ' +_r +N9 "D?tg8 "QRV=e'#k/wYob<L8pZawlPT{ #(޾X0M3ȷ3UCWV4K5 @d"JҠؤͶR؟0ߢէݨg[(8C͸!gFX,ƘL X$e{-ih?+OM9Z FXbyΉ0>>N +݈3gqnt"gg^NQ䓍鐖`ja~`Ym8C(>̙IZKAJ*͑FgAFW +7B#iiThi >嫸NbyVBCr32u x/聗+8|^tfzudʘSVw b.ElܝnAqܘWe[M5Aa_z:9?LqbCvUI _cmr.r قZچl^~~Bgd~]8MzYtMAtRפ#vI̟;3,췺kM(IUzj $28uC`%sJWZp*KT\}ӛ +FfZ;O !ߓxQ=q:.K>JMd+ +0>q^JVbM1وd_ope ;r!"c_ȂK'DvfԲjs_Ta޿1l<LI!kkM Cx+dz_a)fM +A3;p6n`НaVN*nYk ,O > .QIy)̒O@w+*%1/v6\@@o4i؎#mDFrx1vZZ=U{&URD:B"T |1.u1r%!Ψ|T|)k|z˓ *wykzK9yf)꼟 u4+G@"c VK`|wI*w|ԫAL!W[Q xymI[is ǏЉѰ%( gt ->5*#[A4F<:_gZ=P*d+O7⻦2}F0;lڤm"(:DPp1d̈iZ 6X6r> 0ϵl4/Κy#fCTZ5f.X^V9? GQ/g +Ijū{ʓ2#69w34ZjS |I%Rnj歧=IH#:нĨwAN2+ }X1)qA/cЖvwJ. +d3V[ +g ?l4*8tm:Xg-ML\)jZ &lom=pv0?:w5؄Ңl//%7Bv\tl;>VBHs>6%3)>N,~'FJ]nˮPO!C#lw4Mdz^SP]{0 \[tKj8`y?Eb؛86e:@Q;d7y|-{!6!ĔZ5.2lq4^L8L'{JsZ|uN6\y~>D8tvoCa b9V0 rI{-+Hw.h~R8vcLb>~ʧ,H'0Eǫ0y+s}>G;RA˹xl|cہGp$~G]߭ASϺR=Ou7݁gSenHuDYh3K~*OۏW~ű27yu]zFWjSL+kB!gc~lkFjI'.eYdpi}#/^W(盺|y3VI@t À+X +1XcXgjbߖ}f`BC(O8,TFTaEΛgESY΍h=\vYK O; ++uCwCJ̾q= +EτE`;sw6^L1Bpܞ[}TUbHm3>5`9{Rd0ąTToá\́ZdI5$-Nb+;DR@xU%yhn,RʚϯoqڨEɷbB +آ X-7߶kh&342A%5PV$K'bsHkǧLda5Q|# 9.4W]}?Ih/E:l^`dgGJǙGiύQ>7Y_lJ+rY+3豖T$r_[`7k_dQCuR+YeLc9/hEEԂզ'U~ߓ" eeN[ +XM Ln"l|DTUKwH(`x^'.( yZ/doݣQE+ϝ@*+ͨy7{2fP; +pGf'oFZd?ɗz̎XjRU~cծ)HJD}4S؇ڞKT`C{}Giɮ>>$ Vq~q05QS3ߔzw%_b|s!S:o1ȁEVٗUm,1PY/bC^tc}m`FٕwXqg3r 1͟)" :i;Sj ,ɲ~fG4O0ziP +=ie%V:pN+4i q" #g 2g\q\VMx.v{{wB͖ +ׄ&UYsyŒt,}}%#X-}VyY +jK ˺C Ái0YK&(UlmGV Ds7Kb෌Bn xhuhlUbMdºXal +|}^4sT3G$F͓C)m$99O_#  <du4ؿcKJO?gm=*`!LDͶ5Α䠁 Ș oM /M.ꅶdBߋ>l  3@[QYA]>m9I3<|bL2{(CX,:m;D%5\̤WgTGh|dM>iؚi5Kպ}xt+DFqo\Ќŧ2T76ci;\ˑbm;(;-LŸ?5f)u璀MG%MoC/ܓF֞4R%sxrt2?Z/_M-^[/?|-Y^Z4bwv`u`6BHAanD.{ =^e~.5PZ:(k>cYMKui2N*YkQLRצU?mݍJZMZ3Up`Nk7[.^nXX4^H9?bK[fO=$أo/7-S;n> ș~%75JZP=.JuLVw{׿f" yb٪Ȭ2lH?S1Fe9Wfݣ}k7 t;"1 iCi81sl QNeFNJe-ObY b[|DʼnQ͖I +ִ@}ޞy#5[TBb1/܏̲TJ i)0$(UFL8|:G+}zKBYѵ}o h'&NW8f@zeמhHd]B҄G+E'irFg eo*Oܠ- ,œB OYRm!Kf Y*B-Y)Uakj֫F}^jinzLK Wce t>EPjZp&!|`b߽D,Jm?4n׾tF,ܥ)'0g6.Fjg𔍣HE¢G 7^$`;rCҴ.G%i$f{~~ +_b]baXS'QngrUM˸dk#3(a;0_>gz|8)$oAaʺێnU(wyDjd0XŶ2x͏m k rӓ,~>zWуwTQ:ia`N4\=5ٮ[$If:xexL1 +VHڻ^ݗֻP,Yֲ$_*|uلKO fH϶ėݢytwx&MٔU6o.O`s:>bĈ} X +>ua"EY1!Q7VcclNUUȮQrI8uΏm_ld9( +Y@]P\8Lbxx=}\cEf(_R?WgŪ/*rOL1gE0HT#V#әo1ON|oE FH0GcWe kdخABwEΖ.a)8| +H&%oim'/_Y7tAKI"dwEm2/WRҟv3 ֹSG7+msG8]{h;gKk,IkHRTꥭ;Vk|[4gW~X@g[!kGň 9YphX#!M7FGJ7X +Zq&4eW$x4* {ʼJHSd3E|ϖlQ٨A<ͧ:kžpNYaR+O?ߕpH*$(T̾cWĀJBUks?a@)MEzv <E7w,ZHR:g޾WXl>`͋3VuI,WA-|ll ǷW16 I][$z]:k6\)*2uuy=­Zs:ă4$lő_쀺?v 08Kpe{p%QtR%iB _>"jJFmS~GL\ŷhtYI$\kH5v0q&d2J[~Ka|jAeFR#51 +\kY42!K.ٙ{'o|4Qr:b#si+0I 2'ݝN Bk{#3=RZn%=|]6ϋ $E]x/EUу#=Qhyw%NvAC(SVYy h=K~8i1v;3mLPiki>B{dn2zx Gʾx;%Gf/.Fm3Vg^R +̗AtF-LX6XYv_vp5ݵj~HZ5^ϰvwtI$ژYhdq9>1wo*,bݷApT]پJ7rqL->~Eol<OчMIz zt&9  ysfN9jp8{ƈjE^ZrK3c"@U Hm~( U +,ڹ|1|vb_ş;r:^{pypQy*{hRb}9r\ѯ=TaN0V49 +nJIoT"xgy:~PCX3dtE(a R0fttO5ųz"G;^DDvfb=txͻq'<梛 ++6?<yqKP;vjlW]R慎[ 1&0"A2TC(I9a]G(/RR\%ixW4|n%| O^`$51z태4)m1.U2 +Ỵ,=FHymJ_4LnԽ&p3UK uA㍒_b)^Q\I%u5570YOÀ[?V*F+_r+3FQ5+t4 ݭzfD3dܒMr}КNsc2I T] s$S.7q#ΠoxT;(ie&;|Dr>njnA >)3ptvnC~T 7WWPA#0FFL%H&:k# +|G;2'(֦Əv <,ʹLPB{>C_  ѧ)&Lsh^$q; vMm# '*@@`'[7AFD"*'v#y#m=sX eVuL^ξulWpٓT+:jƃXސlA^fXxҰ-kiir)|v 9ʎT)P^hrg F<* PAPxa핺z͈[t(5ֈF*[%-3D'wvknYlW>/IOzThZ^ +瞆sсY[(K9ams4".)K&r!#~1=¨4<[&RjcHp-"G7>k F7rHXb:?Ap"j#ʹěgb7cTV"\~I8Hn6Ku;ևOTN.8yewÄ[3nduɂ +GaZbP9 +}WepiP.̼-; L۫=In%hM >U_iGٔgimԳ4ib5ۜ]rݻr#}ޤ*#RHf>9iTiύl񩣶˴TY +Ņ 9v5knOr%"Q Y R&fS.Ti#@KߟR4;⋬k\uhыÃHwjT2=M!km*Pk@nIBH܅ڹோɢ[O^UL'l%L_ߦD36k@CS֌TllaQsj:b>^d=o+S.ibt?넮שef<[6o=Y0XsXF^mKѷ˕_UPh_7^@b3™yT';@j!f72$һGuI#D57CiC[ 5w}/*ihJSy.1 *&_o'en$;cQn~VLYzǬyq?4<kgL8_I5ŗd#D`_ݽ8a- ?~X>] 2&5$LY5ږ6`]\ +Ni$}|%GR>]V.FH.&/;=>e';|$||/&zdMNq핐cS!׭~v 1 1` zDU0dgJuqq}x>| |wb4"KuBb3/\lK$`xѸ5J+-X[0FSwp7AZLA5OJY}HEָĶ +(~ko:B̮`U9oºݚd14ٯw:~}#;]mBVcojˌ`b\@pmDoKRT%4 z6:JhJ٥7e7Qgo4,bTk6Co^&^kG_* e9"ݛm\n kqWJ.iYk>ۚ +(34Xmg(ܯĪz561@=y{adL]δp$&^sm<s՝H3Zoɢ gjn QTB)vZN52*f7Yiu J*WsF5}ՆaZ*vH80|SD׵f~i&ZGY#!ݑɭ~' dk0 $aQZi.2VNoIu)a͊:kepYe²|j(>521^)af0ZjDkozuMp%Bnno6^2j'SqG-o)v+Fs1Md#1kaWY6\؟XTTzqJSߢx"VM*[}+n2`KS +-f}}\| _]|0OZIh/f¤ޗv@}>[:Ehʢ><, x@Ix/=w]A}"J7e6+x2WbP|msy4Z7f#>6t 1W;cCCP^ّE ,*󁕑bɭ(}+x$l#q#)#G%ăOZ&? jv%m]%SVj\D۟(#3&sOz 5{bF`J@K}=xh@MEajSUy2 PdVdo9Ёﻇ,jվiZ6)'"(l,ʮ1M}Q,+rõL3cg%_e}uE `m{`P +ϨQ,U+L\s rQîbM\dh ц/YVPs:Hq]!aַ\Ia&MG#Y=&{؝U~+1 cH=Hn'" >Id]._m߱&(2 qԗq>,Up>^aZsAnr$wGHp^c׆~jﯺ?k=} +B;e/wND_#0lC(RAuEVv~av|j&NEEކd!fr=wg1誷[",lg]v'rDYQ `"Ev#Mh7:ax +R=}w9Llkg<l;iQh- \JPc9]UB9\S%xkg-6%.|Sno{G !4wBȹ1NΊ{mڈ.ݵRg,[苍iV޶U?,I̢R=4#duC5m=<Ȩ+ ms#$8`n=踾<$x\y)ҚB̔ij~=pbTd*j7M;M#3Gj%<]÷~S* wrL4/K/2g;:p|L!+[MT5ưiDdز t˾Mh"@8'nܢ e -VջJF&dF | )X_á5H!GGTR^wqcxl<'9o䨯妪7q;gc! +0zt}|լ7OfÒp&yrF&^w rƸTbcms +ܯ +Gafmm^ԝeHZ] +'-=rf+Y]c%5B_ܫ:CNTApLPrw^36gZ^/YWkG( +C;#>:ע3H^QDnn{ . ^2mغś] [NU%\hv't&$l$u;X' ۊM]ېgLgF)>yE)%e8GLOkEeyIc?UVTE>i(#/^rJd36c/XK-giXԜkVA",PWn)/(~~NѷdiDA7DwhrE>ȼ .gYA-]LJd{P[Rzڤa$Z+iG$mDo-28Fr'Fpm{eBIɰM$z -}*3|-MRn2XUK~{wNL$eÍֹyk-]&dTḑ" +M/}U:Nq|}̻*2z8 wwqߞջijIk+bC{P |] f`&<(ce58<Ƞ+:BЧ&Li]4}q *G:^0 +b)-V#pބzWzjb1BӗԾIX4uvjk~xh!sEA)D34-,J +~͸}pdh;u2F]zo'W;t;'MQoU)hgy1Ȥ)2r T}&|{=&c56Z68o2o5 e(P^tp}Nfy@t!p/Pil6(&N.czt(-,w0<+vz]r{Kq2.wdQQ<&㜹xB ̦uoR=V3uxc_v@h^>0[!;l^qKP*H5}CO$m[KcZ""5k*TU,<"o@l{~'?$ n4fg"AIw?ڙ\$ʓ㴎&hW^՟s)6_o:MY/8&|H|Qw ŪE (^+}hJƇdT wυ"N#2hF8ڽcDDz70?΋XOI4S@jƓQoݤ;PAMqcqcϱ8lWwiv *:9$"Weo#,$)h+{6Q,}r)SSG #hA^Fe۫od(}dh=V3}f>຦l= +xD;>0!T9anذVq[=rK&MU #d"ɉ qn&^뙰uM% 9t{ۤz+m]xmmv m5*U Ֆ $hKJ~Ǖ?-M\5쿾vc~)j{l'Now>\+IEl1u 7;E%cPDXT&_3ۃw'ۯSyijNDL~XSɽUa̘oKdKqVcO5|fm^b!M;;;x0ex`:iGyKH紨zש+Bs)vih&+ #nbHJ1[CJO7GbA.7`FvUUFuuVf&fU6UFv0ȢΦffScabg.wS3/?|jWsaV/m60Sgfbd3030]bd?L,^edgbwV ToPeWq ?_@r#5ݿ3^KyUo0ӂX_}mQ? ::?X聴,l̐ol mOpQ7poT`56 D5YTXYX45X`Fz&Ku t&ښRr +dc8svFȆ:H{[/Y31B32 `U6^C]UACRpf*&L,,@v6vZvvvfz6V Peh{C,C o,2_F@O @&? eefF_=E,㢢5_LE33A,DY.~Jdgec20#b!̗./VBX/?.AAnM55$A!Q~a)nǴH>"&FxI̍ UiL`3Ⱦ.!]Z5b{P*J$D{4j4d|d\)Α48 V$ItIMbh^ƅ"K**&jZг01xzw1\LL,l,@0-;BrHLAz24zV44;K$ ?Y!1tHm+%-H'CPDXMK JGE}(5`3:5)X ?462!6iT!6AB25PbbFqĖzzPBH!===.Cv [WQҝt`1_!ކ2Ù guK/uXye'K_c8l xmrAi W JQ., y8@ {v|'Ŀ!;op_M + op|#os@֩t]&&&btAjZ m=DL`x*ff&mC53={Ѓi虛jT jz`kTԬT@*z6`H0)Џ7iYhO֟jE ici1d_65H UT5 Nˊ,ؓgA' /DgzZ}vg9`!ء 8 <xq^'OO'gt v8w7  ޝ^lgpq?+ϣ38\ ~4*nٵgp38YtG=;ώ㬽<;gz:;cs8gCۚC8@|h[=Ǻ{=Tx#+GY$ϲXH~L>39O!y3|HL*˙|93jhgo& |;3nhg}䇠 !pI8)R@ d\ ;».TmCxN~<>|~/ +BAa1.tu|W ! %" + XhsÏB/p C`,`!߬.$-<߮'Dȇ$,`_G=cAp~Wʠa0 88}Q2oH5xh[:` »0I :uC@&T ,_"xʏm$O0 փ=",9IBt:08Nʐ7?᜜A?|Dڟ[\>:p "/5TxHt'(eP#oE ?˛nOCJ|i_[}=< {DJEI`_sן>AY +>PQm9?P! AŁo|W~;re؇ h^'\2D\$M<)?OI>Oΐ~@eސhNd} *O~$ZdK+'ڭCʟO +&-b#6`B ߋ0blAmmCeb; <у!m aAdL1ݙK7 +MáRb-KKm*m ֿ;)>Cך2iKO"ɾ[GA,X\PL4W/C*sAe\`m=.B[ C%ndmhSiMj1 #Hjtx|I=۞JHz vœc# "G!A>;gPC[[+{шcc`A4dR6c@?i1b`caFNˣ_vOdG3AEUYZ^ ݧB>j3#_ c?+@}B~\E|E0>al8h羞^1z:PLC0͗uy]^uy]^g?G#ls><=g:}dwssg߾Pytn>8X> .=)?}v dYI9̹cg֧ϖqO"ǵ = /-7<I \'=_ 1xSqzNruz.",(A|﹪91;--= G'_:<<9y`K=8_cǯ'q?y<>#sg?<~p.DZG;ñ񿞳qAk֎/'+|q]WC<]?Y:uf<ߟ >>xԝ'>.K__ouAd1~<> e:9?'S΋xR7xo$Y:Ϊ7|ajWSg̻ 8?}RԞ؝Wa=/2'vR>3'ITops ?7|RMM~AjѨ<hir(=H1dVrj*zz K.H h&ffj?@f 5h)R7iB MLA*V5C}#=Xוu ka[CH@f窞hWh !khz4PZC)<7HH_! V?{,xG~ G$ aQq~QCi4Ci^xUMMBygUT x@m +2 +/B+y +pQyxHst?sf^h|<Ÿsg^ W75iCGbh?O8~v. 92g&#$`s^2'a?CXb=hMTT!Tlb504BV\[OF[xLc QbU6,j] tTEv&yAHaIb'De4t;8ٱC# +΀3 Qauqǂ;Ξqf;H6 +7@3sSo_[=j!n#+Q yV$r_^%7GܪAWPbcO,TW.E7Ʌ num-?@tړi{͉i:ymk|$ +qѾii|uo?j~ٟymgj~:z= j~򯻞AW5Z|䟋Qg:t}P?S5+#Cg$rk| :yMW&E'4nL_y.n7OjQrw䇺_3TÓCկWO?Qpм| |fk'.;?0]Q6}d~DoW˯??0ߦ]H |xe9 _7א?߿'~-gPC 17Dp%!V[/]c?7n?fLwcqR%F&,D]iqx:V] ޙf+h4)ٙ'c{&{wܮ޸ʙoJ?Ꮬ߶Ks_'\-iުn|ț¿Mz<}siOu'U2՝INZ̤>wqoݘe͝ OR7 T6NQׅ,mщ:\G{tc::EGi::[GOыt:zuM:k5vbC|7f8J8y= >|4#d, iAG.Yd l-чX>tЇɮ}  Wtt&W@NyKŀ۹'LwjLx^„0L bv&< gcpƄ 75v@c`~r]@HNiNaN0smG1Iw.El? ާYvte)]:n6I@|lK;:G}gR2_4}-:ehGxěff'7z[}r&.f>yL^9y6(P']䋔t M/B}͝-^cO۷I}t3аjo'}]@~ ʗ(#Ȗ1@^?K[:yJtP\RA^N{ +mސNʋimCy[c;?chlO"{[]z?ƮBۘN.QhKDߨũ| FZ#!*:ɢ`b=P/`rֹQ5v|y 7@~On>FU&SksoU"B^6u4 :h/Sk[, q "ԅ`kBBYYnNw614F@_vo߆20.+wr|10v9Jr,b!B9DhL.0sb'A0Oh64UW,dS쪣m&@Ͽ+z:Rת.7A|:^NرVG'ј/ʢr< #0}cW됭PWΠ߅9^VrGŀ\3@ScJnj>:;!^>MqF>qOF_[ + .lрSs^plYdƺS>w}}Qz\|n>׿Whu(=gݙ*ƨk,MzJ#n]XSZS8*L$ǗrMܽV]/Ca=a>ͭS} kdVLrZNּvJhh5 /,#]*hԙY>'S^ė1A@z.Oi-KK{Sw1?нC?:9sH?C_`h_W?L}<[Z|<Кd&*H9>-)4B#Nۥ4BkMaFhʘ[=MT +L~1!9x̏]+V~\4=i_X_'F$FǗG/&Dtpؒ:!Z9C>cp|2iꐧ!|J#4{i?ПGQL#CЈ+ +Dw7g޻0M_)á[)=W +7z+#$J(Z:UuK:uNi?gʋSڣ, +c+2WW(:R^iUj[rW|4z>moC>p=]G:: +:%y6ƈf7BUR獀٦UoPzĤ]µGh5DeAz]Ĵy5(l T}|A'Ѩ\{4uh(k4 .lףiCc`Yhdk׃|뇴1F^ :yPO+joUV5Q쩵`a1l:bYi4T*1|¹|,bR巡 @1F3+[2g,nf^YcbFqMzňc|l4^5 ޹u@A+R׆!^YkNo#1ͣmU9u7DW/1|8&@\t15^p`C1T<눆 P 53pz21g`%|>b08gM}T\>g1DPXH5ŮS fQ9sܻcN밉ȗk+G`> +[C1]0IO=<42~⑧qf`٪+`Z o63`zA`ZApMw̟QX8cl3Xˇi[+jWW ?Oo?X6!=߁[ +\5܁k$?;? +"}(|g%^*q}}|OD"n xe佩076Jm~5LW,kLj(]cer7foZ*4Ɉ qh ZGI!'d VHQp!eEqEbi*`xJsg[twgv1X/ٗmNC4[nzʥ=YΊ`ml θAxvN Lm61Xozw־ýj p#C AxP bj?Yr"Q.13jNA/-s-=Ҝ.^dtڤcІ w-AZʼno6M.m$pjA_Ir i`=`UK@zEƉ6riYW7)8+\w4{ץRL ,\₴f[ nvg7=ʞqm E~l@({bBu9;:@s,n}ܽ4HN Ԙ$Ѭam +S!XwU *_u"%X'8h/{ip[ywޅ*BPЗ*<-c(9ޣPcjKl\BI=C~=^kZL}AޛUޛ"w:{L61q~ P:xo'p҉\/N&:Nm/4un>yLM +vk)ܽ8r΀e~5i[h[`Wi]Yۡu}LgXS¯J=䓧o^)ofLTwRyRɈ)]1eTǬ?N 'UzGYTX Sy C'!s|5'XB@b$ɡQ:"H8m)`߃*979 +=ro˞[٭$&Ehz#@nǦ +%cYn"?2/~ Rreړ'j3'w% ~o3 +1s7'md8w"jЇyEp +R^T~;ѽR/OB0vf8Mf;fV}&T=h +VU[ Bu|K@/!RSkȞY&_akKpsRT{f l'VK}rX\^12 }X.~O6;sA=dv\n[12ue~G` )Y_޺>oޜü$v0ʝZy&YKH9ڲY͂R_>vY&_~&q?sɕrShTՐVPomݢh n[,]ڠMjmUݝ[ϙD۾-̹=9yng uSլJ, l9P˨0hFmf)c +3sFV^50;}UF<;U4S1\XjmHGKq/ņbX~4aÆ6tn} jU+ k_1Kբ]Do\QGdwǂi|ߠ4M}ЧE]0uiw( ˦}d@q^1_P>X#)o4P/][x]%bɠ?D@Q5{q*WVHtvq1؃^"t퉻Xd}bXx= DX]SX :. 8rIuY r5{='bnoix<0U_k꣫7NQ6BT5옟7xL٢^Ol}=HcYKij@|/ (NaB/Np/)Z(z](h_ P4}^Ĕ)0"WTM2OUc*fh?UJ SKS0@O}"CE^SsMLKsPLhSuyI3Z6nZ1ž_< q{ilJU#r(vUhD*j~ū6$HP- &4gg aWd`þu|2J~_WC;VA+Q3XE>/!~&\'ڐt)}1-A`_hUL@FQeF$9lb$+ӲqQu75Jɘ0&2^dSŋbdeN'"xb@$ y KS^"bl&&^b+$1*2p>z'uLsz,9;27Lt2Gx,ó7SmМ+ !泷-u!-yQn}BiVuZt*u"y&ZO0(f,ܣJO1 LQԪeHc8D K˕6Ze[pRܝ1Tgx0>U1^#}y(`QEԫ1Kzެ0 -VjզxV8u4x@*:զ#v[ fÃu&Z|QS&G͋ŃJ@&|gVҥFDfZ,y WtR"~a=g>9G)|0 ϼO4}y9V~'@KV\(VF:ns+W1녞PN5?Ij-0nݬ 5iX& J6\?nu!O#sji$+D.mjy=aޘm"ST\?|yJl#?5+&b(AnBȩ0pK&}e}/_R~@X .̫4<n<ҝH\ً`S=vC|=ľJCۖ>ٞCm!EՉ%]Õ[yi" + z#OS(,mQni{%r.&Pse$${5LsW C^F1y2y^ӌF"yh~,sbK+֬xu)/) +nSWvg_zW4{7Ѭ _SGT&v[Zyis4 rPY$Ioƥ +N"iS؉Ig;bk/į>%ݜ}u<%I);5!d>06*wN1op7 0uH3FuUܝLI6 &4S:[Fj郋-c5/281YW3·'I sG:l=ůF 9Aíyy]/!y;}dHݑyZ͎q)- X^²eh/Ǒ4 u=@FcHՅJ2ڱu#:Y}~ev]`v`JZ&Il{89n +(zË)}voqRE".9̋̏T_AĴpHİZE:Sl@Q&Q8dܘ<#m儛D`eBR\{Y1!s_%O +kq+(fò7G̨c2[쐡-䇚Fu=s!p!^w{aMs:YK+z\rug ?kSo*fg%{Dn$P &dIJ$zh$]:9=dwBM(\>J3 +7v)iy # ӱ^ϝC \i>Ű`ЉZm maQb5)^V +82NZ }H$֑MuCa+ kVz`:x`׳[Mǂu&FuI6YL{H"q%M/͢ɶsHȯDxc~vKm ^O{VS;8׳KzdW!A$Dة@8i]O}yO}rGL.znIV0}@i +dp< t:p,'twQ%KjKB FճC R'Obd6C˜6|k{$}_AL~#1~Ъb^׎s9e 6VYg/_Ds$EG[Q snOi#蛊d"Mx(AfVߚo_ D$jmpYNV5Mrx&P]ghz¡vT36ݛb`d)$ ZC,Sų̙QI-<,8o*^ϟmY"FZ:ז3PϊbhV2jD/Ro5 #鍔fΊW6h,\ x:lK")<O<94;䤘Ϫ׾ +'돭;`0!mnCջo{/t;1kGDԽz2=g }(i$b`Q}DŠ1j|^w}z\F8*JT]K!IqR"ATs+Jwjyc_^+KDO>X' ˸1LHXSGŏi(mf:LHTx&3qŚ(8K4lp<, Agy,l +KGG wE; I%Ć+9MS I#R,i# |5|1h"Fyrhlj_h#y4 $[냰W(QdlQxχʪgoKO`1^KoRVdAiidX >=CES,PMO#ڕV cߦG6E<IVn&N; ΃KKI8RXQQn*;jVFև;t]hǾ&FUĎjs@}$jf8&Q;#u)'L d{d@#^a_gj=3r 4C| ӕHoLOlHx=OQ,j{/Z<|ť 4r;CڛMt-K GI4mN"fߓ6/wDxd94?by~5hÈ_~ieAϏY!<@C=gϬP:'gMdy\6./i]ƘQj{qqxГ h\Jߌv_ g Dَ)sd>RDqX-D-qڴ +qX5$%_dl,u_~^b ɉ06P%eW[tw[>]dC!9:<;E`EE܇|YWu{61?1i7)r"MQfENKd"ܩ- +5eKz 7(Mfr +$3V|Yajy2#tX.n{|s"̑(IӰ< 8 @ܖa#J|BDfKiVdF{KF3Dļ<1ʹbSQ~hyHﯺŭ40]cX#IʝF8exjp1aֵXYAH2jez(Mdǘ &(=oQMXF F)HBqBΨ;Z QJ F _(Q?, qpQ)@9PJuXW+W>J& :ۇdI{`HIjO/}84";ųXz72nC +T%1BГNM0ɈC9hp/)lZ"YM'x(,~ŹzEEn9\K&b6Ƭ4t`>ݫ#hVҋ 'w# D6*OԹD)2b Ps5b9#SpyDz1i* +|6W8b>_R %Kn?>bT)܌{젫Ifc8k>xL想Ӫ~V8y&=۽j3JSKҽE{ .}1"39 iz1"͋M@"D ^e}1O<}6) )!}u M "!@Z,?HK);fvD|Cċ>4ѷɸ쇑Ms<} p Ρ)(!y{K&N4%rEPP)iU +%r_"c$p <>3p5R{=)6ޡݮ0Ǻ(*TOϖ(zc;)|7򴀗&J#xY*ΊښEh^vA1.YmK4֛Cz"M:s~ʇ0f<?p(c~NK?,aK$ +c i%< jk +b V9˦b(Љgk )e|_zz/՗/6f/iʽni)ҔsmUoEy."X؈ YC(q5Z BgaÙ2cRBjPCy=$Ωj`[>#2D#?@d{ /G]" +_sX ڱz-%fm~hv),mlx(1pJZ#/JhRmf_; u؟"kiS%gR 'u !Y:%+xiyC'Jmhc/ [ɱ/zwq"ݢ ?I0eF*L"h;;9!Ҥclp x&%`I +a&J"S3n|8~HI%q +[_~VY)s^;&R՘|>KZi8jū21YU$׆E<^mpbWTo țan3?3]f0 fMÓE#CA*({E2v,xRqR>|?Cp}]7|b.kCX'! +5_盓 UVT@6@O*m76+*kV4wKȟh$Rk*,a\%B9\ģ.VV~Qi{u!!| V VV9`/0' +?w&l*ylb84tB۟!O h c!o:BڱFI|58DБ9ywT"xWAFpXY]/O]?*U RRv,.!4,.^RpVE9sWmkDpȡ^{7I߿ +ІU9'Z 8W#5ʲ,YVI]hȘ,x}659޳kXV^eL0/]b~(Gyq@(QfUxGH".cN<~) +oF#,=FbO06T0A7CFEnҊbՃ/&&g?Z~pV[PW~av2^lSŋ5%F/2ҟ/kgL&a}ϣ90(.k֭eB|a>&("?M_))Izq2=OVW[T5EBxVA(ڔP')w5vsdp?+a^[EDzdC&X}gwP׮ٰN0ާV f15j?·-S x6r=6!Y=Job597~|<$;'zA@3OZ=Ǎpj? =>n7'9٤,fwJvҗi/3X cK(C٧bt{StuW`']Z*G)/gFqnxriQ\׈}֏ +uaMQfR32' yEI(ƕC9w V2&8EYUAD(4.DpA.`bHNC*$v ;n[qb;v#sXћc5BL6X}T<*@@MTK@R="vna Vr4=q^X|w/ ,~q+ +9VoY$J]bȌ呖K<Ҍ\%g('5>_lQ쒚:%M+Ӛj։y߳z#ssCjMJf577-޴da7A6}$ćg< /Qr/ެr:}q%Jȵ/ބ푛FV߂=kqD̜\3f%8 AKkAcSl+ڬHeT&碻VaS;8f=)Vۥ +;2%0=,@|KRG-9SV'mou"[\SbGpHwZE7s{ֵxN%֗+BM^\GM* -/%5 ;]ric1>^{7KKiH1kCiˮm_[@}]%#avKɩvYiz {]A RlP^RnFmN*)b"AbhdXlQ\Ӿd^ljo4B[PO5:tՎA&N$mTUʼnOSK1{X2u9tݟb&d)%smj<>|rPWKxԁDclf.sVDsP?)4j϶'\E3QdQ\}QI }ؖa VKn 劃(71ie*Y"lqȓF}i|~,3_a:'Q|CjijR,Oqt(r$xܾ]Ge*A#[Hf=Q})q__$v{u,e&|+Zso=m~y߮ l!;AVg 9vu;0UH .&ͻ$+rPc-1[L6ꤍu-C҅Iff*3쇊T׿^/}j`VI5(Gn + @piAn -oё͔tD'aNH0c)sʜm rO-`ŴY$RvJi{}:ܯMz]w)Zɘ ߺm^n"R9'e+p4oRCs$h G T: JbXE)x=_zzb,SK*>|>agi 7Ks)~YfSR%OBDëD۩9-ԆhkfYV ~ǓOqH `^ >N^+}.k8.g .\s yA{T.T(a%!7nkh,%@efkp?wCp/ <]6BE[)7ka~Z2^Mc }~Xa ļV?mKkkT`nb|³z Ӆs7Ex0=ާJ"Uj./SW Tɏij>:nl Fm3MHuO> ܮ̵tI[@Q@[mםnߧ Qsȸ66]"q_0[1;ζ8C95l&cmȫǗ\A*zWɥ8ݖ<ݭXdӍW0w_!ij9ۖ.Fܬz?D1N~0}7>p ڦ3ᴺ]%7Kj0%.ylt W;FtvKA=l4nLmǿ*R5p_qǼfdws^[0G(iuh?!yP]NЖs[AvQdqHWڹt ϺIUZmKh~-T@cYE+[7룂TF'^߈*_p3.0x3ܶmy'yb#LcIŽ^|]!Y#Am=\ /ƚlP /c>!sY"9㽳9y39^?g|=x5Ӌ>Mk7O9/RM38Ї-$}ҽC~W.gw@?ބVxxDIF} JnޣXM ku/* i<w_gW>yL"c[ G4w‹3^yT*9dĒ0>DH^ +mz?}PGE1,Ao}A?ʧU#AyS~Ӄ~s^qDGt_V 7ϊoh 9) ԫX g }L'ҏ1_StpMERC+C-g>P}3O8lՙf'V,^KZ7.?=9OiA|ܠ8KۋTxyEg=}/k Hk~s#9=({R6ʢNbxh!x#Qk~"4kgG ||z9(J B6!k^8w^,|b»3\KWK?q^k[|#+wZBM_ك`M Tr*d1:^_juKGW +_0bKna.CP۾ +"¹P#G6)n9Fyt!bDU +wBN+"7!㜻u7.`6}t qn`yUT4G@Z +:Bí,XM2W#|9 zJ=^9Ol%u]<&7CNaVŚ}w1^ +7:wCo +A<&,>g\i\9IJu e]r z봮1NG^]u4||GvC%QR/%msiZ7a ExVųpT>qZa-mTJ) '7Dm9x=-(DuK4(O~ `89L ?8}oJx\Od {_ +k*# y+a ݶZsϽ25{JᢐRl˖•t*li\daV*6k|6:> 5xDxIo[>dS/H{h.~skǽ꾲ldeu)z? ,S6ze#؀lDAO؄߼cԻ>yqՉ%z2?:4X3vLvຓYAݰxdv>}1mw![WQb@TR~-!=1h׹sRf^6o x}?&C*x..NgMz5vmDw-4DFqcnyK= +x|a}9`HE*DӘʠ{] E.p!B(u,-u.oos-XU…'u$Ee.*w!TП\i՜P^2 +@ڴ "TȧRs]mnX#3Xnf\!{T]vKxTW \Dd:~fDPHxk.G*pYsܶ$8)2xՍiChMAԃ6F]F).dK4(5]ACy.üۖ Wc9Wj]暣F(\ +mF T޲PmwuHL!w C*VH[Iw[A] +.t+C^u3 + U+h Q5׺hziWiw`dhthAcLT}VKA..jNC w2D1a'p+ѱ{-tQA#(hkR]3+9vBO5 ֜Ƽ22: 8Ҝ#iykҙWquUnRdU. +uQ=@g=pC^EncU+xk+tn"hO>z#qUr%~e#v3ntM]naև9" ~6*-@,s=:muOb2\ >f_sy{^Emڑ>~/> ,hE"xm)}UB6etqw<{LLD3' G˰XԎqBM eۅb;61+>4u_ DX m]G.2ţ66png=a- C V5\j%{l.1Gm,íx69 1=n|}c(>KVSqi $0ۓBs>)Z!h1HB(>7D4r0*-^ + ջBV֨2]C3]<֗uw/M-K L!ߏ,lDk·762pcպ_?g򯢅.q`-%ʆmsQz׼yv{9нE@ шgY1~l^"}wsy~Qޟ"dm2%Βۖ : 8P _SqiDv(Jk؟9( n2/0xHoO/vcoC.~湚\לڶ +vEu0gɋם%T;BRt0>$uAMA\u k/g//3:O~S+|@ thX jHBKԥ^Sg-,mu."xHxV6BtDAc]#nMA"޶"h1O?ei>^TH!5:a^(Jiw99ߧ%`}\bm\dmhPֵo}TU}K$V:#AM^gZ_kOkZ#}yAC! )£9ٕ?j&]+x҆HYM;Q~{6 <8C\'={6߫xFݢjÉ6-@->Mv pjl-.5 E{-C;5(q}n冮c9ZQl괰j3\?Vnw;ԛ {a Y'u˥;‰Nd9u ;'Q7Ž+JrvNpnK%kRS:edq4VﳿorAųwUΪ":BÂԄ3Pnص%LF+Fum!ܨ;)E7fe$@--,(QwH"Le-deK&j?j\wGdӿi8h.tܣdw_+9ucZҎlD犘5 C'"`^Hޔ-;t%tұ"]Gum=@5m erx5R_p~ +svϙKsEguzKMtOU\6S%夗C#ebKmfer +VTy7emf})| \b8H$a,\8HY:p'}Dc|!/2I 7$ˡOvr/ AjeXq=MD{umiǿYnEVPw`I79 +ZCdlE e;`bbiw@M#З.З2Z텱\Hw~>UK䡺ĝ1'ݰ:=] +:HAܕu+2]yLLKN_P^8~.H[=4U-;kGd)<3B6ӥ=M?xˀ(k[&:w z%٩e@3F+Nu_A"h"5wE&eh֋i-+2z\w hF?a4*#c&h99Sp}yL[klq u䦰AΚ/q +a)29cabL1Lt +>rϭĻ]SE=i yzYݵMq}TRoqpI1?F 7#._З{whXr11;DN"[KvO3yy +IۗU~ZVaVs6,2f,ܤaw5!.[({Kw2U6[ZrMvSYkO&}NdW8P⦯Ķ\:VTqznDo rPGAJ8LJ9JGw!,ԲϤە]$O!+Y.;/lX;O.D=mҢw>x +$UK@:F|/l8,`];U}!Lfi)7wUQt.? j OT,sVR+++vXs++-RjS;Z) syzzNZ$` HB/۔@Q97MD^T xr𪓞z1nK@ Ul,((ظH#QC K9DI0%5JJ|b Q\P3^~í̔QnX& tѤLiv T& ry$bTK.FaISB 4GI5DCn;+<+FI.R7Ԧ.n}4VQb-є~ |k,N j6 2=ȷȗ/AyV4VtJ,q+-q9.rg-ҷÛ%]ZZ'3f| di}"=x?i #&Նr$R$}X@?Z<|& +8t<_~ҭ JޗT ֨W4/Yekba2An)J('Hw&풘2M\+N`ŗvN{6Ƙj.kg?`^ +Iy]D +8"GdK,:A$BnxB:)v}=CBطj<5B,Ɉ\^QHNkINlNa8e86F;I`l0D[uMm060W'/X"+=ZuLZdu?;< +l`6%_!ɾT7)%ZII[1ʧ p kl;r.2Y9]$vKC1)@/Xɦ9l@^ލGq譫a7 wpIگC,9 +ս;b /}J_rNN?XPBig;ju_O#,SQ,֪1lOhZNu,XY߉ֈNwO;9ލ+Gn #wϼ=(ZlUev%FO`@[ćOduy'*ה1c]#Vt%5n ^䪅Bo:;aYX׵9` +SnlV?ᣑ=^4n鷖^u()hγ(qͿ^Sbʺg\ +v9]z q[(OƗz漫tU%KcC9S9=Ӕx~1#BowyoɵIi'ygt8nťP?ع>_5#>{W.X4);xXM ( bNiǒN*u{)\@Yw/2YkYu$K +2E/ +i``\X]#:X[_S\DGǢdlFGE8JYhnyW{ˣדlD#s_)a\kc˔f:M{  +)@;c|W:I짹Nyf?f)7` b>>lRSp݈&YMMo' u[[^BN)Fgb+vHS~mdia7&gr +ǾN~^ߌ׳Dh& uCy.cDp'l: e57/ALN>זpp~wf*/+&F=7c&wzQ#ǃ$,is+[ lMD/@mݿՃeDT6vN|Y8z쮈b{J;q?X|G,nnliPGJY?Z2ЭI` +5RP-1!{1}nH +4Z|ϳ0Oތj q|2`[ĽHy y`z\dxq?4_ {=ۛp\֧#c\gh7Wf}7M}֟?^W P~=.݈1"Ҕ"އ[+ҏ|8)*W{0My=<R-'D5'|G<}QɾjFG\߯v%:̩fI'WUF{bZw,quI7ӹGFq;?fՉji +jԚ /4/*׍y;xM$+̠#$(YuŖ}>Kv#l?D(I_Y?r4dm}qca{ 7`bvL7u_G=~9uW^'a!?Pgθ:~gE{'I*l?ao qM>4[9"f^kP5dd1">Lְ[GDCu(%!<Ĩ!9זKݙ)[VO{ݍ%(ݏ݄(n]kιólP>F=2;Cy>ӄ+BNPSnX50tDpcHB(6ZPNdM}#d=ϐL7n=e&o#XjQ{*kh[+8k%,]):-jI۞?U߶.FL_;7-wcs6 _tbaV,O'6Y~ ::B\h'.轳pK2hO m ν:P;sҕM +p̾ u-??OL4gٽ'~ۺI>@Xk>N )8V`Q b;Lcq"xw;6ɢ] ]C64Zk#̣얮tKF~6Rñ mZ6FbY;3*h\T.IMuQ:&SX^wK)iE6dމ/xE@;C]f?E<2\07I)Oڔ_n[Cx R\-0*F޶*o+3e>̅I:?c ϬW]l-;.^Ph&kZ]}e6 +y1(Zfޮꮅ:>@<ė7>ϊ7QB?tAMxՆ}Y8vN_Mڄ:Cى/?9#@ W2WBya 5nmg:]sQݒ(YՑsH)#F3N'T%Ot=}Wab6 b{4/ yyQ['KN$JJψ{S+.AB%.'T 荟u"& g9\"{$SWIsN + Ʋ`eeUq{#jn@8gKj8qvKE-Z;3":Ջs{<#s#5T\ -&D@ a6d}X|])eZduaQ)ׯ][fԴ#~'37:'pa&~/4IF ? B:Vk^҅^T`ͮ׳L~Asɔ<?qib]F_]})xm5z<ު6bO,8jt%RdX޶=Y̰}sI[ «D`\l'<:ӗ:qTYbj!Ķ +OT\s[uFVzaG/1# +f {Qb +=,9RHq%h znNr+9^>O J6 ^*gX"qv"j̀zCjgȉGv)Gcp{`ĵ!E!5 H'@dEO\sME" ҝ# ]RUO*Pp+c>pO7 (~_ Qi +uLuB¦sG EV?z,G_@nQ|½|`UCV$'rYQU"%Gnr}twpK: 뒽=a=>qw$䀴(鞍:4Zgׯ+xUZp ̉ߍF[y!{n8W|Q.ĭXx%`V¬ZVdVV'; #~_-w w +s8v%&fYz&/-PU>Iy{\4bx'ދW]HX<%kI6ꑻIhjs +JCi"{}(u)#đʳ=z?ԕyĻ ,}ӉF,9vo V0Sb/_&TVK: f[;8NV̼<I[!񗭢E\a/9 Vr^%x-%DX .~T@ Mj-w}_SR-}z ku9r-tׯjyW oSM]\&g3qF>"գ{<.g/bhgϟ(;=&A7z< -q bg]7pDPz 'mGY19Ug|dF8b}h->blwz<&_dQ]H㯻@Z{<Ž8g#J鲮Jc bBm)ױāDNoUe7ȹ!>g!ny@WWm~WjmTx{ u]I:)O| bY33;5HkĵD +*%&ƌ[;/3X#+,n XQ^(_*&&JE qJAFRPwn{`5'>IO<=g$-)č !o!~+Gʲz|B{{U\sFP 9tH!/1k +!8R=JUu n`8G>pO=*'ŵ +`dAׅouv0-[#KX?$7 +>3Xd3Ѐ}%橻xԈWaL _wW+;/:*4A%y9'xk2顟|ۄ "b9Pti,]me +g +wȖ]ݙwMM_ogzRO-Kn 9Ѡٮ?6ijvo\;Rv1MߙŘ|xN%Wj&LQ/$̯ x,e^nzU%/վw!Ҩa#^O)u%\"KP(,s(28$P8Գx?:^3 οT!ȷ7e + +I{5hm F&Jv6}4/mno +5v;vp.I]Nb;SnS|xVMKFu8Ip.TR8K_9XaZϮ*~"~,Y*?k*>aE;FijILϙ9'ԟ[cϫ`UJE}PQűJ%a";L7LRD*-A'ڨ?2A/t}-m{$&WT\b Ds #@@S. EcЧxc9 L)MV`+"J_4\iʂT/CW NsQtpr('!%Z)e_ kR(Ux''mKS"$p)\+%S.K诖H ;HP&% %A=QL'K {֐^YLN9dEm2IUݧVb3̋abqR67y:`of%;Lh& K2۶O٥<=mCqT +Ȑ#=Q]e] +xFJEh}oˠY]KklӗBcmۍj*?{߸D +Y7Fum0rV·Y<- nyNN4^t:2nZVLhu򦛖FD|]] S dCm; +%k؊v(l7Ewb:׏^=Zܽ@ Ҭ$f]vߗ!RfYN13 G]W.>1Xtp} O{g^wS*A ++K~ʇki$mBlOѦ‹6~H%jXZ иloO͖!j Z'A- T>E5D\{>ٛc@(i-֖yy)QlB;lkIfI$m{L-.U^ѥYS%Y2k)E9,Q1{FԪ:oo}& Ȍ7mþ߽< 9|%*uoxq-6sNg{ݩeQ.ڵX)4:NKo^eA9Ok|OkqLc|VJ +ͣG›p[yS;]Du=>%kZ+f.bL&W/3VF#d1l0j+r%&~L3/ſ0a{'~$U6uxЬ~O' oILM (1o"1`M_sM&<iYoZ~ K4햒ǝzVeFCŦׁ:\QgEdi_y:RowȰ10 }/;aF@;;{_|>4?u⣘R1?iS61Wuлf@Q`L=ݽlkwsD[(qb?b.5ܽv#Lбk8w;TȽ~Wj46%N;UEE;ȏt櫩Tj)w3|8(t||8?]x9vSV?%=u"G $ Aҋ$HmDҢUx}~ ڊcLJ7z "H%аÆGDFE9* ե$+:STP^iѽ:J^KDGTK!/pҾ;2!  f16؎,ttU&nn<Z=І)#!-iFzQզDZ=-UVF6瑲IIb@K$N?ri(-7b +-,C")&lI! :F? DZxΧ"^ρs=YnbRB+UZTIh,0B'xOҨ?8dB?j Qdh% P(灌iKvNϩ61Jb@p`6߮qp0 m8УP.TNpBXgChJv֔upn2rpHo Kt>l1>xk=vl)hUq<aߖ& G2$[̸n? ا{.O<Cb4?L~X~(*?l3~=?G~_{?t +?!~HC\?,R?a6?l ~~xGN#?|釯p:z~Cb4?L~X~(*?l3~=?G~_{?tt~Cb4?L~X~(*?l3~=?G~_{?txY慿UH'{ߟφ06@ 䃲*t+W]VF_/(\hR&h&N@ 7l,f +֮)D.ԆG?!QjuNtu] ߷ +/-FMt ȄG!֜&D4 MFh +Ҡzt}.KoI*D mDEh-*Fh=*@Ǒ=VUh3*A+ЯrFIhih j@sh +ȆGg9}>EtoOAw$IAL"B)%(%ŢX1"$" D^M Rל"Xf*D2R;Sh[v-,7z,ۛ& +8^:|IzD%@ EhXS< bHeiNJ>f(mWl}mwo_ڹz_ٻv CL72ybH`7ޭ?x__4 $[c6 2G DggP,_$X{i&spM iiXNHH_|ńXFJxKrtwҁ 6DIK{{gҢ^1qZBޟRex x =ti< 08M@$08MA"aă@Z@Z@Z@:ҁ /#r""aF a(r?D98|'Pf.[B\8=΅r.վ;ەzkr0i.3e}ّ'ջo|t*_~J$(WxSh6k|~'Q'1s@Vlѷ>Kq|szZI_,*Zz8a& LHIM8ir ސ +((H_qժP=<汢5E6z?^Og#%߹/-[e-dpWs,;HG75_5ùjG +ѷW*☼\i֣O~|z4cڢoKF;0_HapÝoD&7ޫI_2Fx}w-*/}vݬO/mb ?7nuMФMФlUz>MJKC~{𬙐&i&N69e2i))`)aVo(Z]8c¤)L:)}dr(NIO<%}ҸJWIIߛ?oO8g?mr?i5v_vh r)sѪBfúӘrׁo`a-iF橢ffZFf)(u_WI8n)ZqTP NJU©LW^qMˊ׮3=Նl7_.A ! +膙;p*vj#4u*\@ +Fk챍Vo0Pm< G{h/xlefT2N_NT W/QE#jfȲ]y\ yW+*gm\3TnȞ7#6YQ)W>˘l~y%GU1cI)~zɞ='oނ ,R0 \q80B._`*"g>s'f:BEV/\?Qj@waZ_|~ 䉚B|ЗO7y3KO 2H_'l}v+\Oų߬,(\8Jᅥ˄]l7_'X=VeKUF$`'-V3)\nYfXt>JȻm2n ԳLr>\ ׳xer5/C_+_D.-|xA +P銟k(xDf:;v`[iƥJM|x߃}RR5)&B6aLXAۄq)S`Rz7)5irhg[Ofe/R&h~p_if.KsO=`_ZϷLF8B#=xDkos4L :xl/vA;%cv7}E3?ϢoGۙ3?sa~H{ [ào Wo*tN_Ms_U|RUɫl,I.I<)mRRej 5k:̟a7tM6FlA1:d@zqG<@ziӷ'mȪY1x֋CE ;̏wh 4鬂d+jǧ) G}!:FYgBgil_6.?gf,,{߆0@Տ@u<&g7&.̪_fmAccH{&jHBz + +BhCT$3N*te@C4'YHAs @MY۞} k/tOhڑ懤 !m"+xFPtD q3% LMCAm1$cYܯ}W|͐)~˽˵A%/!wysG!lHpL׍=>*B7i G*mؑY)-M/pC[ l6c{HÃċڻ8>+Hk ,c8C9+cv%[X6ZɒD$Ma^jXY rBup*G(B$U](HB.EU.ݑwIrPl^w靑WZ̯_w~7djrcѹݗ\3f26dyӔGE%s. Ε?vRR:x/f>62U?^̯~Nh~LŹeqv6{Z4u;m׏WBr^n,6b wGlz6^$qFMK|uh_>H'.4ҷgw +qh + ) 'عo8Lf#tL[yȐBj6/&qj\ٰR:^@*_W,ܻH8( mߌ_W*g:_NJIZ+ ඁ 3gRw7p>T7ar9p/G5B~jW,[~*qgIHص}CD_ϋn7fMwl|/eQ?9 [Nz@`ʥ9_H#,~ 5c@~YR}jƟ [o tp(PGZ+{b`e=pW"K#an 7)Z7_wg|'|'H7˚&I Z{m=ދfžv'gp3 u{GWjF|b܇%u)GbK;̉d3+E) +/_O9W3::DV)݃FwB /;[E|Www7(2+mwmx[,+7O܉}NN;/۷_jk'nN|.xݞxnuvv+>m|F\ƐJktm} 'd'Nz!m߉Ѻnso''~=.9"=n:yo҈+e}}+ؘը5*a{6O(x'K1 Z9L!y, _+.ۃ=#~E7ocn_Ocxjyw1Z m;.@ԶAu[Q;/ RA>o`Ap_Ь>wXKϱ\7^<yT49'栻+H㬳7"1q;=44^vß#olJuvF߀8يA^a|Vc~|(O5=C]$r篥MdhZjz$dpd2c$' ]Ƿ LtAL+sDUPɔifz2g,5d6 tdAZi-ьBZDMOݕLjÒtrh]Ms0vݗDFFprd``<9O +tʳN S.MOCFϤTO5V rB,u'?Ԫ)J|`Wdd$sbɡ咞E%2fG3:NN&iQ6>PalUTN\ ˉi씕2WPu9EG' 0Y ( - Bޡ-VjRc~T)E3EH}f)o7I3BīEsA/^-kQ`3k2f}אTj*xtq- +t6KXS޿ݮ9uX5SP_՟fN!%x9ꑾ!ˊ}茒R]?nYW}?"xF%A=^ 7_IiPYDpzR#Mj/R*p*U79E⿨}k/+L=*Z+)㇪"GJ|/}vVl ,R r =UW2>{ >,X~u=NП[$g|$^D_7bJxuj 7W"F޻֋*{| t} irzL0>4 8Eo'zMK!M 7äL"lr dwRV5j?,ݘ\ҋƏow.bZfsGhɮQs)Dm ;*tO@][ Щb;*'H)m-Ӡn͒A=AA#%Oڮ `̴ kW9t~6YYB)7 @BMC +xȨ]P.ER0-RЏ9 UJpCx1PbҎL^C+h,\SA f9m"}Y)RQ~Tf6ޑFI h"m' ~H! _HlSWYE[`n4Tmh:R5#Q7<җv3X1yE?420olJ#Z/:"ԊЦ@u(g)"ۢQnt,iTʖ Q;NkİNl GxF1ܲXv~gbph h{];A% KU@<-G p"j56@IJ8c4x>0qڢX$ּ޸W]2:i3:HFW_B +,(Ԫ +աfv"m"}3Mf`@?Zz>)/C @G'sM'ȑ7L4L^rrGnR Dțl~Ǟ+ZV"WϠZ)s2\z*@&L- z-8sп;XIIp֞p(hJ*zfdUe1N'!":_#;0X6ctULoU2l3 >t)pZsLr#ͥveS׃;Q Fڕx g_3_b3}$V5y3߱tK\m˾g|Ni,mm1/T_StOz!Ɛ&q?[_/x wQ=#s:PYz\87[SA! xfK Pv*%z>s©IŘsԿR=l¯ o9oy;R}Pxow\[<|+ +.b?*jyHxG{{x@o($|?I%gRe~/ 9?tgl t/t3JBwYt_S*!_zo-#a~~_9dȽ<ro?z_q#=o=¿Cϊ<3-r;py< _%u 9s:z$8#cQp1/9bpBżጂB*ULk.I*GB}Iq]*oaORW ,p /dev/null; then + print_cmd="printf" +elif test -x /usr/ucb/echo; then + print_cmd="/usr/ucb/echo" +else + print_cmd="echo" +fi + +if test -d /usr/xpg4/bin; then + PATH=/usr/xpg4/bin:$PATH + export PATH +fi + +if test -d /usr/sfw/bin; then + PATH=$PATH:/usr/sfw/bin + export PATH +fi + +unset CDPATH + +MS_Printf() +{ + $print_cmd $print_cmd_arg "$1" +} + +MS_PrintLicense() +{ + if test x"$licensetxt" != x; then + if test x"$accept" = xy; then + echo "$licensetxt" + else + echo "$licensetxt" | more + fi + if test x"$accept" != xy; then + while true + do + MS_Printf "Please type y to accept, n otherwise: " + read yn + if test x"$yn" = xn; then + keep=n + eval $finish; exit 1 + break; + elif test x"$yn" = xy; then + break; + fi + done + fi + fi +} + +MS_diskspace() +{ + ( + df -kP "$1" | tail -1 | awk '{ if ($4 ~ /%/) {print $3} else {print $4} }' + ) +} + +MS_dd() +{ + blocks=`expr $3 / 1024` + bytes=`expr $3 % 1024` + # Test for ibs, obs and conv feature + if dd if=/dev/zero of=/dev/null count=1 ibs=512 obs=512 conv=sync 2> /dev/null; then + dd if="$1" ibs=$2 skip=1 obs=1024 conv=sync 2> /dev/null | \ + { test $blocks -gt 0 && dd ibs=1024 obs=1024 count=$blocks ; \ + test $bytes -gt 0 && dd ibs=1 obs=1024 count=$bytes ; } 2> /dev/null + else + dd if="$1" bs=$2 skip=1 2> /dev/null + fi +} + +MS_dd_Progress() +{ + if test x"$noprogress" = xy; then + MS_dd "$@" + return $? + fi + file="$1" + offset=$2 + length=$3 + pos=0 + bsize=4194304 + while test $bsize -gt $length; do + bsize=`expr $bsize / 4` + done + blocks=`expr $length / $bsize` + bytes=`expr $length % $bsize` + ( + dd ibs=$offset skip=1 count=0 2>/dev/null + pos=`expr $pos \+ $bsize` + MS_Printf " 0%% " 1>&2 + if test $blocks -gt 0; then + while test $pos -le $length; do + dd bs=$bsize count=1 2>/dev/null + pcent=`expr $length / 100` + pcent=`expr $pos / $pcent` + if test $pcent -lt 100; then + MS_Printf "\b\b\b\b\b\b\b" 1>&2 + if test $pcent -lt 10; then + MS_Printf " $pcent%% " 1>&2 + else + MS_Printf " $pcent%% " 1>&2 + fi + fi + pos=`expr $pos \+ $bsize` + done + fi + if test $bytes -gt 0; then + dd bs=$bytes count=1 2>/dev/null + fi + MS_Printf "\b\b\b\b\b\b\b" 1>&2 + MS_Printf " 100%% " 1>&2 + ) < "$file" +} + +MS_Help() +{ + cat << EOH >&2 +${helpheader}Makeself version 2.4.3 + 1) Getting help or info about $0 : + $0 --help Print this message + $0 --info Print embedded info : title, default target directory, embedded script ... + $0 --lsm Print embedded lsm entry (or no LSM) + $0 --list Print the list of files in the archive + $0 --check Checks integrity of the archive + + 2) Running $0 : + $0 [options] [--] [additional arguments to embedded script] + with following options (in that order) + --confirm Ask before running embedded script + --quiet Do not print anything except error messages + --accept Accept the license + --noexec Do not run embedded script (implies --noexec-cleanup) + --noexec-cleanup Do not run embedded cleanup script + --keep Do not erase target directory after running + the embedded script + --noprogress Do not show the progress during the decompression + --nox11 Do not spawn an xterm + --nochown Do not give the target folder to the current user + --chown Give the target folder to the current user recursively + --nodiskspace Do not check for available disk space + --target dir Extract directly to a target directory (absolute or relative) + This directory may undergo recursive chown (see --nochown). + --tar arg1 [arg2 ...] Access the contents of the archive through the tar command + --ssl-pass-src src Use the given src as the source of password to decrypt the data + using OpenSSL. See "PASS PHRASE ARGUMENTS" in man openssl. + Default is to prompt the user to enter decryption password + on the current terminal. + --cleanup-args args Arguments to the cleanup script. Wrap in quotes to provide + multiple arguments. + -- Following arguments will be passed to the embedded script +EOH +} + +MS_Check() +{ + OLD_PATH="$PATH" + PATH=${GUESS_MD5_PATH:-"$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"} + MD5_ARG="" + MD5_PATH=`exec <&- 2>&-; which md5sum || command -v md5sum || type md5sum` + test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which md5 || command -v md5 || type md5` + test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which digest || command -v digest || type digest` + PATH="$OLD_PATH" + + SHA_PATH=`exec <&- 2>&-; which shasum || command -v shasum || type shasum` + test -x "$SHA_PATH" || SHA_PATH=`exec <&- 2>&-; which sha256sum || command -v sha256sum || type sha256sum` + + if test x"$quiet" = xn; then + MS_Printf "Verifying archive integrity..." + fi + offset=`head -n "$skip" "$1" | wc -c | tr -d " "` + fsize=`cat "$1" | wc -c | tr -d " "` + if test $totalsize -ne `expr $fsize - $offset`; then + echo " Unexpected archive size." >&2 + exit 2 + fi + verb=$2 + i=1 + for s in $filesizes + do + crc=`echo $CRCsum | cut -d" " -f$i` + if test -x "$SHA_PATH"; then + if test x"`basename $SHA_PATH`" = xshasum; then + SHA_ARG="-a 256" + fi + sha=`echo $SHA | cut -d" " -f$i` + if test x"$sha" = x0000000000000000000000000000000000000000000000000000000000000000; then + test x"$verb" = xy && echo " $1 does not contain an embedded SHA256 checksum." >&2 + else + shasum=`MS_dd_Progress "$1" $offset $s | eval "$SHA_PATH $SHA_ARG" | cut -b-64`; + if test x"$shasum" != x"$sha"; then + echo "Error in SHA256 checksums: $shasum is different from $sha" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " SHA256 checksums are OK." >&2 + fi + crc="0000000000"; + fi + fi + if test -x "$MD5_PATH"; then + if test x"`basename $MD5_PATH`" = xdigest; then + MD5_ARG="-a md5" + fi + md5=`echo $MD5 | cut -d" " -f$i` + if test x"$md5" = x00000000000000000000000000000000; then + test x"$verb" = xy && echo " $1 does not contain an embedded MD5 checksum." >&2 + else + md5sum=`MS_dd_Progress "$1" $offset $s | eval "$MD5_PATH $MD5_ARG" | cut -b-32`; + if test x"$md5sum" != x"$md5"; then + echo "Error in MD5 checksums: $md5sum is different from $md5" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " MD5 checksums are OK." >&2 + fi + crc="0000000000"; verb=n + fi + fi + if test x"$crc" = x0000000000; then + test x"$verb" = xy && echo " $1 does not contain a CRC checksum." >&2 + else + sum1=`MS_dd_Progress "$1" $offset $s | CMD_ENV=xpg4 cksum | awk '{print $1}'` + if test x"$sum1" != x"$crc"; then + echo "Error in checksums: $sum1 is different from $crc" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " CRC checksums are OK." >&2 + fi + fi + i=`expr $i + 1` + offset=`expr $offset + $s` + done + if test x"$quiet" = xn; then + echo " All good." + fi +} + +MS_Decompress() +{ + if test x"$decrypt_cmd" != x""; then + { eval "$decrypt_cmd" || echo " ... Decryption failed." >&2; } | eval "gzip -cd" + else + eval "gzip -cd" + fi + + if test $? -ne 0; then + echo " ... Decompression failed." >&2 + fi +} + +UnTAR() +{ + if test x"$quiet" = xn; then + tar $1vf - 2>&1 || { echo " ... Extraction failed." > /dev/tty; kill -15 $$; } + else + tar $1f - 2>&1 || { echo Extraction failed. > /dev/tty; kill -15 $$; } + fi +} + +MS_exec_cleanup() { + if test x"$cleanup" = xy && test x"$cleanup_script" != x""; then + cleanup=n + cd "$tmpdir" + eval "\"$cleanup_script\" $scriptargs $cleanupargs" + fi +} + +MS_cleanup() +{ + echo 'Signal caught, cleaning up' >&2 + MS_exec_cleanup + cd "$TMPROOT" + rm -rf "$tmpdir" + eval $finish; exit 15 +} + +finish=true +xterm_loop= +noprogress=n +nox11=n +copy=none +ownership=n +verbose=n +cleanup=y +cleanupargs= + +initargs="$@" + +while true +do + case "$1" in + -h | --help) + MS_Help + exit 0 + ;; + -q | --quiet) + quiet=y + noprogress=y + shift + ;; + --accept) + accept=y + shift + ;; + --info) + echo Identification: "$label" + echo Target directory: "$targetdir" + echo Uncompressed size: 312 KB + echo Compression: gzip + if test x"n" != x""; then + echo Encryption: n + fi + echo Date of packaging: Fri Dec 17 20:22:12 CST 2021 + echo Built with Makeself version 2.4.3 + echo Build command was: "/usr/local/bin/makeself.sh \\ + \"stm32duino_bootloader_upload\" \\ + \"DevTerm_keyboard_firmware_v0.2_utils.sh\" \\ + \"keyboard_firmware\" \\ + \"./flash.sh\"" + if test x"$script" != x; then + echo Script run after extraction: + echo " " $script $scriptargs + fi + if test x"" = xcopy; then + echo "Archive will copy itself to a temporary location" + fi + if test x"n" = xy; then + echo "Root permissions required for extraction" + fi + if test x"n" = xy; then + echo "directory $targetdir is permanent" + else + echo "$targetdir will be removed after extraction" + fi + exit 0 + ;; + --dumpconf) + echo LABEL=\"$label\" + echo SCRIPT=\"$script\" + echo SCRIPTARGS=\"$scriptargs\" + echo CLEANUPSCRIPT=\"$cleanup_script\" + echo archdirname=\"stm32duino_bootloader_upload\" + echo KEEP=n + echo NOOVERWRITE=n + echo COMPRESS=gzip + echo filesizes=\"$filesizes\" + echo totalsize=\"$totalsize\" + echo CRCsum=\"$CRCsum\" + echo MD5sum=\"$MD5sum\" + echo SHAsum=\"$SHAsum\" + echo SKIP=\"$skip\" + exit 0 + ;; + --lsm) +cat << EOLSM +No LSM. +EOLSM + exit 0 + ;; + --list) + echo Target directory: $targetdir + offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + for s in $filesizes + do + MS_dd "$0" $offset $s | MS_Decompress | UnTAR t + offset=`expr $offset + $s` + done + exit 0 + ;; + --tar) + offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + arg1="$2" + if ! shift 2; then MS_Help; exit 1; fi + for s in $filesizes + do + MS_dd "$0" $offset $s | MS_Decompress | tar "$arg1" - "$@" + offset=`expr $offset + $s` + done + exit 0 + ;; + --check) + MS_Check "$0" y + exit 0 + ;; + --confirm) + verbose=y + shift + ;; + --noexec) + script="" + cleanup_script="" + shift + ;; + --noexec-cleanup) + cleanup_script="" + shift + ;; + --keep) + keep=y + shift + ;; + --target) + keep=y + targetdir="${2:-.}" + if ! shift 2; then MS_Help; exit 1; fi + ;; + --noprogress) + noprogress=y + shift + ;; + --nox11) + nox11=y + shift + ;; + --nochown) + ownership=n + shift + ;; + --chown) + ownership=y + shift + ;; + --nodiskspace) + nodiskspace=y + shift + ;; + --xwin) + if test "n" = n; then + finish="echo Press Return to close this window...; read junk" + fi + xterm_loop=1 + shift + ;; + --phase2) + copy=phase2 + shift + ;; + --ssl-pass-src) + if test x"n" != x"openssl"; then + echo "Invalid option --ssl-pass-src: $0 was not encrypted with OpenSSL!" >&2 + exit 1 + fi + decrypt_cmd="$decrypt_cmd -pass $2" + if ! shift 2; then MS_Help; exit 1; fi + ;; + --cleanup-args) + cleanupargs="$2" + if ! shift 2; then MS_help; exit 1; fi + ;; + --) + shift + break ;; + -*) + echo Unrecognized flag : "$1" >&2 + MS_Help + exit 1 + ;; + *) + break ;; + esac +done + +if test x"$quiet" = xy -a x"$verbose" = xy; then + echo Cannot be verbose and quiet at the same time. >&2 + exit 1 +fi + +if test x"n" = xy -a `id -u` -ne 0; then + echo "Administrative privileges required for this archive (use su or sudo)" >&2 + exit 1 +fi + +if test x"$copy" \!= xphase2; then + MS_PrintLicense +fi + +case "$copy" in +copy) + tmpdir="$TMPROOT"/makeself.$RANDOM.`date +"%y%m%d%H%M%S"`.$$ + mkdir "$tmpdir" || { + echo "Could not create temporary directory $tmpdir" >&2 + exit 1 + } + SCRIPT_COPY="$tmpdir/makeself" + echo "Copying to a temporary location..." >&2 + cp "$0" "$SCRIPT_COPY" + chmod +x "$SCRIPT_COPY" + cd "$TMPROOT" + exec "$SCRIPT_COPY" --phase2 -- $initargs + ;; +phase2) + finish="$finish ; rm -rf `dirname $0`" + ;; +esac + +if test x"$nox11" = xn; then + if tty -s; then # Do we have a terminal? + : + else + if test x"$DISPLAY" != x -a x"$xterm_loop" = x; then # No, but do we have X? + if xset q > /dev/null 2>&1; then # Check for valid DISPLAY variable + GUESS_XTERMS="xterm gnome-terminal rxvt dtterm eterm Eterm xfce4-terminal lxterminal kvt konsole aterm terminology" + for a in $GUESS_XTERMS; do + if type $a >/dev/null 2>&1; then + XTERM=$a + break + fi + done + chmod a+x $0 || echo Please add execution rights on $0 + if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal! + exec $XTERM -e "$0 --xwin $initargs" + else + exec $XTERM -e "./$0 --xwin $initargs" + fi + fi + fi + fi +fi + +if test x"$targetdir" = x.; then + tmpdir="." +else + if test x"$keep" = xy; then + if test x"$nooverwrite" = xy && test -d "$targetdir"; then + echo "Target directory $targetdir already exists, aborting." >&2 + exit 1 + fi + if test x"$quiet" = xn; then + echo "Creating directory $targetdir" >&2 + fi + tmpdir="$targetdir" + dashp="-p" + else + tmpdir="$TMPROOT/selfgz$$$RANDOM" + dashp="" + fi + mkdir $dashp "$tmpdir" || { + echo 'Cannot create target directory' $tmpdir >&2 + echo 'You should try option --target dir' >&2 + eval $finish + exit 1 + } +fi + +location="`pwd`" +if test x"$SETUP_NOCHECK" != x1; then + MS_Check "$0" +fi +offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + +if test x"$verbose" = xy; then + MS_Printf "About to extract 312 KB in $tmpdir ... Proceed ? [Y/n] " + read yn + if test x"$yn" = xn; then + eval $finish; exit 1 + fi +fi + +if test x"$quiet" = xn; then + # Decrypting with openssl will ask for password, + # the prompt needs to start on new line + if test x"n" = x"openssl"; then + echo "Decrypting and uncompressing $label..." + else + MS_Printf "Uncompressing $label" + fi +fi +res=3 +if test x"$keep" = xn; then + trap MS_cleanup 1 2 3 15 +fi + +if test x"$nodiskspace" = xn; then + leftspace=`MS_diskspace "$tmpdir"` + if test -n "$leftspace"; then + if test "$leftspace" -lt 312; then + echo + echo "Not enough space left in "`dirname $tmpdir`" ($leftspace KB) to decompress $0 (312 KB)" >&2 + echo "Use --nodiskspace option to skip this check and proceed anyway" >&2 + if test x"$keep" = xn; then + echo "Consider setting TMPDIR to a directory with more free space." + fi + eval $finish; exit 1 + fi + fi +fi + +for s in $filesizes +do + if MS_dd_Progress "$0" $offset $s | MS_Decompress | ( cd "$tmpdir"; umask $ORIG_UMASK ; UnTAR xp ) 1>/dev/null; then + if test x"$ownership" = xy; then + (cd "$tmpdir"; chown -R `id -u` .; chgrp -R `id -g` .) + fi + else + echo >&2 + echo "Unable to decompress $0" >&2 + eval $finish; exit 1 + fi + offset=`expr $offset + $s` +done +if test x"$quiet" = xn; then + echo +fi + +cd "$tmpdir" +res=0 +if test x"$script" != x; then + if test x"$export_conf" = x"y"; then + MS_BUNDLE="$0" + MS_LABEL="$label" + MS_SCRIPT="$script" + MS_SCRIPTARGS="$scriptargs" + MS_ARCHDIRNAME="$archdirname" + MS_KEEP="$KEEP" + MS_NOOVERWRITE="$NOOVERWRITE" + MS_COMPRESS="$COMPRESS" + MS_CLEANUP="$cleanup" + export MS_BUNDLE MS_LABEL MS_SCRIPT MS_SCRIPTARGS + export MS_ARCHDIRNAME MS_KEEP MS_NOOVERWRITE MS_COMPRESS + fi + + if test x"$verbose" = x"y"; then + MS_Printf "OK to execute: $script $scriptargs $* ? [Y/n] " + read yn + if test x"$yn" = x -o x"$yn" = xy -o x"$yn" = xY; then + eval "\"$script\" $scriptargs \"\$@\""; res=$?; + fi + else + eval "\"$script\" $scriptargs \"\$@\""; res=$? + fi + if test "$res" -ne 0; then + test x"$verbose" = xy && echo "The program '$script' returned an error code ($res)" >&2 + fi +fi + +MS_exec_cleanup + +if test x"$keep" = xn; then + cd "$TMPROOT" + rm -rf "$tmpdir" +fi +eval $finish; exit $res +a]}wF_SlEnȖd[~ Z\ +^n9ZZ*dR g3+qli_fggv~3;a՟D*kfv껏m{{{M>Ný4fi;ݸ |rH4l6±v5i.q̾JO$r~ypÃq#YjWO_?}p{_\w hVWlV;np=4ER__@[eY+un8A >F ݾpJꘇq%6ʲ ?_q 789ϢA>/pm%l]]hc7fuvZaZxN,庥n]#BͶ]bc𗬏`uޯ\w-i﹝F^ꖺu,H[k~ ~ q(_fUG+o/?+U| tkNF~o7mpm{n;TϬZjֵB_[}JsJ?Jl:X;vn/C,]^OV-Wk\K*>/$J*& $t̳C0amfAq0*}$!T I3!b/S f&i8 c^`?~ZX՗귌zĐIC$j*bT"sL$!]M++n^ $ߥmF~weo8ϋ8cb"3BpTY0BZZGIV@|2aM$_v 6m7WVlSauKݺv)ھZ.nxhWC7n{uG>xc "f)0!6H1Т^uTQGGE$< +S yr ) xͩ>dpgɕY2Y=`hg6E>X(~$(V6hT$h<@f0j ˒#K,xmhКT +fYX*FU0LȌY6kd?ɇk̵cgSW4|jp~5giEM][_;ީ_J]?XI iL4kLz a>qImL'4xF\0ŋLM΃UKᅹ!V^Dt>{cX``06Hyj +@!šmuI*p3S 0=mby~{~pݻ9$bV[;}>n@sC Y$3_A&d?2ᏀU=6BidA>B'4$`im {^";6*L&ibDU_ʫ[]DB{OG1oj?r᳎c_2Pz kusOQV]k/(]eJp"0r >KC?ۢG<RHknx"bw[ƙhע׋ďE*tH o(\D',&F`#u \,:p"eSbY4e5`b'RI`He #&$/Pc* + +{Mg0զ0<1ZcOx6|2"F`d0I]*"Ln= axx^.tn<6 +cnDl` U} cTZ Awu ~p1Ur*EtxUbɊ0øzl(X:]/~}^_m*!{=_5iSxL3"蠘,eБQ0-\so>xxL{ɪJ̲&˦WkahT#lA[QX޼st rq1?ԷD!`v&X ^ +]i2&+j?yrF'OqAGofN :Nk} gCBZvMºX;D&0q=v3$:Ԧv  +Lxa[1P]iAY-jϞ߻)3rzR)ff1 +#3#f6J.EBk-[&O;mf#cA?aHytħrўU/u/]&T_3 V+X Φ&D|  +,FhA)Wa<118#Ԁ7vA#+f׬4MJ)Ǝ-ylłԝwĉN qdRM%EM7*?foa.ry6F}o)~[ dD8y7"ނF|W,CyQ BL=H+I|y +kV6x__{-T7[o Sv\NOTT_Ae"p'?/ +9 ++2j2'̪ܳ&3/2crK=sN{_7Oyq2Ksc3q@F )f^3e;@ qŁ0; &}YB1ٞ==. +X%zoWGv3ߠgX>p1Nh݅%h+u^P 1A|\KtNDaNg xeB6'nP;Ȇ˷'M)Btt!yAKr3 p۷59ي#(i#dğHMlbgcTmUA0DlgkY%_&spM~_;]Gﳵo.?+r2u3ϋڱ"(I9놢@&AS!NT;t>aNހQ@hW<$Pxr,`GfY&z4a*$1\.5Fgŕa!XŻGj{:Ί'͂RSB?@1 )Q +cQ0qS<{]nNbS|#MzSHϋZ$D*~cL _Nn=S'&[ +qG6)Zot~FSo1tU Q,w{<^P% Rx*{EsjcTV1z :M낧>T@}u Z+M(S܈g`zϻCXM&gRMG%iߍ_SR\m.|;NyJ߯M&42o0kq]"c'Ns.1 KyNj4o* +-ul H۞+*m:>/`1sv'2<7V`%_ e}RZ6`iT6X=._WOY2 }Vw*D>f +QRC5jAqq(l@Ks;\@yDhFQo~`@6j`cn"Fu6> g\}+ةq?BB4oǏzwf[7dwjd|͉D) Q)ԃ Uܩ0*[[]PF>:я"/xT*&s,IAjxJ>_3GOWTw Q2U0'Q4UA !fY\|*#)"]lrBtccsRT1!a|~.u}6e*6#L.?ቶL-"szU%lS3l]CdVm6=> ʅ +PW9 KYȗ(Ǝ,~2| ŽA8i-L}9 +sfx]BxdfogTVTk˅ Nk/ݬ97亞Bõj$ +ɩ$(&r +?zN^&щ>8usw~z!+)QL?BXCFeP2DZLFK@?0nH: )#I(qYQ-hJDt#y$,$Jݠu/S%ܞREFrn,;o^岓VF"Ng3g*NBЕa!**-? dQ`qgGڣT(=Ɇ(Ht4n|YtH:K9G!qC& i!1wi$ФsQTm=d;P*`C/!fhWHS>w F$gUA:4HD0Qd&"$R&= UVWЇ""btOMN|@x2гC;#q̇DՄI)i~NJTB5$WL{dQK/KaE|Vzl.Fŷr h2K +Mjlg(E^ )MM$<"Q9X^ =fj!E~YrKu|VAh_y)6yEjy%aԺX ˠ%%6tr@f %&7jQ@>@8d&$ֶe->QBFb5OO  CJ!>JfUͿo޴LfS;1C g}cl)[?[B.Q⿡hrAzMzpڂZnx7\kHlRDkg@IJNoIP'g'xO~*a*rhnv/fzh@# 5hXq^ad/QH~oխe%BE" B%p#|.A|@pA]Z`SÌ* "%]ZpB޽qe `FDH >HLnfd aq n5E'b1?]gWw`p&u'? +j~FT ݔ!hHN`l`hp)ACY14 |rwc & JwP&EIr-UJH5P 4Ht }F~%)J T /<]X`2S|nb`INnnE޷剬KÆUuG8? _pə|CJpx*z|yE/9xȢ#fo*Ѩb 8mE$&s,eY u=,5KIʀop*dD`K\#at +2]&6 Bݹ0.eL1LS&pP͂{j_X3h F 䀫:_]M BDAIYY~+A&"D&Z;0k!-Bz{:FIplq!jf7~c z!Gx!(4l@]얄t/ g˟zo|H 4C"KBֱ)K/6 !%rGDMUW+mlb8$Ln%ڬDGWҚcvKRBN:0h\@meH0:Acڒ8m A18m$⢾EW5 D r" c )o;5Dvti{/`i[HF|trE k#E$I&JlyҀ=-37: c =F tEDFJT#\d>L e87< J -/H ia[]˨уk+i&lQ3h-M#F[QC1j:B=^FCSW"ސ;-MI^!QtThA,m&i#dn~#bLDHX#&R\ 2\X A 㟡%KNw&f*r/ǩQ6UyqZ_l= ecpzQLC%H?6bw%LQc*4Lo45rBffh"ɼB;< 8⃡,p3$tp>-"9.j@Ö&=8w5LFh,gM匬5-lLb `8G7.[W77X9Y-m?Coѫۧ|-ifxGoNBOysQti1F=8CקNޟ>rxW^ +ޑg{|?Z4X03U8UM+=qpIԶ%?]WNvh8NcEc`;+RjWhޞn&w9 +_J!ϓ6|_9=Vd+ʦ0G&{^3< _m?ߖdy4궱7/ϊ #sʜ o3מ"?X.Rq;{,hB7d/XnJ;, +4yK:߼o׍YZA&< [?7}yOڹC9)GLR$0H.2ooY~qR6[9vԺG]ܟwksGBJ8@أ`/u˖w2O}(_ԠiGfrf[K .7 ʊJvs #~B2pOtg5w5/.?U*BF)@֯x]~p>f$.7durG:eN$.Kb2|nv-;ۢHxoګW]w}c*{NAN Eqr~;K o]_`͝yNnn ]"5"ᖰ- (eOUugF;_mK_YϬ;eq!+8l>0 s/危 f𧃒Ќ ?l!?Fhq77\yA} 黎~R?>G}ܠQLIa +HFp4S @@22=LNd,}K ).\ +?3Aɉ,A}F6i'‡Z)zKbBĦ<񬓷ۜ6(,CJv¸Еuk,XZ09Hqd!}eV&͂`0%}Y.i595Î$;9.3gh3͢!AZ +*!&LUHe6[6'au8Nw\ Ihk&)TXG1wW(O&.n4jho^ioo_6uܦ]@{]4FlLi g1?+ _0ej%B-W/A 5{%NۚҮƔIkYX.ƊoHg`"fXdxʙ- 9>E Idc,vI Q}k+R=jNtShm:f7?tj7s'$(ܰ򪣚ڬ;eԁv/.x{|g۸7,^XY5h?gڷ]҄lfqܭY{g5#_צﺞyg3߿7͇~:ѧ?}ݵޏfM=1x'K\s:{Cַ}@\fyefY* +$.͎ y␢1~?2Y8X;Y+S/UsѢ?k1e΍Ɣ1[3ӻ/`oVeWTm;>e6 |Çx;{^ڮU晉ݺM_ɾk׬x6t\#Wf/ק<:zE?6w$r8*sTǽ =~"uV6PEE cQ 6e7p룝q=nZ|qǒO{]eh%ڧOy];^=gG }t.{=R(FLd>_{ڡb[6ѱ۱cIq} G&}ex])ZooKt~kNug#hcfK]}IWcnNG)=shJ?`اQ{;~ i뾖+IWsm̕MK3o3/)9)߲ml25OJj v(axOuEG{K~'mU/=vm?]S:;?5x9Gg&tM^lNxXg@íy۱kZ86\7{gq)KDZ<33IY"YJfTdM %Y"ɾG&!B{ ٥8]{Αs]u_c3y>~X=!t&:?pmͼ :J92ClSWߕmۥ~Q8ziQco\B Ecc_ITj2d˸uaSIB6gTiKh>&( <;T Htpp<_+0`/cj-O ?xY(eWYr6ů9(."qŊIWyӦڱ@]3Yċx~Qah(uk;k݆79:%ql:Α ДLۡv(yxgV+]꒤CS:K^%k40K!d\=0&Vc:v.ZH!#ƳkPV){s>B݃ś2k'=:7k?=KuοqGAF ;=ÃY@2j?WB ь~?k?> ɸ V[{(B$~:5Uŧ{%=fUdEH(}^UwjBλmj| L+pw9~`BqP*&PTyy"ޙ9JG̞8oXǠs̢_7[ ?CÈ ѳ4Eklϕf&JeJ=B}PpKXU*-K펥8[ +v7&{|JYeTե$xRjMLn +Bkp}jv7w:!AgAR.V& +KeGk +}= }~ BMOqdyHijer$(I,ug3ϘA  A@, ?] G4F鿏G0iω'~E ֵdЧŴ2.LC-'dψy*صtwodU0Μ1mƦ|8]g~^!<PUYn$1lBd*@(T" 8 + (h4&/Bt?"o?Wڿ]a?a'P ,9hPr"jv-#m~ mRFi#,FJMuIEkՠ{9lO֔hro7TzkhWu%,N*9?8Fp3@ ;7Y*Vڱ䩰SgK߻ף[hh[#^WE}&7 _}e%}kvxXk[XxXh.ɦ؝>8.<{)]% +rV`SM\N7#rlLC#V 0_0}ќ%oK8K D!AT,Є9?5b XǁX No\O[ϋr(w]8GWSJx,ī9PU q\]7;= =#Ւ2X,}m\pto{Soxm+Jw[QB"/ +Ó%4 t8aө]$ LpOH՟.WUe;t΢p8 RaFpD* +$As0N (p]<_4@h|yklϕo ?H4iP̩6vK[I^ P11 +W`1.~Z}YuPfv؍0;\T͛rk]q6ٻtqͦ%~6>0+yn qgQWPhibZ#ս&*hFFc`~b'DzǼ$Jien&K4Ē!-9;ѪCaO'=.7:(x_`(FxFWNF& U}Od]H:k^\3!-uOǛ eɇ"D]r-_(GuƅͪeZԺ˜cѸ7ײC\|q?h A?$6Oŀ$",D%x +Ph:,J3yY>}X +yOC3߮LhF׼ ݠ {5C՝l `xʉǟ +ҜedhΒ,z42  M%ff,dfg>6>G22}xs}]V(9Y,>'s2md0=͢P B>D 84%P 82! He'ߊ!FҿM_@y[]+FbX2O-N(X|Oma\E*K1oG ْ#4rpܩc;9>]Tx Xz3ԅ6&k`G>y13GeF k\ޝ"ver e/F"../?*׎Y|'cwN +GNy\It~I;rCRG{ 8LeUL׳=c'ğ*boj:꘰TDK@p躓KT… ޡC5vZRD)=wՕ#w%>:3U )őaG=4OLtX[yɲ/0kwŬ;q!|Y9oTT]q6N#x"(yŤZ®!GsYZ C0,Tby%YeΓ;ia!GëkM +.1t@MV|QVIBGp`Íg,DxEdٞt͍o}LcB23(K]0mK9F}>M@"X/ԋ SKldD:߿ s>?`]LM OB V_Z[?&s/p&X8O"R&1 !Dhhs5p --yOœn%ٯ6w_ܗ{@䚬9eU*.)%A+8{dvYh2^lJ1̓ RܑQ.7z_eǍ֯%4J< hmCAw$1VcfƣqX@ qR"!x0 ~w!Ќ$s?0=`'5Z/Q/\  R崸&|AQ}TZ]KuWF m9of[Oʝ2qaF oe-7 RS:o RDL~d{/@ ԅSL^֨S釶=K̒H5yS~Sr1<8.eR\0{x8I`Uǔçn c+)koɲulK#=s>sVh&x^%OqWekXtJ{vRݝj'eWms9,4VTb'öpywzؙr׋,//2Y2F{~lr`jC fy)>[4]%3Vt|<jS*i#t,6v壔^+ZVz1A3N8F_y[Pt%{I8ar|?ACWVoc3u҃ʶ|uKϱzf_^SR|Lо]ɭo}ޙC{#rs7Ή| 5z-\\g_kCp oOG'{W&Yc-Z.vg,Ο` +elo08:`X(0d@V?E|@|pPoYߓP bYǷKnByf=Բ=~|~R6no_$4p+$ȾC!<[>h*/;}gZxEwS:e_W$Ol)s׭]y<~:俕o8 #(  Cp9?g`" k/a>$R_,%'On;1E.X#Yx1TPo*޽3/?[? ذ@ @ƧX̏_??6?Gi~ca?fomx<~f0VwM> >N`4( !ʯLdZ"5$4y?Xo{4|Qʂ]=M+XH? b@<08EH< nM%F/_?S7ק ?btJ~vLFR~p,@ِs뷛 QGh"˞9'dV5rNgK53μ!ew* ? <@VUNMڇktu*4'3\mv$>;?=Bx-ğiV-ȶ,–'؈nA7ڳM#~WC)rdu$fpvysʹfG +Hͤ@G>z#d +} oȡ4PRuT_o^F>$tl|R,"GoC?^V6sѩPM޿Ƙ_+y)TY\W~%4V5 XdHۛ;BZ"K׬:]^k/a_ɮ'U$4uG| -vȥ$\BFq$&0:\jBoY'h+~#ѡyjz& HmSxlga&^A_6}iud/LYpR[h5 Nt'8 :q3{9W, OC]. EaĥD3Cdb#OF]/ȴ*_A}ɞKagf fRgL$%+ZSg v] +*"^p# fi^ӝwR{Vٖ"JVK!%'rt o3J-uӢcpԼH覗ь6g +,Y: hj+.߉>~;򐱡#c0j o9[OS^~᪏ׂhJWɂ1gM oKUtr\SҡہV9ʱ+4}?h!Gu3%C*VDfQ5CkGy^@#oawFx{b9Q +1NI#Eum7IC@*.`[wh_/weV+sp޿\v%XXqxLӛ1'fʗJgi;UJ`R]l.(n_TK:j*r34lœec[ VcI9Zy s$qk&s/MA<q%w= +[S֛?d=#J5yfR[{/P t*)Տӧ/ΟΝ˺upJHK)iJ{}_ AjS@GD '$u\#ldE +,E&Oz=V BH`wUjb8ҥHG@(!A""BB +&")A)* HS)P H>{߹s=q<3;>o)dvo@K>spA%ۼ)A73}PC̍!% ߣ63l+O'Y e7GiNnq6e7'u+b$>a=CnIX3CJ8K| ~yMLLTr+Ѩ=S%71*O!Xt!R\a9 :$W43ʾqMմ= w28 +tT5E^ }dՉRZP\I.L}+;Ռa#r +? l& +fwOD Q?uibB%aShHjRHuFekY j|hN0Oڦ(4B5׊yzAkHIN[Oei +&r`i#=AƳJhR xzj]3 + a +[1mR3Q8X}}+_ wLu#q?yq~Zn W;vHGc8P_ %f@@W}i`do6v,hR·/x͂3R4S;]:, dt@l +(TB `{-ho_A@ >L[@Ÿ~?7ֈ:l$ċ7jqŜ/gOvil/8,/o_NfͿ!}2Ǜ+Ftn8{\?}GxWkTd "i&pDJoKhIhֲ0+O2웷ve]dP,K4!E[{$ADAQ 0PBP +`(_xc#P/@" ?=Y"aș|ة:\P +Փlĥ]4rsೝ Zp٭'vshź=!NE@啐 +;; W( +E~?+_? N, y/+ p e+nt/U +¸H%xr~~eK)?@2zi:Jf$*vؿ`=9 + < +$ ?? EyC,U_R/DV_Vjwd-De8 idZc+ܦqλV6RTN pba|plS:"@U{J#jdzUz])hՍFnb(`:Z*7枓ud^"`dˠ}8q%d6hz:=KoB̗V'} FPv{Vi|L\Yg}IYoS g1:_?C|ق׽^7R]Z|7\k0K(G*t$ PX3s/%\^͹)~%{my U?FZlUX,Pa7sח2cF^2w^KW,װ۪j!nE5Kj^"d\fu4!ƺqKa +Ds O~WQbc,hrv]8g+lE"^5Ky6YW*HrSK}.7 +f?Ǐwٰa$,$ЫĵgAmLhM Ȫ}ҕ'Wmn::BJM3{tbp-ͭtLJ4Ƣ.DڦHGֶ #M2NޗJ>M=gl3S, y|Q [oyS="&0u=WIa QKw]}~qEt +Z=Vx%eshq3u2U䧝_`ɱ7RpNʉ+)Kf#UsxN~E*Off{Nޢb=Z]ߒ&w:ѭ$ FzSOv Kz<яJPD,Sŷ20hІShVEdLeLJz +b]kZ[橗vhί%oAm=3Ϡ) Ly?l'L3 W~ž%M.Ȁ%,U^-I6_.ٷQXo=mג0ͦ +xi~^0K5_nw.Ӏ:`+Ar! ҡ3u8^#<%b`lR\\z_*cځ :M W^RzR + =R<ʾ"TB-̾4vKɖ5HdKe+gllCTaH5LGqok9={W]:OL'b2[d/=g5Gߓhn&LRg.WSq$.=&s+J^S-O$sX5oOPv@wO6(iޏ.EUܚKs 7S؇wI^24zv(g~I,dUoa+7Khu6e]F #@B.p1Jl\`jonҽONjwJM~)s>մ)珃TL9mm~ֱI-&Ԅ͘[ZR~7i|[r%ʊ(܍ =E87TժW/&!ձ afk_N꣊ZLBs΄U<&cS~u$@"lr5J5AcG(b=q> f{VMyt]?P'Q*b()KeHcK"sLWhVǥt{yUS沋:fn[zBScGî a|&ZOp>mx()p66'L}0خrcsZ&Í<F5z5;xUV![H4W`[4DDuzc•a2ȰCf!䧪Y֏/ҿj eYO_ijpdGgVb~t4F~c&]3B±NSJMN*hJ2 +!ڻv_Yj߫0 ̸9HN8KLV*I]Ie~g.*P-nu(J|xuJk(_7ObB 綠:sH:-2ÖN=g~0wl=;!Y7=1(5EvsWQ<䏐ꉘl!EIC̋31jV#R~$TPaX?J.y욾; cFj?8 @ $RPÛ8/Y?s8O?_" @?X3e$=95HB#f{:<CZ Hx·@&(C@ߦg`  G r`CP`ól5Y"~B/Tr u>v6R9lGp#d[9FF];|'#POxDW.#B^M|kvbۭj[II669v=4!<᧏P›. aZ=NAǝ׉O@(Zá@ߦpp->(sȚ"6zD"a?]g}?!7'=hOaN?Yy,TҳImPgi+^EqٳQbΞA O=~PRxɛh@->=)ȰR[5._=zKooŶuyWfe + SG:J=zȡ +m= *1`*ŻlR+L;\pg?+XP4 1a\(enw!,@H CBxX%oC~8G`( +]'gtBu%?y^磳rim<=Rqo:yN TЅM"~.n1~oNZu$RHJ M,0|8w{Cov$ vQ1جȘNZʴ]Ed]~y_8oz$9w:AmM+fn8Se(ni38Vt[ٙ4kw#&.ُFIf%%NZOeךJ=Y=a[}޾ a+thMTkjİ +¹A,{w#ԁ N&VPqC ~qNŖJxӇ>~HdƉ6#{5MB[*ب=;zv^ Pn _l~/|2t^ݼiJejOvfծbsxNgFUVtqD~^>:߶bp#HiG{p.y7ǚ$۾򄒩Άth5 )K7hBM 76KpP9xڔG V` r\He(yDk( Mɗ#]Ҹ/li>j|^h0to "t<(Լp]$R F fgB :!5\L׍ʣ yD#}C*ͱeSҘ#6_nR8?]isDJ`6K\R]r W4?u69YYv<Hc9_vuz 2n2IhH]c35\"̅b?Wo0ҟ*;^5.콄eDUE +_R5^,ţ5QEĎCd#VG^`ɰJca~@kHG׍fǁ]t MMBm|I4rzE{)CAfͼe/W*lr>;\pW<WEbW s0qjK̪UPWr.nJ6}a n8tx՝VEKRV-3ҡV@G WB N?z^Wai^^(eDq@_3,e˶^v +3|P}1,MV+|ۏQŚ}gKfsBEa<''Vs2G[5#:-pr5Sz$#T@][z7O]q) pMݯpGW8ItS"-; eۯsdP2<:udQjuM8V_sj7=#i8,RJ9W׫:c4G#mF &BM|ZJ貑\~Z&}ϗLyVX-5sE~%H)WX3$}}Ǘ޼Y%ઐ`a2TljO\eכ-!y)=͓\jԓ}Q<쐤ZqeW={X2wl h=#6 DShqͤV9b:@ +iۘOۑnSќէc:%\}]^nZCמyA~1] gVȹܩ ݯ$5}EbqmY.'$vC]Ń[}|PVܰ 1!;),ϓ|гnu绒WJg^b\I"؜eKVp3=]N\rN)DLIjLd|klx?miAbElᛥ٥遏/EYc|5zcbT'r%qzm4$ (} ǩhugS+`$/,Λe*XɎ j2m4X"%e!$tXR$DQEZЋ"m)ޕCT: %sΜy;{y\kgAWOQE~bYm// b\s|Bz%"LCs7uX* r7䣘ˆ0 +6B7%{!ywrVۨڙhNStI9(3b/KrfCťb yi_"]bqP)0WfePaiG>(TU/мg;((ЛI}Ao>|'LY9-$J} W#c]ؗ܁-#^$s@Li)_KTSuWYb;Hxq~qnfWu;H*5:Уckg;L_4"p[2`aϙu ?Q{̱:;:M) S+S*1@Q2~ާP.{dċt-qs< o<7&.Qyz<8 8_0"{8R5}dXoO> '}^͋R<-,957s(T5#GT{4< zʡrX9&{\sk}J-gtץ/6TiFSĘ]%.j{櫳U ڨú=SKp1կ۴qk4xmpk('Bw jحc]!DSaȖ ?\%&"$y*W Pmou-\̳ثc~HzVt'3fY4{MZxo1fJޡW<{Q1?U J'W6~C c| +Vm.:^JHP r4f>s˯3]jh +UJ 5}T}@ER3AonZ'/hkːiocSbO7 MTX&D ;Mwz{OPCں陛10%?ytb߷w}ڻCۚ.^KjL(3+/D,q{{Kˬn)8} KvuA͑jE;.YsOT+~7sY>D 3"=1jiJ +iЋg86fy*=4JE&}KXV6"Uic& {2p]W_ B͜٨+=s__n؍|nul}O,ݼݕaE^kk?s^ML.K#NvmZt5!zm"W!pݘ"vxe}8k>'xW\4'RXy5 MeM,=M$7E zDH0ѷ$ 7|VRF0a072Q[$5'T|u~tm?@*Uakٔ9Wxpfn֦ɽ7G!12q=3'$54[/Q-D3?kM,U6,ك{Z\>b +\:fv1œktmuޚe|:>OU r5y+-U$D}y6dH ي/[%ȊVS,77^/ +=ؘkޠEI*GJ}jtЏ$]{jsg+pv6~rgxSaW *´#Ձ%Cf$_9d~+[TN&$bUm֝9X ЬuWAb]2iw~r$lѷs܌zOPHbn8_E8,Qq EM]A%&z<ᒣɸ[~Fiv`K;oKA7ŭz7Wٟqrq[D8t]Iz보ʀh+8DoVJ9+9ޱel{1a9譓ƆuuUFV1~́H2BqoU4$Hyj $Nɪ1XP:Gқ^{[ ++&r.W[L9aJ0 +!*p(LE+ + z7aЃF1QGWiþ? Q>=Cv9c^9*)Ta`*Aʘ'T;C*0C3)(aJ.v[?y+zo |<NWs^vnl5|p,-ci|nر2m ;A+oFznszSSӘ5 EؕsZf\gs09_e5WLYc9BTB  )PaJ#R Υgyii'.XlCs('[RNGuz0噍 XׂVNbwFa}RI,>2j}qjƟLʽd"&7FWĭ& ^I.F5e(wn5^Hդv1 j=< xM~c@KEb.綕`rw6]j?\`n.Tu &Ϩ:U4eܵF@E65j^ i,z/޻ѐHjr "~aw=)0v'|Mu=&7, +XO| + +p9J\b[bFtesg%1ϤLFwm#M|̀ـCqpH. [ƕ[ +˧NLm2%._**M,%fU|:&Yn;Ecűc)ˀZoYj&U*)}C|Aݐȷ+<_z)AS̤LoTbݩN-yi6 16rv 0B7XsvPHLnFZO,<*~- 9Sؿ,.T? `;)("i͹ +Vױ Or +6O_&T*ߊE0j]6~tG!AMyV2 E> U;:]+\MVV@flVONcz5+]IE Sb#Il2vl_ʳ{r-"MrkU[N_Mf%ѻ·}sdk*%J]fOY3t[Ӓ;XNɭD ЋNMyLA7صZ.kMXz~㷱T>%mY9&&c.'A M}5}R; -4â!8BMV!\I}=;cTv|*}3 +Rc`]0ͱs~G#. ! Mgeћ5q.XY~Qmg)aC|܇ùV E(-Bdsq4!?{$;g!{yU@KX6ޔxmaMDc{Q{AyL8۶5?x[P4IX) +fUqxإcS}m33dɀz6mrgquRafXJ_[zz.};'{km n b9)fVΪ + &n%G HDD*9,]:-=( =ARܰ' %H\տW)$vєMzFdbx50p{蟡崕SHhĨv? +}(84 ,cCkn5vfxgL&=i !8qy# sXfZ/r3C[1v{GWoulؔdt_H }웒D"z*T}W}xWUVמzI$AEX̤O/XUD$ڼBBoJa7ԣC4/}NDJYPɼ2*EFKt% rt(s/ ,z 9 \#ܴjYsTWs4>"o +U!{Jb"Y8DŽEZ[AԙEY1!p9Ik_L,180'JSb]_omRAV֋70yxi9)Xz%xf7Wѭ1"ZIrpllt@Hi1Y@4RA aIEM^{')@;1WQ˫M#_r%a[W ׃m{B/%pGW_ @1~E~ͫ"F苚Fç齌D_ڇGzI̙})AIvqi3D8ʙ0)M>1~wL%K;y//UǮ-~\Ud b9u:>yo iN!6XTűcTmiIa=UXBα`8 (\|{tO_z|X_m?|NFLk.ud=5nҷCk[5Do{n[35F4-5Bg;D2f5„8;sَÆr7c,(5,,_{Ei,AqyLt(T}ۓAdCTƛSJ';k2_:̈́t9[r*q!`i9fMwcNL&q֣KvU>[6KɘʫR@||H0l6$[̿l~niM=k6ek#Np48?\TpGG,Jy!*rGN #U>Wo7eIӰ3."+"ٓ]m_E552Ge_QJpm5D(rQ5#K78fQčseN?O'|i`H]wQU>q [>txK~|^Nzg5Q٤Ɍuڻo;"l#cta|:(48yאZR OEnFv0. SQ/ +|KOГ&bByU3 +1IW TJG~Fs,f*>/eR|ֺؑIqϢU4ifP|!\]ʇbt'PqiuzC$X/Fƿ ]q>@fDPRyD1egYúB<*otg)uY'=G##~@f\5T(Uq{Tf0Ev;Բ>|콳asR2r{_k(P(* FVRͣL[2 - ۱FL0`"73}+3}-dBOGbp[Ўm1+W K8D$0zź8%qX;EHn%>^ew8#L+m{1̗\TQCk{Pl"Jh1naOAi>d~=/3Zv 7-/%H{xw'7~GS)t^%e0>c=hǐ,*3{ewo?] .i1|m'A.W2 oK3˗h \t)Sk&kWczz]a4PDʭGdKIʆb3$ ̄_xD4bq},dđW6i1zYe6)'0UkHAK#Nq &)>PFf e-gYY{]tq7L2Qa[KS` }ccjN ;}-ƍ'[S sy+!LJ +9 "Nf$z툆+Q:'gMzÓo9Z_#ӣ,S] ~i16]$*h's/zT-;3H9M v +}'HbB~4\V5B[ g~7XK8( , ;B ce,.\ck+cogۏ8)E`肠K$\&H|&SAE`8&CQ6茒>A|Q^65 g5\09p9M>1Y.+JPVUP8>EޱM5Wv-kV+\?&Jv| ٿ~dL(Ar[!I^z".\SSr%Gh-qA!9?=)0 xS̭YGٲ5͌fη$y8yNA/ꌪ7(3Y ;ME; ?+Fu䙾%}B!jcjiY/GΙU6K6E3T=kdFYRR{hj0UG*NYѫ[8`Hf{(1P0k ҐQMǜj{&8XM3cPqǧ[{+8vU# :lsu +?pi"'^E,xnrHVaza:snt!Z^+;)rhT46O1HQحgb oGN+z+ϽO#{dcCK +R;d?zhd`iH?mE/Kor̚m~4\PIsTgR9:زM{{Q/USI_mDe?EG ':whX-.E; k#ndfw@-@)Ӣ?wxm!ne;DxFz1@v˯E9Qb! +}'; W$} +h"SBSY95Qoo/.Kl&–㑖AdVޱ7%$7:ϭ8 VPh6KوeR>JSȶh}?>&deX^z+dX*Fxτ!ƒ]A$7uxdg6rw\cD Ҕ"0|H! ҳ;'| 8'ogC)EPinR4[<~הfݦc]tlُT '{}NUjFhXR }iE-g&R8h_G2T {EWF&Dz%v;oz匏5HLe\i~f +?mqs9:s^:ℇSI~ Y|,bmxPG[KT[ _mxЁU8)"yC0%Bެ<9ajEF< T0mS0ܞ`@㉺8U +ӱpWki'/NsI3O'V:R'RlqؐshQ<\,^Ţir iIYMU8}1Q2,q1cNGJ埋E5d?Įov[KThII<ػk"W*$&Xw&QY,a&Hǫ9>''iSx`5Ijng _hWIS}^nŒt9S/;yVcŎ;:wqZDs˃sNyrEd]nYie7gcE`6'[JuM*3&q=P2!|]==mX=UI +"UQZ|wL'$k- +D0aZLM2WmBckP>3YH'js;< g$k{{<&WmMV[.1 +Qc 'Pw6H_;m?oll{A!B5+'*;\h\kׄùF!4 i" +\&ƽFdGCvкqsU܎YqϩOe7;$blގQ̦q:;O=@;syʖ2m}0gYOB|&LdJjgp]BQv$WSe g/I0nSskC"nRMm,VԘ;;xec +1wt( !oe@bu,"mE$ +:&zRb 0h qy|H戶20d+G4J$(F0wѴUWmhЇkM)6ԥ]i!L+~Yd-~"P cRE,Yu5u`5ȶoWxYF:kYRX͎h2"t + 6(_g%jo%,O>, e;9I|TJNuRj csTJ7}yI,C; _,%j[_齒;_A䀽HjKfPBXFAkrCy/!ށ"S45586icOw8cHzG"?@F'ʅ\_CrJg{s_ԉmVGC 'h[(^v\{ΩJϷUPYklY1"!XM'רFI=s%-$o9Z4y>%X҈m/ʥ|8D4UToHj.~L։hWԃX,TVP%ooj'҄a~L:_y=7(KiSqXԲJA0Ւٗ~=LꖉNYK5҂qn< GGhђ߭K˕ wrT$QnjpLQ7xZ!৙E=.[y|&!Rߙ<$;Γ۽Ư &wLFCU˒*c|톧xHv~gc__LL{L7է}8޷VN<in֐Y>OƐђq u5c8~-4K'(^xxffB#TX1f'of##nǖ>xv UPe -\SrrKt/V4L @l4q..+ qMDD>[(NnydM; jqupF T߶$+ELeeK.kn#D*1%LV/oK&MqNM(^OL\3#m8h'U"Hud`gc4Q4%yN"LEMݣduNcr5NN-|[eբiZx=M=)3ۚT>^v`w' +_?h gbtr7` @JIO2@E|zDgV䁐v]M/1Ń5+GPC(u#B}8dջ//<foh@wX-hիY=eOH\c;/ttk8z N<{_uɿz e/(L4b@ ݾȐߘ3+vuAo(^l-k.Czxdl/lF +sF>˺g1Kk+$Rɺ]h&$t$(>V-8j]ڐE$qAg,fؚ@09:ymvێiGD|N`B{Z$< PWp~zݰ kDeưF2{E_T 'V*-knY0헖?-J:M@}UvkPS3je^kw}pHʌ=Ul,E +_lG$U#)@Ho(i#܈${nFvbၙc0-ѓGwby#^ k D3w[d޺Ft$)ɸD5ֹ5Vb꣕t%V +A +f,^d[=i_vlsKچ𷶧`+vʀGS|x 9km)cJeR*dk⹚~· 6MWnQ2^BX*,Eqm>kTH{'@X/+ +0,!56y>pҜ,C0e1kͦj%ߢGxؾ6`>#c^7 +Cd7*ybRgH.3|6|2< ÚLOUMLVs-yte +9HCSɒpq;}QKV=ݰLW{TDMOv}r&!pC'j(5&:DƵ+SaKQg0ʭޡ6h3o\`V+渝"&G&2Mۅ<>L+ȸB  +-zS^s̥YkoPKޱQhx\7^ZOd%M~5/zLbI?7'^Uܻ;@?Ca٭rFB/] aƣOͣw]uSf]SRs|Ueg'$,dvPh~U KZ4J{&I6l E(C;kz1a%x]{9wEO>sQ>?jef㗞k]*l{d& +𨬖zК}۶5IJeN8`ovrmNߙ,Tֹa:-e幞j1  ML-J,Y RT{=Jhj|R*gNϹܤ>e$ |}( ;c"0KCozйŐ^s篫0rhPBmXWbJ1V08jg_i% ic [x\he6sc8f4oF)ERWj*Fb R?IK}iE.ߚ_gC]G_ɭu +}@lFHK$R:3rXa2cl>,%ٗ/#wΓ*>ӥjfBjBg& ˒IBQYiIn PNdm KEP&Gu&Y+^.dg h egC2*o̜r?gR2V} 6S 7i Nǒ\Zcame$΋u!Șd)O!(cӅ+$p=[5VXg`86Jǧޓfd׈UB*0Wh/?12* b3Uf2E[PS9v[dY^5!%(rmm݊"v48Qږ,_FXynr&]6gFP_3Fn:cA 7.B{ IѨV`OVJ3)&w +&k1&kif58[o3i9AY(vJuy|}+*׸"K^BL5ҮwW-oN6ZX>FP}Y1@Zs1Dw \,v.x#MBEc71aQmɜ%]FuqG/](g uCf rۓhr❀ a긏RlT& 1%+2”o]a¾&9+j0wXψ" +`BvBƭΎ7);8#ci{#[np'}"8Dс#'IP#gE/uxZ&?w%}]!QRn\@/)= >iqbghyMGٯF|WYvYz0+誧U&t nlP +`{f˃@A$};-7+IT}S}ӔLbxQօhCSC:,]Ͳ "OC5-ӣD;3bÒ~}:W +?y2_1{mQ3v&lil>6G UhgS[M +xiaIdXLY"Ӝ.ǻlEV +6<.'KF~+"{RA)S~$ƌW~~ cc"ꊡpqâ#1c;'Y dqѳ^ Ŀ]9.a"mB Q,&`М*=)QQ?ro>[dnQ +r$s) ./Ob҆ԋ\$и!)9.=dFòD2"Y^!IӓERYEZ|nˮ?G$=(/[xP;B ;&euG ֔:X =*vhn5A$aΓpauIg.Zͭ +WP޷9T9͟gPHJyq2؞5Xgkj̏J9ۏ\p?/Ο,Bl׷;[Ӎ~JYKF¡n {dL8۠'+y| TX!᪙`%Ηj֧`0z5Rm54-]Ҁ裬q6<?6lW= C[#8Sv6V_}82/#$0ID8Br[GₓZ9b +h>Y0^ZZSq0 i~J'i=WonP) * /:{vdzc(2L:Ch-c,e+q +T!0 qdIv&3M L#:P O6% L;{~|NtnьQ]brNEcŠT>yhRqO#jOa%GfkZ`Xaz`x܅ҙ)Rzg8Q4k"xIqs*_p5&s  gvv8y VrheeOo$X2gȄ.>áMp>ggVޜvw$/w;4V}094Ӛpڣ>FO '.1NiP5un9ğ37&}a#TL qf8g/%Q_B}* ˷*_"ˁ|ܶe<٢ +=PzZ\3fζ&Tg4˃mY2:E43 j6Vwjũy]i| >q" >< 0*fDTxaͣ +6 +SxU3EW$0ќ*m]'QN3,a!c:qoyט><=!> icy +!+?j%rUvkS1Ƨ䗻*Vy޳ 6RϹayGM6m]<^&Yd#;(LEy( ebS~b9x޳ EΣ+ǶMFΞMgųNR?Iy=+ϙ?-Z?t)W3I[oCSynLd/Mb۳)]}1ˊg~ohEY*=6"_UG|]P:q7*̏o>7uBy^|ل_Sÿ^ώ*unݴ@F k4&Z/yE-녰C4FG䜴.zжh=R_(q/Lj\7fW"7FI#T';L4Wc,Qn Vu[5'Hij=Ç dtstnlEH4Emo>RC Ne)ކI";n2 +X +pc"фQ BwwߓFS ٫[.}M#ջN6 UwiH7ިn|NA#rx!QGGӦLYf4>k mW8mk_xv8 '_`KAQ fÂr:>Q/P8U~:4Ms0C>q{`?TQCScHMyd:{HOK`5H։ O +)\"WSkj#N}QnqtjlN!9FbĶ)a.WBb:B@hfPUhÐgӶN6M3ML8h1GJ Գ ݅Nꎄe}_l1 G}fRB"cx-tZEcęL>3WHLQ]j;Ƒ#@Nd*T1WsePӻ5zFsrsz١^tL;5yxoǰl.w/SVZ8#/t9@S WG5f=>%M[J gݮJy~ HUTYjҍ|\&r.\9rNfٰL{^s\ތJ45Èsԣ@{f]&u/p U`;̾ӯ# :@ _(6n{VVymy}5SmZ>΍xWzF/!q5Iy|oe}dPDnD.~QFX)ULzd{)60S&򩮔+xN~[8+` +p7U}C/D ׬[tZ V§`4˔-?[$otjzxr#7(i0ԆSq+nYև۟mnKNHZFG|6ܒA0geݼoBQfhq +!P{*iͳD\֊HbD*s>E 7M`q&hnKi?nn9/)`dBv(#w3]dO۾Ҵל@PW2C@)`(Xarζ&PL]Q8BkTۢM5h:߂5j7ųfgoⴜ V9_T<~J~O(3nnj>z^yҵn-kuǿkR T+C8UU^})*!}"_VXјϺ1jYmhZ:5|x`_O`pԞ|S .<3u#^3I-}@ݷxw'l`KA׫y*-zOa[E:MΦmd߫J3͵&?r&gA.kW"jkKYe{ۧƘDv=~ti(ڡ1;F>B7R9(=t +SC4wU?mI'{1ny$(a[Y䛁OzFۜĪ{GV?/߼YEYIVF^IYQdPTaRUgRfcoihnw?FFfzf]mKMYAoOK( qo_SOMYS_?=-#hoq2Ԕt ?HO{gR?T7oN.Bǁ Կ?== EeOCsco7_aioFjT ;?kid@.xAD@ dd`}c0?RAIƴWyfE7"PU ө2(2)3)+300Щѫ1*RөHUWD՘JHS]S_7OZz:jzFP>F=10(Aޜ4afgigwD??#-ݍ[NFNYYYdz逴*4̪Jy +2ҍ>_u&=-H/oL̠̔gbd?,t'w m([@#BS]OHY3^?5=/&jj KNd'=hHKoL@-#=Í7Jm/ CJe|GT0DxyI))@Iy@J4ri`uTX`t4qJEE#e F_fCsq1S201PjfJFef7Zf ?=OO3~3P3oAW_aOmefc2t@ZFѭ7ug`77jHMo.z?&z021hotk7z7dz +_)*i@Ƌ<dfdf2r[tLԌ?+Z DKO{WkcjhV7z::j:&&t*zJz3F|M=P^1q!:Z*'^1:Z|e M 2Z_I_]UOHDU_XUGd?Կ,\WDC JˤP5EU#c}ɥXF&** oosAJf%j|ЌF*JQTW5 ÏUU ? +6t7nw83]Ù7_WOp䰁 4 Yhhh@z:f:F&&iA_zJ&jzfZfڛ[C/G8rc 8_q@"R.k50A؀۠8|?`?w*;!6Zx?煬wp.1KAH~IyIy*\{^~ !/W&*}u?Wt" D#]]. +JGSJGrlPS|e| |6d*1# `yԵV?sA`w?r(t~7-.|ȿ?p?\ ƩŸdA_Y[^YC[^MQSod003Q(<@S_Dt.LtL5&:e}cUW./l(i +^,myJۛ̍4MT/)Zh~?T7U4R >ᕧ䟋 Ƀ&FB:zJ:u.˔2Y./ /Rg/%/EΆ웮^ٕ_K%{i~‘.jqK ?HO8\`?ku{:p GO\n.k8u_5~.u nקpk5}_t^^ï۝ku=^?]ѮpkuU)O՚=J=;oC/ݮ֨'.'WkŗWkh`ؿ\]zIf}q #qG\CT>OM/tvt2~%e|!/qGx|'au/˂赒)>3%%5 [Ǝ;ڇk?G}qoqȿG_G_z#׸k|}gGs?ّqD@oq#vS^٥qԿяwG~  <y?O| +٢wkǺ\X?=X؟]qK]X.#bZq%-%)W{~d]u=/y'>?̏/oa?>';>?>ࣀWM~?}~Ћp%ϕXG`. w?OK>?7b yW姯ƏϫwyQ W{~QߌKy +ߟ_<+[返{>o.p_$߃=C|+W]ΟM2#? p +笺g"?y~w$vj|޿eOl.vC>?='eWTHoL !$%@$BXѝ0I ? :d T4v'P*HVp +Mr;W&ޢw3$5( l~L*6_}~דbz%VHm]yex4wcC |"!s33L'@Yuhz%tӵjP^᪩q>^zԹ#ZG}cC3+Pl tV9[GMn2sAVvnl&v]Uz׆*g 6C9QêAWJv}YAD2V +#!Ӿ<beNݕYw,Ҧ(<*ZʹXQT\9/q+t/Xة+6ʵT6FMԵ"h@H9V!O&TU]Q#'Ec@F\K䠐TzJ^8WFoG 55rr}41eCJ +nWm%SjI=U{ZƆJ]4 B M5)+ +YV bĠ̆M]o[ xUe5VeB\2R/(ht=42+7Ղ>7ӔǪj5j\Q yjI`Lhn3䆖YV:>JQ ǨŮ k:( 0ܜ)F]~voqꓦ읩#'Wo<] +"}W!~,SnQg +I#Wn?SS7ʫ9ɕUUZQ}_Q)6>(m?[n?Uw3)1Dѻ,'_o}E gp#xɫnrO tpݯ-78PF"oF)꿯l ʟ`&oB|A@?~z'|deS"W䍊|u/(תQo֏lP||gI;iq7kG֯' {[ybǂlY[r-- bGD֙׻m?<)3 +yz +-> XvS5?\e'yćOl=޺i\v w58`ds'C')BN.hG8zGrt:G}G7| `uoa:#&WW#2FA^cvO|x9ćJM%>H.3sB| VCc#>  ]a.PH|h-?OgEmRHN}ǩ+j W2Lx%^„ B&lest&< '3LX$^o{N3D e{bwFp,k(>;bGx~,7m fQ=5b@?1) A}I^yKkgv[H_"zЋvY-][z, Ac!;k"ULSMV.6v~*d_kL[>{Z XcS#ؔ8HP2e8h\#5r/-D˖^ 9 P-^^NtFE7)?Q0@OB #zרǧ#?ׯGRL=$m|1!HP&($"d>K~JCي]I}(md3W~WU%I;@{~ fQAċdR.)%Um&".[['<&bCv5`f`!|\(yZ{e{2pv?ewBOtIڋm[OgOH@c Ó-bTƿ .2=pxDMdna{ƺOm%t_Zzn=7WSɀ#PA1Uɚo"@OUh֔d,(Ǘrtޤ/鰼&!k Oΰ|OH9 >5d}>Po؇bȗ<]<E;SN)O\䏍 L<`/$p2Nux,LFJeBx"4Mw_tJӝTJӝ"4]e"`T EhU:!b_J#dlF)X-5BS0MWw#4=2*R#ͻ֩FqI2BO؝kW`͙>'$ S_/-fCzHzL#e\~DE߯t~Ht0''t/'313]dh<ǸCW91 dR(aɱyt('GƂ h.PFU~Uƈ|Z4DFNL"S 3N9 tRAk֞\8-=i_].Y)i hWѦ{^<}cqctx:>u(9) ! }OXC8:`OxG$ -ۓ WD{! vA?Gp& h\z@ۇMѷJ"#W0U_w\u< +˯m?*9ȥw3%@ۣADz$ݨ{.ut|t}+?{= Dw_{uZm:ۥgRtR9}wh un?y67Hf๮pofo,r*_x{C([1i@#PV VESh, 塺ViPP(Q#N\::UƀƂ [y4ut , m@Vk?85_pƐzK3NM7*#^xX +=Wg1C,Vj*T)#k.2Ş6cJh`K^a Œ[zQ{MbDcdS|U Eɝ(|pHG*S`"7Ȝ|tݍ4GɅv3|dCtJ1}i/dΐ +|by6#@}dz:AT`%YH>a0dΚ< +qHQ\NEy"H|> InKw,3;M$|i\{&K+rdQ{=V`lm3$$n>{xl*e|X[_#k$س121s>Zi]>Ru[࿮&1k,%'y9Ɠ Y0ߚkZCZ&XCϛۿ&3ke| s-?~ O2܋%HG..k]!.p-q~Yp/6mWX2%/ .~$eq侨~Ie[S7vꗤ5}8-c*K $IǔvCu z}wԥ~UFSb +![\cvEx?JӇ6ܰԵ^~.qed&v --oc(ph/rKmvChk pB #~bׇ2K@?~L{ihQ~\DžZ.!:C{g 0mжo8m<}Gw=ӥL~ b ـoYnAwxoy9 B]~7{ ct_@߬g0S&у:h=]QjJ} c*z:osԶf>!qd]΄B+eO B[iv~xZAOgcB k鉟Ӧl28O֒cN ,DO;*B󫭗ϬMv$^?7 `4 oS`g_xpw96uݎ$VŔ)COgƒwŔyC9a~M +eZL=E)E #=?QJz4=G1dV*2KAOC)ގgS O4ΐZ!5KMY[KCHhJ3\.*7uH"w! #,޺kծAz٢ڢ[mVkKW6m^MjmUSC[ϙD۾-̹=9yng(X POa%=OlhzL@'nb[kX{Ob7V &蛆- _ f5Q,wzn~ghjD^W8Ս4~K'u]<70J T+B3ԍж÷ߐhcXɉAfQ[›;6;75>MR.d/lI<.y#enK;KeKy[~ȆA6n1sAɈ"ϛݕ\E$V*F6]cYh[!]fu m຃RZ +* ++~)ƿ7;Cd?-e|7O !R#@o~jwhnL_;15;Rs?-gF #hb8:1 h2S=*^*T ROEeەKBYa%NKO󤟎~:b~`J6S"~J(JDJftwQb)JY^LFoT+I nEmMEmKXG>rtd%%QOHmUW{3gD-FP4x{&iх 0aaMv|L<θҷ$(;߆tC@:Y1 FT,TP'HP"QaB~D?ǃA\\yEr>M5.YTVϺͷ.ʲpǿ\N 5-cDxm(<7I<&硽2P'QWWzF12o"dF" +>kdXL<#95}κ,ZP(#Zo2%wFsKs$lJ#=Kw|3U|`,zhyfauP`ŌP|} MoUfrf "=nO^,d8|)Y#!1j<&}6+z$YN'LԳYMzdEDD3Nw +Y>T,eWO zbSz Xnݻ:Q|~ORBz (nK5k p*ydrGrh;_Au7"SGsDS+iIr#f]ǐlsECr(n2Nك{^>? 51_"9'h y]H>Q*Cٖ s (.삥<"͝m /[.[((ݕ71hdDKS%DBƣFc#N4%\Ocs=;Jl 5YS-C$UYHZiոZ+y)ӱuxlGްxC̲PXefYn vre9Yv~u ?ꥎ<*]뮀kɗqI=MdĮI8OQ*9x9K'H <>9pgBUюOD=.1ȡʖi >#u*c{]Qg$-1\Ii![ت m@OHϲE}KF@<6,_ρǪG)N4jy=e@F#ox>Pp`VI]^Љ4s*  ߆9fDÊ&V5kYQrT\"wL/XX"CUi`?rĀ,EHǎF> XI6##"#Aqڂ̩71<Ь[`MB˾Rxtem"|Gz5+sPɪhWe[, k-,rD +WܯqZ!D{&1:Z{^@AQZnt@ ւR^t[Ȍnw͚ \ +-(y`嫬O.Y7~bkֱX%xHBpc囍p#Sِ =.Y?VP>}@|wjD :o]r1w~yHK%RٞPuIzEP63+pY] ƾfx2O꓈X3[͙FAۻqqgySttQc/Qc@F}cM[oRz:sd:sY<6 miD4lWJn*&2 %z£ w4T5/289AӡħG˨ kG +Ц#F9+BA#m/xA7ubJߖuV>"7sbyz *A܎e `pCL&~Ҟah"L\B̚et3|&8'8%mJvPV T6 *Z\iDAĜNwrk WV4] }Mvoqr8ֈN-[Dălj bJ$KLİ8ZC;_ o673lhk!amyh3C=3)2>} SgXtLg0<5׏^)eh:I M@19$K'+A 8qĔ_/- 7(V5nҮ=23Vm2ƲXC=~[KAEL~ɔ9qp[܎Mb\M&œ2kJs"mydm(YdϧMC21>UoM;pM'y9/do:NX>TC.Cǫ&O:^<Nc2u #Ժ R>oMK{([%dB|mpaVȩXT$TO'CVߪ>_lƁmY"FZSP +3mhV1$>$@.G'6R^N힑X6h\g.LP[[_%XtX ]0[W+\|S@E%G^b&} ʿdHBėZQ咱g0/"/@A^dBk_n28##s}Mu is"?#wf,ű?GT.Ĺ@˃;aTЎ# 71"ם QfIE<҉{ĥu[~F@V8*j`iֹI$&YgL^~_XatxCՠ#MFj1~xEAm +$yui1X-VaS^v|xڕ P~͢AǥVUG8^d8p|U?x ?[>ک'|ަMV_Y񮼖^%Q!. FZ^6ut|oKR˃D.wt ]{0 }YC!}'ypƞ$0=ﻪ94K0{{-EsXGX$Wz8c[/y}:[MλƠM2Pzc|*yХx)!Ej9Żzjߑ[/9%d2 ҧC|yO/@e^]B&e8p-G_ƴC6xio@&kuD<R]fr e:6ycP^>]K%&|6%%;bkN2THֈ$L~ ߭Br`Rr^5*כK.li۫gX$|\X}c\Ӓd׻ow~V=?^/)/k$R1,Řoob*V?ǒ,~w(x?ՃK@&&ܹ`C(NY\=*vِSȆ'6(#9B,pPٱO~XD*p< ?"Eڦfyt}8uYZE7"uVsAl -!kBm[eBL0`ωJh6f_lR O'_K& a\ QAg%ʼn]{bF._0Iȥ<|t[A2l:b=_ha} .3D"@_Q Do7HтJKYŒ$s#MjK$+?8ďc"Em>1ShZe6O)̤`q>!͎51b+ax8/gPf*G +M.ץ4+wk8MMAk( % +A@^ KPªXoNOt!Ⱦ{d!AR='B + Lm5#VwfnqqLeq엎8Иl2b +V҂ab91j2ڂN +-Z.v w!7 Fw|ǡ](Q0$ú"!b D(N ouoBtP܅̑ AP@g{*>|oI1%Gbg "  > ő"UpGPF ~qfI2'PN!IąZּEp;"-co/gi|G|j'r,bw22q}4j܃#zmqc4ʒF u_Dvq"ҕAqW-OL¹X5bǓDZD&Es1EOM +s@.5%P skFD["9L Prb#^z61Erg'Tg8d>`e;,`o ҳɀ{ -S:9"r ,@"D^Y}qN"4))1}?M/1yZ*?O@|:A H~(Yno avXs9"Q4g:CRPB0/ Ϧ,Bl Iq˕/ZkTNE'^A˰_s4pֈ<Fi}b|'| +no\pn +7R9"S~Y4m̷y# RLE[}{"xOUI(Fh&O@ X~_D,!^-zy)xyv~Q9'F'azOǷK¡u2@JN? @ S$A_3N-N-9~Qe`gp Ah,x'g ̇xRخb >o }axr\rII& B$Gk 3৿4U:z&wrlE/;hxKxwH~?x%餩`I +c#Դ?qΟ/bqlWnT6oPߧbIxm5JLf4EJ}Trq19jA9/\uuƠi\+7f(|W`v6aMຸiEA*(E:~~xRqR?>|ycp}_7|b.pō҉ù}qp_sWeŹ\aʊ7چhNn^Cm>Cai>~qJ"zJJhTX/pR #qJ+mWVqֆE/TZEڶU67Dp;XZg}iaN.WY|̦r\P%o }_6E!?P~)B^FQfYb-8DᚤqT x'Af2&;];#bTNkfA1\PBL>߰xaIqZ ]!W$G gܭI~X"HLE!)'t vXI=\Yb),BBVckwdk?9u(,+f0'qVqo4h Rj8/X8а"d._KrWwٳ^\l^ʂwj9 ^߿S텓xB.j0$NkIS@4k&qoFZ $ 9H( 빸'!QѺwoB& +<` ]Nfca ?8 +? !`}8ĹPDrYUPvŔ!D ނGHb|.xCcL5RGMI.FxgwCk"3+g3t`7̛.}N%T2}wަėgZտ((Hgg Ya!&'ά`vxġ^YYˋQ\T>9Ѧתș8x{!bm&H,iʖҺ= ],˶і4ˠJ= +5G{*x5|l,'H9O#t9%5šPl4$]ܻweYe}+x5hVN3A^a*J^hhj;)Jb Z`5o&yHӼ`LFU7'C*@m&Pj:}Wx]pcPk( +Ko)[ҫ60ωlZį64,!yߞ{ '-yy^cc~gyGr~Y?z,4#eS>x1_ٗvّ8#4۷3Uֿ3ݳ=̀vjBn=LsgrjWrێNŵT,/8~޾Fi^drI1Ne>uj:{0Ȧ ύ Ϫ* g#Rz#wvFE'H@Ha'S;>v[C8u:INC?um3m32[}RiiУŚUڭ#7hG9IJLj\57"@@-:dkPNvU6RփlHzd06=_X7vs٥ +4ga|a&`Q ˣKNal=uҬ̉rJjJ.d6hY# Dx1{ iETr577-ذ&lomrMM iI2O &~n%|kFK/WĚ"[#T~^^Lul˰+3C(YNy +)Y(hs*SF8x>Վ_j;'q(~^yubt6Y+J$8:8۾'n5r$Y謾h//WۉI2Q]>܉p@޷vUyI;<DW&S!)yHXr?ͯhs@kQ@-FB;BcNJ&Lǁ"փ~`:v-0bMK/os v)/F[/)Jv[k dҐΘd֊kT$NFʩs4(E?$FSL9 + oy>p.z7ul :fHƜh$飍J λ(3^)EZt'1a7RA/|ުn-P& `\]~Ö?3dO-jD'i*k$Fu^f +Z rZSi_DXېmqV)>3q aKOrrGk..7y,tK?KPe Q(36#/_d[@i滍".Fy| $^NgגRf".$a{Sf a#;85CP&&cg6'i]{~)sP=~=WteE历چS+4hnΓ[v4i %UD9yUh!20k[ i;j1ޫAv|@{Me a" 3QimPia/o^d %zRQB~}f 9(zz㻚Cؗ"O@< L !1gvXͬddk9|?ᛈG ƴrjx5qPy=>e-ǘx'a1/z]D*_zL;|xpVaݠa&}Ҁwfzzޡޓw]Ys.9.q%I%PyP)M55 8*4J852')^ 6#bxا#z]\UO+9q]XXbZ4|y_`yƀgpM%6H^8ĎfOaeDv,y5M(]|b7NN"=(v{wP.Ӷ'wOy#$|v ,f'_W#Þ?jAC0t12!6 NEuxO e9 +ṋ)F]5h[Ht!W}#6o&$Jnm\ߎTߌ;gP ޫާ⓽GDɃnl>͡bmԮ0RjP/ͮUyVEr'2bXWqV'%YE" OowD[jD)eN25yj՗8 Z.pjkr7jnRDᨌ)8Rm9'`݌[ |}D*j_QJĞ8(ud* װJ~ezU?Zvr;7?q 3(j/lX0 y}*y_s{2B +R09"h=R6ʗؿ[\DL*eEז/0eh4resz?8ɚWd3.mP;IjʥSմb ۈt + 3*-uyvp~JZp"T&~&t9|ie[<4ku0[S^/j'Qt"r\ǀWiگ]v+[%GHG<0&/Gy29CY n{rGE^ٲ!Z.3< ,ڢp.I.4zrҎ !9ƒ{EDu$X3TKu/#/@))ieT3Is.sj9ViN,|c'ai1V^ß i7#R*-{"BU>1OP5U9|e8l RA|77Jb{ *AW^11 (˟D#]._ьASHȫ(@̠GzQswh4e;2N@͋b+Ѳ+Ctx'cY>,|Ӷ'ێ c6(|%z]AH*5 <_#E)\i VN3V|8M{N`In9wzL4N +s#YZ*'y[^KYZnJ ?'{<у{i:ӉqPH*]%nҌ4 .CnkcL8@uLJcF;pɎ{(}Ё>z˭?cע:nNj7c;wi҃sy'/F@jBKT Fe8ӌ/$+NKY"UO"(p/|ǚq`U}?Y\frϮrh) Cؓ).?"m|}7J;p 2wH^ӥ~B H!e9j#aym0f|Eu!>٧a!:0w 2"5JrN?h,X~X;(3Pmxt6ō[Hfa&O1r{">qK>5ȼHX)hYy5_|!?3Mx^fLoe@a/ƭrI`n܄|.^1.b/#^vmd/)6?g:X{ >\ȋqZ)9lB 9Xogr29?997|@Θ޻4]Z7q*w8΅3>bs:!O+=-@rvMhnjGbFw=)۞SQ}^xcg|b"Ɲᡬg?^xM'2Ѳ1}ȗf?龃t*}r?k-bas̃ 7v76fm.ԑx 3uz^ 6}O45!g57Ӭ_s+hw+ +x'i7`\ y82*ۋߚFDk <[24?{s/9E9 Ҟf+ǰHn.#<8)ʨSNcۯ7$x;Syyl;etqAf]9W T[4&o)Or vSԍL\;MׄI(~H#i<=&03zW}R@O}z}^q&dGloL?V?Ϫޡ9T>sҜzW' +Id}c:{ pMU")؃?RJ; +U9,xO5<8LגՓn'!D{x} qnT O#Qڭʊ,8֋M]8=bOXf N7}tx_o5}U{!A.7t ث;gn܍|޳#,!+aEY[,p1[{7ׁcPX<|Ŧ_p%Np 仝R.N<>: Fm:$Oh3eU7 \S+vAyfh3o23T uqb.in5~is.|_R19#$šx]H^#{@g]EcLΙI)6sp%&*;vJf7Ad)E ? {L%Z?&2 5xTBY˟nYW?hWQ?P[x~ slhýldgw?3,Sv0TFu#@&7A֏ YD߼'`4?~ ͅe.U%#%s/>-o0KY\uOQFm!-:!>`}vL6ߺ}Z4Ϡp7KlmqM q!Ck;ՈxuD6>(+wpu]7xdχPT\^O8uӛO!%1K\7 WtR#s _DB,R%|w&#閄mUn2dmvREEyh}cUK&27E KON(?Ms%zCAk&.Syt>ǰ, A_0ݚNI52Ӄ3G20`E$A~w-'U9rv7O<ʒ]Ag[ZJ1o 9nwOU_4'5XOgfylgg%bwJ xB;#07yBb0er~s/Ui:QD$=*'䐗l=4zsZCTEn#QFn15KUFUAN6zN=MUzTRoKGP@ax- l:AL{ȅ3҆gt|Kxi[vTp_Y잷HУD +NFܲSm` Cu'1̎b8t'1h#ֆ,7!qS0VCqx?2ړF 1j/ۦ7:B?|Xx-/5Veev!†~u^lh TrX*w YEؽ}􎫇y\쾪Qi}g*D :n\Pzw0³a:uي*ù":o-N*dO!z#sֺ%"E~e¼c}L]u)貳i]/8#mD-T~}~lTjp~xv#Fլ|_FQUNr~> ˂V$w[ѧm_$n\iZFLE!wD43upL Kh_%m'4P^(mhrAN%ۅ{}=&vX< +kn6#h;֒`O6bמDAV +Oڍn)U<ϣ +3҆gSeΔ3J77֍⓸Dj>FqK=>܁J0c .JLAxUB`,G#Ҋ.쇳FwRM;tp[]F#:i"B( [)!My ^JklEgn +Խ/a48ҞeC绥Cg({|iпf G{υ&sW~pc+ Q 'a=)geF UrqwLyx2J;2 Kq=quW.J;>: )c;vslNO 8s XZ-E1vW06hq$ΙoXeH]M^rr.Q'N :" l}^"hĿm?qr >Ļ.d}?sv(/?=mV2 +|>ꎒG[ >5⬹8ЂS_q$(mؗqmGoثE.~廛< +vAU(o͏s{&9a#DLT9^T3,}AK_Ǻs̕aY;ԋ)?}VHyDZkI퀙,ukV+}[r5|)L}>S̶\ zD_i1`Lj'U෧:)ns V=:+ G@+u/5!8Ԑ8i3 IgpWZ,Tźsw֥`=bpB'#z -PݳCwcU'yCL'hIv=s +C<-kD +ɧm=>J>=x.1ѫa6$i"3xt{,҃ΣF6(5;v)ՐO9(OcqK.U`6<^?y6X]rȑwLP/YGq;a>nK9%9+owW:|.J9d[L޹Fwhѭ:dx%$z%Ox0O(G^dhB6H9)ʏ|ǦD? ?uGT'xQ-otKVm:֪)>܁zwݼ?/zin{͊Qrsn`N Jj\FV[:=zn5RFt=fžoHlqriM}YFNcECv+IE5J# Ey|Z ue%@ o@Zʹ͠,"|H񌣝3wPn@m"-Dhvj܆&;JcU#:7w?uhj 2&,Z3YPʷbUٍ)EMYz< MYu2kp#kF%e<ڥxS٩>QU +2Ӣ꒷e|wԌmi'yBm_1n){$r8wVzJNi_" DݐHx+S/ y@o>k2,X&"ݮw;7_,*bF@hn.u !2Œ*h y~+`;k[`oI &zKckkvX ndK]S*Y)RҎ8X.X]ߚjwGd] (TY|wLVHDM)m/D!UZVWSVer.H.rbi7hP~g7Ґ{f9ɰo|ȶNP_Ǽi(xX{򡠙_܋K?*6d%$01p&!>蘿{OdHj)qL4$\= ]KG?ᄄ~N]l)ONS4{,Ԣc[ >KNe2lşp +* ,e]*D4yeekCD2kQscB;Z`gHEG. ϖprcBP2tFp΢/o#Xeȷ;Ij=E,*l7I|mY`y%}"0 /#TzDTZiM7%Y~YvE䈾Zby,Pa3]c?TS7 +>TΏ9m} egg\,_?< |}._LfNy2C%'xf̢/|ԪBQvl(.J"nU/S޲.PzBIO$!J;%v ~^o%jV~%D:uU@ܲ0njcUtJ@V\(G3sLӦOۃ` Y]|\1V|Ϗ+;ۊ9&aς\vVۛ+:Sqɶ'*|ę%A˩ƥۖW,lz~~󺴠RcՓϫ$f ==y:Mn?/ +@\ F~aޮ +xh|u߸0V 0ɗ/J*%m%&>o8Jz~b)(e=baR.XCǬeG-ʆD\ ChbB]jXz2 +KXpStJ' &'怡 +zϊ(~QM5;Oj9eOL<-g|#q trpղ䳰ʒ"H,}6x zlbOZñ/RG7wl<5{s@ݟktx]VhK0a up2F;Jc?ǟQWogU߻7=S퍬:e-B_fx V3y'J@nɂظ:::::1vɈ pe A΄d^i(Yp|JK~SRZC'd j%uGJ5j?mޝh +Җ`4-Pɒ 6x[Bћ#x!ZPܦLtW).fεнDJ^}2"HSR\cAXqȺ&Y +ඦ\ofz!Kxup"ĵ'XBBL",k&2>4=pPԜoQs*GXuKׯ^[Nx-?ޗW'k믻]__ٟY_ȟu l;>8yx<н0fC7m)`7GRQ6p]J K $@]v %j|ـOINշoGD[|6NgH頃}7x18>WGcJQ9:boRyŚU +w= ҫN]6VS9/B;@ށ-~+鰨rB7;XJˉZ{/c߼ ׇKcT/Vި(s>Oy+ة>fػ YeOy5y_ijeuZPfy N*v|5|GsHͲ)5!DoEc-`}`}bٔкaMo4R;.r&lmGh ̀u:Lr4:]S'`= ; >0'R8ꏩ{Re ujXQfX7<0)yFICiq"A)qj: Pvss2ȁɂh.1sm1 ? +Qڔ{u$Ǒo:qAWnhP1!2㹕86D*Th{,#Q{ ˺vDԝKWb0ݡՈme~;=d@ie}@֦ {\.kX]PbDGrz S#`5뵟 ^j[O_<-z3a=7ʝ]mcw#]ЏqML}_>Z|=[nmqqZzq;+W^)"7Z_1_OwGt#C׋PhlǿIVL<ʽҔD4|3W"^Q4XX8 |cX;}zk\Eq${OuEwaȕ%][_Qu)%:3߶&ԥOF%lߖcH&k^B|Z+ƾ(ӽ(N<Z[{kԨ&} &A ڈ](UA^;]%_%ߖgGt/(# O[C=ދfl2B|7wa[Σv@ꪛ5Yuu"=%&K.|&g`2 +E,\}ƫ&>nUCq- n25_L[cpQ1TySYA\S~}79zEֲeWٲB jaqM@gfn6DŷcE8rf/tjZf'Z1b?# m!k-xՆ}ىh~F_-ڄ6G9ɖ?ފB s;aef|5nuGi:Csۮ钶0E'՞sIK$c_OyiJީ=}W=R6 aO>Ȼ{73Uwȧ F 49s[B54xP2Gr 1M yF.mhnLht:Ej%I6zZ}gm(q +G6S54k4j6=2 X}(^qZ]SǻʃW*\6ߺ+3J,;'L +z9F;o bM6SS&afhIkagwx$puv{AFQM"s1AH 1K "x pxH3Qݾxg-~7Љ-ޘ&й7̬|7_#↛/#~OKwDE z2Its|*U JTt~2,JͿXVYs}=V,By2RϿTΰD EҒ  /o?UezrRp~׬x#&iO,e6ɷ3IwH-J +"~{0?Q$>}yG5N*skf +;d}ޫ:] Aĸ?f*W*_{)%(LVYEX0)=m0)0IY%Ңz!7(_{zƊ;=;./~Iۋu̹e9{]O^v|z5W•|]W* 6c-g4+\Ue'W_jR%0IbaV=|SiR?JʊU:_3 t@9{G2l݃c +g*w+NARū.Z$b$C$54B|u%ڡr#~wdSrI˻9\-=X|^I],}ӅF,"tg + VoU↎.XLhh-t2 aDOhEloEo ;L[>,CHs5z?WgƖM9X+n %װLrKbnᆴjGlw&p_".'Woun}_(V/7ۯS^ϲ{ K¸_5;`~{λV}G'_Y)`AM*%~lo+{yu,1 S[FU rn0O{9?b4e@N {β u؎|o[i7]!=܃=ʪ'XՖnZuBC=&r= +ܝ %/":{=ҥ<Ԫ/ j,B|dwA3+v)SϔA 6c4fzmyH#;\C*ḿ@r7J,oՍdug]݊=U:[amsWNO~Kz,` o 'ĩ!aVe.vw+޿猼&+^Fr3I97PlhK?ۍm<5X-{3 (L֎c+=Ȇ\1]"Xn)G4Og-d@vZ H<>}`Sΐ0ЛWQ#~tއ0nYw!u:MR11~FrtOrx7_H$Jš!9Mv0}e@KOc_1TuG8oA'6*f*żIZ7I$vb*߁_7GE.!y%}|lAWHzb?<QZLJݲOeW@JzǠ^ieN7b =M淸(v R$(Ka !IhΤsR9#V"\t}S}A choI7WP|w9?# +rKO8{(OQ=J5ˤ_L1UqhLyb~Xum tRѥ݊Lj-S6Ɣ$>[@:.pX^|a͛M? _bs&}~مarE^#*jU#[|i15Mas!B;--γd/eps!&uyԎX^5|.^6(vqKg!D;\V5YͅlKk^u)2hyAz))H@]ڭz]q2k{AUB{QvI>oxQdAk7zII!S!,_hsP) +bt%/d5h1'gd˺l4ɮѿ!%I2N<4uAOR".}`.h=XE9B<AW# YpR|2NCÚ糮o=_o'qnB;͒ r+Yv@Oդ + {kDgYDBEwEw!ÄZeЌ(v!߭Ʉ\59F`=oGW"D#:vVrAz%k +Bl.=4wSK[gP滣.,uS*l15;Dm$;7(l#`̦8PO@:1Dz L8G_uXiVlnK!}fY.)+(WSN^) XP^}ۓqʙ02 +l޷|[*w/VRmCHBjptB ~I$w=s@c;tk=H扠bATk*9SA ҈kfi:m K,z^t_bըxB2w/pEAEwGvԢ](e" mlki{/{e{k((l/Wqa)J+1YPU)I*ikŁ3(ѹsiDgPթֈOZ$Ѫ [2'2Sef_BMSFK oRq DMM1%ue '8v8{,$sAQ@~GUƞiW"U|+\CT% Q8Gݷ*U JVوx2Gu-M?Y6'դYDMhQK3"BlFc}[zQS,3 hi: =!F)*9Pj-ArnE)F^6-UMEd3dֿ?u)ĖsM2lCBɸ,^]5$\r*<[e`@ -oY`_csV_pKd"bZ-? +:N>]r5]zm;=; +-*-דxǛOV`}*:ko| o󑑜RBnDMvdn!l1ATw{MYſ mf#&bH؏B%1iy,bqK-&!Aq#fB#R5 . cm.ؚ߯\wEru#POng tKIKK}ߵDژ$b\OHlTyDR7](kzOW}A7Gn*3)$ +!Iz7ALw챠6mYxU$a\} +-L9:ˤhXȗ*Xc}[1!IїO[slйza [%~4Wg?-_ҍ@O[l\N>kwB/޹fHuZA1{ɦğⱬ3iP.2{IJĉTy%֜CGt͊dM}eg7!5wJ|so獺F"o8nj)~ζ-xֹ0')RhYr K4푓G]FVíg-K@"f 3A^/<nlW.p8U,w~GgsbJa +ܪ"R +w*Y;{&1o3d;[(uab.6ݹv=L/0\8w;X̽~TP"tv5I4EE',v毩Tk&0ԧB$(2S!nw||h~'sM{ a~B~bD =qH^CYH~1o.$I_)pARD*SG 242*:&v)LF0tW5c}! `BLALQ#֟BTK#&)@$ G$HDtg!jblSqh$%]$~?nH 9p~YWW*%*F(֫we?/zzFE1J>%2tJwQefȣ~ňm2ҲqBwPmRA"IXEeds_i)D + 2jt=&JѨ2$cB1fI #$3ЋrOQ؏gU<(pCʪ +-!'b[WNՄ~ xE/oIF0?-dvA8O6UH5 +``Ș>_c 4C A v]OL @S"a4 lG'!4%= m`n**ɍpUɳy9 {,`»>~ۙgz8w9Yp~hKwCbR٩Df\6⯏s3V~%]ۀg @|R0 /("L6 Cx7'a>k.* @|R0 /("L6 Cx7'a>k.=D 6H @F , 33{F<_jt;tT@lL )yEXXg)/`g +8y\ w@w=~k?V=a rV xAe bϣrԎ:-ԉE7,h!zih,JC(C4MB:T/et =Bh Z6FŨEcqġ'rmD%h)5ZV(Fc"4=ڄ69 ;?Git}>B?) ?.};S{e PpeJt7kM10q˟Zfd*5+Q.mn\XpbfUHH$Ho֐#B-'('x)"d+F>M RלXf(D +R ;ĸָ{cq^? +y,Y+$q8h"Jw{-4Ej)rqjJ0u%y + !Y7p}72~:aGVMoisWnٺR;w=5{ƌx{%W(TCN{R|Oox[n^俛/$ I5}Aܛ&`2I'MєxpIU__JHIHm7MѾMM/|_:A4A+A߽wvo/-Kei9uoZAߋOyҪ҃Kߗ:`p00MB0'-O:?qKK/|_tb<$B@!bH).j$`0b!Woс -`8w*j&Xb(ʃc<8.Z;]i -6R~[O 7!qE{70l9ܟ p}~ +}rͺ~ueWckOރg1p>c t<ĢU2B +V!شq'Li0Xu^ +EW_b5s_ΪNJVۀ=T?7g>\B3xny_υ3x?e| p_߫{U?<78g\eDV g2hͿ}Ѵk6_h,`Ӭkfӎ3学۹_Lm4[wym3tX5{Tęitw*_0ն%z,`֥20z̬‚ek֎1qB1(Xˍ^w@fƍ1!mqc!b~5@GW똕VN;>--c\IF8v8%J'MH(r؉KfLK ?oO7g?cB?~ޘYzTU~ƍYRjRWYf}X$*]I-f4̆뙧r̺Ռ(6:YVudnX`2汢5+*XS7Yì~jhY5JlX%^ +W&~*ȟ h3YIŒ/3/^(YnCqIcfe},#`tѪգaTf |ʔZ%/,)Z7 [Zʭf455SjSk kk@ .\[TJK qǍKK0/O1qb茴 tI?iǍ;lv@m:a،q:h?~q][IVf)Wpk +i֯ZjS_'_UI]9oLx|(V+0Yf'//IM-^Sj]63k>h>n=rXq<%kVr 3Q?jaRYiLGxjRELqKѪGjP>VԏWˤXdk /p֯\aq5dXcK3Hc>aG0cqGwNďLap"NH虻?~Ŋu4>Ɍe_[`ٲ54b* +׮ei+-3dY OV<qڥk1Ek5W UrLOd.c4pFk6d^<79ƬGaFR2f?&g922h0H[).X]@iMtpO=0 <1kE+,ZhmUp#D + ֭_;YnXp%T0NR;Ny0o`fbI)AI|$3pp W?BܿVZ.+\`rߵcᅥ˄}xrYvh@nRׯ+Z([EqZeo4?lL5LΪUVVH޽hSqQ~äjpmz_lR)eh(5E+(5g.G>?11(9dF_2niH _;?awf_t]zqeI?ut;Z7i\W,ߤqJhg[Onm2~p_iVKN=PZȷNF&Ap#)'ֻ|,.2Xtp^$=l';?0o{>Mێ iys0L |?w-Ӏou7+l +t﹯N_MsYQd|ƘRWZ_Z2q|kWNK=筙Fw_;4.3䕏VNP4/`Ӻ>DN^ ܈Be4G_VG|x{ 4|gLC?g?I?3~&?gLs_ +o^-b6Hx1x//~he=-]nTz [~- +֭^X..\/^`1I Vm,$wESk`V/Qьqqy3ʡ +̛i\yKV揯\*vOVK9 K"눢AX[^ 䭏.R{4&r_5/ߛߗ!$`s@ UW  Iq _v=(?gr@d@~Հvu|ـoّ< ?x@!߿CwfW|'&<ב>{vŇ3bodn%LSU>JLbџ&4%Ӵ~?-R1]֟'r1]ПViOiKGgߗy_:KޗN/=҃KKKޛ50=-_eogv5~ּ%dz_O0?IG$\I>M 8 2ŠL ?;Oz٧5=@eg;zEr1>]xu>iKeTۦ=o]d%G=o>ahMR$3N*[ˀbGqd],#}ncXVH|XX]rq2xYjڑwgeLLǙqI*G9N\.Uw'NwWTŗL*q"]w.ـ7f{zg$\j^!zݯ_~[G.Rpq|YzġSdIᡙdԏ3de0.&^/t"Q&9o) (j=) + 8'eO ME)@:EAIOqAЙ_ᯮ~rhzKE῿BnOcn\]˒':\{f3ZD+8[Wbp~Ԓǟ(wCO~_ǿz_{;tx#r6,qzxI70A[5|Oq69C9C_qA=}];ehBT i(]H\ݟ[1=eGR۸;WV-VMU5]DURVy6o~o ],$ PxBaFkae +m^*vCXQ  aq=گvZTซx“Pz`[sB EUwjdG{ogm]9=:߉0㲞r@0U?Z\Xwī.!޳DžS.ŏ8}4K<]gå&U?7P[WW+ OyO}mG+3_N_mӷ>w,p~3r!r!=oE|/+h]}l5klJ}Vpxmku=]er~|nQk2V-D, +"rŠ)ƯP't] ]QDŽ2Y{>c 8 O4 XxXxwu݃CGMຆK ?"᭤<|&K0LI|IR}{vV.1|z![n*L1֯x5^cw N;,\i?\|Jn7t|²U+V .}nϫ e?¢T%>w W65W^xؤ/szqS>ef>nk=Yio853>U6,śYzYRݢW|\4^_gɣ m6K6/l2}_rIǚ9=HbJ#Fb؄#D"q-2ֆ{|]"#JLK[։ J*f5gǕv!> p~\MIMV1%Wt{KedvnDf1s+me!+m9 ~%7= vt"|&˓jCq jdn2QQ=ZbSḼ{A#6AfnǛR I)~*1sZ$ވ2iL$S㢲z8cadu2Ɍ%+*BE&9u{%52cJ 7>G!Գ4L_tjvL d4] d,T" p>KٳN($.%@|<EPҘj62et'd:Z hGN)P\j{$xxEy1DsPTt4hvhq%( 9k[O;;bEztbcUON-R~~5z9Mr~|,硓R6Gٳ[z`KϟSf?_90{VsH0{yAZ~NǘNNSzC>Wm{UsR~< Rz{r5zx^~"k.C$9Ϥvv%<<隽w3Gz_jW'gL_pe~'eP_~-OQ~˜x> Z> D?WG|\ʗ߇km?1:xw{Jw!oM~u{=C_n2XZ[ 9Ou#HhμZ74576 eYeꌬ/sLMAע.ml<IU P6fQW:}m>p<ׁoBk#g 2žgYUE9-6"b ʪTNϦ:q\kY4Sq|&=&U吖 wjFFp:C~P4FrI5 0d@0}ƛ,bBP#/1GZ3Vu 8JGb$АJq19fSΫJm$%~ %i7&ih>R|[R >AK1-g5!8 +4SӲ$T؟Č&Vځ:` +Ȣ7dp=*!p:;SX:jߌyjV3k k-gM0*%0`M2z4!y)\"t-gb udFc(1P=Z,C\+_?h-ݡ}imگ oY3H0Բ:Jմ%XA ؐ#@\^C˧Lcaމ&~ ]3k$|Y%ZT1zڟף}I;xdp};q!fEH@._]"vaG` l7!PY$ ʆ K0ғ:6+w\bEX$HGG- Z f΃לL#ɶ@`S}O_w@x>2-F4ΧSxN"?pׂV:/oیYԙbj.ȧF `vFM"<56o8H3=x>DF̖ oD\o9E"ܳ=Lg;_gtP|NCd.fDjPcU8եJʕ$bTV8Q$gذ<^-!(ClWduJ6*J5_lp'K\au5’$Sv,'h6A4hK15WV䄏NGKAȐʒcmGBв +֍fGbƯ +ı$#1VIW_==YJODx>Edk[X@htIEpXpBKlD*0jl8q8^< Z~~o`rYkbb|ǽ֡ + 1rprDs#Mڸnmc_ 4hC0~Q$Vtߺ8oyl&fye]2f -s !/S+Ek #%/1vq-nHvoU5#bPd5f*]3nV7kkDn EkTТ5)s+]cW]ؼ<1̞˸KEv~ܬ=Kܮ}A۸]3av6vM1r4Uw&H+kdwFRSR7vmwLun_em=|av~<,aGvv'Bìq ^z =?dR:M|6+l6x ^jvHV,MyV7}U 6oSJ0>6O j'~2g`@om/P/m H8?# e GOW&}elVWB^ۚm"Ym]6NڔT.z֦ܗm҆; mWy1p~~c^q|cXlo<`[6M6_IǺE3})M.·3Y+3|e툄yF.|]OሄuI LY\L7=T_GXat=);J"R-raK0cPYH"+򜎔כr}EjPS.7*۽G~r!r!r!r!r!r!r!r! \ No newline at end of file diff --git a/Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.2a_utils.sh b/Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.2a_utils.sh new file mode 100755 index 0000000..390da37 --- /dev/null +++ b/Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.2a_utils.sh @@ -0,0 +1,1081 @@ +#!/bin/sh +# This script was generated using Makeself 2.4.3 +# The license covering this archive and its contents, if any, is wholly independent of the Makeself license (GPL) + +ORIG_UMASK=`umask` +if test "n" = n; then + umask 077 +fi + +CRCsum="3133134892" +MD5="d205c6f165bf9fcdbedb5192cfa13caa" +SHA="0000000000000000000000000000000000000000000000000000000000000000" +TMPROOT=${TMPDIR:=/tmp} +USER_PWD="$PWD" +export USER_PWD +ARCHIVE_DIR=`dirname "$0"` +export ARCHIVE_DIR + +label="keyboard_firmware" +script="./flash.sh" +scriptargs="" +cleanup_script="" +licensetxt="" +helpheader='' +targetdir="stm32duino_bootloader_upload" +filesizes="104352" +totalsize="104352" +keep="n" +nooverwrite="n" +quiet="n" +accept="n" +nodiskspace="n" +export_conf="n" +decrypt_cmd="" +skip="678" + +print_cmd_arg="" +if type printf > /dev/null; then + print_cmd="printf" +elif test -x /usr/ucb/echo; then + print_cmd="/usr/ucb/echo" +else + print_cmd="echo" +fi + +if test -d /usr/xpg4/bin; then + PATH=/usr/xpg4/bin:$PATH + export PATH +fi + +if test -d /usr/sfw/bin; then + PATH=$PATH:/usr/sfw/bin + export PATH +fi + +unset CDPATH + +MS_Printf() +{ + $print_cmd $print_cmd_arg "$1" +} + +MS_PrintLicense() +{ + if test x"$licensetxt" != x; then + if test x"$accept" = xy; then + echo "$licensetxt" + else + echo "$licensetxt" | more + fi + if test x"$accept" != xy; then + while true + do + MS_Printf "Please type y to accept, n otherwise: " + read yn + if test x"$yn" = xn; then + keep=n + eval $finish; exit 1 + break; + elif test x"$yn" = xy; then + break; + fi + done + fi + fi +} + +MS_diskspace() +{ + ( + df -kP "$1" | tail -1 | awk '{ if ($4 ~ /%/) {print $3} else {print $4} }' + ) +} + +MS_dd() +{ + blocks=`expr $3 / 1024` + bytes=`expr $3 % 1024` + # Test for ibs, obs and conv feature + if dd if=/dev/zero of=/dev/null count=1 ibs=512 obs=512 conv=sync 2> /dev/null; then + dd if="$1" ibs=$2 skip=1 obs=1024 conv=sync 2> /dev/null | \ + { test $blocks -gt 0 && dd ibs=1024 obs=1024 count=$blocks ; \ + test $bytes -gt 0 && dd ibs=1 obs=1024 count=$bytes ; } 2> /dev/null + else + dd if="$1" bs=$2 skip=1 2> /dev/null + fi +} + +MS_dd_Progress() +{ + if test x"$noprogress" = xy; then + MS_dd "$@" + return $? + fi + file="$1" + offset=$2 + length=$3 + pos=0 + bsize=4194304 + while test $bsize -gt $length; do + bsize=`expr $bsize / 4` + done + blocks=`expr $length / $bsize` + bytes=`expr $length % $bsize` + ( + dd ibs=$offset skip=1 count=0 2>/dev/null + pos=`expr $pos \+ $bsize` + MS_Printf " 0%% " 1>&2 + if test $blocks -gt 0; then + while test $pos -le $length; do + dd bs=$bsize count=1 2>/dev/null + pcent=`expr $length / 100` + pcent=`expr $pos / $pcent` + if test $pcent -lt 100; then + MS_Printf "\b\b\b\b\b\b\b" 1>&2 + if test $pcent -lt 10; then + MS_Printf " $pcent%% " 1>&2 + else + MS_Printf " $pcent%% " 1>&2 + fi + fi + pos=`expr $pos \+ $bsize` + done + fi + if test $bytes -gt 0; then + dd bs=$bytes count=1 2>/dev/null + fi + MS_Printf "\b\b\b\b\b\b\b" 1>&2 + MS_Printf " 100%% " 1>&2 + ) < "$file" +} + +MS_Help() +{ + cat << EOH >&2 +${helpheader}Makeself version 2.4.3 + 1) Getting help or info about $0 : + $0 --help Print this message + $0 --info Print embedded info : title, default target directory, embedded script ... + $0 --lsm Print embedded lsm entry (or no LSM) + $0 --list Print the list of files in the archive + $0 --check Checks integrity of the archive + + 2) Running $0 : + $0 [options] [--] [additional arguments to embedded script] + with following options (in that order) + --confirm Ask before running embedded script + --quiet Do not print anything except error messages + --accept Accept the license + --noexec Do not run embedded script (implies --noexec-cleanup) + --noexec-cleanup Do not run embedded cleanup script + --keep Do not erase target directory after running + the embedded script + --noprogress Do not show the progress during the decompression + --nox11 Do not spawn an xterm + --nochown Do not give the target folder to the current user + --chown Give the target folder to the current user recursively + --nodiskspace Do not check for available disk space + --target dir Extract directly to a target directory (absolute or relative) + This directory may undergo recursive chown (see --nochown). + --tar arg1 [arg2 ...] Access the contents of the archive through the tar command + --ssl-pass-src src Use the given src as the source of password to decrypt the data + using OpenSSL. See "PASS PHRASE ARGUMENTS" in man openssl. + Default is to prompt the user to enter decryption password + on the current terminal. + --cleanup-args args Arguments to the cleanup script. Wrap in quotes to provide + multiple arguments. + -- Following arguments will be passed to the embedded script +EOH +} + +MS_Check() +{ + OLD_PATH="$PATH" + PATH=${GUESS_MD5_PATH:-"$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"} + MD5_ARG="" + MD5_PATH=`exec <&- 2>&-; which md5sum || command -v md5sum || type md5sum` + test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which md5 || command -v md5 || type md5` + test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which digest || command -v digest || type digest` + PATH="$OLD_PATH" + + SHA_PATH=`exec <&- 2>&-; which shasum || command -v shasum || type shasum` + test -x "$SHA_PATH" || SHA_PATH=`exec <&- 2>&-; which sha256sum || command -v sha256sum || type sha256sum` + + if test x"$quiet" = xn; then + MS_Printf "Verifying archive integrity..." + fi + offset=`head -n "$skip" "$1" | wc -c | tr -d " "` + fsize=`cat "$1" | wc -c | tr -d " "` + if test $totalsize -ne `expr $fsize - $offset`; then + echo " Unexpected archive size." >&2 + exit 2 + fi + verb=$2 + i=1 + for s in $filesizes + do + crc=`echo $CRCsum | cut -d" " -f$i` + if test -x "$SHA_PATH"; then + if test x"`basename $SHA_PATH`" = xshasum; then + SHA_ARG="-a 256" + fi + sha=`echo $SHA | cut -d" " -f$i` + if test x"$sha" = x0000000000000000000000000000000000000000000000000000000000000000; then + test x"$verb" = xy && echo " $1 does not contain an embedded SHA256 checksum." >&2 + else + shasum=`MS_dd_Progress "$1" $offset $s | eval "$SHA_PATH $SHA_ARG" | cut -b-64`; + if test x"$shasum" != x"$sha"; then + echo "Error in SHA256 checksums: $shasum is different from $sha" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " SHA256 checksums are OK." >&2 + fi + crc="0000000000"; + fi + fi + if test -x "$MD5_PATH"; then + if test x"`basename $MD5_PATH`" = xdigest; then + MD5_ARG="-a md5" + fi + md5=`echo $MD5 | cut -d" " -f$i` + if test x"$md5" = x00000000000000000000000000000000; then + test x"$verb" = xy && echo " $1 does not contain an embedded MD5 checksum." >&2 + else + md5sum=`MS_dd_Progress "$1" $offset $s | eval "$MD5_PATH $MD5_ARG" | cut -b-32`; + if test x"$md5sum" != x"$md5"; then + echo "Error in MD5 checksums: $md5sum is different from $md5" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " MD5 checksums are OK." >&2 + fi + crc="0000000000"; verb=n + fi + fi + if test x"$crc" = x0000000000; then + test x"$verb" = xy && echo " $1 does not contain a CRC checksum." >&2 + else + sum1=`MS_dd_Progress "$1" $offset $s | CMD_ENV=xpg4 cksum | awk '{print $1}'` + if test x"$sum1" != x"$crc"; then + echo "Error in checksums: $sum1 is different from $crc" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " CRC checksums are OK." >&2 + fi + fi + i=`expr $i + 1` + offset=`expr $offset + $s` + done + if test x"$quiet" = xn; then + echo " All good." + fi +} + +MS_Decompress() +{ + if test x"$decrypt_cmd" != x""; then + { eval "$decrypt_cmd" || echo " ... Decryption failed." >&2; } | eval "gzip -cd" + else + eval "gzip -cd" + fi + + if test $? -ne 0; then + echo " ... Decompression failed." >&2 + fi +} + +UnTAR() +{ + if test x"$quiet" = xn; then + tar $1vf - 2>&1 || { echo " ... Extraction failed." > /dev/tty; kill -15 $$; } + else + tar $1f - 2>&1 || { echo Extraction failed. > /dev/tty; kill -15 $$; } + fi +} + +MS_exec_cleanup() { + if test x"$cleanup" = xy && test x"$cleanup_script" != x""; then + cleanup=n + cd "$tmpdir" + eval "\"$cleanup_script\" $scriptargs $cleanupargs" + fi +} + +MS_cleanup() +{ + echo 'Signal caught, cleaning up' >&2 + MS_exec_cleanup + cd "$TMPROOT" + rm -rf "$tmpdir" + eval $finish; exit 15 +} + +finish=true +xterm_loop= +noprogress=n +nox11=n +copy=none +ownership=n +verbose=n +cleanup=y +cleanupargs= + +initargs="$@" + +while true +do + case "$1" in + -h | --help) + MS_Help + exit 0 + ;; + -q | --quiet) + quiet=y + noprogress=y + shift + ;; + --accept) + accept=y + shift + ;; + --info) + echo Identification: "$label" + echo Target directory: "$targetdir" + echo Uncompressed size: 312 KB + echo Compression: gzip + if test x"n" != x""; then + echo Encryption: n + fi + echo Date of packaging: Wed Dec 22 13:47:32 CST 2021 + echo Built with Makeself version 2.4.3 + echo Build command was: "/usr/local/bin/makeself.sh \\ + \"stm32duino_bootloader_upload\" \\ + \"DevTerm_keyboard_firmware_v0.2a_utils.sh\" \\ + \"keyboard_firmware\" \\ + \"./flash.sh\"" + if test x"$script" != x; then + echo Script run after extraction: + echo " " $script $scriptargs + fi + if test x"" = xcopy; then + echo "Archive will copy itself to a temporary location" + fi + if test x"n" = xy; then + echo "Root permissions required for extraction" + fi + if test x"n" = xy; then + echo "directory $targetdir is permanent" + else + echo "$targetdir will be removed after extraction" + fi + exit 0 + ;; + --dumpconf) + echo LABEL=\"$label\" + echo SCRIPT=\"$script\" + echo SCRIPTARGS=\"$scriptargs\" + echo CLEANUPSCRIPT=\"$cleanup_script\" + echo archdirname=\"stm32duino_bootloader_upload\" + echo KEEP=n + echo NOOVERWRITE=n + echo COMPRESS=gzip + echo filesizes=\"$filesizes\" + echo totalsize=\"$totalsize\" + echo CRCsum=\"$CRCsum\" + echo MD5sum=\"$MD5sum\" + echo SHAsum=\"$SHAsum\" + echo SKIP=\"$skip\" + exit 0 + ;; + --lsm) +cat << EOLSM +No LSM. +EOLSM + exit 0 + ;; + --list) + echo Target directory: $targetdir + offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + for s in $filesizes + do + MS_dd "$0" $offset $s | MS_Decompress | UnTAR t + offset=`expr $offset + $s` + done + exit 0 + ;; + --tar) + offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + arg1="$2" + if ! shift 2; then MS_Help; exit 1; fi + for s in $filesizes + do + MS_dd "$0" $offset $s | MS_Decompress | tar "$arg1" - "$@" + offset=`expr $offset + $s` + done + exit 0 + ;; + --check) + MS_Check "$0" y + exit 0 + ;; + --confirm) + verbose=y + shift + ;; + --noexec) + script="" + cleanup_script="" + shift + ;; + --noexec-cleanup) + cleanup_script="" + shift + ;; + --keep) + keep=y + shift + ;; + --target) + keep=y + targetdir="${2:-.}" + if ! shift 2; then MS_Help; exit 1; fi + ;; + --noprogress) + noprogress=y + shift + ;; + --nox11) + nox11=y + shift + ;; + --nochown) + ownership=n + shift + ;; + --chown) + ownership=y + shift + ;; + --nodiskspace) + nodiskspace=y + shift + ;; + --xwin) + if test "n" = n; then + finish="echo Press Return to close this window...; read junk" + fi + xterm_loop=1 + shift + ;; + --phase2) + copy=phase2 + shift + ;; + --ssl-pass-src) + if test x"n" != x"openssl"; then + echo "Invalid option --ssl-pass-src: $0 was not encrypted with OpenSSL!" >&2 + exit 1 + fi + decrypt_cmd="$decrypt_cmd -pass $2" + if ! shift 2; then MS_Help; exit 1; fi + ;; + --cleanup-args) + cleanupargs="$2" + if ! shift 2; then MS_help; exit 1; fi + ;; + --) + shift + break ;; + -*) + echo Unrecognized flag : "$1" >&2 + MS_Help + exit 1 + ;; + *) + break ;; + esac +done + +if test x"$quiet" = xy -a x"$verbose" = xy; then + echo Cannot be verbose and quiet at the same time. >&2 + exit 1 +fi + +if test x"n" = xy -a `id -u` -ne 0; then + echo "Administrative privileges required for this archive (use su or sudo)" >&2 + exit 1 +fi + +if test x"$copy" \!= xphase2; then + MS_PrintLicense +fi + +case "$copy" in +copy) + tmpdir="$TMPROOT"/makeself.$RANDOM.`date +"%y%m%d%H%M%S"`.$$ + mkdir "$tmpdir" || { + echo "Could not create temporary directory $tmpdir" >&2 + exit 1 + } + SCRIPT_COPY="$tmpdir/makeself" + echo "Copying to a temporary location..." >&2 + cp "$0" "$SCRIPT_COPY" + chmod +x "$SCRIPT_COPY" + cd "$TMPROOT" + exec "$SCRIPT_COPY" --phase2 -- $initargs + ;; +phase2) + finish="$finish ; rm -rf `dirname $0`" + ;; +esac + +if test x"$nox11" = xn; then + if tty -s; then # Do we have a terminal? + : + else + if test x"$DISPLAY" != x -a x"$xterm_loop" = x; then # No, but do we have X? + if xset q > /dev/null 2>&1; then # Check for valid DISPLAY variable + GUESS_XTERMS="xterm gnome-terminal rxvt dtterm eterm Eterm xfce4-terminal lxterminal kvt konsole aterm terminology" + for a in $GUESS_XTERMS; do + if type $a >/dev/null 2>&1; then + XTERM=$a + break + fi + done + chmod a+x $0 || echo Please add execution rights on $0 + if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal! + exec $XTERM -e "$0 --xwin $initargs" + else + exec $XTERM -e "./$0 --xwin $initargs" + fi + fi + fi + fi +fi + +if test x"$targetdir" = x.; then + tmpdir="." +else + if test x"$keep" = xy; then + if test x"$nooverwrite" = xy && test -d "$targetdir"; then + echo "Target directory $targetdir already exists, aborting." >&2 + exit 1 + fi + if test x"$quiet" = xn; then + echo "Creating directory $targetdir" >&2 + fi + tmpdir="$targetdir" + dashp="-p" + else + tmpdir="$TMPROOT/selfgz$$$RANDOM" + dashp="" + fi + mkdir $dashp "$tmpdir" || { + echo 'Cannot create target directory' $tmpdir >&2 + echo 'You should try option --target dir' >&2 + eval $finish + exit 1 + } +fi + +location="`pwd`" +if test x"$SETUP_NOCHECK" != x1; then + MS_Check "$0" +fi +offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + +if test x"$verbose" = xy; then + MS_Printf "About to extract 312 KB in $tmpdir ... Proceed ? [Y/n] " + read yn + if test x"$yn" = xn; then + eval $finish; exit 1 + fi +fi + +if test x"$quiet" = xn; then + # Decrypting with openssl will ask for password, + # the prompt needs to start on new line + if test x"n" = x"openssl"; then + echo "Decrypting and uncompressing $label..." + else + MS_Printf "Uncompressing $label" + fi +fi +res=3 +if test x"$keep" = xn; then + trap MS_cleanup 1 2 3 15 +fi + +if test x"$nodiskspace" = xn; then + leftspace=`MS_diskspace "$tmpdir"` + if test -n "$leftspace"; then + if test "$leftspace" -lt 312; then + echo + echo "Not enough space left in "`dirname $tmpdir`" ($leftspace KB) to decompress $0 (312 KB)" >&2 + echo "Use --nodiskspace option to skip this check and proceed anyway" >&2 + if test x"$keep" = xn; then + echo "Consider setting TMPDIR to a directory with more free space." + fi + eval $finish; exit 1 + fi + fi +fi + +for s in $filesizes +do + if MS_dd_Progress "$0" $offset $s | MS_Decompress | ( cd "$tmpdir"; umask $ORIG_UMASK ; UnTAR xp ) 1>/dev/null; then + if test x"$ownership" = xy; then + (cd "$tmpdir"; chown -R `id -u` .; chgrp -R `id -g` .) + fi + else + echo >&2 + echo "Unable to decompress $0" >&2 + eval $finish; exit 1 + fi + offset=`expr $offset + $s` +done +if test x"$quiet" = xn; then + echo +fi + +cd "$tmpdir" +res=0 +if test x"$script" != x; then + if test x"$export_conf" = x"y"; then + MS_BUNDLE="$0" + MS_LABEL="$label" + MS_SCRIPT="$script" + MS_SCRIPTARGS="$scriptargs" + MS_ARCHDIRNAME="$archdirname" + MS_KEEP="$KEEP" + MS_NOOVERWRITE="$NOOVERWRITE" + MS_COMPRESS="$COMPRESS" + MS_CLEANUP="$cleanup" + export MS_BUNDLE MS_LABEL MS_SCRIPT MS_SCRIPTARGS + export MS_ARCHDIRNAME MS_KEEP MS_NOOVERWRITE MS_COMPRESS + fi + + if test x"$verbose" = x"y"; then + MS_Printf "OK to execute: $script $scriptargs $* ? [Y/n] " + read yn + if test x"$yn" = x -o x"$yn" = xy -o x"$yn" = xY; then + eval "\"$script\" $scriptargs \"\$@\""; res=$?; + fi + else + eval "\"$script\" $scriptargs \"\$@\""; res=$? + fi + if test "$res" -ne 0; then + test x"$verbose" = xy && echo "The program '$script' returned an error code ($res)" >&2 + fi +fi + +MS_exec_cleanup + +if test x"$keep" = xn; then + cd "$TMPROOT" + rm -rf "$tmpdir" +fi +eval $finish; exit $res +a]wƳW +:mɯ!@K{Na-mY2Z)o3+ isKgfGKVI)HpOIJj7͖Y;n6_ ݬ7ͺ]7nѸZʄ@ʭըQĎvݪwViΖo~ s촷U&ֽWU)$kQmǹ8+!eooۮkprm븞͝F6=BrVukj-xiwTu/Zh֍Lk_wZ-*7\(Ub[vWfn8pz +t`:tX2JGOxҏONQvX(@"O](x7}H Xӱ!b1J3 ݤqosR +B?DtF%kPoX6iDSEH7/nnt[M~NfB¶ >e7z|$<6Lx~’/~V +K"5མT-F0ʋPɘFrP|4WQ};ީ7/M[n[7NC/vEo4ߕ\]CqxOP"hݡpߒo}~6RrpV7"q4bZU0aB~2daZ8b0/I*'"f9Gc7D"23VٴG_bA쁢ZD죉B!B"leALy2Qe^ZR$P}okc)eaI~dԳ]zl2ius ɼt.NynI`1(d; Xy@PEwlƑ;fو^ҫ;6]*DDOG6Όj( +1g"G<\4,]|Ce#km^u luu(_gQFߪ_*c€cJI6>qB{Xζx1E e}T ?eW[Wq'M$<&=*Yt0-6gY6˚Ē`uj3\_/QVm,ޥ>]P wjR <' +f< q6 Xʀ)c ϡ#uǾ9[{L*y%fYad?$+04Cu ^X([! -M/,}Ѝ)Uک[$=\ty &9%_艝 +҃G?p vcAjN-֟#pġ=bXnc P~3^ohRD`uojgM^,`I`Z>\YJ>gIXˑAqQjXF6;V` [YGJˏjjQ{gϘyyAgHyp'r֞U/ +u/]FT_3 V+X N&&| " F"h- B ++ Wa<118Ԁ7v^f׬i*sF[ Qzϯ3R1؝A0]TN/]K^E U\io a+jZ_/;֢kWo2};0N./l4jFqSG1tca?*XXӬ"kP+v~.ߏ'70n/˃J N, +S 2j32yf\&wl&2, _Re_7f\wUf?Fy< ?\kzUJHY4)xn.ۭyAm p?1I~@Se3]hLTOCɴ5`zŬD̻_7>$JCij7 ~O;$ z)]Rw،^-dMA"v:aHi+Yn('R~$Y;(9UdiFU~9}>U`sҾ^!l+_W6[?#iZoɸ4;8]s L_:{iٯ]SEAW Sת*i՛ol?[0N7ff#=. ʅX֥Kdcc fzCGQNaG٠ccc{99/^gSU LuSC~9ri{}C빙$H;\M]cd%9٤4a=2tM9G?83Ε6YցJt3gI2ϯ7Rw=8;Ãfx$stdL8tcCgt!X9f e d^,sZB3 34#\$8p,i@%|ȫu/A4pj.^&RXD<*ѩy!jLd>{7GG p0 âFxJJ}DH`d2qhLLF"$G8 P>>F?B`s=8gNw68DtBII6$@(dGI A\moǝYJq)Z`R yAFA Q2b[O^NгD!RhJl;` p yX$xdQd&,$R&ܽ\"*P7OENB)KmE:8(@h7.8I@ +1USNJQstR, ," R?GVgh_' F-42IWPΈQLiI%U2 S:,'$΋D)44OU"D`yx!,IO*cڭY}EP$G +׍jXUi]bCQx^mF π n'ωR tAnHjb/@xe[܂#A/8hL" Dedmecx%P*_(Z'm/:ts4PYGЩ:M?|zso^/< [Px;H)\N[Y qMiMR Xq281w\oɏb!LX^滉榼Nood>_nΠas 8Z{E$VbFjsW/"}HX1r.s CR#fĖ`1=zvS.|BZEx82EBlҐ?`uR -!/d^umݳSoʐGwW4XO޺p]Gx{`!#/ȖHH60^`߷3+kp} ,-:w iz`[\ɨkQUTAQW[6AϠo36 Ҏ^PUGoCmw}6"B p -AGA x'=X?Df7+E o` 9Q.Ʌu^&ŁOnj F=( , 76OZO^y@K< {PdIqgroFʓ(5 }]@/]Nw.bK觘rO'-,$8JXQ%|`ڀc鼼CK Iba>ˮ07,cR.%Zt#Ѝ^},5qXb K'5KӋK헎k7x¥Q37{:R_\#p$ͺ1}(7KWϤY /K:~WZXѭv#+1iگىaMىlZļ.wcN`3Jiw}Pt(+ kÑ4A"K5;\jQ 0}gajF >s+OZv znپ,ޢ~Lܯw?ޜ?x#tϫ'˻IO铝.+0 ~"MFw#o8+N؅s+v2m-E/u4s\p۳즴@8kK%E+uOK6?e[;kgچu +ShsfsqngqcD;ƉQD;>Lios RBOTO}C]:# ū)ʠКZ-Z¤6X8pkTrIΩf3&o] ҽA#&崶o%-&QG6ޕRQtRIM] +E3uitkQPi, +ɵ&Q&V &Va֙=TUJzld&%8E,*EiP)*l0ZNS"D9#Z`,f誰+D`Rtf#4*8YTzVF3) +0ZU="\|J*r$zʬD}fޢQr,7hVgtc%~CLN'6p=Lz.,J՛&ƬѨ,jJqJVlĤ&>Q@i ++_+C߽߅/W*?t+dWjlMC6uU?hpZZT_%ר ׵kwd+ JFߐl66Uɿ6P5P?P˃jbҖ?)IʿÈ.')V|= Jg:b(nLRs?\ө R:{lQtB$ՠj Z[_ (ȿWj)_)*Z7Kk3yQۖC۽8(ul .,)=wkXwj˰C]v=㦯6(sP>eعVbY\=N; X=uI.u8bn~}p{YGu͸XWrx}M&ꟷ n^^NY NFgh;$oUFE@ZVb}cԫt,i y␢Q +L%X!z0R+˿B:GtߖWGHyOM4}.'E/]4YZTzM=pFɫ!6|GJ}ղtDVJKskw8yw]UUL?sowx/ ̼xpiAzyiO k?q|W/퀓 g˛EOٹ>nsS;>/)?-XթG7~9jZǣkoNYzLv&S~xŅcW̷{ㅫO%JF(3ٔ_[gM}߽S'o4(NtGY1Xu}651boOLu衍Ggn?v닭w.ڢ;mO([e@_"'|}-r{,Ly[X߿{}!+o2~kVEl޲t֍uɣDl_pph-3G߿fvkwboFɉ3!69v+#̦ ]ܳJ^i4x~}KUƸ= ~vakzSjX6uE;%c3QQƥ{7Iv$zy6اG|xz9&s?6lmlukm ??V%]ڊmɿ5M]]WTİk4S3]ˊƻ#ҧ͉{fI-K`pI>0bIkܶ(d/ŅLmw~Qn̊wYǚ\dK ش=}ٯk2:jFQɭiڗ3rᕞ[<٦AoC⇬zZ87ft?%u5qܲC׷D8aĸLF7ޙS}\ʒTTl 8mT.Be"Ev%H$kJ9 +}ϒT%azofybF9z?s 1p "2d;ef=g9!d?uܼ7y]drHwX QVkt_`6\Jf8Ӌ^8 7e-\]S`NaEؽ[]q9oVEgWwcɧ YPϷDoMiWmŹ!gX2kS kBONqmi9s.C6dfP%zGgv`S}03S}"rTkO8 EH_0gZeTUCΎ\Oɯʣmv.=8kh'Y'Вpzɐ镏U"ZOFA&o mR6r>U;Ǒ~:$p$9<:::HQ{`П+Sn;~v1\CfHV/H,Zw; aۨ:!A<<ޝ@)o4 1n<]*rçk?Vsӡ2=esj}6uJкo$r:oG6p?84ﷵg_"!V/OGweK :*3ړ+NfZY^VYW[vJWKđw5c#*5p"EnpY_GqXScحe|+t"t#aϓ)O̯T9~̓~zfV?j!C!0MG H4Z[?&K}1F23MbL=ޯ>,s<* sT7W/+֎xòBto׍+YExP)X"wBmT3쀔΋[GVr[ӑUKbtʵpPMtŽOR\y;]ke-|rbƞ/\/<ʧ*#!I7dm׈L݃."c*ES7)N(LSPalS\:X" +P <Bc   "hʒs? r_# A$/֏a_@<4؛ .{mݸdm A͂FsZ&E'\Ii쒹 f)I#ͤő@\Q7Fk.46"2kfJl. &67,~e%3&}*B澕jƗ5SAxOXx2~31!-"x6љKMΣ@z}sdZ8feНf!"DAA4Bb "B(d$MƓdb H//8Q(\K%¾G#Z2zY.nu,8Qh"BAh< 82j<K 0Kdϝ0oZKc/Bѿ~?4_>w}qaB# oxrmtv16YR7Zwj/8 +S8u7y-}$3MoGJ"xqE +)B+׭ث'LKC[RWr.ۏxzػ^Tm!D>^/)(a(h2@$$D{C!xG`?E\ +e͍ M T -cٚZvö'8kF_vٲ3d xyJ%"SOp>UAJbfkµ5I ͮ L ܛbZi\8 9)fkN'ιi( Kc{]HQhGsGfD<)x,&A@$Ke_i?:KPhI~©0nSB@Yʄ*XJSB*΁"2Zފ%8Avy՝g2?e-򓤴s=nΐ^C63eS1{؃X\D# HǾkB^u z T S}7ZC:Ғ&tX)kLؤ#P hB@ 4~Lb?h`>-q꿀@Uo$PsߖP6)Sb)j7G7yMjX&$c\K}HγJ]a]a*YIdG{$8̦8{WLJrRlkʄ)zǙ_IԦpRsGdr m5ɾk uz< 8$x$=K)AHCP  x @!h_a_DB"F,Sm%XZ^UգSˍw'@?Zגsqcw:(+*;OSό{2;i̫Qϱtv>J>yDq܃Af2L6qm>)Qӂ)8<v/n<2Ɣ}?'}C*Jzܘk2F]YPZlϱ]ѳ8p˶+r>Zq;D%&\wvwL>=pYuԜhr!+5\~_7uHcf]o*W9.0.JAu茜>.|5|T6^1h] CSWF H?,գG?osoUWJsE@e7 L u;R\@/*U)vSrpH:Õ/E[Oeƌ.{gu QnE+ev3A(fI6f![1Y%T$Kj=Ie2vE1c9~R3f~ߟ纮u] = +.4|CGE.ݢNFpEEJ.vקN0ҲZ– _~CE(^ , ( O߯_Ë#oeVOAY~U'v^Mh*'Z6]Џ6fjpqJa~2n"^F&Adʘ!L l4Wz_yw&O`{ZHǧOIAMܛ~N_X{bHYQO#,$Rm!paa ,DXg)6O}?/?_akAX@? +32[^t:wKtdQS~̃xCԘTkG + 9߽ė  ñ_+/Oq؟o?ߟ]Y$?7`ϯ0oc0=rɃOM-_ߪG gĐ{$P5W˜H II}]AD=4[[:icߴfk} n`8Cb\! $T}I _f_OuAGy !e;SA쒑dvρ ^o'aM"$Nw1XnCPBx @  C??_Ÿ8ԼإwcB{Է+̟qr[a!(1ec)=ֵ RXZ-ZzHyL3o$֪(0uf/?O/Q?a@BX?eTX:? /XH-wzz:R{$x3aZfξ,*z)wԖB,֊ȍ̍㿟qP -~cؙ->|{6;03DLxXTA*Png]w@`kTIP: զHU]/^x;g*3xY'⠄ 6:>nD =;xyк>uo?bǻ> L +WfwxL3&;S^Y}@Bw,ۧ +)0:$`rSwA9[+k#좄[멒'Ek=˛ Bdo&FnNݶ;nv~*f[WgLn"HܼkKat7V_buk[kkf4Ph16n?7Y{P\gEv(7/QN$̙k/k{Պxߚhk#<%8⋧<< +GJRnz/eRK! Bҽ;L,x]&/+yZow$BWQ~K"-gOzۜ1g[?&vezxcFn&D:xm, /|Q.jRV?jĜ?fyM.$ P=M,7 L -*qsoPխ(Db*7cs (~Yi)W☜wA'DV^&\&Pp ;om#!Q4dZ +M./CPk@ꪻvFn|.: tllZ4{AV6cپX۵oم>/Wrr9]e3s֪@5;O6+2U-4aDpdʯ*%n$'մF| -v$hoL!8u{ *DjJoU;hln[q#&ɶefv: DiWúw?0M?aדжX*^I!p\,3(qYw)LR+lT84~n4{M->|#ѳx-nhb:,,̘q"[h!,kMX{%jv:lu +h-9fc8b(Gm}L bѬZWS}cn}'2=R؆ncΎlKs* C@)GyZ3IIUA{A5 o ԚI&eXGt{o(bW3z(KsyϞړ +..2$jQ͢r/ZuLV<6yoz΋NFɎLsۡC=В Mmۅ;PC'o7/gؙ#< se{i r.Yn8qVF&Ǖ^D m{mjDdoH2KǮ2@ lvEL(ViҦh"a(rr}n@05q7lpGM&G\T=Xgcpz*%٩ZWp\pEPJwCtJ<萅ЁV#5EfU;;u;)Hʗ-wFs=[NykE*GzU5PnLcp:<Euc}m|γ4TW|H/V]Xn^G/M ywhV6NV^+ܾy@V6҂Z1<fm ;Jya{Àw~3fr3J.:֢|K~pT DWlt1\5E]-2V䉲$${VOG²;'5TњUjsV/0iM݅x=F1lu梔s(o5{껭 }ll[bkL FVjBү&v*glNnn6`^LUth=p )62yrQTN"eEh1_!Xs-5;SG ~ʿb6 Zl|Un?ۆBuƑχ/wU?̬PWfbgx߿jȄשZϧCWlڋ s;KUJT*I/ Izvl<~ :kW2彚&Vec[=*Kֻ&PӶZ\4I@jVIK&wt)<'&?u ̸ؿQD`^-O +]^ܕ6:<\wո{jTTḿɺD4߫M 3.SH_Esd EQ}iIknqϫ,d#N3Ii9e0lpRM+'hΛhAk2:#5/?ќ)v~ߦiq5 _͋w:wH(JI~!-i6ȬGF=,a6t 5 e}?Βӄ6ub"2R ‚zʼHSM WX2i x[^ Gc3mHr(AH!P E:H $zP@z + E ((kH(Gz:9spg{3{~׳sCUUd86cYgG n^>y9R(vGӵEs+yۏ2魝܊p=X1 +ҹtd^@WF]m&U ,Pg-t3v? t9R{Ib;Cw9aȂ%M-K;FQq#ͯk1=)< k8u#~U_rz"ӷXͪ6>ѯx̣i|r6o}Er;Y?8R4|)uJҺd?г-|C+_[ DUR^>&ٱQ48 %c%Bd,$@ H!D@!6֖G>8<{O! a4s7c?Q҇4xe"_~ݵvӕlŘr*H_[haLDF}ޣZ ‑N>tػ*!JF<)E}{ *',(Ǩ +\Yr~lԑ~@s97O*\%' ]'+5B} +O_  + +Fm$) B2 FR +<[?ߓ/??Xt'w'/bfjf{y}*5l4GOFDH6WL\ǦXsl_wH@ Fhe%) m$%!V ("Z"M/:S?=~>?_I_}4wY|ڱD8m^]g]9DZpS +%N2_z,Ѷ.)bM# Adm$ Ho^Gwo@{a#%^ӓ{$:ab΋O.D=kȬfm}⳺4`B͗e b1T;j=۾Zä6VφjK?_OV"8״?duk;;.(#5Z{gj'&R[ @=N'q=Z0Zqۚ[T B5T?UlhľDհf*h+E}R* !h}٠ %]مՋ|>ǭl D{D,(QV/빭Orm` R .Hw'Ls_n.\y%bc+fA+ 71- tG9)oLpT(NNew<8&Z˓ikn뷍1;!^Uki~Քe@hg ~{'h!S )oQ1)=N"Ge:$d,ĜߎT#I,qMDqF@GPc6W&#n\ +[ L K{^|"#]3 +Κ)/e}l<9'yCv/?΃$σӔ4=Jy:>_y,e'&׻-Wf5`A#= >}FHZc}$#N6n[sciA?tC|N-֋PI@\񕡻ԗj&Mbs0q䆰(!%AJ1U|K(!zy*݁ND '(n'n + K;Z 5O!0 ,ܐJjB_XdWjRS(ݒB,{D@ѽBŻ%1KPCyhfv!yiO`=Y|hb>gۥG*S@hbb@ ¬y##E+h%7/\k̎2_ +4ӓYLC΀vc-sД U81IC V${!Y`_41%@?\XB+PS]~y屺b$l5 ]WU>r|-qL + Try/a<0nAHq8` 4Fk.aJ A8SA rj*9 XG-bYx[Ύ5<#X|/3֍mVWI9 ǾeQ"Z}τ`3H %OFLf^ߝyͺ>ɬDkZl:e9D+MBK|K t/K9E S8V\LI-BE*Oo%/Ci̛#DNrZJ2zO+ i|ȩa3c|(AvT1\VrdJ^PlJ8ܱJhC>+\أ(1Ch3aXQM:$1|Nz8+&pCϗb ꏟU_tFTS˻LPm*aHV!>M?|61*AMnjL +w/A:? +0}ƗO<:c ]/ ]jm0m;+tFn!!hCC"^wjҸ$ 65iSD/"]li/ک0`>X7"%5ˣ-)c<>N6&1=d86_(x3-k;aqw3[H 7|2^D:hbcxϱ9 Ro<Q۽-L^ +`2]+- ֣ׯqN39;*zrokzvB$B"MD@bX57y1\rk k S4$ ygrOz{3}fDw憩N\0M$p!r?]JV`)LRl 碏`ƹY*@nz`O9C=2x![L=C ר3ɹEA'# Lx„/Qu!fEA魋>>C*a׈77϶. Tuݼ&fK~3~¦.)Tz\4*u?riR/}s9BBX&6L鼛SfnZ<ЕޯAVE oqEm ,\H3*Z6fnз^lڸ#|{@UG5'_}{IoM'V |`..tȽ)qNaC8 Iu졆n[/!S2JGA*;? +%R:hDGsыy{tn'pR/ʵ٨؁&)}!QkP4*$*t/\o0^oFZ@Y{͈$[I gc45s +{֘B}^^(iZ/6ńac^(Ъ`iu؊UܘҜԻƜխŽE]gp681b]wZީ$@?sc(9t6'nU7cZ0C(N a:a( kgA90WydEi,dO8m +.ym +ຐ,O#c}#F}xn-211-PLKyo҉z'+d"m!?gӼܛ&; @}ޛozn]la,po=詝=A%Rh)k?TkP+$u/GP#n `M{cgd"' );=-+0X%j߿?Q[AXga8n[(%,-?P?oϟ$?_ܮ?Z3t[O_>}DPgf +  8x@(zVߊ 4"-,q?ﷁ9 ڞB Q[@ P4g~wv'?_Gn$&_a5:~lrOL'V{̴7.y0}eigD|.LYM0.}&wDz>f7O>΅j{bmE[{,L\Րm fǒq%|Q)8)s6V? ȭ$E_①E-` +@=ʀ~8Ym Ao#Eُ;{׫JJK77 /nv5t@F`&1'uݨ#~%/p8##k#GF^`Z7W, f;;9+ m,_G> m*m&וRMLNÏ:CpFhXn[`@H8Gp$l[oo?_῝!2Jibަ_C!(VFݑ0Ė( GAa8</}<Ot+?V h+$lO:̻vezscIZa%~^m_uVW΄O=i;e}?9Z W{Cx{-9>J}u~\iɸe7>>9]+kti<͏\&-W*Xy ]'U;0f[eBs:g:vCezέ&ꈧ-繐53>~yX7eD<@i|mBCoBa5US=c*\Kʙ#馯~jIL Nf0)caTBrE}˩)>d"x؏eLXpB\m?uBĞ5zdvsj)9=Sd:q7gFm`A*QUIsiwzU_x{և¿\a[l?B xROފ5V$u8+M:xBȾ=,MV;Bӆ&F pMZlwGh[C]xY#ѧq +Ut!(FMJw_xoe2az g0pg>L#Bk޸.DT`:"T_J^lgjY^KBä U)DU:8Xٷ\XenR@GOW}bDq"3wg`n؋i?H+-GF0 3ݫk/uOz@9!A@Z`9y)%lQz̈OP.$?e-g{T}TAM1øŶ^Jz ˠdxu.[wO L-{.dEp!ƶN^N4]%7}ܜQvM4`_UF#rY/aB+)X |4nM"Afg1=ɬ;!5XƮ~e5nܱ̕*?ࢌQ{SKgKmΘ` Aԫ4?'fY^+U@.$"_-bIt}Nb:{AOU]j *r^FFTRfi0EV=m3WCk}!\Xua΁CrG kpl.%r Њe)q`kEcs:$U}Pg TPnݴp䧱p%kl2S,ozEk6Ϯk9Fj$Jo!f Z9˘ +КLNrJ% +|-J iۍ5STUݲM9]mSlqcRl'Pee5҆VF52/91C+ +<-&6ؠ=HSNn zl!)[rB݅mʡf4'Ad2!'^]#_IAްj+zkR~ce,Ǣ#5hkwUt^9f@)uj]Q$rAi^2$.Iu@:tH}ukİŠOFWήކ+dOr~PS?u >PY>ݠwW7m,/žˢ[KNg/'(BQH-,W94 l?%Щ|&'9͚vyRʦ4yl7uN 唟$wps]'&MxUSHw O]Q`Q᧙$\,ɗqSt kٮ#THHkuY6#{:ی)?Jgkʹ#!v}-a5 C+lY3ALMzV~(XblcEׅ):6s5=F8NJ*hN]ť( M yhZ3}]i* H4teI +"eSe%Qtl"mS$. U1H $o;}f=>sϰ>/kOk~gyyeJS=ٲ|v wj]^=? + +fPaՖ17m`CRAILNYκH]mkQ|>6YĴ_5ߓ^O緘̱o|v6P%D!7A>LTm$B RܜSH|;f~$*:KF?m+HZUO*Nn[$/F{ +bѵ#l;W.uOP $U7*4bc"OȲ垵u#zt^q#f.v=kyz%Buv@,[h:eD2=ԵJ{g7| &ɢ5-}æQ\2N'g~ ˼gSc; +s"#_q<87˲BϞʏQ50ve2"T˷<0+Ӵ)Hq0|i: JIgGD qS)|3f)1Sb!{ +{JEQvERDG/%go8a93TCwN?An)c{UTQPdC|ݷ`m#΀=EoC yo0f`0OqV yAu%gxl8{-]Z;h촆Se??xH„yX㩍D@Lid2P*)@ɋOό*'Hm'D] ҏ4|_eM##m"ƮvhVk)޾Gp2jY iopx 6}(Ut0|M7-mlD:\TS ^zfL)QG% k꒠$Z"Z]`"Uxh|eNR[w >'ٕH?樖#nCҟ$sI]@ƲyוVb:Nk'#IC3gSؽ+StS;o|/2Vh)?ŗgܜ131,UKm}qtxt]qȘ| @=Q C3+E]Rv߆-,բW90ƮF,ǥA!½0LNTxma#W$Q@[8ЂҖgEЂF{ I{+̲n޺]ZqeW?҅58f)~EJcd/ȒQYl]}j֐ei ݓJ\Y͇֧|\|"極KvOYϫ]UxTD3(sa=nXEo dwk;r| >2~?$C"@ +J`! AP" E3|3oO TO?,<_AP{\ ++r 8!wA@? +?[3(@PEyo!0H)[?/?4gA|a |Q[FhqM݉ߝ6&CzzSY,ӏ66 A>B:շ<5wXX"mW_$nl[l-P]xZ=؏+یc?ߌMrRj@HniTլ<% cM⧠{e)GAn•KmyW_<E6 eLlwۢO!;f +R@"Gb(* +$r\^ g_iY|H[}tg3@Rnյ[[n̦{#,1<IJ{~h݈9#{qNTgg䓍঍ ja~@iM8M({>̙ARCAL*d͑JgNJW0m5D(Ӹ@?|ߕv;_d OKY I "QhFN^.~ё5מmؔ1*cFYl-z@;- wsl݂u rc_noJ7UiihP-~ UYp|񹈱V&tgB˞r|~ޅCכ%A'8m'Kb~ ߱!]#-bFzq+V;NPGawic +G4.$ԄW љ2]? ]ŞޔG44RKyb0ɤs|[l.٥var"[̉ײe"krIM1O&Ozƈ#g"*%,]i5ğȮ\ðLU>f]7o M-3S{Z1`ql@(9{s#w㠑UsKSQUMRN]7aW? [dZ/P8ӺI6^F7xd"b.C2$!=Sݧ +I؝ .7P>G> Z|zk{\ݑa6{ "oezuZZ=U{'ޣ:ERD:B qх >Xg:qXUqsp2-eZ!&㱹d 6]j-؇Xnp,EN3fH\Ptn*Rxb+,X.QZ1jS5ϻM+=-ab:76s=su 8b׺e'FeVgpO`cuuީ2ۼA=Ck+ Yg1N&8-ɆQƂgFMRĕV_I(8 LEtm14Ҋ񔸑| :/G|xv?SRs/^;Wh;HlC2PL*E/K.6zw,G3 'w=E;9\bV_?6aV#F rYsLĂwQ$U>Tr d^Ra3DZʿVRCZ ,t +#1ʋ?(viT0aێm4`v&*EݚW}"`tkB9Ҥl//!7@wtu;m;vNfBH+s% ; ^+Z~+FR].n9.0C=tw4Udz^ڔقS0Վ{p扮LEת!ؖppX^: 7a8u2HmyVt -yZ#8LL˟[b)NŃ DuO1wR3ֱ͚'w^bƎ/H9AL?ԬB2!t#cm/2U(e:ۆxٵ;wR'Oi-H{{$-r9za#pzkE>k:ox\ɷw&T2>^-l͚CeWHtlE%T:l{>"(%R HסSADBBCA@B;$KCQC{}~~[s7֬=M,JM̧bLSMjY@<-f]FOtS"%|T6ն*|Gv4Uyƪ3d=jr異?|&)؊E4jEnӮA7Cr#_ޅ,>rc.N}y}}0q`V5z@pplgio`bF>+jN/VX?bg~nReN>XдDvtjn=G􇊜^u-<X%y(NLbΊn>΋ԛ&IY"-6ߴkbk&502F&WRa'2%OmǥL`n9Al-1.T֛W)]?=o'I*t^զ',DG(rGό8Q>6Z]hL+t^+=辖X(r_K@۫k9+IdBHu>SʇZf L+AE8ԀU%V|ߓ,eiF21)$?l ma6+ꨦ'Ilա;/10t}ì +;X3d<Kjd5FdL>"n%T=BD}D@۰ۊj)8%OuZ|olŎgѯg{j`T?zn3;z˘Hhzs|e^4u8Ǜ̹ɂ" "&־>:-}!)rKx:Ct91Y1Z$=/ÔonGDѲq5Jd㶌3Cn ikqhdYl`̼XndBg/#x}^$cT3FmDُӞ" #<bq8ؿiCRG/ku=*`.TXŦ5Ɓ/Ј wM;M6DB>$ŕ,y@*@'S[ܑB̠.6N yVѶQpٶ\|&j\ܫ$)E=6<:6o2d|h +VYT,8c=-e/wbw["N /i}x~`vrs s@ʃJr]6\GUftl{e,Įc_kBPqWi:Yt3<~a}z#bzq*u_l|dR'$vо 8׷^X\xmGU<<%!gt,ovj*#bNT-bF<kd(awFQM6C1GUe*U/W\^1-3Ն# +N2RD8StSn$;G()~ W$}`[l^ZU/\gwFX rUx[ԄG٘z|jυuq?!7lR豗L:#  aHRX4uM]wN]}ۤ=:+Kav2enAAa]|ph90`L9i9vMkucG(5!!TTU#Ni1[R+-rEX +wEdxOw}qo7~fU% fQXȇ ﲶ`aW-Lw`RHȬ(?9XnKVx]dpڗ6an@BM|e]dM꜑f&w}Za fq +iƒ- EakbϓVB ލ>+԰C59&+6մc:p)F6.;u>0 +TwzV,p/ +'+{ۯ;u"pJ,v +&p"10ҍήk3?aa+ <>2ih0͋ƫZD^h,G].71wԤܱ)$ .KѫkulX] ,:0&A cUˉF a}4%{Ax(8Ec{P|TL\ _e=W< Ȏb >Żu7eNіx.l_ áL*IQzj5=d{uXzJ$][EwJUU䚯.?k) T[57Yؤ|I])^Mj ^WGU_GSTqN +e~,g.ZS6-_f eLTy`E9hSi|ٻXEGS{"BWQs|\iw-4Dd吻(3FmQsen&=3"geAyUYꞆ*}*4mwLjY`}K6c^`Ѻ.%+6_כ.· Y,ALJ^&$dE Iv8 +AyC +-N+ !}A[%vin-b#rd5)>NO:a5vMȬP7 +] }EmgYH*ZZnsl&$WM ^弫c:2KAdc$f^&>av|v0slb^<3'(+EK5ekݳOߦ*ǐltl='%sR.fcjay/W/M.[K'ms.G\hH{;|ʊڳ66u *,al`]ֳȳWh̿3 ΐ݁a@(#uor jh /{*[g, ҳ'0[O$oX=14g@Y|'qv2IC їGr%a0_{ E.hw@dN.lj$$u;G d[l}WY8@y̒ЋZ|,:;Hh<[lA9jk݂:]GZ5ۄfwfd "whț~,vj3nH4'm,feeV~֋)BZΏv$\ȗx?.[8WBp%J>#\IC8U> +hae*Li +oM%Ru +v2q4H~.hpKWeL&rByG]G\ƌ'2Qn9B"[yub%>5 lt$׎|ج^/5¥5.'΍^IVCV| +U|Ǜ{6.gdY獚,Fa#m>I^[p \)(^-y307Z2e߄M'Eu:%B:xfRd԰4. }5^ +:Hj(вZsz=I+8;gQG؜Euzj]ycf{g;/J_9iHjf'YYKOo +x%ʬ-SMrW<14c!vmsJ,Zԩ Lgʠmv\!ͽi! y>B!Eac~"ĻSl(mеGZKGOz2@U:+; %BY{*rp>%zqڶ(pz{*3ם4VS"6WB/sf=7s-["TeODǯ3׀@q7]09U򺹅ro⒳-b +P;]b}dƜ{т$Ȑb곌=dpblT7ڨ"FNSO&/Kz .RS &)E-m0~#_۔Co"Co&?9jq]-]EOAB3AN5L^|[ st$$ +~o=u&nT+2mjWeTEbZWٝϹ9eؤ@tl W;i8cS}fvmp6XJky92 +[57x-ەғh +Sj&tsEm-{\u } zgV^u{Cz3+Oqi(WVw;gc_NvqZ✺6ܻusTW4*Umy(䱥GQK)BoZ |y;!LbFdo:{SZYa4۪ϫ,?9Eޥǭ>Po3}""N֬'[l$EGWyr^ +E>U{6aF7N^p@%gd$xM\M~hΡ+47fGaU1 dfh $Ng*{"`'ɹi+ɧDkƛ/^U^.5Y뙮 T/_]!Fa+cdrĕPR3J B)ZLt@1%Yli.Eet[E8|m`W߶K{U*۔t8`bbt̡Q }L@ +rJ}Cg o'&$E;C2I~f|>q(sͶ{F/xv9ad!O,7ڦQ9pylҖ-%u-a,gtPY@:ɲ_JYg=E؁^Њ_' | 9+aRu{N5Ȱ/sF .<(QWx }dq40?JfZ/3@nrNDd$A+MoiLS&ע ׫wgo܅Y7Naڨ0g (Ur򙺀SEоV\^c1TO[ʛ+~Ě򪨞xZ">E鏨yU˵tLWoW/r33͸K;v&*#Op2sm}۪o#qMeg{Oߥv6_swizU v}3p#+@+P<XWs`5ICpv\`\S1 Ou ~YAd'}EŤwײqf\{q݁$$q13Q6Ic$76 (,ސo *}tw|J6K}g͋~^yєKut["i?L[FArfi_Mq7=Q)+%v2#e劜BbŖXg'D}*(%MőxRWƑ+rxhʯ/yl/<;wd<͞jɳ 4׾ѐ;%pE$De9^@o?5Ӧ"jt[$7?4(K-p}(,Ru3{ _@ ol4Lqc-~lYno}zE̳XP|C4Rk4Mx\%A5Um(%8 ]@])2]e^#諭nKDC JSl% !%gv!!{ÑF,`ϏJQšuK }OB#3\? O2n ́rֽ^D-6#RH| +)z |'>yXE2>~Pr炟:NiNNkV2337y= ~N[+!]vE|\i, ]8S66z,/T1iM}ɵfc`>ϥmi-f#Qo4a8z:h=F f\z /7,iӝgh@{7LUEcMQǪF13GA61nz,iݔSQrrMK>NH}a[;)DiY(L:Q׍2m9Γ[spJ6G=cb*fZw2UɷbrW9 *tnJ ;E7p u 4۱r}oƟn#@) +pw=.͠ c8]kUqy}/:G)څ ƿ@*<@ymH]8Ug!mV-B@urt##+٤= +Xri|zTl^u Dp0&V}:m>.Td/܄/t/Lp=s*([SJ𱵉VK]ǥ]fŢ+C tw_<֮5~z+a)8Ւ2E,oj? ffcF2.]6^Ob'y=oO[z-血5NOH/5W?>B+,BAy$ߵ׵}!sWVnT:m2C]%er5Xw@8zu=+mMBVʐC/`"g@0-x/YIK +rTtF2nq(qY%57e6gnֿ(dCc'CWk:Ck^v-siq]%˓Ҝ[WͶ/ߵi"ik,Yq1Z+5x=g$o,'s(0:U[hCEv+N^٣IY_jBEZK-}¨ve0?SFa+X?XdF7')vߚhG.nxLORu;\_XQN1 5 B#-ϛo|^w?^*NQk,AeA>PG^ B}L= BS8HkӳMS bs}˗̆606q:͗;Y-`>jyCKRV>:^d, ֈ3^Cϴ}"2J"'RS!2kPK%\ nv[`'GT(xYe< u:7~CG^c&-V͒z 2#$ fPKV-^`m zE\Ǹxt] Gs7Q7b PbWjL5iWɷ@їʞV q#PnX{}g5DG5x$|^.epyxy>$4oz(W( "$͋Ǎ,mlA!| Wʬɲ7RT6]=6]N7竛TNQNIgj6A \nʢ`)ߺg`4*r7,45{ՁA϶a)zɿC*"j[כHfvѕ(n#Fh_<J +K22| kH\Bi}Q:i*&#աLV&I HaNP=uGu }[{ F,H_X\`K_ՍF޶ɩUoܘ Wlj̛c7,6rB~.C8z#wxn~f+#c;nkE[#_cVqD`G'8G ) Ln7kt%nꮔ.-|9.,GØ$CN.&rO.%iT0u)/m7|( >L6f,7pVڝ0_ +ϊ-'|ukywoEґ8>ifĀV7҇iEח-9оwX Lɉ WdrV3@oZl`2kΦvfy\Ot@ְat5!jrPWUwz|,6^={^c/ZҾOҥ4`f=𸮝48hLi)ŠLԄaWplaQEȈ\fwR}FfTs zSƗ!w~EU\nZQlA7Z?!|-\ۍ碆_R_ +zߍk!c]FihMEK+΁mgPǕﮝ~ <){71KOudȉ !|[C:[%JUO5=3iYX9H,JNN[~ YAZYwof[ +e#wt{p6V/)ʧ8dq&|~(n +3`#V,eoWj7OD2 M*+^ A%bO0ϡt5R>v^+pyk^X&ɮ^l=Iy_M%)^yhѯADOWo$#4c=!ոJxQ.SX[[-[!Yx59|N$`O_%5<3n{0x:'ߦQp(l\́ɝHRϣg>zP9zhn5K}sqd"@Tnv<'XBkP +))DQ*coa?"iOeȣO:ᐺiVh}_'ʀAN1뇔.,TUU&Ir/ٓKK1h|"x}Q0܏]8]9E7KA*w=0 7^E4o __ +á5GGTEup~IݷHF^VttUѝPqptB.rZjkdzǃ\٣c/׻٣snl]ܮ +Dž +07="m/;lD$fkt;ČVچ +JyY-!1a!eo=g>n< \޵^.=+WXuG]UyUg6ԭѓ>y$x,A$x%`UUK '6>*]K9RMkO8U!ޢL 7 -3_OkĹ!UΘ0|1!Txz5\Rp +ͫ&tk>V*WdCUF<iJHz#/$^t{d96c'*_uwmvf,rN ]!P]z3AYVaO>|h+lSpSzM+<[^¶MүwcK%ƙ=#uJ:SAbi]Şd0֩+=VZLo11[ &ti'Ȝeg8pNh0@B"tӯEI3}Ky +F~_cc>۔'jU>o6Fg\Gx?I^un4gފsbQt-I|s+`߇/kSTWǣ[2x.ۑ7x5V.}.|Ptzw9-iH9?u|w:'΍,yZ!,:Ms 9`~itː\ZE|9@b"U/wih)WzտV=+" /%/mRԀA)OgGfݾ"G7hc6;Ŗ\f5E#1>!Qrv Y=|NBCEXzvz*v` +JWht/l:ZQB6GI 84 02f`EWL3cSXg3,3x7(Ob(rN%O +pO +B&RjQBS)!DM;eC(r;f0ƶV +ԌOqx9>9MGAIeH@"U +&4ē_,468Hjt$b0}ʌVGmaJ-}Ow\PRgri%/FF_[7?4}G =f\Zb*Y]PSNAd*ݫe?~U'_X ;ʭ~۶lFDʚ.$^tJnbbp 2᱇"zAw??@ +s>;P/T:TyƏx {5:}:J&8w2w4·H^u~L~d,>p'롍@I!#t86(P4eFX=R-bU#u֑A+ s "Wo9nz7j|@Q 7>rƱ$DS;xgWUW]DZ略@&PƅȗeG;UX׏W]WJNJĵJv mFg}(~w5fGP?ԓu-:l#~|dMB]w!zoDѲMK^ItQ[Ef GsdSP}nކ] "uf%Ez)z k{&[+2SV1Q$dMF_APn"\ V* u ~..h>+jڦ$<(6KE0b9, ؋Bi>[*KB>ya<2~BBT'ގLxm)Ĕ +CuwНoi'cqc/8銟L'Wwv+ڋ9U"W-en-p$*k+}6V(y)~XwW)ń#fpubN8//@# 2U7ܪ>nӵV<5G@Tp\S"}(Gw7sȠF~[r 㯈ƍ CDɉ@1NFnu Eq݂9ը4{bF+vm9mw lQUUkIH|Œ;, NS__9;dzL U=v'$ƭBN#VXQ Mh-% +р $ 6OKkqU +cqw79-7ƺ."{,s“j.8bLc=A$k}?A ;||rjz퐺zc &ݨ>[ɭGM'"4 +/N 6nltCbA z`Xl cy3׊S`#D?mLlvJJ|5& —At빸_d`Hrn*3s>SXQœj"}{rnUP9P]/oU*askCy5U{7LIz=vcwԎ%mq\Tчf EYIcW$Xb$-Φ\ +#}Лo> NcC_?V50= +3# + +=2dRVcQ321wwtL/|3Tt$hK[ {mLOC|EzYYiiiiY_&jVV맥gbFR-Dim8oH d 쿡ΟLt_^XO?Ϳ1X݄FbG9f.::&Z 53 =#??F{i[=B6{??.EVe31iYYTYTUԘ`zeZKu_z`c- -F|@ Gp11YX!Μa~ԭsm33\? tj *ǰ@ +XWWcUQeSWTTY\023AR|gR21Ҳ03'RDiǞ~ _X%o` # dhg>[<?efdF_-ty'. +jKMZEuZ?gb Oty?3-HDms@KB 8EO?RSCU_@WPJçb|!1lJs>7 ܥ6`#KJHr??9!*!! ! ;or `]u6H!Ⱦ(AP+!]q!jeecUMf?O?hO~!^?p10R30B/ZV 3o?OJWK̒JCߌrGp=AG?#Lgef``231"n__zXOS 7yHO\L,F +ebf;/Qod^?uo׽?XYEKS _!чzjF:Z i/eaYYY,ZFwS3^ Ll ~: M &&T^LK߀PEKdH+)%@O#_XPUSGE=( 5`ceS X 664&6T Rl`bP6=KؔPYM M-tuO!,DK1\*o_ :y폲؄,wJw8Ù_~]K7^ ?_gty|c?pq/?::: 351R2ұҳ_׿20i:?r9<NrOO_=# 6p=WtbzG;XNqSs?7.g'?Odw*;. sY +8,=G9}žO?|=s щCvJq9,=]-]ӃSAmb@M]s,R5W:`$},qfSN뜭 su  +/r|7x'C \ 7|@ \7o+ o |7>opdKf!A,HUS PV106k雪LU!Oej q'Af&eS] ``ևA UKe5=iۛ,LՔMZ_y5̔"B| zj: $$% +Z&`c)Q~]} o =6A߫}=;a>ٓy zRB}3G=95Xv'Gp;e<vPO%NC^'tr8w7) ޝ],pq?/ϣs8999\~4*o5ps8ytG>;Ϗ9<;azwq{816թ0E Ц;P߷u!6s.gA*yӹ|щ,e'W.} '8i\sN?:i{؍|MNg u.eBp8tV( =X'2'.ARn`ĽA9Dw!WaOh~O9pEzy r7 Bw Mշu Pa0}oVp|kg"CpP#ڼv }8[S+a<'ߡP }VR/HgkЦ T7Vw<@$u=ʳk P| `t߶Mʟ +tVT>(|0r'c(OAIFAⅤPBمBJ'xJ!bPzLsQ~Pi{gu&!mNAdO"&NqӼ$2OЧNxNyv!sY)d JBO@Q4CyX]pArqzr*g-Yop "7Չ|q q§ oyK/pb? 8*ϜT7PO.ws ?ݒ@犿i{gvЦJ ؈ >FMy`;A-[~۪0ېyفN:cԠ%HAG7 2&XL`\O`M`R(bo,KKnnԽ=g}>Yk|;p-=PRn]BJ9C)ps)_և?(k/ru!ps-U0!7DW +2諙p! +qo?~gE5&. ɽ +mdINR4d +IOC[!Ik||?ǚds||\IAN%PH0leʓ;{Cxz +(Ѱ10|OF{mNId*}mӢEC@G|=0%Z{}*i\:G?0 dР{~߆ૐrΙΞy=-߷*<:WNΞQOn,Ϟ=ŀ +p,촜1f)3gXg.W/}d[np:ߠS~ǧ3VO[{ !xSqvNruv."Fx!+55-[Ξ;_:qq~X+?E=X?k?E#Ѓڹ3ҏy##qT@/q<gv"~=+~\~vR v3.wJ:yqjOE~O|٢}޿]D-X ]qS.]l/?yun~.}w, 707_اa8O[$2h}"> uxVqobt=s&A>v COODSVxnп9noOzu~*:X<royw?%Cg<[OS*Et~s>!%\>)4f&߂ 5TUT L~O2VjRpHQH$rZʺ H] 6MMLթUũL@'h&Hkrr`fj`lR6MjԬt̿t]R66VMz`\izꅈvU@W "NuBBm w }ztC rOxE/|ƒ@O>:e$("+|(y:T51˳Cs/@q8ɏhoAߏU\|_?Q4 HC'? +yɄC؟ۿEj^֟ IlO _9Bo?4 -HBI?SH [MKdfV;?' >2&-$GCN2aCX/~ bMLU Tll70SCZLKWJK2U|+T6PYC}OMM {E{&CcI2@Vѝ<$ Nxx&2" ^.+kpe3܃$k^ >v$Ի;C<H !}LMgxvϡ9EwUuUWG"!ouQIm$EfBs?sz\R:k͆0%K}LPӠPz%0< cIW6ss Ho^ޙ*=0eĜ8򚣑Wjl<>&2V!u:Z-2G5d,%V3L5Nŗ}ޠ*L!eQ}5L?AqtV/짪q=%Ey>B?qv_ѢqAȫ=5^/e:ߣYߍfWyw˗G#?F>49Tj|[f5BoF_?QpYUwP}GV7!&yI2uOjC/S篭i^AY|*?m񛎣l9#"?0JEʟ.ˏȟUp+' k{ܹsEmߔܜ\?~/9 ʔ:ȏ2A B `U<3d`yEp8`VbyW,t=a W٘@#.e^ltJ@$+"5+2?!gJٯ9M9ٙ'{f&}voϲ7tf~}OأvQ9Dy~av=U:m[eGkCçMy/9]4eLb½/ߚp_dzG pLŷ|ގ4L$e]HF 4[C?4t4, \C߮GVDŽ\]cna=t#TU%2O+tc N +I<$IA% ?!,$`%14|`00ٵ$۲ =.Ο p ?n=qpPMk +*J/TzRTz +OS*͑ta׉&o3APvZcPCp!xL{{ a<SCl3O9QE R_j$ %dqV` y!8A7Z!C \6ȷ|&<>lH.{B\Ϗg}SLq\(z/O1AY)>}|Uq|>|!% : As_Wic ]ƀG6o'={D,(#84rq9! ?aE?{JaKODfF;WLaYB|}{~]^Oy=C cwxyJ|=^ n=XSo1XJYP/{#{o?b)-XZ5voXmp| #v|;d}^5PKƐY{UU#| E>gwUNL򝮒'O81I\2N&ֈ4f<Ǫ:}?7jDE?űc#=qal;"OEQ4ctwx"Zp)?>8y 8<`OxGޢ- ԗC2p'93 ]@{/caS-ed+]OɯwTu< j5 uFn?+R%ۣ,K&6<>Vd]7!;W#_өLO! Fof#V?vR74`w~HCG]gEg)kl +[y-]u^ men~?$o +eELZ5(\kVEXZHLUFAZGǎ + keZ@[Z4ut , mՀlZ5z~5 +;CZC+Z \4Y%uU[\4U>Nch4_Br(>"s)Qh)Y߆Q|Ę5Q%0 ƒzИQ{G9CcDIdצXEə^SB)|p*SJa";ͭmUn$/P|\ ~#srRoB F;MϽ YX _AOG,VR>(L$w>؀0.~n_Ei"(ch,$-4D) +(s Nk/CӞI8' +}2!hXErGZLbLbGbkxGE{Y'WܰRgw]32;o<3{n}?\Ku&8v~NNUz}yM;α̶hK@ !^!X*k£~io,F|  |!]9)r/'"~CA7;0JOY2~Voh-̨9w<8#mU$[#I_/#R֕ܤsM%OY [f-F^v }H!TZH4n,?+Եnr-=nwIvwg/qv.Ff=FxBcŮ& ,BžL{PT#B}:vDlhAS8g6VNg| L]M-1 Y̜pr0e'ᡷ +}PL|+_(# MgILp?\]tsBO9BvP/Fsop}1dߊ1v/ĻEԫ$]bI#6MO;2|A ͐@Mn5ifRڪtGϊ +m+siq \xl>wlѦGhѴ)Ǡ _ aù"~ϵY.v?6O4!ޭC&Jq (kY@vx[C6o`[ ڗr~FS~^|lg!xnowJmʚY1mV]ZV7p6JlU1&U_pPvtTzU_oqvRx9?.U&~+֜|DUk4O8'6,?vk=H]7sy6R=fg;@eݾd*dwM|صjr. _w ]'|3֞bO<.y8S6͞ag-,d;o'7}} zZAG H^72'\R>/iɳ7B@Ov@0NHq /_ꉏڱq64|cO| meivM1x?Ŵ-dz4?7j),"8s1QO67iMjOuW'/y7ak=vCYkoaCFz :I_I_poSk4tݱXGke$+)GYGqK6qPf}#&bKjIF"S[8`k/FC/1l-nIWc w]"~Luf | &Ҥ^vT/4\}FEid|QS=i=εq̝5 ӡLR?hKC9v4do}䉿2Tt%@m${Y9nm v]4RèjA-uC.ȏ._%(S'%ul M(g9F) g@SsCK~mL< \"z{pd8^Ȋ a8Mopћ(zxS#]˕P[ZrZ)sʤB ɨR5`:?ɀ90lu:j#T"cXGqz"cі-Ѫ 6c=ړm4SN FQaQ~M+RZ%)K+,XM, }FiyoǢ.%Eޢ}7(.We`"]HipIH^g")oAjtlN$(F! R lEEZz\Uj6-g燖-jߓ6֫%C1;G"XΏTV.^ܵC~ +YL*޻9ظw] !*hjhQ6f/x3k"п TH[ s $"IU!H"̐!I%&INvIr$.IV^e>饎>]aW5JȘ0&2^dSNj"dŦՓ"xbO +e*<<5gBQ0ϚT[L|]%QC|pG>8S gDb/3eBRN^JE3W*m4 .z%;#1Z)S$|a|x\E +&XXvXNbj"/4q{za RlxCO RtY+ů4t8rSdqRTqHadN&[kb*Dk$S%гb 1y,=bq ! 9p[tqj: `,BmW5ɳe##ˊfȲej>+ (VT4p`vR}vsSP؊f~L+AF)OgZ|ɀ/= ތ!hV]Lr#(")ftG͡&8ZfyP^c+/[6_gG(>Xz Xp*o I3k=WH_~DKK[/?N~ӵ&:\bPO/\>V#%ۜS-ۣX^䇯Gh;ܞHЦMVRz76bkCLQUtbGEm<>}$0g!JMlr< vǹ#ZҠ, :ϜՑIX[kYGY*قl{X#\`JuǬ! +6rŢ+:PWBEnc1 +?HsD,%HǎE> XM6#"A1 mF۞(v{.kV׭[.@f}%4T>ј1^^2j#͚պ~=o6DCusٞEn!EUIŲ]C[yx.c xx'iOWf\P.i[Er.&PsU$j:@WQLTq6o'_O4?95>Y^R)']_́Ό4zTfpgb3Up5>3\$ƾ2_Sp[2;^ݻyigYӒ4tل-QzX㶆;9^9to/u2X=Pn2,7ۙ+6Ba͆l^h\'s] <}`e ֛ /L'>w>@\/.'3pA|ˣB pYto3 +uZn|K"mGqk3I^h +,CDO@܎e iFcũ ˕֫JiZn WKIGoffDU nF*J1KMÚ(6hOm/h6= +@_ a7ߘ`Ѭ"FkDi,s"cA65W1%!&E &8ϽoNH5lHKЗAVzt+9׼jRyį<ҾV){ mIfMA9[<^gFTT@ނ!dz0g]>bļY QeEl+1jy='pL`]?>eN'~,L4;T}bS8Et 'iUDV]P#O\ӿd=*"Ṗ"ӭt+-g"Zc#=jD[lX( c´8UnLSvHD9f`}7Xq{b_g g\G +YcLXVh~E:d mk~yD ww%D]sEXJ6)v*v4VR8XW[[ +76QŋPyի@#QҶ qA}Akj&SnBVWyP8K1ZӭKv O9G7{=w6PpdO M^tL%[ⵍUőq +"4@ &ןDr$mڮlg:֮4Y5k\ij/U^Zu l.  ֙4R4N$GdÉ-^^Alg7]_Q16F햒^BYqPqvgb͝[!A$Fة@8y]O /rGL.znIV0׽@) +TM@#'*ڀ&M:Q4Nm3иr^OUM {0Sg +D\w!(vQN,<,8o)u^_ƁmD4 Pzז/3<ڤqHւ"\NlX_aULTa\gYc%]__ɛX m%?[[+]zÝOE$&} KdZDBĕZrs  {o3oA[4q[BgzÛx :@M2}jepSoB-pQA;Yq$T}y>z +Xn'gs@\IMlDq4c ,R&$AunuzHHFHϘ-a2xBj^aC>Ca F@ +$zui֛~L)+R)$a :!f0}=gh86T~R_ySWOy=M][='q3]y 5֢zM"ŏ4Q߁5%92~l~ڊ"1N=E֊QM3sWMy_\8K $HGF"zK+x8g~׫u~1X+s{=Q^M14['!%H =4xUG=zյLA1+L#t;z=T˘vFoz>i$i3FYHD$ 0k94}f+A¤2ĀG_ծD`-h){7e/T&Y}8Kuv1;:ڝKS7(>UUc !͎党|fed}(Civ]^F60,vTL̄[E1ڱ iJtm)?xH> ~NYL3PyI4z?QV+ jC>{V1&bx;6R$^`}')k / _޲lM÷>tT|!?:>f1>x\#( 5fX9I}j了|Yo厈a 1K#_7 24[e-+#Ly +q~Yuru}0{ցD>8c&⚈4ypM)xIRbD\OWSG4iaE|S*ߋh\Jߌv_ ^gocN Sld>UD1XZ"дq#-CD -{(CL!9N=a IPf}E¹Y4S. x[/d\^)^^'ƶ -q VddMHsȹYȲ;E\$PflȜpHOM {wŠ#+#XZgTD!ܬ6R%"gp.!C{eR1žH! Y'fD,xn54 ½%#lI01Zj^0?~DIdXϸ ŭ4ܓ65z餞SV删|*̺k;J2IY٘[`:z8k{ KMD6A0gyZn0qiTn$K4#.!ʮ Wi:F僻P҅8{3v.i(a]P։rTNw:MwK :( +Sxl|؅cKl/Rx'ŋu!%;<ӄfH NE`G\T!Rv@ܠ͘"T9(UCl1u(r%RH/e7ۗglyFI~@9փR q:U|2qCafl؋#zMQc$H\u_Dna!IzNW͑EOLdCh RÑDJL"FQPNf\ +K )u%X #FDYmL`QRb#^61f'Tf(8d`e:`o{5,J ҽE{ .1։Z9"bҰ@"MD ^Y}qN<4))!?O "!e^,?KI|3jfD|~,Ziq!6EXs!Agy:XBsPCw^E-&<$A!_S+`_Ge&EH'xb0|ox=&N6١ۮ`c]jOKssx-yn=Lba:ʴ$t̪<% ^urE>f3fYTѶ$6,t8y3c<^3pJ;[i86ZE*_rUς=9r7AfI M{x7!T|k`lb8 +ǀ^4\?BdtHS!)W~ ^GsyY8%Y0ґb4^ ׬ b V}%"(Љg_q)eEn/?fMmDs~_`k4}GP|}-6!.}1jfg N£Тp按1\ !5I f;17^5oR2o4[yVOLvp.ySDBATlZ|HҰlAXSe MDLsщ8S%:-ը]Hus9. x6-dCؘ AB)ӷ?WbYSILT^^Ljzxxgᑿ͹6"(w;W! 6,qKq" }l~|`[ ̾ľAHfd^ Sz ~QJPۛv=U +^^ ^K0蠤(aELHpNGS6IEv1}Pa(c䔴VB_ZI tZY_!wȟ#놩)%W]ATk)C3L3tցC,Fb~iyC'JmhS%^V'8X! / 2৿(14HwPޯ2M4C& bщSJ>iSnk|8~HY-ű[_5?ɧ5fOŒ6ޏ!XJLbfeՅr]XtiQ9j~\.ղ>b 7meGTϮ +f0fMȣ.vZ0` +~!nMY_/OB._>A_>|ÇA|6}R놏@lQcxPvx$WU qi.~\Q^V^۰OCJmVP>hmدW6,o_>V^A6[B͍yC[ P +Xy@YE6\#.UT|Qaj}"4/y"*ܺ!ҊJ2 EVsrsg)2ʦrvCؿM$t};xHȈK<qy%$bQbOCzJ+" zZ Ջ(HǢbbEEN(GpNm ^!xU.tߋXMC,?:`OBAz9R,ŒeefƂὺ{>s<XV\eJd +aj !QŶp^ a1DIlѽNS@g-Դy΢87G:(BS*Ku _B̬JCD]mѺE+C$4!Z!Qwip_4JiѪ`Zb.Hp{,H +_鹨C7?LiQ%Xaѩ"@:gA4+hUu9?T,zwpVwu$"u1&uE_aɈኈ ,ufSˡWsZzhϟz(v +ƸׇYy+KL[A.$\,fG#NžPΘ&2>]x{6CwAQ]P}yxT[L%-t6x XuV o{Wrlz\kE΢"y쁝ERs8hogT1&94XPK2óEvz|XZb"tIVFıǻK7Am7NdO{d_heI6f+WP?ٛWi`-MprtC}4@Agr`Q\,[W,q+C҄Kx7QVE҇SRz4dԬe6㟂$FQ +9桊OV"&kRl`AT~(4d}fX~R;V+:)trP =PC +(, oYD<3;U32 LE}`Sy"$7,kso,/XHv<{'f]7C}}4Wbx.+9y,fvJw-}=ףNiz$+.Ȕ!x9GvN,nov!j줫LXKHρ{l7A,SZHʵgVQ<27E3<'28 JA;F+Q"ìj D<.DpA..`Šm$%;~בv9 w,K:ƐYSJGKMִ0l9&`=:ĮK(Q#r, ٬UOr(5S,ҿd%G#`1A襔w+o#nyWP.v94e˷3jTPiiv:,>;lKr<;.)ީ_\Ѵ"f =8l8bbc`N`nawo[\9Cl\_ԴhӲk󛰥A u5x%x?6pJE՜\/@EPb=rșj[g ϐ)!0CaV (!VX kX% +,2ip.Khc9Au 7|jF:5\a&q?#ϓy|f63hozB +~>jq̬z +_m&] e;vC2', E/\ ~z1"ÛU|ZV4C +[zic |8݉o/`7'"6)Ցn׆SxƪGLl] (Mb#6l .(]hgBK𶽖]۾bI1J̷G얐d5:DA{ +%_K53_\c݌&ڝTr(DĶѤb|E90\}jljo4mM+{D"mHjG n'6*" *ÉOS%&E&-EA& ]W,#~ul~_E=A%'s(!ߎxɆ;hb?h{mJ<8{|o +ͫI,s=jӤ, "[ +҇m` \QP%>o&SͶEʪU r``xҎC#ͻ}*rv=a)l!MR{HF}ITEYDMdpWzۮ#~y߮@;AV#rrw]a&"F\DdUM3G䠠/,:c<94mzI :xR$AJ7&Lf5$&Jʰ,To?Tf +y1kKZ#UqyR-l[:%H $ils{lIb)5鈪ObaNHd192g[\B X1m;$I]RAF'#b|ӂ^G]p `odىo]. 7i2RY{ +7w ѡ6r3 +qҾV2AbK/QOVϐ=TwlhpD*qG7{2W'e6%O,Qd.Dı1FGS4fR1 dDLzxbjO>VyAbCUܩk}amCǵ(KB.5/9`?O%܀c#F,BE3L،r-ޓ`nP2&h+6Ԓx @;LpVKۋ؞h0ڍ4DL$SWV2.[S"ʧE^`"Fo2?}s‘Dg)?][ssbWCm銋ev5SmPcuCI^S[nk|-Z +] 5)ՠ +q^)Jh"PGhUXVV+, *l(St˼DٷqwxͷC +!m#߄ظL$aѰQ{?9y%$IDa<U=S|w=LF=ŕw'$S{ D<! +WbDcha^;ܭ^⡬שªbpld"˄2D YL&503ֿ?c;.m }reiDESZ ZEpHi@`4l(B:ԁbijfej9j Pp RC+Q1<|3 z=Ү"gb}zzN>t?7֬V+M};W(XG(\Wf&rHCҢ! fl}ȷVVJjg27M(}B|('^N"=v wP.ߎߝ3և'y=YOz$|vYfH!F-V5RߡG{Yxe?ll bpGE300ղ$[n߱3Šr7Qu9|ONc=xWuSTѝꛑaoGW  +sHxP֣,#v-[AڑC aϘO*FO-z%"R=$_"~&/TAxgq{_$^"RjvWE;:C)U SP6^hŹEojr/#>n!"/}DW^UX>7a^U1"qN?{=/{L鯾E {Jud + װJ~a~zE=Vzb' fQ𜿟@QDziXB6-4c>DgB Jys{KnB R09w›h\:ۍWټ[ZBLcAӔ_J:hX-H>t5If\)jvQ5G|EK )ik#D\(T7 s\/cKDvFD՚Wr4fX"'3+kjH-Y3\tHE 77f ~2J\T[[IU` fBxTnA9([SnGdM2U(OE"G0#MG;-H2Ocm{%Pt!2%3oKxvZa1<%fƄKTWp?~(~0fĽ[l,Lz'MZlNlzDz>,|/7GJBCTP v4c5+;mPpZx W)\+4X8ie~b0z+qygL}9*R;T =ۛb83#wx J:]j9'R2_w o[m94+ qI^5MPo YއyqPcE-c{χE+rNj=)j~T\1@ImP{Up]*AGNEfJA`Hnͽb !m7[g{+ꥵ \Q7n}N2s6Kxo9{Xo8Xq7w42< bH܏&Z*fFۖ8S:f6f +fLw8J_Z [ے{ Luv4& +KQ(y +_ݺK"XNgf#ܬ>EzOT7>t ڦ7t}4I1+b|]"ovX" ή hҵs] +Q8q5MԵXjr;8 mD8'bڂ8D[mo:GAW _.s%յGr*-j#;5 yMB'jXB [lBqK˯y !^ܽ29wFT1}MDz"Ȩ#d l;% -3kt*ϕ89Õfܕء ӵ_? yz%,ٛsV/FO+0rq +} +sMơz< V-K$|e褐S9[zHzGp<䓄OЋkm=\ /ZlB< O|P>&IPv$_7_2_rӫO/С}czӋZEƹ_֋SL>NIzՃ~uZ1; oC+@qwǰ?оu?oPL5~CF_2&z~fX$x3by@\~GZ07_UVO!N߃u sދԦ(/~g 3p kْ5=Y[o0<{$C7^ 9E9➍& W Hn*%8(ʠB QNe眳ۧ7$x{S9iٗL+y4aAF]>79oyT;eHQco);OZNQԍL\;Mׄ](v@JyZ=?3z}W}RGO}z}[b#7+F{[gEP| ;OT}jU,ǽeI3Fߜ^='z[DNx d:H?{WӫN}4dǧ̛}roŲzӞ 1W8qm]s@0tuww4o]>]8[d4M(ՀHAV{4Q8v=Ccp'vb8) ~n.ugj(ug\,W,}^qu]%/^U8jms v - N?~߯wyoHy\]oGt! ?ʮ> L4NҠ/@%)@Cq^ׂp='1tXB_ك`e Z Tr*``*|>uy.=I^*HLTk6¨FB Cc*xBn;'Z͡&7ʣ[ 'fqn}$$Jj|<lq1wFh!:Æ8 +72<**# z-AVC *aA{ePfb.O#BIK0bB]N tڭհ4 N_gYqI&9U[{7P1C7F1)CӮ4AAy.Ǭ%϶e](r1z봮1NO^]u$||CC%%ͳS)Ro u?ց ]w4u^:GS'cڨƓNAN2d63;esPь5R[PAnw-16~YEs()Ω6ڜ}[DDž;D%2n/9 :( m YoWј+'e. +) )l)\IH:&E.JfO5&veA<\~u!mڟX>bS2p[h.~ soý꿲ldeu*UB +X2?m3a+ ʬ؀l@FAO ؄|c4>}qՉY%4\|?RGr&Oa}k[ԙn3ՙ\Qk>o}vL6Q>[WQR55ի;E[[ S{\ЯsfUg^6o x}?}ƧCjxNofNzvDshȉL5znzK} +x|`}=KaHEʡFۘʠ{] Es!|(qXR*Xޒ7[WגI(̅P9H@_~|JU{*Cyy.b,dt+x,i[3PJu9`p`!,o [8 +حY3܈:)j_[% +("ʻ㭹u[{P|U7R<ߊКVmXP\̖.uiQk\9!w,ArԺ5K1ˍPF+=;%"r amɡ +CUY.`NTkESq+HStnJJA@^zs +ZCTGi%ZM"=*?N6:N=EUZoPk)y7PX^Kl-Nu Mݟo 7m`n +nE1>K]:/XA;zau&כQDǑ)}D[?"9.jƜсbJ(YASi!Dr|˲,sDp%*$3. 0YqއüӋ- +U*@rp͟DsfV믣w(*'8oO0::%W +Q cڰSQ!K{|?]1A2:d8OE4'Ǣ6 x.@b[o\@$Ţ>v4a k'vAxG]d ӎGammܦl$iJL2\bbۢ`C9JQi%fyT|[l*l\b<{ݎƺQt +׈اnIaLJq[||!o1@B(:ZE4r0*,Ϟ + 5B֨3]3]ʂ<WFwMCDJ~YJ|xQodV*Pm r#s)%Pʯ.q`-%ʆlsRלy3v*Z$+sᆓV.ȥ@jZTbJcIJYcÔ6 )J."(ڊe{ H<Gj?p 2Ml FO175Âh5p̀㉥`o^5 x`_` tGzm{b/I'l=3Wy"FGǘ 5mV_ $ ,W.]WhmpTAZkPp<CA3]X bޠG(u0sZ.!{{`Nsh+fcHadҹ*AL~j;" 3qƍ !##]t`grQ9\Ҫ|φ5 + <)l8.~ũ6܊+'7 ++;ztbQ90nGm) $e랮_'υ7[)s:sTwlp)C1w'Z#9HCk]GvuvP`l +{c;N +cv!gNj"FG;=zo~Y3R1_~JG%ϽW%xoMȅ}nk}Iǒ}-ub_KKG>'ڸJ +빡k],HR.YdǭuFg K~ϔ{/]SZC PdW+M(AjE ]2rLm4 qXyTq(OlMoi B]*V5@mԭWϿpwtчݼ??%悚ްXVm,iAI .7t +֊`+VUݡşmDWo7.Jf.DnT '*=׵1Fo$]O.Vz`ܖ +1i(2D28 +S:y|gT=yLiAB}Dhuiچ'K#:v?wqnhjp{'>,[2+Pʵ"Eٍ)E-:< -e2weN/tс]ꔹGvWwq< +ƴ(.,1ca^Iż/_~MJEBv:TEv/jX3P1Fk%5<svvϙSsEgu|SEt 5LV]6S)夗C[#u܅̴/` d]!i.0E0SzyhB@3b08'3"g3;*`\HL&ˇݤBclʬLNevR?@2?uc}A;+ҳ+O΋o  ۨ= yzz?̤^\+I-%;dmARX4L8}y#_"!)G̨8hWǵh񞄮;%#/s]RHZP'(Jc\?}n2;͏%MWeШ4lk~2*I7̥y= +D4$ėz]@I2kQs: LϐjMS )4pC&/g!D%(,8+_FpK?nW_iv-<ƕkE#~pR?^*`;ӪomM ][%[A⯶AJ,s9;P+JRDKP}K{(7aH82)J_+Ҡ/wFw( t_>3HA_iI .%w-{19 IZ-?^ZrN=y{ W`$"PX~)43Kge\ľqS&dR#)VK +P;8absEƺ^M{@eSg';N>;[`37ۣ?3ƅg:T~#xoʼn#Kc͓w)hk+L)~oiOWǠH)Bdſ-*uzyWf7Bx.uK`#NE[ks]dH[R(2em-hm-Ў<ǃgGU;A$.zz+n..i +QZ&~NڍPC2!6JJ +zًtxKXB#.1D*JퟵҢkSjD$SUn4JBg,JM1sVKyɼ̿ U`sE[*jXOʿ=IRO ǾapC,UL@ؾSOIXC,,hy,D +YehThtm唊p{Se󩭸.!pkFq'yVМKY]& UK,]+IV L1tSVƘhgT؛%&Lzn mo;ĭaVqwb)Jvk)YRm+-JA@EWsrۧ;KHđaU:ӫpK( xvhQoDdٖy.Boh59|e~s`{ *\ƭt'eFǝ._{>-Yi5: 1(V(nEַ Hnۃ퓶:b\Ym(GR!U8OBއe ۬*˂A/[E']NA){k|-5-kF93hqȭ 0-ECʱĔɻ$L3wMŌeŗtLycj.cg>d^ +Iy]/B +8"GdK,6 +A%Id U.RÐ'!"Βuk5ɵڙIS @ ɸ)w=w|wipdR#N;+-7[ȤAop5m` ZCjY4%Z$qQ(;_vi5GpHu"fY.B1,{}oG$F>m&"#nOLU@sXOB:I4>cKw4>d( wPO]}/)nrm>"mp]MMm +[mwUzuR(l&ixl]tK[n@mtze~'(}ĖoK<!rqav9]G)RKxep"awc O)+􈺏 wp+x܇{xTN:ظ RD\-D!J߶& p:BS\õŚUu= +NmVS%/ BF(WS~},݈1"">ŭQ|߇89*ה{0My=>R-'D5'8}|G{=}YjFG\ۧr%*̩aH'WUF{|Jw-quƫ7ӹQBMF2:mUF;e~eueQ韛$R"vuA?nRFG}#'$7avC)a{_{0i_=컙P ;#3uBV!HZKF8NN*rkACg OD/<]"QoOgtٳ)UauܼSaux1䬛:<),,R5QV2|ף&_hfMR%ª01ě$bu"+?NB,=w |߇hz4%+;o#jQ{*kh5^q..]!-j-I[_?]ߺ>FL]{7-wcs6 _Tb!V>:Q nk+\/vz>OGW=.?%0d58gt8NQ=sڕMup̼L'&3L5s׉")H2Cp'ةAG jBL#a4rqE|H=ƿv2hFb š|.DsxvD狽]5.]qpfDzڊ_i8𴱹5XZG^ 4cgZT<T,ImUQ:&SqN55R#D6dq/x@CF_>Ay<2obx$㧭J/F!Efs 0*u+U9bWf0&锟GMNxf(bjQuUFg2o7\4g\fҮ ߛ"a6XA/޳0YF2M}Yfbb:}[$3^ajV~4`A$$q(;g;SH%|~\ꊘ/q;,Gԭ([>XonS6"M_%~N=[zĴn!"u3r*G3AL'eWa}Y=U&1J=4DBdѨM]=G,fj==KsˈG$~*{{dۆ:ΈF(^R>b?gEqpT )T?3ljh&`=7!L83E{(eJfXf1!`8fwvT"ߺ+3)ۣZqZjD-ލv"8ՒdZ?+M^f)v,dfwxEpuv{AFRMn"s1t+lHЋB|\ +aEVwܤ/n_a?xas?޵YƋ{&{x8+ {nݞ,z9]e7@@»ݞ n>t'Aj:2C n ^D2nP +%{]24 +2r#(ĽaDLHkκcQsQK\ ++@+-ܓeM3?}TX䯃|;&,^3WHL\jx")_W1\# Ka['Kq/z3y%ayjì&{aVw&ì&fH,&EwRߨl>+N놤3^D Jc;rd(鞍z4RgЫ7n+x]Z?̉mEk*z1xs?f䝈[{#J& +φYEct NV=(#~_-w gs8N!e0YG2/P>I [8bZx'ދWUP$b$p.m!kbk\!Pz[#3 %exd"81~Y0GsGRs4xA;0o;ȀW%A|s l;%]?۳kR!) ,ߗˬ `A;;e:ٯ绐z,ԝ'7&.*ԝc MY bsۤfdveil|=8~ Ǵ0H r Uz %9+ԾYvI^ZzrVil/ǿ^l9wuH6`=|wc0=SE&zoxI&|g;;@Z==8yߪO'ukK;+x1'v?OmCc$N%&$r5,eI@'tϳuܧl㑺(8C9Q/ۑ => FK:G7{q>G^!œ/ XG f1ՠWMyuԴw_y t{ٳGܵ.y@WVn+r*qnqCV$wLyGj>[ +1،郦Иw5Z"HWF݈K&x~.+ ĈxVT^ˮIjq="NIl/i%E}Xnݗ/U'W'y$=Jxnt{7STFF_ˍP6#eSW!xny7u?5ܨxmЫhny)>&JUy guc85J?tO=*ŵr`d0A7omLv0[ٶË?&7~ $}!g ~)xg~ vKkR7tߣ^X[V;v #xYVXDYS,ϛi"&zB#|IM9G-:1bacp#3}|V8ΖhDQ8U0 waWo<w<8`MVr8*#r{>=څ]lwy~[verȈԿ2]~<&ϖ_V#y]^O ~U,z6U~=y=kNxV0sn:qHD%z'k2,4M]h"a  +spX+?IZ^_[.Ϗ>tg3#K:a&3þİf|d7k^%} ;(OtpAw,RҘqK3VWf{L%9̘s/$߱oAFui@G̯䥺/FL{8gXb@ ^2.EImeL!\㜗H1oq6A[sx?zZ,7:cWUfutyQ;!vt׋ØѶP + +gh7:EJk)>OdG# 頋_KlJhNp#)qH6Y{MsdgNi겝J%3?| clNzfU9sXd'X=Dj2T5]V=_'q +f4`[vU;W#L)CD(v4K7W]D%Aj Z?3Aﯚ[@^˾HE>- Y 1z{!PI4Є=| +CstSc,Ø)E} JlE4M++\Y%WJ\]4# IHDU Z)e_ kR(x''mKS#$pѩ{\+%S/KK ;HRf%MŀA}QL'K֠ rљ +fCvs&dE2I> "wX$*E<P"w)da_ftV yzk=j]rܿ5sBޡnD:2hFGRfgw-6u+4;7ݨvb' +uhDrc+@'g@\h湆lius֨i;-0ů1k ݴ4v&bz gFpbd[h۩U(E+Vc2Ͼ]/b&2x0#خU+ ʱXbe}i|"D*on3_;r9Ui+f>2յ=)b慷{|^@akY`enB_T1&-F—ԮObpFˮ7"mn&hLRn-'JaT7"j-Sؾp @dt04p9iyS澸,Iq ,Z)ΟNj /.߿no$  +_lEaڰFH8mlcۭ{/){e{k0/EdlyWa)L- 6WT)Q +qkŀ3 +(ѹsqDgٽ`ְZ$Ѫ [2'b2-3}醆`xb[~?LtHOQ7QQbM2b=c3N:P{DLav^Ov'*0+%l숔YM-sENrQu7fj3TqfY| +?+M+l1l0j+T_1KL|L3/ſ4v{'Z$U6uw{Fu [?$&&&[ ¿k4Q`Xn>kY|C>r+)n;QL'+@ԷO{_yA3)$DA:AJ7wiI杨D +Ȗ$3iƕ,~gm9 t޾geX6V?\9ÖN7Φ4)3f1HR$)wpղhlf3P+GC;ownq>?`e5.߈I1;O"ip "L$4b^߇A_>-#H%аCGDFE>"Yƍ`p)I.ZC}T$ʖ ӡ0JK/OB;TK%*DSH8I\uAԌ]r=< +$v({ +6=Mϳ̯ۀ_gE+̱BFAl^*%z=D)jnLa8BFH$ QG(%N++84dtU*nn20FbJh*%!/)FzQ`J"@FZ&K/%HxxВ"I#G.-%FLVԢR$bB1;f $3 rKPO`a8D$Y?*CqH VAS%] y>QK$YyhgE+I]80HJH +H@t@H7L"E?,TJR M$tPaCJv]@S<$|4%C#ГG!4u`i +:#jb$ݸi4 ʷBi>}Y8c.>0=w4q_?!Uvˑs>jJY}ӿ-( S?S?T2S?%ŸVz֟K۟[t؟?}O_UOS?u%?S?S?T2S?%ŸVz֟K۟[t؟?}O_UOS?u=ȗOOOSO4ϟ +ZOYO/nOoazߟN?}OW?}OOt/))̟)֟)ݟџri?-ʟ6ӳş^ϟ?Kʟuޟ:۟ n$ſ?J|6bzKAB{qȍJQ,^Deu;Bh1z ih,JEi(C4MBZTeԂBOm@FT֢"֣qbѓh%Z6b-CkjF1h Ft0yxl螿/ytEOЧ/ }OoP=n_= + h]+~ѺUB~ a+^nld,uQ6uv\X`"Պk +4$I2߬! $ERKPKEbDHDJ2@9E' >/ZUdv6 +quc: el&ܯ=.ʇAj?)-PKA+QP P:5SpN =I?,7|+)&>X|-[_xb/W*wڽת3V{qT&P + z{GkI?+D?A:QF$0_/feB==p~l&^`')|Ѓ(y=pσ߿w`~(/%y)`^F?O>:`p00OB0| /O_=/*_Qniqc'y|UzvzQX_ǧ#>|֎MKEcӵƍMM:q㐪o_tӴ +WL;>55}\IF8vqrצk&N;~tZڸIc'Oõvxvxu _쿠@I'=k\ouknG?M̘ek,O +Tm,~9ցoPƵMk7.\Ϫ6U bVvCժ_BxO+ہS}zj]7=&AڴF@<}*vU//X*A~UAA*ujҍE%6l0ԪRUc33>0p0*2 )?F@_P\a@P]R׬`jSzu*@C_.CocǍ7.m6? LO4>-}&O0zTKM4os:6}ܿ!X? 4a?v׬/ؠJזn9[` +7Yfj_o\@:oOt|zVWOW~3NX/W|BRp͆mTϪX^?)q#ƊgY}|`~9@ a\^j*2zl +ePWdybj~Uʪ ~ɪX-b՛]Up޸~pixGԪGFP@7 cǪp +Nk?U-}|UEi1$i/xJ5W3B7}-W,[Z|%1_Ce_:^v1ׯM ~5AǨRL?eNV[vdXYv,`hn +=67T9UJ>\ Fsxusr5_ BK|Y_0ܐ7ysi+@acXTSUڄ%o_( 4#IMӦ_z[R' mhq0_i?K?Xɡ_lo?E+y:V;J2sr; zDx'喩D4#p$Fx?}-gi?v>GĀ3&}n'Sy`;?fA/`ڃ~,voN{ID?p~}oE㿹76,sϫЃfC;Aw_}r6fUcVHYUfcqJ)G_;:._f<:[3Fy\wk<vKJdSk .~hˆ>O/n,! R௫3>;`mc_/gB_(_  >ʳ|/B_(o:'rH?&r,fQDKZrrv W!^hrp6CkoX /U׳(Uh ڢ5P|KaMpsdqX/\^l?XDE3rRGCK\ ++' +o(X7oa/[?z?ڥ>ПI9pݗ#t_ + amy_1P!@wiOr\{/%`c@Qsʕ_.y(ʺe@@X1\4r@@Z=\27xt@b@7(P~n@y@??~@~C3O{(?|C~(?衼|Oʃ;cfMֶf_f}Y8pѐyA#,x? >%fmNkzi">Ͳn[^]}1}i{|cieֶY;=[ {[+`><}_̇v;D=[Y)B2ko+vqBoD +ٿ"6Q !n U>N"i p=Y`JOХa"1dϣYү}W|PzJ^ڠJ:veڑy|G,2%}BFL"i!":hV>/|c^ $DZⷊȬ3Yi +Dv{ djbчI GE(p5 d(xsߣ ;2;2;Ze;Dl#11hZЖk=b8ٳN0{7~b_uns;r_ ANDp_p$li oXS}=$܏ roN~}7zQd@úbO'b-#ԣkc__{ 6h3T&XP}(yc=N9 +( +('2q {`B=r# 75Ƕ^3~vtݏj& &1>g~~=_}^N}X|Z~Ask?Q)/H#~)]_ W_[ _IC |‹^jDsUé=ɝԎt_^I%S ^~gĽxw[Sx۾]{nvţn{mn׸ۋnt c#ڵZ/kxwyqɋ/"߬yOMŷood|=ڵvi i iǛ1Q $g7"߅t!]?@=I{~/C]bO B7/2^"r0Oc-D֮K 9BAӀ5俯"Y٬KrHÍVyB^ u3<ؿEffrr:z0}prއuHw~a_':I;/o~>Nv~O5g# Qm' +E +O9(}$-vb2-=B6OL8l--9GӲZ\X^HzSLYVn9C,9WYZkłfV + \(8thvH6 K+eGz(spb{Z`q4>2eLN e&Scc3h*-ϊ61}`F6ssr ?u]ܺy1jh^}i4%ŰB =قmfK9PaFP)l m`jzZ)ys:yabEHҒr\i|W4ɒׂ+ay1-i//89: K:ZԒy\p!,gYJaGPfhbR.i²`c;'u."Yz%Gb!A~&May-U/iNZ&mI]TWLC,-0׸ȟ=k mʎX޿9ݮymTvɩW/0҄R/'Wey|>t^J"9xKnymVi]a<&?,û?kE_6~7lo9)>?M 3n|N?574_IlJC)ʞ]O=C+&FBnN1ʈxb?Gu/RȻ'e/' 3M_wORE.zX@{|;?-q/$2/nwOy*0Q? G#+^Xg?7y4u4>toO" +}$Og^}һz&{vvy=s?ygξgAѰlK'PO*M󺅆+9^41'ICwQϳ[ g#,:|@^(ێU:qm(tZ0 2Q pK:"x62nV\h'K(&] h!1Hf hĂsd^} Ri.dZDH=ON.JΩGMb6vʕL6&ۺQvg[y͝!F#4̗rM/|Vs!;cUmsɼq Ztk)oe-q|U(m[sz\J`m|ZCj,a38kx`Ve#_b5O3Ypz1`m^j`0}vuxsh1o8FF(ܐ+ܴ(HjjII:&MI1cnՋXJt)|pB8ih;ۡO|i'4U8A  ]7p%rPE?WDbσX]2`SǸ@]^&V>YY&&-.K4yA ^-EC!dɸKb dMB! 8xl!gb%!=UKDx=vNN$N2Pj/*%X!aKq 1wSsE2(jսgJnڇqMLzLʶ'!f~OLM_MXd#P31)󕲡S9D4-\ dXbv 7EkƎt$C]u.V+I7A'H%#n5)hE0n~PmN2=f_=]{rꈗ#-sOgi+uG\).}~-h9U„?TO'-b1K|>iQ@A`qWduJbVTj*cfzvY V"yg<-y:S^&@F'kN'ɜU6qL:iX,yݮKK"GWrs P;cWF2^E>I|bOiGۢD@;d>LE¢[p|`w8fQ5G>/NDS4o @w7qrINLfFLdbKxX"~i9O1q)rOqgAo(|i5%/1pq%nhֺFk.n!Fk45/ݮyQv ./BݮQE]c]8v VtFUy. x=\lkI\dUʼ+?kEkWE])bL"ܮѽ_JGCڊ5jvnʯ2|p[cp_TO}??*Rٝh# +v~FK:9 +k:Uajd}܎䋚i=oUk ?-s?/)pK?~3$RBL![ +; +@~{Dh̏O + +ၸ^~lGp@cq@xnٗNa!t/=炰C= Y/k:$9+&߮]VCK +9D AuB7 gg +I8ww ߐp>nޕII8>|$ +{G O +"ݿ;ZC,koˏY$;uR7>%mVBߔ?Uo'E?·8>o?Eσ +7fqPK)X!//*:__'A?"somOś.u#qy  %?W2fMrI09KR9$\ O&[Hq,{"0h:4iߔ+RZ_pyGo?ZO埇C{[WWiL.B5EMD7RQWv\7HA{TC& +( +( +( +( +( +( +( +(F?+n \ No newline at end of file diff --git a/Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.3_utils.sh b/Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.3_utils.sh new file mode 100755 index 0000000..a9ecc67 --- /dev/null +++ b/Code/devterm_keyboard_mini/bin/DevTerm_keyboard_firmware_v0.3_utils.sh @@ -0,0 +1,1055 @@ +#!/bin/sh +# This script was generated using Makeself 2.4.3 +# The license covering this archive and its contents, if any, is wholly independent of the Makeself license (GPL) + +ORIG_UMASK=`umask` +if test "n" = n; then + umask 077 +fi + +CRCsum="3033051544" +MD5="f56a09c1c4b01a2ddf358fc794e33b98" +SHA="0000000000000000000000000000000000000000000000000000000000000000" +TMPROOT=${TMPDIR:=/tmp} +USER_PWD="$PWD" +export USER_PWD +ARCHIVE_DIR=`dirname "$0"` +export ARCHIVE_DIR + +label="keyboard_firmware" +script="./flash.sh" +scriptargs="" +cleanup_script="" +licensetxt="" +helpheader='' +targetdir="stm32duino_bootloader_upload" +filesizes="104588" +totalsize="104588" +keep="n" +nooverwrite="n" +quiet="n" +accept="n" +nodiskspace="n" +export_conf="n" +decrypt_cmd="" +skip="678" + +print_cmd_arg="" +if type printf > /dev/null; then + print_cmd="printf" +elif test -x /usr/ucb/echo; then + print_cmd="/usr/ucb/echo" +else + print_cmd="echo" +fi + +if test -d /usr/xpg4/bin; then + PATH=/usr/xpg4/bin:$PATH + export PATH +fi + +if test -d /usr/sfw/bin; then + PATH=$PATH:/usr/sfw/bin + export PATH +fi + +unset CDPATH + +MS_Printf() +{ + $print_cmd $print_cmd_arg "$1" +} + +MS_PrintLicense() +{ + if test x"$licensetxt" != x; then + if test x"$accept" = xy; then + echo "$licensetxt" + else + echo "$licensetxt" | more + fi + if test x"$accept" != xy; then + while true + do + MS_Printf "Please type y to accept, n otherwise: " + read yn + if test x"$yn" = xn; then + keep=n + eval $finish; exit 1 + break; + elif test x"$yn" = xy; then + break; + fi + done + fi + fi +} + +MS_diskspace() +{ + ( + df -kP "$1" | tail -1 | awk '{ if ($4 ~ /%/) {print $3} else {print $4} }' + ) +} + +MS_dd() +{ + blocks=`expr $3 / 1024` + bytes=`expr $3 % 1024` + # Test for ibs, obs and conv feature + if dd if=/dev/zero of=/dev/null count=1 ibs=512 obs=512 conv=sync 2> /dev/null; then + dd if="$1" ibs=$2 skip=1 obs=1024 conv=sync 2> /dev/null | \ + { test $blocks -gt 0 && dd ibs=1024 obs=1024 count=$blocks ; \ + test $bytes -gt 0 && dd ibs=1 obs=1024 count=$bytes ; } 2> /dev/null + else + dd if="$1" bs=$2 skip=1 2> /dev/null + fi +} + +MS_dd_Progress() +{ + if test x"$noprogress" = xy; then + MS_dd "$@" + return $? + fi + file="$1" + offset=$2 + length=$3 + pos=0 + bsize=4194304 + while test $bsize -gt $length; do + bsize=`expr $bsize / 4` + done + blocks=`expr $length / $bsize` + bytes=`expr $length % $bsize` + ( + dd ibs=$offset skip=1 count=0 2>/dev/null + pos=`expr $pos \+ $bsize` + MS_Printf " 0%% " 1>&2 + if test $blocks -gt 0; then + while test $pos -le $length; do + dd bs=$bsize count=1 2>/dev/null + pcent=`expr $length / 100` + pcent=`expr $pos / $pcent` + if test $pcent -lt 100; then + MS_Printf "\b\b\b\b\b\b\b" 1>&2 + if test $pcent -lt 10; then + MS_Printf " $pcent%% " 1>&2 + else + MS_Printf " $pcent%% " 1>&2 + fi + fi + pos=`expr $pos \+ $bsize` + done + fi + if test $bytes -gt 0; then + dd bs=$bytes count=1 2>/dev/null + fi + MS_Printf "\b\b\b\b\b\b\b" 1>&2 + MS_Printf " 100%% " 1>&2 + ) < "$file" +} + +MS_Help() +{ + cat << EOH >&2 +${helpheader}Makeself version 2.4.3 + 1) Getting help or info about $0 : + $0 --help Print this message + $0 --info Print embedded info : title, default target directory, embedded script ... + $0 --lsm Print embedded lsm entry (or no LSM) + $0 --list Print the list of files in the archive + $0 --check Checks integrity of the archive + + 2) Running $0 : + $0 [options] [--] [additional arguments to embedded script] + with following options (in that order) + --confirm Ask before running embedded script + --quiet Do not print anything except error messages + --accept Accept the license + --noexec Do not run embedded script (implies --noexec-cleanup) + --noexec-cleanup Do not run embedded cleanup script + --keep Do not erase target directory after running + the embedded script + --noprogress Do not show the progress during the decompression + --nox11 Do not spawn an xterm + --nochown Do not give the target folder to the current user + --chown Give the target folder to the current user recursively + --nodiskspace Do not check for available disk space + --target dir Extract directly to a target directory (absolute or relative) + This directory may undergo recursive chown (see --nochown). + --tar arg1 [arg2 ...] Access the contents of the archive through the tar command + --ssl-pass-src src Use the given src as the source of password to decrypt the data + using OpenSSL. See "PASS PHRASE ARGUMENTS" in man openssl. + Default is to prompt the user to enter decryption password + on the current terminal. + --cleanup-args args Arguments to the cleanup script. Wrap in quotes to provide + multiple arguments. + -- Following arguments will be passed to the embedded script +EOH +} + +MS_Check() +{ + OLD_PATH="$PATH" + PATH=${GUESS_MD5_PATH:-"$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"} + MD5_ARG="" + MD5_PATH=`exec <&- 2>&-; which md5sum || command -v md5sum || type md5sum` + test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which md5 || command -v md5 || type md5` + test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which digest || command -v digest || type digest` + PATH="$OLD_PATH" + + SHA_PATH=`exec <&- 2>&-; which shasum || command -v shasum || type shasum` + test -x "$SHA_PATH" || SHA_PATH=`exec <&- 2>&-; which sha256sum || command -v sha256sum || type sha256sum` + + if test x"$quiet" = xn; then + MS_Printf "Verifying archive integrity..." + fi + offset=`head -n "$skip" "$1" | wc -c | tr -d " "` + fsize=`cat "$1" | wc -c | tr -d " "` + if test $totalsize -ne `expr $fsize - $offset`; then + echo " Unexpected archive size." >&2 + exit 2 + fi + verb=$2 + i=1 + for s in $filesizes + do + crc=`echo $CRCsum | cut -d" " -f$i` + if test -x "$SHA_PATH"; then + if test x"`basename $SHA_PATH`" = xshasum; then + SHA_ARG="-a 256" + fi + sha=`echo $SHA | cut -d" " -f$i` + if test x"$sha" = x0000000000000000000000000000000000000000000000000000000000000000; then + test x"$verb" = xy && echo " $1 does not contain an embedded SHA256 checksum." >&2 + else + shasum=`MS_dd_Progress "$1" $offset $s | eval "$SHA_PATH $SHA_ARG" | cut -b-64`; + if test x"$shasum" != x"$sha"; then + echo "Error in SHA256 checksums: $shasum is different from $sha" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " SHA256 checksums are OK." >&2 + fi + crc="0000000000"; + fi + fi + if test -x "$MD5_PATH"; then + if test x"`basename $MD5_PATH`" = xdigest; then + MD5_ARG="-a md5" + fi + md5=`echo $MD5 | cut -d" " -f$i` + if test x"$md5" = x00000000000000000000000000000000; then + test x"$verb" = xy && echo " $1 does not contain an embedded MD5 checksum." >&2 + else + md5sum=`MS_dd_Progress "$1" $offset $s | eval "$MD5_PATH $MD5_ARG" | cut -b-32`; + if test x"$md5sum" != x"$md5"; then + echo "Error in MD5 checksums: $md5sum is different from $md5" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " MD5 checksums are OK." >&2 + fi + crc="0000000000"; verb=n + fi + fi + if test x"$crc" = x0000000000; then + test x"$verb" = xy && echo " $1 does not contain a CRC checksum." >&2 + else + sum1=`MS_dd_Progress "$1" $offset $s | CMD_ENV=xpg4 cksum | awk '{print $1}'` + if test x"$sum1" != x"$crc"; then + echo "Error in checksums: $sum1 is different from $crc" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " CRC checksums are OK." >&2 + fi + fi + i=`expr $i + 1` + offset=`expr $offset + $s` + done + if test x"$quiet" = xn; then + echo " All good." + fi +} + +MS_Decompress() +{ + if test x"$decrypt_cmd" != x""; then + { eval "$decrypt_cmd" || echo " ... Decryption failed." >&2; } | eval "gzip -cd" + else + eval "gzip -cd" + fi + + if test $? -ne 0; then + echo " ... Decompression failed." >&2 + fi +} + +UnTAR() +{ + if test x"$quiet" = xn; then + tar $1vf - 2>&1 || { echo " ... Extraction failed." > /dev/tty; kill -15 $$; } + else + tar $1f - 2>&1 || { echo Extraction failed. > /dev/tty; kill -15 $$; } + fi +} + +MS_exec_cleanup() { + if test x"$cleanup" = xy && test x"$cleanup_script" != x""; then + cleanup=n + cd "$tmpdir" + eval "\"$cleanup_script\" $scriptargs $cleanupargs" + fi +} + +MS_cleanup() +{ + echo 'Signal caught, cleaning up' >&2 + MS_exec_cleanup + cd "$TMPROOT" + rm -rf "$tmpdir" + eval $finish; exit 15 +} + +finish=true +xterm_loop= +noprogress=n +nox11=n +copy=none +ownership=n +verbose=n +cleanup=y +cleanupargs= + +initargs="$@" + +while true +do + case "$1" in + -h | --help) + MS_Help + exit 0 + ;; + -q | --quiet) + quiet=y + noprogress=y + shift + ;; + --accept) + accept=y + shift + ;; + --info) + echo Identification: "$label" + echo Target directory: "$targetdir" + echo Uncompressed size: 312 KB + echo Compression: gzip + if test x"n" != x""; then + echo Encryption: n + fi + echo Date of packaging: Wed Dec 22 12:48:09 CST 2021 + echo Built with Makeself version 2.4.3 + echo Build command was: "/usr/local/bin/makeself.sh \\ + \"stm32duino_bootloader_upload\" \\ + \"DevTerm_keyboard_firmware_v0.3_utils.sh\" \\ + \"keyboard_firmware\" \\ + \"./flash.sh\"" + if test x"$script" != x; then + echo Script run after extraction: + echo " " $script $scriptargs + fi + if test x"" = xcopy; then + echo "Archive will copy itself to a temporary location" + fi + if test x"n" = xy; then + echo "Root permissions required for extraction" + fi + if test x"n" = xy; then + echo "directory $targetdir is permanent" + else + echo "$targetdir will be removed after extraction" + fi + exit 0 + ;; + --dumpconf) + echo LABEL=\"$label\" + echo SCRIPT=\"$script\" + echo SCRIPTARGS=\"$scriptargs\" + echo CLEANUPSCRIPT=\"$cleanup_script\" + echo archdirname=\"stm32duino_bootloader_upload\" + echo KEEP=n + echo NOOVERWRITE=n + echo COMPRESS=gzip + echo filesizes=\"$filesizes\" + echo totalsize=\"$totalsize\" + echo CRCsum=\"$CRCsum\" + echo MD5sum=\"$MD5sum\" + echo SHAsum=\"$SHAsum\" + echo SKIP=\"$skip\" + exit 0 + ;; + --lsm) +cat << EOLSM +No LSM. +EOLSM + exit 0 + ;; + --list) + echo Target directory: $targetdir + offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + for s in $filesizes + do + MS_dd "$0" $offset $s | MS_Decompress | UnTAR t + offset=`expr $offset + $s` + done + exit 0 + ;; + --tar) + offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + arg1="$2" + if ! shift 2; then MS_Help; exit 1; fi + for s in $filesizes + do + MS_dd "$0" $offset $s | MS_Decompress | tar "$arg1" - "$@" + offset=`expr $offset + $s` + done + exit 0 + ;; + --check) + MS_Check "$0" y + exit 0 + ;; + --confirm) + verbose=y + shift + ;; + --noexec) + script="" + cleanup_script="" + shift + ;; + --noexec-cleanup) + cleanup_script="" + shift + ;; + --keep) + keep=y + shift + ;; + --target) + keep=y + targetdir="${2:-.}" + if ! shift 2; then MS_Help; exit 1; fi + ;; + --noprogress) + noprogress=y + shift + ;; + --nox11) + nox11=y + shift + ;; + --nochown) + ownership=n + shift + ;; + --chown) + ownership=y + shift + ;; + --nodiskspace) + nodiskspace=y + shift + ;; + --xwin) + if test "n" = n; then + finish="echo Press Return to close this window...; read junk" + fi + xterm_loop=1 + shift + ;; + --phase2) + copy=phase2 + shift + ;; + --ssl-pass-src) + if test x"n" != x"openssl"; then + echo "Invalid option --ssl-pass-src: $0 was not encrypted with OpenSSL!" >&2 + exit 1 + fi + decrypt_cmd="$decrypt_cmd -pass $2" + if ! shift 2; then MS_Help; exit 1; fi + ;; + --cleanup-args) + cleanupargs="$2" + if ! shift 2; then MS_help; exit 1; fi + ;; + --) + shift + break ;; + -*) + echo Unrecognized flag : "$1" >&2 + MS_Help + exit 1 + ;; + *) + break ;; + esac +done + +if test x"$quiet" = xy -a x"$verbose" = xy; then + echo Cannot be verbose and quiet at the same time. >&2 + exit 1 +fi + +if test x"n" = xy -a `id -u` -ne 0; then + echo "Administrative privileges required for this archive (use su or sudo)" >&2 + exit 1 +fi + +if test x"$copy" \!= xphase2; then + MS_PrintLicense +fi + +case "$copy" in +copy) + tmpdir="$TMPROOT"/makeself.$RANDOM.`date +"%y%m%d%H%M%S"`.$$ + mkdir "$tmpdir" || { + echo "Could not create temporary directory $tmpdir" >&2 + exit 1 + } + SCRIPT_COPY="$tmpdir/makeself" + echo "Copying to a temporary location..." >&2 + cp "$0" "$SCRIPT_COPY" + chmod +x "$SCRIPT_COPY" + cd "$TMPROOT" + exec "$SCRIPT_COPY" --phase2 -- $initargs + ;; +phase2) + finish="$finish ; rm -rf `dirname $0`" + ;; +esac + +if test x"$nox11" = xn; then + if tty -s; then # Do we have a terminal? + : + else + if test x"$DISPLAY" != x -a x"$xterm_loop" = x; then # No, but do we have X? + if xset q > /dev/null 2>&1; then # Check for valid DISPLAY variable + GUESS_XTERMS="xterm gnome-terminal rxvt dtterm eterm Eterm xfce4-terminal lxterminal kvt konsole aterm terminology" + for a in $GUESS_XTERMS; do + if type $a >/dev/null 2>&1; then + XTERM=$a + break + fi + done + chmod a+x $0 || echo Please add execution rights on $0 + if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal! + exec $XTERM -e "$0 --xwin $initargs" + else + exec $XTERM -e "./$0 --xwin $initargs" + fi + fi + fi + fi +fi + +if test x"$targetdir" = x.; then + tmpdir="." +else + if test x"$keep" = xy; then + if test x"$nooverwrite" = xy && test -d "$targetdir"; then + echo "Target directory $targetdir already exists, aborting." >&2 + exit 1 + fi + if test x"$quiet" = xn; then + echo "Creating directory $targetdir" >&2 + fi + tmpdir="$targetdir" + dashp="-p" + else + tmpdir="$TMPROOT/selfgz$$$RANDOM" + dashp="" + fi + mkdir $dashp "$tmpdir" || { + echo 'Cannot create target directory' $tmpdir >&2 + echo 'You should try option --target dir' >&2 + eval $finish + exit 1 + } +fi + +location="`pwd`" +if test x"$SETUP_NOCHECK" != x1; then + MS_Check "$0" +fi +offset=`head -n "$skip" "$0" | wc -c | tr -d " "` + +if test x"$verbose" = xy; then + MS_Printf "About to extract 312 KB in $tmpdir ... Proceed ? [Y/n] " + read yn + if test x"$yn" = xn; then + eval $finish; exit 1 + fi +fi + +if test x"$quiet" = xn; then + # Decrypting with openssl will ask for password, + # the prompt needs to start on new line + if test x"n" = x"openssl"; then + echo "Decrypting and uncompressing $label..." + else + MS_Printf "Uncompressing $label" + fi +fi +res=3 +if test x"$keep" = xn; then + trap MS_cleanup 1 2 3 15 +fi + +if test x"$nodiskspace" = xn; then + leftspace=`MS_diskspace "$tmpdir"` + if test -n "$leftspace"; then + if test "$leftspace" -lt 312; then + echo + echo "Not enough space left in "`dirname $tmpdir`" ($leftspace KB) to decompress $0 (312 KB)" >&2 + echo "Use --nodiskspace option to skip this check and proceed anyway" >&2 + if test x"$keep" = xn; then + echo "Consider setting TMPDIR to a directory with more free space." + fi + eval $finish; exit 1 + fi + fi +fi + +for s in $filesizes +do + if MS_dd_Progress "$0" $offset $s | MS_Decompress | ( cd "$tmpdir"; umask $ORIG_UMASK ; UnTAR xp ) 1>/dev/null; then + if test x"$ownership" = xy; then + (cd "$tmpdir"; chown -R `id -u` .; chgrp -R `id -g` .) + fi + else + echo >&2 + echo "Unable to decompress $0" >&2 + eval $finish; exit 1 + fi + offset=`expr $offset + $s` +done +if test x"$quiet" = xn; then + echo +fi + +cd "$tmpdir" +res=0 +if test x"$script" != x; then + if test x"$export_conf" = x"y"; then + MS_BUNDLE="$0" + MS_LABEL="$label" + MS_SCRIPT="$script" + MS_SCRIPTARGS="$scriptargs" + MS_ARCHDIRNAME="$archdirname" + MS_KEEP="$KEEP" + MS_NOOVERWRITE="$NOOVERWRITE" + MS_COMPRESS="$COMPRESS" + MS_CLEANUP="$cleanup" + export MS_BUNDLE MS_LABEL MS_SCRIPT MS_SCRIPTARGS + export MS_ARCHDIRNAME MS_KEEP MS_NOOVERWRITE MS_COMPRESS + fi + + if test x"$verbose" = x"y"; then + MS_Printf "OK to execute: $script $scriptargs $* ? [Y/n] " + read yn + if test x"$yn" = x -o x"$yn" = xy -o x"$yn" = xY; then + eval "\"$script\" $scriptargs \"\$@\""; res=$?; + fi + else + eval "\"$script\" $scriptargs \"\$@\""; res=$? + fi + if test "$res" -ne 0; then + test x"$verbose" = xy && echo "The program '$script' returned an error code ($res)" >&2 + fi +fi + +MS_exec_cleanup + +if test x"$keep" = xn; then + cd "$TMPROOT" + rm -rf "$tmpdir" +fi +eval $finish; exit $res + a]wƳW +:mɯ!@K{Na-mY2Z)o3+ isKgfGKVI)HpOIJj7Ӫ_[_pj7/\sn֛fݮptnVp21ry5l#cijtve[4;vՁ 4;u/{nUU}~Zqn*?}n=qv_`yb|mi6fٍmnmڝMiϷ-t)UY_7Fj^m4:gosvW*bCVq?φI2Z gn4iZɨxF=YY9NXnFit_onjs˱f_[ d?wZUU\w%kCXe {oz=ǩv|y?[ S}>WVުNGon-߶ noio*#*z `5w6[V޾oM6{iBng^Zj]nݴoVaFaͮ&b߄p6[vW-VקW\ oסQ8~œ~xrBFby8Fc@] xĢ=;V"M&x{cR D$i&b}K7/YS}zĐIC$jv*bF"9}tc|u,࿦j? -p6)U߶a%0#ᱩf }ʌpTX1Lj7ZQV^xL`5q 8"Nyoܺu ݺq~]h/YC~{uG>x# "d 0!֏Т^uRG/Y( <hϰ&ɕI4ʦ=`h'X"bM, +y/ +a+}4 `4e+Y5*В"Idž5x͜XcK, KB!SڨbC릑0=3y&G`p??3k,dD\}9Xva _\+ס}nD/Ͱ`%XT 3ѬB2Q(HA3o4@2 ry)ޗhİ ^V.B _ /Lm2'&'S,G 9Cj ÃM0X{Ʊ")AVVwł7` (sc/_<:xv#P +YE^UWks#6Cs Y$3_iPmp*lw!LZ]\B2/}[XL04C=V^/T%&8qYn6"*ׇꎍ׼:(?:Q"3Z/}9B Y7 K?n?mوZWy[8wʾ<YQ|*ʘ0Xāal}nMOyn^{0m-^D b4kQkYG:ďjC\l,cDj"0 ):}xJ.DDYͲ1$0{ W0D!#)(0@`pOdfу; Ğ v8B釮4'"^)O@@Vۓ֡J&p o B!!Oˢw'ʛڨ(,a  +f}4ake V_g/w'\(L  yO颩3%dKb&wXb"Q h0sH8It<h(.njγיm㌉t|̗Lc0#%Sn(TqUGn . 'Ǒ50$z* k~p*#9w28 +n" w?l8";ַ vtT;fGw|jTݮ4 OCwxM2`s(aݱa9kGw=~p|ӿlJ^YVY$ +b-L͐jd9e?~HBK Kt#iJv**.IOa!?W;]HIβEAzb \Xc5qh+FX&0X́"T*AݛD)A"~0 Wz>&A + & ZcZn4C`RӫX5K<>JjI27.xW*iһHSe&3 njѽBWnHx[Qs:BEC<`6 JTfݺ@V F~ -ǸĔ|O'<3ԝDi*gGCm[O2 +o@h"?t'//NvtF]PKj?}2:"xv Xiߴv=X=Wjeurd~qgaԣZf,QpMq,#֪wc#ZԞx3f4U]>% .DD?LQPcWJTɼuc~MA9N||oFvϨp|U:\;@Ջ@\uP[3 2dWUDѡD8`IQ O"߻m I(=Ayj t }-Ocā4PbEgr JcrH#E +L?"Mc{&rd SY:m=krsw=IE.6s8!ROp)*c? A$jHoVWH%wұlSa.Ukt<"G?J|41 &6$DUb-.VB#bx6Q(pVi11AD ($@y=@` B8}DX8`lQ{ѝ +%'ِP 6 ]$4 p#A%wVR*Qhj^H\hI}DDH "EI07$񪊨 h=d +;_*`C!fhWH) }p 6H9"*ti`aFqpӓdKApR]2HX.<<9,V&Uzʑ:WXq +Ea^_p`!ZXI8i*h@eP|%6ts@fL vqy$Ca/"}T70q 8BMh˂[}:'͢ B~^ԼtzbdTe{hY[ dA +%DIUj8r ^ck9V{2:2AzMzpڂZnx7\kl_kg@IJ{IP+&g'xO~a*M47uzx34 {!}s= '-{؀]) '?Էj2r~C2J?^2My!> >TL 8.U)W0aLl1I)8`g׮820/\xӅaeoOJ6T)d^nݳWSUB]`5?*~n +e4J@y'06`Q04T8FfN,>tWAw& JwP$FLr-+S4@H5P %:>#ϒVO%{*ay(yt-PH񼽠lj>Z7I40/r7(A[]Rr%aCǨ>RH +*HZNRBȝ һHiza[\e$< 2^YoqI V;Hx60jH;4Ce} qW2)HhjW +A2a'Ɖ2 K[:x* %MD{<4Ax䉉@oW<@ +Un\ B7'݌: + KQ@*Xnlsr45 >:#S{ɒ ߌ')QFkK^oD_;]AaO110,MZ(+~YrI(qG1~ʄnxE8-< Q:5iq͌|]qnXH=健\ +KFe B11)|W)!z +"Y1 + (>W1>aLj[); yTȥ]|&"hT>*rϟǩQࣀJ#bil *x~i.2#i(Tj +_bIKͪ S~514Do45BBf%HɼB;< 8⽾,p'tp>-9·\Jכ-^5W(YRdUz}(*%k`JBը4Fo7Hߐl=@_s^}WiVCB4V54R_)aawPk/fu?&9~륫gRgIlywr}=߳;;ZxmuqdzOkVbX,nVgQ1/K]z:({&Ι%4zyȇ;O㦳6(5(8e`x%ZJx5+oh,һK8޹ ɕyu'.='nCbOEbxV o ?&g»ohCsQ5gz|tIgeJW[r=ܪS;Q֟'Bɹ>;nǿ{~ސ[xSvS:LD?g,?x#DXř7s~O|UppF*No6=|yl1@vu6Xˑ:[~q_/7c\W{{/~oJlO_bѧPa?!׈߅u4j](v?CHRڡpܽ HbLju}TpW?oH4a J dxU5"QY٤xŪfʃ_VZJ^c^[kr[z +J`L<ҠTLNH&$UxWZMI%7it)Di"rZ!]UFAF%Wf3jNVkћ-<=RWZxd7BKnu +9ERjʨf-jb4s:^W!DyZ`ZMc +0z PX^e"U+3pFIͬR&@]=?;=G|_h|ZyDI0!u`Q[Tɢ6X*Ji6[FIW+jCm YQjj ֟Akb#PʿV'uZjyPCTS_S10Uwp$Vl7RΤW5VV"ժ6 *X^~C-ި`HR:2}CkT *]GJ7krl&u??N&-l|H>~${vZ֞<3{d~>qTD?siˋfPi/m5fοFnVwo>="V v_hԬCΦع_Yÿo|w_rM9ƩNj|^z7/sXMOFg`'$o +&Uˢө9dߘ j=:j0!OR4}#U+JՌSQثtJ}_-WF;4:GbFl3}jisw/)2|%,⭇kӋ_=v^9rO6+~'zD^]W;%}I ۿ`ͪ-K-dN=<F4{ӸCǛ$,va@ ]CgχS)[N-xbh~ J~o8Z$_ʎuq?}Г0ߓzQ dHf-w>Q$YssUKgp7[/.<;cgNf/\}X,acv5ྋ3^Q֖ﻖ4xi<ʿQfL7V^߶M|~YL~Fo>jHQ(b.ӫuݎ-ܿǢ/?hef9=N$qhGy̕7zX9ogl¥7mxSˆ{|2GX#EH/?0$smd펙d#En5ߵ9w3XgPVwT;@5Bn|r'Wy۟_9{j}->UnAoǨԵNY(v'oߪLTtTaɡmT%ebN?/,}I$ky[Zn0ګczkiչi{5kuok>W-y7ٟ.z][Vwyon7eFG]hiKt Zuۼ}ů3:rzaڛ=b[=٪^OoC6~kt oP?m||ъzw?%y-qק܀Ҽ]wG}eé\6.eȸ + RYϚE"cJ($DX$ʘyΐT!۶~{tᏵ~yu,%1jY ٽzT"7}zL:qMiHɽ݊me +&.ǤVx]:kz%]n/60ܴi`}YfNŜw -CvMϕ}+&!۾fz}/7}xrl/V](;*|E+6&)ו3qEwj\~%@ffȷ3;"/~>,n,zElle>A"mۈ7Ʃ4l6qZ&V@Ł_n)OQ_&K .䟖r R,sq w8@A|϶$>el-8Ya_3E;:V]yUWDKNe_C;>5{mi4G䠐e1?Љ1?'$ !X!DHF"$?Gp|$ MW4 BhWH%4 2= +/˥{/O'Q]&aRJ- ie[WyZԵ'j5yw5*y$eW` mm!x~BKѧG.x%yǞ5U3}zJMoI7>;`ձ5-bR,rbԎt{V3xo!\L>80nl&/=;%4[X'@H& |=  Ca ǥ4eQ_&KB-E_R#̋C))f>疏P6TْMxw}OTG]NPD11=YlFޭWL8qc~Ͼ ܔ8[EHwR-R\GpOKˍΚԚHG) bAĐDo_׳CSuDg#d6 /Ym|tAw\QAx +8Eh4O&]voiMWX}s( +B}߯i2a_#`_?j"{nЗР?f?B 8<@F)dőQs )XYNA?MW;}Z[?&˄} u J̿+ ?<ĿY'&Wcj\U}Չgvs^8 M@(Qw[[83F<#6wH H/nJl2PPtǃ +6}UT5U4^hihKQKncP/C-D/aYADE?8 Mƀ#H(u`"D pB+ߡ_G P1˅} BHZ׊A<c8bw3vގ S}0WWJ)I~Gun T{\nnBbhqcabZLYȩJ1v=sɻ|Bkv^FBXP,J'SbB<M?4W&H4OcId4 &X]'O_&߯c'@Bg݄N8UrV'VYERpP, đ-OK_S}Nk:SzVs/5JG Nj䝥&>bθk.I]7UOaXjL.{ir6̚>0"Y݁Zї{$M-vDvO3lw0~=qb896 kLpEm{L,[M=$˟K|`n۞- HK|yUr˟6y.+x)9vuAxY/]ċ +o-Ի=1<хJ,ؠopGg!A mmOȩo6:1۱ح4/ۥS=Ge֚Eڊ^8alG'>Gઆ"qa2ta2CI\[= :PTB\dL<ֵ~Swڏ8b23kA&tL4L#i4~frBf7QngJycb%=u#}/Gm (KWx#6ԡYm!|ƊǜO|uI4Q?".iuu┉/7}a-D~P]I͍q)F܆5f}K%P-9 +fe=p(ii^gH\cT]G&F\NM].#Oh tb_RZ*{``z~fމ VFQr پLkT:HL)-" NՈɊ[?y<}JQdTٗ Y$Y3lRdɖP,٪B"$ea39~9OqO~|5뺾u}<{HK97<.4|CGΩ.NfpEEJ6קuNleU#[_~aC"_uPׅ8$`؀@ȟPo+"n|"Hb'? o_u|`//3s0뉠u-#볊S80?7/m#{2eL&݀{k+<}򯼊;u=-@ӧc$UtSRVz?z,= Z,X°~x +ҧɀh) [lp` B8 +o #8kO}?/?_ak ,E? z]5j?3G-jv_0`(5؊wHa/??P8%'`Q@5Km8_~~B,???%I@!o?_`8WV>1?hwa{`=<;[$Ͽ:Eq>>Ikm%՛&_w=j[oql8luzm?? +᭑ B p " Q +&@|d?+g?`R 6Q^@CY!Fx'dY]2'<}$4Ĺsca'Icq4Ɩ!(Bbw nB!pX$6` k P?d?$?/'5%v^2. +qޟ#aa`@|;JLiچR8z-ºk(yl3o$β(0uf{ÿPԗDX qH5 ?`u?_ ?@O;7HC;U8Gz)NJX@`i({|@?еwMI +JC^ݮH}c>IO`T$CyfzCl(-E7 D*Lr}!-v-Z;%{絛%.J0*۲m9Y?-X*_"{41rpsֵ&q+cU}:g1eP"|-[}M򇂊~6Zt) +sα)5xD+3$-ƟjR.6$ʞ'؄ +nx3ؽU x$W6$WC>| l~(z1\ǔ -RoG +1 0R-Ջ.Nh :CӤ c>hP.*¢˹O[*V1I8@P¥ժXov[raIŕpNGz5 JfT5f77wT63-(pYW%:$]Op1> yCh(N]_ +]Q(.9zK oud7ٶ̕NP^(8'z0 +i)[byR3 o'ٶU"ࡉ,'ބi;1Y/GrgHIڷ/!K\z6]tJ>f*U㫕674]٭d<9lE\xs 5'onn.SBo8; .<#Cbս,ÜFfI(fd5biAf{TVMg]a&š eVsM-|&&[ްa6l}le^$`)eƔk5٢M5OY}5 iVs TMoP/Qӓa+cP0gkq1 +@1uN>:WmdjxzL׺JKt?dּuuv<%vƇ%uQ_(2 v\NqmHJ2ᬚKB{KW&Hj]5.ڢ~Eac<ݜICY7tzԚWv_wa$)'Vro3H-u}ժmxⱙ]|`Nvb0Lvd +,ꁖih).߁:v;\PߎNxBQƊ8k4T (AȏAU˂guO:y՘8k^wq*<Eޱ>6>~:+}`.R?&,tdWKC]k-ͤr=|<(\f Y>4`J|#Ԭ&-a9AM5.g#il>\K~pT ׻DWltv繪 +Ze-e9InI,揄e9wNj|ki1hUUZ>nn`Ҫ驻x=f1\"mۦs(oyԫ{-!}lu[ckLF–k 7foTJp۱):yMp92ţKW71yb[AeߖES9;8&0'ԎW`|1kn`m/էF};2s[,K\ooCw+)52AB~uDuj×B;˪fV)qXr0_ |v5PDadB QSs!+ +Ryc.jK-Ńe^ki_BLy x5G؍-ck]i[Z_$ BP`YwtaC*&? ̸ؿQD`^-O +S^ܕ::<\wըwjTTD4ӦWAfb0]ΧLPfxJ3}]zyBer9Ŀ/,޼oܧLα$ RU96E_h삞>=Xzm#~#\`9;6֞'D5^Dߙt*ٟͅ?aoCQrÇ[;N;Օv,q.i"B3kg.9MeݺNvmk(?yri +-YåA`-`%騲>N6#D &EO=R DJwp?[{8j4ӐsaoAיAT>N~0И3քdtFy^Gub8S ѳ F̔ߦ6UG}F<t>kK_z>1SMju |۫#$j4-ڀ"ZYg30\8 &Ab'i;;9NjEdw/y20e x.xE,+%@h鿱wAMmkGC"Ez@)AEZ D@$RA"A5$7is{?3ν/{fϬg͞5{?YϿ Ľ87NX^5\fSk3n)uvƛ >.ZO/EnW|4]{\4rgO, 8=3Ĝ9ɭH J݃Ӂ͞ [Gi)aJDeۆqޤ9Aۻ.QsO{¨f|^PagN`}z 2;Q+'}|dퟭwH/ڃL( Ǹk6N(c<i>?"}CqY:P?W6{8<&o(g7$SC,E_pN~W"?ZЃLG9zŗϵ{ {[JۂTë$;6dd@6V@$hI#dH5FRBlҧ_:m;? _X% 9͸OTo ^:o_~w<t%bl9DCs/d~q0Hk#>Z-w‑N>t*!JF<z">l=ӆefuTaQWmcTD̛ +\Yr~lԁ9'hEӅ]>/@lHJ[Z#6HK!@@Rii#)E[H??DJB/??Xt'/ۢg05H^^F_ܠ.J =ѓ+5R ױ3D;8/`*!ZYIJ?!H )kIHAiK$NTO_OWo-~%j#M]:_*X"_6DZpS +%N2Pz,Ѷ.)bI# Adm$OHw9@؀ 6?BN?SY?R'WiiO8=JGc1&Bڍ&jf)'!>LC v(| ^H9+cOӯֳYL5Lnjl>VL"|D%SD([qAd;U;15 +jH}!uk$|I8&]hr+ q:]IlLak[“]“h3MS&g={;̔{&L^Qd +ghP UD.0D8D83Dǒp[IxO*^3PL!+lWڮ [")͛i@:ն̐U+9ݗ磹_M9\dvzȼoO;@}4d +?ű/*&=EI?Yqg \n2b΁oT'I,yMDqF@G0c6W&#o\ +[ L O{]|"#]3 +ɚ)/g}l<9'yCv/?΃$σӕ 4=Jy:>?y,ńe'&ݖ +>|!gs Qw>%qXf_:0oykNbxL5-Hmȝzq& H֘+2tRͤIp&6z^|B>T0H)*oe:QP/Y%}pV;( dĂŭr 1Pa8aqSk)e &O{&0Ub-y- ˲׎M+PYZz԰1>(;dr.+9P2%c +mTIڟ;V_P k~x1|+{T V;q):{&P1tL١B<9j:v\M^{Qܯ>_IC啵}[nU\\!\Kδ>޾b(.TJxf:Ҭ#F}H꺴|S/CJpdfk1c?C)E;KΏL|򟿾؂uKi|s 51vQq!Su[;5i\"0*Q([vꩌhO;v(IuGmز6M_ք3Ƴ' e7Vsf {g2 =nFu ɖT`Vƫ(RM,u U99C!jeB8)Kt24ڥZAYSW@1c@-h~5EJ0k.8nmNQY}w";׈&8ĺмSZcNϘ|ls)[:&׾}cՁbZB )˥JvtKyv+hhi0`wyxhX֜{|{r oJu!]j!Ex&G{pQ1A,tżļ.5L`5) WfM3Z|= +~C=Gڙ|xAi`3"e;|s'.&4߀O{UdA D0ӱ$͹4vnʥ9<;2ؓyP Y">;S~5j prj7v/=xQHw>p!,xn]hYQu'>cH%…!A +nҸWnyO4@Gv2PED*)a2m߼K̀ ~'}ry]e0:8jWY0{MiZW$,z]zRhk^_v9p'ɶ<;7TA;bj`ć'#1n˯vϿ* 􇷩ɂXU+p T4俱w^AMGPiHD4XRH#+R)4 E(T:"ҥI/AқH5Ҳqϙ3]<۽\dJ~{eT<+'PrF44WQa%d5{F?toɜcM^^,V^uT-b銳N[oߟDUF~ ;lt5ݐ +EDn5ܬwվ,ؓ|Ճ WU0"n乼dSyk/ԝ%8Z5}INb}(]0FP`9[cc*S;VOݱ0N2O8tKz`rl}]gÑk,WcWZ#.$ߧ+%ātN*&S˽_^PzVu1 )Ӵ~s*/RJ:(.FzkIX?Is\lN*3i[]RӜp2'2K'_Ym[$+ {I(z{9t~5|s%4x>c=cmr*ε\^OPLi7Xu RIB4\=8>f6Sx*^_c%ƄKۃYߕmJT UHw'Nɳe4h=FQĀa"^ _S7=5/8m_`R&e<9y4ˉgрC,S|Qͬi#vG# gqϾ.)mO^OGKBv́ECAfO9rYmƹ3=o{^Z[V:|;@MtK,Ԙq҅-dXn;Ӿ+s ;i%D#!eX}]?W 2E z!)Y&5kw/9[/8r]?<Ln_ +Ⱦ%AWMYbţoN*?6Nпȵ3F{r^B'.r`UV\aCiWz@iohMjXJ22`]DZacvxTpxuћSlDKrqWH>aRCƜ;9ah}rNU:Ul-zB냆X/v^~9PLwTIs%^icR+)u=* 3Xѷ!SiάOGOW}E 66z~Dp| nm-|vGTTHYi0M)m\\4 ꠵^v zxضxS!uܰݶ5Hɧ/G Ӏhg*MwpMl{q1@~o1y=!RatTM\،$`L[慂Mt9t66/J,me_QP:׼qVLtn'{s,sk/a->l0uֺ{YtS$]J;Ni n_8o h{1?W>6t1*ʤ[9xsa_թp_m'=R e*q4!?)0Ƥh#f-}fGʷ%U86N +uWcQsЉU]XO{ + 5b(w}V>jxiOW."W9i=2΃ԹdobRɼbI"bavpL%GeVR,[z{=5 vxh?krAʱeקrw%7͊<ۦX8eu6sdUm1qP) +ضQ[m/=c(M2beW_xZ7pbA6paw'׀zFBKQ-[&{5fց. }3E΢65>V ^G.f&դAu+g܈/`pгFK`1ܯyxAeꪀ-Qƒl%e +6(zkXfo_̴h#̟|-f0 M-tEA@|?:f-53x,ܿؠ ̛ˈ vxsrc JS:v\:UN~"S컊JP һwl7\6D#fR5lc\$j E!QiJc.jli1+5'ܞ;=gY?~|}bHi.6u u薜H=Y3םc6w'|կ;&+*Ьq PO 3!qP6u#Cܑ}u٩Q;f~Ĉz^FK3a)"p E[kkΐ(*m̯7"vWB"9|?(9yW/#hĴ1V rL#ö 2i6XA!;7awpU4gJwX}4Ѵي ܅f=ck86BJW}Aa GJ?kݚy g '}iޗT]c)#s陸 Kt[ۋo7Җh){w?ǖe,]259>B?䋴L7C~rL׹-R&D}B7x+^JO̲H71URG'V4ڊ,'MU>Q+~8}UP:)Jw_Eoi6ٲ^. +~MD%m$OQ+(,y{ۢo.! +V*4։;T #+Ǖ&`<\9 IL4t FK#@Uj +Yߣڗ|SLs&~a8x~`Kfwj L&/fR]7cY*-Y7]) e֤D/d枡E/I-3@6kNbN7dmWYYz'/+pO~|t]($ޚzO G~/S7[}_2̺8o0#*󜿜yS-Fa2HQY,WBP  '?w! +p9o/-'g 6+f8” @y%y q+8A A@E"'?[#*%0Ƀvg~zϛ̆zޚOdL>$N:V[[؄1|[92 tjTFҙad"X`_ ~_\ve}&Tтk5l ПחG~*3\TIkjv &ZOAwK-ݱ肥 -i_j"{>:i[tSxkeavfC,Q<3bY?hU7dAvmZzQ~Y'ڀ|7l\Ofd6BHĒ烜iPI44M4- aBjAt4ntp=a0 8FƝý\)"lz?z`-RpJ%9RnFsVy=bϋ4U,ƴaYs2xv %HS=jdksR&(LKIt g9.{WQetM΄a"PKېͦs/BT sqB7@58Ǵ bO|c=x=̲~;ڤԢ$W pζH(oX0IK /}&dʾw8Ce&BfT=J3%!L[J>'D=z]z~&aX&|L6b<,AW\ÃB]Hv3$tTGIwn\tje"Vѫ{U ͇1SbuZ`C$o٣s <>,*mIo`GUДWV$O*wf +]hZ'P8ݦQ>zG?-ڇEO8k,-x@y D})\ +"z{af. $Go=4J|oI⭷J-'etS:wZZ{A<4׈\$U +>[]nrR\) tT)NEQD~m%ŮVTNkzlIE|'Jáb3{dr2a>'m +TC.i#]ɭrs)=)e p`u &2WFNv/k ?XM7%9t.C +S6c]E M2.ߜ1? }W4VJp +;ܷ.?X) S^bާu|2]2e:Fl' M'Vo6SOEң.?A:ãw1RBX]ģ^F~U7`H~Aȫ{PSR5C,%b6#hFCnB+;K{3 +U7@Ikz9cs +!҇fr{d#Փx^8+?U[GD6:өb+=ҪgklK-sW/ft);T,r8fǶfv$q dLlk: APmGHﻫ֎Gk{b]id7S|~;Y_*tr{ټ4sMoG/YȺς;P3Ӟ#q|nٔW|Ofc-H +/o&uor9V"뇒BUDE+r=,_>-?( "6ti/4̫M7O'#Dثuʜח4M L)n" maWUKwH"/x^'( yZ/doݣqE+ϝ@*\X+yX7{2f; +Gf'oEXd?ɗz_j\U~cծ)HJḊԱSXڞK`C{}Giɮ>> Vq~qP5QlS3Xߔzw$_b|s!U>o1ȎIVٗUm,1PY/bCo^tcm`FٕwYpf3r 1͟# y;i:Sh ,2~fC4OB1xiP +>ie%V:pN+4i q& ŏg 2gXq\VMp.v1[{wB͖ ׄ&UηYsyŒl}}%#-L}VyY +jK ˺CÁYK&(TlmGV Dӱ7Iൌ@n hyhlUbM`²XalJ +t}^4sT3{$F͓C)m99O_!  <dfu4ؿmKJW?{m=*`.LDն5Ƒ?Ș oM7M.ꅶdBߋ>$l j 3@x1vwסoq=U"(tٶ\|.fRҫQ3m>U&4lʹMoe#j]><vI7D.hSF{ B1^޴H1߶d]WFOџ^~3:~sI&#쒦7{Epj8#YkOj9s9sO?P-M׵띖6#} EI[a'rJśȥn:j'j4}ΰ Qə:{_F6KSrw^kIfaܕ~^jj2DVA~ *NJp1Paz v٢ !{lef6 `5{0AJosHb7o}24bxsZ$tgmNW9;0o:cBpF^.rEQ$JmVf[f;3+ue6?n[7p)0og(ͯXK,-Xz 5b83Ѵڑ#UBiYL:ڽ#Jw\1Gx*dmg[;#;Sc0{U{S{P$kJG p0)qes}Ke\MvJS;1يð;Vp DC{񷏆/b,)*+m;BnZ4bw } 0ۿ:y0?ՊV!|t 7"p|kz `<(-OJnN`T߱,%F ںG_OE (F}Ӫ럶E &-&WՇNfje{w0w,Bw[RO*؂E7閣SO0 ͧ9{[r_pJ /oͅt'q‚%TR}޺odC3:(I{ؤf;*2 .nC8YYNYqF~! =펦CFkPoGALCoúS|٪}|]XqI,K ~lH8a o72"I\W`{ߚ3ofK]SC,>|Y@ fw8= 'ݐd_30z>]7^htR6sʓK1)/paxxiKwG |'YX{Dv%|,+MxR}m;4Mtv 0iփa JkL)/em!,,:HߒR6ֽ.1:)m* ,80R+M{Tc"؝ +3-{&٘pRTrs01~Cpl W%bpS7JV.uqwuF&v^u V;DGB'- n=v'i!{:%wQEWMlui\JI#q/{ݛSPw`h j`= s;#j\M'[@ iōհ9CI!l@ϼ$ ~ rTdvTcpE#&ܭn0yWB⬎`F7hptu` 3sq;`ۺ5;Pz4?y?`Ү2EGvb>q\EicE J9s!t7enK6ޒ#mvz4E1) YbĀ}O؍x,sKJ:ΰqo¢Mwe6**[d(|B$zPCź/6C. _&eWo#^A'T.hǼϕYꋊ\-S3Ya*#=$*5HDHu|:FӶ[l%阣QnY\02,nP+*c]~Q#KP +_Fc1|w~F0R? vdZpI|> ]R'yR.p]oQkL(8] C1Au.93ݫ@n.;fhv IermY5LO*HoCPp-Jz,z,p=Gͺpj3|g FjhiݏXtdWJcLͷ< `!EP!KSVos$*P +#2Qx6ҠZ{{i\| "G'|d!hy-b]K@78l]E$Y#qK +nKL|""cW4x.] [= +7w;VVdMY" ö*7jE-qxB#rRbO ;a5wRLȮPR|t5y' ϫ"U;aDLI'-_cduOuu獱"Q'H|eE\ 89-grH#z_(lȯTpnt>|1JK3!رQ`{*{f鎩MCGyG~{{x߬|y̹av%^%;zϺXbבK[w=֒Nizc^ⱀط;C>8yes5*+#WMoꩂhvK0 g~#fj=4e1V=I\ut+i{8`"h#_(%agpԂN L]Q`A`RK}K`fyۗJE_g;(ii5UfQtU <+,PR4?cTuï[[w+PHV +mvmpy9$xfBXNqfq&[۷mb}w. +rExT ע%_?“2}9z밪0 +oF19\('CNpw~QN--G-hv_K2`"۶?}aپ0VP),-#aa|>ЂeSV\Sp +h\aѭ| Ⱥ}mc˛5bt3nmtԍ|ܬV^/3ƣ=.'QE^SVJ5')2Ljf[珚.F"m>MY[t +Z)(]/} 0/F*Um'1c2ێm_=< |L +eFtZxW'~4ج#$82#^U\(#]J.zyj_{gao7/P%L_zXζw–&8Y)cl@+H@u׬8RU[:s{m3n{[8uͩ Y#u+e?|@apįԏJhKR7۫}Eؔ eۦmM͹oQhoI3Րi<HJ7bәd821PԂ;ԟFjحc(+t+bײ^)hdM"Lm3OhMtN9(o} +0J 0%ݛN dBi{Ï3=RZn%9|]6ϋ$EUx/yUу#=Qhyw%NvACH)^,wjzAӦq=[MHC|\E̕q@z44AL2=MRU_VMYMM|Qe#e_mu9R->|#Tm^䍲ޙ +-/.;"|$$,LԐm$`)/W ݀`y鑆W&Uq +P[0Bry n@ ђO_bQ (&pBH :>4'ܡz9mΔH + 3EA׋eܬ)ryYsCn`[(:^븡wqh봘~k~7ü^ΨMnӸ:(!-Nкm.Թ|˕/%u%/tf8X~@܏Mӑ!Y%2Izj@QvBWsU-UZ̓ͲYŗDo>ӣ3*h6L7NU{HWIEevq] \ޚ봳khܶ?)nj5TXxeIݺ(ָԞdSH\3asm3}i>Nn[8Vw X1:"9&pͬ8<ؿ5ApLw@9+g?\rVkzK]ލ+{տݒe282'zQeMˁ϶fDImI fb˨(Nqu[!{:7o~UB3n-Vk)U޼Wkcz1EԟOnSrG'r&7.fkA+d2(^ +OAK +-fÜ +(lj35߽̔@Q6rs˟ʧ ްyF]aw? 7fPG/_PQ Zr{!0ęrnZY+1} וxuL{4*֟zk_,j*.1 +Ma@_DHe{XT(y-o̜H8PBEN-8[MYV(EamHV)zcH0r`ou̡S"}J +@ /vNV߫`?RjDP]yOkq`ȴ +_$dTThfiK|FۜDw'ҩ=Q6헒p3Xrt;([P֬Q%f8JY'ϬluhPl%]AWzzSHy΂~ޚuTO8Qcgj(m9<80?ZvF ?+`.^J99̃NDd$AkMil74SM7b==kvgoڅY-0Iah4g(ӈj깆3%ñEah?knopkx&ML>WL{]@]  + NG־^e>oHo=܈aP#g~7$vpE%ыm7&HS99^v)B\,VbbzyGZ_zoy-sjIn5jX>gZR +̗AtF.LX6XYv_rp5ݵj~HR5^OvodmL,MRlMZ1Cg*ʮm_'[_MyB\7g~I էæ҈$=GayO +VQ@Bw3'O5FʋeM?cJ݇"XOT%ޙ1Eg*ɀ}uI{zq$LuIτ̣*\^q +t%텝ܟ9\5}\05f +7zx?X_\g+<BUg{: MGRx~pY{Vo uHY)17=ѽ|gv+h&Ь_'y/=Bu\TSP!z|eG"[B2aa<a|J+Vy_]p+A2J$Hr|+b ¸>4_i. + $.c!SZ_\+Gr%)b;Ix_ VY]!q.::k )b %G4mqY%%pDN5d8Vv/FփݢOfgwAJ-28{DAV=vRhs_F@r4Gb dYF J,[=mRV{sހCxXLVRӰ[u^X3U9,Tsz)Z SГi;3.}Pk{ơۭ.Y0@pc@h!1 =B]J}]􎷌?3eizU7u6 ?"#M6(,#z&R̲FzK{Wn}ٛDe[j铃nSJFܘ*jLcIP\ϾlWTpN-g"b_9ʋkark6կB7K i-%J#Ⱥ/|5_~8<،JrOF)ssx{֦ +\<閔)]Hȝ ̺de8}_xZE_n*&!hcćf$zk`S1t0"Gj]MA~;u\BtLos6.vrS56y./R5mM{Žngd9ȣki+a𠮵o4Q28Fh#F0vBf0?/,e۝odHw/ړFl5%-É@1'jn3XG1j_UPs]bL*&_$en$;e󴫛Qn~VHQz׬zr w 6۳q + h&i+H%+xo9-S18}kuq'oD ++ه %@*s:@ucXCޝx͔Umi-R@4:QdK;E +t=k#9RҪ5|X @~-r>-;+!6VC[?/"4+]bǸ +tNɳap(ū֕,pL'9hDė6v너6fX3_v=x3mAqkF["}Q" cn^'kƟ:qluΙ][rgu 5Iɢiw@:~u#;]mBVcz7@D5eQn1sN \py6<ӷ䥈LEJCXjz=e wUAڛͲ[37^1qc3RJEء}U{?/q}Ӆʲܜ϶a,ܳHڸRASEw% 4,5mM^ILI3WbV=]odIwߞ=K?2&GڣT +bGTxLjY8|";6UVeaxN$e}YF ?cTS(!jye;Ja.s,0-BOJ5JgdloaeJmmԻ*_bqQt_nYfEk|4R둼D`@jwdr{:c Yi!K+Ν0/p ƹ%Xw֨5վnS*pRayiJ}@pM+LV,*o,*@-?=X&KU1%L7$lK-bM5 +烜b}gp}}gޣmv^}@gemmߧE*ecosE/$W|u?im7&-z4,f z_Qts1lPAE+$Rt'@#bUW~z&+AEonpe lVsipmF(}l̟c 60.1vF~!C4z#YTU+#c;kŒ[#=bV$sKFbyFR&FJ+NnKھ/]%SVj\D˟0-3SOz 5bFJi@lK}\=(@MElajcUy'2 PdVdo9Ё,jiV)'B(l,Ү1-}xQ+rõL3cg%_e{uE `m{`` +Q,Uk]Yr rࢆ3QêbI7|0Cq +)h/Bz%oW++{WѻfqXo;qI)3,GEefB~^<@{H};|R +";C7*yfv# XSE0B /e6T{YASBݱ,;<۴"|ah<G +,+:w;7߿%V3!PW?p(2-6 1c$=qWWLQia>;9n 5H_\My):7o2G)ϵסUZng`S?_ST<恹pIJtx@uwizV:QG暊([;ku7Oo)Ypr}+*ªq. +vo3zA7"KfH`?nxwřZ9v:*흪;VA=j$N:H|= %7=fT=4t.Љ@n k{)X(F.96!VwI@}tC&{qqa)oy? +4 ۴7\gʞY޷'Ԭ3c+~X8]sYu5z(ij»=ܾȨ+ms# 8`f=踾,$x\y)Қ\̔qz~8=pbdDJ*7nMM#3GjF}=9ː;?j5nwh'`ƖOH_vi5?tgdUt"+^GӠ"#qȾ3fHϠ.>Ô[Xg +;? GƆ)I+y!#MR`VS\jFUc\6HF2yE!%e8G OkEe﹅Hb?UT@UE>GW4eu R x9%?VR 꺷6QZ;5'nɾ!3z<`4p^x0PR2lӿ7:3}Kx Ō~sS>λԧ 6VՒ_o6䬦#<)h:@3o͵EˈUQD5ӷ5C)<"1Ys)[M\d~v(6qH ?5 OXfm2|P^V]YsNM 9a>M6gJM+[P9aScLm7{t&T+PUqO܌dMzٌ#P[+#n Q#L +%W%ifQs(,&O$%-+ň0C&{T< _ DCWa2yӦ?Q僞޿.С09?9nʆ|Mils,~6^|:L>0C{0MYk`t \ICScDmqd +kh\ʐ"0̐҅"'9 *o#["#{'N mQ> FNNczT(-Lw0<+vz]2{Kq2.wao7TW$iHx+tŘ&8}-#w+tבA<+ Z/2V1و 6Fۛ4a>!Jg@mlFO?q0:]]]]Ѳg-/()ia??U̎* {vb ݧQD%Yc_2&k^ +Q4ܡJĀۈ_"ِTF*z"Ylҧ_jD9}YSb1yTx3g{;!d._v4r?rZo$N0E[vLށ[!&4I\V/ljX̥#Jr)cSG>t.8o/A#7kl>ofrз+U>@@RpP"}0wyERlXSkbbQwD*"D8vLغnZ#mqq6.<]\ +6;BK(jK%%Ktkinݜjd Z=}h O^%^ITDNQU W wcّ /j&whHݘ'ˣj:7`_ձ*;mS&W=I9Iu[c<@7jq|A :|}{"&aԘ qT l# pGJV,.nvCZ~A^ zBC8\ cO37JRa#E᛿lLlvI4Nx|% f Wyx`^a3sS86.%_3zrod3R9RW4.}p5̺KLS\xi~g  u#owiU9uEhaY:Ao~U3mͨx%a } $q[79Tkd{s +,F\k|cx˯Ǧf`SUePWgabdReUe`S*j `&V5fF6ο7x/=C_yȧfqI:e>jJ!_8m ^;&F00\b`llt4ttLtlz/3 10 @H~KzY6Nt{Ogb1_HEMLW_]( +te7kjA,/]?#1 'x[ H^Oo*?tqWUVcj034XUXXԘՙ54Y`:F+u_Mf`SZCmMmF|HG1YYi Μa.^ֿ6E^Yߢj, lꌪllj*,L@F :=XPgSUcPRLE\0120Ct~dceacccfceaO_D{[nmc?o_X%i`h[?31^ ĒCn`ZV 3tL qQ^i / M! LWg>= +7怎?p-ᅨFzR (0 GϤ@s#=Cuj)،|o@GcNtF <} +"j5"jC"R^"RNHOzBH+Q:OV1`G7ѿ( dBt5-132x.FF6fVf:? Iв0_7/R3]_?wj=ms+jMsiL,?1_@W%WW7[?C͕h?hY ,lWo%OE+wyVQҸz|Pߣz:  dacac20F Bh~EOeg[.sS0%$23*zzDz*ZDfZ`"S3}FusmC"Um##C)F"5-m#?*CFHL 6ՉTLz`0q}TϷI + +`SC٩X*&fD*oJdwB)c%:"ȎJ`UkT4gA]0WzFg֓w83^|˯K~_z[+?~L7L '@ ## ++=gacgc`ck7ed]zƫr|$* GP8=;_S|\xx;'.sY +8,=G>\LaOg_O_N3: `NS~7.;g@J~zppj6hL itt>>QWNAZ +LO#{*i5wnε\0D _EB/x |~kC>w7V1~K ~@>op༿#o@֩ɺdML M ԴtA*zUC3L TLچjfzwrdgnP13F`yZRRihiۀ!ٓA?O~ID |ZM lmP\D $*/b@b Ⱦmj634K748m/+aOw'~>5lP1:{2/aOj6P?t̮,̞,9S;t G;^O^NK8]Yi}(؋~ޞQps9y=8šaڻ{^?y|;?;8˝ϛFs-9ntG:opsq8v'~^wpsx9~h[vPmk߽XWbsCv8 `>}~EB>, yh?)stH\>W=χOd9/?i\s'soD'Ie~:"kg ҇52 [v Lm/O}m~@aUh +; @Rn>&I/*/;ϗ@c[$$ȠgO僂7M)"9:F剀HiHH| +CR贻и]bV2(V@$#oJ" wPN0ʎi/wK᜶wVgdONR]}rt0!`w:V?s +Ȼ ]~ dL!kP жt~< rnS9knr!V?`8DY&xxO䋇O9m[cM7e0OJt8Y_[}=<${JeDI`_sן>AY +>'2|G~2 wfD]yugvSSq <79MOw?>gH?Ndpb?!3'}:-Dxew.$x'O$}ޙ:i҂!6")`S:-.S@04V߶L6d^v 5xAv@&DDӝ)t뀀I lJeO_4_ڦڶ@ڡm3{瓵G3u/%SI = +:?e}~6TE|!lم[h8ō̴ ~ z* m)X@ݔd?DO |'+h 5`8NOVhǮ'{@H~'{WHzr +IgO߀1$5:<>ւNG'۞JHzvB]|e# "C"B>;tP ٳVC!~:6cwN"KV!uk@>v-:J|l<|(F1(?+WS!}_IOs=9ȇi'_ c?+_獹 t=@l(̣0p(}=(c Byg_O0uFЮ7_]Wuu]]WuuxiizMޭKϽ1Ϟ\|}R񏿺~zvztcy,-ԟW}/gaP1OϞY=[9{ w׺~Q'?ȶt\@GOgrNb4o^'D;ҳgM9ɅCsٹ;fDl44t@Yz::&8q/q?"~\X?8"Ν8qq?EPK8/Ea ]ca.7wca?.=g~; X;˟R\^'/O?] g|<.)ao^yuv7'PS8)q.]/?yun~.W픿 耛u|/^SwZ4//>ߣ~)%;yG \̋'7|1k٥__qobt=s&py B_;lnBzCz~)d`O?>i?}~b00'_m"I~O9[ggUп_<0?+_]쿴>/NpI k>~ ųy)qS<b}<7xo`~g>'jWSgλ)8?sZ̞؝ס=/2vR>'igTGop؟s ?7|RhMM~AjQ<hhihzHI"fbFOc UZ˹CkC,* 6 N01353РQ2@ uCɁ)H +fo6Ӱ3It6HD603hAs9م"C=ud gp7HPOӇ )/V?X# + =}z㇒8?(H\PP4H_,^PG/yy `ဪDZyx)V"s *f*<^:i +2N5/^ +Pd!OG_"5/$6R!/U^#<!HK@2?D/l~aj3M2-S-az3If j$nITP FQ #R4Q&=^]Ϟ9+}oCX Ȃ$ogfdxso}{@[<9TFz򻈂uoƨn?&o"\Q{oV+N>~RۯʛT+ȟQ_klc˙U`B΂OqU:] cȟQp+'=u~cbǷ 7}G~ aK_-#4rs{Km1-jY{bu#B[ǵ>YLl4}n Z{3@~On?4OMЧ({١ElUh&S0Ia|K}r!/Alͽ"JP!z.{۬ӝMn?QEk#qndvpvpig##WnGڎ%L;Dhc|)1RcLJ>> F; )~\B_=31AQ n=}]ߨ{! +j+@{~jujx>|oC*%PU0=7BsomYm=ҳ^[{}q‰xhj퉃2 !Y|}.:z.l ΔUq͗p7 *7aMkU3Oh ud"<~h/פյ">PZihMkT5oX>°֎cZ kP䳦q7*< (x4y3H'qiZ[ꎁ;L+m7ôɎE3NaZYe´b4Zx [p*rzXZRhf +0NiI}ZN өQϚ׾4Z ´8Qk`4ٙypwx_#N/bڃ:]9!.y_O T2Fhi;UߨM#O!hFUŌ'nM4Re(0Yo|\U>XeuBuh}[%BG e}1:q?='Ny);Rȇ4?(-ш?O÷(CЈ+ +Dw7Og޻0K_)î[)+OV_oB)?@|rj]yM:y +w1)QPޏe? +cN{}W@l|%:{txwG:~Ϳ~~y~c_黃.OGG]gg3Kkl[-]5u^ mmvi?$o +eGL@PQ8Z @cY[GbykP1ckG}9FG[džFcjc@[ch1,U-փ|cƯ~mHkz%@;oχ~ZxMЬ!u _v.ê|Wg1C,VUV/ՠJ p.ŞZM6H4hfVhUFo,nf^YcbFqMzňb`|l4^5 u@Y+S׆A^YkNo w[۪ VS$4? {wra uL_3 f{'k +{Ѱ:vFAO$F,}4L$Y;`l@>OYbh"`X,$bI|scN鰉ȗ)Ÿ}{,"blb0v$$S~>=0c _`+ك|r5+-:>ςY’"b+(]0:*Y K]RRTZPxmyM? J +ft?Vx\DD|N!]4v޹Z"~ A8!6!8g z"g~DG*M<w@xGz agΈܡ{x wD:  vw'6ykeM1"FgFX*ޕnp;*EƳ53"{ F~sdcAZ# 5n@l?)3`bY^55nwe^PtM8ii:J!~=2J/jb[a~̯6]svF*'} q/Ch*L%~'6(=-gm-<Քh6wtLQK4rqR:UOJ0SWG$ky]VcrbiP/TskD q҉ dqA 'hL)f>H- þ3$eS'|?-C&/9sUKighk$VAʿIJ~lw֡SOdWM2]WZ$N?5g/a",am摩 t~ATsv&pe[}Qo8G+{d2r'wTt:,OC1QAVHo~Hotj~{)9&eF4s{׽Z";o<Ҟ*tdRc0 7N'HTnrqڟ:uj$ws~jAOIvm"`?`˜@zD/扝6u\Nn?OqwڍR)ۡ ~nv漼vg6{soMN=hw(w;z>{]껐WﷸhJUyqĵ2u{I^}<&Ӝq +~WJg4X[]U 9*_u%XMs۩D I<ڔ-HɵK =Sk|sѦ/r G%cwOg!== t'u{4ل:v,^-'3R;%{id{_zkgll{k9Xۉj ;Tc֏@"}?>'PsLêQJz[z8oUZ_QJmLM Å<؜iՃ=b]||kYcԫ2[j=v>;$CTNknu]_x`A~{C\ lmZC?AmvtTj/ЃRx/?Q_Unt$C}æ]x1)w,kG=ׁ"pdk}N会 +a}Y$vk@5no ޟ4uKV"EeSCY4,*n5$ +[g:R72EEm(" +TmPN%Xg4+[Ϲ 9yγ{Ͻa^x-57%Ǥ e^O;@$$?gOΛP+;-!ڭD^OH[mj #oD*s\^y!brPhhcrc[Ӣ&2fojddIR^d¡fbI+X]Y ْ׸Jϲ9M 5|||y Wao \ĭ^uy?tTWU"Rgd{=^1gzq,E7۰xU" *2NK AopWsH5EBL u%•R )Y˵OWq=!8/yd0WWP#&K2w٨$bȽ;j n@i;Ԝh~_lSJfVmYyf<D1Qn`nuA|VGF+s$rR8B-n;0V5",%t~s&`tFfsdҠ&Ä bROH\#Vv$7-(n]b,Vr ZiӦw6uo 9F3}J"̵MK +6\f%n=?^Dd>ǂkzߤdg{(8SQ-)Cq-z8/g$R}'HzYI8 @+ yzbHk3Kͽv!,1&ܥ<[!!R3%^Ofӽ}bXx=0a%z1s FygLH0B }6wz='b4=R4Wbz_GEt]7{9o^SL9DۃS +PMS!(S( {RbFL$t6@(; ȖĨ!f=/v)|N43rnd^K1t2Gx,s7q+ȑBس7-j!m{yQnyɪ-z5WB껑^YȊn݂H m$T(vK̋BpL(^jթIS8D˕6[Wm\zzJVa3 g<_WIp<,',7 aG0umMg^r^cԻ^֓n19]D]nv&q(1}ºMɔV18F[!aU#pO$#M(%b6" +Crldٺ*sxa Y0f??Yܘ%71kVd@dv81Cn)'?ݙZ n+Rٷ Ձlg4fe׳d@´-Hf.f_[ fŪPϐܯ{5,鶀ƕ i\en&,F :]B/6b +܌ T<tYcwW/9&bk,˖|WUY"p)@E*b^I~ܖ,Y >KpU/nrtŠp*6r aÊoz A_TIAM mѓ7[f-uio?~ ׏qw]4V ppclzcv9R-p@OZeK-v$?7+fb#(AnBة0pK &>1ʗdgP6>"; LOtwd fisH7TޞLM6*< ٺA斑{*yR}:Y*lSKS$q9 yytpKh"Kno5 gR|9O2cR:aasmMXDze`#H' {$6M-f!,Oڨ*yHaʼAXPN:bU6|!0'0%HrfDN3RV (YBnBAI{zg% WFTnc7O0QhV+Sh|β dSx3"Qj֡_󯷎5jܱyσ>İ v85r.5é̯yմDhQUoH[w @8A椙MAxXӯ[_ Z`z""нW ,X/1ompC*{a"J k^OI 7X׳&#)ŀmmdYljw1& ͎1h g(UYq4>v68.~T[YbIdg:lasa1y kec3NTcMpH>lH8cO8k0u _Z5,Z8:>D!su(~1x.ڮk~y\}$E2~Z/kwEKN65v*v,VR,xog7NX_ 7P˚P"yū@#\(5诂yGF?H ūY+z~?@^nCVb.DOw@wd9|lspWZtTEmtҶ 70(1@mKYQP/5Hxz-$GoI{Ŗzv Т0Gڕ5+=f<0ZYU]:cA:f"^I6Yl{X"qEu/͠s[.K/D$}vKM^Ol88׳K1֞F "TRM4Ү#&^af{=7h$;4@p<tv> Bإ=4$Ji}ipܤ~~kQY* HLMj뒨̛5I7~bp.Sv2B;kKLVv?'d<̩ +bc Uql-4G>;O6IU;*nM=0|M;(rpT"x\k,D'ڀM;Y2Өm3иR^OUM {0Sg D\w!ȩՙ.QM,<,8S꼞Z2*ij]Bt=C@].G14#V"Em|$r]}/bi2pvN|U1Q?<jެZHhz*"1j'MR) $A\@^*M "$tew&zQ )n ~ oi%XKi7*Abr- {<FTxd=@ g$ޗ410h"^ay>}e#.#wJD]7jJ$DW(n^bה4H<qO?i^͑dBz*~%L;Di<46%QcoEڬqpk3,2#zN,2r vs0 1Q^{QBl:pڛ@f!TC&kC@LRԦ5'~436$:7XnlD}u`pWS=^*i/i&P<1&{G_F2 +F0$J3N:QS.bQ:n|LKW#[[rlx,b1%n;اM]CK {<'9DFHkUe@[أWU-;45l@c$3VupLvDr>][O0UgY4ȌfjZd@i^a?8 +n`IBi2"61OFً׳p,-X\xeUW>xv؝鯷D'->/K$%&/ҶFt8P kM1fJ"fyAʂ1虃By()z^*9J̞u Q@8ΚɊ"Mc8VS^<\Ţ豉qZ4옒?>F@ z1zqPhspoE{? go)Dى)6i8W6H8qmZX$%rc=?/ 1F 08&Ce6рgDnjCjO'Nw_*+14SY?^}b!o8ad-Hsmӗe9zzW"^bIOF9֎7pՊ#+#XZgzTC:,7͋=>Ĺl: +rg\ +Q}LMTLD/RRSH3 2̖ f"O+ :̫6(<ёߍ +QܺhO Ⱦ}rz>NV9#q0zK.$\$fecmr艓1,69f-jCF}"YBdqy=( -2kpi4ѫQ35%DDqlCޭ| J JуbPzt M^/(  .z(XgRK'}LH(#m҃^p(Jc|/څ2q'x3aP$R%rP*AH%bU"8KrwO18W<:^oV1@9ұqzT[|q=cfl؏#{MIs$H]u_DVa$zNW̑%WM`CheBÑDFR"FQOf?2s .U)L#EYg=M +`Qbb${61'U(8`m`wvz5,JӖҽM{ .]13֌y|f4l4R3ЇHWXCOaM +CiJH_JBˡHH> !}ʟ7W,>]Eċ:>67ɸ+CM(j4Zilw1`@رW5 3`&IWQPk:XWe ]"Qu#/nH.mU:P!X}Ūa v`>ld.xh}vq}_?|}[w[}bSV "y>/67GsoQt(>E>iX%n&t@gQhl{b8sfFs WFHMRCŎaMA1DMLf; +vӹ"%fkWyq>P98$)4,5[Rdo}`)9DG.io~DBWF[aeQluI6L+B?%&5DuUTYޯ}Xέn_:T/6"(o)W! 6,q}C8K~A|6?>-f\b mAH3~{= ^ҬUXq(ˏXMGpA*o/oϤ&tSro"xn)]lp81rJZ+/cJh R/E]:OU4iؒ.# %MǦ:Мc%++XiyC'JmhS%^R'8X) ǻMcgO(14㜟dJY@)^)P.߯C!2-4C&` 3J Oͺ3C"fǸjl}&YcNwH]3|*x0qԊWdS4 .BĢ ^S 6NDt!gġ0U &  y`** RA)m`7ǣJ#D{_+}<[\/θOc2"!.,dTUVD7DRGUԎwUMZOOUViMsPrmPj0z +V Pvr ( UUUYF>VUZ—?[onUi`j<99WH4MP^ϋ`A1d]yZoDCe y3q~6M0Ií%$U'LͿr ; +2 !rZ KK(xRbz[Ғe'iu#87x͎LNI̹Skc1xM.PE&M!7tfXi\Idɲ̲"LVeq4ws]fS|Mj QZ/GeQ$QFM]X͟_Z|ai}w낥87G:(SKu- /T>1o#Rn%.̃h/̅k +%*nFx1-]L,P?3 /)\l՗IV4;u?qZo g&Vu[t*麑NY (Z|ݝ|N K.`A:@#z~ i}q@I]Wt[2c"(,|]r՜nhǖڵq;V\PcCu Ƽ%f,hmx7H".c P['sao +wލw{jP +2@a ?8 )=!`8qȭ"/XI?@U/9J1NƋmx4EFX[Q"}ei!Ӆ,g47 58̛{0NT"}ϪwĕõbhQDCd,nd(9"\zyIO#,-A1ٺxN`儛 ~hB'2> +kCkۚ?Imͩ9ʵ:0oOUrZj!XK3ДT ]h>g9\cϵJ6T2K\4aUi a䔔Ƭ^;˴s:'5k-;{"M< QtBcNyᓔÚT79Ua3be)h-VkWAX XB5V0 B˪[V(Ms<qM^p,|v>w +Joc597~|<$'ggza@3Oڇ=čw >n7/9,fwJvqjX; qA|QKR+R&N*Tc_"1}ԑXˣXַ֩(2DPgln yEi(ƕ#[wV2&$EYAD84.BpAn`Šm$% ;~vݺM7-+n9hJG{~z4XjFs֘-*,A>.WɎ˵4FgV=PrCa8^yDOoy3rUjv,-XXsQ XdHEinSoyޓZ/Q6M(6t^~Rifˁ b4g㈌V)߲zۺe閕-`K{4mWJKRqLzJ [՜\?`_ZK{saϚI<)cKC`¬%mhB~kA"ְ XFe8M*\t g-<lo 4՜^oh<+ĹnLv~Gr'24fn&҇4b}"yomyUIq{qHVb+4UpJRn˂HQ2|n|Ϲn rY)Ӌ X3eGg%sU(6Nj3=xV)r | "-bRi9Qxm(=ݰdcs5TfP2&[el{ .(_dwK=;mjy)J(G양$0:DIAۤ +%_I5s_A{H^%Nu9P9mIfOvze[knkѠ uo8C~P< h{@;?w;QI!gWNʞ.7ƈ=,5i/b r4 l膿:@MdJx.|*ѕ*=%ʹ/B +lf/sWDsPߟ%4zϱ'x:b̙-Ӳ).9dBXT*He؂B;J>4G.o8IHHm=۸e*l}W٤ ,]TQSbŐ;F/@œvl-c;w LM9xd i¬g8jn#%0KUnB/V^""+:w3v6 +8PȱMCZEnp Tu^~@Ѵ%'mjw}h&T"a%fwi|;_<˜5;%L`*͸q۩ kv.lLqႴhvNO^Ld)5jLdaAH`12wG\B X1m;$]RA>G'}⠭|ӂ^Gp67 @2F#p!Ai4IJ)ܬ=<  zTiP8Ai_ +h b{m[GkHZQ ;Na6T2GL|"@[,2'+y2"^#Ni6A \s4Ȉ_8|&MbCUkOŃa}Sǵ;(K\k^rؾ>JXs v Fȍ桛y:J2 <! +W˄1"q{1W{;^!oªbŗ+ e$8-j&`'Mxր=>O;G8V9JӈiKg\NvN)  F(R:P,VQ͌L-T-qjAjb%@"Ɔ<x#-a{"O{bFÚ +vep_?z<*D. ܕ4bF0)? ߪRXYz+%Ia|kPw('"=vޟ6;(׷w}J?O ߻oEVRjdx'QU+w~6^9T7j1~VFvaE12!QlDA\WwrYP#cwoݜaXҎ쨗{}o'>'Hqasū:vskvәq)us=㴪vv=@[e!"/|B%Wd^U\>7aQM1"qK?x=ydDAx9Lى1Pda;|7.2{|nvq͢bQ~&E1KLČYπ-惭]J// 1Hx j +oAu\Ro67ګ^`nyl91+`#NS̢*?@aT+A[;|Aֽ(sxCM%UW.u¦vVIQnAh/n` vD.FD՛Wr4fh(69)ٰrHN'>q?4 4j;MP_{Yt.?AUu[ O@juݨ7G Uo@|mQrM}Wj?;/"ݵûM+)XRnyyJs(Gi0+H̱Lj9vʁ˺v^Z5`ϙQ=]lxt8?0u D S$!̹ġa+zl;p͕YzU֦wm +O5N{.Toڇί +u몱;|-C5km;TSmV돰)wD'&/ Pٹ߲_4t +ߥМe3G%+(Œ_D8/!9mG#HC|FzCx=v{ h#|^M\ݢ;[>y s``5+b61DmOU ^1hg_ɠ$;MrQ|m Z+>Qb) ^u/nY}F 6pTXYQ$OZOo _?O;=ϵ=X(Eq^YD5-݃?=fBjLy'6ɗSTW|zv,m6CA6A& WacIQb)P]+߾C~:) g8wP ԚnGL3 :×v e'9"'q@yQc +zO>I{>^p& /lqޗGK.]-1h{d0 ˺6HRO%'Bm p$$yY11>~9gFVqY,;i-<!^KK &Gp*?w\0}=xVozz\wvxۄg;#<1$Ҥx|**ӑ9xG܎-xHևU@a2Ӈ[ߙ2 vh;*'kNLWlC42> bHܗ&VEL2MPn]8T5 +xISxr9`? Ef%q+chRe-Wŷn]%rK,ss^l^`zO?T[s ڦ7u0;JnnC+a|\:"ov L7"tBz6h\NY+SMup>P q{~>nĽa*:Qv++݋U:C5z]|zCu=Ta}Y:)<&IzOh5P7-imP烕xn{{G( +cNRCטx~`3yu|ƺ`smxe_o`V{oNf=N|-ӮPkɹ\٢1=YAݺ0]%+PMȿWoZQ`M ~+dqCN T`څa7D ,T)Pfr1E/nHHw1K,cL>I5ԋO+^|=>%\v8cg XS|`Ap|dg#|>KD\!qw?'ӟ7˟Ϲs& ܡ1Dx}"\/?E&Ad@Z;-|A +f}uhnjGdB);S)A|}^|xC1Cܓ`!gNt@Vn>]tܧMdy} G_~wT9dIJ0ǤGHg}-yƲ-!.`g|0ڷm0o31-46W0A3?h'# +}%Z|y:pg$:o TH7,~#]p( X*G/cs>ސ5nC I+>g]I w "2㍭]}ӛܬ(h +U@J1B~2}ʚw#>Le@%>.DDAE*c/Gim$] J1Ɵ= w}_}w\LpDD aEȁHo|yПC }!'{~@Ebќ/Dg8g@ik^W,Wo{ S߽'OGۏ*xvG9pyOXu^o\~ ?-q/v?RcqsĞwS@p~0iz}>q^(giZɑkd7q1`Tbp'wb8wi ~j!usf(usB,-^q w$/^U8n>Z^ϵ(WT=YKQ~G:y{-xlOH#<>Y _rZR?|ũ%`I{z@2Wä<z +sgsFޙeeKd_EȫUi?+N#nV@bG z='M0dʹqf.l>gIϩԈAلa6e%Pug/ώ[%󜑞Ư._gfj2ل{us;{Ȋ% wE/_SR, cQ{ނ&oYjcw깮Pm 5i50Pey|Wo]zUC||GQv2eq?ΥR=9vDOtHiw;͡7ʧ;'fY^}|'$Jj|<leqν0wFh!:ӆ8 +72|*# z-AVC !b/@eP bG^ B=nK2tz.q[E{nqNcŚ{{}1^ +7xߩm}}(8UqH(&mq?rMrK:_qkuxl2)XNeQGG.d=Q<g,SJOZ:?͟oyci?֍ ]w`\8 G#'rF4r +rCIܴ([JהHmA!ݫ_U 7U?uFeB<.'r=Q/5L| y*aݶV{Mʻ<=gZ&ᢐҐlˑ•t*l\daV*6{R:;> 5xjE$IoZoS2/<<0X߉{iQϰLe@gWK94ݍb.B` ?H/yRip}Y'yNz?:tX3LmD;q)3xl~T{`w}2[|_LtXmwWPb@R~-!=9hWyj_ 7W>ٟAlS! w_ݱ fzUZ; {&6R"~lH1{cYeH<> >מ0K$"Pmweǽ.QZ"YA(s./s-oow-Zeǃ+ړI(…P%H`zJrU{:C."d2:BtL"Tȧ\im~X#3X˫nVL{DL7"@2􈺖d:^sDPHxkG*pYko#8%2xō@h]A46Fo)HW(5SAC.ゐ Wg9Wj]ᚧF(+\y +]f& TްPmj)ZUi0'*R"UNg +Qp1=[[ b!uW#_zM"= +?6]:+EURoK'0P@a%x-l:Nz3܊gt|lxikv]TX+_$ZZ\dסx +jOݴ3` 181H#ڊ<..pQ1nMW C1xH!Nr%mqfD+,g 5\Y~9g_2g`y[(HU(^;i,OZ{^ڽ|vEp]Q[3q z>\P:W ³fz#q׸%~e¼#v+^tK]^W`8"U~&*+Dp=6b2]w}ҹ~3/׉US7^|P40::❎Y +Q cڰ3QK{J?h1A29d8jPE4'ǢNj\(;Ηw߸ I%% hh'>Nh>:pO,s +#h;֒ ;`thPåVbǖޖ,@ + .1U2ϣ3܊gSa3v77֍ӸDl>FpK=%Ԏۊ0S򡶙 .JLCD@,G#ʂ.\W*u+xdKYBi"mD仑Ew&Anw#73:ޓBKnwQ]Qs`c,_ttS=Ӆy` HuGgzhs Q %a<)ezuRagwxx˺ƹeqoKrGqyG.ʺ?< +){ېuw qlO?/;^<[5ˣl1hP`l +lSIHR +غZd8zA\͔1NuyD8>{%,нA@ ьg[1~\^"}wsyI_&dM2-ҍ;V.:1⼅8Ѐ _&qiEv(I8( n1/0xHoO/vbo+#.~Z<׼&JvEu0gɏ36%T,8BQt|C LI뼆PӅ6^Pg,m,HŀN׭NHg482zMKQЧmX3uٺL 2}Db7+a~bނ&bpkcm{VK +t-Cp7w1X?涔/U@F;g#99Hљa?؏XtKM +AAp)MnyrJlD*1 B1bЬaJi)J9."(ڊu|bx770ӊ`e`o(h Wcnj0&] Ak#+ z±{@0X^ \Wo E+\m84pn۟yS:pم2"8Ԑ8F4tC$Ip1XR"TDl Ƃ/֩`-bxB#bzMP\) +A[sPc`]F'x9NϡEԚ5"gmn/sW2sЕwD+fBGG•t`Q9yU'H 1 kJ B~ +3np\SmWnS^Vy0r=ǛRGa6܎ ;nKM%)#jwGtC:|.A9dK `KyKa]".}uY$A)EwR);w؅3s'̾5]3gHYTx+u?vKޖ2uk86;weQʺg‰}/>y~[ZkbkSΰw}Sⳤ!+\$ +יI oR:}2ׂ?2t>;HY9g{;.dJYAKOУZP i!4{;o6lD eQq=͟{97 ~\Kt@{z PKd{K&cJNR%0H-KrIG5lۖ:Z3z?jY?9o>E}=2u^GE+%">ҋ{[R7uk.}ݤtHhׅzCG+zq=;n Q |K1տDΘdF\RóΏa.S=Ҿ "s&z(]9{oeiz zeH9HVvU7$MKX渨9eI/PH'iQmeE\"?bd֋O;$'=/%0ΕL)zZѱHd9C`3g5>INd1"&$K׍qĪ-GEHQXC]L>|HI9.1s$r0wrBNoO" DՔH wCC'yAoAk2,X"wzu_Ȣ+Dh{oq^e!2wŒ"h ٶ}l13;`ou{C&zKcIp?}0 P73GVio4Hö۲^EO+ QE;KQ +wo2 +ߔLnkYhɢ/͎$imW6L~B9u=G\[*(q12 XY6?dF\Z4]{2OKPBb̾W@N i.wV3ȗt/Ev%n*\Kl+c- +JnA՛fSni,ſ +Q9>qW:¿ aᦗ"ݩĿ(!y b]$yyY|כy^vԋI!Rpӊ_jdaH7(GtKlffqL=1j-9PᥭO*W8> =sO:y~~|o~LM1peJNECF%ݖl(+ D! __.iY*wMZf>CAܢcnl C!(k;s. + q!"5Y4` ,$P +?疒nZVigv3Z3C$\q"SƿR<7GZAAK'_#8(RDA*3 .{ fw髬摹W>)ڧA,o?\"1?+ͫ}Jl!OTr\:^3H:A_nӉ/%η,{9I:,?Q^ rn=V=KVa+w1U +g|z`̐ߘ'MGܓ/e_.sVn)]d\QŇR,GjGYA:']k.`=o.{]^&=NYF<~v7)ǹEڬhuuq! gz(ޛq().h/D&?Z7H.a@גqt3^8P=#( W9LYA' A(ݭdVCt(ybO_Ko.g"GyVrL-4!⢕{@YDq٦IR-`:$ߏ&.VIE2n>%:LEƶ;xSeH$|oy¬׭B'm }PBjp6'UUW5C;D']g*NA5Q|q@8V:-EۉTe$!yw9̵oQ|Ykc;1v=&%1hZ@$|ӚuEnkHْqr웓ϡa6][lWV tJMy j4 q7d0(~|$W#@k! +(źn??P>Lau- #U|41'kmЫ!Mzo=Ue=ơlx*sRmQEqDV/) ,4:&, V^V3`&}v;Rީ>]ali٫j_U6`cVQ6E{J-of xVWm\j50q 7Y&+ۇ{O]cذ}jo{)f5e:By SzMI`;?A2^q 翷#_Svm` ZCjY4%ڐ(,pQ(ۛ/c5G%_sHuf7y.B1,{_܈&i}ƢM@i8F q:B3 w,m|tg,˓!zmB:%>a=uYf[I 6a6)a ĶeV酹˕a6I{vH`Y~ +=!ٮ3(`9ҵrg[>\v9]z ޼.]>pWQ*OpΕ6|j")逮H.RŤdI{7Qr锑="}9(IܖL7KxeX"&ŵ7BBL ;"`jMw~s*GX}KekWx-Tkn׵-.ϻ +6mvx=:WQHW{y0Л׭I`3G R6pSRK$pE]$f%% |!OILuK,Dgb&Fg@#48X!8o^W'׏E-y/!8|A{-<فS>G)b9 -+AU`yzߓ(hd^+%쓼-qL@`ӕ{ǘ?zHbf1~*Q=oK474o,T"U;\'Ij n"kAI#x]`zʤàx_5q:`؋q&< J>5^/oYqbp4SѼ{UϩdĽfy8M ؎qraWmy[[;C ,N>חp3pS{ U~@PM4 G.Q{r* =~$H6<"I:D4b }XFDŗ1K'(/Gak;}tqbKu*ژ6^,! 5}ijQ4̪ XUx[yiq|\.]nKjO܉ KˀgGL}C+|!m^yMbgg ~7~6z{/1\!:,B +,!p#GO)^ziE2#'^#w>f:[368 k|)~G3{a xkqyו xvYY +%k$ߧ)g޿5G-+*$4̴~ ʺ o` Ko +hPh߅sWA*։ <ä)FS'I= cQ,YM|uQP{|v9^Dy1XȾb.v/*hQGHƎ'6bܴnZmzR$O~3GYc1<d=tE*땶r}}keَ59kt;LQ;s- ̫u̧p̽ u-?OLgZ?Ӏx P cGWkW2Y 1p&_ǩqZ"xo'͠= /=64^ k/'"q= VJIzcq=k +|X֎`Ob9 *ߥF1mYʓښ.t\] 4R#gDex@'C&^ƿdAE<:mlL4GJ/F)Efw6Jޱh'+m!̅E: >S >Y?F3{z澆FB]3w GM!5S$#sQT>&]+Em }|x/ӄo}j9o&2~7;6& p/] 7$} M"r͟1qF>UT7Ǟ:n%f*ƥ:Cˢd=TW"QpO:R<< ^x&,xԟwj>ݏe{nOc$|<1= &NuEA o{oc_WA/y|%އ+Pt9B0F4^OBl,9(+=+v_(nq +:HRu4k0}J&Y+2pe[1#ݺ`8gfOqqTT8+3/ۧ*YBD=ލf jI4QQ'n?ilAk0;+/S83v+!0}:[K Mڐ:fC6B|\aEpI7^U|mͻw~4wKBgB_*϶CB:V[^2^Tbͮ{߳B~asɒy<?pif]F_]})x] 5<BO,8􈛰-R̴dXݴ=Yb߰1EWyf}JYG<:ӗqTyAbJ>ĎJOT \k3ۤ &FzPŌ5J_$b/ nW5kQb +=$5RHq%izM +nOa R/huWⓥp$hͧ)v?$NIj<|R"/ޒvk҆6xž/\/%iC0'~7:ViUqAc U8 nk(Y ?fMq7*2Y\t#DP|uV܁irdKa*_Z}'Yx,rn<jyK֓L# nk?Y[Ղ +q5`+D(uYG&77gvh__`srv~]c h0z]׼r3zbA5Z1}0\*(؉jU[kBɳߒ4|q#Ut| "/%t<oH2→Z"XKk{ێIDO* wRʻ쾯))@>E`CVN Fz|7Hex{K>fF ME b7H>Zi.z'ok'bOm=퇦%bЍ>O@ˑ +\TA8JsX(}蓮HW3^>u"z>Q^lw C˺Gq:_^Qœ(: XF%[Ǹ^hdPLAL(!g_@qj͓̬z"J;*bąUh5YדtR=-=`d9`sf-Bfwkߒ։T"MG\Cwߵ2ϯxޞɘ`ZkP|E!ECL5$@>~CVRPkw;`\'>IO<}$-č Bރ) +;ɫ߻猼hqFŋ#^@~#H)(W%&}܇m#5`p76ېzzA''1y4qXaXC*GU0=O{>c^T/xήlXWvד2S/胲: 8zrOJ"'b׳dxs)YwNij{MG R/ĿԳL>Y{`b&Gz_z1 YXGi1\>֋NSdF2>>z{ftd~/YF|DbX3|> 5ɲ?8)[IO-~ϑ>B;¦4FO~e0{"`8v\:';buQKR'wX2d Mx)*Kμ1A3 +/Efqsks "tlD c5&̵gfoZoA$_*/2HQl*cʬ"|a.=ٶݛ屟g5b>`,|8ߓvA^\J F]vՉrYZ'JE9% 5i-10uQ;s>L99̘̇Ώ㌟I$_BOх߲AFuiԎbW_Ku4i u1eΰ{D{%]͆2lssQu1<`yIz1qH=ߩ.*fg_T{A|{Qvɜ0Iζhlqt^c3DӎFQi>QA _SIa.ꎰ飑tХ%#z%hJNt)qH6٠{MLsdgMi꒝I%3?^؜*[,rHz>VdYs5 kz+${:aL<i.3ܚ\v!FRW+{ AŕǪrpPDHol {4W|k#@tPg wB _15^zQ/J IL]X1,R)Ds рJ +>L& \TQA} +|w3 ZQ)|Ep+ "PQ_w49G g rRb$Q}YP/ +)d$׳Ҙ +=PZgѹۚd#*7iz Ordݴ$ybu7-jp=+c'Ùq!Ea+@&2vz J +(TE̷B׏^=ڸ]SiV`i6e 2p4oGS| ~Uzۀ,Kz`@X >s&̧9QHk|Hy%܄>a,LK/C—خO€pFYq 0 4&NwTӋ%0*@uT(blUy GX:pmr,u}~Y(s|v˳j`/qYF8puN8XN[H{= +ӆD)#yz+zmdKn9L罒_X_9?88lrؔV^Q D(R+h\϶q=g:2?鐓D:sOn%˜Lb]|3y ߗnj +6NL1 -ֿ7>NjUF.f03-xTlcy'2df,s,4si?S@ >GTÜ* ؈C'_ҹ,Qd{w +Ua*d|-ҎmԡT]9l^@}kQn^~UA0i9D0C d4UCPQ#78}f/[ylfcm J21Y^o/P,#t3H2Lk|QnLg&_fj?͐uD=jh3fW[VG#9y)1bQ`WbIz14i6e|&{'pD*< 8$&_ M__&'D%Pf9RlBYd + ȭ;D1}0P-~;Kφҏhp1^0O%fp\ o_%/\U/1_@Q) +bXeW./b^|D?8ˏ?MrA(┛ +vDs)2wpV n(Nǿ)1QizL@@ :ιiSy|=K9 u&^uK%ʘ@XVv42/u?e>8?޻|6$Pl(ڸP>,kCњ!O?k66ڰ~޴aaU_ad, kQ65E;9-m,ڴDU~]B.ԁG?ܨuBTP7z/X[%;tȌ RP*JCh2 4 iQ#:BEwz hڂ6b#Eh ڊJ*[CkQ&h5ci mWdC@g9}>FOgt o߃n =KI)P $ERKPKEbDHDJ2@IE,' >-(YSd +q[S9I ++XiHge 'CA~#kS4%j)e1JjJ0uѰ57y Kvz$1痭9+Ꮿ<5㾱;'^ڶgvsz^xv]I)oM7¤2ybD`7n<|W_g HQ$eD/'a +/g`;9:Iϣ*L4Iw)NӰ!B ]i )ұޕw;ԟIA:}=ޕ&h]DH;NEi?b;-NpOZqOz={x3axIaxf5wEa'잴t=i=I_,G`D(D)%}VDP4*-<0}#v Gs#pN_A+\Pyp,{Ǖ`_@{{,+# p?7`҆]gv !ؑf~ wߛw \^y5x 5z%G۰ _?s:CbCGg>g䍙ՇQ4MQP :p~$ѫ4[5kJ +6ԓ jH^j]>ycъ B*6nTNVˋl,IE#e!<-[aq6P\IUQaurc΂YU*5 ' W,p!kԪ <^O3w^E,i4X+Tl. r&؊|-qOjea0'xb6 +o l.-!][fMƢ +quEEMa.N[6n*Z UN֮S&kƢ"_?~T[Ts$ $u~p{֧& Ģ58OP<`¢+J +V8kHLW<('o֤7V&y5rP`;UǨKL VJ3*ڰaYn&Xt.JȻm2n ST pWD T. +dhCq0%r!e-a7JLTTk'LZ2nډ@_;?bwjo_i4mZij}/upiSa~~?Xɡ_lo?E+yeYy 9l<;}i?2N@#8Eb[ܩw"yY:ԏ]{31L'I>ăۉ=}NOϿ|üYK/u~6uw;ߎcg}戻σäw^m_[9ak +7c5` ׃ӻ/A9xIk +\\1%yJč'ѥԜJ;10⇏}'ru[m _gP/o\! r8k3>5lmc_/gB!_ K~~/B_ W\ wMA%"Xj+.(^{YMalڴ_i 82lȢMנUko,BKA#+V*-Xk҂5[ ĝ"omA:XdlKT4'/GoX:1}*ud"gr(zx㦢 *oQ5#kׯ]}RN CîSw:x֖y#en;I0ߓoKuw/w?|weaarRϗcJe2,/_=,]/hXa[;6,_1,İ[xX~p??,?a=ٕKw.MMז]P<;q34N/l҄I!}f(M ơ4-_JXH%BTH eBzPZ.3B:e(1i>~@{sIgݓuOz={qܓyOz=i=7S~aMfW^-{N0p<?4M!y;:ii$dhȼqgx*(>) l#z t Yfë͉fWZ/w\ۤ5aH|d&#ZHAۻx +ŃnXgdUv.Ѽd!Q 67gx]t\yҚ+I!Bd! +$D"8VrljRHW$0?IR MUD\go>ex~˽m܏!K__ r/B_}I.縣veˎzwK!}HB:rwf>xlU/|;K}KINڻ8>+ɖl%lcY{+ے?E$Ma^jXYr88Uq_QQU3@ȥ%;Cly?f{zg$a0)uׯ?gkҔ'v^JoXHUh֞Jd2})=/IFQ뿽¤XZM=_b1FǏ N^m|Ž kˏc?(/A +a3Lrы^>,0Q|/@K|5V.7gq(s=&G?ܡoɢ__c7ݵf}:߉'S±'P[`cEu?7@|.~$ e7Po`-n鷾``zdMo0DmO0X]|#Ă +6wYG:zGyGyfbYӤ=Q|/B=+Ƕ_fve3|X3?Ğx^f.S'H!Nϳ?}J_SwЧί\t_>__cG~m";yxpxxgx<MkWw} +ehk$9 N'n־s;^vkm~mYߎϷo_`o;оi:nj hFGѲװM|bopܬЖXR6'|5?yɎ/w{vWhQ~Fp?e_HFQyixc +N˨#>ZYM_.{~oE?qK:lFwJ*+Q7]BRO.!~׏T|([v`9ӯ#^vr>F9~y_·>wbzx,y3 ^7Dzi3>v>~g=76r>u>|%.<=.n(xz1O~^mo?Y1y e\r}_vI4_K̢YJIb7'I4(jxʈ1|ob dD3M 5a.Mg͜FO%DO%Fac  Ct;>T)rQ.Uʼ'*L"1{#^IeRQOBXS#J.edɎ`ъrZi ƻɒ݂΁a1-\0cf/h:0󆩇d*Q0$hͥeSu 3$-C,4 ,^(f"q=dD)5gx?zR vp3g̤ ++ƃ!CY`ƲCka&` 笕|m#?5[͎US?)U;TvP.|YVCg\Og}> +}u_nD5.:T㊻?{G;LoK~} 9G_mXZ mmZx RwљWvm M::T_J??oC`2hmLN[Hk$ ztC?Ius{YCzBb}Ϧ NF"<)l,dJ&u\ȧ2a)X)BO["1bǮd 4&`6HFSd}(8= _VQgd[@)KaHf65pcrQϧ(?ݹ?XI`I0 De |c!;K(uAáɼؒ6} ZJy``lS_>`]QHe¡"'i53 @!A5S1 V Ŵ!Xޞ's%PV|i34/,A7)OכSaL;N\uBRJ*Z+XGlCӠ8:N@Ce2|6oB*~CC}ili8hdSHoC@̭ Jbv<MXzNNF i£ >6c8kbJө-f)i:DJD#4Uu(ZKFGb%%&-tB̤?"P@.6)Tɽ Ň{ uf'-T֋/A!aCR%[]07 (U+"'ӹ89tCKwytu l! F?p 韋L,s!4F\6S ^NPHN!@WlF~zXJ&b1]ʅ<tGM"7a..ϐa-SD;lu(+M/>D"inJf,e?POZUm +\O*M˜c9,z6rTwt +:2V&/^A׵*̨J*ff6wP"OF`aM=wiɋ#` pv*L9(d A Y=+*H\b~ ]vLYB-+63h[7QO%.޷6~}C=*cIƓdzPX=Z+P53}/P'K)*[t `z~qZവplSK}VdN|6BXwz5 L9aF&$Zhm۰GʹںeM?zZm$Vq߾:otC^W1~eox~)qUՓw"v t%vfvf%BlvFӜJnpfG5~yU.HvMIݮkjFksLHD\ܮYܚsٗ#|۵$5NnXCn4/Ns91kRdZprF~ kT+MUunf~G>lF}b/acwqxy7r;4f\_5Up\jS >wnp}ŽN4 {T͝'\ ^p~'Rߎ?;.7>9+E.,g{ʱ9xzN7V!-ʩ ~fK 炰C= H̕2&s- +JowFJX$I3.|.P§%7H.|RJ|H%K +.]k +_bo1}(zXww9%|$F ?%%ErEJ,ῐϓ+$|ߙ~g!8dߙNs{¥ܧr..Qo¿!\ր[+sy,.RKepnUG\"s K5 q'Xc/WkۑH󌼏Sź䀂u13 +.3TQ&f$ %azl` I-(' )n^?˴R(_s 4g{՚_S}.Z;_^бzSLQyϻVՕfy}gme=$4=έZ\HUK ]_L@ + +typedef uint8_t millis_t; + +const millis_t DEBOUNCE_MS = 5; + +/** + @brief Asymmetric debouncer +*/ +class Debouncer { + public: + Debouncer(); + void updateTime(millis_t delta); + bool sample(bool value); + private: + millis_t timeout; +}; + +template +class Timeout { + public: + Timeout() { + timeout = 0; + } + + void updateTime(millis_t delta) { + if (timeout > delta) { + timeout -= delta; + } else { + timeout = 0; + } + } + + void expire() { + timeout = 0; + } + + bool get() const { + return timeout == 0; + } + + void reset() { + timeout = millis; + } + private: + uint16_t timeout; +}; + + +#endif diff --git a/Code/devterm_keyboard_mini/debouncer.ino b/Code/devterm_keyboard_mini/debouncer.ino new file mode 100644 index 0000000..93cd13d --- /dev/null +++ b/Code/devterm_keyboard_mini/debouncer.ino @@ -0,0 +1,23 @@ +#include "debouncer.h" + +Debouncer::Debouncer() + : timeout(0) +{ +} + +void Debouncer::updateTime(millis_t delta) { + if (timeout > delta) { + timeout -= delta; + } else { + timeout = 0; + } +} + +bool Debouncer::sample(bool value) { + if (value || timeout == 0) { + timeout = DEBOUNCE_MS; + return true; + } + + return false; +} diff --git a/Code/devterm_keyboard_mini/devterm.h b/Code/devterm_keyboard_mini/devterm.h new file mode 100644 index 0000000..c9d4a46 --- /dev/null +++ b/Code/devterm_keyboard_mini/devterm.h @@ -0,0 +1,42 @@ +#ifndef DEVTERM_H +#define DEVTERM_H + +#define KEY_LATENCY 1400 +#include "state.h" + +#include +typedef struct key_debouncing{ + + bool deing;//debouncing + uint16_t de_time; + +}KEY_DEB; + +typedef struct keyboard_state{ + + uint8_t layer; + uint8_t prev_layer; + uint8_t fn_on; + uint8_t shift; + +}KEYBOARD_STATE; + +class DEVTERM { + public: + HIDKeyboard *Keyboard; + HIDMouse *Mouse; + HIDJoystick *Joystick; + HIDConsumer *Consumer; + KEYBOARD_STATE Keyboard_state; + USBCompositeSerial *_Serial; + //if not to use USBCompositeSerial,then use default Serial + //**Serial and USBCompositeSerial can not use together, otherwise the keyboard firmware uploading will be dead** + //and you will need to find a way out to flash the stm32duino bootloader once again + //USBSerial *_Serial;//_Serial = &Serial; + State *state; + uint32_t delta; +}; + +#define KEYBOARD_PULL 1 // 1 for PULLUP, 0 FOR PULLDOWN + +#endif diff --git a/Code/devterm_keyboard_mini/devterm_keyboard_mini.ino b/Code/devterm_keyboard_mini/devterm_keyboard_mini.ino new file mode 100644 index 0000000..4cfe578 --- /dev/null +++ b/Code/devterm_keyboard_mini/devterm_keyboard_mini.ino @@ -0,0 +1,71 @@ +#include "keyboard.h" +#include "keys.h" +#include "trackball.h" +#include "devterm.h" +#include "tickwaiter.h" + +#include + +#define SER_NUM_STR "20210531" + +USBHID HID; +DEVTERM dev_term; + +const uint8_t reportDescription[] = { + HID_CONSUMER_REPORT_DESCRIPTOR(), + HID_KEYBOARD_REPORT_DESCRIPTOR(), + HID_JOYSTICK_REPORT_DESCRIPTOR(), + HID_MOUSE_REPORT_DESCRIPTOR() +}; + +static const uint32_t LOOP_INTERVAL_MS = 0; +static TickWaiter waiter; + +void setup() { + USBComposite.setManufacturerString("ClockworkPI"); + USBComposite.setProductString("DevTerm"); + USBComposite.setSerialString(SER_NUM_STR); + + dev_term.Keyboard = new HIDKeyboard(HID); + dev_term.Joystick = new HIDJoystick(HID); + dev_term.Mouse = new HIDMouse(HID); + dev_term.Consumer = new HIDConsumer(HID); + + dev_term.Keyboard->setAdjustForHostCapsLock(false); + + dev_term.state = new State(); + + dev_term.Keyboard_state.layer = 0; + dev_term.Keyboard_state.prev_layer = 0; + dev_term.Keyboard_state.fn_on = 0; + dev_term.Keyboard_state.shift = 0; + + dev_term._Serial = new USBCompositeSerial; + + HID.begin(*dev_term._Serial,reportDescription, sizeof(reportDescription)); + + while(!USBComposite);//wait until usb port been plugged in to PC + + + keyboard_init(&dev_term); + keys_init(&dev_term); + trackball_init(&dev_term); + + dev_term._Serial->println("setup done"); + + pinMode(PD2,INPUT);// switch 2 in back + + delay(1000); +} + +void loop() { + dev_term.delta = waiter.waitForNextTick(); + dev_term.state->tick(dev_term.delta); + + trackball_task(&dev_term); + + keys_task(&dev_term); //keys above keyboard + keyboard_task(&dev_term); + + +} diff --git a/Code/devterm_keyboard_mini/glider.h b/Code/devterm_keyboard_mini/glider.h new file mode 100644 index 0000000..f4f9785 --- /dev/null +++ b/Code/devterm_keyboard_mini/glider.h @@ -0,0 +1,29 @@ +#ifndef GLIDER_H +#define GLIDER_H + +#include + + +class Glider { +public: + Glider(); + void setDirection(int8_t); + void update(float velocity, uint16_t sustain); + void updateSpeed(float velocity); + void stop(); + + struct GlideResult { + int8_t value; + bool stopped; + }; + GlideResult glide(uint8_t delta); + +public: + int8_t direction; + float speed; + uint16_t sustain; + uint16_t release; + float error; +}; + +#endif diff --git a/Code/devterm_keyboard_mini/glider.ino b/Code/devterm_keyboard_mini/glider.ino new file mode 100644 index 0000000..8ecb221 --- /dev/null +++ b/Code/devterm_keyboard_mini/glider.ino @@ -0,0 +1,60 @@ +#include + +#include "glider.h" +#include "math.h" + +Glider::Glider() +: speed(0), + sustain(0), + release(0), + error(0) +{} + +void Glider::setDirection(int8_t direction) { + if (this->direction != direction) { + stop(); + } + this->direction = direction; +} + +void Glider::update(float speed, uint16_t sustain) { + this->speed = speed; + this->sustain = sustain; + this->release = sustain; +} + +void Glider::updateSpeed(float speed) { + this->speed = speed; +} + +void Glider::stop() { + this->speed = 0; + this->sustain = 0; + this->release = 0; + this->error = 0; +} + +Glider::GlideResult Glider::glide(millis_t delta) { + const auto alreadyStopped = speed == 0; + + error += speed * delta; + int8_t distance = 0; + if (error > 0) { + distance = clamp(std::ceil(error)); + } + error -= distance; + + if (sustain > 0) { + const auto sustained = min(sustain, (uint16_t)delta); + sustain -= sustained; + } else if (release > 0) { + const auto released = min(release, (uint16_t)delta); + speed = speed * (release - released) / release; + release -= released; + } else { + speed = 0; + } + + const int8_t result = direction * distance; + return GlideResult { result, !alreadyStopped && speed == 0 }; +} diff --git a/Code/devterm_keyboard_mini/helper.h b/Code/devterm_keyboard_mini/helper.h new file mode 100644 index 0000000..6079d10 --- /dev/null +++ b/Code/devterm_keyboard_mini/helper.h @@ -0,0 +1,19 @@ +/* + * + + + + */ +#ifndef HELPER_H +#define HELPER_H + +#include +#include +#include + + +uint8_t read_io(uint8_t io); + + + +#endif diff --git a/Code/devterm_keyboard_mini/helper.ino b/Code/devterm_keyboard_mini/helper.ino new file mode 100644 index 0000000..24645e2 --- /dev/null +++ b/Code/devterm_keyboard_mini/helper.ino @@ -0,0 +1,10 @@ +#include "helper.h" + + +uint8_t read_io(uint8_t io) { + if(digitalRead(io) == LOW ){ + return 0; + }else { + return 1; + } +} diff --git a/Code/devterm_keyboard_mini/hex/devterm.kbd.0.21_48mhz.bin b/Code/devterm_keyboard_mini/hex/devterm.kbd.0.21_48mhz.bin new file mode 100644 index 0000000000000000000000000000000000000000..f6b7d536db30d97cba6f590a33f92acc70bfb2b8 GIT binary patch literal 65536 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 )MJ1BHF0+-H`IbM^O(`5tma@tw=|CZKghC$A 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 J5Bwi{;5T`bwLt&? literal 0 HcmV?d00001 diff --git a/Code/devterm_keyboard_mini/hex/devterm.kbd.0.2a_48mhz.hex b/Code/devterm_keyboard_mini/hex/devterm.kbd.0.2a_48mhz.hex new file mode 100644 index 0000000..d70f757 --- /dev/null +++ b/Code/devterm_keyboard_mini/hex/devterm.kbd.0.2a_48mhz.hex @@ -0,0 +1,2050 @@ +:020000040800F2 +:2000000000280020F100000839010008390100083901000839010008390100080000000055 +:200020000000000000000000000000003901000839010008000000003901000839010008B8 +:20004000390100083901000839010008390100083901000839010008390100083901000890 +:20006000390100083901000839010008390100083901000839010008390100083901000870 +:2000800039010008390100083901000839010008F90400083901000839010008390100088D +:2000A000390100083901000839010008390100083901000839010008390100083901000830 +:2000C000390100083901000839010008390100083901000839010008390100083901000810 +:2000E0003901000839010008390100085FF808F1002100F004B80B4B5B58435004310A48FA +:200100000A4B42189A42FFF4F6AF094A00F003B8002342F8043B074B9A42FFF4F9AF00F069 +:2001200045FA70473C19000800000020C8020020C80200200C030020FFF7FEBF7047704728 +:20014000704703288CBF02200020704770470000034B1B689B7A13B1024B05221A60704773 +:200160000403002010030020704770477047704770477047014B04221A6070471003002005 +:2001800010B500F089FC214B214A1B68002412689C72D27920465A721E4A1F4B14601968DB +:2001A00021F4EC4121F0700141F4007189B21960196821F4E04121F0400189B281F010015B +:2001C00019601168154B89B20B445B0040211960136880229BB203F1005303F540535B0077 +:2001E0001A6000F039FE0E4B20461B6893F8301000F08EFE204600F020FE0A4B0122204683 +:20020000BDE810401A6001F025BB00BF04030020B8020020505C0040005C00400430002002 +:20022000DC0200201003002038B5124B05461A681C46127802F07F02212A19D100F0C2FC34 +:20024000B0B1681E042813D8DFE800F0030507120900094B04E0094B02E0094B00E0094BC9 +:20026000226800242046936154829847204638BD022038BD040300200D0B0008350B0008C0 +:20028000F50A0008DD0A0008014901F0E3B800BF44010020014901F0DDB800BFB802002005 +:2002A000054B1B689B78072B04D8044901EBC30101F0D0B800207047040300209400002022 +:2002C000014901F0C7B800BFE000002008B5084B1B681B7803F07F03212B06D100F072FC89 +:2002E00000280CBF0220002008BD022008BD00BF0403002037B5194C0C20256800F080FBC2 +:20030000284040F48035256015480C21002200F0BBF900230193019BB3F5007F02D2019BCD +:200320000133F7E70C20256800F06AFB284040F48025256000F076FB0A4BC2B218600A4BE0 +:20034000C0F3072083F8292083F82A00074B5A71987100F0A7FE03B030BD00BF04080140F3 +:2003600000080140C8020020EC00002029010020044B1A6892B242F00C021A60024B0322B3 +:200380001A607047405C004010030020044B4FF6FB7219680A401A604FF43F421A607047E2 +:2003A000405C004010B51E4C072818BF20702378052B32D8DFE803F003060A0E1621FFF7BF +:2003C000E5FF2AE0FFF7E2FF042327E002236370032323E06378013BDBB263706378F3B90B +:2003E000042217E00F4B1A6892B242F010021A60052323700A23637010BD6378013BDBB2D6 +:20040000637063785BB9074A4FF6EF7311680B4013600622024B1A7010BD0623237010BD96 +:20042000CE020020405C0040064B01221A60064A00200649186010604FF4E0520A801A60E2 +:20044000704700BF405C0040445C004008030020044B01221A60044A0020106003221A60D6 +:20046000704700BF405C0040445C0040FFF7F0BF07B514238DF8043000238DF805308DF897 +:20048000063001A801238DF8073000F001FA03B05DF804FB10B500F0D1FA094B00241B6830 +:2004A0009C72FFF7C1FF074B074A1C604FF43F431380064A1360FFF7DBFF054B1C6010BDD5 +:2004C00004030020445C004008030020405C00401003002007B514238DF8043001A8002363 +:2004E0008DF805308DF806308DF8073000F0D0F903B05DF804FB000070B5274D274C2B686C +:20050000274E9BB22380228833881340590505D54FF6FF332B60234B5B689847228833880F +:200520001A40920444BF4DF6FF722A6022881340DB0405D54EF6FF732B600020FFF732FF4C +:20054000228833881340180504D5FFF711FF4FF2FF732B60228833881A40910507D54FF633 +:20056000FF522A60104A11780131C9B2117022881340DA0505D54FF6FF632B600720FFF78A +:2005800011FF2288338813401B0403D5BDE8704000F0DEBC70BD00BF445C0040CC02002003 +:2005A00008030020000000200C03002037B500F0A7F800F0C9F800F0F7F8FFF79BFE00F037 +:2005C00009F900F041F9012804464FF0000302D0022835D008E0009328480D2105224FF4B6 +:2005E000A02300F065F844E0009324480D2105224FF4A02300F05CF8214800F0F9F828B106 +:2006000000F04EF8041C18BF012432E01D4800F0EFF80028F4D101242BE000230093174808 +:200620000D2101224FF4801300F042F800F0E8FB08B100F0EBFB0135052DEEDD002CECD1EB +:20064000104800F0D5F808B10E4804E00C4800F0CFF818B10A4800F063F90CE000900D2176 +:20066000064805224FF4A02300F022F800F06CF901E00025E0E7002003B030BD00100140C2 +:200680000050000800200008012303FA01F1D2F1010238BF002213019940016170470000E2 +:2006A000024B1868C0F38000704700BF080C01402DE9F0479DF820A01446CAF10107FFB2FF +:2006C0003A46804689461E46FFF7DEFFB4B1354615B100BF013DFBE7404649465246FFF7A6 +:2006E000D3FF354615B100BF013DFBE7404649463A46013CFFF7C8FFE4B2E7E7BDE8F087F9 +:200700000D4B0E491A6842F001021A600C4A106801401160196821F0847121F480311960B3 +:20072000196821F480211960136823F4FE031360044B00221A607047001002400000FFF818 +:200740000410024008100240154B1A6842F001121A601A6812489203FBD5124A1221116007 +:20076000A2F6FC72116841F4E81141F480611160016841F080710160196811F0407FFBD04D +:20078000116841F00201116011680907FCD59A6942F4FE729A61DA6942F40002DA617047D0 +:2007A0000010024000200240094B1A6822F4706242F480621A604FF480221A61D3F80424E2 +:2007C00022F4700242F48012C3F80424704700BF000C0140054B1A68D10703D41A6842F0EE +:2007E00001021A601A689207FCD5704700100240036803481840B0F100535842584170479B +:200800000000FE2F044A08B543681060026882F30888984708BD00BF08ED00E0084BDA6948 +:2008200042F0C052DA61A3F5D0331A6842F480721A60044A10851A6822F480721A607047DC +:2008400000100240006C004038B50F4B44F24C21DA691D4642F0C052DA610C4A128D92B252 +:200860008A4205D044F24D239A4203D0002409E0012400E002240020FFF7D0FFEB6923F0FE +:20088000C053EB61204638BD00100240006C0040184B30B5DB684478DB43C3F30223C3F1AC +:2008A000040204FA02F20F24DC40817803780C40144303F00301C9002401FF228C408A403E +:2008C00003F0FC0303F1604303F56143D3F8005325EA020122400A43C3F800230378012298 +:2008E000590903F01F0302FA03F3034A42F8213030BD00BF00ED00E000E100E0074B4FF0EC +:20090000FF32C3F88020C3F88420C3F88021C3F88421042243F8F02C704700BF00E100E07C +:2009200010B5084B802204461A60FFF7D3FDFFF7E5FFFFF79BFDFFF7E3FE2046BDE81040D9 +:20094000FFF760BF10200240024A034BDA6000BFFDE700BF0400FA0500ED00E00A4B10B5F0 +:200960001A6802221A60094A1168144611F0010FF9D1906042221A60226812F00101FBD12E +:200980001960012010BD00BF102002400C20024037B58BB200930B0C01930E4B01221C68EA +:2009A0001A600D4A1568ED07FBD4019DADB245801568ED07FCD4009DADB205801568ED0731 +:2009C000FCD424F001021A600068431A5842584103B030BD102002400C200240014B802250 +:2009E0001A60704710200240034B044A1A6002F188321A60704700BF04200240230167456B +:200A00000728C8BF08380F23800003FA00F0C04370470000024B188800F50030800270473C +:200A2000E0F7FF1F044B1B88812B34BF4FF480604FF40060704700BFE0F7FF1F0D4A002385 +:200A40000221137053709370D370117153710A4A0A4913600A4A13800A4A11600A4A01F591 +:200A600088411160094A03211370094A1170094A137070471D0B0020180B0020000C00202A +:200A8000160B0020C4020020C00200201C0B0020D0020020230B002008B50E4B0E481979C8 +:200AA0000022C9B20129026008D1022119711A70FFF724FFBDE80840FFF7DABC11F0FD0F5E +:200AC00006D0022119711A70BDE80840FFF73CBF08BD00BF1D0B0020180B002020B9034BF5 +:200AE00001221B681A8270470148704704030020210B002020B9034B06221B681A82704765 +:200B000001487047040300201D0B0020064B1B6830B9DA88598A511A1982044B1A807047BE +:200B20005B8A03481844704704030020160B002014030020084B30B91B68084A11885A8A45 +:200B40008A1A1A8270470649064A1B68126808685B8A10441844704704030020160B0020DE +:200B6000C4020020180B002070B5124B124E1B783468022B04F100640CBF04F5A04404F514 +:200B800000542046FFF7EAFE00250C4B1A8892B2954206DA0A4B6019E958FFF7F9FE04356F +:200BA000F3E731681A8892B20A44326000221A8070BD00BF1C0B0020180B0020160B002089 +:200BC000140300202DE9F0418149824C0120087023790022DBB2022B22705AD108707E49F2 +:200BE0000968487801282AD1C888002800F0C5807A48097B026001294FF0030222710BD06F +:200C000002291AD1764B1A70764A774B1A60FFF7E1FDFFF7E9FE0BE07449734A1160704A36 +:200C20001370FFF7D7FDFFF7DFFE6E48FFF796FE44F24D20FFF7F2FDC2E00A2362E0022891 +:200C400021D109232371CA88694B1A801888694A80B210801A884B8892B25A435F4B1A60B3 +:200C60000B7B012B03D0022B09D15E4A00E05F4A5D4B1A60FFF7CEFE5F4B1860A0E00A2304 +:200C8000237103239BE006283CD0032819D005283CE0032B0BD1504A12685278032A04D19E +:200CA00005232371FFF760FF8AE0052A2EE0042B09D152490878022803D1032362700B70E7 +:200CC000052323717CE0052B14D1434B1A685378012B08D1D3880BB10323F2E70623237134 +:200CE000FFF77CFE6CE0062B4DD0032B4BD0052B62D148E0062B0BD137490968497803292B +:200D000003D10823237122705AE0052954D1D8E7072BF6D0082BD4D0092B3CD12E4B1A6857 +:200D20005378022B2DD1D08838B3314952880B882D4D9BB25343294A2F4E13602F68D2F872 +:200D40000080B1F800C0474433681FFA8CFC67449F42284B03D80A8892B21A8019E0366802 +:200D60002D681168721B521A92B21A801A8892B2824208D300221A8005E00A23237109237B +:200D80001DE0062B01D102239BE7032B01D0052B12D1092395E70A2B0ED10F4B1B685B782E +:200DA000032B01D10A238CE7052BFBD0042B03D102232371002302E00A2323710F23237051 +:200DC0002078D0F1010038BF0020BDE8F08100BF230B00201D0B002004030020180B0020CD +:200DE0001C0B002000200008C402002000500008140B0020160B0020C0020020D0020020F2 +:200E0000014B1878704700BF230B002000BFFDE7800000F1804000F5B8400368CA0623F41F +:200E2000E04323F040039BB248BF83F010038A0648BF83F0200303607047800000F18040E7 +:200E400000F5B840036823F4804323F070039BB283F4405303607047800000F1804000F543 +:200E6000B840036823F4E24323F070031B041B0C03607047800000F1804000F5B840036864 +:200E80005B0406D5026848F68F73134043F4804303607047800000F1804000F5B84003687E +:200EA0005B0606D5026848F68F73134043F0400303607047064B1B689BB203EBC00000F1A9 +:200EC000005000F540504000006880B2704700BF505C0040054B1B689BB203EBC000044BE4 +:200EE00003445B00186880B2704700BF505C004004300020044B1B689BB203EBC000034BCD +:200F000003445B0019607047505C0040023000200D4B3E291B689BB203EBC0000B4B0344E7 +:200F20004FEA430209D94B09C80604BF03F1FF339BB29B0243F4004304E04B08C90748BFD4 +:200F400001339B0213607047505C00400630002070B54C4A4C4B116888B20C04188040F176 +:200F6000908047F6FF7111601A88484C02F00F022270002A5FD1464C464D2268464E02F4E5 +:200F800040522A80226802F030023280226822F4804222F0700292B282F4005222602268B7 +:200FA00022F4E04222F0400292B282F0200222601B88D80602D52368190607D5226848F6A5 +:200FC0000F731340236000F061FC12E01A0507D5226840F68F731340236000F069FA08E0AC +:200FE0001804B6D5226840F68F731340236000F0CDFB23682A8823F4804323F070039BB210 +:20100000D10448BF83F480539504214A48BF83F4005313601368318823F4E04323F040039E +:201020009BB2CC0648BF83F01003880648BF83F02003136070BD930003F1804303F5B843FC +:201040001D68290409D5186840F68F7101401960124B013A53F8223098472B067FF579AFAF +:20106000217848F60F728B0003F1804303F5B8431868013902401A60094B53F8213098479E +:2010800067E770BD445C0040CC020020E0020020005C0040D2020020D4020020500000200F +:2010A0003400002008B5074A074B0849136002221A72074B074A1360074A1B6811609847CE +:2010C00008BD00BF04030020E40200206C00002000000020DC0200200003002010B5064C7B +:2010E00018B9236801221A8210BD044B1B681B68984720680A3010BD0403002000030020FB +:2011000010B5064C18B9236801221A8210BD044B1B689B68984720680C3010BD0403002064 +:201120000003002010B5204B18B91B6802221A8210BD1E4A1968002010800C78134614F001 +:201140007F040DD14A7A910644BF0221197012F0400F1A7814BF22F0010242F0010214E030 +:20116000012C1FD0022C1ED1097901F00F02920002F1804202F5B84211F0800F126806D09A +:2011800002F03002102A07D101221A7004E002F44052B2F5805FF6E7054B1B681B69984767 +:2011A000024810BD104610BD040300200A03002000030020234A2DE9F84314689046238AC1 +:2011C000267A214FA3B9042E12D120490A78012A0AD11F4A10681F4A80B202445200136016 +:2011E00030223A800B7027E010233B80072623E0A58AAB428CBF022604269D4228BF1D4661 +:201200002846A369984781460020FFF753FE2A460146484600F068FB29460020FFF76AFEC2 +:20122000238A4FF440525B1B2382638A1D4430233B80094B65821A80D8F800301E72BDE8AB +:20124000F88300BF04030020D4020020240B0020505C004002300020D202002010B50A4B9C +:201260000A491B6849789A7891420AD3D97841B99C8834B99A72064B1B685B6898472046D1 +:2012800010BD022010BD00BF04030020900000200003002038B50E4A0E4C1268236892693A +:2012A00018799978904723689A7A7AB170B95A7962B9DD7855B9084B1B68DB6898472368EE +:2012C00028461A79DA729A781A7338BD022038BDDC020020040300200003002038B52F4B67 +:2012E0001B68187810F07F0004D15A7A22F020025A7238BD02284ED15A88002A4CD15A7979 +:20130000002A49D11A79264D22F08000840004F1804101F5B84109682D7812F0800F14BF4E +:2013200001F0300101F44051A84234D2002932D09B7A83B304F1804404F5B844120623684E +:201340000CD503F03003102B1FD1C4B22046FFF7A1FD20463021FFF75BFD16E003F4405366 +:20136000B3F5805F11D128B90E4B93F83010FFF7CFFD01E0FFF77EFD236823F4804323F073 +:2013800070039BB283F440532360074B1B685B699847002038BD022038BD00BF0403002076 +:2013A00090000020000000200003002038B51D4B1D4D19682D780A7922F08004A30003F1A5 +:2013C000804000F5B840006812F0800F14BF00F0300000F44050AC4222D24C8804BBF8B1D2 +:2013E000897AE9B103F1804303F5B84312F0800F1A6807D022F4E04222F0400292B282F07A +:20140000100206E022F4804222F0700292B282F480521A60054B1B689B699847002038BDA7 +:20142000022038BD04030020900000200003002008B5064B1B685A7A42F020025A72044BC7 +:201440001B68DB699847002008BD00BF0403002000030020054B1A68538A18B98988CB1A82 +:201460001382704708681844704700BF0403002008B50B4B002093F83010FFF749FD094B29 +:201480001B68187A082806D1074B4FF480521A80064B10221A80B0F109035842584108BD6D +:2014A0000000002004030020D2020020D402002073B5964E964B3268964D92B213445B009B +:2014C0001A682B68197A09290FD092B2520002F1804202F5C0421178197051785970918852 +:2014E0005980118999809289DA8001221A72DA885C78002A61D11A7812F07F023AD1092C55 +:2015000002D1FFF7ABFE44E0052C0FD193F90220002A01DA08234DE0DA78002AFAD19A88B0 +:20152000002AF7D19B7A002B37D0F3E7032C13D19A78012A07D0784B20461B685B69984722 +:20154000032828D135E09A88002AF4D15B7A9806F1D5FFF76DFF1CE0012CECD19A78012A83 +:20156000E9D19A88002AE6D15B7A9906E3D5FFF7B5FE0EE0012A04D10B2CDCD1FFF78AFE89 +:2015800007E0022AD7D1012CF1D0032CD3D1FFF70DFF10B1CFE70028BCD132685F4B92B219 +:2015A00013445B0000221A605D4B30221A80062300E009232A681372D4E0062C18D11A789C +:2015C00052067CD1DA78544B012A02D11B68DB696CE0022A02D11B681B6A67E0032A02D116 +:2015E0001B685B6A62E0212A69D11B689B6A5DE0002C3CD15988002961D15A6822F0FF02CD +:20160000B2F5003F5BD11A7812F07F0204D19B88002B00F0AB8052E0012A0CD13E4A187912 +:20162000126892699047002849D12B689B7A002B40F09C8043E0022A41D11B79394803F094 +:201640000F018A0002F1804202F5B8421268007813F0800F14BF02F0300202F44052814284 +:201660002DD213F0700F2AD1002A7FD127E0082C03D11B785B067BD021E00A2C1FD11A786D +:2016800002F07F02012A1AD19A7AC2B15988B1B95A6822F0FF02B2F5803F10D11E4A1879DA +:2016A000126892699047002864D008E03BB12A680024548293612046984720460AE0164B38 +:2016C0001A682B68126958789047032802D1114B1B6805E02B684FF6FF711A8A8A4201D187 +:2016E000092203E0022800D012B908221A7239E093F9001000292FDAD9880191019882422A +:20170000054811D9019A1A821FE000BF505C00400430002004030020DC02002002300020E6 +:20172000D4020020900000208A420ED2016891F830108A4201D2002105E092FBF1F401FB12 +:20174000142212B901210C4A1170026892F830209A82FFF72FFD05E003221A72074B4FF4E2 +:2017600040521A80FFF784FE02B070BD044B9EE7044B9CE7044B9AE7240B0020D20200202D +:2017800025110008DD10000801110008F8B52B4D2C68237A032B01D0052B41D1A369228AAD +:2017A000ABB1A2B1A68A964228BF164630469847238A07469B1B2382638A0020334463821C +:2017C000FFF788FB32460146384600F0A5F8238A53B11B4B00204FF4405201461A80FFF7E3 +:2017E00089FB184B30221A80238AA28A9A4202D82B68032202E01BB12B6805221A720CE0EF +:201800002A6806211172104A1168104A89B20A44520013600B4B30221A802B681B7A06E0C1 +:20182000072B03D10A4B1B68DB68984708232A681372BDE8F840FFF71BBE00BF04030020D4 +:20184000D2020020D4020020505C004002300020DC02002030B50B4B1C780023A3420CD2AD +:2018600003F1805202F5B85291000D6848F68F722A401A430A600133F0E7034B40F0800022 +:20188000186030BD900000204C5C004010B5134C23681A7A022A01D0042A04D1FFF78AFC8C +:2018A00023681B7A13E0062A10D15A78052A09D11A78520606D19878FFF7CCFF084B1B68C1 +:2018C0001B6A9847074B1B689B689847082322681372BDE81040FFF7CBBD00BF040300205A +:2018E00000030020DC02002030B501F10051013201F54051521049000023934200F102004F +:2019000009D010F8015C10F8024C44EA052421F823400133F1E730BD10B501F1005101322C +:2019200001F54051521049000023934205D051F8234020F813400133F7E710BD9504000811 +:20194000810100083F0100084101000829020008CD020008430100088902000895020008E3 +:20196000A1020008C102000800000000400000003D0100083D0100083D0100083D01000899 +:201980003D0100083D0100083D0100083D0100083D0100083D0100083D0100083D01000817 +:2019A0003D0100083D0100084D01000851010008690100086B0100086D0100086F01000817 +:2019C00071010008730100087501000801010000E800002004000000320100201200000020 +:2019E0004C0100201400000019010020100000006001002080000000E00100206C000000AE +:201A00004C0200206C0000001201000100000040AF1E030001020102030100002901002074 +:201A2000090000000403090409022D0001010080320904000000FE0102040904000100FE7F +:201A40000102050904000200FE010206092103FF000008100110034C004C004D00200030DB +:201A60000030003300092103FF000008100112034C006500610066004C00610062007300AF +:201A8000CC0000201200000014034D00610070006C006500200030003000330080035300B9 +:201AA00054004D00330032006400750069006E006F00200062006F006F0074006C006F0052 +:201AC00061006400650072002000760031002E003000200020004500520052004F0052007B +:201AE0002E002000550070006C006F0061006400200074006F002000520041004D00200010 +:201B00006E006F007400200073007500700070006F0072007400650064002E006C0353007E +:201B200054004D00330032006400750069006E006F00200062006F006F0074006C006F00D1 +:201B400061006400650072002000760031002E00300020002000550070006C006F00610083 +:201B60006400200074006F00200046006C0061007300680020003000780038003000300090 +:201B800035003000300030006C03530054004D00330032006400750069006E006F00200079 +:201BA00062006F006F0074006C006F0061006400650072002000760031002E0030002000B5 +:201BC0002000550070006C006F0061006400200074006F00200046006C006100730068006F +:201BE0002000300078003800300030003200300030003000EC0000202D000000005000201A +:201C0000000C00200000000000000000000000000000000000000000000000000000000098 +:201C20000000000000000000000000000000000000000000000000000000000000000000A4 +:201C4000000000000000000000000000000000000000000000000000000000000000000084 +:201C6000000000000000000000000000000000000000000000000000000000000000000064 +:201C8000000000000000000000000000000000000000000000000000000000000000000044 +:201CA000000000000000000000000000000000000000000000000000000000000000000024 +:201CC000000000000000000000000000000000000000000000000000000000000000000004 +:201CE0000000000000000000000000000000000000000000000000000000000000000000E4 +:201D00000000000000000000000000000000000000000000000000000000000000000000C3 +:201D20000000000000000000000000000000000000000000000000000000000000000000A3 +:201D4000000000000000000000000000000000000000000000000000000000000000000083 +:201D6000000000000000000000000000000000000000000000000000000000000000000063 +:201D8000000000000000000000000000000000000000000000000000000000000000000043 +:201DA000000000000000000000000000000000000000000000000000000000000000000023 +:201DC000000000000000000000000000000000000000000000000000000000000000000003 +:201DE0000000000000000000000000000000000000000000000000000000000000000000E3 +:201E00000000000000000000000000000000000000000000000000000000000000000000C2 +:201E20000000000000000000000000000000000000000000000000000000000000000000A2 +:201E4000000000000000000000000000000000000000000000000000000000000000000082 +:201E6000000000000000000000000000000000000000000000000000000000000000000062 +:201E8000000000000000000000000000000000000000000000000000000000000000000042 +:201EA000000000000000000000000000000000000000000000000000000000000000000022 +:201EC000000000000000000000000000000000000000000000000000000000000000000002 +:201EE0000000000000000000000000000000000000000000000000000000000000000000E2 +:201F00000000000000000000000000000000000000000000000000000000000000000000C1 +:201F20000000000000000000000000000000000000000000000000000000000000000000A1 +:201F4000000000000000000000000000000000000000000000000000000000000000000081 +:201F6000000000000000000000000000000000000000000000000000000000000000000061 +:201F8000000000000000000000000000000000000000000000000000000000000000000041 +:201FA000000000000000000000000000000000000000000000000000000000000000000021 +:201FC000000000000000000000000000000000000000000000000000000000000000000001 +:201FE0000000000000000000000000000000000000000000000000000000000000000000E1 +:2020000000500020454A0008014D0008054D0008094D00080D4D0008114D0008614D00082D +:20202000614D0008614D0008614D0008614D0008614D0008614D0008614D000871530008DA +:20204000614D0008614D0008614D0008614D0008614D0008614D0008655000086B500008BC +:2020600071500008775000087D500008A54E0008B54E0008C54E0008D54E0008E54E00086C +:20208000F54E0008054F0008B94D0008614D000875580008614D0008614D000883500008B9 +:2020A000795500089D550008C1550008F555000845560008515600085D5600085551000825 +:2020C0006D5100086151000879510008614D0008614D00083157000849570008615700084A +:2020E0008B500008614D0008614D000810B5054C237833B9044B13B10448AFF3008001234F +:20210000237010BD500F00200000000040D8000808B5064B1BB106480649AFF300800648D9 +:20212000036813B1054B03B1984708BD0000000040D80008540F0020500F002000000000A6 +:2021400008B5094920F0004007F0CAF806F0A0FB03A3D3E9002305F091F806F0AFFE08BD6B +:20216000666666666666F63F00004842AFF3008090F900308B4205D0002300224360028154 +:202180004281C360017070472DE9F743044647680846884606F09CFF0146384606F0ECFF95 +:2021A000E16806F0E1FE0021064607F0A1F9B0B1304605F01FF82E49054607F08FF950B9D6 +:2021C00028464FF0434107F07FF930B9284607F099F9C5B204E07F2502E0802500E00546CE +:2021E00068B206F075FF0146304606F0BBFE2389E06033B1984528BF9846C8EB0303238120 +:202200001BE06689BEB1B04528BFB046C8EB0608404606F05DFF0146384606F0ADFF8146CC +:20222000304606F055FF0146484607F059F8A4F80A80606001E000236360237838465D435B +:2022400000218DF8045007F02BF948B9606800214FF0010507F024F900B90546EDB200E0A3 +:2022600000259DF8040040EA052003B0BDE8F0830000FE4208B504F0D5FC003018BF01209C +:2022800008BD08B504F0CEFCD0F1010038BF002008BD000010B50024044B0421185D013459 +:2022A00004F0F4FB082CF7D110BD00BF0800002038B5074C04F108056078002104F0E6FB7B +:2022C00014F8010F002104F0C3FCAC42F4D138BD2000002008B5FFF7EBFFFFF7DBFF002396 +:2022E000074900225A5407495A5407495A540133082BF5D1BDE808404FF4FA7004F0D8BC73 +:20230000CC0F0020C40F0020940F00202DE9F0410025384E0021384C705D04F099FC4FF4DC +:202320002F7004F0DAFC2078FFF7ABFF80466078FFF7A7FF0746A078FFF7A3FF800040EA1B +:202340004707E078FFF79DFF47EA0807FFB247EAC000C7B22079FFF794FF47EA0010C7B20E +:202360006079FFF78EFF47EA4010C7B2A079FFF788FF47EA8010C7B2E079FFF782FF47EA36 +:20238000C010C4B20121705D04F062FC1B4BEA5C1E46A24206D05C55194B01221A70194AC7 +:2023A00012685A800135082DB3D115480378D3B1144B1A684388D31A142B14D90023002175 +:2023C0000A46B45C1C4104F00104944001322143082AC9B2F5D10C4AD1540133082BEED1C8 +:2023E0000023037002E0012004F062FC0120BDE8F08100BF2100002008000020C40F0020A0 +:20240000C00F0020A8190020CC0F002008B5FFF761FF024B00221A705A8008BDC00F002057 +:2024200008B5302004F0FEFBC0B208BD70B502EBC102D6B2827C1D4604464F4B3AB106EBED +:20244000821233F812104D4B01229A5504E0027C06EB821233F812104FF6FF73994200F03B +:202460008980E9293ED006D8C12915D0E82925D085296DD10AE0F72958D002D8F6294BD04E +:2024800066E0F8295CD0F92955D061E02068012D036811D1DB6861E0012D07D120680368A1 +:2024A000DB689847236883F8615070BD002D61D12068036880F861501B694FE0FFF7B0FF43 +:2024C00001280CD1012D03D120680368DB6804E0002D4FD1206803681B6920213EE0A068AF +:2024E000092112E0FFF79CFF01280CD1012D03D120680368DB6804E0002D3BD120680368E1 +:202500001B69B0212AE0A0680A212A1C18BF0122BDE8704001F0BCBE012D02D1E0686F2150 +:2025200012E0E068BDE8704001F0A6BE012DF8D1E068702108E0012DF3D1E068E92103E0D8 +:20254000012DEED1E068EA21BDE8704001F090BE012D05D12068C9B20368DB68984770BDE6 +:2025600045B92068C9B203681B699847A37C0BB1024B9D5570BD00BFCEE80008F00F0020A9 +:2025800070B50E4BA2B05B5C06461341DB070D46144611D50A2301FB033313440133009322 +:2025A00007492A46234602A807F072FE3046294622460123FFF73AFF22B070BDCC0F002047 +:2025C000CEE90008F0B50F4BA3B05B5C0746134113F001060D46144611D10A2201FB0222AD +:2025E00022440132009208492A46234602A807F04FFE3846294622463346FFF717FF23B0EB +:20260000F0BD00BFCC0F0020E1E900082DE9F84F8046FFF77BFE0024154B5FFA84F9E75C52 +:20262000144B14F803B09A4697EA0B0B04D10134082CF1D1BDE8F88F0025012616EA0B0F73 +:202640000ED03E42404649462A4602D0FFF798FF01E0FFF7B7FF1AF8043073400AF804307C +:202660000135EDB27600082DF6B2E7D1DFE700BFCC0F0020940F002010B50024044B0421DA +:20268000185D013404F002FA112CF7D110BD00BF1000002038B51E2004F01FFB0024254617 +:2026A000154B185DFFF7E6FD80F00100C3B2A3400134112C45EA0305F2D110490B68AB427E +:2026C0000F4B05D001221A700E4A0D6012685A801B780B4A5BB10B4B18685388C31A052B53 +:2026E00005D9094B096819600023137002E0012004F0DEFA012038BD100000206C0F002068 +:2027000050100020A8190020900F002010B50446FFF7B2FFA06840F2FF1101F0C8FDA068DB +:2027200040F2FF1101F0E0FD024B00221A705A8010BD00BF5010002081422EBFC0EB01004E +:202740004042C1EB0000704710B51446FFF7F4FFA04228BF204610BD38B50B4B04461D687E +:20276000038913B94FF47A7308E0006829464FF47A72FFF7E9FF63681844430863604FF48D +:202780007A732560238138BDA819002008B5038953B1406830B106F097FC0146034806F066 +:2027A0009FFD08BD014808BD002008BD00007A442DE9F0411E4B1F4D5A781F4C05F10C06A6 +:2027C000013230465A70FFF7C7FF012104F11000FFF7CEFC2846FFF7D9FF07463046FFF7EE +:2027E000D5FF39460646384606F0C6FC31468046304606F0C1FC0146404606F0B5FB04F037 +:20280000B9FE8046FFF79CFC414606F069FD80464146384606F0B0FC41466060304606F0AA +:20282000ABFC2D8A606125836583BDE8F08100BFBC0F0020341000209C0F00202DE9F041B3 +:202840001E4B1F4D5A781F4C05F10C06013A30465A70FFF781FF4FF0FF3104F11000FFF703 +:2028600087FC2846FFF792FF07463046FFF78EFF39460646384606F07FFC3146804630462D +:2028800006F07AFC0146404606F06EFB04F072FE8046FFF755FC414606F022FD8046414646 +:2028A000384606F069FC41466060304606F064FC2D8A606125836583BDE8F081BC0F002023 +:2028C000341000209C0F00202DE9F0411D4B1E4D1A781E4C013228461A70FFF73DFF012134 +:2028E0002046FFF745FC2846FFF750FF074605F10C00FFF74BFF39460646384606F03CFC82 +:2029000031468046304606F037FC0146404606F02BFB04F02FFE8046FFF712FC414606F08A +:20292000DFFC80464146384606F026FCAD886060258165813046414606F01EFC6061BDE8E5 +:20294000F08100BFBC0F0020341000209C0F00202DE9F0411D4B1E4D1A781E4C013A28466E +:202960001A70FFF7F9FE4FF0FF312046FFF700FC2846FFF70BFF074605F10C00FFF706FF61 +:2029800039460646384606F0F7FB31468046304606F0F2FB0146404606F0E6FA04F0EAFDF2 +:2029A0008046FFF7CDFB414606F09AFC80464146384606F0E1FBAD886060258165813046EC +:2029C000414606F0D9FB6061BDE8F081BC0F0020341000209C0F002043780BB10123837027 +:2029E00070470023437083708088C01A18BF012070470000A24B70B533F811104FF6FF73B1 +:202A000099420446154600F05281EE2900F0BC8018D8872900F0418108D8812927D08229B2 +:202A200000F03B81802940F0428136E1EB295ED002D8EA2942D070BDEC2972D0ED2900F06C +:202A4000898070BDF2291DD005D8F02900F0CB8040F2AF80DBE0F42900F0F780C0F0EB804C +:202A6000F52900F00481FA2900F0E58070BD012A02D10068036815E1002A40F018810068FC +:202A8000036811E1012A01D1A27470BD002A40F00E817C4EAB5D5BB12068A17C03687A4AFE +:202AA00005EB81111B6912F8111098470023AB550135402DEDD10023A37470BDFFF7B0FC79 +:202AC00001280DD1012D03D120680368DB6805E0002D40F0EC80206803681B69DA21E4E0D3 +:202AE000A068C5B10021BDE8704001F0FDBBFFF797FC01280DD1012D03D120680368DB6871 +:202B000005E0002D40F0D380206803681B69D921CBE0A06815B940F2FF11E4E740F2FF31BF +:202B2000E1E7FFF77DFC01280DD1012D03D120680368DB6805E0002D40F0B98020680368B1 +:202B40001B69D821B1E0A068C5B10021BDE8704001F0ADBBFFF764FC01280DD1012D03D1BB +:202B600020680368DB6805E0002D40F0A080206803681B69D72198E0A06815B940F2FF11BE +:202B8000E4E740F2FF31E1E7FFF74AFC01280DD1012D03D120680368DB6805E0002D40F083 +:202BA0008680206803681B696A217EE0A068022112E0FFF735FC01280CD1012D03D12068DB +:202BC0000368DB6804E0002D71D1206803681B696B216AE0A06803212A1C18BF0122BDE896 +:202BE000704001F055BBFFF71BFC01280CD1012D03D120680368DB6804E0002D57D1206818 +:202C000003681B69752150E0A0680121E4E7FFF707FC01280CD1012D03D120680368DB68D3 +:202C200004E0002D43D1206803681B6969213CE0A0680421D0E7012D02D1606801211AE089 +:202C4000002D34D16068012123E0012A836903D15A7000229A8070BD9B781BB94068042183 +:202C600001F002FCA069BDE87040FFF7BABE012A0CD140680221BDE8704001F034BC00BFD1 +:202C8000ACE80008F00F0020CEE800087AB940680221BDE8704001F02BBC2068012DC9B25F +:202CA000036801D1DB6800E01B69984770BD70BD2DE9F8430646114FFFF7ECFC10493A6821 +:202CC0000B68894692EA030816D00025012414EA080F0BD0D9F8002030462240294618BFFC +:202CE0000122FFF787FE3B6863403B600135EDB2112D4FEA4404EAD1BDE8F8834C1000206A +:202D0000900F0020F7B5054672B6344B017F1A89988A8A428CBFC1EB020200221A818842C3 +:202D20002E4A84BFC1EB00009082A8694FF00003477898BF93822A4E838047B3294B7178CA +:202D40001A780A44D2B254B2022194FBF1F4E4B2C4EBC41102EB41021A70ACB1FFF73CFE11 +:202D60000022114600233370737062B611B90AB9002C30D06342686849B252B25BB203B02C +:202D8000BDE8F04001F08EBB22462146EAE7164C2046FFF7F9F9297FADF8000004F1100082 +:202DA000FFF7F2F9ADF80400C2B29DF801009DF80010234620B1002058611F835F83D8610A +:202DC0009DF8050028B10020002458611C835C83D8610024C6E703B0F0BD00BF3410002078 +:202DE000BC0F0020BE0F00209C0F0020104A08B5104B11681868FF221960FFF7A5FC0E4B3B +:202E0000C0B2D8619B6980B29A8882428BBFC0EB0200002298809A800748FFF773FF06489B +:202E2000FFF746FFBDE808400348FFF7EFBB00BFA819002030100020700F002008B52820DB +:202E4000022103F023FE2920022103F01FFE2A20022103F01BFE2B20022103F017FE282088 +:202E60000A49022203F0E0FD2A200949022203F0DBFD29200749022203F0D6FDBDE8084010 +:202E80002B200549022203F0CFBD00BF51290008C92800083D280008B12700082DE9F04128 +:202EA0006B4F8CB038466B4901F032FB38466A4901F030FB6949384601F02EFB642003F0BE +:202EC000D9FD674B002403600226092344608DE84800644B054602941A68634905F148032F +:202EE000083001F05BFD614B85F85A602B60A5F8586005F151034FF0010885F860605C4E15 +:202F00006B6585F85B8085F861805020356003F0B1FD0D2214238DE80C00564B029405461C +:202F20001A68514900F1400301F038FD95F8403085F848402B640F2385F84530202385F8A6 +:202F400046306FF07F0385F84730022385F84930082385F84A3085F84B4085F84C4085F85B +:202F60004D4085F844404820B56003F083FD05238DE80801404B029405461A683A4900F1CB +:202F8000410301F00BFD85F840404420756003F071FD032300930193384B02941A6805462A +:202FA000314900F1400301F0F9FC2B6C062064F317232B643368F56083F8614003F05AFD4A +:202FC0000470447084708480B0611C2034747474B474F47403F04EFD294944600346402265 +:202FE0004FF47A70196098601C745A619A617361DB680790089305910A920B9205A9214ABC +:20300000DB23194806948DF8244001F05BFC1E4B97F874101A6801B9FEE7137B052BFAD160 +:203020001348FFF7F3F91248FFF770FB1048FFF705FF7069154903F0ECFC0221302003F0CE +:2030400025FD4FF47A7003F033FE0CB0BDE8F081AC15002002EA00080EEA000816EA00084E +:2030600018F00008E4010020D40F0020A8EB0008700F0020E0010020E8010020C001002013 +:20308000C8EB0008D0E70008380600201FEA00080C4A01231370402100235160D36053612E +:2030A00053701361084A00211381D36093821360064A516013815381D1605161138353835F +:2030C000D1617047D40F0020341000209C0F002008B51E49422207F005F81D4A0346917D9B +:2030E00090F82600014483F8261093F8360092F82210927A014483F8361093F83D109878B5 +:203100000A4483F83D20134A9178014499709278997A1144997293F82D10114483F82D1083 +:20312000997E1144997693F82210114483F8221093F823100A4483F82320074A12681A871F +:20314000064A1268A3F83F2008BD00BF2AEA00085C000020300000208000002084000020FB +:20316000064A00231360064A1360064A1360064A1360064BFF221A70704700BF6C12002010 +:203180006411002060110020581000205510002007B5074B074A1B680092074A0749019254 +:2031A00007484FF4807200F0C5FE03B05DF804FB6011002058100020551000206C11002096 +:2031C0005C00002002F07F02212A13B514D199B9022805D0222805D1094A03F003031370C8 +:2031E0000C4600E00224074B1B6833B102A901F8010D0220984700E00224204602B010BD20 +:20320000541000206811002037B502F07F02212A05460C461AD1C9B9202807D021280BD199 +:203220000C480721224600F0C3FD06E009480721224600F031FE00E00224074B1B6833B155 +:2032400002A901F8015D0220984700E00224204603B030BD290000206811002037B51A4D2A +:203260001A4C2A6802AB43F8042D04F118004FF48072174900F02EFE019B164A2B6012687E +:203280009B1A154ADBB21268C2F58072934212D294F822309B0003F1804303F5B8431A680C +:2032A00022F4804222F0700242F4004242F0800282F440521A60094B1B6813B10120002127 +:2032C000984703B030BD00BF6C1200205C0000205C10002064110020800000205C11002048 +:2032E000034B002808BF40201881024B186070475C00002084000020002808BF402008B5F0 +:2033000080B200F061FE024B1884024B186008BD5C00002080000020C20744BF034B19600A +:20332000830744BF024B1960704700BF5C1100206811002070B50C4629B31449144A0B681D +:2033400012680D469A1AD2B2C2F1FF02944201D9BAB11446002291B2A14202F1010205D22A +:20336000465C0C49CE540133DBB2F4E72B600A4B1A781206FBD51B781B0604D5FFF708FFB4 +:2033800001E0104670BD204670BD00BF60110020581000206C11002055100020034B18686E +:2033A000034B1B68C01AC0B2704700BF6C120020641100200A4B10B51A680A4B1B689B1A1E +:2033C000DBB2994228BF194600238B4206D0064CA45C0132C454D2B20133F6E7184610BD1C +:2033E000641100206C1200205C10002008B5FFF7E1FF104A13680344DBB213600E4A12688D +:20340000D31ADBB2402B13D80C4B93F822309B0003F1804303F5B8431A6822F4804222F0F7 +:20342000700242F4004242F0800282F440521A6008BD00BF641100206C1200205C00002039 +:203440000B4B10B51B6819440A4BC9B21B685B1ADBB2934238BF1A460023934206D0064CD0 +:20346000645C0131C454C9B20133F6E7184610BD641100206C1200205C100020024B1878EF +:2034800000F00100704700BF54100020014B1868704700BF29000020800000F1804000F590 +:2034A000B840036823F4E04323F0400343F4004343F0800359400160704700000B4B1B685F +:2034C0005A8A20B90A4909888A1A1A8270470949096831B1D8889B8A134498429CBF01237A +:2034E0000B70054B186800B110447047E0190020301400209C12002028140020104B10B5FE +:203500001B685A8A60B90F4CD98824888C4238BF21468A423ABFC2EB01021A82188210BD1F +:203520000949096831B1D8889B8A134498429CBF01230B70054B186800B1104410BD00BFD5 +:20354000E01900209A1200202C140020341400202DE9FF41164B1C68227802F01F03012BA9 +:2035600021D1144B2179D3F800C0134BD3F800800023634517D058F82360376A8FB1B57899 +:203580008D420ED836782E44B1420ADA491BE578A3780095A588C9B20195E4880294B847CF +:2035A00002E00133E5E7022004B0BDE8F08100BFE019002094120020081400202DE9F34119 +:2035C000154B1C68227802F01F03012B1FD1134B2179D3F800C0124BD3F800800023634547 +:2035E00015D058F82360776A7FB1B5788D420CD836782E44B14208DA491BE578A3780095BC +:20360000A488C9B20194B84702E00133E7E7022002B0BDE8F08100BFE01900209412002003 +:203620000814002010B50B4B1B689B7A1BB10A4B05221B681A730024084B1B689C4208D291 +:20364000074B1B6853F824305B6903B198470134F2E710BDE0190020380600209412002087 +:203660000814002010B50024064B1B689C4208D2054B1B6853F824309B6903B1984701345B +:20368000F2E710BD9412002008140020024B04221B681A73704700BF38060020012906D823 +:2036A000044B1B79834294BF0220002070470220704700BFA012002030B5134B05461B689B +:2036C0009A78124B1B7893421CD9114C04EBC2018B889BB954F83200C45C0E4A59002CB17C +:2036E000242B03D00A4454800133F5E78B1C0A49D8B210708880A84228BF2846BDE8304016 +:2037000002F0BCBD002030BDE01900206801002048010020880000206C010020014902F0B5 +:20372000ADBD00BF20010020014902F0A7BD00BF2801002038B5154B00221B6801219A7257 +:20374000134B4FF4E050196412490C681A645A6418644FF43F405A64206018640E4B4FF47C +:203760008010186014460D460C4B1B689C4208D20B4B1B6853F82430DB6803B1984701347F +:20378000F2E72B6800221A7338BD00BFE0190020005C00403806002000E100E094120020C0 +:2037A00008140020034B1B6D03EBC0004300024818447047005C0040046000408B4B2DE97D +:2037C000F74F1B688A4C0025C0229D725A722565226848F68F13134043F400732846236086 +:2037E0001021FFF759FE226D824B5200134480221A60236D40215B0003F1804303F5C0432C +:203800001960226848F68F6313402360284602F053FB2368012523F4804323F0700343F4A9 +:20382000004343F0800383F440532360AC0004F1804404F5B8442368E8B223F4804323F096 +:20384000700343F4004343F0800323602368590406D5226848F68F73134043F480432360E5 +:203860000021FFF719FE23685A0606D5226848F68F73134043F0400323600135082DD5D12D +:203880004FF000085C4B00201B68984580F0A1804FEA880B0746594B1B6853F80B305A7891 +:2038A000974280F090809B6A0C2404FB0734A67AE17AB50005F1804505F5B8452A6848F68E +:2038C0008F1313404E4A01F0030132F81120DFF820A113432B60E37A296813F0040F48F650 +:2038E0008F630CBF00224FF480720B4013432B6063684FEAC60903F14043A3F5C0434FEA6A +:20390000A30CE37A4FEA4C0C1FFA8CFC13F0080FDAF850202CF0010337D04A44520002F113 +:20392000804202F5C0421360304620218DE80810FFF7B2FD9DE80810E27A12F0040F40D052 +:20394000DAF8502025894A44520002F1804202F5C0421360DAF8503009F104026D081A4451 +:2039600052000CEB050302F180429BB202F5C04223F0010313603046FFF714FF21890560E3 +:203980004908304602F098FA1BE009F104094A44520002F1804202F5C0421360E37A5B071A +:2039A00003D43046218902F087FA2B6823F4804323F0700343F4004343F0800383F4405370 +:2039C0002B60013767E71B6903B1984708F1010858E70C4B012218800B4B18800B4B1B68A5 +:2039E0001A7303B0BDE8F04F02F042BEE0190020005C004008600040941200200814002052 +:203A0000740100209A12002030140020380600202DE9F04F884B91B01860884B0122196033 +:203A2000874B08911A700023864A87495A5087495A5004331C2BF7D10024C0210491A146E3 +:203A4000A346A24608998C4200F0AA807A4B1B6853F8245003EB840205932B7809920A931E +:203A6000AB8885F802A04B44C82B01DD0020E0E0734B4FF000081878AB6A0A336A78904516 +:203A80007FD20C2202FB08F20B925A78A3F10A06920644BF0BF10100C0B206960246072A7E +:203AA0006CD8099F0B9E3F68B96A07970E440D9600214FEA810CCDF830C00026A1423AD263 +:203AC000079F97F801C0664535D2DDF814C00C9F5CF807704FF00C0CBF6A0CFB067797F88C +:203AE0000AC00E97944524D197F80BC00D9FCDF80CC0FF7ACCF3C00C0297C7F3C007BC45D3 +:203B000000F09480DDF808C01CF0100F40F08E80039F17F0100F40F0898007F0070CCDF8CB +:203B200038C0DDF808C00CF00707DDF838C0BC457CD10136C2E7A14201D14645C5D30131E1 +:203B4000A142B6D9049E069F710001F1804101F5C04143F8061CFE7A5FFA82FC770733F83C +:203B6000021C39D57C2931D8033121F00301049E314489B2B1F5007F049139D9304B187001 +:203B800074E72F4BDDF828C018703148AB684844E2449847AB8801344B441FFA83F951E72A +:203BA0002C4A2D4B1168012019605168127A59601A7209F1090292B283F804A05A80274BC6 +:203BC0009A80274B0BF101021A7032E03707CBD43F3121F03F01CAE73E2901D9360703D519 +:203BE000013121F00101C2E71F3121F01F01BEE753F80A1C11B9134943F80A1C069F1A708A +:203C0000F97A53F80A6C11F0080F18BF0E4F4FFA8CF108BF0D4F01F1FF3C47F82C6008F14A +:203C200001080C338B45B8BF934627E70132D2B235E711B0BDE8F08F081400209412002054 +:203C400090120020056700080C14002074120020A912002072EA0008A012002020010020F6 +:203C60003001002030B5039D144C08B1208104E06FF0500020721E20607209B1618102E001 +:203C80002420A072E1720E490E48002A08BF0A460D498A600022934208BF03460B618A81CF +:203CA0008A820A4B1DB903221A70257430BD8A8304221A70032323748D6130BD32010020F0 +:203CC000A0EA00086CEA00084801002068010020F8B5294B03221C680C21204601F008FAB2 +:203CE00023684FF080521A61244B1B6823B1DB00013B18460138FDD820460C21042201F0BA +:203D0000F7F9DFF8A8C01E4BBCF800201D4D1E4C1A800FCC0FC50FCC0FC594E80F001B4E77 +:203D200085E80F000FCE1A4D0FC50FCE0FC5374657F820392B60174B174D1B88ACF8003051 +:203D4000A4F1200C0FCDACE80F000FCDACE80F0095E80F0084E80F00104C0FCC0FC70FCCB5 +:203D60000FC723680E4933600E4B0F4A1868BDE8F84001F05BBD00BFF8EE000844010020CE +:203D8000981200209813002054060020A40600207413002030010020ACEA00087CEA000846 +:203DA0000C1400203806002074120020D0060020064B1860064B00201980064B1A60064BDA +:203DC000064A1B689A615882FFF778BB28140020301400209C120020E0190020BD34000872 +:203DE000034600201BB11A689B681044FAE770472DE9F8431D4B80461C681D4B658A38B9D2 +:203E00001868FFF7EDFF401B20824046BDE8F8831C6844B30026334608EB050293421DD2C5 +:203E20002068C0B11F18BD4216D29D428CBFC3EB05010021BA429ABFC3EB0203C1EB0309AC +:203E4000C1EB000963680B48194430444A4606F049F94E4400E01F46A46814B90548BDE854 +:203E6000F8833B46D8E72046BDE8F883E019002070120020C8130020044B054A1860054BE5 +:203E800000201B689A615882FFF7B2BF70120020F13D0008E0190020064B1860064B002018 +:203EA0001980064B1A60064B064A1B689A615882FFF724BB341400209A1200202C1400203C +:203EC000E0190020FD3400080346998800680022FFF76EBFF0B506461448B57A1C68006D0C +:203EE000776800EBC500124D400028580025C0F30900854217D257F815601FFA86FCF6B27C +:203F00000E550134B4FBF2F602FB16446E1C864209D24FEA1C260E550134B4FBF2F602FB47 +:203F200016440235E5E71C60F0BD00BF005C00400C600040F8B5069F06463D6807985B1B9C +:203F4000B3FBF2F402FB1434002CB8BFA41844B903785BB2002B02DCFF23037032E0047080 +:203F600027E001230370338970689C42A8BF1C460023A3421CDA11F805E00135B5FBF2FCA8 +:203F800002FB1C5503F1010CA4455FFA8EFE02DBC0F800E00CE011F805C001354EEA0C2E0D +:203FA00040F804EBB5FBF2FE02FB1E550233E0E73D60B07AFFF7F6FBA3B20360B07A3021ED +:203FC000FFF76AFA2046F8BD11220123834205D2013A02D05B009BB2F8E77047002B18BF2C +:203FE00018467047022830B54FF0000314BF002502250C225A43084CA018A2583AB1C27945 +:2040000002F00202AA4202D182798A4203D00133082BEED1002030BD4C150020044A00232C +:204020001360044A1360044BFF221A70704700BF48140020401400203C14002007B5074B6E +:20404000074A1B680092074A0749019207484FF48072FFF76FFF03B05DF804FB481400205B +:20406000401400203C1400204C140020A801002010B502F07F02212A044619469DF808004A +:2040800027D1012C19D0092C3FD1831E012B3CD8FFF7A8FF0446002837D0C379DB0702D4E2 +:2040A000037A012B2FD02068A18804F1080289B2FFF7F2FE0123237223E0032825D1FFF7B4 +:2040C00091FF034608B3027AFAB10068998889B214E0012A19D1032C0ED0062C15D12228E9 +:2040E00004D10B4B1868FFF7C7FE0AE021280CD10848FFF7E9FE04E0074811460022FFF77B +:2041000057FE002010BD032010BD022010BD00BF44140020B801002038140020114B10B5E1 +:204120000246044603F1180153F8040B8B4242F8040BF9D11B7813700B4BA2789B781344B6 +:20414000A3700A4B227D9B7A13442375084B1868FFF746FE074B20741B68C0F30720607430 +:20416000E38210BDE0EA00087C010020A801002044140020B401002002F07F02212A05D1F4 +:204180000B2803D1024A0020136070470220704738140020431E402B034B28BF4020188143 +:2041A000024B1860704700BFA8010020B4010020014B1860704700BF4414002010B5022885 +:2041C00014BF0020022000230C225A43064901338C18E47904F00204844204BF00248C50D5 +:2041E000082BF1D110BD00BF4C15002008B5054B002202201A60FFF7E1FFBDE8084003200C +:20420000FFF7DCBF3814002070B50C4629B31449144A0B6812680D469A1AD2B2C2F1FF0267 +:20422000944201D9BAB11446002291B2A14202F1010205D2465C0C49CE540133DBB2F4E73F +:204240002B600A4B1A781206FBD51B781B0604D5FFF7F4FE01E0104670BD204670BD00BFD9 +:2042600048140020401400204C1400203C140020A0F8411000F044BB026C6FF31722026417 +:2042800000F03EBB90F84D300BB900F039BB70470123013903FA01F1D0F841300AB10B4342 +:2042A00001E023EA0103C0F84130FFF7EBBF40F2FF32914228BF114690F8452010B502F02B +:2042C0000F0201F00F0442EA041280F8452090F84620C1F3051122F03F02114380F846107D +:2042E000BDE81040FFF7CEBF10B540F2FF32914228BF114690F8462001F0030402F03F02F4 +:2043000042EA8412C1F3870180F8462080F84710BDE81040FFF7B6BF10B50021044606223A +:204320004B3005F055FF002384F8493004F10800BDE8104000F0E4BA38B503680446DB683C +:204340000D46984728B1236820461B6929469847012038BD0023137090F8613073B190F80E +:204360006030002B18BF013090F851309B0705D5A1F16103192B18D82039C9B2080608D40D +:204380000D4B585C030616D50223137000F07F007047872902D97831C8B27047012380390D +:2043A00003FA01F1002011707047A1F14103192BE4D82031E1E770471CEB000813B50DF13B +:2043C00007020446FFF7C6FF18B99DF80700B0B921E00023E21892F84B2082420FD001330F +:2043E000062BF7D10023E21892F84B1011B982F84B0004E00133062BF5D100200BE094F88D +:2044000049309DF8072004F10800134384F8493000F076FA012002B010BD13B50DF1070250 +:204420000446FFF797FF68B10023E21892F84B10814203D1002382F84B3006E00133062B91 +:20444000F3D102E09DF8070060B194F849309DF8072004F1080023EA020384F8493000F054 +:204460004FFA012002B010BD38B50025044680F8435080F8445080F8455080F8401080F893 +:20448000421000F03DFA84F8405084F8425084F8435084F8445084F845502046BDE83840D6 +:2044A00000F02EBA30B590F8405080F8431080F8425080F8442080F84530BDE8304000F084 +:2044C0001FBA90F840208A420CD0002280F8401080F8421080F8432080F8442080F845202B +:2044E00000F00EBA704790F840301943FFF7E9BF90F8403023EA0101FFF7E3BF0022026038 +:204500004260826080F874208281C28102677047016070474160704781607047F7B590F869 +:20452000745004460DBB06462F46236F9F4205D2B36ABBB1B06D9847A0B916E0A368A08992 +:20454000E189009394E80C00FFF78CFB04F11000216FFFF75DFA40B10125FFF7B9FB84F83A +:20456000745002E001370436DFE7284603B0F0BD00230367704770B5056F0024AC420AD0C6 +:2045800005F1160650F82660964207D100EB840636698E4202D1052C02D90DE00134EDE7D2 +:2045A00000EB8406B362049BAC4231613364B26504D30135056701E0002070BD012070BDAF +:2045C0000148FFF79BBF00BFAC15002010B5084904460120FEF7A0FE06490220FEF79CFE8E +:2045E0006069FEF77DFEA069FEF786FE012010BD8946000839460008FEF7D0BE07B5012153 +:204600000DF10700FEF7D6FE01280CBF9DF807004FF0FF3003B05DF804FB07B501210DF1EB +:204620000700FEF7E3FE10B19DF8070001E04FF0FF3003B05DF804FB10B50B78222B20D164 +:20464000104CFEF71BFF2378032B0DD8DFE803F00702070700280CBF0223012303E0002829 +:204660000CBF032301232370FEF710FFB0F5966F07D12378022B04D100200A2100F082FDB5 +:20468000FEE710BD241600201D4B73B51A78022A34D103221A70FEF781FE03282ED9FEF771 +:2046A0007DFE0422011F01A8FEF7CAFE9DF80430312B23D19DF80530452B1FD19DF80630C5 +:2046C000412B1BD19DF80730462B17D10D4C4FF0C2466FF0060544F001040B4B184685469B +:2046E0004FF001002146324604B402B401B401B401B401B401B401B4AE46704702B070BD65 +:20470000241600200D47000800080020024B18460138FDD800F072BDFF340C0007B50023C5 +:20472000024600930349044B0448FFF724FF03B05DF804FB30000020CD450008AC1500204C +:2047400070B50E4615460024AC4205D23019291BFEF74CFE0444F7E7204670BD13B5044605 +:20476000FEF71CFE30B120460DF107010122FFF7E7FFF5E702B010BD08B5064B1B681B7B5C +:20478000052B05D1FEF77AFE003018BF012008BD002008BD3806002070B50E461546FFF7AC +:2047A000EBFF48B146B10024AC4205D23019291BFEF7C0FD0444F7E7002070BD07B502AB1B +:2047C00003F8011D19460122FFF7E6FF002003B05DF804FB38B5054608460C4605F07EFDF4 +:2047E000214602462846FFF7D7FF002038BD10B504464068FFF7CEFC2269A3693AB9802218 +:2048000013E05A791A710AB119680A709B6B002BF7D104F10C0010E0997949B1597919713F +:20482000197909B1186801709B6B002BF4D103E0511C1A71CAB2F3E7A068FFF7B9FC012040 +:2048400010BD000007B50023024600930349044B0448FFF790FE03B05DF804FB7C010020C2 +:20486000EF470008AC1500200AB9037843B300238B63836923B9816106E09A6B1AB113461B +:204880008B42FAD11CE0996382681AB901F11403836006E093680BB11A46FBE701F11403F7 +:2048A000936001F120029A6001F12C038B62002381F8343081F8353081F8363081F837304C +:2048C000704700002DE9F041457804460E46174698468DB90948FFF74BFEC4F80C8027619E +:2048E00065612046FFF7AEFF3046FFF717FFBDE8F0410248FFF712BEBDE8F081AC1500208A +:2049000038B50489056834B128462146FFF77CFC241A0544F7E720462146BDE83840FFF743 +:2049200073BC0346F0B5DD6800200A4698615861586218621863D86255B398791E8A4FF00A +:20494000FF34A8B9B04211D2611C11D12F5C852F04D1441CB44228BF4FF0FF3407F00307CB +:20496000032F16BF01300530C019EBE70121997199799D6109B15E610AE0191D596201216D +:204980005C6119626118E4430D4426441D63DE62D86B1946BDE8F040FFF766BFF8B5069EE1 +:2049A00004469DF81C509DF82070C16322B11168C1605168016101E0C260028225B9013342 +:2049C0002360731E238101E02360268120680021228905F0FDFB65712EB125B11FB92368E5 +:2049E0001D70A77101E00123A37120460021FFF798FF2046F8BD000013B5114C0322D4F8B4 +:204A0000C00094F8CC1000F073FB94F8CC204FF4803101FA02F2D4F8C00003681A61002320 +:204A20000193019BB3F5007F02D2019B0133F7E794F8CC10042200F05BFB02B010BD00BF8B +:204A4000E8EB000801498D460149084700500020554A000808B5124B124A1968914201D013 +:204A6000002301E0104B07E01048D4188442F9D2C858D0500433F7E70D4A934203D20022A3 +:204A800043F8042BF8E705F059F800200146024601F0EAFF074B0BB105F040F8FEE700BF1F +:204AA00024F2000800000020500F0020500F0020F01900201D9B000808B50D4B1A680AB977 +:204AC0000C4A1A601B680C4AD21A824204DB09494242591A914206DA05F01AF80C23036009 +:204AE0004FF0FF3008BD024A18441060184608BD28160020F0190020D0370128FEE701F0BB +:204B0000BBBF00000B4B10B5196809220A230A4801F03CFF094B022219680948032301F048 +:204B200035FFBDE81040074B074819681A221B2301F02CBF700400202C1600207404002046 +:204B400044160020780400205C16002010B5044600F07EF9034B20461978BDE8104000F00D +:204B600013B900BFB4020020F8B50446056800F07FFC22680023510101F184410B60802143 +:204B800029600121A9622B61EB606379696113B18B4203D02BE04FF400436B644FF6FF7367 +:204BA000D36200256E1CF7B22046394600F06AFCD0B1236848F6FF7103F1340242F82510DA +:204BC00018336D1017F0010F53F8252014BF6FF0FF016FF47F4101EA020214BF68214FF483 +:204BE000D0410A4343F82520042E3546DAD1216801224B01490103F1844301F18441C3F810 +:204C000080220A60F8BD000038B5274B274C1A68012042F010021A6000F048FA0025002029 +:204C200000F010FB65602368182023F40023236000F015FB102000F012FB00F043F8A560D7 +:204C4000102000F0FFFA102000F017FB0028FAD000F039F8164800F01DFB182000F0F2FA7C +:204C6000182000F00AFB0028FAD0022000F0DAFA0021104800F0AAFA4BF67F3000F070FBD7 +:204C800000F039F80C4B188800F0D0F80B4800F0D1F80B4800F0D8FBFFF7AEFE00F02DF86B +:204CA000FFF72DFF38BD00BF0020024000100240B802002000200008B60200204D4B0008F0 +:204CC000694B0008704708B50020014600F020FB01204FF4806100F01BFB0021022000F0B4 +:204CE00017FB2D2000F024FBBDE8084003204FF4800100F00DBB00F0E3B900F021BA000063 +:204D0000012007E0022005E0032003E0042001E00520FFE70D4A0121116072B60C4A0021E5 +:204D20001160074902B4084902B486B005498E46704700BFAFF30080AFF30080AFF30080C1 +:204D400000000061F9FFFFFFB568000814ED00E010E000E0AFF30080AFF30080AFF30080C0 +:204D6000FEE710B50446007900F0A0FA2079BDE8104000F0B3BA03689A6822F4602242F416 +:204D80008012114399607047002370B51A461C46072B4FEA430503DCEE1801FA06F634436D +:204DA0001D4401FA05F501330A2B42EA0502EFD10368DC601A6170BD38B5124D2A68136899 +:204DC0001C68A10706D5196821F002011960936803B19847620708D52B681A681B691168D8 +:204DE00021F00401116003B19847E30708D52B681A68DB68116821F00101116003B19847EA +:204E000038BD00BFE4020020036801225B0103F1844303F58673191F1A6018680028FCD11B +:204E200043F8042C0B68002BFCD170470146042000F06EBA044B10B504461868A047034B4F +:204E40001868A04710BD00BFE4020020E002002010B50446FFF785FF20464FF46021FFF7AE +:204E60008AFF2368012103F1404308335A015B0102F1844203F18443116520461960BDE825 +:204E80001040FFF7C1BF38B550F8313004464D1E03B19847AA00012101FA02F223685A606E +:204EA00038BD0000024B01211868FFF7ECBF00BF28030020024B02211868FFF7E4BF00BF1B +:204EC00028030020024B03211868FFF7DCBF00BF28030020024B04211868FFF7D4BF00BFC1 +:204EE00028030020024B05211868FFF7CCBF00BF28030020024B06211868FFF7C4BF00BFBD +:204F000028030020024B07211868FFF7BCBF00BF2803002038B50446274D9DF8100045F849 +:204F20003420012805EBC4056B6004F5022512D00AD3022814D1AB0003F184430122C3F83E +:204F40000021C3F880210BE0AB0003F184430122C3F8002104E0AB0003F18443C3F88001FE +:204F60002046AD0000F096F805F1844501232B600F2C1FD8DFE804F0080A0C0F12151515C7 +:204F800015151A1A1A1A1A1A40220CE080220AE04FF4807207E04FF4007204E04FF4806297 +:204FA00001E04FF40002054B1A6038BD034B4FF480725A6038BD00BF7416002000E100E0B0 +:204FC00007B500930023FFF7A5FF03B05DF804FB01F0030189000F238B408A4010B5046848 +:204FE00024EA03031343036010BD0000084A10B552F83030044653B102EBC00250689847C2 +:20500000012303FA04F4034B5C6100BF00BF10BD7416002000040140104B2DE9F047104D2D +:20502000D3F8149004468A4605EBC0050026984654450CD80127A74017EA090F04D02B6822 +:2050400013B1686898473E4301340835F0E7C8F8146000BF00BFBDE8F08700BF0004014041 +:20506000741600200020FFF7C1BF0120FFF7BEBF0220FFF7BBBF0320FFF7B8BF0420FFF720 +:20508000B5BF05200921FFF7C7BF0A200F21FFF7C3BF000003460A4600F0FC0102480844E3 +:2050A0001946FFF795BF00BF08000140034B1A6822F0070210431860704700BF00200240B1 +:2050C00008B5074801F011FE064801F00EFE064801F00BFEBDE80840044801F006BE00BF84 +:2050E0002C030020340300203C0300204403002070B501F00704A4000F25A5400368C8082B +:2051000053F82060092A26EA050514BF1646082606FA04F4082A44EA050443F8204006D147 +:20512000012000FA01F1DA6822EA010106E0092A05D1012000FA01F1DA681143D96070BD1A +:2051400008B5032000F0B2F8BDE80840032000F0C5B80000014801F0D9BD00BF4C0300205A +:20516000014801F0D3BD00BF84030020014801F0B9BF00BF4C030020014801F0B3BF00BFB4 +:2051800084030020064B45F255521A604CF6CC42586099601A604AF6AA221A60704700BF48 +:2051A0000030004000284FEA011105DA064B00F00F00C9B21954704700F16040C9B200F53D +:2051C000614080F80013704714ED00E021F0604138B521F07F01084B0843986000241D46BE +:2051E00060B20F210134FFF7DDFF2B2CF8D1F02385F8233038BD00BF00ED00E0044A054B44 +:20520000D16801F4E0610B43D360BFF34F8FFEE700ED00E00400FA05014B13F8100070473B +:2052200000EF0008064B5A6822F0030202435A6080005A6802F00C028242FAD1704700BF07 +:2052400000100240030A0121C0B201FA00F003F1804303F504331A68104318607047030A79 +:205260000121C0B201FA00F003F1804303F504331A6822EA000018607047030A0222C0B269 +:2052800002FA00F003F1804303F504331B68184070470000044B05C85968126821F47411B9 +:2052A00002430A435A6070470010024010B50446FFF7B2FF074B53F82020074B03EB44047E +:2052C000637803EBC2039B0003F1844301221A6010BD00BFBC03002000EF000810B50446DC +:2052E000FFF79AFF084B53F82020084B03EB4404637803EBC2039B0003F1844301221A6037 +:2053000000221A6010BD00BFC803002000EF000810B5054B054C5A6854F8200022EA0002E1 +:205320001143596010BD00BF001002405CEF000810B50446FFF770FF074B53F82020074B8C +:2053400003EB4404637803EBC2039B0003F1844300221A6010BD00BFD003002000EF000821 +:20536000024B072258601A60704700BF10E000E008B5044B1A6801321A60034B1B6803B17F +:20538000984708BDA8190020F416002011F0010F70B542EA03030CBF0825002503FA05F5E2 +:2053A000006801F1FF3400F11800C4F3400450F8241014BF6FF0FF066FF47F4631402943A4 +:2053C00040F8241070BDF8B507680546FB683E691E4016F0400403D0046A0CB1A0474024D2 +:2053E000F30604D5AB6913B1984744F01004300704D56B6913B1984744F00804710704D5C4 +:205400002B6913B1984744F00404B20704D5EB6813B1984744F00204F30704D5AB6813B1AD +:20542000984744F00104E4433C61F8BD0368013903F140432033DB0003EB8101890001F1A6 +:20544000844101230B60704710B504460448A0470448A0470448A0470448A04710BD00BFDA +:20546000240400204C040020DC0300200004002010B504460079FFF719FF2079BDE810402D +:20548000FFF72CBF03791E2B10D9212B0ED0202B0ED9222B01D0252B04D102298CBF002048 +:2054A000012070474B1E58425841704701207047002070470368002203F140430C3301EBE3 +:2054C000C3039B0003F1844302311A6040F82120704738B505460C4613460022FFF756FF83 +:2054E00028462146BDE83840FFF7A0BF38B543790446022B0D463ED0042A3CD8DFE802F0E9 +:205500000312202A3600FFF7D5FF2368013D03F140432033DB0003EB85039B0003F18443F2 +:20552000002221E00368002203F140430C3301EBC3039B0003F184431A606022082301E0F5 +:2055400010220023FFF722FF20462946BDE83840FFF76CBF03684FF2F1129A6103229A6003 +:205560005B0103F1844301221A6038BD0122BDE83840FFF7AEBF38BD10B5074B1C68E16806 +:2055800022690A40120605D55B6A1BB198476FF08003236110BD00BF2404002010B5074B83 +:2055A0001C68E16822690A40D20705D59B681BB198476FF00103236110BD00BF240400202D +:2055C000F8B50B4F3D68EB682E691E4016F0400403D03C6A0CB1A0474024B30604D5FB6916 +:2055E00013B1984744F02004E4432C61F8BD00BF24040020F8B5124E3768FB683D691D402E +:2056000015F0100403D0B4690CB1A0471024290704D5736913B1984744F008046A0704D597 +:20562000336913B1984744F00404AB0704D5F36813B1984744F00204E4433C61F8BD00BFF4 +:20564000240400200148FFF7BEBE00BF4C0400200148FFF7B8BE00BFDC0300200148FFF766 +:20566000B2BE00BF00040020D36870B59B0638D513689E0635D513689D0702D41368DC074D +:2056800001D553682DE05568C4888388A4B201349BB29C42EDB2046808D0C6880389B6B27D +:2056A0009BB29E420FD183889BB263B983889BB2E35C86880389B6B29BB29E4235D0838893 +:2056C00001339BB28380C3889BB2E554C4880389A4B29BB29C4217BFC388002301339BB257 +:2056E000C380D368180622D513681B061FD58888CB8880B29BB2984212D088880B6880B234 +:20570000185C8C880B89A4B29BB29C4218BF8B88C0B21ABF01339BB200238B80506070BD2B +:20572000D36823F08003D36070BD0023CAE770BD02480349034AFFF797BF00BF041700200E +:20574000F81600200038014002480349034AFFF78BBF00BF10170020281700200044004096 +:2057600002480349034AFFF77FBF00BF1C1700203417002000480040294B072818BF18700B +:205780001A78052A49D8DFE802F003131E222A35244A4FF6FB71106C014011644FF43F41A5 +:2057A000116406221A70204B1B685A7B1A7370471C4A4FF6FB71106C014011644FF43F41AF +:2057C000116404222AE002225A70032226E05A78013AD2B25A705B780BBB04221BE0114A9B +:2057E000116C89B241F01001116405221A700A225A7070475A78013AD2B25A705B7873B982 +:20580000084A4FF6EF73116C0B401364064B1B685A7B1A730622024B00E006221A7070475C +:20582000B0190020005C00403806002070B50446807B0D461646FFF739FD084A084B094949 +:205840001A60094B09480B600949656008600221A6601B681172984770BD00BFC01900204C +:20586000E0190020B819002054060020A4060020DC190020F8B56C4D6C4B2A685C6C1268D4 +:20588000A4B202F48062224206D06FF480625A64674B1B685B6898472B681B6823409F04AA +:2058A00003D5624A6FF400515164DE0406D55F4B6FF4C0525A640020FFF75EFF2A681168E3 +:2058C000214008050FD5594B186C80B240F0080640F00C001E641864107B507303201073B0 +:2058E0006FF4C0525A648B0503D5504B6FF400725A64CF0506D54D4B6FF480725A6407205E +:20590000FFF73AFF2B681B6803F40043234200F08980464B5A6C110440F184806FF4004165 +:2059200012F00F06596458D1196848F6800008400028EED088B23F4C00F4405525803E4D7F +:2059400000F0300028801868D60620F4804020F0700040F4004040F0800080F4005018606F +:20596000186820F4E04020F0400040F4004040F0800080F02000186001D5080607D51968B6 +:2059800048F60F720A401A6000F08EFE0BE0186840F68F7202401A600A0502D500F09CFC3C +:2059A00001E000F001FE214B22881968288821F4804121F0700141F4004141F080015140BF +:2059C00019601A6822F4E04222F0400242F4004242F0800242401A60F8BDB40004F18044F6 +:2059E00004F5B84427683B040CD5226840F68F7313402A682360926806F18043013B52F89F +:205A000023309847380684D5226848F60F73134023602B6806F180465B68013E53F82630AA +:205A2000984776E7F8BD00BF38060020005C0040B8190020AC190020AE190020800000F18E +:205A4000804000F5B840036823F4804323F0700343F4004343F080035940016070470000ED +:205A600018B9034B07221B681A820248704700BFE01900209C06002037B5114B1A681D46F7 +:205A8000127802F07F02212A01D0022016E0A0F12003012B0B4B0C4C1B6888BF002423B185 +:205AA00002A901F8010D02209847002CEDD02B68002528469C615D82A047284603B030BD53 +:205AC000E019002050190020615A000813B5104B1B681A7802F07F02212A14D1022806D086 +:205AE000222806D19A780B4B02F003021A70002400E00224084B1B6833B102A901F8010D06 +:205B00000220984700E00224204602B010BD00BFE0190020401700205019002021B90228BD +:205B200034BF00200220704702207047044B1B689B7A1BB1034B05221B681A73704700BFF2 +:205B4000E019002038060020024B04221B681A73704700BF38060020054B1B689B78032B63 +:205B600004D8044901EBC30100F088BB00207047E019002084060020014900F07FBB00BF4C +:205B80004C060020014900F079BB00BFC80600200C4B00221B6801219A720B4B4FF4E05085 +:205BA00019640A4909681A645A6418644FF43F405A6408601864064B4FF4801018600A736F +:205BC000704700BFE0190020005C00403806002000E100E02049214B0A681B6870B59B1AD7 +:205BE00013F0FF030E461E4905D10A78013AD2B20A70FAB170BD0120087000211948402BF6 +:205C000028BF40230C46184D11F0010FAD5C01F10101EDB21CBF44EA0525056002F1010248 +:205C20000CBF2C4604309942D2B2ECD3D90748BF046032600D4A0E49106D40000B50536877 +:205C400023F4E04323F0400343F4004343F0800383F03003536070BD5819002044180020F1 +:205C6000481900208061004041170020005C0040146000402DE9F843494B4A4C1B68002597 +:205C80004FF0C0089D7283F809802565236848F68F16334043F400732360236848F2800706 +:205CA00023F4E04323F040033B4383F010032360226D3D4B52004FF0400943F80290236D7F +:205CC00080225B0003F1804303F5C0431A602368284623F4E24323F070031B041B0C236017 +:205CE000324B1B6893F82C1000F0E6F828464FF44051FFF7A3FEA3680220334043F4C0633C +:205D0000A360226D2A4B520013444FF480721A60A368294623F4E04323F040033B4383F029 +:205D20002003A360FFF78AFEE36803203340E360226D204B520013444FF488721A604946B2 +:205D400000F0BAF803204FF44051FFF777FE636801201E406660226D174B520043F802802F +:205D60006368294623F4E04323F040033B4383F020036360FFF762FE104B01221B682846BD +:205D80001A7300F075FC0E4BFF221D600D4B1D600D4B1D600D4B1D600D4B1A70BDE8F8839D +:205DA000E0190020005C004008600040B819002020600040386000401060004038060020EF +:205DC000541900204C19002044180020581900204819002070B50C4611B31249124A0B68BE +:205DE00012680D469A1AD2B2C2F1FF02944201D9A2B11446002291B2A14202F1010205D278 +:205E0000465C0A49CE540133DBB2F4E72B60084B1B781B0604D5FFF7DDFE01E0104670BD2F +:205E2000204670BD44180020581900204117002048190020034B1868034B1B68C01AC0B2DE +:205E4000704700BF541900204C1900200A4B10B51A680A4B1B689B1ADBB2994228BF1946E3 +:205E600000238B4206D0064CA45C0132C454D2B20133F6E7184610BD4C19002054190020ED +:205E80004818002010B5FFF7E1FF094A044613680344DBB21360074A1268D31ADBB2402BD8 +:205EA00004D803204FF44051FFF7C8FD204610BD4C19002054190020104B3E291B6D03EBD7 +:205EC000C0000F4B4FEA400003440ED94A09C80608BF02F1FF32C1F3090108BF92B241F4F7 +:205EE000004141EA82221A6070474A08C80748BF013241EA82211960704700BF005C0040AD +:205F00000C60004010B5064C18B9236801221A8210BD044B1B681B68984720680A3010BD13 +:205F2000E0190020DC19002010B5064C18B9236801221A8210BD044B1B689B6898472068F8 +:205F40000C3010BDE0190020DC19002010B5204B18B91B6802221A8210BD1E4A19680020F0 +:205F600010800C78134614F07F040DD14A7A910644BF0221197012F0400F1A7814BF22F07D +:205F8000010242F0010214E0012C1FD0022C1ED1097901F00F02920002F1804202F5B842E0 +:205FA00011F0800F126806D002F03002102A07D101221A7004E002F44052B2F5805FF6E74F +:205FC000054B1B681B699847024810BD104610BDE0190020B2190020DC190020234A2DE9B5 +:205FE000F84314689046238A267A214FA3B9042E12D120490A78012A0AD11F4A10681F4AAB +:2060000080B202445200136030223A800B7027E010233B80072623E0A58AAB428CBF022608 +:2060200004269D4228BF1D462846A36998478146002000F0CFFB2A460146484600F063FB80 +:206040002946002000F0E2FB238A4FF440525B1B2382638A1D4430233B80094B65821A8016 +:20606000D8F800301E72BDE8F88300BFE0190020AE1900205C190020505C004002300020DE +:20608000AC19002010B50A4B0A491B6849789A7891420AD3D97841B99C8834B99A72064BEF +:2060A0001B685B689847204610BD022010BD00BFE0190020D0060020DC19002038B50E4A71 +:2060C0000E4C12682368926918799978904723689A7A7AB170B95A7962B9DD7855B9084B56 +:2060E0001B68DB689847236828461A79DA729A781A7338BD022038BDB8190020E01900206E +:20610000DC19002038B52F4B1B68187810F07F0004D15A7A22F020025A7238BD02284ED18A +:206120005A88002A4CD15A79002A49D11A79264D22F08000840004F1804101F5B8410968ED +:206140002D7812F0800F14BF01F0300101F44051A84234D2002932D09B7A83B304F180446F +:2061600004F5B844120623680CD503F03003102B1FD1C4B2204600F01CFB2046302100F0CB +:20618000F3FA16E003F44053B3F5805F11D128B90E4B93F82C1000F047FB01E000F0F9FA32 +:2061A000236823F4804323F070039BB283F440532360074B1B685B699847002038BD02206B +:2061C00038BD00BFE0190020D006002054060020DC19002038B51D4B1D4D19682D780A7905 +:2061E00022F08004A30003F1804000F5B840006812F0800F14BF00F0300000F44050AC4267 +:2062000022D24C8804BBF8B1897AE9B103F1804303F5B84312F0800F1A6807D022F4E042E5 +:2062200022F0400292B282F0100206E022F4804222F0700292B282F480521A60054B1B6827 +:206240009B699847002038BD022038BDE0190020D0060020DC19002008B5064B1B685A7AA6 +:2062600042F020025A72044B1B68DB699847002008BD00BFE0190020DC190020054B1A6865 +:20628000538A18B98988CB1A1382704708681844704700BFE019002008B50B4B002093F8F5 +:2062A0002C1000F0C1FA094B1B68187A082806D1074B4FF480521A80064B10221A80B0F1C8 +:2062C00009035842584108BD54060020E0190020AC190020AE19002073B5934E934B3268DA +:2062E000934D92B213445B001A682B68197A09290FD092B2520002F1804202F5C042117842 +:2063000019705178597091885980118999809289DA8001221A72DA885C78002A61D11A7875 +:2063200012F07F023AD1092C02D1FFF7ABFE44E0052C0FD193F90220002A01DA08234DE0E8 +:20634000DA78002AFAD19A88002AF7D19B7A002B37D0F3E7032C13D19A78012A07D0754BDA +:2063600020461B685B699847032828D135E09A88002AF4D15B7A9806F1D5FFF76DFF1CE0B0 +:20638000012CECD19A78012AE9D19A88002AE6D15B7A9906E3D5FFF7B5FE0EE0012A04D156 +:2063A0000B2CDCD1FFF78AFE07E0022AD7D1012CF1D0032CD3D1FFF70DFF10B1CFE700285E +:2063C000BCD132685C4B92B213445B0000221A605A4B30221A80062300E009232A68137280 +:2063E000CEE0062C13D11A78520677D1DA78514B012A02D11B68DB6967E0022A02D11B682B +:206400001B6A62E0032A69D11B685B6A5DE0002C3CD15988002961D15A6822F0FF02B2F5D8 +:20642000003F5BD11A7812F07F0204D19B88002B00F0AA8052E0012A0CD13E4A18791268D2 +:2064400092699047002849D12B689B7A002B40F09B8043E0022A41D11B79394803F00F0191 +:206460008A0002F1804202F5B8421268007813F0800F14BF02F0300202F4405281422DD227 +:2064800013F0700F2AD1002A7ED127E0082C03D11B785B067AD021E00A2C1FD11A7802F00E +:2064A0007F02012A1AD19A7AC2B15988B1B95A6822F0FF02B2F5803F10D11E4A18791268E4 +:2064C00092699047002863D008E03BB12A680024548293612046984720460AE0154B1A68C4 +:2064E0002B68126958789047032802D1104B1B6805E02B684FF6FF711A8A8A4201D1092271 +:2065000003E0022800D012B908221A7238E093F9001000292EDAD98801910198824205489B +:2065200010D9019A1A821EE0505C004004300020E0190020B819002002300020AE190020BA +:20654000D00600208A420ED2016891F82C108A4201D2002105E092FBF1F401FB142212B957 +:2065600001210C4A1170026892F82C209A82FFF735FD05E003221A72074B4FF440521A8047 +:20658000FFF78AFE02B070BD044B9FE7044B9DE7044B9BE75C190020AC1900204D5F0008F7 +:2065A000055F0008295F0008F8B52B4D2C68237A032B01D0052B41D1A369228AABB1A2B1E1 +:2065C000A68A964228BF164630469847238A07469B1B2382638A00203344638200F008F96C +:2065E00032460146384600F0A6F8238A53B11B4B00204FF4405201461A8000F007F9184B90 +:2066000030221A80238AA28A9A4202D82B68032202E01BB12B6805221A720CE02A680621AE +:206620001172104A1168104A89B20A44520013600B4B30221A802B681B7A06E0072B03D106 +:206640000A4B1B68DB68984708232A681372BDE8F840FFF721BE00BFE0190020AC1900208F +:20666000AE190020505C004002300020B819002030B50B4B1C780023A3420CD203F1805289 +:2066800002F5B85291000D6848F68F722A401A430A600133F0E7034B40F08000186030BD15 +:2066A000D00600204C5C004010B5134C23681A7A022A01D0042A04D1FFF790FC23681B7A17 +:2066C00013E0062A10D15A78052A09D11A78520606D19878FFF7CCFF084B1B681B6A98470F +:2066E000074B1B689B689847082322681372BDE81040FFF7D1BD00BFE0190020DC19002043 +:20670000B8190020704730B501F10051013201F54051521049000023934200F1020009D080 +:2067200010F8015C10F8024C44EA052421F823400133F1E730BD01F1005101F540514900BF +:206740005308F0B51C460E46054634B156F8047B013C25F8027BA4B2F7E7D20744BF11F896 +:20676000232000F81320F0BD800000F1804000F5B8400368CA0623F4E04323F040039BB2C8 +:2067800048BF83F010038A0648BF83F0200303607047800000F1804000F5B84003685B043D +:2067A00006D5026848F68F73134043F4804303607047800000F1804000F5B84003685B0603 +:2067C00006D5026848F68F73134043F04003036070470000054B1B689BB203EBC00000F192 +:2067E000005000F54050400000887047505C0040044B1B689BB203EBC000034B03445B009C +:2068000018887047505C004004300020044B1B689BB203EBC000034B03445B0019607047F4 +:20682000505C0040023000200D4B3E291B689BB203EBC0000B4B03444FEA430209D94B098C +:20684000C80604BF03F1FF339BB29B0243F4004304E04B08C90748BF01339B021360704714 +:20686000505C00400630002008B5114B01211C6803222046FEF73CFC002301211A469342E5 +:20688000206834BF02254FF40035B2F5007F056103F1010303D0002A08BF012101E04FF054 +:2068A000FF31B3F5007F04BF52180023E7E700BFFCEE000808B5034B0BB1AFF3008062B6B1 +:2068C000FFF7D2FF00000000C288838892B29BB2C188D31A828889B292B2914203D2028919 +:2068E00092B20132134498B2704710B5036904465868FFF7E9FF90B123695B6899881A687D +:2069000089B2505C99881A8989B292B2914217BF9A880022013292B2C0B29A8010BD4FF051 +:20692000FF3010BD08B503695868FFF7CDFF08BD03695B689988DA8889B292B2914205D012 +:206940009A881B6892B2985CC0B270474FF0FF30704703699A689088D18880B289B28842F6 +:20696000F9D11A6813685B06FCD5704713B504698DF8071020460DF10701012200F0ECFB30 +:206980000028F7D0012002B010BD000030B5002545604FF47A758560024D01610560027515 +:2069A000437530BDF0EF0008F8B505460C4616468F18BC4206D02B6828461B6814F8011B7E +:2069C0009847F6E73046F8BD38B505460C46084641B103F083FC2B6802469B6828462146E1 +:2069E000984738BD38BD08B503681B68984708BD08B503685B68984708BD38B50D2105468A +:206A0000FFF7F1FF0A2104462846FFF7ECFF204438BD38B50446FFF7EBFF05462046FFF7B5 +:206A2000ECFF284438BDFEE7302830B50C4615D8A1B1012A04D0022A0CBF0223002300E039 +:206A40001346074A000115181258287B117922460B39C9B2BDE83040FEF7B2BA30BD00BF7E +:206A6000E8EB0008FEF7D0B808B5FCF717FAFCF7BDF9FCE703F08AB8034B1A6822F0E06218 +:206A800042F080621A60704704000140302870B53BD8082939D8DFE801F0051A080B0E1191 +:206AA000081417000024032213E00024042210E0002422460DE0002409220AE0002408222D +:206AC00007E001240B2204E001240F2201E0002407220E4B00011E18317B1858FEF708FB71 +:206AE000706890B1717B24B10122BDE87040FEF7FDBC0368013903F140432033DB0003EB5E +:206B000081039B0003F184431C6070BDE8EB0008FFF790B907B501210DF10700FFF796F970 +:206B200001280CBF9DF807004FF0FF3003B05DF804FB07B501210DF10700FFF7A3F910B11A +:206B40009DF8070001E04FF0FF3003B05DF804FB002242604FF47A728260014A026070470A +:206B600030F0000870B516460D4631B10E4B1B681B7B052B03D0002070BD084670BD0B4BA4 +:206B80001B782BB928463146BDE87040FFF722B90024B44205D22819311BFFF71BF90444A3 +:206BA000F7E7204670BD00BF380600207019002007B502AB03F8011D19460122FFF7D2FFD3 +:206BC00003B05DF804FB38B5054608460C4603F085FB214602462846BDE83840FFF7C2BFB2 +:206BE00070B50E4615460024AC4205D23019291BFFF748F90444F7E7204670BD13B5044649 +:206C0000FFF718F930B120460DF107010122FFF7E7FFF5E702B010BD0148FFF799BF00BF70 +:206C20006019002030280ED8084B00011A18127B012101FA02F21B581B689B681A420CBF39 +:206C40000020012070470020704700BFE8EB0008302810D8084B00011A18127B1B580120E4 +:206C600000FA02F2D1F1010138BF0021090102FA01F11B6819617047E8EB00080A4B1A68EC +:206C80000A4B9B6800BF00BF074909688A42F5D1C3F53B4330218033B3FBF1F34FF47A70D2 +:206CA00000FB0230704700BFA819002010E000E038B50446FFF7E2FF054644B100F014F836 +:206CC000FFF7DCFF401BB0F57A7F01D2F5E738BD013C05F57A75F3D138BD20B1C000431E75 +:206CE00018460138FDD87047704710B504460079FEF7DCFA2079BDE81040FEF7EFBA0368D0 +:206D00005A6822EA0101596070470000F0B5036885B01A68002501925A69044602928B4A3E +:206D200003951268C260426A960600F1C6804268002A00F0D58151889588C8077ED50299D3 +:206D4000C90704D51288520042F0010280E002998F072AD5012D019A0EDC22F4806201929B +:206D60001A609A690392019A42F4007201921A60002D00F0928113E0022D0BD142F40062EB +:206D800001921A609A690392019A22F4806201921A6005E042F4806201921A609A6903920C +:206DA0005A6842F480625A609AE1029802994606C1F380011AD5E1B9032D01DC012D09D170 +:206DC000D1881B6990684E1CD68043549388013B938007E0AB1E012B04D820464FF48061DB +:206DE000FFF78DFF012D00F37B8156E1002900F07781032D03D1019921F4806104E0022D05 +:206E000004D1019941F4007101911960D1881B6990684E1CD68043549388022D03F1FF33B6 +:206E2000938040F05D81D3889168581CD08020680069C8549388013B93802EE10298C00732 +:206E400008D51DB1596841F480615960128852001A6145E10298870744BF98690390029811 +:206E6000029EC0F3C010760704D4D5F1010638BF002600E00126F6B218B9002E40F02C8125 +:206E80002EE175B1D18896684F1CD780715C013D19619580002800F02381002D40F0208150 +:206EA000A3E0002E00F01C814A0700F1F680019A42F4007201921A60EFE0029A970747D567 +:206EC0009A6985600392039AD60619D4039A12F0800F9A680CD0100408D59A68DD6840F259 +:206EE000013305F0FE0513401D4309E0DD6805E011049D6802D5C5F3090501E0C5F3460505 +:206F0000039B606B13F0040314D038B1C3882BB1E36A03B19847636B0022DA80206B60B144 +:206F2000A36A002205808280154603B19847236BDD8002E008B10580C38023685A6842F4DC +:206F400080625A60032384F82330C9E0A8190020029AD20615D59B69406B039338B1C3883F +:206F60002BB1E36A03B19847636B0022DA8023681968019A42F4806201920A431A600123CE +:206F8000E1E70298029DC0F3800015F0800518BF5D689A6918BFC5F380250392039A12F02C +:206FA000040228D0226B1AB19688D188711A00E0114605F0FF0615B9002800F09180002031 +:206FC0008DF802003AB131B1D0889568471CD7802A5C8DF802209DF80220D2B21A61002942 +:206FE00077D0002E7CD001297AD120464FF48061FFF785FE74E08DF80320029D626B15F0EB +:2070000040051CBF5D68C5F38025EDB21AB19688D188711A00E011468DB190B90029E4DD1A +:207020001B699068DBB28DF80330D388032903F10105D5809DF80320C25451DCD5E70028DA +:207040004ED0032903D1019820F4806004E0022904D1019840F40070019018601B690029AE +:20706000DBB28DF8033006DDD38890685E1CD6809DF80320C254002D32D0236801291B698F +:20708000DBB28DF80330B0DD636BDA889968501CD8809DF803308B54A7E7A38B013B9BB23D +:2070A000A3839BB120464FF48061FFF728FE636803F10C02DB89626013F0010F236814BF54 +:2070C00040F2015240F201121A6009E06360022339E7002E89D103E0002D7FF4D3AEE3E626 +:2070E00005B0F0BD13B5036804465A6900929B690193184B1B68C360009B03F47063836073 +:20710000436A99061CD54FF48061FFF7F8FD23681A6842F480621A60009A520510D5606BE3 +:207120006FF480625A6138B1C3882BB1E36A03B19847636B0022DA80012384F8233007E03B +:20714000236800225A619A61FF2384F82330019B02B010BDA8190020F0B583680546046898 +:2071600000209F88DE88BFB2B6B2B74204D0E36823F08003E36027E026683606F7D5904229 +:20718000F5D00E5C01306660EBE7DF889E88BFB2B6B20137B74211F800C01DD0DF881E899C +:2071A000BFB2B6B2B74213D0DF881E68BFB206F807C0DF881E89BFB2B6B2B74218D0DE88C9 +:2071C0000136B6B2DE8001309042AB68DDD303E09E88B6B2002EE7D19A88DB8892B29BB27F +:2071E0009A4200D1F0BDE36843F08003E360F0BD0026E7E72DE9F04120F00047FC0D7F3CEE +:20720000162C064618DC002C80461DDB194F2741074223D0184901F0A7FE002102F068F98B +:20722000E0B1002E04DD4FF4000343FA04F4A04428EA0700BDE8F081B7F1FF4F0ED3014602 +:2072400001F092FEBDE8F0810B4901F08DFE002102F04EF910B1002E07DB17B93046BDE8B1 +:20726000F0814FF07E50BDE8F0814FF00040BDE8F08100BFFFFF7F00CAF249712DE9F04FDE +:207280008BB01D4680468946144600F0C1F9DFF8ACA206469AF900300F46013304D02046C0 +:2072A000294601F02FF820B9304639460BB0BDE8F08F4046494601F025F8834600282CD189 +:2072C000204629460022002301F09EFD0028EBD0944B9AF90010944E00220120CDE906239F +:2072E0004B1CCDF820B0CDE90289CDE904458DE841000DD002290BD0684601F02BF80028CF +:2073000000F09580089B1BB102F002FC089B0360DDE906010BB0BDE8F08F0022002340468C +:20732000494601F071FDF8B1204629460022002301F06AFD834600284DD07B489AF90030B0 +:20734000CDE904450121002200240025CDE90289CDE90645019000910892002BCCD0714B20 +:207360000022CDE90623D3E73046394600F0C4FF8346002860D0002200233046394601F05E +:2073800043FD002890D04046494600F0B5FF00288AD02046294600F0AFFF002884D09AF968 +:2073A00000306148CDE904450421002200240025022BCDE90289CDE906450190009108923A +:2073C00000F08280684600F0C5FF00287CD0089B002B9DD098E72046294600F08DFF0028B2 +:2073E0003FF462AF204629460022002301F016FD00283FF459AF4C4A9AF8001001230192D9 +:20740000CDF820B0CDE90289CDE9044500930022002934D10023CDE90623684600F09AFF7B +:207420000028D4D102F074FB21230360CFE702F06FFB2123036065E74046494600F05CFF12 +:20744000002898D02046294600F056FF002892D03046394600F056FFB8B9334A9AF80060DE +:2074600001230890CDE90289CDE9044501920093002E2ED100240025CDE90645CDE72B4B49 +:207480000229CDE90623CDD0C7E727499AF90030032201910092CDF820B0CDE90289CDE98F +:2074A0000445404649460022F3B9214F4FF060460023CDE9066701F0B1FC002840D19AF99B +:2074C0000030022B7FF47EAF02F022FB222303607DE70020002102460B4601F057FB022E47 +:2074E000CDE906019ED098E7124F00260023CDE9066701F093FC0028E1D000220E4B2046DB +:20750000294601F019FA04460D4600F02BFF22462B4601F079FC0028D1D1044B0022CDE911 +:207520000623CCE70000F03F50F000080000F0FFFFFFEF470000F07F0000E03FD20600204F +:2075400000220A4B2046294601F0F6F904460D4600F008FF22462B4601F056FC0028AED1A8 +:20756000034B4FF06042CDE90623A8E70000E03FFFFFEFC770B58AB0054600F065FE224C30 +:20758000064694F90030013308D0284600F0F8FF20B12846002101F08DFF10B930460AB0AB +:2075A00070BD1A4901220023284601910092089301F06EF92478CDE90401CDE902017CB92B +:2075C00000220023CDE90623684600F0C3FE88B1089BA3B9DDE9060101F070FC0AB070BDDF +:2075E0000020002102460B4601F0D0FA022CCDE90601E9D102F08CFA21230360E8E702F071 +:2076000087FA089B0360E5E7D206002054F000082DE9F04F23F0004B91B089460F465BEA76 +:207620000201CDE9022314461D46804606462ED0634B29F0004A9A4522DC1FD0604B9B4537 +:207640001EDC77D0002F78DB0022049264BB5C4B9B4500F091805B4B9B4565D0B5F1804FD8 +:2076600000F0F983584B9D421ED1002F1CDB4046494611B0BDE8F04F00F026BD0028DDD0A5 +:207680000AF1404A0AF5801A5AEA060A04D14D49002011B0BDE8F08F4C4811B0BDE8F04FCF +:2076A00000F05ABE002104914046494600F020FEE6B9BAF1000F04D0424B27F040429A42BA +:2076C00014D1002DC0F20884002FE2DA0AF1404ADDF810B00AF5801A5BEA0A0B5ED0049A96 +:2076E000012AD6D101F100431946D2E7FB0F03F1FF3C049B53EA0C034ED0354B9B456DDD7F +:2077000003F104739B4540F3EF83324B9A4540F39C83002D40F39C8327A1D1E90001024681 +:207720000B4601F009F9B4E7002DC0F24B8440464946AEE7002C85D0A2E7274B9B4536DCA4 +:20774000A3F154739B4540F38D834FEA2B5340F21342934240F33E84C3F58663033324FAAE +:2077600003F202FA03F3A3427FF46EAF02F00102C2F10202049269E70AF1404303F5801312 +:20778000334384D0134B9A4540F39E83002DC0F25F83DDE902017CE74046494602460B46F3 +:2077A00000F016FF02460B4601F0F0F971E7022304934BE7AFF300809C7500883CE4377E7B +:2077C0000000F07F0000F03F0000E03FD8F000080000E041FFFFEF3FFFFF3F43BAF5801F01 +:2077E00080F2EE83AA4B0022CDF804C001F0A4F8DDF804C08A466FF034034FEA2A55A54AD3 +:20780000CAF3130AA5F2FF354AF07F541D4492450F9544F4401440F3D0839F4B9A4540F3CC +:20782000EF83DDF83CA000250AF1010ACDF83CA0A4F580142B46994ADB000E931344D3E949 +:207840000067214632463B46CDF804C0CDE90A0100F0BEFE3246804689463B46DDE90A010C +:2078600000F0B8FE02460B4600208D4901F08EF9CDE90C01DDE90C234046494601F05CF849 +:20788000CDE90601DDE906AB611041F0005101F500214B190021CDE908AB0891DDE908ABAA +:2078A00000225046594614461D4601F045F802460B464046494600F08BFE32468046894652 +:2078C0003B462046294600F083FE02460B46DDE90A0100F07DFE02460B465046594601F04D +:2078E0002BF802460B464046494600F071FEDDE90C2301F021F806460F46DDE906010246A3 +:207900000B4601F019F802460B4604460D4601F013F84FA3D3E900238046894620462946A7 +:2079200001F00AF84CA3D3E9002300F053FE22462B4601F001F84AA3D3E9002300F04AFE7E +:2079400022462B4600F0F8FF47A3D3E9002300F041FE22462B4600F0EFFF45A3D3E90023F1 +:2079600000F038FE22462B4600F0E6FF42A3D3E9002300F02FFE02460B464046494600F0B4 +:20798000DBFFDDE9062304460D465046594600F021FE32463B4600F0CFFF22462B4600F0BD +:2079A00019FE5246804689465B465046594600F0C3FF00223B4BCDE90A0100F00BFE424611 +:2079C0004B4600F007FE08980D46044622462B465046594600F0B0FF224682468B462B46C5 +:2079E0003046394600F0A8FF002206460F46204629462C4B00F0ECFDDDE90A2300F0E8FD4B +:207A000002460B464046494600F0E2FDDDE9062300F092FF02460B463046394600F0DAFD24 +:207A20008046894642464B465046594600F0D2FD13A3D3E9002308980D46044600F07CFF67 +:207A400011A3D3E90023CDE90601204629462BE0EF4E454A287ECA3F65DBC9934A86CD3F03 +:207A600001411DA96074D13F4D268F515555D53FFFAB6FDBB66DDB3F033333333333E33FB4 +:207A8000000000E009C7EE3FF5015B14E02F3EBE000040438E98030079B60B0080F000083B +:207AA0000000F03F0000084000F046FF524606460F465B462046294600F08AFD02460B465B +:207AC0004046494600F084FD9FA3D3E9002300F033FF02460B463046394600F07BFDDDF812 +:207AE00038A0AB4B5344D3E9002300F073FD82460F988B4600F0BAFE0E9AA64B04461344C0 +:207B0000D3E900670D4652465B46DDE9060100F061FD32463B4600F05DFD22462B4600F08F +:207B200059FD089822462B468046894600F050FD32463B4600F04CFDDDE9062300F048FD4E +:207B400002460B465046594600F042FDDDF804C082468B46049900224B1E53EA0C030CBFB7 +:207B60008D4B8E4BDDE90201CDE90823DDE90223CDE9042300230493DDE904452B46224640 +:207B800000F026FD42464B4600F0D6FE524606460F465B46DDE9020100F0CEFE02460B46FD +:207BA0003046394600F016FD42464B4682468B462046294600F0C0FE06460F463B465046E0 +:207BC0005946324600F006FD754B8046994289460D4640F34B8101F13F4303F5E003034384 +:207BE00040F012825AA3D3E900235046594600F0F1FC3246CDE902013B464046494600F01C +:207C0000E7FC02460B46DDE9020101F025F9002840F00882CC464FEA2C53A3F2FE334FF45B +:207C2000801018412844C0F30A515E4AA1F2FF3342FA03FEC1F58261C0F3130420EA0E03B9 +:207C4000033144F4801040FA01F1002D0491BCBF4942049100223046394600F0B9FC064697 +:207C60000F463246504659463B4600F0B3FC049A12050292002438A3D3E9002320460D4602 +:207C800000F05AFE3246804689463B462046294600F09EFC02460B465046594600F098FC5D +:207CA0002FA3D3E9002300F047FE2FA3D3E9002306460F462046294600F03EFE02460B46F2 +:207CC0003046394600F086FC06460F4632463B464046494600F07EFC42464B4604460D466E +:207CE00000F076FC02460B463046394600F070FC224682468B4620462B46294600F01CFEE7 +:207D00001BA3D3E9002306460F4600F015FE1AA3D3E9002300F05CFC32463B4600F00CFE4B +:207D200017A3D3E9002300F055FC32463B4600F003FE15A3D3E9002300F04AFC32463B46B9 +:207D400032E000BFAFF30080FD033ADC09C7EE3FFE822B654715973C00000000432EE63F48 +:207D6000EF39FAFE422EE63F396CA80C615C20BED0A4BE726937663EF16BD2C541BDBB3E88 +:207D80002CDE25AF6A56113F93BDBE166CC1663F70F0000860F000080000F0BF0000F03F61 +:207DA000FFFF8F40FFFF0F0000F0C6FDACA3D3E9002300F00FFC32463B4600F0BDFD024622 +:207DC0000B462046294600F003FC06460F4632463B462046294600F0AFFD002280468946CC +:207DE000304639464FF0804300F0F2FB02460B464046494600F0CAFE524606460F462046AA +:207E00005B46294600F098FD52465B4600F0E2FB02460B463046394600F0DAFB22462B469B +:207E200000F0D6FB02460B4600209B4900F0D0FB029C02460C44B4F5801FC0F237812346D8 +:207E4000DDE9080100F078FD23E4002DFFF664AC002000211DE44046494642464B4600F055 +:207E60006BFD16E400210491FFF7F0BB8B4B21F0004C9C4540F3BD8001F17D5303F53C13BC +:207E800003F55053034340F0DB8032463B46CDF804C000F09DFB02460B465046594600F0AE +:207EA000C7FFDDF804C000283FF4B5AEDDE908016DA3D3E9002300F03FFD6BA3D3E90023CE +:207EC00000F03AFDFFF7E5BB002DC1DA039B029803F10041FFF7DDBB02460B4600206E49B2 +:207EE00000F054FEFFF7F0BB6D4B9A45ADDD6A4B9A453FF70EAC0022674BCDF804C000F0AD +:207F000067FB5BA3D3E9002304460D4600F014FD59A3D3E9002306460F462046294600F043 +:207F20000BFD224682468B462B462046294600F003FD00228046894620462946594B00F0E2 +:207F4000FBFC02460B464EA1D1E9000100F040FB22462B4600F0F0FC02460B4600205249B3 +:207F600000F036FB02460B464046494600F0E4FC45A3D3E9002300F0DFFC02460B465046A1 +:207F8000594600F025FB04460D4622462B463046394600F01FFB002032463B46804689460F +:207FA00000F016FB02460B462046294600F010FBDDF804C082468B46CCE500252B463AE4C0 +:207FC00000231AE442464B460020334900F0DEFDFFF75FBB002C7FF465ABC3F5826303336E +:207FE0004BFA03F202FA03F35B4565D00494FFF732BB2D4B9C453FF70EAE049B029339E667 +:208000004FF48025012316E421A3D3E90023DDE9080100F091FC1EA3D3E9002300F08CFC53 +:20802000FFF737BBDDE9080119A3D3E9002300F083FC17A3D3E9002300F07EFCFFF729BBA2 +:2080400009A3D3E90023DDE9080100F075FC06A3D3E9002300F070FCFFF71BBBAFF3008093 +:208060003E5555555555C53F59F3F8C21F6EA501000000604715F73F44DF5DF80BAE543E27 +:20808000555555555555D53FFE822B654715F73F9C7500883CE4377E0000F03FFFCB9040F5 +:2080A000FEFFEF3F0000D03F0000E03F049A00F0E7F902460B46C3E602F00102C2F102020B +:2080C0000492FFF7C8BA00BF21F0004C2DE9F8434FEA1C5CDFF86C814FEA0C5CC4450646BA +:2080E0000F460B46024600F08F8000296FDD0F1578D0A7F2FF37C3F31303F90743F480134D +:2081000060D4D10F4FF0000C01EB43037F105200654616204FF400116C189C424FEAD276D5 +:208120004FEA420202DC1B1B65188C44013806EB43034FEA5101EFD1804620264FF000411A +:2081400009E023D0D40F013E4FEA510104EB43034FEA42021ED0AB4201EB0804F1DD04F04F +:208160000049B9F1004F04EB010809D0A9465B1B944288BF03F1FF33121B08444D46E1E770 +:20818000B8F1000FF2DB05F10109F0E79442E6D91D46D7E71A4304D0431C41D000F0010338 +:2081A000184446084FEA6C031CF0010F03F17F5303F5001318BF46F0004603EB0751304671 +:2081C000BDE8F883D10F01EB4303520099E721F00043034322D051BB0F46D30A153F520526 +:2081E000002BFAD013F480111DD15B00D80201F10101FAD5C1F10100C1F1200422FA04F46F +:2082000007448A40234374E702460B4600F094FB32463B4600F0DEF9BDE8F883BDE8F88370 +:208220000CF1010CBEE7202401200021E6E702460B4600F0CDF902460B4600F0A7FCBDE81C +:20824000F88300BF0000F07F20F00042B2F1FF4FF8B5044603462DD25AB300283DDBB2F5FF +:20826000000F4FEAE0502CD37F38C3F31603C20743F4000348BF5B00002740105B003E4646 +:2082800019244FF08072B5189D4202DC5B1BAE181744013C4FEA43034FEA5202F3D113B17E +:2082A00007F001031F447F1007F17C5707EBC050F8BDF8BD014600F05FFF214600F054FE5C +:2082C000F8BD14F400020FD15B00190202F10102FAD5C2F101021044C6E7014600F042FE96 +:2082E000014600F0FDFFF8BD01221044BCE700BF21F00041704700BF41F0004101F58010FD +:20830000C00F704731F0004310B408D00F4AA3F5801494420AD804205DF8044B70470028F3 +:208320000CBF022003205DF8044B7047B3F5801F01D20320F7E7064A934201D00020F2E7C8 +:20834000D0F1010038BF0020EDE700BFFFFFDF7F0000F07F0020704700200149704700BF2F +:208360000000F87F2DE9F043C1F30A5CACF2FF37132F83B002460B460D46894680464FEA20 +:20838000D17630DC002F4CDB3A49394101EA030010432DD0490801EA030858EA02080CD08A +:2083A0004FF480233B41132F25EA010141EA030914BF4FF000084FF000482F494B4601EB3B +:2083C000C606D6E9004542462046294600F002F9CDE90001DDE9000122462B4600F0F8F84E +:2083E00003B0BDE8F083332F07DDB7F5806F3ED01046194603B0BDE8F083ACF2134C4FF007 +:20840000FF3121FA0CF10142F2D049080142D4D04FF0804848FA0CFC20EA010141EA0C083B +:20842000CBE721F000410143E2D0C3F3130101434C420C431048590C240B490404F4002402 +:2084400044EA010300EBC601D1E900452046294600F0C0F8CDE90001DDE900012B46224665 +:2084600000F0B6F821F0004343EAC671C2E700F0B1F8BFE7FFFF0F0090F000080000000029 +:20848000C1F30A532DE9F041904606460F460A461BBB21F00043034334D0354B002200F0B7 +:2084A0004BFA344B064698450F463BDBC1F30A53363B0A46434440F2FE718B4216DD28A1E1 +:2084C000D1E9000132463B4600F074F824A3D3E9002300F031FABDE8F08140F2FF74A3422B +:2084E00027D0434440F2FE718B42E8DC002B0BDD22F0FF4222F4E00242EA035730463946F3 +:20850000BDE8F081BDE8F08113F1350F17DA4CF250339845D3DC14A1D1E9000132463B4640 +:2085200000F048F810A3D3E9002300F005FABDE8F08102460B4600F04DF8BDE8F08122F07E +:20854000FF4222F4E002363342EA0357304639460022094B00F0F0F9BDE8F081AFF3008077 +:208560009C7500883CE4377E59F3F8C21F6EA50100005043B03CFFFF0000903CAFF30080E9 +:2085800030F0004001D102207047A0F50003B3F1FE4F01D204207047054B421E9A4201D834 +:2085A00003207047B0F1FF4358425841704700BFFEFF7F0030B403F0004321F0004243EA3F +:2085C000020130BC704700BF81F0004102E000BF83F0004330B54FEA41044FEA430594EACB +:2085E000050F08BF90EA020F1FBF54EA000C55EA020C7FEA645C7FEA655C00F0E2804FEAC2 +:208600005454D4EB5555B8BF6D420CDD2C4480EA020281EA030382EA000083EA010180EAA6 +:20862000020281EA0303362D88BF30BD11F0004F4FEA01314FF4801C4CEA113102D04042C8 +:2086400061EB410113F0004F4FEA03334CEA133302D0524263EB430394EA050F00F0A780AC +:20866000A4F10104D5F1200E0DDB02FA0EFC22FA05F2801841F1000103FA0EF2801843FACE +:2086800005F359410EE0A5F120050EF1200E012A03FA0EFC28BF4CF0020C43FA05F3C01802 +:2086A00051EBE37101F0004507D54FF0000EDCF1000C7EEB00006EEB0101B1F5801F1BD3FB +:2086C000B1F5001F0CD349085FEA30004FEA3C0C04F101044FEA445212F5800F80F09A80C2 +:2086E000BCF1004F08BF5FEA500C50F1000041EB045141EA050130BD5FEA4C0C404141EBE4 +:20870000010111F4801FA4F10104E9D191F0000F04BF01460020B1FA81F308BF2033A3F1D8 +:208720000B03B3F120020CDA0C3208DD02F1140CC2F10C0201FA0CF021FA02F10CE002F1A4 +:208740001402D8BFC2F1200C01FA02F120FA0CFCDCBF41EA0C019040E41AA2BF01EB04513A +:20876000294330BD6FEA04041F3C1CDA0C340EDC04F11404C4F1200220FA04F001FA02F3E2 +:2087800040EA030021FA04F345EA030130BDC4F10C04C4F1200220FA02F001FA04F340EAB6 +:2087A0000300294630BD21FA04F0294630BD94F0000F83F4801306BF81F480110134013D14 +:2087C0004EE77FEA645C18BF7FEA655C29D094EA050F08BF90EA020F05D054EA000C04BF7B +:2087E0001946104630BD91EA030F1EBF0021002030BD5FEA545C05D14000494128BF41F08E +:20880000004130BD14F580043CBF01F5801130BD01F0004545F0FE4141F470014FF000009F +:2088200030BD7FEA645C1ABF194610467FEA655C1CBF0B46024650EA013406BF52EA03354E +:2088400091EA030F41F4002130BD00BF90F0000F04BF0021704730B54FF4806404F1320428 +:208860004FF000054FF0000150E700BF90F0000F04BF0021704730B54FF4806404F132041D +:2088800010F0004548BF40424FF000013EE700BF42004FEAE2014FEA31014FEA02701FBF94 +:2088A00012F07F4393F07F4F81F06051704792F0000F14BF93F07F4F704730B54FF4607462 +:2088C00001F0004521F0004120E700BF50EA010208BF704730B54FF000050AE050EA01023F +:2088E00008BF704730B511F0004502D5404261EB41014FF4806404F132045FEA915C3FF42D +:20890000DCAE4FF003025FEADC0C18BF03325FEADC0C18BF033202EBDC02C2F1200300FA74 +:2089200003FC20FA02F001FA03FE40EA0E0021FA02F11444C1E600BF70B54FF0FF0C4CF47D +:20894000E06C1CEA11541DBF1CEA135594EA0C0F95EA0C0F00F0DEF82C4481EA030621EA2E +:208960004C5123EA4C5350EA013518BF52EA033541F4801143F4801338D0A0FB02CE4FF0B1 +:208980000005E1FB02E506F00042E0FB03E54FF00006E1FB03569CF0000F18BF4EF0010EDB +:2089A000A4F1FF04B6F5007F64F5407404D25FEA4E0E6D4146EB060642EAC62141EA55519E +:2089C0004FEAC52040EA5E504FEACE2EB4F1FD0C88BFBCF5E06F1ED8BEF1004F08BF5FEA73 +:2089E000500E50F1000041EB045170BD06F0004646EA010140EA020081EA0301B4EB5C0422 +:208A0000C2BFD4EB0C0541EA045170BD41F480114FF0000E013C00F3AB8014F1360FDEBF03 +:208A2000002001F0004170BDC4F10004203C35DA0C341BDC04F11404C4F1200500FA05F383 +:208A400020FA04F001FA05F240EA020001F0004221F0004110EBD37021FA04F642EB0601DE +:208A60005EEA430E08BF20EAD37070BDC4F10C04C4F1200500FA04F320FA05F001FA04F28C +:208A800040EA020001F0004110EBD37041F100015EEA430E08BF20EAD37070BDC4F1200553 +:208AA00000FA05F24EEA020E20FA04F301FA05F243EA020321FA04F001F0004121FA04F2F6 +:208AC00020EA020000EBD3705EEA430E08BF20EAD37070BD94F0000F0FD101F00046400098 +:208AE00041EB010111F4801F08BF013CF7D041EA060195F0000F18BF704703F000465200FA +:208B000043EB030313F4801F08BF013DF7D043EA0603704794EA0C0F0CEA135518BF95EA75 +:208B20000C0F0CD050EA410618BF52EA4306D1D181EA030101F000414FF0000070BD50EA78 +:208B4000410606BF1046194652EA430619D094EA0C0F02D150EA013613D195EA0C0F05D1B5 +:208B600052EA03361CBF104619460AD181EA030101F0004141F0FE4141F470014FF000001F +:208B800070BD41F0FE4141F4780170BD70B54FF0FF0C4CF4E06C1CEA11541DBF1CEA1355AD +:208BA00094EA0C0F95EA0C0F00F0A7F8A4EB050481EA030E52EA03354FEA013100F0888008 +:208BC0004FEA03334FF0805545EA131343EA12634FEA022245EA111545EA10654FEA002666 +:208BE0000EF000419D4208BF964244F1FD0404F5407402D25B084FEA3202B61A65EB030509 +:208C00005B084FEA32024FF480104FF4002CB6EB020E75EB030E22BFB61A754640EA0C007E +:208C20005B084FEA3202B6EB020E75EB030E22BFB61A754640EA5C005B084FEA3202B6EBDF +:208C4000020E75EB030E22BFB61A754640EA9C005B084FEA3202B6EB020E75EB030E22BF8E +:208C6000B61A754640EADC0055EA060E18D04FEA051545EA16754FEA06164FEAC30343EA9A +:208C800052734FEAC2025FEA1C1CC0D111F4801F0BD141EA00014FF000004FF0004CB6E7ED +:208CA00011F4801F04BF01430020B4F1FD0C88BFBCF5E06F3FF6AFAEB5EB030C04BFB6EB4F +:208CC000020C5FEA500C50F1000041EB045170BD0EF0004E4EEA113114EB5C04C2BFD4EB8D +:208CE0000C0541EA045170BD41F480114FF0000E013C90E645EA060E8DE60CEA135594EA5E +:208D00000C0F08BF95EA0C0F3FF43BAF94EA0C0F0AD150EA01347FF434AF95EA0C0F7FF474 +:208D200025AF104619462CE795EA0C0F06D152EA03353FF4FDAE1046194622E750EA410695 +:208D400018BF52EA43067FF4C5AE50EA41047FF40DAF52EA43057FF4EBAE12E74FF0FF3C20 +:208D600006E000BF4FF0010C02E000BF4FF0010C4DF804CD4FEA410C7FEA6C5C4FEA430CC0 +:208D800018BF7FEA6C5C1BD001B050EA410C0CBF52EA430C91EA030F02BF90EA020F002059 +:208DA000704710F1000F91EA030F58BF994208BF90422CBFD8176FEAE37040F00100704766 +:208DC0004FEA410C7FEA6C5C02D150EA013C07D14FEA430C7FEA6C5CD6D152EA033CD3D03C +:208DE0005DF8040B704700BF8446104662468C461946634600E000BF01B5FFF7B7FF0028CE +:208E000048BF10F1000F01BD4DF808EDFFF7F4FF0CBF012000205DF808FB00BF4DF808EDFD +:208E2000FFF7EAFF34BF012000205DF808FB00BF4DF808EDFFF7E0FF94BF012000205DF810 +:208E400008FB00BF4DF808EDFFF7CEFF94BF012000205DF808FB00BF4DF808EDFFF7C4FFB5 +:208E600034BF012000205DF808FB00BF4FEA410212F5001215D211D56FF47873B3EB6252A5 +:208E800012D94FEAC12343F0004343EA505311F0004F23FA02F018BF404270474FF00000D6 +:208EA000704750EA013005D111F0004008BF6FF0004070474FF00000704700BF4FEA41022B +:208EC000B2F1E04324BFB3F5001CDCF1FE5C0DD901F0004C4FEAC0024CEA5070B2F1004FF8 +:208EE00040EB830008BF20F00100704711F0804F21D113F13872BCBF01F00040704741F42D +:208F000080114FEA5252C2F11802C2F1200C10FA0CF320FA02F018BF40F001004FEAC123FD +:208F20004FEAD32303FA0CFC40EA0C0023FA02F34FEA4303CCE77FEA625307D150EA01331F +:208F40001EBF4FF0FE4040F44000704701F0004040F0FE4040F40000704700BF80F0004093 +:208F600002E000BF81F0004142001FBF5FEA410392EA030F7FEA226C7FEA236C6AD04FEA01 +:208F80001262D2EB1363C1BFD218414048404140B8BF5B42192B88BF704710F0004F40F45D +:208FA000000020F07F4018BF404211F0004F41F4000121F07F4118BF494292EA030F3FD033 +:208FC000A2F1010241FA03FC10EB0C00C3F1200301FA03F100F0004302D5494260EB4000D4 +:208FE000B0F5000F13D3B0F1807F06D340084FEA310102F10102FE2A51D2B1F1004F40EB4E +:20900000C25008BF20F0010040EA03007047490040EB000010F4000FA2F10102EDD1B0FAFD +:2090200080FCACF1080CB2EB0C0200FA0CF0AABF00EBC25052421843BCBFD0401843704770 +:2090400092F0000F81F4000106BF80F400000132013BB5E74FEA41037FEA226C18BF7FEA11 +:20906000236C21D092EA030F04D092F0000F08BF0846704790EA010F1CBF0020704712F073 +:209080007F4F04D1400028BF40F00040704712F100723CBF00F50000704700F0004343F05D +:2090A000FE4040F4000070477FEA226216BF08467FEA23630146420206BF5FEA412390EA11 +:2090C000010F40F4800070474FF0000304E000BF10F0004348BF40425FEA000C08BF704791 +:2090E00043F0964301464FF000001CE050EA010208BF70474FF000030AE000BF50EA0102FF +:2091000008BF704711F0004302D5404261EB41015FEA010C02BF84460146002043F0B64332 +:2091200008BFA3F18053A3F50003BCFA8CF2083AA3EBC25310DB01FA02FC634400FA02FCCA +:20914000C2F12002BCF1004F20FA02F243EB020008BF20F00100704702F1200201FA02FC63 +:20916000C2F1200250EA4C0021FA02F243EB020008BF20EADC7070474FF0FF0C1CEAD0520F +:209180001EBF1CEAD15392EA0C0F93EA0C0F6FD01A4480EA010C400218BF5FEA41211ED0D3 +:2091A0004FF0006343EA501043EA5111A0FB01310CF00040B1F5000F3EBF490041EAD3717E +:2091C0005B0040EA010062F17F02FD2A1DD8B3F1004F40EBC25008BF20F00100704790F0DA +:2091E000000F0CF0004C08BF49024CEA502040EA51207F3AC2BFD2F1FF0340EAC2507047D3 +:2092000040F400004FF00003013A5DDC12F1190FDCBF00F000407047C2F10002410021FAA6 +:2092200002F1C2F1200200FA02FC5FEA310040F1000053EA4C0308BF20EADC70704792F0E1 +:20924000000F00F0004C02BF400010F4000F013AF9D040EA0C0093F0000F01F0004C02BFE5 +:20926000490011F4000F013BF9D041EA0C018FE70CEAD15392EA0C0F18BF93EA0C0F0AD0E4 +:2092800030F0004C18BF31F0004CD8D180EA010000F00040704790F0000F17BF90F0004FEF +:2092A000084691F0000F91F0004F14D092EA0C0F01D142020FD193EA0C0F03D14B0218BFFF +:2092C000084608D180EA010000F0004040F0FE4040F40000704740F0FE4040F440007047DA +:2092E0004FF0FF0C1CEAD0521EBF1CEAD15392EA0C0F93EA0C0F69D0A2EB030280EA010C84 +:2093000049024FEA402037D04FF0805343EA111143EA10130CF000408B4238BF5B0042F123 +:209320007D024FF4000C8B4224BF5B1A40EA0C00B3EB510F24BFA3EB510340EA5C00B3EB1D +:20934000910F24BFA3EB910340EA9C00B3EBD10F24BFA3EBD10340EADC001B0118BF5FEA9D +:209360001C1CE0D1FD2A3FF650AF8B4240EBC25008BF20F0010070470CF0004C4CEA502022 +:209380007F32C2BFD2F1FF0340EAC250704740F400004FF00003013A37E792F0000F00F093 +:2093A000004C02BF400010F4000F013AF9D040EA0C0093F0000F01F0004C02BF490011F435 +:2093C000000F013BF9D041EA0C0195E70CEAD15392EA0C0F08D142027FF47DAF93EA0C0FC0 +:2093E0007FF470AF084676E793EA0C0F04D14B023FF44CAF08466EE730F0004C18BF31F041 +:20940000004CCAD130F000427FF45CAF31F000437FF43CAF5FE700BF4FF0FF3C06E000BF9F +:209420004FF0010C02E000BF4FF0010C4DF804CD4FEA40024FEA41037FEA226C18BF7FEAAE +:20944000236C11D001B052EA530C18BF90EA010F58BFB2EB030088BFC81738BF6FEAE17071 +:2094600018BF40F0010070477FEA226C02D15FEA402C05D17FEA236CE4D15FEA412CE1D0C4 +:209480005DF8040B704700BF844608466146FFE70FB5FFF7C9FF002848BF10F1000F0FBDC0 +:2094A0004DF808EDFFF7F4FF0CBF012000205DF808FB00BF4DF808EDFFF7EAFF34BF012039 +:2094C00000205DF808FB00BF4DF808EDFFF7E0FF94BF012000205DF808FB00BF4DF808ED61 +:2094E000FFF7D2FF94BF012000205DF808FB00BF4DF808EDFFF7C8FF34BF012000205DF87A +:2095000008FB00BF4FEA4002B2F1FE4F0FD34FF09E03B3EB12620DD94FEA002343F0004392 +:2095200010F0004F23FA02F018BF404270474FF00000704712F1610F01D1420205D110F068 +:20954000004008BF6FF0004070474FF0000070474BB942B9002908BF002802D04FF0FF3160 +:20956000084600F03BB882B0EC462DE9005000F01DF8DDF804E002B00CBC70472DE9704F2C +:20958000089E14461D468046894600F029F804FB01F3A4FB00AB00FB05329344B8EB0A08C7 +:2095A00069EB0B09C6E90089BDE8708F2DE9704F089E14461D468046894600F061F900FB55 +:2095C00005F5A0FB04AB04FB0154A344B8EB0A0869EB0B09C6E90089BDE8708F704700BF9D +:2095E00000292DE9F00FC0F2A1800024002BC0F29880154606460F46002B3FD18A4258D90D +:20960000B2FA82F34BB1C3F1200201FA03F720FA02F29D4000FA03F61743290CB7FBF1F260 +:2096200001FB1277A8B200FB02F34FEA164C4CEA0747BB4209D97F1902F1FF3C80F00581A1 +:20964000BB4240F20281023A2F44FF1AB7FBF1F301FB137100FB03F0B6B246EA01418842E8 +:2096600008D9491903F1FF3780F0F180884240F2EE80023B43EA0242002303E08B420AD9CE +:2096800000231A461046194614B1404261EB4101BDE8F00F7047B3FA83F8B8F1000F40F052 +:2096A00088808B4202D3824200F2E28000230122E8E712B90123B3FBF2F5B5FA85F2002AFF +:2096C0003AD17F1B280C1FFA85FC0123B7FBF0F100FB11770CFB01F24FEA164848EA0747CC +:2096E000BA4207D97F1901F1FF3802D2BA4200F2C4804146BF1AB7FBF0F200FB12700CFB4F +:2097000002FCB6B246EA0040844507D9401902F1FF3702D2844500F2AE803A4642EA01429C +:20972000B0E7E443524263EB430362E7404261EB41014FF0FF3459E79540C2F1200927FA66 +:2097400009F126FA09F99740280CB1FBF0F800FB18111FFA85FC0CFB08F349EA07094FEA12 +:20976000194747EA01418B4206FA02F608D9491908F1FF327AD28B4278D9A8F1020829446A +:20978000C91AB1FBF0F300FB13170CFB03F21FFA89F949EA0747BA4207D97F1903F1FF3182 +:2097A00060D2BA425ED9023B2F44BF1A43EA08438CE7C8F1200225FA02F103FA08FC27FAC1 +:2097C00002F320FA02F207FA08F741EA0C0C4FEA1C49B3FBF9F109FB11331FFA8CFA0AFB21 +:2097E00001FB17433A0C42EA03439B4505FA08F008D913EB0C0301F1FF3235D29B4533D980 +:2098000002396344CBEB0303B3FBF9F209FB12330AFB02FABFB247EA0347BA4508D917EBF9 +:209820000C0702F1FF331BD2BA4519D9023A674442EA0145A5FB0001CAEB07078F424FF045 +:2098400000030AD305D02A461CE76246FDE63B4610E706FA08F68642F5D26A1E002311E7AD +:209860001A46E5E70B46A0E71146CBE7904687E74346424606E7023A50E702392F4439E758 +:209880002DE9F00F144605460E46002B43D18A4253D9B2FA82F757B1C7F1200620FA06F662 +:2098A00001FA07F302FA07F400FA07F51E43210CB6FBF1F201FB1266A0B200FB02F32F0CB3 +:2098C00047EA0646B34209D9361902F1FF3780F0FD80B34240F2FA80023A2644F61AB6FBC7 +:2098E000F1F301FB136100FB03F0ADB245EA0141884208D9091903F1FF3680F0E9808842BD +:2099000040F2E680023B43EA0242002310461946BDE8F00F70478B424CD8B3FA83F6002E89 +:209920004FD18B4202D3824200F2DD80BDE8F00F0023012210461946704712B90124B4FB5D +:20994000F2F4B4FA84F2002A40F08280091B260CA7B20123B1FBF6F006FB101107FB00F226 +:209960004FEA154C4CEA01418A4207D9091900F1FF3C02D28A4200F2C8806046891AB1FB0C +:20998000F6F206FB121107FB02F7ADB245EA0145AF4208D92C1902F1FF3180F09B80A7423E +:2099A00040F29880023A42EA004210461946BDE8F00F704700231A4610461946BDE8F00FC7 +:2099C0007047C6F1200522FA05F703FA06F421FA05F301FA06FB20FA05F53C434FEA1448AE +:2099E000B3FBF8FC08FB1C331FFA84F909FB0CFA45EA0B0B4FEA1B4545EA03439A4502FAA5 +:209A000006F204D91B190CF1FF356FD3AC46CAEB0303B3FBF8F508FB153309FB05F91FFA1C +:209A20008BFB4BEA0347B94504D93F1905F1FF3362D31D4645EA0C4CACFB0223C9EB070719 +:209A40009F424FF000054AD346D062462B465DE79440C2F1200921FA09FC914020FA09F994 +:209A6000260CBCFBF6F806FB18CCA7B207FB08F349EA01094FEA194141EA0C4C634500FADF +:209A800002F509D91CEB040C08F1FF323BD2634539D9A8F10208A444C3EB0C0CBCFBF6F3F4 +:209AA00006FB13C107FB03F21FFA89F949EA01418A4207D9091903F1FF3022D28A4220D920 +:209AC000023B2144891A43EA084343E73A4605E7334618E70A4666E7B0409042B5D20CF1D8 +:209AE000FF32002312E7334632460FE79A458DD9ACF1020C23448AE7B9459AD9023D27444F +:209B000098E70346DEE79046C6E70238214435E7014B1868704700BF000B002008B500212F +:209B2000044601F085FE044B1868C36B03B198472046FAF7E3FF00BFA4F0000870B50F4EC1 +:209B40000F4D761BB61007D0043D0024013455F8043F9847A642F9D10A4E0B4D03F070FEAF +:209B6000761BB61008D0043D0024013455F8043F9847A642F9D170BD70BD00BF4CD80008B6 +:209B80004CD8000868D800084CD80008024B0146186800F00BB800BF000B0020024B0146E0 +:209BA000186802F0DFBE00BF000B00202DE9F04F01F10B05162D83B0064627D935F0070562 +:209BC00027D4A94225D8304600F04CFBB5F5FC7F26D2C14F4FEAD50C07EBCC03DC689C42CB +:209BE00000F0D2816368E26823F0030323445868A16840F00105CA60304691605D6000F050 +:209C000033FB0834204603B0BDE8F08F1025A942D9D900240C232046336003B0BDE8F08FA8 +:209C20005FEA552C00F08980BCF1040F00F260814FEA951C0CF1380C4FEA4C01A64F07EB36 +:209C40008101CC68A14205D10CE0002B79DAE468A14207D0626822F00302531B0F2BF4DDCB +:209C60000CF1FF3C0CF1010C9B4B3C6903F1080E744500F07E81616821F003014A1B0F2AE9 +:209C800000F36481002AC3F814E0C3F810E069DAB1F5007F80F03A81C9088A104FF0010822 +:209CA00008FA02F803EBC1015A68886848EA0202A060E1605A608C60C4604FEAAC030120FC +:209CC000984090425BD8024206D12CF0030C400002420CF1040CFAD007EBCC084446E1468F +:209CE000E3689C4207D146E1002A80F25781DB689C4200F04081596821F003014A1B0F2A82 +:209D0000F2DD1C4654F808CFD96845F0010942F001081D44C3F804903046CCF80C10C1F875 +:209D200008C07D613D61C5F80CE0C5F808E0C5F80480AA5000F098FA64E77E214FF03F0C60 +:209D40007CE722445068E368A16840F00105CB6030469960556000F087FA0834204603B0E3 +:209D6000BDE8F08F21444B68304643F001034B6000F07AFA0834204603B0BDE8F08FBC684E +:209D8000636823F00309A94504D3C5EB09030F2B00F39180514B524A1968136805EB010AEB +:209DA000013304EB090B00F061810AF5805A0AF10F0A2AF47F6A2AF00F0A304651460192D3 +:209DC00000F054FAB0F1FF3F8046019A00F00181834500F2FB80DFF814C1C345DCF80030A6 +:209DE0005344CCF8003000F04A8112683C4901321BBFCBEB080B5B44C1F80080CCF800307C +:209E000018F0070300F01481C3F10802C3F5805390440833C244CAF30B0ACAEB030A514622 +:209E20003046CDF804C000F021FA431CDDF804C000F03581C8EB0002524442F00102DCF826 +:209E40000030BC425344C7F80880CCF80030C8F80420DFF898A015D0B9F10F0F40F2EB80C5 +:209E60006168A9F10C0222F0070201F0010142EA010E0520A1180F2AC4F804E048608860E1 +:209E800000F21181174ABC6811688B4288BF1360154A11688B4288BF1360626822F0030279 +:209EA0009542C5EB020301D80F2B04DC304600F0DBF90024A6E645F0010243F00103254461 +:209EC00062603046BD606B6000F0CEF90834204603B0BDE8F08F00BF040B00207C1900208F +:209EE000100F0020781900207419002080190020BCF1140F61D9BCF1540F00F28F804FEAB8 +:209F0000153C0CF16E0C4FEA4C0197E64B0A042B58D9142B00F2AD8003F15B02500007EBD0 +:209F200080008368DFF8B881834200F08A805A6822F00302914202D29B689842F7D1D96881 +:209F40007A68E160A3608C60DC60B6E645F0010742F001012544676030465D611D61C5F807 +:209F60000CE0C5F808E06960AA50083400F07CF948E65A68A1E609F1010919F0030F04F161 +:209F800008047FF4ADAE2DE004F108036469A34208BF0CF1020C3FF467AE23E619444868F8 +:209FA0001C4654F8082FDB6840F001054D603046D3609A6000F058F924E60CF15B0C4FEA0B +:209FC0004C013BE68A0938325000A8E7BC423FF402AFBC68626822F0030261E7D8F80080B8 +:209FE00098457AD11CF0030FA8F108030CF1FF3CF4D17B6823EA00037B60400098423FF65D +:20A00000BEAE00283FF4BBAE0342CC467FF464AE400003420CF1040CFAD05DE6BCF5AA7FBB +:20A0200019D84FEAD53C0CF1770C4FEA4C0105E64FF48053EEE60123C8F804304446002246 +:20A040002EE7921001209040D8F8042019460243C8F8042075E740F254539C451BD84FEA9A +:20A06000954C0CF17C0C4FEA4C01E7E50AF1100AA3E6542B1FD80A0B6E3250004FE7CBF31B +:20A080000B0100297FF4B1AE0AEB0901BA6841F001015160F6E6FC214FF07E0CCEE501221C +:20A0A0004FF0000ACBE604F10801304602F05AFCDAF80030E6E6B3F5AA7F03D8CA0B7732F2 +:20A0C00050002CE740F25452934203D88A0C7C32500024E7FC207E2221E77B688DE700BF1C +:20A0E000040B0020844641EA000313F0030349D1403A23D30B6803604B6843608B688360A4 +:20A10000CB68C3600B6903614B6943618B698361CB69C3610B6A03624B6A43628B6A83627B +:20A12000CB6AC3620B6B03634B6B43638B6B8363CB6BC36340304031403ADBD230320BD30D +:20A140000B6803604B6843608B688360CB68C36010301031103AF3D20C3205D351F8043B79 +:20A1600040F8043B043AF9D2043208D0D2071CBF11F8013B00F8013B01D30B880380604694 +:20A18000704700BF082A13D38B07B1D010F00303AED0C3F10403D21ADB071CBF11F8013BF1 +:20A1A00000F8013BA4D331F8023B20F8023B9FE7043AD9D3013A11F8013B00F8013BF9D24A +:20A1C0000B7803704B7843708B78837060467047F0B4840743D0541E002A3ED0CDB203460C +:20A1E00003E0621E002C38D0144603F8015B9A07F7D1032C2AD9CDB245EA05250F2C45EA3A +:20A20000054515D9A4F110073F0903F1100606EB07161A46156055609560D5601032B24210 +:20A22000F8D104F00F040137032C03EB07130DD91E462246043A032A46F8045BFAD8221F12 +:20A2400022F003020432134404F003042CB1C9B21C4403F8011BA342FBD1F0BC7047144622 +:20A260000346C6E7704700BF704700BF38B5074C0023054608462360FAF71EFC431C00D043 +:20A2800038BD2368002BFBD02B6038BDE81900200EB4F0B59CB021AC54F8042B0E49064609 +:20A2A00023464FF4027E6FF0004508684FF6FF7702A9029606960194ADF814E00495079561 +:20A2C000ADF8167000F03AF8029B00221A701CB0BDE8F04003B07047000B002020F003019E +:20A2E00010F00300C0F1000051F8043B00F1040C4FEACC0C6FF000021CBF22FA0CF2134364 +:20A300004FF0010C4CEA0C2C4CEA0C4CA3EB0C0222EA030212EACC1204BF51F8043B0430EF +:20A32000F4D013F0FF0F1FBF013013F47F4F013013F47F0F18BF0130704700BF2DE9F04FCB +:20A34000C9B010930C9191460D9002F0D7FB00681590FFF7C3FF0C9C1890A3891E0603D5CF +:20A360002369002B01F0818038ACA44608942B9400250024CDE91645002311932D932C936B +:20A380001A9319930E93664699F80030002B00F0F880252B00F0F58009F1010201E0252BE0 +:20A3A00004D0137814460132002BF8D1C9EB04057DB12C9B2D9A01332A44072BC6F8009022 +:20A3C00075602D922C9300F3C28008360E9828440E902378002B00F0C280002394F80180DF +:20A3E0001A468DF88F300F93099304F101094FF0FF340A9409F10109A8F12003582B00F237 +:20A40000C583DFE813F06A02C303C3037102C303C303C303C303C303C30314036603C303D5 +:20A420009D00C000C30378027F027F027F027F027F027F027F027F027F02C303C303C303A4 +:20A44000C303C303C303C303C303C303C30390027103C3037103C303C303C303C3036A03CD +:20A46000C303C3037800C303C303C303C303C3035900C303C303AF02C303C303C303C3034C +:20A48000C303C303C303C303C303C30337034803710371037103FF024803C303C303080354 +:20A4A000C303C5027C002003A303C303D902C3035F00C303C303DE00DDF824C04CF0100C89 +:20A4C000CDF824C0099CA20600F15483099CE30600F1BD85DDF824C01CF0400F00F0B785BD +:20A4E000DDF840C00025BCF800400CF1040C0123CDF840C08CE0099D45F010050995DDF8A9 +:20A5000024C01CF0200340F02A83DDF824C01CF0100240F0A485DDF824C01CF0400300F023 +:20A520009E85DDF840C01346BCF800400CF1040C0025CDF840C06BE00F9C109364420F94FD +:20A54000099D45F00405099599F8008052E70D980C992BAA02F02AFE40B938AE36E72D9B32 +:20A5600023B10D980C992BAA02F020FE0C9C0E98A38913F0400F18BF4FF0FF3049B0BDE829 +:20A58000F08F4C4625E799F8008009F10100B8F12A0F01F00C81A8F13003092B98BF0021BA +:20A5A00001F26B8010F8018B01EB810103EB4101A8F13003092BF5D941EAE1710A918146DE +:20A5C0001AE7099DA14CAF061A948DF88F2040F1D181DDF840C00CF1070323F0070303F1E0 +:20A5E00008041094D3E90045DDF824C01CF0010F00F0628454EA050000F05E8430234CF05B +:20A60000020C8DF890308DF89180CDF824C002234FF0000A8DF88FA00A99002905DBDDF805 +:20A6200024C02CF0800CCDF824C054EA050040F0C5820A99002940F0C182002B40F03884D5 +:20A64000DDF824C01CF0010F00F0328448AF3023089D07F8413DEC1BDDF828C00025644581 +:20A66000A8BFA446CDF82CC01495BAF1000F02D00B9D01350B95099B13F00203129302D002 +:20A680000B9D02350B95DDF824C01CF0840CCDF84CC040F090820F9DDDF82CC0CCEB050B9F +:20A6A000BBF1000F40F38782BBF1100F2D992C9ADFF8A0A12CDD1B97304657461025CA4621 +:20A6C0000C9EA1460D9C06E0ABF1100BBBF1100F00F1080017DD01321031072A2D912C92CA +:20A6E00007604560F0DD204631462BAA02F05EFD00287FF43BAFABF1100BBBF1100F2D99B5 +:20A700002C9A38A8E7DC4C46D146BA461B9F064601320BEB010C072ACDF8B4C02C9286E855 +:20A72000000C00F31A849DF88FA00836BAF1000F0FD02C9B0CF1010C01330DF18F0101222B +:20A74000072BCDF8B4C02C9386E8060000F3A4830836129B73B12C9B0CF1020C013324A95F +:20A760000222072BCDF8B4C02C9386E8060000F387830836139D802D00F0CA820A9DC4EBED +:20A78000050ABAF1000F3BDDBAF1100F2C9B304D2BDD0A9432464FF0100B2E4661460D9C8E +:20A7A0000C9D06E0AAF1100ABAF1100F02F1080217DD01331031072B2D912C9382E84008C4 +:20A7C000F0DD204629462BAA02F0F0FC00287FF4CDAEAAF1100ABAF1100F2D992C9B38AA20 +:20A7E000E7DC0A9C35468C4616460133D444072BCDF8B4C02C9386E8200400F33583083656 +:20A80000099DED0500F124822C9BA4440133072BCDF8B4C0376074602C9300F30F830836CE +:20A82000099C630749D50F9D0B982C1A002C44DD102C2C9BDFF81CA02BDD574610256246F1 +:20A84000DDF83080DDF834A00BE000BFDCF00008A8F00008FCF00008103C102C06F108062B +:20A8600015DD01331032072B2D922C9337607560F2DD504641462BAA02F098FC00287FF472 +:20A8800075AE103C102C2D9A2C9B38AEE9DC9446BA460133A444072BCDF8B4C02C93C6F8F6 +:20A8A00000A0746009DD0D980C992BAA02F07EFC00287FF45BAEDDF8B4C00E9C0B980F9DCD +:20A8C000A842ACBF241864190E94BCF1000F40F0C18200232C9338AE56E599F80080002A5B +:20A8E0007FF488AD202285E5099D45F00105099599F800807EE5099D45F08005099599F882 +:20A90000008077E50024A8F130030F94214619F8018B01EB810103EB4101A8F13003092B26 +:20A92000F5D90F9168E5DDF824C08DF88F204CF0100CCDF824C0099CA50640F1B280109D0E +:20A94000E91D21F00701D1E900230831109114461D46002A73F1000CC0F294839DF88FA03D +:20A96000012359E6099DB64CAF068DF88F201A943FF52FAE099DED0640F14384DDF840C0BE +:20A980000025DCF800400CF1040CCDF840C02BE6DDF824C08DF88F201CF0200F00F04084BF +:20A9A000109C21680E9CE5172B46109D224604351095C1E90023E7E4109C4FF0000A27683C +:20A9C0008DF88FA0251D002F00F0E9850A9C3846002CC0F29B855146224602F093F800282E +:20A9E00000F013860A9CC01BA042B8BF0446109524EAE475CDF828A0CDF850A00B959DF827 +:20AA00008FA032E6DDF824C04CF0400CCDF824C099F80080EEE499F800804B46B8F16C0F5C +:20AA200000F07F84099D45F010050995E2E4109C109D24682B1D002C0F94FFF67DAD109311 +:20AA400099F80080D6E4109BDDF824C0109D7D4804351C684FF0780830234CF0020C109597 +:20AA60008DF89030CDF824C000258DF891801A900223CDE5109B109D1A6801240023043551 +:20AA80009A460B948DF8B82010958DF88F300A9314932EAFEFE5099C8DF88F20A5063FF544 +:20AAA0004EAFDDF824C01CF0100F40F0DF82DDF824C01CF0400F00F0D982DDF840C0BCF93B +:20AAC00000400CF1040CE51722462B46CDF840C03FE799F800802B228CE4099D45F00805B3 +:20AAE000099599F8008085E4109D8DF88F20EB1D23F0070303F1080CCDF840C0D3E900456A +:20AB0000CDE91645DDE91601FDF7FCFB0128DDE9160140F05C8300220023FEF77FF900286D +:20AB200040F063859DF88FA003250B95099D464F25F08005454B0024099500250A94B8F1DE +:20AB4000470FD8BF1F46032414958EE5DDF824C04CF0200CCDF824C099F800804AE4109CAB +:20AB6000E31D23F0070303F108051095D3E9004500234DE5109DEB1D23F0070303F1080CE2 +:20AB8000D3E90045CDF840C0012341E58DF88F20B8F1000F3FF4E3AC00234FF0010C9A46A8 +:20ABA000CDF82CC08DF8B8808DF88F300A93149364462EAF5FE5DDF8B4C0B7E5012B00F0D3 +:20ABC000EC80022B0DF1DF0318D1DDF868C0194604F00F0022091CF8000042EA05722B099E +:20ABE000087052EA03000F4614461D4601F1FF31EED1089DCDE91E23EC1B2DE5E00840EAE4 +:20AC0000457004F00702E908303250EA010C1F461A7004460D4603F1FF33EFD1099CCDE91B +:20AC20001C01E007394640F1C180302A00F0BE80089D1F463023EC1B01F8013C0CE500BF4D +:20AC4000C8F00008DCF00008BCF00008B8F00008B8F1650F40F3AD80DDE91601002200235D +:20AC6000CDF81CC0FEF7D0F8DDF81CC0002800F026812C9BAA4901330CF1010C0122072BB9 +:20AC8000CDF8B4C02C9386E8060000F3ED820836259B119CA34203DB099DEC077FF5C0ADFE +:20ACA0002C9B189C0133159DA444072BCDF8B4C0356074602C9300F33E830836119D6C1E8E +:20ACC000002C7FF7ADAD102C2C9B964D40F3978110276246DDF83480DDF830A004E0083618 +:20ACE000103C102C40F38A8101331032072B2D922C9386E8A000F2DD404651462BAA02F0A7 +:20AD000055FA00287FF432AC2D9A2C9B38AEE7E70F9D0B98C0EB050ABAF1000F7FF72EAD15 +:20AD2000BAF1100F2C9B7F4D2BDD129432464FF0100B2E4661460D9C0C9D06E0AAF1100A2E +:20AD4000BAF1100F02F1080217DD01331031072B2D912C9382E84008F0DD204629462BAAEB +:20AD600002F024FA00287FF401ACAAF1100ABAF1100F2D992C9B38AAE7DC129C35468C46CF +:20AD800016460133D444072BCDF8B4C02C9386E8200400F30F820836F0E4002D08BF0A2C8F +:20ADA00080F03881303448AF07F8414D089DEC1B52E4119C012C2C9C40F3D28101340CF146 +:20ADC00001030122072C2D9337602C94726000F3D8810836159DDDF8608001343560189DC0 +:20ADE0009844072CCDF8B4802C94756000F3D5810836DDE9160100220023FEF705F8119D6D +:20AE0000002840F0B9806B1E013401379844072C2C94CDF8B4803760736000F3E2800836E6 +:20AE2000DDF864C00134199DC44427AB072CCDF8B4C02C9486E828007FF7F1AC0D980C9935 +:20AE40002BAA02F0B3F900287FF490ABDDF8B4C038AEE5E40D980C992BAA02F0A7F90028D8 +:20AE60003FF437ADFFF782BB0D980C992BAA02F09DF900287FF47AABDDF8B4C038AEBFE44F +:20AE80000D980C992BAA02F091F900287FF46EABDDF8B4C038AE6DE40D980C992BAA02F0D2 +:20AEA00085F900287FF462ABDDF8B4C038AE50E40A9C38AFFFF7D0BB0223FFF7A9BB259BBC +:20AEC000002B40F3DD81119C149DDDF844A0AC42A8BF2C46002CBA440BDD2C9BA4440133E3 +:20AEE000072BCDF8B4C0376074602C9300F31E830836149D24EAE4742C1B002C40F3D780D7 +:20AF0000102C2C9B074D40F3A3810A974FF010082F4662462546DDF834B00C9C09E000BFFA +:20AF2000F8F00008A8F000080836103D102D40F38B8101331032072B2D922C9386E8800165 +:20AF4000F2DD584621462BAA02F030F900287FF40DAB2D9A2C9B38AEE7E70D980C992BAA79 +:20AF600002F024F900287FF401AB9DF88FA0DDF8B4C038AEFFF7DABB6F1E002F7FF750AFCC +:20AF8000102FAE4D23DD43464FF0100ADDF83480DDF830B004E0103F102F06F1080615DDEE +:20AFA00001341033072C2D932C9486E82004F2DD404659462BAA02F0F9F800287FF4D6AA0D +:20AFC000103F102F2D9B2C9C38AEE9DC98460134B844072CCDF8B4802C9486E8A0007FF729 +:20AFE0001EAF0D980C992BAA02F0E0F800287FF4BDAADDF8B4802C9C38AE11E794460133DC +:20B00000A444072BCDF8B4C02C93356074607FF706AC13E70DF1DF0B204629460A22002387 +:20B02000FEF796FA30328BF80020204629460A220023FEF78DFA04460D4654EA050C5F4655 +:20B040000BF1FF3BE8D1089DEC1BFFF705BB109D01232C68043510950025FFF7D9BA109D01 +:20B060002C68043510950025FFF7D2BA109D2C6804351095E51722462B46002A73F1000C29 +:20B08000BFF66CAC4FF02D0A644265EB45058DF88FA00123FFF7C0BA0D980C992BAA02F0D4 +:20B0A00085F800287FF462AADDF8B4C038AE149D259C2F44119DAC4242DB099DE9073FD4F6 +:20B0C0001198C7EB0A05041BAC42B8BF2546002D0BDD2C9BAC440133072BCDF8B4C0376015 +:20B0E00075602C9300F34C82083625EAE575641B002C7FF795AB102C2C9B504D7FF77FAFAF +:20B1000010276246DDF83480DDF830A004E00836103C102C7FF772AF01331032072B2D927A +:20B120002C9386E8A000F2DD404651462BAA02F03DF800287FF41AAA2D9A2C9B38AEE7E7B9 +:20B14000189D2C9BAC44159D01333560189D072BCDF8B4C075602C9300F3F4810836AFE718 +:20B16000099DEA073FF52AAE01340CF101080123072CCDF8B4802C94376073607FF74FAE04 +:20B180002FE70D980C992BAA02F010F800287FF4EDA92D9B2C9C38AE1CE60D980C992BAAB8 +:20B1A00002F004F800287FF4E1A9DDF8B4802C9C38AE1EE60D980C992BAA01F0F7FF002893 +:20B1C0007FF4D4A9DDF8B4C038AEFFF7D7BAFDF799F8002840F0BB80099C194F194B4FF001 +:20B1E000030C24F0800409940A90CDF82CC01490B8F1470FD8BF1F4664469DF88FA0FFF7BD +:20B2000034BA099C640640F15081DDF840C00025BCF800400CF1040CCDF840C0FFF7E4B9DC +:20B22000DDF824C01CF0100F00F04681109C0E9D2368043410941D60FFF7A6B8A8F0000844 +:20B24000C4F00008C0F000082C463D460A9F94460133A444072BCDF8B4C02C933560746053 +:20B260003FF71AAF083622E70D980C992BAA01F09DFF00287FF47AA9DDF8B4C038AE07E503 +:20B280002C9AB74901320CF1010C0120072ACDF8B4C02C923160706000F3F78008361C46F7 +:20B2A0002CB9119D1DB9099DE8077FF5B9AA2C9B159D189901333560189D6144072B2D917C +:20B2C00075602C9300F3DE8106F108026442002C40F30B81102CA34D40F34881A3461026AF +:20B2E0000C46DDF83480DDF830A006E00832ABF1100BBBF1100F40F3378101331034072B97 +:20B300002D942C9382E86000F0DD404651462BAA01F04CFF00287FF429A92D9C2C9B38AA09 +:20B32000E5E7099C09F1010944F02004099493F80180FFF75FB80D980C992BAA01F036FF45 +:20B3400000287FF413A9DDF8B4C038AEB6E40A9D28F0200A013500F0A580BAF1470F04D1C3 +:20B360000A9D002D08BF01250A95DDF824C0DDE916234CF4807C002BCDF848C0C0F29C81B2 +:20B38000DDE91645CDE920454FF0000BB8F1660F00F09B81B8F1460F00F0A981BAF1450FE6 +:20B3A0000ABF0A9C0A9D651C022025A926AA29AB8DE821000392049302910D98DDE920235F +:20B3C00000F04EFBB8F1670F074602D0B8F1470F05D1DDF824C01CF0010F00F09C81BAF194 +:20B3E000460F07EB050400F01C81DDE9200100220023FDF709FD002840F00581299B9C42CA +:20B4000006D930215A1C29921970299B9C42F9D8DB1BBAF1470F119300F0ED80B8F1650FBA +:20B4200040F3F281B8F1660F00F06881259C1494119C149DAC4200F33281DDF824C01CF04F +:20B44000010F40F0AD8125EAE5732C464FF06708BBF1000F40F0B280129D0B930995CDF82A +:20B4600028B09DF88FA0FFF700B90D984021FEF79DFB20602061002800F0BF81DDF830C0D0 +:20B480004023CCF81430FEF76FBF0D980C992BAA01F08CFE00287FF469A8259CDDF8B4C0CE +:20B4A00038AEFDE606240A945FE7109D2C68043510950025FFF798B8DDF824C01CF0400F17 +:20B4C00000F08780109C0E9D2368043410941D80FEF75ABF0D980C992BAA01F067FE00286F +:20B4E0007FF444A82D992C9B38AADDF844C00133119C8C44072BCDF8B4C02C93176054609F +:20B500003FF79CAC02F10806FFF78AB9CDF828A0FEF7E4FE10950A9D20EAE07C0446CDF84E +:20B520002CC014959DF88FA0FFF79FB80D980C992BAA01F03BFE00287FF418A8DDF8B4C078 +:20B5400038AED6E40D980C992BAA01F02FFE00287FF40CA8259CDDF8B4C038AEB0E500BF7B +:20B56000F8F00008A8F0000821465C4601332144072B2D912C9315605460ABDC0832B4E765 +:20B580000D980C992BAA01F011FE00287EF4EEAF259C1199DDF8B4C00C1B38AEA5E50A9C64 +:20B5A000BA46062C28BF062424EAE47C0A9714971095CDF82CC0974FFFF757B8129D4FF05F +:20B5C0002D0A099500250B938DF88FA00A95FFF74FB8DDF840C00E9CDCF800300CF1040CF3 +:20B5E000CDF840C01C60FEF7CFBE4FF02D0A8DF88FA0FFF799BA259BDC1C19DB0A9C9C42E5 +:20B6000016DB149314E7234602E724EAE47CCDF82CC00A9C10950A9014909DF88FA0FFF7E3 +:20B6200024B83B78302B00F0AD80259D2C44DCE6A8F10208591E00292591BABF49422D23C2 +:20B640002B2309298DF89C808DF89D3065DC302330318DF89E308DF89F1028AB119D27AAA9 +:20B66000119C9A1A012D1992144440F3B7800134002524EAE4731495EAE6002481460A940D +:20B68000FEF7BABE0D980C992BAA01F08FFD00287EF46CAF259C2D992C9B38AA16E6149C10 +:20B6A000119D002CD4BFC4F1020401242C4424EAE4734FF06708CBE61799169801F1004178 +:20B6C000209021914FF02D0B60E60A9D032025A926AA29AB019500900392049302910D9885 +:20B6E000DDE9202300F0BCF90A9D074677E60A9C032025A926AA29AB0194ECE7259D0A9C40 +:20B70000002D149563DDB4BB099DE80733D4149C24EAE4739CE6299B7AE60DF1AA023E4D18 +:20B72000CB1785FB0150C3EBA00000EB8003A1EB43010928134601F130021A70014603F157 +:20B74000FF32ECDC00F130010DF1AB04C9B2944203F8011C5AD90DF19D001A4601E012F89F +:20B76000011BA24200F8011FF9D10DF5907CC3EB4C03F63B72E70A9D6C1C149D2C4424EAF4 +:20B78000E47365E6DDE9200100220023FDF73CFB00287FF44AAFC5F1010525952C4424E62C +:20B7A000149D4FF067086C1C24EAE47350E6109DDDF840C02D680CF10403002D99F80180AD +:20B7C0000A9510938146BEF615AEFEF710BE7CB9099DE9070CD401231C4639E6DDF824C01D +:20B7E0001CF001037FF443AF149324EAE4732FE60A9DAC1C24EAE4732AE60D9D0C232B606B +:20B800004FF0FF30FEF7BABE259B13E70DF19E0324E700BFF0F0000867666666024B13B198 +:20B82000024800F07DB870470000000099C800082DE9F04F384B85B01B68029003F5A47249 +:20B8400001930F460392019BD3F84881B8F1000F1CD0DDF80CB04FF00109DA46D8F8043098 +:20B860005C1E11D408F188059E1C05EB830508EB860677B1EB6FBB420BD0013C631CA5F186 +:20B880000405A6F10406F4D1244A7ABB05B0BDE8F08FD8F8042056F8043C013AA24216BF47 +:20B8A0000022C8F8044046F8042C002BE5D009FA04F2D8F88811D8F804B00A4210D0D8F832 +:20B8C0008C110A420ED1029855F8041C9847D8F804305B45B7D1DAF800304345CDD0B2E7CE +:20B8E0009847F4E755F8040C9847F0E7D8F804306BB9D8F8003063B14046CAF80030FEF7D2 +:20B900004DF9DAF80080B8F1000FA7D1BEE7D8F80030C2469846F6E7A4F000089D9B00081B +:20B92000014600200246034601F0C0BC2DE9F04F03690D6983B09D42834600F38C80013D53 +:20B9400001F1140400F1140A54F825205AF825300132B3FBF2F8AA00914600925244A1443D +:20B960000192B8F1000F3ED000263046224653468C4652F8047B19681FFA87FE3F0C0EFBC3 +:20B98000086E07FB08F606EB1E461FFA8EFECEEB000E8FB2B0B27744C0EB114000EB2740C4 +:20B9A000BFB247EA0047914543F8047B4FEA20404FEA1646DDD2009A61465AF8023093B920 +:20B9C000019A131F9A450CD252F8043C4BB9A2F1080302E01A68043B1AB99A4505F1FF3532 +:20B9E000F8D3CBF81050584601F0F2FA00282EDB08F101085346002254F8046B1868B1B252 +:20BA0000511A87B2360C3944C6EB104000EB214289B241EA0241A14543F8041B4FEA2242EE +:20BA2000EAD25AF825200AEB850382B91A1F92450BD253F8042C42B9083B02E01A68043BB2 +:20BA40001AB99A4505F1FF35F8D3CBF81050404603B0BDE8F08F002003B0BDE8F08F00BF09 +:20BA60002DE9F04F016C9BB0044692469B46279D41B1436C01229A404B608A6001F0B2F824 +:20BA800000232364BBF1000FD94633DB00232B60A54B1A4609EA0303934214D0504659462F +:20BAA00000220023FDF7B0F9804648B3269E289D01233360002D00F0CA809C482860013897 +:20BAC0001BB0BDE8F08F269D42F20F732B60BAF1000F00F0A5809648289E002EF0D0C378D7 +:20BAE000002B00F0B68000F10803289D2B601BB0BDE8F08F01232BF000492B60CB46C7E7E8 +:20BB000019AA18AB8DE80C00204652465B4601F0EFFA5FEA19550A9040F08B80189F199DAC +:20BB20006FF482633D449D42C0F295821F3305F212425B1B09FA03F32AFA02F243EA020041 +:20BB4000FCF784FE0126013DB846A1F1F87116960022784BFCF73CFD6DA3D3E90023FCF773 +:20BB6000EBFE6DA3D3E90023FCF734FD064628460F46FCF77BFE6AA3D3E90023FCF7DCFE95 +:20BB800002460B4630463946FCF724FD06460F46FDF76CF939460790002230460023FDF744 +:20BBA0003DF9002840F02982079E162E00F222826149524601EBC6015B46D1E90001FDF788 +:20BBC0004BF9002800F04C82013E079600260E96C5EB0805013D069500F1268200250895A4 +:20BBE000079E002EC0F21782069D0D963544002606950C96249D092D2DD8052DC4BF043D13 +:20BC00002495249EC8BF0025A6F10203D8BF0125032B22D8DFE813F0B7039E02C0039A04F7 +:20BC2000464A434BC9F3130000280CBF1046184652E7CBF3130343F07F51CDF8588050462D +:20BC4000A5F2FF3541F44011DDF8608080E73C4836E7C31C49E7002524950025656429468C +:20BC6000204600F099FF4FF0FF390126099025952064CDF83C900B96199B002BC0F2D2804C +:20BC8000079E0E2E00F3CE802B4B03EBC603D3E90001CDE9040125990029C0F28083DDE97B +:20BCA000042359465046FCF771FFFDF7DFF80546FCF7DCFDDDE90423FCF73EFE02460B462E +:20BCC00050465946FCF784FC099A05F13003B9F1010F06460F46137002F1010B64D00022BD +:20BCE000184BFCF729FE0022002306460F46FDF78BF8002840F08180DDF82480099DC844E6 +:20BD0000DDE904AB05F10209039428E0AFF3008061436F63A787D23FB3C8608B288AC63F1A +:20BD2000FB799F501344D33F0000F07FF9F0000818F100080000F83F28F100080CF1000869 +:20BD4000F8F0000800002440FCF7F6FD0022002306460F46FDF758F8002840F0C18352464B +:20BD60005B4630463946FCF711FFFDF77FF80546FCF77CFD52465B46FCF7DEFD02460B4668 +:20BD800030463946FCF724FC05F1300EC14509F801EC4C4606460F464FF00002A74B09F113 +:20BDA0000109D1D1A346039C32463B4630463946FCF710FC06460F463246DDE904013B46FD +:20BDC000FDF72CF840B9DDE9040132463B46FDF71BF890B1EB0710D51BF8015C099A05E077 +:20BDE0009A4200F0298413F8015C9B46392D0BF1FF33F5D06A1CD2B21A7020460A9900F09B +:20BE0000F1FE079E269D731C289E00228BF800202B60002E00F025830998C6F800B01BB086 +:20BE2000BDE8F08F0B9D002D00F00381249E012E40F3DC820C9E09F1FF37BE42C0F289837B +:20BE4000F71BB9F1000FC0F28784089D4B46089E20461E440896069E01211E44069600F064 +:20BE600063FF064665B10698002809DD03460899AB42A8BF2B46C91AC01A0891ED1A0690B0 +:20BE80000C9A002A1DDD0B9B002B00F05883002F11DD31463A46204600F0EEFF0646314622 +:20BEA0000A9A204600F04AFF0A998046204600F099FECDF82880DDF830E0BEEB070240F0B5 +:20BEC0008F822046012100F02FFF80460D98002805DD414620460D9A00F0CEFF8046249962 +:20BEE000012940F3C18200270D98002840F0AF820120069B034413F01F0300F0A180C3F15A +:20BF00002002042A40F3B7840899069AC3F11C0319441A4408911D4406920899002905DD56 +:20BF20000A99089A204600F0F5FF0A90069A002A04DD4146204600F0EDFF80460E9B002BCA +:20BF400040F06A82B9F1000F40F3A6820B98002840F088800B9D0A9FDDF824B006E039464F +:20BF600020460A22002300F047FE074638464146FFF7DCFC30300BF805000135A945EEDC61 +:20BF8000DDF824B082460A97B9F1010FACBFCB440BF1010B00250A990122204600F0BAFF59 +:20BFA00041460A9001F014F8002840F309831BF8012C099905E0994200F08B8213F8012CA5 +:20BFC0009B46392A0BF1FF33F5D001321A704146204600F007FE002E3FF40FAF2DB1B54297 +:20BFE00003D02946204600F0FDFD3146204600F0F9FD02E701260E96EAE50798FCF736FCA5 +:20C0000032463B46FCF700FF00287FF4CDAD079E013E0796C8E5079E089DAD1B089575428C +:20C0200000260C950D96E5E56D42002608950696D6E50C9F089D0B9E14E700BF00002440EC +:20C040001C23DDF820E006989E441844CDF820E01D44069061E7A748401B0AFA00F06FE55A +:20C060000E90B5E5002D05DD31462A46204600F051FF0646002F40F0E9823746099D099812 +:20C080004D4408950AF001050B95DDF82890451C0AE000F0B1FD394606460A2220460023DC +:20C0A00000F0AAFD0746013541464846FFF73EFC31468346484600F08BFF414603903A463F +:20C0C000204600F0A9FFC268691E03460BF1300A0691002A40F0938119464846029300F0BB +:20C0E00077FF029B024619462046029200F07AFD029A2AB9249B1BB90B98002800F0938342 +:20C10000039B002BC0F2348205D1249818B90B99002900F02D82002A00F3AC82DDF820E0FF +:20C1200005F801AC7545AB4600F0B48249460A220023204600F060FDBE428146314620464F +:20C140004FF00A024FF00003A3D100F055FD06460746A8E700260B96079EDDF894E0B644C5 +:20C160000EF10109B9F1000FCDF83CE04E4640F350810021172E61640AD9012204235B00D1 +:20C1800003F11400B042114602F10102F7D96164204600F001FD0E2E099020643FF66CADC8 +:20C1A000002D3FF469AD079DCDE912AB002D40F31C82514B05F00F0203EBC2032D11D3E9A5 +:20C1C0000067EB0640F1CD814C4B50465946D3E90823FCF7DBFCCDE9100105F00F054FF0FC +:20C1E00003088DB1DFF814A130463946EE0705D5DAE9002308F10108FCF79EFB6D100AF1BA +:20C20000080AF3D106460F46DDE9100132463B46FCF7BCFC82468B460E9D45B150465946BD +:20C220000022374BFCF7FAFD002840F0AA824046FCF71CFB52465B46FCF77EFB0022314B19 +:20C24000FCF7C8F90646A1F15077B9F1000F00F05A81079DC84617950B9D002D00F0238239 +:20C26000254B002003EBC80353E902232649FCF78DFC32463B46FCF7ABF9CDE91001594633 +:20C280005046FCF7F3FD0546FCF7F0FA02460B4650465946FCF79CF93035099ECDE90401E0 +:20C2A000DDE90423DDE91001EDB2357006F1010BFCF7D2FD002840F0AB82DDE9042300201F +:20C2C0000F49FCF785F902460B46DDE91001FCF7C3FD002840F0A282B8F1010F40F3818108 +:20C2E000B044CDF85090A246C146DDE90467DDE9104519E0EEFBFFFF28F10008F0F1000880 +:20C300000000F03F00001C400000E03F0020A849FCF75EF922462B46FCF780FD002840F077 +:20C320007B82CB4500F05A81204629460022A14BFCF702FB00229F4B04460D4630463946B4 +:20C34000FCF7FAFA0F460646FCF790FD8046FCF78DFA02460B4630463946FCF739F908F1E9 +:20C3600030085FFA88F822462B460BF8018B06460F46FCF753FD32463B460028C6D0179EF4 +:20C380005446079639E500260B96259800283CDD06460F908146ECE601260B96F5E7B9F1B1 +:20C3A000000F3FF77CAC40F0C680DDE904010022814BFCF7C1FA52465B46FCF743FDC846B9 +:20C3C0004E4600287CD0259DDDF824B0ED4307954146204600F006FC002E7FF406AE0CE5F9 +:20C3E0000A99204600F048FD0A906AE5169D002D00F0B88103F233430C9F089D27E50146FF +:20C40000204600F0EFFB01227AE6012625960F96B14600216164BBE60A98414600F0D8FD66 +:20C420000028BFF68FADDDF81CE00A990EF1FF3E20460A220023CDF81CE000F0DDFB0A905B +:20C440000B98002840F00982DDF83C907AE5D8F8103008EB8303186900F018FCC0F1200077 +:20C4600047E50998FFF72CBBBAF1000F7FF43BADCBF31303002B40F07C812BF000473F0D23 +:20C480003F05002F3FF430AD089A069B0132013308920693012727E5249902297FF756ADA7 +:20C4A000B9F1000F8FD141464B460522204600F0A3FB804641460A9800F08AFD002882DD43 +:20C4C000079D312301350795099D2B7005F1010B7EE7079809993123013007900B7076E5B7 +:20C4E000A346039C89E44046FCF7C0F902460B4650465946FCF720FA0022304BFCF76AF848 +:20C500000646A1F150775046594600222A4BFCF75FF832463B4682468B46FCF79DFC00281A +:20C5200040F0BD80324607F1004350465946FCF775FC002855D04FF00008464643E70A9955 +:20C540000C9A204600F098FC0A90BAE401260B9602E60C9D0D9E7B1B1E440C970D960027AA +:20C560006FE4DDE912014FF00208CDE9100138E6002ACDF82890D94611DD0A990122204681 +:20C5800000F0C8FC41460A9000F022FD002840F35D81BAF1390F00F01B8109F1310A069B29 +:20C5A000354683F800A003F1010B3E460FE500BF0000F03F000024400000144000001C406B +:20C5C00003D11AF0010F7FF4F2AC5B4613F8012C9B46302A03F1FF33F8D0F8E4DDF85090C9 +:20C5E0005446DDE912ABFFF747BB079E7542002D00F0C280A34B05F00F0203EBC203D3E908 +:20C600000023DDE91201FCF797F92D1182468B4600F02E819C4E4FF00208EA0705D5D6E968 +:20C62000002308F10108FCF787F96D1006F10806F3D182468B46EFE5079E099D30222A7078 +:20C640000136312207961A70FFF7D7BB7168204600F0A2FA336905469A1C920006F10C01A3 +:20C660000C30FDF73FFD20462946012200F052FC074603E5BAF1390FCDF8289000F0A8805B +:20C68000069D0AF101032B703546069E06F1010B3E469CE43546CDF828903E467BE44FF01D +:20C6A000000846460CE7774908F1FF3501EBC50132463B46D1E900011095FCF73DF9CDE91C +:20C6C000140159465046FCF7D1FB0546FCF7CEF802460B4650465946FBF77AFFDDF824E03B +:20C6E0003035B8F1010F06460F468EF800500EF1010B1ED0099D6B1E03EB080A0022634BAD +:20C70000FCF71AF90F460646FCF7B0FB8046FCF7ADF808F1300802460B4630463946FBF7C5 +:20C7200057FF05F8018F5545E8D1109D06460F46AB440022564BDDE91401FBF74BFF324634 +:20C740003B46FCF76BFB00284DD0179E099A07961BF8015CFFF74ABB089E0023C9EB0605D2 +:20C76000FFF775BB189B0C9FC3F13603089DFFF76EBB5746FFF7B8BBDDE912AB4FF00208B2 +:20C780004AE5B9F1000F3FF4AEAE0F9E002E7FF728AF00223D4B50465946FCF7CDF882469B +:20C7A00008F101008B46FCF761F802460B4650465946FCF7C1F80022364BFBF70BFF079DA5 +:20C7C0000646013DA1F150771795DDF83C8043E53546069B069E3922327003F1010B3E46D0 +:20C7E0000999FFF7EEBBDDE9142300202849FBF7EFFE32463B46FCF72FFB00283FF4F1AE7B +:20C800005B4613F8012C9B46302A03F1FF33F8D0179D0795FFF7F1BA45465446179E099AA8 +:20C820000796FFF7E3BABAF1390FCDF82890CFD0039B3546002B069EC8BF0BF1310A86F895 +:20C8400000A006F1010B3E46FFF7C1BB7FF4A7AE1AF0010F3FF4A3AE9BE6314620460A224F +:20C860000023DDF83C9000F0C7F90646FFF76ABB4FF00208D0E43FF450ABC3F13C03FFF7C9 +:20C88000E0BB00BF28F10008F0F10008000024400000E03F00001C4038B5094D094C641B3E +:20C8A000A41018BF05EB840505D0013C55F8043D9847002CF9D1BDE8384000F0D5BF00BF9F +:20C8C00074D8000878D80008F8B5234D0F460446FDF7C8FCAB685E6826F00306F11B01F63D +:20C8E000EF7121F47F6121F00F01A1F58057B7F5805F07DB20460021FDF7B8FCAB6833442F +:20C90000984204D02046FDF7AFFC0020F8BD20467942FDF7ABFC01300DD0104BAA681968D7 +:20C92000F61B46F001062046C91B56601960FDF79BFC0120F8BD20460021FDF797FCAB68AE +:20C94000C21A0F2ADEDD064D04492D6842F00102401B5A600860D5E7040B0020801900207C +:20C96000100F00202DE9F0410D460646002955D0FDF778FC55F8041CDFF870C1A5F10804C5 +:20C9800021F00103E218DCF808005768904227F0030768D011F00101576032D00021D019FC +:20C9A0004068C00706D43B44906800294DD0D268C260906043F001026260E350E1B9B3F5B8 +:20C9C000007F2DD35A0A042A69D89809383041000CEB810CDCF808204449624565D0516819 +:20C9E00021F003018B4202D292689445F7D1D368E360A2609C60D4603046BDE8F041FDF7F6 +:20CA000033BC55F8085C0CF10808641BA0682B44404542D0E568C560A860C0E7BDE8F081A5 +:20CA2000DB089A1001209040DCF804100CEBC3039A680143A260E360CCF8041030469C60FE +:20CA4000D460BDE8F041FDF70FBC294DA842AED143F00102CCF81440CCF81040E060A0608C +:20CA60006260E350C8E71F44CB0707D455F8081C641AE368A2680F44D3609A601D4B47F09F +:20CA800001021B6862609F42CCF80840B4D31A4B30461968FFF718FFAEE701217FE7142A16 +:20CAA0000BD802F15B00410092E780100125854048681346284348609AE7542A03D8180BF7 +:20CAC0006E30410084E7B2F5AA7F03D8D80B773041007DE740F254518A4203D8980C7C3064 +:20CAE000410075E7FC217E2072E700BF040B00200C0B00200C0F00207C1900200048704771 +:20CB0000140F0020830770B4C9B240D0541E2AB303788B4223D0431C04E0FCB10578144648 +:20CB20008D421CD013F0030F184604F1FF3203F10103F2D1032C14D8651E54B303788B42F9 +:20CB40000DD0421C002302E004788C4207D0AB42104603F1010302F10102F5D1002070BC31 +:20CB6000704741EA0126034646EA06461A6818467240A2F1013525EA020212F0803F03F1C4 +:20CB80000403D9D1043C032C1846EFD8D4E71446D0E72046E3E700BFC26C70B505460C46A5 +:20CBA0004AB152F8240080B1016842F8241000220261C26070BD2122042100F0CBFBE864C6 +:20CBC00002460028EDD1002070BD012101FA04F6721D2846920000F0BDFB0028F3D04460FD +:20CBE0008660E4E731B1C36C4A6853F82200086043F82210704700BF2DE9F0430F6983B015 +:20CC00008846814601F1140500242E680134B1B2360C02FB013302FB06F699B206EB134324 +:20CC200001EB0341A74245F8041B4FEA1343ECDC4BB1D8F80820974209DA08EB87020137C4 +:20CC40005361C8F81070404603B0BDE8F083D8F80410484601310193FFF79EFFD8F81020C4 +:20CC600008F10C010232044692000C30FDF73AFAD9F84C20D8F80410019B52F82100C8F852 +:20CC8000000042F82180A046D7E700BF030C1B04B3B90004102310F07F4F04BF00020833B7 +:20CCA00010F0704F04BF0001043310F0404F04BF80000233002807DB420003D42020704799 +:20CCC0000023E8E7581C704718467047036813F0070207D0D90720D49A0720D49B08036065 +:20CCE0000220704799B209B91B0C102213F0FF0F04BF1B0A0832190704BF1B0904329907E5 +:20CD000004BF9B080232D90704D45B0801D1202070470132036010467047002070475B08B8 +:20CD200003600120704700BF10B50C460121FFF733FF01224461026110BD00BF2DE9F04F8C +:20CD40000D69D2F8109085B04D450C46924604DA2A4654464D468A469146A36805EB0907D5 +:20CD600061689F42C8BF0131FFF716FF00F1140606EB87084645019005D23346002043F8F3 +:20CD8000040B9845FBD80AF1140C0CEB89091434CC45009404EB85055BD2CDF808800397B6 +:20CDA000C8465CF8043B9CB224B3009A33464FF0000900E00B4652F8047B19681FFA87FB3C +:20CDC0001FFA81FA380C090C04FB0BAA04FB0010D14400EB19401FFA89F949EA00471946D6 +:20CDE00095424FEA104941F8047BE3D8C3F804905CF8043C5FEA134924D0D6F800A0009BD2 +:20CE0000504631464FF0000B00E011461A88000C09FB02001FFA8AFA83444AEA0B400A469D +:20CE200042F8040B53F8047B48684FEA174A84B209FB0A4A9D420AEB1B4A4FEA1A4BE4D874 +:20CE4000C1F804A0E04506F10406AAD8DDF80880039F002F0ADD58F8043CA8F104081BB1B7 +:20CE600004E058F8043D0BB9013FFAD1019B18461F6105B0BDE8F08F12F003032DE9F041CC +:20CE8000144607460E462CD1A4101CD0BD6C002D30D04FF0000804E0641014D02868A8B138 +:20CEA0000546E307F8D5384631462A46FFF746FFAEB17268FB6C641053F82210316043F873 +:20CEC00022600646EAD13046BDE8F081384629462A46FFF733FF2860C0F80080E0E70646E5 +:20CEE000DAE70B4A013B52F823200023FFF784FE0646C9E701213846FFF74EFE40F2712116 +:20CF000001220023416102610546B8640360C0E718F200082DE9F84F0B694FEA621A0AEBC8 +:20CF200003098B6809F101069E420F4693468046496804DD5B009E4201F10101FADC404600 +:20CF4000FFF72AFEBAF1000F00F1140409DD00231A4625460133534545F8042BFAD104EB2A +:20CF600083043A6907F114031BF01F0B03EB820C21D0CBF1200A002200E02C461968254690 +:20CF800001FA0BF10A4345F8042B53F8042B634522FA0AF2F1D362600AB109F10206D8F894 +:20CFA0004C307A68013E53F822100661396043F82270BDE8F88F53F8042B9C4544F8042B98 +:20CFC000EDD953F8042B9C4544F8042BF3D8E6E702690B6910B4D21A15D19B001430143194 +:20CFE0001944034401E0984211D253F8042D51F8044DA242F7D0944294BF01204FF0FF3076 +:20D000005DF8044B704710465DF8044B704700205DF8044B704700BF2DE9F0470D460446E0 +:20D02000114628461646FFF7D3FF071E56D04FDB4FF0000969682046FFF7AEFD2F6932693F +:20D0400014351436C0F80C9000F1140305EB870C06EB8208002155F8044B56F8042B1FFA90 +:20D0600084FA8A441FFA82F9110CC1EB1441C9EB0A0201EB224192B242EA0142B04543F8C0 +:20D08000042B4FEA21412C46E5D8AC45984615D954F8046BB2B21144360C06EB214689B291 +:20D0A00041EA0642A44543F8042B4FEA2641EFD8EB43634423F0030304334344043B22B97D +:20D0C00053F8042D013F002AFAD00761BDE8F0872B464FF0010935461E46ABE7204639460C +:20D0E000FFF75AFD012347610361BDE8F08700BF2DE9F043012183B01D46C3F30A56144667 +:20D100000A9FFFF749FDC5F3130380460EB143F48013019324B302A840F8084D6846FFF7C7 +:20D12000D5FD002835D19DE80C00C8F81420002B0CBF01240224C8F81830C8F81040DEB97A +:20D1400008EB8403A0F2324038601869FFF79EFD0B9BC0EB44101860404603B0BDE8F08339 +:20D1600001A8FFF7B3FD019B01242030C8F81430C8F81040002EE3D0A6F2334909EB00034F +:20D180003B600B9BC0F135001860404603B0BDE8F083019BC0F1200103FA01F1C340009AA5 +:20D1A00001930A43C8F81420C1E700BF2DE9F04F946883B0924680460D461668002C6FD0D5 +:20D1C0004FF0000B08688B685C46002C43D09C421F4645D3AB8913F4906F44D06F692969AE +:20D1E00007EB470707EBD777C1EB0009621C7F104A44974234BF17463A465B0535D51146F5 +:20D200004046FCF7D3FC002839D029694A460190FCF768FFAA89019B22F4906242F08002FD +:20D22000AA81C9EB070203EB09006F612B612860AA602746A1464A46594600F0BBF8DAF829 +:20D240000820AB682868DB1B4844141BAB602860CAF8084024B3D6F800B074680836B4E7AB +:20D260002746A146E7E7B946E5E7404600F008F903460028D5D140462969FFF773FBAA8984 +:20D280000C23C8F8003042F0400200234FF0FF30AA81CAF80830CAF8043003B0BDE8F08F78 +:20D2A0002046CAF8044003B0BDE8F08FF0B5274C85B026680746D6F84841002C40D06568A3 +:20D2C0001F2D1EDD224818B94FF0FF3005B0F0BD4FF4C870039102920193FCF757FC0399E3 +:20D2E0000446029A019B0028EED0D6F848510020256060600546C6F84841C4F88801C4F867 +:20D300008C013FB96B1C00200235636044F8251005B0F0BD0126AE4004EB8500C0F888202B +:20D32000D4F88821022F42EA0602C4F88821C0F80831E7D1D4F88C311E43C4F88C61E1E7AA +:20D3400006F5A674C6F84841B9E700BFA4F000088D9B000810B502FB01F1FCF727FC044632 +:20D3600068B150F8042C22F00302043A242A18D8132A06D8034600221A605A609A6020466F +:20D3800010BD00231B2A036043600FD9242A8360C36005BF0361436100F1100300F118033A +:20D3A000E9E70021FCF714FF204610BD00F10803E1E700BF8842F0B410D98C18A0420DD204 +:20D3C0008518531E42B121462A4611F8014D013B02F8014D5C1CF8D1F0BC70470F2A44D9A0 +:20D3E00040EA01039B0744D1A2F110073F0900EB071610360C4603462568103343F8105CF6 +:20D400006568103443F80C5C54F8085C43F8085C54F8045C43F8045CB342EDD17B1C02F086 +:20D420000F0C1B01BCF1030F1944034423D90E461D46644656F8047B043C032C45F8047BFD +:20D44000F8D8ACF1040424F00304043402F0030223442144002ABFD01A4411F8014B03F8DA +:20D46000014B9342F9D1F0BC70470346002AF3D1B2E70346F0E76246002AEDD1ACE700BF8C +:20D480002DE9F04F0C4683B090468146002900F0BA80FCF7E7FE08F10B0654F8043C162E10 +:20D4A00023F00305A4F108074BD810210E46B0454CD88D4251DADFF884B37819DBF808E098 +:20D4C000864500F0A680426822F0010C8444DCF804C01CF0010F54D000221046DB076FD465 +:20D4E00054F8083CC3EB070ADAF8043023F003032B44002862D0704500F0E98002EB030EE9 +:20D500008E455BDBC3688268D046D3609A6058F8081FDAF80C302A1F242ACB60996000F278 +:20D520002381132A40F2B08023681B2ACAF808306368CAF80C3000F22B8108340AF110032D +:20D54000A3E026F00706002E3146B0DA0C230020C9F8003003B0BDE8F08FA046AA1B0F2AFB +:20D5600003F001031AD82B437B603D446B6843F001036B604846FCF777FE404603B0BDE84F +:20D58000F08F22F0030202EB050C8C45A6DBC2688168A046CA6065469160DFE7B9193343D8 +:20D5A00042F001007B600A4448605368083143F0010353604846FFF7D5F9DBE78B4233DA9B +:20D5C00041464846FCF7F2FA80460028D2D054F8043CA0F1080123F001023A44914200F04A +:20D5E000BC802A1F242A6ED8132A42D803462246116819605168596092689A6021464846BD +:20D60000FFF7B0F9B6E7114603B0BDE8F04FFCF7CDBADEF8042006F1100C22F003025019D9 +:20D6200060453DDA704659E7D04658F8080FDAF80C102A1F242AC160886000F2A080132ADE +:20D6400040F29B8021681B2ACAF808106168CAF80C1000F2B28008340AF1100221681D46D5 +:20D660001160616857465160A3689360DAF8043074E723681B2A03606368436062D800F1F7 +:20D68000080304F10802B3E74346226875461A60626857465A60A2689A60DAF804305DE72F +:20D6A000831B374443F00103CBF808707B6054F8043C484603F001031E4344F8046CFCF7F3 +:20D6C000D3FD20465AE72146FFF774FE96E702EB030C06F110029445FFF670AF574657F8A9 +:20D6E000081FDAF80C302A1F242ACB60996000F28680132A77D923681B2ACAF80830636820 +:20D70000CAF80C3000F2848008340AF1100322681A6062685A60A2689A60C6EB0C020AEB8B +:20D72000060342F00102CBF808305A60DAF80430484603F001031E43CAF80460FCF794FD60 +:20D7400038461BE7A368242A8360E368C3602BD000F1100304F110024AE750F8042CA0460A +:20D7600022F003021544F9E62146404675465746FFF720FEDAF80430F0E642466EE72146E1 +:20D7800040461D465746FFF715FEDAF80430E5E6A368242ACAF81030E368CAF8143018D095 +:20D7A00010340AF1180370E7226900F118030261616904F1180241611AE7A168242ACAF829 +:20D7C0001010E168CAF814100FD010340AF1180244E722690AF12003CAF8182062691834DD +:20D7E000CAF81C2051E73B4691E721690AF12002CAF8181061691834CAF81C102EE72146E9 +:20D800003846CDF804C0FFF7D5FDDDF804C084E7A368242ACAF81030E368CAF8143003D0B6 +:20D8200010340AF1180372E722690AF12003CAF8182062691834CAF81C2068E7040B0020FF +:20D84000F8B500BFF8BC08BC9E4670471DB80008656A00081121000891300008C145000884 +:20D86000054B0008196C0008F8B500BFF8BC08BC9E467047ED200008CC71FF7F0100000073 +:20D8800000000000000000000001020304050607101112131415161718191A1B1C1D1E1FF4 +:20D8A0002C202122232425262700C201000000080203000042000000D13000080000000005 +:20D8C0006131000800000000000000000000000009320008C53100085C0000209131000827 +:20D8E000000000004000000800000000000000001000000B5D3200080000000040000000EE +:20D90000400000004000000000030000000000000000000000000000000000000000000084 +:20D920000000000000000000000000000000000000000000000000000000000000000000E7 +:20D940000000000000000000000000000000000000000000000000000000000000000000C7 +:20D960000000000000000000000000000000000000000000000000000000000000000000A7 +:20D98000000000000000000000000000000000000000000000000000000000000000000087 +:20D9A000A012002000000000320100201200000000011201000200000140AF1E24000002E6 +:20D9C00001020001F4010000DCEA000804000000A0EA0008000000006CEA0008000000008C +:20D9E00000000000000000000300000088000020000000000000000200040006010100006E +:20DA0000190000001D410008000000001D4000080000000000000000ED4100087140000833 +:20DA200079410008A80100203D400008000000004000000B40000000E9EA00080900000067 +:20DA40000CEB0008050C0901A1018503150026FF0319002AFF03751095018100C0000000A4 +:20DA6000FCEA000804EB000814EB000805010902A10185010901A100050919012908150068 +:20DA8000250195087501810205010930093109381581257F750895038106C0C005010904A7 +:20DAA000A101851415002501750195200509190129208102150025073500463B01750495CB +:20DAC00001651405010939814205010901A100150026FF03750A95040930093109330934CF +:20DAE0008102C0150026FF03750A9502093609368102C005010906A1018502050719E02963 +:20DB0000E715002501750195088102950175088103950675081500256505071900296581CB +:20DB200000050819012908950875019102C00000000010000500008000000100B0020020BF +:20DB40000028014001000000002401400012000000000000000000000000000000000000E4 +:20DB6000C0020020C80200200000024007000000000000000B000000000000000C00000079 +:20DB8000000000000D000000000000000E000000000000000F00000000000000100000004B +:20DBA0000000000011000000E8020020000801400B000000000C01400C010000001001404B +:20DBC0000D020000001401400E0300000054004000000000000000000000000034030020E5 +:20DBE000000000000000000000000706121F200000000000000000000000000000000000C7 +:20DC0000000000000058004000000000000000000000000034030020000000000000000015 +:20DC200000000B0A1321220000000000000000000000000000000000000000001C1002400B +:20DC40001810024014100240101002400C1002401C100240181002401410024000040040B2 +:20DC60001C0100000000000000000000000000000000000000000000000000000000000087 +:20DC8000000800401D0100000000000000000000000000000000000000000000000000001E +:20DCA00000000000002C01401A0000000000000000000000000000000000000000000000DD +:20DCC000000000000000000000000000000000401B010000000000000000000000000000E8 +:20DCE000000000000000000000000000000000007C04002010050020A4050020003801400D +:20DD000004170020F816002020AA440000000000000000000000000000000000000000008C +:20DD20000000000000000000000000000000000000000000000000000000000000000000E3 +:20DD40000000000000000000000000000000000000000000000000000000000000000000C3 +:20DD60000000000000000000000000000000000000000000000000000000000000000000A3 +:20DD8000000000000000000000000000282500000044004010170020281700201055220085 +:20DDA000000000000000000000000000000000000000000000000000000000000000000063 +:20DDC000000000000000000000000000000000000000000000000000000000000000000043 +:20DDE000000000000000000000000000000000000000000000000000000000000000000023 +:20DE0000000000000000000000000000000000000000000000000000000000000000000002 +:20DE200029260000004800401C1700203417002010552200000000000000000000000000C6 +:20DE40000000000000000000000000000000000000000000000000000000000000000000C2 +:20DE60000000000000000000000000000000000000000000000000000000000000000000A2 +:20DE8000000000000000000000000000000000000000000000000000000000000000000082 +:20DEA00000000000000000000000000000000000000000002A2700003C06002000BF0000F0 +:20DEC000000000000000000000002D00A0EF000843000000915B0008755C000805670008FA +:20DEE00005670008795A0008CD5A00081D5B0008855B0008795B0008595B000800000000A4 +:20DF000040000000E3EF0008040000007CEF00081200000070EF00080C00000000C2010028 +:20DF200000000800056700082D5B0008056700080567000805670008056700080567000891 +:20DF400005670008495B00088EEF000812000000040101000000000000000000C409002017 +:20DF60002C0A0020940A00200000000000000000000000000000000000000000000000008D +:20DF8000000000000000000000000000A0F0000800000000000000000000000000000000E9 +:20DFA000000000000000000000000000000000000000000000000000000000000000000061 +:20DFC000000000000000000000000000000000000000000000000000000000000000000041 +:20DFE000000000000000000000000000000000000000000000000000000000000000000021 +:20E0000001000000000000000E33CDAB34126DE6ECDE05000B0000000000000000000000D3 +:20E020000000000000000000000000000000000000000000000000000000000000000000E0 +:20E040000000000000000000000000000000000000000000000000000000000000000000C0 +:20E060000000000000000000000000000000000000000000000000000000000000000000A0 +:20E08000000000000000000000000000000000000000000000000000000000000000000080 +:20E0A000000000000000000000000000000000000000000000000000000000000000000060 +:20E0C000000000000000000000000000000000000000000000000000000000000000000040 +:20E0E000000000000000000000000000000000000000000000000000000000000000000020 +:20E100000000000000000000000000000000000000000000000000000000000000000000FF +:20E120000000000000000000000000000000000000000000000000000000000000000000DF +:20E140000000000000000000000000000000000000000000000000000000000000000000BF +:20E1600000000000000000000000000000000000000000000000000000000000000000009F +:20E1800000000000000000000000000000000000000000000000000000000000000000007F +:20E1A00000000000000000000000000000000000000000000000000000000000000000005F +:20E1C00000000000000000000000000000000000000000000000000000000000000000003F +:20E1E00000000000000000000000000000000000000000000000000000000000000000001F +:20E200000000000000000000000000000000000000000000000000000000000000000000FE +:20E220000000000000000000000000000000000000000000000000000000000000000000DE +:20E240000000000000000000000000000000000000000000000000000000000000000000BE +:20E2600000000000000000000000000000000000000000000000000000000000000000009E +:20E2800000000000000000000000000000000000000000000000000000000000000000007E +:20E2A00000000000000000000000000000000000000000000000000000000000000000005E +:20E2C00000000000000000000000000000000000000000000000000000000000000000003E +:20E2E00000000000000000000000000000000000000000000000000000000000000000001E +:20E300000000000000000000000000000000000000000000000000000000000000000000FD +:20E320000000000000000000000000000000000000000000000000000000000000000000DD +:20E340000000000000000000000000000000000000000000000000000000000000000000BD +:20E3600000000000000000000000000000000000000000000000000000000000000000009D +:20E38000D80600200000000000000000040B0020040B00200C0B00200C0B0020140B002074 +:20E3A000140B00201C0B00201C0B0020240B0020240B00202C0B00202C0B0020340B0020E5 +:20E3C000340B00203C0B00203C0B0020440B0020440B00204C0B00204C0B0020540B0020C5 +:20E3E000540B00205C0B00205C0B0020640B0020640B00206C0B00206C0B0020740B0020A5 +:20E40000740B00207C0B00207C0B0020840B0020840B00208C0B00208C0B0020940B002084 +:20E42000940B00209C0B00209C0B0020A40B0020A40B0020AC0B0020AC0B0020B40B002064 +:20E44000B40B0020BC0B0020BC0B0020C40B0020C40B0020CC0B0020CC0B0020D40B002044 +:20E46000D40B0020DC0B0020DC0B0020E40B0020E40B0020EC0B0020EC0B0020F40B002024 +:20E48000F40B0020FC0B0020FC0B0020040C0020040C00200C0C00200C0C0020140C0020FF +:20E4A000140C00201C0C00201C0C0020240C0020240C00202C0C00202C0C0020340C0020DC +:20E4C000340C00203C0C00203C0C0020440C0020440C00204C0C00204C0C0020540C0020BC +:20E4E000540C00205C0C00205C0C0020640C0020640C00206C0C00206C0C0020740C00209C +:20E50000740C00207C0C00207C0C0020840C0020840C00208C0C00208C0C0020940C00207B +:20E52000940C00209C0C00209C0C0020A40C0020A40C0020AC0C0020AC0C0020B40C00205B +:20E54000B40C0020BC0C0020BC0C0020C40C0020C40C0020CC0C0020CC0C0020D40C00203B +:20E56000D40C0020DC0C0020DC0C0020E40C0020E40C0020EC0C0020EC0C0020F40C00201B +:20E58000F40C0020FC0C0020FC0C0020040D0020040D00200C0D00200C0D0020140D0020F6 +:20E5A000140D00201C0D00201C0D0020240D0020240D00202C0D00202C0D0020340D0020D3 +:20E5C000340D00203C0D00203C0D0020440D0020440D00204C0D00204C0D0020540D0020B3 +:20E5E000540D00205C0D00205C0D0020640D0020640D00206C0D00206C0D0020740D002093 +:20E60000740D00207C0D00207C0D0020840D0020840D00208C0D00208C0D0020940D002072 +:20E62000940D00209C0D00209C0D0020A40D0020A40D0020AC0D0020AC0D0020B40D002052 +:20E64000B40D0020BC0D0020BC0D0020C40D0020C40D0020CC0D0020CC0D0020D40D002032 +:20E66000D40D0020DC0D0020DC0D0020E40D0020E40D0020EC0D0020EC0D0020F40D002012 +:20E68000F40D0020FC0D0020FC0D0020040E0020040E00200C0E00200C0E0020140E0020ED +:20E6A000140E00201C0E00201C0E0020240E0020240E00202C0E00202C0E0020340E0020CA +:20E6C000340E00203C0E00203C0E0020440E0020440E00204C0E00204C0E0020540E0020AA +:20E6E000540E00205C0E00205C0E0020640E0020640E00206C0E00206C0E0020740E00208A +:20E70000740E00207C0E00207C0E0020840E0020840E00208C0E00208C0E0020940E002069 +:20E72000940E00209C0E00209C0E0020A40E0020A40E0020AC0E0020AC0E0020B40E002049 +:20E74000B40E0020BC0E0020BC0E0020C40E0020C40E0020CC0E0020CC0E0020D40E002029 +:20E76000D40E0020DC0E0020DC0E0020E40E0020E40E0020EC0E0020EC0E0020F40E002009 +:20E78000F40E0020FC0E0020FC0E002000000200FFFFFFFF24F10008D8F00008D8F0000848 +:20E7A000D8F00008D8F00008D8F00008D8F00008D8F00008D8F00008D8F00008FFFFFFFFAD +:20E7C000FFFFFFFFFFFFFFFFFFFF000000000000050C0901A1018503150026FF0319002A7E +:20E7E000FF03751095018100C005010906A1018502050719E029E715002501750195088199 +:20E8000002950175088103950675081500256505071900296581000508190129089508750A +:20E82000019102C005010904A101851415002501750195200509190129208102150025079B +:20E840003500463B0175049501651405010939814205010901A100150026FF03750A950468 +:20E8600009300931093309348102C0150026FF03750A9502093609368102C005010902A1A3 +:20E880000185010901A100050919012908150025019508750181020501093009310938154D +:20E8A00081257F750895038106C0C000EA00EB00EC00ED00EE00EF00F000F1008100F20038 +:20E8C000800087008200F300F400F500FA00E800E900F80060005B005D002D003D0031005D +:20E8E000320033003400350036003700380039003000B100B300DA00D900D800D700710005 +:20E9000077006500720074007900750069006F0070006100730064006600670068006A0028 +:20E920006B006C007A0078006300760062006E006D002C002E002F005C003B002700B200FF +:20E94000B0008600840085002000FFFFFFFFCE00D000F90060005B005D00CC00CD00C20052 +:20E96000C300C400C500C600C700C800C900CA00CB00B100C100D300D600D200D500710065 +:20E98000770065007200740079007500D1006F0070006100730064006600670068006A0040 +:20E9A0006B006C007A0078006300760062006E006D00F700F6002F005C003B002700D400CA +:20E9C000B0008600840085002000FFFFFFFF2564202564204D256420707265737365640A94 +:20E9E000002564202564204D25642072656C65617365640A0042256420707265737365649F +:20EA00000A00436C6F636B776F726B5049004465765465726D0032303231303533310073EC +:20EA20006574757020646F6E6500080B0002020201020904000001020201000524000110E9 +:20EA40000524010301042402060524060001070580031000FF09040100020A000000070564 +:20EA60000002400000070580024000004D61706C650009020000000100C032000567000825 +:20EA8000253600080567000805670008056700086536000805670008056700088D36000861 +:20EAA0004C6561664C6162730000000035370008BD37000805670008056700085135000876 +:20EAC000BD3500089D360008293700081D370008B936000800000000400000000403090452 +:20EAE0000904000001030100000921100100012200000705800340000A0000001C0200208F +:20EB000057000000730200203B000000C401002019000000EC010020300000000000000093 +:20EB2000000000002A2B280000000000000000000000000000000000000000002C9EB4A03A +:20EB4000A1A2A434A6A7A5AE362D3738271E1F20212223242526B333B62EB7B89F84858668 +:20EB60008788898A8B8C8D8E8F909192939495969798999A9B9C9D2F3130A3AD3504050653 +:20EB80000708090A0B0C0D0E0F101112131415161718191A1B1C1DAFB1B0B5000000000012 +:20EBA000000000000000000039430008C9690008A9690008BD4300081B44000819430008AA +:20EBC0000000000000000000BD470008D5470008A9690008F94500081B460008FD450008F2 +:20EBE0005D470008000000002C0300204C040020C8020020000100002C0300204C04002000 +:20EC0000C8020020010201002C0300204C040020C8020020020302002C0300204C04002097 +:20EC2000C8020020030403002C03002000000000C8020020040004002C0300200000000050 +:20EC4000C8020020050005002C030020DC030020C8020020060106002C030020DC0300202D +:20EC6000C8020020070207002C03002024040020000000000801FF002C0300202404002064 +:20EC8000000000000902FF002C03002024040020000000000A03FF002C0300202404002030 +:20ECA000000000000B04FF002C03002000000000000000000C00FF002C030020000000009D +:20ECC000000000000D00FF002C03002000000000000000000E00FF002C030020000000007D +:20ECE000000000000F00FF0034030020DC030020C80200200003080034030020DC03002065 +:20ED0000C8020020010409003403002000000000000000000200FF0034030020000000004C +:20ED2000000000000300FF003403002000000000000000000400FF00340300200000000020 +:20ED4000000000000500FF003403002000040020000000000601FF003403002000040020B3 +:20ED6000000000000702FF003403002000040020000000000803FF0034030020000400208B +:20ED8000000000000904FF003403002000000000000000000A00FF003403002000000000B0 +:20EDA000000000000B00FF003403002000000000000000000C00FF00340300200000000090 +:20EDC000000000000D00FF003403002000000000000000000E00FF0034030020000000006C +:20EDE000000000000F00FF003C03002000000000C802002000000A003C0300200000000053 +:20EE0000C802002001000B003C03002000000000C802002002000C003C0300200000000046 +:20EE2000C802002003000D003C03002000000000C802002004000E003C030020000000001E +:20EE4000C802002005000F003C03002000000000000000000600FF003C03002000000000F1 +:20EE6000000000000700FF003C03002000000000000000000800FF003C03002000000000C7 +:20EE8000000000000900FF003C03002000000000000000000A00FF003C03002000000000A3 +:20EEA000000000000B00FF003C03002000000000000000000C00FF003C030020000000007F +:20EEC000000000000D00FF003C03002000000000000000000E00FF003C030020000000005B +:20EEE000000000000F00FF004403002000000000000000000200FF002C03002034030020F6 +:20EF00000109010A010F0100001B020600000200000002040000010201030104010500008E +:20EF20000000000000150016001C0000010C000E00000202010B000000010002000000005C +:20EF400000000000000000000000000000000000010E00110012000000000017F000000078 +:20EF600000070000003800000000C00000C000000C034D00610070006C00650012034C0073 +:20EF80006500610066004C006100620073001201000202000040AF1E040000020102000195 +:20EFA00009024300020100C032090400000102020100052400011005240103010424020663 +:20EFC0000524060001070582034000FF09040100020A000000070503024000000705810237 +:20EFE000400000040309040000000000000000006D690008C9690008A969000825690008F5 +:20F00000EB6800083169000853690008000000000000000000000000276A0008C96900085C +:20F02000A9690008000000000000000000000000B16B0008C76B0008A9690008116B0008BA +:20F04000336B0008156B0008FD6B000800000000706F77007371727466000000000000008C +:20F0600000000000000000000000004003B8E23F000000000000000006D0CF43EBFD4C3E1A +:20F08000000000000000F03F000000000000F83F000000000000304300000000000030C3A4 +:20F0A00043000000D806002030303030303030303030303030303030494E4600696E6600F5 +:20F0C0004E414E006E616E00303132333435363738394142434445460000000030313233AE +:20F0E00034353637383961626364656600000000286E756C6C2900003000000020202020B8 +:20F10000202020202020202020202020496E66696E697479000000004E614E00504F5349ED +:20F12000580000002E000000000000000000F03F000000000000244000000000000059401D +:20F140000000000000408F40000000000088C34000000000006AF8400000000080842E4100 +:20F1600000000000D01263410000000084D797410000000065CDCD41000000205FA0024233 +:20F18000000000E876483742000000A2941A6D42000040E59C30A2420000901EC4BCD64236 +:20F1A00000003426F56B0C430080E03779C3414300A0D8855734764300C84E676DC1AB4315 +:20F1C000003D9160E458E143408CB5781DAF154450EFE2D6E41A4B4492D54D06CFF08044C2 +:20F1E000F64AE1C7022DB544B49DD9794378EA440080E03779C34143176E05B5B5B8934697 +:20F20000F5F93FE9034F384D321D30F94877825A3CBF737FDD4F157505000000190000002D +:20F220007D00000080D80008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:20F24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:20F26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:20F28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:20F2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:20F2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:20F2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:20F30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:20F32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:20F34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:20F36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:20F38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:20F3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:20F3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:20F3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:20F40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:20F42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:20F44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:20F46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:20F48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:20F4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:20F4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:20F4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:20F50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:20F52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:20F54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:20F56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:20F58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:20F5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:20F5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:20F5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:20F60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:20F62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:20F64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:20F66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:20F68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:20F6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:20F6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:20F6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:20F70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:20F72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:20F74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:20F76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:20F78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:20F7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:20F7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:20F7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:20F80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:20F82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:20F84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:20F86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:20F88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:20F8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:20F8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:20F8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:20F90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:20F92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:20F94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:20F96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:20F98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:20F9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:20F9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:20F9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:20FA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:20FA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:20FA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:20FA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:20FA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:20FAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:20FAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:20FAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:20FB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:20FB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:20FB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:20FB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:20FB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:20FBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:20FBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:20FBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:20FC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:20FC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:20FC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:20FC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:20FC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:20FCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:20FCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:20FCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:20FD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:20FD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:20FD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:20FD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:20FD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:20FDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:20FDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:20FDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:20FE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:20FE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:20FE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:20FE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:20FE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:20FEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:20FEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:20FEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:20FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:20FF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:20FF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:20FF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:20FF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:20FFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:20FFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:20FFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:00000001FF diff --git a/Code/devterm_keyboard_mini/hex/devterm.kbd.0.3_48mhz.bin b/Code/devterm_keyboard_mini/hex/devterm.kbd.0.3_48mhz.bin new file mode 100644 index 0000000000000000000000000000000000000000..0bbf5437453da6fc924a97327d77c532c39b6c1e GIT binary patch literal 65536 zcmeFad3;mXnKyp!BI()|w!8qcY(R@mY|9XVA#rwDHrIS1EmEQkPU6a0+9qw%kszL739Ztk;{=lSIv8}Zjr98-$tGl( zzB7I2o%!Q8@Hx8Yp5-~`p5-~`JkR$$CMCo?NQiJ9^JPcA@NYZ~4IcOZS3fWEU#`c0 zRT+1v!XU8_g+G$vUcR(?0Y59fF5T@icDWKm7k-x3Kosr>vAICVaO&3Pi<;&^lk*1+rTy*>-@Yc!Etg$i;C{tszdD4;2(EC}cw zpDkxNb0w{nb(;{cMM^{OZ&7zz2Q5a6NzyhDv$ozS8Bo9IqI55H5Ae|sm}Fk8*-&Y>{LSIE|d((u{2)xcsq`l!94p}DX9{|7gHq=;t5_g|Efm2 zeATVp0h`zAtMKJImuWQpO&1ascFE>mF7K_Sp(f`Zz9uyPLSkK+WJQ`&yr%!w3yJl1 ziSmHiiBwLbhVM_rvJ*|8(wJ1f-5MRGwx~=pG-S6iv)&A3dnkpIsZv(iB^@Yak5MS# zx&Gb{Jx-$h?qv_g4*jOL(Dt-VDes{?=UTMOk5r<(2^UinvFFE>LOFZi%kmQ z*f3i%H!MU+XGz@zi^keCbihWGJJlM56kQRrLbcQp<)T{RC(5lVUuX<5MYE$*5cX%4 zlnh0fB72nBNatkaVL-*3OB5GM{cuD;johIcUM-0f*uL}OmIzFn0|DRQ( zKON6i7xhuHYl1~vH(m=X^51ijiIU>z05KGz$;Cj(3ZWpJDiP-NF&->?!6a6H_ z+%z)a6zj!B2tAhgeAx9Ob7La*M&g6Oz(DVZ%6BKYGwV&VOJOiK^bH1?ab{B6b@mp__uiA#MNI@3VkI^}ccK^v=9$ z@IK~EQp6;z4>@-@Ic1dN2Bm85d`tB)l`Jkk!!lN9di856v2ksTby*sxOyk&L?i|

0?#>iiSk>_ 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 z +#include +#include + +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +#define MATRIX_KEYS 64 // 8*8 + +#ifndef DEBOUNCE +# define DEBOUNCE 20 +#endif + +void init_rows(); +void init_cols(); +uint8_t read_io(uint8_t io); + +void matrix_init(); +uint8_t matrix_scan(void); + +bool matrix_is_on(uint8_t row, uint8_t col); +uint8_t matrix_get_row(uint8_t row) ; + + +//void matrix_print(void); + + + +void keyboard_task(DEVTERM*); +void keyboard_init(DEVTERM*); + + +#define KEY_PRESSED 1 +#define KEY_RELEASED 0 + +#define KEY_PRNT_SCRN 0xCE //Print screen - 0x88 == usb hut1_12v2.pdf keyboard code +#define KEY_PAUSE 0xd0 // - 0x88 == usb hut1_12v2.pdf keyboard code + +#define KEY_VOLUME_UP 0x108 // - 0x88 == usb hut1_12v2.pdf keyboard code +#define KEY_VOLUME_DOWN 0x109 // - 0x88 == usb hut1_12v2.pdf keyboard code + +#endif diff --git a/Code/devterm_keyboard_mini/keyboard.ino b/Code/devterm_keyboard_mini/keyboard.ino new file mode 100644 index 0000000..242dc05 --- /dev/null +++ b/Code/devterm_keyboard_mini/keyboard.ino @@ -0,0 +1,203 @@ +#include "keyboard.h" +#include "helper.h" + +KEY_DEB keyboard_debouncing; + +uint8_t matrix_rows[ MATRIX_ROWS ]= {ROW1,ROW2,ROW3,ROW4,ROW5,ROW6,ROW7,ROW8}; +uint8_t matrix_cols[ MATRIX_COLS ] = {COL1,COL2,COL3,COL4,COL5,COL6,COL7,COL8}; + +/* matrix state(1:on, 0:off) */ +static uint8_t matrix[MATRIX_ROWS]; +static uint8_t matrix_debouncing[MATRIX_COLS]; +static uint8_t matrix_prev[MATRIX_ROWS]; + +uint8_t read_kbd_io(uint8_t io) { + +#if defined KEYBOARD_PULL && KEYBOARD_PULL == 0 + if(digitalRead(io) == LOW ){ + return 0; + }else { + return 1; + } +#elif defined KEYBOARD_PULL && KEYBOARD_PULL == 1 + if(digitalRead(io) == LOW ){ + return 1; + }else { + return 0; + } +#endif + +} + +void init_rows(){ + int i; + for(i=0;i<8;i++) { + +#if defined KEYBOARD_PULL && KEYBOARD_PULL == 0 + pinMode(matrix_rows[i],OUTPUT); + digitalWrite(matrix_rows[i],LOW); + pinMode(matrix_rows[i],INPUT_PULLDOWN); + +#elif defined KEYBOARD_PULL && KEYBOARD_PULL == 1 + pinMode(matrix_rows[i],INPUT_PULLUP); +#endif + + } +} + +void init_cols() { + + int i; + for(i=0;i<8;i++){ + pinMode(matrix_cols[i],OUTPUT); + digitalWrite(matrix_cols[i],LOW); + } +} + + + +void matrix_init() { + init_cols(); + init_rows(); + + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + matrix_prev[i] = 0; + } + + + delay(500); +} + +uint8_t matrix_scan(void) { + + uint8_t data; + for(int col = 0; col < MATRIX_COLS;col++){ + data = 0; + +#if defined KEYBOARD_PULL && KEYBOARD_PULL == 1 + + digitalWrite(matrix_cols[col],LOW); +#elif defined KEYBOARD_PULL && KEYBOARD_PULL == 0 + digitalWrite(matrix_cols[col],HIGH); + +#endif + delayMicroseconds(700); + + data =( + ( read_kbd_io(matrix_rows[0]) << 0 ) | + ( read_kbd_io(matrix_rows[1]) << 1 ) | + ( read_kbd_io(matrix_rows[2]) << 2 ) | + ( read_kbd_io(matrix_rows[3]) << 3 ) | + ( read_kbd_io(matrix_rows[4]) << 4 ) | + ( read_kbd_io(matrix_rows[5]) << 5 ) | + ( read_kbd_io(matrix_rows[6]) << 6 ) | + ( read_kbd_io(matrix_rows[7]) << 7 ) + ); + +#if defined KEYBOARD_PULL && KEYBOARD_PULL == 1 + digitalWrite(matrix_cols[col],HIGH); +#elif defined KEYBOARD_PULL && KEYBOARD_PULL == 0 + digitalWrite(matrix_cols[col],LOW); +#endif + + if (matrix_debouncing[col] != data) { + matrix_debouncing[col] = data; + keyboard_debouncing.deing = true; + keyboard_debouncing.de_time = millis(); + } + } + + if (keyboard_debouncing.deing == true && ( (millis() - keyboard_debouncing.de_time) > DEBOUNCE )) { + for (int row = 0; row < MATRIX_ROWS; row++) { + + matrix[row] = 0; + for (int col = 0; col < MATRIX_COLS; col++) { + matrix[row] |= ((matrix_debouncing[col] & (1 << row) ? 1 : 0) << col); + + } + + } + keyboard_debouncing.deing = false; + }else{ + delay(1); + } + + return 1; +} + + +bool matrix_is_on(uint8_t row, uint8_t col) { + return (matrix[row] & (1<_Serial->print(buff); + keyboard_action(dv,row,col,KEY_PRESSED); + } + +} + +void matrix_release(DEVTERM*dv,uint8_t row,uint8_t col) { + char buff[128]; + + + if(matrix_is_on(row,col) == false ){ + sprintf(buff,"%d %d M%d released\n",row,col,(row+1)*10+col+1); + //dv->_Serial->print(buff); + keyboard_action(dv,row,col,KEY_RELEASED); + + } + +} + +void keyboard_task(DEVTERM*dv) +{ + + uint8_t matrix_row = 0; + uint8_t matrix_change = 0; + uint8_t pressed = 0; + + matrix_scan(); + + for (uint8_t r = 0; r < MATRIX_ROWS; r++) { + matrix_row = matrix_get_row(r); + matrix_change = matrix_row ^ matrix_prev[r]; + if (matrix_change) { + uint8_t col_mask = 1; + for (uint8_t c = 0; c < MATRIX_COLS; c++, col_mask <<= 1) { + if (matrix_change & col_mask) { + pressed = (matrix_row & col_mask); + if(pressed != 0) { + matrix_press(dv,r,c); + }else { + matrix_release(dv,r,c); + } + matrix_prev[r] ^= col_mask; + + } + } + } + } + + +} + +void keyboard_init(DEVTERM*){ + matrix_init(); + keyboard_debouncing.deing=false; + keyboard_debouncing.de_time = 0; + +} diff --git a/Code/devterm_keyboard_mini/keymaps.ino b/Code/devterm_keyboard_mini/keymaps.ino new file mode 100644 index 0000000..06ffdf7 --- /dev/null +++ b/Code/devterm_keyboard_mini/keymaps.ino @@ -0,0 +1,443 @@ +#include "devterm.h" +#include "keyboard.h" +#include "keys.h" + +#define EMP 0XFFFF + +/* +B1 joystick up +B2 joystick down +B3 joystick left +B4 joystick right + +B5 joystick A +B6 joystick B +B7 joystick X +B8 joystick Y + +B9 left shift +B10 Fn +B11 left Ctrl +B12 Cmd +B13 left Alt +B14 mouse left +B15 mouse mid +B16 mouse right +*/ +#define _PRINT_KEY KEY_PRNT_SCRN +#define _PAUSE_KEY KEY_PAUSE + +#define _LEFT_SHIFT_KEY KEY_LEFT_SHIFT +#define _LEFT_CTRL_KEY KEY_LEFT_CTRL +#define _CMD_KEY KEY_RIGHT_GUI +#define _LEFT_ALT KEY_LEFT_ALT + +#define _FN_KEY_UP_ARROW KEY_PAGE_UP +#define _FN_KEY_DOWN_ARROW KEY_PAGE_DOWN +#define _FN_KEY_LEFT_ARROW KEY_HOME +#define _FN_KEY_RIGHT_ARROW KEY_END + +enum SKEYS { + _SELECT_KEY =0xe8, //Joystick.button(n) + _START_KEY, //Joystick.button(n) + _JOYSTICK_UP, //B1 //Joystick.Y() + _JOYSTICK_DOWN, //Joystick.Y() + _JOYSTICK_LEFT, //Joystick.X() + _JOYSTICK_RIGHT, //Joystick.X() + _JOYSTICK_A, //Joystick.button(1) + _JOYSTICK_B, //Joystick.button(2) + _JOYSTICK_X, //Joystick.button(3) + _JOYSTICK_Y, //Joystick.button(4) + _FN_KEY, + _MOUSE_LEFT, // Mouse.press(1) + _MOUSE_MID, // Mouse.press(2) + _MOUSE_RIGHT, // Mouse.press(3) + + _FN_BRIGHTNESS_UP, //USB Consumer brightness up https://github.com/torvalds/linux/blob/7fe10096c1508c7f033d34d0741809f8eecc1ed4/drivers/hid/hid-input.c#L903 + _FN_BRIGHTNESS_DOWN, //USB Consumer brightness down + + _VOLUME_M, + _VOLUME_P, + _VOLUME_MUTE, //https://github.com/torvalds/linux/blob/7fe10096c1508c7f033d34d0741809f8eecc1ed4/drivers/hid/hid-input.c#L956 + _TRACKBALL_BTN, + _FN_LOCK_KEYBOARD, + _FN_LIGHT_KEYBOARD, +}; + +#define DEF_LAYER 0x00 +#define FN_LAYER 0x01 + + +/* + * keyboard_maps + * M11 - M18 + * M21 - M28 + * M31 - M38 + * M41 - M48 + * M51 - M58 + * M61 - M68 + * M71 - M78 + * M81 - M88 + */ +const uint16_t keyboard_maps[][MATRIX_KEYS] = { + + [DEF_LAYER] = { _SELECT_KEY,_START_KEY,_VOLUME_M,'`','[',']','-','=', \ + '1','2','3','4','5','6','7','8',\ + '9','0',KEY_ESC,KEY_TAB,EMP,EMP,EMP,EMP, \ + 'q','w','e','r','t','y','u','i', \ + 'o','p','a','s','d','f','g','h',\ + 'j','k','l','z','x','c','v','b', \ + 'n','m',',','.','/','\\',';','\'', \ + KEY_RETURN,KEY_BACKSPACE,_FN_KEY,_FN_KEY,' ',EMP,EMP,EMP}, + + [FN_LAYER] = { _PRINT_KEY,_PAUSE_KEY,_VOLUME_MUTE,'`','[',']',KEY_F11,KEY_F12, \ + KEY_F1,KEY_F2,KEY_F3,KEY_F4,KEY_F5,KEY_F6,KEY_F7,KEY_F8,\ + KEY_F9,KEY_F10,_FN_LOCK_KEYBOARD,KEY_CAPS_LOCK,EMP,EMP,EMP,EMP, \ + 'q','w','e','r','t','y',KEY_PAGE_UP,KEY_INSERT, \ + 'o','p','a','s','d','f','g',KEY_HOME,\ + KEY_END,KEY_PAGE_DOWN,'l','z','x','c','v','b', \ + 'n','m',_FN_BRIGHTNESS_DOWN,_FN_BRIGHTNESS_UP,'/','\\',';','\'', \ + KEY_RETURN,KEY_DELETE,_FN_KEY,_FN_KEY,_FN_LIGHT_KEYBOARD,EMP,EMP,EMP} + +}; + + +static uint8_t fn_actions[MATRIX_KEYS]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; + +const uint16_t keys_maps[KEYS_NUM] = {_JOYSTICK_UP,_JOYSTICK_DOWN, _JOYSTICK_LEFT, \ + _JOYSTICK_RIGHT,_JOYSTICK_A,_JOYSTICK_B, \ + _JOYSTICK_X,_JOYSTICK_Y,_LEFT_SHIFT_KEY,_FN_KEY,\ + _LEFT_CTRL_KEY,_CMD_KEY , _LEFT_ALT, \ + _MOUSE_LEFT,_MOUSE_MID,_MOUSE_RIGHT,_TRACKBALL_BTN}; + + +uint8_t check_pd2(){ // if swtich 2 in back is set to on(HIGH) + + return digitalRead(PD2); +} + +void dt_kbd_set_layer(DEVTERM*dv,uint8_t new_layer) { + + if( dv->Keyboard_state.layer != new_layer) { + + dv->Keyboard_state.prev_layer = dv->Keyboard_state.layer; + dv->Keyboard_state.layer = new_layer; + } +} + +void dt_kbd_restore_layer(DEVTERM*dv) { + + dv->Keyboard_state.layer = dv->Keyboard_state.prev_layer; + +} + +void keyboard_action(DEVTERM*dv,uint8_t row,uint8_t col,uint8_t mode) { + + uint16_t k; + uint8_t addr; + addr = row*MATRIX_COLS+col; + if(dv->Keyboard_state.fn_on > 0){ + k = keyboard_maps[dv->Keyboard_state.fn_on][addr]; + fn_actions[addr] = 1; + }else { + k = keyboard_maps[dv->Keyboard_state.layer][addr]; + } + + if(k == EMP){ + return; + } + + switch(k) { + case KEY_RIGHT_SHIFT:{ + if(mode == KEY_PRESSED) { + dv->Keyboard->press(k); + }else { + dv->Keyboard->release(k); + } + }break; + + case KEY_CAPS_LOCK: + if(mode == KEY_PRESSED) { + + dv->Keyboard->press(k); + dv->Keyboard->setAdjustForHostCapsLock(true); + }else if(mode == KEY_RELEASED) { + + dv->Keyboard->setAdjustForHostCapsLock(false); + dv->Keyboard->release(k); + } + + break; + + case _SELECT_KEY: + if(check_pd2() == HIGH) { + k = ' '; + if(mode == KEY_PRESSED) { + dv->Keyboard->press(k); + }else if(mode == KEY_RELEASED) { + dv->Keyboard->release(k); + } + }else { + dv->Joystick->button(9,mode); + } + break; + case _START_KEY: + if(check_pd2() == HIGH) { + k = KEY_RETURN; + if(mode == KEY_PRESSED) { + dv->Keyboard->press(k); + }else if(mode == KEY_RELEASED) { + dv->Keyboard->release(k); + } + }else { + dv->Joystick->button(10,mode); + } + break; + + case _FN_BRIGHTNESS_UP: + if(mode == KEY_PRESSED) { + dv->Consumer->press(HIDConsumer::BRIGHTNESS_UP); + }else { + dv->Consumer->release(); + } + break; + case _FN_BRIGHTNESS_DOWN: + if(mode == KEY_PRESSED) { + dv->Consumer->press(HIDConsumer::BRIGHTNESS_DOWN); + }else { + dv->Consumer->release(); + } + break; + + case _VOLUME_P:{ + if(mode == KEY_PRESSED) { + dv->Consumer->press(HIDConsumer::VOLUME_UP); + }else { + dv->Consumer->release(); + } + }break; + case _VOLUME_M:{ + if(mode == KEY_PRESSED) { + dv->Consumer->press(HIDConsumer::VOLUME_DOWN); + }else { + dv->Consumer->release(); + } + }break; + + default: + if(mode == KEY_PRESSED) { + dv->Keyboard->press(k); + }else if(mode == KEY_RELEASED) { + dv->Keyboard->release(k); + + if(dv->Keyboard_state.fn_on > 0){ + fn_actions[addr] = 0; + } + } + break; + } + + +} + + +void keypad_action(DEVTERM*dv,uint8_t col,uint8_t mode) { + + uint16_t k; + + k = keys_maps[col]; + + if(k == EMP){ + return; + } + + + switch(k) { + case _LEFT_SHIFT_KEY: + if(mode == KEY_PRESSED) { + dv->Keyboard->press(k); + }else if(mode == KEY_RELEASED) { + dv->Keyboard->release(k); + } + break; + case _FN_KEY: + if(mode == KEY_PRESSED){ + dv->Keyboard_state.fn_on = FN_LAYER; + + }else if(mode == KEY_RELEASED ) { + //release all pressed fn keys if they still been pressing + for(int i=0;i<64;i++) { + if(fn_actions[i] !=0) { + k = keyboard_maps[dv->Keyboard_state.fn_on][i]; + dv->Keyboard->release(k); + fn_actions[i] = 0; + } + } + + dv->Keyboard_state.fn_on = 0; + } + break; + + case _JOYSTICK_UP: + if(check_pd2() == HIGH) { + k = KEY_UP_ARROW; + if(mode == KEY_PRESSED) { + dv->Keyboard->press(k); + }else if(mode == KEY_RELEASED) { + dv->Keyboard->release(k); + } + }else { + if(mode == KEY_RELEASED){ + dv->Joystick->Y(511); + }else { + dv->Joystick->Y(0); + } + } + break; + case _JOYSTICK_DOWN: + if(check_pd2() == HIGH) { + k = KEY_DOWN_ARROW; + if(mode == KEY_PRESSED) { + dv->Keyboard->press(k); + }else if(mode == KEY_RELEASED) { + dv->Keyboard->release(k); + } + }else { + if(mode == KEY_RELEASED){ + dv->Joystick->Y(511); + }else { + dv->Joystick->Y(1023); + } + } + break; + case _JOYSTICK_LEFT: + if(check_pd2() == HIGH) { + k = KEY_LEFT_ARROW; + if(mode == KEY_PRESSED) { + dv->Keyboard->press(k); + }else if(mode == KEY_RELEASED) { + dv->Keyboard->release(k); + } + }else { + if(mode == KEY_RELEASED){ + dv->Joystick->X(511); + }else { + dv->Joystick->X(0); + } + } + break; + case _JOYSTICK_RIGHT: + if(check_pd2() == HIGH) { + k = KEY_RIGHT_ARROW; + if(mode == KEY_PRESSED) { + dv->Keyboard->press(k); + }else if(mode == KEY_RELEASED) { + dv->Keyboard->release(k); + } + }else { + if(mode == KEY_RELEASED){ + dv->Joystick->X(511); + }else { + dv->Joystick->X(1023); + } + } + break; + case _JOYSTICK_A: + if(check_pd2() == HIGH) { + k = 'j'; + if(mode == KEY_PRESSED) { + dv->Keyboard->press(k); + }else if(mode == KEY_RELEASED) { + dv->Keyboard->release(k); + } + }else { + dv->Joystick->button(2,mode); + } + break; + case _JOYSTICK_B: + if(check_pd2() == HIGH) { + k = 'k'; + if(mode == KEY_PRESSED) { + dv->Keyboard->press(k); + }else if(mode == KEY_RELEASED) { + dv->Keyboard->release(k); + } + }else { + dv->Joystick->button(3,mode); + } + break; + case _JOYSTICK_X: + if(check_pd2() == HIGH) { + k = 'u'; + if(mode == KEY_PRESSED) { + dv->Keyboard->press(k); + }else if(mode == KEY_RELEASED) { + dv->Keyboard->release(k); + } + }else { + dv->Joystick->button(1,mode); + } + break; + case _JOYSTICK_Y: + if(check_pd2() == HIGH) { + k = 'i'; + if(mode == KEY_PRESSED) { + dv->Keyboard->press(k); + }else if(mode == KEY_RELEASED) { + dv->Keyboard->release(k); + } + }else { + dv->Joystick->button(4,mode); + } + break; + case _MOUSE_LEFT: + if(mode == KEY_PRESSED){ + dv->Mouse->press(1); + }else if(mode == KEY_RELEASED){ + dv->Mouse->release(1); + } + break; + case _MOUSE_MID: + if(mode == KEY_PRESSED) { + dv->state->pressMiddleClick(); + }else { + if(dv->state->getScrolled() == false){ + //if no scrolling happend ,do as a normal mid mouse key click + dv->Mouse->click(MOUSE_MIDDLE); + } + dv->state->releaseMiddleClick(); + + } + break; + + case _MOUSE_RIGHT: + if(mode == KEY_PRESSED){ + dv->Mouse->press(2); + }else if(mode == KEY_RELEASED){ + dv->Mouse->release(2); + } + break; + + //_LEFT_CTRL_KEY,_CMD_KEY , _LEFT_ALT + case _LEFT_CTRL_KEY: + case _CMD_KEY: + case _LEFT_ALT: + if(mode == KEY_PRESSED){ + dv->Keyboard->press(k); + }else { + dv->Keyboard->release(k); + } + break; + + case _TRACKBALL_BTN: + if(mode == KEY_PRESSED){ + dv->Mouse->press(1); + }else if(mode == KEY_RELEASED){ + dv->Mouse->release(1); + } + break; + default:break; + + } + +} diff --git a/Code/devterm_keyboard_mini/keys.h b/Code/devterm_keyboard_mini/keys.h new file mode 100644 index 0000000..93b537b --- /dev/null +++ b/Code/devterm_keyboard_mini/keys.h @@ -0,0 +1,27 @@ +#ifndef KEYS_H +#define KEYS_H +/* + * keys include the joystick and mouse left/mid/right keys + */ + +#include "devterm.h" +#include "keys_io_map.h" + +#include +#include +#include + + +#ifndef KEY_DEBOUNCE +# define KEY_DEBOUNCE 5 +#endif + +#define KEYS_NUM 17 + + +void keys_task(DEVTERM*); +void keys_init(DEVTERM*); + + + +#endif diff --git a/Code/devterm_keyboard_mini/keys.ino b/Code/devterm_keyboard_mini/keys.ino new file mode 100644 index 0000000..a1a80f9 --- /dev/null +++ b/Code/devterm_keyboard_mini/keys.ino @@ -0,0 +1,106 @@ +#include "keys.h" + +KEY_DEB keypad_debouncing; + +uint8_t keys_io[ KEYS_NUM ]= {KEY1,KEY2,KEY3,KEY4,KEY5,KEY6,KEY7,KEY8,KEY9,KEY10,KEY11,KEY12,KEY13,KEY14,KEY15,KEY16,KEY0}; + +/* keys state(1:on, 0:off) */ +static uint32_t keys; +static uint32_t keys_debouncing; +static uint32_t keys_prev; + +void init_keys(){ + int i; + for(i=0;i KEY_DEBOUNCE )) { + keys = keys_debouncing; + keypad_debouncing.deing = false; + }else { + delay(1); + } + + return 1; +} + + +void print_keys(DEVTERM*dv) { + char buff[128]; + + for (int i = 0; i < KEYS_NUM; i++) { + if( keys & (1<< i) ){ + sprintf(buff,"B%d pressed\n",i+1); + dv->_Serial->print(buff); + } + } + + +} + +void keys_task(DEVTERM*dv){ + + scan_keys(); + + uint32_t _mask =1; + uint32_t _change = 0; + uint32_t _pressed = 0; + + _change = keys ^ keys_prev; + + if(_change) { + + for(uint8_t c=0;c < KEYS_NUM;c++,_mask <<=1) { + if (_change & _mask) { + _pressed = keys & _mask; + if(_pressed) { + keypad_action(dv,c,KEY_PRESSED); + }else { + keypad_action(dv,c,KEY_RELEASED); + } + + keys_prev ^= _mask; + } + + } + } + +} +void keys_init(DEVTERM*dv){ + + init_keys(); + //center the position + dv->Joystick->X(511); + dv->Joystick->Y(511); + + keypad_debouncing.deing = false; + keypad_debouncing.de_time = 0; + +} diff --git a/Code/devterm_keyboard_mini/keys_io_map.h b/Code/devterm_keyboard_mini/keys_io_map.h new file mode 100644 index 0000000..a579326 --- /dev/null +++ b/Code/devterm_keyboard_mini/keys_io_map.h @@ -0,0 +1,49 @@ +#ifndef KEYS_IO_MAP_H +#define KEYS_IO_MAP_H + +#define ROW1 PA0 +#define ROW2 PA1 +#define ROW3 PA2 +#define ROW4 PA3 +#define ROW5 PA4 +#define ROW6 PA5 +#define ROW7 PA6 +#define ROW8 PA7 + +#define COL1 PC0 +#define COL2 PC1 +#define COL3 PC2 +#define COL4 PC3 +#define COL5 PC4 +#define COL6 PC5 +#define COL7 PC6 +#define COL8 PC7 + +#define KEY1 PB0 // +#define KEY2 PB1 +#define KEY3 PB2 +#define KEY4 PB3 +#define KEY5 PB4 +#define KEY6 PB5 +#define KEY7 PB6 +#define KEY8 PB7 +#define KEY9 PB8 +#define KEY10 PB9 +#define KEY11 PB10 +#define KEY12 PB11 +#define KEY13 PB12 +#define KEY14 PB13 +#define KEY15 PB14 +#define KEY16 PB15 // + +//ball +#define HO1 PC8 +#define HO2 PC9 +#define HO3 PC10 +#define HO4 PC11 +#define KEY0 PC12 + + + + +#endif diff --git a/Code/devterm_keyboard_mini/math.h b/Code/devterm_keyboard_mini/math.h new file mode 100644 index 0000000..8e6ccdf --- /dev/null +++ b/Code/devterm_keyboard_mini/math.h @@ -0,0 +1,56 @@ +#ifndef MATH_H +#define MATH_H + +#include +#include +#include + +uint32_t getDelta(uint32_t prev, uint32_t now); +uint32_t getDelta(uint32_t prev, uint32_t now, uint32_t max); + +template +T sign(T value) { + if (value > 0) { + return 1; + } + if (value < 0) { + return -1; + } + return 0; +} + +template +T clamp(U value) { + if (value >= std::numeric_limits().max()) { + return std::numeric_limits().max(); + } + + if (value <= std::numeric_limits().min()) { + return std::numeric_limits().min(); + } + + return value; +} + +template +T min(T x, T y) { + if (x < y) { + return x; + } + return y; +} + +template +T max(T x, T y) { + if (x > y) { + return x; + } + return y; +} + +template +T hypot(T x, T y) { + return std::sqrt(x * x + y * y); +} + +#endif diff --git a/Code/devterm_keyboard_mini/math.ino b/Code/devterm_keyboard_mini/math.ino new file mode 100644 index 0000000..fe6f058 --- /dev/null +++ b/Code/devterm_keyboard_mini/math.ino @@ -0,0 +1,23 @@ +#include + +#include "math.h" + +uint32_t getDelta(uint32_t prev, uint32_t now) { + uint32_t delta; + if (now >= prev) { + delta = now - prev; + } else { + delta = std::numeric_limits().max() - prev - now + 1; + } + return delta; +} + +uint32_t getDelta(uint32_t prev, uint32_t now, uint32_t max) { + const auto delta = getDelta(prev, now); + + if (delta < max) { + return delta; + } + + return max; +} diff --git a/Code/devterm_keyboard_mini/ratemeter.h b/Code/devterm_keyboard_mini/ratemeter.h new file mode 100644 index 0000000..451b189 --- /dev/null +++ b/Code/devterm_keyboard_mini/ratemeter.h @@ -0,0 +1,38 @@ +#ifndef RATEMETER_H +#define RATEMETER_H + +#include + +#include "debouncer.h" + +class RateMeter { +public: + RateMeter(); + void onInterrupt(); + void tick(millis_t delta); + void expire(); + + uint16_t delta() const; + // Hall sensor edges per seconds. + // stopped: 0 + // really slow => ~3 + // medium => ~30 + // fast => < 300 + // max => 1000 + float rate() const; + +private: + uint32_t lastTime; + + // really Range, emperically: + // fast => < 5_000 us, + // medium => 20_000 - 40_000 us + // really slow => 250_000 us + uint32_t averageDelta; + + static const uint16_t CUTOFF_MS = 1000; + // Cut off after some seconds to prevent multiple timestamp overflow (~70 mins) + Timeout cutoff; +}; + +#endif diff --git a/Code/devterm_keyboard_mini/ratemeter.ino b/Code/devterm_keyboard_mini/ratemeter.ino new file mode 100644 index 0000000..bcc3528 --- /dev/null +++ b/Code/devterm_keyboard_mini/ratemeter.ino @@ -0,0 +1,47 @@ +#include +#include + +#include "ratemeter.h" +#include "math.h" + +RateMeter::RateMeter() +: lastTime(0) +{} + +void RateMeter::onInterrupt() { + const auto now = millis(); + if (cutoff.get()) { + averageDelta = CUTOFF_MS; + } else { + const auto delta = getDelta(lastTime, now, CUTOFF_MS); + averageDelta = (averageDelta + delta) / 2; + } + lastTime = now; + cutoff.reset(); +} + +void RateMeter::tick(millis_t delta) { + cutoff.updateTime(delta); + if (!cutoff.get()) { + averageDelta += delta; + } +} + +void RateMeter::expire() { + cutoff.expire(); +} + +uint16_t RateMeter::delta() const { + return averageDelta; +} + +float RateMeter::rate() const { + if (cutoff.get()) { + return 0.0f; + } else if (averageDelta == 0) { + // to ensure range 0 ~ 1000.0 + return 1000.0f; + } else { + return 1000.0f / (float)averageDelta; + } +} diff --git a/Code/devterm_keyboard_mini/state.h b/Code/devterm_keyboard_mini/state.h new file mode 100644 index 0000000..8d65173 --- /dev/null +++ b/Code/devterm_keyboard_mini/state.h @@ -0,0 +1,37 @@ +#ifndef STATE_H +#define STATE_H + +#include +#include +#include + +#include "debouncer.h" + +enum class TrackballMode : uint8_t { + Wheel, + Mouse, +}; + +class State +{ + public: + static const uint16_t MIDDLE_CLICK_TIMEOUT_MS = 0; + + State(); + + void tick(uint8_t delta); + + bool fn; + + void pressMiddleClick(); + bool releaseMiddleClick(); + bool getScrolled(); + void setScrolled(); + TrackballMode moveTrackball(); + private: + bool middleClick; + bool scrolled; + Timeout middleClickTimeout; +}; + +#endif diff --git a/Code/devterm_keyboard_mini/state.ino b/Code/devterm_keyboard_mini/state.ino new file mode 100644 index 0000000..b0fc330 --- /dev/null +++ b/Code/devterm_keyboard_mini/state.ino @@ -0,0 +1,47 @@ +#include +#include +#include + +#include "state.h" + +State::State() + : fn(false), + middleClick(false), + scrolled(false) +{ +} + +void State::tick(millis_t delta) +{ + middleClickTimeout.updateTime(delta); +} +void State::setScrolled() { + if(middleClick==true){ + scrolled = true; + } +} + +bool State::getScrolled() { + return scrolled; +} + +void State::pressMiddleClick() { + middleClick = true; + middleClickTimeout.reset(); +} + +bool State::releaseMiddleClick() { + middleClick = false; + scrolled = false; + const auto timeout = middleClickTimeout.get(); + return !timeout; +} + +TrackballMode State::moveTrackball() { + middleClickTimeout.expire(); + if (middleClick) { + return TrackballMode::Wheel; + } else { + return TrackballMode::Mouse; + } +} diff --git a/Code/devterm_keyboard_mini/tickwaiter.h b/Code/devterm_keyboard_mini/tickwaiter.h new file mode 100644 index 0000000..9698024 --- /dev/null +++ b/Code/devterm_keyboard_mini/tickwaiter.h @@ -0,0 +1,30 @@ +#ifndef TICKWAITER_H +#define TICKWAITER_H + +#include +#include "math.h" + +template +class TickWaiter { + public: + uint8_t waitForNextTick() { + const auto last = this->last; + const auto now = millis(); + this->last = now; + + const auto delta = getDelta(last, now, 255); + + if (delta >= TargetInterval) { + return delta; + } + + delay(TargetInterval - delta); + + const auto now2 = millis(); + return getDelta(last, now2, 255); + } + private: + uint32_t last = 0; +}; + +#endif diff --git a/Code/devterm_keyboard_mini/trackball.h b/Code/devterm_keyboard_mini/trackball.h new file mode 100644 index 0000000..cc75212 --- /dev/null +++ b/Code/devterm_keyboard_mini/trackball.h @@ -0,0 +1,25 @@ +#ifndef TRACKBALL_H +#define TRACKBALL_H + +#include "devterm.h" + +#include "keys_io_map.h" + +/* +#define BOUNCE_INTERVAL 30 +#define BASE_MOVE_PIXELS 5 +#define EXPONENTIAL_BOUND 15 +#define EXPONENTIAL_BASE 1.2 +*/ + +#define RIGHT_PIN HO3 +#define LEFT_PIN HO1 +#define DOWN_PIN HO4 +#define UP_PIN HO2 + + +void trackball_init(DEVTERM*); +void trackball_task(DEVTERM*); + + +#endif diff --git a/Code/devterm_keyboard_mini/trackball.ino b/Code/devterm_keyboard_mini/trackball.ino new file mode 100644 index 0000000..2b0f797 --- /dev/null +++ b/Code/devterm_keyboard_mini/trackball.ino @@ -0,0 +1,130 @@ +/* + * clockworkpi devterm trackball + */ +#include "keys_io_map.h" + +#include +#include +#include + +#include + + +#include "trackball.h" + +#include "ratemeter.h" +#include "glider.h" +#include "math.h" + + + +enum Axis: uint8_t { + AXIS_X, + AXIS_Y, + AXIS_NUM, +}; +static TrackballMode lastMode; +static int8_t distances[AXIS_NUM]; +static RateMeter rateMeter[AXIS_NUM]; +static Glider glider[AXIS_NUM]; + +static const int8_t WHEEL_DENOM = 2; +static int8_t wheelBuffer; + +static float rateToVelocityCurve(float input) { + //return std::pow(std::abs(input) / 50, 1.4); + return std::abs(input) / 30; +} + +template +static void interrupt( ) { + distances[AXIS] += Direction; + rateMeter[AXIS].onInterrupt(); + glider[AXIS].setDirection(Direction); + + const auto rx = rateMeter[AXIS_X].rate(); + const auto ry = rateMeter[AXIS_Y].rate(); + + const auto rate = std::sqrt(rx * rx + ry * ry); + const auto ratio = rateToVelocityCurve(rate) / rate; + + const auto vx = rx * ratio; + const auto vy = ry * ratio; + + if (AXIS == AXIS_X) { + glider[AXIS_X].update(vx, std::sqrt(rateMeter[AXIS_X].delta())); + glider[AXIS_Y].updateSpeed(vy); + + } else { + glider[AXIS_X].updateSpeed(vx); + glider[AXIS_Y].update(vy, std::sqrt(rateMeter[AXIS_Y].delta())); + + } + + +} + +void trackball_task(DEVTERM*dv) { + int8_t x = 0, y = 0, w = 0; + noInterrupts(); + const auto mode = dv->state->moveTrackball(); + if (lastMode != mode) { + rateMeter[AXIS_X].expire(); + rateMeter[AXIS_Y].expire(); + wheelBuffer = 0; + } + else { + rateMeter[AXIS_X].tick(dv->delta); + rateMeter[AXIS_Y].tick(dv->delta); + } + lastMode = mode; + + switch(mode){ + case TrackballMode::Mouse: { + const auto rX = glider[AXIS_X].glide(dv->delta); + const auto rY = glider[AXIS_Y].glide(dv->delta); + x = rX.value; + y = rY.value; + if (rX.stopped) { + glider[AXIS_Y].stop(); + } + if (rY.stopped) { + glider[AXIS_Y].stop(); + } + + break; + } + case TrackballMode::Wheel: { + wheelBuffer += distances[AXIS_Y]; + w = wheelBuffer / WHEEL_DENOM; + wheelBuffer -= w * WHEEL_DENOM; + if(w != 0){ + dv->state->setScrolled(); + } + break; + } + } + distances[AXIS_X] = 0; + distances[AXIS_Y] = 0; + interrupts(); + + if(x !=0 || y != 0 || -w!=0) { + dv->Mouse->move(x, y, -w); + } + +} + + +void trackball_init(DEVTERM*dv){ + + pinMode(LEFT_PIN, INPUT); + pinMode(UP_PIN, INPUT); + pinMode(RIGHT_PIN, INPUT); + pinMode(DOWN_PIN, INPUT); + + attachInterrupt(LEFT_PIN, &interrupt , ExtIntTriggerMode::CHANGE); + attachInterrupt(RIGHT_PIN, &interrupt, ExtIntTriggerMode::CHANGE); + attachInterrupt(UP_PIN, &interrupt, ExtIntTriggerMode::CHANGE); + attachInterrupt(DOWN_PIN, &interrupt, ExtIntTriggerMode::CHANGE); + +}