From 8026283bc06394c036d1b4b25a3239d05d399815 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 13 Aug 2008 22:23:31 +0000 Subject: s. Abbildung -> s. Abb. --- LaTeX/bib/references.bib | 2 +- LaTeX/chapters/einleitung.tex | 2 +- LaTeX/chapters/implementierung.tex | 86 +- LaTeX/chapters/protokolle.tex | 20 +- LaTeX/chapters/simulator.tex | 20 +- LaTeX/diplomarbeit.pdf | 3513 ++++++++++++++++++------------------ 6 files changed, 1799 insertions(+), 1844 deletions(-) diff --git a/LaTeX/bib/references.bib b/LaTeX/bib/references.bib index 89a18c4..0af7690 100644 --- a/LaTeX/bib/references.bib +++ b/LaTeX/bib/references.bib @@ -11,5 +11,5 @@ @book{AntManual, title={Apache Ant Manual}, note={http://ant.apache.org/manual/index.html}} @book{AntIntro, title={Apache Ant Introduction}, note={http://www.developer.com/tech/article.php/989631}} @book{Algorithms, author={Thomas H. Cormen}, year={2001}, title={Introduction to Algorithms}, note={ISBN-13: 978-0262032933}} -@book{AlgorithmsC, author={Robert Sedgewick}, year={1999}, title={Algorithms in C}, note={SBN-13: 978-0201314526}} +@book{AlgorithmsC, author={Robert Sedgewick}, year={1999}, title={Algorithms in C}, note={ISBN-13: 978-0201314526}} @book{Swing, author={Marc Loy}, year={2002}, title={Java Swing}, note={ISBN-13: 978-0596004088}} diff --git a/LaTeX/chapters/einleitung.tex b/LaTeX/chapters/einleitung.tex index 214d7fa..2374c1b 100644 --- a/LaTeX/chapters/einleitung.tex +++ b/LaTeX/chapters/einleitung.tex @@ -25,7 +25,7 @@ F \label{fig:ClientServer} \end{figure} -Der Simulator basiert auf dem Client/Server-Prinzip. Jede Simulation besteht in der Regel aus einen teilnehmenden Client und einen Server, die miteinander ber Nachrichten kommunizieren (s. Abbildung \ref{fig:ClientServer}.). Bei komplexen Simulationen knnen auch mehrere Clients und/oder Server mitwirken. +Der Simulator basiert auf dem Client/Server-Prinzip. Jede Simulation besteht in der Regel aus einen teilnehmenden Client und einen Server, die miteinander ber Nachrichten kommunizieren (s. Abb. \ref{fig:ClientServer}.). Bei komplexen Simulationen knnen auch mehrere Clients und/oder Server mitwirken. \subsubsection{Prozesse und deren Rollen} diff --git a/LaTeX/chapters/implementierung.tex b/LaTeX/chapters/implementierung.tex index 120db0e..3ce7c94 100644 --- a/LaTeX/chapters/implementierung.tex +++ b/LaTeX/chapters/implementierung.tex @@ -124,7 +124,7 @@ Jedes programmierbare Ereignis muss, bevor es vom Simulator verwendet werden kan \label{fig:PackageEvents} \end{figure} -In der Implementierung wird zwischen drei Haupttypen von Ereignissen unterschieden, die jeweils in einem unterschiedlichen Paket liegen (s. Abbildung \ref{fig:PackageEvents}.): +In der Implementierung wird zwischen drei Haupttypen von Ereignissen unterschieden, die jeweils in einem unterschiedlichen Paket liegen (s. Abb. \ref{fig:PackageEvents}.): \begin{enumerate} \item \textit{events.implementations}: In diesem Paket befinden sich alle Ereignisse, die ohne weitere Spezialbehandlung vom Simulator eingesetzt werden knnen und vom Benutzer direkt im Ereigniseditor programmierbar sind. @@ -171,7 +171,7 @@ Da \textit{VSAbstractEvent} die Klasse \textit{VSSerializablePrefs} erweitert, s \subsubsection{Beispielimplementierung eines Ereignisses} -Im Folgenden wird als Beispiel die Implementierung des Prozessabsturzereignisses \textit{VSProcessCrashEvent} behandelt. Da die dazugehrige Klasse keine Attribute besitzt, verbleibt auch hier die \textit{initCopy}-Methode mit leerem Klassenrumpf. Aufgrund der Serializierbarkeit von Ereignisobjektten muss jede Ereignisklasse in \textit{onInit()} mit \textit{setClassname} den eigenen Klassennamen mitteilen. Bei der Deserialisierung von Ereignissen werden n\"{a}mlich Objekte anhand der Klassennamen dynamisch neu erstellt, wobei der Klassenname stets bekannt sein muss. In \textit{onStart()} wird das eigentliche Ereignis ausgefhrt. Hier wird berprft, ob der Prozess bereits abgestrzt ist und gegebenenfalls zum Absturz gebracht. +Im Folgenden wird als Beispiel die Implementierung des Prozessabsturzereignisses \textit{VSProcessCrashEvent} behandelt. Da die dazugehrige Klasse keine Attribute besitzt, verbleibt auch hier die \textit{initCopy}-Methode mit leerem Klassenrumpf. Aufgrund der Serializierbarkeit von Ereignisobjektten muss jede Ereignisklasse in \textit{onInit()} mit \textit{setClassname} den eigenen Klassennamen mitteilen. Bei der Deserialisierung von Ereignissen werden n\"{a}mlich Objekte anhand der Klassennamen dynamisch neu erstellt, wobei der Klassenname stets bekannt sein muss. In \textit{onStart()} wird das eigentliche Ereignis ausgefhrt. Hier wird berprft, ob der Prozess bereits abgestrzt ist und ggf. zum Absturz gebracht. \begin{code} package events.implementations; @@ -236,7 +236,7 @@ Jede Simulation besitzt genau eine Instanz von \textit{VSTaskManager}. Eine Inst \label{fig:PackageCore} \end{figure} -Eine Instanz von \textit{VSMessage} stellt eine Nachricht dar, die von einem Prozess verschickt wird. Da \textit{VSMessage} von \textit{VSPrefs} erbt, knnen zwischen zwei Prozessen beliebige Datentypen (s. Tabelle \ref{tb:VariablenDatentypen}.) ber eine Nachricht verschickt werden. Anschlieend wird fr jeden Empfngerprozess ein neues Ereignisobjekt der Klasse \textit{VSMessageReceiveEvent} angelegt, welches eine Referenz der verschickten Nachricht besitzt (s. Abbildung \ref{fig:Wrapping}.). Danach wird ein \textit{VSTask}-Objekt instantiiert, in dem die Referenz auf das Ereignisobjekt und das dazugehrige Prozessobjekt sowie die Ereigniseintrittszeit als Attribute gespeichert werden. Das \textit{VSTask}-Objekt wird dann dem Task-Manager bergeben, der das dazugehrige Ereignis ausfhrt, wenn die Ereigniseintrittszeit eingetroffen ist. Via Java-Polymorphie wird hier das \textit{VSMessageReceiveEvent}-Objekt in ein \textit{VSAbstractEvent} umgewandelt und so in \textit{VSTask} abgelegt. +Eine Instanz von \textit{VSMessage} stellt eine Nachricht dar, die von einem Prozess verschickt wird. Da \textit{VSMessage} von \textit{VSPrefs} erbt, knnen zwischen zwei Prozessen beliebige Datentypen (s. Tabelle \ref{tb:VariablenDatentypen}.) ber eine Nachricht verschickt werden. Anschlieend wird fr jeden Empfngerprozess ein neues Ereignisobjekt der Klasse \textit{VSMessageReceiveEvent} angelegt, welches eine Referenz der verschickten Nachricht besitzt (s. Abb. \ref{fig:Wrapping}.). Danach wird ein \textit{VSTask}-Objekt instantiiert, in dem die Referenz auf das Ereignisobjekt und das dazugehrige Prozessobjekt sowie die Ereigniseintrittszeit als Attribute gespeichert werden. Das \textit{VSTask}-Objekt wird dann dem Task-Manager bergeben, der das dazugehrige Ereignis ausfhrt, wenn die Ereigniseintrittszeit eingetroffen ist. Via Java-Polymorphie wird hier das \textit{VSMessageReceiveEvent}-Objekt in ein \textit{VSAbstractEvent} umgewandelt und so in \textit{VSTask} abgelegt. \begin{figure}[h] \centering @@ -251,7 +251,7 @@ Der Task-Manager speichert anschlie Eine Instanz von \textit{VSInternalProcess} reprsentiert einen simulierten Prozess. Ein \textit{VSInternalProcess} stellt alle vom Simulator intern verwendeten Methoden zur Verfgung, whrend ein \textit{VSAbstractProcess} lediglich Methoden hat, die der Protokollentwickler fr die Erstellung eigener Protokolle verwenden darf. Da \textit{VSAbstractProcess} abstrakt ist und hiervon keine Instanz gebildet werden darf, muss fr einen neuen Prozesses stets ein \textit{VSInternalProcess}-Objekt erstellt werden. Via Polymorphie wird dieses Objekt nach \textit{VSAbstractProcess} umgewandelt und so dem Protokoll-API zur Verfgung gestellt. Beispielsweise darf mit \textit{getTasks()} nur vom Simulator intern auf die Prioritts-Warteschlangen zugegriffen werden, whrend man im Protokoll-API selbiges vermeiden sollte und dies auch gar nicht direkt mglich ist. Hier wre auch ein Stub-Objekt \textit{VSProcessStub} denkbar gewesen. Da aber fast jede Millisekunde auf die Methoden von \textit{VSInternalProcess} zugegriffen wird, wurde hier aus Performance-Grnden der Weg ber eine Vererbungsstufe preferiert. -Alle einstellbaren Prozessvariablen werden von der Klasse \textit{VSPrefs} vererbt. Damit bei Neuberechnungen die Variablen nicht dauernd ber eine \textit{HashMap} von \textit{VSPrefs} zugegriffen werden muss, speichert \textit{VSInternalProcess} aus Performance-Grnden einige Variablen als lokale Kopie ab. Zum Beispiel wird fr die lokale Prozesszeit nicht auf das \textit{HashMap}-Objekt von \textit{VSPrefs}, sondern auf das Klassenattribut \textit{private long localTime} zugegriffen. Vor und nach dem Editieren ber den Prozesseditor werden die \textit{VSPrefs}, bzw. die lokalen Kopien, auf den neuesten Stand gebracht. Selbiges gilt fr weitere Variablen, wie z.B. der Uhrabweichung eines Prozesses. +Alle einstellbaren Prozessvariablen werden von der Klasse \textit{VSPrefs} geerbt. Damit bei Neuberechnungen die Variablen nicht dauernd ber eine \textit{HashMap} von \textit{VSPrefs} zugegriffen werden muss, speichert \textit{VSInternalProcess} aus Performance-Grnden einige Variablen als lokale Kopie ab. Zum Beispiel wird fr die lokale Prozesszeit nicht auf das \textit{HashMap}-Objekt von \textit{VSPrefs}, sondern auf das Klassenattribut \textit{private long localTime} zugegriffen. Vor und nach dem Editieren ber den Prozesseditor werden die \textit{VSPrefs}, bzw. die lokalen Kopien, auf den neuesten Stand gebracht. Selbiges gilt fr weitere Variablen, wie z.B. der Uhrabweichung eines Prozesses. \subsubsection{Beispiel fr die Erstellung von Prozessereignissen} @@ -316,20 +316,20 @@ public String toString() { Fr alle hier aufgelisteten Client-Methoden sind auch die korrespondierenden Server-Methoden anzugeben. Die Server-Methoden sind analog zu den Client-Methoden aufgebaut, wobei lediglich \textit{Client} durch \textit{Server} ausgetauscht werden muss. -Jede Protokollklasse bekommt folgende Methoden von \textit{VSAbstractProtocol} vererbt, welche allesamt vom Protokollentwickler verwendet werden knnen: +Jede Protokollklasse erbt folgende Methoden von \textit{VSAbstractProtocol}, welche vom Protokollentwickler verwendet werden knnen: \begin{itemize} \setlength{\itemsep}{-2mm} \item \textit{pubic void sendMessage(VSMessage message)}: Hiermit verschickt das Protokoll eine Nachricht. - \item \textit{pubic final boolean hasOnServerStart()}: Hiermit lsst sich bestimmen, ob der Server- oder der Client bei dem aktuellen Protokoll die Anfragen startet. + \item \textit{pubic final boolean hasOnServerStart()}: Stellt fest, ob der Server- oder der Client bei dem aktuellen Protokoll die Anfragen startet. \item \textit{pubic final boolean isServer()}: Hiermit lsst sich bestimmen, ob der aktuelle Prozess das aktuelle Protokoll serverseitig aktiviert hat. \item \textit{pubic final boolean isClient()}: Hiermit lsst sich bestimmen, ob der aktuelle Prozess das aktuelle Protokoll clientseitig aktiviert hat. - \item \textit{pubic final void scheduleAt(long time)}: Diese Methode erstellt einen Wecker, der zur angegebenen lokalen Prozesszeit eintritt. Nach Ablauf des Weckers wird, abhngig ob der aktuelle Kontext client- oder serverseitig ist, \textit{onClientSchedue} bzw. \textit{onServerSchedule} ausgefhrt. - \item \textit{pubic final void removeSchedules()}: Entfernt alle gesetzten Wecker des aktuellen Kontextes. - \item \textit{pubic final int getNumProcesses()}: Gibt die totale Anzahl an der Simulation beteiligten Prozesse zurck. + \item \textit{pubic final void scheduleAt(long time)}: Diese Methode erstellt einen Wecker, der zur angegebenen Prozesszeit eintritt. Nach Ablauf des Weckers wird, abhngig vom aktuellen Kontext (server- oder clientseitig), \textit{onClientSchedue} bzw. \textit{onServerSchedule} ausgefhrt. + \item \textit{pubic final void removeSchedules()}: Entfernt alle gesetzten Wecker im aktuellen Kontext. + \item \textit{pubic final int getNumProcesses()}: Gibt die Gesamtzahl an der Simulation beteiligten Prozesse zurck. \end{itemize} -Bei der Implementierung von Protokollen kann zustzlich auf die vererbten Attribute \textit{VSAbstractProcess process} und \textit{VSPrefs prefs} zugegriffen werden. Verfgbare Methoden von \textit{VSPrefs} wurden bereits behandelt. ber \textit{prefs} lassen sich alle globalen Simulationseinstellungen abrufen (z.B. die Simulationsvariable die Angibt, ob Prozesse eigene Nachrichten empfangen: \textit{bool recvOwn = prefs.getBoolean(``sim.message.own.recv'')}). Folgende Prozessmethoden drfen auf \textit{process} aus dem Protokoll-API verwendet werden: +Bei der Implementierung von Protokollen kann zustzlich auf die geerbten Attribute \textit{VSAbstractProcess process} und \textit{VSPrefs prefs} zugegriffen werden. Die verfgbare Methoden von \textit{VSPrefs} wurden bereits behandelt. ber \textit{prefs} lassen sich alle globalen Simulationseinstellungen abrufen. Folgende Prozessmethoden drfen auf \textit{process} aus dem Protokoll-API angewendet werden: \begin{itemize} \setlength{\itemsep}{-2mm} @@ -343,47 +343,47 @@ Bei der Implementierung von Protokollen kann zus \item \textit{public void increaseLamportTime()}: Inkrementiert den Lamport-Zeitstempel um eins. \item \textit{public void updateLamportTime(long lamportTime)}: Erneuert den Lamport-Zeitstempel (vgl. Kap. 3.11.1.). \item \textit{public VSVectorTime getVectorTime()}: Gibt den aktuelle Vektor-Zeitstempel des Prozesses zurck. - \item \textit{public VSTime[] getLamportTimeArray()}: Gibt die gesamte Lamport-Zeitstempel-Historie des Prozesses zurck. Kann jeweils nach VSLamportTime umgewandelt werden. - \item \textit{public VSTime getVectorTimeArray()}: Gibt die gesamte Vektor-Zeitstempel-Historie des Prozesses zurck. Kann jeweils nach VSVectorTime umgewandelt werden. + \item \textit{public VSTime[] getLamportTimeArray()}: Gibt die gesamte Lamport-Zeitstempel-Historie des Prozesses zurck. Kann nach VSLamportTime umgewandelt werden. + \item \textit{public VSTime getVectorTimeArray()}: Gibt die gesamte Vektor-Zeitstempel-Historie des Prozesses zurck. Kann nach VSVectorTime umgewandelt werden. \item \textit{public void updateVectorTime(VSVectorTime vectorTimeUpdate)}: Erneuert den Vektor-Zeitstempel (vgl. Kap. 3.11.1.). \item \textit{public void increaseVectorTime()}: Inkrementiert den Vektor-Zeitstempel am lokalen Index um eins. \item \textit{public int getProcessID()}: Gibt die PID zurck. \item \textit{public void setProcessID(int processID)}: Setzt die PID. - \item \textit{public int getProcessNum()}: Gibt die Prozessnummer zurck. Dieser Wert unterscheidet sich von der PID. Die Prozessnummer gibt an, um den wievielten Prozess, beginnend bei 0, es sich handelt. PIDs hingegen k\"{o}nnen alle m\"{o}glichen ganzstelligen positiven Zahlen sein. + \item \textit{public int getProcessNum()}: Gibt die Prozessnummer zurck. Die Prozessnummer gibt an, um den wievielten Prozess es sich handelt. Die Prozessnummer ist nicht die PID. \item \textit{public int getRandomPercentage()}: Gibt einen Zufallswert zwischen \textit{0} und \textit{100} zurck. - \item \textit{public boolean hasCrashed()}: Gibt \textit{true} zurck, wenn der Prozess whrend der aktuellen Simulation schon mal abgestrzt ist. - \item \textit{public boolean isCrashed()}: Gibt \textit{true} zurck, wenn der Prozess aktuell abgestrzt ist. - \item \textit{public void isCrashed(boolean isCrashed)}: Hiermit kann man den Prozess abstrzen (\textit{isCrashed = true}) und wiederbeleben (\textit{isCrashed = false}) lassen. + \item \textit{public boolean hasCrashed()}: Gibt \textit{true} zurck, wenn der Prozess whrend der aktuellen Simulation bereits abgestrzt ist. + \item \textit{public boolean isCrashed()}: Gibt \textit{true} zurck, wenn der Prozess zur Zeit abgestrzt ist. + \item \textit{public void isCrashed(boolean isCrashed)}: Hiermit kann man den Prozess abstrzen lassen (\textit{isCrashed = true}) sowie wiederbeleben lassen (\textit{isCrashed = false}). \end{itemize} -In der Regel werden in Protokollen auch Nachrichten (\textit{VSMessage}) verschickt. Folgende Methoden drfen davon im Protokoll-API verwendet werden: +In der Regel werden durch Protokolle Nachrichten (\textit{VSMessage}) verschickt. Davon drfen folgende Methoden des Protokoll-API verwendet werden: \begin{itemize} \setlength{\itemsep}{-2mm} \item \textit{public VSMessage()}: Der Standardkonstruktor fr die Erstellung einer neuen Nachricht. \item \textit{public int getMessageID()}: Gibt die Nachrichten-ID zurck. - \item \textit{public boolean equals(VSMessage message)}: Hiermit lsst sich berprfen, ob eine weitere Nachricht die selbe NID besitzt (wobei es sich dann um die selbe Nachricht handeln wrde). + \item \textit{public boolean equals(VSMessage message)}: berprft, ob eine weitere Nachricht die selbe NID besitzt. \end{itemize} Folgende weitere Methoden von \textit{VSMessage} knnen nach Erhalt einer Nachricht verwendet werden: \begin{itemize} \setlength{\itemsep}{-2mm} - \item \textit{public String getName()}: Gibt den Namen des zur Nachricht dazugehrigen Protokolls zurck. Diese Methode funktioniert nur bei empfangenen Nachrichten richtig. - \item \textit{public String getProtocolClassname()}: Gibt den Klassennamen des zur Nachricht dazugehrigen Protokolls zurck. Diese Methode funktioniert nur bei empfangenen Nachrichten richtig. - \item \textit{public VSAbstractProcess getSendingProcess()}: Gibt eine Referenz auf den Senderprozess zurck. Diese Methode funktioniert nur bei empfangenen Nachrichten richtig. - \item \textit{public long getLamportTime()}: Gibt den Lamport-Zeitstempel des Senderprozesses zurck. Diese Methode funktioniert nur bei empfangenen Nachrichten richtig. - \item \textit{public VSVectorTime getVectorTime()}: Gibt den Vektor-Zeitstempel des Senderprozesses zurck. Diese Methode funktioniert nur bei empfangenen Nachrichten richtig. - \item \textit{public boolean isServerMessage()}: Hiermit lsst sich entscheiden, ob es sich um eine Server- oder eine Clientnachricht handelt. Diese Methode funktioniert nur bei empfangenen Nachrichten richtig. + \item \textit{public String getName()}: Gibt den Namen des zur Nachricht gehrenden Protokolls zurck. + \item \textit{public String getProtocolClassname()}: Gibt den Klassennamen des zur Nachricht gehrenden Protokolls zurck. + \item \textit{public VSAbstractProcess getSendingProcess()}: Gibt eine Referenz auf den Senderprozess zurck. + \item \textit{public long getLamportTime()}: Gibt den Lamport-Zeitstempel des Senderprozesses zurck. + \item \textit{public VSVectorTime getVectorTime()}: Gibt den Vektor-Zeitstempel des Senderprozesses zurck. + \item \textit{public boolean isServerMessage()}: Stellt fest, ob es sich um eine Server- oder eine Clientnachricht handelt. \end{itemize} -Wenn ber eine Nachricht Daten verschickt werden sollen, so werden die von \textit{VSPrefs} vererben Methoden verwendet. +Wenn ber eine Nachricht Daten verschickt werden sollen, so werden die von \textit{VSPrefs} gerbten Methoden verwendet. \subsubsection{Beispielimplementierung eines Protokolls} -Im Folgenden wird die Implementierung des zuverlssigen Multicast-Protokolls \textit{VSReliableMulticastProtocol.java} als Beispiel aufgefhrt. Die Funktionsweise des Protokolls wurde bereits in Kapitel 3.10. beschrieben. Client- und Serverseite werden in der selben Klasse implementiert. +Im Folgenden wird die Implementierung des zuverlssigen Multicast-Protokolls \textit{VSReliableMulticastProtocol.java} beispielhaft gezeigt. Die Funktionsweise des Protokolls wurde bereits in Kapitel 3.10. beschrieben. Client- und Serverseite werden hier in der selben Klasse implementiert. -Im Konstruktor muss stets angegeben werden, ob beim gegebenen Protokoll der Client oder der Server die Anfragen startet. Mit \textit{VSAbstractProtocol.HAS\_ON\_CLIENT\_START} wird dem API mitgeteilt, dass der Client die Anfragen startet. Fr \textit{VSAbstractProtocol.HAS\_ON\_SERVER\_START} und Serveranfragen gilt selbiges analog. Da ein Protokoll auch ein \textit{VSAbstractEvent} ist, muss auch hier mit \textit{setClassname} der Klassenname des aktuellen Protokolls angegeben werden: +Im Konstruktor muss stets angegeben werden, ob beim gegebenen Protokoll der Client oder der Server die Anfragen startet. Mit \textit{VSAbstractProtocol.HAS\_ON\_CLIENT\_START} wird dem Simulator mitgeteilt, dass der Client die Anfragen startet. Fr \textit{VSAbstractProtocol.HAS\_ON\_SERVER\_START} und Serveranfragen gilt dies analog. Da ein Protokoll auch ein \textit{VSAbstractEvent} ist, muss auch hier mit \textit{setClassname} der Name der Klasse des aktuellen Protokolls angegeben werden: \begin{code} package protocols.implementations; @@ -403,7 +403,7 @@ public class VSReliableMulticastProtocol \textbf{Clientseite des Protokolls} -Das private Klassenattribut \textit{pids} wird fr die Zwischenspeicherung beteiligter PIDs bentigt. Hier sind alle PIDs abgelegt, von denen noch Besttigungsnachrichten erwartet werden. Hier werden als Standard-PIDs \textit{1} und \textit{3} verwendet. Die Methoden \textit{initVector} und \textit{initLong} wurden von \textit{VSPrefs} vererbt und initialisieren die Protokollvariablen \textit{pids} und \textit{timeout}, welche vom Benutzer im Prozesseditor editiert werden knnen (s. Abbildung \ref{fig:Protokollvariablen}. unter ``Reliable Multicast Client'' ganz unten): +Das private Klassenattribut \textit{pids} wird fr die Zwischenspeicherung beteiligter PIDs bentigt. Hier sind alle PIDs der Prozesse abgelegt, von denen noch Besttigungsnachrichten erwartet werden. als Standard-PIDs werden \textit{1} und \textit{3} verwendet. Die Methoden \textit{initVector} und \textit{initLong} wurden von \textit{VSPrefs} gerbt und initialisieren die Protokollvariablen \textit{pids} und \textit{timeout}, welche vom Benutzer im Prozesseditor editiert werden knnen (s. Abb. \ref{fig:Protokollvariablen}.): \begin{code} private ArrayList pids; @@ -419,7 +419,7 @@ Das private Klassenattribut \textit{pids} wird f } \end{code} -Wenn die Simulation zurckgesetzt wird, dann wird auch \textit{pids} reinitialisiert: +Wenn die Simulation zurckgesetzt wird, dann wird auch das Klassenattribut \textit{pids} neu initialisiert: \begin{code} public void onClientReset() { pids.clear(); @@ -427,7 +427,7 @@ Wenn die Simulation zur } \end{code} -In \textit{onClientStart} wird geprft, ob eine Clientanfrage gestartet werden soll. Wenn dies der Fall ist (wenn von mindestens einem beteiligten Prozess noch keine Besttigung erhalten wurde), wird ein neues Nachrichtenobjekt erstellt, und mit dem Inhalt \textit{Boolean: isMulticast=true} verschickt (intern wird hier fr jeden Empfngerprozess ein \textit{VSMessageReceiveEvent} erzeugt). Mit \textit{scheduleAt} wird ein Wecker festgelegt, zu welcher lokalen Prozesszeit die Methode \textit{onClientSchedule} aufgerufen werden soll (intern wird hier ein \textit{VSProtocolScheduleEvent} erzeugt): +In der Methode \textit{onClientStart} wird geprft, ob eine Clientanfrage gestartet werden soll. Ist dies der Fall (d.h. mindestens von einem beteiligten Prozess wurde noch keine Besttigung erhalten), so wird ein neues Nachrichtenobjekt erstellt. Dieses Objektt wird mit dem Inhalt \textit{Boolean: isMulticast=true} verschickt (intern wird hier fr jeden Empfngerprozess ein \textit{VSMessageReceiveEvent} erzeugt). Mit \textit{scheduleAt} wird ein Wecker festgelegt, der vorgibt zu welcher lokalen Prozesszeit die Methode \textit{onClientSchedule} aufgerufen werden soll (intern wird hier ein \textit{VSProtocolScheduleEvent} erzeugt): \begin{code} public void onClientStart() { if (pids.size() != 0) { @@ -442,7 +442,7 @@ In \textit{onClientStart} wird gepr } \end{code} -Wenn eine Serverantwort eintrifft, dann wird \textit{onClientRecv} aufgerufen. Hier wird berprft, ob berhaupt noch Multicast-Besttigungen bentigt werden. Danach wird geschaut, ob es sich bei der Antwort um eine noch nicht eingetroffene Besttigung handelt. Gegebenenfalls wird die jeweilige PID aus \textit{pids} entfernt. Wenn \textit{pids} leer ist, dann wurde von allen beteiligten Prozessen eine Besttigung erhalten und der Client entfernt mit \textit{removeSchedules} alle seine derzeit programmierten Wecker. +Wenn eine Serverantwort eintrifft, dann wird \textit{onClientRecv} aufgerufen. Hier wird berprft, ob berhaupt noch Multicast-Besttigungen bentigt werden. Nach dieser berprfung wird geschaut, ob es sich bei der Antwort um eine noch nicht eingetroffene Besttigung handelt. Gegebenenfalls wird dann die jeweilige PID aus \textit{pids} entfernt. Wenn \textit{pids} leer ist, dann wurde von allen beteiligten Prozessen eine Besttigung erhalten und der Client entfernt mit \textit{removeSchedules} alle seine derzeit programmierten Wecker. \begin{code} public void onClientRecv(VSMessage recvMessage) { @@ -466,7 +466,7 @@ Wenn eine Serverantwort eintrifft, dann wird \textit{onClientRecv} aufgerufen. H } \end{code} -Fr das erneute Verschicken einer Clientanfrage ruft \textit{onClientSchedule} lediglich die Methode \textit{onClientStart} auf, die wiederum einen neuen Wecker planen kann: +Fr das erneute Verschicken einer Clientanfrage ruft \textit{onClientSchedule} lediglich die Methode \textit{onClientStart} auf, welche wiederum einen neuen Wecker planen kann: \begin{code} public void onClientSchedule() { onClientStart(); @@ -475,7 +475,7 @@ F \textbf{Serverseite des Protokolls} -Die Serverseite des Protokolls speichert im Attribut \textit{ackSent} ab, ob es bereits eine Besttigung des Multicasts verschickt hat oder nicht. In diesem Protokoll werden in \textit{onServerInit} keine Initialisierungen vorgenommen. Demnach gibt es fr den Benutzer auch keine serverseitigen Protokollvariablen zu editieren. Beim Zurcksetzen der Simulation wird lediglich \textit{ackSent} auf den Ursprungswert \textit{false} gesetzt: +Die Serverseite des Protokolls speichert im Attribut \textit{ackSent}, ob es bereits eine Besttigung des Multicasts verschickt hat oder nicht. In diesem Protokoll werden in \textit{onServerInit} keine Initialisierungen vorgenommen. Daher gibt es fr den Benutzer auch keine serverseitigen Protokollvariablen zum Editieren. Beim Zurcksetzen der Simulation wird \textit{ackSent} lediglich auf den Ursprungswert \textit{false} gesetzt: \begin{code} private boolean ackSent = false; @@ -486,7 +486,7 @@ Die Serverseite des Protokolls speichert im Attribut \textit{ackSent} ab, ob es } \end{code} -Wenn der Server eine Clientanfrage erhalten hat, so berprft der Server, ob es sich um eine Multicast-Nachricht handelte. Anschlieend wird gegebenenfalls die Besttigungsnachricht mit \textit{Boolean: isAck=true} und der Server-PID verschickt. Je nachdem ob bereits eine Besttigung verschickt wurde oder nicht, wird eine andere Nachricht gelogt: +Erhlt der Server eine Clientanfrage, so berprft er Server, ob es sich um eine Multicast-Nachricht handelte oder nicht. Daraufhin wird dann ggf. die Besttigungsnachricht mit \textit{Boolean: isAck=true} und der Server-PID verschickt. Je nachdem ob bereits eine Besttigung verschickt wurde oder nicht, wird eine andere Nachricht in Log erstellt: \begin{code} public void onServerRecv(VSMessage recvMessage) { if (recvMessage.getBoolean("isMulticast")) { @@ -505,7 +505,7 @@ Wenn der Server eine Clientanfrage erhalten hat, so } \end{code} -Der Server benutzt in diesem Beispiel keinen Wecker. Dementsprechend hat die Methode \textit{onServerSchedule} auch einen leeren Rumpf: +Der Server benutzt in diesem Beispiel keinen Wecker. Dementsprechend hat der Methodenrumpf von \textit{onServerSchedule} keinen Inhalt: \begin{code} public void onServerSchedule() { } } @@ -513,7 +513,7 @@ Der Server benutzt in diesem Beispiel keinen Wecker. Dementsprechend hat die Met \subsubsection{Erstellung eigener Protokolle (Schnelldurchlauf)} -Hier werden alle Schritte zusammengefasst, die fr die Erstellung eines eigenen Protokolls \textit{VSMyProtocol} durchgefhrt werden mssen. Hierf\"{u}r muss der Protokoll-Entwickler das Java-SDK sowie Apache Ant installiert- und den Quelltext des Simulators vorliegen haben. +Hier werden alle Schritte zusammengefasst, die fr die Erstellung eines eigenen Protokolls \textit{VSMyProtocol} durchgefhrt werden mssen. Ein Protokoll-Entwickler muss hierf\"{u}r das Java-SDK und Apache Ant installiert- und den Quelltext des Simulators vorliegen haben. \begin{enumerate} \item VS-Simulator Quelltext beziehen und in das Verzeichnis \textit{vs/sources/protocols/implementations} wechseln. @@ -526,17 +526,17 @@ registerEvent("protocols.implementations.VSMyProtocol", "Langer Name des Protokolls", // Langer Name "Neues Protokoll"); // Kurzer Name \end{code} - \item Mit dem Befehl \textit{ant compile} die nderungen bernehmen und mit \textit{ant test} testen, ob der Simulator das Protokoll bernommen hat. Hierbei wird der Simulator direkt aus dem Quellverzeichnis gestartet. ``Neues Protokoll'' sollte nun im Ereigniseditor programmiert werden knnen. + \item Mit dem Befehl \textit{ant compile} die nderungen bernehmen und mit \textit{ant test} testen, ob der Simulator das Protokoll bernommen hat. Hierbei wird der Simulator direkt aus dem Quellverzeichnis gestartet. ``Neues Protokoll'' sollte nun im Ereigniseditor sichtbar sein und programmiert werden knnen. \item Mit dem Befehl \textit{ant dist} das Archiv \textit{dist/lib/VS-Sim-Latest.jar} erstellen und verwenden. \end{enumerate} -Wenn eine Simulatorversion versucht eine abgespeicherte Simulation eines nicht implementierten Protokolls zu laden, dann kommt es zu Fehlern. Mit einem neuen Protokoll muss also stets auch immer ein neuer Simulator ausgeliefert werden. +Wenn eine Simulatorversion versucht eine abgespeicherte Simulation eines nicht implementierten Protokolls zu laden, dann kommt es unweigerlich zu Laufzeitfehlern. Daher muss mit einem neuen Protokoll also stets auch der neue Simulator ausgeliefert werden. \section{GUI sowie Simulationsvisualisierung} -Das Paket \textit{simulator} (s. Abbildung \ref{fig:PackageProtocols}.) implementiert die graphische Benutzeroberflche des Simulators. Ausnahmen stellen die Editorklassen in \textit{prefs.editors} sowie die Klasse \textit{utils.VSFrame} dar. +Das Paket \textit{simulator} (s. Abb. \ref{fig:PackageProtocols}.) implementiert die graphische Benutzeroberflche des Simulators. Ausnahmen stellen die Editorklassen in \textit{prefs.editors} sowie die Klasse \textit{utils.VSFrame} dar. -Beim Starten des Simulators wird auf \textit{main}-Methode, welche sich in \textit{VSMain} befindet, aufgerufen. Sie instantiiert ein \textit{VSDefaultPrefs}-Objekt, worin alle Standardeinstellungen des Simulators abgelegt sind. Anschlieend wird ein \textit{VSSimulatorFrame} erzeugt, welches ein Simulatorfenster (s. Abbildung \ref{fig:NeuesFenster}.) implementiert. Das Simulatorfenster erstellt fr jede neue Simulation jeweils ein Objekt der Klasse \textit{VSSimulator}, wobei jede Simulation im Simulationsfenster einen eigenen Tab besitzt (s. Abbildung \ref{fig:NeuErstellteSimulation}., unten links). Jede Simulation besitzt dabei eine eigene Simulationsnummer. Jedes \textit{VSSimulator}-Objekt greift auf die Klasse \textit{VSSimulatorVisualization} zurck, welche die Simulationsvisualisierung (s. Abbildung \ref{fig:Visualisierung}.) implementiert. +Beim Starten des Simulators wird auf \textit{main}-Methode, welche sich in \textit{VSMain} befindet, aufgerufen. Sie instantiiert ein \textit{VSDefaultPrefs}-Objekt, worin alle Standardeinstellungen des Simulators abgelegt sind. Anschlieend wird ein \textit{VSSimulatorFrame} erzeugt, welches ein Simulatorfenster (s. Abb. \ref{fig:NeuesFenster}.) implementiert. Das Simulatorfenster erstellt fr jede neue Simulation jeweils ein Objekt der Klasse \textit{VSSimulator}, wobei jede Simulation im Simulationsfenster einen eigenen Tab besitzt (s. Abb. \ref{fig:NeuErstellteSimulation}., unten links). Jede Simulation besitzt dabei eine eigene Simulationsnummer. Jedes \textit{VSSimulator}-Objekt greift auf die Klasse \textit{VSSimulatorVisualization} zurck, welche die Simulationsvisualisierung (s. Abb. \ref{fig:Visualisierung}.) implementiert. \begin{figure}[h] \centering @@ -549,7 +549,7 @@ Beim Starten des Simulators wird auf \textit{main}-Methode, welche sich in \text Die Klasse \textit{VSMenuItemStates} wird fr die Synchronisierung des Simulationsstatusses verwendet. Abhngig davon kann der Benutzer bestimmte Aktionen durchfhren oder nicht. Zum Beispiel kann eine Simulation nur pausiert werden, wenn sie aktuell abgespielt wird. Alle hier mglichen Aktionen sind bereits aus Kapitel 2.1. bekannt. -Die Klasse \textit{VSCreateTask} wird vom Ereigniseditor verwendet. Der Ereigniseditor (s. Abbildung \ref{fig:SidebarMitEreignissen}.) wird in der Klasse \textit{VSSimulator} implementiert. Hinter jeder Ereignisauswahl verbirgt sich ein \textit{VSCreateTask}-Objekt, welches angibt wie das ein Ereignis anzulegen ist. +Die Klasse \textit{VSCreateTask} wird vom Ereigniseditor verwendet. Der Ereigniseditor (s. Abb. \ref{fig:SidebarMitEreignissen}.) wird in der Klasse \textit{VSSimulator} implementiert. Hinter jeder Ereignisauswahl verbirgt sich ein \textit{VSCreateTask}-Objekt, welches angibt wie das ein Ereignis anzulegen ist. Die Klasse \textit{VSLogging} kapselt f\"{u}r das Loggen von Nachrichten ein \textit{JTextArea}-Objekt ein. In dieser Klasse werden alle Logfunktionen implementiert. Die \textit{JTextArea} wird f\"{u}r die Darstellung dem Simulationsobjekt \textit{VSSimulator} \"{u}bergeben. Fr den Logfilter wird auf das Java-Standardpaket \textit{java.util.regex} (s. \cite{Regexp}) zugegriffen, womit anhand von regulren Ausdrcken in Java-Syntax die Logs gefiltert werden knnen (s. Kap. 2.2.2. im Abschnitt Logfilter). @@ -587,7 +587,7 @@ Jede Simulation besitzt somit seinen eigenen Simulationsthread. Des Weiteren gib \section{Serialisierung und Deserialisierung von Simulationen} -Der Anwender kann eine erstellte Simulation im Datei-Men speichern oder eine bereits abgespeicherte Simulation laden. Hierbei wird von der aus Java angebotenen Mglichkeit Objekte zu Serialisieren Gebrauch gemacht. Im Paket \textit{serialize} (s. Abbildung \ref{fig:PackageSerialize}.) befinden sich Helfer, die bei der Serialisierung einer Simulation unterst\"{u}tzend sind. +Der Anwender kann eine erstellte Simulation im Datei-Men speichern oder eine bereits abgespeicherte Simulation laden. Hierbei wird von der aus Java angebotenen Mglichkeit Objekte zu Serialisieren Gebrauch gemacht. Im Paket \textit{serialize} (s. Abb. \ref{fig:PackageSerialize}.) befinden sich Helfer, die bei der Serialisierung einer Simulation unterst\"{u}tzend sind. Da nicht alle Daten f\"{u}r die Speicherung einer Simulation relevant sind, wird nur eine Auswahl von Klassenattributen serialisiert. Zum Beispiel werden alle Simulationseinstellungen serialisiert, nicht jedoch GUI-Objekte. Alle serialisierbaren Klassen implementieren das Interface \textit{VSSerializable} mit folgenden zwei Methoden: @@ -636,7 +636,7 @@ In Abbildung \ref{fig:SequenceSerialize} ist die komplette Sequenz f\"{u}r die S \section{Helferklassen und Klassen fr Ausnahmebehandlungen} -Es wurden noch nicht die Klassen der Pakete \textit{utils} (s. Abbildung \ref{fig:PackageUtils}.) sowie \textit{exceptions} (s. Abbildung \ref{fig:PackageExceptions}.) vorgestellt. \textit{utils} fasst lediglich einige Helferklassen zusammen, die vom restlichen Quelltext verwendet werden. +Es wurden noch nicht die Klassen der Pakete \textit{utils} (s. Abb. \ref{fig:PackageUtils}.) sowie \textit{exceptions} (s. Abb. \ref{fig:PackageExceptions}.) vorgestellt. \textit{utils} fasst lediglich einige Helferklassen zusammen, die vom restlichen Quelltext verwendet werden. \begin{figure}[h] \centering diff --git a/LaTeX/chapters/protokolle.tex b/LaTeX/chapters/protokolle.tex index 2993777..0fc8f7b 100644 --- a/LaTeX/chapters/protokolle.tex +++ b/LaTeX/chapters/protokolle.tex @@ -17,7 +17,7 @@ Das Dummy-Protokoll dient lediglich als Vorlage f \label{fig:PingPongProto} \end{figure} -Bei dem Ping-Pong Protokoll (s. Abbildung \ref{fig:PingPongProto}.) werden zwischen zwei Prozessen, Client P1 und Server P2, stndig Nachrichten hin- und hergeschickt. Der Ping-Pong Client startet die erste Anfrage, worauf der Server dem Client antwortet. Auf diese Antwort wird vom Client ebenfalls geantwortet und so weiter. Jeder Nachricht wird ein Zhler mitgeschickt, der bei jeder Station um eins inkrementiert- und jeweils im Logfenster protokolliert wird. In Tabelle \ref{tb:PingPongTasks}. sind alle fr dieses Beispiel programmierten Ereignisse aufgefhrt. +Bei dem Ping-Pong Protokoll (s. Abb. \ref{fig:PingPongProto}.) werden zwischen zwei Prozessen, Client P1 und Server P2, stndig Nachrichten hin- und hergeschickt. Der Ping-Pong Client startet die erste Anfrage, worauf der Server dem Client antwortet. Auf diese Antwort wird vom Client ebenfalls geantwortet und so weiter. Jeder Nachricht wird ein Zhler mitgeschickt, der bei jeder Station um eins inkrementiert- und jeweils im Logfenster protokolliert wird. In Tabelle \ref{tb:PingPongTasks}. sind alle fr dieses Beispiel programmierten Ereignisse aufgefhrt. \begin{figure}[h] \centering @@ -97,7 +97,7 @@ Werden die Ereignisse wie in Tabelle \ref{tb:PingPongSturmTasks}. vorgegeben, so Das Broadcast Protokoll verhlt sich hnlich wie das Ping-Pong Protokoll. Der Unterschied ist, dass sich das Protokoll anhand einer eindeutigen Broadcast-ID merkt, welche Nachrichten bereits verschickt wurden. Jeder Prozess verschickt beim Broadcast Protokoll alle erhaltenen Nachrichten erneut, sofern er sie noch nicht schon einmal verschickt hat. -In diesem Fall wird nicht zwischen Client und Server unterschieden, so dass bei der Ankunft einer Nachricht jeweils die gleiche Aktion durchgef\"{u}hrt wird. Somit lsst sich, unter Verwendung mehrerer Prozesse (s. Abbildung \ref{fig:BroadcastSturmProto}.) ein Broadcast erzeugen. P1 ist der Client und startet je eine Anfrage nach \textit{0ms} und \textit{2500ms}. Die Simulationsdauer betrgt hier genau \textit{5000ms}. Da ein Client nur Servernachrichten und ein Server nur Clientnachrichten empfangen kann, ist in dieser Simulation jeder Prozess (s. Tabelle \ref{tb:BroadcastSturmTasks}) gleichzeitig Server und Client. +In diesem Fall wird nicht zwischen Client und Server unterschieden, so dass bei der Ankunft einer Nachricht jeweils die gleiche Aktion durchgef\"{u}hrt wird. Somit lsst sich, unter Verwendung mehrerer Prozesse (s. Abb. \ref{fig:BroadcastSturmProto}.) ein Broadcast erzeugen. P1 ist der Client und startet je eine Anfrage nach \textit{0ms} und \textit{2500ms}. Die Simulationsdauer betrgt hier genau \textit{5000ms}. Da ein Client nur Servernachrichten und ein Server nur Clientnachrichten empfangen kann, ist in dieser Simulation jeder Prozess (s. Tabelle \ref{tb:BroadcastSturmTasks}) gleichzeitig Server und Client. \section{Das Protokoll zur internen Synchronisierung in einem synchronen System \small{\textit{(int-sync.dat)}}} @@ -111,7 +111,7 @@ Bisher wurden nur Protokolle dargestellt, in denen die beteiligten Prozesse kein \label{fig:TimeSyncProto} \end{figure} -Hier (s. Abbildung \ref{fig:TimeSyncProto}.) stellt P1 den Client und P2 den Server dar. Da die bertragungszeit $t_u$ einer Nachricht zwischen den vermuteten Werten $t'_{min}$ und $t'_{max}$ liegt, berechnet der Client P1 nach Empfang der Serverantwort seine neue lokale Prozesszeit mit: +Hier (s. Abb. \ref{fig:TimeSyncProto}.) stellt P1 den Client und P2 den Server dar. Da die bertragungszeit $t_u$ einer Nachricht zwischen den vermuteten Werten $t'_{min}$ und $t'_{max}$ liegt, berechnet der Client P1 nach Empfang der Serverantwort seine neue lokale Prozesszeit mit: \begin{equation*} t_c := t_s + \frac{1}{2} (t'_{min} + t'_{max}) @@ -169,7 +169,7 @@ Wenn der Client seine lokale Zeit $t_c$ bei einem Server synchronisieren m Die Genauigkeit betr\"{a}gt $\pm(\frac{1}{2} t_{rtt} - u_{min}$) wobei $u_{min}$ mit $t_{rtt} < u_{min}$ eine Schranke fr eine Nachrichtenbertragung darstellt(s. \cite{Vorlesung}). -Im Prinzip sieht der Verlauf einer Christians-Simulation so aus wie in Abbildung \ref{fig:TimeSyncProto}., daher wird hier auf eine einfache Abbildung vom Christians-Protokoll verzichtet. Viel interessanter ist der direkte Vergleich zwischen dem Protokoll zur internen Synchronisierung und der Christians Methode der externen Synchronisierung (s. Abbildung \ref{fig:TimeSync2Proto}.). Hier stellt P1 den Client zur internen Synchronisierung und P3 den Client zur externen Synchronisierung dar. P2 fungiert fr beide Protokolle gleichzeitig als Server. P1 und P3 starten jeweils zu den lokalen Prozesszeiten \textit{0ms}, \textit{5000ms} und \textit{10000ms} eine Clientanfrage (s. Tabelle \ref{tb:InterneSync2Tasks}.). P1 und P3 haben als Uhrabweichung einen Wert von \textit{0.1} eingestellt und die Simulationsdauer betrgt insgesamt \textit{15000ms}. +Im Prinzip sieht der Verlauf einer Christians-Simulation so aus wie in Abbildung \ref{fig:TimeSyncProto}., daher wird hier auf eine einfache Abbildung vom Christians-Protokoll verzichtet. Viel interessanter ist der direkte Vergleich zwischen dem Protokoll zur internen Synchronisierung und der Christians Methode der externen Synchronisierung (s. Abb. \ref{fig:TimeSync2Proto}.). Hier stellt P1 den Client zur internen Synchronisierung und P3 den Client zur externen Synchronisierung dar. P2 fungiert fr beide Protokolle gleichzeitig als Server. P1 und P3 starten jeweils zu den lokalen Prozesszeiten \textit{0ms}, \textit{5000ms} und \textit{10000ms} eine Clientanfrage (s. Tabelle \ref{tb:InterneSync2Tasks}.). P1 und P3 haben als Uhrabweichung einen Wert von \textit{0.1} eingestellt und die Simulationsdauer betrgt insgesamt \textit{15000ms}. Aus Abbildung \ref{fig:TimeSync2Proto}. ist ersichtlich, dass nach Ablauf der Simulation, P1 seine Zeit bis auf \textit{15000ms} - \textit{14567ms} = \textit{433ms} und P3 seine Zeit bis auf \textit{15000ms} - \textit{15539ms} = \textit{-539ms} synchronisiert hat. In diesem Beispiel hat also das Protokoll zur internen Synchronisierung ein besseres Ergebnis geliefert. Dies ist allerdings nicht immer zwingend der Fall, da nach einer erneuten Simulationsausfhrung alle Nachrichten jeweils eine neue zufllige bertragungszeit zwischen $t_{min}$ und $t_{max}$ haben werden, die auf die Zeitsynchronisation mit den einem oder anderem Protokoll jeweils andere Auswirkungen haben k\"{o}nnen. @@ -261,7 +261,7 @@ Dieses Protokoll verwendet folgende serverseitige Variable, die in den Prozessei Das Ein-Phasen Commit Protokoll ist dafr gedacht beliebig vielen Clients zu einer Festschreibung zu bewegen. Im realen Leben knnte dies beispielsweise das Erstellen oder Lschen einer Datei sein, von der auf jedem Client eine lokale Kopie existiert. Der Server ist der Koordinator und auch derjenige, der einen Festschreibewunsch initiiert. Hierbei verschickt der Server periodisch so oft den Festschreibewunsch, bis er von jedem Client eine Besttigung erhalten hat. Hierf\"{u}r m\"{u}ssen f\"{u}r den Server die PIDs aller beteiligten Clientprozesse sowie ein Wecker f\"{u}r erneutes Versenden des Festschreibewunsches konfiguriert werden. -Die programmierten Ereignisse des Beispiels auf (s. Abbildung \ref{fig:OnePhaseCommitProto}.) sind in Tabelle \ref{tb:OnePhaseCommitTasks}. aufgelistet. P1 und P3 simulieren jeweils einen Client und P2 den Server. Damit die Simulation mehrere Festschreibewnsche verschickt, strzt in der Simulation P1 nach \textit{1000ms} ab und nach \textit{5000ms} steht er wieder zur Verfgung. Die ersten beide Festschreibewnsche erreichen dadurch P1 nicht und erst der dritte Versuch verluft erfolgreich. Bevor die Besttigung von P1 bei P2 eintrifft, luft jedoch der Wecker erneut ab, so dass ein weiterer Festschreibewunsch versendet wird. Da P1 und P3 jeweils schon eine Besttigung verschickt haben, wird diese Festschreibewunschnachricht ignoriert. Jeder Client besttigt auf einen Festschreibewunsch nur ein einziges Mal. +Die programmierten Ereignisse des Beispiels auf (s. Abb. \ref{fig:OnePhaseCommitProto}.) sind in Tabelle \ref{tb:OnePhaseCommitTasks}. aufgelistet. P1 und P3 simulieren jeweils einen Client und P2 den Server. Damit die Simulation mehrere Festschreibewnsche verschickt, strzt in der Simulation P1 nach \textit{1000ms} ab und nach \textit{5000ms} steht er wieder zur Verfgung. Die ersten beide Festschreibewnsche erreichen dadurch P1 nicht und erst der dritte Versuch verluft erfolgreich. Bevor die Besttigung von P1 bei P2 eintrifft, luft jedoch der Wecker erneut ab, so dass ein weiterer Festschreibewunsch versendet wird. Da P1 und P3 jeweils schon eine Besttigung verschickt haben, wird diese Festschreibewunschnachricht ignoriert. Jeder Client besttigt auf einen Festschreibewunsch nur ein einziges Mal. \begin{table} \centering @@ -302,7 +302,7 @@ Dieses Protokoll verwendet folgende serverseitige Variablen, die in den Prozesse Das Zwei-Phasen Commit Protokoll ist eine Erweiterung des Ein-Phasen Commit Protokolls. Der Server startet zunchst eine Anfrage an alle beteiligten Clients, ob festgeschrieben werden soll. Jeder Client antwortet dann mit \textit{true} oder \textit{false}. Der Server fragt periodisch so oft nach, bis alle Ergebnisse aller Clients vorliegen. Nach Erhalt aller Abstimmungen berprft der Server, ob alle mit \textit{true} abgestimmt haben. Fr den Fall dass mindestens ein Client mit \textit{false} abgestimmt hat, wird der Festschreibevorgang abgebrochen und als globales Abstimmungsergebnis \textit{false} an alle Clients verschickt. Wenn jedoch alle mit \textit{true} abstimmten, soll festgeschrieben werden. Dabei wird das globale Abstimmungsergebnis \textit{true} verschickt. Das globale Abstimmungsergebnis wird periodisch so oft erneut verschickt, bis von jedem Client eine Besttigung des Erhalts vorliegt. -In dem Beispiel (s. Abbildung \ref{fig:TwoPhaseCommitProto}.) sind P1 und P3 Clients und P2 der Server. Der Server verschickt nach \textit{0ms} seine erste Anfrage (s. Tabelle \ref{tb:TwoPhaseCommitTasks}.). Da diese Simulation recht unbersichtlich ist, liegen in den Tabellen \ref{tb:TwoPhaseCommitLogs}. und \ref{tb:TwoPhaseCommitLogs2}. Auszge aus dem Logfenster vor. Die Lamport- und Vektor-Zeitstempel sowie die lokalen Prozesszeiten sind hier nicht aufgef\"{u}hrt. Da keine Uhrabweichungen konfiguriert wurden, sind die lokalen Prozesszeiten stets identisch mit der globalen Zeit, weswegen in den Tabellen pro Logeintrag jeweils nur eine Zeit angegeben ist. Anhand der Nachrichten IDs lassen sich dort die einzelnen Sendungen zuordnen. In den Logs wird auch der Inhalt der verschickten Nachricht sowie die dazugehrigen Datentypen aufgefhrt. Hier stimmen P1 und P3 jeweils mit \textit{true} ab, das heit es soll festgeschrieben werden. +In dem Beispiel (s. Abb. \ref{fig:TwoPhaseCommitProto}.) sind P1 und P3 Clients und P2 der Server. Der Server verschickt nach \textit{0ms} seine erste Anfrage (s. Tabelle \ref{tb:TwoPhaseCommitTasks}.). Da diese Simulation recht unbersichtlich ist, liegen in den Tabellen \ref{tb:TwoPhaseCommitLogs}. und \ref{tb:TwoPhaseCommitLogs2}. Auszge aus dem Logfenster vor. Die Lamport- und Vektor-Zeitstempel sowie die lokalen Prozesszeiten sind hier nicht aufgef\"{u}hrt. Da keine Uhrabweichungen konfiguriert wurden, sind die lokalen Prozesszeiten stets identisch mit der globalen Zeit, weswegen in den Tabellen pro Logeintrag jeweils nur eine Zeit angegeben ist. Anhand der Nachrichten IDs lassen sich dort die einzelnen Sendungen zuordnen. In den Logs wird auch der Inhalt der verschickten Nachricht sowie die dazugehrigen Datentypen aufgefhrt. Hier stimmen P1 und P3 jeweils mit \textit{true} ab, das heit es soll festgeschrieben werden. \begin{table} \centering @@ -509,7 +509,7 @@ In diesem Beispiel ging die 3. Multicast-Nachricht auf den Weg zu P3- und die 5. \label{fig:ReliableMulticastProto} \end{figure} -Bei dem zuverlssigen (Reliable) Multicast verschickt der Client periodisch so oft seine Multicast-Nachricht, bis er von allen beteiligten Servern eine Besttigung erhalten hat. Nach jedem erneuten Versuch vergisst der Client, von welchen Servern er bereits eine Besttigung erhalten hat, wodurch jede erneute Anfrage von allen Teilnehmern aufs Neue best\"{a}tigt werden muss. In dem Beispiel (s. Abbildung \ref{fig:ReliableMulticastProto}., Tabelle \ref{tb:ReliableMulticastTasks}., \ref{tb:ReliableMulticastLogs}. und \ref{tb:ReliableMulticastLogs2}.) ist P2 der Multicast-verschickende Client, whrend P1 und P3 die Server darstellen. Bei \textit{0ms} initiiert der Client seine Multicast-Nachricht. Die Nachrichtenverlustwahrscheinlichkeiten sind bei allen Prozessen auf \textit{30} Prozent eingestellt. +Bei dem zuverlssigen (Reliable) Multicast verschickt der Client periodisch so oft seine Multicast-Nachricht, bis er von allen beteiligten Servern eine Besttigung erhalten hat. Nach jedem erneuten Versuch vergisst der Client, von welchen Servern er bereits eine Besttigung erhalten hat, wodurch jede erneute Anfrage von allen Teilnehmern aufs Neue best\"{a}tigt werden muss. In dem Beispiel (s. Abb. \ref{fig:ReliableMulticastProto}., Tabelle \ref{tb:ReliableMulticastTasks}., \ref{tb:ReliableMulticastLogs}. und \ref{tb:ReliableMulticastLogs2}.) ist P2 der Multicast-verschickende Client, whrend P1 und P3 die Server darstellen. Bei \textit{0ms} initiiert der Client seine Multicast-Nachricht. Die Nachrichtenverlustwahrscheinlichkeiten sind bei allen Prozessen auf \textit{30} Prozent eingestellt. In diesem Beispiel bentigt der Client bis zur erfolgreichen Auslieferung des zuverlssigen Multicasts genau 5 Versuche: @@ -688,7 +688,7 @@ Bisher wurden alle verf \label{fig:Lamportzeit} \end{figure} -Die Vektor- und Lamport-Zeitstempel lassen sich sehr gut am bereits behandeltem Beispiel des Berkeley-Protokoll's (vgl. Kap. 3.6.) demonstrieren. Nach Aktivierung des Lamportzeit-Schalters erscheint bei jedem Ereignis eines Prozesses der aktuelle Lamport-Zeitstempel (s. Abbildung \ref{fig:Lamportzeit}.). Jeder Prozess besitzt einen eigenen Lamport-Zeitstempel, der beim Versenden und Erhalten einer Nachricht inkrementiert wird. Jeder Nachricht wird die aktuelle Lamportzeit $t_l(i)$ des Senderprozesses $i$ beigefgt. Wenn ein weiterer Prozess $j$ diese Nachricht erhlt, so wird der aktuelle Lamport-Zeitstempel $t_l(j)$ von Prozess $j$ wie folgt neu berechnet: +Die Vektor- und Lamport-Zeitstempel lassen sich sehr gut am bereits behandeltem Beispiel des Berkeley-Protokoll's (vgl. Kap. 3.6.) demonstrieren. Nach Aktivierung des Lamportzeit-Schalters erscheint bei jedem Ereignis eines Prozesses der aktuelle Lamport-Zeitstempel (s. Abb. \ref{fig:Lamportzeit}.). Jeder Prozess besitzt einen eigenen Lamport-Zeitstempel, der beim Versenden und Erhalten einer Nachricht inkrementiert wird. Jeder Nachricht wird die aktuelle Lamportzeit $t_l(i)$ des Senderprozesses $i$ beigefgt. Wenn ein weiterer Prozess $j$ diese Nachricht erhlt, so wird der aktuelle Lamport-Zeitstempel $t_l(j)$ von Prozess $j$ wie folgt neu berechnet: \begin{equation*} t_l(j) := 1 + max(t_l(j), t_l(i)) @@ -703,7 +703,7 @@ Es wird also stets die gr \label{fig:Vektorzeit} \end{figure} -Mit aktivem Vektorzeit-Schalter werden alle Vektor-Zeitstempel angezeigt (s. Abbildung \ref{fig:Vektorzeit}.). Wie beim Lamport-Zeitstempel wird auch hier jeder Nachricht der aktuelle Vektor-Zeitstempel des Senderprozesses beigefgt. Bei $n$ beteiligten Prozessen hat der Vektor-Zeitstempel $v$ die Gre $n$. Somit gibt es fr jeden beteiligten Prozess $i$ einen eigenen Index $i$. Mit $v(i)$ kann jeder Prozess auf seinen lokalen Eintrag zugreifen. Wenn $v$ der Vektor-Zeitstempel des Empfngerprozesses $j$ ist und $w$ der Vektor-Zeitstempel des Senderprozesses ist, dann wird der neue lokale Vektor-Zeitstempel wie folgt neu berechnet: +Mit aktivem Vektorzeit-Schalter werden alle Vektor-Zeitstempel angezeigt (s. Abb. \ref{fig:Vektorzeit}.). Wie beim Lamport-Zeitstempel wird auch hier jeder Nachricht der aktuelle Vektor-Zeitstempel des Senderprozesses beigefgt. Bei $n$ beteiligten Prozessen hat der Vektor-Zeitstempel $v$ die Gre $n$. Somit gibt es fr jeden beteiligten Prozess $i$ einen eigenen Index $i$. Mit $v(i)$ kann jeder Prozess auf seinen lokalen Eintrag zugreifen. Wenn $v$ der Vektor-Zeitstempel des Empfngerprozesses $j$ ist und $w$ der Vektor-Zeitstempel des Senderprozesses ist, dann wird der neue lokale Vektor-Zeitstempel wie folgt neu berechnet: \textbf{Pseudo-Code} @@ -738,7 +738,7 @@ Die Ereignisse sind so wie bereits in Tabelle \ref{tb:InterneSync2Tasks}. darges \label{fig:TimeSync2LongTransferProto} \end{figure} -Als Folge (s. Abbildung \ref{fig:TimeSync2LongTransferProto}.) bentigen Nachrichten, die von- und an P3 verschickt werden, fr eine bertragung immer mehr Zeit. Bevor P3 eine Antwort auf seine vorherige Anfrage bekommt, verschickt er eine erneute Anfrage. Da P3 die Serverantworten immer stets seiner letzten verschickten Anfrage zuordnet, berechnet er alle RTTs inkorrekt und seine lokale Zeit wird dadurch bei jedem Durchgang erneut falsch bestimmt. Die Berechnungsformeln der bertragungszeiten wurde bereits in Kapitel 2.4.3. bei den Prozesseinstellungen behandelt. Konkret bedeutet dies hier fr die bertragungszeiten alle Nachrichten von- und an P3 jeweils: +Als Folge (s. Abb. \ref{fig:TimeSync2LongTransferProto}.) bentigen Nachrichten, die von- und an P3 verschickt werden, fr eine bertragung immer mehr Zeit. Bevor P3 eine Antwort auf seine vorherige Anfrage bekommt, verschickt er eine erneute Anfrage. Da P3 die Serverantworten immer stets seiner letzten verschickten Anfrage zuordnet, berechnet er alle RTTs inkorrekt und seine lokale Zeit wird dadurch bei jedem Durchgang erneut falsch bestimmt. Die Berechnungsformeln der bertragungszeiten wurde bereits in Kapitel 2.4.3. bei den Prozesseinstellungen behandelt. Konkret bedeutet dies hier fr die bertragungszeiten alle Nachrichten von- und an P3 jeweils: \begin{equation*} \frac{1}{2} (rand(500, 2000) + rand(2000, 8000)) = \frac{1}{2} rand(2500, 10000) = rand(1250, 5000) ms diff --git a/LaTeX/chapters/simulator.tex b/LaTeX/chapters/simulator.tex index 236d055..f4d74ba 100644 --- a/LaTeX/chapters/simulator.tex +++ b/LaTeX/chapters/simulator.tex @@ -9,13 +9,13 @@ \label{fig:NeuesFenster} \end{figure} -Der Simulator ben\"{o}tigt die JRE 6.0 (1.6) und lsst sich mit dem Befehl \textit{java -jar VS-Sim.jar} starten. Der Simulator prsentiert sich danach so wie in Abbildung \ref{fig:NeuesFenster}. zu sehen ist. Fr die Erstellung einer neuen Simulation wird im Men ``Datei'' (s. Abbildung \ref{fig:DateiMenue}.) der Punkt ``Neue Simulation'' ausgewhlt, wo anschlieend das Einstellungsfenster fr die neue Simulation erscheint. Auf die einzelnen Optionen wird spter genauer eingegangen und es werden nun nur die Standardeinstellungen bernommen. Die GUI mit einer frischen Simulation sieht aus wie in Abbildung \ref{fig:NeuErstellteSimulation}. +Der Simulator ben\"{o}tigt die JRE 6.0 (1.6) und lsst sich mit dem Befehl \textit{java -jar VS-Sim.jar} starten. Der Simulator prsentiert sich danach so wie in Abbildung \ref{fig:NeuesFenster}. zu sehen ist. Fr die Erstellung einer neuen Simulation wird im Men ``Datei'' (s. Abb. \ref{fig:DateiMenue}.) der Punkt ``Neue Simulation'' ausgewhlt, wo anschlieend das Einstellungsfenster fr die neue Simulation erscheint. Auf die einzelnen Optionen wird spter genauer eingegangen und es werden nun nur die Standardeinstellungen bernommen. Die GUI mit einer frischen Simulation sieht aus wie in Abbildung \ref{fig:NeuErstellteSimulation}. Standardm\"{a}ig wird der Simulator im ``einfachen Modus'' gestartet. Daneben gibt es noch einen ``Expertenmodus'', auf welchen sp\"{a}ter eingegangen wird. \subsubsection{Die Menzeile} -Im Datei-Men (s. Abbildung \ref{fig:DateiMenue}.) lassen sich neue Simulationen erstellen oder die aktuell geffnete Simulation schlieen. Neue Simulationen ffnen sich standardmig in einem neuen Tab. Es knnen allerdings auch neue Simulationsfenster, die wiederum eigene Tabs besitzen, geffnet oder geschlossen werden. In jedem Tab befindet sich eine, von den anderen vollstndig unabhngige Simulation. Es knnen somit beliebig viele Simulationen parallel ausgefhrt werden. Die Meneintrge ``ffnen'', ``Speichern'' und ``Speichern unter'' dienen fr das Laden und Speichern von Simulationen. +Im Datei-Men (s. Abb. \ref{fig:DateiMenue}.) lassen sich neue Simulationen erstellen oder die aktuell geffnete Simulation schlieen. Neue Simulationen ffnen sich standardmig in einem neuen Tab. Es knnen allerdings auch neue Simulationsfenster, die wiederum eigene Tabs besitzen, geffnet oder geschlossen werden. In jedem Tab befindet sich eine, von den anderen vollstndig unabhngige Simulation. Es knnen somit beliebig viele Simulationen parallel ausgefhrt werden. Die Meneintrge ``ffnen'', ``Speichern'' und ``Speichern unter'' dienen fr das Laden und Speichern von Simulationen. \begin{figure}[h] \centering @@ -37,7 +37,7 @@ Einige Men \subsubsection{Die Toolbar} -Oben links im Simulator befindet sich die Toolbar (s. Abbildung \ref{fig:Toolbar}.). Die Toolbar enthlt die Funktionen die vom Anwender am hufigsten bentigt werden. +Oben links im Simulator befindet sich die Toolbar (s. Abb. \ref{fig:Toolbar}.). Die Toolbar enthlt die Funktionen die vom Anwender am hufigsten bentigt werden. Die Toolbar bietet vier verschiedene Funktionen an: @@ -77,7 +77,7 @@ Mittig rechts befindet sich die grafische Simulationsvisualisierung. Die X-Achse Die Prozessbalken dienen auch fr Start- und Zielpunkte von Nachrichten. Wenn beispielsweise Prozess 1 eine Nachricht an Prozess 2 verschickt, so wird eine Linie vom einen Prozessbalken zum anderen gezeichnet. Nachrichten, die ein Prozess an sich selbst verschicken, werden nicht visualisiert. Sie werden aber im Logfenster (mehr dazu spter) protokolliert. -Eine andere Mglichkeit einen Prozesseditor aufzurufen ist ein Linksklick auf den zum Prozess gehrigen Prozessbalken. Dies muss also nicht immer ber das Simulator-Men geschehen. Ein Rechtsklick hingegen ffnet ein Popup-Fenster mit weiteren Auswahlmglichkeiten (s. Abbildung \ref{fig:RechtsklickProzessbalken}.). Ein Prozess kann ber das Popup-Men nur whrend einer laufenden Simulation zu einem Absturz oder einer Wiederbelebung bewegt werden. +Eine andere Mglichkeit einen Prozesseditor aufzurufen ist ein Linksklick auf den zum Prozess gehrigen Prozessbalken. Dies muss also nicht immer ber das Simulator-Men geschehen. Ein Rechtsklick hingegen ffnet ein Popup-Fenster mit weiteren Auswahlmglichkeiten (s. Abb. \ref{fig:RechtsklickProzessbalken}.). Ein Prozess kann ber das Popup-Men nur whrend einer laufenden Simulation zu einem Absturz oder einer Wiederbelebung bewegt werden. Generell kann die Anzahl der Prozesse nach Belieben variieren. Die Dauer der Simulation betrgt mindestens \textit{5} und hchstens \textit{120} Sekunden. Die Simulation endet erst, wenn sie die globale Zeit, die angegebene Simulationsendzeit (hier \textit{15} Sekunden) erreicht hat, und nicht, wenn eine lokale Prozesszeit diese Endzeit erreicht. @@ -129,7 +129,7 @@ Mit Hilfe der Sidebar lassen sich Prozessereignisse programmieren. Oben in Abbil \label{fig:SidebarMitEreignissen} \end{figure} -Fr die Erstellung eines neuen Ereignisses kann der Anwender entweder mit einem Rechtsklick auf einen Prozessbalken (s. Abbildung \ref{fig:RechtsklickProzessbalken}.) klicken und dort ``Lokales Ereignis einfgen'' whlen, oder unterhalb der Ereignistabelle ein Ereignis auswhlen (s. Abbildung \ref{fig:Ereignisauswahl}.), im darunter liegenden Textfeld die Ereigniseintrittszeit eintragen und auf ``bernehmen'' gehen. Beispielsweise wurden in Abbildung \ref{fig:SidebarMitEreignissen}. drei Ereignisse hinzugefgt: Absturz nach \textit{123ms}, Wiederbelebung nach \textit{321ms} und erneuter Absturz nach \textit{3000ms} des Prozesses mit der ID 1. +Fr die Erstellung eines neuen Ereignisses kann der Anwender entweder mit einem Rechtsklick auf einen Prozessbalken (s. Abb. \ref{fig:RechtsklickProzessbalken}.) klicken und dort ``Lokales Ereignis einfgen'' whlen, oder unterhalb der Ereignistabelle ein Ereignis auswhlen (s. Abb. \ref{fig:Ereignisauswahl}.), im darunter liegenden Textfeld die Ereigniseintrittszeit eintragen und auf ``bernehmen'' gehen. Beispielsweise wurden in Abbildung \ref{fig:SidebarMitEreignissen}. drei Ereignisse hinzugefgt: Absturz nach \textit{123ms}, Wiederbelebung nach \textit{321ms} und erneuter Absturz nach \textit{3000ms} des Prozesses mit der ID 1. \begin{figure}[h] \centering @@ -140,7 +140,7 @@ F Mit einem Rechtsklick auf den Ereigniseditor lassen sich alle selektierten Ereignisse entweder kopieren oder lschen. Mit Hilfe der Strg-Taste knnen auch mehrere Ereignisse gleichzeitig markiert werden. Die Eintrge der Spalten fr die Zeit und der PID lassen sich nachtrglich editieren. Somit besteht eine komfortable Mglichkeit bereits programmierte Ereignisse auf eine andere Zeit zu verschieben oder einen anderen Prozess zuzuweisen. Allerdings sollte der Anwender darauf achten, dass er nach dem ndern der Ereigniseintrittszeit die Enter-Taste bettigt, da sonst die nderung unwirksam ist. -In der Sidebar gibt es neben dem Ereignis-Tab einen weiteren Tab ``Variablen''. Hinter diesem Tab verbirgt sich der Prozesseditor des aktuell ausgewhlten Prozesses (s. Abbildung \ref{fig:NeueSimulationVariablen}. links). Dort knnen alle Variablen des Prozesses editiert werden und ist somit eine weitere Mglichkeit einen Prozesseditor aufzurufen. +In der Sidebar gibt es neben dem Ereignis-Tab einen weiteren Tab ``Variablen''. Hinter diesem Tab verbirgt sich der Prozesseditor des aktuell ausgewhlten Prozesses (s. Abb. \ref{fig:NeueSimulationVariablen}. links). Dort knnen alle Variablen des Prozesses editiert werden und ist somit eine weitere Mglichkeit einen Prozesseditor aufzurufen. \subsubsection{Das Logfenster} @@ -151,7 +151,7 @@ In der Sidebar gibt es neben dem Ereignis-Tab einen weiteren Tab ``Variablen''. \label{fig:Logfenster} \end{figure} -Das Logfenster (s. Abbildung \ref{fig:NeuErstellteSimulation}., unten) protokolliert in chronologischer Reihenfolge alle eingetroffenen Ereignisse. In Abbildung \ref{fig:Logfenster}. ist das Logfenster nach Erstellung der Demo-Simulation zu sehen, an welcher 3 Prozesse beteiligt sind. Am Anfang eines Logeintrages wird stets die globale Zeit in Millisekunden protokolliert. Bei jedem Prozess werden ebenso seine lokalen Zeiten sowie die Lamport- und die Vektor-Zeitstempel aufgefhrt. Hinter den Zeitangaben werden weitere Angaben, wie beispielsweise welche Nachricht mit welchem Inhalt verschickt wurde und welchem Protokoll sie angehrt, gemacht. Dies wird spter noch anhand von Beispielen demonstriert. +Das Logfenster (s. Abb. \ref{fig:NeuErstellteSimulation}., unten) protokolliert in chronologischer Reihenfolge alle eingetroffenen Ereignisse. In Abbildung \ref{fig:Logfenster}. ist das Logfenster nach Erstellung der Demo-Simulation zu sehen, an welcher 3 Prozesse beteiligt sind. Am Anfang eines Logeintrages wird stets die globale Zeit in Millisekunden protokolliert. Bei jedem Prozess werden ebenso seine lokalen Zeiten sowie die Lamport- und die Vektor-Zeitstempel aufgefhrt. Hinter den Zeitangaben werden weitere Angaben, wie beispielsweise welche Nachricht mit welchem Inhalt verschickt wurde und welchem Protokoll sie angehrt, gemacht. Dies wird spter noch anhand von Beispielen demonstriert. Mit dem Deaktivieren des Logging-Schalters lsst sich das Loggen von Nachrichten temporr ausstellen. Mit deaktiviertem Loggen werden keine neuen Nachrichten mehr ins Logfenster geschrieben. Nach Reaktivieren des Schalters werden alle ausgelassenen Nachrichten nachtrglich in das Fenster geschrieben. Ein deaktiviertes Loggen kann zu verbessertem Leistungsverhalten des Simulators fhren. Dieser Umstand ist der sehr langsamen Java-Implementierung der JTextArea-Klasse zu verdanken, die schnelle Updates nur sehr trge durchfhrt. @@ -170,7 +170,7 @@ Der Simulator kann in zwei verschiedenen Modi betrieben werden. Es gibt einen ei \subsubsection{Neue Funktionen in der Sidebar} -Der erste Unterschied ist in der Sidebar erkennbar (s. Abbildung \ref{fig:SidebarExpertenmodus}.). Dort sind nun, zustzlich zu den lokalen Ereignissen, auch globale Ereignisse editierbar. Wie bereits erwhnt sind unter lokale Ereignisse diejenigen Ereignisse zu verstehen, die auftreten, wenn eine bestimmte lokale Zeit des dazugehrigen Prozesses eingetreten ist. Globale Ereignisse hingegen sind diejenigen Ereignisse, die auftreten, wenn eine bestimmte globale Zeit eingetreten ist. Ein globales Ereignis nimmt die globale Simulationszeit und ein lokales Ereignis die lokale Prozesszeit als Eintrittskriterium. Globale Ereignisse machen somit nur einen Unterschied, wenn sich die lokalen Prozesszeiten von der globalen Zeit unterscheiden. +Der erste Unterschied ist in der Sidebar erkennbar (s. Abb. \ref{fig:SidebarExpertenmodus}.). Dort sind nun, zustzlich zu den lokalen Ereignissen, auch globale Ereignisse editierbar. Wie bereits erwhnt sind unter lokale Ereignisse diejenigen Ereignisse zu verstehen, die auftreten, wenn eine bestimmte lokale Zeit des dazugehrigen Prozesses eingetreten ist. Globale Ereignisse hingegen sind diejenigen Ereignisse, die auftreten, wenn eine bestimmte globale Zeit eingetreten ist. Ein globales Ereignis nimmt die globale Simulationszeit und ein lokales Ereignis die lokale Prozesszeit als Eintrittskriterium. Globale Ereignisse machen somit nur einen Unterschied, wenn sich die lokalen Prozesszeiten von der globalen Zeit unterscheiden. Des Weiteren kann der Anwender bei der Programmierung eines neuen Ereignisses direkt die dazugehrige PID selektieren. Im einfachen Modus wurde hier immer standardmig die PID des aktuell (in der obersten Combo-Box) ausgewhlten Prozesses verwendet (hier mit PID 1). @@ -211,7 +211,7 @@ Es wird zwischen zwei Haupttypen von Ereignissen unterschieden: Programmierbare Die beiden einfachsten Ereignisse sind ``Prozessabsturz'' sowie ``Prozesswiederbelebung''. Wenn ein Prozess abgestrzt ist, so wird sein Prozessbalken in rot dargestellt. Ein abgestrzter Prozess kann keine weiteren Ereignisse mehr verarbeiten und wenn bei ihm eine Nachricht eintrifft, dann kann sie nicht verarbeitet werden und geht deshalb verloren. Die einzige Ausnahme bietet ein Wiederbelebungsereignis. Ein abgestrzter Prozess kann nichts, auer wiederbelebt werden. Whrend eines Prozessabsturzes luft die lokale Prozessuhr, abgesehen von den Lamport- und Vektor-Zeitstempel, normal weiter. Das heit, es besteht die Mglichkeit, dass ein Prozess einige seiner Ereignisse gar nicht ausfhrt, da er zu den Ereigniseintrittszeiten abgestrzt ist. Wenn im echten Leben ein Computer abstrzt oder abgeschaltet wird, dann luft seine Hardware-Uhr unabhngig vom Betriebssystem auch weiter. \subsubsection{Aktivierung und Deaktivierung von Protokollen sowie Starten von Anfragen (programmierbar)} -Es ist bereits bekannt, dass ein Prozess mehrere Protokolle client- und auch serverseitig untersttzen kann. Welches Protokoll von einem Prozess untersttzt wird, kann der Anwender anhand von Protokollaktivierungs- und Protokolldeaktivierungsereignissen konfigurieren. Somit besteht die Mglichkeit, dass ein gegebener Prozess ein bestimmtes Protokoll erst zu einem bestimmten Zeitpunkt untersttzt und gegebenenfalls ein anderes Protokoll ablst. Jedes Protokoll kann entweder server- oder clientseitig aktiviert bzw. deaktiviert werden. Der Anwender hat somit die Auswahl zwischen fnf verschiedenen Protokollereignistypen: +Es ist bereits bekannt, dass ein Prozess mehrere Protokolle client- und auch serverseitig untersttzen kann. Welches Protokoll von einem Prozess untersttzt wird, kann der Anwender anhand von Protokollaktivierungs- und Protokolldeaktivierungsereignissen konfigurieren. Somit besteht die Mglichkeit, dass ein gegebener Prozess ein bestimmtes Protokoll erst zu einem bestimmten Zeitpunkt untersttzt und ggf. ein anderes Protokoll ablst. Jedes Protokoll kann entweder server- oder clientseitig aktiviert bzw. deaktiviert werden. Der Anwender hat somit die Auswahl zwischen fnf verschiedenen Protokollereignistypen: \begin{itemize} \item Aktivierung des Clients eines gegebenen Protokolls @@ -275,7 +275,7 @@ Der Simulator unterscheidet zwischen mehreren Datentypen, in denen die einstellb \subsection{Simulationseinstellungen} -Beim Erstellen einer neuen Simulation erscheint zunchst das dazugehrige Einstellungsfenster (s. Abbildung \ref{fig:Simulationseinstellungen}.). In der Regel reicht es, wenn der Anwender hier, bis auf die Anzahl beteiligter Prozesse, die Standardwerte bernimmt. Es besteht auch die Mglichkeit die Einstellungen nachtrglich zu editieren, indem das Einstellungsfenster via ``Editieren $\rightarrow$ Einstellungen'' erneut aufgerufen wird. +Beim Erstellen einer neuen Simulation erscheint zunchst das dazugehrige Einstellungsfenster (s. Abb. \ref{fig:Simulationseinstellungen}.). In der Regel reicht es, wenn der Anwender hier, bis auf die Anzahl beteiligter Prozesse, die Standardwerte bernimmt. Es besteht auch die Mglichkeit die Einstellungen nachtrglich zu editieren, indem das Einstellungsfenster via ``Editieren $\rightarrow$ Einstellungen'' erneut aufgerufen wird. Im Folgenden werden alle in den Simulationseinstellungen verfgbaren Variablen beschrieben. Die Klammern geben die Typen, Namen und die Standardwerte an, in denen die Variablen vorliegen. diff --git a/LaTeX/diplomarbeit.pdf b/LaTeX/diplomarbeit.pdf index f398b5c..a9e97e8 100644 --- a/LaTeX/diplomarbeit.pdf +++ b/LaTeX/diplomarbeit.pdf @@ -243,7 +243,7 @@ endobj stream xڍUMs6W(͔ͮWvҦZD#.d%`xb$)b:KV #[ܻ@RSŅ[[ܼ|GUbĘhrN2k΄42쳘ؗ pvX79,@n yɈyQ2@Ŵ`dQaձ+y9$Ùfj _/'oqMR \Sokzxb9{k<ũT\P +EpM髮,lyΫ\m4m~\dyr̲i]0u9"+F ι>wyW 7Ve{'} n4~' ,T$Z%UԭoVH!/"4`( %Ҙ给b|UhWEKZ^ gZR@!~r1d*RvXʧhu,L!q5Dk;N(̞+ -ŨF&qeXd˩ʝgZN p.ͩ2):os>0]e{JK|hF"{gj,wy*fxIϫ608J|-_`_K_!sPӱ bk{>>3(~Zuh엗qDh\P@4w1ωuȷgH%Աf`.O{F,s>`ϮbtEEiOԡӀpFu<|9ҊPypΎ|L^K S, rt!8c'4(ܶendstream +ŨF&qeXd˩ʝgZN p.ͩ2):os>0]e{JK|hF"{gj,wy*fxIϫ608J|-_`_K_!sPӱ bk{>>3(~Zuh엗qDh\P@4w1ωuȷgH%Աf`.O{F,s>`ϮbtEEiOԡӀpFu<|9ҊPypΎ|L^K S, rt!8c'4(ܷendstream endobj 162 0 obj << /Type /Page @@ -451,8 +451,8 @@ endobj stream xڍUKo0Wpi0TzcOiz Vix ٤۴Î= i/ J.AH8^%Awm1+x EY?p&AZĬup8myYu} ?]ؼ>~NUP5 }`˘rC$eE(f#:A*Qu1$ճ܅#-B%E/t'zn$Zcu'3_1< !]tG(KB!@Yh_Sy%XHvR0#| Pee暷 o?DPt+CBE(c/дck"d_sڗWuxse$aCQ2RC#u%]6!o_989vQ,4\pph@FGPixL((zGL -E2=־_z7*[6rkb [TRuқf3lDJҰ{r&W",]€3=&Z5>rv$-g~"=#D\qQϠJWq@nx^ 7tQB ZnJ@6'z P>V n5z%J#p Vhipe.b$fIRdcB2]wFZ^ Txk`{9́GbR+oG -%燥7>4h/@UK7;^s mqBNʹ{^`a+,DdAK]O` u 7Q{8 (8h${Beeow;'2 xrv$-g~"=#D\qQϠJWq@nx^ 7tQB ZnJ@6'z P>V n5z%J#p Vh)I2~1~${1!X]e.;@RC-K/KKil׫̘>Tj 1+-$?ϻ}_HAendstream endobj 180 0 obj << /Type /Page @@ -752,15 +752,15 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 235 0 obj << -/Length 1307 +/Length 1306 /Filter /FlateDecode >> stream -x[oF)xR= s{̪6iu_ -pV3ː]GUTl=?? ?EX@j lowjVvo6~/X" -6ECx*WIϊ[zrNjMSiIE!% ְ!(ӮSX)q_C<(mL- -:2UFhBdU|;,4pCL84p9g,TMF GY/%F`OQ9)V8EWWi^VIOIZSc~l\ݥաPHO0ɂ>ȾN͌Rͭމ2l_~#iNuu4>?D/"2 ~&Z*$Bw*1b Z൪,7mK<^ _v\>qjf2ϯ/`%chÚ/tU+jf-$iub8<LyĜviZМ ׿Ʒ;pvlC.F)M8ˇ/qob 2p 9өdLöV![xD1O/9$ -yIlEvZdY|w=5 y1sNLSこxb"T0$No=K5Hkk҃'Y4N)?V(Z߷CNKJ?S,/Q(2HnSU-S-O+|βx5モ8#Sϫ/9r@#b?BvWmo$է\5L"1s jVU75 @/endstream +xYn6}WQj=ftntܗAI[,As)ʌ"h +6-" d"y 5![mIZڂ. BD>"n>.ΪqEy|<-Wn~t~8H ATX` AvBͯB<(6&HJ0mӤI΢LZ,'y&1S$#1 \-j!N0i(\K$eSN-Qk‘fKI6!*'B**2)Wk*Ux]Z +YY럅ZzV^gI@"Wni[zO+cW!/gi ~]9':~)R fܱZ?d*LG'A7=Hk }l֤Gg&rFV`Pm 7|J# +Ef>^-j!?R"L1zy[3<,=2 m1e0[=d14=OLFE34=y'7.3FCE1@Z0O3y o&;f>Vk.לY#J/4hN¼=T~y: +xő9#;vzKZW>WsA5z )>f`[youKbIM(HMN#{mJ^~jΟtz2|2$3vYFk[&e۬URhR5u,LFnQ h<@":Nu4RsRA6f!SjQ&Kc^>iHnޏA,"p}LDݢBtctΈUJ3tBY:-ʤJ:>$ VzH$C;&hA i6K/^0ca {Xsf#9la9 ,.Nɱ5tt/endstream endobj 234 0 obj << /Type /Page @@ -1090,18 +1090,16 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 309 0 obj << -/Length 1628 +/Length 1629 /Filter /FlateDecode >> stream -xKo6:XDZEmC5އ"(j)Q9U -4‡HG)!v{weIZM0\}dFFJݼ˨`J&No~]}s&xu[_k*V~MGPn~zqӅ#-%}^n1]Hʌv?Hd,\^Gh0n8 ܳa8TGi:z0 %WzC^]]߮)^Ӯ*yY{OP;vqRƑT,HfrL#F g2R̸6BbvV3jj5&z&(dhz OoIJ$ԐԠЩZiI.{%w6@FFj jfxMYvaFzeo43U R!!#ASo tr(M(N4CΗA=lvUmJF -ʼnZ*`݊Q!#ASo 7uX"f$kyG{ȳ4,&̤6ۺV?dCGd4P%}pŏK7۝'[dciw~%i~-0,#Έ[B -:um ΋'u_|}R3Qo(Ŋ$RwV31!!}wGH(#M5(OKP\gQVHvHr-]y%[8+Gc7p7r Aoz}L$Y!_ [PEEVpy<Ͳ<Z^ͳ87ɾ[ -,GOՂkBQ\"xebmCmu n?[tN]j!m׶d8:ͨܪ5޲'_ zkX~en4Ҍ1Ψe,b*vAt8j& eocoP3ް77K:12>&6-t͉[XRnܔݔ5\kgN/}#!_ bd :-inj`Ԣ^A4/ եޏts&8Awm4YGi>Щ0*q!]TܚQF9`epU!n#gLGendstream +xo6W`rjX{~K#TdM|xe $S7a^ġR8LFĥ$e#:WI!#VASo-<+uQ%ŮB1SKQG,ľ)qO<ؓo]c<4O2K$J`5Ql0O,bbH'z&:S*I!A"{&K]2z>_m[L[7c}.rd%6Qmt'V`57QaG_*|? ˟zkYK +9w0xӏ[Y"{S"AbhԉKon]GBIB A +zk$5uI+oE2 u0PeP5+mr=_Ͳ h7+{A`AAzk!yȡ*7ut;iyȃ/|w<))*x'6wg5ߪУ\v+&O`;n0"DHxע7`gigEMJIk0K~BɆďOd _0*G,C*'ZEd :-inj`ԡ^A5/ ՕOts&8Awc4YOi!ЩI s.*SnMƨ|KZ#gX0n)`dH&q5Nendstream endobj 308 0 obj << /Type /Page @@ -1441,15 +1439,19 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 397 0 obj << -/Length 1773 +/Length 1770 /Filter /FlateDecode >> stream -xڭXKs6WHX0$HN餓N{sLXBMRH%}w EQ>3oW?$xI` Dp_` {oOe|(VA2!q¸Nm)9)gs`yyxev[/goߞ]bY>dQY$KNDDɨ/u $˄x)qƒ$`҃~E97NfpR'IT;4Tmfsɰ(p}84SQTmH6Lp].MThlmw|ٝ5Xm-oݮ5ns ZozL^An_E2ߡyB`q`,[q=tXxPqQlTZS7%<ݺ0eyL5,%KEveHRT:_>}Ao7p&LՙJSet+ٯCs}iet2?+SL锦) ;C .+\AK0PF#mnPI,? |,såS4ujRje1S"Ӊz! [.Kac/&qtRhG=Ї眗"_ (eK8 %22F3t`S Weޮݒ yc;"|@T$3}{$h>T2~k -s`ήkZ[5DmY?oZ~6^5ͪ2|18q b/ -khP0a` ᇽɡnD,1qWI2{ 2Nye#JO\%)J?غx\|{QeVxP44X]~O&=7Kph!8KR J4=LYӘ= ]a][7*~^F8:N;аkjݮ\z  3*OO"X1ZX"y^ ō}mhv@). - dn2޽9Ǫ_7=`H2 Qy;uMasmsazZtyFL%-RS0[_ث 7ϯ;=:FojUAzn1|ķq2aZĔPjc=ίx.J0:ίAH 5>vdP1R_1,F#1?D#B]z߯-SNAHwk88WM<v&և`"R=)l"xGl 4y:rĚ0`0bڸ܏ *_aL6 -Vw󤮝b[:&(_tԮc*K3@h;lzX;}Z,dP#9_a %ܔ٤WsdOՎht+'Y} <~O|1K_5F3"oAOfgQd +B0 +/;CWgc,c>2J<)->?O5l.4l68l]n۳X$9KX~2c8 R8NDDIq $˄qS%I"~f2 .gs7!e\G' N:pg T2Zfdήko4YԱ5-):+'6mC gƖYͧ.3SӃc'f +kQ:4\uhA߯Wmqmsw5 L8'63põXe:Z2(,ax/̇1M%_@DXF #)#mhW#2;ih @륍D LX@?MEy)Kԃwu8ö4JNn1moNlRY .iy]_Әm: S7kJ'ᑺV- x^iԞWp!@qmA(5Fa?]LMF3gX Ia`?o9vW=_Bs{N?LO.O@S řE +|JfpI{!a}^~5T;ӣcvY^U,/v6tNPuDDY6q~uWq~T0\!cG(:dZ`u4шWϟfB]z߯`-SNAH; Gӫ0U9OxLD'eM$ &7W#ք \\U>2,;(|A{bk`eK7/;'uے1Q_G =~Ip#GO.LeISƏ&6;O:Ii0` 7e1|v6i)benjSK]Y} Pc})oq;R~|߯G5{endstream endobj 396 0 obj << /Type /Page @@ -1508,7 +1510,7 @@ endobj 400 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [439.224 439.1519 453.6796 449.7342] +/Rect [438.6031 439.2596 453.0587 449.7342] /Subtype /Link /A << /S /GoTo /D (figure.1.1) >> >> endobj @@ -1656,21 +1658,15 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 428 0 obj << -/Length 1115 +/Length 1134 /Filter /FlateDecode >> stream -xڭVYo6~У T ovI%flme9k _R+)"@4$\ 2 -,3HTfa5ή',HTi1fGzCa()jMήpQ=i@ͪn5|:_O nl Z -AzS(Ô|op^|fiP3!*zG000EFDjkw1+ağ(j&i=߶FKk4dX1D8~L~To&i0x`;v9F4XH, -DX#2ț~Um\Ǖ. LjZ`^˥Za"mheQ97Da"D -zI~GW|,Nd}qE5R>V1V; }[BeN[Mܯ7m JP4ǝ=%Diy~p -e+qNsUx^[1 -R }3Zwբ:Ǔ/qGwp` -c-lya3E -)S)dLymE%;ґzI-aIXi`B?A>o$ -ʼnyymkYw?g^GвiugBFN6 -C'G[R Ii9.u<ԑ<rMpC:)<K`_`+? q^+n7' &2H=Mkaކ?ťR7-)9{ԏ.|>@`~P6aXŘA4;}d548YۭuZmWu?ѳp}U0>NCA +4}a̸}k9L3`Qsa(&8Gak/RlUx'GbMª}rw6u~7@k~zIyRAZ,_1WsI|e>Hߙ=ʅȹbA᭕ ~C?.âendstream endobj 427 0 obj << /Type /Page @@ -1705,14 +1701,14 @@ endobj 430 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [255.8878 171.4698 270.3433 182.052] +/Rect [250.8385 171.4698 265.2941 182.052] /Subtype /Link /A << /S /GoTo /D (figure.2.1) >> >> endobj 431 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [194.9997 153.5425 209.4552 164.1248] +/Rect [164.113 153.5425 178.5686 164.1248] /Subtype /Link /A << /S /GoTo /D (figure.2.2) >> >> endobj @@ -1734,17 +1730,17 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 436 0 obj << -/Length 1783 +/Length 1769 /Filter /FlateDecode >> stream -xڭXYo8~У ,QǾhZ{o؇RE;RY e[I -"@D? g9,"CTq` De>_k^OoooG*HXEap $L1{({S2N֚v%2p./wߚCzi&7- Fp?y |qqu;%gI;ӈ>?L& SDZzDEM[k%%)ݤ4D鳺`KYw`jw~F!uߛўw~3/DK:7*Qe}8ܹ -JY52kTc^%/=5B%a~tӹy:3%dD'JzD&e4kX%iJ^%(;pT`ٶQa= SK -@Kݮ'?7ZHӝ v|ٛwYmraW=LGߺr(pcꃸU⦆k [z|t+ /*J8 Of]6)<ͼHSB[}A?л̳hRWTX@aTz ^r֛rAHcKB -)ܿ=香[ƛ6٭(ak ֏GֆW?mC8Eb eFEv[~-} I]@J"6_H;S6+$asڟ Fs1]9zx|O卫QV=,moiFyǶl|2ڕ xeaCBk=dJvYvtپ !KaY&ߠ>Z.KGUOPDҨNdf̣f>[T`сuå;Kځ)ham8qf}\ \GoflQ˱Ta3[ Iw. ԰ ->}Gځe$]lJ$Kg6a1)tYGb$ ™ε;>4T()z. -Xh4OyPQ132/0siO7Gj”JFprL1@4Ill8CFơ%M$?G|sx" !;8 iovNZšIh7khIR<2rˈzEsn0:BNЂB?I35E)/M2YIj[P Z"%UQ%I%%01TPsw]4xHMvԚ]h(pbIKl[粋U]] Cas u6p:N{͔ 0Dˡz)r{omCy%Q|4gu OwWN/{2\:5m$NǮm(%Y1pZľBQH4]kѱmlhX{;YCu'wṯGTN0õť/(eg*`/l!#jl8viM&|k!=GgOɱrvk.hQj_5<*fuR|0[J8GP-pݷfx68Ij KLwNVwvt; IA'-?g_j0Vr!I=6dTHcP1xendstream +xڭr6<;M@ĚL:bh;3x}c?xi`!Dp`gp cy cyD:̮1cY$tϕHPq4V)ԀHt=nDXV]ab_ʴݛ6Ti&4n ;W2hH#2\ TjgjXm}KA.^ުKԠ`YdOcq~d`TFLJ%,K'H<<r BBy!ƕa-J L*0⾤Ui] Bأ% +y o,F]7#vcD0z/lUG+4[0vX1Ħ”u*F@(hYos*x&(xLPЃxoւ6`#op8f endstream endobj 435 0 obj << /Type /Page @@ -1796,14 +1792,14 @@ endobj 438 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [115.6891 738.8587 130.1446 749.2347] +/Rect [73.4132 740.6699 87.8688 749.2347] /Subtype /Link /A << /S /GoTo /D (figure.2.3) >> >> endobj 440 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [190.8158 619.8696 205.2714 630.4518] +/Rect [167.1638 619.8696 181.6194 630.4518] /Subtype /Link /A << /S /GoTo /D (figure.2.2) >> >> endobj @@ -1822,15 +1818,17 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 444 0 obj << -/Length 1350 +/Length 1351 /Filter /FlateDecode >> stream -xڭXKoFWHfߏ EVQqE˄i*.HJQvg|2K(H"Sq%3ldl-K2Y%*"t.֟__:/76d)JӫݜtyC)m^wTﶫ|FH -PElei~Ѻ8%VkD*m35}(%1$D8PAӬ_(aq&@ŝrv=UHf:O+ )(k6P&F$8k-KUƭ诽1Fߌnw_|ɻ-Mz LYa^r(%T2|K™Фr3brA+,UQ&V o-w.ޝ: /ЋE4Cu{\Ŷ# $Hc~9M#Ω)ߡ#ZZBӽТT8Fۻ h14nr7 -yމ8.ΡөN&D,=.m - [Lowh#U">}83㏐Ht$H@net~UT$qg/희in'rpDcN J]2;҆f {P ΎҼq, v@w}U}Ę`8ww!](cf_{QnuF[faai-ߋhݻ`@9(mnE>VoN5059twhS8>qZOlɚRaYkf4֘xXv4Ô0j˥U2TOjT@gbS'R'j@ -LB:_ lvþm1JCrf1k1Uʜ8\AhΊ6pZKRؤo(3CQd7Vwm,+S. oFvHqW*AQ.mB4;ܶsVU@Ṵ.H=W\悦Q}MNQ* P=s%.9] (տqe }#q3Ʃ ~<_73ӱMM!9JN`,T{^Lw e:ײ.6Y΍M9rEia1.n("|[TH=fLn,v!n- U_e_f歙SbOIJM&9#Z[\HrJ +Y> +X?x9ǓǙNp)V u$?-,\ 96W@ p⬵(.Z(?R_|&=R&!y'ٚc\b(%T23HtGy\&%Ӯs l^b.PcE fXBmq݉[cb xWVM3Tš9]w6VC{i؞]N8ňsjv(bjڳ-:g;tϵ&$vU63Kv\/Z2Ƿ9t:ވߖD,ݔ<{R/] - jUԁu_އ7+tτ@G#ṩLR ,TeI< @{'_G`,C!@j` -%#i 7 +ر{ +(<}bϸJQXvP@w۫:`%#JFh]:ݪ|<+e{EE]4RQx, ;mޜjDLxGQN67gEfƚVnPcRcCmC¨/FV 3?mQep\;M蹖-rirb3+\S16$2]0d(C~22l妡o2D+ 1"05AᠲfTAlaΊqR KRؤeCo(3CAdҗ7Z Hy|A EuMSx8^,~ +ćE|ʥacoxEP0 &3RۋuF+` Fq 2ciUE U9!\p FD-59(9wz\J ],sZj=Q}ho7vҎĐvx†SAK |'īgbj@ú׋ ෧bP{>W}3j.6W#ӹ:;n'ؤ//oAuHJw[i?.,}silrNkikJK:0N 6 ::p -!^9RZeū +̈́ǘtV oCKendstream endobj 443 0 obj << /Type /Page @@ -1943,7 +1941,7 @@ endobj 447 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [326.0184 419.7691 340.474 430.3514] +/Rect [317.0492 419.8768 331.5048 430.3514] /Subtype /Link /A << /S /GoTo /D (figure.2.4) >> >> endobj @@ -2043,17 +2041,15 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 459 0 obj << -/Length 2298 +/Length 2302 /Filter /FlateDecode >> stream -xڭYݏ۸߿6f!RRlzid -5V| _)SMQ#@Lp~3,MXs=Ks!f>ڧWxe ^oѨYrcLr͔N<׿^<KfsKS|^|\[Kmu!6mB}WI}o#tSK2c)I KIgK)1YS*>[rLn~@Ӎ}DFeIen+f%Tƀ(?ό6r`!#"FIkH!',W:cR)ȗf!|Xm>ʞR22ةX2lNEY.ccE*H| {PoNEgrre?TYg8-e̒b1s$/hEz^*g\'UU񜐵Wi,]}[sW]iB;(-MI/g'i^U 0Lyj:f9eԊ < tr~jQ<># { gs"``.mއs;ۼM4!Q~2|Gm{)5XNaҠc59y 5gifUx^2"BA)XmUR,5D'by!}6Z>,׍ZK2^gSB4s?[^qN4T)F\MJsl KPZʴVfubB,rČЌsyZ'C/:V M`=՟$gDe E Iګ*|t~f҃| qcЀ&,Dʀ.*;2=&9"L0 2 *qR빤yJPSwK ~_fM;lY[K)Ez}lovM⍖sɧPvԚƘRsz43,a—0j.G oi%Jy7֙Y(=nFu@My!sێR겳TG׃oQiF znIH(GBӾ@?}D:z]ݾ\lBjσ`DOSt`Sh0[[&lbֈ(ICsjȝ|Q |nqG堭7϶F2~Ӷ?SXj -\BVH7}|8a_0ˏ1)0ðK:`QndE*FޭߪMR S*z -{@\LϚ, A2Yƛp5  թ9PuF4SQ-g;~/ b .-!ث|5=6ci /UEpb)ܹ;>0Chc+үO[ɽm|u'7pB9qMhMFկ`~ҩqЎbz>.>XOwhCq,[ٮAo:ޕ\5Zx7$y ƻj"ղLsp ܈CG@q6qMh٧C`d8`16-V8$DkO o=[?Đph2ϠDsh6qinL|1}qcF{ݞԉ.EƖ^Gw*B|8cP tō\YTwIRȖTd Wd7B{" YBdET _Ys3(i ®lIKd|0"`lЏڭLI ~qƯSБʨY+D Xa%4cL/2GemqTP]ਸ[B!bfV ͪxt?Þei"ώxSzCLS!N{z7I9I7T & Y4 - < U֖F2Bv uj 9 JuO'a|:ӄLOa)z}D+C1x*.? 'Hgendstream +xڭYo_GYRԷ[dwmݤ-p nj-D|wCʔ%;)j,p8dČ?1KS<׳40b }]eLOe,7Ff Laŏb/s[Klu!6mB~JD߹~Ћ2cI)Ô6lfLԁϖ<Ӹ~5|g_3lw#30S#f%dƀ(?ό6r`!#"F&,I#\\r%R:@6%(۶SѬ.,2e( 3Ȧtv*rr,҄4Bk{TPyK''XV.Ra`$WWgacXlLmvugiԚ"$/Zȡ>Mc/P"E~M,#SX*@tlfB;gsUq8,͌*K@B^2yZH( y': RsMt"҇Q!a$gJ\7jEc$JO(cn(ʧI^Uٷw3  u]c4a!2G(5pQީ'q11q}FLg l|1vMP\>>n4>wlִÖ_ʺ>b|^T;>]mfq[ێ$h:w| +eWJi tvN/3f#L5QfZ[\օH$-$P!Ʋ=U:3S|{(-h/ kvWD:b]|_m;;U $ƴ/?:A/ߡ`ߠ7keo<;-s\]4X}d,Ԁ55)9tN E\@Pdۡ>qq%z~![#%Bj۟)}p@LebSU$ %[&ÞeiǼQ 3#!P&=48{=g2==E4?&Ոziz(q2FCY 7Uzy +whCJu`w !tuٷϮ&[^(x| g1W֔jWK?qz>.>\`T>]7?T_8]Jt+Ajnv'J 轅K]5 ,k RĈv[8dnġ<8VO4P;4*a0#t~شX#=MP&6|nBn½nɣ[ +4WnfA(-: 8yP>V[JS,4x'Kc3P0G;(4OP tō\[T㗠QyPf'Tf WfWR{*`eoQ/}%d͠ A/? %-ܿf~nof"Nj{3~b&07uPHz\!|2-76(cIA И_ɐ^dƨqqˮ:wK_\(S zQzv< һ߳7MSޔ8',K:vexR$ $MBE Cr:OIXkKBC+]-E$> >> endobj @@ -2178,18 +2174,18 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 476 0 obj << -/Length 1833 +/Length 1847 /Filter /FlateDecode >> stream -xڭXoF _G)֢]n&ۀ5}-D[In#wl9 EH;gpII\!Dr9 -".b,/J,T'7)u^_g߫Lp>{Wz wυvt-H+ t 9<dzwFrfT>oOtSҎ65,27Evݲoԩo_/qG˪.w_z $*䗑Úxnt[tX9r(XSf',k AvMIDm g}mQZW*R^$51-5/}[6Z].eQi_,08Y92a! Kx+v\=@DGԆ-N0,Ƌ&D'egG2;6 Eг, !('bՕ1s()Wa}yIe٪rS !V1[}M!Qy^z/ͬqfrk0߸^ݮ]P*gZYR2{:5i v,9qA)mHTh ݺjw+Gc^zu(h!ӹTIRm:?o -vzAAzX0Q\3# :-,MR:9@lGgXm>lSpTfMIJT4ʂO6sD8KOf -\S%Z/g*n?ξ~I Dds&S(ȩ.>8@sf+2,G(ZT31F&J)ͽs?R<ՂA)jdH<8 dBV0(դ3Ԧԕ(+m* Ķ'X9gUqQn JT=VKa,䮆\hSVǧU%F~Obs"u1= ߘ-ܖu!ٮDyPoʅq.)?neqAÚ]_4˃ﵹ]>T5MħE߮4C]H4 "Aj-xAR8l~߃lMe(ݶ4=M`U8uņxpO"36޹t"2ceOlhلT%"b֖aI  -( gAFJ>Tt+E*U -z"ԔV nX[r`ߋ~k˱4\bAkYV<*LʌR9הf1^t0M&^VG^w(݉xOhUs6\ߎ~ŀq#iJ%LifaOZo:Z$>"4Ӽ0IV(Xl/xȼrxUI +kur%0e̫Sk\X,O%[, n!xZ^s.E~[nrpkt [W.^]fYn|O#)Oe +eN}*ۅ)XLУBs+fV ٛ fnljlZ2;3fLpO8ڙ4T|||n5 LmEծ[,!TѯTns{vuZezZeӸ 1*ξ\)m(t(Wi(YBy +UDVʲVq--X0YNS2MP̌93>wGFTڙP-}W%$Cv*j!Z0 _5U8\@WCO״ﬣh_z/y5c)^+WjLںv,;kq- W_kPU> 8[w4+g,S&T`QwK: RˋGy랃^/rH~"L1g*.9KVpEpkLP= +܁ Y&rl]b\tX*2-v{p|2pɴa^ +Xg!e`mn)!SfЖu7$.iqYWn3gBRt;a\jj0gA2\ʟU%,ާx{q--?' ?,BzCK} =#"tۡvEiWHVhx ZY?y M^¤opЭ'~p|bږШ3ںMV&֍#ƨT3D'7q3:Nu; z\O=ײTHDd򀂀7aX1]#k\.e8GHĜD0}ے<]9&hêeo|d{ AxЂD\_Gm=TO +"V\Fp %XBjv+bکc2&Zv.tUݮik o$>oIJ(ңdt{-ȡ>HxJIZp"n |*?Q/48 +&t cxCh#Z` !o:hT#36^[mcgu PZJG$8DVrT9e"Bb~Z(MMonzR**Tt317רCJa\\#ǧ-q + pXff gC,"b-ub;-no{|چ/'c$eiM j֣f*S5ޡxG`Op8H;2<ۇK r{!V> l׉?ßh^#endstream endobj 475 0 obj << /Type /Page @@ -2230,28 +2226,28 @@ endobj 478 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [174.1791 756.7859 188.6347 767.3682] +/Rect [153.6421 756.7859 168.0976 767.3682] /Subtype /Link /A << /S /GoTo /D (figure.2.6) >> >> endobj 479 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [244.5486 738.8587 259.0042 749.441] +/Rect [205.0421 738.8587 219.4976 749.441] /Subtype /Link /A << /S /GoTo /D (figure.2.9) >> >> endobj 480 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [338.4425 720.9315 352.898 733.0693] +/Rect [306.7373 720.9315 321.1929 733.0693] /Subtype /Link /A << /S /GoTo /D (figure.2.8) >> >> endobj 481 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [348.64 153.5425 368.0808 164.1248] +/Rect [307.8138 153.5425 327.2546 164.1248] /Subtype /Link /A << /S /GoTo /D (figure.2.13) >> >> endobj @@ -2267,20 +2263,19 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 485 0 obj << -/Length 2295 +/Length 2285 /Filter /FlateDecode >> stream -xڭYKs6W8S%"rKWNڵMU8ŠD)F7f8Jvn0@C_nP2O:* + (`W26p~w{T(TA%B%فOM,_b&QЯe*( -3-Rw׵LV6SZAwQ}r ?rdz۽Ik*/I://ҎtJ g*E9r tJ8dPI(Y!,/׍Te:D% -?9DDE,*BT΃Q,%=VJdi$tJ`i0{|zk+2?΃QE(2%)'Q -sY$]VʴhQR)HEQNg']Er+%:WJE2QI|)ai ErA%J -&rLP"V:ȡܴ@K\0G LTYѵ:wb'A_~i"~O8t*)o=j.D5s{7=NJsƮM3sߍ:V]][4V#AmK}vuWY=?hZg q+вmeƾ{`u`8 IH ƌdw_[}ۍT-,H2HQ=^[ɞ'9et"BL\18rɹ`[w`pr֖4Zה q\ ?ƕmf{i\ڋ5)sίJA*;rƌֶ`ۭEX]P@(.!@CfZ9‹p4#Umʚ'#ፅӮ&- $4Nȫ2Qlla5$r=AYڲyXH u?]"OgeٚzM]<I q$Lc9!uXּ:G>Kڽ@~NȘ88b )!,;lsR^ZgKQػ(vLvwmwwW't].0ͨ82ˍ RCxo1fi6w[h e>|VzJ N W29fq4!8G=Ri!PHƨRf41 zs,KDfG+ق|o qݶ 4Zݘ6>Y)hWNѵ9Ubb4TeRsL T3qUh[B~JHXP 7\Yf{aM{w@>-\1n 5t#Է1*)& |sM0 k8t@R 7}(8pACx^7ϵ!1+XZb䡕/zS?9Ѳ3۲@uXOZC̾Uge([N;ƋO><@kniߑ!ND?&V{eFIr<zLp'GreO% ]􍢠Nrr?*DWFoK3E`S|s(^!M@n,Pr%fBCI7C>h(] Cj TxiÜ!å7,T8$>=ݖK!يlCSs?t r`Kh:rJcV֮] 7Cڎw~08~hj-Qw>>8 avIylt/L$'#؝D`ona$bwd-ʻy -B4H|#RHsyǦ'X]~?<5X0á~_Sg -yrR 3BDG ! -ec+O:dk'sQ ;gct]>J?66>u8ϹΛ %<@SxKLo-di -> NGP2+E=COxg-{CC& -,0]{Iz iu$Jql}GH>lVts8 R2v326ď&[w_+HKf^RW"M+\Ws.&endstream +xڭ]s6ݿB3Y7gƝ6q3h-Jں_j+9a) = "Y%{J}8͔b"л{ %GwtI +zIz߭} &[ 0|]JwVw@UD2(fHq}:a,(NM8N)F +"O@Ⴁ!eW_h eHu)4a%/}xvgPi@di"7/2LA K1Y۳TYH(I3wxDHHuS'7hϢ~  `3J$7q,E$6t̎n$hbnMUŴ/ŏY|ozLaP'>ZɕnAw3Qb_D2 E'MOam|e YWa-*5VX% FN,"C-俤qQmYCH9bunZ cX gq&?쭨ו[~>L7%FfB\3{T;NJ7dC3Ɩgڡ}ZrVA ™ڦ`3`#fk*56M}dם6ec^R-D$1OD$BNΏԋ؁ +۳nZ07ϗ3)!zDs:Νq[¦@k;VC.ɕgS۞^iB|=!Xθgҵ4c-dm*Sjr4e 2[]RH(.!tOKMJ Ϧ+z ,&XYۼߵ[ACS`"j9!Xʷ?,Dut:*#Y#`?Q;ZV4([-06LWǼ޷,݆@.#ѿ)4y=z~WI( Qo{Tͩ~CT'ߠL00xM7ȣ h(a7MmH\#^8B3'|M)[hL@,w*٬o\$G#וI)-=Ҕٴ6-]0U¦ɭ .[(lcV +8ZݢB?[XA+? o؆ ++B{IH˙Yf<ʎS?:жC0@\Tx~.<\YR"uICZ:›O8Apv?ƌg*@AK/5O2 *@Cʡ7`bboˊ@MUBJ0ۙ0Z= lˁ_-pB}.3 +oAI;k;q#7fu@Y- ͒>` kWk 0x)\r[yhN盟m ܝ7 Iiꂯ/"\a:Ǫ]IC;k'Ղ + +N•|~]Sšhx^FCɹJ8@zLK7*E/""w~ s"d$(xto&H0Q%Y$wٔ[p@"3y l h :i0P m["n=V#AD=!JaIQ,sd֐hX:8 qq2 ]d #)1 S;"!; ie[H- tِu$uʊz@>(R^ Y$xr@;s~i*&%3}`ܲ왗g~?|X(?NE8#ѷl8&2O7g><ԍLy$V&6Q\}rw4E ~#dgTa`EƑUm00๿qx& Εa|]& /Y VƉz#8qendstream endobj 484 0 obj << /Type /Page @@ -2315,14 +2310,14 @@ endobj 488 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [189.468 588.243 203.9236 598.8253] +/Rect [168.7158 584.1684 183.1714 594.7507] /Subtype /Link /A << /S /GoTo /D (figure.2.3) >> >> endobj 489 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [140.3034 570.3158 159.7443 580.898] +/Rect [115.1975 566.2412 134.6383 576.8234] /Subtype /Link /A << /S /GoTo /D (figure.2.10) >> >> endobj @@ -2340,10 +2335,10 @@ endobj /D [484 0 R /XYZ 300.9731 674.9144 null] >> endobj 487 0 obj << -/D [484 0 R /XYZ 74.4095 616.6478 null] +/D [484 0 R /XYZ 74.4095 615.4719 null] >> endobj 26 0 obj << -/D [484 0 R /XYZ 74.4095 337.3784 null] +/D [484 0 R /XYZ 74.4095 343.552 null] >> endobj 483 0 obj << /Font << /F63 220 0 R /F28 173 0 R /F26 170 0 R >> @@ -2351,16 +2346,16 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 494 0 obj << -/Length 1602 +/Length 1605 /Filter /FlateDecode >> stream -xڭnF}BZR7N iN4΃֚N#I{8 !9ޤ=K0by쥹s^1o [1K7g/ea$w,e2oog=j4Ebn͙_2&"s v#WA5u[ 9DZGJi0׏=8 K.Z^74W3b{{)cv8oll 4EJ%XFu)mt+#^~1@VgF"RZuߘ{m0z=»f .kPFL2Bƕ:TΥVFoAi4۲ǝ 1e\-S1~:5Lt1+n,F'-,RUoqܪ5w2Iچki5U顭 -*c]N!YCy[w: A`vą@=$?@h`s)s"L] 'gd_hzJg+|@/_*smONױI (VSV>s?a"C"~QH4j0 mc҅)"XC6D=B#XѓYjjendstream +xڭXYo6~У:ԉ4-IyZ.k8 һ$@ ?pnR?d1yY"mNxW8l4#T9+4?'L%Nu!lF]"d(|AW'Nz g(dМ([()fI}ru碐q`h#et[Ğ2T@"sT|S[Ot>lDw7TNJ7c# LT3S,x.*Y^1/8Z>[cM]Mfh!/(ӄZm>RZтvC35级ïLc;.Ή@b_|n}8 +(ClUAHmdRG]FH %iE=ܝaqXJ=9wZv=E#=a>]"aER~B am;w553BflmWQn%n['v 8WavZ-❕cl$7Lxp#m )YYqPZs /<r0<]+)qӀ7P-A9#- Ӌ^MAiy +2l0h?ad55hB)XZԕ1 y{pi3ߣ[ݎ$rrR#!~tk6֯r~]Ʉzk]TyDD" lW/Fq#]8\p'v"A@Eܦ vOD,JS_RǪz885Bn&ݤ4SøX|O+M oȖB{*p4zb03MSxZ@&%r]g.)NYh٬OTF؞R*5wNγEֆЋ\ ^Mc\Kj•NۥUwLkGxXI -ˆ~O<>,y?&rk=@ +a&l7JefC .Ź5$,I51xM۾%39vz(W;.g=ε7QqD"%d@B ēIOdG=EDS. +itJ6+"Dg)a@--k O# +4/~z (A[>k؟N2O iv e{^kJI:֭@׺v`7f(/ Kt@%c=VW.ፔjNalSH 1"ej[KBw@A#5z7UtM&4.BSxm![!:> >> endobj @@ -2696,17 +2691,20 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 515 0 obj << -/Length 2237 +/Length 2234 /Filter /FlateDecode >> stream -xڵk -gVDo{wk$fɦ%uHĿARvIfEƅ&MMp^ ԗ^f0_ v/z# ѲIrHlks70D ޷>%\}iUF<)ne+r0fep(?LғKπ&@)q]ZC |H\mR㇯i(?YI.TΎ(^I"tTS*ԵV5BJaTeb+pk)|(\+~9)S.YJy<' 4( ~qh5ݔˇMdAm^6QK/ɱEݱ0c}c%D(Ğ-ѵ考r^/>s(}&N c; CEс=g}2Uӥ\m[&#w/`!zYԄe#%٣Xp=GgC@,1HYf\?.ͅY CvnhL^$UqUۉFg=%\X8YL{߶8ַ#QT vU N*l&S"%F[MaTf9 ϯ< + jY"B {J̭_%nZֳ);O4<`:>UIա6GmKR>PB jkL31+9',,LQY$d`.{ 6]R9f&~I]Se]҉ݯX:%M^H YGa#R)종i_m2U|Z/֔j{R'^EJ[_~/EZGD} ij_:Lo0JmU M-"Kþ* ! Lcs Pc|GҐwI][r3M^8zgq|'JXN2.kaS~Ar-I@#0;({*Ft1R4XAm +*]R7} 2nj$nH':zhh ie! +ϟ[D2x=!b'9{iO(*=6 )s LsG1\+c6P>UBo[~2Z? k[=q%?2J}wJ*Ȣ2\XTsйs^m\]lp3RE=w/ )쉐S֛Eq~/+TF 5zZXtzEk5C;5tʥj(7kǾϰƮy<_.Pj.*p;=oqq)0JN>Q6Їg4q-jc{KOnΰݍ-cZnN.Z)gp;[A4lwxKĥ+Aj}h4g +0ћr݈v/z7ѻкֻ}Qx'[a4lwxKƥ+aj!ܛ 8$Hp2W)ٱ؆+ $W|M%Kcq"`Zu(/@3sDA&Oڌlʰq\t@, ?$ 3J[&?pIS@k% yqQP;E oh?EfR5 afynV/R + bTZV­lUfCiVMGQc)*36lLCzTD2ƿMɇW72mO|!}i;mǮ! ,r&Fe +6ڄR 2^EFCczν{ ܰicpLX#uD@z'*:S1HEiDsiqfs{Ks(KG늮_ICbZo"J\.69pؽ3Op񵠳2\>-E|WTXCt>-C;ROHjS-_ +8rQ`2hlC}c]}X5;yTJ-sv̴qwq?osdCX%@cͩ酃u6,7Ay4@GC]ƘL̍-ߡ(rC 0{6-^ȮFo>^?##b3 ͅdտo^?endstream endobj 514 0 obj << /Type /Page @@ -2767,21 +2765,29 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 529 0 obj << -/Length 2793 +/Length 2791 /Filter /FlateDecode >> stream -xڭZo_I@~.sH=\/n -4ee^(%_ߙ](Ar8;Y%Yj%,8l.vC7W}g,c5D3=ϫ\X4 X$,x2ϯD7w^q5slW -y-ꉮ/\}"a1y:)e&-gd:RqYrLF^| -pv!aZ1\qxϞc2[r8*aN3`'cfKYfK,|e z3*9KuƄ䚫I(T¬F?j2k -tv(gr99!JH|ƕׇBs˞D1 5es9d:ѺJ2A(yiJ_Ը{dlҶGRb6_^d*whA3T@u? 9&8feɫֳw@mms{oY!'YE0xG>a#7{k`Ccw4$ΨMˍjžs 6ke:z|(qO{2(\i•u sZ>N8ݿwPq4^- g853p-xGrK` -C*uz֬gq0s7G{ěC nTz(!`D=2iA>jjڲ{0P)z/Z|C`{֮._+uk8u!Bz -}:Vi.Pn*[CpnCaW9ٵ>F/%@51P1q78p݆y{_hN[yvtQ|1VR3Qk@N*o":2p+I}z^ Y W$DZYݕkZok - 8ivpR˄R&z_wԀ p'CP>5+6TrePCka!тv)RT{iŁKNG!1!+Gt`:/]i(P >->K>(<)O̎e0L:MtŖg -C8TO #z+X”f -4nfHuR8smVEUPdqx.;%)3<{Rnf6\,Y6levqw ?A~qWuu6v48t{;TY.?gߢʪuTK|sz|աF-f",=qQ-{rmЈVdi /<~zsҽ"U~ LK-^ΕJJ:;RAYG_y"d1@c=_Ŕ.7/}}a같<و;A}N{!H:I*س莰i300I#bV {8lF !/T,aZ!e"Q DFXw]Ļū,؍1Xf!8AG楢;Pݸ%` vz1 3~p_j镃ގ2ko6S~ZW,v>}mJ'bl90>];]:1{D|aRy”ٞO҄Gؘ [FSGD2*5>߲?R=E&6WY+'JaGv1]\3U$AM^ܰ =ڱ-P|?;ܣԁlj>ԧT.zs~'@`15n.K[BU+,y քאp-]C P{nFMqVdv0Ud fSIRȳ5OWU,_(+b(cAhqHe@p@fx]םm9~VOCo1-0׆H˱Y\=HC ΄kfTɦ-(h$6D9$nUM @JU&=D ~_C)B뱂֦^mĉG6'Tl ˺-DbQ 6r񱇲,Xx3 !4@}{9sFendstream +xڭZo8_{'~Ka{M-pMq$7hᐲdN +5 7T,|fSIg60|vHfxK2/o.Y2cv&ͤW_ub)l:lI2^d_'hn|*ݷ ޭ\ Z*]':_/\}"a1y:)eΖ3cRۧTk$VΖ Y$5~0eb+Lyda9͌&, %CfKfLqΖFed2 )h&?P 4,2#(ٱ\yNȩ,ҡo\sqWb"Xhi&2CB:D1 +5}Tˎtud2WRv˫֕K~QXmIێ)T2o_#{Vgʑ<1Af-;l@M)wkc"XI-ʒga%7 Dەpr93c6R~@By|0Qv?vKOzr堃/=EFbhyޕ~Ewmߕ}պ?9 ܾhy9I@dȹ(E +݅@ O1pxQbߍAAcX*t +xSrufF?K!'rIڀt:I?䩾 + +2i?%J\Ks`Lki r 2HeT:2Vre"Htf=FtTO2vLj ۼuUPCr-\} XrJ76 + MOj3J"A2=x9l,][bي>e}vT4ei. LB/k* =b=)8>r-( U-=>+n8@'Dth˃[MKۋV=D]-T #v*>eot|\]s}C#:W#T2e*xޣߧYȪ0iIC +B&*<с(Dxo֭6lcۯ\DZWP<#!K=1Cn}ND/}>R1 ?!}tA; JZ'`<&Ѐ<1@PXkVgތx<~R}+Ʉ7 gX~cKU /S%/M ŀ +o6^u Dd `lKE%z*HEp sN5K fBv2eofdA~+W0z㍏*2kCƧƩxR2UI_[o)[j}4. ѡeE.35.2׆ Oڵˡ80-a c0Cok)?*sDm 4{> >> endobj @@ -3236,15 +3242,11 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 582 0 obj << -/Length 1365 +/Length 1353 /Filter /FlateDecode >> stream -xڽXOF> /7R*hA$[;Mgf6>@M+n<3;_;;[XB%FIJ@0\o4YY \.iXⴖM¹%*dr!5/YfTe(Mϫ][r6e*o|Q.o/@j_HMqFf=a.ܸN'1ScxM&t1\gK UD1a0aqP;fEKAT{tV*oCE qQ2PIUvNj 4jmQ" >/>| -T->(ad.8⏡;8QNB -Z_oLaH`w '<* JZ(6&pG12|[l!Hsƭ#VRj3>w& ϙ%ZC1C4;Os׫ac\-MkoAi܁B\ddK\,k̩3701kf)('V(Q?ESDəϣSÆV nIjӕFbO`X8#j(hk8iT$w[ vĵ$+ĸ):N[a(#W+_Ƃ}},ۧ .~ZQ)|D[,%ą%UUka8ꠘB6aE|RTVbmQfQoDdj!;!Q~~XCi[ΪQWu#祿$c%"7Tidi=ܴ:ד:Ud!>&+Ӽl>2Lʊd ւЂ8kɓт},U\m#{_Mu~>*ǒQj% %Qxc@8(_7&Nt[4{{٫N~]?7lEhؕacP6ɬU9fC*mUetPo60iI_.,̯fU05&^闌~M6\4S:= -b4zNnߛ*ҡ}8"j qw!Px[b]uݚ#mIEİ r @~Ks !@tp敀 VhmjuJ Z:x[gz ,DN~*=<0f"DeNj"ӖC1 -")eZ~U^בdE~ A;JtK8k/0i=\ew3CrpYxvH_LCL+xwZaUoYendstream +xڽXKo6Wh7޲niQAGKJ_Rd9x4pPcDL%&@0\3aElځ!rvAĒLk,o-1T'է}Ѻ"Yymw Nƅjwh ˳eX뼖RIRΈ {b3e $cLcp}TF1&MpBBd:j(q0YfQ= bP%U5ۣ݃MPP6NԓdT}Sȋ$*oՀk$Dd+:&+">(aYƓr3JX.f ͱIsXY,Ȯ2A5"ݱֻ|ޔmː|dYrɓnx$F)S̨N9ä9R n(faCip= jج-8OFt|hC_gN휹A;'!\׹rb]D1E4qt0,HiUhbre FxN<=Bwl=d\C Tɲ^w&s9L:ڳ9ݡ5N2a܎DzD%|K۰p;$rL>j;-Hy3ڠ@>*@2ЁvWAfMp76@cC\ 2)]TvR;EPbqrĕ/Qym*|<5*ڕӠ"T/ 84tbQo۵Ox?l?ڠ#&1\0Wn3LNwס3ݵCC/cFm`s7p5E7{s) ٝyWo׸9ܕeq$vź*&v^mDCy!z5q Roz|KcVyj0 CY7/ k\C\[L+p##S i`𶐚RזVVP:x?Gendstream endobj 581 0 obj << /Type /Page @@ -3874,14 +3876,14 @@ endobj 584 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [251.4983 483.4938 265.9538 494.0761] +/Rect [225.6691 483.4938 240.1247 494.0761] /Subtype /Link /A << /S /GoTo /D (figure.3.1) >> >> endobj 585 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [104.2303 411.7849 118.6858 422.3672] +/Rect [73.4132 411.7849 87.8688 422.3672] /Subtype /Link /A << /S /GoTo /D (table.3.1) >> >> endobj @@ -3903,22 +3905,21 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 589 0 obj << -/Length 2980 +/Length 2988 /Filter /FlateDecode >> stream -xڽZߏ۸~߿6fştsmr!-=h׌-o-_)Ӓlo78BǙG$$WLeVOr+asM0_dQxJx󧟌&?O(XiyPqjz6y1l6Y6}۶ǙȦؾ^P㵫Aݼ"c1e2LiO3c/9t|4$upǶr;W^C9,\Pd_sdm8!<<)_|p\f?fBO} p؈̈́sNAE6痎ratJ -)ϻϦ2-A*tk -X;KN,X -;l]\BL\ ᶀ@@*Wƨ;N -qƁ"#IqA`( 6$]ce;{];ɧM3C@0̏ f@5P<B0ɬcAGg$yhJ^ ypd7ޗsZe̻,pHs#m,펤\U-Ut#U}@|K fǾl*M&~V1~ -K -V`M6O;[PϲZa5As{}zk^+ۣAXKA?Ϫi%y[4h 36-b- -4lf j|p&uR>P2M+(o{bjMW[ӟ<ۃzU%,h&(wSWrzb[d%`26`=-'ky:iE JۭUp ?/-QҲmρ®ۿ5Ii-(-^D_Ш9 aXQV|9t+&8Լb@FԥeڼX!y.A%5[wgMEƆ$ ~ކ;Y;W_#Iͧ<Z(̹Q7u|C2R:`4Vޒ"N-akR_Z,H쮤g -Gidֵ5+,!`[/Mk-]Qnab|ݰEt"%F6ѻa,37U?u u6wq_Hs0Sdga7gN( t8\X|P=I@[8}#^ǩWIuE'Ȭ} TPcCܓ5 MC$(!s@$-/ qC).-Rr!2=rW;ynS.hԅ *+^TVT[e nF^AIXDfm mIeyKDuۗDYz'_e+;J}uvp܂4AP{YuFR@#BBvDԷE;:Q&P:(!ao#7۠jD \dNRD1Bs$@ a[Ob/P2}fۑYNA :cW~j;2llؿ*)+\bn{H|&'.[='/ .LM}c.T}i>d88b{|9h -?%B(b^5G/7*9qBr* 55 ,|=04`T-M a155+8 Tdz)ZgPxn%3O' PwH\8clI]ZvcU*c6/X>k!r*kCTzІN -m7 -i_=lϱj_ɳXJ-:qC"*8gର2]0̢܇ - g"}I޵; %AjƧ695{ʫ)Dz/Icӏ'Fn2*K]0hw  ͓kxfy/@颉+u}#8 n͙F.'҅$3V#FP[A9?>tWz}W˔/w"SՓJhp>yd%<S7n􃑓Yc3-L?-~X>W["/:˦vv4t^; jqU\9:AXaxJ's1ERG*YT 6H1[?Z"եmp[O]K-տ5Ij-ȵ-)^@_Ш9 aXQV|5t*EcZjbFեmܼIY!x.A%5[; BҦ@cCF?nЪ+UF!V; +9sn~#Pw1s;ݞ*AIjn-,r,ݚyhP>qzBHuip1%""л*T)֭AQq  QFȾ  t*MD^@O!za'b=*A{7(dXzD/q$l\էF$DsWaħC/U\wW?a0~1|qk10r*g-.OP*Rӟhy^ qP "UAd=^g xn5[3O w!yBqGui(!Tl^a9^k!r0jSa?t_ OX0HO <8"w 9z)ĝcɾ g1g[V993ݡ/Q ZNW3>()졠]uF$@J +< -ma ^+. LZr "ͳrsu8{h"< +}q6=Jt CK`^5tH;}"\L2c ÈTr 0:(wWd(XxϽ1 f4"Py'}f![endstream endobj 588 0 obj << /Type /Page @@ -3980,25 +3981,24 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 600 0 obj << -/Length 2914 -/Filter /FlateDecode ->> -stream -xڽ[[s۸~У<bqdڇMiƝ4Ƀl1'J_sp!('Kg3H fDRf h06^ -طHh1i-g7g[bЛ_c,sA. Ezt~)ó24^sU7\(N՚? HͬhmM;bm5̍>xΖx~PœP+tx{Z" T qZXxج_i +:=+ks9EnBA謁uuʅ# o -b B*\,r}\*u@_|è5QN)1&0m_j]:r(ع}91El؜Zf HmJЦ琂 H)wrhP&e9QQ@d _(߫by8DWӦ*wt~}9 -m -"NqQ& 9Fk' iCذ0!G40u< 1P3!4LaaMCYid@ 3F\ B``ƒ'iaM5 925L BMA4LaayihC柒L D4 !lhGXӐ#|^bNsc4( A3u҄4;4-_/c{">!pCrµ=S1Mc`MG; WiL3ӄ:t8Id`dx 5†q59Çr0j;%>3Ԅk> L|~'>,AM3clXc=SRM!c_E;qnOsclXL w`8 `y}_2:_f$G0` ;)#1FB sLdaMI8ɧ$%26˷qMwʳ8!C4rȥw0v%_ U{s8𶬏 k=xt|(}i0bBBmU&:QU -ҹwt%&B1;Zp4ISCc&#;Eeu8O:E m;:#^n $$ >8/S` -B` -@ avpY4o BF駨iゖesiI#gkoegx}' )( ۻey vi۽vW`Bc<|'rټAãz9ܭU>!=,DT!4l.Ո.G>A=4Nx?D -cQ1$ Zg Zk[E1`WMf}/[C/bx[WwH4>Z9bmVkoJF±/`*fkl,~ 7BV*S;q'r%$'hquJU+p0Vg.T2KpHPF!3S+ߕsh>"nŻuеIh^U!O~}M2O.#aOH}mtJ6KP*Ρ5"d:,l?.S/ p=ٱ`ETvAtKܰ=i8,1 gP5 אaষy[@̀^/!ːjd!oS}VC S+Xec+& ;NYE(] )l~)E{ M&c2ʬna(d,A 9qm -B@\`uKV: D iM=BA2rXA~ uB6|ť i,{\Uo/@WYj4PkҘMipx Rq'x16(oG666Qτ,Ł2y ZZvBJ9 N‚m(uVHIqR> Ŗ㚽ZN*G vZ"%CmYRA}Q1liahQW ] y C{àIr:U |U]jX e+"iFDl!"Htun4 -]Z~ކ-~YY/vsS ~V%݌ & %f1 -c7%CFpߤk臧aJ-sro0/C{.#bA -SOOBk6l!Viƫ~(ӉPtʰ,Ff|"qHcP? ;E~|Oe%@ ;יa2VmUw@cVaxYŃC[_)kX2cKӖ'Q2!,Ol[\hj:̡¿<;endstream +/Length 2921 +/Filter /FlateDecode +>> +stream +xڽ[r}Wf~q%NvS(RJII!U_ A y]3}z{z 6͌$:53N@V/}Թ{3Krvqƹ%*Yu:˂;PίO72<{-CeY>W%pXPKT +ΈS/FV(*ߋwl }wm/87Zӝۋ)Z‹fJ[X$Y%P]L)>t"?eu *}OS.NHxS׀f`R.ZdR/W=Z儝cyvVʬ#(灂'SDΆͩeЀHmJXRa)NS Ԥ7" *J4ݓkW{_,]l/>_r_pB["pkԱI9dI/ >OC&sLp,4 !lhGXӐ#|V ̤)9F I&DXpaMCyi r f&!9BF4 !lhGhh!|^!9Fa);>Mt4!\ JgL4!†q5 9 oe!K؞aId!9ڞɘ&1#؀VNF&s ؇[iB k:r߉ +|d2`k2xs<a8šC9 \MA\jB5g&>Z& 16,ȱҞIא1" + ƓF\6SI&ذ1#8.vX??(#F`NH&sPC%!l(GXS#6N)IF<.\ؠ3@y6dF^u,iJP$p{։Xk9?>엨lpbb*a*ܩ #He{ߖDzTc" M%壾o@N^A = _EzJLA(LhU=. UvQ)*zZeZlș*o5 +O7w3m<>\BՄڔݲ<:,ZvW.\&08y,͛$1<:Y#NDB#а}f_Rү('P~-OK>KDPB8D׈0TjSN4d B"1:7lOKKB}wبDt`k_zE_-]&"MIb\]Y|DRWo u>QyГ"SĂ>Ƚ|ScyLC$imvS*/ Zd(6q Q FjH5`{tt\)qC]ob_8QWA6+IAs>2@MѥyۀĚ.X6`2V!JB* V@>?ƕp8-xK Ca9 f:N@ @@w Ы1:^vkI^ u5 &ntX0 NaC* Ή,8(o666_p? rQτ,2y ZڭvFcV!Y [ahmI('߅kv:Cww! /صLE0.?ԶGnb1 +Hbæ. #3}cޠ\`2lU~XHIKc2֠-XE U;D OGd;,)eQKU[@fC`\u_[gU!]/h`] yJ&)RڞlDw(͖~:-NK' A|9ߥHm(/Cee8ہ"M ,6: ;R5#V]KcZnJa$~)aY.P0/C5Y@ 'A'5M6v!iQJ بK;N'|U nm)6|5~[nF`U k#Nj)='VS3}eVmw@( +[t{ޘ@ ka%!#$Ʃ̘I'e9bLvw;s),O-lO$vendstream endobj 599 0 obj << /Type /Page @@ -4011,7 +4011,7 @@ endobj 602 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [148.6451 319.2661 163.1007 331.4039] +/Rect [123.9939 319.2661 138.4494 331.4039] /Subtype /Link /A << /S /GoTo /D (figure.3.4) >> >> endobj @@ -4548,26 +4548,24 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 618 0 obj << -/Length 3314 -/Filter /FlateDecode ->> -stream -xڵ[r}W+~-ۑSIqb$Rr9=ް"Ȯ3==}{{A1_L24wf9,})",Ϛ_\}U9ka"e2nԑ},*v=3O>%>EX;T0(wpM-ʗIel2YgMD%bJɌ3rC$W>Y8_8J*Dzgif}5C> kO -8Xaf4Y2#v-^]vijc;7LΤRA*}P-7|ÿO$sT,wN}̰ mzB,g2MOD˙4\M>Q2+1n(U)rŬANXx"KÐҬf9k rMa9f2 Sa$'N sEn )f[Rp_N#p7%|[-Lgaͺ,e}[Yl q\( PY\1T`NKwIxDe\/@e^=lΗbc@$XV]6P6xAD\< $y/9!0$,Mcp"X.(a  kXzg'LBҋ9 1^JuIxg\OKA5cqrN%hC#Lgϡq9 hKXєpz1ԃ_4hX.(q kh~ `"1(D ciɤ9<"4.`PC;b- fS X8kī0uΑ/Ey -Seëjq:jP?T˞ eA(6?QX`ΙA}d[p'ԕ`Զ e?IX=]'"crW>az8c7Dl_|A -Hg di1򏔹d-`RHjPe8DEDOUޯ5ؽ{ -kq~USqä=}݈G>d> Nrod|ᦋyx -E{>,2D +:gVAALNt^(χmCz"vq U=7e1\l ;j5_}Gq \^W)<Nn>VS7̊2 +' E)Ogn,9CEVH_U׽iG*{ڬl: $i|_U>h8m^}3: -u*a)_uM)":~B$ku K&Y8XW f?"}!F)$; -#NtX lى[gR"fH@2_;CodN;"Ώ-3T;9C`h5J23HZPPYy~_TCE*bUZ/#Gz(!7)rnsH4e3,dzhT\ 'ri -rf߬0|92ƒ.S ՟[[fF\6:>De<~SVCBeT#Y N]B(ڋ`Yf33iQ:Sy#n]'_cFܱ}W9;$i>xUDkߧ"rp7µ$sK^Lp,EʞvG@,y'djO:f]Nf̚ -ooJe -W-IhJTq%G`1BXp\SmԹP(#wȧs> ^0%y]Oy mv -ٻrCP}!b>]|=,LMwz1Thq5QTxh#X57 L`!U^:wl^EWI"Ve¤CZicUJ@e7';zƔy&wl)Ĥ;粈˾F>U7k1Eơݢ흪J䵾#j,7]WamK#A&دE4uaVQOB`2FͿ$4$TMW>ٕc̙=^CؚIiڒdaG^; KtP&Nyvf F-um4cVuZyM;}ESx{b - Y $8bʘZ2׻[az< (>*,:~kѢL|BXw "&_Iv|ovYZbBjfRCo( eJBӧ Ҡ4J|*iRfLj-meAjvkB a:߯̚}I;Btܿ:wl[+@!ա4 -JšjGL}[o.C%jy:_DT*ӄ +״!ZL iF#,HsDJ0vYUe,pg>45 ޔiCp?AW.cBEi6o !BU +Wʕ(Wq~>XiBRNGsUS | #j]OQP)t;i2U*A c5د{'zGpB.ZoꔫҀr#>tcBX<4&A[h"4HLccH7I"46`ȴ[bg g~S+~(-=ȼrʖ0|-qupmکA< '5#G|qOFNgendstream +/Length 3319 +/Filter /FlateDecode +>> +stream +xڵ[Ys~#Xю>\lَJXSKb l,_9TU`d3 +DRf 06\־o?Y-qS}swZ,qZÌsK Ufz_ n\BQ:}?=^s:ZvhauUzշ7 Sb/ZJMfVpF&NT +"g_l?^mpj[tV0YmXaeT0cQԮ&WתL:s3,BATe}}r~ 912OH5eYD|\hT75%\Q1}9&8mU/zחYAANp"OA/ueY<6SŒi{xRA!;R澜GsOKؚ;f_m!Լi{߬몉QV>j[5Lp%Y fb*\b Z%9eD';gIxʴUr _`y^3:/b/aciqD22r&dw~Dhi [~m35wlvJh5A]/9RaF],9)P +I3fYHؚ%p2r>y,#$y2VAvQK)Nr3-a2OGѨ5dxNY0”q9 ֘F.5EMFq 9e!{\P£i%lMK9!NH~Qe'Ir:G>>3ލa`/84|XV+/e\ ss3hK}H )҆^tCuzDy>luxhTqoTQO1I|SWȖ4֬2h^3EJhj ^+Ku 2EJ6oO ~Q@ \ z!~-ٮ{㎁UT^uI R~TeLw{Q g Ƿ'MuMrԭ-\nBT/Q4UL":2'ըhl'鞥EØ Nq8,%=کH"eAt3#|_3 o';2ǖ]_q T;@blUp|%i(4}~LοP/{Q] +)<3Uʩ19rGE[eS³H7 ~2AQõa2\~3K- £vSM+?n]-( X}9>:s~n.79(;*$?<" mԬC8F|4лv|b9 lGφL w­b4V VZާ"1\Dp7Z +Sȥs/#RC/EHc2AtJP]̈́iR荡f,  7.(n0j^ +IhJTpó@ GAZpTbm +sPu }ڇa%<<Ji/L Se_ + F:MRWO x*|o'vlC=_dE "S䛆8"@ Kǩh;# K_bpk?Х0x"9L73)up y+M<`îSxC?uB[[ +Ӄ_\T.˰\r 3Hlԁeݞ'wg괪C\$PC6RIN8.qHjMuPt< fr ?BCiі?lBvnezIwڱ޼UP99F{ARhԂPT%ܱnYR + 5N%5a?"(yH:%/Q\S"G/6i]EG뀧ݢm I6Ћqh<5V3'Hs(+0vY5u|3 iC?f]mcBi6?ȀˊTw߫8_0j_>o#"\eqz=d[4aG$(mJGCx><^BV{)7)`5hc+#h%ARy9բ;(kCu1C#fG:^}NƁHg6}$$E.8_o" 2=8Z6@߅/lajW~S+P_z<{`'A^-A/㧌x qH  +sjendstream endobj 617 0 obj << /Type /Page @@ -4594,14 +4592,14 @@ endobj 622 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [73.4132 308.4323 87.8688 319.0146] +/Rect [499.436 326.3595 513.8916 336.9418] /Subtype /Link /A << /S /GoTo /D (figure.3.5) >> >> endobj 623 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [304.2631 272.5778 318.7187 283.1601] +/Rect [284.7531 272.5778 299.2087 283.1601] /Subtype /Link /A << /S /GoTo /D (table.3.5) >> >> endobj @@ -4830,22 +4828,22 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 643 0 obj << -/Length 2222 +/Length 2210 /Filter /FlateDecode >> stream -xڭZ[o~۽_ -Ӣ9ωe2kJE*^(J(UDo.;YeH"Sqe`E<1Cw7EfZfO^ٿOUW;d+JgwMys:uv2 ޕU*=)Z󷡖RrΈ QkBofK`p_7Q…cR|O/f9shyaa!aq/9&Fd8koUSjf0bԷv³|nDB-[Gz7 -aw#匟rYbJ}r;ٞgØa1gtY5 &#,=,cihU=mل7uՅy:F)UyOJX)09xSnWw'"LKi[+ IA2LAI9h2*n_6 SkJ 4$Zg*̇2ǘ1se1r;(akBL"/AT(0ߖժcp() %fSє2bd`Mo3 -{*bW@扔!`@½ç?@x6XWeKW}-BY-/9eqa eKŧ&X|KU.z6'M) feNrO@׃0_3:AgփGVHzΕH=_φ3XK$[P0g=-he,-:u,1Hve_;Tڷ4؟B>nK%&9ۖ$Ԛ.CVvOgEF~lDj=- -ou苬rk*KqM>\4V|,@Č@#.I\Imo_i&P8n$L - k.@>c! ^9Puiۑ4o>Ve]]v%݉d<3n|r2K8_HUEQv}* zԅ-@kCGHԐ)~7+ø}\IU+E Y5.GmT `H:<=AN`\n66)y;H=vJ.(UnqY@A+t~.rқ;t婳`,K9 *pH5\X apvft!ѻ8N7*xΨL xN|ba5&R@̇p^Բ -)p~jۯÁk*㗂_RуP2j5eA=VH3dSןV/w랄b*Dbkm"4;BI1zBrH -‰VqA-C ˩}d!0o$M'I;Hu QfwM+qŮ>7_H |; - ]&/B" ;X#PV"M\bptg# K4z:L\>LAASqy R6*b]xoITm<5|LNC+Ao1C-`\tĩ*:$%64Z]VGG 0EE?{k\&~jRe$ cz`9YR߄A) u0'dendstream +xڭZYF~_G ;}g 0dd@8f(!)_U}PcfwuWgWf,3HTfcf+Xye6Oͷ?iYⴖSƹ%*czcS՗<]7/sNg.ڶY>U%yDqJmD*m35cDe,a,D8?H?/@ sg(±4S|f9shifa#fq8lg&Fd8k=o8USja0bҷv̳nQEB#[Gz3 +a7#3YbJr;فn Ca1gtY%5C !,,SnU=]ل7uՇ^<`*@PN + 4LjsDU 7;j鈢H?Ӗd +HfRP ;cc@fPs9m{@]w/l_TӘJ,1)fL\}wN JGeK"J=۲Z5UwNB7yĬx̛g>fz$3X̟ ɀ6ũ":qUxIB$;m!<{OflxUB!E(_ uŢ} +8KU.vP2'P]9k|'AV oA#\b+$afJn CMhݥ$[PPg3-he-u,1Hve_;Tw9i硱?|ږJDd[{O%T {[0\Ia$`ceمAzobW0(HXoLzuti+G༠*kWYw'o=b& #NCITpc> +&!8mW)(n H@.9u38Ъ/{r5M +ᷫS_9K:T=|7X Ijz,qN;&QcgO#  뢯6ú|nUx G0$#xi{YAX +a2gլ)n&8߷m}GR)(YbVp0Wjqj(e| yùESIdKԄeܶ rA~dx9p@061S GvSPt!aϓn@+}_IW+bXX71BXCFbhQ'pY8 $ˍ&a^0pprw>M\d.rԚ[4J!X6Ow|]&*pz &&4FXDF}#4g0o  +`.2;!f~4<>cFy'rnMKu +B勝QǺ1zU;Ák*_zRNR߉BlϗMcہD9bi?:ɦ?sV/rl NWrPcPu$່/z0LSaۿ:j~28B{.D pRwt[iuHcwlp#xk a!y(beb nSع6̪ZĽ +!i",6 UwsDSϻɘʻ((heOR3A&*CzD4=u D)O ӳEN [Leyj 4( q +*b ſ7f>@` aUd7(n auXxkUCZ@/Tݫlx՟82$tKFT('[ptendstream endobj 642 0 obj << /Type /Page @@ -4958,14 +4956,14 @@ endobj 645 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [323.8422 374.8651 338.2977 385.4474] +/Rect [306.4882 374.8651 320.9438 385.4474] /Subtype /Link /A << /S /GoTo /D (figure.3.7) >> >> endobj 646 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [403.1629 374.8651 417.6185 385.4474] +/Rect [388.0257 374.8651 402.4813 385.4474] /Subtype /Link /A << /S /GoTo /D (table.3.7) >> >> endobj @@ -4987,19 +4985,24 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 651 0 obj << -/Length 2314 +/Length 2308 /Filter /FlateDecode >> stream -xڭ]o8=6s)i-kvضrڒג/@pHYd';p8_F8YRb5v}n~xe.Ii&e)7!}C|eÿ⳸U_RA$XLj7,) ˷1.D Ry˫6ٶ-ڰJHXa}іa]߶#g^9QHt"Adęr ɟ7Yn>8F:Τr"b7n?N%h#f )lfk=ٟpj¹0 -cD4qxiR`M⥄kg5O`q)Tpـa.Hבa]_XcyI Q ˘һl>]p2|.rIQG"+ 8s=haczAHb\[uRJ)7V -Q)JyTل5HA8np%/Iu4-QpOiXZ0?V_֏X&<gk&hXRJ.Vx*4?{jYx%L6@&:Řh s@̶$;˒$P;){耖>PCu^R)V@vxwXĪхKSӑ_cQ dw4o/LwYEcP'~k_TWANfH΍c/u1 i h& WnXD,JAlEFޣ(+X -xM+5M!vph!vh`.p6 @P7_?)Y ^ZXЫEp0!r\ :ʯ@z[mM/䄒K>*䪲0NWD9-۫]yMAt+V3k Nt ~!t%~ Aa;<ͿJg!m gp\5`|r5iwel( CO)IGbE!EK7 9]@fqi޶k|G2),o ]뾊ĎA_8[ax}ai|UZQalf,:kaet ;QN qޭFs׏i|{0B3pU/>)2hz66xNDt,f|Lܵ@1©aD7x`^ B ު؎_ɄK!#4g49/Fh:b9cܺ P9>SIi;@}Ӕۖf[EV uZfN=/c̛F`&׽Qp[윽9Ko-Ih`{݄syBHGOYMP'@¡#^A{e!c7plcHᝅ:hc9چwNr`lԒPfX:c}uLLl"~[˶~~O[>?irMe*mB0;>'T$V~V7| -S& m]}\ -l[sߗI:1_ӵp'ז =sH&s?d숼M=qK V&p*~.kCMk1`6Z@v6DXT -faIќ:VF0ep8g@ oa8?30m}*<@X*t7V$Q 4ݴ΍gKy (׉|ݿz RBb -M_]9Pendstream +xڭ]oݿ`'S$=mK@ċDH;KQ"e;h gggkc-"4ܙ$s +!O6WU$^]\!ҲudzW|^-r\.[ 狏m7ߖ/ݮC]sYuU wnA̦|TliGb XidƱ,ˤi)l&:uP- +Ȼ߶e.QC ̢.=!ϲS\[3J9{K#*2#Q_'_OuRODSe:k߀!J/]PJe!>:/W臮pp[t0}ݗ }ŵ +Dud&p{Cn#ſd7;?ԥa\i1vpy]V6eGIVsZcȘ! +eWu؂A!{oǢ +W, +ObbTF1U faQ b6<\ߟjqwQ_ +|G +O22#Vvu"guN3R99x#Hnn5Y?q5H<)U>g9쯤L*'"fwKYʝ̌6r`a)3ŔT~ֳKSSν ә`>y K?߃o`K2m Go$\;y+ eK!$Ѕ3` s\D /zkeoOo|DYPe 7**Ju"* z*3- p.hɔUkJ)J!2*RUua qIm W2t[կ;thᆊ[|]OCEi}EeʃZ8xX5-P5AXDU. +Ԭi%VM*qIX@JI!ojy|ׁnZ/ʙ tYcoP1D^|Ͳ,M{})*5<:^H#5N\Vό.^_-߶i ,^V!gu}ߣN׎/L-~y5p^.b0nL@Zɂuc(uOm5z¶QVn( ڛV`!(] KGBК\lz30A|9d)43ziaA!y#06/vcC"n-:ʯ@f׬]N^%W +|"TvjgQL $ (dh^:, +1 ^^mdtOhg' iּC*Kt ffN]-wZvWƆ 2.tDq@Q%SQ>@Yq R`[s9)8ƨye =:}1RP3!&1^:vm`~ |!SEYjhmO ܾ**z84\DV""ϵ)`-n"DfI .^:v-ޖіsmC& ˔7@Ff*}KN RkA~¡FL")PcQw=Yn(=ƿү1N\+ZWtX;>V~)L!OMx?]-GH͕l0aޥRJ6 2Zۊ~ù\sKYofmPڦ¹bv^D +D5Vc;aݿ +hb.cTM )ԡ x4xǶ5Vj:ŨŇg(Q""ydXC!1ۜnTcu`MYP})pd]7}C\}-jU+mB&q(@NiHGbkש|F3u= ThGm.뙓 8qendstream endobj 650 0 obj << /Type /Page @@ -5171,28 +5174,28 @@ endobj 653 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [194.5348 225.2515 208.9904 235.8337] +/Rect [172.013 225.3591 186.4686 235.8337] /Subtype /Link /A << /S /GoTo /D (figure.3.8) >> >> endobj 654 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [196.0849 207.3242 210.5405 217.9065] +/Rect [172.6361 207.3242 187.0916 217.9065] /Subtype /Link /A << /S /GoTo /D (table.3.8) >> >> endobj 655 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [487.5883 207.3242 502.0439 217.9065] +/Rect [465.1031 207.3242 479.5587 217.9065] /Subtype /Link /A << /S /GoTo /D (table.3.9) >> >> endobj 656 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [73.4132 189.397 92.854 199.9793] +/Rect [499.9291 207.3242 519.3699 217.9065] /Subtype /Link /A << /S /GoTo /D (table.3.10) >> >> endobj @@ -5215,25 +5218,18 @@ endobj /Filter /FlateDecode >> stream -xڽZo_GXa?{i/nrȺrj4}g8,KCoILR` ns'w]7WIlDʌܨæ7˯ӿeֳLb|z6ۇzhn_-iޕc槫O7 Fr%|Z'L$̥`I]e%9S63﫯d ?]|p&͕LDԖL1nyIDc1#?\YTeTDi/(@<{ ufOci9nJf]d)(S6b*7nqe7U ~r("tD~5>+_k|r~kW#}n6ѩ>KWqДK>xklϣH!5D+^=jix= 9/ak# G-OϤL#:zip#RQy= 9/ak/gIaH_5vuͫ{[znr`|ڐWªtҭLj*#|Z̲DB؀4 -QbqP44c wR -e42T7fgJ?fiP`uMD4(gqi+Sߐ{Gʐ{|1!ߐ}yM+oJ]И~MVn!Cb}%&,dPs}$|WEA0nuQ"uh)t5P%%R()Z^u$n,ܯoIJ74q -W<tYГUgU+6ažzCVJ̚&H-G$)@7*W$L㧀pyKBW- f\Sm2)S#㶝+TJ}tQ"l -6RAQKtu">n$o-m<>PnA?zWkvV4s^{)Xvu5o.AKPcqʻ~xۀ!asNW)TYqNC5•HCu-%(=P<:GD(RYPPiτP#a_ n[\ִD*ިo#H,3 p2ن|B iZ?h׍Ƹo8 -(&;F!+ѡyXPT V߫@u -!švV*0g;"jpS|&D -(؍XK}ibzɴ:M!*\#m<;!6aOPvp2$?Lt&/&"eq\HD]3߲]?8C $Ѻ;Y -hJm8@64 -_ 2h>xvi +]O)]&(92S{8]Co8r]|d ,_CB8]|綘ChFӕR Уu` Bzb61*G5_xPܓ~ޯ.>S Z NGT`-p|gXǖys7 ZU}kF1t{懋{+\V!d)% &DE=&l12!]Т\/Q=@Ŭ?oJ38WkEC "@y&{Bċ\Ue̓(ㄚt,=ؤ  hL8Lz j籭 -6 p@{y򆨔{eu$ hR(NhANe -4'qzT9-`v~[يN$lG-#:}>7iH - -f*;;ZjZ(c!oTFͭ=Ӱ_`%$=~" B6Jۉ%Fef]tp7DH%옅?E w >q~]P^䐊L]>f$x'y{32ǵ_CW U[<| h& -UEJx\F<[ - Xa9HL+$pc^ -tACFHn] -㉤]/sxN{*j!UF!^Yb@t񒊏B(5/3D%ѵv LHWY]ew4P󽷺ʺ -?O Cta_/oYNPT,R؃.TNFϙ endstream +xڽko{~?_}u"wm3.Zͯ eɏ4p8^>I?>1ꉱOW餄<&9cLNrfLMn'B̤Z,NVth<˸V*cJgfβ,7}eFMIkod?]|[+&+qfXTd1ĢLkp?m]UU3dt&g\</iXyrM%OwҲTW5E Xj}}Dr,WS }ج1>*WuV+<5g2N"K!d_=h$i{{簳'-NτLALnjVߐqECn4.@hu?,ᚶtMK7BofC'LjY]0{k܉G4C? +܏8FSw. +\IOFTgu5t¤T>VAʌN +JJ%WfU" avn`ʰ̠d UxQЦf\Tuc |˸[?'vDit+|qedE6MEgMc]IKq}pĒ=,oI HÐ(y!SnZr[#Ù= ҧ:viB?Q&m]JHexH8}So%م;~?0u`VD HXy6s\Ѷժjd>@U@N1 ip%!?t`!^q>sHa\5v5|xzj&yNA+Jnλb+vh\쭝+n=^(] թ*)EH33`hnRqyq_ ɔn[X-"7 O-F<tr݄bh[gF%{^!n=ݪ&XvQkϟ[< ghUy^> @hɔTa(B%{A3UqqPOe) p^ /pMU(4V T@r1 ;ƽUEO$.՟㙤h1'RU_"օkڠuji6˧)67)Z!`! }i)k^ {ikTa%XcC.`zvX* +}=/txZE'tǪfYl}:o([ [T%ft|ޭ ([;P,9-P7j?VMV*xi9 !>r#GaI ,yD̀gT8̠3{BB/S)K=Kui< +)Ӫ6 ͫh˴'{ b^:kǻ(2ܽ;ZeUyHp tч~9fL "!3HBE9s@endstream endobj 659 0 obj << /Type /Page @@ -5477,23 +5473,22 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 681 0 obj << -/Length 1901 +/Length 1903 /Filter /FlateDecode >> stream -xڭYK6Q ߤrKM-ɢ${͵r" 3$d[ Z)<>fZP#JL&`X򸿡~~Y.[r~p%2yxJ8P%zo/yŒ -X*J>/8MEڱ܄k_r~3DqJRI[Qk%%" -!_o>|o@ 2oxF kg7vid&f8출 -DX#N2k+hW23 h'_s@lK7[fJ?.%匟;ɩsJI&R -Rt -4 u0 W:/6rۆ,8%C-ScZԜ1ihݪ&sEZRǢWuNޤ"D)Z9Vd\f$9( ήB -@]044!Dw=!=t?qU\'fT C^ A$oL3,# r ^%(^QD+lV6"wJk A=h-JZ -oBX -Ӎ@!9 RW/*Xre =C2`D).DUTOE8%v]^]knÖu^#>o?b@rZk,X"6{o/M;V'.sp 2j[ -E6A;vZX-<k0$=u{;w7>W<\:(ӸWw*7u kkD׷ͱ yw<**įqăx`a8CQO> sދ&|k|IK`жaߒF`O0RrMT2XTRmvnU=K?&ʼnJ|d89i:±֮cZp홱j*;'VpJlt9iV?{gΆ軘X!VBޢNyC `w>n&%qe";r 'Vdؐ -"hNX'm-X10qLCSY(*ԾI\]IaUC|MIa𫫪n-I>'6!8}@n@b2oH6Q[Pkf&CЁrh@O Yz*${>{c|$!Š`8%=0Z^ -]ʰ~F)AL( _ mhv#y`-#1p= !rC,T旰 k -5ivGu( :9Du<㪫/[H0pXv^+k=4Q5,a: *R KPz=DM|x𬘼ͨdTm<9xp/ j9y3)-h02凙b)#Ռ5U|8^oԩ^rak}l0A] MOߎ(^9P{ ƟWeaGI :Թ\%Lߴx5^rJ 1hqpUqc`j *~zet|o./Q_9< iqΜAu$ӃBsE_qg 30L a­͆u]Me8GP!GlTcF=JCs|m۱  VB๕<-7^܆\;v*<,m](s1BNQ~24eg>G7o#/ uLj}D| 8ъN$ſ\/= endstream +xڭYK6Q ߤrKhtKӃjd9_>$ٲ-<>C-(cDBe0`,{l s,b >޽N̒Bk=>g[bOOeŒ X*J>.8Uܱބ[WJ?wDqJ˼RɖX¨ْQXfxV<. +$ow +id&8엜*DX#2N +ko*1{cAr~s;l-#+o.-T\JK0?ۓ]甒B2XGh%k0L76zRQ<đec+SgjΙ6tݪ .wUZRǪ+VmNޤs/E!R^r`), IQKQ$v_] +JC:cii7!p=ѡ<qMBh66'VT C^ A$DҫL3,# r Q'^QERK6[;#{Jk Ah %-7BU\,qWk,:F !1ziW>!c 5MU: +?EsaSŠ lxx֕;3ev}X.[$MgB(CVpVu *]y +ĩ޺Cr^qmvW[j0y>v~ щmDd4l1\sQ0 Pq5( $j(jD@#ͱ <-somD7 >.}j[^ +}?오*_[wtA$Pl\{|>-$~ + AoO 9/^LMpdx-9t5gw-qnZ],Ӛ9&cbtj5{BٝhsxfΗȁxa7 5gwsNlcy𙈙%1,}3s/G_kܮqx@^ 歷']5m/nM;ڄr9>tYL Є)+KUւY;4 mI@ʡ=90/w>>BX9g,R V+xā7'FkK? +l_Pk$3a؞ "^ n5 ҫbpp떑kԞ߹*hhַF4Y:7nj:9Dmk/[<`ıy7zR3jiXJu)Uh{pRAZgb1ɨ Hyjs$a) _&{r fp+Ž*t1 f&~T3jj4p^ިSX8*AٽtAAV\ ߎ(^9P{ Wua_FM :Wԥ]%LoߤV<|:_9 +b.F p p熯$.jg$?Nnӫ$N={vqu{>NTա}աgQs"IK {CŹeoȞ/7´f36J7n 61|9N>aͥyF +jĶN?64RWhViza7Myno=7|۱J<7Yf#>=0{gD7~j!ѼDoqj:bM џJ?n4kF^pkR/#|KpV\*E%k qendstream endobj 680 0 obj << /Type /Page @@ -5602,28 +5597,28 @@ endobj 683 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [351.9387 423.2541 371.3795 433.8364] +/Rect [343.4641 423.2541 362.9049 433.8364] /Subtype /Link /A << /S /GoTo /D (figure.3.10) >> >> endobj 684 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [407.5492 423.2541 426.99 433.8364] +/Rect [401.4926 423.2541 420.9335 433.8364] /Subtype /Link /A << /S /GoTo /D (table.3.12) >> >> endobj 685 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.4089 423.2541 451.8497 433.8364] +/Rect [427.562 423.2541 447.0028 433.8364] /Subtype /Link /A << /S /GoTo /D (table.3.13) >> >> endobj 686 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [472.1584 423.2541 491.5992 433.8364] +/Rect [469.7349 423.2541 489.1758 433.8364] /Subtype /Link /A << /S /GoTo /D (table.3.14) >> >> endobj @@ -5727,21 +5722,23 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 704 0 obj << -/Length 2235 +/Length 2245 /Filter /FlateDecode >> stream -xڽZ[6~_} T "O&-3+2< _爤.3AE"?\8a XI"UIf KnW4/iNcW7W/"1j- dTG7??:/S TQtwKN>wkr/r՛PKT:KRΈ&Q2kuǟ4ـ+?0kyr3_[4ID+ƕ)( M-1?Uy'! -v)F@tVR3. gTʈH#b|k1eD߫Eq1v}to_tn>[/Vk .nW8D/8r)R:%&=Kڄ&Hb\ _˥it-btc8WL8C(͜" ѐ܍=!Jƙ ~t@c6t;:<;z~u^žy:ai <ƅ5) &bʳS&DgY6+m"Saf6|-qѵ̉}Y3(D3RtK353璖!W<#R az{~U6: ֦3$+W6mlM&[ AFPkT%y|@rZf gZ ਗ} -IIKz -KO[ևOЖ~@5iMl窥z'CR1'e3{+2F[V IJqXZfqb -0X vuj)~_ -H%nZ>Q 2 HmUQ3B|U/{zu -We[ne{G/j ۼъ&j l3DC#Da<ʕ8 l(_NPlqr3SS`/@$nҳ=ljHV`+\1Ms--UyQnm%c -4bdvH."PH@stn6׭Y*a9[C"|?U -clh53QE[J8z -^*۞L$^-N]56LfP@Y@v*,x{6y}IT{!NfM|p*u5g%[;SQʌ+^kOҺYl-g[ZN]`S`zښ+^T0RNqh*cRNx"6 b.y ]i64ns~X<]oF9& mNw tLH9t~5Yjf&aSLqo, Fj(bi -i Dڥyvj(dOp;"wwuCن+%NoT9a [H#n1wIDހeᕂl>eqT+D]?:D4R{{.iL [8jbPioq}ILˡ 颸+S 9I޸{k*ϵ{@a?u^)^f&C,SXں?1b"ظ}@[\U75gwR?kē2I#y-L$SG 8i,H-3i8  v:tj)~_ +H%=qiRs-@ 4tb+ + Ho3B|b(v:[ +o˺QՒ-/lw8}:L4gB O#$a"*8!G # by< +pU7G[\ZKH՞0! Ak +7e9~(P[jsWj붫jm-/WhnJu$PGri14GGڭ}i;M,|m발!DM}h% 9[- a|Qf. &N^Bmih$smO!2/&gRcD: +dڥofE \Jo)gYɖC.i8>pT2SJ|[IZ;<]el_kYL+6 +Fʹ +mT%cXcLʙRSwKrCpM7PBozN͹;7qηp , .!aa**, kob1, {X.ۣۻFpA ᰺})IO O)њ?$#@yj.Tֹ S-[UÂP?Ů2>Rw_ӐKtq;#80_3TX#BKv! )Z +I{ 3)G0% ɈQ$B 潐r|pՇp"`J8~خ>^KD,O:A!'X7c]sh0y?;+kf}Նe4$8춱ܩ:5/J~ͺyL$ kjRP1>endstream endobj 703 0 obj << /Type /Page @@ -5880,7 +5877,7 @@ endobj 706 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [307.4819 189.397 326.9228 199.9793] +/Rect [305.3531 189.397 324.7939 199.9793] /Subtype /Link /A << /S /GoTo /D (figure.3.11) >> >> endobj @@ -5905,15 +5902,17 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 710 0 obj << -/Length 1801 +/Length 1807 /Filter /FlateDecode >> stream -xn6_GY/nYl V`MqrjMasHJlIaCo(Xf$ԩ8c|@)jYȣ6˳,qZ*C= G\HQ,vi|<[DqJqR7ػb@`)Ń܂)A#ҹ wFCA2qB5md"e-shC̀tOKs.aI6!) G}41D ah| -s45$B8p]H*!=ߣ[K`XKEn[A:H I&TK+_-b9xZDhU*O -Lx-|y.>?wp$i^}2'\y\r◣չz !h~\D"U_#s$Qu(|\.g2dvوXʀu)ۥ*|R`.e|yͿ8$hK@P34ߟbjgXWNX\haZ73DG.8j)[-}T)aRu(P@'"na!)~JZ1h/91-1{S{[Z)bX¨وLʇ4Aڽ9Q…clp:!Q$԰E -\"`,USj]hÁ4ւIU}\6"V:GܺX5áPxߔ3mp14R8ffVcahAC_ɺփvqd+I$۴P߇mXnE[ -β>1zđ8zEnL)`_ hL˟Cskn"vlRtz<0Flˉ/8vv$+ -H$!5E0:Uf5[>͝QҮvi0vpqؑb/ C|w!_7mh` _#)©j)Vv]i3`|Ήuh\O`tW[c]EI<3k^WVchQvSSl(fz2c3{7f58"^3c#l!ϢڨN1j%>N6B ǑؽڌsJC:ȁ1"(b^$uE7a'{a|mCFBw'-LN /cJ.0t+k!Ḑ>໋I$uOK,7]u|P_'#_ bk֬ne2zi=^}omv< %Fx>kWhh_&3OK.κQZϪqP4xT7bPG&U0t5IsָŪpz74}?>CVFNA'p^ͩkhY`ZSv^`/ҧYװGuһ`Y* OV~=Y[LŜ2TJ?KpW7 26x1acy{psB(r6jwendstream +xXYoF~#GyhZ7Hz hZ˴%ʑ8MI%;HQzsR$~"qiL₂'S{vώ`UYV'g9nԆmcvq6KSFcyz(7#lio]Lh<a\0̲|T3$eg[- 㛴z+gB^U @֯-9ӶUKaF{#‘DtCl6V91sfӸS'1Lp1g*@God;BHΤ +Y2( y~ftz3"< rCEW´̙jf4[_O_d_z(F),mx,}yԡuK!Pڐ20h + f-fKPahACɺ6@IHd;$࠿vdjݣ6/rS.iUCYtbHu4lb!A[ %5nಁt4)ss\[.2>fepZr :UPw@kNK:jK 羹^#*`ld9Mo4G38QA,}_;i 2;t99W ESU~iy .xkjҊ:N436jD;Mپ#+؆.X7>bcG%3ưbb4;TEz˘ 0ftjj{d*>j{C]R7H Q5{rF#+6HT?]ڜi~^bqX1|CNzj +PSM"Zjf$^b pӗ3#OC7< Ě7dg^1>/]-Q7YQ;o /L.6 +"݊|\glFF l6kzIMohV Y)u`d2~Ў9GDK.v4|SY=>'N@o)/wtcuIRX Mlk;7Lzܵ_JQ6go%:_S7^~ɓޘ 7}"}/ɬ|1Fa-{h\endstream endobj 709 0 obj << /Type /Page @@ -6043,7 +6042,7 @@ endobj 712 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [416.7731 403.999 436.2139 414.5812] +/Rect [411.3247 403.999 430.7655 414.5812] /Subtype /Link /A << /S /GoTo /D (figure.3.12) >> >> endobj @@ -6059,25 +6058,23 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 719 0 obj << -/Length 2819 -/Filter /FlateDecode ->> -stream -xڭr6}BR}9jvwصJ&KyHjݠxiTFh4-WUl p)Ww`uOdڭ'ݾcWHȬnWJ%"B}fzu1l٪8YkنAn~ب`]S'p @$Q^'uO=[%{UX9og;u@8fO6okwmgGw`62Xzhlir\ 析V-ye 1; ݱ#ܷ -׶iDdcVt: -PEjB{6Z?Z*RE& [|GFt~l ö-QnQx:x^ţ6?~6?XP.Dk>H6Ȉ8I##1"MBYiT^IL([Vh -/.|x&;Bڬ,rVf+F~Cyp;{:l#k㛧K^ ,j% -/qfkMCpW=̆@A ^vUG;mc 3*l]+R&ظX0"U]11+5i>aPvy?eOL4D@"%FOO0կԜ7TS)T H1 = ι9H1 csPɕ "~gbvL~Ōc Jq2hA/Dtp?:1"À/:-em-oN -P41c'dX[r: Ou X ,GE5_TݽwHfSvA'{i1O{!7XHI~K2xLJ=()Lb5SӈFJpWpMyHE{F+@בFDtN -3{5Hx+,s KwkHpBȄX,696mAnbuY {[BE7h.H:7NQpE(6!Б,5Y} -p8zSCsy2в7VvҐ/-U,kjܝZr0pk/;BZ=GR*Âfwtn) ӧ`deao36YkѤAe=4?WDҢ!lYM$$6ay0t`!?BI•c'c#Ϲ462'Ȱ9:QW3^ld1'"CΝ.JFJőcLȀy< ؆_:;[̟#Pؑk:+r`f;\uxSFgBDRDQN6mgܸ[F]@Q E/S:Ma,s\H>J /I,Tq]h5O |83!Q{%׸0>jg`=t|pRD~홒Z˝ϷEfR `T=(I3/O]/#_<Rz_NgU2OW20%M04O>?y;R Oug)h7 -;m"-7}p~J/WAJ[јJr~{|/i)0!K ;:/C߾J[`9^{Lz/q3s -%  O-r5DG|wy1ހd5~Uw}jC0CJ퀠iL O> +stream +xڭZYs6~GN!dQެHJ0"9VV~XJՖ6F1M +ho7s+К`Y*1ԠT9r+)xfgnazGAd<a84<(;ZΦ83l19*z@i8)EpmZ8N'Q,M"hYQ>^ \L~Y YԎea \U~eE+sY4KvRpa @YƪqfW=N MzN08e_!hw!R7 C%v7g Ffth4Sr\ QP2z#2?eO$d@l4_6aㇿ԰f7^LSK٨d\̵!g<|,=\/컔fC"Ǭ5_ -3)d"m\J88vWNXSDQsrMuFK; 0{4*P#DM}ǪR`Qf]x:64 Ω;\09ʱelUv7ئC=&?.X&[8Bz~E]BmQI %dP{7Q +7&N8vYB^Baæ);J3c.Bec (@urU[1:)?^;i.~\gKSOL'ʾK qz+ 7aխt(&S(e?mђW)}չN" N LLudن),c al$|MNK͊@oF&jyS*y9覒_lYɣW\n^SD&,H h܉ 0IixkGlSP]-0v[! +l +JįykvE+ ٮAX4C2x4i1K.@JL&>) +#)")-hM~wDdŽCdw@n&ɠ2x^Ѐ˷6n*"-=Ax"tS{AGԊ ީ{C+ձ:zx5~Eskφ*+LZ;{Mt8J|={y$/hbd}>5m^dQy o_no;WMl[Яu0}R:>ds_`>|o=? 5¦'BH2 eny6Gx첆Utlဈ$`Pq]+ju#>¬=كq >z 82༪ h4O`əד$aubļStsق]_Fendstream endobj 718 0 obj << /Type /Page @@ -6118,7 +6115,7 @@ endobj 725 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [166.5421 225.2515 185.9829 237.3893] +/Rect [143.5015 225.2515 162.9423 237.3893] /Subtype /Link /A << /S /GoTo /D (figure.3.13) >> >> endobj @@ -6637,20 +6634,21 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 778 0 obj << -/Length 1749 +/Length 1751 /Filter /FlateDecode >> stream -xڽr6_G!8yKjљ$u(KBRu.xYS'3rDE^% - eÆ>)qiG&Ƨl͢4|@̷w[Dk%|rgV2eIg e$UH)g]I&T N}q6(2Cy<'peB*fG.lG55T?׸V ĕJ0wd -5%˜] 8fx#ޥmoQy#dJvT Tdr叝oMnI%տIIKeJ RGJQ(K[~7f_⏶ :͛lW% \+a2 Nkceq}(ͶF,ըdXCtJųr0 ݩ D(a6A_S1*<rQ ?PòX^ $4~It.%2|U[LY%N"CN+.mC$7F -Ddxh5BfvKK, 1g WQ0~.{˷;OPHH0Y$GQT -JJ&O]G^xBWmA=m9{FfHeLUDi2慊\58ԑ|5MX<;m,]4]1f1B2 g VJ8|f[YʔLAb%;ۤ;y(LJv-rW+7 -Txh%T۩婉xBiDvn͠}ք,Mrt_&t(u{|5o+~q0u -,Sp'`Z-βi&)'$vH-,j;!Ez;I-NgRO5 %"Ȏ -ŊICȖh*r((ʜ)n۹H ->n]n}Z[ؠma<_DcבK/mHs}@] i?~ZeW^V1~\$n-[AcC߃'|BMi #߆:Ϻ(+sٺ]:R')J>,-9` R~E:;\ղOI@@KZlى[;H&t3[a grߙToi.}SN鋝K%nugѶ"<w᮫2ڳWu+Y3щ =tGStƂN_nns1$K =PVfkVgvSpݿOtDd?+ sB|; ޏޏޏxPޏޏФ{vk@]0'G6{s dq='<#?vFendstream +xڽr6D$HnGgؓ(KBRu.S'3r}? p'$b Bw ˖x٧~sseZG@FXӥ7şP6fX$ #XƜow۔Z,EzͻNl,9K?cG=UR=%;%I"Laj0C_/+/@U^:L'!ɱ BB}4l/&>Kb sS= 40skң +㯨6-m^]; +"ar٬˺1)H7_3rLBʈ }RxLOox΢4|@̷ۖ;J5 NݲL`ٽD` Ūur$蔳.$s G+2_ !(JZWy(dL9RH>ޔeH^{dCZ:!*_C5n=\pK o M\T cq*O_# Q2.5ko!0oķ6߻->J$kG`A5LƁQ/.W omDXBQۙZ,Sj?REYx6Fb^Sl4}ъ?ڂ6oڲ]seKV(d89?0cEK4T%V@kc +4tENp|QLŨ2 +h~FDv.zB by7@% 3χ[v|&+߃bv*1v + \d'G Q]/pE*ɲnǫBfvKK, 1)DH;> ;fxvr" +)l=xneFQ,CGב^Ur[Pv[bƞ,(R}SUNK?uWZ35I- Z&CY=>kc(P i=Pmv&G WƗ ^ zݷmMsxص,Ow+$պnoy>iRd.t S`AZ:<ϲ4W"( + :JFJzN67 +SIƂILfrU QX1x`FEDS=Nh(s~y +|oVx""j[+Juv +Q!jena~MazG^:o|4n9El`F*;('"q[ jڛ'-J{1N.k*tk)BLߕ@>MR "ˎj'sɤ@@GcIڢun" +-RMXf8B/A۝W0ruJ_l|~.qk:g3Dtr|6w{t0,3ZYYM5NݿOtDd?+ sBφ|;ޏޏޏxPޏޏФ{ 8uU5րic.'GZO=}[2K]_,HE endstream endobj 777 0 obj << /Type /Page @@ -6721,7 +6719,7 @@ endobj 780 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [241.5934 277.4352 256.0489 288.0174] +/Rect [219.8054 277.4352 234.2609 288.0174] /Subtype /Link /A << /S /GoTo /D (figure.4.3) >> >> endobj @@ -6789,23 +6787,17 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 796 0 obj << -/Length 2340 +/Length 2338 /Filter /FlateDecode >> stream -xڭY[w~УԳBq#A$ONivmniJ))l_ @4%o/&f0of 1'fF3m23V -XC_e$^e̦=̤VL&J4?Kifer;W;,"bm"9T~K!exb1FzߺBy/ 3M? ž*\q4SmWM{@ rvmMC7ێgSFJ -;s4Fw̤" -:+ΔPY_Qy%d&I",Ӱڑ!{.̘5,B_^rGpRq|^kRӾШ<-Y nwiPe`oh5CҠYo\4re/ֈ38 M!t| "sv֖\3![.2jK\Os=c>ױ-υ_,\ 5)FƒT^Umߓv4>RxQvaJ [уeo) 29bl|<+רn 5-~)F !}E( NnJ,dnY=S?ޫ4kWv(zFoƏw``rWS@uUhG)'p/aiE+{ը %(p> ᫦DܱLHJkPK&8p"-OrHKxnJא5_k}};eɠkuݧ)\Ҵg*LkXէUkXukU/NcՀkIcK>Bz y_C>shpƑNlI pO3 ٞ ::ҢjdvPzQ}3rqph/( -Ň!Ȥ [&ש"۾w>#⑊6ۼxA??d'Q3m,L3Noij dz"$Qo*djP9S"8[I&22y9T"#{-/r"pkݺuD` C -kR6e$@|er΀D0afTٯ>ǖц!a]!pF5}7O@WU-l?-6\dz:Ke.ؾ#{vu}ۛtA=|6b"Aϙc &:|O?, 6}! 24p"=AL3jJn^=_D㨶C }O:J0t9_atPZs:>*|3I.ϺCPy7ļ)kJo??obia`w-Ӳ1 -}U~[V*J$x>9'\@ʯ1vژG>.zFFEeTx8θ2úGez9)_jltplيHOB7o1c{;RTX XEP''CbTDOX=mUdwTD V)g(@E78%HH zFq&K;(ԬT -\YbT.* *²Nx:|auehzu#l/~H38lli]}uFm.9 -lI Aa[gif~oV=UJ2=k,1qbxՕ -״x9bلAx8=vk]x4 WB=J"%2O?+Δ͒p&ݕP'XLuu{D0# ٳhg1< -2@F{"TfLӋJA,WW#/c&Eoa]EAʷ|G C;婠H$W_IYhDNNScfBYYT:\xxp_]1S9]4I+Y`P/>\1%'endstream +xڭY[w~УԳBqɓu9@I5E9$m;(M373qD3M4K!f@Ssb5Kc=ΤVLFJ4=-Ksˈ{[K͏U}6q,LƎ2 ]<2,Id|ks ֶ 3&Hq(s[m,Tz.UH=~o)~/x۱T"%\xwݝno~]h;q"rkUXgJ KU4(jXȐɘIX*5:ЏʼnCOByYINObC?ߵfۦr kbBBj)F=o MKfmjidWgp.Cd=Xfmq9E-fBF+Q]e {Ֆl9zƖ}c[ j749S*}% 9,۾'ia}7`*B<<v6уeo)fYrRX?DQ; ++Z\F !} Nn + ,dnY=Si2|Pq\U'Q 8/gތ``R+d)]# ؋8Mdb+Ԅ+S T8M`UQ|"I{liXmPZDL"KPK&8Op<=-OrHKx~Jא"4e?k}C;eɠktݧmҴg*LkXէUkXukU/NcՀkT*|(q@4C}XC>shpƑlg=.ux^u ցs,Q/VEK!mvi>:Ңj`wgPzQ}3a1h( +Ň!Ȥ &ױ"۾.#Ħ⑊6K绬Th9g ayT;u +LǶ[\<1ٯrITk1NR5)$#Px} ݑvtDBv "0n]~a ?_*L'#߸p3Ff3 %L.h#jOe{Ho}WѹdEM1eek s MڒL^zir} ^E_pkI<>'b$Aϩcs9CxgH3GD~a ΢,r錄6!T_NU'iFMɰͪ˗cfo RǿJsMgi 5sk"+P|8ة򬭽P.!MQ9wnWz| ŮEEh^,ؐQ08ݢ7RWbGE' t)=|cR~/ď=)t32B- .ا:ģtʍο\ar݈VDBDD|:4|UKphvhpZUp %zy4tN(P;Att?P+yZ_A]H%.M0le}vTtڻ{-A"@43$-XܡFQfR\tuTAYUGuW'C.}}Gͽ!x|+%P޹-!T( UrKE@ɕ8?.Sq1XCu и*(ޅ{y&_ɰoAql?CA(c!4+O3 A |C)>B+4^Iͱ!zٗX]9O RHN"&x_f6hðGZ749-qāv cV{@w.rf>]r! R9öɑȽ!lyfwoV5 N*a%3(K {DX!ue6-P?P,ៀ!zݞ\fwmDJ </W?g~8S&fa0FWZCYaeB3?xPFegϢ}a(B|@P)Xz 2-N(i +63WS)`\᝭321ȯ" Q<:B;`"V+\On%f8=d&a;%ZGX Gxqe٥):ӥ4Vx +?s/ endstream endobj 795 0 obj << /Type /Page @@ -6964,17 +6956,12 @@ endobj /Filter /FlateDecode >> stream -xڥXo6_GX~-ػtlރ3Yv-毿Ȓk 8|f(pIe'k+o!~ѨIJ<>'R+&s%ޅ>\5L6l圧}㶮kwXd"OzǟOjsə5F^fֆI&3CeӥnJXqϔpf -+5\a2ꗫwɜ ]Z2N'Jɓc:6б7˅nVޜmGYZ& uLM L߳d, :R<^G3F AƶdRr5kh.XY;nsh?8XdӅd<]ݺEr޷]_o .dڙFp/~r]Wq!IK]A4=rALY=m:M"uxݹI' [8 gtiS?a^bfN& Q₣e -DZtW>px=w3 -di;,{|Uƴk?a KnY=V=_Hs+< -j&٫򒗉5*)#SN;iNe$#Pc#pv" 2Q^"sbqeF빼g$awRkWR,g4@8|om@Ѻ]{;y? -X[wtau[wmB?7d Badt)_QC}vO&?Oa]q"0] $~G1& -}p MOyof@tu qRZ -H"Ⴚ7+39Lԗ9N&#LS9u**|o Wb -oK ))t/s(14WHZ^~Ԃgڧ6 J&s0S3z\*rAvqv\ bt'IV{=>U KWWqA|w$VMG>,1ُ}vAG;19g%%sV?apUۆ&@ʞcISj+nkt5m$}i1O^ydݼ珴"ǛjcDO]=S$zSK]Ae2 V?[UЮk 7qylds!( s[C - >Yv0i &ds踅I.#5A9#nFIyT((?ϚW(- G[Ғ2s&pU0h+ Ll?Z=-5.GK"t{fɈk\m +,q&%]t}9,K|v|ć{_ORv,,:)Ev5">~[E.k& ܈ۗzkFg]Yl5, rf\Am#գtL-m+/ mp@oiXA#wh`k>ӈ t}GR#hzv-YTHߎlL1AtKY CmE1WdBVPla#J[RCdlSn5]Ua"Y `(|T_9ciΕ3wO->M8}HOٹY)Ѵ05߆!}e ]Z0!f(R 4U񋤅p[L.I$~w&bendstream +xڥXo6_GY~Sbmz{rjd9 f8-Kʮ3o3iyafPb5q+""1/Gf9+ճԊIIkz.4/ [tdf=OWwGFr[+/Qk˴nY>wӅn +X4sƙu֨_Vꗫ/'ɜ ] })[G6Ke7F'Jɣcewl;coseUyѽmGYL:9gPr[ayV%|f C :n*S0)4vltY.8x]0;$\,i'O{W5~PFeMە;~si]3qAǙZ ~orL$-drE RwG2gꨞ6*sóUs߽AAӦz8Do~hy[NL:U₫-$pt#{ s'=s;!@6 ^Wem>* WGbXjzM0\J8UWb3m4N)f_sҙE8ADz ɑJXCL\S;jxED(蜔b`#əz*/ -_A Dp>4*2BEi'(Z7`'^ϪczD|ܻjTnGQu 4q0Iۯ]HWTPDw&iS56oqX +GCZG!e>xl۪{_6I Qp pAa3 FhfGFaa$I;FtmـcbpPI-+}GVŬEUh^]UQԳȪ+<>-ϑli1:4ת|?:fSZ=AqcŹNJ\M/vQK׵$g˺Mx. +YC'' m3)"ʦ!Btp(3 #s!dᜲ ~k"S.wCW*mM/T6 )c@ y.JڎKpYZ+`]v!~ØSM([MQH +uBx:$ϋQ`Aa/`tCkIͲ[˧ 0&C4+_G*Q;Ofla(TVV* +Ü2O e.)RפAIR\2KdLz)_[#]`;i;P2I],sIu$EǪw*h$ .Ϧ HV8J whPMR&O6\N2.RS{C~cpl]#5 4L-mKz+ @ ,Vĝ4}5rit@>0lϯGHծi[n"O >$2NH1\Hw] M%, +*Xr- _ ;Xq/"=s` Hc8W% )@f6[Knek.^cF շҲܨ\84p6F)`1WV, @Eqe`>b]`J#> >> endobj @@ -7064,19 +7051,23 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 834 0 obj << -/Length 2326 +/Length 2328 /Filter /FlateDecode >> stream -xڥYm۶~B/NgŹ:NՙI#)z)b^bt'Z$)EIhDb[_Esoˮz,cHYjqJ2et>9VkKVk>TM_v~8V 8_R1S:Nk8Nt&H(,B?%*әaaꗫ/ä`T -GWzN #@STYS"փ_AǓ_A jrSV9{7f9w1KS)C.tn[hzJX$:E?޽]g -/9\G xɲ,X^ڭ-ziogbAϛ?wҜ<ׅd(ŲyuƔ^pm])t?Av@H-ߔr(oǕ}]Ɩ$k4vS>A6fC$akZ7i07 ޴,Vjm $W+2/]$Q2dMRCԇ=_k:695>Rw[]o=mN[}f>1snt.:mk94rCCkso)H\b- ^x&w= Su4A{) µHh ܰzjt6Z\@+4@~OW\U~ p_<3Gڋ 4Fcy:5mYuʘMa! Tq q/ o7p hW Q?m;1(L.Xnв֢cB2~t2cCL=Vq4xpm"L⴪MHk!Isl0=f8Dp>?hҽBȓ }zǖ)Z -mkB {sYwiĩt>p/{#2*EUН L=XOs*=E4~!$-v+#NoZw)0ބ-iύдuߘD0۽ḬJ6dbGK5rWrM;{J`XQXU #fsPEV_Ei#gBBpc#ș1m~|8eL7ge2 ǻJ<ZKІ>V?3 0\CEUsfb{|F>c252ecǺp6B@ZKـ@J0$֯>܂Uh Bpc}mPZ.r@(T]s  +l@=v7q^Nõ7.@w]b9U}AxgxY|濭pPBU@ *7| 6gO FSxɲ߹kaxlSG՜-pbːybN@'IнH1j]+G|q~e:&ZK FTpY 6 LkyJ 4p&R)Ǎ#ԹQxk6^H| d RL3}YUV4U'/Hi&͠21cG&mP|G Giv`W2+WotǕ0<ؖ8{St]$IІU)yEDگ`V{0~G㎮HlZ$Ո 7#v>WZi=Y0wst, ~py'1TƱ|h;ABWiGtz%W W<$86ss 1b1fBWjrH۽79$P 11OA ї/?>>Dt@Ϥ,ʾѳ Tdi7%.@0 rK^RsOb\PMê? K#XS#wůi%}[ggA0nw}[LoG17M /WF3_3]A -/ɟ_yendstream +xڥYm۶~B[{|q'wufR$(TozX"%^l8]>WD1ųhdaW|U7t/JXRűZ?LD2 ~*aPx.l(d\IfaȲHٙk~aa+yUlsgLbfX1}(cJ/֋E])au?Av@PoJ w{ʛrhq-xֵnMIlLMc7iS`I/niUnu`{LY4988b ;kI08;W /m$6a2dMR-CQׇڊÆMN[m~7> *Sg3nvcǡP= sim:?4S{^k'Fa ܰ5fn6:\@+4@+*7v{NЯl#^mUl]<Oee0I*θtҷM?hy۱6 zBԏu V(ht0/ @&7hYgбJ>P?:㱡f Qf4[6LIi qZUNE]Uf&P#!Ismf8Dx>?hѽBȓ 6cGB65?G9͢;4WT^m{H8ZBpUˢ*mzv8TN5; yBH<;# ԭc{`1g})ǀwejbWG$Ǝu>2o +ek-ig<)TooTؼp WNq'4 +úQ)Ciȱx2Ru9,C&Xp30:ut;_{cԩqv!VC, A]mWT[O=E30m[ZH')P)7{?L45I5.] e[ȘzpfM{XG +2M +h5DRaUgC^q8Ⓦc8`Ũ+1Z@0m ga|\D gQ$O .D +p8# x}3(LǮIcUv5*SBкlZlK&yEX=C_b͞rg\Cgo6 :!^>%"-W ~%iݎ IN$n6[XPR*XN<,Z`Hbd"+9nO0Hc*}Ps Wq {m >룏FN;2b){}XBrph'(ɗAeϩ?3i1G% old!}]`t8gĸjuêJׅ%ʒ]~;F h8L~?})j2ΎÈpTO|x6ܝ)?occN%,\|9Kԇ5m۷M>%q>9{닏K %(@rدjak6e9+lBm$U"2M;wp7^ +5$4}#'gtlK (@/Ã:Qn5*SuJya)=p =zz dF[G<[ CwY҅ r_JR5θ(a{a 47cn^|?Lg^P/z5N_W?9> endobj 863 0 obj << -/Length 2614 +/Length 2530 /Filter /FlateDecode >> stream -xڥZKsWHVڻ]SRj9"CVJU陞 v\eF]"AD(pAjw VxI o}77y+*&bubr)%7lYl X|\*\7[/a[! H,%= -!eڲBZ?7 & <3& [nڗJqswVg$ь.|/]ҽW幐Kp\+$H!<PBc2VۡEl~Y챆HUn@?12os~տ^կաLwGdO;6p}ާ5OE}j UQRѩzvÃ>` ρtV ߭wW|烺tGS,\&JsǶUIXčFu~` @ /2)C{ɴ~#r Jɹ5q:M]7A_ *^RyiWc$bPb}1Oj1'؜ |1]GAvś -xsLAƺkR[4SЅpDVׇN\wunJޅ+2[^bX6Xj1"NH O1%R_ܖNn$8KͰ[bӬՖMWVԳ_xlbB3h}^ mkT?qH?G+C^sHj腮mw򋮒pp%vګuKkCKK<\;3t7xRstqbtehu.ն\P.뒏~aDD+̧<|C^S -C)bwڣ|w1Ab3"3vZ`o2CeIw]Wa/5(Rd3rB#HW-U p(]i[X\pmf4[_m -+w9l AC{pg~󙚪ã'45q٦!|6*O;QB_euMG. wԆ_6 -+J"zku3n=uRKQ;g ڡMż:UwSΣ\rpEDz1OK#S|"yi\;6zs|VyE-aBNۛ7_|{P͇ rd}Y3hI~IfZ:t,Lw9N0 -L5*/C5.UZu"vF%'GaFσXYp1:'q;0b"SZګKSiR`K&'k=XFNm㒻Iftu) e -loƐNI/+_Aq;tuB/1 Ezxl&.K P.|zC.ƹ1#…L\[79^ݝUfw},#v)@k$IĠހ YX -7ޅCQeA~h@,Mlu:s6"(kE,B ^fqjXr;^A'V5UK>> -iC HhY\¡97x0ٌ1^'bQFh=\Ld<#OӴAoCR0^q8 1rةeIf"h$: -D˽ȇ$ n]ridޱW?':*_jRbKrj[-˞U&ɫ?VO2*wjvBI\;yLXFTOnpKъ-1k8=C8E<zt]ک.薹z K;` ρtV .n@UOiWYwv-HD^Q_6, !8Y34"Ѵ(G8M֩981SE^7QX`7c4-s0Wx>oZU Ϊle?6pXuLTIL/T8Ӌ &`23z1?>~WK/7Vp8P<+UcPsA8V#@&Vp9H8B,a2V>>``BZ | 7@}?'go5OEZXicZE$0#ݕcOQw,7`OvWE}5b2H9{cԘC՞F{<I;[4Ea,Uv讝# CIx@C?]{K_JKB\ Ix섑Xhp/ECpqļV't=ϗܠ>`z5\ޯL=А~K o͜se=gxmQccqH^ A| XB̓C̉-"6Clu1_Es( qbwUU4_irt +: Ga.w_=KڄYtf[1~Wm_OfҌlwس!MtmhQ挼nAMF$1c̳ƗaM+ĚY-kٹk!;8~s\a!dm|k9Yn]3H߫:=5J-]n )w鱝jT^Y }a $'G_${e-6(K~y5 =0c+xXpoĵþ4eB +o۩J^' ܳ"=z)cTOgdy~^3tnjk,] yՅ ?1qnDH +rdef _H) N +=4Hendstream endobj 862 0 obj << /Type /Page @@ -7426,20 +7416,18 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 867 0 obj << -/Length 2594 +/Length 2475 /Filter /FlateDecode >> stream -xڵZ[۶~#5c!<];٦x[w&e89T,.dt8i﫣|{2[պ5M|l/p)DX"i񹕍)|:lW|9?op9FuXrftP;tC,HN<5u[G"ENdyO i.%XsfP;qzse#_Xԣ~MOg鴚(sN əͪ)کi:XndW[Ja.y?%$`GPG}صS`cN+t4DiHg*"o6(W긊z8AbGG\Guwei3XuQ㙊7' Z8` :/I|b*Ʒ3;=D;D}Y A^쏥?.U?(MXsfP;C ۛ_.H6UC~yM&>әD-3]jCԉUQg/#zK9x -jӴӷgxZ+b.,7[(_+5:Yc~g)JfeQ(tBM%Ok\V^V[iJ'P2\/!ܸ{aƌ6Hvvn)d0oMA{Eh4Zi ԉKc_]]Uײ޺Xcۮs4u$NZ+zM=>4UHQ5@{׶+g CsUOj+gت_ʽ ă=R8PZ331n Q'L ?9㧥P@ .w6Qѩ֨_1Akh5N"!&bpP@*yhq]exϳ:jz(d{jw!YK۪1]XYqNf\MhQ7SR+ -u\I=ԡ锤B)L%J*OTJMp3#*cag|Ghcܙ2CN0*yd b^v:*ͪyUkz7=ٍZʵcLW[35(R &slA3[>1}/hM2I9 &is2>A'0jN,Ҙ~䧳B-U.7L)$4 '0Rt&ٺ%sp]>~;eѡ,3QUx9/E^ -uPcY#a$/e3sw-dykVn}zhbwg}и?'P Qv; (Lb,9YbKC BAs" /aK(JѹUlٝPeN,{[vQI<_ݛxa Bh -pT4:]UsPIuӴO{zEZ[|ҤXִvx̻L+4Y6uJ> yX;8MeS{3d..IҙhnB^uؗj NaKa2a){A1aJ˖ػF5> ,ƞ8ğcϘQsQ,F̑DMǠUӹ_Qro~.'+*@O!8@cǘQqQđK\]y+<+ l\ac¨C<J\ڠ_ mpW۱D +BJ+Yd32tڌY6jOu6ե h:Nsyux{I9.˞PG>`4Kkn[Ѵ*X̃1$Zm>C^iUhw&T|D˫(K3(rY8,B$K۵ ǘC3F]:X4Q*Z4!̸[ QՉF!htг+~,nsc3Ѽd%p;$Pq|1fAP{Q㢺a8v:OsԯY٥ϡaKJ0eS|4ӈi@59"kۚZ'|PG}@+~V S~eul"J9V>Y>jOu>uL_Q蹇y{ y,nno^S~q!'F>k=G v '[?;eWp 3(ap+Y>cJc%hrE $NSӺhIF'yk\ʾs,[-J^22u2rBlubf:HI +(?LstӿMaJGUvcu3?.F4Zd Z8F)灵ZyfBzZMP6@ieNr%KWl䯮3h` _B&_DXj .an1fO["<7eu_3'䡭@A.hÁHKK evKͣ8TQDS#9V))@ S<5I9j~PJT[= )2xadd]qIEv,5mX YM`+'w6 ϲzdLIH>O?,( j1ꂄ\qx59J ^̕i3|[y%¶/K_>2Jk]wg ,ﮕwk݋jy>@Rn ,fJp<\Iu+@:u4@ϓ: 6]0uk2oӖsӜI%~VLz!(Ib=p +UrM Nbg4&` {ՅiÃ? AМ7DBz[9!r{Ԥm.ƒ&ORN:>QA gZ'嗻߁refއ0:9CARЕ0\^*qw +|f]QM{h]y0a;[g+&:F`C2p4gr<ƚ |N?h=9%ŐDJ|P^FnQt46M |[gxz=ąR, %cdɇڳ4F]`E44_ޣV1᳚qhؾ@4s|n7fAP{Qz+0 vumbwd,IG<(e(;Wmu!Uᆩz(wйMѾ& aAy? sN$[N, +}9r &dǕbޝ9?0jvԞ1q.\!qCo.ks'A1'aT)\)6խF5:6ec&DkC +!iaʵ1m̂LP{Ǩ LjNPro7gvށsAGx +'cj}^fu%MUn\qߌC0VSm1endstream endobj 866 0 obj << /Type /Page @@ -7456,14 +7444,18 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 872 0 obj << -/Length 2029 +/Length 1971 /Filter /FlateDecode >> stream -xY[۶~_GYta6m\N[+[KnN?f8,Z;@"Spf8p+Dh(,7Z1)q`:_ɞLP4<|y*Ɩunw}2jފ$gi/Q(NR,tGN$lO@fHQ`ViВIHJRHjCt,g?ADԧb"yXTE&d,6U1׶xYdUUf{#͵LRaZs !o&+[dfKdW6K >wD>[>xu ~mTu9EiT$HG<(* S^#W, aηaMDŏi`7OìP=쟦=k6GR2)sPB]CvuP7 RZEUOX̙-rK[U -rӧ?@6ns3e{Zr j"̐lBq2 d.MFkeK:a :TԐ), >Bz*vYd)`E) g=܌S3489YDWydY8MO6=4}Eg ա:,NI=@j(Hu %Mn W3'{'Ѥb"u~pNi]U6Խ~0o;q4Pw9JYgg/(!P?V 0k)HʡtS!قZ#^eN 9#'woyqKl^=;mឪ˷v=K]\D3STMGTՉTPƄmF!6M~w+ZtƩ>Hܙ ^;ngjݾeVS<1DLhFYͶ|^ lڲf}Aeg>-rW~bA@߭<0޷K ^g }FӔܦ/W.,x? (ÁMAZeEHM'쁁l%ˈ).u0uf$`/;\6+ZN84}Axe }-ͦ  pW;f~5c,突Hp̛:;$q*&Q;N[Jr?|l>p|6% 4Ĵ e k ͋N@^\w4h & A78uE=II۫/G*6MSdb48`e}eeVlk(txb -eײ== ձML:5i^#N8L*r1xCCQ:LSᑁr_5{p‘xʕhzo𷺄Z:JMߞ 5f~>TɄA_x[ PL3a 6C).fi9rzwJFoQfEB@P$qz ✁ai -\ Z2dG ʹX3wsvQ_3]vo`|:::ֵg7$۝};tICrԅK|8lj:cL٫vPO1HZvg~?08IU3_G3ԾеG@\h@1;)$^AP{*fKPOendstream +xڵko6{~>_z>e7IFhS,hqȒ+]odVC ==A DĹ ҜÁ` 7ꐣ!w7 2'0bKALY,d8ow5ETr3u+YL$aߦ 2Is0'^"s)_e@)ɥdL,%1MS1*!ҩԑh B¬ +LeO~T]q.V2eC4!eTB;?eNk]Ðg6mZ70pWWi?=O +U"V룏3X|աsR:R}u7eqWmU{z&2ͯyq|oQ(e C{g|v, |FpYUVhU{{1c`Kmz 9s(E3৛Q-غ6fn[cJٌ<1@y-X`:GAPAD0JLy14VZKYQeE sRT^fh\HyEPS.8;~k݅e\#sp,M9󶿛C3$oe'>VfDl)əNQ0jb$R fe×%{^( +]j.̠FTmIn^T>g:rf!cR;aJGӏcƤCnlK]Z0e$rrm {T;0u&Lٵ&ht>i< 3IHKv.ffk}`Ct7[e4PN8t~>_;= ;yF_sksCڨhlv櫖5(o@ɴa@rfBClx9_}|yuQx-b1O|" ݺ8ʹ@[ Ma[ "+Kqz! b/ |lL"<;xxM0JC7Ye~};qxw}-۱Q68*UQmsH<g%OCBaa,lN鲝xo +]t7QލZdB`%IVwXJaa14Nd|VvTO^| 1!Q>XcT +Òe_~5ٟ.bL#&4κwZ).9bO^fc`=ɘ'B^ 7!`8+YC6cxF-͎jq>.!6җyeߺgy\\K[GC}k +rY!z +yn^Y0Z]:,va+ cb𘒩뺧=c)_f48#_x^wFS]NzyN!ôGN)V6FJw[H4`q=Xf,<_ _hnst0ϯGhܺRؔq#7B]-U0cGT&̺l$(M(uu{v!~~60iXLl0#t__@Iy ?%`+pW "! x|-@?_nt7'j폵.XV1nZ\r@?xM3;t]?Dt0ͼUZa<0.R5zR2}ۇ6 CcTAendstream endobj 871 0 obj << /Type /Page @@ -7476,30 +7468,24 @@ endobj /D [871 0 R /XYZ 74.4095 793.4011 null] >> endobj 874 0 obj << -/D [871 0 R /XYZ 74.4095 495.6577 null] +/D [871 0 R /XYZ 74.4095 620.419 null] >> endobj 870 0 obj << /Font << /F63 220 0 R /F35 193 0 R /F28 173 0 R /F26 170 0 R /F88 715 0 R >> /ProcSet [ /PDF /Text ] >> endobj 877 0 obj << -/Length 1870 +/Length 1879 /Filter /FlateDecode >> stream -xڵXoF' $ѫ4Mc#.JZ[SKR1.YҔ,.€yo("4ܚ$ -B$OVWDYO<S??;T%9iDjŤQŵ\9,h6''ҭ]yLgL6jΆk,OS8N6idθ9R~˯ŕ'OfdL^qH'V#rRi`x}ӳwg@)As -"ek],ڶ** -2`]}5Z \gE}i%cfFt7Lf쓝<#QpdiQn8ҵ4xL%uYhxwwC!VZM)'4yW]xŦ#[(`R"kw,EOt%]tq2xn|tU{|] L3 -&:.s -禗]e&6k]ҷtPB1(KJzErIf 9R-*Li:vu_:xAAҜ "E yOs&A3O Xak1"6Ca/(&WX6 -91ϑ~젵db,,5Q0IJ-AGf3s3I&gЎz;hMV?Rs[*,AoӏŢ h3׻J1 !'c.- G)H!a!ueoF)lqPդ.$f?:p{4^ Xn:f4@":~A4jQ]GNvx`Cݹ̟OnhC߲:V,H#CF D4GG\@18$h[`9a\n%kb/>E#@}Q qM6CTMr=u%D,>X1J|zNo lF -G@|Tʢui.]1cBz9=/8*6>R(>EQƯ==_EiDؿ*ֱ~|'~mȒ( uPIj}.k(]|F2?eu+fOv?(r* -'(l{AC c (kJx] I= (G#b^@܇I xOm܀Qh<۩pҲo;`(zK9Po;5$q5Aoc(svq)Ҡ| 1ؾ~j}}V%F>B -4=>Ǐ|gԔV෧H:gޯ_O[endstream +xڵXs_ꉜ!m:c7NGIܺ&ipد.ČO +4/ͬ(,'|wE]}'֪czvq5Z1izi}uKYf|~71nfk6/;yu153g|#}#3r<)YQ2ٸk֨<`iQ +c.|XH3Džs߬}JO>^kLq[,*4!p gnB@3_%/ SIgmL#SkǴ|WlÌ.Le$hsZaC@zzpٛBy[K?[*U鴚-ᄥWL(Bu,c- )EDiS&owqB,!@wF@QR== ׻i!0h7{i)4}%:潲i%1z~q QۂAh.KJF136av/%G>/gDQ2c92 FޓjxE|uyD LÅC>g>[ߝpJ]SDk˴ ?F|ϖaaAX^,3B FpŔ+9OTX8@ Ak_t]BtDgǤcJV8RJ+І5/uRp@!@odH˄/eNhCHMH#AhdªisiݭXO5ggO졎7DyuDo@ ?Srg!C`Lv`8Q/b6#d{|UWm tX2B7UI%/O%& 7ZI{ (BNix ݒ.{:b}]旟v{U}4 zֹAnҪڭ=-+1TBuXsJ#AN{ejЃ :hh!,3{&jU0(Бi |lbWݣ^u* 6,̝TpB2JW*K[ QCiMi +lX>~"nwh;}+MƲnS&Mph+7G 1ob Lo2tzjF|tod5=a5]a16GdQ6`Kwe-[FFip3 +^iHRw] Fp,ut3HVcct k߀qS\ף,\4#65zwΛdј_-|>~Q~秐9k:WuJ7jAsluxܻP&+OG篶WxK͆ءܻk@/'֯|#&N2 }G:wDYH0v#gA1ɯw1EJdpOnNU~y٩X(tnh6.LFT5z??d> >> endobj @@ -7520,20 +7506,19 @@ endobj /D [876 0 R /XYZ 74.4095 793.4011 null] >> endobj 875 0 obj << -/Font << /F63 220 0 R /F88 715 0 R /F26 170 0 R /F28 173 0 R >> +/Font << /F63 220 0 R /F28 173 0 R /F88 715 0 R >> /ProcSet [ /PDF /Text ] >> endobj 882 0 obj << -/Length 1520 +/Length 1437 /Filter /FlateDecode >> stream -xڵXKs6W(>dI gӴ8Ze&aϤEIbX~6RϦFIc55 czB+8{ݯ,.:6ɓWZL#k-gS.J[gٻd56/fٛ&k[4 fm:{;yy֛UHk~==Nc鉭deK]Ϲٗ+m)aTb!ۮsȹdAt`9gqW6ms{BNrY߮pxe[}5("WM>~JGjz*n=R(t{2 ~e(HAY"Ce("FMU0T!_AZHLc~5Dmڋ<[u뫥I*@ꒈGj䚀sԢ&. l&u<0y 35ږmAGnlEV؜u;"4;Z*ڜ3_ۨ$ZN&ؼBh;]o8 -{w :T62Ic6oeR7GCҪUbEeto[>0-Y,ϓLMM7]8-#پJ_Yɭ<|H[Ok -m2!qhwύOOcxn Soɾn^MGAʮK = C9xCͪ$"O2Zi<LÕ+$lR t0o*:# -fU.щ*.%:V*zhh>\ݏ\vvT@?pK P%Su>5x->t'eY4IVԁ1/^ԵݒymlVŮˈwqmrG<ۣiw@ȭǃwmuS~$ Rɍ9  - Daa&9ъig?l)۵/kKendstream +xڵrF}Bh2HI$CE0լ,Jv{zɫ=|.[wI#@H\pITiܭ?o x]x[6yJ^LH.~m(2"PB*mw8ډBWLJ@va̪jpBF?_0iRN5@n1ü3S.Bhz2k$F\tp6L0ǹzciq˴t!Z+˘ex8ೞSXEOt@ڷ%1ϜMҋ$JE<ȸLm3$N1Ʉ|/)nFP&$,Zu @[u(ړ,tg MuQ{rW8܋9:(G2]:䞫RSGP͛umu=lyԇ28 h,/:4un6 SX p\Db! +C F>% + e*!pL0"`o]L"ˀp!a t6EY,ݼA۽-&M3X9#je{7|wxrb$KӪv`賃x_M@}2ct6mYW]ZTGUr[xAD4u5jr&[/ bk+[= g,ǘ;>c9XPyr5^xir%fI尤|։X(?4cy*dE^Ua%;]֙>pc#0߽K] AcB,fB>S،1y`ׅΆe}Po~₫onjHV|~_*lg M( 9*G0%~Wp4endstream endobj 881 0 obj << /Type /Page @@ -7546,21 +7531,21 @@ endobj /D [881 0 R /XYZ 74.4095 793.4011 null] >> endobj 880 0 obj << -/Font << /F63 220 0 R /F28 173 0 R /F88 715 0 R >> +/Font << /F63 220 0 R /F88 715 0 R /F28 173 0 R >> /ProcSet [ /PDF /Text ] >> endobj 886 0 obj << -/Length 1653 +/Length 1528 /Filter /FlateDecode >> stream -xڵX[o6~$5ǻ}huHݒu>LsHJ]%qE#<;2(cQ"FE 03m`ɂbP^j:F(%Fk#.Jgl9_$%/[[um ?r6n8%3JT:<%T}D(&U5PŒv6. -#thⅉLn˯`+Ê}S7.ԩ")ftaFC C4%24D26ʞ.lޗ={kkRF q~}a0Nhs :GdZ^NjZS50^͹H$$4γabNS)vuQƟ?[eUfhmrv|X?LT;P]yCH‚Ŧ,Vzg:;B -Maˬ_T$Xw,Co:"xFvǽ,QsVUt ,7@I} ĈT?$ -u` -bŘ`$nEA,4Z݆4F=te,b_Et"8i :T%ţ}CCAk%D'wSnxBzBSϨQe;Q]n\ ̾v%ojh㌳=жk/-[kXϗ]kX~(xYC n$ȂP;Bt'Vv=kr6Ք8ZbDՃT$v}gʢ闆C8uZpvBHUx)sTx$XY{Klи6i`nϻN# 阹|,/}8\^`.2pj8@ -6eu5S{I R s\I(|%v2`B񯦽" ۥ-#߬lzB͸XtLw+cJ 4$Pd3#IS6>i6UlfV>χ@q'\?]`Sb@{Px'D΍oB;ֳtx`g&}\deg1^jkDZ˗=+ǩ86iQ&o8w@@k"r GEe:~Y-υHlA(m.-4\}joJc8m1ym/)ڗ_v`\(90eRQR#'z 'ޢύpv]9>~$Xd;cڄJ7((z]hz +?$qb;WWNٶu` X{4ll*gXOQ} Pk/{~!4 -g}3_5n8|!gaB&ɭ`;J1endstream +xڵX[o6~d5NjHI-4ݐv%>(meOsx(vY[(oeqQg:J2 !jģ2^jYj<86,&2ePI\ѯh3֭vnնXrw+-zY;ya~VxU8 'w5KInl0/ʄ+ʻT[WԞ7.Rk(Xf)m0$?@͐f +z+ȓ=`L! bge&ै<0)D h.LL+>]8R 3JyA9y_WJ1#0Q?Nԧψǯ{fQpAZhF_s^ 'å_B(s҃{wM Ge@,5cG;{>ubL+ +e8 PH)r92L3!uvP(Bp';f(Ϯq&u6 \v8jZ9-^m> endobj 884 0 obj << -/Font << /F63 220 0 R /F88 715 0 R /F28 173 0 R /F26 170 0 R >> +/Font << /F63 220 0 R /F88 715 0 R /F26 170 0 R /F28 173 0 R >> /ProcSet [ /PDF /Text ] >> endobj 890 0 obj << -/Length 1695 +/Length 2133 /Filter /FlateDecode >> stream -xڵXnF}WypW^Z!1$M@k5Eĭ{gvII:Qٙ3s. -K"i?0`YmOwtYnϞpzt.o.J}"%N.$sWQ:;RYb25囓.ǿnRzD*w\*e|LߜP"@9w@ ClOI%=YbR$ʗD -a70Dav ( iEq"XCB" []ZRWr4lYtAM3p?IInlBtVKht`(W_tag"ue_tkՋ}rw0ؿߚx(<2M $=w.FPpm&?e}b ns x{^|H&gKɜYkٜY]W֐dWDzkmuR(|sh$ә}mA -U1WtFlrWDM2Hbouc9RLs)%Mmc q:mvs]擐6\Xm6T[WJ5wOO]ʟ"̈́@(BЛ>H#1Kyi]}&yۑȗ}!Z=l%9  l|JRSB~HX )TVϊ9 AG~ө0 - -Z^蝧cG+&qm!SA@-5LB_J_l:Å"\cY8A{NRU.-ZߠDeYopO—Ł}yi_!= ~cC1)ZY(FW׶FB]q<5-pH{6z}uclfie]b5:m⨙gD5r ̱X||8kdee4%roޮVeP"4ʚb[`LҨʋfd6&FtFZRtK4Sc>؃Oɔ#) =@fk}MV ` -yvEj%C,d;KyZݺ<5d(Ok%<+'\-?l6N'p^kzf՛Jd}9-s$@,{ B臠4hQoXN=zējd@3 -tpۙ\)J -Jc5Q N8Ds~KAѴZIثࡥ*rF(Ym-q?11v>?P_g|$7 3bs* p '~*j RF{7PYhMh:e@9Ϗ59x}y@3TzP+{2M+!GyMzav5T=Г)@s.%8MPбLJq\ߚ{z ԧYg]nrsW{ҙ^ E$\ݹ]H7 ~f,HT 1  6+<_߬:hH*Rǀp`" HRr7EcM 7WX)I_vF!R%ASBH_W?B-P$֩ >%LkML~uwSϓ$J(j~Gzj!Dq-z4`hb`t +DX9 ClfAI_vP nR j~3cxLuO֑7hP1U+.C?NµYX1oZS2>XZ44WlpV+ICw8ӮLN4rk~ޝ,Pwg&hXHxӲ8b-%XB4OlG6߷]tt[4ιCw_kZm.]pa5n#r|wqu +t+D8MO.t倎A6h^?ixg)v'o ԻlزHe[R]2DX@ASمHȎD%BeFx&\'kvB^0W9 ޯR'nv!{~ׇ kյYcˢ &I;&&_$~F{uT(koII{"OʼP_151؅/qǞ~Cg'p +SN819PJR j%c!+!ռR{**uQd #zd/ +IkY Y`ͼ3 Efe+3+aޟ/0N7#)S;jhz_4Nv&45X(-Е1XĚЀj:** hIɀE h(yL. 8 EU$!J@/<(P օ1 D];c.v)UgBg{o~*Q=Ϲ=SВ`p/ZW+ /D^Ӷ͔(ȴ6jme哟Q?ŝ-:y7tt#lm9DǸ}*ᐖڴqs$* @^4t&b*as1'ҬCJ$r3gޥTS!2ɬ.wYd#qGs^ {v=@AvwfgJp>V:k}A}SMa?]<=vqcLXėCG×֖:sۂPGendstream endobj 889 0 obj << /Type /Page @@ -7602,243 +7585,225 @@ endobj /D [889 0 R /XYZ 74.4095 793.4011 null] >> endobj 892 0 obj << -/D [889 0 R /XYZ 74.4095 381.147 null] +/D [889 0 R /XYZ 74.4095 539.1505 null] >> endobj 893 0 obj << -/D [889 0 R /XYZ 74.4095 313.3038 null] +/D [889 0 R /XYZ 74.4095 474.3707 null] >> endobj 894 0 obj << -/D [889 0 R /XYZ 74.4095 285.2439 null] +/D [889 0 R /XYZ 74.4095 448.7119 null] >> endobj 895 0 obj << -/D [889 0 R /XYZ 74.4095 257.0763 null] +/D [889 0 R /XYZ 74.4095 422.9455 null] >> endobj 896 0 obj << -/D [889 0 R /XYZ 74.4095 210.9815 null] +/D [889 0 R /XYZ 74.4095 379.2518 null] >> endobj 897 0 obj << -/D [889 0 R /XYZ 74.4095 184.5176 null] +/D [889 0 R /XYZ 74.4095 355.189 null] +>> endobj +898 0 obj << +/D [889 0 R /XYZ 74.4095 225.9939 null] +>> endobj +899 0 obj << +/D [889 0 R /XYZ 74.4095 162.378 null] >> endobj 888 0 obj << /Font << /F63 220 0 R /F88 715 0 R /F28 173 0 R /F26 170 0 R /F35 193 0 R >> /ProcSet [ /PDF /Text ] >> endobj -901 0 obj << -/Length 2854 +903 0 obj << +/Length 2297 /Filter /FlateDecode >> stream -xڭZYۺ~_a60biCdiNM ی$O%9_sxHY,)bky.T@Ŧ{6Aǫ"HXEzBjdI.oM -d,5[!7]aJSWjˏPrD|ZGLQd¸ RW+THS(:&7S\\`RD">ܐ8‘(%YGʼngW"xD b2Eڹ;I-b\jѡk˛/{?as({gm~'׸THrD|[Vp"ػ߳hkXh@yNQI'CaX8btNj(L fÊ\UB`kT{R-ZE Oni)'jӜ'bQ@]* !J<7V/J,Z3 =P!ZBC67Eq]mOT8a>k2dK,Z%B͔'vigRvF"S]aRE7y|y,PwYc P\B!fG | I<.PҲ`~ GoPF&yf໼6-cCt0ŏ(4 -l;z5g GsX>VJ(}U骀RS;h54=;k砜퐶-M?q[D~QQTUO5('Lh.cLBz*\upFSyJɳ*O9im>)3RB)JoЗg"ɖY?fkH,.i~ "2LBiJphD!͊ohM@ %6JN%$,N9uYGT?2 &6&O7v̞!#0E|(Nvaw " uqdT:l*|ZHeiZZ0 R+0zʻDZA;BoíaZ?y6{zȡΦ܉E nn+3Ui -f^H>`T8jkfùW:?sWpi G"o`gIt(ܧNZk_` --5|6ljߌwgܻ9ʂ@A0l,XSH\W-{1]H*mT: L"G$ 6?Mw'^ TnOԕ//Jk" -SH=Ƞ1cM@R -:NI/[/]WE4rye0 -fpWodf&BҐkpxgU 嘏m^O7V:au Sa5zk+J‘+ #scJ"7'\Tь jvYd -)-e=;l) أi^;56>ɱh~r%:"ԑ ġ^wKyN; x$! NYqbo*8+ c~6:L&Ewhv]E46$C[ -aklwW@=ex02"~VAbCTl,A(&`4 kOdt3|)cxqg^XRƁWmjr;7DЯ^ |aCEF "[!lMOk}K!NY̡) 7)ǠfD6*&"OuID kƱjm0Ҏ*=ѱŁۡ C=̊؆={6F40e*ѣcZ6ʣa!L S&!-(!ssi ȿ{LM" y֫3Lwoٰ!$BANX31yy>LNdS^#bl8/<%i\X!0L]Db~#b`dл,ݮ5ݛ[|Ox ⳁ{J> $d11`}P@u4wQig#,HZ.?`+jcVveʕZLj<]^Pjd~)jjUbs+[8?ZË8TF@?gq) QOt"lNjj?wǵ/ #ʽ2fB 9E㵩f_*σr=C0, ZaiM '_(9Q?1xKjը[\(F{!ކ$o1,t( -tv7Q2e }{KmVі\,6/Kg`ތ~7{}L{Cr.ǟ4 -!D -uc(-3{ڿk"nltv:`Yx`_ [ $[M8Wbp -lZYc"2rW] _R}C (抇`!W?o`ͽGnW"1Q1rhu`/:yp= +׺P5ul;r3:gFrT,)p%:cS=+f3pDžPPڕ,ڄiWZ3>>pv[18۬,jpzaECaceʔL ͑/n5$3@b0 LV,GTʒD-7Fz[83H!  ̬nhi7,*!S%&TgιXc!h>>dOdD! u[խҺ']0(F j*ہ>#!ZoY@G;>/|\2뎠Hܐ\I dK םé/zAM11NXpc˲\eOxgЭUH=RFpɪU2b-`i]Y[6?yOo$q{$-!\h.QV/rC`@v(.t uQ RU*vUNx1ydbcHrᯅݴ[DGTthZĊU2R8L2FPɲ.j_./=EӃ,Si"Qzb2.͞k8A]1$*;WC)JJ +{"RkL- \BG[=bJ$%j*Q + 1&zjWBpҦ $ ݞhiAg).L )VS%qQ;6lr^ NtT(1Tp& +՟ нa~s^bS 'F-eJ-Dj:@=:E27ynܼl^4T TKisco蘡=1 + Q Zz!jf97 I5Nn#CF $ml)3"?-ښ>R9"QY{xW^>H +;m^F*& -ed 7-SxwKTpY'=93n(P@K}~U'Px4b~3náӿG*3y|ϊ.mі\:'| btT[gE݄nX :UK}K-ށލYu碏7X;r|*ƙi@NMkJ]"BG(?2t,բP9FKöSɿ:u3^J|ZCvqCA:[5}Sz.VaɅkB M [wtwQՀ>S]!"ڈeknz%<3~j@wklWJL$Vw㡚Ԇ%CQgy uBw$زK^!WG +y}fh wB=wn \m~*'&@z*xˉ/Go]p@If ԩB'{EI:endstream endobj -900 0 obj << +902 0 obj << /Type /Page -/Contents 901 0 R -/Resources 899 0 R +/Contents 903 0 R +/Resources 901 0 R /MediaBox [0 0 595.2757 841.8898] /Parent 912 0 R /Annots [ 905 0 R 906 0 R 907 0 R 908 0 R 909 0 R 910 0 R 911 0 R ] >> endobj +900 0 obj << +/Type /XObject +/Subtype /Form +/FormType 1 +/PTEX.FileName (/usr/home/buetow/svn/vs/trunk/LaTeX/images/simulator.pdf) +/PTEX.PageNumber 1 +/PTEX.InfoDict 913 0 R +/Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] +/BBox [0.00000000 0.00000000 443.00000000 256.00000000] +/Resources << +/ProcSet [ /PDF /Text ] +/ExtGState << +/R7 914 0 R +>>/Font << /R8 915 0 R >> +>> +/Length 916 0 R +/Filter /FlateDecode +>> +stream +xVM0Wa{o| $v[e!,i 4[Mį3IP]}3g0}eϯ%3`9l3Ђ8gl,~e4]uZ9q_w{6Mf3f.{rlӮٛuvTL63̠+/*p4IOlq6t*eA@{fđfn.,BRttx +AR|V~f5< fS@1)i, (#xcAAp8:tO]~lFt(W O*O">V +*~mJ!v*&'(66)hByhO[uǽ:A$JaO!L =@ X Sx^g]l&>4sP % J0mid8ҩowGvynV3'r_PBagg䲋qW H5?}3qo4M_-S8K}jZJ977}(=am@Ҝ%ၽ +lr(aa-xs#x].0Js0=kg$:.008!+.,'v+e%a誰#tc`)5>|xjrM-m f j{Xmt4T_,zP@.j R 0j*(iRZK%:Y^v~ͦ>OzJ`+ӺX1 F~r,$XW#`X>FXtjN_|ٟXaDr*l\P%$11ݍnSvox{g@5M p3rvendstream +endobj +913 0 obj +<< +/Producer (GPL Ghostscript 8.61) +/CreationDate (D:20080813231058Z00'00') +/ModDate (D:20080813231058Z00'00') +>> +endobj +914 0 obj +<< +/Type /ExtGState +/OPM 1 +>> +endobj +915 0 obj +<< +/BaseFont /Helvetica +/Type /Font +/Subtype /Type1 +>> +endobj +916 0 obj +889 +endobj 905 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [214.7767 434.7787 229.2323 445.361] +/Rect [189.8144 626.3371 204.27 636.9194] /Subtype /Link /A << /S /GoTo /D (figure.4.9) >> >> endobj 906 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [357.028 352.9848 371.4836 363.5671] +/Rect [378.0215 544.5903 392.4771 555.1726] /Subtype /Link /A << /S /GoTo /D (figure.2.1) >> >> endobj 907 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [279.7042 317.1304 294.1597 327.7126] +/Rect [285.0414 508.7358 299.497 519.3181] /Subtype /Link /A << /S /GoTo /D (figure.2.3) >> >> endobj 908 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [231.1925 281.2759 245.6481 291.8582] +/Rect [209.4045 472.8814 223.8601 483.4636] /Subtype /Link /A << /S /GoTo /D (figure.2.5) >> >> endobj 909 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [372.1582 255.0749 392.2269 263.6397] +/Rect [372.1582 219.1733 392.2269 227.7381] /Subtype /Link /A << /S /GoTo /D (cite.Java2d) >> >> endobj 910 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [401.086 255.0749 421.4326 263.6397] +/Rect [401.086 219.1733 421.4326 227.7381] /Subtype /Link /A << /S /GoTo /D (cite.Java2DAPI) >> >> endobj 911 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [430.2917 255.0749 456.1165 263.6397] +/Rect [430.2917 219.1733 456.1165 227.7381] /Subtype /Link /A << /S /GoTo /D (cite.Games) >> >> endobj -902 0 obj << -/D [900 0 R /XYZ 74.4095 793.4011 null] ->> endobj -903 0 obj << -/D [900 0 R /XYZ 74.4095 692.0192 null] ->> endobj 904 0 obj << -/D [900 0 R /XYZ 74.4095 626.1576 null] +/D [902 0 R /XYZ 74.4095 793.4011 null] >> endobj 130 0 obj << -/D [900 0 R /XYZ 74.4095 512.2293 null] +/D [902 0 R /XYZ 74.4095 703.6873 null] >> endobj -899 0 obj << -/Font << /F63 220 0 R /F88 715 0 R /F28 173 0 R /F26 170 0 R >> +340 0 obj << +/D [902 0 R /XYZ 288.445 268.2272 null] +>> endobj +901 0 obj << +/Font << /F63 220 0 R /F28 173 0 R /F26 170 0 R >> +/XObject << /Im40 900 0 R >> /ProcSet [ /PDF /Text ] >> endobj -918 0 obj << -/Length 2001 +922 0 obj << +/Length 2736 /Filter /FlateDecode >> stream -xڕXYs6~#U5B 8oufg&fyDX˜q_8(IJn (?e$O,@PmWI]w%ɥC',t]kCd:],S u$SnVk}[vAldߦTfњQ"܁Kf35U *WFG Ӱp/| xUE=JK̘$֠8\ȱo`C^oV47*y޽9y?#SFcx4߅HqŒXw N%c9}Utf49ID>>D K<]pq*SB}rFrgѫ5iCU^2MT̛?]tnEENLIJtϦ)?V,F]mZ]t ǠgtK\nV4>Iv_aY&N~>Hf gC.>=:S@$)1سP,PS L3Z<%*ۚf$gs50p s4K92ya&2 -̤?%2!E߮x?c=\lL{k{Gi0sAynTʄ?~9v[H(\ -<ޙM3e(+%[QiiZH 8]]]$t_θCTUnhm5GoBvyTlA4)-< X]Ct|Aqg/4Ivk>rr>́ҹ?Ҏ3:l.C608 CW)rZp9)(!xovTۣs܂JR9%D%F7;6,i Hں p}\ -v@|\]튺,BscMutHfC\R!`NzVHL dj32v7qg\"a}3}&pmoр?^!ZBW]ŭt>u@WFi!S*,h= 5 -۲A|m1 l? ]4x6uiv.o@,k[/W}?:qB^wW03Ư/)ܴj8*%ucѽ_T@^gd[] 퓆#&9;}$ӬjPrˈ|wk?( -9!̐5RZp`!Søtf̡<-Éڋ8沉s Jy - $:]D&-t.up"3!R+*L. OPz( ڍTYԽS,5ԮFk4잢SUn WӨj zc -?`=Z/vy%JϢwڦ~_1M%]]@|Q3 Hu "IBl,mN1 b b`rE0,{ vHǶ7}k@ oE]Fu.|R{> q3}8^tѷ/GPx?0Ҹ|JJA-~(1/3q\6endstream +xڕYr8}W葪 ͉dVkj0ŘT9 PDI*>} bJ&y/<(ap+/K{IX$rqe8E?}z +,l9~kMWvq7Oo j㐳,Io }0mr8x4MCǽ݉A\EB_-tshqV]zպf_ss`ԼkMB Qun5nu7;{C&^-.+ed*inf;RH୾~luCר7EzD܄ʉkөHFJ uLq3lM2FCJW7?sںݯ㦩nQ|5N"YyD +)}T;24KUא4>ñ4z7- g \ݍzJŰ*&Õn+ZWl5sKoO_`tt89}'wAqrMDy|Ң*)nаQfSAOBuO^CFח62ꁩ-Qީ9 x/]{w.@Z94ٓ;Í%xѐIw\;@1$T @1x08K#$ׂq;.^=Pl + Cz\ Zc)QD)1|Z3(;,Ff2ZЩ։SXJ9zc+4!THۭq*-(`,>ԥX6<6C6}Q K] /j@|ub)_u&ZgKdy~480t -`J0t; KX}@|k@ +\j/nm^UVٻ] +ԅs%p,zj6NKg P!(.Aɋ +KZP:zJcIr& ^01NMбzm ?80\ e32l`ѷ#|-n)h#h^Du.$OJQ80 ?Rs~zpZo⛲*I^l=Q`*ssQ{kg+RTv§-q2hjJ sg74P T읻bֳBX=*ͪ P E)ޗ[&5v #ĠA .zCl9a]t1wծ-}Z##V9I,6+`/(Ҿ20;|"Q8+((xz(I[mz][PWHfNR=3>Bk7(erQr&?!C~Rx{/jD<Og."ʵU V]5wXRϾ'U 82t>lR"xZ"EQƒ8Odn0#!2C05d΍{8a<ˎH|E/Ca*OSԉ;vlMT+R{ ه!nNZFFA.DIm3T>B1 }9gyƓV tjR:Ԥ.+ j<ēWޡR"y{-/j"D|$Ox-ټ>` +ik<[Q.' Ω;m=z7q[H:aAsBdO4o >{endstream endobj -917 0 obj << +921 0 obj << /Type /Page -/Contents 918 0 R -/Resources 916 0 R +/Contents 922 0 R +/Resources 920 0 R /MediaBox [0 0 595.2757 841.8898] /Parent 912 0 R -/Annots [ 920 0 R 921 0 R ] +/Annots [ 924 0 R 925 0 R ] >> endobj -898 0 obj << -/Type /XObject -/Subtype /Form -/FormType 1 -/PTEX.FileName (/usr/home/buetow/svn/vs/trunk/LaTeX/images/simulator.pdf) -/PTEX.PageNumber 1 -/PTEX.InfoDict 923 0 R -/Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] -/BBox [0.00000000 0.00000000 443.00000000 256.00000000] -/Resources << -/ProcSet [ /PDF /Text ] -/ExtGState << -/R7 924 0 R ->>/Font << /R8 925 0 R >> ->> -/Length 926 0 R -/Filter /FlateDecode ->> -stream -xVM0Wa{o| $v[e!,i 4[Mį3IP]}3g0}eϯ%3`9l3Ђ8gl,~e4]uZ9q_w{6Mf3f.{rlӮٛuvTL63̠+/*p4IOlq6t*eA@{fđfn.,BRttx -AR|V~f5< fS@1)i, (#xcAAp8:tO]~lFt(W O*O">V -*~mJ!v*&'(66)hByhO[uǽ:A$JaO!L =@ X Sx^g]l&>4sP % J0mid8ҩowGvynV3'r_PBagg䲋qW H5?}3qo4M_-S8K}jZJ977}(=am@Ҝ%ၽ -lr(aa-xs#x].0Js0=kg$:.008!+.,'v+e%a誰#tc`)5>|xjrM-m f j{Xmt4T_,zP@.j R 0j*(iRZK%:Y^v~ͦ>OzJ`+ӺX1 F~r,$XW#`X>FXtjN_|ٟXaDr*l\P%$11ݍnSvox{g@5M p3rvendstream -endobj -923 0 obj -<< -/Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080813231058Z00'00') -/ModDate (D:20080813231058Z00'00') ->> -endobj -924 0 obj -<< -/Type /ExtGState -/OPM 1 ->> -endobj -925 0 obj -<< -/BaseFont /Helvetica -/Type /Font -/Subtype /Type1 ->> -endobj -926 0 obj -889 -endobj -920 0 obj << +924 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [456.2811 529.0277 470.7367 539.6099] +/Rect [428.4717 712.6134 442.9273 723.1957] /Subtype /Link /A << /S /GoTo /D (figure.2.8) >> >> endobj -921 0 obj << +925 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [401.729 429.4758 423.8776 438.0406] +/Rect [401.729 616.4705 423.8776 625.0353] /Subtype /Link /A << /S /GoTo /D (cite.Regexp) >> >> endobj -919 0 obj << -/D [917 0 R /XYZ 74.4095 793.4011 null] +923 0 obj << +/D [921 0 R /XYZ 74.4095 793.4011 null] >> endobj -340 0 obj << -/D [917 0 R /XYZ 288.445 581.5827 null] ->> endobj -922 0 obj << -/D [917 0 R /XYZ 74.4095 337.3687 null] +926 0 obj << +/D [921 0 R /XYZ 74.4095 530.4281 null] >> endobj -916 0 obj << +920 0 obj << /Font << /F63 220 0 R /F28 173 0 R /F26 170 0 R /F35 193 0 R >> -/XObject << /Im40 898 0 R >> /ProcSet [ /PDF /Text ] >> endobj 929 0 obj << -/Length 2985 -/Filter /FlateDecode ->> -stream -xڭko6{?66zfwޡh=`~cFV#ˁ$wÒ-b>9_Wb*HUJhpz8~r{:m6QVWBI&BɻMY+{.Z]n"N֊ma9>f77=P,"i4*1Fj+%L' SDZ's%J&+'x<&2Y"Z.?RC=HD)ϥ -֭ >li,,i2Xvnt cQi#vЏO0^c붞 -p߬eh[^XFp^jGq-K:O'@ǨBE }DϪ'%4`D|O'wFڨ9B:83 Q95^!8j.KS[Ɯ `9 GoF( -)l t҂\@έn0u~8Pv \J/;Xe}sR, X}yE_`wFBRt7kSՐEEc]ÍEY~PV:;5Ǣ޻]Zg6muQcLX1/O\LJ@۟7q9ۡ,]nUm+ÈI2rϺ C[0:Q("vz8 ށt\ipEmmYĖPRk.8&"@XЃqe)z'tCnE4 "e<= wM'$EhN|j<5jH6SL0ւW4 1 -MA`,O5j֒D2ˆZcu͌Pz+6>;'ޝ&KrY&M臾 Bv@V]z5@ۭ휉evnʬ1 a)Jf9t) -B$~9B95p(XG -Vj8]Yqm -!a -j~D])*EsJ m*o ȧ)Ձ|r@c/TZ;-b3Y>G+"(ua= I1"ٓ$/f+Y\1/s\٬e# kYgW;w Btloyyei`}KSz.}cg484+40'h nf}JpJԇŬF,:k'窚~(}ũH-Wl!*oby:&)C$B* _Xt$& -(+:ӃZ,tfe3}x{~1y(P;>WO", B^2t)8LL`^/CU"9 fk}epPQ+NQv;b\)\)M$䠐p^BK(; -$&L$u`m~ՌOx{1!cIvzeFlwV2NY"eKi顐hVS(g+^$@Է'Do6ς_Ow~~ϧjݫWsjx75%< -RܻjU&z蟹jOXFLruM=;(2n -3G2tU Bnp␹dSU2OT@tv& HmCR2 wu CA_wgVT -]2QܝtX!=\Qbkg @Kk$sla2§赯wOiSEH^;ՔOHFa$CߟriA:4_O{in!:T' *]Jrae\ NOC\ <=Zۃ>.,cWE}s}չk;?Hv֕>0YweeSPH ~na& -|/q8MѾkN#8ɍpAó0&Mkn90,/vvgC[{4cQ哑_B1|9 -qy𥁇 acWC/uK5xg@\С$K%G_u nWM2:4̠Thشosk?&@=~jc8z{ˀ֝#oN= -jLjr&3p J`7hyׅ*XsʝVXHX_OO|LH|j=K5`Q("%20᳟-`±endstream +/Length 2824 +/Filter /FlateDecode +>> +stream +xڭ]6=OĬHJػHM iHy͵ KNᐔdKmqHj 1"KXti WO޽O`WxՇ~ɷ\L+,>\/D"H%-+[S-W"ˣ-WiGon*sk4劧ѱ.T,WJ<}N{DO5˲LXh+$acpF -Y* ,E} vU`֦*)Uyu8.{_n *>{S:XTe瓅8n[}ijW/y Yi>b,o-XU徦cG@7Mht7{"lwtFCo,|uq*h륌^xpaVW﫭;Xw7A\0$6#*݃:3H՝lX.x2=ǒ,I8/7T5^V?8j݋m_)SWęNSaqJ + 3 K1%X6W.#!m47Gd7X7%#.I S2cV^w#RY^j!#\^⚴Q;)4j^}ii(ZMJs d{FJ}Kqjs% ӣ=*=`vGohqO.nk+ɰBxa3Km]6oLCC+fEm٪tq!>Ԍ=~K6-9LgQv"|뽍v(qcTmk SRK4(k +M*QO!18} #i*Og,OU0ϸ@bX 4PqJӱ +]$"rlCz` +Њ56*]sr!Pj73f3VlA%)i.m 4ї6-Z耶Y6೔ rJHu"tܯK{#UwGgMV®hhI}ԃ!Wk`7(3đsWf$G!\%(ր0|9eBtysm1o4qWeiV&:j;M\i~b;.ݶUMQ*ͩwGY@WY|,,J n/vQݙI6uq,dM|:ҀmCkaX;!eIڿsjF2(}Mk  +pxaאQ^KWNFSʊvPSbJg j.68SgVO{f r=NCo4T5;l\;z{sڹҫ]=vk(dgj"kl']ggeMS蚵7hx ~rV9]`&!~۶\= vm<[U(Qu.4X۠Ӝs Y^H9JKe~˪g$==iy<3gt$q"O9I~CNC俣;zFqk h5}Co+N pXM}QRms㛶`i-On4`h“7< _ݸ%IC ~Z` 7h.BJgj:ߧ5'\!-Yyt׮sq'n d|Eև"Q \f*vo”4 H0_O/mե3TKjPi-5%V]T`QKD\\TUgk}ϋBꝩQ.S`ÂR649 6 YTTX8$W.8r8pĵzkywXxޖĆth{tğڬX@ƌl,c _&;,v,An :.8OQ$ڧ9^5b=AK&4dDXr>~ϪiiM6S*D,7|xOMv]!k953q޸kshkqd/s_i})F\[C9,)c ֢;K!2qM.PՕqG iW Vۿԫ8^zCR$ MEdHuP <W2_tvTX/_Gr2M$>m^+"_ܱPF_Yv/i8 i +|u8^eNMё<Ű.>vr@.__MX)xʔоxWb b/Btw.w Al'W,Nx?z#A R<R?` *bendstream endobj 928 0 obj << /Type /Page @@ -7846,112 +7811,93 @@ endobj /Resources 927 0 R /MediaBox [0 0 595.2757 841.8898] /Parent 912 0 R -/Annots [ 938 0 R ] +/Annots [ 938 0 R 939 0 R ] >> endobj 938 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [118.6528 153.6502 144.8005 163.9186] +/Rect [118.6528 357.4791 144.8005 367.7475] /Subtype /Link /A << /S /GoTo /D (cite.Swing) >> >> endobj +939 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [182.3002 215.1482 201.741 225.7304] +/Subtype /Link +/A << /S /GoTo /D (figure.4.10) >> +>> endobj 930 0 obj << /D [928 0 R /XYZ 74.4095 793.4011 null] >> endobj 931 0 obj << -/D [928 0 R /XYZ 74.4095 531.3748 null] +/D [928 0 R /XYZ 74.4095 736.7004 null] >> endobj 932 0 obj << -/D [928 0 R /XYZ 74.4095 505.785 null] +/D [928 0 R /XYZ 74.4095 710.9492 null] >> endobj 933 0 obj << -/D [928 0 R /XYZ 74.4095 480.8633 null] +/D [928 0 R /XYZ 74.4095 685.8661 null] >> endobj 934 0 obj << -/D [928 0 R /XYZ 74.4095 454.6055 null] +/D [928 0 R /XYZ 74.4095 659.447 null] >> endobj 935 0 obj << -/D [928 0 R /XYZ 74.4095 429.6837 null] +/D [928 0 R /XYZ 74.4095 634.3638 null] >> endobj 936 0 obj << -/D [928 0 R /XYZ 74.4095 402.9821 null] +/D [928 0 R /XYZ 74.4095 607.501 null] >> endobj 937 0 obj << -/D [928 0 R /XYZ 74.4095 360.0629 null] ->> endobj -927 0 obj << -/Font << /F63 220 0 R /F35 193 0 R /F28 173 0 R /F70 552 0 R /F69 561 0 R /F65 558 0 R /F74 555 0 R /F88 715 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -942 0 obj << -/Length 2560 -/Filter /FlateDecode ->> -stream -xڭY_o8 :R")iR4M{Mv=1c@E>p$N;hr&%*T"ӳ$a ~N0+w}gifHacyvsT/$ T8_h!Sij [Rj=wWݱ:ajLs2*eBM2[D24&M7IdđnLJWԣ0IDſuEңjjE1E#˼-vW?oL(]z\t*^2 Se2wHee<"Q9[TGuOXXP|ىO,@r?-_lu'؛'[ohw+/|K[ۢm/PeY/PqL,Jbw7'Al7x-㹨W41"/܁/Gҙ^B]x|!εopޕ uL2L32nzga`i/u*^r'hHEpD!Eepl2B-@5ed`8%B=3?rf_t*K Hu\{j$)eieHMFml=_}UXqd T0k&t h35-:EW-Z,Z`K !z2B)Uܦa^GYzE<n:*1DGZma\Ň4w8ur9]`3^?ߔ4;J̛Vy۲StnwAdk{[4O=\C^=X󳠬]r,ݮv8$z}Y.r\r|2'a5DE/d{*ohps0:4D!*K\Ny##,$: -繣vBj.m7c_NVm4d";Z\1z&%x ]&!a3r2%aIuTt|@RġI'%nzcϏ} N4غo߷Om%n8xd[:GGy 㙭[c7t[lul*wRE}.~|3cr3Vtdx$ @ubU;' ?u1136s  j1!ie2GP&<e20^ wuLCIQq%&|NC'oUy=ec${ןX~[[oV@e4`KTWM48q*JC-fӁX&Ա9/O:&/:.T( 8jdDj/SNyBH|0>G1BOa 90zczcO cI"bx8MLRUJJd6R$ !ЖqY1T!$W98ET"1_nbu|aI *'~&Y4\l`$<(%bW ܩyH:VeA6 :oyX˔V fg>ƾL+.yM=V2Do0N0' -NpN7~sKA{_K}o8dؚæ{Y(- BO `HM/t+zBNVL%iO:%mvܽwԇjU~Sڂ _j>'Q  MQ>$¦$TuaΎ9ڂM<Dt@,@9'ݱva12|ېb{߸JЂ~b蘮Ķu ΛivG0.|XmlsoU^֓->}*Gh"C $&^689ǎgvqntȮnhgIp.1&nqbn6a[` s6(GL.| IQew%ޔT,NGMXotqi 2;q0֧zo.=x g5åw='f3aC3+AHEkOA5g괶]nDu+f8!]Ϊ R9Q7Ήոmk{TcC!o">JP(ܯ=[(4:2ݖ(\q+!1endstream -endobj -941 0 obj << -/Type /Page -/Contents 942 0 R -/Resources 940 0 R -/MediaBox [0 0 595.2757 841.8898] -/Parent 912 0 R -/Annots [ 944 0 R ] ->> endobj -944 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [188.5101 680.0011 207.9509 690.5834] -/Subtype /Link -/A << /S /GoTo /D (figure.4.10) >> ->> endobj -943 0 obj << -/D [941 0 R /XYZ 74.4095 793.4011 null] +/D [928 0 R /XYZ 74.4095 564.4203 null] >> endobj 134 0 obj << -/D [941 0 R /XYZ 74.4095 771.7323 null] +/D [928 0 R /XYZ 74.4095 323.6375 null] >> endobj -940 0 obj << -/Font << /F63 220 0 R /F26 170 0 R /F28 173 0 R /F35 193 0 R >> +927 0 obj << +/Font << /F63 220 0 R /F28 173 0 R /F70 552 0 R /F69 561 0 R /F65 558 0 R /F74 555 0 R /F88 715 0 R /F26 170 0 R >> /ProcSet [ /PDF /Text ] >> endobj -947 0 obj << -/Length 1350 +943 0 obj << +/Length 1895 /Filter /FlateDecode >> stream -xڭWKoFW9Q@IkHISB.E{gh=l) Cy73#`#4Dʀ $Xg8_OeA8J_&,(M\3DcFvFOlSjU#*d<1߭7ZZG$v6$ϋ8AD J)҃`Q0#| 04JMi86*{ٻ5'E3W`bT``%Xb&&(& JX"F`;ʍb0/€%2R'A0Z3\d 9av78TDW$P#$ƫQ|ˬ*@(#QpUpQʝ|S>r'$=,ƈfK]~6 -rw& b\DeJ-UmJU2Y5%7d5:M+I{7WMa))mA`vL"ͽn MugWUkwrUZ; W5AcJ|8l#EJSRIRs#:`$4!]o~dlg`={TAa\61WI1xja(q J] 8%qRxp(gyU.Qc^ڦ.U8ߛSC8Kt@ipӆeU-e7^Vek4%V3CU am;'͏j2r>plm[xηV[v4jûɪ\_ٙ2; M0iݖyZ9KkmsRouJt_tyQ⥋YM, Nsr[ڗ?2Av`0({12ޣQ( F#Ɗ~)] +L rP0N7%SLH~{t/f*td.'H#E䙊 +.u0- Qߕ.ݚkR+ +Q$&2LKbq$VJUmr:8,@WnњϠInfneF~3BVvv* Bh1}GkAjeKַRvUz>rm} 1pZ?m_T@pSF0< +y\PK(>3Ht,#×[o3JɯK w_PX{Qq`\8AmzlÊ=u2Y;(T:='.c˅7sz?ʮѫ{ňF@WƵ7JNgau`gPa1D oUszG.څyIʺaALJ p&>[hu28}ҳ霻[7&|.OQ*G/F,ޓ +kP"$``>20ml!&*t؆MuWmWL}ѢlޝCn0׮8L;FP!D!ٲ'#FlM,֝ +ǐ`@U|0nF.Ȇ>A8`$IwZKjs6FXDwk߷ⓂGЀhַ}[A͸%ؗ}F?ӻ0',KkÑjz.~H~߿aj 7z:!D$c)' \Q0>T4 4*ɤ036*AqTeFiVk 6ڈb'^:O?=S)z |fFTUmP*u=ŸM8̤},Rn!#[J棡cQЮÁplD5LF- х=^U,9La +#M +^Sx2LX*cPGc2@~\5 |F;arMe qgӶxa?0njkw0 GmXlSAqy c[6݊&BEVC G )C9B@%mT{;>sl +ntKhGB~R_X,MչƑ+>D,Rf4$]υ^ӳ>!+endstream endobj -946 0 obj << +942 0 obj << /Type /Page -/Contents 947 0 R -/Resources 945 0 R +/Contents 943 0 R +/Resources 941 0 R /MediaBox [0 0 595.2757 841.8898] /Parent 912 0 R >> endobj -939 0 obj << +940 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/usr/home/buetow/svn/vs/trunk/LaTeX/images/serialize.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 950 0 R +/PTEX.InfoDict 945 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 508.00000000 318.00000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 951 0 R ->>/Font << /R8 952 0 R /R9 953 0 R >> +/R7 946 0 R +>>/Font << /R8 947 0 R /R9 948 0 R >> >> -/Length 954 0 R +/Length 949 0 R /Filter /FlateDecode >> stream @@ -7960,78 +7906,110 @@ x 7&!8ly/7$ȤOn'GG0zC٢8V]FM8z/۾YY4ۡ1}u T&\IP- -&0D*2tRLNԤ<1hfkAId,m;mTkT;[|*,S Z?$߼hu} ]E˼kPJPj)=iJIsVnTv_v;nU)]nuQlߎӲgIc<0?% P4v*[V0y5 CJA UXs4,P ŀjaMWÛ7sK//vendstream endobj -950 0 obj +945 0 obj << /Producer (GPL Ghostscript 8.61) /CreationDate (D:20080813231101Z00'00') /ModDate (D:20080813231101Z00'00') >> endobj -951 0 obj +946 0 obj << /Type /ExtGState /OPM 1 >> endobj -952 0 obj +947 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj -953 0 obj +948 0 obj << /BaseFont /Helvetica-Oblique /Type /Font /Subtype /Type1 >> endobj -954 0 obj +949 0 obj 1046 endobj -948 0 obj << -/D [946 0 R /XYZ 74.4095 793.4011 null] +944 0 obj << +/D [942 0 R /XYZ 74.4095 793.4011 null] >> endobj 341 0 obj << -/D [946 0 R /XYZ 237.9156 531.0825 null] +/D [942 0 R /XYZ 237.9156 250.2206 null] +>> endobj +941 0 obj << +/Font << /F63 220 0 R /F35 193 0 R /F28 173 0 R >> +/XObject << /Im41 940 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +952 0 obj << +/Length 2382 +/Filter /FlateDecode +>> +stream +xڭY_۶O5c`dOɸL<NB"/K],H:J,*?|I&E5*抮:= /ԧ#v<`cLSۇw3D_hKmѕEwc@^ ߆鵩A($ȱׇOq)pꢶEoLMoZĕD Z"atD I=sg5> ZS-fQΣrT)01XLb1MI9^{#MޫJjELOC->(69NIuwhv)?uBu9櫓`2KIoF(zdSvf~uUu.~W =ԦFz€ѣʹ4) +ɦ^Y" R<)} +uAE\ϿDh󇛈ŹJVy.V)S&Вn67?'#(y0a~8n|gq&PcLJx(I +5lClO}KZ`vMi0sCwb4tR]CN|.L8(%`1db>/EWZt4N,5IJV_~u2w{CHܘr¥!P&B2jv}`Jмѥ XE;YVmO(Zyeї;6XW$L*j,]*\LDAJm .C8]cgz in/ް`J2YJб3)q #^Y 4oDo1cG"Up8R4,XGKқoJ+''tw}p. ygu~-x +ҩ;mSʎguڥW*jrN^qEFʃ%UJ}Ƙˠ񖣵'8Eƈ;ϋ8JBļVՐpHGX2g*LcRq{R> Ɠ|Phr{5ɄWb.Y3wbi4& )9'z.7: ^LXOC]al[ z&!-+yD-rؑ+p18ϳU_ yN<NF$Tg,ȘXsΚ.2<]jlG M_[5moK^~Y=t6[.!k׮;y3TE2`0ИErT9 +v)w@$R_#dP_ b|:zUՀ ղKk]~r,8=VF \Dtg,p;2rC3H[JIs0hLc{rdϳ4o$<HaNpF%Fϴޕ# U(J;I΄Ey bOWp/F*kB> endobj +955 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.9883 171.4698 144.4292 182.052] +/Subtype /Link +/A << /S /GoTo /D (figure.4.13) >> +>> endobj +953 0 obj << +/D [951 0 R /XYZ 74.4095 793.4011 null] >> endobj -949 0 obj << -/D [946 0 R /XYZ 74.4095 471.5673 null] +954 0 obj << +/D [951 0 R /XYZ 74.4095 655.9716 null] >> endobj -945 0 obj << +950 0 obj << /Font << /F63 220 0 R /F28 173 0 R /F26 170 0 R /F79 570 0 R /F88 715 0 R >> -/XObject << /Im41 939 0 R >> /ProcSet [ /PDF /Text ] >> endobj -958 0 obj << -/Length 2445 +959 0 obj << +/Length 2093 /Filter /FlateDecode >> stream -xڝYKs8W(UE$٩$7ρ`#rH @Hɖ+4O| E|*"/R-a*ZԿݽ]"Iw $C.ϟTHbuELݕYybݿ^ lc,IďBl dP<,MSae, e?zi |s3e Ӛ5r5MH'ƭ֦7ns\JD˾kʼ*ہ ^Sֆ~_hiV| Nhܻ*/)=q"Fk3c@ϙR1!vt};,eTǃsn2Cs4Xvd3  ^@=9X<ɢz3&!5`"q-Ca(9#lʝ1_ - ^Q$4thb 'DxHī%VnG+Gcǘ? xF3ƙ.,7JǦ!,LY||_llΤf;t!@ -MES, A=ib)H)PR3) -@_uqovdrD뗮3vkp9t%}GfL AY"'2ƝW=}wy,+urƳHozӐJ a3 *aBeOa'?wxR'?cLv3 |LR tvVPMSREȠ4{n\ y!mUڧXdkr'p#9 >W 'k@zxgLBBӀBdܣ$R)FH#$4R] C/{G:A U -* LS "`z.6%| -#y{YyFhP#_xN7Hmד<z}Xj5%A*OF(sO2&\=єY=-Yw+(]]3[,N_g7TIs== TA6-~/b^{Zziz =}MoJstM5??Lt:>:g -Wh -1=EtV"a_in3N5ll) >G0CG"y/4s(Ei V~C1@%5͸ȕ!p]< v@Cz[ݘC贷0X#Z}\@`vڊ=~<;iܻYb !PkoϾX4h'=\x p#Bɐ -*%P2fs컗dxj|l,|~9ƽ9%ЕC%gn} -zw\2m?{Lx,|߱)R"XcgҼ,GT(d.x%#6endstream +xڝYs_Gj$|%.r݇ ˌ)!\{}X"Et5L_cWf04yUi\y]8j_{GӹyUv"zn*#牮 }4A5us^{fѡO865RPφ&$c Fkuˮ597BPWxdPՊ2QW)'i!H|oz6rʍ0(? gy"Z:9~21g՗.ҘdYʗ/4K +?43~#˱-07*^dƹOkQn}KS5@dؗUd#!iJ$Q=2r3*^Xt?+!rW~@safi N`$B3),fP EtΗrN㜑4MS6n'֗M=y! U\@Sg4\ly6BR2*5vyM'3`8|2>i=Fr_60Su8H Yc sO K`>͍anXī -4Z@cѓZ3I)PpWyh;JĹNa}sf;% Zj'۝`ˇ_Lj{aYhpP | _f;60#oS3659.:|fw&Z ڿs!k\\4L)qh2$Ψؕ=6_4K̡'.E;mOW֗3g+:ZrUOvWor}B6^pfAx1RP]3 yrQp/ s\Kendstream endobj -957 0 obj << +958 0 obj << /Type /Page -/Contents 958 0 R -/Resources 956 0 R +/Contents 959 0 R +/Resources 957 0 R /MediaBox [0 0 595.2757 841.8898] /Parent 912 0 R -/Annots [ 960 0 R 961 0 R 962 0 R ] +/Annots [ 961 0 R 962 0 R ] >> endobj -955 0 obj << +956 0 obj << /Type /XObject /Subtype /Form /FormType 1 @@ -8079,52 +8057,46 @@ endobj 966 0 obj 861 endobj -960 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [124.9883 616.757 144.4292 627.3392] -/Subtype /Link -/A << /S /GoTo /D (figure.4.13) >> ->> endobj 961 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [340.9151 458.1481 360.356 468.7303] +/Rect [305.2996 640.0505 324.7404 650.6327] /Subtype /Link /A << /S /GoTo /D (figure.4.11) >> >> endobj 962 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [496.9433 458.1481 516.3841 468.7303] +/Rect [433.2469 640.0505 452.6877 650.6327] /Subtype /Link /A << /S /GoTo /D (figure.4.12) >> >> endobj -959 0 obj << -/D [957 0 R /XYZ 74.4095 793.4011 null] +960 0 obj << +/D [958 0 R /XYZ 74.4095 793.4011 null] >> endobj 138 0 obj << -/D [957 0 R /XYZ 74.4095 529.6014 null] +/D [958 0 R /XYZ 74.4095 720.6301 null] >> endobj 342 0 obj << -/D [957 0 R /XYZ 301.4797 284.8597 null] +/D [958 0 R /XYZ 301.4797 464.398 null] >> endobj -956 0 obj << +957 0 obj << /Font << /F63 220 0 R /F28 173 0 R /F26 170 0 R /F35 193 0 R >> -/XObject << /Im42 955 0 R >> +/XObject << /Im42 956 0 R >> /ProcSet [ /PDF /Text ] >> endobj 971 0 obj << -/Length 2324 +/Length 2231 /Filter /FlateDecode >> stream -xڕYs6_GjddN\sIsfZ'TI\篿],@Q"%{ ,~f~$ h&U8Y/c?>]WbRrm¥x$~ӧl]0HOG)U #O|!E9Iq$"0Q() )Idž'y Y|d gro 1 ؏y,LJT^uS 忻IoQi"bY5OSCOY} -%IQN)+fVzB/x.ܢﻦ}R|[CLg.:ȽDp]OOE4|8?(RE8G)\Mgɗ0t8Ok$6]U)g=ܕv8 >{[S*):=v{w,R?S۾}hV.3xhoF]%E4AǽbeI82HQ g>wTf=qд7*oHnKVfKmU̧,f1rA$Dԕ`a:}QM\0oƶN%{JSb|Xx?B_dbpȫvnUIčm(늃PpKݥf$7.O[V兮u.p;'unRO[_*0t`5'KF@uao;㈬( R6qlMs]QزMt[ YT$ےf>7zg>E}"^zz -Í&]`xYhḦ́#J e 4/\Dq?:+uoe (I޶yU6NJxY<ispnp:i|j=c)%o?@ P E@'>$,tֿB0B!ջN !˘7k2>oP]Sf;̥/tK^K9j"q^T?U[f2an0ݤ{yeTzn&tu3W>J̒Y0j-q`SnO^ՔGObU5U.aZ^Xmfd+B15Md44[2ҋ^4TֶVMnכ -;S1sUW:VD0;A٥Z5Jʠbhƨksהl YTt]v@t² G ڸpT`}ihhA5#0tJ up<I9I@5Jz\<ļ9E9PM~P%IINޓAb:񴬳bhU[@b)X.=NggV޲n]{7%#Ql)gpݿȏۚƇEq(ґtIASI;UͱLj&r_{FEC+ F3--kB5P@(Dzʑ:K?Ϲnu@d}>Tg#gv=:w .;@qKX\r@r.Φ#Qe4DޘM-R>mh `mپE zZl?v 0^AED:& ͞ +60HYh^niH1I;5@/(LQ[ D\9/(hj#pJ,,Q9j%.;e7N#Xt9.y\H' aY3NV\r C#|H%7 s"O]MX' e2Mef!c-*9Pf)<(FMѕYSH%J|AdIYd}~̋Ug>Ÿ`?F$ Q>*M3: Q"|](gbND!&k=ٵyU6ǂC0)x<)X4e)4:*7䄎LEH%V[ĽL y LI&R AK!Ж06aĤz6l;UOhM[0dpmˆ_h +TY l5M@FhPpʊfſ_ȏZO>"9awQ KPDjc&4l4GlҲ&#Q LE9@Gu4d'1B汐%Ӭ}2yPHJ4A=. #*`哉#eQ{~1Z_5uTT C鮑AA;j{xeZ2}xL'ɅOu.ugvQvBqD%c^, P뫶45w-mYu[-`׮mNU%)rmi8Qź+׼zUɠnn/"+\*8&AL `_sb|#ݬ)6g\>ՙ.Y]hNր+yf,>jblK: Q]AT6-_Fa%렓a*Ēʣ7:҅dN}ۺ3-$¿ +NĤ% d9ؙHb,!&BSO +C NI [khȨ>SP_>չdCs=}.Ao{6GփO۶[a&ÜQCsP?q59z|/|y)IX{O<@#=Z+NG rlendstream endobj 970 0 obj << /Type /Page @@ -8184,14 +8156,14 @@ endobj 973 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [367.8739 137.4265 394.3354 145.9913] +/Rect [367.8739 291.8088 394.3354 300.3736] /Subtype /Link /A << /S /GoTo /D (cite.OOS) >> >> endobj 974 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [448.6598 137.4265 475.1214 145.9913] +/Rect [448.6598 291.8088 475.1214 300.3736] /Subtype /Link /A << /S /GoTo /D (cite.Richtlinien) >> >> endobj @@ -8199,10 +8171,10 @@ endobj /D [970 0 R /XYZ 74.4095 793.4011 null] >> endobj 343 0 obj << -/D [970 0 R /XYZ 288.1558 342.807 null] +/D [970 0 R /XYZ 288.1558 497.1893 null] >> endobj 142 0 obj << -/D [970 0 R /XYZ 74.4095 206.9702 null] +/D [970 0 R /XYZ 74.4095 361.3525 null] >> endobj 969 0 obj << /Font << /F63 220 0 R /F35 193 0 R /F28 173 0 R /F26 170 0 R >> @@ -8283,21 +8255,19 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 992 0 obj << -/Length 2302 +/Length 2655 /Filter /FlateDecode >> stream -xڥZmo"- fMvwCNM?1c"K$ww;!b˒b5E<7>7bO(eؗ[ۥ3^?=~P, Cuz#d"q/!kt-E//t-y8[??la8 u>NdA¢(ǻL#%JhOlQ[寺ٕM/Ͼ/n^vԂi]"plqqӦ_կ㞅~\Dtuu E,;B|ʬ n8gIJ8)jXp5QKKFJ QkoUjy%ǧ/z]G${`Qg4N=ם.WMZljsHizO|15}&VL1Ig0kKhZlVux<Z\v19qi5akF=؅,s2mGd+)_VsVjBZٜ&Q[iKkJ,$q,/Xlht"#)Glx+<6ê|2rc@u˷Y*H[p(zf[@z9&9Mc0S뷈r?+`Mr/n -9wƬK%Mu6/QKs],bL=ahwiޠח  PɌ~;)ZYN@v=.GK`,Fgn=ֺΚwDZͿۓ0/1cAfl]K]wv-1uYsh3+z0`l)ԎS Q!`cJإ Yv~)e> iF[kAo a)J? jz6[W:ktlWK\Gce^i$oʩMaT$Jc#.^7ڛ̚]<éT*JNy`+8dBexw . -ߙ}*GL0Jԩ -Ү1Ɇ^uhri$]ou}0TpEx4C;PR{ME3Rܯg)+ fvҕ/Y8V{5۳=C߳T\p|~?nݞ{!=o.c՚j<+~#c86Cк;4Ojph!v!4^ds-gP?uv*6 ѶAMȔ'uvpP9 -RiH,B|/5(Ҿ;CJyx'b ܇Cw"4`dϥ~ rV3[l& uAKmmhE6^/kZI<Ք٬P;M^tN 8O'QskkHBn;P!+F7Xšpi5vk[6^քS -қhW?nMUhck5Kd {}~![o(?< YD-[ȗfVX$ܥN:V|fsLS2@sUٔtxZaf8a l^\8*CU{̩kSHEIT -|^ƀ%U +^VS;YƧP;OQ/0G@:Ʊym-IG@q ۗ~72;쫅k;ÌZO*݅ͣ@^)ΔZriLqT OH-_ݔ!T;a]'?d -_mZO=)=9Y=Mvz:E>j{$kn8fU5?`gϜk0r&WMdϞ -ST ',@P#SpH 97 a_)Ĩ뙬ԷTk6IVSgJ֚&!d@y-8z*Yx>;~хv@~h~Z4Ɍ G,gT ?a_~KK'Bգكpv+=Hxrc#)ahBqݟ+5!T -_!L endstream +xڥZm۸~j1+Jt7y;>kW,$;!nib"r1|_ 'WaA;gu_nhxۥ~{ݟ*bqs}~_\R% `8K&2W,7[(Q ?W[c]ꉓ1 mN+Y.%,^j$C\델Z1W7ȏ;P>כ,$2˔x&J2/eyٸȲJ=xBHTQ㇍G&ũnZ^ hN̆jQ3,[!X^q-BJM Ugn|循tJ侤|9S鰴.~ _apV,x)#xsI >V ^ m)scn#.lO0tvB{8+Z +n[f/%{*;қcغUb챧u +z: SEE :AYfy +d&ªcoUTfݸ_R<_Nə;+'='sݔ3ǵOOå3v4d*>i0|!}øqq Vw[1?6xfζ;isk;w{ebkWCH^j#p]U^uXLm" m$\ bjHΝAs}DկE.߾B.> endobj -993 0 obj << -/D [991 0 R /XYZ 74.4095 793.4011 null] ->> endobj -990 0 obj << -/Font << /F63 220 0 R /F28 173 0 R /F35 193 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -996 0 obj << -/Length 2673 -/Filter /FlateDecode ->> -stream -xڕYKs8ϯm!A9k;L܇oa+ FsKqKZB;a+kRrUK!06W> c0(>eAEV+if{` (Z6iG1.!X.NNiTӴQĹQA ~WUK}i[ZXg\t0}0=8t @ FnT,MKiv%Yar]':Zm-͎B1OEqpPPrY?YsTRY\DhDީC;ț8B}w/M>RړYK0W$v:aDzV9&(vRVmx̊B-k6-^4cgNN5 %-d6*U[A3V[_h!/XJϽ/|HLrk)T=uD?ycCcMx Qf[<2f]>(#k/>f;"Ӥ$;aFj7l2% 0H=I> ;H$Zư48Hfx>c^?O̪?JNoל1oTw9DX͠uTg䏹$֘JW5G/Uߴ*o\eMN1s$^3d=[G dD%_'?n4˘6GBD9#n:e -x2s҈1E6BA{),9#n:j+^"HS>ty]PpS߯!"^œi!Rٸ;a.eW(B$ZD5Dh:3pA:}Y+j|Q`DvTi̿j*ZQ&CҶ۪lʕ>𵐫FQhm -stݯ XvYKkBT;+>[^jv{9a֝ꀨLjǁǢȔCI+kiH&͎LtDSį}UӯvzAܲx9C,W.m0fet&ZD"?&Nr;. =b]D%g7 Cu0EGcBA7(O1ZS]7?2טIPw;̼^;hdWmU uOhP/{ cBs6o/;\4ǻ ,ӷzuV \3'n2:e4M p@GȷSn+|p/Ud^b/ctl6%l Cܠ*jcc VFd7)z[#N¹p޾ZnmTd{<0檯f!fymD)=XJzv7:\qQ݁bs1g/ ӄ;/Um(ϠJ)9y!s=npTuycP4x?9gd95`sᐜsCٿ] %endstream -endobj -995 0 obj << -/Type /Page -/Contents 996 0 R -/Resources 994 0 R -/MediaBox [0 0 595.2757 841.8898] -/Parent 975 0 R -/Annots [ 998 0 R 999 0 R 1000 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R ] ->> endobj -998 0 obj << +994 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [295.8756 606.842 316.4464 615.4068] +/Rect [295.8756 155.3538 316.4464 163.9186] /Subtype /Link /A << /S /GoTo /D (cite.Javadoc) >> >> endobj -999 0 obj << +995 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [104.1763 588.9955 124.6124 597.4796] +/Rect [104.1763 137.5073 124.6124 145.9913] /Subtype /Link /A << /S /GoTo /D (cite.AntManual) >> >> endobj -1000 0 obj << +996 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] -/Rect [147.5458 588.9955 167.9819 597.4796] +/Rect [147.5458 137.5073 167.9819 145.9913] /Subtype /Link /A << /S /GoTo /D (cite.AntIntro) >> >> endobj +993 0 obj << +/D [991 0 R /XYZ 74.4095 793.4011 null] +>> endobj +146 0 obj << +/D [991 0 R /XYZ 74.4095 341.3283 null] +>> endobj +990 0 obj << +/Font << /F63 220 0 R /F35 193 0 R /F28 173 0 R /F26 170 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj 1002 0 obj << +/Length 2617 +/Filter /FlateDecode +>> +stream +xڍZ[sۺ~ϯ#5s}sj;'9I9i'uCIX"5'~o.xd2v It?:|{I0JgowNu[aה~.䳘$a63sN_>E.b's7<Y^4p|;Ç7'H2'.H OEA|Ǟ(9u pUznuY|S=zhs9?,J`*A=<` _g5Qyjr%٢.6:m6:p%; 9A +] +qiDHLbw{NA_5Ü2D0Ҽ+eˢ.V^=-USfzuZܹ>]Sj.L^QRZSr˛9Go"W|\nzԱ0pR9W,BJ1 +PHۯVzδHQK-݊JߧNh!=6A!M۬Vtvn5F&t;>`4LŪRo|m=>-#}m1HZ,6r}OG$]%BGi6 x5|/h}58}~܉UW߄XRZ"oW{q2AP jwpgUXgt%#8ߺY+0}F ToTT\&Ob)ƵnZ"0qX_{p =hy +کJlԔJ=< ^:ЋqǕGb=l3\оf8Ml/1TBrpT]U'YSuhdro=;j߶ uJ55\}d3JVl;Rs~ _WM/E>/ձ3o]'Uݧ*Դ0q[jj_$s%8ו营>W%>m|\ +56 +%,c PZ׺)Wm&sn[/pN34d7"_$:AXBGǡƲHVWx.taGU`u-`zH!N Dlk%e,9(oYWԄ8-w?<0!f}cOk!IbeGg%*ӭh,\bIgL#JȀŵ/Zvx*p PވU*4)y :SX%ݹPB 2[uĔR~,"!K$ď"~~B$k.M u ( h/> +g8x ;f$O(}Z)ƓD$fԟ:&[ɳ8 #?3Ӻ;Ecpzh$Y;b<-c5tWǿ]]5I%jY,X<`$F"sJR#r" +y +䧘l&4pi[ Ӵz| e~1"Rl'PvKQ2bI3,J.,He$elVOWʀ( .6[A3>֠O +Hq@De-`OVl5CkLws?pSxd.&Rf`Nb[)lLxqJ/8hHMs$sl̙VU={/ױs 8.2rm wWRSUq@I!, Ɖ;4n)  `_/%~뢥p?q> endobj +1005 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [186.6652 195.6207 353.6389 207.1459] +/Rect [186.6652 392.2744 353.6389 403.7995] /Subtype/Link/A<> >> endobj -1003 0 obj << +1006 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [148.5137 175.5472 329.8337 187.18] +/Rect [148.5137 372.432 329.8337 384.0648] /Subtype/Link/A<> >> endobj -1004 0 obj << +1007 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [139.5474 155.6889 299.3481 167.214] +/Rect [139.5474 352.8049 299.3481 364.3301] /Subtype/Link/A<> >> endobj -1005 0 obj << +1008 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [147.115 135.7693 306.9157 147.2481] +/Rect [147.115 333.1166 306.9157 344.5954] /Subtype/Link/A<> >> endobj -997 0 obj << -/D [995 0 R /XYZ 74.4095 793.4011 null] ->> endobj -146 0 obj << -/D [995 0 R /XYZ 74.4095 771.7323 null] ->> endobj -1001 0 obj << -/D [995 0 R /XYZ 74.4095 224.0275 null] ->> endobj -994 0 obj << -/Font << /F63 220 0 R /F26 170 0 R /F28 173 0 R /F35 193 0 R /F88 715 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -1011 0 obj << -/Length 1446 -/Filter /FlateDecode ->> -stream -xڕnF.w-I$HhSLɌuv>{,g,XN2;Xa$ԩ8?0VL/h1|s ѿܽҢi-Y \ #_M7v p(^nղZj;158ÿ޼"8%VkϣHM1h.}J#~ -ƈS7R\g 6 A*^FʮO-F SX*_Dy3vY:֯Go~|u |[/ -[V!j FP-戴4RR܇mX/F@7ejKB+N=vĵ hmD_V͎fJXaYV^+a嫾^궜f=ưi H[&l<>^#(#R7XCu_!lò| X5BW}Ӏ+oOCz(ꎏ4vM Q {O%Vd^?K48y^9,7-Kf-RdX^r,|quz(O^j6tn}nMKS l$ޚ89ښ˓kkbrq綄.meEKĪMz7L)VC'Wu ھ4vMh! #'zZW-NWC8w/Eb.G R%(bE_a2dt0iș -=!sׄ𙊓#v͎|9vuu I5؜Irhhi¼q) %bP_au"QH2xOKB.Jy`~I0Bp޷cP-'hnLe zjzp o^߾n_̈x^#"NGz:j4CD3%!XAJ /a9p~8@:MSM^%<4t)i` zlu8G'妜>chQwcNxos_>r\$f 67F^²l| X5W=mRY!{ׄ“ߑd"zwW[%1Yɏ1DT.9tmX/FnS-5P 65'lV3VUIA%Yc6`rTKX/FnmQeuvb|?vR(4\KX/F_߿|~Kʐzפ슙IY׍׾E9|@)m6\ ?y^%4Qša|&F ZqF%*K#NߎfZޱi>(0T> endobj -1013 0 obj << +1009 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [154.8081 756.9399 386.3397 768.4187] +/Rect [154.8081 313.3818 386.3397 324.8606] /Subtype/Link/A<> >> endobj -1014 0 obj << +1010 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [133.0648 737.459 264.173 748.9379] +/Rect [133.0648 293.6471 264.173 305.1259] /Subtype/Link/A<> >> endobj -1015 0 obj << +1011 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [163.7833 717.8242 352.2764 729.457] +/Rect [163.7833 273.7584 352.2764 285.3912] /Subtype/Link/A<> >> endobj -1016 0 obj << +1012 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [143.4568 698.4973 374.9885 709.9761] +/Rect [143.4568 254.1777 374.9885 265.6565] /Subtype/Link/A<> >> endobj -1017 0 obj << +1013 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [167.8988 679.0164 327.6995 690.4952] +/Rect [167.8988 234.4429 327.6995 245.9217] /Subtype/Link/A<> >> endobj -1018 0 obj << +1014 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [171.3148 659.3816 352.6348 671.0144] +/Rect [171.3148 214.5542 352.6348 226.187] /Subtype/Link/A<> >> endobj -1019 0 obj << +1015 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [139.9598 640.0547 471.9148 651.5335] +/Rect [139.9598 194.9735 471.9148 206.4523] /Subtype/Link/A<> >> endobj -1020 0 obj << +1016 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [147.4467 620.5738 285.7281 632.0526] +/Rect [147.4467 175.2388 285.7281 186.7176] /Subtype/Link/A<> >> endobj -1021 0 obj << +1017 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [151.5083 601.0929 289.7897 612.5718] +/Rect [151.5083 155.504 289.7897 166.9828] /Subtype/Link/A<> >> endobj -1022 0 obj << +1018 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [146.2633 581.6121 499.7376 593.0909] +/Rect [146.2633 135.7693 499.7376 147.2481] /Subtype/Link/A<> >> endobj +1003 0 obj << +/D [1001 0 R /XYZ 74.4095 793.4011 null] +>> endobj +1004 0 obj << +/D [1001 0 R /XYZ 74.4095 420.45 null] +>> endobj +1000 0 obj << +/Font << /F63 220 0 R /F28 173 0 R /F26 170 0 R /F35 193 0 R /F88 715 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1021 0 obj << +/Length 622 +/Filter /FlateDecode +>> +stream +xڕˎ@E^ WQb` !H<IDr(񐁯N[rv " YBM8н7Yx 򀎏C?o][6.@ ]CQ}ؔn(0vM'–c?5a+`_ ;zbx>8j\_ͮy1vm(@o].t]e1Zvq>va]zvC_v\Rصevk㫛^rHåoɥ5i\,,gXWUX`Ufu`707㈌Vv[W6-疸>ЇM*ed>]f%~]YI|f|W (EL4lݗsl@/ ڪ{7UX(Sendstream +endobj +1020 0 obj << +/Type /Page +/Contents 1021 0 R +/Resources 1019 0 R +/MediaBox [0 0 595.2757 841.8898] +/Parent 975 0 R +/Annots [ 1023 0 R 1024 0 R 1025 0 R 1026 0 R 1027 0 R ] +>> endobj 1023 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [147.2495 562.1312 321.3964 573.61] +/Rect [147.2495 756.9399 321.3964 768.4187] /Subtype/Link/A<> >> endobj 1024 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [134.069 542.604 344.0813 554.1291] +/Rect [134.069 737.4127 344.0813 748.9379] /Subtype/Link/A<> >> endobj 1025 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [134.069 523.1231 344.0813 534.6483] +/Rect [134.069 717.9318 344.0813 729.457] /Subtype/Link/A<> >> endobj 1026 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [133.0649 503.6886 328.731 515.1674] +/Rect [133.0649 698.4973 328.731 709.9761] /Subtype/Link/A<> >> endobj 1027 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [122.108 484.1614 354.1378 495.6865] +/Rect [122.108 678.9701 354.1378 690.4952] /Subtype/Link/A<> >> endobj -1012 0 obj << -/D [1010 0 R /XYZ 74.4095 793.4011 null] +1022 0 obj << +/D [1020 0 R /XYZ 74.4095 793.4011 null] >> endobj -1009 0 obj << +1019 0 obj << /Font << /F63 220 0 R /F35 193 0 R /F28 173 0 R /F88 715 0 R >> /ProcSet [ /PDF /Text ] >> endobj @@ -8676,13 +8644,13 @@ endobj 158 0 obj << /D [1059 0 R /XYZ 74.4095 771.7323 null] >> endobj -1008 0 obj << +999 0 obj << /D [1059 0 R /XYZ 74.4095 573.2241 null] >> endobj -1007 0 obj << +998 0 obj << /D [1059 0 R /XYZ 74.4095 548.0739 null] >> endobj -915 0 obj << +919 0 obj << /D [1059 0 R /XYZ 74.4095 522.9238 null] >> endobj 817 0 obj << @@ -8697,13 +8665,13 @@ endobj 506 0 obj << /D [1059 0 R /XYZ 74.4095 386.4687 null] >> endobj -914 0 obj << +918 0 obj << /D [1059 0 R /XYZ 74.4095 361.3186 null] >> endobj -1006 0 obj << +997 0 obj << /D [1059 0 R /XYZ 74.4095 336.1684 null] >> endobj -913 0 obj << +917 0 obj << /D [1059 0 R /XYZ 74.4095 311.0183 null] >> endobj 774 0 obj << @@ -8738,7 +8706,7 @@ endobj >> stream xڬct-vضm۶mNcvm۶tu_}?t'_0L3ru|Vz#fo`Ϭٛ~26qsvV_'נy-;Zgeb O296* v H0| olZ:s8>ŰI3*#+D"9 +5303`"^VJ5e *0.V?fvfUfs+[3RB^ afold Pt32ZٻQ^LM)ͅK`pq43fibhlg`p6wvsrtv}):8[9*?]HSJjdep5t';7տhX[Z77?:[F^֜;wn +{Eo9A 7 #S{[/9 wJ}"7H"OC<'|0Y?w+?5MGB߂03h"nifhjb 07ԿjfζVfߊ:&FZZzMHΠ"#$&Ow꿢wUr&?Js0_0<>t'_0L3ru|Vz#fo`Ϭٛ~26qsvV_'נy-;Zgeb O296* v H0| olZ:s8>ŰI3*#+D"9 f/8׈^fgT?ڛTR/y`q~ $q/ D#}tD7YމR[tvNbpldx&7 <&)W@[' " PG?4NUѢ`ݾ]=<]7EYRf~:W(ek.kÍL o*nֆ4d& `䆲%ҧ֮!oadFޣ␌n$ʭAх[wEXwN}E c9sY<=,,ES&"[с)ᐦm Is%~\Ҥ2OGMت j- OmmK9b\)p$ :_g'(Aާn0 EfW ԘBv:4Yj҈jF#y0b;^atmtm^@D-`x;3`cݬpFįkHbfPA]OB΋N2R9%S$୾ۛ#I">"S{ ތ ԰#DAs. ٛ3~a%Y=M^E0B,R넰x'C>f{E1 m[y&3Y1L6>|M7ǜUZ)<7{<I[elwr҄+\_Ydr-]\|F'/޹uӞ60 ^!Z;Ŧ§)G|:7yLq[ϪX:ՀB5j0 9'5$?7( q endstream +bŧTOu:LHafNj7QCΑ9]K,W:#00QR-3¥LF߾6,b>x'C>f{E1 m[y&3Y1L6>|M7ǜUZ)<7{<I[elwr҄+\_Ydr-]\|F'/޹uӞ60 ^!Z;Ŧ§)G|:7yLq[ϪX:ՀB5j0 9'5$?7( 6endstream endobj 715 0 obj << /Type /Font @@ -8814,14 +8782,14 @@ endobj /FirstChar 33 /LastChar 252 /Widths 1063 0 R -/BaseFont /TPQDPC+NimbusMonL-Regu +/BaseFont /SKMQEN+NimbusMonL-Regu /FontDescriptor 713 0 R >> endobj 713 0 obj << /Ascent 625 /CapHeight 557 /Descent -147 -/FontName /TPQDPC+NimbusMonL-Regu +/FontName /SKMQEN+NimbusMonL-Regu /ItalicAngle 0 /StemV 41 /XHeight 426 @@ -8837,20 +8805,19 @@ endobj /Length1 1606 /Length2 997 /Length3 532 -/Length 1820 +/Length 1819 /Filter /FlateDecode >> stream -xT{XSoWW|rDn pr $'_SO9sI) -"X T t#PtClx ऴ2 -Cmբ#/AK{_{I^~͎{(TNSKU:F7l*NU0rq1Fxn9p!EXa3 6{'|q}MU}kY/[gWdو=sY&?x·9S7%bg?^dDlp.ȯ'~_r[s71Z`tZ^eer\AYdSz>}HX;ʰXLܸ5C6v:7>MEq`ہKUK= ڕX9ť<(ڜV-7[ ry-:6Պ3G4?9QC"-*ӯ-]mUL?o {gB5g<;E-x1+Yi~m35)/&fߛۑ$kJxDZ]vBAŚpOl]!mq>_ -}finڭ呃kM/BzvU%ayћ٥ ݶҮdEW-?'0=6l몮F;RMEf$C}\gL}X혡ŇĿ>^CzrpSn.Y-]RS[)TiÞg7e NOuWZRErkMA7!;!-g/-ߜ㣶Sޘ~._++7>^yxsBS͠ISc3}P3?O$Xbzl>endstream +xT{XSoWW|rDn DmD(Lp%99' 8* BH'>,E7VЍNJ+sЪ0V-:lgy{~gN4{J$~@cc +vHN2_B'h* +>R 7B3Pkx߀GzLvr^ +@EYD RHK% ,#pHqP T4 Q4$LIs^+1<Y-q? 8f1JӀpR4%* °4"9Y>'xSl@f@uZHfAV#(PϛbB$8 (6cXœ#(XjD 9 lSw?c`~M~ȁ9HR +%6@$T2WtȚ$z>b)P%y^UWG+Jyd'dj3H2"j_C*Mr`ٿbZ4wM/u$Ǝ7G=RK$J 'PC05Ƭ% +"ͽ>>q8 L-0 _ĜCK ♏30(u,?&`Z2cY4h拀:B6/z ntҸť%ZBΟѴ4PE1aSq^:efWmiC]ػt^sȹ . +/Y޷{]?჌{nZ$.[u-zƗ8%"mnjF|S־6s>㹟_jn`Bco[gH?ayc֓KQ$ٖ9uwoK/ٱn_]]uX^}Zp.{i57hæ56/䬍L4z{3vH·v?LݔĊYV{yjUFs#)Gۿo}ϑߔFk=QjI{ᗕŚs +emMiy#brv(bfzGƮt3عi/^ZQ5`8tԮ)6qDRP*mQy]/jɠP]ТiSwF''jHkKVyt[UG(.[홐r͢٧k?N8լ4{DیgMZzf ˚0VeWPоjgf?Ie n7 ed)a ڵ[u#~{^/JBl6ߋKm]Ɋ[l% L`zl؜U]w ( H&l`)zog1CՍ79/|9J(S2}=in(꯴ꓥk; ֚P+݄$m~|sʃNyc|Qoh}_6yÓ;jnL/2Us'!c lendstream endobj 631 0 obj << /Type /Font @@ -8859,14 +8826,14 @@ endobj /FirstChar 229 /LastChar 229 /Widths 1065 0 R -/BaseFont /MDTYJO+StandardSymL +/BaseFont /OECGEG+StandardSymL /FontDescriptor 629 0 R >> endobj 629 0 obj << /Ascent 504 /CapHeight 687 /Descent -228 -/FontName /MDTYJO+StandardSymL +/FontName /OECGEG+StandardSymL /ItalicAngle 0 /StemV 0 /XHeight 400 @@ -8893,7 +8860,7 @@ stream xveP\m.4x<4tC$ hCݙ9uujww=k=KUZMUfAX98`;sgTUPp2L::)G6s tAiHVNFm ]&WVyfo:=R 5A 5` RoTr99 ( (9 @;58#`ۃG3dz9ځwr4:= Cg<-aw=j=bdj0wqbvpqppd7(f{h4̠sOo?W1L<b~lRSjƤ z8 `)awlsv u=0t&Nr)_2uҷ| `7.N=ԍ~꒡oxprh :!l?,r1}rFƟdSnW`O)y-CHN~e<>ȕ4]eg!1N<- @uk{bΤgQ#9,h%/da10<1 |J>6dp͒;Z2ҞwF^<ى߆@^Sl|:=[l+zN+CE}<\`l<ոCdDj+$"Vje pQs1(Se܇Rb29~q& aqSƿ$f/ @@ -8926,7 +8893,7 @@ b ȼ]=|ҬpbO/'΃SmoZ~w%DR^ ѧ ?O5JA}^ rӆsu/t(}*@sPljZjU6}mF6q/~ZӾ W҉6|kk&s/]KWp9]ˆ&^0;~fwx>"5bX) zVJ:&/wT9t& j[^}k,0E_Л.f|O_4xz_"M)J1-Qh$TX#fzX7g(r9"n<BqDJ*)#}B&hywAkw˕S(Q.\NweF%h/'fc] Bj3їriǾ`2Pm;/aeCnR4C&3{Y)H\=Ӈqer`1ϔ( ;u}ld~3 t5upxC=ۥ;Εlؒ::SIӭ2DVו9_gv1$͑70W[~P5}9Lj-Ρ b59\ixl~Ʒ9|b~;B:I)՘hp,2Y75E0kWH;n9i.jn;)>Ufn:e)|#3P jxQs8E$Gą/ :۽J:_ {gsdݩ–ʗ,F\ N#QpurmLX)rc-)ړnedUx-4KIiDwM(}ZGELՠ-5Q? 柔RqD_CJB#&F -iR-&, R$Qѕ1tόNݝ؊ 5x)F ɑ-~-曈o&$%mKeq@:Mr~`s/  d3s/ɑendstream +iR-&, R$Qѕ1tόNݝ؊ 5x)F ɑ-~-曈o&$%mKeq@:Mr~`s/  d3s/ɶendstream endobj 570 0 obj << /Type /Font @@ -8935,14 +8902,14 @@ endobj /FirstChar 40 /LastChar 122 /Widths 1066 0 R -/BaseFont /IBFLEI+NimbusSanL-BoldItal +/BaseFont /AVSAPU+NimbusSanL-BoldItal /FontDescriptor 568 0 R >> endobj 568 0 obj << /Ascent 722 /CapHeight 722 /Descent -217 -/FontName /IBFLEI+NimbusSanL-BoldItal +/FontName /AVSAPU+NimbusSanL-BoldItal /ItalicAngle -12 /StemV 145 /XHeight 532 @@ -8962,18 +8929,8 @@ endobj /Filter /FlateDecode >> stream -xRiXSWV"VTǃdl ` A%^%7$4RElRV e\XZWT VA$ -PjsS姝K#?X"8`GgRq`"̲eỢ"QI8"D#IiF3hA|lltBPY@1֘# -D!Q(T Q?Bf<1F@84C -T+(&PL4!Jwd5` -1п - `#@䈩X҅6^w=+d/ʅ9'!Ik\s,ܩ<Ⱥ0yp蜖M GV%uwGϭyJu,2O.h|xjaBHlx˓L؈cy#LEݛds(ou) -aUH -U1&-J0k)LޛR5LN<Ѐ_LXb2i(^K2AcJ겉WC޼]I?l֒lu:Š}n}b2f3'seyu[~Y|0;;vh܂՜mo>졘)|ScZ{PWـۖ7Vj4{z[`n/t V Տm/"'ƗW:;m{zR s},*"&yNU'[FU{cAVAܹaK|NL jHpcmlBqTxl4at֕/ݟ80a|Oy^Og/DuN»]=о -sM/<[gGRD<۴=DACʈ(0RAV%Ë%hs$=SFndqrs)3X3ʵd׊lf͹=:gz-/ֽBm?].XuvS7KUf=1:9gx2ZrމĚw]twhW/:DaI{cokX淇B[M^.{׭nO­J$OpU̓=Ǜq_Y;xcP[X jǏ.<ӗhb[x`N~ŧL={Xw|՜v7>o['=e=3B_WU}EN` Hv/iȎ|fnBvc5-P+{-=e>AATTa\xC[̬ϖg -[^5<, (?+r|')"Dp&(=endstream +xRiXSWF"VTǃdl ` iYnI7 e\@q " eAY UuEbDڀu|5Ϝ|>3 cĚJ:W6ۓJ3B ]q  `؂-R;z\1Q DDJ 8 aB(`CHX"$7sC `1G<J<+;%g4y| ؽyRчT4UL PA |sLߐ5T Δu/yHbd`BT」`KdžyT87)jCؼ;"y> @ 0ʛD߬2kk՟M@*Ĉ`@ȞcI8"ABUU)dcn(!hmP A5DbAy 2b2 $+@Las\c?9CqEnP)V+EVLF,(~N3H(no~xb ɓLBHE x۳ÿL܌ce٣z+ ;[.3r˙SZ &z2j"4cm3ri,pbk5kx&gzl:$W[R\`8Q'tBܫMҍCc3~צ5FB޾]a 7XmۭOͭ-nP hE8<nL.ꉫgmEL4s a֙uVi<&ScnzS]IZkPW%NUSمj4ָhb.ˌ 8+9 2]cqɉUZX=Ph*aoWF^r,c_ͿUsǾy,'7+ثx0fQ¨?wyĹ?? ͽG--~.,96/.գ8~"6v0cp-N~g b%۬FpX0}.yct[͍ W"l~0z|VGj 8gTgX~F_kKZ$jeD0W,od5x,GkEi{%+3KP3*zQS<.I˝dvߝy ׳wAY7Ԩr\kES}c gQ%VFC<<גX.K+*9ڞjΚF>#q^wAoM +l5yTN}ilfߔ 4B-锦wz^otͯJ=ɦ6`jySơt+_NJ{%$][y/D6thRojkW'~^,g@~f3֣70$VV}E뭭#I^eT+%N7OLULZGZB}6O7HV>Vwbnv9|&)-Ÿ/7 ]jVjqA4lǖ\KڻtrGD`v!rsm\}YOR}VdW\-3p˞OE+yÉC>E=oJ}Raa]a:$w8kyd{p؛nBFSe`ˑnΞ̌.˽aʓdmAA%ڵϻ=rlWg2‹s^*݇ċ5~(>+i-:wJ/?Q+!\ !<endstream endobj 561 0 obj << /Type /Font @@ -8982,14 +8939,14 @@ endobj /FirstChar 58 /LastChar 62 /Widths 1068 0 R -/BaseFont /SYPZRY+CMMI10 +/BaseFont /TKUXBR+CMMI10 /FontDescriptor 559 0 R >> endobj 559 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /SYPZRY+CMMI10 +/FontName /TKUXBR+CMMI10 /ItalicAngle -14.04 /StemV 72 /XHeight 431 @@ -9016,30 +8973,27 @@ stream xteT6 "!0tw RJ03P ݥtHw]C /Y{Ηsw֬7Cm=^y5H A H4֮]&TRWd -ӋⳲ*AVH0dI A6% $g(Bap=k/o?,wvrœA8P A[mLSPA@p+'PA` @(5<`@@@]6` 3;y7$\m~p)y8$ÐJՉB΍ߙP;O(wKlw0wV A߹A0dy )dgq!w0wؿ>{+O4?k# '[>|A@]n;04)<-Ic"r aUȕ'Ȓ7 `<0r.jɿլJ$6 E t ^"_-ITMz**=K̦u"2pQ)Z+ -i0[h9FF-Oē{-]\VQX3FE=s/u~^/]%vo›$>D_ :9Se{Ҷ4:>\y .F}$ճ*};ev^YtrX'63ћYq{;jv{6^7ښs7Cc'rn_eX*Jy>HCŒQD^)U`qT?=_qvMҪtgC%iYqc1 %_.v˖R"=aH ٵKEPs'/szjq`Fd*0WyT/ۆaӈ EqLWtI0Wpz Q lgr/Mg̅ ky 73_W>*ތ^5JZ+'}h[tb@jI\5#! Y4ȆOX8cbN)?%dy~zv n)X#;YC囂 =:xc봣;umѴg4ƀТL-ʧ/u{oR`fgg̓)b]BI-1 :e1[bf~,iXɨesBVrށf&NeHɯTh-Yj`$Zse6ۉzl -d'P ]L᫯b3" {Ozع~=k²tEra \~ 5|p3v+R%\$\O 8d߱9$)&  5 -`v[wsui˧ȥF;QCuWp5Xu/RՔ8 z'(ڲ ʹPу qç=滛$mҏ4U>bpQmema׶X -ժ<3uNt?*Jc'Ѧkj崓;KS7O0X*!W^|EPJҨ1`@U)Lb9[:Cp":LEq埅|OGM7(XGV -ߜŻ|j3V#51*^ W#.E-g!رAuPJ&^?Bm '@.9nz#Jn= D#<"+ktRRNuxH[ʙ79StڀZ"}]Vچn%g{mkAf 5 {y2>8uSeS0%W$,O׶ vwzt5~(&_=ywu_Ҧ i|@wg׶7!pu3J'ֳUr>חп$ˢ(ϟp&7٭EV8 0IcJ~GǎLYF;܍sЏ*uN=Cp]`mu,غ}$WK~PCqB&k|*^ȥ}XcbB*4RZK+WW$Ɣxg?GoJ)&>Jg&m#pR{bJ0,ze[elBʛ}B֕FҶ#›]W"R@<9tO%cP(Ej. %yXSҽ1n%{CUmi[eoaJvΜסBȪs Kٍ ڇʺr˸ -Z&ƶYcYg|ޙPPcm=U,r,nl_0[G]J`2Ϣ[Ԧ&SBxoLƽҟ[caXŎK^I8"SwM]"m& =2|7M6_SCqhȢ閊S8 ŬFB Yu@MkHmEBY 'z *Tҭ]))~pr ;Spê}h^pkVOunMg ei+c!T&Ev&KJ6Z" RA5^,iϵ3r+#sQ/*[=5? яqz11,m~# ;MJ2բrd {ֻFأ46^>< hFjgvȻB{0(?S? -m*)yhh,:xʯ宒hMТe֙};Vi(7qe6v~$ˊjlܜ>gg)~Mzö/|i>g6&Ai&Ӷ5l(y4~y[rS({c_oF;XKGFp>qљڞ۬ +]&8 A}daWZak7 R՞]ŲLcWu5Ȩ(I9uag<6EqSMLl6`6ю\ZOmoduWI"72F'MQ5$ߨyүKL$sT ;K2aejNāh;!Qrn\",eF׫G=DU.}xeCAc+XqR:UISgzih,"EA;݁(v2eΦ2#0jW$ ׷y)yx)3+sw6k+_ pUK|N_OUmna'1>AݹԮ -Y ):n?ش%rai$*Qg4kVq!QNc%g|:coCkjLW] %Dحu/񩥻fxصL?Nn.2ma.+K')"T͈ VB`Uu<T|H"|(wRYКggZ -hXҙ].Ql'3|44!NtsIl3:qTlWv5IiBXӢ5 JG #c>?Mz`\omz3aWN+\~owM67 r>t7^ GU^3&Xti p%ȶ `U]AꆹnefꇴnB0ّN-`BNN뭅0^Wl':ܧ@G29 -/  -:[mendstream +ӋⳲ*AVH0dI A6% $g(Bap=k/o?,wvrœA8P A[mLSPA@p+'PA` @(5<`@@@]6` 3;y7$\m~p)y8$ÐJՉB΍ߙP;O(wKlw0wV A߹A0dy )dgq!w0wؿ>{+O4?k# '[>|A@]n;0N+3#0(/Tك$oCd ?u}J{B+}BZ`UYlPXiՖ1S90댪~d蛅XALJQ9DjVc%Ck:P{IsI$`M ֏j=Ҟ% f:H(}ϕ n- ##ߖ'Tkɽى.}T.+(w{"X^x˞ƹA:XR/揗7MK"/?2 z=i[A?}m4I=<8}rZu~)θzpcFu+"^]@O-UUݸuX?@ƴl͊~Œ=_R:Aw1_5U{xsp\dç,ׂU}11'[I6ߟP]12TW'Bĺm <}5AM& :16{+~PnGҽEe~dHm|]H.Q.'[bF 2zknAX JH-;ĉ9fGW832d4 ⨡E+z YjJPZ=vmYvho\(SzIVG*gUrs8F2E0ksOsjPEFlaI'ch5o5r̥)', |bNKBBw/"(%i0sju&1oy]ʭmDšL8O&"8Vv~B>ާJcK,׍Y+oQoq]E>vQuL^/[˖n؊L:`Ufl^}6pROK%B_^Mj|A5 :)CSfp'u:I W3kao:YR*Y@9K _e?]8tԢv Tu$Zy HcGt,#TB͹uR ^KL:'刞!.EgݺFl>%]fh!ѵa>v/ FҾZ@ck11!k)-k1mt+WAWÊ)Z`hF޸@$뷡KŝbgpBY)kw˝3m0ȄM1*@C6QYju{j82A޲9.F$&j $Y$!_\6,7Pp|TY|uadGcVf2}cM_ }mѡiUVAf‡dQuO&e !ƉC9_{ V)#~pD`ʶyzZr]Aq#Z\+{cv%+tfpvO\6ViDt9=am E1e!X|rkЪ^2ԇ\"` DmXk7ZWopՑV";:.@t\}g׮4oj@Kyj/ *l_< #,Nv t7ջiY|" ')1H?M`BgV]#U<]1e+w4mv \4J!Fv-ޠB u$HV%kafa?xqֻ *z̫+YudcI#~B7Dh3r6ۀ8)A=1G%ICq6!>_!J#^iܤ<ڼV[hNuw_Vivwq"veYKքqhC\ZunZ[۟9XĚ-JPD“ШUTdu\fr' :G}%nܥL{ wIY.W俽w8vBQ`8܋J ΍uړ{fpǠQqJnR"t9 !Z9=[@*7@YwK w=[2TGζTi6wsx$Fc7!yom7+&XGIȥʠdΎ2n568|l ٓꠎn(ef)L/JMiiL̐v.`fv'`NgJ.kydUʢBCH82V3&qWA\fu!?͇7Yyܵ9ʷyM:xBʃkV~r#m~RKVC1#M5lDF)&8(=H|. ٠7G+3 E){ Hʓ4MX利I>jj`TK= 1 vt ե%(,81siy [o\_b[ߴO 6YKhf%vУD>'Yly4٣MSI,]5"wO.jnWUS3V~\n+];p2s+dX$`OI00X *DD04#cjY˃Ve?.[ GgUHc*<{P +a?_ |nAOÝE& )'6 :v^f&^Bsq*Xդi Əz%*?'ɩR8MsJJä~`"Q<]i,jHkb͈ +xV1%.GZ"҇Nf8|ٜ|ɉ6FqߘJH,0$0fQqj'[}eQ$fc*Eb9ck~;yjٰ`>=h4`DlQs_,0KEԺfb$IL._ +Jgy:ŧ1n"5IW< ^,)ޘD7=!k*6470_|L;g΂l th !_Frd9%FQCae]e\qHXdYY}c[ ,1f3>L(q 1Ҷ?[n xF76G/A-\#.cCeqq0g-jS)!7ifD^˭1gz0\DbG%/ؤ~ELݦ.Do~Նf&e፯)cnGȡ8\4dtK)bVU#!c:5H$vg= +څ?hv*.Ôge?x8{~~k3~~R١`4#G^.s(7IE>CYF(Bj? g/lb=ng%w[R͒fk Nj].^9nDR泌ahWXtԓq}G_kI.FOW⣲cshQZxŴ>L݋j~nCkT֦$9&JCYd~dJMHe&l|~`N 5¹,ISNI )aU>j4/5^:34畱?*D];q@O%k|c) /ɴڙWrZ (UlwM᭞w^8T^O|6Ki lg&NRjQV9GNQgm=]#c IQj/`af5\3eg=^D{[G)6 }t+42|;seE56nNdz?qZ&D_aM׍x3{z[ڠtiBt[q|5ЛbE)jϮBbY1ɫdT^tźt)ZFw&&q y{0GjhG~M-7+$ Xd (Goe *߀[D۶F{7̰Z٘z爈dfjW,kٟvlʼn435ܸO(3>Hڱ\ 5Z&.g"ֿɗ]3a$b~>;u)Ҭ`Mhͳ3-SU,. (gRCƙ >UC 'm9$t68*+b⤴}!Y,iS%# ߌƑOS&W=0FXӷݶz0ȫwd'ڕK.`w7Y};¦T{Ht~l9ER/ӣ*Zux,ܴzd[@au jucݲہJQJCZ7WfzHSU!^JBh+^6rS| #\? dGBՍ1endstream endobj 558 0 obj << /Type /Font @@ -9048,14 +9002,14 @@ endobj /FirstChar 48 /LastChar 58 /Widths 1069 0 R -/BaseFont /JOAFYA+NimbusRomNo9L-Regu +/BaseFont /QNMXXV+NimbusRomNo9L-Regu /FontDescriptor 556 0 R >> endobj 556 0 obj << /Ascent 678 /CapHeight 651 /Descent -216 -/FontName /JOAFYA+NimbusRomNo9L-Regu +/FontName /QNMXXV+NimbusRomNo9L-Regu /ItalicAngle 0 /StemV 85 /XHeight 450 @@ -9071,19 +9025,20 @@ endobj /Length1 807 /Length2 1423 /Length3 532 -/Length 2005 +/Length 2003 /Filter /FlateDecode >> stream -xR{8Tf4_͚B.13.#TiqĐ4Ř54F%j4"[F)]VQ1%fk/:iy_9kg=L1D&LI0g;d -mp87; A td|(S$q`n1Or bƋ  %D H(`"L0!ŎE|n @n"b -0_i &00(FN/ [_,/-~^~>i+O@.@ 55\F?ƂDv4 pH 1b(+\A6kHr ۂBgAl^P(d -1simqA0ѤDHQB/Ҍ7s .n~.0n~muSI(;#)W? km+/hk:NR -G8m9 GĖkUJ NgV'\z6}ɩ=nv?hj)k+ϲBPߩ$21㈻`1Cwٿ7~/l?QT#hvԹUmzFltrڵNPPY@__ؽ2u?JެBРlvmV{g'Sb\U"E{ͦ}}FBD)͊k#?wfo^޼QSOY}o߾zW3]Rr\gviKeHd8#@SOg"5=]Tq>nyzyxǮG]Q͵_>G%`\/*0!1oYc#O8+}hzu -893'33 ]rf- ]Π %kRr@t.3u+~?࠷.wemqDmI!ilo ǔs9irɠXsIr|qGvfn {)T0oV',4nzendstream +xR{8Tf4_͚B.a5Tn6c1$ea1f13 Ʈ(Qe$E*9*ơ]l]9uzgʀi fqq8GHa24tT.vP#sp Y p(" ,ѩ,HF1`:r-W& /` 0 : e`ɓK0⃜8`h@L2`3`(K9 D7l-LĵBPiSc f83@k95\F/fyדKeBtWVK #p*3\Ac $E ^^RL{TgU] /ָH:H`xqyB XTBnR8b1@ +Ö,lLpZ dS9 sZK(Oti|_akfv!#\@,H4:vIƤ8I;dAPQ~NiQ¦djySY>wcuYfy'!t!cHSE"//Ս;z`dJ'>(E7蝈?!3oleI(: +n.5?L[ >/bd|`d!Ved W;bQjrTUp+Ocbq䗦ZQ72T/}n+v)"8DN"tqaGXG&?5]`pYXeةpm֦9ńqVBACTs%Yc[6;DZ 8:ɨ lω<QkRy +z1DLVmw]tEϛNFs,]_e[#Do4PW]\' چzj;Lӕm:J/h*2m^ߙ4_Ip^w0/xJ`2 RGqjۇ9vNnN;q:M /[R-ʛ- v7W"UOL+hyGoyWx[ +Mk6*뜑ή-|-n:ݕ{T6Sgj%jS3}5w+imfC wYV23n^0)XJZs鋹[Zivey)q{~m4pR]^1& +aoG'C|]3P+6;}1"h|57gG| +ܾi}qg=%ua~}GLQiJi{apߠM9uxi4t-إpMlq[;=<;ыȊ'3'QۮUES0NVu7oЋƧY}\ 9sH`.3r,v_Snٰ&]'G*fÀ9>1p1=Mk<8AgwvfnvfkN!q`ǤY)}I'Xu5A9lpam"hN{ScL:X/?[L;=}! ~lL|(j y5kfj۳vM >#ٱWDwkB9{ >41Pk+ҎF) +R5ugT?1D^jFmwj)іq'9#;pFeQ*4aϸ9$ bH7PF@BliV7GgO_ɭ9NC萵! +tޠ$S[1Mcc4~Ds6]YQ˹|l܎)=iwްLym+P+OnV %P4HU }DnRo79 Հ91?|P3A* P9Ѩ? +endstream endobj 555 0 obj << /Type /Font @@ -9092,14 +9047,14 @@ endobj /FirstChar 40 /LastChar 61 /Widths 1071 0 R -/BaseFont /JTPTIX+CMR10 +/BaseFont /PJJKOX+CMR10 /FontDescriptor 553 0 R >> endobj 553 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /JTPTIX+CMR10 +/FontName /PJJKOX+CMR10 /ItalicAngle 0 /StemV 69 /XHeight 431 @@ -9126,7 +9081,7 @@ stream xwePݲ. < |Afap44'Kp wާ{ϟs[wީwꪗFU]b\e:^"Ȯr1~,zz)ߘ ¢HAn05&3 +0hG[ ; @JEUONY$"T@E9dXB`s4GG. G) 4=]́ ك G <89YNq'!( ha=B0xF<֦߱A0bhi1w]8;`rڙ=~$@pr2YiοMP;?ސ?VwYr`q<4?ƶ8k s@L{1 S  `TCg*sD7Ho"Nܿk_.>ZN3Ac -<"3~jjsn+;W գBme@@ U`ijxx@ |>:qq Ӵۂ[GTL?ƪ]tIG bo*II+[@#x%"L0+_wC,~lz ;`c@ssDxIz6n@h~fNo'!xE7 "܊;1 (|̱PO{Ώ wT,w`'BƘx+_ p=evy VDNͅDWx͐צw R ֋b(Ȃ@R{&a֪ +<"3~jjsn+;W գBme@@ U`ijxx@ |>:qq Ӵۂ[GT,L?ƪ]tIG bo*II+[@#x%"L0+_wC,~lz ;`c@ssDxIz6n@h~fNo'!xE7 "܊;1 (|̱PO{Ώ wT,w`'BƘx+_ p=evy VDNͅDWx͐צw R ֋b(Ȃ@R{&a֪ X8Pr샂`&I~AN,h?U >k!2D1Fjl>7 ;2E бSh|grg>+3~:~ikU2;*]k54I rmgm7@3Oe) A%7o7Ѧjt_+{B")Ih$D27\՝Ăf[쾁ԍW DˮIm}7L>I!@ymj;TsRc!ܤ Ji|[Fo5Qg_43=@OIϚy[ԕzTzoLQqnCZJn2R84=4(|R!Vo=/;*%Bx9v.nPOv/ѳ=:$N tTVזjY"uoS*f2()]aWb[\'g}$^Mg R9*ov?yGYluA?~s_|*dGP߁,vf,WdJ8,33 تCU7;KA{Tmc8[Jux> 8I$,:NXms-_gk P)q @@ -9147,7 +9102,7 @@ X mjއ!S_"[}we)BıN7kK/v^3iVVE+UDKp?^k|/7'ɤr)fKnli\ڝ,v6R!D׎ohhMJ*l tp$o ^&cmsi ד}ȺiIh6XC #vP6m8MQHǹfAjɽnvTFMau |?Ô\D]h&,.XkVd:;- ,9cx DocޠK/n [Z)4Eq8v=kkwTUd 4 46OK0MI4DFJEfﯳz+X`*ě+4wÙٌ"= T=(=3;: 퍧[O%> endobj 550 0 obj << /Ascent 668 /CapHeight 668 /Descent -193 -/FontName /MUPLPW+NimbusRomNo9L-ReguItal +/FontName /QNCKKM+NimbusRomNo9L-ReguItal /ItalicAngle -15.5 /StemV 78 /XHeight 441 @@ -9185,7 +9140,7 @@ endobj stream x{UX]ݲ%!%8l`cٸwwOw瞾[k=9kT㢡Pb[eNVvA*MIEh1wxQhhAtJ! 9䏏;@`dff#U rԁ$ tw:Aܝ@@+M&S ;{ll!zM=&&Y8D@7v+ -9OV[X  @؜́ln֬N@ßbe4h1o?B '۳rwfq+ _6 .^lv re6wu;܀ kquܡpp@ϑh9`õ;9x]`TіaO$- ?Ogo=Vus/J'k0@-my]*fO~U0d kyLП!+CI4q(RKerqDž/.dppryAK?nômAN@7?7t2N`+ @ gD]lGOO?֠?%^@KEP]Ch}' ;97JOVUrb7iy5`U`e<$Yð`䣈NXUΑg.b 2 +9OV[X  @؜́ln֬N@ßbe4h1o?B '۳rwfq+ _6 .^lv re6wu;܀ kquܡpp@ϑh9`õ;9x]`SSWVeO$- ?Ogo=Vus/J'k0@-my]*fO~U0d kyLП!+CI4q(RKerqDž/.dppryAK?nômAN@7?7t2N`+ @ gD]lGOO?֠?%^@KEP]Ch}' ;97JOVUrb7iy5`U`e<$Yð`䣈NXUΑg.b 2 STЈJ} !UU#.2=;h"̏HGd*>)aWwc-,I C4[ ||~s.Q2v^cnԣ#ɔS~pBTI9P_Q|W[3 -S_D;>x?@O0~//#,(ʩQ[bTBCvQB&nG7);0J֦ תetF)6Ĝ;KT@ ёp 2\dBebmN\Nņ7u1!DCSVh%Aw+*b/wF:!aQ^OxEX:Yk0lQ ٺ-{sDRѳ6Bp @@ -9229,7 +9184,7 @@ H ;.؉{&* <d Z+qؒY[%N{c&(ChKeΩ?%g4 qɗ" F傩/dvȇ6;qʻD;c^]̻,WCss׬zBTKNR;#,45Wĥ'q(Ń8BKꝹ:`{&~&8saU:oc"}E( @|wyMcM P+;O,>a3En{v?u\ɢpaqhGi4C,GED "}ũ{&mBk %2X0akmK&K7"!'_ q*'̑*,悤+`αt5蹢B NS=ʾigݫV -Q]R8S{?$^cdrEGzCɊ?Qg7}&BbvD#bA%Mpo(2$*Ws> endobj 218 0 obj << /Ascent 712 /CapHeight 712 /Descent -213 -/FontName /HFBMTE+NimbusSanL-ReguItal +/FontName /PHWPLN+NimbusSanL-ReguItal /ItalicAngle -12 /StemV 88 /XHeight 523 @@ -9265,10 +9220,10 @@ endobj /Filter /FlateDecode >> stream -xR}\uO$9Pp-b| *d vnncyH K(>}4& %|KD@Ogէ>y}{KQJ<"/XKA\,8|~# AX"̠@b7$9|@4a$1iq@&ײ=PDJYd Ѓ\Fp``%&H_RE33^8gEQ 0\R,Uo<Ƞф".-h 9 N949&NcA;8A4*#xG,A TF8 7 D}4& %|KD@Ogէ>y}{KQJ<"/XKA\,8|~# AX"̠@b7$9|@4a$1iq@&ײ=PDJYd Ѓ\Fp``%&H_RE33^8gEQ 0\R,Uo<Ƞф".-h 9 N949&NcA;8A4*#xG,A TF8 7 DRSgZ[QhtCAE׻NeOP Fݹa.oo'NUӽD=kLŧC._S˼t8ط69;xI*asmi= -n>{:H+!Ŷ=]vW>gԦysS7(KklOJ#VYօ4wK=(>X?#+6B!?<̚Y)4{YԞWk|D^X[>M,f:ĸ5o|) . K9*_zo7<)8*Qy乧'XgcFߑr,xUNYg~Wg.2zG˪S&'ѽҬC7Ft|;*εĞS C\*T}cu,)I혻%pF   P EXcendstream +n>{:H+!Ŷ=]vW>gԦysS7(KklOJ#VYօ4wK=(>X?#+6B!?<̚Y)4{YԞWk|D^X[>M,f:ĸ5o|) . K9*_zo7<)8*Qy乧'XgcFߑr,xUNYg~Wg.2zG˪S&'ѽҬC7Ft|;*εĞS C\*T}cu,)I혻%pF   P EXcendstream endobj 193 0 obj << /Type /Font @@ -9277,14 +9232,14 @@ endobj /FirstChar 0 /LastChar 48 /Widths 1075 0 R -/BaseFont /ZWXAFE+CMSY10 +/BaseFont /OWOMEZ+CMSY10 /FontDescriptor 191 0 R >> endobj 191 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 -/FontName /ZWXAFE+CMSY10 +/FontName /OWOMEZ+CMSY10 /ItalicAngle -14.035 /StemV 85 /XHeight 431 @@ -9311,7 +9266,7 @@ stream x{Ex]Y%f&K̒E%fbffdh1{wf5&sƉ<qE-LII(aobbcf(X81]\FTTj Q'NWp9Yl|Y9hPr(A@'K?-`c 4U:ۻ8f:ϪQ{'Ks V]E_6^^^?@g w IOӦ*Z@k98Ę͘ ?ۙEfbN@?Cynvnv^63H.,v.@iJBWp_%< -ٙx9;̌l>f?/g#W ߁C`cZ@?/?aF 'Kw.+3+++?jjogt#[ EBRS^KggJ&6N'?N:-dd_}Rq\N _di:z\\?ZT?z8)bcF6 < #Ka;sd,a4UX.Po!P/oY ڙ[Iq;{SK;s*+L 6qqr#ϻ؛Yit ؛[5w= 1p r?v!DgP ,#4i!P ) O(f+ !ApYv AB4^ZމLjYՃ64j=ѱ" !IUQ +ٙx9;̌l>f?/g#W ߁C`cZ@?/?aF 'Kw.+3+++?jjogt#[ EIGUZTggJ&6N'?N:-dd_}Rq\N _di:z\\?ZT?z8)bcF6 < #Ka;sd,a4UX.Po!P/oY ڙ[Iq;{SK;s*+L 6qqr#ϻ؛Yit ؛[5w= 1p r?v!DgP ,#4i!P ) O(f+ !ApYv AB4^ZމLjYՃ64j=ѱ" !IUQ /Kॢ2xU`XLo3b#fM7ʐ2R$ژPgŢ~ܡKCaqպjq`4\c6VwmQX]fyɠ+GNz_isWy;vse]5ζGM*Q->ݟ_,k Y4aKMXJ*uQ9?;&?[\j ڟ3<X:`gkce@TU] giM4ZHo30o X]8@^ۚ\IjݬF)3ñ%*֒Z-e?[a~Ɯ6͌@Dݡ,y\t~&3d|6 sʹs+'K\/hV^kHĄ 7kt ={C@e駲jlfB6u_^}NO !ՖNzܥ-gı+3BI oR#/ ˆ(EOmrJSkTx~Rt˸᪄ t`#Փ;uXBN>jMgRqo Ip9C[{ -\9.`^V}1|'h5rFr:q,endstream +\9.`^V}1|'h5rFr:B4endstream endobj 173 0 obj << /Type /Font @@ -9377,14 +9332,14 @@ endobj /FirstChar 2 /LastChar 252 /Widths 1076 0 R -/BaseFont /FGWMXQ+NimbusSanL-Regu +/BaseFont /PZSICY+NimbusSanL-Regu /FontDescriptor 171 0 R >> endobj 171 0 obj << /Ascent 712 /CapHeight 712 /Descent -213 -/FontName /FGWMXQ+NimbusSanL-Regu +/FontName /PZSICY+NimbusSanL-Regu /ItalicAngle 0 /StemV 85 /XHeight 523 @@ -9405,7 +9360,7 @@ endobj >> stream xweP]-!!@pwp!Hpww~3M}w~̯[z{^wCA&D/`dmgf`Ȃ, JVFw#;Pdm%o@C  dml21P(}{wA&VG%⿽Q ؛ @HN^CBV @-&Z- C4hX @fx`!}h hg ߿ 0N_~|[v {{Vya7շ+7XGY:U߾ww> - :0m,s؁YDüc՝ OX8-Ysڿ6Y!15(Vf؍lA ; }#k+ gQ=%2 "L?yWhQ Y}xai_wo p/5P {Lޥ`b`9Ac}mW2YZF=3;MAV5+.ѿ2oތrJrbtz%;C?a + :0m,s؁YDüc՝ OX8-Ysڿ6Y!15(Vf؍lA ; }#k+ gQ=%2 "L?yWhQ Y}xai_wo p/5P {Lޥ`b`9Ac}mW2YZF=3;MAV5+.ѿ2oތ"tz%;C?a Z;\9XL_k}{;@h&K+26kNG?  뿇t"-Zr%$Wf kuw2C(f{[wx$s=W1Ԏs699yٖıftecPpx3|H:R u=^ʤ1 G1|(e_=vtG4l1+0(_ʷ1vb]f͓sX26c=4 d7^טWU_DJJbJ:z@=LeZ=o8nKg^V&vTL1{v !nnM"Fͬi.5&s̽D5gY<#m @@ -9454,7 +9409,7 @@ X 1ue}JڗYS/؉¡Eоc2xړ#_6v!gXrB"ǎԺD{i'~n#AbmkpD[aR#$ B=p {-.M 5,cmHX;#f0 ӜzN;Uw$ᅂnt6Mu~@aq27''&JAwWf/Ʃ^_;1ޙ$XG3UudTx q:9]?qH`|j+]I;zgPr{/Vз (i1Q~)M#-|bP8q$5 Of~mAX&ZnRǽyw:%kXWmNg.`N0 -+a>ֶ=>*o]J*S$꬟vinXĕs~/nE"> endobj 168 0 obj << /Ascent 722 /CapHeight 722 /Descent -217 -/FontName /OPSOGR+NimbusSanL-Bold +/FontName /YADDET+NimbusSanL-Bold /ItalicAngle 0 /StemV 141 /XHeight 532 @@ -9564,13 +9519,13 @@ endobj /Type /Pages /Count 6 /Parent 1080 0 R -/Kids [900 0 R 917 0 R 928 0 R 941 0 R 946 0 R 957 0 R] +/Kids [902 0 R 921 0 R 928 0 R 942 0 R 951 0 R 958 0 R] >> endobj 975 0 obj << /Type /Pages /Count 6 /Parent 1080 0 R -/Kids [970 0 R 983 0 R 991 0 R 995 0 R 1010 0 R 1029 0 R] +/Kids [970 0 R 983 0 R 991 0 R 1001 0 R 1020 0 R 1029 0 R] >> endobj 1037 0 obj << /Type /Pages @@ -9885,7 +9840,7 @@ endobj /Count -2 >> endobj 1083 0 obj << -/Names [(API) 1043 0 R (BSD) 1044 0 R (Doc-Start) 167 0 R (GIMP) 1045 0 R (GNU) 1046 0 R (GUI) 1047 0 R (GVim) 1048 0 R (HTTPS) 1049 0 R (Item.1) 687 0 R (Item.10) 894 0 R (Item.11) 895 0 R (Item.12) 896 0 R (Item.13) 897 0 R (Item.14) 903 0 R (Item.15) 904 0 R (Item.16) 931 0 R (Item.17) 932 0 R (Item.18) 933 0 R (Item.19) 934 0 R (Item.2) 688 0 R (Item.20) 935 0 R (Item.21) 936 0 R (Item.22) 937 0 R (Item.3) 693 0 R (Item.4) 694 0 R (Item.5) 695 0 R (Item.6) 781 0 R (Item.7) 782 0 R (Item.8) 792 0 R (Item.9) 893 0 R (JRE) 1050 0 R (NID) 1051 0 R (PDF) 1052 0 R (PID) 1053 0 R (RTT) 1054 0 R (SDK) 1055 0 R (SVN) 1056 0 R (VS) 1057 0 R (appendix.A) 154 0 R (appendix.B) 158 0 R (chapter*.1) 202 0 R (chapter*.2) 254 0 R (chapter*.3) 349 0 R (chapter.1) 6 0 R (chapter.2) 18 0 R (chapter.3) 54 0 R (chapter.4) 110 0 R (chapter.5) 150 0 R (cite.Algorithms) 817 0 R (cite.AlgorithmsC) 818 0 R (cite.AntIntro) 1008 0 R (cite.AntManual) 1007 0 R (cite.Games) 915 0 R (cite.Java2DAPI) 914 0 R (cite.Java2d) 913 0 R (cite.Javadoc) 1006 0 R (cite.M32) 1038 0 R (cite.OOS) 980 0 R (cite.Regexp) 506 0 R (cite.Richtlinien) 981 0 R (cite.Swing) 774 0 R (cite.Tanenbaum) 393 0 R (cite.Vorlesung) 577 0 R (figure.1.1) 281 0 R (figure.1.2) 282 0 R (figure.2.1) 283 0 R (figure.2.10) 292 0 R (figure.2.11) 293 0 R (figure.2.12) 294 0 R (figure.2.13) 295 0 R (figure.2.14) 296 0 R (figure.2.15) 297 0 R (figure.2.2) 284 0 R (figure.2.3) 285 0 R (figure.2.4) 286 0 R (figure.2.5) 287 0 R (figure.2.6) 288 0 R (figure.2.7) 289 0 R (figure.2.8) 290 0 R (figure.2.9) 291 0 R (figure.3.1) 298 0 R (figure.3.10) 328 0 R (figure.3.11) 329 0 R (figure.3.12) 330 0 R (figure.3.13) 331 0 R (figure.3.2) 299 0 R (figure.3.3) 300 0 R (figure.3.4) 301 0 R (figure.3.5) 302 0 R (figure.3.6) 303 0 R (figure.3.7) 304 0 R (figure.3.8) 305 0 R (figure.3.9) 306 0 R (figure.4.1) 332 0 R (figure.4.10) 341 0 R (figure.4.11) 342 0 R (figure.4.12) 343 0 R (figure.4.13) 344 0 R (figure.4.2) 333 0 R (figure.4.3) 334 0 R (figure.4.4) 335 0 R (figure.4.5) 336 0 R (figure.4.6) 337 0 R (figure.4.7) 338 0 R (figure.4.8) 339 0 R (figure.4.9) 340 0 R (page.1) 166 0 R (page.10) 310 0 R (page.11) 348 0 R (page.12) 391 0 R (page.13) 398 0 R (page.14) 412 0 R (page.15) 421 0 R (page.16) 429 0 R (page.17) 437 0 R (page.18) 445 0 R (page.19) 453 0 R (page.2) 178 0 R (page.20) 460 0 R (page.21) 469 0 R (page.22) 477 0 R (page.23) 486 0 R (page.24) 495 0 R (page.25) 502 0 R (page.26) 511 0 R (page.27) 516 0 R (page.28) 523 0 R (page.29) 530 0 R (page.3) 182 0 R (page.30) 536 0 R (page.31) 540 0 R (page.32) 545 0 R (page.33) 549 0 R (page.34) 567 0 R (page.35) 574 0 R (page.36) 583 0 R (page.37) 590 0 R (page.38) 601 0 R (page.39) 608 0 R (page.4) 186 0 R (page.40) 614 0 R (page.41) 619 0 R (page.42) 628 0 R (page.43) 636 0 R (page.44) 644 0 R (page.45) 652 0 R (page.46) 661 0 R (page.47) 668 0 R (page.48) 672 0 R (page.49) 677 0 R (page.5) 190 0 R (page.50) 682 0 R (page.51) 692 0 R (page.52) 700 0 R (page.53) 705 0 R (page.54) 711 0 R (page.55) 720 0 R (page.56) 730 0 R (page.57) 735 0 R (page.58) 743 0 R (page.59) 751 0 R (page.6) 197 0 R (page.60) 757 0 R (page.61) 764 0 R (page.62) 779 0 R (page.63) 791 0 R (page.64) 797 0 R (page.65) 802 0 R (page.66) 808 0 R (page.67) 823 0 R (page.68) 835 0 R (page.69) 844 0 R (page.7) 201 0 R (page.70) 851 0 R (page.71) 860 0 R (page.72) 864 0 R (page.73) 868 0 R (page.74) 873 0 R (page.75) 878 0 R (page.76) 883 0 R (page.77) 887 0 R (page.78) 891 0 R (page.79) 902 0 R (page.8) 236 0 R (page.80) 919 0 R (page.81) 930 0 R (page.82) 943 0 R (page.83) 948 0 R (page.84) 959 0 R (page.85) 972 0 R (page.86) 985 0 R (page.87) 993 0 R (page.88) 997 0 R (page.89) 1012 0 R (page.9) 253 0 R (page.90) 1031 0 R (page.91) 1035 0 R (page.92) 1042 0 R (page.93) 1061 0 R (section*.10) 439 0 R (section*.11) 446 0 R (section*.12) 454 0 R (section*.13) 462 0 R (section*.14) 470 0 R (section*.15) 487 0 R (section*.16) 496 0 R (section*.17) 498 0 R (section*.18) 503 0 R (section*.19) 512 0 R (section*.20) 517 0 R (section*.21) 518 0 R (section*.22) 524 0 R (section*.23) 525 0 R (section*.24) 609 0 R (section*.25) 639 0 R (section*.26) 647 0 R (section*.27) 662 0 R (section*.28) 696 0 R (section*.29) 737 0 R (section*.30) 758 0 R (section*.31) 798 0 R (section*.32) 845 0 R (section*.33) 874 0 R (section*.34) 892 0 R (section*.35) 922 0 R (section*.36) 949 0 R (section*.37) 1001 0 R (section*.4) 399 0 R (section*.5) 401 0 R (section*.6) 402 0 R (section*.7) 413 0 R (section*.8) 422 0 R (section*.9) 423 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.2.1) 22 0 R (section.2.2) 26 0 R (section.2.3) 30 0 R (section.2.4) 34 0 R (section.3.1) 58 0 R (section.3.10) 94 0 R (section.3.11) 98 0 R (section.3.2) 62 0 R (section.3.3) 66 0 R (section.3.4) 70 0 R (section.3.5) 74 0 R (section.3.6) 78 0 R (section.3.7) 82 0 R (section.3.8) 86 0 R (section.3.9) 90 0 R (section.4.1) 114 0 R (section.4.2) 118 0 R (section.4.3) 122 0 R (section.4.4) 126 0 R (section.4.5) 130 0 R (section.4.6) 134 0 R (section.4.7) 138 0 R (section.4.8) 142 0 R (section.4.9) 146 0 R (subsection.2.4.1) 38 0 R (subsection.2.4.2) 42 0 R (subsection.2.4.3) 46 0 R (subsection.2.4.4) 50 0 R (subsection.3.11.1) 102 0 R (subsection.3.11.2) 106 0 R (table.2.1) 369 0 R (table.2.2) 370 0 R (table.2.3) 371 0 R (table.3.1) 372 0 R (table.3.10) 381 0 R (table.3.11) 382 0 R (table.3.12) 383 0 R (table.3.13) 384 0 R (table.3.14) 385 0 R (table.3.2) 373 0 R (table.3.3) 374 0 R (table.3.4) 375 0 R (table.3.5) 376 0 R (table.3.6) 377 0 R (table.3.7) 378 0 R (table.3.8) 379 0 R (table.3.9) 380 0 R (table.4.1) 386 0 R (table.4.2) 387 0 R] +/Names [(API) 1043 0 R (BSD) 1044 0 R (Doc-Start) 167 0 R (GIMP) 1045 0 R (GNU) 1046 0 R (GUI) 1047 0 R (GVim) 1048 0 R (HTTPS) 1049 0 R (Item.1) 687 0 R (Item.10) 894 0 R (Item.11) 895 0 R (Item.12) 896 0 R (Item.13) 897 0 R (Item.14) 898 0 R (Item.15) 899 0 R (Item.16) 931 0 R (Item.17) 932 0 R (Item.18) 933 0 R (Item.19) 934 0 R (Item.2) 688 0 R (Item.20) 935 0 R (Item.21) 936 0 R (Item.22) 937 0 R (Item.3) 693 0 R (Item.4) 694 0 R (Item.5) 695 0 R (Item.6) 781 0 R (Item.7) 782 0 R (Item.8) 792 0 R (Item.9) 893 0 R (JRE) 1050 0 R (NID) 1051 0 R (PDF) 1052 0 R (PID) 1053 0 R (RTT) 1054 0 R (SDK) 1055 0 R (SVN) 1056 0 R (VS) 1057 0 R (appendix.A) 154 0 R (appendix.B) 158 0 R (chapter*.1) 202 0 R (chapter*.2) 254 0 R (chapter*.3) 349 0 R (chapter.1) 6 0 R (chapter.2) 18 0 R (chapter.3) 54 0 R (chapter.4) 110 0 R (chapter.5) 150 0 R (cite.Algorithms) 817 0 R (cite.AlgorithmsC) 818 0 R (cite.AntIntro) 999 0 R (cite.AntManual) 998 0 R (cite.Games) 919 0 R (cite.Java2DAPI) 918 0 R (cite.Java2d) 917 0 R (cite.Javadoc) 997 0 R (cite.M32) 1038 0 R (cite.OOS) 980 0 R (cite.Regexp) 506 0 R (cite.Richtlinien) 981 0 R (cite.Swing) 774 0 R (cite.Tanenbaum) 393 0 R (cite.Vorlesung) 577 0 R (figure.1.1) 281 0 R (figure.1.2) 282 0 R (figure.2.1) 283 0 R (figure.2.10) 292 0 R (figure.2.11) 293 0 R (figure.2.12) 294 0 R (figure.2.13) 295 0 R (figure.2.14) 296 0 R (figure.2.15) 297 0 R (figure.2.2) 284 0 R (figure.2.3) 285 0 R (figure.2.4) 286 0 R (figure.2.5) 287 0 R (figure.2.6) 288 0 R (figure.2.7) 289 0 R (figure.2.8) 290 0 R (figure.2.9) 291 0 R (figure.3.1) 298 0 R (figure.3.10) 328 0 R (figure.3.11) 329 0 R (figure.3.12) 330 0 R (figure.3.13) 331 0 R (figure.3.2) 299 0 R (figure.3.3) 300 0 R (figure.3.4) 301 0 R (figure.3.5) 302 0 R (figure.3.6) 303 0 R (figure.3.7) 304 0 R (figure.3.8) 305 0 R (figure.3.9) 306 0 R (figure.4.1) 332 0 R (figure.4.10) 341 0 R (figure.4.11) 342 0 R (figure.4.12) 343 0 R (figure.4.13) 344 0 R (figure.4.2) 333 0 R (figure.4.3) 334 0 R (figure.4.4) 335 0 R (figure.4.5) 336 0 R (figure.4.6) 337 0 R (figure.4.7) 338 0 R (figure.4.8) 339 0 R (figure.4.9) 340 0 R (page.1) 166 0 R (page.10) 310 0 R (page.11) 348 0 R (page.12) 391 0 R (page.13) 398 0 R (page.14) 412 0 R (page.15) 421 0 R (page.16) 429 0 R (page.17) 437 0 R (page.18) 445 0 R (page.19) 453 0 R (page.2) 178 0 R (page.20) 460 0 R (page.21) 469 0 R (page.22) 477 0 R (page.23) 486 0 R (page.24) 495 0 R (page.25) 502 0 R (page.26) 511 0 R (page.27) 516 0 R (page.28) 523 0 R (page.29) 530 0 R (page.3) 182 0 R (page.30) 536 0 R (page.31) 540 0 R (page.32) 545 0 R (page.33) 549 0 R (page.34) 567 0 R (page.35) 574 0 R (page.36) 583 0 R (page.37) 590 0 R (page.38) 601 0 R (page.39) 608 0 R (page.4) 186 0 R (page.40) 614 0 R (page.41) 619 0 R (page.42) 628 0 R (page.43) 636 0 R (page.44) 644 0 R (page.45) 652 0 R (page.46) 661 0 R (page.47) 668 0 R (page.48) 672 0 R (page.49) 677 0 R (page.5) 190 0 R (page.50) 682 0 R (page.51) 692 0 R (page.52) 700 0 R (page.53) 705 0 R (page.54) 711 0 R (page.55) 720 0 R (page.56) 730 0 R (page.57) 735 0 R (page.58) 743 0 R (page.59) 751 0 R (page.6) 197 0 R (page.60) 757 0 R (page.61) 764 0 R (page.62) 779 0 R (page.63) 791 0 R (page.64) 797 0 R (page.65) 802 0 R (page.66) 808 0 R (page.67) 823 0 R (page.68) 835 0 R (page.69) 844 0 R (page.7) 201 0 R (page.70) 851 0 R (page.71) 860 0 R (page.72) 864 0 R (page.73) 868 0 R (page.74) 873 0 R (page.75) 878 0 R (page.76) 883 0 R (page.77) 887 0 R (page.78) 891 0 R (page.79) 904 0 R (page.8) 236 0 R (page.80) 923 0 R (page.81) 930 0 R (page.82) 944 0 R (page.83) 953 0 R (page.84) 960 0 R (page.85) 972 0 R (page.86) 985 0 R (page.87) 993 0 R (page.88) 1003 0 R (page.89) 1022 0 R (page.9) 253 0 R (page.90) 1031 0 R (page.91) 1035 0 R (page.92) 1042 0 R (page.93) 1061 0 R (section*.10) 439 0 R (section*.11) 446 0 R (section*.12) 454 0 R (section*.13) 462 0 R (section*.14) 470 0 R (section*.15) 487 0 R (section*.16) 496 0 R (section*.17) 498 0 R (section*.18) 503 0 R (section*.19) 512 0 R (section*.20) 517 0 R (section*.21) 518 0 R (section*.22) 524 0 R (section*.23) 525 0 R (section*.24) 609 0 R (section*.25) 639 0 R (section*.26) 647 0 R (section*.27) 662 0 R (section*.28) 696 0 R (section*.29) 737 0 R (section*.30) 758 0 R (section*.31) 798 0 R (section*.32) 845 0 R (section*.33) 874 0 R (section*.34) 892 0 R (section*.35) 926 0 R (section*.36) 954 0 R (section*.37) 1004 0 R (section*.4) 399 0 R (section*.5) 401 0 R (section*.6) 402 0 R (section*.7) 413 0 R (section*.8) 422 0 R (section*.9) 423 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.2.1) 22 0 R (section.2.2) 26 0 R (section.2.3) 30 0 R (section.2.4) 34 0 R (section.3.1) 58 0 R (section.3.10) 94 0 R (section.3.11) 98 0 R (section.3.2) 62 0 R (section.3.3) 66 0 R (section.3.4) 70 0 R (section.3.5) 74 0 R (section.3.6) 78 0 R (section.3.7) 82 0 R (section.3.8) 86 0 R (section.3.9) 90 0 R (section.4.1) 114 0 R (section.4.2) 118 0 R (section.4.3) 122 0 R (section.4.4) 126 0 R (section.4.5) 130 0 R (section.4.6) 134 0 R (section.4.7) 138 0 R (section.4.8) 142 0 R (section.4.9) 146 0 R (subsection.2.4.1) 38 0 R (subsection.2.4.2) 42 0 R (subsection.2.4.3) 46 0 R (subsection.2.4.4) 50 0 R (subsection.3.11.1) 102 0 R (subsection.3.11.2) 106 0 R (table.2.1) 369 0 R (table.2.2) 370 0 R (table.2.3) 371 0 R (table.3.1) 372 0 R (table.3.10) 381 0 R (table.3.11) 382 0 R (table.3.12) 383 0 R (table.3.13) 384 0 R (table.3.14) 385 0 R (table.3.2) 373 0 R (table.3.3) 374 0 R (table.3.4) 375 0 R (table.3.5) 376 0 R (table.3.6) 377 0 R (table.3.7) 378 0 R (table.3.8) 379 0 R (table.3.9) 380 0 R (table.4.1) 386 0 R (table.4.2) 387 0 R] /Limits [(API) (table.4.2)] >> endobj 1084 0 obj << @@ -9904,7 +9859,7 @@ endobj >> endobj 1087 0 obj << /Author(Paul Btow)/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords() -/CreationDate (D:20080813234108Z) +/CreationDate (D:20080814002238Z) /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) >> endobj xref @@ -9916,159 +9871,159 @@ xref 0000000000 00000 f 0000000009 00000 n 0000088191 00000 n -0001097922 00000 n +0001097330 00000 n 0000000054 00000 n 0000000143 00000 n 0000088252 00000 n -0001097850 00000 n +0001097258 00000 n 0000000190 00000 n 0000000290 00000 n -0000091822 00000 n -0001097777 00000 n +0000091820 00000 n +0001097185 00000 n 0000000338 00000 n 0000000438 00000 n -0000109833 00000 n -0001097652 00000 n +0000109849 00000 n +0001097060 00000 n 0000000484 00000 n 0000000709 00000 n -0000109895 00000 n -0001097578 00000 n +0000109911 00000 n +0001096986 00000 n 0000000757 00000 n 0000000885 00000 n -0000191033 00000 n -0001097491 00000 n +0000191049 00000 n +0001096899 00000 n 0000000933 00000 n 0000001048 00000 n -0000273595 00000 n -0001097404 00000 n +0000273613 00000 n +0001096812 00000 n 0000001096 00000 n 0000001196 00000 n -0000278964 00000 n -0001097293 00000 n +0000278979 00000 n +0001096701 00000 n 0000001244 00000 n 0000001359 00000 n -0000282585 00000 n -0001097219 00000 n +0000282601 00000 n +0001096627 00000 n 0000001412 00000 n 0000001567 00000 n -0000282647 00000 n -0001097132 00000 n +0000282663 00000 n +0001096540 00000 n 0000001620 00000 n 0000001800 00000 n -0000319898 00000 n -0001097045 00000 n +0000319914 00000 n +0001096453 00000 n 0000001853 00000 n 0000002094 00000 n -0000323296 00000 n -0001096971 00000 n +0000323312 00000 n +0001096379 00000 n 0000002147 00000 n 0000002363 00000 n -0000327338 00000 n -0001096843 00000 n +0000327354 00000 n +0001096251 00000 n 0000002409 00000 n 0000002575 00000 n -0000327400 00000 n -0001096769 00000 n +0000327416 00000 n +0001096177 00000 n 0000002623 00000 n 0000002815 00000 n -0000492008 00000 n -0001096682 00000 n +0000492010 00000 n +0001096090 00000 n 0000002863 00000 n 0000003231 00000 n -0000496564 00000 n -0001096595 00000 n +0000496574 00000 n +0001096003 00000 n 0000003279 00000 n 0000003539 00000 n -0000500489 00000 n -0001096508 00000 n +0000500506 00000 n +0001095916 00000 n 0000003587 00000 n 0000004095 00000 n -0000610258 00000 n -0001096421 00000 n +0000610275 00000 n +0001095829 00000 n 0000004143 00000 n 0000004564 00000 n -0000642352 00000 n -0001096334 00000 n +0000642375 00000 n +0001095742 00000 n 0000004612 00000 n 0000005031 00000 n -0000646369 00000 n -0001096247 00000 n +0000646392 00000 n +0001095655 00000 n 0000005079 00000 n 0000005417 00000 n -0000697782 00000 n -0001096160 00000 n +0000697790 00000 n +0001095568 00000 n 0000005465 00000 n 0000005808 00000 n -0000701475 00000 n -0001096073 00000 n +0000701483 00000 n +0001095481 00000 n 0000005856 00000 n 0000006208 00000 n -0000752084 00000 n -0001095986 00000 n +0000752095 00000 n +0001095394 00000 n 0000006257 00000 n 0000006702 00000 n -0000788019 00000 n -0001095872 00000 n +0000788040 00000 n +0001095280 00000 n 0000006751 00000 n 0000006895 00000 n -0000788081 00000 n -0001095794 00000 n +0000788102 00000 n +0001095202 00000 n 0000006950 00000 n 0000007258 00000 n -0000823704 00000 n -0001095716 00000 n +0000823735 00000 n +0001095124 00000 n 0000007313 00000 n 0000007669 00000 n -0000850574 00000 n -0001095584 00000 n +0000850605 00000 n +0001094992 00000 n 0000007716 00000 n 0000007832 00000 n -0000850637 00000 n -0001095505 00000 n +0000850668 00000 n +0001094913 00000 n 0000007881 00000 n 0000008068 00000 n -0000866363 00000 n -0001095412 00000 n +0000866394 00000 n +0001094820 00000 n 0000008117 00000 n 0000008218 00000 n -0000883593 00000 n -0001095319 00000 n +0000883624 00000 n +0001094727 00000 n 0000008267 00000 n 0000008595 00000 n -0000895376 00000 n -0001095226 00000 n +0000895409 00000 n +0001094634 00000 n 0000008644 00000 n 0000008760 00000 n -0000941689 00000 n -0001095133 00000 n +0000942747 00000 n +0001094541 00000 n 0000008809 00000 n 0000009041 00000 n -0000953391 00000 n -0001095040 00000 n +0000950387 00000 n +0001094448 00000 n 0000009090 00000 n 0000009413 00000 n -0000962138 00000 n -0001094947 00000 n +0000962137 00000 n +0001094355 00000 n 0000009462 00000 n 0000009778 00000 n -0000966583 00000 n -0001094854 00000 n +0000966489 00000 n +0001094262 00000 n 0000009827 00000 n 0000009988 00000 n -0000976205 00000 n -0001094775 00000 n +0000972691 00000 n +0001094183 00000 n 0000010037 00000 n 0000010188 00000 n -0000983353 00000 n -0001094681 00000 n +0000982766 00000 n +0001094089 00000 n 0000010235 00000 n 0000010316 00000 n -0000987416 00000 n -0001094587 00000 n +0000986829 00000 n +0001093995 00000 n 0000010364 00000 n 0000010445 00000 n -0000990714 00000 n -0001094507 00000 n +0000990127 00000 n +0001093915 00000 n 0000010493 00000 n 0000010634 00000 n 0000011593 00000 n @@ -10077,13 +10032,13 @@ xref 0000010686 00000 n 0000053994 00000 n 0000054057 00000 n -0001091026 00000 n -0001078038 00000 n -0001090854 00000 n -0001076744 00000 n -0001062884 00000 n -0001076572 00000 n -0001092134 00000 n +0001090433 00000 n +0001077445 00000 n +0001090261 00000 n +0001076151 00000 n +0001062291 00000 n +0001075979 00000 n +0001091541 00000 n 0000054575 00000 n 0000054390 00000 n 0000054241 00000 n @@ -10100,9 +10055,9 @@ xref 0000057191 00000 n 0000056239 00000 n 0000057313 00000 n -0001062349 00000 n -0001060484 00000 n -0001062187 00000 n +0001061756 00000 n +0001059891 00000 n +0001061594 00000 n 0000057808 00000 n 0000057623 00000 n 0000057474 00000 n @@ -10127,9 +10082,9 @@ xref 0000062669 00000 n 0000062824 00000 n 0000062981 00000 n -0001059287 00000 n -0001046970 00000 n -0001059111 00000 n +0001058694 00000 n +0001046377 00000 n +0001058518 00000 n 0000063138 00000 n 0000063294 00000 n 0000063450 00000 n @@ -10141,84 +10096,84 @@ xref 0000064389 00000 n 0000064547 00000 n 0000064710 00000 n -0001092252 00000 n -0000068813 00000 n -0000066483 00000 n +0001091659 00000 n +0000068812 00000 n +0000066482 00000 n 0000065096 00000 n -0000068750 00000 n -0000066721 00000 n -0000066875 00000 n -0000067032 00000 n -0000067189 00000 n -0000067345 00000 n -0000067501 00000 n -0000067657 00000 n -0000067814 00000 n -0000067970 00000 n -0000068127 00000 n -0000068284 00000 n -0000068439 00000 n -0000068595 00000 n -0000075813 00000 n -0000071288 00000 n -0000068911 00000 n -0000075687 00000 n -0000075750 00000 n -0000071630 00000 n -0000071785 00000 n -0000071940 00000 n -0000072095 00000 n -0000072251 00000 n -0000072407 00000 n -0000072563 00000 n -0000072719 00000 n -0000072875 00000 n -0000073031 00000 n -0000073187 00000 n -0000073342 00000 n -0000073499 00000 n -0000073656 00000 n -0000073813 00000 n -0000073970 00000 n -0000074127 00000 n -0000074284 00000 n -0000074440 00000 n -0000074596 00000 n -0000074752 00000 n -0000074908 00000 n -0000075064 00000 n -0000075220 00000 n -0000075376 00000 n -0000075532 00000 n -0000091947 00000 n -0000095235 00000 n -0000109957 00000 n +0000068749 00000 n +0000066720 00000 n +0000066874 00000 n +0000067031 00000 n +0000067188 00000 n +0000067344 00000 n +0000067500 00000 n +0000067656 00000 n +0000067813 00000 n +0000067969 00000 n +0000068126 00000 n +0000068283 00000 n +0000068438 00000 n +0000068594 00000 n +0000075812 00000 n +0000071287 00000 n +0000068910 00000 n +0000075686 00000 n +0000075749 00000 n +0000071629 00000 n +0000071784 00000 n +0000071939 00000 n +0000072094 00000 n +0000072250 00000 n +0000072406 00000 n +0000072562 00000 n +0000072718 00000 n +0000072874 00000 n +0000073030 00000 n +0000073186 00000 n +0000073341 00000 n +0000073498 00000 n +0000073655 00000 n +0000073812 00000 n +0000073969 00000 n +0000074126 00000 n +0000074283 00000 n +0000074439 00000 n +0000074595 00000 n +0000074751 00000 n +0000074907 00000 n +0000075063 00000 n +0000075219 00000 n +0000075375 00000 n +0000075531 00000 n +0000091945 00000 n +0000095233 00000 n +0000109973 00000 n 0000120127 00000 n -0000155400 00000 n -0000155527 00000 n -0000164434 00000 n -0000164498 00000 n -0000176083 00000 n -0000176146 00000 n -0000185387 00000 n -0000190906 00000 n -0000218552 00000 n -0000226555 00000 n -0000273531 00000 n -0000302964 00000 n -0000316654 00000 n -0000492070 00000 n -0000492134 00000 n -0000568684 00000 n -0000610194 00000 n -0000610320 00000 n -0000642414 00000 n -0000668766 00000 n -0000697844 00000 n -0000727644 00000 n +0000155402 00000 n +0000155529 00000 n +0000164436 00000 n +0000164500 00000 n +0000176089 00000 n +0000176152 00000 n +0000185410 00000 n +0000190922 00000 n +0000218570 00000 n +0000226573 00000 n +0000273549 00000 n +0000302980 00000 n +0000316670 00000 n +0000492072 00000 n +0000492136 00000 n +0000568701 00000 n +0000610211 00000 n +0000610337 00000 n +0000642437 00000 n +0000668777 00000 n +0000697852 00000 n +0000727652 00000 n 0000080595 00000 n 0000077606 00000 n -0000075898 00000 n +0000075897 00000 n 0000080532 00000 n 0000077876 00000 n 0000078033 00000 n @@ -10237,23 +10192,23 @@ xref 0000080063 00000 n 0000080219 00000 n 0000080375 00000 n -0000752020 00000 n -0000788144 00000 n -0000819510 00000 n -0000847864 00000 n -0000854427 00000 n -0000866299 00000 n -0000870773 00000 n -0000883656 00000 n -0000888404 00000 n -0000892483 00000 n -0000899569 00000 n -0000919839 00000 n -0000946092 00000 n -0000957051 00000 n -0000962201 00000 n -0000966520 00000 n -0000969171 00000 n +0000752031 00000 n +0000788165 00000 n +0000819537 00000 n +0000847895 00000 n +0000854458 00000 n +0000866330 00000 n +0000870806 00000 n +0000883687 00000 n +0000888435 00000 n +0000892516 00000 n +0000899602 00000 n +0000919872 00000 n +0000942810 00000 n +0000954644 00000 n +0000962200 00000 n +0000966425 00000 n +0000969077 00000 n 0000085951 00000 n 0000082594 00000 n 0000080680 00000 n @@ -10278,732 +10233,732 @@ xref 0000085360 00000 n 0000085516 00000 n 0000085670 00000 n -0000167612 00000 n -0000282521 00000 n -0000325088 00000 n -0000496436 00000 n -0000496500 00000 n -0000500425 00000 n -0000568748 00000 n -0000614975 00000 n -0000646242 00000 n -0000668830 00000 n -0000701348 00000 n -0000704437 00000 n -0000706551 00000 n -0000727708 00000 n -0000754704 00000 n -0000757800 00000 n -0000787955 00000 n -0000854363 00000 n -0000861501 00000 n +0000167618 00000 n +0000282537 00000 n +0000325104 00000 n +0000496446 00000 n +0000496510 00000 n +0000500442 00000 n +0000568765 00000 n +0000614998 00000 n +0000646265 00000 n +0000668841 00000 n +0000701356 00000 n +0000704445 00000 n +0000706559 00000 n +0000727716 00000 n +0000754715 00000 n +0000757811 00000 n +0000787976 00000 n +0000854394 00000 n +0000861532 00000 n 0000088314 00000 n 0000087826 00000 n 0000086036 00000 n 0000088128 00000 n 0000087968 00000 n -0000991677 00000 n -0000090407 00000 n -0000092135 00000 n -0000090265 00000 n +0000991087 00000 n +0000090404 00000 n +0000092133 00000 n +0000090262 00000 n 0000088412 00000 n -0000091759 00000 n -0000091884 00000 n -0000091603 00000 n -0000092009 00000 n -0000092072 00000 n -0001092370 00000 n -0000091332 00000 n -0000091463 00000 n -0000091510 00000 n -0000091582 00000 n -0000093814 00000 n -0000095298 00000 n -0000093692 00000 n -0000092261 00000 n -0000095109 00000 n -0000095172 00000 n -0000094838 00000 n -0000094969 00000 n -0000095016 00000 n -0000095088 00000 n -0000097693 00000 n -0000097205 00000 n -0000095424 00000 n -0000097504 00000 n -0000097567 00000 n -0000097630 00000 n -0000097347 00000 n -0000099136 00000 n -0000110021 00000 n -0000098986 00000 n -0000097791 00000 n -0000109770 00000 n -0000109457 00000 n -0000109613 00000 n -0000112168 00000 n -0000121897 00000 n +0000091757 00000 n +0000091882 00000 n +0000091600 00000 n +0000092007 00000 n +0000092070 00000 n +0001091777 00000 n +0000091329 00000 n +0000091460 00000 n +0000091507 00000 n +0000091579 00000 n +0000093812 00000 n +0000095296 00000 n +0000093690 00000 n +0000092259 00000 n +0000095107 00000 n +0000095170 00000 n +0000094836 00000 n +0000094967 00000 n +0000095014 00000 n +0000095086 00000 n +0000097691 00000 n +0000097203 00000 n +0000095422 00000 n +0000097502 00000 n +0000097565 00000 n +0000097628 00000 n +0000097345 00000 n +0000099153 00000 n +0000110037 00000 n +0000099003 00000 n +0000097789 00000 n +0000109786 00000 n +0000109474 00000 n +0000109630 00000 n +0000112170 00000 n +0000121898 00000 n 0000120191 00000 n -0000112018 00000 n -0000110155 00000 n +0000112020 00000 n +0000110171 00000 n 0000120001 00000 n -0000119687 00000 n +0000119689 00000 n 0000120064 00000 n 0000119844 00000 n -0000152351 00000 n -0000155591 00000 n -0000121755 00000 n +0000152352 00000 n +0000155593 00000 n +0000121756 00000 n 0000120325 00000 n -0000155337 00000 n -0000155464 00000 n -0000155181 00000 n -0000157294 00000 n -0000161718 00000 n -0000164562 00000 n -0000157152 00000 n -0000155751 00000 n -0000164308 00000 n -0000164371 00000 n -0000164151 00000 n -0001092488 00000 n -0000167739 00000 n -0000167087 00000 n -0000164709 00000 n -0000167549 00000 n -0000167237 00000 n -0000167676 00000 n -0000167393 00000 n -0000169387 00000 n -0000172063 00000 n -0000176210 00000 n -0000169245 00000 n -0000167837 00000 n -0000175957 00000 n -0000176020 00000 n -0000175800 00000 n -0000178438 00000 n -0000188105 00000 n -0000185450 00000 n -0000178272 00000 n -0000176359 00000 n -0000185324 00000 n -0000184699 00000 n -0000184856 00000 n -0000185012 00000 n -0000185168 00000 n -0000193054 00000 n -0000191095 00000 n -0000187947 00000 n -0000185572 00000 n -0000190843 00000 n -0000190970 00000 n -0000190374 00000 n -0000190529 00000 n -0000190686 00000 n -0000220916 00000 n -0000218741 00000 n -0000192912 00000 n -0000191230 00000 n -0000218489 00000 n -0000218616 00000 n -0000218332 00000 n -0000218679 00000 n -0000226682 00000 n -0000220774 00000 n -0000218876 00000 n -0000226492 00000 n -0000226619 00000 n -0000226334 00000 n -0001092606 00000 n -0000991164 00000 n -0000228446 00000 n -0000273720 00000 n -0000228324 00000 n -0000226817 00000 n -0000273468 00000 n -0000273657 00000 n -0000276483 00000 n -0000276172 00000 n -0000273855 00000 n -0000276294 00000 n -0000276357 00000 n -0000276420 00000 n -0000284610 00000 n -0000279026 00000 n -0000278653 00000 n -0000276594 00000 n -0000278775 00000 n -0000278838 00000 n -0000278901 00000 n -0000305101 00000 n -0000282709 00000 n -0000281997 00000 n -0000279124 00000 n -0000282458 00000 n -0000282147 00000 n -0000282303 00000 n -0000303028 00000 n -0000284488 00000 n -0000282820 00000 n -0000302901 00000 n -0000316717 00000 n -0000304979 00000 n -0000303176 00000 n -0000316591 00000 n -0001092724 00000 n -0000319959 00000 n -0000319713 00000 n -0000316865 00000 n -0000319835 00000 n -0000323358 00000 n -0000322772 00000 n -0000320070 00000 n -0000323233 00000 n -0001046608 00000 n -0001037387 00000 n -0001046428 00000 n -0001036945 00000 n -0001034658 00000 n -0001036783 00000 n -0001034364 00000 n -0001026546 00000 n -0001034189 00000 n -0001026159 00000 n -0001023972 00000 n -0001025996 00000 n -0000322922 00000 n -0000323077 00000 n -0000325150 00000 n -0000324903 00000 n -0000323521 00000 n -0000325025 00000 n -0001023425 00000 n -0001014477 00000 n -0001023248 00000 n -0000327462 00000 n -0000326807 00000 n -0000325261 00000 n -0000327275 00000 n -0000326957 00000 n -0000327117 00000 n -0000991549 00000 n -0000329155 00000 n -0000360354 00000 n -0000492198 00000 n -0000329005 00000 n -0000327560 00000 n -0000491945 00000 n -0000491632 00000 n -0000491789 00000 n -0000503134 00000 n -0000496626 00000 n -0000495420 00000 n -0000492360 00000 n -0000496373 00000 n -0000495594 00000 n -0000495749 00000 n -0000495904 00000 n -0000496061 00000 n -0000496217 00000 n -0001092842 00000 n -0000570363 00000 n -0000500551 00000 n -0000499731 00000 n -0000496737 00000 n -0000500362 00000 n -0000499889 00000 n -0000500046 00000 n -0000500207 00000 n -0000568874 00000 n -0000503012 00000 n -0000500727 00000 n -0000568621 00000 n -0000568811 00000 n -0000588544 00000 n -0000610384 00000 n -0000570241 00000 n -0000569035 00000 n -0000610131 00000 n -0000617723 00000 n -0000615039 00000 n -0000613953 00000 n -0000610559 00000 n -0000614912 00000 n -0000614127 00000 n -0000614288 00000 n -0000614444 00000 n -0000614599 00000 n -0000614755 00000 n -0000642476 00000 n -0000617601 00000 n -0000615202 00000 n -0000642289 00000 n -0001014146 00000 n -0001012035 00000 n -0001013975 00000 n -0000649046 00000 n -0000646431 00000 n -0000645716 00000 n -0000642702 00000 n -0000646179 00000 n -0000645866 00000 n -0000646023 00000 n -0000646306 00000 n -0001092960 00000 n -0000668957 00000 n -0000648896 00000 n -0000646594 00000 n -0000668703 00000 n -0000668390 00000 n -0000668547 00000 n -0000668894 00000 n -0000671665 00000 n -0000697908 00000 n -0000671499 00000 n -0000669105 00000 n -0000697719 00000 n -0000697097 00000 n -0000697254 00000 n -0000697410 00000 n -0000697566 00000 n -0000708730 00000 n -0000701537 00000 n -0000700821 00000 n -0000698069 00000 n -0000701285 00000 n -0000701412 00000 n -0000700971 00000 n -0000701128 00000 n -0000704501 00000 n -0000704252 00000 n -0000701661 00000 n -0000704374 00000 n -0000706615 00000 n -0000706366 00000 n -0000704599 00000 n -0000706488 00000 n -0000730054 00000 n -0000727772 00000 n -0000708608 00000 n -0000706713 00000 n -0000727581 00000 n -0001093078 00000 n -0000752272 00000 n -0000729888 00000 n -0000727907 00000 n -0000751957 00000 n -0000751330 00000 n -0000751488 00000 n -0000751643 00000 n -0000751800 00000 n -0000752146 00000 n -0000752209 00000 n -0000755018 00000 n -0000754519 00000 n -0000752433 00000 n -0000754641 00000 n -0000754767 00000 n -0000754830 00000 n -0000754893 00000 n -0000754956 00000 n -0000757864 00000 n -0000757615 00000 n -0000755129 00000 n -0000757737 00000 n -0000760419 00000 n -0000788208 00000 n -0000760277 00000 n -0000757962 00000 n -0000787892 00000 n -0000787735 00000 n -0000790392 00000 n -0000819574 00000 n -0000790250 00000 n -0000788369 00000 n -0000819447 00000 n -0000819290 00000 n -0001010939 00000 n -0000993729 00000 n -0001010766 00000 n -0000825125 00000 n -0000823767 00000 n -0000822673 00000 n -0000819774 00000 n -0000823641 00000 n -0000822847 00000 n -0000823005 00000 n -0000823166 00000 n -0000823327 00000 n -0000823483 00000 n -0001093196 00000 n -0000847928 00000 n -0000824983 00000 n -0000823878 00000 n -0000847801 00000 n -0000847643 00000 n -0000850762 00000 n -0000850048 00000 n -0000848102 00000 n -0000850511 00000 n -0000850198 00000 n -0000850700 00000 n -0000850354 00000 n -0000853032 00000 n -0000854491 00000 n -0000852910 00000 n -0000850860 00000 n -0000854300 00000 n -0000854029 00000 n -0000854160 00000 n -0000854207 00000 n -0000854279 00000 n -0000857784 00000 n -0000857262 00000 n -0000854618 00000 n -0000857721 00000 n -0000857412 00000 n -0000857567 00000 n -0000861627 00000 n -0000861139 00000 n -0000857882 00000 n -0000861438 00000 n -0000861565 00000 n -0000861281 00000 n -0000864183 00000 n -0000866426 00000 n -0000864025 00000 n -0000861725 00000 n -0000866236 00000 n -0000865765 00000 n -0000865921 00000 n -0000866078 00000 n -0001093314 00000 n -0000865414 00000 n -0000865545 00000 n -0000865592 00000 n -0000865664 00000 n -0000865744 00000 n -0000991421 00000 n -0000868524 00000 n -0000870962 00000 n -0000868382 00000 n -0000866553 00000 n -0000870710 00000 n -0000870553 00000 n -0000870836 00000 n -0000870899 00000 n -0000870201 00000 n -0000870332 00000 n -0000870379 00000 n -0000870451 00000 n -0000870531 00000 n -0000874400 00000 n -0000873975 00000 n -0000871089 00000 n -0000874274 00000 n -0000874337 00000 n -0000874117 00000 n -0000877166 00000 n -0000876918 00000 n -0000874498 00000 n -0000877040 00000 n -0000877103 00000 n -0000878861 00000 n -0000878676 00000 n -0000877290 00000 n -0000878798 00000 n -0000881744 00000 n -0000886177 00000 n -0000883720 00000 n -0000881578 00000 n -0000878959 00000 n -0000883530 00000 n -0000882893 00000 n -0000883050 00000 n -0000883207 00000 n -0000883368 00000 n -0000882622 00000 n -0000882753 00000 n -0000882800 00000 n -0000882872 00000 n -0000990972 00000 n -0000991613 00000 n -0000891109 00000 n -0000888467 00000 n -0000886027 00000 n -0000883847 00000 n -0000888341 00000 n -0000888028 00000 n -0000888184 00000 n -0001093432 00000 n -0000887676 00000 n -0000887807 00000 n -0000887854 00000 n -0000887926 00000 n -0000888006 00000 n -0000892547 00000 n -0000890987 00000 n -0000888581 00000 n -0000892420 00000 n -0000892149 00000 n -0000892280 00000 n -0000892327 00000 n -0000892399 00000 n -0000897707 00000 n -0000895439 00000 n -0000894952 00000 n -0000892661 00000 n -0000895250 00000 n -0000895313 00000 n -0000895094 00000 n -0000901630 00000 n -0000899633 00000 n -0000897585 00000 n -0000895550 00000 n -0000899506 00000 n -0000899155 00000 n -0000899286 00000 n -0000899333 00000 n -0000899405 00000 n -0000899485 00000 n -0000919903 00000 n -0000901508 00000 n -0000899760 00000 n -0000919776 00000 n -0000922930 00000 n -0000922745 00000 n -0000920051 00000 n -0000922867 00000 n -0000925900 00000 n -0000925715 00000 n -0000923041 00000 n -0000925837 00000 n -0001093550 00000 n -0000928355 00000 n -0000928107 00000 n -0000925998 00000 n -0000928229 00000 n -0000928292 00000 n -0000930791 00000 n -0000930429 00000 n -0000928479 00000 n -0000930728 00000 n -0000930571 00000 n -0000932687 00000 n -0000932502 00000 n -0000930902 00000 n -0000932624 00000 n -0000934703 00000 n -0000934518 00000 n -0000932785 00000 n -0000934640 00000 n -0000937151 00000 n -0000936589 00000 n -0000934814 00000 n -0000936711 00000 n -0000936774 00000 n -0000936836 00000 n -0000936899 00000 n -0000936962 00000 n -0000937025 00000 n -0000937088 00000 n -0000944094 00000 n -0000941752 00000 n -0000940209 00000 n -0000937275 00000 n -0000941500 00000 n +0000155339 00000 n +0000155466 00000 n +0000155182 00000 n +0000157296 00000 n +0000161720 00000 n +0000164564 00000 n +0000157154 00000 n +0000155753 00000 n +0000164310 00000 n +0000164373 00000 n +0000164153 00000 n +0001091895 00000 n +0000167745 00000 n +0000167093 00000 n +0000164711 00000 n +0000167555 00000 n +0000167243 00000 n +0000167682 00000 n +0000167399 00000 n +0000169393 00000 n +0000172069 00000 n +0000176216 00000 n +0000169251 00000 n +0000167843 00000 n +0000175963 00000 n +0000176026 00000 n +0000175806 00000 n +0000178458 00000 n +0000188118 00000 n +0000185473 00000 n +0000178292 00000 n +0000176365 00000 n +0000185347 00000 n +0000184719 00000 n +0000184876 00000 n +0000185032 00000 n +0000185189 00000 n +0000193072 00000 n +0000191110 00000 n +0000187960 00000 n +0000185595 00000 n +0000190859 00000 n +0000190986 00000 n +0000190387 00000 n +0000190544 00000 n +0000190702 00000 n +0000220934 00000 n +0000218759 00000 n +0000192930 00000 n +0000191245 00000 n +0000218507 00000 n +0000218634 00000 n +0000218350 00000 n +0000218697 00000 n +0000226700 00000 n +0000220792 00000 n +0000218894 00000 n +0000226510 00000 n +0000226637 00000 n +0000226352 00000 n +0001092013 00000 n +0000990575 00000 n +0000228464 00000 n +0000273738 00000 n +0000228342 00000 n +0000226835 00000 n +0000273486 00000 n +0000273675 00000 n +0000276498 00000 n +0000276187 00000 n +0000273873 00000 n +0000276309 00000 n +0000276372 00000 n +0000276435 00000 n +0000284626 00000 n +0000279041 00000 n +0000278668 00000 n +0000276609 00000 n +0000278790 00000 n +0000278853 00000 n +0000278916 00000 n +0000305117 00000 n +0000282725 00000 n +0000282010 00000 n +0000279139 00000 n +0000282474 00000 n +0000282160 00000 n +0000282316 00000 n +0000303044 00000 n +0000284504 00000 n +0000282836 00000 n +0000302917 00000 n +0000316733 00000 n +0000304995 00000 n +0000303192 00000 n +0000316607 00000 n +0001092131 00000 n +0000319975 00000 n +0000319729 00000 n +0000316881 00000 n +0000319851 00000 n +0000323374 00000 n +0000322788 00000 n +0000320086 00000 n +0000323249 00000 n +0001046015 00000 n +0001036794 00000 n +0001045835 00000 n +0001036352 00000 n +0001034067 00000 n +0001036190 00000 n +0001033773 00000 n +0001025955 00000 n +0001033598 00000 n +0001025568 00000 n +0001023381 00000 n +0001025405 00000 n +0000322938 00000 n +0000323093 00000 n +0000325166 00000 n +0000324919 00000 n +0000323537 00000 n +0000325041 00000 n +0001022834 00000 n +0001013886 00000 n +0001022657 00000 n +0000327478 00000 n +0000326823 00000 n +0000325277 00000 n +0000327291 00000 n +0000326973 00000 n +0000327133 00000 n +0000990959 00000 n +0000329159 00000 n +0000360358 00000 n +0000492200 00000 n +0000329009 00000 n +0000327576 00000 n +0000491947 00000 n +0000491636 00000 n +0000491793 00000 n +0000503151 00000 n +0000496636 00000 n +0000495430 00000 n +0000492362 00000 n +0000496383 00000 n +0000495604 00000 n +0000495759 00000 n +0000495914 00000 n +0000496071 00000 n +0000496227 00000 n +0001092249 00000 n +0000570380 00000 n +0000500568 00000 n +0000499748 00000 n +0000496747 00000 n +0000500379 00000 n +0000499906 00000 n +0000500063 00000 n +0000500224 00000 n +0000568891 00000 n +0000503029 00000 n +0000500744 00000 n +0000568638 00000 n +0000568828 00000 n +0000588561 00000 n +0000610401 00000 n +0000570258 00000 n +0000569052 00000 n +0000610148 00000 n +0000617746 00000 n +0000615062 00000 n +0000613975 00000 n +0000610576 00000 n +0000614935 00000 n +0000614149 00000 n +0000614310 00000 n +0000614466 00000 n +0000614622 00000 n +0000614778 00000 n +0000642499 00000 n +0000617624 00000 n +0000615225 00000 n +0000642312 00000 n +0001013555 00000 n +0001011445 00000 n +0001013384 00000 n +0000649057 00000 n +0000646454 00000 n +0000645739 00000 n +0000642725 00000 n +0000646202 00000 n +0000645889 00000 n +0000646046 00000 n +0000646329 00000 n +0001092367 00000 n +0000668968 00000 n +0000648907 00000 n +0000646617 00000 n +0000668714 00000 n +0000668401 00000 n +0000668558 00000 n +0000668905 00000 n +0000671670 00000 n +0000697916 00000 n +0000671504 00000 n +0000669116 00000 n +0000697727 00000 n +0000697102 00000 n +0000697258 00000 n +0000697414 00000 n +0000697570 00000 n +0000708738 00000 n +0000701545 00000 n +0000700829 00000 n +0000698077 00000 n +0000701293 00000 n +0000701420 00000 n +0000700979 00000 n +0000701136 00000 n +0000704509 00000 n +0000704260 00000 n +0000701669 00000 n +0000704382 00000 n +0000706623 00000 n +0000706374 00000 n +0000704607 00000 n +0000706496 00000 n +0000730064 00000 n +0000727780 00000 n +0000708616 00000 n +0000706721 00000 n +0000727589 00000 n +0001092485 00000 n +0000752283 00000 n +0000729898 00000 n +0000727915 00000 n +0000751968 00000 n +0000751340 00000 n +0000751498 00000 n +0000751655 00000 n +0000751811 00000 n +0000752157 00000 n +0000752220 00000 n +0000755029 00000 n +0000754530 00000 n +0000752444 00000 n +0000754652 00000 n +0000754778 00000 n +0000754841 00000 n +0000754904 00000 n +0000754967 00000 n +0000757875 00000 n +0000757626 00000 n +0000755140 00000 n +0000757748 00000 n +0000760440 00000 n +0000788229 00000 n +0000760298 00000 n +0000757973 00000 n +0000787913 00000 n +0000787756 00000 n +0000790419 00000 n +0000819601 00000 n +0000790277 00000 n +0000788390 00000 n +0000819474 00000 n +0000819317 00000 n +0001010349 00000 n +0000993139 00000 n +0001010176 00000 n +0000825156 00000 n +0000823798 00000 n +0000822704 00000 n +0000819801 00000 n +0000823672 00000 n +0000822878 00000 n +0000823036 00000 n +0000823197 00000 n +0000823358 00000 n +0000823514 00000 n +0001092603 00000 n +0000847959 00000 n +0000825014 00000 n +0000823909 00000 n +0000847832 00000 n +0000847674 00000 n +0000850793 00000 n +0000850079 00000 n +0000848133 00000 n +0000850542 00000 n +0000850229 00000 n +0000850731 00000 n +0000850385 00000 n +0000853063 00000 n +0000854522 00000 n +0000852941 00000 n +0000850891 00000 n +0000854331 00000 n +0000854060 00000 n +0000854191 00000 n +0000854238 00000 n +0000854310 00000 n +0000857815 00000 n +0000857293 00000 n +0000854649 00000 n +0000857752 00000 n +0000857443 00000 n +0000857598 00000 n +0000861658 00000 n +0000861170 00000 n +0000857913 00000 n +0000861469 00000 n +0000861596 00000 n +0000861312 00000 n +0000864214 00000 n +0000866457 00000 n +0000864056 00000 n +0000861756 00000 n +0000866267 00000 n +0000865796 00000 n +0000865952 00000 n +0000866109 00000 n +0001092721 00000 n +0000865445 00000 n +0000865576 00000 n +0000865623 00000 n +0000865695 00000 n +0000865775 00000 n +0000990831 00000 n +0000868557 00000 n +0000870995 00000 n +0000868415 00000 n +0000866584 00000 n +0000870743 00000 n +0000870586 00000 n +0000870869 00000 n +0000870932 00000 n +0000870234 00000 n +0000870365 00000 n +0000870412 00000 n +0000870484 00000 n +0000870564 00000 n +0000874433 00000 n +0000874008 00000 n +0000871122 00000 n +0000874307 00000 n +0000874370 00000 n +0000874150 00000 n +0000877197 00000 n +0000876949 00000 n +0000874531 00000 n +0000877071 00000 n +0000877134 00000 n +0000878892 00000 n +0000878707 00000 n +0000877321 00000 n +0000878829 00000 n +0000881775 00000 n +0000886208 00000 n +0000883751 00000 n +0000881609 00000 n +0000878990 00000 n +0000883561 00000 n +0000882924 00000 n +0000883081 00000 n +0000883238 00000 n +0000883399 00000 n +0000882653 00000 n +0000882784 00000 n +0000882831 00000 n +0000882903 00000 n +0000990383 00000 n +0000991023 00000 n +0000891142 00000 n +0000888498 00000 n +0000886058 00000 n +0000883878 00000 n +0000888372 00000 n +0000888059 00000 n +0000888215 00000 n +0001092839 00000 n +0000887707 00000 n +0000887838 00000 n +0000887885 00000 n +0000887957 00000 n +0000888037 00000 n +0000892580 00000 n +0000891020 00000 n +0000888612 00000 n +0000892453 00000 n +0000892182 00000 n +0000892313 00000 n +0000892360 00000 n +0000892432 00000 n +0000897740 00000 n +0000895472 00000 n +0000894985 00000 n +0000892694 00000 n +0000895283 00000 n +0000895346 00000 n +0000895127 00000 n +0000901663 00000 n +0000899666 00000 n +0000897618 00000 n +0000895583 00000 n +0000899539 00000 n +0000899188 00000 n +0000899319 00000 n +0000899366 00000 n +0000899438 00000 n +0000899518 00000 n +0000919936 00000 n +0000901541 00000 n +0000899793 00000 n +0000919809 00000 n +0000922879 00000 n +0000922694 00000 n +0000920084 00000 n +0000922816 00000 n +0000925730 00000 n +0000925545 00000 n +0000922990 00000 n +0000925667 00000 n +0001092957 00000 n +0000928126 00000 n +0000927879 00000 n +0000925828 00000 n +0000928001 00000 n +0000928064 00000 n +0000930570 00000 n +0000930209 00000 n +0000928250 00000 n +0000930507 00000 n +0000930351 00000 n +0000932370 00000 n +0000932185 00000 n +0000930668 00000 n +0000932307 00000 n +0000934261 00000 n +0000934076 00000 n +0000932468 00000 n +0000934198 00000 n +0000937272 00000 n +0000936585 00000 n +0000934372 00000 n +0000936707 00000 n +0000936770 00000 n +0000936833 00000 n +0000936896 00000 n +0000936959 00000 n +0000937022 00000 n +0000937085 00000 n +0000937147 00000 n +0000937210 00000 n +0000939963 00000 n +0000942873 00000 n +0000939773 00000 n +0000937396 00000 n +0000942684 00000 n +0000941584 00000 n +0000941739 00000 n +0000941896 00000 n +0000942052 00000 n +0000942209 00000 n +0000942367 00000 n +0000942527 00000 n +0001093075 00000 n +0000941313 00000 n +0000941444 00000 n +0000941491 00000 n 0000941563 00000 n -0000941626 00000 n -0000940399 00000 n -0000940555 00000 n -0000940711 00000 n -0000940868 00000 n -0000941025 00000 n -0000941183 00000 n -0000941343 00000 n -0001093668 00000 n -0000991357 00000 n -0000991228 00000 n -0000990908 00000 n -0000946218 00000 n -0000943944 00000 n -0000941863 00000 n -0000946029 00000 n -0000945715 00000 n -0000945872 00000 n -0000946155 00000 n -0000945444 00000 n -0000945575 00000 n -0000945622 00000 n -0000945694 00000 n -0000950225 00000 n -0000949423 00000 n -0000946358 00000 n -0000949722 00000 n -0000949785 00000 n -0000949848 00000 n -0000949910 00000 n -0000949973 00000 n -0000950036 00000 n -0000950099 00000 n -0000950162 00000 n -0000949565 00000 n -0000955117 00000 n -0000953454 00000 n -0000953028 00000 n -0000950388 00000 n -0000953328 00000 n -0000953170 00000 n -0000957178 00000 n -0000954995 00000 n -0000953565 00000 n -0000956988 00000 n -0000957115 00000 n -0000956636 00000 n -0000956767 00000 n -0000956814 00000 n -0000956886 00000 n -0000956966 00000 n -0000960014 00000 n -0000962265 00000 n -0000959856 00000 n -0000957331 00000 n -0000962075 00000 n -0000961603 00000 n -0000961760 00000 n -0000961917 00000 n -0000961332 00000 n -0000961463 00000 n -0000961510 00000 n -0000961582 00000 n -0000964959 00000 n -0000967339 00000 n -0000966646 00000 n -0000964809 00000 n -0000962405 00000 n -0000966457 00000 n -0000966139 00000 n -0000966294 00000 n -0001093786 00000 n -0000965868 00000 n -0000965999 00000 n -0000966046 00000 n -0000966118 00000 n -0000991036 00000 n -0000991100 00000 n -0000969235 00000 n -0000967217 00000 n -0000966786 00000 n -0000969108 00000 n -0000968836 00000 n -0000968967 00000 n +0000990767 00000 n +0000990639 00000 n +0000990319 00000 n +0000946406 00000 n +0000945816 00000 n +0000943000 00000 n +0000946280 00000 n +0000945966 00000 n +0000946123 00000 n +0000946343 00000 n +0000950450 00000 n +0000949421 00000 n +0000946517 00000 n +0000949885 00000 n +0000949948 00000 n +0000950011 00000 n +0000950074 00000 n +0000950137 00000 n +0000950199 00000 n +0000950262 00000 n +0000950324 00000 n +0000949571 00000 n +0000949728 00000 n +0000952710 00000 n +0000954708 00000 n +0000952588 00000 n +0000950613 00000 n +0000954581 00000 n +0000954229 00000 n +0000954360 00000 n +0000954407 00000 n +0000954479 00000 n +0000954559 00000 n +0000957722 00000 n +0000957297 00000 n +0000954835 00000 n +0000957596 00000 n +0000957659 00000 n +0000957439 00000 n +0000960169 00000 n +0000962263 00000 n +0000960019 00000 n +0000957846 00000 n +0000962074 00000 n +0000961758 00000 n +0000961916 00000 n +0000961487 00000 n +0000961618 00000 n +0000961665 00000 n +0000961737 00000 n +0000964864 00000 n +0000967245 00000 n +0000966552 00000 n +0000964714 00000 n +0000962403 00000 n +0000966362 00000 n +0000966044 00000 n +0000966199 00000 n +0001093193 00000 n +0000965773 00000 n +0000965904 00000 n +0000965951 00000 n +0000966023 00000 n +0000990447 00000 n +0000990511 00000 n +0000969141 00000 n +0000967123 00000 n +0000966692 00000 n 0000969014 00000 n -0000969086 00000 n -0000971916 00000 n -0000971731 00000 n -0000969349 00000 n -0000971853 00000 n -0000976332 00000 n -0000974767 00000 n -0000972014 00000 n -0000976142 00000 n -0000974962 00000 n -0000975120 00000 n -0000975281 00000 n -0000976268 00000 n -0000975442 00000 n -0000975618 00000 n -0000975794 00000 n -0000975968 00000 n -0000991292 00000 n -0000990843 00000 n -0000990778 00000 n -0000981034 00000 n -0000977983 00000 n -0000976456 00000 n -0000980969 00000 n -0000978255 00000 n -0000978440 00000 n -0000978609 00000 n -0000978787 00000 n -0000978972 00000 n -0000979147 00000 n -0000979325 00000 n -0000979524 00000 n -0000979696 00000 n -0000979868 00000 n -0000980070 00000 n -0000980245 00000 n -0000980425 00000 n -0000980606 00000 n -0000980785 00000 n -0000983417 00000 n -0000983163 00000 n -0000981146 00000 n -0000983288 00000 n -0000985910 00000 n -0000985542 00000 n -0000983503 00000 n -0000985845 00000 n -0000985689 00000 n -0001093906 00000 n -0000991485 00000 n -0000988454 00000 n -0000987225 00000 n -0000986009 00000 n -0000987351 00000 n -0000987480 00000 n -0000987545 00000 n -0000987610 00000 n -0000987675 00000 n -0000987740 00000 n -0000987805 00000 n -0000987870 00000 n -0000987935 00000 n -0000988000 00000 n -0000988065 00000 n -0000988130 00000 n -0000988195 00000 n -0000988260 00000 n -0000988325 00000 n -0000988390 00000 n -0000991741 00000 n -0000990523 00000 n -0000988540 00000 n -0000990649 00000 n -0000991840 00000 n -0001011432 00000 n -0001014384 00000 n -0001014359 00000 n -0001023727 00000 n -0001026425 00000 n -0001026386 00000 n -0001034603 00000 n -0001037246 00000 n -0001037173 00000 n -0001046863 00000 n -0001059845 00000 n -0001062721 00000 n -0001062591 00000 n -0001077339 00000 n -0001091471 00000 n -0001094004 00000 n -0001094124 00000 n -0001094244 00000 n -0001094349 00000 n -0001094431 00000 n -0001098032 00000 n -0001103716 00000 n -0001103757 00000 n -0001103797 00000 n -0001103953 00000 n +0000968742 00000 n +0000968873 00000 n +0000968920 00000 n +0000968992 00000 n +0000972754 00000 n +0000971990 00000 n +0000969255 00000 n +0000972628 00000 n +0000972148 00000 n +0000972307 00000 n +0000972468 00000 n +0000990703 00000 n +0000990255 00000 n +0000990191 00000 n +0000978471 00000 n +0000975563 00000 n +0000972865 00000 n +0000978343 00000 n +0000978408 00000 n +0000975826 00000 n +0000976002 00000 n +0000976179 00000 n +0000976354 00000 n +0000976528 00000 n +0000976713 00000 n +0000976883 00000 n +0000977062 00000 n +0000977247 00000 n +0000977422 00000 n +0000977599 00000 n +0000977798 00000 n +0000977970 00000 n +0000978141 00000 n +0000980447 00000 n +0000979299 00000 n +0000978596 00000 n +0000980382 00000 n +0000979481 00000 n +0000979658 00000 n +0000979839 00000 n +0000980019 00000 n +0000980198 00000 n +0000982830 00000 n +0000982576 00000 n +0000980559 00000 n +0000982701 00000 n +0000985323 00000 n +0000984955 00000 n +0000982916 00000 n +0000985258 00000 n +0000985102 00000 n +0001093314 00000 n +0000990895 00000 n +0000987867 00000 n +0000986638 00000 n +0000985422 00000 n +0000986764 00000 n +0000986893 00000 n +0000986958 00000 n +0000987023 00000 n +0000987088 00000 n +0000987153 00000 n +0000987218 00000 n +0000987283 00000 n +0000987348 00000 n +0000987413 00000 n +0000987478 00000 n +0000987543 00000 n +0000987608 00000 n +0000987673 00000 n +0000987738 00000 n +0000987803 00000 n +0000991151 00000 n +0000989936 00000 n +0000987953 00000 n +0000990062 00000 n +0000991250 00000 n +0001010842 00000 n +0001013793 00000 n +0001013768 00000 n +0001023136 00000 n +0001025834 00000 n +0001025795 00000 n +0001034012 00000 n +0001036653 00000 n +0001036580 00000 n +0001046270 00000 n +0001059252 00000 n +0001062128 00000 n +0001061998 00000 n +0001076746 00000 n +0001090878 00000 n +0001093412 00000 n +0001093532 00000 n +0001093652 00000 n +0001093757 00000 n +0001093839 00000 n +0001097440 00000 n +0001103122 00000 n +0001103163 00000 n +0001103203 00000 n +0001103359 00000 n trailer << /Size 1088 /Root 1086 0 R /Info 1087 0 R -/ID [<612C11F0B6190741F1D16010A1B44EB9> <612C11F0B6190741F1D16010A1B44EB9>] +/ID [ ] >> startxref -1104221 +1103627 %%EOF -- cgit v1.2.3