From 4a692e37d2bb7de65bd4393466c371d6b211e6a9 Mon Sep 17 00:00:00 2001
From: Julien Bonjean <julien@bonjean.info>
Date: Fri, 1 May 2009 11:31:13 -0400
Subject: [PATCH] [#1161] Added build system scripts

---
 tools/build-system/README                     |  42 ++
 tools/build-system/automatic-build-machine.sh |  24 +
 tools/build-system/bin/git-dch                | 404 +++++++++++++++++
 tools/build-system/gpg/setup-gpg.sh           |  56 +++
 tools/build-system/launch-build-machine.sh    | 425 ++++++++++++++++++
 .../packages/git-buildpackage_0.4.45_all.deb  | Bin 0 -> 62098 bytes
 .../remote/build-package-ubuntu.sh            | 175 ++++++++
 .../build-system/remote/update-repository.sh  |  74 +++
 tools/build-system/send-emails.sh             |  40 ++
 9 files changed, 1240 insertions(+)
 create mode 100644 tools/build-system/README
 create mode 100755 tools/build-system/automatic-build-machine.sh
 create mode 100755 tools/build-system/bin/git-dch
 create mode 100755 tools/build-system/gpg/setup-gpg.sh
 create mode 100755 tools/build-system/launch-build-machine.sh
 create mode 100644 tools/build-system/packages/git-buildpackage_0.4.45_all.deb
 create mode 100755 tools/build-system/remote/build-package-ubuntu.sh
 create mode 100755 tools/build-system/remote/update-repository.sh
 create mode 100755 tools/build-system/send-emails.sh

diff --git a/tools/build-system/README b/tools/build-system/README
new file mode 100644
index 0000000000..c12a4bbfc4
--- /dev/null
+++ b/tools/build-system/README
@@ -0,0 +1,42 @@
+# register image
+VBoxManage registerimage disk VDI/ubuntu-9.04.vdi -type normal
+
+# check registration
+VBoxManage showvdiinfo VDI/ubuntu-9.04.vdi
+
+# create VM
+VBoxManage createvm -name "ubuntu-9.04" -register
+
+# check vm creation
+VBoxManage list vms
+
+# update configuration
+VBoxManage modifyvm "ubuntu-9.04" -hda "VDI/ubuntu-9.04.vdi" -memory "1024MB" -acpi on -nic1 nat
+
+#si 64 bits
+# VBoxManage modifyvm ubuntu-9.04-64 --ostype Ubuntu_64
+# VBoxManage modifyvm ubuntu-9.04-64 --hwvirtex on
+
+VBoxManage setextradata "ubuntu-9.04" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
+VBoxManage setextradata "ubuntu-9.04" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 50001
+VBoxManage setextradata "ubuntu-9.04" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
+
+# start vm
+VBoxHeadless -startvm "ubuntu-9.04" -p 50000
+
+# install ssh support
+sudo apt-get install openssh-server
+
+# add office-srv-01 sflphone user ssh key in authorized_keys of vm
+ssh -o LogLevel=ERROR -o CheckHostIP=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 50001 sflphone@127.0.0.1 "mkdir ~/.ssh/"
+scp -o LogLevel=ERROR -o CheckHostIP=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -P 50001 /home/projects/sflphone/.ssh/id_dsa.pub sflphone@127.0.0.1:~/.ssh/authorized_keys
+ssh -o LogLevel=ERROR -o CheckHostIP=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 50001 sflphone@127.0.0.1 "chmod 0600 ~/.ssh/authorized_keys"
+
+# si nécessaire
+# scp -o LogLevel=ERROR -o CheckHostIP=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -P 50001 /home/projects/sflphone/build-system/git-buildpackage_0.4.45_all.deb sflphone@127.0.0.1:
+
+# update /etc/sudoers
+sflphone ALL = NOPASSWD: /sbin/shutdown, /usr/bin/apt-get, /usr/bin/dpkg
+
+# stop vm
+VBoxManage controlvm "ubuntu-9-04" poweroff
diff --git a/tools/build-system/automatic-build-machine.sh b/tools/build-system/automatic-build-machine.sh
new file mode 100755
index 0000000000..66882c3569
--- /dev/null
+++ b/tools/build-system/automatic-build-machine.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+#####################################################
+# File Name: send-emails.sh
+#
+# Purpose :
+#
+# Author: Julien Bonjean (julien@bonjean.info) 
+#
+# Creation Date: 2009-04-20
+# Last Modified:
+#####################################################
+
+TAG=`date +%Y-%m-%d`
+ROOT_DIR="/home/projects/sflphone"
+SCRIPTS_DIR="${ROOT_DIR}/build-system"
+
+cd ${SCRIPTS_DIR}
+
+${SCRIPTS_DIR}/launch-build-machine.sh $*
+
+${SCRIPTS_DIR}/send-emails.sh $?
+
+exit 0
+
diff --git a/tools/build-system/bin/git-dch b/tools/build-system/bin/git-dch
new file mode 100755
index 0000000000..f9ee5bc56f
--- /dev/null
+++ b/tools/build-system/bin/git-dch
@@ -0,0 +1,404 @@
+#!/usr/bin/python -u
+# vim: set fileencoding=utf-8 :
+#
+# (C) 2007,2008 Guido Guenther <agx@sigxcpu.org>
+#    This program is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+"""Generate Debian changelog entries from git commit messages"""
+
+import sys
+import re
+import os.path
+import shutil
+import subprocess
+import gbp.command_wrappers as gbpc
+from gbp.git_utils import (GitRepositoryError, GitRepository, build_tag)
+from gbp.config import GbpOptionParser, GbpOptionGroup
+from gbp.errors import GbpError
+from gbp.deb_utils import parse_changelog
+from gbp.command_wrappers import (Command, CommandExecFailed)
+
+snapshot_re = re.compile("\s*\*\* SNAPSHOT build @(?P<commit>[a-z0-9]+)\s+\*\*")
+author_re = re.compile('Author: (?P<author>.*) <(?P<email>.*)>')
+bug_r = r'(?:bug)?\#?\s?\d+'
+bug_re = re.compile(bug_r, re.I)
+
+def system(cmd):
+    try:
+        Command(cmd, shell=True)()
+    except CommandExecFailed:
+        raise GbpError
+
+
+def escape_commit(msg):
+    return msg.replace('"','\\\"').replace("$","\$").replace("`","\`")
+
+
+def spawn_dch(msg='', author=None, email=None, newversion=False, version=None, release=False, distribution=None):
+    distopt = ""
+    versionopt = ""
+    env = ""
+
+    if newversion:
+        if version:
+            versionopt = '--newversion=%s' % version
+        else:
+            versionopt = '-i'
+    elif release:
+        versionopt = "--release"
+        msg = None
+
+    if author and email:
+        env = """DEBFULLNAME="%s" DEBEMAIL="%s" """ % (author, email)
+
+    if distribution:
+        distopt = "--distribution=%s" % distribution
+
+    cmd = '%(env)s dch --no-auto-nmu  %(distopt)s %(versionopt)s ' % locals()
+    if type(msg) == type(''):
+        cmd += '"%s"' % escape_commit(msg)
+    system(cmd)
+
+
+def add_changelog_entry(msg, author, email):
+    "add aa single changelog entry"
+    spawn_dch(msg=msg, author=author, email=email)
+
+
+def add_changelog_section(msg, distribution, author=None, email=None, version=None):
+    "add a new changelog section"
+    spawn_dch(msg=msg, newversion= True, version=version, author=author, email=email, distribution=distribution)
+
+
+def fixup_trailer(repo, git_author=False):
+    """fixup the changelog trailer's comitter and email address - it might
+    otherwise point to the last git committer instead of the person creating
+    the changelog"""
+    author = email = None
+    if git_author:
+        try: author = repo.get_config('user.name')
+        except KeyError: pass
+
+        try: email = repo.get_config('user.email')
+        except KeyError: pass
+
+    spawn_dch(msg='', author=author, email=email)
+
+
+def head_commit():
+    """get the full sha1 of the last commit on HEAD"""
+    commit = subprocess.Popen([ 'git', 'log', 'HEAD^..' ], stdout=subprocess.PIPE).stdout
+    sha = commit.readline().split()[-1]
+    return sha
+
+
+def snapshot_version(version):
+    """
+    get the current release and snapshot version
+    Format is <debian-version>~<release>.gbp<short-commit-id>
+    """
+    try:
+        (release, suffix) = version.rsplit('~', 1)
+        (snapshot, commit)  = suffix.split('.', 1)
+        if not commit.startswith('gbp'):
+            raise ValueError
+        else:
+            snapshot = int(snapshot)
+    except ValueError: # not a snapshot release
+        release = version
+        snapshot = 0
+    return release, snapshot
+
+
+def mangle_changelog(changelog, cp, snapshot=''):
+    """
+    Mangle changelog to either add or remove snapshot markers
+
+    @param snapshot: SHA1 if snapshot header should be added/maintained, empty if it should be removed
+    @type  snapshot: str
+    """
+    try:
+        tmpfile = '%s.%s' % (changelog, snapshot)
+        cw = file(tmpfile, 'w')
+        cr = file(changelog, 'r')
+
+        cr.readline() # skip version and empty line
+        cr.readline()
+        print >>cw, "%(Source)s (%(MangledVersion)s) %(Distribution)s; urgency=%(urgency)s\n" % cp
+
+        line = cr.readline()
+        if snapshot_re.match(line):
+            cr.readline() # consume the empty line after the snapshot header
+            line = ''
+
+        if snapshot:
+            print >>cw, "  ** SNAPSHOT build @%s **\n" % snapshot
+
+        if line:
+            print >>cw, line.rstrip()
+        shutil.copyfileobj(cr, cw)
+        cw.close()
+        cr.close()
+        os.unlink(changelog)
+        os.rename(tmpfile, changelog)
+    except OSError, e:
+        raise GbpError, "Error mangling changelog %s" % e
+
+
+def do_release(changelog, cp):
+    "remove the snapshot header and set the distribution"
+    (release, snapshot) = snapshot_version(cp['Version'])
+    if snapshot:
+        cp['MangledVersion'] = release
+        mangle_changelog(changelog, cp)
+    # <julien.bonjean@savoirfairelinux.com>
+    # prevent doing a release
+    # spawn_dch(release=True)
+
+
+def do_snapshot(changelog, next_snapshot):
+    """
+    Add new snapshot banner to most recent changelog section. The next snapshot
+    number is calculated by eval()'ing next_snapshot
+    """
+    # commit = head_commit()
+
+    cp = parse_changelog(changelog)
+
+    # <julien.bonjean@savoirfairelinux.com>
+    # clean version before generate snapshot
+    version=cp['Version']
+    try:
+        (release, suffix) = version.rsplit('~', 1)
+    except:
+        pass
+    try:
+        (snapshot, commit)  = suffix.split('.', 1) 
+	stripped = str(int(snapshot))
+    except:
+	version=release
+    commit = head_commit()
+
+    (release, snapshot) = snapshot_version(version)
+    snapshot = int(eval(next_snapshot))
+
+    suffix = "%d.gbp%s" % (snapshot, "".join(commit[0:6]))
+    cp['MangledVersion'] = "%s~%s" % (release, suffix)
+
+    mangle_changelog(changelog, cp, commit)
+    return snapshot, commit
+
+
+def get_author(commit):
+    """get the author from a commit message"""
+    for line in commit:
+        m = author_re.match(line)
+        if m:
+            return m.group('author'), m.group('email')
+
+
+def parse_commit(repo, commitid, options):
+    """parse a commit and return message and author"""
+    msg = ''
+    thanks = ''
+    closes = ''
+    bugs = {}
+    bts_closes = re.compile(r'(?P<bts>%s):\s+%s' % (options.meta_closes, bug_r), re.I)
+
+    commit = repo.show(commitid)
+    author, email = get_author(commit)
+    if not author:
+        raise GbpError, "can't parse author of commit %s" % commit
+    for line in commit:
+        if line.startswith('    '): # commit body
+            line = line[4:]
+            m = bts_closes.match(line)
+            if m:
+                bug_nums = [ bug.strip() for bug in bug_re.findall(line, re.I) ]
+                try:
+                    bugs[m.group('bts')] += bug_nums
+                except KeyError:
+                    bugs[m.group('bts')] = bug_nums
+            elif line.startswith('Thanks: '):
+                thanks = line.split(' ', 1)[1].strip()
+            else: # normal commit message
+                if options.short and msg:
+                    continue
+                elif line.strip(): # don't add all whitespace lines
+                    msg += line
+        # start of diff output:
+        elif line.startswith('diff '):
+            break
+    if options.meta:
+        for bts in bugs:
+            closes += '(%s: %s) ' % (bts, ', '.join(bugs[bts]))
+        if thanks:
+            thanks = '- thanks to %s' % thanks
+        msg += closes + thanks
+    if options.idlen:
+        msg = "[%s] " % commitid[0:options.idlen] + msg
+    return msg, (author, email)
+
+
+def shortlog_to_dch(repo, commits, options):
+    """convert the changes in git shortlog format to debian changelog format"""
+    author = 'Unknown'
+
+    for commit in commits:
+        msg, (author, email) = parse_commit(repo, commit, options)
+        add_changelog_entry(msg, author, email)
+
+
+def guess_snapshot_commit(cp):
+    """guess the last commit documented in the changelog from the snapshot banner"""
+    sr = re.search(snapshot_re, cp['Changes'])
+    if sr:
+        return sr.group('commit')
+
+
+def main(argv):
+    ret = 0
+    changelog = 'debian/changelog'
+    until = 'HEAD'
+    found_snapshot_header = False
+    first_commit = None
+
+    parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix='',
+                             usage='%prog [options] paths')
+    range_group = GbpOptionGroup(parser, "commit range options", "which commits to add to the changelog")
+    version_group = GbpOptionGroup(parser, "release & version number options", "what version number and release to use")
+    commit_group = GbpOptionGroup(parser, "commit message formatting", "howto format the changelog entries")
+    naming_group = GbpOptionGroup(parser, "branch and tag naming", "branch names and tag formats")
+    parser.add_option_group(range_group)
+    parser.add_option_group(version_group)
+    parser.add_option_group(commit_group)
+    parser.add_option_group(naming_group)
+
+    naming_group.add_config_file_option(option_name="debian-branch", dest="debian_branch")
+    naming_group.add_config_file_option(option_name="upstream-tag", dest="upstream_tag")
+    naming_group.add_config_file_option(option_name="debian-tag", dest="debian_tag")
+    naming_group.add_config_file_option(option_name="snapshot-number", dest="snapshot_number",
+                      help="expression to determine the next snapshot number, default is '%(snapshot-number)s'")
+    parser.add_config_file_option(option_name="git-log", dest="git_log",
+                      help="options to pass to git-log, default is '%(git-log)s'")
+    parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False,
+                      help="verbose command execution")
+    range_group.add_option("-s", "--since", dest="since", help="commit to start from (e.g. HEAD^^^, debian/0.4.3)")
+    range_group.add_option("-a", "--auto", action="store_true", dest="auto", default=False,
+                      help="autocomplete changelog from last snapshot or tag")
+    version_group.add_option("-R", "--release", action="store_true", dest="release", default=False,
+                      help="mark as release")
+    version_group.add_option("-S", "--snapshot", action="store_true", dest="snapshot", default=False,
+                      help="mark as snapshot build")
+    version_group.add_option("-N", "--new-version", dest="new_version",
+                      help="use this as base for the new version number")
+    version_group.add_config_file_option(option_name="git-author", dest="git_author", action="store_true")
+    version_group.add_config_file_option(option_name="no-git-author", dest="git_author", action="store_false")
+    commit_group.add_config_file_option(option_name="meta", dest="meta",
+                      help="parse meta tags in commit messages, default is '%(meta)s'", action="store_true")
+    commit_group.add_config_file_option(option_name="meta-closes", dest="meta_closes",
+                      help="Meta tags for the bts close commands, default is '%(meta-closes)s'")
+    commit_group.add_option("--full", action="store_false", dest="short", default=True,
+                      help="include the full commit message instead of only the first line")
+    commit_group.add_config_file_option(option_name="id-length", dest="idlen",
+                      help="include N digits of the commit id in the changelog entry, default is '%(id-length)s'",
+                      type="int", metavar="N")
+    (options, args) = parser.parse_args(argv[1:])
+
+    if options.snapshot and options.release:
+        parser.error("'--snapshot' and '--release' are incompatible options")
+
+    if options.since and options.auto:
+        parser.error("'--since' and '--auto' are incompatible options")
+
+    try:
+        if options.verbose:
+            gbpc.Command.verbose = True
+
+        try:
+            repo = GitRepository('.')
+        except GitRepositoryError:
+            raise GbpError, "%s is not a git repository" % (os.path.abspath('.'))
+
+        branch = repo.get_branch()
+        if options.debian_branch != branch:
+            print >>sys.stderr, "You are not on branch '%s' but on '%s'" % (options.debian_branch, branch)
+            raise GbpError, "Use --debian-branch to set the branch to pick changes from"
+
+        cp = parse_changelog(changelog)
+
+        if options.since:
+            since = options.since
+        else:
+            since = ''
+            if options.auto:
+                since = guess_snapshot_commit(cp)
+                if since:
+                    print "Continuing from commit '%s'" % since
+                    found_snapshot_header = True
+                else:
+                    print "Couldn't find snapshot header, using version info"
+            if not since:
+                since = build_tag(options.debian_tag, cp['Version'])
+
+        if args:
+            print "Only looking for changes on '%s'" % " ".join(args)
+        commits = repo.commits(since, until, " ".join(args), options.git_log.split(" "))
+
+        # add a new changelog section if:
+        if cp['Distribution'] != "UNRELEASED" and not found_snapshot_header and commits:
+            # the last version was a release and we have pending commits
+            add_section = True
+        elif options.new_version or not found_snapshot_header:
+            # the user wants to force a new version or switch to snapshot mode
+            add_section = True
+        else:
+            add_section = False
+
+        if add_section:
+            if commits:
+                first_commit = commits[0]
+                commits = commits[1:]
+                commit_msg, (commit_author, commit_email) = parse_commit(repo, first_commit, options)
+            else:
+                commit_msg = "UNRELEASED"
+                commit_author = None
+                commit_email = None
+            add_changelog_section(distribution="UNRELEASED", msg=commit_msg,
+                                  version=options.new_version, author=commit_author,
+                                  email=commit_email)
+
+        if commits:
+            shortlog_to_dch(repo, commits, options)
+            fixup_trailer(repo, git_author=options.git_author)
+        elif not first_commit:
+            print "No changes detected from %s to %s." % (since, until)
+
+        if options.release:
+            do_release(changelog, cp)
+        elif options.snapshot:
+            (snap, version) = do_snapshot(changelog, options.snapshot_number)
+            print "Changelog has been prepared for snapshot #%d at %s" % (snap, version)
+
+    except (GbpError, GitRepositoryError), err:
+        if len(err.__str__()):
+            print >>sys.stderr, err
+        ret = 1
+    return ret
+
+if __name__ == "__main__":
+    sys.exit(main(sys.argv))
+
+# vim:et:ts=4:sw=4:et:sts=4:ai:set list listchars=tab\:»·,trail\:·:
diff --git a/tools/build-system/gpg/setup-gpg.sh b/tools/build-system/gpg/setup-gpg.sh
new file mode 100755
index 0000000000..1a12793003
--- /dev/null
+++ b/tools/build-system/gpg/setup-gpg.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+#####################################################
+# File Name: setup-gpg.sh
+#
+# Purpose :
+#
+# Author: Julien Bonjean (julien@bonjean.info) 
+#
+# Creation Date: 2009-04-20
+# Last Modified:
+#####################################################
+
+# pkill gpg-agent
+
+export LANG=en_CA.UTF-8
+export LC_ALL=en_CA.UTF-8
+
+echo "Check if GPG key is present"
+gpg --list-secret-keys | grep "Savoir-Faire Linux Inc." >/dev/null
+
+if [ "$?" -ne "0" ]; then
+       echo "!! GPG private key is not present"
+       exit -1
+fi
+
+echo  "Check GPG agent"
+pgrep -u "sflphone-package-manager" gpg-agent > /dev/null
+if [ "$?" -ne "0" ]; then
+	echo "Not running, launching it"
+        EVAL=`/usr/bin/gpg-agent --daemon --write-env-file $HOME/.gpg-agent-info --default-cache-ttl 2000000000 --max-cache-ttl 2000000000 --pinentry-program /usr/bin/pinentry`
+	eval ${EVAL}
+fi
+
+if [ "$?" -ne "0" ]; then
+       echo "!! Error with GPG agent"
+       exit -1
+fi
+
+GPG_AGENT_INFO=`cat $HOME/.gpg-agent-info 2> /dev/null`
+export ${GPG_AGENT_INFO}
+
+if [ "${GPG_AGENT_INFO}" == "" ]; then
+	echo "!! Cannot get GPG agent info"
+	exit -1
+fi
+
+GPG_TTY=`tty`
+export GPG_TTY
+
+touch ./test-gpg
+gpg -v --clearsign --use-agent ./test-gpg
+rm -f ./test-gpg
+rm -f ./test-gpg.asc
+
+exit 0
+
diff --git a/tools/build-system/launch-build-machine.sh b/tools/build-system/launch-build-machine.sh
new file mode 100755
index 0000000000..cefc4f4428
--- /dev/null
+++ b/tools/build-system/launch-build-machine.sh
@@ -0,0 +1,425 @@
+#!/bin/bash
+#####################################################
+# File Name: launch-build-machine.sh
+#
+# Purpose :
+#
+# Author: Julien Bonjean (julien@bonjean.info) 
+#
+# Creation Date: 2009-04-20
+# Last Modified:
+#####################################################
+
+TAG=`date +%Y-%m-%d`
+
+# wait delay after startup and shutdown of VMs
+STARTUP_WAIT=40
+SHUTDOWN_WAIT=30
+
+# ssh stuff
+SSH_OPTIONS="-o LogLevel=ERROR -o CheckHostIP=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
+SSH_HOST="sflphone@127.0.0.1"
+SSH_REPOSITORY_HOST="sflphone-package-manager@dev.savoirfairelinux.net"
+SSH_BASE="ssh ${SSH_OPTIONS} -p 50001 ${SSH_HOST}"
+SCP_BASE="scp ${SSH_OPTIONS} -r -P 50001"
+
+# home directory
+ROOT_DIR="/home/projects/sflphone"
+
+# vbox config directory
+export VBOX_USER_HOME="${ROOT_DIR}/vbox"
+
+# remote home directory
+REMOTE_ROOT_DIR="/home/sflphone"
+
+# scripts
+SCRIPTS_DIR="${ROOT_DIR}/build-system"
+PACKAGING_SCRIPTS_DIR="${SCRIPTS_DIR}/remote"
+BIN_DIR="${SCRIPTS_DIR}/bin"
+
+# directory that will be deployed to remote machine
+TODEPLOY_DIR="${ROOT_DIR}/sflphone-packaging"
+TODEPLOY_BUILD_DIR="${TODEPLOY_DIR}/build"
+
+# remote deployment dir
+REMOTE_DEPLOY_DIR="/home/sflphone/sflphone-packaging"
+
+# cloned repository and archive
+REPOSITORY_DIR="${TODEPLOY_BUILD_DIR}/sflphone"
+REPOSITORY_ARCHIVE="`dirname ${REPOSITORY_DIR}`/sflphone.tar.gz"
+REPOSITORY_SFLPHONE_COMMON_DIR="${REPOSITORY_DIR}/sflphone-common"
+REPOSITORY_SFLPHONE_CLIENT_KDE_DIR="${REPOSITORY_DIR}/sflphone-client-kde"
+REPOSITORY_SFLPHONE_CLIENT_GNOME_DIR="${REPOSITORY_DIR}/sflphone-client-gnome"
+
+# where results go
+PACKAGING_RESULT_DIR=${ROOT_DIR}/packages-${TAG}
+
+USER="sflphone"
+
+RELEASE_MODE=
+VERSION_APPEND=
+
+DO_PREPARE=1
+DO_MAIN_LOOP=1
+DO_SIGNATURES=1
+DO_UPLOAD=1
+DO_LOGGING=1
+DO_SEND_EMAIL=1
+
+EDITOR=echo
+export EDITOR
+
+MACHINES=( "ubuntu-8.04" "ubuntu-8.04-64" "ubuntu-8.10" "ubuntu-8.10-64" "ubuntu-9.04" "ubuntu-9.04-64" )
+
+#########################
+# BEGIN
+#########################
+
+echo
+echo "    /***********************\\"
+echo "    | SFLPhone build system |"
+echo "    \\***********************/"
+echo
+
+cd ${SCRIPTS_DIR}
+
+if [ "$?" -ne "0" ]; then
+        echo " !! Cannot cd to working directory"
+        exit -1
+fi
+
+WHO=`whoami`
+
+if [ "${WHO}" != "${USER}" ]; then
+        echo "!! Please use user ${USER} to run this script"
+        exit -1;
+fi
+
+for PARAMETER in $*
+do
+	case ${PARAMETER} in
+	--help)
+		echo
+		echo "Options :"
+		echo " --skip-prepare"
+		echo " --skip-main-loop"
+		echo " --skip-signatures"
+		echo " --skip-upload"
+		echo " --no-logging"
+		echo " --machine=MACHINE"
+		echo " --release-mode=[beta|rc|release]"
+		echo " --list-machines"
+		echo
+		exit 0;;
+	--skip-prepare)
+		unset DO_PREPARE;;
+	--skip-main-loop)
+		unset DO_MAIN_LOOP;;
+	--skip-signatures)
+		unset DO_SIGNATURES;;
+	--skip-upload)
+		unset DO_UPLOAD;;
+	--no-logging)
+		unset DO_LOGGING;;
+	--machine=*)
+		MACHINES=(${PARAMETER##*=});;
+	--release-mode=*)
+		RELEASE_MODE=(${PARAMETER##*=});;
+	--list-machines)
+		echo "Available machines :"
+		for MACHINE in ${MACHINES}; do
+			echo " "${MACHINE}
+		done
+		exit 0;;
+	*)
+		echo "Unknown parameter : ${PARAMETER}"
+		exit -1;;
+	esac
+done
+
+# logging
+mkdir ${PACKAGING_RESULT_DIR} 2>/dev/null
+if [ ${DO_LOGGING} ]; then
+
+	# open file descriptor
+	rm -f ${PACKAGING_RESULT_DIR}/packaging.log
+	exec 3<> ${PACKAGING_RESULT_DIR}/packaging.log
+
+	# redirect outputs (stdout & stderr)
+	exec 1>&3
+	exec 2>&3
+fi
+
+# check release
+if [ ${RELEASE_MODE} ]; then
+	case ${RELEASE_MODE} in
+		beta);;
+		rc[1-9]);;
+		release);;
+		*)
+			echo "Bad release mode"
+			exit -1;;
+	esac
+fi
+
+# check machines list
+if [ -z "${MACHINES}" ]; then
+	echo "Need at least a machine name to launch"
+	exit -1
+fi
+
+echo
+echo "Launching build system with the following machines :"
+for MACHINE in ${MACHINES[*]}
+do
+	echo " "${MACHINE}
+done
+echo
+
+if [ ${RELEASE_MODE} ]; then
+	echo "Release mode : ${RELEASE_MODE}"
+	if [ "${RELEASE_MODE}" != "release" ];then
+		VERSION_APPEND="~${RELEASE_MODE}"
+	fi
+else
+	echo "Snapshot mode"
+fi
+
+#########################
+# COMMON PART
+#########################
+
+if [ ${DO_PREPARE} ]; then
+
+	echo
+	echo "Cleaning old deploy dir"
+	rm -rf ${TODEPLOY_DIR}
+	mkdir ${TODEPLOY_DIR}
+	mkdir ${TODEPLOY_BUILD_DIR}
+
+	echo "Clone repository"
+	git clone ssh://repos-sflphone-git@sflphone.org/~/sflphone.git ${REPOSITORY_DIR} >/dev/null 2>&1
+
+
+	if [ "$?" -ne "0" ]; then
+		echo " !! Cannot clone repository"
+		exit -1
+	fi
+
+	FULL_VER=`cd ${REPOSITORY_DIR} && git describe --tag HEAD  | cut -d "/" -f2 | cut -d "-" -f1-2`
+	
+	# change current branch if needed
+        if [ ${RELEASE_MODE} ]; then
+                cd ${REPOSITORY_DIR}
+                echo "Using release branch"
+                git checkout origin/release -b release
+        else
+                echo "Using master branch"
+        fi
+
+	# generate the changelog, according to the distribution and the git commit messages
+	echo "Update changelogs"
+
+	# use git to generate changelogs
+	# TODO : currently do symlink to workaround git-dch bug, check if better way is possible
+	if [ ${RELEASE_MODE} ]; then
+	        cd ${REPOSITORY_DIR} && ln -s ${REPOSITORY_SFLPHONE_COMMON_DIR}/debian/ . && ${BIN_DIR}/git-dch -a -R -N "${FULL_VER}${VERSION_APPEND}" --debian-branch=release && rm debian && \
+		# cd ${REPOSITORY_DIR} && ln -s ${REPOSITORY_SFLPHONE_CLIENT_KDE_DIR}/debian . && ${BIN_DIR}/git-dch -a -R -N "${FULL_VER}${VERSION_APPEND}" --debian-branch=release && rm debian && \
+		cd ${REPOSITORY_DIR} && ln -s ${REPOSITORY_SFLPHONE_CLIENT_GNOME_DIR}/debian . && ${BIN_DIR}/git-dch -a -R -N "${FULL_VER}${VERSION_APPEND}" --debian-branch=release && rm debian
+	else
+		cd ${REPOSITORY_DIR} && ln -s ${REPOSITORY_SFLPHONE_COMMON_DIR}/debian . && ${BIN_DIR}/git-dch -a -S && rm debian && \
+		# cd ${REPOSITORY_DIR} && ln -s ${REPOSITORY_SFLPHONE_CLIENT_KDE_DIR}/debian . && ${BIN_DIR}/git-dch -a -S && rm debian && \
+		cd ${REPOSITORY_DIR} && ln -s ${REPOSITORY_SFLPHONE_CLIENT_GNOME_DIR}/debian . && ${BIN_DIR}/git-dch -a -S && rm debian
+	fi
+	
+	if [ "$?" -ne "0" ]; then
+		echo "!! Cannot update changelogs"
+		exit -1
+	fi
+
+	# change UNRELEASED flag to system as we alway do a build for each distribution
+	# and distribution is set by another script
+	find ${REPOSITORY_DIR} -name changelog -exec sed -i 's/UNRELEASED/SYSTEM/g' {} \;
+
+	cd ${REPOSITORY_DIR}	
+	echo "Update repository with new changelog"
+	echo " Switch to master branch to commit"
+	if [ ${RELEASE_MODE} ]; then
+                
+                echo "Switch to master branch for commit"
+                git checkout master
+        fi
+
+	echo " Doing commit"
+	VERSION_COMMIT=${FULL_VER}${VERSION_APPEND}
+	if [ ! ${RELEASE_MODE} ]; then
+		VERSION_COMMIT=${FULL_VER}" Snapshot ${TAG}"
+	fi
+	git-commit -m "[#1262] Updated changelogs for version ${VERSION_COMMIT}" . >/dev/null
+	echo " Pushing commit"
+	git push origin master >/dev/null
+
+	# change back current branch if needed
+	if [ ${RELEASE_MODE} ]; then
+		echo "Switch back to release branch"
+		git checkout release
+		git merge master
+	fi
+	
+	echo "Archiving repository"
+	tar czf ${REPOSITORY_ARCHIVE} -C `dirname ${REPOSITORY_DIR}` sflphone 
+
+	if [ "$?" -ne "0" ]; then
+		echo " !! Cannot archive repository"
+		exit -1
+	fi
+
+	echo  "Removing repository"
+	rm -rf ${REPOSITORY_DIR}
+
+	echo "Finish preparing deploy directory"
+	cp -r ${PACKAGING_SCRIPTS_DIR}/* ${TODEPLOY_DIR}
+
+	if [ "$?" -ne "0" ]; then
+		echo " !! Cannot prepare scripts for deployment"
+		exit -1
+	fi
+fi
+
+#########################
+# MAIN LOOP
+#########################
+
+if [ ${DO_MAIN_LOOP} ]; then
+
+	echo
+	echo "Entering main loop"
+	echo
+
+	for MACHINE in ${MACHINES[*]}
+	do
+
+		echo "Launch machine ${MACHINE}"
+		VM_STATE=`VBoxManage showvminfo ${MACHINE} | grep State | awk '{print $2}'`
+		if [ "${VM_STATE}" = "running" ]; then
+			echo "Not needed, already running"
+		else
+			cd ${VBOX_USER_HOME} && VBoxHeadless -startvm "${MACHINE}" -p 50000 &
+			echo "Wait ${STARTUP_WAIT} s"
+			sleep ${STARTUP_WAIT}
+		fi
+	
+		echo "Doing updates"
+		${SSH_BASE} 'sudo apt-get update >/dev/null'
+		${SSH_BASE} 'sudo apt-get upgrade -y >/dev/null'
+
+		echo "Clean remote directory"
+		${SSH_BASE} "rm -rf ${REMOTE_DEPLOY_DIR} 2>/dev/null"
+
+		echo "Deploy packaging system"
+		${SCP_BASE} ${TODEPLOY_DIR} ${SSH_HOST}:
+
+		if [ "$?" -ne "0" ]; then
+	                echo " !! Cannot deploy packaging system"
+	                exit -1
+	        fi
+
+		echo "Launch remote build"
+		${SSH_BASE} "${REMOTE_DEPLOY_DIR}/build-package-ubuntu.sh ${RELEASE_MODE}"
+
+		if [ "$?" -ne "0" ]; then
+	                echo " !! Error during remote packaging process"
+	                # exit -1
+	        fi
+
+		echo "Retrieve dists and log files (current tag is ${TAG})"
+		${SCP_BASE} ${SSH_HOST}:${REMOTE_DEPLOY_DIR}/dists ${PACKAGING_RESULT_DIR}/
+		${SCP_BASE} ${SSH_HOST}:${REMOTE_DEPLOY_DIR}"/*.log" ${PACKAGING_RESULT_DIR}/
+
+		if [ "$?" -ne "0" ]; then
+	                echo " !! Cannot retrieve remote files"
+	                exit -1
+	        fi
+
+		if [ "${VM_STATE}" = "running" ]; then
+			echo "Leave machine running"
+		else
+			echo "Shut down machine ${MACHINE}"
+			${SSH_BASE} 'sudo shutdown -h now'
+			echo "Wait ${SHUTDOWN_WAIT} s"
+			sleep ${SHUTDOWN_WAIT}
+			echo "Hard shut down"
+			cd "${VBOX_USER_HOME}" && VBoxManage controlvm ${MACHINE} poweroff
+		fi
+	done
+fi
+
+#########################
+# SIGNATURES
+#########################
+
+if [ ${DO_SIGNATURES} ]; then
+	
+	echo
+	echo "Sign packages"
+	echo
+
+	echo  "Check GPG agent"
+	pgrep -u "sflphone" gpg-agent > /dev/null
+	if [ "$?" -ne "0" ]; then
+	        echo "!! GPG agent is not running"
+		exit -1
+	fi
+	GPG_AGENT_INFO=`cat $HOME/.gpg-agent-info 2> /dev/null`
+	export ${GPG_AGENT_INFO}
+
+	if [ "${GPG_AGENT_INFO}" == "" ]; then
+        	echo "!! Cannot get GPG agent info"
+	        exit -1
+	fi	
+
+	echo "Sign packages"
+	find ${PACKAGING_RESULT_DIR} -name "*.deb" -exec dpkg-sig -k 'Savoir-Faire Linux Inc.' --sign builder --sign-changes full {} \; >/dev/null 2>&1
+	find ${PACKAGING_RESULT_DIR} -name "*.changes" -printf "debsign -k'Savoir-Faire Linux Inc.' %p\n" | sh >/dev/null 2>&1
+fi
+
+#########################
+# UPLOAD FILES
+#########################
+
+if [ ${DO_UPLOAD} ]; then
+	
+	echo
+	echo "Upload packages"
+	echo
+
+	echo "Prepare packages upload"
+	scp ${SSH_OPTIONS} ${PACKAGING_SCRIPTS_DIR}/update-repository.sh ${SSH_REPOSITORY_HOST}: 
+
+	if [ "$?" -ne "0" ]; then
+                echo " !! Cannot deploy repository scripts"
+        fi
+	
+	echo "Upload packages"
+	echo "Install dists files to repository"
+	scp -r ${SSH_OPTIONS} ${PACKAGING_RESULT_DIR}/dists ${SSH_REPOSITORY_HOST}:
+
+	if [ "$?" -ne "0" ]; then
+		echo " !! Cannot upload packages"
+		exit -1
+	fi
+
+	echo "Update repository"
+	ssh ${SSH_OPTIONS} ${SSH_REPOSITORY_HOST} "./update-repository.sh"
+
+	if [ "$?" -ne "0" ]; then
+		echo " !! Cannot update repository"
+		exit -1
+	fi
+fi
+
+# close file descriptor
+exec 3>&-
+
+exit 0
+
diff --git a/tools/build-system/packages/git-buildpackage_0.4.45_all.deb b/tools/build-system/packages/git-buildpackage_0.4.45_all.deb
new file mode 100644
index 0000000000000000000000000000000000000000..cf62358c48f1a5ce054c997b8b87ef9dac677028
GIT binary patch
literal 62098
zcmY$iNi0gvu;WTeP0CEn(@o0EODw8XP*5;5GBz|dGBh?fR8TNb009VTXkcJwVxpj6
z0uln_1TG^z1Fq!!ypp2)9KDjnBE9q~!upMjEsen16%x4QyEzy@fQk8S)a^d$<APVS
zpJ`idOFYu(`R(tfjjYlW9y~cXQSjzTXCa+mLB4)Ab0p8WUa~qj|EaG1w5&;+%1S@B
zd8s%alu4X^XWqk?uU@SRzACfUy!@Vp#vzT;3Rj!|RTbwYgwF&VY&lSvtg+wu%G~V@
zm2>_$oS3`t^|JZ9-*0>UUh~@QebUQ!$u2M7{(sh{?BD&5do)+Q6WI0Uzx46;{dZb+
z-R;?()zZ0U!LJE5mi~9|`Imn2Eq1N(n&7cRDYHEC5DR;-`0-Weo}7Qu+<$}pNwLsw
zv+K7j89s%7`gr`w$8~+yMY}3P->H?GbIRr3+L_6*|F_|9-kD_=!uIbdJikh9cBRY(
zG5Z5-?O_M|H{85-S?f&c<SP07-=kL)^}5~57yhVkSkhu~HTL)B(=XN^+xdQXqE@$s
zl=b(M{u^GcUlx0P-M83T(iKau>hGVqXWqj1cK_KWzP%6mZ@T#WQ+v}(IzRv4d-9**
z_q#yPfAaM;W)|OXA6!0J<<C;3CtFJs72bEVt$FlYjrp~&;QN@xU-M1=Z=JIK-T#)#
zh5w}YJ^6q80Nb)3PMvpiocHS$2HuVQ@W1zK+WadP?~j{X9M}Ds-!kd?r}<O=JpZxj
z$^YnvQ>Uu3YfJ<`Tv;oqcspfsvPpm>ho)|2reNHP>;;Q2m}snuy)Z8=-{iYeW1$&~
z;@z|T*M0}(hG+JOM$A)mS!Q9ec1`C!>on%Ab7tl&se8%3d*QvXla=~AjBTP=xh8F%
zn4a#FGBHbW-tUyI-Cdk|$(v4fJt&=a#bTvV#9EoDdKEvll#g@O^h8DX9_-Lp3!J|s
z#Hnam)2S=+_CGHtK6MrRd-$*Z``X(5r_SwO(z7VeLTtvTMz+^NJ065gh`D!a^Y^!J
zW?#*_WzL?cm#-z}YUatd;nFXeC6^AY5t34Rmyz-&=i08hZSPLZof>{ED@*sdYVp*f
zfEZ8Z6s`lUmh*o<xTd`GdysLag~ziM3%xW~)?B*i`ChcZV)mbcjd|PMtD3h}D>k=t
zL>ay_Hr7cwzv%pdD?jhaEnu{1>vOM?wq<$E>T6_e5^kM0^Rr397q+!OZ+<b%_x}9#
z%10~fd0QVfS_%rCN;uioP}sLl==txoH;UKxS>Dw13Nt=#dDbw>vr&p$=<%KDK6dkE
z|GRxpkyy~XTr}d{UNH?tH#e`TOAiEpx|Lj0q&1~#t>uShU%$@wlVsqW-Vm*|`Ow>C
zPC=&%&v2i)cHmLAe`!~kNaJIdQxe({9EKMC(adf}Z=0WKein$`^uM{&@1kn+Ce9fb
z8-uUJPti=4JQ^}R&h`13dh6he7lOr#1Xa&#MbD~yrq;daUrg5#;qQI>zxk}#x!i-p
zZMJ~wE}iJ7hS5sz_>RV3Ogc4Ze#gew>!nVpOA2}>O+CrxIyZXNp1>|6LF370$?N90
z$8YDHx8``Rr(-YYB-L^o$<9aWLD%}4Hfm+g3byMmzy3Dy?)KYS(#`DB-J<8&`}7K>
zmR@x>GGP+7ntQaWz$vkH0?&&hEB)LeTqhfPF3@jsQnx6L+mVp*rf-Xk><k%m8^;N9
zI#Mq$#=W`FW2*LhbH?+32O_mh7h7d5W%+u>>eL2_pw}%0hAVGR{(77JyIe@uBd(cA
zey3BKA9$Y3*kF}<%CKeUj;TwJTu59fdaZtT>Vabl3%;cGTS+YS5i0WF<i5N%<inBo
z)i$Q`>%O#m8-(0j`02%xT&^j`x{SM(m+mp<ddn=Dx4q!`ZC#VQWqbcFG%|d0pyEKx
zQPb*!B2&A9=L<hoJNVZ6<L}?~RXg^vFVwsF(^<9BgfH18xq@AE(WSsN#f`7Dris+X
z&5i%~cXf%>V!i{?(}S1v1amX(K9N!oY;bP<<^+u?^53?|M{iDI_cAZ*o+LeMW$_`;
zDJ)$R8?+88?SJ`4n&<ql&B_x$OnE4^;pGuMe(pVt#|sK?%v9RxQy_iOQGnkk#JK;g
zhs)2&j>&G3bDNrHXm*8f`ZCqWoa=JqsRA*BT_UrlE}6{Nt^4hgB*Sb$SI58XtEKyW
z%-qhkJoH;K;p2Ai6Ft70g>J}lR60NLyYDi0-_@#@6Xg!q_fKAW`grsEYKdc|^`Q^D
z7{w)oN;R#7145QEe#!C?ntFAPHG9{wr#4s5Hp(0@I4}Bb`Hh;?gF5}535$<NaEZ2E
z*!ko~@lOuk^}DxSP`BY=cpAalaw39Z(J?pug^L#aGUWY}^Q)>VZTA!&ABIL*)5FI+
zA5T1(9P^@~S0dx!x$?S7kDwVF-*TOr{^I!LNnr}cqE|Rqd8;OWd6T<$&zk5he?A>p
zJNIbR2}`+$9|ERq+_hrO)-z)Mr7xxw?@W}~mArr@o3&SOg~Ue=(V{a_*#?K}?iJ7e
zSsAu?XM5x6%O|?lowmP`7hXDhH&?6c35~^{1e4__pJ;x3ui+G@^@iD}%5SH<4nCq2
zpSJha?|7S^rtjbVmT!B$W%l|1r>l3>{QqqB;jE#jUR+Ji$K%P@Vgz<g%U-!kzkSDQ
z^^VIn58m#}T(!RTuHO&l!>m8`&b&35yk5TMx9m>#{teBVtZg-B^2fq|=gr!m@v2bj
z`f<UW=ikd$vq#jw7OOt`IwbyV>8lgr|9_=hzfDk>|MTr+{bN<XRlXU|OW0Pv`o8RZ
zKF28AHT4eBD$B3hzF6q{nALI><Ik&i&vVAF_P0|tfBLYXaoyQj50|p^AG5gf*JR$i
z^pdltaT@13?lQC|mL0stb+mKs4dY#(zAT^8_3GiCyG-j|zc{$;bLP}niASW{cl|le
z6*2XP)wxx6E9K<oe~+26bK%N;l38yYm#yZ$^fmR4`PKZ77cR(eOELHTdz8&z@a^~4
z*?c#?IDa=^VkswOUz7Ow-NC}Z_Ds2RJJM5Lo#2}_&t~0nS<7$DPfC7!yqZ=M>YviE
zPx>|I*~X1Z_uswx_)_=j&$^p)Hro7F+L=A;UE$rliCeReb$3mOpPc>n^!<(XKev1_
z_`gHpxFVB3-?|%ibF1DwQ#@44eZe8#<5cpY^l34+=VO0uogZPF`Ot9Y??R~q?@xL@
z?N2#+;q6yf+r_)yt>!NJ!M$>x-qzXbm!2**yl(ebv(vic{^LjNmr4Y;uawyJK4|Xi
z7u~Dfo92qn{4*^f-?U`MZwbY-n=?25JSxE0Qy^3Ss$>4HS|*J{FDfRr=hffnyR`b@
zX}Mz?e`ILJaf|6hY)ClR#7Y!{>mTp7p9;Gf0vH%l5=#={4KgCybf%W3hLCn0a+~bU
z-t6kzCnlQBS^sSPflIF^_;`3+xp*zYFU50P>CtH=o<(ZKm3z2cnnaSg9tbT+Icqn2
z|JRy|{kHqxtaUD5EX^*YpxMv=CC^5U^UK0ryLRn*wN9)0DL?<ebkTn~`FWS>ANqgV
z|K)wz?!EW!#l_~Y&pr74_U+Zu^&8Coe_;LBbNGa0<TZIWM*-ieyj$<@zmTs^mFWxH
zx9Dqp`}^CgXTQDr^jH1Pulqm!nYupp|KZ}?2~4N|{%^g$|Gn$l)f>%U@XbA^zWjaN
z%CGV9&Hwwa@88SzdjH0ayS}k!m+t(>|L^(7dJQ&-d+yg8^S2(Gdi>hj^3BPuc`0A_
zG`{{dcfsqQfA1Dv$+q2Erq%zj^H<&BsOZ?cS%>0p|F|Cf`s<C?Y#+A2cEA4aMAf@5
z_Ww=4{F-llc%y93FZ~C)KZ*<Awq7d``Qm=Am-YXf-k9rL&2c5qd+y9%^E)A@ROY_a
z&RG2(w|iGDigfii$?V@P)U!rf!t?#S=%)PRb>dY`@7A1<z1tFYVKM*u{`=AEWADpa
zGQTdVG5uh5EqeXqUkkG>FId(I$L)@N?X{)l{hmXGbGi#7)-z??>fCeS|H&fTS?AYU
zb3NR=Rjpdk*KBRVk+WCkavZnc)TFrYW`pDXXlC`U_-&nKk|7=Hx3}8NpS7Q_&0uYI
zhOk=Ib6&P<Q?q-Wx0}nE>=dlH^Xun}M`us|=FWcqL;Usgy_+}hecT;i*K|Bl_hI<=
zYfq2unf>rU^R~ny<>USD68Y{N+kJTRU-J)_?www|-CcbDftWSn?&8PWpFh90da`l$
zd8@nDyDe_j|1W!g#;Ufytg5IkBl_CTZs+2iot#(RU7W;dyF2emMRUN}|KbtP1llZK
zL|s3(mizSG!oATF3zAEl9{&B(`Xp_R<Ad*++dfqIT%517KK-ZTl`Zew<UaU|ESWw-
zy5suJOxd5ZyEAj`HtWSKn3g@4Zw}v@cRwX&N5seHM(H;j98$mkHuBmlsS|6&UTEK*
z_Vr&4zgpPZF!yBnWA(+%cchZms{|za#eP4<yi9D-)k8}gC9T9bVrTp^;Ml7nao3r7
zD%YA2gRV6n?56zZaZ1>DLC)&p)<36Yd;d7pNmMz9+sag$ulrN}KP$ue{Pf2h9{qFf
z%Z67ie$ZCeu<j`TqnE$3^{s-FEoFL}0xuiw%l=fOr@Z`rhqTb=y?dlB4=ZlidGB89
z<@~7Me;h7bN&l{%_)Fzq;g6ed_b}Znc(}UD^y~ST9A#b4cZ>7&ygRd(Gw&{UL|C#-
z-TBwY7w?doccILt)NNsR@TB-Xa;%RRep}QX9Co<<cn6zk!j#?FH{8ng-pJV>N|oJd
zTh5Yn@#$Vxrx(WWqK<bZXedNAu>U#nSLUI$EPL5H@wXu_HhSORS-3WKbyZ1C!4Lk3
zck6CD>+L9Uo11-uVfv04UlmIp)aG3}Wi~OoE%`y}#fs$i6Dm7+*%$2fU#}qlQ29r`
z^ew4fb=%{d<0kuWjoM(GKPN++e}7o_@7uLP>mvLQ&H8#INO?l7+1gomSDCK3nNhNT
zaaa~h`w_kGEz;ZLR-a@vzhb;W^5I6=<kEI!{*0fGSU>EPbyGN+n7YcPV6|~kqWhtJ
zbwckV{C9=Q^e<uDa@pWkqy91F`&CbQ9Mm3&zkA+i-J>%h_{_lzMR$rH#yKwzuXuO(
z)p55}ujQ$~FaDl!VaJb0NhW35nr$n~+a^7j9-BYqk<cr?K3jQ}-PgA#?tS|&|HPV)
z)&(mbRBUmZS^I-CB37~HO+D+p`0Kx4Jv#XAtA3z&L!(KB&>8C!Py7!}n~|FSV__Me
zd-CzMwK-8gUj7yEv$?)A^Y7gLW3v|I|2NOC;AGF};N3DWQdhpL^GVvltcAWxQfguO
zN9OcBYL}3W+7Kms@YJfk%TljKO=@TL^?qmL`0w41w2IFASMQ$J&^F@i=jZHfP*PT#
z?H8j|@00MO<&$H!nPcG32UCT2-Sihz70UfnyI|tgUw1Y~d1%(AHindG20h&8KY=s#
zb1K7gR{l+VvELGZYkh3p&)oW>N5#sr{G6>9_k@sl=@ULLoRZRZf>G&CO;g}0HskHJ
zvd2n<ze!u~5@EXZ=F`ngdAWa&U;H^V#q+|4j+3W!%_la$eW1m|miOdV)6}Q=6_;-P
z2;X~gLa<vR_pYO<KBuho&iYlIeE7agLR3TRN8s!Q{}Rq_%l;|zIHvVSd~UdzmaxV$
z`>>|0|Aw7e%Ey^~{pF@RY_2_iT$A&p@)8cd*_;ynj_LYuqa8i%o;%)@h~0FnanZ8A
zTS8m{!7nx*l0CL3H1V&5C3n2AlAqbFCbyTJ`-|RNtHhM^2zu(9NAkQsAjRsuICnw!
zi!0aKSIIJJSeoW8&70Hip)jYb_HE1b@CB2~*S$V`;#s}vGWn@ngLAdS_P5=MS~{(I
z#nngC!hEw1Z?e9g_gpw&eO%1C<$mf`Jsr&xY;LB9du`X;-?LKGMZ48z$q_FbHr6y9
zeqqN>>wvP~a&dJ`VG~;>W$`wo`0mJi<l424$NJ>eDZZVdj`#dmOjr>7ea=S(F8eD&
zf3MjcTN3bgLdxy4+4jvHC(Wl`iuK<rxUkOlrAaE&*8ujtO{d%UaH_r(J=pp3<5cch
zTXr={|1wo<DZUxj@q3ryJ(l-s&x4w#Or7z)abu>>6?@)QlCJ}o?7#kCgZj%kDR-Ay
zwz#EEn>j;?kE1Kcf+N~QQ%dPxOl^0bz_niKwu;lmY!|}5$GtC{^eAl2=P5N)*B?C8
zyRKmFT#rCy&5(SV8!rlK?sh%1zTS7goZV6WyyU*c>sGw~aYc|@<@)+>&kEizP-FeB
z8*{pR?bViR?MDQyq`$OQ-C_U3F3J31e?@SUVNJ&S8kb!M_P?FiZsoc9sFt+()dPpC
zt|r;N;Isd#|2%K))wX9VY~Q}+Uy!zK-Q9y5xVGfRUcRrJxPE1neDC6bJ&W9ujjZdG
zMRk5`x9Ds?@-p+@dhVH9W(U2>uq(Kq(Y5h?m*$6q@4o2&t|-15y<~Mxtw!FC&^w2n
z!XA_yu}?f2ApK^Mz=6{Wc1L$}sGaKld~f!xeG{aj#2?LWEcV~V`;poF*3OrHxq^D9
z^<L~_R$Z}m+xli}lm8!eWsbf3x&5H}b+3Iwmz=LVe()^wX-bGX|7)iG%(QL)GMWmU
z_~+aCZql9LlKygG=}VprC&9Q2rb{FG4yb6EXIkHVr~3au?RC*=pE@12vrnFvw9WXl
zB<ktO{+BIAW*oMswn+=!dt_SpOmlbV_3zCSZ-2ULtq^&gcX8~;tE#nAlN}Ge-K)KY
zbCXzK?Gq{fm#3KYr=(q<khjvM>czpA3Ga7bH8`ZFbfN0gi+J{xjg$CQj)w|7+oRns
zW3Te$wcbjf$?f`aLD5J4z9~B<#lLFlc?r=!W|b~~96B$09A@eiT;A@Mcbx0^T)sJV
zdp|Z<?znLxs?mPOe5*a)A456~%b2euwW#&4|D4cRcB#aS=Mcw!=ZzCBZ=96jOlEy|
z*s>*S#gDT~f2d8bJyrUMeXY^oFB6Q6OTV1l`+e6c_J1bc)@!`Cs01e_{}JV@SSB{L
zYQ^@IuMcX@j9(G?*KNhDtNJCA#WtqIZ|K^S8TDh)tF!!iKVN(Q+r{91dUa`yoNmDk
zr~aIUE4A*`eUY8HUX8y%pyWl&5$0ls*<B{Or6JvAhj>aC%ZPuNo#`fU|NM<T3AbGy
zHx>6TyP6rkB6gBPo{!(x%1tezMR7kT1|-Nz%u`Y2z1SX69VE_c?(lbh>YTZauYcUK
zxcYq2<0ax5bIK3C5WaWrg60I7r5R<{0=Z_&=7;~Re54V0X!4Eo7ONxT%iIqMX7q)b
z$oGeZCvx%5h&M0`$=N=4+2$R#U*=yrq-6W@f>55zLf@<??mI5buRq8yS5Ft8&hDOm
za^(@`nFi9IE1u0yc06F7`c~qae#hkHO6}S;DF?6azvGt@J4aSdZti|ho~iHGSKV%P
z<9=kA#e015zS+eZTJr?YpNL#woBip9`-_9$jxsppPU$`nE$qQH*->7vKX_KwtP;(f
z1)lRn-G1@km3{riTQ##@C@QXIvq)XgPiB*&^A_-g-!V9_yZzm!P_upKDyD4twe0WS
zV3`Pirx=+nwo7cTKRM}jV@Y<IZmva6dK7QF<GfgF!#`ivw5GaF(%;83qrBMBHPuPj
zXhml0hCR$t|K0AE=w5Trc-H<~M^FA{*PaiP?s?m+IOEAFpRT7U_}5_rdnK>u9cK=g
zMX@ert6FchE?hRxJF@>?`-^`^&kDsaeG%q6KPPd=#QGz9<Ie1V?{+C-?jnaAy{Rf@
z=gtaEas0!pyHa1;wbCI&{D)WMFQeU=UExxng_s%*oR+=tVzg`6p)qCWBk3t0t#0zX
zTXLCKm+9`t8^2EN3k(0>#jahZW>X{c=Jb5wXyaldmxW6@r<AYiv~|3+vd{RJ>TQwo
zzhNbFKP*iDcD^lej-p&p){9G%`FKM<m95!x>+Os=={t5C{mJ_DbqRaOYt?s-nd>vn
zuGC#w^X1m|W75kWoXT|Gyz7;}?KZxnoDv6QO%wuVTG>jde7v7*G55|pzk5E9PA+5r
z7|}4d<$R>V3Kk1ik9Ui<Jyw}%?5R~~@%~+uVO*;E=L8Y4L?NCl#=DPPw$`7W7A4$y
zZu7C}nd{DfFxNSkl;86?ZHC4CAU)$FRtJ)|>@`{AtnB_Kbf##*<_p(Yr+ILi8J=DC
z#_nzykBdP627bH03G+CNmMy*|u&zPskM=h<6RF78Ou2^^o^bOn*`Bh#t;O%1Q0@;d
z;p$ah20b?eZoQnE=aoAnvwJ#ch~Qt-qUj%F3uf<Z>zY>ii1WV+qtN7eS2u7*`l_>>
z%{GtfeBZ<NNj+T1L*>vF(b_ZO)mx@#6|H~X`{7Ju*oogg-~aJ(E&lK??ZM9{m0uQh
zE=r#?<(kJoF)Q``@;Nb|c)X8`>oz_6d+GygR;`KA?~YD|V`txGeYu+Xepa9LEY0i*
z);l@e41Y|%(lB*@-Mxj+-_Pp&d;aeC<j$h6t&8u;GgNP!Eh!uCFi(5^ZQkN(@!_mK
z!4i^LN3#~(2-jY?FrrLt?IRnBNo(wl6D74a&v|;s%6sjPolLVj{w>-QrrLT~`+WP+
zJ=c4@oXkyTU%t5Om5&hHva~l$ruhLE?yi$^K78S)NiF}>*IRz2XR%3Eb!q<H+`8{V
z%KvBg(pQ|VeD@{l$o1l@%!yoAZieeRRBYU@H>b{?t-R}55WlfelwfG&C(-LSQmXQ=
zT)xnMqepJOUu7G2OVQh~)}sYa4xJTUmeHg0+9y2L^KkgLHjkpV3aiS6*Le9fk8Ed@
zNiuM}y&+&ls8OE60Uze;>kpTId#bvEVfys1Zj5I{;+%|rt@hb7+2_uVY0p+}JGo>@
zidgxC8-ZNw*2#aJ<Z;O1kbaofg@>w{_oq)^(R*D_UvO_>W#nVC!lZ(;-LG0+9`J8@
zoe|>lrBC{;%fola{3_V%54KORv%JT5FOFS7{H1=v$G{!Zmf`!~{n`Kj{r|uB(^z&V
zGyMOz-+HRO&i_9Q^=E$A^VMdQ9zHj{`+rV;{@Og1$N$5&hfV)jf8X!VeWNe=lE1z)
zxBm-WeN~xHs(49#n8f>~lRN$tu^#^GmM8OL`J!J55j#XfQ|>G5FgpC-Be~R3QsTz@
zuPf{>WzWqkU&7A1%;}qeUajeyBO40}Z!D<reKEIbroLxkMiggtkZ_r*-^_QepTaGC
zXI*o=QOWvv`RXUBA`HFxcMrBCxGep_wP1bq$?a=gY?8uGJX&$Ra@V%9n@6WFdLT6G
zTsN-|gVAz#rehu79u^eTTb4L9Hfj5>R~LNkKIz2=W{$wP!m1rnIyUNk*Q9^DNeF*y
zO0?ACI?q!%>2AbYvFMs;-Jd_-NzJfmNi8h@%Wy;9#U|=oNX_{x1^c3Mp9R=CI_gg7
zfBvx`vF1*)QeVIIT&bhe`L;YR729+E^w}DTJ}b$GTs}op%ul^+>T!6$!7`86(c|Ea
z#Ix+*jcOG4UC9db$gpGk*{!}J`1YN4rIfyPlP@s6OWgh9snO-BUa<^Yuh^=ceEX^K
zm`eKuxr!@0+nRUlU3|Lu;{o2r<pGLk_&Pdk*KCMLQ;+@RqLzCj^TDo@QS0it^Z)jT
zR@ask?))xy?#$-X&3n5K-|}l)vBFtiK8yW>>)YhRzv3^KG;QCwto2X`AM^jS>-RKg
zOE9tA3B2^8f3oujtss&4{_)EbTjal7lzqR~dQEMM-G{v^{pI)FwyyH-pFBf9Yn8{F
zdGj3&4y?Pmv8u%Qc=2RkCG)JLWs)wRZrNFG_|C?><MN@eABEbsbN|o2a`MLkCc#_Q
z7tCGyc$I8p5<@Nd9(1^W@J`sce@@NpFH_a6Hax!gv24cGvY-oTN>79X6Psd{Ctq7H
z(%D*L;uw2%&INwaWDeg)E2G-~n}+-ms@ZTeYyO+qbI)che7gK(+>ziz^R_jwm|>t>
zXH+2l$n|C0M3z}MoT?%^xBD<IKhL+MxlegQpUJN<orzUzCdq!d^wmwm@squ2fMde{
z^aZ{w7oOC=EWBU3`{B|9S0$dawC>f>+QZCu^W;qaV=w03S!?Skd;OQfjh~CRHoaZv
za<D5wMtWJick?Szmsep&xBc<s_<G3Wzfr&$q26iD{b^2r{w^qe?Da-sPxNB{tu<RB
z18XD?3oYFy`{RfBU8Rl8iho415{~^m&k?47@vw}?SE0R64qrK4e8Z*Zm(Ctj)&+5k
zJbx%&y0GI<pt{oP|4*goaes{yxaA>O$@-x87w4?b!a0Gv&xYh*%ssI9Uw`cCxfe{2
z=)9;nYCE%G(~}iDGMBQ3q%2+b$go#dO1wW)#n8_pi)ogRg^;mq%1n+6vtmydd~TUu
z@Vn=oX^L{~I`v%(S=DRz2nYoQKa=FrTQ9ijujjnKEz?B&5AG^Eq_ZL=IHS4Zu~WCO
zl0ey-EJg=`WYx_w?UNlgZsfkoKjYdHoBUN3JoanXN^7-r%{m|1HREMz(kii{y?w_W
z4{b@|;o;|(m=$~WvH00TPTzMwTwbTfu(Y`MfOS;;6&s;7O}nnPN0k^a+3gXub&{Bl
zk4xi!HGjir+dLAoTNpcSZ_G07WE1;ZpZ)6Zk=b!4j&bI`Y+GLS$2&=Aju>ZiPjS=R
zsoSDi|LT5DQ~Yu(>+xfD8ROSamQA)&suYV4*bzQKu;#eG*12bE9yA>~#*}I$;KqE>
z%X<6NQ!W9rJ<7LlYtP_e|EtpTQOo!6H6=qOC0DQgnJXWrIJ(8j{(XG+AzyUf!~gG3
zTswPDy{S%M%2wB1{j=2*lU|957@J%-IA-vCNlHe_J7MX6POA+bzfEHE`lxVMH*mpb
zew(WizaGumqy4!mNp6}K8_Uxs@h+jQZ_@0h_|8AMW#Zy0%?Ednc21tm>AKd_rias3
zx-%$8?DfZK>kry$#_TMco44c8vkOj(y)P;X|627V|IIG*&zn-1&PuDE%-9#Bd1_X0
z+~o}a=v1YGcd<1S1!h)kvO3B5>YjgtYo}%M?>xQxSBe9&kG|0e4zvlKC3kS1qr_Ji
zr-O>O^WE|!c=9ezd)hDfi^c!>=L<Ev?QKsdnLRObQ!N$gUTh$7&1dts>4z_hNOx^|
zbijGbW(W86mj&;6#ITrj^pu^`?(qp*(z}JZ@ycHF+@?eBI*q+fTRj_c>vER(s{Ld3
zf1uy?KO#Cl{;uC6`)g)q(|+`;{!8xsAMwb3-_$GTxfq)gTOPM~FA-r-k^g3Rilw3D
zvGxp`V<l%gKhEfR=HaGdc2TF;^WL;W8~Sb*`<!pMz2bNl{~zxk0#8-F)842UU#+N+
zT<NjOVg*mI&Tb{|m0c@~H!`yO>TEE$$>}wD7LRG<{QLPHzK6;VBp&Exbzf2vD{U(C
z$LkDto~g*bLpQxbF9rS4n<smBQ)&a>Usa_CYZ4z6uF9_as9$x<JMrd2p0%ZGUH^tD
z$#FTZU1Tw-hcV@W{glQtJ}REZModL65^Nbi=9{FioB1y|Rb!HI4Ilsh9W{FM>Jp!P
z=3-X1*6_X?aKb7}S0b@vzv|tJw0{9p>uz^yxXpNKDrdYZ(pydT?1H7@i}-Y<GM9YH
zl=D8V^h~5bH(QaT%*S|L+@A|+*1~7YuCKaf7BgMnuzl@}l^aA}x*WFHv|^&nglB7>
zEYsXz{WCeqaPgc8n^^Q$Z9V;v^@ZD-2(6_JGQAb%lKbcMip`ql5xA*c?#S{5&c_lY
zov-*McYHYhr)0$<-krvtOtDfg<sM5b#%o=@rIPDq*nL|0QItQU<|N<XW0ws-XunB(
zsC{NqFv~Nqd%0I7Hl2;M4t7xZlxTUcB~!aoRD+K-aP@S7C#g%ax|okF<Yg+IBR4}Y
zQdP#$f#G<;4X@o<XOx6wEQ@}>dww@??KA<8FH*XFg6S>s3wl(h2uy4JkZDpY)%Qep
zlG&rfet#^M6+H=S-Vyk4?yuE`^JH7tD=V@NaVp6#jX$xu$E{24x0FNDwIj@?-9~FA
zHcwc~^>0DToPJ?}X*r742j>L;UeE9MdVBot{oCyR{oM3#dhpkMKW_c|djCi8<M6Ea
z;W;0|ci;Q}_J7RZZP#Wn%&(9so+A;ZEf=*iaO);FS7oE)N<z~P-7`8F@9DBJ^NX?E
zmVa|<oK$t5p0Duqun{z`bLO-9-FC+3PquOV3Tci#v*+r#JnKDMDJ|-5QnbKSNJRP3
zQ`b+QW}SI-x-4<i+xMR;zqMX4Rx4X(I&I742gavL_19;ek(j)|B)RR9%Ka-3jsH|C
zJ#+rJ>_D6^!#tgh*7g=<>}>aYm&bl?_Wlu}Jw;a_d9R@L>BAysjOSi$<v4R*D0E8;
zW38aXg`cGb--FbaOj?!xC-v`lmcJ*sAFNY-U?(i(<lFvIgk|xPFE?izZOLq9GEnCG
z>6F>QvHN4Qwc@52-?JZTE~v~snA-Ry;YFh9Jii#h<S*Vl8_uc~>IJARpXWADy@)GH
z;qn)zUF+N2gF3gJXjrMP>1^s7t7^favt_NaQD$FEoXmaK!%nQ*pPoC#b@Tq=?DQw=
zN}Byv@jU1HtrLCy;@Je&+!&o*xqtrr_<B0{_Y2vy>Mh^>`~KHelm#*_l`~^udV2F0
zqmRS$bFxLJW(3V!+GWoYW>I1t_g-$^wu{p;MZff^eSCTIftgcz_$FaX6}j0Petoo_
zxn1A*x=Y%6%YxFFDQ`-6D?f5@-V;b`S=ZgiVe)0kyGbQy4+nYgVM_LnRoM{zx66ES
z%&I9zUQIpl!dAg7UrB9!L#dCd`Lok*lloph4gNmK#^jcluCQa;ESa5CHRt_5^usT~
z<5f$6y&Ioq<&qO}(v`yI3vwgRryVlaP>;Bouxicim~Dw>))T|To)i_Wa_$Y#a_bD<
z=CONj-m$lRC)J7`w@&FWu$=ws%1MprSiQFuJM|^ozAx<hZsZ-al{3@wSjF)+J_A9X
zPam1HlswmMjEh(;uWdPFNlcK;$BA0+WgPqa=c_Nwy}j(NkzC&53aQzPXQz}|y`6CS
zh05~{C*JQBkvYG_Z{N?5JkGOqv%1e-W{rDy?(DiZQ&;6K*|LEDXUmGa7K%L!(rW)G
z?EX80^|{fHjXDYEDlECp%tg;kpYM`WbY+28>NAbv^2=QIm4_2Iy^FfnIsM3yw8Qzv
zPd!#1XppduoSW98w@*9W*?(8_%O879%KSykwOa1Y7L1s|{loZR-HWAXPyL9LyE2{o
z#p%XRCza$vO>(y6CBBS$yXx$LeS5Y<zsxDVyXMFd6Xufa<7{Vi?xbc|PjRq&d`4yR
z>zhwc-d9tZJp1R5tH&0|eE7N2JXp9&=-m~UNkLq5&v?vQdF>}dRGYQxMX{%Q3%;$s
z5xKhT&AmuZ?KI!?PN6jh2dx*+G4y;X$SfnAw~$Ga`Akj1Gc&{WYxWE8Fyfq_a#b%+
zxi?l|*L{;UPb{a}z34UMRya9#-Meo|Rl-TF{gtJ&R_(qf!jT&4q_O&RO6vWffBFLL
z{1=X={CWQC*{dq+#{V(5V{XSivft18=egM<`}ukw=X?Ko-rx8C$ws$TPQfwJqGm@=
z6gzKYS`-==am?k~&kYW82Ai5!rmqtWw$%Ui`E-Ku?9QMW!NobEZp&XWdz=aN^LR1)
zY{{d@3pP&oC7Gn%rYo;YYB<XyxH96e>7UE%Kh$6Q`SIS%pR*@(Pt^Fio`d1xQsqC#
zvtCOcvOi@1`0!P?qmqY@NiUtX`t8N<)?)k4o!_(J|CJ5%9;bWVXp@g`SX6KNE<Whq
zv#7uN)*lvroE|U#|LOG)`uofN$2^u7_Pty_!{@YJmPb#D#7^^w?%)-(j@kMxd(%39
z^Q(IzCoavN+JB7K`ka7Ro3B9O*9uMr&fh`_Ve3P)&)!<U|6kNv(<|jy|F1Dyz5ic&
z=<jFqf1I^nEtDz5H`iKzeO8O=;hq$qW3eq0O)Ou|{jvT1J<dXH1^%F4UH4s`<bN&}
z+WU!fsv4V_wP=C4q5rY+IpM3Kdbj3Y{dq1VzU5-V+N+n?&P|(jh)?ilOZaMy*-bOj
zxQbPd-OuV|Pb$`kHcpP=yJn@PblG*bhs<`h^f+6KnxC)!-rhcAeb)4@^M}Q!^mW;P
z%-wU2x3e`X<6wf}$H&`DFKv%H_N#-({#LkXq)p$ut)*wIM1?LiE|9yBd*M_5v1wnI
z=tZ^8pMNDe>VUh7=`<agmeSV7-goVK9}VMDUpV{r2Os|Tk4N^A$j7fH|4&=@-{~@%
zDYNUz(jU8y1V5CMpZ-RNQ^lb9!<MHOVzV|rbTIN4p6Gkwjzm=OZny5;lRii;=7|0D
z{<B5NEx#Knzor?vc`xMu=;3;MXY$pGc`~~SPk(GRF1PADySjdY@!QJzAB%dnyOgW=
z9GP;iPg+${K-uJFrrWtyk{#vQigGt!+`F`mIW^k(Nh<f$Ez;}j&pzc%%Fpgu*zU&e
zCz081|M*9P^PF`d6(3$O$p$aWS>f^4q%4l(pt9MsbrQ$(c=*3p-D2^LDf=_6=<4T#
zvFj73vPtW|&tz!wTFk#(Uqd3Td(-bXY%i}T=|1E7!I{$&mb>%$BiA?Gmtrz*H3*-}
z^nN7tv-KXU%Q3BQT0RZ??_M?0{4F9<u>aq|Lq}%KV4U1rWm@xgf6nf-#IDvA+*#k&
z{kwGWW#Zvy?<?c3^QB#1@GZAzwM50f=zN2`{r7%c5GtrG3_A4q(~-%$I!lVu*)2}o
z^jfjqC%oN8YqkO3r0_X+nYKKA&a_zl?}h($dU17$&0b$+?#a07%2l3zz0Y8mX-U_v
z3VsfwcZm~!Nu1B>uUNFTp84%9L-i|9Z!GEGktq1}W2xipS-Ja^{$BO*+Ox@Ban--C
zQa#(I&Fud4{#?QvKi{j$D_fqfQ!+JhmhY0jweXC7$J)U6oj0@9tmB&QUSV8Ux;5+8
zd6mCMn7QJ+o9tJ|$Xu72*#CZ6!n5~tj!a}!@`y<Z^l26l2=vYJFhBP~n5kFNjIYbA
zDf~#k^|ha~_nJLro7(^QUh}ads(kB~U08EFHgKlW#UEY{vR`Jp+$z4K@BHn5m-_0Z
zrOZq=^Uo@MyS|z6cABW?@{XNFTh_jRkjQ8Is66riz06N5j3@2SK6}N@^z7Tql9{{3
zuF3t4JSBF3o$;Jd{rNie)Vg<f6g^g-t1Aq!f93ybPgHE8b$$zPKp@|j%Q}Bf9y%pd
z_q^`AXY8NVg8yC>uiRL%<%X*2=aW(m+iIqB$@iUC`Q}%2O5xJskGyw(Y`vM~afu~Z
zqPJ7<YSz>>g(<fWbvjM^y8O%6*Pa~rKW%xuc2V^0h1>s_eGC`ya0rw2Ivk$qRob&g
zAm;DtdySu$6)*oh@vbDxLO&mcpikO67WLP1MV?ymD&xw#q%a?wsa^521U4V4?DMn<
zXiVLD)^(+;qW!LeO9gb7J(+OG=|n@1>66dSb98ql9sRv&-lPbP&%y4~0vEZzy!P_w
z@#kl39eysJ)Kt33B1h#5N9Fm)JT_elo67&D-v2AJQeJ3M3I7q*S6jLq!u#GUKW4w?
zE8v#0i;2&B<(_S&j7ttrOAcF_lJI!8cE}&6BPr#_GUS&CIDWq-c}3bZ#xL0-&0_JD
zV4kb)cN#a%>Ex7~U3*t(xk~RfmDv((^B+!`yQ;gY<xJYzbHB5ucEA7l!hX%WoLUh_
z4a*#c>1*n{!zOjHm0P}@AtKebFkSTuzvPvtUS}hD^w)-Q$<EU8_dC?1KArRJJe40d
z@ivKW&ozuE>a}<udHCV?RyX5+UaM{?*&A$T{M^36*G+y;p4+J+zfWt_obyUAF4pPl
ztX#b^*wWQZjN^I*%a?y5$L4z)WzAoItk!GiY01*{N-WA<>L$TrxAyqWKfGRl-hl^o
zy#ICjen`j)T0U~!;`B}5oj3J|kr}&n(fa1yyXKTQ?=~^Lx>R-VtzDN*Dx1AHANGZr
z_!O|-F*%|!BayY(_c3Q-k))Sy9e<SU-2GP`g-%%ErPUYq=X`sw?B&+}7_rNilh1C7
z^wqhp+M&t!x|x5Qg;6Ho2g&6Jwt4J+{xde+V8ODZNfGkh%AOMp?KI@t7_UpoU)-SN
zKA~Ofr2gA!x3l~fr)YZ%{%?|~I=(7ZK}%%w=jfX7jW5=HTKM;(-zxD}mmI~}cU1EV
zIVA@<>F;X3_^$cyG~37v=akN$KcTtud{0}8@`DV8O;--Qwb0{s<ZqighpA|XN?RLu
zl|c~q&$(Kx1s9#qTFvkbtupbvq<z8EJ~XKFjFNg?&ka2;*4wR|xl>g+qaMGCdAHC}
zY_HXxi$_vdek^qMVZ2{!qAXWwDlCwwdM@hI{VDpqv!9-y%2N15;miE3FDvdguD)sR
z`t2CM|Dpac9o0R0b6Sr{ZxH=(vqg39%x%jy9b~9veOno*@MV6)n|8?{c?tG&zdbhV
z3%35QiC(-cMaySKt@+D~kLCw`TXC!U|77_)Kb`I$Un=}&-IKVC043A85#65h@trZ5
zSBee0R|#%iD<XH%b&cR*%k@lKN~;6SUmOrUasAI`Db*B)awpd*TR3k%N^93kN`G}r
zwny+%PYquwZ{?Iz@&bKJY#s}Wb{*_Jz9V~SVydXycJ~soNwKTduI0QbPnPQBZj_tt
z?D5aL^j_V`fO~gbe%#2>c=t_t&Lh=}-tyd)@~@pAPFd6S@$%tG>jh5o25l_Xt(<zu
zY<KL`Ku5_WX*Y#GTlOvSebIlaOyM1)+kU?(e`b~%)`_<ngc<hQ>{(PirAj70%0xH0
zT}DOa`;V=&zlC?7OIZ3~>dLvCJX>^159fzImM=Ky{MGoo^fT7iMfs(<n(Fo$YmPi|
zFTLek7c_sz1*5O)#bh{RcfDNHxNLJ@Wm4RqOTAv5my+)FHCHTMGV#8DPkNa>|HY?G
z)h&Ihk_Dow`L~m}S4!mVDY`!Iityr$maU&0H+M{SmQ+Y@;1mC4Q}`rlb#bJu-*rVP
zufD*Vxt813t4lX*Gd(-8)n?O$&(`b2R-K){BUe&FjKg)(xeL3pzvq5B{pWi9-|%3z
zcWZ7*f2&H4n$P#Wlkfh?B?A6a7BKH?EWg6|A?ni&by>$k84c@?{|s0rS>7;~Tl3|B
zzfAt0fKJ85hVl>XK0RHjY$fikmS$AxaVyxkNAudG3(Kr)GmhJs+~4b+dZXdJUU%xv
z12epvIu0@fd{;O+#r0V1qcdk^0|i$q^r-Ag2#9~$c5(XqQ~Xg+t1e$wd~rN};k^%L
z%d8&q3wP>vwH<8UA$us|b9lk_B?k_t2j22kxa6}q@8i)k5`UKd$$KPoZ{<aAzk|{m
zd$m}Tp6R&sZ+zj`YkkhON$yov-7~>kS=Z+*UR)t3B(S-;@Op3T15VKZXPJc3;)#`6
zE<dX3(~_$1ip50y4qWr#0`In{oHfV8uD@QqN!RA<r(-h;Z!Y4FoAhB-`J;t%^e$fS
zh*h#IT$(rcV&2yZ#hE%&JT7M+T+R@&$d$?V+Ul(lx30a|JIhMof$=lW0}WX_u2zIM
z|EQXD(R|)&x8oIYzOO{%17aT?zWm#J+2t7$*KACCkDE^wSR7H+eP)8y8PiEq-zypS
z2q|9N!6P#FnKY-Wzzg2^l?y(cIX5dTOeVfd;=ShI=0bHvU7rf`NBM1W&nIu<Ubrs!
z>YPWxF}{&g6t{UR=y#NspLJJLG(GaUv%zMq@Z_(P-#?YA-{iAF^0BW=z}wAFMQzKL
zaC5C(8gy2Avmy7H6zK>fZ)V@_W37oj?6F&3Ez-4nc|12NnX9S4Sm1k8R$61vo0ndf
zeD#*h{2>17bpIq{W7gxGa(2xMKU}^z8!vod+IxBRv=5?_0{U+H&qzBmPelH;$u+g;
zEwehyA9ExWh6}e<S7=TAt0sSh<Fa9k!nr8-%qw<}+Sc#0x3jLP-cepx5fGYbx+z?y
z-gl-;rNpU!8shKH9h}o+wd?h{r#Cpy{B}`b$UAw)gT;NjOl{Nto&(9g6OVcOyqmDO
zt<%F^V&3^}MiHJieLQ=mqFneJCYW#)h?LxY)a?5-%1BPkvZ-`mcfJ49#b=jPw#5e9
zd`~oed$B7r!0yVulhv;#t-bT8*~GiMe{#;fUj;@w_kUhee0SYQ(&)Ws>OT8(tKygO
zo4%fzW3jRE>{a%I6TeI4s@<+G{qQS~?XcF86`l{6dX1J`iQs5%H~P6`!EDuudMQd=
zk>b98LJ!|rwng4F?S$rpH7*)aN3CA0p5WPjqV{Oxo?TPU*sToi(oX#Jd4bDKCROPN
zuE(}pl*v?RvQL<t<2Hj$I`VT^XR-$G#i_4<z3^&y+w$4{qB85b$Lb2VmZsYoPU+%1
zcxm#n<x|ccJAAZ4UwPH^`hC-W+27qDT(|MZ`){wJwEk5m=hl`={{O3cq+Z{7|MZ3T
z?TcQN$NYGnX47Gl!>~mCdfP$Oqbc+ME^ufmk2@*9_rm!L(!1QIZ10*F=kZWpqT;d@
zhxPgmzkhnYUvhY7@WW@FCq8Z26uPp6?S+=DMBS_Ri%W~1a9KM?TtD06^zhZ4lJab?
z8Kn<Z8J(RLoO!CM_J#4QP6_+oV}3^KG|oM3*?(I^p7;J=<+%qnPajy3cP5OxRiaL2
z^KypcI;{+u^EUl_v*q|PjoD!~)A+ZBd7G&JO;~8O?ZY2~liRC;Z7zrXkGj0f@oe9*
zf2z8YaY9o?J^3WnTz7k~I4yZL^H;XUWW&>$4+4%j*kw4c<TaS$w=JPIXGW>VjJ^%2
zb`cw%-@0~O=TQ3ciHlNiY+NVP8r#Oqopv!b_5KWfrqIJ7*B2zNPdl_OI`?y*vRt0J
zyq-@>ot$8o&?Cl9!-)z~fww#xZe_XVUfVGF&T7fu;cYklZ_Jd;pZQyP{%^;=tuNni
zEm2+iCM|gV?Nj?2&ffUw8|WjvM6|nh#`}`QlvUTZzS+tB{_^2d%c4ZOYrOPr`$Lir
zziA20c=KdyhRsh#xvdZDE8f&jx!~sX>*R^J!rSY^?mymc9rkElQmw)M4I%~sQ-2(A
z-D>wj{<>Y%jAJ7H&wO-Lr_DdQgLPHr?#Zjt`&;vmE1%hRtdZBGFZT7}<01mWbvxhO
zS#Vt?xj5z54U5B?lcrxjIr;g<B!@*0qeTS2JU-{Q`mbT?i<bF0*WYvfFui2XeWCC0
zww-kjv6+k>ZEkJJDst1$UQGUypv7;!E%Td-*ySxtJ-OYYvm4ulo%Bl=+*r3DM%hu4
zZRRWM0O`nNJ@e#Fky|HCZdI<dmRBh*i~IKG<+H?ft9ot;wz+16&OW^>%5ah5!yr-5
zckg4171E{`DNn3-dp%!;?bhv$Zkx}AB%OWz=($_m+ss!B67z&b*f#jS2)*HKEjhDg
z=hGPFgl~$!540Va_dI##r%ciP%a>HHc{=^bvkJD}ywi(r*l+sVf7;(BM1Jzy`ak)p
z|D)UA-+sIH+b#JuXP5qc-@VR$n*7hZ*XwhIKi99zU#oxp|M!UhAwOr{PyL^tm#26A
z|LchVn-A}8E^jYh|Nq)Cw|Bn|FFO2deO}($wfXDv7XN3T7Z?Ale%}%KPaX;;_jXAs
z|ImLCnV9~BSMtK)h3PX`S-elPIQKLiaX*u^{!qk?<BtN@Pk9;7;yY<-tk|V(J7!GH
zo%>@Guis?xO^Wid4&mzzA}Z>Zy5#CquQaqf@$dTS{#wDG_uKyN-@AA3l>hPfe=U}0
z|GzQdC;z1VYk&XW{(r-+Yxg3a)&DoDpZEXx!IS@v>Mw7<HoLn#f9>V(`uFADMqj;l
z>eTtyzqPg5#o7NHZrgino1R;re3#H8ZSD5sS6`Ki@Ro;#y?giW&F<2Y@9SgctX1gF
zS;Nz$Q1UkK%G!M^Y>u00>Ca29kpJ`i(ThiK6Q3USeqwCm*RlA4N#z`gIX`M#_k8<v
z_u<jF*5Y&f>}>38Ztu3RTpjk!zfYg9U%zbi`=)ml4B1rzC2?#A)#d(Ime>~@&c5E8
zGF51GZod8MeHH({z4(zob@SovyRSYzTptsnedToC*AxA27bcuY`1S0~hpTy0Pw7AU
zzJ>e2-Ot_e2`(P{?q)ry>kG3=j99y8!{KUsiMF^KTXH^$pE!T*e}Rz948gYRKkmxD
z-soLl_ej1;kSTYqfkZ{@YTG|Kwq-BQ`zr};xxF;Yd-b<v)t`f()@yGosO4X=FUWrV
z-?;pw-=CiMe9NCZ@p%kyjM2?M{Xef9`|#OciCtJsJ&X5F+?M3E-R8B=uf6{Ka=ziJ
zxco<Js`pl0Tl7^!VpU^id^~HQ$ekC?*R0B1uFp+yxGBATd*Gub^KR|@+OYO+-lLai
z&#qbi_Cz<^x{590KLWMC)D@Qt@O);OSG(_!&&NkUyB>U-uFk$c<lFssbLYPgi=Q{=
z&)TTUpH=^#yghj{@9RhHU(7!2YuM!@mBO@7On#*N?^pT9pD&NSdUd%sD^>sF@9yX9
z?)B!o4fZKbv%6be+i^es&EA%Wo$-$<L$&SYWn=c-T)Qn%Zo_Q8`}=I~T3c9H)$NUr
zeSH4;^6KATDyQDEJiPzjgM>Kw_hE*Dv#gsocAbCU$H#XssD1e{gH=nv@4fT7y8U?e
zhUZ~^6SrM3{8#H%f4RqD*P4^_&fVWXWp3x)KAug9`8kJHt$Dck^{0z_zl-Mw)a<$N
z`{sf3+SOCV)pl^k#T}QQutlxW|6Au1jmLa?1!uMO^<=u1zKWF4VtU_xK0NNyY4J}B
z_vUO2s$6(lPO7cu^??^EziYL)s>>>>it1R3K8k1f6<h8peJ7~UqR1jHV$Hwi-hT66
zGcJ8Puby6C{q@_E^o;M%6TYl8=Xm$!dU!^Kw#}uG;KG+tbC#|$Jn_=t@S@<edJWY-
z`WJuZPVirxn%;0z=e_Rt%>on7H+J?v-86UJT$w%h_a8`Y-#$Y+@&6-X{VPw?j0!g$
zFRJ;m`R~6kf0*>nzd!RaAjf5s-5Z_Qj;j3^e%U?$wD8$qC*#_;u357-eotfjbT}+C
zKi9eYy|8M(uFyW2fUt_P8&X}{OR|;p^j05T#IyYJyQ?=(?*3eRLHgT$hy3R=S{lTU
z@40T&B)9JH42QJ^^TVBXd76b^^1C}N^xT5>D5Yc$laJHi_upHj(;nL-;vm&-^HkvC
zr-*GWo7a@>y?Es7tP5XW{w`K|{?a0)U-%k-vBuN<C(q6#Dk-|2aMa+eRI{7>#Y+6Z
zzeP@mGkiKcxI8!Z-``(dSy9#}&H0Y$VDES7KD&t?DVs!2<k$Rva(B0~%6IE6oh&OO
zejGaT;>)j)^${16<~vkA7F?~;Vm8OZY1R9;JWpOf|1<ILr!e;8aTEHgoJ}r&zI^!a
z;=S9y9bEnS`ucNx6U*-(U<%BNvi}hMWA6&%xof)PDvr3hAAf&uzO<3(z8M==20yxc
z*m$d~TF!~!M>SU%E5grRdpvvZ-~AsYTieyAa(^>i?<ub0bgj{NqWXg@zBSj2-Phf}
zXwfXZZO%z~E<GKyHZhynuak0@txvk}ME>vUf*--FkN#KHoW6;>%Vp(y-YE`p7oTvn
zTyP7RaIL=Q-N_fR4h56%atoSde@`s?pZJeKge{`UB=CRmajwmOliJ)(*Izz-c>U-0
z>Gzt8c>V?@zbISxb>HqsB__W^zHa!i#QW-zQ>$A;J;c}!SMSL_renWHKJjnwnz_!a
zcKz_*xcdCh-{tSWovXXKR_^%peQ^R8-ljd;n&BJM{Y3P|vDanndbO1b>pd;<cE!ZV
zNZh~t<EPlB?fdI1>i%tamT;W+v@u`emuX|>zvFdF{;98%u3okINN#59yQLMrs<+Qv
z64|%qzxc-g$6|IU{C*!*eYfNPtzU;<-MaPc+O<pne($|q?`wSAIlBD*oCR{~Yj!{N
z3D_kfHtqh7yO%c~-Y-9Qf#0ql+kCrAF2x0%HC(In_LBGR63^XV{>|QdnR^e1?md&U
zzuGcm{IU}wy~LNx&UAn2wIcZNm9%E{zI%Ju&6)ppb5<Jv-+e*s*AwjW`TFDb?|e|d
z-^Q}}w9?G|-|rnNU#|RpTh@w*mwM~f%PM8>>{z<1hFM=_S55MzYmybU_GZVYn{0a@
zp;>JidF!(9=hZvg?pD+-xjJpu14ED1uT-{%Zr-K6thIURTFDP5FO}C6mMN|M@yyZr
zyxoM4|6UvHyPW!b%crJ;5A1g{???%>(DCuT^p54*?T?Pnp30@&ayhM_SnQ%>6tJ*=
zyXC1qy@F?1OJ<23n7PnHnBn5a@^8Nc#J&opEJ;ha-@W#APU)Hz9RhDANEqKVi?eQ?
zc=xC7U7eX;3w`x=DQ7=i`N!F|O>CoFwo=a=jdZo^jsH(xYq}Bsz~cAx+np_~`n7H9
zZ7qocHfpaLYQvHo>)fgy8CdL5=4x`xDAlYKYMW@h=bxqJ&JXLq?^u%G|KsluIs4tt
z&FlXh^*Mj&rrTZhV-ubpXV}ZsTR2U+G$+oD?+DYb?|U3w(yo*=S0`I&I6f+W^vywa
z{~;;S+HHy#w)yV=;df>B;unPhKF)VmhNUSLoqpNVWU%IhhQh6h5tF5zSH4isP&u@2
z<0{tXyUTdRl}&UKgysje`qh_M@U0J>CKu7PB=t`5;Wv?WMQaOs3QZ5rIQ;DK1Vxoe
z*HmUjxvdgfx!}mu+s==TrB^nJMb4F}d-kAs3+u*>)9x}B=$51~U;1KS$vb%}+p;x@
zf0F*lGzti_idl+khrVhpRl0V4cJ#sAL#n$Ql#0$D{(s$YKGQO%z4-@hCJ676n51v4
z+7sh*;KIVWOFqqH6t#NSVbRU|#F_o|)?W+v&5oaU@SWwI=EdCC7G%k2Ja7Lko?ED;
zy8qJo6*JFqTJ23>(0HxU{`$n<_Z!*wxLok@`@O(5g?ERpikvF*8XK(|whIhZ2d34D
zd)|C9*}-4L^FY8Qt#=Phn$orUO{9`9?U~?pWQWScskgnWZC?sGv`y|k@>FHxN~?7l
zle=|#-DlJ@AAbJlz%ItTshKRTeUF)??>bpux^!!UZfEh=Se~V&24T7jPED;i_t?Jk
z?qsHp8sDkz5%12*PJD4@TJ?oGhm$r53d#C=rfvGGCos9R(PT=Fxx|5)zIVjduSs>_
zH(Q$Y^~cqt8+G?pCZ5RN;`U3y`oVAhxBYGIOwT!d?%Zu`ownTXm}AqO&o%#_I7B-8
z`|0=j^(}N%wtn$hwCWja(EZTL@}JvJDfjR#K9}-t(xrbst6Wy^e{zo}F>>#OEgnCg
zKHPoTy!yHOi?2Hi9ZvMmTYq8R^Jh}mN)28x)oQYL+x#m%U}Uts_hk5-6=JVsI+#jj
z`aG@5kIgx{^pnOkizj;z6swq4PUgKLJ;S=uf^`O)$ngW`get@AK8E_Xb3SQ*D;R!d
z#_T@_)KXvQv(MPd^sFt+F7RH}f)62bol~rKy#1m&VWvNmRqs>%7nUEtetWVabLm49
zR>ywrl;!6bRX*t-++p@eMrOvYdWQVKQ;IY1h!uZXa&$>d&gQg}qSsEAxas73b6kkh
zxZbnk!9DM{llk4fJlY>WuzI+o;~uYvu1w3Bc9){5CYtQcd)M#DXxZd_t^cLw$E0vM
z#V_~%z6lVL{<+okgG05(_TztMZ``=&>?E5aQ=Xphg`wW20&W^p&zkMn_iM4$vg4c$
zY;rk~8RAn+0^TG}e*DsJyUZjeRTt^Yx0i&kyjWJ9_+O|}+w$e46z*gf=d4G+o-DW-
zw5j>j<#J~8BTx9v`NHSD?-bUuo9j_>R9!FrP?5#m0<(QjMB6@}2va|2naanu@N(74
zT&`>36PC7qZM?cODQWf6*C%zDJj9<J^4RI@x^(vOj*~OoV#D6M=ovVkKWViyp|j`r
zizU0){j`=nd)DIEQOTASwG3B}w^+<{`=E1i(pgr6cO2f|kG!dsWtqREC*|}3rjYA3
z&MjB`1B2_fw0D00`0H{@w-Dzt>yKOZY+U&ycVilh`k#O&{T?d})bm??XCIrqN96L%
zISvJPtInC|skt2VHj{r)c_P03vfq^>Pk)7MwAddJ#*nIYSXlb>&G$34jx%OE`|h$@
z`A4YfeeUZ7n@8LN8`S4He)`e4koVo3-vJrNEyO%;6urrccDFm&b47OBCk^G#tnUIR
z-DjF3@UT<2-)Y^WN6$L<i;226-nNJd-5A$1sXnLagv#m84So$FllGQ0EUBEq8Ys@&
zb}nJzoSVWjPWR@!RNuTFSvXNN^Oj+K`MW16%&p5>51F@E2i!RPq`oNYqf$^6XR_w$
z7;g28@sn+wJ~}V&Sz^=?rNk~7EpzSxyLVhbKI=ry<w{0fi=Vfhm5cglb7~LAoYT8R
zHyKN_xvsQU%v-UmJK#9S+SVmmtJZ(yvnq^PzW#9`<K>-q&rJRC^VZj5gZ&j>1<zbi
z^_$4wz_Ms@mCQ7Uk6wp7LahSttZ0x3X}7!|lO|vjR#?mUIf|+C{nfQvkGL)GZ+iM7
zSY<Nv>Dy{EKV4n6X7Ul!`Fj-I7Y3O(y)WKzlRxUq470s^<zD$IoAa=3@7d;dSGKoL
zPW0Q?YUcILvv<g6ta+Kl*~qZk_`uGz)5g9r;ePj4{kG^ZxB3}!$^ZN3f(I2M9N8(C
zr(Cyvd*sQQ*9$ApbpJoHkZ--8pI)E89$(;Xo3_GsrFo69+OyQv{_c60G-;ze*Pbum
zK3sK``B_+4v?}gK&7y3+S&qt=j|N`5G0`dTDgP76ewGuLIo&q29B$xNKXGYZ&#W~z
zi+0_Lnca9PPH9WnGU3S!)g|LruIGp}yZe~a`a^&73-z!2B@RR?NxV<JCne&zY392_
z(<L`5c-!2*-u1uhdY<Et^=G%1asA)AcjJ-z+W$Y+moVHYXJ*nCv75vEWtM<pO48BQ
zI}_c#Ic^9sZEI=pZEl#^@k>=8r%oZl=*P#^4NZH675jTwz2&X=891WbH0*0SK8f>v
zi=FcF&*=|MCWo_ge@A`3Q+0ibLz>Qvqotc;)%Udj_bRzHbJrWDOn(0UpHksR&gfO|
zj@f#9ty$YmPw)RX7dCvDaCgEQg+o=RbY@D3Tcz)w=4>Vz_`1dTP8Z*-YXK@Q=QgfA
zpY&vsT++lZF%$T6CqCu<zcFx56U$G@tQjA*r#&>&zG<N+eK<ov@xTGqRCeWRbscr5
zPcHFo$EDA<7EP-Bw$YR2RJHo;|BgR<ZysvubGcagvvj7xogAT)eyMX`hWM1SRefIJ
zzAa3rvU8hqV*cA+_o|Hx49e6ed~PTgt2SF_`(N(n%-MRqHyl3w<9@fsB1*^M^(iBZ
zjF0;R+tzUY-m<vtgjeb`+ud%}Wz)>Br`Htgy8EqYwUkulebCVz(%l$VU()GQc3XmR
zpFzV;7g=+`>GBMnZKt;@sefI5rNyY_9#6%*d29vFVJDT`J(4yRm9BsDibwt8&f15^
z@8-N}vpM>0@@<Vmu`BP_*-nT%H2?8Ep2ff2gx4hsS-$@0*wEpq!uptR#fll%3nMr(
zW<)Kxo$=;0Q-WiDnO}#k+<ASyDUp9)yj>XKc2r(!b8&|G3eB?r<`+sGSy$S)=-)Va
zH9wpGvNLy8grINwymtjA?JJ8b_a)EluljQT;A`_~mtP*ZD{H}X&X0L-N1yvc?k^Go
z>(0J>^Wn?ed;b*U3?!B>u8MIC-ub}K%zZL5`|=wbjvf)P5K5Al<2@uEaUgT@DSNSr
zqLs}e;Vi!OrZ4k#0(WgxKl4&~N8}5}MYlRzUZ!O-ZO&j6-rC;DzRAq*$jO2i4AZtR
zaOOYe;k)?Ad$t#vOAkk^s^`AB#&Yqqi6<Vu^LsM;*1!Ab!~ca`zL8=lIpLmL-oZky
zO<pfOIs&JzVEX%bq1Fxc9G{LWKXqR8P5&8Vdg3pSPRj-9Z!5gSS6KD#es^H!^_X>s
zYNNvfXCG_zjMsfD&D2q~Zx^FSkLR4)l~Y<2BOKXO<zDQm*|2+a-+8N7XFH_#6>}_7
zc;cnFVZo)>B~Rj>@Ui(^n%N}uZp9rQv3cK%6hc&$%uaNzSSm0jKJ&((Lp#rD9ADu1
zWQ_-Vsp4|6M?Nt|c1+i1&X?}Hqmkrz)?!zL3zsgdi}|YmEiDt@vs)F^9$I!fxiYJ;
zuEJuYd*#M6r*)qRv8ToC?tB>5wP(JvCEt}8<6Bo%)*YRG<;SeXp6I4b&WlY~L|!be
zXgwA(XWO4gQ<kV_?6eVj`NiI*GIgQU<YJA)S@T6B{|3)-kmuuzf4jH7`s2n=5v}1b
z=jgia2==VmINLG$g<a{QPUBXQ<(?DnT`82kf4Fyb%Z&_<-KFm(i(Kjir~I!gXrFyf
z^^WMj)grT(tEU+4xl-5iD?IL}cD<;!(%w@~!hAe7MBG%mxRyQbgobm#`3qC!3?CJw
z$cT$@bsZGm`D}+3pEI|H^5Q6Ewm%E6?4DlRsT|YtKIlhF?p%MCrura<ubz(<wPqRX
zh{p-Aa!q;Ps=NMl_4SF8tEbehQ*@hbGI7<h6S-0A?rtyFnkg+7{m7+px;y*s|8q3X
z7c{IDo6o+x@x4&o%l{D^Je#9(e@rj_esa~{{uK=0=I6ey&;CEB<WQRT&Ho{XJy*@y
zbMeG4*GRdSENYGlNzA-@_BQ{1%UPvvdDgOL>I`p-`;T0wxP|n6>N@YpHAAjf;7nB3
ze5KPft%I}Xzq~9FW^}Nrt+v5%i42!YQ_c+LLj^UDSN&Yfdz_Q?M48B{FKI$cr1H6H
zyR)l*KHs}J`5V`f4du)+%j71!+w{$(<leuB8w+|52K|52Q`0rKcIJmwsZPIC%nF}e
zbCQf=zkPxK)LLdMej%+!=Zf<c@6RllSD`blM*K>$fcH(V1raJC>o15YeBYeAS3im8
zic*XNTW_Oe?+Jmvvyu&5$D4RnCY%pf+LLs#x1E=XYvxSOnBbpMeOm;k&ig*|r)QVL
zjn5HFjooKX`F&!>Qq{AmEKBs6HIDt5bccuM!+PuYled4Wdh%sa@SPnmKZyU)6v>q2
zFt2{zv&%$sU-B`d*qPR;59%}~uFvRxe8c*S=9GhCoA<dLEWRV7>#1f_Rv5m`Ql|IU
zQl4`g=NWH$7o!+0aX>$xtLD$S311l_8vD}ide*mOzv-J)J;RQ-uIH@ZqqqAb)<?|h
z-1_O}u~nVM%5lpV1XX?R+{BxG?BBIjch6mUZhbfDyrBD!M-i7zeH2gBC_gYsRyTe8
z;qtwnB2RCJhb6mzbvjj6t+iUklydn+T>PTmT^}3FR&SKL=8`RXp?KHQQ`<~`=k1=*
zX%)QpL`}p6rL6@{pBG%n)z5nL>*|U<Q{Ja#oQ#iObbir`#XbSsX70$4J5kCt<8#r*
znJ1@Lyp?D9pKEZ*>6Lx%`n75w@4wD|{Z{qg@Aj4dO?aRGv3+=`Tm9o1$M*E;jw_yt
z`9(M#oF4E&Ris8s#74dOsSvlFv6xNd{-@aonocK~3i0l{@yMo|eNuh#)S53>7Von3
zULri_V1eQ9rj9>x@BA#qH+#f5+*fz-GSXiv?4DU3yJmU~YtqkCNB5{*`u-TSU)Fq%
zQQ{kAGe7p1F49vX`{uON9XPr91t;TYlQ)@4j>nGt;aSzu%gI~llq=U#GGReP*#Dml
zGVZBq%_qOv__#RkY_K_3c`9V)l`{uE@9xWK$^BYaeu{hIG4mXe07>67m#$_kD-+Z`
z(WYRc!tsCShbGN#|CKxe%eeI?{_-k2wruyCHR?hamQ<fT@iSDKC#22l(UTyzMMXQU
zFYOFAI=Ib!uTWq9%<?V<slL+J3*Jq+<rlX^IsWGLcg-@pw?7ba44u?c%(=1JJi|Qn
zr<L%Ii)xMu%vBRU`Z+N!YI-yyq}f;^dZPK1a}_g<Hl%Fpww-@><{sUPhx#O!Hff&`
zmYH#`_e+oG3QmWx`@32B7UqatvW*hUOIK;0D4D?0e7rM3Bq)X>S)p^w&$7q^mmAN@
zv6m@W9LhYmQ<QbT&;|>h<L~?|tKY}GOyRL!*WzW|XDBwSvq5Yov&Fee<qtDOOr3<8
z_a;3#@-u$&&Ba$AE)JNwO^_)-%hjhR!1syCEDz?I?FQ?F;(t83SAExHnb5h37hdk1
zGO;^ddY78X1X&Lw$v&sMOCKwlw4~+tyzzhO>9VHz#`2{5g6F0ww5zaZ`UiaXU^_ZN
zc%fjG*=CEdC7CHtkJv1l{N}cjcA;I{^|*+z`;sCiQ!h_1YFr*HFsn!O-mlJFl^s1-
zT3qyX&phzye&2AV<Yc8tmAPD$=eih+Nj5%>?&}r=N$%y^xbFANh4pbk4=V}|PJCBs
z6m@-Dcv8{YjGBp>Wp~b>s#jrcD=2)RD*EJQNyN^Z3rkk7c)@<PUU=Ko+do}iq~Gg_
z`X(iON}%)4vW*s35|4ygS-9A0@TfUGG<jh6sbPjus_z2dss49DdiDhO2Jh2*ER$=r
zk415UVoXu%5w$O_KT1DOc<8I`({oqJiRb-;*HOQxzAxF8w`9x9_m#8!t^01r#@BA!
zy7S)Ms<N$bV{&uW?0S9otMBtwn}6k8-FxdrPOk0kb7Eed6)vJrl#Vt$U(PS*^-4e3
z=2*HN^Vdd$6$gs!%tSstQqnlMU|S(;<K&lLZ{FLzU2ED;=OR}D-Baw7uUTfyk}1<#
zFfq*{Ts3ZSZ1W!u8{R7?oj>+PEtWXauxqQ)(+^v37Ogv!V9=-0`~R!o(~Z}DaoxHV
z)-q4=zVS8dO2#OetQ5EGZmu_G;`6$^XGHA^tZ90@M3%+ypx^~*{w>}NS=s$1Q@8j?
zMfq5CTbV7Jd3WX+Y3}{PJ~e(kYi_8mQDPV3{r{ul?@RwL)0ghcPF$X7x|dnI-{SaE
z2F6v<buZjHw9iGjZVlszn)c%Fsl}WcIbr)-FL0{apT66w^yS>Pb9Xz0dy4Kk*RH+r
zYQpU)jDMDSTdZDsS<J#*^&<~=Vp_nw4SJpGo2R|JeXMiIrl+Y4u9qTxpE-6f@%gU*
z`P6#-LV0_Me}@x#k6x+2dn>~Gp}pC)=|B44%l@CJ8@TVd*M`q3pH4S6zFEGus7iZo
z+<c=MI*JP394CaBf;gBa&EK8J$uv`vCF#V%^~}sno4yphpR;K}aB}7G3y&_!w7vTh
zA>Cd3=ilAahmB<}*=eXm2(^9Mb$XTHoCWDc^Y;HaX8DWnR-Jf&p!Ul<yB(tolxh=%
zjysC-+_-dFlEY#{C)c~gr;c14!uuqqI;lijHox5#W9xkEhpKSjg7|5NW;3mR@0P=Q
z@VP;dk44s0S7p9+p`yDV$q3t?nt1=vhBeVIudQDEl0EzFLenJ^{oE95KPlg4SZlGp
z@%mGZH7k$WG0ovSHuGV_MG@85*gKA!IykbKSQT|`_5_GMdc(FwWYG-G-#Hh*J-r|N
zahkUIuHwY2BF+*&wG4VD7IU-+_KIek6g4+DPSi*~mLj`pOPWYeXL{Pv;3KLo!UwND
znYygPXaC7KS01*^L-#kcC`xwENcR_7a^{0;_DQabK1#Z}9Sb=Z?>Nw|_3Pp6dry`f
z;3{=t^#5b{@eR++`dOQ1teSnJx#)OyUG8EjC(XJo9H$h0ckD9vs9JgQd7o=h`#ITX
ziJx`1cmL9R%U^clxOB6Y?t}Lh6INHZarsJ$=+0pi)!I?_tgnLe%q&rMb>+LSljGMV
zD~p}9U|rK?yQ|Sq_*`@M&nYc0d{XzOJd{7XWNDh?o8{B)c!o*~iL%^0cmArLp<VD}
zZ@UC7t*2LH+c}s22<<NZc4)`)iLbJjPuj{HJnhhuvc#+5Z%eCx-_PA*o0qe`?9SG<
zum2+EB(U2@CQrCg_q?uL;7;g*Zu`F{t?chv+twEsDe~N`f4Y6%&be=w-(FysUp6l<
zCnqQ0B75(<%jy2x=UJ}XyldmGtF7fLS-H+}A9wb9(D5mFs#4gO%VxVArnEj@J)z%r
zwKHqd&D^*xS;B#S0<xN_T$V<^Jkv^4E*r?n7u0XtF-7jD^^+CrWbPl|%obl@6F)Vj
ze|sv^%_VQoKKnAcCqcGiYstyiKGDswx6T!4^kq!eEZFY0(E5d~$>-;G9of@2I(MwI
zEm6tZDKo*r$inz}jGEr_DJ&l~HCA?RSG}MwQQabY{8RKR>CPivnbWIU4<B`1k-J2F
zTEj!r$9u$$LRZ)OzqSf0-CQR3V21LFG{@&}zD?Wwbj$p8R<k$Uyw$h+;f~k-xA(s7
zJ-hX5-{qZA`T6T|?PGNx8J-m^bh0bHsv4=~E5v3iyS=ma;C1IGZtipRSSxA`PKZUu
zPnmTh$W_DCk^kalHRbf*ji<b{BWDL~DY&rLZ{L%J4NnXtBQkGp+>su2`<mQarn{9L
zYgSq8Jd`<kLZ)MY>k65MoKy4Ugb(_>Q#hYAXX2c`g_ln3-1_B>Pid&?o`e6+Fa<S#
z-y9p6)A(I7uY6W>cwChaqjF32qf*wbyvO67be)mNQ+mqe<hwKHrme=y8NPWOx8&EF
zcq)9qCfT#nLH_50lQx~}7c9EG+<Ib0)&)s^l^vp=Syb3QGaPzZb4&7pkFClRg=m`-
zNzt2QS(-j=<=eOH+SBvbqTbG)=P7XOFvFF8tE!G@%ghPytirMba&OGgX5P>Bx|e^o
z{Qj4n|BcIcaq(@-TYq}ze`9IYlqbPcJvD_62kxG=#Bsu8=0h!PZ+xzQdAz3Z<iE1D
zme)f3@(L^FOuA;Ixvc(Tp>gHUh~v$TedR2Lb`s^0RgdzkybLe;-U@0^)KWUAJhvyO
zNFYLkEsFcEvBdZFvyG$!j_X!5ZhPmp!A@+V#kCiYSAUupc4F$}S%P|#1tiX`eaw48
zq^pqsQP1Vi%R`TBnN@OmQs^tyFQ=Cje3N}-q3m6;bW^_wNBNrLZ?9gxdWu!xwQ$WV
zmV*bniUW^HOxT^k6Ye^5iR4|q&YY9NMqB=#JSEi>YTkB%!Bu5Zpn&S8V+)OYybjMk
zYq{v<jM9c{ADi}w7dpPQ=6SQpkhRnEHlO@+CG!wXWqwH)*Ske5%x+sZTsqjZW#98I
zAr2|y<Kk<kJZw0T9X;pyzo;i3#k;mIco0~nWON{5lK3i<rWm7=X2s$u*IlnJFJJF7
z`OvY5onmVD7-ooXm5UHrlP9#Zt|QC)&TgZctv76*|C}GvdF{HA+1pcVIfNU;{!G|w
zQ2)MV?exVD^sYF){KOsq;Id1k;E@ZTV|sLsoH{<!DD0L!^O=7}9UEghwZ1$&cj^>Z
zM&bN77hc!D<2nAM{yopNJnKX)#p`ypzMHx`s%7td+$6L^J5B4<$9C;gtmW06siKPB
z83m?{ZBso}+n(N>6}@%e)la+DHopG8IK)R-J!`c{UH+%cRf{v0T3mP(*7K+CfVA+@
zgY9SEehXc{`(vSFQ)3z1GlxSi?g~;?*LR59l)1KS__gRnW5=0SE_?n~-%IDQll{I^
z`S<LjJ5!fx%nDdurYLy(bHkHK>&{M}vf7&S)Q?k)MN2=%|5_s+1RBKJHS19Q+I6}5
zALH*^|I<$1UgQ2?{in*Rq6u-&a~3eS3W}<R9PSBg`J31IB}!@UG>`R39_#;{G4Wn<
z{fvjcGheN&$NInF>pw=RHpb0--n-@To<%oSei4qTKP;)(byzq&QH)P1GdpcsUaXts
zXJd&9(}NGBkL-5(d)nuOZsgxbPfRA>t^a#d%Bw!4FmwC+u!p+@cCHl&6P<R2|H7W;
zr)_sMoKJV3ty-h9{L8~L?-Fl4td-ble!wHvHjtssV7{2AfnBCubnCOv??tPh9przQ
zXUcc?$gcCYB@^0P+wATic$|Hv>%)8fDlzHSG{rTd@jqkciNy#meshw?cx7<z!8W;%
z=BZlRMTfm#x)r7JH*#xC+7U8|r##hKzw!QxhXSPw7NlRDdtw*op%siy-H-S+Qw=n#
zIbJ1epX2p3+P2D~dA(0n?w0G^x)VOBO^KT$y!VFoi2_HZBU^Yhv^E!%XwAO1_K@Vu
z*{$BmzNd=yb2GmEnVq;cw&&W)fOq#NzKCIw<P^EHYq6l5`KFrnTmE;X2I?qPN3$H=
z))nj%{ZHRxLr;_Fe&xN_ZZCbwI{U%t$=+}G+@Bt$x`X@30dbY!p1gRK+D-m8tJXWa
zy>&@^XJB{!#^Z{$r(z~=53<$U>txg&wf5?&#G6y*eV=*CS@g`RZL1%I3Qykn<xpMz
zlU=)<9e0V(&65+@<kPkD?xw%5=lLyOW+`r*?mv&IX62>NPfy)A7_j$YfQoVQqo7sC
z6_ToyPpmm6DUr49YnwN_rC2)0;!}$ze%j#Ush%J<r+ad(q^5zk($c4S(?9!1>AnvS
zdA#PD;6L@Bt2EAt_FS6UG%07nsn9286W4@?87e82?d%C%I%%S?>P_)=Y3UEF>`Kb`
zrkCs5-+F!dy0xee)A5shWox@H-e^7kuPyW53DXpt_)4Fj_aE%MdOr5S5$)@5I~8B3
z2WPQtX!xk0<#{sZNuh|ZDC3hGz1^GIc6v(e<6IvSrq!|~TuZ+#NA7>nr3Fm6sWY0U
zb4pCB-?!wy|MOF=KmK34W`6s%=KuT8F8%+0_xFFJB{$2T{MVkoK+*g(^Xr}IdaS3*
zdJGTf7ua;lPy4rj>Hqwf|Fxg}Kke(aq2&MBH~&rxxW%^%fB5sI;D5&ZwIxhxa#r2`
zUl*+Q?BAMrgMIzE`2AMaN3#D&Pk6%|BMzSWcfG#y%Gr{nTkUuH`tCnW{GxP@hdutx
zjVqc@SE>BkH$TkfTgcQI6WmrsR@H3Y{@>h;>5oj02A50=Q-=KA2X2i2i!O)hC`csy
zyXy7iWr{f;+f-+5y={rU8HagRC~us1X1d~q1y#2fJ#b)<-caKjxHw2X?ydgWg-f%F
z)HZo3IL-ORe>vjJN>2HZ^0Za$E|R5@TN*i)WLq~JOMTsR{6zFx^V^q#y(+S92PnoE
zU*4u=Hc>;Zdt!mmzt!TxnxS^v>Ppw=`0guK*2(>RetlzT+=^)&lA8Zm#pMMj%<*d9
zwBnU|_Y7|7i)Ut@ne|-xsY>VC5X*o+qCPU4g;=#WBu?~>KC;v(^h2t&zlZM0s)<QE
zZr)jtzV&F><gMLnErg^5f1N4T@{-~EbZ%?U>G&hpE|*IbaW8u!C}X!n{BE{r&K17U
z=$89)3m2*hc3pbN{@6m*!KOL#h20hB%|(|Ua=osbrgCJdCEq)aZTg2&j{L}oaoTge
zU0ElHpX-RN`|``zA1j72es2q0ypp|Psn^;SZ$0-<@i=O%$Q91B;3)Hk!>><n5jJGk
zJ)U(p;%d1?q}|FbkzwlQjfxK@Gv^lSCl<3VGCjINWu^MIY>o*pdzGAhH1AFb*0jFu
zo}8oiDlUEg(QKW`SM2tl*%Nso_FXC0;az+w4~=WgOaI(E-KChi$?57>FWt|l>SK>a
zF3IuiseE+nm-*vEH51Yf^1Q4Q^w`KJ#LS`pcv6U(iLs|$XPf8ATf%zpcAnV!VD7Y{
z{m(1Yj4LzCkCmRZx^~quZ~eAgA6~8UO+FQ?JT=Mr@~?umO!qySS>2UaT0f1jmD^Ru
zk)3H=qMu@R^a<AqsZ^PuXKvRW!;jW~zWA;vaG8f;tf*OS=+mC=o$G3@x?Y-}zvrKZ
zUwykkbJE)h8zye$`@gR~&)(y0D{EX%>C7rS-8)t{*{(0{USGzx=Ah))<1;=hFF9~<
z%QKsue-;_<%zAY2L$Lkst}C)pt{M|LmUl^7Dax}6r7gUh)AMoB^Y}Pd!A*x2IL|z~
zt|HKD?TP76{>?o#eT9zVM3$=y4+$+`SyX?h!fExf8BCmpD^^WTO4_`HAz`!ah1nN+
zRgBGhj&<m#Kh>PMr>mo2jncowK#g+d+$i_w5<vz}tqS(+@A!3oLFXKai%Ewh^-9DH
zcT4{e2x45;F{$C$UghMpG81q6Jy(-;1dcumnzmDW!B2$`zkRzs4s0(H(EIMxm?m{l
zR#k-6ZTEt->Ds@#WI21f>R%U@{5Dzl+F`j6TS3LAQ%=vVcLsAZ?<sov^NF7<*S=LY
z|M-9LO?i8K&*~$aRLiRqN+<8$Y*cEhK6hbP^VLaVzEgU>&aYn;mcTXhZppfQri<;L
zpP#?hBB}MPcF9qr<AqnJC`>-xQFHQbPTz-zWp5VGkKNas+@urk@HXYrs@2s8ciiOa
z6g=uMGc@hN-bK0LJPA{~cPdYQDFHeMPGeGm;uZ1x-!@o9y9OM;wN-6GyF>6CRiR+s
zJ3BXhSs&B6?AXU0k`a=gye?BB#jM-pjmq2SX|u8`GbS4Bb6Qii<WrB>Gb^bn{Ff&^
z?OC4ZC*a<{<dxe_c1!QsAC^9!`&*_;Wf?E8%F?FD?vN?RCZ&r%S6_3wWY327z4vUj
zQu?_zc{*=*(qFS>@=kNniBGcjNV#8E*3-B(#q+@zua+&#T^8zZYJVV9BC~MjmxQ8L
z_oR?Lr`E5WqS4lpI@#cN>kf|T*ZOUP)-CmmuP~Gg<JWtbckyei4_{xK?$q4A5c>?q
z_~WmSarnIxoHpCWfcvx8rQ%%g#2-rHit#pFLR0@t-yxCo-zPCBU1IBn37RdEGQ9`q
z+H=gw>wa+druM>!HkIX-mAao!&HvyQ`LcxDTtC)8Y5QlD_R|G2oL6I3e_pw6(bGG8
zM(M`;Di<V1?X*poEAO7u^)SbA^~!m(1cK)tP}(r#QC6zYtYxmpE_>W`nOK=ONAHh<
zY+Q)5?zV{CI!Z35E-X7S_fg8$2X3;r)7*|tSs2$5US86>;k>TKw387t-7^^jZKrK`
z5T>2zDDd*F?CI}T>lPTO*FQaD_3(#RNW1uIjcbpdx?T(Y5zTZdZHc$%;|ycxlIM&U
z(+&%1gnBbYeobb|^nPrAnPsl<|DC&bZr!%_p*?6d>$Z#c?nFJZ-~a!Qey8pa*@gC}
zRdY`|*852@y>r&7$-KipP2z$oTZtIYi+e9$KKyv_qJ5o;Kt|raNva$rdIA~S0)7=m
zT$nN4_`rhq-}-VT-afqf@Z-K|;%cRQx^e<mohF&TS$ev@UJUd0uAZ^Ojr;nZ$r@^w
zxh#w38N_&h{Z~3YXH~hI@RD8POHZZ0wLA09{)~LXsp;AQWr_zGpYAxaw@&f!V(HSV
z3Le?h(s5EJHIHA=H*L#%9`%0qq7A{d`=))Z+Y-Gf%$L(rd2Y1jnM0@Rytkj|S#aWu
zu95I#+xNOg;p_JL<Uh!Nu4j4qul{6_&G-IayT1MUHlgqP&-Q-%^zZxK`~NQ;zqh^W
zZ*{$u`;mJ`Bo5t__P(p~Sa@5MgLcF{rRm#GOxo@dvZi1ET;0!!c@u*V-IIHwXQ^k{
z@Nq-P_xJ6myWc$7eW^Jv+4%kH_5FG|hcuZs|I2;9b=S6K{pX*o6<yZsd(gadO7QI4
z*_)<5&%dUn-#1sfrgm+Ma{av5nz80*3g`VVswt|fE173{O*eVX^G7=bAKU6O+ikG(
zY5L1BpH+GL)7|Blw0{+T;*Pp-Zi@QDeO01IT7NIIu?=?8I`XXI;a0Y~d6&9pu2~Tv
z|L4t8|2IKf<U7A=Twyl+_4MEF=0|V6w}dVHCTLg~v+gf{-GyH(gbYMuoV*T&<aqo|
zoG-6$r*gwvkY`!MZzh?*S%zHY4E)<H3^PC4H7t9xS6pps)9>7pr#x(H*M%2sedxIT
zu+#Dv2kx9-qiSCv&c9`KyYi)Ju_|GXo5}*uODDBHeN@!1VEn3(dCCNVH=cI{JHD*l
z>g&8jUS{6=`LcoX8$<MY?@wjq4gVFXa;Bi7b5rB`;Pl{^AK0vWk7}9+vGAJ-ZjwkB
z3}5@v{@&xzpKk^0SzmE8C#|p(JNNmN>)Yd?BOX^=Qx`J$B)`Kl(d<!U!?BYpJy$Zq
zPG>k@ak5C!4Gc__@@@;0>#g0UnzX!W4O4*e)}Kkt%d1jlB_GVY`C{>}lL2B2vm^FQ
zoWu|s_~wkPRf?QwhKGRJRQE{VO|KsPVCy*b`r!;!$vfvaEH^s7x!=O2x&51;|9!c)
z?~fiVs0wl0d)HvvO1()ONlJeG)4itDd~@O5BvdGzb~)x#tfQx3k%d(G3%R$2cg-%9
zb>%fkn-@jJsuu|`to-im=oz=3JtSKwV(NvT9oNz)td?TDHt%aH>&;KM+kSLRTo7YA
zTkS;4hOK7Hi+SA^1z9M6>T))`dO+{7-*Mi<_bLwXOg^if<}5o)A?&2;#EjU*x~o!m
zmfd$_;y?ay>y3zr{D3Q0j-EO_F}iYz`=^T%FD$089$9Ev%%c7N{<KLOX1{K0Nj+zI
zz2w<?#n<1jrENU3{ppl%mtGb|GAZ25J$SMtuEh7uD&q&IW);3YeM<TCrPf6);#Hbw
z{`~Q5+P>{p@no;v>!vKb7`I*fPQ;0qFJqOromEn^viDyh?S6Ciu`^F9^OH_=e@&a>
za-M&YSIQRAc}pr!?%8W-KJ)6))o)r~KRhw#YILAccfyv|fbTDF-MQjBgU9Q#*B<>Z
zYh6Pw-l*DT`+ZH?snWT*Wg7a=UHh0TT|JbZdn&S?J<soP;;w>4w9E;WSCd8UG(}S1
zl;`fqIq`(;$Acp~Rf;|r<c3EIOO&dFY||}#ySZs~eWP1X@1upA8D9R%`Il?&9PqD6
zY{KHXS<2Hd^|C7+@q2ps&=%jN%{wP-i#wtiYkOS!MR%mp-NugX>1qpvb{@!@BB>_R
zAEP_v<jay3OAN2(iz<Hq<Rr!Fyk2>|!;K4uK2!7kPI4A!%n5k1+lPV6NJUL&sd1ox
zaq;zUuYTRRGc`9?`>fV_|M=phk}DT)Ub?b%$I+eYKTF<up39Wg@$D_t*d$z-SJBhg
zSk~#F@<7aK`nNxeQvG(PW$xNB-#VpdgIAe~NP<LG{L+re#}EB!iOJUYayy@XXztvz
zAAUS}7NO<o#JPBm%lkxCRgtNztm`_A+~!QrXq*^Y#n@BnY5)J;xotVqmpx^iD{}Eg
z-03$Rvl=Jn=G}X_?!5kb@kD)n-#LeGe7G*z|7FdL7jMJUOoO|H#8yO~pIK)2X--In
z3fq!tbA`$ZpMJY=XxXb-=l91+zhzx}ea*S{Pg>D6-yh9e+Nzy=ch)RN@t4yh_DynL
zs#Lk^2JfnQ!KI%UKW;u;{~~GLabYRuZ-3VPt`yAvnZw97m-WYCFa4K0U-!5$%80nh
zsTl|;E8Y%&DfmMCi{0W`tkdtD@qflTLt=AGmhs%)D(6`d{&$?8&;QJn)0#Oy;iY7M
z%qQ88a)+kal)Mb%Q7F-v`9JZVX1?wro2&{`Z~qzk<t7W&!hMvZSKi<1mVCcNxP^7q
zBGK*N^7FUzX8-?p^5g2o*WaH%!JV48jq&WK_$3z%!=@G~ubk1k>W1jkj~9*WXL5R%
zO`3P+{>}Xx_U`=|d)4LMy}EB}uesc-+x3q%ODSEHKkw8PuEQU%HVE5Hcx~{_=Jky&
zJD2bLd$ddK|G&w#*Zw($PJO;&nM||Exx06C?gxLf*VLR+dSd!g?xm+AIc;=q<Xl^O
zrCWbfNpI|LBW>ZSE0;udZVE{C)HwTX^Kvz-PaiJas;;g}dXynFQ~7(p9$)f?Z`_Z~
zf7-J0r5s_?QfU6OT&sQ047o$>@0#?V@?U0Uef8ALHl00F<D}B@e-3BklB$+^U-&7P
z66t%?W`C_@a;J4+dg@Z26Vms;N&Kz_Ey(?lw7p7_RpXk=WA|Sto}T#d>ZjDL+Lg~Y
zRlC3K>OMcu=Tl_SVf)zIW@dlx{q8nbPybj}Z~JXm<JT&lUlPw`O+@Y;F0Xcv;CSBO
zzdfuzC}d~h9!HTk7Jtvz^X~ok{9Hj#W6TWw(|_8M1LX79{#~-v?$5D9?!}iGQ<o}v
zxwh&nwU{U`dXO5#R(J5j#hH)og+I?&{_nBXpJ^TcW9~-99;^Sy@p1mHtc^YYOcvXx
z`~DBsU^7`GcJl0o9;R5gM!m%j+^&s&=c_mKu>Fl|ay)$BT<Xh<yDv}PY^^QWxBht3
zEBDNY9v7BNznwI3LFX;qVpT3JQI20F$;HPUE~M<7`RB#5M}@PDk7i8koBv11aMmW4
zxJJ+Ee62M*3{JH31%<r+onZUr!L3-6oYEIAAJ)XLdH6=)fYOawV#jp~1Xb2{1bGU(
zDkbeMsfaJy|LM7b{^jW+`b(34-f(!rzA0m6jz43~QrYQ28N5w)8M{~9{VdKT=HMv5
zZL7INN0sjx=9HfAf6gWNJfEB+wLR5XPeJRMvtY=g!o_D6oKa#cmT%_cI9tYHa;sE%
z`(pNssvb$_Q=+PF{bOrtn`bwdKmA9w(gppHR)bLSl_izBi_a`uBkr^BwjtwD!}#h#
zfnqV4+PvczE~kHPwf|Gc@!3^3Abfgov5vn~vfcMbHqEoI+jLJBo_=XdTK?y6+FV7I
z+pOXzcn8g%CHO<LYu~Ht*m+)y3>>cSEoDFWL5=O=S^MwbYJPuPef*t$_WA8Q?kng0
zzj^DIQp?wHe$)S}8lIiM7B0T{NKI~vzn6AE*6Dz_eg8IWneWeWraWKUx9HtDr!5@H
zp1+zOtXkS6?8?7w>-hunY&%!GoSaxL{QUWh<}~TgoSm%>8NZDlZ){xrc31NW#Y;LO
z!9Q~zzZ43dd6aW@_I=T1pCTO_euQ_dtl75pmvVyE{M_6>7BfzzNBd8oajGb7b^2}T
zcp;{r2@FTqWZm%=cp}8Ilf`k_wwmhF(%R0ZIozz4E9baM@ywiQmE0I{!a$x!^52YB
z$^GAc$)DUhTk`+Sy!`wvlYg8y{gKuA|Ifk?^B)Q^%wlEGjozAU^+R~-{;Y|o!o5E{
z7y7f4rCyA!-fxxY#+JG|@eBTYwI00Z{cCgnSY4ayf%$K*e*1Rj#d!nye>-Ow^)5ZI
z@a@&D-|oD)P+(+pr6$7dx0ve<Ui+{5w>?v08_TbG?MuG>P3FelZ?AscT6Ca#Vdp*W
z*aY_UfELXT^%o4YRGs&i3Pu$C=4bYKBe9CbuIu4Cj>V6AA5HwSCs3lW-tH;u*Q+ZG
zxp`BQ+#lRsa%Pg}1*JLG>n`sM>#)&|wRo^1Jw>c5cyYy)vbwgN(dQCa+V9pHE!;2u
z>7@Pvkr|ina~%)ApuDchu48wC3#ZA|gjp?-Z%$1q|B&IMJJ0x!hT6?7Ok1|!sa$BS
zT;b)UclKgHx>co%n~%;<g-v;fUa^$F3H@9%<2mos>r+l=oKH)=HG`?+h}+i#^=02%
zU%cbys4igTI>D<dpnc4Ab6@f2Y7eFjCJp+$54@Qx4(iS?sM6(quvy~3=H`!^&)(<s
z+^g|;d*RZGnL<JQxqs$e|F^o$zWUGqXRoeR-TJqC@0S1n9KOZd^-uqH-}Br3MS{PD
zbq*|;m14>iudln$yZim6N7kE<n#atl*>661y-?Tw%`3k@dGn&QZRK?TGeXPmE%#41
z{#xW-xhyWC)x}`ZmgnD|Z+UJPJ^TE;)yMYUD5y^~)?xb}uBs>|)6U;t_V~mJc_r_I
z;Zv#}uzT|^Sa$k%wcK;3>U)RwuiUG9_RHpT4wh1BM&Y-Ozjse4y6$|NN4rPQ>&*Q<
z3q^a@X#aRG<<`vOu6J|N$F?rZ?;EWol$R}?S^ws7;&QG}pL{kvQ28ac<JG#FkQ+ZI
z^4@%8GIQk%j@*a;_J{<XF)O;VdZo$A$d5iotW10iyZb+jba*jtouHJmq4sP#gL2v$
z+pUKe`Z&&MVbl*3ku_dvlou3qTy-7K|I@9fW-6Td#=QJ+TD9_vFcy|8t~bt|E4h^F
za>aa>h<v-B$P7l#pL(oK*&837Ve7o-#nx_~RxH2e`u6>ed-&geJJyt>Cfu_z`V&XI
z%aPv|ZeJ6ZwXm(^D5|e1ZtXEnU&FQL#AbQ3uzh#$-I-DTX%?S(@<vWAN8Ym;_af~C
z#SQnT-w&K8DjfSsS0ylW`|~xKpG;E&Pb%!6sqFXji)GZDZQ8Pv&K}zMSn{jI_k!?%
z*7MSPzlnssp4>gJ_JKKf_JSK$p^rqC-bzYba+PID`(CYkJ2}41*xdBFeBSY;ck6Eb
z+c$aU0iNyCZu$hd%ryRf#e7QS<81FWj9corommq&EhBsNZ2O3;-fvOWr8A?ICyR4k
z3-}i{Df>Xnyt>slO>bpqXWKhf@y>XDt$%X-;=SAU?ef_Wc*$YMwtZhe{CK3_@$c_8
z?wPtDk9ya9Y<}E*eVf_zACFicbssijcwAt}kt}=gQ_#u2RIA>n^I0G4S1lHOk!<v@
zy0*A9TetCl-2IsQ5s&uQv-~mFH1@tzuJ>-Y%cee=JKyUJ_K3H;-SJ`Hr_%6B=-b|w
zTK&ZP#s~Lpp6sZTc>liIo7+=5_KQFJo$$Z6@9VP58!e7i^PbyVB$5A0q4jN@?q0@O
z^XI*m;cc>W{wZ)*_m$G!9f=*M1En7A{Z>-z*0EjYo6~~3@l1RFT)2A5i9f}0<Fd-D
zdp_(+IK9u9XMOVu21WOG2THjn%5+DHR;)3X<KeO?d+g?S@Oac*Mg!L!)u!)0+jlQI
zsVW)OGgsR!>$|aH1-CncLiS-k?H7}tw?}L7`d*Z4_;KAa@yqx2g~GAhFG^PJ{Z=UV
z=6luen>9D`x4sk%kV*4YXu9qdo;E{&uf$RrL62MfN%aalMQ)z8E)}TAb@5+(#I(6g
z#&gPh$DS9y)22xCtEvSqv*;A~lKU({P(pE{yqk(W=i-Uwt~VrpT4+o%XZ#|yOZHgQ
zZ_koV&-4WDNxO1%*7N%wUQunlr_6!v^DFJ<doO3(PI&m?>F?wni8Alz%FA)YB`B|G
zx^TRut+U6*Y6&~@mv<F)FZwKg_8f8QY`lG~)2YFlWA>v<<w;?mY8&TnoO)VpMX<}h
z2O`|-H2EdmuFEsKYu>tiNvwxgK;|Z|)sdh%*~e9Uy4B@>G*_R>Z<gGkqZ$9hO`s%p
zu7>c^eY2K-Sk&9<Y*W;jcX`<v%YK2(M~SNzF<fh#q!!Em*l~L0o)krs8B(rp5}kb)
z0(z(Gn#oQuxL6jO^gzKVQPC>Us9kX1(afG@dQTKM8rJZ=`A}@W==T#7oz6O`C?%C8
zSB?q%K7B(}q%QGm^8)VE@)Z)&*SiaC4DN5x2zA`>G3ekdsRN#Kq&JIs>wDT9WNvEi
z4za$(d0^#22Zo;qx|MmRNIcqACF``l^udJZtt<HV`0L$m*W_BBc$Ymn>fA?`b)xLk
zAKgAOsrW^^z@xi7jhCeR3({{~TX=W7;mqq6E?OU4#0xitML+7fQ!C1H%{x8hEW<Z3
z`|oDg_O-s~`r3O|^;U)6mW@RR&hZCD+>eP)s#d@B{HA%tW<Te$N0HY}KF+<Ha?tAZ
zuT@^xwqAeU<E~Nb?i&+y`tU7}+Jm>5=1w}f+bQL&QQOXyJ8a`sO=GvJvV3SsK0i}-
ztDa~=SRHr9)=x?;&XZ2*WU$%Ic^qadu~gq{1^2<H+CSI)mOQs-Lt?UZ_kwRVO-|;z
zQ`8=5HU;bEG;Me*rs;jt_U+`zB=?stE8g3lioVXR@N4;x#A?NsS;o^G%-4w+FI3er
z*qr}){`$Edi;Y%HUh&VE%_3md5>@LS)3k(Wl}#74bN4OFVA_6c^{4uK^R96u+Q<c+
z;$G-=fK@)O?sbpjM+vLDtU3qhOyu6Rb&ZK&|B4{n=$efSTXy)o|DGVjd;FqOnr*!4
zxh1uijvRd2b?oy@&7)-;XXb0GPTx>1q<r^u$(Fl$Gd}Wc;)xbG8TK@y{9H#<e9M=~
z+Y}#Pa?agVC7h;^KZjqOpMC1zutyn&Z$H@{-{Yx#SlOFbs(9-iwm5UY{yV(y{`@=f
z@{#><<(#myN<}BFcQ>qP@4fo9Rp<AgZ#O<A{gr#y*0FMG@4-opEU$J4a%?GM``Wgv
zMmi)u;>OowuWH((4*A6w9G`P`Px84tvmc0+_0-S5XME;+&d#YZvVGOI?>9@E8LnWi
zyy`P)t)!FT#!p99sLPieSlu|W(phG0!9(wr1}m0TWGv`<7xVmblf+)z`v<vXO!Chy
zY~rq2v!%b?&x_&EMBcqpACrsqJ9K9HKDj7zS=3~r9N)A0_Ol%uLUMHC`@Q7ljtF%A
zUBz?ZoIu1f@9OGpjk*mpuRXKY5r2}PwfBLMeN|ar$wk4$RnM1Q_*L_~>v}G4%zk;%
z5*GRM&Z7P=Vp^*i9<p!Yn!39q)Pz4j*~{nEtiyXJ9%9gV%bs!Wd0e2(YOxPiJ-!yr
z2bEIp&6yc>DelyzEw%EKoD)-m+Z1hLUrg@SDB0I7HSPP}%a^yi|E`W&$j^84;)j1F
zHb<WHx?KpmmTBjo@Z^}A(gn9Jr7s++i*tMAdDXf4zU)69_gq*r$E2Fy-zntvdu!&#
zIgGq<GCbGM>9QuUzvw@tBor<ooUJu;VX9Aj+^n7sCDSeQFK#%R_Vdspa|z$8SG#v^
z*7>%^;+jFp@w*NUho11NJrz*<ez@0rQQS@S1%Vf*-BA);^<~CE&6RVMx8}a)sFQCI
zY3quey+zpf;LAo4!Mt0V>L>PJoWkzH)#-JIZ`K!sTLSe$27P&l&ZvvC9A}=+c;-;6
zWzxIHizE`CDY|D}4}I~^+^yum;q8v?3Z)A(_+8G0tiOHbDK~T2RCc~&v8NSVo_QqC
zJK}w9>-FQ!cb2G!Rxtkk7&e<dmr2I_Rz%mv&K{#JTw13VooV0ku-9X?=+e}V%TG?k
zwoCN2^wl$;F%sxkU6-4v5HshB_nQB4)(%29Bd-0K*tKtC&%-qfYo%xVPhWUrX8Mh5
zx4w&Z?G3z8^WU^BDL-fZKY@ieq*;r9)yOZrA$=R9DD~;r%e|=@-@=8vV%N;NVx&?n
zIccuoq_w^LhhI3!JScroziDg2i>c=l-im40Pmwrew|CK3v+g-JbMznY7Z>|Kcg;r=
z!++7KVskA2S&N=x>RqXEAoa)hPv>nu-e)ToeVttN=liQ?zp6I<yZ-CewP!~EepmPZ
z4>NjsyO-fS&)vANn^A4i`WAPp-hcV>;m3m)^7ctPO4AgVv2$+z=chDR_}A=ZZ;$6p
z5p3R5U-XMxI<Vr*tcqpnt+|SpU23dL8#ZuR$+_mV%$;c7BXLRbh|i5DGt|S>X05tp
zwa+v6sD5vZcWKUF!L7aX3%YYmAFj_my{Bw}pz6cQO*bs`f4Oc?&wrA{;H|%_d0Tyu
zpw@r;>U>6l>yy@UKfbi1`o)8Tcjqef?%ut7H!J_U2@VDA59ID}N^ywYiEUOF_@Q{x
z()jzCx#s2T=2U+FdvoFC4b|aqU&U?>TO0bdHrsO6pFWkJ^U9wrwB#x4>%Yw*woGon
z^*erfn-_EETRZdDrhNYWZ1s*cTp!r|Z%JwV-w~C@GG$xEixcjAvoFW5oiF)s>89gJ
zN&RaBf8CT?aAR@UZ#{3D{pVxP?7#aky|g~P`)&UI7xDYfzyA<ZY+XHBK3b1I{)xFv
zbNA%VmEB+C#nk1z7_K_-znj}-6yOoYyh3fs3JsOjYYu+Ct@lv5>CCt7cbKk;^>;V1
z_3<xj_?#Rx^Zx3If}tW4D>T$qcqXxFX4|}b-q|=MRX&AVLv1;S2-7KUO|52^kR`1m
z@@IHlD=k$6f5~@e)kns%{F^Vg`sMd`g*7c1R`x$8`PF|vm|;`$(Vy-1_gEEoVP#?N
z>+;p*{EuJCe}C|Pt>K1k)dI)ndoQT3yk%p*;q<vJ4(9IM>67mti2J`RzkdB={aPPx
zmYY%+FEicT(Qrzwzq`TV=kX=RTO3rUACHQNkjQL2ROWZCKl~I2V`I-5{xCyX;nRnA
zga-=!`Yy)vKiu+gJ%{_Z_tppZ=U)8F{QUd$#lO~n_+PiC({kotciH{_XZ$~Y;@GK=
z?Em|JetaDN@BaLU|2a=~dDyIY&d&VnzMGO@7^A0seE>_4)1yTy4#n=mm+Q69*4uj2
z?J{lHAAR$D$h7lQUH<J|^>0S&U;B`Wm;UcmTmC;I^#0}Se}7l~(>ieN{`yyjS*Q00
zAB~r>JMdrn)BoA5fBf$~mOo)HY%Kg+{>l8#sZX!}IzPXt<>cuuWyTNk>>5HIk9Iyf
zZ2j&rH{Y{||3%IBy>2&`aMt|zJmGu)|4mWc!gA*h-1g3}XlztmV88Exz22{Tc5_-v
z*-myGs%uehOKaLYV{#EIbF%`2t$0wG|7@>Sn+_Eyyb+Bk6RF&}C+R+~{}XMY7N3;t
z`;&B)R8%@0^nI55YW@?7Y_C?-e(373z{9?wPixBNGF7pQ|4%NFe|0$_c*pap8|xk%
zye%)hW(}|CbL+&nHhFjZ^ZVNR?!MWr?Wi%y_re~5mZ@dSs-BiK$t(IL_-zyIRQ;0}
zFgeS9hF`kX`;xoAp1%w`<8$Wh(qoe~_sspp@qBJU-hMXW`1k2$FHS99x7z#TK~A0a
zQy0#@otic?;+;hVd-(rrVn;9Wp7yHc3X+%0*`w#N(Jz=aSfpv5ARkjqu)DkJR)!0@
z>nHZ87N4$E`xq!=Vs33+S5V-vC$(vA=F<lselCtbb=mlZ4#Ukqe`+#aS-JC;=qg-e
zd4F4Winwg^<j&5M2UE(Q?D}={=1sMpJEteIZOWfhQ=`@L*GqGKS#<ib<DwV*L`DC8
z(zrf(=Zi~opFMk?*;3lLTZ#9xr=R;wW#>I*@`8UOws9_9vSiNAPMy~uCaW}`bSTg5
zeX)Gc6!|&VEPn4vS~o9+^_l7M>SO*<*Bk>+`e+pFm=Jn7DTS4djjMj?{n##_nV+7&
z)X)*D7HZD9Z@=dY<D0E)Z?>k3Sg3S|exH$H{O7H0#qyK4UcCxtVq#L=v+{5E`3)&+
zf3G|HcIN7Q`FYHOh8w3miZtzsHBUah$<$h0JiO~^IET8rdTN%={+S8auS#6EX0Z1W
z=dEOqQ{~ck_g!}DXZDjagCE_dd2dA0wj2-SsQTb_y7en_-Oc3x;jjPS7mNK@{ncKX
zUHJ6<7xmZTzuo_z^w<C6I=5~v9-f%L?f=$$S7}|>?boid@$VIr6634#d&j+9JnrMJ
z^sXavdEK9cm_=8aKij%b_>NOi&c4M{GK+E@?nzzvBf6va=<2$Fw&mxqI<dY`)0gbI
zSNAT++EM;mtumA0m0wF4mXtP!nd&Zad3m}^Qu`kNl8bH$<xg&XbaB#p7xmA}ROaN2
zZEslOZ)usy-q(E}Q_<D7x2IgG?|etfs?1$JEAGA8D$?Rvt;((DyKP2#;GvEi=Z+OT
zx*WH*SF@}CkCBx>SITtzNe*cTI;yjGrpTyH%a+Jvy`{|4)p<k6$@Ka8kk#A87P<&}
z6l{C+F|DI?8Jns8seN;$uI#yXwf~Dp(%t>LJg4fGT$!oKp66XBWB0gL`u?rP*#_dT
z@9g;@dW}DsHEO?C?b4SWof7dE_LUu8e{qNCr&q39)SeoDe*MyNWzY{HqtFb-PjRyQ
zjb=%`tWY<e8libebW*kXHd7uk%MEO6mb6~}zv<JT<xl>9_vrY4_S5-8Kiq$&r>Ff>
z{r^Av>3m5+mwP9_EBsfpf3jca<I33S3V9xCwyLJ4T5N1>Jj#-J{30&ul0~~2ChLdw
zX`gTrIjb6WOG>h)L8)?*sD6U7Z8po!xE+-reQ#O6*Z%i7+}u6#U`qGbqh)S;I=4P{
zI$FtMT=(kZ@;y8i^Y|KexNsi*mb&#y)8ge34laTj3#Y2LO{jb8l+wMR;N+~%C6)U#
zLnch<T&z=lZL^$If${>knXfivo|Oqu-kJ5!;Fl2tM~|7%Y1h{aHrjuS*tN02l*#j0
zet@LUjw$MU=4LMmKGxzV!STwJMZVdDW$VTtio7ApubMrVJHN?QIQ2T_Rxw-YY>om)
zKQHa3*YX_t@dwMp{brl%hw01judMC2PGmi`MbR(yR+Mle<LMjUCVI4XeB3>K7n}U!
zM`rFezl&biMhV16pFVuUU38xF-=&#%&hYNpB-2xLTJPTHc{>?vE|x93%6!k(GXHX6
z`AXKV@V&dQ9lR8FqIh%Czq#MG8?l*t8+>T-S^4{akI|3iPyV}S+^nza`K$ahJ^i2b
z|NfWL|9{^f`S0arm%nN9Pv(DV|0A#V!SfqOQ|H#(tuGnoU3#+Ako|j7b|#<jN3KW4
zYlJ@jTKb%Q^?BxJr;=tamWW-Q<&?a;$v(o!Ec*V=RblfuUha3Zk#lUZul#CoJgP=9
zV)BoOXRqbDJ=eVO<_rpyd~i!`>g%4(A3e+_&IvHP$RSuR%g`=da(;5PQ-}MmGlz9f
zoe!0L{MP4N4QKOdv1?%!k3Z~9y_-2_gObPz&X7&#bqlAQlw8{+DKq(7>i=$=H(%!D
za7|trICJtF4e{A$suGQEImF5_-Qc+qR`pDMhlkpIH;L+t!NL*-o00?ERJX+2{}F6o
z`}lKkiNWRNHvYTfUmO?9)emaQtx$-T?Q?2=v_3rFY}MyE4pmm)|K5;WALn$;@%PuV
z7q6OrJpEz4d41w3uEN#9tR^l0P3tb$PpMDc`Ml`=(ds{kzs9?%8K}AO@wusmxou-V
zm|ipE-_3}+lmF)zUikZVoe=}alIlA%w-#65xnX2lSm&dkm;I-B@i*)8OAo3qU6b$3
zsei*)$Df+|(C4S^jHL(5i>7?;f6;5d%GiwU--FUyJ7-x$Nmtn9O_GYXklb0L&SF1B
zF*WsRO5$UNKN%O|6BX;X96$MIp{3robA9~1H7OQ#%Vqy2NCeeA=eNH2*TOyB{im_y
zuYRk#u#B9Pe|zPmnYAb1Zz{MslSw|ZX1{yOuYEf+vT`5gC1&J)`uj@W^P0S#d6mV}
zkH&J#4#uaKvHj71|G!@2zuW%YWB<>e{9pcm{>0{)b6e+jPW&49&+^8M`m_J*Pkm%|
z`5?Uf-8YRX_a~~0&AY#l`+)tSJ^vf7K4Z7@XxP-vsXL)laz#qgf7z9cDM?S$k{_o%
zX1HWv_s5r?p<zyaNbd8r-yYlsKUcceHL?F^`}}Y2yU*=~Kjt#CFs%3^W)u3t+IG(G
z?QCV+|IB4$V%Wdfb4UFHkADFy3_o_hJkQHu!^AF^D0yE|nSa;&^#V%vk3|2s-TrZW
zhQI;&1Kj%;Th|@=^iwYBrQpx+i&q>?F4!P1{!b-grrjd8x<eKW{j+#~gg5;<v0%&Q
zrN1MObUMbw&FYi<V6Xh&{->88&wtaO&l8e=@BZ}v$M5&w{x|D?Q24JS^CrPzTl}a0
z>#zUc|NZ}C^>6p>jSBy~e_Jo+_Ran8e*=byn-TKslhYn0{G0m!wZEmud?Sgd8+JSl
z44NMvKHtvAHfwf-y^y-RVR*fa5dZYQ^Va-xTs`@Zj?<?VYwI4{Fv(dyC{b%TuEjfN
z&OYY9b=*v!S46yBd*)w4$*uoOb~2uPvfr8CMfB^FCsU_3+;84m_y5Q{L3t0S^o4(G
z^%yQS%H3~FxuU|raAW=B`ZNE2>)vABJM;Pfj=#tMbQD!z`F}>{jL(^zH~i0M%GVx>
z|MWjy=7?ay{ridvm$#HX7C$2MKIeyvZOFw47lRbBBif&?s8-JPUfg)pbIE0i*8-oc
z6%9O^LVhVO`I{?vdTvJf?5fLxF*^B-9?v^iu07h=Wy+#AJHE!`P)gd?vZtZ8ZCM<*
zF7WLt*?)n<M5_BjW$KD`wHxjwo|m*0TH%p9?XkIqh1~>C555nQ3i;*%){+Nz>{(^=
za93@*hQig%n{9%Yhg%OWULCb-vX{yH6W42ElV*x%mqy-D+<olE5}S*^QZ^i2@aUh_
z=1j|)k{@4XG8X5HX20nDx_pD$<`mJsl&HR4D>rLg`&*C@q2POerkT7%Q`>jHW}iei
zjn8MEuKk+Hul~jE;34g)i+48t-Sqpr+Vrivo0XZg^_{KW-h3|0`TJpR`s#_&c^{`m
zzY|=N|6^_3DxVu$Udrq2+QlEW|BK|NTeFH=cU*rUIk$O!?thWo&yPwHPA5Kao5QoT
zfWb+>L;LKMWhyhzy7kY^?buapZ+*AT_KLwY#aG1%?a~MA_kC%;UUH+z!<0=|@VD#I
zDJym?mai;6mUL<RlP|yTn($^DTwHf`>iNKTMOPj6nT2py6rMI$J?t*^Au3{z@yCnr
zS}siGwemB0b(wwLRGH%2n}j|*>Qvve#WP2bYul>!wLebwK3#v}!ip}YIoC>rf2!~1
zO_!6)ji{Z&d1`_Ei`8d0-+b|uuh3_b^UUol*1Y>7b>-{!uh$eWMyPq1dcXd7)iL#Q
zytCn{qTL<c&-9qr&;L13Ca703?*re>4OSD%V(c_s*W|MKIQ>cw(s3vfeI`>LWNo)r
zQ~mI!4Tn}KecG~DZ_)1T<<@&NKgh;3B>A2=_g;40{Ech(<+M(->b`c#=e2j__v<PC
z!L1Lu1UA<STRvRBF65;3{iR`1Jifw*d{>2P?<mzdQuL`!(q6>p$x=C`7H?x;ySH|i
zdV6;+=UnB-<aMf=*I$I|sarz-FYgVD%lYPZn`FMYY@(iV>)IdJZS#_ke+r*t#<lM1
z+oaDXakIW}Gm&+=Gk15|;%R&v-Z1;k$+%|sR{K$dw5Vy_<QM$=o^A7->Y~plz4qDH
zfY*B?HrF%?7^s|(*s%TNJ@<+oKAC4{an3pLDsx}7&b!1PJ1+D!rr&y6Q5zId!TtFX
z%Mo6k&k`5+3EZ|m{yFKs&)!A$8*b>oi>s3q)UIvYb2xJI>{+&<pWog6XtrKz<%1k$
z*2E(Wu@5DhuU=A!4Lqn8DEEYO&FLjkd|ShwUs}2DldqoL?Z%nY142DBd!PPJaGf<<
zU*A&V-TrxXGwY8o;Pd5N{gicg+rCdXWi~~==>4{5{>~cX_JZ7r+ziuA7ldd`%-QV9
zSiL8>=d<V5Never**8}HOuu6p{L5D2<D9eJ@2Zx_zDW4?@aH~-qVy*o+a~I`v@%xS
z{iNHxv+Zz9_l@a`v>&+#v%Q~rvGqOktDvZ9)(_uib?+`z3lVEr!?h*w;j0;5YuUD(
z*`;}NeUIAY4{w_6pKEERtvOvWIqO{gvu(#ezPrX?Grd<eTiT&<*(dIt;sXo(J`@M?
zefYU+tETz^`@lHfS;u$nW(zaBy)L4`qS&vA|NblYL$fD!@AD|nm0Wwga%zX-7bWj6
zN|`z;pWC{5zNyVA*gN^-gbU_kW)|BInD32Sa5!{Ds^vHB3r26WSYMd1MU}jMFr(tN
zLQ7YW+~b?<p%0#=uiT|=|N1@e@&~s1%6p%jP+;G1=EXPJZ#s`_`2X05H}__KbBda`
zAl>3|kMP{Mb&L3WzB(HhP5W?i-}?)8j^aPrrPwds>uR3(VO86lg^#D_Zwu*VvFkaK
zoYZ!%^}@?VKQefH-iGfth<f>J+AH>hnO!#e^0BE$&$95Dy1Q3gIW8|yZOyEw^LY(Z
zoa(!~!QtXpL*E}NlF^o4-;>+5YWwsD2Cm^ZYnIQF3!739!F)5qiYuq_n3?{;Gsieq
z*!8tOb&6<q-6!4pYI0>5pPkzIl|nBT3K!h$jCB^6y8ib+2JS$)zxTv)KGhiCSsvfT
z?UL14!!mR0I-`p>AC)hwc-L|8#0#!=uGOCRJpWsrym^eV&xUP=_cX@|YYLdOLrxxc
zd0i&4iC-<GGWkNS)O_ip!n02{nr1T!PTHS#qL;JQyVUu|pKCs*KINO`<fhBq;-Bs(
z#VPhpY5JQ@)h9G03#T)(d}OkA^=RMNd23z!3kNo_Ntbp`56fJwoW#GfU5t<Q^3$6e
zQiR$ytSeHySD4DAJB2R&bGqucWcs<6i`@1b2Jd81`=h_c%uwFu@HT6&<P!!bleaVk
z%$dYDVU5NmpA}orB|rY~S>xf>0u7C_PYJSDZ_T*pI?vN9SmNEPtFzQi=FitTGAC;P
zCdpa#m0dy~{>f&4nfOuoUGDo;OIn!?mQ2+5KdrUk>pEVx&^?mn7Y|lgL>?75Fl|NA
z-tsqv0rxMbv_u}9-gN)$4o=~&m7Fe2r-NS}C}q!@S3e>0*C)=)m441278j{=)XJTm
zd|4!J{x5FnRrXBR_8o}Pe-^%d`J1oJd+X8+<`!SPacj#T$#Zj;t##0lTKDe!L+9CP
z?5mzyvz(E-czTbt<h~bjlK)uVY;bS?x#V?5-pMyTsY~3?^K!VGybE)6*?6>Ku14U2
zlT3x1=lKcVl3kj$eB#Gr=Yl>S3bSWa+s(bR-+E1++xi#Bgugh%q^~qo^D<HS`FyU<
z@77}0waT5kQzC8zon;6Ot!kQ{U7<21JVWAk`2h+0j#BY<rM2l>zr5Jb^P_0j3ReE6
zmkj~44f37ceokZ2w2ME#y4~DICZ}6_uDIWX&#alZ<V&TaY&Trqp~GHm(INc(@~488
zQso_e|5Byh{9`tJs-E-9JTaKTrskkX0mrgM8+KcreU!SuDdo}Rnrojd3ZD2cRORaE
zZrS{vx!lP5xkV~(xT8n(3#a%8RrgZZMOLYB9d)bGla-y7uBIpSCHRQSnSgs?-!)s=
z`Wf#VuDkip>@G*hy{jwESY@{GecSr(`KeFWi^HSEy;S^nGbQv(cAQW9n$X+4@%o+k
zzGXW<@yk27SzL~BvuXTXeOv$4u1qWW8BbXb>ra-y9}_pH<gLIJVHJyqJvaIE+h5DR
z(@t!eVb{hTDSFRy$*R|0ldD|97j-{Qv75SMT7CrIv&;hrEtr-yzMK2^+QPL9{;YU+
z=yI9<oZu6Mjwu%+M5MMYE<GN7BkK!K)Yn6mMmp>-POWKi>zX64`1{xCuDP=eFBebc
zF}HssI;CX8ixr#?l%5+1*+{<qxa+XRh4(kDd$uol$#cT+v)}24($JvS{{)qlUi+CT
zep1?AU>Eds%VA6PMZaUrC9nBiUz>J)=II|sZ7yN+dv0#|x7pI;$#mOSPBS{=Tp8Si
zGxB1k<G03jI!r#-q<bKpXWpwk%@amFWmj%%Wt`zvs|+mo8&w&0LNW1vm(!}})t}o0
zrp{0jQN6tW!7s^o`z+12u618k{^-S`{gKQHSHrpVk8N9>%+76;b@f-<r^}&g*Xmr}
zIzL$2JBjb(S*4iwA1!9Qzaua!^z8ergRWEb0__|fbS-a~&3Bws`Tgak_UA$d9Sw4A
z3pyK3-1O&6vDk3v<*M4lR{YkVuWmh2Qf%O{c=3$;Q6-*^-&(}o(@L)1%FCGe;~vY6
zmSh>TFTQ&=*({Ja@jm_G-%HF~&7SVn>QnbBe6~rB_@wIo<MmGU%!!SePdiTd=Kg-i
zad^|y;<$si=S2TKE*5d0gXQE)^X~<pRsY;`DsB{<I7QR3;==Mb1>PFVwgvq>dLTnd
zO)*-^#%EjVh6ytkpTET0)LZ^!E&nU?HKHG_oG<$9uBsHCFneSF!EcxD+>_iKlYdA|
z_-RdD@Fuo>R&qBV79H5(T08ff$wXsu`3*7CzeHUPnx?`gx_9o0Nhh|g?vvOP$lmw(
z#pb_O<uZ+llk}umW=K9$7b)H;p0(`NuT$&iD>L)&6X7=qThykuC$BGGpUs!QORJqN
z#HBY#rF)ih@IhJYh+~_j6kn>Ry}Eb(9(S+ag?Y#OySqcy*ktFpiJc7L`N5Iyd@UmP
z!UZShU5macq@Fzg{QcLOa{+w;Z?-UP7JS{-k{zknd1|`(_orLV>PfnGXt1h3ExY!1
z)rlaMTl0b<=jE;0G3R8HMe`K<teL@`Y&?%sj%|&SmvY>)-E7K~M!AU#g_pz|%HH4-
z&b@N<q~?^aQqH3a8`x)0Y7n??;@B4PH)Os0Ox;?=rT|YCg-v@})eG&e#{Ql4W7!{z
z*sC`a6;ma%GX369Ignl2?b%f+`Rkr|S>8#(q-*mE7r$w?tp2JO?DuL(>6QsvYj!xl
zTh1%IWo^0s$#rYJiaA+y=e7AIT;REOY|FwKR+67SoHDpow)NnwXU=P<zucp+DE8pP
z3l6<o+8>;_V^qFLXwjvgNpqYSzVem1A38JheEw~R#+(Bdv$}uYeKtj5QzzTHHtw4N
zQ7U(wq91ktbou(PR_=-ZOr?OJMgJ1BuWe;@)-n4gw`&gD(!<YXH>SO}e!%-&_;r@Y
zi-6vz(TbZTFQ3r<waWc!e#PM*JC2olzTE9#EATg`PxsyYhl@Bbb1H_sePz*nMLJAM
zC6yt5{<BG%8-Fj9uV1xq^^)U%6-+s+6))}<ORszQ=gXl8!<E%LLM%gW9=n+RX93fv
zPCK!ipH558`)tGUS>W}x+vkJt?c8`fn#Il}K_%2;s<*P(YU7vJFX?`*(aZUEN$Iai
zO3H@dN}n?`1lCw_wu#>l2>zbIVbCm6{4&%o#p>?6CsL*7nlE$Q$<1iK_<2{v54nu>
z&vL}3|Gd+?z~IHby{XFsXTEvBxmPM=$Daj_K`kHrcE8YBuu|1~lFiQVoYAY?MK*8w
znpo+Xk;d{(M?e3djF_(Sj{Q2@<u<1rXj`0_se4w}MLlRzR!r}&R^4~ptpU$H3Z9=A
z?eM#`#)4P%!y(ldcTakS$u@qN>EI?`c3q&@^ula`DrOh`e!0-kK^?8U3IWSmELg90
zMi>cpP58R?@!OUs(Q4~euiw!qukG61py9OnZm-{0Pq$x2EN>pJXS8FT5`TT)rY-Xf
zS7_Dd*nJD*NPFG6Y{O;KsHRJdOLv>O@=rRDYh<-lY~!*U-<0M@ChR(G7I!uEd#&?c
z`RrG_Cx*Uke|vg!@`M#n+9q1IZRTHjF<|aQZ+T5Qw%kLrrYg*q{l$MV`BcVz>-Djp
zAExi~PO{oEYl6#pL&dEAw<o7cmvbGzRp{z<qciY9{wJ*qa}p+(#ypv^^2im@6S^<;
zk8gKRX~|X$+`{BvW`BF}!L#4D_-%cAKh{}KS94EiNs;D~H5z%F^ows;-jj1#q2<MV
zMJ;>vhvF#{Vry$3n|*%R`u?hGPwY;)_ubk@E#@Ab_<Y;NXG`B-(7Tc-%ysf&{F4uR
zEmXE|supvP__3C$Ct>9#$Jh(kL_;_4S^re(;_gt9-+vU=^nQB%W=W4ox{2tV^FQ9D
zCoNi9-u1C^vA{<~O{c`wi<GQHP8G}*+v5DoDs1AJEB+aMU17#iTK87GTe@wlZpm%y
z<9T%_u5S>{R+>4nJ5Fd>+l(@v$H{vN^v$jwu@g)==o!7P#c%HS*A8E*9;+)9Xx+Jg
zZF7;5x_X(^=c0F;B89?EdQO}2?NQ6C$8YY*u`4_3syaON<$UpI&yh8g{?&F$cr4Tu
zeB_&PywNG<U@j-iqk~N;bH2(|D4Mj*O#H%7_s!$F#~Hi7*SM#@+dhp$M$N{1`TNx>
zZ%h_UuevwIY{t7*WyyW38CU4>3cY8RIs0(?)!Xy;1#$1rJ8|q!*sq_9H!rdYa$j>v
zR>IEUUheJpPuOe~HomZ}wqE<<`o~A-Eead2Z=9s(^~$>VuT2v7>!r7>*7Gg&Efg+#
z66iR4hmMotgsDMVPCqjYmRMJ@u3s5*d0qBO>1+MT+n%kNwlFd3ZT9u^w$FN&FUyX3
z%CcndRuAzhg?f#al^!QQC47B6%Q8Rd&C>M`tnan6r(NwAsQt^8GofT|%GrwtuZe5t
zTg3);&HQLTJL~9!RjO8}%x86I<;h0hSGgnSz2Q*rEECa5LCoDDll{LGJy)#zx$+2i
zLD+0Lwz_22GgF!@6--VGOq})Ag6oN>t_Xv(?3VC_Uaup>_~je8j6O4eJYQ;A&vkZM
z(JX!OS*JgFy?URV`6{~p@ncv0wcF48n0?547Jd7<^BGC@9`BQTW-DE}l>g-Bz5uE7
z!DZhQtvCJI)YZM?j!b$D<B>haiao7|Rl{b@33fS~to--+wx-Xk!h3&}oS(Q}vvSkd
zu&{%>Uth|+$-XnJe6h^xX8!P#{C~m^_RR}ub)O~qU_qAuriqK6+g@Cic>2Zmq!^yn
zk0u;cl6dwxdsT||1c4j9C*RBqtL?tJ=0;8T`i%J@hYuWnFK*6zIZo*G@;Ab1k7iHK
zzj-L?*_M6%qOYc0Y%M=-^0Ce0@IA*(WgnY_3XGJmM7&yl{>aMqos93=wDnhs)i3__
zs^{_#Wnq?0iOpuyjz7Kex2Ej+$?IYpADl{lb!t;&^R-pi-`prnGg-sQdqH~YgR0{i
z8J&qIqZdEuebZA@ttfk!$tSBz(Y#r>dFSH8z1;~Rml>}aRvrJLa^(X12JP&EQ`7I=
z+jb(MOR`$S+so|luar&aV$_z%#hHe>9%bt)s)=+J7Bidj;Y2{$w0y(FLoIGutNP=;
z`Pka@4^%16Hal1m_p3hczIqtDK_T~>q|fOhwwJ&BvQclg-RbCV^qKYTtDDocQvR)+
zKJn$RX!h2<$@8O5U7VS=E4csqyCjddVx^U8)jBs6?0HVU)2wUS`Z(Zb>+dPrKSURK
zdHp<H`n~$shXeZz9%PEh&rjRA!eF-XX#t}G6W6)hwwJlxFP=KR*7Kv9P0k-lb#<eC
z^P*odteLvhThBL-NlrV^>WFO0>{8A*z0Z%vtv%9sW=W;%>IX{36EE#z?%8)HfzR&c
zI;F!)e|WCEwdfhk$&<%+Fs*;S;Y;{k=Dq5idvCT(FI=_uN9!(^;z#+9Hi^y+IWBnf
zgMHb(2@ypmYdCUjzH{96DLnUS|Ng(51n1Z!YRg{uwes__u5Wiw#?BFJe$HLAYtGWz
zeXif)CT>{t_4d=|&4*?<{X0ENdE4xwFV|gj&0oL$-FNp-qi9xi{!yzdaXdUHTc)zU
z;I&?Vzo*>WgYmWDzFtxH>5sCP$aj7<&5f=}^Lwkh;o3Exr!U&wXCyt}z{xMhGE<@D
zvrYEq0CNGY*PqoFH=SXe?lax8r*W6aM~4M=Hnz2e?^9l#{<Kr@UrM%8jn!@Df2v9$
z86t)o4+Q=%3M_P<UZjwaA1XH8xpCp4e)R)uI-1WO?d0vuKYU7_nTxG)Me0ox?v<-o
zHDqlN(fYQ;F>3RpmqoKy?KN?Ac+pcYX}aD*L`v3Ezr#d)->JD=ep=T(qpJUIP|7;K
zamqZm*~$m!-|#*$vpX+&PfugBOe?oe;eU-|5%(v1hCWjh`^B)H`AhDa;Oio#m+EH<
zJ9ha0w$Ti*E~(zNa)Uz26N~>HbJwS>Pcu{0nY-cn1m=}*-IAsr&x+vQ{le7a?Y@d*
z=etGrol18*9oy9|?3wjPZEM3Hqo<ONJRg5fxX6A`Bt|+ZCScJ%<~{SY7smaVr~3cc
z!P`yS7wL<*PmmU_`KYnGEhapre^<<;_%$y-6v(fBd{#x!X94R;x0}@~`3hoB>?zr?
z|J#|o(pZi>Z@ELKp9ikpoY_{%q#E}@E3vGMac;@6L~q^mmAjaVH?B0yT`TzaY|zEr
z6M_#swJV%{S#)tVCav6-qwX`8_ekM0&dgxnZ&OX2Ie8XlPP$V1$LjuvyY3agkC`m0
zc7J~2-O^vxvz$Gzx9<BiS9PzSMM1K;XGx&<6S3bLCtTH0VhZn5^U!cBef6Y3+S90W
z(!t<Kvzv{1dVMcNEAyM5KVUP7`xVFaXO5fV`i@>@T`s|(qB1k#$BI)@#X6>E7QGTa
ze(U+Cy`HOr4&^UP-0%Ck?OpAaCn4$F9P?K1={eBp_Cum!DML&0EM--fjNo(y-^rJ?
zScG4``4a75Z&skRV)|sS#}N-#E#6picY(i+cY)CvgX;f1N~f3q=yPaaeOFx0Gvu)W
zN82u?So>d*JXR)OmS1OfU-ABDm407*_&U>dOFDw*IX^wMZSoD(35L=9K^qq;$2AnH
zo^en(DAZVJmv3~OZ(`b?6f4b3v)%|_$(if7GHAiu&C^;|xTIu6&p*Sny#HXX-;TW7
zjcG0)RxJ{L+d8jD#bhq?H1AhF;^H@cKhc)?#=zpa{hjgp6rK85w)*gY)6Av>9PE<Z
z?woo43~wn<<jjT~zPsC&zBSl+n1gHAt&61(%dZD-y_@0q@^;3XjlYh~=ZbnOq@A<+
zwauEG*V>y{<C-qF?~i=uU{pTUd~!$pvL_2-IV*l&X`e0~H1okV)5!{Q2evG~mf2<0
z^nT%q#9gQ4s<Jd@{C{)zo2IsW$iv+yE}q!NlQvVmR>w`^(h=rVtF6VCS(=Z?{WNcM
zIvuao{LCgs&oOCA@<p$+Gu#gz5SGbhu)2SYaZS&wd)tyX>djC{W)L`CFKsXKW|3Q_
z+@uBp1x5Z@-wHnpXeobvx8~r3z^bjM@19Y=@o?$3^YQbSZ|oNR!IW<+tedmpgv&|I
z{77!+H9tJ1=53hMS6Wux_o`;UcNT;1_uZF27)Q-}<GsH1Y{S+UeNRO0H5u%G*}O_%
z>xr2UnAN}Z#<6P|6#eg5ADX?E@Ay^Ki&Mic@a_rkbrziWY(?z+84tqZ%kQe5e|N|y
z(ID>JrsjH{OCqy18dZ<@WdD`w5^@xo+MH~3L1Uw|;O|I9&P5VRxj*(+yTvdaUAyV~
zU&HOyivNout&XUN=xy6^=IQU(Jv|%|kNPBLE;+J@?YEP}%M#<$cZ<X(zdrX)OQJ+_
zWBzk7$)%@4W~{s97nks~^xO58;}0JwZ;AH5bM#O1-=wO);yho!X0s)7l||lXOR8I8
zYAAPJnd^Jz^flGO8-8>CYP}xXa*(xhdF+C}Tcw-Kg8D5i#kCB7CrHiqPhK;9(QUcs
zpXyE&3r;@9;_p?e!e?G-y)u8|iZK7m7g5Jgi>@@cKjpsiLf>spx8Iq!rm;jh=G8uG
zG%S4g_gH^H`QB3(?tRMLUf&k6;P1aDJ(s$7gs(cjvNV55Ce!p(`FTcD&vo7CcFKRe
zG~TM~WJlc_^AkTz{|dkP?R0g+T)}|36Q--TxcDDgv-SAo51hF^d{x&MzgTxquIEvI
zs;OV3cGHJ_@;^^L{?b<yGF7>K<}!&D(l?AOmw!;_Ro`#<a#CSRTKbQRQxinn#o5_Z
zcfRj_Dse#al95aD>5i)X?Yk$<x%uzLbX^;Jhq=oRxW0e=_U3o4x$kyzoH-S};`QWZ
z0fFpwL9Ej!1^-)QC3i+)R`Bu0LYG(4ANY&rw_Myl(Jb)%{8&!;?=$DEKQepSW&7-l
z_WDzpHn5AVYj59oX!<Hc`RMM6A9+QV>Ri&^xwM1tw7jfY`My2d^!2q=g4aZ!Gc%|#
zmGU~teML^!$fHWhqF15#2HQMs;oy@&n_g#ZSi#>IQ(eTZti;dkR^Wf)uH1p!HP^pL
zRbBljoA~6k#jk)G{y%3$Qx^W_xAVR#-4Nlp?w0VWpKT$VuV+qGyd`8KsK@1h>g{>|
zE#IPT{IrAbg`IG+*{k<@!t6Os1*SD@&x0S&i__J7EKu}7Fz3at4Q*=si@#jleo;M#
zHCaBUA^52IrJu6ae;p2|e+&r~SbdTA$=e6vJgZNqRJOfvS|lZNy+Mu3eV)P82a6sz
z&%F71)sMTYcI=zz^lg<}xtfrHaol{?Y5qB@m)dc=bnj{nwAD@s@#xBMk6EIyNT;?r
zcIPRxQyG0%6zZbxc}}^$GIS9iuXWJ51y5bX%G&i+0u%0ETIRPeD|btUz#(_jB2_zS
zA&t&Gv$K9zO+UH%NYSR!%je!#*I%_s)~MOO$w6jot_p+Uv6Ftkgr-NE-&pYf?>4^7
z!%P)PyMFg6JXJesaBX$Xv*0=Gs*-le@y(8I1xhL&{1cDL|2kGU|LSk$84P<OBqlv?
z_jla6)r<4mn@WwlMdH`CAKRo8-+uP_BeNqVKT;&VTcnw-6-)ctJt5F<S+kqd@q1yX
zv$9fkU*25VQ94mpOVyS;*JblTzJ-kLCam`F**o^gbQoMoo3?!Gt~1N4`q#^DZJQ={
z-*AI`dYj{%up17oDTTodHR-}7T~3kQr_XMlbYZ@&Ise4j-m{;rT*U7;b*1cj(M?e?
zIi)iXGdgByf6#d`cMrSrk;yX}p9e<WSXwhbwExu~Po+gwmn7Am{9ciEFKp!<frkSA
ztZP`;`mB30<$S~^iK6|_n|3`bm}y^}cO<*(<D9qZ-?|^T>fUCGHmcY=vFO*NkKgzb
zUr*S)y4TBM`US`LEOXv%4)*_*w0uobOZhs1$B7TBO%twX?>}wWCHa|kc|^TOs?^2D
zrW|~1cjmoaI>Y?=yW<8)FYn%DQ_WoGbu>}ciKi(~;jvdxdiFsTr<`}Mf^1{h<~Y7$
zk+7JgP=1O>OzG{{4riO_xciTC%jYl%3tvoJvdA>#|5;77N-rJ1ju)cxuH26rj$V4O
zBtkGHsb$}dw+pUqS)aAyW6!TATYSDSWUhKXM_uP{&+`v`8&|VcYfoO4FT{H<YwB9z
z4Z$5}8FW@0JI3!eo#(z{l}PQTslkpB7QOGk25ItDoR>Xm<SBcych9_b#@b?whvp3j
z-oA-Ao-MnpPy6xOh&e0tVnn5qL(WVLn|C?Gr8+}CBJ^`wHpiNaj&qkUU2T`!-d6Y4
zBIkr`=cZ$aqweOdPq2SJYiIL4#~qBhij^}LhyOp@_hIvG+ko{Ec^vWIrFa%Il%Ejh
z7uvPJax<G(ivY{iGYLQEolBc9b>8P3!)cow<*WrsIzc-pSU)$`4A9Oy|HRz%u9@*=
z-HPPzYfrXXmhE)D5Yjq(&(0OeJN;cta~71WTT>Ohv#H&^Nk2AWdD!a-Oz~2^Klg3F
zCmpP}Lioxzhb|}e4RdneYzVSSvz-}Uc_;bJ^JJcR>$0L2`)>MhF+A|h*NrNssf+%s
z?zx`hdD<^@?hD)G;2c}a_soA~g3Ux9G{1OuX`ZR!mI)^lHOi-iuVUeFFbrR774m$E
zuW_~XoSR__mvy~y6FvFx^>fYJ`(m4K*v?qHCH?yP$cRfhY0A^|&UxH9e_>XwZRy&T
zuWmh(ogkQ^&05X!v`UF3bJ5LNM>!Uom_NVKrMcQszEn;o<{OhRb6=Xo$z>5<`}RK+
zb~(2!$n3AC<$ObTJ@$`6S1ga;7LDY$IitZ4Q?=A?QhMEO#T_ei7w)rC4df6jXRMvZ
zocLTlwL|Kg^hC>#B}VDbX8MP)3Vc)BCtmJ3C%GiDdits&nL~2Ro&~PEx^nS{95I%5
zUB9i`<y>A|j}|RvVLG#9R!P(;k5UoGtV=8AFPfPk^|R0E;pRJRd-iQS#whe-o@mh1
zbu*r_u~{GWSNtN}`*>4bX})%Ku}H-{nJaz!Dt9U#eS5Rw@yoc^k?|@Q>L2bceOgzb
zv%*tx3frB;*{39?B~3Vf^5S-z%42S`S#!2{m8Kki{`jeD&iUDk<P8-BZ}0gWax7Cq
zF!0RzuQ{q(c?xD99({bc_e-J7nid%u8OiF~ZL9eBt_jaFm}<U6>vZn7Oz-H&*-l})
zt<&CxKHTLzfBPc45LSt!*}ig*H`qGOO-`~+Pn>Sv^<CPh(L8tkh6lW77lkG*FH4@)
z^)~N9_=SA$gm10wN>xf`d%Y)rdF`7q!S(!n;qJxz-gtSo|6{SsR$jR0VcqG5W<|@8
zTfys}O;1^?!F#S|b9lv$dy7TQZ`XI~t6H8>SpT~!bVp>!tzA3nOj+1H*9vVGh}hU5
zf9mLo{hMRw+Q=%dw#s;UYU^grsvJh|Cax$C=4Bl3n2beU$QU(sbAM6On|ERD8NS1b
z{956C`}TZVYM6W4v^nybTPnj#lNl2d9-nadd8o{M&it)jA2_>DAKX7NsH$3Fj`nK~
zvGb8~y*FC}?}ol!^dW54re|}CO-|hU=l$QOb^Z6L>Lt7G-Ec_J?+kgy^1Z33F1qi}
z=AW^ZGI5XYdB43Wt=-PX^zTaIm7I05d#2<|&J+!m4|v+C%9icpvc2Gx(@PF#p%kAT
zaj&mSoHI)Zsyib-?__77b;;wC+ZKu0A3G_}C&ho|{kiUrdZxHCfd>qItG}{bJ)`fk
zR*|#q^4+JJl6+=*%Ho?dy<SCbFAdGANS(-Rb1pkFF)lr8*`ot*4Lo;dW`(?4`0)|H
zm(pR2^yl9v>v#ULxR;b?*Xq~xZ<czFo!pMk_vV<-coH3Ou9h)WA%FE8rgKpfeBF<D
zXR}<DNn0H3Zu~04ZS|ton<q}aO4(*|_m;q>qlYfZIL7Z`{3UE2n0-;~e_)-m--nkA
zetp&u4qJCA=(I4eNz3}VMF)4EoBCR7jr&IRi*=0a=Kd;V`XWA!Nw|lPwW{Jb-{0qd
z*C!Z!Fl|+wcR&4ChC@V@_UzVkEKg>LOXw!w`!-42ZO+<2=cAGf*B-U%J{NiG@t1DV
zMZ%lkKVBsG)7LwpYj5s-+qScZt|SDWKXp>gagxxzgs7?4Rz6r5xNU{1mTAu91(E6r
ze_n~a{JC^>rp4ylY<Eki`)=9&YDa3`6ASL8{87_iX<wY}<*UrUMntK&b?M_po*J8v
zWSfX<mTI26&ZfI>U6Qu*3>`m-2Q%MV?MxT5S={rWoT*^Cw5L*~($}!~CVu<5nK$PL
z9$s{NTkdYdz4L0Bznz+}>zUUBU*?s1owxNB?*3o>!#*<5RP~qqLyiBNIS$l|{C__2
z^T+&;`}^lii2t$QUi`oKRE1>o^BodJe^^(yuD(2>xx)SOjEK4O&V8NCdOmQvOYU?p
zqecGb9jrg5-7^k(omZ7}i=|EfPo+oey!C0{=lLi;V1M&0qu|YB$;SyY7k~W_R4Uq8
zWBTvd45l>Ss@}hb%~K}4`l<S<Ao7LkGQXfO`*n^z0=}#sE>GVyM>u?&o3`aiip{yr
z3~EhBlJnAQoOc$ied6J9=_L15AC64<nB82w#}A3Ez8P?K;gde?fUF8$pV`;Bw(0Dj
zRexMuV_lZm;z>+zq$K+u9D3KYQhm<Dlj##qtz7&-CU63W%ONYF?af>hXC2G)5MAcR
z6}H#>pY6`~o0orn8?ATMYv~ke-IkucE4j=fIwrXVF;-cJ+^luntES!^qviKGX-6S*
z{$tU?*t5B7PVyc3c<iqTSD32du`t0!+tNCtcG-QaQZc*p$zV%{SEsu3{&!+$7Ahpl
z3GZp?+Am`w7~eg0kzo**U*YNf^V+&)8}sb-r>&ZQI@Pj#w{@{q;Qihx1@{OR)&6B2
zs^Qbt7hR2+H!0An>GSh~pKX!u(`!1MZYI5aU~zBNl{X3M4-UDl{1UgI_RvQD*Y^af
zO)nH@7c4c~RPJt5qA$zqXlN~?^3Cp8_u9uNX66>nK4ZN@F5|_UZSUTAtYNXScx50E
zenWab|JB-wHgQ)uQdcgGSflT@cwwfruf@e1ODZn%o#UR%7`aR6Sr>EJ*JsaOon59P
zp<B{EcM_N1Z`~*Qsz3kB|MgGLc#v}F!~L56`o904PyA0#e3tO@=>MP7zy6o+ZTR2z
z@4x-A`X6%tKOf{uNJ)L3kW}}iezQ^WpIQI^_dMP?_u_Y!o;&s4p9AZ9!q5NxzDbht
z-+=>vJOx=fB&}>GZTUZ!OFlV7nqh8CotsZxio{=zwSSCn?EIU5@SJXrd_LC??`zwR
zyKJ^U6#Ku!jmgBUvPV4chw<8F-J4stwr)P!Kj~b(YesF4RbJ9VjvvnFPQ7nD`F746
zxy*b0lKE?W*1o+n=LMseeb9tr=BM>7mD@IMFlA;qvTyRyo%^59VrY<4eo(~xzqoS=
zLsCD_*ZOrPU;8K3cm1)yGyP%xBf0-J|0mCEZT>m^-~Y{D|0n;q-!tRi($DtXkH7z%
zKl5ey|Np0d{ZBu@Q?=~B&GYy3XZ(+hwD_m-Kj%!&{zv=&p8Quob64M88})7HeONzi
zDPmfb_3)Bf!`H3l$r63757kqGZ?GsTuDmr*!^peyph5jbadXL_uCFO)P1C0~3BFf1
zH{V|vr|a>xZowA6iLa(znfvJIg1da0+**gWYA>yu&T?MB&-}}rIa?c#Jkgyy#cS)M
zduqp0RYN^I=4$=?)hMxZR@K9)XN<F$rgc?jP4!x#H|yNXNl8cd9iCG8okw@=nH6<h
zGJ#tZeb;1_w9h$sK98&O&}SdX-+Xb}Z)+{eWu^S3FSb3jTXo~iG@d=j*8R4adu)y2
z+Dzu950|U=&q~aky<qR9$evSjX${Ml#<i9m=v{otyz9%`Sv48VeZTtn<~FFsE_YwJ
z^k~PX#H8Z%*RKNuc9oyE?Q%HVeR)#odBwW<uZ6{~3b(ObkMe%JBQvf)r#k-A4%1B^
zw#F%~KNkJYfYV6wxOd#)w&kveqZzvwdY*TFeECYyiYeQf7{zWsDDRBj;kss1a5k_0
z?{wbTPQ}~wL!Rv4l5$1o@y}x&f+?$c4`tS!ygD(8<-G5$pw9Y-tF^!9E>ip>n#FD2
zI<-CGfN8fHuaNemv=q%<0w*WUII5Wv@q?!|s@6I1!-RRUS59u3X4U>;hgj$bH65qC
zdGYVWxL<L7Y}k1@Wx}BlCEsri-_k=@D=ZcAE^dqaQh4f(u;0;L4|Mdne#9*QlYcdi
z>3+wGHkJ#^{h!9gT>e<U@QKHZy&s-ko205X?QCJXy1_Kp6CS3&m@XSG{H)u0qr+z2
zszUQn)jNuRWnKF9Vy6W!cpkV+b8W@U>XevxhJymHtX<YDwkq7EP+!EbY^tg$-!7fH
z$g*8+Y~FVT=eC=O`>Q7Yb1$_rRe9mHW|vTvPNbL?+u0Nyp=I3xP06`JL5hn`t>4Y|
z=e^O^mzov^OYhkA-Vzj>%swZ`oux)7wDlyjy4k%ge0&?H%hd%fy`*Q!mOSl=oN2k)
zeXjFw!oy5kN($zzoiQuBAZ|xoh*rpaGZ*>$1&5>Z_XuacC|29|CFbaT2mO=NJKrRW
zOK;^Wo&3_!x5Q-AcNsm=)_DQb&Rcc9T_d_zAbPHW`ns+EV;Wn|ubg(ZIyI(wiR$^8
z;jg5{uAH}sexurVK<90y_k$TKUQ=BJ*PhgoncaRcY~e}{=Y=YTyG$P5cA4&wyr`@2
zT$9tnIcb_*=dXS0WfnViu=SG09ml^cX))859BQ0q66<#Il=%T^j?WrLEFS*wwqJg4
zW6;s04?91o99VfnL@i49f6SivjbAD&b(|d{uWj-^HT7$B&72cWf-iMik~7(keKcFI
zekiZ|S@XBUB78Tz^2|CmAMu!fW}@(uBY)ohjMr#+ZSjNS{r&b&TR#^?XZ^@jz5YhV
z_|xQLr>@r*A93`ZUba`yppj{!lZ%^{6+fr{T#uC^my#lN6aDsEt*P~6+1~MAbL%y~
zT|4<+O5fR6;vL~1y58PzfBGFsiL(W)%Zu2KR8G7kRb27zQ_`R8bt~4dGMJI6zrLVk
zm$TT*EXzAx67$wY9=>L8dMW9@iK*Vq7Zw_3mNSg!pE<`}*Kd;1cRV?h@#C&5{r`f>
z!drG5xO*^^8_Zdpyzgm6^Pieqd-~T#ZMeJVCc{sqZ5KnI8*OrK`;#iPbIWq(UY5lZ
z`@4Fjjv5Hn`JO3a4R_u((I%O{Xi-J|!G-^pyqzSqS~2T`d;8ZvbJr<*?OrSHp2k%8
zLwNG3r6u<s3%kors5IWwozL-0>8$BVSK)nGE`Em_ezY~~tQEIc%;q|N?5wlB^?x?k
zF!_hwub1x4PFHad$S`c0_URvU>CdT`pDyTr5xgUIb>(k~l_n2Y{Y<@nc#V@4Z(rt#
zOka)tVJ8jeIo?_FqRGwr-zKAT9J^g!{xsz~n7dk~yQkl6=YqF^-xE*G`+J`4)4nxv
zF+GRB9@zE4c`x5SzMvjizQgZ0wkL0Y=qi?Wj*Zdkj>eJ13meOllyj7wrVDH`ziR$_
z<vz!2f34ofG%=Wb+ncd1OmD`Mz7<RyH-ZjS7)|-<IW5aj(sK48-mhDyFl^pys8-|{
zIHAJ(0IOH#;V6cXYo+P?g4^>a2vjM&XWe~dVfN>hW~L%-e)1kXW)rkq`SZ?CE9>nI
z@M33*{JG=n>42+mbT;a@RKzED2>7(ts;~8X-+RWe{`RN3M|pwnHw!L*IeH^5X4{+X
zmWLks-JNBwWcPSd+v2-Y899BXX&fz4=YyD|TbS8$DrGDtZjhbkI=%LC=aXM4Ejze#
zzJD>VIsB-7mw`;&??tPpOmug=-OnX?>!|<2pa#vmuRmq=C+$A!5gS)y7Q4B*J7IYW
zYfP76jg7Ig?}5N#t0MNF6Lrr9vIw_G2E^OnR?`T4(9>`{Kr%Gg{NqQFJ$CV?@vq-s
z(XRV!n#$bMEElZ%i(}cc2?;%)bEoV~TL0LxL#6utuMOs2TKD%A-D_>sN;(&5%dS%5
zoAZB(_?^xKPIsTgSIOJXf0CG6cIK(ilaFOjjnv<~wR2ijQG2pIFXLO71y9ReX88{{
zcQEPs{>rEe-FQ1PWbgNBJ9}zgXfG-C-|{hb{wAKJ7e79y?|yjt&TDU`*hgD@r&`x+
z>t6NoL5|vtd(te*^Ol&aCv+uC+@H5VK60bQWZ6~z6>sM~w5fG`-@j+2P+O<w68khM
z&I644U;YGCtrJqyTQ|9N)g7tXr!1CfA9z1^(-Hea34wWw!V9JfoDnz}z_f1d;)7=D
zUB_36rd)_)xF6nrVWMw~%uLVS$x*@&TGr&rUpiJ-aVGEDpDR<Y&HCB-UO-NTHTc)P
zFzeWZHoI2LIK5jcxv?t#QQh40KlZ(-d7irMU`;?=EL+O)#F<|^KFQ=OPVspbt@}Yd
zfbW!@(YbqflU1+O);N_e>19{$mSfld_j2CSIdN*fJTc`~5`F=(vmQOT^8NF2>DT>Q
ztC_{O+C2&SVV-nU;r?sAL*hHnIZtl&cb=pA_0{|DTQ}X^uXOgy^zWH|F(FTntd!la
zHKpoe&wA%4zo+E<bbfYis^k^7v+3ViW9-WG3?!2nMU=0q&Arq5B<`!szHj%6%NIK3
z&hhyc*w}Sro7bQIg&Dt}yg3sWRIT_Y?4rb!cdOm*#b-tDxs>-{+RclfYnCiIs%PV#
zE%jvwr$o^^MZU_dtT#8-ul@bc`S*YQo0tEe&O2bg;s4B;krDqB{%_t~_-E7q|2e<o
zLth>I=bn2z-1*Btmeu^5HaM>mvntM;Xz-@&%i%J|$?nq&1vr}-_Wqu8|DM*O2&a8-
z7xIa`j+A|7aZI?n+pRlbp6@cHW@(uOy^m|o^oQ!~e6Aw2jw`BXnTpA5ZU5JMJvTj>
zE^H#4ps~tvrlHN16`k2THeWAF(lws7+ca~Zd{URtfvm8Z+*dQ%wb&B2Tt92c+v~b1
zto`Ps#SVrgzMZb?oGzB1scm^FEq3|VSH0IeFWp$OuxlC%qtA~mN^<f&@3t(-4V0ZB
zb7#i;kbc7weXcbVc*?eU>f{A)+xse_B0c8sY5s}x1Lxm+x~%1?<TvdFmqK4`UUs4U
zeP6}()$KX_XAX4=&fhWj!2OA<JA9Hp+bez%W4mK`v+U}+Ng)k-UyE&fO{!KrC^BQ%
zR<!MlfHR|_<zBX@I<F4)=uMf^dj8kb*N;BlZ9aM-{`UIMetI5Pb{6oRIdlHgvH*_I
ztTd(iu)FQw+El7{N(C*-$^4l!(>?g4*7R4A+lypO&(3v=e0aA`nzOQ$t!VM&n?HK3
zdFMU6qyE#i&*uJ2lc{f(U($H$Up8s`M&V^`ou$VYJ)S)AUGv&5ZOQffe%zZAoU>f1
zLnXJYtvn<mEp2s{@C7^mpgpgPCR__zwKYsk`KaO2n=2na%bPB7bl#6gC+_;N*uJZM
zzP5^c*7m<LWtr<PPtz<v8ad_q%9A&wd&|N;tqa+wd`?Z(+(=AN(Kr6I?Srcf4ih=|
z8}o?nITRf!7p-0Yp|VN%t@)EouIa4*CFCwGzx`W}gZsjrXC;3Pjx2td`GdWsC1Tr_
zSNB~yJUg|61VWfrnasWtU7TrsbkCtbMq>LuD6380bz*wtCaskFUmX{&7f#8JtZgyg
zB&e>QbaLem?$W(EfjjK-7Fg*0d9_GY@_<s|iqPDx+hU}ThQFR8dN?ap_odq<t!|5~
zqCk#!ZW>`8&OxVAx63kJnDKqa({-=a64qONPCWPJG`qG!Qrjw4Q<D!Ov+tfcTzuv%
z>xoYR@{Z2?<Lx&-b2hthv{@iAr?G-jH(|c{`Jm){=PL!<p9^$PD*jSw`~B0pi52N>
zMK97mNt89({Vo%`zuP$Fwn^m6362wFpRp(_G1;lA#2;U}w&w)zsWacDi)RP)K6x@>
z>i!#%f9B==VognZ@KM!%(OPBGMTf)lXPps@ZadWS?A`|F&&Nz+ZH?kJVh`Ud-8AW?
z$+m+Nw`87_?07B~)$<~}_ureAVlBp!q>tGzG}w3CJ?eJ)LWnK**+WMTrS(k=+v8ou
z>l5_*z3%IIZ!T=qKFq!2bd{=nLH;bkxHD0TK_V8lH@c5iKc4aP+%vvE%Pzhy2x^-(
z`Tn)SOMDyFTP@rEZOOECZ|D7({Okh9u~U=&&Jniq-n8fGh36BGsa?z2^?8R&>4k+`
zWNiPQVk`H`R=x4?;@`UOpMC{0dd<Eq!f?fUx60(kqwEbo1sYxm2EF(y@?`c)lcm@0
zZCF?OY7h78cmKZrIb<?-zo+-?3cd@+6SpSF^(+d@syY0=IsTWRh|C|Kk{`KJ`)@qG
zseWTGZ#2Kz+H5z;KRhe1uX(lk0_*LCQ~%0aBz9!alCi6aIQa2XP4~3^57~MD_9y=P
zKkxsW{TU2@7XO^z`?ddd{TrD#`#;#%fBUokTlnYtz4DcH+PAA`OziwP$6!fi!SzC)
zf=`8MeHE*2xb&>v_*B)#)qT^wn`^xsIac;QtmDrYbILFe`ugd?ga(y0isvp(nQ%S*
z#VfO8b0-SDk}UJTe)4LYzrpnvpJp8Xw0C{;j_?J}+M=ruCTyFzvnuwPmOx4HL5|mt
zXT&?PN-JK@*i&`vMM|Hj@!jQrE-lDt`_8=NP(zv0`WC}mciY_4h5kG*Z>T&`{bYvg
z|5+x}1QnO-y<)o}X`>Z8;iToe;@0%{VZ8@$&*Pe>X{<V>=;P|cH;*-6WMx|~q%b@3
z<*ZxJ-{yI#9u~IWdz+{EymU`nO2GBEChp6BZ+m=l-nkFC)6GqT{>!|TYuz8cev3)!
zy43~-ADoj9bc?vfzvZ}R^flPAIjqa#eS6v(#+=mCk`)(QmmKT;y5h0b<-kWZF7ato
zuWKzyOr1Gpq4IN^>4#2tl?6H}%$;SnWOwy+qb}QfrDaQ^I4tkjxZYrkt1A}&6m~ag
zT3Y44cS5CkK^8xc21T9|yEQf3@1LbGqnu&w!G`4xg)6JPH2+xKf3*6N=){vp{xzuV
zZpl|{wKG;RvAcVw`|~{QsKSr)R;jtGx$5e0=qX$g-|l%z==e?PNz#fYADzBx3kwRJ
zn)IwOWl_lNH%rfFSMKupxBuHb<^v~_GOZ+77&8~Wa6f0vIlbjI`^5m8s_A??m7h#{
zU-a?PiRm$mIW%lSW`(#qIs`g)DK#zd5Z3V!WC;|=<my<YVV3j%+`Br{_;-9?f6jY<
z{`<U`PpRc)5RmrmuITJT#^1MQzWTQ<;qaF9O+vS9c9o~}S0?lAFK9lWZ}BtY*#4?B
zYc|@x{Gw2QZqoIAl@C8hPUD-K&G*72_x0rSFQeaARhCCy=MxUw;iI3?v|U!tEcr(3
zviaxjer?$H@8Mid)zEvFWmar@^;vQ6b)SmzNYBV+_5YrJ>zp1RZ?$3Z&ajgWk^9SR
zHdmjx#J~S-P2zzge@&}&BR7|XHJ`t4VfC;j{r2vIvZhsEwr2HwUwdCNGpT0TJ+@@t
zWlv8{(!8ubE%y1^!kqexzl^7+<y9a1nQ*@L?z%5Be`7NKO-laSw?6aMr*pxN?@8{;
zy5IfXeTy-7o^`^k^LB}n3vNybUS4&V^>6;q1n<>RZ*B#;cQ5<4Z|$ww++jNP%Wo|!
zeO>IeIXvc7&BmK^tFPVJu>Iv7kHalJi*6;J{b(&-Q}uji^ttPCMn8@$`?}n0ZPmN0
zXT<gA+$wqW<kPate|fi?N=_|#`r(wdd41{6Pp2QRUUTl%<%Cc3>Z0@a-ulvBs+>2k
za>K)IzNNSK@A!3cceStWrXQ0(Y?jWQQ~zj^?kuUD`a0F$w^|=N?_W|TfBEa_ZNl$w
z)ZJZIzVmc>`AX|Yv(3dt|NmK#dP?m6JHuZ2t10;vyWhWgeeE4@O20>Ky!6a3XK&1m
zmpQqos37#~Z@=#^HvgF(%D&%f-pje46MLIx1<#K8KJohO59g*%@0(L`%zk~r`$ZRB
zKd-wMZ<Kr8`?h}0|D(0<R?l5NYhRL9<>Ae1Go!Bl62G?3vgmVD-|}~!6198o{S)@w
zEmlAA=EoE7&aA0AeD>U0Z=T8Df6iNXZ`y3*=Z{{@>Yf~S?@@Nt=VsUUZMW|PexEFP
zkNJ4jlwa~&-~G>f=q>(j)63anwm0j~AF+L||L)eukG9;qX74?1|Mq2-<(H4`hizN=
zrH+Y|?@z6MAGgzP-DGY3)cLhf7S{jFJD2}A=+LEa{4$oe9lkqlSX=k$!<<<UuPya9
z<69m0d0qQ6F==mm>rM7Q|2R9({$BTebMAcp%(&}|?d?w7&wumrmp1!$oA9@H4j%ix
znajCa@0>*B|G)2-)%~r0Yt5xTJ<PW5U_|WnM{9P!KPVZ!-2VRaV=uS<Ui+%T{a91&
za{utxzjytdse4^_y>;QkaM@$#`x8$!Iqur}@AK{SJ-0qAR=XUf_qTDc)Q`l;uMh3G
z);z0nl6u;k%J&Ivf4^(bmwS8p-?skmxqG)>JaW2~b9LOki|hZrUHQ0ezgg~v$4}$q
z%xW&zuX|{B_UCE$@>q-LkXajFgx1clmVf#4#qYa&{l8dPPJNqR|Bx;FQ9^usblm3n
zdAok=R`0F<@Jru&-{0pV4P4j$Z|UjLN&WZy$6x*bji2}XGaWZxFaN)J@72im{6`o0
z_kAywDoQOow=kJKzkccUDa)d#o&8i>p>p2rY1v)1*HaJV+UlA7+WXx3>ni=2JNc3Q
z?R7stPCU!1zjvqGW65o=A5AHqJWHlN@y3<b>HTYJPJFv@{dM2^)0O}8^fDbTANVkJ
zbNkwgn#b3_zRu!5^NGjr=JoP`6~~T-+evQ9adyu8{ED%2uhq8PESVS4Q(o<V_-EZ*
zYr9`LA!)Z#{?2<hQ~UWoo2?fg?0vj^UG|rY`zFtp`~B(H$L{R~TW@{2Wmg+=T{ZjE
zw>jrZ`aRxfR%h;iUErwl(&4Loc4nRAj?3l?{5UVC9GB(wE|ZrmiV2=#eD%@4@U?5#
zzkQxJ>&t~}=PEf*@7LY8-0_{o^%?2kZT^4#x#`lPfZcriEsy8hy^;~O_<6NFd%uR<
zPDAw%4>$5(yJx=hWIuP+-96P?KVA@t4g1Xh>m_^4s+*aA^Yh<Ye^0sm_HL~CI`1E;
z@%PUi3sXK;|L16*;aXo^{<8Xir~VvUz1=SHeB|Z_O2t>M>Q;Yxd@pwWa=EpWYir70
zzWQ3q<^KQmGk>$&&*oRZO1&MV{@d-K*!?YsC%0LJP1VcVb9K93Vb12}-kDc!*6P2A
z=KKHf)U@-@Y^|cd|9-O0*5v-*f@Smb5?<`m^6qlV-zER=<?=?w>cq((GY@`<^}qY%
zcgm|*_r8CzDExM5-p<}vIkWy8wEcR&`thTw$LDFi{*pX*%TsT4+sC*5)%1F@#?FiW
zzwX`arG9@`pZt8N{C|XN{r7$8?6wxq8soQ{{n&c^o!GLMlcUS8y)ENE^<v+>OF0R}
zXCK7uPk;VxWBksz9Q#XG(%$|_dw#5hYx=({JDwkD5xm+T{(DPh;iYZQ+g_~Ny01I;
z#{vFbYP@UTU9Nqu{_Xrd>+RQWtg?UpWZmxvwzqxnP261@Z(ptOHDZ<Sj^&Rx&wYLV
zZN&30CvN+`&fA;$_lcG8tgR7NHLi;%$Fi5-UcbJq((U86_Od<qkKIUUSRZ>kYrSdY
z{J^!(JH7;)+uZxHRg*Ke{(nJw`g!Tl9hEcR*Z)4d$uC;I^8UP_-F`1>qqhexj@rU2
z_O9m1ryc8Zx4TZ;^VwsvdHUYs@U7ui|G#*?|MOX0Z>?4B>up~?tbBG^=+Bwp^P#cd
z-<ns?x8M2a!A+~iR%WyLKDH)Xi|ZEeJL+lgyZ7&tbqjBcuU&t$?BId9nw#BvtIR$h
zeWtr_-M#N62hXT7ue-guc-`8%xU2nDn?9?{S=~yy^=+Z5_PPK2-mSdCD$Rc-K6aU;
z-S&z9er?NEGdjF$*6pv=MOD8Yuj^Nt<i|(d6<6E4VPkvQt=salYko%Wo^^d|b^5hO
z;&qZ{h56IGf1m4`ZWJc{Zq?=EW{=L8Ywy;H4?Vs~_s^MT<H^}`bGO)UU$*!EQ&W4H
z8FpDW_w+Hh-HCdBd}6wAm73kZzwT$P<@0tGy}#Xg_jO2Q<nMhmlY8EW?)|#*y8Hc9
ziH$FAYQ4QbYvZ2BJ;u*hZP)$z(`l`Aaamd2dAm&yA4&a{t3GZtHMZ)`>e%}3pGBp=
zm(KPwzyI^;mJff_gWtcqS^CuCwsGmch&!9gL?2&GHP^fK=j4t%`CNK7LDN1xK0f)K
zgk|B=S!%n@-e!C~ckXsSpM2@3gKsBi^+kkj_1zlv`?lW-`;^<4{C}J6xM%<G;Nr7<
z@_VvhebT#c_b+t&z1_Fkvaij&`trz+EAQCf&8)w?aq9i+b3Xi;@Uu;-cVFeNbCY$e
zr<?3Z=)P0G=svsRu_+5@+E-Ov{Kwh${PwP@KQ)gV=j?j-+x&H0{MY2YfznxWR+blI
zYd^kSX=>`dx^Knot?yphl@%PCbBllL`q(=~7kRsP?Q*{x9a4Po*_*F-+4J{L3jY1|
z{W+PPxlQ}NZ|0u2x9-K2;^VW=pZom%XYKpj@_xB@3Ue=>XkHs@nYlSiw<_V5viALT
zzb-6budjQMwYmG>)nwx`wXM~LroU&NJ}Y0JaQ!zspSXGD$46~**pAMwul;pp&++=y
zeLjDF9Ga}V{$JFekelLvoz~^cM~Kg`*ppTKe@>rz*qWN!W1H{ZlDiY}>F7bZ((O5x
zA7d{HEc?(c_HJ$PF}c}as&;?9c`Z(V-@clH=Jxgfe||e?nssNR!IvcV)6ZIy&&?{;
z7u~k2@a)n@QO0g_zwp;)=6+haTK3kRD_ia!+`jMU(bAvG;=4~*y`R4|>%j}Y`Q|Uf
z|3A1H@6Pi2ZMLcA({paRllJ{xwSS#!uW0qX|7%~18|QvqRa10%)9ohr++_J1wu%wI
zkAFNH|I%=8=C0JwGmYN}|C+zOd}I3Eg8H&ghiYx*>b%T<D}VnrPglDC#)JJoqN9(0
ze0Ff-;`-t#({dv#)M}%vAOBm{8p-}{_5{nnZue#H^Hr9v%=CNo>mqBs?2ngE)$Qlo
zEqr*}_nE$~#g~%JbJbp7Z%#M+{rBurarK(YKPTT_E1c<HZ};cgnl|M!*{Ulg-(F^E
zSC>~7`)yCPUuLuCXUT2dn=`k%)qQoidMW2Pue$jEAGenlU!FJfUiR!lhp797rTcbV
zd6Im%e0%-p>Y(cfK22-$elK=+e(m>n%9HQ?`gil<>C5i>FDAV`#JK*AWleYLsZFof
zS^O&Y)jj-v_tVAScO0H}{*+pt#LbQOuH38qyhXd;Cg$@;_3-VQ+UMl%>6!jL7(Tn+
z(D?OTZR2g<boA_geEAs~erEffpEvTQ_ea(Ja@zQBr|ISG=dEuoJFD#N-<MJG`pfTg
zx&JplJ+bxoD|PAY{a+rg>e*D|J6F1H_I$%+pXmploLqgs@{P}_8ylaOEy=I_n{~2#
zp`V!i?oTV0=S|PL+567s_vQ7;=l1_{?ssPY&3o_O!n3n`v-g%iw*UO6{kQq;`k+gf
zgBHE9|M+|Vzr4TszZN9do>wuK*k1o)%W8d-Xv3;Q$Mk%smCEc{cdMhvPhM7U)}NN_
zvXd_^=Zj_@tCjeX^5x)e+qrIQW=y}8^I!PwEo<{Tmkiy5_ny2p+uf+RzkH6#nyQ4a
zr^07Rh_$@BYV+yNve@hA&lPNaXT1H*x}}-w!C~jLWMaO?dwzC1_bcVPq3^?as@b)l
z)6Po?%rbfXllQlpjCIM&C&jPLx2z7&eXwcg-pkc?SCW35nyP+#&*I9R_kM=2za8*?
zpVYfTYxB}?<~!;>cf5}}b1xwE*OzAZb?;3weoa_XFn9a3(CV7EQ<7g>$J^d7_MAUE
z>hAw*nP*p)=I6}&aN@<?rQfeqZhEeN`@Vndzk*xo`u}b$y0-Ai`*OM8CvSgvzVQ9V
zm%`hY|FQb~_3eUJYi&!v{rNfD`#k^J;=t`y*FMZ`-&MMM$FA$jSHD}|KW$-WyCC|`
z>Z_Mc?e5(FeJ@aaQ@`D{|4*CwORuhbRsZ=?_3G_<|CIc#O@FTx?A{W0_AIZ_tK9M}
z-}YH9d^mx7BLBM`QM0~Qm><7+$#(yfwSO(H?py17d;R<U<yVh>w%+z^n$5TMd(WLd
zSpL;rzIw;g@O*!re=iSCQBGcWFSz=}oX-o}exGCM-n7ro>f82JpZ%A#&-e0=|4<zj
zd2Ly*?5(@@ZzgKBrRB4l>EAB+bLDV&Rj$Q`Ya&rre|K-Qm0R;I_U^HjYujVP@5k>w
z)@2-O78+lifBfj@{@A^B#jEG87uCCCkaX_*nO^Se<#zW!UR<po8E-gWX2OR1kE*V|
zugJ|a{XgBbX1o2Yoh1i)EamI(txsn^eZy>L@UQyc7xu01*WYdO;CWl}IWs$}g-@5H
zdLJ{7x_>#Q!uj#^<961ykLO<heJ$SR-lMyT(fa!g*ZbTqzh`{^n#ISbYvt$9HhOX5
zaHYH6mS20)PW=hEG*{jJSH-(a7kUzBPq#BDI%&OHzsJ)0`Qp{7?{}`6Te;`K?@sG4
z_uuaPb8zJu@wnQOGne+7>%RY#w0S#!+r2rDC91A%KVP;n`1R3iY==MJ|Fh&k;+DR;
zzn53HN59+l@5}9V!Nq<{)AP2;*FW04du#NwGA*C&dM|9seJ1~|*PXlN(>Z_foEf$s
zcW&AEbNas6(sRb&%zpn{b}g>GO(x>T?QK7|HHR*n8YB1mea+8KpZomJz3bOsGE8+?
zJv;mF{w@F6y$`c8?(ghoas2YXH15ImcmL<kn>kPL`~QFZ{q-R+r|z5mTY2*2%fkQv
z|L^)({+#vpAK%CGX9~&x|9|RZ`)YRCy6Jl@o^Y_;6iDZr_RsULy{RhmC;J1e0V^dX
zXTDsS@#nJfrN`g*|JC(p3V!l2QewwC-n^M9f6q0Xeq0`{{IDiC`q(1R3n~V`a+qW0
z&J2B+yFhAf*lNiajlY>Bmy5rveSDK8UWI+*EZ4pX>H-fXwyB(H`@^U2EZLR(N9XmS
z>3vy?nA{Z;jP0K!1{&UJY0L4G)SD#E!#YRjIA^|BYd_;j_2LVHdKVseyWb4ZX!x+u
zzVtMAS);fV??Lm~3740)l$Mn$RPFc@>orGb-;Q$(;)2FJS@9J|TV&+=Vy1A_E}rUn
zozY)||N8w*kq2KJ_f$uwN3?YO=X2e1NN^MDn(zhP6CX197<%U`=@p1Pyb-C#6E14~
zXQ|IZc2kKH&%2G|`sa)0-TM4PlE;$a{Rz>ffm@!w)OTLm!TXfeV%kQdSlPI~s}H8@
zna$sL+qTaCM&9+}HRktESk!Vjx}P{3nY+`iX@}@_gF_7MGG*7|Q{HyZS{~cVo;54b
zl||;Sc0KQc3)MfA|0{}oy#4XS!uYK>8#}JEK5@vGj8$5G*{HK8?sUf4?`$@8dwcU0
zr+W$=l;SDsXgL+uwB^HO^>`PVM^pbc8ZiIpe!<PKphdKTyY@p1Q=RdhDQnDEh?%%I
z>ABCi%Dv%e(wgbryt1>V3EhABp-S^*;rt_A8BZ)`R4lDHRXAy7Vw=~L?iWutl~nw^
zxJ>r=+e`DGNU%D~)kjEJEcOUlT(jcDid#n%r}Z-Y($PL^-syhekc!JgnGcKKSzJ8T
zlI9wxAasmp&U?<nM242b*9-;Dlr=jEhP9bEx;^0f5~@<w!Rzi+m)cx)$&$zK2+u~N
zq@=n4o=XoM{)iWw9N8u?nTw@xhr_N%j|$4wYFbxzJyE!??5BK1#J%g={8M@}o<{^6
zR-Ln^|DMp9@>M4uwsOzxJaFJrdwV;JShuVA3AWIf!wZ9co=~2#Lst7G(^H2#(UF!W
zJT(`0&q%T4nb>@5yZfh`XIf)dD7(4MKJhSn;X|&}etBPh9gl}el`efQ;`6R3oi|jw
z)vzb=ns(-{zgtawPqa$)=4q``buwFa-(gRLLSMja`7X5t-p&W1O7iPf#B^7QH}BA#
zmEjb2rzOTnYv$~xz%G8rvfz!n&!ZB;9;haMEoA%C!G8D$Q+VCWFN;MrvKG29Sn?Ha
zIFa{|iGAj#dk%(|#P;L}PAXlZ-0{joNU*VQRlx><nI~%c3v~9$NDD495t#Tv?^mxb
z=c3ffo^30empC1f4iipHiPK6`QR7*2?c$7X5v}k&Rkp2b9Gunoecg?YKG2IXQmRO*
zioBGm!T$ZlqVl*fEBlH2B>M_P&+aNpk70cyv3S1drzIyWq#Tna1wNK@ea_<ktNlv%
zMfj2pA9l5~?<>gYu=y#c{`gbNg#=cor8VK96#`Q?zB*&2d^yT7KV7AzPWiR=i@Y><
zIrjRmf69Xn2+VF<v0yWU=*81r2c4@E!yY{PT98<q-MUJlc}dP>zUBpdQCi`?5=xCH
z{yMM7U9y9>s71uY?bC@>hoen)EVcAFJ@dje*Y^7J+?IdNF|GFd*S%|(nxg(Jtpzs~
zL}dLU{;3?|-z%N={<?SRs}Hw~1Q#$g#sudx9c9{gC}zSUrlzUvYde?i_nH3Wv}agE
zf{uU0jEU!%`~{<Kdd#0Hr8>3Q#r2Ays3E(rKNItmw3f|b?E*?)pKfK1+wjtZH8!Mq
zXV4L@h;+rMiBDIAN~uOgALzK&-z&6ML5cN5z%$7=?4fcS{nS4Nf6-~}Wo6zS<H8ao
zbvC$sCi~knF+XfswdSwbbWkv((c&hDwd<A)?J)jT&mR^=w1>YGo_Sf%-@~eXkKi7*
zTVJ9kch+rHI;5~`LK#oRXAisPo`q|lXDxZ-Gu!y_R=0eE!*PO>xL<C4wr5kw+NQa&
zI#N#+qMQ=8H_kfie8l7Gw8fLPwHdx{nbj2$#lHEX#uvlRjW2y}T6wt$s%T|sofK!E
ze$w>Fy}uqmG@Oo2dam@6q2tr+udH1+92L#F^bNvWY7U4f#&8(A7CJKMhBZBL3!0jm
z{E6ky3Yq$f_6aTaqC)CVoMX2w+}FO~{f;zMYrl_EOJ&SYe&4luv%)cx0!!`>M!anN
zCzD!BWcWNk6s0lfCZ^QPiN2J*E7_GfdWkUCQ!h*5snb6Tg%~zRvaDUfu*S(raZYK7
zvSxaC&o7_w(#>HiE*mb`8VGP&-qcgI&<!_<WVy}!*s0Z5Mvph<;3TOI9}`FMzn&h?
zS*sMH{!XlV@!<#O-HLODlWbxVE>DaWI~6@O>0A5}ZVNVFvDkHr%i>-?nv)^g-O@a9
zgY30f@1+r4?{&@xb960ZYCX6t!&7PU?#iT>KDA5<R@s-YHtJ?H)~t!xZJT(IZ}HkW
zYnPV3K9tmYPNcggZ_lioD;!&LZnwS)no_+Wt4gr+=ov;8#)4G0AQquk-kQsjTFG}C
zC+!GT<d0by*7fc{lf%cm6`6YSnS4`?Cz}58f8^H?!dD%jzVg|DBBMRp&7b4D^VX~k
zTBjzubZbk*7Wd_)EtQMZ@AtBmwmcDb3t6J_x#gAF)P-FOEEIJW1e~JvRF+w=U8`)F
z7$OnsVn21=bZ7U@U#ew}Zbn`rt5@YoHqTSK#Wl%G!He^%{M)Y6>iz;#HI|<?=v}w=
zF@u1W?%J8z30hZeS9I@I3Ef+ncW}pv8w>cQi#9(kKhN%}B@?8aZ>-#w;py(WcpI;n
z;AH!RM@lO;2CU@c42jm8oW0n!NZVPar>{kILeA2w+RKkT_{C#4xnrJ>&?%mx9jBLj
z-*~9ku9e`wd9l)-*nJapzwVe~_H)Kv7pXPTn(r$*5*96xf67`Q{3861`LYiawL-#l
zUoDl^S=?Fm>)wG(ZOs`BqK!>9A<kQ7&U};=D5d8*XK`=)jvxhzV^(rOp~_Z^xAgDi
zie6H5djVV1WzSVBBmOTvTCA-Y+REk0AX}2<65zs>&mj8v3tOP})QzF)(^uDQE7}ng
zv22lj-8PB&d`0y|j!ql2wpTbUUgD^Ein-=#vd--@Q~L9BG!JTjiE!!ZtGMw&ej?wE
zyk>KYh~(8C<>LNZmYmSO>S>Z8s>`@&YjYjb*GrKPKJ3=^=LvlpbmzH6iNY&`TDSj+
zmppoOrq~$GHEBD+;JNVfO1?0?dlCWf*n9S@k$=DLL4d+`qb2@NB$7%eNE~jtto&4Q
z+CrmWeCrd0gTppl;X4$^FZi{r)R@cODL|rZd5Jcgb@CBW#bqZRGgR~HT{e8dVOhh&
zf41q{yPOVH<^C+^;7dhU*b)zZle?!NSkm%PWZo3zYw_HHF&{gNE*!p;>EYet-K?Xj
z;QZbHc0tOq+X-AcI*(4q{AakO`8qesK%MEi=NiqZ$;Al<@!iKxvizU1m1mAqd#p$J
zW-rArFYdE`jNN$pRIs<q-h`|-*BJ6VCthG;efKfCSu^dD*P3fCKW5ad=uB88Sz-6+
zyTwC=8wuX$Op6`$Zxy^O`V*qzHuI~q;zXT5u^Tx_MXHN^g}jBk7H0(&I6tuYu)eWF
z%=^mMB=$qM8Z7v&T=&Ir2Pg}FVTrsLqG(yUf%92iy~2~j-~QE{vYe8saJ<~^?*#AV
z(`?TaG4Wkle^|8OP_&ZAiFD&XkGXez$?&Rj*z!Zx?pj{@8jqP9Zr5g9PuTvNLx3xA
zvEn_$oEt*V*1Qy3C-Jv=U%`*rhm#qVh34sf;GeW9L$6)7(sG*Y`gb=nc$9-GE<W!S
zJNtja|LNUlH#_h9>Sb9Mdg{Nns;#Z$?|Rkrh38jB&J3Ltd^zaR&-(wb|LiyFom$4^
zylKOU$4<plxPL@!nY4N)zw;XL`9BZaGGu5@_*Kej=lR9DJ8il7t@YYRxbosz4@}nb
zOUTPt@MjDyh;0c@IdbXTr@x1UW-Me~BR@^!#=HejMb|EWFyUbKRkivf)7xJ(G+G?U
z<CrvYRm_ZKKg5_;G=1=0;8zg0rIMlXVZkAzjB5fyH#L2%r>Sl@T{z>E)l9c1JI*|w
z>|+%t`$qc2u?Kq@&E0~|x}TL_V6njI$rQhL6WsXa7V5J^yf124`0&i<O?G!m7c?<M
zUOl<i_<2h=-=aBpsy6EU*sj<*W!JBrGKuU`F74h<HVQKswqD5PZ;TR5O8m&f6d=1X
zExKrjN^SeU@`Xxo&w94WtTT;uuH@2so!LG?KETyBB&C@#-SM}K_^NEfk_PiFY1Pq6
z)4LV#@p;d`bzs7@2{$^9<)!dV51!NVuTV9RCvfApZ4<xUQL+9PK0ldF^~eRq<2`jJ
z4PW0)P5yi;h?lKv|LMu|<0Ur)_;HyZ=gCibkfiy0%BfR#O_fw%9F98L*tgr~sqU7g
z-=f@frZP=bXx|dqzJ88Uo%;+K1)=lKmNiW~yP_HHtAF(1`_LR-mFe3V*Jk1OF0o->
zquYXh)~FzH--0*koK~GR-`_p{Yvy8S@>|Bk{DO0<#(YhAyKbhx9#d^D9%Bh{Pru}N
z*lx46NC(STtEjN_4n5iGghkoGxgsxjvdz|1H8<1QYG`sXH|S@=WL=I8ie^tFoa6UZ
zs_rtYU^3$Tvrx45Y<yO+?%l3;y|*ejmTvISESD(Y)J%wa8nye>;fZHt4;HFD;IIC}
z74Fff-RYt`T{)B|Vo`~JfO~xC1-<=+N(TQu9=mXS6c#R)n!DdkP}L&aJVx6u<jz0A
zB`bK=FlcLpYHs;-)-S&y`72xRCGYm-^{jH1C5v6J2*;gd>U0YWzvmyN#b;`y@3m0Z
z<z04W_xGq3Dbbgvof5BjYJU2B@XCLoFWXjzOz@1~Ibn}j$chy!P23)xdXsjzrrFDS
zl}39`#v<vZ#`c{TqqbZ*rn)a|#;%IfW-nLmv9@`mvig_Bl;ru-LawS6sjWQe!+CUt
z+jR}~oPD0XdoFuCck!y)5u(3zqR&dlUf1aPngMTPJ7t_j0@NmE>p#lao~(K`&-^nR
zgR=5<fsQ~%{x!0DubjTBdZF#(jOIo2!@c}mH+q|||9&a0QZ+2?c9U0_qvJG9)hkh#
z7soI4G5w)`ZSKNc2JQ(<zDcc&Wt}6r<gU<{^1UBCZ`z)G#`sHQ=|}fU0WQ@I+=<~k
zxfKt_@62z^R54L5)i`okmC-}PMJBznpPNH|;cXY=M*^Ree|q}cxD~h`shhDULraTM
z`p3Bmzr1=vzq!}^J`y19lJVf~%9*<ilcn`Hs7Z<2YHDtAG&N7Zux#;e!Ps>-lD@oY
zY;xH$qvg|u+|1hIjwnH2E9J>b)?Y7078E}{9l>yoHCu7#l7k1g>{#Qe%5$$IbE3JF
zuC5kupm6Mdqr20Kb{elp<d~jptRMDouH(Fo?4lP$yV#r_9@*xRZlHWuiNCP<zVG+%
zO2;jljb5t=m49<Nr?b-IhsZ-`v!xq7Pk4*+r>j4TXo}$P`{89-Vci*%94g`AxYJaK
zRZ^EBOXlcoS8ka(vg^4gZQBwR-VirSf{&$^QEyGm76*MscCLc+?Wa~H@fc2T$zN1+
zoiSKZrv22`xE#%Sc7c;-vCa4>!CWeM=!W~G<5Igj92Q?PO!l^kk!atsaFUh<n}XjV
z!E2{QP1ejgdE@Yb6_WRp7p#1v;5J+PtK!j(0WPsN4+ZBQ?%9xCa;jgt@>USTrgw=?
z8`)WMG@B;LUw?3yZxL@B!$XrJ{>NFvH1wXZeBRbAb*Qy{1HVCE^I_qpIc*oE4k*>V
z5n68ZLhwW2$J5j2uIV_jN>sG=v&o(e5yfcLsf*nj1!OPt>{64D=DeB8>=VMKCleZH
zWT9ocsP>7o-_@<YClyYuRC03g=n(J-(Kc`mx#Mtze=+A#UZXm-8Ycn4x<8M5y#KUw
z-sj@Gmlz*VWwA2hD#v>}J<;X^^J+}>yPZQ68Q5ySxHtW9H<WWrvEu3PXPRWHq^yv+
zaq@$3KC$THDd($wzFd9yB6Z1Og~f+bRn#YCJ&a{xjWE9O$MF=m<@rmiDn6f{YW_0d
zL;(}Ci0Iu7!ET=<-F;rFHU+GnTJgHrVpi~k>kgHRc)0G}?x=nG_*hdo-;5(?KlIDJ
z^}V&_*tvCo_OMzueG{q4WcE2eMPu5d`fV5Qw$<ExR_eFV{Nv}H{}+C?|1y68OV~G-
z4U2y7pB!v_<d3{&WWm4b6J_lG|BjYBSrN7M<g=3Es<v<cKi71e|IhVozxto>`Tx^X
z(jNV>UpaH72gj0!pZ{NZQt@y4|8t+~e=L71U%)hhy=Y4LFZsDwU8fyTeI+qp?2_>E
zFy)UTrf$c@Bz{VWFMiRR{$O^)7nuXs({fC?IPIAEmhkVCQCum$>O$v?=TDQGW)wJT
z1iWE)Ubtr2tDQU7xLkQ@`AhRi(F6siCiAC9N*WZcdcMEf$XENY{NyrM-59C->8aK#
zKT@vDRBSl0fTucaYrlJ-d*P9u2P<<p4D*bZ`%9Qx|I@W9uxxl+doF2-hSAzJN)No0
zR5IC8B$-@$+pbto^{-hlORmv%H?vor-3!@&i?#I4v=b99y{J1Fqxta}U(@u3s~#)%
zUR!kGXv5mBKRn&s2Yk98&T3{{AKqX3{lyhik=ZKRy50|F9h}6oJbq4G+Who2MiXY)
zv$1A4XGwS#G1hS$c;M_Lm*o0X!O5!fHUG(l3I?{T&bXiZFwrk+sc~b^)GPcSGA%9j
zKQMUKXt{J*FyC|VIR2#Raasrq<AF!Mi+IdBZv_>dO<>`hRH*P^5x>yXW1BK|&zKVO
zfaA?WE|rJdUqnCcY+YNoM5x}xX@A(XJVvXg4&9^+XHU;$P*an+AC@O#tZ{Y*gOKmj
zCo!(|vU&T~^L^j?^>VM-iMq^`GxOg|xf~LxYnY+IVHNmV;_HIrVU|S>?XRQ{sGa`K
z)3;g0NB_Nelu?&rE>~&}|I1!uAuh*Fiyt{~M9U=n{B{15)uow-RQAPPk2?Fb@zUZu
zor;rMCQo*W<#RcDI`;LN=lm|J%njiJTTe>L&hQAFwCL@_H#bf!HR@}c8GC5<qRhQh
zI)8Ywu&i*fTT=M6Ioje$&gz`>g2QDUUp5+9)homtm>)Oc0GDQb_sSFzX8&`0O4w#U
zxiZ6taVImM&aR0D-y){>R5umfSzN;98C!T|sX>e1k%C!@CtOm$3E7A-6y1vFoN3?k
zb@vUSR?E<cT}vgmvgl0GKGfuSAnI^zxuNDW9$(fK7j7<gukY=c%~HJ8@m$RseF?qL
zM7yB5!hLKF?2c0&eCnCE{r%&VrUN}K=@!jXz6)*06bnCa)p5fwW+#WuOYcN3tx{5X
zzVgN5LmI;N?^JtO%+3^R$-d>?W-BG?a78~RZegwD)1Oloh3oJ%rif`=ekvuhbBEUQ
zaIW-EadZA2^S!9F^QgniiT)f{*WEr5Y27>JpwR5+x>A~x));^I$p4g0@DoGv)SV?3
zb{PUQM2v3lJaLVo@2ck|56f1;g+FFJ@!$$Sa#Qh-fSg2O(m`g07^9o6+My1=8KQzh
zpQo>3Z~An>PD4g-tCG=AnMCiTa+&^P%lG)~ax3VZbJOQ9lglg#1!ZoT70H+WMD{tz
z@=Xq%ePN=>N$YbSY=_wL?4mp_yVt3#O;%;9SK+hk>AL3Vz%8X-Akh22`Lo!ib!VC0
zP48(@RWM|F%HHp7_-@_?&N?@Hm;S7u&0JSE7%_g_SU;o0kG(@9!QP3x-#c`%BFD*v
z)2br$JzKQOOyxP*I_)Ia#yc=p<%m9r=yMT$JcTLb^n)2pTXs)W$t~V-dU<pA(>aR%
zau-{-s!dkb*FPc_IeBZ%=lWSzEa~mi!7UR!C)PLIpJ8=plBm}bufh|;X&<*ax$bx*
zFKPEyZGBS`WA>DH73^j2rzo9IJHF{@Fq^a5?-qMcMnQMUx?37d3$}%5He54Xe^_&2
zqoCik)Q2-SI=3#}`^}Ooa_72tDI0<{uRSlVXk0X*)haOk#|pkV4}@DMlzMVaI&pfB
z1A_@yC<{}ZxSEAw%8aGl%a4>XPrS2aio}FfZ#LL$6Mb}qw@Rg4(R1=SomlywH{7Ii
z)D49X#Yb%2GeMZ|mJt8NjYp3kc671{Ii>J9Smj`w7i&#}|M}o~{%aN-S6$4q;K3oy
zj3*Jxr{?aQ@NMq<htKV0bWgEwl9paptsB#q64*Lr8sl<yX)VWvhrepAUU=DN%~M~N
zOJZUIH%v976fS5Us6OxV)6YqI#cDI1Tf!MdF*-7a`z-4sA`?C;Ha^vp>gkDfd9&cg
zOVu{V8{v~x^!p^Pxz?okuPHNpTM^-@SGMwb-jrufA-i555OK0Es)~wx_S+#y)9vq}
zbX_Bt=s8cGg+!h`#d2#Er>xzysRApbrwEz}x}PzMdefM>*ipp8%X&{-Ww>X)z*L@~
za)wE7CHn>J$`5jj1s1oc@I4ABP5ztH!6O#O?7<;wSTn)vhS|%2XJ(6gFDe!Mc+c}W
z(|FAs=D^Fr$GH4X)@<Ix9({(1DXxZdW2%Q;ud$a!;~Ni=w!(MGD=Xbf!k_FFQIt3F
z$eyFjog1{lTx$6v*|o1Goe++Hmz=ZgQQUfI{}##ns{{6J&dpjS%g6ZUA%jow-X~LU
zZ2xESjsG6gCgxpfi=BAv-7J1u`_AYtWtTm^=)Imw<f#&#LN3$fh_|=5hi8YFuTW^Z
zkY2UuY`E9%H7RPAH<|wXCr)~>qDODK)xYec3xX!kwCfXSKA$rwSVwc^v>u&fQ|72P
zPMtM}^Lug1$M>gMtps+>JXpdNG($6z!_qrS%Sj`Y%~;#kQhT%P|G0Tfd_fMU`lC<C
zOP=kVF0ML1)S|<%-PZ2f+snJpOxz%B*RJfSe_FpVu|v4<pwWE({V%t6rbgWqxvaWN
zBJQsGhTavE9`;wS`g1upblu;7{1KbhJ^Zj;==uK0%$a|F=0}AUxlMf%vV%dT?%(h8
zz5mrB*IWKvD-vSWRMyHXk#bs(Mf9_Ii-Ml;WW__BYK5)5ZJr5CbEo|+NY&}Tc*<vA
zY4Zf_ARFoJ&UMdL^OQW<eChkD<)>GaZa$*kwqCnZRp$CL)}<aVmd1<3O}_i|$%MNX
z8ABd=Hf&zU!Llea+{U#}ApY{AB?2+89Q2qEw)cyq*<BT}KD5nojklNr=aqzxv)`vg
zyoi^%(--EEbW?F=^CH1%49`}(A5@*YfumaSldVwE2j;#bs&7nEJSJ%^=$&xguc2kh
zCgn%G%6q&1yO<WQ5&fX!QZ6aCKcrdR#*M>q%c2II?Y0{QIwU-1O?u3r$0hbhfBx#Y
zE{mU`fvpP?mV1UA>9Klr<IsV`w!TG;Tc#P6YAtM-DtY+DhLkjCtHk3ei6wes`%``9
z$yjX3KRl!A!QpCA>DhemCnsGwzJKL4B}Fci*~|K_e6qAKnX&5VPYwQsO|CV|qa3Fl
zpOe(O{qCxzieDwQUOp>Hl24l6Hd%Mg&e;dbBf}jt=RELLuWa^Oy;$bKp#rmrL`N^{
zjcZ!#ue(k9x~|6R(^S=xH5-g>UVFX7cH`4klP<sKC}M3i@Xc&=@2)?tVyL<5f}=Ns
z^|~#;e~1V^HxD`9p{rQVUG22%lV{rw1^$zY8&lRabqG!nF!^~iDOS~j(Nn&?Btu&-
zS1HYru`}mSY0mq9uWsz{@rW*M=T@niDbuYUdyXkq)sQjDTFJwcJM_Zo!XMgVksc8l
zr)D3{dY&AWwSXnlGda3-$$6Q{$CJ#93;g&U*eW?f7jNRMyQcaoRaar%6|D>1lekxT
zd}wVsGVha{h{2Uv6VF&&6?-8!V@-Sn<3hy<h2W$Tt{A~nuP>UKsFeh)wbXRj%I11=
z`7NnGYq-K!EN2r5S~QLS`uSZGS)NKPj1b{bvIx~Ke|^7Kh4pCpjE@pY!Bd5NV|;jB
zZ*na>XWr$l@nNHd;Z2XlVN-OyR<AJiIlAK4jYq1oTb+&XG`ijrJ;;2vTK&@M?Hy{5
zoX=K0m}YZhX;IsXZ7RaHY2q7?3dFOreq4U!AM@7=UFQ={EDL)o*iW`isTI53d5~9B
z@zCbx2tU45nX~B{T4pNTS<+^2LhdHaT9~uO+40_jj%)l^K5}H--Ssi|jFYKzPnA`%
z>x7@JI}Q~^tQYb!3_32id#+o!ch%~mbxzw16{03SJ5c#)&zcxRkvw${CypA9HRoNP
zKW#av9KW<JBgxHiOK4tE#xLnrR#GCO8;;AJE!R94HF4FHMd_-`oT4VPYud(sc=Ea6
zU~PBu+(f(ejW;#DBUdra+ppw*t4;mPFN?@pW#J-`$Gh+GOez!pQR%KO`TAgVF#FX#
z4}}GHyKPymSvIBU$UZM_m)}MLJvo1-oDcPvT%)7<xo_jjO4pTP%^XE03#zWl^G@|N
zkYQe>drZG*-qh!5PgnYED+^naV<>pz<BIr49_B$#D*F!Ip8iH_tw;pVJSk(p%2|ty
zx?PMs%5R=Jvxz16&-w)Y?XL>r!spJoKK1>g6mR{nt2b6#SlgyAPB^J1eEY`>*U(jx
zMHfq4oI-;n&h>FB{0b}6UeGl^bPBWRBa=%#zRwR7bN0?-Kli(|;(R{;;!1|LoKL#)
z*-bv{R+-QHQ+H&B<IS2(%cM))2UAvhFQ_lm;#{;+^zjN2zOR*@Y^$ft@woK+u}y(v
zf@Xc8>RvD2wO&6P8Q$^pF67m?5E{d!e$d0rRZ!unimQ<1xwS{QwwZL>h>Ashc%pjh
z<Dt%`WlWyk8x-8XUn<%d*`z)v)NE&<_s*%(F<*aii2p40YMS*Rz2Pofpxf(Jr;=Kx
zZxmSk^^`ZK<GJfgA~Uy^pSEOJ>0VII=6&v{VEco#txq>87bN?*^_a%r{j$#P=B`y$
zOA}a~6s2}?tzDenQ?hPK_0K7{W_W5ncVoRjNlK|wMsIq^qFbJ+TlejV;0S78t32)J
zMh|ttTLsPnrbj-S#mu~G?$Ns?$gA4I^O1Y&MZc12hTvH&mfbdu?Ef5fdVDiBT@u>8
zgn@6D`pKzhZ~L*HT-)H@wVH8K1nc1(&xpYOKdV+Of1qO!`KV~q!DX|{Y%YC>teum3
zT7hR>j>A^9$uAPr^o|xi^l7`*b$qwea!aecu!C2FTU%Av1Q|M<N!YQzGicqk)W+}|
zH#b(s>;LqzG&*<xf5^XQ=G>wiEal#uDzLQm{^vb&F4N!bA8cCJ9{N>(JM-h#dH+9Y
zecw8VAzbAD{Aqk2_n&+zdGh7VNX?Z6|7K5}CS?ErZ~O88e1~SPbDrnGlD^~9ZcDq5
z#c`U8Q}h;{YPZp;e<khz_G7%{fB#EM{!jfU|6)7Or2qD&%C@Gmr<N{DTXN*D{lA0%
z<eN{Fu$yx7-R(4XoRZwW;QmpbCCBah<kat8YGP|E@BgvtqXwr^>sp_ZeyNw<O;4&4
zs%>6h`uz6NH4lxs+twRRId|g2#ZtMb%WKxA2nFpqro7|-*+Xw;J+qJc(V47Oo9tzF
z_<zLq+fP0|XaD!%*ZfJE&;EO|{$JnIv*pQ;KmV=g+2!0|{BH1Jr<Sfymu2K-@%Q?R
zjzuer9AaKC>9Nj#i$U}6Z?A6WXT<w{Z|FB=4fOmNs$Qd&64=4}>sHJ8bvivxZ5dV7
zbJonC?C`RuIdcPtK>WAwR)-2!Y3=J=|NQ^CpXcMV3fAU^%=q7Z=l|rUX@A$8DY@`J
z*yxhcqtE}}R|K7vT=rwj&;K_6AFBMjf1B;h2c0F4kI(ym^3zxO9LAZUGkSjf`9J%Z
zz1Nlh?Z@qPh2Pb8_y4cY`BTY1eSglM(~<v!jW;L!^*`sqxH;ZUOzMBnmML3){QCd>
z&Hv4*=YBe|b$#L~k?LJrJbm3<w(oLNyz{p_K5x6?zeTUb1(g8((hssh-+jZc9G~}m
z(yuGtu|e|t1GjnI2~D+|`ed6U-@yQjE-yX#4&Jss%jT_5Ji#|bp*X8`_k<0%cQdi{
z9{X;2NJjXfLT5?Sm5ITZwq41MX7KBBv2I-)HYKi?W7C<F6PHbJRQ-K1_)Ek6=u;M-
zJ|E;g{k~5spx5`OT6k~Rx|(xmFV9KQZR+5wS;SH{*TbU0>UHCrdrNtKlyl|HoyBs{
zeTuuD<ClL^M32fXn8ot%-j63j;;##yZp^V;CD>EIsxm{!X~yAAJzjl(49Y$~QnJ`z
zRd<B@few!nZ{ex-lItrbOR)V)Nb{E2w?I68jk{-;HIwqY=4PXHC-l>+)-Rus`soIf
z`$YDS!i#pk*wvRX`)qDOrtmFW%Uc;jD(_xB3IEmPyuVZK)l_M%q})Rbxl)#>=!dX#
zIg0&^I=N<2;F5Jk9QIdkpHgJ}e*DIh`=NmhpE@l#cyCI?ew)x}@#tFQ5kaSf>nDqD
zmsxUqEPlb9)q6}*p<vPrrX$IpX0SRq32khM`tajq>BW;hrysX{(f(2~^?d&$p+jvf
z>5)esEX_Djp<egEgXM&1LyxeH#fI{OCdZA0`6?B?8a~<nJ7Ha}I-w<R##uq>YUV~K
zr9`Hl+5HdBb?+!_Xnd3B>%iO@&DGDQps>N|MWfs2>1+N!`gdP6;3CTeg+7Zt%bGTv
zzs;sT)!^{)?CbwGZPHr)f9X<(fA_zHZ27mmNv!DX+N0P1{}8T!<o~DB{-gT8BlAh;
S{K>cf&;CqKMv=jSg#iGC@DxD+

literal 0
HcmV?d00001

diff --git a/tools/build-system/remote/build-package-ubuntu.sh b/tools/build-system/remote/build-package-ubuntu.sh
new file mode 100755
index 0000000000..0a28c1790c
--- /dev/null
+++ b/tools/build-system/remote/build-package-ubuntu.sh
@@ -0,0 +1,175 @@
+#!/bin/bash
+#
+# @author: Yun Liu <yun.liu@savoirfairelinux.com>, Julien Bonjean <julien.bonjean@savoirfairelinux.com>
+#
+# Refer to http://www.sflphone.org for futher information
+#
+
+PLATFORM="ubuntu"
+
+ROOT_DIR="/home/sflphone/sflphone-packaging"
+BUILD_DIR="${ROOT_DIR}/build"
+DIST_DIR="${ROOT_DIR}/dists"
+REPOSITORY_ARCHIVE="${BUILD_DIR}/sflphone.tar.gz"
+REPOSITORY_DIR="${BUILD_DIR}/sflphone"
+REPOSITORY_SFLPHONE_COMMON_DIR="${REPOSITORY_DIR}/sflphone-common"
+REPOSITORY_SFLPHONE_CLIENT_KDE_DIR="${REPOSITORY_DIR}/sflphone-client-kde"
+REPOSITORY_SFLPHONE_CLIENT_GNOME_DIR="${REPOSITORY_DIR}/sflphone-client-gnome"
+USER="sflphone"
+DIST_APPEND="-daily"
+RELEASE_MODE=$1
+VERSION_APPEND=
+EDITOR=echo
+export EDITOR
+
+#########################
+# BEGIN
+#########################
+
+WHO=`whoami`
+
+if [ "${WHO}" != "${USER}" ]; then
+        echo "!! Please use user ${USER} to run this script"
+        exit -1;
+fi
+
+if [ ${RELEASE_MODE} ]; then
+        echo "Release mode : ${RELEASE_MODE}"
+	if [ "${RELEASE_MODE}" = "release" ]; then
+		DIST_APPEND=""
+	else
+		DIST_APPEND="-testing"
+		VERSION_APPEND="~${RELEASE_MODE}"
+	fi
+else
+        echo "Snapshot mode"
+fi
+
+cd ${ROOT_DIR}
+
+if [ "$?" -ne "0" ]; then
+        echo " !! Cannot cd to working directory"
+        exit -1
+fi
+
+# decompress reppository
+echo "Untar repository"
+cd ${BUILD_DIR} && tar xf ${REPOSITORY_ARCHIVE}
+
+if [ "$?" -ne "0" ]; then
+        echo " !! Cannot untar repository"
+        exit -1
+fi
+
+echo "Switch to internal logging"
+
+# get system parameters
+ARCH_FLAG=`getconf -a|grep LONG_BIT | sed -e 's/LONG_BIT\s*//'`
+OS_VERSION=`lsb_release -d -s -c | sed -e '1d'`
+VER=`cd ${REPOSITORY_DIR} && git describe --tag HEAD  | cut -d "/" -f2 | cut -d "-" -f1`
+FULL_VER=`cd ${REPOSITORY_DIR} && git describe --tag HEAD  | cut -d "/" -f2 | cut -d "-" -f1-2`
+
+# define log files
+GLOBAL_LOG=${ROOT_DIR}/sflphone-${OS_VERSION}-${ARCH_FLAG}.log
+PACKAGING_LOG=${ROOT_DIR}/sflphone-debuild-${OS_VERSION}-${ARCH_FLAG}.log
+
+# open log file
+exec 3<>${GLOBAL_LOG}
+
+# redirect outputs (stdout & stderr)
+exec 1>&3
+exec 2>&3
+
+echo "SFLPhone version is ${VER}"
+
+# generate the changelog, according to the distribution and the git commit messages
+echo "Generate changelogs"
+sed -i 's/SYSTEM/'${OS_VERSION}'/g' ${REPOSITORY_SFLPHONE_COMMON_DIR}/debian/changelog && \
+ # sed -i 's/SYSTEM/'${OS_VERSION}'/g' ${REPOSITORY_SFLPHONE_CLIENT_KDE_DIR}/debian/changelog && \
+ sed -i 's/SYSTEM/'${OS_VERSION}'/g' ${REPOSITORY_SFLPHONE_CLIENT_GNOME_DIR}/debian/changelog
+
+if [ "$?" -ne "0" ]; then
+	echo "!! Cannot generate changelogs"
+	exit -1
+fi
+
+# copy the appropriate control file based on different archtecture
+echo "Generate control files"
+cp ${REPOSITORY_SFLPHONE_COMMON_DIR}/debian/control.$OS_VERSION ${REPOSITORY_SFLPHONE_COMMON_DIR}/debian/control && \
+ # cp ${REPOSITORY_SFLPHONE_CLIENT_KDE_DIR}/debian/control.$OS_VERSION ${REPOSITORY_SFLPHONE_CLIENT_KDE_DIR}/debian/control && \
+ cp ${REPOSITORY_SFLPHONE_CLIENT_GNOME_DIR}/debian/control.$OS_VERSION ${REPOSITORY_SFLPHONE_CLIENT_GNOME_DIR}/debian/control
+
+if [ "$?" -ne "0" ]; then
+        echo "!! Cannot generate control files"
+        exit -1
+fi
+
+# provide prerequisite directories used by debuild
+echo "Build sflphone packages on Ubuntu $OS_VERSION $ARCH_FLAG bit architecture...."
+cp -r ${REPOSITORY_SFLPHONE_COMMON_DIR} ${BUILD_DIR}/sflphone-common && \
+cp -r ${REPOSITORY_SFLPHONE_COMMON_DIR} ${BUILD_DIR}/sflphone-common-$VER.orig && \
+ # cp -r ${REPOSITORY_SFLPHONE_CLIENT_KDE_DIR} ${BUILD_DIR}/sflphone-client-kde-$VER.orig && \
+ cp -r ${REPOSITORY_SFLPHONE_CLIENT_GNOME_DIR} ${BUILD_DIR}/sflphone-client-gnome-$VER.orig && \
+# do a cp to because path must remain for client compilation
+mv ${REPOSITORY_SFLPHONE_COMMON_DIR} ${BUILD_DIR}/sflphone-common-$VER && \
+ # mv ${REPOSITORY_SFLPHONE_CLIENT_KDE_DIR} ${BUILD_DIR}/sflphone-client-kde-$VER && \
+ mv ${REPOSITORY_SFLPHONE_CLIENT_GNOME_DIR} ${BUILD_DIR}/sflphone-client-gnome-$VER
+
+# build package sflphone-common
+cd ${BUILD_DIR}/sflphone-common-$VER/debian && \
+debuild -us -uc >${PACKAGING_LOG} 2>&1
+
+if [ "$?" -ne "0" ]; then
+        echo "!! Cannot generate package sflphone-common"
+        exit -1
+fi
+
+# build package sflphone-client-gnome
+cd ${BUILD_DIR}/sflphone-client-gnome-$VER/debian && \
+debuild -us -uc >${PACKAGING_LOG} 2>&1
+
+if [ "$?" -ne "0" ]; then
+        echo "!! Cannot generate package sflphone-client-gnome"
+        exit -1
+fi
+
+# build package sflphone-client-kde
+# cd ${BUILD_DIR}/sflphone-client-kde-$VER/debian && \
+# debuild -us -uc >${PACKAGING_LOG} 2>&1
+
+# if [ "$?" -ne "0" ]; then
+#         echo "!! Cannot generate package sflphone-client-kde"
+#         exit -1
+# fi
+
+# move to dist
+echo "Deploy files in dist directories"
+BINARY_DIR=""
+if [ "${ARCH_FLAG}" -eq "32" ]; then
+	BINARY_DIR="binary-i386"
+else
+	BINARY_DIR="binary-amd64"
+fi
+
+mkdir -p ${DIST_DIR}/${OS_VERSION}${DIST_APPEND}/universe/source
+mkdir -p ${DIST_DIR}/${OS_VERSION}${DIST_APPEND}/universe/${BINARY_DIR}
+
+mv ${BUILD_DIR}/sflphone*.deb ${DIST_DIR}/${OS_VERSION}${DIST_APPEND}/universe/${BINARY_DIR} && \
+mv ${BUILD_DIR}/sflphone*.dsc ${DIST_DIR}/${OS_VERSION}${DIST_APPEND}/universe/source/ && \
+mv ${BUILD_DIR}/sflphone*.build ${DIST_DIR}/${OS_VERSION}${DIST_APPEND}/universe/source/ && \
+mv ${BUILD_DIR}/sflphone*.changes ${DIST_DIR}/${OS_VERSION}${DIST_APPEND}/universe/source/ && \
+mv ${BUILD_DIR}/sflphone*.orig.tar.gz ${DIST_DIR}/${OS_VERSION}${DIST_APPEND}/universe/source/ && \
+mv ${BUILD_DIR}/sflphone*.diff.gz ${DIST_DIR}/${OS_VERSION}${DIST_APPEND}/universe/source/
+
+if [ "$?" -ne "0" ]; then
+        echo "!! Cannot copy dist files"
+        exit -1
+fi
+
+echo "All done"
+
+# close file descriptor
+exec 3>&-
+
+exit 0
+
diff --git a/tools/build-system/remote/update-repository.sh b/tools/build-system/remote/update-repository.sh
new file mode 100755
index 0000000000..f03e3b232e
--- /dev/null
+++ b/tools/build-system/remote/update-repository.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+# Script to update the debian repository description files (Release, Packages, Sources)
+#
+# @author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
+# @date: 2008 Jan 16  
+
+ROOT_DIR="/var/repos/sflphone/debian"
+USER="sflphone-package-manager"
+
+export LANG=en_CA.UTF-8
+export LC_ALL=en_CA.UTF-8
+
+WHO=`whoami`
+
+if [ "${WHO}" != "${USER}" ]; then
+	echo "!! Please use user ${USER} to run this script"
+	exit -1;
+fi
+
+echo  "Check GPG agent"
+pgrep -u "sflphone-package-manager" gpg-agent > /dev/null
+if [ "$?" -ne "0" ]; then
+	echo "!! GPG agent is not running"
+        exit -1
+fi
+GPG_AGENT_INFO=`cat $HOME/.gpg-agent-info 2> /dev/null`
+export ${GPG_AGENT_INFO}
+
+if [ "${GPG_AGENT_INFO}" == "" ]; then
+	echo "!! Cannot get GPG agent info"
+	exit -1
+fi
+
+apt-ftparchive generate conf/apt-ftparchive.conf
+
+echo "Generate the description file for each distribution"
+apt-ftparchive -c conf/apt-hardy-release.conf release dists/hardy > dists/hardy/Release
+apt-ftparchive -c conf/apt-hardy-testing.conf release dists/hardy-testing > dists/hardy-testing/Release
+apt-ftparchive -c conf/apt-hardy-daily.conf release dists/hardy-daily > dists/hardy-daily/Release
+
+apt-ftparchive -c conf/apt-intrepid-release.conf release dists/intrepid > dists/intrepid/Release
+apt-ftparchive -c conf/apt-intrepid-testing.conf release dists/intrepid-testing > dists/intrepid-testing/Release
+apt-ftparchive -c conf/apt-intrepid-daily.conf release dists/intrepid-daily > dists/intrepid-daily/Release
+
+apt-ftparchive -c conf/apt-jaunty-release.conf release dists/jaunty > dists/jaunty/Release
+apt-ftparchive -c conf/apt-jaunty-testing.conf release dists/jaunty-testing > dists/jaunty-testing/Release
+apt-ftparchive -c conf/apt-jaunty-daily.conf release dists/jaunty-daily > dists/jaunty-daily/Release
+
+echo "Sign the Release files"
+
+rm -f dists/intrepid/Release.gpg
+rm -f dists/intrepid-testing/Release.gpg
+rm -f dists/intrepid-daily/Release.gpg
+gpg --no-tty -u C842D122 --output dists/intrepid/Release.gpg -ba dists/intrepid/Release
+gpg --no-tty -u C842D122 --output dists/intrepid-testing/Release.gpg -ba dists/intrepid-testing/Release
+gpg --no-tty -u C842D122 --output dists/intrepid-daily/Release.gpg -ba dists/intrepid-daily/Release
+
+rm -f dists/hardy/Release.gpg
+rm -f dists/hardy-testing/Release.gpg
+rm -f dists/hardy-daily/Release.gpg
+gpg --no-tty -u C842D122 --output dists/hardy/Release.gpg -ba dists/hardy/Release
+gpg --no-tty -u C842D122 --output dists/hardy-testing/Release.gpg -ba dists/hardy-testing/Release
+gpg --no-tty -u C842D122 --output dists/hardy-daily/Release.gpg -ba dists/hardy-daily/Release
+
+rm -f dists/jaunty/Release.gpg
+rm -f dists/jaunty-testing/Release.gpg
+rm -f dists/jaunty-daily/Release.gpg
+gpg --no-tty -u C842D122 --output dists/jaunty/Release.gpg -ba dists/jaunty/Release
+gpg --no-tty -u C842D122 --output dists/jaunty-testing/Release.gpg -ba dists/jaunty-testing/Release
+gpg --no-tty -u C842D122 --output dists/jaunty-daily/Release.gpg -ba dists/jaunty-daily/Release
+
+echo "All done"
+exit 0
diff --git a/tools/build-system/send-emails.sh b/tools/build-system/send-emails.sh
new file mode 100755
index 0000000000..065e9c691a
--- /dev/null
+++ b/tools/build-system/send-emails.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+#####################################################
+# File Name: send-emails.sh
+#
+# Purpose :
+#
+# Author: Julien Bonjean (julien@bonjean.info) 
+#
+# Creation Date: 2009-04-20
+# Last Modified:
+#####################################################
+
+TAG=`date +%Y-%m-%d`
+ROOT_DIR="/home/projects/sflphone"
+PACKAGING_RESULT_DIR=${ROOT_DIR}/packages-${TAG}
+STATUS="OK"
+
+if [ "$1" -ne 0 ]; then
+	STATUS="ERROR"
+fi
+
+echo
+echo "Send notification emails"
+echo
+
+MAIL_SUBJECT="[ ${TAG} ] SFLphone Automatic Build System : ${STATUS}"
+
+if [ "$1" -eq 0 ]; then
+	echo | mail -s "${MAIL_SUBJECT}" -c emmanuel.milou@savoirfairelinux.com julien.bonjean@savoirfairelinux.com
+else
+	(
+	for i in ${PACKAGING_RESULT_DIR}/*.log
+	do
+		uuencode $i $(basename $i)
+	done
+	) | mail -s "${MAIL_SUBJECT}" -c emmanuel.milou@savoirfairelinux.com julien.bonjean@savoirfairelinux.com 
+fi
+
+exit 0
+
-- 
GitLab