initial
authorJoerg Jaspert <joerg@debian.org>
Sun, 24 Feb 2013 22:45:39 +0000 (23:45 +0100)
committerJoerg Jaspert <joerg@debian.org>
Sun, 24 Feb 2013 22:45:39 +0000 (23:45 +0100)
59 files changed:
.zsh/.gitignore [new file with mode: 0644]
.zsh/.zlogout [new file with mode: 0644]
.zsh/.zshrc [new file with mode: 0644]
.zsh/00_Basics.zsh [new file with mode: 0644]
.zsh/05_Functions.zsh [new file with mode: 0644]
.zsh/10_Environment.zsh [new file with mode: 0644]
.zsh/12_Locale.zsh [new file with mode: 0644]
.zsh/15_Colors.zsh [new file with mode: 0644]
.zsh/20_Prompts.zsh [new file with mode: 0644]
.zsh/25_ZshHighlight.zsh [new file with mode: 0644]
.zsh/30_Options.zsh [new file with mode: 0644]
.zsh/35_Aliases.zsh [new file with mode: 0644]
.zsh/40_Hashes.zsh [new file with mode: 0644]
.zsh/45_Completion.zsh [new file with mode: 0644]
.zsh/50_Trash.zsh [new file with mode: 0644]
.zsh/55_KeyBindings.zsh [new file with mode: 0644]
.zsh/60_Modules.zsh [new file with mode: 0644]
.zsh/65_Editor.zsh [new file with mode: 0644]
.zsh/90_Plugins.zsh [new file with mode: 0644]
.zsh/99_Exec.zsh [new file with mode: 0644]
.zsh/README [new file with mode: 0644]
.zsh/distri:Debian/Aliases.zsh [new file with mode: 0644]
.zsh/distri:Debian/Completion.zsh [new file with mode: 0644]
.zsh/distri:Debian/Functions.zsh [new file with mode: 0644]
.zsh/functions/grpname [new file with mode: 0644]
.zsh/functions/insert-datestamp [new file with mode: 0644]
.zsh/functions/jump_after_first_word [new file with mode: 0644]
.zsh/functions/logout [new file with mode: 0644]
.zsh/functions/mcdrom [new file with mode: 0644]
.zsh/functions/md [new file with mode: 0644]
.zsh/functions/periodic [new file with mode: 0644]
.zsh/functions/precmd [new file with mode: 0644]
.zsh/functions/preexec [new file with mode: 0644]
.zsh/functions/reallyexit [new file with mode: 0644]
.zsh/functions/safe-restore-ssh-agent-socket [new file with mode: 0644]
.zsh/functions/salias [new file with mode: 0644]
.zsh/functions/setprompt [new file with mode: 0644]
.zsh/functions/setup-oftc-aliases [new file with mode: 0644]
.zsh/functions/ssha [new file with mode: 0644]
.zsh/functions/sudo-command-line [new file with mode: 0644]
.zsh/functions/telnets [new file with mode: 0644]
.zsh/functions/termsupported [new file with mode: 0644]
.zsh/install.zsh [new file with mode: 0644]
.zsh/net:cms.fra.dlh.de/Aliases.zsh [new file with mode: 0644]
.zsh/net:debian.org/Environment.zsh [new file with mode: 0644]
.zsh/net:ganneff.de/host:gkar/Aliases.zsh [new file with mode: 0644]
.zsh/net:ganneff.de/host:gkar/Completion.zsh [new file with mode: 0644]
.zsh/net:ganneff.de/host:gkar/Environment.zsh [new file with mode: 0644]
.zsh/net:ganneff.de/host:gkar/Exec.zsh [new file with mode: 0644]
.zsh/net:ganneff.de/host:gkar/Functions.zsh [new file with mode: 0644]
.zsh/net:ganneff.de/host:gkar/Hashes.zsh [new file with mode: 0644]
.zsh/plugins/git-extras.plugin.zsh [new file with mode: 0644]
.zsh/plugins/history-substring-search.zsh [new file with mode: 0644]
.zsh/plugins/per-directory-history.plugin.zsh [new file with mode: 0755]
.zsh/run/editor-gkar-1000 [new file with mode: 0755]
.zsh/zsh-install.sh [new file with mode: 0755]
.zsh/zsh-syntax-highlighting [new submodule]
.zsh/zshenv [new file with mode: 0644]
.zshenv [new file with mode: 0644]

