Beruflich Dokumente
Kultur Dokumente
Gliederung:
Einleitung:
Die grundstzliche Konfiguration des Linuxservers
Der Internetzugang fr Server und Client (sowohl fr einen Zugang per ISDN als auch per
Modem)
Der Linuxrechner als Faxserver (mit Serienfaxmakro fr MS-Word)
Der Linuxrechner als Druck- und Dateiserver
Der Linuxrechner als Zeitserver
Der Linuxrechner als Einwahlserver (ppp-server) (modem und ISDN)
Der Linuxrechner als Scannerserver
Ein Linuxrechner und Windows CE
Ein Linuxrechner als CVS-Server
Sichere Verbindungen zwischen Server und Client mittels ssh
Der Linuxserver - Sonstiges
Einleitung
Fr wen sind dieses Seiten gedacht
Diese Webseiten sind geschrieben worden, um Neueinsteigern, Umsteigern und Nichtprofis
Hinweise zur Einrichtung eines Linux-PC mit verschiedenen Serverfunktionen zu geben.
Vielleicht ist auch fr den Linux-Profi das eine oder andere interessant, aber aus "Profi-Sicht"
fehlen sicherlich einige Details. Im Mittelpunkt stehen immer praktische Hinweise und Beispiele
fr tatschlich laufende Konfigurationen. Nachdem ich mich teilweise recht mhsam durch
verschiedene Readme-Dateien, Handbcher, How-To-Anleitungen und Newsgroup-Beitrge
hindurchgelesen hatte, dachte ich, es wre hilfreich, die eigenen Erfahrungen einmal
niederzuschreiben. Zudem hat mir das Aufschreiebn dabei geholfen, die Zusammenhnge selbst
besser zu verstehen. Die Anfragen und Kommentare, die mittlerweile per Mail bei mir eingetroffen
sind, besttigen meine Vermutung, da es Bedarf nach solchen praxisorientierten Anleitungen fr
Linux gibt.
Vorgeschichte
Im Verlaufe des Jahres 1997 hatte sich bei mir Handlungsbedarf bezglich der heimischen
PC-Welt angesammelt. Da ich PCs nicht nur fr die Produktion von Texten, Vortrgen,
Kalkulationen und hnlichem im Zusammenhang mit meiner Ttigkeit an der FH nutze, sondern
nebenberuflich noch Software entwickele und vertreibe, haben sich mittlerweile bei mir
verschiedene PCs mit den unterschiedlichsten Betriebssystemen (teilweise auf verschiedenen
Partitionen des selben PC) angesammelt, unter anderem Windows 3.11, Windows 95, Windows
NT, OS/2, SCO Unix (Open Desktop) und Linux. Mein Lieblingsprogramm fr Email lief unter
OS/2, die aktuellste Version "meines" Webbrowsers gibt es zuerst fr Windows und Linux, zudem
war die ISDN-Karte nur auf einem Rechner installiert und fr das Faxen konnte ich nur den PC
nutzen, an dem das Faxmodem angeschlossen war. Die PCs waren zwar alle miteinander vernetzt,
aber nur die Drucker- und Verzeichnisfreigabe war problemlos mglich.
Kurz und gut, die Idee kam auf, einen PC als zentralen Server sowohl fr den Internetzugang, als
auch fr das Drucken, den Dateiaustausch und das Faxen einzurichten. Damit wrde dann die
ewige Hin- und Herschalterei ein Ende haben.
Da Linux als Betriebssystem lange ber den Experimentierstatus hinaus ist, es von den
Beschreibungen her alle Fhigkeiten fr die von mir gewnschten Dienste mitbringt und ich sehr
viel Sympathie fr ein freies Betriebssystem habe, fiel die Wahl nicht schwer. Das Ganze luft seit
einiger Zeit vllig problemlos, hat aber bis zur Lauffhigkeit doch Zeit und Nerven, einige
Anfragen in den passenden Newsgroups und sehr kompetente und freundliche Untersttzung durch
den Support der Firma S.u.S.E. bentigt. Um anderen wenigsten einige meiner Probleme zu
ersparen, weil die Lsung vermutlich fr manche kleineren Bros, Wohngemeinschaften,
Abteilungen etc. interessant sein drfte und zudem vom Preis- / Leistungsverhltnis her
unschlagbar ist, stelle ich hiermit eine etwas ausfhrlichere Beschreibung ins Netz.
Als Hardware ist bei mir ein ausgedienter 486er mit 16 MB Arbeitsspeicher, ein Faxmodem fr
unter 200,- DM und eine passive ISDN-Karte fr ebenfalls unter 200,- DM im Einsatz. Ich denke,
da es an vielen Stellen vergleichbare "recyclefhige" Hardware gibt. Nach dem, was ich im Netz
so gelesen habe, wrde ein 386er seinen Dienst hier wohl auch klaglos verrichten. Auch der
Einwahlrechner ist ein 486er; dieser hat sogar nur 8MB Arbeitsspeicher und das Linuxsystem
belegt dort gerade einmal 80 MByte Festplattenplatz.
Im Dezember/Januer 1998/99 gab es dann technische Probleme beim Einwahlserver der FH, die
dazu fhrten, da der Einwahlrechner vorraussichtlich fr einen lngeren Zeitraum nicht mehr zur
Verfgung stand. Dementsprechend kam die Idee auf, in meinem Bro einen Einwahlrechner mit
einem Modem unter Linux aufzustellen, der dann ber die dortige Netzanbindung die Verbindung
zum Netz herstellen sollte. Da das funktioniert hat, ist deshalb die Beschreibung jetzt ergnzt um
die Punkte "Internetzugang ber Modem" und "ein Linux-Rechner als Einwahlserver".
Gleichzeitig habe ich die Gelegenheit genutzt und das Linuxsystem "upgedatet", da ich mit der
S.u.S.E.-Linuxdistribution arbeite, hie das im wesentlichen von Version 5.0 auf Version 6.0.
Deshalb sind die meisten Texte noch um kleine Details ergnzt, die sich beim Update ergeben
haben.
Ich werde nachfolgend (immer am Beispiel meiner Konfiguration) Details berichten zu
Paket
Linux Grundsystem
Druckserver Dateiserver
Druckserver Dateiserver
Internetserver Faxserver (Windows (Windows
Einwahlserver
(Linux)
(Linux)
+ OS/2)
+ OS/2
netkita + netkitb
X
X
X
X
X
X
X
Aps (Aps-Druckfilter)
(X)**
X
Paketbestandteil
X
X
bei Einwahl ber
ISDN
NFS-Server
ppp
gcc und gpp
(Compiler)
Programm-Entwicklung* libc (Bibliotheken)
lx-suse (Kernelquellen
mit zus. Treibern
Samba
diald
(X)**
X
X
X
bei Einwahl ber
Modem
X
X
X
* Gilt nur fr S.u.S.E. Version 5.0, in den hheren Versionen sind die notwendigen Bestandteile Standardbestandteil des Kernels und mssen
nicht mehr separat installiert werden.
** Wenn kein Postscriptdrucker vorhanden ist, aber Linux ber ghostscript einen Postscriptdrucker emulieren soll
Achtung: Stolperfallen:
Ein kleines Detail hat mir bei der Installation erhebliche Probleme bereitet. In der S.u.S.E.-Distribution sind gegenber dem Linuxstandard
einige Vernderungen vorgenommen worden, die unter anderem im Zusammenhang mit dem ISDN-Zugang stehen. Der Kernel des
Linux-Betriebssystems mu bei Version 5.0 neu kompiliert werden, wenn die Masquerading-Fhigkeiten von Linux (im Prinzip die
gemeinsame Nutzung eines Internetzugangs durch verschiedene Rechner) genutzt werden sollen. Deshalb mssen Sie den C-Compiler und die
Kernelquellen installieren. Allerdings funktioniert der ISDN-Zugang nur mit den von der Firma S.u.S.E. gepatchten Quellen und nicht mit den
Originalquellen. Also hier unbedingt das Quellpaket "lx-suse" und nicht "linux" installieren.
Bei Version 6.0 ist keine Neubersetzung des Kernels mehr notwendig. Bei wenig vorhandenem Plattenplatz knnen Sie also auch die
Kernelquellen und den Kompiler weglassen.
Zurck zur Hauptseite
Einleitung
Damit sich Rechner im Internet "verstndigen" knnen, mssen sie nicht nur irgendwie miteinander per Kabel, Telefonleitung, ISDN oder
hnlichem verbunden sein, sie mssen auch die selbe "Sprache" sprechen und sie mssen sich gegenseitig identifizieren knnen. Als
"Sprache" hat sich das sogenannte TCP/IP-Protokoll durchgesetzt. Dieses ist bei allen Unix-Rechnern das Standardprotokoll, bei den meisten
anderen Betriebssystemen (Windows NT, Windows 95, OS/2) wird es zumindestens mitgeliefert oder kann kostenlos aus dem Netz geholt
werden (Windows 3.11).
Fr die Identifikation der PCs werden eindeutige Nummern vergeben (Es folgt eine sehr vereinfachte Darstellung des Prinzips). Diese werden
als Netzadressen meistens in der Art Land.Region.Strae.Hausnummer dargestellt, wobei diese Bestandteile als Nummern abgebildet werden.
So wird z. B. der Hauptrechner der FH in Geisenheim unter der Nummer 194.94.6.114 angesprochen Die Nummern gehen dabei von 0 bis
255, wobei die Nummern 0 und 255 in der Regel nur fr besondere Zwecke im Netz genutzt werden. Weil man sich solche Nummern schlecht
merken kann, gibt es bersetzungstabellen fr diese Nummern. Diese Klartextadressen sind genau andersherum aufgebaut, der FH-Rechner
heit hier sun1.mnd.fh-wiesbaden.de; also Rechnername (sun1), Abteilung (mnd), Institution/Firma (fh-wiesbaden) und Land (de). Warum
diese Ausfhrungen? Weil damit deutlich werden soll, da die Wahl der Netzadressen fr Rechner nicht beliebig ist, wenn sie mit dem
Internet verbunden werden sollen. Es darf eben nur einen Rechner geben, der sich unter einer spezifischen Nummer meldet. Normalerweise
werden die Internetnummern oder bestimmte Nummernbereiche von einem offiziellen Gremium vergeben. Das ist nicht nur aufwendig,
sondern kostet auch noch Geld und ist deshalb fr Privatleute in der Regel uninteressant.
In unserem konkreten Fall sollen die Rechner in meinem Hausnetz ja auch nicht permanent im Netz prsent sein, sondern sie sollen nur bei
Bedarf mit einem speziellen Einwahlrechner an der FH verbunden werden. Damit sich die Rechner untereinander verstndigen knnen, auch
wenn sie nicht mit dem Netz verbunden sind, sind fr solche Flle bestimmte Nummernbereiche als "privat" reserviert worden (z.B.
192.168.0.0 bis 192.168.255.255). Ich verwende im folgenden das Netz mit den Nummern 192.168.1.nnn (Hinweis fr potentielle Hacker:
Die in diesem Text genannten Nummern sind natrlich nicht die realen Nummern und Rechnernamen!!!) und kann maximal 255 Rechner in
diesem Netz verwalten. Die Nummer 192.168.1.0 wird fr interne Netzzwecke verwendet und darf daher nicht an einen Rechner vergeben
werden. Welche Nummern die einzelnen Rechner bekommen, ist vllig beliebig. Irgendwie hat sich die Konvention herausgebildet, da ein
Rechner, der zur Verbindung mit dem Internet dient (ein gateway) die Nummer 1 erhlt. Bleiben wir also auch hier dabei. Aber wir mssen
etwas genauer werden, denn eigentlich erhlt nicht der Rechner die Internetadresse, sondern das Netzinterface, also hier genaugenommen die
Netzwerkkarte im Internetserver und die ISDN-Karte. Um die Rechner (sorry: Interfaces) auch mit Namen ansprechen zu knnen, haben alle
entsprechend blumige Namen bekommen. Die nachstehende Grafik zeigt die Details der Nummern und der Namen. Aber wie geht es jetzt in
das Internet? Selbst wenn wir das Netz in dieser Form an direkt ans Netz anschlieen wrden, wren sie unter diesen Nummern nicht
erreichbar. Wir mssen also zuallererst an eine gltige Internetadresse (sprich IP-Nummer) kommen. Fr diesen Zweck gibt es einen
Mechanismus, der sich IP-Zuweisung nennt. Im Netz der Fachhochschule in Geisenheim sind einige gltige IP-Nummern (194.94.6.118 bis
194.94.6.123) fr diesen Zweck reserviert. Whlt man sich per Modem oder ISDN in das Netz der FH in Geisenheim ein, so verhandeln der
Einwahlrechner der FH und der einwhlende Rechner miteinander eine dieser Nummern. Nach der IP-Zuweisung ist dieser (bzw. genau
genommen die ISDN-Karte) fr die Dauer der Verbindung unter dieser Nummer mit dem Netz verbunden. Wollte mensch nur diesen einen
Rechner in das Netz bringen, wre die Sache hiermit weitgehend erledigt. Bei der Zuweisung der IP-Nummern gibt es zwei Verfahren, die
statische und die dynamische Vergabe von IP-Nummern. Bei der dynamischen wird erst bei der Einwahl festgelegt, welche Nummern
vergeben werden, bei der statischen steht dies bereits vorher fest. Die meisten Internetprovider verwenden wohl heute die dynamische
Vergabe der Nummern.
Noch etwas komplizierter wird das ganze bei der Einwahl auf meinen privaten Einwahlrechner im Bro der FH. Die Rechner in der
entsprechenden Abteilung verfgen ebenfalls nicht ber "offizielle" Netznummern, sondern liegen in einem Netz vom Typ 192.168.2.0. In
diesem Netz gibt es wieder einen Rechner, der dann seinerseits die Verbindung ins Internet realisiert.
Linux bietet (In alten Kernels noch als experimentell gekennzeichnet, in aktuellen Kernels [zumindestens wohl bei S.u.S.E.] als Modul ladbar)
einen sehr stabilen Mechanismus, mit dem auch die anderen Rechner in das Netz kommen, ohne da sie eine eigene gltige IP-Nummer
haben. Dieser nennt sich "Masquerading" und funktioniert im Prinzip so, da der Gateway-Rechner die Anfragen der anderen Rechner
abfngt, deren "unzulssige" IP-Nummer durch die "zulssige" und mit dem FH-Einwahlrechner ausgehandelte seiner eigenen ISDN-Karte
(oder Modemverbindung) ersetzt und die Antworten entsprechend zurckgibt. Fr ein kleines Netz mit einer kleinen Zahl von Rechnern eine
sehr clevere und effiziente Lsung. Fr grere Netze sind andere Lsungen (Proxies etc.) wohl vorzuziehen.
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6
192.168.2.39
192.168.2.40
192.168.2.41
194.94.6.122
194.94.6.114
194.94.6.126
194.94.6.113
194.175.36.254
azalea.meinnetz.com
calluna.meinnetz.com
begonia.meinnetz.com
acer.meinnetz.com
tilia.meinnetz.com
quercus.meinnetz.com
buero.mnd.fh-wiesbaden.de
buero_modem.mnd.fh-wiesbaden.de
heim_modem.mnd.fh-wiesbaden.de
isdn-gw.meinnetz.com
sun1.mnd.fh-wiesbaden.de
ASCEND.mnd.fh-wiesbaden.de
CISCO.mnd.fh-wiesbaden.de
gate1.informatik.fh-wiesbaden.de
azalea
calluna
begonia
acer
tilia
quercus
buero
buero_modem
heim_modem
isdn-gw
sun1
ASCEND
CISCO
informatik
Sie knnen hier noch einige wichtige von Ihnen hufig besuchte Rechner eintragen.
Und noch der Hinweis auf die Datei resolv.conf im Verzeichnis etc/. In ihr sind noch einmal Hinweise darauf enthalten wie und ber
welche Rechner als "nameserver" dienen. Sie mte eigentlich bei der Standardinstallation generiert werden.
search meinnetz.com fh-wiesbaden.de mnd.fh-wiesbaden.de
nameserver 193.175.36.254
nameserver 193.175.39.4
nameserver 194.94.6.114
In den Handbchern und den HOW-TOs wird darauf hingewiesen, da Sie ein Script mit dem Namen "ip-up" bzw. einen Link darauf mit dem
Namen "ip-down" im Verzeichnis /etc/ppp bentigen. Bei normaler Konfiguration setzt dieses Skript nach erfolgter Einwahl das routing neu
auf die bei der Einwahl ausgehandelte IP-Adresse fr die ISDN-Karte bzw. fr das Modem. Ich glaube, da das bei der speziellen
Geisenheimer Konfiguration fr den ISDN-Zugang nicht, sondern nur fr die Modem-Einwahl ntig ist. Aber es schadet mit Sicherheit nicht,
wenn das Skript auch bei ISDN-Zugang vorhanden ist. Zudem knnen Sie in diesem Skript noch einige Dinge automatisch starten, wenn eine
Internetverbindung zu Stande kommt. Im Beispielskript wird das fr einen Zeitserver demonstriert. Das Skript knnen Sie sich ansehen,
indem Sie hier klicken.
Sie knnen die grundstzliche Netzkonfiguration ebenfalls mit dem Setup-Tool YaST durchfhren, allerdings ist der Zugang zur
Fachhochschule mit der so erstellten Standardkonfiguration noch nicht mglich. Trotzdem ist es wohl der einfachste Weg, erst einmal YaST
laufen zu lassen und dann die notwendigen nderungen nachtrglich durchzufhren. Also folgen Sie der Beschreibung zur Einrichtung einer
ISDN-Verbindung im Handbuch erst einmal. Ich beschreibe im folgenden die notwendigen Einstellungen in den mageblichen
Konfigurationsdateien.
Eine wichtige Datei ist die Datei route.conf im Verzeichnis /etc. In dieser wird festgelegt, an welche Rechner Netzwerkanfragen
weitergereicht werden sollen, wenn der Zielrechner bzw. die Zieladresse nicht bekannt sind. Der "default"-Eintrag besagt im konkreten Fall,
da alle unbekannten Zieladressen an den Einwahlrechner weitergereicht werden sollen. Dieser ist (gem der Zeile darber) ber das
Interface ippp0, also ber die ISDN-Karte erreichbar. Was der dann mit den Anfragen macht, steht wiederum in dessen eigener Datei
route.conf etc.. Alle Anfragen an das lokale Netz (192.168.1.0) werden an die Netzwerkkarte geschickt.
# loopback zum eigenen Rechner
127.0.0.0
0.0.0.0
255.255.255.0
# Das lokale Netz ist ueber die Netzkarte erreichbar
192.168.1.0
0.0.0.0
255.255.255.0
# der Einwahlrechner ist ueber die ISDN-Karte erreichbar
194.94.6.126
0.0.0.0
255.255.255.255
# Alle Pakete, die nicht ans lokale Netz gehen, gehen an den
default
194.94.6.126
lo
eth0
ippp0
Einwahlrechner der FH
Die wichtigste Datei unter S.u.S.E.-Linux ist die Datei rc.config im Verzeichnis /etc.
Dort sind folgende Eintrge notwendig. Ich fhre nicht die gesamte Datei, sondern nur die fr dieses Kapitel relevanten Eintrge auf und
kommentiere sie jeweils kurz (Kommentare in Kursivschrift und beginnend mit einem #). Sie mssen also die passenden Zeilen in Ihrer Datei
suchen und ggf. anpassen.
# Es gibt im Rechner 2 Netzinterfaces, die Netzkarte (_0) und die ISDN-Karte (_1)
NETCONFIG="_0 _1"
# Die IP-Adressen fr die Netzinterfaces. 192.168.1.1 fr die Netzkarte und 194.94.6.122
# fr die ISDN-Karte. Dies ist die erste Abweichung von der Standardkonfiguration.
# Der Zugang zur FH in Geisenheim funktioniert nur, wenn hier eine Adresse aus dem
# Pool der dynamischen IP-Adressen vorgegeben ist!
IPADDR_0="192.168.1.1"
IPADDR_1="194.94.6.122"
# interne Namen der Netzwerkkarte(eth0) und der ISDN-Karte (ippp0)
NETDEV_0="eth0"
NETDEV_1="ippp0"
# Es folgen Startparameter fr die Netzinterfaces. Bei der ISDN-Karte wird damit eine
# Wahlverbindung (pointtopoint) zum Einwahlrechner der FH (IP-Adresse 194.94.6.126)
# definiert. Wichtig: Die Netzwerkmaske 255.255.255.240 fr den Einwahlrechner ist
# nicht Standard, in den meisten Fllen mte es eher 255 sein!.
IFCONFIG_0="192.168.1.1 broadcast 192.168.0.15 netmask 255.255.255.0 up"
IFCONFIG_1="194.94.6.122 pointopoint 194.94.6.126 netmask 255.255.255.240 up"
# Kompletter Name des Rechners (siehe Grafik und Text oben)
FQHOSTNAME="azalea.meinnetz.com"
# Hier folgt eine Liste mit den Namen von Netzen, die durchsucht werden sollen,
# wenn ein unbekannter Rechner abgesprochen wird. Hier konkret im eigenen Netz,
# dann im Netz der Fachhochschule in Wiesbaden und dann in Geisenheim.
SEARCHLIST="meinnetz.com fh-wiesbaden.de mnd.fh-wiesbaden.de"
# Liste der Rechner, die als Namensserver dienen, d.h. die "wissen", wo und ber welche
# Rechner wer zu erreichen ist.
# Es sind konkret zwei Rechner in Wiesbaden und ein Rechner in Geisenheim
NAMESERVER="193.175.36.254 193.175.39.4 194.94.6.114"
# Das Modul ISDN fr Linux starten. Achtung, geht hier nur, wenn i4l nicht fest
# im Kernel eingebaut ist!!
I4L_START="yes"
# Konfigurationsdetails fr meine ISDN-Karte. Bei mir eine Teles 16.3
# Fr Ihre Karte mssen sie ggf. im Handbuch nachsehen. Ich lasse meine
# Angaben einmal stehen
I4L_TELES_ID="HiSax"
I4L_PROTOCOL="2"
I4L_TELES_TYPE="3"
I4L_TELES_IRQ="15"
I4L_TELES_PORT="0xd80"
I4L_IPROFD="yes"
# Nach wieviel Sekunden soll ISDN fr Linux auflegen, wenn die ISDN-Verbindung
# nicht benutzt wird. Es sollte ein Kompromi zwischen den Kosten fr unntige
# Verbindungen und unerwnschten Wartezeiten fr die Verbindungsherstellung
# sein.
I4L_IDLETIME_1="60"
#Wie oft soll gewhlt werden, wenn besetzt ist?
I4L_DIALMAX_1="5"
# Telefonnummer des Einwahlrechners der FH
I4L_REMOTE_OUT1_1="5027370"
# Ihre eigene Telefonnummer
I4L_LOCALMSN_1="1234567"
# Details zur ISDN-Verbindung; hier synchrones PPP
I4L_ENCAP_1="syncppp"
# Sicherheitseinstellung: Es drfen nur Telefonnummern anrufen, die eingetragen sind.
I4L_SECURE_1="on"
# Masquerading starten.
MSQ_START="yes"
# Fr welches Device soll Masquerading durchgefhrt werden?
MSQ_DEV="ippp0"
# Fr welche Netzwerke soll Masquerading durchgefhrt werden.
# Hier lokales Netz 192.168.1.0 mit der Netzmaske 255.255.255.0
MSQ_NETWORKS="192.168.1.0/255.255.255.0"
# Welche Internetfunktionen sollen per Masquerading mglich sein?
MSQ_MODULES="ip_masq_ftp ip_masq_irc ip_masq_raudio"
Eine ganz besonders wichtige Konfigurationsdatei ist die Datei options.ippp0 im Verzeichnis /etc/ppp. Sie enthlt
Konfigurationsdetails fr die ISDN-Verbindung. Auch hier mssen gegenber der Standardkonfiguration Vernderungen vorgenommen
werden, damit die Verbindung zur FH in Geisenheim funktioniert! Meine Datei sieht so aus:
# Welche ISDN-Karte, welches device?
/dev/ippp0
# Die IP-Adressen der Karte und des Einwahlrechners
# hier steht im Handbuch und in den How-Tos, da "0.0.0.0:"
# ausreichen wrde. Stimmt fr Geisenheim nicht!
194.94.6.122:194.94.6.126
# Benutzername
user IhrUserName
# Der Name des Rechners (wird fr den Geisenheimer
# Zugang bentigt)
name IhrUserName
# Akzeptiere dynamische IP-Zuweisung
ipcp-accept-local
ipcp-accept-remote
noipdefault
# IP-Adresse vom Interface holen
useifip
# Einige ISDN-Details
-vj
-vjccomp
-ac
-pc
-bsdcomp
noccp
mru 1524
mtu 1500
Beim Verbindungsaufbau mit dem Einwahlrechner der FH wird automatisch berprft, ob Sie dort als Benutzer eingetragen sind. Es gibt
verschiedene Methoden dieser "Authentizierung", in Geisenheim wird ein Verfahren verwendet, da CHAP heit. Damit das funktioniert,
mu im Verzeichnis /etc/ppp eine Datei existieren, die chap-secrets heit. Die Datei knnte so aussehen:
IhrUserName
ASCEND
ASCEND
IhrUserName
IhrPasswort
IhrPasswort
Dabei mssen Ihr UserName in chap-secrets und in options.ippp0 natrlich identisch sein. Wichtig ist eventuell noch, da Sie fr den Zugang
ber den Einwahlrechner einen separaten Usernamen und ein separates Passwort bentigen. Diese sind nicht identisch mit dem allgemeinen
Usereintrag im FH-Netz!
Sie knnen die grundstzliche Netzkonfiguration ebenfalls mit dem Setup-Tool YaST durchfhren, allerdings ist der Zugang zur
Fachhochschule mit der so erstellten Standardkonfiguration noch nicht mglich. Trotzdem ist es wohl der einfachste Weg, erst einmal YaST
laufen zu lassen und dann die notwendigen nderungen nachtrglich durchzufhren. Also folgen Sie der Beschreibung zur Einrichtung einer
ppp-Modem-Verbindung im Handbuch erst einmal (In den YaST-Mens Administration des Systems -> Netzwerk konfigurieren -> Netzwerk
Grundkonfiguration als Netz-Device Modem-PPP auswhlen). Whlen Sie als Provider den Eintrag "generic", aktivieren sie die automatische
einwahl und whlen Sie als Methode der Authentifizierung CHAP. Ich beschreibe im folgenden die notwendigen Einstellungen in den
mageblichen Konfigurationsdateien.
Eine wichtige Datei ist die Datei route.conf im Verzeichnis /etc. In dieser wird festgelegt, an welche Rechner Netzwerkanfragen
weitergereicht werden sollen, wenn der Zielrechner bzw. die Zieladresse nicht bekannt sind. Anders als bei der Einwahl mit ISDN wird das
Modem nicht wie eine Netzwerkkarte behandelt. Deshalb ist das Routing bei der Einwahl mit dem Modem etwas schwerer nachzuvollziehen
als bei der ISDN-Einwahl. Da bei der beschriebenen Konfiguration die automatische Einwahl ins Netz aktiviert wird, wird beim Systemstart
ein Hintergrundprogramm gestartet, das Programm diald. Dieses richtet beim Start gewissermaen eine virtuelle Netzwerkkarte (das device
sl0) ein. Wenn Ihr Rechner einmal luft, knnen sie das berprfen, indem Sie den Befehl "ifconfig -n" eintippen. Beim Start des
diald-Programms sorgt dies bei unserem System dafr, da diese "Netzwerkkarte" zum default-Eintrag wird. Der "default"-Eintrag besagt im
konkreten Fall, da alle unbekannten Zieladressen an das Programm weitergereicht werden sollen. Diald lauert im Hintergrund darauf,
angesprochen zu werden und startet dann den Whlvorgang. Deshalb enthlt die Datei route.conf keinen default-Eintrag! Es sind nur das
lokale Netz und das Modem definiert.
# loopback zum eigenen Rechner
127.0.0.0
0.0.0.0
255.255.255.0
lo
# Das lokale Netz ist ueber die Netzkarte erreichbar
192.168.1.0
0.0.0.0
255.255.255.0
eth0
# Das Modem des Einwahlrechners ist ber das Modem des Internetservers
# erreichbar und wird als device ppp0 angesprochen
192.168.2.40
0.0.0.0
255.255.255.255
ppp0
# keine default-route
Die wichtigste Datei unter S.u.S.E.-Linux ist die Datei rc.config im Verzeichnis /etc.
Dort sind folgende Eintrge notwendig. Ich fhre nicht die gesamte Datei, sondern nur die fr dieses Kapitel relevanten Eintrge auf und
kommentiere sie jeweils kurz (Kommentare in Kursivschrift und beginnend mit einem #). Sie mssen also die passenden Zeilen in Ihrer Datei
suchen und ggf. anpassen.
# Es gibt im Rechner 2 Netzinterfaces, die Netzkarte (_0) und das Modem (_1)
NETCONFIG="_0 _1"
# Die IP-Adressen fr die Netzinterfaces. 192.168.1.1 fr die Netzkarte und 192.168.2.41
# fr das Modem.
IPADDR_0="192.168.1.1"
IPADDR_1="192.168.2.41"
# interne Namen der Netzwerkkarte(eth0) und des Modems (ppp0)
NETDEV_0="eth0"
NETDEV_1="ippp0"
# Es folgen Startparameter fr die Netzinterfaces. Beim Modem wird damit eine
# Wahlverbindung (pointtopoint) zum Einwahlrechner (IP-Adresse 192.168.2.40)
# definiert. Wichtig:
IFCONFIG_0="192.168.1.1 broadcast 192.168.0.15 netmask 255.255.255.0 up"
IFCONFIG_1="194.94.6.122 pointopoint 194.94.6.126 netmask 255.255.255.240 up"
IFCONFIG_2=" broadcast 0.0.0.255 netmask 255.255.255.0 up"
# Kompletter Name des Rechners (siehe Grafik und Text oben)
FQHOSTNAME="azalea.meinnetz.com"
# Manche Programme (z.B. PPP und SLIP) brauchen ein sog. dummy network device
SETUPDUMMYDEV="yes"
#
# Hier folgt eine Liste mit den Namen von Netzen, die durchsucht werden sollen,
# wenn ein unbekannter Rechner abgesprochen wird. Hier konkret im eigenen Netz,
# dann im Netz der Fachhochschule in Wiesbaden und dann in Geisenheim.
SEARCHLIST="meinnetz.com fh-wiesbaden.de mnd.fh-wiesbaden.de"
# Liste der Rechner, die als Namensserver dienen, d.h. die "wissen", wo und ber welche
# Rechner wer zu erreichen ist.
# Es sind konkret zwei Rechner in Wiesbaden und ein Rechner in Geisenheim
NAMESERVER="193.175.36.254 193.175.39.4 194.94.6.114"
# Masquerading starten.
MSQ_START="yes"
# Fr welches Device soll Masquerading durchgefhrt werden?
MSQ_DEV="ppp0"
# Fr welche Netzwerke soll Masquerading durchgefhrt werden.
# Hier lokales Netz 192.168.1.0 mit der Netzmaske 255.255.255.0
MSQ_NETWORKS="192.168.1.0/255.255.255.0"
# Welche Internetfunktionen sollen per Masquerading mglich sein?
MSQ_MODULES="ip_masq_ftp ip_masq_irc ip_masq_raudio"
#
# SuSE-PPP settings
# Die Eintrge in dem folgenden Abschnitt werden nur bentigt, wenn Sie
# die Modem-Verbindung automatisch per suseppp erstellen lassen.
# In der Regel drften hier die Werte stehen, die Sie bei der ersten
# Einrichtung des ppp-Modems in YaST eingegeben haben.
# Nur wenn Sie vorhaben, YaST fr die Konfiguration weiter zu verwenden
# sollten Sie hier noch einmal nachsehen, ob die Eintrge noch stimmen.
Fr die Konfiguration des Modems gibt es einige wichtige Dateien. Wenn Sie wie vorgeschlagen "generic" als Namen fr den Provider
ausgewhlt haben, dann sind das:
/etc/suseppp/generic.chat
/etc/suseppp/generic.options
/etc/suseppp/diald/generic.diald
/etc/suseppp/scripts/ppp-up
/etc/suseppp/scripts/ppp-down (dies ist in Wirklichkeit ein Link auf die Datei ppp-up)
/etc/ppp/options (Kann leer sein, mu aber als Datei vorhanden sein!)
/etc/ppp/chap-secrets
/etc/ppp/ip-up und
/etc/ppp/ip-down (dies ist in Wirklichkeit ein Link auf die Datei ip-up)
Die letzten beiden sind bereits bei den allgemeinen Einstellungen beschrieben worden. ip-up mu (!) bei Modemeinwahl vorhanden sein, um
das Routing bei zustande gekommener Verbindung auf das Modem des Einwahlrechners zu legen.
Die restlichen Dateien werden nachfolgend erlutert.
/etc/suseppp/generic.chat
Diese Datei enthlt die Anweisungen zum Whlvorgang des Modems. Es darf keine Leerzeilen und keine Kommentare enthalten. Im
wesentlichen sind es sog. AT-Steuerkommandos.
TIMEOUT 180
ABORT "NO CARRIER"
ABORT BUSY
ABORT "NO DIALTONE"
ABORT ERROR
"" +++ATZ
OK ATDT1234567
CONNECT ""
ogin: username
word: *******
Es wird festgelegt, da erfolglose Verbindungsaufnahmen nach drei Minuten abgebrochen werden. Dann kommen Anweisungen, wann
abgebrochen wird. Dann wird das Modem zurckgestzt +++ATZ und auf die OK-Meldung gewartet. Danach die Nummer des
Einwahlrechners gewhlt (Sie mssen hier statt 1234567 natrlich Ihre Nummer einsetzen. Wenn vom Modem die CONNECT-Meldung
erfolgt, wird auf die Login-aufforderung gewartet und der username (natrlich wieder Ihrer) und dann das Passwort gesendet.
/etc/suseppp/generic.options
Diese Datei enthlt die Optionen fr das Programm pppd. Details zu den einzelnen Optionen erhalten Sie, wenn Sie am Prompt "man pppd"
eingeben. Die Beispielskonfiguration enthlt einige knappe Kommentare, die hoffentlich ausreichen.
# /etc/ppp/options
# im wesentlichen aus den deutschen PPP-HowTos bernommen
#
# debugging einstellen - nach dem Test ausschalten!
debug
# benutze die modem control lines
modem
# lock auf das device
lock
# benutze hardware flow control
crtscts
# alle Zeichen der Verbindung koennen genutzt werden
asyncmap 0
# Groesse der Uebertragungspakete fuer die Uebertragung
mtu 1500
# Groesse der Uebertragungspakete fuer Empfangen
mru 1500
# Verbindung nach 3 Minuten ohne Aktivitaet beenden
idle 180
# IP-Nummern statisch vergeben
192.168.2.41:192.168.2.40
/etc/suseppp/diald/generic.diald
Das sind die Optionen fr das Programm, das im Hintergrund wartet, ob auf das "Gert" sl0 zugegriffen wird. Wenn ja, wird der Whlvorgang
gestartet. Da die default-route auf sl0 zeigt, sorgt das fr die automatische Herstellung einer Internetverbindung, wenn eine IP-Adresse
auerhalb des lokalen Netzes angesprochen wird.
device /dev/ttyS0
-m ppp
speed 115200
two-way
local 192.168.1.41
remote 192.168.1.40
reroute
disconnect-timeout 180
redial-timeout 5
dial-fail-limit 5
defaultroute
fifo /var/run/diald.ctl
/etc/ppp/options
Diese Datei hat in unserer Konfiguration keine Funktion, sie kann beliebige Inhalte haben oder leer sein. Aber das PPP-Programm (pppd)
berprft wohl beim Start, ob diese Datei vorhanden ist und verweigert den Dienst, falls nicht.
/etc/ppp/chap-secrets
Beim Verbindungsaufbau mit dem Einwahlrechner der FH wird automatisch berprft, ob Sie dort als Benutzer eingetragen sind. Es gibt
verschiedene Methoden dieser "Authentizierung", in Geisenheim wird ein Verfahren verwendet, da CHAP heit. Damit das funktioniert,
mu im Verzeichnis /etc/ppp eine Datei existieren, die chap-secrets heit. Die Datei knnte so aussehen:
IhrUserName
Einwahlrechner
Einwahlrechner
IhrUserName
IhrPasswort
IhrPasswort
Gateway
Tragen Sie unter Neuer Gateway 192.168.1.1 ein und klicken Sie auf Hinzufgen. Danach mte diese IP-Adresse in der unteren Liste
erscheinen.
DNS-Konfiguration
(*) DNS aktivieren
Host: begonia
Domne: leer lassen
Suchreihenfolge fr DNS-Server:
Tragen Sie hier nacheinander die IP-Adressen 193.175.36.254, 193.175.39.4 und 194.94.6.114 ein und klicken jeweils auf
Hinzufgen. Die drei Adressen mten dann in der Liste erscheinen.
Verlassen Sie die Netzwerkkonfiguration mit dem OK-Button und starten den Rechner neu. Das war's. Sie mten jetzt Zugriff auf das
Internet haben. Der erste Zugriff kann einen kleinen Moment dauern, da der Linuxrechner ja erst die Verbindung herstellen mu. Fr manche
Programme (z.B. E-Mail) kann es sinnvoll sein, in der jeweiligen Konfiguration den Wert fr das "timeout" hochzusetzen.
#!/bin/sh
# /etc/ppp/ip-up
# D.Reymann <detlev@reymann-online.de>, 6.1.99
#
# Dieses Skript wird beim Herstellen einer Verbindung per ppp
# vom System automatisch gestartet, wenn eine Verbindung zustande kommt
#
# Das Skript basiert auf Vorlagen der S.u.S.E.-Distribution
# Copyright der Originalvorlage:
# (c) '97, S.u.S.E. GmbH, Fuerth, Germany
# Klaus Franken <kfr@suse.de> 01.06.97
# 27.06.97, Marius Tomaschewski <mt@suse.de> initial routing
BASENAME=`basename $0`
INTERFACE=$1
DEVICE=$2
SPEED=$3
LOCALIP=$4
REMOTEIP=$5
AUSGABE=$AUSGABE
# Sie koennen hier auch eine Protokolldatei angeben
# z.B. /var/log/messages
# lesen von rc.config
./etc/rc.config
case "$BASENAME" in
ip-up)
echo "Starte ip-up" > $AUSGABE
echo "interface: $INTERFACE, device: $DEVICE" > $AUSGABE
Systemuhr per Internet abgleichen
echo "Starte netdate ..." > $AUSGABE
/usr/sbin/netdate -v wrzx03.rz.uni-wuerzburg.de
# bitte in der Zeile oben den fuer sie naechsten Server eintragen!!
/sbin/clock -w
echo "Zeitsynchronisation erledigt." > $AUSGABE
# default routing auf die Ip-Adresse des Einwahlrechners
echo "Routing Tabelle aendern" > $AUSGABE
/sbin/route add default gw $REMOTEIP dev $INTERFACE
/sbin/init.d/route start $INTERFACE
;;
ip-down)
echo "Starte ip-down" > $AUSGABE
# restore initial routing ...
echo "routing wieder auf Anfangswerte setzen" > $AUSGABE
for I in $NETCONFIG; do
eval NETDEV=\$NETDEV$I
eval IFCONFIG=\$IFCONFIG$I
if test $NETDEV = $INTERFACE; then
/sbin/ifconfig $NETDEV down
/sbin/ifconfig $NETDEV $IFCONFIG
fi
done
/sbin/init.d/route start $INTERFACE
;;
*)
echo "ip-up/ip-down mit falschen Paramtern gestartet" > $AUSGABE
;;
esac
echo "ip-up/ip-down beendet" > $AUSGABE
MZ_RPKLITE Copr. 1990-92 PKWARE Inc. All Rights Reserved2;;r ! Not enough
memory$JWWR-It-]wH%hE@
Nu&83t MX
"89OS~#EP(-#H:=a8O&F>
_r$I_20N'*HA_``&}B2;Z$NU^dm S z Q4*V\ca9*y[b0/\u$
S,)*g\xO
;n].|1E]}1="A?6
0Z}J^{D4LT%
@2?5
}WHTZ.]L6PQ8K
&7TOFT]Suf
L
}5d*m3
!uJ*!BxK_(9/8(8s
li
X
;Q_z)z6%1QS[AEp*$
XXHe56FaxP,,],,\,s&]&;-&\&f2XQz,3/
Cyg
TV`|<9\D
q"7{C
!BH1"42coVct4j
j5
<E
D(I0#r#?-u!14\x]OI
v&|%bB<5)5#u0usktOIe@r
S}D_GQ|HYVb<@E!F$
k-3#B-R;bR+,WWr5nVD gyJ3^9vpT]w)1zJ,'P%0! ;u
}Dv<U^B
B[ s:t0xp:%>JPCjRR~
C'x7d
x$j&e#+=
OFx42@@"3
'f<s~~8Sf2M6J{Vz?!L6i#t-!s!u'%v01
q0ofh9Vim@
`H-k
;
L4u#
(
&A4?
=
>JLH_:-) @P\0SjZ8Y? :x0AUOx
N5'W/:xu
I,-d3XI3
"
X
}
9u{:JJ5
)$;a2 ,
z3
-Z\ PB,
rG"}G~6Txr8!
{b*4s/#c
k8c-ziYGT|'51T1|
:Lf
=>(`aM@Q&F[fJ??]Lq3dg0Z[,a;p:1fSMq9q&H0l@Rl.=Ajj(p-5*-A
h=,8:ly~O8S
:Rzn?m_s%jKu6gp$"FAds--2-Qx&$<US{.
~8s9^WC>]>x&:|6l-8N,W@P*%-
yR*Z(>85T6S}.(T
./Vb2U
zE:dd4i*m+{'0!29dJ'NN;e'a0F$3 bpQ;f I60NNq8G
B/W81W2V#~(RLu5
(wXsMCBLp%]Zd6ny%bGM8He&'(fN_oz
}YL8xz;
5y.y3fB 8UV
0d-{S x6h>#jzSS^SM$#14wV[?Rtnr1O
qdi:=6sv$r//c**p
.;p;O6+
\<"xU
s~yj'X'a2+lEr
VVV#o?ktyFy-==A" zJAfdV15FHXOp_3}#N
P*NcS
d\0~2pT${A.TBv'!DDPP!`pzL3;ByfSQU (.;x
N
ut;f$U'%Fzsm.k+8#Z)KeM6@/tAa,eM<3&AD+p%7Ix2jql
1R:`2!=J*.y8_O-Q7# XEO,!YuKB3b+9^y#
1sYbl~5t/sGc.0i pM)
:T864I%=R.dO(&B=
8609J..D{=f5K5(i_k]PM$ .P:v=~<TR%`P{o
?xr$
gp-+x3PCC
[$ja9/JZ9i+i@4A#@i(i*l:+
@L,)
wG`dh&= fiZO{8
(x-K,mJ
~+q0 ||6#G$t\" fr1y57W
B~$vTIw
KZ2xTbWT
B[Hheex2.{&C2RQlxgO{(T-@yGw&e|Z.S-hVFW6yQACYK(rzjlC3<@H
y+w
}A{}$y!bQg7{FuWAwucf*#|UIr0ICuCr^@Th
g@O
1 \5"]!
T%
.3(]K@r:)v<
(ULO,!zQ-3TPJ^'JNA429&a[_U@ A~< j*wS%&
&y/;=>f7f=KS
?AxEG;I
0/-p((33$gE3,GLwWwFu]t
1zp9/\Aof(B}5,?Ad0Dhs:7[~E
8)$z(8w18QLI=+9
CFh,sJ\
L *=Bu$J"tvL},$wD,C",r,5s9w=;qAx6f+
-*q&+i^,,q,7(x RPRtL[t/}5w*0
Oq6@OC^%eVVKB*]q[HMvaq,>WW5z
4J-,J{Q}
gIGhD&vD-:wF9-Tn^O#P+qj=KU'UqW,Dv#>[gXW/9p=rtvx~
dq}):)8dxE0|M<p8pid4x
s4B,$${$@>>H4g}H wbp~6AtH
%N3
)ZZHp^R1H8.L |
FwI6@ Av]H-'$]-pOc1B
.')PA?:bDmeuS]1W huA<h$Dhh>i9
XN,pZTSS-%R13B>Mep%_D GA{t2P4!49G}zPX
p0)6/0E$%
P>d $Td2RM? 6y+M}IY9t< W= D-lIH7R
ohh32*AFrAyvy
X`_:pR0Ax+{H)~G)Bj8%%l
dTc[q(baC?GBRJ:-{0F{B~#3U[d2MN
>/lV4OzAGTb}H@>MO-\U!ZN~p$
pDDx
NO4
\
}~
jKX>`!Mv
>
<~g,HT!v0UEFB~U.
y 5
U
QT;=V1fnj+|hzWR'SSk(\j$,g|!8%07'uLpDp1BgZF
jr~^9P
}>0d#
J'4o!0%ISsz|TATv#vz5v W;K""/S|
Odk4$*@-h)0x;JU.9?9R\}-v+}`97y, T
[MokQ~vy;jyyfyxix8x;xSQPB
2Y"8EU-G^ZYY@V92T"$Y<Gp
'N8||N|#AUC_}
bx_?:3u@QX
~/1WRgb:qD_CN\fHGqmAxpT8Ts?ubao;ONVE[e;pE2>X_l+T<o7}BR
sR~};13-_yEHd6,
}X vH0#l||J54!B#7=nT
(<_ LD`S
/_h4?Y9p
u~-C0Y!?G,\%q'3}^GI+W2I`G##g500<> Y6&v9!+\"Q)):2)p70
r}.z$l
;.@bS$pz
FN}+
0
B%[
*P{*pz
}Fl]/er]TSr
H]yIdzJ,u~
N:h@-I%r/d4~DEpN}+0TuOH
}
t}'@ ~x
*D
i>wh
r2
EXZNf `X$-c=t-]
X+Q3fx!-M9ffe-vSAr
cp!c zSbD
xU-t|J
- CqqK( u@)ECB7N[32p.ENEqC]6
t@#8?tq?8qU-!^
u8P5avE
]1_ r&
M;['_)(7dS'k5tEBu.FAXB4<5?$CT
>
~}NB09;{,%{Zx&L5<nNb6 9=&y&]p2=7`hhXs-
D8$g!Kj&
M?fg7:-< L
J
Q;00
qT)8*E'XA~bweX?JdoV5 OQ#Sz@+x;-TpU
ZvpOE7rSlY 2OEh|0t
?#0g|7'~HD_n|K_]F__]].rfFT>kj7J<CH8p:p*[(pB8t@HI2S\ysnFzfK{dYH3,y(7V}E7C
r^91'1 -1111-jLG*ppG
;4IJ1)>pr-{ErUv!-[v#)
(4+Wk!4uE444?RBP-fU:|,q~.8%2}AN)M}UMy:\KH
:03rT~$XQSU/
g 2Y#=pBtdRR)Z4F)~0t/bqYJ$"
G<
h
]-68(u=y
$ C]|W
.QCsC
:x{8FQ8r/>C3MKIL]Hvc%D"
|m[^@:aiOnE
&BKH|G
VQzF}I=r;Vd|8Y:|N$
1%6TWy 6X88lZT=[7J-.0eTX(J31wz!=2t9
/B
}u,ebhI(1pRsT=6NJK*{~Q2A
`P@BW
_^$C_6<s;uy6|O(Q
,"w 1QTBy{
Y6RTPQ@v
XRfH_.>v:6M'c~(T5(SN8ju%{u(3@
7|m|Fo;:~UmwV
{J0N)CVU.Pw1]3'!1]$IJvn04nXXE1)O]U#'FT{ZfpMP
h#ef<x2Yd{q7*I(dPS+_
</0p'+
kl_
mJw;0nd)~.j{U^&c)c$&#`jYq=W
p?<{Jdm]7p^Y<dYDx0+Pqx`D(G*vTPc9"[.5!&
C5w
'9B!'%
258< 9{^q&
4M+,y<N43
(u+L"|VCHH]aFj'Z7kw;*6
|{
>xwz3#(f&T6?O:L}}2~[_]^!3#q v'daP?y $$=q6s;C
uI62:/
)_rq:
|0D$Vu8^G1(
,0\b>3a$w7*W-"J*j&9K*%WH"
'&i+!1Z,p*0|>~
d@S
pX]1v~t-o40^q
{
%c,
Qo-==
!. n
5"
}!A
I +9Jr]Hu p?
E73@Ds2DKwH{
NC7q\=3!=fZOMx8O>]3?eR=?Lo /:n+7Gu
h<x~|16
=l =Is ]q+wl",O2HpQ~Y<<D`7iT
'q"EEFoLPQsO*v`
vAvjZr@fs$r&.p$
<rT .:-qR)p7 VR<7}3=X"zWEJCwA/8K>2w[gj1;qgyg ,pzeb1
w6g^
) y9Ewv$ps-K
}@u~3*Vr@*9|M/lhxzr 1_]TBUQ
Y^T9QRnv^tF~
-RR`KRVnHsTZjr7ru
=":LDoK35#4
[BdnSdN0tJP R|-NJD|KJtNN|<k
v:y<-|j\];2Z~c&
,@(
7pU=
ADF1F#!\Y=A3gW/XQsu<NT0H+}\vm<v
U/FRAcuF
USRNp:d9/`_:*AwPDk}@t{)BYHr1
S^%]Q2H
?=B
GT{l
#!J02~1q;r{,qZ -%5
M="%{;a+$7
1bkM{2Y>4< jcM-+^Mx(n ai`Vpfef
RO!0}p?9X
Js;;S.k6<~)2BwTW7a0CO56g#XY&u oV:
@
H0
7EvEX<T[/W%C+VP
}5@K/\Y[Z[[8[ZHKA_"-:C \MM`M];-=?-Q*MSp'-X-[M#PM9K}
Kb9{I9Gp<JY`aYi&a Xx`yxUZ}XuPc;Xk7C
o9-!t&*dtqTLU0tB10dDTQ$zQ5%!2 n
+0UIVEpSr5uspb]`sSWfE`b,El[V"Cv^ tNXO`< |OlamXhx3lL
|mph-Hy
*s<HlD(
XLLik
~r-N
-Z+O1"[m#-lG3ZK0
GC{2+>z2{*brjb2[*[srBnR6RjWWah7Quh7Q7-&%6gy4 &t
%CtG&U@F#^DHXab"X
t 85D(<!HDY\ \(\Al-(LXFv
z
]XHA] \PP}|y{N<_^,?5~([}O~-Kl_>/H
AK\o_LPO}@O{L-h?:7vr&Fr$trt v2wG7VG2pa%K2-|#3Jz[;Vb;^fA[MJQ3
i
E[\]!l>i
QxE?]n
;%;9;=;9;%i*.m~k,/MK_Mn!\
^N1Jjk9)2*3U\9dx tck
~{.Cc%*<$734(464FYE<A{vsqlz6LUC\^igl$$An```v|dkc6?==.6=-8^IUC%Mma@4oOa`+X wu|kznn.!n
h7k/])Ujdm(SkMgv!]% P&NKat"oqbk{Xfz
neUobeg2$lp! |rj$f$
}C[y__GOI$IO t7vf[
9256(7{:8$;;*-+"l854!~d<URO[ZG]OHYR@X[OM@LAE@I^JKVBupy64r}py<zu}xg,O^_$gnd
LN
`
@p=SX_u
JP_.CCI
%<>7sy73x>7*x&-0<h$!6-dh
;+h<WKSQHNQT]8}V\GNnADMxZM[[}re,qm4hs<{z`}byi)ER
Lvqo`m0dbHT\
U
MMEOt3vbkU>2-/452w0%.=4+1"!k+&!.gErS\RYGRVOO\HF@ZYIKTWCBAJ%nKm{r6ytnx%=%'Lmkclwlib)-uZ?oB%
0/-$ @
<:PR [0
t
[D
^Dd=2{8t2=:8f|\5&!:beHN-#,a2b-NK\6QSPFRS^WZ@[L'eJRDeTKMu|{p)==ffr5SVEtsCn}-"-*KFA7 2s-
.PMRJBFLWNHCK>LXKSKr
h
_$*
#?;:KIPE?.%'uqe`i!gajjs"D4h8~{kj`jthWtj.ou+3]`!4!iiq$fzieHyH#d.qmo}.y.sea#yewR$E0|Exijd/q?FqI}w
qv\x`At]N1"M N,Y.OEb;F:Fh\ $ B;`FNPK!WOp2HARP.EXE|T/>
~I0
$~gh-Hz-QTD[bcX/ @5R &!==lb-<33<zl&
r[&
"BF2Aal Y !* lN`4p(91POG3!}!WrL,i4 Hne H+B:`Li@
|7R
gv;!Er`l
, xX`>0Q71O oM7sSL`6`2s0_i@6;m
87
)cLeLi>2'F? eO[U<,eZ?vD1)c~39,Y9$'1{ph&&1k1pt\!Lo;!20|P2{rW)p7`|L1>.`408GMES2`P.6-6foAWJV``0-6T~ln4 <P7rM;"1`50!O xx
Y>,6=W.z)"0i@
$ndn7!fF:sZL\kdnpm2/93+/eWSC&sx}p<b.CH.
P<lg)@f>
I
8K7
m" hG]ofwD>{ L6Ja
|7$#@VUN
<\A#
{6v[`XC~'\"{l~<aV*=l~,7IOtoW`$0omv
BFGnGG3Q{Q@4pY:lXUP
<X(-n}KQ*Ns;_u\>r9+Qf|K=;6k9`Pl!2p+T/@"
2x`9O6X2?6Xvne#7m,;,w<
79[9p843m@H,:q2D]8?=@
C`XQ~/+`38 `p~X5QXG9@
p+{#M
_@!
X,qecY|=v-e<`2SG@*-@&i1jw1u-'Y?gFq@`@(9[\.-@3pw>5`7x(vi@r5,`:08|]r'Yqg&yfO-SZ=glyfIxW\K"\!)qXr9k)g9N,W];\&Na9o0Z=Y'U+>Oh
}BOh ->O8W,X)?}#'4Hf4"g
L3qGav<*}
R'VKO|)((9of>
!B!&F9}r6su;'KjMN;
TcQ=Q2&#E&-
BQH'KO>IO&1v$-7.+FZ8
)V"BUVd+%fd|Prb>yNq?Oq!d-D.NyUWpq(x&FiDJe
Jw/Ywzd:#sot%8=i^GB%f"EUuf}QuOY0_7`SUz9$vs[B.5E?E:}.Y[k<+D8Pr_2|A?^BktEZymy.1&%[w>Cx]Cp5c,vY;\K}tMK)7ZZ/e\]XZ'SO2Z2diVpQnI6:&P1uE@R%fQdo^*Mmu{t.y,t\K=z`N=
-c|y_f|
f#p5Hh*b":&I>M#z9g<h)ShVS>U-zUa1q2lnf$vqiM0' 0A-9'\lV>9
&/O&Lp(Ac;
KlL v0[4*CKW!})t>/9.:rKUt
9]m
g7Odf#ZKR-Yumhm\#V-kWk/NE>vzkk7bk'^;7C;4z51ZJh16
su]xk
9gWsr5Tyu)['4hRB4|: K3y9
iAU/V>%%tC|Q:ShgV*+rUr
t$o>^Mu{{D%.8rD?'wF6sVZv%=UwSuyc09{m^Uw_%1c">'rOi=}^y-XC6l(?[!>1}3uGt5L9:O^
lU^'!EyG-+^uYh]R>W}YR]l=KyoC!
+R?|VLtnKqv"OL*/9[o1!x9%BQ6X?X!l!iFyiop #d
>m%@_6&dju~U}ZCFREM:a6(Z0r
o?6Yamf/a:r`oHG#WV-Ao;rO#_-D"u:kr,:3)bbSOvkv6E<J
)
114 X
BrQSuh3CXzYh8._NrqoGt_sso*MKsz'b
>O*:6"]&3;}W0
hLHp2X$71%9<jGJ
/MY%C3o1\v@@\D8~8-x m\ V1
h!O9ew Jre$\@c
wuQ4j/hZ)g^LzZz-*$V~haK7Hk~x-
_ZW:!"G=U5VG'F/i-Fw`HAz:n:?o-#a#wF8;"5"3"^Dl^eDBD8t#~/"Nn_DFxJDxKDn
-dH}X[Rj[Zs9nYQ^ .[qc?W&wwApBYbB;~_H
8v~i |9Dc_Xa-GC8#hSM]@CAur!;8?&H:~Az:!ItvlT*-&fMiiK|9Ci1j0h!8QjPvlQy@~RJ
Ub+t-qC^[mvU$~/M?x<j<fF5|T
q
=SI<,%^$WV %T(B
1UE{^v2>wZ&v"6{zmP/bJy
U(wLM#?
1{m|/:g O34MdfFQ81T4IGlk4$fVk]t#?apE/N{O2s3o
MD'%;y(4bt,Vh4|GD-b]*ox7-qh8rgdPEJGY-%ZY)/;5xMPn(T+'al
?>]3#Zw]wuL>[ SyC(r*3%}}0rNGbNz6Gw:<tw+KtF0VaFZ>#5kf4>e3cY32,B
+5LN
!X]Hz[hk8P_iE_\)=HlWMMR?qNHg%?A2A+lrEr.#CU.Mtb]1yMnK;Q41Ab-B*CEA>$A
HF9AIg_C&t_M2yznI
7(mZXULb?Q><-zQ4[9LCY+B9+(ht)
#)Uc8k!r+z-6jr^o3~ep}~F}spM
.|h8Jbz?=!q :LLTSSnw}k6nY^HR8J=b,Yt_)f
w=5:qc[2>W%vPZagIt&!S^@P
K=33g
$;qt]c-?HVdq[(MmFc3^_FSz
_Cf?\+|Vu|SGFYM;M-oIrs}Ym
s7F7HM}#Fr*hY~O}q^x{yx`9)u|oW!(bIXNH<6fTq-~cTk\_@J;f-eIVl:D2
J1q8i ALu9kOjl3a58=NNd~eMV:QjPVG3OD8k8\{'8)r|.i5Qo4.9t
9hCm}^t>(~B-,sN;{?4V@
$o%]z?Ww{wZx=-JN{fdQ+cs#(A9-W6c`$U@FWq
Y;y
_4|a>Ok(U[rz97;GjWpM~\/=X"lQLp=r@}7u;>}c)MBLd2L|Titz/rL
u%Y^n
.6\<EY!w7{>.ABlLI\4t+3s8ru9+EkqNova6t~@cA&Y-(YvqGwcj3e+ltd|%tgb%(su7,"~pV^,"Ku/irI4WWaM=Yd69`'GLm0tgyF[M&Kub?w#_QIRCwcJvXv2,sD6B`(Jx1q8\Fv&^~oQ8!zF?
\n`-#mq6XP]'s8{Q0Dl`
C|B U<FD^HMNY~
Y"PuJ;j;
Wv`#,/ik+4:,~fKzVu}O<t,
O1GZ+-19U_WM21OiTtgT%wYgkk,5XC{q6%QhQe{g<3UdD'.S326yTfi)m@z-7FR~lnV#
^ZQrPxjE.?GIu
%q !nR2j.^lq-%o(|-Y"
xZ-8=ra~SF%WX$+yNztAbNapcju1ntg
n-/# Ws>>
/+S*v2(-gQr5j<6y1l
#5m+n0I(wfz[o}_M
\N
\jh-TweW@R\.TOVL1m<KHDSsD\Q`a>jp I~
evF3$9:-%1VrjqfvjkZC5
|P-rs+-%+{Q8C6&yKj"^JBF1F%[:'GO%*/u
64RFSH@nZ2*A!<rQHx?&PhFN1@UG[U,vL)WpUciI
4<
K}xUi'CE/|h?
Zn tEET4"Ta!i^ /9C|+#fFqrqnHn5o8a-(Gm}
#wZW.J-+2'[C C)]6a{1|+{ykYI-8~2D|o5+*"?v,-ZiT*CGELCe)j
B7hNeW9]:m-?ZZEj%1[x(Dc&J=GWPpiC+Ba<-&C!LcK
oV`k##2b_Ri(RIr5<+O3X
18n0fKNRWqrdEB..bP3
LA\<3t!~*q>-bOUOfeo
!,Lff"b`j@'*VW1bCW9k$xxaMb1b)ZA[5 NK7#"?E-$7-H0Am3B1fP
afP&JvO_zDIr-;>)b
2sNTOK^S\?ytFmAzz2k(c:E;
GGXn_|_kvoebI@*c,}
M~Qn@Z$en|Dan7`s$"ID%]G%{DD}Q\KeAoch^h\Jj/ c-!!vfL+<S*-{ej-8$a5)
/
l
QW2df<\_}TN>3l0>+|fP-+3{FjTO?Nvx2-J-![0I<fHOP916*JY1IVzgDf=&ToNWb'&UqZ&Ga=1W9'xRh~:N;=o8I
nJLh]` TU
& eR-@@ E=IPIC(Q16h1dW&QL|0i?Li`zB\CqsZ&oEG/gl~JX*
]rdsi-&&[&Qfk=XX?SCOL2#v
KSj|(&7):7+Wk?fJ2Jj*\
Cyd{N(o#Tdh+6\|hQPU:RhWHheR;T))Y42cD``>@:
OVn
y=,:y R\W
%exi
\'=%9anv
k6+mH)Zo1=uMfvlr}gEx"r)shy@*#A`(D$jIIB6\9pKjU#$+\dRx1F-}Jd:sV-%E$}5n>Z|BDUzVhRLNCqE\\T8@vN%Ke%7\gJj{
(LfO6,Mt[4Uo}kXe_6NI6OTV&=Z3)x!?C5#
GY%5&`M
&PjQX)T3FD]SgVT#
)? YZ[g#rC9s-pj7|$-!<h93$
&!li-&zEMpB4
"Q6i5eO"wwgJb`A3y9[cT\4eqqd~zIKw\^cD3
AK(#kD"E;\X)r& 1DsZDhG*7!
~nto-rW-}Q[/gA(&;M3ro%-Z;N<u
:dJ\m5*b%jOz%hgPjfs+&4[Bg%o0#zwGk+eYOH&?hVp
N*7;5TCVSl2't7
7dw'!#!~fK\lpSTrvBr_y
{YgD105\z1^~Vj|P
Idhooh**J67[g3Tf)c-BM3CR[|1
Hrje\%UWM&v1rf\(ly3=!j
u',wq"I_AZ67ZaEq98G
]}m!n^=q5PXI5-6W N4PX1
7l~F5r`p;:4*Yo7Lus[6E0Q=7/?%^r[y--j[UnK<=W;^{q@h8~a
?(?+=qoA|dKa91/Xr3R|vRs~zzYc]=boKQiq0=-64<#.VWuzp/ib%(tH,&>
r76BB5-w
t&ncGa}k$I2-4<BO`e]q=FZ.gr^'
zg-i@!s,>|zHzKc
M|1K$rtsM/oKCKcCe6Twt=YeJ
|R8{(>??TF=->vU+m%+]c{Vh[zef-o>6
=%H8$U;TBh^r5!.wp.u~9YpmV'}c HQi\b
WKj\a@cVtr<nlJ*l>GMJ|C;6'
|5gh?3JW;-0o`J%1}jw`
Yaw'Uz!e=CL-|h;?ddD
xW.e\xgV19D8-EZ:
U|Z.@&WW} u|y1~DJROo?BnX9oVr/=_SnY{
$F%U.]U{ZgpA.BLT.wfMgCP`KUzi2FwF3[J}\jCr8E4XKUVQU.->h`A;4Z$
p x!!}7+8~AH#&aL:4q:phk
XvHy/5tDB'U<
tqCiH6ol9(KKpiI.[`'^pk/z7 No0-Mt{N f+h|j
OHBz~=fDE=Fa |6Iqr-1@P8kUr{9
9T
^~lCsP@c_Z/Jzsy-t9a
jBodsi-Ip^&sa
Z4X1W\TPT}y!pa
5DZF7VpRrI2UG7|xk0(ulY {x76QP/nN&p>VA^M rk>/y>3]zl/JCso)gkd*
#O!T|dTT'?4eg1
&/lx@]<%o}7Z>-LG N
>iz't_44l\KfXSjl l8-Z?Nk=>TF:4!B)M'@M9S2aJ]XlL}i#F-W"[i83Q1R
w]}-=SJB8^'stJkd4<o}_mogw33x!z(gfe;MuM61|)dLM?e/NA
[?N>:DFvB,V9YogWP^>9s37~$0X4c;
Z!awO|9fB8v=P(L[_JF1JgIw-l>-YE\z<ZR!Q~k(2
o\{
;=f}1s_coUJkZ
U>{@~N'Qrp^,pe
[OB_wzS\@frScj-WH(}g/&8Ib0a[.44'^Ma$c5*VM|
Eb\|QwyMph+oo2kI|5H$&%^./}uv#f@70~}B;)k/%23R^Pk@$Uz%a>5fC7P
h/AOPxf*S'#I<%]Q3oV:)MC:^4}K{LO*Mk<P<Py%4S3A-T^vh">'a|C
Iw
=zu>8-Ho8+;]k-t-6(-ZF"-xLw>.I@Q/]w}+2=92=M-xk{TL8`utj5\0EY}U}wVO,x~'.9q
pIv];9UV
<33MS
pbP$)M2G2wq
$}5X4Ueo+EuWkyIGL3I*O9jqul
$IX^'{iIR9fG&KD7Rv'&`t|#A:5[f~hRiF
:-g9PFfFy)2y%
;:z/4m-%z1#=hP7f\9@7xN$jvf-7'uq
>u[e7V{gW1KUm-=3-L3}t`Sw)M}=bf)m
1v}a9Suog/+V$9jXR.];50\g`TDil6e-o(`)0Gw;:c@:eRbNGw)<
t>?5n(5!j{n_
<
<uco7\pJ?5NXwpT'V<= V^c
!kb4}IB&T<a%O#uuFRB~Ng-vGz=ysaU l(n}NX,.uTOL-u 5
NAcz4O0wFUVY'^?5OYT^o[zaeK[]VP@pRWOWO8nt>ML$wME+Wc_x,TA4u20[S"90=^/gk<rgpQ?W[f
b4B<XB<QxZ/1d
0OChOq,hhbCG7Slmu@7+}>~{}uT?41/\mZ$50jJ`5rjoH7_B%tM .5v
..o^$.LqHt=-2O`Pw[gO`+we8I_f4TuTH=k+O>{f2L!LbL!|0XK844JpHL@&;A_/Wzzzq0%Q/r-RbwR
1y{fBP=M2k=Yz{z|Htolsojn:{}v:"Y7 -~FN:gs
Uaz]}.6Bs;7:Zx"Wq>.-H8?u>AT)o[bpL|YWa`op2!vIP*B?jZ(r<!=SD4X1(~;yx@/A,%\Q1h0
9(3Cg`7[o$B2B79/|]';].;<or*X
v{N%l!jPF%"8}PhmL(Y-q}.~hVKHFL3'E
n[m(d-4*@;]_E:m1*trUC9&9a"IOeh] 6Se@qo}&I]gQ.k1Bc60C]Y1iK]D/FlcY~lwdO?vB_Ly1D+ZcaS[Nk]xsT;u'J($3@nkK)P%'[~{~$1r]^0__c^?s)ZL~#XvX!#2apf,U@/gU(s\~r"Nx(NtrHz=8fF}T?.H`NaV8dHIveCxB%mxiXe*uc
,.:<L\A-&+f:DyL0U77Di2$r)k)g!*I75Dy~i5mB<'?y]iKQ<D\1f9-U"m9A\-o)4MN0}'#v=$%
+fOREi@)]t-K^-[.,+9mkb|-L4O4x+h'nt+ m<eW&
vG:wp:pu]FsA3M"TvjXPMO'uZD@:i)nWPlNP:yRCVP|%7St=E
0Y+Y`6uG9lpte
a8WE8McbW#8^VRl{(7eH:q
HK\gQE B4d\GAi0Sv\IH%?n0/j]T_L8gHjuK;*Y}SV[D9:V9
a2J8@mFr4v3uPsAvZ]!FA4pH}4R_Q)*C1=jPp%\1.I!up~7OzM0L(H&,o-7.O(N95-jZN}IAMN9s-J
[Ry^:8pr+zuY4s-qd[9+aI Jw8EB&=jN~d0h^WlmC i
e:kv"pHMYu?hmDc__ULHsO,eGPk<S61l|XlrV2EG)-s3ld"_Pi'a'd5cR#R
3XO@:*`w-+!.Jc#DrA"`dG"aViEBKK5-Z^q"OxP)
w\UY3(XoTCd[AT2cgS1w:rqG31]a@P"a
/[>
~VwB1LMlyr-@
*M[dH0v_I QB
m@|]#U+~ajxP7+.<b=ylKT"d?$Tk-$S1iF`R2HN7$0ut\.B G
&\zK>q:J#-\K^g|$A$3&vP]RI<L,SP%:2EVp1::0nn.opyX2}L]{s]REW@>$
Y0"$n?7/o-()+ 9ePL@n
'H
@R$ >s*kCGHTpw#P";3:N~-b3qL^.2KEl)|<ty^69/lvK`xprJpf}H,9WjE,
yf<4e^#l*Xt#&]:.Kf
7=`P1L#O
;{?GG(nQ7|Z"O
,G{\\&p\_0LRWY>oX>W$1,e<S=%R9D9PS$y-<)mNJvaO;fEb
^=2t e/Zemct@>oDKfwS4lRE"j 5:#
/z_lr< O|ilZ\bBseOxyDF
fQd7J2H{= NS0JJ{
W"?t_MmWnoRKJxC|&b(0re_B01k0rx%'vX
ln*
?GQoR).2Hq?Mrmz"jilE."
sS=JQ}k>,\wIU$x!n6>Gs!YA!o7G`m!r@Lh9(swD-cy8J~x(I4D?OHpbN4@N_+b''GDJnDAeIW3\kE*T
-)\J7t_K];ru..Kroo0.\wH$E.&cbK@(1Xn9d
hM1IdI
YB(-nNu\pa8u7_Gq&q9A
.;k[
Qw;%COhL+VcO+
'fmA"ks{Rs-+@'g``%Zw[R-PP;*b90b2Y(Od-36(=c~@o!D/Zfqx9)B-P.yM1F&ItsSO.KphVN{7#$k]{?x[},`q|YW]iQ3l7GN,tS!AB
/h1'<Fj1R_wCqw<8P
<0`*v%rd-tv~SR|$4x!x@Ep#v;;oV,+Yl&
5NL&UWMQ>SrA j%h"U{z1znLC)iv}[d3Y&<~8[
@R[p
vrh@lyi?.C9,1Xs*3bGt'i8f.
hDu~<=x FrWG@6~xqXXz =8-JF^{-o1C
enW~j!)r8_> "+_`D\
sy
&!+XSQXn4.s}eDHF</ E`Y28+h5biBRZ7PL#{fZg#-5[u1z0tShYnJ:o$6"S 7H<TXI;qg+d-+U]jD{3T08n\WZJ?Q~
)y5Szfke8Dv-0Zot8(#-N-7t'9]G$X'8[ Hx>Sc)~
SxU?3YWS&_QOGcZtiXq,Z^A\@6kQu2mp`c
-$eD\p%4b"p|O~P&
4Fc{nO%!6gd)c gJ5J71vD&IQjQ{b$@5Op7rDD5;9,tD4E~8(=0QuJa@Pd{p*hR17_U8#Y
6y%2?H=.FJ`nu
Xy}8JLR~t
B Nb~B4Me7>q
bVQ-Zq4|b_%lcbNSO;EeNmf|5Z57<d?JHz_NDvSQc-A?I=QyR-
rO(z~-%>AN|z8).Qt2vI^3>J1%/r*0HRv%j?yWK`.w`wKt|=_f
dP-D4j$~T8`})]62#%x@.=[D"'&!^l\pRNLQh[lZNA4>RIFkjNmzG1^os(DzdzS"'D/h =:'B\hs]/uT\(H'Gx(>.U:RFUD4UE267EL
{ @1&.'t1LUVl
jYj"Ax'1ZS8-X6z"=Uh+}or&ihMvP|bZm]iLv@:w%135K0S
g
v={+'GPaMSD6l\1Ti$%ed^] A.HK1a}rEb4# y
)-QGa^".J2,nVbL[Rka,7}
A>"ph:&i0tD5|,=id4)p^8?a}bgLgaW--IAULuI/5/xb:,BXUzu'R:16yA7]8&F4g:(Afj6j]Sl$F\<$@h\z[ikvvOl{%yR{/o-`7pWtCcq"OwT$AhNGX`hwlwqy;=B+6g!14c;M@h+JIrxJP
Mr* M+ZRnHSdIW}o%N<r+S\Z`mIUZn
$dLVFeg`}
tE: U ufq-$Q~{lhr2E6a+hZ]Jc7-)_~'V7M.(q3#Z-ru10-B8*T-6Upo?Mg]&">LGz]Fy"Q80G
FV^ ^I_RW-=/4*7eDZ%;Oc$'ice` ;|Qx4`m#CG}_POxLo>d79
-E,b0q%l{[4bGt#S33<gHTqEM-eQ(9?or|sv2;W^st1<DndRi?a)
=aA{=U11P8y@D>0.>ixT%tLS?^t.Q0'e-}4/*%>
D>ekOVCi[h}E^h:
N5(Ng^8rYW/>]G\s lYCg*D37j(/I3C5)D"V/ixx="(N+4 ddLO5Hc
yp(]OzKv->c1Q4F9Epl8AoAe<[-uF~v(,%XRGl"l) ^T|xb
&-3&V^
.M[5_niL^/F3!GdnZMfecec-9A]Eg/2P.I T`
.GF|NL1
#VL8qJ}!5/OR#$CZNT'%2kNkeuNJb!re,I[/Ac1 ^{IXU}
BCz>\*/~#-B5vH\[(?k+kUNX
S
9|]KSI\X&,Q&+Ls89&{^!V n@oFt{Clgtq|>}qfXeg</q:~OE.6(v;i>z5O[x[OR$Kfi]%-P7o;}a=gL|f'y8EN#K'gDu<^^;{OaWNd:t>C7x[Wp6DfP"bU-tH
*(Hc7-7"ONCYaM8Ms[j=FD~|?mfyT5a6|@Ry6LDLly<{n[Opz=uRjXYT,;qM80SS z^Un4K
j{z<~$e<-[*V
,8&"<SS%/<2IxN)zllm53
S0_aiZbeZaZudu
Z")t0g2-
nh_iu
{3,[$V6Q
&!T(w3Ll@g%]cTSIema`BLr!wZz[
XPaE*5,4MT>!-&;`
p<c=1-O>D}MWZ_#+@~
`]
%
t[{<h_hB_xFydf}(cFCqM15Fn+[3F7|&|T{UV*-9"fK++l'Tm5kH|8U;L@}ox}+I)+3-(\mB^_ZIU)>{&sHw'98M)8yTsWtU>RO p
.mYvaV]PamT-jj.a}irKx~x.B'r\yM\8W9I\_WTL.ncd
LE/< *t7E<Smv*$+ ^
URjrlJ-~l
jVg&9shfQC1"77z*E5m-zEU[gZC]}aS,cSZ`sFay=B3L47jg^|E
u*]B"-$`p
]n;G\8P$] Q0,NAA3F `
nMKA81
L#?nM0Z|!Sjau9RRPvO
2(vOOlAxfdyy1Ptv!,;L^;JDgZWIV%
T@p-y*^DT2.4YBv3S5-IP- PxM
4!Lnf_N.C=Tb!N(
!cI5ms~\Dr*6s,(EO.;
L&}?'SJR
D_4z3TGTfJ-Gli[[`3kN@EQxjb[h]a'JjF#|}4)+c}b!sQ`pG*8
8|YRS*/<riILCID]eWjZ"PFkxb.[JAjU'V:)v]3^B%$E~i
S{"M)q@>M=
>*@0v{eQa$F=\BIzN>TQz+M^ZhJS%pcjm_FD|QQ7)?(fw79-W&h).mTq8<x"]^.
P8vEkP,5w&
/EtUQ5Jg9Fba`fgW?(;A*mQ,=,(
:H!Q86
Ntsal}?lyRQ\H5]/?u?^f7F\}zm<zRTf}YL%(B-}DAsXmjhx8_Po]FK*/OEzQBo<:pc
AxO@xnuj_qk
$iGh_pKAiTAeA
@8 cZy<u]Jgx@${>[{#Ay9p(DY4tNQQ0`v!_3^s^/EB
AbSwhI'v]h!XZp;(bx_5GJ>@t0[;@
Um(eFafPRqPZwu%Js)[>$2f%jKB@C5&DD8c7-*#+[_C^3:x\%_H3-[w%|>/6|.c9X);RY
,zd?~Y%~HSoBX(:WDMNJKl2^cdU:Y rAtuD/zU"eB
+@CBF1*F)s
I }a_@v?%MPhH=ZP&:ky?
4J;geMo)!.@p)qFjZpl'A:1)S3[f_g26L%2WEj*yxr 8|
)i`g"Su#RU"p2U"Y
""8+l`WY]jZ i}F5FMNM ,EfTSMi*.1=lJyuMrtz
L=x+U;T>2IBx{`P2('Li0QQVi
0SnzvD!pO*[R*k02OU;TPlR-kg"$>M(z(azsS]{x5WviPSQ6\R0Xv/B~O4l63[BD^-1/SX/m-iLb|[(riG\
&zXfUCL Q;kK-am
]GPip8`&*i`[T0fQR"9"l6MNu&ku#eCIW(U/KBB3Vm
t-i_G]$s,iM4'}RRRi-hwr'|zKJO-BgJBp"AHf~`u}
seKA`
$,sxEGt9tQQsQN5|8}y(Z1R1D1d*B& 11lE
GETq!*e}*4HBoJ]<x1h
!QHnCnahpN=SdAwqHGA|UG}DRD-g&^j$ _o7~h<.foz|{^lmOCRpUnG:wwWu ^ 7!1-(cI_M@\GuIh
{b&*__bp:4K-?!EA*-_OPw&8L>aqGyX7i%g{*7'X-R^i\zTMRN`F$\p
6s58et$6N!'f)*
`@s"6D;}YL~4'([f"7za:&PV__r0_]F4)h}!n JvkcoZ
\2=kH\#c?!*6|q[EIl6reVT>d9C!~{bKZw;[u8zJ0@9J~%r,Rr"Z5Cn02ydj4Z?`BgAa%x
7Kpejy-o <V
j4`-h/+_0H[-M}^ALyb"/aCj>g*pI/+ovw~
os`B/[@*4-ET0$,I6j6_imcgjg1!?)n@&CaxF-'1S64'-}jcZ`urH1aO2' K&c%yp}V(`~JhO@Kn{L"~P}:DyM'x$|r7&
'2M8
:)d!w44_&'x
2uX6=
ovhe*E,$>3.'[i7wf.,C'^w"qgP&aSwbD|dC<''c
N0sNVJ?;ahr~1Ydt2RlwOUbU;W&TXLI)fC^ j~J8,b}`3>
F/\
CpadbvnEKG:N2=L 'TSPVMvDQN%STglMv803a=f6,Tki<-<u
e3bF'<Vy{lOlnXN.?|Y ~giV&s-([+$u!G>e%4&_k7K4b^cl-89?I_WO-,7,f.
,Q,~W} 7l|fCSUZ:{{kPaMwk6Q]_*x*g%Pjfe'_v
jlxUZkk+-}2vzVp?\U*yzB"W-rm%kjk>2_YbK~?_i-=_yVKU_c+n|k7V=vZLpaa6Uol_j'\7wR*Vo)%TMU8RV_6q+n[~2@UmdmWZ0b~tN5{2fUkQ
jI3jV-X_^m~]>h~'Mkk7|?a5
3k*3Gjq+f.M6loxp:t B
Up5FUyg-A"5#55Xm?uBC}
5?
VW+g6I%W3d7FTTWU-<"6ma
_H31BTU>b4
:MQ6GK$/''H]5N "Xj]UXvhvfr"GR-J%J(7+GZ[Wo6W#<B Vm<#CUkgr)
/a8<IkR-n=F;!eg\m _" dt`J72Vl:r3FI
"/Co,|emz/_1o5mQ-37?iR!V['UKR?)I\+-$+ov-];N{TBBp@BPAX3
BY'v[ffy&H*JkE H:o
"]Bl5 :7r.r*TIgm3}(3"ZAt&
sZ>c=eZ-K
Mw[N_3/ :Vz*MW T
t
N
p)(#$.j u"h`q#J`Y6)-qC
R6-k*$
WSxWCbC|
I9#[FpTe4=e4Sc&L7O)QfF2pL%37G-5p\f4wggp8|Ni98rMoMsIGVph`xA7=532 j[SL^
(?'4o0jM5
)-ldf-AZxmT
]}BDdh$
PK!WX0@FTP.EXE|<;y!MxHxy
(%]WK)G!l-"TJ)UmCDPQ,ii93}O;w=s=s;dtOQdf"s0~v8y<g><pu*g-{u#s*.w\51!!vj!g~50T-X8lfN22!LuZXeo,5?b/1Ig[SLdIW[MJbZI
W!q$YpUKU/2B;.Wl~U\1V\9wma,
Lcfa1Bs[]5wWY1_tjspVuVXpslq|#>s+O8||^v4>go
>S5|Al&h33L})Z;j
=,>ky+|.>Wsu>K|>^.|_
Ov}o'<_"^Jz{C5W=va<W+!YjXi{24Zb=PsySAs`4ur<Pz8R<j-Ckro-I}
/tTNZm:529Pmw0X
Ry!O-9%(JmDc
^{S -}-}JYS^[TjJm
W}cc RwOi
}#[S 20q|N5zOEBs2`&`v
!MfF<-& E:'Az[?#m]Csa
bh^q<Y>i0Si
An/'wFWtoHP<W!STu4@D+T4
q+trIra7FzzIrPv]C7am$6xd_hqPY"h%U -R]5U*#\nd}U[zmeL+Tb9lBTwKUQ}Dm*i
=-ES"Y>m]~3'Lx3s%IMB0zgKg0Zr&=xgx1cgF!/c?F"8'<CNg[msTj`}M,B(e$Z#/cut68VMk?nb}4IR
BDS/I ^G+:<#{Ay#P2cHq2/rfB(KCT3BIITB<sPR_=shF-,0DurG_5p^="y},"Wgz,u^G-3wVpG*zG;3}b-
Z&I|! ,hzn#z^!,7HEQ7"L=6+3U~Qjy$;C<.6B>AsnSf9$jg
9~$*Oahu`wb~wG(b+T00f).fwU60lDmM`f/&m$yP`zp%I2Bnx'
;F4w/Snu95B-*p?SvD
O2
R:GIu@9&/ @/D-xChJ'PS:
OT&c\R|{<A77A&52$Os$VcMc\^JV+-J-kKKl]OYlhZ+V
M*-ev+hm -[-ZW6m&F
]|&-+ew)
nJp0&<(e;SJ{^9^SxWUh-/nyMyZ-mNm0Bt\mZ<jY1'*#-% Wmy',.jY2 *q<VV}~k&PXH'QZ>P2P:18'+,3PbHJ$U:j<Xc4NDd
<qiO@QJ4 X=RW-Q_7Y9lq/QTlYIG-S3Rzd>1QtqpMSxKTxxHMQ0:mNN5?'9`_~kNHsxhLL]U|bEg3-;1w
.E4B5`
:t dbc cRPHL.r$D+xsl8RSaj!:
,)HOZ7m ?}gfd
=e.-s@3B-eE?H3.NyM?O;f
.,sacJ4 ctWg/)2_
-d
,.Y\`@2Da|Tixu,*0?9#K;F` -0EB9,LgA}6x
T*~iR%${ss!Wis>!MJX,"3;)?M#8W8:GYz s$6)S3tkpgA
"N"9us2q UB_O?Y^CiGB'|1hl@KYY8uleEeRrxLQ(-%>_+)wSY2
cD]^/
)q~i1)Q
op\zGRn#upfJ"uHcS=7mR&v\cgSbF-hjiN&-V>;GuL5Q\M>P8/ZM'KJ@fwxFF|*5t$=rsJPQ/V\1u1i]A<2QK:7xo`gXXxIdqSg4A%Z`8e0.po
|].#&S%L@*'X6iWf5|FcOTxmBKyVQz|jt[*A{V!qtkt0&OYvb2<b5
:!!GZjh8.VX:U%Q*}kSxPL`(!C(qJ-a
MODq%^f2fEUKY8{->H4Sg&_4vk"xCzSm4$=F
Zv)bi6^0--'<]%h+UXx4+e:Oqr5x#UKv;koN
$0E(OXYe@Ib0Y 3=|xavebveY+ea6lec6l,e`V0M0 =O}F'x-
dC|31\F'a7Q~~5aWQ;?0"O >2z*`9^_4t*@/3X@/P(G(}^x{U^x7/<(yQT@u4F0,7YF3s3C3kucvi\1{o\bfLvvd
Rl3-(9s_u Ig7 EIfv(:";H1b7ja`b&zWad
sz7M1DQ{T1n"0
ar&ar?76Lnqlcv
96Lc^26LcUr?7<OugL~?j*jV -O2Rj
!-%HBVy:SG"44U'@6`P:5Rw}/PNO$gchz?hjA:jt1cIAcy^0Byh3Com(44uI%VcmF1tA
[EZ*}fws88@Ht;*b
dLtP->dWw%4x7G8>gDX8Uu~|!&836r<9om?u6A^xtXu-
~?y't;?
&&DKWX\N9E
<-
eQ
Bx1q<V
-mwI)'5Fj`V"?XR"+M;f}pw@}C2>PFv7>yZrkd F
F fj''BlqlP
*1M`%26V_xu}2C8{a^VB6szSO_,,qsMj,p!LO$(t
W 0a
&ft~n0Z@09g|*PG
k2`81~pat"^4&tXR1*J0Pg?7E{u7uM
V(7lV6Wb2lDvFU>nYTl=CRT2m=K5uWygn-7(
gmFV\pZ%n4Gj)pUjMpZQ]2j_pf*c_G=lz~VRfAFrD0U++!L$^)sR<aEqY6CI
m4T06Q[eoL_Vj.##g*VCcUrH{t?E'NOUHdmJU`<aM;B![cE#:I!/1m
1JCBk?kgI `bd@VPY@RUXu;
<"rV>G~Zpb=59 F4(cT@M'<=4j\XQ'B3Bdf}"t&'TZ('vl].7V3\C^ITQ9{,!gb.ElN3b}O>1iOi5YBfa6u"=r2zcq6
lZM9N1`|b:[C}ym-0 [Ff'&&VD9oq
'W6)9O={^`XO;ma4SfhLI}{FPjv~8Ba\?X(_T]0J'L-~(>C~JV]APU&5I6j_H(IW#_q6zsdHS"cI0=1Wmk<X.
J*WKV#_biPOMo]2[J&l&?DMp)9yZb1Z9*4Lvyt>Ko*/v{%t(HH]um/tbFnffaO:U]'_ZDdgf-`mnUqy[!FW
O'>IT@w%
,&
(;[V[,VeXgv[uE[qOSChv(VL`"~lO3B@NtT o.d
ieX=\B^Nl0<u*NSC*NSN'nU}Xj*j6L[Vr:2uJu1oaoCx223XPI}aNt;f"xs%B$(uoE{PU={
$>C`vEST[4Wnu0M"NBR_wqe35J;oqkzupj^O^=N$->9s
6Ru9KLOIQ0//;4LGJ$te"gX/1)kGqr(`LfE h (?QO@N&
w,)yc<&Matlr;ajY`T_*Gs ba(s,ZK<P8Fz5EFLOC"9QOwg6}6pF%qh0,UDSb@|l1&|yFqyi*2yi|-c>s-`.#$'i6:hQqg4Fh_<3f>>Z&Dk<EM
4Z&nkMPIkBlZ`ak5/Zl_3NaS}8Lwk%PJ"Z0bk|Ps}(
qz}&Rd:;`E8T"-4X2A0Lqj/R?:bFKE[TBB=
x`ZKEz-;}@?a=P*t:Q/V
z^=b
N@[G*G$(Z5O0
rZ^!{pOGA=ogT+>e]qON*pvk$1215_-*4~Jo5:nh5G?_l{K
#ubE/SYX9?m
%n;d@e kL UdvsT'
CN}mm7/DM-]iMty{^tbb&Jf3VV.i:Y}it,-M}!6MW,~XQ9tKCw,3Pj
Uga?
A.,."(&fCLTzS##,EimgaO^\EcE%8FL/4'>J6=MSoo>=MW_LKx`
Jw$ 6Z{b 51CavOtu[{7]p&)>sp)tHxcGb26S({7!O
y( CwD!~~
E3BG!X$qnJ @$" !Ih'$Ez:AmZS+w
d9IKt<a @8=.M2D
'.sd%
j%dpk@9820~0&=;T;R <
&NAW '*: 'y@KRx"XF=$z::^6|H`CMktDk}kftosTu
x
{~zuau6B5]dGOfHf6"xQ%JN*'FJ %zZ
No&yZ-D=,3xbJa&W'RDUf}Q~|O/YoJ|FN#W
3nr!o%Zkg{)c!FG)soZOMsSw!$m
#0I#CHx./VRj/+J5)e!o-kHDqbtb<lbyTxLyKy#K`FW_}<[_-5p?8[TT[=.b~Gfdz
U}OjJj~hh6W/%}
(B/y?URcf.@f#v)T-=K\:6,^G+mr6T6 d.:->(q.
S}*62t&K%:+iBz`Y-`Z4T<Lq+d6:a?Kj-t^S
FOOt/Q{j-3^~{~J/8cg5w|Rw*gL'c=96;>Y}qo-:|;(X=Y5P;^#C,kI_p_O
Qtg_V,-kJU<r3
%Pa8
7s3CLe3hr|
kU=[@WRZ?w*c
[4tV/S]!NrQkV&A-z2%
]k|51nhBpNi+`VF,{}prg60###7#p]{b4az##pAief`'3a&3M*3PZLC?3PC3vLcUZ3.
X1ue&b@.{LeR1
$bg
H2K ,NLg-?c8K=Lb
b8)iJvLgvsleCW<$`0Lr1ZZsiZzZ1
kZZi-RVDDWig,iSll-9Z
\L/LqIpWevv*YvnewjT~>t[fb-]Kh\74fcZz#Y~5
<\-)[#^TA?Z}
lDM
h+_gMGGKnmy_/%6ekur8e5_ySr%`6R{w9-m82F-1.G4I6q,
lW? $m.v.PZ-\bfH
NFj7q[a(u<Tbz]YL1XVL|Yh[_N`q;l(h=\Gs?kmbj=WLnJ4&,2&eOCq<*x[NnC
/;I_rbvg6i=Ud2@
{)Y{
ND t4|[
3RuvZ5xc.QN5
qsukJyl=C(
UlO%?ej-=fO#7fGaKsLk0]CQ
vNmIk^ZSG1JAs\{\s-_l0r
5Y`RU?AS}^I^5h` -<#.{\CFAS_,U4Q7aZviG?!"$VZ=9
C
~\^V;L1QxhV5=&{!$gc LW0ac~'A_+4y=0&1^\?1,.]2g"_,.qH#d4c/9Ku"mt&~ElO!C"oB1F2P
k-?o$0a\n
yT\
{n1;YGUYm>5q6g7ED`pAl!A&!(8K6ID@e/au3j3_*qkI=ku.I13]_T/:&s!v9c3Zj[~i-_dkT]&V=7.?eVp=kDs,>Lhe[2ky3,[[tm+-5=k\X#dAz%{md>kH93 "
Z Jpj
*RG-g6u BVkXS?[A^*Io5
)&:VAMoX7d4{*v@I6}44)nmN-q,FhwP\RrV']Brtq1w}GK.h+qG~A^
FEV~u6^mmrZMn-6]""?f}2Q8bU7@-uHVV=Re:]
W*`.Ekd-7t7`LWbTxdY'88g%>p
?-coZpSOAiZl._c1Iu>$gE$NDV]M
c2Br@%wi-6FjyF:: hjmA$#gxN-3R{6iX|^<<w4} 7=pBc<
0nv&T7'"TpmeupXD{df
v#=M2lf R}6v`
LMA}}J?sP+*[7u+p38*M=M3HI2MW
z0sxw}@-%-upVOqi<#[u|`]`>LU-1-"$Hp0=R\-+-3].DN~erl9;gN,ZBqz^P_sc|&Ek`-{`2Yyb-)4+f*%h&3gDn9(_/~
2&W>@x-3a]nK:` cl~K_zi.D]7vxSXIN})q
Dkz9Mf
'DdKg@x*1,
oi:a} oGChf);#Ulv.mhJx[`Ueyo?1L$?'GC;OLAQnlsf
Xfes Jo-'~f5U*30`v@~=r=Fl.7Y4mdZvrJs\(q]/Mp}7heIPt
V@Q+\lRA)}tj>!0
74$lo_f__[v?RoY?sXO@W7uV9s/ 3(k 18V|
F"'B<&mZHj6C]'m=A=
l sC,U;iBipO
\vapv
zZrB"FG
S`K=a5~<S\n5-:}s92cfSr#Ej}U*yE-yHfw)9I{X^h6Toy
7nklK
5pM
cH9`1!<9<^VO0pw"Fok]a0FLt=PQ50t>5O=K_]N
;Nn0ZWklSz~5grV4
WlHF#%T+h8@;!Yh,@1MKw@\eQCv{&Lf!\=W5hC< pHmPhWBo|]?kf/Lz^U2[-UA<jkG+!Dw`~7d_$T,4m,t)0p5$#rOx~F8^ F&-l];V^2*AfK'Q
5k\Q<;`<q=}j2.>(j
9A|pVk^}5AjB
VGanxeEDr+[X#Y=]iv`*n@%x'--5J-~_^HME71^-^W`~kn1EY
x'DqY+.4dVjEPTK_=D+#O2a,<|
!,&3>;"DyQb-SD-(k\"7<5WJ>cpn]zxp
3\O)
fua
rd
@`\'!`{Q!(m"vwzxxt_~FDtb R7Sc[5-8af)-)0:W#;[AY<!Z
y-{eE'B~BetG?
\-xFXu6a*bl
B{ZK=$?'DVm5N}
:t\+#r,rQGZsPZ?P!4Ym.>gxt]Fmpi@I+! V^JYm}`'ZN]D>_[VoL?3gn"B-
,Ak[sk-Vg0w~x.[c7Yk-j!@Zjj61#eD`~f}?w_4a)U,<K+B_t^b@N
Y/9G\u?yy/x='pB{%L7eq
z.$+GZp&,-"3`Y#fk8&
'[X k{>=7}^
D[ / wW5 +V5iRXIT-\&PEg QHQ-2p}fn% O#=B*=Bj_i0s4:11\WpBUCt7iO2rsdd$JwI ;T +\ 7 HFe
,4RJg89 Qw(@%V]y/~Ue:ENvRe>2s?gw0Av}fV.>}X]QX
Qy6'T'9I-n-]9qdROfsG*|-1-ZxN-\,;Dj5E5
R)'7S,P6nTQ6<:Av=F^IFW@qM%iA[%C09
vaL(2H\?:bHa/,Q63WZ
\ 2pT3PWjHg'W!f%7Qz{9C,?v56QW;?H~ba,N{D^,.*zu@~]7;Y;i$p= nPuXXF2|J}]Q!Rm5Q_QvV,>C>>[_V%irs>IvWl}{#g$
( F!(X$}3ElCF1+_+3rBIIW~UAO[{c~Sp
i[.MXh:7yGLL/BpP uO<q
S
SWdeSMB^j@N}8s9/]}jDL"&]m?Y9?#D(.pxUfRm5["=#\/k27;PFURFz,D[_
er*H
QS)|?a
Nb-SG$u4$W/REQD<23S+u/!
q9x\I=z5N'boY@;
}c]an:r6#(rHZ|r||!Lqr-+T?PP|JdYp"{VhHI2lbp#pWJYSO@Li/i6Y`5JWn+!v-"=d`y*do(vf^!}VN~8HCqaEf%._4}J6Zl\q-sq1=62X=|v|N-9X<yiB=?Rb=EV >ei r&t;;'IY3<)0;9gFr])G4kX~U1!_
s+z;aIp-)EHz[
g[4 {yFhjpN!:(&>3u/,1sdOi+TqAB'g4;V{VVwQ G2sSo,@g4;x8)IaXc\g0shsd9:P1`'6l_^W-Stb_bSC'p
-8T[2W?imO^`7<2'<x"
[?uP=5L-|j1L:-R9`dfM]N:q|t?W
C}{k\|DHOY0M)b{}0<k\I
pr0G(QwdL[asYOO<]<_eG8;+0'&|1UM{vppYWp|ON@qQ2&e
9L%Nwu:>-|w>LY`]S
s'P6x1!.d'd
7=2zP
P90WcyM^N}Z$Ov9o%~59mVMbr~t}m7:_dVa-@f-N)I|'%9FYhF5
_#`).Fpsh&Kk~WFOzT9bUv]EHX)ws0aqLtaQpnlzzW
G=8~vSi/G>CN`P1::T/o:\`-YlwM&9ywrS>Yw#mAoO9QDT|`4D$@*7PlQU]9u
.-(X=?AE`##jGuE:e 'G}!]HId)^yXJ`c
USVVSh1/2tj<V5ITw>Q Rza=wHO`(#`YIdt[b.jF%4$-Id~8
8O_HZ^uH026\r(K@tHy)Qsj1z/A!|Sfp7Ix X>eKnH'e4E
u0/v?d3SC'"N9OhOJc7zzRp6~!keJV%.<,ei`
Dk=t>'8bH61 <
N/rY? yy|PVx"B V0H~U=P`aYo!XnTdGB; 4%i
Lvr^3)wz~i!^G~M-Q :< s A*fd\2Xv2B/m^6KG$s,$t8O[PafG$/'%
Vv9AY&TWF<zB9$f}e:+eNA,|.Y!z''i(nlt_`2#~XH
a"3r+3cJ4ifN<<paX(C\s~*&&nkm}8L<@>8{\v?+G/IO/{u)3a1%Isu;G--H<>]P"6;FOtNomXkWqqR1)su*};a#P|+]&Dq\!9sbspxZnY:7f-xk4Q{>M{vu8q5B[OW:
DGB\yor`a2"\(u4CNYDR)
L-KL}B{SgcvXh9J!
UtK)KP$-uB zSMT^"3s$%gEnVF`ot;M-kT|C|F.
xH7bpOJ6Xb*VKt0N; cU*DU &>F3X|
*b7{G2hhfjc[yVUyxo`jY(oX"bd/t%$S;:!UH0"}Q"&k^gA9>vgu?2CZ$4,)>:.I'e]o_RXH1F^f>sWX^(Y%tZ*lam0
}O
Wz_uB~iGH/5gC+V&h!*75G
mCCE- ;%FxI^XJJ%79%Y%WhLv/xI(8qkXg6^bG#i6xH-cj(6*VA_]x":Y
"H-pf'W!Sb3Czue yM\
8)F[Ou"k%oa|'yW>
6XBCy' <&X
/T/5)v3sR)B qfU 6~-=*R@tS' Puv$'-50q+gfN
&Ujw8W_MFI#b),Qles8J'*x>1zVz
f/*OSliQ\#U"@=U/? |k#>#RjpujqBU$8ysfhTy^}@w!eX5+x~MF%8xR
do!\IpV
Xd[OY\Am_ -]{K16,
?vJ(I?_0W@_Kt,@=:jIt-Um61,)35:-vmNgETu=,U.F_ja*8({Iqs
Y<:SkS9*bf7Hix
H<G:_LG,T/Kz1si5FnM#+dF!\YBotN&5{5KYuu"jqn'r=:o8oIzrB=@<[vjyYFnlE|$/2&Q!
=M;I.dBm41wSl`9.8l`6 g%=%X38:{n
4j=hm;_8W{{&Th O!
[.jq6v7<?w+~Gh-b25eqyZu(c$>8Aatu|*2+TQ&/h3`1|qmRm~LG'qn]bv.i=M}?^38<fT78>C3
n'XxID[@~Vg|\LdyDc YG<
5(#.Pz7lt>\--I2S'}t\UKC/
wx'wklyql09}imZruHjY+k/ZQp6LP`M)Is?/E `"m'd\]y
-p0vfJ1D/p=Z6:`@N03ly
R
B
]_v%J#w5t4>K,;Nj%Epb!7VRf
E6s04o!zu+l4Tf.F/ n4N%f&o^K$JgXEsNdC#g>nKCb&I1
AKF-<T?`yetmZ-3_^u0!Q|)7i#/1\!hsS<5tEI6+7tx5@R]|)g
$:=;BIuL.9&@V}QMaFh=!cjZ
k,1>e55,8uv/Ls_#E)Gm-UM;mn:0yK&K[^~2o/Z6}t nM?[yp".xwM\i6um&-{2n5%[5?~o?k|8p9n8]ou- jsYqn}-0/j?;"I}4{|81k8h#^C896cCa$#?&5^
Wo
_d|Sxn]|q7&7OMh+}_iMck#{wW}1/h>7}
GKo
?A*\8d}g59
5M9_K>{_4x0!fG%{gOgXOsg)/_
u.qS=9w?GSi}e)oK3d5~1a
w/Y-"o~{{GMHYS>o?|jxq]\-Y\':7kcGg
wqo'YcF7pgwe-$3Uj79Yc^z7e-RuBwwLuF||{o?~}~pv<z?p-uth}gfT.H|>?v
i7u>6_JI/vA-QCn.{G'&~qwuMY7*yLViwoiz?`;MHrdqIm:p_SjEK\(XHNm=zt>'WM\A:Eqa? V>\iD8O \mB$_*04K/SnWO`tBso}\bh5cL=s;
n}0 #X}Z;dnB}.[Em)W>5Y-WQ|n
,R hV.:#$]j_8+bY('HKio3YSkp#V
T6`\p+t9g0,_as9:"{
@L14vg\>%JHvFw%6Qr/ZnUq
9
gh.9pAkN#l_Wh?'aU~VADC9ib\DqAi0( /@Ar)"';j
I2O~WQrCM']bQ]|&L-p0fuKa!6gKeo0HPWAlIk.,-4dRUw-{SS#HtFlhuZ7bvvyHhi,$l9=~u.B${Z#V@%M&jn6=%R2{T=}Kq-{
TYB"[ssB#P9/iX8f>1i5L/^
ao\g5Me(wWIg-FUlQ:e'XdJ]iIP%Z"T_ ~.-EI dtW
IvT5on#.C>{t)I=D"w]`fWtW%L37:XsUizwi$O{X8LOaGOaY;`sq53f
17ijFAx:&-m+e5-KgFEz'(7a9=UY|6V"LT8`(
B @./0!0'-?[?5klBqyCfha`FH#K/?p+MOH&"^z2/DH0!"]v.BEHA!"DUTr*BLEH!!"DTP)B<EH!"DSdL
vWs#EK4
(Q 2@b{gBD{[t.Anva
n[7(q-{PA AB wN_s7/I?kaXz??v,t_HX1
s4i80pb6oR
Dzp{@%X|P7{bkSw#`%^g-`PA~o4p8t|\o<2DK
rSeso9=]O,"KYj)~Ww9:Lxgdfye+
^qtUGgU_?Z
WJWuN)fz@5s
n![1q0Q!]/P:\QtO=k}_'0BT'Ue[XAsc;7}G=o8w}##$FLa1C;rq'qQ8!b#(;C
cno<*NYUbB/n[12KVj%ipn)Dr
*/i(a\`w5
!*/{5S0mctbC/9QsvS}x}t}TM9L"c,
<'Q%,Ol7Y'~F^S|=-yZazO=Ud*|IEhH{!}s$~9U
9@T):-=)SU
)lVMj&ZGM!o&%G
^wj7QUY]nEdz/@je"4k t5-7@r0SIO+sJKRkUFRA(~M:_nylt?Ik}=b
)^Sh5u.-
K%4KEyU)YbuZ;-T3JmM5=^arkhcU%
L~5h'R,ZQZE_|| k] @Szy)%;vQW0_4ecZmz0d'q*]67=Jo8WfZTp\{YN_;0vMzQ./YJ-]SS9BscaHC>&B\}3y]e
}=eW1( oe&l1M%35c2_K*#xpUkijFci
\JZeZdw22>o<5V8_qL~C8=Yv>5c
n-i-M5jA&z]AfLl`I7|=epSqE"]ZL#n A0$T''KSKTM
p\=$itIOU?Mgz>,"6'1g/n|e%W4>2\<E4DS\o<X<+
;qL&sRjz$*lhP5mb v-XP
`^{a$}g,9?
gXpi2{y| 7Zfj*y
l['a[xt^BZ.de^h^{*5
.ICV>w1iIDLS;T=Hd?'=f/j}F)#V.x[;UQ1T/
h#'`D>11-i[;i=PVA-5y:I
zC}YHKyziAqv~3
bG+/eo<@NMP`Z;vf9+tP$t,v2itpr.1U4BM7t
L8RhLmmqgg!sW?bO&&`[x{3g/6h8x4K@4KyA&wd9z
}#fDD|6'
!8IL7t2QKTcKN:GQM!^n)gT41sNcx3
d|g>E[)D]PUK?X=,E=EbUms*bTir'Ki
wB:03LKqTIs4o_`\[[s9+I+]Aw"8J,H)H_A+rIT5kQ
%[<
-4l1xf`yJT ;`{Gfm7T6^
0|Lf} U$qHsh=6sU&Pb[EYi^m$vE_
WI2tdp6=IjCknPRFDPnVDGT+K</[ \VHEL*|5
5BHk+!Jk\jm
*Z.-Qfmv<S7; fHg9.]>.9\~E6<Eh'z\meS"l-&7h]M9
j8o
\=Ql td e2
oO%[O';,<
E[rC>"uD.$,
_O>S3+;%M/fNL,r5j4aY>m?B3NRoS-.NKV!&"?XBH!*{?h8g<$7
V^ +!J6a< tPqUWPEf-LaI<I@zyj+]e9 +-YvTdWp-Oy6'My& 1. My&=
Tdr7-M~Ckyv4>|SqDE
b~|"0=gu3kY+YZC:29%gLL
QQ$F+/CQavC826Qaq rW}iH]P
c(80
'RlvFyvV7g|q"E[wF-dE=d"6&ep^U)cGcX;bkE
E6rL-^yb~\_/i#F-J4H_U%P"[X,.M
Eucr37r:fT~HlabOrJ#A\<;NNV*>O~).=7OV~rG}u5t5dg0x 9
F-VVm8"t-j&Csb!~p&fz6~0g
&
)
m=3[#|jv\F`|t]3L E6=e$o5
KY5-5b3
'w7Tg&vMxE a?VIt4!Fd)N+C--Tv:Vnhft%:V_rF$i0(IWPHO!Azp
NAD4n&X9~Po<]^BR[w7Ev>09b%b
r/Blx3i^9/P9v&~.:yQ/ +0B}Bl;!v-}c
\tLj{4w-i&dpL^L0Y=</\&i1J\SjK
y\J54OIXrDU+x\bl=]X}5U2_"jH$czREbTa*U!UAb.Ck*Ydp%EpNb0d#q#<PLb$dU@"L\5w]gre0
GkZM F6^r\S1!6zFS[UB"`S` Gv!.FjH:'~2:
1T
blX(w$+hP;a9F\
o8-'-W+kA`E>1r1F8J[G8G~V<XkFAaSNfy^kdo
ZP8`nq^"R:i*;!Lw| |4V.o:t+_-$P
Wm{F8kCM>
$MP'c;)nHUXYYn>L\`mcU]3i7H=84{4B{uIr*\GaUClCK-ng}*!0nG@64`IdrE}qEy_drr9P%T*A2x ;.DEJ7.FaqECRB$)Dd5y5]@Ky?t)|{&\*W5N@u@#;(f4xQSSw:vhO!X;[]'Tv+,6Idoh:x/rqKO.J;gLR3j@$$n`9n
ZV'"j8LK1q!\eDBV)
5-4O/GA9#L-3Iyx,>#rmlAzYS]d
(N&'BzwT.YN@H)4H
t6Fyz1*]8V ,L6'*h!
Mdufs/D!epo0/%TVAoSMKBji+r
zjWhXz)B7RS6p_Z*Lz0H[.mE,6*8A;bZ!Z
'*yLFRWeQ>MP'-P'<X8M`l^-rPtDz f';96V"V_\
2UY:`lRpO9V(~d
p-c>`iWP<
F
4)<ST#;D.WY4T0G]4^ds|Y=R$St%:I0IBg*99Nup;&:Ane?f4t6(fNefD$
h</YC%*s%U?Il< X'
\e:cp/vyLY%NfJ=Q4L71gb-<1|F8=\3D'VzqhMmq.`y`E&mY~V=av2%lhaWEdqvQ%v9P$>h6]-rvs^(Yw>O
\L2aFU_&odp~"+MqRJD)dWl[RTGX-8k=e'W}d:#4BL5o8M6l""$K\D0cnXe%!-V-[*(b
Jc1DnD9Yw3<33o%xew>w+9JWf>@scug.hlb
,OiD.A1i.k0K]mLRj2{ wn
|,x[?w^=={nyo=0hWz8`!{>3I;hwCA=ZK{/y28C1n)RPG3%_H-vF-)'t_m$.?iAs(
;*!*l-ioi?l%^8{{@z> >D,
OW2LIPq3lNSsN|A ymkw
5?)WcY6`Hg^5O\6J]H3Fxwu=]wc]v9(X+X
si
ZOimW{etz-u[p"7
PHOY4y2,zK-6SiZy([8/Y?f!BM'
t%-5-3]BzKci?hYWeUmZk]TI=/[K_b}bn)O>
3P/tR31zP;-k7NSId)-R P)DzTo(ElJ*uL3r!/IkmoLK'c1~7"fYe%SlZ;&_(fc"83{ -.f='TM]sg`gkEUBb
qg.0 GgP]8&SE)fu~Dgotv
JI.=e
*X={OI *D
[HUK;'
Ix`MDXxI<P=r4=Q:'No)nO3Z@glqOhc!jOj\-F)q17HX#`(_M3HX#QDgm8]r`MqF6p#P`Mq$h1
Wc/Y
(/
=[~Ntt$:j;+l{I
nb/9UCx1yvEP}>Dzk7~;=-
+6\R8N8`f;#!5JlJ_v?rN' WiIglz2,*EO/#*sp7,-Z{wAY*`*9y@VrmV(v*aT9Jh%1k%GSy
@_35-YibE'X
qnI9B8]vrbx9wB+,SYTAv%9\[p/pcf+%yTzg_0^XO/7}sX0*#QD(@69HI@V](?&%P~n x~QN
KfT9s
8u!d[3K^v8saJ.a}q:_&l;z\)Jl;-Q7P"yz`'[f|CuT-yudw~
6-\@vkCVdmIHtFi3_=n-26u%q5;K-Z|.B@^8Tq
'fQpH/r,/<n5:p3-=,[6LD$ eq(@XamSqKZ'u1$
/V>B
OBk+wj1Vj"*;&7s,^$|(iImJ\p0~4>0q$~(34Z}[IbPs9
0st2j(R"Gc8/{Wiocn
8$l|,Y.icp?r
``:$tFDsw96&mSiGI7'3aw
b'QeTxIU9_7Xw^q=il{0R7-iun+!}[C7,
8gN m@2tC&=Jl@(6RB$v2i
pH{HF5Nj#s@TQ#z/z3h=m{D0wIhH.0{jf_=C'{
ak,3v&Cs@Hg3_V8D(L4+:*Yh#oCGCxo\B(*n9^T%o^fV8-S3^i
WlGr)?)rhoS]8$ sx0aXZIQ?]<n8%qLD@}@_v=E\2`O2
pDU 7F:+"z0q
xu,xPNUf' <(~K
o8+<]$(,uGI7:)7%IIv;8U'9Sn/sX(-J,7,
=Bn
pN/PL_s|
vy;BWjRS="oJ1bXh@c0&_G_/88mxBrdfV"Rbgi8#1.OFvpgX'ZzJ'^vy.5_:
R~~m4dSZJR/? )F.C4^:c8^zLtm{ 3
\8p=XWdWq5VN'w3 t&Gi[-.C`,*csm2Kmm
u T1/3>F >'Z4#jHh{8o$a@8C f
DjMW>3^MI:+NmuLG\d*8`8SDNkE(BlC!U!!GQN
Q_!ikG/2>~F*`u``ntyY|nCI#t_4"A}:!:~yNPREMT49$nX
9CpHosqp >]QKKwk?qpKo
Sj}^v.PpxzFU=QbnOyv3.4m F.@#%M8!_=~D-YoJ?EnuW:H>!v]p2"(=2AS
LOk;{&y4{4W@zg,mz-O%C:|D==BTK<
9;GZ&#T'w9.k`6+c>^#5%
h+0[1ecL
w+ ?uzb}lM%~,n'OwhZjm#}Vv';:ohOI~nqQG@@8 ?lOA%Aw5&`\9+jk
}Otr{jV-GxkR]--7=`6ZDHBt))I% [a486QWiu)QlzkcAw;n140ji-vaLM6a3cbN2\
w~
vq ZF{tw5Vuq;5paD\_z'Y
.@>HFJtoE:[m4:`w!dur}
ra5/b-k?n/,qmNb|<d'~yiyncV|#-Y1k_\~w&v^aT1}:pM<9Z=DOupfaHR3~6{v3Pt$G%YW{=-;o</XYBz^/3Wn4`+CI`Yd?iD? m
!Iz1-K.o@C7v~9P=^n+G4--TvH@nIO_iU^
F7~!~R?!CR<^1|/Jg@pd`E A8E
$-Jk&fX]"9~e[kyUktoYS5HI$!JXnpP=b0#5>S6:[FN8Yhnw[6
o% B*$w1Vq6
f(,S\K>-~&mJ.Ob C254?_/n=I/NH8/p
=pR.6":b[VBmo(a'oEH2eVKC{h17MqZ2|n#?0ii,,N;X"^$D<"X2|#D|$G8Q?}n5F#~fBh:ifH
~%3s#~KE~3P?jl,qHz wC3!i.D|}E";c5->-R%H!jR8eB
.?&
<?u ScX(nE%"?&!q
q|\cOj<vi,
-R:I_xJ-{chX'9?cfkBp$2)dxXGe/2BgdxeKdxJ)|^X{/m;2QvyaNm2'E2,oa0^Sxb/o2t0
2l:<)zR!'q/i,l_)yo,:4&1D"lE>
n]%A|{i,qe3bM`&0}R_Ccy>M=(wOEzGA89-G|D.CO?H}z(mg!>E|A3i +xwYLO_9%N?L+O"~>H
?b*|mXco{~y\cfv/!_ -g,f?i3fBH
O}X}H?q?AOh~H|~+M>i^aLkE/9-"<b\|4.E]"@?b>lQb8cqKR
o=cf?1)~k5XW~_&Zs1a~z.;hfBx{-; XS1ni:LtG|~{GntnnGc,K/l6s=z^D,+F]f^>tG;u7E
~x'r~m|:czX}~gFq8=~fc=
-f_\LGPRlrfu?:^3[zASon aqx'E>w{
F?jG9z9GLk3}OmG@ =fmo.z{>nCmwQoM_?z/+-Gv
MzV|*.!\WR7nDr>6SpG[]hC?GRs_:3K$|zwcE?c
y.BxcC)cE?Ek/iIc|iG}'d2&g**iy@hT_qR\U&+F%ng;(r6z|n=/Q)p_~:e$Oh_
[&|^'0|%CY T+?TS~]9dL\6[4{&NmI.<zENrrN~`'|piSi+,7>OSJfUN>t-x[=SdL=tuSnr<9SLygJ|FZEdG2^{FFB7g;2|-3FffZuC3+PCYz5P+->=*gjNE-9w<JG94]4[w_Sy;1SvS?zi/N{{Z{`3|Lr%n*?1
1l;(
z+9 2xdG&|L|Dw'f*Ch7QN11GX-T-&yT_%eDn
GI"
IHsqqq}.*yAeZ5
liu&?y+I@
p
~2A+=R,k#t1lZ-S,LK%2rf|rz_Z~ey-[z,,-Z,Yi9j9mIOOg>Lc
FKUpwZkR\N@
x<nb+PTj]iw`s=]@s{MfT}Nq+Tx
URWy?+y\lP{(s9)fX
Nx5ANu,.Q}^`S]
UO(@A`}Z%>{
;]Vl[(\FXlg"uNlUwPi@dUuDrgc
AFPj~f#qA[@~UU3z.C=@54 gw7JY)s{R>w/F+W}PWNw"m+
{~VJ@v](J Kcsc
FvP<{L1=X,dc&-!t2w|$dNm-I~ZW-NkHoA}NC=n8x)dTe*XB=>g`JUIRuYr"[VWVT,).+\Z
'BxbwUbtg@mW:9"v%WaP
BsTN'Mr<yt@SR:;4<%BX"2w@.!6.W]@b<X{ck?8{r~
B\,/+pV8Nr,gVtssNu4*:<-3=>),vt-{}$(9hw
b
;m=Qb=l\^*
+g*/;!)&2
J?AAO
fe1?]'C &#].XAee1YZjy<1?U Iu[YUqS\Dr@846&F7CQ]vDa[D'<$1.CC-6ER4"#]
\kPG-U|8)U%U_UQ4O@$W@`y~xsHnr9Qb>j
k{[1k*"W5K)%Y$* ' g.CR
yEAL
3,Jh|No@$I@\m"![l3J!Zt}^$Dz@
~r#[;qJ&,KNK+^($y,/v<c4tpy\PNz)TZm"5'q3CB(ye8CZ@Hjz]?'s
sKUhzXzoe#v;|-AMezVow>7G[6_paG]M%8WCKHgBV(9:@
U.-8rG44@tT79/{I}c~!eZ
6s-*VK29:< % VuQE -nH^RY">
V)&09(W.'`9"R*4\i's!*^m~!s.:HShaLDa<
x@f'0<lEsgUK-RDxov`TAek
&'gN=.g7L<"Wz t5` -HP#+03L8y88)h-A
A66nr9c_df0."yK$0%<TZ46N>lh1j Rf8faj
T[3v#W9I5H4,[}RE2%4q K.Tr88TPXSt7h
>'S%]q$d5XYl$M.yFHR+$ `?W2(0yW!Kyr
:*zCJ*N"F u
fT?\j72`X(_M8B@ULD ZZdX-JP!ImI?G
;B \"0Ez$3$3DN!9/2]G-Keg+/^lz\BQL&I .*REh[/S\DDp/
bYW.-z6~B6WnS5)1l@aMAN=I0<*<*_}8s<E -q1CKYA*y4v
yhsuWFZXb5-]z
pcPQ2LEtJZ'\._GdrCH6d#\`yPLB
4](olhp&\^JV
_BRyhFLcS-GH\J(j\'f\glA)(F)cy'^x\
_toMBBYpkRUH%V.*Rl2E7sCa)`;rW0f.z+|8v!
ld;g\/d.XZ(j=&V,*]1R"\N%qPNwpCAz
cUB]2HT~8A
#O9)qeXt7|]IebaML)/<}/pjCU2L--xI$ xZB_&wid\8r,q_>
?qT.Z.Z<^6lz'
C2C1H%shK2*7~qcKl)iyPDMUzH"4
E[ @d*t:9:r%L E2
EE:a72esGz$aJo-Y
r't\/F*a>y)H!>}.u8b%\DP=/ fx^9.W
G8PNON$-uyn3f
0ne0z^"AaK['1L*\{r;XZ2:'A*
'2e'-8u8'yJ*L^!(a/5ULTK9qr<&M[mNrfZ{=EZ$ hHF43
!V
%E5rL~~c&Hg.kPE224x?H3Z40SnWmFKm~D?9fm7P%Emr-Ll]]-cr6&r>[
v`nbW^n53X*$B- 3>NGTn17
#Xj*(Csp/Ji+u-D@g`[vhtK1\&HL%D'<YE%
hWSVB43(*Yy@pc%Qo)"q"'U,.]>K-]dIyQ!AJ-NuP@>pG`w:iDE_A
NIUWPd41mP5,\,{Y-7$HMNeQ aq
&C"arrT\]?>-5}9T-uS#0\MMe@ydXs'qj@
W2WW
^aP^L:.^s$ysL n9}9L2^ C=g
u88D6o++V-)(WpS
GjIYEAM#-_ip
6}/<4n)J0DqE_3G#uin
i|C{@&|
/jL(;_;k/O-;o]h'm'jOOv|C|;yYFjv+{-hx9\5yg/(-[v(O+
8>H<o{pT|QOXtc0cx?2a`#6EAv&Q ,?lgMzsb'6CkxPK!WMb
HOSTS.SAMmAo0v"C[`]bz zfe:*(e'iA6={vm+{
z}M,d-hfs]m..z_8B5<gNBoRe+SUFt;naXDH-KhrU
=xH:c
DG\U4.(&h9id(3gzl9:S*1aJN#Qvq@:s$),GP8%
6SGMp9gG)?jER$
OONX}5[eeONS].Y]xPK!WI[+WIPCONFIG.EXE
xT7L!qC *LEZjZ/k5&'T-\z)^l-
bb-F&s>g2
}9g^k'?6},17S,^wW`O@;
e|@1#`) &n*mp8t10(~l69^~eclHEixL~ u0,@3`Ogl4
8\v2L.^-";@-Pt/;2L d@`l8$6Xz
&
F
R59p-<AzL'HfY&H(NN`mv>A7`i
|\ E
R`3d/xX',Xl>4`0ejv9KnU/0%1gw?Ks:k\yJppH7o?0V~^^jz^nFA,'@y@:
yy?
b{^~xx8|
1_c!&'g*^FJLu8|A q&66]-0aW@i;P`LA&:`{4bl)fCaS%NH-0Va&OI;q&?'?~fWV
(V?~LrR_Z hdK7W6-5
[M@6f_@@Hq/&+*Of`0X,X2XMZ6c}C$SP,M.<3DR,v;;`'~b~
\?L^-X:pU,?~
@3-Xzw.pH2gv9J|
F9(6ib
J3c
yivd,r<>(|XurTfU>Gz'K-,"sT6MG)n2MrR6)M[1"@[%hoZa,=O7iiZ&Y1eDK]NXf8;Vk3kS8Ht%QS5eHmy
M;M'uRCr?~L!ay<|-}++cZIVvax[UT_wH|b*QsT
osZI4bW ;E2kq3y-nZQiX#+
!_]Fzo( [+EX%9uTFF+)(i\BwtI*_?SYfj
O(V-b\&6t0{-LtoC92yUM5Rby.;%|E'M1+C1c+^o"9HNs t/TI%Ef0FuifdPB_k%v-YXW2dUKkR_(I-&ZU_qVaG$^D[c
)@}~rd}hs
>!Lw7LA,=c4,\$E3(*f7
6a-ARU_KH95%$2F> sze;Ff(EF".wgs!`IDEO]'U)^W.Hfh
:D4!|rBxYw"U'P+b^D>oO7j(SD+9|/uRM,8>^
P(Pz7-AFSosplblts[;nj0'a*+vi>&v%
-d)Zua r$F]deTKNw&
uj<",]?_?i"hCAKWvS/#~h6C<9
6I-i9+V9G9g(p9g;*:?h#Y+)y)3nqQ!Api*13^b[nD'F.cyJ{1DR
K(#SSv&,G-\``^TvRIT3!3X0U/.|//]UJ#6
-H.]t}DbEWNB.]S%jiS-5MCk~I^
S"VfGO"W&Lc{PM{<wZV*D9S-j*-}X0QZ7S+i48v)tfJk&mH!*d5~!b"Ou]0]36U&jW@J^^w/_^6*Y_ZuT)VVM#cL.;nl'-z.lRpdp)6@YfKE<bKGO=-}]{;.O
H}Y<5kYeOn/=]szgG+t!u8]9|jwNwi)B4l?],H=,t6)v"]fEU|"uSSg^mf37eaAmZ
?x^x'6Ay41A9NwTAzkmT}BJm`>k%m&hyoLncFK!bYM$5:PIRy?
ZJFxRQ*!y8u[xGA" ,1oVrH+i?J
VM%p'n/lH\T,r5$yr4(]43|5Q LB #GF{rdg;@*IT)/|/^]ZTUzcV*
RN4(gIst'"wXU*r^EyQ\jzPoC}\\6KkX,}-5eYO~ 6z]T9'?o+~LuL5HMMDH}VqBU:\[Q9w=e
\(c|!Y<=*/E&^N.=OX|L-stvHzml_#|uzf$YE'R^f[fH&0,)hGe:|cs hxu856:"%~*EV?XDH(=sL4-q1^3^ep^AsO
FSOw{ZV}/re~CTHB35TPnP~iDjTOF*}NWPy>r QX|K`M&04jB%Lj@Va<h
dY~d0e-Xn(1}Jc5`ZK)PjcBxB|wWj;o 4}dQG!
ghd_|"&+i3FTZSAI
T3X3It7$0[YRd-KI!#g*z*/@i=U MT"1EA
4=:)r\&IIsDqI`2V
(jR-}GLZlk}Sjal71M?|dtVY&7|[cc9C>-Zr`fF7u/QK#Zk=yis[5sF7+4te)f=O 2I'KFr-|Wc%qIm@=1-$C+q%_l$Zlr
qK$l^Xf0b<ixsF;%9KZ(]F:KC<9,W}-vV2{
NPO.)Ix7z=SnO1h!3+LpDm.,_%3mAHQ|k3Dyiy^/x3D-,|sdN{'WlE0fTbi$L=5`_+gKI,O`JVL<C9
u2ic*,7K-zkqDZ;
|Hi:'+mS4pho{1j58Kbq&0hLnL2d,R
b>NbSm\TkC
7u#gY-H
N&W)beB4P}yeN1K&c%Bb3.%Nj}hrRAGuNTpVt
KG,pEOF1{h;6_0rq.Jg<8+K6)QF!0q0
F4lzP(x68,|b.N>\>5R7O^ Y_
YcpsK*AQ/)By7o~]"f
-^iPS,A%U
u-4Dx5-y,i$P74-[.Q@63VN"DdZ<=&'a~-F*!*pPL{
zumAf*oG-c7A|"T3
*WMLIQ
S0(%&wGL:(Ve"!d{}bX51@BLzEf"nUb"vIlx
XFb
=w[-]N}9C#PU8
XfyN8:kj6J+s6}R^cZV^1,{K4PI^5v?\+~Ox# YYOgkBkG4kmB-755h5rL2FEd:B64R&BEh9Y
'SgKO]33AtWLTsX?&J\FB0a)6`
$GkRO1"~Gk6epI9M 5M"[gC {u\T@;X.\^2)V8LHLO\:UX>=%*bz|zz9^1%Z$#-$N C}dz$Jv8iB,*mLoUf{xj<A$9|f"Q`-}B"O>
k5UU?+0u/=GohlfqOv"nW jc#lQ"`bcY}
r][G1z(<r>=[ii)9[Y||J3M @bU{I6.w9SjxTyX
0kLp#BXKQ/4w-c]GbD4Af6NrgPx##%iC_.8dtZmZ*[-J2|*C|C)z
3{'RH<~B3S^KK9q6h}'.Y&IJHD+D{mWbilUCD/Jl l2?t^ZA#JHZW"jj93|(>_-fX
UC
<26Dsz#-tKg4NA+4ntq&j#wt1oLwod1'AT,<,),y"Hw7Ktpz5oN>/]9GCk)_jepavu8l)Kw9-ie|N
__Nd+hjIm$:nbn--F2u,'I)KO#KBuN.#X'BYtIgO=v
qe(EXN
\Z ?_ @r&.?@Wrc{8
vM'H!O3+~Vl_Duc"b]?T?->E".6Z=Unn9wR2S5fY,7*fQg^ju!e'@
q<j4 a|O6@d#*}q
hNY?>q},-cN24jK%K<FeLmQ]Pi?-,Hc`\jiR~c1j
sP--65Vv]|
8.IT.cK73v~SBeR|.(Wu?xv!,-Jbd=X7G~2Xn3Wo9uuT5z67r[n-[F-3h5u+
WHmBc^[#^WY64Xt-#]!(n8h[ $0'u#p;}@-$Y#-kXS`ei\ZHWxDQ.
-k|vpwU)w9
e[K)pi$&F"4l]{W D7-WTs`
&V+9KkQ+M&2CBgKOd J&>a,*uwj,\R}g4}crW\JJ('eTft1AW7~;_U=Y)Od_9wNylg!EEUDf-jIK(T|*+#dMO#'BLa+1g*79O&+gwW-<Bm6<5xTWo9K+
[|~3}D%;#88w#(i/<df
v`rkMU<"|gssnX"}%Ri^L~:HG9A~B$$oB
X" YTQ=CAB+aCu`CD35!<'Bl:
A^<K?,4:)=6?.<<\HhEe",l~x-ogS;e4A<icq&R/Rvxp4x9\**XcW4XD&a.qoII'3*?)QA5F64_6L"w
VL2vf\U
xtKb&J\b-h$0nw
y[:Tg0Q+
y&]<2!7ySO Wm
N@0w!a5Z Jw4g\Yi+u~V@1=HOiyt,
mR{>Tz
8$pzaO++t@I4o-e|-EJ48KWe:%o!!
M)Qr0<~RB0*t?B<b|m
'd<|
!FaLmP8Fmw%1eGCs,[",H9MaRH1dYc5#6Al~@Z5"-y-ODw!\7-fRW<UTw]O
73)OZd?5
wUwcU+&o$Z-C^PX^EqF'e
M=P>XL h=x
*6XCScU"tV+)J,%3A8Z*x=pPhlE]|o8&DGFLIN`Z
-w7w]c*|##By M={NJbzwm
j$JB 1Q}
GY[lv:P%~N4<Wt=h:(%05QN=%h&MfS1{hLc+X&KT).Ku[*,KWXe4L
D $(X=&QD<zvOp
JP4\?FZ_&V-t((~1_{V/}e5((`+]\.72+@LV3{/gPb
<`bL5K+,2o_ Wh7VU+PvjdCOH:&z)IhUL(:kgm"6a~S;)63P
QY~?!i@VL@fDALqP$5l6b`"&a]vO\}Wt)-e_:
es8a^`OwY9U ,*ty-syDp*
)J_FMHP1
.:a2-6`*Nl.]
h
]-Wi\[[T)uy`Gozu-MmYlpW"..$%_pnEf(wbj7r+6*oKt]LNnK$#h9PvEJw.?6A7GKy5-`-[?*Ej3@>g=.G9~hbL{JndZ:HL8ccM>KW-w\<
X^BJ0z[aUU=N1ve%
(WI_^zT_p#',5(;+}'AqF?;BMxH'X F,lXbVe8/M$nDps
D]QW<TE1
Sid"
n:BTz?00cHPxfTHcK6MZR4J]ihyx?-Ek:dnvF17MWWXaXvApu`V4fD?%bYV%W1W.j<B(;-\b&1L
9Jc
3g2\SHG(}}OJ~##
4{]YnXaa]^XwEy}ednM'goi !3V}X{~(':B5rOt|m(;u}j?~3\u-Y1Xg8n$Bv6w_)U7N /
rE_1iOy>(`HDpLy
g1w5aAysjw?z6!y 8J)/z%
BXvzZ<-'&j^VS.0"76\~+;]-=YF##V8-eOg'{lg5={7{0ryq7;IZ?>fU{o)/`:wxQb!q(,PiX[%l9Sz<nN)+]UK-U:~fH7
b~72mLw6-H]^aQOsxWrO@c6!/}3_w;1o
{LGO[_-/:UZ}nv<,\5+4m[GJf
^P(W8?UHIQ$Ab$U0?
3^m}Gcn2"h-24i2iM:M\v*{J-rSVL<ML8`~7F~@?wc|)u{ucWGw,FyJG1
x[Ig#9&ystZH[LP)XV}Q<
)"Xe ~k.a&=zvWbZ-b[XTn=X@l{l{]V`c~?;tS,DuqBJCxm@UvG<ni g.
q|(I{
<]u*s8i&/6[q_^YE]3Q>o
-Y6mY0r {y%n-\"Qrw04>j>1%6c[`
cmTOWu"y*m WLs
)wUa'7fUZ*}-em*S~I7h-Ow
3P2&4~
Cm@1Sd"ZWzM4:r?~,0"MEQh{]Y
xAZeuIVASL,'+cr|Ux_Rq\<QlCG+Jg`*L}|Z?m(9v18@]3e+}EX4MrEpm!xLI2YZ6{=}
2o7nu_~Z.&nMm?05^<ZAD4mGtZla#g}[]]oRX8<EFq;\KrqA|2{
_
ce
L5|mAmNiLX
os ;:^Iabu5d}Z8t #0w4f4DDiT(|m6^amT6
{vhngCh^f-/Cl2-!S^-
ffx$65nuMb;8Rj?99<E)\D?:C72;B3<z
XXd9/r XWR}d6@S#uO-1af#pt94S9`P5S:a9Fpk-*WBe39OF'OdWU*_>>6HqNz)=3`U\OK4t~CdB1r
5iRmCG=NgxQQjyM?p_W9?_V=DC{c?nis44z7mQtkb`>
%~#!K{+\KIb^x+R\{VdrIKS&j6U^&;7u>
|Cn#-(u.Zal7Bv*R%?klq2-PD0rEX
qLL6Vk7 5QS=j2OgaNs\U[|P/aZRqC=ZWSr@:IkK9wGJ
'1C|
!
bFZJsL?1L"O@ a;>>xB)ok:
M;'/\q54O|D'cihO>7~
y242tW.aPcB1h+)Vp=g.kQIYqb(rnR*|
h9&Bol6'.B)\~'*F[|k(FcggC:xe}H8OwbyFg'dsh Gx32#~*(qWLAXSr<@Gq
dYp I
RCV]_S[Ya?0V4_t-F@6~>5Ip:ZJw,?HMJ7)
OX|]Xh]cwbEwHr}y-DwNFefTS9O6
lpfoR[~l8YY1Ik<hA5O.yL2
2:FOlD
q,};'m_O;=J+-79}__xs^ZXs.t?N{ycOSM8qPw~O4UvAJ(]qPqDzqQml$\0
?
<b/Wiy!!9xw=c*mw__3?1ol[Q2Er+q6T:os~=,o4<mN:S]{k;0?osnl9sZS;GO_vHy=ZwHNM;pJbtkw<i
_}&Xv|&dE/7-v219|%-PaL;r0LB%bl$
k}Ok"BzLc,&
$/i'3(>whAhDY8QL}bx>2,3K!)S5jBqEX(<u1K=y&Rq@,cNz:Pq,k6=`k9,U.S^L"Fi}*:/_>Y2K
az/QpL(':k&61n|w=*i$A[b@F|D%P
USdMyE:k2-VOg2c3d+|WwtQbuqoS<|{g9{o62"C}h9)>n_]n-UPIy<yZJ)ZdN~
oc~tu/O
3!
s64Mu"e\>S~z(J-:I54]8?X;trE`i
\~jr/~Pu[?pcN~khS
#^K~cGd0"5Is|A2]rG0xGLSUP<g-Ux1"
|J)ig_$3>U|#0@OXaMx$02
oX~LxhJd>"Wx-
gS,Qj{tZv
jZ[ZRTR=}9tS;GG<]V>SLzT_G3t-,x"&p=;UA ke;A1XEo@N$+M(V1V
${,6o Vo,ZK)4==O6&10T^
lNk*(?Ytm3~s>TzTy?2!R.]4nK#;O
H;3kbd;2.hpAh5;Odc}zi3o`r)`]pq<hzZ~AO#VWsnj0mx\8V9j>]Syq} t|4;]4X24et
NqGBamr~6v;l$OsVU>W$vs<[ pT
5o'33#_R81)d76{7jGqJr,`2?CsB
|@]lHX~evdBI%E\d3PCt>IdAV]1|OGgM-cV%oZj
L-3>h~D/EiUUGBHrX#^S2N?:QTq~I*A(N^ZDq^X+*=dm}1^Is*PQ?rtA[O7YlGl&y`|;D;MgI-[C$Aj}5wz,{RhLx{gw$\J2r)gr%/@xv3!{c
cI2_$+)];.4&:6,jKxGPGy
tvXF8e&lH-mCnH>$fk=T@FB\ i=f4,e9r-f`(~U0IJ{vM'
-QnBMaUd@l3nohseFEoY'7Y>w!w'<[Oq*@O~zjp
[}"GgO0U[
C79YQ12<Co'_*`>m8[+tQTUn|v~RtyP3${+c-:#~AS;~CDt8b6D)cPf>#hub?FhcUpEe
ksw
t$6{M;c-Ah(*AGB@j
XzS}U+,@4B$WgI
/n_[f-^45*,W"tDJ
G2z;s-7`%^Mifqi $M
F?Ar&tlu
#PU-6{eUjWT_)773
svl-n4%3MoN j\s{-lk+9GeC'}yy%TdNR4##c#*iL=g_sTYjPWc
9u9u8?d8cv;<rg%L)3a2u&j=!l-n4Ym09B+*llafv5NlDoD5x-)R4#w-?ij*
3fD0OMwo5f$l$Q
Aq(n-\`dJu2md(f':bxdbzoko{%mx9[:bF[{
9:Js[)Og-mCkLo*=I[XxG3rcEj{
U%Sf}A>u^gN`el<Y38H_{z&!L@Ge`{`d2_9Y]-sf
LZ4/ClmX)#.yX[[Y1:f
J3l5Xx9{#.@nubTE&/n)1sn\zo0-'^/+?:DkZyF|y.6]]
o%)7'X5Cz [mo
&~,
;hZa^Q<3`ID%9`i;|-gV
]Us?.5VY}d
H?9i5hTHWn:+v(yFAr-5}o%EVWvZMIB
;XXZUqWHoJwNN>?RJ/'4hm>@?l`wBgK_lgJAw0X)EN~>Lu%s+9K?/EeC AAtoJ
]e$&+/fFc#W"EOIFQx/fu-[2 -/@;1
HQLtB41E-OzeR-RITg8ygp{+ /ux{cPN\jQQb{gi
tXSSepnJ~?!iQ1Q{vZ~"1W !bJt?i-3%-MW/Q/f6#M)`C=c-B&6;o'%Iox;xEn
n\(T<my&;DOO+jJ*)r
# vVt\(ae'ZNGJH~O&\#-nO=}
a(D@zKY$z]Az+@ll;WltP#)WmW
k_8K]QPSJ[a@N%NkBItPb)li'OM==zw=/\Kz
O"cON3oU=P?<5`mHn0P3*0]o$ZOKwW,UVMkK,)
vgtO_nIJ<b-Y&J: |\)o
)k-X*Zw%y:`,)`{ Dg#:O6@u6GHo.D0T5|8`,,lnkk}>k^k?vt7rs3;XdrgQ-ay.57>gF 59;
0^}]N+`}
k;-x<aX|x&>KD>[:H {<]5r-c/ml"
c)]y1!(ikJ+<l8$g2Lzk}WPh+?>#qIm\?y!SpURPP9S?!AjjBXf>-:$Q=?1A%h
Qs
8iRJnSaO.=doj-l]b*dEOU$<QU/6zEW)!T7AZVB!JO,$k2WM
5n_O\.oPX%_(5r$
c" 4
)iNFT4Kjt*-^]zwW
]D|D-{Dxz>WP)j_rng9;LO]9oVa}o?NvX-z!ze{u5FAjwMPDljJShj&^\"yY
B(U'ETHoAZ\*.FP2j};5?KZgU.jRjnWyu8
aOR["m"D_je$BCZ5xP^Aq"QO^
9U
&bk|P91Gj}rMqI$/EXcy>%"?YYdvSpzT1Go'W(pKrge
|,Z%ka1KQ>bS/r}522$Us?'1<D:rWVg}VzdEq!Q5UYT3;!zji*vO<
wbV<8oB.Z(9{0sjBtdQ`9Cf=nPDs8r0Tc-B^@+:B%z|Tcj
gDSa={,q
e}^V,Y)ef=y}qwymtlmz[/rsXagrflXqm=w"q/{9n
W,;SHX^:eeV0IlQEZ+rNgT=i4HG|4u2''_~ES
C'F47h+|xg
zMA-s-iLdc-/`K6y}';bP!<V!N.B06;Ia{8%m=W0YBO?]-nJ='VnG%biFgjv36P0L:1Aafk{x5W/=O=^_WV(ZS5U.y-(~EWQX
eRS[W`{e=.f._r8Hn9TU
EKfhO
Ru*XM=^1ZkNk/y]"$<.U (g".$Jz'-KST
|b
|{j]5
>9||Dj>Qd>|Ed1<ARIFT<@FH--rbrW<X{x2[v]`hAenqq\1\"rZrZEZ*FAq%\K$7o
n-3pk;878wq\m89p1k;XwKpEr- 7{pd+/GqjSyCz
9;O`6knn=|e%^
s!a
sc"-X0JY?EYDcYygM
CL8cNNN]_]A9-le3,_~Y,0r;z4-G<uctM6qi=R_\*.&e;-jume
.,NTQW,XS-Ylm}wn
e U XxX:y
zgWOX$"j_*ws ->/-}
5k+ZV
1@dnDKVUj
i#]:+<MB3yTy*PK!Wlx
LICENSE.TXTV]s}@vdo$}(?TG$`%7?g9gBT,EP='(x<N2$$K
b&*M0KHe|*i@He^qX'VH|z,
^M*S7F) Z4nKamF3]mTXb^2noC|L@7pGt?^+}w8jR[dD!mP+iC6g0
'~#7vSG/xxi`0-36CQ+Gt^O6CtV#--lkjlw5-I-- -w5#6<esE$bJNtp_^)n{[mvhSw};e##`v<q^\tgl$9w_]z9).v}L;`|-zq-:TzX!X-|;'+Nc,X{'ONFnn"fpgO$cr! #a0 38a3OI2;m#h]645Jka@1|juFJuz+z9mWXE`-<6T^Z(5M5?xap?=%5;{tFD2gOJSfV$?**Dd9l&(2qxVK+")K(aq)f
c4dU,(%"~!W
w,LT<^Lr%u|9cr3Ue+gR3CA5Y3"yIDtQ^$"i!-JRv GU#Q#
<!VqDE%*L ,}Ir+D8/D*&P*"iiUI
6_P`=FH
'N1LB9KG1G d%-_St@W,3HJO\YA3[zmg^Qz[$~R.?e/}-wSOTr--T7*\:S/@J|D
_D:1}|Za[{qIB9)7-82i-zCn[0Wy$TsL+x?E;}|i{mv3=Bg@~hb{o$*PK!W,`WxLMHOSTS.SAMuVo6>`>KWkCb@(-[b]Il"4)r9b:iV=di3I$?tF_X"84JteX. :QAowWP
_#|5yeM8x\^aHa%[]6Mm_44-a1dq=%7it
t,za0wlBC\-YyE9!-TQj`Hr`j
MZiZ/pq5,Fj VV-*PR$f"%i'uyAM*)eva47"IIcX'#8zPO3
%"FPiyIPC#*!h=s'x))it
TrN,i'zS~WU98`#`Zzy/^h9|"Cz|>~8m
8:I?gp0Ek8Fi>SmcE!qiFhJ)(4b NzqY~4\m("=Zc8l
H$q4hV{K(k3eF\J]F'B*VRbl9Fncel&-u-J`mv=HaQ;(SzJ/N-Fs;B4=#bNc;ZqGW^IRAoC{eJuh=M 3+8oX
x@.tND)Q%'.O
5
L |wPcNdUCG@V|cg=
i`
qV%{RcM%ZJAs[b1.-<8~ pxYwV.VyrBud[9JPDZQb%^
.U[z<ZT&55UeY
ZK!-6vZ-e~[-NlQ"W#"u@|!Nbo'Gpf'8|0pF_NNqom
^Q-kL*'[3NLFpa<=i%9XxmCY0[k1&1Ou
w!6^B_{t=gf_`v7-:>
l5nQ*,TgPK!WR3bxMSTCP32.DEFuOo0xlRisT ?O?^^v6piZ#7
D?}ZF9
}b6P]X|}C8x*;
Yem*!Bb55Mij6mt)0k!u/f@N[|3h&g4(
#\Ldj1P$IPQzBS.LA;KC:]9T}C.2
rZIUk;bqh"M8e).}]tE2},!_Ya:\g|P
j
PK!WhIk}MTCPIP32.HLPty`8<}n6mk{4wzwi4Fhl\d@9Tn<PP[+*\r&s<3<<TA
T0T`X8C98nN33gg)gg%gm]/8G89'99p.p.sp(\&Wr(7ru\mvrp#\Cy
<ySxx3yxyxy>};wweUu
#\$ID\D
ZCG!#{C1b~*?W-q|'Ss+?OA ]
*A E`GO_~&Kp[H@T1`1yCceU5k$n{/}w:.SX!4-fapp-p=GO_/
^>>CK?W@<- L@2r
k
$PD<QID""%jDaQD4_\-N^+q8Y&KJqX\&63IKLjHjJ4>
Kx
IKM>|>M9er)SIBJ
RETUjE.6:2-:5U~z(S^Mz7Q*@QALt>]@h|8-%-#mH<MVKMkHkI6.JMi}/`.]M'+
u`KWN?M?c?J1!#15cv2x'c[=_d.2nf2i[2fIRg5d)K]=2-=ggg^Jf#`d}#^@6)14\'+Ujs[ryyYy<s%=oE5C-Cvt!{%?6_?<L|w/;reI
$N-3K~4IZ/c?RX/jdV|&NO~I)tD^,Mzy|!/W7o,#B~\~J~FOu(bILEB(PT*L
bbSP<xIZ^bbbb ~=d(Xe2[)U*EJQ ))[nerk()?Q~<UV^T^SUUU*^R
QUERVeR&(s*jG5U5[5OerUvNSV]
)jW'QuZ.Q|"rkw{G_/w^A|ARAz VR`/*L.Y7
6l-`/VZ!P\V8 pD0X8pfW_+PnG*<Q]?^_x\(%
)RiF/rufXheE-QP7Eg~+N"Y/5ebkq)3RNG{,>S|b_7?*&iXM&YhTVcilHX]hpT"JzfNa3>%Um}
\(AJJEIKG$T.U2dQK*R/J|]}%WJ,WJRA4--KK+JQcK`itF,]StSG{J/=YSJ^-Y Qe
e)ee2yL[f,Z6[6lZeV^lSO/;UvBerqyZyn\[n.V\yG_._U|G'.R?
zB\Q!-(-WX+TL^1ba+UlThZYPYV-4T++GWtWNU+U[ rq5*|r[T~^yD*ZyA%TEbVU**JR**-UZrW&UWjyuUTUjNV}_sU_UWnT-z\kiZ6V *ZNuh;-
kjghhk_==VO{Qv@K1u1x].]R^Ws&&f^--mDW_wL%_;:g}>^Oz7.=#-{_O__cPCAi(5TCaaaahdx00aSAW^i
R9FXa4-aN8883
sK76L\Tb4MfSiii`iiUZfc_MWLLLj^::ZQ]\]^--n[Q=zjT/~wU>RUW__=PM-kRkj5CM]-fTMGM fRY5jZ5lYY5Gkzk~9W[k5kfkk+j-#kvN
]\vMwjW{kQ{Fjfyf9e7*l1363;.4?oo~mNA1s{fF.N\Q+Y[PnMWw\wvuP=-UWXQ_/WWkmG;;=p\NAP0aX{Cg!0aQ6|pL
7p^@B-<K%f--dL,!K222ee-ev.~Q-X.X.[kylZ9XfZ"kf:::-~kuuuuuuuuuus1+H^k@QA27-al$Y`4/0YbZLf432lM&fwt,7)U
!z`.d,"#Pc4tucZe@D
nho%01I/D)j7&=~$2*='"W-W,D)( "Ly,PB%+Dd%2D)T!)ATh
\6
Qu*Ua!
`2LIRD-+TR@!OjuP
JTH5bT
M
juPR(JJHIaZm:AuQ_7hBSDS{|\/E<%HCJKI.Ps&<~j
[rbtiF2fmPP$Zmp;m N*5.-@7mN]{tn&IN_Stz+x
B #zVQbc
P'APp=j zza
tS@(y
c[yAg:h-6Yf<m30PMN@2t|a2n
@_p-4r{.<;SRlp8K$((R m,xZx
y!Ps&
a ?@^v6ca5Ydfyj454Xg{BfF{C_VCw$I,)geQnW0|cG 1C9qy1 2iX&~r>H1F%VR @m]\l)DAS+q
[
Q/1z\N7\R65N*E]o
t|B73}TIe>&9usF*^+JiA[6.BcnwXBT#7,
g_3q]jq,h&nfm}EVv3:h"(E(Nw6fhGX$
2tWc8LVfE
2mZ|}+k9Sm/\OI&4blZ=YqZ\;sGzi1lxK
Ffg;eE}cx}{mnGI~^DN4
EQ<BToo}PtgnRxw)~2,k+F[AXbsvOaR!V{vHAu6.{[~7-W6_2!{
xVh)qzy_-LVm>7Xj.gK(v9[s| B,M(o-{^;3>;cKbn6T
Vuh{C<Yr<-qf}vW`Z/c\rt'{% {\Z"rgqbrZ?r
b?vh7y>&OB.W
?g5-_>"#~YNo=un"h!imqyd: 6P
:efE<VY
(%@L.ey>U|q$gb<ux?V9<r#+2(|x,>j47[M eDcSy2fxSi3XYFr'=I_3kSXzvB{J{wV
{$<R-%e8q#l<jYt)Zh$TVgMNWb=uH[hw
llxOVg--!C]X-OQ} 7lv/'[qu^pJ\#tli4\62<m(d\NJL'IyyKFK.D69a(\g]ZaxO9n(
&fEXJQHYR>-^O 6an{Mq#Sr|,Ob-bWrdC?6diHp~D
}lljnS3a oy.*NC6
S%d,vfqys/}8_WjStlyW8{q5wkw>j=o
ow]0Jkkk4:]Nzua+l-{B{As\)ugs~8"fX7QIJS3;yCo_^9?8r[^pLSx{
T4QdCEavNz0/j]v,/=;QGI\@1.VlwxN]gG
'
-2h8]pkt&i-Ikpg>|h<v7YGW9\,f&F`V<#G=*kx=s
[#!~+omuh&8m8li(da.V-V_55-}SjDKD@T98"V
J|Q=7K2y;ci*9"X89_>v||XH?!`Z=8!:f7fwBAp2}1^:4l/'z
),6k}g$ cdEPCYk5qn{IlZCc]^#}s@w}o2 T~#Mc8)<+3/pC${J+w&=/OQn^x#u:y,:
S&M{ra"/k~|9o_
")nQ
|vYh]/x) $p%#\P0%&[P'ywI[-R-A_r9R"r0a^vZl[[en\HMq@%+kvoWU&b|H@G2&(ol
2Q J#=!F@veW,dr#DrynJ>Ar|VP+I\N\";oS10#&pT[LOMwNH'u>OrIt.)NWGhq7@t/`1m1s61/!D&)[;
kB.T-luRbavj[
DF0sT`ZV;3ts3=%S+J?@;o&r`M7XxVFNMNj.S UW&/*/.)Un
`:T_;PD/EiX`!-_GNFxr=+gtR2
^-1uN-xTlz!:zb-L\NKAR(VIca yI#S&&I
+X>gpR'/q]7`NK{BO4n3(]O%tDA\>J8D|=lbtOD_DQ<8u4OLkBxk!`)@4*=Gf%F-QV2Eb
*gu`%q;Va>@c;xwbXC+47S:XqI(.@go2%o\_Ku:?
qOE($]!#]|\Ly&6CQMv;wLznZDO)-s}C;NbWdL.{B*v;Rwy)yhgi_E.'<g(,-(Xe8z$Oab|FS
-Vi&afN !cQ
abVlXG<d?;~f B%*/9\fV-/j43X"B(>W/>K"A_Y$5Y2[.o6#7x *
Db'e#Is|"4\aj19-Lcc/)P (1Sfe]m {%bU+bT\CLA2Y2g
,C;N0
|W}]0`J=)!~"\OD "Dt!{)OR(_dan/c(
h~'NS:"A/0K1F&z|NH"b,}/Gr'qH2)\ =fL^2xX^ 5ldvsy$Qp)J.
j9OHrgKoIA $F:oVSUq8%Yl#gXYhR`Rr;K>&/>a;aX&Qq
a@2X<ita9CSSg^+FFYc B2Jn5=K6|,X ]COC.G
],
X^26pZ@z
t8I*+LO{|FXxq8!#iYCv{^t`!ta&FA<zg&$)/qb_v_7c@x$@rFx/c0^<GO)F
?xC>2M_`nrXA,x@4_bZ2+RtISA:D
a#*NXPt\t*nfm'e{!qW sZbIr0
.hBy"6E- BP4@3&b
xr;1>qs5^VLdAH
}xrs,eyHU<G]"NyE$.+vLFE>*i-=,F';XICeUhaaPMHVzM}khR|`@+'6QaG}cRDAdOkKB;qGRgb=$+hBd#gX
(HC-`-'?=C|(&vS}Sr$tcGE448<y|:;ifNmz0
o:d
3UIGR
D4K BH9i$I)_a/ie;lG)wsvlP`xUoYc/.f=} -8
O}%YLGiPmutmPwX'!oo*\aq1AZ.2!Qf0
NATqsc%Lt$<NF94Nq\"AA&cEwgELljNMT2r%&sgfk<5)O2.zB8o>3=_H0}>WQ\N.Dqt}{3`
{Jf[E
yj((:o_"no+EaBC@gGDQxH;!x{ STE4nR;Z2w2JPP[b$9
/9,o5-{{y 5
wG]<oLRV/1Y@Cn&ub`g4D,\e}"LP#a0@^,p~1}PqEj[4<Psy!7O,`-^Sa]1q.%O1|O\&{:~#~al!%v]UU-b!Lz4=RY
Y6B\(9miNT#iM;')0vq3.H[/=\NqSyXi/:xo^,d~GwEe9h
YPFrpwN" z/"BAtCG/da_}L!&?"G\/afRp.}^be:nlRDM_* ;yL8
z-#pK= _
g<@P{LKOXR
8{=a_W`\&'M\<'n*'sG,FM@ 2<Olah1lIyCFzCj"zG[L&0m`khh-3`1
4X@K4@)O}O4QfP
%O=`)7Aj*WA`PsS]mB%`AH/}
(BJ#&
@0)wB 2jR+BN P&WW5h@
8%BC^B=z=}/>Z22 PWn/$}}^}^AuB>h^>(t*93}Pd6kv}yVTI\w
>sZzd-Zg-4XP^>`d}r>(^Y+{!(:sk;2]
B:/{}O{*hO/'Ak
dD/)A>h>v># >fM'BGfB{?c}5o^h(C,1}P/}Px{4-{L4aA}PqI/1@uh^(s^{!ZL/43ZBm^DT#:z%|s$e9YJ(HqZTq
Z]Hj^}P5A#Oodix/U]/zhh~dBBK~]l:=&1ot>
kIzb^]mFJpqJ(HF&E b6bwZK[e !V":3
T0%y!CQ&kBB%e;BHh@Mjx`~@\Z
}T
4DeK">` 0
@lb |Nt9"Q@>q+*IW3I%w=(3F%
MNDH
Ih-<k%hUTd:#`!X4rR%P63/7$mKRzXj#GFFy
2m&MKm`xD;BZH$SALGS$.\
y6DF37(=%OZr&H@ uAb<pX|V22Lnb]wm'G_
M]_H
Bi?I&ONM=5VY;l*p`d2{
x!U[h?5jh 8
b`zj6
_/EG> i6aB#?#
zM3`7?_a0<D6Y;8[oV<D@yjF:mpq>\/Js#QxJIipwwDqFEqD}7'=cgi-'<?1hV^CMa
n}m8^=kHzDT6*gR&<~n"ttx)^B<%D8*+aM&3hv>"hL|?w
}LyQ>F{Feew@
^"(3Y%#7{wIq_-kU3(
zVOA:^pM5wg-cp^?60y
I(h?JCo`./*-&r"FS|\|962SBn+63^=[k|k
6OZ},<?~:tL-w,6B=(ISbO4OSkwNFbD;BH_JDyN CRb11h)0A5Q&!Q1Z{iG@7AvQv#q}AbDYJViqB;-7u5G#lhssJnw3E_F%rP$-z D>{*N&
]N{M~\aB3<t)Yf|FG
#\|=oGC:xu) 'E]~6tt@xO)?x%aQ^bD}BatI DG|dk5
hZ
\P4R
PI{0P-uYU5~o9ge<pv9]c2'}1ewp,;}|k'VpN_bY|_b@8U]B?s*(W
d($ombb2lO-QQi.{
.Fl:@eDNKHf~NTT!JQEW/#{S>-h?C]~$
rN^l<i ?x"#~A-bjkiz'G[
N1UT~'@xhf(b`jh#+| fe ,0VGh('1SH:&JPDBBwG*`slGi"Rh%6<H%fPa.e|P-C
MxU ~KD|xCd*&|GjNq2iPSP#y<!/raNokt*!0
sG@`yXgC8jHQ2.GXyTe<fOk
S?c>xNaTnE_$-zA\$w^)i'%
/H'%
Z_0o+cWsE+}@e j;<e +DBWc z$'2
\2$-j71{i1
lbq{uy(g
\0J-Eo5"] qBf+Y>gR8@~%d\pe`
0vQK:5}N-jE/aNnRf{T@iM\-#\
:z'h>ai_UqGK'Qy2ZUD!N:eLEEaF<Y00&[
9:b8
u('(T.oSg<TF:Ai
Q&'UMm!cy2[IH]>$1N
Bxp
075|FSZwr^W}MMW~L3)nD1s.IgVMkv]5.8cqT(^<[A6O'VA1
1ji.7913{pfS>Siswfhl)!D ~%~{t'-Evx(Qe0
rW1'KP@
$juO_4C-AudktI(\I&oaB`@bD
)euiDHOTHCE)j%(t@
J@G8$b#rPeOC
}Z T>sjZaN|F_E3&l>-u,03G5
5~t@9TE[HtD}
iN@,O|=(e-|_ ]lZ5j(JypjuKP8x
}HJ]KM NJ
p$~QfNaqz6yUE9^fEm%,8|^t*e9?a0:SRTaqN<maSCv{)zIy&D@R"%vedC(O
H-U3c$ V)Pqr_lAPbJVrt8uYly~}
".&RKcfQA&p?,{Na}EvaQJl/FM$1QcXcOQc%O{y{)UFNR.wQy;==5uK)Fo0FR@eJ@iiHML<3GE$GNDM#4D?\Fp
T]G[12rx2CQJ:
T'Co=%JP<}H-yil-Q2BP[S!fTU[
!
TcUP[HW/knB322
1f#TrFaJ2
h79&X/AuS4TZUU/
&=JX[DIb n~I&:"<Cb6R$v]G]A'N
T""kF|t<1@j|#<C>%4?*-E,!KuQ9@J,NF{Ja$FbS.+4)LP0ow]a@!$:7m`e4YIq9-K0^h>mT=xlTFQcT0@AB=X2&)VU3LicJ?MHz?*X&bZz<N{j%-mh$aw]lLH
~=[
hc1_y|[6U-JH>%3k x &g;5(@^+`!MaU>867T
Z;Ph#QmwnObR>btw#/-.,+r^qI1S{B/'b*Kby J_Anzgt({sfs28<"T~Bo,S54
Qo=x>=Q;^*Ag[;`-+,V[C=~
b3rnKwu|cfWDgX7;UQ=UBS*xB|mZcB=y@P}9zRk|}Tq&Cb9OB
dlBO_97wz_,wj8>`f)(
%6*Mf~|sr-I54-^
S<o.FLan
_-@dpSJGUp7-1yJ~__}FI<Xm0jzryemax'.TNb0]#g
&%-91{~C\iEUFo$$'5vC~]ueqPfc{'?4_zv2LRs(I7-/E
1:/z:BDrz84b-"7>\7yGs/3tN7]s/Kq mgq5T7
WBk:\QyI6Y8 k@E:.,
ocAo-nIF!0fSeRSPi*?,"*'V!5}{RF-;cU9&d J
r:5GLZ+-,yX*_*Uyoa.UrAooOUD?m$DaxI(VRJ~GE~j*EN2""Urs_??;3Fp_yTt13E)g#Pbc-
R*hNN65
nMa]G]A<*5U&r9TYc>Eu]e[;c
sJ4^34Ts9\mc["V4gf
ud|O(sb@dw%v2_@vTlA08ystD `r+gL7zJd.m+uPsYU+R<BXCk>OT:k mkOq'7Rf?3U&&V9EjqKO)5K:;&oIFQ23!
h$>VDu9N-e%C_^u2R*{Ne.GH~.|46
#Uk
r8%Ve*yoJ6#!i-R8!2?=| .`kP&t
75Q$1R`lPZji~M~&%4W[HUsSRYMC(8&-'eT\v4UW/~U&Vef5s:
(Q': 4I5ZIC;K:D?r"/R;piBq~{7
Gbza#IJz?I@nQ#!s]-])e:_m!3+VX<PB|b
3{-!cdf.[
t|vOAb,~L'S
P'Q'$#rXfDlW~LahIPN&&uKLKVUR-Ea)jje_2o`$qQII9hO'cRp#35j+y_1b
R |&Rv548,b?@W8**[M7
+
;:ce$zTcG o*an8:pVB|qU9_ZSlRH"&_] SbFTU
caXuRmp}Vd1sU&ztv/cTT_vK/_s+|xv__>)j2[;
,tL tK;]%jO*OV)!R
&&0;S!CbV='
eA*!V_b8?W-by/.\l-C/8ZSZgt,%JSs>yRM6U?s/M?5tIw*H9w+~}q
:s~3;+-rB7e3.
L{U;cs=pM/UDhH7&Q/%#lBI7F</KuqS3.2W?a
LCzm;I
7zlmu7l >Q
}%fy_y(\ORBn|brWe8y0Si%W0/S]UOlTV?a=nj!rf[sk
:BN/ta}=t4l%I.,~z"]?'*
fS)y3wDfdqZ?u]6:dC\`H_At
qc{!tl.*gpn$vR5fWM0+R;Eo~U=/1
V.nh/#H5[!$|`Reb?7'xKVbo?+hMDd7v[Q-
F
T ;&Gr$_:oc)>*W.bYzkrsekqOO<A,-hX\N8Eq?rbPSc-NVO- nef
}
^W]}=\O
9lLR%:QMcyrqBtWAM6P#DS{GC
gx{)uc-;~odO>:~7]&L!`wq+-GW\wyCxB5ZsQBA^LA*U*5SM?(1F
B6a7?iat{B"tGeu5vgd1Tr(>_9Wb*wZjORO[wD O"MUs.Dr<">
ORg]OkjUZs
>Ps0e(&Lz5a'6bD-Vc%
X,Y9rFRp]igw#w0*~=Xu`@W^,I1
}!L;KKh>1m-5GF\~+bO)~LnI|)78o}`ba`%0v@J
{uKXKJ)?/v9+\t&&?%8V<{IlqYDN8J/fBgdq#rHfY\0]=wK I.mNokb{g/~`-}Vt6uRnug>(w/RY8Mq%^_ktqRU ktaJR{^"n]]~+u''&8k{({1rGHo|S*N?rtdMN|u4-5`P9_]!
x0Ju-7Yyv9tV~dK=<r
A0 si1['66 Km|N}WO`P@UAK#^
8,hC!?O"^DZZn)#T-0e@@vMT5W3
aV2^ HhVx6z
.{#kD*DJ*m:%k@m#+TyBr
0
VLuP@O
=bEu
9|yDJ|X
*--]Q2
f~dl3sd*Bw**:6T`HQ
':c7
vz%XB^UFegN"bVmnTqN8>aGGst= 9-
JP)*."e.
Pp|_GffXQF[!I 4Wa#`G\C!4#Pcg6MtEy[
@U@$za
R"11Dv1`TSK9*7b$s!6iDJ6pOfHnV5F';!
b&3#P\3rDrW~
c]}+2=dLT&3d7J\hnF~1Ej+zP_M @&rviD~os}jZA&{jwoZ<r3h}j HST}g3gyH,t_g
6
ZLiVt:C,
m>GKNaRy5QZ{?xmR.qa<z8&{DZP@C~?\9ka*t:b*9BJDUJ@E3ME^Rndg;<
\I`_
%5BZ
d"zER
ag7W<{vG4uulQ>,oQoH_S +4'(oy\?.Eqcqw_CJl:`3"9kMwT>E.
cu97nT8k'&PA%+KIX0U/#4Z<23q KpD&fRgbIiJ`PbIdy`M3;!,BTV>s7E\4eof'g",z'yT5[n(D/}{2ef)}nCN]^E)L0rn-xD70^2OusKGrp"nct
{Iz9}X1v4V[ZYlx.uqkyp]ujl^4^yibEEB2 rmuf@~t
ppm@3C8y/
u'6@f ?Gdv/!N2vPR
Ll^MS]i-T'HV(
qu 9Ha%567ZN'-rxy9:}3j)-cZh.>uo]Glm=-
I]>Jos/^WB}Uk{,=\lK(*W[u1CXCIe-"m;i[i=gU]Q1oK>b$V~MP-8XZK;bn@385ZEIbJ;
=s|vS/-\Qz J\~i|TbW/r-5f4J6De7KSL
lK_`'nr*P=l[qc/cLR:wzS~,3rlFqT5~I|2~-K1*)4c"{|gwST37=/r1?$zRv,D-gG'q);j;(~fhA:x:p5Ylx%K0GYo@p=`'p9[L_ 3
\\vF&8g;DCf*Er3B
x
aSZ%2s|j#S2zh' DppIh)-
]W5}We;DW&]
C"($<y!HN:i;IoIzo%NzPHEAK~/TPFvQK1]-g~@Vb/\N\^/Hn.C,.i)BN6@kC8 p{.x+j{5:iA{cU -tg(B[^whi<g.IxJ3o#d^L~"dll!!ueg0nq<:(O-G
m>\-;wWPZ
n;:xVjl[37Q:N#P FPnm|bVR]@J rA~AE OD/c'D
tZ|%U98t&kZ2u>x?eLQka?q0)m7`4{$R/so{yuz/>+++ w
JP>Mmu~z?*jLm- g}aE5/P#+,U(ybwWx{]{t-?=DICB:M3SGN%$%W~O]q/:rjUa2
|vwV@%:
g-De%*
\xGc"[Ds++x0i%@3F'hxm5XgV
K
\7{*inBu@4qAV.!5F/}z^F["VwMs-O'#&$RWF{ {H;*)tWkD[a+|.N6XN\p1Qyfv-
o,zc
WQUQzstFH+bV=Q~-nWB@)F-#jq#^:N{mq<DS"H[NdGB`=q|=7'=}cH|Pt>+d{EGv0p#&(,w/ba q'~
{xnu]F mia*
6-1
qF{1WP
C
(|DZl(LZ +`aV
#
m^\6j^'_-jT
zf7F9.2xa_D_E:J!SCXZ{ZTTWrziL|L[Q0--~G,]:> u/{AWMS?^OKz?2yX'XP7;b`@6pjSm(_B>mDz__h0wz,-Kmn-hN-A6tr^Mz{[54Y=_{z5s
^~c'{-w|(M
t
DPs;ci6chvnUc.2BcM"y?5ku9?lzmM_w}c%}%%1TpQj+i
Z;ms{RT%g\7]4T-?]K":Ja,9ws6-wu=WTorJPb9!:7w
}s<:T=G
LY{;3U%fTk]q_G
.bp3'^!5pPs=UOn\$vW677O_yO-Zb[%YJ?wxBh
d(o[K}_<Z
wNZ-!Q#wN1A7j};(}=J>e1'=*L3tC+lFt(eQwox}
1wW]zxi--J/#dW;x3<xefQh
]7sO^u$#;4i-]Zt\ ;W2u{Bkn-N_jH!4Jcfv]C^c7}
/w ^%C$8IxhyXKVi\QEj/[;}[)c_s`
3/nb3\xuh|J2;/^V\r#[~(ze:5'Da'R[uh9^k7e3BT
]J/l:-.?gKhsmkcdm'o$aaGkIM9i*d]INU-LCjM~<$MNz/i7i9%.z<[FJ39ruqw#/G|[,Wd_|0 _
`yi%y'2guZJ
qeh>^3)oUV.k23o8 - ;?c-F
mzmZ!
~'1]!~Wn}l5v<B\t`a)"4c9tZ"T<`OKi^lq)J^;|:8_c;x)^A<J73-[T[Vss53W3J7
<tR 5.VB(gv`98|ZKlAjgzU
qBk[Jz
'je@B26zJQr<r*A^F+hE2T%ffZ|x .@x+O2=2VS[mi^4|(oE!93ozzk/!!;}IY;g*ncK]Kur^Vxcw1'NOlEbi Iu.w
)^NvA.6]1
!X(/Jw!>hb
tTwNK\_%<ZK[xyf.!]yhKoEkwD&vVr"b.!>xGBU~2"0W@?w1(->1>div1N
Mvl6HsmDbm}{\:wNWT,P1*FL1h7q=&OU&a
jjoo"f
94(-SAj}Aq'e.q:v?P{R X~i:t&2'Wn@990yCylCN8Oy;
lo8I}OwuZx!7 ?eh[Meq1..yy/>~X;'w*.[}c/Ao:%+uY+>W!R\!R7_}
t<D"!@)RBiRAsK]9x(To$~ZFH&A_sv68f?v4MY3wq(JI(3=<xVDo4W"jU5d=_{:7#avN)_k\zuueiwTr
iiK|YVTcs}o@e B_ IdAcHn`]8u,Zp
Egpo4`{2pZ."3s82F'}{'g[zwB'`V<xgp^62!|HB5(kNt
/
U(
eBVeAw sMSiIU7v]wDh9G2RgutD
~;z/\^AThWj>q;.GP"uH(XIO 7BO2<
+R3y!$TaYXiC-e/R;q v"!{fu<_|aN1a^P5xxSJn;-=E ,Ntqhahr.pRE&^
K'>%O<`1L1i<mG
'Jr6Y?4^m*8J)?qZ`W`Gdhpp`uj^Sw|9CM)8k)*P_S@C``[3!^TPdHGC]bx;6\yr[Di\m;Nu/~X7xc^8khe~d.t0-M6'X6o
LdkgsY5#'tPp;lvuGLfqFE8vaw]*-eGh$AMcN[iP=QS$M2
Ys.e-SIiV=BO`pl/1^Lyq|N[JG${/.N
a"1e#'DDw
~fLhNq)[}&p'-GlZb1{mdFN~=[KDbB:8
8
>xASs6_K,>2s|KV%V'82
64KGBtFP?7TOqeBV&o<|)9 vRC~nz2Q;/q!GQqmhphPsx|iN'<:1EL0\f<7$3rS`FF?gZ
+,<HZDZ")e{?8sl+-v1'KK;;-m}UiV;DEep&xAg0A;<MR6'
\vgD.!v;~|O+
yfMG]1n5u#+0nM{kaW8?Vh- Z; 6
3{'wcsji1jsk4F._geK]EYiFVSIBl2utrTaU4$WQ^a~ `;gSfqh~mJlclKaJwIOP
o#5E".*&(^^MPge*Db!-2x"nlC;GL}vv%2D|(*v6`QFkL-*
9fA|&hE,|_ 0\p)M
9r)1tH0`O8Ev}/D^a.h$E;?QLxY }>h08n>!\FhVIN>!WsOV:n[s\a/= usAuLijt|
,u9HRq)
jt^thQ -<spM>Aiv
Tcxqhyg7:DKT0G7`C!
[V:7ua(>8 0Gc}\fHDG^H
&bAA>c{MfQB_D{p9BG7(mx#aeVb/q,:HG7R\H}e#0zsl]9cBVlg_Vcao
g;:fx5i]P
mKO[W9N/k3Bv$&Y>ExT3Rp>g9
*qh_}
}18t\GfDd[.?p`nxm|M\3'bKBPN|m&Mh|2AK}oYq#hY+5 GvpvfKnC9%A ajikv\0`-<i*A_\w"
-iy}w.} 6?M5+;\XYeY
uN7H$_-.eUf]PREI-|3phpl]r*PD`1j5TVB79
hzV
M]F(j]@3
4::akCnx``+N5/tl%W#k"fy|#SLnN1:D-&p8$3 XKMSqm2([qZf82vCf[qK06#tfYWwr'lD!{I"A$Q-ZM&3AJmhQU]lSUkU[Z-PsgR<3Os{=(i
b!"TQmRF+KE!kul%R!Q`A1x
q"][h<#aVq=fLG.H@b7L`DFX>GvV?Y}-tj&27t2Aplhc*3#jxo{Y-nDWwtwK7Y+-2${*]~S#oyIi?Wb"mR
m\U(?n"Kliu^G[yRY-WeT[-z.MT]<Lg~,{GY$gN
&6Sh]=>5 JJ[ca^wY+ANZ^;
=~Q7ga(z<ir$UWLJ IvdLMb;[_15QtG
|x
n?n#7CS@gsmJ7guTLNt]P^2 KUL1_2~$X;`'G!5OMM1=SU'
AE'}$'8q@4'$:=5R-8Iz#!N?I3@Fn69|<UdB*A]o-: S]f'[4#`2ae
AB8AnL
mw?$iL,Q]QW-uWNCV"qJO.i8j2"l#+%(rQHp
q4<ldt=fdk-YN42(bh}>69E$DnL;z/UO!NHI=NG
Vp4pM
\=(WT'-e?6u]%}GzfdYz'!0n.?;<q
)5-
C;S"I6]xO&5?d<VC5S
NN\uN},I_>9nJ"tKKHG@{x+1waIWD[uOSV*c6
eN(6+j{'1jnn7Mqf&-/ -XRUlyB{x)+
AibwUo]EwWa-)DmL~702z09#H6\MzNX.-s[Q-rJP0--JV&jE7Z!29-@i4!"`
bB V^T438~ZhS^?JfZ7L~1AmBl{Y?a>D%@[
|-:G6i}G]>ag} Lz]ZV:#?cs<R#)'|Iw!>
jSa>RP3:2G7(Aga)#*
19`fP`A
g\L.ta,!hHt(#_{^7k;4<!i|6cfzk? d=B x1V
<_?Y\>.r+x&1~D:~54i~1Eyqo9oK8\w--zs5OQ~(54@
VH,E5f])!('|6o.{HR)C./4qP{m(+L2Vam|* WE]
f>$gA<>@hZN#r$zuh#;q-B
.wqZDS.p
PsH^
?=
vkXgC`w8&%A-P$%fHnV^= z\%dLS5$0B!raxxam(e&fA3W}*-t~&<i9WOk~U\<_%y=%)nQ}Y_Sdy|?-kEg4H8q*MIWnlc[|crI\{0?AI_ogsY?'"
-5ExusQQ!B>gP4*oFq.F't!Wn|sJ-mUcWw7sE
z4=~=*
dw*EYD+=s>m1:XwU9yW=m.,rPC,sb?j.]8@4uE4K
v>LT\$n*,<oss=ZCJ!-S-jn[i9#ZYm=takK&>c]M=TBS/;v1rx~h=>9!jxe-|@0[! /hjW^,
CKXu iNm}f
]AKQ.Zipu=+R@[CJXlg!u*_>n/|c'BYN
9
TPILwi$kF)/2C(:pvU4"613@dL M<YePlYn^64h.}oZHd{qry-@M%<TF43F3x!,_h
Pg%Y4qgV~s7nwu,
i&4<LgK5VOV9vQ"L
w)>{
Fox )]~QUBTk(-wt5}'&8UN9,})Q~`2uU
V]yd2fxZ'5arx"FE-CK>
-e9.*
U*;!y!6HW-BjE+].^w#[-B
l\4M8
dy2Diyw*_wR#pK&N`gxpL}=c#5]4ZGw#~APhlcM^2z7m_D&eS\]bH]wR)jP1UUVT9?idl^~kU~hjW
6ZpAX
S0pa*pg1]>:a8pzkI#"1*Jbqken(_Qh/3
tu~d_dx{@`?K_\Pb*+0axA9f:GKC}}Eb Rk3Y/{X~a/TZxgt_f-:RPo+-((XrTbV0L
i
;v[yh{O(LlLTNB|:'VESBm/#9-Cg46'O"!F>=/'2'
A!{.Lgg
Fnz6H
xyx1
5@Cc2bld5ROt
/|
Tz
^W#
+ ]
t8\q
;X1:KeH>+[nJLw]U_FAfS
hV8Y>;"|S-h?,{G3%?pj+JyK7 t+%r!IWN'7q;-ZcYG}}9E((+KA+}Un.)[
it36v1t(.VQPk4J:
1hgb+a
C- |l;GG
OPO*&)/sZ=Ed0'3X-Bu]I>\ e5i=*q!cxkq[-xHzI2}@=_WayaG2xN
Z^H7M(7Ex?#
7V}9RYZu/sLFl-*3l guS44WC$0fW0>
mf,
0fZg%>XD_dW;SfN3o9Ys
-|*Z;=dn+k.~1?tQ,eDD3tb@6Gq#:D<Z
FWJ>pn>g?1+;Y`')S]|zd?]+X:r`FOl[
b9hNa"qJa!}he=>ZjavQeV(3:R+cvYGjLm+i=
qfy=kZyb;cX]No}'6(_ Q ,{oogjG6ZU
("mf3>vo|&N.~!}|gi-eJGB@P8SO1Ek|4)oTe&
ed~HN},7zGI4
VO-mE o ?# m6$8p2h
~Pq+*UDP.gR-N\&#
L 0!cml 5c
5X9ZL}
XJ)B0DtM5
-:}`MT,+%,BND`^uU+8"Flhz:St9[rn6UTzP.2'oH|
IX W&kGEyP94RBVj.>D7*F]4]pM#SF(-T:.f]Ai zAaBhW
3MnE#X[HD
1=hfkkng Ad/o%}>
!qYJG0QF[g-aGQdM,W29$sT6Z/|f
|sqcZcMA/'u[ZllV
,J4-gQ-w*$1goKHlA3F52YT1cQsmIm~3h7l]Oob*nwGx.Kv=rz6FO]T|_f-dDHBd^XSQi)N6]23`Dj
8:'/:=
?tSp
uz9m
]H %g"
jqtK+H] O~zojhjHxMdB\7Tv:2l\{yC7:yN~|H,\4r >KNS@
6 M(XR`[|9?]sUNO!mb3.-;D~/ypj
:4klDfM;B:s]idu5E`&9#,~y\,;Y: 0ai_^mhP"-FC
reuQCQvW`h#8-U>=&9.}iy/-2qpty0[@
Na3^+%+[Z\`Tzl*?^XQ:M,zE#0!R.iSM[_2?KLa<qN}
EHZ&$gfsl>z`mM_#&mLCCmM-hwT7TQ!DTO
^FY`?
u\5e+u j.O,fY+u\: b.]V\!m Y
7H.c]BNLxE4@u0PAz%Oqd,Xwm|.|xw1YSx)vzC>1$
:oq-k}}!ghw
of\_v]k5N1a+_d5y
ukXBq7eYVohy/;4WIEsU}qk"MdL)(-XPZ
Hk78-V/BC}3@bI[2PtmRC@^Zi1Kx7i|`9+HC*y
p ^Sz"181 (N|$:}Lm^lK[;7;HEQx[[1n+f=CZp[pv8E6
Xz4fUlpq'}{[7CJ9-(UV&Iw[){\SFl
sU[Nx;
:}|dq6]Sw8eF7jvgbMDju6>`:<:n_,7T1AlWqGKT
4k*~,6xQ^l-dv?L@y?!Mq#hCZ`BQ-q0@xx617Gs|bH.APS>`RAfQ(iNofTEYYxmU)=}"^t<m4vWu)(pw_!XN5k:L6rNX(u
!(VuZX*D7$._gJejWVQpmBda#2'suJO"}s/$u
;w,E2OX.)Y!~a
Wo~byETVD`(1qmob=m8o@zf2}
bi;zSb4qY/)l =R8^ Mz7%WxTw?@-t$\tj
&S)aPwFG('FzBM5c<D-+tA]|xCqACS,EcWT, pGPQpXPWU6n;b:u%,U@V:1&j,
AA0k
Z$I{gev|7;MULv:^Jrv]i.@tPpIfWHWu 8b2CKhGgjaIK8V55CBOv{%6N#M>*(
VcH]S]H"@F'|k|x:VNGXq.WH,kVb(Bk3~^2}y;lHT[i,vp](}doAYWE6Uoi_^w;r[)jFrIRSaBF6Iqh@UEZn(p5UGgrJAYy;RZ1C!H562C
~h&ybb;g'Ek~lER
UxaLWMxj$6E;Yb2![QozN*TFGU_I
UFe@oec4p* RuR[eaEU/:XpieID.
@:c'~ .s\Zd=,#!hfX6w0.IhO-3&6%+OPev=a F4J!Y P9WeC4Dk
4z&GGbM_SfF
dAc
9D/7Rm>Xe-@J]IIZ4p4P
.
m\qJi0gx?A#8\_8sY%;0=8uTXVM,giTT86Jlp8zIu*CCib'd4Xx+k Bi92ocDy!~)wP$V59i=d\b`eF"<)<RWm}
VHQG/fMK6ih*(,4Q<
mh7/@x11+M|@W]&^4y}Kv8&Ky
wldSOvP5-Of_%N<d2D&uBC2|Gm(RpvH4[K)
DB,(-1Bc</$.dz3;@U3&QS `PozMU`sAARDvTg
'2FBg74`VdRA`4Rpt%!Tm.pfb?J\@^`oh6&lL^U\,r=tdn!%
-zhNJ&6p8pjI>WHf 9ia:\^-x|h#!F,G'cw0gTOG}}56aSKmH{=",qi+--6#+{]@w(UYj(x%xvuu!>]HBlAEEM`RefzN#u0u<H:Re-O;
r k8:}-_{`(v=5fs
84jL^VzWu[_W4iKyMcrb(X`tf*OEQ<=qn'-"Da
t\XUPpdMIuN{E'{@/FKhM]BS-1H\|>(/6o'A2`{<i
OYMe.0^RzV*~}L2B[}^$5C\&=-
#Ot$Xd{P51y)aKb
K.}4$K^q~y_s(S
27p~id:~,=S4Z0+7 +1[@-W-H2BO;7
Nyl4685u)\x@EM/.|xn0<j.>qCY;ub]qh"W?
Nf8k-P85!+V|`
q|>
adR}R>/K^a>)xTJ&4;7L'i?]UlA1WK=oq}o{au 4:>
`J&5X,Sme
M1rjvOV$@5}jk4kfv4i(Dn#:zI
!\qt[#T-F.;7SYe[#IE<P>>BiHifpEJ@* 5R:g--_fjok+NQ
+{A!2|0L4
g>Z4_f#v`,P!B,MWMGji``bN{x+m*?
pf:8J/M)oLf&!BT$n;'rMe"@<pN(L1NB
JZ)$[n7Gr:<>t?(F#(Q,j9X8iU[68@)9_yk]_,POh *ys(K#ve(Xt
NG6w s[(tR_myjHJI]TZ
@gVzV
I4;]Q WC-KCl`K4"["hR<3H4EQ);+
_oXQoL~$%FfiH)`Lc3*^X->dC35}(gl(g*SP((.9F|P0l+_xxLTQ
q1LT2!~WiU+}/ Jb&>U)}{41B(V"n#fFKn'pQmM-b/%Ph0=
~!Y<sIw.0C'DASltS$m0
-L10bq.-+(^w
x!
~$J
F}N)NkXO3FdU}>EI{CbSh<spl
bM9 :H*0Q)B-%6nR#z]77Oo~Beq*82*_.@9]|s!US'8p
ezI_2a<QBQeK$
~p^mL
EiFJ-=f>gkW!(>Z*n}fpz4Y
YfzK/L{Qgye/Q1V
R70#X@2^2|W%)o8>2Ra.bLVHMr@-n"Ysx'8-rN9khn+JT'LbO
#R&
s|D>OA)gaVTKE$Ml
Gz&U
*PP
1P9{t(Ng<<?97MN~V@=wc!0esCpn^N<;D$ZOy?O,~q^taW0]<_S d0Lfd&ww2$"6@ku79?UYQ:Bth**#W u?<jqerj_.mGVMz!}!m+.E?UTAFV1c.7pw:eX@\*RTV
bq:(`NuSQXWZXHiE.el&H<6#$C/'St}D8eVC[.yv||&+rXG^(9EwRWNb8}au+*s8\hI]KyZun
+!~v
?9Ya+
N=d!QZVlC%o}ku 1vBsj
7%o7dNNa(/%k/R/[-av}@B\P5//<,BDv(~'hq-
!_nJ4PFY(MF1WSWBsR-gPNN?W%~x^`J-Y?a/pI}b;bp]3|9\{$
5
D~bw* F
Bn4N&z.#'wLF^)OPBKUyO0vxGUL%8q-l'd0c-~+3i-&LZ3bH:Bp/_q.HJF~NC)6A&ztF'(Wg0ZT?8}}
~FXvYR(oeuIBXN2yY6c$2K}|t{>/axDeU#04bp9)6c\g694Mk7WmO}
RgXXu@wu
y5
)Mle=M"q&h`L{NCq7R
-hx
YVFXuSRd)*-BZiG*HQA30&{2u6S'XTM~dh \`"5|t50ggDb=k*9{;<D9bQ4)7%Jp(aFlR
%>hnf0es2i`OB$pIe&%#98%?FkH$rs;:3
$N!Z4R?
@2aXvY
Cu7g4ckYG
a?kCKl*HD]4i0>H"Ae^2dJ$|wW[ad_+X_:n"yhif}/=qKHSf!Uao_
P-']r3bqrIXk%$3#i28%kn\Oq_Ny_dKA<L6^
:^,t7>K'f{!(
qrSfwQ?==Pa1<|KaH58ue?T:q@A?
tR0sLkr,2%buQ^:dW"S^|f}+J\.@q>9?Q{?Oz5Ibu-d#7>Y}aHv
>(eSXIn:[[A}?s;l1V'31
EoJ5fH
~D+J>a49/9$sT[7cZIX4bB9e5L:I*['#8-H`@E+r*}-}kb.;cMa!v9q<h(A$p
8vLQVi=O((/;of7fSHB
B@. M) NzGD
ADPA "
UD*EAF@sgw#>>3;s[y{-PO'61j! U 37lFgal/WU30GB/
FcK!'U2KB-t
]prsYn*%e.'p<4F[FG%PV`&MR2M%h~opB |MN)4<PjhPCKGfueZ
(mb?;aha}IvQ;Wg)*=97
dJSVV<t0|\*,l;1}cj!WW:%DDkX8& Zgr)Lg,P
=jPp!f%xm{UW>~n_-Kw+Z_]Nc;
5pR#W145Ano 1qc
gw9-~FEPu?--awZpPvPU}!MI+xjum1~x6dnQOB2r6>^^}(?%f*d.8]qje(}*}jnHY},zzr-F7h,8hc5"-``%Wu<
-4wwiErgQ0>A[:D8T a
['v2uW(J]vnD>/U%2b"_`)Oj|xkkb~mn7OO_`tp/?ZougPW|;
T1.\2j{}*ME
QtKwm[x35&jh|w('@h|mYu618]V*RRLo
*3[U>U23{[
-M7+jn\S
&er F-p!elaZJv
_pDv,2 fsS
9Hn
-)3!*7$ZPr;`ir Q&'$kMcwRjqRbP{2cC;&R+W
c,,5P
|c)k_
zSAuir*X;YL-_`E,Y_jUC{ x>jZWvM4J^
%(@
G4h&!!1H&l{"da+g.#b[SFc0M.?
TQQKwMwXJ
wnm1A#C,L~fU
P|Mr/Z2}A}NIQ
G|X-N
%WLeWAF>70B!>Wk7%R|jq%oGau@)MR.D$VOm-SQ$@m(T=@{kArc<'yv@WJM)
PYsz(z'q' T1#}&Say<RO?5[XpQBQx%zegdP&$,Ca!Up7HTj0*3"MFLPC$c
t
-wkd5/U0i?;Kt9w>W\n{bTION3/LLLt07z~aW{..zoX2j4H!|--
qA)BsM{Qc>~Qu#!1.U,E{9.8+S{VjM
i8iD>1O%u2%h'rLMGS 3zjHq3u},-2
Ui&c*-hRGORiT,jzmZ\>Y A5$S=?ct
r|B;|qG03^|I];>}sFu:[AIo7 q@xU9XEfM*
uDgV16Oxyoi:;n|C |@Kp-ok|~"k+k9
gLs`x
b-nGqEH-Jt|TBa#!yc>&"}NNFphQGKR
nWxwC`yqIG
Vru1y?9w!
{&N@:I>$N 9S CvNMb,bD!LSJsg7Y95u!pT`H<-e
a~*}c!7-$-
rh!Itdt
NGCq.8]
dZD[x\Mw84lyGyF[%_arEqYecZvM}.TdMBMqiCG=
N8Z
?gDe?q9QD
3mD0AQc1YLaz3cABdJ;wTH `@IYbinmxPBv3F*-gQ"}'CM+@%kAdP:h4r%W
vRW#A,EDT@(`H<=>Q-~-8t8h1aV#z!{%g;=
J{TPW-S1Yx*!{\<_o3Y%sT"08=n$-
rI9dxkpk` j=4<dYu=g
8r&)(TI?L|j9
--W Oba=gyMDbl0
L
SG]r-cK's eBu-7m$p`5(H3_D
[J3}=|b1bj^NrHXw55S6uHZn0b<wu
PCu)$L
9,GFnd!,*-x}\/-<P2"r[,yUN&ir(()lFd!Kf8D.!a,;vew3\o=X5@
tt5
az{,Cv\,1D>?z8J@N3Tf(v=d7y5irD@{!Srj"p.9&F 0#@^!_pDl<17ra6@E%9u$54n:6h3L\]=q >8.9'e,6q~v.8%7h[)r#[/uI%_eA
p92'k}A:K! wIb5>"?+-dJWc5.kM^S3@x9J2&
/9qmuaL?O$HM(i9KI`>a{[:^Rd#xQwr(OUY;]H(t^w<FJMOp{y pjYa[gC5'r(\*<czoggy^(thSR.
E9T&
O?!J'5r0VDo=V=@E^B,IMs?U$;~"/s
Q&+"&q
#1mCyW~O{Yv^ [XD-JB-g7~vei,cUK@+0Q}eJ
m[9Kgi,I3gqv]V&Di6U
aQSB6Ca:d
D!P'h*#Xl
b3B]G090^F"Uk4YdQ1ciK1%nYAIt? T!,N}U%
|WP\=m{&`*L^6S4I--bkNUr[PM$8C?;|~)Y>xUId0F5%u^,O=(q
eVRfl?YsaF__K|ruW
+8A1P`
Q'-P67}yq@J4CtzI({v'e##Es^Bt}rysMMKoS*
s["W[a
~ic1x$n;X+cWLz~0rrhtyrqM`4i#ZA!Oh3O,\~
rc
/U"SiieF>+ePdd
!i70=Nf%%tG^\V4[Y.5]7.C"ul
+L"x`~iWovV1d1j}E~D)Cj>j)`4NN~l'BrgS%r4F{Hoc4qyk'7`,;/f
K,3tHxw\
H&}F3oh-74
=x~xqeQqV2cfw-fBo-I*ao okzf6;u6
[ D03-W0E
=*'Fz,~(zwbM5=.%?Qxb_ |8X_o-=98X_-X.G
t`wb<c%cQabpmk3cT-B{N I ,i:v<Zc5Za@pa}th\8;
=T=Sm
2PE:|"I
t]
l*@
IFU*ls@:O6e(Ddny20`&(v1O
O>!!m34HZ
m6sPUJ/~/Yc4Oz!<cn5&EAMxhj#6:MG,N2fh(Ide&v\SOSKh?,f7$>C<wuD)Ie^eZ *TF,Vf-HoLv'c-!>
1yw!.P"~b+uJm }>_yqr@;z
8gW !c-[B/_"9]$~G#[h
M5g<&y=dlu"TWydWA7wCIoalT=Y[
nsvCxM6_J{<X1/ravaAbWI^epTWn0Cij(z;;&Y<ki$`!%0?02#`:a/3/,%sqFUAtJqtK*s`L :he&V4gfg=!Wk5Q:
!xQ'
WGnk>HWRi(_sS,/7A"j,{vU+N}k;;=l><sLof,Dlr >&$ip4D}>|7.^IP5 c
l|
u0X}|Kc<t-fhbo7yynZ
V,Zx1x$
u?#??1I28qv:}4CK?8]g9N}I'+"lpR19c+>3"Dhk$, 0xP+JCvCusAu!cD4
G}f9kt&cF|xy6,\]|:RL9
cxdQY
=?nK4OGV{)<-K5]o;b7vEnuo:,x1cC1J~{NE,B3vz\{F-h97iPqf0XZ:;>
{>3"K?
AF,^d}=~.@ G|?+W1Gd87tICs,S|C(|fZ
%C%_/L.w-A^N:&D@bXYi)"QU\]OXPR=#wDs.bsp+;!ps^Cp^CL^C E!0?
=j
o6orbw
rGrLShOd<G/zrhG8r-4?6\$sx#
ce8)DSMo=?'#E!+}$<3]q2,Q3XL([U%H8Sd@KfDK@eD^{+?@tz{yz=|)tj%~ '<'Cc8yG~FXD%y[,W)x5^$a+K&'<db"3~;vmA{:]zE;fUnqFp Z!IyF[HA!%E0Q^q/-g$pXin
LXu4Q8(F:dC.`wpS] +{|B%A<j8Ce!_>{OYi~GDr&Ilrua@^"a>
#D -WBPt a,PO06J0j>(0;l!r#Z/#z]#i(WAPW u
BGv8r&)!}lcO0Zv=,yQo}e,6CAIx2q-1pm2ZZk=DfjNG]3{?uZRw[mdeGN7M$ZV4g}&E6;,C
S@;@UZ$N!!=cJs43ilY9kC"F&fFpD#
Ih.}4.Ur8b:>S6G'O="ly
u}pF1l>4|EIc~^pSyAlT?FhU>o)9F$n{z0aw][+7'z2-THF
$vI~
_saDygLmOF*e-oH
WVH(0/{SmI%{0Cf3Aj QW
jzG:'5ImS=+B;eOzbJz3vg
S6g=3Jp3LTCP4
-nUMS^V-y?-Y4Rpsl 4W}-Ogpvwwo$@pJVci]s3 >o\M{%-My:{vDzsacF5[PV/@
&We^o31p|w>);z-p1ZqS~9\e@cS#<VaDU hkMQ2hr5*`%8&mxDL-
Hidk|:k/
I0QifGs?[6Jng_<|ex2|cm1F?G=pY0"%'p(mpKF
wq_Qw{Z*cJi 0G DcmyBb~p7j~uP:Zf
DTIGVQ-P1oa=ros:b79UY+vGV@AIeekm@&"sKA:`{s5bvQaR
qg
uCP;UZi{gak{-`z|soX~N?yL;
G{p<MCs(~>;3bjg?<8>11s3
WZL73-1=.ImSSqPtjeDI7P-"N~-([?r
-GMXvC:b[otZs
Zq[}2OO(VT
O
9fdz2/%V,-}Y14ql
Ekor9;}t8z\.o|hfNw^
!pjuN&bj2W/)(Nc8+\_Nvi_7g]lw `phZo' %_z,m=ikYk)|S4+KrR-`RRS)e<Fz1KED?NN6Qg{XAr0gkW[!Y7]7Mu-s\$ BFfuP4
/0N>EcY}v93BB:E]%#[]L,JQ<{Y4CNq*5D^Xqo)8)q/+nn!3djLAR1p+]}EKhi]nCr|+k&\7%)a} nB&b\<qP:(AYNE;O#0
im&obFn(rVr#O|m+iu;[3%vz1$~P:@.v
sBDUVv;Mcw,SuN L?P$_p
qq\~*dBy%`D?_4>22kGD4A6JD 6#%#mFYxkkp9[k,XRgFz#',
4R[bA/sX4-a[%-aUPbe~@rS k!<afWNz},3kg}{JjVg_rGIm?p
-[q1l;z/e-)]O{ q2y1j!_B !R#4M* $f?=F-\7+ C|[wKD
5v5
q5>x7A3~O`D^-LZ'^T%$qj&'
l8r~v`.lot"wCABi6 A@\Cc`@=Q
b+`#p][2/@- QPg ?USV1@{G*LTf6#< &Qh'2sC &([d m(}{-">
.h.=k,I@W] Pq h -!2L5oAc*}95si.b&}O>|M
'*GA-.
O`~/#v$p]U@^'LB}h-b7a'
C0>(G>DdCI6`Ce+!Z4L!Tg ;^/<>^k&[Q1.BG(x]B@g460`c3xp*V
]qo&h@W8$mJ83!w3g]DCD(he8@<@ 3y"
<XQ
IvAq=\ASLlo*L(2Gj4Jq+8,P> AV!l<jbb#RRTNc!f8s_9-k<,>?:Cv#x1BN)b42K_tBxP;v.-8*z
V&*O+|01"u?fEY~e5QROxVD]*uZ^~kU{(p;qt?=ZV<F
$@)|LM$1)6-1`{RR?c^5Wm5Q7D t.$Hu>$XrF!j2]XH!iB'f
:y?C] 6L{9 k=Z?l1M5
/KpbY:t!M:82i[14qg5v%LV0XFO%q9~uZ8QJk]().gJ-XjAwqX
2e@UtOXm&LFU?S5f<ROPk%\fTVf-e:J[H&q#FxDH'
85q*0fN^BExV
<Kj%"6WFwr
4'$ZMhZK|EDoN`#lPBM?"${\r92E
(iF}CgdAVfM*M;BhsHairpnj
g1
q4mB8X+{'&RZLo0=%3x=>R<Nn"q`_"INsX|PKVg
W}0Iz?+#*Z*U>9-Q}')I2P$\\uq][yK*\kZHtX^$M#Om_[b4&}2A4jP,m#.5i)sibm]0q^kn7DfT`bi1A\&
SIC*CW<HP`i3xDaAc'-c[;EKYC~OX
TW3\v!sa3Foq>+2'D}zp_,qG; mL>|.+tJn;F1J
kFSasj'
-e;hCtw3a)Q8
O <mVssg`tqv6xg=}}wD6Sf!|ST"iqB}6Pd@KK
kUbsj-O,G8j/h\Zro
BmO+
k
x4?J)'2bW2<+eb0$G* \7UUvp>R0^.0Bw}v_Fk_bPvT,b/?*Fe^OT
A`HobsX<oHh?1;4!wkr6I:-,i/9Q\Bb_AH^u)u|@AZSSWE2JW, 9
29a#zO_$5JJ;$F/GP_vDsjc;ZyMP`|)0?0F+q#wT
;UlB-IhL/LegwI{ese^nwt5(%.M& 9j;z(
\
V^#I/TQ9$!*RF73%(LHqg>j-tUtvVx2QzV\Y*|tmFuuQ*{rNK?j[{c0@(i]!Bc;'6tH#c[cL6uOOE^HC\'/AQv>B{ (zW<b#(i#ss)J'v4P\~^bV6,{[.:@vKE:<*-?9ggvcbLkMd*vhSSx@Gpv%P:YX4()-&$spJPUATx+i|~Y.#O;XeB
Gx(z?2 j+>pOl6nL34cX{rd2A\_q
QQ-3nX.<l.d\2RB"?5@W
A%{@
v}R$88dP
44J,PZEH)3 |\+t:zj*qHlFb5{Q4x?RXX$&uW#%OvnP~{P>< +
)+s,a=
3[muqn.(Ln=^
CPa
Vvw4w@X0@O*~GC|#Pd{W9s|j](
xt!c%cruSbE5l
}~ U
S)TiO
T1EOS47$F,-}R<CJE?Bow~J5;eD72H]CI7B
N!~H9#\C4WEP$uV?l5S;k"sBB(;n3:+*#FGSTXKK!t7]'L,m,dj{ :4_50CT"tkg7%>/g
fvXZ=1zTO,"@Y#$ v:F*C/6PtdiS)R
xf
o~E3~}mvH
lDJfS=
^GYKk
tg@y.6+8v':h5\01Bv0Pfk]_/?@hRne[vQwyj-G&',E4hk@Gv^=:zg
gdy7b]<
l!r_=/l;p&M3N}F[hKR.lJ
%&%iYEMvJdQEQQTg}Lfs930Dk+Ny19=`rYrL!(N
F2JPAP: CG
P,09-OVD2@bb9z)Q^3\
NU]>h,KeL7hr,f7J$dJ6)I=m2Qak316|JU.~nMZ*`ntx4,LxG
E Y/@KJK3y`sI$\ZW}4}}Xc=
>4&-8/r5}x-a0`+<Fx0|_D@
xM~ohw_G`NN}"qjk^<
U~JO1,>x (UN{[xF0"PB1
;>3g\9
rEJ9o' q}2Zn
*JAU| R}5>E)1BLA-9o8!pC9)I"hEMgG]m?<g$
X3.,g9gq
lNNOOGi]t:-.DtSHe%gd$w^2 tG8 [)xT{
?8S!|1>K ?j
x.OL?
V2ldq^o95$.'?wsm$kxZ~}EB\OYNbr7(iRm*gN?sJsw%|=3R~
G*$_JYLOU!As ._H-KGq1;pxFQG:?w
^3-oM`%#oEgY_8W
5.}
21Fo5.qRrWjzm
_,:CfEkwQQH3Dc/b0f%[LNT^L#f%
QjfHR[RfffRjIG*dNoH 3=obKVjr*|j9+3HjT'
s*%kBsSr;+k=S+f"uI
Q0y9B@6'*udC qn-g.
>oE%3]#!?``s%iC NuMCY]'u15`cm%Xk7,^L\)aF(e]q1x7%6ub:Q=#u7d>awT6R`o[t`*#NDv-4#0:pz ][+9}U]uxN})i}FKz
?={9lEpXzO
*$Bgi
7zw]t QZC:1uRR
omoY3o)
_uf4Y(~!gdNTj@QRO.
?
~5Z
bPLn 93Iod6xedjEuuh0~.8U-|UGWv@.
#Ge5$dHNbMPQn =|d34>5#Xcq~{:2w#/~`:$>6dD}``M(nfDSw|D]b0aS;6g9+g>(yH&B
Mz
J
J{*Ow[=/@N["egj5B
2Zy
G@^s=?aN[PXv@^5Y#"v(^25$.Th(BB(%o6BUUME-0334BSdT=5vkKc,7[,N\4(]>55H]PW#A
S( R5CbpEod7NB
LvhnH7jT"! 5# _$sJbh19T+5"8GM
YSg0 h jj0m)Pl'g9PjfilID
<6t$j'j]_\6DYM3KyS5*GO*0c^sjHimcP>-nkM<K4'D/[4P>^<KMI/%0Js
v()@tOha&QkPeq8i3h$ly{`Zj1a-jsQ+f0;<V]D_"|lPBSnOeXduoi$1pFw(hIorQl?
QZ>&6u5kr$RBm vu@0@|<g oO)[ 2*{K`C'hwow}|
Ms=$(N
c\RSOikKy9@8#]
(O3IBCQ(`v;0UW3%ZL<st<%0mF-k_G~eHvoic=+#jd~<wxdUWaf\h2.Jf&?
kN`WQfQgX#8s2ph{%XX("4n4Ss,[s,c&jK8}^+s^,~X\OZcmR
o3:H;}RHE}MOT{M&F{
*&C _7 "dD
+pa7NK9'
w*p)IM{d(9]-r5'.
mQE,
H!/Ul=8Gbiv/Q'cOL&/.J$AcaEl[:5nb-(
sY=j.mqW&QNOs.2*t?x$_@o#eLe4M3Au?:+$2dqI)
~!6-*6q"J`f(:0I'M3m@Z9wTU[nH4ra/F|*g@=vHi>(rMNd+Ep-oH0u\GEK/-A
IesxA|JA-P-qT+4CL)ZtnZhbciEtsCl9X8ebw5 MBfi
1@iQr2OufV)6/hr>)Y?|^*x[Mq{M##Rr,ft`.mW}p{SMrv~'e*CJYEVP\KvL=FcrP4P!wqa?a8F&RL]QUsD79)7:W~tPmHK~W7N:$6)A\_o=jLSAF E*71%4P
j.
V`!9IYdY)\oj3
s(?@(V\C$}a43juvear0&&6\1U"*R:-*=VaRB]lU9]x4&m{m=]J>ox~2{uSlNVWE
bB ^MgB]
m\7AjKNyc;wK@!8YjTM@eikbO7sh_tEPJO4{iwo}w$ .-]s4jm\IH+~!-C:6krr-OiOZ?+[eF-L
-x3_)b*E0#gCM-_Ri-}._*sRySS`w}:`6G?_]+c~V{#=l&iW9gq3is?gtY>/+c.8v0S\u6xrjTGTJTwrX#{B
n)YWUzIn=$Go|>z#cs:>r
Y?7#Y
A'6r-0YZ8Jgh9.;u9.J_DL\(rv=nd-PbA]\HBe4P25;J}4\9HXqq}+jZG@:zURV6muzdB%5Vw
-ns|G|
XU/?I,(>UA_Jg[gLqd d_8m;Fgn_%{]>lKX_*dWf3O`ZP<Q1o0$
0ab
Y1`pLA,}L7r,!![,pz:)r/a0Pcqp[-`8-N)geL7@>h[9-q@ovh_u2#gYb1CL&?%~-4d71%OKb=
`(A ga{aOmuH*nOWAj|.V_IR1C~n[
Pxq.>o(;/z8cT>Bz55 H#R"bp"6OEAOBr,&kB{Q
DfS2b
DqV*y
!EV}Z--!$^2Eg#I< 47l3Z C:Ol`5IZkP-p
:%
ztjZ(B'^ ITg0fEY?E,TP.*DjQIO@PQ38TVuBc<ZF y7G]}
E`
)i_Rly5[/x_}f&~/\+EJzC0 `OR<<q / Yj/60*y(-p~
(T1*g9GWv-y:Ew.@Vm0NiT)VHJ&<#UfrPVNe"7`S
6zn?~Qu~-/npnu?~XV$MK4~W(&_D#.q_H!M/Mf{!VMMCEEy&6~6_<
4dD X(Sv[VY7x/9m~&pmZK-Ik-CLgDbt/cm`
r_Nx$CG{YC?{N
k^D:c`cK)Zx- <]cv2L6o8z8+ozr*WS<z[
;lNc1uqU'on{Etqzn&{G(6dR$-CWiCq|6
6)_4JzDg}I0ppVbbJ!^
q(EI/S1q
Ftaf_?3ywzgI!t(h
Z=vqC wp\17GrCs|H0s/Q<rx$N2!D ")<c=Rri)"Pa%K<q5-A+1Wd?
?V5GLmJq!%crA'c<A8+/nZKdy,UN1RB8S>MN_DR./W5)03Qrz'^5=~%BA`~r<-O-,O%+hrZj/"3%=-W `lv@{$a)w5m!}.F
[ acI~-"EhLw$(M<*Y|~/=5gbJ>nb'!Es2`s@cD
Bm*@p7FGfQ#r[27kM~>BvNw]}GGjV1o.^fBXW=n+W`8t%{`3-yg<+'&!ve
eY,i/4&#O;}>U"-=}7M)g|Q
^8?}6g>9Ene|N0Qxqn*LD(wl{J$?VQ'yN7r~/yM~IloLcs%/jv,$?
3
eC-gTe1~xk#O(!gq)jNOmyzqR1b Wq;_?%a~vXk4*So9#&vWq$@~eAe0|d(C6mEEu3gORW[mHvvfFa"8^/o#viuG }]LApkmOoSD9S|Q
kN^d
l
g}5lQn(uS;i]y~mUQONq1> J5fWw8X5/nowO.^
-U8O\ kL
gYEJWP9*~usY0v=1#NPC/UGOeiJR0Oy
{&Bx_+RZUQ[=\=HvKy~:Y!!S\P>!|B+`5gdG4gI`BK;?#G8BANz=wf|ct}?{A.g7
I8
_/\x&7GG;8]k&?~ih%alb8WxCUYv7hJkjB3gE
hJA<Ig3cM84l[-s]3HL5:64Nq
7V`o?rF8afbxYc
Ue2-WCJ<s+Mbg XmJoKVH*%G
y,RZ%x~U03:P
~ 3R5
#w4!/Gpj6d5XHVD'vVHDW?
+7)l8yM>T
aEa`zT%PX=M= 4mj(<myKz}]|
5u10Z3m>H%\|})l
c*\C1>`H#|N{f@Tx?w}!p0Fi`oOr]O"
S`UY2H#Cubf |V'e0!5q,tIDNj-v
"expQj*3jBxlAJHhy#!sCB2 )/
|BG2}sO!z*}9jf%#223Hy6(Nl] Zj}(<uI&f>|t$[=`(M:T1CUP-|(
HBP}%RxUmw(?+4Nu^x{x'%7/Q=j#p'Meijq4b82VV{B
T4>0d
7w.&zsC@Ws%:t
Qk5YZW:[fP2[k=V!;~'W7j}|U'G|%T?DD]@
$A$2K]n{s7nMcg+pw$^
&XXi9S 596G/RC+]EA7wl |e
3f~iRQ@Pq-$g
nInX*{pPu`ii.-K2F45q8A57*M, P='
41v5F)D?kM@2-QfUiyj=/# w >l*cx>>2O>D>bAa
yufw]BotTp#Ug@!Xa8- [ +y<t@eeQ@B5pYAi1,5n
aF
?8E>{{]2 n%|
Ox#ZM]+nb.+Y?co~y#q1m<_Dpu2nHBcz20uO-?}/{w#w>/}}0w^e^mY0?4 U)wtO&:e,}(#q|7)w7mRA9SL/uf!/X=;|FJq^#>{V65^uI!J|GpJKK$PAlN:6w}!j4Rj5"mu><}yq}F/`duN_p!"z[eho!h^eb1
LP.;@
3jy4GKwWAaX($j;SBzA|HV_#.TyU
(zh)Y'CitNSGA@_Wl3(L+T!=Ta<+]ii8ey8krP_J!5F,cqR_5M)Z[!$QA>9<pRwdD?D,5%.WCmsWlc
j~6"t#q~t'XsF3
E|!,{dXiIHMu_gT(m<5U4d,@dA{,:,,:];4nIAkuj-7,-2k=cR
YkmRdTA_`zk`Et<;B/ljG2<;7Ow=x6~@|U>;8"pSHO`K7->?2-c>e^?m=MozCMk7Uo?K;r:8\=`
@R-Qfl--a1Q*vMuuGWK4-zUm9~v--$fF93}:R!;axfiUOf#$xd#>$-5kS!b@Y9-&2OBiwH;p'esO TFy~s{Rbg
5E<b:La"48-',
fIHeAusc[_t9' R*oY3-uf14N/8 .~-T
kU)ocfQd{3S:)vk~4"G'COoAndSTT;@"$jV!JN:N:bL
=3=H
-EbIPvZv.Cj)_$&K2}E}I+0_Je\]$]UO-_(~-St:
[jIoyF*_lZSj'r7,ot`}i*A[C\?,NtWxi/uf6ov+@9LrZ
q<sK;-YJ='\b%yAH9>
yt<f+eb:7h??8x6BKqOJ;L->S+
n^|-v
DFjl>3},
n=P}:?<Zndq
:7@{-a=pnD=Vh:FKukXDP5*
e*^Mskdkk4iMB!!"}
rAz5F-A4C>m\B|@dP^eU=ay5gfu
U#= <5PDGD5g9l
vM0oQj{:O@78$_]Tbjg d3 /`7- gw gh$dq*mZ{B-$a1j]OYNr&Z
~LI\#5r!=Z9kCT{#GTuDA;v,nh
MywoIhN/3w2x68BLr*.-z
"# wJ~
&
??3bDI#b6M8>df9dCZ40nku4b:B|4{n=C[,,Hyb])ps{)acN0<M
R'DU
d?F[
s-vg}RFqD$EQA
`n{U) {~lw*aV
.^ & qD/Rn+A|,Vc{jjQ2:_2LKt+9\'\71Lc2^_
+V4!x5.]Ao[NF1mr/9 j6[|C'n"&NBb|0oF`u@`oF9oUJC
vb6MK0ZSmy|lpv{L0`trzr6Z6`:jjI0*\O -
B4)\26"Ej6
HDbewD+4
7!o]Kr.
LJ
,."LQJ9;-SX`?*8Fg~o>$ mn
4hf2ifr
@b\-c_cy&U<Nd.nqh3hNw}
x9VwUPXv5V`7{S?fH.h8w4BiCck}M4cNt@2E7|'&jg0i-"X*W1=%UO`=Pr"u}\(-vo!>;{MS?!y3HhC]JUmRA'aFw@o<*iF2BK#Ma%}lo,gy U5CJ,qvG84nanI->w2N,Ph(y7vkmXa#--h -"tl7|K7EXzA0Vq9/%N_I
[RNGO.+z:?(<Mf7g#[*G]#EXGYFbUaM[?DY
-:0Q^.*SukCC
aDB6-rS#DF5|(<)@[{o
l:B
c+;4
P|E'z^oM8dxI#P(wX{q`?{.
C}Xi}]1;C}S`Ep=6Pp[;f(`e3U~DI
gCK?LhG}X1gA1\w^lUuB: [%*3jYW>2coURe?q20%{Z]Yqf,j#`lG()''I;=ND~=E!0DD
%#41iAH{z4(2=:Qxs4(~; ?
fIA#W?zcnBCNI#ipj4:Se8)/kq_H~l8|2Qd
f=@C'_?m>N~y%@?~;;SVaQq8gL$w
d2Llx8
4
\C!%^4 k[1
!)~DDM>ASBue{:#
IRIv/m;eUw\v s^yXG%r I}(LHZ6./xQ/5j1rd)TSm!?O~ 9xNgN0^_y{;H{CB>?ey%0o~/PVS;
1>Rlz-}=3n**|e^-cX?^@pj -Xv!SI04hZ7"FHBl5tS!hl7V8a%.YbuJmbN?]k;>.&U\cxU|W^'f-Y
*]\78JBGEd-DQC*&"$JZvCG@w>]pz`b8Co&Gn
=J=F
+IPwYk
!kQ37AL"_
&$%XDnP+ o9 IEUS/
*+K* PDaD*WPM4b6o=Nil:rjH-Ek$MXxJVbY\\
Y&0~:Z
T_9$-5M+:Pq
%j"IdOZ2|YZW.+t?BGtE>?pwcl[Z^&C#n#lJ2A4,^4UD#FJ79i.km"YojuAhZ0Tu^$O^
} >V? @68kJ%7/GFCG'a&Fc8k`#<GQK>Ce|8#Mn
Non>Zz^Wct<3X%TZzzu{cKoQ0UX$-7|3D6Zg~=
5&=-3so>LhL[KvlV,DF(?(4h+N3:-}uk
]]kjgs[U+
tw&N?>USo JA~*zYS,0?IKM DPCeW*ac|(H=**i633n|WqTm/X@Te?
;`Dr!MeRS= 'l
\TU?~:w&^vPuTFppMq-%-\2S3Q33,53[lJ4sgx?Q{~Hw2ipD)6g)'hs"
&B/3
wDVKLgA{|Gi,
H}eqGi0u'j;I,TDnI}cSn-#&D
26M+3Z~g"l,9"::
b
sNsa.z839A?T9kz`.]:c
maEoP
Dy_u^9lj*Ahx#FSeoJkWTam ?]Vl]@J<X\`yMIA_$lkk%[iy33|w-)in:)p+=:)TO{ey
f,'&Y+&g~z)[G{{Pwg[Xg
_8uAhk2
F"udEO]:#_/eK<WVjHAS\-qhU@MU8.p5]y00fs0\V</rkVui<y <U{E_:H7J#jmmfbAK]^qttk@ZsL8Jn|/
;5T?[)4]Pf
who3gOSo%lw6YBIkpvQ0h]r,0eED8]3/dT4Z/sx;|Hx
ig}%`|hah*NNqn[ t$
fREaq!!IRi"%^(;-'pB}L$SiBA-cM$_:AV|tb+!i8(
/Vv5kBW#lk?1[n[f,b* A< akkql|
EpBj{=Z
bd3]^ufaM|vRK-^mlU%+ewI-IcYZQSPbHYWF-)}_W`2HWz)YG,P:}>=39S_ "
jcEVio_>=2rE/x~y-NgmLra+L^?FV\B#-iJAsFH/BN}K.l^T
Y6{@w)jeYam^<Rp/$m
`g[
O-'+l/BV3=UFz+c;|s1nk0bY}oqjXyB}\v^*5kh/of/!*KVndj"{X5R:k^HG&,\
r/Sq_ZW.clL#jxd'gNL>)HJ>Sd5r|X
4a)?ck"@-!l#Vw{@Ehe,-_N]=[fU|)eO)VFRX<V]rbB=Sh-+G0p;>Tr4@7)7(U04'We?/=>X;puhr<aw,xVnq9TQ6T;LK9\K=}3^xN]aqA8#pq:/y!{+.ow']ux%BsBnd&T1-pK?e]V^|?1|)22'=I.9$WvD0#}v(BWSUe4ONCC@,-ot'TQislNO$"
X
H^]c_( zj-xp`` z@z 8!sSuDf`Z4P
ZFFQ]nCdVHr|cnCg{#IA;{]B)QOFZN(AQ9vb$; Ds8td"
<0"`?-$'O!Up@lnB,rD +S}Uj!HVuQR>
\Pox(< 3H @ Z[=-uS6#TYS\Z)Fs-r00MAf?IW2+/\LiCN
SU{gklZ)7
E}[sPA-`;N}iP @Eu:|!K8VW
GuVL}bqPbU7# F&N;l
Atq%'`/ua)Je6dX+/T@|5(.G;v%
1UJ
-#lN`:ctbr'_9CMP-4
_Ql O-L[%KwsaWgK\Gn4aM9}]iT'!
cz'7
i#0@!Xp1%o."HxqR5c3r*K:%c.&[zoTKH/B8BVwQ-A1xcE-wiJp^aH
QJ %H\';bkT_se04S>Z HE'"
F
F}X3BAJE-|F#!233B] <.5
l^las?5|-b3gUq6^%l*6X t]cRq{Pi(o[Y,=Xa02U7qn3u)< K<
k8Ikr-$.15zHFppeDEU?263
RW@@1RQ3H4i_d(=L
-[FdE{$MLcDEC]r<kxx.D{]>1W.u^su};vi@(
P%^jcs^inSl]${cy}>zU&{nx[0A{VCtt_u0"q[b0f3h
X&An8 <
P 6Fb#SD8v6yT|w"_umTLP<`'!A0O>8Rh mX=3-LZ+NW'H4::-^
%F@
m}D8;TpWP'Jjube!xd'zNw:
vW|[]g`OU%=J m+h:r'x
\Sp|/vewO|D'9pPT?0x:!AC\!%&(SF|,|Nb-U719eXZ,ZlFM{TL|&oOycBwO&a^ {w7ih2
RRZ}TAg5H@E/_s)iBi`GX+*@
HD@d$<6Z1
/G8Yd,^W*'&#r#V53p
tDF19"A1n>VGU-
3?R.aMLXO]K[2qk- RZW^ir@(r.Lf,ge[-#eGwX>
'gW[>@[5_+_)HxH7MJNg-e4hr{gIT}n
=}/SVDf3B<n8\/lk-hC,.-cZs%I~}S7@n!CvM|+g|>&!~J6J|n"#9\5.@jBD6qs]~;h34k-58m.]D{y6\l269"
^V,fe}eb>-{I1!C^D>ZZI0!H/6z,KWS P6Nb%x-N#3ip:[
UTD?,*%x!x%VS)7&@u *{}Pnx,<6 @;7'Z'!wh(+a~
9;EU|roUIP{Vfg/SPysb[,'jRRu>X\1C>
O-?K&geC8sihU8JM8
I(
_k
i;KG"(%*2<FD-{-Pv<xqo6x[`wpm#nF
F(-,kUn-f^(Z:RsH^z9i}y?
O0k(~;CWi@"oIoxI'?<+.Z^8-
D+Ma_6-1}#@bTeX."+~Q({)Z"U-9,kHPH=k]kO,kab_-Uw2
V}"~$x|8Z0~G4xfJt#@d1DzN1nr`:fIc3i8&_
`..`yZHhC.U?@>BO#Kp\ (qZ7-zH(y]@EG6%Ght*' bHLH3G
)KSq:uf<-_ho
^b^RkR;QGjV&mKN(II7W-j
$ $8i0MIF5aFGT{Owh@J3Pb-(dM@NKjYi,ukikc$T8UWIn-^0zR
MlD8
fa*aQ/yI,<o]/ T@"X7& |u_t)-?b=|gi__ h9B$E<HUM3v~9*S2BX19yPnqlx3" L'DV
Cg*)L{</`ZB[t:=@|u;";;n,\grw]yKd- m}S
#B+07hgwxZ-690Ytj*Xq^~|?'|$|w@YCB0L5gmG?7L
TL>Fb{G7l3
p,(-b|X(b8HbHNN#N6zx04EsnM,&*1G;PwSWF`<Hrsp5/Y6PIv+J&3Q'cPZf>-WC
R`/1ZMZ
" T0ktHRmT!i.#|Z ]Dyigej]p;f!T8q
Nw/2OX81(qV&"h>y_JMdi<QjqW7602&@Hwx";^E@aSCmg\
#K7>Iiqy#n
u33_u_:]#c]MgkKs]sQ^?'np;Vr'}75C*mS$g|}9iDJ=(-\STXuoA{G/gBO^
r
MB9Q0--P4^4x#xE`pU&1R0#*|6Ou+vO@XZ-BQ4*+Gz )Y/q[RK
X+v~
NL1 q)1pi8Q\mI2q
.S02PZE 7w\}p#ci
uiK")#/f&DI]>$9
W!$}@'DqyB:*Vzhjz[[=vZT'ZV[7LEV{A5+h:J!2nZ=ZS
"MM)aK:L,
OIgdXnO=%fH?V.MtuIEwGMn_%
i|wgC</5K|wy*QESAXNfv<F
KCy@v]wym&V]\>c@x}
0=PYdz"OYc%z\!,R@,9g Xk/{1
'
p)+y!CBg:/jd<BXP+@qoSNz6![o
%\G5Oye-;S-gcg&\00-1|I}|[PY[5s
0[Zd-)'8MY%q*P3d?{*.ZgJ/v`A&$G+
MW{C*ZsRj!t
qlkx
xVn#'17hN"\wBL]gU 9_GV
~lz/sF/ny@|`7RplO7^QAQ
~{sgR]-6WT979=uC}V#hN>J%V}\No;/48lF?<E$5n3zlXI<<3R.
Ezf,hGI!b_?3sXb
+jO[xha\SwjnwY"s z
qi`<'.H#hjb#AR3?\|@1f}*CH{f9
!.6,%Y]!wx#D7Dh [!
scCR3 :}Cq Rce}"iP_h$TNEV}n
~m
cm%2^=?&.&_iIU0AW'AeSO ~%WkJN*L*$P!gpV!>
RX#i!j
}x`ce+!*Hm=Zm'+69iD%xNz-Md),JcTk6)M+?Un0]8QVy
3`-L#+ur#0:St
GU
{@6MOF}s vFE\pT28;?
%E[WN& nOs{gExXZ7c0}0
/MQCga9\FPDJW-n*@y?]1`#6,ULpmgkG_D-qYxi
q`az&$lK(=)c-$DL!Cp-H
--xwSV[b-{W jkxB{%#p<.7v'<_-0X
dAP
UpB.t_ Qno*v0t"[~Rjj&7y9m(
66k-VB.9 8`(Y 9)3J),-(l(V| Jgw)v &6-Gxp7
u:e~oNnT
z k;$>
- WrY7?i)j}
nHOX!_4WFzq=nXQ*~g;uhdNWc95?pQ?w3=}b-P#~3>.@Hu^"
f9"l@#0DuPM>/!wFlV1/nx`$zWpM`\`OhhqNQ["S\UU:")e5fJ;S$'v=~:Z3+:7;MRd,tX]XTLIIuzgx
-octvxGw|lOtL'v
lT]8z8@7CIEwajJaiWjXH-}
bT1qaZkfMQjOQr]owecktHdv~<]|5k%&rN7y%CZ+N$GGHR
n+F+-X\1-n@\.2[S|xSm*oY"n+js4Au\Oq/!-[17$.o*$~;LB"bhj/$ONH00I$#$ka=7kT^"
` *KR"k5v|`R)~6,))2YLA0:YW[S#G1LIj'kN0
c~m8+l(>i$B_0"jO*
4.h$-YPP1E,VBy'|U-;h$g"ZGey.J=2"VPDm~[P)A
7sQ2H:Y(S \rcMI1\k;
U'A5=i$V<Z.e/V]MfuYEKR}-k:*dNR!4!jv
\,'\}ut(=}!%T68 Vsjld:<Bm@A !Lw(9~i
2*
-r-i%q(>W(?epnPj_Am`}pQ}H5 8ZBn*NrLVu!ODt
:zWoge7bmA-E6/SVx=.-ZezZ#8a4RQfA%im,#Jld(9[.?>{Zd*mD_]I\}D[-"H%9[jcL!})[oEoTV0;/c,~(~i.w/aB@}fyQ5pm.k, gYnNzB5f_@oC$.fN2jb|8O(w"%G&N{g=a_ZU[60V6
kShI>P7*abUGMqg<0$3}H{P-izxx4"i-FN3
Nnk<`OyVK~,\Xcqb|9B!1y<;J%\y1KX}HLF1p I9G!-^6
i#- dd3Rl|EI/(;g.aKCBKsr|B,F*JtbR3Qw=K?mZaarbNK
UAVTm ~5s:<0.he8-DpP
*P-A,BbEHpc{&=n#jt74
TF;zQ-+@7m6-F-njyZZ1UqbT=g;sFmgf[+
<Lq;I9*E#hDF*DBl\QwY7rqoi>b6&uY2boe8&ZO,4KH! V&o(t)weM HSbEOjw
Rwg#/8<&mi[I\,!hl'ib:Cefe^wc
(L?<mcxgPRg&
$YCW
A=}KmRW3}epmSo>q-S"FUlP'R?IbjF2%(bdI
G ?lNkV^l.zDc[;^{=Y >G^=
QT$qz~@)iFpR(
U9/7 0rCeQfVfI-fVi8n%_fXZeI:v$@td+_ BQ|rgm?
E'27P0>X#v~ *o1GN=8HMj_O%-\ft+D_fsk~9C}0J
3 z$WEwx$KQd'YwDIX6($<x@-c80]SI: # <s&WM,{2"++cqx
lkVa[U(c*&S._nVg"aG5? u{fz^sa[EeA]j{^JoO6O_b$s
vjf1}
@XJ=;]Ky$"8F
R 7/(y?w </C6]w/rucH'w`<!M2k?~} Z89BPMf
wa],'/S\3D|H/'Hs4}2_AsGMCu_fp~|{GG=XPc}.-dDpQ/OmF\Nuj_zeonEvgxlZG-B-6T"gi_o'6
>-D4K>{"+IJI-O}
?],g+}"g(DU]B10H8Xw],^v8$*
X>TQ,_4E<YJ71x#P2fG07vs
D.qeEC(
?qA:[:> RVU\t.cwqJ_fY|YvEx#G_]juzEbltDO4
"/q; T6,*^?\\"Q0oTtDZ, XG
lk~[|r(Woa
!g_ yWYM>=Bkzhx3/l/^-ck.|#"P-~x![E3QV
!'j}Y=S?}oOJs
E~]<<%B6V6!~by=v?;RVym.o1XwWwpo;akypsj'y/- 'C
pRV%sfgT2k&^,,Q/tfl7
fMTL("snpmZ$#hGRlS{Jd-{I
Uu/UX2Q-7G^#PZ6&5wV}m]-T,M+
ficu}S\V4_~Je~{3qa`ei!JzhVm_aUU)>;#nn2Lq^A/n=H"NX_jqupvVMKv/loFd-4orjp6fF'EDtjgj+kczX=<9]'(}C$[OP-}yl~"Ov\WO5x@`.<:#Ae@A';i7!\#vZ-3DW7:'7[q&MqjFrx
>K+q7Kaor[4W0y`#&~~mWc]x+4a7*R`
bzIdH ,3:_Cf?jZ9ysZaks1Yc*{^[6.ik8-?36
cQbbZ\xKPnd1#z&% ~nU*~zhe/}@CZ@8Gk%(
18mH*f{| IUqbV3]BrpkJoVs5
GC7J=;>KT<4
}yJc:VWYip]Z";or4y(8r_IK`pCWP'WD6iU;r8pXBR>D1dFbOESSXFjpd:LA$-[mEi/d:j{>>8eMk^x7
DK(S^fu@
UqQsd=a\u+h
Di%zv:
.#\ZcZ?K#oy]
Q3\Cn{G2: s.q,[o@o8TQ4+H*N
%WwC0]`AX<rpKTS|^`.! 'KnI"tCarQ+i=I/dUE<D(-_vi4K\^'
gn@mx zX8Q]/
5'9]2Ca{hyQ%c[l.H DvnROoiv~*5V2@>gw1?XIT4Yc.#> (N&
2X^R`fdEeljjj%H39nXfg"5#d)#NMNA)
8D*jJFZB*2a2Pn:VG+^eHs0aGNPIVq/$!f$.nbZQii*)%=4a;("`L ~RDD&UxJCTSRMf^RGM-C%VUe gQ$5!#h_tsHKNAIXD;a`C?j$ns"JPN:ku
)@4D"$HTT {LdqKP+
:;7^?mY-)Q"GRD}NEEiCjb8(,kLXfJKIJNl5-DjZBZoJ =
6y(oU.w~I@`<\"J2%%mHbLiH fQ?T4b3nmENn-p
j$r`qfl`NOJa)qlJ0ScJJj)GG;(L5_IcrHG6[Y]
0M5X+UzwVrbaz^0\nwfN6L1QQR6"9-nYx$)D=2 b44~RZ\9I5OA6Xf/}
\LPqgwAu! (
V@@Dn m]**b. j{zA-6(3dIlm{3g&g}yI]p xt@WH(0QJoAW]6mmRnyI0
%I]'3reeyX_"K.XX2-$xlZQs 5|P?kt@&~-+--1(?H%
>`3rUuaN0EjV(/5=mAT}k^r
b
F$
-0*jB419v`-dx]LAvA"$Qp*XhjOi>DrC\"xx+k,p Pq)W4Q0-W
b
md$
c43++se
\oG=*GB>Z0CLCPj-FR?.x\%.S!!a-v9)|leTrGYc?
Ir p+
D2 }YCaGw]=`w"&wmMm
2db><+/1xk??2:'Is|bfb?6O6~_3a~KL;fk=:7(:HK=+![gfMzd|YZ|/[pY5"=D8mjBT9M_(^94p4?fgaD
C,:V2zor+vz%z<eL(d36&Xl_?^C}C"^GP1T%|{^l<ZL$^ML{2oT3cY:^M@@MH7
HaB4/6^E|*i3B|gDzP_{avbANbWSeX{?-4}AmG,
;-wo>tPP`99Sz:%"f&&IfDM
Np?`'fm@xc45+yP[V=J2dPDMUF~G,<NH
$8.h+bfl^~KR<,.*#}o_\b.Kb+AXX@gQ xeqA41bPX.[*q:hd?6F|jK!
F[
`W}3"
\/&Gl-MDx._
h"Px!OmXh;_lt%T1;5K-326N/TY
m7Z?&pwzSF:[lDl Wf@!p47[(zw^:>m-m_:]<]Xk
X*-`6&a1Dql
n"n"a#`5;NX{(OmvcH_Z3;;;{8;`6Nw-
s.|`7M(fX__681[?9|Ca0i0L,F%:&J+|m =@
0-sRf}|B?j/{<U9p6?[&.)L8)N1iv~}mKaE/c2m%u|f:D;O#ra#&A^b,[Sd-M9EXcl`lN;c4/WX(r_
pZ-JX{[DRvk]]? Qoir,#3?!8?3$\X9A[f5)S:\hp
zOFoMO~tJToCS6\h]x{G]/
sy=ee353<<}:<Z-Pf\Oi-WI>-lc+*{Qn^]}PGUZZ'xR#*MX
]e-Z<15<s1VWk*i9
wT7s*p
2gTX-X* |}g<{QMpaK
\zvyyZ|Z< -3=R d2
2}=w;X6XdMJ_?`c}HJGva-k?pl*oXC&R*1mieOHp\z\*]<H4pV"Jz,JaxeOMLG[OM-Ne/6_K--~Po%b=:
I/Mc./snmk=AedDB}~iQKOQ Kra-~'pF\a03)#'cE*ANln-5EN&\TlB$hlB!f\I'oDY}`S@CVYG/6jFi#43<<k+/Rrv,%nF<s!?nv=$:C;oa)cY%rs`6GDD?h-wGTnwbu/]Wtfp@;KuOl.CDuv(/BjAgc-obg{[!3omuu\Y%;bou:bwpm;Ew,e
[Yl
7@}?fP%O:0;;<,W~kyx_R0k[W^"oc<>6RV|5+cR,dc<{>N9Mr>65|l;RRZp6ncKo~eaMq`KW;acJ
|uT?[mvv-v%}3<;62;,bsw6YGV~
>b-s_ <h|TFw3fVq,3H<f8\duZfk q QhIChtft&A68T4js
fT4Pqoy4C+
O$wYvgr
,2Y\DgGIpiH)Hp<
xbYM@v-Lt\D&U6^
w1V q@hYS ek:LTK3X5YJmy$(lk[ hX!7Bq_16MMOLJ4_(bb>j:Rei23e +!3'HUip4+W2dug,*@vKG2|ese|H~3yI:wg.
KSeK!+!#K
mSgBup+
WvK3`WlYJ1?\Zn3!5H3<'u<e-!\)yi+ J*T8x-3*vWR{w
SPEL+
=!3SD%;YdJLGZTj2O&N~` 3Xl(krpX8HZu+;Dp@$jS^ynTS`&B~5mbY>\.l/<Xv
I3}
2i!
uKBK5&kK bci 8R<E2</4i/\tEDv; 4nH(tuQ>{H4E3
d
rIJ@!4|xnQ[9 V6H-r\BG@KGs%TPHB>5bC#!.p|~ua$WQEh
[u|'-O@d.LV;.#^o|^6v1!braoOI> eQ@$xdbdD~+(|Q%fsM{XP@W
`<1[H_b;K-"$+pgy0!/;pn8[8
l8A*W8C@O8<x}p
]ew{pH.8A|z9`m|8m
E.lsU``_wvz5z:c=|t
H4;x0{
ip8*+;NlJfd[F&
"2 `X!aFv#W(L3D'PDq B5?bJH%+B*VdJ3
lb|saW?-%"UF_"Ss ;Eo+(9qh~ 00Z(I"lFAV;qT+@>9wvR[P&~\=3J(Z`e{TsI}e6(5Q7&3~8\Y("O9!CPE
"DE(bPYcDQ l;3]W!=kr9.W
UBr/U5-]_&^tw-ogz%xuvw- WfU!&HrB!:
<-qT?g9;r=/X[W_~`tn,fB%6 *6p
##&@)2k7! -|QnvCjO$d/O:
u~df
?@}u o!;--FnI1d<!~3dB_
_!do@38FpYdp5}v9plEcU/!0
22~~s=2$.97BdLAmdBu~9ro
~'uhn3x{,oz`r{7[Sd6G!_K+Q11F
P5Gu[d0ZOle\OD
TDnjK-Gl\7EV1Bf1
A6@["9=l~O9uK-3C1?NH<mtF,! te&vBc~n_jv?snn!$]7g
K.!n&~pC
nY^'q
d-B wMo9qr.p8B]#}g-E~-E^8
y2k.=`i~HyRd :jv?D@E dl@;.A(G%<pbo|W2C&
HN:2eQOhI*!@)S$oyrr">J+R~h$
W5eA+7s7-0@|a2$4W'"J`/+D>b&rN_!/5vu"'.FE/c ,rw
z^A{nQQDAoN2D<IX++!d>E
W;okrR'oAF_)D^w78*H9b%(sVPQWjB@]Qd%X
,'ft?_m-0?,?2t)!Vl_FDrqBRJ&#?$&B^O>#"`%^
8VbK^(HL +Hr6$t6F4*`ram8f+.+-#Ua"k|exHtVk'"
.+VLp6WMVU_-/)hG\YbnU>DJdjU*Mr.Ok`0Xu _<
~_
?J?rs!>J*Q1sbZ";N%D9Tdx<lKGe7i7 /p[+&;2lr
.+%Lb
K$!4@(
b"!aSxfF(
~RL'zY}DeJxb=~b
p|RFqg8yG#wo*-7h
tc}V1aQsky`NQgW'I,\\.5D.$J%KZbVzTc~XmBUd\hCmmEh`X|f~v&\B.*#
7!ucbQ+78HJIl{aD~Ick'J$*|1_dhm*f61+*.Y/OHAs?m*DTLsCL}klfb5kINYH6\0KzBo!R7^E8b~HJ4ljy0
M1?HP5V$4)A2!CM+0FQfrK@aSU!"M-eqVKJ-I~8-1w<ZJMP#"@Ad$'Xo4HlFZ:?3BP)u;Tx%f!@rB@`@PHP
%Q9aDCNFcNY&/R'm/6l81dqed%Yi
(-35 19Qjd$y<)+_ZOKmj"I?2Y-$V4_BzNSj-
%D-6HW#;(yKy6Jf=<=.)mB,EZi-p
+rID_{&]RT|Z+x,-'\(i%N*T-G-Bxldbd2W5Y^W'72qL~HW#Ih1uMd8;2~>4\Yy\0U6z>v[hh5;92x&;q !O|Nh[ThPZ
)BBRrxXJ-*}Q0 H_
JX(>v5P?`C79p:'GrN- K]=
d}&6}8MI8*Jd:j1x>,Ci/+(kjjj*<Y\FMEd)<pztOz(=_sb:]4miyf\]MH8fB|&)b+k@(-gc{Sc\Xo6e+'.a`/wX%
@uzZqsR_-SS>_C QCqdf
W94ktmVyiasc*[=jiuc-F;NOl*W|+gu+t]#S+::FgWuD)[?]/WO4\O-ZatK
ahcqFJ[GcS5m/Uw
n6l6-{--j}pvznr3qMlSiQ^o"
s2
dW*}88E9uR Wpt*fQKdM#}NI~JnQ?SzQ5P!VET&
jFuFuCDUQT
2WmwG:]-L_n
aS!06loVhHV/El>vlb-Bf8 0Ck|@BumTr2/NM(eO`)![2$ywMjjW)INC@x
Tj-iwa8=V].t)>B%Zm:3=yJ4zNgyyl$7oz[#hpU^!d;b/^2;>e9PGgKZ9jZ^$Q44/i<45U>lLsNL^<-0-v#D=kYy
1mYz8t%l;SZ*[=jiucFgS<*.C_ /_?z[CF[n$*CIC6jJ:%5oL5;76Cu(7[6mj[r5m>jR&1IX\Sx]LBCOn
BnyqfraF%fA[s) J)*$@]okn
!JUTTCpb`2hLz]57m4a)a;W2\cbDNd6XEshXF[^WU52X,"j8OM &Z3[SM+
:e$B[VqGW<?t@;\p6L--=dXuo)K%kWM
QTEoTUJ`W7pEtGH
2!yd&YF'?'|R@\\In$wGT>(C\YqHY&j/uaV-^|S4WJSJTzhuQ;v>~RU/CEt>|,y
ov`0~Ld0-dcL
s<a8-cgGv{g#Nyri:v~j_puO{556Go4
V-4~U}juM7[ P5v~]R)6HQunx
=:}q//uuwu-Ujh,r9NYv// 48h,^_I$V-)-Q~qe"oRWGR
/-m\{
g^8]:%s[skm{YRP{}~B+g3
3IXD%c,d<[ng\fjwS
4w?V+QM/5=5*Ji.EYQP/jjl[4&H@ _~I]jWkUhkiM.M=5Cta)]5=k;RS'KXEOM:^d2&J
O
'oRv]!T6s-b1h0)cq-qQkABbE\+H0,
-Mj[j7X%>sQB|wJgOiiIc`M]SjNq}cZg?V\X|.]elk}d|[)_}WlE%,2-v-qk-)MqX
6'hP%.!IRa6^M;hp$%y2ur&M8qHI~x1VGz
-K#(.Q%k%OzULj~})Rt
w %@U~zt.};=fe)nLfAjn0N?PN%p(,
8X^Th0MRPn!Wvi-$(KIFs2x<fCj::.'neU >)A=u
#,
}Vn%rE?-R-?8o3
{#?"z*Hph9y-ZyeQP\M+?1]s%THI670^ubhI4z#$?8'R0@8>0
8FqYwIU6%^Mo,[Lj3S_V-YSjkje&X$$Zen=:k;"z>Y\/I77Y7 K5Hx#smi,N
n[O|
y;7_Zl#3b_y"X
m7*++i[qb@/f?h^3\Zw@I};$T<'|][<w%&<ZR
[h-5T)3$4ym{7"k3[^vRJRFkeVU{~q*P!SE!59fc+8cK}J~=l**);@rJu+O9J'6|cA]oSM4
dwbK\C<[*J88X-pdEy7*UMB-SspaawlN"e
[>I7h<dpf3i6*(Cr;
);}
kmG7%0BuM=,G* \ K5-ji)dk"VM
@w4Hphw=h2^&sG~FK-
ilD
]o -]Ir-6~^[ZRO8Yu)aJgCU_^.6sm]
{+*
ai lO-g)dm@
xo940f\G
Z]}&v7ekOl
|o?'.kItp]o ePcy.;t]7pec#|@"f,
5zt0ei61{MM*-@ J){m'-Mqs+z
~kc
@-jx<-Wi^$25\G:HQpF=zd?y(T6R:x\,xwKTT
kMEN*T3U:[Y#wcsss
jFOs*5vHlFLs01)>aq=
[yC@a
Dh/iUdU(7=-B j?*w"S0?YGG<.E>#>$^
+IE))a%Y^z|L%#2rx<'$Gc 6z+(UDLY=P1WWS
?mXRhi@
oe_y$/PysR,R^*@G.POT[Y\RbLw(6 nS
.4
eO}5Hz]fj^CDUc*a6dZT*/$@G={]P2xW!.%3A^{qz-TPZdhx\8@M6S%
",acwuNIu-9<3
r8vU=$V%9L/4PMsd.ZMsGH`8$zmBQ;@|F1x$vus:</jgZZ@:dy)Q-_4)~/Q)Eq!b~L/gM`9r=6OYX\
Sxr(Slu-7l,pM_;d((r^A,a-W;jj._8RgI%\IOe%,jS=+"[em-bJ:'c; BfaW!e}"/?.
4
^ZS:k/d~$OR\^
v-TBT*T,Ut
R3PP,2KL*cg1[rYNrlVxPVVg/gJczMH*$E%id
Y -)=!WT"6X0J&au3
2~m8);:n!Cjb-F ^-/Pwr=UCUU}_k2mJ.k\[cI7z0}g_L.!N*4ap
y]:'FDPt-pLjNS)k#Mizsg][*W]Y?|Vx|_G&IdrDBE]bDa&7jUE9BFN5q_~SV1^c_rS4R[lcc~rCU@p[4O)_dYUUPik;*n<py}4UP+'4uGa0jkLZ&d4z_8SL}W*9f}Vp\;X]bXex<]EnW2uNU[^Xm_hG(<hhZ ,{:YC%6oV_z#O!
6:4-wPYR>LVvU4qP70{tc5r`@i0
MQ?j]/i7-N'z~HN H ^~[#BR)xDng5OtMCM2@S1F\TM,[3/Fs'\SJzI{|zpJQxu%mh9
1hn|pO^(`W1g{J)9q+5yjXR.|_~C$~fCU]YJ1YZ_US#xL.S]!7F"+ '!Cq>BCi>KC39d}9Sh3WG+Bx'"57z 6
fPdz4tX zg!f05K/
Ym]_2{r=q'mUkbdC8x^nUHnV
3.{'S
=m6v=.T =@G}FLGv7${}&@/Y8*GS[G[nWn3
<}xGGZ5m|]Ifz~fx)Fl|c9s;r5;M3rW]8Im0voj3r&YsyywpnGh^"](P4;;XQb
V
K5Q{
{6<ysY3W]UTo1&w24KfJb2gHGnYU5(6Js$k[L5HY?SZeon-*yok+Nj`#/#O-8#]EFlD1mvT%w+lD1%^9}9:7s
[S&xyszLNg7'cU#g|O18vl8h|rc:Y&-_Qz+iGZ6<yL[?\CX8kAv/>vZ%HQJ7zD\K6R
RL
t?U,02(>,qO']agM07-]
-(!YGK`~EWT$L=f
+?a,HJIR`g)Wu%J0r(q\&)'~+
z'|K9qY1P/%H)n
NH7j=bS^r/y<MN0k.*)FO-NCUZ)
Qyh/hvo
TpRRnb8//-5`SK9<$>^+w10k6u5/z]z({7iWzKR3)n~h7[y{5=pL
8KwR*k|v]22<_w*
ABSv/l|Wt/~vbE."2u{lMU
:20~RT"%Yv;Y/qjN4.;LX$
%oi-Q(4pEyXI
OF1l;j"^mWfhHjZ,TW:\'D6Zom6C[mr4rU
Y5T7H[uG4=IIq5Yz-t]2-5KT[~6-TzO6qs5jCbyJ[R>?>z|x(!h_+n=KOs<k!{RD^hkvTD??2X\Y_;sOU-\fYVCO9`1%W!x;Fm'f'gVc*p~&J{3[s$Yv(Y0_
kc*XT`& DA'Q+qFe<A+W
WtWa.Rc!<d0L##\f
d~1`ClD;I&a%"pHy_AnH"t2tGRTB0<;Z`@;Jo0Y{PF=RqxH<'_(Ubf.=+-3,]ENKT|A1b
>=n`9^^
Mo9\gICle2AIT){8P)WBj6ST&JZPEEc\os)Yh%(V~OQ{8H3r
I]E-T%
DL,
8,NulOv(;]"6,N'!~0@0yZ<
$&as9tF4z-Ixyp68<E,6rQi"YJ|i\_LN;Bga 6^
>5>gOC=SAt".39\g-4qx?>}F**f,bNw`GUKT6s\q2Dl^($w:\q
n;]Bo-0p+X.{<B,e63sm5-<] x/bGP"aG%lSa
rYW,Pu dvYy+
UaM(#E/RPqDKC/(RJ`4U6K9Z"\Y%7Dw>'?drS+(YerIV`\W(M Kj+5Rf
TDEqf|V2Q[mi<
jRPF3_E)pz)hZ=XcMq4aOt&4.0&@"g3
,C@TN:N2W<B-!d[gx-Ki~yc16*o*?_)]EPxXG~*XZ#VvGxcL[m-jE5&ta1DfC]
:bs)?
3jyv7Cw9X#)=zlM MD[pM~\i:|K'?jZNgx@zC@gA'^evF(^
H2]bEIiVD`Xj#
EqsE^Bw)F}d+~FVT_n-G0R4*'jN1?r_>-+{?1sPN*x$&^] *=IX^o_Ahh
jy=v8kBuQ*:wE}OprCUc-='};\J8
UnC@lpy>e0N-r?v~c2[d}8 `M-b{"{#"[yB-q
n?m*)Y^tf_= T-nE
4!IPg^3~4V/Gc55^ML?|}O4_$bU2[Z'YQv~ tFp^DR&HrJ6Ql<\Hx%cAy)4)F)x?rNEUvQ-x{jzSm(|ShT[Qcw
;5D!Zy}ZvzW+]^>a#gVThz-^f5v5sC9,h,:;SeZ(Kw?]M2Eybh|)H0AEh#rQ^ ~NHG}6|lg`
C63oqZXX0xkdJw:|9[RZ-G_+(Lg[y~5&Na<]I-Z8
N_r+;sawC+G3Y.}3f35y,Y5|:2/BlM'X_pDIN*.)Aa=?(+cKplb91H
G
F(q8OC|-kX<dN@lJcN^(H/nITVE2A&ebB~'jq21JP:v)Q&RS+^Ww66E@7)W'/M8-.Yp|T"}VU.W{2]5M3X0j2N,0Xdi<o
b2B?e0t2R~
~g@|J_A54A?C2?*y
[/%'z'%gAk
\_a;o;qX{U
s~se(,%:8)wk@Ie:-">\uE?
1Ob}f`4V:p9AfNtmrohf6Z1f+k :>Mg7-l
8O.k5b8g5&|~
'3+o)Q1Qf
p^O2# DBFVZH$h%-DwTytvj/:dt0D(/$6:3]~/)'/T i4P#oU,K}1f~:7N3)9pi|cqel'??aXdO|6+I,or8ljEy-0/x`y'!M~w!$"a_(_PQ|&b&v'\)u_'L)Z#*?2%qpV%r
_2tC_9a ]G~n?:yH>hzl-_@2&d`3og2?p%z69L3qI><U@%n%\$yy
vq(}4p
?B9[[XCMK-x$0f1jNvlwG6}g@GKI9u]6L}1~aa >N/')z{]~";xu6qq
bO\Bs*u@*-s%^PuO9ZIb7?jo09V
.KVw-GF!'ZM-vO`u&&4xm4U z=Rl<vB@XsU-T0mf
lDomP~+5N-U'C_h(FW>tg~+'.v49+Y8bs
(+FZ-FxK~8z.^y+JdK}r}yeywTx%kV
7Ls^='ys51Q<]]='kv?}55;xX]N&Vd
MMGencM
Av,BO(
i$n`%/ldO|a@!NeT6+':vr[INU1Z{%Na/IXQ <vx6
6Y{ls5r]O~<VX+|Y~P(>
|bEwN WR)f*?|z5d
eG<xj5M=f[a2G9EV&L8N-ViGCzG-.XKWFw[/r}8}{C4\T{B2
~
\?g!d7~7g.n
}-lybM5*/
mVKkV?
^4N,)&Q%ikUr+<3
LF-#0e1e/Tpo4f<l=g6=4)GJY)~FsJ_nax[.J5dqq@L,BAN$aRd'@BD
[;r&rQM8hVKK8WJuAovo3E[!FK!sO/D)#2erJ lRQpI1!0Y]dKUL
-\
k 6-XjO7zNuWUFUB67qNxA<tu[]p-b~[
WxI n ?\L}&|
_9gZ3Qf:#+!=Yf[=Xv2&p(d%VM(V{8:
c`#4jw|Bk!J)@J-.$#[Qd.p_HK'>
-d/jH.c}Lug6[DnDJE?*s5J\U);P\55oQG3UX:Wj
75HkukZw@#h"`]AY:xQ=UF=#;O!n.`O0egC3 <V8
vC{a<WGE>#X,Q`=h!zC\x2^a /:Il
_0f9&uY$qemX*0zYt<a` 8pm/<=esut)94,f?vYAUy/P4=z $a!toivbsDu"Q)[:l'i0EZ"MK9Rm(vZ
r<F>6B2/_SKJOa~~R$>e<W&R]UQ#{a:~hp^%Z]!NfxUwS%O*g)0^jg2t#QW
L&_0s
G(mu6GfImJ0v.~3O#JU2-6|V?gw+-3+ i7}lj\4W\Dcw2XXcgeC0p]C^NB|0 el^F0`u<Q2dNei8$W3;MFL3Xgc?k6+e$rva,5w;s\-!z$;K@vw=v`^ZP.oRQIOO47v^
2wS
Pg]IBLdY<#@`'z
C-meRH_rBl0*)Rg? 5F+lO
)M
&JFJM!WDaW
Q/t>T-*jY-T=Y5hZirjKETg[+f=FY%QpF|7
acp Ujw4>k7&F-\QxaG-|#jzw6J
('+qYfi|y.Mejh%hH!X3V8SR't)
c1H;,df=ub."'\:k9Q:pgt4A&w{}T<7v|3dJ*,i9XwvUT-8ka2F-C3KKL(IHE$~/)'{Lowv1=;.WLj[S7:z=#V?gAN~48Gr\O3gLQN
/XON
Q@Bn
Ac3"'
Ns;cb/Wi,qYhP^!.\0-KG\O|:a?w{qx?!_4MzcD'>]f Gj>=0 b
;_Xt*IARSc[&mH;8LT5=Tn+a<S^!SmyA(z[-Plf17V
\lWU{{2>Z}-k6'[d2eKquY4
5og65-i:j2I1;cequ
+;6W+C{!w*EzG2U%
xv
TWMuOTws5
$,x:h<:{:l[[>4WpPw2-I8@s2Qs2pbi&Yy4X G(zP$S%,f>Y.dqFNx0'90za
Ku>i<jW9Dh@@fv6;_@C Md+BUGd$@P"+kmnXPJ]]xyKc LR%@X
-B0Z\LwDt\#!r[}buTa4J_X8b/JZN5.-%s^db }@%[kB;E%xixTfK
U$|:R2khc
rf{}Uk
*hC2ap[M$tP}_
n!6Z=%6-fekCqF\p.2b3'B9/}Rg?k8u3iM
BV47Z:e]B~!BL1eAiuVw2'}/<uk]r~8mx`W6'UL"\/9
`!)s'e^\}~7P
u]XpOZYaBZ~)6b#O8,blj/RE0@DLb#nPen0cYuhRFq|Zw\8-i]'GsP\!f;B
e^1#2o-DfJ9y;Kj4bK\zr%@="Z}.` gbHs>!`GbVYZ]2Arv/
MPSH&K
jwk}7Ee]1kL8e9\-M"niL#49A/zF$4&fCvqK1l{CTq-,T!f@<G4C[}Ur
( dn[HtgxO,#5x0-,KMwI^Bs
lq8qCD}|f57t7.,MS+"*.Ls8>/hq~[9-(.aiU}!,47qKY>{guANhw]$y+Of%L2=NN!3P/d?@}p;-^&QY!W-4KR0K^_@3X6[x5T)wa .9+j
QY3%bv;!Y-c|G?O[Qp1}L3U
(T_oxcjXH9BCjm6sBqk
^E+y/p0+j%\` /drvy@6pMV=ofqe
sAb_MW
Irq,RHKcX#Al-pS[&M!lNU!K{}\&7&g>-D{;alukBzKemk{-f/eN'K]8fL6sJ=f$Zn4ayn$PN#Xqha,RI4Jxv}S[d9|0jYS6*%,aYYqMm#k
wPy(#:fW1D|chG%#LLc%
d|M>>}OS8tL$cwREd]<<;F&(Yd.jSbJ5/ffv8S%aZ`[i:i<-dkP7kk3
h<%<<z;3$:Ujii_G7U=#y_{IQ3C{5e?O{`n2n
"TX
T
D1cRL`8 VYBd:p
RcaX~Q`3cQ+{zt;h`#)/
3\{U+3{
T/b1^L==+L^8xMxz
}eGQ{LV-c}`!q3EQb5x/39rn@W\:e!7{bem"2(fZzZfUI,&)S}rKypn[GEWzC-L;1 Gv$t(''R{)^*k?S|PT$YIFxq
z9)W}$2WP4uQ(rn{yY8vA,-sQ*Ub&P:9IB<gCrH+12
$se-nzu=:-X[EvXlvn(_+x/Bl)7uW-DyU::smH04p$L|4hNae`@qC_"nU\p?xPn,bS_{*.d AB1]*alh*@*_t]Fl2eN$
Zk~>-h\
?.31[qwQ>qNK|Xa]e?kowk}=
Ma9[`dR;RVHmOe\gbU&<t5XG%r+S*{R!j.!?w;*gEem<R!OSTMSQEset)]Wj%LlZsgbbTP}&g"7r|W}HT`wY} [R2-p|yO'4i@e5fWAE=yz{d^`Z7rN
}ux#{9.~BKl2}Z:cle{;7Qbup@dt(3<EI
o3 +F7:wMhxyAG\B{`cbm&9!KBWCLV]Xm,dr70/#g^0c+A.dH>Pn"~e~Qo7l$iqOr2GFz:B;
.*:n']-?Vock.%%$yTQ*6d};V$I-XgN^NQK0OZ+2r."m+7
}8y-'KhJB[-:dGD{iH+]Wn1BncazJ43t
&]U$wi8oQ'kA3fs]|Cii:o8D2O.%|8Wz[-l?
{2QgrZw/z|FL3D7XJTDdJ
vR_)'NRp\9*en.6Hfu=,qR[i)Wo~~(TKxW!A=+VOz_9_-u`Z[e_OMC;63M@fY}#D^Fs23yp2c!@-o8Mq\mZJlFcbOCIH/wX.wlx/<!Y
p)<ugoX{Q]
@jP#X5$;P4(yJ&v)>^)`)CJ<].VrE1&C=IKnBE
t~
~_
l+8fv+^aVZ7g|^m]%KN>NmCRmK
UNzAW^(e >}o*3
n}d{+.9K.')eOJa{[W(.0[i ;er.*{'KWpQ*,^9$6g
kZGk8($8-`r/
.D1{0:}*1L8IbR;1nhk#026Gl/b_xRUeD}$u1/LA])@MJI&F0r0YL fij%}>H.#Pdo)0
:g+6p~Wl-aS`{GlDC@Lap4|/g4uPO&/0thf,$)}n
G`/o7s2$pS%uNXWl%&PxGsX(.T_j-A4B.*L
IO*QvGO
1%OeLPd}
R(0VRS;vl<cTR]46!0wxNI&L`-u+l5tU/oq3cq3wqU$)`S
[hvA{Vd"8*[+wQ|q{;.AyKfHm;VbbZ>[[7< Mt9aC3=<Srk!P
_`^@up;3L,LNlr#X5aAm)a^
<oNTa"2-HfBg6W{JSrgH_n"'u;yNm|tYO|>6f0qFDs9z:@~<_Z-`cGw>&1O "4&DsV;yST6K$itXV_j`j.G2lOf.T)[FORz;a#UBN1';\}*
CSR8v{W"y-6s
7wt~_sV0B4-q-j&kgj;
}| %Nn:9(/%mS-}a =?s9rp@{64XlVkC
,/})~
y1LkS>&/aBsmbedQAuW1co?8N{n5C.} %!''n>/oi1K$3CjT-rNu`eB
b@a<v FA
$QQrj5UD&!
.xsap A
<zOhAi$
iiM#]-DVC'X^vix NAw6uVFQ%bF\UJhi#xa*B!Cvw[
./
l@?z
a6^6&.'0(UHL%FMw
r
ySlLB8AMHRz<6m4kBU{H"A3$fr!PAjs^[g3-VY?H#V-3$~Zrj7,_wiz=>Ew6F%>!Uq-)+k5qU1BKY^kEXL!<_cI]uzp5vvBN%G
berprfen Sie Ihre Verzeichnisstruktur, am besten bevor Sie faxsetup starten und legen Sie fehlende
Verzeichnisse mit mkdir gegebenenfalls an, das Skript bricht sonst mit der entsprechenden
Fehlermeldung wieder ab. Ein kleiner Tip noch an dieser Stelle. Bei mir tut ein ZyXEL-Modem seinen
Dienst. Es wird offiziell als Modem vom Typ "Class 2.0" bezeichnet. Aber irgendein Detail in der
Implementierung stimmt da wohl nicht, es lt sich als Class 2.0-Modem mit HylaFAx nicht zur Arbeit
berreden. Das Modem luft jedenfalls problemlos als "Class 2"-Modem. Sehen Sie ggf. in Ihrem
Modem-Handbuch nach. Im Verlaufe des Setup-Prozesses erscheint eine Meldung, die Sie darauf
hinweist, da das HylaFAX client-server protocoll nicht per inetd gestartet wird und Sie werden gefragt,
ob "Should an entry be added to inetd.conf?". Antworten Sie hier mit "no". Unter S.u.S.E.-Linux wird
HylaFAX anders gestartet (s.u.).
Wenn Sie spter ein anderes oder ein zustzliches Modem anschlieen, knnen Sie dies tun, indem Sie
nur das Skript "faxmodem" starten.
Wenn Sie die obigen Schritte erfolgreich abgeschlossen haben, mssen Sie in der Datei /etc/rc.config den
Eintrag START_HYLAFAX=no in START_HYLAFAX=yes ndern.
Ein Hinweis noch: Ich erinnere mich, da ich zwischenzeitlich Probleme mit HylaFAX hatte, nachdem
ich faxsetup bzw. faxmodem gestartet hatte. Die Probleme hatten damit zu tun, da die Dateien FIFO,
FIFO.modem und _FIFO.ttyS1 als Eigentmer dem user fax zugeordnet waren. berprfen Sie dies
durch Eingabe von "ls -l /var/spool/fax" und ndern Sie dies ggf. mit Hilfe des Kommandos chown uucp
Datei" fr die drei oben genannten Dateien.
Tragen Sie dann noch die IP-Nummern aller Rechner, die Faxe an HylaFAX weiterreichen drfen, in die
Datei /var/spool/fax/etc/hosts ein. In jede Zeile eine IP-Nummer. Bei mir drfen das alle Rechner des
lokalen Netzes, die Datei hat folgenden Inhalt:
localhost
127.0.0.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6
Wenn Sie daran interessiert sind, die Kopfzeile jeder Faxseite selbst zu gestalten, dann sollten Sie die
Datei /var/spool/fax/etc/config.modem bearbeiten.
In der Zeile
LocalIdentifier: sollten Sie ggf. Ihren Namen und die Faxnummer eintragen
(z.B. MeinName: +49 meine Nummer) und
wenn Sie Ihre Faxe berwiegend im deutschen Sprachraum verschicken, sollten Sie die Zeile:
TagLineFormat: ndern in "Von %%l|%c|Seite %%p von %%t".
Sie mssen den Linuxrechner jetzt neu starten; beim Systemstart sehen Sie dann am Ende die
Startmeldung von HylaFAX.
Wichtiger Hinweis zum Update der Distribution: Wenn Sie die Linuxdistribution updaten, mssen Sie
das Skript faxsetup auch auf einem System, auf dem HylaFAX bereits erfolgreich gelaufen ist, anfangs
noch einmal laufen lassen. HylaFAX findet sonst das modem nicht (Hat mich eine schlaflose Nacht
gekostet!)
WHFC
Fr Windows 95 und Windows NT gibt es einen kostenlosen Client (WHFC, Copyright (c) 1996 RGW
Express Airfreight GmbH). Sie finden die aktuelle Version des Programms(seit Ende 1998 dem
Alpha-Stdium entwachsen) auf der WHFC-WWW-Seite.
Das Programm luft im Hintergrund und wartet darauf, da Sie ber einen speziell eingerichteten
Drucker eine Datei drucken. Diese wird dann von WHFC an den Faxserver weitergereicht. Zustzlich
verfgt das Programm noch ber ein Telefonbuch. Im Grunde ist die Installation sehr simpel und auch
ausreichend in der README-Datei von WHFC beschrieben. Deshalb spare ich mir hier weitere
Hinweise
Als letztes erstellen Sie eine Verknpfung mit dem Programm whfc.exe in der Gruppe Autostart, wenn
WHFC automatisch beim Systemstart geladen werden soll. Wenn Ihr Linuxserver nicht stndig in
Betrieb ist, ist es besser, das Programm nur bei Bedarf zu starten.
Sie knnen jetzt aus jeder Windows-Anwendung faxen, indem Sie den Postscriptdrucker auswhlen, der
mit dem whfc-Port verbunden ist. Nach dem Drucken werden Sie von WHFC dann jeweils nach der
Faxnummer gefragt.
Ich habe mir z.B. fr Word fr Windows ein Makro gebastelt, das das aktuelle Dokument auf dem
Faxdrucker ausgibt und dann wieder den Standarddrucker aktiviert. Das Makro habe ich mit einem
Button in der Buttonleiste von Winword verbunden. Damit funktioniert das Faxen dann "auf
Knopfdruck". Das Makro sieht fr Word 97 so aus (Sie mssen dann die Eintrge , die im folgenden rot
markiert sind entsprechend ihrer Rechnerkonfiguration anpassen):
'***** Makro FaxDrucken
**************************************************
Sub FaxDrucken()
'
' FaxDrucken Makro
' Makro von Detlev Reymann
' Zweck des Makros: Das aktuelle Dokument mittels
' WHFC ausdrucken
'
Ich habe mir in die Symbolleiste fr den Seriendruck einen Button eingefgt, der mit dem unten
stehenden Makro verknpft ist.
Auch hier sind die Stellen, an denen Sie das Makro ggf. anpassen mssen rot markiert.
'********Makro SerienfaxDrucken*******************************
Sub SerienFax()
'
' SerienFax Macro
' Dieses Makro erstellt Serienfaxe auf Basis eines
Word-Seriendruckdokumentes
' Es basiert auf einem Macro von Keith Gray,
' und wurde angepasst von Detlev Reymann am 22.3.99
'
' Variablen definieren
Dim whfc As Object
Dim OLE_Return As Long
Dim FaxNummer As String
Dim SpoolFile As String
Dim Title As String
Dim WhfcPrinter As String
Dim NbrOfFields As Integer
Dim j As Integer
Dim TelefaxNrFeld As Integer
Dim Ergebnis As Integer
' Damit das Makro funktioniert mu das aktive Dokument ein
Serienbriefhauptdokument sein
' und es mu eine Datei mit den Datenstzen definiert sein.
' Das wird im folgenden berprft
If ActiveDocument.MailMerge.State <> wdMainAndDataSource Then
Ergebnis = MsgBox("Kein Seriendruckdokument oder keine
Datenquelle", vbInformation, "Achtung")
Exit Sub
End If
' Feststellen wieviele Faxe geschickt werden sollen
' Dazu Nummer des letzten Datensatzes feststellen
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
NmbOfFaxes = ActiveDocument.MailMerge.DataSource.ActiveRecord
' Ersten Datensatz zum aktiven Datensatz machen
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
'
'
'
'
des Verzeichnisses bin! Sven Westenberg hat mich darauf hingewiesen, da dieses Problem zu beheben
ist, wenn SuSEFax ber eine Verknpfung gestartet wird und bei der Verknpfung das
Arbeitsverzeichnis richtig angegeben wird.
Anders als WHFC handelt es sich nicht um einen Portmonitor (ein Programm, das gewissermaen an
einem virtuellen Druckeranschlu lauscht) sondern um ein Programm, das berprft, ob eine bestimmte
Datei (Spooldatei) verndert wird. Sie mssen also auch hier einen Postscriptdurcker im System
einrichten, nur da dieser nicht an einen Druckeranschlu angeschlossen wird, sondern da Sie hier eine
Ausgabedatei (eben die Spooldatei von SuSEFax) definieren mssen Im Unterverzeichnis bin finden Sie
das Programm SuSEFax.exe. Unter Einstellungen mssen Sie dort auch den Server eintragen und die
Spooldatei. Entweder starten sie SuSEFax indem Sie eine Verknpfung in den Autostart-Ordner
aufnehmen oder Sie starten es, wenn Sie es bentigen.
Software IBM OS/2 Warp 4.0 mit aktuellstem Fixpack, deutsch Java 1.1.6
SYSLEVEL.JAV : XR04006 SYSLEVEL.OS2 : XRG4000
SuSEFax in einem Verzeichnisbaum wie folgt installieren: X:\SuSEFax : faxcover.ps und susefax.cmd (siehe unten)
X:\SuSEFax\SuSEFax : alle .class-Dateien
X:\SuSEFax\images: alle .gif-Dateien
X:\SuSEFax\META-INF : MANIFEST.MF extrahiert, ausser faxcover.ps und susefax.cmd.
Die Umgebungsvariable HOME muss auf ein existierendes Verzeichnis zeigen.
susefax.cmd erzeugen (Die Pfadangaben sind entsprechend anpassen)
/* SUSEFAX.CMD Starten von SuSEFax via Java */
'set path=c:\os2;c:\java11\bin;r:\susefax\susefax'
'set beginlibpath=c:\java11\dll;r:\susefax\susefax;'
'r:'
'cd \susefax'
'start /PM java SuSEFax/SuSEFax'
'exit'
Probleme - - Braucht viel Speicher
- - Ladezeit sehr lang
- - Beim Beenden der Applikation bleibt JAVA im Speicher
- - Bei jedem Programmstart wird eine neue Instanz von JAVA geladen
- - Der Systemabschluss funktioniert nicht immer korrekt
--------------------------------Beschreibung von Stefan Buckmann
Ende---------------------------------------------Zurck zur Hauptseite
'
'
'
'
'
'
'
'
' definitions
Dim whfc As Object
Dim OLE_Return As Long
Dim FaxNumber As String
Dim SpoolFile As String
Dim Title As String
Dim NbrOfFields As Integer
Dim FieldWithFaxNbr As Integer
Dim NbrOfFaxes As Integer
Dim i As Integer
Dim TelefaxNrField As Integer
Dim result As Integer
' the active document has to be a main mail-merge document and it has to have
' an associated data-source document
' that is, what we test, if without succes we stop the macro
If ActiveDocument.MailMerge.State <> wdMainAndDataSource Then
result = MsgBox("not a mail merge document or no data source", vbInformation,
"error")
Exit Sub
End If
' Now we see how many faxes to print
' the number of faxes is the number of the last record
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
NbrOfFaxes = ActiveDocument.MailMerge.DataSource.ActiveRecord
' make the first record the active record
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
' now we look which of the field names contains the phrase fax.
' this is the field we take the fax-number from
NbrOfFields = ActiveDocument.MailMerge.DataSource.DataFields.Count
' we save the field-number in FieldWithFaxNbr
For FieldWithFaxNbr = 1 To NbrOfFields
If InStr(1, ActiveDocument.MailMerge.DataSource.DataFields(FieldWithFaxNbr).Name,
"fax") > 0 Then
TelefaxNrField = FieldWithFaxNbr
Exit For
End If
Next FieldWithFaxNbr
' if we don't find a field wich contains the phrase fax
' we stop the macro
If i > NbrOfFields Then
result = MsgBox("can not find a field for the fax-numbers", vbInformation, "error")
Exit Sub
End If
' we make a OLE-connection to whfc
Set whfc = CreateObject("WHFC.OleSrv")
und Druckserver
Ich habe im Rahmen meiner EDV-Karriere schon eine Menge Netzwerke unter den verschiedensten
Betriebssystemen gesehen und teilweise mit betreuen "drfen". Ich will ja nicht lstern, aber ich
behaupte einfach einmal, da die meisten Netze lediglich als bessere Druckserver und vielleicht noch als
erweiterte Festplatte dienen. "Richtige" Netzwerkanwendungen werden in den wenigsten Fllen
verwendet. Die bentigten Netzfunktionen werden von einem Linux-PC allemal bereit gestellt. Und dazu
noch zu einem unschlagbaren Preis- /Leistungsverzeichnis und bei extrem niedrigen
Hardwareanforderungen. Wenn ein Linuxrechner als Datei- und Druckserver dienen soll, hngen die
notwendigen Konfigurationsschritte von den Betriebssystemen ab, die auf den Clients installiert sind.
Auf der einen Seite sind das Windows- und OS/2-Rechner, fr die das Programmpaket SAMBA
installiert werden mu (Wenn von einem Windows NT-Rechner nur gedruckt werden soll und kein
Dateizugriff benoetigt wird, gibt es noch eine weitere Mglichkeit ohne SAMBA) und auf der anderen
Seite alle Unix-Rechner. Ich beschreibe letzteres kurz am Beispiel eines Linux-Clients.
Datei- und Druckserver fr Windows 3.11, Windows 95, Windows NT und OS/2-Rechner.
Damit ein Linuxrechner als Server fr Windows und OS/2-Rechner fungieren kann, mu auf dem Server
das Programmpaket Samba installiert werden. Die Installation von Samba ist im S.u.S.E.-Handbuch und
in den Hilfedateien eigentlich relativ ausfhrlich beschrieben. Deshalb hier nur das Wesentliche in
Krze. Installieren Sie erst einmal das Samba-Paket, am besten mit dem Installationstool YaST.
Die Kommunikation im Netzwerk erfolgt ber sogenannte Protokolle. Stellen Sie sich das etwa so vor,
als einige mensch sich auf eine bestimmte Sprache, um sich miteinander zu unterhalten. Das Internet
basiert auf dem TCP/IP-Protokoll. Genau genommen gibt es verschiedene Protokollebenen. Vergleichen
Sie das wieder etwa mit Buchstaben auf der untersten, Wrtern auf der nchsthheren und Stzen auf der
nchsten Ebene und so weiter. TCP/IP ist ein Protokoll auf der unteren Ebene. In der Windows-Familie
und unter OS/2 wird meistens NetBEUI verwendet, unter Novell IPX/SPX. Mit Samba implementieren
Sie die sogenannten NETBIOS-Dienste, eine Sammlung von Protokollen zur Datei und Druckerfreigabe.
Diese Dienste knnen sowohl auf dem TCP/IP-Protokoll als auch auf dem NetBEUI-Protokoll aufsetzen.
Eigentlich gibt es also keinen Grund mehr, neben dem TCP/IP-Protokoll noch andere Protokolle in der
Netzwerksteuerung der windows-Rechner zu aktivieren. Es wird gelegentlich sogar berichtet, da dieses
Protokolldurcheinander der Grund fr Pobleme im Netzwerk sein kann.
Dann konfigurieren Sie Samba. Im wesentlichen passiert das, indem Sie die Datei smb.conf im
Verzeichnis /etc bearbeiten. Die Einstellungsmglichkeiten sind so vielfltig, da die Darstellungen hier
den Rahmen sprengen wrden. Ich hatte anfangs eine Konfiguration gewhlt, die eher an die
Unix-Philosophie angelehnt war, da heit, Benutzer mussten sich mit einem Pawort anmelden. Da aber
niemand von auen auf mein Netz zugreifen kann, habe ich mittlerweile diese Restriktionen gelockert.
Dies ist allerdings ein Thema, da unter Netzwerkern zu heftigen Diskussionen fhren kann, denn die
"Windows-Philosophie" beim Umgang mit Passwrtern und Netzwerksicherheit entspricht eigentlich
keinen vernnftigen Sicherheitsrichtlinien. Freunden Sie sich nach Mglichkeit mit der Unix-Philosophie
an.
Ich fge einfach meine an wichtigen Punkten kommentierte Datei an (Kommentarzeilen beginnen mit
einem Semikolon):
[global]
; Unter Windows oder OS/2 sind Sie Mitglied einer Arbeitsgruppe.
; Diese geben Sie dort bei der Netzinstallation ein.
workgroup = MEINNETZ
; Gibt an, in welchen Abstnden die Verbindung berprft werden soll
keep alive = 30
os level = 2
printing = bsd
; Der Name der Datei, aus der die Druckereintrge gelesen werden sollen
; /etc/printcap ist der Standard
printcap name = /etc/printcap
; Sollen die dort definierten Drucker automatisch eingelesen werden?
load printers = yes
guest account = nobody
security = share
; security = user
; wrde die Anmeldung mit Passwort erforderlich machen
; share dagegen funktioniert auf Gruppenebene
; bzw. sorgt dafr, da als public gekennzeichnete Ressourcen
; wirklich frei zugnglich sind
wins support = no
; Jeder Zugriff auf die Samba-Dienste wird protokolliert
; Hier wird definiert, da das fr jeden Rechner getrennt passiert.
; %m wird durch den Namen des sich anmeldenden Hosts ersetzt
log file = /var/log/log.%m
; wichtig: Die Benutzer mssen Schreibrechte in diesem Verzeichnis haben !!!
Interfaces = 192.168.1.1/255.255.255.0
; mit dieser Anweisung werden von Samba aus nur Rechner im lokalen
; Netz angesprochen. Diese Vorsichtsmanahme unterbindet unntige und
; teure Verbindungen zum Provider
;
; Es sollen einfach alle Drucker, die in printcap definiert sind
; freigegeben werden
[printers]
comment = All Printers
browseable = no
printable = yes
public = yes
writable = no
create mode = 0700
; Die obige Freigabe fhrt allerdings zu einer Vielzahl von Druckern, die im Netz
; angezeigt werden, Das kann fr normale Benutzer etwas irrefhrend sein
; Alternativ knnen auch gezielt einzelne Drucker freigegeben werden.
; z.B. so:
[Laser]
comment = Laser im Netz
browseable = yes
printable = yes
printer = lp4
; das mu ein gltiger Eintrag aus der Datei /etc/printcap sein
public = yes
writable = yes
create mode = 0750
path = /home/%m
; Auch hier an die Schreibrechte denken
[Netz]
; Fr jeden Rechner soll ein Verzeichnis freigegeben werden.
; Das Verzeichnis erscheint im Netz als \\azalea\Netz,
; auf dem Linuxrechner handelt es sich je nach Client um
; /home/calluna, home/tilia etc.
comment = Netzverzeichnis
path = /home/%m
; welche Rechner drfen zugreifen?
Mit der Druckereinrichtung habe ich es mir sehr einfach gemacht. Ich habe das mit YaST erledigt und
dabei gleich den APS-Filter installiert (Ein sehr mchtiger Druckerfilter unter Linux, der dort z.B.
automatisch zwischen Postscript- und anderen Druckerformaten umschaltet). Es wrde auch eine
einfache Druckerdefinition reichen, aber in meinem Netz soll auch ein Linuxrechner auf den Drucker
zugreifen knnen und dabei auf dem Server die APS-Fhigkeiten nutzen knnen.
Das fhrt allerdings dazu, da fr Windowsrechner eine Reihe von Netzwerkdruckern zu sehen sind,
wem das zu viel ist, der sollte nur gezielt einzelne Rechner freigeben (siehe Details in der smb.conf
oben).
Bei meiner Konfiguration mssen auf dem Linuxsystem Benutzereintrge fr diejenigen bestehen, die
auf Samba zugreifen wollen. Soweit ich das herausgefunden habe, wird von Windows 3.11-Maschinen
und Windows 95 Rechnern der Benutzername verwendet (das ist der Name, unter dem Sie dort
angemeldet sind). Wenn Sie diesbezglich unsicher sind, geben Sie in einem Dos-Fenster unter Windows
3.11 und Windows 95 den Befehl "net config", unter Windows NT "net config
arbeitsstationsdienst" und unter OS/2 "net config requester" ein. Dort wird dann der
Benutzername angezeigt.
Damit die Samba-Dienste automatisch beim Systemstart des Linuxrechners gestartet werden, mssen Sie
in der Datei /etc/rc.config nach dem Eintrag START_SMB suchen und ihn auf
START_SMB="yes" setzen. Beim nchsten Systemstart mte dann Samba gestartet werden.
Achtung, Hinweis zum Update der Distribution: Etwas rgerlich finde ich, da beim Update der
S.u.S.E.-Distribution (bei mir von Version 5.0 auf 6.0) die Datei smb.config und damit die ganzen
eigenen Einstellungen in smb.conf.rpmorig umbenannt wird und eine Standarddatei als smb.conf
installiert wird. Durch simples Umbenennen und Systemneustart ist das aber wieder behoben.
Druckserver fr NT-Rechner ohne Dateizugriff
Windows NT ist von Hause aus etwas Linux-freundlicher. Wenn kein Dateizugriff bentigt wird, also
nur ber die Linuxmaschine gedruckt werden soll, kann direkt ber die Linux-Druckdienste gedruckt
werden. In diesem Fall mu also SAMBA nicht installiert werden. Auf dem NT-Rechner mu auf jeden
Fall das TCP/IP-Protokoll installiert sein. Dann mu ber Arbeitsplatz->Systemsteuerung->Netzwerk
unter "Dienste" "Microsoft TCP/IP-Druckdienst" eingetragen werden. Dann ist ein Rechnerneustart
fllig. Wird jetzt unter NT ein neuer Rechner installiert (Vorsicht: auf die Abfrage Arbeitsplatz oder
Druck-Server im Netzwerk mu hier verrckterweise Arbeitsplatz markiert werden!) mu dann im
nchsten Schritt ein neuer Anschlu hinzugefgt werden. Aus der Liste mu LPR-Port und dann Neuer
Anschlu ausgewhlt werden. Im dann erscheinenden Fenster wird unter "Name oder Adresse des Hosts,
der LPD bereitstellt: die IP-Adresse des Linuxrechners eingetragen werden (192.168.1.1) und unter
"Name des Druckers auf dem Computer" ein gltiger Name aus der Datei /etc/printcap. Z.B.
"stcolor-raw" oder was auch immer bei Ihnen in der ersten Zeile des jeweiligen Druckers dort
eingetragen ist. Diese Lsung hat den groen Vorteil, da auf dem Server weniger Ressourcen
verbraucht werden, wenn Samba nicht laufen mu.
Datei- und Druckserver fr Linux-Rechner
Druckserver
Einen Linuxrechner als Druckserver fr andere Linuxrechner zur Verfgung zu stellen, ist sehr einfach.
Sie mssen als erstes auf dem Server die Drucker installieren. Am einfachsten mit Hilfe von YaST. Dann
mssen sie dem System mitteilen, da der Zugriff durch andere Rechner gestattet ist. Es kann sein, da
die folgenden Einstellungen teilweise doppelt gemoppelt sind, aber in der beschriebenen Konfiguration
funktioniert es bei mir. Fgen Sie in die Datei /etc/hosts.allow eine Zeile
ALL: .meinnetz.com
ein. Damit bekommen alle Rechner des lokalen Netzes das Recht zum Zugriff. In der Datei
/etc/hosts.equiv befindet sich eine Zeile
192.168.1.6
ein. Damit erhlt der andere Linuxrechner die Erlaubnis, auf dem Server Kommandos via einer remote
shell auszufhren. Und zuletzt enthlt die Datei /etc/hosts.lpd eine Zeile
quercus.meinnetz.com
mit der explizit der Zugriff auf den Druckerspooler gestattet wird. Wichtig: hier mu unbedingt der voll
qualifizierte Hostname stehen, die ip-Nummer reicht nicht (Warum wei der Geier).
Dateiserver
Als Dateiserver kann der Linuxserver fr andere Unixrechner und damit auch fr einen anderen
Linuxrechner dienen, indem NFS (Network File-System) installiert wird. Sie mssen dafr zum einen
das NFS-Serverpaket (z.B. mit Hilfe von YaST) installieren und dann in der Datei /etc/rc.config
die Eintrge
START_PORTMAP=yes und
NFS_SERVER="yes"
entsprechend einstellen. Dann mssen Sie in der Datei /etc/exports festlegen, welche Verzeichnisse
fr wen wie zur Verfgung stehen sollen. In der Regel werden die Optionen ro fr read-only und rw fr
read and write dabei die wichtigsten sein. Um dem Linuxrechner (quercus, 192.168.1.6) den Schreibund Lesezugriff auf das Verzeichenis /home/quercus auf dem Server zu gestatten, mu die Datei so
aussehen:
/home/quercus quercus(rw)
Das war's.
Windows 95 Client
Um von Windows 3.11 und Windows 95 auf die Samba-Ressourcen zugreifen zu knnen, mssen Sie
jeweils die Netzwerkfunktionen installiert haben. Standardgem installiert das Windows-Setup das
NETBEUI-Protokoll. Zustzlich oder besser alternativ mssen Sie das TCP/IP-Protokoll installieren.
Zustzlich mssen Sie den Client fr Microsoft-Netzwerke installiert haben. Achten Sie darauf, bei der
Frage nach der Arbeitsgruppe exakt den Namen zu verwenden, den Sie auch unter Samba in der Zeile
"workgroup = MEINNETZ" eingegeben haben.
Die Verbindungen zum Linuxserver stellen Sie am einfachsten her, indem Sie den Ordner "Netzwerk"
oder im Explorer den Punkt "Netzwerk" anklicken. Dort mte dann der Linuxrechner unter seinem
Namen auftauchen. Beim Anklicken werden Sie in meiner Konfiguration nach dem Benutzerpawort
(das Pawort auf der Linuxmaschine !) gefragt. Daraufhin mte das Verzeichnis "Netz" und die
Linuxdrucker erscheinen. Den Drucker installieren Sie am einfachsten, indem Sie auf einen der Eintrge
(ich nehme den "raw"-Drucker) klicken und dann den Anweisungen zum Installieren des
Windows-Druckertreibers folgen. Sie mssen natrlich den Druckertreiber nehmen, der auf Ihren
Drucker pat. Das Netzwerklaufwerk verwenden Sie entweder, indem Sie den Order wie jeden anderen
Laufwerksordner verwenden oder indem Sie Den Ordner "Netz" auswhlen und mit der rechten
Maustaste den Menpunkt "Netzlaufwerk verbinden ..." auswhlen. Sie knnen dann einen
Laufwerksbuchstaben vergeben und angeben, ob diese Verknpfung automatisch beim Systemstart
wiederhergestellt werden soll. Dies sollten Sie aber nur tun, wenn Ihr Server permanent zur Verfgung
steht.
Windows NT-Client
Die Konfiguration eines NT-Clients (Windows NT, Version 4.0) funktioniert fast genauso wie bei
Windows 95. berprfen Sie unter Netzwerk, ob das TCP/IP-Protokoll installiert ist. Wenn ja, versuchen
Sie die fr Windows 95 beschriebenen Schritte nachzuvollziehen. Beachten Sie aber bitte folgende
Besonderheiten: Wenn Sie unter Windows NT, Version 4.0 das Servicepak 3 installiert haben und Ihre
Sambaversion kleiner ist als 1.9.17, kann es Probleme geben. Windows NT versucht dann das Pawort
verschlsselt zu bermitteln, das kann aber Samba erst ab der genannten Version. Sie mssen dann einen
Eintrag in der Windows NT Registry vornehmen. Speichern Sie den folgenden Text als Datei
Password.reg und doppelklicken im Explorer darauf. Daraufhin mte der entsprechende Eintrag in die
Registry eingetragen sein.
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Rdr\Parameters]
"EnablePlainTextPassword"=dword:00000001
Mit den aktuellen Sambaversionen haben Sie hiermit keine Probleme. Lassen Sie es unter
Sicherheitsaspekten besser bei den verschlsselten Pawrtern.
OS/2-Client
Die folgenden Hinweise beziehen sich auf OS/2 Warp in der Version 4.0. Unter OS/2 mssen Sie
logischerweise die Netzwerkuntersttzung installieren. Fr die Nutzung von Samba mssen Sie die
Peer-Dienste installieren. Eine rgerliche Fehlerquelle besteht darin, da Sie als Protokoll unter OS/2
"NetBEUI over TCP/IP" installieren mssen, wenn Sie TCP/IP und NetBEUI gleichzeitig nutzen
mchten (Und das drfte der Normalfall sein). Wenn Sie TCP/IP und das normale NetBEUI
nebeneinander installieren, gibt es Probleme. Die Sambaressourcen nutzen Sie, indem Sie im Ordner
"Verbindungen" den Punkt "Netzwerkdienste" und dann "Gemeinsame Ressourcen und
Netzwerkverbindungen" auswhlen. Whlen Sie dort Verbindungen und whlen den Button "Verbindung
herstellen". Whlen Sie dann als Ressourcentyp (*) Verzeichnis, als Server aus der Liste den
Linuxrechner und als Ressource das Verzeichnis Netz. Sie knnen hier auch angeben, da die Ressource
automatisch beim Anmelden verbunden werden soll. Fr die Druckerinstallation whlen Sie als
Ressourcentyp (*) Drucker, als Server wieder den Linuxrechner und den passenden Drucker (raw).
Weisen Sie als lokalen Druckeranschlu eine nicht benutzte Schnittstelle zu. Auch hier knnen Sie
angeben, da die Ressource automatisch beim Anmelden verbunden werden soll
Linux-Client
Drucken
Um auf einem Linuxrechner den Netzwerkdrucker nutzen zu knnen, reicht ein simpler Eintrag in der
Datei /etc/printcap. An Stelle eines lokalen Druckers steht hier nur der Verweis auf die
Druckerwarteschlange des Servers. Da auf dem Server der aps-Filter installiert ist, knnen somit
Postscriptdateien und alle anderen Druckformate an diesen Drucker geschickt werden. Meine printcap
auf dem Client sieht so aus:
lp:\
:rm=192.168.1.1:rp=lp:\
:sd=/var/spool/lpd/ljet3-a4-auto-mono-300:\
:la:mx#0:sh
Dateien
Um ein per NFS freigegebenes Verzeichnis nutzen zu knnen, mssen Sie es einfach in Ihr Dateisystem
mounten. Sie mssen dem Mount-Befehl mitteilen, da es sich um ein NFS-Verzeichnis handelt, wo es
auf dem Server liegt und wo es lokal gemountet werden soll.
Z.B.: mount -t nfs azalea.meinnetz.com:/home/quercus /mnt/quercus.
Wenn das Verzeichnis regelmig beim Systemstart gemountet werden soll, sollten Sie eine
entsprechende Zeile in der Datei /etc/fstab einfgen. Dort knnte dann z.B. stehen:
# zu mountendes Dateisystem
/dev/hda1
/dev/hda2
azalea.meinnetz.com:/home/quercus
none
wohin mounten
/
swap
/mnt/quercus
/proc
Typ
ext2
swap
nfs
proc
Zugriffsrechte
defaults
1
defaults
0
defaults
1
defaults
0
1
0
1
0
Ab jetzt knnen Sie auf dieses Verzeichnis zugreifen, als wre es ein lokales Verzeichnis. Die
Mglichkeiten von NFS gehen weit ber das hinaus, was ich hier darstellen kann. Sie finden gengend
Hinweise in den man-Seiten und diversen Bchern.
Zurck zur Hauptseite
Im Netzwerk kann es von entscheidender Bedeutung sein, da die Uhren der PCs im Netz synchron
laufen. Auerdem ist es auch so recht angenehm, wenn am Rechner die aktuelle Zeit zur Verfgung
steht. Im Internet gibt es eine Reihe von ffentlich zugnglichen Rechnern, die ihrerseits mit Atomuhren
verbunden sind. Der folgende Text beschreibt, wie Sie diese Zeitinformationen auf den Linuxserver
holen und von da an die Netzwerkrechner weitergeben.
Es gibt verschiedene Niveaus an Genauigkeit, die timeserver im Internet liefern knnen. Ich beschrnke
mich im folgenden auf eine "einfache" Genauigkeit (so etwa im Sekundenbereich), wer an exakteren
Zeitinformationen interessiert ist mu sich mit dem Thema NTP beschftigen.
Linuxserver
Um die Zeit des Linuxservers mit einem timeserver im Internet zu synchronisieren, mu der Server
logischerweise mit dem Netz verbunden sein. Das ist aber in unserem Netz nur der Fall, wenn eine
ISDN-Verbindung zur FH besteht. In regelmigen Abstnden eine Anfrage an den entsprechenden
Rechner zu stellen, wrde oft eine kostenpflichtige Verbindung aufbauen. Die Idee ist deshalb, die
Zeitsynchronisation an den Einwahlvorgang zu koppeln. Fr diesen Zweck wird die Datei ip-up im
Verzeichnis /etc/ppp um zwei Befehle ergnzt. Dieses Skript wird vom ISDN-System automatisch
gestartet, sobald die ISDN-Verbindung hergestellt ist (Fr DOS-Freaks: so etwas wie die autoexec.bat
des ISDN-Systems).
Die relevanten Zeilen (der untere Teil ist nur ein Ausschnitt) in meiner ip-up sehen so aus:
...
case "$BASENAME" in
ip-up)
echo -n "starting timesynchronisation ..." > /dev/tty1
/usr/sbin/netdate -v wrzx03.rz.uni-wuerzburg.de
/sbin/clock -wu
echo -n "time synchronisation done." > /dev/tty1
...
Und ab hier der normale Rest der Datei... .
Im obigen Skriptausschnitt sind zwei Zeilen enthalten, die mit echo "..." auf einer der Konsolen eine
Ausgabe erzeugen sollen. Normalerweise ist fr das Script vorgegeben, da Ausgaben des echo-Befehls
"ins Leere" laufen (technisch: /dev/null; Danke fr den Hinweis an Wolfgang Stark). Daher mu im
Skript die Ausgabe explizit auf eines der Terminals umgeleitet werden! Bei mir ist das das erste
Terminal, da ich normalerweise nicht am Server arbeite. Bei den Standardeinstellungen mten Sie dort
/dev/tty10 eintragen!
Der Befehl netdate fragt den ffentlichen timeserver der Universitt Wrzburg ab. Suchen Sie sich im
Internet mglichst einen wenig frequentierten Rechner in Ihrer Nhe. Netdate setzt nur das Systemdatum,
verstellt aber nicht die CMOS-Uhr im Rechner. Das heit, wenn Sie den Server ausschalten wrden,
wrde er beim Neustart wieder die alte Uhrzeit verwenden. Der nchste Befehl (/sbin/clock -wu) stellt
deshalb die interne Uhr auf die korrekte Zeit. Achtung, wenn Sie auf Ihrem Linuxrechner als Zeitzone
Fr OS/2 habe ich ein freeware-Programm namens ntp im Einsatz. Die letzte Version, die ich gefunden
habe, wird als ntp107.zip vertrieben. Das Programm kann in ein beliebiges Verzeichnis installiert
werden. Der Aufruf erfolgt von der Kommandozeile bzw. in einer Batchdatei in der Form ntp
192.168.1.1 /SET. Dadurch wird die Zeit des OS/2-Rechners auf die des Servers gesetzt.
Zurck zur Hauptseite
1 Einleitung
Ein Linuxrechner ist mit sehr einfachen Mitteln als Einwahlrechner zu konfigurieren. Einwahlrechner meint dabei nicht nur, da mensch sich
mittels eines Terminalprogramms auf den Rechner einwhlen kann und dann dort wie auf einem lokalen Rechner arbeiten kann. Sondern hier
geht es darum, da der sich einwhlende Rechner zu einem vollwertigen Mitglied des Netzes wird, in dem sich der Einwahlrechner befindet.
Wenn dieses Netz ber einen Internetzugang verfgt, steht dieser dann auch dem Einwahlrechner zur Verfgung. Zudem kann dem gesamten
Netz hinter dem einwhlenden Rechnern dieser Internetzugang ermglicht werden, wenn dort "Masquerading" aktiviert ist. Details dazu sind
in den vorhergehenden Seiten ausfhrlich beschrieben.
Im folgenden werden zwei verschiedene Konfigurationen beschrieben, einmal fr eine Modemeinwahlverbindung und zum anderen eine fr
eine ISDN-Verbindung.
Das folgende Bild zeigt das Zugangsprinzip am Beispiel der Modemverbindung.
2 Voraussetzungen
Auf dem Einwahlrechner mu logischeweise Linux inclusive der Netzwerkoptionen installiert sein. Wenn der Einwahlrechner seinerseits in
einem Netz hngt, mu er (ebenfalls logischerweise) ber eine Netzwerkkarte verfgen. Dann bentigen wir noch ein Modem, damit sich
andere Rechner hier einwhlen knnen. Da in meinem Bro leider zu Beginn kein ISDN-Anschlu zur Verfgung stand, mute ich mich
anfnglich auf die Modemeinwahl beschrnken. Die ISDN-einwahl konnte ich dann etwas spter realisieren.
Als Pakete mssen mindestens installiert sein:
ppp
Fr die Modem-Verbindung:
mgetty
Fr die ISDN-Verbindung:
i4l
Das wre eine Mglichkeit, das Modem und das normale Telefon gemeinsam an einer Leitung zu betreiben. Sie mssen nur den Wert fr die
Anzahl der Klingelzeichen so hoch setzen, da ein normaler Anrufer mit groer Wahrscheinlichkeit aufgelegt hat (z. B. 6 oder 8). Diese
Lsung hat aber den Nachteil, da Sie zu Hause doch relativ lange auf die Verbindung warten mssen. Deshalb wird unten eine andere
Lsung beschrieben.
Das war's bereits mit dem Modem. Nach einem Systemneustart mte das Modem jetzt aktiv sein.
Ich bekomme hufiger Hinweise von Linux-Profis, da natrlich hier kein vollstndiger Systemneustart wie etwa unter Windows notwendig
sei, sondern da es ausreicht, den runlevel durch Eingabe von init 1 und danach von init 2 (bzw. init 3 bei grafischem Login)
ausreicht. Ich denke, da das den erfahreneren Benutzern klar ist, da aber fr die Neulinge der Neustart einfacher nachzuvollziehen ist.
meinem Einwahlserver habe ich in die systemweite Datei zwei Zeilen wie folgt eingetragen:
0 18 * * 1-5 root rm /etc/nologin.ttyS0
0 7 * * 1-5 root cp /etc/dummy /etc/nologin.ttyS0
Die erste davon bewirkt, da um 18 Uhr und 0 Minuten mit der Benutzerkennung root der Befehl rm /etc/nologin.ttyS0 ausgefhrt
wird, das heit die Datei /etc/nologin.ttyS0 gelscht wird.
Die zweite bewirkt, da um 7 Uhr und 0 Minuten diese Datei erstellt wird, indem eine Datei aus dem /etc-Verzeichnis entsprechend umkopiert
wird. Diese Datei kann leer sein oder einen beliebigen Inhalt haben (Sie sollten wenigstens hineinschreiben, wofr sie gut ist, falls sich spter
einmal Alsheimer ankndigt). Das heit, Sie mssen diese Datei erst einmal mit einem beliebigen Editor erstellen.
Achtung: Je nach Konfiguration von mgetty kann es auch sein, da mgetty auf ihr Modem nicht ber /dev/ttyS0 oder /dev/ttyS1 zugreift,
sondern ber den symbolischen Link /dev/modem. Wenn also obiges nicht funktionieren sollte, versuchen Sie es mit /etc/nologin.modem als
Dateinamen.
-vjccomp
-ac
-pc
-bsdcomp
# Gre der Pakete zum Empfangen
mru 1524
# Gre der Pakete zum Versenden
mtu 1500
Zum Austesten der Verbindungen sollte in der Datei /etc/ppp/ioptions das Debugging aktiviert werden. Dazu sollte das Kommentarzeichen
vor der Zeile mit der anweisung debug entfernt werden. Das sorgt dafr, da in der Datei /var/log/messages die Verbindungsversuche
protokolliert werden. Wenn das Ganze funktioniert, sollte das Kommentarzeichen # wieder eingefgt werden.
# Set 'debug' to create a lot of information in /var/log/messages
debug
Im Prinzip war es das. Da der Einwahlrechner im konkreten Fall an einer greren ISDN-Anlage hngt, protokolliert die Karte alle
Whlverbindungen im Netz und mllt damit die Logdatei /var/log/messages voll. Um das zu unterbinden, habe ich in der Datei
/etc/isdn/isdnlog.isdnctrl0.options die Zeile mit der Angabe syslog= gendert:
# Angabe der gewuenschten Meldungen, die in's syslog eingetragen
# werden sollen
# ist in der Standardeinstellung: syslog=1015
# will aber nur Errors (1), Warnings (2), Notice (4)
syslog=7
/etc/ppp
Konfigurationsdateien
Inhalt/Zweck
options
/etc/rc.config.d/ i4l_xxxx.config
/etc/isdn
Konfigurationsdateien fr ISDN-Details
isdnlog.xxx.options
Besondere Konfiguration fr einen Rechner, der sowohl als Einwahlrechner als auch als
Verbindungsrechner dient
Da ich schon mehrfach gefragt worden bin, wie ein Rechner zu konfigurieren ist, der die eine ISDN-Karte nutzt, um selbst eine Verbindung
zum Netz aufzubauen und die andere, um seinerseits die einwahl zu ermglichen, hier ein kurzer Hinweis.
Entscheidend ist die Datei /etc/ppp/ip-up, in der das Routing gesetzt wird. Hinweise zum Routing fr den Einwahlrechner finden Sie auf
dieser Seite, Hinweise zum Routing fr einen Internetserver auf der entsprechenden Seite.
Die Grundidee ist, nur bei der ISDN-Karte, die die Verbindung zum Provider herstellt das Routing anzupassen und bei der ISDN-Karte, auf
der man sich einwhlen kann, alles so zu lassen wie es ist.
Im folgenden kommt eine Beschreibung des Grundgerstes der Datei /etc/ppp/ip-up, die Details mssen dann entsprechend der eigenen
Rechnerkonfiguration angepat werden.
#!/bin/sh
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Das Skript wird vom System standardgem mit folgenden Parametern aufgerufen:
<INTERFACE> <DEVICE> <SPEED> <LOCALIP> <REMOTEIP>"
BASENAME=`basename $0`
INTERFACE=$1
DEVICE=$2
SPEED=$3
LOCALIP=$4
REMOTEIP=$5
# Hier sind einige Zeilen herausgenommen, die in einer
# vollstndigen Datei aber enthalten sein sollten
...
#
#
#
#
case "$INTERFACE" in
# erste ISDN-Karte (zur Einwahl von auen
ippp0)
# Zweite case-Abfrage, um festzustellen, ob ip-up
# oder ip-down aufgerufen wurde.
case "$BASENAME" in
# wenn ip-up aufgerufen wurde, dann wird die Verbindung hergestellt
# Bei einem Einwahlrechner bleibt das Routing hier unverndert.
ip-up)
;;
# Am besten ebenfalls leer lassen
ip-down)
;;
*)
# Diese Stelle des Skriptes sollte eigentlich niemals erreicht werden
;;
esac
# Ende der zweiten case-Abfrage
;;
# zweite ISDN-Karte mit der Verbindung zum Provider hergestellt
# wird. Unterschied zu oben: Das Routing mu hierbei konfiguriert
# werden.
ippp1)
# Zweite case-Abfrage, um festzustellen, ob ip-up
# oder ip-down aufgerufen wurde.
case "$BASENAME" in
# Hier wird jetzt beim Verbindungsaufbau das Routing gesetzt.
ip-up)
# Hier wird das Routing gesetzt
...
;;
ip-down)
# Beim Verbindungsabbau das Routing wieder auf die
# Ausgangswerte setzen
...
;;
*)
;;
esac
# Ende der zweiten case-Abfrage
;;
ppp*)
# Hier ggf. Kommandos fr die Modemeinwahl einfgen
;;
*)
# Auch diese Stelle drfte eigentlich nie erreicht werden.
;;
esac
# Ende der ersten case-Abfrage
*
*
Das routing auf dem Einwahlserver ist sehr einfach, es gibt dort nur die lokale Netzkarte und das default-Gateway des Netzes (in unserem Fall
wieder ein Gateway).
#
# /etc/route.conf
#
# wird gelesen von /sbin/init.d/route.
#
# loopback-device
127.0.0.0
0.0.0.0
255.255.255.0
# Ethernetz-Karte, die mit dem lokalen Netz verbunden ist
192.168.2.0
0.0.0.0
255.255.255.0
# default-route zeigt auf das gateway im Netz
default
192.168.1.1
lo
eth0
Das routing fr das Modem und die ISDN-Karte wird automatisch geregelt, insbesondere der Eintrag proxyarp in /etc/ppp/options ist hier
wichtig!
7 Sicherheitsaspekte
Die beschriebene Lsung ist aus Sicherheitsaspekten insbesondere fr die Modemeinwahl nicht ganz unproblematisch, da Benutzer dort von
auen ein Programm (pppd) mit root-Rechten ausfhren knnen. Im vorliegenden Fall ist das nicht weiter wild, da der Rechner selbst kein
Arbeitsplatzrechner ist, sondern nur fr die Einwahl eingerichtet ist und sich Hacker sowohl den Einwahlnamen, Passwort und die
Gruppenzugehrigkeit erschleichen mten. Im schlimmsten Fall mu der Rechner wieder neu eingerichtet werden.
Fr ffentlich zugngliche Lsungen sollte das eigentliche Netz durch ein Firewall o.. Sicherheitsmanahmen abgeschirmt werden. Eine
vollwertige Workstation mit wichtigen Daten wrde ich so nicht einrichten.
Ein Hinweis noch fr Nutzer von Windows, die sich per DF-Netzwerk auf den Linux-Server einwhlen. Dort sollte in den
Netzwerkeinstellungen unter ->Servertyp->TCPIP Einstellungen das "Standard-Gateway im Remote-Netzwerk verwenden" aktiviert sein,
andernfalls ist zwar ein ping, telnet und ftp vom Linux zum Windows mglich, andersherum allerdings nicht (Danke fr den Hinweis an Jrg
Niemeyer).
1 Einleitung
Ein Linuxrechner kann mittels spezieller Software im Netzwerk den gemeinsamen Zugriff auf einen
Scanner ermglichen. Ich habe im Moment zwar noch ein kleines Problem mit der Konfiguration, halte
das Thema aber fr so interessant, da ich im Gegensatz zu meinen sonstigen Gepflogenheiten hier eine
"unvollstndige" Beschreibung ins Netz stelle, da ich bisher im Netz zu diesem Thema noch nicht viel
Informationen gefunden habe.
Vielleicht hat auch jemand eigene Erfahrungen, die mir eventuell weiterhelfen knnten. Fr
entsprechende Anregungen wre ich dankbar, ich bin mir nicht sicher, ob meine Probleme mit meinem
Scanner oder mit Konfigurationsfragen zusammenhngen.
2 Voraussetzungen
Natrlich mssen Sie ber einen Scanner verfgen und dazu noch ber einen Scanner, der von Linux
untersttzt wird. Die aktuelle Liste finden Sie auf der Homepage des SANE-Projekts. Dieses Projekt hat
sich zum Ziel gesetzt, mittels freier Software den Zugriff auf Scanner und vergleichbare Gerte zu
ermglichen.
Sie mssen die SANE-Module Ihrer Distribution installieren. Beachten Sie, da bei SuSE-Linux
(jedenfalls bis einschlielich Version 6.1) das Programm fr den Scannerserver nicht im Standardpaket
enthalten ist. Sie mssen hier zumindestens fr den Server die Software selbst kompilieren (Anleitung
dazu folgt)!
Wenn Sie unsicher sind, ob die Software bei Ihnen komplett ist, suchen Sie auf der Festplatte nach der
Datei saned (meistens im Verzeichnis /usr/local/sbin oder /usr/sbin).
Wenn Sie dauerhaft und hufiger ber das Netzwerk auf einen Scanner zugreifen wollen, ist auch die
Geschwindigkeit im Netz von grerer Bedeutung. Ein DIN-A4-Farbscan kann leicht 30 MByte an
Daten bedeuten. Hier macht es sich stark bemerkbar, ob Sie ber 10 MBit oder ber 100
MBit-Netzwerkkarten verfgen.
Auf den Linuxclients reicht unter S.u.S.E. die normale Installation mittels YaST. Sane befindet sich im
Paket gra "Alles rund um Grafik". Den Quellcode, den Sie im Falle eines Linuxservers bentigen, finden
Sie unter S.u.S.E. im Paket zq "Quellpakete" oder Sie besorgen ihn vom oben genannten Server des
SANE-Projektes. Wenn Sie auf der SANE-Hompeage sind, sehen Sie nach, ob es fr Ihren Scanner
aktuelle Patch-Dateien gibt. Bei mir steht ein Agfa Snapscan zur Verfgung und der funktioniert nur,
wenn der entsprechende Patch installiert ist (Traditionell ein rgernis der S.u.S.E.-Distribution, da der
nicht installiert ist!).
Y=0
Width=100
Height=100
; Devices
DeviceList=azalea.meinnetz.com:snapscan:/dev/scanner
ScanDevice=azalea.meinnetz.com:snapscan:/dev/scanner
Scannen per Kommandozeile sollte dann wie folgt mglich sein:
scanimg -d azalea.meinnetz.com:snapscan:/dev/scanner > Bild.ppm
7 Probleme
Derzeit habe ich noch folgendes Probleme beim Netzzugriff. In der Datei /var/log/messages erscheinen
folgende Meldungen:
May 15 15:34:58 azalea saned[363]: access by
saned-user@calluna.meinnetz.com accepted
May 15 15:38:14 azalea saned[363]: process_request: received
unexpected procedure number 0
May 15 15:38:14 azalea saned[363]: exiting
Diese Meldungen erscheinen sowohl beim Zugriff eines Linux-Clients als auch eines Windows-Clients.
Ein Linux-Client erhlt wenigstens ein Preview-Window, allerdings ohne vernnftigen Inhalt.
Alles andere fhrt zu keinen brauchbaren Ergebnissen.
Soweit ich die Diskussionen in der SANE-developers-mailingliste verfolgt habe, liegt dieses Problem
wohl an einem Fehler in dem speziellen Scannermodul. Die beschriebene Konfiguration mte also mit
anderen Scannern funktionieren.
Zurck zur Hauptseite
1 Einleitung
Ende 1999 habe ich mich mit Wehmut entschlossen, meinen Newton gegen einen Casio Cassiopeia
einzutauschen. Apple hat aus meiner Sicht beim Newton genau das geschafft, was IBM vorher bereits
mit OS/2 praktiziert hat. Ein technologisch hochstehendes Produkt durch schlechtes Marketing und
mangelhafte Untersttzung in den Sand zu setzen. Nun ja, es war dieses schne Stck neuer Hardware im
Haus (und wie habe ich es irgendwo im Netz so nett gelesen: Eigentlich ist diese Hardware viel zu
schade, um unter diesem Betriebssystem zu laufen ...) und sofort begannen die berlegungen, ob und wie
diese mit Linux zu nutzen ist. Linux CE (fr Interessierte hier der Link zur Linux CE Webseite) ist noch
nicht so weit, da die Gerte im Alltag damit einsetzbar wren. Also bleibt im Moment nur, das Gert
unter Windows CE mit einem Linuxrechner zu verbinden.
Damit sich diese Verbindung herstellen lt, mu im Grunde ein Mittelding zwischen einem
Modem-Einwahlserver und einer normalen Netzwerkverbindung eingerichtet werden. Die Konfiguration
fr den Linuxserver kann in dieser Form wohl ohne weiteres auch verwendet werden, um eine
Netzwerkverbindung zwischen anderen Windowsrechnern und einem Linuxserver ber ein
Nullmodemkabel zu realisieren. Wegen der Besonderheiten bekommt dieses Thema eine eigene Seite. Es
schadet mit Sicherheit nicht, wenn Sie einmal einen Blick auf die Einwahlserverseiten werfen.
Die folgende Beschreibung ermglicht es Ihnen, das Windows CE-Gert zum vollwertigen Netzclient zu
machen, von dem aus im WWW gesurft werden kann, Dateien per FTP ausgetauscht werden knnen
usw.. Es geht also um mehr als "nur" die simple Verbindung zwischen zwei Rechnern.
Wenn Sie sich fragen, wozu der ganze Aufwand, denn es gibt doch die Mglichkeit, das CE-Gert
mittels ActiveSync relativ problemlos mit Windows-Rechnern zu verbinden: Diese Verbindung ist eben
keine vollwertige Netzverbindung. Soweit ich das bislang nachvollziehen konnte, stellt ActiveSync zwar
eine PPP-Verbindung zwischen beiden Gerten her, aber hier scheint es sich einmal wieder um eine sehr
spezielle Microsoft-Variante zu handeln. Das TCP/IP-Protokoll scheint Bestandteil von Windows CE zu
sein, entsprechende Utilities zeigen beim Solo-Gert eine IP-Nummer. Das CE-Gert bekommt bei
aktiver ActiveSync-Verbindung die IP-Nummer 192.168.55.100 und der Server die IP 192.168.55.101
zugewiesen. Aber es mte auf dem Server dann ein Programm wie WinGate o.. laufen, da mittels
Masquerading dann den vollwertigen Netzzugan ermglicht.
Linux kann hier seine Netzwerkstrken voll ausspielen.
2 Voraussetzungen
Windows CE
Auf meinem Casio ist Windows CE in der Version 2.11. Unbedingt bentigt wird noch das serielle
Verbindungskabel fr die Verbindung zwischen dem Palmsize-Gert und dem Linuxrechner.
Zustzlich habe ich mir einige Hilfsprogramme aus dem Internet besorgt, die alle als freeware verfgbar
sind und verschiedene Netzfunktionen auf dem CE-Gert bereitstellen.
Das wre zum ersten vxUtil. Es ist auf diversen Servern erhltlich, die Software fr windows CE
anbieten, die Original-Webseite des Herstellers ist www.cam.com. Das Programm bietet Dienste wie
ping, traceroute, finger und andere.
Bei meinem Cassio gibt es wie bei allen anderen Palmsize PCs keine Kommandozeile (DOS-Prompt). Es
gibt ein Programm namens Console, welches fr speziell dafr entwickelte Programme so etwas zur
Verfgung stellt. Achten Sie darauf, da Sie sich sowohl das Programm als auch die notwendige DLL
Kctrl.dll besorgen und letztere im Windows-Verzeichnis installieren. Die Original-Webseite des
Programmautors ist www.oohito.com. Da der Autor Japaner ist, ist es vielleicht einfacher, auf
http://pda.tucows.com/wince/ oder anderen Seiten nach dem Programm zu suchen.
Wenn das Programm console auf Ihrem PPC luft, gibt es ein telnet-Programm und ein ftp-Programm,
welches jeweils mit console zusammenarbeitet. Bei dem Telnet-Programm handelt es sich um FTnet.
Das FTP-Programm heit FFtp. Erhltlich sind beide Programme auf http://www2.osk.3web.ne.jp/~fjw/.
Da dies auch eine japanische Seite ist, gilt der Hinweis wie zu Console.
Um das ftp-Programm und das telnet-Programm zu starten, mssen Sie zuerst Console starten (es
erscheint dann ein weitgehend leeres Fenster) und dann das jeweilige Programm.
Als krnenden Abschlu knnen Sie dann noch einen Internetbrowser installieren. Die Firma Foliage
Software Systems hat das Programm iBrowser als "careware" ins Netz gestellt. Wenn Sie es fr den
persnlichen Gebrauch einsetzen, wird eine Spende an die American Cancer society erwartet. Die
Webseite der firma ist http://www.foliage.de.
Linux
Auf dem Linuxrechner mu logischeweise Linux inclusive der Netzwerkoptionen installiert sein. Wenn
der Einwahlrechner seinerseits in einem Netz hngt, mu er (ebenfalls logischerweise) ber eine
Netzwerkkarte verfgen. Dann bentigen wir noch eine freie serielle Schnittstelle.
Als Pakete mssen mindestens installiert sein:
ppp
Fr die Modem-Verbindung:
mgetty
dazwischengeschaltet sind.
Die serielle Schnittstelle des Linuxrechners berwacht das Programm mgetty. Es wartet darauf, da sich
an der Schnittstelle etwas tut. Um mgetty regelmig beim Systemstart zu starten, mu die Datei
/etc/inittab verndert werden. ffnen Sie diese Datei mit einem Editor und suchen Sie nach den Zeilen
# modem getty
# mo:23:respawn:/usr/sbin/mgetty -s 38400 modem
Entfernen Sie das Kommentarzeichen und passen Sie ggf. die Geschwindigkeitsvorgabe an. Fangen Sie
erst einmal mit einer bertragungsgeschwindigkeit von 19200 an. Wenn das System spter stabil luft,
knnen Sie die Geschwindigkeit schrittweise hochsetzen. ndern Sie die Zeile in:
# fr Verbindung zu Windows CE
mo:23:respawn:/usr/sbin/mgetty -r -s 19200 /dev/ttyS0
# -r heisst driekte Verbindung
# -s setzt die Geschwindigkeit
Falls das CE-Gert nicht an der ersten, sondern an der zweiten seriellen Schnittstelle hngt, mssen Sie
statt /dev/ttxS0 hier /dev/ttyS1 eintragen.
Wenn diese Zeilen nicht zu finden sind, tragen Sie sie selbst dort so ein, wie oben beschrieben.
Geben Sie init 1 und danach von init 2 (bzw. init 3 bei grafischem Login) an der Konsole ein
bzw. fhren ggf. einen Neustart durch. Im Verzeichnis /var/log finden Sie eine Logdatei fr mgetty, in
der bei Problemen hilfreiche Hinweise zu finden sind.
Sie mssen dann einen Benutzer fr die Einwahl definieren. Die genaue Anleitung hierfr finden Sie auf
der Webseite zum Einwahlserver.
Sie mssen dann die Datei /etc/ppp/options anpassen. Wenn der betreffende Rechner nicht noch
zustzlich ber ein Modem oder ber eine ISDN-Karte verfgt, reicht es, wenn Sie die folgenden
Angaben in die genannte Datei schreiben. Wenn Sie beispielsweise eine ISDN-Karte und die serielle
Verbindung zum CE-Gert einrichten wollen, schreiben Sie in die Datei /etc/ppp/options die Dinge, die
beide Konfigurationen gemeinsam haben, in /etc/ppp/options.ippp0 die spezifischen Dinge fr die
ISDN-Karte und in /etc/ppp/options.modem die spezifischen dinge fr das CE-Gert.
Die CE-spezifischen Angaben lauten:
# Datei /etc/ppp/options.modem
# es sollen Meldungen ueber den Verbindungsaufbau in die Datei
# /var/log/messages geschrieben werden, die bei der Fehlersuche helfen
# wenn das Ganze laeuft besser wieder herausnehmen, da die Datei sonst
zu gross wird
debug
# benutze die modem control lines
modem
# benutze hardware flow control
crtscts
# alle Zeichen der Verbindung koennen genutzt werden
asyncmap 0
# Groesse der Uebertragungspakete fuer die Uebertragung
mtu 1500
Als Anschlueinstellungen whlen Sie die nachfolgend gezeigten Einstellungen. Die Baudrate knnen
Sie spter unter Umstnden hochsetzen, Sie mssen dann auf dem Linuxrechner aber auch die
entsprechende Schnittstellengeschwindigkeit in /etc/inittab einstellen (siehe oben).
Achten Sie unbedingt darauf, da bei den Anrufoptionen nichts markiert ist.
Bei den TCP/IP-Einstellungen knnen Sie entweder angeben, da die IP-Nummern vom Server zugeteilt
werden, oder Sie tragen die IP-Nummer als Vorgabe ein. Das verkrzt den Verbindungsaufbau minimal.
Der Linuxrechner ist so konfiguriert, da er die IP-Nummer des Namenservers bertrgt. Deshalb kann
nachfolgend ein Hkchen an "Vom Server zugewiesene IP-Adressen" gemacht werden.
Obwohl es sich nur um eine fiktive Modemverbindung handelt, mssen sie eine Telefonnummer
eintragen. Welche ist egal, sie wird in unserem Fall nicht verwendet.
Benutzernamen, Kennwort usw. sind ebenfalls nicht ntig. Lassen sie es leer.
Speichern Sie diese Einstellungen. Verbinden Sie den Linuxrechner mit dem CE-Gert und aktivieren
Sie die Verbindung.
Es ffnet sich ein Fenster. Sie mssen jetzt irgendwie einmal das Drcken der "Enter-Taste" simulieren
(Ich habe noch keinen Weg gefunden, da das irgendwie automatisch umgesetzt wird - wenn hier jemand
einen Tipp hat, wre ich fr einen Hinweis dankbar). Bei Palmsize-PCs ohne Tastatur bentigen Sie
dafr eine Tastatur auf dem Bildschirm oder eine Zeichenerkennungssoftware. Ich arbeite mit
Calligrapher und benutze hier die Calligrapher-Tastatur.
Wenn Sie Enter "gedrckt" haben, mte der Login-Prompt des Linux-Systems erscheinen. Sie mssen
den Namen des Einwahl-Benutzers eintippen und dann das Passwort. Daraufhin erscheint eine kurze
Loginmeldun und ein Haufen wirrer Zeichen. Wenn Sie diese sehen, ist der Hauptteil geschafft. Sie sind
nmlich die sichtbaren Zeichen fr die "Verhandlunen" zwischen dem pppd des Linuxrechners und dem
CE-Gert.
Daraufhin verschwindet das Einwahlfenster und es bleibt ein Meldungsfenster auf dem Bildschirm, mit
der Mitteilung, da Sie verbunden sind und der Mglichkeit, die Verbindung zu beenden.
Ab jetzt sind Sie mit dem Gert voll ins Netz integriert. Der folgende Bildschirm zeigt z.B. den
Bildschrim des iBrowsers mit meinen Linux-Netzseiten.
Ob ein Webbrowser wirklich sinnvoll ist, kann mensch diskutieren. aber Dateitransfer mittels ftp oder
telnet oder der Zuriff auf E-Mail knnen schon Sinn machen.
1 Einleitung
Was ist ein CVS-Server bzw ein CVS-System?
CVS ist ein Versions-Kontrollsystem, d.h. mit Hilfe von CVS knnen Sie (vor allem bei Textdateien) verschiedene Versionen dieser
Dateien speichern und haben jederzeit die volle Kontrolle ber diese Dateien. Vor allem bietet CVS Ihnen die Mglichkeit, vorherige
Zustnde der Dateien wieder herzustellen, nderungen wieder rckgngig zu machen, verschiedene Varianten anzulegen, etc.. Und das
Ganze funktioniert auch im Netz unter der Beteiligung von verschiedenen Autorinnen und Autoren.
Diese Eigenschaften machen CVS vor allem bei Programmentwicklern interessant, aber eigentlich lt es sich auch bei den meisten
anderen Dateien, die in Versionen weiterentwickelt werden, wunderbar einsetzen. Ich werde im folgenden als Beispiel deshalb auch die
gesamten HTML-Seiten meiner Linux-Serverbeschreibung verwenden. Die eigentlichen HTML-Seiten sind ja auch Textdateien und
deshalb gut dafr geeignet.
Die folgende Beschreibung ist vor allem fr Leute gedacht, die erste Schritte mit CVS machen wollen. Die "Profis" knnen sicherlich viel
mehr damit anfangen, aber wer dann "Blut geleckt" hat, kann sicherlich selber tiefer einsteigen. Die mit CVS gelieferte Dokumentation
und auch die man-pages liefern eine Reihe von guten Hinweisen.
Weitere Informationen finden sich zu Hauf im Internet. Eine Suche mit einer Suchmaschine liefert bei den Stichworten "CVS" und
"Einfhrung" unter anderem folgende Links zu deutschsprachigen Einfhrungen:
http://cs.bonn.edu/II/www-tech/cvs/cvs.html
http://informatik.uni-bremen.de/grp/flowtec/papers/doc/cvs-doku/cvs.html
http://wwwipr.ira.uka.de/~paro/CVS.html
http://wwwmath.uni-muenster.de/informatik/u/paehler/projekte/misc/cvs/
Wesentliche Ausschnitte des Buches "Open source Development With CVS" von Karl Fogel sind kostenlos aus dem Netz
herunterzuladen, u.a. von der Webseite:
http://cvsbook.red-bean.com
Die offizielle Dokumentation von CVS gibt es u.a. unter
http://web.informatik.uni-bonn.de/II/ag-anlauf/cvs/cvs.ps
2 Voraussetzungen
Auf dem Linuxserver mu selbstverstndlich das Netzwerk funktionieren und der Server mu von den anderen Rechnern aus erreichbar
sein. Wenn Sie als Zugriffsmethode die "Remote Shell" (rsh) benutzen wollen, mu auch der entsprechende Daemon installiert und
konfiguriert sein (rshd). Wenn Sie als Zugriffsmethode die Secure Shell ssh benutzen wollen, mssen Sie vorher ssh entsprechend
konfigurieren. Letztere Methode ist aus Sicherheitsgrnden dringend zu empfehlen! Deshalb finden Sie auf einer separaten Seite eine
detaillierte Anleitung dazu.
3 Das Grundprinzip
Um nun ein Repository unter Kontrolle von CVs einzurichten, sind folgende Schritte notwendig:
Die Dateien mssen in das Repository auf dem Server importiert werden.
Die Dateien mssen aus dem Repository "ausgecheckt" und unter Kontrolle des CVS-Systems wieder zurck auf den Client
bertragen werden.
Das klingt vielleicht im ersten Moment umstndlich, das Prinzip wird aber deutlich, wenn man sich die Arbeitsweise des CVS-Systems
an einer Beispielsdatei (test.txt) deutlich macht. Die Idee ist folgende: Auf dem Server wird eine zentrale Version der Datei verwaltet.
Jede Nutzerin, jeder Nutzer kann nun diese Datei in einem definierten Zustand (z.B. Version 2.1.3) aus dem Server-Repository
auschecken und in sein lokales System einbringen. Dann wird diese Datei lokal bearbeitet und nach dem Ende der Bearbeitung wieder in
das Repository auf dem Server eingecheckt. Dabei berprft das CVS-System, welche Vernderungen gemacht wurden und registriert
diese in der internen Datenbank. Hatte in der Zwischenzeit jemand anderes die selbe Datei verndert und wieder eingecheckt, so berprft
CVS, ob sich Konflikte zwischen den nderungen ergeben oder nicht. Falls nein, werden die beiden nderungen miteinander
"verschmolzen", falls ja, wird derjenige, der versucht, diese "konfliktbeladene" Datei einzuchecken, ber die Konflikte informiert und
aufgefordert, diese zu lsen und dann erneut zu versuchen, die Datei einzuchecken.
Im Folgenden wird das Grundprinzip an einem Beispiel etwas ausfhrlicher fr den Windows-Client erlutert.
cvs
cvs
Dateien von einem bestehenden Verzeichnis auf dem Client in das Server-Repository
bertragen
Wechseln Sie nun in das Verzeichnis, in dem sich die Dateien befinden, die Sie mit CVs kontrollieren wollen. Im Listenfenster sehen Sie
alle betreffenden Dateien.
Whlen Sie im Hauptmen den Punkt Cvs Admin und dort den Unterpunkt Import module... .
Im folgenden Dialogfenster werden Sie nach dem Verzeichnis gefragt, von dem die Dateien zum Server importiert werden sollen (Die
Bezeichnungen beim CVS werden immer aus Sicht des Servers formuliert). Es erscheint ein Fenster, in dem sie ber "Filterprozesse"
informiert werden. Dies hat den Hintergrund, da CVS darber informiert werden mu, wenn auch binre (also nicht aus Text
bestehende) Dateien verwaltet werden sollen. Denn bei solchen Dateien kann CVS logischerweise die nderungen nicht mehr verfolgen
und verwalten. Die Voreinstellungen von WinCVS sind recht gut, in den meisten Fllen sind keine Vernderungen mehr notwendig. Es
macht sowieso mehr Sinn, CVS vor allem Textdateien anzuvertrauen. Es erscheint ein weiterer Dialog, in dem Sie nach dem
Modulnamen und Pfad auf dem Server gefragt werden. Whlen Sie hier einen aussagekrftigen Namen (in unserem Beispiel linux-html)
und bedenken Sie bitte die unterschiedliche Handhabung von Dateinamen in verschiedenen Betriebssystemen. Windows zeigt z.B. zwar
Gro- und Kleinbuchstaben an, verwendet aber intern nur Grobuchstaben. Alte Unixsysteme knnen z.b. nur Dateinamen bis maximal
32 Zeichen verarbeiten usw..Vendor tag sollte eine Kurzbezeichnung fr den Hersteller enthalten (im Beispiel D-Reymann) und Release
tag eine kurze Beschreibung des Versionsstandes (im Beispiel: Erstes-Release). Sie knnen zustzlich noch weitere Erluterungen im
Feld fr die log message eingeben. Bei Erfolg sehen Sie im unteren Fensterabschnitt von WinCVS eine Meldung, die die importierten
Dateien zeigt und eine Meldung, da der Import ohne Konflikte funktioniert hat.
Ab jetzt stehen diese Dateien allen zugelassenen Clients zur Verfgung.
Whlen Sie in diesem Dialog das Verzeichnis aus, unterhalb dem das neue, unter CVS-Kontrolle stehende Verzeichnis erstellt werden
soll. Im folgenden Dialog werden Sie dann nach dem Namen des Moduls gefragt, das vom Server geholt werden soll. Dies ist der Name,
den Sie beim Import angegeben haben! Wenn Sie einmal einen Blick auf die Verzeichnisstruktur des Servers werfen, werden Sie
feststellen, da dort unterhalb des CVS-Root-Verzeichnisses ein Verzeichnis mit genau diesem Namen existiert.
Bevor Sie auf den OK-Knopf drcken, sollten Sie berprfen, ob unter den globalen Einstellungen eventuell aktiviert ist, da Dateien nur
als "read-only", also nur zum Lesen, aber nicht mit Schreibzugriff vom Server geholt werden. Falls das Feld "Checkout read-only"
aktiviert ist, so deaktivieren Sie diese Einstellung. Klicken Sie dann auf OK.
Sie mten wieder im unteren Teil des Fensters eine Erfolgsmeldung sehen. Wechseln Sie in das Verzeichnis, das Sie eben erstellt haben
(Men "View -> Change Browser location"). Wenn Sie einmal mit dem Windows-Explorer in dieses Verzeichnis sehen, werden Sie
feststellen, da dort ein Unterverzeichnis CVS erstellt wurde. Dies braucht das CVS-System, um die Versionskontrolle abwickeln zu
knnen.
Wichtig: Sie drfen dieses Unterverzeichnis CVS niemals lschen oder verndern, wenn Sie wollen, da CVS funktioniert.
Klicken Sie jetzt auf den Button "Refresh view" und Sie sehen das folgende Bild:
Im Hauptfenster sehen Sie den Dateinamen, die Versionsnummer (CVS fngt immer mit 1.1.1.1 an), Optionen fr die dateien (-kb heit
z.B., da es sich um eine binre Datei handelt.
Repositories, letztere die Art des Zugriffs auf den fremnden Server, wenn z.b. rsh oder ssh genutzt werden. Diese Angaben knnen aber
auch jedesmal auf der Kommandozeile angegeben werden. Wenn Sie regelmig mit verschiedenen fremden CVS-Servern arbeiten,
geben Sie vielleicht die Namen jedesmal ein, wenn Sie nur mit einem oder berwiegend mit einem CVS-Server arbeiten, lohnt es sich,
die Angaben in einer Variable zu speichern. Im letzten Fall sollten Sie in Ihrem home-Verzeichnis die Datei .profile entsprechend
ergnzen.
Je nach Shell, die Sie verwenden, kann die Art, wie Sie dies tun, variieren. In unserem Beispiel sollte dort eine Zeile stehen in der Form:
export CVSROOT=:ext:cvs-user@azalea.meinnetz.com:/usr/cvs
Bei anderen Shells knnen auch zwei separate Zeilen erforderlich sein:
CVSROOT=:ext:cvs-user@azalea.meinnetz.com:/usr/cvs
export CVSROOT
Wenn Sie ssh als Zugriffsmethode benutzen wollen, mssen Sie noch eine weitere Umgebungsvariable definieren:
export CVS_RSH=ssh
Die Angaben lesen sich wie folgt: :Zugriffsmethode:Benutzer@server:Verzeichnis.
Die wichtigsten Zugriffsmethoden werden entweder als :pserver: oder als :ext: angegeben. In unserem Beispiel erfolgt der Zugriff via ssh,
deshalb die Angabe :ext:. :pserver: hiee, da der Zugriff ber die Passwort-Datei des Servers erfolgen wrde.
4.1.2 Dateien von einem bestehenden Verzeichnis auf dem Client in das Server-Repository bertragen
Nehmen wir fr das Linux-Beispiel an, das Verzeichnis /home/cvs-user/linux-html solle in das Repository des Servers
bertragen werden und die Umgebungsvaraible CVSROOT sei wie oben beschrieben gesetzt. Wechseln Sie in das Homeverzeichnis, also
das Verzeichnis oberhalb des Verzeichnisses, das bertragen werden soll.
Geben Sie auf der Kommadozeile ein:
cvs import -W "*.zip -k 'b'" -W "*.gif -k 'b'" -W "*.png -k 'b'" -m "Erster Import"
linux-html D-Reymann Erstes-Release
Die Angaben in der Form -W "*.zip 'b' " informieren das CVS-System darber, da es sich bei einer Gruppe von Dateien oder bei
einzelnen Dateien um Binrdateien handelt.
Wenn Sie die CVSROOT-Umgebungsvaraible nicht gesetzt haben, lautet die Zeile:
cvs -d :ext:cvs-user@azalea.meinnetz.com:/usr/cvs import -W "*.zip -k 'b'" -W "*.gif -k 'b'"
-W "*.png -k 'b'" -m "Erster Import" linux-html D-Reymann Erstes-Release
Sie mten jetzt die Besttigung erhalten, da der Import ohne Konflikte geklappt hat (No conflicts created by this import).
4.1.3 Auf dem Client ein Verzeichnis unter CVS-Kontrolle einrichten
Wie bereits beim Windows-Client beschrieben, ist bis jetzt nur auf dem Server ein Verzeichnis vorhanden, das unter Kontrolle von CVS
steht. Damit Sie auch auf dem Client ein Verzeichnis haben, das unter Aufsicht von CVS steht, mssen Sie dieses vom Server
auschecken. Da wir in diesem Beispiel den selben Namen fr das neue Verzeichnis verwenden wollen wie fr das Ursprungsverzeichnis,
benennen wir das Ursprungsverzeichnis um mv linux-html linux-before.
Geben Sie in dem Verzeichnis, unterhalb dessen das neue von CVS kontrollierte Verzeichnis entstehen soll, den Befehl
cvs checkout linux-html
bzw. bei nicht gesetzter Umgebungsvariable CVSROOT:
cvs -d :ext:cvs-user@azalea.meinnetz.com:/usr/cvs checkout linux-html
ein. Sie mten wieder eine Erfolgsmeldung sehen und unterhalb des aktuellen Verzeichnis mte ein neues Verzeichnis linux-html
erstellt worden sein und in diesem das Unterverzeichnis CVS mit den Kontrolldateien fr das CVS-System.
Die weitere Arbeit mit CVS
Ab jetzt mte Ihr Arbeitsrythmus bei den Dateien immer wie folgt aussehen:
Zu Beginn der Arbeit holen Sie sich die aktuellen Fassungen der Dateien vom Server, indem Sie im Verzeichnis, das unter
CVS-Kontrolle steht, den Befehl eingeben:
cvs update bzw.
cvs -d :ext:cvs-user@azalea.meinnetz.com:/usr/cvs update
Sie knnen auf der Kommandozeile auch angeben, da nur Dateien eines bestimmten Typs "upgedatet" werden sollen, indem Sie
einfach den Dateityp oder den Dateinamen angeben: cvs update *.html
Sie bearbeiten die Dateien wie blich.
Wenn Sie fertig sind, aktualisieren Sie die Dateien auf dem Server, indem Sie eingeben:
cvs commit bzw.
cvs -d :ext:cvs-user@azalea.meinnetz.com:/usr/cvs commit
Sie knnen auf der Kommandozeile auch angeben, da nur Dateien eines bestimmten Typs "upgedatet" werden sollen, indem sie
einfach den Dateityp oder den Dateinamen angeben: cvs commit *.html.
Viel Spa.
1 Einleitung
Warum sichere Verbindungen?
Verbindungen zwischen Rechnern im Internet und auch in Intranets werden immer strker unter dem
Aspekt Sicherheit diskutiert. Im heimischen privaten Netz spielt dies sicherlich eine wesentlich geringere
Rolle als bei Rechnern, die in irgendeiner form ffentlich zugnglich sind.
Ein besonderes Einfalltor fr Angriffe sind alle Verbindungen, bei denen im Verlauf des
Verbindungsaufbaus oder whrend der Verbindung selbst Daten zwischen den beteiligten Rechnern
unverschlsselt bertragen werden. Von dieser Problematik sind vor allem telnet-Verbindungen
betroffen aber auch die an anderer Stelle beschriebenen Zugriffe auf CVS-Server.
Eine Lsung dafr bietet die Nutzung der sicheren Verbindung ssh (secure shell), die eine verschlsselte
Verbindung zwischen Client uns Server bietet. Dies ist vor allem auch dann sinnvoll, wenn Sie
beispielsweise Rechner fernwarten wollen.
Nachfolgend wird die Konfiguration eines Linux-Servers sowie von Linux- und Windows-Clients fr ssh
beschrieben. Das Ganze ist so einfach zu realisieren, da eigentlich kein Grund existiert, unverschlsselte
Verbindungen berhaupt noch zuzulassen.
2 Voraussetzungen
Auf dem Linuxserver mu selbstverstndlich das Netzwerk funktionieren und der Server mu von den
anderen Rechnern aus erreichbar sein.
3 Das Grundprinzip
Die Sicherheit einer ssh-Verbindung basiert darauf, da es sich um eine "authentifizierte" Verbindung
handelt und da die Datenbertragung verschlsselt durchgefhrt wird.
Ohne das hier im Detail zu erlutern, Authentifizierung heit, da sich die an der Verbindung beteiligten
Partner mit Hilfe von Schlsseln gegenseitig ausweisen mssen. Das verwendete Verfahren ist eines, bei
dem auf jeder Seite ein ffentlicher und ein privater Schlssel vorhanden sind. Der Partner bekommt
jeweils den ffentlichen Schlssel des anderen, aber dieser wird nur akzeptiert, wenn auf dem Rechner
der passende private Schlssel vorhanden ist. Vom Grundsatz her ist dies das selbe Prinzip, das PGP
(pretty good privacy) fr die Verschlsselung von Mails verwendet.
Ersetzen Sie dabei Benutzer@Rechner durch Ihren Benutzernamen und den Rechnernamen. Im Grunde
ist es egal, was Sie hier eingeben, aber der erzeugte Schlssel entspricht so den eigentlichen (von Unix
kommenden) Vorgaben. Wenn Sie nach einer Passphrase und deren Besttigung gefragt werden, drcken
Sie jeweils die Enter-Taste.
Jetzt mu der erzeugte ffentliche Schlssel auf den Server kopiert werden. Dazu mu ein Benutzer auf
dem Server existieren. Mit diesem Benutzernamen werden dann im Folgenden die Verbindungen
aufgebaut. Ich verwende in diesem Beispiel den im Kapitel fr die Serverkonfiguration bereits
eingerichteten Benutzer ssh-nutzer. Sie mssen den Inhalt des ffentlichen Schlssels (Datei:
identity.pub) auf dem Server in die Datei authorized_keys kopieren, die sich im Unterverzeichnis .ssh im
Benutzerverzeichnis (im Beispiel: /home/ssh-nutzer/.ssh/authorized_keys) befindet. Sie
mssen also am besten diese Datei auf den Server kopieren (z.B. per ftp) und dann z.B. mit Hilfe eines
Editors den Inhalt von identity.pub des Clients in in die Datei /home/ssh-nutzer/.ssh/authorized_keys
kopieren. Wenn Sie ihren ersten Benutzer einrichten, knnen Sie die Datei identity.pub auch einfach
entsprechnd umbenennen.
Damit Sie jetzt von berall aus eine ssh-Verbindung aufbauen knnen, sollten Sie auf der
Windows-Maschine die Variable HOME auf das Verzeichnis setzen, in dem sich das ssh-Programm
befindet. Zudem sollten Sie dieses Verzeichnis in die PATH-Anweisung aufnehmen. Unter Windows 95
und 98 nehmen Sie einfach eine Zeile
set HOME=D:\Programme\ssh
dort auf und ergnzen Sie die Zeile, die mit PATH= anfngt am Ende mit ;D:\Programme\ssh;
Unter Windows NT gehen Sie in die Systemsteuerung, whlen dort Systemund dort Umgebung. Fgen
Sie dort eine entsprechende Variable HOME ein und ergnzen Sie die PATH-Anweisung wie erlutert.
Damit diese Einstellungen systemweit gelten, mssen Sie als Administrator angemeldet sein!
Sie knnen jetzt testen, ob die Verbindung funktioniert. Geben Sie in einem DOS-Fenster den Befehl
ssh Rechnername
ein. Rechnername kann dabei die IP-Nummer des Servers sein, aber auch dessen Name, wenn er in der
Datei \Winnt\system32\drivers\etc\Hosts aufgelistet ist.
Sie mten jetzt eine Meldung in der Art: Host '192.168.1.1' added to the list of known hosts. Und
dannach den Prompt des Lunuxservers sehen. Glckwunsch, das war die erste ssh-Verbindung.
telnet-Client
Der Telnet-Client Tera Term Pro ist erhltlich auf der Webseite
http://www.vector.co.jp/authors/VA002416/teraterm.html.
Sie mssen dort zustzlich die "SSH Extension to Teraterm" TTSSH herunterladen. Bei einer Reihe von
Distributionen (so z.B. SuSE) wird Tera Term Pro auch auf den CDs der Distribution mitgeliefert.
Nebenbei bemerkt empfiehlt sich die Installation von Tera Term Pro meiner Meinung nach sowieso, da
es weitaus leistungsfhiger ist als z.B. das bei Windows mitgelieferte telnet.
Entpacken Sie die Archive in ein beliebiges Programmverzeichnis. Es gibt zwei Mglichkeiten, Tera
Term Pro mit ssh-Untersttzung zu starten:
1. Sie starten das Programm ttssh.exe im Programmverzeichnis von Tera Term Pro und whlen dann
unter Service SSH. Oder Sie setzen wie weiter oben beschrieben eine Umgebungsvariable namens
TERMATERM_EXTENSIONS=1. Dann knnen Sie die Datei ttermpro.exe direkt starten und gelangen
zum genannten Erffnungsfenster. Whlen Sie nach der Wahl von SSH OK, geben den Benutzernamen
auf dem Server (im Beispiel: ssh-nutzer) ein und whlen Sie "Use RSA key to log in". Dabei mu unter
"Private key file" der Name des privaten ssh-Schlssels eingegeben werden (im Beispiel:
D:\Programme\ssh\.ssh\identity) ein.
Sie knnen den Verbindungsaufbau automatisieren, indem Sie einerseits eine Verknpfung zu
ttermpro.exe erstellen, in der unter Ziel als Parameter der Hostname und der Parameter ssh angegeben
sind (im Beispiel Ziel: D:\Programme\TTerm\ttermpro.exe 192.168.1.1:22 -ssh). Andererseits gehen Sie
im laufenden Programm im Men zu den Punkten Setup->SSH Autentication... und tragen
dort im Fenster wie oben erlutert den Benutzernamen, "Use RSA key to log in" und "Private key file"
ein und whlen im Men Setup->Save setup... .
setup durch Eingabe von ./setup.sh. Das war es. Dann knnen Sie wie gesagt von jedem Client aus darauf
zugreifen, indem Sie als Adresse im Browser http://192.168.1.1:10000 angeben. Sie werden nach dem
Administrator-Passwort gefragt und sind dann im Hauptfenster. Weitere Details entnehmen Sie bitte der
(meiner Meinung nach) sehr guten Dokumentation.
Zurck zur Hauptseite