diff options
| author | Paul Buetow <paul@buetow.org> | 2008-08-09 22:04:43 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-08-09 22:04:43 +0000 |
| commit | 715606d94eaf6162ce1f73f076f235e8014063de (patch) | |
| tree | da58f4e35594758c0d10461fcbe6355f4bd562f2 | |
| parent | 8a9b34513b277dd1c6da5ffefde9431ed6a700b6 (diff) | |
ok
| -rw-r--r-- | LaTeX/chapters/conclusion.tex | 6 | ||||
| -rw-r--r-- | LaTeX/chapters/simulator.tex | 10 | ||||
| -rw-r--r-- | LaTeX/chapters/titlepage.tex | 15 | ||||
| -rw-r--r-- | LaTeX/diplomarbeit.pdf | 7311 | ||||
| -rw-r--r-- | LaTeX/images/ss-neue-simulation-variablen.png | bin | 0 -> 67321 bytes |
5 files changed, 3794 insertions, 3548 deletions
diff --git a/LaTeX/chapters/conclusion.tex b/LaTeX/chapters/conclusion.tex index ce985ac..b482ba7 100644 --- a/LaTeX/chapters/conclusion.tex +++ b/LaTeX/chapters/conclusion.tex @@ -2,11 +2,11 @@ Es wurde erfolgreich ein Simulator f\"{u}r die Simulation verteilter Systeme entwickelt. Der Simulatur hat bereits 10 implementierte Protokolle zur Auswahl eingebaut. Zudem steht dem Gebraucher ein sehr komfortables Protokoll-API zur Verf\"{u}gung, womit der Entwicklung neuer Protokolle quasi keine Grenzen gesetzt sind.
-Dar\"{u}berhinaus verf\"{u}gt der Simulator \"{u}ber eine Vielzahl von sehr flexiblen Einstellungsm\"{o}glichkeiten. F\"{u}r jede Simulation lassen sich somit komplett andere Konfigurationen verwenden. Jeder beteiligte Prozess hat wiederum eingene lokale Einstellungen, wo sich auch jedes Protokoll f\"{u}r jeden Prozess separat einstellen l\"{a}t. Die Anzahl und Flexibilit\"{a}t der M\"{o}glichen Szenarien wird dadurch um einen sehr groen Faktor vergr\"{o}ert.
+Dar\"{u}ber hinaus verf\"{u}gt der Simulator \"{u}ber eine Vielzahl von sehr flexiblen Einstellungsm\"{o}glichkeiten. F\"{u}r jede Simulation lassen sich somit komplett andere Konfigurationen verwenden. Jeder beteiligte Prozess hat wiederum eingene lokale Einstellungen, wo sich auch jedes Protokoll f\"{u}r jeden Prozess separat einstellen l\"{a}t. Die Anzahl und Flexibilit\"{a}t der M\"{o}glichen Szenarien wird dadurch um einen sehr groen Faktor vergr\"{o}ert.
Mit dem Ereigniseditor gibt es eine komfortable M\"{o}glichkeit eigene Szenarien zu programmieren und zu Simulieren. Hierbei kann entweder auf die bereits enthaltenen Protokolle- oder auf selbst implementierte Protokolle zugegriffen werden. Alle Dazugeh\"{o}rigen Einstellungen und programmierten Ereignisse lassen sich vom Gebraucher f\"{u}r eine sp\"{a}tere Wiederverwendung platformunabh\"{a}ngig abspeichern. Somit k\"{o}nnen auch abgespeicherte Szenarien beispielsweise an Komilitonen weitergegeben werden oder f\"{u}r eine sp\"{a}tere Pr\"{a}sentierung zwischengespeichert werden. Mit dem Loggfilter lassen sich mithilfe von regul\"{a}ren Ausdr\"{u}cken nur die relevanten Loggnachrichten anzeigen, was die Analyse einer Simulation erheblich vereinfacht. Weitere Funktionalit\"{a}ten wie Lamport- und Vektor-Zeitstempel sowie Anti-Aliasing ruden den Simulator ab.
-Durch den objektorientierten Aufbau ist der Simulator relativ einfach erweiterbar, was nicht nur f\"{u}r das Protokoll-API betrifft. H\"{a}tte f\"{u}r diese Diplomarbeit noch mehr Zeit zur Verf\"{u}gung gestanden, dann k\"{o}nnten einige der folgenden Funktionen (hier in alphanumerisch sortierten Reihenfolge aufgelistet) auch eingebaut worden sein:
+Durch den objektorientierten Aufbau ist der Simulator relativ einfach erweiterbar, was nicht nur das Protokoll-API betrifft. H\"{a}tte f\"{u}r diese Diplomarbeit noch mehr Zeit zur Verf\"{u}gung gestanden, dann k\"{o}nnten einige der folgenden Funktionen (hier in alphanumerisch sortierten Reihenfolge aufgelistet) auch eingebaut worden sein:
\begin{itemize}
\setlength{\itemsep}{-2mm}
@@ -17,4 +17,4 @@ Durch den objektorientierten Aufbau ist der Simulator relativ einfach erweiterba \item Weitere Funktionalit\"{a}ten wie zum Beispiel das Anklicken einer Nachrichtenlinie, was zu einer Nachicht alle verf\"{u}gbaren Informationen anzeigt und diese gegebenenfalls vom Benutzer editiert werden k\"{o}nnen.
\end{itemize}
-Da der Simulator h\"{o}chstwahrscheinlich unter einer Open Source Lizenz freigegeben wird, und ich mich selbst sehr f\"{u}r die Entwicklung und Anwendung von Open Source Software interessiere, werden die einen oder anderen Funktionen nachtr\"{a}glich eingebaut werden. Komilitonen werden auch herzlich dazu eingeladen werden sich an diesem Software-Projekt zu beteiligen. Als Vorbild sei hier der CPU-Simulator M32, der von Prof. Ossmann an der Fachhochschule Aachen entwickelt wurde, genannt. Hier existieren bereits einige Erweiterungen Verbesserungen, die von den Studenten angefertigt wurden. F\"{u}r die Entwicklung/Erweiterung wurde keine properit\"{a}re Software verwendet, sodass jeder kostenlosen Zugriff auf die dazugeh\"{o}rigen Tools h\"{a}tte.
+Da der Simulator h\"{o}chstwahrscheinlich unter einer Open Source Lizenz freigegeben wird, und ich mich selbst sehr f\"{u}r die Entwicklung und Anwendung von Open Source Software interessiere, werden die einen oder anderen Funktionen nachtr\"{a}glich eingebaut werden. Komilitonen werden auch herzlich dazu eingeladen sein sich an diesem Software-Projekt zu beteiligen. Als Vorbild sei hier der CPU-Simulator M32, der von Prof. Omann an der Fachhochschule Aachen entwickelt wurde, genannt. Hier existieren bereits einige Erweiterungen und Verbesserungen der Ursprungsversion, die von den Studenten angefertigt wurden. F\"{u}r die Entwicklung/Erweiterung wurde keine properit\"{a}re Software verwendet, sodass jeder kostenlosen Zugriff auf die dazugeh\"{o}rigen Tools h\"{a}tte.
diff --git a/LaTeX/chapters/simulator.tex b/LaTeX/chapters/simulator.tex index c1c6c8d..832a391 100644 --- a/LaTeX/chapters/simulator.tex +++ b/LaTeX/chapters/simulator.tex @@ -138,7 +138,7 @@ F\"{u}r die Erstellung eines neuen Ereignisses kann der Anwender entweder mit ei Mit einem Rechtsklick auf den Ereigniseditor lassen sich alle selektierten Ereignisse entweder kopieren oder l\"{o}schen. Mithilfe der Strg-Taste k\"{o}nnen auch mehrere Ereignisse gleichzeitig markiert werden. Die Eintr\"{a}ge der Spalten f\"{u}r die Zeit und der PID lassen sich nachtr\"{a}glich editieren. Somit besteht eine komfortable M\"{o}glichkeit bereits programmierte Ereignisse auf eine andere Zeit zu verschieben oder einen anderen Prozess zuzuweisen. Allerdings sollte der Anwender darauf achten, dass er nach dem \"{A}ndern der Ereigniseintrittszeit die Enter-Taste bet\"{a}tigt, da sonst die \"{A}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 ausgew\"{a}hlten Prozesses. Dort k\"{o}nnen alle Variablen des Prozesses editiert werden und ist somit eine weitere M\"{o}glichkeit einen Prozesseditor aufzurufen. Der Prozesseditor wird sp\"{a}ter genauer behandelt.
+In der Sidebar gibt es neben dem Ereignis-Tab einen weiteren Tab ``Variablen''. Hinter diesem Tab verbirgt sich der Prozesseditor des aktuell ausgew\"{a}hlten Prozesses (Abbildung \ref{fig:NeueSimulationVariablen} links). Dort k\"{o}nnen alle Variablen des Prozesses editiert werden und ist somit eine weitere M\"{o}glichkeit einen Prozesseditor aufzurufen. Der Prozesseditor wird sp\"{a}ter genauer behandelt.
\subsubsection{Das Loggfenster}
@@ -194,6 +194,13 @@ Der Loggfilter wird anhand dem dazugeh\"{o}rigen Schalter ``Filter'' aktiviert u Der Loggfilter kann auch w\"{a}hrend einer laufenden Simulation verwendet werden. Bei Filterdeaktivierung werden alle Nachrichten wieder dargestellt. Loggnachrichten, die aufgrund des Filters noch nie angezeigt wurden, werden dann nachtr\"{a}glich angezeigt.
+\begin{figure}[h]
+ \centering
+ \fbox{\includegraphics[width=12cm]{images/ss-neue-simulation-variablen}}
+ \caption{Der Prozesseditor in der Sidebar}
+ \label{fig:NeueSimulationVariablen}
+\end{figure}
+
\section{Ereignisse}
Es wird zwischen zwei Haupttypen von Ereignissen unterschieden: Programmierbare Ereignisse und nicht programmierbare Ereignisse. Programmierbare Ereignisse lassen sich im Ereigniseditor programmieren und editieren und deren Eintrittszeiten h\"{a}ngen von den lokalen Prozessuhren oder der globalen Uhr ab. Nicht-programmierbare Ereignisse lassen sich hingegen nicht im Ereigniseditor programmieren und treten nicht wegen einer bestimmten Uhrzeit ein, sondern aufgrund anderer Gegebenheiten wie zum Beispiel das Eintreffen einer Nachricht oder das Ausf\"{u}hren einer Aktion aufgrund eines Weckers, worauf sp\"{a}ter nochmal genauer eingegangen wird.
@@ -358,6 +365,7 @@ Im selben Fenster lassen sich auch die Protokollvariablen editieren. Die Protoko Im Expertenmodus lassen sich zus\"{a}tzliche Variablen, wie beispielsweise diverse Farbwerte und Anzahl oder Pixel verschiedener der GUI-Elemente, editieren. Auf Abbildung \ref{fig:SimulationseinstellungenExperten} sieht der Anwender alle einstellbaren Farben. Die fett-gedruckten Schl\"{u}ssel in Tabelle \ref{tb:Farbeinstellungen} dienen nur als Standardwerte f\"{u}r die neu zu erstellenen Prozesse und sind auch jeweils in den Prozesseinstellungen f\"{u}r jeden Prozess separat editierbar.
+\newpage
\section{Protokolle}
Im Folgenden werden alle verf\"{u}gbaren Protokolle behandelt. Wie bereits beschrieben wird bei Protokollen zwischen Server- und Clientseite unterschieden. Server k\"{o}nnen auf Clientnachrichten, und Client auf Servernachrichten antworten. Jeder Prozess kann beliebig viele Protokolle sowohl clientseitig als auch serverseitig unterst\"{u}tzen. Theoretisch ist es auch m\"{o}glich, dass ein Prozess f\"{u}r ein bestimmtes Protokoll gleichzeitig der Server und der Client ist. Der Anwender kann auch weitere eigene Protokolle in der Programmiersprache Java mittels einer speziellen API (Application Programming Interface) erstellen. Wie eigene Protokolle erstellt werden k\"{o}nnen wird sp\"{a}ter behandelt.
diff --git a/LaTeX/chapters/titlepage.tex b/LaTeX/chapters/titlepage.tex index fb11c49..8bad886 100644 --- a/LaTeX/chapters/titlepage.tex +++ b/LaTeX/chapters/titlepage.tex @@ -56,7 +56,10 @@ \end{flushleft} \end{titlepage} -%\selectlanguage{german} + +\thispagestyle{empty} + ~ ~ +\newpage \vspace*{2cm} \textbf{\LARGE Erkl\"{a}rung} @@ -79,6 +82,11 @@ Aachen, \today \\ Diese Diplomarbeit darf weder vollst\"{a}nding noch auszugsweise ohne schriftliche Zustimmung des Autors, des betreuenden Referenzen bzw. der Fachhochschule Aachen vervielf\"{a}ltigt, ver\"{o}ffentlicht oder Dritten zug\"{a}nglich gemacht werden. \newpage + +\thispagestyle{empty} + ~ ~ +\newpage + \vspace*{2cm} \textbf{\LARGE Danksagungen} \vspace*{1.5cm} @@ -96,6 +104,11 @@ Ohne die Hilfe folgender Personen w\"{a}re die Anfertigung dieser Diplomarbeit i Auch vielen Dank an die Open Source Gemeinde, denn diese Diplomarbeit wurde ausschlielich mithilfe von Open Source Software angefertigt +\newpage +\thispagestyle{empty} + ~ ~ +\newpage + \tableofcontents \listoffigures diff --git a/LaTeX/diplomarbeit.pdf b/LaTeX/diplomarbeit.pdf index e1330de..d6219bf 100644 --- a/LaTeX/diplomarbeit.pdf +++ b/LaTeX/diplomarbeit.pdf @@ -309,7 +309,7 @@ endobj stream xڍUMs6W(͔ͮWvҦZD#.d% ι>wyW 7Ve{'}
n4~' , -Ũ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^KSqt8c&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^KS rt!8c'4(ܳendstream endobj 206 0 obj << /Type /Page @@ -491,16 +491,11 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 221 0 obj << -/Length 892 +/Length 69 /Filter /FlateDecode >> stream -xڍUn8+t -)/KHB;!idzIgW.k* -vsqy#oj
>qԳDR&ڦ -&l,P>n,|YS'dY(ֻѪ%)>r[Ib/џmy˴巄 -C1D\q{oJ7.
pV1H9<E YJ=ZN~P#Qm`Wŀ;>: -n@endstream +x3T0 endobj 220 0 obj << /Type /Page @@ -513,22 +508,20 @@ endobj /D [220 0 R /XYZ 74.4095 793.4011 null] >> endobj 219 0 obj << -/Font << /F26 214 0 R /F28 217 0 R >> -/ProcSet [ /PDF /Text ] +/ProcSet [ /PDF ] >> endobj 225 0 obj << -/Length 790 +/Length 892 /Filter /FlateDecode >> stream -xڕVMs0Wp"[>d2$3A)_ I C֫}ڷJ08$b<zE[1PP)A((EQ:zzh hsSGFNH`ojڐ*xһ -]Νf/"JE[t꜓B AT992l(aVz0e_4uWJܳ^(Zk@,sW['ħRzE{QmWˆQѧQd8 -P(Ϫ('DP^Mzͪ=LgCupT(i:zN{:V4tfU%vBM yF,, d - -a*X*Y'T>lfGQa -a*X*Y'Tm心qQ8@sm -7, -=js+&f +xڍUˎ8W1`^%hUY@+D95TWOբ_%93I;}y(qx됧,"
z1-$y].23Kq2U*2.rVeo桘<
b!({Ru1$-ν"<TRBGIy +P5YlU(c!xUw$|R +}oЧezAw#!̐ aO +CkGdẼ,VV,$gTŅZ$9Bx~ʊm@\ +qhb`=eYIf5$mNhŵxGO[n
sqi#oj
>q4BR&ަ +5&l,P>n-|ZS+Uy(6Ѫ%)>r3[Ib/џmi˸巄 +Y{C1
D\q{oJ6H/
tV+9<E Y
Z=ZNL~P#Qm`WɁbZ18 endobj 224 0 obj << /Type /Page @@ -541,1018 +534,1081 @@ endobj /D [224 0 R /XYZ 74.4095 793.4011 null] >> endobj 223 0 obj << -/Font << /F26 214 0 R /F28 217 0 R /F35 229 0 R >> +/Font << /F26 214 0 R /F28 217 0 R >> /ProcSet [ /PDF /Text ] >> endobj -232 0 obj << -/Length 2296 +229 0 obj << +/Length 69 /Filter /FlateDecode >> stream -xs۶+xoǺ˴dZy/=(̩DyD_@. [zwhᰄ?I$MUbR_0_d?{u)5Jf⧛0f֓*hc%JJUnn_\'[)DiWCU?7n
/E^ūޑRr5:eY:uD%}qjpQb5,I9U=6FU^!1<Oۊ"!(lB:DjAD4}D>: sۇh;U/jԤI՛SjSJ1mE+D [3/o~}If^͉C'H`k_w) ))A,Oq;M/}} -Vbw`!8愦5^$ν`ʠ3ыl5Lyn83R}6W,̀kntu9l9,ϰU0L&ܩ"
Y#bbn5eVrfj̃Vڤ>fR^gm -o,*Ev>ΠwT?/z\ri? ǝ&<Bu*?2Dz}֦ >ER#[.'j!uK֫?O*+%t3È=nϵSEa&%xG@߃MhY0K)pԠ:MpȞ|a,J"Ol:BA<sA6!*-rPl8NJn^Uv8\ -6ei{KkUy:pJWԋ&ԩ"AsV(Eˑ Z3vA2E -[I!(;{=k~juGT`Thꌉ>P^mwzQڝq-aāqDXl9(F$P)Ƽ.,&MX9u2G~n|ȳpBr<k>\ۃ*e&~(aMuH(=?M4ׅlJX-U16̱Z۲//k ;ht0H\X"840pK'Z'O.22|e(4i4[Q$M?"X2=4l4<ׅhRF$'shʠrXlx=E܀PuR?}(ϧ"/];u -}[e~:ud{&|9UdI*c~`=`Ck
RG?x!ŭ&FADoʷEGכ?+?U&4T"zScbIHcRϽ
l5`.-ld6ʗuӑTzmx!YݷGkaK,lq:UdBÖqCCZ)uPٓ)12Ǟ^:_t|{:GmvD_M~YDy -57ׅ=eA{nrs94 SE~2Yy9 -5ηׅok)95yN /;&Ͷ37C7Mp!RM`ة"%ɕD,UhBk
ȆFJ¢wt?)& -P^է}Y\#jp٩"E),JQ}YT%M@h- u!Mue@ +x3T0 endobj +228 0 obj << +/Type /Page +/Contents 229 0 R +/Resources 227 0 R +/MediaBox [0 0 595.2757 841.8898] +/Parent 218 0 R +>> endobj +230 0 obj << +/D [228 0 R /XYZ 74.4095 793.4011 null] +>> endobj +227 0 obj << +/ProcSet [ /PDF ] +>> endobj +233 0 obj << +/Length 791 +/Filter /FlateDecode +>> +stream +xڕVMs0Wp"$[>d2$3A)_ I C֫}ڷV0(8ED9zE[1 T" +P(Ϫ('DP^Mzͪ=L`<@٬CǬyYoE[@wo[QUb'Ԕ +C's'G +endobj +232 0 obj << +/Type /Page +/Contents 233 0 R +/Resources 231 0 R +/MediaBox [0 0 595.2757 841.8898] +/Parent 218 0 R +>> endobj +234 0 obj << +/D [232 0 R /XYZ 74.4095 793.4011 null] +>> endobj 231 0 obj << +/Font << /F26 214 0 R /F28 217 0 R /F35 237 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +240 0 obj << +/Length 69 +/Filter /FlateDecode +>> +stream +x3T0 +endobj +239 0 obj << /Type /Page -/Contents 232 0 R -/Resources 230 0 R +/Contents 240 0 R +/Resources 238 0 R /MediaBox [0 0 595.2757 841.8898] /Parent 218 0 R -/Annots [ 235 0 R 236 0 R 237 0 R 238 0 R 239 0 R 240 0 R 241 0 R 242 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R 248 0 R 249 0 R 250 0 R 251 0 R 252 0 R 253 0 R 254 0 R 255 0 R 256 0 R 257 0 R 258 0 R 259 0 R 260 0 R ] >> endobj -235 0 obj << +241 0 obj << +/D [239 0 R /XYZ 74.4095 793.4011 null] +>> endobj +238 0 obj << +/ProcSet [ /PDF ] +>> endobj +244 0 obj << +/Length 2291 +/Filter /FlateDecode +>> +stream +xs6+x7cd3dZowf7=(WT<m$(P <(cD\e&cͶWHT7#WИUZ|G+,QR*}sTd
iC6f.~S[q\1(ʻ%We/%WcfU:/*'ʲ|uDemqlpQb5,ɵy#˕zvEy:W!1<ۊ{7W# =F4DBrxNMdEm@ xw8-ZO塊%sYE-J8aJͭzif,{{_S^I:'*1'qkxRBKBL/byCiZy#18Wz[+EA1^`;'/Op]d&rj"]^[ÔT$_z +XVlE 4CE4`hь[kМ>D{&,(mH22Gݵ:57 ԢO*~^ݾBi_tVݩ/
:^=̳pPq*1vglj6n͙t)4DV#K zTG y}*UGtW\KA?HHi@U$Ē +{c7jmr&kk^a>}Y7)M+ֆO[}{D^?5]C[beaK#Ыv8دb + Dc@8]B΄~[M)C_̓Hx7youyw9#|wޝʦ04S**aC.%b +hDCB
!<Y. KB??n;wmŮ: pz>>Ex6I4@Q[
ӷt.<cj
P_/jiÿ(}?Hiaw#7;U[+_/1bȢq[k5b̢y2z'%km={?Nh)$F8qUQ ".*' +endobj +243 0 obj << +/Type /Page +/Contents 244 0 R +/Resources 242 0 R +/MediaBox [0 0 595.2757 841.8898] +/Parent 273 0 R +/Annots [ 247 0 R 248 0 R 249 0 R 250 0 R 251 0 R 252 0 R 253 0 R 254 0 R 255 0 R 256 0 R 257 0 R 258 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R 265 0 R 266 0 R 267 0 R 268 0 R 269 0 R 270 0 R 271 0 R 272 0 R ] +>> endobj +247 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [73.4132 607.8694 132.1982 618.3978] /Subtype /Link /A << /S /GoTo /D (chapter.1) >> >> endobj -236 0 obj << +248 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 591.1647 150.1131 599.7295] +/Rect [86.8628 591.2455 150.1131 599.7295] /Subtype /Link /A << /S /GoTo /D (section.1.1) >> >> endobj -237 0 obj << +249 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 570.8377 156.4611 581.42] /Subtype /Link /A << /S /GoTo /D (section.1.2) >> >> endobj -238 0 obj << +250 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [73.4132 544.8461 147.4677 553.4916] /Subtype /Link /A << /S /GoTo /D (chapter.2) >> >> endobj -239 0 obj << +251 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 524.555 252.1763 535.0296] /Subtype /Link /A << /S /GoTo /D (section.2.1) >> >> endobj -240 0 obj << +252 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 506.0392 172.6274 516.3075] /Subtype /Link /A << /S /GoTo /D (section.2.2) >> >> endobj -241 0 obj << +253 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 487.4157 151.3326 497.7917] /Subtype /Link /A << /S /GoTo /D (section.2.3) >> >> endobj -242 0 obj << +254 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 468.8999 163.3025 479.2759] /Subtype /Link /A << /S /GoTo /D (section.2.4) >> >> endobj -243 0 obj << +255 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 450.4917 219.7364 460.7601] /Subtype /Link /A << /S /GoTo /D (subsection.2.4.1) >> >> endobj -244 0 obj << +256 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 431.8683 237.2476 442.4505] /Subtype /Link /A << /S /GoTo /D (subsection.2.4.2) >> >> endobj -245 0 obj << +257 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 413.3525 280.8776 423.7285] /Subtype /Link /A << /S /GoTo /D (subsection.2.4.3) >> >> endobj -246 0 obj << +258 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 394.8367 269.5888 405.2127] /Subtype /Link /A << /S /GoTo /D (subsection.2.4.4) >> >> endobj -247 0 obj << +259 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 378.1321 149.1627 386.6968] /Subtype /Link /A << /S /GoTo /D (section.2.5) >> >> endobj -248 0 obj << +260 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 357.9127 245.963 368.3873] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.1) >> >> endobj -249 0 obj << +261 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 339.2892 235.2122 349.6652] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.2) >> >> endobj -250 0 obj << +262 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 322.5846 234.1633 331.1494] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.3) >> >> endobj -251 0 obj << +263 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 302.2576 430.8561 312.8399] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.4) >> >> endobj -252 0 obj << +264 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 283.7418 339.714 294.324] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.5) >> >> endobj -253 0 obj << +265 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 265.226 361.5826 275.8082] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.6) >> >> endobj -254 0 obj << +266 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 248.5214 273.5162 257.2924] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.7) >> >> endobj -255 0 obj << +267 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 230.0056 279.3982 238.7766] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.8) >> >> endobj -256 0 obj << +268 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 209.6785 278.1965 220.2608] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.9) >> >> endobj -257 0 obj << +269 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 191.1627 283.3791 201.745] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.10) >> >> endobj -258 0 obj << +270 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 172.7546 178.9666 183.0229] /Subtype /Link /A << /S /GoTo /D (section.2.6) >> >> endobj -259 0 obj << +271 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 154.2388 325.7265 164.7134] /Subtype /Link /A << /S /GoTo /D (subsection.2.6.1) >> >> endobj -260 0 obj << +272 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 135.6153 281.8817 146.1976] /Subtype /Link /A << /S /GoTo /D (subsection.2.6.2) >> >> endobj -233 0 obj << -/D [231 0 R /XYZ 74.4095 793.4011 null] +245 0 obj << +/D [243 0 R /XYZ 74.4095 793.4011 null] >> endobj -234 0 obj << -/D [231 0 R /XYZ 74.4095 638.5029 null] +246 0 obj << +/D [243 0 R /XYZ 74.4095 638.5029 null] >> endobj -230 0 obj << +242 0 obj << /Font << /F26 214 0 R /F28 217 0 R >> /ProcSet [ /PDF /Text ] >> endobj -263 0 obj << -/Length 2092 +276 0 obj << +/Length 2090 /Filter /FlateDecode >> stream -x[6+ti53M۴>ǫյP%J8(M~sfhe~Xf$ԪXe{tY]y*T?yךe9Zu5',ŋjޝOo\-KͶ*Oo{8%aNI!g+8\Pݩ$uڼ?Deǻ49Me10&4y ˕zUY,W?wžeqTw2Rd{JD*3IuCLŔQS -A+w1\l5 sA|Nb8UKu<-χ#< -0"F4g3"rBiE
{{ja@jA:i#?oO2G:"
<HFs"s|NfN<56<^QܟEX1>5cJH,hlRXbV`wjJeL$!
2hh%N/^r»}d|7LxG1bVBP4"_qՏEye)SQ"tz*MЩ\60;G0zMzk殉fV[hIXg3ח\R%нimתZtod>"a=ʁÏYp$bJqC<šy}Y2h,H.\wYXUquقBQ:͵S%P*eG~?̍#
G<Z͛
zUp0gFKf_ڭw *L fǥ7ۆr=Ftp~[f8]O <̌[+oxz*M),|8ӏAg<&Q͓YrceEj2Oc"JM9BsqUU 8nl'ZT: -Tu*C -;uocs|G4QC+|9)"ZrN,*1vY}K$:<|h5yf<5ZM֝N9U](ʜ07Nh"^*Ij|jg^bģcVlWeN^I~H}{?Zn"݉VpCjcE~D,RhR$bVP"<mhU%\Tۑ돀YQGsQ1b=qM<ybgT!BXTqve*rqݭ/hKpW8DJLDFz0Y -!U.
koFT:mLxݪ}l6R[Y1U02QUn -pP|qu +x[6+ti53M۴>ǫյP%J8(M@Ǐ@K,2#Ve +xX?7k+/^g7OZ,'VkݼθVxQm͒Eq{WViwOtv$ך?))l46Tw*+Ip6]4Me1&6yۥ ˕zUY,W?wžeqTw2Rd{JD*3IӱuCLŔQS +A+AbjZI2&yYnq*&|y<h+7ӠqΈ-}Mh}_Z;iШWۓ#XnB$99s>r/fN<56<^QܟEX1>5cJH,hlRXbV`wB~J2&`։qI(D +ZˋWWc|2DXLxǫyL1}pL}EyNZ[oǢ6ө(Btz*MЩ\60;G0IZM%z]Ն&Y"zg/<TKFaz9=~=ڎ=U$ZdEð{©9(" +H1y% +8&^ApgY`\B\&(41&,t(kJ-Uʎ~
G@x|7U[H^o.E[)k@:L Ǖ7ۆr=AtpXf8]O <̌˕I<j&|ӏ|Aw<^&ΓY21M"ӘDSγ\UzU+N;:6b@Ez +zNA&Myl菓&z0ηB(%YDlU])wHt=y
%zMV9JNP'b
̜K.N2'̭W%<F/G$}Oj<ŘەDS<ol3 += +G?qg²,t<n&*?!rWN!^qjU< +sql5
bWyu[ׇC
ʟ^Nz/^uu^
3mщY%7chöU6?3c&_$kPּ-O\:=$;]Y19dXubvq* +*2ˆ}j"8@
qZjGkXVw["Dn:ۅl#W.Z%і+LzU wb&'\[&wRiUJ$BUnO!c}[!B^+}8C_
TDWC*̇'|Dupz³6?>_\@o=h㘝"Xn^Fpoճv2t+8Vȇݟ.zfV&ϼnfsS? endstream endobj -262 0 obj << +275 0 obj << /Type /Page -/Contents 263 0 R -/Resources 261 0 R +/Contents 276 0 R +/Resources 274 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 218 0 R -/Annots [ 268 0 R 269 0 R 270 0 R 271 0 R 272 0 R 273 0 R 274 0 R 275 0 R 276 0 R 277 0 R 278 0 R 279 0 R 280 0 R 281 0 R 282 0 R 283 0 R 284 0 R 285 0 R 286 0 R 287 0 R 288 0 R 289 0 R 290 0 R 291 0 R ] +/Parent 273 0 R +/Annots [ 281 0 R 282 0 R 283 0 R 284 0 R 285 0 R 286 0 R 287 0 R 288 0 R 289 0 R 290 0 R 291 0 R 292 0 R 293 0 R 294 0 R 295 0 R 296 0 R 297 0 R 298 0 R 299 0 R 300 0 R 301 0 R 302 0 R 303 0 R 304 0 R ] >> endobj -268 0 obj << +281 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [73.4132 756.786 177.5405 767.3144] /Subtype /Link /A << /S /GoTo /D (chapter.3) >> >> endobj -269 0 obj << +282 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 738.8587 216.6336 749.2347] /Subtype /Link /A << /S /GoTo /D (section.3.1) >> >> endobj -270 0 obj << +283 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 720.9315 215.4148 731.3075] /Subtype /Link /A << /S /GoTo /D (subsection.3.1.1) >> >> endobj -271 0 obj << +284 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 703.1119 190.4974 713.3802] /Subtype /Link /A << /S /GoTo /D (subsection.3.1.2) >> >> endobj -272 0 obj << +285 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 685.077 151.3326 695.453] /Subtype /Link /A << /S /GoTo /D (section.3.2) >> >> endobj -273 0 obj << +286 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 667.1498 265.653 677.5258] /Subtype /Link /A << /S /GoTo /D (subsection.3.2.1) >> >> endobj -274 0 obj << +287 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 649.2225 308.7178 659.5985] /Subtype /Link /A << /S /GoTo /D (subsection.3.2.2) >> >> endobj -275 0 obj << +288 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 631.2953 334.173 641.8776] /Subtype /Link /A << /S /GoTo /D (section.3.3) >> >> endobj -276 0 obj << +289 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 615.1793 199.5985 623.7441] /Subtype /Link /A << /S /GoTo /D (subsection.3.3.1) >> >> endobj -277 0 obj << +290 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 595.4408 336.6387 606.0231] /Subtype /Link /A << /S /GoTo /D (subsection.3.3.2) >> >> endobj -278 0 obj << +291 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 579.3248 149.1627 587.8896] /Subtype /Link /A << /S /GoTo /D (section.3.4) >> >> endobj -279 0 obj << +292 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 561.3976 275.6593 569.9624] /Subtype /Link /A << /S /GoTo /D (subsection.3.4.1) >> >> endobj -280 0 obj << +293 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 541.6591 301.5626 552.0351] /Subtype /Link /A << /S /GoTo /D (subsection.3.4.2) >> >> endobj -281 0 obj << +294 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 523.7319 327.3494 534.3141] /Subtype /Link /A << /S /GoTo /D (subsection.3.4.3) >> >> endobj -282 0 obj << +295 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 505.8046 253.8798 516.3869] /Subtype /Link /A << /S /GoTo /D (section.3.5) >> >> endobj -283 0 obj << +296 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 489.6886 199.5985 498.2534] /Subtype /Link /A << /S /GoTo /D (subsection.3.5.1) >> >> endobj -284 0 obj << +297 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [107.4855 469.9502 273.8479 480.3262] /Subtype /Link /A << /S /GoTo /D (subsection.3.5.2) >> >> endobj -285 0 obj << +298 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 452.0229 319.4854 462.6052] /Subtype /Link /A << /S /GoTo /D (section.3.6) >> >> endobj -286 0 obj << +299 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 434.0957 330.353 444.678] /Subtype /Link /A << /S /GoTo /D (section.3.7) >> >> endobj -287 0 obj << +300 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 416.1685 199.1048 426.5445] /Subtype /Link /A << /S /GoTo /D (section.3.8) >> >> endobj -288 0 obj << +301 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 398.2412 203.8034 408.6173] /Subtype /Link /A << /S /GoTo /D (section.3.9) >> >> endobj -289 0 obj << +302 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [73.4132 373.2306 125.6888 381.8761] /Subtype /Link /A << /S /GoTo /D (chapter.4) >> >> endobj -290 0 obj << +303 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [73.4132 344.593 132.3418 354.7897] /Subtype /Link /A << /S /GoTo /D (appendix.A) >> >> endobj -291 0 obj << +304 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [73.4132 319.4434 174.1512 328.0889] /Subtype /Link /A << /S /GoTo /D (appendix.B) >> >> endobj -264 0 obj << -/D [262 0 R /XYZ 74.4095 793.4011 null] +277 0 obj << +/D [275 0 R /XYZ 74.4095 793.4011 null] >> endobj -261 0 obj << -/Font << /F61 267 0 R /F26 214 0 R /F28 217 0 R >> +274 0 obj << +/Font << /F61 280 0 R /F26 214 0 R /F28 217 0 R >> /ProcSet [ /PDF /Text ] >> endobj -294 0 obj << -/Length 2387 +307 0 obj << +/Length 2373 /Filter /FlateDecode >> stream -x[6+h?csb
$m4c"ˁe%%RDh&* @F\9$mN$C,<Ë4ٙ;b\HbMR^Fb8cJyOD$Nir3HsoՏETK~twkc_xsi!F}]fI*H+c!v|xN'9"D*QV;NȚF덠d,ÇteM^Voۼ,`aJBQt;Hˁy6!78EJs ǻw<ZCi%FNAR-f?Z%" -3N܃wiMձ,_$%cP}W'5c%iq`!GkPZ,5ٛJ3)z!k%kO`gKV۫m~h/S}+teiqr4{$x4O E,X<Z'Һ(r -pl:;m^F%{S(l4ӽ1Rdߔ=SjF@/0z4Ee^:zUi~ɣ,[Mk1I6FKXGRf+yϔI\@GkpӸBZjjbNpuB-'156kQEE[Ѷnx!Rk`R\ -F3mWH^)pzZ^deQ5^QMWUq?Vj̔Y2GfLWtq=GJ x@1I uR#A$1;@|OeqgO-GêlZY,L"HBf,'"IM۳idI4hGCҺMz&9zM9?N͋CR`'ҿ9Ů*|[?R$P4N1Jeh -\@%xJ5M%u>t&azJ5\l0ׇ?>;;#n7HRjb$6ԌSp-n=>C -1TO -i]hj.(ɒ^-ɧ&JR^guE3s!-IBej 2&J -?@<Z'u Tisk']`7?_gq{N%JД8zڳ9V0W@0ƣ5~zԺPέ8@GI:Ihȴfl5{>eM0`4њgO .".(5B#f7G,뼰eyv#KJ$-K`!$}'B 8<$P"MP؊8Y
z!/iL+Dպɀ.t}yģʁ<F9
ڴE9 ݽ+ݚ=)*Py9'5cdw^gr.(`l)0=CZ&弌U<o)O?/v櫃yzRڔ]N?>a@)h9FK%@R;!@t̶wY}W:eI&PH:uR3vgtڲ -*x3rESL:G8w~j; ?YOǪ#x("=8!3ǣyG @P[H"h:hg[j^ڷȪ;ۼV:ʼG]AJ&q_f#}i -j -<x<
8:9`)ۘߡc401U$-35pz*k8tendstream +xo8W~0W&{(`{pb?R"eJIn"@-˓IgdgRSsqv{*泿N1Ҽt1bRHg[ׯ~9ͮ? ssb榬vz|)_vm^Y]zB#-䘰.p$1?g}/?#PҌNg9"D +uplv{* +zDaE`!T,ʵCW^|MzÈyz!5$M^:zߕuiq.,[Mk1Yh6FK%#9нJ,P\@Z\<E7\P+ɶt|uMZVnYMUݭ5졺1 +Y]+3%1NP+w\6mU6`
zjTw}{l]ޝ}\*K5ffJL,BPRQj+mОFB X[K%@ ΘPGp~,S窼M玣úl47۪]h8EZs.K%<'"IM;ydY4hЄ.BS`$N$G/ԡ)ǓU+ܾ/] +[wǢeSJGT +ctR /Tn?s*TS Y]D%0O$L/QƋM#paogg{nis)5b,6TbPp-zR} +L7N*1aI +1 +1>N"@%F +8BP +ۤ[D3]K:3AJ|I/*Bakk<hu3v"O6*N + +׳srE)J+\Uz?i .~Ŭzyӧ#:7= ,cM6,4n"yffB<ޑV<G&fFN*1~h0'`!@Cn~<7)>!evb>~a4Nt:)Y`{<=s>~? +7r +Lˀ%eΏU>/9ϯNg;yսy*HlwC&+V*|_AI$pcm TAXwQu2T5"nӃ)CL]݉t`t=:BtΟ/L.BS%ҩrq:ssߌw_g=~ozx0)jw("4>8@f6|8',P"l|Z]%Q&hzwm=
\ﺋ7w'es*uxb&V::${+
GIGT
FAtoCB&f`y^6yꎭU}jppf2="4
ܛK%J~VE2,Zm@K`Ě Ȣq(T7'?5"E'&6*agU< #HWK|\d^z!#뿕I}N*闁%K0~MSCq1rhwg^ov\ʇFUJeG/pm$CG=(ԀQ06T>_WV1JV"}z!(1ű**eHH^LKvB _#o_0`4cm-@.p?rͱLUo#l+ +/erGklw\endstream endobj -293 0 obj << +306 0 obj << /Type /Page -/Contents 294 0 R -/Resources 292 0 R +/Contents 307 0 R +/Resources 305 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 218 0 R -/Annots [ 297 0 R 298 0 R 299 0 R 300 0 R 301 0 R 302 0 R 303 0 R 304 0 R 305 0 R 306 0 R 307 0 R 308 0 R 309 0 R 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R 322 0 R 323 0 R ] +/Parent 273 0 R +/Annots [ 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R 322 0 R 323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R ] >> endobj -297 0 obj << +310 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 614.0499 190.237 622.821] /Subtype /Link /A << /S /GoTo /D (figure.1.1) >> >> endobj -298 0 obj << +311 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 596.1014 203.516 604.8725] /Subtype /Link /A << /S /GoTo /D (figure.1.2) >> >> endobj -299 0 obj << +312 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 568.1903 265.2216 576.9613] /Subtype /Link /A << /S /GoTo /D (figure.2.1) >> >> endobj -300 0 obj << +313 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 550.3225 155.8157 558.8066] /Subtype /Link /A << /S /GoTo /D (figure.2.2) >> >> endobj -301 0 obj << +314 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [86.8628 532.2933 194.1104 541.0644] |