diff --git a/.zsh/.gitignore b/.zsh/.gitignore
new file mode 100644 (file)
index 0000000..0e95a1c
--- /dev/null
@@ -0,0 +1,4 @@
+var
+.zcompcache
+.zcompdump
+zsh-syntax-highlighting
diff --git a/.zsh/.zlogout b/.zsh/.zlogout
new file mode 100644 (file)
index 0000000..66783e4
--- /dev/null
@@ -0,0 +1,3 @@
+# -*- mode: sh;-*-
+
+dirpersiststore
diff --git a/.zsh/.zshrc b/.zsh/.zshrc
new file mode 100644 (file)
index 0000000..2edd28a
--- /dev/null
@@ -0,0 +1,73 @@
+# -*- mode: sh;-*-
+############
+#
+# .zshrc
+# Written by Joerg Jaspert <joerg@debian.org>
+#
+############
+
+# Base directory for all plugins, themes, functions, whatever
+ZSH=${HOME}/.zsh
+
+debug ()
+{
+    [ "${DEBUG}" = "no" ] && return
+    msg=${1:-""}
+    nl=${2:-""}
+    echo ${nl} "${msg}$reset_color"
+}
+
+debug "Starting zsh"
+# Want to use colors in log output...
+autoload -U colors && colors
+
+
+# Most of my config is splitted into files and directories
+if [ -d ${ZDOTDIR} ]; then
+    for script in ${ZDOTDIR}/??_*.zsh;  do
+        debug "Loading ${${script:t:r}/??_/}... " -n
+        source $script
+        debug "$fg_no_bold[green]done"
+        for i in "net:$DOMAIN"                                     \
+            "host:$HOST"                                           \
+            "sys:$OSNAME"                                          \
+            "distri:$DISTRI"                                       \
+            "user:$USER"                                           \
+            "user:$SUDO_USER"                                      \
+            "net:$DOMAIN/host:$HOST"                               \
+            "net:$DOMAIN/sys:$OSNAME"                              \
+            "net:$DOMAIN/distri:$DISTRI"                           \
+            "net:$DOMAIN/user:$USER"                               \
+            "net:$DOMAIN/user:$SUDO_USER"                          \
+            "net:$DOMAIN/host:$HOST/sys:$OSNAME"                   \
+            "net:$DOMAIN/host:$HOST/distri:$DISTRI"                \
+            "net:$DOMAIN/host:$HOST/user:$USER"                    \
+            "net:$DOMAIN/host:$HOST/user:$SUDO_USER"               \
+            "net:$DOMAIN/host:$HOST/sys:$OSNAME"                   \
+            "net:$DOMAIN/host:$HOST/sys:$OSNAME/distri:$DISTRI"    \
+            "net:$DOMAIN/host:$HOST/sys:$OSNAME/user:$USER"        \
+            "net:$DOMAIN/host:$HOST/sys:$OSNAME/user:$SUDO_USER"   \
+            "host:$HOST/sys:$OSNAME"                               \
+            "host:$HOST/distri:$DISTRI"                            \
+            "host:$HOST/user:$USER"                                \
+            "host:$HOST/user:$SUDO_USER"                           \
+            "host:$HOST/sys:$OSNAME/distri:$DISTRI"                \
+            "host:$HOST/sys:$OSNAME/user:$USER"                    \
+            "host:$HOST/sys:$OSNAME/user:$SUDO_USER"
+        do
+            specific_script=${script:h}/$i/${${script:t}/??_/}
+            #debug "Checking $specific_script... "
+            if [ -r ${specific_script} ]; then
+                debug "Loading $i/${${specific_script:t:r}/??_/}... " -n
+                source ${specific_script}
+                debug "$fg_no_bold[green]done"
+            fi
+        done
+    done
+fi
+
+# For sudo shells
+if [ ! -z "$SUDO_USER" ]; then
+    export HOME=~$USER
+    [ "`pwd`" = ~$SUDO_USER ] && cd
+fi
diff --git a/.zsh/00_Basics.zsh b/.zsh/00_Basics.zsh
new file mode 100644 (file)
index 0000000..2866062
--- /dev/null
@@ -0,0 +1,15 @@
+# -*- mode: sh;-*-
+
+# No core dumps
+ulimit -c 0
+
+umask 022
+
+# Want a halfway sane terminal
+[[ -t 0 ]] && /bin/stty erase  "^H" intr  "^C" susp "^Z" dsusp "^Y" stop "^S" start "^Q" kill "^U"  >& /dev/null
+
+# watch for everybody but me
+watch=(notme)
+# check every 5 min for login/logout activity
+LOGCHECK=300
+WATCHFMT='%n %a %l from %m at %t.'
diff --git a/.zsh/05_Functions.zsh b/.zsh/05_Functions.zsh
new file mode 100644 (file)
index 0000000..e442e22
--- /dev/null
@@ -0,0 +1,134 @@
+# -*- mode: sh;-*-
+
+##     User-defined functions
+#
+cmd_exists ()
+{
+       \which -p $1 >/dev/null 2>&1
+}
+
+preprint()
+{
+       local my_color i
+       my_color=${2-"$prompt_colors[generic]"}
+
+       hbar=$T_
+       for i in {1..$((74 - ${#1} - 5))}; do
+               hbar=${hbar}$_t_q
+       done
+       hbar=${hbar}$_T
+
+       if [ "$1" != "" ]; then
+               print -Pn "${C_}$my_color;1${_C}${hbar}$T_$_t_u$_T${C_}0;$my_color${_C} $1 ${C_}0;$my_color;1${_C}$T_$_t_t$_t_q$_T\r${C_}0${_C}"
+       else
+               print -Pn "${C_}$my_color;1${_C}${hbar}$T_$_t_q$_t_q$_t_q$_t_q$_t_q$_T${C_}0${_C}"
+       fi
+}
+
+
+normal_user ()
+{
+       if [ -e /etc/login.defs ]; then
+               eval `grep -v '^[$#]' /etc/login.defs | grep "^UID_" | tr -d '[:blank:]' | sed 's/^[A-Z_]\+/&=/'`
+               [ \( $UID -ge $UID_MIN \) ]
+       else
+               [ "`whoami`" != "root" ]
+       fi
+}
+
+privileged_user ()
+{
+       ! normal_user
+}
+
+chpwd()
+{
+       if ( cmd_exists git && test -d .git ); then
+               # Shows tracked branches and modified files
+               git checkout HEAD 2>&1 | sed 's/^/   /'
+       fi
+}
+
+# Taken from oh-my-zsh
+dirpersiststore () {
+    dirs -p | perl -e 'foreach (reverse <STDIN>) {chomp;s/([& ])/\\$1/g ;print "if [ -d $_ ]; then pushd -q $_; fi\n"}' >| $zdirstore
+}
+
+dirpersistrestore () {
+    if [ -f $zdirstore ]; then
+        source $zdirstore
+    fi
+}
+
+zsh_stats() {
+  history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl |  head -n20
+}
+
+_jj_ssh() {
+    # TERM is one of the variables that is usually allowed to be
+    # transmitted to the remote session. The remote host should have the
+    # appropriate termcap or terminfo file to handle the TERM you
+    # provided. When connecting to random hosts, this may not be the
+    # case if your TERM is somewhat special. A good fallback is
+    # xterm. Most terminals are compatible with xterm and all hosts have
+    # a termcap or terminfo file to handle xterm. Therefore, for some
+    # values of TERM, we fallback to xterm.
+    #
+    # Now, you may connect to a host where your current TERM is fully
+    # supported and you will get xterm instead (which means 8 base
+    # colors only). There is no clean solution for this. You may want to
+    # reexport the appropriate TERM when logged on the remote host or
+    # use commands like this: ssh -t XXXXX env TERM=$TERM emacsclient -t
+    # -c
+    #
+    # If the remote host uses the same zshrc than this one, there is
+    # something in `$ZSH/rc/00-terminfo.zsh` to restore the appropriate
+    # terminal (saved in `LC__ORIGINALTERM`).
+    #
+    # The problem is quite similar for LANG and LC_MESSAGES. We reset
+    # them to C to avoid any problem with hosts not having your locally
+    # installed locales. See this post for more details on this:
+    # http://vincent.bernat.im/en/blog/2011-zsh-zshrc.html
+    #
+    # Also, when the same ZSH configuration is used on the remote host,
+    # the locale is reset with the help of 12-Locale.zsh
+    case "$TERM" in
+        rxvt-256color|rxvt-unicode*)
+            LC__ORIGINALTERM=$TERM TERM=xterm LANG=C LC_MESSAGES=C command ssh "$@"
+            ;;
+        *)
+            LANG=C LC_MESSAGES=C command ssh "$@"
+            ;;
+    esac
+}
+
+_jj_first_non_optional_arg() {
+    local args
+    args=( "$@" )
+    args=( ${(R)args:#-*} )
+    print -- $args[1]
+}
+
+# Alter window title
+_jj_title () {
+    [ -t 1 ] || return
+    emulate -L zsh
+    local title
+    title=${@//[^[:alnum:]\/>< ._~:=?@-]/ }
+    case $TERM in
+        screen*)
+            print -n "\ek$title\e\\"
+            print -n "\e]1;$title\a"
+            print -n "\e]2;$title\a"
+            ;;
+        rxvt*|xterm*)
+            print -n "\e]1;$title\a"
+            print -n "\e]2;$title\a"
+            ;;
+    esac
+}
+
+ssh() {
+    _jj_title $(_jj_first_non_optional_arg "$@")
+    _jj_ssh "$@"
+}
diff --git a/.zsh/10_Environment.zsh b/.zsh/10_Environment.zsh
new file mode 100644 (file)
index 0000000..4396b16
--- /dev/null
@@ -0,0 +1,76 @@
+# -*- mode: sh;-*-
+
+export SHELL=`which zsh`
+
+## Colors 
+c_='\e['$color[none]";"
+_c=m
+C_="%{$c_"
+_C="$_c%}"
+
+unset has_termcaps
+[ $TERM = "urxvt" -o $TERM = "screen" -o $TERM = "rxvt-unicode" ] && has_termcaps="true"
+T_=${has_termcaps:+$termcap[as]}
+_T=${has_termcaps:+$termcap[ae]}
+_t_q=${${has_termcaps:+q}:--}
+_t_j=${${has_termcaps:+j}:-[}
+_t_k=${${has_termcaps:+k}:-[}
+_t_l=${${has_termcaps:+l}:-]}
+_t_m=${${has_termcaps:+m}:-]}
+_t_t=${${has_termcaps:+t}:-]}
+_t_u=${${has_termcaps:+u}:-[}
+
+# I hate kik00l0l colorized prompts, so I'm using a way to
+# give a dominant color for each part of the prompt, each of
+# these remain still configurable one by one.
+# Take a look to set_prompt_colors for these colorizations.
+#
+# To set the dominant color I'm using this :
+#
+#  - PS1_ROOT when we are root
+#  - PS1_USER for normal usage
+#
+# I'm storing the resulting dominant color in $prompt_colors[generic]
+
+PS1_ROOT=${PS1_ROOT:-$color[red]}
+PS1_USER=${PS1_USER:-$color[blue]}
+PS1_YEAH="38;5;82"
+
+export PATH=$PATH:~/sbin:~/local/bin
+PATH=/sbin:/usr/sbin:$PATH
+export MANPATH=~/man:~/local/share/man:/usr/local/share/man:$MANPATH
+export INFOPATH=~/info:~/local/share/info:/usr/local/share/info:$INFOPATH
+typeset -gU MANPATH INFOPATH
+
+if [ -w $ZDOTDIR ]; then
+    mkdir -p ${ZDOTDIR}/var
+       HISTFILE=$ZDOTDIR/var/history.$USER.$HOST
+else
+       HISTFILE=~$HOME/.zsh_history.$HOST
+fi
+
+# Size of history
+SAVEHIST=50000
+HISTSIZE=$(( $SAVEHIST * 1.10 ))
+
+## maximum size of the directory stack.
+DIRSTACKSIZE=20
+# $zdirstore is the file used to persist the stack
+zdirstore=${ZDOTDIR}/var/.zdirstore
+dirpersistrestore
+
+export GPG_TTY=$(tty)
+
+export PAGER="$(which less)"
+(( ${+DEBFULLNAME} )) || export DEBFULLNAME='Joerg Jaspert'
+(( ${+DEBNAME} )) || export DEBNAME='Joerg Jaspert'
+(( ${+DEBEMAIL} )) || export DEBEMAIL='joerg@debian.org'
+export LESS='-X -R -f -j 3'
+(( ${+TMPDIR} )) || export TMPDIR="$HOME/tmp"
+export GREP_OPTIONS='--color=auto'
+
+READNULLCMD=${PAGER}
+NULLCMD=${PAGER}
+
+# If its installed - use lesspipe
+[ -x /bin/lesspipe ] && eval $(lesspipe)
diff --git a/.zsh/12_Locale.zsh b/.zsh/12_Locale.zsh
new file mode 100644 (file)
index 0000000..37e23e6
--- /dev/null
@@ -0,0 +1,16 @@
+# -*- mode: sh;-*-
+
+(( $+commands[locale] )) && __() {
+    local locales
+    local locale
+    locales=( "LANG de_DE.utf8 en_GB.utf8 C.UTF-8 C" \
+              "LC_MESSAGES en_GB.utf8 de_DE.utf8 C.UTF-8 C" )
+    for locale in $locales; do
+        for l in $=locale[(w)2,-1]; do
+            if locale -a | grep -qx $l; then
+                export $locale[(w)1]=$l
+                break
+            fi
+        done
+    done
+} && __ 2> /dev/null
diff --git a/.zsh/15_Colors.zsh b/.zsh/15_Colors.zsh
new file mode 100644 (file)
index 0000000..6f22114
--- /dev/null
@@ -0,0 +1,7 @@
+# -*- mode: sh;-*-
+
+typeset -A prompt_colors git_colors mail_colors correct_colors battery_colors date_colors agent_colors
+
+correct_colors[error]="$color[red];$color[bold]"
+correct_colors[suggest]="$color[lightblue];$color[bold]"
+
diff --git a/.zsh/20_Prompts.zsh b/.zsh/20_Prompts.zsh
new file mode 100644 (file)
index 0000000..a7142c6
--- /dev/null
@@ -0,0 +1,76 @@
+# -*- mode: sh;-*-
+
+# how often should the periodic function be called? I take every 30seconds here.
+# Important: The periodic function is only called when
+#   - the defined time $PERIOD elapsed
+# *AND*
+#   - the prompt gets displayed again!
+# Its not cron-like "execute this really every 30s in the background"!
+#
+# But for sanity reasons - make this conditional on existance of tools, but never
+# overwrite existing values
+if which yacpi > /dev/null; then
+        (( ${+PERIOD} )) || export PERIOD=30
+        LAPTOP=yacpi
+elif which ibam > /dev/null; then
+        (( ${+PERIOD} )) || export PERIOD=30
+        LAPTOP=ibam
+else
+        (( ${+PERIOD} )) || unset PERIOD
+        unset LAPTOP
+fi
+
+# the following is for prompt and gets modified in periodic()
+typeset -A ACPIDISPLAY
+# I know, this stuff is currently made only for my laptop. But right now i cant be bothered
+# to make it more generic
+PR_SLASH='${PR_YELLOW}/${PR_RED}'
+TOOLONG=0
+
+# I call periodic here one time to have all the variables it sets initialized. Or 
+# the first prompt would look ugly.
+periodic
+
+# gather version control information for inclusion in a prompt
+# we will only be using one variable, so let the code know now.
+autoload -Uz vcs_info && vcs_info
+zstyle ':vcs_info:*' max-exports 1
+zstyle ':vcs_info:*' disable cdv darcs mtn tla hg
+zstyle ':vcs_info:*' use-prompt-escapes
+zstyle ':vcs_info:*' use_simple
+
+# change vcs_info formats for the prompt
+if [[ "$TERM" == dumb ]] ; then
+       zstyle ':vcs_info:*' actionformats "(%s%)-[%b|%a] "
+       zstyle ':vcs_info:*' formats       "(%s%)-[%b] "
+else
+    # these are the same, just with a lot of colours:
+#      zstyle ':vcs_info:*' actionformats "$%s${PR_YELLOW})${PR_CYAN}-${PR_YELLOW}[${PR_GREEN}%b${PR_YELLOW}|${PR_RED}%a${PR_YELLOW}]${PR_NO_COLOUR}"
+       zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat "%b%{$fg[red]%}:%{$fg[yellow]%}%r"
+    zstyle ':vcs_info:git*' formats "%{$fg[yellow]%}%s %{$reset_color%} %{$fg[green]%}%b%{$reset_color%}%m%u%c%{$reset_color%} "
+    zstyle ':vcs_info:git*' actionformats "%{$fg[yellow]%}%s%{$reset_color%} %{$fg[green]%}%b%{$reset_color%} $fg[red]%}(%a)%{$reset_color%} %m%u%c%{$reset_color%} "
+fi
+
+PR_BARLENGTH=0
+
+setprompt
+
+# See if our (effective) group has changed at all.  (For instance, we're
+# in a subshell that is setgid.)  This happens when i type "newgrp group"
+# for whatever reason
+# I haven't put this in the precmd function because I don't expect
+# my effective group to change over the life of the shell.  It can if
+# I'm running with root privileges, but I deliberately don't use zsh for
+# root in any case, because that encourages me to not use root for
+# anything I don't have to use it for. 
+if [[ "$ORIGGID" != "$EGID" ]]; then
+  # Set for either normal prompt and xterm title bars.
+    GNAME=$(grpname $EGID)
+    if [[ "$TERM" = "xterm" ]]; then
+        psvar[5]=":$GNAME"
+    else
+        psvar[5]="g[$GNAME] "
+    fi
+else
+    psvar[5]=
+fi
diff --git a/.zsh/25_ZshHighlight.zsh b/.zsh/25_ZshHighlight.zsh
new file mode 100644 (file)
index 0000000..abee0a5
--- /dev/null
@@ -0,0 +1,53 @@
+# -*- mode: sh;-*-
+#
+# Use zsh syntax highlighting
+#
+
+if [ -d $ZDOTDIR/zsh-syntax-highlighting ]; then
+       ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor)
+       source $ZDOTDIR/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
+fi
+
+ZSH_HIGHLIGHT_STYLES[default]="none"
+
+ZSH_HIGHLIGHT_STYLES[assign]="none"
+
+ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]="fg=yellow,bold"
+ZSH_HIGHLIGHT_STYLES[back-quoted-argument]="green"
+
+ZSH_HIGHLIGHT_STYLES[bracket-error]="fg=red,bold"
+ZSH_HIGHLIGHT_STYLES[bracket-level-1]="fg=yellow,bold"
+ZSH_HIGHLIGHT_STYLES[bracket-level-2]="fg=green"
+ZSH_HIGHLIGHT_STYLES[bracket-level-3]="fg=cyan,bold"
+ZSH_HIGHLIGHT_STYLES[bracket-level-4]="fg=blue"
+ZSH_HIGHLIGHT_STYLES[bracket-level-5]="fg=magenta"
+ZSH_HIGHLIGHT_STYLES[cursor-matchingbracket]="fg=white,underline,bold"
+
+ZSH_HIGHLIGHT_STYLES[builtin]="fg=cyan,bold,underline"
+ZSH_HIGHLIGHT_STYLES[function]="fg=cyan,bold"
+ZSH_HIGHLIGHT_STYLES[alias]="fg=cyan"
+ZSH_HIGHLIGHT_STYLES[command]="fg=normal"
+ZSH_HIGHLIGHT_STYLES[hashed-command]="fg=normal,bold"
+ZSH_HIGHLIGHT_STYLES[path]="fg=normal"
+ZSH_HIGHLIGHT_STYLES[precommand]="fg=normal,underline"
+ZSH_HIGHLIGHT_STYLES[reserved-word]="fg=cyan,underline"
+
+ZSH_HIGHLIGHT_STYLES[history-expansion]="fg=blue"
+
+ZSH_HIGHLIGHT_STYLES[globbing]="fg=cyan"
+
+ZSH_HIGHLIGHT_STYLES[commandseparator]="none"
+
+ZSH_HIGHLIGHT_STYLES[cursor]="bold"
+
+ZSH_HIGHLIGHT_STYLES[single-hyphen-option]="green"
+ZSH_HIGHLIGHT_STYLES[double-hyphen-option]="yellow"
+ZSH_HIGHLIGHT_STYLES[single-quoted-argument]="fg=green,bold"
+ZSH_HIGHLIGHT_STYLES[double-quoted-argument]="fg=yellow,bold"
+ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]="fg=blue,bold"
+
+
+ZSH_HIGHLIGHT_STYLES[root]="standout"
+
+
+ZSH_HIGHLIGHT_STYLES[unknown-token]="fg=red,bold"
diff --git a/.zsh/30_Options.zsh b/.zsh/30_Options.zsh
new file mode 100644 (file)
index 0000000..01e20a0
--- /dev/null
@@ -0,0 +1,267 @@
+# -*- mode: sh;-*-
+
+## Zsh options
+#
+# see man zshoptions(1) for more details ;-)
+#
+
+# Funky run-help hooks
+autoload run-help-git
+autoload run-help-svn
+
+function SetOPT() {
+       SetOPTifExists $1 on
+}
+function UnsetOPT() {
+       SetOPTifExists $1 off
+}
+
+function SetOPTifExists() {
+       local option=${(L)1//_/} # lowercase and no '_'
+
+       case "$option" in
+               "no"*)
+                       option=${option/no/}
+                       # resets $1 and $2
+                       set $option off
+                       ;;
+       esac
+
+       if ( echo ${(k)options} | grep $option >/dev/null ); then
+               # option exists, set it.
+               case "$2" in
+                       on)
+                               debug "$fg_bold[cyan]setopt$reset_color $option"
+                               setopt $option
+                               ;;
+                       off)
+                               debug "$fg_bold[cyan]unsetopt$reset_color $option"
+                               unsetopt $option
+                               ;;
+               esac
+       else
+           debug "$option not supported by this version of zsh !"
+       fi
+}
+
+# These are the options that apply to noninteractive shells.
+# Ones in capitals are variations from the default ZSH behaviour.
+
+# Treat the `#', `~' and `^' characters as part of patterns for filename
+# generation, etc.  (An initial unquoted `~' always produces named
+# directory expansion.)
+SetOPT  EXTENDED_GLOB
+
+# Do not require a leading `.' in a filename to be matched explicitly.
+SetOPT  GLOBDOTS
+
+# If numeric filenames are matched by a filename generation pattern,
+# sort the filenames numerically rather than lexicographically.
+SetOPT  NUMERIC_GLOB_SORT
+
+# Don't push multiple copies of the same directory onto the directory
+# stack.
+SetOPT  PUSHD_IGNORE_DUPS
+
+# Exchanges the meanings of `+' and `-' when used with a number to
+# specify a directory in the stack.
+SetOPT  PUSHD_MINUS
+
+# Do not print the directory stack after pushd or popd.
+SetOPT  PUSHDSILENT
+
+# Have pushd with no arguments act like `pushd $HOME'.
+SetOPT  PUSHDTOHOME
+
+# If a completion is performed with the cursor within a word, and a full
+# completion is inserted, the cursor is moved to the end of the word.
+# That is, the cursor is moved to the end of the word if either a single
+# match is inserted or menu completion is performed.
+SetOPT   ALWAYS_TO_END
+
+# If a command is issued that can't be executed as a normal command, and
+# the command is the name of a directory, perform the cd command to that
+# directory.
+SetOPT   AUTO_CD
+
+# Any parameter that is set to the absolute name of a directory
+# immediately becomes a name for that directory, that will be used by
+# the `%~' and related prompt sequences, and will be available when
+# completion is performed on a word starting with `~'.  (Otherwise, the
+# parameter must be used in the form `~param' first.)
+SetOPT   AUTO_NAME_DIRS
+
+# Make cd push the old directory onto the directory stack.
+SetOPT   AUTO_PUSHD
+
+# Treat single word simple commands without redirection as candidates
+# for resumption of an existing job.
+SetOPT   AUTO_RESUME
+
+# Expand expressions in braces which would not otherwise undergo brace
+# expansion to a lexically ordered list of all the characters.  See the
+# section `Brace Expansion'.
+SetOPT   BRACE_CCL
+
+# Prevents aliases on the command line from being internally substituted
+# before completion is attempted.  The effect is to make the alias a
+# distinct command for completion purposes.
+SetOPT   COMPLETE_ALIASES
+
+# If unset, the cursor is set to the end of the word if completion is
+# started. Otherwise it stays there and completion is done from both
+# ends.
+SetOPT   COMPLETE_IN_WORD
+
+# Try to correct the spelling of commands.  Note that, when the
+# HASH_LIST_ALL option is not set or when some directories in the path
+# are not readable, this may falsely report spelling errors the first
+# time some commands are used.
+#
+# The shell variable CORRECT_IGNORE may be set to a pattern to match
+# words that will never be offered as corrections.
+SetOPT   CORRECT
+
+# Do not enter command lines into the history list if they are
+# duplicates of the previous event.
+SetOPT   HIST_IGNORE_DUPS
+
+# Remove the history (fc -l) command from the history list when invoked.
+# Note that the command lingers in the internal history until the next
+# command is entered before it vanishes, allowing you to briefly reuse
+# or edit the line.
+SetOPT   HIST_NO_STORE
+
+# This options works like APPEND_HISTORY except that new history lines
+# are added to the $HISTFILE incrementally (as soon as they are
+# entered), rather than waiting until the shell exits.  The file will
+# still be periodically re-written to trim it when the number of lines
+# grows 20% beyond the value specified by $SAVEHIST (see also the
+# HIST_SAVE_BY_COPY option).
+SetOPT  INC_APPEND_HISTORY
+
+# When searching for history entries in  the line editor, do not display
+# duplicates of a line previously found,  even if the duplicates are not
+# contiguous.
+SetOPT  HIST_FIND_NO_DUPS
+
+# Remove command lines from the history list when the first character on
+# the line is a space, or when one of the expanded aliases contains a
+# leading space.  Only normal aliases (not global or suffix aliases)
+# have this behaviour.  Note that the command lingers in the internal
+# history until the next command is entered before it vanishes, allowing
+# you to briefly reuse or edit the line.  If you want to make it vanish
+# right away without entering another command, type a space and press
+# return.
+SetOPT  HIST_IGNORE_SPACE
+
+# Allow comments even in interactive shells.
+SetOPT   INTERACTIVE_COMMENTS
+
+# List jobs in the long format by default.
+SetOPT   LONG_LIST_JOBS
+
+# If set, parameter expansion, command substitution and arithmetic
+# expansion are performed in prompts. Substitutions within prompts do
+# not affect the command status.
+SetOPT   PROMPT_SUBST
+
+# If the internal history needs to be trimmed to add the current command
+# line, setting this option will cause the oldest history event that has
+# a duplicate to be lost before losing a unique event from the list.
+# You should be sure to set the value of HISTSIZE to a larger number
+# than SAVEHIST in order to give you some room for the duplicated
+# events, otherwise this option will behave just like
+# HIST_IGNORE_ALL_DUPS once the history fills up with unique events.
+SetOPT   HIST_EXPIRE_DUPS_FIRST
+
+# Try to make the completion list smaller (occupying less lines) by
+# printing the matches in columns with different widths.
+SetOPT   LIST_PACKED
+
+# This option both imports new commands from the history file, and also
+# causes your typed commands to be appended to the history file (the
+# latter is like specifying INC_APPEND_HISTORY).  The history lines are
+# also output with timestamps ala EXTENDED_HISTORY (which makes it
+# easier to find the spot where we left off reading the file after it
+# gets re-written).
+
+# By default, history movement commands visit the imported lines as well
+# as the local lines, but you can toggle this on and off with the
+# set-local-history zle binding.  It is also possible to create a zle
+# widget that will make some commands ignore imported commands, and some
+# include them.
+SetOPT   SHARE_HISTORY
+
+# Save each command's beginning timestamp (in seconds since the epoch)
+# and the duration (in seconds) to the history file.
+SetOPT   EXTENDED_HISTORY
+
+# By default, shell history that is read in from files is split into
+# words on all white space.  This means that arguments with quoted
+# whitespace are not correctly handled, with the consequence that ref‐
+# erences to words in history lines that have been read from a file may
+# be inaccurate.  When this option is set, words read in from a history
+# file are divided up in a similar fashion to normal shell command line
+# handling.  Although this produces more accurately delimited words, if
+# the size of the history file is large this can be slow.  Trial and
+# error is necessary to decide.
+SetOPT HIST_LEX_WORDS
+
+# When writing out the history file, by default zsh uses ad-hoc file
+# locking to avoid known problems with locking on some operating
+# systems.  With this option locking is done by means of the system's
+# fcntl call, where this method is available.  On recent operating
+# systems this may provide better performance, in particular avoiding
+# history corruption when files are stored on NFS.
+SetOPT HIST_FCNTL_LOCK
+
+# Allows `>' redirection to truncate existing files, and `>>' to create
+# files.  Otherwise `>!' or `>|' must be used to truncate a file, and
+# `>>!' or `>>|' to create a file.
+UnsetOPT CLOBBER
+
+# If this option is set, passing the -x flag to the builtins declare,
+# float, integer, readonly and typeset (but not local) will also set the
+# -g flag; hence parameters exported to the environment will not be made
+# local to the enclosing function, unless they were already or the flag
+# +g is given explicitly.  If the option is unset, exported parameters
+# will be made local in just the same way as any other parameter.
+UnsetOPT GLOBAL_EXPORT
+
+# Automatically use menu completion after the second consecutive request
+# for completion, for example by pressing the tab key repeatedly. This
+# option is overridden by MENU_COMPLETE.
+UnsetOPT AUTO_MENU
+
+# On an ambiguous completion, instead of listing possibilities or
+# beeping, insert the first match immediately.  Then when completion
+# is requested again, remove the first match and insert the second
+# match, etc.  When there are no more matches, go back to the first one
+# again.  reverse-menu-complete may be used to loop through the list in
+# the other direction. This option overrides AUTO_MENU.
+SetOPT MENU_COMPLETE
+
+# Beep on error in ZLE.
+UnsetOPT BEEP
+
+# If this option is unset, output flow control via start/stop characters
+# (usually assigned to ^S/^Q) is disabled in the shell's editor.
+UnsetOPT FLOW_CONTROL
+
+# Do not exit on end-of-file.  Require the use of exit or logout
+# instead.  However, ten consecutive EOFs will cause the shell to exit
+# anyway, to avoid the shell hanging if its tty goes away.
+
+# Also, if this option is set and the Zsh Line Editor is used, widgets
+# implemented by shell functions can be bound to EOF (normally
+# Control-D) without printing the normal warning message.  This works
+# only for normal widgets, not for completion widgets.
+UnsetOPT IGNORE_EOF
+
+# Beep on an ambiguous completion.  More accurately, this forces the
+# completion widgets to return status 1 on an ambiguous completion,
+# which causes the shell to beep if the option BEEP is also set; this
+# may be modified if completion is called from a user-defined widget.
+UnsetOPT LIST_BEEP
+
diff --git a/.zsh/35_Aliases.zsh b/.zsh/35_Aliases.zsh
new file mode 100644 (file)
index 0000000..ba948b0
--- /dev/null
@@ -0,0 +1,147 @@
+# -*- mode: sh;-*-
+
+# default switches
+alias ls='command ls -AF --color=auto'
+alias lsbig='command ls -flh *(.OL[1,10])' # display the biggest files
+alias lssmall='command ls -Srl *(.oL[1,10])' # display the smallest files
+alias lsnew='command ls -rl *(D.om[1,10])' # display the newest files
+alias lsold='command ls -rtlh *(D.om[-11,-1])' # display the oldest files
+
+alias mv='command mv -i'
+alias mmv='noglob mmv'
+alias cp='command cp -i'
+alias wget='noglob wget'
+alias cgrep='grep --color'
+alias git='LANG=C git'
+alias rot13='tr a-zA-Z n-za-mN-ZA-M'
+
+alias psql='LANG=C LD_PRELOAD=/lib/libreadline.so.5 psql'
+alias tmux='TMPDIR=/tmp tmux'
+
+alias logout='noglob logout'
+
+# convenient abbreviations
+alias c=clear
+
+alias d='dirs -v'
+
+alias cd/='cd /'
+alias ..='cd ..'
+alias ...='cd ../..'
+alias cd..='cd ..'
+alias cd...='cd ../..'
+alias cd....='cd ../../..'
+alias cd.....='cd ../../../..'
+alias -- -='cd -'
+alias 1='cd -'
+alias 2='cd -2'
+alias 3='cd -3'
+alias 4='cd -4'
+alias 5='cd -5'
+alias 6='cd -6'
+alias 7='cd -7'
+alias 8='cd -8'
+alias 9='cd -9'
+
+
+
+alias mc='mc -d -U'
+alias showpkg='apt-cache showpkg'
+alias acs='apt-cache search'
+alias acw='apt-cache show'
+alias agi='LANG=C sudo aptitude install'
+alias agr='LANG=C sudo aptitude remove'
+alias agp='LANG=C sudo aptitude purge'
+alias dclean='LANG=C LC_ALL=C fakeroot debian/rules clean'
+alias cpan='perl -MCPAN -e shell'
+
+# No spellchecks here
+alias man='LANG=C nocorrect noglob man'
+alias mysql='nocorrect mysql'
+alias mkdir='nocorrect mkdir'
+alias mv='nocorrect mv'
+
+#global aliases. Handle with care!
+alias -g LS='| less'
+alias -g WC='| wc -l'
+alias -g SO='| sort'
+alias -g CD='| colordiff | less -R'
+
+if [ -x /usr/bin/recode ]; then
+        alias unix2dos='recode lat1..ibmpc'
+        alias dos2unix='recode ibmpc..lat1'
+fi
+
+# used when you press M-? on a command line
+alias which-command='whence -a'
+
+# zsh function tracing
+alias ztrace='typeset -f -t'
+alias zuntrace='typeset -f +t'
+
+alias gitolite_spi='ssh git@git.spi-inc.org'
+
+# Make popd changes permanent without having to wait for logout
+alias popd="popd;dirpersiststore"
+
+# git related
+# Aliases
+alias g='git'
+alias gst='git status'
+alias gl='git pull'
+alias gup='git pull --rebase'
+alias gp='git push'
+alias gd='git diff'
+alias gc='git commit -v'
+alias gca='git commit -v -a'
+alias gco='git checkout'
+alias gcm='git checkout master'
+alias gr='git remote'
+alias grv='git remote -v'
+alias grmv='git remote rename'
+alias grrm='git remote remove'
+alias grset='git remote set-url'
+alias grup='git remote update'
+alias gb='git branch'
+alias gba='git branch -a'
+alias gcount='git shortlog -sn'
+alias gcl='git config --list'
+alias gcp='git cherry-pick'
+alias glg='git log --stat --max-count=5'
+alias glgg='git log --graph --max-count=5'
+alias glgga='git log --graph --decorate --all'
+alias gss='git status -s'
+alias ga='git add'
+alias gm='git merge'
+alias grh='git reset HEAD'
+alias grhh='git reset HEAD --hard'
+alias gwc='git whatchanged -p --abbrev-commit --pretty=medium'
+alias gf='git ls-files | grep'
+alias gpoat='git push origin --all && git push origin --tags'
+
+# Will cd into the top of the current repository
+# or submodule.
+alias grt='cd $(git rev-parse --show-toplevel || echo ".")'
+
+alias gsr='git svn rebase'
+alias gsd='git svn dcommit'
+
+# Will return the current branch name
+# Usage example: git pull origin $(current_branch)
+#
+current_branch() {
+  ref=$(git symbolic-ref HEAD 2> /dev/null) || \
+  ref=$(git rev-parse --short HEAD 2> /dev/null) || return
+  echo ${ref#refs/heads/}
+}
+
+current_repository() {
+  ref=$(git symbolic-ref HEAD 2> /dev/null) || \
+  ref=$(git rev-parse --short HEAD 2> /dev/null) || return
+  echo $(git remote -v | cut -d':' -f 2)
+}
+
+# these aliases take advantage of the previous function
+alias ggpull='git pull origin $(current_branch)'
+alias ggpush='git push origin $(current_branch)'
+alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'
diff --git a/.zsh/40_Hashes.zsh b/.zsh/40_Hashes.zsh
new file mode 100644 (file)
index 0000000..230cb78
--- /dev/null
@@ -0,0 +1,5 @@
+# -*- mode: sh;-*-
+
+
+hash -d log=/var/log
+hash -d doc=/usr/share/doc
diff --git a/.zsh/45_Completion.zsh b/.zsh/45_Completion.zsh
new file mode 100644 (file)
index 0000000..960fab1
--- /dev/null
@@ -0,0 +1,172 @@
+# -*- mode: sh;-*-
+
+## General completion technique
+## complete as much u can ..
+zstyle ':completion:*' completer _complete _list _oldlist _expand _ignored _match _correct _approximate _prefix
+zstyle ':completion:*' completions 1
+zstyle ':completion:*' glob 1
+
+# activate color-completion
+zstyle ':completion:*:default'         list-colors ${(s.:.)LS_COLORS}
+zstyle ':completion:*' matcher-list '' 'm:{[:lower:]}={[:upper:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|[._-]=* r:|=*'
+zstyle ':completion:*' menu select=10
+zstyle ':completion:*' prompt '%e errors found'
+zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
+zstyle ':completion:*' substitute 1
+
+## allow one error for every three characters typed in approximate completer
+zstyle -e ':completion:*:approximate:*' max-errors \
+    'reply=( $(( ($#PREFIX+$#SUFFIX)/3 )) numeric )'
+
+## formatting and messages
+#zstyle ':completion:*' verbose yes
+#zstyle ':completion:*:descriptions' format $'%{\e[0;31m%}%d%{\e[0m%}'
+zstyle ':completion:*:descriptions' format $'%{\e[0;31m%}%UCompleting %d%{\e[0m%}:%u'
+zstyle ':completion:*:messages' format $'%{\e[0;31m%}%d%{\e[0m%}'
+zstyle ':completion:*:warnings' format $'%{\e[0;31m%}No matches for: %d%{\e[0m%}'
+zstyle ':completion:*' group-name ''
+
+# ignore duplicate entries
+zstyle ':completion:*:history-words'   remove-all-dups yes
+zstyle ':completion:*:history-words'   stop yes
+
+# start menu completion only if it could find no unambiguous initial string
+zstyle ':completion:*:correct:*'       insert-unambiguous true
+zstyle ':completion:*:corrections'     format $'%{\e[0;31m%}%d (errors: %e)%{\e[0m%}'
+zstyle ':completion:*:correct:*'       original true
+
+# Group completions according to tags.
+zstyle ':completion:*' group-name ''
+zstyle ':completion:*' group-order ''
+
+zstyle ':completion:*' accept-exact '*(N)'
+
+## completion caching
+zstyle ':completion::complete:*' use-cache 1
+zstyle ':completion::complete:*' cache-path ${ZDOTDIR}/.zcompcache
+
+## determine in which order the names (files) should be
+## listed and completed when using menu completion.
+## `size' to sort them by the size of the file
+## `links' to sort them by the number of links to the file
+## `modification' or `time' or `date' to sort them by the last modification time
+## `access' to sort them by the last access time
+## `inode' or `change' to sort them by the last inode change time
+## `reverse' to sort in decreasing order
+## If the style is set to any other value, or is unset, files will be
+## sorted alphabetically by name.
+zstyle ':completion:*' file-sort name
+
+zstyle ':completion:*' file-list list=20 insert=10
+
+## offer indexes before parameters in subscripts
+zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
+
+## insert all expansions for expand completer
+zstyle ':completion:*:expand:*' tag-order all-expansions
+
+## ignore completion functions (until the _ignored completer)
+zstyle ':completion:*:functions' ignored-patterns '_*'
+zstyle ':completion:*' ignored-patterns 'doc-base'
+
+## don't complete backup files as executables
+zstyle ':completion:*:complete:-command-::commands' ignored-patterns '*\~'
+
+## filename suffixes to ignore during completion (except after rm command)
+zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns \
+    '*?.(o|c~|old|pro|zwc|sik|bak)' '*~'
+
+## completions for some progs. not in default completion system
+zstyle ':completion:*:*:diffstat:*' file-patterns \
+    '*.(diff|DIFF).gz'
+zstyle ':completion:*:*:lintian:*' file-patterns \
+    '*.(dsc|deb|udeb|changes)'
+
+## on processes completion complete all user processes
+zstyle ':completion:*:processes' command 'ps -au$USER'
+
+## add colors to processes for kill completion
+zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
+
+# host completion
+[[ -r ~/.ssh/known_hosts ]] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
+[[ -r ~/.ssh/debian_known_hosts ]] && _ssh_debian_hosts=(${${${${(f)"$(<$HOME/.ssh/debian_known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_debian_hosts=()
+[[ -r /etc/ssh/ssh_known_hosts ]] && _ssh_etc_hosts=(${${${${(f)"$(</etc/ssh/ssh_known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_etc_hosts=()
+[[ -r /etc/hosts ]] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
+
+hosts=(
+    ${HOST}
+    "$_ssh_hosts[@]"
+    "$_ssh_debian_hosts[@]"
+    "$_ssh_etc_hosts[@]"
+    "$_etc_hosts[@]"
+    localhost
+)
+zstyle ':completion:*:hosts' hosts $hosts
+
+# Dont complete CVS dirs and lost+found
+zstyle ':completion:*:(all-|)files' ignored-patterns '(|*/)CVS'
+zstyle ':completion:*:cd:*' ignored-patterns '(*/)#CVS'
+zstyle ':completion:*:(all-|)files' ignored-patterns '(|*/).svn'
+zstyle ':completion:*:cd:*' ignored-patterns '(*/)#.svn'
+zstyle ':completion:*:cd:*' ignored-patterns '(*/)#lost+found'
+
+# complete manual by their section
+zstyle ':completion:*:manuals'    separate-sections true
+zstyle ':completion:*:manuals.*'  insert-sections   true
+zstyle ':completion:*:man:*'      menu yes select
+
+# Search path for sudo completion
+zstyle ':completion:*:sudo:*' command-path /usr/local/sbin \
+                                           /usr/local/bin  \
+                                           /usr/sbin       \
+                                           /usr/bin        \
+                                           /sbin           \
+                                           /bin            \
+                                           /usr/X11R6/bin
+
+
+autoload -Uz compinit
+compinit
+
+## generic completions for programs which understand GNU long options(--help)
+compdef _gnu_generic make df du gpg lintian
+
+# Complete them as ssh
+compdef _ssh ssha=ssh
+compdef _ssh sshc=ssh
+compdef _hosts ssha
+
+_debian_rules() { words=(make -f debian/rules) _make }
+compdef _debian_rules debian/rules
+
+# git related
+compdef g=git
+compdef _git gst=git-status
+compdef _git gl=git-pull
+compdef _git gup=git-fetch
+compdef _git gp=git-push
+gdv() { git diff -w "$@" }
+compdef _git gdv=git-diff
+compdef _git gc=git-commit
+compdef _git gca=git-commit
+compdef _git gco=git-checkout
+compdef _git gr=git-remote
+compdef _git grv=git-remote
+compdef _git grmv=git-remote
+compdef _git grrm=git-remote
+compdef _git grset=git-remote
+compdef _git grset=git-remote
+compdef _git gb=git-branch
+compdef _git gba=git-branch
+compdef gcount=git
+compdef _git gcp=git-cherry-pick
+compdef _git glg=git-log
+compdef _git glgg=git-log
+compdef _git glgga=git-log
+compdef _git gss=git-status
+compdef _git ga=git-add
+compdef _git gm=git-merge
+compdef ggpull=git
+compdef ggpush=git
+compdef ggpnp=git
diff --git a/.zsh/50_Trash.zsh b/.zsh/50_Trash.zsh
new file mode 100644 (file)
index 0000000..4bd8c3f
--- /dev/null
@@ -0,0 +1,52 @@
+# -*- mode: sh;-*-
+
+TRASH=$ZDOTDIR/.trash
+
+move_to_trash ()
+{
+       FOLDER=$TRASH/$PWD
+
+       for element in $@; do
+               if [ -e $element ]; then
+                       echo "Deleting $element..."
+                       mkdir -p $FOLDER/${element:h}
+                       mv -f $element $FOLDER/${element:h}/.
+               fi
+       done
+}
+
+list_deleted_elements ()
+{
+       FOLDER=$TRASH/$PWD
+
+       if [ -d $FOLDER ]; then
+                       ls -lad $(find $FOLDER -maxdepth 1 ! -wholename $FOLDER) | sed "s:$FOLDER/::"
+       else
+               echo "Nothing found in trash."
+       fi
+}
+
+undelete_from_trash ()
+{
+       FOLDER=$TRASH/$PWD
+
+       for element in $@; do
+               if [ -e $FOLDER/$element ]; then
+                       echo "Getting back $element..."
+                       mkdir -p ${element:h}
+                       mv $FOLDER/$element .
+                       rmdir --ignore-fail-on-non-empty -p $FOLDER 
+               else
+                       echo "Not found in trash: $element"
+               fi
+       done
+}
+
+alias delete='move_to_trash'
+alias undelete='undelete_from_trash'
+alias lsdeleted='list_deleted_elements'
+
+alias cdtrash='cd $TRASH/$PWD'
+alias sotrash='cd ${PWD/$TRASH/}'
+
+hash -d trash=$TRASH
diff --git a/.zsh/55_KeyBindings.zsh b/.zsh/55_KeyBindings.zsh
new file mode 100644 (file)
index 0000000..3044c75
--- /dev/null
@@ -0,0 +1,84 @@
+# -*- mode: sh;-*-
+
+###
+# Key Bindings
+# set to emacs style
+bindkey -e
+# change some defaults
+bindkey '^Z' push-input            # "suspend" current line
+case "$TERM" in
+        linux)  # Linux console
+                bindkey '\e[1~' beginning-of-line       # Home 
+                bindkey '\e[4~' end-of-line             # End  
+                bindkey '\e[3~' delete-char             # Del
+                bindkey '\e[2~' overwrite-mode          # Insert  
+                ;;
+        screen) # The textmode window manager
+                # In Linux console
+                bindkey '\e[1~' beginning-of-line       # Home
+                bindkey '\e[4~' end-of-line             # End  
+                bindkey '\e[3~' delete-char             # Del
+                bindkey '\e[2~' overwrite-mode          # Insert  
+                bindkey '\e[7~' beginning-of-line       # home
+                bindkey '\e[8~' end-of-line             # end
+                # In rxvt
+                bindkey '\eOc' forward-word             # ctrl cursor right
+                bindkey '\eOd' backward-word            # ctrl cursor left
+                ;;
+#       rxvt)
+#               bindkey '\e[7~' beginning-of-line       # home
+#               bindkey '\e[8~' end-of-line             # end
+#               bindkey '\eOc' forward-word             # ctrl cursor right
+#               bindkey '\eOd' backward-word            # ctrl cursor left
+#               bindkey '\e[3~' delete-char
+#               bindkey '\e[2~' overwrite-mode          # Insert
+#               ;;
+        *xterm*|rxvt)
+                bindkey '\e[H' beginning-of-line        # Home
+                bindkey '\e[F'  end-of-line             # End
+                bindkey '\e[3~' delete-char             # Del
+                bindkey '\e[2~' overwrite-mode          # Insert
+                bindkey "^[[5C"   forward-word          # ctrl cursor right
+                bindkey "^[[5D"   backward-word         # ctrl cursor left
+                ;;
+esac
+
+#k# Insert a timestamp on the command line (yyyy-mm-dd)
+zle -N insert-datestamp
+bindkey '^Ed' insert-datestamp
+
+#k# Put the current command line into a \kbd{sudo} call
+zle -N sudo-command-line
+bindkey "^Os" sudo-command-line
+
+## This function allows you type a file pattern,
+## and see the results of the expansion at each step.
+## When you hit return, they will be inserted into the command line.
+autoload -U insert-files
+zle -N insert-files
+bindkey "^Xf" insert-files ## C-x-f
+
+## This set of functions implements a sort of magic history searching.
+## After predict-on, typing characters causes the editor to look backward
+## in the history for the first line beginning with what you have typed so
+## far.  After predict-off, editing returns to normal for the line found.
+## In fact, you often don't even need to use predict-off, because if the
+## line doesn't match something in the history, adding a key performs
+## standard completion - though editing in the middle is liable to delete
+## the rest of the line.
+autoload -U predict-on
+zle -N predict-on
+#zle -N predict-off
+bindkey "^X^R" predict-on ## C-x C-r
+#bindkey "^U" predict-off ## C-u
+
+# used when you press M-? on a command line
+alias which-command='whence -a'
+
+# in 'foo bar | baz' make a second ^W not eat 'bar |', but only '|'
+# this has the disadvantage that in 'bar|baz' it eats all of it.
+typeset WORDCHARS='|'$WORDCHARS
+
+autoload -U edit-command-line
+zle -N edit-command-line
+bindkey '\C-x\C-e' edit-command-line
diff --git a/.zsh/60_Modules.zsh b/.zsh/60_Modules.zsh
new file mode 100644 (file)
index 0000000..138f6ba
--- /dev/null
@@ -0,0 +1,13 @@
+# -*- mode: sh;-*-
+
+ZSHMODPREFIX="zsh/"
+
+# For checking of message status.
+zmodload -i ${ZSHMODPREFIX}stat
+
+# For checking job return status.
+zmodload -i ${ZSHMODPREFIX}parameter
+
+# Gives strftime and $EPOCHSECONDS
+zmodload -i  ${ZSHMODPREFIX}datetime
+
diff --git a/.zsh/65_Editor.zsh b/.zsh/65_Editor.zsh
new file mode 100644 (file)
index 0000000..2bc64e4
--- /dev/null
@@ -0,0 +1,45 @@
+# -*- mode: sh;-*-
+# Setup EDITOR
+mkdir -p $ZDOTDIR/run/
+
+__ () {
+    local -a editors
+    local editor
+    editors=(
+        "emacs-snapshot -Q -D -nw" # Fast emacs
+        "emacs24 -Q -D -nw" # Fast emacs
+        "emacs23 -Q -D -nw" # Fast emacs
+        "emacs22 -Q -D -nw" # Fast emacs
+        "mcedit"            # 
+        "vim" "vi"        # vi
+        "editor")         # fallback
+    for editor in $editors; do
+        (( $+commands[$editor[(w)1]] )) && {
+            # Some programs may not like to have arguments
+            if [[ $editor == *\ * ]]; then
+                export EDITOR=$ZDOTDIR/run/editor-$HOST-$UID
+                cat <<EOF >| $EDITOR
+#!/bin/sh
+exec $editor "\$@"
+EOF
+                chmod +x $EDITOR
+            else
+                export EDITOR=$editor
+            fi
+            break
+        }
+    done
+} && __
+
+[[ -z $EDITOR ]] || {
+    alias e=$EDITOR
+    # Maybe use emacsclient?
+    (( $+commands[emacsclient] )) && {
+        export ALTERNATE_EDITOR=$EDITOR
+        export EDITOR="emacsclient"
+        # Maybe with -n
+        alias e="emacsclient"
+    }
+}
+
+unset VISUAL
diff --git a/.zsh/90_Plugins.zsh b/.zsh/90_Plugins.zsh
new file mode 100644 (file)
index 0000000..d37978e
--- /dev/null
@@ -0,0 +1,16 @@
+# -*- mode: sh;-*-
+
+# Config for plugins loaded below
+
+
+# for per-directory-history
+HISTORY_BASE=${ZDOTDIR}/var/dirhist
+mkdir -p ${HISTORY_BASE}
+
+if [ -d ${ZDOTDIR}/plugins ]; then
+    for file in ${ZDOTDIR}/plugins/*.zsh; do
+        debug "Loading ${file}"... -n
+        source $file
+        debug "$fg_no_bold[green]done"
+    done
+fi
diff --git a/.zsh/99_Exec.zsh b/.zsh/99_Exec.zsh
new file mode 100644 (file)
index 0000000..3d39ce9
--- /dev/null
@@ -0,0 +1,8 @@
+# -*- mode: sh;-*-
+
+if cmd_exists fortune; then
+       preprint "Fortune" && echo
+       fortune | fmt -s -w 74
+       preprint "" && echo
+       echo
+fi | sed 's/^/   /'
diff --git a/.zsh/README b/.zsh/README
new file mode 100644 (file)
index 0000000..80df1c8
--- /dev/null
@@ -0,0 +1,41 @@
+########################################################################
+# To correctly use this fileset for zsh, you need to understand the
+# order in which stuff is loaded by zsh.
+#
+# Wherever $ZDOTDIR is unset, $HOME is used instead
+# 
+# 1. /etc/zsh/zshenv             This is not overridable and not affected by the
+#                                RCS/GLOBAL_RCS variables explained below!
+# 2. $ZDOTDIR/.zshenv            
+#
+# If the shell is a login shell, it continues with
+# 3. /etc/zsh/zprofile
+# 4. $ZDOTDIR/.zprofile
+#
+# If the shell is interactive, it continues with
+# 5. /etc/zsh/zshrc
+# 6. $ZDOTDIR/.zshrc
+#
+# If the shell is a login shell, it continues with
+# 7. /etc/zsh/zlogin
+# 8. $ZDOTDIR/zlogin
+########################################################################
+
+########################################################################
+# On logout it is easier: If the shell exits (not due to exec'ing another
+# process, but logout/exit), it reads
+#
+# 1. $ZDOTDIR/.zlogout
+# 2. /etc/zsh/zlogout
+########################################################################
+
+########################################################################
+# There are 2 variables affecting the above ordering.
+#
+# RCS         If this is unset, none of the (remaining) startup files
+#             are sourced.
+# GLOBAL_RCS  If this is unset, none of the startup files in /etc/zsh
+#             are sourced.
+#
+# Note: These variables do NOT affect /etc/zsh/zshenv, which is
+#       ALWAYS read!
diff --git a/.zsh/distri:Debian/Aliases.zsh b/.zsh/distri:Debian/Aliases.zsh
new file mode 100644 (file)
index 0000000..3fc149a
--- /dev/null
@@ -0,0 +1,70 @@
+# -*- mode: sh;-*-
+
+alias showpkg='apt-cache showpkg'
+alias agr='LANG=C sudo aptitude remove'
+alias agp='LANG=C sudo aptitude purge'
+alias dclean='LANG=C LC_ALL=C fakeroot debian/rules clean'
+alias cpan='perl -MCPAN -e shell'
+
+#a3# Execute \kbd{apt-cache search}
+alias acs='apt-cache search'
+#a3# Execute \kbd{apt-cache show}
+alias acw='apt-cache show'
+#a3# Execute \kbd{apt-cache policy}
+alias acp='apt-cache policy'
+#a3# Execute \kbd{apt-get dist-upgrade}
+salias adg="apt-get dist-upgrade"
+#a3# Execute \kbd{apt-get install}
+salias agi="apt-get install"
+#a3# Execute \kbd{aptitude install}
+salias ati="aptitude install"
+#a3# Execute \kbd{apt-get upgrade}
+salias ag="apt-get upgrade"
+#a3# Execute \kbd{apt-get update}
+salias au="apt-get update"
+#a3# Execute \kbd{aptitude update ; aptitude safe-upgrade}
+salias -a up="aptitude update ; aptitude safe-upgrade"
+#a3# Execute \kbd{grep-excuses}
+alias ge='grep-excuses'
+
+#a3# List installed Debian-packages sorted by size
+alias debs-by-size="dpkg-query -Wf 'x \${Installed-Size} \${Package} \${Status}\n' | sed -ne '/^x  /d' -e '/^x \(.*\) install ok installed$/s//\1/p' | sort -nr"
+
+#a3# Search using apt-file
+alias afs='apt-file search --regexp'
+
+# Prints apt history
+# Usage:
+#   apt-history install
+#   apt-history upgrade
+#   apt-history remove
+#   apt-history rollback
+#   apt-history list
+# Based On: http://linuxcommando.blogspot.com/2008/08/how-to-show-apt-log-history.html
+apt-history () {
+  case "$1" in
+    install)
+      zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*)
+      ;;
+    upgrade|remove)
+      zgrep --no-filename $1 $(ls -rt /var/log/dpkg*)
+      ;;
+    rollback)
+      zgrep --no-filename upgrade $(ls -rt /var/log/dpkg*) | \
+        grep "$2" -A10000000 | \
+        grep "$3" -B10000000 | \
+        awk '{print $4"="$5}'
+      ;;
+    list)
+      zcat $(ls -rt /var/log/dpkg*)
+      ;;
+    *)
+      echo "Parameters:"
+      echo " install - Lists all packages that have been installed."
+      echo " upgrade - Lists all packages that have been upgraded."
+      echo " remove - Lists all packages that have been removed."
+      echo " rollback - Lists rollback information."
+      echo " list - Lists all contains of dpkg logs."
+      ;;
+  esac
+}
diff --git a/.zsh/distri:Debian/Completion.zsh b/.zsh/distri:Debian/Completion.zsh
new file mode 100644 (file)
index 0000000..c10d46d
--- /dev/null
@@ -0,0 +1,3 @@
+# -*- mode: sh;-*-
+
+compdef _dchange dchange
diff --git a/.zsh/distri:Debian/Functions.zsh b/.zsh/distri:Debian/Functions.zsh
new file mode 100644 (file)
index 0000000..255eb7d
--- /dev/null
@@ -0,0 +1,20 @@
+# -*- mode: sh;-*-
+
+#f1# View Debian's changelog of a given package
+dchange() {
+    emulate -L zsh
+    if [[ -r /usr/share/doc/$1/changelog.Debian.gz ]] ; then
+        $PAGER /usr/share/doc/$1/changelog.Debian.gz
+    elif [[ -r /usr/share/doc/$1/changelog.gz ]] ; then
+        $PAGER /usr/share/doc/$1/changelog.gz
+    else
+        if which aptitude ; then
+            echo "No changelog for package $1 found, using aptitude to retrieve it."
+            aptitude changelog $1
+        else
+            echo "No changelog for package $1 found, sorry."
+            return 1
+        fi
+    fi
+}
+_dchange() { _files -W /usr/share/doc -/ }
diff --git a/.zsh/functions/grpname b/.zsh/functions/grpname
new file mode 100644 (file)
index 0000000..877af9f
--- /dev/null
@@ -0,0 +1,10 @@
+# -*- mode:sh -*-
+
+# This little function just returns the name of a unix group for the
+# given gid
+# 3 ways to do it, all work. select what you prefer :)
+#      ${(j.:u:.)${(f)"$(getent group $1)"}%%:*}
+#      echo ${${(s.:.)"$(getent group $1)"}[0]}
+echo ${"$(getent group $1)"%%:*}
+
+
diff --git a/.zsh/functions/insert-datestamp b/.zsh/functions/insert-datestamp
new file mode 100644 (file)
index 0000000..857e438
--- /dev/null
@@ -0,0 +1,3 @@
+# -*- mode:sh -*-
+
+LBUFFER+=${(%):-'%D{%Y-%m-%d}'}
diff --git a/.zsh/functions/jump_after_first_word b/.zsh/functions/jump_after_first_word
new file mode 100644 (file)
index 0000000..f8189a1
--- /dev/null
@@ -0,0 +1,12 @@
+# -*- mode:sh -*-
+
+### jump behind the first word on the cmdline.
+### useful to add options.
+local words
+words=(${(z)BUFFER})
+
+if (( ${#words} <= 1 )) ; then
+    CURSOR=${#BUFFER}
+else
+    CURSOR=${#${words[1]}}
+fi
diff --git a/.zsh/functions/logout b/.zsh/functions/logout
new file mode 100644 (file)
index 0000000..9c1c166
--- /dev/null
@@ -0,0 +1,40 @@
+# -*- mode:sh -*-
+
+# Process the exceptions which allow logging out while still having
+# attached jobs.
+
+# This is weird . . $1 seems to contain "logout" because the "logout"
+# command has been aliased to "noglob logout" - and $0 is the noglob.
+# I can't believe that this is what is meant to happen.
+if [[ $1 = "logout" ]]
+then
+       shift
+fi
+# If the checkjobs option is unset, just plain exit.  (This option
+# emerged in zsh 3.1.8.)
+if [[ ! -o checkjobs ]]
+then
+    reallyexit ${1+"$@"}
+fi
+# Did I type logout twice in a row?  Note check for history number.
+if [[ $history[$#history] = (exit|(logout|lo)(|\ *)) || $lastlogout = $#history ]]; then
+    reallyexit ${1+"$@"}
+fi
+
+# Did I type jobs, then logout?
+if [[ $history[$#history] = (j(|obs)(|\ *)) ]]; then
+    reallyexit ${1+"$@"}
+fi
+
+lastlogout=$#history
+
+# Emulate the code that protects against logout if I have
+# attached jobs.
+if [[ $#jobstates -gt 0 ]]; then
+    # The first listed state is good enough to be a hint of my job states.
+    echo "You have ${jobstates[${${(k)jobstates}[1]}]%%:*} jobs."
+    return
+fi
+
+# If we got here we're really exiting.
+reallyexit ${1+"$@"}
diff --git a/.zsh/functions/mcdrom b/.zsh/functions/mcdrom
new file mode 100644 (file)
index 0000000..9e44506
--- /dev/null
@@ -0,0 +1,20 @@
+# -*- mode:sh -*-
+
+local mounted
+local cpwd
+mounted=$(grep cdrom /etc/mtab)
+if [[ $mounted = "" ]];then
+    mount /cdrom/
+    echo "-- mounted cdrom --"
+    cd /cdrom/ ; ls
+else
+    cpwd=$(pwd|grep cdrom)
+    if [[ $cpwd = "" ]];then
+        umount /cdrom/
+        echo "-- umounted cdrom --"
+       else
+        cd; umount /cdrom/
+        echo "-- umounted cdrom --"
+        pwd
+    fi
+fi
diff --git a/.zsh/functions/md b/.zsh/functions/md
new file mode 100644 (file)
index 0000000..39a9317
--- /dev/null
@@ -0,0 +1,3 @@
+local DIR
+DIR="$1"
+mkdir -p "$1" && cd "$1"
diff --git a/.zsh/functions/periodic b/.zsh/functions/periodic
new file mode 100644 (file)
index 0000000..89b3684
--- /dev/null
@@ -0,0 +1,78 @@
+# -*- mode:sh -*-
+
+# I use this function to generate a few variables which then get used in my prompt.
+# This function here is only executed every X seconds, the prompt uses the variables set by it.
+# This way I can include some information in my prompt which may need more time to collect
+# than you want a promptdisplay to use
+#
+# The function has to fill in the associative array "ACPIDISPLAY", setting the following values
+# (if available):
+#
+# bat1 - first battery
+# bat2 - possible second battery, unset if none
+# tz1 .. tzX - temperatures
+# cpu - CPU frequency
+# tznum - number of tempX entries
+# ac - online or offline
+case $LAPTOP in
+       yacpi)
+               ACPIDATA=(${(s:|:)"$(yacpi -p)"})
+
+               ACPIDISPLAY=(
+                       bat1  ${${ACPIDATA[1]}[(w)3]}
+                       bat2  ${${ACPIDATA[2]}[(w)3]}
+                       ac    ${${ACPIDATA[3]}[(w)3]}
+                       tz5   ${${ACPIDATA[4]}[(w)3]}
+                       tz4   ${${ACPIDATA[5]}[(w)3]}
+                       tz3   ${${ACPIDATA[6]}[(w)3]}
+                       tz2   ${${ACPIDATA[7]}[(w)3]}
+                       tz1   ${${ACPIDATA[8]}[(w)3]}
+                       tz0   ${${ACPIDATA[9]}[(w)3]}
+                       cpu   ${${${ACPIDATA[11]}[(w)3]}//\/*/}
+                       tznum 5
+               )
+               PR_APM_BAT='${PR_YELLOW}B: ${PR_RED}$ACPIDISPLAY[bat1] ${(e)PR_SLASH}${ACPIDISPLAY[bat2]} ${PR_YELLOW}%%'
+               PR_APM_TEMP='T: ${PR_RED}$ACPIDISPLAY[tz0]${(e)PR_SLASH}$ACPIDISPLAY[tz1]${(e)PR_SLASH}$ACPIDISPLAY[tz2]${(e)PR_SLASH}$ACPIDISPLAY[tz3]${(e)PR_SLASH}$ACPIDISPLAY[tz4]${(e)PR_SLASH}$ACPIDISPLAY[tz5]${PR_YELLOW}°C'
+               PR_APM_CPU='CPU: ${PR_RED}$ACPIDISPLAY[cpu]${PR_YELLOW}MHz'
+               PR_APM_AC='AC: ${PR_RED}$ACPIDISPLAY[ac]'
+               PR_APM_LAST='${PR_CYAN}'
+
+               case $TOOLONG in
+                       0)
+                               PR_APM="${PR_APM_BAT} ${PR_APM_TEMP} ${PR_APM_CPU} ${PR_APM_AC}${PR_APM_LAST}"
+                               ;;
+                       1)
+                               PR_APM="${PR_APM_BAT} ${PR_APM_TEMP} ${PR_APM_CPU} ${PR_APM_LAST}"
+                               ;;
+                       2)
+                               PR_APM="${PR_APM_BAT} ${PR_APM_TEMP} ${PR_APM_LAST}"
+                               ;;
+                       3)
+                               PR_APM="${PR_APM_BAT} ${PR_APM_LAST}"
+                               ;;
+                       4)
+                               PR_APM=""
+                               ;;
+                       *)
+                               PR_APM=""
+                               ;;
+               esac
+               ;;
+       ibam)
+               ACPIDATA=$(ibam --percentbattery)
+               ACPIDISPLAY=(
+                       bat1 ${${ACPIDATA[(f)1]}[(w)-2]}
+                       tznum 0
+               )
+               PR_APM='${PR_RED}B: $ACPIDISPLAY[bat1] ${PR_CYAN}'
+
+               ;;
+       *)
+               unset ACPIDATA
+               unset ACPIDISPLAY
+               PR_APM=''
+esac
+
+# Finally see how long the acpi related prompt is
+PR_APM_TEMP=${PR_APM//\${\(e\)PR_SLASH}/#}
+PR_APM_LENGTH=${(e)PR_APM_TEMP//\${PR_(LIGHT|)(RED|GREEN|YELLOW|BLUE|MAGENTA|CYAN|WHITE)}/}
diff --git a/.zsh/functions/precmd b/.zsh/functions/precmd
new file mode 100644 (file)
index 0000000..72317ee
--- /dev/null
@@ -0,0 +1,62 @@
+# -*- mode:sh -*-
+
+# update VCS information
+vcs_info
+
+# set variable debian_chroot if running in a chroot with /etc/debian_chroot
+if [[ -z "$debian_chroot" ]] && [[ -r /etc/debian_chroot ]] ; then
+    debian_chroot="chroot: $(cat /etc/debian_chroot)"
+fi
+###
+
+local TERMWIDTH
+(( TERMWIDTH = ${COLUMNS} - 1 ))
+
+# Truncate the path if it's too long.
+PR_FILLBAR=""
+PR_PWDLEN=""
+
+local promptsize=${#${(%):---(%n@%m:%l)---()--}}
+local pwdsize=${#${(%):-%~}}
+# for whatever reason this works better if set to 3 on systems where no acpi info is in prompt
+local apmsize=3
+
+# Finally see how long the acpi related prompt is
+PR_APM_TEMP=${PR_APM//\${\(e\)PR_SLASH}/#}
+PR_APM_LENGTH=${(e)PR_APM_TEMP//\${PR_(LIGHT|)(RED|GREEN|YELLOW|BLUE|MAGENTA|CYAN|WHITE)}/}
+
+# The info i collect for my laptop is - well. long. As I usually have my terms in full screen
+# mode that doesnt matter, there is enough space. But for some cases I may want smaller
+# windows, so deal with it and make the acpi line smaller by dropping parts of it.
+
+(( apmsize=${(e)#PR_APM_LENGTH} - 2 ))
+
+while [[ "$promptsize + $pwdsize + $apmsize" -gt $TERMWIDTH ]]; do
+       (( TOOLONG=$TOOLONG + 1 ))
+
+       if [[ "$TOOLONG" -gt 5 ]]; then
+               break
+       fi
+       periodic
+       (( apmsize=${(e)#PR_APM_LENGTH} - 2 ))
+done
+
+if [[ ${(e)#PR_APM_LENGTH} -gt 10 ]]; then
+       (( apmsize=${(e)#PR_APM_LENGTH} - 2 ))
+else
+       apmsize=3
+fi
+
+if [[ "$promptsize + $pwdsize + $apmsize" -gt $TERMWIDTH ]]; then
+       ((PR_PWDLEN=$TERMWIDTH - $promptsize - $apmsize ))
+else
+       PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize + $pwdsize + $apmsize)))..${PR_HBAR}.)}"
+fi
+
+if [[ "$PR_BARLENGTH" -lt "${#${(e)PR_FILLBAR}}" ]]; then
+       (( TOOLONG=$TOOLONG - 1 ))
+       if [[ "$TOOLONG" -lt 0 ]]; then
+               TOOLONG=0
+       fi
+fi
+PR_BARLENGTH=${#${(e)PR_FILLBAR}}
diff --git a/.zsh/functions/preexec b/.zsh/functions/preexec
new file mode 100644 (file)
index 0000000..af7faf9
--- /dev/null
@@ -0,0 +1,5 @@
+# -*- mode:sh -*-
+if [[ "$TERM" == "screen" ]]; then
+       local CMD=${1[(wr)^(*=*|sudo|ssh|sshc|-*)]}
+       echo -n "\ek$CMD\e\\"
+fi
diff --git a/.zsh/functions/reallyexit b/.zsh/functions/reallyexit
new file mode 100644 (file)
index 0000000..98a854a
--- /dev/null
@@ -0,0 +1,8 @@
+# -*- mode:sh -*-
+
+# logging out
+# It isn't bulletproof, but it's good
+# enough for my needs.
+# This function is called if I really want to exit the shell.
+kill -HUP $$
+
diff --git a/.zsh/functions/safe-restore-ssh-agent-socket b/.zsh/functions/safe-restore-ssh-agent-socket
new file mode 100644 (file)
index 0000000..f4b9751
--- /dev/null
@@ -0,0 +1,11 @@
+## vim:ft=zsh:foldmethod=marker
+
+if [ "$SSH_AUTH_SOCK" != "" ] && [ "$SSH_AUTH_SOCK" != "$HOME/.ssh-auth-sock" ] ; then
+       if ! [ -e "$HOME/.ssh-auth-sock" ] || [ "`readlink $HOME/.ssh-auth-sock`" != "$SSH_AUTH_SOCK" ]; then
+               echo "Setting ~/.ssh-auth-sock."
+               rm -f "$HOME/.ssh-auth-sock"
+               ln -s "$SSH_AUTH_SOCK" "$HOME/.ssh-auth-sock"
+       fi
+elif [ "$SSH_AUTH_SOCK" = "" ] && [ -e "$HOME/.ssh-auth-sock" ]; then
+       SSH_AUTH_SOCK="$HOME/.ssh-auth-sock"; export SSH_AUTH_SOCK
+fi
diff --git a/.zsh/functions/salias b/.zsh/functions/salias
new file mode 100644 (file)
index 0000000..61efb91
--- /dev/null
@@ -0,0 +1,43 @@
+# -*- mode: sh;-*-
+# creates an alias and precedes the command with
+# sudo if $EUID is not zero.
+# Taken from grml zshrc
+# Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports:   see http://grml.org/bugs/
+# License:       This file is licensed under the GPL v2.
+
+emulate -L zsh
+local only=0 ; local multi=0
+while [[ $1 == -* ]] ; do
+    case $1 in
+        (-o) only=1 ;;
+        (-a) multi=1 ;;
+        (--) shift ; break ;;
+        (-h)
+            printf 'usage: salias [-h|-o|-a] <alias-expression>\n'
+            printf '  -h      shows this help text.\n'
+            printf '  -a      replace '\'' ; '\'' sequences with '\'' ; sudo '\''.\n'
+            printf '          be careful using this option.\n'
+            printf '  -o      only sets an alias if a preceding sudo would be needed.\n'
+            return 0
+            ;;
+        (*) printf "unkown option: '%s'\n" "$1" ; return 1 ;;
+    esac
+    shift
+done
+
+if (( ${#argv} > 1 )) ; then
+    printf 'Too many arguments %s\n' "${#argv}"
+    return 1
+fi
+
+key="${1%%\=*}" ;  val="${1#*\=}"
+if (( EUID == 0 )) && (( only == 0 )); then
+    alias -- "${key}=${val}"
+elif (( EUID > 0 )) ; then
+    (( multi > 0 )) && val="${val// ; / ; sudo }"
+    alias -- "${key}=sudo ${val}"
+fi
+
+return 0
+
diff --git a/.zsh/functions/setprompt b/.zsh/functions/setprompt
new file mode 100644 (file)
index 0000000..6858acd
--- /dev/null
@@ -0,0 +1,94 @@
+# -*- mode:sh -*-
+
+###
+# See if we can use colors.
+autoload zsh/terminfo
+
+# set colors for use in prompts
+if autoload colors && colors 2>/dev/null ; then
+    for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
+           eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
+           eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
+           (( count = $count + 1 ))
+    done
+    PR_NO_COLOUR="%{$terminfo[sgr0]%}"
+else
+    PR_BLUE=$'%{\e[1;34m%}'
+    PR_RED=$'%{\e[1;31m%}'
+    PR_GREEN=$'%{\e[1;32m%}'
+    PR_CYAN=$'%{\e[1;36m%}'
+    PR_WHITE=$'%{\e[1;37m%}'
+    PR_MAGENTA=$'%{\e[1;35m%}'
+    PR_YELLOW=$'%{\e[1;33m%}'
+    PR_NO_COLOR=$'%{\e[0m%}'
+fi
+
+###
+# See if we can use extended characters to look nicer.
+typeset -A altchar
+set -A altchar ${(s..)terminfo[acsc]}
+PR_SET_CHARSET="%{$terminfo[enacs]%}"
+PR_SHIFT_IN="%{$terminfo[smacs]%}"
+PR_SHIFT_OUT="%{$terminfo[rmacs]%}"
+PR_HBAR=${altchar[q]:--}
+PR_ULCORNER=${altchar[l]:--}
+PR_LLCORNER=${altchar[m]:--}
+PR_LRCORNER=${altchar[j]:--}
+PR_URCORNER=${altchar[k]:--}
+
+case $TERM in
+       xterm*|rxvt*)
+           PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}'
+           ;;
+       screen)
+           PR_TITLEBAR=$'%{\e_screen \005 (\005t) | %(!.-=[ROOT]=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\e\\%}'
+           ;;
+       *)
+           PR_TITLEBAR=''
+           ;;
+esac
+
+###
+# Decide the color of the hostname
+if [[ "$HOSTNAME" = 'gkar' ||  "$HOSTNAME" = 'delenn' ]]; then
+       PR_HCOLOR="${PR_GREEN}"
+else
+       case $DOMAIN in
+               "debconf.org")
+                       PR_HCOLOR="${PR_CYAN}"
+                       ;;
+               "debian.org")
+                       PR_HCOLOR="${PR_WHITE}"
+                       ;;
+               *)
+                       PR_HCOLOR="${PR_RED}"
+                       ;;
+       esac
+fi
+
+###
+# Finally, the prompt.
+
+PROMPT='$PR_SET_CHARSET$PR_STITLE${(e)PR_TITLEBAR}\
+$PR_CYAN$PR_SHIFT_IN$PR_ULCORNER$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\
+$PR_GREEN%(!.%SROOT%s.%n)$PR_GREEN@$PR_HCOLOR%m$PR_GREEN:%l\
+$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_HBAR${(e)PR_APM}\
+$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_HBAR$PR_HBAR${(e)PR_FILLBAR}$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\
+$PR_MAGENTA%$PR_PWDLEN<...<%~%<<\
+$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_URCORNER$PR_SHIFT_OUT\
+
+$PR_CYAN$PR_SHIFT_IN$PR_LLCORNER$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\
+%(?..$PR_LIGHT_RED%?$PR_BLUE:)\
+$PR_YELLOW%D{%H:%M}$PR_BLUE)\
+$PR_WHITE$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT${debian_chroot:+($debian_chroot)}${PR_NO_COLOR}\
+$PR_SHIFT_IN$PR_HBAR $PR_SHIFT_OUT${vcs_info_msg_0_}\
+$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\
+$PR_NO_COLOUR| '
+
+RPROMPT=' |$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_BLUE$PR_HBAR$PR_SHIFT_OUT\
+($PR_YELLOW%D{%a,%b%d}$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_LRCORNER$PR_SHIFT_OUT$PR_NO_COLOUR'
+
+PS2='$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\
+$PR_BLUE$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT(\
+$PR_LIGHT_GREEN%_$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\
+$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT$PR_NO_COLOUR '
diff --git a/.zsh/functions/setup-oftc-aliases b/.zsh/functions/setup-oftc-aliases
new file mode 100644 (file)
index 0000000..e1e12a9
--- /dev/null
@@ -0,0 +1,10 @@
+## vim:ft=zsh:foldmethod=marker
+
+local name ip
+cat "$HOME/.oftc-hosts" | while read name ip; do
+       alias -g $name-ip="$ip"
+       alias irssi-$name="irssi --home=$HOME/.irssi-MASTER --connect=OFTC-$name"
+
+       alias -g $name-testnet-ip="$ip"
+       alias irssi-testnet-$name="irssi --home=$HOME/.irssi-MASTER --connect=TESTNET-$name"
+done
diff --git a/.zsh/functions/ssha b/.zsh/functions/ssha
new file mode 100644 (file)
index 0000000..5914a79
--- /dev/null
@@ -0,0 +1,10 @@
+## vim:ft=zsh:foldmethod=marker
+
+(
+local SSH_AUTH_SOCK
+local SSH_AGENT_PID
+eval `ssh-agent`
+ssh-add -c
+ssh -o ControlPath=none -A "$@"
+kill $SSH_AGENT_PID
+)
diff --git a/.zsh/functions/sudo-command-line b/.zsh/functions/sudo-command-line
new file mode 100644 (file)
index 0000000..5e0a67b
--- /dev/null
@@ -0,0 +1,5 @@
+# -*- mode:sh -*-
+
+# run command line as user root via sudo:
+[[ -z $BUFFER ]] && zle up-history
+[[ $BUFFER != sudo\ * ]] && BUFFER="sudo $BUFFER"
diff --git a/.zsh/functions/telnets b/.zsh/functions/telnets
new file mode 100644 (file)
index 0000000..9f7c424
--- /dev/null
@@ -0,0 +1,11 @@
+# -*- mode:sh -*-
+
+host=${1:-""}
+port=${2:-"443"}
+
+if [[ $host = "" ]]; then
+    echo "Missing host argument"
+    return
+fi
+
+openssl s_client -host ${host} -port ${port}
diff --git a/.zsh/functions/termsupported b/.zsh/functions/termsupported
new file mode 100644 (file)
index 0000000..097f507
--- /dev/null
@@ -0,0 +1,44 @@
+# -*- mode:sh -*-
+
+# termsupported function
+# Define a useful function to determine if the current value of TERM
+# is useful, or if it needs changing.  Used below.
+termsupported ()
+{
+  # terminfo should have a file for this terminal type.
+  if [[ -f "/usr/share/terminfo/$TERM[1]/$TERM" ]]
+  then
+    # If it's there, success.
+    return 0
+  else
+    # With termcap, we have a monolithic terminal type listing.
+    if [[ -f /etc/termcap ]]
+    then
+      # This sed script joins continued \
+      # lines and then checks to see if this terminal name is listed.
+      if [[ "`sed -n \
+        -e '/^$/d' \
+        -e '/^#/d' \
+        -e 'h' \
+        -e 's/^\\([^:\\\\]*\\)[:\\\\].*\$/|\\1|/' \
+        -e '/|'$1'|/p' \
+        -e 'g' \
+        -e ':detail' \
+        -e '/\\$/{' \
+        -e 'n' \
+        -e 'b detail' \
+        -e '}' \
+        < /etc/termcap`" = "" ]]
+      then
+        # Nothing matches, fail.
+        return 1
+      else
+        # Found a matching entry, succeed.
+        return 0
+      fi
+    else
+      # If neither terminal capabilities system was found, fail.
+      return 2
+    fi
+  fi
+}
diff --git a/.zsh/install.zsh b/.zsh/install.zsh
new file mode 100644 (file)
index 0000000..64175c7
--- /dev/null
@@ -0,0 +1,62 @@
+# -*- sh -*-
+
+autoload colors ; colors
+
+# Install or update my ZSH config on a remote host.
+# Needs Git and makeself locally
+install-zsh() {
+    local remote
+    local work
+    local start
+    remote=$1
+    work=$(mktemp -d)
+    start=$(pwd)
+    {
+           local OK="$fg_bold[green]OK.${reset_color}"
+           print -n "$fg[green]Building archive...${reset_color} "
+           cd $ZSH 
+        git archive HEAD | tar -C $work -xf -
+        mkdir -p $work/zsh-syntax-highlighting
+        cd $ZSH/zsh-syntax-highlighting 
+        git archive HEAD | tar -C $work/zsh-syntax-highlighting -xf -
+           cp $HOME/.zshenv $work/zshenv.home
+        print $OK
+           print -n "$fg[green]Building installer...${reset_color} "
+           makeself --gzip $work $ZSH/zsh-install.sh \
+               "$USER ZSH config files" zsh ./install.zsh MAGIC
+           print $OK
+           [[ -z $1 ]] || {
+               print "$fg[green]Remote install...${reset_color} "
+               scp $ZSH/zsh-install.sh ${remote}:
+               ssh $remote sh ./zsh-install.sh
+               print $OK
+           }
+    } always {
+           rm -rf $work
+        cd $start
+    }
+}
+
+# We can be executed to install ourself to the final destination
+if [[ $1 == "MAGIC" ]]; then
+    (( $+commands[rsync] )) || {
+           print "$fg_bold[red]rsync not found, install it${reset_color}"
+           exit 2
+    }
+    local OK="$fg[green]OK.${reset_color}"
+
+    # Migrate history
+    print -n "$fg[green]History migration...${reset_color} "
+    mkdir -p ~/.zsh/var/dirhist
+    mkdir -p ~/.zsh/.zcompcache
+    { mv ~/.zsh_history ~/.zsh/var/history.$USER.$HOST } 2> /dev/null
+    print $OK
+    print "$fg[green]Installation of zsh files...${reset_color} "
+    rsync -rlp --exclude=var/ --exclude=.zcompcache/ --delete . ~/.zsh/.
+    rm -f ~/.zlogin
+    rm -f ~/.zlogout
+    rm -f ~/.zshrc
+    rm -f ~/.zshenv
+    ln -s .zsh/zshenv.home ~/.zshenv
+    print $OK
+fi
diff --git a/.zsh/net:cms.fra.dlh.de/Aliases.zsh b/.zsh/net:cms.fra.dlh.de/Aliases.zsh
new file mode 100644 (file)
index 0000000..b9bc0fc
--- /dev/null
@@ -0,0 +1,3 @@
+# -*- mode: sh;-*-
+
+alias gitolite='ssh git@git'
diff --git a/.zsh/net:debian.org/Environment.zsh b/.zsh/net:debian.org/Environment.zsh
new file mode 100644 (file)
index 0000000..106450c
--- /dev/null
@@ -0,0 +1,3 @@
+# -*- mode: sh;-*-
+
+export DAK_INSPECT_UPLOAD='tmux new-session -d -s process-new 2>/dev/null; tmux new-window -t process-new:1 -n "${changes}" -k " cd {directory}; mc"'
diff --git a/.zsh/net:ganneff.de/host:gkar/Aliases.zsh b/.zsh/net:ganneff.de/host:gkar/Aliases.zsh
new file mode 100644 (file)
index 0000000..3f5c7b9
--- /dev/null
@@ -0,0 +1,12 @@
+# -*- mode: sh;-*-
+
+alias dpb='LANG=C LC_ALL=C dpkg-buildpackage -rfakeroot -k0xB12525C4'
+#alias cvsbp='LANG=C LC_ALL=C cvs-buildpackage -F -rfakeroot -k0xB12525C4'
+alias pdb='LANG=C LC_ALL=C pdebuild --auto-debsign --debbuildopts -sa --debsign-k B12525C4'
+
+alias pdbis='LANG=C LC_ALL=C linux32 pdebuild --auto-debsign --debsign-k B12525C4 -- --pkgname-logfile --basetgz /var/cache/pbuilder/base_squeeze_i386.tgz --debbuildopts -sa '
+alias pdbas='LANG=C LC_ALL=C pdebuild --auto-debsign --debsign-k B12525C4 -- --pkgname-logfile --basetgz /var/cache/pbuilder/base_squeeze_amd64.tgz --debbuildopts -sa '
+alias pdbie='LANG=C LC_ALL=C linux32 pdebuild --auto-debsign --debsign-k B12525C4 -- --pkgname-logfile --basetgz /var/cache/pbuilder/base_etch_i386.tgz --debbuildopts -sa '
+alias pdbae='LANG=C LC_ALL=C pdebuild --auto-debsign --debsign-k B12525C4 -- --pkgname-logfile --basetgz /var/cache/pbuilder/base_etch_amd64.tgz --debbuildopts -sa '
+alias pdbil='LANG=C LC_ALL=C linux32 pdebuild --auto-debsign --debsign-k B12525C4 -- --pkgname-logfile --basetgz /var/cache/pbuilder/base_lenny_i386.tgz --debbuildopts -sa '
+alias pdbal='LANG=C LC_ALL=C pdebuild --auto-debsign --debsign-k B12525C4 -- --pkgname-logfile --basetgz /var/cache/pbuilder/base_lenny_amd64.tgz --debbuildopts -sa '
diff --git a/.zsh/net:ganneff.de/host:gkar/Completion.zsh b/.zsh/net:ganneff.de/host:gkar/Completion.zsh
new file mode 100644 (file)
index 0000000..2b2dd52
--- /dev/null
@@ -0,0 +1,27 @@
+# -*- mode: sh;-*-
+
+# In addition to what we have globally
+_hostdescs_debconf=(${${${${(f)"$(<$HOME/.hostdesc.debconf)"}:#[\|]*}%%\ *}%%,*})
+_hostdescs_ganneff=(${${${${(f)"$(<$HOME/.hostdesc.ganneff)"}:#[\|]*}%%\ *}%%,*})
+_hostdescs_ilo=(${${${${(f)"$(<$HOME/.hostdesc.ilo)"}:#[\|]*}%%\ *}%%,*})
+_hostdescs_nsb=(${${${${(f)"$(<$HOME/.hostdesc.nsb)"}:#[\|]*}%%\ *}%%,*})
+_hostdescs_oftc=(${${${${(f)"$(<$HOME/.hostdesc.oftc)"}:#[\|]*}%%\ *}%%,*})
+_hostdescs_other=(${${${${(f)"$(<$HOME/.hostdesc.other)"}:#[\|]*}%%\ *}%%,*})
+_hostdescs_spi=(${${${${(f)"$(<$HOME/.hostdesc.spi)"}:#[\|]*}%%\ *}%%,*})
+
+hosts=(
+    ${HOST}
+    "$_ssh_hosts[@]"
+    "$_ssh_debian_hosts[@]"
+    "$_ssh_etc_hosts[@]"
+    "$_etc_hosts[@]"
+    "$_hostdesc_debconf[@]"
+    "$_hostdesc_ganneff[@]"
+    "$_hostdesc_ilo[@]"
+    "$_hostdesc_nsb[@]"
+    "$_hostdesc_oftc[@]"
+    "$_hostdesc_other[@]"
+    "$_hostdesc_spi[@]"
+    localhost
+)
+zstyle ':completion:*:hosts' hosts $hosts
diff --git a/.zsh/net:ganneff.de/host:gkar/Environment.zsh b/.zsh/net:ganneff.de/host:gkar/Environment.zsh
new file mode 100644 (file)
index 0000000..20660a8
--- /dev/null
@@ -0,0 +1,5 @@
+
+# -*- mode: sh;-*-
+
+export http_proxy='http://lorien:3128/'
+export ftp_proxy='http://lorien:3128/'
diff --git a/.zsh/net:ganneff.de/host:gkar/Exec.zsh b/.zsh/net:ganneff.de/host:gkar/Exec.zsh
new file mode 100644 (file)
index 0000000..9bdc659
--- /dev/null
@@ -0,0 +1,4 @@
+# -*- mode: sh;-*-
+
+[ -x /usr/bin/rem ] && rem
+
diff --git a/.zsh/net:ganneff.de/host:gkar/Functions.zsh b/.zsh/net:ganneff.de/host:gkar/Functions.zsh
new file mode 100644 (file)
index 0000000..cbc050c
--- /dev/null
@@ -0,0 +1,2 @@
+# -*- mode: sh;-*-
+source $ZDOTDIR/install.zsh
diff --git a/.zsh/net:ganneff.de/host:gkar/Hashes.zsh b/.zsh/net:ganneff.de/host:gkar/Hashes.zsh
new file mode 100644 (file)
index 0000000..f6e5e87
--- /dev/null
@@ -0,0 +1,6 @@
+# -*- mode: sh;-*-
+
+hash -d Debian=/develop/Debian
+hash -d Packages=/develop/Packages
+
+cdpath=( . /develop/Debian /usr/doc /usr/share )
diff --git a/.zsh/plugins/git-extras.plugin.zsh b/.zsh/plugins/git-extras.plugin.zsh
new file mode 100644 (file)
index 0000000..8419166
--- /dev/null
@@ -0,0 +1,285 @@
+#compdef git
+# ------------------------------------------------------------------------------
+# Description
+# -----------
+#
+#  Completion script for git-extras (http://github.com/visionmedia/git-extras).
+#
+# ------------------------------------------------------------------------------
+# Authors
+# -------
+#
+#  * Alexis GRIMALDI (https://github.com/agrimaldi)
+#
+# ------------------------------------------------------------------------------
+# Inspirations
+# -----------
+#
+#  * git-extras (http://github.com/visionmedia/git-extras)
+#  * git-flow-completion (http://github.com/bobthecow/git-flow-completion)
+#
+# ------------------------------------------------------------------------------
+
+
+__git_command_successful () {
+    if (( ${#pipestatus:#0} > 0 )); then
+        _message 'not a git repository'
+        return 1
+    fi
+    return 0
+}
+
+
+__git_tag_names() {
+    local expl
+    declare -a tag_names
+    tag_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/tags 2>/dev/null)"}#refs/tags/})
+    __git_command_successful || return
+    _wanted tag-names expl tag-name compadd $* - $tag_names
+}
+
+
+__git_branch_names() {
+    local expl
+    declare -a branch_names
+    branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/})
+    __git_command_successful || return
+    _wanted branch-names expl branch-name compadd $* - $branch_names
+}
+
+
+__git_feature_branch_names() {
+    local expl
+    declare -a branch_names
+    branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/feature 2>/dev/null)"}#refs/heads/feature/})
+    __git_command_successful || return
+    _wanted branch-names expl branch-name compadd $* - $branch_names
+}
+
+
+__git_refactor_branch_names() {
+    local expl
+    declare -a branch_names
+    branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/refactor 2>/dev/null)"}#refs/heads/refactor/})
+    __git_command_successful || return
+    _wanted branch-names expl branch-name compadd $* - $branch_names
+}
+
+
+__git_bug_branch_names() {
+    local expl
+    declare -a branch_names
+    branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/bug 2>/dev/null)"}#refs/heads/bug/})
+    __git_command_successful || return
+    _wanted branch-names expl branch-name compadd $* - $branch_names
+}
+
+
+__git_submodule_names() {
+    local expl
+    declare -a submodule_names
+    submodule_names=(${(f)"$(_call_program branchrefs git submodule status | awk '{print $2}')"})
+    __git_command_successful || return
+    _wanted submodule-names expl submodule-name compadd $* - $submodule_names
+}
+
+
+__git_author_names() {
+    local expl
+    declare -a author_names
+    author_names=(${(f)"$(_call_program branchrefs git log --format='%aN' | sort -u)"})
+    __git_command_successful || return
+    _wanted author-names expl author-name compadd $* - $author_names
+}
+
+
+_git-changelog() {
+    _arguments \
+        '(-l --list)'{-l,--list}'[list commits]' \
+}
+
+
+_git-effort() {
+    _arguments \
+        '--above[ignore file with less than x commits]' \
+}
+
+
+_git-contrib() {
+    _arguments \
+        ':author:__git_author_names'
+}
+
+
+_git-count() {
+    _arguments \
+        '--all[detailed commit count]'
+}
+
+
+_git-delete-branch() {
+    _arguments \
+        ':branch-name:__git_branch_names'
+}
+
+
+_git-delete-submodule() {
+    _arguments \
+        ':submodule-name:__git_submodule_names'
+}
+
+
+_git-delete-tag() {
+    _arguments \
+        ':tag-name:__git_tag_names'
+}
+
+
+_git-extras() {
+    local curcontext=$curcontext state line ret=1
+    declare -A opt_args
+
+    _arguments -C \
+        ': :->command' \
+        '*:: :->option-or-argument' && ret=0
+
+    case $state in
+        (command)
+            declare -a commands
+            commands=(
+                'update:update git-extras'
+            )
+            _describe -t commands command commands && ret=0
+            ;;
+    esac
+
+    _arguments \
+        '(-v --version)'{-v,--version}'[show current version]' \
+}
+
+
+_git-graft() {
+    _arguments \
+        ':src-branch-name:__git_branch_names' \
+        ':dest-branch-name:__git_branch_names'
+}
+
+
+_git-squash() {
+    _arguments \
+        ':branch-name:__git_branch_names'
+}
+
+
+_git-feature() {
+    local curcontext=$curcontext state line ret=1
+    declare -A opt_args
+
+    _arguments -C \
+        ': :->command' \
+        '*:: :->option-or-argument' && ret=0
+
+    case $state in
+        (command)
+            declare -a commands
+            commands=(
+                'finish:merge feature into the current branch'
+            )
+            _describe -t commands command commands && ret=0
+            ;;
+        (option-or-argument)
+            curcontext=${curcontext%:*}-$line[1]:
+            case $line[1] in
+                (finish)
+                    _arguments -C \
+                        ':branch-name:__git_feature_branch_names'
+                    ;;
+            esac
+    esac
+}
+
+
+_git-refactor() {
+    local curcontext=$curcontext state line ret=1
+    declare -A opt_args
+
+    _arguments -C \
+        ': :->command' \
+        '*:: :->option-or-argument' && ret=0
+
+    case $state in
+        (command)
+            declare -a commands
+            commands=(
+                'finish:merge refactor into the current branch'
+            )
+            _describe -t commands command commands && ret=0
+            ;;
+        (option-or-argument)
+            curcontext=${curcontext%:*}-$line[1]:
+            case $line[1] in
+                (finish)
+                    _arguments -C \
+                        ':branch-name:__git_refactor_branch_names'
+                    ;;
+            esac
+    esac
+}
+
+
+_git-bug() {
+    local curcontext=$curcontext state line ret=1
+    declare -A opt_args
+
+    _arguments -C \
+        ': :->command' \
+        '*:: :->option-or-argument' && ret=0
+
+    case $state in
+        (command)
+            declare -a commands
+            commands=(
+                'finish:merge bug into the current branch'
+            )
+            _describe -t commands command commands && ret=0
+            ;;
+        (option-or-argument)
+            curcontext=${curcontext%:*}-$line[1]:
+            case $line[1] in
+                (finish)
+                    _arguments -C \
+                        ':branch-name:__git_bug_branch_names'
+                    ;;
+            esac
+    esac
+}
+
+
+zstyle ':completion:*:*:git:*' user-commands \
+    changelog:'populate changelog file with commits since the previous tag' \
+    contrib:'display author contributions' \
+    count:'count commits' \
+    delete-branch:'delete local and remote branch' \
+    delete-submodule:'delete submodule' \
+    delete-tag:'delete local and remote tag' \
+    extras:'git-extras' \
+    graft:'merge commits from source branch to destination branch' \
+    squash:'merge commits from source branch into the current one as a single commit' \
+    feature:'create a feature branch' \
+    refactor:'create a refactor branch' \
+    bug:'create a bug branch' \
+    summary:'repository summary' \
+    effort:'display effort statistics' \
+    repl:'read-eval-print-loop' \
+    commits-since:'list commits since a given date' \
+    release:'release commit with the given tag' \
+    alias:'define, search and show aliases' \
+    ignore:'add patterns to .gitignore' \
+    info:'show info about the repository' \
+    create-branch:'create local and remote branch' \
+    fresh-branch:'create empty local branch' \
+    undo:'remove the latest commit' \
+    setup:'setup a git repository' \
+    touch:'one step creation of new files' \
+    obliterate:'Completely remove a file from the repository, including past commits and tags' \
+    local-commits:'list unpushed commits on the local branch' \
diff --git a/.zsh/plugins/history-substring-search.zsh b/.zsh/plugins/history-substring-search.zsh
new file mode 100644 (file)
index 0000000..53f707c
--- /dev/null
@@ -0,0 +1,642 @@
+#!/usr/bin/env zsh
+#
+# This is a clean-room implementation of the Fish[1] shell's history search
+# feature, where you can type in any part of any previously entered command
+# and press the UP and DOWN arrow keys to cycle through the matching commands.
+#
+#-----------------------------------------------------------------------------
+# Usage
+#-----------------------------------------------------------------------------
+#
+# 1. Load this script into your interactive ZSH session:
+#
+#       % source history-substring-search.zsh
+#
+#    If you want to use the zsh-syntax-highlighting[6] script along with this
+#    script, then make sure that you load it *before* you load this script:
+#
+#       % source zsh-syntax-highlighting.zsh
+#       % source history-substring-search.zsh
+#
+# 2. Type any part of any previous command and then:
+#
+#     * Press the UP arrow key to select the nearest command that (1) contains
+#       your query and (2) is older than the current command in the command
+#       history.
+#
+#     * Press the DOWN arrow key to select the nearest command that (1)
+#       contains your query and (2) is newer than the current command in the
+#       command history.
+#
+#     * Press ^U (the Control and U keys simultaneously) to abort the search.
+#
+# 3. If a matching command spans more than one line of text, press the LEFT
+#    arrow key to move the cursor away from the end of the command, and then:
+#
+#     * Press the UP arrow key to move the cursor to the line above.  When the
+#       cursor reaches the first line of the command, pressing the UP arrow
+#       key again will cause this script to perform another search.
+#
+#     * Press the DOWN arrow key to move the cursor to the line below.  When
+#       the cursor reaches the last line of the command, pressing the DOWN
+#       arrow key again will cause this script to perform another search.
+#
+#-----------------------------------------------------------------------------
+# Configuration
+#-----------------------------------------------------------------------------
+#
+# This script defines the following global variables. You may override their
+# default values only after having loaded this script into your ZSH session.
+#
+# * HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND is a global variable that defines
+#   how the query should be highlighted inside a matching command. Its default
+#   value causes this script to highlight using bold, white text on a magenta
+#   background. See the "Character Highlighting" section in the zshzle(1) man
+#   page to learn about the kinds of values you may assign to this variable.
+#
+# * HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND is a global variable that
+#   defines how the query should be highlighted when no commands in the
+#   history match it. Its default value causes this script to highlight using
+#   bold, white text on a red background. See the "Character Highlighting"
+#   section in the zshzle(1) man page to learn about the kinds of values you
+#   may assign to this variable.
+#
+# * HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS is a global variable that defines
+#   how the command history will be searched for your query. Its default value
+#   causes this script to perform a case-insensitive search. See the "Globbing
+#   Flags" section in the zshexpn(1) man page to learn about the kinds of
+#   values you may assign to this variable.
+#
+#-----------------------------------------------------------------------------
+# History
+#-----------------------------------------------------------------------------
+#
+# This script was originally written by Peter Stephenson[2], who published it
+# to the ZSH users mailing list (thereby making it public domain) in September
+# 2009. It was later revised by Guido van Steen and released under the BSD
+# license (see below) as part of the fizsh[3] project in January 2011.
+#
+# It was later extracted from fizsh[3] release 1.0.1, refactored heavily, and
+# repackaged as both an oh-my-zsh plugin[4] and as an independently loadable
+# ZSH script[5] by Suraj N. Kurapati in 2011.
+#
+# It was further developed[4] by Guido van Steen, Suraj N. Kurapati, Sorin
+# Ionescu, and Vincent Guerci in 2011.
+#
+# [1]: http://fishshell.com
+# [2]: http://www.zsh.org/mla/users/2009/msg00818.html
+# [3]: http://sourceforge.net/projects/fizsh/
+# [4]: https://github.com/robbyrussell/oh-my-zsh/pull/215
+# [5]: https://github.com/sunaku/zsh-history-substring-search
+# [6]: https://github.com/nicoulaj/zsh-syntax-highlighting
+#
+##############################################################################
+#
+# Copyright (c) 2009 Peter Stephenson
+# Copyright (c) 2011 Guido van Steen
+# Copyright (c) 2011 Suraj N. Kurapati
+# Copyright (c) 2011 Sorin Ionescu
+# Copyright (c) 2011 Vincent Guerci
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+#  * Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#
+#  * Redistributions in binary form must reproduce the above
+#    copyright notice, this list of conditions and the following
+#    disclaimer in the documentation and/or other materials provided
+#    with the distribution.
+#
+#  * Neither the name of the FIZSH nor the names of its contributors
+#    may be used to endorse or promote products derived from this
+#    software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+##############################################################################
+
+#-----------------------------------------------------------------------------
+# configuration variables
+#-----------------------------------------------------------------------------
+
+HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=magenta,fg=white,bold'
+HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold'
+HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'
+
+#-----------------------------------------------------------------------------
+# the main ZLE widgets
+#-----------------------------------------------------------------------------
+
+function history-substring-search-up() {
+  _history-substring-search-begin
+
+  _history-substring-search-up-history ||
+  _history-substring-search-up-buffer ||
+  _history-substring-search-up-search
+
+  _history-substring-search-end
+}
+
+function history-substring-search-down() {
+  _history-substring-search-begin
+
+  _history-substring-search-down-history ||
+  _history-substring-search-down-buffer ||
+  _history-substring-search-down-search
+
+  _history-substring-search-end
+}
+
+zle -N history-substring-search-up
+zle -N history-substring-search-down
+
+bindkey '\e[A' history-substring-search-up
+bindkey '\e[B' history-substring-search-down
+
+#-----------------------------------------------------------------------------
+# implementation details
+#-----------------------------------------------------------------------------
+
+setopt extendedglob
+zmodload -F zsh/parameter
+
+#
+# We have to "override" some keys and widgets if the
+# zsh-syntax-highlighting plugin has not been loaded:
+#
+# https://github.com/nicoulaj/zsh-syntax-highlighting
+#
+if [[ $+functions[_zsh_highlight] -eq 0 ]]; then
+  #
+  # Dummy implementation of _zsh_highlight()
+  # that simply removes existing highlights
+  #
+  function _zsh_highlight() {
+    region_highlight=()
+  }
+
+  #
+  # Remove existing highlights when the user
+  # inserts printable characters into $BUFFER
+  #
+  function ordinary-key-press() {
+    if [[ $KEYS == [[:print:]] ]]; then
+      region_highlight=()
+    fi
+    zle .self-insert
+  }
+  zle -N self-insert ordinary-key-press
+
+  #
+  # Override ZLE widgets to invoke _zsh_highlight()
+  #
+  # https://github.com/nicoulaj/zsh-syntax-highlighting/blob/
+  # bb7fcb79fad797a40077bebaf6f4e4a93c9d8163/zsh-syntax-highlighting.zsh#L121
+  #
+  #--------------8<-------------------8<-------------------8<-----------------
+  #
+  # Copyright (c) 2010-2011 zsh-syntax-highlighting contributors
+  # All rights reserved.
+  #
+  # Redistribution and use in source and binary forms, with or without
+  # modification, are permitted provided that the following conditions are
+  # met:
+  #
+  #  * Redistributions of source code must retain the above copyright
+  #    notice, this list of conditions and the following disclaimer.
+  #
+  #  * Redistributions in binary form must reproduce the above copyright
+  #    notice, this list of conditions and the following disclaimer in the
+  #    documentation and/or other materials provided with the distribution.
+  #
+  #  * Neither the name of the zsh-syntax-highlighting contributors nor the
+  #    names of its contributors may be used to endorse or promote products
+  #    derived from this software without specific prior written permission.
+  #
+  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+  # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+  # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+  # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+  # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+  # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+  # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+  # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+  # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+  # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+  # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+  # Load ZSH module zsh/zleparameter, needed to override user defined widgets.
+  zmodload zsh/zleparameter 2>/dev/null || {
+    echo 'zsh-syntax-highlighting: failed loading zsh/zleparameter, exiting.' >&2
+    return -1
+  }
+
+  # Override ZLE widgets to make them invoke _zsh_highlight.
+  for event in ${${(f)"$(zle -la)"}:#(_*|orig-*|.run-help|.which-command)}; do
+    if [[ "$widgets[$event]" == completion:* ]]; then
+      eval "zle -C orig-$event ${${${widgets[$event]}#*:}/:/ } ; $event() { builtin zle orig-$event && _zsh_highlight } ; zle -N $event"
+    else
+      case $event in
+        accept-and-menu-complete)
+          eval "$event() { builtin zle .$event && _zsh_highlight } ; zle -N $event"
+          ;;
+
+        # The following widgets should NOT remove any previously
+        # applied highlighting. Therefore we do not remap them.
+        .forward-char|.backward-char|.up-line-or-history|.down-line-or-history)
+          ;;
+
+        .*)
+          clean_event=$event[2,${#event}] # Remove the leading dot in the event name
+          case ${widgets[$clean_event]-} in
+            (completion|user):*)
+              ;;
+            *)
+              eval "$clean_event() { builtin zle $event && _zsh_highlight } ; zle -N $clean_event"
+              ;;
+          esac
+          ;;
+        *)
+          ;;
+      esac
+    fi
+  done
+  unset event clean_event
+  #-------------->8------------------->8------------------->8-----------------
+fi
+
+function _history-substring-search-begin() {
+  _history_substring_search_move_cursor_eol=false
+  _history_substring_search_query_highlight=
+
+  #
+  # Continue using the previous $_history_substring_search_result by default,
+  # unless the current query was cleared or a new/different query was entered.
+  #
+  if [[ -z $BUFFER || $BUFFER != $_history_substring_search_result ]]; then
+    #
+    # For the purpose of highlighting we will also keep
+    # a version without doubly-escaped meta characters.
+    #
+    _history_substring_search_query=$BUFFER
+
+    #
+    # $BUFFER contains the text that is in the command-line currently.
+    # we put an extra "\\" before meta characters such as "\(" and "\)",
+    # so that they become "\\\(" and "\\\)".
+    #
+    _history_substring_search_query_escaped=${BUFFER//(#m)[\][()|\\*?#<>~^]/\\$MATCH}
+
+    #
+    # Find all occurrences of the search query in the history file.
+    #
+    # (k) turns it an array of line numbers.
+    #
+    # (on) seems to remove duplicates, which are default
+    #      options. They can be turned off by (ON).
+    #
+    _history_substring_search_matches=(${(kon)history[(R)(#$HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS)*${_history_substring_search_query_escaped}*]})
+
+    #
+    # Define the range of values that $_history_substring_search_match_index
+    # can take: [0, $_history_substring_search_matches_count_plus].
+    #
+    _history_substring_search_matches_count=$#_history_substring_search_matches
+    _history_substring_search_matches_count_plus=$(( _history_substring_search_matches_count + 1 ))
+    _history_substring_search_matches_count_sans=$(( _history_substring_search_matches_count - 1 ))
+
+    #
+    # If $_history_substring_search_match_index is equal to
+    # $_history_substring_search_matches_count_plus, this indicates that we
+    # are beyond the beginning of $_history_substring_search_matches.
+    #
+    # If $_history_substring_search_match_index is equal to 0, this indicates
+    # that we are beyond the end of $_history_substring_search_matches.
+    #
+    # If we have initially pressed "up" we have to initialize
+    # $_history_substring_search_match_index to
+    # $_history_substring_search_matches_count_plus so that it will be
+    # decreased to $_history_substring_search_matches_count.
+    #
+    # If we have initially pressed "down" we have to initialize
+    # $_history_substring_search_match_index to
+    # $_history_substring_search_matches_count so that it will be increased to
+    # $_history_substring_search_matches_count_plus.
+    #
+    if [[ $WIDGET == history-substring-search-down ]]; then
+       _history_substring_search_match_index=$_history_substring_search_matches_count
+    else
+      _history_substring_search_match_index=$_history_substring_search_matches_count_plus
+    fi
+  fi
+}
+
+function _history-substring-search-end() {
+  _history_substring_search_result=$BUFFER
+
+  # move the cursor to the end of the command line
+  if [[ $_history_substring_search_move_cursor_eol == true ]]; then
+    CURSOR=${#BUFFER}
+  fi
+
+  # highlight command line using zsh-syntax-highlighting
+  _zsh_highlight
+
+  # highlight the search query inside the command line
+  if [[ -n $_history_substring_search_query_highlight && -n $_history_substring_search_query ]]; then
+    #
+    # The following expression yields a variable $MBEGIN, which
+    # indicates the begin position + 1 of the first occurrence
+    # of _history_substring_search_query_escaped in $BUFFER.
+    #
+    : ${(S)BUFFER##(#m$HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS)($_history_substring_search_query##)}
+    local begin=$(( MBEGIN - 1 ))
+    local end=$(( begin + $#_history_substring_search_query ))
+    region_highlight+=("$begin $end $_history_substring_search_query_highlight")
+  fi
+
+  # For debugging purposes:
+  # zle -R "mn: "$_history_substring_search_match_index" m#: "${#_history_substring_search_matches}
+  # read -k -t 200 && zle -U $REPLY
+
+  # Exit successfully from the history-substring-search-* widgets.
+  true
+}
+
+function _history-substring-search-up-buffer() {
+  #
+  # Check if the UP arrow was pressed to move the cursor within a multi-line
+  # buffer. This amounts to three tests:
+  #
+  # 1. $#buflines -gt 1.
+  #
+  # 2. $CURSOR -ne $#BUFFER.
+  #
+  # 3. Check if we are on the first line of the current multi-line buffer.
+  #    If so, pressing UP would amount to leaving the multi-line buffer.
+  #
+  #    We check this by adding an extra "x" to $LBUFFER, which makes
+  #    sure that xlbuflines is always equal to the number of lines
+  #    until $CURSOR (including the line with the cursor on it).
+  #
+  local buflines XLBUFFER xlbuflines
+  buflines=(${(f)BUFFER})
+  XLBUFFER=$LBUFFER"x"
+  xlbuflines=(${(f)XLBUFFER})
+
+  if [[ $#buflines -gt 1 && $CURSOR -ne $#BUFFER && $#xlbuflines -ne 1 ]]; then
+    zle up-line-or-history
+    return true
+  fi
+
+  false
+}
+
+function _history-substring-search-down-buffer() {
+  #
+  # Check if the DOWN arrow was pressed to move the cursor within a multi-line
+  # buffer. This amounts to three tests:
+  #
+  # 1. $#buflines -gt 1.
+  #
+  # 2. $CURSOR -ne $#BUFFER.
+  #
+  # 3. Check if we are on the last line of the current multi-line buffer.
+  #    If so, pressing DOWN would amount to leaving the multi-line buffer.
+  #
+  #    We check this by adding an extra "x" to $RBUFFER, which makes
+  #    sure that xrbuflines is always equal to the number of lines
+  #    from $CURSOR (including the line with the cursor on it).
+  #
+  local buflines XRBUFFER xrbuflines
+  buflines=(${(f)BUFFER})
+  XRBUFFER="x"$RBUFFER
+  xrbuflines=(${(f)XRBUFFER})
+
+  if [[ $#buflines -gt 1 && $CURSOR -ne $#BUFFER && $#xrbuflines -ne 1 ]]; then
+    zle down-line-or-history
+    return true
+  fi
+
+  false
+}
+
+function _history-substring-search-up-history() {
+  #
+  # Behave like up in ZSH, except clear the $BUFFER
+  # when beginning of history is reached like in Fish.
+  #
+  if [[ -z $_history_substring_search_query ]]; then
+
+    # we have reached the absolute top of history
+    if [[ $HISTNO -eq 1 ]]; then
+      BUFFER=
+
+    # going up from somewhere below the top of history
+    else
+      zle up-history
+    fi
+
+    return true
+  fi
+
+  false
+}
+
+function _history-substring-search-down-history() {
+  #
+  # Behave like down-history in ZSH, except clear the
+  # $BUFFER when end of history is reached like in Fish.
+  #
+  if [[ -z $_history_substring_search_query ]]; then
+
+    # going down from the absolute top of history
+    if [[ $HISTNO -eq 1 && -z $BUFFER ]]; then
+      BUFFER=${history[1]}
+      _history_substring_search_move_cursor_eol=true
+
+    # going down from somewhere above the bottom of history
+    else
+      zle down-history
+    fi
+
+    return true
+  fi
+
+  false
+}
+
+function _history-substring-search-up-search() {
+  _history_substring_search_move_cursor_eol=true
+
+  #
+  # Highlight matches during history-substring-up-search:
+  #
+  # The following constants have been initialized in
+  # _history-substring-search-up/down-search():
+  #
+  # $_history_substring_search_matches is the current list of matches
+  # $_history_substring_search_matches_count is the current number of matches
+  # $_history_substring_search_matches_count_plus is the current number of matches + 1
+  # $_history_substring_search_matches_count_sans is the current number of matches - 1
+  # $_history_substring_search_match_index is the index of the current match
+  #
+  # The range of values that $_history_substring_search_match_index can take
+  # is: [0, $_history_substring_search_matches_count_plus].  A value of 0
+  # indicates that we are beyond the end of
+  # $_history_substring_search_matches. A value of
+  # $_history_substring_search_matches_count_plus indicates that we are beyond
+  # the beginning of $_history_substring_search_matches.
+  #
+  # In _history-substring-search-up-search() the initial value of
+  # $_history_substring_search_match_index is
+  # $_history_substring_search_matches_count_plus.  This value is set in
+  # _history-substring-search-begin().  _history-substring-search-up-search()
+  # will initially decrease it to $_history_substring_search_matches_count.
+  #
+  if [[ $_history_substring_search_match_index -ge 2 ]]; then
+    #
+    # Highlight the next match:
+    #
+    # 1. Decrease the value of $_history_substring_search_match_index.
+    #
+    # 2. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND
+    #    to highlight the current buffer.
+    #
+    (( _history_substring_search_match_index-- ))
+    BUFFER=$history[$_history_substring_search_matches[$_history_substring_search_match_index]]
+    _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND
+
+  elif [[ $_history_substring_search_match_index -eq 1 ]]; then
+    #
+    # We will move beyond the end of $_history_substring_search_matches:
+    #
+    # 1. Decrease the value of $_history_substring_search_match_index.
+    #
+    # 2. Save the current buffer in $_history_substring_search_old_buffer,
+    #    so that it can be retrieved by
+    #    _history-substring-search-down-search() later.
+    #
+    # 3. Make $BUFFER equal to $_history_substring_search_query.
+    #
+    # 4. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND
+    #    to highlight the current buffer.
+    #
+    (( _history_substring_search_match_index-- ))
+    _history_substring_search_old_buffer=$BUFFER
+    BUFFER=$_history_substring_search_query
+    _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND
+
+  elif [[ $_history_substring_search_match_index -eq $_history_substring_search_matches_count_plus ]]; then
+    #
+    # We were beyond the beginning of $_history_substring_search_matches but
+    # UP makes us move back to $_history_substring_search_matches:
+    #
+    # 1. Decrease the value of $_history_substring_search_match_index.
+    #
+    # 2. Restore $BUFFER from $_history_substring_search_old_buffer.
+    #
+    # 3. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND
+    #    to highlight the current buffer.
+    #
+    (( _history_substring_search_match_index-- ))
+    BUFFER=$_history_substring_search_old_buffer
+    _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND
+  fi
+}
+
+function _history-substring-search-down-search() {
+  _history_substring_search_move_cursor_eol=true
+
+  #
+  # Highlight matches during history-substring-up-search:
+  #
+  # The following constants have been initialized in
+  # _history-substring-search-up/down-search():
+  #
+  # $_history_substring_search_matches is the current list of matches
+  # $_history_substring_search_matches_count is the current number of matches
+  # $_history_substring_search_matches_count_plus is the current number of matches + 1
+  # $_history_substring_search_matches_count_sans is the current number of matches - 1
+  # $_history_substring_search_match_index is the index of the current match
+  #
+  # The range of values that $_history_substring_search_match_index can take
+  # is: [0, $_history_substring_search_matches_count_plus].  A value of 0
+  # indicates that we are beyond the end of
+  # $_history_substring_search_matches. A value of
+  # $_history_substring_search_matches_count_plus indicates that we are beyond
+  # the beginning of $_history_substring_search_matches.
+  #
+  # In _history-substring-search-down-search() the initial value of
+  # $_history_substring_search_match_index is
+  # $_history_substring_search_matches_count.  This value is set in
+  # _history-substring-search-begin().
+  # _history-substring-search-down-search() will initially increase it to
+  # $_history_substring_search_matches_count_plus.
+  #
+  if [[ $_history_substring_search_match_index -le $_history_substring_search_matches_count_sans ]]; then
+    #
+    # Highlight the next match:
+    #
+    # 1. Increase $_history_substring_search_match_index by 1.
+    #
+    # 2. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND
+    #    to highlight the current buffer.
+    #
+    (( _history_substring_search_match_index++ ))
+    BUFFER=$history[$_history_substring_search_matches[$_history_substring_search_match_index]]
+    _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND
+
+  elif [[ $_history_substring_search_match_index -eq $_history_substring_search_matches_count ]]; then
+    #
+    # We will move beyond the beginning of $_history_substring_search_matches:
+    #
+    # 1. Increase $_history_substring_search_match_index by 1.
+    #
+    # 2. Save the current buffer in $_history_substring_search_old_buffer, so
+    #    that it can be retrieved by _history-substring-search-up-search()
+    #    later.
+    #
+    # 3. Make $BUFFER equal to $_history_substring_search_query.
+    #
+    # 4. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND
+    #    to highlight the current buffer.
+    #
+    (( _history_substring_search_match_index++ ))
+    _history_substring_search_old_buffer=$BUFFER
+    BUFFER=$_history_substring_search_query
+    _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND
+
+  elif [[ $_history_substring_search_match_index -eq 0 ]]; then
+    #
+    # We were beyond the end of $_history_substring_search_matches but DOWN
+    # makes us move back to the $_history_substring_search_matches:
+    #
+    # 1. Increase $_history_substring_search_match_index by 1.
+    #
+    # 2. Restore $BUFFER from $_history_substring_search_old_buffer.
+    #
+    # 3. Use $HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND
+    #    to highlight the current buffer.
+    #
+    (( _history_substring_search_match_index++ ))
+    BUFFER=$_history_substring_search_old_buffer
+    _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND
+  fi
+}
+
+# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
+# vim: ft=zsh sw=2 ts=2 et
diff --git a/.zsh/plugins/per-directory-history.plugin.zsh b/.zsh/plugins/per-directory-history.plugin.zsh
new file mode 100755 (executable)
index 0000000..79a3cd4
--- /dev/null
@@ -0,0 +1,149 @@
+#!/usr/bin/env zsh
+#
+# This is a implementation of per directory history for zsh, some 
+# implementations of which exist in bash[1,2].  It also implements 
+# a per-directory-history-toggle-history function to change from using the 
+# directory history to using the global history.  In both cases the history is 
+# always saved to both the global history and the directory history, so the 
+# toggle state will not effect the saved histories.  Being able to switch 
+# between global and directory histories on the fly is a novel feature as far 
+# as I am aware.
+#
+#-------------------------------------------------------------------------------
+# Configuration
+#-------------------------------------------------------------------------------
+#
+# HISTORY_BASE a global variable that defines the base directory in which the 
+# directory histories are stored
+#
+#-------------------------------------------------------------------------------
+# History
+#-------------------------------------------------------------------------------
+#
+# The idea/inspiration for a per directory history is from Stewart MacArthur[1] 
+# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh 
+# mailing list[3].  The implementation is by Jim Hester in September 2012.
+#
+# [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html
+# [2]: http://dieter.plaetinck.be/per_directory_bash
+# [3]: http://www.zsh.org/mla/users/1997/msg00226.html
+#
+################################################################################
+#
+# Copyright (c) 2012 Jim Hester
+#
+# This software is provided 'as-is', without any express or implied warranty.  
+# In no event will the authors be held liable for any damages arising from the 
+# use of this software.
+#
+# Permission is granted to anyone to use this software for any purpose, 
+# including commercial applications, and to alter it and redistribute it 
+# freely, subject to the following restrictions:
+#
+# 1. The origin of this software must not be misrepresented; you must not claim 
+# that you wrote the original software. If you use this software in a product, 
+# an acknowledgment in the product documentation would be appreciated but is 
+# not required.
+#
+# 2. Altered source versions must be plainly marked as such, and must not be 
+# misrepresented as being the original software.
+#
+# 3. This notice may not be removed or altered from any source distribution..
+#
+################################################################################
+
+#-------------------------------------------------------------------------------
+# configuration, the base under which the directory histories are stored
+#-------------------------------------------------------------------------------
+
+[[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history"
+
+#-------------------------------------------------------------------------------
+# toggle global/directory history used for searching - ctrl-G by default
+#-------------------------------------------------------------------------------
+
+function per-directory-history-toggle-history() {
+  if [[ $_per_directory_history_is_global == true ]]; then
+    _per-directory-history-set-directory-history
+    print "\nusing local history\n"
+  else
+    _per-directory-history-set-global-history
+    print "\nusing global history\n"
+  fi
+  zle .push-line
+  zle .accept-line
+}
+
+autoload per-directory-history-toggle-history
+zle -N per-directory-history-toggle-history
+bindkey '^G' per-directory-history-toggle-history
+
+#-------------------------------------------------------------------------------
+# implementation details
+#-------------------------------------------------------------------------------
+
+_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
+
+function _per-directory-history-change-directory() {
+  _per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
+  mkdir -p ${_per_directory_history_directory:h}
+  if [[ $_per_directory_history_is_global == false ]]; then
+    #save to the global history
+    fc -AI $HISTFILE
+    #save history to previous file
+    local prev="$HISTORY_BASE${OLDPWD:A}/history"
+    mkdir -p ${prev:h}
+    fc -AI $prev
+
+    #discard previous directory's history
+    local original_histsize=$HISTSIZE
+    HISTSIZE=0
+    HISTSIZE=$original_histsize
+    
+    #read history in new file
+    if [[ -e $_per_directory_history_directory ]]; then
+      fc -R $_per_directory_history_directory
+    fi
+  fi
+}
+
+function _per-directory-history-addhistory() {
+  print -sr -- ${1%%$'\n'}
+  fc -p $_per_directory_history_directory
+}
+
+
+function _per-directory-history-set-directory-history() {
+  if [[ $_per_directory_history_is_global == true ]]; then
+    fc -AI $HISTFILE
+    local original_histsize=$HISTSIZE
+    HISTSIZE=0
+    HISTSIZE=$original_histsize
+    if [[ -e "$_per_directory_history_directory" ]]; then
+      fc -R "$_per_directory_history_directory"
+    fi
+  fi
+  _per_directory_history_is_global=false
+}
+function _per-directory-history-set-global-history() {
+  if [[ $_per_directory_history_is_global == false ]]; then
+    fc -AI $_per_directory_history_directory
+    local original_histsize=$HISTSIZE
+    HISTSIZE=0
+    HISTSIZE=$original_histsize
+    if [[ -e "$HISTFILE" ]]; then
+      fc -R "$HISTFILE"
+    fi
+  fi
+  _per_directory_history_is_global=true
+}
+
+
+#add functions to the exec list for chpwd and zshaddhistory
+chpwd_functions=(${chpwd_functions[@]} "_per-directory-history-change-directory")
+zshaddhistory_functions=(${zshaddhistory_functions[@]} "_per-directory-history-addhistory")
+
+#start in directory mode
+mkdir -p ${_per_directory_history_directory:h}
+_per_directory_history_is_global=false
+_per-directory-history-set-global-history
diff --git a/.zsh/run/editor-gkar-1000 b/.zsh/run/editor-gkar-1000
new file mode 100755 (executable)
index 0000000..51dda52
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec emacs-snapshot -Q -D -nw "$@"
diff --git a/.zsh/zsh-install.sh b/.zsh/zsh-install.sh
new file mode 100755 (executable)
index 0000000..ac15f48
--- /dev/null
@@ -0,0 +1,570 @@
+#!/bin/sh
+# This script was generated using Makeself 2.1.5
+
+CRCsum="892806987"
+MD5="7693a1a6a3059d119117a97087f0941d"
+TMPROOT=${TMPDIR:=/tmp}
+
+label="joerg ZSH config files"
+script="zsh"
+scriptargs="./install.zsh MAGIC"
+targetdir="tmp.8fF7ppTk5s"
+filesizes="43691"
+keep=n
+
+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
+
+unset CDPATH
+
+MS_Printf()
+{
+    $print_cmd $print_cmd_arg "$1"
+}
+
+MS_Progress()
+{
+    while read a; do
+       MS_Printf .
+    done
+}
+
+MS_diskspace()
+{
+       (
+       if test -d /usr/xpg4/bin; then
+               PATH=/usr/xpg4/bin:$PATH
+       fi
+       df -kP "$1" | tail -1 | awk '{print $4}'
+       )
+}
+
+MS_dd()
+{
+    blocks=`expr $3 / 1024`
+    bytes=`expr $3 % 1024`
+    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
+}
+
+MS_Help()
+{
+    cat << EOH >&2
+Makeself version 2.1.5
+ 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
+  --noexec              Do not run embedded script
+  --keep                Do not erase target directory after running
+                       the embedded script
+  --nox11               Do not spawn an xterm
+  --nochown             Do not give the extracted files to the current user
+  --target NewDirectory Extract in NewDirectory
+  --tar arg1 [arg2 ...] Access the contents of the archive through the tar command
+  --                    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 || type md5sum`
+    test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which md5 || type md5`
+       test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which digest || type digest`
+    PATH="$OLD_PATH"
+
+    MS_Printf "Verifying archive integrity..."
+    offset=`head -n 404 "$1" | wc -c | tr -d " "`
+    verb=$2
+    i=1
+    for s in $filesizes
+    do
+               crc=`echo $CRCsum | cut -d" " -f$i`
+               if test -x "$MD5_PATH"; then
+                       if test `basename $MD5_PATH` = digest; then
+                               MD5_ARG="-a md5"
+                       fi
+                       md5=`echo $MD5 | cut -d" " -f$i`
+                       if test $md5 = "00000000000000000000000000000000"; then
+                               test x$verb = xy && echo " $1 does not contain an embedded MD5 checksum." >&2
+                       else
+                               md5sum=`MS_dd "$1" $offset $s | eval "$MD5_PATH $MD5_ARG" | cut -b-32`;
+                               if test "$md5sum" != "$md5"; then
+                                       echo "Error in MD5 checksums: $md5sum is different from $md5" >&2
+                                       exit 2
+                               else
+                                       test x$verb = xy && MS_Printf " MD5 checksums are OK." >&2
+                               fi
+                               crc="0000000000"; verb=n
+                       fi
+               fi
+               if test $crc = "0000000000"; then
+                       test x$verb = xy && echo " $1 does not contain a CRC checksum." >&2
+               else
+                       sum1=`MS_dd "$1" $offset $s | CMD_ENV=xpg4 cksum | awk '{print $1}'`
+                       if test "$sum1" = "$crc"; then
+                               test x$verb = xy && MS_Printf " CRC checksums are OK." >&2
+                       else
+                               echo "Error in checksums: $sum1 is different from $crc"
+                               exit 2;
+                       fi
+               fi
+               i=`expr $i + 1`
+               offset=`expr $offset + $s`
+    done
+    echo " All good."
+}
+
+UnTAR()
+{
+    tar $1vf - 2>&1 || { echo Extraction failed. > /dev/tty; kill -15 $$; }
+}
+
+finish=true
+xterm_loop=
+nox11=n
+copy=none
+ownership=y
+verbose=n
+
+initargs="$@"
+
+while true
+do
+    case "$1" in
+    -h | --help)
+       MS_Help
+       exit 0
+       ;;
+    --info)
+       echo Identification: "$label"
+       echo Target directory: "$targetdir"
+       echo Uncompressed size: 496 KB
+       echo Compression: gzip
+       echo Date of packaging: Sun Feb 24 23:39:23 CET 2013
+       echo Built with Makeself version 2.1.5 on 
+       echo Build command was: "/usr/bin/makeself \\
+    \"--gzip\" \\
+    \"/home/joerg/tmp/tmp.8fF7ppTk5s\" \\
+    \"/home/joerg/.zsh/zsh-install.sh\" \\
+    \"joerg ZSH config files\" \\
+    \"zsh\" \\
+    \"./install.zsh\" \\
+    \"MAGIC\""
+       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 "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 archdirname=\"tmp.8fF7ppTk5s\"
+       echo KEEP=n
+       echo COMPRESS=gzip
+       echo filesizes=\"$filesizes\"
+       echo CRCsum=\"$CRCsum\"
+       echo MD5sum=\"$MD5\"
+       echo OLDUSIZE=496
+       echo OLDSKIP=405
+       exit 0
+       ;;
+    --lsm)
+cat << EOLSM
+No LSM.
+EOLSM
+       exit 0
+       ;;
+    --list)
+       echo Target directory: $targetdir
+       offset=`head -n 404 "$0" | wc -c | tr -d " "`
+       for s in $filesizes
+       do
+           MS_dd "$0" $offset $s | eval "gzip -cd" | UnTAR t
+           offset=`expr $offset + $s`
+       done
+       exit 0
+       ;;
+       --tar)
+       offset=`head -n 404 "$0" | wc -c | tr -d " "`
+       arg1="$2"
+       shift 2
+       for s in $filesizes
+       do
+           MS_dd "$0" $offset $s | eval "gzip -cd" | tar "$arg1" - $*
+           offset=`expr $offset + $s`
+       done
+       exit 0
+       ;;
+    --check)
+       MS_Check "$0" y
+       exit 0
+       ;;
+    --confirm)
+       verbose=y
+       shift
+       ;;
+       --noexec)
+       script=""
+       shift
+       ;;
+    --keep)
+       keep=y
+       shift
+       ;;
+    --target)
+       keep=y
+       targetdir=${2:-.}
+       shift 2
+       ;;
+    --nox11)
+       nox11=y
+       shift
+       ;;
+    --nochown)
+       ownership=n
+       shift
+       ;;
+    --xwin)
+       finish="echo Press Return to close this window...; read junk"
+       xterm_loop=1
+       shift
+       ;;
+    --phase2)
+       copy=phase2
+       shift
+       ;;
+    --)
+       shift
+       break ;;
+    -*)
+       echo Unrecognized flag : "$1" >&2
+       MS_Help
+       exit 1
+       ;;
+    *)
+       break ;;
+    esac
+done
+
+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 "$nox11" = "n"; 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 rxvt dtterm eterm Eterm kvt konsole aterm"
+                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 -title "$label" -e "$0" --xwin "$initargs"
+                else
+                    exec $XTERM -title "$label" -e "./$0" --xwin "$initargs"
+                fi
+            fi
+        fi
+    fi
+fi
+
+if test "$targetdir" = "."; then
+    tmpdir="."
+else
+    if test "$keep" = y; then
+       echo "Creating directory $targetdir" >&2
+       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 OtherDirectory' >&2
+       eval $finish
+       exit 1
+    }
+fi
+
+location="`pwd`"
+if test x$SETUP_NOCHECK != x1; then
+    MS_Check "$0"
+fi
+offset=`head -n 404 "$0" | wc -c | tr -d " "`
+
+if test x"$verbose" = xy; then
+       MS_Printf "About to extract 496 KB in $tmpdir ... Proceed ? [Y/n] "
+       read yn
+       if test x"$yn" = xn; then
+               eval $finish; exit 1
+       fi
+fi
+
+MS_Printf "Uncompressing $label"
+res=3
+if test "$keep" = n; then
+    trap 'echo Signal caught, cleaning up >&2; cd $TMPROOT; /bin/rm -rf $tmpdir; eval $finish; exit 15' 1 2 3 15
+fi
+
+leftspace=`MS_diskspace $tmpdir`
+if test $leftspace -lt 496; then
+    echo
+    echo "Not enough space left in "`dirname $tmpdir`" ($leftspace KB) to decompress $0 (496 KB)" >&2
+    if test "$keep" = n; then
+        echo "Consider setting TMPDIR to a directory with more free space."
+   fi
+    eval $finish; exit 1
+fi
+
+for s in $filesizes
+do
+    if MS_dd "$0" $offset $s | eval "gzip -cd" | ( cd "$tmpdir"; UnTAR x ) | MS_Progress; then
+               if test x"$ownership" = xy; then
+                       (PATH=/usr/xpg4/bin:$PATH; cd "$tmpdir"; chown -R `id -u` .;  chgrp -R `id -g` .)
+               fi
+    else
+               echo
+               echo "Unable to decompress $0" >&2
+               eval $finish; exit 1
+    fi
+    offset=`expr $offset + $s`
+done
+echo
+
+cd "$tmpdir"
+res=0
+if test x"$script" != x; then
+    if test x"$verbose" = xy; 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
+if test "$keep" = n; then
+    cd $TMPROOT
+    /bin/rm -rf $tmpdir
+fi
+eval $finish; exit $res
+\1f\8b\b\0\9b\96*Q\ 2\ 3ì=icÛ¶\92ù\1aþ
+TVJ)/$uXv«<uëÚIì®\13gãd³\9bK\85HHâ\9a$X\82\94-;þï;\ 3ðÒá£m\1c½ôIm,\ 23\18\0\ 3Ì`\ 6\18P¦uïÎ?\røl7\1aøÝÜîÌ|g\9f{ÍV³Ùê4Û­vû^£    ðÆ=Ò¹÷\15>\89\88iDȽÿã,\1a]\83w\13ü\eý\98\969rcw\14ð\88Ýåøomn^=þ[íbü\e[0þ­ævó\1ei¬ÇÿÎ?\13\1aiæ¹ÍýЦö\98¥ÏNâ\87Ú¹\18\eb\1aÄôÌ\18»£±\aÿb7\18i÷Ö\9f¿\93üÿøcÿÉ\19³M\18î\15É\7f«µ(ÿíÖZþ¿Æg\83\18\ f\râs\87u\89\18?\86\84¦¹CbûN\9f\9d¹"\16dÈ£8     Øc\12\8fY Ý\ f#\16Fn\10\93ÊS\ 5¨\90ï¿'Ì\1esí~\8aJ>\93¡\1f\13C\10ã\94lo\96Ë\94\90åß¡\vÈ\829D\17Ö'\8b\10békýòuå?`q×ö\859\8c¨éxcÓaÖ\1dÈÿv§s;ûOÊ\7f{\13×ÿµý·¢ñßñ\*\98øRKÂÍö_snü;\9díÎZÿ¯JÿS\1c~\ 2n\ 1÷Ü\98õt!Æ\98ú\19þ­µóßNþ;\8dþë\88\8añÝ\19\80\7fs«³=oÿµ[[kù_\95ü¿~µs¼ß«¾Û;z½wðÊ2c\9c\1e\9aæó     ëǼ/\93¤V×.´ûO\8f\ e÷\9e¼êUe\11«úòí\9e&Í@Â<æ3°øÜ\80T\7f~L\1c0øî\83\9e\18\8cT3àÇ̨¼/­ARÙ\ 3\bú\989\8ai\9a\15\ 4û'\8e\e\11#$UU£U½H1ºãK\890!Æ° ¼\fÍ2\ 1qèj÷\1d\1e0íRÓ<°oû\ eVÉÀÚUxâº\8e©\ e8\19õrû=0v=
+ ÚÐ\r
+\fçg\ e\vã1i\92ïÀ\1c\1es\8f\ 5Ôg\19B=5\7f\9b5¹Û\85\1e3O0-ãÊ\v\1e\8f\91)C\9e\0ià¨\1c\ 1d\fô\ 6ú\ 1¹²\13ýaÄý/0<\19ï®\1c¦g,\96£4 öÉ5Cµ8D\v¤qHîG¾,a¨](cH]Ïà\81\11À?æ\87ñ´4î\ 4\99¢xS0g\8e1ݼI\95¹\ 1W\v\9bbVO\9f\99Ïz
+ÌxÙÓ\97p5CòD:kzúÒ9¤gUÙ\8e,×Óm\98\12Å dt\ 4/\81/\0`¥H\97@a\8cÃ\b\93M¡(\80v\aúß<÷ø\88'ñÝîÿ^kÿ\ 1lVÿ7·\e\9bký¿*ý\ fÒ\18²H ÷\1f\83@®M¾¿½ÿ?¢AÀ\86Ã;ðýÿ\9cÿßÚÞÞZûÿ+\19ÿ1\17\90\91µÂñßÜn¶Öã¿âñÿb»@7¬ÿ­ÍÆüþÿv£ÕX¯ÿ«ÝÿqÂAO?Üyñ¬·K\ ewû;\87\87ðà\84'#c\90¸\9e\13\82íOG\8c\18Ñ\90\9e°\88\83\19n\9c4Î~\81Qluv7um#5\81'b\10.\12\82ì9:O¯&¥(\85Î\92\ 6\85\ e\93dÀ} IÌ\rH
+ð#     O\12ÂCpê\fAU\16\ 2\8d\13RÐ.\88»b\91¼ç\ 6ÉY»u}5s4!\13þ\aF¡£g\80q=t=è\9f1\0i\8aGçÄ\9a\80pÉÓV+\94DYd!¬/~O\18;g}·ýÃ\96\89\98K:Qb\ 6\15\7f\90\1d\9dÔw¶6oÑP\97­\98±,¶Ç·æ*[\11We#oÍRoÅ,õX\10LoÍSoE<U­¼\81©kû\7fùúÿ$\98¸\11\ fäÞÎ_²\ 1nòÿ\9b\vþÿööf{½þ\7f\8d\8f¶Ì\0`g!\8fb2\8eã°\1fFülÚÓñ¹kY\1e\8f\\16tÛÍÖ\ f\96\9eá\ro@[{Ùߤüïr?Äíx\1eüE\17àÆó\9fíyÿ\ f¼ÅõùïÊìÿ\rr\10\10ê8.\8e=\8999\1dÓ\98\9c22¦\13FF\1e\87\ 5Ý\9bj}\9c*\ e\13¶èêjó`Ø«U/Ô\7fµa½R­ý³º\7fôü\89ef\88f\8aW¯\v7Þ\7føüñáå\83\a\1f\bþ}ôð²^¦\98ÎÈ\e)¦x· èzüFj\80s\vJ\81\18ÜH        pnA\89\ fcûFR\88t\e\98E7\13C¬[P\13¡{#-À¹\8a\92\86H¢WÓ\b\17ûGǯ/ås¥Ú\17b,+\12ï\7fþX)gÂìpi°\1c\ 6Öñ"`ifÖ¼lR.\85¥Óf)\f&ÁÒ|\18Ò¥ù8>Ë\ 1Èë¥\10à\\9eïq\9bz\bÑêÚ¹\88§`Ùê];×½Ý\87]ÙE\9dÈ/R\95_ÚWÐÿO\93ÀÆ\16üå\1d \eÏ\7f\16Îÿ·7\9bëøÏUé\7fÁ\93Èf$?ÿw\ 3`\91çá,X\9brÿNþß\97\8a
+¿9þoÞþÛj¯÷\7fWgÿ½'Æ\19±\12\11Y\ 37°"æ\93\8f\18\r\ fÚZ\ 1üûÈÿ>\15ã/\12\ 4|ãý\8fæ\82ü#úZþW$ÿYäÑ\9e´Ç{\96Ã&Ìã¡¥Ò9ø¥:¹\11\ 5B\96£i¶\13ÒxÜ«\11\93Ì\15W\8aÅá¶z\10c\1a1R_ë\95\95Éÿf£ÿÅ$ýOîÿ6:óñ\1f\9b\9b\7f\9fK¸ÇG=y¶\ 2\ fy&\88\10]\94äµð~Ëòßîô¿ð}\9f?(ÿÛ\9dÅû\9f[­íµü¯nÿ×aC\9ax1\11§nlÃÒ\90Ç=÷t\9bû>\r@7\bbì<%\86as\8fG=<Ã-£\aîh\16\8dÉÃ\9aytø¾ù¨ÙøX×       Tâ\8aУS\8c-'P\0ì\86\98àÁnQ\9bð©çÍ\12:\8e<$į"$\8b,R
+Øé,\1dIfÏäþ\15t À"\15î9sTbÙ/IÇh6\1f\19ÍEJP¨ \94\92ò'\ 5\1d¼¹àf¬ó\11\12pÜcÇç,Û\ e\v|;,á\9f\8eX\9c\17ÀD^b\141(\84\7f³1Ò\8b\8b]ùq¼¼Ò¥²#\1e7Û==\8e\b5Îw\8cw$0Ωá¿0Þí\18Ï\8b8\19ñ{é0\7f¯ÿòÕ\93ã\9d½\9eå¹\ 3ü\171êxnÀLÁÍ\8eÄÎèÇ~rÖÓ_?\7f¹wðªgÅ~(srÂ*\b\8bJê8\19m\1eLXàâu\ 1:\80
+&.\95Û\92YO{¶Çh\94\87-õtÇ\8d`l&¥(|K\86Ø[YSLS¦M³ÈÈr¬"Óv\16ð0ë
+Ìrþ\ 2h\16V\ 2c`\83\84\19YNs6ÙRÉV\96n«t;Koªt\1e$ÕQéN\96ÞRé­,½­ÒÛYú\a\95þ!Kÿ¨Ò?\ 2óòÉj÷tßÆ¥ßx\93ß\\18óÓð\ 4\84\9c\86±!#/²¬\f\83Úb\ 6
+Cd\8f\vàé|Ñ\1c4róù%\12\87\13@sãÄa$Ý\87,\10£+\10#\86W;
+¼ð
+¼0\89F9\9a\83³(X\8cSÉCÒÔé\84\15% ÇD"\17Ò\89\ 5C\ 6:Åx¾ûrç\ 5Þ¢\ 1\8b\1aÛ
+ó÷\ 5'"\84\ 4ôÔ>\11dÌ"\96q¶TaÀm\1e\8eI&þE\ 5þTJ]\81"3r(^¸\99\81b\86^R5%\10\86:Â#4]öÉ>è\15\8f\11Pöcb\83Q÷]6;Gäð¸§\7f&Ðe¡\17\99ow1ó\14æ\84WÊ=>Â\Á£¸\94¹»\87\99Rÿ8îpH\14-b¼Òå{\ 6æ·\9alX\88òûF$ýd7sܳ\96ÃaV¥h\1e\8d\9b¦é\ eüÐÖçp\ 1­\85ø9®Ä2M,¢kC\17\87%Á{W§P\ f\99ò\84\84\116ë¹ñ\1f\84\a\84\92\83*ËTíصÇF
+èéXÒfÄ r\8cÁr"Ãô¼\ 4oìØø¢\14\1c\93\f\14ë4d\82ÅxMÍÈ9t\9e\ 4\8bà\7fÄúü%\y\1e\88\8b\87o\86\eØ&\8f\ 5Ïa\9e\92\90\87°@\8ci\0\8b)\81                MEµ\89\ 3\vÚ\14ÏoñÚ\16\9eèR\17¯ME©\9eÍ\94;\14ïUðïã¹; \15¬\ 2ª\ 5Ù\ 2\1e2\aR©Ñ\985\14Ö\9ab-\19\89X¦      Hl\9cäSgä©Ü0)Äx\94\84E&èÃ\88aäV\ eÍ\81Åí«\91£òp>åy¶ÊÃá\81/cR\0è\1cD\ eY\ 6ä)\10ES®7\19À\9f\ 5\804\8a\98\15Kh¤À¨i⢱Ѥ\9c]nEäÏ\82"y\v°\0\1c¸¬ÁF\91\f\1cÒF\12\15<\8c2&¦ð$th©]\ 3\ 5\1cD4(tðh@ËÙ³l\81i\99\ eà\18ä\19&    1DPÀ½\8c§ÁÐ\ 5\90\81·à
+h\98ó.\8a¦FèÚ'Å\ 4\84H\8a\ 6Î\ eøòé\99¡ªì\94\10g0G\11\rÇW£Òe¸\ e\88~Dq\1c\8cÒ²1\12¢<5¡_9$¥B\1d'ÏJ\87Åg¥\95b\14\8d3f£Àî?ÙÙ+\81\16`P=8Ê\ 5ÉÓtªbP\85\12U\a/8B#¥qcd\13Õ\0\95\14ÇÓ\9eÏ\1c7ñóâô«Â\90\16%(T´ñ
+yá4.D\86ðÈ\1d¹\81â\0îá/\ 2b:\12R\81¼u\ 1ÅÆk\94 \1fÐp\8dyHøP>Ú       ,\1f\ 1ö*ä\ 2TR4\85\ 2 =D2\0×\ 1VD3g@¬n3Ö\14\13&FHaöâXÃ\1ao\0I\ fw\ 3ÉçÏD]ß4+õBÙ\89T¬Ä$ sz@8\ 5ÈQ,*Z\r\8cJ¢`¦¥é¤F)\ 3¬7\ 2CÌÙ\19ÅSõ.ÉÕMÊ\85j--ÖWÅêÚ\866\9b\93\vXc"6ì©®\89©?\0Íl\83¾\1aªaný$·:­\0\b×±\83\1ff
+Ìñ"\8a¯(¥ú\ 2E%\7fª\17@a\ 3þ     k\f\96µ°.ñ\1ekÖ¶b8VÖ¾Ú\8c¾\83Ùh\83²4\1c½«ãJÖªcs7pd\80pjo\90\18\97*êLh\10ã°¤s,DË\9e\83Dfëh6ô#\1cªÒ\1aqÕ é¥\ 2b¼(\ 4×\15\bÂ[T°L\80\96\10ýÆö\7fÀtaÁä.ë¸aÿg³¹ðþ¿æææúý\ f«ÚÿÙ(}@\11n\10SM\11Ô¶\91\eÇ`1\ f¦äWä\aù\95\82k\ 3ºâ\9f\92=?+\1f     mÒ\9f°d\99\10\96f¤æÓi\1dMo\10y\ e\7f'4ré\0×±Sô\8b&,z\ 4\1e\ 4n\96\14|p\86NM46'ÜuÀÓ\82eLZ°R_p\elv(J\152\89]\9fa\98bÀ`Ie¾©\1d\1d¿Øyþ¤÷["_¹`\88ß´7Çø:\84\vüê\1a¿\9d\8e9õÝß.µ7\a{\98\a\99.,Ç   äm\90.,pqä\86\82\19t[\80\90\1a%&\98Î\9eÇO¡\1aàD\ 3WB\1f\8cd´¼Á\98\a;QÔ5\fyëUño7êFiR\ 6Âu\8dj\rOYÓFÕ/µ½£ç;\a/\0¬\1ef\11\1cÐÁß\e\80õ\9e
+¡Bzø*5\83ÏæÈH2\87ûÔ\r\16\81µ\80\a¬^QGùY\855¹?Tù¤¼sR!\16\8bmpÃ\ 4÷&&Zw\85B'¨ÐA\9fctÀPá¥ñz\13ô\13ÀíQ\94\ f\8e_¿:èUÔa\1f¸\r{O~yó\f»\86ß]#àrAxIÁÕ\ 4;#­\18=\11ÜAô8up:äk\800µaz\92\98F\1fÂ\´rh\9a\89ÞW¥*\11\8eÀúM\8e\ 2o\8a>ãï        ,üàd¹è\11\81×.ÀVÉ}­7D\16Ê\ 3ÙeBÆ¿Ú\1eî\10ä.\1d\ 2ð\ 5\13Â\86ù\10«¤@3I\ 5ÆÚ\14\f\96$PS\16fq ×<\9e\8cÆàK\82\91$7\ 3À\87\98Â|\8eÉ   LjB\aèV\94ú        LÙy½\8f\ 6wâ90§q'mJ\ 6h¶`ã\98ó\88\f\12ùÆ\ e\e:\81\84L\98\88¦¦Ø£B        ©GÓXCÉ\17ð©U\8c¡ô°åôÀ<\95\95?¤Þ·J\88hbýNÍB\90-ߥ\ 5Þÿ4\9b\v\ 51s¾\96\ 5<\95=\82\19-\8a̹$n!\ 6tära\85^\ 2««H;\93\8fl\9a\9eK"ßd²®¶\14\fËyßÀ)\ fvËws{\r\80RÞg(qqI\1d\10Y×òüÙ\9c<UO÷\1an9\19åôÛ ¯¤÷\97#ÊIæð@\8f\89|%#îPÄcW\80\8d\a>©o\12òk"\947/hàÆS]\0\11\81F\96ÔJP> 4\98Ê\97Èdó\ 5,ËOøtY{aXuhh&\ 3r\12¢~$¨«RMA@5ª­¬SÕ\9c§\12\rÛÀÐ\r\94\9bKÞô\11ÁíµT\8eA9ÎÌî,_ªëB\82Ñ\86\f\15\8f\14\8ato\\14%FAG`H,\97Û\19©ÁH£\b\ 4JM\ e\81Ì\8d0\1f¥#`\8fÈ\10\17\ 2DEÿ\14è í\86ï¡\14ÊÉÉ\r[P2À<¤#ÛS\9apòÕ8r_)k=\f\93\9a\1c¢b=¬½èÆuòSNH\93o\9aI\ 2ä\8aÄA¦í¦{IP#.|rË)\ 2§\ ey&_ë\13\ 2 %H"ÛzB\96½\ 2\vüÅ\9bÃÃÝç{Èk(Ä\86nÀä«nP\11\1c\fÃuÇ\9d¤Û\8eÀïRÑ\9eMc­ü\8c\ e\9e\81³Æ\93PtÑ|gþ\80Eê¸BÚµÔSPr°\a¬­=Eö@3ÃX\98JÈÞÃ\ 4úÇÑ«\83\ eö.\89Á~\87eðcY Òé\94¢ô*Uø[\91â°>tý\97²ÿ\1d\17\8d\9c®Z°­»²ÿÿàû?¶ðý\8fë÷?|ýñ¿\8bP\80\9bü¿Öâû?a¬ý¿U\9dÿßú\88ï\e9\81£í\r\82ÁìIÌÈ\87\93\81s1\7f,yyý\99åµ\ 4\80%\97×\9dj^W8Ä\1dºiQ<,\17WÀ«\b\8c\18\1e\80\88ØHÂQ\ 4ÆÖ¥&R*ΨWY\86\86Rz´Z\10\19¹\ 5\91\14xEù\99³Ù\82\bÌ@¯kÁB7J½¸E\aÔ\81GQ:)\97Fе­W(äq11\ 5\1d²\ 5Ö\1a\140Kݺ¾Ø²\1aÑÝ6Ø\99\rv È\86}ÄT\98F\96\9fÍØC4õSα,\18×H_\97"ä9«Ú\7f\10î9Ë_m8\10Æ`j`V¯"_Ö\ 2.G4%ÆÛ!ÑÏÈ\87êÅAFÑ8\ 6¤KÌJÃvåó±<\15¹ü\10èé\9b)\8d\80\11Ýút\ 6n\8d££XÉÄ\87\9aùðC=k\1eá'EK«\96°¬\ fM+\94\14Ð\ 64\82¨\92vêXùû\89\17G\b­ülþ\ f\93owHw\ 6ð@p\ 4¶¤Üì\7f©\8cwÀ!àÿ¤Ç\10ro¿\v\ fD\12L\ 1Y{\16òÓÑYÈW*k1\9b{\1e¾ær\ 1\90º\14¿PdÒQÐ%ÙÕw|\vGjÃssàñ\91\bÁU\87\1c«Õhü`Áÿê$D\9d\88 IÀÉÈ\9aãØ÷´r=éξôù+Õf\85¤®eÚ¿zêu\9e§\91>\ 1\97ì\93[Gz6<:©ÖT¸\12ÉÂ9-\9c\1c\ f³Ò\8f\1fË\87\947\9f\15/®#]mÞ\92dÆ¿ë\88¥Õ^I\91¨³
+õQ;VÕV\85\18;ÍÔ\82X\86Ð\ 6\84_\96"ÐÓ\13¢_¨\1f$¨nVÀ5é\ê³­ÆÁÍ[\f.Ó-;\9b§ÕÙÖK\1aA÷p;°[\99\ 1ärcH)W;\98¹dK/X^µ\1e0p\15sÁ2ç\88dl»\r\91\14w\81\86\1aé[\91\8b\14Ò\ 1Îiä\19n\0Ω/cµæ\v!\7fg*µy\10Sè)úöÈY<Ê\15y)É^&¨­]®½Ç»µÿ¿ØK\1fþ@ü\7f£ÓYxÿ\7f{}ÿgeö¿ü\ 5(6$}GÅ'\90ô{-{\7f\7fùÿb\97þo/ÿÍævk^þÛÛkù_]üÿ°¹AþÛe§©Ó¡\8b\10ã«`\81¦däNX\90Y
+Zª\1eRK\15Vj?ñdÜÕ!ÆE*kUn\19\e\11\99½9dU\9bVNÚTµ\99£sòñ#\99\8b\ 1­¾ÜyöäÕí\8a«Fx·ªóÏV\96×"X^\f*\94\85?8G·°\80\12KÕá\83z\r&\18Öòmö\8f
+\1fI\91\8a9\86ÞD.\ 3\8dÍÊ\fÑ\1c« Zmæ\183\8düCm\0÷\r|\92ÙºÒ`«\82üÐÕÒ¯K­_\9a\v¤¯\8ep\8c·s\9c$\86\86Ü¿\8aþo4úàĺöêî\7fvZ[\v÷?Ûëø\9fÕé\7f¼²`ãÑ1þ\ e¨Ð\12Ï\95\11©6ihZâSqB\1a­\96\8cè¡x)\a\9cDoxJ§xü\f\8a\8aE>\1e j¨|cy,\88\81!òÐ]Äñ\94°\b÷2HåÓ>:Âq\84\8f»\15"\12\81¡(ï*ÄI\1fÿ\1721\bµòé\18\9f(¸ß\95OÿU!'\18\1dTùô¦BÈOß\17§¸Ø S\8c©\95Ê\fc\89¦\ 3\8e!\14\18¾Í4   êÕ\ 2\1eû\f\ 3Ddh·B#\1d\ 2MÎâá¡\9d**\9eÈ3U7\9ej\87GÏv÷\9fìþg¯Ýhhow^ïî?}þº§?\bÈ\ 3J\1e\b\97<ð       8Ì\ fbó[
+\ 14­V§ÿN\8c÷³_x½\ 3-p\83ü·á3ÿû\7f[kÿoeò¿!7U\99¼Ó¢~ÿ\97ÌüþïFvsÇ)Þ\11uÅo\ 5\17?\1dôîx¿¿\7fðìÿÙûþ½6\8edßû¯õ\14\1d!V\12a\ 4\ 2cïÁQv1È6\e\f\\ 4\9bd\r\91\ai$&H\1aíÌÈ\18\83ü¹\8fp\1få>Ã}\94û$·¾UÝ3=ú\81IÎÚÎÙCÎ\9eDLÿªþU]]]õ­W{ôÿÇé¯úQ£V\82Á\1a\f¶[\97^\1cÁn\82\0\96Ü$~\94s\8f&ñ¨æ´5ï;ãVÁî KBãøç½zã\8döt=«åa2\92\9f\93Ë\8d\80\89LPz9í`tÞó\9c\7f\8e\82Øk;nØ\1d\ 1?\97Jvºµk\ fF\83ËçA¯\9d¿£\8aé²ÝÐó\ 6s\9b\95\81s¼0\fBi(ôÚw¶¢K°)¾S½7q\99bkRL\93v\8f\ 2ëR uí\ eîßÊc)tÞ\ey÷Ê¿!ùû$ÆÒB\98SDV\96ÓÇ\81@\vD× %I\80\8f½eÄ~
+áû¥)\9dÓôÈïÑ
+\9bèWZxNóÆöé~ãÁo#iÖy]\92\a\aÉ7\80Úµ7''`\1chuÍ(p\17\150fºGåC¸ÛMWü©\11\81³Lø\8e¨º
+¶5,V¹9\9d\91G\12Ç{?tÙ<×^.³\8bÀ÷\91D\91®=¤w\8e\rÝÐ\8dyoݵýeUQ¦»\96\fîtÄ\1e\87Ä\15\9d`¨×Á]»Hs\94É"²_ów63\93\vq[wÍõ\7f\8e\85µ\83\rïä\83\98\1e³±æ,\88 @^:\9a\aTQ<7ßh\0\81\13\a\97Þ`\92÷=\îî%ÿ\ 1ÿË2÷ýCØ\7f­Óÿ\1e쿾ÊüÿËPÿï\7fÿ_Û\98Ôÿ>Y}À\7fûz÷\7fmº»³õCsw¿qXß>n\9e\1c2ÊG\11\90\1dÀFq"/b§\ f BDÆ\17Ç¡\14µ\96\9aC?SIþ+\9f\15\14\ 2VÞͪr`n}£]ÖÇyå\ª<¼PoÄ>\9a\ e÷ñ3Õoå\1f¢\b|®ý¿¾Ú<\18þ«\9f|~Ãþ_{\}üt¦ýïÃþÿJú¿\ 5õ\ fx¸Êª`}@äy\0$\81N@\7f.Uˬ0c\17\93\17»~/RÏ\1c¸NSþ\17$\99]Ã%ʹðzCu\11\ 4\97Q.ñ¡0ß\9d®\1fÏø\1a½\eär\89ëUÃ\8b\ f\ e\8fùqé\91üö;õ÷l9R¨ª`\90\e§yOàyqWîN\a\ eÉ\13u\9b\1cR\8a]|tçk\85\9bÒ^¹º²Ò\\19«\ 5\ 5\97¿\90-±àÏ1\bT±YÌå\1eiÛ,)Â\ 6Z\8f\1eÑU!¿TF\98â¤&ù±2\bV8\1cò\82`\ 40]¨®°\86¯ð\1cÑ51µôéÙ³Ü#6~á\0Ô%ã\18^º,ë©\18k\10\80¤`Ê\81U9\89ݼ û$NDÑ2»îø1"0ë\ e¬iÚ\1f\ 5\ 3¦ü\11B4uá\ eÓmB¤~\83ÛÒ\19\15£\8a
+L|\93\81]L»\1cþù\91¤\9boü        = Z;\9d;ªe§\99;+69¦«æÑÑq¡ñ\14e\1aÐ\1d\86Ï]4\1a\ e\13\8b\9e2n\8bA\875]ß$á´\17Ô±¸«³ï\94\81ØC¹Ãaï\1a\8fqt\15\9cåw\ 3_/v[R-wèÇ.m
+ÔÃ~®R\rë\8a\ 1\9b\8d\80Í\12\8cÂ
\1f\14ò¼](.«·\1f\8b¼BÞþR´\L\15\0\13§\ eh\9dYÄ;ÒØÕ\ 1±Å\e\10\85hwYyq\v®<[°(óc\9fÖøh ×3i wå^óIÞ\1eÑùÌÈ   \80yIÎa\95\²+å\9cl\9cGªþÓq}\7f§¾Ó|¹wð\1c¤ï\ 4<Ü¡÷Ï\91\ f_,ÕóÜ64\81o+E\8c\8a\9b\90\87A<\aW\ 1Â\\eµ÷ü\96\1f÷®+Ií¨tçà¸Á.\99\1d5 ;dè·\92\1adhM\ 54¯VåiÏÍà,\83\8dA®Á¸¦UèJ\11ÑDQ\81\vv\83"N×£mÒ
+\18KDRS²öO^×\8fv·¹ÏÍÆÁѱt\1c\ ez\f\rЧYõ\87=Oµ\82!\1cø´¿Z\ 4ºÒá\f\fÎFò     \ 4Ænë2méð¤ñj§¹ûrÿà¨ÞÜ99ä\91¨¿7\b?(Ý÷\Z\88]nåí·z¡8Eq3\13\8c#À:Á¹L|¼\ 243ôZ~\a\ 3\96Òã\v\80ÆL
+^ïî\9f4¬é\15ãÉ\fñRP¹\1d\1ak\1e\866Ü¢\81%4QYcw¯¾ÏCö
\85\92\95i$\86j\14\ 5°\86\8fUÏ¿¤- 9Ø£µ8Q×ñ\ 1¾êåÁ¨MÚx\rîrC/\84\ 1¢\19\ 1\8d\ eBK\80ÿæµ\b}Ó2\ f\19-\9d\11[\vgëð\89ç\88ï­U\9c¾³)¤Ò\13èQy=Ǩ°Â\1cD{2Þ¿\18Ì\a<\9f\17 «D\81C\15ñê¶)agso0\9a×Y3BÄ\ 6·ö~Üú¹Ñ<>hÒ\1eµ\a\89Ý\11Qg\14\8dØC\92\88m¹X¿ìnÌ\ 6ëmð\17Z5¬Á3\85\ 4Ïî\87\ 1\13±ºÙ8$Y\12Ë\86*ÉßN\8aÄâ9ms\17\9bì\13¢x\9b      Þ\1a\\83Ç\89\15­q\ få\83K\8f¡{\1e\ 5=\98×Ïh\1e\ e\9f} ç¸±×\83'55ïq\9f\90\17\9cR<kSrÅ\9d\e¯\8b4\ e¼wίuoß.j&¬\ 1°´;$ÑòÏ\11\80À"YF¦°û\8eä!ödÇ>\9cZVéÒ\fÌ2\94\aNpJ^­Ä\92Á­\ f°\1e®üÈã\95Dõ¤£Ñ\87Ó¯¡So^\1eì·\1f9S\91\98\\18Å     ³6#\vH\84æÎîQ#A\r£\99a¾¥Ñ*ïäQYþ`êäÍ\98\9e\²zu·ü¾°BQ¦&Xd\89\a,F\0È\ e\83\ fw
+ø.cnH\f\18õ\8d\1cDc+b\vÆç×à|²ý£zãDø@\1d\87\14\9f&¡ÜPù,\86\8aßÓ\10nD\16\1cìÁÆ\ 2\8a5ÍÝ@2ÂãØ\9cu\8a\1dsù0à#\82ºä\11ébÁ\fÂ4öDz.Ó´5<OOW¤{øö9*\16êPmÑêÁó£­ízs{{O\\1c\0\1fÀVÑ\ 2\96\13\f\rÚp\11!Î=\f\ 6Ë \ 3&\r8\ 30\ 3\12x¶s¯Ã\90\14\99u\87\93\90\ 6\95¸\84\82\90£¼N\a¨\80ØÂ\ 1±\9aK\11x´;\ 6oO\fy+N\9aÇÌXU\ eGá0\80»`Ú\9bí\83×\87{õãzskow«Q7g7\vo\93ìÐÚÈ3\98a\86t9\eC&=Ù\14J`¼®#ãù=hOt\18þØz¸\ 2ö­§vfR»»ßüñàH¯a\16ð\fd"\1f\8aÀoÄp\a\9dd%Ó\10î\ 3õ\bLcY\8e[\99óW[\8dWͽÝÆ1ü×\8cÐM´°\18J=Æ\ 1\84ÜQ`É\ 3¾\b\8d\fl"(\0âÆ\8e\8d"\98\18Ë"¶\ 2D¢Cb%X\1að\9fH I¨ã'ÀH\v8!û§0&
\94ì@T\f¦Qá\9bÝñ\85\16^\13,\16\1a\94£#(}Dîà\16Ï=3Ynò@ËK\86N'\98\94E\16û\1cÀ¬\ 2\85Hæçí\82\1d.ã)p\0Ö\ 4p[\96láaEgÖ{\94b\92ÙÞ7X#ôí\1a\1dÂZ\1dA\80\ 4\a\99B\94â-e5ú
+\933!UiÐ\ 5»\91R\a\b\97åtñ\eÉ=C\ 5Ï¥?x\17\90¦\8bbrßv!´ë96Û6©j4\88ý\9eF\1e~\1fË\81a\8eW\1e\11\1cF²¥iÑ¿#\99\ f\90ý\8c\94\10\aî\ 1b        \89\9aVR\87\97\ 6\80´\11£\8d5
+ÂÀ\9b\1c\85ý\83\98ÆA®=Ô\98¹íÐ\94^F"\81m\1d\1e\92\0ÑDþ\83£\9f\897¶¼a,]\84Â/\1d\8d\ 1so¬/·ÝN\ 5\9d\ 2J¾ ±\8fºÝ\ 2ØÀ f\86U\82\97i üß\9aHÝÝòrF\1e\ab%ú\99\ e\94¬ZâÌq¤Ù\19;\8ea\ 12·ÐG1\9dµ~Ð6\12¾ç\i\f#\10\17ú}åÇÉæ522­\1fÓ\99n\18\Ejmu\91ªº\ e\ 6\ 2'ñÎí\8d<-Dûrõ(4¶þ^G?U      º\12Ú \81a\a\18f¤6\9fÿÜÜ>8üY\ fq9\95ew÷·\9bÙAfã*f\12ì\ 6Ç0\114\95\r4\b­¦dfy\9e\83\9018°\8f4\ 6õÔÎp%·Ù\1c4(ÚØ\93·\89ÞTv\19Í\88\ 4\899ö»#*\95ÒÎÝ{±K¤ÓR\9aØLÙM|ÇöI8Vz\8eB³³\90v\ e\87\17\8d8\1d¢Ë   \ 3\ 5o×[\9dÏk,9sl&\ eE8ÆÌ\1d\94ËÓZa8\16\9a\ 20\fÓ±-\ 5Ù°Óñß\9b\8b±'\14³àô²®~ÛnG-3÷ûoÝíTѬý>½Û\19\16\ 5Y¯`©g\ eù¤Nª'\84\99\8cra¾gD3¦\80\8d\8f\a,!¥Ò?°jÌ<ðiËR\16ja£à\89U¡9lã\90ä\e\96æA=WÆ\12\8e,·ÁLø\92\84Iíî\1f×I>:Þ¥ýC\87õkº:ò
+cïX\92\ 4\93\ 5²GèHÂ~ÔÊ\15«¦½\83ý\97r,ÿíà¹\11KX(IeêDì[Nf$\91ªXPÅM\91øÇ\ 5e÷[\199\11»$\15ë\89(\83\97¢\1aV\r\91¹{êTÀË,ðvuE\14³W\91 \94Z]8<"q\85\98ÉÉóƱîÀÌÃ\ 4\0h\91Ö¯\80Çõ\85\17\13SÎ`dêv°A`ê\82Á\88\ 5]-9\aä8o¹\82Ø\96\80Ù'|\b\a«q\14\9f2\ eÝ~/àk
+¯eúÍË*\81Bââ     _\0?À    ú3­W\r\83\ 5¹c\14z\ 2\15\16\97ö=ÖXc÷\1fu-¢»!m9ÍÁ\99sС\910e\1aq\96Ü\91\17Î\v¼'X,
+\ 3j].\83\16×à\88 ¾lÝ\12¦\ 6\869\81§~ÅU\fG¥a÷zå\93üÇ,\918U++Z\0à.R£¡\öìá\88&OèúO\87»ZN!>{$3¯eÔDd·¤^æª\12\ 6!T¥ Õ\1a\r¯1ê\8c»Í\9c¸,×ZVâ\184=Ñ¢\89â\92nÔ}½R\19\v\ 5\1d_ØÔñ^¢½ýC}gBz`a\9b\90N#\96\11\12ásê\10À\99­U0tfâ\90Áb\8b0A!ó\9bvZXV\94;\1cz\ 3K¼°kR%9t{,£\82\9d²\ 4£õ]èìôY[ÖÒCF\8eѲ\b\9fãÄ\13\87£Xk\91H\9e¦}Ù\1fâ\86æ¦úO#\1c\95ä\8e\89\89¡Á\8c\19¼*òeáu|-?À#\\0\ f\ 1\1e×ó:¸JvXÒ7óÁ\9d\11e\1a×ÒÅKA*½\94YOü<ásË     õ8xûÖî\8eÔ;?ÒG\82Ì\88g\ ed\80\9a{,,\89\0&¡h%QÀæ°K\80m\17\a]\èeý\v\e\ 4ÁF¯Æ\17]ø±SñÄqýC\ fa=\ 6è\11\8e!¾eòpÒ\8d1òqÏÀ%\vú\ 2\1c)\1fXÛEk¬ëÅÖE\82\17xöúâw\a|.\9a¾\98\ 4YDÈ\vÅ\8f\ 6ð\ 3 \9fµd\e¯¶h+Y2V\ 3Û×À\8b¡\9a"\8e÷®?\18ðD\98ÉV%`ÿy$T\10\ 1ÄÃôn¦ë\17\83\ 5sËÂ?´ÎÙÊ_\9eµN-\9a&\97ÐäÄ\8a\98k
+\e\1d\18Ö
+6+ï'\r\95\11û\8aù¶\94\Ê0]T\9eí\1a\13\ 1\88÷*4ÇæU#Q»ò\94ʳ\0ª@)}Úëëh\ 2öF\1c\1fQ\ 3H*HÕ«tÀi}\98Ô\ez\9dÿ÷¿þ76AÈJ2\86\9e\88ôì~\9bò6wõ\85K\94ú¸\85²V\83JºÄÓ\0ìM\1dùQ¤Ç\94ó\88VaY·\92\19\ 2\8d\90í\85\97Kÿ\9d\ f^B¬\98\91ß÷é(¡+vt¡Õ?ZP\94\ 4\ 6X\901\90\15¾ÕÓ\88\8fLNò\8eÂï£\86â\1eæ\95½) \95\ 6\89Ë$pk9\17 \1dF\9eÍð4p1\9cnR3ö#\8eE\92¥0\93!^rä\14çë?k\1a<XX¸rF´\89õµÓ\ 5ÇgÊ^ý'Vw4\92{\ 6ø
++8Fñ\fö\9c
+TüVÆ\fÚm;\17\81\80á\ 6­K\1d\ 5V+\83\98C;½¯×\95É\14håG0ä7\1a\96g\ 5Ì\10\1fe9¥sj\8a\19}\ eQ#k×<¬pQF=ì´\ 6q\8fab\975\83\15¥\89GsÃÒu¢\98åk\0-\90\16#
+N\13\92j[¨\ fX#4è|¦h!Ï\1dà*\ 2I\ ejÛÖ\b\8b\86{.µ\98ñÃv\19i\89\ 1ã,[\15+\8fã*°\ 2xÿE#;=/¶÷\8f÷\9a{\aÛ?$bs¤Þ~_Ì(Mùþ:\1a°¨\95èF¹zá\84o¿§\ 2   \8bÕk\1eã\9bªÏÞ~ÿM\11w\86·ßß\16³úd»r7=£©\16ªÖ\14B)\9b\87\vc3oðj{ïàùóúQ"¨NoÒ!ìêõ\81ç¼W\9d\9eÛ5ÌRÛV\ 3Ò¦ECëáõ®Ó\v j\83¸Û\ 5P0vw\80«\1c³_\r£Y¹\ 5FŧQY\8e\11>w´\0I\159]në\99\92\18\1e\89ü\1f%X«©Z2±\86Ó\9a­ \96W˶^õ´û\92¼--à\1aû\82e\92ìXìbíÆ\15«(5®«\168A\ 6Õó-/nñªµ\1eB\r¨¥5nZ\8f\9aÐ\99ÒÎǧ¨<@\9d¦\8d\16(K§É\ 3$.zÐî\ e®E°Mk°¦\ e/\9b[{\10=õëæÖ(\ e\0å!Z\14Ü\ 6&ß DVáføÜ\93à5âk\1d\9e\83=ÖGf\15ÈËâª%¸üØ×¢µ×K"vÏÕ¥ÇjN¬°6F\ 4'WnÁ\1a\10\12wÂÐo·\ 5\95\9aî\87'M£Ôµ:į\ 4H\144V¼'¸ýsÑedè\ 1Ú
+\ e\rV\ 1É\9e\12yŧ\93\95\1fsC>\86¼!%-ëW9K\7f¡ßëÒw'\11.õîO[\82\8c\12\99q\81Þ¢ëú\83e\83Ç2Y\1f«\ 6Ò¦d\84Íë yÚ×ga
+\81*g\8f\96ì\97\15\9e7ðD«\97«Ô\1fð1Æ­WàÛ\v«\bÏÁä:\9aXÏ(\80\r\ 5Á\90j\bõaçie¬Q×ȪJøT%s1гEã\98ÌHÂú2sÇR\10\8d2ø£>×\ 6ê\1f\9c>¯×\ fg3\17½I´ÜÞ\11­Ã \ e\83\1e      Ã®<$¬°kaúlC\15\95\88×·¸ûHo\7fi¬üò?Ë|öø\11\ e\8eä±Mðå"­w³\b{±wð#udÿøè`ÏVl¿÷\19»\97./NÐaø#\1aò#m)\81\1aY\85ÓÑ\19\93Ø<\vfQRîWÁ\95\80¤Ç¼\9aÒ\1dV?x\11M^ÖEb¡> B\96R¯i÷/§gt\9a    \ 6\ 5|ÄvèºAü*¾¦å\82\83\8a
+Tä\10\8a\82eQ\ eNòñDú\85ÑØ\1e\94uu\1e\11\9e\89H\ 4D\88õ\11?ÈÒ\92\ 27ÕÐeÜx
+\ 6¬e\9bs($A&õ
+\8a9È_½k\86ÒåYtvÊ\89²*s\8bÕ¢Ú\95\e²üÞ\87\14ÔM\ 4^Vi\83y\f\19\85¼e\9e¥\89\17.\9dfÍ®¾Û\13\1a\9dÃP¨é×Y\ 1P?ãP3-±àÈ>\ eëö´»?\1cíu\9c\9aê\1d­,\8b¨\8e[\8c\\9e\ ffeÔºzâ°u\92û\18õë\19\13Å\f\85·z?h\8bf{ò\19\8eE+/\91Ì©±Ð1 ÄBº5R¬ \90]ú`hû\87µÿ}¼Ñü\1c O÷¶ÿ­>~º1\89ÿº¾þ¤ú`ÿû\15í\7f_²ù\ÏÞü±×º`=%Ò\13Ù\0\11\ 6G@tdÞ]©ä>Dñ5ÉrÅÍ´èæR1)\10ªfR¶É\82C3èµå\87<⨦hxè\87\b?Mó\12ßt\87t\17{ï÷qÝh\92¨Øñß\7f¢=>Uªó2q\9cÅ*Ø8?? Z¶;u,9mfÑM}\e.&¨(è\81\84Y\8d`\9b\eU6+å½\ 6I\ 1{\aG\8dñ<\ 2D6\v9~\9a*\16U±¿yóf\93Í\8c7ÏÆ5ú=\1a\ eù÷DZ\9a`eJKRîpóöM¥é\9cÕ\96\14ý¬-\15çÒ\0A>òz4µêê¼\ÚÜ©¸è\19+\ 3~5\9c[«Tèèb\8b\8dF\v¸\80¬ýç\97\9eÍä\15Brò\15\822\ e\17£¹U&ö-<g\vò\1aƯ\80"!&°\ f\90N=Û&G+\92¡á±\96P²&M\8bÎÔ<[Ùe¾Þ;ºû\82'Y¤»Iï\1aá\14J%U*,\1c\1eÕ_ìþôma¡qò\82~\94WÖU¹\9c\18®"ÔÙÂ\82\8aå\85­m¤\14:~çt\9cºt\8e`9×sóÐz\94È$XïEó\fV(.Þ\9czoV\9f­Wû\8bãŶüE?\8b¹ß_Ë\899,\88z«ÊÍÅѼZMÿ~?]Z\9e\9bWÃ~\90<_Pú¦út\8dE\89\bL*cËjµrú|¥ßØç\90d<\8fY\89WdX$ÜÜ\10gÏ¡:"\9e¬{\16å\9b\bò\e#§©Ë5K¬,\9bÓW¼\8bñS\ 2Ýð\10ÙÈÈ\83Ƭ\epn\83î\9cÆ5/Å\10hÐ*¾V:vEqHLþÎâ²@\18õiö\94ª\92l\13\9a\f¯üÉù\9d"*        BÁ¤Ð°¼ä`\146S'\89\1a!eEå\88 \86\95ûMõ\9d\99ä\8d\10\vbN6jÕ\eÆ\8e÷\1eæÉÅ¥Ò¾ÞÒÖ\\ 1½{Þø\9bßÌLHxÖPßÕOgæ\8c\ eÇ\1d*Üh$\8cñJå\ 3òp\1a\93Ñö\ 4}\aZr}#ÐÏ\9eÚB7R%V\ 3\96Ó\aV\94Ãù\ 3%Dj?gbã
+
+ÙÄz¬ Ì[è«Y\ 1h¬êûâ[\91Õd\8b~\98²\13ó¿\8cfçÏ\98Ý\F©\86B\17\95ëH\8b\9fVD÷\88\97\19ùÅ\81NgÖÚs¡?±\8aò{\ eW\88i\8c¢;\8aI\86´\80?  I\1a\14ãû;Êr^\r­\96Ö U+i9\9a¡¶\aÝ)\8f0O\132j\8d\9f¬\87ÔF2Õ×ñû7\eÁ¤\9a\ eÑ*kõ\1fjÑèànoxá\9e{FoGTb\11ÌÝ)¨ÆaâØ\7fäÎl,²à_µµUÍD > q6ú£omï½\17\99·\7f\8a·1:Ëù¨\99Ç$\976\9d$\8f\83Fi\8bëíi*¶T\9fhUëÇ\¶      ÓV\19\91Ö/\ eí\95\1dÎiR²eÛ\ 2;Ok\93vä °v|ª¿(¥f=\89\14\9b4[\9eÓnR¼¨ën;\89?O±9_p\9bÎÜ\ eZ\8eDMefÀ\1e)\89´\rÝ\1fñPý\0\11i;\7f\ e¾7\97-kþcÐB\1cæIüÚ:«ù¥Ó\8fZÀ1^8bE%ï~É\ 1˦EÖð\95´A¡h\90þyc+Ï]\1a¥_Â~\19¿¸33HÑÂÙÒ_*¥à¶õñ\96®\18·$ÈÝ~¸jÝFþåí¹{Y&\19yéã$÷\96\ 5Ã\8fS\94\9f\ e\15Ö    ñV\95ç/\8bny(\9aK$,' »IvÌ\14u\95\12òÜîì¾xQ®t?\14çVÕ\83\8aË\1dÜYSÔºm{ç·#üKû\aé³)\18\12í\83*¹ÃÑ\96\81&'Í6\87\92\98¼\83\16\87\88\8b0* b\984\a+#}\11¢YO[ÆÀ2rÛ'/WK\9bÈ\97mϾ_\15\85ó²Z(½Yuþãl¡¼T[­­VIô`A\ e\91\13í6\ 4\ 3ôãJ%\8a.VøU²\89,\91Æ¥kÒgùP+\15näÿJ\9dr¾PúNG\1c\9c(WÎ\8f7\17Þ\9cÞ\9e-\8d\17\17O\15þ½¼4æظv]ålÃ:Vâ\9cöuê'É\98®åSÔdk6DqøFT\88,sh¢,s\b\9aWúS´X5f\b±\9bÞÄíy«\9cæÝ\84\ f\91\9beúï0Ú<\8dñ\8biùø1¡Æ´Oí.,\8d\17\16Þl\9e÷ÜÁåæÙÂ\9b_\92ßg\vãñ\98©ÉP\92Ó¿x/I\88α\8e,\98\15npj\'Ó\92Úí\84é\8fü@\87O¹y\9c\8eó\17\95\8cO\81ÿ£]\r-¾¾ý÷\ 6^["\96Þ`m÷-ßÌçTYÂ\89v[\9eÇ8\8b¥Û¥\952U9WToÏ>zJTlá\8er÷j·\12½\eü®\86\7fwÁt¼\98wXO^\83\11]?D¬óCãÇ3ï\86˹åF¤á¢H\8eÒ÷¤»®Sº`\ 5\17\1f}\11K\8a©O\14LnK,\9c_#$\fkRجI\82§ðu\81\ f4D]ú$ßE.­;ãÓ\9e\8bO\84½´âhÜã\9flÜQõ;
+s\9bòÏo/\9c\96ý\8d\85­V\7f{álÙßAöOÕêÑ\13\ e\9f\9aËYq'?ð\fâ\96\9fK~àÀeWg¿5%Å@\80!  Ù¸½±\8b\e#j©\97û'b/m°\1c\1c\ 6^(§ÈÿÝÁ¨iêe\e¼v\87$7Õ\1dv\95\16FtdKÙ.|\a\827Gt\91Ö\11\ 1?2ºpk³¾¶²_\85Å!w.gx+Çùb iÖ\94\0'\92\bq:\998`eh\89éóØ\8aZ`\15Ïä\ 5É\12®\9e]8\93\12ÝZW\8f©ô\9d²té^Cÿuäñm"­ÇI\b\15?\910\1arJÇ\83WT6i¨ËP§»íwÜ+|\87\0¨\9c+: þ\9a·ûÀeÚï¸\10òL¤´8\ 1ût\8að\96{GZ i@¾ÅËr65äDè±bo2éÝ\1diý»\12Ãþ\1d\89twý½©ç\9ct\1eº\83©¡>wg¥Qçér6c¦[C3(axí\fýÖåätóú@\94¦©\84;RÜ9IQ4\7faI\19\12 '¾Ë\18ö½°\9b\ e\8b\ 5\98é\ f>E\17\93\9f\ 6Ü¿ÜÜ÷?    î^¹ ;Ïgzcú\14þ׺\1dÿq}\1dø?ëO\1fÞÿ¾Ìû\9fõ\ fû\83Vd=À.T;Ê\91\10ô7t^ýÍ\8d\86P±|Çcñ×\144î{\94´+Ò
+ÊZ¢ªÜtò\90¬_×Ç\1cÁ=\8fhö$þç-]¦´«\ 3ÔWf%¥0\eí    h-FN0'öB\8f\9dßø    HÒH¦òÙPÏ\80\a\7fó`\890¹ÿu|±Ï\86þÿiüïÇSïÿk\8fW\1föÿ\17|ÿ'\99L"¿\1aiSkZ\9eé\1flfgb=\86&ðeÿ\9a±\8bZÁ ãw\ 5ÉBÎj¾±²/4;¢½ôÅF\8c\9db¼^Gn¾½ë\9c^z\ e-½$x\8c\98­ê3?ý\0Û-ëO~&\93\0\83\9c³¦Ã\9d [­Pê_\ 2ç@9m      ÈǹéóðJ\7f¸\11\9c(©ëà\87Z\8aEÅè¸g\a?T
+7\16\10Õ8/\ 5\ 4÷\861\v;]\9d÷ùÈïñ;\14;ê¾ó*\95\89²J\17n\ 1/\9dÆ+\8dT\88q\91BêU}kGÝ*¬Eg[\15Ð\ få¼'Ù0ÉÝ¿¤[¾r\86\928\ fí<É®[\9b\8bÌ~_*æV ÔIÏ\86J+©\84S§%\8dd\91´¦Ã.\1eüp\8f\ 15\91\ fùC\9a¬(Çé~ðõФý6¬\8d\96÷©\14\10e\f\94\95öÒe­D\9e]\e2üP½Þz¹»mS\9a\10\ eõÕ\a\9d\9dA£t\93V/\19­þ\1cÉ\9e0õÎë\v/T\8cä\fêQ\ 2\95\8c7­¼ø®÷\e\13\9e-3IPB¹è¶Æ\ 6ðKS\1eöé<îÈ\0fÖPºÓÆ\ 2\8eö£gÌ4\13¤ h÷\rw\18\85<!É\13\1e^qá3J?Xõ Q\99hàj5\95çñ¥#ÿÌ
+\94T*©Â·æ\99áMHK¯u\ 6#\8at\94Ó\11\96=\ezí3Χ\r\9bÝ\10äÇ3w2ÛØ®åÒ\ 1Éð\82ùl\80ó.¨×~\17J\9eÄ£hÞZ~e¼ò8?\9eNgL\7ffw\7fäMÄaFé\vê\9f\99n¿ü2GSýw:­i|O¬ªLxY^ú\95\ 2t\9c´\ 4Ö¾·¢§d\97ÊÌ\95¬\8f\07¶póÄ«dN¯dV\9c°\87\90¯Þ{öÉ«\81\1eëO«'øÜöX£PI:\9a3˳Ã\9f8@Ëô7\g³\1f£\8b°5õ        \92-Ïö\0°µÜ\80Å¥&2¥£Ññsÿ¶ò_òü¸ò?>£ü÷Ûð¿×Öªk\ føß_zþ\7f\1dõ\87M~\85m²sH\13z·/qÿ_\9bÄÿ}²±þ\80ÿû¥í\7fÍ%\80
+K\ 1è\ 6Æc]\9c\85\18\99Ë\0\92õÛ\82'\84ì£Èë\8cz\ 6cBk\95+¹DtoG9­Ã-Ü\94>\94\9f\9f¼xQ?\1a\979\90\10Îû\9b\ 5N\1e«ïjª\8aÃÞ\92\a¶O\8e\1a\aP%,èb¹$\9ea\9aT¸á
+ÞTÏÆã\7fcnýy÷ÿ\90\ ey\12龸þ¯úôñ¤ýÿÆÓµ\87ýÿuö¿\bèùÂqýèu\9e¥ô¨ÅáiR1]cdo¿Þ¡½W}Sº
+Ë¿\94\96jK·xA¼¥\8b   þ¿uë,\95ÏƹG\8cW\r±øÔ»,P\99Sïô4ÿ°Iÿ\80û_#¥}áýÿøñÚTü\97§ëë\ fûÿk\9dÿjW\8d\fÚQ\ 2\95\ fà$ÁÔfW\7fï*Á\8b4\ fÌ`\rÀ©I\10iû×Úm¤bà\81\92ÚØK\99Ádzש\1eA\9c7~2È)Ë\1aÅ\91]H\12¿Æ´Y\98Æ\9e_3\86½®\1fÎí»¬\9e0\00lÊç\ fÄL\9d}\18\94\ 1ë\11È,yJ`ÄLÆÿì±9\85\86\92J@Ô\]Xãë!+C-j,Í´\8bn$ ?½\9eñ\18v£(h\ 1\aþ\1d\´C*\9cßÚ>ÜÝÙm\1cîmý\9c·\11¸\80åk \1dÙâ\97\1d\94\897'\0\16åMnóÜ\8d«ÊÑ\ 2Ú9[·\Ëç5ú\9c`íh§|\9daY\f\87áR0\10\ fðøCUU*ô\9f\9f¨\14\94§\98éQÈͶ\86#ú¸}x¢:¡À»0*ò\87Á\88\96ñ6\8aý\94øMÀ©\8a\92i\86a\8f\1e G\87QS8Ú@aoëðøà\90\ 3\ e\»­¡\8fÐ\0<\18[Ç[,&F\9b·\9b07ãTå\fËy\b\8c:\93\8c\84\18\0<\ 2
+6a¦<Ä@:\95Êëgc\9dam"ÃZ&\ 3\11ª&2¬g2Ä\1f6&3<\9eÈðx2ÃÆD\86õÉ\fO&2¬Mfx:\91¡:\99áÏ\13\19V'3üG&\ 3æQ2ØC\95\8eÕÊÊéÊÒ\8a®\v\93»A?1/\87GÍ­Ã×Íç[ǵbá\86þú¹¾·wðãø9¬õèÏ£úθ`ÍË\e\19,ù¼2%7ö¶\1a¯ÆºÍ4\aÍ\81²k[\,¦m\1d×_\1fÖ\8aÇó\1a ¾\9eMT\9fM®Þ\9d¼vwòúÝÉ\8fïNÞ8³»õ\7fÿ϶Õ/ÚEµ"ýk^Çh\8e2¥_¿ú`\95ÞÚ®\15·¶ç\95u[gV^¢ÌL×öÏ[ûcD*\91H\1f\85ã\83\ 3 !êh\1f«\12\95C\8aÕò\BO·\9e 3!Ö\9fÔ\ 5믭íqò\eí\8eóVÜ\8fê\7f¾þ©:×~O\9dSµ¬ß«\96©b\8f³Å줥¹I\12£\84\7fûçn?Ãî
+%|R\8eC\\17xD\9aK\97çr»Ì\ e.uÊz\ f;kgÖî]Íì^½\14°h°mgíÖÌJ\ 1¡Ü\e9)LkÙ\ fR\81ÕF1'\91j\16Ô\v\92{x\ e¼\12{3>\ 4ÁÎ'Pôý(gï{3ôÄ\90
+7§%ï4Ýj+\vc\93u¯¾ÿòøUÍlES\9a\vÑß%\8e\14y[.Q\97o_\1eÕëû·²§n\9fï\9dÔo_o½¬ï\1foݢǷ?¾Ú=®\97ÇÄûþ;ËÿÚ\ 2\95\81z÷¥îÿ«O&ã\7foàJð ÿ\7f\1dù\7fOôlßbg-\967\9dââÎÍâÏÎbßYl\8f\8bã\87kû¿ëþï\86Cxm}qýßãµ\8d)ýß\93§\ fûÿ«Ýÿù.Ýóã¸gÝg\19FN0\89&#þ\8c\ 6þ{ñ 6HÊli\r4»®\ f\9c²uŶ\ 6\fè¾¾,\90¤AxYÑN\vt\13w\ 5n\16°\1et\9dÜ,ç\16\1e\11\ 3úµ²9Ú¬\94\8dïQ×\8b\81\19!m\15ªìñ³¹4¦¼:*\9eÁÞ\98\99÷Í*ÉG:ã¬\f\7f+´"{ÿ\93X'òØ\97Ýÿ\ekO'÷?\1dÿ\ fú¿¯øþÇ.D\1eÔCWbí\ 3\98\ 2VR#AXO\bÞ@'È        \ 6´1\1c\ 4\e@\99\14é\1eï
+\93æ\85\7fú\93ùe\ 5\r¶ßþ\ 4\8c­'è\7f$Ç+\96ã\95Èñ
+r¼Òr¼\82\1c¯X\8e\7f\ 6P}1òyçö\14]\ 5
+\G­¸xS0ô¾\81åÐ\19L[8ħX­\9c\ 1¢"SR¢Í[åç\15(\95\14;\18¨\9a\8foù%\93»\ 1ÔZþA5î\1f0(ÐÉQ-o\93\13uÃUª-\9f>nR^t°¦¡5ªÏÖ\1f3\84\86N£Ñ°\92ªv\12\ f\92\95¸f'b\9c¬´'v\1a\ f\9f\95øÔNÔ\ 3m%oØÉ2'Vêº\9dª{}dÒ\ 5\r¤ãÏ_mÞûXPÞm\14\1f\ 6\9f¼T\ 3¿\ 5¸R\ 3ùêlÑy\12#_.û§ 1UÊÉ(»­¨uÆ\17ÈFý¸¹ýjë\88þ\9b\9d\bo@\99x&\90ëÕî\8bãæîþÄ\õ§²\1c\9cLT\13Úy^=ßÂ+µ¦êÍ?Ï6\1d\87©8ÙÛ>8Ú¯Û\89½$qo:±\9f&\1eM%þ\9aV;\9dx)\89\8a·=Öþ¼\aÁK·áûw1.ûz¶\8ew\8f÷êL3ÏÖÙê³ÅÒ7\15§¶ôæèààøl©æ¨[U)/\ eþºØß\üH\7f\14nhzO^ï7Æï\v7{»ûõ\ 6\82Ò.^\9fºÉ\ e\81BA^\12ç6Ô\94tuJ\87\82*áßq\19ÕpãÒöohÚ;=Í4>«\83Å4]+.x9î0f¶Æ4ï\ 5a\ 2Ë\1dD1Cc\98GR\18Ò! ^\9eö}±{é\86EØ)N&À¦m0(Z\ f¨X\14²!DëÄ[Öì~­¥Û9x½µ»¯Ã  ·½s\18«ÂÛ"Ï:¦É\1aXs\93\82¹\80öÎ\98\9d\9f÷ºU`if.¨\8bò\99 Äé\9eÕ\1a\1eû\95¦\92ËI\8c\92\90Ýdü'\ f»Ñ×\989\18\9fæ
+\9aþ\82µå
+Öö(h^XÐ{©`ï»\92\94ç\11ÄJYl`¡,F\95ÅA9Iøk!éÙb?ùº¹Ø\93¨¼<Ùºi\89ÿ\9b*\994½³r\9a>Ì*ùbwo\ f½½O_4«]ÄïÃ\1fwöêûßU*\95ï\16?.~÷Ý=\b6d\186\90iâ47w¸÷î9Ü\8b¥¿T*\85ät¤5²ø\17Sf³,\ 4Êq\0ÍÁ«ÍÅ×I¯u*/¾yä'M\15n´+gë"\f\82xóÛR!ó¡,Jgs¶Ì\99\185Qç»VÔ\ 4\8bnö£nsµyÇò\9b"H²&'ø­*ærGfÁ«ÛOÕ3wLOs¥ì\98¹Ë\8bç\8bíñ½gzoÖLgh%J\ f\ek²-\7fC_\rÉwfÕ«VV\83ìÃæ'I\9fhè^4ezD\83ÿ ¾ùWÛ\7fµúí\7f}\e\9fòÿZ\9f¶ÿx¼ú`ÿùõô?Ú¿ëïÛ\rÛt"g8§¹ë%\ 1C3\\19r|8\92\0:\1cRE\7fæ\b \fÖ\92É®E)ç\ 3   M\99\84¼F\84±\80b²íP²uṲÕòúÈP\85\8dg\94\ 5\1a\ 4\19
+\91øÇÝ\9dãW9ºÊ%\7fà:\97È\97Ê\91+\1dÇßÒÁ1LÀVAg,â\8e\12ð[W%\97\1eúx\bL\8erü¡ÛÔWcÿ\83'6¬¬nw\9c\92\96n{eüAÿ\1a\8fM\81«öDîÅ\8f\94(a\15 B㸫À\94\vtX\1c        ã©C\97ø\1d\ 3'·®\12\0«H\aJAôu<Ía\86%ฦO·í\ eûÜöú\7fá×=m£#]4\16><xýkÕs\87\0⤮;\1c\17«"ó¨¶"6\88\92Ð\0\1c¡\882ãÞÄc\84°ñJî-ÀO\ fÚ:ôQ;ð¢\ 1Ço\88\19¯ßX<y\ 3\8e\9b #1=\1fÅ)âX\8b\ 3Qî²=\12\9b\1aé(n\1cÙcÐ\ e®¢eÊH+\9d1ë±æR¿ÊtðÙÜÆÄ\7f\9e0\18\ e9\8e\85\8bhlA\87\r¦°ÊÍ\8cò\18/dÆ\1dk}\8d×úÕ\ 5B\10ñe']®ê[UÐk\11?uEyåtc¹\ÊæÁ}\aº\18ì(19¨%¶\aZ=\92{\94Ø\9bJ\82T²aÝ\95\1e\9dÓ\82¾Ì=¢ýúÈ\98(r\9d÷¡\9fU/Æélf>j­ºj5wÏ\8aå¦\96n
\8bLW~×@\99ÖSFaep\94\93Ô\94Rbs\eÚ"¥^¥TÊTPú$Yår\19~\Zò\1aWÊã|¦[\10é¶\8ed\1c¨\v\861#Ê\pÆùì`Nͼæ¢3&\9ej´gâ\91)ºÊ\93Oÿ³)¨ÍjûA$üÏèÿ£\v÷s´ñ©÷¿µõ©÷¿Õ§\ fúÿ/#ÿ-¨w~\7f³\13×>D\17\9b\9d ×\96Xiµ¾\e^ÒÑ\93+éã¿ÑxÕÜ:9~Õl ,\99õ\r\amópw'Ç:ó·´\88\1c·ë\râ·9þÙn+§\85\9fÊ      Lü\96C\12\98j0<\85®\16ÐG9\ 6\86,dë+?læ/¼ÿGí \81z\85\18ñ¥öÿÚÚ\94ý\ fe\7fØÿ_ëþG\97\9bL K@»1@,ß»8\84\16 \ 2s\1a\ 4\85ôu\ra_GC\13\ 5\16YLú75.vª\96tVù^Ë3:¡Î\95\7fØô_mÿ\93\98MW\1c #|áó\7fcrÿ?^¯>yØÿ_mÿ÷\82nW\a\83\857\10nð@Ý:§«.\9b\88\ 4\1d      \ fÍ
+\8fn\10pðY¹×ê»4G \9fvûI\ 3\88\91ð¿«dÁÉ]W\87©KC\97UD(p^\9d\1cªBá!\84Øçßÿ±×\exqôååÿ©ý¿þ¤úàÿûµö?\1e¹á×»éäóã\1câÌÒ_kô×ãÇëôÁ(S\18g½¦ò\13ð=l^\97\7fíK\18WÎd¢\8bkL\186!dÅB0ô\ 6QÔSQ³Õóa\8açpþÂ\rþ3V\ eÚ¦¿ð\9f\87\9býçßÿ\ 2£óÅïÿkÕ\8d'Sï?\e\ fûÿë\9dÿ\87\12wA¢Zsp\ e\ 6\95\16oY\89ºf\89\bJTÄQìs Ùw\12\0Ý\8dc@:µÕ¯ÁyTI¬\8añ$áùa[Uèÿ
+U< ô#q·\1dÄ®?PyY\85yuî¥\91lÍG\81hç{    ÜkÏa,äö|WG&Î\ f\ 2\ eégªpX=^XE«\12\1e\16É\15öpn¹,ÒxÄxÞi\95}l\bÄ\1f\1c5^\v&\17î\908UÅÂ.KÉ<;Ë\89¶2ºð;1?*\99\18>\8c³\8cîO\87&fcêa\ f\1d\86ÔSQªd\85I\868Åh¿ìF\r\94­õJµòçJYSð\rt)ií\86\ 4á®F\86'ÆYý\16Ê\95±\10µã·©Û°\99Óã£â+¿åÉ\e]\18\ýE©}`Éq½,Ç\19\1c1ñðMº¯?¿),è_g4\1e%4y[\92\9ao{A¹tK\17=\81m+ ,\92n³¦\92bÙsc\1eáYÊÑßeñ4\97
+ÿr7U¿\96n©DBÌýZLÉ­%µ\81\8ez\7fÔ3o~­ä¡\87äáØkÅ\91\ 4ÑFP$é)K¸x.\9aÞ\f\9aä\ 5ü\15ÃÛ\8aß\ 3V³äiwröëÖñ¹83G\8a'\99ÛHÜ\1cá\97¦ð\ 2`eA\aÒ7Õ+y£\8au&ÿ\1c\8cäùªp\93\86-æ/ËÉ\871|§ÏØ\10^\88\9d:´yy_yDC,nüW^1ô\8c,\8fáôñú9st\1fÎÛ?´þ\8f\97?ÿ\1f¯>Ø\7fü\ 1Î\7f\13ÿ\97ÎXÚ¼àJ®>]ù\18\85u\90×Ö \1cæ\14Æ34¬A Á#®V¨\9fìî\80A\ 1\88ó\83\17\ 6¬\ 2p/\89]sÄðnØï)Af\P[£ø\82CDj\1cZJsbÏí«\12~Ârµ¼¬J­²zMb\87ëõ \96\\ 6Cõ]ß¿tÿjò|\8f ì£®säá\9aÀµ±QB\1c\ f7WVL®\95óQ7Z¡¬{täÑ\11l\1a\15õ\84/¡öz\92Ö\96P\19ÜÏ\97\87{êÝ\1a\89/\9eæýÎ\1eè×ï\1f@/©­ªg\1a<\94²Ä~m5}2\17\94SgILUÚ\ 1³R1î­*\8dbÉÎ\ 3NP\96ʪ°DN?»e]éÄw\añ\eIÜ Zùq<\9bzQÎ\84\1ca\18Ë\8e*\8e\10\85\95fY¦ô\8dsqë\ 4·\8e{¦¾ã/\88s\17\92ÔG¬àûÓAqf\15\8anh\1a}ö"¸\8aDbBè\10\15{ïãÊ\1dÅ\ù\82p¹.  \1dÅÓb\91\88çÿD\82\ 1\fã\v\93ÄK
+¿ï¨Õüs\ eÛ\89\90!è$^e\9cÊRw\11\15èh£\ 3¶d\89­\ 5\ fg\15½âQ\1f\13\ 3f²rËkOU,g¤ZÍ|´'f©l\1aÏ\8f\ 6\97ÁÕ@\93¸©\8a\8bQñt\90WùB5O}×5%\93Î\86×2ê\901\13\9b\ 6\81Σëõ»±ú~
+8Ïtô8@|ÜÁur\ f\8fÔbDÄóë=\17¶ÏxUåSþÒ»\86        xuqñ´¶4\ 6Q\80¡áO\vK§5*"íó\86§E¾\8aÆÿô'|âáÔ\9f,rd`\1d\aÍRíãZá\86jd\9bw«ªï¥¦,\1e\ 1\93D\8dhJè?++\94uÅ,\17Ý\91©\96ä\81A7\87Þ%S\95{8ÿíó¿ã9Ä\ 2HÞõ\9cä\1d×\89\82Ö¥\17\7f¾ó\7fõéú¤þïéÓêÃûÿ\979ÿ?õþ\8f»
+m¤Ìó\7f\1eoyy\1dªcNj\1aµÐqé çU\84\12Ƹ\87êý\86Ê:Þü¬tu¤ÊßÒ\ 1\a¨ÑK5+ß[ÝÚ\ 4\ 5©\r\91Ü}\1a\1aXëãDñ
+\9c[\ 4 z6\19\94,XÑSMÌËOü\85\8c\aí\8e\8e\eÚ3¥k³s?Ct[¨I³ö\19÷FWÌêÿÃ~4\1a\ e9vð\97ÔÿMÙÿl¬n<ìÿ¯§ÿË,\84äõ\8eýâ:l\ e`\0\7fmt@+ö¸V\7f\8dÂ\10J}\86¯\83f\ 2Ö\88T\89\1féâ\12Ä\9a£Úó{¡ÄÌ\86ö@©\13Èáç^/¸ªä²ä\94Ê9D
+\11\92W\872gÝ\86+Ò¼À\10@íÇ\99\10IþzèA\e¢ÍÍi¿K|Á\v\12\1c\13\15\98|S=[Ñð§ggTÄRÉì\1a+o\896\14\8d8Nx%7!ÿ%N¼\vêGÈ´¨¿å\ e\97¡7Ñdö\83AУ4¿\95¥\91u=¬AAù\84Z¶`×Õ\bU\16]¢,â`ám%1³Õ¯\81?\88X«ê\ fFôù4É      \8b\ e¹Ò±\1e\8dõ}¬\82\8d<=wö¸1Ê\ 3_\8e \82ªèZ´íæ[4èØA!\89­\15W~)¬´\8bS\1f\17¦?^L~\88V~9=-½ùeó\94þ9[:=-¿\91\9f\95¥ÓÂÊíéiõveªæÛb¡Z¼]\19N&t'?lÒ\1auýÞT\ 5§T÷Íä×Áä\87s5»øØþð]f¦Þ\1a\9e\7f¦3XS\86©Ø\ ft\f+7¦i\88\96U\87ê¯ä&n\14Uý!YURø\ 5\ 2]`%¡0j\ 1òâµ^\94éTM]Lèl\98¨\8d×õÀó9¾|2óD¿{îÓ\1aõ\81µÉ¾\ 2êÊ\8dL\80\r\9b\82ÄÓàúé_\ fê¾ÿbòÿçðýº\8fü¿º1\89ÿ½¶±þ`ÿ÷Eþ\11ÍÕÎîQ\ eñú \7fÈ%¡fX\e\ 1\8c\8e6ÿ|ØÎÿî÷\7fââC'èÄ-G\1eU£/³ÿ7V'ãÿm<yü\10ÿï\8fqÿ\17\ 6!Rà0\agJs\11å\85Â\81\9bóêV\e\ 1à®n2\8bï\97VÆuU\ 1\9f\1d\7fHLÆ\1fæM\82\1fF\91ïpZ-Ï\7f(ÇA,¦\9anE2¼Þj\90@NI$Ð\ e¼V\;xq¼-Åò¹©F\80_9ðâ9\8d\99ÔßÞèq½q¼_?6í²\1eößéüoµÃ ÿåÏÿ'3Þÿ\1eìÿ¾Úý_?f\ 1ÄÊkë¿ZëvN\7fª\15JÝÐ\e*^-rÝéÇî¹1N)èl\89m`rçá\ 4µÂåV,Ã\ 4Ç1­é:\1dG\14ù$xèÜxc\8bRl,\90#ñ<oSRÊÖ\8d¹\80\1cÓ\14à\9fÑ4\19\19RFÓ´<ÊܼZíg¿§\92äý\89FR_\93þ\01P*+Õµæ\1eæØûl\11\80?¹ÿ\9f®MÅÿ]\7f°ÿÿZïÿ¹l\ 4Nf\0Þ\99~zk6'"õJr4õ%ýàEµ\92Êïmí¿Tm¯¹S¯\8câÎ\9f\957h¾|.?·+'Ç/\1cúoÞR¤èX­{ÛÍ×õFcëe½a\17±*²J\97\13Ð@i\18¶m\ 5MCòþ\9edáÔ\9a$\ 3=}mÙ©\9ee²i~¢+s\\12s\98Ý8ÿ|Oõ>Ëjs\12\1e úøBZqõ¬VèMå\13¯vû\8bVÌd\10\ 3ùÇXF>\e¯ó_µÿ\8fê[;¯ë\9fs\8d}Jÿÿôñäþ¯®>àÿ~)ùÿ_ó\ fì|`Ä\e\86$(÷®­\0B\88\ fë    Ê\ 5\1d\fòËÑv\108\a\8664\ 1¢\8b¦:\82\10\967´1ÅÖ8\8aG\9d\ ek\9f\ 3\17X\90çר£Â\81o~\84
+\1ep'\85\7fì\1c\1cïì\1eYæµ,Æë\87\866\87\ 2¦{       \95¡ÿU+"²¤¡_3»Ò\18\80) ÚC¿Í\10\11ßÜN\87:(¤\bÉ\9føçh»±òrïàùÖ^\93~ZÑ\8b\88OÀþ×<s|CU­U\92Î$¡´­\7f¸ÛÚ¶\98]¤þ?{Oú\97H\92å~\9dü\17öK4âr´\89'e\8fµL/\ 5©2­â\ 2vµÍÐT\ 2  f\v$\9d\99hi\95ý·ï;"òàP«×.gwðWG\1aÇ\8b\17/Î÷â\1d\88¨)(".'là[\8a\92ù{J;k7Úå\89ëà\90@ò^¬µ }A\e6\eÐ\a§}c-n!\1f'*©w½\99é\f&þ1ü÷£Ð9þï\9aø.\ 2^%¾Ô\Ö^pUTÇ\81B0)\95[¦g[îA\9c\ e¨&ë\894N°ÞÔb[8«\9b¢¨ò\90xE>`&¬\95Ϧw\fs\13+f\88jÈy{Dáí\18áeld\9a\1*Rê?#Å\1a¤UlÂß\9dÈrá\85§\82c\99\1dX\9c¼[Ð[\19ÖÃå¥~*ý@\9b_n   än@ºñL»Ö\b\96\1eÔÌ\b\8ao\8e\8eËq\9f\9a\88\83çLÝ.¾¦¬\89È2~¢\81\18PÜÎ\14å\1fm@£\a\88\ 1\ 5¼h ³\9e#Ϊ\rI\82ÙíkCî\95v\88}ñä}ñ²NSâ\eí©óÿÍVûÔéM1\8a÷\9fÄ\0<\19ÿwÎÿ÷Î\9b\95ýÏëÝÿ\7f®\1f\9fVËç5ã°òS!\813-A>¿Ð\197>\16\93ÝO_\8c`32\a4Ùý©\97Óî\ 1
+y÷Öm\91ü\14\ 5ò\80Eæ@ \95\82|8|\ 6\88\89é\9a#T1@8Gp\12yPËíS´>²ò1Ϋ¥ãºQª\9e\95ë1@³\90з\1dV[)ÿÑúßÙj\9f³c¨WZÿùüÞÜûßþJÿÿõÖÿ\1a¹ôsú¾5Vº5äæPú^\vµ~Hï\1aÍù¿Gû,ôBÇ\11<w·d\ 4O2\10"{»\112ÅæاÃm\ 1(\15\v\a¸½"wz\ 2\83Q^¡\83É>Ý\94iµ'Ï\8dZ¥Z\16ÖÐ\9cÀõ\1e\8ae\8bgål¤¸ô;8@\95n\19¦\13*\93}Ö7äÐ\80ï÷]×\19ëC\eÐNÈ\10¤|¦+S&Õ\17\15¾³cv¯1Xȸ\97ø\86NëÀ{\9f9¶ý;éw\11Ý\aJ\8f|6)àôlì!\99\vàE\ fÙ\9d\14\1cg(¯scl\fù\1føïÖµ}\8bKF¢\7f¢w|:ç9\1efD\120#\87 ¥ðo\99F\ f\82-ð¤L\82\13\v»¡\8a:Gá,\10LV[\94\97       \8cG÷²m H-&H]\ 4\85\83ËqZ(²¥D\86#mÐâ\11Rm\8e8!Ç\1d\8f\ 3\1a{\98Övßf+J5åÒ\99\80h\14
\1e\e<r\ 1ï)õØ`F\8c\80       åi\1as\19Én\1c]{p\ 5\ 3   +ÇFãR´-\15\1dº»Ó\1cõ\1d\9e\15pU§0³\14L×îjÊ÷e<²æfà}=¥\85^ð¤á*0\fÁ\ 2¢»2Þ<UØZV/\83"ñX¹Ð,Y8À­×·Í¡}\ f7NQu\85"%\99\19ª¨¸´ä)ÒÂt0¼Ëi\81×E\fëc\92\96\10ÌS´\14!fÍu\86±\10»}\8a×Ñ\1dN=\19pW\85ÌEG\96\16puC6\9dA
+±½\ 6v@áJ>.\87\96\1f\9aYâ  a#¡Gô\8b{¡ÜÑ\92E\80rM{ïùwCTõR)\aÙ\14\10þ£ÎÓÓ\13Û\8b\8bÀ6A|~·w#z¦Û\85Éãê\1f\9aâj°¸ÆÔ³tî\96ny]\13¦ÔÒrmÏ\1eM\80·FÓ*Tq´BÜ\99j\9e\8a\9b¤\b5\17\84½7\1du"\1eoÿ²°)\93öR\ 52\91^÷Ö3zs½óyÝl\89Ä\92Jª¸\14¸\ 6\95°FD\8fÑ'\9e\ 4\19\16bpà.&­\98Éh\a¹x²>Åp     S×;ÐÖ\9e\85brÝ\8bNûL\18Ê@\8f¦7#A\12Ö;Ñ\9cÏÁBY7£é­¨kø\8bÚÃÂÞ§½\9bæøºõ¹sïf\10¹\8e\v\15#'\12ë\1d\8e÷\ 2ë·µþpÀ¿ÜY¸çÀïë.?éÌC\1dØ~\84¬\89Ùz\9e\80\14\177 6Å\96X\7f\10\d\80>d±Dg¶Àúh}ºÞ\9d«ö8\ 23\94\9e\8b±\10!1Òëff¾þ2,qÇ\8e\84\9d,\88\85Ñ_`â\88´Å|þ\8d\95\91\81¹ÐÐ\9fW\r\1cá>nmh-\7fH{\f\9f¥\el\82\8cªÅ¸×xÓ\ eKU|iÇ\ fm\rì^.#¥{lÍOn\8fawb¥ÛÄغ\1d¸\13n2±Ø¡2í¾¸½¢ã\80ÉTù\v\18Ëu\8b¾Ó£W#ö^PA   >\94\87í\87\83\89é\11tQö\10½\1fð¶\80Ç?\81\83\938\14&\907$\81~\98(²y\1f\11I\8d\ 2'Û´\0É3Ûĵoì¡5°ä­\ 2\1a\873½CAÛa»eL\10+t)\0=DWoä±\eÈ6¾#ËÄ\8d\88ß\ 5 \9e5î¨\0\97\87Þ\10\10Q¼7a.Õc\10P\95µXU_é\bâ°èxî@©\9c\bv´j­rtT)K³\r\83>#vï8\19øR%ÕQÇ8\81\87Ñ£\9dbÖÀy\87Ñé:¦+µ¯\8f
+=MS\10CA £OÂÁf*\12\ 4aÆo\r=Ízp\b5ó­Bâ Ið\12Ú\9cÞmXfÐäB-¹\10ÉðC\96\fJý3¼ñ>ñþ»Õ6Æ76Ü\85Ñ6ðÏà\ 1\9fòÿ¿¿¿7\17ÿqoõþójü\9f²(:\86£´ð\81\19\ 2\98\16\1fPÊ+J\1c°Më¶\v©\7fo¦84Z\13\85\9f­ÄÛ\84Öî\16FZ©MÁ°ºmø½TH$Û]\f\84¥ñ5\1eöó¶T\8f÷´¦\8cE\ 5\8br\8a\12h\94\e$±[õx\1a\96Ò§c\eo\86Ò\98*
\90ðÝ©\95Ð\1aíBòS4ãàÛ¤ül\9a^ëAk7\1e)`a\ 1¿ý[\ 1ÝcÄ\výö@\81´ ÷×\ 5¹¿Bn\93\17ä^\a¹Ã\ 5¹CÈåvG\vrGA®¿ ×\ f\vr§Ü®<À\80¹¼¶¯·¶\86[C\8en\85Ì\80\8aE@·o<]øbnbàNØËe<Oø½ç uÀXFúã\9dÚ\84    \82ÞåÕ\89Å°68ÃékêöÈbwé)\bÃYÙ\ 38\ðÚ\8d\f\ eÿS\1e\ 3èJ \1c\bÙ¥øm\ 6Ù\8e\84\17d\90²\ 3Äxx,Co8\1cå\0å\ 6qdÃ~ÑÑ}@Å\81]?¯o·1h\14_  nù\9aKÁ)\82ì\8bºQ£fåyDÆôü \ 5@ÑdV=MÀí\aÍ\95á·\99ÖQÝ Ö\8d¦ä\ 1[\18\9b\871Àà\bòó@\97k\v¯\\ f\9aBB\96ÀÏ Dg8µd\91K£x\Hì~÷6ÿö»\9d\96Ï\8bè0\1dÿ=ø}ÓëØcø\8f\14\146á[£\Nf£(ü¢Òªþiñ\8c
+ý¾92úl<\85)Tm61)k) \95³Ãª\84B÷Ô8\18J\9a\83C©IU3dÝ\a\17
\0¬´UÕoÃ\17áè\ 1\1f¨µ'?Éì\87M8¤µ¿\1c\8dÃÊ        \\1eÔ«\19$oJ¿?¹$R:Gñܤ§ý üïR[\14öÆvP\9c
\8c¢\8eîõaI(\17Bõâ\8f\ 6V.äñØÓð³^ù\19/-i\91T\99"+¶sÛ[\1cgd\rYW{4\85\19&aѬ¶ñ\91\1d=(ÁÙսΡê~½Q,ý@Ðv¶ éä}\ f9z\87cN0\87\8f\8ey¥£¬   rï\9e¯Þªº×ZP¾\10'\ fôNåhð!+J#ñ`z\1d\9d\1fµ\e\8d\89ïße"³î\býû&Ó|\86\f-ÏË$4\16û\94\8dw\87\17''x\81\9a\91 Er
+©¿ã±+þnzв\9f
+ë.®÷x\1dã´X9\99¯DÉ\85\14\1dðÿ\15\86ÍK©^\9c\18õz!¥ÿ$ô\1aZâé¿\8a]\ 5´qz\8e\84\8a\83äDe¯ë\8f\80\9fPdª\19çíêy£R=C\88:\87\15\ 6\ 6\123\8aå3èwé´\8ck\1cI÷ Í%hÒ\ 6Ñcî\87\84¥:Ý´\91º\13{bÁ\99ª\7f\14¸®7U\12\1f\93ä\9f=\99V\89ì^=·ù×­öùp:\0p¯õþ\97\9f\8bÿ´ó&¿Òÿ{Eù\7f\89Îf\96©òÜ\b4pPWEÓ$\87\f\vL\ fv£Àç7ncÕÚ%0üucv;\81ÒXL\8bìÆÑâ\ fj\13ïE·i\85Ck&40;î\19/(º\99ÅÉ\1c\83\95=\1d\88Ä    ô\ 3\ fçä'¬ý\90ÈårB\ fY@~\8d\17\85\99©\9aì\ fÚc§\8d\91\83¥\98\ 4µó\12¡\9eÞ?9¯·\98ÿËçÛ?Xwïì1\92Å{\ 5þïÍ\9bÝý9ýÿ7+ûÿ×[ÿ¤\86\ 3\93B¨Y!\ 3¾¡^\12Æ5\16$rÔà\88é]C)Ý
+\ 5Û\14ȪgõM¸\ 3{A\89Ô/?§Ädê]éö\18%g\91\9f5`ó¦pR\8f{\89Àc\0Z¨s¤b%´\89\82ÌéÇ\fV<Á/ä#<'²X\ 3ýZÕ6\86£þ=\ 5;\17l\f(0Ó\9d>E·\b\108F\9c\1f­¿\aõ\ 1Ã\99\9aª¾1î\89ÇëïB}\f\ 2ì[:Å¥\8e×/[ÃGkï@íàaP§\10c\91Ú\15àªán1\8f@Äõ\94\8c»,}J¢¯.\82ÂQÅÐ9\1403î\1c\0\84ý¢DþÿGã(\88ýGû\7fõTÿ¿{´ÿ\90³x|P\1eò\18Üj\97Þ"nM·§ß:no\ 6B×w\87¸î<8Né\ 5óQX½\14=\82/\ 4\16\875´úþ¢\19©TÔ\10íÌ\9cöì\17\92\7fEε\17$ÚÚË\11míùsüѲÏ\99Ñs\0"{F6\12\e>óèÌ=^>PÏYø\87)ñøÂ\7fåe¿\14\97f3_JðetÁð~Éê"Xe\84µx®<ouÉ\18ö×Á\8ee\92^\0\qF\13á\8cc®;\89Öé;øÑG#½×Ëh\18ºGÇ\80óXUG59ª\18\r\98ËsÙÔÞùÔ\8f\89µb\8fáæ`\8a\7f\wz\9fÐ\17ß\ 3)1¨öæÂNi!Qª^bA>
+Fâ\81EÈ)¹G¶\ 5ô\9e\0M(úæx\ 3+ 6èá&\94ÑyJ \ 2ì¹9&e\ 5|ò2ÉðÀ\9aä°Ö{\94\b"Ø+Ò±FmEò?}Çj\f\1d\83\94\97³\14\8eé,(Ú±®q\9cÜ\9c\16öü§~"\96%Pö®\7fÔûaïñJ\ 6=\b\fx\ 5i\19°\87G\13nb,\90\1d\99\ 3Ô\13\91>·=ËtÉ[\fõ®ØÇ°°\13×êÙ]_w°kw\14+\14\97\92Ù\85L\fØ2õ¤×W(æ£äÕaѬ\9a©\bI>\83ªf\94:\83r_\8dâ]µEð\83%9Y¿S.©qÐ`x\1c\ 4Õ7Ý\9c\98E­ßß æ±>\ f\83ÇÏ\91$\8dUÍQCä\9f\86º\aÇc\1fzÁ6'¬Ï&_coà30Bñ¬x;ê\ 5\94ýX! \82K\11]S>ûÛ¡\8b.?{Æ»¾!Ì^\8fEç8\90À!ã\13¼\87PÈÐ\ 5è\85\13\ 4\ 6\8a&.*¬\91\eoÕ9      md÷zÊ+-IÈÉÃ\16ns\bIÎá@à>?ÓÂ1Uó,\92²6\9bÔïGgÞ/µD¤´\9c\17Î\9b°ÔE"Z\9d\vM)x´'õ÷\88êäRV\9cêßãöcÆ\96\86ÆFù$\eTë»\90Â\9a]4¶Kiü \9fê;\ e¾ó\8aÏðï}\8aµ¨`z\93\86¡øå==I[0\99RT(ÅOߤ_\94ú\9c¢·\azô÷¤ìÔ3{7æØGÍeV\10\18SÍÏ\ 4Ü&P\1e)PÉH¹Jäü¾Z+\97\8e\8bµz\ 1À&\83ß´\18Ùq\14ã{\95$õ|Fx\f\ 1uá¯\95ZPèk¼ÿæÛü¦÷jö¿»{ûsþ\7f¶Vúÿ¯ÆÿGô#ãÏn\ 3\1c\99öP}K«?õk\87\ eÝ;õ+^\14Ô79\94\95¿hZ¼^Ór]Çm\15\12\91g¯·ê\81Ë\19öZ\89Ù
+Þt0\80M0¬2Ä+\16=\86ÍT\iú/_ÿ°êuï\ e\8fú\15Ð\8fh\b\aÑæË®ÿý|~¹ÿ¯¨ÿ\8fÝ]\8cÿ·¿\9fÿ7\91_­ÿW\1cÿ\1c¬v{\0\17,ë%ÆÿQÿo[¸ÿc\91­]|øÙÚ~³¿¿Òÿù*?ÙÜým7»Ú\1fWûÿìúg¿\10¹\17p
+ù¤ÿ\87|~výï®î\7f_çgÉèk\85Å?\9a\96Í6\ f\8aµ\92[i\19gåöö6×\87dÖU\ 6\16&#È°\8aA\8b(hbÖ\9b?{W±ÊèÖ\ 1#¾ä²Yh£fý6µ]\16e\1c\90¶ò^n7÷×os\90©\1d;·È\r\aM\8fýÐë\95¸ %¯\89Ù½FÕe\0(\8a.ðìô\96\9aÅ\8bÚ²iÏHy\80\959us(+¡÷&\8a!£àå&W\93ï+åB~o{\7f;#6\1f\ 5¨Ã1úE@·¾{³\9f\ 1\8c\8f ó\8e\ 3Ø\8enHD94ï\ 2\8a\r&Nî~\8aöl&\ 11'\13\9dHï-C#Ã\84©\10Wî¢\1f|vÉ\0\r\95\9dÛ1ñ¯¤\rÄÞ£ÑNwHfEl\107q<\14ýÜ\1dh\81Øq\80®\1a¨\f|!N¶\7f5íàØ\13\ e\18/|)6x·À¦ëüÚ\1ei8\9b5Y\90h\8d{Ù,òà\1f\14®\1f"\8dËgz \9e\7fµé;K7±eí£)~Ø~Ø\84À\99E\96\8cü\9eéIÙe·\8bþ¼æ\11\béHä%gßÎ\95>ºÓe\v_B\\14E4\83Úá`\87\84u\9dNçÎ\9dz\1e\fõfP2\13(i\ 4º\18\11L»=Ä2(¼Ù\85\1d\ f@É*/:\9cE´jP\11ò¸\ 1ìS\84¼iø5\9bÅ\0{0¸ÔoÛ\19g"ØJ´
+iÑ\94\9f¹\®%\96Ïê?0\88äKeù@ÊýÅ¿EÿLñ½¥¾`;³=Rþ@õUÄx@Òº \84åÊQGÍZ)}nFr#cÖJ/\9bžk¡F¥\aå7£u3\1aî¥=§Ka}Øø\ e¥k\81j-¥x\1cûÂËi_tþ£xß{\11.ðyü_ìüßÎï­ø¿×½ÿñø¿Ä-ð\89ûßöÎÞöÌøïïí®üÿ¾æý\ f.54þËî\81á}ðÂÇ\10\ 1wj\97ã§\18\8b\97\ 1\8fîa9Mc\9d\14hMZÉÉç\94p\a\r\15\9e#\81\82\ 1+áC¤ù!Rä\96\ 3nx>J\1eù\1dÐË\91\89!í½d\81\10\ 1ÞJçr±Mu\13Kl\ 6 3lâðÑÄ'\eÄV\8bu\ 5ËÍ\Añ¤h2n³w\8e\ f­4/«\85¹\19I\ 5~C$Qç\18_Oä#O¬8\q1\9a\9f&M@¹Çs\10Å\7f\1eW\8e\8eOà/:2Fíè¿A\aä\9b\14¹!X\88¿B\1f\vzóx\aÉ\19\f\91ìM]ù<H&è¨Ê\ 5¤w\949Ä3°\ eà-BwÅ¢¿êþ¿pZ½èù¿½\95ßz\13ßÿwvvWûÿWzÿù\86LnÐZ\0½\r²\8b2ýÏþ!\15óÉ\1d»ÌÀ\10¯;0\rtøg{é\99A\8e&ìÎÔǧ£5Q\1c\ e\ 6\19(àMn\94\aµ\9aÕC\ 3\15,©®Ãô\96?V7}L\81î\9a¬¥0\82{9\9d\18hïmã[¼/Ý\86téö¼A¶`\13\8c\89ãûäÈcâ:76ªÂË\98ñQ?$\81·\17\8fª\8d,_Ú\98egð¢M]"D>.FèJÁµèd\v\1dÜu\ 3"\8d\1dßFKwb\191\16\13;[Pͱ"\97ô£\19A\bÚì\ e\97ÝÜb4 ¹\b1\14\1aÐÇÞT2æÏÁ\84\9b\8föþ\11L\94\8aÃ\1cß²        c@\ eSPÅÂrmsè\ 5Ôæ\16ølçgü \13²gg*~\11d\93\ 5¸<6\9f3¡P\8f$¨èñË¿7;åÐ\86Ì\94NKXsÄ\1a÷ \vý\10ÒC©ã\93é#P\ eý\ eA\an0z\1aúÿf\872Nß¿Åi¡æ\19\1c\95]\9chh·ïHe>TDC=\15\9aq\14\8cW\1a5\1eWê¢^=l¼/Ö\f\ 1ßçµê\8f\95²Q\16ï.!Ó\10¥êùe\rONq\=)\eµº(\9e\95!õ¬Q«¼»hT!!Q¬CÍ\ 4e\14Ï.\85ñÓyͨ×Eµ\86VE§ç'\15\0\aðkųFŨo\88ÊYéä¢\9;Ú\10\0\82|\10\9eTN+\r(Ö¨nP³óÕDõP\9c\1aµÒ1üZ|W9©4.±EôþVi\9ca{\87Õ\9a(\8aób­Q)]\9c\14kâü¢v^­\e\ 2»V®ÔK'ÅÊ©QÎAûЦ0~4Î\1a¢~\<9YØSÆ?ÖÓw\ 6 Z|wbp[Ð×r¥f\94\1aØ¥ð«\ 4ô\ 3\1cO6DýÜ(UðÃøÉ\80\ e\15k\97\e\0\15\8dÿ¾\80B\90\89áï\8a§ä\88\ 4a`lJ\17\14ñ\ 6jÔ/ÞÕ\e\95ÆEÃ\10GÕj\19  .êFíÇJɨ¿\15'Õ:Ñì¢nlP\e\8d"5\ e@\80`P\0¾ß]Ô+DºÊ\19Ü\8cj\17dB\96\81þ¿\aâ\0\9eE¨\¦q­\9eQw\81NÕÚ%\82E:Рl\88÷Ç\ 6¤Ó`\9f\8aH\88:ЭÔ\88\16\84\16\81\8c\8dH?Å\99q\ 4÷2ã¬d`n\15ἯÔ\8d\f\8c\8e\ 5*Üðû"´zÑ@ǧ\874Z\80\19\7fFæï\ 6\8d©¨\1c\8abùÇ
+¢.\vÃ,¨Wä\9c\95\8e%Ñs_éX
+µ!È~\88,\16zj\93:\10;o\ 5ÿ®ûfÇÓ¹äØ\1e\8eéÙ]Ô\86ò`ßÇ¢\1cM\1dã«\b\ e°"¼ÛÂ\8eð=øÇò¿J\8fÈ\9a\v=.blë(O\85\91ÜФ\ev^/\88\f\9dÓ0Úà\98#?µ(\ 2+úzç°\ 6\97Î\94Ï\a¹'ÇvZ\13ý\94Ù½X\13QÀ   ñ·ÿÀðpè°Vlk\ f!^³Ì\1eì\94\ 4\8a\8b䧭\83«\83«\878\93\96Ü\86?z$\89ø\87Y\94KäÉ
+\15Äú0l±f0fà\17`Eúc\8a©dÔzËQ\v¸Ç9\8c\8egP Àc'\ 2{\1e'v«¯\9b\824d¼\10¯ö=Z\9dÉì¢p:|\11j³z+væD\89\9eÙð\9e\9c\96\v1\7fT@¾\16\97èF©\8dNBÛ\ 1·Ö\8eðmõB:¹\8dÏ\râ\9c\1d\16³Fm\9c#§;@\90\120ï9\16hBZ;´í{\8aÆ\9bY²ó#ç1A\7f    .ÞB&p\9bÁC7p;\8a:}\ 2vÔÃC£V\10o¥Ì\81¨6\80\ eÚ)¤3o%ÉáS\8d ®\8e,`\15 yà\1f¸\ f\aä\ 3\ 6è\1a$3>ádâ\8eZp\aBv9Éí\87\ 1I\93\9fÖ8éAèÖob+î\9c\86±ø¶\90N¤¸TJù(\97\10{x\aé\fÍñu.\91Q\ 1H¥ç®¥8,íy4ö( ¶´ÜB\cØ.­º°\ 3Öhâßq\a¢]ÀN¨¹¤º\11F\9e\9c\e4\99Óf³|\99\1eBªÒ[ÚdÂ\9aÄ\ 3º®¢_¥\8e\15â\ 2ón\1609ƸU\1aÍ\9d©\r\e\vÔ2]\17î\84\f\9aP\v1.ü\90Ù3«4D\98ÜæaÓ\9f¶s9 û\1cµ\1fbö¬ñ] \90ü\94¾ÏÌVi&íÖC,êůÔ@2^¹¹Ý\82\16gÒvZ\ f3Á0f0o&\7fm\15fkí¶æcXÈÏH¨Zö²\81jÐÊ¡\@2\86\1dÞôÕ\fbß \8b)µ|\82>M²¥u_\96\aÕ\ 2\1aJWXs\84\à jfuÉ]¤9\8fÒÆ<F­\94xfÁ\83\90è©y´R\eá`¥\16õ'¥Vð²H'\8bâ\9c\88
+ «q\94[òÆÇà7¹ó±m\93\93\16o\9btäV\7fHDC2sâ\ fÕD`FN\10è¬aX\91¡ãÂäX\963#ÖÞ\8cãÿñ pÏ\92ÿ\ 5\ 2Ú?åý/Ïþ¿¢ò¿í­í\95ÿ\87\95üo%ÿ[ÉÿVò¿\95üo%ÿ[ÉÿVò¿\95üï_Tþ·\12ã=%Æ{]á\9cd(ÿ1&>ñ\19\12º\19\ 1Ý)+Ñ\84:4¨»:F\85Ò¸\f\8bÅ\1f\r8\e\ fO\e\85ÄzÖð\98\1d¥JiE\8c\84Ä?AQCc\102Ú,×\9aû#ªÓ/ªÿ·\ 3ÜÞμþÇÖ\8aÿ[ñ\7f+þoÅÿ­ø¿\15ÿ·âÿVüß\8aÿû£üß×9ÎÝÿaï[\eÛ¶\91µÏ×êW`iµ\92\1cSW_¶Êª[7ÉnsN.}ëôݳkkeJ¢%Ö\14©\92\94\1dÇQ\7fû\99\19\0$HÝ(_Ò´\vçb\89\ 4\ 6À`\0<3\18\fÒ¾Þl6ÅÈ\1f,¼ #{òiÚ
\80¶c9䦠Lü\9e\9dÔ\81+\9aã«J(y\8b­Ö\82\90èO¼%ÿ\82é¤?»¸À#]\8bçÀø4ýÒ»ò/m¡+©ú#\81\ 5\8c8\15rÆð\1c\99(f¸H̦S_,/ñõ\8a\14\96w\ 3a=ðÂÔøx[µ\90FùåJ\ 1\15Nh\9c\9b¢\81\b| uÙóa\ 5ò\ 6\81\rÙG®ß·\®
+\9dP¨xq\91Ñ\95ãÏÂ8T\93¸¢\95P
+TJ\84~ÇHIñýHâF%ÔO¸3
+äé\14ÿÊI?ç\97\ 6ŵ\13aµÄ\15Ï\13^®å±V½NaÇ\92ë\16\89×°
+D%¼Ê/\8c\88\1c\1e+voðJ9<\ f7\8c«   k°ÅƳ\91\1d££øòeâ=\86\93­b\r¹\85\83î\84UúüõñÿòË©Úæ\1c\95vP\9d\13z\1f\b\8a+r\88ä\82OEø\9d§á\18ñ\96Çû\9aÎðîo\ 4X5jSEÔ²øÃ\8b74÷báõå¥Ü\92þ\17;\b\85¶Ë7³U\81W\92\f@,íÞÔµ\ 6±òyBYĵ\8f©q\ 2\9c[=.âèi\14\ 1\ f\85~XU
+R\b=¥=Ö\94\85ÇËòR¥,­\0"\ 4ãE*+\1fA©b\vñ\ 6»\91\1e\ 6½â­\92u®ò¤ÇC\97\81ø\1aB\91/$\81\16_[Á¢ýÇ
+cæR{øìVM\8e\91.ãü\93N¹¨|¯¨¥ühO\10WS\18<´ÅѨ"Ï\13\82\9eØQ\1c;.wÎ!¼\9dôfg\8b¶S6#¦¢Î\83Å[\85fâüÀM ÅÛò\ f\15õý<%\99\90èOÌü\0)³5\8eGÔ¢³ÎbâöN\19\vúõçêÇjª´Ê<æ\9fp H<\ 6äÄ+\82\8eJu \86\7f\8cg9áe¢r»\9a\1eJÙzõp\80Æ.\ 3Yq^Úý\8a\1fÁCtÕÒ\1a\ 1\v³Ï¥óÅmÜ\7fùK\94\99å^[7¡J%G\a·\19öݱÚoívgU'ó>^Ú,èm)~óT_Ç\15ãõê¥ç\91\1f~|ùöÇ\9e°\83    3Øêt\80ÑOÞB:þ»Ày\9cL¯Xôü\93\ 1¨ã\1f^Öfâ,e\12Ñ3#ká§ÅQ¤çöoÒË\ 2\ 5¢$\93\ f(6Eà\féØ;Å\85Oa«ãÌ\1aròî\9f¯^\10ªúÇØ\8eõõT´X\81±Ð0Þ·A\15\8eoñ¥Û\97"iæá1@ëbUUsÉÛ"C\aO8¦e\9fæZ\8c?  U\16;õ8\9d\9e,T`)òݺ]#m\0\e\84\1f\974¾v»Üv\9fj'\ fß\8b\95ÄÙ\7fC\93\16Rß©A\9cJ\8f($­A\bÄå>\99¾      \16­\19)ñ0/\97\8bk\92!\e\ 4íJå\13\8e \13àß4\19;\9fj¨ühc$O\8a\18\8aÈüÚ\19ÒÝÓò¾gèÈ\89\80*\99\9e\v\17e\ f\bõ\ 4\ 1ÑUb/\ 4¸\8dã`æ\92=«öÁÅÝ\10Ðc`Dî\11(â`L\8cE12å­é\82".p\1f\80\b\85#ÉRaÍoâ˾å\8e\95ØÚ(­° \81Rk9¨\9d¸âJ\95,ÍjIleÅój\83\82tÃ¥ªnÇ´DÇ\0¹\16¼*ð59yÀ7\9c`\85¹¨\18Å2úêB}\19Ebu­\8a1\87姺û±·ûÑ\ f\9c\91¹û1\98yæØv§\1fS±h?Âì3­$\8e\9ct!EQTõ´\98\14×Åë)bÄzì\82v5ÄÛàû\18\88\98b\rGm \82#}¬8\ 2c\1fµ\152\1féAF$ø«ÞnåéÓ¤\88\9f\16\9dô=WÚH(}\97üf¹Ý\14\85ó\9e\19Ôh#U\8bÝ
+¿\1dÊ\10Ñj)\89R5àæ²vïì¶\81=g\v\91È\17ݯe;\94Üå
+»ejß,\14j\9aìÌ8+~{¶d'\8b­,X4A%´±.\86ÊÝgItæ{ò6\89ó\9cáð³e\1c^ÍãZ»¶º½¿1»\1f\88éß\89\9a-å8Í     \ e_áÄbÏS\eUAJr\¼\90ÌÞ\9e\aàȽ\99ñ\9cß\9fÓf3\ f Ì\10çX2_\88\ 4(K´ç¼rbNò%³++)Å\95ÈË@^÷@×\ 6\b\8c\9dø\e¤P\1f©¢Ê\ 6ÿ\ e\81DîÜ\81·½\ 3\95F\85ý`áþ\8c\9fÕ\9eC5g\86\15¸x¤´¦xáS¶çãà\1eö{'ä+\19÷ÀÈ8ª°M\8cY^)î\89An"\14;ÞX³n­`Í
\14\8dI¶ãFÌÙ@\95ÂÛ%×\85+¦³\94Ó\89¢
+\ 2ÍÂ\82î\89OY¹Ø¨íÖ*ñ:¥¼ï\18)U\ f\93·£9Wò¸w\8dQ̼¯¥\95ì\8b\8d!  T\v«ÛS($v\87m4SöÕ7,\81(_}u72\8aå'M0\96 \1cRTJÓ/¥Ã}\8dÉéHtußÇËÙ\17ú\9b\95r׸DBTºC\vK\14Û~A\ 2æ\e:¨¤È¿T¿çÊôð)áü§\ 2ñï`¬öùeg    \^\83ÎSN]\e\ 1²¤¬@Ý=òïB4(Ar<Õ̹V\11úîÕªY\94æ
+¾÷½i:E½uµ±µ÷ü%^#\8cÎYi×,Ðf·j¢Ô\ 1T\1a\bËR8\bèB\8d++ \9b.B~y\84\0áüþ\18\1ebo¡± éö{{Ð\eûþ¥X6Ö\19\84
+ëí@P)õ*\ak8Äx\89&\12/¨_\98(\96­©ÍC¨Sj\991\aù\r°\1e°ÕrñJ`òÐ\90g\10\97ív9\17B?$§ÅâÎ\1a\93¾ômÃù}\9d_ :!Ò\85·xÕº\ eÐô\a\8dÿ\94rÔüÄñ\1f\8fö\8fZ:þãgÔÿ\81ïGµOÖÿÍú>Þÿ¬ûÿóêÿ»Æ\ 2Ý\14ÿ³uØÊ\9eÿ<Ú×þ¿¿qüÏ\14\8a¨1\94\80MÑ@\97Å\a%\ f\17\87\anØÝÝE2ðK¥¾Ç\1d4\12»8¥½\1eû®¸Ð-Ù\ e¡«\ 5ɶ\8d\81³}Ü9\89ã5[ò\8c\83³$ §Yx\97JA·´¡I  2\9e¯Æ:2äø:4ÄN)B5Ö¦\92\89\1e½¤*\9c\1f©à¦¤(\86\19wY¾\93ÖÆøÖçHú\9cn\8a\13;lñ}w¹\99ôNÙ\e@£%ùÆú¡Ü±Û\93×7ãn8dç±ÈÏ\97\9dï©\ 1QÓá½\97r\8bg;Å\8at;¥þ¨\ 3êi\89\a}\15nTtX$vÙâ5º\9fJ\ faÜÊ·\ 3;\8e\88\8e\97\ 5pçiÈ:²«\9e\1dÕ\9eû\83Ú\8f¶k[¡]û\17\bõ+`\8aù\82.,¬\8e£\89»sòâY£uP©jÀz×ù\1fÿË\1a\v\1e`þß?hfçÿýýC}ÿ\8f>ÿ¡Ï\7fèó\1fúü\87>ÿ¡Ï\7fèó\1fúüÇ\9dÏ\7f<ç[QC¾«\1c;éµ\17\9càU¨ÞîÐuÕ0O-x±áûe[^Éy\ 5éÖ\96±\90cÆå[UÒz¿Ö\17\8fï\1a¤K§\vÅÄ®ÚÆò\12÷·bYº\1c:CfÎ*)ÛwÖ#\15c­Õ\93³\0ÅÕL3Ðßí\8f\88ÿ§t§¯w7\13àöö¿F\ 3^kûßç×ÿw2\ 1n´ÿ5³ýßÜ\a\95\7f\9f\93ýOH@áÞ\16@Ah£\110åÂ*2\85\9f\8f½OÔ(\97ÉÏ'\154ÊXþ Naè\ f\1c¬¡l\1f×p¤        \8cëI\99úþpü\ e*òæä\9cïûn6Ç\81òà³±u\15»Ùãa#+\88¸¯\ 3\14w\ e\8a\9f\19\\9có°·Ãö\12\16ÈBa),ñÔl·ÄJ\17£ÎõØ\89ì=¼g}OØö*Ú¸÷\87\9dÿÅïí¬\80\eæÿ\83ÖQæþïæÁá¡\9eÿµýOÛÿ´ýOÛÿ´ýOÛÿ´ýOÛÿîlÿ{%\96\8bKûæÚ\ f\86â\8ah\17g-Ë Ö\1e×\95¸?k\ 2\148ðNV@\91÷Þ\86À\1fD\1d\96\ 4cYm\12\Rø\9ap)ö{\98\8baõÁP)ñ    \r©      óÓ\18\92\13tä°|YYοä\14a\ ef¸¾?U\ e\12\eE\91ÈP\9cðs\92\89\ fÓ\90\12>ôaqÛ\85>ÙÅã\88¸Äýì÷9ÿ\80[Øk7xÍI\80Çtdk\81õ\1d:e\ 3\87¦QP\82$LÈs{Ò·ñ¦wXË\87\85ä¦\vÈh°N\87\95\95òn¥\¼ý\15HÌ+»éè\99Ë\8c­År\99Ó<mv\99É\1a\95
++"uüZ\ÎàSdRW\<a\14ëÈ6ªÝi£+Xh<\8d\8f÷ÿ\95\87Á\9cku1§þw¯kÀ7è\7f­Ã\ 5û_ýè@ë\7f\9f\91ý¯\90×Öw²d.\16§70\90ÄÔ\9d\8dF\14)B¥N^n§»»»x°\0~uË\v÷qW\84û[\1fÏ`§mhBÓð=÷\86\ÛÄ!\88þ\8dÜðª
+êýÀ\1a\ÚQ¸X\82|\83¥Ð¤\ 1Ó¤|Æ£\ f[èT\a\8f\9dPRKÌ\98\19bÒ0¨ÐBS¦¹hÊä\84x|\86E:ü¹JF\89      1õC\87¯o\9c\88p«Ì\90 \9f\1chn#\9bÂ\vmçJ\99\92\81õ8Cµ·¦C\8d«¶×%öÌ\94ýU\9ceI\991S\16Î\1c\ 6Z\8a\91\1dw\9f\\9f\ 5;³æÚ|-\84Lª5ÜÅ\13>³©´f
+\15Ï^á0ÉÛTeo¬+gDæh\ fuÇl\84¸Ô%÷¡-BCI\83i\14û\89¢<\8ey\13@A½pF3\8aƦt\9f\83\8c\9aY̳¯ÕR
+y #t%\8f\10Çnü\19¨ä×\1eÚí'7
+\9d\8cõ\9eFð3%\ f\ fQΠ\ 1»»)\91Ì\90É~Ï\1a\16wwQÂ_Æ\r".g°O\8aÂrTy\9e\0ÂLÈ=iwAXPç'ϲ¡¿Ô\98c\1cÙ.\93È%Ø.GÅðü¹r\88\1cÔX~Ä=ã#\f\ 2}òÿß a\ 6ǽ\1f8v¨äâG¡«á\95\87AgäÓyáî\9c[Í/\82\90d\16\1aD3\0\81KÀ÷\1eν\ 4Õopú?Ï"¼óû²o\91i¨ÌÈÓpÜ'Z\84\ 3"\83\9dáÊ1¸\1c\ 5x¼[ɺ\ 4|*\eýýQ\a³VÒ,\8d\93 gziaóeýd\ 5å¥ZY)|¦øON§µ»â¿-÷ÿ\9bG\r½ÿÿ9öÿ]\14\81\rø\1fz;{ÿ[ó`_û\7f\7f^ûÿR\ 2\1eà\f\90\ 2Ä×»\0È\84{*\0\17\11abH<ù||\ 2b=âqÎ\ 1       ò&]D\89\a\82f\1eçÃ0é\1d%\99k_Ù®ù\ 6\13Æh\98ÖC\ fol¡·ì\rfàÐØ$ZP¦H,O\1cÉÇ\92È\1e*\11B\r\81&àÖ\8d\89Ï\19\91c\83\88³!¡8Ú\1cm
+\f\1c·\19\80:t\ 4oïþê\ 3Ji¶5º\1dônÀõ\9f\9c\eJy36yF\0xÛåkñ|76öüvY÷yÖ\895BCµÈ«}0ôÏ#¬ÿòÃ6\1e ë×ÿF£Q?̬ÿ\87ðL¯ÿÚÿCû\7fhÿ\ fíÿ¡ý?´ÿ\87öÿÐþ\1f\9fêüWJÏì¶;\8a:3ß\9cKêO\94\9frglò\8c£À¶½ír¶xNU\rÊ\9dw\9fçU´¯ÜY\ fxÖÁ\8dµ±¾Ë\15íuGíb%ö.\8e62ó6\9e6j´x\fñ\96Ç\11ç»\85J®uÁYV-Q\19îXB|íÔq\933q69æ\8fá\19E»÷/¸B\1f['Ð\87 3\90·ËßdDöÔ.n`OìI\1fw\ 5è²\e\9fG\16\94\14\84?O¹\8cå²\ e«?eEüô\17åúקøîÉ\13V©°Ø¡GD#\1f[A|óê)¦jt\r%l8¾Ç0ábÇÆ(\9fÞ\1aÝdgA¶í\14\8bìv\8aåò\93'ô¬¢¤I\9a}Z¤_\90\90óhéþÉÒî\17\ fyÔTªUr\13\8c\88\ 6\8cÕ«tçjõ$\8f ÜÅJdj\91¤åMY\92cM³ù\982\95f?\«JF鬤´j\87\9d\:S\fÐ\1eÜPdvè \10-W¿Ì\0Ê%-â=L\ f±\84\ e\15\10¿\ 5arm\14\9b\ 5iI\89      ÿáÒE\12\94ÞÀ\93\92Sä¢\83\8eSŸDq.µ\1fØÖe\9c\8d<Á2\8dT\ 39Ó@xã+Û¿4"(Âqb/\14Nl~\18;°É>I\Ö¸G\17Þ\ e\91î[å\9e,1úÄs¬|ü$\9d§\9böþ\8a½Ìx}zä\96Ø\v\9d\ fÀåÛ\9d¥\93hùe%=\ 1ïvçkhñÉ$\9d\ 3ä\8c\95Ó²GnfìË%\15aOX#é.^\ 4\9då\a\81\8bKÊï\16Vî7\1a$6P#üõ\84ûº\11yáËF\17Eç-;½rß½Pº`)\91¢\97«\f¾{Ô\93\8a\84\rü\0Ôñ©Ïãݪ\16cËÃÛ\93 <å¾\9dD°2\9d\91º\92dAè\14ùá,!¥\91H§Ó\16òqmŲ¼Ú=Q\96\87\1c\8c?/°\91\1c\fayü\1eZ\ 6\8b\85\8e\17è8¸\8c\ 2L¡Ã\7f\v[ÎsbÅä«KC.-°°T`âf©ñØ¡mo1E\9c\1a§ÝÅ\14\82p\9cæv¾\98\ 6ØäÞ\88\14»\15>åÐ\84£Ý(ÿsì¿°.FæÐ\8a¬-<\ 1¶ßÿo5\ e\8eôþÿçÝÿ0\9d¹xS©9\859\8cöfí°¹t+`Sü·æAæüg«Þhíkû¿¶ÿkû¿¶ÿkû¿¶ÿkû¿¶ÿkûÿ\9dìÿâî\93\12Ý=rû~^)\15
+öû)¿­xñBfÐé\8c\ 3Æào1\97\95ß`;ä\8cm\1c1v´M&´Ù\18\7ffìÏ,\8f)\ 3sT
+\15­h~>ø?¤c&fì\99i\87«ü\806áÿÖ~6þËÑAó@ã\7f\8dÿ5þ×ø_ã\7f\8dÿ5þ×ø_ãÿûãÿòã(\0\94é\90±Ã|\99\9a\89Ö@
\16\99Hkø\9a±¯·¨\9dÖ\e\1e\ 5ÿóc6\ f\81ÿ\ föë\vø¿ÑÐø_ã\7f\8dÿ5þ×ø_ã\7f\8dÿ5þ×øÿþø¿Xæ¿nË\1f*\14\95(\8f6\90\1fØ+Ú@£Åàï\96Ú@c\9fÁßb._ÿ¤¤C\ 6\7fógB×<£ÙdðwK½£ÙbÍÖ\1fLñxXÿ\9få\1aÀFÿ\9fÃzÖÿ§¾¯ý\7f4þ×ø_ã\7f\8dÿ5þ×ø_ã\7f\8dÿ\1fÈþÿ0æÿÄ-çS\1aÿµ!ÿóÁÿt:1\aúß\8cÿ\e\87Í\ 5û\7f«©ñ¿Æÿ\1aÿkü¯ñ¿Æÿ\1aÿkü¯ñÿýñ¿qá\83\12ÀúV`lP\ 3\8c\ 6c\8d\83\15àÜó=\9b\10ù?lÆ\89¬\ eV\83§Ý}\4(À\86\7f\18ü\ fË\13EL¸¿ý¿µßZ°ÿ·tüo\8dÿ5þ×ø_ã\7f\8dÿ5þ×ø_ãÿ\a²ÿw\7fÏ\e\0ù¼ÿõ\99á\87Æÿ<DZíneÜáþ§:Æÿ×ñ\9f>·þ¿Û5°\eô¿F«\91½ÿ¡Ù<Ò÷?|\92\9fÜ÷?q  x\80Û\9fâûN×ßý\94\vúùÜï´â\ eÑ\87¹Ý\89\13\97·.Ñ\e\8aͪÞ×\9a¹ýõ\13ß·´&xf·S\12·%ê\9b\87þÀó¿\88\94ºÅÝ?¹Îÿ5²÷ÿ\1d´ôýßÚþ§í\7fÚþ§í\7fÚþ§í\7fÚþ§í\7f\9fîþ\1f\ 1é×\K#ô\90»\J#.\98¹ã\954<¢þ³Lñk¯\9bY,P\14³4´?¿\9b\0\ 3û3ù\99ßÿÀÖÝ\1dÐ5*¿Ó(ø9ñÿ\ 4pIí®eloÿ«ï7tü÷Ï®ÿïfýÛ¨ÿµ\ e\8e\16ì¿Gu­ÿ}^ö?\94\80Âý,\7fHb\93Ý\8flaÏüÉ\ 4V\1e¼Íüí\94ë7»ì8\18\91º\80\9f\7f°¢1þ>\89Ю\14~.öAl`¥°hüÃKë±\\9bõoä2\}\1c+âÌ»ôükÏ\8cüKÛãwÄÓ\ 3F\ f°#is\8c.\8a\97\8a³yí\aCL\e\8emT«Åc\86\8f)¡å:V\88      è\83Ío\99\9f9.HJ\92M<\0­)î¼s¹(c*ù\99^\88Dø\M\ fH@y\93|\vYÙ©ÚUf¿·\a{²¤=\ 6L¯(ÔB{j\ 5\8d¨â\19\13\ fùÅ;È\ 2Ì0¶ ÎCS)\8b?IW\ 6\84\8cª!\84í|äú}P\96GøP~FÿG`X(\e\ 6=\ 6\15¸1á±å\85¢éâ!\8b\1ffs\85@ɵÍñÍtl{¦?\95<ãÏ\19\7fÎüx,\9c\ 3*ë/ËÀ\9f/Éз\ 6\97¦8²c\89\91\84\19ð9\7f¼¢NKò\88Z\89l\962.e½\96d\125[\9eÉu­À\\9d\97ñ\14ëhPûÖPÀ÷ëò[Ðð\11±ðÊ
+\1c\v\93ñGI-ù¸å\12\11D¡´/ð+\11ù<Æ=]ù\15xxã\159½~b+ý\ e{\97½`J\f[n\8bà\16\169<ð\8a§pµu\9frv;¥Ì½\9a\91\147¶`n£qÂèÖ3à®ã\85\91m\r±­3Ð\98\ 2\17&®áê\8203/\a/ÒÌÒ\1f:!uIj\89\ 2ÊKGáÊ2dj(\a=\98õNÅ\96øï.w?Ý\rÿ7[õ\ 3\8dÿ?ßþ\9fÀDè`ôwÔÜa\95¦efåVÐ\ 6ü\7fÐlf÷ÿ\8fZ\87\1aÿëý\1f½ÿ£÷\7fôþ\8fÞÿÑû?zÿGïÿÜÏÿ{
+\93òì=ûÈF0½³\9f­+\v>\87~\10Á¯\99çü\ 2¿`ñqá×\18Ô¶Í>â\rÆ\9a«|·\85rI\1eØSTÈ\8cý5îáB±¦ÔPÅM\8eájò\8fT\93úêP\93jM°á\94þ\80\9c\83\88Â>Ö\ 1\9eä­\f\ 6\96<ÈQ\19ä<¥?bð7/ñ¯Y«\99\838ö'¦oí³Ö~^â­CÖú:\aq\94\12êÒ\ 6\83¿9\89ï·Øþa\ eâ({Úeÿ³×ÿ¸i,\8fï_\1eÿ¿úQ#£ÿí·\9a:þ¿Öÿ´þ§õ?­ÿiýOë\7fZÿÓúßýô¿ãN#\8fR·J\91â\88\8f0:PÒ\10ý?\eÿ\8b»\7f\85æ¶I\ fØ\8cÿ³û\7f\a\1aÿkü¯ñ¿Æÿ\1aÿkü¯ñ¿Æÿ\1aÿß\ fÿ»a\1eø\9fgwÁ\r5üÿ\ fÇÿè­iF\8e;´Í±?±7(\0\eãÿï\1fdðÿa½©ã¿hü¯ñ¿Æÿ\1aÿkü¯ñ¿Æÿ\1aÿß\17ÿ³_\1fP\ 3 \9f®U¾Et\98Çà§w~ÕÊÂ\1f\14ÿ\87Sk`\9b\17ÐÆû\7f\8f\8e²öÿf]Çÿ×ø_ã\7f\8dÿ5þ×ø_ã\7f\8dÿ5þ¿7þÏ\89èÎ\bÒåÓ\15¶Q\16þ\9cC[ت\8aZ³ø\8dý\7f\94Óßë´\80\7f¿\9e=ÿ}xØ:Ðø_ã\7f\8dÿ5þ×ø_ã\7f\8dÿ5þ×øÿ\81Ï\7fÿ\9eÎx\7fÍX£¹Í\19ï}Ö8Ê{Æû?Y\8d¸»ý?ïéß\1cöÿ\83¬ÿOëèHã\7f\8dÿ5þ×ø_ã\7f\8dÿ5þ×ø_ãÿG·ÿ?\8aÙ\7feL¡mÌþÚÚÿyá\7f\19e>ß\ 1à\8dþÿÍlü\9fÃ\ 6$×ø_ã\7f\8dÿ5þ×ø_ã\7f\8dÿ5þ×øÿ>øßú`\aÑÍÌñ§¹ìþ\8dú*\90\9fºa\88\eôcÒ\1a£ÿÇ\9dÿÅ\15s\83\ 2°Ùÿ¿¹\80ÿ\ f´ý_ã\7f\8dÿ5þ×ø_ã\7f\8dÿ5þ×øÿnø\1f/¶dæ\90=ï¬\ 1técÂÏ\97â»\aß\19h¶ò\1c\1f^^\19­hü\ 6ø\1fÿ3\95ÇÛÄÿ_}ÿ\1f\0ÿÆþBüÿ#}ÿ\9bÆÿ\1aÿkü¯ñ¿Æÿ\1aÿkü¯ñÿÝð?\8a\94}áx0gr¿wq·uµÐfÅÛµ\ eòí\ e^\93=_\9d\15Ðî\\8c:\81\eÂ×ä\92ëµyí\aC\9eëÆÆebM\1e~\ f\1d\ 5¶í­IÚ\9f9.Lðù\12_Ì<:¾\9a/µÔbr%\9e\ 6öbú½ø.ôÍÅ\84öÔ
+,X|6w\ 4*yÀÐíê\87ZV»\93§BñÅéD¸ïÎÖÖ\ 5\96f?¸1AY´¼0æí\86\!\90wms|3\1dÛ\9eéOE§lh÷Ð\9fõ·ÏÕ·\ 6\97æ/3X®\87¦\15\8c\b\84lÎ%j¸\98/\8fü\8a\8aÞ5³ëZ\81¹\8eÆàÆò6µø\1eùÅí\1f\92G0§üclÇhKQ     a\1aôgî\10AÒÀr]À?\80\8d\01V\v=\98þ\12\83A\ f\9e\92±7ÅÃä\80¹ír¥p[`,\93¾?»¸\80T\1c\9a\ 3\1c¤J¼F´Ì±\1dKa;9¬7\16+
+³'3\17\8afæ+\9cö\19<\81)\1cÄ\89¹>4\83ËUÈì÷\80Ì\0\8bâp`}@røá\97\99\85×!RB\86ºdÔ\9búa§\8eà\10?%\15ëaòN\14Ì\0fÚ×=\18\1f0\13â\0áÏ CøÔ\fÔ¢\9b)L\92\113-\96î\8fwoÿçÅ\9b\93Þ³·¯_Ãj\7fò\ 2@Ô1,Õ9²\0Ô\93¹r¤þÛÛW¯\0\<ï}÷Ï\9e\92mÑîS)Àã\u$\e\11\8f\87ÿ=\85\7f_`Jð¦²\8a\8eRqIBLñ\90WÌxðÉ~o\ fà\97ç\ fü\0c\12Ðgä8|\bgC_\96\ 1P\1a\90«o\bÇ-÷Úº\ 1Mh2\ 1        \ 4)po\84Ú\ 2ÒÛ¿a\16\93^\8e«j¸\8cY¢ªÅ\¬Y\91,ÝeÄiPÒHP@î\8b·å\ f\15\9b?\ 5e\8aÊ\13b8ë\83\eø®\1ftêôâô\94\15céd¦ý\v«³¯¾bE$ÖIXÕíâÓ\8cÈ^\80"f\13\95r9¦ñ¤S¼ÝáÅ\9f&\94\9f4öÌFwn»âí\8a·;;§§m\8aãÑîvwæóJEÐ\16#¦£d\0:PC\99Ĺ`ÅôÐy\8a\13\90G/YvT%ÕÆ\8cÀ\0\93\98öº²\89Ùí\1d\ 3ùbÌ\81\1d©\ 2hxv\8a\9b\96{\9eÚ\8eKG\vE§X~õ¬\a*Lç\19\13âK\83\90\99×¼\13\9aßÔ\86öUÍ\9b¹nEd\eX [\16!3t·x\ 4\8a\1d[<J\95õuJ#­§OSD\bR!\85\r\rãÐ+Î\9aýá\12G\89ìaO° c\14o\8db\99\9eRó*ÆÎngn¬¤²©w\96\r1ê¦t¹Ðe ¾æ\87»P\12\1d\8e\ 4rg|Ò)SëV¶+Ãs9qU6ð\bØLv¹¬mê÷\18ÕfòËÙrSñR\903Ù9Êä"³.{\ 6\8dªT*iöÀ¸Ü\84\v\ 6c{pÙã\0$5\18\97ý¬\95c\8eaÖä^²*¯Lm»¹ë\8e@û^5'¤¾¾&8½\83 \9eÖ÷\1a]\98Ï\8b\bÂ\ac+\bù\93Ì<¶m\ 5\16\9aÚ\84ö\1dKIk\93+\89\8\9bG\9b\1dZ\83\82\9a\16\9fUù"\1aS*\99fiwÓ°Xªm(Ò]\12\12Yªè(D\8c\92±\vÿ*y\88d¡¼Z\17£´\vÿ*y\1a\94%³Èß,î\83yÏPàDQbÝ"\95f,\99\ f7\r\95ä\15\1av½Ñ"\85\14¨i\14ÖMµ¥shüù\86Æ/Õ\ 2Õ¹
\81º³\98\86C¸@¬£\e+ËìãÇõÜ\17f\96eóã\ 3M.w\98Uî;\9dÜw\1e\91å¯\85\ 3Y\0½\12±å®Ú\82Í¥\90{jËÓÇ\85\ÓØâü%R\11zWä\1fú¤.°Ê\9d\86æ\9dá\96\ 2\92\96\89\ e\86ÇCß³¹Îþ\fÅ\16å\9bö\96ĸcNÈ®¬À±`:b|¡ÆÇ\85\81På׫î4\82c\96Þ\96ÿ_\ 5Õ\vÖéÀ÷¶åNÇV»Ûë\96é\8b7\9bà\97ÊNg\17\9a¼¡ö\16£s\8a\85ü£VÔwYm=ßó'\16\8c¸Ø°@#\ 6ëÏÇ;\1ajR\8fÚ\1dj̯Ø\9ay\81w0 àT\9aX`¢Yà±\86He¯MUç©þDé2E\8eçK)Æz\1fè\81ìO\1df\98\ 6i\9aR[$nÇb\89p\1d$±<\85I?Ê\161ß-¿©T\16k\14\17H}ò½d/ßP\ 3nÑT\ 5Ë{è\fq\9bQYä\18_]¶ëÑÚÞº\f¡ÀÀº ãþrØÏì26çì°\13\1c\14h\99¢j\90ÀD¬±ÇB\9f\8f\17\90\9e\0\17u|Ì7\10XSî\93ò
+T\85ö_.\ 3ñ\ e¼}
+¿ÿ\12[\99ÌdÜÑ\9b'\1dÖ`À»Ø2\0ù~\86|ðFIiR"ùþ\12Þÿ\fïãg\ 4\95\9f\16\9d®\91\0¦Rq\93
+²Þf\19OtÆÙ\99\91c\99Î\ 3\ 1²Ùè_\80ó¤²5\ f]Ä"߯f39J¦\93Kg\1aw\ 5òÞ\ e\aÖ\14Ä\ 6s§sÆMàk6î\15;ÞÌ\16\8fã    |éôü3+^ª\13²\98\1d?/ÿ\9f\15Ï«Sw6r¼üÑ\7f\84ÿÏÑÑ*ÿ\7füIûÿ´\1a\8dýÃÿbÍUUØ¢líÿs×þÇmö\97oþ^\9d\fï[Æ\86ó\1f­z#Óÿ\8dÃýÖ¡öÿú\14?÷rÃZê\84Uxd\ f¬mý¯
+\8fï|µÑõêñ\1c¯\1eÛíjµÓÕã»\=¶ÃÕ
+w«Â#ûZ=º§Õ#úY=¾\97ÕãûX}\ 2\ f«Ç÷¯zhï*í       ÿ\9fêÿ_?èýMì\17\85\ f\8a¬óâ¿£æ~\vð_£Ñ<h´\0\ 6\ 2þk5\eM\8dÿ>\89ÿ¿âñ\18\8e\9f¢Çbag\87\13À9sH\8e\83Ãxß1,ì\14\ 6\93aÏ~\ fH dd\13ùâìzì\fÆÌ\9c²b\83%\9bجùÍWd \99"ªq¼\88§ææ\91É\8d°c:\85/äçNñ¶i\1aE\ק\11\7f\14\9e\8el\ f\96õA×\0B_\8cû\16¤z×+|\81\86\10\a\ 1Ím£Z-\96ËGûÌD\vSc\ e¿\ f*\15î\10ñ\85Èq\8b¿æÅ^Ôû¥ð\ 5éÚ\99\17ï\808Z\9d\99Ql\18d³2\98´#\7fñ\ 57M\99?xðúöYo^\945~Ú(Þö\9eÍ%\99w=,b\ 6ä(Yýi\9c\90\92!{²/$\ 5\9e5¢*Bþ³\80\97\v²<o[\91_\96ÿ÷.MúÂÁ>*\0\18\9bXn\ fpV º\95øaÚ¬fG\83\9aë£Ê\ fâ\10*|±¯ 'Ï)\9c´yÅJÿ>-îtK\véEÀiãß?½|Þ3àk\14àq´Òi»ïZÞe\e²|d\bïJaíߧÇæ¿zݳ'µ¯:µÒ9\94qÊÎʬ\bY\999²éCï5¬\84g\15Ö\8dÙ\ 2Ýv~=ö­\89sÎ;/ðýÈÀ\ 4¼qÀ¶+ǵGöPmß\9f\98ÒfL6\18\87qÛËL\11ô\91\13¡\ 5\12\8fËaÝ«ø½\12óa\87\9d\8cýë\10\1af\r.Ñg(°¼ÁØæh\:¬±\v¨B\b©1/\19\81\11\90~ÿâø9\r\14\85\a5\80¥µ\92¬ü\ e{g]\ 2@%Të\8fÍÉ\8d\89gt\86N\0\905ÄÚ\ 1T¶¡M\8c\e¿áE\88cñ#BZ\17\ 4\83Ŷ`\84\96\ 3ûÊFôü\97\93w\80\81,\831\f¶§a­|ú\15ëVjggÅFmÄ\9erA3¸\b\fY±'{\9dMgáxÈÌ_àÙShÒ\99gÌKì\9b\8f¬ø\ 1\vƪ`¥\93Ú\81Z\98®\1f§y¡d`Ù\1d\e¡\99)$ÅN\bPF«-LØQ(\b\8a\1d%h®u}ÉJ·Ï^??-6»O\9e<\1dø3/\82ßó\17\80Ùn¹éÔÂ)\ 3\92Tx\ 31±Õe\ 6üá\1fk\94i·Q¯3ãKxj=\9d\97¤\0\83\88\eÕ\1a
+0\f¹ÙÄcæ ÅÌ\90r\9b\11ö\9f\1f\80tx\ 1|ô\ø\8f\8dm\vXå5ëXñÞÏ?÷Âp\1có\ 1úõÅ\8f¯Ñ\10\fó\91Ô\9bä\16\88pN\83\97³pf¹î\r³\84?\1aè@}[\10\0yóB®\14ãs$\10ؤ\13\85|O¦ÊÞ%ÏÆ>\b¯ðÎ\1c[W¤b
+BÖ\14&]` z@\82\ 28\19XSÔ°ð£ã]ø$ºXÂ\18\ 4Úåº)UþÆ\9f   
+R]¬¢_¨\87Z\9c\87×\ 2¡\11ÕgPÍ!\b/V \14Ú+ªu Î¢j\97T\83¬Í \1f@6\88¹\13ú\13û\1a\99!lûUÐhF¾\ fã    X\82¶aH$ò¿Ç
+WÙkl(¯;j²¨ÿ\r@ÊAÝÅÍ%Rf)%\rO Â+F<\91üÈÃ\ 5Q\1ap8°q\84í\91\88au\ 5\15\98\1dg\±Å¶ì±k;©3\90áùyZ\91ã\8d\7f½\87­'ö\b\1ebR\8bwÞ5\16Ź3\98\ 5\ 1n<I.]À\82{#¨\84³é\14D\11\84\ 2\e\88ä®\1dhåÈ\8e\1d/\8cP4Ë|á\9eØ FìϬo\85qOÐâ\v\92éÞTD\13±\14Ïg\ 3\17RC+]nÛ¹ \1dÞ   «ì\9f¢Ú×\96\87u\16\84\ 2Û~\8f\95áö\fĘâ×(+°T\8cÐMØS\ 5\98ÚË5t \82Ö#¹?Ë\çÒ¦2\ 1¯àÉæ\88ý/þ0<½\88T\ 1  m{b\rÂ\81ë \97ÌH\102\a)~¿¼X(\13\8a
+ù¦\v\9a3`¶        \ 68\16=.¶0TQ\809;$»¡Çá¥G>\99ç¸\87Q\v\ 6µzÝ\94\82\83\98ú\9cÆ\81\98\v\90£YH,+\87\16\9a1\90Ú«g½Þ[PÁ_¾9~\85­:¯¤\ 5\ 6\87\ 1¹\9e`ÿü2spð;\13ǵ\ 2ê\9bWÇ 9¢\18\0¥× Ý¢f\rcÔ&s\9dä
+Ôg\82õ{F²vå;(971a\1a1|\8cà\90\85q\82\8d%1$0\17\v\1eÊ\15÷ù¦ç6HÅ\89Íû\8aM\91¹X£     r`\88¦67ä\9d\ e=)\b\8c£hÚ®Õ\80þ\0º­Ú·\ 3Ï\8aªÎ¤f{µ>ÈI\r-\93¸ü\99Ô1Õq4qSü8vC\7f\8f\8b\87Ð!8\96.\9cÑ,à&/\9aV\97\8aÜ^Â\11Ñ\ 6LL¼J¬`cÛ\9dâ¨n4ÍW\94\86Σ+ÛeØS\86ê\\14¼¿\8aÌæÁ!\r«\8fômæ9hyÜM{Êdû[È2}äc\17;´óLíNø&Æ\ 6\8d\a£ø­QXå\81\98)í®´hsK¬i\17¸F÷<ßëñíP\0TV0\8a\97\1d\1a\8cøpÁ\ f\9d2\11f\15õIñ¶ü#nÅ\87í\1dsw.Þ    ¼k\92/JxÚ\10{ðÇ.\1e4¸v`U¹f\91\13¹6Õ\84>%@ã\14§\86\ 6#/\1c¾_Ìë\9eòôWêÈ áwú\ 4ÊÁ·µÚé¿cG\80³Ú7\7faÕÞ¯íÎ_¿5»56Oº\9c÷\92Òáá\0ÏÞdØ-Z\ 3àý̾,R!göÙ\99±2Q·ñT$³Ö$j®H¤ô;JÜîG\12 5uz\90â¤h¨P'é\9cbyµÈ\90PTâ\f±ü͵iêqí?U\9aL\1f³\8c\rö\9f\83\83æaÆþÓhéøÏ¿\99ýgGù¡³ç\BðÐ\97Ø-éß°ÿFv°ÿ¶\0\96\ 3¼û\vqçÛ¡Ýw,¯ê\a£o0£J\ar\7f\87s%¿0ÔçÛ^\ 4¿¹?\ 1i\ 6öÄ\86ß±µ        \97r\98«Ai-À*\ e3ò÷o_¿\98\93À\82\8ei÷g#\16;}¡íæöù\8bï~úûÜ`\1dfx¾Á\14·!J3      G@¤Ñ6\r\83ÏÞ\9e\8bF§ä»\rú0,E\9e;Gj\90|^¤Å\9f[Y\fRm©X#öç\81º\18È\19\ e{\ 5T%ôì\10¶e æOgQµZ-X³\bÞ Nø\93L\ 3õã\9fè\9c.i.\80,&7\ 2±\90\ 24u¹\8a\a\930WB¸aA2Ò±ÃB¬¨ßþëù[Ðí\7f\9c§\94jRL\ 6\813\8dø¹!\99¨ö׿öv«tÎYz   \91       \81\15T\15[X¼-ÞòÜí¨\1dP¦Ú\1cÚ\83zï¢ÒÎSfi\15/F0á÷ð`ð)\9dKí¢\19.YAb{\9eáÙQ»øüíëã\97o\f\96çç,µ\f\19\bãÚÅïß\9e¼Ë\97})\91ð&l\17ß\9e¼9~ý¸3\11¾[
+\8dy\89\e@ÆÝ\88 qª]üéäÅ\8f÷h\ e'ròÓó·½-(e\88(\1dSËÏä5Dò3y\r\91üL^C$?\937\12ÉÃä\\8cÝÄ\9e|D6°'\1f\91\rìÙ\86ÈJö|B\9e(D\96ñg{"KøsW")þ¬\9cÙ¶\18:k\88l1?­&²Åü´\89H®ù)\17\14ûüÝzW"IÓ\92\85ÑOå\97\9e)=¾~vâ%w<¯\15\9d\9aº\ 6\8b\158\95}G¬³ä\9eN\8bv\86 ­×\85ÌÑ;À\f\ 1\99¤s¶ê\bE\16\18\88z¥³¯\ 3  Y°°Pôª"7á\87Ì\81
+Úã\8b\v\f>\84 h6ô\ 1åÚ®+0Ó\9fÐKÞPEOm»°]"êìüJ\92 ¡æùôzx\8e8ó×$/\87\9b\83!\96÷{Òÿ\ 4þ®=®þ·:þ\9fôÿMé\7f\87\87­ÿb\aZÿû\84ý?Å\r\7f©\9d\99bcí\ eÞÞÛö\7f£Õ¨\1f¥û¿\89\7f´þÿ[Å\7fÄMg4ÚÓ±&g2uíÄ_\14ÔS\10\14E\8d\97;°¨ÂAî=Ú\10a@"\9d\916Âø\86\13\93ÿ«\15\8eO\e{Ín\95±\97\11³ÜÐOr\85HÃbK¥Ò\8cü\11\1d¢\95e\v\8b\ 1\83±å\8dl¾_>\8bÏq\0­Å*\93¾.SàÁ0Ë\95ï°FPA?\1a\93\897\14qnx>\87×\8d\87\rá»5¸/ë\8b\r\824¥Ø'w¡|:ý#*Ç\e\84's"\9bï×á^\8b}qA[\80´\97\81Åð\9c\ en­°ïl:/Ôç»\92áµ\13\ 1o\81\8e®a\85\94ÕPm\ 57     \ 1¹ûqáÞð~öü+Ûe\17\15Í0&JÈ.`X`3Cö\92Y\13f¡'-Å"|\8cX ÊþÌ#\14\80\87Ä\0
+¾ýñ\9f½ï\8eO^@k\ 5sâ3\87´ßÎÝ\9dx_÷ÓÆ*\90V.¼+\84      9\8a;Í´Ã7|\1c.}ÏÅæqø\83[\89Îжj°\14L\1d±SF&º\15ã\1dw\9dq\8c\9dDö5\1e`{m\r\8e\83h<\vN\e]\92\e\90»ç\8e\1dÙÁi³KƽìT\82ÅÅd¾C\1a'0xí\v(N\b§ð%Gr\13ËqQÞÑïý´\853Æ»%\14C2M:\13ö½\1dFÜåýÄ\9eFö¤\ f_\9aõF\93\aÓ\84*¶ånãõõu\15ý\ 3ú\ eÌ[ø   w\19ëµúQ\r§'3=ÿÐ#9EÐö#\10k&Ä\86Ô`X4-;r¼ÁeµoãºÚ\8b\90\ 2fj¥k\0­D³imâZ¤3\84µÆ×_\1fÕ&á¨^o6\ fEY)\93êCü\107\16\8e\804\15\16&«AìMï$Ç\ 3
+M',íÅ.ö¸s,N\ 5£÷\ 4v\10z?]ãùH/Ây\15ÃOzèK`_áæ<Mv´%>\ 3
+A\88>!\80Ð\87ÐÓ42I\ 6\81èÐ\9aX#\1ae\ eÍÙÂÍ\9fF#Z]É\85F©&ïé\1fb¿~¬ö\bëÀgk \89\8e7Âd\9b>. \8b\9cÎ\82©\1fÚ{´\9ay\ 3w6ä\87\18&\13; s¦Ö\14ZÇO©\84{|¢\aÊ´=éDô=HN}Øø\f(]\80þââä?ëÿ,\1c<ÒG6ÐO p¸        \9c\87\ fnpO\1e\98f\0\8b\94\9f\1d\11î4ÐZô·´C\e\94»\93È÷t\12\84\96\e\9cîÈ5$À½ï(&\8eÁ£$\ 3Ñ?\ 2Ó,2\b*aÉ\83\17{|°3k\80Ñ;\{8âG¢ù\b\16\892\87N®e\8c8t\83\1eì\14`\91XY±ª\81ýË\f\ 6\8d\bêܬò]_<ÀËuGôd#XA\8d\ 3R0æ\1c\ f\16³\89\15 \13\1e,[ál0æ½¢2\bç\92\14\8f0iß\960`\91\rT\81V\95\ f\ 2~\ 6Gõ_B÷\81+\1eçÎ\12U$ÑD\ 1\12uM\9d\9b©>Æ0~\8cå&å4±\97,\8a\140RY\r7-\85\ f\1eÑT\9cmO­èü\88¸ú¨c\14Qq¯U\93¹WLÜÆ£°K 8\ e,j\8bë%¹\9cÐN\8cm\ 5\ 3r\182Ù 
+\óï¸h\89@\11\8fÀ®\18\1cç\81ÒbÓ^\84\0é¥×.\91¦ç\84=\81\9f:\1d\vSQ7zË\v
+íhñ©âça\9cy\1c\8ds\7f\f\91àÌC+O\1czc\rm^¥u\84ÓÀ\9cS&«Ñ\aè¸*º¶\9a\18\bU>°\ 6\ 3À\ eüѼ\90lßåác\ 1)\98oò¥\ 5åkxiß°Ò¿ÿ^Ê\97ã1\ 48\83¥\84\8fÖ#\bä
\8a\9fàÈU\ 6rñö\87\7f<o\1fÏkÉð\8dEz\858p\1d0y!¤úÞ\ 536¹\84ÔtÖáv\13µöx¾ÝH¢x\85é¡´\13\92§®¿D¯ä;»\ 3f\1e¿äsáß^¾z¡dR\94\Xê®\1c\7f\16Òî±âò\84Ï\17ÚüöÕóÅf§\1a\8eÙxã\92
+à³\ 2/\1dO\9cZÁ0)5nv)LU\9eWB.¸Ä\93Ðù`w¨B'/ÿÅ[#¿\888\96ñ×âBFzÏë\10 \7fk¬©x\18«&i¼\88/d¯ì\95dòÎD\13ÂÖþ¸9[\12¹\87;­o\12Wk8LO¿Âã*\fÈùí¶ñå\97ÅÒ\99WB\96c\15¦9ª\80\87:6\95»tF~\88\15`©X>JwÇ}ild\89±¼7sdLõçÊi$æ\89\b<:ÏÅÿôªµ=ó\97L\1a\92û¹Äô±{E\8aÀJîÇ        ¶å2\ 5\9cB1ß\81ñ\938\rÉÙ\12ã\ 1óSò\bºèp\ fé\ 2 i'ã\8d\1fúéÅ\99;åâmæÑé·Ý93r.4F¥\90¢\9f¦¼âÕÚ\12\92\f@»°Ã\83\ 5Á\8c\96ÌQè»UØr]Ê)ÂùÑ\96v¤üÝïÿ\8c\9cÈ´ßG\81\15>ȦOnÿÏÆQ³¾\9fÙÿ;\84Çzÿç\93ìÿ í\13\94O<ãøà\17\92ÐÝ#|k\9f\fû,kufÏ|Ô:h\91\14\1e\8a8['¢ÈÊÂH
+\8fƳ>Ùg¯\1c´üP°vEh+ÜPóà\r8æfÉ\84´¼ÐëØÅ\8d,ö÷\1f_¾>~õü%¯i\98®ª5
+\9c\89å\ e\9dÊãTîeb¬\ f\97±w÷n¬L²^¸þ5\ 6r\96\9d´\84FßïÃz;ð¯kK2<J»A\85ìAY2èw/\9c\81¦\1e\86\1737uδ\8cÇJv¦ÎÔÆmµYØÞ©ÏÙ7¬Î*\95\8c\83Ko\ 2Ù­\91\8dqð#Ü\1dr(\16\8f\1f:¤¶$\a)\92@\87±¿I\1c\96p\1e×+²F=\8aj\939\ 6c¿\9fòóJC{à¢\89Ì´X\9c\96\1f=\91ß\10.\14\17\15£Xîá!«Þ4ðG\815\11§\8b\ 3<Z\8dÕ\84ábâé^\13\9e\0\9f1\96\90\15uJÆ\97ex\80¤*F\89\1aÐ\ eSQæ\8dùNü¢6\17G/V16}\8a¦w-\féÖÈäñ{°mñW~à\12PYq\17Ïå'mLxÄ\9b\91\9bMjrz§>x\ 4fáÙÝåÜ¢7wd\17¯\8eÊ1åI\86\16'|\13\e´¿\vþÕänòj>\8a\14¿\1d?¡.\16¢Ûß\aCem×pT&ùíXÚ\9f\8d~\1fÜD×ÂÕ\8c\84·¿\1d\ fÃY\1fôº\99kçfa&GA\84LW\9f!#s°1ÎÅøº\19\aW\101z\9bó\12°êN\9c\89I«ÌI?Ìð'Û¬\84E|¿87\7fÔäüä©ò 'gð<O"W_ZoJqÜ\87Ù]Y«¡òCy\92aFª\rÄ \84\b\ 1uKN\Ê\b¹¡â¦\*\9b\1eM"\95Ò­éîñÏóÒ)YI°ÂN\14vK\90%&m_@c£\rtM\93"\15\9e:#\ f\ fwS\9c\ 4:-í¢\13\0\9d\9e\7f¿\9c¼\88ö·\81~\9b7»½Øí%\95ÔÌËQQ×=å\e\e\18Ó\97ªÄ(gW!5´\ 1»Ú&ïûMuSFv{\11Ù,R\8dåy\13áô¨h/\9d\16\16É\ 3ÔÚDX\82´v\ 6¬*ĸ\1a\90\19T\83Y\80ý\ 5ï:Åä³pYÃM2\94nq1C<î\8e\99?\8dztþ;['óYªZ¬m~\13ß楼ØmÓ+~TØ\84q!)\94Äé¾N½ \1cÅæÕQÎb\97\ 5ÑôÁgeb\90\91%RïåCq\8d\97úS\9aM\87PF\9bÿR\14¬R*iº¼Þ\90ôà¾\8d§ÒãX\16ò°}ü nѪ£Õk\87÷\15\f\17\81#üj/þ
+\83<\1cû×qÜ\10ñ8=\1aaÆ»\886\8ae007È|*=´;2s\ f\92ð\97\99\15\98\13èR\vòrA¾p<'\1c·'v\80\ e³\ 2«Ó1S4 KYá¼}dá¦\ 6.²&]\8eÚq·É\97/Û»s³\88\1d\87~}é\1cÄJñJef\&çÁò\v¼Võñ\ 2#\97Hä2=­TØpEX*r¼\f¥ÀEYÂz-Ë9d9V\93´0?\880/U\92ï#Í [iAÎ!Ȩ¡j\19~\10\19ÎZ%î(¾\1fèÖ\ e(!±q·wá\ f\14ÑÞ-¡\97_`Æ\fæ5\8cõ³viêOyø¡ø\99¢.     \15\89\85\18ÿJxÏ
+\17\1a\0éRl\85ÎÔ.\r\9dpêZ7B]L"§ã^@\92\18t\9bv\89~Iúò]JÍ\ 1rôU\ 6l"×e\8a\8b%¤-\9d)ÖCâ|ñ\93LJ¨ùjÚJ³8\84n\97\148-Þ\10,m\97ø\80\90<"\17[á^Ëk\88ûþ\b6\1d\8fû¯¥ëÍ\81e\ e*\v£\r½Ä-< ÃïÜ\13y%]±Ì\ 3\8b\ 3\eûÕ\8aqTº|9\83*      ãE*\9d\12äTI\84\13@¦%3\10®à¦]J6(ä³\98\97¤µ'\12¿Ó\
+\9a¾3\b\93ZM]$d\rM\fæj\92\81Çt}\7f\9a\b\10qÊ$\99l\97TK\81\90SÜ-¹²=\86ÊPB×µa #iú Uí8\86\1aÏ¢t?Ýã\8a\82\82'pö\84\8f,\89
+é-ü\9a׸ÞÜÒÐ.¡edjE\91\1dp¿\ f\fÌÊßÅ)½\v¿]"\1a\14ÄÑêã!\ 5\1eö-Þßù¿ö\9eõ¿m\eÉïú+°\92®\96\1c\9c4\ f·ê^\12Û\89oÓ8çÇ涶Ö?J\82\1c­eI\15Å8nìýÛw\1e\0\bR¤DJJ\9a\ fm,\82\83\19\0\ 3Ì\fæ¡i¥A7\f¡æ`\ eCtÇÒû\10ýF^\8f&·êËps\7fÐ\19â° Ï8§\99s)«lxUyrâ\8f\0müßôu\94j4\19úØ%®Oo"G\8c¾
+ÑÓþnfÄ\86­~\ f\86    õÖ5uç\8a\15".ïB&¤"èlÃ
+|\18¹ÖäS°\83{i: b\1dõV-\14\7f\80>µÆÒbb΢\ 3\93{a|\vþ\1fÆ»\87ê\fÂ\84\85Ë»\81Ìöÿx\Çwaÿ\8f'\8f¶òú?ßFü/e|uÆCØ\1a¦C\81\91\9b÷{\18ÅÛä¼
+\81\8b¯ÚÃ1à\89\8d \81-\88\81ªú9F\12\15\ 1<Î;ÊB\ flO\18\9f3\96FbUQ\85\1c\\86]\9f¾ã0ÃÃ÷o\85;\1eÃ&\7f%oé$h߶)ªs<ô/ùÈ¡z\8a:~\v¥³ÕDz\ 2~§èF°r°\1c\ 2\86y7T \96\ 5\94R"Ö\1e\ e\14H\13p¬RÂS\95\0\9a£Çøù/-èÌâsÝ^E~ÝXYÍfÔõ9{ÜÔ(¹ý!\f±:ç{\1eCãw\e\9cAüÚ½Biq,\83 4\8aª\803n½E\99\94×\83\1f-jci\99Q n\ 1·kâ\ 4\17\8a4\1a\94
+é¶Æw]¼\v­J½\18)4\e\84 \15Å=\80\ eõqÏ@`\b*õ*Iïnoà\19¬iZ\7fõ¥
+ ¯lW)Wx¿Cå\96ÜAHFÕàTÐ]À.üè\80ÕXlÃÌ\93\12_\ 3\9d\80/È!óñµ\80ñÏ\89øþóTT\10ÎKÔu\86,\95\9d2Ï{½k¿?q\a\92v\8e*\ 5b¶tæi5Ï:\92\ fV·;µ\1f\b\ fk\12s~bB\18\ 5+2<à>\a\86µñ¼ÙÛ?aÜB#g¤: ÔÃ\80À\e\90¾\8dT%¡\13µgª>72®¤(|¥ª\10\96t\aW\13\9c\80=4ªÜ\96j\0¨àvÊÀ\1a\10g#Äõ|U0¤îßÀB<ÜK,\93Fa»m7\88\reþÇh\13\8a\80\8b\8aÙ\83?\7fñÍ"±\ 5
\8d"Ñ dµµI컩(D\ 4\f¨\0\91%hü#åF°\82»\994;\ 3B\10\90\1cI\96`e{\87É\1a\8f±È.|Ð\ec^\ 4\ ec4Éï1"\17Ôw\18"\957\1c·u\99t\8cYG\17¯\97u\13ÒIõ½\8e\ eÞ¾º8Þ{~ôÒ.\14»\7fxúv\97\85\95Yi\1dh\9aQ\11Dâx§Rå\100âÜ\94þíèºÁÓ[\ 4ì\1cTgNEj\ 28"\93\97\88\17]#\ 6¤J2\82É«P\ 6êQ\95\85OhY >.Q "hX\1aà\12$\16ì\893§KLéåâÉ\ e#øÚ:á\8a0N\1c[¢ö|8Ã~ëK<J\0S\826B\87\ 3ä·ñÀR|¯zh\9a\ 2®Ps¤\v\ ep\15mf8«\1cw\86\89x{8w2\b3½ÊÒL\ 6%sÇÂ\ 3Ú¦f\9d\19ZÒ¤y\ 2\ 1"4?Yæ\86G?v~PüÌ2/\ 4jÖÜd\99\17\ 2¶Ìܼzsøâ\ 5þ½ÿæù«ã\8c<\129\8ey;léÓTE3\aç~Ìè\13¸ø\190;(\99\84\1dà9  lG\ 2¬ÚL\83¡~\ 5\18·ô4í÷ÝK/nùËO£AÚ1\ e\987Ýúÿc¤r\99ÚÎo\Ï\84vÁF|\13¤o~\87yJ0wË\bøË\e\ e(GËÍ\a\98\17¿Õï\91Ñ\86â\ 1Ôñ\8b\e3¥%    åa!al,[È\81\94u\10dxú¾-:C¬¨^\r%`A      {kë\19®\13Â\fM_xh\7fìah<@yå÷:C\18ø\ 1"&\aÊèF\16Ä\8eJ;\80ȼ8Þ\ 5\v`.EÅ\93J2¨¢\9dVËí,æÀ²8{ØÄ,\14\94j\ 3°ù\1fwàcÑU,%Áì\13Â\86LÏí\89Nâ` hCf½¶U«o\18Û-¦d\92p°a>\ f\96¸Çr\ 4»\85{©òJ`N(\94%uá&\95íúìQ\93ËÏ !\rÐêÈ\11H\87p\10ôoé\84Ä\85\aÀè<¤©<û¾\89#t\frÀ¿ÄÛ\9aø\eü\ 3KÚ IS¤tý1I%\1dù\11Æe$;ØÝôønL\83\83\9f`½àùq\0â¯×öYBý;Wä\0\0\98ø$ܧ\9d\v+\87Ì\0\18\18\10I\8d\13\9få\ 6\17\ 4g¹yZ\7fj2êXÉqXw\83­âRÖ\ 6r²©¦ÒÛ¤©ÙÄÖ\8fTëHìÅ\186\8dÛ±ï\81:Óß4\13°9òáÏíú÷øå÷ñ_zþÀ½ò©0v\92Î\88_?\8eÿ\1a+{ø}÷_I\85µW\9eÿ#6\89ÏÖ³)\1e\8fKõS\8f.\8aøFS\v\19.\1e½tâ\9b\84\97\12\88©!\8d\14-_F\1aS½$\17\92\16Y\v\88\9aåjI³²1§ ô\9cjÒ   \88¤¬(Í\18¤.n=\8d\v\ 3X¶°4\ 1I(-­\bL*/½\7f\80\eãüúÑÔÅ2\15¤\95ùjv\19éØ\1aÒt\12¯®\8c4òÉT!i±X!iÜÜÓ\96\92\16óJI#b\8b\16\93\16\91\0k\ 5å¤qÛ±\vJ\8bÅ
+J\ 3\98ô%¥ÅÌ\92Ò8à+(*\r@\98¶U\94\95¦y\8b+,-\16(,\8dyÖf\94\96^ùy·zy<\ Ì\18:VÝQ!­5£±Öºl(ÓÀF÷²AZé\ 6j¨k\85,\8a\ 1)55\8c°ÂØXë­}\81Ñæë\1885~\ 1^¿éu.ådõCm\92o$\89p\8e?Òy\81\12\9b´$\bë\85\99\91IC{w7¯eËïbzËù\r\95\94\19\1ce¡ì2\89\r\9bÁ*HE8i\89¥¶éÈ¥¦\19\bV©µf\fßÜ&Øe!È»u.Ï\9e¯Í\ 4h7}±6\ fðÊ9æ«äæ*\14<9\19\8e\ 4£6ÚAKQá7\10¡¹jѾ ýÉ\1d\83À\85\99AIÈy/U5Ù¡(jkp\91s@Ó½\fJ\8f\8aÅ1&\9bMw     \9a\91R\8e\ 1 §²+R}P4\18³ô½\98¶¥²é<\b\12®\`\19aÓª)\1cù«Ø²\13Ô`AÉ\92Øõ¯¯ocn½Ã\9f\ 5®\19\89Ej±±v«ñ8Ó5\12f\1a{
+x\90\1a(\ 2K9Å\8e\81\e\87\83àE\83z¹/\18Ü\8eØs'¦\87 þ%U¶V\959åxâq^)2úµµõÒcó{ùÅéþ>Õ7\ba7\1cwH£p`.\1dº8 \15r\86QýÛÞ?\8e1\ fÑÙÙ\ eAßi6£\99~âi1\ 1ô\94k\ f\94ô®Ãh\12\9dü3°°õ"\ 6\9b`<\ eõM\84u¦à¢ì\r>\ e¯dì\94\15tÍÑ\8cK
+k\91¶6éëVëI·Ýzò¬ëv\9e<{â>ÚÚzò¤%[n÷q÷\91|ä>{Ø~ÖyZ\7füpsÆEuéM}»®ñ        säÓ\1fcØ4í\8f\86Ä)-|Ë!U<\89\vC:\14\97U\8d\83\85¸´\9a\8e`V£¨3(TÖ5zË+ì\ 4eY\95}\ 6:)ÕöÕb¤¯Q\14¨Lª{\92ÖnÑ\98¤¹§YrZ±7d&é÷\19T{CgTÃ_H¹×\84®HÁ'X ä¯FÅW\98í­@É'PJÑ_\Íç=(¬ê/¦è\13¤\90²¿\98ªÏt\85ÔýE\94}\rfJáÏ®î\13¨X\95?£ÂO\80\92\94þô*?\81\99§öÏTú\99"\94\eÑV§ò      ü\bçº\11!7Ä@Ê\ es¯q%@©EÝG\1aÑ\11\b¢Q(v\ e\a\f²ÿ\1cÔò\KØpvD\97cÀûª\96Õ4f YÑ       ½&~únÛÎôãÔ\8d$\96(u\90\93\eÕU\8f\95?\90\1c¼<å\føT\93\1f ±§ïV\8b÷;¥ÊÅú\1d^ß9ëwµ±\ fª\97ì\8fîj\94y[Ç\98\7fÐ¥ÄX +\96\15\1age\82Þ,¢tf\a«DÅ3ôü\17Eê÷%Ý\16:ü%!Uþ\1c\ 1w_Zß¹ßÜÙ\14÷â\aÁ¿¡H(Z~¯\ fãEb\9b\rä»ï"´Ó\87J¸ã6\9cùѤxÖABzpL@\8eÊÇ\fT;pVù:Ë\94´c\85\98\98\ 4¼jYq21Aæ/.\94\11\9c¨zÎ\95ó\ 2n4Ú§>äÊj\ 1 ¢\ 1TËÅ\92\ 3\11ì\98¼\1fÅ\rZÒU\ eükwD˨f¾¯A\e8¯:\98õa|WC×\ 4ëO\7fDéª1bK©¨w5R¯#¿V\13È«\85ê\83\93ëï\ 5\8dG\83\87ål{£ü¹Dÿ¼o\ 6Z\b9\Iæ¤ÎÐ$ÿçÑÆó»\10\8d\0\v\96\95ÕIÓ¹\8f\86\84U\82\95{\87\eCug=\1a\1a\16      Ù\9a\96\84ÕÏÔÂHµ.,\0ÅY(\98\98±©wëÕ¸ßM{Ò\87Té:\1f4\9e\89\1a@«ãi\15᧧1Ú@Ú\1f©4^ \8aζ\rE,H\17¦Õ\ 5·ºÀ¥pÁ®x\17r¨s\88Îú\82üF,Å°`é,\ 3\98\1c_Z\ 5\9a\8c\17n9\19 ¨'è|\12äÓç³Þ\1fôµÇ¡vAe\9f#¼-Çá\1d«\ 2\ eè°º \8aHWF\1a)Ot-û©\ 4·¿i½\19\8f\1dýÏ¿4R`\18ÎòÍÿ¥\12\85D)×\1dA\997$%ߨÒPT(ëJÊ\91úÎÕù\1c\8c\10Û\19ú­þ­#½¶;\ 2ÒàHs-\95¿fõ:gr\1aÚ0\10BT\93\7f©X\ fúL\91\86Öó"\9eÈ´ýè¡ïߪþ\91\9e\11\95\8c\vQ<?/
\ 1\8f¢LÅ<Ð]¢x^)\92fS<¯\167\14 ª£Åª!j\ 4m´>\ 1° é94Î@õ\85\1a¸Fù3Sº¹Y)]WÏÎ\9bg\95êÝùùú_K?þôï\7f67ÏÏË???yùú><>û=ôí\80\99\1a\99è6k0\81/²ZZj\98L\1d³\1eú\eÙ\90*WU\81R\87Ç\ 5eÐE\15Ý.»ìÚ:ðѯÆ\8b|2\1c\17yM\92\88:\8d:>Wª\91TT\1dKw Î£]\19ùCz8ä×£\ 3é\96â4@ÃB\f\90Cº]d­
+\bµé\ 6\93\1cóTv¥+@K5<«\1cU+¥rÊK\88êzùsÊùº_oÞWÃS±K\82$GµQa¸ÀÁ\8e\96Ly\ eö\17è\9cóI\ 1£°\15\10ívÄÙÖÆÜO¥wA\81·\17£¾ï53\8d\18\7fØ(\97æ¶Ì\ 2\8f\10i\94+\95´\1f\88\a¢.ªÕL}xî [\1f\ e÷\11\9aµ\83\89Á½Fþêà     ?\19êÍ)Ëh(ë       ÀbîàEq#õÎ\8a\81¼òv¨,)t\ e\ ep+\1evSôS[\9e\15ÅPASxF1T1\ 6\vàv£\fù½\ 1è=ä.H\16V`û¢?*\9a×dR¥\16:Ù{)-Y\8bÍ\90ÙÜ{\13í\81ªÀt$\86¼*ãOZ\98YèFÉù÷¡<\86h\fÄ5ä.2\906åÊxÿþ`÷ÕÞ       *\883/´¢\1a£HEu#-vQõoµÐ\89öä\8a\1c³.\eçJ¼,ÌÙ2R))\80e:øG¨ZCºØCZ¹:¾äÆËÓ£ãÃ#\10XJ\8cÌ=ÓÊw\1cF\9f±»V¢uÒ½\99\88èBQP1²\8c§"Aâ)t\ 6³\88\8c¨\ 2¨\8b¥ø ^\8e\ e«èª\1a!ÎömOö;è\ 3o\9cßË?¿Ø{uðV    Eê{û4P\9b¾ \80x\84\81G¢ñ/Æ0ª@ÆS\9fã\ra:y\85L?<_6wî\80~\9®ò\8bR   DÏÔ²ReÞ\88\95JÕ{+í\ e\11GÇ5\ f\84>\8d­\\9a\83\ e½çax fÉ$<'êóèµß\83F¥Xf(eä\86ô\8b¡Xµ\163*IT\15þ\92n\8cYUòèÂ\87Uõ#Q¼\1eì`]\974ûHQ\\97°ñçù¢Ö=õA¥\85\9c+̬³½µ\85ë\94z=\15壽woþÁHî}¢<ª:õgß\8a\ 2LÜpÖmc§.n\92b£2n%j»R
\aÙ¾R7îA\1c!ª²úx\8b        ¶Cõ\91j;b,eO\17C+   \86¯J º×¸­ª:+c\8cÑ\90ÞÄ\vnÜê5X#ðE\9fb|\9cË üb^nÃKÞª\80½\81ýJÁêç\ 6\ fk\ 1êJ¼Ñ\95\8a§\83\16\95.\1f`«1Õ÷=\axÕg\85üÁ@píI&B\85\88|Ô&\86x@\1aØ{¼6GÔH \ 3EÈí\90Å+Ð_a5¡(ò\86\89Ò\9a\16\1a\83Í\rT\10ùü©o\ 6      G\95«I\e¹\8fnÎH½ÓÚ\9e\ 1\ 1\88÷úf\18+A\82\ e\13(i.èÔ¼b\9c̤ª\89Q\9c¯;ÿ?\85®\85PA\98×*3®:T\90\11\86¦\13È\86\9f\83¯Õ'º\1dkdê\94\8b,\fd\9f¸õ@¿\97¬\11Â\97õðn\8fl7mï´-õÄDzçÐE\99Ò°\94å¼\94ÌTVìê\1f\99­¦\ 3e3s\15\8dÄWà«£t|5^\90¯h\8b^\1d[\1d\1a§c+Õ¾\ 1ÔjJ\91­ÆQ¶:Z\9a­ÆóØ*îÊ`%\8c\158K\86øê\85$\r«ß»B\96F©è\97ã×x\ 5\87\17>l ¥q·¼\94ØË)¤\90[\95É9\12¼Ã\10\ 1\1cæ(\99¶Ý¦\16.\ 3{%á©¡³o\867ìcqçÉpd!akY(»½=$'³zT\95Rs®{¸\1c"-0\ 4*3Ùµä\9c)\14ßÆVÖén,ÕIí\89¡\12\91½ÂêöÄy\93\17ò\10M\9aÆ\82mB¦iTÊÑ\17\9f@\1e^Ri\8d<\96u\ 2Q1       ìþñÓYþ¬-\9dõæý|­6roBS\94\80q°$Ø)\88\14\94ád\ 2¯f¯
+{fVº.\8c³ræû!M'/#\13E-\94¸-:þ\98=\e£=\9b.\83Óñ$ê\14æM\<Mii\92\1fi`»éð%ci&Q\9b\96Wr¥\1at4ßì\80Ë×>GµgV`°Í`\a\8aÀ
+N®E ±=m\1eHÔp³\81E\93ï|°NJ°\81\11\14áñ\1f\ 4Û\85æ~     Û¾±ê³«¬·\90q_\88ç*á\0à°U\88Z\11fØjS\ euÍê`\91I\9f\81\8cr_^ȼÍ3p\90v\83à\19%FÌF\8dY\14Ùi\87¹9á\80\ f]þädþ\ e ®¼k"\1de,\92 ¥6°#kû4\1aq3Z¨K©ì\82ÖÀ8°ú·ã­a¯C&»\ 1ÞÒÒ\97;¡V ^ìj|±\9dYÌé\10\b\9bÕA\1d9E/\8f´áNÁ\ 5d(7G(é±Ñ\et7ó¯\98\185ÇÑ\16)}:ëÃyþ\8c\9c¥£¾ÙLu«\1c8:¤\1f\99\ 2\9eäÙ\96´\9c©çå½r  \ 5u\91[£/»f\8eÝ@o¶&\9d¬¤É\10\87ýÎ\ 5\bÖ\91u\7f¢î°AÎ\19÷äGÊ4\11´K\15\95\ 4\e\17e\87\b#\f*õÏèæ§EA£bÎ\13KÃ`\1e¥ç\15\13Ö÷\95ø%Í\987\ 2\9d,`°9\ 3ð\ 5\98%\18\9aÅ\18&Ûi\9aÈ\r©ûb\98\8b\8eÍ\eÂ÷\14·ºh \19þî<z$ñ£`Õ³Ñ$ÍJ\99â\9e\88HCÐ\17Ûó3ÜR\86w©\ÿÊõ¯\ÿÊõ¯\19[ÄWÖÀ\96S¾æ4\vS\16Ѿ´»\fk_\85\85Üe²«aèR\90\89m\97\ e4\91)ñkÝò­Ñ7ªª=xðçSÕR\1fE\99\8c\97YXKës ÆYë-Y\9fKm£Q þDÚ\ÀR\7f"mn+µ\86\96Úò\81º\19g\8bfXñÚ\19]RþNÜöÿR3\9b>\11¾ Í¬$\9cu\a£Zå\ e:Pþ ¼\ fN\8f\12xR\ 4ý\8eØþAðßÎÄmy\ e·\1côúÔ²åz½¶3ìvA\18¢¦\0\f@~ì]ï\88î¤\81iB½\9bƶ\98\1f9)|Ùú/\8f¿¿Øë`±\9få\v½,Tÿek»¾\1d­ÿ²ýèñ\93¼þËW©ÿb­dXȼ\12\8f©ðÔÞî\ 1pEáúªÓ\e\vg$Ê¿ì\1e\9eì\1e\1cm\8eýÁ&Va\17\91\1a\8e\8e+$­$Ïö\1f¥_øJ\9a_ZU\ f\8bòÚm{\8e7pGÞ\87áD8ÿ+\9c\fn\8aèé\89\9eIÔ Ò~ûQÚ\86\ fÓ6Ü\9eßðº\8dø\17í¸Ï\92\b^\ 3÷\16ñ¿ÅàåÇ\9eÕ\rÑ^¬ZßvAOÁ\83\83¯ã1\1c\9cÚ\90\86Ê\ 4w«=³ü@çA?SMÎ*7Õz³      »$z&|.\84Ñ;ÆH8UÌ\9eóe`\19Uàf\8dò\99\18úT\1d¹
+£FC¬\9f\8b©Èq+æõÓ\bkmð\8ai\84\16
+\83pʯ\ f\8fO\9còéÁîÔÇ \17\8b\1f\7fÜ;Ü\17\89²Zu¥¿PM"ïCA~\92m\83Iñ¼üßÅÂ\1eeL\88\0\8bX<ød \84ð\v\9c!\12\91\16ª~º½Ð\9f-8¤¯Ì/ìØAñº÷\14:|Q((¿\14\ 6      Ã\15¤# 
+vB6lìJ rÞr\ 2\13^lí~\ ffâ¯\85éÙ¶^Oϵ"äù\9b\93½£·ÏOö.4I\91\91\b\13\´`\16­øtÆ\89\1c+ø^á?ýÕ=\1e\88\1c¯ü÷\83ãÓçoòznù\93\93\93\93\93\93\93\93\93\93\93\93\93\93\93?_ùù\ fñ+ v\08\ 4\0
\ No newline at end of file
diff --git a/.zsh/zsh-syntax-highlighting b/.zsh/zsh-syntax-highlighting
new file mode 160000 (submodule)
index 0000000..a086205
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit a0862053f57e3d8d6e0dbc34e55be13d9e4fb668
diff --git a/.zsh/zshenv b/.zsh/zshenv
new file mode 100644 (file)
index 0000000..b531cfd
--- /dev/null
@@ -0,0 +1,85 @@
+# -*- mode: sh;-*-
+############
+#
+# .zshenv
+# Written by Joerg Jaspert <joerg@debian.org>
+#
+############
+
+# We (may) use those variables wherever, so fill them now.
+# Avoids calling the processes all the time we need em.
+OSNAME=`uname -s`
+USER=${USER:-`whoami`}
+UID=${UID:-`id -u`}
+# :r strips "extension" (a . followed by 0 or more characters)
+HOST=$HOST:r:r
+HOST=${HOST:-$(hostname -s)}
+DOMAIN=${DOMAIN:-$(hostname -d 2>&-)}
+[ "$DOMAIN" = "" -o "$DOMAIN" = "localdomain" -o "$DOMAIN" = "(none)" ] && DOMAIN=$(grep "^search " /etc/resolv.conf | cut -d' ' -f2)
+
+[ -f /etc/debian_version ] && DISTRI="Debian"
+
+DEBUG=${DEBUG:-no}
+
+# Path to search for autoloadable functions.
+fpath=( $HOME/.zsh/functions $HOME/zsh "$fpath[@]" )
+# Only unique entries please.
+typeset -U fpath
+export fpath
+
+# Include function path in script path so that we can run them even
+# though a subshell may not know about functions.
+# PATH should already be exported, but in case not. . .
+path=(
+    lala
+    "$HOME/bin"
+    /usr/local/bin
+    /bin
+    /usr/bin
+    /srv/qa.debian.org/mia
+    /usr/X11/bin
+    /usr/bin/X11
+    /usr/local/X11/bin
+    /usr/local/games
+    /usr/games
+    /usr/lib/nagios/plugins
+    "$fpath[@]"
+    "$path[@]"
+    "$PATH[@]"
+)
+if [ "`id -u`" = "0" ] || ! [ -x /usr/bin/id ]; then
+    path=(
+        "$path[@]"
+        /usr/local/sbin
+        /usr/sbin
+        /sbin
+    )
+fi
+
+# Only unique entries please.
+typeset -U path
+# Remove entries that don't exist on this system.  Just for sanity's
+# sake more than anything.
+path=( ${^path}(N-/) )
+
+export PATH USER HOST DOMAIN UID
+
+# Now that FPATH is set correctly, do autoloaded functions.
+# autoload all functions in $FPATH - that is, all files in
+# each component of the array $fpath.  If there are none, feed the list
+# it prints into /dev/null.
+for paths in "$fpath[@]"; do
+    autoload -U "$paths"/*(N:t) >/dev/null
+done
+unset paths
+
+# Command to use when redirecting from/to a null command.
+# READNULLCMD is redefined in .zshrc for interactive shells.
+READNULLCMD=cat
+NULLCMD=cat
+
+# Unix groups: remember the original group ID.  (For prompts.)
+if [[ ${+ORIGGID} -eq 0 ]]; then
+    export ORIGGID="$GID"
+fi
+
diff --git a/.zshenv b/.zshenv
new file mode 100644 (file)
index 0000000..f081346
--- /dev/null
+++ b/.zshenv
@@ -0,0 +1,11 @@
+############
+#
+# .zshenv
+# Written by Joerg Jaspert <joerg@debian.org>
+#
+############
+ZDOTDIR=${ZDOTDIR:-"${HOME}/.zsh"}
+[ -r "${ZDOTDIR}/zshenv" ] && . "${ZDOTDIR}/zshenv"
+
+# Don't do anything more in here, do everything inside
+# $ZDOTDIR!